Repository: microsoft/vcpkg Branch: master Commit: c21f78db5a40 Files: 13611 Total size: 18.4 MB Directory structure: gitextract_nj6av1a1/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── 00-report-package-build-failure.yml │ │ ├── 01-request-a-new-port.yml │ │ ├── 02-request-an-update-to-an-existing-port.yml │ │ ├── 03-request-a-feature-or-improvement-to-a-port.yml │ │ ├── 04-request-a-feature-or-improvement.yml │ │ ├── 05-other-type-of-bug-report.md │ │ └── config.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── check_issues.yml │ ├── check_tools_sha.yml │ ├── codeql.yml │ ├── stale.yml │ └── untrustedPR.yml ├── .gitignore ├── .vcpkg-root ├── CONTRIBUTING.md ├── CONTRIBUTING_pt.md ├── CONTRIBUTING_zh.md ├── CodeQL.yml ├── LICENSE.txt ├── NOTICE.txt ├── NOTICE_pt.txt ├── README.md ├── SECURITY.md ├── bootstrap-vcpkg.bat ├── bootstrap-vcpkg.sh ├── docs/ │ ├── about/ │ │ └── privacy.md │ └── users/ │ ├── assetcaching.md │ ├── binarycaching.md │ ├── manifests.md │ ├── registries.md │ ├── triplets.md │ └── versioning.md ├── ports/ │ ├── 3fd/ │ │ ├── RapidXML.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── 7zip/ │ │ ├── 7zip-config.cmake.in │ │ ├── CMakeLists.txt │ │ ├── fix_timespec_get_broken_on_android.patch │ │ ├── portfile.cmake │ │ ├── sort-asm.diff │ │ └── vcpkg.json │ ├── abcmake/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ableton-link/ │ │ ├── fix_android_build.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ ├── replace_asiosdk_download_by_vcpkg_asiosdk.patch │ │ ├── replace_local_asiostandalone_by_vcpkg_asio.patch │ │ ├── replace_local_catch_by_vcpkg_catch2.patch │ │ └── vcpkg.json │ ├── abseil/ │ │ ├── 003-force-cxx-17.patch │ │ ├── fix-heterogeneous_lookup_testing-target.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── absent/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── abumq-ripe/ │ │ ├── cmake-config-exports.patch │ │ ├── devendoring.patch │ │ ├── fix-cryptopp-pem-api.patch │ │ ├── portfile.cmake │ │ ├── unofficial-ripe-config.cmake │ │ └── vcpkg.json │ ├── ace/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── acl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── activemq-cpp/ │ │ ├── FunctionLevelLinkingOn.diff │ │ ├── activemq-cppConfig.cmake │ │ ├── fix-crt-linkage-dyn.patch │ │ ├── fix-crt-linkage.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ada-idna/ │ │ ├── install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ada-url/ │ │ ├── no-cpm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ade/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── adios2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── advobfuscator/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aeron/ │ │ ├── patches/ │ │ │ ├── add-libuuid-vcpkg-support.patch │ │ │ └── fix-static-crt-linkage.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── air-ctl/ │ │ ├── fix-resize-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aixlog/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aklomp-base64/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── alac/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── alac-decoder/ │ │ ├── CMakeLists.txt │ │ ├── decomp.c │ │ ├── no-pragma-warning.patch │ │ ├── portfile.cmake │ │ ├── remove_stdint_headers.patch │ │ └── vcpkg.json │ ├── alembic/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aliyun-oss-c-sdk/ │ │ ├── patch.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aliyun-oss-cpp-sdk/ │ │ ├── 0001-dependency-and-targets.patch │ │ ├── 0002-unofficial-export.cmake │ │ ├── 0003-suppress-fmt-warning.patch │ │ ├── disable-werror.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── allegro5/ │ │ ├── android-glext-prototypes.diff │ │ ├── cmake-project-include.cmake │ │ ├── do-not-copy-pdbs-to-lib.patch │ │ ├── minimp3-fix.patch │ │ ├── msvc-arm64-atomic.patch │ │ ├── portfile.cmake │ │ ├── skip-android-aar.diff │ │ └── vcpkg.json │ ├── alpaca/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── alpaka/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── alsa/ │ │ ├── fix-plugin-dir.patch │ │ ├── libdl.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── amd-adl-sdk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── amd-amf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ampl-asl/ │ │ ├── 0006-disable-generate-arith-h.diff │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── workaround-msvc-optimizer-ice.patch │ ├── ampl-mp/ │ │ ├── 0007-unofficial-export.cmake │ │ ├── disable-matlab-mex.patch │ │ ├── fix-arm-build.patch │ │ ├── fix-build.patch │ │ ├── fix-dependency-asl.patch │ │ ├── install-targets.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── amqpcpp/ │ │ ├── fix-max_min_macros.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── anari/ │ │ ├── anari-lib-maybe-static-lib.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── anax/ │ │ ├── Add-bin-output.patch │ │ ├── osx-arm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── andytech-tiny-crc32c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── angelscript/ │ │ ├── fix-dependency.patch │ │ ├── fix-ndk-arm.patch │ │ ├── fix-osx-x64.patch │ │ ├── fix-win-arm64.patch │ │ ├── mark-threads-private.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── angle/ │ │ ├── 001-fix-builder-error.patch │ │ ├── 001-fix-uwp.patch │ │ ├── 002-fix-builder-error.patch │ │ ├── 003-fix-mingw.patch │ │ ├── ANGLEShaderProgramVersion.h.in │ │ ├── angle_commit.h.in │ │ ├── cmake-buildsystem/ │ │ │ ├── CMakeLists.txt │ │ │ ├── PlatformLinux.cmake │ │ │ ├── PlatformMac.cmake │ │ │ ├── PlatformWin.cmake │ │ │ ├── cmake/ │ │ │ │ ├── DetectSSE2.cmake │ │ │ │ ├── WebKitCommon-minimal.cmake │ │ │ │ ├── WebKitCompilerFlags-minimal.cmake │ │ │ │ └── WebKitMacros-minimal.cmake │ │ │ └── linux.cmake │ │ ├── portfile.cmake │ │ ├── unofficial-angle-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ankurvdev-embedresource/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── annoy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── antlr4/ │ │ ├── add-include-chrono.patch │ │ ├── portfile.cmake │ │ ├── set-export-macro-define-as-private.patch │ │ └── vcpkg.json │ ├── any-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── anyrpc/ │ │ ├── mingw.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── anyxx/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── aom/ │ │ ├── aom-fix-nasm.diff │ │ ├── aom-rename-static.diff │ │ ├── aom-uninitialized-pointer.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── apache-datasketches/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── approval-tests-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── appstream/ │ │ ├── portfile.cmake │ │ ├── remove-uneeded-directories.patch │ │ └── vcpkg.json │ ├── appstream-glib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── apr/ │ │ ├── 0100-add-host-tools-dir.diff │ │ ├── portfile.cmake │ │ ├── unglue.patch │ │ ├── unofficial-apr-config.cmake │ │ ├── usage-cmake │ │ └── vcpkg.json │ ├── apr-util/ │ │ ├── apr.patch │ │ ├── portfile.cmake │ │ ├── unglue.patch │ │ ├── use-vcpkg-expat.patch │ │ └── vcpkg.json │ ├── apriltag/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── apsi/ │ │ ├── fix-c2398.patch │ │ ├── fix-find-seal.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aravis/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── arcticdb-sparrow/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── arcticdb-sparrow-extensions/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── arcus/ │ │ ├── 0001-fix-protobuf-deprecated.patch │ │ ├── 0002-protobuf-version.patch │ │ ├── 0003-cstdint.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── arg-router/ │ │ ├── always-depend-on-boost.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── argagg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── argh/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── argon2/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── thread-header.patch │ │ ├── unofficial-argon2-config.cmake │ │ ├── unofficial-libargon2-config.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ ├── visibility-for-tool.patch │ │ └── visibility.patch │ ├── argparse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── args/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── argtable2/ │ │ ├── 0001-fix-install-dirs.patch │ │ ├── 0002-include-correct-headers.patch │ │ ├── 0003-add-dependence-getopt.patch │ │ ├── portfile.cmake │ │ ├── undef-eoverflow.diff │ │ └── vcpkg.json │ ├── argtable3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── argumentum/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── argus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aricpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── armadillo/ │ │ ├── cmake-config.patch │ │ ├── dependencies.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── arpack-ng/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── arrayfire/ │ │ ├── Fix-constexpr-error-with-vs2019-with-half.patch │ │ ├── build.patch │ │ ├── fix-dependency-clfft.patch │ │ ├── fix-fmt-error.patch │ │ ├── fix-miss-header-file.patch │ │ ├── portfile.cmake │ │ ├── remove-cl2hpp-download.diff │ │ └── vcpkg.json │ ├── arrow/ │ │ ├── 0001-msvc-static-name.patch │ │ ├── 0003-android-musl.patch │ │ ├── 0004-android-datetime.patch │ │ ├── 0005-cmake-msvcruntime.patch │ │ ├── 0007-use-vcpkg-mimalloc.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── usage-acero │ │ ├── usage-compute │ │ ├── usage-dataset │ │ ├── usage-flight │ │ ├── usage-flightsql │ │ ├── usage-parquet │ │ └── vcpkg.json │ ├── arrow-adbc/ │ │ ├── fix_static_build.patch │ │ ├── fix_windows_build.patch │ │ ├── portfile.cmake │ │ ├── unvendor.patch │ │ └── vcpkg.json │ ├── arsenalgear/ │ │ ├── disable-cppcheck.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── arun11299-cpp-subprocess/ │ │ ├── find-threads.patch │ │ ├── fix-cmake-config-name.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ashes/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── asio/ │ │ ├── CMakeLists.txt │ │ ├── asio-config.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── asio-grpc/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── asiochan/ │ │ ├── fix-10.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── asiosdk/ │ │ ├── Findasiosdk.cmake │ │ ├── fix-new-delete-mismatch.patch │ │ ├── portfile.cmake │ │ ├── unofficial-asiosdk-config.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── asmjit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── asmtk/ │ │ ├── fix-link-amsjit.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── asock/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── assimp/ │ │ ├── build_fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── astr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── async-mqtt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── async-simple/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── asynch/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── asyncplusplus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── at-spi2-atk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── at-spi2-core/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── atk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── atkmm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── atl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── atliac-minitest/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── atlmfc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── atomic-queue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── attr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aubio/ │ │ ├── 0001-ffmpeg-deprecated.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── audioengine/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── audiofile/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── audit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aurora/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aurora-au/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── autodock-vina/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── avcpp/ │ │ ├── 0002-av_init_packet_deprecation.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── avir/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── avisynthplus/ │ │ ├── backport_409369a.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── avro-c/ │ │ ├── avro.patch │ │ ├── bswap.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── avro-cpp/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── awlib/ │ │ ├── fix-mac-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-auth/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-cal/ │ │ ├── portfile.cmake │ │ ├── remove-libcrypto-messages.patch │ │ └── vcpkg.json │ ├── aws-c-common/ │ │ ├── disable-internal-crt-option.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-compression/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-event-stream/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-http/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-io/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-mqtt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-s3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-c-sdkutils/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-checksums/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-crt-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-lambda-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── aws-sdk-cpp/ │ │ ├── configure-binary-dir.patch │ │ ├── find-dependency.patch │ │ ├── fix-aws-root.patch │ │ ├── fix_find_curl.patch │ │ ├── generateFeatures.ps1 │ │ ├── lock-curl-http-and-tls-settings.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.in.json │ │ └── vcpkg.json │ ├── ayush272002-dotenv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azmq/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-c-shared-utility/ │ │ ├── disable-error.patch │ │ ├── fix-install-location.patch │ │ ├── fix-utilityFunctions-conditions.patch │ │ ├── improve-dependencies.patch │ │ ├── modify-POSIX-c-version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-core-amqp-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ └── vcpkg.json │ ├── azure-core-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-core-tracing-opentelemetry-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-data-tables-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-identity-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-iot-sdk-c/ │ │ ├── fix-install-location.patch │ │ ├── fix-iothubclient-includes.patch │ │ ├── improve-external-deps.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-kinect-depth-engine/ │ │ ├── k4adeploy.ps1 │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-kinect-sensor-sdk/ │ │ ├── fix-build-imgui.patch │ │ ├── fix-builds.patch │ │ ├── fix-calibration-c.patch │ │ ├── fix-header.patch │ │ ├── fix-linux.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-macro-utils-c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-messaging-eventhubs-checkpointstore-blob-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-messaging-eventhubs-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-security-attestation-cpp/ │ │ ├── context_syntax.patch │ │ ├── cstdint.patch │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-security-keyvault-administration-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ └── vcpkg.json │ ├── azure-security-keyvault-certificates-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-security-keyvault-keys-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-security-keyvault-secrets-cpp/ │ │ ├── portfile.cmake │ │ ├── set_version.patch │ │ ├── useragent.patch │ │ └── vcpkg.json │ ├── azure-storage-blobs-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-storage-common-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-storage-cpp/ │ │ ├── cmake.diff │ │ ├── fix-asio-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-storage-files-datalake-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-storage-files-shares-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-storage-queues-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-uamqp-c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-uhttp-c/ │ │ ├── package-location-fix-preview.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── azure-umqtt-c/ │ │ ├── package-location-fix-preview.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── b64/ │ │ ├── CMakeLists.txt │ │ ├── b64_dynamic_config.h │ │ ├── b64_static_config.h │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── windows-fix.patch │ ├── babl/ │ │ ├── portfile.cmake │ │ ├── remove-consistency-check.patch │ │ └── vcpkg.json │ ├── backward-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── baresip-libre/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bark/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── barkeep/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── basisu/ │ │ ├── devendor-zstd.diff │ │ ├── export-cmake-config.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bbalouki-itch/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bbstrader/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bcg729/ │ │ ├── disable-alt-packaging.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bddisasm/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bde/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bdwgc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── behaviortree-cpp/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── remove-source-charset.diff │ │ └── vcpkg.json │ ├── benchmark/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bento4/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── berkeleydb/ │ │ ├── CMakeLists.txt │ │ ├── fix-conflict-macro.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── better-enums/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-di/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-mp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-sml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-sml2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-text/ │ │ ├── fix-boost-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bext-ut/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bext-wintls/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bfgroup-lyra/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bgfx/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bigint/ │ │ ├── CMakeLists.txt │ │ ├── fix-osx-usage.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── binlog/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── binn/ │ │ ├── 0001_fix_uwp.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bit7z/ │ │ ├── fix_compile_options.patch │ │ ├── fix_dependency.patch │ │ ├── fix_install.patch │ │ ├── portfile.cmake │ │ ├── unofficial-bit7z-config.cmake.in │ │ └── vcpkg.json │ ├── bitmagic/ │ │ ├── fix-clang.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bitserializer/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bitsery/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── blake3/ │ │ ├── fix-windows-arm-build-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── blas/ │ │ ├── blas.pc.in │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── blaze/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── blend2d/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── blickfeld-qb2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── blingfire/ │ │ ├── ninja.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── blitz/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bloomberg-quantum/ │ │ ├── portfile.cmake │ │ ├── rename-config-file-and-namespace.patch │ │ └── vcpkg.json │ ├── blosc/ │ │ ├── 0001-fix-CMake-config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── blosc2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── blpapi/ │ │ ├── portfile.cmake │ │ ├── update-blpapi-lib-include-dir.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── bluescarni-tanuki/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boinc/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boolinq/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-accumulators/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-algorithm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-align/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-any/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-array/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-asio/ │ │ ├── 0001-add-options.patch │ │ ├── features.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-assert/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-assign/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-atomic/ │ │ ├── fix-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-beast/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-bimap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-bind/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-bloom/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-build/ │ │ ├── 0001-fix-get-version.patch │ │ ├── 0002-fix-emscripten.patch │ │ ├── 0003-workaround-MSVC-codegen-bug-in-17.5-on-ARM64.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-callable-traits/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-charconv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-chrono/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-circular-buffer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-cmake/ │ │ ├── 0001-vcpkg-build.patch │ │ ├── 0002-remove-prefix-and-suffix.patch │ │ ├── CMakeLists.txt.in │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── boost-cobalt/ │ │ ├── fail-on-compiler-not-supported.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-compat/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-compute/ │ │ ├── opt-filesystem.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-concept-check/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-config/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-container/ │ │ ├── portfile.cmake │ │ ├── posix-threads.diff │ │ └── vcpkg.json │ ├── boost-container-hash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-context/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-contract/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-conversion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-convert/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-core/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-coroutine/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-coroutine2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-crc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-date-time/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-describe/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-detail/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-dll/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-dynamic-bitset/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-endian/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-exception/ │ │ ├── features.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-fiber/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-filesystem/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-flyweight/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-foreach/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-format/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-function/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-function-types/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-functional/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-fusion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-geometry/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-gil/ │ │ ├── portfile.cmake │ │ ├── remove-boost-filesystem-dep.diff │ │ └── vcpkg.json │ ├── boost-graph/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-graph-parallel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-hana/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-hash2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-headers/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-heap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-histogram/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-hof/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-icl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-integer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-interprocess/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-interval/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-intrusive/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-io/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-iostreams/ │ │ ├── features.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-iterator/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-json/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-lambda/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-lambda2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-leaf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-lexical-cast/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-local-function/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-locale/ │ │ ├── features.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-lockfree/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-log/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-logic/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-math/ │ │ ├── build-old-libs.patch │ │ ├── features.cmake │ │ ├── opt-random.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-metaparse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-move/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-mp11/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-mpi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-mpl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-mqtt5/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-msm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-multi-array/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-multi-index/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-multiprecision/ │ │ ├── optional-random.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-mysql/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-nowide/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-numeric-conversion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-odeint/ │ │ ├── features.cmake │ │ ├── opt-mpi.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-openmethod/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-optional/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-outcome/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-parameter/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-parameter-python/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-parser/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-pfr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-phoenix/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-poly-collection/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-polygon/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-pool/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-predef/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-preprocessor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-process/ │ │ ├── fix-filesystem.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-program-options/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-property-map/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-property-map-parallel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-property-tree/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-proto/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-ptr-container/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-python/ │ │ ├── portfile.cmake │ │ ├── remove_undef.diff │ │ └── vcpkg.json │ ├── boost-qvm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-random/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-range/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-ratio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-rational/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-redis/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-regex/ │ │ ├── compat.diff │ │ ├── features.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-safe-numerics/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-scope/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-scope-exit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-serialization/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-signals2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-smart-ptr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-sort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-spirit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-stacktrace/ │ │ ├── features.cmake │ │ ├── fix_config-check.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-statechart/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-static-assert/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-static-string/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-stl-interfaces/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-system/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-test/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-thread/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-throw-exception/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-timer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-tokenizer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-tti/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-tuple/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-type-erasure/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-type-index/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-type-traits/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-typeof/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-ublas/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-uninstall/ │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── boost-units/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-unordered/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-url/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-utility/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-uuid/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-variant/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-variant2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-vmd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-wave/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-winapi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-xpressive/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boost-yap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── boringssl/ │ │ ├── 0001-static-gtest.patch │ │ ├── 0002-remove-WX-Werror.patch │ │ ├── 0003-fix-shared-symbol-visibility.patch │ │ ├── install-pc-files.cmake │ │ ├── openssl.pc.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── botan/ │ │ ├── botan-3.10-illegal-instruction.patch │ │ ├── configure │ │ ├── configure-zlib.patch │ │ ├── embed-debug-info.patch │ │ ├── fix-x86-msvc-amalgamation.patch │ │ ├── fix_android.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── verbose-install.patch │ ├── box2d/ │ │ ├── libm.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── braft/ │ │ ├── export-target.patch │ │ ├── fix-build.patch │ │ ├── fix-bvar-detail-sample.patch │ │ ├── fix-dependency.patch │ │ ├── fix-glog.patch │ │ ├── portfile.cmake │ │ ├── protobuf-6.patch │ │ ├── protobuf.patch │ │ └── vcpkg.json │ ├── breakpad/ │ │ ├── CMakeLists.txt │ │ ├── add-algorithm-1.patch │ │ ├── check_getcontext.cc │ │ ├── portfile.cmake │ │ ├── unofficial-breakpadConfig.cmake │ │ └── vcpkg.json │ ├── brigand/ │ │ ├── portfile.cmake │ │ ├── remove-tests.patch │ │ └── vcpkg.json │ ├── brotli/ │ │ ├── install.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── brpc/ │ │ ├── fix-build.patch │ │ ├── fix-warnings.patch │ │ ├── portfile.cmake │ │ ├── protobuf-6.patch │ │ └── vcpkg.json │ ├── brunocodutra-metal/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── brynet/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bshoshany-thread-pool/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bsio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── buck-yeh-bux/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── buck-yeh-bux-sqlite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bullet3/ │ │ ├── cmake-config-export.diff │ │ ├── cmake-version.diff │ │ ├── opencl.diff │ │ ├── portfile.cmake │ │ ├── tinyxml2.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── bungee/ │ │ ├── assert-win32-compat.patch │ │ ├── cmake-use-vcpkg-deps-and-install-layout.patch │ │ ├── pffft-include-path.patch │ │ ├── portfile.cmake │ │ ├── resample-msvc-noinline.patch │ │ ├── unofficial-bungee-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bustache/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── butteraugli/ │ │ ├── CMakeLists.txt │ │ ├── missing_header.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bw-sqlitemap/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bw-tempdir/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bxzstr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── byte-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── bzip2/ │ │ ├── CMakeLists.txt │ │ ├── bzip2.pc.in │ │ ├── fix-import-export-macros.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── bzip3/ │ │ ├── disable-man.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── c-ares/ │ │ ├── avoid-docs.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── c4core/ │ │ ├── disable-cpack.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── c89stringutils/ │ │ ├── no_flags.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── c9y/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cachelib/ │ │ ├── fix-build.patch │ │ ├── fix-glog.patch │ │ ├── fix-status-formmatable.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cadons-ctus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── caf/ │ │ ├── fix_cxx17.patch │ │ ├── fix_dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cairo/ │ │ ├── fix_clang-cl_build.patch │ │ ├── msvc-convenience.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cairomm/ │ │ ├── fix_include_path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── calceph/ │ │ ├── disable-gnu-source.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── camport3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── canvas-ity/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── capnproto/ │ │ ├── portfile.cmake │ │ ├── undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch │ │ └── vcpkg.json │ ├── capstone/ │ │ ├── 001-silence-windows-crt-secure-warnings.patch │ │ ├── 002-force-exportname-capstone.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cargs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── casadi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── casclib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── catch2/ │ │ ├── fix-install-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cblas/ │ │ ├── cblas.pc.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cccapstone/ │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ccd/ │ │ ├── fix-static.patch │ │ ├── portfile.cmake │ │ ├── support-emscripten.patch │ │ └── vcpkg.json │ ├── ccfits/ │ │ ├── dependencies.diff │ │ ├── dll_exports.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cctag/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cctz/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cddlib/ │ │ ├── 0001-disable-doc-target.patch │ │ ├── 0002-disable-dd-log.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cdt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── celero/ │ │ ├── fix-bin-install-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cello/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cereal/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ceres/ │ │ ├── 0001_cmakelists_fixes.patch │ │ ├── 0002_use_glog_target.patch │ │ ├── 0004_remove_broken_fake_ba_jac.patch │ │ ├── 0005_link_cuda_static.patch │ │ ├── 0006_fix_cuda_architectures.patch │ │ ├── 0007_support_cuda_13.patch │ │ ├── 0008_support_eigen3_5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cfitsio/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cgal/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cgicc/ │ │ ├── CMakeLists.txt │ │ ├── fix-define.patch │ │ ├── fix-static-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cglm/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cgltf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cgns/ │ │ ├── cgnsconfig.h │ │ ├── hdf5.patch │ │ ├── install-lib-linkage.diff │ │ ├── linux_lfs.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── chaiscript/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── chakracore/ │ │ ├── avoid_msvc_internal_STRINGIZE.patch │ │ ├── no-warning-as-error.props │ │ ├── portfile.cmake │ │ ├── unofficial-chakracore-config.cmake │ │ └── vcpkg.json │ ├── charls/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── chartdir/ │ │ ├── Config.cmake.in │ │ ├── chartdir.h │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── check/ │ │ ├── fix-lib-path.patch │ │ ├── linkage.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── chenjunfu2-nbt-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── chipmunk/ │ │ ├── export-targets.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── chmlib/ │ │ ├── CMakeLists.txt │ │ ├── all-platforms.patch │ │ ├── portfile.cmake │ │ ├── strings_h.patch │ │ └── vcpkg.json │ ├── chromaprint/ │ │ ├── pkgconfig-cxx-linkage.diff │ │ ├── pkgconfig-dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── chronoengine/ │ │ ├── 0001-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cialloo-rcon/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cimg/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cinatra/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cista/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cityhash/ │ │ ├── CMakeLists.txt │ │ ├── config.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── civetweb/ │ │ ├── disable_warnings.patch │ │ ├── fix-fseeko.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cjson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clamav/ │ │ ├── build.patch │ │ ├── cmakefiles.patch │ │ ├── curl.patch │ │ ├── isnt.patch │ │ ├── mspack.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clap-cleveraudio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clapack/ │ │ ├── FindLAPACK.cmake │ │ ├── arith_linux64.h │ │ ├── arith_osx.h │ │ ├── arith_win32.h │ │ ├── arith_win64.h │ │ ├── fix-ConfigFile.patch │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── remove_internal_blas.patch │ │ ├── support-uwp.patch │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── clara/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clay/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clblas/ │ │ ├── Fix-BuildDLL.patch │ │ ├── abs-arm.patch │ │ ├── cmake.patch │ │ ├── fix-cmake-4.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clblast/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cld3/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ ├── unofficial-cld3Config.cmake │ │ ├── unofficial-export.patch │ │ └── vcpkg.json │ ├── cleishm-frequency-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cleishm-thermo-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── clfft/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ ├── tweak-install.patch │ │ └── vcpkg.json │ ├── cli/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cli11/ │ │ ├── portfile.cmake │ │ ├── revert-1012-pkgconfig.diff │ │ └── vcpkg.json │ ├── clickhouse-cpp/ │ │ ├── fix-deps-and-build-type.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clipboardxx/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── unofficial-clipboardxx-config.cmake.in │ │ └── vcpkg.json │ ├── clipp/ │ │ ├── Fix-result_of-deprecated-in-C++20.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clipper2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── clockutils/ │ │ ├── add-missing-thread-header.patch │ │ ├── cmake4.patch │ │ ├── disable-werror.diff │ │ ├── fix-warningC4643.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clrng/ │ │ ├── 001-build-fixup.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── clue/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cmakerc/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cmark/ │ │ ├── add-feature-tools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cmark-gfm/ │ │ ├── add-feature-tools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cminpack/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cmocka/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cnats/ │ │ ├── fix-sodium-dep.patch │ │ ├── fix_install_path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cnl/ │ │ ├── disable-test.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cocoyaxi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin/ │ │ ├── expat.diff │ │ ├── openal.diff │ │ ├── portfile.cmake │ │ ├── remove-default-config.patch │ │ └── vcpkg.json │ ├── coin-or-buildtools/ │ │ ├── buildtools.patch │ │ ├── buildtools2.patch │ │ ├── disable-mkl.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin-or-cbc/ │ │ ├── disable_glpk.patch │ │ ├── pkgconf_win.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin-or-cgl/ │ │ ├── fix-c1083-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin-or-clp/ │ │ ├── dep.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin-or-ipopt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coin-or-osi/ │ │ ├── glpk.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coinutils/ │ │ ├── coinutils.patch │ │ ├── coinutils2.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── collada-dom/ │ │ ├── fix-compatibility-with-boost-1.85.patch │ │ ├── fix-emscripten.patch │ │ ├── fix-shared-keyword.patch │ │ ├── portfile.cmake │ │ ├── use-uriparser.patch │ │ ├── use-vcpkg-minizip.patch │ │ ├── vcpkg.json │ │ └── vs-version-detection.patch │ ├── colmap/ │ │ ├── add-missing-cassert.patch │ │ ├── no-glu.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── color-console/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── commata/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── comms/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── comms-ublox/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── commsdsl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── compoundfilereader/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── concurrencpp/ │ │ ├── add-include-chrono.patch │ │ ├── add-include-string.patch │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── concurrentqueue/ │ │ ├── portfile.cmake │ │ ├── unofficial-concurrentqueue-config.cmake │ │ └── vcpkg.json │ ├── configcat/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── conjure-enum/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── console-bridge/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── constexpr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── constexpr-contracts/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── continuable/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── convectionkernels/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── coolprop/ │ │ ├── cmake-project-include.cmake │ │ ├── fix-builderror.patch │ │ ├── fix-dependency.patch │ │ ├── fix-install.patch │ │ ├── fmt-fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── copypp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── coroutine/ │ │ ├── add-noexcept-to-frame.patch │ │ ├── fix-errorC7651.patch │ │ ├── gsl-4_0_0.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── corrade/ │ │ ├── build-corrade-rc-always.patch │ │ ├── clang-16.patch │ │ ├── fix-vs2019.patch │ │ ├── missing-headers.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── correlation-vector-cpp/ │ │ ├── correlation-vector.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-async/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-base64/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-channel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-exiftool/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-httplib/ │ │ ├── fix-find-brotli.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-ipc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-jwt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-kana/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-lazy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-peglib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-pinyin/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-redis/ │ │ ├── fix-sleep_for.patch │ │ ├── portfile.cmake │ │ ├── tacopie/ │ │ │ └── CMakeLists.txt │ │ └── vcpkg.json │ ├── cpp-smtpclient-library/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpp-sort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpp-timsort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppad/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppadcodegen/ │ │ ├── change_main_cmake.diff │ │ ├── portfile.cmake │ │ ├── undef_CONST.diff │ │ └── vcpkg.json │ ├── cppcms/ │ │ ├── dependencies.diff │ │ ├── dllexport.diff │ │ ├── fix_narrowing_error.patch │ │ ├── no-tests-and-examples.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppcodec/ │ │ ├── 0001-Fix-62.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppcoro/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppdap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppfs/ │ │ ├── portfile.cmake │ │ ├── ssh-dependencies.diff │ │ └── vcpkg.json │ ├── cppgraphqlgen/ │ │ ├── 356.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppitertools/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppkafka/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppmicroservices/ │ │ ├── devendor_boost_absl.patch │ │ ├── fix_strnicmp.patch │ │ ├── portfile.cmake │ │ ├── remove-ut-macro.patch │ │ ├── vcpkg.json │ │ └── werror.patch │ ├── cppp-reiconv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpprealm/ │ │ ├── disable-werror.diff │ │ ├── missing-cstdint.diff │ │ ├── portfile.cmake │ │ ├── remove-overzealous-template.diff │ │ └── vcpkg.json │ ├── cpprestsdk/ │ │ ├── fix-asio-error.patch │ │ ├── fix-clang-dllimport.patch │ │ ├── fix-find-openssl.patch │ │ ├── fix-uwp.patch │ │ ├── fix_narrowing.patch │ │ ├── portfile.cmake │ │ ├── silence-stdext-checked-array-iterators-warning.patch │ │ ├── test.patch │ │ └── vcpkg.json │ ├── cppslippi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cpptoml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpptrace/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cppunit/ │ │ ├── CMakeLists.txt │ │ ├── CppUnitConfig.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpputest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppvrf/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cppwinrt/ │ │ ├── cppwinrt-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cppxaml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cppzmq/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpr/ │ │ ├── disable_werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpu-features/ │ │ ├── 0001-ndk-compat-export-include-dirs.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── usage_android │ │ └── vcpkg.json │ ├── cpuid/ │ │ ├── fix-LNK2019.patch │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cpuinfo/ │ │ ├── add-clog-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── crashpad/ │ │ ├── crashpad-memset-errors-5758170.diff │ │ ├── crashpadConfig.cmake.in │ │ ├── fix-lib-name-conflict-1.patch │ │ ├── fix-lib-name-conflict.patch │ │ ├── fix-linux.patch │ │ ├── fix-std-20.patch │ │ ├── ndk-toolchain.diff │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── zlib.gn │ ├── crashrpt/ │ │ ├── 001-add-install-target-and-find-deps.patch │ │ ├── 002-fix-wtl-includepath.patch │ │ ├── 003-add-definition-UNICODE.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── crc32c/ │ │ ├── fix_clang-cl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── crcpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── crfsuite/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── croncpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── crossdb/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── crossguid/ │ │ ├── missing-include-cstdint.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── warnings.patch │ ├── crow/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── cryptopp/ │ │ ├── cryptopp.patch │ │ ├── patch.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cserialport/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cspice/ │ │ ├── CMakeLists.txt │ │ ├── License.txt │ │ ├── isatty.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctbench/ │ │ ├── fix_build_with_boost_1_88_0.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctbignum/ │ │ ├── no-boost.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctemplate/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cthash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctpg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctre/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ctstraffic/ │ │ ├── portfile.cmake │ │ ├── prepare_for_build.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cubeb/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cuda/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── vcpkg_find_cuda.cmake │ ├── cuda-api-wrappers/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cudnn/ │ │ ├── FindCUDNN.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── cudnn-frontend/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cunit/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── curl/ │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── curlcpp/ │ │ ├── fix-cmake.patch │ │ ├── obsolete-curlopt.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── curlpp/ │ │ ├── fix-cmake.patch │ │ ├── fix-findzliberror.patch │ │ ├── obsolete-curlopt.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── curve-coco/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── cute-headers/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cutelyst2/ │ │ ├── fix-static-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cwalk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cwapi3d/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cxxgraph/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cxxopts/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cyclonedds/ │ │ ├── enable-security.patch │ │ ├── idlc-generate.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── cyclonedds-cxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── cyrus-sasl/ │ │ ├── configure.diff │ │ ├── fix-gcc14-time-includes.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── czmq/ │ │ ├── Findlibcurl.cmake │ │ ├── Findlibmicrohttpd.cmake │ │ ├── Findlibzmq.cmake │ │ ├── Findlz4.cmake │ │ ├── Finduuid.cmake │ │ ├── fix-dependencies.patch │ │ ├── link-log-on-android.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── d3d12-memory-allocator/ │ │ ├── 0001-build-options.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── d3dx12/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dacap-clip/ │ │ ├── fix-install-header-and-force-static-compilation.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dagir/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── darknet/ │ │ ├── android.diff │ │ ├── installation.diff │ │ ├── msvc-names.diff │ │ ├── portfile.cmake │ │ ├── purely-openmp_cxx-target.diff │ │ ├── system-processor.diff │ │ ├── vcpkg.json │ │ ├── version-info.diff │ │ └── windows-getopt.diff │ ├── darts-clone/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dartsim/ │ │ ├── 0001-dependencies.patch │ │ ├── 0002-devendor-lodepng.patch │ │ ├── 0003-disable_unit_tests_examples_and_tutorials.patch │ │ ├── 0004-pkgconfig.patch │ │ ├── 0005-add-cassert.patch │ │ ├── 0006-support-eigen3-5.patch │ │ ├── 0007-fix-imgui.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dataframe/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── date/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── datraw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dav1d/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── daw-header-libraries/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── daw-json-link/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── daw-utf-range/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dawn/ │ │ ├── 000-fix-emdawnwebgpu.patch │ │ ├── 001-fix-windows-build.patch │ │ ├── 002-fix-uwp.patch │ │ ├── 003-fix-d3d11.patch │ │ ├── 004-deps.patch │ │ ├── 005-bsd-support.patch │ │ ├── 006-msvc-spirv-tools-disable-warnaserror.patch │ │ ├── 007-fix-tint-null-only-writer.patch │ │ ├── 008-wrong-dxcapi-include.patch │ │ ├── 009-fix-tint-install.patch │ │ ├── 010-fix-glslang.patch │ │ ├── 011-fix-dxc.patch │ │ ├── DawnConfig.cmake │ │ ├── portfile.cmake │ │ ├── unofficial_webgpu_dawn.pc.in │ │ ├── usage │ │ └── vcpkg.json │ ├── daxa/ │ │ ├── daxa_swp_current_cpu_timeline_value.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dbg-macro/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dbghelp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dbow2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dbow3/ │ │ ├── add-cstdint.diff │ │ ├── fix_cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dbus/ │ │ ├── cmake.dep.patch │ │ ├── getpeereid.patch │ │ ├── libsystemd.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── remove-path.patch │ │ ├── remove-var-lib-dbus-creation.patch │ │ └── vcpkg.json │ ├── dbus-cxx/ │ │ ├── create-cmakeconfig.patch │ │ ├── portfile.cmake │ │ ├── use-cmakeconfig.patch │ │ └── vcpkg.json │ ├── dcmtk/ │ │ ├── dcmtk.patch │ │ ├── dependencies.diff │ │ ├── dictionary_paths.patch │ │ ├── disable-test-setup.diff │ │ ├── msvc.diff │ │ ├── pkgconfig-lib-order.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ddtdanilo-lmdb-wrapper/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── debug-assert/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── decimal-for-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── delaunator-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── deniskovalchuk-libftp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── detours/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── devicenameresolver/ │ │ ├── CMakeLists.txt │ │ ├── add-string-headfile.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── devil/ │ │ ├── 0001_fix-encoding.patch │ │ ├── 0002_fix-missing-mfc-includes.patch │ │ ├── 0003_fix-openexr.patch │ │ ├── 0004_compatible-jasper-2-0-20.patch │ │ ├── 0005-fix-pkgconfig.patch │ │ ├── 0006-fix-ilut-header.patch │ │ ├── 0007-remove_register_keyword_cpp17.patch │ │ ├── enable-static.patch │ │ ├── jasper-4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dimcli/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dingo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── directfb2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── directx-dxc/ │ │ ├── directx-dxc-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── directx-headers/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── directx12-agility/ │ │ ├── directx12-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── directxmath/ │ │ ├── Linux-SHMath-SAL.patch │ │ ├── MinGW-fix.patch │ │ ├── portfile.cmake │ │ ├── powerpc64le.patch │ │ ├── shmathusage │ │ ├── usage │ │ └── vcpkg.json │ ├── directxmesh/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── directxsdk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── directxtex/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── xboxusage │ ├── directxtk/ │ │ ├── CMake-build-options-improvements.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── directxtk12/ │ │ ├── CMake-build-options-improvements.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dirent/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── discord-game-sdk/ │ │ ├── CMakeLists.txt │ │ ├── copyright │ │ ├── include-cstdint.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── discord-rpc/ │ │ ├── disable-downloading.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── discordcoreapi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── discount/ │ │ ├── blocktags │ │ ├── cmake.patch │ │ ├── disable-deprecated-warnings.patch │ │ ├── generate-blocktags-command.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── discreture/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── distorm/ │ │ ├── CMakeLists.txt │ │ ├── fix-arm-builds.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dlfcn-win32/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dlib/ │ │ ├── find_blas.patch │ │ ├── fix-dependencies.patch │ │ ├── fix-lapack.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dlpack/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dmlc/ │ │ ├── cxx-fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── docopt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── docraft/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── doctest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── double-conversion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dp-thread-pool/ │ │ ├── include.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dpdk/ │ │ ├── 0001-enable-either-static-or-shared-build.patch │ │ ├── 0002-fix-dependencies.patch │ │ ├── 0003-remove-examples-src-from-datadir.patch │ │ ├── 0004-stop-building-apps.patch │ │ ├── 0005-no-absolute-driver-path.patch │ │ ├── 0006-rename-sched.h.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── draco/ │ │ ├── disable-symlinks.patch │ │ ├── fix-compile-error-uwp.patch │ │ ├── fix-pkgconfig.patch │ │ ├── fix-uwperror.patch │ │ ├── install-linkage.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── drekar-launch-process-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── drlibs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── drogon/ │ │ ├── 0001-vcpkg.patch │ │ ├── 0002-drogon-config.patch │ │ ├── 0003-deps-redis.patch │ │ ├── 0004-drogon-ctl.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dstorage/ │ │ ├── dstorage-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dtl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── duckdb/ │ │ ├── library-linkage-excel.diff │ │ ├── library-linkage-httpfs.diff │ │ ├── library-linkage.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── duckx/ │ │ ├── fix_dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── duilib/ │ │ ├── enable-static.patch │ │ ├── fix-arm-build.patch │ │ ├── fix-encoding.patch │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dukglue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── duktape/ │ │ ├── CMakeLists.txt │ │ ├── duktapeConfig.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dumb/ │ │ ├── check-for-math-lib.patch │ │ ├── do-not-overwrite-cflags.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── duvc-ctl/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dv-processing/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dxcam-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dxsdk-d3dx/ │ │ ├── dxsdk-d3dx-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dxut/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── dylib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── dyno/ │ │ ├── fix-deps.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── e-dant-watcher/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eabase/ │ │ ├── EABaseConfig.cmake.in │ │ ├── fix_cmake_install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── earcut-hpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eastl/ │ │ ├── 0001-fix-cmake-install.patch │ │ ├── 0002-fix-error-C2338.patch │ │ ├── EASTLConfig.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── easy-profiler/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── easycl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── easyexif/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── easyhook/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── easyloggingpp/ │ │ ├── 0001_add_cmake_options.patch │ │ ├── 0002_fix_build_uwp.patch │ │ ├── 0003_fix_pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── eathread/ │ │ ├── EAThreadConfig.cmake.in │ │ ├── fix_cmake_install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ebml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ecal/ │ │ ├── 0001-disable-app-plugins.patch │ │ ├── 0002-fix-build.patch │ │ ├── 0003-fix-dependencies.patch │ │ ├── 0004-install-cmake-files-to-share.patch │ │ ├── 0005-remove-install-prefix-macro-value.patch │ │ ├── 0006-use-find_dependency-in-cmake-config.patch │ │ ├── 0007-allow-static-build-of-core.patch │ │ ├── 0008-protobuf-linkage.patch │ │ ├── 0009-protobuf-6.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ecaludp/ │ │ ├── find-recycle.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ecm/ │ │ ├── fix-wrong-version.patch │ │ ├── fix_generateqmltypes.patch │ │ ├── kde-clang-format.diff │ │ ├── portfile.cmake │ │ ├── uniform-dataroot-dir.patch │ │ ├── uniform-libexec-dir.patch │ │ ├── uniform-plugin-dir.patch │ │ ├── usage │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── ecos/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ed25519/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── edflib/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── edlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── effects11/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── effolkronium-random/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── efsw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── egl/ │ │ ├── egl.pc.in │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── egl-registry/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eigen3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eipscanner/ │ │ ├── package.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── elements/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── elfio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── elfutils/ │ │ ├── disable-werror.diff │ │ ├── link-libs.diff │ │ ├── portfile.cmake │ │ ├── rpath-link.diff │ │ ├── static-tools.diff │ │ └── vcpkg.json │ ├── eljonny-testcpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── embree/ │ │ ├── avoid-library-conflicts.diff │ │ ├── cmake-config.diff │ │ ├── no-runtime-install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── enchantum/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── enet/ │ │ ├── fix-export.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── enkits/ │ │ ├── fix_shared_install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ensmallen/ │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── entityx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── entt/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── epoll-shim/ │ │ ├── 000-install-pkg-config-into-standard-location.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eraser/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── ereignis/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── esaxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ethindp-prism/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── etl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── eve/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── eventpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── evpp/ │ │ ├── Add-static-shared-handling.patch │ │ ├── Export-unofficial-target.patch │ │ ├── basic-fixes.diff │ │ ├── dependencies.diff │ │ ├── fix-osx-build.patch │ │ ├── fix-rapidjson-1-1.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── exiv2/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── expat/ │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── expected-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── exprtk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ezc3d/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ezfoundation/ │ │ ├── ezFoundation_vcpkg.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── f3d/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── faad2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fadbad/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── faiss/ │ │ ├── msvc-template.diff │ │ ├── portfile.cmake │ │ ├── undef-small.diff │ │ └── vcpkg.json │ ├── fakeit/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── faker-cxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fameta-counter/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fann/ │ │ ├── fix-build_type.patch │ │ ├── fix-installation.patch │ │ ├── fix-uwp-build.patch │ │ ├── portfile.cmake │ │ ├── remove-nouse-target.patch │ │ └── vcpkg.json │ ├── farmhash/ │ │ ├── farmhashConfig.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fast-cpp-csv-parser/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fast-double-parser/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fast-float/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fast-obj/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastcdr/ │ │ ├── pdb-file.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastcgi/ │ │ ├── dll.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastdds/ │ │ ├── disable-werror.patch │ │ ├── fix-deps.patch │ │ ├── include-cstdint.patch │ │ ├── pdb-file.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fastfeat/ │ │ ├── CMakeLists.txt │ │ ├── fastfeat.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastgltf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastlz/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fastpfor/ │ │ ├── fix-arm-checker.patch │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── faudio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fawdlstty-libfv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fbgemm/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fbthrift/ │ │ ├── fix-deps.patch │ │ ├── fix-fmt-include.patch │ │ ├── fix-test.patch │ │ ├── folly-has-liburing.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fcl/ │ │ ├── 0001-fix-cxx-standard.patch │ │ ├── 0002-fix-eigen3.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fdk-aac/ │ │ ├── cmake_fix.patch │ │ ├── cxx-linkage-pkgconfig.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fdlibm/ │ │ ├── CMakeLists.txt │ │ ├── libm5.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fenster/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ffmpeg/ │ │ ├── 0001-create-lib-libraries.patch │ │ ├── 0002-fix-msvc-link.patch │ │ ├── 0003-fix-windowsinclude.patch │ │ ├── 0004-dependencies.patch │ │ ├── 0005-fix-nasm.patch │ │ ├── 0007-fix-lib-naming.patch │ │ ├── 0013-define-WINVER.patch │ │ ├── 0020-fix-aarch64-libswscale.patch │ │ ├── 0024-fix-osx-host-c11.patch │ │ ├── 0040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch │ │ ├── 0042-fix-arm64-linux.patch │ │ ├── 0044-fix-vulkan-debug-callback-abi.patch │ │ ├── 0045-use-prebuilt-bin2c.patch │ │ ├── 0046-fix-msvc-detection.patch │ │ ├── FindFFMPEG.cmake.in │ │ ├── build.sh.in │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── ffmpeg-bin2c/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ffnvcodec/ │ │ ├── LICENSE.txt │ │ ├── build.sh │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fftw3/ │ │ ├── aligned_malloc.patch │ │ ├── bigobj.patch │ │ ├── fftw3_arch_fix.patch │ │ ├── fix-openmp.patch │ │ ├── fix-wrong-version.patch │ │ ├── install-subtargets.patch │ │ ├── neon.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fftwpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fineftp/ │ │ ├── asio.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fins/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fixed-containers/ │ │ ├── add-install-configuration.patch │ │ ├── fixed_containersConfig.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fixed-math/ │ │ ├── disable-cpm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fixed-string/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fizz/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fkyaml/ │ │ ├── fix-natvis-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flagpp/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── flann/ │ │ ├── fix-dep-lz4.patch │ │ ├── fix-dependency-hdf5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flash-runtime-extensions/ │ │ ├── README.md │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flashlight-cpu/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flashlight-cuda/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flashlight-sequence/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flashlight-text/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flat/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flatbuffers/ │ │ ├── fix-runtime-flags-msvc.patch │ │ ├── fix-uwp-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flatbush/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flatcc/ │ │ ├── fix_install_dir.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── flecs/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── flint/ │ │ ├── fix-static.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fltk/ │ │ ├── config-path.patch │ │ ├── dependencies.patch │ │ ├── fix-system-link.patch │ │ ├── include.patch │ │ ├── math-h-polyfill.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fluidlite/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fluidsynth/ │ │ ├── cxx-linkage-pkgconfig.diff │ │ ├── fix-gcem.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── flux/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fmem/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fmi4cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fmilib/ │ │ ├── devendor-sublibs.diff │ │ ├── fix-mergestaticlibs.diff │ │ ├── minizip.patch │ │ ├── portfile.cmake │ │ ├── unofficial-export.diff │ │ ├── unofficial-fmilib-config.cmake │ │ └── vcpkg.json │ ├── fmt/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── folly/ │ │ ├── disable-uninitialized-resize-on-new-stl.patch │ │ ├── fix-deps.patch │ │ ├── fix-perf_scoped-target.patch │ │ ├── fix-unistd-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── font-chef/ │ │ ├── disable-warnings-as-errors.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── font-util/ │ │ ├── build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fontconfig/ │ │ ├── dllexport.diff │ │ ├── fix-wasm-shared-memory-atomics.patch │ │ ├── libgetopt.patch │ │ ├── libintl.diff │ │ ├── no-etc-symlinks.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── foonathan-lexy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── foonathan-memory/ │ │ ├── backport-0f5ebe9f.diff │ │ ├── config-debug.diff │ │ ├── config_impl.hpp │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── forge/ │ │ ├── cmake_config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── foxi/ │ │ ├── portfile.cmake │ │ ├── remove-test-targets.patch │ │ └── vcpkg.json │ ├── fp16/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── freealut/ │ │ ├── cmake_builds.patch │ │ ├── portfile.cmake │ │ ├── unix_headers.patch │ │ └── vcpkg.json │ ├── freeglut/ │ │ ├── android.patch │ │ ├── fix-debug-macro.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg.json │ │ ├── windows-output-name.patch │ │ └── x11-dependencies-export.patch │ ├── freeimage/ │ │ ├── CMakeLists.txt │ │ ├── FreeImageConfig-dynamic.h │ │ ├── FreeImageConfig-static.h │ │ ├── disable-plugins-depending-on-internal-third-party-libraries.patch │ │ ├── fix-function-overload.patch │ │ ├── portfile.cmake │ │ ├── rawlib-build-fix.patch │ │ ├── remove_auto_ptr.patch │ │ ├── typedef-xcode.patch │ │ ├── use-external-jpeg.patch │ │ ├── use-external-jxrlib.patch │ │ ├── use-external-libtiff.patch │ │ ├── use-external-openexr.patch │ │ ├── use-external-openjpeg.patch │ │ ├── use-external-png-zlib.patch │ │ ├── use-external-rawlib.patch │ │ ├── use-external-webp.patch │ │ ├── use-freeimage-config-include.patch │ │ ├── use-functions-to-override-libtiff-warning-error-handlers.patch │ │ ├── use-typedef-as-already-declared.patch │ │ └── vcpkg.json │ ├── freerdp/ │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.patch │ │ ├── ffmpeg.diff │ │ ├── install-layout.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── windows-linkage.patch │ ├── freetds/ │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── freetype/ │ │ ├── 0003-Fix-UWP.patch │ │ ├── brotli-static.patch │ │ ├── bzip2.patch │ │ ├── fix-exports.patch │ │ ├── portfile.cmake │ │ ├── subpixel-rendering.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── freetype-gl/ │ │ ├── 0001-Link-to-dependencies-also-for-static-build.patch │ │ ├── 0002-Remove-duplicate-installs.patch │ │ ├── 0003-Add-exports.patch │ │ ├── 0004-Change-install-dir-for-pkgconfig.patch │ │ ├── 0005-add-version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── freexl/ │ │ ├── android-builtin-iconv.diff │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ ├── subdirs.patch │ │ └── vcpkg.json │ ├── frei0r/ │ │ ├── install-dlls-to-bin.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fribidi/ │ │ ├── meson-crosscompile.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── frozen/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── frugally-deep/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fruit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ftgl/ │ │ ├── 02_enable-cpp11-std.patch │ │ ├── fix-cmake.diff │ │ ├── fix-gl-flags.diff │ │ ├── freetype-usage.diff │ │ ├── install-pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ftxui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── function2/ │ │ ├── disable-testing.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── functionalplus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── functions-framework-cpp/ │ │ ├── fix-asio-error.patch │ │ ├── fix-integral-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── future-config/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fuzzylite/ │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── fxaudio/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── fxdiv/ │ │ ├── add-cmake-config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── g2o/ │ │ ├── 0001-dependencies.patch │ │ ├── 0002-fix-absolute.patch │ │ ├── 0003-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── g3log/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gainput/ │ │ ├── fix-build.patch │ │ ├── install_as_cmake_package.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gamedev-framework/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gameinput/ │ │ ├── CMakeLists.txt.in │ │ ├── gameinput-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gamenetworkingsockets/ │ │ ├── fix-depend-protobuf.patch │ │ ├── portfile.cmake │ │ ├── protobuf-6.patch │ │ └── vcpkg.json │ ├── gamma/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gapp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gasol/ │ │ ├── fix-install.patch │ │ ├── gasol.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gaussianlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gcem/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gdal/ │ │ ├── cmake-project-include.cmake │ │ ├── find-link-libraries.patch │ │ ├── fix-gdal-target-interfaces.patch │ │ ├── iconv.diff │ │ ├── libkml.patch │ │ ├── portfile.cmake │ │ ├── sqlite3.diff │ │ ├── target-is-valid.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── gdbm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gdcm/ │ │ ├── copyright.diff │ │ ├── no-absolute-paths.diff │ │ ├── portfile.cmake │ │ ├── prefer-config.diff │ │ └── vcpkg.json │ ├── gdk-pixbuf/ │ │ ├── fix-static-deps.patch │ │ ├── fix_build_error_windows.patch │ │ ├── loaders-cache.patch │ │ ├── portfile.cmake │ │ ├── use-libtiff-4-pkgconfig.patch │ │ └── vcpkg.json │ ├── gegl/ │ │ ├── disable_tests.patch │ │ ├── portfile.cmake │ │ ├── remove-consistency-check.patch │ │ ├── remove_execinfo_support.patch │ │ └── vcpkg.json │ ├── gemmlowp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── genann/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── geogram/ │ │ ├── Config.cmake.in │ │ ├── fix-vcpkg-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── geographiclib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── geos/ │ │ ├── fix-exported-config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── geotrans/ │ │ ├── CMakeLists.txt │ │ ├── geotrans-config.in.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── getdns/ │ │ ├── disable-docs.patch │ │ ├── fix-include.patch │ │ ├── fix-libuv-deps.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── getopt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── getopt-win32/ │ │ ├── portfile.cmake │ │ ├── static-output-name.diff │ │ ├── unofficial-getopt-win32-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gettext/ │ │ ├── 0001-xgettext-Fix-some-test-failures-on-MSVC.patch │ │ ├── 0003-Fix-win-unicode-paths.patch │ │ ├── assume-modern-darwin.patch │ │ ├── bashify.cmake │ │ ├── config-step-order.patch │ │ ├── env.patch │ │ ├── install-autopoint.cmake │ │ ├── parallel-gettext-tools.patch │ │ ├── portfile.cmake │ │ ├── rel_path.patch │ │ ├── subdirs.patch │ │ ├── uwp.patch │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── gettext-libintl/ │ │ ├── 0003-Fix-win-unicode-paths.patch │ │ ├── bashify.cmake │ │ ├── detect/ │ │ │ └── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── uwp.patch │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── gettimeofday/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── gettimeofday.c │ │ ├── gettimeofday.def │ │ ├── gettimeofday.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gexiv2/ │ │ ├── msvc_def.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gflags/ │ │ ├── 0001-patch-dir.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── ggml/ │ │ ├── cmake-config.diff │ │ ├── fix-dequant_funcs.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── relax-link-options.diff │ │ ├── vcpkg.json │ │ └── vulkan-shaders-gen.diff │ ├── ghc-filesystem/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gherkin-c/ │ │ ├── fix-include-path.patch │ │ ├── fix-install-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── giflib/ │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── msvc.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── ginkgo/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gklib/ │ │ ├── build-fixes.patch │ │ ├── portfile.cmake │ │ ├── regex.patch │ │ └── vcpkg.json │ ├── gl2ps/ │ │ ├── portfile.cmake │ │ ├── separate-static-dynamic-build.patch │ │ └── vcpkg.json │ ├── gl3w/ │ │ ├── 0001-enable-shared-build.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glad/ │ │ ├── encoding.patch │ │ ├── find_python.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glaze/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glbinding/ │ │ ├── 0001_force-system-install.patch │ │ ├── 0002_fix-uwpmacro.patch │ │ ├── 0003_fix-cmake-configs-paths.patch │ │ ├── 0004_fix-config-expected-paths.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── glew/ │ │ ├── fix-LNK2019.patch │ │ ├── portfile.cmake │ │ ├── trim-build.diff │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── glfw3/ │ │ ├── glfw3Config.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gli/ │ │ ├── disable-test.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glib/ │ │ ├── libintl.patch │ │ ├── portfile.cmake │ │ ├── use-libiconv-on-windows.patch │ │ └── vcpkg.json │ ├── glib-networking/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── glibmm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glm/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── globjects/ │ │ ├── fix-dependency-glm.patch │ │ ├── portfile.cmake │ │ ├── system-install.patch │ │ └── vcpkg.json │ ├── glog/ │ │ ├── fix_crosscompile_symbolize.patch │ │ ├── fix_glog_CMAKE_MODULE_PATH.patch │ │ ├── glog_disable_debug_postfix.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── gloo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glpk/ │ │ ├── configure.ac.patch │ │ ├── glpk.pc.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── glslang/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── glui/ │ │ ├── install-one-flavor.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── gmime/ │ │ ├── msvc-ssize_t.diff │ │ ├── portfile.cmake │ │ ├── subdirs.diff │ │ └── vcpkg.json │ ├── gmmlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gmp/ │ │ ├── arm64-coff.patch │ │ ├── asmflags.patch │ │ ├── c23.patch │ │ ├── cross-tools.patch │ │ ├── msvc_symbol.patch │ │ ├── portfile.cmake │ │ ├── remove_compiler_info.patch │ │ ├── subdirs.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── gmsh/ │ │ ├── installdirs.diff │ │ ├── linking-and-naming.diff │ │ ├── opencascade.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gobject-introspection/ │ │ ├── 0001-g-ir-tool-template.in.patch │ │ ├── gir-scanner-runtime.diff │ │ ├── portfile.cmake │ │ ├── setuptools-compat.patch │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── godot-cpp/ │ │ ├── packagable.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── goldy/ │ │ ├── goldy-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── google-cloud-cpp/ │ │ ├── fix-googleapis-download.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gperf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gperftools/ │ │ ├── cmake-project-include.cmake │ │ ├── install.diff │ │ ├── libunwind.diff │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── win32-override.diff │ ├── gpgme/ │ │ ├── disable-docs.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gpgmepp/ │ │ ├── cmake-config.diff │ │ ├── dependencies.diff │ │ ├── disable-docs.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gpgmm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gppanel/ │ │ ├── 00001-fix-build.patch │ │ ├── CMakeLists.txt │ │ ├── fix-missing-headers.patch │ │ ├── portfile.cmake │ │ ├── use-complex-header.patch │ │ └── vcpkg.json │ ├── graaf/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── grantlee/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── graphene/ │ │ ├── fix_clang-cl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── graphicsmagick/ │ │ ├── dependencies.diff │ │ ├── magick-types.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── graphite2/ │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── graphviz/ │ │ ├── build.diff │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.diff │ │ ├── install.diff │ │ ├── no-absolute-paths.patch │ │ ├── portfile.cmake │ │ ├── skip-configure-plugins.diff │ │ ├── vcpkg.json │ │ └── version.diff │ ├── greatest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── grpc/ │ │ ├── 00001-fix-uwp.patch │ │ ├── 00002-static-linking-in-linux.patch │ │ ├── 00004-link-gdi32-on-windows.patch │ │ ├── 00005-fix-uwp-error.patch │ │ ├── 00006-utf8-range.patch │ │ ├── 00015-disable-download-archive.patch │ │ ├── 00016-fix-plugin-targets.patch │ │ ├── 00017-add-missing-include-file.patch │ │ ├── gRPCTargets-vcpkg-tools.cmake │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── grppi/ │ │ ├── fix-build-error.patch │ │ ├── fix-support-other-compilers.patch │ │ ├── portfile.cmake │ │ ├── tbb.patch │ │ └── vcpkg.json │ ├── gsasl/ │ │ ├── configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gsl/ │ │ ├── 0001-configure.patch │ │ ├── 0002-add-fp-control.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── gsl-lite/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gsoap/ │ │ ├── fix-build-in-windows.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gst-rtsp-server/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gstreamer/ │ │ ├── duplicate-unused.diff │ │ ├── fix-bz2-windows-debug-dependency.patch │ │ ├── fix-clang-cl.patch │ │ ├── fix-multiple-def.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── x264-api-imports.diff │ ├── gtest/ │ │ ├── 001-fix-UWP-death-test.patch │ │ ├── clang-tidy-no-lint.patch │ │ ├── fix-main-lib-path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gtk/ │ │ ├── 0001-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gtk3/ │ │ ├── 0001-build.patch │ │ ├── avoid-multiple-definition.diff │ │ ├── cairo-cpp-linkage.patch │ │ ├── egl-conditional.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gtkmm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gtl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gts/ │ │ ├── CMakeLists.txt │ │ ├── fix-dllexport.patch │ │ ├── portfile.cmake │ │ ├── predicates_init.h │ │ ├── usage │ │ └── vcpkg.json │ ├── gtsam/ │ │ ├── build-fixes.patch │ │ ├── eigen3-fixes.patch │ │ ├── path-fixes.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── guetzli/ │ │ ├── CMakeLists.txt │ │ ├── butteraugli.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── guile/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── guilite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gul14/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gul17/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gumbo/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-cmake/ │ │ ├── find-modules.diff │ │ ├── gz-find-package.diff │ │ ├── gz-import-target.diff │ │ ├── lock-dependencies.diff │ │ ├── pkg-check-modules.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── gz-common/ │ │ ├── 003-include-chrono.patch │ │ ├── gdal-3.11.diff │ │ ├── gz-utils3-log.diff │ │ ├── gz_remotery_vis.patch │ │ ├── portfile.cmake │ │ ├── pthread.diff │ │ └── vcpkg.json │ ├── gz-fuel-tools/ │ │ ├── portfile.cmake │ │ ├── remove_docs.patch │ │ └── vcpkg.json │ ├── gz-gui/ │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-math/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-msgs/ │ │ ├── cmake-project-include.cmake │ │ ├── move_bin_to_tools.patch │ │ ├── portfile.cmake │ │ ├── pthread.diff │ │ ├── remove_ruby.patch │ │ └── vcpkg.json │ ├── gz-physics/ │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-plugin/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-rendering/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-sensors/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-sim/ │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-tools/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gz-transport/ │ │ ├── portfile.cmake │ │ ├── uuid-osx.patch │ │ └── vcpkg.json │ ├── gz-utils/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── gzip-hpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── h3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── h5py-lzf/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-h5py-lzf-config.cmake │ │ └── vcpkg.json │ ├── half/ │ │ ├── literal_operator.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── halide/ │ │ ├── portfile.cmake │ │ ├── usage.in │ │ └── vcpkg.json │ ├── hanjingo-high-jump/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── happly/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hareflow/ │ │ ├── fix-asio-error.patch │ │ ├── fix-missing-headers.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── harfbuzz/ │ │ ├── fix-win32-build.patch │ │ ├── harfbuzzConfig.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hash-library/ │ │ ├── 001-fix-macos.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hashids/ │ │ ├── hashids.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hayai/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hazelcast-cpp-client/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hdf5/ │ │ ├── default-plugin-dir.diff │ │ ├── libaec-config.diff │ │ ├── mpi-flags.diff │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── win-compile-flags.diff │ ├── hdr-histogram/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── healpix/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hedley/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hello-imgui/ │ │ ├── cmake-config.diff │ │ ├── disable-sdl-android.patch │ │ ├── fix-vulkan-binding.patch │ │ ├── imgui-test-engine.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hesphoros-uniconv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hexi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hexl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hffix/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hfsm2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hidapi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── highfive/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── highs/ │ │ ├── fix-install-dirs.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── highway/ │ │ ├── 2695.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hikogui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hiredis/ │ │ ├── fix-cmake-conf-install-dir.patch │ │ ├── fix-ssize_t.patch │ │ ├── fix-timeval.patch │ │ ├── portfile.cmake │ │ ├── support-static.patch │ │ └── vcpkg.json │ ├── hjson-cpp/ │ │ ├── fix-runtime-destination.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hlslpp/ │ │ ├── hlslpp-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hnswlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hps/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hpx/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── htscodecs/ │ │ ├── 0001-no-tests.patch │ │ ├── configure_bz2.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── htslib/ │ │ ├── 0001-set-linkage.patch │ │ ├── 0002-pthread-flag.patch │ │ ├── 0003-no-tests.patch │ │ ├── 0004-fix-find-htscodecs.patch │ │ ├── bzip2-use-pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── http-parser/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── huira/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── hungarian/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hunspell/ │ │ ├── 0005-autotools-subdirs.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hwloc/ │ │ ├── fix_shared_win_build.patch │ │ ├── portfile.cmake │ │ ├── stdout_fileno.patch │ │ └── vcpkg.json │ ├── hyperscan/ │ │ ├── 0001-remove-Werror.patch │ │ ├── 0002-fix-threads.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hypodermic/ │ │ ├── disable_hypodermic_tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── hypre/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── iausofa/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── icecream-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── iceoryx/ │ │ ├── acl.patch │ │ ├── add-include-chrono.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── icu/ │ │ ├── disable-static-prefix.patch │ │ ├── fix_bsd_and_solaris.patch │ │ ├── fix_parallel_build_on_windows.patch │ │ ├── mh-darwin.patch │ │ ├── mh-mingw.patch │ │ ├── mh-msys-msvc.patch │ │ ├── portfile.cmake │ │ ├── remove-MD-from-configure.patch │ │ ├── subdirs.patch │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg-cross-data.patch │ │ └── vcpkg.json │ ├── ideviceinstaller/ │ │ ├── 001_fix_windows.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── idevicerestore/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── idyntree/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── if97/ │ │ ├── portfile.cmake │ │ ├── relax-encoding.diff │ │ └── vcpkg.json │ ├── igloo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ignition-modularscripts/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── igraph/ │ │ ├── arith_osx.h │ │ ├── arith_win32.h │ │ ├── arith_win64.h │ │ ├── constant-nan.patch │ │ ├── glpk-uwp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── iguana/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── iir1/ │ │ ├── fix-shared-lib.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── im3d/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── imageinfo/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── imath/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── imcce-openfa/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── imgui/ │ │ ├── CMakeLists.txt │ │ ├── imgui-config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── imgui-node-editor/ │ │ ├── CMakeLists.txt │ │ ├── fix-imgui-v1.92.5.patch │ │ ├── fix-vec2-math-operators.patch │ │ ├── portfile.cmake │ │ ├── remove-getkeyindex.patch │ │ └── vcpkg.json │ ├── imgui-sfml/ │ │ ├── 0001-fix_find_package.patch │ │ ├── 0002-support-imgui-1.92.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── imguizmo/ │ │ ├── CMakeLists.txt │ │ ├── fix-imgui-1.92.5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── immer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── implot/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── implot3d/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── indicators/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── indirect-value/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── inflatelib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── influxdb-cxx/ │ │ ├── fix-dllexports.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── infoware/ │ │ ├── cross-build.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── inih/ │ │ ├── portfile.cmake │ │ ├── unofficial-inihConfig.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── iniparser/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── inipp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── inja/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── intel-ipsec/ │ │ ├── always-generate-pdb.patch │ │ ├── intel-ipsec-targets-implib.cmake.in │ │ ├── intel-ipsec-targets.cmake.in │ │ ├── intel-ipsecConfig.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── intel-mkl/ │ │ ├── copy-from-dmg.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── intelrdfpmathlib/ │ │ ├── CMakeLists.txt │ │ ├── fix-types.patch │ │ ├── missing-includes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── intrusive-shared-ptr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── intx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── iowa-hills-dsp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── irrlicht/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE.txt │ │ ├── fix-encoding.patch │ │ ├── fix-osx-compilation-2.diff │ │ ├── fix-osx-compilation.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── irsdkcpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── isal/ │ │ ├── isalConfig.cmake │ │ ├── osx-asm-sysroot.patch │ │ ├── portfile.cmake │ │ ├── unofficial-isal-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ismrmrd/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── win32_runtime_fix.patch │ ├── itay-grudev-singleapplication/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── itk/ │ │ ├── dependencies.diff │ │ ├── dont-build-gtest.patch │ │ ├── fftw.diff │ │ ├── msvc-static-crt.diff │ │ ├── openjpeg.patch │ │ ├── portfile.cmake │ │ ├── rtk/ │ │ │ ├── cmp0153.diff │ │ │ └── getopt-win32.diff │ │ ├── use-the-lrintf-intrinsic.patch │ │ ├── var_libraries.patch │ │ ├── vcpkg.json │ │ └── wrapping.patch │ ├── itlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── itpp/ │ │ ├── fix-build.patch │ │ ├── fix-linux.patch │ │ ├── fix-uwp.patch │ │ ├── msvc2013.patch │ │ ├── portfile.cmake │ │ ├── rename-version.patch │ │ └── vcpkg.json │ ├── itsy-bitsy/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ixwebsocket/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jack2/ │ │ ├── CMakeLists.txt │ │ ├── jack.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jaeger-client-cpp/ │ │ ├── fix-CMakeLists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jansson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jasper/ │ │ ├── check-for-atomics-support.patch │ │ ├── fix-library-name.patch │ │ ├── no_stdc_check.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jbcoe-value-types/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jbig2dec/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jbigkit/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jemalloc/ │ │ ├── fix-configure-ac.patch │ │ ├── fix-host-use-libc.patch │ │ ├── portfile.cmake │ │ ├── preprocessor.patch │ │ └── vcpkg.json │ ├── jhasse-poly2tri/ │ │ ├── cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── jigson/ │ │ ├── jigson-config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── jinja2cpplight/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jkqtplotter/ │ │ ├── fix-cmake.patch │ │ ├── fix-cmake2.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── joltphysics/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── josuttis-jthread/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jsmn/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json-c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json-dto/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json-glib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json-rpc-cxx/ │ │ ├── fix-config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── json-schema-validator/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json-spirit/ │ │ ├── Fix-link-error-C1128.patch │ │ ├── dll-wins.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json11/ │ │ ├── destination.patch │ │ ├── fix-gcc15-build.patch │ │ ├── json11-config.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── json5-parser/ │ │ ├── 00001-fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jsoncons/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jsoncpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jsonfusion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jsonifier/ │ │ ├── portfile.cmake │ │ ├── uninstall-head.patch │ │ └── vcpkg.json │ ├── jsonnet/ │ │ ├── 0004-incorporate-md5.patch │ │ ├── 0005-use-upstream-rapidyaml.patch │ │ ├── 0006-use-cxx17.patch │ │ ├── 001-enable-msvc.patch │ │ ├── 002-fix-dependency-and-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── juce/ │ │ ├── 0001-build-allow-setting-JUCE_PLUGINHOST_LADSPA.patch │ │ ├── 0004-install-paths.patch │ │ ├── avoid-macos-15-deprecations.patch │ │ ├── devendor-oboe.diff │ │ ├── gcc-has-builtin.diff │ │ ├── install-extras.diff │ │ ├── juceaide.diff │ │ ├── portfile.cmake │ │ ├── prefer-cmake.diff │ │ ├── usage │ │ ├── vcpkg-compile-definitions.diff │ │ └── vcpkg.json │ ├── jwsung91-unilink/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jwt-cpp/ │ │ ├── picojson_from_vcpkg.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── jxrlib/ │ │ ├── CMakeLists.txt │ │ ├── FindJXR.cmake │ │ ├── fix-mingw.patch │ │ ├── guiddef.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── kaitai-struct-cpp-stl-runtime/ │ │ ├── portfile.cmake │ │ ├── remove-werror.patch │ │ └── vcpkg.json │ ├── kangaru/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kcp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kdalgorithms/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kdbindings/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kddockwidgets/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kdgpu/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kdiagram/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kdreports/ │ │ ├── fix-cmake-config.patch │ │ ├── fix-license-text.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kdsingleapplication/ │ │ ├── fix-license-text.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kdsoap/ │ │ ├── fix-license-text.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kdstatemachineeditor/ │ │ ├── fix-missing-targets.diff │ │ ├── portfile.cmake │ │ ├── qt6.9.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── kdutils/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kealib/ │ │ ├── no-kea-config-script.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── keccak-tiny/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kedixa-coke/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kenlm/ │ │ ├── cmake-config.patch │ │ ├── devendor.patch │ │ ├── fix-boost.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kerbal/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── keystone/ │ │ ├── 0001-fix-gcc15.patch │ │ ├── 0002-fix-cmake4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5archive/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── zstd.diff │ ├── kf5attica/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5auth/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5bookmarks/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5codecs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5completion/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5config/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5configwidgets/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5coreaddons/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5crash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5dbusaddons/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5declarative/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5diagram/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5globalaccel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5guiaddons/ │ │ ├── fix_cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5holidays/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5i18n/ │ │ ├── fix_static_builds.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5iconthemes/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5itemmodels/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5itemviews/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5jobwidgets/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5kcmutils/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5kio/ │ │ ├── libmount.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5newstuff/ │ │ ├── disable-macos-bundle.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5notifications/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5package/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5parts/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5plotting/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5service/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5solid/ │ │ ├── 001_fix_libmount.patch │ │ ├── 002_fix_imobile.patch │ │ ├── 003_libmount.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5sonnet/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5syntaxhighlighting/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5texteditor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5textwidgets/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5wallet/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5widgetsaddons/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5windowsystem/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf5xmlgui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kf6archive/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── zstd.diff │ ├── kfr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kinectsdk1/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kinectsdk2/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kissfft/ │ │ ├── fix-install-dirs.patch │ │ ├── fix-linkage.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kissnet/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kleidiai/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── klein/ │ │ ├── find_simde_first.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── knet/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── knncolle/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── knncolle-annoy/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── knncolle-hnsw/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── knncolle-kmknn/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── komihash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── krabsetw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── krb5/ │ │ ├── define-des-zeroblock.diff │ │ ├── portfile.cmake │ │ ├── static-deps.diff │ │ ├── vcpkg.json │ │ └── windows_pc_files/ │ │ ├── krb5-gssapi.pc.in │ │ ├── krb5.pc.in │ │ ├── mit-krb5-gssapi.pc.in │ │ └── mit-krb5.pc.in │ ├── ktx/ │ │ ├── 0001-Use-vcpkg-zstd.patch │ │ ├── 0003-mkversion.patch │ │ ├── 0004-quirks.patch │ │ ├── 0005-no-vendored-libs.patch │ │ ├── 0006-fix-ios-install.patch │ │ ├── ktxread-libtool.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kubazip/ │ │ ├── disable-werror.patch │ │ ├── fix-name-conflict.diff │ │ ├── kubazipConfig.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── kubernetes/ │ │ ├── 001-fix-destination.patch │ │ ├── 002-disable-werror.patch │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kuku/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kvasir-mpl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── kwsys/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lager/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lapack/ │ │ ├── lapack.pc.in │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── lapack-reference/ │ │ ├── FindLAPACK.cmake │ │ ├── cmake-config.patch │ │ ├── fix_prefix.patch │ │ ├── implicit-link.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── lastools/ │ │ ├── build_tools.diff │ │ ├── fix_include_directories_lastools.patch │ │ ├── fix_install_paths_lastools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── laszip/ │ │ ├── compiler-options.diff │ │ ├── include-cstdint.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── launch-darkly-server/ │ │ ├── FixStrictPrototypes.patch │ │ ├── findPCRE.patch │ │ ├── launch-darkly-server-config.cmake │ │ ├── portfile.cmake │ │ ├── removeWarningAsError.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── lazy-importer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lcm/ │ │ ├── disable-docs.patch │ │ ├── glib.link.patch │ │ ├── only-install-one-flavor.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lcms/ │ │ ├── fix-shared-library.patch │ │ ├── lcms-config.cmake │ │ ├── lcms2-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lely-core/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lemon-parser-generator/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lensfun/ │ │ ├── fix_build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── leptonica/ │ │ ├── fix-pc-and-config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lerc/ │ │ ├── create_package.patch │ │ ├── cxx-linkage-pkgconfig.patch │ │ ├── fix-climits-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── level-zero/ │ │ ├── portfile.cmake │ │ ├── spdlog_include.patch │ │ └── vcpkg.json │ ├── leveldb/ │ │ ├── fix-dependencies.patch │ │ ├── fix-util-install.patch │ │ ├── leveldbConfig.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── levmar/ │ │ ├── add-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lexbor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lexilla/ │ │ ├── 0001-static-lib.patch │ │ ├── 0002-static-crt.patch │ │ ├── 0003-fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lfreist-hwinfo/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lib3mf/ │ │ ├── fix-lib3mf-config-root.patch │ │ ├── linkage.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libaaplus/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libadlmidi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libadwaita/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libaec/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libaes-siv/ │ │ ├── CMakeLists.txt │ │ ├── header_rename.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libaiff/ │ │ ├── CMakeLists.txt │ │ ├── allow_utf_16_filename.patch │ │ ├── buffer_uninitialized.patch │ │ ├── config.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libaio/ │ │ ├── CMakeLists.txt │ │ ├── pkgconfig.pc.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libalkimia/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libao/ │ │ ├── 0001-windows-build-patch.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libarchive/ │ │ ├── fix-buildsystem.patch │ │ ├── fix-deps.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── libaribcaption/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libass/ │ │ ├── CMakeLists.txt │ │ ├── config.h.in │ │ ├── libass.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libassert/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libassuan/ │ │ ├── cross-tools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libatomic-ops/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libavif/ │ │ ├── dependencies.diff │ │ ├── disable-source-utf8.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libb2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libbacktrace/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libbluray/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libbson/ │ │ ├── fix-include-directory.patch │ │ ├── libbson-1.0-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libcaer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcamera/ │ │ ├── fix-absolute-paths.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcanberra/ │ │ ├── 03_onlyshowin_unity.patch │ │ ├── gtk_dont_assume_x11.patch │ │ ├── lc-messages.patch │ │ ├── ltdl.patch │ │ ├── portfile.cmake │ │ ├── undefined_reference.diff │ │ └── vcpkg.json │ ├── libcap/ │ │ ├── configure │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcbor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcds/ │ │ ├── 001-cmake-install.patch │ │ ├── 002-lib-suffix-option.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcerf/ │ │ ├── begin-end-decls.diff │ │ ├── cxx-flags.diff │ │ ├── fix-source.diff │ │ ├── install-dirs.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcgroup/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcoap/ │ │ ├── portfile.cmake │ │ ├── remove-hardcoded-tinydtls-path.patch │ │ └── vcpkg.json │ ├── libconfig/ │ │ ├── portfile.cmake │ │ ├── static-build.diff │ │ └── vcpkg.json │ ├── libconfuse/ │ │ ├── portfile.cmake │ │ ├── unofficial-libconfuse-config.cmake │ │ └── vcpkg.json │ ├── libcopp/ │ │ ├── fix-x86-windows.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcoro/ │ │ ├── add-experimental-library.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcorrect/ │ │ ├── fix-ninja.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcpplocate/ │ │ ├── fix-install-paths.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcrafter/ │ │ ├── fix-build-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcred/ │ │ ├── disable_tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcroco/ │ │ ├── portfile.cmake │ │ ├── unofficial-libcroco-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libcsv/ │ │ ├── Makefile.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcuckoo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libcurl-simple-https/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libczi/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdatachannel/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ ├── uwp-warnings.patch │ │ └── vcpkg.json │ ├── libdatrie/ │ │ ├── CMakeLists.txt │ │ ├── config.h.cmake │ │ ├── fix-exports.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libdc1394/ │ │ ├── fix-macosx.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libde265/ │ │ ├── fix-interface-include.patch │ │ ├── pkgconfig-cxx-linkage.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdeflate/ │ │ ├── portfile.cmake │ │ ├── remove_wrong_c_flags_modification.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── libdicom/ │ │ ├── cross-build.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdisasm/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── sizeofvoid.patch │ │ └── vcpkg.json │ ├── libdivide/ │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdjinterop/ │ │ ├── devendor_libs.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdmtx/ │ │ ├── 001-cmake-add-install-target.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdmx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdshowcapture/ │ │ ├── fix_build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdvdcss/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdvdnav/ │ │ ├── msvc.diff │ │ ├── no-undefined.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdvdread/ │ │ ├── msvc.diff │ │ ├── no-undefined.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdwarf/ │ │ ├── dependencies.diff │ │ ├── dwarfdump-conf.diff │ │ ├── include-dir.diff │ │ ├── msvc-runtime.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libdxfrw/ │ │ ├── portfile.cmake │ │ ├── remove-werror.patch │ │ └── vcpkg.json │ ├── libe57/ │ │ ├── boost_includes.patch │ │ ├── e57simple.patch │ │ ├── export_config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── xercesc.patch │ ├── libe57format/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libebur128/ │ │ ├── 0001-remove-warning-message.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libedit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libenvpp/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libepoxy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liberasurecode/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libev/ │ │ ├── 0000-event-fix-undefined-struct-timeval.patch │ │ ├── 0001-use-select-with-msvc.patch │ │ ├── portfile.cmake │ │ ├── unofficial-libev-config.cmake │ │ └── vcpkg.json │ ├── libevdev/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libevent/ │ │ ├── fix-LibeventConfig_cmake_in_path.patch │ │ ├── fix-file_path.patch │ │ ├── fix-usage.patch │ │ ├── fix-uwp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libeventheader-decode/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libeventheader-tracepoint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libevhtp/ │ │ ├── fix-cmake4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libexif/ │ │ ├── fix-ssize.patch │ │ ├── portfile.cmake │ │ ├── unofficial-libexif-config.cmake │ │ └── vcpkg.json │ ├── libfabric/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libffi/ │ │ ├── dll-bindir.diff │ │ ├── libffiConfig.cmake │ │ ├── portfile.cmake │ │ ├── unofficial-libffi-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libfido2/ │ │ ├── dependencies.diff │ │ ├── flags.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libflac/ │ │ ├── android-cmake.diff │ │ ├── cmake-project-include.cmake │ │ ├── fix-compile-options.patch │ │ ├── fix-find-threads.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libfontenc/ │ │ ├── build.patch │ │ ├── configure.ac.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libfork/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libfort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libfreenect2/ │ │ ├── fix-dependency-libusb.patch │ │ ├── fix-macbuild.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libfs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libftdi/ │ │ ├── dont_use_lib64.patch │ │ ├── exports.def │ │ ├── libusb-win32.patch │ │ ├── portfile.cmake │ │ ├── shared-static.patch │ │ └── vcpkg.json │ ├── libftdi1/ │ │ ├── cmake-version.diff │ │ ├── disable-config-script.diff │ │ ├── exports.def │ │ ├── libdir.diff │ │ ├── libftdipp1.diff │ │ ├── libusb.diff │ │ ├── linkage.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libfuse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgcrypt/ │ │ ├── cross-tools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgd/ │ │ ├── cmake-project-include.cmake │ │ ├── control-build.patch │ │ ├── fix-dependencies.cmake │ │ ├── fix-static-usage.patch │ │ ├── fix_msvc_build.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libgeotiff/ │ │ ├── cmakelists.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libgig/ │ │ ├── portfile.cmake │ │ ├── replace_cpp23warning.patch │ │ └── vcpkg.json │ ├── libgit2/ │ │ ├── c-standard.diff │ │ ├── cli-include-dirs.diff │ │ ├── dependencies.diff │ │ ├── mingw-winhttp.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgme/ │ │ ├── cmake4.patch │ │ ├── disable-player-and-demo.patch │ │ ├── disable-static-zlib-hack.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgnutls/ │ │ ├── ccasflags.patch │ │ ├── portfile.cmake │ │ ├── use-gmp-pkgconfig.patch │ │ └── vcpkg.json │ ├── libgo/ │ │ ├── Add-target-include-directory.patch │ │ ├── add-stdexcept.diff │ │ ├── cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgossip/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── remove-export-headers.patch │ │ ├── support-uwp.patch │ │ └── vcpkg.json │ ├── libgpg-error/ │ │ ├── android.diff │ │ ├── cross-tools.patch │ │ ├── gpgrt-config.patch │ │ ├── mingw.diff │ │ ├── pkgconfig-libintl.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── win32-nls.diff │ ├── libgpiod/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libgta/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libguarded/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libgwenhywfar/ │ │ ├── control-openssl.diff │ │ ├── fd_set-android.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── static-link-order.diff │ │ └── vcpkg.json │ ├── libgxps/ │ │ ├── libgxps-0.3.2_fix_meson_warnings.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libharu/ │ │ ├── export-targets.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libhat/ │ │ ├── 0001-CMakeLists.patch │ │ ├── 0002-fix-gcc.patch │ │ ├── libhat-config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libhdfs3/ │ │ ├── fix_dependency_uuid.patch │ │ ├── libhdfs3Config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libheif/ │ │ ├── cmake-project-include.cmake │ │ ├── cxx-linkage-pkgconfig.diff │ │ ├── find-modules.diff │ │ ├── gdk-pixbuf.patch │ │ ├── portfile.cmake │ │ ├── symbol-exports.diff │ │ └── vcpkg.json │ ├── libhsplasma/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libhv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libhydrogen/ │ │ ├── no-arch.patch │ │ ├── portfile.cmake │ │ ├── remove-tests.patch │ │ └── vcpkg.json │ ├── libical/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libice/ │ │ ├── fix_build.patch │ │ ├── portfile.cmake │ │ ├── replace_macros.patch │ │ └── vcpkg.json │ ├── libiconv/ │ │ ├── 0002-Config-for-MSVC.patch │ │ ├── 0003-Add-export.patch │ │ ├── 0004-ModuleFileName.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libics/ │ │ ├── portfile.cmake │ │ ├── real16.patch │ │ └── vcpkg.json │ ├── libid3tag/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libideviceactivation/ │ │ ├── 001_fix_static_build.patch │ │ ├── 002_fix_api.patch │ │ ├── 003_fix_tools_msvc.patch │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libidn2/ │ │ ├── disable-subdirs.patch │ │ ├── fix-uwp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libigl/ │ │ ├── dependencies.patch │ │ ├── imgui-impl.diff │ │ ├── install-extra-targets.patch │ │ ├── instantiations.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libilbc/ │ │ ├── absl.patch │ │ ├── do-not-build-ilbc_test.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libimobiledevice/ │ │ ├── 001_fix_msvc.patch │ │ ├── 002_fix_static_build.patch │ │ ├── 003_fix_api.patch │ │ ├── 004_fix_tools_msvc.patch │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libimobiledevice-glue/ │ │ ├── 001_fix_win32_defs.patch │ │ ├── 002_fix_msvc.patch │ │ ├── 003_fix_static_build.patch │ │ ├── 004_fix_api.patch │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libinterpolate/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libirecovery/ │ │ ├── 001_fix_static_build.patch │ │ ├── 002_fix_api.patch │ │ ├── 003_fix_msvc.patch │ │ ├── 004_fix_tools_msvc.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libjpeg-turbo/ │ │ ├── add-options-for-docs-headers.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg.json │ │ └── workaround_cmake_system_processor.patch │ ├── libjuice/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libjxl/ │ │ ├── avoid-exe-linker-flags.patch │ │ ├── disambiguate-pow-calls.patch │ │ ├── fix-dependencies.patch │ │ ├── msvc-remove-libm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libkeyfinder/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libkml/ │ │ ├── add-target-include-directories.patch │ │ ├── fix-cmake-min-version.patch │ │ ├── fix-mingw.patch │ │ ├── fix-minizip.patch │ │ ├── patch_empty_literal_on_vc.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblas/ │ │ ├── fix-boost-headers.patch │ │ ├── fix-cmake-config.patch │ │ ├── fix-cmake4.patch │ │ ├── fix-crosscompiling.diff │ │ ├── force-cpp11.patch │ │ ├── misc-fixes.patch │ │ ├── portfile.cmake │ │ ├── remove_unnecessary_boost_dependency.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── liblbfgs/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libleidenalg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblemon/ │ │ ├── fix-cmake.patch │ │ ├── fix-cmake4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblinear/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblrc/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ ├── set_up_compile_error.patch │ │ └── vcpkg.json │ ├── liblsl/ │ │ ├── portfile.cmake │ │ ├── use-find-package-asio.patch │ │ └── vcpkg.json │ ├── liblsquic/ │ │ ├── disable-asan.patch │ │ ├── fix-found-boringssl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libltdl/ │ │ ├── libtoolize-ltdl-no-la │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── liblttng-ust/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblzf/ │ │ ├── 0001-add-extern-c.patch │ │ ├── 0002-fix-macro-expansion-ub.patch │ │ ├── CMakeLists.txt │ │ ├── liblzf.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liblzma/ │ │ ├── build-tools.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libmad/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmagic/ │ │ ├── 0001-Use-libtre.patch │ │ ├── 0002-Change-zlib-lib-name-to-match-CMake-output.patch │ │ ├── 0003-Fix-WIN32-macro-checks.patch │ │ ├── 0004-Typedef-POSIX-types-on-Windows.patch │ │ ├── 0005-Include-dirent.h-for-S_ISREG-and-S_ISDIR.patch │ │ ├── 0006-Remove-Wrap-POSIX-headers.patch │ │ ├── 0007-Substitute-unistd-macros-for-MSVC.patch │ │ ├── 0008-Add-FILENO-defines.patch │ │ ├── 0010-Properly-check-for-the-presence-of-bitmasks.patch │ │ ├── 0011-Remove-pipe-related-functions-in-funcs.c.patch │ │ ├── 0012-Convert-MSYS2-paths-to-Windows-paths.patch │ │ ├── 0013-Check-for-backslash-in-argv-0-on-Windows.patch │ │ ├── 0015-MSYS2-Remove-ioctl-call.patch │ │ ├── 0016-Fix-file_famagic-function.patch │ │ ├── 0017-Change-bzlib-name-to-match-CMake-output.patch │ │ ├── portfile.cmake │ │ ├── unofficial-libmagic-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── libmariadb/ │ │ ├── cmake-export.diff │ │ ├── compiler-flags.diff │ │ ├── dependencies.diff │ │ ├── disable-mariadb_config.diff │ │ ├── library-linkage.diff │ │ ├── no-abs-path.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmatio-cpp/ │ │ ├── fix-dependencies.patch │ │ ├── matioCppConfig.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libmaxminddb/ │ │ ├── fix-link-thread.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmediainfo/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmem/ │ │ ├── 0001-CMakeLists.patch │ │ ├── libmem-config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmemcached-awesome/ │ │ ├── in_port_t.diff │ │ ├── no-static-exports.diff │ │ ├── p9y-targets.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmicrodns/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmicrohttpd/ │ │ ├── portfile.cmake │ │ ├── remove_pdb_install.patch │ │ └── vcpkg.json │ ├── libmidi2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmikmod/ │ │ ├── find-openal.patch │ │ ├── fix-missing-dll.patch │ │ ├── name_conflict.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmodbus/ │ │ ├── cflags.diff │ │ ├── libmodbusConfig.cmake │ │ ├── library-linkage.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── ssize_t.diff │ │ └── vcpkg.json │ ├── libmodman/ │ │ ├── fix-install-path.patch │ │ ├── fix-undefined-typeid.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libmodplug/ │ │ ├── 002-detect_sinf.patch │ │ ├── 003-use-static-cast-for-ctype.patch │ │ ├── 004-export-pkgconfig.patch │ │ ├── 005-fix-install-paths.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmorton/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmount/ │ │ ├── hide-private-symbols.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmpeg2/ │ │ ├── 0001-Add-naive-MSVC-support-to-sources.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmspack/ │ │ ├── CMakeLists.txt │ │ ├── config.h │ │ ├── libmspack.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmt32emu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmtp/ │ │ ├── disable-examples.patch │ │ ├── dont-install-def-file.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmultisense/ │ │ ├── 0000-platform-specific-links.patch │ │ ├── 0001-find-public-api-dependencies.patch │ │ ├── 0002-disable-error-on-warning.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libmupdf/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-libmupdf-config.cmake.in │ │ └── vcpkg.json │ ├── libmypaint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libmysofa/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── use-vcpkg-zlib.patch │ │ └── vcpkg.json │ ├── libmysql/ │ │ ├── cross-build.patch │ │ ├── dependencies.patch │ │ ├── fix-pdb-install-path.patch │ │ ├── fix_dup_symbols.patch │ │ ├── install-exports.patch │ │ ├── libmysql-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libnice/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libnice-gst/ │ │ ├── portfile.cmake │ │ ├── skip_libnice.patch │ │ └── vcpkg.json │ ├── libnick/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libnoise/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libnop/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libnotify/ │ │ ├── 0001-fix-parameter-name-omitted-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libobfuscate/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libodb/ │ │ ├── CMakeLists.txt │ │ ├── config.unix.h.in │ │ ├── fix-linux.patch │ │ ├── odbConfig.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libodb-boost/ │ │ ├── CMakeLists.txt │ │ ├── config.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libodb-mysql/ │ │ ├── CMakeLists.txt │ │ ├── adapter_mysql_8.0.patch │ │ ├── config.unix.h.in │ │ ├── fix-redefinttion.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libodb-pgsql/ │ │ ├── CMakeLists.txt │ │ ├── config.unix.h.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libodb-sqlite/ │ │ ├── CMakeLists.txt │ │ ├── config.unix.h.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libofx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libogg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libopenmpt/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libopensp/ │ │ ├── opensp.pc.in │ │ ├── opensp_1.5.2-13.diff │ │ ├── portfile.cmake │ │ ├── use-cpp-using-declarations.patch │ │ ├── uwp_getenv_fix.diff │ │ ├── vcpkg.json │ │ └── windows_cmake_build.diff │ ├── libopnmidi/ │ │ ├── cmake-build-shared-libs-support.patch │ │ ├── cmake-package-export.patch │ │ ├── disable-wopn2hpp.patch │ │ ├── fix-build-without-sequencer.patch │ │ ├── fix-c++-standard.patch │ │ ├── fix-pmdwin-emulator-include.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libopusenc/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liboqs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liborigin/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libosdp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libosip2/ │ │ ├── fix-path-in-project.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libosmium/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libosmscout/ │ │ ├── fix-libxml2.patch │ │ ├── msvc-arm.diff │ │ ├── msvc-static.diff │ │ ├── portfile.cmake │ │ ├── protobuf-linkage.patch │ │ └── vcpkg.json │ ├── libp7client/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpcap/ │ │ ├── install.diff │ │ ├── mingw-dynamic-libname.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpff/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpg-query/ │ │ ├── 0001-use-system-deps.patch │ │ ├── configure │ │ ├── portfile.cmake │ │ ├── unofficial-libpg-query-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libphonenumber/ │ │ ├── disable-werror.patch │ │ ├── enable-cpp17.patch │ │ ├── fix-find-protobuf.patch │ │ ├── fix-icui18n-lib-name.patch │ │ ├── fix-re2-identifiers.patch │ │ ├── portfile.cmake │ │ ├── re2-2023-07-01-compat.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── libplist/ │ │ ├── 001_fix_static_build.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libpmemobj-cpp/ │ │ ├── fixlibpmemobj-cpp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpng/ │ │ ├── cmake.patch │ │ ├── libpng-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libpopcnt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpopt/ │ │ ├── 0004-vcpkg-fixmsvc.patch │ │ ├── CMakeLists.txt │ │ ├── config.h.cmake │ │ ├── popt.def │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libpq/ │ │ ├── Makefile │ │ ├── android/ │ │ │ └── unversioned_so.patch │ │ ├── build-msvc.cmake │ │ ├── libpq.props.in │ │ ├── portfile.cmake │ │ ├── unix/ │ │ │ ├── fix-configure.patch │ │ │ ├── installdirs.patch │ │ │ ├── mingw-install.patch │ │ │ ├── mingw-static-importlib-fix.patch │ │ │ ├── no-server-tools.patch │ │ │ ├── python.patch │ │ │ └── single-linkage.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg-libs.props.in │ │ ├── vcpkg.json │ │ └── windows/ │ │ ├── macro-def.patch │ │ ├── msbuild.patch │ │ ├── spin_delay.patch │ │ ├── tcl-9.0-alpha.patch │ │ └── win_bison_flex.patch │ ├── libpqxx/ │ │ ├── fix_build_with_vs2017.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libprotobuf-mutator/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libproxy/ │ │ ├── fix-install-py.patch │ │ ├── fix-module-lib-name.patch │ │ ├── portfile.cmake │ │ ├── support-windows.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libpsl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libqcow/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── macos_fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libqglviewer/ │ │ ├── Add-compile-definitions.patch │ │ ├── Fix-error-c2039.patch │ │ ├── glu.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libqrencode/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libqtrest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── librabbitmq/ │ │ ├── fix-uwpwarning.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libraqm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libraw/ │ │ ├── dependencies.patch │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── librdkafka/ │ │ ├── fix_oauthbearer_check.patch │ │ ├── lz4.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libredwg/ │ │ ├── fix_arm64_build.patch │ │ ├── fix_dependency.patch │ │ ├── fix_install.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libremidi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libressl/ │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── librsvg/ │ │ ├── fix-libxml2-2.13.5.patch │ │ ├── meson-pkgconfig-and-def-file.patch │ │ ├── portfile.cmake │ │ ├── unofficial-librsvg-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── librsync/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── librtmp/ │ │ ├── CMakeLists.txt │ │ ├── fix_strncasecmp.patch │ │ ├── hide_netstackdump.patch │ │ ├── librtmp.def │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── librtpi/ │ │ ├── portfile.cmake │ │ ├── unofficial-librtpi-config.cmake │ │ └── vcpkg.json │ ├── librttopo/ │ │ ├── constant-nan.patch │ │ ├── fix-makefiles.patch │ │ ├── fix-pc-file.patch │ │ ├── geos-config.patch │ │ ├── portfile.cmake │ │ ├── rttopo_config.h.in │ │ └── vcpkg.json │ ├── libsamplerate/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsass/ │ │ ├── portfile.cmake │ │ ├── remove_compiler_flags.patch │ │ └── vcpkg.json │ ├── libsbml/ │ │ ├── dependencies.diff │ │ ├── dirent.diff │ │ ├── libsbml-config.cmake │ │ ├── no-docs.diff │ │ ├── portfile.cmake │ │ ├── test-shared.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── libsbsms/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libscran-umappp/ │ │ ├── 0001-fix-eigen3-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsecret/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsercomm/ │ │ ├── dev-SER_END_DECL-fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libserial/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsersi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libsharp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libshout/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsigcpp/ │ │ ├── disable_tests_enable_static_build.patch │ │ ├── fix-shared-windows-build.patch │ │ ├── fix_include_path.patch │ │ ├── fix_version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libslirp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsm/ │ │ ├── msvc.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsmacker/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── smacker.def │ │ └── vcpkg.json │ ├── libsmb2/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libsndfile/ │ │ ├── 001-avoid-installing-find-modules.patch │ │ ├── mp3lame-static.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsnoretoast/ │ │ ├── include_fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsodium/ │ │ ├── 001-mingw-i386.patch │ │ ├── portfile.cmake │ │ ├── sodiumConfig.cmake.in │ │ └── vcpkg.json │ ├── libsonic/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsoundio/ │ │ ├── fix_cmakelists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsoup/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libspatialindex/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libspatialite/ │ │ ├── android-builtin-iconv.diff │ │ ├── fix-linux-configure.patch │ │ ├── fix-makefiles.patch │ │ ├── fix-mingw.patch │ │ ├── fix-utf8-source.patch │ │ ├── gaiaconfig-msvc.patch │ │ ├── libxml2-no-http.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libspnav/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libspng/ │ │ ├── fix-spngconfig-cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libsquish/ │ │ ├── cmake-version.patch │ │ ├── export-target.patch │ │ ├── fix-export-symbols.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsrt/ │ │ ├── fix-static.patch │ │ ├── fix-tool.patch │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsrtp/ │ │ ├── cmake-config.diff │ │ ├── cmake-project-include.cmake │ │ ├── fix-runtime-destination.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libssh/ │ │ ├── 0001-export-pkgconfig-file.patch │ │ ├── 0003-no-source-write.patch │ │ ├── 0004-file-permissions-constants.patch │ │ ├── android-glob-tilde.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libssh2/ │ │ ├── cmake-config.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libstemmer/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libstk/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsvm/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libsystemd/ │ │ ├── disable-warning-nonnull.patch │ │ ├── only-libsystemd.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtar/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtasn1/ │ │ ├── clang-fortify.patch │ │ ├── msvc_fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtcod/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtess2/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libtheora/ │ │ ├── CMakeLists.txt │ │ ├── libtheora.def │ │ ├── portfile.cmake │ │ ├── unofficial-theora-config.cmake.in │ │ └── vcpkg.json │ ├── libtins/ │ │ ├── find-pcap_static.patch │ │ ├── fix-source-writes.patch │ │ ├── fix_include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtomcrypt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtommath/ │ │ ├── bcrypt.patch │ │ ├── has-set-double.patch │ │ ├── import-lib.patch │ │ ├── msvc-dce.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libtorch/ │ │ ├── fix-cmake.patch │ │ ├── fix-dist-cuda.patch │ │ ├── fix-glog.patch │ │ ├── fix-osx.patch │ │ ├── fix-pytorch-pr-156630.patch │ │ ├── fix-vulkan.patch │ │ ├── kineto.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtorrent/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtracepoint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtracepoint-control/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libtracepoint-decode/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libu2f-server/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── strndup-fix.patch │ │ ├── u2f-server-version.h │ │ ├── vcpkg.json │ │ └── windows.patch │ ├── libudfread/ │ │ ├── msvc.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libudis86/ │ │ ├── CMakeLists.txt │ │ ├── fix-macbuild.patch │ │ ├── portfile.cmake │ │ ├── python3.patch │ │ └── vcpkg.json │ ├── libudns/ │ │ ├── configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libui/ │ │ ├── 001-fix-cmake.patch │ │ ├── 002-fix-macosx-build.patch │ │ ├── 003-fix-system-link.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libunibreak/ │ │ ├── CMakeLists.txt │ │ ├── fix_export.patch │ │ ├── libunibreak-config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libunifex/ │ │ ├── fix-compile-error.patch │ │ ├── fix-linux-timespec.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libunistring/ │ │ ├── copyright │ │ ├── disable-gnulib-fetch.patch │ │ ├── disable-subdirs.patch │ │ ├── msvc-use-stdint.patch │ │ ├── parallelize-symbol-collection.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libunwind/ │ │ ├── liblzma.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libupnp/ │ │ ├── fix-pthreads4w-targets.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── liburcu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liburing/ │ │ ├── disable-tests-and-examples.patch │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libusb/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libusb-win32/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libusbmuxd/ │ │ ├── 001_fix_win32_defs.patch │ │ ├── 002_fix_struct_pack.patch │ │ ├── 003_fix_msvc.patch │ │ ├── 004_fix_api.patch │ │ ├── 005_fix_tools_msvc.patch │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libusbp/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libuuid/ │ │ ├── CMakeLists.txt │ │ ├── config.linux.h │ │ ├── portfile.cmake │ │ ├── unofficial-libuuid-config.cmake.in │ │ └── vcpkg.json │ ├── libuv/ │ │ ├── fix-build-type.patch │ │ ├── portfile.cmake │ │ ├── ssize_t.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── libuvc/ │ │ ├── build_fix.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libva/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libvault/ │ │ ├── 0001-fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libversion/ │ │ ├── disable-test.patch │ │ ├── portfile.cmake │ │ ├── separate-build-type.patch │ │ └── vcpkg.json │ ├── libvhdi/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── macos_fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libvmaf/ │ │ ├── android-off_t.patch │ │ ├── no-tools.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libvorbis/ │ │ ├── 0001-Dont-export-vorbisenc-functions.patch │ │ ├── 0002-Fixup-pkgconfig-libs.patch │ │ ├── 0003-def-mingw-compat.patch │ │ ├── 0004-ogg-find-dependency.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libvpx/ │ │ ├── 0003-add-uwp-v142-and-v143-support.patch │ │ ├── 0004-remove-library-suffixes.patch │ │ ├── 0005-dont-expect-gnu-diff.patch │ │ ├── portfile.cmake │ │ ├── unofficial-libvpx-config.cmake.in │ │ ├── vcpkg.json │ │ └── vpx.pc.in │ ├── libwandio/ │ │ ├── configure.lib.patch │ │ ├── configure.patch │ │ ├── curl.patch │ │ ├── openssl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libwebm/ │ │ ├── Fix-cmake.patch │ │ ├── fix-export-config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libwebp/ │ │ ├── 0002-cmake-config.patch │ │ ├── 0003-simd.patch │ │ ├── 0008-sdl.patch │ │ ├── 0009-cpufeatures-android.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libwebsockets/ │ │ ├── export-include-path.patch │ │ ├── fix-build-error.patch │ │ ├── fix-dependency-libuv.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libx11/ │ │ ├── add_dl_pc.patch │ │ ├── cl.build.patch │ │ ├── dllimport.patch │ │ ├── io_include.patch │ │ ├── optimize-configure.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg.json │ │ └── vcxserver.patch │ ├── libxau/ │ │ ├── fix-configure-ac.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxaw/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── win.patch │ ├── libxcomposite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxcrypt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxcvt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxdamage/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxdf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxdiff/ │ │ ├── fix-usage-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxdmcp/ │ │ ├── configure.ac.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxext/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxfixes/ │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxfont/ │ │ ├── build.patch │ │ ├── build2.patch │ │ ├── configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxft/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxi/ │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxinerama/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxkbcommon/ │ │ ├── build.patch │ │ ├── disable-test.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxkbfile/ │ │ ├── fix_u_char.patch │ │ ├── portfile.cmake │ │ ├── symbol_visibility.patch │ │ └── vcpkg.json │ ├── libxlsxwriter/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxml2/ │ │ ├── cxx-for-icu.diff │ │ ├── disable-xml2-config.diff │ │ ├── fix_cmakelist.patch │ │ ├── fix_ios_compilation.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libxmlb/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxmlmm/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-libxmlmm-config.cmake │ │ └── vcpkg.json │ ├── libxmlpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxmp/ │ │ ├── fix-cmake-config-dir.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libxmu/ │ │ ├── cl-build.patch │ │ ├── portfile.cmake │ │ ├── unistd.patch │ │ └── vcpkg.json │ ├── libxpm/ │ │ ├── fix-dependency-gettext.patch │ │ ├── portfile.cmake │ │ ├── remove_strings_h.patch │ │ ├── strcasecmp.patch │ │ ├── subdirs.diff │ │ ├── tools.patch │ │ └── vcpkg.json │ ├── libxpresent/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxrandr/ │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxrender/ │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxres/ │ │ ├── build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxscrnsaver/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxslt/ │ │ ├── cxx-for-libxml2-icu.diff │ │ ├── fix-gcrypt-deps.patch │ │ ├── libexslt-pkgconfig.patch │ │ ├── msvc-no-suffix.patch │ │ ├── portfile.cmake │ │ ├── python3.patch │ │ ├── skip-install-docs.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── libxt/ │ │ ├── add-missing-process-h.patch │ │ ├── cc_for_build.patch │ │ ├── getcwd.patch │ │ ├── globals.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── windows_build.patch │ ├── libxtst/ │ │ ├── fix-configure.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libxxf86vm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libyaml/ │ │ ├── export-pkgconfig.patch │ │ ├── fix-POSIX_name.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libyuv/ │ │ ├── cmake.diff │ │ ├── libyuv-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── libzen/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── libzim/ │ │ ├── cross-builds.diff │ │ ├── dllexport.diff │ │ ├── portfile.cmake │ │ ├── subdirs.diff │ │ └── vcpkg.json │ ├── libzip/ │ │ ├── config-vars.diff │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ ├── use-requires.patch │ │ └── vcpkg.json │ ├── libzippp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── licensepp/ │ │ ├── FindCryptoPP.cmake │ │ ├── add-stdint.diff │ │ ├── devendoring.patch │ │ ├── portfile.cmake │ │ ├── remove-werror.diff │ │ └── vcpkg.json │ ├── lief/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-liefconfig-cmake-in.patch │ │ ├── fix-vcpkg-includes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lightgbm/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── vcpkg_lightgbm_use_vcpkg_libs.patch │ ├── lightningscanner/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lilv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── linalg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── linmath/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lionkor-commandline/ │ │ ├── add-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── liquid-dsp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── litehtml/ │ │ ├── fix-relative-includes.patch │ │ ├── portfile.cmake │ │ ├── use-vcpkg-gumbo.patch │ │ └── vcpkg.json │ ├── live555/ │ │ ├── CMakeLists.txt │ │ ├── fix-RTSPClient.patch │ │ ├── fix_operator_overload.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── livepp/ │ │ ├── global_preferences.json │ │ ├── portfile.cmake │ │ ├── unofficial-liveppConfig.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── llama-cpp/ │ │ ├── cmake-config.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── llfio/ │ │ ├── portfile.cmake │ │ ├── usage-error-code-dynamic │ │ ├── usage-error-code-static │ │ ├── usage-status-code-dynamic │ │ ├── usage-status-code-static │ │ └── vcpkg.json │ ├── llgi/ │ │ ├── fix-cmake-use-vcpkg.patch │ │ ├── fix-sources.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── llgl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── llhttp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── llnl-units/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lloyal-ai-inlined-vector/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── llvm/ │ │ ├── 0001-fix-install-package-dir.patch │ │ ├── 0002-fix-tools-install-dir.patch │ │ ├── 0003-fix-llvm-config.patch │ │ ├── 0004-disable-libomp-aliases.patch │ │ ├── 0005-remove-numpy.patch │ │ ├── 0006-create-destination-mlir-directory.patch │ │ ├── 75711.patch │ │ ├── 79694.patch │ │ ├── 82407.patch │ │ ├── add-include-chrono.patch │ │ ├── clang_usage │ │ ├── cmake4.patch │ │ ├── flang_usage │ │ ├── lld_usage │ │ ├── llvm_usage │ │ ├── mlir_usage │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lmdb/ │ │ ├── cmake/ │ │ │ ├── CMakeLists.txt │ │ │ ├── cmake/ │ │ │ │ ├── package-config.cmakein │ │ │ │ └── runtest.cmake │ │ │ └── lmdb.def │ │ ├── getopt-win32.diff │ │ ├── lmdb-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lockpp/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── lodepng/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── log4cplus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── log4cpp-log4cpp/ │ │ ├── cmake_fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── log4cxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── logme/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── loguru/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lpeg/ │ │ ├── CMakeLists.txt │ │ ├── lpeg.def │ │ ├── portfile.cmake │ │ ├── unofficial-lpeg-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── ls-qpack/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-aarand/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-cppirlba/ │ │ ├── 0001-fix-eigen3.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-cppkmeans/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-powerit/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-sanisizer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ltla-subpar/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lua/ │ │ ├── CMakeLists.txt │ │ ├── fix-ios-system.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── uwp-no-popen.diff │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg.json │ │ └── vs2015-impl-c99.patch │ ├── lua-compat53/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── luabridge/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luabridge3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luafilesystem/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-luafilesystem-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── luajit/ │ │ ├── 003-do-not-set-macosx-deployment-target.patch │ │ ├── Makefile.nmake │ │ ├── configure │ │ ├── luajit.pc │ │ ├── msvcbuild.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luasec/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luasocket/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luau/ │ │ ├── cmake-config-export.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luminoengine/ │ │ ├── fix-cmake-config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── lunarg-vulkantools/ │ │ ├── disable-qtdeploy.patch │ │ ├── portfile.cmake │ │ ├── static-linkage.patch │ │ └── vcpkg.json │ ├── lunasvg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── luv/ │ │ ├── fix-find-libuv.patch │ │ ├── fix-find-lua-compat53.patch │ │ ├── fix-find-luajit.patch │ │ ├── fix-msvc-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lv2/ │ │ ├── lv2-config.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lwlog/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lz4/ │ │ ├── portfile.cmake │ │ ├── target-lz4-lz4.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── lzav/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lzfse/ │ │ ├── disable-cli-option.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lzo/ │ │ ├── always_install_pc.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── lzokay/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── maddy/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── magic-args/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── magic-enum/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── magma/ │ │ ├── clang-cuda.patch │ │ ├── disable-openmp-msvc.patch │ │ ├── fix-cmake4.patch │ │ ├── no-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── magnum/ │ │ ├── 002-sdl-includes.patch │ │ ├── 003-fix-FindGLFW.patch │ │ ├── 004-fix-FindOpenAL.patch │ │ ├── 005-fix-find-sdl2.patch │ │ ├── 006-fix-build.patch │ │ ├── 007-missing-headers.diff │ │ ├── magnumdeploy.ps1 │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── magnum-extras/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── magnum-integration/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── magnum-plugins/ │ │ ├── 002-fix-stb-conflict.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mailio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── makeid/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── manif/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── manifold/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mapbox-geojson-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mapbox-geojson-vt-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mapbox-geometry/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mapbox-polylabel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mapbox-variant/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-mapbox-variant-config.cmake.in │ │ └── vcpkg.json │ ├── mapbox-wagyu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mapnik/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── marble/ │ │ ├── cpack.patch │ │ ├── portfile.cmake │ │ ├── protobuf.patch │ │ ├── qtfix.patch │ │ └── vcpkg.json │ ├── marchingcubecpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mariadb-connector-cpp/ │ │ ├── fix-carray.diff │ │ ├── install.diff │ │ ├── libmariadb.diff │ │ ├── mingw.diff │ │ ├── portfile.cmake │ │ ├── unofficial-mariadb-connector-cpp-config.cmake │ │ └── vcpkg.json │ ├── marisa-trie/ │ │ ├── enable-debug.patch │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── marl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── marzbanpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── matajoh-libnpy/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── matchit/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── materialx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mathc/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mathgl/ │ │ ├── cmake-config.patch │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.patch │ │ ├── enable-examples.patch │ │ ├── fix-cross-builds.patch │ │ ├── fix-examples.patch │ │ ├── fix-format-specifiers.patch │ │ ├── fix-glut.patch │ │ ├── fix-include-property.patch │ │ ├── fix-mgllab.patch │ │ ├── fix_link_gsl.patch │ │ ├── include_functional.patch │ │ ├── linkage.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mathter/ │ │ ├── portfile.cmake │ │ ├── support-xsimd-14.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── matio/ │ │ ├── cmake-config.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── matplotlib-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── matplotplusplus/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── matroska/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mbedtls/ │ │ ├── enable-pthread.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── mcap/ │ │ ├── portfile.cmake │ │ ├── unofficial-mcapConfig.cmake.in │ │ └── vcpkg.json │ ├── mchehab-zbar/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ ├── windows.patch │ │ └── x64.patch │ ├── mcpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── md4c/ │ │ ├── cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mdl-sdk/ │ │ ├── fix_find_materialx.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mdns/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mdnsresponder/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mdspan/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mecab/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── fix-missing-functional.patch │ │ ├── fix_wpath_unsigned.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── meekrosoft-fff/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── memorymodule/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── meojson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mesa/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── meschach/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── meshoptimizer/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── metis/ │ │ ├── build-fixes-gkregex.patch │ │ ├── build-fixes.patch │ │ ├── install_config.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── metrohash/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mexce/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mfl/ │ │ ├── disable-tests.patch │ │ ├── fix-clang-detection.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mfx-dispatch/ │ │ ├── fix-pkgconf.patch │ │ ├── fix-unresolved-symbol.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mgclient/ │ │ ├── export-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mgnlibs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mhook/ │ │ ├── fix-windows-packing-mismatch.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── michaelmiller-sec21/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── micro-gl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── microlog/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── microsoft-windows-devices-midi2/ │ │ ├── microsoft-windows-devices-midi2-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mikktspace/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mimalloc/ │ │ ├── pkgconfig-cxx.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── mimicpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minc/ │ │ ├── avoid-try-run.diff │ │ ├── build.patch │ │ ├── cmake-config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── minhook/ │ │ ├── fix-usage.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── miniaudio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minifb/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── minimp3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minio-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── miniply/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minisat-master-keying/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minitrace/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── miniupnpc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── miniz/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── minizip/ │ │ ├── 0001-remove-ifndef-NOUNCRYPT.patch │ │ ├── 0002-add-declaration-for-mkdir.patch │ │ ├── CMakeLists.txt │ │ ├── android-fileapi.patch │ │ ├── lib-to-def.cmake │ │ ├── minizip-win32.def │ │ ├── minizipConfig.cmake.in │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── unofficial-minizipConfig.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── minizip-ng/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mlpack/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mman/ │ │ ├── mman-static.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mmloader/ │ │ ├── fix-platform-name.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mmx/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mnn/ │ │ ├── fix-linux.patch │ │ ├── portfile.cmake │ │ ├── use-package-and-install.patch │ │ └── vcpkg.json │ ├── modern-cpp-kafka/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── modp-base64/ │ │ ├── CMakeLists.txt │ │ ├── config.h.cmake │ │ ├── libmodpbase64.def │ │ ├── modp_b64_data.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mongo-c-driver/ │ │ ├── disable-dynamic-when-static.patch │ │ ├── fix-dependencies.patch │ │ ├── fix-include-directory.patch │ │ ├── fix-mingw.patch │ │ ├── portfile.cmake │ │ ├── remove_abs_patch.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mongo-cxx-driver/ │ │ ├── cmake-project-include.cmake │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mongoose/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── monkeys-audio/ │ │ ├── fix-outdir.patch │ │ ├── license │ │ ├── portfile.cmake │ │ ├── remove-certificate-step.patch │ │ └── vcpkg.json │ ├── moos-core/ │ │ ├── cmake_fix.patch │ │ ├── include_functional.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── moos-essential/ │ │ ├── fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── moos-ui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── morcules-swiftnet/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── morphologica/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── morton-nd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mosquitto/ │ │ ├── linkage-and-export.diff │ │ ├── mosquitto-config.cmake │ │ ├── portfile.cmake │ │ ├── unofficial-mosquitto-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mp-units/ │ │ ├── config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mp3lame/ │ │ ├── 00001-msvc-upgrade-solution-up-to-vc11.patch │ │ ├── Config.cmake.in │ │ ├── add-macos-universal-config.patch │ │ ├── fix-mingw-w64-compatibility.patch │ │ ├── portfile.cmake │ │ ├── remove_lame_init_old_from_symbol_list.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── mpark-patterns/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mpark-variant/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mpc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mpfr/ │ │ ├── dll.patch │ │ ├── portfile.cmake │ │ ├── src-only.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── mpg123/ │ │ ├── have-fpu.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mpi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mpir/ │ │ ├── enable-runtimelibrary-toggle.patch │ │ ├── fix-static-include-files.patch │ │ ├── portfile.cmake │ │ ├── subdirs.diff │ │ ├── vcpkg-cross-builds.diff │ │ └── vcpkg.json │ ├── mpmcqueue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mqtt-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ms-gdk/ │ │ ├── gdk-config.cmake.in │ │ ├── pfusage │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ms-gdkx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ms-gltf/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ms-gsl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ms-ifc-sdk/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── msdfgen/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msgpack/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msgpack-c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msgpack11/ │ │ ├── disable-werror.patch │ │ ├── fix-additerator.patch │ │ ├── msvc.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msh3/ │ │ ├── dependencies_fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msinttypes/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msix/ │ │ ├── CMakeLists.txt │ │ ├── fix-dependency-catch2.patch │ │ ├── install-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msmpi/ │ │ ├── mpi-wrapper.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msolve/ │ │ ├── fix-android.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── msquic/ │ │ ├── avoid-w-invalid-unevaluated-string.patch │ │ ├── cmake4.patch │ │ ├── exports-for-msh3.diff │ │ ├── fix-comparing-system-processor-with-win32.patch │ │ ├── fix-install.patch │ │ ├── fix-uwp-crt.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ ├── uwp-link-libs.diff │ │ └── vcpkg.json │ ├── mstch/ │ │ ├── do-not-force-release.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mtlt/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── muda/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mujoco/ │ │ ├── disable-werror.patch │ │ ├── fix_dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mujs/ │ │ ├── CMakeLists.txt │ │ ├── mujs.pc │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── munit/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── muparser/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── murmur3/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── murmurhash/ │ │ ├── CMakeLists.txt │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mvfst/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mxml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mygui/ │ │ ├── Install-tools.patch │ │ ├── fix-generation.patch │ │ ├── fix-tools-lnk2005.patch │ │ ├── opengl.patch │ │ ├── platform-lib-static.patch │ │ ├── portfile.cmake │ │ ├── sdl2-static.patch │ │ └── vcpkg.json │ ├── mypaint-brushes/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── mysql-connector-cpp/ │ │ ├── cmake-project-include.cmake │ │ ├── depfindprotobuf.diff │ │ ├── disable-telemetry.diff │ │ ├── dont-preload-cache.diff │ │ ├── export-targets.patch │ │ ├── lib-name-static.diff │ │ ├── merge-archives.diff │ │ ├── mysql-concpp-config.cmake │ │ ├── mysql-connector-cpp-config.cmake.in │ │ ├── portfile.cmake │ │ ├── protobuf-source.patch │ │ ├── save-linker-opts.diff │ │ └── vcpkg.json │ ├── mysvac-jsonlib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── mzying2001-sw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nameof/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nana/ │ │ ├── CMakeLists.txt │ │ ├── config.cmake.in │ │ ├── fix-build-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nano-signal-slot/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanoarrow/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanobench/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nanobind/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nanodbc/ │ │ ├── add-missing-include.patch │ │ ├── find-unixodbc.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ ├── rename-version.patch │ │ └── vcpkg.json │ ├── nanoflann/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanogui/ │ │ ├── cmake4.patch │ │ ├── fix-cmakelists.patch │ │ ├── fix-glad-dependence.patch │ │ ├── fix-release-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanojsonc/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nanomsg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanopb/ │ │ ├── fix-cmakelist.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanoprintf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanorange/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanosvg/ │ │ ├── fltk.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nanovg/ │ │ ├── CMakeLists.txt │ │ ├── nanovgConfig.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nativefiledialog-extended/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nayuki-qr-code-generator/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nccl/ │ │ ├── FindNCCL.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── ncnn/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ncurses/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ndis-driver-library/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── neargye-semver/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ned14-internal-quickcpplib/ │ │ ├── portfile.cmake │ │ ├── quicklib-depheaders.patch │ │ ├── sha_manifest.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-event/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-function/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-log/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-network/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-schema/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-system/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neko-threadpool/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── neon2sse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── neoslippi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── netcdf-c/ │ │ ├── backport-d7895f6.diff │ │ ├── dependencies.diff │ │ ├── fix-pkgconfig.patch │ │ ├── fstat.patch │ │ ├── mremap.diff │ │ ├── no-install-deps.patch │ │ ├── plugin-install-dir.diff │ │ ├── portfile.cmake │ │ ├── use_targets.patch │ │ └── vcpkg.json │ ├── netcdf-cxx4/ │ │ ├── export-cmake-targets.patch │ │ ├── fix-dependecy-hdf5.patch │ │ ├── netCDFCxxConfig.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── netcpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── netgen/ │ │ ├── 142.diff │ │ ├── add_filesystem.patch │ │ ├── cgns-scoped-enum.patch │ │ ├── cmake-adjustments.patch │ │ ├── cross-build.patch │ │ ├── downstream-fixes.patch │ │ ├── git-ver.patch │ │ ├── occ-78.patch │ │ ├── portfile.cmake │ │ ├── static-exports.patch │ │ ├── vcpkg-fix-cgns-link.patch │ │ └── vcpkg.json │ ├── nethost/ │ │ ├── 0001-nethost-cmakelists.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nettle/ │ │ ├── ccas.patch │ │ ├── compile.patch │ │ ├── fix-libdir.patch │ │ ├── hogweed-arm.def │ │ ├── hogweed-arm64.def │ │ ├── hogweed-x64.def │ │ ├── hogweed-x86.def │ │ ├── host-tools.patch │ │ ├── lib-to-def.cmake │ │ ├── libname-windows.patch │ │ ├── msvc-support.patch │ │ ├── nettle-arm.def │ │ ├── nettle-arm64.def │ │ ├── nettle-x64.def │ │ ├── nettle-x86.def │ │ ├── portfile.cmake │ │ ├── subdirs.patch │ │ ├── vcpkg.json │ │ └── yasm.patch │ ├── networkdirect-sdk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ng-log/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nghttp2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nghttp3/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ngspice/ │ │ ├── Fix-C2065.patch │ │ ├── portfile.cmake │ │ ├── remove-64-in-codemodel-name.patch │ │ ├── remove-post-build.patch │ │ ├── use-winbison-sharedspice.patch │ │ ├── use-winbison-vngspice.patch │ │ └── vcpkg.json │ ├── ngtcp2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nifly/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nifticlib/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── zlib_include.patch │ ├── nlohmann-fifo-map/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nlohmann-json/ │ │ ├── fix-4736_char8_t.patch │ │ ├── fix-4742_std_optional.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nlopt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nmslib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nng/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nngpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nnpack/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── node-addon-api/ │ │ ├── portfile.cmake │ │ ├── unofficial-node-addon-api-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── node-api-headers/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-node-api-headers-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── nodesoup/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nonius/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nonstd-bit-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nonstd-scope-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nowide/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nrf-ble-driver/ │ │ ├── 001-arm64-support.patch │ │ ├── add-include-chrono.patch │ │ ├── gcc-11.2.0-compilation.patch │ │ ├── portfile.cmake │ │ ├── support-arm64-osx.diff │ │ └── vcpkg.json │ ├── nspr/ │ │ ├── android.diff │ │ ├── library-linkage.diff │ │ ├── nsinstall-windows.diff │ │ ├── parallel.diff │ │ ├── portfile.cmake │ │ ├── unexport-ldflags.diff │ │ └── vcpkg.json │ ├── nss/ │ │ ├── 02-gen-debug-info-for-release.patch │ │ ├── 03-use-debug-crt-for-debug.patch │ │ ├── configure │ │ ├── include-dirs.diff │ │ ├── macos-cross-compile.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nsync/ │ │ ├── add-include-chrono.patch │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nt-wrapper/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ntf-core/ │ │ ├── dont-use-lib64.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nu-book-zxing-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nuklear/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── numactl/ │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── numcpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nuraft/ │ │ ├── fix-build-compatibility-issues.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── nuspell/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nvidia-cutlass/ │ │ ├── fix-cudnn-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── nvtt/ │ │ ├── 001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch │ │ ├── add-compile-options-for-osx.patch │ │ ├── bc6h.patch │ │ ├── bc7.patch │ │ ├── fix-build-error.patch │ │ ├── fix-intrinsic-function.patch │ │ ├── fix-release-flags.patch │ │ ├── portfile.cmake │ │ ├── skip-building-libsquish.patch │ │ ├── squish.patch │ │ └── vcpkg.json │ ├── nyan-lang/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp/ │ │ ├── fix-target.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-consul/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-curl/ │ │ ├── fix-find-curl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-libressl/ │ │ ├── libress-submodule-downgrade-required-libressl-version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-mbedtls/ │ │ ├── find-mbedtls.patch │ │ ├── mbedtls-3.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-mongo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-openssl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-postgresql/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-sqlite/ │ │ ├── fix-usage.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-ssdp/ │ │ ├── fix_String_to_string.patch │ │ ├── fix_win_close.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-swagger/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-websocket/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oatpp-zlib/ │ │ ├── fix-usage.patch │ │ ├── missing-find_dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── obfuscxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oboe/ │ │ ├── fix_install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── observer-ptr-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ocilib/ │ │ ├── fix-DisableWC4191.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── octave/ │ │ ├── add_other_linkage_flags.patch │ │ ├── portfile.cmake │ │ ├── qhull.patch │ │ └── vcpkg.json │ ├── octomap/ │ │ ├── 001-fix-exported-targets.patch │ │ ├── fix-isnan.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── ode/ │ │ ├── arm64-msvc.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── offscale-libetcd-cpp/ │ │ ├── fix-dependency-grpc.patch │ │ ├── install-debug.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ogre/ │ │ ├── cfg-rel-paths.patch │ │ ├── cmake4.patch │ │ ├── fix-dependencies.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── same-install-rules-all-platforms.patch │ │ ├── swig-python-polyfill.patch │ │ └── vcpkg.json │ ├── ogre-next/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── toolchain_fixes.patch │ │ └── vcpkg.json │ ├── ois/ │ │ ├── 0001_install_pkgconfig_win32.patch │ │ ├── 0002-fix-cmake4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── omniorb/ │ │ ├── add_win_into_autotools.patch │ │ ├── def_gen_fix.patch │ │ ├── fix_dependency.patch │ │ ├── hardcode_vaargs_for_msvc.patch │ │ ├── msvc-src-build-fixes.patch │ │ ├── portfile.cmake │ │ ├── python-fixes.patch │ │ ├── release-debug-static.patch │ │ ├── vcpkg.json │ │ └── vcpkg.mk │ ├── ompl/ │ │ ├── 0001-disable-pkgconfig.patch │ │ ├── FindPython.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── omplapp/ │ │ ├── 0001-use-external-libs.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── onednn/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oniguruma/ │ │ ├── fix-uwp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── onnx/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-pr-7390.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── onnx-optimizer/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-pr-201.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── onnxruntime/ │ │ ├── fix-cmake-cuda.patch │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── onnxruntime-gpu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oof/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── open-dis-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── open62541/ │ │ ├── android.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── open62541pp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openal-soft/ │ │ ├── devendor-fmt.diff │ │ ├── pkgconfig-cxx.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openblas/ │ │ ├── cmake-project-include.cmake │ │ ├── disable-testing.diff │ │ ├── getarch.diff │ │ ├── openblas_common.h │ │ ├── portfile.cmake │ │ ├── system-check-msvc.diff │ │ ├── vcpkg.json │ │ └── win32-uwp.diff │ ├── opencascade/ │ │ ├── dependencies.patch │ │ ├── drop-bin-letter-d.patch │ │ ├── fix-install-prefix-path.patch │ │ ├── install-include-dir.patch │ │ ├── portfile.cmake │ │ ├── remove-vcpkg-enabling.patch │ │ └── vcpkg.json │ ├── opencc/ │ │ ├── enable-cpp17.patch │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opencensus-cpp/ │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opencl/ │ │ ├── 001-remove-extra-install-rules.patch │ │ ├── icd-loader-pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── opencolorio/ │ │ ├── dependencies.diff │ │ ├── glew-no-glu.diff │ │ ├── portfile.cmake │ │ ├── pystring.diff │ │ └── vcpkg.json │ ├── opencsg/ │ │ ├── CMakeLists.txt │ │ ├── illegal_char.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openctm/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── use-7zip.patch │ │ └── vcpkg.json │ ├── opencv/ │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── opencv2/ │ │ ├── 0001-install-options.patch │ │ ├── 0002-fix-paths-containing-symbols.patch │ │ ├── 0003-force-package-requirements.patch │ │ ├── 0004-enable-pkgconf.patch │ │ ├── 0005-fix-config.patch │ │ ├── 0006-fix-jasper.patch │ │ ├── 0007-fix-openexr.patch │ │ ├── 0008-missing-include.patch │ │ ├── 0009-pkgconfig-suffix.patch │ │ ├── 0010-fix-cmake4.patch │ │ ├── 0011-msvc-compile-fix.patch │ │ ├── portfile.cmake │ │ ├── usage.in │ │ └── vcpkg.json │ ├── opencv3/ │ │ ├── 0001-disable-downloading.patch │ │ ├── 0002-install-options.patch │ │ ├── 0003-force-package-requirements.patch │ │ ├── 0004-fix-eigen.patch │ │ ├── 0005-fix-vtk9.patch │ │ ├── 0006-fix-uwp.patch │ │ ├── 0007-contrib-fix-hdf5.patch │ │ ├── 0008-devendor-quirc.patch │ │ ├── 0009-fix-protobuf.patch │ │ ├── 0010-fix-uwp-tiff-imgcodecs.patch │ │ ├── 0011-remove-python2.patch │ │ ├── 0012-fix-zlib.patch │ │ ├── 0013-contrib-fix-tesseract.patch │ │ ├── 0014-fix-pkgconf-name.patch │ │ ├── 0015-fix-supportqnx.patch │ │ ├── 0016-contrib-fix-freetype.patch │ │ ├── 0017-enable-gtk.patch │ │ ├── 0019-enable-pkgconf.patch │ │ ├── 0020-contrib-add-cassert.patch │ │ ├── 0021-protobuf-6.patch │ │ ├── 0022-include-thread.patch │ │ ├── portfile.cmake │ │ ├── usage.in │ │ └── vcpkg.json │ ├── opencv4/ │ │ ├── 0001-disable-downloading.patch │ │ ├── 0002-install-options.patch │ │ ├── 0003-force-package-requirements.patch │ │ ├── 0004-opencl.diff │ │ ├── 0005-vulkan.diff │ │ ├── 0007-contrib-fix-hdf5.patch │ │ ├── 0008-devendor-quirc.patch │ │ ├── 0009-fix-protobuf.patch │ │ ├── 0010-fix-uwp-tiff-imgcodecs.patch │ │ ├── 0012-miss-openexr.patch │ │ ├── 0013-contrib-fix-ogre.patch │ │ ├── 0015-fix-freetype.patch │ │ ├── 0016-contrib-fix-freetype.patch │ │ ├── 0017-fix-flatbuffers.patch │ │ ├── 0018-contrib-fix-tesseract.patch │ │ ├── 0020-fix-narrow-filesystem.diff │ │ ├── 0021-fix-qt-gen-def.patch │ │ ├── 0022-android-use-vcpkg-cpu-features.patch │ │ ├── 0023-ffmpeg8-support.patch │ │ ├── portfile.cmake │ │ ├── usage.in │ │ └── vcpkg.json │ ├── opendnp3/ │ │ ├── deps/ │ │ │ └── asio.cmake │ │ ├── opendnp3-config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openexr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── openfbx/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-openfbxConfig.cmake.in │ │ └── vcpkg.json │ ├── openfx/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── opengl/ │ │ ├── glu.pc.in │ │ ├── opengl.pc.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── opengl-registry/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openh264/ │ │ ├── 001-add-bsds-to-meson.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openigtlink/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openimageio/ │ │ ├── fix-dependencies.patch │ │ ├── fix-openexr-target-missing.patch │ │ ├── fix-openimageio_include_dir.patch │ │ ├── fix-static-ffmpeg.patch │ │ ├── imath-version-guard.patch │ │ ├── portfile.cmake │ │ ├── remove-agl-framework.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── openjpeg/ │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── third-party.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── openjph/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── xsi-strerror_r.patch │ ├── openldap/ │ │ ├── android.diff │ │ ├── cyrus-sasl.diff │ │ ├── openssl.patch │ │ ├── portfile.cmake │ │ ├── subdirs.patch │ │ └── vcpkg.json │ ├── openmama/ │ │ ├── fix-dependencies.diff │ │ ├── git-no-tags.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openmesh/ │ │ ├── fix-library-install-path.patch │ │ ├── fix-pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── restore-c++11-compatibility.patch │ │ └── vcpkg.json │ ├── openmpi/ │ │ ├── keep_isystem.patch │ │ ├── mpi-wrapper.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openmvg/ │ │ ├── 0001-fix-build.patch │ │ ├── 0002-fast-c-language.patch │ │ ├── 0003-no-absolute-paths.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openmvs/ │ │ ├── ambiguous-uint_t.diff │ │ ├── cmake.diff │ │ ├── common-log.diff │ │ ├── devendor.diff │ │ ├── interface-metashape.diff │ │ ├── missing-include.diff │ │ ├── no-absolute-paths.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── openni2/ │ │ ├── inherit_from_parent_or_project_defaults.patch │ │ ├── openni2deploy.ps1 │ │ ├── portfile.cmake │ │ ├── replace_environment_variable.patch │ │ ├── upgrade_projects.patch │ │ └── vcpkg.json │ ├── openscap/ │ │ ├── dependencies.diff │ │ ├── install-dirs.diff │ │ ├── portfile.cmake │ │ ├── python-win32.diff │ │ └── vcpkg.json │ ├── openslide/ │ │ ├── cross-build.diff │ │ ├── fix-win-build.patch │ │ ├── portfile.cmake │ │ ├── slidetool-unicode.patch │ │ ├── vcpkg.json │ │ └── windows-dll-name.patch │ ├── openssl/ │ │ ├── cmake-config.patch │ │ ├── command-line-length.patch │ │ ├── fix-mingw-build.patch │ │ ├── install-pc-files.cmake │ │ ├── openssl.pc.in │ │ ├── portfile.cmake │ │ ├── script-prefix.patch │ │ ├── unix/ │ │ │ ├── android-cc.patch │ │ │ ├── configure │ │ │ ├── move-openssldir.patch │ │ │ ├── no-empty-dirs.patch │ │ │ ├── no-static-libs-for-shared.patch │ │ │ ├── portfile.cmake │ │ │ └── remove-deps.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ ├── vcpkg.json │ │ └── windows/ │ │ ├── install-layout.patch │ │ ├── install-pdbs.patch │ │ ├── install-programs.diff │ │ └── portfile.cmake │ ├── opensubdiv/ │ │ ├── fix-build-type.patch │ │ ├── fix-dependencies.patch │ │ ├── fix-feature-cuda.patch │ │ ├── fix-notfind-header.patch │ │ ├── fix-version-search.patch │ │ ├── fix_compile-option.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opentelemetry-cpp/ │ │ ├── fix-target_link.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opentelemetry-cpp-contrib-version/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── opentracing/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openturns/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── openvdb/ │ │ ├── fix_cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── openvino/ │ │ ├── msvc_debug_info_only_in_pdb.patch │ │ ├── npu_deps.patch │ │ ├── onednn_gpu_includes.patch │ │ ├── portfile.cmake │ │ ├── protobuf-6.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── openvpn3/ │ │ ├── dependencies.diff │ │ ├── mbedtls-compat.diff │ │ ├── only-library.diff │ │ ├── portfile.cmake │ │ ├── unofficial-openvpnConfig.cmake │ │ └── vcpkg.json │ ├── openvr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── openxlsx/ │ │ ├── fix-dependencies.patch │ │ ├── missing-header.patch │ │ ├── portfile.cmake │ │ ├── pugixml.patch │ │ ├── use-public-pugixml.patch │ │ └── vcpkg.json │ ├── openxr-loader/ │ │ ├── fix-openxr-sdk-jsoncpp.patch │ │ ├── msvc-crt.diff │ │ ├── portfile.cmake │ │ ├── python3_8_compatibility.patch │ │ └── vcpkg.json │ ├── openzl/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── use-system-zstd.patch │ │ ├── vcpkg.json │ │ └── xxhash-wrapper.h │ ├── optimus-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── optional-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opus/ │ │ ├── fix-pkgconfig-version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── opusfile/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── orange-math/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── orange-vmprotect-sdk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── orc/ │ │ ├── external-project.diff │ │ ├── portfile.cmake │ │ ├── tools-build.diff │ │ └── vcpkg.json │ ├── orefkov-simstr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ormpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── orocos-kdl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── oscpack/ │ │ ├── add-cmake-install-target.patch │ │ ├── link-ws2_32-and-winmm.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── osg/ │ │ ├── android.diff │ │ ├── collada.patch │ │ ├── fix-error-c3861.patch │ │ ├── fix-min-max-macro.patch │ │ ├── fix-nvtt-squish.patch │ │ ├── fix-sdl.patch │ │ ├── link-libraries.patch │ │ ├── openexr3.patch │ │ ├── osgdb_zip_nozip.patch │ │ ├── plugin-pdb-install.patch │ │ ├── portfile.cmake │ │ ├── unofficial-export.patch │ │ ├── unofficial-osg-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── osg-qt/ │ │ ├── CMakeLists.patch │ │ ├── OsgMacroUtils.patch │ │ ├── fix-static-install.patch │ │ ├── portfile.cmake │ │ ├── use-lib.patch │ │ └── vcpkg.json │ ├── osgearth/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── osmanip/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── osp-collection/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── osqp/ │ │ ├── osqp.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── osqp-eigen/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── otl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── outcome/ │ │ ├── files-do-not-exist.patch │ │ ├── fix-status-code-path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── p-ranav-csv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── p-ranav-csv2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── p-ranav-glob/ │ │ ├── portfile.cmake │ │ ├── remove_cpm.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── pagmo2/ │ │ ├── 0001-doxygen.patch │ │ ├── 0002-find-tbb.patch │ │ ├── 0003-disable-werror.patch │ │ ├── 0004-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── paho-mqtt/ │ │ ├── fix-ODR-libuuid-linux.patch │ │ ├── fix-unresolvedsymbol-arm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── paho-mqttpp3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── palsigslot/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pango/ │ │ ├── portfile.cmake │ │ ├── relax-gi-requirement.diff │ │ └── vcpkg.json │ ├── pangolin/ │ │ ├── devendor-palsigslot.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pangomm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── parallel-hashmap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── parallelstl/ │ │ ├── fix-cmakelist.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── paraview/ │ │ ├── add-tools-option.patch │ │ ├── explicit_int_cast.patch │ │ ├── explicit_int_cast_2.patch │ │ ├── fix-build.patch │ │ ├── fix-configure.patch │ │ ├── plugin.patch │ │ ├── portfile.cmake │ │ ├── protobuf-version.patch │ │ ├── removedoublesymbols.patch │ │ └── vcpkg.json │ ├── parmetis/ │ │ ├── build-fixes.patch │ │ ├── portfile.cmake │ │ ├── use_stdint.patch │ │ └── vcpkg.json │ ├── parsi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── parson/ │ │ ├── fix-cmake-files-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── patternia/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pbc/ │ │ ├── linux.patch │ │ ├── portfile.cmake │ │ ├── unofficial-pbc-config.cmake │ │ ├── vcpkg.json │ │ └── windows.patch │ ├── pcapplusplus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pcg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pciids/ │ │ ├── acquire_pciids.cmake │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── pcl/ │ │ ├── fix-check-sse.patch │ │ ├── fix-clang-cl.patch │ │ ├── fix-numeric-literals-flag.patch │ │ ├── install-examples.patch │ │ ├── install-layout.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pcre/ │ │ ├── export-cmake-targets.patch │ │ ├── pcre-8.4.5_fix_check_function_exists_for_arm-androi_builds.patch │ │ ├── pcre-8.45_fix_postfix_for_debug_Windows_builds.patch │ │ ├── pcre-8.45_suppress_cmake_and_compiler_warnings-errors.patch │ │ ├── portfile.cmake │ │ ├── unofficial-pcre-config.cmake │ │ └── vcpkg.json │ ├── pcre2/ │ │ ├── no-static-suffix.patch │ │ ├── pcre2-10.35_fix-uwp.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pdal/ │ │ ├── cmake-project-include.cmake │ │ ├── dependencies.diff │ │ ├── external-dimbuilder.diff │ │ ├── find-library-suffix.diff │ │ ├── gdal-3.11.diff │ │ ├── h3api.h │ │ ├── no-rpath.patch │ │ ├── portfile.cmake │ │ ├── rapidxml.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── pdal-c/ │ │ ├── cmake-project-include.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pdal-dimbuilder/ │ │ ├── namespace-nl.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pdcurses/ │ │ ├── LICENSE │ │ ├── nmake-install.patch │ │ ├── portfile.cmake │ │ ├── unofficial-pdcurses-config.cmake │ │ └── vcpkg.json │ ├── pdqsort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pe-parse/ │ │ ├── arm64-windows-fix.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pegtl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pegtl-2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── perfetto/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pffft/ │ │ ├── CMakeLists.txt │ │ ├── copyright │ │ ├── fix-invalid-command.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pfring/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pfultz2-linq/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── phnt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── physac/ │ │ ├── LICENSE │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── physfs/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── physx/ │ │ ├── omniverse-physx-sdk-config.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── picobench/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── picojson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── picosha2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── piex/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pipewire/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pistache/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pixel/ │ │ ├── 001-prevent-examples.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pixman/ │ │ ├── no-host-cpu-checks.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pkgconf/ │ │ ├── 001-unveil-fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plasma-wayland-protocols/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── platform-folders/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-colony/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-hive/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-indiesort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-list/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-nanotimer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-queue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plf-stack/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plib/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plibsys/ │ │ ├── fix_configuration.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plog/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── plplot/ │ │ ├── cmake-config.diff │ │ ├── fix-pc-absolute.patch │ │ ├── host-tool.cmake │ │ ├── install-interface-include-directories.patch │ │ ├── pkg_config_link_flags.diff │ │ ├── pkgconfig-template.diff │ │ ├── portfile.cmake │ │ ├── subdirs.patch │ │ ├── usage │ │ ├── use-math-h-nan.patch │ │ └── vcpkg.json │ ├── plustache/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plutosvg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── plutovg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pmdk/ │ │ ├── portfile.cmake │ │ ├── remove_getopt.patch │ │ └── vcpkg.json │ ├── pmp-library/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pngpp/ │ │ ├── fix-stderror-win.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pngwriter/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pocketfft/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pocketpy/ │ │ ├── fix-conflict.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── poco/ │ │ ├── 0001-static-pcre.patch │ │ ├── 0002-arm64-pcre.patch │ │ ├── 0003-fix-dependency.patch │ │ ├── 0004-fix-feature-sqlite3.patch │ │ ├── 0005-fix-error-c3861.patch │ │ ├── 0007-find-pcre2.patch │ │ ├── 0008-fix-mingw-compilation.patch │ │ ├── 0009-fix-zip-to-xml-dependency.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── podofo/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── poissonrecon/ │ │ ├── CMakeLists.txt │ │ ├── disable-gcc5-checks.patch │ │ ├── portfile.cmake │ │ ├── use-external-libs.patch │ │ └── vcpkg.json │ ├── polyclipping/ │ │ ├── FindCLIPPER.cmake │ │ ├── fix_targets.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── polyhook2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── polymorphic-value/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ponder/ │ │ ├── github-121.patch │ │ ├── no-install-unused.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── poolparty/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── poolstl/ │ │ ├── fix-find-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── poppler/ │ │ ├── cmake-project-include.cmake │ │ ├── export-unofficial-poppler.patch │ │ ├── portfile.cmake │ │ ├── private-namespace.patch │ │ ├── unofficial-poppler-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── poppler-data/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── popsift/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── portable-file-dialogs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── portable-snippets/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── portaudio/ │ │ ├── fix-guid-linker-errors.patch │ │ ├── jack.diff │ │ ├── portfile.cmake │ │ ├── use-vcpkg-asiosdk.patch │ │ └── vcpkg.json │ ├── portmidi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── portsmf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── poselib/ │ │ ├── fatal-errors.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ppconsul/ │ │ ├── cmake_build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ppqsort/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── pprint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pqp/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── fix-math-functions.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pravila00-enum-string/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pravila00-enumflag/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pravila00-make-vector/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── presentmon/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── proj/ │ │ ├── fix-proj4-targets-cmake.patch │ │ ├── portfile.cmake │ │ ├── remove_toolset_restriction.patch │ │ ├── sqlite.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── projectm/ │ │ ├── macos-pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── projectm-eval/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── prometheus-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── promise-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── protobuf/ │ │ ├── fix-constinit-with-clang-cl.patch │ │ ├── fix-default-proto-file-path.patch │ │ ├── fix-install-dirs.patch │ │ ├── fix-static-build.patch │ │ ├── fix-upb.patch │ │ ├── fix-utf8-range.patch │ │ ├── portfile.cmake │ │ ├── protobuf-targets-vcpkg-protoc.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── protobuf-c/ │ │ ├── fix-crt-linkage.patch │ │ ├── fix-dependency-protobuf.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── protopuf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── protozero/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── proxsuite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── proxy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── proxygen/ │ │ ├── fix-dependency.patch │ │ ├── folly-has-liburing.diff │ │ ├── portfile.cmake │ │ ├── remove-register.patch │ │ └── vcpkg.json │ ├── psimd/ │ │ ├── add-cmake-config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ptc-print/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ptex/ │ │ ├── fix-android.patch │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pthread/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pthread-stubs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pthreadpool/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-uwp.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pthreads/ │ │ ├── PThreads4WConfig.cmake │ │ ├── fix-arm-macro.patch │ │ ├── fix-arm64-version_rc.patch │ │ ├── fix-install.patch │ │ ├── fix-pthread_getname_np.patch │ │ ├── fix-uwp-linkage.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── use-md.patch │ │ ├── use-mt.patch │ │ ├── vcpkg-cmake-wrapper-pthread.cmake │ │ ├── vcpkg-cmake-wrapper-pthreads-windows.cmake │ │ ├── vcpkg-cmake-wrapper-pthreads.cmake │ │ ├── vcpkg.json │ │ └── whitespace_in_path.patch │ ├── ptyqt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pugixml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pulsar-client-cpp/ │ │ ├── disable-warnings.patch │ │ ├── portfile.cmake │ │ ├── unofficial-pulsar-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pulseaudio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pulzed-mini/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pxlib/ │ │ ├── add_cmake_config.patch │ │ ├── add_extern_c.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── pybind11/ │ │ ├── android.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── pystring/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── python2/ │ │ ├── 001-build-msvc.patch │ │ ├── 002-build-msvc.patch │ │ ├── 003-build-msvc.patch │ │ ├── 004-static-library-msvc.patch │ │ ├── 005-static-crt-msvc.patch │ │ ├── 006-static-fix-headers.patch │ │ ├── 007-fix-build-path.patch │ │ ├── 008-bz2d.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── python3/ │ │ ├── 0001-only-build-required-projects.patch │ │ ├── 0002-static-library.patch │ │ ├── 0003-use-vcpkg-zlib.patch │ │ ├── 0004-devendor-external-dependencies.patch │ │ ├── 0005-dont-copy-vcruntime.patch │ │ ├── 0007-workaround-windows-11-sdk-rc-compiler-error.patch │ │ ├── 0008-python.pc.patch │ │ ├── 0010-dont-skip-rpath.patch │ │ ├── 0015-dont-use-WINDOWS-def.patch │ │ ├── 0016-fix-win-cross.patch │ │ ├── 0016-undup-ffi-symbols.patch │ │ ├── 0017-fix-win.patch │ │ ├── 0018-fix-sysconfig-include.patch │ │ ├── 0019-fix-ssl-linkage.patch │ │ ├── 0020-Py_NO_LINK_LIB.patch │ │ ├── openssl.props.in │ │ ├── portfile.cmake │ │ ├── python_vcpkg.props.in │ │ ├── usage │ │ ├── usage.unix │ │ ├── usage.win │ │ ├── vcpkg-cmake-wrapper.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── qca/ │ │ ├── 0001-fix-path-for-vcpkg.patch │ │ ├── 0002-fix-build-error.patch │ │ ├── 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch │ │ ├── 0004-fix-cmake4.patch │ │ ├── mk-ca-bundle.pl │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qcbor/ │ │ ├── install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qcoro/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qcustomplot/ │ │ ├── config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qdldl/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qgis-o2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qhttpengine/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qhull/ │ │ ├── fix-missing-symbols.patch │ │ ├── fix-qhullcpp-cpp20-support.patch │ │ ├── include-qhullcpp-shared.patch │ │ ├── noapp.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qlementine/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qlementine-icons/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qmex/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qnnpack/ │ │ ├── fix-arm64-osx.patch │ │ ├── portfile.cmake │ │ ├── use-packages.patch │ │ └── vcpkg.json │ ├── qoi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qoixx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qpdf/ │ │ ├── cmake-library-only.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qpid-proton/ │ │ ├── early-cxx.diff │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qpoases/ │ │ ├── export_target.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── qscintilla/ │ │ ├── fix-static.patch │ │ ├── portfile.cmake │ │ ├── unofficial-qscintilla-config.cmake │ │ └── vcpkg.json │ ├── qt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt-advanced-docking-system/ │ │ ├── fix_windows_version_resources_generation.patch │ │ ├── portfile.cmake │ │ ├── set_cmake_module_path.patch │ │ └── vcpkg.json │ ├── qt3d/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-3d/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-activeqt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-androidextras/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-base/ │ │ ├── cmake/ │ │ │ ├── configure_qt.cmake │ │ │ ├── find_qt_mkspec.cmake │ │ │ ├── install_qt.cmake │ │ │ ├── qt_build_submodule.cmake │ │ │ ├── qt_download_submodule.cmake │ │ │ ├── qt_fix_cmake.cmake │ │ │ ├── qt_fix_makefile_install.cmake │ │ │ ├── qt_fix_prl.cmake │ │ │ ├── qt_install_copyright.cmake │ │ │ ├── qt_port_functions.cmake │ │ │ ├── qt_port_hashes.cmake │ │ │ └── qt_submodule_installation.cmake │ │ ├── patches/ │ │ │ ├── CVE-2025-30348-qtbase-5.15.diff │ │ │ ├── CVE-2025-4211-qtbase-5.15.diff │ │ │ ├── CVE-2025-5455-qtbase-5.15.patch │ │ │ ├── Qt5BasicConfig.patch │ │ │ ├── Qt5GuiConfigExtras.patch │ │ │ ├── Qt5PluginTarget.patch │ │ │ ├── create_cmake.patch │ │ │ ├── egl.patch │ │ │ ├── fix_angle.patch │ │ │ ├── macos26-opengl.patch │ │ │ ├── md4c.diff │ │ │ ├── mingw9.patch │ │ │ ├── mysql-configure.patch │ │ │ ├── mysql_plugin_include.patch │ │ │ ├── patch-qtbase-memory_resource.diff │ │ │ ├── qmake-arm64.patch │ │ │ ├── qt_app.patch │ │ │ ├── qtbug_96392.patch │ │ │ ├── static_opengl.patch │ │ │ ├── vulkan-windows.diff │ │ │ ├── windows_prf.patch │ │ │ ├── winmain_pro.patch │ │ │ └── xlib.patch │ │ ├── portfile.cmake │ │ ├── qtdeploy.ps1 │ │ └── vcpkg.json │ ├── qt5-charts/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-connectivity/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-datavis3d/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-declarative/ │ │ ├── linker-oom.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-doc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-gamepad/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-graphicaleffects/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-imageformats/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-location/ │ │ ├── add-float-cast.diff │ │ ├── add-stdint.diff │ │ ├── disable-enum-warning.patch │ │ ├── missing-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-macextras/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-mqtt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-multimedia/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-networkauth/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-purchasing/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-quick3d/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-quickcontrols/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-quickcontrols2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-quicktimeline/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-remoteobjects/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-script/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-scxml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-sensors/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-serialbus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-serialport/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-speech/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-svg/ │ │ ├── portfile.cmake │ │ ├── static_svg_link_fix.patch │ │ └── vcpkg.json │ ├── qt5-tools/ │ │ ├── fix-pkgconfig-qt5uiplugin-not-found.patch │ │ ├── libclang.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-translations/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-virtualkeyboard/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-wayland/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-webchannel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-webengine/ │ │ ├── 0001-Fix-jumbo-build-error-due-to-ResolveColor-redefiniti.patch │ │ ├── build_1.patch │ │ ├── common.pri.patch │ │ ├── fix-spellcheck-buildflags.patch │ │ ├── gl.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── workaround-protobuf-issue.patch │ ├── qt5-webglplugin/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-websockets/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-webview/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-winextras/ │ │ ├── patches/ │ │ │ ├── require_quick.patch │ │ │ └── unrequire_quick.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-x11extras/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5-xmlpatterns/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qt5compat/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtactiveqt/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtapplicationmanager/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── wrapper-fixes.patch │ ├── qtbase/ │ │ ├── GLIB2-static.patch │ │ ├── allow_outside_prefix.patch │ │ ├── clang-cl_QGADGET_fix.diff │ │ ├── clang-cl_source_location.patch │ │ ├── cmake/ │ │ │ ├── qt_install_copyright.cmake │ │ │ ├── qt_install_submodule.cmake │ │ │ └── qt_port_details.cmake │ │ ├── config_install.patch │ │ ├── dont_force_cmakecache_latest.patch │ │ ├── env.patch │ │ ├── fix-host-aliasing.patch │ │ ├── fix-libresolv-test.patch │ │ ├── fix-link-lib-discovery.patch │ │ ├── fix_cmake_build.patch │ │ ├── fix_deploy_windows.patch │ │ ├── fix_egl.patch │ │ ├── fix_egl_2.patch │ │ ├── framework.patch │ │ ├── harfbuzz.patch │ │ ├── installed_dir.patch │ │ ├── macdeployqt-symlinks.patch │ │ ├── moltenvk.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── qmake.debug.bat │ │ ├── qt.conf.in │ │ ├── qtpaths.debug.bat │ │ ├── use-shared-mime-info.patch │ │ ├── use_inotify_on_freebsd.patch │ │ ├── vcpkg.json │ │ ├── windeployqt.debug.bat │ │ └── xcodebuild-not-installed.patch │ ├── qtcharts/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtcoap/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtconnectivity/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtdatavis3d/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtdeclarative/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtdeviceutilities/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtdoc/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtgraphs/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtgrpc/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── protoc-host.patch │ │ └── vcpkg.json │ ├── qthttpserver/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtimageformats/ │ │ ├── no_target_promotion_latest.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtinterfaceframework/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── requirements_minimal.txt │ │ └── vcpkg.json │ ├── qtkeychain/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtkeychain-qt6/ │ │ ├── dbus-emscripten.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtlanguageserver/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtlocation/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtlottie/ │ │ ├── fix_qt_version.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtmqtt/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtmultimedia/ │ │ ├── ae41d3e-ffmpeg8.diff │ │ ├── ffmpeg-compile-def-and-devendor-signalsmith-stretch.patch │ │ ├── ffmpeg.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── remove-static-ssl-stub.patch │ │ ├── static_find_modules.patch │ │ └── vcpkg.json │ ├── qtnetworkauth/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtopcua/ │ │ ├── fix-build.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtpositioning/ │ │ ├── devendor-poly2tri.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtquick3d/ │ │ ├── 0001-devendor-meshoptimizer.patch │ │ ├── android-openxr-vulkan.diff │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtquick3dphysics/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtquickcontrols2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtquickeffectmaker/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtquicktimeline/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtremoteobjects/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtscxml/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtsensors/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtserialbus/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtserialport/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtshadertools/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtspeech/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtsvg/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qttools/ │ │ ├── devendor-litehtml.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── windeployqt.debug.bat │ ├── qttranslations/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtvirtualkeyboard/ │ │ ├── hunspell_include_path_fix.patch │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtwayland/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtwebchannel/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtwebengine/ │ │ ├── allow-msvc-145.diff │ │ ├── clang-cl.patch │ │ ├── cross-build.diff │ │ ├── disable-host-pkgconfig.diff │ │ ├── include-dir-order.diff │ │ ├── osx-sdk-info.diff │ │ ├── pdf-system-libjpeg.diff │ │ ├── pdf-system-libpng.diff │ │ ├── pkg-config.diff │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ ├── rpath.diff │ │ └── vcpkg.json │ ├── qtwebsockets/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qtwebview/ │ │ ├── port.data.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── quadtree/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── quantlib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── quarter/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── quaternions/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── quazip/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── quickfix/ │ │ ├── 00001-fix-build.patch │ │ ├── fix_wsl_symlink_error.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── quickjs-ng/ │ │ ├── pdb_name_conflict.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── quill/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── quirc/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qwt/ │ │ ├── config.patch │ │ ├── fix_dll_install.patch │ │ ├── portfile.cmake │ │ ├── unofficial-qwt-config.cmake │ │ └── vcpkg.json │ ├── qwtw/ │ │ ├── add-include-chrono.patch │ │ ├── fix-asio-error.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── qzxing/ │ │ ├── add-cmake-config.patch │ │ ├── allow-shared-build.patch │ │ ├── portfile.cmake │ │ ├── use-qt6.patch │ │ └── vcpkg.json │ ├── rabit/ │ │ ├── fix-file-conflict.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ragel/ │ │ ├── 0001-remove-unistd-h.patch │ │ ├── CMakeLists.txt │ │ ├── config.h │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── random123/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── randomstr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rang/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── range-v3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidcheck/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidcsv/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidfuzz/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidfuzz-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidhash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidjson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidobj/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidxml/ │ │ ├── 0001-fix-for-a-bug-in-gcc-that-won-t-let-rapidxml-compile.patch │ │ ├── msvc-alloc_func.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rapidxml-ns/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rappture/ │ │ ├── CMakeLists.txt │ │ ├── include_functional.patch │ │ ├── portfile.cmake │ │ ├── rappture.patch │ │ └── vcpkg.json │ ├── raygui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── raylib/ │ │ ├── android.diff │ │ ├── fix-link-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── raylib-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rbdl/ │ │ ├── 0001-fix-eigen3.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── re2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── reaction/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── reactiveplusplus/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── reactphysics3d/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── readerwriterqueue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── readline/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── readline-unix/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── readline-win32/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── readosm/ │ │ ├── fix-makefiles.patch │ │ ├── pc-file.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── realm-core/ │ │ ├── UWP_index_set.patch │ │ ├── cstdlib.diff │ │ ├── fix-zlib.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── realsense2/ │ │ ├── add-stdexcept.diff │ │ ├── android-config.diff │ │ ├── build.diff │ │ ├── devendor-lz4.diff │ │ ├── devendor-nlohmann-json.diff │ │ ├── devendor-stb.diff │ │ ├── fix_openni2.patch │ │ ├── libusb.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── using-firmware.diff │ │ └── vcpkg.json │ ├── rebind/ │ │ ├── portfile.cmake │ │ ├── remove-cpm.patch │ │ └── vcpkg.json │ ├── recastnavigation/ │ │ ├── fix-detail-mesh-edge-detection.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── recycle/ │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── red0124-ssp/ │ │ ├── no-fetchcontent.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── redis-plus-plus/ │ │ ├── fix-absolute-path.patch │ │ ├── fix-conversion.patch │ │ ├── fix-dependency-libuv.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── refl-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── reflectcpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── refprop-headers/ │ │ ├── portfile.cmake │ │ ├── unicode-build.diff │ │ └── vcpkg.json │ ├── rendergraph/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── replxx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── reproc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rerun-sdk/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rest-rpc/ │ │ ├── portfile.cmake │ │ ├── unofficial-rest-rpc-config.cmake │ │ └── vcpkg.json │ ├── restbed/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── restc-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── restclient-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── restinio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── resultlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── retropak/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rewolf-wow64ext/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── wow64extConfig.cmake.in │ ├── rexo/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rgfw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rhash/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rhasheq/ │ │ ├── find-rhash.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── riffcpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ring-span-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rioki-glow/ │ │ ├── add-iostream.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ripper37-libbase/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rivers/ │ │ ├── add-install-configuration.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rkcommon/ │ │ ├── fix-static.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rlottie/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── vcpkg.patch │ ├── rmlui/ │ │ ├── add-itlib-and-robin-hood.patch │ │ ├── portfile.cmake │ │ ├── skip-custom-find-modules.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── rmqcpp/ │ │ ├── disable-tests-and-examples.patch │ │ ├── new-boost.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rnnoise/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── roaring/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── robin-hood-hashing/ │ │ ├── fix-missing-stdint.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── robin-map/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── robotraconteur/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── robotraconteur-companion/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rocksdb/ │ │ ├── 0001-fix-dependencies.patch │ │ ├── 0002-fix-android.patch │ │ ├── 0003-include_cstdint.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rp-ntuples/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rpclib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rply/ │ │ ├── CMakeLists.txt │ │ ├── fix-uninitialized-local-variable.patch │ │ ├── portfile.cmake │ │ ├── rply-config.cmake.in │ │ ├── rply.def │ │ ├── usage │ │ └── vcpkg.json │ ├── rsasynccpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rsig/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── rsm-binary-io/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rsm-bsa/ │ │ ├── DirectXTexUint8Byte.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rsm-mmio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rsocket/ │ │ ├── fix-c2665.patch │ │ ├── fix-cmake-config.patch │ │ ├── fix-find-dependencies.patch │ │ ├── fix-folly.patch │ │ ├── fix-rsockserver-build-error.patch │ │ ├── fix-yarpl.patch │ │ ├── portfile.cmake │ │ ├── use-cpp-17.patch │ │ └── vcpkg.json │ ├── rtabmap/ │ │ ├── 0001-cmakelists-fixes.patch │ │ ├── 0002-fix-link.patch │ │ ├── 0003-multi-definition.patch │ │ ├── 0004-remove-apple-sys-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rtabmap-res-tool/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rtaudio/ │ │ ├── fix-pulse.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rtc-benchmarksuite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rtlsdr/ │ │ ├── dependencies.diff │ │ ├── library-linkage.diff │ │ ├── portfile.cmake │ │ ├── tools.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── rtmfp-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rtmidi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rttr/ │ │ ├── Fix-depends.patch │ │ ├── disable-unsupport-header.patch │ │ ├── disable-werrorr.patch │ │ ├── fix-directory-output.patch │ │ ├── portfile.cmake │ │ ├── remove-owner-read-perms.patch │ │ └── vcpkg.json │ ├── ruapu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rubberband/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ruckig/ │ │ ├── portfile.cmake │ │ ├── third_party.patch │ │ └── vcpkg.json │ ├── rxcpp/ │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rxqt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── rxspencer/ │ │ ├── disable-docs-and-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ryml/ │ │ ├── cmake-fix.patch │ │ ├── fix-param-name.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ryu/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── s2geometry/ │ │ ├── fix-msvc-build.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── s2n/ │ │ ├── fix-cmake-target-path.patch │ │ ├── openssl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── safeint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── safetyhook/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sail/ │ │ ├── fix-heif.patch │ │ ├── fix-include-directory.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sajson/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── salome-configuration/ │ │ ├── cmake-4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── salome-med-fichier/ │ │ ├── hdf5-2.patch │ │ ├── hdf5.patch │ │ ├── more-fixes.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── salome-medcoupling/ │ │ ├── fix-missing-symbols.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── win.patch │ ├── sassc/ │ │ ├── portfile.cmake │ │ ├── remove_compiler_flags.patch │ │ └── vcpkg.json │ ├── saucer/ │ │ ├── 0001-use-local-packages.patch │ │ ├── 0002-fix-glaze-opts.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sbgecom/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sbp/ │ │ ├── 0000-install-include-directory.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── scenepic/ │ │ ├── 0001-fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── scintilla/ │ │ ├── 0001-static-lib.patch │ │ ├── 0002-static-crt.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sciplot/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sciter-js/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── scnlib/ │ │ ├── portfile.cmake │ │ ├── scnlib-pr-136.patch │ │ └── vcpkg.json │ ├── scope-guard/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── scotch/ │ │ ├── fix-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── scottt-debugbreak/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── scylla-wrapper/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdbus-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdflib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdformat/ │ │ ├── cmake-config.patch │ │ ├── no-absolute.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdl1/ │ │ ├── SDL.vcxproj.in │ │ ├── SDL1_2017.sln.in │ │ ├── SDLmain.vcxproj.in │ │ ├── export-symbols-only-in-shared-build.patch │ │ ├── fix-linux-build.patch │ │ ├── portfile.cmake │ │ ├── sdl-config.patch │ │ └── vcpkg.json │ ├── sdl1-mixer/ │ │ ├── SDL_mixer.vcxproj.in │ │ ├── SDL_mixer_2017.sln.in │ │ ├── mpg123_ssize_t.patch │ │ ├── native_midi.vcxproj.in │ │ ├── playmus.vcxproj.in │ │ ├── playwave.vcxproj.in │ │ ├── portfile.cmake │ │ ├── timidity.vcxproj.in │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl1-net/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdl2/ │ │ ├── alsa-dep-fix.patch │ │ ├── cxx-linkage-pkgconfig.diff │ │ ├── deps.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2-gfx/ │ │ ├── 001-lrint-arm64.patch │ │ ├── 002-use-the-lrintf-intrinsic.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdl2-image/ │ │ ├── fix-findwebp.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2-mixer/ │ │ ├── fix-pkg-prefix.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2-mixer-ext/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2-net/ │ │ ├── fix-uwp.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2-ttf/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl2pp/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sdl3/ │ │ ├── fix-freebsd.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl3-image/ │ │ ├── dependencies.diff │ │ ├── pkgconfig-libname.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl3-mixer/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl3-shadercross/ │ │ ├── fix-directx-shader-compiler-includes.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sdl3-ttf/ │ │ ├── link-sdl3.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── seacas/ │ │ ├── deps-and-shared.patch │ │ ├── fix-build-error-with-fmt11.patch │ │ ├── fix-fmt-10.patch │ │ ├── fix-headers.patch │ │ ├── fix-ioss-includes.patch │ │ ├── fix-mpi.patch │ │ ├── fix_tpl_libs.patch │ │ ├── netcdf-c.diff │ │ ├── portfile.cmake │ │ ├── use-std-localtime.patch │ │ └── vcpkg.json │ ├── seal/ │ │ ├── fix-hexl.patch │ │ ├── portfile.cmake │ │ ├── shared-zstd.patch │ │ └── vcpkg.json │ ├── seasocks/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sebsjames-maths/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── secp256k1/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── selene/ │ │ ├── disable_x86_intrinsics_on_arm.patch │ │ ├── portfile.cmake │ │ ├── tiff-deprecated-typedefs.patch │ │ ├── trivial-pixel.patch │ │ └── vcpkg.json │ ├── sentencepiece/ │ │ ├── abseil.diff │ │ ├── linkage.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sentry-native/ │ │ ├── devendor-libunwind.patch │ │ ├── fix-cmake4.patch │ │ ├── fix-crashpad-wer.patch │ │ ├── fix-usage-runtime.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── septag-dmon/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── septag-sx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── seqan/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── serd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── serdepp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── serf/ │ │ ├── portfile.cmake │ │ ├── serf-fix-expat.patch │ │ ├── serf-use-debug-libs.patch │ │ └── vcpkg.json │ ├── sese/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sf2cute/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sfcgal/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sfgui/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sfl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sfml/ │ │ ├── 01-fix-dependency-resolve.patch │ │ ├── 03-fix-android-install-path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sfsexp/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shader-slang/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shaderc/ │ │ ├── build-version.inc │ │ ├── cmake-config-export.patch │ │ ├── cmake-project-include.cmake │ │ ├── disable-update-version.patch │ │ ├── fix-build-type.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── shaderwriter/ │ │ ├── fix-template.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shapelib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shared-mime-info/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sheenbidi/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shiftmedia-libgcrypt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── shiftmedia-libgnutls/ │ │ ├── external-libtasn1.patch │ │ ├── pkgconfig.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── shiftmedia-libgpg-error/ │ │ ├── TargetPlatformMinVersion.patch │ │ ├── outdir.patch │ │ ├── portfile.cmake │ │ ├── runtime.patch │ │ └── vcpkg.json │ ├── si/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sigmatch/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── signalsmith-dsp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── signalsmith-stretch/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sigslot/ │ │ ├── LICENSE │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simage/ │ │ ├── portfile.cmake │ │ ├── requies-all-dependencies.patch │ │ └── vcpkg.json │ ├── simbody/ │ │ ├── common-name-libs.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── simd/ │ │ ├── SimdConfig.cmake │ │ ├── fix-platform-detection.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simde/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simdjson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simdutf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simonbrunel-qtpromise/ │ │ ├── patches/ │ │ │ ├── install_headers.patch │ │ │ └── remove_error_flags.patch │ │ ├── portfile.cmake │ │ ├── unofficial-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── simple-fft/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simpleamqpclient/ │ │ ├── portfile.cmake │ │ ├── rabbitmqc-use-find-package-config.patch │ │ └── vcpkg.json │ ├── simpleble/ │ │ ├── portfile.cmake │ │ ├── use-std-localtime.patch │ │ └── vcpkg.json │ ├── simpleini/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── simsimd/ │ │ ├── export-target.patch │ │ ├── force-c17-on-msvc.patch │ │ ├── portfile.cmake │ │ ├── support-msvc.patch │ │ └── vcpkg.json │ ├── sintra/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sjpeg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── skcrypter/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── skia/ │ │ ├── allow-disabling-lib-dl.patch │ │ ├── always-build-pathops.patch │ │ ├── bentleyottmann-build.patch │ │ ├── dawn.patch │ │ ├── disable-msvc-env-setup.patch │ │ ├── dont-use-response-file.patch │ │ ├── example/ │ │ │ ├── CMakeLists.txt │ │ │ ├── skcms.cpp │ │ │ └── skpathediting.cpp │ │ ├── fix-bsd.patch │ │ ├── graphite.patch │ │ ├── pdfsubsetfont-uwp.diff │ │ ├── portfile.cmake │ │ ├── skcms-dllexport.patch │ │ ├── skia-functions.cmake │ │ ├── skiaConfig.cmake │ │ ├── skparagraph-dllexport.patch │ │ ├── skstrendswith-dllexport.patch │ │ ├── third-party.gn.in │ │ ├── unofficial-skia-config.cmake │ │ ├── unofficial-skia-targets-details.cmake │ │ ├── unofficial-skia-targets.cmake │ │ ├── usage │ │ ├── use-pkgconfig-to-find-gl.patch │ │ ├── vcpkg.json │ │ └── vulkan-headers.patch │ ├── skyr-url/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sleef/ │ │ ├── android-neon.diff │ │ ├── exclude-testerutil.diff │ │ ├── export-link-libs.diff │ │ ├── portfile.cmake │ │ ├── seh-cpu-ext.diff │ │ ├── sleefdft.pc.diff │ │ └── vcpkg.json │ ├── sleepy-discord/ │ │ ├── fix-messing-header.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── slick-logger/ │ │ ├── portfile.cmake │ │ ├── slick-queue.patch │ │ └── vcpkg.json │ ├── slick-net/ │ │ ├── portfile.cmake │ │ ├── slick-queue.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── slick-object-pool/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── slick-queue/ │ │ ├── portfile.cmake │ │ ├── slick-shm.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── slick-shm/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── slick-socket/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── slikenet/ │ │ ├── fix-emscripten.patch │ │ ├── fix-install.patch │ │ ├── portfile.cmake │ │ ├── slikenet-config.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── sltbench/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── small-gicp/ │ │ ├── portfile.cmake │ │ ├── preprocessor_portability.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── smf/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── smpeg2/ │ │ ├── 003-fix-double-ptr-to-int-comparison.patch │ │ ├── CMakeLists.txt │ │ ├── hufftable-uint.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── snap7/ │ │ ├── 0001-remove-using-namespace-std.patch │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── snappy/ │ │ ├── no-werror.patch │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── rtti.diff │ │ ├── snappy.pc.in │ │ ├── usage │ │ └── vcpkg.json │ ├── snitch/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── snowhouse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── so5extra/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soapysdr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sobjectizer/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soci/ │ │ ├── dependencies.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── usage-requirements.diff │ │ └── vcpkg.json │ ├── sockpp/ │ │ ├── android-strerror_r.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soem/ │ │ ├── disable-werror-and-wx.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── winpcap.patch │ ├── soil/ │ │ ├── fix-cmakelists.patch │ │ ├── portfile.cmake │ │ ├── soilConfig.cmake.in │ │ ├── soilConfigVersion.cmake.in │ │ └── vcpkg.json │ ├── soil2/ │ │ ├── CMakeLists.txt │ │ ├── Workaround-ICE-in-release.patch │ │ ├── portfile.cmake │ │ ├── soil2Config.cmake.in │ │ └── vcpkg.json │ ├── sokol/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sol2/ │ │ ├── header-only.patch │ │ ├── lua-5.5.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── solid3/ │ │ ├── disable-examples.patch │ │ ├── no-sse.patch │ │ ├── portfile.cmake │ │ ├── potentially-uninitialized-local-pointer-variable.patch │ │ └── vcpkg.json │ ├── sonivox/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sophus/ │ │ ├── 0001-support-eigen3-5.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soqt/ │ │ ├── disable-cpackd.patch │ │ ├── disable-test-code.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sord/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soundtouch/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── soxr/ │ │ ├── 001_initialize-resampler.patch │ │ ├── 002_disable_warning.patch │ │ ├── 003_detect_arm.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spaceland/ │ │ ├── fix-cmake4.patch │ │ ├── include_functional.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── span-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sparsehash/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sparsepp/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spatial-hash/ │ │ ├── compatible-vcpkg-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spatialite-tools/ │ │ ├── android-builtin-iconv.diff │ │ ├── configure.diff │ │ ├── fix-makefiles.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spdlog/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── spectra/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── speex/ │ │ ├── fix-vla-check.patch │ │ ├── portfile.cmake │ │ ├── subdirs.patch │ │ └── vcpkg.json │ ├── speexdsp/ │ │ ├── CMakeLists.txt │ │ ├── jitter_ctl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spglib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── spimpl/ │ │ ├── portfile.cmake │ │ ├── unofficial-spimpl-config.cmake │ │ └── vcpkg.json │ ├── spine-c/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spine-cpp/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spirit-po/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spirv-cross/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spirv-headers/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spirv-reflect/ │ │ ├── export-targets.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spirv-tools/ │ │ ├── cmake-config-dir.diff │ │ ├── fix-tool-deps.diff │ │ ├── portfile.cmake │ │ ├── spirv-tools-shared.diff │ │ ├── usage │ │ └── vcpkg.json │ ├── spix/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── spout2/ │ │ ├── fix-dx-keyed.patch │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sproto/ │ │ ├── CMakeLists.txt │ │ ├── add-symbol-exports.patch │ │ ├── portfile.cmake │ │ ├── sproto-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── sprout/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spscqueue/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── spz/ │ │ ├── portfile.cmake │ │ ├── tools-improvements.patch │ │ └── vcpkg.json │ ├── sqlcipher/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── sqlcipher-config.in.cmake │ │ └── vcpkg.json │ ├── sqlgen/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── sqlite-flux/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlite-modern-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlite-orm/ │ │ ├── fix-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlite3/ │ │ ├── CMakeLists.txt │ │ ├── add-config-include.patch │ │ ├── fix-arm-uwp.patch │ │ ├── portfile.cmake │ │ ├── sqlite3-config.in.cmake │ │ ├── sqlite3-vcpkg-config.h.in │ │ ├── sqlite3.pc.in │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── sqlitecpp/ │ │ ├── add_runtime_destination.patch │ │ ├── fix_dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlpp11/ │ │ ├── ddl2cpp_path.patch │ │ ├── dependencies.diff │ │ ├── fix-miss-header.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlpp11-connector-mysql/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sqlpp11-connector-sqlite3/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── squirrel/ │ │ ├── fix_optionally_build_sq.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sratom/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── srell/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── srpc/ │ │ ├── cmake.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sse2neon/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── st-tree/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stackwalker/ │ │ ├── fix-exports.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── starlink-ast/ │ │ ├── cminpack.diff │ │ ├── install-errors.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── staticjson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── status-code/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── status-value-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stb/ │ │ ├── FindStb.cmake │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── stc/ │ │ ├── add-pkg-conf.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stdexec/ │ │ ├── fix-boost-asio-dependency.patch │ │ ├── fix-clangd-helper-file-basedir.patch │ │ ├── fix-taskflow-dependency.patch │ │ ├── fix-tbb-dependency.patch │ │ ├── fix-version.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stduuid/ │ │ ├── fix-gsl-polyfill.patch │ │ ├── fix-install-directory.patch │ │ ├── fix-libuuid-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── steam-audio/ │ │ ├── fix-arm64-windows.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── use-vcpkg-deps.patch │ │ └── vcpkg.json │ ├── stella-cv-fbow/ │ │ ├── fix-arm-windows.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stftpitchshift/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stillwater-universal/ │ │ ├── fix-install-path.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── stlab/ │ │ ├── devendoring.patch │ │ ├── portfile.cmake │ │ ├── use-cxx-20.patch │ │ └── vcpkg.json │ ├── stlab-copy-on-write/ │ │ ├── disable-cpm.patch │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stlab-enum-ops/ │ │ ├── disable-cpm.patch │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stormlib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── str-view/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── strict-variant/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── string-lite/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── string-theory/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── string-view-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stringzilla/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── strong-type/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stronk/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── strtk/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── structopt/ │ │ ├── 0000-vendored-dependencies.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── stx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── stxxl/ │ │ ├── 0001-fix-visual-studio.patch │ │ ├── fix-include-dir.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── subversion/ │ │ ├── portfile.cmake │ │ ├── unofficial-subversion-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── suitesparse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-amd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-btf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-camd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-ccolamd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-cholmod/ │ │ ├── 001-dont-override-cuda-architectures.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-colamd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-config/ │ │ ├── SuiteSparseBLAS.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-cxsparse/ │ │ ├── 001-detect-complex-support.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-graphblas/ │ │ ├── crossbuild.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-klu/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-lagraph/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-ldl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-mongoose/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-paru/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-rbio/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-spex/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-spqr/ │ │ ├── 001-dont-override-cuda-architectures.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── suitesparse-umfpack/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sundials/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── superglu/ │ │ ├── change-output-name.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── superlu/ │ │ ├── portfile.cmake │ │ ├── remove-make.inc.patch │ │ ├── superfluous-configure.patch │ │ └── vcpkg.json │ ├── supernovas/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── sushant-wayal-stringhash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── svt-av1/ │ │ ├── no-force-llvm.diff │ │ ├── no-safestringlib.diff │ │ ├── portfile.cmake │ │ ├── unvendor-fastfeat.diff │ │ └── vcpkg.json │ ├── swenson-sort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── symengine/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── syscalls-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── systemc/ │ │ ├── install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tabulate/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tacopie/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-export.patch │ │ ├── fix-mingw-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── taglib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── talib/ │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── tanakh-cmdline/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── taocpp-json/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tap-windows6/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── task-thread-pool/ │ │ ├── find-threads.patch │ │ ├── fix-header-file-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── taskflow/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tbb/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tcb-span/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tcl/ │ │ ├── force-shell-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tclap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tcp-pubsub/ │ │ ├── fix-package-config-file.patch │ │ ├── portfile.cmake │ │ ├── use-ports-for-asio-and-recycle.patch │ │ └── vcpkg.json │ ├── tdlib/ │ │ ├── fix-pc.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tdscpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── telnetpp/ │ │ ├── fix-install-paths-v3.patch │ │ ├── fix_include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tensorflow/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tensorflow-cc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tensorflow-common/ │ │ ├── LICENSE.txt │ │ ├── README-linux │ │ ├── README-macos │ │ ├── README-windows │ │ ├── change-macros-for-static-lib.patch │ │ ├── convert_lib_params_linux.py │ │ ├── convert_lib_params_macos.py │ │ ├── convert_lib_params_windows.py │ │ ├── fix-build-error.patch │ │ ├── fix-windows-build.patch │ │ ├── generate_static_link_cmd_linux.py │ │ ├── generate_static_link_cmd_macos.py │ │ ├── generate_static_link_cmd_windows.py │ │ ├── portfile.cmake │ │ ├── tensorflow-common.cmake │ │ ├── tensorflow-config-shared.cmake.in │ │ ├── tensorflow-config-static.cmake.in │ │ ├── tensorflow-config-windows-dll.cmake.in │ │ ├── tensorflow-config-windows-lib.cmake.in │ │ └── vcpkg.json │ ├── tensorpipe/ │ │ ├── portfile.cmake │ │ ├── support-find-package.patch │ │ ├── support-test.patch │ │ ├── use-vcpkg.patch │ │ └── vcpkg.json │ ├── termcolor/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tesseract/ │ │ ├── fix-link-include-path.patch │ │ ├── fix_static_link_icu.patch │ │ ├── portfile.cmake │ │ ├── target-curl.diff │ │ └── vcpkg.json │ ├── tevclient/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tfhe/ │ │ ├── mac-fix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tgbot-cpp/ │ │ ├── cmake-project-include.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tgc/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tgui/ │ │ ├── devendor-stb.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── thermadiag-seq/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── think-cell-range/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── thomasmonkman-filewatch/ │ │ ├── fix-unix-listen.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── thorvg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── threadpool/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── thrift/ │ │ ├── fix_missing_quotes_in_config_and_bin_path.patch │ │ ├── pc-suffix.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tidy-html5/ │ │ ├── cmake_find_package_support.patch │ │ ├── debug-postfix.patch │ │ ├── disable-doc.patch │ │ ├── fix_unsupport_func_uwp.patch │ │ ├── portfile.cmake │ │ ├── static-vs-shared.patch │ │ └── vcpkg.json │ ├── tiff/ │ │ ├── FindCMath.patch │ │ ├── portfile.cmake │ │ ├── prefer-config.diff │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake.in │ │ └── vcpkg.json │ ├── tiledb/ │ │ ├── portfile.cmake │ │ ├── rm-cpp17-pmr.patch │ │ ├── usage │ │ └── vcpkg.json │ ├── tinkerforge/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── tinkerforgeConfig.cmake.in │ │ └── vcpkg.json │ ├── tiny-aes-c/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tiny-bignum-c/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tiny-dnn/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tiny-optional/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tiny-process-library/ │ │ ├── disable-examples.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tiny-regex-c/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinycbor/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinycolormap/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinycthread/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinydir/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyexif/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyexpr/ │ │ ├── CMakeLists.txt │ │ ├── exports.def │ │ ├── fix-issue-34.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyexr/ │ │ ├── fixtargets.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyfiledialogs/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyformat/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyfsm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinygltf/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinynpy/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyobjloader/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyorm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyply/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyproto/ │ │ ├── fix-deprecated.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyspline/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinythread/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinytiff/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── tinytoml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyutf8/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tinyxml/ │ │ ├── 0001_use_stl.patch │ │ ├── 0002_export_tinyxml.patch │ │ ├── CMakeLists.txt │ │ ├── License.txt │ │ ├── portfile.cmake │ │ ├── tinyxml-config.cmake │ │ └── vcpkg.json │ ├── tinyxml2/ │ │ ├── 0001-fix-do-not-force-export-the-symbols-when-building-st.patch │ │ ├── 0002-fix-check-for-TINYXML2_EXPORT-on-non-windows.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tl-expected/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tl-function-ref/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tl-generator/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tl-optional/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tl-ranges/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tlx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tmx/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tmxlite/ │ │ ├── dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tobias-loew-flags/ │ │ ├── add-install-configuration.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── toml11/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tomlplusplus/ │ │ ├── fix-android-fileapi.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tomsolver/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── torch-th/ │ │ ├── debug.patch │ │ ├── fix-arm64-osx-config.patch │ │ ├── fix-cmake4.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tracy/ │ │ ├── build-tools.patch │ │ ├── downgrade-capstone-5.patch │ │ ├── fix-imgui-patch.patch │ │ ├── fix-vendor-versions.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── transwarp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── trantor/ │ │ ├── 000-fix-deps.patch │ │ ├── 001-disable-werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tre/ │ │ ├── CMakeLists.txt │ │ ├── fix-config.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── tree-similarity/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── tree-sitter/ │ │ ├── portfile.cmake │ │ ├── unofficial-cmake.diff │ │ └── vcpkg.json │ ├── tree-sitter-c/ │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tree-sitter-cli/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── treehh/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── treehopper/ │ │ ├── add-cstdint.diff │ │ ├── fix-dependences.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── triangle/ │ │ ├── CMakeLists.txt │ │ ├── enable_64bit_architecture.patch │ │ ├── exports.def │ │ ├── portfile.cmake │ │ ├── triangleConfig.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── trianglemeshdistance/ │ │ ├── portfile.cmake │ │ ├── remove-tests.patch │ │ └── vcpkg.json │ ├── triton/ │ │ ├── fix_bin_path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── trompeloeil/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── try-catcher/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── tsl-array-hash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tsl-hat-trie/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tsl-hopscotch-map/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tsl-ordered-map/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tsl-sparse-map/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tuplet/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── turbobase64/ │ │ ├── fix-apple-silicon-arm64-detection.diff │ │ ├── fix-library-conflict.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tvision/ │ │ ├── find-curses.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── tweeny/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── type-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── type-safe/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── typecast-ai/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uchardet/ │ │ ├── fix-config-error.patch │ │ ├── fix-uwp-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ucoro/ │ │ ├── cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── udt/ │ │ ├── CMakeLists.txt │ │ ├── fix_defs.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── umock-c/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unarr/ │ │ ├── debundle-7zip.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uni-algo/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── unicorn/ │ │ ├── fix-build.patch │ │ ├── fix-msvc-shared.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unicorn-lib/ │ │ ├── CMakeLists.txt │ │ ├── fix-missing-headers.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unimail-cpp-sdk/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── units/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unittest-cpp/ │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unixodbc/ │ │ ├── portfile.cmake │ │ ├── subdirs.diff │ │ ├── unixodbcConfig.cmake │ │ ├── unofficial-unixodbc-config.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── unleash-client-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── unordered-dense/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── unqlite/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── unrar/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── upa-url/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── urdfdom/ │ │ ├── 0001_use_math_defines.patch │ │ ├── 0005-fix-config-and-install.patch │ │ ├── 0006-pc_file_for_windows.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── urdfdom-headers/ │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uriparser/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── usbmuxd/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── usd/ │ │ ├── 003-fix-dep.patch │ │ ├── 004-fix_cmake_package.patch │ │ ├── 007-fix_cmake_hgi_interop.patch │ │ ├── 008-fix_clang8_compiler_error.patch │ │ ├── 009-vcpkg_install_folder_conventions.patch │ │ ├── 010-cmake_export_plugin_as_modules.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── usearch/ │ │ ├── portfile.cmake │ │ ├── use-vcpkg-ports.patch │ │ └── vcpkg.json │ ├── usockets/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-usockets-config.cmake │ │ └── vcpkg.json │ ├── usrsctp/ │ │ ├── fix_export.patch │ │ ├── mingw.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── utf8-range/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── utf8h/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── utf8proc/ │ │ ├── portfile.cmake │ │ ├── unofficial-utf8proc-config.cmake │ │ └── vcpkg.json │ ├── utfcpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── utfz/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uthash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uthenticode/ │ │ ├── openssl.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── uvatlas/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── uvw/ │ │ ├── fix-find-libuv.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── uwebsockets/ │ │ ├── portfile.cmake │ │ ├── unofficial-uwebsockets-config.cmake │ │ └── vcpkg.json │ ├── v-hacd/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── v8/ │ │ ├── V8Config-shared.cmake │ │ ├── V8Config-static.cmake │ │ ├── build.patch │ │ ├── icu.gn │ │ ├── portfile.cmake │ │ ├── v8.patch │ │ ├── v8.pc.in │ │ ├── v8_libbase.pc.in │ │ ├── v8_libplatform.pc.in │ │ ├── v8_monolith.pc.in │ │ ├── vcpkg.json │ │ └── zlib.gn │ ├── valijson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── value-ptr-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vamp-sdk/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vanillapdf/ │ │ ├── disable-autosubscribe.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── variant-lite/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vbs-enclave-tooling-codegen/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vc/ │ │ ├── correct_cmake_config_path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcglib/ │ │ ├── consume-vcpkg-eigen3.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-boost/ │ │ ├── boost-install.cmake │ │ ├── portfile.cmake │ │ ├── usage.in │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── vcpkg-cmake/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_cmake_build.cmake │ │ ├── vcpkg_cmake_configure.cmake │ │ └── vcpkg_cmake_install.cmake │ ├── vcpkg-cmake-config/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── vcpkg_cmake_config_fixup.cmake │ ├── vcpkg-cmake-get-vars/ │ │ ├── cmake-get-vars.cmake.in │ │ ├── cmake_get_vars/ │ │ │ └── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── vcpkg_cmake_get_vars.cmake │ ├── vcpkg-get-python/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── vcpkg-get-python-packages/ │ │ ├── copyright │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── x_vcpkg_get_python_packages.cmake │ ├── vcpkg-gfortran/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-gn/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_gn_configure.cmake │ │ └── vcpkg_gn_install.cmake │ ├── vcpkg-make/ │ │ ├── configure.ac │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_make.cmake │ │ ├── vcpkg_make_common.cmake │ │ ├── vcpkg_make_configure.cmake │ │ ├── vcpkg_make_install.cmake │ │ ├── vcpkg_scripts.cmake │ │ └── wrappers/ │ │ ├── cl_cpp_wrapper │ │ └── windres-rc │ ├── vcpkg-msbuild/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_msbuild.props.in │ │ ├── vcpkg_msbuild.targets.in │ │ ├── vcpkg_msbuild_install.cmake │ │ └── z_vcpkg_msbuild_create_props.cmake │ ├── vcpkg-pkgconfig-get-modules/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ └── x_vcpkg_pkgconfig_get_modules.cmake │ ├── vcpkg-qmake/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_qmake_build.cmake │ │ ├── vcpkg_qmake_configure.cmake │ │ ├── vcpkg_qmake_install.cmake │ │ └── z_vcpkg_qmake_fix_makefiles.cmake │ ├── vcpkg-tool-bazel/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-castxml/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-gn/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-gyp-next/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-lessmsi/ │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-meson/ │ │ ├── adjust-args.patch │ │ ├── adjust-python-dep.patch │ │ ├── install.cmake │ │ ├── meson-56879d5.diff │ │ ├── meson-intl.patch │ │ ├── meson.template.in │ │ ├── portfile.cmake │ │ ├── remove-pkgconfig-specialization.patch │ │ ├── vcpkg-port-config.cmake │ │ ├── vcpkg.json │ │ ├── vcpkg_configure_meson.cmake │ │ └── vcpkg_install_meson.cmake │ ├── vcpkg-tool-mozbuild/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-ninja/ │ │ ├── portfile.cmake │ │ ├── use-internal-re2c.patch │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-nodejs/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vcpkg-tool-python2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vectorclass/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vectorscan/ │ │ ├── portfile.cmake │ │ ├── remove-Werror.patch │ │ └── vcpkg.json │ ├── veigar/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── velodyne-decoder/ │ │ ├── 0001-fix-msvc-flags.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── verdict/ │ │ ├── fix_osx.patch │ │ ├── include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── via-httplib/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vili/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vincentlaucsb-csv-parser/ │ │ ├── 001-fix-cmake.patch │ │ ├── 002-fix-include.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── visit-struct/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vit-vit-ctpl/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vk-bootstrap/ │ │ ├── fix-targets.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vkfft/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vladimirshaleev-ipaddress/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vlfeat/ │ │ ├── CMakeLists.txt │ │ ├── expose_missing_symbols.patch │ │ ├── fix-openmp-build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vlpp/ │ │ ├── fix-install.patch │ │ ├── fix-tool-build.patch │ │ ├── fix_miss_file.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vmaware-vm-detection/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── volk/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── voro/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vowpal-wabbit/ │ │ ├── fix-android-build.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vs-yasm/ │ │ ├── fix_paths.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vsg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vsgimgui/ │ │ ├── devendor.patch │ │ ├── fix-imgui-1.92.5.patch │ │ ├── portfile.cmake │ │ ├── remove-manual-font-creation.patch │ │ └── vcpkg.json │ ├── vsgqt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vsgxchange/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vst3sdk/ │ │ ├── fix-x86-architecture.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vtk/ │ │ ├── FindExpat.patch │ │ ├── FindHDF5.cmake │ │ ├── FindLZ4.patch │ │ ├── FindLZMA.patch │ │ ├── NoUndefDebug.patch │ │ ├── afxdll.patch │ │ ├── backport-bda8324.diff │ │ ├── cgns.patch │ │ ├── devendor_exodusII.patch │ │ ├── fast-float.patch │ │ ├── ffmpeg-8.diff │ │ ├── ffmpeg.diff │ │ ├── fix-eigen3.patch │ │ ├── fix-exprtk.patch │ │ ├── fix-gdal.patch │ │ ├── fix-tbbsmptool.patch │ │ ├── fix-using-hdf5.patch │ │ ├── hdf5helper.patch │ │ ├── iotr.patch │ │ ├── jsoncpp.patch │ │ ├── libproj.patch │ │ ├── mpi-language.diff │ │ ├── mysql.diff │ │ ├── no-libharu-for-ioexport.patch │ │ ├── no-libproj-for-netcdf.patch │ │ ├── octree.patch │ │ ├── opencascade-7.8.0.patch │ │ ├── pegtl.patch │ │ ├── portfile.cmake │ │ ├── pythonwrapper.patch │ │ ├── remove-prefix-changes.patch │ │ ├── usage │ │ ├── use-compile-tools.diff │ │ ├── vcpkg.json │ │ ├── vtkioss.patch │ │ ├── vtkm.patch │ │ └── zspace.diff │ ├── vtk-compile-tools/ │ │ ├── name-suffix.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vtk-dicom/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vtk-m/ │ │ ├── fix-macos-15-6.patch │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vulkan/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── vulkan-result.cmake.in │ ├── vulkan-extensionlayer/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-headers/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-hpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-loader/ │ │ ├── link-directfb.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-memory-allocator/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-memory-allocator-hpp/ │ │ ├── portfile.cmake │ │ ├── unofficial-vulkan-memory-allocator-hpp-config.cmake │ │ └── vcpkg.json │ ├── vulkan-sdk-components/ │ │ ├── LICENSE.txt │ │ ├── get-vulkan-sdk-components-info.ps1 │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vulkan-tools/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vulkan-utility-libraries/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vulkan-validationlayers/ │ │ ├── disable_vendored_phmap.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── vvenc/ │ │ ├── fix-cmakelists.patch │ │ ├── fix-dependencies.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── vxl/ │ │ ├── cmake-package.diff │ │ ├── devendor.diff │ │ ├── disable-tests.diff │ │ ├── file_formats.diff │ │ ├── limits.diff │ │ ├── mingw.diff │ │ ├── openjpeg.diff │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── wabt/ │ │ ├── include_picosha2.cmake │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wampcc/ │ │ ├── add-include-chrono.patch │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wangle/ │ │ ├── fix_dependency.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── wasmedge/ │ │ ├── fix-build-error-with-fmt11.patch │ │ ├── fix_find_zstd.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wavelib/ │ │ ├── disable-test.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wavpack/ │ │ ├── enable-asm.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wayland/ │ │ ├── cross-build.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wayland-protocols/ │ │ ├── cross-build.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wcslib/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── webcraft/ │ │ ├── fix-concurrentqueue.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── webthing-cpp/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── webui/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── webview2/ │ │ ├── portfile.cmake │ │ ├── unofficial-webview2-config.cmake │ │ └── vcpkg.json │ ├── wepoll/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wg21-linear-algebra/ │ │ ├── portfile.cmake │ │ ├── use-external-mdspan.patch │ │ └── vcpkg.json │ ├── wg21-sg14/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── whereami/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-whereamiConfig.cmake.in │ │ └── vcpkg.json │ ├── whisper-cpp/ │ │ ├── cmake-config.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wiiuse/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wil/ │ │ ├── cpp14.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wildcards/ │ │ ├── install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wildmidi/ │ │ ├── fix-include-path.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wincrypt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── winlamb/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── winpcap/ │ │ ├── Packet.vcxproj.in │ │ ├── bison-flex.patch │ │ ├── packetNtx.patch.in │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ ├── wpcap.patch.in │ │ └── wpcap.vcxproj.in │ ├── winpixevent/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── winpixevent-config.cmake.in │ ├── winpty/ │ │ ├── CMakeLists.txt │ │ ├── allow-build-static.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── winreg/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── winsock2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── winsparkle/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wintoast/ │ │ ├── Config.cmake.in │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wmipp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── woff2/ │ │ ├── 0001-unofficial-brotli.patch │ │ ├── 0002-stdint-include.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wolf-midi/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── wolfmqtt/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wolfssl/ │ │ ├── have-limits-h.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wolftpm/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wordnet/ │ │ ├── CMakeLists.txt │ │ ├── fix_gobal_vars_uninit_local_ptr.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── wordnet-config.cmake.in │ ├── workflow/ │ │ ├── cmake.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── workflow-win/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wpilib/ │ │ ├── fix-build-error-with-fmt11.patch │ │ ├── fix-fmt.patch │ │ ├── fix-usage.patch │ │ ├── missing-find_dependency.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── windows-install-location.patch │ ├── wren/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wt/ │ │ ├── 0005-XML_file_path.patch │ │ ├── 0006-GraphicsMagick.patch │ │ ├── 0007-fix-haru.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wtl/ │ │ ├── appwizard_setup.js-vs2022.patch │ │ ├── atlmisc.h-bug329.patch │ │ ├── atlribbon.h-wtl66.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wxchartdir/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wxcharts/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── wxwidgets/ │ │ ├── example/ │ │ │ └── CMakeLists.txt │ │ ├── fix-libs-export.patch │ │ ├── fix-pcre2.patch │ │ ├── gtk3-link-libraries.patch │ │ ├── install-layout.patch │ │ ├── nanosvg-ext-depend.patch │ │ ├── portfile.cmake │ │ ├── relocatable-wx-config.patch │ │ ├── sdl2.patch │ │ ├── setup.h.in │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── wyhash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── x-plane/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ ├── unofficial-x-plane-config.cmake.in │ │ ├── usage │ │ └── vcpkg.json │ ├── x264/ │ │ ├── allow-clang-cl.patch │ │ ├── configure.patch │ │ ├── parallel-install.patch │ │ ├── portfile.cmake │ │ ├── uwp-cflags.patch │ │ ├── vcpkg.json │ │ └── version.diff.in │ ├── x265/ │ │ ├── compiler-target.diff │ │ ├── disable-install-pdb.patch │ │ ├── fix-cmake-4.patch │ │ ├── linkage.diff │ │ ├── neon.diff │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── pthread.diff │ │ ├── vcpkg.json │ │ └── version.patch │ ├── x86-simd-sort/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xapian/ │ │ ├── configure.diff │ │ ├── msvc-no-debug.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xaudio2redist/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── xaudio2redist-config.cmake.in │ ├── xbitmaps/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xbyak/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb/ │ │ ├── configure.patch │ │ ├── getpid_include.patch │ │ ├── makefile.patch │ │ ├── portfile.cmake │ │ ├── use_xwindows_includes.patch │ │ ├── vcpkg.json │ │ └── win-fixes.patch │ ├── xcb-image/ │ │ ├── add_return_value.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb-keysyms/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb-proto/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb-render-util/ │ │ ├── portfile.cmake │ │ ├── pthread.patch │ │ └── vcpkg.json │ ├── xcb-util/ │ │ ├── portfile.cmake │ │ ├── ssize.patch │ │ └── vcpkg.json │ ├── xcb-util-errors/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb-util-m4/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xcb-util-wm/ │ │ ├── build.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xdigest/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xerces-c/ │ │ ├── dependencies.patch │ │ ├── disable-tests.patch │ │ ├── portfile.cmake │ │ ├── remove-dll-export-macro.patch │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── xeus/ │ │ ├── Fix-Compile-nlohmann-json.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── xframe/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xlnt/ │ │ ├── fix-configure-dependencies.patch │ │ ├── fix-not-found-include.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── xlsxio/ │ │ ├── fix-dependencies.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xmlsec/ │ │ ├── CMakeLists.txt │ │ ├── pkgconfig_fixes.patch │ │ ├── portfile.cmake │ │ ├── unofficial-xmlsec-config.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── xmlsec-config.cmake │ ├── xnnpack/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xorg-macros/ │ │ ├── portfile.cmake │ │ ├── skip_rawcpp.patch │ │ └── vcpkg.json │ ├── xorstr/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xpack/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xproperty/ │ │ ├── fix-target.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xproto/ │ │ ├── portfile.cmake │ │ ├── upstream-1.patch │ │ ├── vcpkg.json │ │ ├── vcxserver-xw32defs.patch │ │ ├── windows-include-guards.patch │ │ ├── windows-io.patch │ │ ├── windows-long64.patch │ │ ├── windows-none.patch │ │ └── windows_mean_and_lean.patch │ ├── xqilla/ │ │ ├── CMakeLists.txt │ │ ├── fix-compare.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xsimd/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── xtensor/ │ │ ├── fix-find-tbb-and-install-destination.patch │ │ ├── fix-find-xsimd.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xtensor-blas/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xtensor-fftw/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xtensor-io/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xtl/ │ │ ├── fix-fixup-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── xtrans/ │ │ ├── portfile.cmake │ │ ├── symbols.patch │ │ ├── vcpkg.json │ │ └── win32.patch │ ├── xxhash/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yajl/ │ │ ├── cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yalantinglibs/ │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── use-external-libs.patch │ │ └── vcpkg.json │ ├── yaml-cpp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yandex-disk-cpp-client/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── yara/ │ │ ├── CMakeLists.txt │ │ ├── Disable-module-elf.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yas/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yasm/ │ │ ├── add-feature-tools.patch │ │ ├── cmake-4.diff │ │ ├── fix-cross-build.patch │ │ ├── fix-overlay-pdb.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-port-config.cmake │ │ └── vcpkg.json │ ├── yasm-tool-helper/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── yasm-tool-helper.cmake.in │ ├── yato/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yoctolib/ │ │ ├── 001-cmake_config.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yoga/ │ │ ├── disable_tests.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── yomm2/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── yyjson/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── z3/ │ │ ├── fix-install-path.patch │ │ ├── portfile.cmake │ │ ├── remove-flag-overrides.patch │ │ └── vcpkg.json │ ├── z4kn4fein-semver/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── z85/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zeroc-ice/ │ │ ├── change_to_mt.ps1 │ │ ├── mcppd_fix.patch │ │ ├── no-werror.patch │ │ ├── portfile.cmake │ │ ├── prepare_for_build.cmake │ │ └── vcpkg.json │ ├── zeromq/ │ │ ├── fix-arm.patch │ │ ├── pkgconfig.diff │ │ ├── portfile.cmake │ │ ├── rename-sha1.diff │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── zfp/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zimpl/ │ │ ├── libm.diff │ │ ├── msvc.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zint/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zix/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zkpp/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zlib/ │ │ ├── 0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch │ │ ├── 0002-build-static-or-shared-not-both.patch │ │ ├── 0003-android-and-mingw-fixes.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ ├── zlib-ng/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zlmediakit/ │ │ ├── add-include-chrono.patch │ │ ├── fix-android.patch │ │ ├── fix-dependency.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zoe/ │ │ ├── cmake.diff │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zookeeper/ │ │ ├── cmake.patch │ │ ├── portfile.cmake │ │ ├── unofficial-zookeeperConfig.cmake │ │ ├── usage │ │ ├── vcpkg.json │ │ └── win32.patch │ ├── zopfli/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zpp-bits/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zserge-webview/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zstd/ │ │ ├── fix-emscripten-and-clang-cl.patch │ │ ├── fix-windows-rc-compile.patch │ │ ├── no-static-suffix.patch │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── zstr/ │ │ ├── portfile.cmake │ │ ├── usage │ │ └── vcpkg.json │ ├── ztd-cuneicode/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ztd-encoding-tables/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ztd-idk/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ztd-platform/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ztd-static-containers/ │ │ ├── fix-cmake.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── ztd-text/ │ │ ├── fix-cmake-install.patch │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zug/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zxc/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zycore/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── zydis/ │ │ ├── portfile.cmake │ │ ├── vcpkg.json │ │ └── zycore.patch │ ├── zyre/ │ │ ├── Config.cmake.in │ │ ├── Findczmq.cmake │ │ ├── Findlibzmq.cmake │ │ ├── disable-examples-tests.patch │ │ ├── portfile.cmake │ │ ├── vcpkg-cmake-wrapper.cmake │ │ └── vcpkg.json │ └── zziplib/ │ ├── cmake-project-include.cmake │ ├── no-release-postfix.patch │ ├── portfile.cmake │ └── vcpkg.json ├── scripts/ │ ├── addPoshVcpkgToPowershellProfile.ps1 │ ├── angle/ │ │ └── maintainer-notes.md │ ├── azure-pipelines/ │ │ ├── Create-PRDiff.ps1 │ │ ├── android/ │ │ │ ├── Dockerfile │ │ │ └── azure-pipelines.yml │ │ ├── azure-pipelines.yml │ │ ├── bootstrap-from-source.sh │ │ ├── example-ubuntu-provision-for-docker.sh │ │ ├── linux/ │ │ │ ├── Dockerfile │ │ │ ├── azure-pipelines.yml │ │ │ └── provision-image.sh │ │ ├── linux-arm64/ │ │ │ └── Dockerfile │ │ ├── osx/ │ │ │ ├── README.md │ │ │ ├── azure-pipelines.yml │ │ │ ├── register-guest.sh │ │ │ ├── setup-box.sh │ │ │ └── setup-guest.sh │ │ ├── owners-db/ │ │ │ ├── README.md │ │ │ ├── file_script.ts │ │ │ ├── file_script_from_cache.ts │ │ │ └── package.json │ │ ├── patch-tuesday-checklist.md │ │ ├── test-modified-ports.ps1 │ │ ├── update-containers.yml │ │ ├── windows/ │ │ │ ├── azure-pipelines.yml │ │ │ ├── bootstrap-from-source.cmd │ │ │ ├── create-image.ps1 │ │ │ ├── deploy-azcopy.ps1 │ │ │ ├── deploy-azure-cli.ps1 │ │ │ ├── deploy-cuda.ps1 │ │ │ ├── deploy-cudnn.ps1 │ │ │ ├── deploy-install-disk.ps1 │ │ │ ├── deploy-inteloneapi.ps1 │ │ │ ├── deploy-mpi.ps1 │ │ │ ├── deploy-pwsh.ps1 │ │ │ ├── deploy-settings.txt │ │ │ ├── deploy-tlssettings.ps1 │ │ │ ├── deploy-visual-studio.ps1 │ │ │ ├── disk-space.ps1 │ │ │ ├── provision-entire-image.ps1 │ │ │ ├── sysprep.ps1 │ │ │ ├── utility-prefix.ps1 │ │ │ └── validate-version-files.ps1 │ │ └── windows-unstable/ │ │ ├── README.md │ │ ├── azure-pipelines.yml │ │ └── rearrange-msvc-drop-layout.ps1 │ ├── boost/ │ │ ├── .gitignore │ │ ├── generate-ports.ps1 │ │ ├── post-build-stubs/ │ │ │ ├── config.cmake │ │ │ ├── predef.cmake │ │ │ └── test.cmake │ │ ├── post-source-stubs/ │ │ │ ├── build.cmake │ │ │ └── cmake.cmake │ │ ├── pre-build-stubs/ │ │ │ ├── charconv.cmake │ │ │ ├── iostreams.cmake │ │ │ └── locale.cmake │ │ └── pre-source-stubs/ │ │ ├── build.cmake │ │ ├── cmake.cmake │ │ └── system.cmake │ ├── bootstrap.ps1 │ ├── bootstrap.sh │ ├── build_info.cmake │ ├── buildsystems/ │ │ ├── make_wrapper/ │ │ │ ├── cl_cpp_wrapper │ │ │ └── windres-rc │ │ ├── meson/ │ │ │ ├── meson.template.in │ │ │ └── none.txt │ │ ├── msbuild/ │ │ │ ├── applocal.ps1 │ │ │ ├── vcpkg-general.xml │ │ │ ├── vcpkg.props │ │ │ └── vcpkg.targets │ │ ├── osx/ │ │ │ └── applocal.py │ │ └── vcpkg.cmake │ ├── ci.baseline.txt │ ├── ci.feature.baseline.txt │ ├── cmake/ │ │ ├── compile_wrapper_consider_clang-cl.patch │ │ ├── execute_process.cmake │ │ ├── vcpkg_acquire_msys.cmake │ │ ├── vcpkg_add_to_path.cmake │ │ ├── vcpkg_apply_patches.cmake │ │ ├── vcpkg_backup_restore_env_vars.cmake │ │ ├── vcpkg_build_cmake.cmake │ │ ├── vcpkg_build_make.cmake │ │ ├── vcpkg_build_msbuild.cmake │ │ ├── vcpkg_build_ninja.cmake │ │ ├── vcpkg_build_nmake.cmake │ │ ├── vcpkg_build_qmake.cmake │ │ ├── vcpkg_buildpath_length_warning.cmake │ │ ├── vcpkg_check_features.cmake │ │ ├── vcpkg_check_linkage.cmake │ │ ├── vcpkg_clean_executables_in_bin.cmake │ │ ├── vcpkg_clean_msbuild.cmake │ │ ├── vcpkg_common_definitions.cmake │ │ ├── vcpkg_common_functions.cmake │ │ ├── vcpkg_configure_cmake.cmake │ │ ├── vcpkg_configure_gn.cmake │ │ ├── vcpkg_configure_make.cmake │ │ ├── vcpkg_configure_meson.cmake │ │ ├── vcpkg_configure_qmake.cmake │ │ ├── vcpkg_copy_pdbs.cmake │ │ ├── vcpkg_copy_tool_dependencies.cmake │ │ ├── vcpkg_copy_tools.cmake │ │ ├── vcpkg_download_distfile.cmake │ │ ├── vcpkg_download_sourceforge.cmake │ │ ├── vcpkg_execute_build_process.cmake │ │ ├── vcpkg_execute_in_download_mode.cmake │ │ ├── vcpkg_execute_required_process.cmake │ │ ├── vcpkg_execute_required_process_repeat.cmake │ │ ├── vcpkg_extract_archive.cmake │ │ ├── vcpkg_extract_source_archive.cmake │ │ ├── vcpkg_extract_source_archive_ex.cmake │ │ ├── vcpkg_fail_port_install.cmake │ │ ├── vcpkg_find_acquire_program(7Z).cmake │ │ ├── vcpkg_find_acquire_program(BAZEL).cmake │ │ ├── vcpkg_find_acquire_program(BISON).cmake │ │ ├── vcpkg_find_acquire_program(CLANG).cmake │ │ ├── vcpkg_find_acquire_program(DARK).cmake │ │ ├── vcpkg_find_acquire_program(DOXYGEN).cmake │ │ ├── vcpkg_find_acquire_program(FLEX).cmake │ │ ├── vcpkg_find_acquire_program(GASPREPROCESSOR).cmake │ │ ├── vcpkg_find_acquire_program(GIT).cmake │ │ ├── vcpkg_find_acquire_program(GN).cmake │ │ ├── vcpkg_find_acquire_program(GO).cmake │ │ ├── vcpkg_find_acquire_program(GPERF).cmake │ │ ├── vcpkg_find_acquire_program(JOM).cmake │ │ ├── vcpkg_find_acquire_program(MESON).cmake │ │ ├── vcpkg_find_acquire_program(NASM).cmake │ │ ├── vcpkg_find_acquire_program(NINJA).cmake │ │ ├── vcpkg_find_acquire_program(NUGET).cmake │ │ ├── vcpkg_find_acquire_program(PATCHELF).cmake │ │ ├── vcpkg_find_acquire_program(PERL).cmake │ │ ├── vcpkg_find_acquire_program(PKGCONFIG).cmake │ │ ├── vcpkg_find_acquire_program(PWSH).cmake │ │ ├── vcpkg_find_acquire_program(PYTHON2).cmake │ │ ├── vcpkg_find_acquire_program(PYTHON3).cmake │ │ ├── vcpkg_find_acquire_program(RUBY).cmake │ │ ├── vcpkg_find_acquire_program(SCONS).cmake │ │ ├── vcpkg_find_acquire_program(SWIG).cmake │ │ ├── vcpkg_find_acquire_program(YASM).cmake │ │ ├── vcpkg_find_acquire_program.cmake │ │ ├── vcpkg_find_fortran.cmake │ │ ├── vcpkg_fixup_cmake_targets.cmake │ │ ├── vcpkg_fixup_pkgconfig.cmake │ │ ├── vcpkg_from_bitbucket.cmake │ │ ├── vcpkg_from_git.cmake │ │ ├── vcpkg_from_github.cmake │ │ ├── vcpkg_from_gitlab.cmake │ │ ├── vcpkg_from_sourceforge.cmake │ │ ├── vcpkg_get_program_files_platform_bitness.cmake │ │ ├── vcpkg_get_windows_sdk.cmake │ │ ├── vcpkg_host_path_list.cmake │ │ ├── vcpkg_install_cmake.cmake │ │ ├── vcpkg_install_copyright.cmake │ │ ├── vcpkg_install_gn.cmake │ │ ├── vcpkg_install_make.cmake │ │ ├── vcpkg_install_meson.cmake │ │ ├── vcpkg_install_msbuild.cmake │ │ ├── vcpkg_install_nmake.cmake │ │ ├── vcpkg_install_qmake.cmake │ │ ├── vcpkg_list.cmake │ │ ├── vcpkg_minimum_required.cmake │ │ ├── vcpkg_replace_string.cmake │ │ ├── vcpkg_test_cmake.cmake │ │ ├── z_vcpkg_apply_patches.cmake │ │ ├── z_vcpkg_escape_regex_control_characters.cmake │ │ ├── z_vcpkg_fixup_rpath.cmake │ │ ├── z_vcpkg_fixup_rpath_macho.cmake │ │ ├── z_vcpkg_forward_output_variable.cmake │ │ ├── z_vcpkg_function_arguments.cmake │ │ ├── z_vcpkg_get_cmake_vars.cmake │ │ ├── z_vcpkg_make_python_less_embedded.cmake │ │ ├── z_vcpkg_prettify_command_line.cmake │ │ └── z_vcpkg_setup_pkgconfig_path.cmake │ ├── detect_compiler/ │ │ ├── CMakeLists.txt │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── generateBaseline.py │ ├── generatePortVersionsDb.py │ ├── get_cmake_vars/ │ │ └── CMakeLists.txt │ ├── ifw/ │ │ └── maintenance.qs │ ├── ports.cmake │ ├── posh-vcpkg/ │ │ ├── posh-vcpkg.psd1 │ │ └── posh-vcpkg.psm1 │ ├── templates/ │ │ ├── portfile.in.cmake │ │ └── vcpkg.json.in │ ├── test_ports/ │ │ ├── cmake/ │ │ │ ├── fix-dependency-libuv.patch │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── cmake-user/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── FindZLIBviaPkgConfig.cmake │ │ │ └── vcpkg.json │ │ ├── llfio-run-tests/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── outcome-run-tests/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── rpath-macho-test/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── rpath-macho-test-binaries/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── lib.cpp │ │ │ │ ├── main.cpp │ │ │ │ └── transitive.cpp │ │ │ └── vcpkg.json │ │ ├── rpath-test/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── rpath-test-binaries/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── lib.cpp │ │ │ │ ├── main.cpp │ │ │ │ └── transitive.cpp │ │ │ └── vcpkg.json │ │ ├── sqlpp11-connector-mysql/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── try-compile/ │ │ │ ├── CMakeLists.txt │ │ │ ├── portfile.cmake │ │ │ ├── try/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── try-compile.c │ │ │ └── vcpkg.json │ │ ├── unit-test-cmake/ │ │ │ ├── portfile.cmake │ │ │ ├── test-macros.cmake │ │ │ ├── test-vcpkg_backup_restore_env_vars.cmake │ │ │ ├── test-vcpkg_execute_required_process.cmake │ │ │ ├── test-vcpkg_fixup_pkgconfig.cmake │ │ │ ├── test-vcpkg_host_path_list.cmake │ │ │ ├── test-vcpkg_list.cmake │ │ │ ├── test-vcpkg_minimum_required.cmake │ │ │ ├── test-z_vcpkg_calculate_corrected_rpath.cmake │ │ │ ├── test-z_vcpkg_calculate_corrected_rpath_macho.cmake │ │ │ ├── test-z_vcpkg_cmake_config_fixup_merge.cmake │ │ │ ├── test-z_vcpkg_function_arguments.cmake │ │ │ ├── test-z_vcpkg_setup_pkgconfig_path.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-acquire-msys-test/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-abcmake/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── src/ │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-angelscript/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-ankurvdev-embedresource/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-arrow/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-asmjit/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-aurora-au/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── test_au_client.cc │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-bgfx/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-blas/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-boost/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-box2d/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-bullet3/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-capstone/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-cblas/ │ │ │ ├── CMakeLists.txt │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-cmake-toolchain-file/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── main.c │ │ │ │ └── vcpkg_lock_find_package/ │ │ │ │ ├── CMakeLists.txt.in │ │ │ │ ├── directPackageXConfig.cmake │ │ │ │ ├── transitiveOptionalAbsentPackageXConfig.cmake │ │ │ │ └── transitivePackageXConfig.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-crashpad/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-curl/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-dartsim/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-dawn/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── main.cpp │ │ │ │ ├── main.html │ │ │ │ └── webgpu_glfw3.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-dbus-cxx/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-dcmtk/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-duckdb/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-exiv2/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-ffmpeg/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-fluidsynth/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-folly/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-freerdp/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-gdal/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-ggml/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-gmime/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-gobject-introspection/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-gperftools/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-graphicsmagick/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-graphviz/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-gz-common/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-half/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-hello-imgui/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-huira/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-icu/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── main.c │ │ │ │ └── test-functions.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-imgui/ │ │ │ ├── fix-examples.patch │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-intelrdfpmathlib/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-itk/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-juce/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-kubernetes/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ ├── standalone.diff │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-lapack/ │ │ │ ├── CMakeLists.txt │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libaec/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libavif/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libdatachannel/ │ │ │ ├── cmake-project.diff │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libe57/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libftdi1/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── cmake-usage/ │ │ │ │ │ └── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libgit2/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libgwenhywfar/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libharu/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libhat/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libheif/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libigl/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── stb_image_implementation.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libmem/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libmodbus/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libmupdf/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libpqxx/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libremidi/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libressl/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── libressl.c │ │ │ │ └── openssl.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libscran-umappp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-libsrtp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-lief/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-llama-cpp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cxx │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-llvm/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-lua/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── main.c │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-luajit/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mapbox-variant/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mathgl/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-matio/ │ │ │ ├── portfile.cmake │ │ │ ├── vcpkg.diff │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mdl-sdk/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mimalloc/ │ │ │ ├── build-type.diff │ │ │ ├── portfile.cmake │ │ │ ├── vcpkg-tests.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-minc/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mpg123/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-msh3/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-msys2/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mysql-connector-cpp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── jdbc.cpp │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-mzying2001-sw/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-nanobind/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-netgen/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-nss/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-octave/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-openblas/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-opencv/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-openimageio/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-openmvs/ │ │ │ ├── portfile.cmake │ │ │ ├── standalone.diff │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-openvpn3/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-orange-math/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-orange-vmprotect-sdk/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-paraview/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-pixman/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-plplot/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-podofo/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cxx │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-pybind11/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-python3/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-qtwebengine/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-rest-rpc/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-rewolf-wow64ext/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-rtlsdr/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-ryu/ │ │ │ ├── CMakeLists.txt │ │ │ ├── portfile.cmake │ │ │ ├── test.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-sdl3-image/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-sdl3-ttf/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-shader-slang/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-skia/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-soci/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-sol2/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-sqlpp11/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-subversion/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-tdlib/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-tgbot-cpp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-tomlplusplus/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-tree-sitter/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-unarr/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-unicorn/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-unixodbc/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.c │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-uwebsockets/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cxx │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-vcpkg-make/ │ │ │ ├── portfile.cmake │ │ │ ├── test-cl_cpp_wrapper/ │ │ │ │ ├── configure │ │ │ │ └── source.c │ │ │ ├── test-scripts-cl_cpp_wrapper.cmake │ │ │ ├── test-vcpkg-make-cl_cpp_wrapper.cmake │ │ │ ├── test-z_adapt_lib_link_names.cmake │ │ │ ├── test-z_vcpkg_make_determine_host_arch.cmake │ │ │ ├── test-z_vcpkg_make_determine_target_arch.cmake │ │ │ ├── test-z_vcpkg_make_determine_target_triplet.cmake │ │ │ ├── test-z_vcpkg_make_get_configure_triplets.cmake │ │ │ ├── test-z_vcpkg_make_get_crosscompiling.cmake │ │ │ ├── test-z_vcpkg_make_normalize_arch.cmake │ │ │ ├── test-z_vcpkg_make_prepare_compile_flags.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-vcpkg-tool-nodejs/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-vsgqt/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ └── CMakeLists.txt │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-vxl/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-whisper-cpp/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cxx │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-wxwidgets/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-ci-yandex-disk-cpp-client/ │ │ │ ├── portfile.cmake │ │ │ ├── project/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── main.cpp │ │ │ └── vcpkg.json │ │ ├── vcpkg-find-acquire-program/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-fix-rpath/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ ├── vcpkg-fixup-macho-rpath/ │ │ │ ├── portfile.cmake │ │ │ └── vcpkg.json │ │ └── vcpkg-from-git-test/ │ │ ├── portfile.cmake │ │ └── vcpkg.json │ ├── toolchains/ │ │ ├── android.cmake │ │ ├── freebsd.cmake │ │ ├── ios.cmake │ │ ├── linux.cmake │ │ ├── mingw.cmake │ │ ├── netbsd.cmake │ │ ├── openbsd.cmake │ │ ├── osx.cmake │ │ ├── solaris.cmake │ │ ├── uwp.cmake │ │ ├── windows.cmake │ │ └── xbox.cmake │ ├── update-vcpkg-tool-metadata.ps1 │ ├── update_suitesparse.py │ ├── vcpkg-tool-metadata.txt │ ├── vcpkg-tools.json │ ├── vcpkg_completion.bash │ ├── vcpkg_completion.fish │ └── vcpkg_completion.zsh ├── shell.nix ├── toolsrc/ │ └── VERSION.txt ├── triplets/ │ ├── arm64-windows.cmake │ ├── community/ │ │ ├── arm-android.cmake │ │ ├── arm-ios.cmake │ │ ├── arm-linux-release.cmake │ │ ├── arm-linux.cmake │ │ ├── arm-mingw-dynamic.cmake │ │ ├── arm-mingw-static.cmake │ │ ├── arm-uwp-static-md.cmake │ │ ├── arm-uwp.cmake │ │ ├── arm-watchos.cmake │ │ ├── arm-windows-static.cmake │ │ ├── arm-windows.cmake │ │ ├── arm64-android-release.cmake │ │ ├── arm64-freebsd.cmake │ │ ├── arm64-ios-release.cmake │ │ ├── arm64-ios-simulator-release.cmake │ │ ├── arm64-ios-simulator.cmake │ │ ├── arm64-ios.cmake │ │ ├── arm64-linux-dynamic.cmake │ │ ├── arm64-linux-release.cmake │ │ ├── arm64-mingw-dynamic.cmake │ │ ├── arm64-mingw-static.cmake │ │ ├── arm64-osx-dynamic.cmake │ │ ├── arm64-osx-release.cmake │ │ ├── arm64-tvos-simulator.cmake │ │ ├── arm64-tvos.cmake │ │ ├── arm64-uwp-static-md.cmake │ │ ├── arm64-uwp.cmake │ │ ├── arm64-visionos.cmake │ │ ├── arm64-watchos-simulator.cmake │ │ ├── arm64-watchos.cmake │ │ ├── arm64-windows-static-release.cmake │ │ ├── arm64-windows-static.cmake │ │ ├── arm6432-watchos.cmake │ │ ├── arm64ec-windows.cmake │ │ ├── armv6-android.cmake │ │ ├── loongarch32-linux-release.cmake │ │ ├── loongarch32-linux.cmake │ │ ├── loongarch64-linux-release.cmake │ │ ├── loongarch64-linux.cmake │ │ ├── mips64-linux.cmake │ │ ├── ppc64le-linux-release.cmake │ │ ├── ppc64le-linux.cmake │ │ ├── riscv32-linux-release.cmake │ │ ├── riscv32-linux.cmake │ │ ├── riscv64-linux-release.cmake │ │ ├── riscv64-linux.cmake │ │ ├── s390x-linux-release.cmake │ │ ├── s390x-linux.cmake │ │ ├── wasm32-emscripten.cmake │ │ ├── x64-freebsd-dynamic.cmake │ │ ├── x64-freebsd-release.cmake │ │ ├── x64-freebsd.cmake │ │ ├── x64-ios.cmake │ │ ├── x64-linux-dynamic.cmake │ │ ├── x64-linux-release.cmake │ │ ├── x64-mingw-dynamic-release.cmake │ │ ├── x64-mingw-dynamic.cmake │ │ ├── x64-mingw-static-release.cmake │ │ ├── x64-mingw-static.cmake │ │ ├── x64-netbsd.cmake │ │ ├── x64-openbsd.cmake │ │ ├── x64-osx-dynamic.cmake │ │ ├── x64-osx-release.cmake │ │ ├── x64-osx.cmake │ │ ├── x64-solaris.cmake │ │ ├── x64-tvos-simulator.cmake │ │ ├── x64-uwp-static-md.cmake │ │ ├── x64-uwp.cmake │ │ ├── x64-watchos-simulator.cmake │ │ ├── x64-windows-static-md-release.cmake │ │ ├── x64-windows-static-release.cmake │ │ ├── x64-xbox-scarlett-static.cmake │ │ ├── x64-xbox-scarlett.cmake │ │ ├── x64-xbox-xboxone-static.cmake │ │ ├── x64-xbox-xboxone.cmake │ │ ├── x86-android.cmake │ │ ├── x86-freebsd.cmake │ │ ├── x86-ios.cmake │ │ ├── x86-linux.cmake │ │ ├── x86-mingw-dynamic-release.cmake │ │ ├── x86-mingw-dynamic.cmake │ │ ├── x86-mingw-static-release.cmake │ │ ├── x86-mingw-static.cmake │ │ ├── x86-uwp-static-md.cmake │ │ ├── x86-uwp.cmake │ │ ├── x86-windows-static-md.cmake │ │ ├── x86-windows-static.cmake │ │ └── x86-windows-v120.cmake │ ├── x64-linux.cmake │ ├── x64-windows-static.cmake │ ├── x64-windows.cmake │ └── x86-windows.cmake └── versions/ ├── 3-/ │ └── 3fd.json ├── 7-/ │ └── 7zip.json ├── a-/ │ ├── abcmake.json │ ├── ableton-link.json │ ├── ableton.json │ ├── abletonlink.json │ ├── abseil.json │ ├── absent.json │ ├── abumq-ripe.json │ ├── ace.json │ ├── acl.json │ ├── activemq-cpp.json │ ├── ada-idna.json │ ├── ada-url.json │ ├── ade.json │ ├── adios2.json │ ├── advobfuscator.json │ ├── aeron.json │ ├── air-ctl.json │ ├── aixlog.json │ ├── akali.json │ ├── aklomp-base64.json │ ├── alac-decoder.json │ ├── alac.json │ ├── alembic.json │ ├── aliyun-oss-c-sdk.json │ ├── aliyun-oss-cpp-sdk.json │ ├── allegro5.json │ ├── alpaca.json │ ├── alpaka.json │ ├── alsa.json │ ├── amd-adl-sdk.json │ ├── amd-amf.json │ ├── ampl-asl.json │ ├── ampl-mp.json │ ├── amqpcpp.json │ ├── anari.json │ ├── anax.json │ ├── andytech-tiny-crc32c.json │ ├── angelscript.json │ ├── angle.json │ ├── ankurvdev-embedresource.json │ ├── annoy.json │ ├── antlr4.json │ ├── any-lite.json │ ├── anyrpc.json │ ├── anyxx.json │ ├── aom.json │ ├── apache-datasketches.json │ ├── approval-tests-cpp.json │ ├── appstream-glib.json │ ├── appstream.json │ ├── apr-util.json │ ├── apr.json │ ├── apriltag.json │ ├── apsi.json │ ├── aravis.json │ ├── arb.json │ ├── arcticdb-sparrow-extensions.json │ ├── arcticdb-sparrow.json │ ├── arcus.json │ ├── arg-router.json │ ├── argagg.json │ ├── argh.json │ ├── argon2.json │ ├── argparse.json │ ├── args.json │ ├── argtable2.json │ ├── argtable3.json │ ├── argumentum.json │ ├── argus.json │ ├── aricpp.json │ ├── armadillo.json │ ├── arpack-ng.json │ ├── arrayfire.json │ ├── arrow-adbc.json │ ├── arrow.json │ ├── arsenalgear.json │ ├── arun11299-cpp-subprocess.json │ ├── ashes.json │ ├── asio-grpc.json │ ├── asio.json │ ├── asiochan.json │ ├── asiosdk.json │ ├── asmjit.json │ ├── asmtk.json │ ├── asock.json │ ├── assimp.json │ ├── astr.json │ ├── async-mqtt.json │ ├── async-simple.json │ ├── asynch.json │ ├── asyncplusplus.json │ ├── at-spi2-atk.json │ ├── at-spi2-core.json │ ├── atk.json │ ├── atkmm.json │ ├── atl.json │ ├── atliac-minitest.json │ ├── atlmfc.json │ ├── atomic-queue.json │ ├── attr.json │ ├── aubio.json │ ├── audioengine.json │ ├── audiofile.json │ ├── audit.json │ ├── aurora-au.json │ ├── aurora.json │ ├── autobahn.json │ ├── autodock-vina.json │ ├── avcpp.json │ ├── avir.json │ ├── avisynthplus.json │ ├── avro-c.json │ ├── avro-cpp.json │ ├── awlib.json │ ├── aws-c-auth.json │ ├── aws-c-cal.json │ ├── aws-c-common.json │ ├── aws-c-compression.json │ ├── aws-c-event-stream.json │ ├── aws-c-http.json │ ├── aws-c-io.json │ ├── aws-c-mqtt.json │ ├── aws-c-s3.json │ ├── aws-c-sdkutils.json │ ├── aws-checksums.json │ ├── aws-crt-cpp.json │ ├── aws-lambda-cpp.json │ ├── aws-sdk-cpp.json │ ├── ayush272002-dotenv.json │ ├── azmq.json │ ├── azure-c-shared-utility.json │ ├── azure-core-amqp-cpp.json │ ├── azure-core-cpp.json │ ├── azure-core-tracing-opentelemetry-cpp.json │ ├── azure-data-tables-cpp.json │ ├── azure-identity-cpp.json │ ├── azure-iot-sdk-c.json │ ├── azure-kinect-depth-engine.json │ ├── azure-kinect-sensor-sdk.json │ ├── azure-macro-utils-c.json │ ├── azure-messaging-eventhubs-checkpointstore-blob-cpp.json │ ├── azure-messaging-eventhubs-cpp.json │ ├── azure-security-attestation-cpp.json │ ├── azure-security-keyvault-administration-cpp.json │ ├── azure-security-keyvault-certificates-cpp.json │ ├── azure-security-keyvault-common-cpp.json │ ├── azure-security-keyvault-keys-cpp.json │ ├── azure-security-keyvault-secrets-cpp.json │ ├── azure-storage-blobs-cpp.json │ ├── azure-storage-common-cpp.json │ ├── azure-storage-cpp.json │ ├── azure-storage-files-datalake-cpp.json │ ├── azure-storage-files-shares-cpp.json │ ├── azure-storage-queues-cpp.json │ ├── azure-uamqp-c.json │ ├── azure-uhttp-c.json │ └── azure-umqtt-c.json ├── b-/ │ ├── b64.json │ ├── babl.json │ ├── backward-cpp.json │ ├── baresip-libre.json │ ├── bark.json │ ├── barkeep.json │ ├── basisu.json │ ├── bbalouki-itch.json │ ├── bbstrader.json │ ├── bcg729.json │ ├── bddisasm.json │ ├── bde.json │ ├── bdwgc.json │ ├── beast.json │ ├── behaviortree-cpp.json │ ├── benchmark.json │ ├── bento4.json │ ├── berkeleydb.json │ ├── better-enums.json │ ├── bext-di.json │ ├── bext-mp.json │ ├── bext-sml.json │ ├── bext-sml2.json │ ├── bext-text.json │ ├── bext-ut.json │ ├── bext-wintls.json │ ├── bfgroup-lyra.json │ ├── bgfx.json │ ├── bigint.json │ ├── binlog.json │ ├── binn.json │ ├── bit7z.json │ ├── bitmagic.json │ ├── bitserializer.json │ ├── bitsery.json │ ├── blake3.json │ ├── blas.json │ ├── blaze.json │ ├── blend2d.json │ ├── blickfeld-qb2.json │ ├── blingfire.json │ ├── blitz.json │ ├── bloomberg-quantum.json │ ├── blosc.json │ ├── blosc2.json │ ├── blpapi.json │ ├── bluescarni-tanuki.json │ ├── boinc.json │ ├── bond.json │ ├── boolinq.json │ ├── boost-accumulators.json │ ├── boost-algorithm.json │ ├── boost-align.json │ ├── boost-any.json │ ├── boost-array.json │ ├── boost-asio.json │ ├── boost-assert.json │ ├── boost-assign.json │ ├── boost-atomic.json │ ├── boost-beast.json │ ├── boost-bimap.json │ ├── boost-bind.json │ ├── boost-bloom.json │ ├── boost-build.json │ ├── boost-callable-traits.json │ ├── boost-charconv.json │ ├── boost-chrono.json │ ├── boost-circular-buffer.json │ ├── boost-cmake.json │ ├── boost-cobalt.json │ ├── boost-compat.json │ ├── boost-compatibility.json │ ├── boost-compute.json │ ├── boost-concept-check.json │ ├── boost-config.json │ ├── boost-container-hash.json │ ├── boost-container.json │ ├── boost-context.json │ ├── boost-contract.json │ ├── boost-conversion.json │ ├── boost-convert.json │ ├── boost-core.json │ ├── boost-coroutine.json │ ├── boost-coroutine2.json │ ├── boost-crc.json │ ├── boost-date-time.json │ ├── boost-describe.json │ ├── boost-detail.json │ ├── boost-di.json │ ├── boost-dll.json │ ├── boost-dynamic-bitset.json │ ├── boost-endian.json │ ├── boost-exception.json │ ├── boost-fiber.json │ ├── boost-filesystem.json │ ├── boost-flyweight.json │ ├── boost-foreach.json │ ├── boost-format.json │ ├── boost-function-types.json │ ├── boost-function.json │ ├── boost-functional.json │ ├── boost-fusion.json │ ├── boost-geometry.json │ ├── boost-gil.json │ ├── boost-graph-parallel.json │ ├── boost-graph.json │ ├── boost-hana.json │ ├── boost-hash2.json │ ├── boost-headers.json │ ├── boost-heap.json │ ├── boost-histogram.json │ ├── boost-hof.json │ ├── boost-icl.json │ ├── boost-integer.json │ ├── boost-interprocess.json │ ├── boost-interval.json │ ├── boost-intrusive.json │ ├── boost-io.json │ ├── boost-iostreams.json │ ├── boost-iterator.json │ ├── boost-json.json │ ├── boost-lambda.json │ ├── boost-lambda2.json │ ├── boost-leaf.json │ ├── boost-lexical-cast.json │ ├── boost-local-function.json │ ├── boost-locale.json │ ├── boost-lockfree.json │ ├── boost-log.json │ ├── boost-logic.json │ ├── boost-math.json │ ├── boost-metaparse.json │ ├── boost-modular-build-helper.json │ ├── boost-move.json │ ├── boost-mp11.json │ ├── boost-mpi.json │ ├── boost-mpl.json │ ├── boost-mqtt5.json │ ├── boost-msm.json │ ├── boost-multi-array.json │ ├── boost-multi-index.json │ ├── boost-multiprecision.json │ ├── boost-mysql.json │ ├── boost-nowide.json │ ├── boost-numeric-conversion.json │ ├── boost-odeint.json │ ├── boost-openmethod.json │ ├── boost-optional.json │ ├── boost-outcome.json │ ├── boost-parameter-python.json │ ├── boost-parameter.json │ ├── boost-parser.json │ ├── boost-pfr.json │ ├── boost-phoenix.json │ ├── boost-poly-collection.json │ ├── boost-polygon.json │ ├── boost-pool.json │ ├── boost-predef.json │ ├── boost-preprocessor.json │ ├── boost-process.json │ ├── boost-program-options.json │ ├── boost-property-map-parallel.json │ ├── boost-property-map.json │ ├── boost-property-tree.json │ ├── boost-proto.json │ ├── boost-ptr-container.json │ ├── boost-python.json │ ├── boost-qvm.json │ ├── boost-random.json │ ├── boost-range.json │ ├── boost-ratio.json │ ├── boost-rational.json │ ├── boost-redis.json │ ├── boost-regex.json │ ├── boost-safe-numerics.json │ ├── boost-scope-exit.json │ ├── boost-scope.json │ ├── boost-serialization.json │ ├── boost-signals2.json │ ├── boost-smart-ptr.json │ ├── boost-sort.json │ ├── boost-spirit.json │ ├── boost-stacktrace.json │ ├── boost-statechart.json │ ├── boost-static-assert.json │ ├── boost-static-string.json │ ├── boost-stl-interfaces.json │ ├── boost-system.json │ ├── boost-test.json │ ├── boost-thread.json │ ├── boost-throw-exception.json │ ├── boost-timer.json │ ├── boost-tokenizer.json │ ├── boost-tti.json │ ├── boost-tuple.json │ ├── boost-type-erasure.json │ ├── boost-type-index.json │ ├── boost-type-traits.json │ ├── boost-typeof.json │ ├── boost-ublas.json │ ├── boost-uninstall.json │ ├── boost-units.json │ ├── boost-unordered.json │ ├── boost-url.json │ ├── boost-utility.json │ ├── boost-uuid.json │ ├── boost-variant.json │ ├── boost-variant2.json │ ├── boost-vcpkg-helpers.json │ ├── boost-vmd.json │ ├── boost-wave.json │ ├── boost-winapi.json │ ├── boost-xpressive.json │ ├── boost-yap.json │ ├── boost.json │ ├── boringssl.json │ ├── botan.json │ ├── box2d.json │ ├── braft.json │ ├── breakpad.json │ ├── brigand.json │ ├── brotli.json │ ├── brpc.json │ ├── brunocodutra-metal.json │ ├── brynet.json │ ├── bshoshany-thread-pool.json │ ├── bsio.json │ ├── buck-yeh-bux-mariadb-client.json │ ├── buck-yeh-bux-sqlite.json │ ├── buck-yeh-bux.json │ ├── bullet3.json │ ├── bungee.json │ ├── bustache.json │ ├── butteraugli.json │ ├── bw-sqlitemap.json │ ├── bw-tempdir.json │ ├── bxzstr.json │ ├── byte-lite.json │ ├── bzip2.json │ └── bzip3.json ├── baseline.json ├── c-/ │ ├── c-ares.json │ ├── c-dbg-macro.json │ ├── c4core.json │ ├── c89stringutils.json │ ├── c9y.json │ ├── cachelib.json │ ├── cadons-ctus.json │ ├── caf.json │ ├── caffe2.json │ ├── cairo.json │ ├── cairomm.json │ ├── calceph.json │ ├── camport3.json │ ├── canvas-ity.json │ ├── capnproto.json │ ├── capstone.json │ ├── cargs.json │ ├── cartographer.json │ ├── casadi.json │ ├── casclib.json │ ├── catch-classic.json │ ├── catch.json │ ├── catch2.json │ ├── cblas.json │ ├── cccapstone.json │ ├── ccd.json │ ├── ccfits.json │ ├── cconfig.json │ ├── cctag.json │ ├── cctz.json │ ├── cddlib.json │ ├── cdt.json │ ├── celero.json │ ├── cello.json │ ├── cereal.json │ ├── ceres.json │ ├── cfitsio.json │ ├── cgal.json │ ├── cgicc.json │ ├── cgl.json │ ├── cglm.json │ ├── cgltf.json │ ├── cgns.json │ ├── chaiscript.json │ ├── chakracore.json │ ├── charls.json │ ├── chartdir.json │ ├── check.json │ ├── chenjunfu2-nbt-cpp.json │ ├── chipmunk.json │ ├── chmlib.json │ ├── chromaprint.json │ ├── chromium-base.json │ ├── chronoengine.json │ ├── cialloo-rcon.json │ ├── cimg.json │ ├── cinatra.json │ ├── cista.json │ ├── cityhash.json │ ├── civetweb.json │ ├── cjson.json │ ├── clamav.json │ ├── clap-cleveraudio.json │ ├── clapack.json │ ├── clara.json │ ├── clay.json │ ├── clblas.json │ ├── clblast.json │ ├── cld3.json │ ├── cleishm-frequency-cpp.json │ ├── cleishm-thermo-cpp.json │ ├── clfft.json │ ├── cli.json │ ├── cli11.json │ ├── clickhouse-cpp.json │ ├── clipboardxx.json │ ├── clipp.json │ ├── clipper2.json │ ├── clockutils.json │ ├── clp.json │ ├── clrng.json │ ├── clue.json │ ├── cmakerc.json │ ├── cmark-gfm.json │ ├── cmark.json │ ├── cmcstl2.json │ ├── cminpack.json │ ├── cmocka.json │ ├── cnats.json │ ├── cnl.json │ ├── co.json │ ├── cocoyaxi.json │ ├── coin-or-buildtools.json │ ├── coin-or-cbc.json │ ├── coin-or-cgl.json │ ├── coin-or-clp.json │ ├── coin-or-ipopt.json │ ├── coin-or-osi.json │ ├── coin.json │ ├── coinutils.json │ ├── collada-dom.json │ ├── colmap.json │ ├── color-console.json │ ├── commata.json │ ├── comms-ublox.json │ ├── comms.json │ ├── commsdsl.json │ ├── compoundfilereader.json │ ├── concurrencpp.json │ ├── concurrentqueue.json │ ├── configcat.json │ ├── conjure-enum.json │ ├── console-bridge.json │ ├── constexpr-contracts.json │ ├── constexpr.json │ ├── continuable.json │ ├── convectionkernels.json │ ├── coolprop.json │ ├── copypp.json │ ├── coroutine.json │ ├── corrade.json │ ├── correlation-vector-cpp.json │ ├── cpp-async.json │ ├── cpp-base64.json │ ├── cpp-channel.json │ ├── cpp-exiftool.json │ ├── cpp-httplib.json │ ├── cpp-ipc.json │ ├── cpp-jwt.json │ ├── cpp-kana.json │ ├── cpp-lazy.json │ ├── cpp-netlib.json │ ├── cpp-peglib.json │ ├── cpp-pinyin.json │ ├── cpp-redis.json │ ├── cpp-smtpclient-library.json │ ├── cpp-sort.json │ ├── cpp-taskflow.json │ ├── cpp-timsort.json │ ├── cppad.json │ ├── cppadcodegen.json │ ├── cppcms.json │ ├── cppcodec.json │ ├── cppcoro.json │ ├── cppdap.json │ ├── cppfs.json │ ├── cppgraphqlgen.json │ ├── cppitertools.json │ ├── cppkafka.json │ ├── cppmicroservices.json │ ├── cppp-reiconv.json │ ├── cpprealm.json │ ├── cpprestsdk.json │ ├── cppslippi.json │ ├── cpptoml.json │ ├── cpptrace.json │ ├── cppunit.json │ ├── cpputest.json │ ├── cppvrf.json │ ├── cppwinrt.json │ ├── cppxaml.json │ ├── cppzmq.json │ ├── cpr.json │ ├── cpu-features.json │ ├── cpuid.json │ ├── cpuinfo.json │ ├── cr.json │ ├── crashpad.json │ ├── crashrpt.json │ ├── crc32c.json │ ├── crcpp.json │ ├── crfsuite.json │ ├── croncpp.json │ ├── crossdb.json │ ├── crossguid.json │ ├── crow.json │ ├── cryptopp.json │ ├── cserialport.json │ ├── cspice.json │ ├── ctbench.json │ ├── ctbignum.json │ ├── ctemplate.json │ ├── cthash.json │ ├── ctp.json │ ├── ctpg.json │ ├── ctre.json │ ├── ctstraffic.json │ ├── cub.json │ ├── cubeb.json │ ├── cuda-api-wrappers.json │ ├── cuda.json │ ├── cudnn-frontend.json │ ├── cudnn.json │ ├── cunit.json │ ├── curl.json │ ├── curlcpp.json │ ├── curlpp.json │ ├── curve-coco.json │ ├── cute-headers.json │ ├── cutelyst2.json │ ├── cwalk.json │ ├── cwapi3d.json │ ├── cxxgraph.json │ ├── cxxopts.json │ ├── cyclonedds-cxx.json │ ├── cyclonedds.json │ ├── cyrus-sasl.json │ └── czmq.json ├── d-/ │ ├── d3d12-memory-allocator.json │ ├── d3dx12.json │ ├── dacap-clip.json │ ├── dagir.json │ ├── darknet.json │ ├── darts-clone.json │ ├── dartsim.json │ ├── dataframe.json │ ├── date.json │ ├── datraw.json │ ├── dav1d.json │ ├── daw-header-libraries.json │ ├── daw-json-link.json │ ├── daw-utf-range.json │ ├── dawn.json │ ├── daxa.json │ ├── dbg-macro.json │ ├── dbghelp.json │ ├── dbow2.json │ ├── dbow3.json │ ├── dbus-cxx.json │ ├── dbus.json │ ├── dcmtk.json │ ├── ddtdanilo-lmdb-wrapper.json │ ├── deadlightreal-swiftnet.json │ ├── debug-assert.json │ ├── decimal-for-cpp.json │ ├── delaunator-cpp.json │ ├── deniskovalchuk-libftp.json │ ├── detours.json │ ├── devicenameresolver.json │ ├── devil.json │ ├── dimcli.json │ ├── dingo.json │ ├── directfb2.json │ ├── directx-dxc.json │ ├── directx-headers.json │ ├── directx12-agility.json │ ├── directxmath.json │ ├── directxmesh.json │ ├── directxsdk.json │ ├── directxtex.json │ ├── directxtk.json │ ├── directxtk12.json │ ├── dirent.json │ ├── discord-game-sdk.json │ ├── discord-rpc.json │ ├── discordcoreapi.json │ ├── discount.json │ ├── discreture.json │ ├── distorm.json │ ├── dlfcn-win32.json │ ├── dlib.json │ ├── dlpack.json │ ├── dmlc.json │ ├── docopt.json │ ├── docraft.json │ ├── doctest.json │ ├── double-conversion.json │ ├── dp-thread-pool.json │ ├── dpdk.json │ ├── dpp.json │ ├── draco.json │ ├── drekar-launch-process-cpp.json │ ├── drlibs.json │ ├── drogon.json │ ├── dstorage.json │ ├── dtl.json │ ├── duckdb.json │ ├── duckx.json │ ├── duilib.json │ ├── dukglue.json │ ├── duktape.json │ ├── dumb.json │ ├── duvc-ctl.json │ ├── dv-processing.json │ ├── dx.json │ ├── dxcam-cpp.json │ ├── dxsdk-d3dx.json │ ├── dxut.json │ ├── dylib.json │ └── dyno.json ├── e-/ │ ├── e-dant-watcher.json │ ├── eabase.json │ ├── earcut-hpp.json │ ├── eastl.json │ ├── easy-profiler.json │ ├── easycl.json │ ├── easyexif.json │ ├── easyhook.json │ ├── easyloggingpp.json │ ├── eathread.json │ ├── ebml.json │ ├── ecal.json │ ├── ecaludp.json │ ├── ecm.json │ ├── ecos.json │ ├── ecsutil.json │ ├── ed25519.json │ ├── edflib.json │ ├── edlib.json │ ├── effects11.json │ ├── effolkronium-random.json │ ├── efsw.json │ ├── egl-registry.json │ ├── egl.json │ ├── eigen3.json │ ├── eipscanner.json │ ├── elements.json │ ├── elfio.json │ ├── elfutils.json │ ├── eljonny-testcpp.json │ ├── embree.json │ ├── embree2.json │ ├── embree3.json │ ├── enchantum.json │ ├── enet.json │ ├── enkits.json │ ├── ensmallen.json │ ├── entityx.json │ ├── entt.json │ ├── epoll-shim.json │ ├── epsilon.json │ ├── eraser.json │ ├── ereignis.json │ ├── esaxx.json │ ├── etcd-cpp-apiv3.json │ ├── ethindp-prism.json │ ├── etl.json │ ├── eve.json │ ├── eventpp.json │ ├── evpp.json │ ├── exiv2.json │ ├── expat.json │ ├── expected-lite.json │ ├── exprtk.json │ ├── ezc3d.json │ └── ezfoundation.json ├── f-/ │ ├── f3d.json │ ├── faad2.json │ ├── fadbad.json │ ├── faiss.json │ ├── fakeit.json │ ├── faker-cxx.json │ ├── fameta-counter.json │ ├── fann.json │ ├── farmhash.json │ ├── fast-cpp-csv-parser.json │ ├── fast-double-parser.json │ ├── fast-float.json │ ├── fast-obj.json │ ├── fastcdr.json │ ├── fastcgi.json │ ├── fastdds.json │ ├── fastfeat.json │ ├── fastgltf.json │ ├── fastio.json │ ├── fastlz.json │ ├── fastor.json │ ├── fastpfor.json │ ├── fastrtps.json │ ├── faudio.json │ ├── fawdlstty-libfv.json │ ├── fbgemm.json │ ├── fbthrift.json │ ├── fcl.json │ ├── fdk-aac.json │ ├── fdlibm.json │ ├── fenster.json │ ├── ffmpeg-bin2c.json │ ├── ffmpeg.json │ ├── ffnvcodec.json │ ├── fftw3.json │ ├── fftwpp.json │ ├── field3d.json │ ├── fineftp.json │ ├── fins.json │ ├── fixed-containers.json │ ├── fixed-math.json │ ├── fixed-string.json │ ├── fizz.json │ ├── fkyaml.json │ ├── flagpp.json │ ├── flann.json │ ├── flash-runtime-extensions.json │ ├── flashlight-cpu.json │ ├── flashlight-cuda.json │ ├── flashlight-sequence.json │ ├── flashlight-text.json │ ├── flat.json │ ├── flatbuffers.json │ ├── flatbush.json │ ├── flatcc.json │ ├── flecs.json │ ├── flint.json │ ├── fltk.json │ ├── fluidlite.json │ ├── fluidsynth.json │ ├── flux.json │ ├── fmem.json │ ├── fmi4cpp.json │ ├── fmilib.json │ ├── fmt.json │ ├── folly.json │ ├── font-chef.json │ ├── font-util.json │ ├── fontconfig.json │ ├── foonathan-lexy.json │ ├── foonathan-memory.json │ ├── forest.json │ ├── forge.json │ ├── foxi.json │ ├── fp16.json │ ├── fplus.json │ ├── freealut.json │ ├── freeglut.json │ ├── freeimage.json │ ├── freeopcua.json │ ├── freerdp.json │ ├── freetds.json │ ├── freetype-gl.json │ ├── freetype.json │ ├── freexl.json │ ├── frei0r.json │ ├── fribidi.json │ ├── frozen.json │ ├── frugally-deep.json │ ├── fruit.json │ ├── ftgl.json │ ├── ftxui.json │ ├── function2.json │ ├── functionalplus.json │ ├── functions-framework-cpp.json │ ├── future-config.json │ ├── fuzzylite.json │ ├── fxaudio.json │ └── fxdiv.json ├── g-/ │ ├── g2o.json │ ├── g3log.json │ ├── gainput.json │ ├── gamedev-framework.json │ ├── gameinput.json │ ├── gamenetworkingsockets.json │ ├── games101-cgl.json │ ├── gamma.json │ ├── gapp.json │ ├── gasol.json │ ├── gaussianlib.json │ ├── gazebo.json │ ├── gcem.json │ ├── gdal.json │ ├── gdbm.json │ ├── gdcm.json │ ├── gdcm2.json │ ├── gdk-pixbuf.json │ ├── gegl.json │ ├── gemmlowp.json │ ├── genann.json │ ├── geogram.json │ ├── geographiclib.json │ ├── geos.json │ ├── geotrans.json │ ├── getdns.json │ ├── getopt-win32.json │ ├── getopt.json │ ├── gettext-libintl.json │ ├── gettext.json │ ├── gettimeofday.json │ ├── gexiv2.json │ ├── gflags.json │ ├── ggml.json │ ├── ghc-filesystem.json │ ├── gherkin-c.json │ ├── giflib.json │ ├── ginkgo.json │ ├── gklib.json │ ├── gl2ps.json │ ├── gl3w.json │ ├── glad.json │ ├── glaze.json │ ├── glbinding.json │ ├── glew.json │ ├── glfw3.json │ ├── gli.json │ ├── glib-networking.json │ ├── glib.json │ ├── glibmm.json │ ├── glm.json │ ├── globjects.json │ ├── glog.json │ ├── gloo.json │ ├── glpk.json │ ├── glslang.json │ ├── glui.json │ ├── gmime.json │ ├── gmmlib.json │ ├── gmp.json │ ├── gmsh.json │ ├── gobject-introspection.json │ ├── godot-cpp.json │ ├── goldy.json │ ├── google-cloud-cpp-common.json │ ├── google-cloud-cpp-spanner.json │ ├── google-cloud-cpp.json │ ├── googleapis.json │ ├── gperf.json │ ├── gperftools.json │ ├── gpgme.json │ ├── gpgmepp.json │ ├── gpgmm.json │ ├── gppanel.json │ ├── graaf.json │ ├── grantlee.json │ ├── graphene.json │ ├── graphicsmagick.json │ ├── graphite2.json │ ├── graphqlparser.json │ ├── graphviz.json │ ├── greatest.json │ ├── grpc.json │ ├── grppi.json │ ├── gsasl.json │ ├── gsl-lite.json │ ├── gsl.json │ ├── gsoap.json │ ├── gst-rtsp-server.json │ ├── gstreamer.json │ ├── gtest.json │ ├── gtk.json │ ├── gtk3.json │ ├── gtkmm.json │ ├── gtl.json │ ├── gts.json │ ├── gtsam.json │ ├── guetzli.json │ ├── guile.json │ ├── guilite.json │ ├── gul14.json │ ├── gul17.json │ ├── gumbo.json │ ├── gz-cmake.json │ ├── gz-cmake3.json │ ├── gz-common.json │ ├── gz-common5.json │ ├── gz-fuel-tools.json │ ├── gz-fuel-tools8.json │ ├── gz-gui.json │ ├── gz-gui7.json │ ├── gz-math.json │ ├── gz-math7.json │ ├── gz-msgs.json │ ├── gz-msgs9.json │ ├── gz-physics.json │ ├── gz-physics6.json │ ├── gz-plugin.json │ ├── gz-plugin2.json │ ├── gz-rendering.json │ ├── gz-rendering7.json │ ├── gz-sensors.json │ ├── gz-sensors7.json │ ├── gz-sim.json │ ├── gz-tools.json │ ├── gz-tools2.json │ ├── gz-transport.json │ ├── gz-transport12.json │ ├── gz-utils.json │ ├── gz-utils2.json │ └── gzip-hpp.json ├── h-/ │ ├── h3.json │ ├── h5py-lzf.json │ ├── half.json │ ├── halide.json │ ├── hanjingo-high-jump.json │ ├── happly.json │ ├── hareflow.json │ ├── harfbuzz.json │ ├── hash-library.json │ ├── hashids.json │ ├── hayai.json │ ├── hazelcast-cpp-client.json │ ├── hdf5.json │ ├── hdr-histogram.json │ ├── healpix.json │ ├── hedley.json │ ├── hello-imgui.json │ ├── hesphoros-uniconv.json │ ├── hexi.json │ ├── hexl.json │ ├── hffix.json │ ├── hfsm2.json │ ├── hidapi.json │ ├── highfive.json │ ├── highs.json │ ├── highway.json │ ├── hikogui.json │ ├── hiredis.json │ ├── hjson-cpp.json │ ├── hlslpp.json │ ├── hnswlib.json │ ├── hps.json │ ├── hpx.json │ ├── htscodecs.json │ ├── htslib.json │ ├── http-parser.json │ ├── huira.json │ ├── hungarian.json │ ├── hunspell.json │ ├── hwloc.json │ ├── hyperscan.json │ ├── hypodermic.json │ └── hypre.json ├── i-/ │ ├── iausofa.json │ ├── icecream-cpp.json │ ├── iceoryx.json │ ├── icu.json │ ├── ideviceinstaller.json │ ├── idevicerestore.json │ ├── idyntree.json │ ├── if97.json │ ├── igloo.json │ ├── ignition-cmake0.json │ ├── ignition-cmake2.json │ ├── ignition-common1.json │ ├── ignition-common3.json │ ├── ignition-fuel-tools1.json │ ├── ignition-fuel-tools4.json │ ├── ignition-math4.json │ ├── ignition-math6.json │ ├── ignition-modularscripts.json │ ├── ignition-msgs1.json │ ├── ignition-msgs5.json │ ├── ignition-msgs6.json │ ├── ignition-plugin1.json │ ├── ignition-tools.json │ ├── ignition-transport4.json │ ├── ignition-transport8.json │ ├── ignition-transport9.json │ ├── ignition-utils1.json │ ├── igraph.json │ ├── iguana.json │ ├── iir1.json │ ├── ijg-libjpeg.json │ ├── ilmbase.json │ ├── im3d.json │ ├── imageinfo.json │ ├── imath.json │ ├── imcce-openfa.json │ ├── imgui-node-editor.json │ ├── imgui-sfml.json │ ├── imgui.json │ ├── imguizmo.json │ ├── immer.json │ ├── implot.json │ ├── implot3d.json │ ├── indicators.json │ ├── indirect-value.json │ ├── inflatelib.json │ ├── influxdb-cxx.json │ ├── infoware.json │ ├── inih.json │ ├── iniparser.json │ ├── inipp.json │ ├── inja.json │ ├── intel-ipsec.json │ ├── intel-mkl.json │ ├── intelrdfpmathlib.json │ ├── intrusive-shared-ptr.json │ ├── intx.json │ ├── io2d.json │ ├── iowa-hills-dsp.json │ ├── irrlicht.json │ ├── irrxml.json │ ├── irsdkcpp.json │ ├── isal.json │ ├── ismrmrd.json │ ├── itay-grudev-singleapplication.json │ ├── itk.json │ ├── itlib.json │ ├── itpp.json │ ├── itsy-bitsy.json │ └── ixwebsocket.json ├── j-/ │ ├── jack2.json │ ├── jaeger-client-cpp.json │ ├── jansson.json │ ├── jasper.json │ ├── jbcoe-value-types.json │ ├── jbig2dec.json │ ├── jbigkit.json │ ├── jemalloc.json │ ├── jhasse-poly2tri.json │ ├── jigson.json │ ├── jinja2cpplight.json │ ├── jkqtplotter.json │ ├── joltphysics.json │ ├── josuttis-jthread.json │ ├── jsmn.json │ ├── json-c.json │ ├── json-dto.json │ ├── json-glib.json │ ├── json-rpc-cxx.json │ ├── json-schema-validator.json │ ├── json-spirit.json │ ├── json11.json │ ├── json5-parser.json │ ├── jsoncons.json │ ├── jsoncpp.json │ ├── jsonfusion.json │ ├── jsonifier.json │ ├── jsonnet.json │ ├── juce.json │ ├── jwsung91-unilink.json │ ├── jwt-cpp.json │ └── jxrlib.json ├── k-/ │ ├── kaitai-struct-cpp-stl-runtime.json │ ├── kangaru.json │ ├── kcp.json │ ├── kd-soap.json │ ├── kdalgorithms.json │ ├── kdbindings.json │ ├── kddockwidgets.json │ ├── kdgpu.json │ ├── kdiagram.json │ ├── kdreports.json │ ├── kdsingleapplication.json │ ├── kdsoap.json │ ├── kdstatemachineeditor.json │ ├── kdutils.json │ ├── kealib.json │ ├── keccak-tiny.json │ ├── kedixa-coke.json │ ├── kenlm.json │ ├── kerbal.json │ ├── keystone.json │ ├── kf5archive.json │ ├── kf5attica.json │ ├── kf5auth.json │ ├── kf5bookmarks.json │ ├── kf5codecs.json │ ├── kf5completion.json │ ├── kf5config.json │ ├── kf5configwidgets.json │ ├── kf5coreaddons.json │ ├── kf5crash.json │ ├── kf5dbusaddons.json │ ├── kf5declarative.json │ ├── kf5diagram.json │ ├── kf5globalaccel.json │ ├── kf5guiaddons.json │ ├── kf5holidays.json │ ├── kf5i18n.json │ ├── kf5iconthemes.json │ ├── kf5itemmodels.json │ ├── kf5itemviews.json │ ├── kf5jobwidgets.json │ ├── kf5kcmutils.json │ ├── kf5kio.json │ ├── kf5newstuff.json │ ├── kf5notifications.json │ ├── kf5package.json │ ├── kf5parts.json │ ├── kf5plotting.json │ ├── kf5service.json │ ├── kf5solid.json │ ├── kf5sonnet.json │ ├── kf5syntaxhighlighting.json │ ├── kf5texteditor.json │ ├── kf5textwidgets.json │ ├── kf5wallet.json │ ├── kf5widgetsaddons.json │ ├── kf5windowsystem.json │ ├── kf5xmlgui.json │ ├── kf6archive.json │ ├── kfr.json │ ├── kinectsdk1.json │ ├── kinectsdk2.json │ ├── kissfft.json │ ├── kissnet.json │ ├── kleidiai.json │ ├── klein.json │ ├── knet.json │ ├── knncolle-annoy.json │ ├── knncolle-hnsw.json │ ├── knncolle-kmknn.json │ ├── knncolle.json │ ├── komihash.json │ ├── krabsetw.json │ ├── krb5.json │ ├── ktx.json │ ├── kubazip.json │ ├── kubernetes.json │ ├── kuku.json │ ├── kvasir-mpl.json │ └── kwsys.json ├── l-/ │ ├── lager.json │ ├── lapack-reference.json │ ├── lapack.json │ ├── lastools.json │ ├── laszip.json │ ├── launch-darkly-server.json │ ├── lazy-importer.json │ ├── lcm.json │ ├── lcms.json │ ├── leaf.json │ ├── lely-core.json │ ├── lemon-parser-generator.json │ ├── lemon.json │ ├── lensfun.json │ ├── leptonica.json │ ├── lerc.json │ ├── lest.json │ ├── level-zero.json │ ├── leveldb.json │ ├── levmar.json │ ├── lexbor.json │ ├── lexilla.json │ ├── lfreist-hwinfo.json │ ├── lib3mf.json │ ├── libaaplus.json │ ├── libadlmidi.json │ ├── libadwaita.json │ ├── libaec.json │ ├── libaes-siv.json │ ├── libaiff.json │ ├── libaio.json │ ├── libalkimia.json │ ├── libao.json │ ├── libarchive.json │ ├── libaribcaption.json │ ├── libass.json │ ├── libassert.json │ ├── libassuan.json │ ├── libatomic-ops.json │ ├── libavif.json │ ├── libb2.json │ ├── libbacktrace.json │ ├── libbf.json │ ├── libbluray.json │ ├── libbson.json │ ├── libcaer.json │ ├── libcamera.json │ ├── libcanberra.json │ ├── libcap.json │ ├── libcbor.json │ ├── libcds.json │ ├── libcerf.json │ ├── libcgroup.json │ ├── libcoap.json │ ├── libconfig.json │ ├── libconfuse.json │ ├── libcopp.json │ ├── libcoro.json │ ├── libcorrect.json │ ├── libcpplocate.json │ ├── libcrafter.json │ ├── libcred.json │ ├── libcroco.json │ ├── libcsv.json │ ├── libcuckoo.json │ ├── libcurl-simple-https.json │ ├── libczi.json │ ├── libdatachannel.json │ ├── libdatrie.json │ ├── libdc1394.json │ ├── libde265.json │ ├── libdeflate.json │ ├── libdicom.json │ ├── libdisasm.json │ ├── libdivide.json │ ├── libdjinterop.json │ ├── libdmtx.json │ ├── libdmx.json │ ├── libdshowcapture.json │ ├── libdvdcss.json │ ├── libdvdnav.json │ ├── libdvdread.json │ ├── libdwarf.json │ ├── libdxfrw.json │ ├── libe57.json │ ├── libe57format.json │ ├── libebur128.json │ ├── libedit.json │ ├── libenvpp.json │ ├── libepoxy.json │ ├── liberasurecode.json │ ├── libev.json │ ├── libevdev.json │ ├── libevent.json │ ├── libeventheader-decode.json │ ├── libeventheader-tracepoint.json │ ├── libevhtp.json │ ├── libexif.json │ ├── libfabric.json │ ├── libffi.json │ ├── libfido2.json │ ├── libflac.json │ ├── libfontenc.json │ ├── libfork.json │ ├── libfort.json │ ├── libfreenect2.json │ ├── libfs.json │ ├── libftdi.json │ ├── libftdi1.json │ ├── libfuse.json │ ├── libgcrypt.json │ ├── libgd.json │ ├── libgeotiff.json │ ├── libgig.json │ ├── libgit2.json │ ├── libgme.json │ ├── libgnutls.json │ ├── libgo.json │ ├── libgossip.json │ ├── libgpg-error.json │ ├── libgpiod.json │ ├── libgpod.json │ ├── libgta.json │ ├── libguarded.json │ ├── libgwenhywfar.json │ ├── libgxps.json │ ├── libharu.json │ ├── libhat.json │ ├── libhdfs3.json │ ├── libheif.json │ ├── libhsplasma.json │ ├── libhv.json │ ├── libhydrogen.json │ ├── libical.json │ ├── libice.json │ ├── libiconv.json │ ├── libics.json │ ├── libid3tag.json │ ├── libideviceactivation.json │ ├── libidn2.json │ ├── libigl.json │ ├── libilbc.json │ ├── libimobiledevice-glue.json │ ├── libimobiledevice.json │ ├── libinterpolate.json │ ├── libirecovery.json │ ├── libjpeg-turbo.json │ ├── libjuice.json │ ├── libjxl.json │ ├── libkeyfinder.json │ ├── libkml.json │ ├── liblas.json │ ├── liblbfgs.json │ ├── libleidenalg.json │ ├── liblemon.json │ ├── liblinear.json │ ├── liblo.json │ ├── liblrc.json │ ├── liblsl.json │ ├── liblsquic.json │ ├── libltdl.json │ ├── liblttng-ust.json │ ├── liblzf.json │ ├── liblzma.json │ ├── libmad.json │ ├── libmagic.json │ ├── libmariadb.json │ ├── libmatio-cpp.json │ ├── libmaxminddb.json │ ├── libmediainfo.json │ ├── libmem.json │ ├── libmemcached-awesome.json │ ├── libmesh.json │ ├── libmicrodns.json │ ├── libmicrohttpd.json │ ├── libmidi2.json │ ├── libmikmod.json │ ├── libmodbus.json │ ├── libmodman.json │ ├── libmodplug.json │ ├── libmorton.json │ ├── libmount.json │ ├── libmpeg2.json │ ├── libmspack.json │ ├── libmt32emu.json │ ├── libmtp.json │ ├── libmultisense.json │ ├── libmupdf.json │ ├── libmypaint.json │ ├── libmysofa.json │ ├── libmysql.json │ ├── libnice-gst.json │ ├── libnice.json │ ├── libnick.json │ ├── libnoise.json │ ├── libnop.json │ ├── libnotify.json │ ├── libobfuscate.json │ ├── libodb-boost.json │ ├── libodb-mysql.json │ ├── libodb-pgsql.json │ ├── libodb-sqlite.json │ ├── libodb.json │ ├── libofx.json │ ├── libogg.json │ ├── libopenmpt.json │ ├── libopensp.json │ ├── libopnmidi.json │ ├── libopusenc.json │ ├── liboqs.json │ ├── liborigin.json │ ├── libosdp.json │ ├── libosip2.json │ ├── libosmium.json │ ├── libosmscout.json │ ├── libp7-baical.json │ ├── libp7client.json │ ├── libpcap.json │ ├── libpff.json │ ├── libpg-query.json │ ├── libphonenumber.json │ ├── libplist.json │ ├── libpmemobj-cpp.json │ ├── libpng.json │ ├── libpopcnt.json │ ├── libpopt.json │ ├── libpq.json │ ├── libpqxx.json │ ├── libprotobuf-mutator.json │ ├── libproxy.json │ ├── libpsl.json │ ├── libqcow.json │ ├── libqglviewer.json │ ├── libqrencode.json │ ├── libqtrest.json │ ├── librabbitmq.json │ ├── libraqm.json │ ├── libraw.json │ ├── librdkafka.json │ ├── libredwg.json │ ├── libremidi.json │ ├── libressl.json │ ├── librsvg.json │ ├── librsync.json │ ├── librtmp.json │ ├── librtpi.json │ ├── librttopo.json │ ├── libsamplerate.json │ ├── libsass.json │ ├── libsbml.json │ ├── libsbsms.json │ ├── libscran-umappp.json │ ├── libsecret.json │ ├── libsercomm.json │ ├── libserial.json │ ├── libsersi.json │ ├── libsharp.json │ ├── libshout.json │ ├── libsigcpp-3.json │ ├── libsigcpp.json │ ├── libslirp.json │ ├── libsm.json │ ├── libsmacker.json │ ├── libsmb2.json │ ├── libsndfile.json │ ├── libsnoretoast.json │ ├── libsodium.json │ ├── libsonic.json │ ├── libsoundio.json │ ├── libsoup.json │ ├── libspatialindex.json │ ├── libspatialite.json │ ├── libspnav.json │ ├── libspng.json │ ├── libsquish.json │ ├── libsrt.json │ ├── libsrtp.json │ ├── libssh.json │ ├── libssh2.json │ ├── libstemmer.json │ ├── libstk.json │ ├── libsvm.json │ ├── libsystemd.json │ ├── libtar.json │ ├── libtasn1.json │ ├── libtcod.json │ ├── libtess2.json │ ├── libtheora.json │ ├── libtins.json │ ├── libtomcrypt.json │ ├── libtommath.json │ ├── libtorch.json │ ├── libtorrent.json │ ├── libtracepoint-control.json │ ├── libtracepoint-decode.json │ ├── libtracepoint.json │ ├── libu2f-server.json │ ├── libudfread.json │ ├── libudis86.json │ ├── libudns.json │ ├── libui.json │ ├── libunibreak.json │ ├── libunifex.json │ ├── libunistring.json │ ├── libunwind.json │ ├── libupnp.json │ ├── liburcu.json │ ├── liburing.json │ ├── libusb-win32.json │ ├── libusb.json │ ├── libusbmuxd.json │ ├── libusbp.json │ ├── libuuid.json │ ├── libuv.json │ ├── libuvc.json │ ├── libva.json │ ├── libvault.json │ ├── libversion.json │ ├── libvhdi.json │ ├── libvmaf.json │ ├── libvmdk.json │ ├── libvorbis.json │ ├── libvpx.json │ ├── libwandio.json │ ├── libwebm.json │ ├── libwebp.json │ ├── libwebsockets.json │ ├── libx11.json │ ├── libxau.json │ ├── libxaw.json │ ├── libxcomposite.json │ ├── libxcrypt.json │ ├── libxcvt.json │ ├── libxdamage.json │ ├── libxdf.json │ ├── libxdiff.json │ ├── libxdmcp.json │ ├── libxext.json │ ├── libxfixes.json │ ├── libxfont.json │ ├── libxft.json │ ├── libxi.json │ ├── libxinerama.json │ ├── libxkbcommon.json │ ├── libxkbfile.json │ ├── libxlsxwriter.json │ ├── libxml2.json │ ├── libxmlb.json │ ├── libxmlmm.json │ ├── libxmlpp.json │ ├── libxmp-lite.json │ ├── libxmp.json │ ├── libxmu.json │ ├── libxpm.json │ ├── libxpresent.json │ ├── libxrandr.json │ ├── libxrender.json │ ├── libxres.json │ ├── libxscrnsaver.json │ ├── libxslt.json │ ├── libxt.json │ ├── libxtst.json │ ├── libxv.json │ ├── libxxf86vm.json │ ├── libyaml.json │ ├── libyuv.json │ ├── libzen.json │ ├── libzim.json │ ├── libzip.json │ ├── libzippp.json │ ├── licensepp.json │ ├── lief.json │ ├── lightgbm.json │ ├── lightningscanner.json │ ├── lilv.json │ ├── linalg.json │ ├── linenoise-ng.json │ ├── linmath.json │ ├── lionkor-commandline.json │ ├── liquid-dsp.json │ ├── litehtml.json │ ├── live555.json │ ├── livepp.json │ ├── llama-cpp.json │ ├── llfio.json │ ├── llgi.json │ ├── llgl.json │ ├── llhttp.json │ ├── llnl-units.json │ ├── lloyal-ai-inlined-vector.json │ ├── llvm.json │ ├── lmdb.json │ ├── lockpp.json │ ├── lodepng-c.json │ ├── lodepng.json │ ├── log4cplus.json │ ├── log4cpp-log4cpp.json │ ├── log4cpp.json │ ├── log4cxx.json │ ├── logme.json │ ├── loguru.json │ ├── lpeg.json │ ├── ls-qpack.json │ ├── ltla-aarand.json │ ├── ltla-cppirlba.json │ ├── ltla-cppkmeans.json │ ├── ltla-powerit.json │ ├── ltla-sanisizer.json │ ├── ltla-subpar.json │ ├── lua-compat53.json │ ├── lua.json │ ├── luabridge.json │ ├── luabridge3.json │ ├── luafilesystem.json │ ├── luajit.json │ ├── luasec.json │ ├── luasocket.json │ ├── luau.json │ ├── luminoengine.json │ ├── lunarg-vulkantools.json │ ├── lunasvg.json │ ├── luv.json │ ├── lv2.json │ ├── lwlog.json │ ├── lz4.json │ ├── lzav.json │ ├── lzfse.json │ ├── lzo.json │ └── lzokay.json ├── m-/ │ ├── maddy.json │ ├── magic-args.json │ ├── magic-enum.json │ ├── magic-get.json │ ├── magma.json │ ├── magnum-extras.json │ ├── magnum-integration.json │ ├── magnum-plugins.json │ ├── magnum.json │ ├── mailio.json │ ├── makeid.json │ ├── manif.json │ ├── manifold.json │ ├── mapbox-geojson-cpp.json │ ├── mapbox-geojson-vt-cpp.json │ ├── mapbox-geometry.json │ ├── mapbox-polylabel.json │ ├── mapbox-variant.json │ ├── mapbox-wagyu.json │ ├── mapnik.json │ ├── marble.json │ ├── marchingcubecpp.json │ ├── mariadb-connector-cpp.json │ ├── marisa-trie.json │ ├── marl.json │ ├── marzbanpp.json │ ├── matajoh-libnpy.json │ ├── matchit.json │ ├── materialx.json │ ├── mathc.json │ ├── mathgl.json │ ├── mathter.json │ ├── matio.json │ ├── matplotlib-cpp.json │ ├── matplotplusplus.json │ ├── matroska.json │ ├── mbedtls.json │ ├── mcap.json │ ├── mchehab-zbar.json │ ├── mcpp.json │ ├── md4c.json │ ├── mdl-sdk.json │ ├── mdns.json │ ├── mdnsresponder.json │ ├── mdspan.json │ ├── mecab.json │ ├── meekrosoft-fff.json │ ├── memorymodule.json │ ├── meojson.json │ ├── mesa.json │ ├── meschach.json │ ├── meshoptimizer.json │ ├── metis.json │ ├── metrohash.json │ ├── mexce.json │ ├── mfl.json │ ├── mfx-dispatch.json │ ├── mgclient.json │ ├── mgnlibs.json │ ├── mhook.json │ ├── michaelmiller-sec21.json │ ├── micro-gl.json │ ├── microlog.json │ ├── microsoft-signalr.json │ ├── microsoft-windows-devices-midi2.json │ ├── mikktspace.json │ ├── mimalloc.json │ ├── mimicpp.json │ ├── minc.json │ ├── minhook.json │ ├── miniaudio.json │ ├── minifb.json │ ├── minimp3.json │ ├── minio-cpp.json │ ├── miniply.json │ ├── minisat-master-keying.json │ ├── minitrace.json │ ├── miniupnpc.json │ ├── miniz.json │ ├── minizip-ng.json │ ├── minizip.json │ ├── mio.json │ ├── mlpack.json │ ├── mman.json │ ├── mmloader.json │ ├── mmx.json │ ├── mnn.json │ ├── modern-cpp-kafka.json │ ├── modp-base64.json │ ├── mongo-c-driver.json │ ├── mongo-cxx-driver.json │ ├── mongoose.json │ ├── monkeys-audio.json │ ├── moos-core.json │ ├── moos-essential.json │ ├── moos-ui.json │ ├── morcules-swiftnet.json │ ├── morphologica.json │ ├── morton-nd.json │ ├── mosquitto.json │ ├── mozjpeg.json │ ├── mp-units.json │ ├── mp3lame.json │ ├── mpark-patterns.json │ ├── mpark-variant.json │ ├── mpc.json │ ├── mpfr.json │ ├── mpg123.json │ ├── mpi.json │ ├── mpir.json │ ├── mpmcqueue.json │ ├── mqtt-cpp.json │ ├── ms-angle.json │ ├── ms-gdk.json │ ├── ms-gdkx.json │ ├── ms-gltf.json │ ├── ms-gsl.json │ ├── ms-ifc-sdk.json │ ├── ms-quic.json │ ├── msdfgen.json │ ├── msgpack-c.json │ ├── msgpack.json │ ├── msgpack11.json │ ├── msh3.json │ ├── msinttypes.json │ ├── msix.json │ ├── msmpi.json │ ├── msolve.json │ ├── msquic.json │ ├── mstch.json │ ├── mtlt.json │ ├── muda.json │ ├── mujoco.json │ ├── mujs.json │ ├── munit.json │ ├── muparser.json │ ├── murmur3.json │ ├── murmurhash.json │ ├── mvfst.json │ ├── mxml.json │ ├── mygui.json │ ├── mypaint-brushes.json │ ├── mysql-connector-cpp.json │ ├── mysvac-jsonlib.json │ └── mzying2001-sw.json ├── n-/ │ ├── nameof.json │ ├── nana.json │ ├── nano-signal-slot.json │ ├── nanoarrow.json │ ├── nanobench.json │ ├── nanobind.json │ ├── nanodbc.json │ ├── nanoflann.json │ ├── nanogui.json │ ├── nanojsonc.json │ ├── nanomsg.json │ ├── nanopb.json │ ├── nanoprintf.json │ ├── nanorange.json │ ├── nanort.json │ ├── nanosvg.json │ ├── nanovg.json │ ├── nativefiledialog-extended.json │ ├── nativefiledialog.json │ ├── nayuki-qr-code-generator.json │ ├── nccl.json │ ├── ncnn.json │ ├── ncurses.json │ ├── ndis-driver-library.json │ ├── neargye-semver.json │ ├── ned14-internal-quickcpplib.json │ ├── neko-event.json │ ├── neko-function.json │ ├── neko-log.json │ ├── neko-network.json │ ├── neko-schema.json │ ├── neko-system.json │ ├── neko-threadpool.json │ ├── neon2sse.json │ ├── neoslippi.json │ ├── netcdf-c.json │ ├── netcdf-cxx4.json │ ├── netcpp.json │ ├── netgen.json │ ├── nethost.json │ ├── nettle.json │ ├── networkdirect-sdk.json │ ├── ng-log.json │ ├── nghttp2-asio.json │ ├── nghttp2.json │ ├── nghttp3.json │ ├── ngspice.json │ ├── ngtcp2.json │ ├── nifly.json │ ├── nifticlib.json │ ├── nlohmann-fifo-map.json │ ├── nlohmann-json.json │ ├── nlopt.json │ ├── nmap.json │ ├── nmslib.json │ ├── nng.json │ ├── nngpp.json │ ├── nnpack.json │ ├── node-addon-api.json │ ├── node-api-headers.json │ ├── node-api.json │ ├── nodesoup.json │ ├── nonius.json │ ├── nonstd-bit-lite.json │ ├── nonstd-scope-lite.json │ ├── nowide.json │ ├── nrf-ble-driver.json │ ├── nspr.json │ ├── nss.json │ ├── nsync.json │ ├── nt-wrapper.json │ ├── ntf-core.json │ ├── nu-book-zxing-cpp.json │ ├── nuklear.json │ ├── numactl.json │ ├── numcpp.json │ ├── nuraft.json │ ├── nuspell.json │ ├── nvidia-cutlass.json │ ├── nvtt.json │ └── nyan-lang.json ├── o-/ │ ├── oatpp-consul.json │ ├── oatpp-curl.json │ ├── oatpp-libressl.json │ ├── oatpp-mbedtls.json │ ├── oatpp-mongo.json │ ├── oatpp-openssl.json │ ├── oatpp-postgresql.json │ ├── oatpp-sqlite.json │ ├── oatpp-ssdp.json │ ├── oatpp-swagger.json │ ├── oatpp-websocket.json │ ├── oatpp-zlib.json │ ├── oatpp.json │ ├── obfuscxx.json │ ├── oboe.json │ ├── observer-ptr-lite.json │ ├── ocilib.json │ ├── octave.json │ ├── octomap.json │ ├── ode.json │ ├── offscale-libetcd-cpp.json │ ├── ogdf.json │ ├── ogre-next.json │ ├── ogre.json │ ├── ois.json │ ├── omniorb.json │ ├── omniverse-physx-sdk.json │ ├── ompl.json │ ├── omplapp.json │ ├── onednn.json │ ├── oniguruma.json │ ├── onnx-optimizer.json │ ├── onnx.json │ ├── onnxruntime-gpu.json │ ├── onnxruntime.json │ ├── oof.json │ ├── open-dis-cpp.json │ ├── open62541.json │ ├── open62541pp.json │ ├── openal-soft.json │ ├── openblas.json │ ├── opencascade.json │ ├── opencc.json │ ├── opencensus-cpp.json │ ├── opencl.json │ ├── opencolorio-tools.json │ ├── opencolorio.json │ ├── opencsg.json │ ├── openctm.json │ ├── opencv.json │ ├── opencv2.json │ ├── opencv3.json │ ├── opencv4.json │ ├── opendnp3.json │ ├── openexr.json │ ├── openfbx.json │ ├── openfx.json │ ├── opengl-registry.json │ ├── opengl.json │ ├── openh264.json │ ├── openigtlink.json │ ├── openimageio.json │ ├── openjpeg.json │ ├── openjph.json │ ├── openldap.json │ ├── openmama.json │ ├── openmesh.json │ ├── openmpi.json │ ├── openmvg.json │ ├── openmvs.json │ ├── openni2.json │ ├── openscap.json │ ├── openslide.json │ ├── openssl-unix.json │ ├── openssl-uwp.json │ ├── openssl-windows.json │ ├── openssl.json │ ├── opensubdiv.json │ ├── opentelemetry-cpp-contrib-version.json │ ├── opentelemetry-cpp.json │ ├── opentelemetry-fluentd.json │ ├── opentracing.json │ ├── openturns.json │ ├── openvdb.json │ ├── openvino.json │ ├── openvpn3.json │ ├── openvr.json │ ├── openxlsx.json │ ├── openxr-loader.json │ ├── openzl.json │ ├── optimus-cpp.json │ ├── optional-bare.json │ ├── optional-lite.json │ ├── opus.json │ ├── opusfile.json │ ├── orange-math.json │ ├── orange-vmprotect-sdk.json │ ├── orc.json │ ├── orefkov-simstr.json │ ├── ormpp.json │ ├── orocos-kdl.json │ ├── oscpack.json │ ├── osg-qt.json │ ├── osg.json │ ├── osgearth.json │ ├── osi.json │ ├── osmanip.json │ ├── osp-collection.json │ ├── osqp-eigen.json │ ├── osqp.json │ ├── otl.json │ └── outcome.json ├── p-/ │ ├── p-ranav-csv.json │ ├── p-ranav-csv2.json │ ├── p-ranav-glob.json │ ├── pagmo2.json │ ├── paho-mqtt.json │ ├── paho-mqttpp3.json │ ├── palsigslot.json │ ├── pango.json │ ├── pangolin.json │ ├── pangomm.json │ ├── parallel-hashmap.json │ ├── parallelstl.json │ ├── paraview.json │ ├── parmetis.json │ ├── parquet.json │ ├── parsi.json │ ├── parson.json │ ├── patternia.json │ ├── pbc.json │ ├── pcapplusplus.json │ ├── pcg.json │ ├── pciids.json │ ├── pcl.json │ ├── pcre.json │ ├── pcre2.json │ ├── pdal-c.json │ ├── pdal-dimbuilder.json │ ├── pdal.json │ ├── pdcurses.json │ ├── pdqsort.json │ ├── pe-parse.json │ ├── pegtl-2.json │ ├── pegtl.json │ ├── perfetto.json │ ├── pffft.json │ ├── pfring.json │ ├── pfultz2-linq.json │ ├── phnt.json │ ├── physac.json │ ├── physfs.json │ ├── physx.json │ ├── picobench.json │ ├── picojson.json │ ├── picosha2.json │ ├── piex.json │ ├── pipewire.json │ ├── pistache.json │ ├── pixel.json │ ├── pixman.json │ ├── pkgconf.json │ ├── plasma-wayland-protocols.json │ ├── platform-folders.json │ ├── plf-colony.json │ ├── plf-hive.json │ ├── plf-indiesort.json │ ├── plf-list.json │ ├── plf-nanotimer.json │ ├── plf-queue.json │ ├── plf-stack.json │ ├── plib.json │ ├── plibsys.json │ ├── plog.json │ ├── plplot.json │ ├── plustache.json │ ├── plutosvg.json │ ├── plutovg.json │ ├── pmdk.json │ ├── pmp-library.json │ ├── pngpp.json │ ├── pngwriter.json │ ├── pocketfft.json │ ├── pocketpy.json │ ├── poco.json │ ├── podofo.json │ ├── poissonrecon.json │ ├── poly2tri.json │ ├── polyclipping.json │ ├── polyhook2.json │ ├── polymorphic-value.json │ ├── ponder.json │ ├── poolparty.json │ ├── poolstl.json │ ├── poppler-data.json │ ├── poppler.json │ ├── popsift.json │ ├── portable-file-dialogs.json │ ├── portable-snippets.json │ ├── portaudio.json │ ├── portmidi.json │ ├── portsmf.json │ ├── poselib.json │ ├── ppconsul.json │ ├── ppmagic.json │ ├── ppqsort.json │ ├── pprint.json │ ├── pqp.json │ ├── pravila00-enum-string.json │ ├── pravila00-enumflag.json │ ├── pravila00-make-vector.json │ ├── presentmon.json │ ├── proj.json │ ├── proj4.json │ ├── projectm-eval.json │ ├── projectm.json │ ├── prometheus-cpp.json │ ├── promise-cpp.json │ ├── protobuf-c.json │ ├── protobuf.json │ ├── protopuf.json │ ├── protozero.json │ ├── proxsuite.json │ ├── proxy.json │ ├── proxygen.json │ ├── proxywrapper.json │ ├── psimd.json │ ├── ptc-print.json │ ├── ptex.json │ ├── pthread-stubs.json │ ├── pthread.json │ ├── pthreadpool.json │ ├── pthreads.json │ ├── ptyqt.json │ ├── pugixml.json │ ├── pulsar-client-cpp.json │ ├── pulseaudio.json │ ├── pulzed-mini.json │ ├── pxlib.json │ ├── pybind11.json │ ├── pystring.json │ ├── python2.json │ └── python3.json ├── q-/ │ ├── qca.json │ ├── qcbor.json │ ├── qcoro.json │ ├── qcustomplot.json │ ├── qdldl.json │ ├── qgis-o2.json │ ├── qhttpengine.json │ ├── qhull.json │ ├── qlementine-icons.json │ ├── qlementine.json │ ├── qmex.json │ ├── qnnpack.json │ ├── qoi.json │ ├── qoixx.json │ ├── qpdf.json │ ├── qpid-proton.json │ ├── qpoases.json │ ├── qscintilla.json │ ├── qt-advanced-docking-system.json │ ├── qt.json │ ├── qt3d.json │ ├── qt5-3d.json │ ├── qt5-activeqt.json │ ├── qt5-androidextras.json │ ├── qt5-base.json │ ├── qt5-canvas3d.json │ ├── qt5-charts.json │ ├── qt5-connectivity.json │ ├── qt5-datavis3d.json │ ├── qt5-declarative.json │ ├── qt5-doc.json │ ├── qt5-gamepad.json │ ├── qt5-graphicaleffects.json │ ├── qt5-imageformats.json │ ├── qt5-location.json │ ├── qt5-macextras.json │ ├── qt5-modularscripts.json │ ├── qt5-mqtt.json │ ├── qt5-multimedia.json │ ├── qt5-networkauth.json │ ├── qt5-purchasing.json │ ├── qt5-quick3d.json │ ├── qt5-quickcontrols.json │ ├── qt5-quickcontrols2.json │ ├── qt5-quicktimeline.json │ ├── qt5-remoteobjects.json │ ├── qt5-script.json │ ├── qt5-scxml.json │ ├── qt5-sensors.json │ ├── qt5-serialbus.json │ ├── qt5-serialport.json │ ├── qt5-speech.json │ ├── qt5-svg.json │ ├── qt5-tools.json │ ├── qt5-translations.json │ ├── qt5-virtualkeyboard.json │ ├── qt5-wayland.json │ ├── qt5-webchannel.json │ ├── qt5-webengine.json │ ├── qt5-webglplugin.json │ ├── qt5-websockets.json │ ├── qt5-webview.json │ ├── qt5-winextras.json │ ├── qt5-x11extras.json │ ├── qt5-xmlpatterns.json │ ├── qt5.json │ ├── qt5compat.json │ ├── qt6betablock.json │ ├── qtactiveqt.json │ ├── qtapplicationmanager.json │ ├── qtbase.json │ ├── qtcharts.json │ ├── qtcoap.json │ ├── qtconnectivity.json │ ├── qtdatavis3d.json │ ├── qtdeclarative.json │ ├── qtdeviceutilities.json │ ├── qtdoc.json │ ├── qtgraphs.json │ ├── qtgrpc.json │ ├── qthttpserver.json │ ├── qtimageformats.json │ ├── qtinterfaceframework.json │ ├── qtkeychain-qt6.json │ ├── qtkeychain.json │ ├── qtlanguageserver.json │ ├── qtlocation.json │ ├── qtlottie.json │ ├── qtmqtt.json │ ├── qtmultimedia.json │ ├── qtnetworkauth.json │ ├── qtopcua.json │ ├── qtpositioning.json │ ├── qtquick3d.json │ ├── qtquick3dphysics.json │ ├── qtquickcontrols2.json │ ├── qtquickeffectmaker.json │ ├── qtquicktimeline.json │ ├── qtremoteobjects.json │ ├── qtscxml.json │ ├── qtsensors.json │ ├── qtserialbus.json │ ├── qtserialport.json │ ├── qtshadertools.json │ ├── qtspeech.json │ ├── qtsvg.json │ ├── qttools.json │ ├── qttranslations.json │ ├── qtvirtualkeyboard.json │ ├── qtwayland.json │ ├── qtwebchannel.json │ ├── qtwebengine.json │ ├── qtwebsockets.json │ ├── qtwebview.json │ ├── quadtree.json │ ├── quantlib.json │ ├── quarter.json │ ├── quaternions.json │ ├── quazip.json │ ├── quickfast.json │ ├── quickfix.json │ ├── quickjs-ng.json │ ├── quill.json │ ├── quirc.json │ ├── qwt-qt6.json │ ├── qwt.json │ ├── qwtw.json │ └── qzxing.json ├── r-/ │ ├── rabit.json │ ├── ragel.json │ ├── random123.json │ ├── randomstr.json │ ├── rang.json │ ├── range-v3-vs2015.json │ ├── range-v3.json │ ├── rapidcheck.json │ ├── rapidcsv.json │ ├── rapidfuzz-cpp.json │ ├── rapidfuzz.json │ ├── rapidhash.json │ ├── rapidjson.json │ ├── rapidobj.json │ ├── rapidxml-ns.json │ ├── rapidxml.json │ ├── rappture.json │ ├── raygui.json │ ├── raylib-cpp.json │ ├── raylib.json │ ├── rbdl-orb.json │ ├── rbdl.json │ ├── re2.json │ ├── reaction.json │ ├── reactiveplusplus.json │ ├── reactphysics3d.json │ ├── readerwriterqueue.json │ ├── readline-osx.json │ ├── readline-unix.json │ ├── readline-win32.json │ ├── readline.json │ ├── readosm.json │ ├── realm-core.json │ ├── realsense2.json │ ├── rebind.json │ ├── recast.json │ ├── recastnavigation.json │ ├── recycle.json │ ├── red0124-ssp.json │ ├── redis-plus-plus.json │ ├── refl-cpp.json │ ├── reflectcpp.json │ ├── refprop-headers.json │ ├── rendergraph.json │ ├── replxx.json │ ├── reproc.json │ ├── rerun-sdk.json │ ├── rest-rpc.json │ ├── restbed.json │ ├── restc-cpp.json │ ├── restclient-cpp.json │ ├── restinio.json │ ├── resultlib.json │ ├── retropak.json │ ├── rewolf-wow64ext.json │ ├── rexo.json │ ├── rgfw.json │ ├── rhash.json │ ├── rhasheq.json │ ├── riffcpp.json │ ├── ring-span-lite.json │ ├── rioki-glow.json │ ├── ripper37-libbase.json │ ├── rivers.json │ ├── rkcommon.json │ ├── rlottie.json │ ├── rmlui.json │ ├── rmqcpp.json │ ├── rnnoise.json │ ├── roaring.json │ ├── robin-hood-hashing.json │ ├── robin-map.json │ ├── robotraconteur-companion.json │ ├── robotraconteur.json │ ├── rocksdb.json │ ├── rp-ntuples.json │ ├── rpclib.json │ ├── rply.json │ ├── rs-core-lib.json │ ├── rsasynccpp.json │ ├── rsig.json │ ├── rsm-binary-io.json │ ├── rsm-bsa.json │ ├── rsm-mmio.json │ ├── rsocket.json │ ├── rtabmap-res-tool.json │ ├── rtabmap.json │ ├── rtaudio.json │ ├── rtc-benchmarksuite.json │ ├── rtlsdr.json │ ├── rtmfp-cpp.json │ ├── rtmidi.json │ ├── rttr.json │ ├── ruapu.json │ ├── rubberband.json │ ├── ruckig.json │ ├── rxcpp.json │ ├── rxqt.json │ ├── rxspencer.json │ ├── ryml.json │ └── ryu.json ├── s-/ │ ├── s2geometry.json │ ├── s2n.json │ ├── safeint.json │ ├── safetyhook.json │ ├── sail.json │ ├── sais.json │ ├── sajson.json │ ├── salome-configuration.json │ ├── salome-med-fichier.json │ ├── salome-medcoupling.json │ ├── sassc.json │ ├── saucer.json │ ├── sbgecom.json │ ├── sbp.json │ ├── scenepic.json │ ├── scintilla.json │ ├── sciplot.json │ ├── sciter-js.json │ ├── sciter.json │ ├── scnlib.json │ ├── scope-guard.json │ ├── scotch.json │ ├── scottt-debugbreak.json │ ├── scylla-wrapper.json │ ├── sdbus-cpp.json │ ├── sdflib.json │ ├── sdformat.json │ ├── sdformat10.json │ ├── sdformat13.json │ ├── sdformat6.json │ ├── sdformat9.json │ ├── sdl1-mixer.json │ ├── sdl1-net.json │ ├── sdl1.json │ ├── sdl2-gfx.json │ ├── sdl2-image.json │ ├── sdl2-mixer-ext.json │ ├── sdl2-mixer.json │ ├── sdl2-net.json │ ├── sdl2-ttf.json │ ├── sdl2.json │ ├── sdl2pp.json │ ├── sdl3-image.json │ ├── sdl3-mixer.json │ ├── sdl3-shadercross.json │ ├── sdl3-ttf.json │ ├── sdl3.json │ ├── seacas.json │ ├── seal.json │ ├── seasocks.json │ ├── sebsjames-maths.json │ ├── secp256k1.json │ ├── selene.json │ ├── sentencepiece.json │ ├── sentry-native.json │ ├── septag-dmon.json │ ├── septag-sx.json │ ├── seqan.json │ ├── serd.json │ ├── serdepp.json │ ├── serf.json │ ├── sese.json │ ├── sf2cute.json │ ├── sfcgal.json │ ├── sfgui.json │ ├── sfl.json │ ├── sfml.json │ ├── sfsexp.json │ ├── shader-slang.json │ ├── shaderc.json │ ├── shaderwriter.json │ ├── shapelib.json │ ├── shared-mime-info.json │ ├── sheenbidi.json │ ├── shiftmedia-libgcrypt.json │ ├── shiftmedia-libgnutls.json │ ├── shiftmedia-libgpg-error.json │ ├── shiva-sfml.json │ ├── shiva.json │ ├── shogun.json │ ├── si.json │ ├── sigmatch.json │ ├── signalrclient.json │ ├── signalsmith-dsp.json │ ├── signalsmith-stretch.json │ ├── sigslot.json │ ├── simage.json │ ├── simbody.json │ ├── simd.json │ ├── simde.json │ ├── simdjson.json │ ├── simdutf.json │ ├── simonbrunel-qtpromise.json │ ├── simple-fft.json │ ├── simpleamqpclient.json │ ├── simpleble.json │ ├── simpleini.json │ ├── simsimd.json │ ├── sintra.json │ ├── sjpeg.json │ ├── skcrypter.json │ ├── skia.json │ ├── skyr-url.json │ ├── sleef.json │ ├── sleepy-discord.json │ ├── slick-logger.json │ ├── slick-net.json │ ├── slick-object-pool.json │ ├── slick-queue.json │ ├── slick-shm.json │ ├── slick-socket.json │ ├── slikenet.json │ ├── sltbench.json │ ├── small-gicp.json │ ├── smf.json │ ├── smpeg2.json │ ├── snap7.json │ ├── snappy.json │ ├── sndfile.json │ ├── snitch.json │ ├── snowhouse.json │ ├── so5extra.json │ ├── soapysdr.json │ ├── sobjectizer.json │ ├── soci.json │ ├── socket-io-client.json │ ├── sockpp.json │ ├── soem.json │ ├── soil.json │ ├── soil2.json │ ├── sokol.json │ ├── sol2.json │ ├── solid3.json │ ├── sonivox.json │ ├── sophus.json │ ├── soqt.json │ ├── sord.json │ ├── soundtouch.json │ ├── sourcemeta-blaze.json │ ├── soxr.json │ ├── spaceland.json │ ├── span-lite.json │ ├── sparsehash.json │ ├── sparsepp.json │ ├── spatial-hash.json │ ├── spatialite-tools.json │ ├── spdk-dpdk.json │ ├── spdk-ipsec.json │ ├── spdk-isal.json │ ├── spdk.json │ ├── spdlog.json │ ├── spectra.json │ ├── speex.json │ ├── speexdsp.json │ ├── spglib.json │ ├── spimpl.json │ ├── spine-c.json │ ├── spine-cpp.json │ ├── spine-runtimes.json │ ├── spirit-po.json │ ├── spirv-cross.json │ ├── spirv-headers.json │ ├── spirv-reflect.json │ ├── spirv-tools.json │ ├── spix.json │ ├── spout2.json │ ├── sproto.json │ ├── sprout.json │ ├── spscqueue.json │ ├── spz.json │ ├── sqlcipher.json │ ├── sqlgen.json │ ├── sqlite-flux.json │ ├── sqlite-modern-cpp.json │ ├── sqlite-orm.json │ ├── sqlite3.json │ ├── sqlitecpp.json │ ├── sqlpp11-connector-mysql.json │ ├── sqlpp11-connector-sqlite3.json │ ├── sqlpp11.json │ ├── squirrel.json │ ├── sratom.json │ ├── srell.json │ ├── srpc.json │ ├── sse2neon.json │ ├── st-tree.json │ ├── stackwalker.json │ ├── starlink-ast.json │ ├── staticjson.json │ ├── status-code.json │ ├── status-value-lite.json │ ├── stb.json │ ├── stc.json │ ├── stdexec.json │ ├── stduuid.json │ ├── steam-audio.json │ ├── stella-cv-fbow.json │ ├── stftpitchshift.json │ ├── stillwater-universal.json │ ├── stlab-copy-on-write.json │ ├── stlab-enum-ops.json │ ├── stlab.json │ ├── stormlib.json │ ├── str-view.json │ ├── strict-variant.json │ ├── string-lite.json │ ├── string-theory.json │ ├── string-view-lite.json │ ├── stringzilla.json │ ├── strong-type.json │ ├── stronk.json │ ├── strtk.json │ ├── structopt.json │ ├── stx.json │ ├── stxxl.json │ ├── subversion.json │ ├── suitesparse-amd.json │ ├── suitesparse-btf.json │ ├── suitesparse-camd.json │ ├── suitesparse-ccolamd.json │ ├── suitesparse-cholmod.json │ ├── suitesparse-colamd.json │ ├── suitesparse-config.json │ ├── suitesparse-cxsparse.json │ ├── suitesparse-graphblas.json │ ├── suitesparse-klu.json │ ├── suitesparse-lagraph.json │ ├── suitesparse-ldl.json │ ├── suitesparse-mongoose.json │ ├── suitesparse-paru.json │ ├── suitesparse-rbio.json │ ├── suitesparse-spex.json │ ├── suitesparse-spqr.json │ ├── suitesparse-umfpack.json │ ├── suitesparse.json │ ├── sundials.json │ ├── superglu.json │ ├── superlu.json │ ├── supernovas.json │ ├── sushant-wayal-stringhash.json │ ├── svt-av1.json │ ├── swenson-sort.json │ ├── symengine.json │ ├── syscalls-cpp.json │ ├── systemc.json │ └── szip.json ├── t-/ │ ├── tabulate.json │ ├── tacopie.json │ ├── taglib.json │ ├── talib.json │ ├── tanakh-cmdline.json │ ├── taocpp-json.json │ ├── tap-windows6.json │ ├── task-thread-pool.json │ ├── taskflow.json │ ├── tbb.json │ ├── tcb-span.json │ ├── tcl.json │ ├── tclap.json │ ├── tcp-pubsub.json │ ├── tdlib.json │ ├── tdscpp.json │ ├── teemo.json │ ├── telnetpp.json │ ├── tensorflow-cc.json │ ├── tensorflow-common.json │ ├── tensorflow.json │ ├── tensorpipe.json │ ├── termcolor.json │ ├── tesseract.json │ ├── tevclient.json │ ├── tfhe.json │ ├── tgbot-cpp.json │ ├── tgc.json │ ├── tgui.json │ ├── theia.json │ ├── thermadiag-seq.json │ ├── think-cell-range.json │ ├── thomasmonkman-filewatch.json │ ├── thor.json │ ├── thorvg.json │ ├── threadpool.json │ ├── thrift.json │ ├── tidy-html5.json │ ├── tiff.json │ ├── tiledb.json │ ├── tinkerforge.json │ ├── tiny-aes-c.json │ ├── tiny-bignum-c.json │ ├── tiny-dnn.json │ ├── tiny-optional.json │ ├── tiny-process-library.json │ ├── tiny-regex-c.json │ ├── tinycbor.json │ ├── tinycolormap.json │ ├── tinycthread.json │ ├── tinydir.json │ ├── tinyexif.json │ ├── tinyexpr.json │ ├── tinyexr.json │ ├── tinyfiledialogs.json │ ├── tinyformat.json │ ├── tinyfsm.json │ ├── tinygltf.json │ ├── tinynpy.json │ ├── tinyobjloader.json │ ├── tinyorm.json │ ├── tinyply.json │ ├── tinyproto.json │ ├── tinyspline.json │ ├── tinythread.json │ ├── tinytiff.json │ ├── tinytoml.json │ ├── tinyutf8.json │ ├── tinyxml.json │ ├── tinyxml2.json │ ├── tl-expected.json │ ├── tl-function-ref.json │ ├── tl-generator.json │ ├── tl-optional.json │ ├── tl-ranges.json │ ├── tlx.json │ ├── tmx.json │ ├── tmxlite.json │ ├── tmxparser.json │ ├── tobias-loew-flags.json │ ├── toml11.json │ ├── tomlplusplus.json │ ├── tomsolver.json │ ├── tool-meson.json │ ├── torch-th.json │ ├── tracy.json │ ├── transwarp.json │ ├── trantor.json │ ├── tre.json │ ├── tree-similarity.json │ ├── tree-sitter-c.json │ ├── tree-sitter-cli.json │ ├── tree-sitter.json │ ├── treehh.json │ ├── treehopper.json │ ├── triangle.json │ ├── trianglemeshdistance.json │ ├── triton.json │ ├── trompeloeil.json │ ├── try-catcher.json │ ├── tsl-array-hash.json │ ├── tsl-hat-trie.json │ ├── tsl-hopscotch-map.json │ ├── tsl-ordered-map.json │ ├── tsl-sparse-map.json │ ├── ttauri.json │ ├── tuplet.json │ ├── turbobase64.json │ ├── tvision.json │ ├── tweeny.json │ ├── type-lite.json │ ├── type-safe.json │ └── typecast-ai.json ├── u-/ │ ├── uchardet.json │ ├── ucoro.json │ ├── udt.json │ ├── umock-c.json │ ├── unarr.json │ ├── uni-algo.json │ ├── unicorn-lib.json │ ├── unicorn.json │ ├── unimail-cpp-sdk.json │ ├── units.json │ ├── unittest-cpp.json │ ├── unixodbc.json │ ├── unleash-client-cpp.json │ ├── unordered-dense.json │ ├── unqlite.json │ ├── unrar.json │ ├── upa-url.json │ ├── upb.json │ ├── urdfdom-headers.json │ ├── urdfdom.json │ ├── urho3d.json │ ├── uriparser.json │ ├── usbmuxd.json │ ├── usd.json │ ├── usearch.json │ ├── usockets.json │ ├── usrsctp.json │ ├── utf8-range.json │ ├── utf8h.json │ ├── utf8proc.json │ ├── utfcpp.json │ ├── utfz.json │ ├── uthash.json │ ├── uthenticode.json │ ├── uvatlas.json │ ├── uvw.json │ └── uwebsockets.json ├── v-/ │ ├── v-hacd.json │ ├── v8.json │ ├── valijson.json │ ├── value-ptr-lite.json │ ├── vamp-sdk.json │ ├── vanillapdf.json │ ├── variant-lite.json │ ├── vbs-enclave-tooling-codegen.json │ ├── vc.json │ ├── vcglib.json │ ├── vcpkg-boost.json │ ├── vcpkg-cmake-config.json │ ├── vcpkg-cmake-get-vars.json │ ├── vcpkg-cmake.json │ ├── vcpkg-get-python-packages.json │ ├── vcpkg-get-python.json │ ├── vcpkg-gfortran.json │ ├── vcpkg-gn.json │ ├── vcpkg-make.json │ ├── vcpkg-msbuild.json │ ├── vcpkg-pkgconfig-get-modules.json │ ├── vcpkg-qmake.json │ ├── vcpkg-tool-bazel.json │ ├── vcpkg-tool-castxml.json │ ├── vcpkg-tool-gn.json │ ├── vcpkg-tool-gyp-next.json │ ├── vcpkg-tool-gyp-nss.json │ ├── vcpkg-tool-lessmsi.json │ ├── vcpkg-tool-meson.json │ ├── vcpkg-tool-mozbuild.json │ ├── vcpkg-tool-ninja.json │ ├── vcpkg-tool-nodejs.json │ ├── vcpkg-tool-python2.json │ ├── vcpkg-tool-tree-sitter.json │ ├── vectorclass.json │ ├── vectorscan.json │ ├── veigar.json │ ├── velodyne-decoder.json │ ├── verdict.json │ ├── via-httplib.json │ ├── vili.json │ ├── vincentlaucsb-csv-parser.json │ ├── visit-struct.json │ ├── vit-vit-ctpl.json │ ├── vk-bootstrap.json │ ├── vkfft.json │ ├── vladimirshaleev-ipaddress.json │ ├── vlfeat.json │ ├── vlpp.json │ ├── vmaware-vm-detection.json │ ├── volk.json │ ├── voro.json │ ├── vowpal-wabbit.json │ ├── vs-yasm.json │ ├── vsg.json │ ├── vsgimgui.json │ ├── vsgqt.json │ ├── vsgxchange.json │ ├── vst3sdk.json │ ├── vtk-compile-tools.json │ ├── vtk-dicom.json │ ├── vtk-m.json │ ├── vtk.json │ ├── vulkan-extensionlayer.json │ ├── vulkan-headers.json │ ├── vulkan-hpp.json │ ├── vulkan-loader.json │ ├── vulkan-memory-allocator-hpp.json │ ├── vulkan-memory-allocator.json │ ├── vulkan-sdk-components.json │ ├── vulkan-tools.json │ ├── vulkan-utility-libraries.json │ ├── vulkan-validationlayers.json │ ├── vulkan.json │ ├── vvenc.json │ └── vxl.json ├── w-/ │ ├── wabt.json │ ├── wampcc.json │ ├── wangle.json │ ├── wasmedge.json │ ├── wavelib.json │ ├── wavpack.json │ ├── wayland-protocols.json │ ├── wayland.json │ ├── wcslib.json │ ├── webcraft.json │ ├── websocketpp.json │ ├── webthing-cpp.json │ ├── webui.json │ ├── webview2.json │ ├── wepoll.json │ ├── wg21-linear-algebra.json │ ├── wg21-sg14.json │ ├── whereami.json │ ├── whisper-cpp.json │ ├── wiiuse.json │ ├── wil.json │ ├── wildcards.json │ ├── wildmidi.json │ ├── wincrypt.json │ ├── winlamb.json │ ├── winpcap.json │ ├── winpixevent.json │ ├── winpty.json │ ├── winreg.json │ ├── winsock2.json │ ├── winsparkle.json │ ├── wintoast.json │ ├── wmipp.json │ ├── woff2.json │ ├── wolf-midi.json │ ├── wolfmqtt.json │ ├── wolfssl.json │ ├── wolftpm.json │ ├── wordnet.json │ ├── workflow-win.json │ ├── workflow.json │ ├── wpilib.json │ ├── wren.json │ ├── wt.json │ ├── wtl.json │ ├── wxchartdir.json │ ├── wxcharts.json │ ├── wxwidgets.json │ └── wyhash.json ├── x-/ │ ├── x-plane.json │ ├── x264.json │ ├── x265.json │ ├── x86-simd-sort.json │ ├── xalan-c.json │ ├── xapian.json │ ├── xaudio2redist.json │ ├── xbitmaps.json │ ├── xbyak.json │ ├── xcb-image.json │ ├── xcb-keysyms.json │ ├── xcb-proto.json │ ├── xcb-render-util.json │ ├── xcb-util-errors.json │ ├── xcb-util-m4.json │ ├── xcb-util-wm.json │ ├── xcb-util.json │ ├── xcb.json │ ├── xdigest.json │ ├── xerces-c.json │ ├── xeus.json │ ├── xframe.json │ ├── xlnt.json │ ├── xlsxio.json │ ├── xmlsec.json │ ├── xmsh.json │ ├── xnnpack.json │ ├── xorg-macros.json │ ├── xorstr.json │ ├── xpack.json │ ├── xproperty.json │ ├── xproto.json │ ├── xqilla.json │ ├── xsimd.json │ ├── xtensor-blas.json │ ├── xtensor-fftw.json │ ├── xtensor-io.json │ ├── xtensor.json │ ├── xtl.json │ ├── xtrans.json │ └── xxhash.json ├── y-/ │ ├── yajl.json │ ├── yalantinglibs.json │ ├── yaml-cpp.json │ ├── yandex-disk-cpp-client.json │ ├── yara.json │ ├── yas.json │ ├── yasm-tool-helper.json │ ├── yasm-tool.json │ ├── yasm.json │ ├── yato.json │ ├── yoctolib.json │ ├── yoga.json │ ├── yomm2.json │ └── yyjson.json └── z-/ ├── z3.json ├── z4kn4fein-semver.json ├── z85.json ├── zeroc-ice.json ├── zeromq.json ├── zfp.json ├── zimpl.json ├── zint.json ├── zix.json ├── zkpp.json ├── zlib-ng.json ├── zlib.json ├── zlmediakit.json ├── zoe.json ├── zookeeper.json ├── zopfli.json ├── zpp-bits.json ├── zserge-webview.json ├── zstd.json ├── zstr.json ├── ztd-cuneicode.json ├── ztd-encoding-tables.json ├── ztd-idk.json ├── ztd-platform.json ├── ztd-static-containers.json ├── ztd-text.json ├── zug.json ├── zxc.json ├── zxing-cpp.json ├── zycore.json ├── zydis.json ├── zyre.json └── zziplib.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ * -text ports/** -linguist-detectable # Declare files that will always have LF line endings on checkout. scripts/ci.baseline.txt text eol=lf ================================================ FILE: .github/ISSUE_TEMPLATE/00-report-package-build-failure.yml ================================================ name: Report package build failure description: Let us know about build failures in ports. title: "[] build failure" labels: ["category:port-bug"] body: - type: markdown attributes: value: | ⚠ Please use the generated issue template instead to report a port build failure. ⚠
See [here](https://github.com/microsoft/vcpkg/issues/30604) how to properly report an issue with the latest vcpkg version: - type: input id: os attributes: label: Operating system placeholder: "e.g. Windows/Linux etc..." validations: required: true - type: input id: compiler attributes: label: Compiler placeholder: "GCC, Clang, MSVC, MinGW, ..." validations: required: false - type: textarea id: reproduce attributes: label: Steps to reproduce the behavior placeholder: "`./vcpkg install xxxx`" render: "Shell" validations: required: true - type: textarea id: logs attributes: label: Failure logs description: The console output and all the logs mentioned in the output. validations: required: true - type: textarea id: context attributes: label: Additional context description: Add any other context about the problem here, such as what you have already tried to resolve the issue. validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/01-request-a-new-port.yml ================================================ name: Request a new port description: Request a new port/library that vcpkg should support. title: "[New Port Request] " labels: ["category:new-port", "info:good-first-issue"] body: - type: input id: name attributes: label: Library name validations: required: true - type: input id: description attributes: label: Library description validations: required: false - type: input id: url attributes: label: Source repository URL validations: required: true - type: input id: homepage attributes: label: Project homepage (if different from the source repository) validations: required: false - type: textarea id: additional-info attributes: label: Anything else that is useful to know when adding (such as optional features the library may have that should be included) validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/02-request-an-update-to-an-existing-port.yml ================================================ name: Request an update to an existing port description: Let us know about a new version of a library we should pick up. title: "[] update to " labels: ['category:port-update'] body: - type: input id: name attributes: label: Library name validations: required: true - type: input id: version attributes: label: New version number validations: required: true - type: textarea id: information attributes: label: Other information that may be useful (release notes, etc...) validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/03-request-a-feature-or-improvement-to-a-port.yml ================================================ name: Request a feature or improvement to a port description: Suggest an improvement to one the the ports/libraries in vcpkg. title: "[] " labels: ["category:port-feature"] body: - type: textarea attributes: label: Is your feature request related to a problem? Please describe. placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] validations: required: true - type: textarea attributes: label: Proposed solution placeholder: A clear and concise description of what you want to happen. validations: required: true - type: textarea attributes: label: Describe alternatives you've considered placeholder: A clear and concise description of any alternative solutions or features you've considered if applicable. validations: required: false - type: textarea attributes: label: Additional context placeholder: Add any other context or screenshots about the feature request here. validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/04-request-a-feature-or-improvement.yml ================================================ name: Request a feature or improvement description: Suggest an improvement to vcpkg. title: '' labels: ["category:vcpkg-feature"] body: - type: textarea attributes: label: Is your feature request related to a problem? Please describe. placeholder: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] validations: required: true - type: textarea attributes: label: Proposed solution placeholder: A clear and concise description of what you want to happen. validations: required: true - type: textarea attributes: label: Describe alternatives you've considered placeholder: A clear and concise description of any alternative solutions or features you've considered. validations: required: false - type: textarea attributes: label: Additional context placeholder: Add any other context or screenshots about the feature request here. validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/05-other-type-of-bug-report.md ================================================ --- name: Other type of bug report about: Let us know about an issues that does not fit into any of the other issues. types title: '' labels: '' assignees: '' --- **Describe the bug** A clear and concise description of what the bug is. **Environment** - OS: [e.g. Windows/Linux etc...] - Compiler: revision **To Reproduce** Steps to reproduce the behavior: 1. ./vcpkg install xxxx 2. See error Repro code when **Expected behavior** A clear and concise description of what you expected to happen. **Failure logs** -(please attached failure logs) **Additional context** Add any other context about the problem here. ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ blank_issues_enabled: true contact_links: - name: I have a question url: https://github.com/microsoft/vcpkg/discussions about: Please ask and answer questions here. ================================================ FILE: .github/pull_request_template.md ================================================ ================================================ FILE: .github/workflows/check_issues.yml ================================================ name: Check For Common Issues on: issues: types: - opened jobs: check-for-common-issues: runs-on: ubuntu-latest permissions: issues: write steps: - uses: actions/github-script@v8 with: script: | let issue_query = { issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo }; let issue = await github.rest.issues.get(issue_query) let commentLabelClose = async (comment, label) => { await github.rest.issues.removeAllLabels(issue_query); await github.rest.issues.setLabels({...issue_query, labels: [label]}); await github.rest.issues.createComment({...issue_query, body: comment}); await github.rest.issues.update({...issue_query, state: "closed"}); } if (issue.data.body === null || issue.data.body.trim() === "") { let body = "Please provide a description of the issue you are experiencing. If you are reporting a build failure, please see #30604 for how to properly report it."; return await commentLabelClose(body, "requires:more-information"); } let issue_body = issue.data.body.replaceAll("\r\n", "\n"); // missing-windows-sdk-issue let reg = /RC Pass 1: command "rc .*" failed \(exit code 0\) with the following output:/; if (reg.test(issue_body)){ let body = "Thanks for posting this issue. Please make sure you have the following installed.\n" + "- Visual Studio Desktop development with C++.\n" + "- Windows 10 SDK or Windows 11 SDK."; return await commentLabelClose(body, "category:question"); } // msys2 download fails => old vcpkg version reg = /error: https:\/\/repo\.msys2\.org\/.*: failed: status code 404/; if (reg.test(issue_body)){ let body = "Try updating your vcpkg version via `git pull` to resolve this issue. MSYS2 downloads are removed from the upstream servers from time to time, so using an up-to-date vcpkg version is necessary." return await commentLabelClose(body, "category:question"); } // https://gitlab.freedesktop.org maintenance reg = /error: https:\/\/gitlab\.freedesktop\.org\/.*: failed: status code 503/; if (reg.test(issue_body)){ let body = "gitlab.freedesktop.org is undergoing maintenance until 2025-03-22. Tracking issue https://github.com/microsoft/vcpkg/issues/44429" return await commentLabelClose(body, "category:question"); } regs = [] // Issue text is: Copy issue body from .../issue_body.md regs.push( /^Copy issue body from .*issue_body.md$/ ); // Issue to short like #36592 or #36668 regs.push( /^error: building.* BUILD_FAILED\r\nElapsed time.*\r\nPlease ensure.*(\r\nThen check .*\r\n.*)?$/ ); // Issues with only the default error message like #41813 regs.push( /^error: building.* BUILD_FAILED\r\n[\s\S]*issue_body.md$/ ); if (regs.some(reg => reg.test(issue_body))) { let body = "Please see #30604 for how to report a build failure." return await commentLabelClose(body, "requires:more-information"); } // pkg-config/ not found issues like #36011 reg = /CMake Error at scripts\/cmake\/vcpkg_find_acquire_program.*\n(.*Please install it via your package manager:[\s\S]+)Call Stack/; match = issue_body.match(reg) if (match){ let body = "From the log:\n```\n" + match[1] + "```\n" return await commentLabelClose(body, "category:question"); } // MSVC internal compiler error like #36628 if (issue_body.indexOf("fatal error C1001: Internal compiler error") !== -1){ let body = "The build failed due to an internal compiler error. Please update your compiler or revert to an old version." return await commentLabelClose(body, "category:question"); } // configure: error: 'autoconf-archive' is missing like #37013 if (issue_body.indexOf("configure: error: 'autoconf-archive' is missing") !== -1){ let body = "Please install `autoconf-archive` via `brew install autoconf-archive` (macos) or `sudo apt-get install autoconf-archive` (linux)" return await commentLabelClose(body, "category:question"); } // Wrong formatted issues like #36086 const containsCopyHint = issue_body.indexOf("Copy issue body from") !== -1 || issue_body.indexOf("%2Fissue_body.md") !== -1; if (containsCopyHint && issue_body.indexOf("```") === -1){ let body = "Please see #30604 for how to properly report a build failure." return await github.rest.issues.createComment({...issue_query, body: body}); } ================================================ FILE: .github/workflows/check_tools_sha.yml ================================================ name: Check vcpkg Tools SHA on: pull_request: paths: - "scripts/vcpkg-tools.json" permissions: contents: read jobs: check-tools-sha: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Bootstrap vcpkg run: ./bootstrap-vcpkg.sh - name: Run vcpkg x-check-tools-sha run: vcpkg z-check-tools-sha scripts/vcpkg-tools.json || echo "Run 'vcpkg z-check-tools-sha scripts/vcpkg-tools.json --fix' to update the SHA values" ================================================ FILE: .github/workflows/codeql.yml ================================================ name: "CodeQL" on: push: branches: [ "master" ] schedule: - cron: '26 0 * * 0' workflow_dispatch: jobs: analyze: name: Analyze (${{ matrix.language }}) runs-on: 'ubuntu-latest' permissions: # required for all workflows security-events: write # required to fetch internal or private CodeQL packs packages: read strategy: fail-fast: false matrix: include: - language: actions build-mode: none - language: c-cpp build-mode: manual - language: python build-mode: none steps: - name: Checkout repository uses: actions/checkout@v6 - name: Initialize CodeQL uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} - if: matrix.build-mode == 'manual' shell: bash run: | ./bootstrap-vcpkg.sh # This list of ports which are meaningful for CodeQL to analyze because they have actual code in vcpkg's repo # See https://github.com/search?q=repo%3Amicrosoft%2Fvcpkg++language%3AC+&type=code # See https://github.com/search?q=repo%3Amicrosoft%2Fvcpkg++language%3AC%2B%2B&type=code ./vcpkg install alac-decoder breakpad[tools] gettimeofday modp-base64 - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}" ================================================ FILE: .github/workflows/stale.yml ================================================ name: 'Close stale issues and PRs' on: schedule: - cron: '30 1 * * *' permissions: issues: write jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v8 with: stale-issue-message: 'This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 28 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment.' any-of-labels: 'category:question,requires:repro,requires:more-information' days-before-issue-stale: 28 days-before-pr-stale: -1 days-before-close: 14 - uses: actions/stale@v8 with: stale-issue-message: "This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 60 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment." any-of-labels: 'category:new-port' close-issue-label: 'info:new-port-unresolved' days-before-issue-stale: 60 days-before-pr-stale: -1 days-before-close: 14 - uses: actions/stale@v8 with: stale-issue-message: "This is an automated message. Per our repo policy, stale issues get closed if there has been no activity in the past 180 days. The issue will be automatically closed in 14 days. If you wish to keep this issue open, please add a new comment." exempt-issue-labels: 'no-stale,category:new-port,category:question,requires:repro,requires:more-information' days-before-issue-stale: 180 days-before-pr-stale: -1 days-before-close: 14 operations-per-run: 50 ================================================ FILE: .github/workflows/untrustedPR.yml ================================================ name: Check For Common Mistakes permissions: contents: read on: pull_request: jobs: Check: runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v6 with: # fetch-depth 50 tries to ensure we capture the whole history of the branch fetch-depth: 50 - name: Bootstrap run: ./bootstrap-vcpkg.sh - name: Formatting run: | git config user.email github-actions git config user.name github-actions@github.com git --version unset VCPKG_ROOT git diff --name-status --merge-base HEAD^ HEAD --diff-filter=MAR -- '*portfile.cmake' | sed 's/[MAR]\t*//' > .github-pr.changed-portfiles if [ -s .github-pr.changed-portfiles ]; then (grep -n -H -E '(vcpkg_apply_patches|vcpkg_build_msbuild|vcpkg_extract_source_archive_ex)' $(cat .github-pr.changed-portfiles) || true) > .github-pr.deprecated-function; else touch .github-pr.deprecated-function; fi if [ -s .github-pr.changed-portfiles ]; then (grep -n -H -E '(vcpkg_install_cmake|vcpkg_build_cmake|vcpkg_configure_cmake|vcpkg_fixup_cmake_targets)' $(cat .github-pr.changed-portfiles) || true) > .github-pr.deprecated-cmake; else touch .github-pr.deprecated-cmake; fi git diff --name-status --merge-base HEAD^ HEAD --diff-filter=MAR -- '*vcpkg.json' | sed 's/[MAR]\t*//' > .github-pr.changed-manifest-files cat .github-pr.changed-manifest-files | while read filename; do grep -q -E '"license": ' "$filename" || echo "$filename" || true; done > .github-pr.missing-license cat .github-pr.changed-manifest-files | while read filename; do grep -n -H '"license": "' "$filename" || true; done > .github-pr.all-licenses cat .github-pr.all-licenses | while read license; do \ location=$(echo $license | grep -oP '^.*?:[0-9]+:'); \ echo $license | \ grep -oiP '(AGPL-1\.0|AGPL-3\.0|BSD-2-Clause-FreeBSD|BSD-2-Clause-NetBSD|bzip2-1\.0\.5|eCos-2\.0|GFDL-1\.1|GFDL-1\.2|GFDL-1\.3|GPL-1\.0|GPL-1\.0\+|GPL-2\.0|GPL-2\.0\+|GPL-2\.0-with-autoconf-exception|GPL-2\.0-with-bison-exception|GPL-2\.0-with-classpath-exception|GPL-2\.0-with-font-exception|GPL-2\.0-with-GCC-exception|GPL-3\.0|GPL-3\.0\+|GPL-3\.0-with-autoconf-exception|GPL-3\.0-with-GCC-exception|LGPL-2\.0|LGPL-2\.0\+|LGPL-2\.1|LGPL-2\.1\+|LGPL-3\.0|LGPL-3\.0\+|Nunit|StandardML-NJ|wxWindows)(?=[ ")&|,])' | \ while read id; do \ echo "$location$id"; \ done || true; \ done > .github-pr.deprecated-license ./vcpkg format-manifest --all --convert-control ./vcpkg format-feature-baseline scripts/ci.baseline.txt ./vcpkg format-feature-baseline scripts/ci.feature.baseline.txt git diff > .github-pr.format-manifest git add -u git commit -m "tmp" --allow-empty # HEAD^^ refers to the "main" commit that was merged into git checkout HEAD^^ -- versions git restore --staged versions ./vcpkg x-add-version --all --skip-formatting-check | grep 'instead of "version-string"' | tee .github-pr.version-string.out || true git checkout -- versions ./vcpkg x-add-version --all --skip-formatting-check --skip-version-format-check | tee .github-pr.x-add-version.out || true git diff > .github-pr.x-add-version.diff git reset HEAD~ --mixed - name: Generate Reply uses: actions/github-script@v8 with: script: | const { promises: fs } = require('fs') const add_version = (await fs.readFile('.github-pr.x-add-version.diff', 'utf8')).trim() const add_version_out = (await fs.readFile('.github-pr.x-add-version.out', 'utf8')).trim() const version_string_out = (await fs.readFile('.github-pr.version-string.out', 'utf8')).trim() const format = (await fs.readFile('.github-pr.format-manifest', 'utf8')).trim() const deprecated_function = (await fs.readFile('.github-pr.deprecated-function', 'utf8')).split('\n').filter(s => s.length > 0) const deprecated_cmake = (await fs.readFile('.github-pr.deprecated-cmake', 'utf8')).split('\n').filter(s => s.length > 0) const missing_license = (await fs.readFile('.github-pr.missing-license', 'utf8')).trim() const deprecated_license = (await fs.readFile('.github-pr.deprecated-license', 'utf8')).split('\n').filter(s => s.length > 0) let approve = true; if (format !== "") { var format_output = ''; format_output += "All vcpkg.json files and baselines must be formatted. To fix this problem, run:\n"; format_output += "./vcpkg format-manifest ports/*/vcpkg.json\n"; format_output += "./vcpkg format-feature-baseline scripts/ci.baseline.txt\n"; format_output += "./vcpkg format-feature-baseline scripts/ci.feature.baseline.txt\n"; format_output += "\n"; format_output += "It should make the following changes:"; format_output += "```diff\n" + format + "\n```"; core.error(format_output); approve = false; } if (add_version_out !== "") { var add_version_output = ''; add_version_output += "PRs must add only one version, and must not modify any published versions.\n"; add_version_output += "When making any changes to a library, the version or port-version in vcpkg.json must be modified, and the version database updated.\n"; add_version_output += "Making the following changes will fix this problem:"; add_version_output += "```diff\n" + add_version_out + "\n```"; core.error(add_version_output); approve = false; } if (version_string_out !== "") { core.warning(version_string_out); } if (add_version !== "") { var update_version_db_output = ''; update_version_db_output += "After committing all other changes, the version database must be updated.\n"; update_version_db_output += "This can be done by running the following commands after committing your changes:\n" update_version_db_output += "\n" update_version_db_output += "git add -u && git commit\n" update_version_db_output += "git checkout ${{ github.event.pull_request.base.sha }} -- versions\n" update_version_db_output += "./vcpkg x-add-version --all" core.error(update_version_db_output); approve = false; } if (deprecated_function.length > 0) { var deprecated_output = ''; deprecated_output += "**You have modified or added at least one portfile where deprecated functions are used**\n" deprecated_output += "If you feel able to do so, please consider migrating them to the new functions.\n"; core.warning(deprecated_output); let deprecated_functions = { vcpkg_extract_source_archive_ex: 'vcpkg_extract_source_archive https://learn.microsoft.com/en-us/vcpkg/maintainers/functions/vcpkg_extract_source_archive', vcpkg_build_msbuild: 'vcpkg_install_msbuild https://learn.microsoft.com/en-us/vcpkg/maintainers/functions/vcpkg_install_msbuild', vcpkg_apply_patches: 'the PATCHES arguments to the \"extract\" helpers (for example, vcpkg_from_github() (https://learn.microsoft.com/en-us/vcpkg/maintainers/functions/vcpkg_from_github))', }; for (let line of deprecated_function) { // line has the format: :: 0) { var deprecated_output = ''; deprecated_output += "You have modified or added at least one portfile where deprecated functions are used.\n" deprecated_output += "These functions have been forbidden in vcpkg, please migrating them to the new functions.\n"; deprecated_output += "In the ports that use the new function vcpkg_cmake_configure, vcpkg_cmake_install, vcpkg_cmake_build or vcpkg_cmake_config_fixup, you have to add the corresponding dependencies:\n"; deprecated_output += "```json\n"; deprecated_output += '{\n "name": "vcpkg-cmake",\n "host": true\n},\n' deprecated_output += '{\n "name": "vcpkg-cmake-config",\n "host": true\n}\n'; deprecated_output += "```\n"; core.error(deprecated_output); let deprecated_functions = { vcpkg_install_cmake: 'vcpkg_cmake_install (from port vcpkg-cmake)', vcpkg_install_cmake: 'vcpkg_cmake_install (from port vcpkg-cmake)', vcpkg_build_cmake: 'vcpkg_cmake_build (from port vcpkg-cmake)', vcpkg_configure_cmake: 'vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)', vcpkg_fixup_cmake_targets: 'vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)', }; for (let line of deprecated_cmake) { // line has the format: :: 0) { core.summary.addRaw('You have modified or added at least one vcpkg.json where you should check the \"license\" field.'); core.summary.addEOL(); } if (missing_license !== "") { license_output = 'If you feel able to do so, please consider adding a "license" field to the following files:\n' license_output += missing_license license_output += "\n\nValid values for the license field can be found at https://learn.microsoft.com/vcpkg/reference/vcpkg-json#license\n\n" core.warning(license_output); } for (let line of deprecated_license) { [file, line_number, match] = line.split(':'); var license_output = `SPDX deprecated license identifier ${match}.`; license_output += "\nIf you feel able to do so, please consider replacing it." license_output += "\nUpdated license identifiers can be found at https://spdx.org/licenses/." core.notice(license_output, {file, startLine: line_number}); } core.summary.write(); if (!approve) { process.exitCode = 1; } ================================================ FILE: .gitignore ================================================ ############################################################ # Visual Studio - Start ############################################################ ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. # User-specific files *.suo *.user *.userosscache *.sln.docstates /vcpkg.json /vcpkg-configuration.json # fuzzing sync_dir* # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ # Ignore the executable /vcpkg /vcpkg.exe # Visual Studio 2015 cache/options directory .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUNIT *.VisualState.xml TestResult.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # DNX project.lock.json project.fragment.lock.json artifacts/ *_i.c *_p.c *_i.h *.ilk *.meta *.obj *.pch *.pdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # JustCode is a .NET coding add-in .JustCode # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # TODO: Comment the next line if you want to checkin your web deploy settings # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore **/packages/* # except build/, which is used as an MSBuild target. !**/packages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/packages/repositories.config # NuGet v3's project.json files produces more ignoreable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.pfx *.publishsettings node_modules/ orleans.codegen.cs # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm # SQL Server files *.mdf *.ldf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # JetBrains Rider .idea/ *.sln.iml # CodeRush .cr/ # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc ############################################################ # Visual Studio - End ############################################################ ############################################################ # vcpkg - Start ############################################################ .vscode/ *.code-workspace /buildtrees/ /build*/ /downloads/ /installed*/ /vcpkg_installed*/ /packages/ /scripts/buildsystems/tmp/ #ignore custom triplets /triplets/* #add vcpkg-designed triplets back in !/triplets/arm-uwp.cmake !/triplets/arm64-windows.cmake !/triplets/x64-linux.cmake !/triplets/x64-osx.cmake !/triplets/x64-uwp.cmake !/triplets/x64-windows-static.cmake !/triplets/x64-windows.cmake !/triplets/x86-windows.cmake !/triplets/community !/triplets/community/** *.exe *.zip ############################################################ # vcpkg - End ############################################################ vcpkg.disable-metrics archives .DS_Store prefab/ *.swp ################### # Codespaces ################### pythonenv3.8/ .venv/ ================================================ FILE: .vcpkg-root ================================================ ================================================ FILE: CONTRIBUTING.md ================================================ # Contribution Guidelines Vcpkg is a community driven effort to build a productive and robust ecosystem of native libraries - your contributions are invaluable! ## Issues The easiest way to contribute is by reporting issues with either `vcpkg.exe` or an existing package on [GitHub](https://github.com/Microsoft/vcpkg). When reporting an issue with `vcpkg.exe`, make sure to clearly state: - The machine setup: "I'm using Windows 10 Anniversary Update. My machine is using the fr-fr locale. I successfully ran 'install boost'." - The steps to reproduce: "I run 'vcpkg list'" - The outcome you expected: "I expected to see 'boost:x86-windows'" - The actual outcome: "I get no output at all" or "I get a crash dialog" When reporting an issue with a package, make sure to clearly state: - The machine setup (as above) - What package and version you're building: "opencv 3.1.0" - Any relevant error logs from the build process. ## Pull Requests We are happy to accept pull requests for fixes, features, new packages, and updates to existing packages. In order to avoid wasting your time, we highly encourage opening an issue to discuss whether the PR you're thinking about making will be acceptable. This is doubly true for features and new packages. ### New package Guidelines We're glad you're interested in submitting a new package! Here are some guidelines to help you author an excellent portfile: - Avoid functional patches. Patches should be considered a last resort to implement compatibility when there's no other way. - When patches can't be avoided, do not modify the default behavior. The ideal lifecycle of a patch is to get merged upstream and no longer be needed. Try to keep this goal in mind when deciding how to patch something. - Prefer to use the `vcpkg_xyz` functions over raw `execute_command` calls. This makes long term maintenance easier when new features (such as custom compiler flags or generators) are added. ## Legal You will need to complete a Contributor License Agreement (CLA) before your pull request can be accepted. This agreement testifies that you are granting us permission to use the source code you are submitting, and that this work is being submitted under appropriate license that we can use it. You can complete the CLA by going through the steps at https://cla.microsoft.com. Once we have received the signed CLA, we'll review the request. You will only need to do this once. ================================================ FILE: CONTRIBUTING_pt.md ================================================ # Diretrizes de Contribuição Vcpkg é um esforço da comunidade para construir um ecossistema produtivo e robusto de bibliotecas nativas - suas contribuições são inestimáveis! ## Problemas (issues) A maneira mais fácil de contribuir é relatando problemas com `vcpkg.exe` ou um pacote existente no [GitHub](https://github.com/Microsoft/vcpkg). Ao relatar um problema com `vcpkg.exe`, certifique-se de indicar claramente: - A configuração da máquina: "Estou usando a Atualização de Aniversário do Windows 10. Minha máquina está usando a localidade fr-fr. Executei com sucesso o 'instal boost'." - As etapas para reproduzir: "I run 'vcpkg list'" - O resultado esperado: "Eu esperava ver 'boost:x86-windows'" - O resultado real: "Não recebo nenhuma saída" ou "Recebo uma caixa de diálogo de travamento" Ao relatar um problema com um pacote, certifique-se de indicar claramente: - A configuração da máquina (como acima) - Qual pacote e versão você está construindo: "opencv 3.1.0" - Quaisquer logs de erro relevantes do processo de compilação. ## Pull Requests Estamos felizes em aceitar solicitações de correções, recursos, novos pacotes e atualizações para pacotes existentes. Para evitar desperdício de tempo, recomendamos abrir um tópico para discutir se o PR que você está pensando em fazer será aceitável. Isso é duplamente verdadeiro para recursos e novos pacotes. ### Diretrizes de novos pacotes Estamos felizes por você estar interessado em enviar um novo pacote! Aqui estão algumas diretrizes para ajudá-lo a criar um excelente portfile: - Evite patches funcionais. Os patches devem ser considerados um último recurso para implementar a compatibilidade quando não houver outra maneira. - Quando os patches não puderem ser evitados, não modifique o comportamento padrão. O ciclo de vida ideal de um patch é ser mesclado no upstream e não ser mais necessário. Tente manter esse objetivo em mente ao decidir como corrigir algo. - Prefira usar as funções `vcpkg_xyz` em vez de chamadas brutas `execute_command`. Isso facilita a manutenção de longo prazo quando novos recursos (como sinalizadores de compilador personalizados ou geradores) são adicionados. ## Jurídico Você precisará preencher um Contrato de Licença de Colaborador (CLA) antes que sua solicitação pull possa ser aceita. Este contrato atesta que você está nos concedendo permissão para usar o código-fonte que está enviando e que este trabalho está sendo enviado sob a licença apropriada para que possamos usá-lo. Você pode concluir o CLA seguindo as etapas em . Assim que recebermos o CLA assinado, analisaremos a solicitação. Você só precisará fazer isso uma vez. ================================================ FILE: CONTRIBUTING_zh.md ================================================ # 贡献准则 Vcpkg 是一个尝试由社区驱动,旨在构建一个多产的、健壮的本地库生态系统 - 您的贡献价值不可估量! ## 报告问题 最简单的方法是通过 `vcpkg.exe` 或 [GitHub](https://github.com/Microsoft/vcpkg) 报告已有的包的问题。 当报告 `vcpkg.exe` 的问题时,确保清楚地说明: - 机器设置: “我用的是Windows 10周年更新。 我的机器正位于fr-fr区域。 我成功地运行了'install boost'。” - 复现步骤: “运行 'vcpkg list'” - 预期结果: “我预期看到 'boost:x86-windows'” - 实际结果: “没有输出” 或 “我得到一个崩溃对话框” 当报告包的问题时,一定要清楚地说明: - 机器设置 (上述) - 您正在构建什么包以及它的版本,例如: “opencv 3.1.0” - 构建过程中的任何相关错误日志 ## 贡献 (PR) 我们很乐意接受关于修复、特性、新包和更新现有包的拉取请求。 为了避免浪费您的时间,我们强烈建议您提交一个问题来讨论您想要制作的PR是否能被接受。 对于特性和新包来说也是如此。 ### 新包贡献准则 我们很高兴您有兴趣来提交一个新的包! 这里有一些指导方针来帮助您编写一个优秀的端口文件: - 避免功能补丁。 当没有其他方法时,补丁应该被视为实现兼容性的最后手段。 - 当无法避免补丁时,请不要修改默认行为。 一个补丁的理想生命周期是与上游合并,不再被需要。 在决定如何修补某些内容时,请记住这一目标。 - 相比原始的 `execute_command` 调用,尽量改为通过 `vcpkg_xyz` 函数实现。这使得在添加新特性(如自定义编译器标志或生成器)时更容易进行长期维护。 ## 法律声明 在您的拉取请求被接受之前,您需要完成一个贡献者许可协议 (CLA)。 本协议证明您允许我们使用您提交的源代码,并且本作品是在合适的许可下提交的,我们可以使用它。 您可以通过 https://cla.microsoft.com 上的步骤来完成CLA。 一旦我们收到已签署的CLA,我们将审查请求。 您只需要这样做一次。 ================================================ FILE: CodeQL.yml ================================================ path_classifiers: library: - "buildtrees/libdisasm/src/-87a041f03c.clean/libdisasm/ia32_insn.c" ================================================ FILE: LICENSE.txt ================================================ MIT License Copyright (c) Microsoft Corporation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: NOTICE.txt ================================================ vcpkg uses third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise. In the event that we accidentally failed to list a required notice, please bring it to our attention by posting an issue. THIRD-PARTY SOFTWARE NOTICES AND INFORMATION Do Not Translate or Localize vcpkg incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party materials are set forth below. Microsoft reserved all other rights not expressly granted, whether by implication, estoppel or otherwise. 1. Catch2 %% Catch2 NOTICES, INFORMATION, AND LICENSE BEGIN HERE ========================================= Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ========================================= END OF Catch2 NOTICES, INFORMATION, AND LICENSE ================================================ FILE: NOTICE_pt.txt ================================================ vcpkg usa material de terceiros dos projetos listados abaixo. O aviso de direitos autorais original e a licença sob a qual a Microsoft recebido tal material de terceiros são descritos abaixo. Microsoft reserva-se todos os outros direitos não concedidos expressamente, seja por implicação, preclusão ou de outra forma. No caso de falhamos acidentalmente em listar um aviso necessário, por favor chame nossa atenção postando um problema. AVISOS E INFORMAÇÕES DE SOFTWARE DE TERCEIROS Não traduza ou localize vcpkg incorpora material de terceiros dos projetos listados abaixo. O aviso de direitos autorais original e a licença sob a qual a Microsoft recebeu tais materiais de terceiros são apresentados abaixo. A Microsoft reservou todos os outros direitos não concedidos expressamente, seja por implicação, preclusão ou de outra forma. 1. Catch2 %% Catch2 AVISOS, INFORMAÇÕES E LICENÇA COMEÇAM AQUI =========================================== Boost Software License - Versão 1.0 - 17 de agosto de 2003 A permissão é concedida, gratuitamente, a qualquer pessoa ou organização obter uma cópia do software e da documentação que o acompanha coberta por esta licença (o "Software") para usar, reproduzir, exibir, distribuir, executar e transmitir o Software e preparar trabalhos derivados do Software, e para permitir que terceiros a quem o Software é fornecido fazê-lo, tudo sujeito ao seguinte: Os avisos de direitos autorais no Software e toda esta declaração, incluindo a concessão de licença acima, esta restrição e a seguinte isenção de responsabilidade, devem ser incluídos em todas as cópias do Software, no todo ou em parte, e todos os trabalhos derivados do Software, a menos que tais cópias ou derivados as obras são exclusivamente na forma de código de objeto executável por máquina gerado por um processador de linguagem de origem. O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITAS, INCLUINDO, SEM LIMITAÇÃO, AS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM, TÍTULO E NÃO VIOLAÇÃO. EM NENHUM CASO OS DETENTORES DOS DIREITOS AUTORAIS OU QUALQUER DISTRIBUIDOR DO SOFTWARE SERÃO RESPONSÁVEIS POR QUAISQUER DANOS OU OUTRA RESPONSABILIDADE, SEJA EM CONTRATO, ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRO NEGÓCIOS NO SOFTWARE. =========================================== FIM DOS AVISOS, INFORMAÇÕES E LICENÇA DE Catch2 ================================================ FILE: README.md ================================================ [🌐 Read in a different language](https://learn.microsoft.com/locale/?target=https%3A%2F%2Flearn.microsoft.com%2Fvcpkg%2F) # vcpkg overview vcpkg is a free and open-source C/C++ package manager maintained by Microsoft and the C++ community. Initially launched in 2016 as a tool for assisting developers in migrating their projects to newer versions of Visual Studio, vcpkg has evolved into a cross-platform tool used by developers on Windows, macOS, and Linux. vcpkg has a large collection of open-source libraries and enterprise-ready features designed to facilitate your development process with support for any build and project systems. vcpkg is a C++ tool at heart and is written in C++ with scripts in CMake. It is designed from the ground up to address the unique pain points C/C++ developers experience. This tool and ecosystem are constantly evolving, and we always appreciate contributions! Learn how to start contributing with our [packaging tutorial](https://learn.microsoft.com/vcpkg/get_started/get-started-adding-to-registry) and [maintainer guide](https://learn.microsoft.com/vcpkg/contributing/maintainer-guide). # Get started First, follow one of our quick start guides. Whether you're using CMake, MSBuild, or any other build system, vcpkg has you covered: * [vcpkg with CMake](https://learn.microsoft.com/vcpkg/get_started/get-started) * [vcpkg with MSBuild](https://learn.microsoft.com/vcpkg/get_started/get-started-msbuild) * [vcpkg with other build systems](https://learn.microsoft.com/vcpkg/users/buildsystems/manual-integration) You can also use any editor: * [vcpkg with Visual Studio](https://learn.microsoft.com/vcpkg/get_started/get-started-vs) * [vcpkg with Visual Studio Code](https://learn.microsoft.com/vcpkg/get_started/get-started-vscode) * [vcpkg with CLion]() * [vcpkg with Qt Creator]() If a library you need is not present in the vcpkg registry, [open an issue on the GitHub repository][contributing:submit-issue] or [contribute the package yourself](https://learn.microsoft.com/vcpkg/get_started/get-started-adding-to-registry). After you've gotten vcpkg installed and working, you may wish to [add tab completion to your terminal](https://learn.microsoft.com/vcpkg/commands/integrate#vcpkg-autocompletion). # Use vcpkg Create a [manifest for your project's dependencies](https://learn.microsoft.com/vcpkg/consume/manifest-mode): ```Console vcpkg new --application vcpkg add port fmt ``` Or [install packages through the command line](https://learn.microsoft.com/vcpkg/consume/classic-mode): ```Console vcpkg install fmt ``` Then use one of our available integrations for [CMake](https://learn.microsoft.com/vcpkg/concepts/build-system-integration#cmake-integration), [MSBuild](https://learn.microsoft.com/vcpkg/concepts/build-system-integration#msbuild-integration) or [other build systems](https://learn.microsoft.com/vcpkg/concepts/build-system-integration#manual-integration). For a short description of all available commands, run `vcpkg help`. Run `vcpkg help [topic]` for details on a specific topic. # Key features vcpkg offers powerful features for your package management needs: * [easily integrate with your build system](https://learn.microsoft.com/vcpkg/concepts/build-system-integration) * [control the versions of your dependencies](https://learn.microsoft.com/vcpkg/users/versioning) * [package and publish your own packages](https://learn.microsoft.com/vcpkg/concepts/registries) * [reuse your binary artifacts](https://learn.microsoft.com/vcpkg/users/binarycaching) * [enable offline scenarios with asset caching](https://learn.microsoft.com/vcpkg/concepts/asset-caching) # Contribute vcpkg is an open source project, and is thus built with your contributions. Here are some ways you can contribute: * [Submit issues][contributing:submit-issue] in vcpkg or existing packages * [Submit fixes and new packages][contributing:submit-pr] Please refer to our [mantainer guide](https://learn.microsoft.com/vcpkg/contributing/maintainer-guide) and [packaging tutorial](https://learn.microsoft.com/vcpkg/get_started/get-started-packaging) for more details. This project has adopted the [Microsoft Open Source Code of Conduct][contributing:coc]. For more information see the [Code of Conduct FAQ][contributing:coc-faq] or email [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. [contributing:submit-issue]: https://github.com/microsoft/vcpkg/issues/new/choose [contributing:submit-pr]: https://github.com/microsoft/vcpkg/pulls [contributing:coc]: https://opensource.microsoft.com/codeofconduct/ [contributing:coc-faq]: https://opensource.microsoft.com/codeofconduct/ # Resources * Ports: [Microsoft/vcpkg]() * Source code: [Microsoft/vcpkg-tool]() * Docs: [Microsoft Learn | vcpkg](https://learn.microsoft.com/vcpkg) * Website: [vcpkg.io]() * Email: [vcpkg@microsoft.com]() * Discord: [\#include \'s Discord server](), in the #🌏vcpkg channel * Slack: [C++ Alliance's Slack server](), in the #vcpkg channel # License The code in this repository is licensed under the MIT License. The libraries provided by ports are licensed under the terms of their original authors. Where available, vcpkg places the associated license(s) in the location [`installed//share//copyright`](https://learn.microsoft.com/vcpkg/contributing/maintainer-guide#install-copyright-file). # Security Most ports in vcpkg build the libraries in question using the original build system preferred by the original developers of those libraries, and download source code and build tools from their official distribution locations. For use behind a firewall, the specific access needed will depend on which ports are being installed. If you must install it in an "air gapped" environment, consider instaling once in a non-"air gapped" environment, populating an [asset cache](https://learn.microsoft.com/vcpkg/users/assetcaching) shared with the otherwise "air gapped" environment. # Telemetry vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by: - running the bootstrap-vcpkg script with `-disableMetrics` - passing `--disable-metrics` to vcpkg on the command line - setting the `VCPKG_DISABLE_METRICS` environment variable Read more about vcpkg telemetry at [https://learn.microsoft.com/vcpkg/about/privacy](https://learn.microsoft.com/vcpkg/about/privacy). ================================================ FILE: SECURITY.md ================================================ ## Security Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. ## Reporting Security Issues **Please do not report security vulnerabilities through public GitHub issues.** Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) * Full paths of source file(s) related to the manifestation of the issue * The location of the affected source code (tag/branch/commit or direct URL) * Any special configuration required to reproduce the issue * Step-by-step instructions to reproduce the issue * Proof-of-concept or exploit code (if possible) * Impact of the issue, including how an attacker might exploit the issue This information will help us triage your report more quickly. If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. ## Preferred Languages We prefer all communications to be in English. ## Policy Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). ================================================ FILE: bootstrap-vcpkg.bat ================================================ @echo off powershell.exe -NoProfile -ExecutionPolicy Bypass "& {& \"%~dp0scripts\bootstrap.ps1\" %*}" ================================================ FILE: bootstrap-vcpkg.sh ================================================ #!/bin/sh -e vcpkgRootDir=$(X= cd -- "$(dirname -- "$0")" && pwd -P) . "$vcpkgRootDir/scripts/bootstrap.sh" ================================================ FILE: docs/about/privacy.md ================================================ # Privacy The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Privacy](https://learn.microsoft.com/vcpkg/about/privacy) ================================================ FILE: docs/users/assetcaching.md ================================================ # Asset Caching The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Asset caching](https://learn.microsoft.com/vcpkg/users/assetcaching) ================================================ FILE: docs/users/binarycaching.md ================================================ # Binary Caching The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Binary caching](https://learn.microsoft.com/vcpkg/users/binarycaching) ================================================ FILE: docs/users/manifests.md ================================================ # Manifests The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Manifest mode](https://learn.microsoft.com/vcpkg/users/manifests) * [vcpkg.json syntax](https://learn.microsoft.com/vcpkg/reference/vcpkg-json) ================================================ FILE: docs/users/registries.md ================================================ # Registries The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Using registries](https://learn.microsoft.com/vcpkg/users/registries) * [Creating registries](https://learn.microsoft.com/vcpkg/maintainers/registries) ================================================ FILE: docs/users/triplets.md ================================================ # Triplets The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [Triplet files](https://learn.microsoft.com/vcpkg/users/triplets) * [Custom triplets](https://learn.microsoft.com/en-us/vcpkg/users/examples/overlay-triplets-linux-dynamic) ================================================ FILE: docs/users/versioning.md ================================================ # Versioning The documentation for this topic has been moved to the following articles in [Microsoft Learn](https://learn.microsoft.com/vcpkg): * [vcpkg.json version fields](https://learn.microsoft.com/vcpkg/reference/vcpkg-json#version) * [Versioning reference](https://learn.microsoft.com/vcpkg/users/versioning) * [Versioning resolution algorithm](https://learn.microsoft.com/vcpkg/users/versioning.concepts) ================================================ FILE: ports/3fd/RapidXML.patch ================================================ --- a/3FD/xml.h +++ b/3FD/xml.h @@ -4,6 +4,6 @@ #include "exceptions.h" #include "utils.h" -#include +#include #include #include ================================================ FILE: ports/3fd/portfile.cmake ================================================ # Check library linkage: vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT) # Get source code: vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO faburaya/3fd REF 3a0fe606268721d1560b88dcca8647c67c0b275c # v2.6.3 (Stable) SHA512 70630291b4055de2044ad76ef21e99d6ab6fd3468debb2a864a461cf8513642fe87f116e9dfff96ecff96f4577108493dc25aa40eeefcd93ee75990b13bb7b20 HEAD_REF master PATCHES RapidXML.patch ) # Build: if (VCPKG_TARGET_IS_UWP) # UWP: vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "3FD/3FD.WinRT.UWP.vcxproj" ) elseif (VCPKG_TARGET_IS_WINDOWS) # Win32: vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "3FD/3FD.vcxproj" TARGET Build ) else() message(FATAL_ERROR "Unsupported system: 3FD is not currently ported to VCPKG in ${VCPKG_CMAKE_SYSTEM_NAME}!") endif() # Install: file(GLOB HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/3FD/*.h") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/3FD" PATTERN "*_impl*.h" EXCLUDE PATTERN "*example*.h" EXCLUDE PATTERN "stdafx.h" EXCLUDE PATTERN "targetver.h" EXCLUDE ) file(INSTALL "${SOURCE_PATH}/btree" DESTINATION "${CURRENT_PACKAGES_DIR}/include/3FD") file(INSTALL "${SOURCE_PATH}/OpenCL/CL" DESTINATION "${CURRENT_PACKAGES_DIR}/include/3FD") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/3FD") file(INSTALL "${SOURCE_PATH}/3FD/3fd-config-template.xml" DESTINATION "${CURRENT_PACKAGES_DIR}/share/3FD" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${SOURCE_PATH}/Acknowledgements.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/3fd") vcpkg_copy_pdbs() ================================================ FILE: ports/3fd/vcpkg.json ================================================ { "name": "3fd", "version": "2.6.3", "port-version": 5, "description": "C++ Framework For Fast Development", "supports": "windows & !static & !arm64", "dependencies": [ { "name": "boost-lockfree", "platform": "windows" }, { "name": "boost-regex", "platform": "windows" }, { "name": "poco", "default-features": false, "features": [ "data", "odbc" ], "platform": "windows" }, "rapidxml", "sqlite3", { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/7zip/7zip-config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/7zip-targets.cmake") check_required_components(7zip) ================================================ FILE: ports/7zip/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) project(7zip LANGUAGES C CXX) # Starting points: # DOC/readme.txt # # CPP/7zip/Bundles/Alone2 : 7-Zip console executable that supports all formats # (but skip the bits for the executable) # # CPP/7zip/Bundles/Alone2/makefile : nmake (MSVC) # -> CPP/7zip/Bundles/Format7zF/Arc.mak # -> CPP/7zip/Bundles/7zip.mak # # CPP/7zip/Bundles/Alone2/(makefile.gcc|../../cmpl_.mak) : other # -> CPP/7zip/Bundles/Format7zF/Arc_gcc.mak # -> CPP/7zip/Bundles/7zip_gcc.mak option(USE_NO_ASM "Disable ASM") add_library(7zip) if(MSVC) if(NOT USE_NO_ASM AND VCPKG_TARGET_ARCHITECTURE MATCHES "x86|x64") enable_language(ASM_MASM) endif() else() if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") enable_language(ASM) endif() endif() get_cmake_property(enabled_languages ENABLED_LANGUAGES) # CPP/7zip/Bundles/Format7zF/Arc[_gcc].mak target_sources(7zip PRIVATE # COMPRESS_OBJS CPP/7zip/Compress/Bcj2Coder.cpp CPP/7zip/Compress/Bcj2Register.cpp CPP/7zip/Compress/BcjCoder.cpp CPP/7zip/Compress/BcjRegister.cpp CPP/7zip/Compress/BitlDecoder.cpp CPP/7zip/Compress/BranchMisc.cpp CPP/7zip/Compress/BranchRegister.cpp CPP/7zip/Compress/ByteSwap.cpp CPP/7zip/Compress/BZip2Crc.cpp CPP/7zip/Compress/BZip2Decoder.cpp CPP/7zip/Compress/BZip2Encoder.cpp CPP/7zip/Compress/BZip2Register.cpp CPP/7zip/Compress/CopyCoder.cpp CPP/7zip/Compress/CopyRegister.cpp CPP/7zip/Compress/Deflate64Register.cpp CPP/7zip/Compress/DeflateDecoder.cpp CPP/7zip/Compress/DeflateEncoder.cpp CPP/7zip/Compress/DeflateRegister.cpp CPP/7zip/Compress/DeltaFilter.cpp CPP/7zip/Compress/ImplodeDecoder.cpp CPP/7zip/Compress/LzfseDecoder.cpp CPP/7zip/Compress/LzhDecoder.cpp CPP/7zip/Compress/Lzma2Decoder.cpp CPP/7zip/Compress/Lzma2Encoder.cpp CPP/7zip/Compress/Lzma2Register.cpp CPP/7zip/Compress/LzmaDecoder.cpp CPP/7zip/Compress/LzmaEncoder.cpp CPP/7zip/Compress/LzmaRegister.cpp CPP/7zip/Compress/LzmsDecoder.cpp CPP/7zip/Compress/LzOutWindow.cpp CPP/7zip/Compress/LzxDecoder.cpp CPP/7zip/Compress/PpmdDecoder.cpp CPP/7zip/Compress/PpmdEncoder.cpp CPP/7zip/Compress/PpmdRegister.cpp CPP/7zip/Compress/PpmdZip.cpp CPP/7zip/Compress/QuantumDecoder.cpp CPP/7zip/Compress/Rar1Decoder.cpp CPP/7zip/Compress/Rar2Decoder.cpp CPP/7zip/Compress/Rar3Decoder.cpp CPP/7zip/Compress/Rar3Vm.cpp CPP/7zip/Compress/Rar5Decoder.cpp CPP/7zip/Compress/RarCodecsRegister.cpp CPP/7zip/Compress/ShrinkDecoder.cpp CPP/7zip/Compress/XpressDecoder.cpp CPP/7zip/Compress/XzDecoder.cpp CPP/7zip/Compress/XzEncoder.cpp CPP/7zip/Compress/ZDecoder.cpp CPP/7zip/Compress/ZlibDecoder.cpp CPP/7zip/Compress/ZlibEncoder.cpp CPP/7zip/Compress/ZstdDecoder.cpp # CRYPTO_OBJS CPP/7zip/Crypto/7zAes.cpp CPP/7zip/Crypto/7zAesRegister.cpp CPP/7zip/Crypto/HmacSha1.cpp CPP/7zip/Crypto/HmacSha256.cpp CPP/7zip/Crypto/MyAes.cpp CPP/7zip/Crypto/MyAesReg.cpp CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp CPP/7zip/Crypto/RandGen.cpp CPP/7zip/Crypto/Rar20Crypto.cpp CPP/7zip/Crypto/Rar5Aes.cpp CPP/7zip/Crypto/RarAes.cpp CPP/7zip/Crypto/WzAes.cpp CPP/7zip/Crypto/ZipCrypto.cpp CPP/7zip/Crypto/ZipStrong.cpp # C_OBJS C/7zBuf2.c C/7zStream.c C/Alloc.c C/Bcj2.c C/Bcj2Enc.c C/Blake2s.c C/Bra.c C/Bra86.c C/BraIA64.c C/BwtSort.c C/CpuArch.c C/Delta.c C/HuffEnc.c C/LzFind.c C/LzFindMt.c C/Lzma2Dec.c C/Lzma2DecMt.c C/Lzma2Enc.c C/LzmaDec.c C/LzmaEnc.c C/Md5.c C/MtCoder.c C/MtDec.c C/Ppmd7.c C/Ppmd7aDec.c C/Ppmd7Dec.c C/Ppmd7Enc.c C/Ppmd8.c C/Ppmd8Dec.c C/Ppmd8Enc.c C/Sha3.c C/Sha512.c C/Sha512Opt.c C/SwapBytes.c C/Threads.c C/Xxh64.c C/Xz.c C/XzDec.c C/XzEnc.c C/XzIn.c C/ZstdDec.c # COMMON_OBJS CPP/Common/CRC.cpp CPP/Common/CrcReg.cpp CPP/Common/DynLimBuf.cpp CPP/Common/IntToString.cpp CPP/Common/LzFindPrepare.cpp CPP/Common/Md5Reg.cpp CPP/Common/MyMap.cpp CPP/Common/MyString.cpp CPP/Common/MyVector.cpp CPP/Common/MyXml.cpp CPP/Common/NewHandler.cpp CPP/Common/Sha1Reg.cpp CPP/Common/Sha256Reg.cpp CPP/Common/Sha3Reg.cpp CPP/Common/Sha512Reg.cpp CPP/Common/Sha512Prepare.cpp CPP/Common/StringConvert.cpp CPP/Common/StringToInt.cpp CPP/Common/UTFConvert.cpp CPP/Common/Wildcard.cpp CPP/Common/Xxh64Reg.cpp CPP/Common/XzCrc64Init.cpp CPP/Common/XzCrc64Reg.cpp # 7ZIP_COMMON_OBJS CPP/7zip/Common/CreateCoder.cpp CPP/7zip/Common/CWrappers.cpp CPP/7zip/Common/InBuffer.cpp CPP/7zip/Common/InOutTempBuffer.cpp CPP/7zip/Common/FilterCoder.cpp CPP/7zip/Common/LimitedStreams.cpp CPP/7zip/Common/LockedStream.cpp CPP/7zip/Common/MemBlocks.cpp CPP/7zip/Common/MethodId.cpp CPP/7zip/Common/MethodProps.cpp CPP/7zip/Common/OffsetStream.cpp CPP/7zip/Common/OutBuffer.cpp CPP/7zip/Common/OutMemStream.cpp CPP/7zip/Common/ProgressMt.cpp CPP/7zip/Common/ProgressUtils.cpp CPP/7zip/Common/PropId.cpp CPP/7zip/Common/StreamBinder.cpp CPP/7zip/Common/StreamObjects.cpp CPP/7zip/Common/StreamUtils.cpp CPP/7zip/Common/UniqBlocks.cpp CPP/7zip/Common/VirtThread.cpp # WIN_OBJS CPP/Windows/FileDir.cpp CPP/Windows/FileFind.cpp CPP/Windows/FileIO.cpp CPP/Windows/FileName.cpp CPP/Windows/PropVariant.cpp CPP/Windows/PropVariantConv.cpp CPP/Windows/PropVariantUtils.cpp CPP/Windows/Synchronization.cpp CPP/Windows/System.cpp CPP/Windows/TimeUtils.cpp # AR_OBJS CPP/7zip/Archive/ApfsHandler.cpp CPP/7zip/Archive/ApmHandler.cpp CPP/7zip/Archive/ArHandler.cpp CPP/7zip/Archive/ArjHandler.cpp CPP/7zip/Archive/Base64Handler.cpp CPP/7zip/Archive/Bz2Handler.cpp CPP/7zip/Archive/ComHandler.cpp CPP/7zip/Archive/CpioHandler.cpp CPP/7zip/Archive/CramfsHandler.cpp CPP/7zip/Archive/DeflateProps.cpp CPP/7zip/Archive/DmgHandler.cpp CPP/7zip/Archive/ElfHandler.cpp CPP/7zip/Archive/ExtHandler.cpp CPP/7zip/Archive/FatHandler.cpp CPP/7zip/Archive/FlvHandler.cpp CPP/7zip/Archive/GzHandler.cpp CPP/7zip/Archive/GptHandler.cpp CPP/7zip/Archive/HandlerCont.cpp CPP/7zip/Archive/HfsHandler.cpp CPP/7zip/Archive/IhexHandler.cpp CPP/7zip/Archive/LzhHandler.cpp CPP/7zip/Archive/LzmaHandler.cpp CPP/7zip/Archive/MachoHandler.cpp CPP/7zip/Archive/MbrHandler.cpp CPP/7zip/Archive/MslzHandler.cpp CPP/7zip/Archive/MubHandler.cpp CPP/7zip/Archive/NtfsHandler.cpp CPP/7zip/Archive/PeHandler.cpp CPP/7zip/Archive/PpmdHandler.cpp CPP/7zip/Archive/QcowHandler.cpp CPP/7zip/Archive/RpmHandler.cpp CPP/7zip/Archive/SparseHandler.cpp CPP/7zip/Archive/SplitHandler.cpp CPP/7zip/Archive/SquashfsHandler.cpp CPP/7zip/Archive/SwfHandler.cpp CPP/7zip/Archive/UefiHandler.cpp CPP/7zip/Archive/VdiHandler.cpp CPP/7zip/Archive/VhdHandler.cpp CPP/7zip/Archive/VhdxHandler.cpp CPP/7zip/Archive/VmdkHandler.cpp CPP/7zip/Archive/XarHandler.cpp CPP/7zip/Archive/XzHandler.cpp CPP/7zip/Archive/ZHandler.cpp CPP/7zip/Archive/ZstdHandler.cpp # AR_COMMON_OBJS CPP/7zip/Archive/Common/CoderMixer2.cpp CPP/7zip/Archive/Common/DummyOutStream.cpp CPP/7zip/Archive/Common/FindSignature.cpp CPP/7zip/Archive/Common/InStreamWithCRC.cpp CPP/7zip/Archive/Common/ItemNameUtils.cpp CPP/7zip/Archive/Common/MultiStream.cpp CPP/7zip/Archive/Common/OutStreamWithCRC.cpp CPP/7zip/Archive/Common/OutStreamWithSha1.cpp CPP/7zip/Archive/Common/HandlerOut.cpp CPP/7zip/Archive/Common/ParseProperties.cpp # 7Z_OBJS CPP/7zip/Archive/7z/7zCompressionMode.cpp CPP/7zip/Archive/7z/7zDecode.cpp CPP/7zip/Archive/7z/7zEncode.cpp CPP/7zip/Archive/7z/7zExtract.cpp CPP/7zip/Archive/7z/7zFolderInStream.cpp CPP/7zip/Archive/7z/7zHandler.cpp CPP/7zip/Archive/7z/7zHandlerOut.cpp CPP/7zip/Archive/7z/7zHeader.cpp CPP/7zip/Archive/7z/7zIn.cpp CPP/7zip/Archive/7z/7zOut.cpp CPP/7zip/Archive/7z/7zProperties.cpp CPP/7zip/Archive/7z/7zSpecStream.cpp CPP/7zip/Archive/7z/7zUpdate.cpp CPP/7zip/Archive/7z/7zRegister.cpp # CAB_OBJS CPP/7zip/Archive/Cab/CabBlockInStream.cpp CPP/7zip/Archive/Cab/CabHandler.cpp CPP/7zip/Archive/Cab/CabHeader.cpp CPP/7zip/Archive/Cab/CabIn.cpp CPP/7zip/Archive/Cab/CabRegister.cpp # CHM_OBJS CPP/7zip/Archive/Chm/ChmHandler.cpp CPP/7zip/Archive/Chm/ChmIn.cpp # ISO_OBJS CPP/7zip/Archive/Iso/IsoHandler.cpp CPP/7zip/Archive/Iso/IsoHeader.cpp CPP/7zip/Archive/Iso/IsoIn.cpp CPP/7zip/Archive/Iso/IsoRegister.cpp # NSIS_OBJS CPP/7zip/Archive/Nsis/NsisDecode.cpp CPP/7zip/Archive/Nsis/NsisHandler.cpp CPP/7zip/Archive/Nsis/NsisIn.cpp CPP/7zip/Archive/Nsis/NsisRegister.cpp # RAR_OBJS CPP/7zip/Archive/Rar/RarHandler.cpp CPP/7zip/Archive/Rar/Rar5Handler.cpp # TAR_OBJS CPP/7zip/Archive/Tar/TarHandler.cpp CPP/7zip/Archive/Tar/TarHandlerOut.cpp CPP/7zip/Archive/Tar/TarHeader.cpp CPP/7zip/Archive/Tar/TarIn.cpp CPP/7zip/Archive/Tar/TarOut.cpp CPP/7zip/Archive/Tar/TarUpdate.cpp CPP/7zip/Archive/Tar/TarRegister.cpp # UDF_OBJS CPP/7zip/Archive/Udf/UdfHandler.cpp CPP/7zip/Archive/Udf/UdfIn.cpp # WIM_OBJS CPP/7zip/Archive/Wim/WimHandler.cpp CPP/7zip/Archive/Wim/WimHandlerOut.cpp CPP/7zip/Archive/Wim/WimIn.cpp CPP/7zip/Archive/Wim/WimRegister.cpp # ZIP_OBJS CPP/7zip/Archive/Zip/ZipAddCommon.cpp CPP/7zip/Archive/Zip/ZipHandler.cpp CPP/7zip/Archive/Zip/ZipHandlerOut.cpp CPP/7zip/Archive/Zip/ZipIn.cpp CPP/7zip/Archive/Zip/ZipItem.cpp CPP/7zip/Archive/Zip/ZipOut.cpp CPP/7zip/Archive/Zip/ZipUpdate.cpp CPP/7zip/Archive/Zip/ZipRegister.cpp ) # Included by CPP/7zip/Bundles/Format7zF/Arc[_gcc].mak # CPP/7zip/Aes.mak target_sources(7zip PRIVATE C/Aes.c) if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/AesOpt.asm) set_source_files_properties(Asm/x86/AesOpt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/AesOpt.c) endif() # CPP/7zip/Crc.mak target_sources(7zip PRIVATE C/7zCrc.c) if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/7zCrcOpt.asm) set_source_files_properties(Asm/x86/7zCrcOpt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/7zCrcOpt.c) endif() # CPP/7zip/Crc64.mak target_sources(7zip PRIVATE C/XzCrc64.c) if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/XzCrc64Opt.asm) set_source_files_properties(Asm/x86/XzCrc64Opt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/XzCrc64Opt.c) endif() # CPP/7zip/LzFindOpt.mak if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") target_sources(7zip PRIVATE Asm/x86/LzFindOpt.asm) set_source_files_properties(Asm/x86/LzFindOpt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/LzFindOpt.c) endif() # CPP/7zip/LzmaDec[_gcc].mak if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") target_sources(7zip PRIVATE Asm/x86/LzmaDecOpt.asm) set_source_files_properties(Asm/x86/LzmaDecOpt.asm PROPERTIES LANGUAGE ASM_MASM) target_compile_definitions(7zip PRIVATE Z7_LZMA_DEC_OPT) elseif("ASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/arm64/LzmaDecOpt.S) endif() # CPP/7zip/Sha1.mak target_sources(7zip PRIVATE CPP/Common/Sha1Prepare.cpp C/Sha1.c) if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/Sha1Opt.asm) set_source_files_properties(Asm/x86/Sha1Opt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/Sha1Opt.c) endif() # CPP/7zip/Sha256.mak target_sources(7zip PRIVATE CPP/Common/Sha256Prepare.cpp C/Sha256.c) if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/Sha256Opt.asm) set_source_files_properties(Asm/x86/Sha256Opt.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/Sha256Opt.c) endif() # Sort if("ASM_MASM" IN_LIST enabled_languages AND NOT USE_NO_ASM) target_sources(7zip PRIVATE Asm/x86/Sort.asm) set_source_files_properties(Asm/x86/Sort.asm PROPERTIES LANGUAGE ASM_MASM) else() target_sources(7zip PRIVATE C/Sort.c) endif() # CPP/7zip/Bundles/Format7zF/makefile[_gcc].mak # CPP/7zip/7zip[_gcc].mak target_compile_definitions(7zip PRIVATE Z7_EXTERNAL_CODECS Z7_PPMD_SUPPORT) target_sources(7zip PRIVATE CPP/7zip/Archive/ArchiveExports.cpp CPP/7zip/Archive/DllExports2.cpp CPP/7zip/Compress/CodecExports.cpp ) if(WIN32) target_compile_definitions(7zip PUBLIC -DUNICODE -D_UNICODE ) target_sources(7zip PRIVATE CPP/7zip/Archive/Archive2.def CPP/7zip/Bundles/Format7zF/resource.rc ) else() target_sources(7zip PRIVATE CPP/Common/MyWindows.cpp ) endif() if(NOT MSVC) target_compile_definitions(7zip PUBLIC -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE ) endif() # LZMA SDK API, cf. #44085. # Implementation is already in the 7zip lib. target_sources(7zip PRIVATE C/LzmaLib.c C/Util/LzmaLib/LzmaLib.def ) # install target_include_directories(7zip INTERFACE $/7zip/CPP $/7zip/C ) install( TARGETS 7zip EXPORT 7zip-targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) # Headers makes relative includes so directory structure must be kept file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/C/*.h") install(FILES ${HEADERS} DESTINATION "include/7zip/C") file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CPP/Common/*.h") install(FILES ${HEADERS} DESTINATION "include/7zip/CPP/Common") file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CPP/7zip/*.h") install(FILES ${HEADERS} DESTINATION "include/7zip/CPP/7zip") file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CPP/7zip/Archive/*.h") install (FILES ${HEADERS} DESTINATION "include/7zip/CPP/7zip/Archive") include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/7zip-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/7zip-config.cmake" INSTALL_DESTINATION "share/7zip" ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/7zip-config.cmake" DESTINATION "share/7zip" ) install( EXPORT 7zip-targets DESTINATION share/7zip NAMESPACE 7zip:: ) ================================================ FILE: ports/7zip/fix_timespec_get_broken_on_android.patch ================================================ diff --git a/CPP/Windows/TimeUtils.cpp b/CPP/Windows/TimeUtils.cpp index bbd79ba..8df3ea3 100644 --- a/CPP/Windows/TimeUtils.cpp +++ b/CPP/Windows/TimeUtils.cpp @@ -259,7 +259,7 @@ bool GetSecondsSince1601(unsigned year, unsigned month, unsigned day, Cygwin 2.9, mingw, MSVC 14, Android 9.0. Android NDK defines TIME_UTC but doesn't have the timespec_get(). */ -#if defined(TIME_UTC) && !defined(__ANDROID__) +#if defined(TIME_UTC) && (!defined(__ANDROID__) || __ANDROID_API__ >= 29) #define ZIP7_USE_timespec_get // #pragma message("ZIP7_USE_timespec_get") #elif defined(CLOCK_REALTIME) ================================================ FILE: ports/7zip/portfile.cmake ================================================ string(REGEX REPLACE "[.]([0-9])\$" ".0\\1" upstream_version "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ip7z/7zip REF "${upstream_version}" SHA512 5f4922efd94e12776e531f77053981978a0d9f8c6da50f51bdb750a54436b07ddccafa6a1180fd234a7fcaf4d2a5b0ab7c2a9267da2ea8e68407bf432ff0f76c HEAD_REF main PATCHES sort-asm.diff fix_timespec_get_broken_on_android.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/7zip-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/DOC/License.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/7zip/sort-asm.diff ================================================ diff --git a/Asm/x86/Sort.asm b/Asm/x86/Sort.asm index 517c615..85e167e 100644 --- a/Asm/x86/Sort.asm +++ b/Asm/x86/Sort.asm @@ -1,7 +1,7 @@ ; SortTest.asm -- ASM version of HeapSort() function ; Igor Pavlov : Public domain -include ../../../../Asm/x86/7zAsm.asm +include 7zAsm.asm MY_ASM_START ================================================ FILE: ports/7zip/vcpkg.json ================================================ { "name": "7zip", "version": "26.0", "description": "Library for archiving file with a high compression ratio.", "homepage": "https://www.7-zip.org", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/abcmake/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO an-dr/abcmake REF "v6.4.0" SHA512 85724b25e158f41f0aa0e5f01ea0530a46f6b4397606b1af115c8aec1c29d317aaaf40a6161795687d713b6f00f66b13a1ab3982f351a139dc79a7d4ac42b7da ) set(VCPKG_BUILD_TYPE release) # CMake support file only port set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/abcmake/usage ================================================ abcmake provides CMake configs: find_package(abcmake CONFIG REQUIRED) add_main_component(${PROJECT_NAME}) ================================================ FILE: ports/abcmake/vcpkg.json ================================================ { "name": "abcmake", "version": "6.4.0", "description": "Simple, component-first CMake helper for small & medium C/C++ projects", "homepage": "https://github.com/an-dr/abcmake", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ableton-link/fix_android_build.patch ================================================ diff --git "a/AbletonLinkConfig.cmake" "b/AbletonLinkConfig.cmake" index 43b66e7..1e84fa5 100644 --- "a/cmake_include/ConfigureAbletonLink.cmake" +++ "b/cmake_include/ConfigureAbletonLink.cmake" @@ -30,6 +30,11 @@ function(ConfigureAbletonLink PATH_TO_LINK) INTERFACE_COMPILE_DEFINITIONS LINK_PLATFORM_WINDOWS=1 ) + elseif(CMAKE_SYSTEM_NAME MATCHES "Android") + set_property(TARGET Ableton::Link APPEND PROPERTY + INTERFACE_COMPILE_DEFINITIONS + LINK_PLATFORM_LINUX=1 + ) elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD|GNU") set_property(TARGET Ableton::Link APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS ================================================ FILE: ports/ableton-link/no-werror.patch ================================================ diff --git a/cmake_include/ConfigureCompileFlags.cmake b/cmake_include/ConfigureCompileFlags.cmake index 63bdfec..80879f9 100644 --- a/cmake_include/ConfigureCompileFlags.cmake +++ b/cmake_include/ConfigureCompileFlags.cmake @@ -25,7 +25,6 @@ if(UNIX) set(build_flags_COMMON_LIST ${build_flags_COMMON_LIST} "-Weverything" - "-Werror" "-Wno-c++98-compat" "-Wno-c++98-compat-pedantic" "-Wno-deprecated" @@ -44,7 +43,6 @@ if(UNIX) elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) set(build_flags_COMMON_LIST ${build_flags_COMMON_LIST} - "-Werror" "-Wno-multichar" ) endif() @@ -87,7 +85,6 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC) ${build_flags_COMMON_LIST} "/MP" "/Wall" - "/WX" "/EHsc" ############################# ================================================ FILE: ports/ableton-link/portfile.cmake ================================================ #header-only library vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ableton/link REF "Link-${VERSION}" SHA512 21ab3f47b1b2a7961cae238ca846adf0190341e8379a33938824acc49d3b95d8823b61bc321b1dfcbb3864f740425ac81d8c5c581e882394e1edac230f4c34e4 HEAD_REF master PATCHES replace_local_asiostandalone_by_vcpkg_asio.patch replace_asiosdk_download_by_vcpkg_asiosdk.patch replace_local_catch_by_vcpkg_catch2.patch no-werror.patch fix_android_build.patch ) # Note that the dependencies ASIO and ASIOSDK are completely different things: # -ASIO (ASyncronous IO) is a cross-platform C++ library for network and low-level I/O programming # -ASIOSDK is the SDK for the Steinberg ASIO (Audio Stream Input/Output) driver, for professional Windows audio applications vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "discoverytest" LinkDiscoveryTest "coretest" LinkCoreTest "hut" LinkHut "hutsilent" LinkHutSilent ) file(REMOVE_RECURSE "${SOURCE_PATH}/ci") file(REMOVE_RECURSE "${SOURCE_PATH}/modules") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party") set(NEED_CATCH2 OFF) if ("coretest" IN_LIST FEATURES) set(NEED_CATCH2 ON) endif() if ("discoverytest" IN_LIST FEATURES) set(NEED_CATCH2 ON) endif() set(NEED_ASIOSDK OFF) if ("hut" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS) # Need Steinberg ASIO audio driver SDK (only this low-latency audio driver makes the developer tool 'hut' useful on Windows) set(NEED_ASIOSDK ON) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEED_CATCH2=${NEED_CATCH2} -DLINK_BUILD_ASIO=${NEED_ASIOSDK} ${FEATURE_OPTIONS} ) # Helper function to build and install helper executables function(install_test_executable FEATURE_NAME TARGET_NAME) if(${FEATURE_NAME} IN_LIST FEATURES) vcpkg_cmake_build(TARGET ${TARGET_NAME}) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/${TARGET_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/${TARGET_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}") endif() endif() endfunction() # Install test executables install_test_executable("coretest" "LinkCoreTest") install_test_executable("discoverytest" "LinkDiscoveryTest") install_test_executable("hut" "LinkHut") install_test_executable("hutsilent" "LinkHutSilent") # We must not correct the CMake include path before build file(READ "${SOURCE_PATH}/cmake_include/ConfigureAbletonLink.cmake" CONFIG_CONTENT) string(REPLACE "\${PATH_TO_LINK}/include/ableton/Link.hpp" "\${PATH_TO_LINK}/../../include/ableton/Link.hpp" CONFIG_CONTENT "${CONFIG_CONTENT}") string(REPLACE "\${PATH_TO_LINK}/include" "\${PATH_TO_LINK}/../../include/ableton" CONFIG_CONTENT "${CONFIG_CONTENT}") file(WRITE "${SOURCE_PATH}/cmake_include/ConfigureAbletonLink.cmake" "${CONFIG_CONTENT}") file(INSTALL "${SOURCE_PATH}/AbletonLinkConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/abletonlink") file(INSTALL "${SOURCE_PATH}/cmake_include/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/abletonlink/cmake_include/") file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" PATTERN "CMakeLists.txt" EXCLUDE) file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ableton-link/replace_asiosdk_download_by_vcpkg_asiosdk.patch ================================================ diff --git "a/examples/CMakeLists.txt" "b/examples/CMakeLists.txt" --- "a/examples/CMakeLists.txt" +++ "b/examples/CMakeLists.txt" @@ -9,28 +9,22 @@ project(LinkExamples) # if(WIN32) - function(configure_asio asio_sdk_path_OUT) - # ASIO-related path/file variables - set(asio_download_root "https://download.steinberg.net/sdk_downloads") - set(asio_file_name "asiosdk_2.3.3_2019-06-14.zip") - set(asio_dir_name "asiosdk_2.3.3_2019-06-14") - set(asio_working_dir "${CMAKE_BINARY_DIR}/modules") - set(asio_output_path "${asio_working_dir}/${asio_file_name}") - - message(STATUS "Downloading ASIO SDK") - file(DOWNLOAD "${asio_download_root}/${asio_file_name}" ${asio_output_path}) - file(SHA1 ${asio_output_path} asio_zip_hash) - message(" ASIO SDK SHA1: ${asio_zip_hash}") - - message(" Extracting ASIO SDK") - execute_process(COMMAND ${CMAKE_COMMAND} -E tar "xf" ${asio_output_path} --format=zip - WORKING_DIRECTORY ${asio_working_dir} - INPUT_FILE ${asio_output_path} - ) + if(LINK_BUILD_ASIO) + function(configure_asio asio_sdk_path_OUT) + # ASIO-related path/file variables + find_package(ASIOSDK) + if(NOT ASIOSDK_FOUND) + message(FATAL_ERROR "Steinberg ASIO audio driver SDK not found") + else() + message(STATUS "Steinberg ASIO audio driver SDK root dir: ${ASIOSDK_ROOT_DIR}") + endif() + set(asio_working_dir "${ASIOSDK_ROOT_DIR}") + set(asio_output_path "${CMAKE_BINARY_DIR}/modules/asiosdk") - # Set the ASIO SDK path for the caller - set(${asio_sdk_path_OUT} "${asio_working_dir}/${asio_dir_name}" PARENT_SCOPE) - endfunction() + # Set the ASIO SDK path for the caller + set(${asio_sdk_path_OUT} "${asio_working_dir}" PARENT_SCOPE) + endfunction() + endif() endif() # _ _ _ @@ -102,7 +96,20 @@ function(configure_linkhut_audio_sources target) -DLINKHUT_AUDIO_PLATFORM_JACK=1 ) else() - target_link_libraries(${target} asound portaudio) + if(LinkHut) + find_package(ALSA REQUIRED) + find_package(portaudio CONFIG REQUIRED) + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(PORTAUDIO_LIB "${portaudio_DIR}/../../debug/lib/libportaudio.a") + else() + set(PORTAUDIO_LIB "${portaudio_DIR}/../../lib/libportaudio.a") + endif() + # PortAudio built with JACK support needs JACK library + find_library(JACK_LIB NAMES jack) + if(JACK_LIB) + target_link_libraries(${target} ALSA::ALSA ${PORTAUDIO_LIB} ${JACK_LIB}) + endif() + endif() target_compile_definitions(${target} PRIVATE -DLINKHUT_AUDIO_PLATFORM_PORTAUDIO=1 ) ================================================ FILE: ports/ableton-link/replace_local_asiostandalone_by_vcpkg_asio.patch ================================================ diff a/cmake_include/ConfigureAsioStandalone.cmake b/ConfigureAsioStandalone.cmake --- a/cmake_include/ConfigureAsioStandalone.cmake +++ b/cmake_include/ConfigureAsioStandalone.cmake @@ -2,9 +2,13 @@ function(ConfigureAsioStandalone PATH_TO_LINK) add_library(AsioStandalone::AsioStandalone IMPORTED INTERFACE) - set_property(TARGET AsioStandalone::AsioStandalone APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES - ${PATH_TO_LINK}/modules/asio-standalone/asio/include - ) + find_package(asio REQUIRED) + if(asio_FOUND) + message(STATUS "Dependency asio found in ${asio_DIR}") + set_property(TARGET AsioStandalone::AsioStandalone APPEND PROPERTY + INTERFACE_INCLUDE_DIRECTORIES + ${asio_DIR}/../../include + ) + endif() endfunction() ================================================ FILE: ports/ableton-link/replace_local_catch_by_vcpkg_catch2.patch ================================================ --- ableton-link.orig/cmake_include/CatchConfig.cmake +++ ableton-link/cmake_include/CatchConfig.cmake @@ -1,6 +1,12 @@ -add_library(Catch::Catch IMPORTED INTERFACE) +if (NEED_CATCH2 MATCHES "ON") + add_library(Catch::Catch IMPORTED INTERFACE) -set_property(TARGET Catch::Catch APPEND PROPERTY - INTERFACE_INCLUDE_DIRECTORIES - ${CMAKE_CURRENT_LIST_DIR}/../third_party/catch -) + find_package(Catch2 CONFIG REQUIRED) + if(Catch2_FOUND) + message(STATUS "Dependency Catch2 found in ${Catch2_DIR}") + set_property(TARGET Catch::Catch APPEND PROPERTY + INTERFACE_INCLUDE_DIRECTORIES + ${Catch2_DIR}/../../include + ) + endif() +endif() --- "a/src/CMakeLists.txt" +++ "b/src/CMakeLists.txt" @@ -77,4 +77,9 @@ function(configure_link_test_executable target) function(configure_link_test_executable target) - target_link_libraries(${target} Catch::Catch Ableton::Link) + if (NEED_CATCH2 MATCHES "ON") + target_link_libraries(${target} Catch2::Catch2WithMain Ableton::Link) target_compile_definitions(${target} PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING=1) + else() + target_link_libraries(${target} Ableton::Link) + target_compile_definitions(${target} PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING=0) + endif() endfunction() --- "a/src/ableton/link/tst_LinearRegression.cpp" +++ "b/src/ableton/link/tst_LinearRegression.cpp" @@ -22,6 +22,8 @@ #include #include +using Catch::Approx; + namespace ableton { namespace link --- "a/src/ableton/link/tst_Beats.cpp" +++ "b/src/ableton/link/tst_Beats.cpp" @@ -20,6 +20,8 @@ #include #include +using Catch::Approx; + namespace ableton { namespace link --- "a/src/ableton/link/tst_Median.cpp" +++ "b/src/ableton/link/tst_Median.cpp" @@ -22,6 +22,8 @@ #include #include +using Catch::Approx; + namespace ableton { namespace link --- "a/src/ableton/link/tst_Tempo.cpp" +++ "b/src/ableton/link/tst_Tempo.cpp" @@ -20,6 +20,8 @@ #include #include +using Catch::Approx; + namespace ableton { namespace link ================================================ FILE: ports/ableton-link/vcpkg.json ================================================ { "name": "ableton-link", "version": "3.1.5", "description": "Ableton Link, a technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices.", "homepage": "https://www.ableton.com/en/link/", "documentation": "http://ableton.github.io/link/", "license": "GPL-2.0-or-later", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "coretest": { "description": "Build LinkCoreTest suite", "supports": "!uwp", "dependencies": [ "catch2" ] }, "discoverytest": { "description": "Build LinkDiscoveryTest suite", "supports": "!uwp", "dependencies": [ "catch2" ] }, "hut": { "description": "Build LinkHut command line tool", "supports": "!android", "dependencies": [ { "name": "alsa", "platform": "linux | android | freebsd | openbsd" }, { "name": "asiosdk", "platform": "windows" }, { "name": "portaudio", "platform": "linux | android | freebsd | openbsd" } ] }, "hutsilent": { "description": "Build LinkHutSilent command line tool", "supports": "!uwp" } } } ================================================ FILE: ports/abseil/003-force-cxx-17.patch ================================================ diff --git a/CMake/AbseilDll.cmake b/CMake/AbseilDll.cmake index 38d09364..7d158be6 100644 --- a/CMake/AbseilDll.cmake +++ b/CMake/AbseilDll.cmake @@ -721,7 +721,7 @@ int main() { return 0; } if(ABSL_INTERNAL_AT_LEAST_CXX20) set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_20) -elseif(ABSL_INTERNAL_AT_LEAST_CXX17) +elseif(1) set(ABSL_INTERNAL_CXX_STD_FEATURE cxx_std_17) else() message(FATAL_ERROR "The compiler defaults to or is configured for C++ < 17. C++ >= 17 is required and Abseil and all libraries that use Abseil must use the same C++ language standard") ================================================ FILE: ports/abseil/fix-heterogeneous_lookup_testing-target.patch ================================================ diff --git a/absl/container/CMakeLists.txt b/absl/container/CMakeLists.txt index 365c6ea..d12e585 100644 --- a/absl/container/CMakeLists.txt +++ b/absl/container/CMakeLists.txt @@ -1119,6 +1119,7 @@ absl_cc_library( absl::config absl::test_instance_tracker GTest::gmock + TESTONLY ) absl_cc_library( ================================================ FILE: ports/abseil/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abseil/abseil-cpp REF "${VERSION}" SHA512 f5012885d6b6844a9cf5ed92ad5468b8757db33dfe1364bfb232fff928e06c550c7eb4557f45186a8ac4d18b178df9be267681abab4a6de40823b574afbe9960 HEAD_REF master PATCHES 003-force-cxx-17.patch fix-heterogeneous_lookup_testing-target.patch ) set(ABSL_STATIC_RUNTIME_OPTION "") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") set(ABSL_STATIC_RUNTIME_OPTION "-DABSL_MSVC_STATIC_RUNTIME=ON") endif() set(ABSL_MINGW_OPTIONS "") if(VCPKG_TARGET_IS_MINGW) # LIBRT-NOTFOUND is needed since the system librt may be found by cmake in # a cross-compile setup. # See https://github.com/pywinrt/pywinrt/pull/83 for the FIReference # definition issue. set(ABSL_MINGW_OPTIONS "-DLIBRT=LIBRT-NOTFOUND" "-DCMAKE_CXX_FLAGS=-D____FIReference_1_boolean_INTERFACE_DEFINED__") # Specify ABSL_BUILD_MONOLITHIC_SHARED_LIBS=ON when VCPKG_LIBRARY_LINKAGE is dynamic to match Abseil's Windows (MSVC) defaults if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_list(APPEND ABSL_MINGW_OPTIONS "-DABSL_BUILD_MONOLITHIC_SHARED_LIBS=ON") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DABSL_PROPAGATE_CXX_STD=ON -DABSL_BUILD_TESTING=OFF -DABSL_BUILD_TEST_HELPERS=OFF ${ABSL_TEST_HELPERS_OPTIONS} ${ABSL_STATIC_RUNTIME_OPTION} ${ABSL_MINGW_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME absl CONFIG_PATH lib/cmake/absl) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) file(APPEND "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/absl_time.pc" "Libs.private: -framework CoreFoundation\n") if(NOT VCPKG_BUILD_TYPE) file(APPEND "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/absl_time.pc" "Libs.private: -framework CoreFoundation\n") endif() endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/absl/copts" "${CURRENT_PACKAGES_DIR}/include/absl/strings/testdata" "${CURRENT_PACKAGES_DIR}/include/absl/time/internal/cctz/testdata" ) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/config.h" "defined(ABSL_CONSUME_DLL)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/absl/base/internal/thread_identity.h" "defined(ABSL_CONSUME_DLL)" "1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/abseil/vcpkg.json ================================================ { "name": "abseil", "version": "20260107.1", "port-version": 1, "description": [ "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." ], "homepage": "https://github.com/abseil/abseil-cpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/absent/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rvarago/absent REF 0.3.1 SHA512 c7b7d29422ef8afc48e3093496e1dd055cfe9969ae037c2b06ea70fe4283e7a7e9129171efaa257e909c535e24df5861b992b24b00ec03f965730e6a22e13015 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/${PORT} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/absent/vcpkg.json ================================================ { "name": "absent", "version": "0.3.1", "port-version": 3, "description": "A small C++17 library meant to simplify the composition of nullable types in a generic, type-safe, and declarative way", "homepage": "https://github.com/rvarago/absent", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/abumq-ripe/cmake-config-exports.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 803fb6a..ad7ae72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,9 +97,35 @@ target_compile_definitions(ripe PRIVATE ELPP_NO_DEFAULT_LOG_FILE ELPP_DEFAULT_LOGGING_FLAGS=4096 ) -install (TARGETS ripe DESTINATION lib) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/unofficial-ripe-config-version.cmake + VERSION "${RIPE_VERSION}" + COMPATIBILITY AnyNewerVersion +) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/unofficial-ripe-config-version.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/unofficial-ripe-config.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-ripe +) + +install (TARGETS ripe + EXPORT unofficial-ripe-targets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) install (FILES include/Ripe.h DESTINATION "include") +install( + EXPORT unofficial-ripe-targets + NAMESPACE unofficial::ripe:: + DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-ripe" +) + ################################################ RIPE ############################################## add_executable (ripe-bin src/ripe.cc lib/Ripe.cc) ================================================ FILE: ports/abumq-ripe/devendoring.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4500382..e1a2c95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,8 +36,6 @@ if (APPLE) endif() endif() -list (APPEND CMAKE_CXX_FLAGS " ") - if (dll) add_definitions (-DRIPE_DLL) endif() @@ -48,9 +46,8 @@ endif() # Check for cryptopp (static) set(CryptoPP_USE_STATIC_LIBS ON) -find_package(CryptoPP REQUIRED) -message ("-- Crypto++ binary: " ${CRYPTOPP_LIBRARY}) -include_directories (${CRYPTOPP_INCLUDE_DIRS}) +find_package(CRYPTOPP NAMES cryptopp CONFIG REQUIRED) +set(CRYPTOPP_LIBRARIES cryptopp::cryptopp) find_package(ZLIB REQUIRED) if (ZLIB_FOUND) @@ -92,7 +89,7 @@ set_target_properties(ripe PROPERTIES ) target_link_libraries(ripe - ${CRYPTOPP_LIBRARIES} + cryptopp::cryptopp ${ZLIB_LIBRARIES} ) @@ -107,7 +104,7 @@ install (FILES include/Ripe.h DESTINATION "include") add_executable (ripe-bin src/ripe.cc lib/Ripe.cc) #target_link_libraries (ripe-bin ripe) -target_link_libraries (ripe-bin ${CRYPTOPP_LIBRARIES} ${ZLIB_LIBRARIES}) +target_link_libraries (ripe-bin cryptopp::cryptopp ${ZLIB_LIBRARIES}) set_target_properties (ripe-bin PROPERTIES OUTPUT_NAME "ripe" ================================================ FILE: ports/abumq-ripe/fix-cryptopp-pem-api.patch ================================================ diff --git a/lib/Ripe.cc b/lib/Ripe.cc index 1111111..2222222 100644 --- a/lib/Ripe.cc +++ b/lib/Ripe.cc @@ -242,7 +242,7 @@ Ripe::KeyPair Ripe::generateRSAKeyPair(unsigned int length, const std::string& if (secret.empty()) { PEM_Save(snk, privateKey); } else { - PEM_Save(snk, rng, privateKey, PRIVATE_RSA_ALGORITHM, secret.data(), secret.size()); + PEM_Save(snk, privateKey, rng, PRIVATE_RSA_ALGORITHM, secret.data(), secret.size()); } snk.MessageEnd(); } ================================================ FILE: ports/abumq-ripe/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Ripe has several issues with dynamic linkage on Windows endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abumq/ripe REF v${VERSION} SHA512 d89c80349eb7a245f825755b703401a412f934390c869607cfcaa02907f375e410d6ad2220255de475e215e7fea9a17c3fba61423e2632c1be7a40cadb69ad86 HEAD_REF master PATCHES devendoring.patch cmake-config-exports.patch fix-cryptopp-pem-api.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-ripe-config.cmake" DESTINATION "${SOURCE_PATH}/cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtest=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-ripe") vcpkg_copy_tools(TOOL_NAMES ripe AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/abumq-ripe/unofficial-ripe-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(cryptopp CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/unofficial-ripe-targets.cmake) ================================================ FILE: ports/abumq-ripe/vcpkg.json ================================================ { "name": "abumq-ripe", "version": "4.2.2", "port-version": 1, "description": "Lightweight cryptography library wrapper", "homepage": "https://github.com/abumq/ripe", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "cryptopp", "features": [ "pem-pack" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/ace/portfile.cmake ================================================ # Using zip archive under Linux would cause sh/perl to report "No such file or directory" or "bad interpreter" # when invoking `prj_install.pl`. # So far this issue haven't yet be triggered under WSL 1 distributions. Not sure the root cause of it. string(REPLACE "." "_" VERSION_DIRECTORY "${VERSION}") if("tao" IN_LIST FEATURES) # Don't change to vcpkg_from_github! This points to a release and not an archive vcpkg_download_distfile(ARCHIVE URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${VERSION_DIRECTORY}/ACE%2BTAO-src-${VERSION}.tar.gz" FILENAME "ACE-TAO-src-${VERSION}.tar.gz" SHA512 cf582fc5cb5e1df33ade341c73f841d84048b804a354a5095ef2eb44bc32e3edcb42e9335bcabff3363582552ce8e4c64d96625b2ec20cf6e5b346320b3f422c ) else() # Don't change to vcpkg_from_github! This points to a release and not an archive vcpkg_download_distfile(ARCHIVE URLS "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${VERSION_DIRECTORY}/ACE-src-${VERSION}.tar.gz" FILENAME "ACE-src-${VERSION}.tar.gz" SHA512 137b0310b5b134939446e53ebe4a1af151b4bf272b85327733e4a6142ec5b424d78c61dee90dfb1f645d707ba19935a850250a82156973b0da2de121da148b6a ) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) set(ACE_ROOT "${SOURCE_PATH}") set(ENV{ACE_ROOT} "${ACE_ROOT}") set(ACE_SOURCE_PATH "${ACE_ROOT}/ace") if("tao" IN_LIST FEATURES) set(TAO_ROOT "${SOURCE_PATH}/TAO") set(ENV{TAO_ROOT} "${TAO_ROOT}") set(WORKSPACE "${TAO_ROOT}/TAO_ACE") else() set(WORKSPACE "${ACE_ROOT}/ace/ace") endif() if("wchar" IN_LIST FEATURES) list(APPEND ACE_FEATURE_LIST "uses_wchar=1") endif() if("zlib" IN_LIST FEATURES) list(APPEND ACE_FEATURE_LIST "zlib=1") set(ENV{ZLIB_ROOT} "${CURRENT_INSTALLED_DIR}") else() list(APPEND ACE_FEATURE_LIST "zlib=0") endif() if("ssl" IN_LIST FEATURES) list(APPEND ACE_FEATURE_LIST "ssl=1") list(APPEND ACE_FEATURE_LIST "openssl11=1") set(ENV{SSL_ROOT} "${CURRENT_INSTALLED_DIR}") else() list(APPEND ACE_FEATURE_LIST "ssl=0") endif() if("xml-utils" IN_LIST FEATURES) list(APPEND ACE_FEATURE_LIST "xerces3=1") set(ENV{XERCESCROOT} "${CURRENT_INSTALLED_DIR}") else() list(APPEND ACE_FEATURE_LIST "xerces3=0") endif() list(JOIN ACE_FEATURE_LIST "," ACE_FEATURES) # Acquire Perl and add it to PATH (for execution of MPC) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_PATH ${PERL} DIRECTORY) vcpkg_add_to_path("${PERL_PATH}") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") # Add ace/config.h file # see https://htmlpreview.github.io/?https://github.com/DOCGroup/ACE_TAO/blob/master/ACE/ACE-INSTALL.html if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_PLATFORM_TOOLSET MATCHES "v140") set(SOLUTION_TYPE vc14) elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") set(SOLUTION_TYPE vs2017) elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v142") set(SOLUTION_TYPE vs2019) else() set(SOLUTION_TYPE vs2022) endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(MPC_STATIC_FLAG -static) endif() set(config_h_contents "#include \"ace/config-windows.h\"\n") elseif(VCPKG_TARGET_IS_LINUX) set(SOLUTION_TYPE gnuace) set(config_h_contents "#include \"ace/config-linux.h\"\n") file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "CCFLAGS += -fPIC\ninclude $(ACE_ROOT)/include/makeinclude/platform_linux.GNU") elseif(VCPKG_TARGET_IS_OSX) set(SOLUTION_TYPE gnuace) set(config_h_contents "#include \"ace/config-macosx.h\"\n") file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "include $(ACE_ROOT)/include/makeinclude/platform_macosx.GNU") elseif (VCPKG_TARGET_IS_ANDROID) set(SOLUTION_TYPE gnuace) set(config_h_contents "#include \"ace/config-android.h\"\n") file(WRITE "${ACE_ROOT}/include/makeinclude/platform_macros.GNU" "include $(ACE_ROOT)/include/makeinclude/platform_android.GNU") set(ENV{ANDROID_ABI} "${VCPKG_DETECTED_CMAKE_ANDROID_ARCH_ABI}") set(ENV{android_ndk} "${VCPKG_DETECTED_CMAKE_ANDROID_NDK}") set(ENV{android_api} "${VCPKG_DETECTED_CMAKE_SYSTEM_VERSION}") endif() if("wchar" IN_LIST FEATURES) string(APPEND config_h_contents "#define ACE_USES_WCHAR 1\n") endif() file(WRITE "${ACE_SOURCE_PATH}/config.h" "${config_h_contents}") if(VCPKG_TARGET_IS_UWP) set(MPC_VALUE_TEMPLATE -value_template link_options+=/APPCONTAINER) endif() # Invoke mwc.pl to generate the necessary solution and project files vcpkg_execute_build_process( COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type "${SOLUTION_TYPE}" -features "${ACE_FEATURES}" "${WORKSPACE}.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE} WORKING_DIRECTORY "${ACE_ROOT}" LOGNAME mwc-${TARGET_TRIPLET} ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND ${PERL} "${ACE_ROOT}/bin/mwc.pl" -type "${SOLUTION_TYPE}" -features "${ACE_FEATURES}" "${ACE_ROOT}/ACEXML/ACEXML.mwc" ${MPC_STATIC_FLAG} ${MPC_VALUE_TEMPLATE} WORKING_DIRECTORY "${ACE_ROOT}/ACEXML" LOGNAME mwc-xml-${TARGET_TRIPLET} ) endif() if(VCPKG_TARGET_IS_WINDOWS) file(RELATIVE_PATH PROJECT_SUBPATH "${SOURCE_PATH}" "${WORKSPACE}.sln") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "${PROJECT_SUBPATH}" ) # ACE itself does not define an install target, so it is not clear which # headers are public and which not. For the moment we install everything # that is in the source path and ends in .h, .inl function(install_includes ORIGINAL_PATH RELATIVE_PATHS) foreach(RELATIVE_PATH ${RELATIVE_PATHS}) file( GLOB HEADER_FILES "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.h" "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.hpp" "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.inl" "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.cpp" "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.idl" "${ORIGINAL_PATH}/${RELATIVE_PATH}/*.pidl") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${RELATIVE_PATH}") endforeach() endfunction() set(SOURCE_COPY_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") # Install headers in subdirectory set(ACE_INCLUDE_FOLDERS "ace" "ace/Compression" "ace/Compression/rle" "ace/ETCL" "ace/QoS" "ace/Monitor_Control" "ace/os_include" "ace/os_include/arpa" "ace/os_include/net" "ace/os_include/netinet" "ace/os_include/sys") install_includes("${SOURCE_COPY_PATH}" "${ACE_INCLUDE_FOLDERS}") if("ssl" IN_LIST FEATURES) install_includes("${SOURCE_COPY_PATH}" "ace/SSL") endif() if("tao" IN_LIST FEATURES) set(ACEXML_INCLUDE_FOLDERS "ACEXML/apps/svcconf" "ACEXML/common" "ACEXML/parser/parser") install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}") set(ACE_PROTOCOLS_INCLUDE_FOLDERS "ace/HTBP" "ace/INet" "ace/RMCast" "ace/TMCast") install_includes("${SOURCE_COPY_PATH}/protocols" "${ACE_PROTOCOLS_INCLUDE_FOLDERS}") install_includes("${SOURCE_COPY_PATH}" "Kokyu") set(TAO_ORBSVCS_INCLUDE_FOLDERS "orbsvcs" "orbsvcs/AV" "orbsvcs/Concurrency" "orbsvcs/CosEvent" "orbsvcs/Event" "orbsvcs/FaultTolerance" "orbsvcs/FtRtEvent/ClientORB" "orbsvcs/FtRtEvent/EventChannel" "orbsvcs/FtRtEvent/Utils" "orbsvcs/HTIOP" "orbsvcs/IFRService" "orbsvcs/LifeCycle" "orbsvcs/LoadBalancing" "orbsvcs/Log" "orbsvcs/Naming" "orbsvcs/Naming/FaultTolerant" "orbsvcs/Notify" "orbsvcs/Notify/Any" "orbsvcs/Notify/MonitorControl" "orbsvcs/Notify/MonitorControlExt" "orbsvcs/Notify/Sequence" "orbsvcs/Notify/Structured" "orbsvcs/PortableGroup" "orbsvcs/Property" "orbsvcs/Sched" "orbsvcs/Security" "orbsvcs/Time" "orbsvcs/Trader") if("ssl" IN_LIST FEATURES) list(APPEND TAO_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/SSLIOP") endif() install_includes("${SOURCE_COPY_PATH}/TAO/orbsvcs" "${TAO_ORBSVCS_INCLUDE_FOLDERS}") set(TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS "orbsvcs/FT_ReplicationManager" "orbsvcs/Notify_Service") install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_ROOT_ORBSVCS_INCLUDE_FOLDERS}") set(TAO_INCLUDE_FOLDERS "tao" "tao/AnyTypeCode" "tao/BiDir_GIOP" "tao/CSD_Framework" "tao/CSD_ThreadPool" "tao/CodecFactory" "tao/Codeset" "tao/Compression" "tao/Compression/rle" "tao/DiffServPolicy" "tao/DynamicAny" "tao/DynamicInterface" "tao/Dynamic_TP" "tao/ETCL" "tao/EndpointPolicy" "tao/IFR_Client" "tao/IORInterceptor" "tao/IORManipulation" "tao/IORTable" "tao/ImR_Client" "tao/Messaging" "tao/Monitor" "tao/ObjRefTemplate" "tao/PI" "tao/PI_Server" "tao/PortableServer" "tao/RTCORBA" "tao/RTPortableServer" "tao/RTScheduling" "tao/SmartProxies" "tao/Strategies" "tao/TransportCurrent" "tao/TypeCodeFactory" "tao/Utils" "tao/Valuetype" "tao/ZIOP") if("zlib" IN_LIST FEATURES) list(APPEND TAO_INCLUDE_FOLDERS "tao/Compression/zlib") endif() install_includes("${SOURCE_COPY_PATH}/TAO" "${TAO_INCLUDE_FOLDERS}") endif() if("xml" IN_LIST FEATURES) file(RELATIVE_PATH PROJECT_SUBPATH_XML "${SOURCE_PATH}" "${ACE_ROOT}/ACEXML/ACEXML.sln") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "${PROJECT_SUBPATH_XML}" ) set(ACEXML_INCLUDE_FOLDERS "ACEXML/common" "ACEXML/parser/parser") install_includes("${SOURCE_COPY_PATH}" "${ACEXML_INCLUDE_FOLDERS}") endif() # Remove dlls without any export if("tao" IN_LIST FEATURES OR "xml" IN_LIST FEATURES) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.dll" "${CURRENT_PACKAGES_DIR}/bin/ACEXML_XML_Svc_Conf_Parser.pdb" "${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/ACEXML_XML_Svc_Conf_Parserd_dll.pdb") endif() endif() elseif(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_ANDROID) FIND_PROGRAM(MAKE make) IF (NOT MAKE) MESSAGE(FATAL_ERROR "MAKE not found") ENDIF () if("ssl" IN_LIST FEATURES) list(APPEND _ace_makefile_macros "ssl=1") endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND _ace_makefile_macros "static_libs_only=1") endif() set(ENV{INSTALL_PREFIX} "${CURRENT_PACKAGES_DIR}") # Set `PWD` environment variable since ACE's `install` make target calculates install dir using this env. set(_prev_env $ENV{PWD}) get_filename_component(WORKING_DIR "${WORKSPACE}" DIRECTORY) set(ENV{PWD} "${WORKING_DIR}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Building ${TARGET_TRIPLET}-dbg") vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME make-${TARGET_TRIPLET}-dbg ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} "debug=1" "optimize=0" "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML" LOGNAME make-xml-${TARGET_TRIPLET}-dbg ) endif() message(STATUS "Building ${TARGET_TRIPLET}-dbg done") message(STATUS "Packaging ${TARGET_TRIPLET}-dbg") vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} install WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME install-${TARGET_TRIPLET}-dbg ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} install WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML" LOGNAME install-xml-${TARGET_TRIPLET}-dbg ) endif() file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") file(GLOB _pkg_components "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(_pkg_comp ${_pkg_components}) file(READ ${_pkg_comp} _content) string(REPLACE "libdir=${CURRENT_PACKAGES_DIR}/lib" "libdir=${CURRENT_PACKAGES_DIR}/debug/lib" _content ${_content}) file(WRITE ${_pkg_comp} ${_content}) endforeach() message(STATUS "Packaging ${TARGET_TRIPLET}-dbg done") vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} realclean WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME realclean-${TARGET_TRIPLET}-dbg ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} realclean WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML" LOGNAME realclean-xml-${TARGET_TRIPLET}-dbg ) endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") message(STATUS "Building ${TARGET_TRIPLET}-rel") vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME make-${TARGET_TRIPLET}-rel ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML" LOGNAME make-xml-${TARGET_TRIPLET}-rel ) endif() message(STATUS "Building ${TARGET_TRIPLET}-rel done") message(STATUS "Packaging ${TARGET_TRIPLET}-rel") vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} install WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME install-${TARGET_TRIPLET}-rel ) if("xml" IN_LIST FEATURES) vcpkg_execute_build_process( COMMAND make ${_ace_makefile_macros} install WORKING_DIRECTORY "${WORKING_DIR}/../ACEXML" LOGNAME install-xml-${TARGET_TRIPLET}-rel ) endif() if("tao" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() message(STATUS "Packaging ${TARGET_TRIPLET}-rel done") endif() # Restore `PWD` environment variable set($ENV{PWD} _prev_env) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/ace/bin/MakeProjectCreator") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/ace/ace-devel.sh") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/tao/tao-devel.sh") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/ace/vcpkg.json ================================================ { "name": "ace", "version": "8.0.5", "maintainers": "Johnny Willemsen ", "description": "The ADAPTIVE Communication Environment", "homepage": "https://github.com/DOCGroup/ACE_TAO", "license": "DOC", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ], "features": { "ssl": { "description": "Enable SSL/TLS features in ACE", "dependencies": [ "openssl" ] }, "tao": { "description": "The ACE ORB", "supports": "native | !(windows & arm)" }, "wchar": { "description": "Enable extra wide char functions in ACE", "supports": "!osx" }, "xml": { "description": "Enable XML features in ACE" }, "xml-utils": { "description": "Include the ACE_XML_Utils library", "dependencies": [ { "name": "xerces-c", "features": [ "xmlch-wchar" ] } ] }, "zlib": { "description": "Enable zlib support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/acl/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://download.savannah.nongnu.org/releases/acl/acl-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/acl/acl-${VERSION}.tar.xz" FILENAME "acl-${VERSION}.tar.xz" SHA512 c2d061dbfd28c00cecbc1ae614d67f3138202bf4d39b383f2df4c6a8b10b830f33acec620fb211f268478737dde4037d338a5823af445253cb088c48a135099b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/COPYING.LGPL") ================================================ FILE: ports/acl/vcpkg.json ================================================ { "name": "acl", "version-semver": "2.3.2", "port-version": 1, "description": "Commands for Manipulating POSIX Access Control Lists", "homepage": "https://savannah.nongnu.org/projects/acl", "license": "LGPL-2.1-or-later", "supports": "linux", "dependencies": [ "attr", { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/activemq-cpp/FunctionLevelLinkingOn.diff ================================================ diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj index a43f072..54b4822 100644 --- a/vs2010-build/activemq-cpp.vcxproj +++ b/vs2010-build/activemq-cpp.vcxproj @@ -2576,7 +2576,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2602,7 +2602,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2628,7 +2628,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2656,7 +2656,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2684,7 +2684,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2710,7 +2710,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2736,7 +2736,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true @@ -2764,7 +2764,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false Default - false + true false true ================================================ FILE: ports/activemq-cpp/activemq-cppConfig.cmake ================================================ set(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}") foreach(i RANGE 1 2) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) if (_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") break() endif() endforeach() # Macro to find OS dependencies for windows builds. # Sets up for failure find_package() failure if dependencies not found. # On success, creates targets unofficial::activemq-cpp::ws2, unofficial::activemq-cpp::rpcrt4, and unofficial::activemq-cpp::mswsock. # Sets boolean ${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND to TRUE or FALSE to indicate success or failure. macro(_activemq_cpp_windows_dependencies) find_library(ACTIVEMQ_CPP_LIBWS2 WS2_32) find_file(ACTIVEMQ_CPP_DLLWS2 WS2_32.dll) find_library(ACTIVEMQ_CPP_LIBRPCRT4 RpcRT4) find_file(ACTIVEMQ_CPP_DLLRPCRT4 RpcRT4.dll) find_library(ACTIVEMQ_CPP_LIBMSWSOCK MsWsock) find_file(ACTIVEMQ_CPP_DLLMSWSOCK MsWsock.dll) if(ACTIVEMQ_CPP_LIBWS2 AND ACTIVEMQ_CPP_DLLWS2 AND ACTIVEMQ_CPP_LIBRPCRT4 AND ACTIVEMQ_CPP_DLLRPCRT4 AND ACTIVEMQ_CPP_LIBMSWSOCK AND ACTIVEMQ_CPP_DLLMSWSOCK) add_library(unofficial::activemq-cpp::ws2 SHARED IMPORTED) set_target_properties(unofficial::activemq-cpp::ws2 PROPERTIES IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLWS2}" IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBWS2}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" ) add_library(unofficial::activemq-cpp::rpcrt4 SHARED IMPORTED) set_target_properties(unofficial::activemq-cpp::rpcrt4 PROPERTIES IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLRPCRT4}" IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBRPCRT4}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" ) add_library(unofficial::activemq-cpp::mswsock SHARED IMPORTED) set_target_properties(unofficial::activemq-cpp::mswsock PROPERTIES IMPORTED_LOCATION "${ACTIVEMQ_CPP_DLLMSWSOCK}" IMPORTED_IMPLIB "${ACTIVEMQ_CPP_LIBMSWSOCK}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" ) set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND TRUE) else() if (NOT ACTIVEMQ_CPP_LIBWS2) list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.lib") endif() if (NOT ACTIVEMQ_CPP_DLLWS2) list(APPEND _ACTIVEMQ_CPP_MISSINGS "WS2_32.dll") endif() if (NOT ACTIVEMQ_CPP_LIBRPCRT4) list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.lib") endif() if (NOT ACTIVEMQ_CPP_DLLRPCRT4) list(APPEND _ACTIVEMQ_CPP_MISSINGS "RpcRT4.dll") endif() if (NOT ACTIVEMQ_CPP_LIBMSWSOCK) list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.lib") endif() if (NOT ACTIVEMQ_CPP_DLLMSWSOCK) list(APPEND _ACTIVEMQ_CPP_MISSINGS "MsWsock.dll") endif() list(JOIN _ACTIVEMQ_CPP_MISSINGS ", " _ACTIVEMQ_CPP_MISSINGS_STR) list(LENGTH _ACTIVEMQ_CPP_MISSINGS _ACTIVEMQ_CPP_MISSINGS_COUNT) if(_ACTIVEMQ_CPP_MISSINGS_COUNT EQUAL 1) set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependency: ${_ACTIVEMQ_CPP_MISSINGS_STR}") else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: Did not find windows dependencies: ${_ACTIVEMQ_CPP_MISSINGS_STR}") endif() set(_ACTIVEMQ_CPP_MISSINGS_COUNT) set(_ACTIVEMQ_CPP_MISSINGS_STR) set(_ACTIVEMQ_CPP_MISSINGS) set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) set(${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND FALSE) endif() endmacro() # Set the variable named VARNAME to "${FILE}" if the file FILE exists; clears it # otherwise. Opposite for VARNAME_MISSING. function(_set_exists VARNAME VARNAME_MISSING FILE) if (EXISTS "${FILE}") set(${VARNAME} "${FILE}" PARENT_SCOPE) unset(${VARNAME_MISSING} PARENT_SCOPE) else() set(${VARNAME_MISSING} "${FILE}" PARENT_SCOPE) unset(${VARNAME} PARENT_SCOPE) endif() endfunction() # Add the unofficial::activemq-cpp::apr and unofficial::activemq-cpp::activemq-cpp targets # Doesn't work for Windows DLL installs because that takes more args... function(_add_apr_and_amq_targets INC_PARENT LIB_TYPE APR_REL APR_DEB AMQ_REL AMQ_DEB DEPS) # the APR port doesn't have a CMake config target so create one add_library(unofficial::activemq-cpp::apr ${LIB_TYPE} IMPORTED) set_target_properties(unofficial::activemq-cpp::apr PROPERTIES MAP_IMPORTED_CONFIG_MINSIZEREL Release MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release IMPORTED_LOCATION_RELEASE "${APR_REL}" IMPORTED_LOCATION_DEBUG "${APR_DEB}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include" ) # the create the activemq-cpp CMake config target with a dependency on apr add_library(unofficial::activemq-cpp::activemq-cpp ${LIB_TYPE} IMPORTED) set_target_properties(unofficial::activemq-cpp::activemq-cpp PROPERTIES MAP_IMPORTED_CONFIG_MINSIZEREL Release MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release IMPORTED_LOCATION_DEBUG "${AMQ_DEB}" IMPORTED_LOCATION_RELEASE "${AMQ_REL}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" INTERFACE_INCLUDE_DIRECTORIES "${INC_PARENT}/include" INTERFACE_LINK_LIBRARIES "${DEPS}" ) endfunction() # # Since this is a CMake config file for a non-CMake project, and one that is # for vcpkg to as well, the config file has to cover the various products of # the builds on the various platforms. # # Below, Windows and Linux are covered for static and shared libraries. # _set_exists(ACTIVEMQ_CPP_DLL_RELEASE _ACTIVEMQ_CPP_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/bin/activemq-cpp.dll") _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/activemq-cpp.lib") _set_exists(ACTIVEMQ_CPP_DLL_DEBUG _ACTIVEMQ_CPP_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/bin/activemq-cppd.dll") _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/activemq-cppd.lib") if (ACTIVEMQ_CPP_DLL_RELEASE) # # Windows shared install # if (ACTIVEMQ_CPP_LIB_RELEASE AND ACTIVEMQ_CPP_DLL_DEBUG AND ACTIVEMQ_CPP_LIB_DEBUG) _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.lib") _set_exists(ACTIVEMQ_CPP_APR_DLL_RELEASE _ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING "${_IMPORT_PREFIX}/bin/libapr-1.dll") _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.lib") _set_exists(ACTIVEMQ_CPP_APR_DLL_DEBUG _ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/bin/libapr-1.dll") if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_DLL_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG AND ACTIVEMQ_CPP_APR_DLL_DEBUG) _activemq_cpp_windows_dependencies() if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND) # the APR port doesn't have a CMake config target so create one add_library(unofficial::activemq-cpp::apr SHARED IMPORTED) set_target_properties(unofficial::activemq-cpp::apr PROPERTIES MAP_IMPORTED_CONFIG_MINSIZEREL Release MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_APR_DLL_RELEASE}" IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_APR_LIB_RELEASE}" IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_APR_DLL_DEBUG}" IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_APR_LIB_DEBUG}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) # the create the activemq-cpp CMake config target with a dependency on apr add_library(unofficial::activemq-cpp::activemq-cpp SHARED IMPORTED) set_target_properties(unofficial::activemq-cpp::activemq-cpp PROPERTIES MAP_IMPORTED_CONFIG_MINSIZEREL Release MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release IMPORTED_LOCATION_RELEASE "${ACTIVEMQ_CPP_DLL_RELEASE}" IMPORTED_IMPLIB_RELEASE "${ACTIVEMQ_CPP_LIB_RELEASE}" IMPORTED_LOCATION_DEBUG "${ACTIVEMQ_CPP_DLL_DEBUG}" IMPORTED_IMPLIB_DEBUG "${ACTIVEMQ_CPP_LIB_DEBUG}" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" INTERFACE_LINK_LIBRARIES "unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock" ) set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.") foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_DLL_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING} ${_ACTIVEMQ_CPP_APR_DLL_DEBUG_MISSING} ) string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.") endforeach() set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) set(activemq-cppConfig_FOUND TRUE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${_IMPORT_PREFIX}debug/bin/activemq-cppd.dll.") foreach(_MISSING ${_ACTIVEMQ_CPP_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_DLL_DEBUG_MISSING} ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}) string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.") endforeach() set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() # # not Windows shared install # _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.lib") _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.lib") if (ACTIVEMQ_CPP_LIB_RELEASE) # # Windows static install # if (ACTIVEMQ_CPP_LIB_DEBUG) _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/apr-1.lib") _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/apr-1.lib") if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG) _activemq_cpp_windows_dependencies() if (${CMAKE_FIND_PACKAGE_NAME}_WINDOWS_DEPENDENCIES_FOUND) _add_apr_and_amq_targets("${_IMPORT_PREFIX}" STATIC "${ACTIVEMQ_CPP_APR_LIB_RELEASE}" "${ACTIVEMQ_CPP_APR_LIB_DEBUG}" "${ACTIVEMQ_CPP_LIB_RELEASE}" "${ACTIVEMQ_CPP_LIB_DEBUG}" "unofficial::activemq-cpp::apr;unofficial::activemq-cpp::ws2;unofficial::activemq-cpp::rpcrt4;unofficial::activemq-cpp::mswsock") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.") foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING}) string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.") endforeach() set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}.") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() # # not Windows shared or static install # _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.so.19.0.5") _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.so.19.0.5") if(ACTIVEMQ_CPP_LIB_RELEASE) # # Linux shared install (this may pick up some other Unix-like installs) # if (ACTIVEMQ_CPP_LIB_DEBUG) _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.so") _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.so") if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG) find_package(Threads) if (Threads_FOUND) _add_apr_and_amq_targets("${_IMPORT_PREFIX}" SHARED "${ACTIVEMQ_CPP_APR_LIB_RELEASE}" "${ACTIVEMQ_CPP_APR_LIB_DEBUG}" "${ACTIVEMQ_CPP_LIB_RELEASE}" "${ACTIVEMQ_CPP_LIB_DEBUG}" "unofficial::activemq-cpp::apr;Threads::Threads") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE) else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.") foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING}) string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.") endforeach() set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() # # not Windows shared or static or Linux shared install # _set_exists(ACTIVEMQ_CPP_LIB_RELEASE _ACTIVEMQ_CPP_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libactivemq-cpp.a") _set_exists(ACTIVEMQ_CPP_LIB_DEBUG _ACTIVEMQ_CPP_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libactivemq-cpp.a") if (ACTIVEMQ_CPP_LIB_RELEASE) # # Linux static install (this may pick up some other Unix-like installs) # if (ACTIVEMQ_CPP_LIB_DEBUG) _set_exists(ACTIVEMQ_CPP_APR_LIB_RELEASE _ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING "${_IMPORT_PREFIX}/lib/libapr-1.a") _set_exists(ACTIVEMQ_CPP_APR_LIB_DEBUG _ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING "${_IMPORT_PREFIX}/debug/lib/libapr-1.a") if (ACTIVEMQ_CPP_APR_LIB_RELEASE AND ACTIVEMQ_CPP_APR_LIB_DEBUG) find_package(Threads) if (Threads_FOUND) _add_apr_and_amq_targets("${_IMPORT_PREFIX}" STATIC "${ACTIVEMQ_CPP_APR_LIB_RELEASE}" "${ACTIVEMQ_CPP_APR_LIB_DEBUG}" "${ACTIVEMQ_CPP_LIB_RELEASE}" "${ACTIVEMQ_CPP_LIB_DEBUG}" "unofficial::activemq-cpp::apr;Threads::Threads") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE) else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: threads library not found.") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install dependency failure: apr vcpkg port not found in ${_IMPORT_PREFIX}.") foreach(_MISSING ${_ACTIVEMQ_CPP_APR_LIB_RELEASE_MISSING} ${_ACTIVEMQ_CPP_APR_LIB_DEBUG_MISSING}) string(APPEND ${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE " \"${_MISSING}\" not found.") endforeach() set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg install error: Found ${ACTIVEMQ_CPP_LIB_RELEASE} but not ${_ACTIVEMQ_CPP_LIB_DEBUG_MISSING}") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() else() # # Some other configuration... # (not Windows shared or static or Linux shared or static install) # set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Activemq-cpp vcpkg unexpected install: could not find any expected activemq-cpp libraries under ${_IMPORT_PREFIX}. The CMake configuration file only understands Windows and Linux static and shared installs from vcpkg.") set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) endif() endif() endif() endif() ================================================ FILE: ports/activemq-cpp/fix-crt-linkage-dyn.patch ================================================ diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj index 54b4822..6b35511 100644 --- a/vs2010-build/activemq-cpp.vcxproj +++ b/vs2010-build/activemq-cpp.vcxproj @@ -2578,6 +2578,7 @@ Default true false + MultiThreadedDebugDLL true @@ -2687,6 +2688,7 @@ true false true + MultiThreadedDebugDLL @@ -2794,6 +2796,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false true + MultiThreadedDLL @@ -2906,6 +2909,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false true + MultiThreadedDLL ================================================ FILE: ports/activemq-cpp/fix-crt-linkage.patch ================================================ diff --git a/vs2010-build/activemq-cpp.vcxproj b/vs2010-build/activemq-cpp.vcxproj index 54b4822..6b35511 100644 --- a/vs2010-build/activemq-cpp.vcxproj +++ b/vs2010-build/activemq-cpp.vcxproj @@ -2578,6 +2578,7 @@ Default true false + MultiThreadedDebug true @@ -2687,6 +2688,7 @@ true false true + MultiThreadedDebug @@ -2794,6 +2796,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false true + MultiThreaded @@ -2906,6 +2909,7 @@ ../src/main;$(APR_DIST)\$(PlatformName)\include;$(OPENSSL_DIST)\$(PlatformName)\include;$(PLATFORM_SDK)\include;%(AdditionalIncludeDirectories) false true + MultiThreaded ================================================ FILE: ports/activemq-cpp/portfile.cmake ================================================ set(PATCHES ) if (NOT VCPKG_TARGET_IS_LINUX) set(PATCHES FunctionLevelLinkingOn.diff) if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND PATCHES fix-crt-linkage.patch) else() list(APPEND PATCHES fix-crt-linkage-dyn.patch) endif() endif() vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/activemq/activemq-cpp/${VERSION}/activemq-cpp-library-${VERSION}-src.tar.bz2" FILENAME "activemq-cpp-library-${VERSION}-src.tar.bz2" SHA512 83692d3dfd5ecf557fc88d204a03bf169ce6180bcff27be41b09409b8f7793368ffbeed42d98ef6374c6b6b477d9beb8a4a9ac584df9e56725ec59ceceaa6ae2 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ${PATCHES} ) if (VCPKG_TARGET_IS_LINUX) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "--with-openssl=${CURRENT_INSTALLED_DIR}" "--with-apr=${CURRENT_INSTALLED_DIR}/tools/apr" ) vcpkg_make_install() file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/activemq" "${CURRENT_PACKAGES_DIR}/include/activemq") file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/cms" "${CURRENT_PACKAGES_DIR}/include/cms") file(RENAME "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}/decaf" "${CURRENT_PACKAGES_DIR}/include/decaf") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/activemq-cpp-${VERSION}") vcpkg_copy_pdbs() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/activemqcpp-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/activemqcpp-config" "${CURRENT_INSTALLED_DIR}/debug" "`dirname $0`/../../../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/activemqcpp-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") endif() else() set(ACTIVEMQCPP_MSVC_PROJ "${SOURCE_PATH}/vs2010-build/activemq-cpp.vcxproj") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ACTIVEMQCPP_SHARED_LIB) if (ACTIVEMQCPP_SHARED_LIB) set(RELEASE_CONF "ReleaseDLL") set(DEBUG_CONF "DebugDLL") set(ACTIVEMQCPP_LIB_PREFFIX ) set(ACTIVEMQCPP_LIB_SUFFIX d) vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";apr-1.lib" ";libapr-1.lib" IGNORE_UNCHANGED) else() set(RELEASE_CONF "Release") set(DEBUG_CONF "Debug") set(ACTIVEMQCPP_LIB_PREFFIX lib) set(ACTIVEMQCPP_LIB_SUFFIX ) vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" ";libapr-1.lib" ";apr-1.lib") endif() if(VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(BUILD_ARCH "Win32") else() set(BUILD_ARCH "${VCPKG_TARGET_ARCHITECTURE}") endif() string(REPLACE "/" "\\" WIN_SOURCE_PATH "${SOURCE_PATH}") vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClCompile Include=\"..\\src" "ClCompile Include=\"${WIN_SOURCE_PATH}\\src") vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "ClInclude Include=\"..\\src" "ClInclude Include=\"${WIN_SOURCE_PATH}\\src") vcpkg_replace_string("${ACTIVEMQCPP_MSVC_PROJ}" "../src/main" "${WIN_SOURCE_PATH}\\src\\main") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}/vs2010-build" PROJECT_SUBPATH "activemq-cpp.vcxproj" RELEASE_CONFIGURATION ${RELEASE_CONF} DEBUG_CONFIGURATION ${DEBUG_CONF} PLATFORM ${BUILD_ARCH} ) if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${BUILD_ARCH}/${RELEASE_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) if (ACTIVEMQCPP_SHARED_LIB) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin" ) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${BUILD_ARCH}/${RELEASE_CONF}/activemq-cpp.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin" ) endif() endif() if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${BUILD_ARCH}/${DEBUG_CONF}/${ACTIVEMQCPP_LIB_PREFFIX}activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) if(ACTIVEMQCPP_SHARED_LIB) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin" ) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${BUILD_ARCH}/${DEBUG_CONF}/activemq-cpp${ACTIVEMQCPP_LIB_SUFFIX}.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() endif() file(COPY "${SOURCE_PATH}/src/main/activemq" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h) file(COPY "${SOURCE_PATH}/src/main/cms" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h) file(COPY "${SOURCE_PATH}/src/main/decaf" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN *.h) endif() vcpkg_fixup_pkgconfig() file(INSTALL "${CURRENT_PORT_DIR}/activemq-cppConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/activemq-cpp") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/activemq-cpp/vcpkg.json ================================================ { "name": "activemq-cpp", "version-semver": "3.9.5", "port-version": 18, "description": "Apache ActiveMQ is the most popular and powerful open source messaging and Integration Patterns server.", "license": "Apache-2.0", "supports": "(windows & !uwp & (x86 | x64)) | (!windows & !osx)", "dependencies": [ "apr", { "name": "libuuid", "platform": "!windows & !osx" }, { "name": "vcpkg-make", "host": true, "platform": "linux" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/ada-idna/install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a3abd0f..c37c36b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,10 @@ include(GNUInstallDirs) include(CTest) include(cmake/idna-flags.cmake) +if(ADA_USE_SIMDUTF) + find_package(simdutf CONFIG REQUIRED) +endif() + add_subdirectory(src) option(ADA_USE_SIMDUTF "Whether to use SIMDUTF for unicode transcoding" OFF) @@ -20,16 +24,6 @@ if(ADA_IDNA_BENCHMARKS OR BUILD_TESTING) include(cmake/CPM.cmake) endif() -if(ADA_USE_SIMDUTF) - include(cmake/CPM.cmake) - CPMAddPackage( - NAME simdutf - GITHUB_REPOSITORY simdutf/simdutf - VERSION 7.0.0 - OPTIONS "SIMDUTF_TESTS OFF" - ) -endif() - if (ADA_IDNA_BENCHMARKS) message(STATUS "Ada benchmarks enabled.") CPMAddPackage( @@ -63,8 +57,6 @@ else() endif() endif(BUILD_TESTING) -add_subdirectory(singleheader) - add_library(ada-idna::ada-idna ALIAS ada-idna) set_target_properties( @@ -95,3 +87,8 @@ install( ARCHIVE COMPONENT ada-idna_development INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) + +install(EXPORT ada-idna_targets + FILE unofficial-ada-idna-config.cmake + NAMESPACE unofficial::ada-idna:: + DESTINATION share/unofficial-ada-idna) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e48bcda..3e7ba16 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(ada-idna PRIVATE $") if(ADA_USE_SIMDUTF) - target_link_libraries(ada-idna PRIVATE simdutf) + target_link_libraries(ada-idna PRIVATE simdutf::simdutf) target_compile_definitions(ada-idna PRIVATE ADA_USE_SIMDUTF) endif() ================================================ FILE: ports/ada-idna/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ada-url/idna REF "${VERSION}" SHA512 d161ca25d37746b6127ff7dadf6a6475e73802575fd75362f46259512f7f2c9a73154ad6faf9411fd73fbdf46e6e7c49fccfdeec5883d069025789742137db55 HEAD_REF main PATCHES install.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES simdutf ADA_USE_SIMDUTF ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DADA_IDNA_BENCHMARKS=OFF -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-ada-idna) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( COMMENT "ada-idna is dual licensed under Apache-2.0 and MIT" FILE_LIST "${SOURCE_PATH}/LICENSE-APACHE" "${SOURCE_PATH}/LICENSE-MIT" ) ================================================ FILE: ports/ada-idna/vcpkg.json ================================================ { "name": "ada-idna", "version": "0.4.0", "description": "C++ library implementing the to_ascii and to_unicode functions from the Unicode Technical Standard.", "homepage": "https://github.com/ada-url/idna", "license": "Apache-2.0 AND MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "simdutf": { "description": "Whether to use SIMDUTF for unicode transcoding", "dependencies": [ "simdutf" ] } } } ================================================ FILE: ports/ada-url/no-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d525b59..116095b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,6 @@ option(ADA_USE_SIMDUTF "Whether to use SIMDUTF for IDNA" OFF) # errors due to CPM, so this is here to support disabling all the testing # and tooling for ada if one only wishes to use the ada library. if(ADA_TESTING OR ADA_BENCHMARKS OR ADA_TOOLS OR ADA_USE_SIMDUTF) - include(cmake/CPM.cmake) # CPM requires git as an implicit dependency # We use googletest in the tests if(ADA_TESTING) diff --git a/tools/cli/CMakeLists.txt b/tools/cli/CMakeLists.txt index 5e7ffe0..f60a2d5 100644 --- a/tools/cli/CMakeLists.txt +++ b/tools/cli/CMakeLists.txt @@ -37,12 +37,8 @@ if(MSVC AND BUILD_SHARED_LIBS) "$" # <--this is in-file "$") # <--this is out-file path endif() -CPMAddPackage("gh:fmtlib/fmt#11.0.2") -CPMAddPackage( - GITHUB_REPOSITORY jarro2783/cxxopts - VERSION 3.2.0 - OPTIONS "CXXOPTS_BUILD_EXAMPLES NO" "CXXOPTS_BUILD_TESTS NO" "CXXOPTS_ENABLE_INSTALL YES" -) +find_package(cxxopts CONFIG REQUIRED) +find_package(fmt CONFIG REQUIRED) target_link_libraries(adaparse PRIVATE cxxopts::cxxopts fmt::fmt) if(MSVC OR MINGW) ================================================ FILE: ports/ada-url/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message(WARNING "Building ${PORT} requires a C++20 compliant compiler. GCC 12 and Clang 15 are known to work.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ada-url/ada REF "v${VERSION}" SHA512 b18f1a6508476579822881223b6f71768ece4cffa8586eef673051536b29c1ff2ac8ed0e63b53fcfa4171992ab6e7b418095998ac3dbc6aa099ca50feefa9faa HEAD_REF main PATCHES no-cpm.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools ADA_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DADA_BENCHMARKS=OFF -DADA_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON ${FEATURE_OPTIONS} OPTIONS_DEBUG -DADA_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME ada CONFIG_PATH "lib/cmake/ada") vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES adaparse AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-APACHE" "${SOURCE_PATH}/LICENSE-MIT") ================================================ FILE: ports/ada-url/vcpkg.json ================================================ { "name": "ada-url", "version": "3.4.3", "description": "WHATWG-compliant and fast URL parser written in modern C++", "homepage": "https://ada-url.com/", "license": "MIT OR Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build CLI tools (adaparse)", "supports": "!uwp", "dependencies": [ "cxxopts", "fmt" ] } } } ================================================ FILE: ports/ade/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/ade REF "v${VERSION}" SHA512 0a27e2e3278c34b76cc437823fdcf73d597cb4866fc6fd13059da41138b23e0eaea0326782a46b86967d9174d3aa67bfc8bdc281724cb7d0a8329387d56b9635 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ade/vcpkg.json ================================================ { "name": "ade", "version-string": "0.1.2e", "port-version": 1, "description": "ADE Framework is a graph construction, manipulation, and processing framework. ADE Framework is suitable for organizing data flow processing and execution.", "homepage": "https://github.com/opencv/ade", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/adios2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ornladios/ADIOS2 REF "v${VERSION}" SHA512 05decc3ff14e7458df9ec16ca6230a9770ca992e7d0ce3a18b3c9295a19dad94d8a9367102e50347a9487c6a3f35a8d52fbaa6a6fd98807aaec9636e607541ee HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES mpi ADIOS2_USE_MPI cuda ADIOS2_USE_CUDA python ADIOS2_USE_Python # requires numpy / mpi4py; so not exposed in the manifest yet zfp ADIOS2_USE_ZFP ) set(disabled_options "") list(APPEND disabled_options SZ LIBPRESSIO MGARD DAOS DataMan DataSpaces MHS SST BP5 IME Fortran SysVShMem Profiling) list(TRANSFORM disabled_options PREPEND "-DADIOS2_USE_") list(TRANSFORM disabled_options APPEND ":BOOL=OFF") set(enabled_options "") list(APPEND enabled_options BZip2 Blosc2 PNG ZeroMQ HDF5 Endian_Reverse Sodium) list(TRANSFORM enabled_options PREPEND "-DADIOS2_USE_") list(TRANSFORM enabled_options APPEND ":BOOL=OFF") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${disabled_options} ${enabled_options} -DBUILD_TESTING=OFF -DADIOS2_BUILD_EXAMPLES=OFF -DADIOS2_INSTALL_GENERATE_CONFIG=OFF MAYBE_UNUSED_VARIABLES ADIOS2_USE_DAOS ADIOS2_USE_DataMan ADIOS2_USE_DataSpaces ADIOS2_USE_SysVShMem ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") set(tools "adios2_reorganize" "bpls") if(ADIOS2_USE_MPI) list(APPEND tools "adios2_reorganize_mpi" "adios2_iotest") endif() vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/adios2_deactivate_bp" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/adios2_deactivate_bp") 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/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/adios2/toolkit/sst/dp" "${CURRENT_PACKAGES_DIR}/include/adios2/toolkit/sst/util") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/adios2/usage ================================================ The package adios2 provides CMake targets: find_package(adios2 CONFIG REQUIRED) target_link_libraries(main PRIVATE adios2::adios2) ================================================ FILE: ports/adios2/vcpkg.json ================================================ { "name": "adios2", "version": "2.9.2", "description": "Next generation of ADIOS developed in the Exascale Computing Program", "homepage": "https://github.com/ornladios/ADIOS2", "license": "Apache-2.0", "dependencies": [ "blosc", "bzip2", { "name": "hdf5", "default-features": false }, "libffi", "libpng", "libsodium", "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zeromq" ], "features": { "cuda": { "description": "Enable CUDA support", "dependencies": [ "cuda" ] }, "mpi": { "description": "Enable MPI support", "dependencies": [ { "name": "hdf5", "default-features": false, "features": [ "parallel" ] }, "mpi" ] }, "python": { "description": "Enable Python bindings", "dependencies": [ "python3", { "name": "python3", "host": true } ] }, "zfp": { "description": "Enable zfp support", "dependencies": [ "zfp" ] } } } ================================================ FILE: ports/advobfuscator/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andrivet/ADVobfuscator REF "v${VERSION}" SHA512 da8396304e45be018e878ef09e063f4f21383d0093973eaa5abaf5c6f0e391cb69b5d71b0c08cd88c732cf038d0395e876e5933f1e1cd369e6b4ac9df0139814 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/advobfuscator/vcpkg.json ================================================ { "name": "advobfuscator", "version": "2.1.1", "description": "Obfuscation library based on C++20 and metaprogramming", "homepage": "https://github.com/andrivet/ADVobfuscator", "license": "BSD-3-Clause-Clear", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aeron/patches/add-libuuid-vcpkg-support.patch ================================================ diff --git a/aeron-driver/src/main/c/CMakeLists.txt b/aeron-driver/src/main/c/CMakeLists.txt index 1234567..abcdefg 100644 --- a/aeron-driver/src/main/c/CMakeLists.txt +++ b/aeron-driver/src/main/c/CMakeLists.txt @@ -36,15 +36,39 @@ if (NOT MSVC) endif () check_include_file("bsd/stdlib.h" BSDSTDLIB_H_EXISTS) -check_include_file("uuid/uuid.h" UUID_H_EXISTS) find_library(LIBBSD_EXISTS NAMES bsd libbsd) -find_library(LIBUUID_EXISTS NAMES uuid libuuid libuuid.dll) +find_library(LIBUUID_SYSTEM NAMES uuid libuuid libuuid.dll) + +# In vcpkg builds on Linux, use vcpkg's libuuid +if(DEFINED VCPKG_TOOLCHAIN AND CMAKE_SYSTEM_NAME MATCHES "Linux") + find_package(unofficial-libuuid QUIET CONFIG) + if(TARGET unofficial::UUID::uuid) + get_target_property(UUID_INCLUDE_DIR unofficial::UUID::uuid INTERFACE_INCLUDE_DIRECTORIES) + if(UUID_INCLUDE_DIR) + list(APPEND CMAKE_REQUIRED_INCLUDES "${UUID_INCLUDE_DIR}") + endif() + list(APPEND CMAKE_REQUIRED_LIBRARIES "unofficial::UUID::uuid") + set(LIBUUID_EXISTS TRUE) + set(AERON_LIB_UUID_LIBS "unofficial::UUID::uuid") + set(UUID_H_EXISTS TRUE) + set(UUID_GENERATE_PROTOTYPE_EXISTS TRUE) + endif() +endif() + +if(NOT DEFINED LIBUUID_EXISTS OR NOT LIBUUID_EXISTS) + set(LIBUUID_EXISTS ${LIBUUID_SYSTEM}) +endif() + +# Only check for uuid headers if not found via vcpkg +if(NOT DEFINED UUID_H_EXISTS OR NOT UUID_H_EXISTS) + check_include_file("uuid/uuid.h" UUID_H_EXISTS) +endif() if (LIBBSD_EXISTS) set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES} -lbsd") endif () -if (LIBUUID_EXISTS) +if (LIBUUID_EXISTS AND NOT AERON_LIB_UUID_LIBS) set(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES} -luuid") endif () @@ -64,7 +88,9 @@ if (MSVC AND "${CMAKE_SYSTEM_NAME}" MATCHES "Windows") set(WSAPOLL_PROTOTYPE_EXISTS True) endif () -check_symbol_exists(uuid_generate "uuid/uuid.h" UUID_GENERATE_PROTOTYPE_EXISTS) +if(NOT DEFINED UUID_GENERATE_PROTOTYPE_EXISTS OR NOT UUID_GENERATE_PROTOTYPE_EXISTS) + check_symbol_exists(uuid_generate "uuid/uuid.h" UUID_GENERATE_PROTOTYPE_EXISTS) +endif() check_symbol_exists(poll "poll.h" POLL_PROTOTYPE_EXISTS) check_symbol_exists(epoll_create "sys/epoll.h" EPOLL_PROTOTYPE_EXISTS) @@ -387,7 +413,7 @@ if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") set(AERON_LIB_BSD_LIBS bsd) endif () - if (LIBUUID_EXISTS) + if (LIBUUID_EXISTS AND NOT AERON_LIB_UUID_LIBS) set(AERON_LIB_UUID_LIBS uuid) endif () @@ -400,7 +426,7 @@ if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") endif () if (CYGWIN) - if (LIBUUID_EXISTS) + if (LIBUUID_EXISTS AND NOT AERON_LIB_UUID_LIBS) set(AERON_LIB_UUID_LIBS uuid) endif () endif () ================================================ FILE: ports/aeron/patches/fix-static-crt-linkage.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1234567..abcdefg 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,10 +178,6 @@ elseif (MSVC) endif () add_compile_options(/Oy-) - add_compile_options($<$,$>:/MD>) - add_compile_options($<$,$>:/MDd>) add_compile_options($<$:/MP>) add_compile_options($<$:/wd4251>) - add_compile_options($<$,$>:/MD>) - add_compile_options($<$,$>:/MDd>) add_compile_options($<$,$>:/Od>) add_compile_options($<$,$>:/Zi>) ================================================ FILE: ports/aeron/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aeron-io/aeron REF "${VERSION}" SHA512 994356df46953a21728d84fc9425707603e98ea571d559d15100a14b329f505c36eb7d0ada86551fa7cfc8a4bc08af445e438191cd89cb42e6f11bbe8c00007e HEAD_REF master PATCHES patches/add-libuuid-vcpkg-support.patch patches/fix-static-crt-linkage.patch ) # Set archive option based on feature if("archive" IN_LIST FEATURES) set(BUILD_ARCHIVE ON) else() set(BUILD_ARCHIVE OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAERON_INSTALL_TARGETS=ON -DAERON_TESTS=OFF -DAERON_BUILD_SAMPLES=OFF -DBUILD_AERON_ARCHIVE_API=${BUILD_ARCHIVE} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/aeron) # Aeron always builds both static and shared libraries regardless of VCPKG_LIBRARY_LINKAGE. # Handle the shared library artifacts based on linkage type. if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # For static builds, remove shared library artifacts (DLLs, SOs, DYLIBs and their import libs) file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/aeron.dll" "${CURRENT_PACKAGES_DIR}/lib/aeron_client_shared.dll" "${CURRENT_PACKAGES_DIR}/lib/aeron_driver.dll" "${CURRENT_PACKAGES_DIR}/lib/aeron.lib" "${CURRENT_PACKAGES_DIR}/lib/aeron_client_shared.lib" "${CURRENT_PACKAGES_DIR}/lib/aeron_driver.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron_client_shared.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron_driver.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron_client_shared.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/aeron_driver.lib" ) else() # For dynamic builds, move DLLs from lib to bin file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll") file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll") if(RELEASE_DLLS) file(COPY ${RELEASE_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE ${RELEASE_DLLS}) endif() if(DEBUG_DLLS) file(COPY ${DEBUG_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE ${DEBUG_DLLS}) endif() endif() # Copy aeronmd tools vcpkg_copy_tools(TOOL_NAMES aeronmd aeronmd_s AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aeron/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "aeron", "version": "1.50.3", "description": "Efficient reliable UDP unicast, UDP multicast, and IPC message transport", "homepage": "https://github.com/aeron-io/aeron", "license": "Apache-2.0", "supports": "!((x86 | arm64) & windows) & !android & !uwp & !xbox", "dependencies": [ { "name": "libuuid", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "archive": { "description": "Build Aeron Archive API for recording and replaying message streams (requires Java)", "supports": "!((x86 | arm64) & windows) & !android & !uwp & !xbox" } } } ================================================ FILE: ports/air-ctl/fix-resize-error.patch ================================================ diff --git a/src/container/hash_map.c b/src/container/hash_map.c index 3f9de33..b1dd419 100644 --- a/src/container/hash_map.c +++ b/src/container/hash_map.c @@ -104,6 +104,7 @@ int CTL_hash_map_insert(CTL_hash_map *handle, const void *key, const void *eleme if (handle->size > (handle->B_size - 1) * LOAD_FACTOR) { resize(handle); + index = __index(hash, handle->B_size); } __CTL_hash_map_node *new_node = (__CTL_hash_map_node *)CTL_malloc(sizeof(__CTL_hash_map_node)); ================================================ FILE: ports/air-ctl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO inie0722/air-ctl REF "v${VERSION}" SHA512 88a20b0d833770820a8ef56725441cd4258b222ed12bb731a695c17a29c76709ed185f3a8e038d7f7437295847ff9ba77a65c5165ad7d70645c044a24365bfe9 HEAD_REF master PATCHES fix-resize-error.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCTL_CACHE_LINE_SIZE=0" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/air-ctl/vcpkg.json ================================================ { "name": "air-ctl", "version": "1.1.2", "port-version": 3, "description": "C template container library", "homepage": "https://github.com/inie0722/air-ctl", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aixlog/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO badaix/aixlog REF fd4a341740ee840092963de852584ec8ff811c4f # v1.5.0 SHA512 10ab07dcb1e67064c0d69ddcf9289d79d914c70fe6922f32179f9ac38d5c682a4ebe08b686d8160c699a6b966bc7aa2fd7d0268664570a10ce146850e78b292d ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLE=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/aixlog/vcpkg.json ================================================ { "name": "aixlog", "version": "1.5.0", "port-version": 1, "description": "Header-only C++ logging library", "homepage": "https://github.com/badaix/aixlog", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/aklomp-base64/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aklomp/base64 REF "v${VERSION}" SHA512 9f8ca8a6e9feb8ad98158d675ec3331e83c77401d2633de0e43b62e794682a9d63c03e1c2599981ad3cdb249e263964f6a79084dbdf2ca19a1e1eed6195a98f4 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBASE64_BUILD_CLI=OFF -DBASE64_REGENERATE_TABLES=OFF -DBASE64_WERROR=OFF -DBASE64_WITH_OpenMP=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup( PACKAGE_NAME base64 CONFIG_PATH "lib/cmake/base64" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aklomp-base64/vcpkg.json ================================================ { "name": "aklomp-base64", "version": "0.5.2", "description": "Implementation of a base64 stream encoding/decoding library in C99 with SIMD (AVX2, AVX512, NEON, AArch64/NEON, SSSE3, SSE4.1, SSE4.2, AVX) and OpenMP acceleration", "homepage": "https://github.com/aklomp/base64", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/alac/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (alac) set(HEADERS codec/EndianPortable.h codec/aglib.h codec/ALACAudioTypes.h codec/ALACBitUtilities.h codec/ALACDecoder.h codec/ALACEncoder.h codec/dplib.h codec/matrixlib.h ) set (SRCS codec/EndianPortable.c codec/ALACBitUtilities.c codec/ALACDecoder.cpp codec/ALACEncoder.cpp codec/ag_dec.c codec/ag_enc.c codec/dp_dec.c codec/dp_enc.c codec/matrix_dec.c codec/matrix_enc.c ) set(EXE_SRCS convert-utility/main.cpp convert-utility/CAFFileALAC.cpp ) if(MSVC) add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32) endif() include_directories(. codec convert-utility) add_library(libalac ${SRCS}) add_executable(alacconvert ${EXE_SRCS}) target_link_libraries(alacconvert libalac) install( TARGETS libalac RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) install ( TARGETS alacconvert RUNTIME DESTINATION tools/alac ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/alac) endif() ================================================ FILE: ports/alac/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "${PORT} does not currently support UWP") endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO macosforge/alac REF c38887c5c5e64a4b31108733bd79ca9b2496d987 SHA512 8da18df25807e76f9187f7bf30585aace303d55444f0a614ab00d98d11caca3fdc5c6f5b9fd11e5f4c92a2ab1e86fef73deeeada57e9d49951fea8b80ba383cc HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/alac" RENAME copyright) ================================================ FILE: ports/alac/vcpkg.json ================================================ { "name": "alac", "version": "2017-11-03-c38887c5", "port-version": 4, "description": "The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.", "homepage": "https://github.com/macosforge/alac", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/alac-decoder/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (alac_decoder) set(HEADERS decomp.h demux.h stream.h wavwriter.h ) set (SRCS decomp.c alac.c demux.c stream.c wavwriter.c ) if(MSVC) add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DTARGET_OS_WIN32) else() add_compile_options(-Wno-error=implicit-function-declaration) endif() include_directories(.) add_library(libalac_decoder ${SRCS}) add_executable(alac_decoder main.c) target_link_libraries(alac_decoder libalac_decoder) install( TARGETS libalac_decoder RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) install ( TARGETS alac_decoder RUNTIME DESTINATION tools/alac-decoder ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/alac_decoder) endif() ================================================ FILE: ports/alac-decoder/decomp.c ================================================ #include "decomp.h" #include int set_endian() { uint32_t integer = 0x000000aa; unsigned char *p = (unsigned char*)&integer; if (p[0] == 0xaa) return 0; else return 1; } ================================================ FILE: ports/alac-decoder/no-pragma-warning.patch ================================================ diff --git a/alac.c b/alac.c index b829e29..8e8805f 100644 --- a/alac.c +++ b/alac.c @@ -284,7 +284,9 @@ static int count_leading_zeros(int input) return output; } #else +#if !defined(_MSC_VER) #warning using generic count leading zeroes. You may wish to write one for your CPU / compiler +#endif static int count_leading_zeros(int input) { int output = 0; ================================================ FILE: ports/alac-decoder/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://distfiles.macports.org/alac_decoder/alac_decoder-0.2.0.tgz" FILENAME "alac_decoder-0.2.0.tgz" SHA512 4b37d4fe37681bfccaa4a27fbaf11eb2a1fba5f14e77d219a6d9814ff44d1168534d05eb19443dd2fd11e6fcdf4da3a22e3f3c79314cb7a6767c152351b13e29 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES remove_stdint_headers.patch no-pragma-warning.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/decomp.c" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${SOURCE_PATH}/README" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/alac-decoder/remove_stdint_headers.patch ================================================ diff --git a/alac.c b/alac.c index 469000d..c6fe479 100644 --- a/alac.c +++ b/alac.c @@ -33,11 +33,7 @@ #include #include #include -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include #include "decomp.h" @@ -54,7 +50,7 @@ struct {signed int x:24;} se_struct_24; #define SignExtend24(val) (se_struct_24.x = val) -extern int host_bigendian; +#define host_bigendian set_endian() struct alac_file { diff --git a/decomp.h b/decomp.h index 23dbc52..679a320 100644 --- a/decomp.h +++ b/decomp.h @@ -8,6 +8,7 @@ void decode_frame(alac_file *alac, unsigned char *inbuffer, void *outbuffer, int *outputsize); void alac_set_info(alac_file *alac, char *inputbuffer); +int set_endian(); #endif /* __ALAC__DECOMP_H */ diff --git a/demux.c b/demux.c index ae77a9d..9e858a9 100644 --- a/demux.c +++ b/demux.c @@ -33,11 +33,7 @@ #include #include #include -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include #include "stream.h" #include "demux.h" diff --git a/demux.h b/demux.h index 8447bf8..8874ba4 100644 --- a/demux.h +++ b/demux.h @@ -1,11 +1,8 @@ #ifndef DEMUX_H #define DEMUX_H -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif + +#include #include "stream.h" diff --git a/main.c b/main.c index 7449ca1..dd58699 100644 --- a/main.c +++ b/main.c @@ -37,11 +37,7 @@ #include #include #include -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include #include "demux.h" #include "decomp.h" @@ -267,19 +263,7 @@ static void setup_environment(int argc, char **argv) } } -/* this could quite easily be done at compile time, - * however I don't want to have to bother with all the - * various possible #define's for endianness, worrying about - * different compilers etc. and I'm too lazy to use autoconf. - */ -void set_endian() -{ - uint32_t integer = 0x000000aa; - unsigned char *p = (unsigned char*)&integer; - if (p[0] == 0xaa) host_bigendian = 0; - else host_bigendian = 1; -} int main(int argc, char **argv) { @@ -288,7 +272,7 @@ int main(int argc, char **argv) memset(&demux_res, 0, sizeof(demux_res)); - set_endian(); + host_bigendian = set_endian(); setup_environment(argc, argv); diff --git a/stream.c b/stream.c index 565db54..56727a0 100644 --- a/stream.c +++ b/stream.c @@ -33,13 +33,10 @@ #include #include #include -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include #include "stream.h" +#include "decomp.h" #define _Swap32(v) do { \ v = (((v) & 0x000000FF) << 0x18) | \ @@ -51,7 +48,7 @@ v = (((v) & 0x00FF) << 0x08) | \ (((v) & 0xFF00) >> 0x08); } while (0) -extern int host_bigendian; +#define host_bigendian set_endian() struct stream_tTAG { FILE *f; diff --git a/stream.h b/stream.h index 18d6aa0..ff6325e 100644 --- a/stream.h +++ b/stream.h @@ -3,11 +3,8 @@ /* stream.h */ -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include + typedef struct stream_tTAG stream_t; diff --git a/wavwriter.c b/wavwriter.c index fd19502..ce941c7 100644 --- a/wavwriter.c +++ b/wavwriter.c @@ -32,11 +32,8 @@ #include #include -#ifdef _WIN32 - #include "stdint_win.h" -#else - #include -#endif +#include + #ifndef MAKEFOURCC #define MAKEFOURCC(ch0, ch1, ch2, ch3) ( \ @@ -56,7 +53,7 @@ v = (((v) & 0x00FF) << 0x08) | \ (((v) & 0xFF00) >> 0x08); } while (0) -extern int host_bigendian; +#define host_bigendian set_endian() static void write_uint32(FILE *f, uint32_t v, int bigendian) { ================================================ FILE: ports/alac-decoder/vcpkg.json ================================================ { "name": "alac-decoder", "version": "0.2", "port-version": 7, "description": "ALAC C implementation of a decoder, written from reverse engineering the file format", "homepage": "https://distfiles.macports.org/alac_decoder", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/alembic/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alembic/alembic REF "${VERSION}" SHA512 0be292e9d75560891d38129eb2672c55475b29b33f265dd51396dfa7b530c92ac6dfdb05a4432ad1b6919e2c151068560eb04efb8d9b0c2a14f77ab489d3542c HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ALEMBIC_SHARED_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hdf5 USE_HDF5 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DALEMBIC_SHARED_LIBS=${ALEMBIC_SHARED_LIBS} -DUSE_TESTS=OFF ${FEATURE_OPTIONS} -DALEMBIC_DEBUG_WARNINGS_AS_ERRORS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Alembic) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") set(TOOLS abcdiff abcecho abcechobounds abcls abcstitcher abctree) if(USE_HDF5) list(APPEND TOOLS abcconvert) endif() vcpkg_copy_tools( TOOL_NAMES ${TOOLS} AUTO_CLEAN ) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/alembic/vcpkg.json ================================================ { "name": "alembic", "version": "1.8.10", "port-version": 1, "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.", "homepage": "https://www.alembic.io", "supports": "!(windows & x86) & !uwp", "dependencies": [ "imath", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hdf5": { "description": "Build with HDF5 support", "dependencies": [ "hdf5" ] } } } ================================================ FILE: ports/aliyun-oss-c-sdk/patch.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0abcb93..75195a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,5 +150,5 @@ INSTALL(FILES oss_c_sdk/oss_xml.h DESTINATION include/oss_c_sdk) -add_subdirectory(oss_c_sdk_sample) -add_subdirectory(oss_c_sdk_test) +#add_subdirectory(oss_c_sdk_sample) +#add_subdirectory(oss_c_sdk_test) ================================================ FILE: ports/aliyun-oss-c-sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aliyun/aliyun-oss-c-sdk REF ${VERSION} SHA512 b00f17e0a55fbf6dfc94c3a109013ea31cb234ce444c4e824749e380aa4d90c0d8440a1705aa8f8ab57c883f03c37757e4f2d09d1a0d960fd2f158128501727e HEAD_REF master PATCHES patch.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aliyun-oss-c-sdk/vcpkg.json ================================================ { "name": "aliyun-oss-c-sdk", "version": "3.11.2", "description": "Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability.", "homepage": "https://github.com/aliyun/aliyun-oss-c-sdk", "license": "MIT", "supports": "!(uwp | linux | osx)", "dependencies": [ "apr-util", "curl", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/aliyun-oss-cpp-sdk/0001-dependency-and-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ea0d8d6..2a853a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,8 +78,8 @@ if (${TARGET_OS} STREQUAL "WINDOWS") set(CLIENT_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/third_party/include) else() - include(FindCURL) - include(FindOpenSSL) + find_package(CURL CONFIG REQUIRED) + find_package(OpenSSL REQUIRED) if(NOT CURL_FOUND) message(FATAL_ERROR "Could not find curl") diff --git a/sdk/CMakeLists.txt b/sdk/CMakeLists.txt index 28d04c2..d5d715d 100644 --- a/sdk/CMakeLists.txt +++ b/sdk/CMakeLists.txt @@ -146,6 +146,13 @@ set_target_properties(${PROJECT_NAME}${STATIC_LIB_SUFFIX} OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}${PROJECT_NAME}${STATIC_LIB_SUFFIX} ) +target_include_directories(${PROJECT_NAME}${STATIC_LIB_SUFFIX} + PUBLIC $ +) + +target_link_libraries(${PROJECT_NAME}${STATIC_LIB_SUFFIX} ${CRYPTO_LIBS}) +target_link_libraries(${PROJECT_NAME}${STATIC_LIB_SUFFIX} ${CLIENT_LIBS}) + target_include_directories(${PROJECT_NAME}${STATIC_LIB_SUFFIX} PRIVATE include PRIVATE include/alibabacloud/oss @@ -173,6 +180,9 @@ if (BUILD_SHARED_LIBS) OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}${PROJECT_NAME} ) + target_include_directories(${PROJECT_NAME} + PUBLIC $ + ) target_include_directories(${PROJECT_NAME} PRIVATE include PRIVATE include/alibabacloud/oss @@ -210,16 +220,18 @@ install(FILES ${sdk_encryption_header} install(FILES ${sdk_public_header} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/oss) -install(TARGETS ${PROJECT_NAME}${STATIC_LIB_SUFFIX} +install(TARGETS ${PROJECT_NAME}${STATIC_LIB_SUFFIX} EXPORT unofficial-aliyun-oss-cpp-sdk-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) if (BUILD_SHARED_LIBS) -install(TARGETS ${PROJECT_NAME} +install(TARGETS ${PROJECT_NAME} EXPORT unofficial-aliyun-oss-cpp-sdk-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -endif() \ No newline at end of file +endif() + +include(0002-unofficial-export.cmake) ================================================ FILE: ports/aliyun-oss-cpp-sdk/0002-unofficial-export.cmake ================================================ install( EXPORT unofficial-aliyun-oss-cpp-sdk-targets NAMESPACE unofficial::aliyun-oss-cpp-sdk:: DESTINATION share/unofficial-aliyun-oss-cpp-sdk ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-aliyun-oss-cpp-sdk-config.cmake.in" [[ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(CURL REQUIRED) find_dependency(OpenSSL REQUIRED) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-aliyun-oss-cpp-sdk-targets.cmake") ]] ) include(CMakePackageConfigHelpers) configure_package_config_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-aliyun-oss-cpp-sdk-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-aliyun-oss-cpp-sdk-config.cmake" INSTALL_DESTINATION "share/unofficial-aliyun-oss-cpp-sdk" ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-aliyun-oss-cpp-sdk-config.cmake" DESTINATION "share/unofficial-aliyun-oss-cpp-sdk" ) ================================================ FILE: ports/aliyun-oss-cpp-sdk/0003-suppress-fmt-warning.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ea0d8d6..2a853a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,7 @@ else() endif() list(APPEND SDK_COMPILER_FLAGS "-Wall" "-Werror" "-pedantic" "-Wextra") - + list(APPEND SDK_COMPILER_FLAGS "-Wno-error=deprecated-declarations") if (ENABLE_COVERAGE) SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage") ================================================ FILE: ports/aliyun-oss-cpp-sdk/disable-werror.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ea0d8d6..c04ec99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,6 +127,7 @@ else() endif() endif() +list(REMOVE_ITEM SDK_COMPILER_FLAGS "-Werror") if (BUILD_SHARED_LIBS) set(STATIC_LIB_SUFFIX "-static") ================================================ FILE: ports/aliyun-oss-cpp-sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aliyun/aliyun-oss-cpp-sdk REF "${VERSION}" SHA512 4bcc1f609e77ea514a1f5ba76e63b51acc322d034e2889e3be545c3eb8d5e783ec9eee30745d536c6ad35474029eb921e31ceaa18f03d4678fccddf66d6604fe HEAD_REF master PATCHES 0001-dependency-and-targets.patch 0003-suppress-fmt-warning.patch disable-werror.diff ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/0002-unofficial-export.cmake" DESTINATION "${SOURCE_PATH}/sdk/") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_SAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aliyun-oss-cpp-sdk/vcpkg.json ================================================ { "name": "aliyun-oss-cpp-sdk", "version": "1.10.1", "description": "Alibaba Cloud Object Storage Service (OSS) is a cloud storage service provided by Alibaba Cloud, featuring massive capacity, security, a low cost, and high reliability.", "homepage": "https://github.com/aliyun/aliyun-oss-cpp-sdk", "license": "Apache-2.0", "supports": "linux | osx | android", "dependencies": [ { "name": "curl", "default-features": false }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/allegro5/android-glext-prototypes.diff ================================================ diff --git a/src/opengl/ogl_fbo.c b/src/opengl/ogl_fbo.c index dcb01fb..2c0f2aa 100644 --- a/src/opengl/ogl_fbo.c +++ b/src/opengl/ogl_fbo.c @@ -13,6 +13,10 @@ * See LICENSE.txt for copyright information. */ +#if defined(__ANDROID__) && !defined(GL_GLEXT_PROTOTYPES) +# define GL_GLEXT_PROTOTYPES +#endif + #include #include "allegro5/allegro.h" ================================================ FILE: ports/allegro5/cmake-project-include.cmake ================================================ if(MSVC AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") add_compile_options(/Gy) endif() # https://gitlab.kitware.com/cmake/cmake/-/issues/25635 if(CMAKE_VERSION VERSION_EQUAL "3.28.0" OR CMAKE_VERSION VERSION_EQUAL "3.28.1") list(APPEND CMAKE_IGNORE_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/freetype") endif() ================================================ FILE: ports/allegro5/do-not-copy-pdbs-to-lib.patch ================================================ diff --git a/cmake/Common.cmake b/cmake/Common.cmake index 86c194f..74edef8 100644 --- a/cmake/Common.cmake +++ b/cmake/Common.cmake @@ -227,7 +227,7 @@ function(install_our_library target filename) # Doesn't work, see below. # PUBLIC_HEADER DESTINATION "include" ) - if(MSVC AND BUILD_SHARED_LIBS) + if(0) install(FILES ${CMAKE_BINARY_DIR}/lib/\${CMAKE_INSTALL_CONFIG_NAME}/${filename}.pdb DESTINATION lib CONFIGURATIONS Debug RelWithDebInfo ================================================ FILE: ports/allegro5/minimp3-fix.patch ================================================ diff --git a/addons/acodec/CMakeLists.txt b/addons/acodec/CMakeLists.txt index 6906a99..7896989 100644 --- a/addons/acodec/CMakeLists.txt +++ b/addons/acodec/CMakeLists.txt @@ -394,9 +394,10 @@ acodec_summary(" - Opus" SUPPORT_OPUS) # MP3 # if(WANT_MP3) - find_package(MiniMP3) + find_path(MINIMP3_INCLUDE_DIRS "minimp3/minimp3.h") + set(MINIMP3_FOUND true) if(MINIMP3_FOUND) - include_directories(SYSTEM ${MINIMP3_INCLUDE_DIRS}) + include_directories(SYSTEM ${MINIMP3_INCLUDE_DIRS}/minimp3) set(ALLEGRO_CFG_ACODEC_MP3 1) list(APPEND ACODEC_SOURCES mp3.c) endif(MINIMP3_FOUND) ================================================ FILE: ports/allegro5/msvc-arm64-atomic.patch ================================================ diff --git a/include/allegro5/internal/aintern_atomicops.h b/include/allegro5/internal/aintern_atomicops.h index 5054552..a4310f1 100644 --- a/include/allegro5/internal/aintern_atomicops.h +++ b/include/allegro5/internal/aintern_atomicops.h @@ -49,7 +49,7 @@ return old - 1; }) -#elif defined(_MSC_VER) && _M_IX86 >= 400 +#elif defined(_MSC_VER) && (_M_IX86 >= 400 || defined(_M_ARM64)) /* MSVC, x86 */ /* MinGW supports these too, but we already have asm code above. */ ================================================ FILE: ports/allegro5/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO liballeg/allegro5 REF "${VERSION}" SHA512 fe9a1c28824b88d34045cf3a296a5671f5b6992f881678bbeb5290ec220138ab9bd3608fa241539d39a2c6eec32ef267d31f2694a4c5b06d13164eead6a13a5b HEAD_REF master PATCHES do-not-copy-pdbs-to-lib.patch msvc-arm64-atomic.patch minimp3-fix.patch android-glext-prototypes.diff skip-android-aar.diff # Building AAR, not needed for vcpkg ) if(VCPKG_TARGET_IS_ANDROID AND "$ENV{ANDROID_HOME}" STREQUAL "") message(FATAL_ERROR "${PORT} requires environment variable ANDROID_HOME to be set.") endif() vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" VCPKG_BUILD_SHARED_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES direct3d WANT_D3D opengl WANT_OPENGL ) if(NOT WANT_OPENGL) list(APPEND options -DWANT_X11=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DINSTALL_PKG_CONFIG_FILES=true -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON -DSHARED=${VCPKG_BUILD_SHARED_LIBS} ${options} -DALLEGRO_SDL=OFF -DWANT_D3D9EX=OFF # Not available on vcpkg -DWANT_DEMO=OFF -DWANT_DOCS=OFF -DWANT_EXAMPLES=OFF -DWANT_GLES3=ON -DWANT_IMAGE_FREEIMAGE=OFF -DWANT_MODAUDIO=OFF # Not available on vcpkg right now -DWANT_MP3=ON -DWANT_OPENSL=OFF # Not yet available on vcpkg -DWANT_POPUP_EXAMPLES=OFF -DWANT_TESTS=OFF -DWANT_TREMOR=OFF # Not yet available on vcpkg MAYBE_UNUSED_VARIABLES PKG_CONFIG_USE_CMAKE_PREFIX_PATH ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/allegro) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/allegro5/skip-android-aar.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b2ccfb..a6029b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1110,7 +1110,6 @@ configure_file( if(ANDROID) include(AndroidApp) - add_subdirectory(android) endif(ANDROID) #-----------------------------------------------------------------------------# ================================================ FILE: ports/allegro5/vcpkg.json ================================================ { "name": "allegro5", "version": "5.2.10.0", "port-version": 1, "description": "Allegro is a cross-platform library mainly aimed at video game and multimedia programming. It handles common, low-level tasks such as creating windows, accepting user input, loading data, drawing images, playing sounds, etc. and generally abstracting away the underlying platform. However, Allegro is not a game engine: you are free to design and structure your program as you like.", "homepage": "https://liballeg.org/", "license": "BSD-3-Clause AND Zlib", "dependencies": [ { "name": "alsa", "platform": "linux" }, "bzip2", { "name": "freetype", "default-features": false }, "libflac", "libjpeg-turbo", "libogg", "libpng", "libtheora", "libvorbis", { "name": "libwebp", "default-features": false }, "minimp3", "openal-soft", "opus", "opusfile", "physfs", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ { "name": "direct3d", "platform": "windows" }, { "name": "opengl", "platform": "!(arm & windows) & !uwp & !xbox" } ], "features": { "direct3d": { "description": "Direct3D support", "supports": "windows" }, "opengl": { "description": "OpenGL support", "supports": "!(arm & windows) & !uwp & !xbox", "dependencies": [ "opengl" ] } } } ================================================ FILE: ports/alpaca/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/alpaca REF v${VERSION} SHA512 3c61bd177f4118d8e270df24285d59e294d9eeb25daddac2d39d867188699955422fee92c875961c0fd1a77b46fe8d866310e578fd201e566e57c00539f85cfd HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DALPACA_BUILD_TESTS=OFF -DALPACA_BUILD_BENCHMARKS=OFF -DALPACA_BUILD_SAMPLES=OFF ) vcpkg_cmake_install() #Copy missing details/types folder from source path file(COPY "${SOURCE_PATH}/include/alpaca/detail/types" DESTINATION "${CURRENT_PACKAGES_DIR}/include/alpaca/detail/") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/alpaca PACKAGE_NAME alpaca) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/alpaca/vcpkg.json ================================================ { "name": "alpaca", "version": "0.2.1", "description": "Alpaca is a serialization library written in C++17 - Pack C++ structs into a compact byte-array without any macros or boilerplate code", "homepage": "https://github.com/p-ranav/alpaca", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/alpaka/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alpaka-group/alpaka REF ${VERSION} SHA512 ea1a99ee5d59effc91208f63e6d7b76af2070c58ecfb611d39ac653e770b9c947122ea6e45acdd898bc53a19f273839426c2e14b32483b5605162b92f4a4c044 HEAD_REF develop ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/alpaka") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/alpaka/usage ================================================ alpaka provides CMake targets: find_package(alpaka CONFIG REQUIRED) target_link_libraries(main PRIVATE alpaka::alpaka) ================================================ FILE: ports/alpaka/vcpkg.json ================================================ { "name": "alpaka", "version": "2.1.1", "description": "The alpaka library is a header-only abstraction library for accelerator development", "homepage": "https://github.com/alpaka-group/alpaka", "license": "MPL-2.0", "dependencies": [ { "name": "boost-core", "version>=": "1.74.0" }, { "name": "boost-predef", "version>=": "1.74.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/alsa/fix-plugin-dir.patch ================================================ diff --git a/src/dlmisc.c b/src/dlmisc.c index f64c716..a413233 100644 --- a/src/dlmisc.c +++ b/src/dlmisc.c @@ -34,6 +34,9 @@ #endif #include +#include +#include + #if defined(HAVE_LIBDL) && defined(__GLIBC__) && !defined(__UCLIBC__) #define DL_ORIGIN_AVAILABLE 1 #endif @@ -79,6 +82,16 @@ static void snd_dlinfo_origin(char *path, size_t path_len) #endif } +static unsigned int checkExist(const char* dirName) { + DIR* dir = opendir(dirName); + if(dir) { + closedir(dir); + return 1; + } else { + return 0; + } +} + /** * * \brief Compose the dynamic path @@ -94,8 +107,14 @@ int snd_dlpath(char *path, size_t path_len, const char *name) const char *env = getenv("ALSA_PLUGIN_DIR"); if (env) { snd_plugin_dir = strdup(env); + } else if(checkExist(ALSA_PLUGIN_DIR) ) { + snd_plugin_dir = strdup(ALSA_PLUGIN_DIR); + } else if(sizeof(void*) == 8 && checkExist("/usr/lib64/alsa-lib") ) { + snd_plugin_dir = strdup("/usr/lib64/alsa-lib"); + } else if(sizeof(void*) == 4 && checkExist("/usr/lib32/alsa-lib") ) { + snd_plugin_dir = strdup("/usr/lib32/alsa-lib"); } else { - snd_dlinfo_origin(path, path_len); + snd_plugin_dir = strdup("/usr/lib/alsa-lib"); } snd_plugin_dir_set = 1; } ================================================ FILE: ports/alsa/libdl.diff ================================================ diff --git a/configure.ac b/configure.ac index 7a152a4..324adf8 100644 --- a/configure.ac +++ b/configure.ac @@ -261,6 +261,7 @@ HAVE_LIBDL= if test "$have_libdl" = "yes"; then AC_SEARCH_LIBS([dlsym], [dl], [HAVE_LIBDL="yes"]) if test "$HAVE_LIBDL" = "yes" ; then + ALSA_DEPLIBS="$ALSA_DEPLIBS -ldl" AC_DEFINE([HAVE_LIBDL], 1, [Have libdl]) fi else ================================================ FILE: ports/alsa/portfile.cmake ================================================ message( "alsa currently requires the following programs from the system package manager: autoconf autoheader aclocal automake libtoolize On Debian and Ubuntu derivatives: sudo apt install autoconf libtool On recent Red Hat and Fedora derivatives: sudo dnf install autoconf libtool On Arch Linux and derivatives: sudo pacman -S autoconf automake libtool On Alpine: apk add autoconf automake libtool" ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alsa-project/alsa-lib REF "v${VERSION}" SHA512 0b8a7d83a0bbce2153475923dff0fe47ed946a8adf2022f5f99c027465bd1c04a4eb06861c72bd88943b1af9b46b7967f8417f14c0261623e130ebde4e833e5d HEAD_REF master PATCHES fix-plugin-dir.patch libdl.diff ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ALSA_PLUGIN_DIR "/usr/lib/x86_64-linux-gnu/alsa-lib") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ALSA_PLUGIN_DIR "/usr/lib/aarch64-linux-gnu/alsa-lib") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(ALSA_PLUGIN_DIR "/usr/lib/arm-linux-gnueabihf/alsa-lib") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "s390x") set(ALSA_PLUGIN_DIR "/usr/lib/s390x-linux-gnu/alsa-lib") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "ppc64le") set(ALSA_PLUGIN_DIR "/usr/lib/powerpc64le-linux-gnu/alsa-lib") else() set(ALSA_PLUGIN_DIR "/usr/lib/alsa-lib") endif() set(ALSA_CONFIG_DIR "/usr/share/alsa") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${BUILD_OPTS} --disable-python "--with-configdir=${ALSA_CONFIG_DIR}" "--with-plugindir=${ALSA_PLUGIN_DIR}" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/tools/alsa/debug" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/alsa/usage ================================================ alsa is compatible with built-in CMake targets: find_package(ALSA REQUIRED) target_link_libraries(main PRIVATE ALSA::ALSA) # since CMake 3.12 ================================================ FILE: ports/alsa/vcpkg-cmake-wrapper.cmake ================================================ find_path( ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH ) find_library( ALSA_LIBRARY_DEBUG NAMES asound PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH ) find_library( ALSA_LIBRARY_RELEASE NAMES asound PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH ) include(SelectLibraryConfigurations) select_library_configurations(ALSA) unset(ALSA_FOUND) set(ALSA_LIBRARY "${ALSA_LIBRARY}" CACHE INTERNAL "") _find_package(${ARGS}) if(TARGET ALSA::ALSA) if(ALSA_LIBRARY_DEBUG) set_property( TARGET ALSA::ALSA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_target_properties( ALSA::ALSA PROPERTIES IMPORTED_LOCATION_DEBUG "${ALSA_LIBRARY_DEBUG}" ) endif() if(ALSA_LIBRARY_RELEASE) set_property( TARGET ALSA::ALSA APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_target_properties( ALSA::ALSA PROPERTIES IMPORTED_LOCATION_RELEASE "${ALSA_LIBRARY_RELEASE}" ) endif() find_library(Z_VCPKG_HAS_LIBM NAMES m) if(Z_VCPKG_HAS_LIBM) list(APPEND ALSA_LIBRARIES m) set_property( TARGET ALSA::ALSA APPEND PROPERTY INTERFACE_LINK_LIBRARIES m ) endif() if(CMAKE_DL_LIBS) list(APPEND ALSA_LIBRARIES ${CMAKE_DL_LIBS}) set_property( TARGET ALSA::ALSA APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS} ) endif() find_package(Threads) if(TARGET Threads::Threads) list(APPEND ALSA_LIBRARIES Threads::Threads) set_property( TARGET ALSA::ALSA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads ) endif() find_library(Z_VCPKG_HAS_LIBRT NAMES rt) if(Z_VCPKG_HAS_LIBRT) list(APPEND ALSA_LIBRARIES rt) set_property( TARGET ALSA::ALSA APPEND PROPERTY INTERFACE_LINK_LIBRARIES rt ) endif() endif() ================================================ FILE: ports/alsa/vcpkg.json ================================================ { "name": "alsa", "version": "1.2.15.3", "port-version": 1, "description": "The Advanced Linux Sound Architecture (ALSA) - library", "homepage": "https://www.alsa-project.org/", "license": "LGPL-2.1-or-later", "supports": "linux | android", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/amd-adl-sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GPUOpen-LibrariesAndSDKs/display-library REF "${VERSION}" SHA512 805bc1a7f221b33955d79943833d04838b459f316c2a9ad5fa1831588b07c0bbe5975aca07c90117c10c6ff22ee12a69d5a26a75e7191eb6c40c1dccccd192af HEAD_REF master ) # Install the ADL headers to the default vcpkg location file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" [[As of 2023-07-25, according to https://github.com/GPUOpen-LibrariesAndSDKs/display-library/blob/master/Public-Documents/README.md#end-user-license-agreement this software is bound by the "SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT" PDF located at https://github.com/GPUOpen-LibrariesAndSDKs/display-library/blob/master/Public-Documents/ADL%20SDK%20EULA.pdf ]]) ================================================ FILE: ports/amd-adl-sdk/vcpkg.json ================================================ { "name": "amd-adl-sdk", "version": "17.1", "description": "AMD Display Library (ADL) SDK", "homepage": "https://gpuopen.com/adl/", "license": null, "supports": "!osx" } ================================================ FILE: ports/amd-amf/portfile.cmake ================================================ # Don't use vcpkg_from_github as the archive is much bigger than the headers only archive vcpkg_download_distfile(ARCHIVE URLS "https://github.com/GPUOpen-LibrariesAndSDKs/AMF/releases/download/v${VERSION}/AMF-headers-v${VERSION}.tar.gz" FILENAME "AMF-headers-v${VERSION}.tar.gz" SHA512 37d618c846bd2ba77ee282ac152fc5f807631007fca8156fca7e541ad1d1cb23786794aaad1ee3d3eb30b2011c4336bec9011031202c3238d91fe48d1e92f97b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) # Download license file vcpkg_download_distfile(LICENSE_FILE URLS "https://raw.githubusercontent.com/GPUOpen-LibrariesAndSDKs/AMF/v${VERSION}/LICENSE.txt" FILENAME "LICENSE.txt" SHA512 6b3261e5f38179c0d96483e44b339933a8eb0d9324784953eed74dfe2658ab9d94a9afb09d85ac1138300c8272ac73fb5e1e1f56ea26312f572453fab86f228a ) # Install the AMF headers to the default vcpkg location file(INSTALL "${SOURCE_PATH}/AMF/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/AMF") vcpkg_install_copyright(FILE_LIST "${LICENSE_FILE}") ================================================ FILE: ports/amd-amf/vcpkg.json ================================================ { "name": "amd-amf", "version": "1.5.0", "description": "AMD Advanced Media Framework headers", "homepage": "https://github.com/GPUOpen-LibrariesAndSDKs/AMF", "license": "MIT", "supports": "!osx" } ================================================ FILE: ports/ampl-asl/0006-disable-generate-arith-h.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d4b65e..21b32ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,7 +104,7 @@ file(WRITE ${GENERATED_INCLUDE_DIR}/details.c "${DETAILS}") configure_file(${SRCDIR}/solvers/stdio1.h0 ${GENERATED_INCLUDE_DIR}/stdio1.h COPYONLY) -if(CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES "^x86") +if(0) include(CheckTypeSize) check_type_size(double DOUBLE_SIZE) check_type_size(long LONG_SIZE) ================================================ FILE: ports/ampl-asl/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ampl/asl REF ae937db9bd1169ec2c4cb8d75196f67cdcb8041b SHA512 7d0b2decb71397daa88ce328c23e782dab43b32fd6a51f031db8d4eed94abc6261892553faa990236a705a521de45c418261bbeba43f31bbee426c2c177af0cd HEAD_REF master PATCHES workaround-msvc-optimizer-ice.patch 0006-disable-generate-arith-h.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_MCMODELLARGE=OFF -DBUILD_DYNRT_LIBS=OFF # CRT linkage uses C/CXX FLAGS in vcpkg -DBUILD_MT_LIBS=OFF # CRT linkage uses C/CXX FLAGS in vcpkg -DBUILD_CPP=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ampl-asl/vcpkg.json ================================================ { "name": "ampl-asl", "version": "1.0.1", "description": "AMPL Solver Library", "homepage": "https://github.com/ampl/asl", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ampl-asl/workaround-msvc-optimizer-ice.patch ================================================ diff --git a/src/solvers/avltree.c b/src/solvers/avltree.c index 7a9adab..a75da90 100644 --- a/src/solvers/avltree.c +++ b/src/solvers/avltree.c @@ -54,6 +54,10 @@ AVL_Tree { void (*Free)(void*); }; +#if defined(_MSC_VER) && _MSC_VER < 1917 +#pragma optimize("", off) +#endif + AVL_Tree* AVL_Tree_alloc2(void *v, AVL_Elcomp cmp, void *(*Malloc)(size_t), void (*Free)(void*)) { diff --git a/src/solvers/sphes.c b/src/solvers/sphes.c index a50065f..6e6eedc 100644 --- a/src/solvers/sphes.c +++ b/src/solvers/sphes.c @@ -461,6 +461,10 @@ compar(const void *a, const void *b) #undef del_mblk #define del_mblk(b,c) Del_mblk_ASL(a,b,(Char*)(c)) +#if defined(_MSC_VER) && _MSC_VER < 1917 +#pragma optimize("", off) +#endif + static void new_Hesoprod(ASL_pfgh *asl, ograd *L, ograd *R, real coef) { diff --git a/src/solvers2/avltree.c b/src/solvers2/avltree.c index 7a9adab..a75da90 100644 --- a/src/solvers2/avltree.c +++ b/src/solvers2/avltree.c @@ -54,6 +54,10 @@ AVL_Tree { void (*Free)(void*); }; +#if defined(_MSC_VER) && _MSC_VER < 1917 +#pragma optimize("", off) +#endif + AVL_Tree* AVL_Tree_alloc2(void *v, AVL_Elcomp cmp, void *(*Malloc)(size_t), void (*Free)(void*)) { diff --git a/src/solvers2/sphes.c b/src/solvers2/sphes.c index dd2edff..ebdd3af 100644 --- a/src/solvers2/sphes.c +++ b/src/solvers2/sphes.c @@ -855,6 +855,10 @@ compar(const void *a, const void *b) #undef del_mblk #define del_mblk(c) Del_mblk_ASL(a,(Char*)(c)) +#if defined(_MSC_VER) && _MSC_VER < 1917 +#pragma optimize("", off) +#endif + static void new_Hesoprod(EvalWorkspace *ew, int nov, int *ov, real *oc, int nR, int *Rov, real *Roc, real coef) { ================================================ FILE: ports/ampl-mp/0007-unofficial-export.cmake ================================================ install( EXPORT unofficial-mp-targets NAMESPACE DESTINATION share/unofficial-mp ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mp-config.cmake.in" [[ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(ampl-asl CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-mp-targets.cmake") ]] ) include(CMakePackageConfigHelpers) configure_package_config_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-mp-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mp-config.cmake" INSTALL_DESTINATION "share/unofficial-mp" ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mp-config.cmake" DESTINATION "share/unofficial-mp" ) ================================================ FILE: ports/ampl-mp/disable-matlab-mex.patch ================================================ diff --git a/src/asl/CMakeLists.txt b/src/asl/CMakeLists.txt index b7d7ecf..c31a032 100644 --- a/src/asl/CMakeLists.txt +++ b/src/asl/CMakeLists.txt @@ -59,7 +59,7 @@ endif () target_link_libraries(aslmp ${CMAKE_DL_LIBS}) -find_package(MATLAB) +set(MATLAB_FOUND) if (MATLAB_FOUND AND MATLAB_BUILD) set(matlab_asl asl) if (MSVC) ================================================ FILE: ports/ampl-mp/fix-arm-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 05fc783..e367344 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -313,7 +313,7 @@ add_mp_library(format OBJECT set(MP_EXPR_INFO_FILE ${MP_SOURCE_DIR}/src/expr-info.cc) set(MP_NL_OPCODES_FILE ${MP_SOURCE_DIR}/nl-writer2/include/mp/nl-opcodes.h) -add_executable(gen-expr-info EXCLUDE_FROM_ALL +add_executable(gen-expr-info src/gen-expr-info.cc $) if (MINGW) SET_TARGET_PROPERTIES(gen-expr-info PROPERTIES @@ -505,7 +505,7 @@ if (NOT SKIP_BUILD_MP) install(DIRECTORY include/mp DESTINATION include) install(TARGETS mp DESTINATION lib RUNTIME DESTINATION bin) install(FILES LICENSE.rst DESTINATION share/mp) - + install(TARGETS gen-expr-info RUNTIME DESTINATION bin) endif() ## NOT SKIP_BUILD_MP # If we want to generate the op file only, we are done here. diff --git a/src/amplsig/CMakeLists.txt b/src/amplsig/CMakeLists.txt index a9b75d0..0dcfe3e 100644 --- a/src/amplsig/CMakeLists.txt +++ b/src/amplsig/CMakeLists.txt @@ -17,5 +17,5 @@ find_library(WS2_32_LIBRARY Ws2_32 PATHS ${WIN_LIBRARY_DIR} NO_DEFAULT_PATH) if (WS2_32_LIBRARY) add_ampl_library(amplsig amplsig.cc) - target_link_libraries(amplsig mp ${WS2_32_LIBRARY}) + target_link_libraries(amplsig mp ws2_32) endif () ================================================ FILE: ports/ampl-mp/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9754d35..2b53eb0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,8 @@ set_cache(BUILD "" STRING if (BUILD) if (BUILD STREQUAL all) set(MP_MODULES all) + elseif (BUILD STREQUAL no) + set(MP_MODULES) else () string(REGEX MATCHALL "[^,]+" MP_MODULES "${BUILD}") endif () @@ -268,7 +270,7 @@ function (add_mp_library name) add_dependencies(${name} ${add_mp_library_DEPENDS}) endif () # Add library linked with dynamic runtime. - if (MSVC) + if (0) add_library(${name}-dynrt ${libtype} EXCLUDE_FROM_ALL ${add_mp_library_UNPARSED_ARGUMENTS} ${dynrt-objects}) target_compile_options(${name}-dynrt PUBLIC /MD$<$:d>) ================================================ FILE: ports/ampl-mp/fix-dependency-asl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b53eb0..05fc783 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -497,7 +497,7 @@ if (NOT SKIP_BUILD_MP) struct S { typedef typename S::type type; }; int main() {}" MP_VARIADIC_TEMPLATES) - add_subdirectory(src/asl) + find_package(ampl-asl CONFIG REQUIRED) add_subdirectory(src/amplsig) add_subdirectory(src/cp) add_subdirectory(solvers) diff --git a/src/cp/cp.cc b/src/cp/cp.cc index d4adc35..ca8f35b 100644 --- a/src/cp/cp.cc +++ b/src/cp/cp.cc @@ -24,7 +24,7 @@ #include #include #include "mp/format.h" -#include "funcadd.h" +#include namespace { void error(arglist *al, const char *message) { ================================================ FILE: ports/ampl-mp/install-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e367344..9338151 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,7 +264,7 @@ function (add_mp_library name) target_compile_definitions(${name} PUBLIC ${add_mp_library_COMPILE_DEFINITIONS}) target_include_directories(${name} - PUBLIC ${add_mp_library_INCLUDE_DIRECTORIES}) + PUBLIC $ $) set_property(TARGET ${name} PROPERTY CXX_STANDARD 17) if (add_mp_library_DEPENDS) add_dependencies(${name} ${add_mp_library_DEPENDS}) @@ -444,7 +444,7 @@ if (NOT SKIP_BUILD_MP) ${MP_ALL_HEADERS} ${MP_SOURCES} ${MP_FLAT_SOURCES} ${MP_EXPR_INFO_FILE} COMPILE_DEFINITIONS MP_DATE=${MP_DATE} MP_SYSINFO="${MP_SYSINFO}" - INCLUDE_DIRECTORIES src include OBJECT_LIBRARIES format) + INCLUDE_DIRECTORIES $ include OBJECT_LIBRARIES format) set_target_properties(mp PROPERTIES VERSION ${MP_VERSION} SOVERSION ${MP_VERSION_MAJOR}) @@ -487,7 +487,7 @@ if (NOT SKIP_BUILD_MP) # Link with librt for clock_gettime (Linux on i386). find_library(RT_LIBRARY rt) if (RT_LIBRARY) - target_link_libraries(mp ${RT_LIBRARY}) + target_link_libraries(mp rt) endif () # Check if variadic templates are working and not affected by GCC bug 39653: @@ -503,8 +503,9 @@ if (NOT SKIP_BUILD_MP) add_subdirectory(solvers) install(DIRECTORY include/mp DESTINATION include) - install(TARGETS mp DESTINATION lib RUNTIME DESTINATION bin) + install(TARGETS mp EXPORT unofficial-mp-targets DESTINATION lib RUNTIME DESTINATION bin) install(FILES LICENSE.rst DESTINATION share/mp) + include(0007-unofficial-export.cmake) install(TARGETS gen-expr-info RUNTIME DESTINATION bin) endif() ## NOT SKIP_BUILD_MP ================================================ FILE: ports/ampl-mp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ampl/mp REF v${VERSION} SHA512 913777afbc9b125207e5c3ad5c01d303b4a772f3569521cb897e7b841a6eb584c4ccec01af459237e2a510303192d3ef95a1756af881058a9cf429f48b4a8808 HEAD_REF master PATCHES disable-matlab-mex.patch fix-build.patch fix-dependency-asl.patch fix-arm-build.patch # https://github.com/ampl/mp/issues/115 install-targets.patch ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/0007-unofficial-export.cmake" DESTINATION "${SOURCE_PATH}/") if (NOT TARGET_TRIPLET STREQUAL HOST_TRIPLET) set(ARITHCHK_EXEC ${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/gen-expr-info${VCPKG_HOST_EXECUTABLE_SUFFIX}) if (NOT EXISTS "${ARITHCHK_EXEC}") message(FATAL_ERROR "Expected ${ARITHCHK_EXEC} to exist.") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD=no -DBUILD_TESTS=OFF -DMP_VARIADIC_TEMPLATES=OFF -DARITHCHK_EXEC=${ARITHCHK_EXEC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES gen-expr-info AUTO_CLEAN) vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" # remove amplsig.dll and cp.dll, see https://github.com/ampl/mp/issues/130 "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) configure_file("${SOURCE_PATH}/LICENSE.rst" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/ampl-mp/vcpkg.json ================================================ { "name": "ampl-mp", "version": "4.1.0", "description": "An open-source library for mathematical programming", "homepage": "https://github.com/ampl/mp", "supports": "!uwp", "dependencies": [ "ampl-asl", { "name": "ampl-mp", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/amqpcpp/fix-max_min_macros.patch ================================================ diff --git a/include/amqpcpp/message.h b/include/amqpcpp/message.h index 0a35838..96b43e1 100644 --- a/include/amqpcpp/message.h +++ b/include/amqpcpp/message.h @@ -80,7 +80,7 @@ protected: // safety-check: on 32-bit platforms size_t is obviously also a 32-bit dword // in which case casting the uint64_t to a size_t could result in truncation // here we check whether the given size fits inside a size_t - if (std::numeric_limits::max() < size) throw std::runtime_error("message is too big for this system"); + if ((std::numeric_limits::max)() < size) throw std::runtime_error("message is too big for this system"); // store the new size _bodySize = size; @@ -98,7 +98,7 @@ protected: if (_mutableBody) { // prevent overflow - size = std::min(size, _bodySize - _filled); + size = (std::min)(size, _bodySize - _filled); // append more data memcpy(_mutableBody + _filled, buffer, (size_t)size); @@ -121,7 +121,7 @@ protected: _body = _mutableBody; // store the initial data - _filled = std::min((size_t)size, (size_t)_bodySize); + _filled = (std::min)((size_t)size, (size_t)_bodySize); memcpy(_mutableBody, buffer, _filled); } ================================================ FILE: ports/amqpcpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CopernicaMarketingSoftware/AMQP-CPP REF "v${VERSION}" SHA512 310e0d1bc1780d54bd1f9a99d114003aee7bdfe8930be198b3006f2ca174c32718844f88d72fd75259d6ce20d35a9dc77a61aea4c364e4af17ba8c87cae43259 HEAD_REF master PATCHES fix-max_min_macros.patch ) if(VCPKG_TARGET_IS_LINUX) set(LINUX_TCP ON) else() set(LINUX_TCP OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAMQP-CPP_BUILD_SHARED=OFF -DAMQP-CPP_LINUX_TCP=${LINUX_TCP} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/amqpcpp/vcpkg.json ================================================ { "name": "amqpcpp", "version": "4.3.27", "description": "AMQP-CPP is a C++ library for communicating with a RabbitMQ message broker", "homepage": "https://github.com/CopernicaMarketingSoftware/AMQP-CPP", "license": "Apache-2.0", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/anari/anari-lib-maybe-static-lib.patch ================================================ diff --git a/src/anari/CMakeLists.txt b/src/anari/CMakeLists.txt index 6a34153..ee572a1 100644 --- a/src/anari/CMakeLists.txt +++ b/src/anari/CMakeLists.txt @@ -51,7 +51,12 @@ project_compile_definitions(PRIVATE -Danari_EXPORTS) ## Create main shared + static library targets ## project(anari) -add_anari_frontend_library_target(SHARED) +if(BUILD_SHARED_LIBS) + add_anari_frontend_library_target(SHARED) +else() + add_anari_frontend_library_target(STATIC) + project_compile_definitions(PUBLIC -DANARI_STATIC_DEFINE) +endif() project(anari_static) add_anari_frontend_library_target(STATIC) ================================================ FILE: ports/anari/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/ANARI-SDK REF "v${VERSION}" SHA512 504be3b6e8b33def5c43e0c59927da0fccd8c9356f384ceab20740e49a26f6e2e62b142893afec028ce61207741de9e72d9a496b7981109f290bb580552a0965 HEAD_REF next_release PATCHES anari-lib-maybe-static-lib.patch ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_CTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_HDANARI=OFF -DBUILD_HELIDE_DEVICE=OFF -DBUILD_REMOTE_DEVICE=OFF -DBUILD_TESTING=OFF -DBUILD_VIEWER=OFF -DINSTALL_CODE_GEN_SCRIPTS=ON -DINSTALL_VIEWER_LIBRARY=ON ) vcpkg_cmake_install() file(GLOB ANARI_CMAKE_CONFIG_FILE RELATIVE ${CURRENT_PACKAGES_DIR} "${CURRENT_PACKAGES_DIR}/lib/cmake/*/anariConfig.cmake") cmake_path(GET ANARI_CMAKE_CONFIG_FILE PARENT_PATH ANARI_CMAKE_CONFIG_DIR) vcpkg_cmake_config_fixup( CONFIG_PATH ${ANARI_CMAKE_CONFIG_DIR} ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/anari/anariConfig.cmake" " \${CMAKE_CURRENT_LIST_DIR}/../../../share/anari" " \${CMAKE_CURRENT_LIST_DIR}/../../share/anari" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/anari/code_gen/__pycache__" ) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" ) ================================================ FILE: ports/anari/vcpkg.json ================================================ { "name": "anari", "version": "0.15.0", "description": "Cross-Platform 3D Rendering Engine API.", "homepage": "https://www.khronos.org/anari", "license": "Apache-2.0", "dependencies": [ "glm", "python3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/anax/Add-bin-output.patch ================================================ --- a/CMakeLists.txt Tue Oct 13 13:47:40 2015 +++ b/CMakeLists.txt Tue Dec 06 11:13:23 2016 @@ -161,6 +161,7 @@ # Library files install( TARGETS ${ANAX_LIBRARY_NAME} + RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) ================================================ FILE: ports/anax/osx-arm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d427767..80965bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,10 +154,6 @@ set_target_properties(${ANAX_LIBRARY_NAME} PROPERTIES SOVERSION ${ANAX_VERSION_MAJOR} ) -if(APPLE) - set_target_properties(${ANAX_LIBRARY_NAME} PROPERTIES OSX_ARCHITECTURES "i386;x86_64;") -endif() - # Library files install( TARGETS ${ANAX_LIBRARY_NAME} ================================================ FILE: ports/anax/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO miguelmartin75/anax REF v2.1.0 SHA512 b573733b5f9634bf8cfc5b0715074f9a8ee29ecb48dc981d9371254a1f6ff8afbbb9ba6aa0877d53e518e5486ecc398a6d331fb9b5dbfd17d8707679216e11a3 HEAD_REF master PATCHES Add-bin-output.patch osx-arm.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/anax/vcpkg.json ================================================ { "name": "anax", "version": "2.1.0", "port-version": 8, "description": "An open source C++ entity system.", "homepage": "https://github.com/miguelmartin75/anax", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/andytech-tiny-crc32c/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AndyTechnologies/tiny-crc32c REF v1.0.1 SHA512 2f2033459b75d7fca35e849131098da127e75074aafed838dccf9f838cdb378dde0992e42a9cc52b3e8636b1d9b726f80a44e65a215f2e09b32e012d12b032ac HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/include/tiny_crc32.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/andytech-tiny-crc32c/vcpkg.json ================================================ { "name": "andytech-tiny-crc32c", "version": "1.0.1", "description": "Tiny C++23 header-only CRC32C library (Castagnoli polynomial)", "homepage": "https://github.com/AndyTechnologies/tiny-crc32c", "license": "MIT" } ================================================ FILE: ports/angelscript/fix-dependency.patch ================================================ diff --git a/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake b/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake index 4d1ef0f..ec14fe9 100644 --- a/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake +++ b/angelscript/projects/cmake/cmake/AngelscriptConfig.cmake @@ -1,2 +1,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/AngelscriptTargets.cmake") +include(CMakeFindDependencyMacro) +find_dependency(Threads REQUIRED) ================================================ FILE: ports/angelscript/fix-ndk-arm.patch ================================================ diff --git a/angelscript/source/as_callfunc_arm_gcc.S b/angelscript/source/as_callfunc_arm_gcc.S index 994fcb0..62a9602 100644 --- a/angelscript/source/as_callfunc_arm_gcc.S +++ b/angelscript/source/as_callfunc_arm_gcc.S @@ -53,6 +53,12 @@ .global armFuncObjLast .global armFuncR0ObjLast +.type armFunc, %function +.type armFuncR0, %function +.type armFuncR0R1, %function +.type armFuncObjLast, %function +.type armFuncR0ObjLast, %function + /* --------------------------------------------------------------------------------------------*/ armFunc: stmdb sp!, {r4-r8, lr} @@ -315,6 +321,7 @@ nomoreargsarmFuncR0R1: .arm /* Use ARM instructions instead of Thumb.*/ #endif .globl armFunc /* Make the function globally accessible.*/ + .type armFunc, %function armFunc: push {r4-r8, r10, r11, lr} /* sp must be 8-byte alignment for ABI compliance, so the pushed registers must be even */ @@ -474,6 +482,7 @@ nomoreargsarmFuncObjLast: .arm /* Use ARM instructions instead of Thumb.*/ #endif .globl armFuncR0ObjLast /* Make the function globally accessible.*/ + .type armFuncR0ObjLast, %function armFuncR0ObjLast: push {r4-r8, r10, r11, lr} @@ -568,6 +577,7 @@ nomoreargsarmFuncR0ObjLast: .arm /* Use ARM instructions instead of Thumb.*/ #endif .globl armFuncR0 /* Make the function globally accessible.*/ + .type armFuncR0, %function armFuncR0: push {r4-r8, r10, r11, lr} @@ -644,6 +654,7 @@ nomoreargsarmFuncR0: .arm /* Use ARM instructions instead of Thumb.*/ #endif .globl armFuncR0R1 /* Make the function globally accessible.*/ + .type armFuncR0R1, %function armFuncR0R1: push {r4-r8, r10, r11, lr} ================================================ FILE: ports/angelscript/fix-osx-x64.patch ================================================ diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt index 6f9d540..1adea0b 100644 --- a/angelscript/projects/cmake/CMakeLists.txt +++ b/angelscript/projects/cmake/CMakeLists.txt @@ -74,11 +74,7 @@ set(ANGELSCRIPT_SOURCE ../../source/as_builder.cpp ../../source/as_bytecode.cpp ../../source/as_callfunc.cpp - ../../source/as_callfunc_mips.cpp - ../../source/as_callfunc_x86.cpp ../../source/as_callfunc_x64_gcc.cpp - ../../source/as_callfunc_x64_msvc.cpp - ../../source/as_callfunc_x64_mingw.cpp ../../source/as_compiler.cpp ../../source/as_configgroup.cpp ../../source/as_context.cpp diff --git a/angelscript/source/as_callfunc_x64_gcc.cpp b/angelscript/source/as_callfunc_x64_gcc.cpp index 1111148..d15c4e9 100644 --- a/angelscript/source/as_callfunc_x64_gcc.cpp +++ b/angelscript/source/as_callfunc_x64_gcc.cpp @@ -141,7 +141,7 @@ static asQWORD __attribute__((noinline)) // Restore stack pointer " mov %%r15, %%rsp \n" -#if defined(__clang__) && defined(__OPTIMIZE__) +#if defined(__clang__) && defined(__OPTIMIZE__) && !(defined(__APPLE__) && defined(__x86_64__)) // Inform the stack unwind logic that the stack pointer has been restored // This should only be done if any optimization is done. If no optimization (-O0) is used, // then the compiler already backups the rsp before entering the inline assembler code ================================================ FILE: ports/angelscript/fix-win-arm64.patch ================================================ diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt index 6f9d540..6eae090 100644 --- a/angelscript/projects/cmake/CMakeLists.txt +++ b/angelscript/projects/cmake/CMakeLists.txt @@ -77,7 +77,7 @@ set(ANGELSCRIPT_SOURCE ../../source/as_callfunc_mips.cpp ../../source/as_callfunc_x86.cpp ../../source/as_callfunc_x64_gcc.cpp - ../../source/as_callfunc_x64_msvc.cpp + ../../source/as_callfunc_arm64.cpp ../../source/as_callfunc_x64_mingw.cpp ../../source/as_compiler.cpp ../../source/as_configgroup.cpp @@ -106,9 +106,9 @@ set(ANGELSCRIPT_SOURCE ) if(MSVC AND CMAKE_CL_64) - enable_language(ASM_MASM) + enable_language(ASM_MARMASM) if(CMAKE_ASM_MASM_COMPILER_WORKS) - set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} ../../source/as_callfunc_x64_msvc_asm.asm) + set(ANGELSCRIPT_SOURCE ${ANGELSCRIPT_SOURCE} ../../source/as_callfunc_arm64_msvc.asm) else() message(FATAL ERROR "MSVC x86_64 target requires a working assembler") endif() diff --git a/angelscript/source/as_config.h b/angelscript/source/as_config.h index 9a99faf..293cc2e 100644 --- a/angelscript/source/as_config.h +++ b/angelscript/source/as_config.h @@ -532,7 +532,7 @@ #endif #endif - #if defined(_M_ARM64) + #if defined(_M_ARM) #define AS_ARM64 // TODO: MORE HERE ================================================ FILE: ports/angelscript/mark-threads-private.patch ================================================ diff --git a/angelscript/projects/cmake/CMakeLists.txt b/angelscript/projects/cmake/CMakeLists.txt index 6f9d540..5d39f9b 100644 --- a/angelscript/projects/cmake/CMakeLists.txt +++ b/angelscript/projects/cmake/CMakeLists.txt @@ -192,7 +192,7 @@ endif() # Don't override the default library output path to avoid conflicts when building for multiple target platforms #set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../../lib) -target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} Threads::Threads) +target_link_libraries(${ANGELSCRIPT_LIBRARY_NAME} PRIVATE Threads::Threads) set_target_properties(${ANGELSCRIPT_LIBRARY_NAME} PROPERTIES VERSION ${PROJECT_VERSION}) ================================================ FILE: ports/angelscript/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://angelcode.com/angelscript/sdk/files/angelscript_${VERSION}.zip" FILENAME "angelscript_${VERSION}.zip" SHA512 87c94042932f15d07fe6ede4c3671b1f73ac757b68ab360187591497eeabc56a4ddb7901e4567108e44886a2011a29c2884d4b7389557826f36a6c384f4a9c69 ) set(PATCHES "mark-threads-private.patch" "fix-dependency.patch" ) if (VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND PATCHES "fix-osx-x64.patch") endif() if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") list(APPEND PATCHES "fix-win-arm64.patch") endif() if (VCPKG_TARGET_IS_ANDROID AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") list(APPEND PATCHES "fix-ndk-arm.patch") endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ${PATCHES} ) if (VCPKG_TARGET_IS_ANDROID AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") vcpkg_replace_string("${SOURCE_PATH}/angelscript/source/as_callfunc_arm_gcc.S" [[.globl armFuncObjLast /* Make the function globally accessible.*/]] [[.globl armFuncObjLast /* Make the function globally accessible.*/ .type armFuncObjLast, %function]]) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/angelscript/projects/cmake" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Angelscript") # Copy the addon files if("addons" IN_LIST FEATURES) file(INSTALL "${SOURCE_PATH}/add_on/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/angelscript" FILES_MATCHING PATTERN "*.h" PATTERN "*.cpp") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/manual/doc_license.html") ================================================ FILE: ports/angelscript/vcpkg.json ================================================ { "name": "angelscript", "version": "2.38.0", "description": "The AngelCode Scripting Library, or AngelScript as it is also known, is an extremely flexible cross-platform scripting library designed to allow applications to extend their functionality through external scripts. It has been designed from the beginning to be an easy to use component, both for the application programmer and the script writer.", "homepage": "https://angelcode.com/angelscript", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "addons": { "description": "Installs all addons for use in compiling scripts addons" } } } ================================================ FILE: ports/angle/001-fix-builder-error.patch ================================================ diff --git a/src/gpu_info_util/SystemInfo_win.cpp b/src/gpu_info_util/SystemInfo_win.cpp index f4bb137f2..86495013b 100644 --- a/src/gpu_info_util/SystemInfo_win.cpp +++ b/src/gpu_info_util/SystemInfo_win.cpp @@ -6,11 +6,6 @@ // SystemInfo_win.cpp: implementation of the Windows-specific parts of SystemInfo.h -#include "gpu_info_util/SystemInfo_internal.h" - -#include "common/debug.h" -#include "common/string_utils.h" - // Windows.h needs to be included first #include @@ -19,6 +14,11 @@ #include #include +#include "gpu_info_util/SystemInfo_internal.h" + +#include "common/debug.h" +#include "common/string_utils.h" + namespace angle { ================================================ FILE: ports/angle/001-fix-uwp.patch ================================================ diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp index 7d3f078d6..fac057dd6 100644 --- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp +++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp @@ -213,16 +213,20 @@ HRESULT GetCoreWindowSizeInPixels(const ComPtr displayProperties; + ComPtr displayInformationStatics; + ComPtr displayInformation; if (SUCCEEDED(GetActivationFactory( - HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), - displayProperties.GetAddressOf()))) + HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayInformation).Get(), + displayInformationStatics.GetAddressOf()))) { float dpi = 96.0f; - if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) + if (SUCCEEDED(displayInformationStatics->GetForCurrentView(&displayInformation))) { - return dpi; + if (SUCCEEDED(displayInformation->get_LogicalDpi(&dpi))) + { + return dpi; + } } } ================================================ FILE: ports/angle/002-fix-builder-error.patch ================================================ diff --git a/src/gpu_info_util/SystemInfo_win.cpp b/src/gpu_info_util/SystemInfo_win.cpp index f4bb137f2..86495013b 100644 --- a/src/gpu_info_util/SystemInfo_win.cpp +++ b/src/gpu_info_util/SystemInfo_win.cpp @@ -6,11 +6,6 @@ // SystemInfo_win.cpp: implementation of the Windows-specific parts of SystemInfo.h -#include "gpu_info_util/SystemInfo_internal.h" - -#include "common/debug.h" -#include "common/string_utils.h" - // Windows.h needs to be included first #include @@ -19,6 +14,11 @@ #include #include +#include "gpu_info_util/SystemInfo_internal.h" + +#include "common/debug.h" +#include "common/string_utils.h" + namespace angle { diff --git a/include/GLSLANG/ShaderVars.h b/include/GLSLANG/ShaderVars.h index 94cb93e..5593f66 100644 --- a/include/GLSLANG/ShaderVars.h +++ b/include/GLSLANG/ShaderVars.h @@ -14,6 +14,7 @@ #include #include #include +#include namespace sh { ================================================ FILE: ports/angle/003-fix-mingw.patch ================================================ diff --git a/src/common/mathutil.h b/src/common/mathutil.h index 1d73bbf..c5b9cc8 100644 --- a/src/common/mathutil.h +++ b/src/common/mathutil.h @@ -1073,7 +1073,7 @@ inline int BitCount(uint64_t bits) # endif // defined(_M_IX86) || defined(_M_X64) #endif // defined(_MSC_VER) && !defined(__clang__) -#if defined(ANGLE_PLATFORM_POSIX) || defined(__clang__) +#if defined(ANGLE_PLATFORM_POSIX) || defined(__clang__) || defined(__MINGW32__) inline int BitCount(uint32_t bits) { return __builtin_popcount(bits); @@ -1083,7 +1083,7 @@ inline int BitCount(uint64_t bits) { return __builtin_popcountll(bits); } -#endif // defined(ANGLE_PLATFORM_POSIX) || defined(__clang__) +#endif // defined(ANGLE_PLATFORM_POSIX) || defined(__clang__) || defined(__MINGW32__) inline int BitCount(uint8_t bits) { ================================================ FILE: ports/angle/ANGLEShaderProgramVersion.h.in ================================================ #cmakedefine ANGLE_PROGRAM_VERSION "@ANGLE_PROGRAM_VERSION@" #cmakedefine ANGLE_PROGRAM_VERSION_HASH_SIZE @ANGLE_PROGRAM_VERSION_HASH_SIZE@ ================================================ FILE: ports/angle/angle_commit.h.in ================================================ #cmakedefine ANGLE_COMMIT_HASH "@ANGLE_COMMIT_HASH@" #cmakedefine ANGLE_COMMIT_HASH_SIZE @ANGLE_COMMIT_HASH_SIZE@ #cmakedefine ANGLE_COMMIT_DATE "@ANGLE_COMMIT_DATE@" #cmakedefine ANGLE_REVISION @ANGLE_REVISION@ ================================================ FILE: ports/angle/cmake-buildsystem/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(angle CXX C) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") include(WebKitCommon-minimal) set(ANGLE_FRAMEWORK_HEADERS_DIR "${CMAKE_BINARY_DIR}/ANGLE/headers") set(USE_ANGLE_EGL ON) if (NOT WINDOWS_STORE AND NOT USE_METAL) set(USE_OPENGL ON) endif() if(MSVC) add_compile_options(/d2guard4 /Wv:18 /guard:cf /permissive /bigobj) add_link_options(/guard:cf) endif() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") set(CMAKE_STATIC_LIBRARY_PREFIX "") if(WIN32) set(CMAKE_SHARED_LIBRARY_PREFIX "") endif() if (WINDOWS_STORE) set(WINRT_DEFINES -DANGLE_ENABLE_WINDOWS_UWP -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP) else() set(WINRT_DEFINES) endif() add_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -DGL_SILENCE_DEPRECATION -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DANGLE_STANDALONE_BUILD ${WINRT_DEFINES} ) add_compile_options("$<$:-DANGLE_ENABLE_DEBUG_ANNOTATIONS>") if(WIN32) add_definitions(-DANGLE_IS_WIN) endif() if(LINUX) add_definitions(-DANGLE_IS_LINUX) endif() if(ANGLE_IS_64_BIT_CPU) add_definitions(-DANGLE_IS_64_BIT_CPU) elseif(ANGLE_IS_32_BIT_CPU) add_definitions(-DANGLE_IS_32_BIT_CPU) endif() if(ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW) if(NOT WIN32) message(FATAL_ERROR "ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW is set, but is only supported on Windows") endif() set(angle_enable_d3d11_compositor_native_window TRUE) endif() if(NOT BUILD_SHARED_LIBS) add_definitions( -DANGLE_EXPORT= -DANGLE_STATIC=1 -DANGLE_UTIL_EXPORT= -DEGLAPI= -DGL_APICALL= -DGL_API= ) endif() find_package(ZLIB REQUIRED) ################################################## # Derived from: https://github.com/WebKit/WebKit/blob/92dbcacf4c3e3a8fc6eea68e7022ca59401749e0/Source/ThirdParty/ANGLE/CMakeLists.txt # With modifications for vcpkg port (marked with "VCPKG EDIT:" comments) set_property(DIRECTORY . PROPERTY FOLDER "ANGLE") # VCPKG EDIT: modified block if (APPLE) set(is_apple TRUE) if (IOS) set(is_ios TRUE) if (USE_OPENGL) set(angle_enable_eagl TRUE) endif() else() set(is_mac TRUE) endif() if (USE_OPENGL AND NOT angle_enable_eagl) set(angle_enable_cgl TRUE) endif() elseif (WIN32) set(is_win TRUE) if (NOT WINDOWS_STORE) set(angle_is_winuwp FALSE) else() set(angle_is_winuwp TRUE) set(target_os "winuwp") endif() if (NOT angle_is_winuwp) set(angle_enable_d3d9 TRUE) endif() set(angle_enable_d3d11 TRUE) elseif (UNIX) set(is_linux TRUE) endif () # VCPKG EDIT: end vcpkg modified block include(Compiler.cmake) include(GLESv2.cmake) # ANGLE Renderer backends include(D3D.cmake) include(GL.cmake) include(Metal.cmake) set(no_gl_prototypes GL_GLES_PROTOTYPES=0 EGL_EGL_PROTOTYPES=0 ) set(gl_prototypes GL_GLES_PROTOTYPES=1 EGL_EGL_PROTOTYPES=1 GL_GLEXT_PROTOTYPES EGL_EGLEXT_PROTOTYPES ) # Default library types for ANGLE # Override these in Platform*.cmake for your port as needed. set(ANGLE_LIBRARY_TYPE STATIC) # libANGLE static library (matches expected behavior & prior behavior) set(GLESv2_LIBRARY_TYPE) # VCPKG EDIT: Default to BUILD_SHARED_LIBS setting set(EGL_LIBRARY_TYPE) # VCPKG EDIT: Default to BUILD_SHARED_LIBS setting # ANGLE makes a number of small static libraries that are then joined into a # bigger library that is built shared. Rather than making the small libraries # there will be a ANGLE whose sources are dependent on whether the library # is being used as a compiler or as a GLES implementation. # # The corresponding gn targets are described below # # ANGLE (Compiler only) # + angle_common # + preprocessor # + translator # # ANGLE (GLES) # + ANGLE (Compiler only) # + xxhash # + angle_image_util # + angle_system_utils (OS specific) # + angle_(renderer) (Backend and OS specific) set(ANGLE_PRIVATE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/include/KHR" "${CMAKE_CURRENT_SOURCE_DIR}/src" "${CMAKE_CURRENT_SOURCE_DIR}/src/common/third_party/base" "${CMAKE_CURRENT_SOURCE_DIR}/src/common/base" "${CMAKE_CURRENT_SOURCE_DIR}/src/common/third_party/xxhash" "${CMAKE_CURRENT_SOURCE_DIR}/third_party/zlib/google" "${CMAKE_CURRENT_BINARY_DIR}/include" ) set(ANGLE_DEFINITIONS ANGLE_ENABLE_ESSL ANGLE_ENABLE_GLSL ) # VCPKG EDIT list(APPEND ANGLE_DEFINITIONS ANGLE_CAPTURE_ENABLED=0) if (NOT WIN32) list(APPEND ANGLE_DEFINITIONS "-DGL_API=__attribute__((visibility(\"default\")))" "-DGL_APICALL=__attribute__((visibility(\"default\")))" ) endif() # END VCPKG EDIT set(ANGLE_SOURCES ${libangle_common_sources} ${libangle_common_shader_state_sources} ${angle_preprocessor_sources} ${angle_translator_glsl_base_sources} ${angle_translator_essl_sources} ${angle_translator_essl_symbol_table_sources} ${angle_translator_glsl_and_vulkan_base_sources} ${angle_translator_glsl_sources} ${angle_translator_sources} ${angle_system_utils_sources} src/common/angle_version_info.cpp src/libANGLE/capture/FrameCapture_mock.cpp src/libANGLE/capture/serialize_mock.cpp ) if (WIN32) # FIXME: DX11 support will not compile if this preprocessor definition is set # DirectX Documentation is setting that version to 0x700 but there is no # corresponding value in sdkddkver.h remove_definitions(-D_WIN32_WINNT=0x601 -DWINVER=0x601) list(APPEND ANGLE_SOURCES "src/libANGLE/renderer/dxgi_format_map.h" "src/libANGLE/renderer/dxgi_format_map_autogen.cpp" "src/libANGLE/renderer/dxgi_support_table.h" "src/libANGLE/renderer/dxgi_support_table_autogen.cpp" ) if (NOT angle_is_winuwp) list(APPEND ANGLE_SOURCES "src/libANGLE/renderer/d3d_format.cpp" "src/libANGLE/renderer/d3d_format.h" ) endif() endif () set(ANGLEGLESv2_LIBRARIES ANGLE ) set(zlib_wrapper_sources "third_party/zlib/google/compression_utils_portable.h" "third_party/zlib/google/compression_utils_portable.cc" ) set(angle_gl_enum_utils # VCPKG EDIT: Update paths "src/common/gl_enum_utils.cpp" "src/common/gl_enum_utils.h" "src/common/gl_enum_utils_autogen.cpp" "src/common/gl_enum_utils_autogen.h" ) WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() add_subdirectory(include) add_library(ANGLEFramework INTERFACE) add_dependencies(ANGLEFramework GLSLANGHeaders ANGLEHeaders) if (USE_ANGLE_EGL OR ENABLE_WEBGL) add_library(ANGLE ${ANGLE_LIBRARY_TYPE} ${ANGLE_SOURCES} ${libangle_sources} ${libangle_headers} ${libangle_image_util_sources} ${libangle_image_util_headers} ${xxhash_sources} ${zlib_wrapper_sources} ${angle_gl_enum_utils} ) target_include_directories(ANGLE PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES}) target_compile_definitions(ANGLE PRIVATE ${no_gl_prototypes} LIBANGLE_IMPLEMENTATION ) target_compile_definitions(ANGLE PUBLIC ${ANGLE_DEFINITIONS}) target_link_libraries(ANGLE PRIVATE ZLIB::ZLIB ${CMAKE_DL_LIBS}) target_compile_definitions(ANGLEFramework INTERFACE ${gl_prototypes}) add_library(GLESv2 ${GLESv2_LIBRARY_TYPE} ${libglesv2_entry_point_sources} ${libglesv2_sources} ) target_include_directories(GLESv2 PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES}) target_compile_definitions(GLESv2 PRIVATE ${no_gl_prototypes} LIBGLESV2_IMPLEMENTATION ) target_link_libraries(GLESv2 PRIVATE ${ANGLEGLESv2_LIBRARIES} ${CMAKE_DL_LIBS}) if (WIN32) # Output library name according to the .def target_sources(GLESv2 PRIVATE src/libGLESv2/libGLESv2_autogen.def) set_target_properties(GLESv2 PROPERTIES OUTPUT_NAME libGLESv2) endif () # Rename libs to avoid conflict with system OpenGL if(NOT VCPKG_TARGET_IS_WINDOWS) set_target_properties(GLESv2 PROPERTIES OUTPUT_NAME libGLESv2_angle) endif() add_library(GLESv2Framework INTERFACE) target_link_libraries(GLESv2Framework INTERFACE GLESv2) target_include_directories(GLESv2Framework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR}) target_compile_definitions(GLESv2Framework INTERFACE USE_SYSTEM_EGL) add_library(ANGLE::GLES ALIAS GLESv2Framework) if (USE_ANGLE_EGL) add_library(EGL ${EGL_LIBRARY_TYPE} ${libegl_sources} ) target_include_directories(EGL PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES}) target_compile_definitions(EGL PRIVATE ${ANGLE_DEFINITIONS} ${gl_prototypes} EGLAPI= ) target_link_libraries(EGL PRIVATE GLESv2 ${CMAKE_DL_LIBS}) set_target_properties(EGL PROPERTIES LINKER_LANGUAGE CXX) if (WIN32) # Output library names according to the .def target_sources(EGL PRIVATE src/libEGL/libEGL_autogen.def) set_target_properties(EGL PROPERTIES OUTPUT_NAME libEGL) endif () # Rename libs to avoid conflict with system OpenGL if(NOT VCPKG_TARGET_IS_WINDOWS) set_target_properties(EGL PROPERTIES OUTPUT_NAME libEGL_angle) endif() add_library(EGLFramework INTERFACE) target_include_directories(EGLFramework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR}/) target_compile_definitions(EGLFramework INTERFACE ${gl_prototypes}) target_link_libraries(EGLFramework INTERFACE EGL) add_library(ANGLE::EGL ALIAS EGLFramework) endif () else () add_library(ANGLE ${ANGLE_LIBRARY_TYPE} ${ANGLE_SOURCES}) target_include_directories(ANGLE PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES}) target_link_libraries(ANGLE PRIVATE ${CMAKE_DL_LIBS}) target_compile_definitions(ANGLE PRIVATE ${ANGLE_DEFINITIONS} ${no_gl_prototypes} LIBANGLE_IMPLEMENTATION ) endif () if (ENABLE_WEBGL) set(libglesv2_entry_points_headers src/libGLESv2/entry_points_egl_autogen.h src/libGLESv2/entry_points_egl_ext_autogen.h src/libGLESv2/entry_points_gles_2_0_autogen.h src/libGLESv2/entry_points_gles_3_0_autogen.h src/libGLESv2/entry_points_gles_ext_autogen.h ) WEBKIT_COPY_FILES(LibGLESv2EntryPointsHeaders DESTINATION ${ANGLE_FRAMEWORK_HEADERS_DIR}/ANGLE FILES ${libglesv2_entry_points_headers} FLATTENED ) if (WIN32 AND TARGET GLESv2) # GLESv2 needs to have a direct or indirect dependency to # LibGLESv2EntryPointsHeaders for CMake Visual Studio generator # to eliminate duplicated custom commands. Otherwise, # entry_points_*.h will be copied twice in both projects. add_dependencies(GLESv2 LibGLESv2EntryPointsHeaders) endif () add_custom_target(ANGLE-webgl-headers DEPENDS LibGLESv2EntryPointsHeaders ANGLEWebGLHeaders COMMAND ${CMAKE_COMMAND} -E env BUILT_PRODUCTS_DIR=${ANGLE_FRAMEWORK_HEADERS_DIR} PUBLIC_HEADERS_FOLDER_PATH=/ANGLE ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/adjust-angle-include-paths.py VERBATIM ) add_dependencies(GLESv2Framework ANGLE-webgl-headers) endif () if (COMPILER_IS_GCC_OR_CLANG) foreach (angle_target ANGLE EGL GLESv2) if (TARGET ${angle_target}) WEBKIT_ADD_TARGET_C_FLAGS(${angle_target} -w) WEBKIT_ADD_TARGET_CXX_FLAGS(${angle_target} -w) endif () endforeach () endif () target_link_libraries(ANGLEFramework INTERFACE ANGLE) target_include_directories(ANGLEFramework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR}) add_library(ANGLE::ANGLE ALIAS ANGLEFramework) ################################################## #### VCPKG EDIT: #### various vcpkg additions and install commands # set export names of some targets to match prior vcpkg port buildsystem if(TARGET EGL) set_target_properties(EGL PROPERTIES EXPORT_NAME libEGL) endif() if(TARGET GLESv2) set_target_properties(GLESv2 PROPERTIES EXPORT_NAME libGLESv2) endif() set_target_properties(ANGLE PROPERTIES EXPORT_NAME libANGLE) set(_possibleTargets EGL GLESv2 ANGLE) foreach(_target IN LISTS _possibleTargets) if(TARGET ${_target}) list(APPEND _installableTargets "${_target}") endif() endforeach() install(TARGETS ${_installableTargets} EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT ANGLEExport FILE unofficial-angle-targets.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) install(FILES unofficial-angle-config.cmake DESTINATION share/unofficial-angle) install( DIRECTORY "${ANGLE_FRAMEWORK_HEADERS_DIR}/" DESTINATION include FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" PATTERN "CL" EXCLUDE PATTERN "GLSLANG" EXCLUDE PATTERN "EGL/egl.h" EXCLUDE PATTERN "EGL/eglext.h" EXCLUDE PATTERN "EGL/eglplatform.h" EXCLUDE PATTERN "KHR" EXCLUDE PATTERN "WGL" EXCLUDE PATTERN "export.h" EXCLUDE PATTERN "GLES/egl.h" EXCLUDE PATTERN "GLES/gl.h" EXCLUDE PATTERN "GLES/glext.h" EXCLUDE PATTERN "GLES/glplatform.h" EXCLUDE PATTERN "GLES2/gl2.h" EXCLUDE PATTERN "GLES2/gl2ext.h" EXCLUDE PATTERN "GLES2/gl2platform.h" EXCLUDE PATTERN "GLES3/gl3.h" EXCLUDE PATTERN "GLES3/gl31.h" EXCLUDE PATTERN "GLES3/gl32.h" EXCLUDE PATTERN "GLES3/gl3platform.h" EXCLUDE ) install( DIRECTORY "${ANGLE_FRAMEWORK_HEADERS_DIR}/" DESTINATION include/angle FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" PATTERN "CL" EXCLUDE PATTERN "GLSLANG" EXCLUDE PATTERN "EGL/egl.h" EXCLUDE PATTERN "EGL/eglext.h" EXCLUDE PATTERN "EGL/eglplatform.h" EXCLUDE PATTERN "KHR" EXCLUDE PATTERN "WGL" EXCLUDE PATTERN "export.h" EXCLUDE ) if(NOT BUILD_SHARED_LIBS) foreach(angle_target EGL GLESv2 ANGLE) if(TARGET ${angle_target}) target_compile_definitions(${angle_target} INTERFACE $) endif() endforeach() endif() ================================================ FILE: ports/angle/cmake-buildsystem/PlatformLinux.cmake ================================================ list(APPEND ANGLE_DEFINITIONS ANGLE_PLATFORM_LINUX USE_SYSTEM_EGL) include(linux.cmake) if (USE_OPENGL) # Enable GLSL compiler output. list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_GLSL) endif () if (USE_ANGLE_EGL OR ENABLE_WEBGL) list(APPEND ANGLE_SOURCES ${gl_backend_sources} ${angle_system_utils_sources_linux} ${angle_system_utils_sources_posix} ${angle_dma_buf_sources} ${libangle_gl_egl_dl_sources} ${libangle_gl_egl_sources} ${libangle_gl_sources} ${libangle_gpu_info_util_sources} ${libangle_gpu_info_util_linux_sources} ) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_OPENGL ) endif () ================================================ FILE: ports/angle/cmake-buildsystem/PlatformMac.cmake ================================================ find_package(ZLIB REQUIRED) list(APPEND ANGLE_SOURCES ${libangle_gpu_info_util_mac_sources} ${libangle_gpu_info_util_sources} ${libangle_mac_sources} ) list(APPEND ANGLEGLESv2_LIBRARIES "-framework CoreGraphics" "-framework Foundation" "-framework IOKit" "-framework IOSurface" "-framework Quartz" ) # Metal backend if(USE_METAL) list(APPEND ANGLE_SOURCES ${metal_backend_sources} ${angle_translator_lib_msl_sources} ${angle_translator_glsl_apple_sources} ) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_METAL ) list(APPEND ANGLEGLESv2_LIBRARIES "-framework Metal" ) endif() # OpenGL backend if(USE_OPENGL) list(APPEND ANGLE_SOURCES ${angle_translator_glsl_base_sources} ${angle_translator_glsl_sources} ${angle_translator_glsl_apple_sources} ) # Enable GLSL compiler output. list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_GLSL ANGLE_ENABLE_GL_DESKTOP_BACKEND ANGLE_ENABLE_APPLE_WORKAROUNDS ANGLE_ENABLE_CGL) # Still need to link with Metal as we call MTLCreateSystemDefaultDevice even if USE_METAL is not defined list(APPEND ANGLEGLESv2_LIBRARIES "-framework Metal" ) endif() if(USE_OPENGL OR ENABLE_WEBGL) list(APPEND ANGLE_SOURCES ${gl_backend_sources} ${libangle_gl_egl_dl_sources} ${libangle_gl_egl_sources} ${libangle_gl_sources} ) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_OPENGL ) endif() ================================================ FILE: ports/angle/cmake-buildsystem/PlatformWin.cmake ================================================ # We're targeting Windows 10 which will have DirectX 11 on it so require that # but make DirectX 9 optional list(APPEND ANGLE_DEFINITIONS GL_APICALL= GL_API= NOMINMAX ) # We're targeting Windows 10 which will have DirectX 11 list(APPEND ANGLE_SOURCES ${d3d11_backend_sources} ${d3d_shared_sources} ${angle_translator_hlsl_sources} ${libangle_gpu_info_util_sources} ${libangle_gpu_info_util_win_sources} ) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D11 ANGLE_ENABLE_HLSL # VCPKG EDIT: add ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }" ) # https://issues.angleproject.org/issues/345274916 list(APPEND ANGLEGLESv2_LIBRARIES dxguid dxgi synchronization) if(NOT angle_is_winuwp) # vcpkg EDIT: Exclude DirectX 9 on UWP # DirectX 9 support should be optional but ANGLE will not compile without it list(APPEND ANGLE_SOURCES ${d3d9_backend_sources}) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D9) list(APPEND ANGLEGLESv2_LIBRARIES d3d9) endif() # VCPKG EDITS: # Do not specify library type here # Handle angle_enable_d3d11_compositor_native_window defines if(angle_enable_d3d11_compositor_native_window) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D11_COMPOSITOR_NATIVE_WINDOW) endif() # OpenGL backend if(USE_OPENGL) # Enable GLSL compiler output. list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_GLSL) if(USE_ANGLE_EGL OR ENABLE_WEBGL) list(APPEND ANGLE_SOURCES ${gl_backend_sources} ${libangle_gl_egl_dl_sources} ${libangle_gl_egl_sources} ${libangle_gl_sources} ) list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_OPENGL ANGLE_ENABLE_GL_DESKTOP_BACKEND ) endif() endif() ================================================ FILE: ports/angle/cmake-buildsystem/cmake/DetectSSE2.cmake ================================================ # https://github.com/WebKit/WebKit/blob/0742522b24152262b04913242cb0b3c48de92ba0/Source/cmake/DetectSSE2.cmake ################################# # Check for the presence of SSE2. # # Once done, this will define: # - SSE2_SUPPORT_FOUND - the system supports (at least) SSE2. # # Copyright (c) 2014, Pablo Fernandez Alcantarilla, Jesus Nuevo # Copyright (c) 2019, Igalia S.L. # # Redistribution and use in source and binary forms, with or without modification, # are permitted provided that the following conditions are met: # # * Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # # * Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # # * Neither the name of the copyright holders nor the names of its contributors # may be used to endorse or promote products derived from this software without # specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT # SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY # WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. set(SSE2_SUPPORT_FOUND FALSE) macro(CHECK_FOR_SSE2) include(CheckCXXSourceRuns) check_cxx_source_runs(" #include int main () { __m128d a, b; double vals[2] = {0}; a = _mm_loadu_pd (vals); b = _mm_add_pd (a,a); _mm_storeu_pd (vals,b); return 0; }" HAVE_SSE2_EXTENSIONS) if (COMPILER_IS_GCC_OR_CLANG OR (MSVC AND NOT CMAKE_CL_64)) if (HAVE_SSE2_EXTENSIONS) set(SSE2_SUPPORT_FOUND TRUE) message(STATUS "Found SSE2 extensions") endif () endif () endmacro(CHECK_FOR_SSE2) CHECK_FOR_SSE2() ================================================ FILE: ports/angle/cmake-buildsystem/cmake/WebKitCommon-minimal.cmake ================================================ # VCPKG NOTE: A minimal version of WebKit's https://github.com/WebKit/WebKit/blob/647e67b23883960fef8890465c0f70d7ab6e63f1/Source/cmake/WebKitCommon.cmake # To support the adapted ANGLE CMake buildsystem # ----------------------------------------------------------------------------- # This file is included individually from various subdirectories (JSC, WTF, # WebCore, WebKit) in order to allow scripts to build only part of WebKit. # We want to run this file only once. # ----------------------------------------------------------------------------- if (NOT HAS_RUN_WEBKIT_COMMON) set(HAS_RUN_WEBKIT_COMMON TRUE) if (NOT CMAKE_BUILD_TYPE) message(WARNING "No CMAKE_BUILD_TYPE value specified, defaulting to RelWithDebInfo.") set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build." FORCE) else () message(STATUS "The CMake build type is: ${CMAKE_BUILD_TYPE}") endif () # ----------------------------------------------------------------------------- # Determine which port will be built # ----------------------------------------------------------------------------- set(ALL_PORTS AppleWin Efl FTW GTK JSCOnly Mac PlayStation WPE WinCairo Linux # VCPKG EDIT: Add "Linux" so it's properly supported for ANGLE build Win # VCPKG EDIT: Add "Win" so it's properly supported for ANGLE build ) set(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})") list(FIND ALL_PORTS ${PORT} RET) if (${RET} EQUAL -1) if (APPLE) set(PORT "Mac") else () message(WARNING "Please choose which WebKit port to build (one of ${ALL_PORTS})") endif () endif () string(TOLOWER ${PORT} WEBKIT_PORT_DIR) # ----------------------------------------------------------------------------- # Determine the compiler # ----------------------------------------------------------------------------- if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") set(COMPILER_IS_CLANG ON) endif () if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "9.3.0") message(FATAL_ERROR "GCC 9.3 or newer is required to build WebKit. Use a newer GCC version or Clang.") endif () endif () if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG) set(COMPILER_IS_GCC_OR_CLANG ON) endif () if (MSVC AND COMPILER_IS_CLANG) set(COMPILER_IS_CLANG_CL ON) endif () # ----------------------------------------------------------------------------- # Determine the target processor # ----------------------------------------------------------------------------- # Use MSVC_CXX_ARCHITECTURE_ID instead of CMAKE_SYSTEM_PROCESSOR when defined, # since the later one just resolves to the host processor on Windows. if (MSVC_CXX_ARCHITECTURE_ID) string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) else () string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) endif () if (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(^aarch64|^arm64|^cortex-?[am][2-7][2-8])") set(WTF_CPU_ARM64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(^arm|^cortex)") set(WTF_CPU_ARM 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64") set(WTF_CPU_MIPS64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") set(WTF_CPU_MIPS 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x64|x86_64|amd64)") # FORCE_32BIT is set in the build script when --32-bit is passed # on a Linux/intel 64bit host. This allows us to produce 32bit # binaries without setting the build up as a crosscompilation, # which is the only way to modify CMAKE_SYSTEM_PROCESSOR. if (FORCE_32BIT) set(WTF_CPU_X86 1) else () set(WTF_CPU_X86_64 1) endif () elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)") set(WTF_CPU_X86 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc") set(WTF_CPU_PPC 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64") set(WTF_CPU_PPC64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") set(WTF_CPU_PPC64LE 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64") set(WTF_CPU_RISCV64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^loongarch64") set(WTF_CPU_LOONGARCH64 1) else () set(WTF_CPU_UNKNOWN 1) endif () # ----------------------------------------------------------------------------- # Determine the operating system # ----------------------------------------------------------------------------- if (UNIX) if (APPLE) set(WTF_OS_MAC_OS_X 1) elseif (CMAKE_SYSTEM_NAME MATCHES "Linux") set(WTF_OS_LINUX 1) else () set(WTF_OS_UNIX 1) endif () elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") set(WTF_OS_WINDOWS 1) elseif (CMAKE_SYSTEM_NAME MATCHES "Fuchsia") set(WTF_OS_FUCHSIA 1) else () message(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'") endif () # ----------------------------------------------------------------------------- # Default library types # ----------------------------------------------------------------------------- set(CMAKE_POSITION_INDEPENDENT_CODE True) # ----------------------------------------------------------------------------- # Default output directories, which can be overwritten by ports #------------------------------------------------------------------------------ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # ----------------------------------------------------------------------------- # Find common packages (used by all ports) # ----------------------------------------------------------------------------- if (WIN32) list(APPEND CMAKE_PROGRAM_PATH $ENV{SystemDrive}/cygwin/bin) endif () # ----------------------------------------------------------------------------- # Helper macros and feature defines # ----------------------------------------------------------------------------- # To prevent multiple inclusion, most modules should be included once here. include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) include(CheckCXXSourceCompiles) include(CheckFunctionExists) include(CheckIncludeFile) include(CheckSymbolExists) include(CheckStructHasMember) include(CheckTypeSize) include(CMakeDependentOption) include(CMakeParseArguments) include(CMakePushCheckState) include(ProcessorCount) # include(WebKitPackaging) include(WebKitMacros-minimal) # include(WebKitFS) # include(WebKitCCache) include(WebKitCompilerFlags-minimal) # include(WebKitStaticAnalysis) # include(WebKitFeatures) # include(WebKitFindPackage) # include(OptionsCommon) # include(Options${PORT}) # ----------------------------------------------------------------------------- # Job pool to avoid running too many memory hungry linker processes # ----------------------------------------------------------------------------- if (${CMAKE_BUILD_TYPE} STREQUAL "Release" OR ${CMAKE_BUILD_TYPE} STREQUAL "MinSizeRel") set_property(GLOBAL PROPERTY JOB_POOLS link_pool_jobs=4) else () set_property(GLOBAL PROPERTY JOB_POOLS link_pool_jobs=2) endif () set(CMAKE_JOB_POOL_LINK link_pool_jobs) endif () ================================================ FILE: ports/angle/cmake-buildsystem/cmake/WebKitCompilerFlags-minimal.cmake ================================================ # VCPKG NOTE: A minimal version of WebKit's https://github.com/WebKit/WebKit/blob/0742522b24152262b04913242cb0b3c48de92ba0/Source/cmake/WebKitCompilerFlags.cmake # To support the adapted ANGLE CMake buildsystem # Checks whether all the given compiler flags are supported by the compiler. # The _compiler may be either "C" or "CXX", and the result from the check # will be stored in the variable named by _result. function(WEBKIT_CHECK_COMPILER_FLAGS _compiler _result) string(TOUPPER "${_compiler}" _compiler) set(${_result} FALSE PARENT_SCOPE) foreach (_flag IN LISTS ARGN) # If an equals (=) character is present in a variable name, it will # not be cached correctly, and the check will be retried ad nauseam. string(REPLACE "=" "__" _cachevar "${_compiler}_COMPILER_SUPPORTS_${_flag}") if (${_compiler} STREQUAL CXX) check_cxx_compiler_flag("${_flag}" "${_cachevar}") elseif (${_compiler} STREQUAL C) check_c_compiler_flag("${_flag}" "${_cachevar}") else () set(${_cachevar} FALSE CACHE INTERNAL "" FORCE) message(WARNING "WEBKIT_CHECK_COMPILER_FLAGS: unknown compiler '${_compiler}'") return() endif () if (NOT ${_cachevar}) return() endif () endforeach () set(${_result} TRUE PARENT_SCOPE) endfunction() # Appends flags to COMPILE_OPTIONS of _subject if supported by the C # or CXX _compiler. The _subject argument depends on its _kind, it may be # a target name (with TARGET as _kind), or a path (with SOURCE or DIRECTORY # as _kind). function(WEBKIT_ADD_COMPILER_FLAGS _compiler _kind _subject) foreach (_flag IN LISTS ARGN) WEBKIT_CHECK_COMPILER_FLAGS(${_compiler} flag_supported "${_flag}") if (flag_supported) set_property(${_kind} ${_subject} APPEND PROPERTY COMPILE_OPTIONS "${_flag}") endif () endforeach () endfunction() # Appends flags to COMPILE_FLAGS of _target if supported by the C compiler. # Note that it is simply not possible to pass different C and C++ flags, unless # we drop support for the Visual Studio backend and use the COMPILE_LANGUAGE # generator expression. This is a very serious limitation. macro(WEBKIT_ADD_TARGET_C_FLAGS _target) WEBKIT_ADD_COMPILER_FLAGS(C TARGET ${_target} ${ARGN}) endmacro() # Appends flags to COMPILE_FLAGS of _target if supported by the C++ compiler. # Note that it is simply not possible to pass different C and C++ flags, unless # we drop support for the Visual Studio backend and use the COMPILE_LANGUAGE # generator expression. This is a very serious limitation. macro(WEBKIT_ADD_TARGET_CXX_FLAGS _target) WEBKIT_ADD_COMPILER_FLAGS(CXX TARGET ${_target} ${ARGN}) endmacro() ================================================ FILE: ports/angle/cmake-buildsystem/cmake/WebKitMacros-minimal.cmake ================================================ # VCPKG NOTE: A minimal version of WebKit's https://github.com/WebKit/WebKit/blob/0742522b24152262b04913242cb0b3c48de92ba0/Source/cmake/WebKitMacros.cmake # To support the adapted ANGLE CMake buildsystem # This file is for macros that are used by multiple projects. If your macro is # exclusively needed in only one subdirectory of Source (e.g. only needed by # WebCore), then put it there instead. macro(WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS) set(_file ${CMAKE_CURRENT_SOURCE_DIR}/Platform${PORT}.cmake) if (EXISTS ${_file}) message(STATUS "Using platform-specific CMakeLists: ${_file}") include(${_file}) else () message(STATUS "Platform-specific CMakeLists not found: ${_file}") endif () endmacro() function(WEBKIT_COPY_FILES target_name) set(options FLATTENED) set(oneValueArgs DESTINATION) set(multiValueArgs FILES) cmake_parse_arguments(opt "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(files ${opt_FILES}) set(dst_files) foreach (file IN LISTS files) if (IS_ABSOLUTE ${file}) set(src_file ${file}) else () set(src_file ${CMAKE_CURRENT_SOURCE_DIR}/${file}) endif () if (opt_FLATTENED) get_filename_component(filename ${file} NAME) set(dst_file ${opt_DESTINATION}/${filename}) else () get_filename_component(file_dir ${file} DIRECTORY) file(MAKE_DIRECTORY ${opt_DESTINATION}/${file_dir}) set(dst_file ${opt_DESTINATION}/${file}) endif () add_custom_command(OUTPUT ${dst_file} COMMAND ${CMAKE_COMMAND} -E copy ${src_file} ${dst_file} MAIN_DEPENDENCY ${file} VERBATIM ) list(APPEND dst_files ${dst_file}) endforeach () add_custom_target(${target_name} ALL DEPENDS ${dst_files}) endfunction() ================================================ FILE: ports/angle/cmake-buildsystem/linux.cmake ================================================ if(is_android OR is_linux OR is_chromeos) set(angle_dma_buf_sources "src/common/linux/dma_buf_utils.cpp" "src/common/linux/dma_buf_utils.h" ) endif() ================================================ FILE: ports/angle/portfile.cmake ================================================ if (VCPKG_TARGET_IS_LINUX) message(WARNING "Building with a gcc version less than 6.1 is not supported.") message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n mesa-common-dev\n\nThese can be installed on Ubuntu systems via apt-get install mesa-common-dev.") endif() if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ANGLE_CPU_BITNESS ANGLE_IS_32_BIT_CPU) elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ANGLE_CPU_BITNESS ANGLE_IS_64_BIT_CPU) elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(ANGLE_CPU_BITNESS ANGLE_IS_32_BIT_CPU) elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ANGLE_CPU_BITNESS ANGLE_IS_64_BIT_CPU) else() message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() set(ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW "OFF") if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) set(ANGLE_BUILDSYSTEM_PORT "Win") if (NOT VCPKG_TARGET_IS_MINGW) set(ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW "ON") endif() elseif (VCPKG_TARGET_IS_OSX) set(ANGLE_BUILDSYSTEM_PORT "Mac") elseif (VCPKG_TARGET_IS_LINUX) set(ANGLE_BUILDSYSTEM_PORT "Linux") else() # default other platforms to "Linux" config set(ANGLE_BUILDSYSTEM_PORT "Linux") endif() set(USE_METAL OFF) if ("metal" IN_LIST FEATURES) set(USE_METAL ON) endif() # chromium/7258 set(ANGLE_COMMIT d9fc4a372074b1079c193c422fc4a180e79b6636) set(ANGLE_VERSION 7258) set(ANGLE_SHA512 483f29b6eaac5c657a3aeb238e5da48b9dd92aaa0b5eb3b4f95ebd771360cea84249ef6870dac9e1fc3b6f6c8686fa46a7a45a89a912f9b4fc258575065a28c7) set(ANGLE_THIRDPARTY_ZLIB_COMMIT 4028ebf8710ee39d2286cb0f847f9b95c59f84d8) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/angle REF ${ANGLE_COMMIT} SHA512 ${ANGLE_SHA512} # On update check headers against opengl-registry PATCHES 001-fix-builder-error.patch ) # Generate angle_commit.h set(ANGLE_COMMIT_HASH_SIZE 12) string(SUBSTRING "${ANGLE_COMMIT}" 0 ${ANGLE_COMMIT_HASH_SIZE} ANGLE_COMMIT_HASH) set(ANGLE_COMMIT_DATE "invalid-date") set(ANGLE_REVISION "${ANGLE_VERSION}") configure_file("${CMAKE_CURRENT_LIST_DIR}/angle_commit.h.in" "${SOURCE_PATH}/angle_commit.h" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/angle_commit.h.in" "${SOURCE_PATH}/src/common/angle_commit.h" @ONLY) # Generate ANGLEShaderProgramVersion.h.in # FIXME: ANGLE's build system hashes the renderer files to determine the program version hash. # For now, we'll just use the ANGLE commit hash. # See: https://github.com/google/angle/commit/82826be01fcc4d02a637312f4df3ba97e74f7226#diff-81195814d06b98e6258a63901769078f42c522448b2847a33bd51e24ac9faef6 set(ANGLE_PROGRAM_VERSION_HASH_SIZE 12) string(SUBSTRING "${ANGLE_COMMIT}" 0 ${ANGLE_PROGRAM_VERSION_HASH_SIZE} ANGLE_PROGRAM_VERSION) configure_file("${CMAKE_CURRENT_LIST_DIR}/ANGLEShaderProgramVersion.h.in" "${SOURCE_PATH}/ANGLEShaderProgramVersion.h" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/ANGLEShaderProgramVersion.h.in" "${SOURCE_PATH}/src/common/ANGLEShaderProgramVersion.h" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-angle-config.cmake" DESTINATION "${SOURCE_PATH}") set(ANGLE_WEBKIT_BUILDSYSTEM_COMMIT "0742522b24152262b04913242cb0b3c48de92ba0") # Download WebKit gni-to-cmake.py conversion script vcpkg_download_distfile(GNI_TO_CMAKE_PY URLS "https://github.com/WebKit/WebKit/raw/${ANGLE_WEBKIT_BUILDSYSTEM_COMMIT}/Source/ThirdParty/ANGLE/gni-to-cmake.py" FILENAME "gni-to-cmake.py" SHA512 cf9dab1b59cd44b9ce05a2dc4636115e770dfe7d5cfbd90c3fef659628ac8155c57b866480f7cfe9a0afeb31ff5ce5eed74473f386120a7fc5910e8b032bd61d ) # Generate CMake files from GN / GNI files x_vcpkg_get_python_packages(PYTHON_VERSION "3" OUT_PYTHON_VAR "PYTHON3" PACKAGES ply) set(_root_gni_files_to_convert "compiler.gni Compiler.cmake" "libGLESv2.gni GLESv2.cmake" ) set(_renderer_gn_files_to_convert "libANGLE/renderer/d3d/BUILD.gn D3D.cmake" "libANGLE/renderer/gl/BUILD.gn GL.cmake" "libANGLE/renderer/metal/BUILD.gn Metal.cmake" ) foreach(_root_gni_file IN LISTS _root_gni_files_to_convert) separate_arguments(_file_values UNIX_COMMAND "${_root_gni_file}") list(GET _file_values 0 _src_gn_file) list(GET _file_values 1 _dst_file) vcpkg_execute_required_process( COMMAND "${PYTHON3}" "${GNI_TO_CMAKE_PY}" "src/${_src_gn_file}" "${_dst_file}" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "gni-to-cmake-${_dst_file}-${TARGET_TRIPLET}" ) endforeach() foreach(_renderer_gn_file IN LISTS _renderer_gn_files_to_convert) separate_arguments(_file_values UNIX_COMMAND "${_renderer_gn_file}") list(GET _file_values 0 _src_gn_file) list(GET _file_values 1 _dst_file) get_filename_component(_src_dir "${_src_gn_file}" DIRECTORY) vcpkg_execute_required_process( COMMAND "${PYTHON3}" "${GNI_TO_CMAKE_PY}" "src/${_src_gn_file}" "${_dst_file}" --prepend "src/${_src_dir}/" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "gni-to-cmake-${_dst_file}-${TARGET_TRIPLET}" ) endforeach() # Fetch additional CMake files from WebKit ANGLE buildsystem vcpkg_download_distfile(WK_ANGLE_INCLUDE_CMAKELISTS URLS "https://github.com/WebKit/WebKit/raw/${ANGLE_WEBKIT_BUILDSYSTEM_COMMIT}/Source/ThirdParty/ANGLE/include/CMakeLists.txt" FILENAME "include_CMakeLists.txt" SHA512 a7ddf3c6df7565e232f87ec651cc4fd84240b8866609e23e3e6e41d22532fd34c70e0f3b06120fd3d6d930ca29c1d0d470d4c8cb7003a66f8c1a840a42f32949 ) configure_file("${WK_ANGLE_INCLUDE_CMAKELISTS}" "${SOURCE_PATH}/include/CMakeLists.txt" COPYONLY) # Copy additional custom CMake buildsystem into appropriate folders file(GLOB MAIN_BUILDSYSTEM "${CMAKE_CURRENT_LIST_DIR}/cmake-buildsystem/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/cmake-buildsystem/*.cmake") file(COPY ${MAIN_BUILDSYSTEM} DESTINATION "${SOURCE_PATH}") file(GLOB MODULES "${CMAKE_CURRENT_LIST_DIR}/cmake-buildsystem/cmake/*.cmake") file(COPY ${MODULES} DESTINATION "${SOURCE_PATH}/cmake") function(checkout_in_path PATH URL REF) vcpkg_from_git( OUT_SOURCE_PATH DEP_SOURCE_PATH URL "${URL}" REF "${REF}" ) if (CMAKE_HOST_WIN32) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${PATH}") else() file(RENAME "${DEP_SOURCE_PATH}" "${PATH}") endif() file(REMOVE_RECURSE "${DEP_SOURCE_PATH}") endfunction() checkout_in_path( "${SOURCE_PATH}/third_party/zlib" "https://chromium.googlesource.com/chromium/src/third_party/zlib" "${ANGLE_THIRDPARTY_ZLIB_COMMIT}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1 OPTIONS "-D${ANGLE_CPU_BITNESS}=1" "-DPORT=${ANGLE_BUILDSYSTEM_PORT}" "-DANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW=${ANGLE_USE_D3D11_COMPOSITOR_NATIVE_WINDOW}" "-DVCPKG_TARGET_IS_WINDOWS=${VCPKG_TARGET_IS_WINDOWS}" "-DUSE_METAL=${USE_METAL}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/unofficial-angle PACKAGE_NAME unofficial-angle) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Remove empty directories inside include directory file(GLOB directory_children RELATIVE "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include/*") foreach(directory_child ${directory_children}) if(IS_DIRECTORY "${CURRENT_PACKAGES_DIR}/include/${directory_child}") file(GLOB_RECURSE subdirectory_children "${CURRENT_PACKAGES_DIR}/include/${directory_child}/*") if("${subdirectory_children}" STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${directory_child}") endif() endif() endforeach() unset(subdirectory_children) unset(directory_child) unset(directory_children) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/angle/unofficial-angle-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(ZLIB) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-angle-targets.cmake") ================================================ FILE: ports/angle/usage ================================================ The package angle provides unofficial CMake targets: find_package(unofficial-angle REQUIRED CONFIG) target_link_libraries(main PRIVATE unofficial::angle::libGLESv2) # Or use the EGL target find_package(unofficial-angle REQUIRED CONFIG) target_link_libraries(main PRIVATE unofficial::angle::libEGL) ================================================ FILE: ports/angle/vcpkg.json ================================================ { "name": "angle", "version-string": "chromium_7258", "port-version": 2, "description": [ "A conformant OpenGL ES implementation for Windows, Mac and Linux.", "The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support." ], "homepage": "https://github.com/google/angle", "license": "BSD-3-Clause", "dependencies": [ "egl-registry", "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, "zlib" ], "features": { "metal": { "description": "Metal support for angle", "supports": "osx | ios" } } } ================================================ FILE: ports/ankurvdev-embedresource/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ankurvdev/embedresource REF "v${VERSION}" SHA512 0a26a0b554e743b4f4987c4414cfcca6d2207e8ac038a1701cdb5068ddc6cc9438deda8037ce93145c4f1434ae97d7737bbc875d7367aa14726fd16511e8421a HEAD_REF main) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") if(HOST_TRIPLET STREQUAL TARGET_TRIPLET) # Otherwise fails on wasm32-emscripten vcpkg_copy_tools(TOOL_NAMES embedresource AUTO_CLEAN) else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") endif() file(READ "${CURRENT_PACKAGES_DIR}/share/embedresource/EmbedResourceConfig.cmake" config_contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/embedresource/EmbedResourceConfig.cmake" "find_program( embedresource_EXECUTABLE embedresource PATHS \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}/tools/${PORT}\" NO_DEFAULT_PATH REQUIRED) ${config_contents}" ) ================================================ FILE: ports/ankurvdev-embedresource/vcpkg.json ================================================ { "name": "ankurvdev-embedresource", "version": "0.0.12", "description": "Cross Platform Resource Embedding", "homepage": "https://github.com/ankurvdev/embedresource", "license": "BSD-3-Clause", "dependencies": [ { "name": "ankurvdev-embedresource", "host": true }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/annoy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO spotify/annoy REF "v${VERSION}" SHA512 a8ec84440019a29dc2939b193ca1f894aad6bc95d2814a7f0296fbd5faf7bdb69072514db496a445993b20182133a8e4e6e774c75f17d3057d146e98bdde28ce HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/annoy) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/annoy/vcpkg.json ================================================ { "name": "annoy", "version": "1.17.3", "description": "Approximate Nearest Neighbors optimized for memory usage and loading/saving to disk", "homepage": "https://github.com/spotify/annoy", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/antlr4/add-include-chrono.patch ================================================ diff --git a/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp b/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp index 9fd86d6..5220492 100644 --- a/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp +++ b/runtime/Cpp/runtime/src/atn/ProfilingATNSimulator.cpp @@ -10,6 +10,7 @@ #include "support/CPPUtils.h" #include "atn/ProfilingATNSimulator.h" +#include using namespace antlr4; using namespace antlr4::atn; ================================================ FILE: ports/antlr4/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO antlr/antlr4 HEAD_REF dev REF "${VERSION}" SHA512 afd8ecab637a0e70cddf98f63c918eab2b907f87207624e20e80a79f885d6502d4ab734a602b1707969d61944410828b689ec2f8b09c15314fe991024cde1613 PATCHES set-export-macro-define-as-private.patch add-include-chrono.patch # https://github.com/antlr/antlr4/pull/4738 ) set(RUNTIME_PATH "${SOURCE_PATH}/runtime/Cpp") message(INFO "Configure at '${RUNTIME_PATH}'") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${RUNTIME_PATH}" OPTIONS -DANTLR_BUILD_STATIC=${BUILD_STATIC} -DANTLR_BUILD_SHARED=${BUILD_SHARED} -DANTLR4_INSTALL=ON -DANTLR_BUILD_CPP_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME antlr4-generator CONFIG_PATH lib/cmake/antlr4-generator DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME antlr4-runtime CONFIG_PATH lib/cmake/antlr4-runtime) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/antlr4/set-export-macro-define-as-private.patch ================================================ diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt index 86fdab9..97486fb 100644 --- a/runtime/Cpp/runtime/CMakeLists.txt +++ b/runtime/Cpp/runtime/CMakeLists.txt @@ -120,7 +120,7 @@ set(static_lib_suffix "") if (WIN32) set(static_lib_suffix "-static") if (TARGET antlr4_shared) - target_compile_definitions(antlr4_shared PUBLIC ANTLR4CPP_EXPORTS) + target_compile_definitions(antlr4_shared PRIVATE ANTLR4CPP_EXPORTS) endif() if (TARGET antlr4_static) target_compile_definitions(antlr4_static PUBLIC ANTLR4CPP_STATIC) ================================================ FILE: ports/antlr4/vcpkg.json ================================================ { "name": "antlr4", "version": "4.13.2", "port-version": 1, "description": "ANother Tool for Language Recognition", "homepage": "https://www.antlr.org", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "libuuid", "platform": "!uwp & !windows & !osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/any-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/any-lite REF d45a83b8e49d09ff5e5b66c10a56c997946436d9 #v0.4.0 SHA512 b73fe2d1e6de24e143337ef72f71949bf2ae4157a58a5c7e45dd0e9412dd798da6ef929fa09d104305483e769a603b37babd7ba65ab854a33483ab3ec8a921ec ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DANY_LITE_OPT_BUILD_TESTS=OFF -DANY_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/any-lite/vcpkg.json ================================================ { "name": "any-lite", "version-semver": "0.4.0", "description": "A C++17-like any, a type-safe container for single values of any type for C++98, C++11 and later in a single-file header-only library", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/anyrpc/mingw.patch ================================================ diff --color -ur a/cmake/FindLog4cplus.cmake b/cmake/FindLog4cplus.cmake --- a/cmake/FindLog4cplus.cmake 2020-01-13 18:31:55.000000000 +0100 +++ b/cmake/FindLog4cplus.cmake 2022-07-19 19:35:41.701935383 +0200 @@ -61,12 +61,12 @@ endif () +# needed to use find_package_handle_standard_args +include(FindPackageHandleStandardArgs) + if (LOG4CPLUS_INCLUDE_DIR) # set the correct variable name for the header directories set(LOG4CPLUS_INCLUDE_DIRS ${LOG4CPLUS_INCLUDE_DIR}) - - # needed to use find_package_handle_standard_args - include(FindPackageHandleStandardArgs) if (LOG4CPLUS_LIBRARY_RELEASE AND LOG4CPLUS_LIBRARY_DEBUG) # set the libaries varible to use the release and debug versions diff --color -ur a/cmake/FindMsgpack.cmake b/cmake/FindMsgpack.cmake --- a/cmake/FindMsgpack.cmake 2020-01-13 18:31:55.000000000 +0100 +++ b/cmake/FindMsgpack.cmake 2022-07-19 19:35:41.702935385 +0200 @@ -61,13 +61,13 @@ endif () +# needed to use find_package_handle_standard_args +include(FindPackageHandleStandardArgs) + if (MSGPACK_INCLUDE_DIR) # set the correct variable name for the header directories set(MSGPACK_INCLUDE_DIRS ${MSGPACK_INCLUDE_DIR}) - # needed to use find_package_handle_standard_args - include(FindPackageHandleStandardArgs) - if (MSGPACK_LIBRARY_RELEASE AND MSGPACK_LIBRARY_DEBUG) # set the libaries varible to use the release and debug versions find_package_handle_standard_args(MSGPACK DEFAULT_MSG MSGPACK_INCLUDE_DIR MSGPACK_LIBRARY_RELEASE MSGPACK_LIBRARY_DEBUG) diff --color -ur a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2020-01-13 18:31:55.000000000 +0100 +++ b/CMakeLists.txt 2022-07-19 19:36:01.112980511 +0200 @@ -63,6 +63,7 @@ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc" ) elseif (MINGW) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U__STRICT_ANSI__" ) + add_definitions( -D _POSIX_THREAD_SAFE_FUNCTIONS ) elseif (BUILD_WITH_ADDRESS_SANITIZE) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer" ) SET( ASAN_LIBRARY asan ) diff --color -ur a/example/CMakeLists.txt b/example/CMakeLists.txt --- a/example/CMakeLists.txt 2020-01-13 18:31:55.000000000 +0100 +++ b/example/CMakeLists.txt 2022-07-19 19:35:41.696935371 +0200 @@ -48,5 +48,13 @@ # Add the necessary external library references target_link_libraries( ${SOURCEFILE} anyrpc ${ASAN_LIBRARY} ${LOG4CPLUS_LIBRARIES} ${MSGPACK_LIBRARIES}) + + if (WIN32) + target_compile_definitions(${SOURCEFILE} + PRIVATE + WINVER=0x0A00 + _WIN32_WINNT=0x0A00 + ) + endif () endforeach () diff --color -ur a/include/anyrpc/connection.h b/include/anyrpc/connection.h --- a/include/anyrpc/connection.h 2020-01-13 18:31:55.000000000 +0100 +++ b/include/anyrpc/connection.h 2022-07-19 19:35:41.698935376 +0200 @@ -22,11 +22,7 @@ #define ANYRPC_CONNECTION_H_ #if defined(ANYRPC_THREADING) -# if defined(__MINGW32__) -# include "internal/mingw.thread.h" -# else -# include -# endif // defined(__MINGW32__) +# include #endif // defined(ANYRPC_THREADING) #if defined(ANYRPC_REGEX) diff --color -ur a/include/anyrpc/internal/time.h b/include/anyrpc/internal/time.h --- a/include/anyrpc/internal/time.h 2020-01-13 18:31:55.000000000 +0100 +++ b/include/anyrpc/internal/time.h 2022-07-19 19:35:41.698935376 +0200 @@ -32,10 +32,6 @@ int gettimeofday(struct timeval * tp, struct timezone * tzp); #endif -#if defined(__MINGW32__) -struct tm* localtime_r(const time_t *timep, struct tm *result); -#endif - //! Compute the difference between the two times in milliseconds ANYRPC_API int MilliTimeDiff(struct timeval &time1, struct timeval &time2); diff --color -ur a/include/anyrpc/server.h b/include/anyrpc/server.h --- a/include/anyrpc/server.h 2020-01-13 18:31:55.000000000 +0100 +++ b/include/anyrpc/server.h 2022-07-19 19:35:41.699935378 +0200 @@ -22,24 +22,9 @@ #define ANYRPC_SERVER_H_ #if defined(ANYRPC_THREADING) -# if defined(__MINGW32__) -// These constants are not defined for mingw but are needed in the following libraries -# ifndef EOWNERDEAD -# define EOWNERDEAD 133 /* File too big */ -# endif -# ifndef EPROTO -# define EPROTO 134 /* Protocol error */ -# endif - -# include "internal/mingw.thread.h" -# include -# include "internal/mingw.mutex.h" -# include "internal/mingw.condition_variable.h" -# else -# include -# include -# include -# endif //defined(__MINGW32__) +# include +# include +# include #endif //defined(ANYRPC_THREADING) namespace anyrpc diff --color -ur a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt 2020-01-13 18:31:55.000000000 +0100 +++ b/src/CMakeLists.txt 2022-07-19 19:35:41.697935374 +0200 @@ -57,6 +57,12 @@ # Need the winsock library for Windows if (WIN32) target_link_libraries(anyrpc ws2_32) + + target_compile_definitions(anyrpc + PRIVATE + WINVER=0x0A00 + _WIN32_WINNT=0x0A00 + ) endif () set_target_properties( anyrpc PROPERTIES VERSION ${ANYRPC_VERSION} SOVERSION ${ANYRPC_VERSION_MAJOR} ) diff --color -ur a/src/internal/time.cpp b/src/internal/time.cpp --- a/src/internal/time.cpp 2020-01-13 18:31:55.000000000 +0100 +++ b/src/internal/time.cpp 2022-07-19 19:35:41.699935378 +0200 @@ -26,11 +26,8 @@ #include #endif -#if defined(_MSC_VER) -#elif defined(__MINGW32__) -#include -#else -#include +#if !defined(_MSC_VER) +# include #endif namespace anyrpc @@ -57,16 +54,6 @@ } #endif -#if defined(__MINGW32__) -struct tm* localtime_r(const time_t *timep, struct tm *result) -{ - // with Windows localtime is threadsafe since the pointer is to thread local storage - struct tm *t=localtime(timep); - memcpy(result,t,sizeof(struct tm)); - return result; -} -#endif - int MilliTimeDiff( struct timeval &time1, struct timeval &time2 ) { return (time1.tv_sec - time2.tv_sec) * 1000 + (time1.tv_usec - time2.tv_usec)/1000; diff --color -ur a/src/socket.cpp b/src/socket.cpp --- a/src/socket.cpp 2020-01-13 18:31:55.000000000 +0100 +++ b/src/socket.cpp 2022-07-19 19:35:41.701935383 +0200 @@ -98,7 +98,7 @@ int Socket::SetKeepAliveInterval(int startTime, int interval, int probeCount) { log_debug( "SetKeepAliveInterval: startTime=" << startTime << ", interval=" << interval << ", probeCount=" << probeCount); -#if defined(_MSC_VER) +#if defined(_MSC_VER) || defined(__MINGW32__) DWORD outBytes; tcp_keepalive tcp_ka; tcp_ka.onoff = 1; @@ -109,7 +109,7 @@ if (result < 0) log_debug( "SetKeepAliveInterval: result = " << result ); return result; -#elif defined(__MINGW32__) || defined(__CYGWIN__) +#elif defined(__CYGWIN__) // don't see how this can be performed right now #elif (__APPLE__) int result = setsockopt( fd_, IPPROTO_TCP, TCP_KEEPALIVE, (char*)&startTime, sizeof(startTime) ); @@ -554,15 +554,11 @@ port = ntohs(receiveAddr.sin_port); -#if defined(__MINGW32__) - // should be thread-safe since it would use the Windows call - ipAddress = inet_ntoa(receiveAddr.sin_addr); -#else // Only need this buffer to perform the address conversion in a thread-safe call const unsigned bufferLength = 100; char addrBuffer[bufferLength]; ipAddress = inet_ntop(AF_INET,&receiveAddr.sin_addr, addrBuffer, bufferLength); -#endif + log_debug("Udp Receive: address=" << ipAddress << ", port=" << port); eof = (numBytes == 0); ================================================ FILE: ports/anyrpc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sgieseking/anyrpc REF b1949b3d40849229055ae75cf5334b9d08579502 SHA512 8c674d29e80ec2522d6c1ec959663958ab4e1bf1135727c3c2aaa19e62a81ddbbd1e6a46f3e4679ee02894ad2ab26e70ca7e1e6c8750f3289994311069221b53 HEAD_REF master FILE_DISAMBIGUATOR 1 PATCHES mingw.patch # Remove this when https://github.com/sgieseking/anyrpc/pull/46 is released ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ANYRPC_LIB_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_WITH_LOG4CPLUS=OFF -DANYRPC_LIB_BUILD_SHARED=${ANYRPC_LIB_BUILD_SHARED} ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/license" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() ================================================ FILE: ports/anyrpc/vcpkg.json ================================================ { "name": "anyrpc", "version-date": "2021-08-24", "port-version": 2, "description": "A multiprotocol remote procedure call system for C++.", "homepage": "https://github.com/sgieseking/anyrpc", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/anyxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bitfactory-software/anyxx REF "${VERSION}" SHA512 d09c9a32508afca23c95498af8c95cb98854ac677a2affd10450b2f1a944a49f5dd79c258963828cc56817e91d4e98240ca319638cf1f2ddea771e6068400db7 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Danyxx_INSTALL_ONLY=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "anyxx") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/anyxx/usage ================================================ anyxx provides CMake targets: find_package(anyxx CONFIG REQUIRED) target_link_libraries(main PRIVATE bit_factory::anyxx) ================================================ FILE: ports/anyxx/vcpkg.json ================================================ { "name": "anyxx", "version": "0.6.0", "description": "any++ / Any++ : How to trait any virtual, static or variant?", "homepage": "https://github.com/bitfactory-software/anyxx", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aom/aom-fix-nasm.diff ================================================ diff --git a/build/cmake/aom_optimization.cmake b/build/cmake/aom_optimization.cmake index 9cc34de..2750a0b 100644 --- a/build/cmake/aom_optimization.cmake +++ b/build/cmake/aom_optimization.cmake @@ -212,7 +212,7 @@ # Currently checks only for presence of required object formats and support for # the -Ox argument (multipass optimization). function(test_nasm) - execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hf + execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hO OUTPUT_VARIABLE nasm_helptext) if(NOT "${nasm_helptext}" MATCHES "-Ox") @@ -220,6 +220,8 @@ FATAL_ERROR "Unsupported nasm: multipass optimization not supported.") endif() + execute_process(COMMAND ${CMAKE_ASM_NASM_COMPILER} -hf + OUTPUT_VARIABLE nasm_helptext) if("${AOM_TARGET_CPU}" STREQUAL "x86") if("${AOM_TARGET_SYSTEM}" STREQUAL "Darwin") if(NOT "${nasm_helptext}" MATCHES "macho32") ================================================ FILE: ports/aom/aom-rename-static.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e5b623..bed61da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -314,6 +314,15 @@ if(BUILD_SHARED_LIBS) set_target_properties(aom PROPERTIES SOVERSION ${SO_VERSION}) set_target_properties(aom PROPERTIES VERSION ${SO_FILE_VERSION}) endif() + + # override conditional changes + set_target_properties(aom PROPERTIES + ARCHIVE_OUTPUT_NAME aom + ) + set_target_properties(aom_static PROPERTIES + ARCHIVE_OUTPUT_NAME aom_static + EXCLUDE_FROM_ALL 1 + ) endif() if(NOT WIN32 AND NOT APPLE) diff --git a/build/cmake/aom_install.cmake b/build/cmake/aom_install.cmake index b02c7b9..c219841 100644 --- a/build/cmake/aom_install.cmake +++ b/build/cmake/aom_install.cmake @@ -79,7 +79,7 @@ macro(setup_aom_install_targets) endif() if(BUILD_SHARED_LIBS) - set(AOM_INSTALL_LIBS aom aom_static) + set(AOM_INSTALL_LIBS aom) else() set(AOM_INSTALL_LIBS aom) endif() ================================================ FILE: ports/aom/aom-uninitialized-pointer.diff ================================================ diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake index aaef2c310..5500ad4a3 100644 --- a/build/cmake/aom_configure.cmake +++ b/build/cmake/aom_configure.cmake @@ -309,6 +309,8 @@ if(MSVC) # Disable MSVC warnings that suggest making code non-portable. add_compiler_flag_if_supported("/wd4996") + # Disable MSVC warnings for potentially uninitialized local pointer variable. + add_compiler_flag_if_supported("/wd4703") if(ENABLE_WERROR) add_compiler_flag_if_supported("/WX") endif() ================================================ FILE: ports/aom/portfile.cmake ================================================ vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL "https://aomedia.googlesource.com/aom" REF d772e334cc724105040382a977ebb10dfd393293 HEAD_REF main PATCHES aom-rename-static.diff aom-uninitialized-pointer.diff aom-fix-nasm.diff # TODO: remove this patch after the next release ) vcpkg_find_acquire_program(NASM) vcpkg_find_acquire_program(PERL) set(aom_target_cpu "") if(VCPKG_TARGET_IS_UWP OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")) # UWP + aom's assembler files result in weirdness and build failures # Also, disable assembly on ARM and ARM64 Windows to fix compilation issues. set(aom_target_cpu "-DAOM_TARGET_CPU=generic") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" AND VCPKG_TARGET_IS_LINUX) set(aom_target_cpu "-DENABLE_NEON=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${aom_target_cpu} -DENABLE_DOCS=OFF -DENABLE_EXAMPLES=OFF -DENABLE_TESTDATA=OFF -DENABLE_TESTS=OFF -DENABLE_TOOLS=OFF -DTHREADS_PREFER_PTHREAD_FLAG=ON "-DCMAKE_ASM_NASM_COMPILER=${NASM}" "-DPERL_EXECUTABLE=${PERL}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/AOM) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aom/vcpkg.json ================================================ { "name": "aom", "version-semver": "3.13.1", "port-version": 1, "description": "AV1 codec library", "homepage": "https://aomedia.googlesource.com/aom", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/apache-datasketches/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/datasketches/cpp/${VERSION}/apache-datasketches-cpp-${VERSION}-src.zip" FILENAME "apache-datasketches-cpp-${VERSION}-src.zip" SHA512 98ce350e63fff02ac1ab39005a808ad0ab0b308f0807464db235fe9e6cb6dd8f5081494bd0aca85eeec5216f6a6a23280b732e714da9ad6f53690dd9da9c430c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME DataSketches CONFIG_PATH lib/DataSketches/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/apache-datasketches/usage ================================================ apache-datasketches provides CMake targets: find_package(DataSketches CONFIG REQUIRED) target_link_libraries(main PRIVATE datasketches) ================================================ FILE: ports/apache-datasketches/vcpkg.json ================================================ { "name": "apache-datasketches", "version": "5.2.0", "port-version": 1, "description": "Apache DataSketches Core C++ Library Component.", "homepage": "https://datasketches.apache.org/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/approval-tests-cpp/portfile.cmake ================================================ vcpkg_download_distfile(single_header URLS "https://github.com/approvals/ApprovalTests.cpp/releases/download/v.${VERSION}/ApprovalTests.v.${VERSION}.hpp" FILENAME "ApprovalTests.v.${VERSION}.hpp" SHA512 06887b2a7d9c9a18b052065e5a43bb02aeadb31095f655bf65c17f39271c5ede881afa521597a42820fd30d2680cfc2f2f516a9d74880b2d15bedf259c3881b6 ) vcpkg_download_distfile(license_file URLS "https://raw.githubusercontent.com/approvals/ApprovalTests.cpp/v.${VERSION}/LICENSE" FILENAME "ApprovalTestsLicense.v.${VERSION}" SHA512 dc6b68d13b8cf959644b935f1192b02c71aa7a5cf653bd43b4480fa89eec8d4d3f16a2278ec8c3b40ab1fdb233b3173a78fd83590d6f739e0c9e8ff56c282557 ) file(INSTALL "${single_header}" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME ApprovalTests.hpp) vcpkg_install_copyright(FILE_LIST "${license_file}") ================================================ FILE: ports/approval-tests-cpp/vcpkg.json ================================================ { "name": "approval-tests-cpp", "version": "10.13.0", "description": "Approval Tests allow you to verify a chunk of output (such as a file) in one operation as opposed to writing test assertions for each element.", "homepage": "https://github.com/approvals/ApprovalTests.cpp", "license": "Apache-2.0" } ================================================ FILE: ports/appstream/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ximion/appstream REF "v${VERSION}" SHA512 80f3b7b9279152ce271bab61e97a41268d5dc5d977dc9488fc187df90077ac1a81169201d3d1a7a5578d36e962321035bfe34106486c2ac3d684621b40338de6 HEAD_REF main PATCHES remove-uneeded-directories.patch ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dsystemd=false -Dapidocs=false -Dinstall-docs=false -Dstemming=false -Dsvg-support=false -Dgir=false ADDITIONAL_BINARIES gperf='${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${HOST_EXECUTABLE_SUFFIX}' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}' ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/appstream/remove-uneeded-directories.patch ================================================ diff --git a/meson.build b/meson.build index ee5b179a..a1a0b2c3 100644 --- a/meson.build +++ b/meson.build @@ -224,10 +224,7 @@ if get_option('compose') endif subdir('tools/') subdir('po/') -subdir('data/') subdir('contrib/') -subdir('docs/') -subdir('tests/') if get_option('qt') subdir('qt/') endif ================================================ FILE: ports/appstream/vcpkg.json ================================================ { "name": "appstream", "version": "1.0.6", "port-version": 1, "description": "Tools and libraries to work with AppStream metadata", "homepage": "https://www.freedesktop.org/software/appstream/docs", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "gettext", "host": true, "features": [ "tools" ] }, "glib", { "name": "glib", "host": true }, { "name": "gperf", "host": true }, { "name": "libxml2", "default-features": false }, "libxmlb", "libyaml", { "name": "vcpkg-tool-meson", "host": true }, "zstd" ] } ================================================ FILE: ports/appstream-glib/portfile.cmake ================================================ string(REPLACE "." "_" appstream_glib_version "appstream_glib_${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hughsie/appstream-glib REF "${appstream_glib_version}" SHA512 720182ef507777ca818b1e955e16b1b8691927882664c1cc42e094ad10949036991ffb9a666e2f3f104cb1ca29ed824c507e9b8e46089d54b41d30b7fed0d71c HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddep11=false -Dbuilder=true -Drpm=false -Dalpm=false -Dfonts=true -Dman=false -Dgtk-doc=false -Dintrospection=false ADDITIONAL_BINARIES "gperf = ['${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}']" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/appstream-glib/vcpkg.json ================================================ { "name": "appstream-glib", "version": "0.8.3", "description": "Provides GObjects and helper methods to make it easy to read and write AppStream metadata.", "homepage": "https://github.com/hughsie/appstream-glib/", "license": "LGPL-2.1-or-later", "supports": "!windows | mingw", "dependencies": [ "curl", "fontconfig", "freetype", "gdk-pixbuf", "glib", { "name": "gperf", "host": true }, "gtk3", "json-glib", "libarchive", { "name": "libuuid", "platform": "linux" }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/apr/0100-add-host-tools-dir.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d16eec6..92146f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,13 +87,17 @@ STRING(REGEX REPLACE ".*#define APR_PATCH_VERSION[ \t]+([0-9]+).*" "\\1" APR_PAT CONFIGURE_FILE(include/apr.hwc ${PROJECT_BINARY_DIR}/apr.h) ADD_EXECUTABLE(gen_test_char tools/gen_test_char.c) +set(UNOFFICIAL_APR_HOST_TOOLS_DIR "$" CACHE STRING "") +set(UNOFFICIAL_APR_HOST_EXECUTABLE_SUFFIX "$" CACHE STRING "") +install(TARGETS gen_test_char) + ADD_CUSTOM_COMMAND( COMMENT "Generating character tables, apr_escape_test_char.h, for current locale" DEPENDS gen_test_char - COMMAND $ > ${PROJECT_BINARY_DIR}/apr_escape_test_char.h + COMMAND "${UNOFFICIAL_APR_HOST_TOOLS_DIR}/gen_test_char${UNOFFICIAL_APR_HOST_EXECUTABLE_SUFFIX}" > ${PROJECT_BINARY_DIR}/apr_escape_test_char.h OUTPUT ${PROJECT_BINARY_DIR}/apr_escape_test_char.h ) ADD_CUSTOM_TARGET( ================================================ FILE: ports/apr/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://downloads.apache.org/apr/apr-${VERSION}.tar.bz2" FILENAME "apr-${VERSION}.tar.bz2" SHA512 629b60680d1244641828019db903a1b199e8a19c8f27a5132b93faacb381ce561f88463345ab019258f1f1e8cfdf8aa986ac815153a8e7e04a22b3932f9fedd2 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES unglue.patch 0100-add-host-tools-dir.diff ) set(CURRENT_HOST_TOOLS_DIR "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}") set(CROSSCOMPILING_OPTIONS "") if(VCPKG_CROSSCOMPILING) list(APPEND CROSSCOMPILING_OPTIONS "-DUNOFFICIAL_APR_HOST_TOOLS_DIR=${CURRENT_HOST_TOOLS_DIR}" "-DUNOFFICIAL_APR_HOST_EXECUTABLE_SUFFIX=${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES private-headers APR_INSTALL_PRIVATE_H ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" APR_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" APR_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAPR_BUILD_STATIC=${APR_BUILD_STATIC} -DAPR_BUILD_SHARED=${APR_BUILD_SHARED} -DAPR_BUILD_TESTAPR=OFF -DINSTALL_PDB=OFF -DMIN_WINDOWS_VER=Windows7 -DAPR_HAVE_IPV6=ON ${FEATURE_OPTIONS} ${CROSSCOMPILING_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/apr") file( INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-apr-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-apr" ) # There is no way to suppress installation of the headers in debug builds. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_tools(TOOL_NAMES gen_test_char AUTO_CLEAN) vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage-cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME usage) else() # To cross-compile you will need a triplet file that locates the tool chain and sets --host and --cache parameters of "./configure". # The ${VCPKG_PLATFORM_TOOLSET}.cache file must have been generated on the targeted host using "./configure -C". # For example, to target aarch64-linux-gnu, triplets/aarch64-linux-gnu.cmake should contain (beyond the standard content): # set(VCPKG_PLATFORM_TOOLSET aarch64-linux-gnu) # set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${MY_CROSS_DIR}/cmake/Toolchain-${VCPKG_PLATFORM_TOOLSET}.cmake) # set(CONFIGURE_PARAMETER_1 --host=${VCPKG_PLATFORM_TOOLSET}) # set(CONFIGURE_PARAMETER_2 --cache-file=${MY_CROSS_DIR}/autoconf/${VCPKG_PLATFORM_TOOLSET}.cache) if(CONFIGURE_PARAMETER_1) message(STATUS "Configuring apr with ${CONFIGURE_PARAMETER_1} ${CONFIGURE_PARAMETER_2} ${CONFIGURE_PARAMETER_3}") else() message(STATUS "Configuring apr") endif() set(ENV{CFLAGS} "$ENV{CFLAGS} -Wno-error=implicit-function-declaration") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "--prefix=${CURRENT_INSTALLED_DIR}" "${CONFIGURE_PARAMETER_1}" "${CONFIGURE_PARAMETER_2}" "${CONFIGURE_PARAMETER_3}" ) vcpkg_make_install() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/apr-1.pc" "-lapr-\${APR_MAJOR_VERSION}" "-lapr-1" ) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/apr-1.pc" "-lapr-\${APR_MAJOR_VERSION}" "-lapr-1" ) vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread rt dl uuid crypt) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/apr-1-config" "\"${CURRENT_INSTALLED_DIR}\"" "$(realpath \"`dirname $0`/../../..\")") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/apr-1-config" "APR_SOURCE_DIR=\"${SOURCE_PATH}\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/apr-1-config" "APR_BUILD_DIR=\"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/build-1/libtool" "${CURRENT_INSTALLED_DIR}/lib" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/build-1/libtool" "${CURRENT_INSTALLED_DIR}/debug/lib" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/build-1/apr_rules.mk" "${CURRENT_INSTALLED_DIR}" "$(INCLUDE)/..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/apr-1-config" "\"${CURRENT_INSTALLED_DIR}/debug\"" "$(realpath \"`dirname $0`/../../../..\")") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/apr-1-config" "APR_SOURCE_DIR=\"${SOURCE_PATH}\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/apr-1-config" "APR_BUILD_DIR=\"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/build-1/libtool" "${CURRENT_INSTALLED_DIR}/lib" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/build-1/libtool" "${CURRENT_INSTALLED_DIR}/debug/lib" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/build-1/apr_rules.mk" "${CURRENT_INSTALLED_DIR}/debug" "$(INCLUDE)/..") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/apr/unglue.patch ================================================ diff --git a/include/apr_version.h b/include/apr_version.h index e96de3835..de3437d71 100644 --- a/include/apr_version.h +++ b/include/apr_version.h @@ -114,9 +114,9 @@ /** An alternative formatted string of APR's version */ /* macro for Win32 .rc files using numeric csv representation */ -#define APR_VERSION_STRING_CSV APR_MAJOR_VERSION ##, \ - ##APR_MINOR_VERSION ##, \ - ##APR_PATCH_VERSION +#define APR_VERSION_STRING_CSV APR_MAJOR_VERSION , \ + APR_MINOR_VERSION , \ + APR_PATCH_VERSION #ifndef APR_VERSION_ONLY ================================================ FILE: ports/apr/unofficial-apr-config.cmake ================================================ message(WARNING "find_package(unofficial-apr) is deprecated.\nUse find_package(apr) instead") include(CMakeFindDependencyMacro) find_dependency(apr CONFIG) if(TARGET apr::apr-1 AND NOT TARGET unofficial::apr::apr-1) add_library(unofficial::apr::apr-1 INTERFACE IMPORTED) target_link_libraries(unofficial::apr::apr-1 INTERFACE apr::apr-1) elseif(TARGET apr::libapr-1 AND NOT TARGET unofficial::apr::libapr-1) add_library(unofficial::apr::libapr-1 INTERFACE IMPORTED) target_link_libraries(unofficial::apr::libapr-1 INTERFACE apr::libapr-1) endif() if(TARGET apr::aprapp-1 AND NOT TARGET unofficial::apr::aprapp-1) add_library(unofficial::apr::aprapp-1 INTERFACE IMPORTED) target_link_libraries(unofficial::apr::aprapp-1 INTERFACE apr::aprapp-1) elseif(TARGET apr::libaprapp-1 AND NOT TARGET unofficial::apr::libaprapp-1) add_library(unofficial::apr::libaprapp-1 INTERFACE IMPORTED) target_link_libraries(unofficial::apr::libaprapp-1 INTERFACE apr::libaprapp-1) endif() ================================================ FILE: ports/apr/usage-cmake ================================================ APR provides CMake targets whose names will start with the 'lib' prefix in shared configurations, while static configurations will not: find_package(apr CONFIG REQUIRED) # Use the shared configuration target_link_libraries(main PRIVATE apr::apr-1 apr::libaprapp-1) # Use the static configuration target_link_libraries(main PRIVATE apr::apr-1 apr::aprapp-1) To ensure compatibility with both static and shared configurations: find_package(apr CONFIG REQUIRED) target_link_libraries(main PRIVATE $<$:apr::apr-1> $<$:apr::aprapp-1> $<$:apr::libapr-1> $<$:apr::libaprapp-1> ) ================================================ FILE: ports/apr/vcpkg.json ================================================ { "name": "apr", "version": "1.7.6", "port-version": 1, "description": "The Apache Portable Runtime (APR) is a C library that forms a system portability layer that covers many operating systems.", "homepage": "https://apr.apache.org/", "license": "Apache-2.0", "supports": "!uwp & !mingw", "dependencies": [ { "name": "apr", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake-config", "host": true, "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "!windows" } ], "features": { "private-headers": { "description": "Install non-standard files required for building Apache httpd" } } } ================================================ FILE: ports/apr-util/apr.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 69e45541..19b86129 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h") MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") ENDIF() FOREACH(onelib ${APR_LIBRARIES}) - IF(NOT EXISTS ${onelib}) + IF(${onelib} MATCHES "NOTFOUND") MESSAGE(FATAL_ERROR "APR library ${onelib} was not found.") ENDIF() ENDFOREACH() ================================================ FILE: ports/apr-util/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/apr/apr-util-${VERSION}.tar.bz2" FILENAME "apr-util-${VERSION}.tar.bz2" SHA512 8050a481eeda7532ef3751dbd8a5aa6c48354d52904a856ef9709484f4b0cc2e022661c49ddf55ec58253db22708ee0607dfa7705d9270e8fee117ae4f06a0fe ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES crypto APU_HAVE_CRYPTO crypto CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES use-vcpkg-expat.patch apr.patch unglue.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Upstream include/apu.h.in has: # ``` #elif defined(APU_DECLARE_STATIC) #define APU_DECLARE(type) type __stdcall #define APU_DECLARE_NONSTD(type) type __cdecl #define APU_DECLARE_DATA #elif defined(APU_DECLARE_EXPORT) #define APU_DECLARE(type) __declspec(dllexport) type __stdcall #define APU_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl #define APU_DECLARE_DATA __declspec(dllexport) #else #define APU_DECLARE(type) __declspec(dllimport) type __stdcall #define APU_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl #define APU_DECLARE_DATA __declspec(dllimport) #endif # ``` # When building, BUILD_SHARED_LIBS sets APU_DECLARE_STATIC to 0 and APU_DECLARE_EXPORT to 1 # Not BUILD_SHARED_LIBS sets APU_DECLARE_STATIC to 1 and APU_DECLARE_EXPORT to 0 # When consuming APU_DECLARE_EXPORT is always 0 (assumed), so we need only embed the static or not setting # into the resulting headers: if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/apu.h" "defined(APU_DECLARE_STATIC)" "0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/apu.h" "defined(APU_DECLARE_STATIC)" "1") endif() else() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) if ("crypto" IN_LIST FEATURES) set(CRYPTO_OPTIONS "--with-crypto=yes" "--with-openssl=${CURRENT_INSTALLED_DIR}") else() set(CRYPTO_OPTIONS "--with-crypto=no") endif() # To cross-compile you will need a triplet file that locates the tool chain and sets --host and --cache parameters of "./configure". # The ${VCPKG_PLATFORM_TOOLSET}.cache file must have been generated on the targeted host using "./configure -C". # For example, to target aarch64-linux-gnu, triplets/aarch64-linux-gnu.cmake should contain (beyond the standard content): # set(VCPKG_PLATFORM_TOOLSET aarch64-linux-gnu) # set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE ${MY_CROSS_DIR}/cmake/Toolchain-${VCPKG_PLATFORM_TOOLSET}.cmake) # set(CONFIGURE_PARAMETER_1 --host=${VCPKG_PLATFORM_TOOLSET}) # set(CONFIGURE_PARAMETER_2 --cache-file=${MY_CROSS_DIR}/autoconf/${VCPKG_PLATFORM_TOOLSET}.cache) if(CONFIGURE_PARAMETER_1) message(STATUS "Configuring apr-util with ${CONFIGURE_PARAMETER_1} ${CONFIGURE_PARAMETER_2} ${CONFIGURE_PARAMETER_3}") else() message(STATUS "Configuring apr-util") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "--prefix=${CURRENT_INSTALLED_DIR}" ${CRYPTO_OPTIONS} "--with-apr=${CURRENT_INSTALLED_DIR}/tools/apr" "--with-expat=${CURRENT_INSTALLED_DIR}" "${CONFIGURE_PARAMETER_1}" "${CONFIGURE_PARAMETER_2}" "${CONFIGURE_PARAMETER_3}" ) vcpkg_install_make() vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/bin/apu-1-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/bin/apu-1-config" "${CURRENT_BUILDTREES_DIR}" "not/existing") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/debug/bin/apu-1-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/apr-util/debug/bin/apu-1-config" "${CURRENT_BUILDTREES_DIR}" "not/existing") endif() endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/apr-util/unglue.patch ================================================ diff --git a/include/apu_version.h b/include/apu_version.h index e4fb2e64e..c6addf142 100644 --- a/include/apu_version.h +++ b/include/apu_version.h @@ -98,9 +98,9 @@ /** An alternative formatted string of APR's version */ /* macro for Win32 .rc files using numeric csv representation */ -#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION ##, \ - ##APU_MINOR_VERSION ##, \ - ##APU_PATCH_VERSION +#define APU_VERSION_STRING_CSV APU_MAJOR_VERSION , \ + APU_MINOR_VERSION , \ + APU_PATCH_VERSION #ifndef APU_VERSION_ONLY ================================================ FILE: ports/apr-util/use-vcpkg-expat.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fcbfc58..7781131 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,16 +21,14 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) FIND_PACKAGE(OpenSSL) -FIND_PACKAGE(EXPAT) - OPTION(APU_HAVE_CRYPTO "Crypto support" OFF) OPTION(APU_HAVE_ODBC "Build ODBC DBD driver" ON) OPTION(APR_HAS_LDAP "LDAP support" ON) OPTION(INSTALL_PDB "Install .pdb files (if generated)" ON) OPTION(APR_BUILD_TESTAPR "Build the test suite" OFF) OPTION(TEST_STATIC_LIBS "Test programs use APR static libraries instead of shared libraries?" OFF) -SET(APR_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Directory with APR include files") -SET(APR_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libapr-1.lib" CACHE STRING "APR library to link with") +find_path(APR_INCLUDE_DIR apr.h) +find_library(APR_LIBRARIES NAMES libapr-1 apr-1) IF(NOT EXISTS "${APR_INCLUDE_DIR}/apr.h") MESSAGE(FATAL_ERROR "APR include directory ${APR_INCLUDE_DIR} is not correct.") @@ -61,13 +59,13 @@ IF(APR_HAS_LDAP) SET(apr_has_ldap_10 1) ENDIF() -IF(NOT EXPAT_FOUND) +find_package(expat) +set(XMLLIB_INCLUDE_DIR ${EXPAT_INCLUDE_DIRS}) +set(XMLLIB_LIBRARIES ${EXPAT_LIBRARIES}) +IF(NOT XMLLIB_LIBRARIES) MESSAGE(FATAL_ERROR "Expat is required, and it wasn't found!") ENDIF() -SET(XMLLIB_INCLUDE_DIR ${EXPAT_INCLUDE_DIRS}) -SET(XMLLIB_LIBRARIES ${EXPAT_LIBRARIES}) - SET(LDAP_LIBRARIES) IF(APR_HAS_LDAP) SET(LDAP_LIBRARIES wldap32) @@ -229,17 +227,21 @@ SET(dbd_drivers) # Note: The WINNT definition on some targets is used only by libaprutil.rc. # libaprutil-1 is shared, aprutil-1 is static +if(BUILD_SHARED_LIBS) ADD_LIBRARY(libaprutil-1 SHARED ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED} libaprutil.rc) SET(install_targets ${install_targets} libaprutil-1) SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/libaprutil-1.pdb) TARGET_LINK_LIBRARIES(libaprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) SET_TARGET_PROPERTIES(libaprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_EXPORT;APR_DECLARE_IMPORT;XML_STATIC;WINNT") +else(BUILD_SHARED_LIBS) ADD_LIBRARY(aprutil-1 STATIC ${APR_SOURCES} ${APR_PUBLIC_HEADERS_GENERATED}) SET(install_targets ${install_targets} aprutil-1) TARGET_LINK_LIBRARIES(aprutil-1 ${APR_LIBRARIES} ${XMLLIB_LIBRARIES}) SET_TARGET_PROPERTIES(aprutil-1 PROPERTIES COMPILE_DEFINITIONS "APU_DECLARE_STATIC;APR_DECLARE_STATIC;APU_DSO_MODULE_BUILD;XML_STATIC") +endif() +if(BUILD_SHARED_LIBS) IF(APU_HAVE_CRYPTO) IF(NOT OPENSSL_FOUND) MESSAGE(FATAL_ERROR "Only OpenSSL-based crypto is currently implemented in the cmake build") @@ -265,7 +267,7 @@ IF(APU_HAVE_ODBC) ENDIF() IF(APR_HAS_LDAP) - ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c + ADD_LIBRARY(apr_ldap-1 SHARED ldap/apr_ldap_init.c ldap/apr_ldap_option.c ldap/apr_ldap_rebind.c libaprutil.rc) SET(install_targets ${install_targets} apr_ldap-1) SET(install_bin_pdb ${install_bin_pdb} ${PROJECT_BINARY_DIR}/apr_ldap-1.pdb) @@ -276,6 +278,7 @@ IF(APR_HAS_LDAP) ELSE() SET(apr_ldap_libraries) ENDIF() +endif() IF(APR_BUILD_TESTAPR) ENABLE_TESTING() @@ -283,13 +286,13 @@ IF(APR_BUILD_TESTAPR) ADD_CUSTOM_TARGET(check COMMAND ${CMAKE_CTEST_COMMAND} --verbose) # copy data files to build directory so that we can run programs from there - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/data) - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/test/data/billion-laughs.xml ${PROJECT_BINARY_DIR}/data/billion-laughs.xml) - IF(TEST_STATIC_LIBS) + IF(NOT BUILD_SHARED_LIBS) SET(whichapr aprutil-1) SET(apiflag "-DAPR_DECLARE_STATIC -DAPU_DECLARE_STATIC") ELSE() @@ -325,13 +328,9 @@ INSTALL(TARGETS ${install_targets} ARCHIVE DESTINATION lib ) -IF(INSTALL_PDB) - INSTALL(FILES ${install_bin_pdb} - DESTINATION bin - CONFIGURATIONS RelWithDebInfo Debug) -ENDIF() - -INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include) +if(NOT DISABLE_INSTALL_HEADERS) + INSTALL(FILES ${APR_PUBLIC_HEADERS_STATIC} ${APR_PUBLIC_HEADERS_GENERATED} DESTINATION include) +endif() STRING(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype) MESSAGE(STATUS "") ================================================ FILE: ports/apr-util/vcpkg.json ================================================ { "name": "apr-util", "version": "1.6.3", "description": "Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementation", "homepage": "https://apr.apache.org/", "license": "Apache-2.0", "dependencies": [ "apr", "expat", { "name": "vcpkg-cmake", "host": true, "platform": "windows" } ], "features": { "crypto": { "description": "Crypto support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/apriltag/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AprilRobotics/apriltag REF v${VERSION} SHA512 f39bcac7b65e09b483f6d8579cdc89ac0162691b5b412454f975f56703b2caa1d005805360a5c8fb1433db83a3ae6a0f7cb1cad9ce5a0373787b79b9f32f983d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PYTHON_WRAPPER=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/${PORT}/cmake) vcpkg_fixup_pkgconfig() if (VCPKG_TARGET_IS_WINDOWS) file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}Config.cmake" FIXED_CONFIG) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}Config.cmake" " include(CMakeFindDependencyMacro) find_dependency(PThreads4W) ${FIXED_CONFIG} ") endif() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/apriltag" "${CURRENT_PACKAGES_DIR}/lib/apriltag") ================================================ FILE: ports/apriltag/usage ================================================ apriltag provides CMake targets: find_package(apriltag REQUIRED) target_link_libraries(main PRIVATE apriltag::apriltag) ================================================ FILE: ports/apriltag/vcpkg.json ================================================ { "name": "apriltag", "version": "3.4.5", "description": "AprilTag is a visual fiducial system popular for robotics research.", "homepage": "https://april.eecs.umich.edu/software/apriltag", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ "pthreads", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/apsi/fix-c2398.patch ================================================ diff --git a/sender/apsi/util/cuckoo_filter.cpp b/sender/apsi/util/cuckoo_filter.cpp index be5aead..e242796 100644 --- a/sender/apsi/util/cuckoo_filter.cpp +++ b/sender/apsi/util/cuckoo_filter.cpp @@ -246,8 +246,8 @@ CuckooFilter CuckooFilter::Load(istream &in, size_t &bytes_read) bytes_read = in_data.size(); return CuckooFilter{ move(cuckoo_filter_table), - cuckoo_filter_fbs->num_items(), - cuckoo_filter_fbs->overflow()->index(), + static_cast(cuckoo_filter_fbs->num_items()), + static_cast(cuckoo_filter_fbs->overflow()->index()), cuckoo_filter_fbs->overflow()->tag(), cuckoo_filter_fbs->overflow()->used() }; } ================================================ FILE: ports/apsi/fix-find-seal.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 78d54a6..4d3f338 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ set(APSI_INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/APSI-${APSI_VERSION_MA # find_package might throw a FATAL_ERROR before"xxx: not found", e.g. with vcpkg.cmake. # Microsoft SEAL -find_package(SEAL 4.1 QUIET REQUIRED) +find_package(SEAL QUIET REQUIRED) if(NOT SEAL_FOUND) message(FATAL_ERROR "Microsoft SEAL: not found") else() ================================================ FILE: ports/apsi/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/APSI REF "v${VERSION}" SHA512 ad49e169970921175728705c6f5fe8062e74900a601ea25e9f836840a221175bfbb3169717787b1ca7e2e1a0b26630690dcef9bc91c0123877b856ea927e9e68 HEAD_REF main PATCHES fix-find-seal.patch fix-c2398.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES log4cplus APSI_USE_LOG4CPLUS zeromq APSI_USE_ZMQ ) set(CROSSCOMP_OPTIONS "") if (VCPKG_CROSSCOMPILING) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CROSSCOMP_OPTIONS -DAPSI_FOURQ_ARM64_EXITCODE=0 -DAPSI_FOURQ_ARM64_EXITCODE__TRYRUN_OUTPUT='') endif() if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CROSSCOMP_OPTIONS -DAPSI_FOURQ_AMD64_EXITCODE=0 -DHAVE_AVX_EXTENSIONS_EXITCODE=0 -DHAVE_AVX2_EXTENSIONS_EXITCODE=1) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON -DAPSI_BUILD_TESTS=OFF -DAPSI_BUILD_CLI=OFF ${FEATURE_OPTIONS} ${CROSSCOMP_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/APSI-0.11") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/apsi/vcpkg.json ================================================ { "name": "apsi", "version-semver": "0.11.0", "description": "APSI is a research library for asymmetric private set intersection.", "homepage": "https://github.com/microsoft/APSI", "license": "MIT", "dependencies": [ "flatbuffers", "jsoncpp", "kuku", { "name": "seal", "default-features": false, "features": [ "ms-gsl", "no-throw-tran", "zstd" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "log4cplus", "zeromq" ], "features": { "hexl": { "description": "Use Intel® HEXL to accelerate Microsoft SEAL.", "dependencies": [ { "name": "seal", "features": [ "hexl" ], "platform": "x64" } ] }, "log4cplus": { "description": "Use log4cplus for logging.", "dependencies": [ "log4cplus" ] }, "zeromq": { "description": "Use ZeroMQ for networking.", "dependencies": [ "cppzmq", "zeromq" ] } } } ================================================ FILE: ports/aravis/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AravisProject/aravis REF "${VERSION}" SHA512 c00feefb89757ad56cf6781ff347cc2e11d9d17c54e7053916e41a15656e9ebaf24c9f62f521fce760e0e97b2dba3002a270555d6c084461f968f9572a53bb58 HEAD_REF main ) set(OPTIONS "") set(OPTIONS_RELEASE "") if("usb" IN_LIST FEATURES) list(APPEND OPTIONS -Dusb=enabled) else() list(APPEND OPTIONS -Dusb=disabled) endif() if("packet-socket" IN_LIST FEATURES) list(APPEND OPTIONS -Dpacket-socket=enabled) else() list(APPEND OPTIONS -Dpacket-socket=disabled) endif() if("fast-heartbeat" IN_LIST FEATURES) list(APPEND OPTIONS -Dfast-heartbeat=true) else() list(APPEND OPTIONS -Dfast-heartbeat=false) endif() if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Dviewer=disabled -Dgst-plugin=disabled OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}'" "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_copy_tools( AUTO_CLEAN TOOL_NAMES arv-camera-test-0.8 arv-fake-gv-camera-0.8 arv-test-0.8 arv-tool-0.8 ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/aravis/vcpkg.json ================================================ { "name": "aravis", "version": "0.8.35", "description": " A vision library for genicam based cameras.", "homepage": "https://github.com/AravisProject/aravis", "license": "LGPL-2.0-or-later", "dependencies": [ "glib", { "name": "glib", "host": true }, "libxml2", { "name": "vcpkg-tool-meson", "host": true }, "zlib" ], "default-features": [ "usb" ], "features": { "fast-heartbeat": { "description": "Enable faster heartbeat rate" }, "introspection": { "description": "Build introspection data", "supports": "!static", "dependencies": [ "gobject-introspection" ] }, "packet-socket": { "description": "Enable packet socket support" }, "usb": { "description": "Enable USB support", "dependencies": [ "libusb" ] } } } ================================================ FILE: ports/arcticdb-sparrow/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("Warning: `sparrow` requires Clang18+ or GCC 11.2+ on Linux") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO man-group/sparrow REF "${VERSION}" SHA512 59af83f7cf494a10e4ac22c4322e9a767e974c22b78a241d13dfd48eb6a9464a9b471216726020d6854475bb9e17fca6be772de37825bd5bd4d1963e20fad811 HEAD_REF main ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(SPARROW_BUILD_SHARED ON) else() set(SPARROW_BUILD_SHARED OFF) endif() # Check for features if("json-reader" IN_LIST FEATURES) set(BUILD_JSON_READER ON) else() set(BUILD_JSON_READER OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSPARROW_BUILD_SHARED=${SPARROW_BUILD_SHARED} -DCREATE_JSON_READER_TARGET=${BUILD_JSON_READER} -DUSE_DATE_POLYFILL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME sparrow CONFIG_PATH share/cmake/sparrow) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/arcticdb-sparrow/vcpkg.json ================================================ { "name": "arcticdb-sparrow", "version": "2.3.0", "description": "C++20 idiomatic APIs for the Apache Arrow Columnar Format", "homepage": "https://github.com/man-group/sparrow", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "date", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "json-reader": { "description": "Generate json_reader target", "dependencies": [ "nlohmann-json" ] } } } ================================================ FILE: ports/arcticdb-sparrow-extensions/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("Warning: `sparrow-extensions` requires Clang18+ or GCC 11.2+ on Linux") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO QuantStack/sparrow-extensions REF "${VERSION}" SHA512 d7da993b2c587bc909b044c28a676220e81a32ea3dac1a3dd54532a82d91fb8a9bc49638306aae97fed259666d55ec0a5491679e9047778a812ba62ef1e8896d HEAD_REF main ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(SPARROW_EXTENSIONS_BUILD_SHARED ON) else() set(SPARROW_EXTENSIONS_BUILD_SHARED OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSPARROW_EXTENSIONS_BUILD_SHARED=${SPARROW_EXTENSIONS_BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME sparrow-extensions CONFIG_PATH share/cmake/sparrow-extensions) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/arcticdb-sparrow-extensions/vcpkg.json ================================================ { "name": "arcticdb-sparrow-extensions", "version": "1.2.0", "description": "Apache Arrow canonical extensions for Sparrow", "homepage": "https://github.com/QuantStack/sparrow-extensions", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "arcticdb-sparrow", "simdjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/arcus/0001-fix-protobuf-deprecated.patch ================================================ diff --git a/src/MessageTypeStore.cpp b/src/MessageTypeStore.cpp index 382a138..65c10e8 100644 --- a/src/MessageTypeStore.cpp +++ b/src/MessageTypeStore.cpp @@ -34,9 +34,9 @@ using namespace Arcus; * of std::hash differs between compilers, we need to make sure we use the same * implementation everywhere. */ -uint32_t hash(const std::string& input) +uint32_t hash(const absl::string_view& input) { - const char* data = input.c_str(); + const char* data = input.data(); uint32_t length = input.size(); uint32_t result = static_cast(2166136261UL); for(; length; --length) @@ -52,7 +52,7 @@ class ErrorCollector : public google::protobuf::compiler::MultiFileErrorCollecto public: ErrorCollector() : _error_count(0) { } - void AddError(const std::string& filename, int line, int column, const std::string& message) override + void RecordError(absl::string_view filename, int line, int column, absl::string_view message) override { _stream << "[" << filename << " (" << line << "," << column << ")] " << message << std::endl; _error_count++; diff --git a/src/Socket_p.h b/src/Socket_p.h index 9c3c084..9ccabda 100644 --- a/src/Socket_p.h +++ b/src/Socket_p.h @@ -548,7 +548,7 @@ namespace Arcus google::protobuf::io::ArrayInputStream array(wire_message->data, wire_message->size); google::protobuf::io::CodedInputStream stream(&array); - stream.SetTotalBytesLimit(message_size_maximum, message_size_warning); + stream.SetTotalBytesLimit(message_size_maximum); if(!message->ParseFromCodedStream(&stream)) { error(ErrorCode::ParseFailedError, "Failed to parse message:" + std::string(wire_message->data)); ================================================ FILE: ports/arcus/0002-protobuf-version.patch ================================================ diff --git a/ArcusConfig.cmake.in b/ArcusConfig.cmake.in index 3208a69..fb4a968 100644 --- a/ArcusConfig.cmake.in +++ b/ArcusConfig.cmake.in @@ -4,7 +4,7 @@ # However, if ProtobufConfig is used instead, there is a CMake option that controls # this, which defaults to OFF. We need to force this option to ON instead. set(protobuf_MODULE_COMPATIBLE ON CACHE "" INTERNAL FORCE) -find_package(Protobuf 3.0.0 REQUIRED) +find_package(Protobuf REQUIRED) get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include(${SELF_DIR}/Arcus-targets.cmake) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d736ba..66d6c13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ endif() # However, if ProtobufConfig is used instead, there is a CMake option that controls # this, which defaults to OFF. We need to force this option to ON instead. set(protobuf_MODULE_COMPATIBLE ON CACHE INTERNAL "" FORCE) -find_package(Protobuf 3.0.0 REQUIRED) +find_package(Protobuf REQUIRED) set(CMAKE_POSITION_INDEPENDENT_CODE ON) #Required if a patch to libArcus needs to be made via templates. @@ -103,9 +103,8 @@ endif() target_include_directories(Arcus PUBLIC $ $ - ${PROTOBUF_INCLUDE_DIR} ) -target_link_libraries(Arcus PUBLIC ${PROTOBUF_LIBRARIES}) +target_link_libraries(Arcus PUBLIC protobuf::libprotobuf) if(WIN32) add_definitions(-D_WIN32_WINNT=0x0600) # Declare we require Vista or higher, this allows us to use IPv6 functions. ================================================ FILE: ports/arcus/0003-cstdint.patch ================================================ diff --git a/src/PlatformSocket_p.h b/src/PlatformSocket_p.h index f2dbd1c..b0f8ca7 100644 --- a/src/PlatformSocket_p.h +++ b/src/PlatformSocket_p.h @@ -21,6 +21,7 @@ #include #include +#include namespace Arcus { diff --git a/src/Types.h b/src/Types.h index ac55c0e..50320dc 100644 --- a/src/Types.h +++ b/src/Types.h @@ -21,6 +21,7 @@ #include #include +#include namespace google { ================================================ FILE: ports/arcus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ultimaker/libArcus REF ${VERSION} SHA512 452c541360d74a8f58ab1b20df59efd36756812a9ecd09804ba16877956fb240d367bd968271a9c010496598ef0b459f62aa287553d4ba3fdb4cd2742c25553f HEAD_REF main PATCHES 0001-fix-protobuf-deprecated.patch 0002-protobuf-version.patch 0003-cstdint.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PYTHON=OFF -DBUILD_EXAMPLES=OFF -DBUILD_STATIC=${ENABLE_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME Arcus CONFIG_PATH lib/cmake/Arcus) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/arcus/vcpkg.json ================================================ { "name": "arcus", "version-semver": "4.10.0", "port-version": 5, "description": "This library contains C++ bindings for creating a socket in a thread and using this socket to send and receive messages based on the Protocol Buffers library.", "homepage": "https://github.com/Ultimaker/libArcus", "license": "LGPL-3.0-or-later", "supports": "!uwp", "dependencies": [ "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/arg-router/always-depend-on-boost.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2828e64..7b84de3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,8 @@ endif() include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/build_types/documentation.cmake") set(BOOST_VERSION 1.74) +find_package(Boost ${BOOST_VERSION} REQUIRED) + if(NOT INSTALLATION_ONLY) include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/versioning/version.cmake") include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/copyright_checker.cmake") @@ -48,8 +50,6 @@ if(NOT INSTALLATION_ONLY) include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/sanitizers.cmake") include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/ccache.cmake") - find_package(Boost ${BOOST_VERSION} REQUIRED) - find_package(span-lite QUIET) if (NOT span-lite_FOUND) message(WARNING "span-lite package not found, you will need to compile against C++20 or higher") ================================================ FILE: ports/arg-router/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cmannett85/arg_router REF v${VERSION} HEAD_REF main SHA512 0348a39c0e091b1b0d6887528f6d48372162ed2526fb81935761cf93ff006fc685bbf834d44cea60cdaf4d8b2e947b6cb1a81c901c02aaba68a0dfd16a12ca20 PATCHES always-depend-on-boost.patch # https://github.com/cmannett85/arg_router/pull/398 ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALLATION_ONLY=ON ) vcpkg_cmake_install() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_cmake_config_fixup( PACKAGE_NAME arg_router ) file(REMOVE "${CURRENT_PACKAGES_DIR}/include/arg_router/LICENSE" "${CURRENT_PACKAGES_DIR}/include/arg_router/README.md" ) ================================================ FILE: ports/arg-router/usage ================================================ The package arg-router is a header-only library and so is typically used like this: find_package(arg_router REQUIRED) target_link_libraries(my_exe PUBLIC arg_router::arg_router) For more information, see the docs here: https://github.com/cmannett85/arg_router ================================================ FILE: ports/arg-router/vcpkg.json ================================================ { "name": "arg-router", "version": "1.4.0", "port-version": 1, "description": "C++ command line argument parsing and routing.", "homepage": "https://github.com/cmannett85/arg_router", "documentation": "https://cmannett85.github.io/arg_router/", "license": "BSL-1.0", "dependencies": [ "boost-lexical-cast", "boost-mp11", "boost-preprocessor", "span-lite", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argagg/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vietjtnguyen/argagg REF "${VERSION}" SHA512 85634bff33236ffcb0aea03a6fa4b3529b6d1faa03f8e030f3c5401fc453bb5e1964f7d0644e4f3fc089ccd7751ea94c466e02b85f7c9701ce21adcc20c0b058 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARGAGG_BUILD_EXAMPLES=OFF -DARGAGG_BUILD_TESTS=OFF -DARGAGG_BUILD_DOCS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/argagg/vcpkg.json ================================================ { "name": "argagg", "version": "0.4.7", "description": "A simple C++11 command line argument parser", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argh/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO adishavit/argh REF "v${VERSION}" SHA512 66073718ef1fc31fbd0feb9daf366a2e28c759de44fb1882dc46a6d10f7a44635ae1155882dff916f55c51fad88bedebdfe361418f7669fac241feead68f2b5b HEAD_REF master ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() set(CONFIG_PATH lib/cmake/argh) if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") set(CONFIG_PATH cmake) endif() vcpkg_cmake_config_fixup(CONFIG_PATH "${CONFIG_PATH}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/argh/vcpkg.json ================================================ { "name": "argh", "version": "1.3.2", "port-version": 1, "description": "Argh! A minimalist argument handler.", "homepage": "https://github.com/adishavit/argh", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argon2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(argon2 LANGUAGES C) option(WITH_OPTIMIZATIONS "Enable SSE2/AVX2/AVX512 optimizations") option(BUILD_TOOL "Build the tool" OFF) if(BUILD_SHARED_LIBS) if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "GNU") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") endif() endif() find_package(Threads REQUIRED) set(ARGON2_HEADERS include/argon2.h ) set (ARGON2_SRC src/argon2.c src/core.c src/blake2/blake2b.c src/thread.c src/encoding.c ) if (WITH_OPTIMIZATIONS) list(APPEND ARGON2_SRC src/opt.c) else() list(APPEND ARGON2_SRC src/ref.c) endif() add_library(libargon2 ${ARGON2_SRC}) set_target_properties(libargon2 PROPERTIES OUTPUT_NAME argon2) target_include_directories(libargon2 PUBLIC $ $ PRIVATE src) target_link_libraries(libargon2 PRIVATE Threads::Threads) if(BUILD_SHARED_LIBS) if(WIN32) target_compile_definitions(libargon2 PRIVATE "BUILDING_ARGON2_DLL" INTERFACE "USING_ARGON2_DLL") else() target_compile_definitions(libargon2 PRIVATE "A2_VISCTL") endif() endif() install(TARGETS libargon2 EXPORT unofficial-argon2-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(BUILD_TOOL) add_executable(argon2 src/run.c) target_link_libraries(argon2 PRIVATE libargon2) set_target_properties(argon2 PROPERTIES PDB_NAME "argon2${CMAKE_EXECUTABLE_SUFFIX}.pdb") install(TARGETS argon2 RUNTIME DESTINATION bin) endif() install(FILES ${ARGON2_HEADERS} DESTINATION include) install(EXPORT unofficial-argon2-targets NAMESPACE unofficial::argon2:: DESTINATION "share/unofficial-argon2" ) function(make_pc_file) set(PREFIX "${CMAKE_INSTALL_PREFIX}") set(INCLUDE "include") set(HOST_MULTIARCH "lib") set(EXTRA_LIBS "") configure_file ("${CMAKE_SOURCE_DIR}/libargon2.pc.in" "${PROJECT_BINARY_DIR}/libargon2.pc" @ONLY) endfunction() make_pc_file() install (FILES "${CMAKE_CURRENT_BINARY_DIR}/libargon2.pc" DESTINATION "lib/pkgconfig") ================================================ FILE: ports/argon2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO P-H-C/phc-winner-argon2 REF 20190702 SHA512 0a4cb89e8e63399f7df069e2862ccd05308b7652bf4ab74372842f66bcc60776399e0eaf979a7b7e31436b5e6913fe5b0a6949549d8c82ebd06e0629b106e85f HEAD_REF master PATCHES visibility.patch visibility-for-tool.patch thread-header.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hwopt WITH_OPTIMIZATIONS tool BUILD_TOOL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUPSTREAM_VER=${VERSION} OPTIONS_DEBUG -DBUILD_TOOL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-argon2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-argon2") vcpkg_cmake_config_fixup(CONFIG_PATH share/unofficial-argon2 PACKAGE_NAME unofficial-argon2) # Migration path file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-libargon2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-libargon2") if(BUILD_TOOL) vcpkg_copy_tools(TOOL_NAMES argon2 AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/argon2.h" "defined(USING_ARGON2_DLL)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/argon2/thread-header.patch ================================================ diff --git a/src/thread.h b/src/thread.h index d4ca10c..43bd542 100644 --- a/src/thread.h +++ b/src/thread.h @@ -19,6 +19,7 @@ #define ARGON2_THREAD_H #if !defined(ARGON2_NO_THREADS) +#include /* Here we implement an abstraction layer for the simpĺe requirements ================================================ FILE: ports/argon2/unofficial-argon2-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(Threads) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-argon2-targets.cmake") ================================================ FILE: ports/argon2/unofficial-libargon2-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/../argon2/usage" usage) message(WARNING "find_package(unofficial-libargon2) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-argon2 CONFIG) ================================================ FILE: ports/argon2/usage ================================================ argon2 provides CMake targets: find_package(unofficial-argon2 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::argon2::libargon2) ================================================ FILE: ports/argon2/vcpkg.json ================================================ { "name": "argon2", "version": "20190702", "port-version": 1, "description": "Password-hashing library.", "homepage": "https://github.com/P-H-C/phc-winner-argon2", "license": "Apache-2.0 OR CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hwopt": { "description": "Enable SSE2/AVX2/AVX512 optimizations", "supports": "x86 | x64" }, "tool": { "description": "Install the argon2 tool" } } } ================================================ FILE: ports/argon2/visibility-for-tool.patch ================================================ diff --git a/src/core.h b/src/core.h index 78000ba..91c7bcf 100644 --- a/src/core.h +++ b/src/core.h @@ -135,7 +135,7 @@ void secure_wipe_memory(void *v, size_t n); * @param mem Pointer to the memory * @param s Memory size in bytes */ -void clear_internal_memory(void *v, size_t n); +ARGON2_PUBLIC void clear_internal_memory(void *v, size_t n); /* * Computes absolute position of reference block in the lane following a skewed ================================================ FILE: ports/argon2/visibility.patch ================================================ diff --git a/include/argon2.h b/include/argon2.h index fc8682c..1401051 100644 --- a/include/argon2.h +++ b/include/argon2.h @@ -30,7 +30,10 @@ extern "C" { #ifdef A2_VISCTL #define ARGON2_PUBLIC __attribute__((visibility("default"))) #define ARGON2_LOCAL __attribute__ ((visibility ("hidden"))) -#elif _MSC_VER +#elif defined(_WIN32) && defined(USING_ARGON2_DLL) +#define ARGON2_PUBLIC __declspec(dllimport) +#define ARGON2_LOCAL +#elif defined(_WIN32) && defined(BUILDING_ARGON2_DLL) #define ARGON2_PUBLIC __declspec(dllexport) #define ARGON2_LOCAL #else ================================================ FILE: ports/argparse/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/argparse REF "v${VERSION}" SHA512 83bebae6fd022c729bc589942a2aba7d601948a93eff3c170352885ab95a30fc7d0ff15a2f42fc935ee6c2db18f4a70ecd855a45af5f37383f77745271f01d78 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARGPARSE_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/argparse/vcpkg.json ================================================ { "name": "argparse", "version": "3.2", "description": "Argument parser for modern C++", "homepage": "https://github.com/p-ranav/argparse", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/args/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Taywee/args REF "${VERSION}" SHA512 6bf5f9e31a79400f4b077edd0aadb33a5c241c8ea5b3c7c974299cee440d01f524782cadbfbf035e53e5b2b64b34f1f1926b3c5d2ba633477701446457fbb525 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARGS_BUILD_UNITTESTS=OFF -DARGS_BUILD_EXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/args/usage ================================================ args provides CMake targets: find_package(args CONFIG REQUIRED) target_link_libraries(main PRIVATE taywee::args) ================================================ FILE: ports/args/vcpkg.json ================================================ { "name": "args", "version": "6.4.8", "description": "A simple header-only C++ argument parser library.", "homepage": "https://github.com/Taywee/args", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argtable2/0001-fix-install-dirs.patch ================================================ From 6594abbd953d0e26105fd6c982990eb702f27804 Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Tue, 22 Sep 2020 15:22:00 -0700 Subject: [PATCH 1/2] fix install dirs --- src/CMakeLists.txt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 773c4c8..03e112c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,5 +1,4 @@ -# for now, install in subdirectory of source directory by default -SET( CMAKE_INSTALL_PREFIX .. ) +include(GNUInstallDirs) IF( WIN32 ) ADD_LIBRARY( argtable2 arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) @@ -7,5 +6,9 @@ ELSE( WIN32 ) ADD_LIBRARY( argtable2 arg_date.c arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_rex.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) ENDIF( WIN32 ) -INSTALL( TARGETS argtable2 ARCHIVE DESTINATION lib) -SET_TARGET_PROPERTIES( argtable2 PROPERTIES DEBUG_POSTFIX d ) +INSTALL(TARGETS argtable2 + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) +INSTALL(FILES argtable2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -- 2.24.3 (Apple Git-128) ================================================ FILE: ports/argtable2/0002-include-correct-headers.patch ================================================ From 271423adb2900c8bf4aad5d73d7ef1efbb5c35d8 Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Tue, 22 Sep 2020 15:17:18 -0700 Subject: [PATCH 2/2] include correct headers --- src/arg_date.c | 4 +++- src/arg_int.c | 1 + src/getopt.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/arg_date.c b/src/arg_date.c index 22b59e2..5004b42 100644 --- a/src/arg_date.c +++ b/src/arg_date.c @@ -37,6 +37,8 @@ USA. #include #endif +#include + #include "argtable2.h" /* local error codes */ @@ -112,7 +114,7 @@ static void errorfn(struct arg_date *parent, FILE *fp, int errorcode, const char char buff[200]; fprintf(fp,"illegal timestamp format \"%s\"\n",argval); - bzero(&tm,sizeof(tm)); + memset(&tm, 0, sizeof(tm)); strptime("1999-12-31 23:59:59","%F %H:%M:%S",&tm); strftime(buff, sizeof(buff), parent->format, &tm); printf("correct format is \"%s\"\n", buff); diff --git a/src/arg_int.c b/src/arg_int.c index 29c20e5..bc10012 100644 --- a/src/arg_int.c +++ b/src/arg_int.c @@ -30,6 +30,7 @@ USA. #include "argtable2.h" #include +#include /* local error codes */ enum {EMINCOUNT=1,EMAXCOUNT,EBADINT,EOVERFLOW}; diff --git a/src/getopt.c b/src/getopt.c index b208529..b13acc6 100644 --- a/src/getopt.c +++ b/src/getopt.c @@ -47,6 +47,7 @@ #endif #include +#include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C -- 2.24.3 (Apple Git-128) ================================================ FILE: ports/argtable2/0003-add-dependence-getopt.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a4bd5b..7dc50f1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ endif(COMMAND cmake_policy) OPTION( HAVE_GETOPT_H "Have the getopt library" 0 ) IF( HAVE_GETOPT_H ) + find_package(unofficial-getopt-win32 REQUIRED) ADD_DEFINITIONS( -DHAVE_GETOPT_H ) ENDIF( HAVE_GETOPT_H ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 03e112c..8c58082 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,7 +1,12 @@ include(GNUInstallDirs) IF( WIN32 ) + if(HAVE_GETOPT_H) + ADD_LIBRARY( argtable2 arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_str.c argtable2.c argtable2.h) + target_link_libraries(argtable2 PRIVATE unofficial::getopt-win32::getopt) + else() ADD_LIBRARY( argtable2 arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) + endif() ELSE( WIN32 ) ADD_LIBRARY( argtable2 arg_date.c arg_dbl.c arg_end.c arg_file.c arg_int.c arg_lit.c arg_rem.c arg_rex.c arg_str.c argtable2.c argtable2.h getopt.c getopt.h getopt1.c ) ENDIF( WIN32 ) diff --git a/src/argtable2.c b/src/argtable2.c index c4d210c..1bc0a3e 100644 --- a/src/argtable2.c +++ b/src/argtable2.c @@ -46,7 +46,7 @@ USA. #endif #include "argtable2.h" -#include "./getopt.h" +//#include "./getopt.h" static void arg_register_error(struct arg_end *end, void *parent, int error, const char *argval) ================================================ FILE: ports/argtable2/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO argtable/argtable REF argtable-2.13 FILENAME "argtable2-13.tar.gz" SHA512 3d8303f3ba529e3241d918c0127a16402ece951efb964d14a06a3a7d29a252812ad3c44e96da28798871e9923e73a2cfe7ebc84139c1397817d632cae25c4585 PATCHES 0001-fix-install-dirs.patch 0002-include-correct-headers.patch 0003-add-dependence-getopt.patch undef-eoverflow.diff ) set(HAVE_GETOPT_H "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(HAVE_GETOPT_H 1) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DEBUG_POSTFIX=d -DHAVE_GETOPT_H=${HAVE_GETOPT_H} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/argtable2/undef-eoverflow.diff ================================================ diff --git a/src/arg_int.c b/src/arg_int.c index bc10012..ffcd408 100644 --- a/src/arg_int.c +++ b/src/arg_int.c @@ -33,6 +33,9 @@ USA. #include /* local error codes */ +#ifdef EOVERFLOW +#undef EOVERFLOW +#endif enum {EMINCOUNT=1,EMAXCOUNT,EBADINT,EOVERFLOW}; static void resetfn(struct arg_int *parent) ================================================ FILE: ports/argtable2/vcpkg.json ================================================ { "name": "argtable2", "version": "2.13", "port-version": 11, "description": "Argtable is an ANSI C library for parsing GNU style command line options with a minimum of fuss.", "homepage": "http://argtable.sourceforge.net", "license": "LGPL-2.0-only", "supports": "!uwp", "dependencies": [ { "name": "getopt", "platform": "windows & !mingw" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/argtable3/portfile.cmake ================================================ # We cannot use vcpkg_from_github to download the source archive because the # auto-generated GitHub archive does not include the `version.tag` file. This # file is required to generate argtable3.pc with the correct version info. # To resolve this, we prepare the source archive manually and use # vcpkg_download_distfile to download it. vcpkg_download_distfile( ARCHIVE URLS "https://github.com/argtable/argtable3/releases/download/v${VERSION}/argtable-v${VERSION}.zip" FILENAME "argtable-v${VERSION}.zip" SHA512 cdcb67f6d56ef4a02254cd210c035d2b037bd2844a3b14c261500eecd307ca9ab40c6cfa753aa32d4873773ddadc708966fb0772478e575d134399bd4743869f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARGTABLE3_ENABLE_CONAN=OFF -DARGTABLE3_ENABLE_TESTS=OFF -DARGTABLE3_ENABLE_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(CONFIG_PATH cmake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/argtable3/vcpkg.json ================================================ { "name": "argtable3", "version": "3.3.1", "description": "A single-file, ANSI C, command-line parsing library that parses GNU-style command-line options", "homepage": "https://www.argtable.org/", "license": "BSD-3-Clause AND TCL", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argumentum/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mmahnic/argumentum REF "v${VERSION}" SHA512 3efd7950de1f05d89900a3139d2cff8c4e68250d67edd4940ad0e035e037c6fd7c5bc0dc4a5c89382f8d73313d5a8d055c04cf9a8440bc38e42e50cae323a765 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARGUMENTUM_BUILD_EXAMPLES=OFF -DARGUMENTUM_BUILD_TESTS=OFF -DARGUMENTUM_BUILD_STATIC_LIBS=ON -DARGUMENTUM_INSTALL_HEADERONLY=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Argumentum) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/argumentum/vcpkg.json ================================================ { "name": "argumentum", "version": "0.3.2", "description": "A C++17 command line argument parser inspired by Python argparse", "homepage": "https://github.com/mmahnic/argumentum", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/argus/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO lucocozz/Argus REF "v${VERSION}" SHA512 36b68a3f45722bdf1aff91e20661032e01cc37d38760a44133a8302869bce2fed9aa3dcb98bb8db7a1e09d5df5cf63f444182265ced49a4cb781f8adff9cb3f5 HEAD_REF main ) set(OPTIONS "") if(NOT "regex" IN_LIST FEATURES) list(APPEND OPTIONS -Dregex=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Dbenchmarks=false -Dexamples=false -Dtests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/argus/vcpkg.json ================================================ { "name": "argus", "version": "0.2.0", "description": "Argus is a cross-platform modern feature-rich command-line argument parser for C", "homepage": "https://github.com/lucocozz/argus", "license": "MIT", "supports": "!(windows & static) & !(windows & x86)", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "regex": { "description": "Enable regex validation support using PCRE2", "dependencies": [ "pcre2" ] } } } ================================================ FILE: ports/aricpp/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO daniele77/aricpp REF v1.2.1 SHA512 7070d2a4e69e9490445002244b532e2fb519bd0642e8d1f4a6e267b9d957274db7c370038c225349c4997b1e2e5c549b0a4fa19c1db30c4ea184de37ca8b9b4b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/aricpp) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/aricpp/vcpkg.json ================================================ { "name": "aricpp", "version-semver": "1.2.1", "description": "Asterisk ARI interface bindings for modern C++", "homepage": "https://github.com/daniele77/aricpp", "license": "BSL-1.0", "dependencies": [ "boost-asio", "boost-beast", "boost-system", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/armadillo/cmake-config.patch ================================================ diff --git a/cmake_aux/InstallFiles/ArmadilloConfig.cmake.in b/cmake_aux/InstallFiles/ArmadilloConfig.cmake.in index bfe74ac..9caf2c8 100644 --- a/cmake_aux/InstallFiles/ArmadilloConfig.cmake.in +++ b/cmake_aux/InstallFiles/ArmadilloConfig.cmake.in @@ -9,7 +9,7 @@ set(ARMADILLO_INCLUDE_DIRS "@ARMADILLO_INCLUDE_DIRS@") set(ARMADILLO_LIBRARY_DIRS "@ARMADILLO_LIB_DIR@") # Our library dependencies (contains definitions for IMPORTED targets) -include("@ARMADILLO_CMAKE_DIR@/ArmadilloLibraryDepends.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/ArmadilloLibraryDepends.cmake") # These are IMPORTED targets created by ArmadilloLibraryDepends.cmake set(ARMADILLO_LIBRARIES armadillo) ================================================ FILE: ports/armadillo/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b27e3c..78d3952 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,7 +260,6 @@ message(STATUS "*** Looking for external libraries") ## Find LAPACK and BLAS libraries, or their optimised versions ## -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_aux/Modules/") if(APPLE) message(STATUS "Detected macOS") @@ -331,11 +330,16 @@ else() set(FlexiBLAS_FOUND false) endif() + if(0) include(ARMA_FindMKL) include(ARMA_FindOpenBLAS) include(ARMA_FindATLAS) # TODO: remove support for ATLAS in next major version include(ARMA_FindBLAS) include(ARMA_FindLAPACK) + else() + find_package(BLAS REQUIRED) + find_package(LAPACK REQUIRED) + endif() message(STATUS "FlexiBLAS_FOUND = ${FlexiBLAS_FOUND}" ) message(STATUS " MKL_FOUND = ${MKL_FOUND}" ) @@ -449,7 +453,6 @@ else() endif() -include(ARMA_FindARPACK) message(STATUS "ARPACK_FOUND = ${ARPACK_FOUND}") if(ARPACK_FOUND) @@ -457,7 +460,6 @@ if(ARPACK_FOUND) set(ARMA_LIBS ${ARMA_LIBS} ${ARPACK_LIBRARY}) endif() -include(ARMA_FindSuperLU5) message(STATUS "SuperLU_FOUND = ${SuperLU_FOUND}") if(SuperLU_FOUND) ================================================ FILE: ports/armadillo/pkgconfig.patch ================================================ diff --git a/misc/armadillo.pc.in b/misc/armadillo.pc.in index 27d35bb..1f079a5 100644 --- a/misc/armadillo.pc.in +++ b/misc/armadillo.pc.in @@ -7,3 +7,4 @@ URL: http://arma.sourceforge.net Version: @ARMA_VERSION_MAJOR@.@ARMA_VERSION_MINOR@.@ARMA_VERSION_PATCH@ Cflags: -I${includedir} Libs: -L${libdir} -larmadillo +Requires.private: @REQUIRES_PRIVATE@ ================================================ FILE: ports/armadillo/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO arma FILENAME "armadillo-${VERSION}.tar.xz" SHA512 E5983B109242F522561A16A4C5F095F25A8F5262E9E6A5C8AC9D7FA48B1F1B1C3A2E48D5671EB02C478B378BC1759BACE9AC061434C42E7338C0C2D21779F607 PATCHES cmake-config.patch dependencies.patch pkgconfig.patch ) set(REQUIRES_PRIVATE "") foreach(module IN ITEMS lapack blas) if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/${module}.pc") string(APPEND REQUIRES_PRIVATE " ${module}") endif() endforeach() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DALLOW_FLEXIBLAS_LINUX=OFF "-DREQUIRES_PRIVATE=${REQUIRES_PRIVATE}" -DBUILD_SMOKE_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME Armadillo CONFIG_PATH share/Armadillo/CMake) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Armadillo/ArmadilloConfig.cmake" [[include("${CMAKE_CURRENT_LIST_DIR}/ArmadilloLibraryDepends.cmake")]] "include(CMakeFindDependencyMacro)\nfind_dependency(LAPACK)\ninclude(\"\${CMAKE_CURRENT_LIST_DIR}/ArmadilloLibraryDepends.cmake\")" ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/Armadillo/CMake" ) file(GLOB SHARE_ARMADILLO_FILES "${CURRENT_PACKAGES_DIR}/share/Armadillo/*") if(SHARE_ARMADILLO_FILES STREQUAL "") # On case sensitive file system there is an extra empty directory created that should be removed file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Armadillo") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/armadillo_bits/config.hpp" "#define ARMA_AUX_LIBS " "#define ARMA_AUX_LIBS //") 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/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/armadillo/usage ================================================ armadillo provides CMake targets: find_package(Armadillo CONFIG REQUIRED) target_link_libraries(main PRIVATE armadillo) armadillo is compatible with built-in CMake variables: find_package(Armadillo REQUIRED) target_include_directories(main PRIVATE ${ARMADILLO_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${ARMADILLO_LIBRARIES}) ================================================ FILE: ports/armadillo/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0057 NEW) if("CONFIG" IN_LIST ARGS OR "NO_MODULE" IN_LIST ARGS OR NOT "${ARGS};" MATCHES "^Armadillo;") _find_package(${ARGS}) else() list(REMOVE_AT ARGS 0) list(REMOVE_ITEM ARGS "MODULE") _find_package(ARMADILLO ${ARGS} NAMES Armadillo) if(ARMADILLO_FOUND) set(ARMADILLO_VERSION_STRING "${ARMADILLO_VERSION}") file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../../include/armadillo_bits/arma_version.hpp" ARMADILLO_VERSION_NAME REGEX "#define ARMA_VERSION_NAME ") string(REGEX REPLACE ".*#define ARMA_VERSION_NAME\ +\"([0-9a-zA-Z\ _-]+)\".*" "\\1" ARMADILLO_VERSION_NAME "${ARMADILLO_VERSION_NAME}") endif() endif() cmake_policy(POP) ================================================ FILE: ports/armadillo/vcpkg.json ================================================ { "name": "armadillo", "version": "14.4.1", "port-version": 1, "description": "Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use", "homepage": "https://arma.sourceforge.net/", "license": "Apache-2.0", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/arpack-ng/portfile.cmake ================================================ include(vcpkg_find_fortran) vcpkg_find_fortran(FORTRAN_CMAKE) set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencollab/arpack-ng REF ${VERSION} SHA512 1ca590a8c4f75aa74402f9bd62e63851039687f4cb11afa8acb05fce1f22a512bff5fd1709ea85fdbea90b344fbbc01e3944c770b5ddc4d1aabc98ac334f78d2 HEAD_REF master ) if(NOT VCPKG_TARGET_IS_WINDOWS) set(ENV{FFLAGS} "$ENV{FFLAGS} -fPIC") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FORTRAN_CMAKE} -DMPI=OFF -DICB=ON -DICBEXMM=OFF -DEXAMPLES=OFF -DTESTS=OFF -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME arpackng CONFIG_PATH lib/cmake/arpackng) vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/arpack-ng/usage ================================================ The package arpack-ng provides CMake targets: find_package(arpackng CONFIG REQUIRED) target_link_libraries(main PRIVATE ARPACK::ARPACK) ================================================ FILE: ports/arpack-ng/vcpkg.json ================================================ { "name": "arpack-ng", "version": "3.9.1", "port-version": 1, "description": "ARPACK-NG is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems.", "homepage": "https://github.com/opencollab/arpack-ng", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-gfortran", "platform": "windows" } ] } ================================================ FILE: ports/arrayfire/Fix-constexpr-error-with-vs2019-with-half.patch ================================================ diff --git a/src/backend/common/half.hpp b/src/backend/common/half.hpp index ce06eed..fb25d03 100644 --- a/src/backend/common/half.hpp +++ b/src/backend/common/half.hpp @@ -879,15 +879,9 @@ class alignas(2) half { return *this; } -#if defined(NVCC) || defined(__CUDACC_RTC__) - AF_CONSTEXPR __DH__ explicit half(__half value) noexcept #ifdef __CUDA_ARCH__ - : data_(value) { - } -#else - : data_(*reinterpret_cast(&value)) { - } -#endif + AF_CONSTEXPR __DH__ explicit half(__half value) noexcept : data_(value) {} + AF_CONSTEXPR __DH__ half& operator=(__half value) noexcept { // NOTE Assignment to ushort from __half only works with device code. // using memcpy instead ================================================ FILE: ports/arrayfire/build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 682f416..a8cbec8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -104,8 +104,6 @@ mark_as_advanced( CUDA_HOST_COMPILER CUDA_USE_STATIC_CUDA_RUNTIME CUDA_rt_LIBRARY - SPDLOG_BUILD_EXAMPLES - SPDLOG_BUILD_TESTING ADDR2LINE_PROGRAM Backtrace_LIBRARY AF_WITH_STATIC_MKL @@ -159,9 +157,7 @@ if(NOT LAPACK_FOUND) endif() endif() -set(SPDLOG_BUILD_TESTING OFF CACHE INTERNAL "Disable testing in spdlog") -add_subdirectory(extern/spdlog EXCLUDE_FROM_ALL) -add_subdirectory(extern/glad) +find_package(spdlog CONFIG REQUIRED) add_subdirectory(src/backend/common) add_subdirectory(src/api/c) add_subdirectory(src/api/cpp) @@ -269,10 +265,6 @@ install(DIRECTORY examples/ #NOTE The slash at the end is important DESTINATION ${AF_INSTALL_EXAMPLE_DIR} COMPONENT examples) -install(DIRECTORY assets/examples/ #NOTE The slash at the end is important - DESTINATION ${AF_INSTALL_EXAMPLE_DIR} - COMPONENT examples) - install(DIRECTORY "${ArrayFire_SOURCE_DIR}/LICENSES/" DESTINATION LICENSES COMPONENT licenses) diff --git a/CMakeModules/AFInstallDirs.cmake b/CMakeModules/AFInstallDirs.cmake index 2c7b96e..b5006ee 100644 --- a/CMakeModules/AFInstallDirs.cmake +++ b/CMakeModules/AFInstallDirs.cmake @@ -7,8 +7,12 @@ include(GNUInstallDirs) # NOTE: These paths are all relative to the project installation prefix. # Executables -if(NOT DEFINED AF_INSTALL_BIN_DIR) - set(AF_INSTALL_BIN_DIR "lib" CACHE PATH "Installation path for executables") +if(CMAKE_BUILD_TYPE MATCHES Debug) + set(AF_INSTALL_BIN_DIR "${AF_BIN_DIR}/debug/bin") + message(STATUS " Setting install to debug path ${AF_INSTALL_BIN_DIR}") +else() + set(AF_INSTALL_BIN_DIR "${AF_BIN_DIR}/bin") + message(STATUS " Setting install to release path ${AF_INSTALL_BIN_DIR}") endif() # Libraries diff --git a/CMakeModules/AFconfigure_forge_submodule.cmake b/CMakeModules/AFconfigure_forge_submodule.cmake index d16849f..36ab01b 100644 --- a/CMakeModules/AFconfigure_forge_submodule.cmake +++ b/CMakeModules/AFconfigure_forge_submodule.cmake @@ -39,13 +39,13 @@ if(AF_BUILD_FORGE) COMPONENT common_backend_dependencies) set_property(TARGET forge APPEND_STRING PROPERTY COMPILE_FLAGS " -w") else(AF_BUILD_FORGE) - set(FG_VERSION "1.0.0") + set(FG_VERSION "1.0.5") set(FG_VERSION_MAJOR 1) set(FG_VERSION_MINOR 0) - set(FG_VERSION_PATCH 0) + set(FG_VERSION_PATCH 5) set(FG_API_VERSION_CURRENT 10) configure_file( - ${PROJECT_SOURCE_DIR}/extern/forge/CMakeModules/version.h.in - ${PROJECT_BINARY_DIR}/extern/forge/include/fg/version.h + ${AF_FORGE_PATH}/CMakeModules/version.h.in + ${AF_FORGE_PATH}/include/fg/version.h ) endif(AF_BUILD_FORGE) diff --git a/src/api/unified/CMakeLists.txt b/src/api/unified/CMakeLists.txt index 967eaa6..16bb633 100644 --- a/src/api/unified/CMakeLists.txt +++ b/src/api/unified/CMakeLists.txt @@ -96,7 +96,8 @@ target_include_directories(af target_link_libraries(af PRIVATE cpp_api_interface - spdlog + spdlog::spdlog + spdlog::spdlog_header_only Threads::Threads Boost::boost ${CMAKE_DL_LIBS} diff --git a/src/backend/common/CMakeLists.txt b/src/backend/common/CMakeLists.txt index c9fe088..8c128fa 100644 --- a/src/backend/common/CMakeLists.txt +++ b/src/backend/common/CMakeLists.txt @@ -77,12 +77,15 @@ else() target_sources(afcommon_interface INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/module_loading_unix.cpp) endif() +find_package(glad CONFIG REQUIRED) + target_link_libraries(afcommon_interface INTERFACE - spdlog + spdlog::spdlog + spdlog::spdlog_header_only Boost::boost - af_glad_interface ${CMAKE_DL_LIBS} + glad::glad ) if(AF_BUILD_FORGE) @@ -93,10 +96,9 @@ target_include_directories(afcommon_interface INTERFACE ${ArrayFire_SOURCE_DIR}/src/backend ${ArrayFire_BINARY_DIR} + ${AF_FORGE_PATH}/include # passed via vcpkg SYSTEM INTERFACE $<$:${OPENGL_INCLUDE_DIR}> - ${ArrayFire_SOURCE_DIR}/extern/forge/include - ${ArrayFire_BINARY_DIR}/extern/forge/include ) if(APPLE AND NOT USE_MKL) diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt index 170bb0f..c6e2017 100644 --- a/src/backend/cpu/CMakeLists.txt +++ b/src/backend/cpu/CMakeLists.txt @@ -266,9 +266,10 @@ endif(AF_WITH_CPUID) target_sources(afcpu PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/threads/async_queue.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/threads/event.hpp + ${AF_CPU_THREAD_PATH}/include/threads/async_queue.hpp + ${AF_CPU_THREAD_PATH}/include/threads/event.hpp ) +target_include_directories(afcpu PRIVATE ${AF_CPU_THREAD_PATH}/include) arrayfire_set_default_cxx_flags(afcpu) diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt index 7e3e408..2edaacd 100644 --- a/src/backend/cuda/CMakeLists.txt +++ b/src/backend/cuda/CMakeLists.txt @@ -110,7 +110,11 @@ cuda_include_directories( ${COMMON_INTERFACE_DIRS} ) if(CUDA_VERSION_MAJOR VERSION_LESS 11) - cuda_include_directories(${ArrayFire_SOURCE_DIR}/extern/cub) + find_path(CUB_INCLUDE_DIRS "cub/agent/agent_histogram.cuh") + if (${CUB_INCLUDE_DIRS} EQUAL "CUB_INCLUDE_DIRS-NOTFOUND") + set(CUB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/cub) + endif() + cuda_include_directories(${CUB_INCLUDE_DIRS}) endif() file(GLOB jit_src "kernel/jit.cuh") @@ -242,7 +246,7 @@ endif() if(CUDA_VERSION_MAJOR VERSION_GREATER 10 OR (UNIX AND - CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 0)) + CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 1)) list(APPEND cxx_definitions -DAF_USE_NEW_CUSPARSE_API) endif() @@ -301,7 +305,7 @@ set_target_properties(af_cuda_static_cuda_library if(CUDA_VERSION_MAJOR VERSION_GREATER 10 OR (UNIX AND - CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 0)) + CUDA_VERSION_MAJOR VERSION_EQUAL 10 AND CUDA_VERSION_MINOR VERSION_GREATER 1)) target_compile_definitions(af_cuda_static_cuda_library PRIVATE AF_USE_NEW_CUSPARSE_API) endif() diff --git a/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt b/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt index 9a796c9..d9864b0 100644 --- a/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt +++ b/src/backend/opencl/kernel/scan_by_key/CMakeLists.txt @@ -27,6 +27,7 @@ foreach(SBK_BINARY_OP ${SBK_BINARY_OPS}) add_dependencies(opencl_scan_by_key_${SBK_BINARY_OP} ${cl_kernel_targets} OpenCL::cl2hpp Boost::boost) + find_package(glad CONFIG REQUIRED) target_include_directories(opencl_scan_by_key_${SBK_BINARY_OP} PRIVATE . @@ -39,9 +40,7 @@ foreach(SBK_BINARY_OP ${SBK_BINARY_OPS}) $ $ $ - $ - ${ArrayFire_SOURCE_DIR}/extern/forge/include - ${ArrayFire_BINARY_DIR}/extern/forge/include + $ ) set_target_properties(opencl_scan_by_key_${SBK_BINARY_OP} diff --git a/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt index d618ff2..9f51739 100644 --- a/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt +++ b/src/backend/opencl/kernel/sort_by_key/CMakeLists.txt @@ -32,14 +32,13 @@ foreach(SBK_TYPE ${SBK_TYPES}) ../../../include ${CMAKE_CURRENT_BINARY_DIR}) + find_package(glad CONFIG REQUIRED) target_include_directories(opencl_sort_by_key_${SBK_TYPE} SYSTEM PRIVATE $ $ $ - $ - ${ArrayFire_SOURCE_DIR}/extern/forge/include - ${ArrayFire_BINARY_DIR}/extern/forge/include + $ ) set_target_properties(opencl_sort_by_key_${SBK_TYPE} diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt index b543433..9b5923b 100644 --- a/src/backend/opencl/CMakeLists.txt +++ b/src/backend/opencl/CMakeLists.txt @@ -432,12 +432,9 @@ if(AF_OPENCL_BLAS_LIBRARY STREQUAL "clBLAS") PRIVATE clBLAS::clBLAS) elseif(AF_OPENCL_BLAS_LIBRARY STREQUAL "CLBlast") - include(build_CLBlast) + find_package(CLBlast CONFIG REQUIRED) target_compile_definitions(afopencl PRIVATE USE_CLBLAST) - target_link_libraries(afopencl - PRIVATE - CLBlast) - add_dependencies(afopencl CLBlast-ext) + target_link_libraries(afopencl PRIVATE clblast) endif() diff --git a/src/backend/opencl/homography.cpp b/src/backend/opencl/homography.cpp index 3b598b0..2815923 100644 --- a/src/backend/opencl/homography.cpp +++ b/src/backend/opencl/homography.cpp @@ -39,7 +39,7 @@ int homography(Array &bestH, const Array &x_src, ::std::min(iter, static_cast( log(1.f - LMEDSConfidence) / log(1.f - pow(1.f - LMEDSOutlierRatio, 4.f)))); - err = createValueArray(af::dim4(nsamples, iter), FLT_MAX); + err = createValueArray(af::dim4(nsamples, iter), std::numeric_limits::max()); } else { // Avoid passing "null" cl_mem object to kernels err = createEmptyArray(af::dim4(1)); diff --git a/src/backend/opencl/kernel/homography.hpp b/src/backend/opencl/kernel/homography.hpp index b84e599..90d0c80 100644 --- a/src/backend/opencl/kernel/homography.hpp +++ b/src/backend/opencl/kernel/homography.hpp @@ -39,7 +39,9 @@ std::array getHomographyKernels(const af_homography_type htype) { }; options.emplace_back(getTypeBuildDefinition()); options.emplace_back(DefineKeyValue( - EPS, (std::is_same::value ? DBL_EPSILON : FLT_EPSILON))); + EPS, (std::is_same::value + ? std::numeric_limits::epsilon() + : std::numeric_limits::epsilon()))); if (htype == AF_HOMOGRAPHY_RANSAC) { options.emplace_back(DefineKey(RANSAC)); } ================================================ FILE: ports/arrayfire/fix-dependency-clfft.patch ================================================ diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt index f970da0..b543433 100644 --- a/src/backend/opencl/CMakeLists.txt +++ b/src/backend/opencl/CMakeLists.txt @@ -12,7 +12,8 @@ set_property(CACHE AF_OPENCL_BLAS_LIBRARY PROPERTY STRINGS "clBLAS" "CLBlast") af_deprecate(OPENCL_BLAS_LIBRARY AF_OPENCL_BLAS_LIBRARY) -include(build_clFFT) +find_package(clFFT CONFIG REQUIRED) +add_library(clFFT::clFFT ALIAS clFFT) file(GLOB kernel_src kernel/*.cl kernel/KParam.hpp) ================================================ FILE: ports/arrayfire/fix-fmt-error.patch ================================================ diff --git a/src/backend/opencl/compile_module.cpp b/src/backend/opencl/compile_module.cpp index 35f992f..8cfc83e 100644 --- a/src/backend/opencl/compile_module.cpp +++ b/src/backend/opencl/compile_module.cpp @@ -21,2 +21,4 @@ #include +#include +#include ================================================ FILE: ports/arrayfire/fix-miss-header-file.patch ================================================ diff --git a/src/backend/common/half.hpp b/src/backend/common/half.hpp index fb25d03..2f6a8a4 100644 --- a/src/backend/common/half.hpp +++ b/src/backend/common/half.hpp @@ -33,6 +33,7 @@ #endif #include +#include #ifdef __CUDACC_RTC__ using uint16_t = unsigned short; ================================================ FILE: ports/arrayfire/portfile.cmake ================================================ vcpkg_download_distfile( CUDA_PATCHES URLS "https://github.com/arrayfire/arrayfire/pull/3552/commits/674e7bec90b90467139d32bf633467fe60824617.diff?full_index=1" FILENAME "fix-cuda-674e7bec90b90467139d32bf633467fe60824617.patch" SHA512 201ba8c46f5eafd5d8dbc78ddc1fb4c24b8d820f034e081b8ff30712705fe059c2850bbb7394d81931620619071559fed0e98b13cc4f985103e354c44a322e78 ) # When updating arrayfire check $/CMakeModules/build_cl2hpp.cmake for this to match vcpkg_download_distfile(CL2HPP URLS "https://github.com/KhronosGroup/OpenCL-CLHPP/releases/download/v2.0.10/cl2.hpp" FILENAME "arrayfire-${VERSION}-cl2hpp.hpp" SHA512 f220e3dd013596fe3134bf43e2957c293186071460f2a03f6e81e0e7def3213a568d4b29a06b4921cd3488e8626200dcd4693808f0f6c8f88e67d4147ff474e8 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arrayfire/arrayfire REF d99887ae431fcd58168b653a1e69f027f04d5188 # v3.8.0 SHA512 d8ddf6ba254744e62acf5ecf680f0ae56b05f8957b5463572923977ba2ffea7fa37cc1b6179421a1188a6f9e66565ca0f8cd00807513ccbe66ba1e9bbd41a3da HEAD_REF master PATCHES build.patch Fix-constexpr-error-with-vs2019-with-half.patch fix-dependency-clfft.patch fix-miss-header-file.patch fix-fmt-error.patch remove-cl2hpp-download.diff "${CUDA_PATCHES}" ) file(COPY_FILE "${CL2HPP}" "${SOURCE_PATH}/cl2.hpp") # arrayfire cpu thread lib needed as a submodule for the CPU backend vcpkg_from_github( OUT_SOURCE_PATH CPU_THREADS_PATH REPO arrayfire/threads REF b666773940269179f19ef11c8f1eb77005e85d9a SHA512 b3e8b54acf3a588b1f821c2774d5da2d8f8441962c6d99808d513f7117278b9066eb050b8b501bddbd3882e68eb5cc5da0b2fca54e15ab1923fe068a3fe834f5 HEAD_REF master ) # Get forge. We only need headers and aren't actually linking. # We don't want to use the vcpkg dependency since it is broken in many # environments - see https://github.com/microsoft/vcpkg/issues/14864. This # can be relaxed when the issue is fixed. Forge and its dependencies # are still runtime dependencies, so the user can use the graphics # library by installing forge and freeimage. vcpkg_from_github( OUT_SOURCE_PATH FORGE_PATH REPO arrayfire/forge REF 1a0f0cb6371a8c8053ab5eb7cbe3039c95132389 # v1.0.5 SHA512 8f8607421880a0f0013380eb5efb3a4f05331cd415d68c9cd84dd57eb727da1df6223fc6d65b106675d6aa09c3388359fab64443c31fadadf7641161be6b3b89 HEAD_REF master ) ################################### Build ################################### # Default flags set(AF_DEFAULT_VCPKG_CMAKE_FLAGS -DBUILD_TESTING=OFF -DAF_BUILD_DOCS=OFF -DAF_BUILD_EXAMPLES=OFF -DUSE_CPU_MKL=ON -DUSE_OPENCL_MKL=ON -DAF_CPU_THREAD_PATH=${CPU_THREADS_PATH} # for building the arrayfire cpu threads lib -DAF_FORGE_PATH=${FORGE_PATH} # forge headers for building the graphics lib -DAF_BUILD_FORGE=OFF ) if("cpu" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DMKL_THREAD_LAYER=Sequential") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DINT_SIZE=8") # This seems scary but only selects the MKL interface. 4 = lp; 8 = ilp; Since x64 has ilp as the default use it! endif() endif() # bin/dll directory for Windows non-static builds for the unified backend dll if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(AF_BIN_DIR ${CURRENT_PACKAGES_DIR}) list(APPEND AF_DEFAULT_VCPKG_CMAKE_FLAGS "-DAF_BIN_DIR=${AF_BIN_DIR}") endif() if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") message(WARNING "NOTE: Windows support with static linkeage is still experimental.") endif() # Determine which backend to build via specified feature vcpkg_check_features( OUT_FEATURE_OPTIONS AF_BACKEND_FEATURE_OPTIONS FEATURES unified AF_BUILD_UNIFIED cpu AF_BUILD_CPU cuda AF_BUILD_CUDA opencl AF_BUILD_OPENCL ) # Build and install vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${AF_DEFAULT_VCPKG_CMAKE_FLAGS} ${AF_BACKEND_FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES AF_CPU_THREAD_PATH ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH share/ArrayFire/cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/examples" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/examples" "${CURRENT_PACKAGES_DIR}/LICENSES" "${CURRENT_PACKAGES_DIR}/debug/LICENSES") if(FEATURES STREQUAL "core") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() # Copyright and license file(INSTALL "${SOURCE_PATH}/COPYRIGHT.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/arrayfire/remove-cl2hpp-download.diff ================================================ diff --git a/CMakeModules/build_cl2hpp.cmake b/CMakeModules/build_cl2hpp.cmake index 70a94c5..083f7c2 100644 --- a/CMakeModules/build_cl2hpp.cmake +++ b/CMakeModules/build_cl2hpp.cmake @@ -17,12 +17,11 @@ set(cl2hpp_file_url "https://github.com/KhronosGroup/OpenCL-CLHPP/releases/downl set(cl2hpp_file "${ArrayFire_BINARY_DIR}/include/CL/cl2.hpp") if(OpenCL_FOUND) + get_filename_component(download_dir ${cl2hpp_file} DIRECTORY) if (NOT EXISTS ${cl2hpp_file}) - message(STATUS "Downloading ${cl2hpp_file_url}") - file(DOWNLOAD ${cl2hpp_file_url} ${cl2hpp_file} - EXPECTED_HASH MD5=c38d1b78cd98cc809fa2a49dbd1734a5) + file(MAKE_DIRECTORY "${download_dir}") + file(COPY_FILE "${CMAKE_CURRENT_LIST_DIR}/../cl2.hpp" "${cl2hpp_file}") endif() - get_filename_component(download_dir ${cl2hpp_file} DIRECTORY) if (NOT TARGET OpenCL::cl2hpp OR NOT TARGET cl2hpp) ================================================ FILE: ports/arrayfire/vcpkg.json ================================================ { "name": "arrayfire", "version-semver": "3.8.0", "port-version": 10, "description": "ArrayFire is a general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.", "homepage": "https://github.com/arrayfire/arrayfire", "license": "BSD-3-Clause", "supports": "x64", "dependencies": [ "boost-compute", "boost-stacktrace", "glad", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "cpu", "unified" ], "features": { "cpu": { "description": "ArrayFire CPU backend", "dependencies": [ "intel-mkl" ] }, "cuda": { "description": "ArrayFire CUDA backend. This feature only supports dynamic because dependency cudnn is dynamic only.", "dependencies": [ "cuda", "cudnn" ] }, "opencl": { "description": "ArrayFire OpenCL backend", "dependencies": [ "clblast", "clfft", "opencl" ] }, "unified": { "description": "ArrayFire unified backend", "dependencies": [ "intel-mkl" ] } } } ================================================ FILE: ports/arrow/0001-msvc-static-name.patch ================================================ diff --git a/cpp/cmake_modules/BuildUtils.cmake b/cpp/cmake_modules/BuildUtils.cmake index 391c43e0a..50f6d3d3c 100644 --- a/cpp/cmake_modules/BuildUtils.cmake +++ b/cpp/cmake_modules/BuildUtils.cmake @@ -427,7 +427,7 @@ function(ADD_ARROW_LIB LIB_NAME) target_include_directories(${LIB_NAME}_static PRIVATE ${ARG_PRIVATE_INCLUDES}) endif() - if(MSVC_TOOLCHAIN) + if(MSVC_TOOLCHAIN AND 0) set(LIB_NAME_STATIC ${LIB_NAME}_static) else() set(LIB_NAME_STATIC ${LIB_NAME}) ================================================ FILE: ports/arrow/0003-android-musl.patch ================================================ diff --git a/cpp/src/arrow/vendored/musl/strptime.c b/cpp/src/arrow/vendored/musl/strptime.c index 41912fd..0ea36e9 100644 --- a/cpp/src/arrow/vendored/musl/strptime.c +++ b/cpp/src/arrow/vendored/musl/strptime.c @@ -18,7 +18,9 @@ #undef HAVE_LANGINFO #ifndef _WIN32 +# if !(defined(__ANDROID__) && __ANDROID_API__ < 26) #define HAVE_LANGINFO 1 +# endif #endif #ifdef HAVE_LANGINFO ================================================ FILE: ports/arrow/0004-android-datetime.patch ================================================ diff --git a/cpp/src/arrow/vendored/datetime/tz.h b/cpp/src/arrow/vendored/datetime/tz.h index 61ab3df106..d456d6765f 100644 --- a/cpp/src/arrow/vendored/datetime/tz.h +++ b/cpp/src/arrow/vendored/datetime/tz.h @@ -858,7 +858,9 @@ private: load_data(std::istream& inf, std::int32_t tzh_leapcnt, std::int32_t tzh_timecnt, std::int32_t tzh_typecnt, std::int32_t tzh_charcnt); # if defined(ANDROID) || defined(__ANDROID__) +public: void parse_from_android_tzdata(std::ifstream& inf, const std::size_t off); +private: # endif // defined(ANDROID) || defined(__ANDROID__) #else // !USE_OS_TZDB DATE_API sys_info get_info_impl(sys_seconds tp, int tz_int) const; diff --git a/cpp/src/arrow/vendored/datetime/visibility.h b/cpp/src/arrow/vendored/datetime/visibility.h index 780c00d70b..a9514edba7 100644 --- a/cpp/src/arrow/vendored/datetime/visibility.h +++ b/cpp/src/arrow/vendored/datetime/visibility.h @@ -21,6 +21,10 @@ # define USE_OS_TZDB 1 #endif +#if defined(ANDROID) || defined(__ANDROID__) +# define BUILD_TZ_LIB +#endif + #if defined(ARROW_STATIC) // intentially empty #elif defined(ARROW_EXPORTING) ================================================ FILE: ports/arrow/0005-cmake-msvcruntime.patch ================================================ diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake index abfe6d274f..8bacfe89af 100644 --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -886,9 +886,17 @@ foreach(CONFIG DEBUG MINSIZEREL RELEASE RELWITHDEBINFO) set(EP_CXX_FLAGS_${CONFIG} "${CMAKE_CXX_FLAGS_${CONFIG}}") set(EP_C_FLAGS_${CONFIG} "${CMAKE_C_FLAGS_${CONFIG}}") if(CONFIG STREQUAL DEBUG) - set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL) + if(BUILD_SHARED_LIBS) + set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL) + else() + set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDebug) + endif() else() - set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDLL) + if(BUILD_SHARED_LIBS) + set(EP_MSVC_RUNTIME_LIBRARY MultiThreadedDLL) + else() + set(EP_MSVC_RUNTIME_LIBRARY MultiThreaded) + endif() endif() string(APPEND EP_CXX_FLAGS_${CONFIG} " ${CMAKE_CXX_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_${EP_MSVC_RUNTIME_LIBRARY}}") ================================================ FILE: ports/arrow/0007-use-vcpkg-mimalloc.patch ================================================ --- a/cpp/cmake_modules/ThirdpartyToolchain.cmake +++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake @@ -2319,6 +2319,14 @@ endif() # mimalloc - Cross-platform high-performance allocator, from Microsoft if(ARROW_MIMALLOC) + find_package(mimalloc REQUIRED CONFIG) + if(TARGET mimalloc-static) + add_library(mimalloc::mimalloc ALIAS mimalloc-static) + else() + add_library(mimalloc::mimalloc ALIAS mimalloc) + endif() +endif() +if(0) if(NOT ARROW_ENABLE_THREADING) message(FATAL_ERROR "Can't use mimalloc with ARROW_ENABLE_THREADING=OFF") endif() ================================================ FILE: ports/arrow/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE_PATH URLS "https://archive.apache.org/dist/arrow/arrow-${VERSION}/apache-arrow-${VERSION}.tar.gz" FILENAME apache-arrow-${VERSION}.tar.gz SHA512 c687e50dfcdbf7e0e39710224360d35d9aa734452b3a47adc8c101f3019b6b4116310c05b9f3cd0a5ed4ad9b7bd8fb88edb70e79b3cbd413a57e5e35e4554a6c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE_PATH} PATCHES 0001-msvc-static-name.patch 0003-android-musl.patch 0004-android-datetime.patch 0005-cmake-msvcruntime.patch 0007-use-vcpkg-mimalloc.patch ) # Check cpp/cmake_modules/DefineOptions.cmake for option dependencies - # they must be modeled as feature dependencies in vcpkg.json. vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES acero ARROW_ACERO compute ARROW_COMPUTE csv ARROW_CSV cuda ARROW_CUDA dataset ARROW_DATASET filesystem ARROW_FILESYSTEM flight ARROW_FLIGHT flightsql ARROW_FLIGHT_SQL gcs ARROW_GCS jemalloc ARROW_JEMALLOC json ARROW_JSON mimalloc ARROW_MIMALLOC orc ARROW_ORC parquet ARROW_PARQUET parquet PARQUET_REQUIRE_ENCRYPTION s3 ARROW_S3 ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND FEATURE_OPTIONS "-DARROW_USE_NATIVE_INT128=OFF") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") list(APPEND FEATURE_OPTIONS "-DARROW_SIMD_LEVEL=NONE") endif() string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_BUILD_SHARED) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ARROW_BUILD_STATIC) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ARROW_DEPENDENCY_USE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cpp" OPTIONS ${FEATURE_OPTIONS} -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED} -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC} -DARROW_BUILD_TESTS=OFF -DARROW_DEPENDENCY_SOURCE=SYSTEM -DARROW_DEPENDENCY_USE_SHARED=${ARROW_DEPENDENCY_USE_SHARED} -DARROW_PACKAGE_KIND=vcpkg -DARROW_WITH_BROTLI=ON -DARROW_WITH_BZ2=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_ZLIB=ON -DARROW_WITH_ZSTD=ON -DBUILD_WARNING_LEVEL=PRODUCTION -DZSTD_MSVC_LIB_PREFIX= MAYBE_UNUSED_VARIABLES ZSTD_MSVC_LIB_PREFIX ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/arrow_static.lib") message(FATAL_ERROR "Installed lib file should be named 'arrow.lib' via patching the upstream build.") endif() if("dataset" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME arrowdataset CONFIG_PATH lib/cmake/ArrowDataset DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("acero" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME arrowacero CONFIG_PATH lib/cmake/ArrowAcero DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("compute" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME arrowcompute CONFIG_PATH lib/cmake/ArrowCompute DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("flight" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME arrowflight CONFIG_PATH lib/cmake/ArrowFlight DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("flightsql" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME arrowflightsql CONFIG_PATH lib/cmake/ArrowFlightSql DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("parquet" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME parquet CONFIG_PATH lib/cmake/Parquet DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() file(GLOB main_configs "${CURRENT_PACKAGES_DIR}/lib/cmake/Arrow/*onfig.cmake") file(GLOB extra_configs "${CURRENT_PACKAGES_DIR}/lib/cmake/*/*onfig.cmake") list(REMOVE_ITEM extra_configs ${main_configs}) if(NOT "${extra_configs}" STREQUAL "") message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "Unhandled CMake config: ${extra_configs}\n" "This might be caused by insufficient feature dependencies in ports/arrow/vcpkg.json." ) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Arrow) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") foreach(feature IN ITEMS parquet dataset acero compute flight flightsql) if(feature IN_LIST FEATURES) file(READ "${CMAKE_CURRENT_LIST_DIR}/usage-${feature}" feature_usage) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "${feature_usage}") endif() endforeach() if("example" IN_LIST FEATURES) file(INSTALL "${SOURCE_PATH}/cpp/examples/minimal_build/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/example") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/arrow/usage ================================================ The package arrow provides CMake targets: find_package(Arrow CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,Arrow::arrow_static,Arrow::arrow_shared>") ================================================ FILE: ports/arrow/usage-acero ================================================ find_package(ArrowAcero CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,ArrowAcero::arrow_acero_static,ArrowAcero::arrow_acero_shared>") ================================================ FILE: ports/arrow/usage-compute ================================================ find_package(ArrowCompute CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,ArrowCompute::arrow_compute_static,ArrowCompute::arrow_compute_shared>") ================================================ FILE: ports/arrow/usage-dataset ================================================ find_package(ArrowDataset CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,ArrowDataset::arrow_dataset_static,ArrowDataset::arrow_dataset_shared>") ================================================ FILE: ports/arrow/usage-flight ================================================ find_package(ArrowFlight CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,ArrowFlight::arrow_flight_static,ArrowFlight::arrow_flight_shared>") ================================================ FILE: ports/arrow/usage-flightsql ================================================ find_package(ArrowFlightSql CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,ArrowFlightSql::arrow_flight_sql_static,ArrowFlightSql::arrow_flight_sql_shared>") ================================================ FILE: ports/arrow/usage-parquet ================================================ find_package(Parquet CONFIG REQUIRED) target_link_libraries(main PRIVATE "$,Parquet::parquet_static,Parquet::parquet_shared>") ================================================ FILE: ports/arrow/vcpkg.json ================================================ { "name": "arrow", "version": "23.0.1", "description": "Cross-language development platform for in-memory analytics", "homepage": "https://arrow.apache.org", "license": "Apache-2.0", "supports": "x64 | arm64", "dependencies": [ "boost-filesystem", "boost-multiprecision", "boost-system", "brotli", "bzip2", "gflags", "lz4", { "name": "mimalloc", "default-features": false }, "openssl", "re2", "snappy", "thrift", "utf8proc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xsimd", "zlib", "zstd" ], "default-features": [ "csv", "filesystem", "json", "parquet" ], "features": { "acero": { "description": "Acero support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "compute" ] } ] }, "compute": { "description": "Build all computational kernel functions" }, "csv": { "description": "CSV support" }, "cuda": { "description": "cuda support", "dependencies": [ "cuda" ] }, "dataset": { "description": "Dataset support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "acero", "filesystem" ] } ] }, "example": { "description": "Install the minimal example (source code)" }, "filesystem": { "description": "Filesystem support" }, "flight": { "description": "Arrow Flight RPC support", "dependencies": [ "abseil", "c-ares", "grpc", "protobuf" ] }, "flightsql": { "description": "FlightSQL support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "flight" ] } ] }, "gcs": { "description": "GCS support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "filesystem" ] }, { "name": "google-cloud-cpp", "default-features": false, "features": [ "storage" ] } ] }, "jemalloc": { "description": "jemalloc allocator", "supports": "!windows" }, "json": { "description": "JSON support", "dependencies": [ "rapidjson" ] }, "mimalloc": { "description": "mimalloc allocator", "supports": "!staticcrt" }, "orc": { "description": "ORC support", "dependencies": [ "orc" ] }, "parquet": { "description": "Parquet support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "json" ] }, "rapidjson" ] }, "s3": { "description": "S3 support", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "filesystem" ] }, { "name": "aws-sdk-cpp", "default-features": false, "features": [ "cognito-identity", "config", "identity-management", "s3", "sts", "transfer" ] } ] } } } ================================================ FILE: ports/arrow-adbc/fix_static_build.patch ================================================ diff --git a/c/cmake_modules/BuildUtils.cmake b/c/cmake_modules/BuildUtils.cmake index 88209ac..aefff1d 100644 --- a/c/cmake_modules/BuildUtils.cmake +++ b/c/cmake_modules/BuildUtils.cmake @@ -310,7 +310,7 @@ function(ADD_ARROW_LIB LIB_NAME) if(BUILD_STATIC) add_library(${LIB_NAME}_static STATIC ${LIB_DEPS}) target_compile_features(${LIB_NAME}_static PRIVATE cxx_std_11) - set_property(TARGET ${LIB_NAME}_shared PROPERTY CXX_STANDARD_REQUIRED ON) + set_property(TARGET ${LIB_NAME}_static PROPERTY CXX_STANDARD_REQUIRED ON) adbc_configure_target(${LIB_NAME}_static) if(EXTRA_DEPS) add_dependencies(${LIB_NAME}_static ${EXTRA_DEPS}) ================================================ FILE: ports/arrow-adbc/fix_windows_build.patch ================================================ diff --git a/c/driver_manager/adbc_driver_manager.cc b/c/driver_manager/adbc_driver_manager.cc index 0ce173a..2a7fef8 100644 --- a/c/driver_manager/adbc_driver_manager.cc +++ b/c/driver_manager/adbc_driver_manager.cc @@ -675,7 +675,7 @@ std::string AdbcDriverManagerDefaultEntrypoint(const std::string& driver) { // if pos == npos this is the entire filename std::string token = filename.substr(prev, pos - prev); // capitalize first letter - token[0] = std::toupper(static_cast(token[0])); + token[0] = static_cast(std::toupper(static_cast(token[0]))); entrypoint += token; ================================================ FILE: ports/arrow-adbc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/arrow-adbc REF apache-arrow-adbc-${VERSION} SHA512 59cccbeeefa295d69cacfa8851b621376106aca57ebd94291523fcca314c0bd10c1d296801d1eacce9edddd46a8c87deaf3d8367e32ba5fd5b322b34c6af8625 HEAD_REF main PATCHES fix_static_build.patch fix_windows_build.patch unvendor.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/c/vendor") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "sqlite" "ADBC_DRIVER_SQLITE" "postgresql" "ADBC_DRIVER_POSTGRESQL" "flightsql" "ADBC_DRIVER_FLIGHTSQL" "snowflake" "ADBC_DRIVER_SNOWFLAKE" "bigquery" "ADBC_DRIVER_BIGQUERY" ) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" ADBC_BUILD_SHARED) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "static" ADBC_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH}/c OPTIONS ${FEATURE_OPTIONS} -DADBC_DRIVER_MANAGER=ON -DADBC_BUILD_SHARED=${ADBC_BUILD_SHARED} -DADBC_BUILD_STATIC=${ADBC_BUILD_STATIC} -DADBC_WITH_VENDORED_NANOARROW=OFF -DADBC_WITH_VENDORED_FMT=OFF -DADBC_BUILD_WARNING_LEVEL=PRODUCTION ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME AdbcDriverManager CONFIG_PATH lib/cmake/AdbcDriverManager DO_NOT_DELETE_PARENT_CONFIG_PATH ) if("postgresql" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME AdbcDriverPostgreSQL CONFIG_PATH lib/cmake/AdbcDriverPostgreSQL DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() if("sqlite" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME AdbcDriverSQLite CONFIG_PATH lib/cmake/AdbcDriverSQLite DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/arrow-adbc/unvendor.patch ================================================ diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index be69103..e92a7fc 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -29,9 +29,18 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) include(CTest) -add_subdirectory(vendor/fmt EXCLUDE_FROM_ALL) -set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON) -add_subdirectory(vendor/nanoarrow) + +if(ADBC_WITH_VENDORED_FMT) + add_subdirectory(vendor/fmt EXCLUDE_FROM_ALL) + set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON) +else() + find_package(fmt REQUIRED) +endif() +if(ADBC_WITH_VENDORED_NANOARROW) + add_subdirectory(vendor/nanoarrow) +else() + find_package(nanoarrow REQUIRED) +endif() add_subdirectory(driver/common) add_subdirectory(driver/framework) diff --git a/c/cmake_modules/DefineOptions.cmake b/c/cmake_modules/DefineOptions.cmake index 13e6757..6e990a7 100644 --- a/c/cmake_modules/DefineOptions.cmake +++ b/c/cmake_modules/DefineOptions.cmake @@ -133,6 +133,9 @@ if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") define_option(ADBC_GGDB_DEBUG "Pass -ggdb flag to debug builds" ON) + define_option(ADBC_WITH_VENDORED_FMT "Use vendored copy of fmt" ON) + define_option(ADBC_WITH_VENDORED_NANOARROW "Use vendored copy of nanoarrow" ON) + #---------------------------------------------------------------------- set_option_category("Test and benchmark") diff --git a/c/driver/common/CMakeLists.txt b/c/driver/common/CMakeLists.txt index 751eda3..5739e4e 100644 --- a/c/driver/common/CMakeLists.txt +++ b/c/driver/common/CMakeLists.txt @@ -18,8 +18,12 @@ add_library(adbc_driver_common STATIC utils.c) adbc_configure_target(adbc_driver_common) set_target_properties(adbc_driver_common PROPERTIES POSITION_INDEPENDENT_CODE ON) -target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/include" - "${REPOSITORY_ROOT}/c/vendor") +target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/include") +if(ADBC_WITH_VENDORED_NANOARROW) + target_include_directories(adbc_driver_common PRIVATE "${REPOSITORY_ROOT}/c/vendor") +else() + target_link_libraries(adbc_driver_common PRIVATE nanoarrow::nanoarrow) +endif() if(ADBC_BUILD_TESTS) add_test_case(driver_common_test diff --git a/c/driver/postgresql/CMakeLists.txt b/c/driver/postgresql/CMakeLists.txt index a720696..32af4ac 100644 --- a/c/driver/postgresql/CMakeLists.txt +++ b/c/driver/postgresql/CMakeLists.txt @@ -46,13 +46,11 @@ add_arrow_lib(adbc_driver_postgresql SHARED_LINK_LIBS adbc_driver_common adbc_driver_framework - nanoarrow ${LIBPQ_LINK_LIBRARIES} STATIC_LINK_LIBS ${LIBPQ_LINK_LIBRARIES} adbc_driver_common adbc_driver_framework - nanoarrow ${LIBPQ_STATIC_LIBRARIES}) foreach(LIB_TARGET ${ADBC_LIBRARIES}) diff --git a/c/driver/sqlite/CMakeLists.txt b/c/driver/sqlite/CMakeLists.txt index d0c45b7..bb0772b 100644 --- a/c/driver/sqlite/CMakeLists.txt +++ b/c/driver/sqlite/CMakeLists.txt @@ -52,12 +52,10 @@ add_arrow_lib(adbc_driver_sqlite ${SQLite3_LINK_LIBRARIES} adbc_driver_common adbc_driver_framework - nanoarrow STATIC_LINK_LIBS ${SQLite3_LINK_LIBRARIES} adbc_driver_common adbc_driver_framework - nanoarrow ${LIBPQ_STATIC_LIBRARIES}) foreach(LIB_TARGET ${ADBC_LIBRARIES}) ================================================ FILE: ports/arrow-adbc/vcpkg.json ================================================ { "name": "arrow-adbc", "version": "16", "description": "Apache Arrow ADBC: Database Connectivity API for Arrow-based data systems", "homepage": "https://arrow.apache.org/adbc/", "license": "Apache-2.0", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "dataset", "parquet" ] }, "fmt", "nanoarrow", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bigquery": { "description": "Enable bigquery support", "supports": "!windows" }, "flightsql": { "description": "Enable flightsql support", "supports": "!windows" }, "postgresql": { "description": "Enable PostgreSQL support", "dependencies": [ "libpq" ] }, "snowflake": { "description": "Enable snowflake support", "supports": "!windows" }, "sqlite": { "description": "Enable SQLite support", "dependencies": [ "sqlite3" ] } } } ================================================ FILE: ports/arsenalgear/disable-cppcheck.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e5a01e7..ce1fa4f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,7 +47,7 @@ endif() set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILE_FLAGS}" ) # Adding cppcheck properties -if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) +if(0) set( cppcheck cppcheck "--enable=warning" "--inconclusive" "--force" "--inline-suppr" ) set_target_properties( arsenalgear PROPERTIES CXX_CPPCHECK ${cppcheck}) endif() ================================================ FILE: ports/arsenalgear/portfile.cmake ================================================ # Github config vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustWhit3/arsenalgear-cpp REF "v${VERSION}" SHA512 fd7a9029b74483dce4bac331b61fc76b3b7d2d9cf2cc43e45b3c7f1c3f458ccb3ca9cae779896a16cadf7fe6730db96ec3fa8a49972f8822b86b3f085d19fc71 HEAD_REF main PATCHES disable-cppcheck.patch ) # Main commands vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARSENALGEAR_TESTS=OFF ) vcpkg_cmake_install() # Move cmake configs vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/arsenalgear) # Remove duplicate files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/arsenalgear/vcpkg.json ================================================ { "name": "arsenalgear", "version": "2.1.1", "description": "A library containing general purpose C++ utils.", "homepage": "https://github.com/JustWhit3/arsenalgear-cpp", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/arun11299-cpp-subprocess/find-threads.patch ================================================ diff --git a/cmake/subprocess-config.cmake b/cmake/subprocess-config.cmake index 004d900..99c7ff9 100644 --- a/cmake/subprocess-config.cmake +++ b/cmake/subprocess-config.cmake @@ -1,3 +1,7 @@ +include(CMakeFindDependencyMacro) + +find_dependency(Threads) + set(SUBPROCESS_VERSION @PROJECT_VERSION@) @PACKAGE_INIT@ ================================================ FILE: ports/arun11299-cpp-subprocess/fix-cmake-config-name.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c21809e..a5b1034 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,14 +28,14 @@ if(SUBPROCESS_INSTALL) include(CMakePackageConfigHelpers) configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/subprocess-config.cmake.in" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/subprocess-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/subprocess-config.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/subprocess" PATH_VARS PROJECT_NAME PROJECT_VERSION ) write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/beman.exemplar-version.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/subprocess-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion ) @@ -50,7 +50,7 @@ if(SUBPROCESS_INSTALL) install( EXPORT subprocess - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/beman.exemplar" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/subprocess" NAMESPACE cpp-subprocess:: FILE subprocess-targets.cmake COMPONENT subprocess ================================================ FILE: ports/arun11299-cpp-subprocess/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arun11299/cpp-subprocess REF "v${VERSION}" SHA512 9901e97003276255fa4b7d97c9d1cc17f9c3a5b29a108ad3c4ed10c9794fb379a568ba587858a556630df2387cffd288e83fafeceae327aa7928635ba3121a49 HEAD_REF master PATCHES fix-cmake-config-name.patch find-threads.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSUBPROCESS_TESTS=OFF -DSUBPROCESS_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME subprocess CONFIG_PATH lib/cmake/subprocess) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MIT") ================================================ FILE: ports/arun11299-cpp-subprocess/vcpkg.json ================================================ { "name": "arun11299-cpp-subprocess", "version": "2.5", "description": "Subprocessing with modern C++ ", "homepage": "https://github.com/arun11299/cpp-subprocess", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ashes/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DragonJoker/Ashes REF c532e8ff5b6f64150d24348ef40a02df4e692017 HEAD_REF master SHA512 1c5833ce898532b3ae87961743a921223e08bd80c25ef33155ee11c241f2eaca9047f2cfca8d2661bd3302d22acabc4cf13ccccd2f25a48c4ebc9976ad193c24 ) vcpkg_from_github( OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO DragonJoker/CMakeUtils REF 988f2aab2257175e8fb15a33a3a350ff92d25b89 HEAD_REF master SHA512 961370c110e77f67ed6f426d410335636ca3b5812ba1837662cc5fea403791cafa443c1a25144b92aed5edfc5928eb6e706883ea7f1e68de1123845cb89acb86 ) file(REMOVE_RECURSE "${SOURCE_PATH}/CMake") file(COPY "${CMAKE_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/CMake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES direct3d11 ASHES_BUILD_RENDERER_D3D11 opengl ASHES_BUILD_RENDERER_OGL vulkan ASHES_BUILD_RENDERER_VKN ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DVCPKG_PACKAGE_BUILD=ON -DASHES_BUILD_TEMPLATES=OFF -DASHES_BUILD_TESTS=OFF -DASHES_BUILD_INFO=OFF -DASHES_BUILD_SAMPLES=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ashes) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ashes/vcpkg.json ================================================ { "name": "ashes", "version-date": "2023-03-12", "description": "Drop-in replacement to Vulkan's shared library, allowing the use of OpenGL or Direct3D11 in addition to Vulkan.", "homepage": "https://github.com/DragonJoker/Ashes", "license": "MIT", "supports": "!ios & !android & !uwp & !x86 & !arm32 & !static", "dependencies": [ "opengl", "spirv-cross", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ], "default-features": [ "opengl", "vulkan" ], "features": { "direct3d11": { "description": "Compiles Direct3D11 renderer." }, "opengl": { "description": "Compiles OpenGL renderer." }, "vulkan": { "description": "Compiles Vulkan renderer." } } } ================================================ FILE: ports/asio/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(asio) add_library(asio INTERFACE) find_package(Threads) if(Threads_FOUND) target_link_libraries(asio INTERFACE Threads::Threads) endif() # Export target install(TARGETS asio EXPORT asio INCLUDES DESTINATION include/ ) install(EXPORT asio DESTINATION "share/asio" FILE asio-targets.cmake NAMESPACE asio:: ) install(DIRECTORY asio/include/asio DESTINATION include/ FILES_MATCHING PATTERN "*.hpp" PATTERN "*.ipp" ) install(FILES asio/include/asio.hpp DESTINATION include/ ) set(exec_prefix [[${prefix}]]) set(package_name [[asio]]) configure_file(asio/asio.pc.in "${PROJECT_BINARY_DIR}/asio.pc" @ONLY) install(FILES "${PROJECT_BINARY_DIR}/asio.pc" DESTINATION share/pkgconfig) ================================================ FILE: ports/asio/asio-config.cmake ================================================ find_package(Threads) include("${CMAKE_CURRENT_LIST_DIR}/asio-targets.cmake") if(NOT TARGET asio) add_library(asio ALIAS asio::asio) endif() get_target_property(ASIO_INCLUDE_DIR asio::asio INTERFACE_INCLUDE_DIRECTORIES) ================================================ FILE: ports/asio/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only string(REPLACE "." "-" ref "asio-${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chriskohlhoff/asio REF "${ref}" SHA512 9374ff97bd4af7b5b41754970b2bcb468f450fee46a80c9c3344f732c64091f2ac5a73ebf4ac1831c623793c08a3c109ae90b601273c40d062bfd4f026f1d94d HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") # Always use "ASIO_STANDALONE" to avoid boost dependency vcpkg_replace_string("${SOURCE_PATH}/asio/include/asio/detail/config.hpp" "defined(ASIO_STANDALONE)" "!defined(VCPKG_DISABLE_ASIO_STANDALONE)") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPACKAGE_VERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/asio-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/asio/LICENSE_1_0.txt") ================================================ FILE: ports/asio/vcpkg.json ================================================ { "name": "asio", "version": "1.32.0", "description": "Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.", "homepage": "https://think-async.com/Asio/", "documentation": "https://think-async.com/Asio/Documentation.html", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "coroutine": { "description": "Boost.Coroutine (optional) if you use spawn() to launch coroutines", "dependencies": [ "boost-coroutine" ] }, "openssl": { "description": "OpenSSL (optional) if you use Asio's SSL support.", "dependencies": [ "openssl" ] }, "regex": { "description": "Boost.Regex (optional) if you use any of the read_until() or async_read_until() overloads that take a boost::regex parameter.", "dependencies": [ "boost-regex" ] } } } ================================================ FILE: ports/asio-grpc/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tradias/asio-grpc REF "v${VERSION}" SHA512 5fe398d9a8e30463df64eee53ea76072294c723366cb43f45466591ae6ffbd385e76d398e0a43e7c3f74be1d2c13c29503fabd6a11177696e6f8e6c2332525ae HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DASIO_GRPC_CMAKE_CONFIG_INSTALL_DIR=share/asio-grpc ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/asio-grpc/usage ================================================ The package asio-grpc can be used with different backends. find_package(asio-grpc CONFIG REQUIRED) The Boost.Asio backend. Install "boost-asio" and link with: target_link_libraries(main PRIVATE asio-grpc::asio-grpc) The standalone Asio backend. Install "asio" and link with: target_link_libraries(main PRIVATE asio-grpc::asio-grpc-standalone-asio) The libunifex backend. Install "libunifex" and link with: target_link_libraries(main PRIVATE asio-grpc::asio-grpc-unifex) The stdexec backend. Install "stdexec" and link with: target_link_libraries(main PRIVATE asio-grpc::asio-grpc-stdexec) ================================================ FILE: ports/asio-grpc/vcpkg.json ================================================ { "name": "asio-grpc", "version": "3.6.0", "description": "Asynchronous gRPC with Asio/unified executors", "homepage": "https://github.com/Tradias/asio-grpc", "license": "Apache-2.0", "dependencies": [ "grpc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/asiochan/fix-10.patch ================================================ diff --git a/include/asiochan/channel.hpp b/include/asiochan/channel.hpp index 4ffd88c..1af7547 100644 --- a/include/asiochan/channel.hpp +++ b/include/asiochan/channel.hpp @@ -55,6 +55,11 @@ namespace asiochan return *shared_state_; } + [[nodiscard]] auto shared_state() const noexcept -> const shared_state_type& + { + return *shared_state_; + } + [[nodiscard]] friend auto operator==( channel_base const& lhs, channel_base const& rhs) noexcept -> bool ================================================ FILE: ports/asiochan/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MiSo1289/asiochan REF 837d7eb78ca9796af800ca3cd91ce0a8fe297785 SHA512 58e1e3291dc980ed59b0bc1fdcaa35db007e0044f4cbd352917caefa2d30b0c76a3db180091c1895867a3d026ce69f3a82b33dde3970cba5bef596620a2b20f8 HEAD_REF master PATCHES fix-10.patch ) file(COPY "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/asiochan/usage ================================================ asiochan is header-only and can be used from CMake via: find_path(ASIOCHAN_INCLUDE_DIRS "asiochan/asiochan.hpp") target_include_directories(main PRIVATE ${ASIOCHAN_INCLUDE_DIRS}) By default asiochan depend on boost/asio. If you need use standalone asio instead, please define micro ASIOCHAN_USE_STANDALONE_ASIO. For example: find_path(ASIOCHAN_INCLUDE_DIRS "asiochan/asiochan.hpp") target_compile_definitions(main PRIVATE ASIOCHAN_USE_STANDALONE_ASIO) target_include_directories(main PRIVATE ${ASIOCHAN_INCLUDE_DIRS}) ================================================ FILE: ports/asiochan/vcpkg.json ================================================ { "name": "asiochan", "version-date": "2022-11-25", "port-version": 1, "description": "C++20 coroutine channels for ASIO", "homepage": "https://github.com/MiSo1289/asiochan", "license": "MIT" } ================================================ FILE: ports/asiosdk/Findasiosdk.cmake ================================================ if(WIN32) else(WIN32) message(FATAL_ERROR "Findasiosdk.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}" ) endif(WIN32) file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(asiosdk) is deprecated.\n${usage}") # if this script is invoked multiple times, we end up adding # "asiosdk" to the directory multiple times, leading to incorrect # include paths if (ASIOSDK_ROOT_DIR) return() endif() find_path( ASIOSDK_ROOT_DIR asiosdk ) if (NOT "${ASIOSDK_ROOT_DIR}" STREQUAL "") set(ASIOSDK_ROOT_DIR ${ASIOSDK_ROOT_DIR}/asiosdk ) endif() find_path(ASIOSDK_INCLUDE_DIR asio.h PATHS ${ASIOSDK_ROOT_DIR}/common ) if (NOT "${ASIOSDK_ROOT_DIR}" STREQUAL "") set (ASIOSDK_INCLUDE_DIR ${ASIOSDK_ROOT_DIR}/common ${ASIOSDK_ROOT_DIR}/host ${ASIOSDK_ROOT_DIR}/host/pc ) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(ASIOSDK DEFAULT_MSG ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR) MARK_AS_ADVANCED( ASIOSDK_ROOT_DIR ASIOSDK_INCLUDE_DIR ) ================================================ FILE: ports/asiosdk/fix-new-delete-mismatch.patch ================================================ diff --git a/host/pc/asiolist.cpp b/host/pc/asiolist.cpp index 320a98a..4bdc789 100644 --- a/host/pc/asiolist.cpp +++ b/host/pc/asiolist.cpp @@ -154,7 +154,7 @@ static void deleteDrvStruct (LPASIODRVSTRUCT lpdrv) iasio = (IASIO *)lpdrv->asiodrv; iasio->Release(); } - delete lpdrv; + delete[] lpdrv; } } ================================================ FILE: ports/asiosdk/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://download.steinberg.net/sdk_downloads/ASIO-SDK_2.3.4_2025-10-15.zip" FILENAME "ASIO-SDK_2.3.4_2025-10-15-57de2c0cd0df.zip" SHA512 57de2c0cd0df0783275987e08255abfa49da12982f9d462ac40b7f57300c36e024dcb65d100b799fb3c96a9c7c5ee86e61ceb0e68d2839324206c1629d3905ed ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES fix-new-delete-mismatch.patch ) file(INSTALL "${SOURCE_PATH}/asio/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/asio") file(INSTALL "${SOURCE_PATH}/common/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/common") file(INSTALL "${SOURCE_PATH}/driver/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/driver") file(INSTALL "${SOURCE_PATH}/host/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/host") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file( INSTALL "${SOURCE_PATH}/changes.txt" "${SOURCE_PATH}/Steinberg ASIO Logo Artwork" "${SOURCE_PATH}/Steinberg ASIO Usage Guidelines.pdf" "${SOURCE_PATH}/Steinberg ASIO Licensing Agreement.pdf" "${SOURCE_PATH}/Steinberg ASIO SDK 2.3.pdf" "${SOURCE_PATH}/README.md" "${CMAKE_CURRENT_LIST_DIR}/Findasiosdk.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-asiosdk-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-asiosdk") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/asiosdk/unofficial-asiosdk-config.cmake ================================================ if(NOT WIN32) message(FATAL_ERROR "unofficial-asiosdk-config.cmake: Unsupported platform ${CMAKE_SYSTEM_NAME}") endif() if(NOT TARGET unofficial::asiosdk::host) find_path(asiosdk_ROOT_DIR asiosdk REQUIRED) set(asiosdk_ROOT_DIR "${asiosdk_ROOT_DIR}/asiosdk") add_library(unofficial::asiosdk::host INTERFACE IMPORTED) target_sources(unofficial::asiosdk::host INTERFACE "${asiosdk_ROOT_DIR}/common/asio.cpp" "${asiosdk_ROOT_DIR}/host/asiodrivers.cpp" "${asiosdk_ROOT_DIR}/host/pc/asiolist.cpp" ) target_include_directories(unofficial::asiosdk::host INTERFACE "${asiosdk_ROOT_DIR}/common" "${asiosdk_ROOT_DIR}/host" "${asiosdk_ROOT_DIR}/host/pc" ) target_link_libraries(unofficial::asiosdk::host INTERFACE ole32 uuid) unset(asiosdk_ROOT_DIR) endif() ================================================ FILE: ports/asiosdk/usage ================================================ asiosdk provides CMake targets: find_package(unofficial-asiosdk CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::asiosdk::host) ================================================ FILE: ports/asiosdk/vcpkg-cmake-wrapper.cmake ================================================ set(ASIOSDK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${ASIOSDK_PREV_MODULE_PATH}) ================================================ FILE: ports/asiosdk/vcpkg.json ================================================ { "name": "asiosdk", "version": "2.3.4", "port-version": 2, "description": "ASIO is a low latency audio API from Steinberg.", "homepage": "https://www.steinberg.net/developers/asiosdk-open/", "supports": "windows & !uwp" } ================================================ FILE: ports/asmjit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO asmjit/asmjit REF 9eb6edbf711ceb25346ee40bae68b40a4505cdf5 # commited on 2025-05-08 SHA512 9c3567634205bf0c64462833b28b6bbf1c1965216aa09872196048953417fab18822d94d70d112f7a506396a5b94716d714316dd2559c3509edf1273650768b9 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ASMJIT_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DASMJIT_STATIC=${ASMJIT_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/asmjit) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/asmjit/core/api-config.h" "#if !defined(ASMJIT_STATIC)" "#if 0" ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/asmjit/vcpkg.json ================================================ { "name": "asmjit", "version-date": "2025-10-13", "description": "AsmJit is a lightweight library for machine code generation written in C++ language", "homepage": "https://asmjit.com/", "documentation": "https://asmjit.com/doc/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/asmtk/fix-link-amsjit.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d348072..d5b6be9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,7 +172,7 @@ if (NOT ASMTK_EMBED) $<$>:${ASMTK_PRIVATE_CFLAGS_REL}>) if(ASMJIT_EXTERNAL) - target_link_libraries(asmtk PUBLIC ${ASMJIT_LIBRARY}) + target_link_libraries(asmtk PUBLIC asmjit::asmjit) find_path(ASMJIT_INCLUDE_DIR NAMES asmjit/asmjit.h) target_include_directories(asmtk PRIVATE ${ASMJIT_INCLUDE_DIR}) else() ================================================ FILE: ports/asmtk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO asmjit/asmtk REF 425b108d3afe510f8b94ca5523cd31ae29381422 # accessed on 2022-11-06 SHA512 d825f488c66dca9ca4c3279992e4ea36a4d1b7ad65fa3e0c70b151ce0d2b1f9b5ad053ff1d447da38475bf843fe3b130706e3c9916a64f76560add9c8d796a5b HEAD_REF master PATCHES fix-link-amsjit.patch ) set(ASMJIT_EXTERNAL ON) set(ASMTK_EMBED OFF) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ASMTK_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DASMTK_STATIC=${ASMTK_STATIC} -DASMJIT_EXTERNAL=${ASMJIT_EXTERNAL} -DASMTK_EMBED=${ASMTK_EMBED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/asmtk) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/asmtk/globals.h" "!defined(ASMTK_STATIC)" "0") endif() set(cmakefile "${CURRENT_PACKAGES_DIR}/share/asmtk/asmtk-config.cmake") file(READ "${cmakefile}" contents) file(WRITE "${cmakefile}" "include(CMakeFindDependencyMacro)\nfind_dependency(asmjit)\n${contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/asmtk/vcpkg.json ================================================ { "name": "asmtk", "version-date": "2022-11-06", "port-version": 1, "description": "Assembler toolkit based on AsmJit ", "homepage": "https://github.com/asmjit/asmtk", "supports": "!arm", "dependencies": [ "asmjit", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/asock/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jeremyko/ASockLib REF "${VERSION}" SHA512 6c05cd7796a7a2b788e304a7ecd419f64f9b80368f941e5730c68cb1e439058cac03ce06426c166da7c144b58174942834159cbd271cc2612e5c9cd210788411 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJEREMYKO_ASOCK_BUILD_TESTS=OFF -DJEREMYKO_ASOCK_BUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/asock") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/asock/LICENSE" "${CURRENT_PACKAGES_DIR}/share/asock/README.md") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/asock/vcpkg.json ================================================ { "name": "asock", "version": "1.0.7", "description": "A simple portable socket library", "homepage": "https://github.com/jeremyko/ASockLib", "license": "MIT", "supports": "windows | linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/assimp/build_fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1242bba..eba5242 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,7 +354,6 @@ ELSEIF(MSVC) ENDIF() # supress warning for double to float conversion if Double precision is activated ADD_COMPILE_OPTIONS(/wd4244) - SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /D_DEBUG /Zi /Od") # Allow user to disable PDBs if(ASSIMP_INSTALL_PDB) SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi") @@ -362,7 +361,7 @@ ELSEIF(MSVC) elseif((GENERATOR_IS_MULTI_CONFIG) OR (CMAKE_BUILD_TYPE MATCHES Release)) message("-- MSVC PDB generation disabled. Release binary will not be debuggable.") endif() - if(NOT CMAKE_CXX_FLAGS MATCHES "/utf-8") + if(NOT CMAKE_CXX_FLAGS MATCHES /utf-8) # Source code is encoded in UTF-8 ADD_COMPILE_OPTIONS(/source-charset:utf-8) endif() @@ -493,7 +492,7 @@ ENDIF() set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") -IF(ASSIMP_HUNTER_ENABLED) +IF(0) SET(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-hunter-config.cmake.in") SET(NAMESPACE "${PROJECT_NAME}::") @@ -501,7 +500,7 @@ IF(ASSIMP_HUNTER_ENABLED) SET(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") SET(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") ELSE() - SET(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}") + set(CONFIG_INSTALL_DIR "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp") SET(CMAKE_CONFIG_TEMPLATE_FILE "cmake-modules/assimp-plain-config.cmake.in") string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWERCASE) SET(NAMESPACE "${PROJECT_NAME_LOWERCASE}::") @@ -516,7 +515,7 @@ set(INCLUDE_INSTALL_DIR "include") include(CMakePackageConfigHelpers) # Note: PROJECT_VERSION is used as a VERSION -write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion) +write_basic_package_version_file("${VERSION_CONFIG}" COMPATIBILITY AnyNewerVersion) configure_package_config_file( ${CMAKE_CONFIG_TEMPLATE_FILE} @@ -545,14 +544,13 @@ ENDIF() # Search for external dependencies, and build them from source if not found # Search for zlib -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(ZLIB) - find_package(ZLIB CONFIG REQUIRED) +IF(1) + find_package(ZLIB REQUIRED) add_definitions(-DASSIMP_BUILD_NO_OWN_ZLIB) SET(ZLIB_FOUND TRUE) - SET(ZLIB_LIBRARIES ZLIB::zlib) - SET(ASSIMP_BUILD_MINIZIP TRUE) + set(ZLIB_LIBRARIES ZLIB::ZLIB) + set(ASSIMP_BUILD_MINIZIP OFF) ELSE() # If the zlib is already found outside, add an export in case assimpTargets can't find it. IF( ZLIB_FOUND AND ASSIMP_INSTALL) @@ -596,13 +594,13 @@ ELSE() INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) ENDIF() -IF( NOT IOS ) +IF( 0 ) IF( NOT ASSIMP_BUILD_MINIZIP ) use_pkgconfig(UNZIP minizip) ENDIF() ELSE () IF( NOT BUILD_SHARED_LIBS ) - IF( NOT ASSIMP_BUILD_MINIZIP ) + IF( 0 ) USE_PKGCONFIG(UNZIP minizip) ENDIF() ENDIF () diff --git a/cmake-modules/assimp-plain-config.cmake.in b/cmake-modules/assimp-plain-config.cmake.in index 6551dcb..dd65b0b 100644 --- a/cmake-modules/assimp-plain-config.cmake.in +++ b/cmake-modules/assimp-plain-config.cmake.in @@ -1,5 +1,17 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if(NOT "@BUILD_SHARED_LIBS@") + find_dependency(zip CONFIG) + find_dependency(unofficial-minizip CONFIG) + find_dependency(pugixml CONFIG) + find_dependency(poly2tri CONFIG) + find_dependency(polyclipping CONFIG) + find_dependency(RapidJSON CONFIG) + find_dependency(Stb MODULE) + find_dependency(utf8cpp CONFIG) + find_dependency(ZLIB) +endif() include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") set(ASSIMP_ROOT_DIR ${PACKAGE_PREFIX_DIR}) diff --git a/code/AssetLib/3MF/D3MFExporter.cpp b/code/AssetLib/3MF/D3MFExporter.cpp index 71e3535..b8e5de3 100644 --- a/code/AssetLib/3MF/D3MFExporter.cpp +++ b/code/AssetLib/3MF/D3MFExporter.cpp @@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifdef ASSIMP_USE_HUNTER #include #else -#include +#include #endif namespace Assimp { diff --git a/code/AssetLib/Blender/BlenderTessellator.h b/code/AssetLib/Blender/BlenderTessellator.h index d6487cb..b56e271 100644 --- a/code/AssetLib/Blender/BlenderTessellator.h +++ b/code/AssetLib/Blender/BlenderTessellator.h @@ -143,7 +143,7 @@ namespace Assimp #if ASSIMP_BLEND_WITH_POLY_2_TRI -#include "contrib/poly2tri/poly2tri/poly2tri.h" +#include namespace Assimp { diff --git a/code/AssetLib/IFC/IFCGeometry.cpp b/code/AssetLib/IFC/IFCGeometry.cpp index d3666d5..795f366 100644 --- a/code/AssetLib/IFC/IFCGeometry.cpp +++ b/code/AssetLib/IFC/IFCGeometry.cpp @@ -45,8 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "IFCUtil.h" #include "Common/PolyTools.h" #include "PostProcessing/ProcessHelper.h" -#include "contrib/poly2tri/poly2tri/poly2tri.h" -#include "contrib/clipper/clipper.hpp" +#include +#include #include #include diff --git a/code/AssetLib/IFC/IFCOpenings.cpp b/code/AssetLib/IFC/IFCOpenings.cpp index 068ef40..be116f8 100644 --- a/code/AssetLib/IFC/IFCOpenings.cpp +++ b/code/AssetLib/IFC/IFCOpenings.cpp @@ -47,8 +47,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "IFCUtil.h" #include "Common/PolyTools.h" #include "PostProcessing/ProcessHelper.h" -#include "contrib/poly2tri/poly2tri/poly2tri.h" -#include "contrib/clipper/clipper.hpp" +#include +#include #include #include diff --git a/code/AssetLib/MMD/MMDPmxParser.cpp b/code/AssetLib/MMD/MMDPmxParser.cpp index 73d6b6c..69529ba 100644 --- a/code/AssetLib/MMD/MMDPmxParser.cpp +++ b/code/AssetLib/MMD/MMDPmxParser.cpp @@ -41,7 +41,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include "MMDPmxParser.h" #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include namespace pmx diff --git a/code/AssetLib/SIB/SIBImporter.cpp b/code/AssetLib/SIB/SIBImporter.cpp index 8e05846..9860c5f 100644 --- a/code/AssetLib/SIB/SIBImporter.cpp +++ b/code/AssetLib/SIB/SIBImporter.cpp @@ -56,7 +56,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #include #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include #include #include diff --git a/code/AssetLib/STEPParser/STEPFileEncoding.cpp b/code/AssetLib/STEPParser/STEPFileEncoding.cpp index 7508e90..281c387 100644 --- a/code/AssetLib/STEPParser/STEPFileEncoding.cpp +++ b/code/AssetLib/STEPParser/STEPFileEncoding.cpp @@ -44,7 +44,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "STEPFileEncoding.h" #include -#include "utf8.h" +#include "utf8cpp/utf8.h" #include diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index de2f650..e605bf8 100644 --- a/code/CMakeLists.txt +++ b/code/CMakeLists.txt @@ -1113,8 +1113,7 @@ ELSE() # IF (ASSIMP_BUILD_USD_IMPORTER) ENDIF() # IF (ASSIMP_BUILD_USD_IMPORTER) # pugixml -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(pugixml) +IF(1) find_package(pugixml CONFIG REQUIRED) ELSEIF(NOT TARGET pugixml::pugixml) SET( Pugixml_SRCS @@ -1127,30 +1126,27 @@ ELSEIF(NOT TARGET pugixml::pugixml) ENDIF() # utf8 -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(utf8) +IF(1) find_package(utf8cpp CONFIG REQUIRED) ELSE() INCLUDE_DIRECTORIES("../contrib/utf8cpp/source") ENDIF() # polyclipping -#IF(ASSIMP_HUNTER_ENABLED) -# hunter_add_package(polyclipping) -# find_package(polyclipping CONFIG REQUIRED) -#ELSE() +if(1) + find_package(polyclipping CONFIG REQUIRED) +ELSE() SET( Clipper_SRCS ../contrib/clipper/clipper.hpp ../contrib/clipper/clipper.cpp ) SOURCE_GROUP( Contrib\\Clipper FILES ${Clipper_SRCS}) -#ENDIF() +ENDIF() # poly2tri -#IF(ASSIMP_HUNTER_ENABLED) -# hunter_add_package(poly2tri) -# find_package(poly2tri CONFIG REQUIRED) -#ELSE() +IF(1) + find_package(poly2tri CONFIG REQUIRED) +ELSE() SET( Poly2Tri_SRCS ../contrib/poly2tri/poly2tri/common/shapes.cc ../contrib/poly2tri/poly2tri/common/shapes.h @@ -1165,11 +1161,10 @@ ENDIF() ../contrib/poly2tri/poly2tri/sweep/sweep_context.h ) SOURCE_GROUP( Contrib\\Poly2Tri FILES ${Poly2Tri_SRCS}) -#ENDIF() +ENDIF() # minizip/unzip -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(minizip) +IF(1) find_package(minizip CONFIG REQUIRED) ELSE() SET( unzip_SRCS @@ -1185,8 +1180,7 @@ ENDIF() # zip (https://github.com/kuba--/zip) separate_arguments(ASSIMP_EXPORTERS_LIST UNIX_COMMAND ${ASSIMP_EXPORTERS_ENABLED}) IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST) - IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(zip) + IF(1) find_package(zip CONFIG REQUIRED) ELSE() SET( ziplib_SRCS @@ -1207,7 +1201,7 @@ IF(3MF IN_LIST ASSIMP_EXPORTERS_LIST) ENDIF() # openddlparser -IF(ASSIMP_HUNTER_ENABLED) +IF(0) hunter_add_package(openddlparser) find_package(openddlparser CONFIG REQUIRED) ELSE() @@ -1230,7 +1224,7 @@ ELSE() ENDIF() # Open3DGC -IF(ASSIMP_HUNTER_ENABLED) +IF(0) # Nothing to do, not available in Hunter yet. ELSE() SET ( open3dgc_SRCS @@ -1265,6 +1259,7 @@ ELSE() ../contrib/Open3DGC/o3dgcVector.inl ) SOURCE_GROUP( Contrib\\open3dgc FILES ${open3dgc_SRCS}) + INCLUDE_DIRECTORIES("../contrib") ENDIF() # Check dependencies for glTF importer with Open3DGC-compression. @@ -1273,7 +1268,7 @@ ENDIF() IF (NOT WIN32) FIND_PACKAGE(RT QUIET) ENDIF () -IF (NOT ASSIMP_HUNTER_ENABLED AND (RT_FOUND OR WIN32)) +IF (1) SET( ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC 1 ) ADD_DEFINITIONS( -DASSIMP_IMPORTER_GLTF_USE_OPEN3DGC=1 ) ELSE () @@ -1283,9 +1278,9 @@ ELSE () ENDIF () # RapidJSON -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(RapidJSON) +IF(1) find_package(RapidJSON CONFIG REQUIRED) + ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1) ELSE() INCLUDE_DIRECTORIES("../contrib/rapidjson/include") ADD_DEFINITIONS( -DRAPIDJSON_HAS_STDSTRING=1) @@ -1296,9 +1291,8 @@ ELSE() ENDIF() # stb -IF(ASSIMP_HUNTER_ENABLED) - hunter_add_package(stb) - find_package(stb CONFIG REQUIRED) +IF(1) + find_package(Stb REQUIRED) ELSE() SET( stb_SRCS ../contrib/stb/stb_image.h @@ -1315,7 +1309,7 @@ if(MSVC10) endif() endif() -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(0) if (UNZIP_FOUND) SET (unzip_compile_SRCS "") else () @@ -1373,7 +1367,7 @@ SET( assimp_src ) ADD_DEFINITIONS( -DOPENDDLPARSER_BUILD ) -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(1) INCLUDE_DIRECTORIES( ${IRRXML_INCLUDE_DIR} ../contrib/openddlparser/include @@ -1476,21 +1470,24 @@ TARGET_INCLUDE_DIRECTORIES ( assimp PUBLIC $ $ $ + PRIVATE + ${Stb_INCLUDE_DIR} ) -IF(ASSIMP_HUNTER_ENABLED) +IF(1) TARGET_LINK_LIBRARIES(assimp - PUBLIC - openddlparser::openddl_parser - minizip::minizip - ZLIB::zlib - RapidJSON::rapidjson - utf8cpp + PRIVATE + polyclipping::polyclipping + ${OPENDDL_PARSER_LIBRARIES} + poly2tri::poly2tri + unofficial::minizip::minizip + ZLIB::ZLIB + rapidjson + utf8cpp::utf8cpp pugixml - stb::stb ) if(TARGET zip::zip) - target_link_libraries(assimp PUBLIC zip::zip) + target_link_libraries(assimp PRIVATE zip::zip) endif() if (ASSIMP_BUILD_DRACO) @@ -1513,9 +1510,9 @@ if(ASSIMP_ANDROID_JNIIOSYSTEM) endif() IF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER) - TARGET_LINK_LIBRARIES(assimp optimized ${C4D_RELEASE_LIBRARIES}) - TARGET_LINK_LIBRARIES(assimp debug ${C4D_DEBUG_LIBRARIES}) - TARGET_LINK_LIBRARIES(assimp ${C4D_EXTRA_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE optimized ${C4D_RELEASE_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE debug ${C4D_DEBUG_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${C4D_EXTRA_LIBRARIES}) ENDIF () if( MSVC ) @@ -1556,13 +1553,13 @@ if (MINGW) ARCHIVE_OUTPUT_NAME assimp ) if (NOT BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES ( assimp -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip. + TARGET_LINK_LIBRARIES ( assimp PRIVATE -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -lwinpthread ) # winpthread is for libminizip. endif () endif() if (${CMAKE_SYSTEM_NAME} MATCHES "WindowsStore") target_compile_definitions(assimp PUBLIC WindowsStore) - TARGET_LINK_LIBRARIES(assimp advapi32) + TARGET_LINK_LIBRARIES(assimp PRIVATE advapi32) endif() SET_TARGET_PROPERTIES( assimp PROPERTIES @@ -1592,14 +1589,14 @@ ENDIF() # Build against external unzip, or add ../contrib/unzip so # assimp can #include "unzip.h" -IF(NOT ASSIMP_HUNTER_ENABLED) +IF(0) if (UNZIP_FOUND) INCLUDE_DIRECTORIES(${UNZIP_INCLUDE_DIRS}) # TODO if cmake required version has been updated to >3.12.0, collapse this to the second case only if(${CMAKE_VERSION} VERSION_LESS "3.12.0") - TARGET_LINK_LIBRARIES(assimp ${UNZIP_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LIBRARIES}) else() - TARGET_LINK_LIBRARIES(assimp ${UNZIP_LINK_LIBRARIES}) + TARGET_LINK_LIBRARIES(assimp PRIVATE ${UNZIP_LINK_LIBRARIES}) endif() else () INCLUDE_DIRECTORIES("../") @@ -1608,7 +1605,7 @@ ENDIF() # Add RT-extension library for glTF importer with Open3DGC-compression. IF (RT_FOUND AND ASSIMP_IMPORTER_GLTF_USE_OPEN3DGC) - TARGET_LINK_LIBRARIES(assimp rt) + TARGET_LINK_LIBRARIES(assimp PRIVATE rt) ENDIF () IF(ASSIMP_INSTALL) diff --git a/code/Common/BaseImporter.cpp b/code/Common/BaseImporter.cpp index 1894ad8..e010080 100644 --- a/code/Common/BaseImporter.cpp +++ b/code/Common/BaseImporter.cpp @@ -354,7 +354,7 @@ std::string BaseImporter::GetExtension(const std::string &pFile) { return false; } -#include "utf8.h" +#include "utf8cpp/utf8.h" // ------------------------------------------------------------------------------------------------ // Convert to UTF8 data diff --git a/code/Common/StbCommon.h b/code/Common/StbCommon.h index 6cec216..8c129f4 100644 --- a/code/Common/StbCommon.h +++ b/code/Common/StbCommon.h @@ -53,7 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #pragma clang diagnostic ignored "-Wunused-function" #endif -#ifndef STB_USE_HUNTER +#if 0 /* Use prefixed names for the symbols from stb_image as it is a very commonly embedded library. Including vanilla stb_image symbols causes duplicate symbol problems if assimp is linked statically together with another library or executable that also embeds stb_image. @@ -113,7 +113,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define stbi_zlib_decode_noheader_malloc assimp_stbi_zlib_decode_noheader_malloc #endif -#include "stb/stb_image.h" +#include "stb_image.h" #if _MSC_VER #pragma warning(pop) diff --git a/code/Common/ZipArchiveIOSystem.cpp b/code/Common/ZipArchiveIOSystem.cpp index e2234e2..6258717 100644 --- a/code/Common/ZipArchiveIOSystem.cpp +++ b/code/Common/ZipArchiveIOSystem.cpp @@ -54,7 +54,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifdef ASSIMP_USE_HUNTER # include #else -# include +# include #endif namespace Assimp { ================================================ FILE: ports/assimp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO assimp/assimp REF "v${VERSION}" SHA512 f3639e3964ea8ef41ce684eb1b764ece79f64a15ecae068846c5bc0853780e39f600776027d8843e6a3f47988daf067a164161a58f76ec6de13027ae1e473bfb HEAD_REF master PATCHES build_fixes.patch ) file(REMOVE "${SOURCE_PATH}/cmake-modules/FindZLIB.cmake") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/clipper") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/draco") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/gtest") #file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/Open3DGC") #TODO #file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/openddlparser") #TODO file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/poly2tri") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/pugixml") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/rapidjson") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/stb") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/unzip") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/utf8cpp") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/zip") file(REMOVE_RECURSE "${SOURCE_PATH}/contrib/zlib") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DASSIMP_BUILD_ZLIB=OFF -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_VRML_IMPORTER=OFF # requires meshlab -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF -DASSIMP_IGNORE_GIT_HASH=ON -DASSIMP_INSTALL_PDB=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/assimp") vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) set(VCVER vc140 vc141 vc142 vc143) set(CRT mt md) set(DBG_NAMES) set(REL_NAMES) foreach(_ver IN LISTS VCVER) foreach(_crt IN LISTS CRT) list(APPEND DBG_NAMES assimp-${_ver}-${_crt}d) list(APPEND REL_NAMES assimp-${_ver}-${_crt}) endforeach() endforeach() endif() find_library(ASSIMP_REL NAMES assimp ${REL_NAMES} PATHS "${CURRENT_PACKAGES_DIR}/lib" NO_DEFAULT_PATH) find_library(ASSIMP_DBG NAMES assimp assimpd ${DBG_NAMES} PATHS "${CURRENT_PACKAGES_DIR}/debug/lib" NO_DEFAULT_PATH) if(ASSIMP_REL) get_filename_component(ASSIMP_NAME_REL "${ASSIMP_REL}" NAME_WLE) string(REGEX REPLACE "^lib(.*)" "\\1" ASSIMP_NAME_REL "${ASSIMP_NAME_REL}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "-lassimp" "-l${ASSIMP_NAME_REL}" IGNORE_UNCHANGED) endif() if(ASSIMP_DBG) get_filename_component(ASSIMP_NAME_DBG "${ASSIMP_DBG}" NAME_WLE) string(REGEX REPLACE "^lib(.*)" "\\1" ASSIMP_NAME_DBG "${ASSIMP_NAME_DBG}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "-lassimp" "-l${ASSIMP_NAME_DBG}") endif() if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") set(assimp_PC_REQUIRES "draco polyclipping pugixml minizip") set(assimp_LIBS_REQUIRES "-lpoly2tri") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "Libs:" "Requires.private: ${assimp_PC_REQUIRES}\nLibs:") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/assimp.pc" "Libs.private:" "Libs.private: ${assimp_LIBS_REQUIRES}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "Libs:" "Requires.private: ${assimp_PC_REQUIRES}\nLibs:") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/assimp.pc" "Libs.private:" "Libs.private: ${assimp_LIBS_REQUIRES}") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/assimp/vcpkg.json ================================================ { "name": "assimp", "version": "6.0.4", "description": "The Open Asset import library", "homepage": "https://github.com/assimp/assimp", "license": "BSD-3-Clause", "dependencies": [ "draco", "jhasse-poly2tri", "kubazip", "minizip", "polyclipping", "pugixml", "rapidjson", "stb", "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/astr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO a4z/astr REF "v${VERSION}" SHA512 795f63ceb98959e19285edbb0480a8c5ea8ba3e9129c44738289b53c05a13356e9971263cfbcd89405a4fed6127998a70a0119989d7bcf3c8c69b5503cf6e90f HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/astr/usage ================================================ astr provides CMake targets: find_package(astr CONFIG REQUIRED) target_link_libraries(main PRIVATE a4z::astr) ================================================ FILE: ports/astr/vcpkg.json ================================================ { "name": "astr", "version": "0.3.1", "description": "Compile-time array string header-only library.", "homepage": "https://github.com/a4z/astr", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/async-mqtt/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) #header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO redboltz/async_mqtt REF "${VERSION}" SHA512 21036d645978a6fddacc8ec81aea09c7657055e9a39353fc45fc9cbf9df4704a6b5ace240d8690951a19bbdbfe47ab47818e08755a2f511df2df6c11443677e5 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tls ASYNC_MQTT_USE_TLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DASYNC_MQTT_BUILD_TOOLS=OFF -DASYNC_MQTT_BUILD_EXAMPLES=OFF -DASYNC_MQTT_BUILD_UNIT_TESTS=OFF -DASYNC_MQTT_BUILD_SYSTEM_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME async_mqtt_iface CONFIG_PATH "lib/cmake/async_mqtt_iface") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/async-mqtt/vcpkg.json ================================================ { "name": "async-mqtt", "version": "10.3.0", "description": "Header-only Asynchronous MQTT communication library for C++17 based on Boost.Asio.", "homepage": "https://github.com/redboltz/async_mqtt", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.84.0" }, { "name": "boost-asio", "version>=": "1.84.0" }, { "name": "boost-assert", "version>=": "1.84.0" }, { "name": "boost-beast", "version>=": "1.84.0" }, { "name": "boost-container", "version>=": "1.84.0" }, { "name": "boost-container-hash", "version>=": "1.84.0" }, { "name": "boost-date-time", "version>=": "1.84.0" }, { "name": "boost-endian", "version>=": "1.84.0" }, { "name": "boost-filesystem", "version>=": "1.84.0" }, { "name": "boost-hana", "version>=": "1.84.0" }, { "name": "boost-lexical-cast", "version>=": "1.84.0" }, { "name": "boost-log", "version>=": "1.84.0" }, { "name": "boost-multi-index", "version>=": "1.84.0" }, { "name": "boost-numeric-conversion", "version>=": "1.84.0" }, { "name": "boost-preprocessor", "version>=": "1.84.0" }, { "name": "boost-system", "version>=": "1.84.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "tls" ], "features": { "tls": { "description": "Enable TLS support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/async-simple/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alibaba/async_simple REF "${VERSION}" SHA512 0b4e15169e546b590d2386ff5fa51efb207b759474347445ba7e2fdbd1273b61c0a653af5fecf85c3efbcacf09f5c4391c3bc1257c786eb8b7c837db60a9617f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DASYNC_SIMPLE_ENABLE_TESTS=OFF -DASYNC_SIMPLE_BUILD_DEMO_EXAMPLE=OFF -DASYNC_SIMPLE_ENABLE_ASAN=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Benchmark=ON -DCMAKE_DISABLE_FIND_PACKAGE_Aio=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME async_simple) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(GLOB LIBS "${CURRENT_PACKAGES_DIR}/debug/lib/*async_simple*") list(LENGTH LIBS LIB_CNT) if (LIB_CNT EQUAL 0) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/async-simple/usage ================================================ async-simple provides CMake targets: find_package(async_simple CONFIG REQUIRED) target_link_libraries(main PRIVATE async_simple::async_simple_static) # Or you can use header-only version(async_simple::uthread is not allowed to use in this version) target_link_libraries(main PRIVATE async_simple::async_simple_header_only) # Or you can also use dynamic linkage: target_link_libraries(main PRIVATE async_simple::async_simple) ================================================ FILE: ports/async-simple/vcpkg.json ================================================ { "name": "async-simple", "version": "1.4", "description": "Simple, light-weight and easy-to-use asynchronous components.", "homepage": "https://github.com/alibaba/async_simple", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/asynch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO naasking/async.h REF 080cbb257ab60ad06008c574d7feb94f8478efdd #Commits on Sep 21, 2019 SHA512 4fe0229ffd8b3c6438294a419ccb213b4d28a0a04d834406b67120e9bc90d339ec91f3b3eb52d4e27c1f12add41e9347bffbea47868b0d7a1da40f784d113c71 HEAD_REF master ) # Copy the single reusable library header file(COPY ${SOURCE_PATH}/async/async.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/asynch/vcpkg.json ================================================ { "name": "asynch", "version-date": "2019-09-21", "port-version": 3, "description": "Async.h - asynchronous, stackless subroutines.", "homepage": "https://github.com/naasking/async.h" } ================================================ FILE: ports/asyncplusplus/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Amanieu/asyncplusplus REF v1.2 SHA512 4b59ef805d4683631ef2ba51039deb210d9ba28b35021489560b0f2da6f75a68da8cb676807f9831047c997673556f69fdca0ae2081996274015e708fd6ff55e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake PACKAGE_NAME async++) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/asyncplusplus/vcpkg.json ================================================ { "name": "asyncplusplus", "version": "1.2", "description": "Async++ is a lightweight concurrency framework for C++11", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/at-spi2-atk/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 2f40ecbc55b0fbaa57ade952a75583bc8fbfde234cce9248489e9ae06e0597d98c2f4c77d8279758dec29da97e06cde5708d30a1238d91bebd023b2320f38528 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/at-spi2-atk/vcpkg.json ================================================ { "name": "at-spi2-atk", "version": "2.38.0", "port-version": 2, "description": "Implementation of the ATK interfaces in terms of the libatspi2 API.", "homepage": "https://www.gtk.org/", "license": null, "supports": "linux", "dependencies": [ "at-spi2-core", "atk", { "name": "dbus", "platform": "linux" }, "libxml2", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/at-spi2-core/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libxi-dev\n libxtst-dev\n\nThese can be installed on Ubuntu systems via apt-get install libxi-dev libxtst-dev") endif() string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 8d85df75f886c4a19d829d14e5a9412b607b9cbe2d1b7ecb95b4082602f0624e90747fe955f96d378c3a52bc0e732074b97008bb34e6acc2722c7056b2c0504e ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dintrospection=no ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/atspi-2.pc" "-DG_LOG_DOMAIN=\"dbind\"" "" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/atspi-2.pc" "-DG_LOG_DOMAIN=\"dbind\"" "" ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/defaults") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/at-spi2-core/vcpkg.json ================================================ { "name": "at-spi2-core", "version": "2.44.1", "port-version": 5, "description": "Base DBus XML interfaces for accessibility, the accessibility registry daemon, and atspi library.", "homepage": "https://www.gtk.org/", "license": null, "supports": "linux", "dependencies": [ { "name": "dbus", "platform": "linux" }, "glib", { "name": "glib", "host": true }, "libx11", "libxi", "libxtst", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/atk/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 dffd0a0814a9183027c38a985d86cb6544858e9e7d655843e153440467957d6bc1abd9c9479a57078aea018053410438a30a9befb7414dc79020b223cd2c774b ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=true) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=false ADDITIONAL_BINARIES "glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/atk-1.0/atk/atkmisc.h" "ifdef ATK_STATIC_COMPILATION" "if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/atk/vcpkg.json ================================================ { "name": "atk", "version": "2.38.0", "port-version": 11, "description": "GNOME Accessibility Toolkit", "homepage": "https://developer.gnome.org/atk/", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Build with introspection", "supports": "!static", "dependencies": [ "gobject-introspection" ] } } } ================================================ FILE: ports/atkmm/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() # Keep distfile, don't use GitLab! string(REGEX MATCH "^([0-9]*[.][0-9]*)" ATKMM_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnome.org/pub/GNOME/sources/atkmm/${ATKMM_MAJOR_MINOR}/atkmm-${VERSION}.tar.xz" FILENAME "atkmm-${VERSION}.tar.xz" SHA512 2c2513b5c5fd7a5c9392727325c7551c766d4d51b8089fbea7e8043cde97d07c9b1f98a4a693f30835e4366e9236e28e092c2480a78415d77c5cb72e9432344f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbuild-documentation=false -Dbuild-deprecated-api=true # Build deprecated API and include it in the library -Dmsvc14x-parallel-installable=false # Use separate DLL and LIB filenames for Visual Studio 2017 and 2019 ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME readme.txt) file(INSTALL "${SOURCE_PATH}/README.win32.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/atkmm/vcpkg.json ================================================ { "name": "atkmm", "version": "2.36.3", "description": "atkmm is the official C++ interface for the ATK accessibility toolkit library. It may be used, for instance, by user interfaces implemented with gtkmm.", "homepage": "https://www.gtkmm.org", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ "atk", "gettext", "glib", "glibmm", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/atl/portfile.cmake ================================================ find_path(ATLBASE_H NAMES atlbase.h PATHS $ENV{INCLUDE} ) if(NOT ATLBASE_H) message(FATAL_ERROR "Unable to locate 'atlbase.h'. Ensure you have installed the Active Template Library (ATL) component of Visual Studio.") endif() SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/atl/vcpkg.json ================================================ { "name": "atl", "version": "0", "port-version": 1, "description": "A stub package that ensures Visual Studio has Active Template Library (ATL) installed.", "supports": "windows & !xbox" } ================================================ FILE: ports/atliac-minitest/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Atliac/minitest REF "v${VERSION}" SHA512 bd39aa9d4f897f03f0f42b28ee7aabc0fbe5168d09009ebcb253ee3cb5f52ae1d81e9c6657aaa93fe8f67d20d9d92874432a06cadcb78f750681772bb3316d78 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TESTS=OFF -DMINITEST_PACKAGE_NAME=${PORT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/atliac-minitest/usage ================================================ minitest provides CMake targets: # Note: the `MINITEST_RUN_TESTS(argc, argv);` must be called in the main function find_package(${PORT} CONFIG REQUIRED) minitest_discover_tests(target) ================================================ FILE: ports/atliac-minitest/vcpkg.json ================================================ { "name": "atliac-minitest", "version": "1.0.0", "description": "A C++ unit testing framework that helps write tests alongside the code being tested.", "homepage": "https://github.com/Atliac/minitest", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/atlmfc/portfile.cmake ================================================ find_path(AFXRES_H NAMES afxres.h PATHS $ENV{INCLUDE} ) if(NOT AFXRES_H) message(FATAL_ERROR "Unable to locate 'afxres.h'. Ensure you have installed the ATL/MFC component of Visual Studio.") endif() SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/atlmfc/vcpkg.json ================================================ { "name": "atlmfc", "version": "0", "port-version": 4, "description": "A stub package that ensures Visual Studio has ATL/MFC installed.", "supports": "windows & !xbox", "dependencies": [ "atl" ] } ================================================ FILE: ports/atomic-queue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO max0x7ba/atomic_queue REF "v${VERSION}" SHA512 af61f91929d469a11325920815bbd73696f53553272c5d0a5352c3414aacc785a21bb3fc18907eaef59d656785293e8c2b3b48ef359778edf2b6dc191f8673c7 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DATOMIC_QUEUE_ENABLE_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME atomic_queue) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/atomic-queue/vcpkg.json ================================================ { "name": "atomic-queue", "version": "1.7.2", "description": "Minimalistic header-only thread-safe ultra-low-latency multiple-producer-multiple-consumer lockless queues based on circular buffer with std::atomic.", "homepage": "https://github.com/max0x7ba/atomic_queue", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/attr/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://download.savannah.nongnu.org/releases/attr/attr-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/attr/attr-${VERSION}.tar.xz" FILENAME "attr-${VERSION}.tar.xz" SHA512 f587ea544effb7cfed63b3027bf14baba2c2dbe3a9b6c0c45fc559f7e8cb477b3e9a4a826eae30f929409468c50d11f3e7dc6d2500f41e1af8662a7e96a30ef3 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/COPYING.LGPL") ================================================ FILE: ports/attr/vcpkg.json ================================================ { "name": "attr", "version-semver": "2.5.2", "port-version": 1, "description": "Commands for Manipulating Filesystem Extended Attributes", "homepage": "http://savannah.nongnu.org/projects/attr", "license": "LGPL-2.1-or-later", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/aubio/0001-ffmpeg-deprecated.patch ================================================ diff --git a/src/io/source_avcodec.c b/src/io/source_avcodec.c index 71ea8b5..e4bd848 100644 --- a/src/io/source_avcodec.c +++ b/src/io/source_avcodec.c @@ -67,6 +67,9 @@ #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56, 56, 0) #define AUBIO_AVCODEC_MAX_BUFFER_SIZE FF_MIN_BUFFER_SIZE #else + #ifndef AV_INPUT_BUFFER_MIN_SIZE + #define AV_INPUT_BUFFER_MIN_SIZE 16384 + #endif #define AUBIO_AVCODEC_MAX_BUFFER_SIZE AV_INPUT_BUFFER_MIN_SIZE #endif @@ -345,8 +348,8 @@ void aubio_source_avcodec_reset_resampler(aubio_source_avcodec_t * s) av_channel_layout_default(&input_layout, s->input_channels); av_channel_layout_default(&output_layout, s->input_channels); - av_opt_set_chlayout(avr, "in_channel_layout", &input_layout, 0); - av_opt_set_chlayout(avr, "out_channel_layout", &output_layout, 0); + av_opt_set_chlayout(avr, "in_chlayout", &input_layout, 0); + av_opt_set_chlayout(avr, "out_chlayout", &output_layout, 0); #else int64_t input_layout = av_get_default_channel_layout(s->input_channels); int64_t output_layout = av_get_default_channel_layout(s->input_channels); ================================================ FILE: ports/aubio/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(aubio C) option(WITH_DEPENDENCIES "Adds extra dependencies" ON) option(BUILD_TOOLS "Build and install tools" ON) add_definitions( -DHAVE_STDLIB_H=1 -DHAVE_STDIO_H=1 -DHAVE_MATH_H=1 -DHAVE_STRING_H=1 -DHAVE_LIMITS_H=1 -DHAVE_STDARG_H=1 -DHAVE_ERRNO_H=1 -DHAVE_C99_VARARGS_MACROS=1 -D_CRT_SECURE_NO_WARNINGS=1 ) if(WITH_DEPENDENCIES) add_definitions( -DHAVE_SNDFILE=1 -DHAVE_WAVWRITE=1 -DHAVE_WAVREAD=1 -DHAVE_LIBAV=1 -DHAVE_SWRESAMPLE=1 ) endif() set(TOOLS_INSTALLDIR "bin" CACHE STRING "Target directory for installed tools") if(WITH_DEPENDENCIES) find_package(FFMPEG COMPONENTS avcodec avutil avformat swresample REQUIRED) find_package(BZip2 REQUIRED) find_package(LibLZMA REQUIRED) find_package(SndFile REQUIRED) include_directories(${LIBLZMA_INCLUDE_DIRS}) endif() include_directories(src) file(GLOB_RECURSE SOURCES src/*.c) if(WIN32 AND NOT MINGW) set_source_files_properties(src/io/sink_wavwrite.c PROPERTIES COMPILE_FLAGS /FIWinsock2.h) endif() add_library(aubio ${SOURCES}) if(WITH_DEPENDENCIES) target_link_libraries(aubio PUBLIC SndFile::sndfile ${FFMPEG_LIBRARIES} BZip2::BZip2 ${LIBLZMA_LIBRARIES} ) endif() if(WIN32) target_compile_definitions(aubio PRIVATE -DHAVE_WIN_HACKS=1) target_link_libraries(aubio PUBLIC ws2_32) endif() if(BUILD_TOOLS AND WITH_DEPENDENCIES) set(EXAMPLE_EXECS aubiomfcc aubionotes aubioonset aubiopitch aubioquiet aubiotrack) foreach(EXAMPLE_EXEC ${EXAMPLE_EXECS}) add_executable(${EXAMPLE_EXEC} examples/${EXAMPLE_EXEC}.c examples/utils.c examples/jackio.c) target_link_libraries(${EXAMPLE_EXEC} PRIVATE aubio) if(WIN32) target_compile_definitions(${EXAMPLE_EXEC} PRIVATE -DHAVE_WIN_HACKS=1) target_link_libraries(${EXAMPLE_EXEC} PUBLIC ws2_32) else() target_compile_definitions(${EXAMPLE_EXEC} PRIVATE -DHAVE_UNISTD_H=1) endif() endforeach() # Create and add fake config.h to avoid build errors (file is generated for # cross-platform requirements in waf build-system) file(WRITE "${CMAKE_BINARY_DIR}/config.h" "") include_directories(${CMAKE_BINARY_DIR}) install( TARGETS ${EXAMPLE_EXECS} RUNTIME DESTINATION ${TOOLS_INSTALLDIR} ) endif() install( TARGETS aubio EXPORT AubioTargets INCLUDES DESTINATION include RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT AubioTargets NAMESPACE Aubio:: DESTINATION share/aubio) install( DIRECTORY src/ DESTINATION include/aubio FILES_MATCHING PATTERN "*.h" PATTERN "*_priv.h" EXCLUDE PATTERN "config.h" EXCLUDE ) # Create CMake configuration export file. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/AubioConfig.cmake.in "@PACKAGE_INIT@\n") if(WITH_DEPENDENCIES) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/AubioConfig.cmake.in " include(CMakeFindDependencyMacro) find_dependency(FFMPEG COMPONENTS avcodec avutil avformat swresample REQUIRED) find_dependency(BZip2 REQUIRED) find_dependency(LibLZMA REQUIRED) find_dependency(SndFile REQUIRED) ") endif() file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/AubioConfig.cmake.in "include(\${CMAKE_CURRENT_LIST_DIR}/AubioTargets.cmake)") # Install CMake configuration export file. include(CMakePackageConfigHelpers) configure_package_config_file( ${CMAKE_CURRENT_BINARY_DIR}/AubioConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/AubioConfig.cmake INSTALL_DESTINATION share/aubio ) install( FILES ${CMAKE_BINARY_DIR}/AubioConfig.cmake DESTINATION share/aubio ) ================================================ FILE: ports/aubio/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aubio/aubio REF 152d6819b360c2e7b379ee3f373d444ab3df0895 SHA512 923529eb27e460293bd2b8b8c53d5eb96553e3e1ece7071904808d8f20f86b7af70bde97d271da9a07ee1898d0840190f265e326e67f48c6f5cadefa034abf0f HEAD_REF master PATCHES 0001-ffmpeg-deprecated.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools WITH_DEPENDENCIES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_RELEASE -DTOOLS_INSTALLDIR=tools/aubio -DBUILD_TOOLS=ON OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES aubiomfcc aubionotes aubioonset aubiopitch aubioquiet aubiotrack SEARCH_DIR ${CURRENT_PACKAGES_DIR}/tools/aubio AUTO_CLEAN) endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/aubio/vcpkg.json ================================================ { "name": "aubio", "version-date": "2024-01-03", "port-version": 1, "description": "Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.", "homepage": "https://github.com/aubio/aubio", "license": "GPL-3.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "tools" ], "features": { "tools": { "description": "Build tools and add extra dependencies", "dependencies": [ "bzip2", { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat", "swresample" ] }, "libflac", "liblzma", "libogg", { "name": "libsndfile", "default-features": false }, "libvorbis" ] } } } ================================================ FILE: ports/audioengine/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Darkx32/AudioEngine REF "v${VERSION}" SHA512 785aca85898699224d25590c8261d26224619907efa46026140cbabefb5de0391297c947097d0a72ac364092139591de9a52e2820f919412b33dcd6acc547eb9 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAUDIOENGINE_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME AudioEngine CONFIG_PATH share/AudioEngine) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/audioengine/vcpkg.json ================================================ { "name": "audioengine", "version": "1.3", "description": "AudioEngine created using C++, FFMPEG and OpenAL for a student", "homepage": "https://github.com/Darkx32/AudioEngine", "license": "MIT", "supports": "x64 & (windows | linux)", "dependencies": [ "ffmpeg", "openal-soft", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/audiofile/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO adamstark/AudioFile REF "${VERSION}" SHA512 16a6879e8d91612980c8c2e86995de876a0868e051a47e4eaae7c8dea67327e008463b93e2536368e0f169329b7626b380d74eb369bef526dbc50a793f8cab92 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME AudioFile CONFIG_PATH lib/cmake/AudioFile) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/audiofile/vcpkg.json ================================================ { "name": "audiofile", "version": "1.1.4", "description": "A simple header-only C++ library for reading and writing audio files.", "homepage": "https://github.com/adamstark/AudioFile", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/audit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO linux-audit/audit-userspace SHA512 4ebdfaebb89440bd76d1f715aa9f2f261b453f51c66ae9c4c7ad650cd361268fe2415c33fe7913ec4986d98ccbd457e15734d0aae606b5dccf316b66276a13cb REF "v${VERSION}" HEAD_REF master ) message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n" "\t- \n" "\t- \n" "\t- \n\n" "It can be installed with your package manager" ) file(TOUCH "${SOURCE_PATH}/README") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --with-python3=no --with-golang=no --with-io_uring=no --with-warn=no --disable-zos-remote ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/audit/vcpkg.json ================================================ { "name": "audit", "version": "4.1.3", "port-version": 1, "description": "Library for working with audit subsystem", "homepage": "https://github.com/linux-audit/audit-userspace", "license": "GPL-2.0-or-later OR LGPL-2.1-or-later", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/aurora/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Bromeon/Aurora REF c75699d2a8caa726260c29b6d7a0fd35f8f28933 SHA512 862253e281eb441b773feb330d5ce4d7fe10769f516e927c0f875477ec912671fc35132a48986b2394f6d0a7160a5cb70afe868c597350c385ce23686b9613d6 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}) file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/aurora RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/aurora/vcpkg.json ================================================ { "name": "aurora", "version": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933", "port-version": 2, "description": "Aurora is an open-source C++ library providing various rather uncommon C++ utilities", "homepage": "https://github.com/Bromeon/Aurora" } ================================================ FILE: ports/aurora-au/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aurora-opensource/au REF "${VERSION}" SHA512 675487ecaba256caa085f309a266e822356cdb286a242a2103d008cacc908409e053b296ad6b4c750657ed17a2b2712f6171fac41c74c2fbfb9db034479abaf1 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAU_EXCLUDE_GTEST_DEPENDENCY=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/Au ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Remove empty directory file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/aurora-au/usage ================================================ The package aurora-au provides CMake targets: find_package(Au REQUIRED) target_link_libraries(main PRIVATE Au::au) ================================================ FILE: ports/aurora-au/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "aurora-au", "version-semver": "0.5.1", "description": "A C++14-compatible physical units library with no dependencies and a single-file delivery option. Emphasis on safety, accessibility, performance, and developer experience.", "homepage": "https://github.com/aurora-opensource/au", "documentation": "https://aurora-opensource.github.io/au/main/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/autodock-vina/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) cmake_policy(VERSION 3.11) project(autodock-vina) set(GIT_VERSION v1.2.7) set(CMAKE_CXX_STANDARD 14) find_package(Boost REQUIRED COMPONENTS filesystem log program_options random serialization thread timer ) file(GLOB SRC_AUTODOCK_VINA_LIBS "src/lib/*.cpp" ) file(GLOB SRC_AUTODOCK_VINA_SPLIT "src/split/*.cpp" ) file(GLOB HEADERS "src/lib/*.h" ) add_library(vina ${SRC_AUTODOCK_VINA_LIBS}) add_library(vina_split ${SRC_AUTODOCK_VINA_SPLIT}) target_include_directories(vina PUBLIC $ $ PRIVATE $ ) target_include_directories(vina_split PUBLIC $ $ PRIVATE $ ) target_compile_definitions(vina PUBLIC -DVERSION=\"${GIT_VERSION}\" ) target_compile_definitions(vina_split PUBLIC -DVERSION=\"${GIT_VERSION}\" ) target_link_libraries(vina PRIVATE Boost::boost Boost::filesystem Boost::log Boost::program_options Boost::random Boost::serialization Boost::thread Boost::timer ) target_link_libraries(vina_split PRIVATE Boost::boost Boost::filesystem Boost::log Boost::program_options Boost::random Boost::serialization Boost::thread Boost::timer ) install(TARGETS vina EXPORT autodock-vina-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(TARGETS vina_split EXPORT autodock-vina-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(FILES ${HEADERS} DESTINATION include/autodock-vina) install(EXPORT autodock-vina-config NAMESPACE autodock-vina::autodock-vina:: DESTINATION share/autodock-vina) ================================================ FILE: ports/autodock-vina/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ccsb-scripps/AutoDock-Vina REF "v${VERSION}" SHA512 b96d2f14bf26b63b3f132750e7b056632d8e48649ce24e267972e698d60b834c9dcd93907b22bd27413843a34112d6db32acef1793b8b2a5a14e813c66548633 HEAD_REF develop ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file( INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/autodock-vina/vcpkg.json ================================================ { "name": "autodock-vina", "version-semver": "1.2.7", "description": "AutoDock Vina is one of the fastest and most widely used open-source docking engines.", "homepage": "https://autodock-vina.readthedocs.io", "dependencies": [ "boost-algorithm", "boost-array", "boost-filesystem", "boost-lexical-cast", "boost-log", "boost-math", "boost-optional", "boost-program-options", "boost-ptr-container", "boost-random", "boost-serialization", "boost-static-assert", "boost-thread", "boost-timer", "boost-utility", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/avcpp/0002-av_init_packet_deprecation.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a5fed05..7875b91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,11 @@ set (AVCPP_WARNING_OPTIONS $<$: /W4>) +# fixes vcpkg uwp failures due to /sdl +if(MSVC) + add_compile_options(/wd4996) +endif() + # -pthread sets also some useful compile-time flags set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads) ================================================ FILE: ports/avcpp/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) # avcpp doesn't export any symbols vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO h4tr3d/avcpp REF "v${VERSION}" SHA512 f23102b3404aad89fe0bf1b7b19c72b09771c55c58043954999afbead7b2e68a4cd807073596c5d39b328fb17c69d23f9e64f86e8092a1b059c05bb6c2df82a7 HEAD_REF master PATCHES 0002-av_init_packet_deprecation.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" AVCPP_ENABLE_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" AVCPP_ENABLE_SHARED) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DAV_ENABLE_STATIC=${AVCPP_ENABLE_STATIC}" "-DAV_ENABLE_SHARED=${AVCPP_ENABLE_SHARED}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DAV_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(READ "${SOURCE_PATH}/LICENSE.md" LICENSE_MD) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-bsd.txt" "${SOURCE_PATH}/LICENSE-lgpl2.txt" COMMENT "${LICENSE_MD}") ================================================ FILE: ports/avcpp/vcpkg.json ================================================ { "name": "avcpp", "version": "3.0.1", "description": "Wrapper for the FFmpeg that simplify usage it from C++ projects.", "homepage": "https://github.com/h4tr3d/avcpp", "license": "LGPL-2.1-only OR BSD-3-Clause", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avdevice", "avfilter", "avformat", "swresample", "swscale" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/avir/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO avaneev/avir REF "${VERSION}" SHA512 f3ca9b55c9169b6f9179d14c59738ce06842d205f19f39638fc853cd7c565b4b96ff7927c168c0501cc5664a7885226d888293280f523b28ea99c80b0bb81577 HEAD_REF master ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/avir.h" "${SOURCE_PATH}/avir_dil.h" "${SOURCE_PATH}/avir_float4_sse.h" "${SOURCE_PATH}/avir_float8_avx.h" "${SOURCE_PATH}/lancir.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/avir") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/avir/vcpkg.json ================================================ { "name": "avir", "version": "3.1", "description": "High-quality pro HDR image resizing / scaling C++ library, including a very fast, precise, SIMD Lanczos resizer", "homepage": "https://github.com/avaneev/avir", "license": "MIT" } ================================================ FILE: ports/avisynthplus/backport_409369a.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 75894c35..7a29d141 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,12 +52,15 @@ CMAKE_MINIMUM_REQUIRED( VERSION 3.6.2...3.11 ) # Get PROJECT_VERSION property from 'avs_core/core/version.h.in' file(READ "avs_core/core/version.h.in" versioning) -string(REGEX MATCH "AVS_MAJOR_VER ([0-9]*)" _ ${versioning}) + +string(REGEX MATCH "AVS_MAJOR_VER[ \\t]+([0-9]*)" _ ${versioning}) set(version_major ${CMAKE_MATCH_1}) -string(REGEX MATCH "AVS_MINOR_VER ([0-9]*)" _ ${versioning}) +string(REGEX MATCH "AVS_MINOR_VER[ \\t]+([0-9]*)" _ ${versioning}) set(version_minor ${CMAKE_MATCH_1}) -string(REGEX MATCH "AVS_BUGFIX_VER ([0-9]*)" _ ${versioning}) +string(REGEX MATCH "AVS_BUGFIX_VER[ \\t]+([0-9]*)" _ ${versioning}) set(version_bugfix ${CMAKE_MATCH_1}) +# Combine version variables for use in the project command +set(PROJECT_VERSION_STRING "${version_major}.${version_minor}.${version_bugfix}") # Get AVISYNTH_INTERFACE_VERSION from avs_core/include/avisynth.h file(READ "avs_core/include/avisynth.h" versioning) @@ -76,7 +79,7 @@ endif() if(NOT HEADERS_ONLY) - project("AviSynth+" VERSION ${version_major}.${version_minor}.${version_bugfix} LANGUAGES CXX) + project("AviSynth+" VERSION ${PROJECT_VERSION_STRING} LANGUAGES CXX) # message("Compiler ID: ${CMAKE_CXX_COMPILER_ID} ") @@ -88,72 +91,132 @@ if(NOT HEADERS_ONLY) set(CMAKE_CXX_STANDARD_LIBRARIES "" CACHE STRING "" FORCE) # We require C++17 or higher. -if(CMAKE_VERSION VERSION_GREATER 3.7) - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED TRUE) - set(CMAKE_CXX_EXTENSIONS FALSE) -endif() + if(CMAKE_VERSION VERSION_GREATER 3.7) + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED TRUE) + set(CMAKE_CXX_EXTENSIONS FALSE) + endif() # Detect Intel processors and turn Intel SIMD on or off automatically. - message("-- Detected target processor as: ${CMAKE_SYSTEM_PROCESSOR}") - string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" ARCHID) - if( ("${ARCHID}" STREQUAL "x86") OR - ("${ARCHID}" STREQUAL "x64") OR - ("${ARCHID}" STREQUAL "i686") OR - ("${ARCHID}" STREQUAL "amd64") OR - ("${ARCHID}" STREQUAL "x86_64") ) - set(INTEL_SIMD "ON") + # Old logic relied on the host processor: ${CMAKE_SYSTEM_PROCESSOR} + + set(INTEL_SIMD "OFF") + # Use a list of known Intel-compatible architecture names for the default ON state. + set(INTEL_ARCH_NAMES "win32" "x64" "x86" "i386" "amd64" "x86_64" "i686") + + # Check the TARGET architecture using the most reliable variables (CMAKE_GENERATOR_PLATFORM and PLATFORMID_LOWER) + string(TOLOWER "${PLATFORMID}" PLATFORMID_LOWER) + string(TOLOWER "${CMAKE_GENERATOR_PLATFORM}" GEN_PLATFORM_LOWER) # Often holds x64, ARM64, etc. + string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" HOST_ARCH_LOWER) + + # --- DEBUG OUTPUT START --- + # message(STATUS "--- SIMD Detection Variables ---") + # message(STATUS "CMAKE_SYSTEM_PROCESSOR (Host Arch): ${CMAKE_SYSTEM_PROCESSOR}") + # message(STATUS "Host Arch Lower: ${HOST_ARCH_LOWER}") + # message(STATUS "PLATFORMID_LOWER (VS Target Platform): ${PLATFORMID_LOWER}") + # message(STATUS "CMAKE_GENERATOR_PLATFORM (Generator Target): ${CMAKE_GENERATOR_PLATFORM}") + # message(STATUS "INTEL_ARCH_NAMES: ${INTEL_ARCH_NAMES}") + # message(STATUS "------------------------------------") + # --- DEBUG OUTPUT END --- + # e.g. ARM64 cross-compile on x64 machine: + # CMAKE_SYSTEM_PROCESSOR (Host Arch): AMD64 + # Host Arch Lower: amd64 + # PLATFORMID_LOWER (VS Target Platform): + # CMAKE_GENERATOR_PLATFORM (Generator Target): ARM64 + + list(FIND INTEL_ARCH_NAMES "${HOST_ARCH_LOWER}" _found_arch) + list(FIND INTEL_ARCH_NAMES "${PLATFORMID_LOWER}" _found_target_platform_id) + list(FIND INTEL_ARCH_NAMES "${GEN_PLATFORM_LOWER}" _found_target_gen) + + # 1. Check if the target platform is explicitly known non-Intel (ARM64, AARCH64) + if("${PLATFORMID_LOWER}" STREQUAL "arm64" OR "${GEN_PLATFORM_LOWER}" STREQUAL "arm64") + set(INTEL_SIMD "OFF") + message(STATUS "Target is ARM64/AARCH64, INTEL_SIMD forced OFF.") else() - set(INTEL_SIMD "OFF") + # 2. Inclusion Check: We are NOT targeting ARM64. + + # Define a boolean check: Did we find a match in the explicit target variables OR the host architecture? + if(_found_target_gen GREATER -1 OR _found_target_platform_id GREATER -1) + # Found a match in a generator-set variable (e.g., Win32, x64 when explicitly chosen) + set(INTEL_SIMD "ON") + message(STATUS "Target architecture is explicitly set and Intel-compatible, INTEL_SIMD set ON.") + elseif(_found_arch GREATER -1 AND "${GEN_PLATFORM_LOWER}" STREQUAL "") + # FALLBACK: Target platform is NOT set (Default Configuration), but the Host is Intel-compatible. + # The default target platform for a multi-config generator on a bare x64 host is x64. + set(INTEL_SIMD "ON") + message(STATUS "Target platform not specified; defaulting to Host (${CMAKE_SYSTEM_PROCESSOR}), INTEL_SIMD set ON.") + endif() endif() + # message(STATUS "Final INTEL_SIMD initial assumption: ${INTEL_SIMD}") + option(ENABLE_INTEL_SIMD "Enable SIMD intrinsics for Intel processors" "${INTEL_SIMD}") option(ENABLE_PLUGINS "Build set of default external plugins" ON) - option(ENABLE_INTEL_SIMD "Enable SIMD intrinsics for Intel processors" "${INTEL_SIMD}") set(USER_AVS_PLUGINDIR_LOCATION ".local/lib/avisynth" CACHE STRING "Override path for user-local plugins, with $HOME omitted (default: .local/lib/avisynth)") option(ENABLE_CUDA "Enable CUDA support" OFF) set(CORE_PLUGIN_INSTALL_PATH "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE STRING "Set system plugin install parent directory (default: value of CMAKE_INSTALL_FULL_LIBDIR)") -if(CMAKE_VERSION VERSION_GREATER 3.9) - get_cmake_property(MULTI_CONFIG GENERATOR_IS_MULTI_CONFIG) - if(MULTI_CONFIG) - if(CMAKE_CONFIGURATION_TYPES) - set(CMAKE_CONFIGURATION_TYPES Debug Release RelWithDebInfo) - set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Reset the configurations to what we need" FORCE) - endif() - message("-- Build type: Multi-configuration (${CMAKE_CONFIGURATION_TYPES})") - else() - # When CMAKE_BUILD_TYPE is not defined, CMake defaults to a simple -O0 configuration, no compiler optimizations - # and no debug symbols. For single-configuration generators (Makefiles, Ninja, etc.) we can make Release the - # assumed default if it isn't explicitly set by the user. Multi-config generators like Visual Studio ignore - # CMAKE_BUILD_TYPE. - - # Unfortunately, this is not visible in CMakeCache, but it can be seen to take effect in build.ninja or running - # make with VERBOSE=1 adding the appropriate Release flags. - if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release") + if(CMAKE_VERSION VERSION_GREATER 3.9) + get_cmake_property(MULTI_CONFIG GENERATOR_IS_MULTI_CONFIG) + if(MULTI_CONFIG) + if(CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES Debug Release RelWithDebInfo) + set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Reset the configurations to what we need" FORCE) + endif() + message("-- Build type: Multi-configuration (${CMAKE_CONFIGURATION_TYPES})") + else() + # When CMAKE_BUILD_TYPE is not defined, CMake defaults to a simple -O0 configuration, no compiler optimizations + # and no debug symbols. For single-configuration generators (Makefiles, Ninja, etc.) we can make Release the + # assumed default if it isn't explicitly set by the user. Multi-config generators like Visual Studio ignore + # CMAKE_BUILD_TYPE. + + # Unfortunately, this is not visible in CMakeCache, but it can be seen to take effect in build.ninja or running + # make with VERBOSE=1 adding the appropriate Release flags. + if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release") + endif() + message("-- Build type: ${CMAKE_BUILD_TYPE}") endif() - message("-- Build type: ${CMAKE_BUILD_TYPE}") endif() -endif() - IF( MSVC ) # Check for Visual Studio + # Use this one to be safe: + # Check for the Visual Studio generator, not the MSVC compiler ID, as this + # block configures VS project structure (platforms/toolsets), which fails for Ninja/MSVC. + if( CMAKE_GENERATOR MATCHES "Visual Studio" ) + ## IF( MSVC ) # Check for Visual Studio #1910-1919 = VS 15.0 (v141 toolset) Visual Studio 2017 #1920-1929 = VS 16.0 (v142 toolset) Visual Studio 2019 - #1930-1939 = VS 17.0 (v143 toolset) Visual Studio 2022 - + #1930-1949 = VS 17.x (v143 toolset) Visual Studio 2022 + # ( 1940-1949 = VS v17.10+: Toolset v143 (Still!) | Compiler 19.4x) + #1950-1959 = VS 18.0 (v145 toolset) Visual Studio 2026 + # detect if the target is for x86 - string(TOLOWER "${CMAKE_VS_PLATFORM_NAME}" PLATFORMID) - if(("${PLATFORMID}" STREQUAL "win32") OR - ("${PLATFORMID}" STREQUAL "x64" )) - set(NON_X86_PLATFORM "OFF") + # PLATFORMID_LOWER is just a lowercase copy of CMAKE_VS_PLATFORM_NAME + string(TOLOWER "${CMAKE_VS_PLATFORM_NAME}" PLATFORMID_LOWER) + + # message("-- PLATFORMID_LOWER: ${PLATFORMID_LOWER}") + + if(("${PLATFORMID_LOWER}" STREQUAL "win32") OR + ("${PLATFORMID_LOWER}" STREQUAL "x64") OR + ("${PLATFORMID_LOWER}" STREQUAL "arm64")) # allow arm64 targets + set(SUPPORTED_MSVC_PLATFORM "ON") else() - set(NON_X86_PLATFORM "ON") + set(SUPPORTED_MSVC_PLATFORM "OFF") + endif() + + if(SUPPORTED_MSVC_PLATFORM STREQUAL "OFF") + message(FATAL_ERROR "MSVC/ClangCL only supported on Win32, x64, or ARM64 targets. Use MinGW (llvm-mingw or gcc). Unsupported target: ${CMAKE_VS_PLATFORM_NAME}.") endif() - if(NON_X86_PLATFORM) - message(FATAL_ERROR "MSVC/ClangCL only supported on x86(-64). Use MinGW (llvm-mingw or gcc).") +#[[ + # check to disable ARM64 by default + # PF: re-allowed; VS2026 can build ARM64 even with LLVM + if(("${PLATFORMID_LOWER}" STREQUAL "arm64") AND (NOT DEFINED ENABLE_ARM64_WITH_MSVC_TESTING)) + # This FATAL_ERROR can be commented out or protected by the ENABLE_ARM64_TESTING cache variable. + # To enable the build, define -DENABLE_ARM64_TESTING=ON when running cmake. + message(FATAL_ERROR "MSVC ARM64 platform is currently disabled by default. Define ENABLE_ARM64_WITH_MSVC_TESTING=ON to proceed or use MinGW (llvm-mingw or gcc).") endif() +#]] IF( MSVC_VERSION VERSION_LESS 1910 ) MESSAGE(FATAL_ERROR "Visual C++ 2017 or newer required.") @@ -163,10 +226,6 @@ endif() file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/Output/system") file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/Output/c_api") - # Needed to properly handle __has_include() in avs_core/filesystem.h - # See note in filesystem/README.md - add_definitions("/Zc:__cplusplus") - IF(MSVC_IDE) message("MSVC_IDE support found, reported CMAKE_GENERATOR_TOOLSET is: ${CMAKE_GENERATOR_TOOLSET}") string( TOLOWER "${CMAKE_GENERATOR_TOOLSET}" cmake_gentoolset_lower) @@ -195,7 +254,7 @@ endif() endif() set(CLANG_IN_VS "1") ELSEIF(cmake_gentoolset_lower STREQUAL "v141_clang_c2") - #1900 is reported + #1900 is reported message("v141_clang_c2 toolset was specified via -T. Reported MSVC_VERSION is: ${MSVC_VERSION}") message("May not work, try clangcl or LLVM") set(CLANG_IN_VS "1") @@ -207,25 +266,15 @@ endif() if(WINXP_SUPPORT) # We want our project to also run on Windows XP # Not for LLVM: Clang stopped XP support in 2016 - # 1900 (VS2015) is not supported but we leave here - IF(MSVC_VERSION VERSION_LESS 1910 ) - IF(NOT CLANG_IN_VS STREQUAL "1") - set(CMAKE_GENERATOR_TOOLSET "v140_xp" CACHE STRING "The compiler toolset to use for Visual Studio." FORCE) # VS2015 - # https://connect.microsoft.com/VisualStudio/feedback/details/1789709/visual-c-2015-runtime-broken-on-windows-server-2003-c-11-magic-statics - message("CMAKE_GENERATOR_TOOLSET is forced to: ${CMAKE_GENERATOR_TOOLSET}") - add_definitions("/Zc:threadSafeInit-") - ENDIF() - ELSE() - IF(NOT CLANG_IN_VS STREQUAL "1") - # Setting CMAKE_GENERATOR_TOOLSET here has no effect, only when passed (-T option) or set directly, so we just check it - IF(CMAKE_GENERATOR_TOOLSET STREQUAL "v141_xp") - # v141_xp is still available in Visual Studio 2022 + IF(NOT CLANG_IN_VS STREQUAL "1") + # Setting CMAKE_GENERATOR_TOOLSET here has no effect, only when passed (-T option) or set directly, so we just check it + IF(CMAKE_GENERATOR_TOOLSET STREQUAL "v141_xp") + # v141_xp is still available in Visual Studio 2022 and 2026. message("CMAKE_GENERATOR_TOOLSET is XP compatible: ${CMAKE_GENERATOR_TOOLSET}, extra XP options added") # https://connect.microsoft.com/VisualStudio/feedback/details/1789709/visual-c-2015-runtime-broken-on-windows-server-2003-c-11-magic-statics - add_definitions("/Zc:threadSafeInit-") - ELSE() + # later done: add_definitions("/Zc:threadSafeInit-") + ELSE() message(FATAL_ERROR "For XP you must specify v141_xp toolset with -T option (or 'Optional toolset to use' in CMake GUI)!") - ENDIF() ENDIF() ENDIF() endif() @@ -239,18 +288,7 @@ endif() set(IntelClassic_IN_VS "1") endif() - IF(CLANG_IN_VS STREQUAL "1") - #these are unknown - #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions") - #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexceptions") - add_compile_options(${CMAKE_CXX_FLAGS} /EHa -Wno-inconsistent-missing-override) - ELSEIF(IntelLLVM_IN_VS STREQUAL "1") - # The CXX compiler identification is IntelLLVM 2021.4.0 or 2023.0.0 with MSVC-like command-line - message("IntelLLVM in VS environment chosen, setting additional flags") - # contrary to MSVC-like commandline interface, these are not set - /EHa - # from 2021.2 default fp is fast for /O2 - add_compile_options(${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override /EHa /fp:precise) - ELSEIF(IntelClassic_IN_VS STREQUAL "1") + IF(IntelClassic_IN_VS STREQUAL "1") # Intel C++ Compiler 19.2 message("Intel Classic chosen, setting additional flags") set(DELETE_THIS "/std:c++17") # if it would co-exist with /Qstd=c++17 @@ -279,26 +317,8 @@ endif() message("MSVC flags: ${CompilerFlag}:${${CompilerFlag}}") endforeach() ELSE() - # MSVC - # Enable C++ with SEH exceptions - # Avoid an obnoxious 'overriding /EHsc with /EHa' warning when - # using something other than MSBuild - add_compile_options(${CMAKE_CXX_FLAGS} /EHa) - # Behavior is new in Visual Studio 2022: - # Floating-point contractions (mul+add to fma) aren't generated by default under /fp:precise - # Enable it manually - if (NOT (MSVC_VERSION LESS 1930)) # at least VS2022 - add_compile_options(${CMAKE_CXX_FLAGS} /fp:contract) - endif() + # Plain MSVC branch continues; per-target options are applied later ENDIF() - # Prevent VC++ from complaining about not using MS-specific functions - add_definitions("/D _CRT_SECURE_NO_WARNINGS /D _SECURE_SCL=0") - - # Enable CRT heap debugging - only effective in debug builds - add_definitions("/D _CRTDBG_MAP_ALLOC") - - # if missing, some modules inhibit source containing assembler/simd parts - add_definitions("/D __SSE2__") # fixme: does it really need anymore? # CPU_ARCH can be overridden with the corresponding values when using MSVC: # IA32 (disabled), @@ -308,52 +328,14 @@ endif() # AVX2 (Haswell and higher, 2013) if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(MSVC_CPU_ARCH "SSE2" CACHE STRING "Set MSVC architecture optimization level (default: SSE2)") - add_compile_options(/arch:${MSVC_CPU_ARCH}) - endif() - - IF(CLANG_IN_VS STREQUAL "1" OR IntelLLVM_IN_VS STREQUAL "1") - # suppress other frequent but harmless/unavoidable warnings - add_compile_options(-Wno-unused-function -Wno-reorder -Wno-unused-value) - # allow per-function attributes like __attribute__((__target__("sse4.1"))) - add_compile_options(-Wno-gcc-compat) - ENDIF() - - # Enable standards-conformance mode for MSVC compilers that support this - # flag (Visual C++ 2017 and later). Default. DirectShowSource will remove if needed. - # The headers in the XP-side SDK also have errors if built in conformance mode, - # so if we're building for XP, don't turn that on. - if (NOT WINXP_SUPPORT) - if (NOT (MSVC_VERSION LESS 1910)) - add_compile_options(/permissive-) - endif() - endif() - - if(ENABLE_INTEL_SIMD) - add_definitions("/D INTEL_INTRINSICS") + # /arch: applied later per-target endif() ELSE() # not MS Visual Studio IDE - - # CMAKE_CXX_STANDARD doesn't cover the use-case of pre-final C++17 support, - # but I'd assume most setups with a new enough version of CMake to use - # CMAKE_CXX_STANDARD 17 would also be running a version of GCC/Clang new enough - # to not need this. So this will most likely only ever be used by setups running - # older versions of CMake; regardless, it shouldn't be necessary to force a - # CMAKE_VERSION check on this part unless the mere presence of CMAKE_CXX_STANDARD 17 - # ends up causing problems for the older compilers here. - if( ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)) OR - ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)) ) - add_compile_options(${CMAKE_CXX_FLAGS} -std=c++1z) - endif() - - if(ENABLE_INTEL_SIMD) - add_compile_options(-msse2 -DINTEL_INTRINSICS) - endif() - if(WIN32) SET( CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-stdcall-fixup" ) - add_compile_options(-D__CRT__NO_INLINE=1) + # __CRT__NO_INLINE: moved to per-target definitions elseif(APPLE) # macOS uses Clang's linker, doesn't like --no-undefined SET( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined,error" ) @@ -365,13 +347,149 @@ endif() ENDIF() add_subdirectory("avs_core") + + # Start tracking targets before the plugins subdirectory is processed + get_property(_targets_before_plugins GLOBAL PROPERTY BUILT_TARGETS) + if(ENABLE_PLUGINS) add_subdirectory("plugins") endif() + + # End tracking targets and apply fixes here + get_property(_targets_after_plugins GLOBAL PROPERTY BUILT_TARGETS) + + # Calculate targets added in the plugins subdirectory + list(REMOVE_ITEM _targets_after_plugins ${_targets_before_plugins}) + set(NEW_PLUGIN_TARGETS ${_targets_after_plugins}) + + # Combine AvsCore and the newly discovered plugins into one list for fixing + set(ALL_AFFECTED_TARGETS) + if(TARGET AvsCore) + list(APPEND ALL_AFFECTED_TARGETS AvsCore) + endif() + list(APPEND ALL_AFFECTED_TARGETS ${NEW_PLUGIN_TARGETS}) + + # ----------------------------------------------------------------------- + # Per-target, modern & safe application of options/defines (CORE and PLUGINS) + # ----------------------------------------------------------------------- + foreach(AFFECTED_TARGET ${ALL_AFFECTED_TARGETS}) + if(TARGET ${AFFECTED_TARGET}) + message(STATUS "Applying Intel/Clang compiler fixes to target: ${AFFECTED_TARGET}") + + # Check if the target is a library or executable (exclude INTERFACE targets) + get_target_property(_target_type ${AFFECTED_TARGET} TYPE) + if(NOT ( + ${_target_type} STREQUAL "SHARED_LIBRARY" OR + ${_target_type} STREQUAL "STATIC_LIBRARY" OR + ${_target_type} STREQUAL "MODULE_LIBRARY" + )) + # Skip if it's not a compileable target (e.g., if it was an interface target) + continue() + endif() -else() + # Use a compound check: If the generator is Visual Studio, or the compiler ID + # is MSVC AND we are on Windows, run the MSVC-specific logic. + if( CMAKE_GENERATOR MATCHES "Visual Studio" OR (MSVC AND WIN32) ) + # Using only if(MSVC) will fail with MinGW if the compiler ID is MSVC but the generator is not VS. + # This robust check ensures that the MSVC block only runs in an MSVC environment. - project(AviSynth-Headers VERSION ${version_major}.${version_minor}.${version_bugfix} LANGUAGES CXX) + # Handle ARM64 soft intrinsics if requested (for AvsCore logic) + if("${PLATFORMID}" STREQUAL "ARM64" AND ENABLE_INTEL_SIMD) + target_compile_definitions(${AFFECTED_TARGET} PRIVATE USE_SOFT_INTRINSICS) + endif() + + # Needed to properly handle __has_include() in avs_core/filesystem.h + # See note in filesystem/README.md + target_compile_options(${AFFECTED_TARGET} PRIVATE /Zc:__cplusplus) + + # Prevent VC++ secure CRT warnings, and add __SSE2__ flag. (Why?) + target_compile_definitions(${AFFECTED_TARGET} PRIVATE + _CRT_SECURE_NO_WARNINGS + _SECURE_SCL=0 + _CRTDBG_MAP_ALLOC + __SSE2__ + ) + + # INTEL intrinsics master switch (if enabled) + if(ENABLE_INTEL_SIMD) + target_compile_definitions(${AFFECTED_TARGET} PRIVATE INTEL_INTRINSICS) + endif() + + # Compiler-specific options for IntelLLVM / Clang + if(CLANG_IN_VS STREQUAL "1") + target_compile_options(${AFFECTED_TARGET} PRIVATE /EHa -Wno-inconsistent-missing-override) + target_compile_options(${AFFECTED_TARGET} PRIVATE -Wno-unused-function -Wno-reorder -Wno-unused-value -Wno-gcc-compat) + elseif(IntelLLVM_IN_VS STREQUAL "1") + target_compile_options(${AFFECTED_TARGET} PRIVATE -Wno-inconsistent-missing-override /EHa /fp:precise) + target_compile_options(${AFFECTED_TARGET} PRIVATE -Wno-unused-function -Wno-reorder -Wno-unused-value -Wno-gcc-compat) + elseif(IntelClassic_IN_VS STREQUAL "1") + target_compile_options(${AFFECTED_TARGET} PRIVATE /EHa) + else() + # Plain MSVC + target_compile_options(${AFFECTED_TARGET} PRIVATE /EHa) + if (NOT (MSVC_VERSION LESS 1930)) # VS2022+ + target_compile_options(${AFFECTED_TARGET} PRIVATE /fp:contract) + endif() + endif() + + # Enable standards-conformance mode for MSVC compilers that support this + # flag (Visual C++ 2017 and later). Default. DirectShowSource will remove if needed. + # The headers in the XP-side SDK also have errors if built in conformance mode, + # so if we're building for XP, don't turn that on. + + # Plus check: Skip /permissive- if the target (e.g. DirectShowSource) requests it. + # Filled in plugin's CMakeLists.txt + get_target_property(_skip_permissive ${AFFECTED_TARGET} SKIP_PERMISSIVE_FLAG) + + if(NOT _skip_permissive) # old DirectShowSource + if (NOT WINXP_SUPPORT) + if (NOT (MSVC_VERSION LESS 1910)) + target_compile_options(${AFFECTED_TARGET} PRIVATE /permissive-) + endif() + endif() + endif() + + # Check if XP support is enabled AND if the XP toolset is used (v141_xp) + if (WINXP_SUPPORT) + if (CMAKE_GENERATOR_TOOLSET STREQUAL "v141_xp") + # C++11 static initialization fix for XP/Server 2003 + target_compile_options(${AFFECTED_TARGET} PRIVATE "/Zc:threadSafeInit-") + endif() + endif() + + # 32-bit arch tuning + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + target_compile_options(${AFFECTED_TARGET} PRIVATE /arch:${MSVC_CPU_ARCH}) + endif() + else() + # CMAKE_CXX_STANDARD doesn't cover the use-case of pre-final C++17 support, + # but I'd assume most setups with a new enough version of CMake to use + # CMAKE_CXX_STANDARD 17 would also be running a version of GCC/Clang new enough + # to not need this. So this will most likely only ever be used by setups running + # older versions of CMake; regardless, it shouldn't be necessary to force a + # CMAKE_VERSION check on this part unless the mere presence of CMAKE_CXX_STANDARD 17 + # ends up causing problems for the older compilers here. + # Legacy C++17 support for older GCC/Clang + if( ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)) OR + ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)) ) + target_compile_options(${AFFECTED_TARGET} PRIVATE -std=c++1z) + endif() + + if(ENABLE_INTEL_SIMD) + target_compile_options(${AFFECTED_TARGET} PRIVATE -msse2) + target_compile_definitions(${AFFECTED_TARGET} PRIVATE INTEL_INTRINSICS) + endif() + if(WIN32) + target_compile_definitions(${AFFECTED_TARGET} PRIVATE __CRT__NO_INLINE=1) + endif() + endif() + endif() + endforeach() + + +else() + # HEADERS_ONLY is ON + project(AviSynth-Headers VERSION ${PROJECT_VERSION_STRING} LANGUAGES CXX) message(STATUS "Install Only Headers: ON") add_library(${PROJECT_NAME} INTERFACE) @@ -388,31 +506,31 @@ else() FIND_PACKAGE(Git) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) ADD_CUSTOM_TARGET( - VersionGen - ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/avs_core/core/version.h.in - -D DST=${CMAKE_CURRENT_BINARY_DIR}/version.h - -D GIT=${GIT_EXECUTABLE} - -D REPO=${CMAKE_SOURCE_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/Version.cmake + VersionGen + ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_SOURCE_DIR}/avs_core/core/version.h.in + -D DST=${CMAKE_CURRENT_BINARY_DIR}/version.h + -D GIT=${GIT_EXECUTABLE} + -D REPO=${CMAKE_SOURCE_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/Version.cmake ) include(GNUInstallDirs) install( - FILES ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avisynth.h - ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avisynth_c.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avisynth + FILES ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avisynth.h + ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avisynth_c.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avisynth ) install( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avs - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avisynth + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/avs_core/include/avs + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/avisynth ) install( - FILES "${CMAKE_CURRENT_BINARY_DIR}/version.h" - "${CMAKE_CURRENT_BINARY_DIR}/arch.h" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/avisynth/avs" + FILES "${CMAKE_CURRENT_BINARY_DIR}/version.h" + "${CMAKE_CURRENT_BINARY_DIR}/arch.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/avisynth/avs" ) @@ -420,9 +538,9 @@ endif() # uninstall target configure_file( - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE @ONLY) + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) \ No newline at end of file diff --git a/plugins/DirectShowSource/CMakeLists.txt b/plugins/DirectShowSource/CMakeLists.txt index 668dc68b..220ed28a 100644 --- a/plugins/DirectShowSource/CMakeLists.txt +++ b/plugins/DirectShowSource/CMakeLists.txt @@ -34,12 +34,12 @@ target_link_libraries(${ProjectName} "Winmm.lib" "Quartz.lib" "Ole32.lib" "User3 # Include directories target_include_directories(${ProjectName} PRIVATE ${AvsCore_SOURCE_DIR} ${DSHOWSRC_BASECLASSES_PATH}) -if (MSVC_IDE) - # Old v7 SDK code won't compile otherwise - set(DELETE_THIS "/permissive-") - STRING( REPLACE "${DELETE_THIS}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") - STRING( REPLACE "${DELETE_THIS}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +# Mark this target for skipping /permissive- +# Old v7 SDK code won't compile otherwise, DirectShow Base Classes use non-conformant C++. +# High-level CMakeLists.txt checks this property and won't inject the flag. +set_target_properties(${ProjectName} PROPERTIES SKIP_PERMISSIVE_FLAG ON) +if (MSVC_IDE) # Copy output to a common folder for easy deployment add_custom_command( TARGET ${ProjectName} ================================================ FILE: ports/avisynthplus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AviSynth/AviSynthPlus REF "v${VERSION}" SHA512 63a6c793261690500876edf8bd31011700ab077554533efaf613372edd8cdc44a0e348b6e82723ab88be969764d41d031b58fcfbf993e447ef1a280fe90e3f80 HEAD_REF master PATCHES backport_409369a.patch # Fix Ninja + MSVC issue ) vcpkg_download_distfile(GHC_ARCHIVE URLS "https://github.com/gulrak/filesystem/archive/3f1c185ab414e764c694b8171d1c4d8c5c437517.zip" FILENAME filesystem-3f1c185ab414e764c694b8171d1c4d8c5c437517.zip SHA512 e3fe1e41b31f840ebc219fcd795e7be2973b80bb3843d6bb080786ad9e3e7f846a118673cb9e17d76bae66954e64e024a82622fb8cea7818d5d9357de661d3d1 ) file(REMOVE_RECURSE "${SOURCE_PATH}/filesystem") vcpkg_extract_source_archive(extracted_archive ARCHIVE "${GHC_ARCHIVE}") file(RENAME "${extracted_archive}" "${SOURCE_PATH}/filesystem") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_PLUGINS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/distrib/gpl.txt") ================================================ FILE: ports/avisynthplus/vcpkg.json ================================================ { "name": "avisynthplus", "version": "3.7.5", "description": "An improved version of the AviSynth frameserver, with improved features and developer friendliness", "homepage": "https://avs-plus.net/", "license": "GPL-2.0", "supports": "!arm & !uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/avro-c/avro.patch ================================================ diff --git a/lang/c/CMakeLists.txt b/lang/c/CMakeLists.txt index 123676b..d5797b4 100644 --- a/lang/c/CMakeLists.txt +++ b/lang/c/CMakeLists.txt @@ -22,6 +22,9 @@ enable_testing() set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) +option(BUILD_EXAMPLES "Build examples." OFF) +option(BUILD_TESTS "Build tests." OFF) +option(BUILD_DOCS "Build docs." OFF) # Eliminates warning about linker paths when linking both zlib and # liblzma. cmake_policy(SET CMP0003 NEW) @@ -149,20 +152,25 @@ else (ZLIB_FOUND) message("Disabled deflate codec. zlib not found.") endif (ZLIB_FOUND) -find_package(Snappy) -if (SNAPPY_FOUND AND ZLIB_FOUND) # Snappy borrows crc32 from zlib +find_package(Snappy CONFIG REQUIRED) +if (Snappy_FOUND AND ZLIB_FOUND) # Snappy borrows crc32 from zlib set(SNAPPY_PKG snappy) add_definitions(-DSNAPPY_CODEC) + set(SNAPPY_LIBRARIES Snappy::snappy) + if (UNIX) + set(SNAPPY_LIBRARIES ${SNAPPY_LIBRARIES} -lstdc++) + endif () include_directories(${SNAPPY_INCLUDE_DIRS}) message("Enabled snappy codec") -else (SNAPPY_FOUND AND ZLIB_FOUND) +else (Snappy_FOUND AND ZLIB_FOUND) set(SNAPPY_PKG "") set(SNAPPY_LIBRARIES "") message("Disabled snappy codec. libsnappy not found or zlib not found.") -endif (SNAPPY_FOUND AND ZLIB_FOUND) +endif (Snappy_FOUND AND ZLIB_FOUND) -find_package(PkgConfig) -pkg_check_modules(LZMA liblzma) +find_package(LibLZMA REQUIRED) +set(LZMA_FOUND 1) +set(LZMA_LIBRARIES LibLZMA::LibLZMA) if (LZMA_FOUND) set(LZMA_PKG liblzma) add_definitions(-DLZMA_CODEC) @@ -179,20 +187,26 @@ set(CODEC_LIBRARIES ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${SNAPPY_LIBRARIES}) set(CODEC_PKG "${ZLIB_PKG} ${LZMA_PKG} ${SNAPPY_PKG}") # Jansson JSON library -pkg_check_modules(JANSSON jansson>=2.3) -if (JANSSON_FOUND) +find_package(jansson CONFIG REQUIRED) +if (jansson_FOUND) set(JANSSON_PKG libjansson) + set(JANSSON_LIBRARIES jansson::jansson) include_directories(${JANSSON_INCLUDE_DIRS}) link_directories(${JANSSON_LIBRARY_DIRS}) -else (JANSSON_FOUND) +else (jansson_FOUND) message(FATAL_ERROR "libjansson >=2.3 not found") -endif (JANSSON_FOUND) +endif (jansson_FOUND) add_subdirectory(src) +if(BUILD_EXAMPLES) add_subdirectory(examples) +endif() +if(BUILD_TESTS) add_subdirectory(tests) +endif() +if(BUILD_DOCS) add_subdirectory(docs) - +endif() add_custom_target(pretty "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_SOURCE_DIR}/cmake_pretty.cmake") diff --git a/lang/c/src/avro/msinttypes.h b/lang/c/src/avro/msinttypes.h index 29be14b..020346d 100644 --- a/lang/c/src/avro/msinttypes.h +++ b/lang/c/src/avro/msinttypes.h @@ -54,6 +54,10 @@ // 7.8 Format conversion of integer types +#if (_MSC_VER >= 1900) +# include +#else + typedef struct { intmax_t quot; intmax_t rem; @@ -311,5 +315,6 @@ imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) #define wcstoimax _wcstoi64 #define wcstoumax _wcstoui64 +#endif // (_MSC_VER >= 1900) #endif // _MSC_INTTYPES_H_ ] diff --git a/lang/c/src/avro/msstdint.h b/lang/c/src/avro/msstdint.h index d02608a..54e8972 100644 --- a/lang/c/src/avro/msstdint.h +++ b/lang/c/src/avro/msstdint.h @@ -42,6 +42,10 @@ #include +#if (_MSC_VER >= 1900) +# include +#else + // For Visual Studio 6 in C++ mode and for many Visual Studio versions when // compiling for ARM we should wrap include with 'extern "C++" {}' // or compiler give many errors like this: @@ -243,5 +247,6 @@ typedef uint64_t uintmax_t; #endif // __STDC_CONSTANT_MACROS ] +#endif // (_MSC_VER >= 1900) #endif // _MSC_STDINT_H_ ] diff --git a/lang/c/src/avro/platform.h b/lang/c/src/avro/platform.h index 9293055..edfe1e0 100644 --- a/lang/c/src/avro/platform.h +++ b/lang/c/src/avro/platform.h @@ -35,8 +35,10 @@ extern "C" { // Defines for printing size_t. #if defined(_WIN64) #define PRIsz PRIu64 + typedef __int64 ssize_t; #elif defined(_WIN32) #define PRIsz PRIu32 + typedef long ssize_t; #else // GCC #define PRIsz "zu" #endif diff --git a/lang/c/src/avro_private.h b/lang/c/src/avro_private.h index f97ef6b..9c47d26 100644 --- a/lang/c/src/avro_private.h +++ b/lang/c/src/avro_private.h @@ -34,7 +34,7 @@ extern "C" { #endif #ifdef _WIN32 -#define snprintf _snprintf +// #define snprintf _snprintf #endif /* Note that AVRO_PLATFORM_IS_BIG_ENDIAN is *always* defined. It is diff --git a/lang/c/src/avroappend.c b/lang/c/src/avroappend.c index 7243c60..39656ff 100644 --- a/lang/c/src/avroappend.c +++ b/lang/c/src/avroappend.c @@ -20,7 +20,7 @@ #include #include #ifdef _WIN32 -#include +#include #endif #include "avro.h" diff --git a/lang/c/src/codec.c b/lang/c/src/codec.c index 613a914..8092326 100644 --- a/lang/c/src/codec.c +++ b/lang/c/src/codec.c @@ -272,7 +272,7 @@ static int encode_deflate(avro_codec_t c, void * data, int64_t len) s->next_in = (Bytef*)data; s->avail_in = (uInt)len; - s->next_out = c->block_data; + s->next_out = (Bytef*)c->block_data; s->avail_out = (uInt)c->block_size; s->total_out = 0; @@ -316,10 +316,10 @@ static int decode_deflate(avro_codec_t c, void * data, int64_t len) c->used_size = 0; - s->next_in = data; + s->next_in = (Bytef*)data; s->avail_in = len; - s->next_out = c->block_data; + s->next_out = (Bytef*)c->block_data; s->avail_out = c->block_size; s->total_out = 0; @@ -340,7 +340,7 @@ static int decode_deflate(avro_codec_t c, void * data, int64_t len) if (err == Z_BUF_ERROR) { c->block_data = avro_realloc(c->block_data, c->block_size, c->block_size * 2); - s->next_out = c->block_data + s->total_out; + s->next_out = (Bytef*)c->block_data + s->total_out; s->avail_out += c->block_size; c->block_size = c->block_size * 2; } @@ -443,7 +443,7 @@ static int encode_lzma(avro_codec_t codec, void * data, int64_t len) return 1; } - ret = lzma_raw_buffer_encode(filters, NULL, data, len, codec->block_data, &written, codec->block_size); + ret = lzma_raw_buffer_encode(filters, NULL, (const uint8_t*)data, len, (uint8_t*)codec->block_data, &written, codec->block_size); codec->used_size = written; @@ -474,8 +474,8 @@ static int decode_lzma(avro_codec_t codec, void * data, int64_t len) do { - ret = lzma_raw_buffer_decode(filters, NULL, data, - &read_pos, len, codec->block_data, &write_pos, + ret = lzma_raw_buffer_decode(filters, NULL, (const uint8_t*)data, + &read_pos, len, (uint8_t*)codec->block_data, &write_pos, codec->block_size); codec->used_size = write_pos; diff --git a/lang/c/src/schema.c b/lang/c/src/schema.c index 7b38900..e3794d5 100644 --- a/lang/c/src/schema.c +++ b/lang/c/src/schema.c @@ -74,7 +74,7 @@ static int is_avro_id(const char *name) * namespace (as a newly allocated buffer using Avro's allocator). */ static char *split_namespace_name(const char *fullname, const char **name_out) { - char *last_dot = strrchr(fullname, '.'); + const char *last_dot = strrchr(fullname, '.'); if (last_dot == NULL) { *name_out = fullname; return NULL; @@ -770,12 +770,12 @@ avro_schema_t avro_schema_link_target(avro_schema_t schema) } static const char * -qualify_name(const char *name, const char *namespace) +qualify_name(const char *name, const char *namespaceX) { char *full_name; - if (namespace != NULL && strchr(name, '.') == NULL) { - full_name = avro_str_alloc(strlen(name) + strlen(namespace) + 2); - sprintf(full_name, "%s.%s", namespace, name); + if (namespaceX != NULL && strchr(name, '.') == NULL) { + full_name = avro_str_alloc(strlen(name) + strlen(namespaceX) + 2); + sprintf(full_name, "%s.%s", namespaceX, name); } else { full_name = avro_strdup(name); } @@ -786,20 +786,20 @@ static int save_named_schemas(const avro_schema_t schema, st_table *st) { const char *name = avro_schema_name(schema); - const char *namespace = avro_schema_namespace(schema); - const char *full_name = qualify_name(name, namespace); + const char *namespaceX = avro_schema_namespace(schema); + const char *full_name = qualify_name(name, namespaceX); int rval = st_insert(st, (st_data_t) full_name, (st_data_t) schema); return rval; } static avro_schema_t -find_named_schemas(const char *name, const char *namespace, st_table *st) +find_named_schemas(const char *name, const char *namespaceX, st_table *st) { union { avro_schema_t schema; st_data_t data; } val; - const char *full_name = qualify_name(name, namespace); + const char *full_name = qualify_name(name, namespaceX); int rval = st_lookup(st, (st_data_t) full_name, &(val.data)); avro_str_free((char *)full_name); if (rval) { @@ -812,7 +812,7 @@ find_named_schemas(const char *name, const char *namespace, st_table *st) static int avro_type_from_json_t(json_t *json, avro_type_t *type, st_table *named_schemas, avro_schema_t *named_type, - const char *namespace) + const char *namespaceX) { json_t *json_type; const char *type_str; @@ -863,7 +863,7 @@ avro_type_from_json_t(json_t *json, avro_type_t *type, *type = AVRO_MAP; } else if (strcmp(type_str, "fixed") == 0) { *type = AVRO_FIXED; - } else if ((*named_type = find_named_schemas(type_str, namespace, named_schemas))) { + } else if ((*named_type = find_named_schemas(type_str, namespaceX, named_schemas))) { *type = AVRO_LINK; } else { avro_set_error("Unknown Avro \"type\": %s", type_str); @@ -954,15 +954,15 @@ avro_schema_from_json_t(json_t *json, avro_schema_t *schema, } if (strchr(fullname, '.')) { - char *namespace = split_namespace_name(fullname, &name); - *schema = avro_schema_record(name, namespace); - avro_str_free(namespace); + char *namespaceX = split_namespace_name(fullname, &name); + *schema = avro_schema_record(name, namespaceX); + avro_str_free(namespaceX); } else if (json_is_string(json_namespace)) { - const char *namespace = json_string_value(json_namespace); - if (strlen(namespace) == 0) { - namespace = NULL; + const char *namespaceX = json_string_value(json_namespace); + if (strlen(namespaceX) == 0) { + namespaceX = NULL; } - *schema = avro_schema_record(fullname, namespace); + *schema = avro_schema_record(fullname, namespaceX); } else { *schema = avro_schema_record(fullname, parent_namespace); } @@ -1053,16 +1053,16 @@ avro_schema_from_json_t(json_t *json, avro_schema_t *schema, } if (strchr(fullname, '.')) { - char *namespace; - namespace = split_namespace_name(fullname, &name); - *schema = avro_schema_enum_ns(name, namespace); - avro_str_free(namespace); + char *namespaceX; + namespaceX = split_namespace_name(fullname, &name); + *schema = avro_schema_enum_ns(name, namespaceX); + avro_str_free(namespaceX); } else if (json_is_string(json_namespace)) { - const char *namespace = json_string_value(json_namespace); - if (strlen(namespace) == 0) { - namespace = NULL; + const char *namespaceX = json_string_value(json_namespace); + if (strlen(namespaceX) == 0) { + namespaceX = NULL; } - *schema = avro_schema_enum_ns(fullname, namespace); + *schema = avro_schema_enum_ns(fullname, namespaceX); } else { *schema = avro_schema_enum_ns(fullname, parent_namespace); } @@ -1190,16 +1190,16 @@ avro_schema_from_json_t(json_t *json, avro_schema_t *schema, fullname = json_string_value(json_name); if (strchr(fullname, '.')) { - char *namespace; - namespace = split_namespace_name(fullname, &name); - *schema = avro_schema_fixed_ns(name, namespace, (int64_t) size); - avro_str_free(namespace); + char *namespaceX; + namespaceX = split_namespace_name(fullname, &name); + *schema = avro_schema_fixed_ns(name, namespaceX, (int64_t) size); + avro_str_free(namespaceX); } else if (json_is_string(json_namespace)) { - const char *namespace = json_string_value(json_namespace); - if (strlen(namespace) == 0) { - namespace = NULL; + const char *namespaceX = json_string_value(json_namespace); + if (strlen(namespaceX) == 0) { + namespaceX = NULL; } - *schema = avro_schema_fixed_ns(fullname, namespace, (int64_t) size); + *schema = avro_schema_fixed_ns(fullname, namespaceX, (int64_t) size); } else { *schema = avro_schema_fixed_ns(fullname, parent_namespace, (int64_t) size); } @@ -1821,9 +1821,9 @@ static int write_link(avro_writer_t out, const struct avro_link_schema_t *link, { int rval; check(rval, avro_write_str(out, "\"")); - const char *namespace = avro_schema_namespace(link->to); - if (namespace && nullstrcmp(namespace, parent_namespace)) { - check(rval, avro_write_str(out, namespace)); + const char *namespaceX = avro_schema_namespace(link->to); + if (namespaceX && nullstrcmp(namespaceX, parent_namespace)) { + check(rval, avro_write_str(out, namespaceX)); check(rval, avro_write_str(out, ".")); } check(rval, avro_write_str(out, avro_schema_name(link->to))); ================================================ FILE: ports/avro-c/bswap.patch ================================================ diff --git a/lang/c/src/codec.c b/lang/c/src/codec.c index 613a91437..176fb21d6 100644 --- a/lang/c/src/codec.c +++ b/lang/c/src/codec.c @@ -27,6 +27,9 @@ # elif defined(_WIN32) # include # define __bswap_32 _byteswap_ulong +# elif defined(__ANDROID__) +# include +# define __bswap_32 bswap_32 # else # include # endif ================================================ FILE: ports/avro-c/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/avro/avro-${VERSION}/avro-src-${VERSION}.tar.gz" FILENAME "avro-src-${VERSION}.tar.gz" SHA512 0d86bfece0f12f8bc424e27e71e3e6b828c4280fa1a6d7dc7e0d58bff2351f2c1fd3ccb98c1291dfc6c67d9cb5a0bdb7bb9f36ba5bd6b26fa9545f358db42663 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES avro.patch # Private vcpkg build fixes bswap.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/lang/c" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # the files are broken and there is no way to fix it because the snappy dependency has no pkgconfig file file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") vcpkg_copy_tools(TOOL_NAMES avroappend avrocat AUTO_CLEAN) if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES avropipe avromod AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lang/c/LICENSE") ================================================ FILE: ports/avro-c/vcpkg.json ================================================ { "name": "avro-c", "version": "1.12.1", "port-version": 1, "description": "Apache Avro is a data serialization system", "homepage": "https://github.com/apache/avro", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "jansson", "liblzma", "snappy", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/avro-cpp/fix-cmake.patch ================================================ diff --git a/lang/c++/CMakeLists.txt b/lang/c++/CMakeLists.txt index 6800d330f..c9ec221d9 100644 --- a/lang/c++/CMakeLists.txt +++ b/lang/c++/CMakeLists.txt @@ -70,12 +70,12 @@ if (WIN32 AND NOT CYGWIN AND NOT MSYS) add_definitions (/EHa) add_definitions ( -DNOMINMAX - -DBOOST_SYSTEM_DYN_LINK - -DBOOST_ALL_NO_LIB) + ) endif() if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wuseless-cast -Wconversion -pedantic -Werror") + # Remove " -Werror" because of warning from boost-math (will require C++ 14 soon) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wduplicated-cond -Wduplicated-branches -Wlogical-op -Wuseless-cast -Wconversion -pedantic") endif () if (AVRO_BUILD_TESTS OR AVRO_USE_BOOST) ================================================ FILE: ports/avro-cpp/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/avro/avro-${VERSION}/avro-src-${VERSION}.tar.gz" FILENAME "avro-src-${VERSION}.tar.gz" SHA512 0d86bfece0f12f8bc424e27e71e3e6b828c4280fa1a6d7dc7e0d58bff2351f2c1fd3ccb98c1291dfc6c67d9cb5a0bdb7bb9f36ba5bd6b26fa9545f358db42663 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-cmake.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools AVRO_BUILD_EXECUTABLES INVERTED_FEATURES snappy CMAKE_DISABLE_FIND_PACKAGE_Snappy ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/lang/c++" OPTIONS -DAVRO_BUILD_STATIC=${BUILD_STATIC} -DAVRO_BUILD_SHARED=${BUILD_SHARED} -DAVRO_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/avro-cpp") vcpkg_copy_pdbs() if(AVRO_BUILD_EXECUTABLES) vcpkg_copy_tools(TOOL_NAMES avrogencpp AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lang/c++/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/avro-cpp/usage ================================================ avro-cpp provides CMake targets: find_package(avro-cpp CONFIG REQUIRED) target_link_libraries(main PRIVATE avro-cpp::avrocpp) ================================================ FILE: ports/avro-cpp/vcpkg.json ================================================ { "name": "avro-cpp", "version": "1.12.1", "port-version": 1, "description": "Apache Avro is a data serialization system", "homepage": "https://github.com/apache/avro", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "snappy": { "description": "Support Snappy for compression", "dependencies": [ "snappy" ] }, "tools": { "description": "Build extra executables" } } } ================================================ FILE: ports/awlib/fix-mac-build.patch ================================================ diff --git a/io/include/aw/io/mmap_file.h b/io/include/aw/io/mmap_file.h index 9846973..65e82aa 100644 --- a/io/include/aw/io/mmap_file.h +++ b/io/include/aw/io/mmap_file.h @@ -83,18 +83,18 @@ using win32::file_mapping; inline file_mode get_file_mode(map_perms perms) { using mp = map_perms; - switch (perms) { - case mp::none: - case mp::none|mp::exec: + switch (static_cast(perms)) { + case static_cast(mp::none): + case static_cast(mp::none|mp::exec): return file_mode::none; - case mp::read: - case mp::read|mp::exec: + case static_cast(mp::read): + case static_cast(mp::read|mp::exec): return file_mode::read; - case mp::write: + case static_cast(mp::write): return file_mode::write; - case mp::write|mp::exec: - case mp::rdwr: - case mp::rdwr|mp::exec: + case static_cast(mp::write|mp::exec): + case static_cast(mp::rdwr): + case static_cast(mp::rdwr|mp::exec): return file_mode::read|file_mode::write; } diff --git a/types/include/aw/types/bits/variant_dispatch.h b/types/include/aw/types/bits/variant_dispatch.h index 9d5dc3b..95a9394 100644 --- a/types/include/aw/types/bits/variant_dispatch.h +++ b/types/include/aw/types/bits/variant_dispatch.h @@ -71,11 +71,11 @@ struct vh_recursive { if constexpr (Length_left > 0) { if (index < Mid) - return vh_recursive::template dispatch(index, storage, f); + return vh_recursive::dispatch(index, storage, f); } if constexpr (Length_right > 1) - return vh_recursive::template dispatch(index, storage, f); + return vh_recursive::dispatch(index, storage, f); _unreachable(); } diff --git a/types/include/aw/types/byte_buffer.h b/types/include/aw/types/byte_buffer.h index 82f4693..b38c46a 100644 --- a/types/include/aw/types/byte_buffer.h +++ b/types/include/aw/types/byte_buffer.h @@ -8,6 +8,7 @@ */ #ifndef aw_types_byte_buffer_h #define aw_types_byte_buffer_h +#include #include namespace aw { /** diff --git a/types/include/aw/types/containers/queue.h b/types/include/aw/types/containers/queue.h index af8f13b..8398e8c 100644 --- a/types/include/aw/types/containers/queue.h +++ b/types/include/aw/types/containers/queue.h @@ -96,7 +96,7 @@ protected: queue_base(queue_base&& other, Allocator const& alloc) noexcept : impl(alloc) { - if (alloc == other.alloc) + if (alloc == static_cast(other.impl)) impl.swap(other.impl); else create_storage(other.allocated_size()); ================================================ FILE: ports/awlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO absurdworlds/awlib REF ${VERSION} SHA512 bfb4668abc3db176744bb674a20bf770c6406db522a14191069b8d833414285ca784f042c3ad50404f7f8bc76afe69627dfcf540080e12316abbbfe420955526 HEAD_REF master PATCHES fix-mac-build.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hudf AW_ENABLE_HUDF graphics AW_ENABLE_GRAPHICS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ${PORT} CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/awlib/vcpkg.json ================================================ { "name": "awlib", "version-date": "2024-04-06", "port-version": 2, "description": "Cross-platform utility library", "homepage": "https://github.com/absurdworlds/awlib", "license": "LGPL-3.0-or-later", "supports": "!uwp & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "graphics": { "description": "Build graphics library", "supports": "!uwp", "dependencies": [ { "name": "awlib", "default-features": false, "features": [ "hudf" ] }, "glfw3", "libpng" ] }, "hudf": { "description": "Build HuDF support" } } } ================================================ FILE: ports/aws-c-auth/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-auth REF "v${VERSION}" SHA512 a11faa06f7bd12751b123e8aff9af5bdca87d916dc2f277b46b9acb2b159fd1ab07de93670b7d64b159aa94448d5d1a8b9f20216a8cad4387fcd0f4bc47c0be5 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-auth/vcpkg.json ================================================ { "name": "aws-c-auth", "version": "0.10.1", "description": "C99 library implementation of AWS client-side authentication: standard credentials providers and signing.", "homepage": "https://github.com/awslabs/aws-c-auth", "license": "Apache-2.0", "dependencies": [ "aws-c-cal", "aws-c-http", "aws-c-sdkutils", { "name": "s2n", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-cal/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-cal REF "v${VERSION}" SHA512 62b84c3bbe9deb1618c66e29f2211c4462fdd85a1a71d63cc815f57cdbde653e659435630471c067688bf0975825717ee1148ab4e1c25e764e37917fb59dff11 HEAD_REF master PATCHES remove-libcrypto-messages.patch ) if (NOT (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX)) set(USE_OPENSSL ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE -DUSE_OPENSSL=${USE_OPENSSL} ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-cal/remove-libcrypto-messages.patch ================================================ diff --git a/cmake/modules/Findcrypto.cmake b/cmake/modules/Findcrypto.cmake index fed83bb..9c1ae28 100644 --- a/cmake/modules/Findcrypto.cmake +++ b/cmake/modules/Findcrypto.cmake @@ -105,9 +105,6 @@ else() set(CRYPTO_FOUND true) set(crypto_FOUND true) - message(STATUS "LibCrypto Include Dir: ${crypto_INCLUDE_DIR}") - message(STATUS "LibCrypto Shared Lib: ${crypto_SHARED_LIBRARY}") - message(STATUS "LibCrypto Static Lib: ${crypto_STATIC_LIBRARY}") if (NOT TARGET AWS::crypto AND (EXISTS "${crypto_LIBRARY}") ) ================================================ FILE: ports/aws-c-cal/vcpkg.json ================================================ { "name": "aws-c-cal", "version": "0.9.13", "description": "C99 wrapper for cryptography primitives.", "homepage": "https://github.com/awslabs/aws-c-cal", "license": "Apache-2.0", "dependencies": [ "aws-c-common", { "name": "openssl", "platform": "!windows & !osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-common/disable-internal-crt-option.patch ================================================ diff --git a/cmake/AwsCFlags.cmake b/cmake/AwsCFlags.cmake index 470f6db..537536b 100644 --- a/cmake/AwsCFlags.cmake +++ b/cmake/AwsCFlags.cmake @@ -82,15 +82,6 @@ function(aws_set_common_properties target) list(APPEND AWS_C_FLAGS /DAWS_SUPPORT_WIN7=1) endif() - # Set MSVC runtime libary. - # Note: there are other ways of doing this if we bump our CMake minimum to 3.14+ - # See: https://cmake.org/cmake/help/latest/policy/CMP0091.html - if (AWS_STATIC_MSVC_RUNTIME_LIBRARY OR STATIC_CRT) - list(APPEND AWS_C_FLAGS "/MT$<$:d>") - else() - list(APPEND AWS_C_FLAGS "/MD$<$:d>") - endif() - else() list(APPEND AWS_C_FLAGS -Wall -Wstrict-prototypes) ================================================ FILE: ports/aws-c-common/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-common REF "v${VERSION}" SHA512 577fdea85ea84563e2167d70f0988ceeccc6ab298a2ca034393872d1717237a64be0d0b5e9cd2083c2278b8c294bc4afb8f8d6bcc13e144259fa0e3166af35bb HEAD_REF master PATCHES disable-internal-crt-option.patch # Disable internal crt option because vcpkg contains crt processing flow ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-common/vcpkg.json ================================================ { "name": "aws-c-common", "version": "0.12.6", "description": "AWS common library for C", "homepage": "https://github.com/awslabs/aws-c-common", "license": "Apache-2.0", "supports": "!(windows & arm32) & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-compression/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-compression REF "v${VERSION}" SHA512 a44549d441e21c6f7b6a3b5d3c8ea7228e066cd7026432c121683abca54014c439790143108150e3f502be13d43102e6c99c1de0288b1a373060733f47cc57d9 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-compression/vcpkg.json ================================================ { "name": "aws-c-compression", "version": "0.3.2", "description": "C99 implementation of huffman encoding/decoding", "homepage": "https://github.com/awslabs/aws-c-compression", "license": "Apache-2.0", "dependencies": [ "aws-c-common", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-event-stream/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-event-stream REF "v${VERSION}" SHA512 4299b5c31d337f038ba591b4e792070f966207f54890dc26bc751eb8d647498002c0cb33b794dcffffc694529bff2a3f8beefc97c5917c347424f84a09480565 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-event-stream/vcpkg.json ================================================ { "name": "aws-c-event-stream", "version": "0.6.0", "description": "C99 implementation of the vnd.amazon.event-stream content-type.", "homepage": "https://github.com/awslabs/aws-c-event-stream", "license": "Apache-2.0", "dependencies": [ "aws-c-common", "aws-c-io", "aws-checksums", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-http/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-http REF "v${VERSION}" SHA512 b2e113ec686e08e38c3cad087e91c906863058f9a4a6781843ad93f1e45b929ed6b78824e169d3a5be3122b8ae11f42e10d990486e8973e3ec8f9fca4bbb1cac HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-http/vcpkg.json ================================================ { "name": "aws-c-http", "version": "0.10.11", "description": "C99 implementation of the HTTP/1.1 and HTTP/2 specifications", "homepage": "https://github.com/awslabs/aws-c-http", "license": "Apache-2.0", "dependencies": [ "aws-c-cal", "aws-c-common", "aws-c-compression", "aws-c-io", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-io/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-io REF "v${VERSION}" SHA512 5822cffa1fe74b596f68d22df4e8e0b4996753cdd7f00465f0df914cf07e55a1c801fe35369a5aefdde516ada64f89ffc2deb7d7e5dd42edf22ccc13ffcfe4c0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-io/vcpkg.json ================================================ { "name": "aws-c-io", "version": "0.26.2", "description": "Handles all IO and TLS work for application protocols.", "homepage": "https://github.com/awslabs/aws-c-io", "license": "Apache-2.0", "dependencies": [ "aws-c-cal", "aws-c-common", { "name": "s2n", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-mqtt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-mqtt REF "v${VERSION}" SHA512 f66f31ecebf23fa5336a32052f4b19f6e54ca00e42706e0731850c28c4bc22dd7cddac911d520efebb96177d65b57778d91cabf00c00882a78b4fb48c0505dd5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-mqtt/vcpkg.json ================================================ { "name": "aws-c-mqtt", "version": "0.15.1", "description": "C99 implementation of the MQTT 3.1.1 specification.", "homepage": "https://github.com/awslabs/aws-c-mqtt", "license": "Apache-2.0", "dependencies": [ "aws-c-http", "aws-c-io", { "name": "s2n", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-c-s3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-s3 REF "v${VERSION}" SHA512 dea6e7e03ae045d1f09cce67e4099127f1bfaa3b7397c9576146ebf2f31cfbb00781537f75805a829100927e529b35908bd909ad8e30d345054bd8b5d86f767a HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES endpoint-resolver AWS_ENABLE_S3_ENDPOINT_RESOLVER ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ${FEATURE_OPTIONS} ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-s3/vcpkg.json ================================================ { "name": "aws-c-s3", "version": "0.11.5", "description": "C99 library implementation for communicating with the S3 service, designed for maximizing throughput on high bandwidth EC2 instances.", "homepage": "https://github.com/awslabs/aws-c-s3", "license": "Apache-2.0", "dependencies": [ "aws-c-auth", "aws-c-http", "aws-c-sdkutils", "aws-checksums", { "name": "s2n", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "endpoint-resolver": { "description": "Whether to include the s3 endpoint resolver and related config files" } } } ================================================ FILE: ports/aws-c-sdkutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-c-sdkutils REF "v${VERSION}" SHA512 4c25a92495d056145c69023922b41a8ec80660171d4b6cbbcc029f63a93e4d57868121b8baca10cb671d275a49ab6d977746871f671bc913f5eee2f960937bc4 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-c-sdkutils/vcpkg.json ================================================ { "name": "aws-c-sdkutils", "version": "0.2.4", "description": "C99 library implementing AWS SDK specific utilities. Includes utilities for ARN parsing, reading AWS profiles, etc...", "homepage": "https://github.com/awslabs/aws-c-sdkutils", "license": "Apache-2.0", "dependencies": [ "aws-c-common", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-checksums/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-checksums REF "v${VERSION}" SHA512 c61d0ea4129b717d3bf3760b6fc8fa8e04af9b1810ca390feab644c12889455a3d7d8886ce88f76dc6770ae65eb6558417df0760fc62145fa46f9e13ea0d3993 HEAD_REF master ) if (VCPKG_CRT_LINKAGE STREQUAL static) set(STATIC_CRT_LNK ON) else() set(STATIC_CRT_LNK OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTATIC_CRT=${STATIC_CRT_LNK} "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-checksums/vcpkg.json ================================================ { "name": "aws-checksums", "version": "0.2.10", "description": "Cross-Platform HW accelerated CRC32c and CRC32 with fallback to efficient SW implementations.", "homepage": "https://github.com/awslabs/aws-checksums", "license": "Apache-2.0", "dependencies": [ "aws-c-common", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-crt-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-crt-cpp REF "v${VERSION}" SHA512 734f5ffb5b685e21322abadbeec5a93f06b1273a2690461148096f24db5b56b5adae8c8ef8e209e30c661ffc73b1ab721ca2b33c24366b2bc62507f7a2eaa0b8 ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS "-DSTATIC_CRT=${STATIC_CRT}" -DBUILD_DEPS=OFF "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files -DBUILD_TESTING=FALSE -DAWS_WARNINGS_ARE_ERRORS=OFF ) vcpkg_cmake_install() string(REPLACE "dynamic" "shared" subdir "${VCPKG_LIBRARY_LINKAGE}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}/${subdir}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" [[/${type}/]] "/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-crt-cpp/vcpkg.json ================================================ { "name": "aws-crt-cpp", "version": "0.37.4", "description": "C++ wrapper around the aws-c-* libraries. Provides Cross-Platform Transport Protocols and SSL/TLS implementations for C++.", "homepage": "https://github.com/awslabs/aws-crt-cpp", "license": "Apache-2.0", "dependencies": [ "aws-c-auth", "aws-c-cal", "aws-c-common", "aws-c-compression", "aws-c-event-stream", "aws-c-http", "aws-c-io", "aws-c-mqtt", "aws-c-s3", "aws-checksums", { "name": "s2n", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-lambda-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awslabs/aws-lambda-cpp REF "v${VERSION}" SHA512 a7be4a5c194139f4bd246b9212ea2b1718508a23b8650537fa5dc97873b4d58ce3d340740ba980958957c7f56d3f7aff535bd465ac48dae121b07d9a5be00d02 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME aws-lambda-runtime CONFIG_PATH lib/aws-lambda-runtime/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/aws-lambda-runtime") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/aws-lambda-runtime") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-lambda-cpp/vcpkg.json ================================================ { "name": "aws-lambda-cpp", "version": "0.2.10", "description": "C++ Runtime for AWS Lambda.", "license": "Apache-2.0", "supports": "linux", "dependencies": [ "curl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/aws-sdk-cpp/configure-binary-dir.patch ================================================ diff --git a/cmake/initialize_project_version.cmake b/cmake/initialize_project_version.cmake index c9b42f603..894c10f95 100644 --- a/cmake/initialize_project_version.cmake +++ b/cmake/initialize_project_version.cmake @@ -6,9 +6,8 @@ if(GIT_FOUND) endif() if(NOT VERSION_STRING) - # extract it from the existing generated header file - file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h" __SDK_VERSION_LINE LIMIT_COUNT 1 REGEX "AWS_SDK_VERSION_STRING.*[0-9]+\\.[0-9]+\\.[0-9]+" ) - string( REGEX MATCH "([0-9]+\\.[0-9]+\\.[0-9]+)" VERSION_STRING "${__SDK_VERSION_LINE}" ) + # read it from the version file + file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" VERSION_STRING) endif() set(PROJECT_VERSION "${VERSION_STRING}") diff --git a/src/aws-cpp-sdk-core/CMakeLists.txt b/src/aws-cpp-sdk-core/CMakeLists.txt index c6a0f1c26..c9ea5e8d7 100644 --- a/src/aws-cpp-sdk-core/CMakeLists.txt +++ b/src/aws-cpp-sdk-core/CMakeLists.txt @@ -20,7 +20,7 @@ if(VERSION_STRING) set(AWSSDK_VERSION_PATCH ${AWSSDK_VERSION_PATCH}) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/include/aws/core/VersionConfig.h.in" - "${CMAKE_CURRENT_SOURCE_DIR}/include/aws/core/VersionConfig.h" + "${CMAKE_CURRENT_BINARY_DIR}/include/aws/core/VersionConfig.h" NEWLINE_STYLE UNIX) else() message("Not able to compute versioning string, not updating.") @@ -38,7 +38,7 @@ else() endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/include/aws/core/SDKConfig.h.in" - "${CMAKE_CURRENT_SOURCE_DIR}/include/aws/core/SDKConfig.h" + "${CMAKE_CURRENT_BINARY_DIR}/include/aws/core/SDKConfig.h" NEWLINE_STYLE UNIX) file(GLOB AWS_HEADERS "include/aws/core/*.h") @@ -94,6 +94,8 @@ file(GLOB SMITHY_IDENTITY_SIGNER_BUILTIN_HEADERS "include/smithy/identity/signer file(GLOB SMITHY_INTERCEPTOR_HEADERS "include/smithy/interceptor/*.h") file(GLOB SMITHY_INTERCEPTOR_IMPL_HEADERS "include/smithy/interceptor/impl/*.h") +file(GLOB AWS_GENERATED_HEADERS "${CMAKE_CURRENT_BINARY_DIR}/include/aws/core/*.h") + file(GLOB AWS_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp") file(GLOB AWS_TINYXML2_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/source/external/tinyxml2/*.cpp") file(GLOB CJSON_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/source/external/cjson/*.cpp") @@ -387,7 +389,7 @@ file(GLOB AWS_NATIVE_SDK_SRC # Visual studio project directory structure if(MSVC) - source_group("Header Files\\aws\\core" FILES ${AWS_HEADERS}) + source_group("Header Files\\aws\\core" FILES ${AWS_HEADERS} ${AWS_GENERATED_HEADERS}) source_group("Header Files\\aws\\core\\auth" FILES ${AWS_AUTH_HEADERS}) source_group("Header Files\\aws\\core\\auth\\signer" FILES ${AWS_AUTH_SIGNER_HEADERS}) source_group("Header Files\\aws\\core\\auth\\signer-provider" FILES ${AWS_AUTH_SIGNER_PROVIDER_HEADERS}) @@ -597,6 +599,7 @@ endif() target_include_directories(${PROJECT_NAME} PUBLIC $ + $ $) if (EXTERNAL_DEPS_INCLUDE_DIRS) @@ -669,7 +672,7 @@ if(SIMPLE_INSTALL) endif() endif() -install (FILES ${AWS_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/core) +install (FILES ${AWS_HEADERS} ${AWS_GENERATED_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/core) install (FILES ${AWS_AUTH_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/core/auth) install (FILES ${AWS_AUTH_SIGNER_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/core/auth/signer) install (FILES ${AWS_AUTH_SIGNER_PROVIDER_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/core/auth/signer-provider) diff --git a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h b/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h deleted file mode 100644 index 816c0579a..000000000 --- a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0. - */ -#pragma once - -#define AWS_SDK_VERSION_STRING "1.11.769" -#define AWS_SDK_VERSION_MAJOR 1 -#define AWS_SDK_VERSION_MINOR 11 -#define AWS_SDK_VERSION_PATCH 769 ================================================ FILE: ports/aws-sdk-cpp/find-dependency.patch ================================================ diff --git a/toolchains/core-config.cmake b/toolchains/core-config.cmake index d90bfaf747..ab14402577 100644 --- a/toolchains/core-config.cmake +++ b/toolchains/core-config.cmake @@ -15,5 +15,9 @@ if (AWSSDK_CRYPTO_IN_SOURCE_BUILD) find_dependency(crypto) find_dependency(ssl) endif() +find_dependency(ZLIB) +if("@ENABLE_CURL_CLIENT@") + find_dependency(CURL) +endif() set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_PREV}) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") ================================================ FILE: ports/aws-sdk-cpp/fix-aws-root.patch ================================================ diff --git a/cmake/AWSSDKConfig.cmake b/cmake/AWSSDKConfig.cmake --- a/cmake/AWSSDKConfig.cmake (revision 2f90f9fd6c56460bd382243aa215fcddcb5883c8) +++ b/cmake/AWSSDKConfig.cmake (date 1636913220527) @@ -54,18 +54,14 @@ string(REPLACE ";" "${AWS_MODULE_DIR};" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}${AWS_MODULE_DIR}") list(APPEND CMAKE_MODULE_PATH ${AWS_MODULE_PATH} ${SYSTEM_MODULE_PATH}) -# On Windows, dlls are treated as runtime target and installed in bindir if (WIN32 AND AWSSDK_INSTALL_AS_SHARED_LIBS) - set(AWSSDK_INSTALL_LIBDIR "${AWSSDK_INSTALL_BINDIR}") # If installed CMake scripts are associated with dll library, define USE_IMPORT_EXPORT for customers add_definitions(-DUSE_IMPORT_EXPORT) endif() # Compute the default installation root relative to this file. -# from prefix/lib/cmake/AWSSDK/xx.cmake to prefix get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH) get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH) get_filename_component(AWSSDK_DEFAULT_ROOT_DIR "${AWSSDK_DEFAULT_ROOT_DIR}" PATH) get_filename_component(AWS_NATIVE_SDK_ROOT "${CMAKE_CURRENT_SOURCE_DIR}" ABSOLUTE) ================================================ FILE: ports/aws-sdk-cpp/fix_find_curl.patch ================================================ diff --git a/cmake/external_dependencies.cmake b/cmake/external_dependencies.cmake index acf16c0..3a49fb4 100644 --- a/cmake/external_dependencies.cmake +++ b/cmake/external_dependencies.cmake @@ -80,23 +80,12 @@ if(NOT NO_HTTP_CLIENT AND NOT USE_CRT_HTTP_CLIENT) set(BUILD_CURL 1) message(STATUS " Building Curl as part of AWS SDK") else() - include(FindCURL) + find_package(CURL REQUIRED) if(NOT CURL_FOUND) message(FATAL_ERROR "Could not find curl") + else() + set(CURL_LIBRARIES CURL::libcurl) endif() - - # When built from source using cmake, curl does not include - # CURL_INCLUDE_DIRS or CURL_INCLUDE_DIRS so we need to use - # find_package to fix it - if ("${CURL_INCLUDE_DIRS}" STREQUAL "" AND "${CURL_LIBRARIES}" STREQUAL "") - message(STATUS "Could not find curl include or library path, falling back to find with config.") - find_package(CURL) - set(CURL_LIBRARIES CURL::libcurl) - else () - message(STATUS " Curl include directory: ${CURL_INCLUDE_DIRS}") - List(APPEND EXTERNAL_DEPS_INCLUDE_DIRS ${CURL_INCLUDE_DIRS}) - set(CLIENT_LIBS ${CURL_LIBRARIES}) - endif () set(CLIENT_LIBS_ABSTRACT_NAME curl) message(STATUS " Curl target link: ${CURL_LIBRARIES}") endif() ================================================ FILE: ports/aws-sdk-cpp/generateFeatures.ps1 ================================================ [CmdletBinding()] param( [Parameter(Mandatory=$false)][string]$PortDirectory = $PSScriptRoot, [Parameter(Mandatory=$false)][string]$vcpkg = "$PSScriptRoot/../../vcpkg" ) $ErrorActionPreference = "Stop" $ManifestIn = "$PortDirectory/vcpkg.in.json" $ManifestOut = "$PortDirectory/vcpkg.json" $manifest = Get-Content $ManifestIn | ConvertFrom-Json $version = $manifest.version Write-Host "Using version from vcpkg.in.json: $version" $ExtractedSources = "${env:TEMP}/aws-sdk-cpp-generateFeatures-$version" if (-not (Test-Path $ExtractedSources)) { if (Test-Path "$ExtractedSources.tmp") { Remove-Item -Force "$ExtractedSources.tmp" } git clone --depth=1 "https://github.com/aws/aws-sdk-cpp" "$ExtractedSources.tmp" | Out-Host git -c "$ExtractedSources.tmp" checkout $version Move-Item "$ExtractedSources.tmp" "$ExtractedSources" } Write-Host "Using sources directory: $ExtractedSources" $subfolders = Get-ChildItem -Path "$ExtractedSources\generated\src\aws-cpp-sdk-*", "$ExtractedSources\src\aws-cpp-sdk*" | Sort-Object -Property Name $manifest | Add-Member ` -NotePropertyName '$note' ` -NotePropertyValue 'Automatically generated by generateFeatures.ps1 from vcpkg.in.json, do not edit manually' $manifest | Add-Member -NotePropertyName 'features' -NotePropertyValue @{} function GetDescription($dir, $modulename) { if (Test-Path "$dir\CMakeLists.txt") { $descs = @(Select-String -Path "$dir\CMakeLists.txt" -Pattern "`"C\+\+ SDK for the AWS [^`"]*`"") if ($descs.count -eq 1) { $desc = $descs[0].Matches.Value -replace "`"","" "$desc" } else { "C++ SDK for the AWS $modulename service" } } else { "C++ SDK for the AWS $modulename service" } } $featureDependencies = @{} Select-String -Path "$ExtractedSources\cmake\sdksCommon.cmake" -Pattern "list\(APPEND SDK_DEPENDENCY_LIST `"([\w-]+):([\w-,]+)`"\)" -AllMatches ` | ForEach-Object { $_.Matches } ` | ForEach-Object { $featureDependencies[$_.Groups[1].Value] = @($_.Groups[2].Value -split "," ` | Where-Object { $_ -ne "core" }) } foreach ($subfolder in $subfolders) { $modulename = $subfolder.name -replace "^aws-cpp-sdk-","" if ($modulename -match "-tests`$") { continue } if ($modulename -match "-sample`$") { continue } if ($modulename -eq "core") { continue } $lowermodulename = $modulename.ToLower() $featureObj = @{ description = (GetDescription $subfolder $modulename) } if ($featureDependencies.ContainsKey($lowermodulename)) { $featureObj.dependencies = ,@{ name = "aws-sdk-cpp"; "default-features" = $false; "features" = $featureDependencies[$lowermodulename] } } $manifest.features.Add("$lowermodulename", $featureObj) } [IO.File]::WriteAllText($ManifestOut, (ConvertTo-Json -Depth 10 -InputObject $manifest)) & $vcpkg format-manifest --feature-flags=-manifests $ManifestOut ================================================ FILE: ports/aws-sdk-cpp/lock-curl-http-and-tls-settings.patch ================================================ diff --git a/src/aws-cpp-sdk-core/CMakeLists.txt b/src/aws-cpp-sdk-core/CMakeLists.txt index c44546b0e..b66888362 100644 --- a/src/aws-cpp-sdk-core/CMakeLists.txt +++ b/src/aws-cpp-sdk-core/CMakeLists.txt @@ -113,13 +113,8 @@ if(ENABLE_CURL_CLIENT) int main() { CURL* handle = curl_easy_init(); return curl_easy_setopt(handle, CURLOPT_PROXY_SSLCERT, \"client.pem\"); }") - if (CMAKE_CROSSCOMPILING) - check_c_source_compiles("${CHECK_CURL_HAS_H2}" CURL_HAS_H2) - check_c_source_compiles("${CHECK_CURL_HAS_TLS_PROXY}" CURL_HAS_TLS_PROXY) - else() - check_c_source_runs("${CHECK_CURL_HAS_H2}" CURL_HAS_H2) - check_c_source_runs("${CHECK_CURL_HAS_TLS_PROXY}" CURL_HAS_TLS_PROXY) - endif() + set(CURL_HAS_H2 OFF) + set(CURL_HAS_TLS_PROXY ON) elseif(ENABLE_WINDOWS_CLIENT) # NOTE: HTTP/2 is not supported when using IXML_HTTP_REQUEST_2 if(USE_IXML_HTTP_REQUEST_2) ================================================ FILE: ports/aws-sdk-cpp/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/aws-sdk-cpp REF "${VERSION}" SHA512 7718b6198993322a76c6a1e3e92f4c09b39d052d2ed26eefc1a70ed4f733f89c0c5b6f5881c0d1b6d542e01ac3c4ddc02fe9b3a6e7a96318f9c8f6bf3598e3df PATCHES fix-aws-root.patch lock-curl-http-and-tls-settings.patch fix_find_curl.patch find-dependency.patch configure-binary-dir.patch # https://github.com/aws/aws-sdk-cpp/pull/3459 ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" FORCE_SHARED_CRT) set(EXTRA_ARGS "") if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(rpath "@loader_path") elseif (VCPKG_TARGET_IS_ANDROID) set(EXTRA_ARGS "-DTARGET_ARCH=ANDROID" "-DGIT_EXECUTABLE=--invalid-git-executable--" "-DGIT_FOUND=TRUE" "-DNDK_DIR=$ENV{ANDROID_NDK_HOME}" "-DANDROID_BUILD_ZLIB=FALSE" "-DANDROID_BUILD_CURL=FALSE" "-DANDROID_BUILD_OPENSSL=FALSE" ) else() set(rpath "\$ORIGIN") endif() string(REPLACE "awsmigrationhub" "AWSMigrationHub" targets "${FEATURES}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${EXTRA_ARGS} "-DENABLE_UNITY_BUILD=ON" "-DENABLE_TESTING=OFF" "-DFORCE_SHARED_CRT=${FORCE_SHARED_CRT}" "-DBUILD_ONLY=${targets}" "-DBUILD_DEPS=OFF" "-DBUILD_SHARED_LIBS=OFF" "-DAWS_SDK_WARNINGS_ARE_ERRORS=OFF" "-DCMAKE_INSTALL_RPATH=${rpath}" "-DCMAKE_MODULE_PATH=${CURRENT_INSTALLED_DIR}/share/aws-c-common" # use extra cmake files ) vcpkg_cmake_install() foreach(TARGET IN LISTS targets) string(TOLOWER "aws-cpp-sdk-${TARGET}" package) vcpkg_cmake_config_fixup(PACKAGE_NAME "${package}" CONFIG_PATH "lib/cmake/aws-cpp-sdk-${TARGET}" DO_NOT_DELETE_PARENT_CONFIG_PATH) endforeach() vcpkg_cmake_config_fixup(PACKAGE_NAME "awssdk" CONFIG_PATH "lib/cmake/AWSSDK") vcpkg_copy_pdbs() file(GLOB_RECURSE AWS_TARGETS "${CURRENT_PACKAGES_DIR}/share/*/*-targets-*.cmake") foreach(AWS_TARGET IN LISTS AWS_TARGETS) file(READ ${AWS_TARGET} _contents) string(REGEX REPLACE "bin\\/([A-Za-z0-9_.-]+\\.lib)" "lib/\\1" _contents "${_contents}") file(WRITE ${AWS_TARGET} "${_contents}") endforeach() file(GLOB AWS_CONFIGS "${CURRENT_PACKAGES_DIR}/share/*/aws-cpp-sdk-*-config.cmake") list(FILTER AWS_CONFIGS EXCLUDE REGEX "aws-cpp-sdk-core-config\\.cmake\$") foreach(AWS_CONFIG IN LISTS AWS_CONFIGS) file(READ "${AWS_CONFIG}" _contents) file(WRITE "${AWS_CONFIG}" "include(CMakeFindDependencyMacro)\nfind_dependency(aws-cpp-sdk-core)\n${_contents}") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/nuget" "${CURRENT_PACKAGES_DIR}/debug/nuget" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*.lib) if(LIB_FILES) file(COPY ${LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(REMOVE ${LIB_FILES}) endif() file(GLOB DEBUG_LIB_FILES ${CURRENT_PACKAGES_DIR}/debug/bin/*.lib) if(DEBUG_LIB_FILES) file(COPY ${DEBUG_LIB_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(REMOVE ${DEBUG_LIB_FILES}) endif() file(APPEND "${CURRENT_PACKAGES_DIR}/include/aws/core/SDKConfig.h" "#ifndef USE_IMPORT_EXPORT\n#define USE_IMPORT_EXPORT\n#endif") endif() configure_file("${CURRENT_PORT_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/aws-sdk-cpp/usage ================================================ The package @PORT@:@TARGET_TRIPLET@ provides CMake targets: When using AWSSDK, AWSSDK_ROOT_DIR must be defined by the user. find_package(AWSSDK CONFIG COMPONENTS core dynamodb kinesis s3 REQUIRED) target_include_directories(main PRIVATE ${AWSSDK_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${AWSSDK_LIBRARIES}) OR find_package(aws-cpp-sdk-core REQUIRED) target_include_directories(main PRIVATE aws-cpp-sdk-core) target_link_libraries(main PRIVATE aws-cpp-sdk-core) ================================================ FILE: ports/aws-sdk-cpp/vcpkg.in.json ================================================ { "name": "aws-sdk-cpp", "version": "1.11.769", "description": "AWS SDK for C++", "homepage": "https://github.com/aws/aws-sdk-cpp", "license": "Apache-2.0", "dependencies": [ "aws-crt-cpp", { "name": "curl", "default-features": false, "features": [ "ssl" ], "platform": "!uwp & !windows" }, { "name": "openssl", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "dynamodb", "kinesis", "s3" ] } ================================================ FILE: ports/aws-sdk-cpp/vcpkg.json ================================================ { "$note": "Automatically generated by generateFeatures.ps1 from vcpkg.in.json, do not edit manually", "name": "aws-sdk-cpp", "version": "1.11.769", "description": "AWS SDK for C++", "homepage": "https://github.com/aws/aws-sdk-cpp", "license": "Apache-2.0", "dependencies": [ "aws-crt-cpp", { "name": "curl", "default-features": false, "features": [ "ssl" ], "platform": "!uwp & !windows" }, { "name": "openssl", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "dynamodb", "kinesis", "s3" ], "features": { "access-management": { "description": "C++ SDK for the AWS access-management service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "cognito-identity", "iam" ] } ] }, "accessanalyzer": { "description": "C++ SDK for the AWS accessanalyzer service" }, "account": { "description": "C++ SDK for the AWS account service" }, "acm": { "description": "C++ SDK for the AWS acm service" }, "acm-pca": { "description": "C++ SDK for the AWS acm-pca service" }, "aiops": { "description": "C++ SDK for the AWS aiops service" }, "amp": { "description": "C++ SDK for the AWS amp service" }, "amplify": { "description": "C++ SDK for the AWS amplify service" }, "amplifybackend": { "description": "C++ SDK for the AWS amplifybackend service" }, "amplifyuibuilder": { "description": "C++ SDK for the AWS amplifyuibuilder service" }, "apigateway": { "description": "C++ SDK for the AWS apigateway service" }, "apigatewaymanagementapi": { "description": "C++ SDK for the AWS apigatewaymanagementapi service" }, "apigatewayv2": { "description": "C++ SDK for the AWS apigatewayv2 service" }, "appconfig": { "description": "C++ SDK for the AWS appconfig service" }, "appconfigdata": { "description": "C++ SDK for the AWS appconfigdata service" }, "appfabric": { "description": "C++ SDK for the AWS appfabric service" }, "appflow": { "description": "C++ SDK for the AWS appflow service" }, "appintegrations": { "description": "C++ SDK for the AWS appintegrations service" }, "application-autoscaling": { "description": "C++ SDK for the AWS application-autoscaling service" }, "application-insights": { "description": "C++ SDK for the AWS application-insights service" }, "application-signals": { "description": "C++ SDK for the AWS application-signals service" }, "applicationcostprofiler": { "description": "C++ SDK for the AWS applicationcostprofiler service" }, "appmesh": { "description": "C++ SDK for the AWS appmesh service" }, "apprunner": { "description": "C++ SDK for the AWS apprunner service" }, "appstream": { "description": "C++ SDK for the AWS appstream service" }, "appsync": { "description": "C++ SDK for the AWS appsync service" }, "arc-region-switch": { "description": "C++ SDK for the AWS arc-region-switch service" }, "arc-zonal-shift": { "description": "C++ SDK for the AWS arc-zonal-shift service" }, "artifact": { "description": "C++ SDK for the AWS artifact service" }, "athena": { "description": "C++ SDK for the AWS athena service" }, "auditmanager": { "description": "C++ SDK for the AWS auditmanager service" }, "autoscaling": { "description": "C++ SDK for the AWS autoscaling service" }, "autoscaling-plans": { "description": "C++ SDK for the AWS autoscaling-plans service" }, "awsmigrationhub": { "description": "C++ SDK for the AWS AWSMigrationHub service" }, "awstransfer": { "description": "C++ SDK for the AWS awstransfer service" }, "b2bi": { "description": "C++ SDK for the AWS b2bi service" }, "backup": { "description": "C++ SDK for the AWS backup service" }, "backup-gateway": { "description": "C++ SDK for the AWS backup-gateway service" }, "backupsearch": { "description": "C++ SDK for the AWS backupsearch service" }, "batch": { "description": "C++ SDK for the AWS batch service" }, "bcm-dashboards": { "description": "C++ SDK for the AWS bcm-dashboards service" }, "bcm-data-exports": { "description": "C++ SDK for the AWS bcm-data-exports service" }, "bcm-pricing-calculator": { "description": "C++ SDK for the AWS bcm-pricing-calculator service" }, "bcm-recommended-actions": { "description": "C++ SDK for the AWS bcm-recommended-actions service" }, "bedrock": { "description": "C++ SDK for the AWS bedrock service" }, "bedrock-agent": { "description": "C++ SDK for the AWS bedrock-agent service" }, "bedrock-agent-runtime": { "description": "C++ SDK for the AWS bedrock-agent-runtime service" }, "bedrock-agentcore": { "description": "C++ SDK for the AWS bedrock-agentcore service" }, "bedrock-agentcore-control": { "description": "C++ SDK for the AWS bedrock-agentcore-control service" }, "bedrock-data-automation": { "description": "C++ SDK for the AWS bedrock-data-automation service" }, "bedrock-data-automation-runtime": { "description": "C++ SDK for the AWS bedrock-data-automation-runtime service" }, "bedrock-runtime": { "description": "C++ SDK for the AWS bedrock-runtime service" }, "billing": { "description": "C++ SDK for the AWS billing service" }, "billingconductor": { "description": "C++ SDK for the AWS billingconductor service" }, "braket": { "description": "C++ SDK for the AWS braket service" }, "budgets": { "description": "C++ SDK for the AWS budgets service" }, "ce": { "description": "C++ SDK for the AWS ce service" }, "chatbot": { "description": "C++ SDK for the AWS chatbot service" }, "chime": { "description": "C++ SDK for the AWS chime service" }, "chime-sdk-identity": { "description": "C++ SDK for the AWS chime-sdk-identity service" }, "chime-sdk-media-pipelines": { "description": "C++ SDK for the AWS chime-sdk-media-pipelines service" }, "chime-sdk-meetings": { "description": "C++ SDK for the AWS chime-sdk-meetings service" }, "chime-sdk-messaging": { "description": "C++ SDK for the AWS chime-sdk-messaging service" }, "chime-sdk-voice": { "description": "C++ SDK for the AWS chime-sdk-voice service" }, "cleanrooms": { "description": "C++ SDK for the AWS cleanrooms service" }, "cleanroomsml": { "description": "C++ SDK for the AWS cleanroomsml service" }, "cloud9": { "description": "C++ SDK for the AWS cloud9 service" }, "cloudcontrol": { "description": "C++ SDK for the AWS cloudcontrol service" }, "clouddirectory": { "description": "C++ SDK for the AWS clouddirectory service" }, "cloudformation": { "description": "C++ SDK for the AWS cloudformation service" }, "cloudfront": { "description": "C++ SDK for the AWS cloudfront service" }, "cloudfront-keyvaluestore": { "description": "C++ SDK for the AWS cloudfront-keyvaluestore service" }, "cloudhsm": { "description": "C++ SDK for the AWS cloudhsm service" }, "cloudhsmv2": { "description": "C++ SDK for the AWS cloudhsmv2 service" }, "cloudsearch": { "description": "C++ SDK for the AWS cloudsearch service" }, "cloudsearchdomain": { "description": "C++ SDK for the AWS cloudsearchdomain service" }, "cloudtrail": { "description": "C++ SDK for the AWS cloudtrail service" }, "cloudtrail-data": { "description": "C++ SDK for the AWS cloudtrail-data service" }, "codeartifact": { "description": "C++ SDK for the AWS codeartifact service" }, "codebuild": { "description": "C++ SDK for the AWS codebuild service" }, "codecatalyst": { "description": "C++ SDK for the AWS codecatalyst service" }, "codecommit": { "description": "C++ SDK for the AWS codecommit service" }, "codeconnections": { "description": "C++ SDK for the AWS codeconnections service" }, "codedeploy": { "description": "C++ SDK for the AWS codedeploy service" }, "codeguru-reviewer": { "description": "C++ SDK for the AWS codeguru-reviewer service" }, "codeguru-security": { "description": "C++ SDK for the AWS codeguru-security service" }, "codeguruprofiler": { "description": "C++ SDK for the AWS codeguruprofiler service" }, "codepipeline": { "description": "C++ SDK for the AWS codepipeline service" }, "codestar-connections": { "description": "C++ SDK for the AWS codestar-connections service" }, "codestar-notifications": { "description": "C++ SDK for the AWS codestar-notifications service" }, "cognito-identity": { "description": "C++ SDK for the AWS cognito-identity service" }, "cognito-idp": { "description": "C++ SDK for the AWS cognito-idp service" }, "cognito-sync": { "description": "C++ SDK for the AWS cognito-sync service" }, "comprehend": { "description": "C++ SDK for the AWS comprehend service" }, "comprehendmedical": { "description": "C++ SDK for the AWS comprehendmedical service" }, "compute-optimizer": { "description": "C++ SDK for the AWS compute-optimizer service" }, "compute-optimizer-automation": { "description": "C++ SDK for the AWS compute-optimizer-automation service" }, "config": { "description": "C++ SDK for the AWS config service" }, "connect": { "description": "C++ SDK for the AWS connect service" }, "connect-contact-lens": { "description": "C++ SDK for the AWS connect-contact-lens service" }, "connectcampaigns": { "description": "C++ SDK for the AWS connectcampaigns service" }, "connectcampaignsv2": { "description": "C++ SDK for the AWS connectcampaignsv2 service" }, "connectcases": { "description": "C++ SDK for the AWS connectcases service" }, "connecthealth": { "description": "C++ SDK for the AWS connecthealth service" }, "connectparticipant": { "description": "C++ SDK for the AWS connectparticipant service" }, "controlcatalog": { "description": "C++ SDK for the AWS controlcatalog service" }, "controltower": { "description": "C++ SDK for the AWS controltower service" }, "cost-optimization-hub": { "description": "C++ SDK for the AWS cost-optimization-hub service" }, "cur": { "description": "C++ SDK for the AWS cur service" }, "customer-profiles": { "description": "C++ SDK for the AWS customer-profiles service" }, "databrew": { "description": "C++ SDK for the AWS databrew service" }, "dataexchange": { "description": "C++ SDK for the AWS dataexchange service" }, "datapipeline": { "description": "C++ SDK for the AWS datapipeline service" }, "datasync": { "description": "C++ SDK for the AWS datasync service" }, "datazone": { "description": "C++ SDK for the AWS datazone service" }, "dax": { "description": "C++ SDK for the AWS dax service" }, "deadline": { "description": "C++ SDK for the AWS deadline service" }, "detective": { "description": "C++ SDK for the AWS detective service" }, "devicefarm": { "description": "C++ SDK for the AWS devicefarm service" }, "devops-guru": { "description": "C++ SDK for the AWS devops-guru service" }, "directconnect": { "description": "C++ SDK for the AWS directconnect service" }, "directory-service-data": { "description": "C++ SDK for the AWS directory-service-data service" }, "discovery": { "description": "C++ SDK for the AWS discovery service" }, "dlm": { "description": "C++ SDK for the AWS dlm service" }, "dms": { "description": "C++ SDK for the AWS dms service" }, "docdb": { "description": "C++ SDK for the AWS docdb service" }, "docdb-elastic": { "description": "C++ SDK for the AWS docdb-elastic service" }, "drs": { "description": "C++ SDK for the AWS drs service" }, "ds": { "description": "C++ SDK for the AWS ds service" }, "dsql": { "description": "C++ SDK for the AWS dsql service" }, "dynamodb": { "description": "C++ SDK for the AWS dynamodb service" }, "dynamodbstreams": { "description": "C++ SDK for the AWS dynamodbstreams service" }, "ebs": { "description": "C++ SDK for the AWS ebs service" }, "ec2": { "description": "C++ SDK for the AWS ec2 service" }, "ec2-instance-connect": { "description": "C++ SDK for the AWS ec2-instance-connect service" }, "ecr": { "description": "C++ SDK for the AWS ecr service" }, "ecr-public": { "description": "C++ SDK for the AWS ecr-public service" }, "ecs": { "description": "C++ SDK for the AWS ecs service" }, "eks": { "description": "C++ SDK for the AWS eks service" }, "eks-auth": { "description": "C++ SDK for the AWS eks-auth service" }, "elasticache": { "description": "C++ SDK for the AWS elasticache service" }, "elasticbeanstalk": { "description": "C++ SDK for the AWS elasticbeanstalk service" }, "elasticfilesystem": { "description": "C++ SDK for the AWS elasticfilesystem service" }, "elasticloadbalancing": { "description": "C++ SDK for the AWS elasticloadbalancing service" }, "elasticloadbalancingv2": { "description": "C++ SDK for the AWS elasticloadbalancingv2 service" }, "elasticmapreduce": { "description": "C++ SDK for the AWS elasticmapreduce service" }, "elementalinference": { "description": "C++ SDK for the AWS elementalinference service" }, "email": { "description": "C++ SDK for the AWS email service" }, "emr-containers": { "description": "C++ SDK for the AWS emr-containers service" }, "emr-serverless": { "description": "C++ SDK for the AWS emr-serverless service" }, "entityresolution": { "description": "C++ SDK for the AWS entityresolution service" }, "es": { "description": "C++ SDK for the AWS es service" }, "eventbridge": { "description": "C++ SDK for the AWS eventbridge service" }, "events": { "description": "C++ SDK for the AWS events service" }, "evs": { "description": "C++ SDK for the AWS evs service" }, "finspace": { "description": "C++ SDK for the AWS finspace service" }, "finspace-data": { "description": "C++ SDK for the AWS finspace-data service" }, "firehose": { "description": "C++ SDK for the AWS firehose service" }, "fis": { "description": "C++ SDK for the AWS fis service" }, "fms": { "description": "C++ SDK for the AWS fms service" }, "forecast": { "description": "C++ SDK for the AWS forecast service" }, "forecastquery": { "description": "C++ SDK for the AWS forecastquery service" }, "frauddetector": { "description": "C++ SDK for the AWS frauddetector service" }, "freetier": { "description": "C++ SDK for the AWS freetier service" }, "fsx": { "description": "C++ SDK for the AWS fsx service" }, "gamelift": { "description": "C++ SDK for the AWS gamelift service" }, "gameliftstreams": { "description": "C++ SDK for the AWS gameliftstreams service" }, "geo-maps": { "description": "C++ SDK for the AWS geo-maps service" }, "geo-places": { "description": "C++ SDK for the AWS geo-places service" }, "geo-routes": { "description": "C++ SDK for the AWS geo-routes service" }, "glacier": { "description": "C++ SDK for the AWS glacier service" }, "globalaccelerator": { "description": "C++ SDK for the AWS globalaccelerator service" }, "glue": { "description": "C++ SDK for the AWS glue service" }, "grafana": { "description": "C++ SDK for the AWS grafana service" }, "greengrass": { "description": "C++ SDK for the AWS greengrass service" }, "greengrassv2": { "description": "C++ SDK for the AWS greengrassv2 service" }, "groundstation": { "description": "C++ SDK for the AWS groundstation service" }, "guardduty": { "description": "C++ SDK for the AWS guardduty service" }, "health": { "description": "C++ SDK for the AWS health service" }, "healthlake": { "description": "C++ SDK for the AWS healthlake service" }, "iam": { "description": "C++ SDK for the AWS iam service" }, "identity-management": { "description": "C++ SDK for the AWS identity-management service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "cognito-identity", "sts" ] } ] }, "identitystore": { "description": "C++ SDK for the AWS identitystore service" }, "imagebuilder": { "description": "C++ SDK for the AWS imagebuilder service" }, "importexport": { "description": "C++ SDK for the AWS importexport service" }, "inspector": { "description": "C++ SDK for the AWS inspector service" }, "inspector-scan": { "description": "C++ SDK for the AWS inspector-scan service" }, "inspector2": { "description": "C++ SDK for the AWS inspector2 service" }, "internetmonitor": { "description": "C++ SDK for the AWS internetmonitor service" }, "invoicing": { "description": "C++ SDK for the AWS invoicing service" }, "iot": { "description": "C++ SDK for the AWS iot service" }, "iot-data": { "description": "C++ SDK for the AWS iot-data service" }, "iot-jobs-data": { "description": "C++ SDK for the AWS iot-jobs-data service" }, "iot-managed-integrations": { "description": "C++ SDK for the AWS iot-managed-integrations service" }, "iotdeviceadvisor": { "description": "C++ SDK for the AWS iotdeviceadvisor service" }, "iotevents": { "description": "C++ SDK for the AWS iotevents service" }, "iotevents-data": { "description": "C++ SDK for the AWS iotevents-data service" }, "iotfleetwise": { "description": "C++ SDK for the AWS iotfleetwise service" }, "iotsecuretunneling": { "description": "C++ SDK for the AWS iotsecuretunneling service" }, "iotsitewise": { "description": "C++ SDK for the AWS iotsitewise service" }, "iotthingsgraph": { "description": "C++ SDK for the AWS iotthingsgraph service" }, "iottwinmaker": { "description": "C++ SDK for the AWS iottwinmaker service" }, "iotwireless": { "description": "C++ SDK for the AWS iotwireless service" }, "ivs": { "description": "C++ SDK for the AWS ivs service" }, "ivs-realtime": { "description": "C++ SDK for the AWS ivs-realtime service" }, "ivschat": { "description": "C++ SDK for the AWS ivschat service" }, "kafka": { "description": "C++ SDK for the AWS kafka service" }, "kafkaconnect": { "description": "C++ SDK for the AWS kafkaconnect service" }, "kendra": { "description": "C++ SDK for the AWS kendra service" }, "kendra-ranking": { "description": "C++ SDK for the AWS kendra-ranking service" }, "keyspaces": { "description": "C++ SDK for the AWS keyspaces service" }, "keyspacesstreams": { "description": "C++ SDK for the AWS keyspacesstreams service" }, "kinesis": { "description": "C++ SDK for the AWS kinesis service" }, "kinesis-video-archived-media": { "description": "C++ SDK for the AWS kinesis-video-archived-media service" }, "kinesis-video-media": { "description": "C++ SDK for the AWS kinesis-video-media service" }, "kinesis-video-signaling": { "description": "C++ SDK for the AWS kinesis-video-signaling service" }, "kinesis-video-webrtc-storage": { "description": "C++ SDK for the AWS kinesis-video-webrtc-storage service" }, "kinesisanalytics": { "description": "C++ SDK for the AWS kinesisanalytics service" }, "kinesisanalyticsv2": { "description": "C++ SDK for the AWS kinesisanalyticsv2 service" }, "kinesisvideo": { "description": "C++ SDK for the AWS kinesisvideo service" }, "kms": { "description": "C++ SDK for the AWS kms service" }, "lakeformation": { "description": "C++ SDK for the AWS lakeformation service" }, "lambda": { "description": "C++ SDK for the AWS lambda service" }, "launch-wizard": { "description": "C++ SDK for the AWS launch-wizard service" }, "lex": { "description": "C++ SDK for the AWS lex service" }, "lex-models": { "description": "C++ SDK for the AWS lex-models service" }, "lexv2-models": { "description": "C++ SDK for the AWS lexv2-models service" }, "lexv2-runtime": { "description": "C++ SDK for the AWS lexv2-runtime service" }, "license-manager": { "description": "C++ SDK for the AWS license-manager service" }, "license-manager-linux-subscriptions": { "description": "C++ SDK for the AWS license-manager-linux-subscriptions service" }, "license-manager-user-subscriptions": { "description": "C++ SDK for the AWS license-manager-user-subscriptions service" }, "lightsail": { "description": "C++ SDK for the AWS lightsail service" }, "location": { "description": "C++ SDK for the AWS location service" }, "logs": { "description": "C++ SDK for the AWS logs service" }, "lookoutequipment": { "description": "C++ SDK for the AWS lookoutequipment service" }, "m2": { "description": "C++ SDK for the AWS m2 service" }, "machinelearning": { "description": "C++ SDK for the AWS machinelearning service" }, "macie2": { "description": "C++ SDK for the AWS macie2 service" }, "mailmanager": { "description": "C++ SDK for the AWS mailmanager service" }, "managedblockchain": { "description": "C++ SDK for the AWS managedblockchain service" }, "managedblockchain-query": { "description": "C++ SDK for the AWS managedblockchain-query service" }, "marketplace-agreement": { "description": "C++ SDK for the AWS marketplace-agreement service" }, "marketplace-catalog": { "description": "C++ SDK for the AWS marketplace-catalog service" }, "marketplace-deployment": { "description": "C++ SDK for the AWS marketplace-deployment service" }, "marketplace-entitlement": { "description": "C++ SDK for the AWS marketplace-entitlement service" }, "marketplace-reporting": { "description": "C++ SDK for the AWS marketplace-reporting service" }, "marketplacecommerceanalytics": { "description": "C++ SDK for the AWS marketplacecommerceanalytics service" }, "mediaconnect": { "description": "C++ SDK for the AWS mediaconnect service" }, "mediaconvert": { "description": "C++ SDK for the AWS mediaconvert service" }, "medialive": { "description": "C++ SDK for the AWS medialive service" }, "mediapackage": { "description": "C++ SDK for the AWS mediapackage service" }, "mediapackage-vod": { "description": "C++ SDK for the AWS mediapackage-vod service" }, "mediapackagev2": { "description": "C++ SDK for the AWS mediapackagev2 service" }, "mediastore": { "description": "C++ SDK for the AWS mediastore service" }, "mediastore-data": { "description": "C++ SDK for the AWS mediastore-data service" }, "mediatailor": { "description": "C++ SDK for the AWS mediatailor service" }, "medical-imaging": { "description": "C++ SDK for the AWS medical-imaging service" }, "memorydb": { "description": "C++ SDK for the AWS memorydb service" }, "meteringmarketplace": { "description": "C++ SDK for the AWS meteringmarketplace service" }, "mgn": { "description": "C++ SDK for the AWS mgn service" }, "migration-hub-refactor-spaces": { "description": "C++ SDK for the AWS migration-hub-refactor-spaces service" }, "migrationhub-config": { "description": "C++ SDK for the AWS migrationhub-config service" }, "migrationhuborchestrator": { "description": "C++ SDK for the AWS migrationhuborchestrator service" }, "migrationhubstrategy": { "description": "C++ SDK for the AWS migrationhubstrategy service" }, "monitoring": { "description": "C++ SDK for the AWS monitoring service" }, "mpa": { "description": "C++ SDK for the AWS mpa service" }, "mq": { "description": "C++ SDK for the AWS mq service" }, "mturk-requester": { "description": "C++ SDK for the AWS mturk-requester service" }, "mwaa": { "description": "C++ SDK for the AWS mwaa service" }, "mwaa-serverless": { "description": "C++ SDK for the AWS mwaa-serverless service" }, "neptune": { "description": "C++ SDK for the AWS neptune service" }, "neptune-graph": { "description": "C++ SDK for the AWS neptune-graph service" }, "neptunedata": { "description": "C++ SDK for the AWS neptunedata service" }, "network-firewall": { "description": "C++ SDK for the AWS network-firewall service" }, "networkflowmonitor": { "description": "C++ SDK for the AWS networkflowmonitor service" }, "networkmanager": { "description": "C++ SDK for the AWS networkmanager service" }, "networkmonitor": { "description": "C++ SDK for the AWS networkmonitor service" }, "notifications": { "description": "C++ SDK for the AWS notifications service" }, "notificationscontacts": { "description": "C++ SDK for the AWS notificationscontacts service" }, "nova-act": { "description": "C++ SDK for the AWS nova-act service" }, "oam": { "description": "C++ SDK for the AWS oam service" }, "observabilityadmin": { "description": "C++ SDK for the AWS observabilityadmin service" }, "odb": { "description": "C++ SDK for the AWS odb service" }, "omics": { "description": "C++ SDK for the AWS omics service" }, "opensearch": { "description": "C++ SDK for the AWS opensearch service" }, "opensearchserverless": { "description": "C++ SDK for the AWS opensearchserverless service" }, "organizations": { "description": "C++ SDK for the AWS organizations service" }, "osis": { "description": "C++ SDK for the AWS osis service" }, "outposts": { "description": "C++ SDK for the AWS outposts service" }, "panorama": { "description": "C++ SDK for the AWS panorama service" }, "partnercentral-account": { "description": "C++ SDK for the AWS partnercentral-account service" }, "partnercentral-benefits": { "description": "C++ SDK for the AWS partnercentral-benefits service" }, "partnercentral-channel": { "description": "C++ SDK for the AWS partnercentral-channel service" }, "partnercentral-selling": { "description": "C++ SDK for the AWS partnercentral-selling service" }, "payment-cryptography": { "description": "C++ SDK for the AWS payment-cryptography service" }, "payment-cryptography-data": { "description": "C++ SDK for the AWS payment-cryptography-data service" }, "pca-connector-ad": { "description": "C++ SDK for the AWS pca-connector-ad service" }, "pca-connector-scep": { "description": "C++ SDK for the AWS pca-connector-scep service" }, "pcs": { "description": "C++ SDK for the AWS pcs service" }, "personalize": { "description": "C++ SDK for the AWS personalize service" }, "personalize-events": { "description": "C++ SDK for the AWS personalize-events service" }, "personalize-runtime": { "description": "C++ SDK for the AWS personalize-runtime service" }, "pi": { "description": "C++ SDK for the AWS pi service" }, "pinpoint": { "description": "C++ SDK for the AWS pinpoint service" }, "pinpoint-email": { "description": "C++ SDK for the AWS pinpoint-email service" }, "pinpoint-sms-voice-v2": { "description": "C++ SDK for the AWS pinpoint-sms-voice-v2 service" }, "pipes": { "description": "C++ SDK for the AWS pipes service" }, "polly": { "description": "C++ SDK for the AWS polly service" }, "pricing": { "description": "C++ SDK for the AWS pricing service" }, "proton": { "description": "C++ SDK for the AWS proton service" }, "qapps": { "description": "C++ SDK for the AWS qapps service" }, "qbusiness": { "description": "C++ SDK for the AWS qbusiness service" }, "qconnect": { "description": "C++ SDK for the AWS qconnect service" }, "queues": { "description": "C++ SDK for the AWS queues service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "sqs" ] } ] }, "quicksight": { "description": "C++ SDK for the AWS quicksight service" }, "ram": { "description": "C++ SDK for the AWS ram service" }, "rbin": { "description": "C++ SDK for the AWS rbin service" }, "rds": { "description": "C++ SDK for the AWS rds service" }, "rds-data": { "description": "C++ SDK for the AWS rds-data service" }, "redshift": { "description": "C++ SDK for the AWS redshift service" }, "redshift-data": { "description": "C++ SDK for the AWS redshift-data service" }, "redshift-serverless": { "description": "C++ SDK for the AWS redshift-serverless service" }, "rekognition": { "description": "C++ SDK for the AWS rekognition service" }, "repostspace": { "description": "C++ SDK for the AWS repostspace service" }, "resiliencehub": { "description": "C++ SDK for the AWS resiliencehub service" }, "resource-explorer-2": { "description": "C++ SDK for the AWS resource-explorer-2 service" }, "resource-groups": { "description": "C++ SDK for the AWS resource-groups service" }, "resourcegroupstaggingapi": { "description": "C++ SDK for the AWS resourcegroupstaggingapi service" }, "rolesanywhere": { "description": "C++ SDK for the AWS rolesanywhere service" }, "route53": { "description": "C++ SDK for the AWS route53 service" }, "route53-recovery-cluster": { "description": "C++ SDK for the AWS route53-recovery-cluster service" }, "route53-recovery-control-config": { "description": "C++ SDK for the AWS route53-recovery-control-config service" }, "route53-recovery-readiness": { "description": "C++ SDK for the AWS route53-recovery-readiness service" }, "route53domains": { "description": "C++ SDK for the AWS route53domains service" }, "route53globalresolver": { "description": "C++ SDK for the AWS route53globalresolver service" }, "route53profiles": { "description": "C++ SDK for the AWS route53profiles service" }, "route53resolver": { "description": "C++ SDK for the AWS route53resolver service" }, "rtbfabric": { "description": "C++ SDK for the AWS rtbfabric service" }, "rum": { "description": "C++ SDK for the AWS rum service" }, "s3": { "description": "C++ SDK for the AWS s3 service" }, "s3-crt": { "description": "C++ SDK for the AWS s3-crt service" }, "s3-encryption": { "description": "C++ SDK for the AWS s3-encryption service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "kms", "s3" ] } ] }, "s3control": { "description": "C++ SDK for the AWS s3control service" }, "s3outposts": { "description": "C++ SDK for the AWS s3outposts service" }, "s3tables": { "description": "C++ SDK for the AWS s3tables service" }, "s3vectors": { "description": "C++ SDK for the AWS s3vectors service" }, "sagemaker": { "description": "C++ SDK for the AWS sagemaker service" }, "sagemaker-a2i-runtime": { "description": "C++ SDK for the AWS sagemaker-a2i-runtime service" }, "sagemaker-edge": { "description": "C++ SDK for the AWS sagemaker-edge service" }, "sagemaker-featurestore-runtime": { "description": "C++ SDK for the AWS sagemaker-featurestore-runtime service" }, "sagemaker-geospatial": { "description": "C++ SDK for the AWS sagemaker-geospatial service" }, "sagemaker-metrics": { "description": "C++ SDK for the AWS sagemaker-metrics service" }, "sagemaker-runtime": { "description": "C++ SDK for the AWS sagemaker-runtime service" }, "sagemaker-runtime-http2": { "description": "C++ SDK for the AWS sagemaker-runtime-http2 service" }, "savingsplans": { "description": "C++ SDK for the AWS savingsplans service" }, "scheduler": { "description": "C++ SDK for the AWS scheduler service" }, "schemas": { "description": "C++ SDK for the AWS schemas service" }, "sdb": { "description": "C++ SDK for the AWS sdb service" }, "secretsmanager": { "description": "C++ SDK for the AWS secretsmanager service" }, "security-ir": { "description": "C++ SDK for the AWS security-ir service" }, "securityhub": { "description": "C++ SDK for the AWS securityhub service" }, "securitylake": { "description": "C++ SDK for the AWS securitylake service" }, "serverlessrepo": { "description": "C++ SDK for the AWS serverlessrepo service" }, "service-quotas": { "description": "C++ SDK for the AWS service-quotas service" }, "servicecatalog": { "description": "C++ SDK for the AWS servicecatalog service" }, "servicecatalog-appregistry": { "description": "C++ SDK for the AWS servicecatalog-appregistry service" }, "servicediscovery": { "description": "C++ SDK for the AWS servicediscovery service" }, "sesv2": { "description": "C++ SDK for the AWS sesv2 service" }, "shield": { "description": "C++ SDK for the AWS shield service" }, "signer": { "description": "C++ SDK for the AWS signer service" }, "signer-data": { "description": "C++ SDK for the AWS signer-data service" }, "signin": { "description": "C++ SDK for the AWS signin service" }, "simpledbv2": { "description": "C++ SDK for the AWS simpledbv2 service" }, "simspaceweaver": { "description": "C++ SDK for the AWS simspaceweaver service" }, "sms-voice": { "description": "C++ SDK for the AWS sms-voice service" }, "snow-device-management": { "description": "C++ SDK for the AWS snow-device-management service" }, "snowball": { "description": "C++ SDK for the AWS snowball service" }, "sns": { "description": "C++ SDK for the AWS sns service" }, "socialmessaging": { "description": "C++ SDK for the AWS socialmessaging service" }, "sqs": { "description": "C++ SDK for the AWS sqs service" }, "ssm": { "description": "C++ SDK for the AWS ssm service" }, "ssm-contacts": { "description": "C++ SDK for the AWS ssm-contacts service" }, "ssm-guiconnect": { "description": "C++ SDK for the AWS ssm-guiconnect service" }, "ssm-incidents": { "description": "C++ SDK for the AWS ssm-incidents service" }, "ssm-quicksetup": { "description": "C++ SDK for the AWS ssm-quicksetup service" }, "ssm-sap": { "description": "C++ SDK for the AWS ssm-sap service" }, "sso": { "description": "C++ SDK for the AWS sso service" }, "sso-admin": { "description": "C++ SDK for the AWS sso-admin service" }, "sso-oidc": { "description": "C++ SDK for the AWS sso-oidc service" }, "states": { "description": "C++ SDK for the AWS states service" }, "storagegateway": { "description": "C++ SDK for the AWS storagegateway service" }, "sts": { "description": "C++ SDK for the AWS sts service" }, "supplychain": { "description": "C++ SDK for the AWS supplychain service" }, "support": { "description": "C++ SDK for the AWS support service" }, "support-app": { "description": "C++ SDK for the AWS support-app service" }, "swf": { "description": "C++ SDK for the AWS swf service" }, "synthetics": { "description": "C++ SDK for the AWS synthetics service" }, "taxsettings": { "description": "C++ SDK for the AWS taxsettings service" }, "text-to-speech": { "description": "C++ SDK for the AWS text-to-speech service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "polly" ] } ] }, "textract": { "description": "C++ SDK for the AWS textract service" }, "timestream-influxdb": { "description": "C++ SDK for the AWS timestream-influxdb service" }, "timestream-query": { "description": "C++ SDK for the AWS timestream-query service" }, "timestream-write": { "description": "C++ SDK for the AWS timestream-write service" }, "tnb": { "description": "C++ SDK for the AWS tnb service" }, "transcribe": { "description": "C++ SDK for the AWS transcribe service" }, "transcribestreaming": { "description": "C++ SDK for the AWS transcribestreaming service" }, "transfer": { "description": "C++ SDK for the AWS transfer service", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "s3" ] } ] }, "translate": { "description": "C++ SDK for the AWS translate service" }, "trustedadvisor": { "description": "C++ SDK for the AWS trustedadvisor service" }, "verifiedpermissions": { "description": "C++ SDK for the AWS verifiedpermissions service" }, "voice-id": { "description": "C++ SDK for the AWS voice-id service" }, "vpc-lattice": { "description": "C++ SDK for the AWS vpc-lattice service" }, "waf": { "description": "C++ SDK for the AWS waf service" }, "waf-regional": { "description": "C++ SDK for the AWS waf-regional service" }, "wafv2": { "description": "C++ SDK for the AWS wafv2 service" }, "wellarchitected": { "description": "C++ SDK for the AWS wellarchitected service" }, "wickr": { "description": "C++ SDK for the AWS wickr service" }, "wisdom": { "description": "C++ SDK for the AWS wisdom service" }, "workdocs": { "description": "C++ SDK for the AWS workdocs service" }, "workmail": { "description": "C++ SDK for the AWS workmail service" }, "workmailmessageflow": { "description": "C++ SDK for the AWS workmailmessageflow service" }, "workspaces": { "description": "C++ SDK for the AWS workspaces service" }, "workspaces-instances": { "description": "C++ SDK for the AWS workspaces-instances service" }, "workspaces-thin-client": { "description": "C++ SDK for the AWS workspaces-thin-client service" }, "workspaces-web": { "description": "C++ SDK for the AWS workspaces-web service" }, "xray": { "description": "C++ SDK for the AWS xray service" } } } ================================================ FILE: ports/ayush272002-dotenv/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ayush272002/dotenv REF v${VERSION} SHA512 d91516a2cf13712d28abc8196309e09d08a4349a1d68eae951d58a590e090124c280f7d2dbd2126a98c806357a797f57375a73dab46bec92260cc515167f297c ) file( INSTALL "${SOURCE_PATH}/include/dotenv" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/ayush272002-dotenv/vcpkg.json ================================================ { "name": "ayush272002-dotenv", "version-semver": "1.0.2", "description": "A modern C++23 header-only library for loading and parsing .env files at runtime.", "homepage": "https://github.com/Ayush272002/dotenv", "license": "MIT", "supports": "!uwp" } ================================================ FILE: ports/azmq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/azmq REF 819b24035cfa5b73081e21f5867445f2344f680d SHA512 899303faff3bf0bff32e4277c33e6dfdf4d52f686b83158e278221ea184b141795d902cf587a579b464f5a4ec95aad9c469a7155e7a602af18e36f8ed750fefa HEAD_REF master ) file(COPY ${SOURCE_PATH}/azmq DESTINATION ${CURRENT_PACKAGES_DIR}/include/) file(INSTALL ${SOURCE_PATH}/LICENSE-BOOST_1_0 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/azmq/vcpkg.json ================================================ { "name": "azmq", "version-date": "2025-11-30", "description": [ "Boost Asio style bindings for ZeroMQ", "This library is built on top of ZeroMQ's standard C interface and is intended to work well with C++ applications which use the Boost libraries in general, and Asio in particular.", "The main abstraction exposed by the library is azmq::socket which provides an Asio style socket interface to the underlying zeromq socket and interfaces with Asio's io_service(). The socket implementation participates in the io_service's reactor for asynchronous IO and may be freely mixed with other Asio socket types (raw TCP/UDP/Serial/etc.)." ], "homepage": "https://github.com/zeromq/azmq", "dependencies": [ "boost-asio", "boost-assert", "boost-config", "boost-container", "boost-format", "boost-intrusive", "boost-iterator", "boost-lexical-cast", "boost-logic", "boost-optional", "boost-random", "boost-range", "boost-regex", "boost-system", "boost-thread", "boost-utility", "zeromq" ] } ================================================ FILE: ports/azure-c-shared-utility/disable-error.patch ================================================ diff --git a/configs/azure_iot_build_rules.cmake b/configs/azure_iot_build_rules.cmake index 655b7f01..2f7e4ae4 100644 --- a/configs/azure_iot_build_rules.cmake +++ b/configs/azure_iot_build_rules.cmake @@ -71,8 +71,6 @@ if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") elseif(UNIX) #LINUX OR APPLE - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") if(NOT (IN_OPENWRT OR APPLE)) # _XOPEN_SOURCE=500 is required for glibc to expose random and srandom. set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}") @@ -208,12 +206,6 @@ endmacro(generate_cppunittest_wrapper) IF((WIN32) AND (NOT(MINGW))) #windows needs this define add_definitions(-D_CRT_SECURE_NO_WARNINGS) - # Make warning as error - add_definitions(/WX) -ELSE() - # Make warning as error - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") ENDIF() ================================================ FILE: ports/azure-c-shared-utility/fix-install-location.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index deeaae7d..c0c84275 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -689,7 +689,7 @@ install (TARGETS ${targets} EXPORT aziotsharedutilTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot ) -install (FILES ${source_h_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azure_c_shared_utility) +install (FILES ${source_h_files} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot/azure_c_shared_utility) install (FILES ${micromock_h_files_full_path} ${INSTALL_H_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/azureiot) ================================================ FILE: ports/azure-c-shared-utility/fix-utilityFunctions-conditions.patch ================================================ diff --git a/configs/azure_c_shared_utilityFunctions.cmake b/configs/azure_c_shared_utilityFunctions.cmake index 6c2f415..e6133af 100644 --- a/configs/azure_c_shared_utilityFunctions.cmake +++ b/configs/azure_c_shared_utilityFunctions.cmake @@ -2,11 +2,11 @@ #Licensed under the MIT license. See LICENSE file in the project root for full license information. function(target_link_libraries_with_arg_prefix arg_prefix whatIsBuilding lib) - if(${arg_prefix} STREQUAL "debug") + if(arg_prefix STREQUAL "debug") target_link_libraries(${whatIsBuilding} debug ${lib}) - elseif(${arg_prefix} STREQUAL "optimized") + elseif(arg_prefix STREQUAL "optimized") target_link_libraries(${whatIsBuilding} optimized ${lib}) - elseif(${arg_prefix} STREQUAL "general") + elseif(arg_prefix STREQUAL "general") target_link_libraries(${whatIsBuilding} general ${lib}) else() target_link_libraries(${whatIsBuilding} ${lib}) @@ -43,13 +43,13 @@ function(windows_unittests_add_dll whatIsBuilding) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") #also unset all the other states set(skip_to_next TRUE) - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -57,7 +57,7 @@ function(windows_unittests_add_dll whatIsBuilding) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f}) @@ -90,13 +90,13 @@ function(windows_unittests_add_exe whatIsBuilding) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") #also unset all the other states set(skip_to_next TRUE) - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -104,7 +104,7 @@ function(windows_unittests_add_exe whatIsBuilding) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f}) @@ -150,14 +150,14 @@ function(linux_unittests_add_exe whatIsBuilding) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") set(skip_to_next TRUE) #also unset all the other states - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -165,7 +165,7 @@ function(linux_unittests_add_exe whatIsBuilding) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f}) @@ -184,7 +184,7 @@ function(linux_unittests_add_exe whatIsBuilding) if(${run_valgrind}) find_program(VALGRIND_FOUND NAMES valgrind) - if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND) + if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND) message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind") else() add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $) @@ -307,13 +307,13 @@ function(c_windows_unittests_add_dll whatIsBuilding folder) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") #also unset all the other states set(skip_to_next TRUE) - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -321,7 +321,7 @@ function(c_windows_unittests_add_dll whatIsBuilding folder) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_dll ${f}) @@ -369,13 +369,13 @@ function(c_windows_unittests_add_exe whatIsBuilding folder) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") #also unset all the other states set(skip_to_next TRUE) - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -383,7 +383,7 @@ function(c_windows_unittests_add_exe whatIsBuilding folder) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f}) @@ -429,13 +429,13 @@ function(c_linux_unittests_add_exe whatIsBuilding folder) set(ARG_PREFIX "none") foreach(f ${ARGN}) set(skip_to_next FALSE) - if(${f} STREQUAL "ADDITIONAL_LIBS") + if(f STREQUAL "ADDITIONAL_LIBS") SET(PARSING_ADDITIONAL_LIBS ON) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE OFF) set(ARG_PREFIX "none") #also unset all the other states set(skip_to_next TRUE) - elseif(${f} STREQUAL "VALGRIND_SUPPRESSIONS_FILE") + elseif(f STREQUAL "VALGRIND_SUPPRESSIONS_FILE") SET(PARSING_ADDITIONAL_LIBS OFF) SET(PARSING_VALGRIND_SUPPRESSIONS_FILE ON) set(skip_to_next TRUE) @@ -443,7 +443,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder) if(NOT skip_to_next) if(PARSING_ADDITIONAL_LIBS) - if((${f} STREQUAL "debug") OR (${f} STREQUAL "optimized") OR (${f} STREQUAL "general")) + if((f STREQUAL "debug") OR (f STREQUAL "optimized") OR (f STREQUAL "general")) SET(ARG_PREFIX ${f}) else() target_link_libraries_with_arg_prefix(${ARG_PREFIX} ${whatIsBuilding}_exe ${f}) @@ -462,7 +462,7 @@ function(c_linux_unittests_add_exe whatIsBuilding folder) if(${run_valgrind}) find_program(VALGRIND_FOUND NAMES valgrind) - if(${VALGRIND_FOUND} STREQUAL VALGRIND_FOUND-NOTFOUND) + if(VALGRIND_FOUND STREQUAL VALGRIND_FOUND-NOTFOUND) message(WARNING "run_valgrind was TRUE, but valgrind was not found - there will be no tests run under valgrind") else() add_test(NAME ${whatIsBuilding}_valgrind COMMAND valgrind --gen-suppressions=all --num-callers=100 --error-exitcode=1 --leak-check=full --track-origins=yes ${VALGRIND_SUPPRESSIONS_FILE_EXTRA_PARAMETER} $) @@ -546,29 +546,29 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat) (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests}) ) if (${use_cppunittest}) - if(${compileAsWhat} STREQUAL "C99") + if(compileAsWhat STREQUAL "C99") compileTargetAsC99(${whatIsBuilding}_dll) compileTargetAsC99(${whatIsBuilding}_testsonly_lib) endif() - if(${compileAsWhat} STREQUAL "C11") + if(compileAsWhat STREQUAL "C11") compileTargetAsC11(${whatIsBuilding}_dll) compileTargetAsC11(${whatIsBuilding}_testsonly_lib) endif() endif() - if(${compileAsWhat} STREQUAL "C99") + if(compileAsWhat STREQUAL "C99") compileTargetAsC99(${whatIsBuilding}_exe) endif() - if(${compileAsWhat} STREQUAL "C11") + if(compileAsWhat STREQUAL "C11") compileTargetAsC11(${whatIsBuilding}_exe) endif() else() if( (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${nuget_e2e_tests}) ) - if(${compileAsWhat} STREQUAL "C99") + if(compileAsWhat STREQUAL "C99") compileTargetAsC99(${whatIsBuilding}_exe) endif() - if(${compileAsWhat} STREQUAL "C11") + if(compileAsWhat STREQUAL "C11") compileTargetAsC11(${whatIsBuilding}_exe) endif() else() @@ -581,10 +581,10 @@ function(compile_c_test_artifacts_as whatIsBuilding compileAsWhat) (("${whatIsBuilding}" MATCHES ".*e2e.*") AND ${run_e2e_tests}) OR (("${whatIsBuilding}" MATCHES ".*int.*") AND ${run_int_tests}) ) - if(${compileAsWhat} STREQUAL "C99") + if(compileAsWhat STREQUAL "C99") compileTargetAsC99(${whatIsBuilding}_exe) endif() - if(${compileAsWhat} STREQUAL "C11") + if(compileAsWhat STREQUAL "C11") compileTargetAsC11(${whatIsBuilding}_exe) endif() endif() @@ -641,15 +641,15 @@ function(set_platform_files c_shared_dir) set(CONDITION_C_FILE ${c_shared_dir}/adapters/condition_win32.c PARENT_SCOPE) endif() - if(${use_etw} STREQUAL "OFF") + if(use_etw STREQUAL "OFF") set(XLOGGING_C_FILE ${c_shared_dir}/src/xlogging.c PARENT_SCOPE) set(LOGGING_C_FILE ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE) set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE) - elseif(${use_etw} STREQUAL "TRACELOGGING") + elseif(use_etw STREQUAL "TRACELOGGING") set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE) set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c PARENT_SCOPE) set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h PARENT_SCOPE) - elseif(${use_etw} STREQUAL "TRACELOGGING_WITH_CONSOLE") + elseif(use_etw STREQUAL "TRACELOGGING_WITH_CONSOLE") set(XLOGGING_C_FILE ${c_shared_dir}/src/etwxlogging.c PARENT_SCOPE) set(LOGGING_C_FILE ${c_shared_dir}/src/etwlogger_driver.c ${c_shared_dir}/src/consolelogger.c PARENT_SCOPE) set(LOGGING_H_FILE ${c_shared_dir}/inc/azure_c_shared_utility/etwlogger_driver.h ${c_shared_dir}/inc/azure_c_shared_utility/consolelogger.h PARENT_SCOPE) ================================================ FILE: ports/azure-c-shared-utility/improve-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb607f0..5b0f60f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -553,8 +553,7 @@ if(${use_http}) set(CURL_FIND_REQUIRED 1) find_package_handle_standard_args(CURL DEFAULT_MSG CURL_LIBRARIES) - include_directories(${CURL_INCLUDE_DIRS}) - set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${CURL_LIBRARIES}) + set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} CURL::libcurl) endif(NOT use_builtin_httpapi) endif() endif(${use_http}) @@ -593,7 +592,7 @@ if(${use_bearssl}) endif() if(${use_openssl}) - set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} ${OPENSSL_LIBRARIES}) + set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} OpenSSL::SSL) if (WIN32) set(aziotsharedutil_target_libs ${aziotsharedutil_target_libs} crypt32 ws2_32 secur32) endif() @@ -743,7 +742,7 @@ write_basic_package_version_file( configure_file("configs/${PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" - COPYONLY + @ONLY ) install(EXPORT aziotsharedutilTargets @@ -755,7 +754,7 @@ install(EXPORT aziotsharedutilTargets install( FILES - "configs/${PROJECT_NAME}Config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" "configs/${PROJECT_NAME}Functions.cmake" "configs/azure_iot_build_rules.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" diff --git a/configs/azure_c_shared_utilityConfig.cmake b/configs/azure_c_shared_utilityConfig.cmake index 2d7c733e..0e1e4d41 100644 --- a/configs/azure_c_shared_utilityConfig.cmake +++ b/configs/azure_c_shared_utilityConfig.cmake @@ -1,11 +1,12 @@ #Copyright (c) Microsoft. All rights reserved. #Licensed under the MIT license. See LICENSE file in the project root for full license information. -if(UNIX) - if(${use_http}) - include(CMakeFindDependencyMacro) - find_dependency(CURL) - endif() +include(CMakeFindDependencyMacro) +if("@use_openssl@") + find_dependency(OpenSSL) +endif() +if(UNIX AND NOT "@use_builtin_httpapi@") + find_dependency(CURL) endif() include("${CMAKE_CURRENT_LIST_DIR}/azure_c_shared_utilityTargets.cmake") ================================================ FILE: ports/azure-c-shared-utility/modify-POSIX-c-version.patch ================================================ diff --git a/configs/azure_iot_build_rules.cmake b/configs/azure_iot_build_rules.cmake index 2f7e4ae..00c94c7 100644 --- a/configs/azure_iot_build_rules.cmake +++ b/configs/azure_iot_build_rules.cmake @@ -73,7 +73,7 @@ if(MSVC) elseif(UNIX) #LINUX OR APPLE if(NOT (IN_OPENWRT OR APPLE)) # _XOPEN_SOURCE=500 is required for glibc to expose random and srandom. - set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}") + set (CMAKE_C_FLAGS "-D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 ${CMAKE_C_FLAGS}") endif() endif() ================================================ FILE: ports/azure-c-shared-utility/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-c-shared-utility REF 772a4f8bc338140b4a0f404cf9c344283c5c937f SHA512 cd81698e58ad14b17ca87ce2ff80fd48f5bf4b6dded9d311f9ce0822b90f0f874d99210a019e00aa9a2e1c48914a4c2934f4d935638af68d2f88c5bdb26669dd HEAD_REF master PATCHES fix-install-location.patch fix-utilityFunctions-conditions.patch disable-error.patch improve-dependencies.patch modify-POSIX-c-version.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dskip_samples=ON -Duse_installed_dependencies=ON -Duse_default_uuid=ON -Dbuild_as_dynamic=OFF MAYBE_UNUSED_VARIABLES build_as_dynamic ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME azure_c_shared_utility CONFIG_PATH lib/cmake/azure_c_shared_utility) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${SOURCE_PATH}/configs/azure_iot_build_rules.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-c-shared-utility/vcpkg.json ================================================ { "name": "azure-c-shared-utility", "version-date": "2025-03-31", "description": "Azure C SDKs common code", "homepage": "https://github.com/Azure/azure-c-shared-utility", "license": "MIT", "supports": "!uwp", "dependencies": [ "azure-macro-utils-c", { "name": "curl", "platform": "!windows" }, { "name": "openssl", "platform": "!windows & !osx" }, "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-core-amqp-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-core-amqp_${VERSION}" SHA512 92d5648b832c38587c2ceccaf3293252a7f5b976df7f57fc475b8fcd396ba3bb7fd2c18e46b3b06f6c8776aed6df1c4a36ef2b8bc5f07f1f23c771ff476a7af7 HEAD_REF main PATCHES set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/core/azure-core-amqp") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/core/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/core/azure-core-amqp" "${SOURCE_PATH}/sdk/core/_") file(RENAME "${SOURCE_PATH}/sdk/core" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-core-amqp-cpp/set_version.patch ================================================ diff --git a/sdk/core/azure-core-amqp/CMakeLists.txt b/sdk/core/azure-core-amqp/CMakeLists.txt index 3ef7bf8d9..6d2829e84 100644 --- a/sdk/core/azure-core-amqp/CMakeLists.txt +++ b/sdk/core/azure-core-amqp/CMakeLists.txt @@ -177,6 +177,7 @@ target_link_libraries(azure-core-amqp PRIVATE PUBLIC Azure::azure-core) get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-core-amqp PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-core-amqp ${AZ_LIBRARY_VERSION}) az_vcpkg_export( ================================================ FILE: ports/azure-core-amqp-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-core-amqp-cpp", "version-semver": "1.0.0-beta.11", "port-version": 2, "description": [ "Microsoft Azure AMQP SDK for C++", "This library provides AMQP functionality to Azure SDK services." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/core/azure-core-amqp", "license": "MIT", "supports": "!uwp", "dependencies": [ "azure-c-shared-utility", { "name": "azure-core-cpp", "default-features": false, "version>=": "1.11.3" }, "azure-macro-utils-c", "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-core-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-core_${VERSION}" SHA512 7b960b5d6467acbd5abac18b28852f8c8027241a52a1d1705bbbe1b8bc4f288964597da444a3dcbddafc2298c70049c80b318fe3815be4375f56d87cc908255f HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES curl BUILD_TRANSPORT_CURL winhttp BUILD_TRANSPORT_WINHTTP ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/core/azure-core") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/core/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/core/azure-core" "${SOURCE_PATH}/sdk/core/_") file(RENAME "${SOURCE_PATH}/sdk/core" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS ${FEATURE_OPTIONS} -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF -DNO_AUTOMATIC_TRANSPORT_BUILD=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-core-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-core-cpp", "version-semver": "1.16.2", "description": [ "Microsoft Azure Core SDK for C++", "This library provides shared primitives, abstractions, and helpers for modern Azure SDK client libraries written in the C++." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/core/azure-core", "license": "MIT", "dependencies": [ { "name": "openssl", "platform": "!windows & !uwp" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "http" ], "features": { "curl": { "description": "Libcurl HTTP transport implementation", "dependencies": [ { "name": "azure-core-cpp", "default-features": false }, { "name": "curl", "default-features": false, "features": [ "ssl" ] } ] }, "http": { "description": "All HTTP transport implementations available on the platform", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "features": [ "curl" ] }, { "name": "azure-core-cpp", "default-features": false, "features": [ "curl", "winhttp" ], "platform": "windows & !uwp" } ] }, "winhttp": { "description": "WinHTTP HTTP transport implementation", "supports": "windows & !uwp", "dependencies": [ { "name": "azure-core-cpp", "default-features": false }, "wil" ] } } } ================================================ FILE: ports/azure-core-tracing-opentelemetry-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-core-tracing-opentelemetry_${VERSION}" SHA512 645c616fe54024f30a6e4b9c2626bfeaf906086be7bbeccc4a1155178670fb70d9818938db2f9fa8e3b9593ca45e0b10042dcd67fde04d2542f6f72a74884697 HEAD_REF main PATCHES useragent.patch set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/core/azure-core-tracing-opentelemetry") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/core/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/core/azure-core-tracing-opentelemetry" "${SOURCE_PATH}/sdk/core/_") file(RENAME "${SOURCE_PATH}/sdk/core" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-core-tracing-opentelemetry-cpp/set_version.patch ================================================ diff --git a/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt b/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt index 23cf7d143..a3c058874 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt +++ b/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt @@ -83,6 +83,8 @@ get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") generate_documentation(azure-core-tracing-opentelemetry ${AZ_LIBRARY_VERSION}) if(BUILD_AZURE_CORE_TRACING_OPENTELEMETRY) + set_target_properties(azure-core-tracing-opentelemetry PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) + az_vcpkg_export( azure-core-tracing-opentelemetry CORE_TRACING_OPENTELEMETRY ================================================ FILE: ports/azure-core-tracing-opentelemetry-cpp/useragent.patch ================================================ diff --git a/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt b/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt index 6d0dc1515..86381bb44 100644 --- a/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt +++ b/sdk/core/azure-core-tracing-opentelemetry/CMakeLists.txt @@ -59,6 +59,8 @@ if (BUILD_AZURE_CORE_TRACING_OPENTELEMETRY) $ ) + target_compile_definitions(azure-core-tracing-opentelemetry PRIVATE _azure_BUILDING_SDK) + # make sure that users can consume the project as a library. add_library(Azure::azure-core-tracing-opentelemetry ALIAS azure-core-tracing-opentelemetry) ================================================ FILE: ports/azure-core-tracing-opentelemetry-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-core-tracing-opentelemetry-cpp", "version-semver": "1.0.0-beta.4", "port-version": 6, "description": [ "Microsoft Azure Core Tracing OpenTelemetry SDK for C++", "This library provides support for modern Azure SDK client libraries written in C++ to leverage OpenTelemetry APIs." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/core/azure-core-tracing-opentelemetry", "license": "MIT", "supports": "!(windows & !static)", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.8.0" }, { "name": "opentelemetry-cpp", "version>=": "1.3.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-data-tables-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-data-tables_${VERSION}" SHA512 368ad9a26e824de2f547263ce923e6ccdcadaadf43bdbbffe7d88948b2f9012f5f545a073caa4311d3ff5c5486ceb0b849a5e130cff295926fbed17153d959a5 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/tables/azure-data-tables") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/tables/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/tables/azure-data-tables" "${SOURCE_PATH}/sdk/tables/_") file(RENAME "${SOURCE_PATH}/sdk/tables" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-data-tables-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-data-tables-cpp", "version-semver": "1.0.0-beta.6", "port-version": 1, "description": [ "Microsoft Azure Data Tables SDK for C++", "This library provides Azure Data Tables SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/tables/azure-data-tables", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.11.3" }, { "name": "libxml2", "default-features": false, "platform": "!windows" }, { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-identity-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-identity_${VERSION}" SHA512 df55c714eff596ba585ac1f9ec32a6c6cc805022ac5aa05f36a342e5e967b2fb8afa80d243206c4facf3dcf1d5e921d7eed8623de5fb515faaa43c696c972396 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/identity/azure-identity") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/identity/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/identity/azure-identity" "${SOURCE_PATH}/sdk/identity/_") file(RENAME "${SOURCE_PATH}/sdk/identity" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-identity-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-identity-cpp", "version-semver": "1.13.3", "description": [ "Microsoft Azure Identity SDK for C++", "This library provides common authentication-related abstractions for Azure SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/identity/azure-identity", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.16.2" }, { "name": "openssl", "platform": "!windows & !uwp" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "wil", "platform": "windows & !uwp" } ] } ================================================ FILE: ports/azure-iot-sdk-c/fix-install-location.patch ================================================ diff --git a/provisioning_client/CMakeLists.txt b/provisioning_client/CMakeLists.txt index 39f269d51..ff53ca32d 100644 --- a/provisioning_client/CMakeLists.txt +++ b/provisioning_client/CMakeLists.txt @@ -357,7 +357,7 @@ if(${use_installed_dependencies}) set(CMAKE_INSTALL_LIBDIR "lib") endif() - install(TARGETS ${provisioning_libs} EXPORT azure_prov_sdksTargets + install(TARGETS ${provisioning_libs} EXPORT azure_iot_sdksTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -372,26 +372,6 @@ if(${use_installed_dependencies}) VERSION ${PROV_SDK_VERSION} COMPATIBILITY SameMajorVersion ) - - configure_file("../configs/${PROJECT_NAME}Config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" - COPYONLY - ) - - install(EXPORT azure_prov_sdksTargets - FILE - "${PROJECT_NAME}Targets.cmake" - DESTINATION - ${package_location} - ) - - install( - FILES - "../configs/${PROJECT_NAME}Config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION - ${package_location} - ) else() # Install Provisioning libs if(NOT DEFINED CMAKE_INSTALL_LIBDIR) ================================================ FILE: ports/azure-iot-sdk-c/fix-iothubclient-includes.patch ================================================ diff --git a/iothub_client/CMakeLists.txt b/iothub_client/CMakeLists.txt index 5a8f5573c..07ab3b7cb 100644 --- a/iothub_client/CMakeLists.txt +++ b/iothub_client/CMakeLists.txt @@ -442,8 +442,6 @@ target_include_directories(iothub_client PUBLIC $ - $ + $ - $ - $ ) applyXcodeBuildFlagsIfNeeded(iothub_client) target_link_libraries(iothub_client ${iothub_client_libs}) ================================================ FILE: ports/azure-iot-sdk-c/improve-external-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 427e82e..5a58e47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -257,6 +257,9 @@ add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/deps) if(${use_installed_dependencies}) find_package(parson REQUIRED CONFIG) endif() +if(NOT TARGET parson) + add_library(parson ALIAS parson::parson) +endif() include_directories(${MACRO_UTILS_INC_FOLDER}) include_directories(${UMOCK_C_INC_FOLDER}) diff --git a/configs/azure_iot_sdksConfig.cmake b/configs/azure_iot_sdksConfig.cmake index b9c62e8..edf5847 100644 --- a/configs/azure_iot_sdksConfig.cmake +++ b/configs/azure_iot_sdksConfig.cmake @@ -1,5 +1,11 @@ #Copyright (c) Microsoft. All rights reserved. #Licensed under the MIT license. See LICENSE file in the project root for full license information. +include(CMakeFindDependencyMacro) +find_dependency(parson) +find_dependency(uamqp) +find_dependency(uhttp) +find_dependency(umqtt) +find_dependency(azure_c_shared_utility) include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_sdksTargets.cmake") diff --git a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt index 33b5b8709..45ef7b87a 100644 --- a/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt +++ b/iothub_client/tests/iothubclient_amqp_dt_e2e/CMakeLists.txt @@ -22,11 +22,9 @@ set(${theseTestsName}_c_files set(${theseTestsName}_c_files ../../../certs/certs.c - ../../../deps/parson/parson.c ) set(${theseTestsName}_h_files ../../../certs/certs.h - ../../../deps/parson/parson.h ../common_dt_e2e/iothubclient_common_dt_e2e.h ) diff --git a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt index d05d654..5872c8d 100644 --- a/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt +++ b/iothub_client/tests/iothubclient_mqtt_dt_e2e_sfc/CMakeLists.txt @@ -22,12 +22,10 @@ set(${theseTestsName}_nuget_c_files set(${theseTestsName}_c_files ../../../certs/certs.c - ../../../deps/parson/parson.c ) set(${theseTestsName}_h_files ../../../certs/certs.h - ../../../deps/parson/parson.h ../common_dt_e2e/iothubclient_common_dt_e2e.h ) ================================================ FILE: ports/azure-iot-sdk-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-iot-sdk-c REF 79145b2cf2050b3a10d22003156db86f6e9c5c5e SHA512 771950d5472eaf49edd032ac987ea65aee8b9ef7c481c5fb8c3e1b3fb1efabcdce309e6a107949f34f78edea9704854a3791b111dce729c53fa0f041da352fb1 HEAD_REF master PATCHES fix-install-location.patch improve-external-deps.patch fix-iothubclient-includes.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES use-prov-client hsm_type_symm_key use-prov-client use_prov_client ) file(COPY "${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake" DESTINATION "${SOURCE_PATH}/deps/azure-c-shared-utility/configs/") file(COPY "${SOURCE_PATH}/configs/azure_iot_sdksFunctions.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/cmake/azure_iot_sdks/") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dskip_samples=ON -Duse_installed_dependencies=ON -Duse_default_uuid=ON -Dbuild_as_dynamic=OFF -Duse_edge_modules=ON -Dwarnings_as_errors=OFF -Dhsm_type_sastoken=OFF MAYBE_UNUSED_VARIABLES build_as_dynamic warnings_as_errors ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME azure_iot_sdks CONFIG_PATH "lib/cmake/azure_iot_sdks") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/azure-iot-sdk-c/vcpkg.json ================================================ { "name": "azure-iot-sdk-c", "version-date": "2025-03-31", "description": "A C99 SDK for connecting devices to Microsoft Azure IoT services", "homepage": "https://github.com/Azure/azure-iot-sdk-c", "license": "MIT", "dependencies": [ "azure-c-shared-utility", "azure-macro-utils-c", "azure-uamqp-c", "azure-uhttp-c", "azure-umqtt-c", "parson", "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "use-prov-client": { "description": "Enables device provisioning client for DPS" } } } ================================================ FILE: ports/azure-kinect-depth-engine/k4adeploy.ps1 ================================================ # Note: This function signature and behavior is depended upon by applocal.ps1 function deployAzureKinectSensorSDK([string]$targetBinaryDir, [string]$installedDir, [string]$targetBinaryName) { if ($targetBinaryName -like "k4a.dll") { if(Test-Path "$installedDir\tools\azure-kinect-sensor-sdk\depthengine_2_0.dll") { Write-Verbose " Deploying Azure Kinect Sensor SDK Initialization" deployBinary "$targetBinaryDir" "$installedDir\tools\azure-kinect-sensor-sdk\" "depthengine_2_0.dll" } } } ================================================ FILE: ports/azure-kinect-depth-engine/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # runtime only vcpkg_download_distfile(BLOB_ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.Azure.Kinect.Sensor/${VERSION}" FILENAME "microsoft.azure.kinect.sensor.${VERSION}.nupkg.zip" SHA512 6e9e68f16bb00b3ddfdc963c6b62f9100d12b3407e0cd894052d5dc08ce2214e871f0c0977bff5b5e52af4ee325f775c818e2babacb6e8633b2887a9866c3ea3 ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE "${BLOB_ARCHIVE}" NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_IS_LINUX) file(COPY "${PACKAGE_PATH}/linux/lib/native/${VCPKG_TARGET_ARCHITECTURE}/release/libdepthengine.so.2.0" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(NOT VCPKG_BUILD_TYPE) file(COPY "${PACKAGE_PATH}/linux/lib/native/${VCPKG_TARGET_ARCHITECTURE}/release/libdepthengine.so.2.0" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() elseif(VCPKG_TARGET_IS_WINDOWS) string(REPLACE "x64" "amd64" ARCHITECTURE "${VCPKG_TARGET_ARCHITECTURE}") file(COPY "${PACKAGE_PATH}/lib/native/${ARCHITECTURE}/release/depthengine_2_0.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/azure-kinect-sensor-sdk") file(COPY "${CMAKE_CURRENT_LIST_DIR}/k4adeploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/azure-kinect-sensor-sdk") if(NOT VCPKG_BUILD_TYPE) file(COPY "${PACKAGE_PATH}/lib/native/${ARCHITECTURE}/release/depthengine_2_0.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/azure-kinect-sensor-sdk") file(COPY "${CMAKE_CURRENT_LIST_DIR}/k4adeploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/azure-kinect-sensor-sdk") endif() endif() vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") ================================================ FILE: ports/azure-kinect-depth-engine/vcpkg.json ================================================ { "name": "azure-kinect-depth-engine", "version": "1.4.2", "description": "The depth engine converts raw sensor data into a normalized depth map. It contains closed-source proprietary code.", "homepage": "https://github.com/microsoft/Azure-Kinect-Sensor-SDK/blob/develop/docs/depthengine.md", "license": null, "supports": "(linux & (x64 | arm64)) | (windows & (x64 | x86))" } ================================================ FILE: ports/azure-kinect-sensor-sdk/fix-build-imgui.patch ================================================ diff --git a/tools/k4aviewer/k4alogdockcontrol.cpp b/tools/k4aviewer/k4alogdockcontrol.cpp index 4289f71..407e912 100644 --- a/tools/k4aviewer/k4alogdockcontrol.cpp +++ b/tools/k4aviewer/k4alogdockcontrol.cpp @@ -161,7 +161,7 @@ K4ADockControlStatus K4ALogDockControl::Show() if (updated) { - ImGui::SetScrollHere(1.0f); + ImGui::SetScrollHereY(1.0f); } ImGui::EndChild(); diff --git a/tools/k4aviewer/k4asourceselectiondockcontrol.cpp b/tools/k4aviewer/k4asourceselectiondockcontrol.cpp index 812608b..31e961d 100644 --- a/tools/k4aviewer/k4asourceselectiondockcontrol.cpp +++ b/tools/k4aviewer/k4asourceselectiondockcontrol.cpp @@ -34,7 +34,7 @@ K4ASourceSelectionDockControl::K4ASourceSelectionDockControl() K4ADockControlStatus K4ASourceSelectionDockControl::Show() { - ImGui::SetNextTreeNodeOpen(true, ImGuiCond_FirstUseEver); + ImGui::SetNextItemOpen(true, ImGuiCond_FirstUseEver); if (ImGui::TreeNode("Open Device")) { ImGuiExtensions::K4AComboBox("Device S/N", diff --git a/tools/k4aviewer/k4adevicedockcontrol.cpp b/tools/k4aviewer/k4adevicedockcontrol.cpp index 8fe5687..6d1e95a 100644 --- a/tools/k4aviewer/k4adevicedockcontrol.cpp +++ b/tools/k4aviewer/k4adevicedockcontrol.cpp @@ -333,7 +333,7 @@ K4ADockControlStatus K4ADeviceDockControl::Show() if (m_firstRun || depthEnabledStateChanged) { - ImGui::SetNextTreeNodeOpen(m_config.EnableDepthCamera); + ImGui::SetNextItemOpen(m_config.EnableDepthCamera); } ImGui::Indent(); @@ -376,7 +376,7 @@ K4ADockControlStatus K4ADeviceDockControl::Show() if (m_firstRun || colorEnableStateChanged) { - ImGui::SetNextTreeNodeOpen(m_config.EnableColorCamera); + ImGui::SetNextItemOpen(m_config.EnableColorCamera); } ImGui::Indent(); @@ -710,7 +710,7 @@ K4ADockControlStatus K4ADeviceDockControl::Show() if (m_firstRun && (m_syncInConnected || m_syncOutConnected)) { - ImGui::SetNextTreeNodeOpen(true); + ImGui::SetNextItemOpen(true); } if (ImGui::TreeNode("External Sync")) { diff --git a/tools/k4aviewer/k4aviewerimage.cpp b/tools/k4aviewer/k4aviewerimage.cpp index 68899f1..ad23490 100644 --- a/tools/k4aviewer/k4aviewerimage.cpp +++ b/tools/k4aviewer/k4aviewerimage.cpp @@ -134,7 +134,9 @@ GLenum K4AViewerImage::Create(std::shared_ptr *out, K4AViewerImage::operator ImTextureID() const { - return reinterpret_cast(static_cast(m_texture.Id())); + // m_texture.Id() : GLUint, 32 bit unsigned + // ImTextureID : ImU64, 64 bit unsigned + return m_texture.Id(); } K4AViewerImage::operator GLuint() const ================================================ FILE: ports/azure-kinect-sensor-sdk/fix-builds.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f002b5..dd9b1df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,8 +27,6 @@ option(K4A_BUILD_DOCS "Build K4A doxygen documentation" OFF) option(K4A_MTE_VERSION "Skip FW version check" OFF) option(K4A_SOURCE_LINK "Enable source linking on MSVC" OFF) -include(GitCommands) - # Set the project version include(K4AProjectVersion) @@ -101,7 +99,59 @@ if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL endif() # Find all dependencies -add_subdirectory(extern) +find_package(azure_c_shared_utility CONFIG REQUIRED) +add_library(azure::aziotsharedutil ALIAS aziotsharedutil) + +find_package(cJSON CONFIG REQUIRED) +add_library(cJSON::cJSON ALIAS cjson) + +find_package(EBML CONFIG REQUIRED) +add_library(ebml::ebml ALIAS EBML::ebml) + +find_package(libjpeg-turbo CONFIG REQUIRED) +if(TARGET libjpeg-turbo::turbojpeg) + add_library(libjpeg-turbo::libjpeg-turbo ALIAS libjpeg-turbo::turbojpeg) +else() + add_library(libjpeg-turbo::libjpeg-turbo ALIAS libjpeg-turbo::turbojpeg-static) +endif() + +find_package(libsoundio CONFIG REQUIRED) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) +add_library(LibUSB::LibUSB ALIAS PkgConfig::libusb) + +if(NOT WIN32) + find_package(libuvc CONFIG REQUIRED) + if(TARGET LibUVC::UVCShared) + add_library(libuvc::libuvc ALIAS LibUVC::UVCShared) + else() + add_library(libuvc::libuvc ALIAS LibUVC::UVCStatic) + endif() +endif() + +find_package(libyuv CONFIG REQUIRED) +add_library(libyuv::libyuv ALIAS yuv) + +find_package(Matroska CONFIG REQUIRED) +add_library(matroska::matroska ALIAS Matroska::matroska) +add_definitions(-DMATROSKA_VERSION=2) + +find_package(spdlog CONFIG REQUIRED) + +if (BUILD_TOOLS) + find_package(gl3w CONFIG REQUIRED) + + find_package(glfw3 CONFIG REQUIRED) + add_library(glfw::glfw ALIAS glfw) + + find_package(imgui CONFIG REQUIRED) +endif() + +# Fix embl error +if (MSVC) + add_compile_options(/wd4828 /wd4251 /wd4275) +endif() # Don't enable testing until after building dependencies enable_testing() @@ -161,10 +211,13 @@ if ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") endif() endif() -add_subdirectory(examples) -add_subdirectory(src) -add_subdirectory(tests) -add_subdirectory(tools) +if (BUILD_EXAMPLES) + add_subdirectory(examples) +endif() + add_subdirectory(src) +if (BUILD_TOOLS) + add_subdirectory(tools) +endif() if (K4A_BUILD_DOCS) find_package(Doxygen 1.8.14 EXACT) diff --git a/src/calibration/calibration.c b/src/calibration/calibration.c index bf5f34a..d37c4e6 100644 --- a/src/calibration/calibration.c +++ b/src/calibration/calibration.c @@ -6,7 +6,7 @@ // Dependent libraries #include -#include +#include #include //cJSON.h need this set correctly. // System dependencies diff --git a/src/logging/logging.cpp b/src/logging/logging.cpp index 05264c5..41185de 100644 --- a/src/logging/logging.cpp +++ b/src/logging/logging.cpp @@ -24,6 +24,9 @@ #pragma warning(disable : 4702) #endif #include +#include +#include +#include #ifdef _MSC_VER #pragma warning(default : 4702) #endif diff --git a/src/usbcommand/usb_cmd_priv.h b/src/usbcommand/usb_cmd_priv.h index 0aa502c..0405b58 100644 --- a/src/usbcommand/usb_cmd_priv.h +++ b/src/usbcommand/usb_cmd_priv.h @@ -20,7 +20,7 @@ #include // Exteranl dependencis -#include +#include // Ensure we have LIBUSB_API_VERSION defined if not defined by libusb.h #ifndef LIBUSB_API_VERSION diff --git a/tools/k4aviewer/CMakeLists.txt b/tools/k4aviewer/CMakeLists.txt index 98578c0..244c867 100644 --- a/tools/k4aviewer/CMakeLists.txt +++ b/tools/k4aviewer/CMakeLists.txt @@ -64,6 +64,7 @@ set(EXTERNAL_LIBRARIES libyuv::libyuv glfw::glfw ${OPENGL_LIBRARIES} + unofficial::gl3w::gl3w ) # On Windows, we need to call into setupapi to get USB container ID information diff --git a/tools/k4aviewer/k4aaudiomanager.cpp b/tools/k4aviewer/k4aaudiomanager.cpp index 243c800..ef85d45 100644 --- a/tools/k4aviewer/k4aaudiomanager.cpp +++ b/tools/k4aviewer/k4aaudiomanager.cpp @@ -11,7 +11,7 @@ // Library headers // -#include +#include // Project headers // diff --git a/tools/k4aviewer/k4asoundio_util.h b/tools/k4aviewer/k4asoundio_util.h index c9c2718..011a76e 100644 --- a/tools/k4aviewer/k4asoundio_util.h +++ b/tools/k4aviewer/k4asoundio_util.h @@ -16,7 +16,7 @@ // This disables that behavior. // #define NOMINMAX -#include +#include // Project headers // ================================================ FILE: ports/azure-kinect-sensor-sdk/fix-calibration-c.patch ================================================ diff --git a/src/calibration/calibration.c b/src/calibration/calibration.c index d37c4e6..ec477f5 100644 --- a/src/calibration/calibration.c +++ b/src/calibration/calibration.c @@ -7,7 +7,6 @@ // Dependent libraries #include #include -#include //cJSON.h need this set correctly. // System dependencies #include @@ -637,27 +636,6 @@ k4a_result_t calibration_create_from_raw(char *raw_calibration, k4a_result_t result = K4A_RESULT_SUCCEEDED; -#ifdef _WIN32 - int previous_thread_locale = -1; - if (K4A_SUCCEEDED(result)) - { - previous_thread_locale = _configthreadlocale(_ENABLE_PER_THREAD_LOCALE); - result = K4A_RESULT_FROM_BOOL(previous_thread_locale == _ENABLE_PER_THREAD_LOCALE || - previous_thread_locale == _DISABLE_PER_THREAD_LOCALE); - } - - if (K4A_SUCCEEDED(result)) - { - result = K4A_RESULT_FROM_BOOL(setlocale(LC_ALL, "C") != NULL); - } - -#else // NOT _WIN32 - - locale_t thread_locale = newlocale(LC_ALL_MASK, "C", (locale_t)0); - locale_t previous_locale = uselocale(thread_locale); - -#endif - if (K4A_SUCCEEDED(result) && depth_calibration != NULL) { result = get_camera_calibration(raw_calibration, depth_calibration, "CALIBRATION_CameraLocationD0"); @@ -680,29 +658,6 @@ k4a_result_t calibration_create_from_raw(char *raw_calibration, "CALIBRATION_InertialSensorType_Accelerometer"); } -#ifdef _WIN32 - if (previous_thread_locale == _ENABLE_PER_THREAD_LOCALE || previous_thread_locale == _DISABLE_PER_THREAD_LOCALE) - { - if (K4A_FAILED(K4A_RESULT_FROM_BOOL(_configthreadlocale(previous_thread_locale) != -1))) - { - // Only set result to failed, don't let this call succeed and clear a failure that might have happened - // already. - result = K4A_RESULT_FAILED; - } - } -#else // NOT _WIN32 - if ((previous_locale != NULL) && (K4A_FAILED(K4A_RESULT_FROM_BOOL(uselocale(previous_locale) != NULL)))) - { - // Only set result to failed, don't let this call succeed and clear a failure that might have happened - // already. - result = K4A_RESULT_FAILED; - } - if (thread_locale) - { - freelocale(thread_locale); - } -#endif - return result; } ================================================ FILE: ports/azure-kinect-sensor-sdk/fix-header.patch ================================================ diff --git a/tools/k4aviewer/k4aaudiochanneldatagraph.h b/tools/k4aviewer/k4aaudiochanneldatagraph.h index 9aede89..56d2c77 100644 --- a/tools/k4aviewer/k4aaudiochanneldatagraph.h +++ b/tools/k4aviewer/k4aaudiochanneldatagraph.h @@ -7,6 +7,7 @@ // System headers // #include +#include // Library headers // diff --git a/tools/k4aviewer/k4aaudiowindow.h b/tools/k4aviewer/k4aaudiowindow.h index 87b63b3..fcfc86e 100644 --- a/tools/k4aviewer/k4aaudiowindow.h +++ b/tools/k4aviewer/k4aaudiowindow.h @@ -8,6 +8,7 @@ // #include #include +#include // Library headers // diff --git a/tools/k4aviewer/k4amicrophonelistener.cpp b/tools/k4aviewer/k4amicrophonelistener.cpp index db7b546..8baa05c 100644 --- a/tools/k4aviewer/k4amicrophonelistener.cpp +++ b/tools/k4aviewer/k4amicrophonelistener.cpp @@ -8,6 +8,7 @@ // System headers // #include +#include // Library headers // diff --git a/tools/k4aviewer/perfcounter.h b/tools/k4aviewer/perfcounter.h index b39e721..c3e28d2 100644 --- a/tools/k4aviewer/perfcounter.h +++ b/tools/k4aviewer/perfcounter.h @@ -13,6 +13,7 @@ #include #include #include +#include // Library headers // ================================================ FILE: ports/azure-kinect-sensor-sdk/fix-linux.patch ================================================ diff --git a/cmake/k4aCompilerFlags.cmake b/cmake/k4aCompilerFlags.cmake index e938c907..ccea0a8e 100644 --- a/cmake/k4aCompilerFlags.cmake +++ b/cmake/k4aCompilerFlags.cmake @@ -34,22 +34,16 @@ if ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") list(APPEND CLANG_ALL_WARNINGS "-Wno-extra-semi-stmt") # Allow semi-colons to be used after #define's list(APPEND CLANG_ALL_WARNINGS "-Wno-atomic-implicit-seq-cst") # Allow use of __sync_add_and_fetch() atomic endif() - set(CLANG_WARNINGS_AS_ERRORS "-Werror") add_compile_options(${CLANG_ALL_WARNINGS}) - add_compile_options(${CLANG_WARNINGS_AS_ERRORS}) elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") set(GNU_ALL_WARNINGS "-Wall" "-Wextra") list(APPEND GNU_ALL_WARNINGS "-Wno-missing-field-initializers") # Allow c structs without all fields initialized - set(GNU_WARNINGS_AS_ERRORS "-Werror") add_compile_options(${GNU_ALL_WARNINGS}) - add_compile_options(${GNU_WARNINGS_AS_ERRORS}) elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") set(MSVC_ALL_WARNINGS "/W4" "/wd4200") #Note: allow zero length arrays - set(MSVC_WARNINGS_AS_ERRORS "/WX") string(REGEX REPLACE " /W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") string(REGEX REPLACE " /W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") add_compile_options(${MSVC_ALL_WARNINGS}) - add_compile_options(${MSVC_WARNINGS_AS_ERRORS}) else() message(FATAL_ERROR "Unknown C++ compiler: ${CMAKE_CXX_COMPILER_ID}") endif() diff --git a/src/logging/logging.cpp b/src/logging/logging.cpp index 05264c5f..6cd41d32 100644 --- a/src/logging/logging.cpp +++ b/src/logging/logging.cpp @@ -15,6 +15,7 @@ #include #include #include +#include // External dependencies ================================================ FILE: ports/azure-kinect-sensor-sdk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/Azure-Kinect-Sensor-SDK REF "v${VERSION}" SHA512 34db933c56fc4c5f38db54a10e0e9cfcfce536d21d1a1c963f33c038d83eb5e90fc28d6360b3c737b54118878e062860c43c2e051f8030b205f640ad1f2d3a94 HEAD_REF master PATCHES fix-builds.patch fix-linux.patch fix-calibration-c.patch fix-build-imgui.patch fix-header.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool BUILD_TOOLS ) # .rc file needs windows.h, so do not use PREFER_NINJA here vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DCMAKE_POLICY_DEFAULT_CMP0072=NEW -DBUILD_EXAMPLES=OFF -DK4A_SOURCE_LINK=OFF -DK4A_MTE_VERSION=ON "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/k4a" PACKAGE_NAME "k4a" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/k4arecord" PACKAGE_NAME "k4arecord") if ("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES k4arecorder k4aviewer AzureKinectFirmwareTool AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/azure-kinect-sensor-sdk/vcpkg.json ================================================ { "name": "azure-kinect-sensor-sdk", "version": "1.4.2", "description": "Azure Kinect SDK is a cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device.", "homepage": "https://github.com/microsoft/Azure-Kinect-Sensor-SDK", "license": "MIT", "supports": "(linux | windows) & !(static & staticcrt)", "dependencies": [ "azure-c-shared-utility", "azure-kinect-depth-engine", "cjson", "ebml", "libjpeg-turbo", "libsoundio", "libusb", { "name": "libuvc", "platform": "!windows" }, "libyuv", "matroska", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Build tools.", "dependencies": [ "gl3w", "glfw3", { "name": "imgui", "features": [ "glfw-binding", "opengl3-binding" ] } ] } } } ================================================ FILE: ports/azure-macro-utils-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-macro-utils-c REF 5926caf4e42e98e730e6d03395788205649a3ada SHA512 8f9fd02012202db6cff5b647edbc8332a2c03963e80182a630af6a884f23df96b8e24d60e5412bfc2a0a7f43240a54f9597040aa28a9d3e1566755e1d52aac62 HEAD_REF master FILE_DISAMBIGUATOR 1 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Drun_int_tests=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME azure_macro_utils_c CONFIG_PATH "cmake") file(COPY ${SOURCE_PATH}/inc/azure_macro_utils/macro_utils.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/azure_macro_utils_c/include/azure_macro_utils) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug) configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/azure-macro-utils-c/copyright COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/azure-macro-utils-c/vcpkg.json ================================================ { "name": "azure-macro-utils-c", "version-date": "2022-01-21", "port-version": 1, "description": "A library of macros for the Azure IoT SDK Suite", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-messaging-eventhubs-checkpointstore-blob-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-messaging-eventhubs-checkpointstore-blob_${VERSION}" SHA512 7c55eda0c04bbc57729a7b479d8d5874b0e06927aff1916833520a3a944e63b6fceabd3565fd91549ec00157f2c4af5a87a6a2db55a5c24df611cd96572f9a08 HEAD_REF main PATCHES useragent.patch set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/eventhubs/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob" "${SOURCE_PATH}/sdk/eventhubs/_") file(RENAME "${SOURCE_PATH}/sdk/eventhubs" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-messaging-eventhubs-checkpointstore-blob-cpp/set_version.patch ================================================ diff --git a/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt b/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt index 215269090..9fbc1062a 100644 --- a/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt +++ b/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt @@ -91,6 +91,7 @@ target_link_libraries(azure-messaging-eventhubs-checkpointstore-blob create_code_coverage(eventhubs azure-messaging-eventhubs-checkpointstore-blob azure-messaging-eventhubs-blobcheckpointstore-test "tests?/*;samples?/*") get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-messaging-eventhubs-checkpointstore-blob PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) #generate_documentation(azure-messaging-eventhubs-checkpointstore-blob ${AZ_LIBRARY_VERSION}) generate_documentation(azure-messaging-eventhubs-checkpointstore-blob ${AZ_LIBRARY_VERSION}) ================================================ FILE: ports/azure-messaging-eventhubs-checkpointstore-blob-cpp/useragent.patch ================================================ diff --git a/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt b/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt index f776b3a94..c9bf65363 100644 --- a/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt +++ b/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob/CMakeLists.txt @@ -69,6 +69,7 @@ add_library( azure-messaging-eventhubs-checkpointstore-blob ${AZURE_MESSAGING_EVENTHUBS_BLOB_CHECKPOINT_HEADER} ${AZURE_MESSAGING_EVENTHUBS_BLOB_CHECKPOINT_SOURCE} ) +target_compile_definitions(azure-messaging-eventhubs-checkpointstore-blob PRIVATE _azure_BUILDING_SDK) create_per_service_target_build(eventhubs azure-messaging-eventhubs-checkpointstore-blob) add_library(Azure::azure-messaging-eventhubs-checkpointstore-blob ALIAS azure-messaging-eventhubs-checkpointstore-blob) ================================================ FILE: ports/azure-messaging-eventhubs-checkpointstore-blob-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-messaging-eventhubs-checkpointstore-blob-cpp", "version-semver": "1.0.0-beta.1", "port-version": 5, "description": [ "Microsoft Azure Messaging Event Hubs Blob Checkpoint Store SDK for C++", "This library provides an Azure-Storage-Blobs based implementation of an Azure Messaging Event Hubs SDK Checkpoint Store." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/eventhubs/azure-messaging-eventhubs-checkpointstore-blob", "license": "MIT", "dependencies": [ { "name": "azure-core-amqp-cpp", "default-features": false, "version>=": "1.0.0-beta.2" }, { "name": "azure-messaging-eventhubs-cpp", "default-features": false, "version>=": "1.0.0-beta.2" }, { "name": "azure-storage-blobs-cpp", "default-features": false, "version>=": "12.8.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-messaging-eventhubs-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-messaging-eventhubs_${VERSION}" SHA512 13f1ad09a4093ab3a591208e47d6ce5daad2a4e055f2c86fdb49a9dbee4826efb19ddb294c0d5d9a4e5f4e2318059bd57fc346fec5ae1cee26f20839030f4276 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/eventhubs/azure-messaging-eventhubs") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/eventhubs/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/eventhubs/azure-messaging-eventhubs" "${SOURCE_PATH}/sdk/eventhubs/_") file(RENAME "${SOURCE_PATH}/sdk/eventhubs" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-messaging-eventhubs-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-messaging-eventhubs-cpp", "version-semver": "1.0.0-beta.10", "port-version": 1, "description": [ "Microsoft Azure Messaging Event Hubs SDK for C++", "This library provides Azure Messaging Event Hubs SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/eventhubs/azure-messaging-eventhubs", "license": "MIT", "dependencies": [ { "name": "azure-core-amqp-cpp", "default-features": false, "version>=": "1.0.0-beta.9" }, { "name": "azure-core-cpp", "default-features": false, "version>=": "1.14.1" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-security-attestation-cpp/context_syntax.patch ================================================ diff --git a/sdk/attestation/azure-security-attestation/inc/azure/attestation/attestation_client.hpp b/sdk/attestation/azure-security-attestation/inc/azure/attestation/attestation_client.hpp index d7c44d494..31fcb8d3f 100644 --- a/sdk/attestation/azure-security-attestation/inc/azure/attestation/attestation_client.hpp +++ b/sdk/attestation/azure-security-attestation/inc/azure/attestation/attestation_client.hpp @@ -176,7 +176,7 @@ namespace Azure { namespace Security { namespace Attestation { * specified service instance. */ Response GetOpenIdMetadata( - Azure::Core::Context const& context = Azure::Core::Context::ApplicationContext) const; + Azure::Core::Context const& context = {}) const; /** * @brief Retrieve the attestation signing certificates for this attestation instance. ================================================ FILE: ports/azure-security-attestation-cpp/cstdint.patch ================================================ diff --git a/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp b/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp index 9a98f204e..7da309db5 100644 --- a/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp +++ b/sdk/attestation/azure-security-attestation/src/private/crypto/inc/crypto.hpp @@ -2,6 +2,8 @@ // SPDX-License-Identifier: MIT #pragma once + +#include #include #include #include @@ -39,17 +41,18 @@ namespace Azure { namespace Security { namespace Attestation { namespace _detail * @return false The signature did not match the payload. */ virtual bool VerifySignature( - std::vector const& payload, - std::vector const& signature) const = 0; + std::vector const& payload, + std::vector const& signature) const = 0; /** * @brief Signs a buffer with an Asymmetric private key. Only valid for private asymmetric * keys. * * @param bufferToSign The buffer to be signed. - * @return std::vector Returns the signature of that buffer, signed with the private - * key. + * @return std::vector Returns the signature of that buffer, signed with the + * private key. */ - virtual std::vector SignBuffer(std::vector const& bufferToSign) const = 0; + virtual std::vector SignBuffer( + std::vector const& bufferToSign) const = 0; /** * @brief Exports the current asymmetric key as a private key (only valid for private * asymmetric keys) ================================================ FILE: ports/azure-security-attestation-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-security-attestation_${VERSION}" SHA512 bf5c0ab830122838045e3e5ff03aae38f81082b50b9b0c61fa21a8c101a2fd98ad98b136d49702665d720f59baa6a89c8af3f161a44c09d24ad747fb1828cbca HEAD_REF main PATCHES context_syntax.patch useragent.patch set_version.patch cstdint.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/attestation/azure-security-attestation") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/attestation/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/attestation/azure-security-attestation" "${SOURCE_PATH}/sdk/attestation/_") file(RENAME "${SOURCE_PATH}/sdk/attestation" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-security-attestation-cpp/set_version.patch ================================================ diff --git a/sdk/attestation/azure-security-attestation/CMakeLists.txt b/sdk/attestation/azure-security-attestation/CMakeLists.txt index 8dec8cfa5..dee51d63f 100644 --- a/sdk/attestation/azure-security-attestation/CMakeLists.txt +++ b/sdk/attestation/azure-security-attestation/CMakeLists.txt @@ -86,6 +86,7 @@ create_code_coverage(attestation azure-security-attestation azure-security-attes get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-security-attestation PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-security-attestation ${AZ_LIBRARY_VERSION}) az_vcpkg_export( ================================================ FILE: ports/azure-security-attestation-cpp/useragent.patch ================================================ diff --git a/sdk/attestation/azure-security-attestation/CMakeLists.txt b/sdk/attestation/azure-security-attestation/CMakeLists.txt index 6993ce663..d57e7154d 100644 --- a/sdk/attestation/azure-security-attestation/CMakeLists.txt +++ b/sdk/attestation/azure-security-attestation/CMakeLists.txt @@ -76,6 +76,7 @@ target_include_directories( ) target_link_libraries(azure-security-attestation PUBLIC Azure::azure-core OpenSSL::Crypto OpenSSL::SSL) +target_compile_definitions(azure-security-attestation PRIVATE _azure_BUILDING_SDK) # make sure that users can consume the project as a library. add_library(Azure::azure-security-attestation ALIAS azure-security-attestation) ================================================ FILE: ports/azure-security-attestation-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-security-attestation-cpp", "version-semver": "1.1.0", "port-version": 8, "description": [ "Microsoft Azure Attestation Service SDK for C++", "This library provides API access to the Microsoft Azure Attestation service." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/attestation/azure-security-attestation", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.8.0" }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-security-keyvault-administration-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-security-keyvault-administration_${VERSION}" SHA512 075364958d05b4eace3babbcc700706a02f2125577d3f903ef4ca2cc71245a45963ca5ac82f1e9bd3903c799d3c44846741802cbd917bbc8f65a92d047caf7ef HEAD_REF main PATCHES set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-administration") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/keyvault/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-administration" "${SOURCE_PATH}/sdk/keyvault/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-security-keyvault-administration-cpp/set_version.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-administration/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-administration/CMakeLists.txt index 5f70eb301..45a1181e7 100644 --- a/sdk/keyvault/azure-security-keyvault-administration/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-administration/CMakeLists.txt @@ -95,6 +95,7 @@ target_compile_definitions(azure-security-keyvault-administration PRIVATE _azure create_code_coverage(keyvault azure-security-keyvault-administration azure-security-keyvault-administration-test "tests?/*;samples?/*") get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-security-keyvault-administration PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-security-keyvault-administration ${AZ_LIBRARY_VERSION}) if(BUILD_TESTING) ================================================ FILE: ports/azure-security-keyvault-administration-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-security-keyvault-administration-cpp", "version-semver": "4.0.0-beta.5", "port-version": 2, "description": [ "Microsoft Azure Key Vault Administration SDK for C++", "This library provides Azure Key Vault Administration SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/keyvault/azure-security-keyvault-administration", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.9.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-security-keyvault-certificates-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-security-keyvault-certificates_${VERSION}" SHA512 f18d205ee0be9ab4289860fe4fdc0f4a6c3571eb0a8d0ca0ea66e7fef477e04ed0ba455e1a5af687e0980d7f12b919d1a5c85ee40d41dbcfd695f5d62843dcd5 HEAD_REF main PATCHES useragent.patch set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-certificates") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/keyvault/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-certificates" "${SOURCE_PATH}/sdk/keyvault/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-security-keyvault-certificates-cpp/set_version.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt index 0806e09b0..0c08f1576 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt @@ -100,6 +100,7 @@ target_compile_definitions(azure-security-keyvault-certificates PRIVATE _azure_B create_code_coverage(keyvault azure-security-keyvault-certificates azure-security-keyvault-certificates-test "tests?/*;samples?/*") get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-security-keyvault-certificates PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-security-keyvault-certificates ${AZ_LIBRARY_VERSION}) if(BUILD_TESTING) ================================================ FILE: ports/azure-security-keyvault-certificates-cpp/useragent.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt index 084e41fb6..bae592cb0 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt @@ -94,6 +94,8 @@ target_include_directories( target_link_libraries(azure-security-keyvault-certificates PUBLIC Azure::azure-core) +target_compile_definitions(azure-security-keyvault-certificates PRIVATE _azure_BUILDING_SDK) + # coverage. Has no effect if BUILD_CODE_COVERAGE is OFF create_code_coverage(keyvault azure-security-keyvault-certificates azure-security-keyvault-certificates-test "tests?/*;samples?/*") ================================================ FILE: ports/azure-security-keyvault-certificates-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-security-keyvault-certificates-cpp", "version-semver": "4.2.1", "port-version": 4, "description": [ "Microsoft Azure Key Vault Certificates SDK for C++", "This library provides Azure Key Vault Certificates SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/keyvault/azure-security-keyvault-certificates", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.9.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-security-keyvault-keys-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-security-keyvault-keys_${VERSION}" SHA512 758ff05ce33672d81cf14d347edada2a7c008c7df61639b7bac9ce1a1114144a1f6fcc3d364d1d90f5f9cda8f8c1db14f80873403d4190d4aca1844fb25dd517 HEAD_REF main PATCHES useragent.patch set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-keys") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/keyvault/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-keys" "${SOURCE_PATH}/sdk/keyvault/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-security-keyvault-keys-cpp/set_version.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt index 6217fd13f..d5b6db60a 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt @@ -138,6 +138,7 @@ target_compile_definitions(azure-security-keyvault-keys PRIVATE _azure_BUILDING_ create_code_coverage(keyvault azure-security-keyvault-keys azure-security-keyvault-keys-test "tests?/*;samples?/*") get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-security-keyvault-keys PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-security-keyvault-keys ${AZ_LIBRARY_VERSION}) if(BUILD_TESTING) ================================================ FILE: ports/azure-security-keyvault-keys-cpp/useragent.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt index 18098c757..7bda8dba0 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt @@ -132,6 +132,8 @@ target_include_directories( target_link_libraries(azure-security-keyvault-keys PUBLIC Azure::azure-core) +target_compile_definitions(azure-security-keyvault-keys PRIVATE _azure_BUILDING_SDK) + # coverage. Has no effect if BUILD_CODE_COVERAGE is OFF create_code_coverage(keyvault azure-security-keyvault-keys azure-security-keyvault-keys-test "tests?/*;samples?/*") ================================================ FILE: ports/azure-security-keyvault-keys-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-security-keyvault-keys-cpp", "version-semver": "4.4.1", "port-version": 4, "description": [ "Microsoft Azure Key Vault Keys SDK for C++", "This library provides Azure Key Vault Keys SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/keyvault/azure-security-keyvault-keys", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.9.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-security-keyvault-secrets-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-security-keyvault-secrets_${VERSION}" SHA512 8d944bbcc29b670b884234a789455bb6b33e33fa45c7b02a4200c2267189597cb849f3cbbaa5f7c4db013ec74a2ea0b073237254db7fcac96c290888c05dcba5 HEAD_REF main PATCHES useragent.patch set_version.patch ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-secrets") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/keyvault/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault/azure-security-keyvault-secrets" "${SOURCE_PATH}/sdk/keyvault/_") file(RENAME "${SOURCE_PATH}/sdk/keyvault" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-security-keyvault-secrets-cpp/set_version.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt index e5acb6001..647285994 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt @@ -133,6 +133,7 @@ target_compile_definitions(azure-security-keyvault-secrets PRIVATE _azure_BUILDI create_code_coverage(keyvault azure-security-keyvault-secrets azure-security-keyvault-secrets-test "tests?/*;samples?/*") get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp") +set_target_properties(azure-security-keyvault-secrets PROPERTIES VERSION ${AZ_LIBRARY_VERSION}) generate_documentation(azure-security-keyvault-secrets ${AZ_LIBRARY_VERSION}) if(BUILD_TESTING) ================================================ FILE: ports/azure-security-keyvault-secrets-cpp/useragent.patch ================================================ diff --git a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt index 280208205..e04413950 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt @@ -97,6 +97,8 @@ target_include_directories( target_link_libraries(azure-security-keyvault-secrets PUBLIC Azure::azure-core) +target_compile_definitions(azure-security-keyvault-secrets PRIVATE _azure_BUILDING_SDK) + # coverage. Has no effect if BUILD_CODE_COVERAGE is OFF create_code_coverage(keyvault azure-security-keyvault-secrets azure-security-keyvault-secrets-test "tests?/*;samples?/*") ================================================ FILE: ports/azure-security-keyvault-secrets-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-security-keyvault-secrets-cpp", "version-semver": "4.2.1", "port-version": 4, "description": [ "Microsoft Azure Key Vault Secrets SDK for C++", "This library provides Azure Key Vault Secrets SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/keyvault/azure-security-keyvault-secrets", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.9.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-blobs-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-storage-blobs_${VERSION}" SHA512 444998b2b0f7cec5b6fc443b68b0d3f9c69d071da68d236060afb3e7d1709e2f7853cc79578ec2db83002576bc2f1f92654cb8d10b009e15f9aaadfeba92b7c3 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/storage/azure-storage-blobs") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/storage/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/storage/azure-storage-blobs" "${SOURCE_PATH}/sdk/storage/_") file(RENAME "${SOURCE_PATH}/sdk/storage" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-storage-blobs-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-storage-blobs-cpp", "version-semver": "12.16.0", "description": [ "Microsoft Azure Storage Blobs SDK for C++", "This library provides Azure Storage Blobs SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-blobs", "license": "MIT", "dependencies": [ { "name": "azure-storage-common-cpp", "default-features": false, "version>=": "12.12.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-common-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-storage-common_${VERSION}" SHA512 a5d2a235d52e58830915c4570a1804670d76bf5e2fc69a0780f5508d774315c966ac49761d81cf3606f4473a775a04011847c85cc5f9a60b328fa62577232aa8 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/storage/azure-storage-common") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/storage/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/storage/azure-storage-common" "${SOURCE_PATH}/sdk/storage/_") file(RENAME "${SOURCE_PATH}/sdk/storage" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-storage-common-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-storage-common-cpp", "version-semver": "12.12.0", "description": [ "Microsoft Azure Common Storage SDK for C++", "This library provides common Azure Storage-related abstractions for Azure SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-common", "license": "MIT", "dependencies": [ { "name": "azure-core-cpp", "default-features": false, "version>=": "1.16.1" }, { "name": "libxml2", "default-features": false, "platform": "!windows" }, { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-cpp/cmake.diff ================================================ diff --git a/Microsoft.WindowsAzure.Storage/CMakeLists.txt b/Microsoft.WindowsAzure.Storage/CMakeLists.txt index ac9e65d..5827dec 100644 --- a/Microsoft.WindowsAzure.Storage/CMakeLists.txt +++ b/Microsoft.WindowsAzure.Storage/CMakeLists.txt @@ -21,7 +21,7 @@ option(BUILD_SAMPLES "Build sample codes" OFF) if(UNIX) find_package(Boost REQUIRED COMPONENTS log log_setup random system thread locale regex filesystem chrono date_time) find_package(Threads REQUIRED) - if(APPLE AND NOT OPENSSL_ROOT_DIR) + if(0) # Prefer a homebrew version of OpenSSL over the one in /usr/lib file(GLOB OPENSSL_ROOT_DIR /usr/local/Cellar/openssl/*) @@ -135,6 +135,9 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") else() message("-- Unknown compiler, success is doubtful.") endif() +if(NOT WIN32) + add_definitions(-D_NO_WASTORAGE_API) # no dllimport +endif() # Reconfigure final output directory set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) @@ -142,11 +145,11 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries) set(AZURESTORAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/includes) -set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${LibXML2_INCLUDE_DIR}) +set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${LIBXML2_INCLUDE_DIRS}) set(AZURESTORAGE_LIBRARY azurestorage) -set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARY} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${UUID_LIBRARIES} ${LibXML2_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) +set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARY} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${UUID_LIBRARIES} ${LIBXML2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) # Set version numbers centralized set (AZURESTORAGE_VERSION_MAJOR 7) ================================================ FILE: ports/azure-storage-cpp/fix-asio-error.patch ================================================ diff --git a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h index fcd86cd..5f02120 100644 --- a/Microsoft.WindowsAzure.Storage/includes/wascore/util.h +++ b/Microsoft.WindowsAzure.Storage/includes/wascore/util.h @@ -125,7 +125,7 @@ namespace azure { namespace storage { namespace core { WASTORAGE_API static std::shared_ptr get_http_client(const web::uri& uri, const web::http::client::http_client_config& config); private: - static const boost::asio::io_service& s_service; + static const boost::asio::io_context& s_service; WASTORAGE_API static std::map> s_http_clients; WASTORAGE_API static std::mutex s_mutex; }; diff --git a/Microsoft.WindowsAzure.Storage/src/cloud_common.cpp b/Microsoft.WindowsAzure.Storage/src/cloud_common.cpp index 7dfcfeb..0749252 100644 --- a/Microsoft.WindowsAzure.Storage/src/cloud_common.cpp +++ b/Microsoft.WindowsAzure.Storage/src/cloud_common.cpp @@ -71,7 +71,7 @@ namespace azure { namespace storage { throw std::invalid_argument(protocol::error_invalid_ip_address); #else boost::system::error_code error; - auto addr = boost::asio::ip::address::from_string(address, error); + auto addr = boost::asio::ip::make_address(address, error); if (error.value() == 0) { if (addr.is_v4()) diff --git a/Microsoft.WindowsAzure.Storage/src/timer_handler.cpp b/Microsoft.WindowsAzure.Storage/src/timer_handler.cpp index f33d183..fc5e50d 100644 --- a/Microsoft.WindowsAzure.Storage/src/timer_handler.cpp +++ b/Microsoft.WindowsAzure.Storage/src/timer_handler.cpp @@ -86,7 +86,7 @@ namespace azure { namespace storage { namespace core { pplx::task timer_handler::timeout_after(const std::chrono::milliseconds& time) { m_timer = std::make_shared>(crossplat::threadpool::shared_instance().service()); - m_timer->expires_from_now(std::chrono::duration_cast(time)); + m_timer->expires_after(std::chrono::duration_cast(time)); std::weak_ptr weak_this_pointer = shared_from_this(); auto callback = [weak_this_pointer](const boost::system::error_code& ec) { diff --git a/Microsoft.WindowsAzure.Storage/src/util.cpp b/Microsoft.WindowsAzure.Storage/src/util.cpp index cf0a311..8f321de 100644 --- a/Microsoft.WindowsAzure.Storage/src/util.cpp +++ b/Microsoft.WindowsAzure.Storage/src/util.cpp @@ -440,7 +440,7 @@ namespace azure { namespace storage { namespace core { } #ifndef _WIN32 - const boost::asio::io_service& http_client_reusable::s_service = crossplat::threadpool::shared_instance().service(); + const boost::asio::io_context& http_client_reusable::s_service = crossplat::threadpool::shared_instance().service(); std::map> http_client_reusable::s_http_clients; std::mutex http_client_reusable::s_mutex; ================================================ FILE: ports/azure-storage-cpp/portfile.cmake ================================================ message(WARNING "azure-storage-cpp is no longer actively developed. Instead, users should migrate to the new sdk:azure-core-cpp") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-storage-cpp REF v7.5.0 SHA512 83eabcaf2114c8af1cabbc96b6ef2b57c934a06f68e7a870adf336feaa19edd57aedaf8507d5c40500e46d4e77f5059f9286e319fe7cadeb9ffc8fa018fb030c HEAD_REF master PATCHES cmake.diff fix-asio-error.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/Microsoft.WindowsAzure.Storage/cmake/Modules/FindLibXML2.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Microsoft.WindowsAzure.Storage" OPTIONS -DCMAKE_FIND_FRAMEWORK=LAST -DBUILD_TESTS=OFF -DBUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/azure-storage-cpp/vcpkg.json ================================================ { "name": "azure-storage-cpp", "version": "7.5.0", "port-version": 8, "description": [ "[legacy] 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." ], "homepage": "https://blogs.msdn.com/b/windowsazurestorage/", "supports": "!uwp", "dependencies": [ { "name": "atlmfc", "platform": "windows" }, { "name": "boost-locale", "platform": "!windows & !uwp" }, { "name": "boost-log", "platform": "!windows & !uwp" }, { "name": "cpprestsdk", "default-features": false }, { "name": "libuuid", "platform": "!windows & !uwp & !osx" }, { "name": "libxml2", "platform": "!windows & !uwp" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-files-datalake-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-storage-files-datalake_${VERSION}" SHA512 236c537a285401a51e0d3dc1641502c29f34a06041d247c6fd8928537d576148073925f498834fba7c435610c6615d5f1b2b94b8675f997b5b43f4ab9c999515 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/storage/azure-storage-files-datalake") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/storage/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/storage/azure-storage-files-datalake" "${SOURCE_PATH}/sdk/storage/_") file(RENAME "${SOURCE_PATH}/sdk/storage" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-storage-files-datalake-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-storage-files-datalake-cpp", "version-semver": "12.14.0", "description": [ "Microsoft Azure Storage Files Data Lake SDK for C++", "This library provides Azure Storage Files Data Lake SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-files-datalake", "license": "MIT", "dependencies": [ { "name": "azure-storage-blobs-cpp", "default-features": false, "version>=": "12.16.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-files-shares-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-storage-files-shares_${VERSION}" SHA512 cdd430d88671c28944af2d436f9e87fb56bd6cb5b1e9ce54c92a0cec5237310cdf0d9ccd6e59bae25daa8896f720ffde05697b71fbc94951df33eeae568528e3 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/storage/azure-storage-files-shares") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/storage/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/storage/azure-storage-files-shares" "${SOURCE_PATH}/sdk/storage/_") file(RENAME "${SOURCE_PATH}/sdk/storage" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-storage-files-shares-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-storage-files-shares-cpp", "version-semver": "12.16.0", "description": [ "Microsoft Azure Storage Files Shares SDK for C++", "This library provides Azure Storage Files Shares SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-files-shares", "license": "MIT", "dependencies": [ { "name": "azure-storage-common-cpp", "default-features": false, "version>=": "12.12.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-storage-queues-cpp/portfile.cmake ================================================ # NOTE: All changes made to this file will get overwritten by the next port release. # Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-sdk-for-cpp REF "azure-storage-queues_${VERSION}" SHA512 b0ea0d5d29e304d94bbdbaeee5e1336dd0a01239cb0a8a7427693881a567233ca374f109331f36f1b564ab50796d13051fb5d146a3683bef0beca7ecd026ad65 HEAD_REF main ) file(GLOB_RECURSE unused "${SOURCE_PATH}/cgmanifest.json") file(REMOVE_RECURSE ${unused}) if(EXISTS "${SOURCE_PATH}/sdk/storage/azure-storage-queues") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/storage/_") file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_") file(REMOVE_RECURSE "${SOURCE_PATH}/_") file(RENAME "${SOURCE_PATH}/sdk/storage/azure-storage-queues" "${SOURCE_PATH}/sdk/storage/_") file(RENAME "${SOURCE_PATH}/sdk/storage" "${SOURCE_PATH}/sdk/_") file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/_/_/_" OPTIONS -DWARNINGS_AS_ERRORS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/azure-storage-queues-cpp/vcpkg.json ================================================ { "$comment": [ "NOTE: All changes made to this file will get overwritten by the next port release.", "Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp." ], "name": "azure-storage-queues-cpp", "version-semver": "12.6.0", "description": [ "Microsoft Azure Storage Queues SDK for C++", "This library provides Azure Storage Queues SDK." ], "homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/storage/azure-storage-queues", "license": "MIT", "dependencies": [ { "name": "azure-storage-common-cpp", "default-features": false, "version>=": "12.12.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-uamqp-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-uamqp-c REF 6bb9accbbc036ed5ef1df7467760762c99a7094b SHA512 99ed5fef76a0e0b2482862f46715431f98381923670be42edc8d4f7e066c0dcb9f397be73f96eccbbd697ae98f2604cb7b6f603f7c1d358ada50dc68349331ef HEAD_REF master ) file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/azure-c-shared-utility/configs/) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dskip_samples=ON -Duse_installed_dependencies=ON -Dbuild_as_dynamic=OFF MAYBE_UNUSED_VARIABLES build_as_dynamic ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME uamqp CONFIG_PATH "cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/azure-uamqp-c/vcpkg.json ================================================ { "name": "azure-uamqp-c", "version-date": "2025-03-31", "description": "AMQP library for C", "homepage": "https://github.com/Azure/azure-uamqp-c", "license": "MIT", "dependencies": [ "azure-c-shared-utility", "azure-macro-utils-c", "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-uhttp-c/package-location-fix-preview.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 27eae0b..ef87ec0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,7 +138,7 @@ if (NOT ${skip_samples}) endif() # Install uhttp -set(package_location "cmake") +set(package_location "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") if(NOT DEFINED CMAKE_INSTALL_LIBDIR) set(CMAKE_INSTALL_LIBDIR "lib") ================================================ FILE: ports/azure-uhttp-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-uhttp-c REF 01dc7139d3da3141aa2017dff927db1dbbe86e49 SHA512 16ba75ced10efcea14073eb21d6dd46d1f00997b588aac64c1bcfd14c5176513a677d1adaa3c2ae6890f6d3576473ac9bc80eb32df551bd5cdf9345ed7e910be HEAD_REF master ) file(COPY ${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake DESTINATION ${SOURCE_PATH}/deps/c-utility/configs/) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dskip_samples=ON -Duse_installed_dependencies=ON -Dbuild_as_dynamic=OFF -DCMAKE_INSTALL_INCLUDEDIR=include MAYBE_UNUSED_VARIABLES build_as_dynamic ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME uhttp CONFIG_PATH "lib/cmake/uhttp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/azure-uhttp-c/vcpkg.json ================================================ { "name": "azure-uhttp-c", "version-date": "2025-03-31", "description": "Azure HTTP Library written in C", "homepage": "https://github.com/Azure/azure-uhttp-c", "license": "MIT", "dependencies": [ "azure-c-shared-utility", "azure-macro-utils-c", "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/azure-umqtt-c/package-location-fix-preview.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8fd08f0..c228519 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,7 +155,7 @@ endif () include(GNUInstallDirs) # Install umqtt -set(package_location "cmake") +set(package_location "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") if(NOT DEFINED CMAKE_INSTALL_LIBDIR) set(CMAKE_INSTALL_LIBDIR "lib") ================================================ FILE: ports/azure-umqtt-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/azure-umqtt-c REF d08d530fc3ae3f60d3f750fab6629a5b7839f754 SHA512 b486bd04fc5669e16ec8d097efcdc98fb783634321fd76e607f2b1e67bac32a8f2a80634208a3ca55db56933562d1db1d779d9435f5ef397e44c2288f25f44ee HEAD_REF master ) file(COPY "${CURRENT_INSTALLED_DIR}/share/azure-c-shared-utility/azure_iot_build_rules.cmake" DESTINATION "${SOURCE_PATH}/deps/c-utility/configs/") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dskip_samples=ON -Duse_installed_dependencies=ON -Dbuild_as_dynamic=OFF MAYBE_UNUSED_VARIABLES build_as_dynamic ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME umqtt CONFIG_PATH "lib/cmake/umqtt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/azure-umqtt-c/vcpkg.json ================================================ { "name": "azure-umqtt-c", "version-date": "2025-03-31", "description": "General purpose library for communication over the mqtt protocol", "homepage": "https://github.com/Azure/azure-umqtt-c", "license": "MIT", "dependencies": [ "azure-c-shared-utility", "azure-macro-utils-c", "umock-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/b64/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(b64) if (BUILD_SHARED_LIBS) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/b64_dynamic_config.h ${CMAKE_CURRENT_BINARY_DIR}/b64_config.h) else() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/b64_static_config.h ${CMAKE_CURRENT_BINARY_DIR}/b64_config.h) endif() set(SRC_DIR src) set(INC_DIR include/b64) set(SOURCE_FILES ${SRC_DIR}/cdecode.c ${SRC_DIR}/cencode.c) set(HEADER_FILES ${INC_DIR}/cdecode.h ${INC_DIR}/cencode.h ${INC_DIR}/decode.h ${INC_DIR}/encode.h ${INC_DIR}/ccommon.h ${CMAKE_CURRENT_BINARY_DIR}/b64_config.h) add_library(b64 ${SOURCE_FILES} ${HEADER_FILES}) if (BUILD_SHARED_LIBS) target_compile_definitions(b64 PRIVATE LIBB64_EXPORTS=1) endif() target_include_directories(b64 PRIVATE include ${CMAKE_CURRENT_BINARY_DIR} INTERFACE $ ) set_property(TARGET b64 PROPERTY PUBLIC_HEADER ${HEADER_FILES}) install(TARGETS b64 EXPORT unofficial-b64-config LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include/b64 ) install(EXPORT unofficial-b64-config FILE unofficial-b64-config.cmake NAMESPACE unofficial::b64:: DESTINATION share/unofficial-b64 ) ================================================ FILE: ports/b64/b64_dynamic_config.h ================================================ #ifndef B64_CONFIG_H #define B64_CONFIG_H #ifdef _WIN32 #ifdef LIBB64_EXPORTS #define LIBB64 __declspec(dllexport) #else #define LIBB64 __declspec(dllimport) #endif #else #define LIBB64 #endif #endif ================================================ FILE: ports/b64/b64_static_config.h ================================================ #ifndef B64_CONFIG_H #define B64_CONFIG_H #define LIBB64 #endif ================================================ FILE: ports/b64/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libb64/libb64 REF v2.0.0.1 SHA512 72c2fd4c81575b505f4851cd3820b6a2d8e78cd031a1ed138ffe5667ca711558f43b515428971966f7a73ace7c9951f1f0b39c362a59fe4691958875775cce23 HEAD_REF master PATCHES "windows-fix.patch" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/b64_dynamic_config.h" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/b64_static_config.h" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-b64) vcpkg_copy_pdbs() # handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/b64/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "b64", "version": "2.0.0.1", "port-version": 2, "description": "libb64 is a library of ANSI C routines for fast encoding/decoding data into and from a base64-encoded format", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/b64/windows-fix.patch ================================================ diff --git a/include/b64/ccommon.h b/include/b64/ccommon.h index 2b614df..0e46141 100644 --- a/include/b64/ccommon.h +++ b/include/b64/ccommon.h @@ -10,11 +10,12 @@ For details, see http://sourceforge.net/projects/libb64 #define BASE64_VER_MAJOR 2 #define BASE64_VER_MINOR 0 +#include "b64_config.h" #ifndef HAVE_SIZE_T #ifdef _WIN32 #include - #elseif defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) + #elif defined (__unix__) || (defined (__APPLE__) && defined (__MACH__)) #include #else typedef unsigned long size_t; diff --git a/include/b64/cdecode.h b/include/b64/cdecode.h index d6ff24c..4553efc 100644 --- a/include/b64/cdecode.h +++ b/include/b64/cdecode.h @@ -24,11 +24,11 @@ typedef struct char plainchar; } base64_decodestate; -extern void base64_init_decodestate(base64_decodestate* state_in); +extern LIBB64 void base64_init_decodestate(base64_decodestate* state_in); -extern size_t base64_decode_maxlength(size_t encode_len); +extern LIBB64 size_t base64_decode_maxlength(size_t encode_len); -extern int base64_decode_value(signed char value_in); -extern size_t base64_decode_block(const char* code_in, const size_t length_in, void* plaintext_out, base64_decodestate* state_in); +extern LIBB64 int base64_decode_value(signed char value_in); +extern LIBB64 size_t base64_decode_block(const char* code_in, const size_t length_in, void* plaintext_out, base64_decodestate* state_in); #endif /* BASE64_CDECODE_H */ diff --git a/include/b64/cencode.h b/include/b64/cencode.h index 96b0cdb..1feb695 100644 --- a/include/b64/cencode.h +++ b/include/b64/cencode.h @@ -31,12 +31,12 @@ typedef struct char result; } base64_encodestate; -extern void base64_init_encodestate(base64_encodestate* state_in); +extern LIBB64 void base64_init_encodestate(base64_encodestate* state_in); -extern size_t base64_encode_length(size_t plain_len, base64_encodestate* state_in); +extern LIBB64 size_t base64_encode_length(size_t plain_len, base64_encodestate* state_in); -extern char base64_encode_value(signed char value_in); -extern size_t base64_encode_block(const void* plaintext_in, const size_t length_in, char* code_out, base64_encodestate* state_in); -extern size_t base64_encode_blockend(char* code_out, base64_encodestate* state_in); +extern LIBB64 char base64_encode_value(signed char value_in); +extern LIBB64 size_t base64_encode_block(const void* plaintext_in, const size_t length_in, char* code_out, base64_encodestate* state_in); +extern LIBB64 size_t base64_encode_blockend(char* code_out, base64_encodestate* state_in); #endif /* BASE64_CENCODE_H */ diff --git a/include/b64/decode.h b/include/b64/decode.h index b2362e5..dd772d4 100644 --- a/include/b64/decode.h +++ b/include/b64/decode.h @@ -22,23 +22,23 @@ namespace base64 base64_decodestate _state; int _buffersize; - decoder(int buffersize_in = BUFFERSIZE) + LIBB64 decoder(int buffersize_in = BUFFERSIZE) : _buffersize(buffersize_in) { base64_init_decodestate(&_state); } - int decode(char value_in) + LIBB64 int decode(char value_in) { return base64_decode_value(value_in); } - std::streamsize decode(const char* code_in, const std::streamsize length_in, char* plaintext_out) + LIBB64 std::streamsize decode(const char* code_in, const std::streamsize length_in, char* plaintext_out) { return base64_decode_block(code_in, static_cast(length_in), plaintext_out, &_state); } - void decode(std::istream& istream_in, std::ostream& ostream_in) + LIBB64 void decode(std::istream& istream_in, std::ostream& ostream_in) { base64_init_decodestate(&_state); // diff --git a/include/b64/encode.h b/include/b64/encode.h index c1a5f88..ff2c9b4 100644 --- a/include/b64/encode.h +++ b/include/b64/encode.h @@ -22,28 +22,28 @@ namespace base64 base64_encodestate _state; int _buffersize; - encoder(int buffersize_in = BUFFERSIZE) + LIBB64 encoder(int buffersize_in = BUFFERSIZE) : _buffersize(buffersize_in) { base64_init_encodestate(&_state); } - int encode(char value_in) + LIBB64 int encode(char value_in) { return base64_encode_value(value_in); } - std::streamsize encode(const char* code_in, const std::streamsize length_in, char* plaintext_out) + LIBB64 std::streamsize encode(const char* code_in, const std::streamsize length_in, char* plaintext_out) { return base64_encode_block(code_in, static_cast(length_in), plaintext_out, &_state); } - int encode_end(char* plaintext_out) + LIBB64 int encode_end(char* plaintext_out) { return base64_encode_blockend(plaintext_out, &_state); } - void encode(std::istream& istream_in, std::ostream& ostream_in) + LIBB64 void encode(std::istream& istream_in, std::ostream& ostream_in) { base64_init_encodestate(&_state); // ================================================ FILE: ports/babl/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gimp.org/pub/babl/${VERSION_MAJOR_MINOR}/babl-${VERSION}.tar.xz" FILENAME "babl-${VERSION}.tar.xz" SHA512 061b8d62a618129c9f08fc04ca1e86145873cf15fcde643be60b52393316275ca6d98bb44ac86b7b26264bc3a9b2fd54db39d78b2b56fe069daf678b28ded59f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES remove-consistency-check.patch ) set(feature_options "") if("cmyk-icc" IN_LIST FEATURES) list(APPEND feature_options "-Dwith-lcms=enabled") else() list(APPEND feature_options "-Dwith-lcms=disabled") endif() if("introspection" IN_LIST FEATURES) list(APPEND feature_options "-Denable-gir=true") vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND feature_options "-Denable-gir=false") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${feature_options} -Dwith-docs=false ADDITIONAL_BINARIES "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/babl/remove-consistency-check.patch ================================================ diff --git a/meson.build b/meson.build index 8206d36..095e024 100644 --- a/meson.build +++ b/meson.build @@ -578,7 +578,7 @@ if build_docs endif subdir('bin') -if not platform_win32 and not platform_osx +if false # Verify .def files for Windows. # Ironically we only check this on non-Windows platform, since the # script expects .so libraries, and I'm not sure that the `nm` tool is ================================================ FILE: ports/babl/vcpkg.json ================================================ { "name": "babl", "version": "0.1.122", "description": "A pixel encoding and color space conversion engine.", "homepage": "https://gegl.org/babl/", "license": "LGPL-3.0-or-later", "supports": "!windows | mingw", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "cmyk-icc": { "description": "Support CMYK ICC profiles.", "dependencies": [ "lcms" ] }, "introspection": { "description": "Enable introspection", "dependencies": [ "gobject-introspection" ] } } } ================================================ FILE: ports/backward-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bombela/backward-cpp REF 51f0700452cf71c57d43c2d028277b24cde32502 # 2023-11-24 SHA512 8831be0a1c0a2f2d2625c5e2065202445520e0f7591cdbf998c60f2c892880d1527f304f9361b057c831f84621be636e12fea018297c9a17d858ecc6c36c9ffb HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBACKWARD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/backward) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/backward-cpp/usage ================================================ backward-cpp provides CMake targets: find_package(Backward CONFIG REQUIRED) # To use the header library target_link_libraries(main PRIVATE Backward::Interface) # To use the prebuilt library target_link_libraries(main PRIVATE Backward::Backward) ================================================ FILE: ports/backward-cpp/vcpkg.json ================================================ { "name": "backward-cpp", "version-date": "2023-11-24", "port-version": 1, "description": "A beautiful stack trace pretty printer for C++", "homepage": "https://github.com/bombela/backward-cpp", "supports": "!uwp & !(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/baresip-libre/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO baresip/re REF "v${VERSION}" SHA512 37cbc2e4954b80126ebfd5ff1b7ac87f2c65175c26dd405ec388e161985e8f8a23764105205814fc8964d5dacddcc60f69983a0004595bf7aa13328a7b0380a6 HEAD_REF main PATCHES ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBRE_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBRE_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBRE_BUILD_SHARED=${LIBRE_BUILD_SHARED} -DLIBRE_BUILD_STATIC=${LIBRE_BUILD_STATIC} -DCMAKE_DISABLE_FIND_PACKAGE_Backtrace=ON -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME libre CONFIG_PATH lib/cmake/libre) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/baresip-libre/usage ================================================ baresip-libre provides CMake targets: find_package(libre CONFIG REQUIRED) target_link_libraries(main PRIVATE libre::libre) ================================================ FILE: ports/baresip-libre/vcpkg.json ================================================ { "name": "baresip-libre", "version": "4.6.0", "description": "Generic library for real-time communications with async IO support", "homepage": "https://github.com/baresip/re", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/bark/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO twig-energy/bark REF "${VERSION}" HEAD_REF main SHA512 d63957b37c4ac81058c2368d8c64a7d9d83a054b7d78045b8962b98ac47b17980199d868029d762d24f6d13c687c57b92cb6de9c556943fa0403351409fb9702 ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bark) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bark/usage ================================================ bark provides CMake targets: find_package(bark CONFIG REQUIRED) target_link_libraries(main PRIVATE twig::bark) ================================================ FILE: ports/bark/vcpkg.json ================================================ { "name": "bark", "version-semver": "0.5.0", "description": "A modern, low latency datadog client for C++", "homepage": "https://github.com/twig-energy/bark", "license": "MIT", "supports": "!(uwp | osx)", "dependencies": [ "asio", "fmt", "mpmcqueue", "spscqueue", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Dependencies for testing", "dependencies": [ "benchmark", "doctest" ] } } } ================================================ FILE: ports/barkeep/portfile.cmake ================================================ # Header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oir/barkeep REF "v${VERSION}" SHA512 b474bdae5e97b185daaf335193bf678e1dc57faa2000759f747a2c13e0a9e302f96927a81d8e26eb8227303b26148c2f0a005f984ea3271216416514fa14b9e1 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/barkeep" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/barkeep/vcpkg.json ================================================ { "name": "barkeep", "version": "0.1.5", "description": "Small C++ header to display async animations, counters, progress bars, and status messages", "homepage": "https://github.com/oir/barkeep", "license": "Apache-2.0" } ================================================ FILE: ports/basisu/devendor-zstd.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c4f91bb..a808ebd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,6 +96,10 @@ message("Initial BASISU_OPENCL=${BASISU_OPENCL}") message("Initial BASISU_SAN=${BASISU_SAN}") message("Initial BASISU_EXAMPLES=${BASISU_EXAMPLES}") +if(BASISU_SYSTEM_ZSTD) + find_package(zstd CONFIG REQUIRED) +endif() + if ((NOT MSVC) AND BASISU_OPENCL) # With MSVC builds we use the Khronos lib/include files in the project's "OpenCL" directory, to completely avoid requiring fiddly to install vendor SDK's. # Otherwise we use the system's (if any). @@ -286,13 +290,8 @@ set(ENCODER_LIB_SRC_LIST transcoder/basisu_transcoder.h transcoder/basisu_idct.h transcoder/basisu.h - zstd/zstd.h ) -if (BASISU_ZSTD) - set(ENCODER_LIB_SRC_LIST ${ENCODER_LIB_SRC_LIST} zstd/zstd.c) -endif() - # Create the static library add_library(basisu_encoder STATIC ${ENCODER_LIB_SRC_LIST}) target_include_directories(basisu_encoder PUBLIC @@ -300,6 +299,14 @@ target_include_directories(basisu_encoder PUBLIC $ $) +if (BASISU_ZSTD AND BASISU_SYSTEM_ZSTD) + find_package(zstd CONFIG REQUIRED) + target_link_libraries(basisu_encoder PRIVATE zstd::libzstd) +elseif (BASISU_ZSTD) + target_sources(basisu_encoder PRIVATE zstd/zstd.c zstd/zstd.h) + target_include_directories(basisu_encoder BEFORE PRIVATE zstd) +endif() + # Create the basisu executable and link against the static library add_executable(basisu basisu_tool.cpp) target_link_libraries(basisu PRIVATE basisu_encoder) diff --git a/basisu-config.cmake.in b/basisu-config.cmake.in index 15c0d7e..7acd627 100644 --- a/basisu-config.cmake.in +++ b/basisu-config.cmake.in @@ -1,5 +1,10 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if("@BASISU_ZSTD@" AND "@BASISU_SYSTEM_ZSTD@") + find_dependency(zstd CONFIG) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/basisu-targets.cmake") check_required_components(basisu) diff --git a/encoder/basisu_astc_ldr_encode.cpp b/encoder/basisu_astc_ldr_encode.cpp index 302cb2e..239fe54 100644 --- a/encoder/basisu_astc_ldr_encode.cpp +++ b/encoder/basisu_astc_ldr_encode.cpp @@ -27,7 +27,7 @@ #endif #if BASISD_SUPPORT_KTX2_ZSTD -#include "../zstd/zstd.h" +#include #endif namespace basisu { diff --git a/encoder/basisu_comp.cpp b/encoder/basisu_comp.cpp index acbedc3..633c0fc 100644 --- a/encoder/basisu_comp.cpp +++ b/encoder/basisu_comp.cpp @@ -34,7 +34,7 @@ #endif #if BASISD_SUPPORT_KTX2_ZSTD -#include "../zstd/zstd.h" +#include #endif // Set to 1 to disable the mipPadding alignment workaround (which only seems to be needed when no key-values are written at all) diff --git a/transcoder/basisu_transcoder.cpp b/transcoder/basisu_transcoder.cpp index f2fa623..2a97d8d 100644 --- a/transcoder/basisu_transcoder.cpp +++ b/transcoder/basisu_transcoder.cpp @@ -174,7 +174,7 @@ // If BASISD_SUPPORT_KTX2_ZSTD is 0, UASTC files compressed with Zstd cannot be loaded. #if BASISD_SUPPORT_KTX2_ZSTD // We only use two Zstd API's: ZSTD_decompress() and ZSTD_isError() - #include "../zstd/zstd.h" + #include #endif #endif ================================================ FILE: ports/basisu/export-cmake-config.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c3f8e28..77bfe37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -295,6 +295,10 @@ endif() # Create the static library add_library(basisu_encoder STATIC ${ENCODER_LIB_SRC_LIST}) +target_include_directories(basisu_encoder PUBLIC + $ + $ + $) # Create the basisu executable and link against the static library add_executable(basisu basisu_tool.cpp) @@ -445,6 +449,7 @@ endif() if (NOT EMSCRIPTEN) if (UNIX AND NOT BASISU_BUILD_WASM) if (CMAKE_BUILD_TYPE STREQUAL Release) + elseif(0) if (APPLE) add_custom_command(TARGET basisu POST_BUILD COMMAND strip -X -x ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/basisu) #message("strip command: strip -X -x ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/basisu") @@ -496,6 +501,34 @@ if (MSVC) endif() endif() +# Target Installation +install(TARGETS basisu_encoder basisu EXPORT basisu-targets) +install(DIRECTORY "./transcoder" DESTINATION "include/basisu/" + FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" +) +install(DIRECTORY "./encoder" DESTINATION "include/basisu/" + FILES_MATCHING PATTERN "*.h" +) + +# CMake Export +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) +configure_package_config_file( + ${PROJECT_SOURCE_DIR}/basisu-config.cmake.in + ${PROJECT_BINARY_DIR}/basisu-config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/basisu) +export( + TARGETS basisu_encoder basisu + NAMESPACE basisu:: + FILE ${PROJECT_BINARY_DIR}/basisu-targets.cmake) +install( + FILES ${PROJECT_BINARY_DIR}/basisu-config.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/basisu) +install( + EXPORT basisu-targets + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/basisu + NAMESPACE basisu::) + # ------------------------------------------------------------ # Build WASM WASI executables (single or multi-threaded) # ------------------------------------------------------------ diff --git a/basisu-config.cmake.in b/basisu-config.cmake.in new file mode 100644 index 0000000..15c0d7e --- /dev/null +++ b/basisu-config.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/basisu-targets.cmake") + +check_required_components(basisu) ================================================ FILE: ports/basisu/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REGEX REPLACE "^([0-9]+)[.]([0-9]+)[.]([0-9]+)\$" "v\\1_\\2_\\3" git_ref "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BinomialLLC/basis_universal REF "${git_ref}" SHA512 fefe1562ad62ea5d32437f8c1e02a88fa680bd1d1ee8cafe366d7824de99c9111a4103e03f138f3e9794f4adc7e53674f4d728d1f0b70fc7c586b5990ec8e09e HEAD_REF master PATCHES export-cmake-config.diff devendor-zstd.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/zstd") set(SSE_FLAG OFF) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(SSE_FLAG ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 -DBASISU_SYSTEM_ZSTD=ON -DBASISU_EXAMPLES=OFF -DBASISU_SSE=${SSE_FLAG} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/basisu) vcpkg_copy_tools(TOOL_NAMES "basisu" AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(COMMENT [[ basis_universal is provided under Apache-2.0 license terms. But it includes third-party components with different licenses.]] FILE_LIST "${SOURCE_PATH}/.reuse/dep5" "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSES/BSD-3-clause.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" ) ================================================ FILE: ports/basisu/vcpkg.json ================================================ { "name": "basisu", "version": "2.1.0", "description": "Basis Universal is a supercompressed GPU texture and video compression format that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a wide variety of GPU texture compression formats.", "homepage": "https://github.com/BinomialLLC/basis_universal", "license": null, "supports": "!android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zstd" ] } ================================================ FILE: ports/bbalouki-itch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bbalouki/itchcpp REF "v${VERSION}" SHA512 d514039c3879c1b5445a236fdedae427b44cedcdee7646fc3533b909b2716169742f1117281a8de370ba9a27c81bd09d713c7da22cad2290851f81915887698f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DITCH_BUILD_TESTS=OFF -DITCH_BUILD_BENCHMARKS=OFF -DITCH_BUILD_EXAMPLES=OFF -DITCH_PROJECT_ENV=PROD ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "itch" CONFIG_PATH "lib/cmake/itch" ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bbalouki-itch/usage ================================================ bbalouki-itch provides CMake targets: find_package(itch CONFIG REQUIRED) target_link_libraries(main PRIVATE itch::itch) ================================================ FILE: ports/bbalouki-itch/vcpkg.json ================================================ { "name": "bbalouki-itch", "version": "1.1.0", "maintainers": "Bertin Balouki SIMYELI", "description": "A High-Performance C++ library for parsing the ITCH 5.0 protocol.", "homepage": "https://github.com/bbalouki/itchcpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bbstrader/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bbalouki/bbstrader REF "v${VERSION}" SHA512 d2aee48361c5986054bd077d68235ed167eeb1be3568b3e6afcb58d40485cc7788e35256e819a1d39ae8400b17b29c4f940100fb5a704547cb1d6a99e13d314f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PYTHON_BINDINGS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "bbstrader" CONFIG_PATH "lib/cmake/bbstrader" ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bbstrader/usage ================================================ bbstrader provides CMake targets: find_package(bbstrader CONFIG REQUIRED) target_link_libraries(main PRIVATE bbstrader::bbstrader) ================================================ FILE: ports/bbstrader/vcpkg.json ================================================ { "name": "bbstrader", "version": "2.0.6", "description": "High-performance MetaTrader 5 C++/Python Bridge", "homepage": "https://github.com/bbalouki/bbstrader", "license": "MIT", "dependencies": [ "pybind11", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bcg729/disable-alt-packaging.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 69dbaef..695f4d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,5 +125,4 @@ install(FILES DESTINATION ${CONFIG_PACKAGE_LOCATION} ) -add_subdirectory(build) ================================================ FILE: ports/bcg729/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BelledonneCommunications/bcg729 REF 1.1.1 SHA512 e8cc4b7486a9a29fb729ab9fd9e3c4a2155573f38cec16f5a53db3b416fc1119ea5f5a61243a8d37cb0b64580c5df1b632ff165dc7ff47421fa567dafffaacd8 HEAD_REF master PATCHES disable-alt-packaging.patch ) # Already removed upstream: https://github.com/BelledonneCommunications/bcg729/pull/19 file(REMOVE "${SOURCE_PATH}/include/MSVC/stdint.h") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_SHARED=${ENABLE_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME Bcg729) file(GLOB cmake_files "${CURRENT_PACKAGES_DIR}/share/Bcg729/cmake/*.cmake") file(COPY ${cmake_files} DESTINATION "${CURRENT_PACKAGES_DIR}/share/bcg729") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Bcg729/cmake") file(GLOB_RECURSE remaining_files "${CURRENT_PACKAGES_DIR}/share/Bcg729/*") if(NOT remaining_files) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Bcg729") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(READ "${SOURCE_PATH}/LICENSE.txt" GPL3) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" [[ bcg729 is dual licensed, and is available either: - under a GNU/GPLv3 license, for free (open source). See below. - under a proprietary license, for a fee, to be used in closed source applications. Contact Belledonne Communications (https://www.linphone.org/contact) for any question about costs and services. ]] ${GPL3}) ================================================ FILE: ports/bcg729/vcpkg.json ================================================ { "name": "bcg729", "version": "1.1.1", "port-version": 4, "description": "Bcg729 is an open source implementation of the ITU G.729 Annex A and B codec.", "homepage": "https://github.com/BelledonneCommunications/bcg729", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bddisasm/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bitdefender/bddisasm REF "v${VERSION}" SHA512 a0a3fab35acacd7a6cfc96fed867a7c242ecdfe75867c3dcbf66fc9747452f09cc44c5a5038fe15d146eb597c1712f59b89b86961a48f738483794fde9ec0ecc HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBDD_INCLUDE_TOOL=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bddisasm) 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") vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bddisasm/usage ================================================ bddisasm provides CMake targets: find_package(bddisasm CONFIG REQUIRED) # Decoder library. target_link_libraries(main PRIVATE bddisasm::bddisasm) # Shellcode emulator library. target_link_libraries(main PRIVATE bddisasm::bdshemu) bddisasm provides pkg-config modules: lbddisasm ================================================ FILE: ports/bddisasm/vcpkg.json ================================================ { "name": "bddisasm", "version": "3.0.1", "maintainers": "Cristi Anichitei ", "description": "bddisasm is a fast, lightweight, x86/x64 instruction decoder and emulator.", "homepage": "https://github.com/bitdefender/bddisasm", "documentation": "https://bddisasm.readthedocs.io/en/latest/", "license": "Apache-2.0", "supports": "!osx & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bde/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Acquire Python and add it to PATH vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) # Acquire BDE Tools and add them to PATH set (BDE_TOOLS_VER 4.13.0.0) vcpkg_from_github( OUT_SOURCE_PATH TOOLS_PATH REPO "bloomberg/bde-tools" REF "${BDE_TOOLS_VER}" SHA512 6a0eec25889a33fb0302af735ed2fcce38afa5ad2be9202d2589d76509f9fd85f9ddc0a73147df1b6471543f51df3b5b40e8c08d378ab1335d2703d89b5921e6 HEAD_REF main ) message(STATUS "Configure bde-tools-v${BDE_TOOLS_VERSION}") vcpkg_add_to_path("${PYTHON3_EXE_PATH}") vcpkg_add_to_path("${TOOLS_PATH}/bin") # Acquire BDE sources vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "bloomberg/bde" REF "${VERSION}" SHA512 d6d7e453cf22f6e28f3513b818ab3f4b597db3e1d109587e0e0a8957338483c475494f55d953dfe86de507a6c292d1492d9cbb3c8be359044ef368fe80595448 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBDE_BUILD_TARGET_CPP17=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DCMAKE_CXX_EXTENSIONS=OFF -DBBS_BUILD_SYSTEM=1 "-DBdeBuildSystem_DIR:PATH=${TOOLS_PATH}/BdeBuildSystem" OPTIONS_RELEASE -DBDE_BUILD_TARGET_OPT=1 OPTIONS_DEBUG -DBDE_BUILD_TARGET_DBG=1 ) # Build release vcpkg_cmake_build() # Install release vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") list(APPEND SUBPACKAGES "ryu" "inteldfp" "pcre2" "s_baltst" "bsl" "bdl" "bal") include(GNUInstallDirs) # needed for CMAKE_INSTALL_LIBDIR foreach(subpackage IN LISTS SUBPACKAGES) vcpkg_cmake_config_fixup(PACKAGE_NAME ${subpackage} CONFIG_PATH /${CMAKE_INSTALL_LIBDIR}/cmake/${subpackage} DO_NOT_DELETE_PARENT_CONFIG_PATH) endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake" "${CURRENT_PACKAGES_DIR}/debug/${CMAKE_INSTALL_LIBDIR}/cmake") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/bde/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "bde", "version": "4.18.0.0", "description": "Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.", "homepage": "https://techatbloomberg.com/", "documentation": "https://bloomberg.github.io/bde/", "license": "Apache-2.0", "supports": "!android & !(arm64 & windows) & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bdwgc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bdwgc/bdwgc REF "v${VERSION}" SHA512 514824d4171374bb0f3211c79732dd84cb3af44f515b2fb51b7fa339a5194ba653cc93f1d56d9da202c959f2f9ee451f0d0c67da42d0b0531a9c749da91a30a0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Denable_cplusplus=ON -Denable_docs=OFF -DCFLAGS_EXTRA=-I${CURRENT_INSTALLED_DIR}/include # for libatomic_ops ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bdwgc) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/README.QUICK" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/bdwgc/vcpkg.json ================================================ { "name": "bdwgc", "version": "8.2.12", "description": "The Boehm-Demers-Weiser conservative C/C++ Garbage Collector (libgc, bdwgc, boehm-gc)", "homepage": "https://www.hboehm.info/gc/", "license": "MIT", "dependencies": [ "libatomic-ops", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/behaviortree-cpp/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b496f7a..6bfce73 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,7 +229,7 @@ target_link_libraries(${BTCPP_LIBRARY} Threads::Threads ${CMAKE_DL_LIBS} $ - $ + tinyxml2::tinyxml2 $ $ PUBLIC diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index eaed471..73c3d4c 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,5 +1,10 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +find_dependency(Threads) +find_dependency(tinyxml2 CONFIG) + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") set(@PROJECT_NAME@_TARGETS "BT::@PROJECT_NAME@") ================================================ FILE: ports/behaviortree-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BehaviorTree/BehaviorTree.CPP REF "${VERSION}" SHA512 a1a9a1f2f649c0bfdb2e141445a376f9a325a6102fa647c4b20dad0de7c2a782c265ac0a7addd4bb5a75e16347f6b7d5ce091df265bcd45cc626db237db81ec5 HEAD_REF master PATCHES remove-source-charset.diff # because vcpkg's default toolchain uses /utf-8 which is incompatible with /source-charset fix-dependencies.patch ) # Set BTCPP_SHARED_LIBS based on VCPKG_LIBRARY_LINKAGE string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BTCPP_SHARED_LIBS) # Remove vendored lexy directory to prevent conflicts with foonathan-lexy port file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/lexy") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_ament_cmake=1 -DBTCPP_EXAMPLES=OFF -DBUILD_TESTING=OFF -DBTCPP_BUILD_TOOLS=OFF -DBTCPP_GROOT_INTERFACE=OFF -DBTCPP_SQLITE_LOGGING=OFF -DBTCPP_SHARED_LIBS=${BTCPP_SHARED_LIBS} -DUSE_VENDORED_FLATBUFFERS=OFF -DUSE_VENDORED_MINITRACE=OFF -DUSE_VENDORED_TINYXML2=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/behaviortree_cpp PACKAGE_NAME behaviortree_cpp) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/behaviortree-cpp/remove-source-charset.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 90abc0e..d23ae7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -205,7 +205,6 @@ target_compile_definitions(${BTCPP_LIBRARY} PUBLIC BTCPP_LIBRARY_VERSION="${CMAK target_compile_features(${BTCPP_LIBRARY} PUBLIC cxx_std_17) if(MSVC) - target_compile_options(${BTCPP_LIBRARY} PRIVATE "/source-charset:utf-8") else() if(ENABLE_DEBUG) target_compile_options(${BTCPP_LIBRARY} PRIVATE -Wall -Wextra -g3 -ggdb3 -O0 -fno-omit-frame-pointer) ================================================ FILE: ports/behaviortree-cpp/vcpkg.json ================================================ { "name": "behaviortree-cpp", "version": "4.9.0", "description": "Behavior Trees Library in C++.", "homepage": "https://www.behaviortree.dev", "supports": "!uwp", "dependencies": [ "boost-coroutine2", "cppzmq", "flatbuffers", "minitrace", "tinyxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/benchmark/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/benchmark REF "v${VERSION}" SHA512 f207a63868e0c52f31a66ff9fd0ee75183ce3aaaa0946b00a49b77836507363bac8574feef8d9da82810a3167847303d6edf939e74802ad17e5a615bbf61e372 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BENCHMARK_INSTALL_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBENCHMARK_ENABLE_TESTING=OFF -DBENCHMARK_INSTALL_DOCS=OFF -DBENCHMARK_ENABLE_WERROR=OFF ${FEATURES} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/benchmark) vcpkg_fixup_pkgconfig() if(BENCHMARK_INSTALL_TOOLS) file(GLOB scripts "${CURRENT_PACKAGES_DIR}/share/googlebenchmark/tools/*.py") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script IN LISTS scripts) cmake_path(GET script FILENAME filename) file(RENAME "${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${filename}") endforeach() file(RENAME "${CURRENT_PACKAGES_DIR}/share/googlebenchmark/tools/gbench" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gbench") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/googlebenchmark") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/benchmark/vcpkg.json ================================================ { "$comment": "https://github.com/google/benchmark/issues/661 describes the missing UWP support upstream", "name": "benchmark", "version-semver": "1.9.5", "description": "A library to benchmark code snippets, similar to unit tests.", "homepage": "https://github.com/google/benchmark", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Enable installation of tools" } } } ================================================ FILE: ports/bento4/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO axiomatic-systems/Bento4 REF "v${VERSION}" SHA512 ad92c561a16a830ac63b0fbff98bd14f732dd2e38416de937191b14c750e632c793e5256b92361d3ff8867f9fd1cf727756ba78cd0122af1b79d62532d2ca427 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_APPS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bento4) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Documents/LICENSE.txt") ================================================ FILE: ports/bento4/vcpkg.json ================================================ { "name": "bento4", "version": "1.6.0-641", "description": "Bento4 is a C++ class library and tools designed to read and write ISO-MP4 files. This format is defined in international specifications ISO/IEC 14496-12, 14496-14 and 14496-15.", "homepage": "https://github.com/axiomatic-systems/Bento4", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/berkeleydb/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(berkeleydb C CXX) option(INSTALL_HEADERS "Install header files" ON) add_definitions( -DWIN32 -D_WINDOWS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_LIB -DUNICODE -D_UNICODE ) if (BUILD_SHARED_LIBS) add_definitions( -DDB_CREATE_DLL -D_USRDLL ) else() add_definitions( -D_LIB ) endif() add_library(libdb48 btree/bt_compact.c btree/bt_compare.c btree/bt_compress.c btree/bt_conv.c btree/bt_curadj.c btree/bt_cursor.c btree/bt_delete.c btree/bt_method.c btree/bt_open.c btree/bt_put.c btree/bt_rec.c btree/bt_reclaim.c btree/bt_recno.c btree/bt_rsearch.c btree/bt_search.c btree/bt_split.c btree/bt_stat.c btree/bt_upgrade.c btree/bt_verify.c btree/btree_auto.c db/crdel_auto.c db/crdel_rec.c common/crypto_stub.c cxx/cxx_db.cpp cxx/cxx_dbc.cpp cxx/cxx_dbt.cpp cxx/cxx_env.cpp cxx/cxx_except.cpp cxx/cxx_lock.cpp cxx/cxx_logc.cpp cxx/cxx_mpool.cpp cxx/cxx_multi.cpp cxx/cxx_seq.cpp cxx/cxx_txn.cpp db/db.c db/db_am.c db/db_auto.c common/db_byteorder.c db/db_cam.c db/db_cds.c db/db_conv.c db/db_dispatch.c db/db_dup.c common/db_err.c common/db_getlong.c common/db_idspace.c common/db_compint.c db/db_iface.c db/db_join.c common/db_log2.c db/db_meta.c db/db_method.c db/db_open.c db/db_overflow.c db/db_ovfl_vrfy.c db/db_pr.c db/db_rec.c db/db_reclaim.c db/db_remove.c db/db_rename.c db/db_ret.c db/db_setid.c db/db_setlsn.c common/db_shash.c db/db_sort_multiple.c db/db_stati.c db/db_truncate.c db/db_upg.c db/db_upg_opd.c db/db_vrfy.c db/db_vrfyutil.c db/partition.c dbm/dbm.c dbreg/dbreg.c dbreg/dbreg_auto.c dbreg/dbreg_rec.c dbreg/dbreg_stat.c dbreg/dbreg_util.c common/dbt.c env/env_alloc.c env/env_config.c env/env_failchk.c env/env_file.c env/env_globals.c env/env_method.c env/env_name.c env/env_open.c env/env_recover.c env/env_region.c env/env_register.c env/env_sig.c env/env_stat.c fileops/fileops_auto.c fileops/fop_basic.c fileops/fop_rec.c fileops/fop_util.c hash/hash.c hash/hash_auto.c hash/hash_conv.c hash/hash_dup.c hash/hash_func.c hash/hash_meta.c hash/hash_method.c hash/hash_open.c hash/hash_page.c hash/hash_rec.c hash/hash_reclaim.c hash/hash_stat.c hash/hash_upgrade.c hash/hash_verify.c hmac/hmac.c hsearch/hsearch.c build_windows/libdb.def lock/lock.c lock/lock_deadlock.c lock/lock_failchk.c lock/lock_id.c lock/lock_list.c lock/lock_method.c lock/lock_region.c lock/lock_stat.c lock/lock_timer.c lock/lock_util.c log/log.c log/log_archive.c log/log_compare.c log/log_debug.c log/log_get.c log/log_method.c log/log_put.c log/log_stat.c common/mkpath.c mp/mp_alloc.c mp/mp_bh.c mp/mp_fget.c mp/mp_fmethod.c mp/mp_fopen.c mp/mp_fput.c mp/mp_fset.c mp/mp_method.c mp/mp_mvcc.c mp/mp_region.c mp/mp_register.c mp/mp_resize.c mp/mp_stat.c mp/mp_sync.c mp/mp_trickle.c mutex/mut_alloc.c mutex/mut_failchk.c mutex/mut_method.c mutex/mut_region.c mutex/mut_stat.c mutex/mut_win32.c common/openflags.c os/os_abort.c os/os_addrinfo.c os_windows/os_abs.c os/os_alloc.c os_windows/os_clock.c os_windows/os_config.c os_windows/os_cpu.c os/os_ctime.c os_windows/os_dir.c os_windows/os_errno.c os_windows/os_fid.c os_windows/os_flock.c os_windows/os_fsync.c os_windows/os_getenv.c os_windows/os_handle.c os_windows/os_map.c os_windows/os_mkdir.c os_windows/os_open.c os/os_pid.c os_windows/os_rename.c os/os_root.c os/os_rpath.c os_windows/os_rw.c os_windows/os_seek.c os/os_stack.c os_windows/os_stat.c os/os_tmpdir.c os_windows/os_truncate.c os/os_uid.c os_windows/os_unlink.c os_windows/os_yield.c qam/qam.c qam/qam_auto.c qam/qam_conv.c qam/qam_files.c qam/qam_method.c qam/qam_open.c qam/qam_rec.c qam/qam_stat.c qam/qam_upgrade.c qam/qam_verify.c rep/rep_auto.c rep/rep_backup.c rep/rep_elect.c rep/rep_lease.c rep/rep_log.c rep/rep_method.c rep/rep_record.c rep/rep_region.c rep/rep_stat.c rep/rep_util.c rep/rep_verify.c repmgr/repmgr_auto.c repmgr/repmgr_elect.c repmgr/repmgr_method.c repmgr/repmgr_msg.c repmgr/repmgr_net.c repmgr/repmgr_queue.c repmgr/repmgr_sel.c repmgr/repmgr_stat.c repmgr/repmgr_util.c repmgr/repmgr_windows.c sequence/seq_stat.c sequence/sequence.c hmac/sha1.c clib/strsep.c txn/txn.c txn/txn_auto.c txn/txn_chkpt.c txn/txn_failchk.c txn/txn_method.c txn/txn_rec.c txn/txn_recover.c txn/txn_region.c txn/txn_stat.c txn/txn_util.c common/os_method.c common/util_cache.c common/util_log.c common/util_sig.c common/zerofill.c ) include_directories(${CMAKE_CURRENT_SOURCE_DIR} build_windows dbinc) target_link_libraries(libdb48 PUBLIC ws2_32.lib) install(TARGETS libdb48 RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) if(INSTALL_HEADERS) file(GLOB HEADERS build_windows/*.h) install(FILES ${HEADERS} DESTINATION include) endif() ================================================ FILE: ports/berkeleydb/fix-conflict-macro.patch ================================================ diff --git a/dbinc/atomic.h b/dbinc/atomic.h index 0034dcc..2dd5e03 100644 --- a/dbinc/atomic.h +++ b/dbinc/atomic.h @@ -70,7 +70,7 @@ typedef struct { * These have no memory barriers; the caller must include them when necessary. */ #define atomic_read(p) ((p)->value) -#define atomic_init(p, val) ((p)->value = (val)) +#define bdb_atomic_init(p, val) ((p)->value = (val)) #ifdef HAVE_ATOMIC_SUPPORT @@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange( #define atomic_dec(env, p) (--(p)->value) #define atomic_compare_exchange(env, p, oldval, newval) \ (DB_ASSERT(env, atomic_read(p) == (oldval)), \ - atomic_init(p, (newval)), 1) + bdb_atomic_init(p, (newval)), 1) #else #define atomic_inc(env, p) __atomic_inc(env, p) #define atomic_dec(env, p) __atomic_dec(env, p) diff --git a/mp/mp_fget.c b/mp/mp_fget.c index 5fdee5a..452ef17 100644 --- a/mp/mp_fget.c +++ b/mp/mp_fget.c @@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */ /* Initialize enough so we can call __memp_bhfree. */ alloc_bhp->flags = 0; - atomic_init(&alloc_bhp->ref, 1); + bdb_atomic_init(&alloc_bhp->ref, 1); #ifdef DIAGNOSTIC if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) { __db_errx(env, @@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */ MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize, PROT_READ); - atomic_init(&alloc_bhp->ref, 1); + bdb_atomic_init(&alloc_bhp->ref, 1); MUTEX_LOCK(env, alloc_bhp->mtx_buf); alloc_bhp->priority = bhp->priority; alloc_bhp->pgno = bhp->pgno; diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c index 34467d2..b604388 100644 --- a/mp/mp_mvcc.c +++ b/mp/mp_mvcc.c @@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp) #else memcpy(frozen_bhp, bhp, SSZA(BH, buf)); #endif - atomic_init(&frozen_bhp->ref, 0); + bdb_atomic_init(&frozen_bhp->ref, 0); if (mutex != MUTEX_INVALID) frozen_bhp->mtx_buf = mutex; else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH, @@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp) #endif alloc_bhp->mtx_buf = mutex; MUTEX_LOCK(env, alloc_bhp->mtx_buf); - atomic_init(&alloc_bhp->ref, 1); + bdb_atomic_init(&alloc_bhp->ref, 1); F_CLR(alloc_bhp, BH_FROZEN); } diff --git a/mp/mp_region.c b/mp/mp_region.c index e6cece9..e3e3382 100644 --- a/mp/mp_region.c +++ b/mp/mp_region.c @@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0) return (ret); SH_TAILQ_INIT(&htab[i].hash_bucket); - atomic_init(&htab[i].hash_page_dirty, 0); + bdb_atomic_init(&htab[i].hash_page_dirty, 0); } /* @@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg) hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID : mtx_base + i; SH_TAILQ_INIT(&hp->hash_bucket); - atomic_init(&hp->hash_page_dirty, 0); + bdb_atomic_init(&hp->hash_page_dirty, 0); #ifdef HAVE_STATISTICS hp->hash_io_wait = 0; hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0; diff --git a/mutex/mut_method.c b/mutex/mut_method.c index 2588763..56b6723 100644 --- a/mutex/mut_method.c +++ b/mutex/mut_method.c @@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval) MUTEX_LOCK(env, mtx); ret = atomic_read(v) == oldval; if (ret) - atomic_init(v, newval); + bdb_atomic_init(v, newval); MUTEX_UNLOCK(env, mtx); return (ret); diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c index f3922e0..934a654 100644 --- a/mutex/mut_tas.c +++ b/mutex/mut_tas.c @@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags) #ifdef HAVE_SHARED_LATCHES if (F_ISSET(mutexp, DB_MUTEX_SHARED)) - atomic_init(&mutexp->sharecount, 0); + bdb_atomic_init(&mutexp->sharecount, 0); else #endif if (MUTEX_INIT(&mutexp->tas)) { @@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex) F_CLR(mutexp, DB_MUTEX_LOCKED); /* Flush flag update before zeroing count */ MEMBAR_EXIT(); - atomic_init(&mutexp->sharecount, 0); + bdb_atomic_init(&mutexp->sharecount, 0); } else { DB_ASSERT(env, sharecount > 0); MEMBAR_EXIT(); ================================================ FILE: ports/berkeleydb/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://download.oracle.com/berkeley-db/db-4.8.30.NC.zip" FILENAME "db-4.8.30.NC.zip" SHA512 59c1d2d5a3551f988ab1dc063900572b67ad087537e0d71760de34601f9ebd4d5c070a49b809bec4a599a62417e9a162683ce0f6442deb1a0dadb80764bf6eab ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-conflict-macro.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/berkeleydb/vcpkg.json ================================================ { "name": "berkeleydb", "version": "4.8.30", "port-version": 9, "description": "BDB - A high-performance embedded database for key/value data.", "homepage": "https://download.oracle.com/", "supports": "!(uwp | linux | osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/better-enums/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aantron/better-enums REF ${VERSION} SHA512 5997c74932803fb96beabbe029d80f6fdeab7c46f781a4e11ef775242d294dfd82ca05cac99787dd68a622db62510fd5533e9c0e85a62c7792c0dbe6237af6d9 HEAD_REF master ) file(COPY "${SOURCE_PATH}/enum.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/better-enums") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/better-enums/vcpkg.json ================================================ { "name": "better-enums", "version": "0.11.3", "description": "C++ compile-time enum to string, iteration, in a single header file.", "homepage": "http://aantron.github.io/better-enums/", "license": "BSD-2-Clause" } ================================================ FILE: ports/bext-di/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boost-ext/di REF "v${VERSION}" SHA512 354ca3db8b93e8077d77b35f849860583d621de60c931a0830517b4e918b2f88710e2894f7248098bf1ced328b6c31e88fec86762e148e26d62d5f2968e91f4d HEAD_REF cpp14 ) file(INSTALL ${SOURCE_PATH}/include/boost DESTINATION ${CURRENT_PACKAGES_DIR}/include) if ("extensions" IN_LIST FEATURES) file(INSTALL ${SOURCE_PATH}/extension/include/boost DESTINATION ${CURRENT_PACKAGES_DIR}/include) endif() vcpkg_download_distfile(LICENSE URLS https://www.boost.org/LICENSE_1_0.txt FILENAME "di-copyright" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) vcpkg_install_copyright(FILE_LIST "${LICENSE}") ================================================ FILE: ports/bext-di/vcpkg.json ================================================ { "name": "bext-di", "version": "1.3.2", "description": "C++14 Dependency Injection Library.", "homepage": "https://github.com/boost-ext/di", "features": { "extensions": { "description": "Build with extensions included" } } } ================================================ FILE: ports/bext-mp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qlibs/mp REF "v${VERSION}" SHA512 09cfaf9d6b6622467902902bb71bc71c14fc700de0f52362e67ffcf47b058938c184c75fd0c433697d9e25b1cd4f9df7c6bac08bfe7575772fccd3ab05a4177f HEAD_REF main ) file(COPY "${SOURCE_PATH}/mp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/.github/LICENSE") ================================================ FILE: ports/bext-mp/vcpkg.json ================================================ { "name": "bext-mp", "version": "2.0.11", "description": "C++20 Meta-Programming library", "homepage": "https://github.com/qlibs/mp", "license": "MIT" } ================================================ FILE: ports/bext-sml/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boost-ext/sml REF "v${VERSION}" SHA512 3f49c1e0f58a1e294fcea148fd268e2dfb8d4b527e3239f02718a2bfd27059d2b101d7e48878e4bfae49cc9c2a434de53b4c900fc5daf963512002017a3dffbd HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/boost/sml.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/boost" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/bext-sml/vcpkg.json ================================================ { "name": "bext-sml", "version": "1.1.13", "description": "Your scalable C++14 one header only State Machine Library with no dependencies", "homepage": "https://github.com/boost-ext/sml", "license": "BSL-1.0" } ================================================ FILE: ports/bext-sml2/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qlibs/sml REF "v${VERSION}" SHA512 8c2406f1d35145b4f5896c41c8d1a616444cb151cc468f670daefc1b7dc4bd8aa6c9acc3c2c733158c0e6a21b4077cac4b519eea2b0fd3bc549dae726d0a23d7 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/sml2" DESTINATION "${CURRENT_PACKAGES_DIR}/include/boost" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md") ================================================ FILE: ports/bext-sml2/vcpkg.json ================================================ { "name": "bext-sml2", "version": "2.0.0", "description": "Your scalable C++20 one header only State Machine Library with no dependencies", "homepage": "https://github.com/qlibs/sml", "license": "BSL-1.0" } ================================================ FILE: ports/bext-text/fix-boost-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b7b03d6..1228484f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.5) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) project(boost_text LANGUAGES CXX) +include(CMakePackageConfigHelpers) ################################################## # C++ standard version selection ################################################## @@ -85,7 +86,7 @@ target_include_directories(text PUBLIC $ $) -target_include_directories(text PRIVATE ${Boost_INCLUDE_DIR}) +target_link_libraries(text PRIVATE Boost::boost) set_property(TARGET text PROPERTY CXX_STANDARD ${CXX_STD}) target_compile_options(text PRIVATE -DBOOST_TEXT_SOURCE) if (link_flags) @@ -106,13 +107,22 @@ install(EXPORT text_export NAMESPACE Boost:: DESTINATION lib/cmake/text) + +configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/text-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake/text-config.cmake" + INSTALL_DESTINATION "lib/cmake/text" + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + install(FILES - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/text-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/text-config.cmake DESTINATION "lib/cmake/text") install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/boost DESTINATION "include") +if(0) # If Boost was not found, make text depend on boost_clone, so that we clone # Boost from Github repos. However, we don't want a permanent text -> # boost_clone dependency, so make this CMakeLists.txt file dirty by touching @@ -140,4 +150,5 @@ endif () add_subdirectory(test) add_subdirectory(perf) add_subdirectory(example) +endif() diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index 1e25c825..bcec1bc5 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -7,7 +7,8 @@ # Boost ############################################################################### set(Boost_USE_STATIC_LIBS ON) -find_package(Boost 1.71.0 COMPONENTS ${boost_components}) +find_package(Boost REQUIRED COMPONENTS ${boost_components}) +if(0) if (Boost_INCLUDE_DIR) add_library(boost INTERFACE) target_include_directories(boost INTERFACE ${Boost_INCLUDE_DIR}) @@ -108,3 +109,4 @@ if (MSVC) else() find_package(ICU 60 COMPONENTS i18n data uc) endif() +endif() diff --git a/cmake/text-config.cmake b/cmake/text-config.cmake.in similarity index 70% rename from cmake/text-config.cmake rename to cmake/text-config.cmake.in index b7071ff5..b9c8be91 100644 --- a/cmake/text-config.cmake +++ b/cmake/text-config.cmake.in @@ -1,2 +1,4 @@ +@PACKAGE_INIT@ include(CMakeFindDependencyMacro) +find_dependency(Boost) include("${CMAKE_CURRENT_LIST_DIR}/text-targets.cmake") ================================================ FILE: ports/bext-text/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tzlaine/text REF dd2959e7143fde3f62b24d87a6573b5b96b6ea46 SHA512 6897d6aac64f16ebf7c0fc4623d5b773844e6714d7c4feef69fad338657e7e7f845a0120b1ffb7b36e8b29f42afde470d0883e65bbcd7adb9466f07306ed64d5 HEAD_REF master PATCHES fix-boost-dependency.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME text CONFIG_PATH "lib/cmake/text") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/bext-text/vcpkg.json ================================================ { "name": "bext-text", "version-date": "2024-01-19", "description": "What a c++ standard Unicode library might look like.", "homepage": "https://tzlaine.github.io/text/doc/html/index.html", "license": "BSL-1.0", "dependencies": [ "boost", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bext-ut/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boost-ext/ut REF "v${VERSION}" SHA512 f95bdc9ba483f309bdcbe57d2fef92a0b4301bdb1c83700e711ac152c72a76b1d502a16462cca48074db024c0eb97920ffca7b3236f04c3bb40080c672c80f50 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBOOST_UT_BUILD_BENCHMARKS=OFF -DBOOST_UT_BUILD_EXAMPLES=OFF -DBOOST_UT_BUILD_TESTS=OFF -DINCLUDE_INSTALL_DIR=include -DBOOST_UT_DISABLE_MODULE=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME ut CONFIG_PATH lib/cmake/ut) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/bext-ut/usage ================================================ bext-ut provides CMake targets: find_package(ut CONFIG REQUIRED) target_link_libraries(main PRIVATE Boost::ut) ================================================ FILE: ports/bext-ut/vcpkg.json ================================================ { "name": "bext-ut", "version": "2.3.1", "description": "C++ single header/single module, macro-free μ(micro)/Unit Testing Framework.", "homepage": "https://github.com/boost-ext/ut", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bext-wintls/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO laudrup/boost-wintls REF "v${VERSION}" SHA512 740f25c4ffb657cf96aa45346b7acb4e0d63025f443977cc1c6eacb08defe0519776d1a2e20df00e72d9346f3d03d5d3e53e2f93371c290e6041979670a6ca66 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bext-wintls/vcpkg.json ================================================ { "name": "bext-wintls", "version": "1.0.0", "description": "Native Windows TLS stream wrapper for use with boost::asio", "homepage": "https://github.com/laudrup/boost-wintls", "license": "BSL-1.0", "supports": "windows | mingw", "dependencies": [ "boost-asio" ] } ================================================ FILE: ports/bfgroup-lyra/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bfgroup/Lyra REF "${VERSION}" SHA512 3554fed9599c8ad8d594f8061f778093526598887f317843eb025ed773d89fbb15dd7bed0059513ac38e89a17ae91b063f5dca64fac4e71df5446fe0f302f413 HEAD_REF release ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME lyra CONFIG_PATH share/lyra/cmake ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bfgroup-lyra/usage ================================================ bfgroup-lyra provides CMake targets: find_package(lyra CONFIG REQUIRED) target_link_libraries(main PRIVATE bfg::lyra) ================================================ FILE: ports/bfgroup-lyra/vcpkg.json ================================================ { "name": "bfgroup-lyra", "version": "1.7.0", "description": "A simple to use, composable, command line parser for C++ 11 and beyond", "homepage": "https://bfgroup.github.io/Lyra/", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bgfx/fix-dependencies.patch ================================================ diff --git a/bgfx/examples/common/bgfx_utils.cpp b/bgfx/examples/common/bgfx_utils.cpp index baaeba3..f6bc854 100644 --- a/bgfx/examples/common/bgfx_utils.cpp +++ b/bgfx/examples/common/bgfx_utils.cpp @@ -17,7 +17,7 @@ namespace stl = tinystl; #include #include #include "entry/entry.h" -#include +#include #include "bgfx_utils.h" diff --git a/bgfx/examples/common/font/font_manager.cpp b/bgfx/examples/common/font/font_manager.cpp index 92e497a..85d1495 100644 --- a/bgfx/examples/common/font/font_manager.cpp +++ b/bgfx/examples/common/font/font_manager.cpp @@ -4,7 +4,7 @@ */ #include -#include +#include #include "../common.h" #include diff --git a/bgfx/examples/common/imgui/imgui.cpp b/bgfx/examples/common/imgui/imgui.cpp index 2fe8258..1006741 100644 --- a/bgfx/examples/common/imgui/imgui.cpp +++ b/bgfx/examples/common/imgui/imgui.cpp @@ -8,10 +8,10 @@ #include #include #include -#include -#include +#include +#include -#include "imgui.h" +#include "imgui/imgui.h" #include "../bgfx_utils.h" #ifndef USE_ENTRY @@ -591,7 +591,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wtype-limits"); // warning: comparison # define STBTT_free(_ptr, _userData) memFree(_ptr, _userData) # define STB_RECT_PACK_IMPLEMENTATION -# include +# include # define STB_TRUETYPE_IMPLEMENTATION -# include +# include #endif // USE_LOCAL_STB diff --git a/bgfx/examples/common/imgui/imgui.h b/bgfx/examples/common/imgui/imgui.h index 865879e..c6a3d84 100644 --- a/bgfx/examples/common/imgui/imgui.h +++ b/bgfx/examples/common/imgui/imgui.h @@ -7,7 +7,7 @@ #define IMGUI_H_HEADER_GUARD #include -#include +#include #include #include diff --git a/bgfx/examples/common/nanovg/fontstash.h b/bgfx/examples/common/nanovg/fontstash.h index 39a48fb..ca0056d 100644 --- a/bgfx/examples/common/nanovg/fontstash.h +++ b/bgfx/examples/common/nanovg/fontstash.h @@ -266,7 +266,7 @@ static void fons__tmpfree(void* ptr, void* up); #endif // 0 #define STBTT_DEF extern -#include +#include struct FONSttFontImpl { stbtt_fontinfo font; diff --git a/bgfx/tools/geometryc/geometryc.cpp b/bgfx/tools/geometryc/geometryc.cpp index d79a80e..7740272 100644 --- a/bgfx/tools/geometryc/geometryc.cpp +++ b/bgfx/tools/geometryc/geometryc.cpp @@ -14,11 +14,11 @@ #include namespace stl = tinystl; -#include +#include #define CGLTF_VALIDATE_ENABLE_ASSERTS BX_CONFIG_DEBUG #define CGLTF_IMPLEMENTATION -#include +#include #define BGFX_GEOMETRYC_VERSION_MAJOR 1 #define BGFX_GEOMETRYC_VERSION_MINOR 0 diff --git a/bgfx/tools/shaderc/shaderc_metal.cpp b/bgfx/tools/shaderc/shaderc_metal.cpp index 9f073b9..e8fd208 100644 --- a/bgfx/tools/shaderc/shaderc_metal.cpp +++ b/bgfx/tools/shaderc/shaderc_metal.cpp @@ -20,11 +20,10 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'u #include #define ENABLE_OPT 1 -#include -#include -#include -#include -#include +#include +#include +#include +#include #include BX_PRAGMA_DIAGNOSTIC_POP() diff --git a/bgfx/tools/shaderc/shaderc_spirv.cpp b/bgfx/tools/shaderc/shaderc_spirv.cpp index f7910de..a844cc0 100644 --- a/bgfx/tools/shaderc/shaderc_spirv.cpp +++ b/bgfx/tools/shaderc/shaderc_spirv.cpp @@ -20,11 +20,10 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wshadow") // warning: declaration of 'u #include #define ENABLE_OPT 1 -#include -#include -#include -#include -#include +#include +#include +#include +#include #include BX_PRAGMA_DIAGNOSTIC_POP() diff --git a/bimg/src/image_decode.cpp b/bimg/src/image_decode.cpp index 798eaba..a4cd3ef 100644 --- a/bimg/src/image_decode.cpp +++ b/bimg/src/image_decode.cpp @@ -16,22 +16,14 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4018) // warning C4018: '<': signed/unsigned BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // error C4100: '' : unreferenced formal parameter BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4389) // warning C4389 : '==' : signed / unsigned mismatch BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4505) // warning C4505: 'tinyexr::miniz::def_realloc_func': unreferenced local function has been removed -#define MINIZ_NO_ARCHIVE_APIS -#define MINIZ_NO_STDIO -#define TINYEXR_IMPLEMENTATION -#include +#include BX_PRAGMA_DIAGNOSTIC_POP() BX_PRAGMA_DIAGNOSTIC_PUSH(); BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4127) // warning C4127: conditional expression is constant BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4267) // warning C4267: '=' : conversion from 'size_t' to 'unsigned short', possible loss of data BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4334) // warning C4334: '<<' : result of 32 - bit shift implicitly converted to 64 bits(was 64 - bit shift intended ? ) -#define LODEPNG_NO_COMPILE_ENCODER -#define LODEPNG_NO_COMPILE_DISK -#define LODEPNG_NO_COMPILE_ANCILLARY_CHUNKS -#define LODEPNG_NO_COMPILE_ALLOCATORS -#define LODEPNG_NO_COMPILE_CPP -#include +#include BX_PRAGMA_DIAGNOSTIC_POP(); #if BIMG_DECODE_HEIF @@ -72,7 +64,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_GCC("-Wimplicit-fallthrough"); #define STBI_FREE(_ptr) lodepng_free(_ptr) #define STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_STATIC -#include +#include BX_PRAGMA_DIAGNOSTIC_POP(); namespace bimg @@ -453,7 +445,7 @@ namespace bimg case TINYEXR_ERROR_INVALID_HEADER: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Invalid header."); break; case TINYEXR_ERROR_UNSUPPORTED_FEATURE: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Unsupported feature."); break; case TINYEXR_ERROR_CANT_WRITE_FILE: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Can't write file."); break; - case TINYEXR_ERROR_SERIALZATION_FAILED: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Serialization failed."); break; + case TINYEXR_ERROR_SERIALIZATION_FAILED: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image. Serialization failed."); break; default: BX_ERROR_SET(_err, BIMG_ERROR, "EXR: Failed to parse image."); break; } } diff --git a/bimg/src/image_encode.cpp b/bimg/src/image_encode.cpp index 7c0cd76..530578f 100644 --- a/bimg/src/image_encode.cpp +++ b/bimg/src/image_encode.cpp @@ -6,7 +6,7 @@ #include #include "bimg_p.h" -#include +#include #include #include #include @@ -19,7 +19,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4100) // warning C4100: 'alloc_context': unref BX_PRAGMA_DIAGNOSTIC_IGNORED_MSVC(4702) // warning C4702: unreachable code BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wunused-parameter") // warning: unused parameter ‘alloc_context’ [-Wunused-parameter] #define STB_IMAGE_RESIZE_IMPLEMENTATION -#include +#include BX_PRAGMA_DIAGNOSTIC_POP(); extern "C" { @@ -564,18 +564,16 @@ namespace bimg const uint32_t srcDataStep = uint32_t(bx::floor(zz * _src->m_depth / float(_dst->m_depth) ) ); const uint8_t* srcData = &srcMip.m_data[srcDataStep*srcSlice]; - int result = stbir_resize_float_generic( - (const float*)srcData, _src->m_width, _src->m_height, srcPitch - , ( float*)dstData, _dst->m_width, _dst->m_height, dstPitch - , 4, 3 - , STBIR_FLAG_ALPHA_PREMULTIPLIED + void* result = stbir_resize( + (const void *)srcData, _src->m_width, _src->m_height, srcPitch + , ( void *)dstData, _dst->m_width, _dst->m_height, dstPitch + , STBIR_RGBA_PM + , STBIR_TYPE_FLOAT , STBIR_EDGE_CLAMP , STBIR_FILTER_BOX - , STBIR_COLORSPACE_LINEAR - , NULL ); - if (1 != result) + if (0 == result) { return false; } diff --git a/bx/src/settings.cpp b/bx/src/settings.cpp index 907c74c..ffcc442 100644 --- a/bx/src/settings.cpp +++ b/bx/src/settings.cpp @@ -19,7 +19,7 @@ BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wunused-function"); BX_PRAGMA_DIAGNOSTIC_PUSH(); BX_PRAGMA_DIAGNOSTIC_IGNORED_CLANG_GCC("-Wsign-compare"); -#include +#include BX_PRAGMA_DIAGNOSTIC_POP(); } @@ -58,7 +58,7 @@ void Settings::load(const void* _data, uint32_t _len) } else { - m_ini = ini_load( (const char*)_data, _len, m_allocator); + m_ini = ini_load( (const char*)_data, m_allocator); } } diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index 33a3943..8eddd3f 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,5 +1,22 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(lodepng CONFIG) +find_dependency(miniz CONFIG) +find_dependency(tinyexr CONFIG) +find_dependency(unofficial-libsquish CONFIG) +if("@BGFX_BUILD_TOOLS_GEOMETRY@") + find_dependency(meshoptimizer CONFIG) +endif() +if("@BGFX_BUILD_TOOLS_SHADER@") + find_dependency(spirv_cross_core CONFIG) + find_dependency(spirv_cross_reflect CONFIG) + find_dependency(spirv_cross_glsl CONFIG) + find_dependency(spirv_cross_hlsl CONFIG) + find_dependency(spirv_cross_msl CONFIG) + find_dependency(glslang CONFIG REQUIRED) +endif() + if(@BGFX_CMAKE_USER_SCRIPT_PRESENT@) include("${CMAKE_CURRENT_LIST_DIR}/@BGFX_CMAKE_USER_SCRIPT_INSTALL_NAME@") endif() diff --git a/cmake/bgfx/CMakeLists.txt b/cmake/bgfx/CMakeLists.txt index 0125da3..9b10d09 100644 --- a/cmake/bgfx/CMakeLists.txt +++ b/cmake/bgfx/CMakeLists.txt @@ -9,20 +9,22 @@ # this software. If not, see . include(bgfx.cmake) -include(3rdparty/meshoptimizer.cmake) -include(3rdparty/dear-imgui.cmake) if(BGFX_BUILD_TOOLS_TEXTURE) - include(texturev.cmake) endif() if(BGFX_BUILD_TOOLS_GEOMETRY) + find_package(meshoptimizer CONFIG REQUIRED) + set(MESHOPTIMIZER_LIBRARIES "meshoptimizer::meshoptimizer" CACHE INTERNAL "") include(geometryc.cmake) - include(geometryv.cmake) endif() if(BGFX_BUILD_TOOLS_SHADER) - include(3rdparty/spirv-opt.cmake) - include(3rdparty/spirv-cross.cmake) - include(3rdparty/glslang.cmake) + find_package(spirv_cross_core CONFIG REQUIRED) + find_package(spirv_cross_reflect CONFIG REQUIRED) + find_package(spirv_cross_glsl CONFIG REQUIRED) + find_package(spirv_cross_hlsl CONFIG REQUIRED) + find_package(spirv_cross_msl CONFIG REQUIRED) + find_package(glslang CONFIG REQUIRED) + include(3rdparty/glsl-optimizer.cmake) include(3rdparty/fcpp.cmake) include(3rdparty/webgpu.cmake) diff --git a/cmake/bgfx/shaderc.cmake b/cmake/bgfx/shaderc.cmake index 0f50eab..8b13b28 100644 --- a/cmake/bgfx/shaderc.cmake +++ b/cmake/bgfx/shaderc.cmake @@ -24,21 +24,10 @@ target_link_libraries( PRIVATE bx bgfx-vertexlayout fcpp - glslang - glsl-optimizer - spirv-opt - spirv-cross -) -target_link_libraries( - shaderc - PRIVATE bx bimg - bgfx-vertexlayout - fcpp - glslang + glslang::glslang glslang::glslang-default-resource-limits glslang::SPIRV glsl-optimizer - spirv-opt - spirv-cross + spirv-cross-core spirv-cross-reflect spirv-cross-glsl spirv-cross-hlsl spirv-cross-msl webgpu ) if(BGFX_AMALGAMATED) diff --git a/cmake/bimg/CMakeLists.txt b/cmake/bimg/CMakeLists.txt index 200b29b..1c857c0 100644 --- a/cmake/bimg/CMakeLists.txt +++ b/cmake/bimg/CMakeLists.txt @@ -8,17 +8,24 @@ # You should have received a copy of the CC0 Public Domain Dedication along with # this software. If not, see . -include(3rdparty/loadpng.cmake) -include(3rdparty/libsquish.cmake) +find_package(lodepng CONFIG REQUIRED) +set(LOADPNG_LIBRARIES "$;$>") +find_package(unofficial-libsquish CONFIG REQUIRED) +set(LIBSQUISH_LIBRARIES "$;$>") include(3rdparty/astc_encoder.cmake) include(3rdparty/edtaa3.cmake) include(3rdparty/etc1.cmake) include(3rdparty/etc2.cmake) include(3rdparty/nvtt.cmake) include(3rdparty/pvrtc.cmake) -include(3rdparty/tinyexr.cmake) +find_package(tinyexr CONFIG REQUIRED) +set(TINYEXR_LIBRARIES "$;$>") include(3rdparty/iqa.cmake) -include(3rdparty/miniz.cmake) +find_package(miniz CONFIG REQUIRED) +set(MINIZ_LIBRARIES "$;$>") + +find_package(Stb REQUIRED) + include(bimg.cmake) include(bimg_decode.cmake) include(bimg_encode.cmake) diff --git a/cmake/bimg/bimg_decode.cmake b/cmake/bimg/bimg_decode.cmake index a511e8f..da98152 100644 --- a/cmake/bimg/bimg_decode.cmake +++ b/cmake/bimg/bimg_decode.cmake @@ -34,6 +34,7 @@ target_include_directories( PRIVATE ${LOADPNG_INCLUDE_DIR} # ${MINIZ_INCLUDE_DIR} # ${TINYEXR_INCLUDE_DIR} # + ${Stb_INCLUDE_DIR} ) target_link_libraries( diff --git a/cmake/bimg/bimg_encode.cmake b/cmake/bimg/bimg_encode.cmake index 82d9fe0..a0ba5df 100644 --- a/cmake/bimg/bimg_encode.cmake +++ b/cmake/bimg/bimg_encode.cmake @@ -32,6 +32,7 @@ target_include_directories( ${TINYEXR_INCLUDE_DIR} # ${IQA_INCLUDE_DIR} # ${MINIZ_INCLUDE_DIR} # + ${Stb_INCLUDE_DIR} # ) file( diff --git a/cmake/bx/bx.cmake b/cmake/bx/bx.cmake index d1a73c6..826c52b 100644 --- a/cmake/bx/bx.cmake +++ b/cmake/bx/bx.cmake @@ -75,13 +75,14 @@ elseif(UNIX) endif() # Add include directory of bx +find_path(MGNLIBS_INCLUDE_DIR "mgnlibs/ini.h") target_include_directories( bx PUBLIC $ # - $ # $ # $ # $ # + PRIVATE "${MGNLIBS_INCLUDE_DIR}" ) # All configurations ================================================ FILE: ports/bgfx/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile( ARCHIVE_FILE URLS https://github.com/bkaradzic/bgfx.cmake/releases/download/v${VERSION}/bgfx.cmake.v${VERSION}.tar.gz FILENAME bgfx.cmake.v${VERSION}.tar.gz SHA512 520c542b65e76e92eae818e32eeb62bb2347ac89a1e10fc07cd5059a3b8a9a543cadca87d451a3bc157c415f6183b1f0e5031248e38fae704b8efd54679d482b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE_FILE}" PATCHES fix-dependencies.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/bgfx/3rdparty/dear-imgui" "${SOURCE_PATH}/bgfx/3rdparty/glslang" "${SOURCE_PATH}/bgfx/3rdparty/meshoptimizer" "${SOURCE_PATH}/bgfx/3rdparty/spirv-cross" "${SOURCE_PATH}/bgfx/3rdparty/spirv-headers" "${SOURCE_PATH}/bgfx/3rdparty/spirv-opt" "${SOURCE_PATH}/bgfx/3rdparty/stb" "${SOURCE_PATH}/bimg/3rdparty/libsquish" "${SOURCE_PATH}/bimg/3rdparty/lodepng" "${SOURCE_PATH}/bimg/3rdparty/stb" "${SOURCE_PATH}/bimg/3rdparty/tinyexr" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BGFX_BUILD_TOOLS multithreaded BGFX_CONFIG_MULTITHREADED ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(BGFX_LIBRARY_TYPE "SHARED") else () set(BGFX_LIBRARY_TYPE "STATIC") endif () vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBGFX_LIBRARY_TYPE=${BGFX_LIBRARY_TYPE} -DBGFX_AMALGAMATED=ON -DBGFX_BUILD_EXAMPLES=OFF -DBGFX_OPENGLES_VERSION=30 "-DBGFX_ADDITIONAL_TOOL_PATHS=${CURRENT_INSTALLED_DIR}/../${HOST_TRIPLET}/tools/bgfx" ${FEATURE_OPTIONS} OPTIONS_DEBUG -DBGFX_BUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_copy_pdbs() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES bin2c shaderc geometryc texturec AUTO_CLEAN) endif () vcpkg_install_copyright( FILE_LIST "${CURRENT_PACKAGES_DIR}/share/licences/${PORT}/LICENSE" COMMENT [[ bgfx includes third-party components which are subject to specific license terms. Check the sources for details. ]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licences" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/bgfx/vcpkg.json ================================================ { "name": "bgfx", "version": "1.129.8940-496", "port-version": 1, "maintainers": "Sandy Carter ", "description": "Cross-platform, graphics API agnostic, Bring Your Own Engine/Framework style rendering library.", "homepage": "https://bkaradzic.github.io/bgfx/overview.html", "documentation": "https://bkaradzic.github.io/bgfx", "license": "BSD-2-Clause AND CC0-1.0", "supports": "!bsd", "dependencies": [ "libsquish", "lodepng", "mgnlibs", "miniz", "stb", "tinyexr", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "multithreaded", "platform": "!emscripten" } ], "features": { "multithreaded": { "description": "Encode and render on different threads", "supports": "!emscripten" }, "tools": { "$comment": "Use '\"host\": true' in dependencies of vcpkg.json in manifest mode.", "description": "Shader, Texture and Geometry compilers for bgfx.", "dependencies": [ "cgltf", { "name": "glslang", "features": [ "opt" ] }, "meshoptimizer", "spirv-cross", "spirv-tools" ] } } } ================================================ FILE: ports/bigint/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14.0) project(bigint CXX) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() set(BIGINT_SRCS BigUnsigned.cc BigInteger.cc BigIntegerAlgorithms.cc BigUnsignedInABase.cc BigIntegerUtils.cc ) set(BIGINT_HH NumberlikeArray.hh BigUnsigned.hh BigInteger.hh BigIntegerAlgorithms.hh BigUnsignedInABase.hh BigIntegerLibrary.hh BigIntegerUtils.hh ) add_library(bigint ${BIGINT_SRCS}) target_include_directories(bigint PUBLIC $ $) install( TARGETS bigint EXPORT bigint-config ) install( EXPORT bigint-config NAMESPACE bigint:: DESTINATION share/bigint ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${BIGINT_HH} DESTINATION include/bigint) endif() ================================================ FILE: ports/bigint/fix-osx-usage.patch ================================================ diff --git a/BigUnsigned.hh b/BigUnsigned.hh index adf1c00..9228753 100644 --- a/BigUnsigned.hh +++ b/BigUnsigned.hh @@ -20,7 +20,7 @@ public: typedef unsigned long Blk; typedef NumberlikeArray::Index Index; - NumberlikeArray::N; + using NumberlikeArray::N; protected: // Creates a BigUnsigned with a capacity; for internal use. @@ -84,8 +84,8 @@ public: // BIT/BLOCK ACCESSORS // Expose these from NumberlikeArray directly. - NumberlikeArray::getCapacity; - NumberlikeArray::getLength; + using NumberlikeArray::getCapacity; + using NumberlikeArray::getLength; /* Returns the requested block, or 0 if it is beyond the length (as if * the number had 0s infinitely to the left). */ diff --git a/BigUnsignedInABase.hh b/BigUnsignedInABase.hh index 8f9bdce..0ea89c6 100644 --- a/BigUnsignedInABase.hh +++ b/BigUnsignedInABase.hh @@ -100,8 +100,8 @@ public: Base getBase() const { return base; } // Expose these from NumberlikeArray directly. - NumberlikeArray::getCapacity; - NumberlikeArray::getLength; + using NumberlikeArray::getCapacity; + using NumberlikeArray::getLength; /* Returns the requested digit, or 0 if it is beyond the length (as if * the number had 0s infinitely to the left). */ ================================================ FILE: ports/bigint/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://mattmccutchen.net/bigint/bigint-2010.04.30.tar.bz2" FILENAME "bigint-2010.04.30.tar.bz2" SHA512 bb64380e51991f97a2489c04801ab4372f795b5e23870ad12d71087f1a2afba9b32f74dcdbdcb5228ebf0dd74a37185285bac7653dd3c62d6118d63c298689af ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-osx-usage.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(INSTALL "${SOURCE_PATH}/README" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/bigint/vcpkg.json ================================================ { "name": "bigint", "version-string": "2010.04.30", "port-version": 8, "description": "C++ Big Integer Library", "homepage": "https://mattmccutchen.net/bigint", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/binlog/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO morganstanley/binlog REF 3fef8846f5ef98e64211e7982c2ead67e0b185a6 SHA512 106da76da3fc229211f8754306156bb7456d828678bfab18a0ad24f713ce1101debab4a75fe12bf7686bfab2f3f26eef66b57642447d7ddfb7de343f3ad8279d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBINLOG_BUILD_BREAD=OFF -DBINLOG_BUILD_BRECOVERY=OFF -DBINLOG_BUILD_EXAMPLES=OFF -DBINLOG_BUILD_UNIT_TESTS=OFF -DBINLOG_BUILD_INTEGRATION_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_benchmark=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/binlog") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/binlog/vcpkg.json ================================================ { "name": "binlog", "version-date": "2021-04-16", "port-version": 1, "description": "Binlog is a high performance C++ log library to produce structured binary logs.", "homepage": "http://opensource.morganstanley.com/binlog/", "license": "Apache-2.0", "supports": "!uwp & !(arm64 & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/binn/0001_fix_uwp.patch ================================================ diff --git a/src/binn.c b/src/binn.c index ef32f35..d12d473 100644 --- a/src/binn.c +++ b/src/binn.c @@ -142,8 +142,14 @@ BINN_PRIVATE void copy_be64(u64 *pdest, u64 *psource) { /***************************************************************************/ #ifndef WIN32 #define stricmp strcasecmp #define strnicmp strncasecmp +#define sprintf_s(b, n, ...) sprintf(b, __VA_ARGS__) +#define strcpy_s(b, n, s) strcpy(b, s) +#else +#define stricmp _stricmp +#define strnicmp _strnicmp +#define strdup _strdup #endif BINN_PRIVATE BOOL IsValidBinnHeader(void *pbuf, int *ptype, int *pcount, int *psize, int *pheadersize); @@ -1582,6 +1588,7 @@ BINN_PRIVATE BOOL binn_read_pair(int expected_type, void *ptr, int pos, int *pid base = p; plimit = p + size - 1; p += header_size; + key = 0; for (i = 0; i < count; i++) { switch (type) { @@ -3333,7 +3340,7 @@ char * APIENTRY binn_get_str(binn *value) { if (type_family(value->type) == BINN_FAMILY_INT) { if (copy_int_value(value->ptr, &vint, value->type, BINN_INT64) == FALSE) return NULL; - sprintf(buf, "%" INT64_FORMAT, vint); + sprintf_s(buf, sizeof buf, "%" INT64_FORMAT, vint); goto loc_convert_value; } @@ -3341,14 +3348,14 @@ char * APIENTRY binn_get_str(binn *value) { case BINN_FLOAT: value->vdouble = value->vfloat; case BINN_DOUBLE: - sprintf(buf, "%g", value->vdouble); + sprintf_s(buf, sizeof buf, "%g", value->vdouble); goto loc_convert_value; case BINN_STRING: return (char*) value->ptr; case BINN_BOOL: if (value->vbool) - strcpy(buf, "true"); + strcpy_s(buf, sizeof buf, "true"); else - strcpy(buf, "false"); + strcpy_s(buf, sizeof buf, "false"); goto loc_convert_value; } ================================================ FILE: ports/binn/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(binn VERSION 1.0 DESCRIPTION "Binn is a binary data serialization format designed to be compact, fast and easy to use." HOMEPAGE_URL "https://github.com/liteserver/binn" ) add_library (binn src/binn.h src/binn.c) target_include_directories(binn PUBLIC ${PROJECT_SOURCE_DIR}/src ) install( TARGETS binn RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) ================================================ FILE: ports/binn/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO liteserver/binn REF b657ef3f38b37aa1e5dea88a9332889d0fbf3a81 # 3.0 SHA512 14bf572152ec5343a161dea9ebfd2b63cd5ce48c0db3decf5591aa94ae7766771cf521ba22978e9ae8855feef694bad85951f3c4a29cb9ddd881918fc6d3722a HEAD_REF master PATCHES 0001_fix_uwp.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(INSTALL "${SOURCE_PATH}/src/binn.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/binn") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/binn/vcpkg.json ================================================ { "name": "binn", "version": "3.0", "port-version": 3, "description": "Binn is a binary data serialization format designed to be compact, fast and easy to use.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bit7z/fix_compile_options.patch ================================================ diff --git a/cmake/CompilerOptions.cmake b/cmake/CompilerOptions.cmake index 1cdb84f..fd9346f 100644 --- a/cmake/CompilerOptions.cmake +++ b/cmake/CompilerOptions.cmake @@ -70,7 +70,7 @@ if( MSVC ) endforeach() endif() else() - target_compile_options( ${LIB_TARGET} PRIVATE -Wall -Wextra -Werror -Wconversion -Wsign-conversion ) + target_compile_options( ${LIB_TARGET} PRIVATE -Wall -Wextra -Wconversion -Wsign-conversion ) endif() # Extra warning flags for Clang ================================================ FILE: ports/bit7z/fix_dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f8ff6f0..855b78d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -194,15 +194,22 @@ include( cmake/BuildOptions.cmake ) include( cmake/CompilerOptions.cmake ) # dependencies -include( cmake/Dependencies.cmake ) +# include( cmake/Dependencies.cmake ) +find_package(7zip CONFIG REQUIRED) +add_library(7-zip ALIAS 7zip::7zip) # 7-zip source code target_link_libraries( ${LIB_TARGET} PRIVATE 7-zip ) # filesystem library (needed if std::filesystem is not available) +if(0) if( ghc_filesystem_ADDED ) target_link_libraries( ${LIB_TARGET} PRIVATE ghc_filesystem ) endif() +else() + find_package(ghc_filesystem CONFIG REQUIRED) + target_link_libraries(${LIB_TARGET} PRIVATE ghcFilesystem::ghc_filesystem ) +endif() # public includes target_include_directories( ${LIB_TARGET} PUBLIC "$" ================================================ FILE: ports/bit7z/fix_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2eb8634..f8ff6f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -179,7 +179,7 @@ message( STATUS "Language Standard for bit7z: C++${CMAKE_CXX_STANDARD}" ) set( LIB_TARGET bit7z${ARCH_POSTFIX} ) add_library( ${LIB_TARGET} STATIC ) target_sources( ${LIB_TARGET} - PUBLIC ${PUBLIC_HEADERS} + # PUBLIC ${PUBLIC_HEADERS} PRIVATE ${HEADERS} ${SOURCES} ) # additional target without the architecture suffix in the name @@ -246,3 +246,29 @@ endif() if( BIT7Z_BUILD_DOCS ) add_subdirectory( docs ) endif() + +set_target_properties(${LIB_TARGET} PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}") + +include(CMakePackageConfigHelpers) +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-bit7z-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-bit7z-config.cmake" + INSTALL_DESTINATION "share/unofficial-bit7z" +) +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-bit7z-config.cmake" + DESTINATION "share/unofficial-bit7z" +) + +include(GNUInstallDirs) +install( + TARGETS ${LIB_TARGET} + EXPORT unofficial-bit7z-targets + COMPONENT bit7z + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bit7z COMPONENT bit7z_development) + +install(EXPORT unofficial-bit7z-targets FILE unofficial-bit7z-targets.cmake NAMESPACE unofficial::bit7z:: DESTINATION share/unofficial-bit7z) + ================================================ FILE: ports/bit7z/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rikyoz/bit7z REF "v${VERSION}" SHA512 63683be54d3c8b4b328501f55de49584ad7913f41f9b5f20cfc825bac45fe079efac4aaedb16a0fecc21d045e3a33dbc9a9b53a1ce43da541a2ae8042c91095f HEAD_REF master PATCHES fix_install.patch fix_dependency.patch fix_compile_options.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-bit7z-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES regex-matching BIT7Z_REGEX_MATCHING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBIT7Z_AUTO_FORMAT=ON -DBIT7Z_AUTO_PREFIX_LONG_PATHS=ON -DBIT7Z_DISABLE_ZIP_ASCII_PWD_CHECK=OFF -DBIT7Z_PATH_SANITIZATION=ON -DBIT7Z_DISABLE_USE_STD_FILESYSTEM=OFF -DBIT7Z_USE_STD_BYTE=OFF -DBIT7Z_USE_NATIVE_STRING=OFF -DBIT7Z_USE_SYSTEM_CODEPAGE=OFF -DBIT7Z_BUILD_TESTS=OFF -DBIT7Z_BUILD_DOCS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-bit7z CONFIG_PATH share/unofficial-bit7z) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/bit7z/unofficial-bit7z-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(7zip CONFIG) find_dependency(ghc_filesystem CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-bit7z-targets.cmake") check_required_components(bit7z) ================================================ FILE: ports/bit7z/vcpkg.json ================================================ { "name": "bit7z", "version": "4.0.11", "description": "A C++ static library offering a clean and simple interface to the 7-zip shared libraries.", "homepage": "https://github.com/rikyoz/bit7z", "license": "MPL-2.0", "dependencies": [ "7zip", "ghc-filesystem", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "regex-matching": { "description": "Enables the support for extracting files matching regular expressions" } } } ================================================ FILE: ports/bitmagic/fix-clang.patch ================================================ diff --git a/src/bmsparsevec_compr.h b/src/bmsparsevec_compr.h index ed774c6d..5dbaf09f 100644 --- a/src/bmsparsevec_compr.h +++ b/src/bmsparsevec_compr.h @@ -280,7 +280,10 @@ public: /** add a series of consequitve NULLs (no-value) to the container */ void add_null(size_type count) BMNOEXCEPT; - + + /** return true if insertion buffer is empty */ + bool empty() const { return sv_bi_.empty(); } + /** flush the accumulated buffer */ void flush(); protected: ================================================ FILE: ports/bitmagic/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tlk00/BitMagic REF "v${VERSION}" SHA512 49e1fe4b1628d54ca6b45d8b2a5a1f31aaec67a949630b3ca60c2e70af536d7954fbf8577cf26981436339818ddf243c5c2579585755f42c9dc6a87e0e6d9548 HEAD_REF master PATCHES fix-clang.patch #https://github.com/tlk00/BitMagic/commit/6dfdcbd1222b3919c2a3b71bfde38db5c7862f97 ) file(GLOB HEADER_LIST "${SOURCE_PATH}/src/*.h") file(INSTALL ${HEADER_LIST} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bitmagic/vcpkg.json ================================================ { "name": "bitmagic", "version": "8.0.1", "port-version": 1, "description": "Algorithms and tools for Algebra of Sets for information retrieval, indexing of databases, scientific algorithms, ranking, clustering, unsupervised machine learning and signal processing.", "homepage": "http://bitmagic.io", "license": "Apache-2.0" } ================================================ FILE: ports/bitserializer/portfile.cmake ================================================ # All BitSerializer components are "header only" except for CSV and MsgPack archives vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PavelKisliak/BitSerializer REF v0.85 SHA512 a55d3948ad66cbd9328c2845fb954ac5587ae230be0276c15cdc5c2e23f7797149a955553a80ff001de79dc7db853f573360827f1a56d83dbd3f9ea249288932 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "rapidjson-archive" BUILD_RAPIDJSON_ARCHIVE "pugixml-archive" BUILD_PUGIXML_ARCHIVE "rapidyaml-archive" BUILD_RAPIDYAML_ARCHIVE "csv-archive" BUILD_CSV_ARCHIVE "msgpack-archive" BUILD_MSGPACK_ARCHIVE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if (NOT (${BUILD_CSV_ARCHIVE} OR ${BUILD_MSGPACK_ARCHIVE})) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bitserializer/usage ================================================ BitSerializer provides CMake targets: find_package(bitserializer CONFIG REQUIRED) # Link only archives which you are specified in the features list when install target_link_libraries(main PRIVATE BitSerializer::rapidjson-archive BitSerializer::pugixml-archive BitSerializer::rapidyaml-archive BitSerializer::csv-archive BitSerializer::msgpack-archive ) ================================================ FILE: ports/bitserializer/vcpkg.json ================================================ { "name": "bitserializer", "version": "0.85", "description": "Multi-format serialization library (JSON, XML, YAML, CSV, MsgPack)", "homepage": "https://github.com/PavelKisliak/BitSerializer", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "csv-archive": { "description": "Module for support CSV" }, "msgpack-archive": { "description": "Module for support MsgPack" }, "pugixml-archive": { "description": "Module for support XML (implementation based on the PugiXml library)", "dependencies": [ "pugixml" ] }, "rapidjson-archive": { "description": "Module for support JSON (implementation based on the RapidJson library)", "dependencies": [ "rapidjson" ] }, "rapidyaml-archive": { "description": "Module for support YAML (implementation based on the RapidYaml library)", "dependencies": [ "ryml" ] } } } ================================================ FILE: ports/bitsery/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fraillt/bitsery REF "v${VERSION}" SHA512 bf43550e307713f37fb6d9c7414eeaadd16c14b791be64871c17e8fbbb0028a7818d7108edae7f29cd9522cc16606824d729220c1d018fa79f3340e8e50e5607 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/bitsery/vcpkg.json ================================================ { "name": "bitsery", "version": "5.2.5", "description": "Header only C++ binary serialization library", "homepage": "https://github.com/fraillt/bitsery", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/blake3/fix-windows-arm-build-error.patch ================================================ diff --git a/c/blake3_dispatch.c b/c/blake3_dispatch.c index af6c3da..dce85b4 100644 --- a/c/blake3_dispatch.c +++ b/c/blake3_dispatch.c @@ -31,7 +31,7 @@ #define ATOMIC_INT _Atomic int #define ATOMIC_LOAD(x) x #define ATOMIC_STORE(x, y) x = y -#elif defined(_MSC_VER) +#elif defined(IS_X86) && defined(_MSC_VER) #define ATOMIC_INT LONG #define ATOMIC_LOAD(x) InterlockedOr(&x, 0) #define ATOMIC_STORE(x, y) InterlockedExchange(&x, y) ================================================ FILE: ports/blake3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BLAKE3-team/BLAKE3 REF "${VERSION}" SHA512 d0861c3c0294d84a46a3760e5e51734f4040036aa74d72d32242adb9311c0f85f580c17fbee9ca17dc2b3818ff68048b3156a19b8d11fe5c459c5e9266709fb9 HEAD_REF main PATCHES fix-windows-arm-build-error.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS BLAKE3_FEATURE_OPTIONS FEATURES tbb BLAKE3_USE_TBB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/c" OPTIONS ${BLAKE3_FEATURE_OPTIONS} -DBLAKE3_FETCH_TBB=OFF -DBLAKE3_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_A2" "${SOURCE_PATH}/LICENSE_A2LLVM" "${SOURCE_PATH}/LICENSE_CC0") ================================================ FILE: ports/blake3/vcpkg.json ================================================ { "name": "blake3", "version": "1.8.3", "description": "BLAKE3 cryptographic hash function.", "homepage": "https://github.com/BLAKE3-team/BLAKE3", "license": "CC0-1.0 OR Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tbb": { "description": "Enable TBB multi-threading API support", "dependencies": [ { "name": "tbb", "default-features": false } ] } } } ================================================ FILE: ports/blas/blas.pc.in ================================================ prefix=${pcfiledir}/../.. Name: BLAS Description: Implementation of BLAS Version: Requires: @requires@ Libs: @libs@ Cflags: @cflags@ ================================================ FILE: ports/blas/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) # Due to the interaction between BLAS and LAPACK, we need to choose implementations consistent with # each other. # # First, if we are on Apple, we use the Accelerate framework. # # Then, we prefer to use openblas and lapack-reference for blas and lapack, respectively, but # sometimes are unable. # # If we are on Windows and arm or uwp, that we use gfortran as our fortran compiler creates an issue # because there is no available libgfortran. This means we can't use lapack-reference at all. # We choose clapack instead. # # If we are on Windows and static, there is a linking problem caused by static gfortran in the same # link as openblas, so we choose clapack again. # # That results in roughly the following decision tree: # # no_libgfortran = (uwp || (windows && arm)) # can_link_mixed_static_libgfortran = !windows || !static # # if (no_libgfortran) { # return { # "blas": "openblas", # "lapack": "clapack" # }; # } else if (can_link_mixed_static_libgfortran) { # return { # "blas": "openblas", # "lapack": "lapack-reference[noblas]" # }; # } else { # return { # "blas": "openblas", # "lapack": "clapack" # }; # } # # Scoping this to just the 'can use openblas' question, we get: # uwp || (windows && arm) || !windows || !static # and for lapack-reference[blas], the DeMorgan'd inverse of that: # !uwp && !(windows && arm) && windows && static if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) # Use Apple's accelerate framework where available set(BLA_VENDOR Apple) set(requires "") set(libs "-framework Accelerate") set(cflags "-framework Accelerate") else() set(BLA_VENDOR OpenBLAS) set(requires openblas) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/blas.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/blas.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas.pc" @ONLY) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(BLA_STATIC ON) else() set(BLA_STATIC OFF) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/blas/vcpkg-cmake-wrapper.cmake" @ONLY) ================================================ FILE: ports/blas/vcpkg-cmake-wrapper.cmake.in ================================================ # BLA_VENDOR and BLA_STATIC are documented at: # * https://cmake.org/cmake/help/latest/module/FindBLAS.html # * https://cmake.org/cmake/help/latest/module/FindLAPACK.html set(BLA_VENDOR @BLA_VENDOR@) set(BLA_STATIC @BLA_STATIC@) _find_package(${ARGS}) unset(BLA_VENDOR) unset(BLA_STATIC) ================================================ FILE: ports/blas/vcpkg.json ================================================ { "$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!", "name": "blas", "version-date": "2023-04-14", "port-version": 5, "description": "Metapackage for packages which provide BLAS", "license": null, "dependencies": [ { "name": "openblas", "platform": "!osx & !ios" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/blaze/portfile.cmake ================================================ vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO blaze-lib/blaze REF "v${VERSION}" SHA512 9786628159991f547902ceb44a159f0ba84d08be16ccc45bfb9aad3cfbf16eaede4ea43d2d4981d420a8a387a07721b113754f6038a6db2d9c7ed2ea967b5361 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES lapack USE_LAPACK openmp BLAZE_SHARED_MEMORY_PARALLELIZATION ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBLAZE_SMP_THREADS=OpenMP ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/blaze/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/blaze/vcpkg.json ================================================ { "name": "blaze", "version": "3.8.2", "port-version": 1, "description": "Blaze is an open-source, high-performance C++ math library for dense and sparse arithmetic.", "homepage": "https://bitbucket.org/blaze-lib/blaze", "license": "BSD-3-Clause", "dependencies": [ "boost-exception", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "lapack", "openmp" ], "features": { "lapack": { "description": "LAPACK support", "dependencies": [ "lapack" ] }, "openmp": { "description": "OpenMP support" } } } ================================================ FILE: ports/blend2d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO blend2d/blend2d REF d2027ebfd6aaf53b190b6b3b497425fc85f14251 # commited on 2025-03-08 SHA512 f7ecda8280290a1692bbec618522eccf1d74f79c688affc687848459c06762e405ad2f319845a548d478723ed8bf8db609e4691bc335f364baceb20d9d3aa597 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLEND2D_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES jit BLEND2D_EXTERNAL_ASMJIT INVERTED_FEATURES jit BLEND2D_NO_JIT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBLEND2D_STATIC=${BLEND2D_STATIC}" "-DBLEND2D_NO_FUTEX=OFF" ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blend2d/api.h" "#if !defined(BL_STATIC)" "#if 0" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blend2d-debug.h" "#if defined(BL_STATIC)" "#if 1" ) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/blend2d/usage ================================================ blend2d provides CMake targets: find_package(blend2d CONFIG REQUIRED) target_link_libraries(main PRIVATE blend2d::blend2d) ================================================ FILE: ports/blend2d/vcpkg.json ================================================ { "name": "blend2d", "version-date": "2025-03-08", "port-version": 1, "description": "2D Vector Graphics Engine Powered by a JIT Compiler", "homepage": "https://github.com/blend2d/blend2d", "documentation": "https://blend2d.com/doc/index.html", "license": "Zlib", "supports": "!wasm32", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "jit", "platform": "!arm32" } ], "features": { "jit": { "description": "Enables JIT compiler to generate optimized pipelines.", "supports": "!arm32", "dependencies": [ "asmjit" ] } } } ================================================ FILE: ports/blickfeld-qb2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Blickfeld/blickfeld-qb2 REF "v${VERSION}" SHA512 d1bbec6fdb0cc407f5ec08042bb291c459cebdb5e713daa70be8136bd34a95737dcb9961e7c134d3f325f4219e32c7099e94b17691b69cffdfca845fc4387456 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/blickfeld-qb2") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/blickfeld-qb2/usage ================================================ blickfeld-qb2 provides CMake targets: find_package(blickfeld-qb2 REQUIRED) target_link_libraries(main PRIVATE blickfeld-qb2) ================================================ FILE: ports/blickfeld-qb2/vcpkg.json ================================================ { "name": "blickfeld-qb2", "version": "2.13", "description": "Client library to communicate securely with Qb2 LiDAR devices of Blickfeld GmbH.", "homepage": "https://github.com/Blickfeld/blickfeld-qb2", "license": "BSD-3-Clause", "dependencies": [ "grpc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/blingfire/ninja.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 818a3da..e8b3bed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,3 +19,3 @@ IF (WIN32 AND MSVC) set (CMAKE_CXX_FLAGS " -DNDEBUG") - add_compile_options("/O2" "/W4" "/GS" "/Gy" "/guard:cf" "/Gm-" "/Zc:inline" "/fp:precise" "/GF" "/EHsc" "/ZH:SHA_256") + add_compile_options("/W4" "/GS" "/Gy" "/guard:cf" "/Gm-" "/Zc:inline" "/fp:precise" "/GF" "/EHsc" "/ZH:SHA_256") add_compile_options("$<$:/Od>") ================================================ FILE: ports/blingfire/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/BlingFire REF c0381c68b6aa6d1b4e569888bae1642e40494a99 SHA512 0fa15791fc815a992023bae6f30c84dda1d477bcdedcf1343d4dbe4b09b51e17fd87bf130d58e50f378ca94982a6306d7f980e3ff4522091be036428684bdcbb HEAD_REF master PATCHES ninja.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${ADDITIONAL_OPTIONS} ) vcpkg_cmake_install() file(GLOB BINS "${SOURCE_PATH}/nuget/lib/*.bin") foreach(BIN ${BINS}) file(INSTALL "${BIN}" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endforeach() vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/blingfire/vcpkg.json ================================================ { "name": "blingfire", "version": "0.1.8.1", "port-version": 1, "description": "BlingFire is a lightning fast Finite State machine and REgular expression manipulation library.", "license": "MIT", "supports": "windows & !static", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/blitz/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO blitzpp/blitz REF 839fc5e0f35b1c38a01cfd7a94e83de81e8a6b55 SHA512 efb6b19691e23c95cf6abd59607bce299b0c02a12ce6be105a35ad8509ab564b8dac8d6363f048e547d199e117d2bdd0e4ef3046d3c411f669c0a453a0b75627 HEAD_REF master ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DOC=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blitz/matbops.h" "${SOURCE_PATH}" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blitz/matuops.h" "${SOURCE_PATH}" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blitz/mathfunc.h" "${SOURCE_PATH}" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/blitz/promote-old.h" "${SOURCE_PATH}" "" IGNORE_UNCHANGED) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/blitz/vcpkg.json ================================================ { "name": "blitz", "version-date": "2020-03-25", "port-version": 7, "description": "Blitz++ is a C++ template class library that provides high-performance multidimensional array containers for scientific computing.", "homepage": "https://github.com/blitzpp/blitz", "supports": "!(arm | arm64 | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bloomberg-quantum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bloomberg/quantum REF f4b872f99480bc7f2ab60620d99823e8f2d3b0d6 SHA512 c41930c8bb0a1b70fdd4123ef349a0e8e892e0ecd52b412a171b1ce05386323a9ed2376a792ac12cd69f7d5a97a257bc08c2b85ce8a5f16b6f4e75740823b53b HEAD_REF master PATCHES rename-config-file-and-namespace.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQUANTUM_EXPORT_PKGCONFIG=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH "share/cmake/unofficial-${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bloomberg-quantum/rename-config-file-and-namespace.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d22f0f..55d6f65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,8 +33,9 @@ endif() if (NOT QUANTUM_PKGCONFIG_DIR) set(QUANTUM_PKGCONFIG_DIR share/pkgconfig) endif() +set(PROJECT_NAMESPACE_NAME unofficial-bloomberg-${PROJECT_NAME}) if (NOT QUANTUM_CMAKE_CONFIG_DIR) - set(QUANTUM_CMAKE_CONFIG_DIR share/cmake/${PROJECT_NAME}) + set(QUANTUM_CMAKE_CONFIG_DIR share/cmake/${PROJECT_NAMESPACE_NAME}) endif() #Global options diff --git a/cmake/QuantumConfig.cmake.in b/cmake/unofficial-bloomberg-QuantumConfig.cmake.in similarity index 100% rename from cmake/QuantumConfig.cmake.in rename to cmake/unofficial-bloomberg-QuantumConfig.cmake.in diff --git a/quantum/CMakeLists.txt b/quantum/CMakeLists.txt index 1a721f9..1e93bc4 100644 --- a/quantum/CMakeLists.txt +++ b/quantum/CMakeLists.txt @@ -21,10 +21,10 @@ make_quantum_header() set(PKG_DIR "${CMAKE_BINARY_DIR}/package") set(PKGCONFIG_FILE "${PKG_DIR}/${PROJECT_TARGET_NAME}.pc") -set(TARGET_CONFIG_FILE "${PKG_DIR}/${PROJECT_NAME}Config.cmake") -set(TARGET_VERSION_FILE "${PKG_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(TARGET_CONFIG_FILE "${PKG_DIR}/${PROJECT_NAMESPACE_NAME}Config.cmake") +set(TARGET_VERSION_FILE "${PKG_DIR}/${PROJECT_NAMESPACE_NAME}ConfigVersion.cmake") set(TARGET_EXPORT_NAME ${PROJECT_NAME}Targets) -set(NAMESPACE "${PROJECT_NAME}::") +set(NAMESPACE "${PROJECT_NAMESPACE_NAME}::") add_library(${PROJECT_TARGET_NAME} INTERFACE) set(QUANTUM_DEPENDENCIES Boost::context pthread) @@ -70,7 +70,7 @@ if (QUANTUM_EXPORT_CMAKE_CONFIG) # Generate CMAKE configuration file and exported targets configure_package_config_file( - "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in" + "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAMESPACE_NAME}Config.cmake.in" "${TARGET_CONFIG_FILE}" INSTALL_DESTINATION "${QUANTUM_CMAKE_CONFIG_DIR}" PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_INCLUDEDIR ================================================ FILE: ports/bloomberg-quantum/vcpkg.json ================================================ { "name": "bloomberg-quantum", "version-date": "2023-02-03", "description": "Powerful multi-threaded coroutine dispatcher and parallel execution engine", "homepage": "https://github.com/bloomberg/quantum/", "license": "Apache-2.0", "dependencies": [ "boost-context", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/blosc/0001-fix-CMake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 54d4817..07b551a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,7 +134,7 @@ include(GNUInstallDirs) if(NOT DEACTIVATE_LZ4) if(PREFER_EXTERNAL_LZ4) - find_package(LZ4) + find_package(LZ4 NAMES lz4 CONFIG REQUIRED) else() message(STATUS "Using LZ4 internal sources.") endif() @@ -144,7 +144,7 @@ if(NOT DEACTIVATE_LZ4) endif() if(NOT DEACTIVATE_SNAPPY) - find_package(Snappy) + find_package(Snappy CONFIG REQUIRED) if(SNAPPY_FOUND) message(STATUS "Activating support for SNAPPY.") set(HAVE_SNAPPY TRUE) @@ -157,7 +157,7 @@ if(NOT DEACTIVATE_ZLIB) # import the ZLIB_ROOT environment variable to help finding the zlib library if(PREFER_EXTERNAL_ZLIB) set(ZLIB_ROOT $ENV{ZLIB_ROOT}) - find_package(ZLIB) + find_package(ZLIB REQUIRED) if(NOT ZLIB_FOUND ) message(STATUS "No zlib found. Using internal sources.") endif() @@ -171,7 +171,7 @@ endif() if(NOT DEACTIVATE_ZSTD) if(PREFER_EXTERNAL_ZSTD) - find_package(Zstd) + find_package(zstd CONFIG REQUIRED) else() message(STATUS "Using ZSTD internal sources.") endif() diff --git a/blosc/CMakeLists.txt b/blosc/CMakeLists.txt index 70f80a2..83d90d8 100644 --- a/blosc/CMakeLists.txt +++ b/blosc/CMakeLists.txt @@ -88,7 +88,7 @@ endif(WIN32) if(NOT DEACTIVATE_LZ4) if(LZ4_FOUND) - set(LIBS ${LIBS} ${LZ4_LIBRARY}) + set(LIBS ${LIBS} lz4::lz4) else(LZ4_FOUND) file(GLOB LZ4_FILES ${LZ4_LOCAL_DIR}/*.c) set(SOURCES ${SOURCES} ${LZ4_FILES}) @@ -98,7 +98,7 @@ endif(NOT DEACTIVATE_LZ4) if(NOT DEACTIVATE_SNAPPY) if(SNAPPY_FOUND) - set(LIBS ${LIBS} ${SNAPPY_LIBRARY}) + set(LIBS ${LIBS} Snappy::snappy) else(SNAPPY_FOUND) file(GLOB SNAPPY_FILES ${SNAPPY_LOCAL_DIR}/*.cc) set(SOURCES ${SOURCES} ${SNAPPY_FILES}) @@ -108,7 +108,7 @@ endif(NOT DEACTIVATE_SNAPPY) if(NOT DEACTIVATE_ZLIB) if(ZLIB_FOUND) - set(LIBS ${LIBS} ${ZLIB_LIBRARY}) + set(LIBS ${LIBS} ZLIB::ZLIB) else(ZLIB_FOUND) file(GLOB ZLIB_FILES ${ZLIB_LOCAL_DIR}/*.c) set(SOURCES ${SOURCES} ${ZLIB_FILES}) @@ -136,6 +136,7 @@ if (NOT DEACTIVATE_ZSTD) set(ZSTD_FILES ${ZSTD_COMMON_FILES} ${ZSTD_COMPRESS_FILES} ${ZSTD_DECOMPRESS_FILES} ${ZSTD_DICT_FILES}) set(SOURCES ${SOURCES} ${ZSTD_FILES}) + set(LIBS ${LIBS} $,zstd::libzstd_shared,zstd::libzstd_static>) source_group("Zstd" FILES ${ZSTD_FILES}) endif (ZSTD_FOUND) endif (NOT DEACTIVATE_ZSTD) @@ -207,7 +208,7 @@ endif() if (BUILD_SHARED) target_link_libraries(blosc_shared ${LIBS}) - target_include_directories(blosc_shared PUBLIC ${BLOSC_INCLUDE_DIRS}) + target_include_directories(blosc_shared PUBLIC $ $) endif() if (BUILD_TESTS) @@ -222,7 +223,7 @@ if(BUILD_STATIC) set_target_properties(blosc_static PROPERTIES PREFIX lib) endif() target_link_libraries(blosc_static ${LIBS}) - target_include_directories(blosc_static PUBLIC ${BLOSC_INCLUDE_DIRS}) + target_include_directories(blosc_static PUBLIC $ $) endif(BUILD_STATIC) # install @@ -230,12 +231,14 @@ if(BLOSC_INSTALL) install(FILES blosc.h blosc-export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT DEV) if(BUILD_SHARED) - install(TARGETS blosc_shared + install(TARGETS blosc_shared EXPORT blosc-config LIBRARY COMPONENT LIB - ARCHIVE COMPONENT DEV - RUNTIME COMPONENT LIB) + ARCHIVE COMPONENT LIB + RUNTIME COMPONENT BIN) endif(BUILD_SHARED) if(BUILD_STATIC) - install(TARGETS blosc_static COMPONENT DEV) + install(TARGETS blosc_static EXPORT blosc-config LIBRARY COMPONENT LIB) endif(BUILD_STATIC) endif(BLOSC_INSTALL) + +install(EXPORT blosc-config DESTINATION share/blosc) \ No newline at end of file ================================================ FILE: ports/blosc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Blosc/c-blosc REF "v${VERSION}" SHA512 f32ac9ca7dd473f32201cdf4b7bb61a89e8bc3e3d16e027d2c6dc1aa838cb47c42dfed6942c9108532b3920ed22a8c662e7451890177c9bbe6ec5b8ab65362b3 HEAD_REF master PATCHES 0001-fix-CMake-config.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLOSC_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BLOSC_SHARED) file(REMOVE_RECURSE "${SOURCE_PATH}/internal-complibs") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DPREFER_EXTERNAL_LZ4=ON -DPREFER_EXTERNAL_ZLIB=ON -DPREFER_EXTERNAL_ZSTD=ON -DBUILD_TESTS=OFF -DBUILD_FUZZERS=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_STATIC=${BLOSC_STATIC} -DBUILD_SHARED=${BLOSC_SHARED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/blosc-config.cmake" [[# Generated by CMake]] [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(lz4 CONFIG) find_dependency(zstd CONFIG) find_dependency(Snappy CONFIG) find_dependency(ZLIB) find_dependency(Threads)]] ) # cleanup file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/blosc/vcpkg.json ================================================ { "name": "blosc", "version": "1.21.6", "description": "A blocking, shuffling and loss-less compression library that can be faster than `memcpy()`", "homepage": "https://github.com/Blosc/c-blosc", "license": "BSD-3-Clause", "dependencies": [ "lz4", "snappy", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/blosc2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Blosc/c-blosc2 REF "v${VERSION}" SHA512 c6dd74c6f31649d361395b4817a2ca2e0da5353c5cd3ef7ce5f3969251b3393aaf3c2941cc77dd41a9672efb8acc7f68a9e5e8acf86b978123eed13a1225f827 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BLOSC2_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BLOSC2_SHARED) file(REMOVE_RECURSE "${SOURCE_PATH}/internal-complibs") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES zlib DEACTIVATE_ZLIB zstd DEACTIVATE_ZSTD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPREFER_EXTERNAL_LZ4=ON -DPREFER_EXTERNAL_ZLIB=ON -DPREFER_EXTERNAL_ZSTD=ON -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB_NG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_LZ4=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZSTD=ON -DBUILD_TESTS=OFF -DBUILD_FUZZERS=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_STATIC=${BLOSC2_STATIC} -DBUILD_SHARED=${BLOSC2_SHARED} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_ZLIB_NG CMAKE_REQUIRE_FIND_PACKAGE_ZLIB CMAKE_REQUIRE_FIND_PACKAGE_ZSTD ) vcpkg_cmake_install() vcpkg_copy_pdbs() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH "cmake") else() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Blosc2") endif() vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/Modules") # Find modules that should not be used by vcpkg. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/blosc2/usage ================================================ blosc2 provides CMake targets: find_package(Blosc2 CONFIG REQUIRED) target_link_libraries(main PRIVATE Blosc2::blosc2) ================================================ FILE: ports/blosc2/vcpkg.json ================================================ { "name": "blosc2", "version": "2.23.1", "description": "A fast, compressed, persistent binary data store library for C.", "homepage": "https://github.com/Blosc/c-blosc2", "license": "BSD-3-Clause", "dependencies": [ "lz4", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "zlib", "zstd" ], "features": { "zlib": { "description": "Support zlib compression", "dependencies": [ "zlib" ] }, "zstd": { "description": "Support zstd compression", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/blpapi/portfile.cmake ================================================ # According to Bloomberg Helpdesk on 2023-07-18, the last digit of the version string is just a build identifier, # not an actual version identifier, and can be different between the latest Linux and Windows distfiles. if (VCPKG_TARGET_IS_LINUX) vcpkg_download_distfile(ARCHIVE URLS "https://blpapi.bloomberg.com/download/releases/raw/files/blpapi_cpp_${VERSION}.1-linux.tar.gz" FILENAME "blpapi_cpp_${VERSION}.1-linux.tar.gz" SHA512 3D1FC0E8E37E21EE53310649EA7D915A4E991DD2FCA400FCD5E490C4533F6C83710426C5D98927631BBDB2622D9FFA864096C82F275DC1C547FCAFE9D1013895 ) elseif (VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile(ARCHIVE URLS "https://blpapi.bloomberg.com/download/releases/raw/files/blpapi_cpp_${VERSION}.1-windows.zip" FILENAME "blpapi_cpp_${VERSION}.1-windows.zip" SHA512 ED57BF390417D6ED189A3D4379DAE5716441627B20C63B8BEBAAC0AD66C32B89D17697B1C5CE79010F7FFF3F71BC6EC57D15A5D79B597F3507A0A4D2658A6103 ) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES update-blpapi-lib-include-dir.patch ) if ("${VCPKG_TARGET_ARCHITECTURE}" MATCHES "x86") set(BITS_SUFFIX 32) elseif ("${VCPKG_TARGET_ARCHITECTURE}" MATCHES "x64") set(BITS_SUFFIX 64) else() message(FATAL_ERROR "Unrecognized architecture.") endif() if (VCPKG_TARGET_IS_LINUX) file(GLOB SO_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/Linux/*${BITS_SUFFIX}.so") else() file(GLOB DLL_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/lib/*${BITS_SUFFIX}.dll") file(GLOB LIB_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/lib/*${BITS_SUFFIX}.lib") endif() if (VCPKG_TARGET_IS_LINUX) file(COPY ${SO_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if (NOT VCPKG_BUILD_TYPE) file(COPY ${SO_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() else() file(COPY ${DLL_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY ${LIB_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if (NOT VCPKG_BUILD_TYPE) file(COPY ${DLL_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY ${LIB_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() endif() file(COPY "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") file(GLOB CMAKE_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/cmake/*.cmake") file(COPY ${CMAKE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/blpapi/update-blpapi-lib-include-dir.patch ================================================ diff --git a/cmake/blpapiTargets-release.cmake b/cmake/blpapiTargets-release.cmake index 12bcaa6..af5c135 100644 --- a/cmake/blpapiTargets-release.cmake +++ b/cmake/blpapiTargets-release.cmake @@ -5,21 +5,18 @@ # Import targets for configuration "Release". # Path to blpapi shared object in relation to blpapiConfig.cmake: -# 1. On Windows -# a. For release ../lib/ -# 2. On other platforms -# a. For release ..//. For example for linux it is ../Linux/ +# 1. For release ../../lib/ # Windows if(WIN32) set(_BLPAPI_SHARED_OBJ_NAME "${_BLPAPI_PREFIX}_${_ARCH}.dll") set(_BLPAPI_SHARED_IMP_OBJ_NAME "${_BLPAPI_PREFIX}_${_ARCH}.lib") - set(_BLPAPI_SHARED_OBJ "${_BLPAPI_CONFIG_CMAKE_DIR}/../lib/${_BLPAPI_SHARED_OBJ_NAME}") - set(_BLPAPI_IMP_OBJ "${_BLPAPI_CONFIG_CMAKE_DIR}/../lib/${_BLPAPI_SHARED_IMP_OBJ_NAME}") + set(_BLPAPI_SHARED_OBJ "${_BLPAPI_CONFIG_CMAKE_DIR}/../../bin/${_BLPAPI_SHARED_OBJ_NAME}") + set(_BLPAPI_IMP_OBJ "${_BLPAPI_CONFIG_CMAKE_DIR}/../../lib/${_BLPAPI_SHARED_IMP_OBJ_NAME}") else() # Other platforms set(_BLPAPI_SHARED_OBJ_NAME "lib${_BLPAPI_PREFIX}_${_ARCH}.so") set(_BLPAPI_SHARED_OBJ - "${_BLPAPI_CONFIG_CMAKE_DIR}/../${CMAKE_SYSTEM_NAME}/${_BLPAPI_SHARED_OBJ_NAME}") + "${_BLPAPI_CONFIG_CMAKE_DIR}/../../lib/${_BLPAPI_SHARED_OBJ_NAME}") endif() set_property(TARGET blpapi APPEND PROPERTY IMPORTED_LOCATION "${_BLPAPI_SHARED_OBJ}") diff --git a/cmake/blpapiTargets.cmake b/cmake/blpapiTargets.cmake index b4c4a73..ef4421c 100644 --- a/cmake/blpapiTargets.cmake +++ b/cmake/blpapiTargets.cmake @@ -47,9 +47,9 @@ unset(_expectedTargets) # Create imported shared object target blpapi. add_library(blpapi SHARED IMPORTED) -# Include headers can be found at ../include/ from location +# Include headers can be found at ../../include/ from location # of blpapiConfig.cmake file. -set(_BLPAPI_LIB_INCLUDE_DIR "${_BLPAPI_CONFIG_CMAKE_DIR}/../include") +set(_BLPAPI_LIB_INCLUDE_DIR "${_BLPAPI_CONFIG_CMAKE_DIR}/../../include") # Add path to the include directories. set_property(TARGET blpapi APPEND PROPERTY ================================================ FILE: ports/blpapi/usage ================================================ The package blpapi provides CMake targets: find_package(blpapi CONFIG REQUIRED) target_link_libraries(main PRIVATE blpapi) ================================================ FILE: ports/blpapi/vcpkg.json ================================================ { "name": "blpapi", "version": "3.25.1", "description": "Bloomberg API Library (BLPAPI)", "homepage": "https://www.bloomberg.com/professional/support/api-library/", "supports": "(linux | (windows & !uwp)) & !static & (x86 | x64)" } ================================================ FILE: ports/bluescarni-tanuki/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bluescarni/tanuki REF 14e076abf879bcded0cc437cd09f3766969b15d1 SHA512 e847e13e757aa2eee0ed8cde584d39545786a233905f6ed30110dcfc325dfe26eeb37ee00bff4936aa311bfdd66bb3f3f58f41aafc021701c4ea056caf964ee3 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/include/tanuki/tanuki.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/bluescarni-tanuki/vcpkg.json ================================================ { "name": "bluescarni-tanuki", "version-date": "2024-08-17", "description": "A type-erasure toolkit for C++20.", "homepage": "https://github.com/bluescarni/tanuki", "license": "MPL-2.0" } ================================================ FILE: ports/boinc/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(boinc) find_package(OpenSSL REQUIRED) find_package(libzip REQUIRED) set(LIBBOINC_HEADERS_WIN lib/boinc_win.h lib/diagnostics_win.h lib/idlemon.h lib/stackwalker_imports.h lib/stackwalker_win.h ) set(LIBBOINC_HEADERS_UNIX lib/synch.h lib/unix_util.h ) set(LIBBOINC_HEADERS_APPLE lib/mac/dyld_gdb.h lib/mac/mac_backtrace.h lib/mac/mac_spawn.h lib/mac/QBacktrace.h lib/mac/QCrashReport.h lib/mac/QMachOImage.h lib/mac/QMachOImageList.h lib/mac/QSymbols.h lib/mac/QTaskMemory.h lib/mac/mac_branding.h ) set(LIBBOINC_HEADERS_GENERIC lib/app_ipc.h lib/base64.h lib/boinc_stdio.h lib/cal_boinc.h lib/cc_config.h lib/cert_sig.h lib/cl_boinc.h lib/common_defs.h lib/coproc.h lib/crypt.h lib/diagnostics.h lib/error_numbers.h lib/filesys.h lib/hostinfo.h lib/keyword.h lib/md5.h lib/md5_file.h lib/mem_usage.h lib/mfile.h lib/miofile.h lib/network.h lib/notice.h lib/opencl_boinc.h lib/parse.h lib/prefs.h lib/proc_control.h lib/procinfo.h lib/project_init.h lib/proxy_info.h lib/std_fixes.h lib/str_replace.h lib/str_util.h lib/url.h lib/util.h lib/win_util.h lib/wslinfo.h ) set(LIBBOINC_SOURCES_WIN lib/boinc_win.cpp lib/diagnostics_win.cpp lib/idlemon_win.cpp lib/procinfo_win.cpp lib/stackwalker_win.cpp lib/win_util.cpp ) set(LIBBOINC_SOURCES_UNIX lib/procinfo_unix.cpp lib/synch.cpp lib/unix_util.cpp ) set(LIBBOINC_SOURCES_APPLE lib/procinfo_mac.cpp lib/mac/mac_backtrace.cpp lib/mac/mac_spawn.cpp lib/mac/QBacktrace.c lib/mac/QCrashReport.c lib/mac/QMachOImage.c lib/mac/QMachOImageList.c lib/mac/QSymbols.c lib/mac/QTaskMemory.c lib/mac/mac_branding.cpp ) set(LIBBOINC_SOURCES_GENERIC lib/app_ipc.cpp lib/base64.cpp lib/cc_config.cpp lib/cert_sig.cpp lib/coproc.cpp lib/crypt.cpp lib/diagnostics.cpp lib/filesys.cpp lib/hostinfo.cpp lib/keyword.cpp lib/md5.cpp lib/md5_file.cpp lib/mem_usage.cpp lib/mfile.cpp lib/miofile.cpp lib/network.cpp lib/notice.cpp lib/opencl_boinc.cpp lib/parse.cpp lib/prefs.cpp lib/proc_control.cpp lib/procinfo.cpp lib/project_init.cpp lib/proxy_info.cpp lib/shmem.cpp lib/str_util.cpp lib/url.cpp lib/util.cpp lib/wslinfo.cpp ) set(LIBBOINCAPI_HEADERS api/boinc_api.h ) set(LIBBOINCAPI_SOURCES_WIN lib/boinc_win.cpp ) set(LIBBOINCAPI_SOURCES_GENERIC api/boinc_api.cpp ) set(LIBBOINCZIP_HEADERS zip/boinc_zip.h ) set(LIBBOINCZIP_SOURCES zip/boinc_zip.cpp ) if(APPLE) set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_APPLE}) set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_APPLE}) set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC}) elseif(WIN32) set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_WIN}) set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_WIN}) set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC} ${LIBBOINCAPI_SOURCES_WIN}) elseif(UNIX) set(LIBBOINC_HEADERS ${LIBBOINC_HEADERS_GENERIC} ${LIBBOINC_HEADERS_UNIX}) set(LIBBOINC_SOURCES ${LIBBOINC_SOURCES_GENERIC} ${LIBBOINC_SOURCES_UNIX}) set(LIBBOINCAPI_SOURCES ${LIBBOINCAPI_SOURCES_GENERIC}) endif() add_library(boinc ${LIBBOINC_SOURCES}) add_library(boincapi ${LIBBOINCAPI_SOURCES}) add_library(boinc_zip ${LIBBOINCZIP_SOURCES}) if(WIN32 OR APPLE) set_target_properties(boinc PROPERTIES PREFIX "lib") set_target_properties(boinc PROPERTIES IMPORT_PREFIX "lib") set_target_properties(boincapi PROPERTIES PREFIX "lib") set_target_properties(boincapi PROPERTIES IMPORT_PREFIX "lib") set_target_properties(boinc_zip PROPERTIES PREFIX "lib") set_target_properties(boinc_zip PROPERTIES IMPORT_PREFIX "lib") endif() # currently this is for MinGW only set(build_options "") if(HAVE_STRCASECMP) list(APPEND build_options "-DHAVE_STRCASECMP") endif() if(APPLE) target_include_directories(boinc PUBLIC $ $ ) target_include_directories(boincapi PUBLIC $ $ ) elseif(WIN32) target_compile_definitions(boinc PUBLIC -D_CRT_SECURE_NO_WARNINGS -DWIN32 -D_CONSOLE ${build_options} ) target_compile_definitions(boincapi PUBLIC -D_CRT_SECURE_NO_WARNINGS -DWIN32 -D_CONSOLE ${build_options} ) target_compile_definitions(boinc_zip PUBLIC -D_CRT_SECURE_NO_WARNINGS -DWIN32 -D_CONSOLE ${build_options} ) target_include_directories(boinc PUBLIC $ ) target_include_directories(boincapi PUBLIC $ ) target_include_directories(boinc_zip PUBLIC $ ) elseif(UNIX) target_include_directories(boinc PUBLIC $ ) target_include_directories(boincapi PUBLIC $ ) target_include_directories(boinc_zip PUBLIC $ ) endif() target_include_directories(boinc PUBLIC $ $ $ ) target_include_directories(boincapi PUBLIC $ $ $ ) target_include_directories(boinc_zip PUBLIC $ $ $ ) target_link_libraries(boinc PRIVATE OpenSSL::SSL OpenSSL::Crypto ) target_link_libraries(boincapi PRIVATE boinc ) target_link_libraries(boinc_zip PRIVATE libzip::zip ) install(TARGETS boinc boincapi boinc_zip EXPORT boinc-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(FILES ${LIBBOINC_HEADERS} ${LIBBOINCAPI_HEADERS} ${LIBBOINCZIP_HEADERS} DESTINATION include/boinc) install(EXPORT boinc-config NAMESPACE unofficial::boinc:: DESTINATION share/boinc) ================================================ FILE: ports/boinc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REGEX REPLACE "^([0-9]*[.][0-9]*)[.].*" "\\1" MAJOR_MINOR "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BOINC/boinc REF "client_release/${MAJOR_MINOR}/${VERSION}" SHA512 5d38adcaefc99bd79d54e7e47bcc38099844157802852b9de9eb910ce80e2f6d6b333b3ece3f6c619e3c66d9dda9a9c5a8290ce583f77e1727bd7064e81b11af HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID) vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} AUTOCONFIG NO_ADDITIONAL_PATHS OPTIONS ${OPTIONS} --disable-server --disable-client --disable-manager ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.h DESTINATION ${SOURCE_PATH}/config-h-Release) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.h DESTINATION ${SOURCE_PATH}/config-h-Debug) endif() endif() set(build_options "") if(VCPKG_TARGET_IS_MINGW) list(APPEND build_options "-DHAVE_STRCASECMP=ON") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} ${build_options} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(READ "${CURRENT_PACKAGES_DIR}/share/boinc/boinc-config.cmake" BOINC_CONFIG) file(WRITE "${CURRENT_PACKAGES_DIR}/share/boinc/boinc-config.cmake" " include(CMakeFindDependencyMacro) find_dependency(OpenSSL) find_dependency(libzip) ${BOINC_CONFIG} ") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING.LESSER" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME license) ================================================ FILE: ports/boinc/vcpkg.json ================================================ { "name": "boinc", "version": "8.2.8", "description": "Open-source software for volunteer computing and grid computing.", "homepage": "https://boinc.berkeley.edu/", "license": "LGPL-3.0-or-later", "supports": "!(windows & arm) & !uwp & !xbox", "dependencies": [ { "name": "libzip", "default-features": false }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/boolinq/portfile.cmake ================================================ # Single-file header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO k06a/boolinq REF 0df37ed90570a148c9d2395f5066313fd59247c9 #v3.0.4 SHA512 c1c23cf4e3c3f2a02a6c6ea59faf1eb223fe0a6ba840b4f306671e3e866bfd156d0a7a46542b684eeba3d9c744d678c48d4f1d7471f07fb7f1ba0bb8812f548f HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/boolinq/boolinq.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/boolinq") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/boolinq/vcpkg.json ================================================ { "name": "boolinq", "version": "3.0.4", "description": "Super tiny C++11 single-file header-only LINQ library", "homepage": "https://github.com/k06a/boolinq" } ================================================ FILE: ports/boost/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/boost/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost", "version": "1.90.0", "port-version": 1, "description": "Peer-reviewed portable C++ source libraries", "homepage": "https://boost.org", "license": "BSL-1.0", "dependencies": [ { "name": "boost-accumulators", "version>=": "1.90.0" }, { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-assign", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-beast", "platform": "!emscripten", "version>=": "1.90.0" }, { "name": "boost-bimap", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-bloom", "version>=": "1.90.0" }, { "name": "boost-callable-traits", "version>=": "1.90.0" }, { "name": "boost-charconv", "version>=": "1.90.0" }, { "name": "boost-chrono", "version>=": "1.90.0" }, { "name": "boost-circular-buffer", "version>=": "1.90.0" }, { "name": "boost-cobalt", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-compat", "version>=": "1.90.0" }, { "name": "boost-compute", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-context", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-contract", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-convert", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-coroutine", "platform": "!(arm & windows) & !uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-coroutine2", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-crc", "version>=": "1.90.0" }, { "name": "boost-date-time", "version>=": "1.90.0" }, { "name": "boost-describe", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-dll", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-dynamic-bitset", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-fiber", "platform": "!uwp & !(arm & windows) & !emscripten", "version>=": "1.90.0" }, { "name": "boost-filesystem", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-flyweight", "version>=": "1.90.0" }, { "name": "boost-foreach", "version>=": "1.90.0" }, { "name": "boost-format", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-functional", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-geometry", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-gil", "version>=": "1.90.0" }, { "name": "boost-graph", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-hana", "version>=": "1.90.0" }, { "name": "boost-hash2", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-heap", "version>=": "1.90.0" }, { "name": "boost-histogram", "version>=": "1.90.0" }, { "name": "boost-hof", "version>=": "1.90.0" }, { "name": "boost-icl", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-interprocess", "version>=": "1.90.0" }, { "name": "boost-interval", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iostreams", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-json", "version>=": "1.90.0" }, { "name": "boost-lambda", "version>=": "1.90.0" }, { "name": "boost-lambda2", "version>=": "1.90.0" }, { "name": "boost-leaf", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-local-function", "version>=": "1.90.0" }, { "name": "boost-locale", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-lockfree", "version>=": "1.90.0" }, { "name": "boost-log", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-logic", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-metaparse", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-mqtt5", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-msm", "version>=": "1.90.0" }, { "name": "boost-multi-array", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-multiprecision", "version>=": "1.90.0" }, { "name": "boost-mysql", "version>=": "1.90.0" }, { "name": "boost-nowide", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-odeint", "version>=": "1.90.0" }, { "name": "boost-openmethod", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-outcome", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-parameter-python", "platform": "!uwp & !emscripten & !ios & !android", "version>=": "1.90.0" }, { "name": "boost-parser", "version>=": "1.90.0" }, { "name": "boost-pfr", "version>=": "1.90.0" }, { "name": "boost-phoenix", "version>=": "1.90.0" }, { "name": "boost-poly-collection", "version>=": "1.90.0" }, { "name": "boost-polygon", "version>=": "1.90.0" }, { "name": "boost-pool", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-process", "platform": "!uwp & !emscripten & !android", "version>=": "1.90.0" }, { "name": "boost-program-options", "version>=": "1.90.0" }, { "name": "boost-property-map", "version>=": "1.90.0" }, { "name": "boost-property-tree", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-ptr-container", "version>=": "1.90.0" }, { "name": "boost-python", "platform": "!uwp & !emscripten & !ios & !android", "version>=": "1.90.0" }, { "name": "boost-qvm", "version>=": "1.90.0" }, { "name": "boost-random", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-ratio", "version>=": "1.90.0" }, { "name": "boost-rational", "version>=": "1.90.0" }, { "name": "boost-redis", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-safe-numerics", "version>=": "1.90.0" }, { "name": "boost-scope", "version>=": "1.90.0" }, { "name": "boost-scope-exit", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-signals2", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-sort", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-stacktrace", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-statechart", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-static-string", "version>=": "1.90.0" }, { "name": "boost-stl-interfaces", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-test", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-timer", "version>=": "1.90.0" }, { "name": "boost-tokenizer", "version>=": "1.90.0" }, { "name": "boost-tti", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-erasure", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-ublas", "version>=": "1.90.0" }, { "name": "boost-units", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" }, { "name": "boost-url", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-uuid", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" }, { "name": "boost-vmd", "version>=": "1.90.0" }, { "name": "boost-wave", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" }, { "name": "boost-xpressive", "version>=": "1.90.0" }, { "name": "boost-yap", "version>=": "1.90.0" } ], "features": { "mpi": { "description": "Build with MPI support", "dependencies": [ { "name": "boost-graph-parallel", "version>=": "1.90.0" }, { "name": "boost-mpi", "version>=": "1.90.0" }, { "name": "boost-property-map-parallel", "version>=": "1.90.0" } ] } } } ================================================ FILE: ports/boost-accumulators/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/accumulators REF boost-${VERSION} SHA512 37151e7dca60915490c8b331cfa90f8602603e551ce13b889434a18fe4f009a343472a125cd4d27df964aebbadcb333c73b953bbbb74b3bde8cf93b0a1b617fd HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-accumulators/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-accumulators", "version": "1.90.0", "port-version": 1, "description": "Boost accumulators module", "homepage": "https://www.boost.org/library/latest/accumulators/", "documentation": "https://www.boost.org/libs/accumulators", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-circular-buffer", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-ublas", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-algorithm/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/algorithm REF boost-${VERSION} SHA512 ff28a21c3ccebcb27e1d33615d90359926c71e0e7ed0eca42d91d944b582a04ef97aa59d5f50785689f06430825cca4d081c414e1853490c56a9d9bfdb8eaa63 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-algorithm/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-algorithm", "version": "1.90.0", "port-version": 1, "description": "Boost algorithm module", "homepage": "https://www.boost.org/library/latest/algorithm/", "documentation": "https://www.boost.org/libs/algorithm", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-align/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/align REF boost-${VERSION} SHA512 7acb07c7527af97fb46b3594b8193fa310323a62bdabef3e6b7d82434d2adab3cad8404d28cfa15bcd77df78de550a173da0fa6086a9a2a4f6338da781b28cfb HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-align/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-align", "version": "1.90.0", "port-version": 1, "description": "Boost align module", "homepage": "https://www.boost.org/library/latest/align/", "documentation": "https://www.boost.org/libs/align", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-any/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/any REF boost-${VERSION} SHA512 ba2b69c259ad5f3311ec8f417c42244eebeed37d609a6b586c0ee549070292cabc5d874bddef3513ca975d457f6cc8e7881946c4b737b46ecc5ea856277c629e HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-any/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-any", "version": "1.90.0", "port-version": 1, "description": "Boost any module", "homepage": "https://www.boost.org/library/latest/any/", "documentation": "https://www.boost.org/libs/any", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-array/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/array REF boost-${VERSION} SHA512 964d6b8bc25ea2f97f1c8b657d449839e8a49de8777367712d5c1fe8975ab88c90dd835993c44cb7df272848d9ef70fb6e7a34189c4721c0e297951182a957dd HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-array/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-array", "version": "1.90.0", "port-version": 1, "description": "Boost array module", "homepage": "https://www.boost.org/library/latest/array/", "documentation": "https://www.boost.org/libs/array", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-asio/0001-add-options.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d8e02fcec..e6e6d66e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,8 @@ project(boost_asio VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX) add_library(boost_asio_core INTERFACE) add_library(Boost::asio_core ALIAS boost_asio_core) +set(boost_asio_install_targets boost_asio_core) +set(boost_asio_aliases Boost::asio_core) target_include_directories(boost_asio_core INTERFACE include) @@ -27,47 +29,60 @@ target_link_libraries(boost_asio_core target_compile_features(boost_asio_core INTERFACE cxx_std_11) # deadline_timer support +option(BOOST_ASIO_SUPPORT_DEADLINE_TIMER "Support deadline_timer" ON) -add_library(boost_asio_deadline_timer INTERFACE) -add_library(Boost::asio_deadline_timer ALIAS boost_asio_deadline_timer) +if (BOOST_ASIO_SUPPORT_DEADLINE_TIMER) + add_library(boost_asio_deadline_timer INTERFACE) + add_library(Boost::asio_deadline_timer ALIAS boost_asio_deadline_timer) + list(APPEND boost_asio_install_targets boost_asio_deadline_timer) + list(APPEND boost_asio_aliases Boost::asio_deadline_timer) -target_include_directories(boost_asio_deadline_timer INTERFACE include) + target_include_directories(boost_asio_deadline_timer INTERFACE include) -target_link_libraries(boost_asio_deadline_timer - INTERFACE - Boost::asio_core - Boost::date_time -) + target_link_libraries(boost_asio_deadline_timer + INTERFACE + Boost::asio_core # Internal dependency (this comment disables adding the internal library to the dependency list in BoostRoot.cmake) + $ + ) -target_compile_features(boost_asio_deadline_timer INTERFACE cxx_std_11) + target_compile_features(boost_asio_deadline_timer INTERFACE cxx_std_11) +else() + target_compile_definitions(boost_asio_core INTERFACE BOOST_ASIO_DISABLE_BOOST_DATE_TIME) +endif() # spawn (stackful coroutines) support +option(BOOST_ASIO_SUPPORT_SPAWN "Support spawn (stackful coroutines)" ON) -add_library(boost_asio_spawn INTERFACE) -add_library(Boost::asio_spawn ALIAS boost_asio_spawn) +if (BOOST_ASIO_SUPPORT_SPAWN) + add_library(boost_asio_spawn INTERFACE) + add_library(Boost::asio_spawn ALIAS boost_asio_spawn) + list(APPEND boost_asio_install_targets boost_asio_spawn) + list(APPEND boost_asio_aliases Boost::asio_spawn) -target_include_directories(boost_asio_spawn INTERFACE include) + target_include_directories(boost_asio_spawn INTERFACE include) -target_link_libraries(boost_asio_spawn - INTERFACE - Boost::asio_core - Boost::context -) + target_link_libraries(boost_asio_spawn + INTERFACE + Boost::asio_core # Internal dependency + $ + ) -target_compile_features(boost_asio_spawn INTERFACE cxx_std_11) + target_compile_features(boost_asio_spawn INTERFACE cxx_std_11) +else() + target_compile_definitions(boost_asio_core INTERFACE BOOST_ASIO_DISABLE_BOOST_CONTEXT_FIBER) +endif() # the works add_library(boost_asio INTERFACE) add_library(Boost::asio ALIAS boost_asio) +list(APPEND boost_asio_install_targets boost_asio) target_include_directories(boost_asio INTERFACE include) target_link_libraries(boost_asio INTERFACE - Boost::asio_core - Boost::asio_deadline_timer - Boost::asio_spawn + ${boost_asio_aliases} ) target_compile_features(boost_asio INTERFACE cxx_std_11) @@ -75,10 +90,7 @@ target_compile_features(boost_asio INTERFACE cxx_std_11) if (BOOST_SUPERPROJECT_VERSION AND NOT CMAKE_VERSION VERSION_LESS 3.13) boost_install( TARGETS - boost_asio_core - boost_asio_deadline_timer - boost_asio_spawn - boost_asio + ${boost_asio_install_targets} VERSION "${BOOST_SUPERPROJECT_VERSION}" HEADER_DIRECTORY ================================================ FILE: ports/boost-asio/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "deadline-timer" BOOST_ASIO_SUPPORT_DEADLINE_TIMER "spawn" BOOST_ASIO_SUPPORT_SPAWN ) ================================================ FILE: ports/boost-asio/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/asio REF boost-${VERSION} SHA512 6abf7d50b04eb7c1e51f98c2fb215418be4544f2405332f6458c5163f6ed85dac63dc9d76df806973265794ff043635f41202c9c12a1a1eba478d497464b0f46 HEAD_REF master PATCHES 0001-add-options.patch ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-asio/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-asio", "version": "1.90.0", "port-version": 1, "description": "Boost asio module", "homepage": "https://www.boost.org/library/latest/asio/", "documentation": "https://www.boost.org/libs/asio", "license": "BSL-1.0", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ], "default-features": [ "deadline-timer", { "name": "spawn", "platform": "!uwp & !emscripten" } ], "features": { "deadline-timer": { "description": "Build with deadline_timer support", "dependencies": [ { "name": "boost-date-time", "version>=": "1.90.0" } ] }, "spawn": { "description": "Build with spawn (stackful coroutines) support", "dependencies": [ { "name": "boost-context", "platform": "!uwp & !emscripten", "version>=": "1.90.0" } ] }, "ssl": { "description": "Build with SSL support", "dependencies": [ { "name": "openssl", "platform": "!emscripten" } ] } } } ================================================ FILE: ports/boost-assert/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/assert REF boost-${VERSION} SHA512 8b0e85105d723d1ad660e0f59c4ac4a0eec25d75563b55579a278a3d672e85854211351bba1d46fe89ab30d0f140b7c757de958f06594b74cb768769630e5a39 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-assert/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-assert", "version": "1.90.0", "port-version": 1, "description": "Boost assert module", "homepage": "https://www.boost.org/library/latest/assert/", "documentation": "https://www.boost.org/libs/assert", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-assign/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/assign REF boost-${VERSION} SHA512 743e1ac65c98f7dae0185d192f232da005ed263bc1fad9af6019b1e6ad4f0ba139890006d7d6d39f8672b4cedb868dbdc4612e7d8dbdc2cbf4909fc42781612b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-assign/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-assign", "version": "1.90.0", "port-version": 1, "description": "Boost assign module", "homepage": "https://www.boost.org/library/latest/assign/", "documentation": "https://www.boost.org/libs/assign", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-ptr-container", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-atomic/fix-include.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cf6dc658f2..4e976a3676 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,8 @@ find_package(Threads REQUIRED) # official monolithic Boost distribution tree). include(cmake/BoostLibraryIncludes.cmake) +list(APPEND BOOST_LIBRARY_INCLUDES "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") + set(boost_atomic_sources src/lock_pool.cpp) set(CMAKE_REQUIRED_INCLUDES ${BOOST_LIBRARY_INCLUDES}) ================================================ FILE: ports/boost-atomic/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/atomic REF boost-${VERSION} SHA512 ce478eec6f3d822076157bfe0828b435793d418bf9120c3834ac4cc7871ec0295f412521d5e1c2aee2ada3e744cd484148f00c69f8697af4ef8ee0196f80832a HEAD_REF master PATCHES fix-include.patch ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-atomic/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-atomic", "version": "1.90.0", "port-version": 1, "description": "Boost atomic module", "homepage": "https://www.boost.org/library/latest/atomic/", "documentation": "https://www.boost.org/libs/atomic", "license": "BSL-1.0", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-beast/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/beast REF boost-${VERSION} SHA512 465d4abec235a3449d42f9c5bb211beb7ff2d6112b28aee7caae92869e9a77a3166ff15620bfe8a6e168ff591bb7bd6fa4cec9e86b1cde84cd11896ffc0d7be2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-beast/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-beast", "version": "1.90.0", "port-version": 1, "description": "Boost beast module", "homepage": "https://www.boost.org/library/latest/beast/", "documentation": "https://www.boost.org/libs/beast", "license": "BSL-1.0", "supports": "!emscripten", "dependencies": [ { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-logic", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-string", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-bimap/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/bimap REF boost-${VERSION} SHA512 59a0ed49e2bc54452e007b0f009191d68e78f3eb375b9570fa511dc8f30b5ffb14ea8e30b3ba74ce30c727b777345f2b689573bf3f43a28170cd8f734cfc9d2f HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-bimap/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-bimap", "version": "1.90.0", "port-version": 1, "description": "Boost bimap module", "homepage": "https://www.boost.org/library/latest/bimap/", "documentation": "https://www.boost.org/libs/bimap", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lambda", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-bind/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/bind REF boost-${VERSION} SHA512 0f46e00c7c6846b8a31fe56b63484a6fab840816d2395f4a70742e9677f9e4b969ff81796c001ddc4b2a0ba483905ee5c7881d37207388e0dd32ad311c76e1a0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-bind/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-bind", "version": "1.90.0", "port-version": 1, "description": "Boost bind module", "homepage": "https://www.boost.org/library/latest/bind/", "documentation": "https://www.boost.org/libs/bind", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-bloom/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/bloom REF boost-${VERSION} SHA512 7357380de08e282e52a24342d72c524a7a70d200cd1db1b959f213b729f8248d208139a32555f57dd2244f2fb34e3530ec2aa32874717881e1b9d949e32506d3 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-bloom/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-bloom", "version": "1.90.0", "port-version": 1, "description": "Boost bloom module", "homepage": "https://www.boost.org/library/latest/bloom/", "documentation": "https://www.boost.org/libs/bloom", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-build/0001-fix-get-version.patch ================================================ diff --git a/src/tools/clang-linux.jam b/src/tools/clang-linux.jam index ce270c584..f93d1fa86 100644 --- a/src/tools/clang-linux.jam +++ b/src/tools/clang-linux.jam @@ -123,7 +123,7 @@ rule init ( version ? : command * : options * ) { rule get-full-version ( command-string ) { - return [ common.match-command-output version : "version ([0-9.]+)" + return [ common.match-command-output version : "([0-9]+.[0-9]+.[0-9]+)" : "$(command-string) --version" ] ; } ================================================ FILE: ports/boost-build/0002-fix-emscripten.patch ================================================ diff --git a/src/tools/emscripten.jam b/src/tools/emscripten.jam index 0ed289fae..4bd6c589a 100644 --- a/src/tools/emscripten.jam +++ b/src/tools/emscripten.jam @@ -34,6 +34,7 @@ support instead of native WebAssembly exception handling. import feature ; import os ; import toolset ; +import generators ; import common ; import type ; import version ; @@ -41,6 +42,9 @@ import args ; feature.extend toolset : emscripten ; +generators.override builtin.lib-generator : emscripten.prebuilt ; +generators.override emscripten.searched-lib-generator : searched-lib-generator ; + feature.feature embind : off on : propagated ; feature.feature closure : off on full : propagated ; feature.feature link-optimization : off on full : propagated ; ================================================ FILE: ports/boost-build/0003-workaround-MSVC-codegen-bug-in-17.5-on-ARM64.patch ================================================ From 1004fb82914b8295fe4ec43afb510994babf2161 Mon Sep 17 00:00:00 2001 From: Matt Gardner Date: Fri, 17 Mar 2023 15:09:17 -0700 Subject: [PATCH] workaround MSVC codegen bug in 17.5 on ARM64 --- src/engine/glob.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/engine/glob.cpp b/src/engine/glob.cpp index bec00ee56..1ce66c7e6 100644 --- a/src/engine/glob.cpp +++ b/src/engine/glob.cpp @@ -111,6 +111,9 @@ int glob( const char * c, const char * s ) * globchars() - build a bitlist to check for character group match. */ +#if defined(_MSC_VER) && _MSC_VER == 1935 && defined(_M_ARM64) +__declspec(noinline) +#endif static void globchars( const char * s, const char * e, char * b ) { int neg = 0; -- 2.33.0.vfs.0.0 ================================================ FILE: ports/boost-build/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") return() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/build REF boost-${VERSION} SHA512 7244e0e775b20bd8ed48d7da6c4bcaa529743b4f5a2eae65ac0b743491efe32820f8d4ec9dc6d6408c899e217c28712713239af7ec881a6405d818af936da050 HEAD_REF master PATCHES 0001-fix-get-version.patch 0002-fix-emscripten.patch 0003-workaround-MSVC-codegen-bug-in-17.5-on-ARM64.patch ) # This fixes the lib path to use desktop libs instead of uwp -- TODO: improve this with better "host" compilation string(REPLACE "\\store\\;" "\\;" LIB "$ENV{LIB}") set(ENV{LIB} "${LIB}") file(COPY ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build ) file(READ "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" _contents) string(REPLACE " /ZW /EHsc " "" _contents "${_contents}") string(REPLACE "-nologo" "" _contents "${_contents}") string(REPLACE "/nologo" "" _contents "${_contents}") string(REPLACE "/Zm800" "" _contents "${_contents}") string(REPLACE "_WIN32_WINNT=0x0602" "" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" "${_contents}") message(STATUS "Bootstrapping...") if(CMAKE_HOST_WIN32) if(VCPKG_TARGET_IS_MINGW) set(TOOLSET mingw) else() set(TOOLSET msvc) endif() vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.bat" ${TOOLSET} WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build LOGNAME bootstrap-${TARGET_TRIPLET} ) else() vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.sh" WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build LOGNAME bootstrap-${TARGET_TRIPLET} ) endif() vcpkg_download_distfile(BOOST_LICENSE URLS "https://raw.githubusercontent.com/boostorg/boost/refs/tags/boost-${VERSION}/LICENSE_1_0.txt" FILENAME "boost-${VERSION}-LICENSE_1_0.txt" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) vcpkg_install_copyright(FILE_LIST "${BOOST_LICENSE}") ================================================ FILE: ports/boost-build/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-build", "version": "1.90.0", "port-version": 1, "description": "Boost build module", "homepage": "https://github.com/boostorg/build", "license": "BSL-1.0", "dependencies": [ { "name": "boost-uninstall", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-callable-traits/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/callable_traits REF boost-${VERSION} SHA512 d43d2444824c3dd6eb1101f1fbaf1642f0481c1a596d91ad726c28a7841122c1692380e087c19ebaeeb4841d74b7e1b8e71df89816ca39168238ce4eb943d508 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-callable-traits/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-callable-traits", "version": "1.90.0", "port-version": 1, "description": "Boost callable_traits module", "homepage": "https://www.boost.org/library/latest/callable_traits/", "documentation": "https://www.boost.org/libs/callable_traits", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-charconv/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/charconv REF boost-${VERSION} SHA512 4ffc03fb485847a1ee00214c4abd47465608e83c2ba8b91c79f37403988e244cc3d42a30268b7dbdb4090e75b9e8b8e3a5139687b94a148deca4186f5c7de03d HEAD_REF master ) set(FEATURE_OPTIONS "") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND VCPKG_TARGET_IS_MINGW) # when cross compile, cmake generates the error try_run() invoked in cross-compiling mode list(APPEND FEATURE_OPTIONS "-DBOOST_CHARCONV_QUADMATH_FOUND_EXITCODE=0") endif() boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-charconv/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-charconv", "version": "1.90.0", "port-version": 1, "description": "Boost charconv module", "homepage": "https://www.boost.org/library/latest/charconv/", "documentation": "https://www.boost.org/libs/charconv", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-chrono/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/chrono REF boost-${VERSION} SHA512 6402b4dd9ec8eefeb365bbffe81e5a6a17ca0db9a9b0b2f9e94da25866a99848016a347f4855788f4101af5ba69bdff7883f162246ecf1a38f1316c542e61aca HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-chrono/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-chrono", "version": "1.90.0", "port-version": 1, "description": "Boost chrono module", "homepage": "https://www.boost.org/library/latest/chrono/", "documentation": "https://www.boost.org/libs/chrono", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-ratio", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-circular-buffer/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/circular_buffer REF boost-${VERSION} SHA512 ef19ddfbba0b84cc3deb4a6ca06409521906aa944a79044a07d4835b5b18de72ed7d55d719e391fa1b6984097b6ceb45271375a5f38f12fde4970f7030d7858a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-circular-buffer/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-circular-buffer", "version": "1.90.0", "port-version": 1, "description": "Boost circular_buffer module", "homepage": "https://www.boost.org/library/latest/circular_buffer/", "documentation": "https://www.boost.org/libs/circular_buffer", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-cmake/0001-vcpkg-build.patch ================================================ diff --git a/include/BoostRoot.cmake b/include/BoostRoot.cmake index 25bcbc4..3f58622 100644 --- a/include/BoostRoot.cmake +++ b/include/BoostRoot.cmake @@ -26,7 +26,7 @@ set(__boost_incompatible_libraries "") # Define cache variables if root project -if(CMAKE_SOURCE_DIR STREQUAL Boost_SOURCE_DIR) +if(1) # --with- set(BOOST_INCLUDE_LIBRARIES "" CACHE STRING @@ -217,6 +217,9 @@ function(__boost_scan_dependencies lib var sub_folder) # Libraries that define at least one library with a name like "_" set(prefix_names "asio" "dll" "fiber" "log" "regex" "stacktrace") set(result "") + set(required_components "") + set(optional_components "") + set(exclude_components "") set(cml_files "${BOOST_SUPERPROJECT_SOURCE_DIR}/libs/${lib}") if(sub_folder) @@ -245,6 +248,11 @@ function(__boost_scan_dependencies lib var sub_folder) foreach(dep IN LISTS libs) string(REGEX REPLACE "^Boost::" "" dep ${dep}) + # Check if this dependency is optional in the original line + set(_is_optional OFF) + if(line MATCHES "\\$") + set(_is_optional ON) + endif() if(dep STREQUAL "headers" OR dep STREQUAL "boost" OR dep MATCHES "linking") continue() endif() @@ -263,11 +271,21 @@ function(__boost_scan_dependencies lib var sub_folder) endif() endforeach() endif() + + set(component_name ${dep}) + string(REGEX REPLACE "^numeric/" "numeric_" component_name ${component_name}) + if(NOT dep STREQUAL lib) if(type STREQUAL "Exclude") list(APPEND libs_to_exclude ${dep}) + list(APPEND exclude_components ${component_name}) else() list(APPEND result ${dep}) + if(_is_optional) + list(APPEND optional_components ${component_name}) + else() + list(APPEND required_components ${component_name}) + endif() endif() endif() endforeach() @@ -280,7 +298,19 @@ function(__boost_scan_dependencies lib var sub_folder) if(libs_to_exclude) list(REMOVE_ITEM result ${libs_to_exclude}) + list(REMOVE_ITEM optional_components ${exclude_components}) + list(REMOVE_ITEM required_components ${exclude_components}) + endif() + + list(REMOVE_DUPLICATES required_components) + list(REMOVE_DUPLICATES optional_components) + list(REMOVE_ITEM required_components boost ${lib}) + if(required_components OR optional_components) + message(STATUS "boost required: " ${required_components}) + message(STATUS "boost optional: " ${optional_components}) + find_package(Boost COMPONENTS ${required_components} OPTIONAL_COMPONENTS ${optional_components} REQUIRED CONFIG) endif() + list(REMOVE_DUPLICATES result) set(${var} ${result} PARENT_SCOPE) @@ -552,33 +582,3 @@ if(CMAKE_SKIP_INSTALL_RULES) return() endif() - -set(CONFIG_INSTALL_DIR "${BOOST_INSTALL_CMAKEDIR}/Boost-${BOOST_SUPERPROJECT_VERSION}") -set(CONFIG_FILE_NAME "${CMAKE_CURRENT_LIST_DIR}/../config/BoostConfig.cmake") - -install(FILES "${CONFIG_FILE_NAME}" DESTINATION "${CONFIG_INSTALL_DIR}") - -set(CONFIG_VERSION_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/tmpinst/BoostConfigVersion.cmake") - -if(NOT CMAKE_VERSION VERSION_LESS 3.14) - - write_basic_package_version_file("${CONFIG_VERSION_FILE_NAME}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT) - -else() - - set(OLD_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) - set(CMAKE_SIZEOF_VOID_P "") - - write_basic_package_version_file("${CONFIG_VERSION_FILE_NAME}" COMPATIBILITY SameMajorVersion) - - set(CMAKE_SIZEOF_VOID_P ${OLD_CMAKE_SIZEOF_VOID_P}) - -endif() - -install(FILES "${CONFIG_VERSION_FILE_NAME}" DESTINATION "${CONFIG_INSTALL_DIR}") - -set(CPACK_PACKAGE_VENDOR "Boost") -set(CPACK_GENERATOR "TGZ") -set(CPACK_RESOURCE_FILE_LICENSE "${Boost_SOURCE_DIR}/LICENSE_1_0.txt") -set(CPACK_RESOURCE_FILE_README "${Boost_SOURCE_DIR}/README.md") -include(CPack) ================================================ FILE: ports/boost-cmake/0002-remove-prefix-and-suffix.patch ================================================ diff --git a/include/BoostInstall.cmake b/include/BoostInstall.cmake index 1127c6f..91d3a86 100644 --- a/include/BoostInstall.cmake +++ b/include/BoostInstall.cmake @@ -67,11 +67,6 @@ function(__boost_install_set_output_name LIB TYPE VERSION) set(name_debug ${LIB}) set(name_release ${LIB}) - # prefix - if(WIN32 AND TYPE STREQUAL "STATIC_LIBRARY") - set_target_properties(${LIB} PROPERTIES PREFIX "lib") - endif() - # toolset if(BOOST_INSTALL_LAYOUT STREQUAL versioned) @@ -289,14 +284,6 @@ function(boost_install_target) set(CONFIG_INSTALL_DIR "${BOOST_INSTALL_CMAKEDIR}/${LIB}-${__VERSION}") - if(TYPE STREQUAL "SHARED_LIBRARY") - string(APPEND CONFIG_INSTALL_DIR "-shared") - endif() - - if(TYPE STREQUAL "STATIC_LIBRARY") - string(APPEND CONFIG_INSTALL_DIR "-static") - endif() - install(TARGETS ${LIB} EXPORT ${LIB}-targets # explicit destination specification required for 3.13, 3.14 no longer needs it RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" @@ -466,44 +453,6 @@ function(boost_install_target) endif() - if("${LIB}" STREQUAL "boost_exception" OR "${LIB}" STREQUAL "boost_test_exec_monitor") - - # These two libraries are hardcoded to STATIC - - else() - - if(TYPE STREQUAL "SHARED_LIBRARY") - - file(APPEND "${CONFIG_VERSION_FILE_NAME}" - - "\n" - "# Do not return shared libraries when Boost_USE_STATIC_LIBS is ON\n" - "if(NOT PACKAGE_VERSION_UNSUITABLE AND Boost_USE_STATIC_LIBS)\n" - " set(PACKAGE_VERSION_UNSUITABLE TRUE)\n" - " set(PACKAGE_VERSION \"\${PACKAGE_VERSION} (shared)\")\n" - " return()\n" - "endif()\n" - ) - - endif() - - if(TYPE STREQUAL "STATIC_LIBRARY") - - file(APPEND "${CONFIG_VERSION_FILE_NAME}" - - "\n" - "# Do not return static libraries when Boost_USE_STATIC_LIBS is OFF\n" - "if(NOT PACKAGE_VERSION_UNSUITABLE AND DEFINED Boost_USE_STATIC_LIBS AND NOT Boost_USE_STATIC_LIBS)\n" - " set(PACKAGE_VERSION_UNSUITABLE TRUE)\n" - " set(PACKAGE_VERSION \"\${PACKAGE_VERSION} (static)\")\n" - " return()\n" - "endif()\n" - ) - - endif() - - endif() - install(FILES "${CONFIG_VERSION_FILE_NAME}" DESTINATION "${CONFIG_INSTALL_DIR}") endfunction() ================================================ FILE: ports/boost-cmake/CMakeLists.txt.in ================================================ cmake_minimum_required(VERSION 3.21) include(CMakePackageConfigHelpers) project(Boost VERSION @SEMVER_VERSION@ LANGUAGES NONE) set(CONFIG_VERSION_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/tmpinst/BoostConfigVersion.cmake") write_basic_package_version_file("${CONFIG_VERSION_FILE_NAME}" COMPATIBILITY SameMajorVersion ARCH_INDEPENDENT) install(FILES "${CONFIG_VERSION_FILE_NAME}" "${CMAKE_CURRENT_SOURCE_DIR}/config/BoostConfig.cmake" DESTINATION "share/boost") ================================================ FILE: ports/boost-cmake/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/cmake REF boost-${VERSION} SHA512 5476734b7dc6e7a932d7affb4009c98744d67028ee43e538026eb9744d5ab10c536b2209fb7a141867097608206ce8ac4f8a3cffe33baf0507a1b406442a1faa HEAD_REF master PATCHES 0001-vcpkg-build.patch 0002-remove-prefix-and-suffix.patch ) # Beta builds contains a text in the version string string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" SEMVER_VERSION "${VERSION}") configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in" "${SOURCE_PATH}/CMakeLists.txt" @ONLY) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost/cmake-build") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_download_distfile(BOOST_LICENSE URLS "https://raw.githubusercontent.com/boostorg/boost/refs/tags/boost-${VERSION}/LICENSE_1_0.txt" FILENAME "boost-${VERSION}-LICENSE_1_0.txt" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) vcpkg_install_copyright(FILE_LIST "${BOOST_LICENSE}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/boost-cmake/usage ================================================ All boost packages are compatible with built-in CMake targets of FindBoost.cmake: find_package(Boost REQUIRED [COMPONENTS ...]) target_link_libraries(main PRIVATE Boost::boost Boost:: Boost:: ...) ================================================ FILE: ports/boost-cmake/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-boost/vcpkg-port-config.cmake") ================================================ FILE: ports/boost-cmake/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-cmake", "version": "1.90.0", "port-version": 1, "description": "Boost cmake module", "homepage": "https://github.com/boostorg/cmake", "license": "BSL-1.0", "dependencies": [ { "name": "boost-uninstall", "version>=": "1.90.0" }, { "name": "vcpkg-boost", "host": true } ] } ================================================ FILE: ports/boost-cobalt/fail-on-compiler-not-supported.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a51d5285c..8374f911a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ project(boost_cobalt VERSION "${BOOST_COBALT_VERSION}" LANGUAGES CXX) include(cmake/CheckRequirements.cmake) if (NOT BOOST_COBALT_REQUIREMENTS_MATCHED) - return() + message(FATAL_ERROR "The current compiler is not supported.") endif() set(BOOST_COBALT_IS_ROOT OFF) ================================================ FILE: ports/boost-cobalt/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/cobalt REF boost-${VERSION} SHA512 ae932659a9834723c5ee6de5f04a254841f3a06eaa4016aa7b69792179d862093d3f09244f5bef3d0aa7f5f0129af201d469986f26ca272bf9ff19a579f8418b HEAD_REF master PATCHES fail-on-compiler-not-supported.patch ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-cobalt/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-cobalt", "version": "1.90.0", "port-version": 1, "description": "Boost cobalt module", "homepage": "https://www.boost.org/library/latest/cobalt/", "documentation": "https://www.boost.org/libs/cobalt", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-callable-traits", "version>=": "1.90.0" }, { "name": "boost-circular-buffer", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-context", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-string", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-compat/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/compat REF boost-${VERSION} SHA512 55d74362edcf9550a7a1366def56e6285b9fa2450948449dc60d10af81672c47c5820613de3d35c5220986c669315589a40bda167e935aec24faeb322bb64943 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-compat/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-compat", "version": "1.90.0", "port-version": 1, "description": "Boost compat module", "homepage": "https://www.boost.org/library/latest/compat/", "documentation": "https://www.boost.org/libs/compat", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-compute/opt-filesystem.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9afee7ff90..44f0c20256 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ target_link_libraries(boost_compute Boost::chrono Boost::config Boost::core - Boost::filesystem + $ Boost::function Boost::function_types Boost::fusion ================================================ FILE: ports/boost-compute/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/compute REF boost-${VERSION} SHA512 5e90e88b07492dae3b76d8dc1b5dcce2a2038122d5e91c48e9491810ec15d7581e3f69e6b58b5d01508c2595b0a1762f1e552fe5d0c90dd14f8453d15e52518d HEAD_REF master PATCHES opt-filesystem.diff ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-compute/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-compute", "version": "1.90.0", "port-version": 1, "description": "Boost compute module", "homepage": "https://www.boost.org/library/latest/compute/", "documentation": "https://www.boost.org/libs/compute", "license": "BSL-1.0", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-chrono", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-filesystem", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-property-tree", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-uuid", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-concept-check/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/concept_check REF boost-${VERSION} SHA512 229c68a3be6ab4391d85000229a73b305c9861c10d38772fecb6b96dcd234b0e562c81798cbc6682ba7366f1a0a0431cc731685aa2d77fe53d3c45b79c814907 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-concept-check/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-concept-check", "version": "1.90.0", "port-version": 1, "description": "Boost concept_check module", "homepage": "https://www.boost.org/library/latest/concept_check/", "documentation": "https://www.boost.org/libs/concept_check", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-config/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/config REF boost-${VERSION} SHA512 88c3b8c4e678dcd665d2327275020f6a8dfa04c8b1e3721c5f690d428cd5270bc2dd45b9066ecd61820faf65cad52656e57f6fcb5e5052b773fcd1a9e6b795d2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n") file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#undef BOOST_ALL_DYN_LINK\n") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#define BOOST_ALL_DYN_LINK\n") endif() file(COPY "${SOURCE_PATH}/libs/config/checks" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost-config") ================================================ FILE: ports/boost-config/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-config", "version": "1.90.0", "port-version": 1, "description": "Boost config module", "homepage": "https://www.boost.org/library/latest/config/", "documentation": "https://www.boost.org/libs/config", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-container/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/container REF boost-${VERSION} SHA512 35ff7d7435704d3b004970b321ffff1d59db976723de2d6543ab0788a349d9acca894655136835ed6bbd3d5027872a2b5e4faba8202adf1834688bec9ed39a1c HEAD_REF master PATCHES posix-threads.diff ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-container/posix-threads.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d08ad7f..7f56398 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,16 @@ else() set(_populate PUBLIC) endif() +if(NOT WIN32) + set(THREADS_PREFER_PTHREAD_FLAG 1) + find_package(Threads REQUIRED) + target_link_libraries(boost_container PUBLIC Threads::Threads) + if(EMSCRIPTEN) + # Boost config needs `-pthread` to see `_POSIX_THREADS`, + # but FindTheads.cmake finishes with `CMAKE_HAVE_LIBC_PTHREAD`. + target_compile_options(boost_container PUBLIC -pthread) + endif() +endif() add_library(Boost::container ALIAS boost_container) ================================================ FILE: ports/boost-container/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-container", "version": "1.90.0", "port-version": 1, "description": "Boost container module", "homepage": "https://www.boost.org/library/latest/container/", "documentation": "https://www.boost.org/libs/container", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-container-hash/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/container_hash REF boost-${VERSION} SHA512 c92d3c79ddbbb6504f90f753d17495381b7ec96e3e2b72c5503c979c5808599399471c760ecb238aecfe69e17a501f0ceaf85d4e980ac0adb55e47da179e98ec HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-container-hash/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-container-hash", "version": "1.90.0", "port-version": 1, "description": "Boost container_hash module", "homepage": "https://www.boost.org/library/latest/container_hash/", "documentation": "https://www.boost.org/libs/container_hash", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-describe", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-context/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/context REF boost-${VERSION} SHA512 f7251e7d8b4820b41b25b3f7386d6753de3a2da37397618df83aed96af500303b28aa993f46f11f77dc1d334a3bbaa14f9f63282f12c881bd68a6e5bcc3fad9c HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-context/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-context", "version": "1.90.0", "port-version": 1, "description": "Boost context module", "homepage": "https://www.boost.org/library/latest/context/", "documentation": "https://www.boost.org/libs/context", "license": "BSL-1.0", "supports": "!uwp & !emscripten", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-pool", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-contract/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/contract REF boost-${VERSION} SHA512 8880940d8cc8b2646db5c2c8ee9f5c495758a1476394e7da52f9989e22f00697064b1b00b489232596ff64cf05ca298683d84b3dd7033d309f4cc3e8da7710a2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-contract/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-contract", "version": "1.90.0", "port-version": 1, "description": "Boost contract module", "homepage": "https://www.boost.org/library/latest/contract/", "documentation": "https://www.boost.org/libs/contract", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-conversion/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/conversion REF boost-${VERSION} SHA512 e393dc411c59a0d28470cf61d81b7adfeb5d96d9fe180126943c5d6576ef15be114dc7a1d9e3a33f231d3f564c0d58432e1d275851fd34441d1956465fa7086b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-conversion/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-conversion", "version": "1.90.0", "port-version": 1, "description": "Boost conversion module", "homepage": "https://www.boost.org/library/latest/conversion/", "documentation": "https://www.boost.org/libs/conversion", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-convert/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/convert REF boost-${VERSION} SHA512 a7576af145a59f277e3875181ad82b0129e4f0b97a6439db37cf1e9718ee7781015b2a199d179b1748ce262ba0187fd0ce84ea96ce1634f711a4684a949e25c5 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-convert/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-convert", "version": "1.90.0", "port-version": 1, "description": "Boost convert module", "homepage": "https://www.boost.org/library/latest/convert/", "documentation": "https://www.boost.org/libs/convert", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-core/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/core REF boost-${VERSION} SHA512 97cad0ab032833f4627c8d6275c18410a37854cd4e12da7b9f6638b8fd16433201b4c9a863a312049152a124883a9720292453cc5c546090d813f7abff756100 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-core/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-core", "version": "1.90.0", "port-version": 1, "description": "Boost core module", "homepage": "https://www.boost.org/library/latest/core/", "documentation": "https://www.boost.org/libs/core", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-coroutine/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/coroutine REF boost-${VERSION} SHA512 7a15858f49f65bfc239c45fac4c075c00fc3ce8b0fa3d59097941c4092cb3deb55b415f18a66ea0312b66e6cf4a0d34aa3a7849440033dd192a7b01a6b512821 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-coroutine/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-coroutine", "version": "1.90.0", "port-version": 1, "description": "Boost coroutine module", "homepage": "https://www.boost.org/library/latest/coroutine/", "documentation": "https://www.boost.org/libs/coroutine", "license": "BSL-1.0", "supports": "!(arm & windows) & !uwp & !emscripten", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-context", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-coroutine2/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/coroutine2 REF boost-${VERSION} SHA512 65d1840eec0fa1601f2451c111095032e849e81935bfd6b8289f0a4602719ee02fa177f66f5580bb86906fb84b404a180fedfd22e04bb2913b603b78cb605ea8 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-coroutine2/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-coroutine2", "version": "1.90.0", "port-version": 1, "description": "Boost coroutine2 module", "homepage": "https://www.boost.org/library/latest/coroutine2/", "documentation": "https://www.boost.org/libs/coroutine2", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-context", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-crc/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/crc REF boost-${VERSION} SHA512 2ab66a21658a9aa0ca4effec00a9bf7a60e96f0efd201deead59b155d6e998cbe6488704dfc87760e2c055694204dc0508e4549724b25e02631565fd24b646ba HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-crc/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-crc", "version": "1.90.0", "port-version": 1, "description": "Boost crc module", "homepage": "https://www.boost.org/library/latest/crc/", "documentation": "https://www.boost.org/libs/crc", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-date-time/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/date_time REF boost-${VERSION} SHA512 5f373b04e994c0b7e8163dab97ae11947825d1fbfcea826a6e458a501b7322dbe4633fa478d0954bb77b60097e7cb8e1f628fb367c954784be5e3c0665940974 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-date-time/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-date-time", "version": "1.90.0", "port-version": 1, "description": "Boost date_time module", "homepage": "https://www.boost.org/library/latest/date_time/", "documentation": "https://www.boost.org/libs/date_time", "license": "BSL-1.0", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tokenizer", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-describe/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/describe REF boost-${VERSION} SHA512 5116c1659fe6ea6d9d11fec8d60b0a66befbc84aa4fd2662fd9c05ce5ed1b93ca16e9bb41d191fc0d98b7c5f5f7e02629e6a8ede51b22d65da135b04e30c40d6 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-describe/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-describe", "version": "1.90.0", "port-version": 1, "description": "Boost describe module", "homepage": "https://www.boost.org/library/latest/describe/", "documentation": "https://www.boost.org/libs/describe", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-detail/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/detail REF boost-${VERSION} SHA512 99f8b30229834d012e8d5c831848807524a787b2020b746c642f380f18d8db41fc80a32674364a0693758e098644ca1ceae78ddb885bfe90f5674a4d5032035c HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-detail/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-detail", "version": "1.90.0", "port-version": 1, "description": "Boost detail module", "homepage": "https://www.boost.org/library/latest/detail/", "documentation": "https://www.boost.org/libs/detail", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-dll/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/dll REF boost-${VERSION} SHA512 8aae293adc7ff5cf408a442673beda910902d29a1939aaa8ec6f0fa701f414744ece767cf6b0b4a3d5bf20ece02ecd23a3e2c9fd0a562502404e9f9cb9017b96 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-dll/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-dll", "version": "1.90.0", "port-version": 1, "description": "Boost dll module", "homepage": "https://www.boost.org/library/latest/dll/", "documentation": "https://www.boost.org/libs/dll", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-filesystem", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-dynamic-bitset/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/dynamic_bitset REF boost-${VERSION} SHA512 8f83eb437303308c4049268fec9f34eec2ef4dfdec5dbf6cebb0b2e62a5842f0e5cd2c965a19077d14f8b106f79ccde1574021075fb924b21867afb67dc9c655 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-dynamic-bitset/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-dynamic-bitset", "version": "1.90.0", "port-version": 1, "description": "Boost dynamic_bitset module", "homepage": "https://www.boost.org/library/latest/dynamic_bitset/", "documentation": "https://www.boost.org/libs/dynamic_bitset", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-endian/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/endian REF boost-${VERSION} SHA512 e8a8e5aa7f152bec92bd88080ce427b64cbe848b2ddd049429c197162409e03e48b9c52ead289e91bdd4d514577d4c2950a98392be7178c1db341c157e638619 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-endian/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-endian", "version": "1.90.0", "port-version": 1, "description": "Boost endian module", "homepage": "https://www.boost.org/library/latest/endian/", "documentation": "https://www.boost.org/libs/endian", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-exception/features.cmake ================================================ set(Z_VCPKG_BOOST_FORCE_HEADER_ONLY ON) ================================================ FILE: ports/boost-exception/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/exception REF boost-${VERSION} SHA512 5cbacd8c88b48141eee4e67c3b13bdf0d0592e63a38d7a748ca77cabac109a6094e478dc441ebe934c1c606c4230ab87c382f3dd9ffd95cfea416dc58591d9c0 HEAD_REF master ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-exception/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-exception", "version": "1.90.0", "port-version": 1, "description": "Boost exception module", "homepage": "https://www.boost.org/library/latest/exception/", "documentation": "https://www.boost.org/libs/exception", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-fiber/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/fiber REF boost-${VERSION} SHA512 f210f4ca3a72fc16910d81caea88a9967283f5e049988afbd85cd1d78504fa0076f59abe1908fe1b0837ef73e27f2b48f42293f3a6c7bf1723877c90a40d8370 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-fiber/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-fiber", "version": "1.90.0", "port-version": 1, "description": "Boost fiber module", "homepage": "https://www.boost.org/library/latest/fiber/", "documentation": "https://www.boost.org/libs/fiber", "license": "BSL-1.0", "supports": "!uwp & !(arm & windows) & !emscripten", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-context", "platform": "!uwp & !emscripten", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-filesystem", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-format", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" } ], "features": { "numa": { "description": "Enable NUMA support" } } } ================================================ FILE: ports/boost-filesystem/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/filesystem REF boost-${VERSION} SHA512 76fcf5d0e3490c2f986a932929362fa6ae4b86c96b1b26d024f9fdd484de76ff7934e76388b87befd107a51cdf3d9d73cbbf10d6b3569c2307a112d138a4ade0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-filesystem/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-filesystem", "version": "1.90.0", "port-version": 1, "description": "Boost filesystem module", "homepage": "https://www.boost.org/library/latest/filesystem/", "documentation": "https://www.boost.org/libs/filesystem", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-scope", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-flyweight/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/flyweight REF boost-${VERSION} SHA512 0f9083fed4115bd987e738bc164902b3f88d6a953fad04c477e854d2d7d6937712bda6381132d7699f02596dd081aa5cdf843e88b8563f8b7a850b8b8e2f8f45 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-flyweight/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-flyweight", "version": "1.90.0", "port-version": 1, "description": "Boost flyweight module", "homepage": "https://www.boost.org/library/latest/flyweight/", "documentation": "https://www.boost.org/libs/flyweight", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-interprocess", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-foreach/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/foreach REF boost-${VERSION} SHA512 84b69f7bc36a59c7aae7a01228564dda9cc3d70905390c320aa27cc63a8fd1bc94ca656a8a9785b4a9072e8a6f715714f6854eab9028231694b899e1e471827b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-foreach/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-foreach", "version": "1.90.0", "port-version": 1, "description": "Boost foreach module", "homepage": "https://www.boost.org/library/latest/foreach/", "documentation": "https://www.boost.org/libs/foreach", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-format/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/format REF boost-${VERSION} SHA512 624238059fa2f53ef9278f40ccd16849aa721bc437405947d91038d696e3b26e94ba9b24b5bbcfc1793ce85642235055b7f39ceff710b17f19d4558dd86026b1 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-format/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-format", "version": "1.90.0", "port-version": 1, "description": "Boost format module", "homepage": "https://www.boost.org/library/latest/format/", "documentation": "https://www.boost.org/libs/format", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-function/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/function REF boost-${VERSION} SHA512 9c39ecd12e64f8ed3f79e1fa233222bdf3fdc6dd338ca7a8479da948062ecb64840fba69008fe534385713e2a1fdb428d0c8c52d2eddae5a6638ef99c28ffd6f HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-function/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-function", "version": "1.90.0", "port-version": 1, "description": "Boost function module", "homepage": "https://www.boost.org/library/latest/function/", "documentation": "https://www.boost.org/libs/function", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-function-types/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/function_types REF boost-${VERSION} SHA512 e2f8f1963766d8b5f7e317780dd224632af548b9529f584bc232f2dd5742ca0a3749135ac5a1ee4fedfe61e665836e8729f0ac377a953e66e6629a4abd97ef12 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-function-types/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-function-types", "version": "1.90.0", "port-version": 1, "description": "Boost function_types module", "homepage": "https://www.boost.org/library/latest/function_types/", "documentation": "https://www.boost.org/libs/function_types", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-functional/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/functional REF boost-${VERSION} SHA512 1d4f96a5765ccdf840942983103a880cee590345dbd1cbb006a385fe84d9dfb6af5f12dc8bd9490ee78aed973c8924077f4e25dc2b5403a44b005206d409b94a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-functional/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-functional", "version": "1.90.0", "port-version": 1, "description": "Boost functional module", "homepage": "https://www.boost.org/library/latest/functional/", "documentation": "https://www.boost.org/libs/functional", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-fusion/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/fusion REF boost-${VERSION} SHA512 ec4a37bde625c84417ea4335bc7a5d39d0afc567cf7e4f644fab479090fb5b9fc331645cd089c47b32a9d3b4f8ab7715dcc4e201518edc89694fc7c06cdca287 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-fusion/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-fusion", "version": "1.90.0", "port-version": 1, "description": "Boost fusion module", "homepage": "https://www.boost.org/library/latest/fusion/", "documentation": "https://www.boost.org/libs/fusion", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-functional", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-geometry/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/geometry REF boost-${VERSION} SHA512 ab61388b4f783cb819fcd3b935078952bda0cca739376237402d65e273f567acd4f92564e3915530e418865d2b55806a273605592ff42c987c955fd82c1d1634 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-geometry/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-geometry", "version": "1.90.0", "port-version": 1, "description": "Boost geometry module", "homepage": "https://www.boost.org/library/latest/geometry/", "documentation": "https://www.boost.org/libs/geometry", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-crc", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-graph", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multiprecision", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-polygon", "version>=": "1.90.0" }, { "name": "boost-program-options", "version>=": "1.90.0" }, { "name": "boost-qvm", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-rational", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tokenizer", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-gil/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/gil REF boost-${VERSION} SHA512 6d425bd55e010353a361fc8b071b713225af0cd478d13272bf876cb3e36890b2feeeba8a8f30d83e3a7ee82c2770172f48846df1a23e5f0bc896a1b7399e1823 HEAD_REF master PATCHES remove-boost-filesystem-dep.diff ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-gil/remove-boost-filesystem-dep.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dae5c58..1c7aa96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ add_library(Boost::gil ALIAS boost_gil) target_include_directories(boost_gil INTERFACE include) +# Boost-Exclude: Boost::filesystem target_link_libraries(boost_gil INTERFACE Boost::assert @@ -27,7 +28,6 @@ target_link_libraries(boost_gil Boost::config Boost::container_hash Boost::core - Boost::filesystem Boost::integer Boost::iterator Boost::mp11 ================================================ FILE: ports/boost-gil/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-gil", "version": "1.90.0", "port-version": 1, "description": "Boost gil module", "homepage": "https://www.boost.org/library/latest/gil/", "documentation": "https://www.boost.org/libs/gil", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-graph/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/graph REF boost-${VERSION} SHA512 b5bc09eef542bfd022d6d6bf0fe41d50e8ff5c8c606f63aa4a69fb32ef9ea1295d9b616d5fa9efd7a1e8009a2e53b675bdd3abfceb27175f6b5e48818259e87b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-graph/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-graph", "version": "1.90.0", "port-version": 1, "description": "Boost graph module", "homepage": "https://www.boost.org/library/latest/graph/", "documentation": "https://www.boost.org/libs/graph", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bimap", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-foreach", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-property-map", "version>=": "1.90.0" }, { "name": "boost-property-tree", "version>=": "1.90.0" }, { "name": "boost-random", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tti", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-xpressive", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-graph-parallel/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/graph_parallel REF boost-${VERSION} SHA512 880c12f3fe8c5ac09d675ba2bd24bd98ac31911e397856508923dfeac4d4211e995d2cc39c66a689faef0d03561c2f321054a485779852b60b06db46dfb3f2ee HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-graph-parallel/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-graph-parallel", "version": "1.90.0", "port-version": 1, "description": "Boost graph_parallel module", "homepage": "https://www.boost.org/library/latest/graph_parallel/", "documentation": "https://www.boost.org/libs/graph_parallel", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-dynamic-bitset", "version>=": "1.90.0" }, { "name": "boost-filesystem", "version>=": "1.90.0" }, { "name": "boost-foreach", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-graph", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpi", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-property-map", "version>=": "1.90.0" }, { "name": "boost-property-map-parallel", "version>=": "1.90.0" }, { "name": "boost-random", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" }, "mpi" ] } ================================================ FILE: ports/boost-hana/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/hana REF boost-${VERSION} SHA512 7adedead1df94b09c81af7bf8df6fa22c95e74a47caeeab0ec6ee06fa0693446c275c74f6d045e355966ebef75245553106a5b6ad414cf58cf4559e305699d67 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-hana/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-hana", "version": "1.90.0", "port-version": 1, "description": "Boost hana module", "homepage": "https://www.boost.org/library/latest/hana/", "documentation": "https://www.boost.org/libs/hana", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-hash2/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/hash2 REF boost-${VERSION} SHA512 73c488e795afa16c54cf629cd45b59ca17d59749fe92fcc99ac7ffb50dc3efea810fd59a95831561cc5eee082ad5c738f3393bd9e2f670d3ef71f4600f7501d8 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-hash2/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-hash2", "version": "1.90.0", "port-version": 1, "description": "Boost hash2 module", "homepage": "https://www.boost.org/library/latest/hash2/", "documentation": "https://www.boost.org/libs/hash2", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-describe", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-headers/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/headers REF boost-${VERSION} SHA512 4ef845775e2277a8104ded6ddf749aa262ce52cf8438042869a048f9a0156dd772fbbcfa74efa1378fecef339b7286f6fe4b4feb5c45d49966b35d08e3e83507 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-headers/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-headers", "version": "1.90.0", "port-version": 1, "description": "Boost headers module", "homepage": "https://github.com/boostorg/headers", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-heap/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/heap REF boost-${VERSION} SHA512 57b5b20c335a6fc2092dbaf3a947b9d97ce92021bc390f8d7d53a97d7eadc60e5fa360352e69d548956c60f6e3c5f0c731f00470845dd50172f3acd210939db5 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-heap/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-heap", "version": "1.90.0", "port-version": 1, "description": "Boost heap module", "homepage": "https://www.boost.org/library/latest/heap/", "documentation": "https://www.boost.org/libs/heap", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-histogram/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/histogram REF boost-${VERSION} SHA512 e33534376550e723833841c8f7e67a212ded1f101767d0b7856cbc4bec71d82c192d57a847390b6d6656ef00abbd35e3c148596b364505be5ed95f719d77c397 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-histogram/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-histogram", "version": "1.90.0", "port-version": 1, "description": "Boost histogram module", "homepage": "https://www.boost.org/library/latest/histogram/", "documentation": "https://www.boost.org/libs/histogram", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-hof/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/hof REF boost-${VERSION} SHA512 828e7a51be0d24edc5401adb7d40ca868538cc7b16e30de817f196e5e98869bd8cb43580a34854bd004628a6137181d7ee8eb166e5c9d45ab979db53cd0a0747 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-hof/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-hof", "version": "1.90.0", "port-version": 1, "description": "Boost hof module", "homepage": "https://www.boost.org/library/latest/hof/", "documentation": "https://www.boost.org/libs/hof", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-icl/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/icl REF boost-${VERSION} SHA512 bc00be02482262c0c3280109a59532c0af23fbb26a5618b07fe04908ce67cef240531905ecf95a038f4d23ca698921b1f5355400e8963e4f8a628a2b4c402c75 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-icl/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-icl", "version": "1.90.0", "port-version": 1, "description": "Boost icl module", "homepage": "https://www.boost.org/library/latest/icl/", "documentation": "https://www.boost.org/libs/icl", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-date-time", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-rational", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-integer/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/integer REF boost-${VERSION} SHA512 a8f7f707fa82d7b471a6b16600719ed049e1abe05861d6d88397602f7c5311afbb54572300c10edf1e052c467ae930c6ee38126f4c95c0fa1fae213afbd83651 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-integer/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-integer", "version": "1.90.0", "port-version": 1, "description": "Boost integer module", "homepage": "https://www.boost.org/library/latest/integer/", "documentation": "https://www.boost.org/libs/integer", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-interprocess/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/interprocess REF boost-${VERSION} SHA512 08614ab2aa31c0dfcc30e0e5413e5887998da677b8be2e46cc970abd413a6d6ce7907d9dacf4899d27bbc7794b1aa95af1b3b33e1bab10d167a4b0c8b090bd2b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-interprocess/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-interprocess", "version": "1.90.0", "port-version": 1, "description": "Boost interprocess module", "homepage": "https://www.boost.org/library/latest/interprocess/", "documentation": "https://www.boost.org/libs/interprocess", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-interval/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/interval REF boost-${VERSION} SHA512 a9ddf6e77143235eb262f36c43e3776ddd75e4006e5db2c9545f9a037b0ddd2c514a181b3eba99cb7b5fe1869d0332e858c39a8b4e39fac84366ff2b032c8662 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-interval/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-interval", "version": "1.90.0", "port-version": 1, "description": "Boost interval module", "homepage": "https://www.boost.org/library/latest/numericinterval/", "documentation": "https://www.boost.org/libs/numeric/interval", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-logic", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-intrusive/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/intrusive REF boost-${VERSION} SHA512 38fc4a5125a1a5363c312056df331577e42ab39d1a61ea5d6365f3525be4864baf0b3a3a27352161e43ddfcf96439e3b5fe963ab3476a24689ea99c09d1b54c0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-intrusive/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-intrusive", "version": "1.90.0", "port-version": 1, "description": "Boost intrusive module", "homepage": "https://www.boost.org/library/latest/intrusive/", "documentation": "https://www.boost.org/libs/intrusive", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-io/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/io REF boost-${VERSION} SHA512 9198afa4c91e1b68474920d75265eaf53694878e189dd27c0e202a8a78b4bdb2e00f84ba4b1d4aa36c544df5f21bb39f88ddb881b20de22ae740f1463b6990d6 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-io/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-io", "version": "1.90.0", "port-version": 1, "description": "Boost io module", "homepage": "https://www.boost.org/library/latest/io/", "documentation": "https://www.boost.org/libs/io", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-iostreams/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "bzip2" BOOST_IOSTREAMS_ENABLE_BZIP2 "lzma" BOOST_IOSTREAMS_ENABLE_LZMA "zlib" BOOST_IOSTREAMS_ENABLE_ZLIB "zstd" BOOST_IOSTREAMS_ENABLE_ZSTD ) ================================================ FILE: ports/boost-iostreams/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/iostreams REF boost-${VERSION} SHA512 771fdd29afbf163353af32c2a989cf2c6137060871b4430798f27ec0f12c67c235295723aa4cf7b3f3edb859914fbc9c1625788bd0f1205096353370d7cb48dd HEAD_REF master ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") if (BOOST_IOSTREAMS_ENABLE_ZSTD AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd_static") endif() boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-iostreams/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-iostreams", "version": "1.90.0", "port-version": 1, "description": "Boost iostreams module", "homepage": "https://www.boost.org/library/latest/iostreams/", "documentation": "https://www.boost.org/libs/iostreams", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-random", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ], "default-features": [ "bzip2", "lzma", "zlib", "zstd" ], "features": { "bzip2": { "description": "Support bzip2 filters", "dependencies": [ "bzip2" ] }, "lzma": { "description": "Support LZMA/xz filters", "dependencies": [ "liblzma" ] }, "zlib": { "description": "Support zlib filters", "dependencies": [ "zlib" ] }, "zstd": { "description": "Support zstd filters", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/boost-iterator/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/iterator REF boost-${VERSION} SHA512 f3496a8fb703439fb120c183a25f2d4e4cc1b64d115994a5228f2fbf776c0577348d1bbfbb098a19f8ea29056aca32c4e41149a419d12b06d3edccb1d3256364 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-iterator/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-iterator", "version": "1.90.0", "port-version": 1, "description": "Boost iterator module", "homepage": "https://www.boost.org/library/latest/iterator/", "documentation": "https://www.boost.org/libs/iterator", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-json/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/json REF boost-${VERSION} SHA512 32518027522a27645aa84536efc34eec7ccaa9dba0b0b95e745f83c423055080891529fbc8e8735b5ee8d486f2b6a7be87fbf34db45fd2ec86d20a9ad77e57d1 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-json/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-json", "version": "1.90.0", "port-version": 1, "description": "Boost json module", "homepage": "https://www.boost.org/library/latest/json/", "documentation": "https://www.boost.org/libs/json", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-describe", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-lambda/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/lambda REF boost-${VERSION} SHA512 4d2095187a4febd6f73039855f91664f6ddf6165f838f5e845810ce70089b391d52e07ff882ff3efc0d781e62f0ca3bbe8bbbb806b1c7424fcf22929c43670c0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-lambda/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-lambda", "version": "1.90.0", "port-version": 1, "description": "Boost lambda module", "homepage": "https://www.boost.org/library/latest/lambda/", "documentation": "https://www.boost.org/libs/lambda", "license": "BSL-1.0", "dependencies": [ { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-lambda2/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/lambda2 REF boost-${VERSION} SHA512 6c84358ca5cd6422157b7c54b84934949a53b2321829988031b2a4a8148100603376793db77cacdfd0ba4d23683baabaedd48b538be098075b8534f425089c20 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-lambda2/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-lambda2", "version": "1.90.0", "port-version": 1, "description": "Boost lambda2 module", "homepage": "https://www.boost.org/library/latest/lambda2/", "documentation": "https://www.boost.org/libs/lambda2", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-leaf/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/leaf REF boost-${VERSION} SHA512 902e40b9f1287260a97271d0d1554ce08bd08b868162689f0c0ae77c00f88ca75c8636cd822c7ea4b5a08b59f0e3c3d61a737be12be257bb37cd008c6673c489 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-leaf/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-leaf", "version": "1.90.0", "port-version": 1, "description": "Boost leaf module", "homepage": "https://www.boost.org/library/latest/leaf/", "documentation": "https://www.boost.org/libs/leaf", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-lexical-cast/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/lexical_cast REF boost-${VERSION} SHA512 14c81e1a80c5091a4ba25a7d447dccb855599e45e7299f74cfa9366237c6e0cbb0436af6350f7a1eed576ddd6053966c49ea7b9fdcd0b22f82616b4f155ca307 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-lexical-cast/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-lexical-cast", "version": "1.90.0", "port-version": 1, "description": "Boost lexical_cast module", "homepage": "https://www.boost.org/library/latest/lexical_cast/", "documentation": "https://www.boost.org/libs/lexical_cast", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-local-function/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/local_function REF boost-${VERSION} SHA512 79739654bebeac8ca098032ed5ac95ec6978cb48ac2a8416bf88e53521c01d8f1e8ad1270459b1d15ecfb23ed92c6e505109f33b3ab01be243ff39be0c198a36 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-local-function/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-local-function", "version": "1.90.0", "port-version": 1, "description": "Boost local_function module", "homepage": "https://www.boost.org/library/latest/local_function/", "documentation": "https://www.boost.org/libs/local_function", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-scope-exit", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-locale/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "icu" BOOST_LOCALE_ENABLE_ICU ) if(VCPKG_TARGET_IS_WINDOWS) set(BOOST_LOCALE_ENABLE_ICONV off) set(BOOST_LOCALE_ENABLE_POSIX off) else() set(BOOST_LOCALE_ENABLE_ICONV on) if(VCPKG_TARGET_IS_ANDROID) set(BOOST_LOCALE_ENABLE_POSIX off) else() set(BOOST_LOCALE_ENABLE_POSIX on) endif() endif() list(APPEND FEATURE_OPTIONS -DBOOST_LOCALE_ENABLE_ICONV=${BOOST_LOCALE_ENABLE_ICONV} -DBOOST_LOCALE_ENABLE_POSIX=${BOOST_LOCALE_ENABLE_POSIX} ) # BOOST_LOCALE_ENABLE_ICU # When ON, enables the ICU backend. Defaults to ON when ICU is found, OFF otherwise. # BOOST_LOCALE_ENABLE_ICONV # When ON, enables the Iconv backend. Defaults to ON when iconv is found, OFF otherwise. # BOOST_LOCALE_ENABLE_POSIX # When ON, enables the POSIX backend. Defaults to ON on POSIX systems, OFF otherwise. # BOOST_LOCALE_ENABLE_STD # When ON, enables the std::locale backend. Defaults to ON. # BOOST_LOCALE_ENABLE_WINAPI # When ON, enables the Windows API backend. Defaults to ON under Windows, OFF otherwise. ================================================ FILE: ports/boost-locale/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/locale REF boost-${VERSION} SHA512 63c194297d74aa38bf7ed88957841830fcdb14ef49b3f5e14f85d03f6577352da69a7f6ff7cb8da43f57e3eb2d2fb02f21ac2b51266da0083cdbf52fb7533dd9 HEAD_REF master ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND VCPKG_TARGET_IS_MINGW) # mingw cross compile toolchain lacks std conv support list(APPEND FEATURE_OPTIONS "-DBOOST_LOCALE_ENABLE_STD=OFF") endif() boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-locale/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-locale", "version": "1.90.0", "port-version": 1, "description": "Boost locale module", "homepage": "https://www.boost.org/library/latest/locale/", "documentation": "https://www.boost.org/libs/locale", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-charconv", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "libiconv", "platform": "!uwp & !windows & !mingw" } ], "features": { "icu": { "description": "ICU backend for Boost.Locale", "dependencies": [ "icu" ] } } } ================================================ FILE: ports/boost-lockfree/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/lockfree REF boost-${VERSION} SHA512 d23f76143b54a59439c813e2afe99dc206c13475725684d12438d0d77d709bc36a7ccb44e1bc390aead2e8417d018a4d4ad37e917d1336c4e09d91dd5ea58ec3 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-lockfree/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-lockfree", "version": "1.90.0", "port-version": 1, "description": "Boost lockfree module", "homepage": "https://www.boost.org/library/latest/lockfree/", "documentation": "https://www.boost.org/libs/lockfree", "license": "BSL-1.0", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-log/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/log REF boost-${VERSION} SHA512 76d590bf7516eda7ed9648f084ffd65d59453da2b04f9c7304918201d5f63486b9363915ef821ce3d5fe1e272b53e2db6c79f7bdaf462f19ffe83adc65a4a18d HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-log/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-log", "version": "1.90.0", "port-version": 1, "description": "Boost log module", "homepage": "https://www.boost.org/library/latest/log/", "documentation": "https://www.boost.org/libs/log", "license": "BSL-1.0", "supports": "!uwp & !emscripten", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-date-time", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-filesystem", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-interprocess", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-phoenix", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-property-tree", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" }, { "name": "boost-xpressive", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-logic/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/logic REF boost-${VERSION} SHA512 659120ff27df93d9e6156cd5bb60e083463c71ba2d23c3dcd0cd4eedf9b87853634f8db5f71fb6c8cd73b8da16e3c67e537fa6918b4ac0097b028fdec823a3cb HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-logic/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-logic", "version": "1.90.0", "port-version": 1, "description": "Boost logic module", "homepage": "https://www.boost.org/library/latest/logictribool/", "documentation": "https://www.boost.org/libs/logictribool", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-math/build-old-libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e6c492..a910097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,3 +59,106 @@ elseif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") endif() + +option(BOOST_MATH_BUILD_WITH_LEGACY_FUNCTIONS "" OFF) +if(BOOST_MATH_BUILD_WITH_LEGACY_FUNCTIONS) +include(CheckCXXSourceCompiles) +set(CMAKE_REQUIRED_LIBRARIES Boost::config) +set(CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include") +check_cxx_source_compiles("#include <${CMAKE_CURRENT_SOURCE_DIR}/config/has_long_double_support.cpp> \n int main() { return 0;}" BOOST_MATH_HAS_LONG_DOUBLE) +unset(CMAKE_REQUIRED_LIBRARIES) +unset(CMAKE_REQUIRED_INCLUDES) + +set(C99_SOURCES + acosh + asinh + atanh + cbrt + copysign + erfc + erf + expm1 + fmax + fmin + fpclassify + hypot + lgamma + llround + log1p + lround + nextafter + nexttoward + round + tgamma + trunc +) + +set(TR1_SOURCES + assoc_laguerre + assoc_legendre + beta + comp_ellint_1 + comp_ellint_2 + comp_ellint_3 + cyl_bessel_i + cyl_bessel_j + cyl_bessel_k + cyl_neumann + ellint_1 + ellint_2 + ellint_3 + expint + hermite + laguerre + legendre + riemann_zeta + sph_bessel + sph_legendre + sph_neumann +) + +list(TRANSFORM C99_SOURCES PREPEND "src/tr1/" ) # OUTPUT_VARIABLE ]) +list(TRANSFORM TR1_SOURCES PREPEND "src/tr1/" ) + +list(TRANSFORM C99_SOURCES APPEND "f.cpp" OUTPUT_VARIABLE C99_SOURCESf) +list(TRANSFORM TR1_SOURCES APPEND "f.cpp" OUTPUT_VARIABLE TR1_SOURCESf) + +set(types "" f) + +if(BOOST_MATH_HAS_LONG_DOUBLE) + list(TRANSFORM C99_SOURCES APPEND "l.cpp" OUTPUT_VARIABLE C99_SOURCESl) + list(TRANSFORM TR1_SOURCES APPEND "l.cpp" OUTPUT_VARIABLE TR1_SOURCESl) + list(APPEND types l) +endif() + +list(TRANSFORM C99_SOURCES APPEND ".cpp") +list(TRANSFORM TR1_SOURCES APPEND ".cpp") + +foreach(type IN LISTS types) + add_library(boost_math_tr1${type} ${TR1_SOURCES${type}}) + target_link_libraries(boost_math_tr1${type} PUBLIC Boost::config) + target_include_directories(boost_math_tr1${type} PRIVATE src/tr1) + target_include_directories(boost_math_tr1${type} PRIVATE include) + add_library(boost_math_c99${type} ${C99_SOURCES${type}}) + target_link_libraries(boost_math_c99${type} PUBLIC Boost::config) + target_include_directories(boost_math_c99${type} PRIVATE src/tr1) + target_include_directories(boost_math_c99${type} PRIVATE include) + if(BUILD_SHARED_LIBS) + target_compile_definitions(boost_math_tr1${type} PUBLIC BOOST_MATH_TR1_DYN_LINK=1) + target_compile_definitions(boost_math_c99${type} PUBLIC BOOST_MATH_TR1_DYN_LINK=1) + if(MSVC) + target_compile_definitions(boost_math_tr1${type} PRIVATE "BOOST_SYMBOL_EXPORT=__declspec(dllexport)" BOOST_ALL_NO_LIB) + target_compile_definitions(boost_math_c99${type} PRIVATE "BOOST_SYMBOL_EXPORT=__declspec(dllexport)" BOOST_ALL_NO_LIB) + endif() + endif() + target_compile_features(boost_math_tr1${type} PUBLIC cxx_std_14) + target_compile_features(boost_math_c99${type} PUBLIC cxx_std_14) + if(DARWIN) + target_compile_definitions(boost_math_tr1${type} PRIVATE _DARWIN_C_SOURCE) + target_compile_definitions(boost_math_c99${type} PRIVATE _DARWIN_C_SOURCE) + endif() + boost_install_target(TARGET boost_math_tr1${type} VERSION ${BOOST_SUPERPROJECT_VERSION}) + boost_install_target(TARGET boost_math_c99${type} VERSION ${BOOST_SUPERPROJECT_VERSION}) +endforeach() +endif() + ================================================ FILE: ports/boost-math/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "legacy" BOOST_MATH_BUILD_WITH_LEGACY_FUNCTIONS ) if(NOT BOOST_MATH_BUILD_WITH_LEGACY_FUNCTIONS) set(Z_VCPKG_BOOST_FORCE_HEADER_ONLY ON) endif() ================================================ FILE: ports/boost-math/opt-random.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7965bd1..4e6c492 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ else() Boost::integer Boost::lexical_cast Boost::predef - Boost::random + $ Boost::static_assert Boost::throw_exception ) ================================================ FILE: ports/boost-math/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/math REF boost-${VERSION} SHA512 b15cdabaf8bb9c1a10f9a4f9072101fd9a353ce819cbeca1c4ac18e5c45d88194d8d24d06bc5f5f42f523d040bf22d4b886f3d69f67e916644958d4a629c972d HEAD_REF master PATCHES build-old-libs.patch opt-random.diff ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-math/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-math", "version": "1.90.0", "port-version": 1, "description": "Boost math module", "homepage": "https://www.boost.org/library/latest/math/", "documentation": "https://www.boost.org/libs/math", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-random", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ], "features": { "legacy": { "description": "Build the legacy C99 and TR1 libraries" } } } ================================================ FILE: ports/boost-metaparse/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/metaparse REF boost-${VERSION} SHA512 29195383bb6084b02c1e1d93a2b6dedaa8a2b3ba7bebdc1bdf297f2b2ecb3821a87cf0e9dbb4364769189ef548c5e1cbbf50f3a42826700ec0ec9cfb11ea76e2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-metaparse/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-metaparse", "version": "1.90.0", "port-version": 1, "description": "Boost metaparse module", "homepage": "https://www.boost.org/library/latest/metaparse/", "documentation": "https://www.boost.org/libs/metaparse", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-move/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/move REF boost-${VERSION} SHA512 b41f098dbcb11e4e2b9fe103b41a7bd399bdca30d38d252c674b8db56ce7ed31d2bafda9482ac14557118c9eabfafb961c0fc5d518c9d9232542677d56fd801f HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-move/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-move", "version": "1.90.0", "port-version": 1, "description": "Boost move module", "homepage": "https://www.boost.org/library/latest/move/", "documentation": "https://www.boost.org/libs/move", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-mp11/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/mp11 REF boost-${VERSION} SHA512 46563aa599249cb754a33bd4af551d787ac02e85fad3ee7a5986130b0797027d8bc8b3f143b2298e120dbf1e5301bc6a6d3d2f688deb23f91705834b4b5f189b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-mp11/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-mp11", "version": "1.90.0", "port-version": 1, "description": "Boost mp11 module", "homepage": "https://www.boost.org/library/latest/mp11/", "documentation": "https://www.boost.org/libs/mp11", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-mpi/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/mpi REF boost-${VERSION} SHA512 28a4459468549bcdc59071da8bd1c184747f3858099c6ff3fcbfc1cf4ee67de3f0930770cd9fa98e2573d52cf59d30b6f4e43ec817c5d7ab68cc98945819df2d HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-mpi/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-mpi", "version": "1.90.0", "port-version": 1, "description": "Boost mpi module", "homepage": "https://www.boost.org/library/latest/mpi/", "documentation": "https://www.boost.org/libs/mpi", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-foreach", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-graph", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, "mpi" ], "features": { "python3": { "description": "Build Python3 bindings", "supports": "!static", "dependencies": [ { "name": "boost-python", "platform": "!uwp & !emscripten & !ios & !android", "version>=": "1.90.0" }, "python3" ] } } } ================================================ FILE: ports/boost-mpl/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/mpl REF boost-${VERSION} SHA512 3ab87f5105f795827a979314c8aa3297f58ae3547ac38ed93ca55fc5ab986dc3cc1b016311212e8a426d102ba3310aec2c1e663237d38c357d4d90efc033b1df HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-mpl/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-mpl", "version": "1.90.0", "port-version": 1, "description": "Boost mpl module", "homepage": "https://www.boost.org/library/latest/mpl/", "documentation": "https://www.boost.org/libs/mpl", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-mqtt5/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/mqtt5 REF boost-${VERSION} SHA512 24c45ca98180ec79037aea0f50f4a747f2600718ebeb95dffc2d6c9eb0d070a28c388be208c78bc428d07f523250c65f0ee1c97b9895e535ec188f1a338987ea HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-mqtt5/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-mqtt5", "version": "1.90.0", "port-version": 1, "description": "Boost mqtt5 module", "homepage": "https://www.boost.org/library/latest/mqtt5/", "documentation": "https://www.boost.org/libs/mqtt5", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-random", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-msm/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/msm REF boost-${VERSION} SHA512 ebfc4a1bf3e80500ba2a405ec3255fdb6fd990253654945c012fc308e9bc331590541179b0125b972399ef67d0d116d881413c2caaaf5e7aaa0559abe9c0bd14 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-msm/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-msm", "version": "1.90.0", "port-version": 1, "description": "Boost msm module", "homepage": "https://www.boost.org/library/latest/msm/", "documentation": "https://www.boost.org/libs/msm", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-circular-buffer", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-phoenix", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-multi-array/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/multi_array REF boost-${VERSION} SHA512 d35bee4528c9b43a3eb02fd17e75b1d56e33804fa20d3c47df5a2094dcfcf98202b676d3fa9a9f351a87c96eb3a57a1e0ee54956277fd5883ca5d537086e00e0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-multi-array/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-multi-array", "version": "1.90.0", "port-version": 1, "description": "Boost multi_array module", "homepage": "https://www.boost.org/library/latest/multi_array/", "documentation": "https://www.boost.org/libs/multi_array", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-functional", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-multi-index/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/multi_index REF boost-${VERSION} SHA512 56e4a49dc552fac0cb95af307981d160aa5efafc5eb99933e789ecdd6790c5ac90f2ebaa4a596a4b889c59da09c43766b31b66ccac6927c6556d3bac75a4078e HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-multi-index/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-multi-index", "version": "1.90.0", "port-version": 1, "description": "Boost multi_index module", "homepage": "https://www.boost.org/library/latest/multi_index/", "documentation": "https://www.boost.org/libs/multi_index", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-multiprecision/optional-random.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d6cdd286..5235670e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,7 +33,7 @@ else() Boost::integer Boost::lexical_cast Boost::math - Boost::random + $ ) endif() ================================================ FILE: ports/boost-multiprecision/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/multiprecision REF boost-${VERSION} SHA512 20a3b5faf18be6541b8ea4dd5ee17f467292365dd250c94b0b981734b78e0e50691ced0a6bd85babf5b6b0ec6093286cd3366a10ac369b38a7b377371b862d39 HEAD_REF master PATCHES optional-random.diff ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-multiprecision/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-multiprecision", "version": "1.90.0", "port-version": 1, "description": "Boost multiprecision module", "homepage": "https://www.boost.org/library/latest/multiprecision/", "documentation": "https://www.boost.org/libs/multiprecision", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-random", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-mysql/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/mysql REF boost-${VERSION} SHA512 8ad9355adf1cc9a4393cf7a515a7a569a87c2f576eca0fddea092e8ab987c247fdb5926b51765184a055987a45975ee3879e77401f81d29288d4642ca1119154 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-mysql/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-mysql", "version": "1.90.0", "port-version": 1, "description": "Boost mysql module", "homepage": "https://www.boost.org/library/latest/mysql/", "documentation": "https://www.boost.org/libs/mysql", "license": "BSL-1.0", "dependencies": [ { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-charconv", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-compat", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-describe", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-intrusive", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" }, "openssl" ] } ================================================ FILE: ports/boost-nowide/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/nowide REF boost-${VERSION} SHA512 e31f4858891268f7949975af06ba331ad376e59e0fbc15e07403d419bd6d5102aaf6c03dd322d2f465b341748f0d79daa597ada31becb4efecd4d77e526f18ce HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-nowide/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-nowide", "version": "1.90.0", "port-version": 1, "description": "Boost nowide module", "homepage": "https://www.boost.org/library/latest/nowide/", "documentation": "https://www.boost.org/libs/nowide", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-filesystem", "platform": "!uwp", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-numeric-conversion/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/numeric_conversion REF boost-${VERSION} SHA512 5af80e29a29187e73d4617d19d05aa679bd9ab7b232155830525621a0686766a8285b9d98b9f6ad92d91dcf28822b083c9c28e0d1df784cf022f0ba051e49d6a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-numeric-conversion/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-numeric-conversion", "version": "1.90.0", "port-version": 1, "description": "Boost numeric_conversion module", "homepage": "https://www.boost.org/library/latest/numericconversion/", "documentation": "https://www.boost.org/libs/numeric/conversion", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-odeint/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "mpi" BOOST_ENABLE_MPI ) ================================================ FILE: ports/boost-odeint/opt-mpi.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3692bea4a7..29ee7adb1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ target_link_libraries(boost_numeric_odeint if(BOOST_ENABLE_MPI) target_link_libraries(boost_numeric_odeint INTERFACE - Boost::mpi + $ ) endif() ================================================ FILE: ports/boost-odeint/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/odeint REF boost-${VERSION} SHA512 b773aa434c2a055395460a510fde346fff35d28ce3985b15d60478ab98ea10f08845e502c7b7d2fb14aef31efb310cd35327f8eedd938c20c20fa5e53d9547ff HEAD_REF master PATCHES opt-mpi.diff ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-odeint/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-odeint", "version": "1.90.0", "port-version": 1, "description": "Boost odeint module", "homepage": "https://www.boost.org/library/latest/numericodeint/", "documentation": "https://www.boost.org/libs/numeric/odeint", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-compute", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-array", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-ublas", "version>=": "1.90.0" }, { "name": "boost-units", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ], "features": { "mpi": { "description": "Support parallelization with MPI", "dependencies": [ { "name": "boost-mpi", "version>=": "1.90.0" } ] } } } ================================================ FILE: ports/boost-openmethod/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/openmethod REF boost-${VERSION} SHA512 56e63f56255c889d4fdfc0c2a7a86852f54c00bd4643a2d483bea93904af00510265b2de8eefe64973cc1d3632d89fe17b498309666f693a5ae60f19f258820b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-openmethod/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-openmethod", "version": "1.90.0", "port-version": 1, "description": "Boost openmethod module", "homepage": "https://www.boost.org/library/latest/openmethod/", "documentation": "https://www.boost.org/libs/openmethod", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-dynamic-bitset", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-optional/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/optional REF boost-${VERSION} SHA512 4cbd6e1b47e2f65fc543a4783126c1cfabb5b25c41f8ec2e79c4687fadb515c8006119158007f24458c7b005f3ce3976d73375ab7a7ae15068805c3550dd9e4a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-optional/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-optional", "version": "1.90.0", "port-version": 1, "description": "Boost optional module", "homepage": "https://www.boost.org/library/latest/optional/", "documentation": "https://www.boost.org/libs/optional", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-outcome/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/outcome REF boost-${VERSION} SHA512 bbceb0fe6679be7c1b79d64ab56079a4ed0554f536a3f94ba09d4c924acfe4526f2af058fe7f7b818217ca1444c10022daee666f3199d337a3cb1ef8903c2be2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-outcome/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-outcome", "version": "1.90.0", "port-version": 1, "description": "Boost outcome module", "homepage": "https://www.boost.org/library/latest/outcome/", "documentation": "https://www.boost.org/libs/outcome", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-parameter/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/parameter REF boost-${VERSION} SHA512 f80dca24fcf6af16817954732c4b602a8cbbe009a83a04db1d0c60b7235e68c5620ad7ff150935f42c0aa36421c76e70f44cf2ee8e623cae17c35c026d926e48 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-parameter/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-parameter", "version": "1.90.0", "port-version": 1, "description": "Boost parameter module", "homepage": "https://www.boost.org/library/latest/parameter/", "documentation": "https://www.boost.org/libs/parameter", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-parameter-python/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/parameter_python REF boost-${VERSION} SHA512 aa7d1a527d28aef03706b998c678071c397ff1c4eb9cac79860764f2739e8a747c47f5720d1aeb450045b624acbd7148796623d31cf45ee5a5d9afb9dbc7c8da HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-parameter-python/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-parameter-python", "version": "1.90.0", "port-version": 1, "description": "Boost parameter_python module", "homepage": "https://www.boost.org/library/latest/parameter_python/", "documentation": "https://www.boost.org/libs/parameter_python", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-python", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-parser/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/parser REF boost-${VERSION} SHA512 5f42f4f67ac1fab9f606a5daacf37247aa7991e764c0f617e51f4a5b79539ffff5dad09a720eed7633f4edb59c50b7c5f386b718c6ab2e34df51bc81de259e71 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-parser/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-parser", "version": "1.90.0", "port-version": 1, "description": "Boost parser module", "homepage": "https://www.boost.org/library/latest/parser/", "documentation": "https://www.boost.org/libs/parser", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-charconv", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-hana", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-pfr/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/pfr REF boost-${VERSION} SHA512 27119279c8c64dec257086859fa7750132bfbf4af62a9b88a911665ae18880f9ce7dc4d974b54f443137bddf517731bf6af88614b830930d6800e94fc88ea865 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-pfr/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-pfr", "version": "1.90.0", "port-version": 1, "description": "Boost pfr module", "homepage": "https://www.boost.org/library/latest/pfr/", "documentation": "https://www.boost.org/libs/pfr", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-phoenix/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/phoenix REF boost-${VERSION} SHA512 d49cdf6c7d66a7e031c951420ba864b1609d90286fabce6ec7e9456a91157f0354dd935e1d283c7897b16a7984fda81dd80673676c45225a326083cbb925dc6e HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-phoenix/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-phoenix", "version": "1.90.0", "port-version": 1, "description": "Boost phoenix module", "homepage": "https://www.boost.org/library/latest/phoenix/", "documentation": "https://www.boost.org/libs/phoenix", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-poly-collection/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/poly_collection REF boost-${VERSION} SHA512 9089f3cc73c8c99235171be8f9f42e6e4e1aa01adafbd67e8397ff64206e6af69fe9ef7d7b903fd949ee761fe7cc07e1c7fc52970fe37abca5625afe2e6dd482 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-poly-collection/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-poly-collection", "version": "1.90.0", "port-version": 1, "description": "Boost poly_collection module", "homepage": "https://www.boost.org/library/latest/poly_collection/", "documentation": "https://www.boost.org/libs/poly_collection", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-type-erasure", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-polygon/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/polygon REF boost-${VERSION} SHA512 acfc4576a6a0dbc79abc05f39779bbdebcac526819ee5a36513d78673bf39b37fbe4630be01707fbfa6b45b541257e6be5fe11343813b243284f77ecaa7a780a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-polygon/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-polygon", "version": "1.90.0", "port-version": 1, "description": "Boost polygon module", "homepage": "https://www.boost.org/library/latest/polygon/", "documentation": "https://www.boost.org/libs/polygon", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-pool/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/pool REF boost-${VERSION} SHA512 44aeda7ed64d678e7f4cd2814471168312852747659122953e544548aee80fdea463c26320557cbd351398b7d94bc4ebfebf4c2d10dd8208bae928b184238d9c HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-pool/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-pool", "version": "1.90.0", "port-version": 1, "description": "Boost pool module", "homepage": "https://www.boost.org/library/latest/pool/", "documentation": "https://www.boost.org/libs/pool", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-predef/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/predef REF boost-${VERSION} SHA512 8c6ced3db730d98067d393d7669bc16d19eb4b05aad19d59addd2e0087dac54917d097159d39c619f5398ffc5d7cef43f9af94f376ab0734f8910e69e1c7a592 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) file(COPY "${SOURCE_PATH}/libs/predef/tools/check" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost-predef") ================================================ FILE: ports/boost-predef/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-predef", "version": "1.90.0", "port-version": 1, "description": "Boost predef module", "homepage": "https://www.boost.org/library/latest/predef/", "documentation": "https://www.boost.org/libs/predef", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-preprocessor/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/preprocessor REF boost-${VERSION} SHA512 849be36a7106538cc2ad1eed1cfe5d5dff69d6f006bd9f4ce6c010cfca7d82bc3f5c52b2e38f746f7f6ae39dd40fca04e28b10af5d876000e4066623335f502d HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-preprocessor/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-preprocessor", "version": "1.90.0", "port-version": 1, "description": "Boost preprocessor module", "homepage": "https://www.boost.org/library/latest/preprocessor/", "documentation": "https://www.boost.org/libs/preprocessor", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-process/fix-filesystem.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b3ff9e7..a2b51c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,10 @@ if(BOOST_PROCESS_USE_STD_FS) target_compile_definitions(boost_process PUBLIC BOOST_PROCESS_USE_STD_FS) target_compile_features(boost_process PUBLIC cxx_std_17) else() - target_link_libraries(boost_process PUBLIC Boost::filesystem) + target_link_libraries(boost_process + PUBLIC + Boost::filesystem + ) endif() if(WIN32) ================================================ FILE: ports/boost-process/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/process REF boost-${VERSION} SHA512 d4a7f58bc6cea3960eccb48d4780ef43a34f438028bf45316a9eb6d8361750a6d23019cbe5ec46bb4dc1fb4b02a0faaedb14ec6e41003fa882f747b98c0617bc HEAD_REF master PATCHES fix-filesystem.patch ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-process/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-process", "version": "1.90.0", "port-version": 1, "description": "Boost process module", "homepage": "https://www.boost.org/library/latest/process/", "documentation": "https://www.boost.org/libs/process", "license": "BSL-1.0", "supports": "!uwp & !emscripten & !android", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-filesystem", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tokenizer", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-program-options/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/program_options REF boost-${VERSION} SHA512 1d75b12b53304b08b7af184b0c6028788bd925aada10f0dcb4f5324e1d424be80fb054767889bc628b356f9cdfa4ca855a575447950ccb1859538c0108ad3318 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-program-options/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-program-options", "version": "1.90.0", "port-version": 1, "description": "Boost program_options module", "homepage": "https://www.boost.org/library/latest/program_options/", "documentation": "https://www.boost.org/libs/program_options", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tokenizer", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-property-map/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/property_map REF boost-${VERSION} SHA512 0bb719dfa64ebfeec75fe3caa0d831fda68aaac85275788f110976fe9ce08f3f41610112359c2a514a6ad53c71e6bb3ca42f838e77214b5c780674b14ba662af HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-property-map/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-property-map", "version": "1.90.0", "port-version": 1, "description": "Boost property_map module", "homepage": "https://www.boost.org/library/latest/property_map/", "documentation": "https://www.boost.org/libs/property_map", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-property-map-parallel/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/property_map_parallel REF boost-${VERSION} SHA512 a2b33b83ad30c38d2bb9ad25a489e399658dcef3d2e0f77300fdddff3e0e489d950d52afc0f05d8e53bc91390f8c94222bb2a6deeee96e17e31e552d1b0b427e HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-property-map-parallel/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-property-map-parallel", "version": "1.90.0", "port-version": 1, "description": "Boost property_map_parallel module", "homepage": "https://www.boost.org/library/latest/property_map_parallel/", "documentation": "https://www.boost.org/libs/property_map_parallel", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpi", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-property-map", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-property-tree/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/property_tree REF boost-${VERSION} SHA512 f36e987a990d8c714188d4f661d83cbc54afb8fa0b76b524697e07a5309e54d9a35a321852f715278859506a04298b875697c07f4dcada333fac9c4ba102fa86 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-property-tree/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-property-tree", "version": "1.90.0", "port-version": 1, "description": "Boost property_tree module", "homepage": "https://www.boost.org/library/latest/property_tree/", "documentation": "https://www.boost.org/libs/property_tree", "license": "BSL-1.0", "dependencies": [ { "name": "boost-any", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-proto/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/proto REF boost-${VERSION} SHA512 26ff124b3f7cb571d4dd606338388aaed0aaff3fc1068dd7df2b39caaa637d567f6c25b85057f7348aa36f799ecc0f7b7e15f2226dce957361f02a82e9a19843 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-proto/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-proto", "version": "1.90.0", "port-version": 1, "description": "Boost proto module", "homepage": "https://www.boost.org/library/latest/proto/", "documentation": "https://www.boost.org/libs/proto", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-ptr-container/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/ptr_container REF boost-${VERSION} SHA512 870ec38756eb2bb51672f63e1ab219a5b9cc32c835fcce106b95b6667e81f727b4fdbb7a152665596999c22d60b74f58b44651de955348fbc994ab660c330967 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-ptr-container/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-ptr-container", "version": "1.90.0", "port-version": 1, "description": "Boost ptr_container module", "homepage": "https://www.boost.org/library/latest/ptr_container/", "documentation": "https://www.boost.org/libs/ptr_container", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-circular-buffer", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-python/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/python REF boost-${VERSION} SHA512 bf8508a69fb13b56ef5784d9e7c3c3c82114b4461300a66c6eacab15cac4e17be1eb054583d386a83cdfffc0e8cc4d3a7ce8425715c7078e06467cfd96192ccd HEAD_REF master PATCHES remove_undef.diff ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-python/remove_undef.diff ================================================ diff --git a/fabscript b/fabscript index 8188779fd..6a136d82a 100644 --- a/fabscript +++ b/fabscript @@ -28,7 +28,7 @@ class has_numpy(try_run): src = r""" // If defined, enforces linking against PythonXXd.lib, which // is usually not included in Python environments. -#undef _DEBUG + #include "Python.h" #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION #include "numpy/arrayobject.h" diff --git a/include/boost/detail/wrap_python.hpp b/include/boost/detail/wrap_python.hpp index 037e4bf2e..a690913f2 100644 --- a/include/boost/python/detail/wrap_python.hpp +++ b/include/boost/python/detail/wrap_python.hpp @@ -42,8 +42,8 @@ # include # include # endif -# undef _DEBUG // Don't let Python force the debug library just because we're debugging. -# define DEBUG_UNDEFINED_FROM_WRAP_PYTHON_H +//# undef _DEBUG // Don't let Python force the debug library just because we're debugging. +//# define DEBUG_UNDEFINED_FROM_WRAP_PYTHON_H # endif #endif ================================================ FILE: ports/boost-python/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-python", "version": "1.90.0", "port-version": 1, "description": "Boost python module", "homepage": "https://www.boost.org/library/latest/python/", "documentation": "https://www.boost.org/libs/python", "license": "BSL-1.0", "supports": "!uwp & !emscripten & !ios & !android", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-foreach", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-graph", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-property-map", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, "python3" ] } ================================================ FILE: ports/boost-qvm/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/qvm REF boost-${VERSION} SHA512 820443c3a4ac45d14f508483cbfc7da269cc1313a5c20498c3201a5b5d60b7ee2031b188d40cce885ce90e03b618dc2bcf0549f2873e572e3b1ae1e950ee4f5f HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-qvm/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-qvm", "version": "1.90.0", "port-version": 1, "description": "Boost qvm module", "homepage": "https://www.boost.org/library/latest/qvm/", "documentation": "https://www.boost.org/libs/qvm", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-random/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/random REF boost-${VERSION} SHA512 69ed917251441003c07aa205305bbc5ef38335e721c6f80cb87783ef35aa0971ca9019610363187dd10707d40cc57ba87f9c933ba01f43a00a360dfa2741bef1 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-random/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-random", "version": "1.90.0", "port-version": 1, "description": "Boost random module", "homepage": "https://www.boost.org/library/latest/random/", "documentation": "https://www.boost.org/libs/random", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-dynamic-bitset", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-range/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/range REF boost-${VERSION} SHA512 74001dccbf4a0dc49edf9282410ebe08db8f25dc523da6d2ccab45c4b0d70058ce1a56e1910d7546335280c0a3057ba61e03234df7e4ac0b7c4c77d3185ad8e4 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-range/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-range", "version": "1.90.0", "port-version": 1, "description": "Boost range module", "homepage": "https://www.boost.org/library/latest/range/", "documentation": "https://www.boost.org/libs/range", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-ratio/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/ratio REF boost-${VERSION} SHA512 be29610c5a290dab4dc86d09bb00609e4e3483462e90aef912f9fdd7914ab786216504b34bab285420e8dba52ed062ac11e2e560daea7d77acd8ec14df8a03a7 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-ratio/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-ratio", "version": "1.90.0", "port-version": 1, "description": "Boost ratio module", "homepage": "https://www.boost.org/library/latest/ratio/", "documentation": "https://www.boost.org/libs/ratio", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-rational/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/rational REF boost-${VERSION} SHA512 50c9e1405b8e0322b342408d5934122abcb96cf19060e832b484c6a95991e9bf201cc0ff10929aa65c75a81bb0f4b593089bc8ee6efefc9c8b04ffc10d62847c HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-rational/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-rational", "version": "1.90.0", "port-version": 1, "description": "Boost rational module", "homepage": "https://www.boost.org/library/latest/rational/", "documentation": "https://www.boost.org/libs/rational", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-redis/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/redis REF boost-${VERSION} SHA512 6378dcc876e278e87d68e5d929b060c2d93cd2c6d2633d78bbe9a1bfd4922eff7ac0bc2a29c308d6cef79454462a8aa9ad459ecde07b48179e79b8d28675c9dc HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-redis/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-redis", "version": "1.90.0", "port-version": 1, "description": "Boost redis module", "homepage": "https://www.boost.org/library/latest/redis/", "documentation": "https://www.boost.org/libs/redis", "license": "BSL-1.0", "dependencies": [ { "name": "boost-asio", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-regex/compat.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ccd4223..a0f58a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,9 +34,9 @@ else() endif() find_package(ICU COMPONENTS data i18n uc QUIET) -#option(BOOST_REGEX_ENABLE_ICU "Boost.Regex: enable ICU support" ${ICU_FOUND}) +option(BOOST_REGEX_ENABLE_ICU "Boost.Regex: enable ICU support" ${ICU_FOUND}) -if(ICU_FOUND) +if(BOOST_REGEX_ENABLE_ICU) add_library(boost_regex_icu INTERFACE) add_library(Boost::regex_icu ALIAS boost_regex_icu) ================================================ FILE: ports/boost-regex/features.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "icu" BOOST_REGEX_ENABLE_ICU ) set(Z_VCPKG_BOOST_FORCE_HEADER_ONLY ON) ================================================ FILE: ports/boost-regex/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/regex REF boost-${VERSION} SHA512 e60551fc42f4f6f64600e0dbd31ccbe4b13192514f5d4db3c55f052b95178455568840a124a565518a5159e48971e956420f9fd76b534582a3966a9cf22a21fa HEAD_REF master PATCHES compat.diff ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-regex/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-regex", "version": "1.90.0", "port-version": 1, "description": "Boost regex module", "homepage": "https://www.boost.org/library/latest/regex/", "documentation": "https://www.boost.org/libs/regex", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ], "features": { "icu": { "description": "ICU backend for Boost.Regex", "dependencies": [ "icu" ] } } } ================================================ FILE: ports/boost-safe-numerics/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/safe_numerics REF boost-${VERSION} SHA512 ab5af454f520f0f2a3411062eeb39c352e76964db89519588feba81fed99142d90e29a868b94ed063a628cd1aa2052d49abfbbb828bf7c7bc419c29b9dbdf5f3 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-safe-numerics/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-safe-numerics", "version": "1.90.0", "port-version": 1, "description": "Boost safe_numerics module", "homepage": "https://www.boost.org/library/latest/safe_numerics/", "documentation": "https://www.boost.org/libs/safe_numerics", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-logic", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-scope/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/scope REF boost-${VERSION} SHA512 97da581eff34ab7a25648293f223e7b36fefc161a7e14a8c1eca3f4db2259ba01bae0005f95f0086afa1ef07bb596b1518332d3bcdf8e3edbe96adefd7e7e227 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-scope/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-scope", "version": "1.90.0", "port-version": 1, "description": "Boost scope module", "homepage": "https://www.boost.org/library/latest/scope/", "documentation": "https://www.boost.org/libs/scope", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-scope-exit/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/scope_exit REF boost-${VERSION} SHA512 163a2878f5bcacdea08c426a3d7c9a011c4b0bf4bdf8483e12df13865b93b2acf93bd4d1f8fd497be756193cd33689652e04ca6196a9ac4d690c656088c97614 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-scope-exit/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-scope-exit", "version": "1.90.0", "port-version": 1, "description": "Boost scope_exit module", "homepage": "https://www.boost.org/library/latest/scope_exit/", "documentation": "https://www.boost.org/libs/scope_exit", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-serialization/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/serialization REF boost-${VERSION} SHA512 7bf9632023cac688a5064addce811b230b6fd946e68822525fe63fb3a0652c590b30ad7e00f158eec438daf727a5c014621aced748a8539b3311a50b28947f96 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-serialization/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-serialization", "version": "1.90.0", "port-version": 1, "description": "Boost serialization module", "homepage": "https://www.boost.org/library/latest/serialization/", "documentation": "https://www.boost.org/libs/serialization", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-signals2/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/signals2 REF boost-${VERSION} SHA512 63c7dae6bde6bc9f7a070e5fade398c43f5e92fcc1d085dc3e5437fca5b10b6ea6ae5773124067a254c65e005ff8ef1070b11a166baa6d43b4cac5ec344b112f HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-signals2/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-signals2", "version": "1.90.0", "port-version": 1, "description": "Boost signals2 module", "homepage": "https://www.boost.org/library/latest/signals2/", "documentation": "https://www.boost.org/libs/signals2", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-parameter", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-smart-ptr/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/smart_ptr REF boost-${VERSION} SHA512 b3aefee7d014f7baae1d37bcb671f4787d145c9837d2d048365addfb9308fc7cb6dfdbc4c67e1540cb3cd14c32aa4483caec9f67b6c2431766e6db4dab896211 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-smart-ptr/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-smart-ptr", "version": "1.90.0", "port-version": 1, "description": "Boost smart_ptr module", "homepage": "https://www.boost.org/library/latest/smart_ptr/", "documentation": "https://www.boost.org/libs/smart_ptr", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-sort/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/sort REF boost-${VERSION} SHA512 81ec96c9bf9e44ef83505eafc635860511e66ff19647ec2e020a5b37c4fc130929588c05cf86b3add9be1988ca1c72f40ac0002a4a48c91c40846737411e15ab HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-sort/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-sort", "version": "1.90.0", "port-version": 1, "description": "Boost sort module", "homepage": "https://www.boost.org/library/latest/sort/", "documentation": "https://www.boost.org/libs/sort", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-spirit/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/spirit REF boost-${VERSION} SHA512 8a5c568f70655fc534be9fff35c6ad23dcbf70b3b223d21202dcc58b0f3439f7f8e4215e76301bccbfdb1dbe0dee6eb65cc02baed8da7b7a8db5eb7d0bf37180 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-spirit/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-spirit", "version": "1.90.0", "port-version": 1, "description": "Boost spirit module", "homepage": "https://www.boost.org/library/latest/spirit/", "documentation": "https://www.boost.org/libs/spirit", "license": "BSL-1.0", "dependencies": [ { "name": "boost-array", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-endian", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-phoenix", "version>=": "1.90.0" }, { "name": "boost-pool", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-regex", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-unordered", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-variant", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-stacktrace/features.cmake ================================================ # BOOST_STACKTRACE_ENABLE_NOOP # When ON, builds the boost_stacktrace_noop library variant. Defaults to ON. # BOOST_STACKTRACE_ENABLE_BACKTRACE # When ON, builds the boost_stacktrace_backtrace library variant. Defaults to ON when libbacktrace is found, OFF otherwise. # BOOST_STACKTRACE_ENABLE_ADDR2LINE # When ON, builds the boost_stacktrace_addr2line library variant. Defaults to ON, except on Windows. # BOOST_STACKTRACE_ENABLE_BASIC # When ON, builds the boost_stacktrace_basic library variant. Defaults to ON. # BOOST_STACKTRACE_ENABLE_WINDBG # When ON, builds the boost_stacktrace_windbg library variant. Defaults to ON under Windows when WinDbg support is autodetected, otherwise OFF. # BOOST_STACKTRACE_ENABLE_WINDBG_CACHED # When ON, builds the boost_stacktrace_windbg_cached library variant. Defaults to ON under Windows when WinDbg support is autodetected and when thread_local is supported, otherwise OFF. vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "backtrace" BOOST_STACKTRACE_ENABLE_BACKTRACE "windbg" BOOST_STACKTRACE_ENABLE_WINDBG "windbg" BOOST_STACKTRACE_ENABLE_WINDBG_CACHED ) ================================================ FILE: ports/boost-stacktrace/fix_config-check.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c5bf84..46b7288 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ include(CheckCXXSourceCompiles) function(stacktrace_check var source incs libs defs) - set(CMAKE_REQUIRED_INCLUDES "${incs}") + set(CMAKE_REQUIRED_INCLUDES "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") list(APPEND CMAKE_REQUIRED_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/build") set(CMAKE_REQUIRED_LIBRARIES "${libs}") set(CMAKE_REQUIRED_DEFINITIONS "${defs}") @@ -69,7 +69,7 @@ if(WIN32 AND NOT CMAKE_CXX_PLATFORM_ID MATCHES "Cygwin") endif() stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG has_windbg.cpp "" "dbgeng;ole32" "") -stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG_CACHED has_windbg_cached.cpp "${CMAKE_CURRENT_SOURCE_DIR}/../config/include" "dbgeng;ole32" "") +stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG_CACHED has_windbg_cached.cpp "" "dbgeng;ole32" "") set(_default_from_exception ON) if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64|i386|i686|x86") @@ -98,7 +98,10 @@ message(STATUS "Boost.Stacktrace: " ) stacktrace_add_library(noop ${BOOST_STACKTRACE_ENABLE_NOOP} "" "") -stacktrace_add_library(backtrace ${BOOST_STACKTRACE_ENABLE_BACKTRACE} "backtrace;${CMAKE_DL_LIBS}" "") +if(BOOST_STACKTRACE_ENABLE_BACKTRACE) + find_library(BACKTRACE_LIBRARY_PATH NAMES backtrace REQUIRED) + stacktrace_add_library(backtrace ${BOOST_STACKTRACE_ENABLE_BACKTRACE} "${BACKTRACE_LIBRARY_PATH};${CMAKE_DL_LIBS}" "") +endif() stacktrace_add_library(addr2line ${BOOST_STACKTRACE_ENABLE_ADDR2LINE} "${CMAKE_DL_LIBS}" "") stacktrace_add_library(basic ${BOOST_STACKTRACE_ENABLE_BASIC} "${CMAKE_DL_LIBS}" "") stacktrace_add_library(windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} "dbgeng;ole32" "_GNU_SOURCE=1") ================================================ FILE: ports/boost-stacktrace/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/stacktrace REF boost-${VERSION} SHA512 2d628136ac115a0667ff3cbd57cb3df6e502d96fa4ae9db1c9dc16ea2643309377ba3f1766a213896585845808f48d306b0129a52589d28e3dccbd41434d66b0 HEAD_REF master PATCHES fix_config-check.diff ) set(FEATURE_OPTIONS "") include("${CMAKE_CURRENT_LIST_DIR}/features.cmake") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-stacktrace/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-stacktrace", "version": "1.90.0", "port-version": 1, "description": "Boost stacktrace module", "homepage": "https://www.boost.org/library/latest/stacktrace/", "documentation": "https://www.boost.org/libs/stacktrace", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ], "default-features": [ { "name": "backtrace", "platform": "!windows" }, { "name": "windbg", "platform": "windows" } ], "features": { "backtrace": { "description": "Use boost_stacktrace_backtrace", "supports": "!windows", "dependencies": [ { "name": "libbacktrace", "platform": "!windows" } ] }, "windbg": { "description": "Use boost_stacktrace_windbg", "supports": "windows" } } } ================================================ FILE: ports/boost-statechart/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/statechart REF boost-${VERSION} SHA512 f4b0c87bed263f6a3b2bc965010cccac5f7983c4fa4ace733f5bb1b2db982d035344a13f480e805da674ea1e74f094e005c99e46e7bd60bc647318f7ca4f3d94 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-statechart/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-statechart", "version": "1.90.0", "port-version": 1, "description": "Boost statechart module", "homepage": "https://www.boost.org/library/latest/statechart/", "documentation": "https://www.boost.org/libs/statechart", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-static-assert/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/static_assert REF boost-${VERSION} SHA512 f71a39ae962bece12d2e89c1925590bc5fd2de305eafabad104f085d21e91389471d5e3a8de629ad5bd23d8e70ac42a1d0b4794dc28d2ea20d89a9a99a71f5d1 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-static-assert/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-static-assert", "version": "1.90.0", "port-version": 1, "description": "Boost static_assert module", "homepage": "https://www.boost.org/library/latest/static_assert/", "documentation": "https://www.boost.org/libs/static_assert", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-static-string/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/static_string REF boost-${VERSION} SHA512 8feaa8bd4b5f37c2638fcc0cc3bc42ec16c80ae769cf55bcf80a8a71c9bc9ab23a90fccd997716d998e9b1f2971904e15736269d97ddc53c4be05272fdf32197 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-static-string/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-static-string", "version": "1.90.0", "port-version": 1, "description": "Boost static_string module", "homepage": "https://www.boost.org/library/latest/static_string/", "documentation": "https://www.boost.org/libs/static_string", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-stl-interfaces/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/stl_interfaces REF boost-${VERSION} SHA512 c55428152fe69d7046d0c2a8c22c90c60cfc08f196312b85a9969686075455353129986cabf8d5a26c1cbc73f6ffd5ae65f6b75ad3de728145e34a37b57da6e8 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-stl-interfaces/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-stl-interfaces", "version": "1.90.0", "port-version": 1, "description": "Boost stl_interfaces module", "homepage": "https://www.boost.org/library/latest/stl_interfaces/", "documentation": "https://www.boost.org/libs/stl_interfaces", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-system/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_buildpath_length_warning(37) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/system REF boost-${VERSION} SHA512 05d2941463dfcfd07644fecf40358a2224dd3906b30705a6bf245b4426a828a56d94119666746200ce81c078f1142c6a6179e2c50bff19744141406b302d34f6 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-system/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-system", "version": "1.90.0", "port-version": 1, "description": "Boost system module", "homepage": "https://www.boost.org/library/latest/system/", "documentation": "https://www.boost.org/libs/system", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-test/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/test REF boost-${VERSION} SHA512 e742eb26311909d11055246af898c3045e766c1c15398dbf9088372acfc800f097d21b4d6a527f9392394fb73926f3cb23eabbb72933ae0cf383397aeac33858 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(GLOB MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/lib/*_exec_monitor*) file(COPY ${MONITOR_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(REMOVE ${MONITOR_LIBS}) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(GLOB DEBUG_MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*_exec_monitor*) file(COPY ${DEBUG_MONITOR_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(REMOVE ${DEBUG_MONITOR_LIBS}) endif() ================================================ FILE: ports/boost-test/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-test", "version": "1.90.0", "port-version": 1, "description": "Boost test module", "homepage": "https://www.boost.org/library/latest/test/", "documentation": "https://www.boost.org/libs/test", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-algorithm", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-thread/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/thread REF boost-${VERSION} SHA512 14348a5dcc89cadbb9224da8bef0a90726d610cf2f0b4d61e360bc764fed89f10bc93c63cbe669b84ab4c6eecafb2e6dc13ce6d98ecffe2d2f937a9daad61f9a HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-thread/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-thread", "version": "1.90.0", "port-version": 1, "description": "Boost thread module", "homepage": "https://www.boost.org/library/latest/thread/", "documentation": "https://www.boost.org/libs/thread", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-atomic", "version>=": "1.90.0" }, { "name": "boost-bind", "version>=": "1.90.0" }, { "name": "boost-chrono", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-date-time", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-function", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-move", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-tuple", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" }, { "name": "boost-winapi", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-throw-exception/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/throw_exception REF boost-${VERSION} SHA512 05ee0e8b1899564249a6267bf1f5fe2b23f01e76803a1770a383755ebbdce38eb0b5a89d4da199c70099dd371499e1aa345997a57dd50af78c171b6a44e043dd HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-throw-exception/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-throw-exception", "version": "1.90.0", "port-version": 1, "description": "Boost throw_exception module", "homepage": "https://www.boost.org/library/latest/throw_exception/", "documentation": "https://www.boost.org/libs/throw_exception", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-timer/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/timer REF boost-${VERSION} SHA512 d8cf3503ab3781ec9f30c0e242e3df55239a82586a922548f3272a9f18d6aaa5d53185a0b32c8bca0a702c170cc55a7d7ed71df0ce054b00f6bf7cd87cea1926 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-timer/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-timer", "version": "1.90.0", "port-version": 1, "description": "Boost timer module", "homepage": "https://www.boost.org/library/latest/timer/", "documentation": "https://www.boost.org/libs/timer", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-tokenizer/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/tokenizer REF boost-${VERSION} SHA512 3cb26b9038d4ed33e83afa34abf1d20f69c78fb3f657301c782a4be1fb9ebaf17d9319e58d3566821df0e9f67c859678f4bfd180e1dde6326e18ddf0821313b3 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-tokenizer/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-tokenizer", "version": "1.90.0", "port-version": 1, "description": "Boost tokenizer module", "homepage": "https://www.boost.org/library/latest/tokenizer/", "documentation": "https://www.boost.org/libs/tokenizer", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-tti/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/tti REF boost-${VERSION} SHA512 af8cc6d157ee2fc48952f23064ad4c11729c8e3e30dd4f5eb30747f1f99fff00895f1e26cc1c98c16dde94ba2f15def5decb1cc57681f7253b8f1f52b952f58e HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-tti/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-tti", "version": "1.90.0", "port-version": 1, "description": "Boost tti module", "homepage": "https://www.boost.org/library/latest/tti/", "documentation": "https://www.boost.org/libs/tti", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-function-types", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-tuple/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/tuple REF boost-${VERSION} SHA512 caee7e554c15db672c58c4267123a59769485810680757450491d4bf4c91ccfdf600066b78caf3ebb3707d15ed9452d1ac2d736db3a32a1f11fa912c2ed5a311 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-tuple/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-tuple", "version": "1.90.0", "port-version": 1, "description": "Boost tuple module", "homepage": "https://www.boost.org/library/latest/tuple/", "documentation": "https://www.boost.org/libs/tuple", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-type-erasure/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/type_erasure REF boost-${VERSION} SHA512 850126bccf067a55f64b2e66bf2d4a168387912a0b123ed189c7ed9c69de17d1f20b2044f70e1d77d2e4ad461a2c43af48d821ebdd174272af1fde61728ebbbf HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-type-erasure/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-type-erasure", "version": "1.90.0", "port-version": 1, "description": "Boost type_erasure module", "homepage": "https://www.boost.org/library/latest/type_erasure/", "documentation": "https://www.boost.org/libs/type_erasure", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-thread", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-vmd", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-type-index/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/type_index REF boost-${VERSION} SHA512 e757d4d1e1eab318c9bb9ef13e9a9de042fbc191356cc15b798e6c3154b1d6c7f9e7ad8321e6ec064509b6d0ef8939b2cecce9b4312499664181c54501c94b67 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-type-index/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-type-index", "version": "1.90.0", "port-version": 1, "description": "Boost type_index module", "homepage": "https://www.boost.org/library/latest/type_index/", "documentation": "https://www.boost.org/libs/type_index", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-type-traits/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/type_traits REF boost-${VERSION} SHA512 18665014535f6e8a65481f00422b418c0a15f6ea7286593e96ed939a74040f209539f241197316ac953c15b2ddc70e3bae33b297a1b83d78b73768a366fc7226 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-type-traits/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-type-traits", "version": "1.90.0", "port-version": 1, "description": "Boost type_traits module", "homepage": "https://www.boost.org/library/latest/type_traits/", "documentation": "https://www.boost.org/libs/type_traits", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-typeof/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/typeof REF boost-${VERSION} SHA512 8a6eaccafda47d51adb3cf2eebfb872869de576b4b23e499b62be8625e18690c024170cfbf3ca17ab765adfcd47b41eea70b650cb46126468f42dafad55fcd64 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-typeof/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-typeof", "version": "1.90.0", "port-version": 1, "description": "Boost typeof module", "homepage": "https://www.boost.org/library/latest/typeof/", "documentation": "https://www.boost.org/libs/typeof", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-ublas/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/ublas REF boost-${VERSION} SHA512 e27cc1c55e9b0adf470eeed98d5f75c8acb880ba9630104ef5fcd4bb3e4288b721a03aa90ff14e7adc3bcc30a829b80e3eaae46504517df481b14a225bdff906 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-ublas/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-ublas", "version": "1.90.0", "port-version": 1, "description": "Boost ublas module", "homepage": "https://www.boost.org/library/latest/numericublas/", "documentation": "https://www.boost.org/libs/numeric/ublas", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-compute", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-interval", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-uninstall/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) message(STATUS "\nPlease use the following command when you need to remove all boost ports/components:\n\ \"./vcpkg remove boost-uninstall:${TARGET_TRIPLET} --recurse\"\n") configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/boost/vcpkg-cmake-wrapper.cmake" @ONLY) ================================================ FILE: ports/boost-uninstall/vcpkg-cmake-wrapper.cmake ================================================ # Need to keep this file due to vcpkg.cmake otherwise injecting a different behavior. set(Boost_NO_BOOST_CMAKE OFF) _find_package(${ARGS}) ================================================ FILE: ports/boost-uninstall/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-uninstall", "version": "1.90.0", "port-version": 1, "description": "Internal vcpkg port used to uninstall Boost", "license": "MIT" } ================================================ FILE: ports/boost-units/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/units REF boost-${VERSION} SHA512 6761e542cdeb4484f4ea329ebca45097463fdb3de0834128d08cd0db0a4d9bf50bf4f8c72121d7b2a7700695cee5b6f8c124e9dbc6549dea162fbdeeac708039 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-units/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-units", "version": "1.90.0", "port-version": 1, "description": "Boost units module", "homepage": "https://www.boost.org/library/latest/units/", "documentation": "https://www.boost.org/libs/units", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-lambda", "version>=": "1.90.0" }, { "name": "boost-math", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-unordered/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/unordered REF boost-${VERSION} SHA512 5b71cbfdb28051d1b1cda92df1d25e0be02d999e118b9ce8c95bdee2373a00bcac785b3917d33b0cc15a6eaa7b48e126b170ff4380e5a555f1534cf997640d30 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-unordered/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-unordered", "version": "1.90.0", "port-version": 1, "description": "Boost unordered module", "homepage": "https://www.boost.org/library/latest/unordered/", "documentation": "https://www.boost.org/libs/unordered", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-url/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/url REF boost-${VERSION} SHA512 b90f2d4e1c6db1861a61561830a5ee9cf8abc703bfb30584bc59210578f0e249463defe4af2f13d613c27efb4ab479624b26abc6f74f207e6b131fbe9910f1d0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-url/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-url", "version": "1.90.0", "port-version": 1, "description": "Boost url module", "homepage": "https://www.boost.org/library/latest/url/", "documentation": "https://www.boost.org/libs/url", "license": "BSL-1.0", "dependencies": [ { "name": "boost-align", "version>=": "1.90.0" }, { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-system", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-variant2", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-utility/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/utility REF boost-${VERSION} SHA512 93e76aa0eb7ebaf50a8f19ba4d7110b608e41983176be6f556ae4c28f4eed02155ccf4f7d43754ae23bb427271f0af7b950acba531c73030d8359fc52edab87d HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-utility/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-utility", "version": "1.90.0", "port-version": 1, "description": "Boost utility module", "homepage": "https://www.boost.org/library/latest/utility/", "documentation": "https://www.boost.org/libs/utility", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-io", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-uuid/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/uuid REF boost-${VERSION} SHA512 5df0fdee00f2579f73e98eb1a612424995671025ab00b6f9421cde4c304e19382fa7a9b14ebca1158a3e54bf3ec20225161068b9b56805c96fa6847c01de8037 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-uuid/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-uuid", "version": "1.90.0", "port-version": 1, "description": "Boost uuid module", "homepage": "https://www.boost.org/library/latest/uuid/", "documentation": "https://www.boost.org/libs/uuid", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-variant/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/variant REF boost-${VERSION} SHA512 7aa0182d2056d4b30899eecc5959f5e338802b305e0b0f0840bf75baeb526f7f8278acfbeed90dc16f424ecf2804a2689fcc0f0c1b9cf691befbd5066a5b56f2 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-variant/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-variant", "version": "1.90.0", "port-version": 1, "description": "Boost variant module", "homepage": "https://www.boost.org/library/latest/variant/", "documentation": "https://www.boost.org/libs/variant", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-container-hash", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-detail", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-variant2/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/variant2 REF boost-${VERSION} SHA512 5f0f3b547547f630b9adf7194557cc0ea7baf851facd0e05c647fad3415c43d10ef0fff756918d47c5141bbb949771d855c1ade86300edb4222a6c76fcbc1950 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-variant2/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-variant2", "version": "1.90.0", "port-version": 1, "description": "Boost variant2 module", "homepage": "https://www.boost.org/library/latest/variant2/", "documentation": "https://www.boost.org/libs/variant2", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-mp11", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-vmd/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/vmd REF boost-${VERSION} SHA512 f7a381cedc260c3fa5ac786d0989039edb6a3298c7738e10c731ccad4796dd8a5f67caddff87f96f94ad660d08e3ff4d1545e6e66b412b85e824c78a52f0976b HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-vmd/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-vmd", "version": "1.90.0", "port-version": 1, "description": "Boost vmd module", "homepage": "https://www.boost.org/library/latest/vmd/", "documentation": "https://www.boost.org/libs/vmd", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-wave/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/wave REF boost-${VERSION} SHA512 291577b3388c9935ebd972943fb2b19fe2e2edcf78844a0e3da2429a7086edfa3bd452bdb1dd126ceecf52037b1aee99b19019253bb7819c726a5b3be7ce1cf3 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-wave/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-wave", "version": "1.90.0", "port-version": 1, "description": "Boost wave module", "homepage": "https://www.boost.org/library/latest/wave/", "documentation": "https://www.boost.org/libs/wave", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-concept-check", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-filesystem", "version>=": "1.90.0" }, { "name": "boost-format", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-multi-index", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-pool", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-serialization", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-winapi/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/winapi REF boost-${VERSION} SHA512 0526ccab2595b1067f294499858a35885ee762411af40426ac90fdf85dacda05475dc4f470c7f7a14266007977af0a45eb5ffc93570ffb6c7712c325f80777f0 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-winapi/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-winapi", "version": "1.90.0", "port-version": 1, "description": "Boost winapi module", "homepage": "https://www.boost.org/library/latest/winapi/", "documentation": "https://www.boost.org/libs/winapi", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-predef", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-xpressive/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/xpressive REF boost-${VERSION} SHA512 b890dabc987665e90e09144b43ccc8f231773809f32ecdf7b115c5f9d19bca10dc18fc15db2ca5ca2463bec4f689b3e6eb70a8383cf2bbc42066dfdf0b3bef95 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-xpressive/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-xpressive", "version": "1.90.0", "port-version": 1, "description": "Boost xpressive module", "homepage": "https://www.boost.org/library/latest/xpressive/", "documentation": "https://www.boost.org/libs/xpressive", "license": "BSL-1.0", "dependencies": [ { "name": "boost-assert", "version>=": "1.90.0" }, { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-conversion", "version>=": "1.90.0" }, { "name": "boost-core", "version>=": "1.90.0" }, { "name": "boost-exception", "version>=": "1.90.0" }, { "name": "boost-fusion", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-integer", "version>=": "1.90.0" }, { "name": "boost-iterator", "version>=": "1.90.0" }, { "name": "boost-lexical-cast", "version>=": "1.90.0" }, { "name": "boost-mpl", "version>=": "1.90.0" }, { "name": "boost-numeric-conversion", "version>=": "1.90.0" }, { "name": "boost-optional", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-proto", "version>=": "1.90.0" }, { "name": "boost-range", "version>=": "1.90.0" }, { "name": "boost-smart-ptr", "version>=": "1.90.0" }, { "name": "boost-spirit", "version>=": "1.90.0" }, { "name": "boost-static-assert", "version>=": "1.90.0" }, { "name": "boost-throw-exception", "version>=": "1.90.0" }, { "name": "boost-type-traits", "version>=": "1.90.0" }, { "name": "boost-typeof", "version>=": "1.90.0" }, { "name": "boost-utility", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boost-yap/portfile.cmake ================================================ # Automatically generated by scripts/boost/generate-ports.ps1 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO boostorg/yap REF boost-${VERSION} SHA512 04a309a512519ee0bb901a84868c1ff69dc89e3b8c4bf060c662a7c6daf3bc8ce3940de488f558a4bf6a71d39c9836ac1990c2d5f66f684d0dcc9c8b21ade171 HEAD_REF master ) set(FEATURE_OPTIONS "") boost_configure_and_install( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/boost-yap/vcpkg.json ================================================ { "$comment": "Automatically generated by scripts/boost/generate-ports.ps1", "name": "boost-yap", "version": "1.90.0", "port-version": 1, "description": "Boost yap module", "homepage": "https://www.boost.org/library/latest/yap/", "documentation": "https://www.boost.org/libs/yap", "license": "BSL-1.0", "dependencies": [ { "name": "boost-cmake", "version>=": "1.90.0" }, { "name": "boost-config", "version>=": "1.90.0" }, { "name": "boost-hana", "version>=": "1.90.0" }, { "name": "boost-headers", "version>=": "1.90.0" }, { "name": "boost-preprocessor", "version>=": "1.90.0" }, { "name": "boost-type-index", "version>=": "1.90.0" } ] } ================================================ FILE: ports/boringssl/0001-static-gtest.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 06ce07e..aa3381a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -485,7 +485,7 @@ if(BUILD_TESTING) # Add minimal googletest targets. The provided one has many side-effects, and # googletest has a very straightforward build. add_library( - boringssl_gtest + boringssl_gtest STATIC third_party/googletest/googlemock/src/gmock-all.cc third_party/googletest/googletest/src/gtest-all.cc ) ================================================ FILE: ports/boringssl/0002-remove-WX-Werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 06ce07e..1b00154 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,7 @@ set(CMAKE_C_STANDARD_REQUIRED ON) if(CMAKE_COMPILER_IS_GNUCXX OR CLANG) # Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration # primarily on our normal Clang one. - set(C_CXX_FLAGS "-fno-strict-aliasing -Werror -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits -Wmissing-field-initializers") + set(C_CXX_FLAGS "-fno-strict-aliasing -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits -Wmissing-field-initializers") if(MSVC) # clang-cl sets different default warnings than clang. It also treats -Wall # as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall. @@ -213,12 +213,12 @@ elseif(MSVC) ) string(REPLACE "C" " -wd" MSVC_DISABLED_WARNINGS_STR ${MSVC_DISABLED_WARNINGS_LIST}) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -utf-8 -W4 ${MSVC_DISABLED_WARNINGS_STR}") # Without /Zc:__cplusplus, MSVC does not define the right value for # __cplusplus. See https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ # If this becomes too problematic for downstream code, we can look at # _MSVC_LANG. - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR} -Zc:__cplusplus") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -utf-8 -W4 ${MSVC_DISABLED_WARNINGS_STR} -Zc:__cplusplus") endif() if(WIN32) ================================================ FILE: ports/boringssl/0003-fix-shared-symbol-visibility.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 06ce07e..48fc755 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,8 +253,6 @@ if(FUZZ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls") endif() -add_definitions(-DBORINGSSL_IMPLEMENTATION) - if(BUILD_SHARED_LIBS) add_definitions(-DBORINGSSL_SHARED_LIBRARY) # Enable position-independent code globally. This is needed because @@ -618,6 +616,7 @@ target_include_directories(crypto PUBLIC $ ) set_property(TARGET crypto PROPERTY EXPORT_NAME Crypto) +target_compile_definitions(crypto PRIVATE BORINGSSL_IMPLEMENTATION) if(FIPS_SHARED) # Rewrite libcrypto.so to inject the correct module hash value. This assumes @@ -663,6 +662,7 @@ add_library(ssl ${SSL_SOURCES}) # here. set_property(TARGET ssl PROPERTY EXPORT_NAME SSL) target_link_libraries(ssl crypto) +target_compile_definitions(ssl PRIVATE BORINGSSL_IMPLEMENTATION) add_library(decrepit ${DECREPIT_SOURCES}) target_link_libraries(decrepit ssl crypto) @@ -672,6 +672,7 @@ if(APPLE) endif() add_library(pki ${PKI_SOURCES}) target_link_libraries(pki crypto) +target_compile_definitions(pki PRIVATE BORINGSSL_IMPLEMENTATION) target_compile_options(pki PRIVATE ${PKI_CXX_FLAGS}) if(BUILD_TESTING) ================================================ FILE: ports/boringssl/install-pc-files.cmake ================================================ function(install_pc_file name pc_data) # fix platform-specific details if (NOT VCPKG_TARGET_IS_WINDOWS) string(REPLACE "-lcrypt32" "" pc_data "${pc_data}") string(REPLACE "-lws2_32" "" pc_data "${pc_data}") string(REPLACE "-llibssl" "-lssl" pc_data "${pc_data}") string(REPLACE "-llibcrypto" "-lcrypto" pc_data "${pc_data}") elseif (NOT VCPKG_TARGET_IS_MINGW) string(REPLACE "-llibssl" "-lssl" pc_data "${pc_data}") string(REPLACE "-llibcrypto" "-lcrypto" pc_data "${pc_data}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") configure_file("${CMAKE_CURRENT_LIST_DIR}/openssl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${name}.pc" @ONLY) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(VCPKG_TARGET_IS_WINDOWS) if (NOT VCPKG_TARGET_IS_MINGW) string(REPLACE "-lssl" "-lssld" pc_data "${pc_data}") string(REPLACE "-lcrypto" "-lcryptod" pc_data "${pc_data}") else() string(REPLACE "-llibssl" "-llibssld" pc_data "${pc_data}") string(REPLACE "-llibcrypto" "-llibcryptod" pc_data "${pc_data}") endif() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/openssl.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${name}.pc" @ONLY) endif() endfunction() install_pc_file(openssl [[ Name: BoringSSL Description: Secure Sockets Layer and cryptography libraries and tools Requires: libssl libcrypto ]]) install_pc_file(libssl [[ Name: BoringSSL-libssl Description: Secure Sockets Layer and cryptography libraries Libs: -L"${libdir}" -llibssl Requires: libcrypto Cflags: -I"${includedir}" ]]) install_pc_file(libcrypto [[ Name: BoringSSL-libcrypto Description: OpenSSL cryptography library Libs: -L"${libdir}" -llibcrypto Libs.private: -lcrypt32 -lws2_32 Cflags: -I"${includedir}" ]]) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/boringssl/openssl.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Version: @OPENSSL_VERSION@ @pc_data@ ================================================ FILE: ports/boringssl/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h") message(FATAL_ERROR "Can't build BoringSSL if OpenSSL is installed. Please remove OpenSSL, and try to install BoringSSL again if you need it. Build will continue since BoringSSL is a drop-in replacement for OpenSSL") endif() vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH "${PERL}" DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${NASM_EXE_PATH}") vcpkg_find_acquire_program(GO) get_filename_component(GO_EXE_PATH "${GO}" DIRECTORY) vcpkg_add_to_path("${GO_EXE_PATH}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/boringssl REF 0.20250818.0 SHA512 49404ac5a5fd0fd4254f24b586e5d6ae139df48b9163f865a1a16a7e6c27b9a9373863ffc89b5b3be20bbe01cce788cc146c887692be332ae4f522482862ccac HEAD_REF master PATCHES 0001-static-gtest.patch 0002-remove-WX-Werror.patch 0003-fix-shared-symbol-visibility.patch ) set(BORINGSSL_OPTIONS) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") # MSVC armasm64 expects MASM syntax; BoringSSL uses GNU asm on arm64, so force the C fallback. list(APPEND BORINGSSL_OPTIONS "-DOPENSSL_NO_ASM=ON") endif() if(VCPKG_TARGET_IS_WINDOWS) # the FindOpenSSL.cmake script differentiates debug and release binaries using this suffix. set(CMAKE_CONFIGURE_OPTIONS_DEBUG "-DCMAKE_DEBUG_POSTFIX=d") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${BORINGSSL_OPTIONS} OPTIONS_DEBUG ${CMAKE_CONFIGURE_OPTIONS_DEBUG} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME OpenSSL CONFIG_PATH lib/cmake/OpenSSL) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_tools(TOOL_NAMES bssl AUTO_CLEAN) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() include("${CMAKE_CURRENT_LIST_DIR}/install-pc-files.cmake") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/boringssl/usage ================================================ boringssl can be found via the built-in CMake find-module: find_package(OpenSSL REQUIRED) target_link_libraries(main PRIVATE OpenSSL::SSL OpenSSL::Crypto) ================================================ FILE: ports/boringssl/vcpkg.json ================================================ { "name": "boringssl", "version-date": "2025-08-18", "description": "BoringSSL is a fork of OpenSSL developed by Google", "homepage": "https://boringssl.googlesource.com/boringssl", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/botan/botan-3.10-illegal-instruction.patch ================================================ This patch fixes illegal instruction faults on some CPU models, see the following upstream bug for context: https://github.com/randombit/botan/issues/5260 The patch contains the following commits backported to Botan 3.10: 8d560d3 Add missing BOTAN_FN_ISA_SIMD annotations aff0275 Add missing FN_ISA annotations to SIMD_4x64 c5aaf01 Don't use ISA flags during compilation anymore d9e5c84 Add missing ISA annotations to SIMD_2x64 4a0cad9 Add explicit SIMD instruction requirements for simd_4x32 diff -ru botan.orig/configure.py botan/configure.py --- botan.orig/configure.py 2026-02-15 10:13:09.356704027 +0000 +++ botan/configure.py 2026-02-15 10:13:54.132569066 +0000 @@ -1378,32 +1378,6 @@ return None - def get_isa_specific_flags(self, isas, arch, options): - flags = set() - - def simd32_impl(): - for simd_isa in ['ssse3', 'altivec', 'neon']: - if simd_isa in arch.isa_extensions and \ - (simd_isa, arch.basename) not in options.disable_intrinsics and \ - self.isa_flags_for(simd_isa, arch.basename): - return simd_isa - return None - - for isa in isas: - - if isa == 'simd': - isa = simd32_impl() - - if isa is None: - continue - - flagset = self.isa_flags_for(isa, arch.basename) - if flagset is None: - raise UserError('Compiler %s does not support %s' % (self.basename, isa)) - flags.add(flagset) - - return " ".join(sorted(flags)) - def gen_lib_flags(self, options, variables): """ Return any flags specific to building the library @@ -1975,7 +1949,7 @@ name = name.replace('.cpp', obj_suffix) yield normalize_source_path(os.path.join(obj_dir, name)) -def generate_build_info(build_paths, modules, cc, arch, osinfo, options): +def generate_build_info(build_paths, modules, osinfo, options): # first create a map of src_file->owning module module_that_owns = {} @@ -1984,27 +1958,12 @@ for src in mod.sources(): module_that_owns[src] = mod - def _isa_specific_flags(src): - if os.path.basename(src) == 'test_simd.cpp': - return cc.get_isa_specific_flags(['simd'], arch, options) - - if src in module_that_owns: - module = module_that_owns[src] - isas = module.isas_needed(arch.basename) - if 'simd_4x32' in module.dependencies(osinfo, arch): - isas.append('simd') - - return cc.get_isa_specific_flags(isas, arch, options) - - return '' - def _build_info(sources, objects, target_type): output = [] for (obj_file, src) in zip(objects, sources): info = { 'src': src, 'obj': obj_file, - 'isa_flags': _isa_specific_flags(src) } if target_type in ['fuzzer', 'examples']: @@ -2024,8 +1983,6 @@ targets = ['lib', 'cli', 'test', 'fuzzer', 'examples'] - out['isa_build_info'] = [] - fuzzer_bin = [] example_bin = [] @@ -2044,10 +2001,6 @@ objects = list(yield_objectfile_list(src_list, src_dir, osinfo.obj_suffix, options)) build_info = _build_info(src_list, objects, t) - for b in build_info: - if b['isa_flags'] != '': - out['isa_build_info'].append(b) - if t == 'fuzzer': fuzzer_bin = [b['exe'] for b in build_info] elif t == 'examples': @@ -3493,7 +3446,7 @@ logging.info('Auto-detected compiler arch %s', cc_output) return cc_output -def do_io_for_build(cc, arch, osinfo, using_mods, info_modules, build_paths, source_paths, template_vars, options): +def do_io_for_build(osinfo, using_mods, info_modules, build_paths, source_paths, template_vars, options): try: robust_rmtree(build_paths.build_dir) except OSError as ex: @@ -3573,7 +3526,7 @@ if options.build_shared_lib: logging.warning('Unless you are building a DLL or .so from the amalgamation, use --disable-shared as well') - template_vars.update(generate_build_info(build_paths, using_mods, cc, arch, osinfo, options)) + template_vars.update(generate_build_info(build_paths, using_mods, osinfo, options)) with open(os.path.join(build_paths.build_dir, 'build_config.json'), 'w', encoding='utf8') as f: json.dump(template_vars, f, sort_keys=True, indent=2) @@ -3763,7 +3716,7 @@ template_vars = create_template_vars(source_paths, build_paths, options, using_mods, not_using_mods, cc, arch, osinfo) # Now we start writing to disk - do_io_for_build(cc, arch, osinfo, using_mods, info_modules, build_paths, source_paths, template_vars, options) + do_io_for_build(osinfo, using_mods, info_modules, build_paths, source_paths, template_vars, options) return 0 diff -ru botan.orig/src/build-data/compile_commands.json.in botan/src/build-data/compile_commands.json.in --- botan.orig/src/build-data/compile_commands.json.in 2026-02-15 10:13:09.360704013 +0000 +++ botan/src/build-data/compile_commands.json.in 2026-02-15 10:13:54.132569066 +0000 @@ -1,28 +1,28 @@ [ %{for lib_build_info} { "directory": "%{abs_root_dir}", - "command": "%{cxx} %{lib_flags} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", + "command": "%{cxx} %{lib_flags} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", "file": "%{src}" }, %{endfor} %{for test_build_info} { "directory": "%{abs_root_dir}", - "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", + "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", "file": "%{src}" }, %{endfor} %{for examples_build_info} { "directory": "%{abs_root_dir}", - "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} %{cc_warning_flags} %{isa_flags} %{public_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", + "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} %{cc_warning_flags} %{public_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", "file": "%{src}" }, %{endfor} %{for fuzzer_build_info} { "directory": "%{abs_root_dir}", - "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", + "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", "file": "%{src}" }, %{endfor} @@ -37,7 +37,7 @@ %{for cli_build_info} { "directory": "%{abs_root_dir}", - "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", + "command": "%{cxx} %{cc_sysroot} %{cxx_abi_flags} %{cc_lang_flags} %{os_feature_macros} %{cc_compile_flags} -DBOTAN_IS_BEING_BUILT %{cc_warning_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}%{obj}", "file": "%{src}" }%{omitlast ,} %{endfor} diff -ru botan.orig/src/build-data/makefile.in botan/src/build-data/makefile.in --- botan.orig/src/build-data/makefile.in 2026-02-15 10:13:27.148650401 +0000 +++ botan/src/build-data/makefile.in 2026-02-15 10:13:54.132569066 +0000 @@ -151,22 +151,22 @@ %{for lib_build_info} %{obj}: %{src} - $(CXX) $(LIB_FLAGS) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ + $(CXX) $(LIB_FLAGS) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ %{endfor} %{for cli_build_info} %{obj}: %{src} - $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ + $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ %{endfor} %{for test_build_info} %{obj}: %{src} - $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ + $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ %{endfor} %{for fuzzer_build_info} %{obj}: %{src} - $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ + $(CXX) $(BUILD_FLAGS) -DBOTAN_IS_BEING_BUILT %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ %{exe}: %{obj} $(LIBRARIES) $(EXE_LINK_CMD) $(ABI_FLAGS) %{obj} $(BUILD_DIR_LINK_PATH) $(LANG_EXE_FLAGS) $(LDFLAGS) $(EXE_LINKS_TO) %{fuzzer_lib} %{output_to_exe}$@ @@ -174,7 +174,7 @@ %{for examples_build_info} %{obj}: %{src} - $(CXX) $(BUILD_FLAGS) %{isa_flags} %{public_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ + $(CXX) $(BUILD_FLAGS) %{public_include_flags} %{external_include_flags} %{dash_c} %{src} %{dash_o}$@ %{exe}: %{obj} $(LIBRARIES) $(EXE_LINK_CMD) $(ABI_FLAGS) %{obj} $(BUILD_DIR_LINK_PATH) $(LANG_EXE_FLAGS) $(LDFLAGS) $(EXE_LINKS_TO) %{fuzzer_lib} %{output_to_exe}$@ diff -ru botan.orig/src/build-data/ninja.in botan/src/build-data/ninja.in --- botan.orig/src/build-data/ninja.in 2026-02-15 10:13:09.360704013 +0000 +++ botan/src/build-data/ninja.in 2026-02-15 10:13:54.132569066 +0000 @@ -28,7 +28,7 @@ %{if ninja_header_deps_style} deps = %{ninja_header_deps_style} %{endif} - command = %{cxx} %{lib_flags} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} -DBOTAN_IS_BEING_BUILT ${WARN_FLAGS} ${isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out + command = %{cxx} %{lib_flags} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} -DBOTAN_IS_BEING_BUILT ${WARN_FLAGS} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out rule compile_exe %{if header_deps_out} @@ -37,7 +37,7 @@ %{if ninja_header_deps_style} deps = %{ninja_header_deps_style} %{endif} - command = %{cxx} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} -DBOTAN_IS_BEING_BUILT ${WARN_FLAGS} ${isa_flags} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out + command = %{cxx} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} -DBOTAN_IS_BEING_BUILT ${WARN_FLAGS} %{public_include_flags} %{internal_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out rule compile_example_exe %{if header_deps_out} @@ -46,7 +46,7 @@ %{if ninja_header_deps_style} deps = %{ninja_header_deps_style} %{endif} - command = %{cxx} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} ${WARN_FLAGS} ${isa_flags} %{public_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out + command = %{cxx} ${ABI_FLAGS} ${LANG_FLAGS} ${CXXFLAGS} ${WARN_FLAGS} %{public_include_flags} %{external_include_flags} %{header_deps_flag} %{header_deps_out|concat: $out.d} %{dash_c} $in %{dash_o}$out # The primary target build all: phony %{all_targets} @@ -212,7 +212,6 @@ %{for lib_build_info} build %{obj}: compile_lib %{src} - isa_flags = %{isa_flags} %{endfor} %{for cli_build_info} diff -ru botan.orig/src/lib/block/aes/aes_ni/aes_ni.cpp botan/src/lib/block/aes/aes_ni/aes_ni.cpp --- botan.orig/src/lib/block/aes/aes_ni/aes_ni.cpp 2026-02-15 10:13:09.368703990 +0000 +++ botan/src/lib/block/aes/aes_ni/aes_ni.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -68,7 +68,8 @@ return _mm_xor_si128(key, key_with_rcon); } -BOTAN_FORCE_INLINE void keyxor(SIMD_4x32 K, SIMD_4x32& B0, SIMD_4x32& B1, SIMD_4x32& B2, SIMD_4x32& B3) { +BOTAN_FORCE_INLINE BOTAN_FN_ISA_AESNI void keyxor( + SIMD_4x32 K, SIMD_4x32& B0, SIMD_4x32& B1, SIMD_4x32& B2, SIMD_4x32& B3) { B0 ^= K; B1 ^= K; B2 ^= K; diff -ru botan.orig/src/lib/block/aes/aes_vperm/aes_vperm.cpp botan/src/lib/block/aes/aes_vperm/aes_vperm.cpp --- botan.orig/src/lib/block/aes/aes_vperm/aes_vperm.cpp 2026-02-15 10:13:09.368703990 +0000 +++ botan/src/lib/block/aes/aes_vperm/aes_vperm.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -110,11 +110,11 @@ const SIMD_4x32 lo_nibs_mask = SIMD_4x32::splat_u8(0x0F); -inline SIMD_4x32 low_nibs(SIMD_4x32 x) { +inline SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 low_nibs(SIMD_4x32 x) { return lo_nibs_mask & x; } -inline SIMD_4x32 high_nibs(SIMD_4x32 x) { +inline SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 high_nibs(SIMD_4x32 x) { return (x.shr<4>() & lo_nibs_mask); } @@ -273,7 +273,7 @@ } // namespace -void AES_128::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_128::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[11] = { SIMD_4x32::load_le(&m_EK[4 * 0]), SIMD_4x32::load_le(&m_EK[4 * 1]), @@ -291,7 +291,7 @@ return vperm_encrypt_blocks(in, out, blocks, K, 10); } -void AES_128::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_128::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[11] = { SIMD_4x32::load_le(&m_DK[4 * 0]), SIMD_4x32::load_le(&m_DK[4 * 1]), @@ -309,7 +309,7 @@ return vperm_decrypt_blocks(in, out, blocks, K, 10); } -void AES_192::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_192::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[13] = { SIMD_4x32::load_le(&m_EK[4 * 0]), SIMD_4x32::load_le(&m_EK[4 * 1]), @@ -329,7 +329,7 @@ return vperm_encrypt_blocks(in, out, blocks, K, 12); } -void AES_192::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_192::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[13] = { SIMD_4x32::load_le(&m_DK[4 * 0]), SIMD_4x32::load_le(&m_DK[4 * 1]), @@ -349,7 +349,7 @@ return vperm_decrypt_blocks(in, out, blocks, K, 12); } -void AES_256::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_256::vperm_encrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[15] = { SIMD_4x32::load_le(&m_EK[4 * 0]), SIMD_4x32::load_le(&m_EK[4 * 1]), @@ -371,7 +371,7 @@ return vperm_encrypt_blocks(in, out, blocks, K, 14); } -void AES_256::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { +void BOTAN_FN_ISA_SIMD_4X32 AES_256::vperm_decrypt_n(const uint8_t in[], uint8_t out[], size_t blocks) const { const SIMD_4x32 K[15] = { SIMD_4x32::load_le(&m_DK[4 * 0]), SIMD_4x32::load_le(&m_DK[4 * 1]), @@ -492,7 +492,7 @@ // NOLINTBEGIN(readability-container-data-pointer) -void AES_128::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { +void BOTAN_FN_ISA_SIMD_4X32 AES_128::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { m_EK.resize(11 * 4); m_DK.resize(11 * 4); @@ -516,7 +516,7 @@ aes_schedule_mangle_last_dec(key).store_le(&m_DK[0]); } -void AES_192::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { +void BOTAN_FN_ISA_SIMD_4X32 AES_192::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { m_EK.resize(13 * 4); m_DK.resize(13 * 4); @@ -559,7 +559,7 @@ } } -void AES_256::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { +void BOTAN_FN_ISA_SIMD_4X32 AES_256::vperm_key_schedule(const uint8_t keyb[], size_t /*unused*/) { m_EK.resize(15 * 4); m_DK.resize(15 * 4); diff -ru botan.orig/src/lib/block/aes/aes_vperm/info.txt botan/src/lib/block/aes/aes_vperm/info.txt --- botan.orig/src/lib/block/aes/aes_vperm/info.txt 2026-02-15 10:13:09.368703990 +0000 +++ botan/src/lib/block/aes/aes_vperm/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -8,11 +8,8 @@ -x86_32:sse2 -x86_64:sse2 x86_32:ssse3 x86_64:ssse3 -x32:sse2 x32:ssse3 arm32:neon arm64:neon diff -ru botan.orig/src/lib/block/noekeon/noekeon_simd/info.txt botan/src/lib/block/noekeon/noekeon_simd/info.txt --- botan.orig/src/lib/block/noekeon/noekeon_simd/info.txt 2026-02-15 10:13:09.368703990 +0000 +++ botan/src/lib/block/noekeon/noekeon_simd/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -11,3 +11,14 @@ cpuid simd_4x32 + + +x86_32:ssse3 +x86_64:ssse3 +x32:ssse3 +arm32:neon +arm64:neon +ppc32:altivec +ppc64:altivec +loongarch64:lsx + diff -ru botan.orig/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp botan/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp --- botan.orig/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp 2026-02-15 10:13:09.368703990 +0000 +++ botan/src/lib/block/noekeon/noekeon_simd/noekeon_simd.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -16,14 +16,14 @@ /* * Noekeon's Theta Operation */ -inline void theta(SIMD_4x32& A0, - SIMD_4x32& A1, - SIMD_4x32& A2, - SIMD_4x32& A3, - const SIMD_4x32& K0, - const SIMD_4x32& K1, - const SIMD_4x32& K2, - const SIMD_4x32& K3) { +inline void BOTAN_FN_ISA_SIMD_4X32 theta(SIMD_4x32& A0, + SIMD_4x32& A1, + SIMD_4x32& A2, + SIMD_4x32& A3, + const SIMD_4x32& K0, + const SIMD_4x32& K1, + const SIMD_4x32& K2, + const SIMD_4x32& K3) { SIMD_4x32 T = A0 ^ A2; T ^= T.rotl<8>() ^ T.rotr<8>(); A1 ^= T; @@ -43,7 +43,7 @@ /* * Noekeon's Gamma S-Box Layer */ -inline void gamma(SIMD_4x32& A0, SIMD_4x32& A1, SIMD_4x32& A2, SIMD_4x32& A3) { +inline void BOTAN_FN_ISA_SIMD_4X32 gamma(SIMD_4x32& A0, SIMD_4x32& A1, SIMD_4x32& A2, SIMD_4x32& A3) { A1 ^= ~(A2 | A3); A0 ^= A2 & A1; @@ -62,7 +62,7 @@ /* * Noekeon Encryption */ -void Noekeon::simd_encrypt_4(const uint8_t in[], uint8_t out[]) const { +void BOTAN_FN_ISA_SIMD_4X32 Noekeon::simd_encrypt_4(const uint8_t in[], uint8_t out[]) const { const SIMD_4x32 K0 = SIMD_4x32::splat(m_EK[0]); const SIMD_4x32 K1 = SIMD_4x32::splat(m_EK[1]); const SIMD_4x32 K2 = SIMD_4x32::splat(m_EK[2]); @@ -105,7 +105,7 @@ /* * Noekeon Encryption */ -void Noekeon::simd_decrypt_4(const uint8_t in[], uint8_t out[]) const { +void BOTAN_FN_ISA_SIMD_4X32 Noekeon::simd_decrypt_4(const uint8_t in[], uint8_t out[]) const { const SIMD_4x32 K0 = SIMD_4x32::splat(m_DK[0]); const SIMD_4x32 K1 = SIMD_4x32::splat(m_DK[1]); const SIMD_4x32 K2 = SIMD_4x32::splat(m_DK[2]); diff -ru botan.orig/src/lib/block/serpent/serpent_fn.h botan/src/lib/block/serpent/serpent_fn.h --- botan.orig/src/lib/block/serpent/serpent_fn.h 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/block/serpent/serpent_fn.h 2026-02-15 10:13:54.132569066 +0000 @@ -67,7 +67,7 @@ explicit Key_Inserter(const uint32_t* RK) : m_RK(RK) {} template - inline void operator()(size_t R, T& B0, T& B1, T& B2, T& B3) const { + BOTAN_FORCE_INLINE void operator()(size_t R, T& B0, T& B1, T& B2, T& B3) const { B0 ^= m_RK[4 * R]; B1 ^= m_RK[4 * R + 1]; B2 ^= m_RK[4 * R + 2]; diff -ru botan.orig/src/lib/block/serpent/serpent_simd/info.txt botan/src/lib/block/serpent/serpent_simd/info.txt --- botan.orig/src/lib/block/serpent/serpent_simd/info.txt 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/block/serpent/serpent_simd/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -11,3 +11,14 @@ cpuid simd_4x32 + + +x86_32:ssse3 +x86_64:ssse3 +x32:ssse3 +arm32:neon +arm64:neon +ppc32:altivec +ppc64:altivec +loongarch64:lsx + diff -ru botan.orig/src/lib/block/serpent/serpent_simd/serpent_simd.cpp botan/src/lib/block/serpent/serpent_simd/serpent_simd.cpp --- botan.orig/src/lib/block/serpent/serpent_simd/serpent_simd.cpp 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/block/serpent/serpent_simd/serpent_simd.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -15,7 +15,7 @@ /* * SIMD Serpent Encryption of 4 blocks in parallel */ -void Serpent::simd_encrypt_4(const uint8_t in[64], uint8_t out[64]) const { +void BOTAN_FN_ISA_SIMD_4X32 Serpent::simd_encrypt_4(const uint8_t in[64], uint8_t out[64]) const { using namespace Botan::Serpent_F; SIMD_4x32 B0 = SIMD_4x32::load_le(in); @@ -138,7 +138,7 @@ /* * SIMD Serpent Decryption of 4 blocks in parallel */ -void Serpent::simd_decrypt_4(const uint8_t in[64], uint8_t out[64]) const { +void BOTAN_FN_ISA_SIMD_4X32 Serpent::simd_decrypt_4(const uint8_t in[64], uint8_t out[64]) const { using namespace Botan::Serpent_F; SIMD_4x32 B0 = SIMD_4x32::load_le(in); diff -ru botan.orig/src/lib/block/shacal2/shacal2_simd/info.txt botan/src/lib/block/shacal2/shacal2_simd/info.txt --- botan.orig/src/lib/block/shacal2/shacal2_simd/info.txt 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/block/shacal2/shacal2_simd/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -11,3 +11,14 @@ cpuid simd_4x32 + + +x86_32:ssse3 +x86_64:ssse3 +x32:ssse3 +arm32:neon +arm64:neon +ppc32:altivec +ppc64:altivec +loongarch64:lsx + diff -ru botan.orig/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp botan/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp --- botan.orig/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/block/shacal2/shacal2_simd/shacal2_simd.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -13,29 +13,29 @@ namespace { -inline void SHACAL2_Fwd(const SIMD_4x32& A, - const SIMD_4x32& B, - const SIMD_4x32& C, - SIMD_4x32& D, - const SIMD_4x32& E, - const SIMD_4x32& F, - const SIMD_4x32& G, - SIMD_4x32& H, - uint32_t RK) { +inline void BOTAN_FN_ISA_SIMD_4X32 SHACAL2_Fwd(const SIMD_4x32& A, + const SIMD_4x32& B, + const SIMD_4x32& C, + SIMD_4x32& D, + const SIMD_4x32& E, + const SIMD_4x32& F, + const SIMD_4x32& G, + SIMD_4x32& H, + uint32_t RK) { H += E.sigma1() + SIMD_4x32::choose(E, F, G) + SIMD_4x32::splat(RK); D += H; H += A.sigma0() + SIMD_4x32::majority(A, B, C); } -inline void SHACAL2_Rev(const SIMD_4x32& A, - const SIMD_4x32& B, - const SIMD_4x32& C, - SIMD_4x32& D, - const SIMD_4x32& E, - const SIMD_4x32& F, - const SIMD_4x32& G, - SIMD_4x32& H, - uint32_t RK) { +inline void BOTAN_FN_ISA_SIMD_4X32 SHACAL2_Rev(const SIMD_4x32& A, + const SIMD_4x32& B, + const SIMD_4x32& C, + SIMD_4x32& D, + const SIMD_4x32& E, + const SIMD_4x32& F, + const SIMD_4x32& G, + SIMD_4x32& H, + uint32_t RK) { H -= A.sigma0() + SIMD_4x32::majority(A, B, C); D -= H; H -= E.sigma1() + SIMD_4x32::choose(E, F, G) + SIMD_4x32::splat(RK); @@ -43,7 +43,7 @@ } // namespace -void SHACAL2::simd_encrypt_4(const uint8_t in[], uint8_t out[]) const { +void BOTAN_FN_ISA_SIMD_4X32 SHACAL2::simd_encrypt_4(const uint8_t in[], uint8_t out[]) const { SIMD_4x32 A = SIMD_4x32::load_be(in); SIMD_4x32 E = SIMD_4x32::load_be(in + 16); SIMD_4x32 B = SIMD_4x32::load_be(in + 32); @@ -82,7 +82,7 @@ H.store_be(out + 112); } -void SHACAL2::simd_decrypt_4(const uint8_t in[], uint8_t out[]) const { +void BOTAN_FN_ISA_SIMD_4X32 SHACAL2::simd_decrypt_4(const uint8_t in[], uint8_t out[]) const { SIMD_4x32 A = SIMD_4x32::load_be(in); SIMD_4x32 E = SIMD_4x32::load_be(in + 16); SIMD_4x32 B = SIMD_4x32::load_be(in + 32); diff -ru botan.orig/src/lib/entropy/rdseed/rdseed.cpp botan/src/lib/entropy/rdseed/rdseed.cpp --- botan.orig/src/lib/entropy/rdseed/rdseed.cpp 2026-02-15 10:13:09.372703977 +0000 +++ botan/src/lib/entropy/rdseed/rdseed.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -21,7 +21,7 @@ namespace { -BOTAN_FUNC_ISA("rdseed") bool read_rdseed(secure_vector& seed) { +BOTAN_FUNC_ISA("rdseed,sse2") bool read_rdseed(secure_vector& seed) { /* * RDSEED is not guaranteed to generate an output within any specific number * of attempts. However in testing on a Skylake system, with all hyperthreads diff -ru botan.orig/src/lib/hash/sha1/sha1_simd/info.txt botan/src/lib/hash/sha1/sha1_simd/info.txt --- botan.orig/src/lib/hash/sha1/sha1_simd/info.txt 2026-02-15 10:13:09.376703967 +0000 +++ botan/src/lib/hash/sha1/sha1_simd/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -8,11 +8,8 @@ -x86_32:sse2 -x86_64:sse2 x86_32:ssse3 x86_64:ssse3 -x32:sse2 x32:ssse3 arm32:neon arm64:neon diff -ru botan.orig/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp --- botan.orig/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp 2026-02-15 10:13:09.376703967 +0000 +++ botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -43,7 +43,10 @@ and on output: W0 = W[t]..W[t+3] */ -BOTAN_FORCE_INLINE SIMD_4x32 sha1_simd_next_w(SIMD_4x32& XW0, SIMD_4x32 XW1, SIMD_4x32 XW2, SIMD_4x32 XW3) { +BOTAN_FORCE_INLINE SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 sha1_simd_next_w(SIMD_4x32& XW0, + SIMD_4x32 XW1, + SIMD_4x32 XW2, + SIMD_4x32 XW3) { SIMD_4x32 T0 = XW0; // W[t-16..t-13] T0 ^= SIMD_4x32::alignr8(XW1, XW0); // W[t-14..t-11] T0 ^= XW2; // W[t-8..t-5] diff -ru botan.orig/src/lib/hash/sha2_32/sha2_32_simd/info.txt botan/src/lib/hash/sha2_32/sha2_32_simd/info.txt --- botan.orig/src/lib/hash/sha2_32/sha2_32_simd/info.txt 2026-02-15 10:13:09.376703967 +0000 +++ botan/src/lib/hash/sha2_32/sha2_32_simd/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -30,6 +30,17 @@ #loongson64 + +x86_32:ssse3 +x86_64:ssse3 +x32:ssse3 +arm32:neon +arm64:neon +ppc32:altivec +ppc64:altivec +loongarch64:lsx + + cpuid simd_4x32 diff -ru botan.orig/src/lib/misc/zfec/zfec_sse2/zfec_sse2.cpp botan/src/lib/misc/zfec/zfec_sse2/zfec_sse2.cpp --- botan.orig/src/lib/misc/zfec/zfec_sse2/zfec_sse2.cpp 2026-02-15 10:13:09.380703953 +0000 +++ botan/src/lib/misc/zfec/zfec_sse2/zfec_sse2.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -16,11 +16,11 @@ // NOLINTBEGIN(portability-simd-intrinsics) -inline SIMD_4x32 rshift_1_u8(SIMD_4x32 v) { +inline SIMD_4x32 BOTAN_FN_ISA_SSE2 rshift_1_u8(SIMD_4x32 v) { return SIMD_4x32(_mm_add_epi8(v.raw(), v.raw())); } -inline SIMD_4x32 high_bit_set_u8(SIMD_4x32 v) { +inline SIMD_4x32 BOTAN_FN_ISA_SSE2 high_bit_set_u8(SIMD_4x32 v) { return SIMD_4x32(_mm_cmpgt_epi8(_mm_setzero_si128(), v.raw())); } diff -ru botan.orig/src/lib/misc/zfec/zfec_vperm/info.txt botan/src/lib/misc/zfec/zfec_vperm/info.txt --- botan.orig/src/lib/misc/zfec/zfec_vperm/info.txt 2026-02-15 10:13:09.380703953 +0000 +++ botan/src/lib/misc/zfec/zfec_vperm/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -8,8 +8,6 @@ -x86_32:sse2 -x86_64:sse2 x86_32:ssse3 x86_64:ssse3 arm32:neon diff -ru botan.orig/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp --- botan.orig/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp 2026-02-15 10:13:09.384703943 +0000 +++ botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -13,14 +13,14 @@ namespace { -BOTAN_FORCE_INLINE void blamka_G(SIMD_2x64& A0, - SIMD_2x64& A1, - SIMD_2x64& B0, - SIMD_2x64& B1, - SIMD_2x64& C0, - SIMD_2x64& C1, - SIMD_2x64& D0, - SIMD_2x64& D1) { +BOTAN_FORCE_INLINE BOTAN_FN_ISA_SIMD_2X64 void blamka_G(SIMD_2x64& A0, + SIMD_2x64& A1, + SIMD_2x64& B0, + SIMD_2x64& B1, + SIMD_2x64& C0, + SIMD_2x64& C1, + SIMD_2x64& D0, + SIMD_2x64& D1) { A0 += B0 + SIMD_2x64::mul2_32(A0, B0); A1 += B1 + SIMD_2x64::mul2_32(A1, B1); D0 ^= A0; @@ -50,14 +50,14 @@ B1 = B1.rotr<63>(); } -BOTAN_FORCE_INLINE void blamka_R(SIMD_2x64& A0, - SIMD_2x64& A1, - SIMD_2x64& B0, - SIMD_2x64& B1, - SIMD_2x64& C0, - SIMD_2x64& C1, - SIMD_2x64& D0, - SIMD_2x64& D1) { +BOTAN_FORCE_INLINE BOTAN_FN_ISA_SIMD_2X64 void blamka_R(SIMD_2x64& A0, + SIMD_2x64& A1, + SIMD_2x64& B0, + SIMD_2x64& B1, + SIMD_2x64& C0, + SIMD_2x64& C1, + SIMD_2x64& D0, + SIMD_2x64& D1) { blamka_G(A0, A1, B0, B1, C0, C1, D0, D1); SIMD_2x64::twist(B0, B1, C0, C1, D0, D1); @@ -67,7 +67,7 @@ } // namespace -void Argon2::blamka_ssse3(uint64_t N[128], uint64_t T[128]) { +void BOTAN_FN_ISA_SIMD_2X64 Argon2::blamka_ssse3(uint64_t N[128], uint64_t T[128]) { for(size_t i = 0; i != 8; ++i) { SIMD_2x64 Tv[8]; for(size_t j = 0; j != 4; ++j) { diff -ru botan.orig/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp botan/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp --- botan.orig/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp 2026-02-15 10:13:09.400703894 +0000 +++ botan/src/lib/stream/chacha/chacha_simd32/chacha_simd32.cpp 2026-02-15 10:13:54.132569066 +0000 @@ -12,7 +12,7 @@ namespace Botan { //static -void ChaCha::chacha_simd32_x4(uint8_t output[64 * 4], uint32_t state[16], size_t rounds) { +void BOTAN_FN_ISA_SIMD_4X32 ChaCha::chacha_simd32_x4(uint8_t output[64 * 4], uint32_t state[16], size_t rounds) { BOTAN_ASSERT(rounds % 2 == 0, "Valid rounds"); const SIMD_4x32 CTR0 = SIMD_4x32(0, 1, 2, 3); diff -ru botan.orig/src/lib/stream/chacha/chacha_simd32/info.txt botan/src/lib/stream/chacha/chacha_simd32/info.txt --- botan.orig/src/lib/stream/chacha/chacha_simd32/info.txt 2026-02-15 10:13:09.400703894 +0000 +++ botan/src/lib/stream/chacha/chacha_simd32/info.txt 2026-02-15 10:13:54.132569066 +0000 @@ -11,3 +11,14 @@ simd_4x32 cpuid + + +x86_32:ssse3 +x86_64:ssse3 +x32:ssse3 +arm32:neon +arm64:neon +ppc32:altivec +ppc64:altivec +loongarch64:lsx + diff -ru botan.orig/src/lib/utils/simd/simd_2x64/simd_2x64.h botan/src/lib/utils/simd/simd_2x64/simd_2x64.h --- botan.orig/src/lib/utils/simd/simd_2x64/simd_2x64.h 2026-02-15 10:13:09.412703857 +0000 +++ botan/src/lib/utils/simd/simd_2x64/simd_2x64.h 2026-02-15 10:13:54.132569066 +0000 @@ -35,28 +35,28 @@ // zero initialized SIMD_2x64() : m_simd(_mm_setzero_si128()) {} - static SIMD_2x64 load_le(const void* in) { + static SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 load_le(const void* in) { return SIMD_2x64(_mm_loadu_si128(reinterpret_cast(in))); } - static SIMD_2x64 load_be(const void* in) { return SIMD_2x64::load_le(in).bswap(); } + static SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 load_be(const void* in) { return SIMD_2x64::load_le(in).bswap(); } SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 bswap() const { const auto idx = _mm_set_epi8(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7); return SIMD_2x64(_mm_shuffle_epi8(m_simd, idx)); } - void store_le(uint64_t out[2]) const { this->store_le(reinterpret_cast(out)); } + void BOTAN_FN_ISA_SIMD_2X64 store_le(uint64_t out[2]) const { this->store_le(reinterpret_cast(out)); } - void store_le(uint8_t out[]) const { _mm_storeu_si128(reinterpret_cast<__m128i*>(out), m_simd); } + void BOTAN_FN_ISA_SIMD_2X64 store_le(uint8_t out[]) const { _mm_storeu_si128(reinterpret_cast<__m128i*>(out), m_simd); } - SIMD_2x64 operator+(const SIMD_2x64& other) const { + SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 operator+(const SIMD_2x64& other) const { SIMD_2x64 retval(*this); retval += other; return retval; } - SIMD_2x64 operator^(const SIMD_2x64& other) const { + SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 operator^(const SIMD_2x64& other) const { SIMD_2x64 retval(*this); retval ^= other; return retval; @@ -89,7 +89,7 @@ } template - SIMD_2x64 rotl() const { + SIMD_2x64 BOTAN_FN_ISA_SIMD_2X64 rotl() const { return this->rotr<64 - ROT>(); } @@ -103,7 +103,8 @@ } // Argon2 specific operation - static void twist(SIMD_2x64& B0, SIMD_2x64& B1, SIMD_2x64& C0, SIMD_2x64& C1, SIMD_2x64& D0, SIMD_2x64& D1) { + static void BOTAN_FN_ISA_SIMD_2X64 + twist(SIMD_2x64& B0, SIMD_2x64& B1, SIMD_2x64& C0, SIMD_2x64& C1, SIMD_2x64& D0, SIMD_2x64& D1) { auto T0 = SIMD_2x64::alignr8(B1, B0); auto T1 = SIMD_2x64::alignr8(B0, B1); B0 = T0; @@ -120,7 +121,8 @@ } // Argon2 specific operation - static void untwist(SIMD_2x64& B0, SIMD_2x64& B1, SIMD_2x64& C0, SIMD_2x64& C1, SIMD_2x64& D0, SIMD_2x64& D1) { + static void BOTAN_FN_ISA_SIMD_2X64 + untwist(SIMD_2x64& B0, SIMD_2x64& B1, SIMD_2x64& C0, SIMD_2x64& C1, SIMD_2x64& D0, SIMD_2x64& D1) { auto T0 = SIMD_2x64::alignr8(B0, B1); auto T1 = SIMD_2x64::alignr8(B1, B0); B0 = T0; @@ -142,7 +144,7 @@ return SIMD_2x64(_mm_add_epi64(m, m)); } - explicit SIMD_2x64(__m128i x) : m_simd(x) {} + explicit BOTAN_FN_ISA_SIMD_2X64 SIMD_2x64(__m128i x) : m_simd(x) {} private: __m128i m_simd; diff -ru botan.orig/src/lib/utils/simd/simd_4x32/simd_4x32.h botan/src/lib/utils/simd/simd_4x32/simd_4x32.h --- botan.orig/src/lib/utils/simd/simd_4x32/simd_4x32.h 2026-02-15 10:13:09.412703857 +0000 +++ botan/src/lib/utils/simd/simd_4x32/simd_4x32.h 2026-02-15 10:13:54.132569066 +0000 @@ -193,15 +193,25 @@ #endif } - static SIMD_4x32 load_le(std::span in) { return SIMD_4x32::load_le(in.data()); } + static SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 load_le(std::span in) { + return SIMD_4x32::load_le(in.data()); + } - static SIMD_4x32 load_be(std::span in) { return SIMD_4x32::load_be(in.data()); } + static SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 load_be(std::span in) { + return SIMD_4x32::load_be(in.data()); + } - void store_le(uint32_t out[4]) const noexcept { this->store_le(reinterpret_cast(out)); } + void BOTAN_FN_ISA_SIMD_4X32 store_le(uint32_t out[4]) const noexcept { + this->store_le(reinterpret_cast(out)); + } - void store_be(uint32_t out[4]) const noexcept { this->store_be(reinterpret_cast(out)); } + void BOTAN_FN_ISA_SIMD_4X32 store_be(uint32_t out[4]) const noexcept { + this->store_be(reinterpret_cast(out)); + } - void store_le(uint64_t out[2]) const noexcept { this->store_le(reinterpret_cast(out)); } + void BOTAN_FN_ISA_SIMD_4X32 store_le(uint64_t out[2]) const noexcept { + this->store_le(reinterpret_cast(out)); + } /** * Load a SIMD register with little-endian convention @@ -263,14 +273,14 @@ #endif } - void store_be(std::span out) const { this->store_be(out.data()); } + void BOTAN_FN_ISA_SIMD_4X32 store_be(std::span out) const { this->store_be(out.data()); } - void store_le(std::span out) const { this->store_le(out.data()); } + void BOTAN_FN_ISA_SIMD_4X32 store_le(std::span out) const { this->store_le(out.data()); } /* * This is used for SHA-2/SHACAL2 */ - SIMD_4x32 sigma0() const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 sigma0() const noexcept { #if BOTAN_COMPILER_HAS_BUILTIN(__builtin_crypto_vshasigmaw) && defined(_ARCH_PWR8) return SIMD_4x32(__builtin_crypto_vshasigmaw(raw(), 1, 0)); #else @@ -284,7 +294,7 @@ /* * This is used for SHA-2/SHACAL2 */ - SIMD_4x32 sigma1() const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 sigma1() const noexcept { #if BOTAN_COMPILER_HAS_BUILTIN(__builtin_crypto_vshasigmaw) && defined(_ARCH_PWR8) return SIMD_4x32(__builtin_crypto_vshasigmaw(raw(), 1, 0xF)); #else @@ -346,14 +356,14 @@ * Right rotation by a compile time constant */ template - SIMD_4x32 rotr() const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 rotr() const noexcept { return this->rotl<32 - ROT>(); } /** * Add elements of a SIMD vector */ - SIMD_4x32 operator+(const SIMD_4x32& other) const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 operator+(const SIMD_4x32& other) const noexcept { SIMD_4x32 retval(*this); retval += other; return retval; @@ -362,7 +372,7 @@ /** * Subtract elements of a SIMD vector */ - SIMD_4x32 operator-(const SIMD_4x32& other) const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 operator-(const SIMD_4x32& other) const noexcept { SIMD_4x32 retval(*this); retval -= other; return retval; @@ -371,7 +381,7 @@ /** * XOR elements of a SIMD vector */ - SIMD_4x32 operator^(const SIMD_4x32& other) const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 operator^(const SIMD_4x32& other) const noexcept { SIMD_4x32 retval(*this); retval ^= other; return retval; @@ -380,7 +390,7 @@ /** * Binary OR elements of a SIMD vector */ - SIMD_4x32 operator|(const SIMD_4x32& other) const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 operator|(const SIMD_4x32& other) const noexcept { SIMD_4x32 retval(*this); retval |= other; return retval; @@ -389,7 +399,7 @@ /** * Binary AND elements of a SIMD vector */ - SIMD_4x32 operator&(const SIMD_4x32& other) const noexcept { + SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 operator&(const SIMD_4x32& other) const noexcept { SIMD_4x32 retval(*this); retval &= other; return retval; @@ -431,7 +441,7 @@ #endif } - void operator^=(uint32_t other) noexcept { *this ^= SIMD_4x32::splat(other); } + void BOTAN_FN_ISA_SIMD_4X32 operator^=(uint32_t other) noexcept { *this ^= SIMD_4x32::splat(other); } void operator|=(const SIMD_4x32& other) noexcept { #if defined(BOTAN_SIMD_USE_SSSE3) @@ -652,7 +662,9 @@ #endif } - static inline SIMD_4x32 choose(const SIMD_4x32& mask, const SIMD_4x32& a, const SIMD_4x32& b) noexcept { + static inline SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 choose(const SIMD_4x32& mask, + const SIMD_4x32& a, + const SIMD_4x32& b) noexcept { #if defined(BOTAN_SIMD_USE_ALTIVEC) return SIMD_4x32(vec_sel(b.raw(), a.raw(), mask.raw())); #elif defined(BOTAN_SIMD_USE_NEON) @@ -664,7 +676,9 @@ #endif } - static inline SIMD_4x32 majority(const SIMD_4x32& x, const SIMD_4x32& y, const SIMD_4x32& z) noexcept { + static inline SIMD_4x32 BOTAN_FN_ISA_SIMD_4X32 majority(const SIMD_4x32& x, + const SIMD_4x32& y, + const SIMD_4x32& z) noexcept { return SIMD_4x32::choose(x ^ y, z, y); } @@ -767,7 +781,7 @@ native_simd_type raw() const noexcept { return m_simd; } - explicit SIMD_4x32(native_simd_type x) noexcept : m_simd(x) {} + explicit BOTAN_FN_ISA_SIMD_4X32 SIMD_4x32(native_simd_type x) noexcept : m_simd(x) {} private: native_simd_type m_simd; diff -ru botan.orig/src/lib/utils/simd/simd_4x64/simd_4x64.h botan/src/lib/utils/simd/simd_4x64/simd_4x64.h --- botan.orig/src/lib/utils/simd/simd_4x64/simd_4x64.h 2026-02-15 10:13:09.412703857 +0000 +++ botan/src/lib/utils/simd/simd_4x64/simd_4x64.h 2026-02-15 10:13:54.132569066 +0000 @@ -56,7 +56,7 @@ return SIMD_4x64(_mm256_shuffle_epi8(m_simd, idx)); } - void store_le(uint64_t out[4]) const { this->store_le(reinterpret_cast(out)); } + void BOTAN_FN_ISA_SIMD_4X64 store_le(uint64_t out[4]) const { this->store_le(reinterpret_cast(out)); } BOTAN_FN_ISA_SIMD_4X64 void store_le(uint8_t out[]) const { _mm256_storeu_si256(reinterpret_cast<__m256i*>(out), m_simd); @@ -66,13 +66,13 @@ _mm256_storeu2_m128i(reinterpret_cast<__m128i*>(outh), reinterpret_cast<__m128i*>(outl), m_simd); } - SIMD_4x64 operator+(const SIMD_4x64& other) const { + SIMD_4x64 BOTAN_FN_ISA_SIMD_4X64 operator+(const SIMD_4x64& other) const { SIMD_4x64 retval(*this); retval += other; return retval; } - SIMD_4x64 operator^(const SIMD_4x64& other) const { + SIMD_4x64 BOTAN_FN_ISA_SIMD_4X64 operator^(const SIMD_4x64& other) const { SIMD_4x64 retval(*this); retval ^= other; return retval; @@ -121,7 +121,7 @@ } template - SIMD_4x64 rotl() const { + SIMD_4x64 BOTAN_FN_ISA_SIMD_4X64 rotl() const { return this->rotr<64 - ROT>(); } @@ -146,14 +146,14 @@ } // Argon2 specific - static void twist(SIMD_4x64& B, SIMD_4x64& C, SIMD_4x64& D) { + static void BOTAN_FN_ISA_SIMD_4X64 twist(SIMD_4x64& B, SIMD_4x64& C, SIMD_4x64& D) { B = SIMD_4x64::permute_4x64<0b00'11'10'01>(B); C = SIMD_4x64::permute_4x64<0b01'00'11'10>(C); D = SIMD_4x64::permute_4x64<0b10'01'00'11>(D); } // Argon2 specific - static void untwist(SIMD_4x64& B, SIMD_4x64& C, SIMD_4x64& D) { + static void BOTAN_FN_ISA_SIMD_4X64 untwist(SIMD_4x64& B, SIMD_4x64& C, SIMD_4x64& D) { B = SIMD_4x64::permute_4x64<0b10'01'00'11>(B); C = SIMD_4x64::permute_4x64<0b01'00'11'10>(C); D = SIMD_4x64::permute_4x64<0b00'11'10'01>(D); ================================================ FILE: ports/botan/configure ================================================ #!/usr/bin/env bash set -e declare -a OUT_OPTIONS INTERPRETER=python3 LAST_SEEN= COPY_OPTIONS=no COPY_PREFIX=yes BUILD_TYPE=RELEASE for OPTION; do case "${OPTION},${COPY_OPTIONS}" in */configure.py,no) OUT_OPTIONS+=("${OPTION}") INTERPRETER="${LAST_SEEN}" COPY_OPTIONS=yes ;; --prefix=*,yes) if [ "${COPY_PREFIX}" = "yes" ] ; then OUT_OPTIONS+=("${OPTION}") COPY_PREFIX=no fi ;; --*=*,yes) OUT_OPTIONS+=("${OPTION}") ;; *=*) ;; *,yes) OUT_OPTIONS+=("${OPTION}") if [ "${OPTION}" = "--debug-mode" ] ; then BUILD_TYPE=DEBUG fi ;; esac LAST_SEEN="${OPTION}" done set -x export CXXFLAGS="$CPPFLAGS $CXXFLAGS" "${INTERPRETER}" "${OUT_OPTIONS[@]}" sed -e "1i\\ ZLIB_LIBS = \$(ZLIB_LIBS_${BUILD_TYPE})" -i -- Makefile ================================================ FILE: ports/botan/configure-zlib.patch ================================================ diff --git a/src/build-data/makefile.in b/src/build-data/makefile.in index 5102933..0fa5920 100644 --- a/src/build-data/makefile.in +++ b/src/build-data/makefile.in @@ -20,7 +20,7 @@ LDFLAGS = %{ldflags} EXE_LINK_CMD = %{exe_link_cmd} -LIB_LINKS_TO = %{external_link_cmd} %{link_to} +LIB_LINKS_TO = %{external_link_cmd} $(ZLIB_LIBS) %{link_to} BUILD_DIR_LINK_PATH = %{build_dir_link_path} EXE_LINKS_TO = %{link_to_botan} $(LIB_LINKS_TO) %{extra_libs} diff --git a/src/lib/compression/zlib/info.txt b/src/lib/compression/zlib/info.txt index 1102bc5..34047fa 100644 --- a/src/lib/compression/zlib/info.txt +++ b/src/lib/compression/zlib/info.txt @@ -5,6 +5,4 @@ ZLIB -> 20160412 load_on vendor -all!windows -> z -windows -> zlib ================================================ FILE: ports/botan/embed-debug-info.patch ================================================ diff --git a/src/build-data/cc/msvc.txt b/src/build-data/cc/msvc.txt index 64b6eae..66258ca 100644 --- a/src/build-data/cc/msvc.txt +++ b/src/build-data/cc/msvc.txt @@ -20,10 +20,10 @@ optimization_flags "/O2 /Oi /Zc:throwingNew" size_optimization_flags "/O1 /Os" # for debug info in the object file (required if using sccache): -#debug_info_flags "/Z7" +debug_info_flags "/Z7" # for using a PDB file: -debug_info_flags "/Zi /FS" +#debug_info_flags "/Zi /FS" preproc_flags "/nologo /EP /Zc:preprocessor" ================================================ FILE: ports/botan/fix-x86-msvc-amalgamation.patch ================================================ commit d3856e94deb950ad6ae08049ca0b8758ab027f33 Author: Rene Meusel Date: Thu Jan 8 10:14:28 2026 +0100 FIX: build failure on MSVC x86 due to fault constraint Frankly, I'm not sure why this shows up on x86 MSVC only but relaxing this constraint is consistent with the calling function and also makes sense semantically. diff --git a/src/lib/utils/bitvector/bitvector.h b/src/lib/utils/bitvector/bitvector.h index 4551dceb8..8ae6aaa4b 100644 --- a/src/lib/utils/bitvector/bitvector.h +++ b/src/lib/utils/bitvector/bitvector.h @@ -1184,7 +1184,7 @@ class bitvector_base final { private: template - requires(all_same_v) + requires(all_same_v...>) constexpr static auto apply(FnT fn, size_type bits, BlockTs... blocks) { if constexpr(needs_mask) { return fn(blocks..., make_mask>(bits)); commit 1e83c70ceb13cf5b712ecd1da3c5c1ad41d83151 Author: Rene Meusel Date: Thu Jan 8 10:51:29 2026 +0100 FIX: implicit conversion warning on MSVC x86 diff --git a/src/examples/hash.cpp b/src/examples/hash.cpp index e886220ac..fa720d89c 100644 --- a/src/examples/hash.cpp +++ b/src/examples/hash.cpp @@ -12,7 +12,7 @@ int main() { while(std::cin.good()) { // read STDIN to buffer std::cin.read(reinterpret_cast(buf.data()), static_cast(buf.size())); - size_t readcount = std::cin.gcount(); + const auto readcount = static_cast(std::cin.gcount()); // update hash computations with read data hash1->update(std::span{buf}.first(readcount)); hash2->update(std::span{buf}.first(readcount)); ================================================ FILE: ports/botan/fix_android.patch ================================================ diff --git a/src/lib/utils/prefetch.cpp b/src/lib/utils/prefetch.cpp index 40786b3..e0d5239 100644 --- a/src/lib/utils/prefetch.cpp +++ b/src/lib/utils/prefetch.cpp @@ -12,7 +12,7 @@ namespace Botan { uint64_t prefetch_array_raw(size_t bytes, const void* arrayv) noexcept { -#if defined(__cpp_lib_hardware_interference_size) +#if defined(__cpp_lib_hardware_interference_size) && (!defined(BOTAN_TARGET_OS_IS_ANDROID) || defined(NDK_IS_NEWER_THAN_25)) const size_t cache_line_size = std::hardware_destructive_interference_size; #else // We arbitrarily use a 64 byte cache line, which is by far the most ================================================ FILE: ports/botan/pkgconfig.patch ================================================ diff --git a/src/build-data/botan.pc.in b/src/build-data/botan.pc.in index c18b522..a5722c9 100644 --- a/src/build-data/botan.pc.in +++ b/src/build-data/botan.pc.in @@ -1,7 +1,7 @@ prefix=%{prefix} exec_prefix=${prefix} -libdir=%{libdir} -includedir=${prefix}/include/botan-%{version_major} +libdir=${prefix}/lib +includedir=${prefix}/include Name: Botan Description: Crypto and TLS for Modern C++ ================================================ FILE: ports/botan/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO randombit/botan REF "${VERSION}" SHA512 83e8d9c877a7e1c253efb94953758dde141ef23f74c727294c3a9af60db02401e1aef92368908b297bad1fc005d155e6c63bd726ccc48ea831f46cc5c1915633 HEAD_REF master PATCHES embed-debug-info.patch pkgconfig.patch verbose-install.patch configure-zlib.patch fix_android.patch fix-x86-msvc-amalgamation.patch botan-3.10-illegal-instruction.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure" DESTINATION "${SOURCE_PATH}") if(VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") set(pkgconfig_syntax "") if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(pkgconfig_syntax "--msvc-syntax") endif() vcpkg_list(SET configure_arguments "--distribution-info=vcpkg ${TARGET_TRIPLET}" --disable-cc-tests --with-pkg-config --link-method=copy --with-debug-info --includedir=include --bindir=bin --libdir=lib --without-documentation "--with-external-includedir=${CURRENT_INSTALLED_DIR}/include" ) vcpkg_list(SET pkgconfig_requires) if("amalgamation" IN_LIST FEATURES) vcpkg_list(APPEND configure_arguments --amalgamation) endif() set(ZLIB_LIBS_RELEASE "") set(ZLIB_LIBS_DEBUG "") if("zlib" IN_LIST FEATURES) vcpkg_list(APPEND configure_arguments --with-zlib) vcpkg_list(APPEND pkgconfig_requires zlib) x_vcpkg_pkgconfig_get_modules(LIBS PREFIX "ZLIB" MODULES "zlib" ${pkgconfig_syntax}) endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND configure_arguments --cpu=wasm) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_list(APPEND configure_arguments --cpu=x86) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_list(APPEND configure_arguments --cpu=x86_64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") vcpkg_list(APPEND configure_arguments --cpu=arm32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") vcpkg_list(APPEND configure_arguments --cpu=arm64) else() message(FATAL_ERROR "Unsupported architecture") endif() # Allow disabling use of WinSock2 by setting BOTAN_USE_WINSOCK2=OFF in triplet # for targeting older Windows versions with missing APIs. if(VCPKG_TARGET_IS_WINDOWS AND DEFINED BOTAN_USE_WINSOCK2 AND NOT BOTAN_USE_WINSOCK2) vcpkg_list(APPEND configure_arguments --without-os-features=winsock2) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_list(APPEND configure_arguments --os=windows) if(VCPKG_DETECTED_CMAKE_CXX_COMPILER MATCHES "clang-cl(\.exe)?$") vcpkg_list(APPEND configure_arguments "--cc=clangcl") elseif(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") vcpkg_list(APPEND configure_arguments "--cc=msvc") endif() vcpkg_list(APPEND configure_arguments "--extra-cxxflags=${VCPKG_DETECTED_CMAKE_CXX_FLAGS}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_list(APPEND configure_arguments --enable-shared-library --disable-static-library) else() vcpkg_list(APPEND configure_arguments --disable-shared-library --enable-static-library) endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(BOTAN_MSVC_RUNTIME MD) else() set(BOTAN_MSVC_RUNTIME MT) endif() vcpkg_install_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME "Makefile" PREFER_JOM PRERUN_SHELL_RELEASE "${PYTHON3}" "${SOURCE_PATH}/configure.py" ${configure_arguments} "--prefix=${CURRENT_PACKAGES_DIR}" "--msvc-runtime=${BOTAN_MSVC_RUNTIME}" "--with-external-libdir=${CURRENT_INSTALLED_DIR}/lib" PRERUN_SHELL_DEBUG "${PYTHON3}" "${SOURCE_PATH}/configure.py" ${configure_arguments} "--prefix=${CURRENT_PACKAGES_DIR}/debug" "--msvc-runtime=${BOTAN_MSVC_RUNTIME}d" "--with-external-libdir=${CURRENT_INSTALLED_DIR}/debug/lib" --debug-mode OPTIONS "CXX=\"${VCPKG_DETECTED_CMAKE_CXX_COMPILER}\"" "LINKER=\"${VCPKG_DETECTED_CMAKE_LINKER}\"" "AR=\"${VCPKG_DETECTED_CMAKE_AR}\"" "EXE_LINK_CMD=\"${VCPKG_DETECTED_CMAKE_LINKER}\" ${VCPKG_LINKER_FLAGS}" OPTIONS_RELEASE "ZLIB_LIBS=${ZLIB_LIBS_RELEASE}" OPTIONS_DEBUG "ZLIB_LIBS=${ZLIB_LIBS_DEBUG}" ) vcpkg_copy_tools(TOOL_NAMES botan-cli AUTO_CLEAN) vcpkg_copy_pdbs() else() if(VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND configure_arguments --os=android) elseif(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND configure_arguments --os=emscripten) elseif(VCPKG_TARGET_IS_MINGW) vcpkg_list(APPEND configure_arguments --os=mingw) endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND configure_arguments --cc=emcc) elseif(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "GNU") vcpkg_list(APPEND configure_arguments --cc=gcc) elseif(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID MATCHES "Clang") vcpkg_list(APPEND configure_arguments --cc=clang) endif() # botan's install.py doesn't handle DESTDIR on windows host, # so we must avoid the standard '--prefix' and 'DESTDIR' install. vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" DISABLE_VERBOSE_FLAGS NO_ADDITIONAL_PATHS OPTIONS "${PYTHON3}" "${SOURCE_PATH}/configure.py" ${configure_arguments} OPTIONS_RELEASE "--prefix=${CURRENT_PACKAGES_DIR}" "--with-external-libdir=${CURRENT_INSTALLED_DIR}/lib" OPTIONS_DEBUG --debug-mode "--prefix=${CURRENT_PACKAGES_DIR}/debug" "--with-external-libdir=${CURRENT_INSTALLED_DIR}/debug/lib" ) vcpkg_build_make( BUILD_TARGET install OPTIONS "ZLIB_LIBS_RELEASE=${ZLIB_LIBS_RELEASE}" "ZLIB_LIBS_DEBUG=${ZLIB_LIBS_DEBUG}" ) if(NOT VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_copy_tools(TOOL_NAMES botan AUTO_CLEAN) endif() endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Botan-${VERSION}") file(RENAME "${CURRENT_PACKAGES_DIR}/include/botan-3/botan" "${CURRENT_PACKAGES_DIR}/include/botan") if(pkgconfig_requires) list(JOIN pkgconfig_requires ", " pkgconfig_requires) file(APPEND "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/botan-3.pc" "Requires.private: ${pkgconfig_requires}") if(NOT VCPKG_BUILD_TYPE) file(APPEND "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/botan-3.pc" "Requires.private: ${pkgconfig_requires}") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/botan-3" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/botan/vcpkg.json ================================================ { "name": "botan", "version": "3.10.0", "port-version": 1, "description": "A cryptography library written in C++11", "homepage": "https://botan.randombit.net", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "amalgamation": { "description": "Do an amalgamation build of the library" }, "zlib": { "description": "Build with zlib. Enable compression pipes.", "dependencies": [ { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ] } } } ================================================ FILE: ports/botan/verbose-install.patch ================================================ diff --git a/src/build-data/makefile.in b/src/build-data/makefile.in index 1d50a31..64789a5 100644 --- a/src/build-data/makefile.in +++ b/src/build-data/makefile.in @@ -61,7 +61,7 @@ distclean: "$(PYTHON_EXE)" "$(SCRIPTS_DIR)/cleanup.py" --build-dir="%{build_dir}" --distclean install: %{install_targets} - "$(PYTHON_EXE)" "$(SCRIPTS_DIR)/install.py" --build-dir="%{build_dir}" + "$(PYTHON_EXE)" "$(SCRIPTS_DIR)/install.py" --build-dir="%{build_dir}" --verbose check: tests "$(PYTHON_EXE)" "$(SCRIPTS_DIR)/check.py" --build-dir="%{build_dir}" ================================================ FILE: ports/box2d/libm.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dbc41b1..9ae252d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -87,6 +87,13 @@ target_include_directories(box2d set(CMAKE_DEBUG_POSTFIX "d") +if(NOT WIN32) + find_library(HAVE_LIBM m) + if(HAVE_LIBM) + target_link_libraries(box2d PRIVATE m) + endif() +endif() + # Box2D uses C17 for _Static_assert and anonymous unions set_target_properties(box2d PROPERTIES C_STANDARD 17 ================================================ FILE: ports/box2d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO erincatto/Box2D REF v${VERSION} SHA512 7367640e7f2ff395b8ca48766c71f57c96e08c298627c996eba76899a149ee28b0e3ecacfa4a224fdb5d160c7e25c6069bb8414fd1575787727d796097aa347b HEAD_REF main PATCHES libm.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBOX2D_SAMPLES=OFF -DBOX2D_BENCHMARKS=OFF -DBOX2D_DOCS=OFF -DBOX2D_PROFILE=OFF -DBOX2D_VALIDATE=OFF -DBOX2D_UNIT_TESTS=OFF -DBOX2D_COMPILE_WARNING_AS_ERROR=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/box2d) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/box2d/base.h" "defined( BOX2D_DLL )" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/box2d/usage ================================================ box2d provides CMake targets: find_package(box2d CONFIG REQUIRED) target_link_libraries(main PRIVATE box2d::box2d) ================================================ FILE: ports/box2d/vcpkg.json ================================================ { "name": "box2d", "version-semver": "3.1.1", "description": "An open source C++ engine for simulating rigid bodies in 2D", "homepage": "https://box2d.org", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/braft/export-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3d75dd5..090a02e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,7 +99,7 @@ if(BRPC_WITH_GLOG) ${OPENSSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} dl - z + ZLIB::ZLIB ) else() set(DYNAMIC_LIB @@ -111,7 +111,7 @@ else() ${OPENSSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARY} dl - z + ZLIB::ZLIB ) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 78adc56..50cffc6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,8 +19,10 @@ add_library(braft-static STATIC $) endif() if (BUILD_SHARED_LIBS) +target_include_directories(braft-shared PUBLIC $) target_link_libraries(braft-shared PUBLIC ${DYNAMIC_LIB}) else() +target_include_directories(braft-static PUBLIC $) target_link_libraries(braft-static PUBLIC ${DYNAMIC_LIB}) endif() @@ -31,15 +33,32 @@ SET_TARGET_PROPERTIES(braft-shared PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUT endif() if (NOT BUILD_SHARED_LIBS) -install(TARGETS braft-static +install(TARGETS braft-static EXPORT unofficial-braftTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIBSUFFIX} ARCHIVE DESTINATION lib${LIBSUFFIX} ) else() -install(TARGETS braft-shared +install(TARGETS braft-shared EXPORT unofficial-braftTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIBSUFFIX} ARCHIVE DESTINATION lib${LIBSUFFIX} ) endif() + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" +[[include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +find_dependency(gflags CONFIG) +find_dependency(Protobuf CONFIG) +file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-braftTargets.cmake") +foreach (TARGET_FILE ${TARGET_FILES}) + include("${TARGET_FILE}") +endforeach() +]]) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" DESTINATION share/unofficial-braft) + +install(EXPORT unofficial-braftTargets + NAMESPACE unofficial::braft:: + DESTINATION share/unofficial-braft +) ================================================ FILE: ports/braft/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a735c53..53ddaed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -229,7 +229,9 @@ add_subdirectory(src) if(BUILD_UNIT_TESTS) add_subdirectory(test) endif() +if(BUILD_TOOLS) add_subdirectory(tools) +endif() file(COPY ${CMAKE_CURRENT_BINARY_DIR}/braft/ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/output/include/braft/ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f587464..78adc56 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -12,22 +12,34 @@ include_directories(${CMAKE_SOURCE_DIR}/src) add_library(OBJ_LIB OBJECT ${SOURCES}) set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) +if (BUILD_SHARED_LIBS) add_library(braft-shared SHARED $) +else() add_library(braft-static STATIC $) -target_link_libraries(braft-shared ${DYNAMIC_LIB}) -target_link_libraries(braft-static ${DYNAMIC_LIB}) +endif() + +if (BUILD_SHARED_LIBS) +target_link_libraries(braft-shared PUBLIC ${DYNAMIC_LIB}) +else() +target_link_libraries(braft-static PUBLIC ${DYNAMIC_LIB}) +endif() +if (NOT BUILD_SHARED_LIBS) SET_TARGET_PROPERTIES(braft-static PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUTPUT 1) +else() SET_TARGET_PROPERTIES(braft-shared PROPERTIES OUTPUT_NAME braft CLEAN_DIRECT_OUTPUT 1) +endif() +if (NOT BUILD_SHARED_LIBS) install(TARGETS braft-static RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIBSUFFIX} ARCHIVE DESTINATION lib${LIBSUFFIX} ) - +else() install(TARGETS braft-shared RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIBSUFFIX} ARCHIVE DESTINATION lib${LIBSUFFIX} ) +endif() ================================================ FILE: ports/braft/fix-bvar-detail-sample.patch ================================================ diff --git a/src/braft/util.cpp b/src/braft/util.cpp index 9770b75..3a12819 100644 --- a/src/braft/util.cpp +++ b/src/braft/util.cpp @@ -47,7 +47,7 @@ namespace detail { typedef PercentileSamples<1022> CombinedPercentileSamples; static int64_t get_window_recorder_qps(void* arg) { - detail::Sample s; + Sample s; static_cast(arg)->get_span(1, &s); // Use floating point to avoid overflow. if (s.time_us <= 0) { ================================================ FILE: ports/braft/fix-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 53ddaed..3d75dd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,8 +47,9 @@ if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) message(FATAL_ERROR "Fail to find leveldb") endif() -find_path(GFLAGS_INCLUDE_PATH NAMES gflags/gflags.h) -find_library(GFLAGS_LIB NAMES gflags) +find_package(gflags CONFIG REQUIRED) +get_target_property(GFLAGS_INCLUDE_PATH gflags::gflags INTERFACE_INCLUDE_DIRECTORIES) +set(GFLAGS_LIB gflags::gflags) if ((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIB)) message(FATAL_ERROR "Fail to find gflags") endif() @@ -77,13 +78,7 @@ if (NOT PROTOBUF_PROTOC_EXECUTABLE) set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") endif() -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set(OPENSSL_ROOT_DIR - "/usr/local/opt/openssl" # Homebrew installed OpenSSL - ) -endif() - -include(FindOpenSSL) +find_package(OpenSSL REQUIRED) include_directories( ${GFLAGS_INCLUDE_PATH} ================================================ FILE: ports/braft/fix-glog.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 090a02e..fbe0ac3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,12 +55,8 @@ if ((NOT GFLAGS_INCLUDE_PATH) OR (NOT GFLAGS_LIB)) endif() if(BRPC_WITH_GLOG) - find_path(GLOG_INCLUDE_PATH NAMES glog/logging.h) - find_library(GLOG_LIB NAMES glog) - if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIB)) - message(FATAL_ERROR "Fail to find glog") - endif() - include_directories(${GLOG_INCLUDE_PATH}) + find_package(glog CONFIG REQUIRED) + set(GLOG_LIB glog::glog) endif() if(LEVELDB_WITH_SNAPPY) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 70d73df..a3d3046 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,6 +11,7 @@ include_directories(${CMAKE_SOURCE_DIR}/src) add_library(OBJ_LIB OBJECT ${SOURCES}) +target_link_libraries(OBJ_LIB PUBLIC ${DYNAMIC_LIB}) set_property(TARGET ${OBJ_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) if (BUILD_SHARED_LIBS) add_library(braft-shared SHARED $) @@ -50,6 +51,7 @@ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-braft-config.cmake" [[include(CMakeFindDependencyMacro) find_dependency(ZLIB) find_dependency(gflags CONFIG) +find_dependency(glog CONFIG) find_dependency(Protobuf CONFIG) file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-braftTargets.cmake") foreach (TARGET_FILE ${TARGET_FILES}) ================================================ FILE: ports/braft/portfile.cmake ================================================ vcpkg_download_distfile( GCC_11_PATCH URLS https://github.com/baidu/braft/commit/361ef01185b88baf90b7926f992c8e71fc4aefc2.patch?full_index=1 SHA512 245470404885cc8a903893fbcde201b892d0b160d7c1f09758f20c83a0d8f476f4512ee8091aa7a1d3798c8315eb0dae8e9a8da7af8425df62ab6f837b025392 FILENAME 361ef01185b88baf90b7926f992c8e71fc4aefc2.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO baidu/braft REF 8d0128e02a2959f9cc427d5f97ed730ee6a6b410 SHA512 f28afbf5fe8a354872c252580e2d679f7a66944a554f0c8e9331b8a68b6a87659d59fbbc41c3ada55e09a265032290bcef567c99a7428604d08f7885f97cf6d7 HEAD_REF master PATCHES fix-build.patch fix-dependency.patch export-target.patch "${GCC_11_PATCH}" fix-glog.patch protobuf.patch protobuf-6.patch fix-bvar-detail-sample.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBRPC_WITH_GLOG=ON -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-braft CONFIG_PATH share/unofficial-braft) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/braft/protobuf-6.patch ================================================ diff --git a/src/braft/replicator.cpp b/src/braft/replicator.cpp index 2e0d1e1..c58b181 100644 --- a/src/braft/replicator.cpp +++ b/src/braft/replicator.cpp @@ -418,7 +418,7 @@ void Replicator::_on_rpc_returned(ReplicatorId id, brpc::Controller* cntl, r->_notify_on_caught_up(EPERM, true); butil::Status status; status.set_error(EHIGHERTERMRESPONSE, "Leader receives higher term " - "%s from peer:%s", response->GetTypeName().c_str(), r->_options.peer_id.to_string().c_str()); + "%s from peer:%s", response->GetTypeName().data(), r->_options.peer_id.to_string().c_str()); r->_destroy(); node_impl->increase_term_to(response->term(), status); node_impl->Release(); ================================================ FILE: ports/braft/protobuf.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 28c1026..65af3ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ endif() set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) include(FindThreads) -include(FindProtobuf) +find_package(Protobuf CONFIG REQUIRED) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # require at least gcc 4.8 @@ -69,7 +69,8 @@ if ((NOT BRPC_INCLUDE_PATH) OR (NOT BRPC_LIB)) message(FATAL_ERROR "Fail to find brpc") endif() -if (NOT PROTOBUF_PROTOC_EXECUTABLE) +set(PROTOBUF_LIBRARY protobuf::libprotobuf) +if (0) get_filename_component(PROTO_LIB_DIR ${PROTOBUF_LIBRARY} DIRECTORY) set (PROTOBUF_PROTOC_EXECUTABLE "${PROTO_LIB_DIR}/../bin/protoc") endif() ================================================ FILE: ports/braft/vcpkg.json ================================================ { "name": "braft", "version-date": "2021-26-04", "port-version": 7, "description": "Consensus algorithm library", "homepage": "https://github.com/baidu/braft", "license": "Apache-2.0", "supports": "!windows", "dependencies": [ "brpc", "gflags", "glog", "leveldb", "protobuf", "thrift", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/breakpad/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(breakpad CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_definitions( -DNOMINMAX -DUNICODE -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE ) set(CMAKE_DEBUG_POSTFIX d) string(COMPARE EQUAL "${CMAKE_BUILD_TYPE}" "Release" DEFAULT_INSTALL_HEADERS) option(INSTALL_HEADERS "Install header files" ${DEFAULT_INSTALL_HEADERS}) option(INSTALL_TOOLS "Install tools" OFF) # libbreakpad target if(NOT CMAKE_SYSTEM_NAME STREQUAL Android) file(GLOB_RECURSE LIBBREAKPAD_SOURCES src/processor/*.cc) if(WIN32) list(FILTER LIBBREAKPAD_SOURCES EXCLUDE REGEX "_unittest|_selftest|synth_minidump|/tests|/testdata|/linux|/mac|/android|/solaris|microdump_stackwalk|minidump_dump|minidump_stackwalk|disassembler_objdump.cc") elseif(APPLE) list(FILTER LIBBREAKPAD_SOURCES EXCLUDE REGEX "_unittest|_selftest|synth_minidump|/tests|/testdata|/linux|/windows|/android|/solaris|microdump_stackwalk|minidump_dump|minidump_stackwalk|disassembler_objdump.cc") else() list(FILTER LIBBREAKPAD_SOURCES EXCLUDE REGEX "_unittest|_selftest|synth_minidump|/tests|/testdata|/mac|/windows|/android|/solaris|microdump_stackwalk|minidump_dump|minidump_stackwalk") endif() find_library(LIBDISASM_LIB NAMES libdisasmd libdisasm) add_library(libbreakpad ${LIBBREAKPAD_SOURCES}) target_link_libraries(libbreakpad PRIVATE ${LIBDISASM_LIB}) target_include_directories(libbreakpad PUBLIC $ $ ) set(TARGETS libbreakpad) endif() # libbreakpad_client target if(CMAKE_SYSTEM_NAME STREQUAL Android) file(READ "android/google_breakpad/Android.mk" android_mk) string(REGEX MATCHALL "src/[^\n]*\\.cc" LIBBREAKPAD_CLIENT_SOURCES "${android_mk}") else() if(WIN32) file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/windows/*.cc src/common/windows/*.cc) include_directories("$ENV{VSINSTALLDIR}/DIA SDK/include") elseif(APPLE) add_definitions(-DHAVE_MACH_O_NLIST_H) file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/mac/*.cc src/common/mac/*.cc) list(APPEND LIBBREAKPAD_CLIENT_SOURCES src/common/mac/MachIPC.mm) else() add_definitions(-DHAVE_A_OUT_H) file(GLOB_RECURSE LIBBREAKPAD_CLIENT_SOURCES src/client/linux/*.cc src/common/linux/*.cc) endif() file(GLOB LIBBREAKPAD_COMMON_SOURCES src/common/*.cc src/common/*.c src/client/*.cc) list(APPEND LIBBREAKPAD_CLIENT_SOURCES ${LIBBREAKPAD_COMMON_SOURCES}) endif() list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "/sender|/tests|/unittests|/testcases|_unittest|_test") if(WIN32) list(FILTER LIBBREAKPAD_CLIENT_SOURCES EXCLUDE REGEX "language.cc|path_helper.cc|stabs_to_module.cc|stabs_reader.cc|minidump_file_writer.cc") elseif(NOT APPLE) try_compile(HAVE_GETCONTEXT ${CMAKE_BINARY_DIR}/check_getcontext ${CMAKE_CURRENT_LIST_DIR}/check_getcontext.cc OUTPUT_VARIABLE BUILD_OUT) if (NOT HAVE_GETCONTEXT) enable_language(ASM) list(APPEND LIBBREAKPAD_CLIENT_SOURCES src/common/linux/breakpad_getcontext.S) endif() endif() add_library(libbreakpad_client ${LIBBREAKPAD_CLIENT_SOURCES}) if(WIN32) target_link_libraries(libbreakpad_client PRIVATE wininet.lib) elseif(APPLE) find_library(CoreFoundation_FRAMEWORK CoreFoundation) target_link_libraries(libbreakpad_client PRIVATE ${CoreFoundation_FRAMEWORK}) else() find_library(PTHREAD_LIBRARIES pthread) if(PTHREAD_LIBRARIES) target_link_libraries(libbreakpad_client PRIVATE ${PTHREAD_LIBRARIES}) endif() if (HAVE_GETCONTEXT) target_compile_definitions(libbreakpad_client PRIVATE HAVE_GETCONTEXT=1) endif() endif() set(USED_ZLIB OFF) if(LINUX AND NOT CMAKE_SYSTEM_NAME STREQUAL Android) # src/common/linux/dump_symbols.cc wants zlib.h find_package(ZLIB REQUIRED) target_link_libraries(libbreakpad_client PRIVATE ZLIB::ZLIB) set(USED_ZLIB ON) endif() target_include_directories(libbreakpad_client PUBLIC $ $ ) list(APPEND TARGETS libbreakpad_client) if(INSTALL_TOOLS) if(LINUX) add_executable(microdump_stackwalk src/processor/microdump_stackwalk.cc) target_link_libraries(microdump_stackwalk PRIVATE libbreakpad libbreakpad_client) install(TARGETS microdump_stackwalk DESTINATION bin) add_executable(minidump_dump src/processor/minidump_dump.cc) target_link_libraries(minidump_dump PRIVATE libbreakpad libbreakpad_client) install(TARGETS minidump_dump DESTINATION bin) add_executable(minidump_stackwalk src/processor/minidump_stackwalk.cc) target_link_libraries(minidump_stackwalk PRIVATE libbreakpad libbreakpad_client) install(TARGETS minidump_stackwalk DESTINATION bin) add_executable(core2md src/tools/linux/core2md/core2md.cc) target_link_libraries(core2md PRIVATE libbreakpad_client) install(TARGETS core2md DESTINATION bin) add_executable(pid2md src/tools/linux/pid2md/pid2md.cc) target_link_libraries(pid2md PRIVATE libbreakpad_client) install(TARGETS pid2md DESTINATION bin) add_executable(dump_syms src/common/dwarf_cfi_to_module.cc src/common/dwarf_cu_to_module.cc src/common/dwarf_line_to_module.cc src/common/dwarf_range_list_handler.cc src/common/language.cc src/common/module.cc src/common/path_helper.cc src/common/stabs_reader.cc src/common/stabs_to_module.cc src/common/dwarf/bytereader.cc src/common/dwarf/dwarf2diehandler.cc src/common/dwarf/dwarf2reader.cc src/common/dwarf/elf_reader.cc src/tools/linux/dump_syms/dump_syms.cc) target_link_libraries(dump_syms PRIVATE libbreakpad_client) install(TARGETS dump_syms DESTINATION bin) add_executable(minidump-2-core src/common/linux/memory_mapped_file.cc src/tools/linux/md2core/minidump-2-core.cc) target_link_libraries(minidump-2-core PRIVATE libbreakpad_client) install(TARGETS minidump-2-core DESTINATION bin) add_executable(minidump_upload src/common/linux/http_upload.cc src/tools/linux/symupload/minidump_upload.cc) target_link_libraries(minidump_upload PRIVATE libbreakpad_client ${CMAKE_DL_LIBS}) install(TARGETS minidump_upload DESTINATION bin) add_executable(sym_upload src/common/linux/http_upload.cc src/common/linux/libcurl_wrapper.cc src/common/linux/symbol_collector_client.cc src/common/linux/symbol_upload.cc src/tools/linux/symupload/sym_upload.cc) target_link_libraries(sym_upload PRIVATE libbreakpad_client ${CMAKE_DL_LIBS}) install(TARGETS sym_upload DESTINATION bin) add_executable(core_handler src/tools/linux/core_handler/core_handler.cc) target_link_libraries(core_handler PRIVATE libbreakpad_client) install(TARGETS core_handler DESTINATION bin) endif() endif() # installation install(TARGETS ${TARGETS} EXPORT unofficial-breakpad-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(INSTALL_HEADERS) if(WIN32) set(HEADER_EXCLUDE_REGEX "/apple|/ios|/linux|/mac|/solaris|/android|/dwarf|/tests|/testdata|/unittests") elseif(APPLE) set(HEADER_EXCLUDE_REGEX "/apple|/ios|/linux|/windows|/solaris|/android|/dwarf|/tests|/testdata|/unittests|/sender|/testapp|\.xcodeproj|/gcov") else() set(HEADER_EXCLUDE_REGEX "/apple|/ios|/windows|/mac|/solaris|/android|/dwarf|/tests|/testdata|/unittests") install( DIRECTORY src/third_party/lss DESTINATION include/third_party FILES_MATCHING PATTERN "*.h" REGEX "${HEADER_EXCLUDE_REGEX}" EXCLUDE ) endif() install( DIRECTORY src/client src/common src/google_breakpad DESTINATION include/ FILES_MATCHING PATTERN "*.h" REGEX ${HEADER_EXCLUDE_REGEX} EXCLUDE ) endif() install( EXPORT unofficial-breakpad-targets FILE unofficial-breakpadTargets.cmake NAMESPACE unofficial::breakpad:: DESTINATION share/unofficial-breakpad ) configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-breakpadConfig.cmake" "${CMAKE_INSTALL_PREFIX}/share/unofficial-breakpad/unofficial-breakpadConfig.cmake" @ONLY) ================================================ FILE: ports/breakpad/add-algorithm-1.patch ================================================ diff --git a/src/common/string_view.h b/src/common/string_view.h index a8e15922..bcaa7b96 100644 --- a/src/common/string_view.h +++ b/src/common/string_view.h @@ -29,6 +29,7 @@ #ifndef COMMON_STRING_VIEW_H__ #define COMMON_STRING_VIEW_H__ +#include #include #include #include ================================================ FILE: ports/breakpad/check_getcontext.cc ================================================ #include #include int main() { ucontext_t context; getcontext(&context); return 0; } ================================================ FILE: ports/breakpad/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REPLACE "-" "." BREAKPAD-VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/breakpad REF "v${BREAKPAD-VERSION}" SHA512 88c691983c6c92fd5321d729c8eec059914293de0e91fe1d429a6247f3b7299f32ec4938eccbbe2c95a9ca507db14d73a1c9798d5fce79a8b474c3c216f0951a HEAD_REF master PATCHES add-algorithm-1.patch ) if(VCPKG_HOST_IS_LINUX OR VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID) vcpkg_from_git( OUT_SOURCE_PATH LSS_SOURCE_PATH URL https://chromium.googlesource.com/linux-syscall-support REF 9719c1e1e676814c456b55f5f070eabad6709d31 ) file(RENAME "${LSS_SOURCE_PATH}" "${SOURCE_PATH}/src/third_party/lss") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/check_getcontext.cc" "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/unofficial-breakpadConfig.cmake" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tools" INSTALL_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_RELEASE -DINSTALL_HEADERS=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/client/linux/data" "${CURRENT_PACKAGES_DIR}/include/client/linux/sender") if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES microdump_stackwalk minidump_dump minidump_stackwalk core2md pid2md dump_syms minidump-2-core minidump_upload sym_upload core_handler AUTO_CLEAN) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-breakpad) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/breakpad/unofficial-breakpadConfig.cmake ================================================ if(@USED_ZLIB@) include(CMakeFindDependencyMacro) find_dependency(ZLIB) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-breakpadTargets.cmake") ================================================ FILE: ports/breakpad/vcpkg.json ================================================ { "name": "breakpad", "version-date": "2024-02-16", "description": "a set of client and server components which implement a crash-reporting system.", "homepage": "https://github.com/google/breakpad", "license": "BSD-3-Clause", "supports": "!uwp & (!windows | !arm) & (!windows | !arm64)", "dependencies": [ { "name": "atl", "platform": "windows" }, "libdisasm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "zlib", "platform": "linux" } ], "features": { "tools": { "description": "Build breakpad tools", "supports": "linux" } } } ================================================ FILE: ports/brigand/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO edouarda/brigand REF 1.3.0 SHA512 538d288d84265cc9a4563f1e84d55a174db461ffd1e4f510bfdaef04af9fbf8e7ca79817f9118378bf7d58d578699aae3072bbffa3fd727b2d93ee783337aea6 HEAD_REF master PATCHES remove-tests.patch ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/brigand/remove-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 13ea689..e723f85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,11 +24,6 @@ else() endif() # Install pre-commit git hook -execute_process(COMMAND ${CMAKE_COMMAND} -E copy - ${PROJECT_SOURCE_DIR}/script/pre-commit - ${PROJECT_SOURCE_DIR}/.git/hooks - ) - set ( STANDALONE_GROUP script/embed.py ) @@ -204,17 +199,6 @@ source_group(brigand\\sequences FILES ${SEQUENCES_GROUP}) source_group(brigand\\types FILES ${TYPES_GROUP}) source_group(placeholder FILES ${PLACEHOLDER_GROUP}) -add_library(brigand - ${BRIGAND_GROUP} - ${ADAPTED_GROUP} - ${ALGORITHMS_GROUP} - ${ALGORITHMS_DETAIL_GROUP} - ${FUNCTIONS_GROUPS} - ${SEQUENCES_GROUP} - ${TYPES_GROUP} - ${PLACEHOLDER_GROUP} -) - set(test_files test/always.cpp test/apply.cpp @@ -276,10 +260,6 @@ endif() source_group(tests FILES ${test_files}) -add_executable(brigand_test ${test_files}) - -add_test(brigand brigand_test) - configure_file(libbrigand.pc.in libbrigand.pc @ONLY diff --git a/libbrigand.pc.in b/libbrigand.pc.in index 2ed570e..218215b 100644 --- a/libbrigand.pc.in +++ b/libbrigand.pc.in @@ -6,5 +6,4 @@ Name: Brigand Description: Light-weight, fully functional, instant-compile time C++ 11 meta-programming library URL: https://github.com/edouarda/brigand Version: 1.2.0 -Libs: Cflags: -I${includedir} ================================================ FILE: ports/brigand/vcpkg.json ================================================ { "name": "brigand", "version": "1.3.0", "port-version": 3, "description": "Brigand is a light-weight, fully functional, instant-compile time C++ 11 meta-programming library.", "homepage": "https://github.com/edouarda/brigand", "dependencies": [ "boost-fusion", "boost-variant", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/brotli/install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 22b21d2..90003a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,14 +152,13 @@ endif() # BUILD_SHARED_LIBS foreach(lib ${BROTLI_SHARED_LIBRARIES} ${BROTLI_STATIC_LIBRARIES}) target_link_libraries(${lib} ${LIBM_LIBRARY}) - set_property(TARGET ${lib} APPEND PROPERTY INCLUDE_DIRECTORIES ${BROTLI_INCLUDE_DIRS}) set_target_properties(${lib} PROPERTIES VERSION "${BROTLI_ABI_COMPATIBILITY}.${BROTLI_ABI_AGE}.${BROTLI_ABI_REVISION}" SOVERSION "${BROTLI_ABI_COMPATIBILITY}") if (NOT BROTLI_EMSCRIPTEN) set_target_properties(${lib} PROPERTIES POSITION_INDEPENDENT_CODE TRUE) endif() - set_property(TARGET ${lib} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$") + set_property(TARGET ${lib} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "$" $) endforeach() # BROTLI_xxx_LIBRARIES target_link_libraries(brotlidec brotlicommon) @@ -187,12 +186,15 @@ if (NOT BROTLI_BUNDLED_MODE) if (BROTLI_BUILD_TOOLS) install( TARGETS brotli - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION tools/brotli + BUNDLE DESTINATION tools/brotli + CONFIGURATIONS Release ) endif() install( TARGETS ${BROTLI_SHARED_LIBRARIES} ${BROTLI_STATIC_LIBRARIES} + EXPORT brotli ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" @@ -201,7 +203,9 @@ if (NOT BROTLI_BUNDLED_MODE) install( DIRECTORY ${BROTLI_INCLUDE_DIRS}/brotli DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + CONFIGURATIONS Release ) + install(EXPORT brotli FILE unofficial-brotli-config.cmake NAMESPACE unofficial::brotli:: DESTINATION share/unofficial-brotli) endif() # BROTLI_BUNDLED_MODE # Tests ================================================ FILE: ports/brotli/pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 90003a8..10632c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -368,6 +368,12 @@ function(transform_pc_file INPUT_FILE OUTPUT_FILE VERSION) string(REGEX REPLACE "@PACKAGE_VERSION@" "${VERSION}" TEXT ${TEXT}) + if(NOT BUILD_SHARED_LIBS) + if(LIBM_LIBRARY) + string(REPLACE " -lbrotlicommon" " -lbrotlicommon -l${LIBM_LIBRARY}" TEXT ${TEXT}) + endif() + endif() + file(WRITE ${OUTPUT_FILE} ${TEXT}) endfunction() ================================================ FILE: ports/brotli/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/brotli REF v${VERSION} # v1.1.0 SHA512 f94542afd2ecd96cc41fd21a805a3da314281ae558c10650f3e6d9ca732b8425bba8fde312823f0a564c7de3993bdaab5b43378edab65ebb798cefb6fd702256 HEAD_REF master PATCHES install.patch pkgconfig.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBROTLI_DISABLE_TESTS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/unofficial-brotli PACKAGE_NAME unofficial-brotli) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") # Under emscripten the brotli executable tool is produced with .js extension but vcpkg_copy_tools # has no special behaviour in this case and searches for the tool name with no extension if(VCPKG_TARGET_IS_EMSCRIPTEN) set(TOOL_SUFFIX ".js" ) endif() vcpkg_copy_tools(TOOL_NAMES "brotli${TOOL_SUFFIX}" SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools/brotli") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/brotli/usage ================================================ brotli provides CMake targets: find_package(unofficial-brotli CONFIG REQUIRED) # Brotli decoder library target_link_libraries(main PRIVATE unofficial::brotli::brotlidec) # Brotli encoder library target_link_libraries(main PRIVATE unofficial::brotli::brotlienc) ================================================ FILE: ports/brotli/vcpkg.json ================================================ { "name": "brotli", "version": "1.2.0", "description": "a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling.", "homepage": "https://github.com/google/brotli", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/brpc/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b10991f..a507685 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,8 @@ endif() if(WITH_THRIFT) set(THRIFT_CPP_FLAG "-DENABLE_THRIFT_FRAMED_PROTOCOL") - find_library(THRIFT_LIB NAMES thrift) + find_package(Thrift CONFIG REQUIRED) + set(THRIFT_LIB "thrift::thrift") if (NOT THRIFT_LIB) message(FATAL_ERROR "Fail to find Thrift") endif() @@ -115,7 +116,10 @@ configure_file(${PROJECT_SOURCE_DIR}/config.h.in ${PROJECT_SOURCE_DIR}/src/butil list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") -find_package(GFLAGS REQUIRED) +set(GFLAGS_USE_TARGET_NAMESPACE ON) +find_package(gflags CONFIG REQUIRED) +set(GFLAGS_INCLUDE_PATH "") +set(GFLAGS_LIBRARY gflags::gflags) include_directories( ${PROJECT_SOURCE_DIR}/src @@ -180,12 +184,17 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() find_package(Protobuf REQUIRED) +get_target_property(PROTOBUF_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) +set(PROTOBUF_INCLUDE_DIRS "") +set(PROTOBUF_LIBRARIES protobuf::libprotobuf) if(Protobuf_VERSION GREATER 4.21) # required by absl set(CMAKE_CXX_STANDARD 17) find_package(absl REQUIRED CONFIG) set(protobuf_ABSL_USED_TARGETS + "") + set(protobuf_ABSL_provided_by_vcpkg absl::absl_check absl::absl_log absl::algorithm @@ -225,29 +234,21 @@ else() use_cxx11() endif() find_package(Threads REQUIRED) +find_package(ZLIB REQUIRED) +add_library(z ALIAS ZLIB::ZLIB) -find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h) -find_library(LEVELDB_LIB NAMES leveldb) -if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) - message(FATAL_ERROR "Fail to find leveldb") -endif() +find_package(leveldb CONFIG REQUIRED) +set(LEVELDB_INCLUDE_PATH "") +set(LEVELDB_LIB leveldb::leveldb) if(WITH_SNAPPY) - find_path(SNAPPY_INCLUDE_PATH NAMES snappy.h) - find_library(SNAPPY_LIB NAMES snappy) - if ((NOT SNAPPY_INCLUDE_PATH) OR (NOT SNAPPY_LIB)) - message(FATAL_ERROR "Fail to find snappy") - endif() - include_directories(${SNAPPY_INCLUDE_PATH}) + find_package(Snappy CONFIG REQUIRED) + set(SNAPPY_LIB Snappy::snappy) endif() if(WITH_GLOG) - find_path(GLOG_INCLUDE_PATH NAMES glog/logging.h) - find_library(GLOG_LIB NAMES glog) - if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIB)) - message(FATAL_ERROR "Fail to find glog") - endif() - include_directories(${GLOG_INCLUDE_PATH}) + find_package(glog CONFIG REQUIRED) + set(GLOG_LIB glog::glog) endif() if(WITH_MESALINK) @@ -270,7 +271,7 @@ if(WITH_RDMA) endif() endif() -find_library(PROTOC_LIB NAMES protoc) +set(PROTOC_LIB "protobuf::libprotoc") if(NOT PROTOC_LIB) message(FATAL_ERROR "Fail to find protoc lib") endif() @@ -280,9 +281,6 @@ if(WITH_BORINGSSL) include_directories(${BORINGSSL_INCLUDE_DIR}) else() if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT OPENSSL_ROOT_DIR) - set(OPENSSL_ROOT_DIR - "/usr/local/opt/openssl" # Homebrew installed OpenSSL - ) endif() find_package(OpenSSL) @@ -308,6 +306,8 @@ set(DYNAMIC_LIB if(WITH_BORINGSSL) list(APPEND DYNAMIC_LIB ${BORINGSSL_SSL_LIBRARY}) list(APPEND DYNAMIC_LIB ${BORINGSSL_CRYPTO_LIBRARY}) +elseif(1) + list(APPEND DYNAMIC_LIB OpenSSL::SSL) else() if(WITH_MESALINK) list(APPEND DYNAMIC_LIB ${OPENSSL_CRYPTO_LIBRARY}) @@ -322,7 +322,8 @@ if(WITH_RDMA) list(APPEND DYNAMIC_LIB ${RDMA_LIB}) endif() -set(BRPC_PRIVATE_LIBS "-lgflags -lprotobuf -lleveldb -lprotoc -lssl -lcrypto -ldl -lz") +set(BRPC_PRIVATE_LIBS "-lleveldb -lprotoc -ldl") +set(BRPC_PRIVATE_REQUIRES "gflags protobuf openssl zlib") if(WITH_GLOG) set(DYNAMIC_LIB ${GLOG_LIB} ${DYNAMIC_LIB}) @@ -331,7 +332,7 @@ endif() if(WITH_SNAPPY) set(DYNAMIC_LIB ${DYNAMIC_LIB} ${SNAPPY_LIB}) - set(BRPC_PRIVATE_LIBS "${BRPC_PRIVATE_LIBS} -lsnappy") + set(BRPC_PRIVATE_REQUIRES "${BRPC_PRIVATE_LIBS} snappy") endif() if (WITH_BTHREAD_TRACER) @@ -556,6 +557,7 @@ compile_proto(PROTO_HDRS PROTO_SRCS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src "${PROTO_FILES}") add_library(PROTO_LIB OBJECT ${PROTO_SRCS} ${PROTO_HDRS}) +target_link_libraries(PROTO_LIB PUBLIC ${DYNAMIC_LIB}) set(SOURCES ${BVAR_SOURCES} diff --git a/cmake/brpc.pc.in b/cmake/brpc.pc.in index 723dab4..36277cd 100644 --- a/cmake/brpc.pc.in +++ b/cmake/brpc.pc.in @@ -24,3 +24,4 @@ Version: @BRPC_VERSION@ Cflags: -I${includedir} Libs: -L${libdir}/ -lbrpc Libs.private: @BRPC_PRIVATE_LIBS@ +Requires.private: @BRPC_PRIVATE_REQUIRES@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1b4b233..f14d024 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,6 +26,10 @@ include_directories(${PROJECT_SOURCE_DIR}/src) add_library(BUTIL_LIB OBJECT ${BUTIL_SOURCES}) add_library(SOURCES_LIB OBJECT ${SOURCES}) add_dependencies(SOURCES_LIB PROTO_LIB) +if(WITH_GLOG) + target_link_libraries(BUTIL_LIB PRIVATE glog::glog) + target_link_libraries(SOURCES_LIB PRIVATE glog::glog) +endif() # shared library needs POSITION_INDEPENDENT_CODE set_property(TARGET ${SOURCES_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) @@ -59,9 +63,9 @@ function(check_thrift_version target_arg) endfunction() +target_link_libraries(brpc-static PUBLIC ${DYNAMIC_LIB}) + if(WITH_THRIFT) - target_link_libraries(brpc-static ${THRIFT_LIB}) - check_thrift_version(brpc-static) endif() SET_TARGET_PROPERTIES(brpc-static PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) @@ -74,24 +78,25 @@ set(protoc_gen_mcpack_SOURCES ) add_executable(protoc-gen-mcpack ${protoc_gen_mcpack_SOURCES}) +set_target_properties(protoc-gen-mcpack PROPERTIES EXCLUDE_FROM_ALL 1) if(BUILD_SHARED_LIBS) + set_target_properties(brpc-static PROPERTIES EXCLUDE_FROM_ALL 1) add_library(brpc-shared SHARED $ $ $) - target_link_libraries(brpc-shared ${DYNAMIC_LIB}) + target_link_libraries(brpc-shared PUBLIC ${DYNAMIC_LIB}) if(WITH_GLOG) - target_link_libraries(brpc-shared ${GLOG_LIB}) endif() if(WITH_THRIFT) - target_link_libraries(brpc-shared ${THRIFT_LIB}) - check_thrift_version(brpc-shared) endif() SET_TARGET_PROPERTIES(brpc-shared PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) target_link_libraries(protoc-gen-mcpack brpc-shared ${DYNAMIC_LIB} pthread) + target_include_directories(brpc-shared PUBLIC $) install(TARGETS brpc-shared + EXPORT unofficial-brpc-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -102,8 +107,38 @@ endif() +if(NOT BUILD_SHARED_LIBS) +target_include_directories(brpc-static PUBLIC $) install(TARGETS brpc-static + EXPORT unofficial-brpc-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +endif() + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" +[[include(CMakeFindDependencyMacro) +find_dependency(OpenSSL) +find_dependency(Threads) +find_dependency(ZLIB) +find_dependency(gflags CONFIG) +find_dependency(protobuf CONFIG) +find_dependency(leveldb CONFIG) +find_dependency(Thrift CONFIG) +find_dependency(glog CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-brpc-targets.cmake") +if(NOT TARGET unofficial::brpc::brpc) + if(TARGET unofficial::brpc::brpc-static) + add_library(unofficial::brpc::brpc ALIAS unofficial::brpc::brpc-static) + else() + add_library(unofficial::brpc::brpc ALIAS unofficial::brpc::brpc-shared) + endif() +endif() +]]) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" DESTINATION share/unofficial-brpc) + +install(EXPORT unofficial-brpc-targets + NAMESPACE unofficial::brpc:: + DESTINATION share/unofficial-brpc +) ================================================ FILE: ports/brpc/fix-warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e9a776a..a8c4c1ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,8 +124,8 @@ if(WITH_MESALINK) endif() set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} -DBTHREAD_USE_FAST_PTHREAD_MUTEX -D__const__=__unused__ -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DBRPC_REVISION=\\\"${BRPC_REVISION}\\\" -D__STRICT_ANSI__") set(CMAKE_CPP_FLAGS "${CMAKE_CPP_FLAGS} ${DEBUG_SYMBOL} ${THRIFT_CPP_FLAG}") -set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -O2 -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer") -set(CMAKE_C_FLAGS "${CMAKE_CPP_FLAGS} -O2 -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-unused-parameter -fno-omit-frame-pointer") +set(CMAKE_CXX_FLAGS "${CMAKE_CPP_FLAGS} -O2 -pipe -w -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer") +set(CMAKE_C_FLAGS "${CMAKE_CPP_FLAGS} -O2 -pipe -w -fPIC -fstrict-aliasing -Wno-unused-parameter -fno-omit-frame-pointer") macro(use_cxx11) if(CMAKE_VERSION VERSION_LESS "3.1.3") ================================================ FILE: ports/brpc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/brpc REF "${VERSION}" SHA512 ffcd624550c060fdff01fad0fb752b4aa113dd1dea5ad6d688cb3d3964ded5a120df07f01bbc4a9b15aee226634fc6a851ab4c24fbed6ea07f31c305f6fef71f HEAD_REF master PATCHES fix-build.patch fix-warnings.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_BRPC_TOOLS=OFF -DDOWNLOAD_GTEST=OFF -DWITH_THRIFT=ON -DWITH_GLOG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-brpc CONFIG_PATH share/unofficial-brpc) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/unofficial-brpc/unofficial-brpc-targets.cmake" "add_library(unofficial::brpc::brpc-" "add_library(#[[skip-usage-heuristics]] unofficial::brpc::brpc-" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/butil/third_party/superfasthash") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/brpc/protobuf-6.patch ================================================ diff --git a/src/brpc/amf.cpp b/src/brpc/amf.cpp index 023eaa9b..bc90797e 100644 --- a/src/brpc/amf.cpp +++ b/src/brpc/amf.cpp @@ -1000,7 +1000,7 @@ void WriteAMFObject(const google::protobuf::Message& message, continue; } } - const std::string& name = field->name(); + const auto name = field->name(); if (name.size() >= 65536u) { LOG(ERROR) << "name is too long!"; return stream->set_bad(); diff --git a/src/brpc/builtin/protobufs_service.cpp b/src/brpc/builtin/protobufs_service.cpp index 2344e461..4f24cf48 100644 --- a/src/brpc/builtin/protobufs_service.cpp +++ b/src/brpc/builtin/protobufs_service.cpp @@ -42,7 +42,7 @@ int ProtobufsService::Init() { } const google::protobuf::ServiceDescriptor* d = iter->second.service->GetDescriptor(); - _map[d->full_name()] = d->DebugString(); + _map[std::string(d->full_name())] = d->DebugString(); const int method_count = d->method_count(); for (int j = 0; j < method_count; ++j) { const google::protobuf::MethodDescriptor* md = d->method(j); @@ -53,13 +53,13 @@ int ProtobufsService::Init() { while (!stack.empty()) { const google::protobuf::Descriptor* d = stack.back(); stack.pop_back(); - _map[d->full_name()] = d->DebugString(); + _map[std::string(d->full_name())] = d->DebugString(); for (int i = 0; i < d->field_count(); ++i) { const google::protobuf::FieldDescriptor* f = d->field(i); if (f->type() == google::protobuf::FieldDescriptor::TYPE_MESSAGE || f->type() == google::protobuf::FieldDescriptor::TYPE_GROUP) { const google::protobuf::Descriptor* sub_d = f->message_type(); - if (sub_d != d && _map.find(sub_d->full_name()) == _map.end()) { + if (sub_d != d && _map.find(std::string(sub_d->full_name())) == _map.end()) { stack.push_back(sub_d); } } diff --git a/src/brpc/channel.cpp b/src/brpc/channel.cpp index 0252e97d..e5f7bf48 100644 --- a/src/brpc/channel.cpp +++ b/src/brpc/channel.cpp @@ -493,10 +493,12 @@ void Channel::CallMethod(const google::protobuf::MethodDescriptor* method, if (cntl->_sender == NULL && IsTraceable(Span::tls_parent())) { const int64_t start_send_us = butil::cpuwide_time_us(); const std::string* method_name = NULL; + std::string full_name; if (_get_method_name) { method_name = &_get_method_name(method, cntl); } else if (method) { - method_name = &method->full_name(); + full_name.assign(method->full_name()); + method_name = &full_name; } else { const static std::string NULL_METHOD_STR = "null-method"; method_name = &NULL_METHOD_STR; diff --git a/src/brpc/nshead_pb_service_adaptor.cpp b/src/brpc/nshead_pb_service_adaptor.cpp index ed3552f5..5fe74173 100644 --- a/src/brpc/nshead_pb_service_adaptor.cpp +++ b/src/brpc/nshead_pb_service_adaptor.cpp @@ -126,7 +126,7 @@ void NsheadPbServiceAdaptor::ProcessNsheadRequest( google::protobuf::Service* svc = sp->service; const google::protobuf::MethodDescriptor* method = sp->method; ControllerPrivateAccessor(controller).set_method(method); - done->SetMethodName(method->full_name()); + done->SetMethodName(std::string(method->full_name())); pbdone->pbreq.reset(svc->GetRequestPrototype(method).New()); pbdone->pbres.reset(svc->GetResponsePrototype(method).New()); diff --git a/src/brpc/policy/baidu_rpc_protocol.cpp b/src/brpc/policy/baidu_rpc_protocol.cpp index 5adf77b2..7e83fcdc 100644 --- a/src/brpc/policy/baidu_rpc_protocol.cpp +++ b/src/brpc/policy/baidu_rpc_protocol.cpp @@ -233,7 +233,7 @@ static bool SerializeResponse(const google::protobuf::Message& res, cntl.SetFailed(ERESPONSE, "Fail to serialize response=%s, " "ContentType=%s, CompressType=%s, ChecksumType=%s", - res.GetDescriptor()->full_name().c_str(), + res.GetDescriptor()->full_name().data(), ContentTypeToCStr(content_type), CompressTypeToCStr(compress_type), ChecksumTypeToCStr(checksum_type)); @@ -775,7 +775,7 @@ void ProcessRpcRequest(InputMessageBase* msg_base) { cntl->SetFailed( ELIMIT, "Rejected by %s's ConcurrencyLimiter, concurrency=%d", - mp->method->full_name().c_str(), rejected_cc); + mp->method->full_name().data(), rejected_cc); break; } } @@ -784,7 +784,7 @@ void ProcessRpcRequest(InputMessageBase* msg_base) { accessor.set_method(method); if (span) { - span->ResetServerSpanName(method->full_name()); + span->ResetServerSpanName(std::string(method->full_name())); } if (!server->AcceptRequest(cntl.get())) { @@ -812,7 +812,7 @@ void ProcessRpcRequest(InputMessageBase* msg_base) { EREQUEST, "Fail to parse request=%s, ContentType=%s, " "CompressType=%s, ChecksumType=%s, request_size=%d", - messages->Request()->GetDescriptor()->full_name().c_str(), + messages->Request()->GetDescriptor()->full_name().data(), ContentTypeToCStr(content_type), CompressTypeToCStr(compress_type), ChecksumTypeToCStr(checksum_type), req_size); @@ -996,7 +996,7 @@ void ProcessRpcResponse(InputMessageBase* msg_base) { EREQUEST, "Fail to parse response=%s, ContentType=%s, " "CompressType=%s, ChecksumType=%s, request_size=%d", - cntl->response()->GetDescriptor()->full_name().c_str(), + cntl->response()->GetDescriptor()->full_name().data(), ContentTypeToCStr(content_type), CompressTypeToCStr(compress_type), ChecksumTypeToCStr(checksum_type), res_size); @@ -1033,7 +1033,7 @@ void SerializeRpcRequest(butil::IOBuf* request_buf, Controller* cntl, EREQUEST, "Fail to compress request=%s, " "ContentType=%s, CompressType=%s, ChecksumType=%s", - request->GetDescriptor()->full_name().c_str(), + request->GetDescriptor()->full_name().data(), ContentTypeToCStr(content_type), CompressTypeToCStr(compress_type), ChecksumTypeToCStr(checksum_type)); } diff --git a/src/brpc/policy/http_rpc_protocol.cpp b/src/brpc/policy/http_rpc_protocol.cpp index 872c2897..88eee74a 100644 --- a/src/brpc/policy/http_rpc_protocol.cpp +++ b/src/brpc/policy/http_rpc_protocol.cpp @@ -284,7 +284,7 @@ static bool JsonToProtoMessage(const butil::IOBuf& body, bool ok = json2pb::JsonToProtoMessage(&wrapper, message, options, &error); if (!ok) { cntl->SetFailed(error_code, "Fail to parse http json body as %s: %s", - message->GetDescriptor()->full_name().c_str(), + message->GetDescriptor()->full_name().data(), error.c_str()); } return ok; @@ -305,7 +305,7 @@ static bool ProtoMessageToJson(const google::protobuf::Message& message, bool ok = json2pb::ProtoMessageToJson(message, wrapper, options, &error); if (!ok) { cntl->SetFailed(error_code, "Fail to convert %s to json: %s", - message.GetDescriptor()->full_name().c_str(), + message.GetDescriptor()->full_name().data(), error.c_str()); } return ok; @@ -321,7 +321,7 @@ static bool ProtoJsonToProtoMessage(const butil::IOBuf& body, bool ok = json2pb::ProtoJsonToProtoMessage(&wrapper, message, options, &error); if (!ok) { cntl->SetFailed(error_code, "Fail to parse http proto-json body as %s: %s", - message->GetDescriptor()->full_name().c_str(), + message->GetDescriptor()->full_name().data(), error.c_str()); } return ok; @@ -337,7 +337,7 @@ static bool ProtoMessageToProtoJson(const google::protobuf::Message& message, bool ok = json2pb::ProtoMessageToProtoJson(message, wrapper, options, &error); if (!ok) { cntl->SetFailed(error_code, "Fail to convert %s to proto-json: %s", - message.GetDescriptor()->full_name().c_str(), error.c_str()); + message.GetDescriptor()->full_name().data(), error.c_str()); } return ok; } @@ -527,13 +527,13 @@ void ProcessHttpResponse(InputMessageBase* msg) { if (content_type == HTTP_CONTENT_PROTO) { if (!ParsePbFromIOBuf(cntl->response(), res_body)) { cntl->SetFailed(ERESPONSE, "Fail to parse content as %s", - cntl->response()->GetDescriptor()->full_name().c_str()); + cntl->response()->GetDescriptor()->full_name().data()); break; } } else if (content_type == HTTP_CONTENT_PROTO_TEXT) { if (!ParsePbTextFromIOBuf(cntl->response(), res_body)) { cntl->SetFailed(ERESPONSE, "Fail to parse proto-text content as %s", - cntl->response()->GetDescriptor()->full_name().c_str()); + cntl->response()->GetDescriptor()->full_name().data()); break; } } else if (content_type == HTTP_CONTENT_JSON) { @@ -612,13 +612,13 @@ void SerializeHttpRequest(butil::IOBuf* /*not used*/, if (!pbreq->SerializeToZeroCopyStream(&wrapper)) { cntl->request_attachment().clear(); return cntl->SetFailed(EREQUEST, "Fail to serialize %s", - pbreq->GetTypeName().c_str()); + pbreq->GetTypeName().data()); } } else if (content_type == HTTP_CONTENT_PROTO_TEXT) { if (!google::protobuf::TextFormat::Print(*pbreq, &wrapper)) { cntl->request_attachment().clear(); return cntl->SetFailed(EREQUEST, "Fail to print %s as proto-text", - pbreq->GetTypeName().c_str()); + pbreq->GetTypeName().data()); } } else if (content_type == HTTP_CONTENT_PROTO_JSON) { if (!ProtoMessageToProtoJson(*pbreq, &wrapper, cntl, EREQUEST)) { @@ -880,11 +880,11 @@ HttpResponseSender::~HttpResponseSender() { butil::IOBufAsZeroCopyOutputStream wrapper(&cntl->response_attachment()); if (content_type == HTTP_CONTENT_PROTO) { if (!res->SerializeToZeroCopyStream(&wrapper)) { - cntl->SetFailed(ERESPONSE, "Fail to serialize %s", res->GetTypeName().c_str()); + cntl->SetFailed(ERESPONSE, "Fail to serialize %s", res->GetTypeName().data()); } } else if (content_type == HTTP_CONTENT_PROTO_TEXT) { if (!google::protobuf::TextFormat::Print(*res, &wrapper)) { - cntl->SetFailed(ERESPONSE, "Fail to print %s as proto-text", res->GetTypeName().c_str()); + cntl->SetFailed(ERESPONSE, "Fail to print %s as proto-text", res->GetTypeName().data()); } } else if (content_type == HTTP_CONTENT_PROTO_JSON) { ProtoMessageToProtoJson(*res, &wrapper, cntl, ERESPONSE); @@ -1535,7 +1535,7 @@ void ProcessHttpRequest(InputMessageBase *msg) { cntl->request_attachment().swap(req_body); google::protobuf::Closure* done = new HttpResponseSenderAsDone(&resp_sender); if (span) { - span->ResetServerSpanName(md->full_name()); + span->ResetServerSpanName(std::string(md->full_name())); span->set_start_callback_us(butil::cpuwide_time_us()); span->AsParent(); } @@ -1570,13 +1570,13 @@ void ProcessHttpRequest(InputMessageBase *msg) { int rejected_cc = 0; if (!method_status->OnRequested(&rejected_cc)) { cntl->SetFailed(ELIMIT, "Rejected by %s's ConcurrencyLimiter, concurrency=%d", - mp->method->full_name().c_str(), rejected_cc); + mp->method->full_name().data(), rejected_cc); return; } } if (span) { - span->ResetServerSpanName(mp->method->full_name()); + span->ResetServerSpanName(std::string(mp->method->full_name())); } // NOTE: accesses to builtin services are not counted as part of // concurrency, therefore are not limited by ServerOptions.max_concurrency. @@ -1632,7 +1632,7 @@ void ProcessHttpRequest(InputMessageBase *msg) { if (!req->IsInitialized()) { cntl->SetFailed(EREQUEST, "%s needs to be created from a" " non-empty json, it has required fields.", - req->GetDescriptor()->full_name().c_str()); + req->GetDescriptor()->full_name().data()); return; } // else all fields of the request are optional. } else { @@ -1677,13 +1677,13 @@ void ProcessHttpRequest(InputMessageBase *msg) { if (content_type == HTTP_CONTENT_PROTO) { if (!ParsePbFromIOBuf(req, req_body)) { cntl->SetFailed(EREQUEST, "Fail to parse http body as %s", - req->GetDescriptor()->full_name().c_str()); + req->GetDescriptor()->full_name().data()); return; } } else if (content_type == HTTP_CONTENT_PROTO_TEXT) { if (!ParsePbTextFromIOBuf(req, req_body)) { cntl->SetFailed(EREQUEST, "Fail to parse http proto-text body as %s", - req->GetDescriptor()->full_name().c_str()); + req->GetDescriptor()->full_name().data()); return; } } else if (content_type == HTTP_CONTENT_PROTO_JSON) { diff --git a/src/brpc/policy/hulu_pbrpc_protocol.cpp b/src/brpc/policy/hulu_pbrpc_protocol.cpp index 02ec8efc..46b501df 100644 --- a/src/brpc/policy/hulu_pbrpc_protocol.cpp +++ b/src/brpc/policy/hulu_pbrpc_protocol.cpp @@ -473,7 +473,7 @@ void ProcessHuluRequest(InputMessageBase* msg_base) { int rejected_cc = 0; if (!method_status->OnRequested(&rejected_cc)) { cntl->SetFailed(ELIMIT, "Rejected by %s's ConcurrencyLimiter, concurrency=%d", - sp->method->full_name().c_str(), rejected_cc); + sp->method->full_name().data(), rejected_cc); break; } } @@ -487,7 +487,7 @@ void ProcessHuluRequest(InputMessageBase* msg_base) { } if (span) { - span->ResetServerSpanName(method->full_name()); + span->ResetServerSpanName(std::string(method->full_name())); } const int reqsize = msg->payload.length(); butil::IOBuf req_buf; diff --git a/src/brpc/policy/mongo_protocol.cpp b/src/brpc/policy/mongo_protocol.cpp index 82bb3e0b..45ab7076 100644 --- a/src/brpc/policy/mongo_protocol.cpp +++ b/src/brpc/policy/mongo_protocol.cpp @@ -249,7 +249,7 @@ void ProcessMongoRequest(InputMessageBase* msg_base) { if (!method_status->OnRequested(&rejected_cc)) { mongo_done->cntl.SetFailed( ELIMIT, "Rejected by %s's ConcurrencyLimiter, concurrency=%d", - mp->method->full_name().c_str(), rejected_cc); + mp->method->full_name().data(), rejected_cc); break; } } diff --git a/src/brpc/policy/nshead_mcpack_protocol.cpp b/src/brpc/policy/nshead_mcpack_protocol.cpp index 40d38836..9bb7ea2b 100644 --- a/src/brpc/policy/nshead_mcpack_protocol.cpp +++ b/src/brpc/policy/nshead_mcpack_protocol.cpp @@ -49,7 +49,7 @@ void NsheadMcpackAdaptor::ParseNsheadMeta( const google::protobuf::ServiceDescriptor* sd = service->GetDescriptor(); if (sd->method_count() == 0) { cntl->SetFailed(ENOMETHOD, "No method in service=%s", - sd->full_name().c_str()); + sd->full_name().data()); return; } const google::protobuf::MethodDescriptor* method = sd->method(0); @@ -59,7 +59,7 @@ void NsheadMcpackAdaptor::ParseNsheadMeta( void NsheadMcpackAdaptor::ParseRequestFromIOBuf( const NsheadMeta&, const NsheadMessage& raw_req, Controller* cntl, google::protobuf::Message* pb_req) const { - const std::string& msg_name = pb_req->GetDescriptor()->full_name(); + const auto msg_name = std::string(pb_req->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (!handler.parse_from_iobuf(pb_req, raw_req.body)) { cntl->SetFailed(EREQUEST, "Fail to parse request message, " @@ -86,7 +86,7 @@ void NsheadMcpackAdaptor::SerializeResponseToIOBuf( return; } - const std::string& msg_name = pb_res->GetDescriptor()->full_name(); + const auto msg_name = std::string(pb_res->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (!handler.serialize_to_iobuf(*pb_res, &raw_res->body, ::mcpack2pb::FORMAT_MCPACK_V2)) { @@ -124,7 +124,7 @@ void ProcessNsheadMcpackResponse(InputMessageBase* msg_base) { // silently ignore response. return; } - const std::string& msg_name = res->GetDescriptor()->full_name(); + const auto msg_name = std::string(res->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (!handler.parse_from_iobuf(res, msg->payload)) { return cntl->CloseConnection("Fail to parse response message"); @@ -143,7 +143,7 @@ void SerializeNsheadMcpackRequest(butil::IOBuf* buf, Controller* cntl, "nshead_mcpack protocol doesn't support compression"); return; } - const std::string& msg_name = pb_req->GetDescriptor()->full_name(); + const auto msg_name = std::string(pb_req->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (!handler.serialize_to_iobuf(*pb_req, buf, ::mcpack2pb::FORMAT_MCPACK_V2)) { cntl->SetFailed(EREQUEST, "Fail to serialize %s", msg_name.c_str()); diff --git a/src/brpc/policy/sofa_pbrpc_protocol.cpp b/src/brpc/policy/sofa_pbrpc_protocol.cpp index 9ee772dc..4bcfa939 100644 --- a/src/brpc/policy/sofa_pbrpc_protocol.cpp +++ b/src/brpc/policy/sofa_pbrpc_protocol.cpp @@ -424,7 +424,7 @@ void ProcessSofaRequest(InputMessageBase* msg_base) { int rejected_cc = 0; if (!method_status->OnRequested(&rejected_cc)) { cntl->SetFailed(ELIMIT, "Rejected by %s's ConcurrencyLimiter, concurrency=%d", - sp->method->full_name().c_str(), rejected_cc); + sp->method->full_name().data(), rejected_cc); break; } } @@ -437,7 +437,7 @@ void ProcessSofaRequest(InputMessageBase* msg_base) { } if (span) { - span->ResetServerSpanName(method->full_name()); + span->ResetServerSpanName(std::string(method->full_name())); } req.reset(svc->GetRequestPrototype(method).New()); if (!ParseFromCompressedData(msg->payload, req.get(), req_cmp_type)) { diff --git a/src/brpc/policy/ubrpc2pb_protocol.cpp b/src/brpc/policy/ubrpc2pb_protocol.cpp index 312ec5d9..92db57e1 100644 --- a/src/brpc/policy/ubrpc2pb_protocol.cpp +++ b/src/brpc/policy/ubrpc2pb_protocol.cpp @@ -169,7 +169,7 @@ void UbrpcAdaptor::ParseNsheadMeta( void UbrpcAdaptor::ParseRequestFromIOBuf( const NsheadMeta&, const NsheadMessage& raw_req, Controller* cntl, google::protobuf::Message* pb_req) const { - const std::string& msg_name = pb_req->GetDescriptor()->full_name(); + const auto msg_name = std::string(pb_req->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (handler.parse_body == NULL) { return cntl->SetFailed(EREQUEST, "Fail to find parser of %s", @@ -227,7 +227,7 @@ void UbrpcAdaptor::SerializeResponseToIOBuf( // return AppendError(meta, cntl, raw_res->body); // } - const std::string& msg_name = pb_res->GetDescriptor()->full_name(); + const auto msg_name = std::string(pb_res->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (handler.serialize_body == NULL) { cntl->SetFailed(ERESPONSE, "Fail to find serializer of %s", @@ -279,7 +279,7 @@ static void ParseResponse(Controller* cntl, butil::IOBuf& buf, // silently ignore response. return; } - const std::string& msg_name = res->GetDescriptor()->full_name(); + const auto msg_name = std::string(res->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (handler.parse_body == NULL) { return cntl->SetFailed(ERESPONSE, "Fail to find parser of %s", @@ -480,7 +480,7 @@ static void SerializeUbrpcRequest(butil::IOBuf* buf, Controller* cntl, if (cntl->method() == NULL) { return cntl->SetFailed(ENOMETHOD, "method is NULL"); } - const std::string& msg_name = request->GetDescriptor()->full_name(); + const auto msg_name = std::string(request->GetDescriptor()->full_name()); mcpack2pb::MessageHandler handler = mcpack2pb::find_message_handler(msg_name); if (handler.serialize_body == NULL) { return cntl->SetFailed(EREQUEST, "Fail to find serializer of %s", @@ -500,9 +500,9 @@ static void SerializeUbrpcRequest(butil::IOBuf* buf, Controller* cntl, sr.begin_mcpack_array("content", mcpack2pb::FIELD_OBJECT); sr.begin_object(); { - sr.add_string("service_name", cntl->method()->service()->name()); + sr.add_string("service_name", std::string(cntl->method()->service()->name())); sr.add_int64("id", cntl->call_id().value); - sr.add_string("method", cntl->method()->name()); + sr.add_string("method", std::string(cntl->method()->name())); sr.begin_object("params"); const char* const request_name = cntl->idl_names().request_name; if (request_name != NULL && *request_name) { diff --git a/src/brpc/server.cpp b/src/brpc/server.cpp index cd83053a..0df5a774 100644 --- a/src/brpc/server.cpp +++ b/src/brpc/server.cpp @@ -413,7 +413,9 @@ void* Server::UpdateDerivedVars(void* arg) { const std::string& Server::ServiceProperty::service_name() const { if (service) { - return service->GetDescriptor()->full_name(); + static std::string full_name; + full_name.assign(service->GetDescriptor()->full_name()); + return full_name; } else if (restful_map) { return restful_map->service_name(); } @@ -1438,7 +1440,7 @@ int Server::AddServiceInternal(google::protobuf::Service* service, mp.service = service; mp.method = md; mp.status = new MethodStatus; - _method_map[md->full_name()] = mp; + _method_map[std::string(md->full_name())] = mp; if (is_idl_support && sd->name() != sd->full_name()/*has ns*/) { MethodProperty mp2 = mp; mp2.own_method_status = false; @@ -1461,8 +1463,8 @@ int Server::AddServiceInternal(google::protobuf::Service* service, const ServiceProperty ss = { is_builtin_service, svc_opt.ownership, service, NULL }; - _fullname_service_map[sd->full_name()] = ss; - _service_map[sd->name()] = ss; + _fullname_service_map[std::string(sd->full_name())] = ss; + _service_map[std::string(sd->name())] = ss; if (is_builtin_service) { ++_builtin_service_count; } else { @@ -1504,7 +1506,7 @@ int Server::AddServiceInternal(google::protobuf::Service* service, // handling is not affected. for (size_t i = 0; i < mappings.size(); ++i) { const std::string full_method_name = - sd->full_name() + "." + mappings[i].method_name; + std::string(sd->full_name()) + "." + mappings[i].method_name; MethodProperty* mp = _method_map.seek(full_method_name); if (mp == NULL) { LOG(ERROR) << "Unknown method=`" << full_method_name << '\''; @@ -1731,7 +1733,7 @@ int Server::RemoveService(google::protobuf::Service* service) { const google::protobuf::ServiceDescriptor* sd = service->GetDescriptor(); ServiceProperty* ss = _fullname_service_map.seek(sd->full_name()); if (ss == NULL) { - RPC_VLOG << "Fail to find service=" << sd->full_name().c_str(); + RPC_VLOG << "Fail to find service=" << sd->full_name().data(); return -1; } RemoveMethodsOf(service); diff --git a/src/json2pb/json_to_pb.cpp b/src/json2pb/json_to_pb.cpp index e758bdb3..46d1f924 100644 --- a/src/json2pb/json_to_pb.cpp +++ b/src/json2pb/json_to_pb.cpp @@ -54,7 +54,7 @@ } \ butil::string_appendf(perr, fmt, ##__VA_ARGS__); \ if ((pb) != nullptr) { \ - butil::string_appendf(perr, " [%s]", (pb)->GetDescriptor()->name().c_str()); \ + butil::string_appendf(perr, " [%s]", (pb)->GetDescriptor()->name().data()); \ } \ } else { } @@ -126,7 +126,7 @@ inline bool value_invalid(const google::protobuf::FieldDescriptor* field, const string_append_value(value, err); butil::string_appendf(err, "' for %sfield `%s' which SHOULD be %s", optional ? "optional " : "", - field->full_name().c_str(), type); + field->full_name().data(), type); } if (!optional) { return false; @@ -324,7 +324,7 @@ static bool JsonValueToProtoField(const BUTIL_RAPIDJSON_NAMESPACE::Value& value, int depth) { if (value.IsNull()) { if (field->is_required()) { - J2PERROR(err, "Missing required field: %s", field->full_name().c_str()); + J2PERROR(err, "Missing required field: %s", field->full_name().data()); return false; } return true; @@ -333,7 +333,7 @@ static bool JsonValueToProtoField(const BUTIL_RAPIDJSON_NAMESPACE::Value& value, if (field->is_repeated()) { if (!value.IsArray()) { J2PERROR(err, "Invalid value for repeated field: %s", - field->full_name().c_str()); + field->full_name().data()); return false; } } @@ -506,7 +506,7 @@ bool JsonMapToProtoMap(const BUTIL_RAPIDJSON_NAMESPACE::Value& value, int depth) { if (!value.IsObject()) { J2PERROR(err, "Non-object value for map field: %s", - map_desc->full_name().c_str()); + map_desc->full_name().data()); return false; } @@ -584,7 +584,7 @@ bool JsonValueToProtoMessage(const BUTIL_RAPIDJSON_NAMESPACE::Value& json_value, for (size_t i = 0; i < fields.size(); ++i) { const google::protobuf::FieldDescriptor* field = fields[i]; - const std::string& orig_name = field->name(); + const auto orig_name = std::string(field->name()); bool res = decode_name(orig_name, field_name_str_temp); const std::string& field_name_str = (res ? field_name_str_temp : orig_name); @@ -593,7 +593,7 @@ bool JsonValueToProtoMessage(const BUTIL_RAPIDJSON_NAMESPACE::Value& json_value, json_value.FindMember(field_name_str.data()); if (member == json_value.MemberEnd()) { if (field->is_required()) { - J2PERROR(err, "Missing required field: %s", field->full_name().c_str()); + J2PERROR(err, "Missing required field: %s", field->full_name().data()); return false; } continue; @@ -604,7 +604,7 @@ bool JsonValueToProtoMessage(const BUTIL_RAPIDJSON_NAMESPACE::Value& json_value, json_value.FindMember(field_name_str.data()); if (member == NULL) { if (field->is_required()) { - J2PERROR(err, "Missing required field: %s", field->full_name().c_str()); + J2PERROR(err, "Missing required field: %s", field->full_name().data()); return false; } continue; diff --git a/src/json2pb/pb_to_json.cpp b/src/json2pb/pb_to_json.cpp index f2322267..e0b95b3d 100644 --- a/src/json2pb/pb_to_json.cpp +++ b/src/json2pb/pb_to_json.cpp @@ -172,7 +172,7 @@ bool PbToJsonConverter::Convert(const google::protobuf::Message& message, Handle if (!field->is_repeated() && !reflection->HasField(message, field)) { // Field that has not been set if (field->is_required()) { - _error = "Missing required field: " + field->full_name(); + _error = "Missing required field: " + std::string(field->full_name()); return false; } // Whether dumps default fields @@ -186,7 +186,7 @@ bool PbToJsonConverter::Convert(const google::protobuf::Message& message, Handle continue; } - const std::string& orig_name = field->name(); + const auto orig_name = std::string(field->name()); bool decoded = decode_name(orig_name, field_name_str); const std::string& name = decoded ? field_name_str : orig_name; handler.Key(name.data(), name.size(), false); @@ -205,7 +205,7 @@ bool PbToJsonConverter::Convert(const google::protobuf::Message& message, Handle // Write a json object corresponding to hold protobuf map // such as {"key": value, ...} - const std::string& orig_name = map_desc->name(); + const auto orig_name = std::string(map_desc->name()); bool decoded = decode_name(orig_name, field_name_str); const std::string& name = decoded ? field_name_str : orig_name; handler.Key(name.data(), name.size(), false); @@ -306,7 +306,7 @@ bool PbToJsonConverter::_PbFieldToJson( handler.StartArray(); if (_option.enum_option == OUTPUT_ENUM_BY_NAME) { for (int index = 0; index < field_size; ++index) { - const std::string& enum_name = reflection->GetRepeatedEnum( + const auto enum_name = reflection->GetRepeatedEnum( message, field, index)->name(); handler.String(enum_name.data(), enum_name.size(), false); } @@ -320,7 +320,7 @@ bool PbToJsonConverter::_PbFieldToJson( } else { if (_option.enum_option == OUTPUT_ENUM_BY_NAME) { - const std::string& enum_name = + const auto enum_name = reflection->GetEnum(message, field)->name(); handler.String(enum_name.data(), enum_name.size(), false); } else { diff --git a/src/json2pb/pb_to_json.h b/src/json2pb/pb_to_json.h index 8de63517..8407c477 100644 --- a/src/json2pb/pb_to_json.h +++ b/src/json2pb/pb_to_json.h @@ -93,7 +93,7 @@ bool ProtoMessageToJson(const google::protobuf::Message& message, std::string* error = NULL); // See for details. -using Pb2ProtoJsonOptions = google::protobuf::util::JsonOptions; +using Pb2ProtoJsonOptions = google::protobuf::util::JsonPrintOptions; #if GOOGLE_PROTOBUF_VERSION >= 5026002 #define AlwaysPrintPrimitiveFields(options) options.always_print_fields_with_no_presence diff --git a/src/json2pb/protobuf_map.cpp b/src/json2pb/protobuf_map.cpp index f552bf62..4b290007 100644 --- a/src/json2pb/protobuf_map.cpp +++ b/src/json2pb/protobuf_map.cpp @@ -38,12 +38,12 @@ bool IsProtobufMap(const FieldDescriptor* field) { if (NULL == key_desc || key_desc->is_repeated() || key_desc->cpp_type() != FieldDescriptor::CPPTYPE_STRING - || strcmp(KEY_NAME, key_desc->name().c_str()) != 0) { + || strcmp(KEY_NAME, key_desc->name().data()) != 0) { return false; } const FieldDescriptor* value_desc = entry_desc->field(VALUE_INDEX); if (NULL == value_desc - || strcmp(VALUE_NAME, value_desc->name().c_str()) != 0) { + || strcmp(VALUE_NAME, value_desc->name().data()) != 0) { return false; } return true; diff --git a/src/json2pb/protobuf_type_resolver.h b/src/json2pb/protobuf_type_resolver.h index a73a4231..2445b9ec 100644 --- a/src/json2pb/protobuf_type_resolver.h +++ b/src/json2pb/protobuf_type_resolver.h @@ -32,7 +32,7 @@ namespace json2pb { inline std::string GetTypeUrl(const google::protobuf::Message& message) { return butil::string_printf(PROTOBUF_TYPE_URL_PREFIX"/%s", - message.GetDescriptor()->full_name().c_str()); + message.GetDescriptor()->full_name().data()); } // unique_ptr deleter for TypeResolver only deletes the object diff --git a/src/mcpack2pb/generator.cpp b/src/mcpack2pb/generator.cpp index 0fb78936..4f0dd1e9 100644 --- a/src/mcpack2pb/generator.cpp +++ b/src/mcpack2pb/generator.cpp @@ -1391,13 +1391,13 @@ bool McpackToProtobuf::Generate(const google::protobuf::FileDescriptor* file, if (!generate_parsing(d, ref_msgs, ref_maps, gimpl_printer)) { ::butil::string_printf( error, "Fail to generate parsing code for %s", - d->full_name().c_str()); + d->full_name().data()); return false; } if (!generate_serializing(d, ref_msgs, ref_maps, gimpl_printer)) { ::butil::string_printf( error, "Fail to generate serializing code for %s", - d->full_name().c_str()); + d->full_name().data()); return false; } std::string var_name = mcpack2pb::to_var_name(d->full_name()); ================================================ FILE: ports/brpc/vcpkg.json ================================================ { "name": "brpc", "version": "1.16.0", "description": "Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services, called \"baidu-rpc\" inside Baidu.", "homepage": "https://github.com/apache/brpc", "license": "Apache-2.0", "supports": "!android & !windows", "dependencies": [ "gflags", "glog", { "name": "leveldb", "default-features": false }, "openssl", { "name": "protobuf", "features": [ "zlib" ] }, "thrift", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/brunocodutra-metal/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brunocodutra/metal REF 9db9b403e58e0be0bbd295ff64f01e700965f25d SHA512 b611d88d310893329f48111716c849571cb1459da1e71851bf3ec7393f18f8eb94077ce12410a9bcb1953e6b4ea0e8f2d2db5ce7f555a72ab2b7dae434b52d62 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME Metal CONFIG_PATH lib/cmake/Metal ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/brunocodutra-metal/vcpkg.json ================================================ { "name": "brunocodutra-metal", "version": "2.1.4", "description": "A single header C++11 library designed to make you love template metaprogramming", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/brynet/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IronsDu/brynet REF d9dda06cb2207f42e0a657c52c8278496fa4732c # v1.12.2 SHA512 9900277bca019339cdca8da9a8d21b3df96f86ca6642e7d212fdf68a0899b48d2b9d803a334dc8ff4b372bc40c74a0095419a02dd8a6d4aa431a44666c19214e HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/brynet DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/brynet/vcpkg.json ================================================ { "name": "brynet", "version": "1.12.2", "description": "A C++ header only cross platform high performance tcp network library, and support SSL/HTTP/Websocket.", "homepage": "https://github.com/IronsDu/brynet" } ================================================ FILE: ports/bshoshany-thread-pool/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bshoshany/thread-pool REF "v${VERSION}" SHA512 8f0752962908b81b096f964729aa47e2bc6111a8458f6ec6f3db5970e0245c0ad5b2af2c3cc38bfeb59c9cffc5710613b977b943e51fc3f4ebb92c0b12d1804e HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/BS_thread_pool.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/modules/BS.thread_pool.cppm" DESTINATION "${CURRENT_PACKAGES_DIR}/modules") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/bshoshany-thread-pool/vcpkg.json ================================================ { "name": "bshoshany-thread-pool", "version": "5.1.0", "maintainers": "Barak Shoshany ", "description": "BS::thread_pool: a fast, lightweight, modern, and easy-to-use C++17 / C++20 / C++23 thread pool library", "homepage": "https://github.com/bshoshany/thread-pool", "documentation": "https://github.com/bshoshany/thread-pool/blob/master/README.md", "license": "MIT" } ================================================ FILE: ports/bsio/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArkNX/bsio REF v1.0.0 SHA512 28b895b823d84203f4cec531ddd5bb49dc915e9a4eb26e064834d1e999b98e512b37d361e59029eb6d7e44fe99ba81f9c5729f119eab7eb928de1a1374f0b7df HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -Dbsio_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/bsio/vcpkg.json ================================================ { "name": "bsio", "version": "1.0.0", "description": "networking library, ans support HTTP/WebSocket, based on asio.", "homepage": "https://github.com/ArkNX/bsio", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/buck-yeh-bux/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO buck-yeh/bux REF "${VERSION}" SHA512 6fdc80287a76edd72c95154120244a8f9964175628358111a24a1c42667463e5ca2ce4e7914b661b9bcbfad6100f87f1bf2fe007a02fc7fb8f74eede65b333f9 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/buck-yeh-bux/vcpkg.json ================================================ { "name": "buck-yeh-bux", "version": "1.12.4", "description": "A supplemental C++ library with functionalities not directly supported from Modern C++ standard.", "homepage": "https://github.com/buck-yeh/bux", "license": "MIT", "supports": "!(linux | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/buck-yeh-bux-sqlite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO buck-yeh/bux-sqlite REF "${VERSION}" SHA512 ccfeb141530efcf8233bd3579ba6eb17e7decc1d4fa92706f0810824303078e7f379a9c81a777189860e53c866b9c338b51b2f5884958782d02f7d79d7fb575c HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/buck-yeh-bux-sqlite/vcpkg.json ================================================ { "name": "buck-yeh-bux-sqlite", "version": "1.0.5", "description": "Modern C++ wrapper classes and utilities of the original sqlite3 API", "homepage": "https://github.com/buck-yeh/bux-sqlite", "license": "MIT", "supports": "!(android | linux | osx | uwp)", "dependencies": [ "buck-yeh-bux", { "name": "sqlite3", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/bullet3/cmake-config-export.diff ================================================ diff --git a/BulletConfig.cmake.in b/BulletConfig.cmake.in index f5dc7bd..2d18304 100644 --- a/BulletConfig.cmake.in +++ b/BulletConfig.cmake.in @@ -14,12 +14,15 @@ # BULLET_ROOT_DIR - The base directory of Bullet # BULLET_VERSION_STRING - A human-readable string containing the version +@PACKAGE_INIT@ +include("${CMAKE_CURRENT_LIST_DIR}/BulletTargets.cmake") + set ( BULLET_FOUND 1 ) -set ( BULLET_USE_FILE "@BULLET_USE_FILE@" ) +set_and_check ( BULLET_USE_FILE "${CMAKE_CURRENT_LIST_DIR}/UseBullet.cmake" ) set ( BULLET_DEFINITIONS "@BULLET_DEFINITIONS@" ) -set ( BULLET_INCLUDE_DIR "@INCLUDE_INSTALL_DIR@" ) -set ( BULLET_INCLUDE_DIRS "@INCLUDE_INSTALL_DIR@" ) +set_and_check ( BULLET_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@" ) +set_and_check ( BULLET_INCLUDE_DIRS "@PACKAGE_INCLUDE_INSTALL_DIR@" ) set ( BULLET_LIBRARIES "@BULLET_LIBRARIES@" ) -set ( BULLET_LIBRARY_DIRS "@LIB_DESTINATION@" ) -set ( BULLET_ROOT_DIR "@CMAKE_INSTALL_PREFIX@" ) +set ( BULLET_LIBRARY_DIRS "" ) # subject to CMAKE_BUILD_TYPE +set_and_check ( BULLET_ROOT_DIR "@PACKAGE_CMAKE_INSTALL_PREFIX@" ) set ( BULLET_VERSION_STRING "@BULLET_VERSION@" ) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index a695b71..c3eb136 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -498,15 +498,25 @@ list (APPEND BULLET_LIBRARIES BulletCollision) list (APPEND BULLET_LIBRARIES BulletDynamics) list (APPEND BULLET_LIBRARIES BulletSoftBody) set (BULLET_USE_FILE ${BULLET_CONFIG_CMAKE_PATH}/UseBullet.cmake) -configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/BulletConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake - @ONLY ESCAPE_QUOTES - ) +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/BulletConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake + PATH_VARS INCLUDE_INSTALL_DIR LIB_DESTINATION CMAKE_INSTALL_PREFIX BULLET_CONFIG_CMAKE_PATH + INSTALL_DESTINATION ${BULLET_CONFIG_CMAKE_PATH} +) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/BulletConfigVersion.cmake" + VERSION ${BULLET_VERSION} + COMPATIBILITY AnyNewerVersion +) OPTION(INSTALL_CMAKE_FILES "Install generated CMake files" ON) IF (INSTALL_CMAKE_FILES) + install(EXPORT BulletTargets DESTINATION ${BULLET_CONFIG_CMAKE_PATH}) install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/UseBullet.cmake ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/BulletConfigVersion.cmake DESTINATION ${BULLET_CONFIG_CMAKE_PATH} ) ENDIF (INSTALL_CMAKE_FILES) diff --git a/Extras/BulletRobotics/CMakeLists.txt b/Extras/BulletRobotics/CMakeLists.txt index 6267219..b5603ab 100644 --- a/Extras/BulletRobotics/CMakeLists.txt +++ b/Extras/BulletRobotics/CMakeLists.txt @@ -281,9 +281,7 @@ ADD_LIBRARY(BulletRobotics ${BulletRobotics_SRCS}) SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletRobotics BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletRobotics PUBLIC BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common) @@ -294,6 +292,7 @@ INSTALL ( INSTALL(TARGETS BulletRobotics + EXPORT BulletTargets LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} ) diff --git a/Extras/ConvexDecomposition/CMakeLists.txt b/Extras/ConvexDecomposition/CMakeLists.txt index 132a336..4f636c6 100644 --- a/Extras/ConvexDecomposition/CMakeLists.txt +++ b/Extras/ConvexDecomposition/CMakeLists.txt @@ -38,9 +38,7 @@ ADD_LIBRARY(ConvexDecomposition ${ConvexDecomposition_SRCS} ${ConvexDecompositio SET_TARGET_PROPERTIES(ConvexDecomposition PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(ConvexDecomposition PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(ConvexDecomposition BulletCollision LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(ConvexDecomposition PUBLIC BulletCollision LinearMath) IF (INSTALL_EXTRA_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -50,6 +48,7 @@ IF (INSTALL_EXTRA_LIBS) INSTALL(TARGETS ConvexDecomposition DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS ConvexDecomposition + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/Extras/InverseDynamics/CMakeLists.txt b/Extras/InverseDynamics/CMakeLists.txt index 22e953a..7865951 100644 --- a/Extras/InverseDynamics/CMakeLists.txt +++ b/Extras/InverseDynamics/CMakeLists.txt @@ -21,9 +21,7 @@ User2InternalIndex.cpp SET_TARGET_PROPERTIES(BulletInverseDynamicsUtils PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletInverseDynamicsUtils PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletInverseDynamicsUtils BulletInverseDynamics BulletDynamics BulletCollision Bullet3Common LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletInverseDynamicsUtils PUBLIC BulletInverseDynamics BulletDynamics BulletCollision Bullet3Common LinearMath) IF (INSTALL_EXTRA_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -33,6 +31,7 @@ IF (INSTALL_EXTRA_LIBS) INSTALL(TARGETS BulletInverseDynamicsUtils DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletInverseDynamicsUtils + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/Extras/Serialize/BulletFileLoader/CMakeLists.txt b/Extras/Serialize/BulletFileLoader/CMakeLists.txt index 9b5dce7..b9cd2b7 100644 --- a/Extras/Serialize/BulletFileLoader/CMakeLists.txt +++ b/Extras/Serialize/BulletFileLoader/CMakeLists.txt @@ -20,9 +20,7 @@ btBulletFile.h ADD_LIBRARY(BulletFileLoader ${BulletFileLoader_SRCS} ${BulletFileLoader_HDRS}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletFileLoader LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletFileLoader PUBLIC LinearMath) SET_TARGET_PROPERTIES(BulletFileLoader PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletFileLoader PROPERTIES SOVERSION ${BULLET_VERSION}) @@ -35,6 +33,7 @@ IF (INSTALL_EXTRA_LIBS) INSTALL(TARGETS BulletFileLoader DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletFileLoader + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/Extras/Serialize/BulletWorldImporter/CMakeLists.txt b/Extras/Serialize/BulletWorldImporter/CMakeLists.txt index b56b39a..6e23be5 100644 --- a/Extras/Serialize/BulletWorldImporter/CMakeLists.txt +++ b/Extras/Serialize/BulletWorldImporter/CMakeLists.txt @@ -15,9 +15,7 @@ btWorldImporter.h SET_TARGET_PROPERTIES(BulletWorldImporter PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletWorldImporter PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletWorldImporter BulletDynamics BulletCollision BulletFileLoader LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletWorldImporter PUBLIC BulletDynamics BulletCollision BulletFileLoader LinearMath) IF (INSTALL_EXTRA_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -27,6 +25,7 @@ IF (INSTALL_EXTRA_LIBS) INSTALL(TARGETS BulletWorldImporter DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletWorldImporter + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt index 9fd125e..4e16d9e 100644 --- a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt +++ b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt @@ -17,9 +17,7 @@ ADD_LIBRARY( SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletXmlWorldImporter BulletWorldImporter BulletDynamics BulletCollision BulletFileLoader LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletXmlWorldImporter PUBLIC BulletWorldImporter BulletDynamics BulletCollision BulletFileLoader LinearMath) IF (INSTALL_EXTRA_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -29,6 +27,7 @@ IF (INSTALL_EXTRA_LIBS) INSTALL(TARGETS BulletXmlWorldImporter DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletXmlWorldImporter + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/Bullet3Collision/CMakeLists.txt b/src/Bullet3Collision/CMakeLists.txt index 130095c..1642284 100644 --- a/src/Bullet3Collision/CMakeLists.txt +++ b/src/Bullet3Collision/CMakeLists.txt @@ -58,9 +58,7 @@ SET(Bullet3Collision_HDRS ) ADD_LIBRARY(Bullet3Collision ${Bullet3Collision_SRCS} ${Bullet3Collision_HDRS}) -if (BUILD_SHARED_LIBS) - target_link_libraries(Bullet3Collision Bullet3Geometry) -endif () +target_link_libraries(Bullet3Collision PUBLIC Bullet3Geometry) SET_TARGET_PROPERTIES(Bullet3Collision PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet3Collision PROPERTIES SOVERSION ${BULLET_VERSION}) @@ -72,6 +70,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS Bullet3Collision DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet3Collision + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/Bullet3Common/CMakeLists.txt b/src/Bullet3Common/CMakeLists.txt index 03a3b40..6f631e6 100644 --- a/src/Bullet3Common/CMakeLists.txt +++ b/src/Bullet3Common/CMakeLists.txt @@ -37,6 +37,7 @@ SET(Bullet3Common_HDRS ADD_LIBRARY(Bullet3Common ${Bullet3Common_SRCS} ${Bullet3Common_HDRS}) SET_TARGET_PROPERTIES(Bullet3Common PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet3Common PROPERTIES SOVERSION ${BULLET_VERSION}) +TARGET_INCLUDE_DIRECTORIES(Bullet3Common INTERFACE $) IF (INSTALL_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -46,6 +47,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS Bullet3Common DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet3Common + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/Bullet3Dynamics/CMakeLists.txt b/src/Bullet3Dynamics/CMakeLists.txt index 94c120d..2736323 100644 --- a/src/Bullet3Dynamics/CMakeLists.txt +++ b/src/Bullet3Dynamics/CMakeLists.txt @@ -30,9 +30,7 @@ SET(Bullet3Dynamics_HDRS ) ADD_LIBRARY(Bullet3Dynamics ${Bullet3Dynamics_SRCS} ${Bullet3Dynamics_HDRS}) -if (BUILD_SHARED_LIBS) - target_link_libraries(Bullet3Dynamics Bullet3Collision) -endif () +target_link_libraries(Bullet3Dynamics PUBLIC Bullet3Collision) SET_TARGET_PROPERTIES(Bullet3Dynamics PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet3Dynamics PROPERTIES SOVERSION ${BULLET_VERSION}) @@ -44,6 +42,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS Bullet3Dynamics DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet3Dynamics + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/Bullet3Geometry/CMakeLists.txt b/src/Bullet3Geometry/CMakeLists.txt index 8206872..dfd622b 100644 --- a/src/Bullet3Geometry/CMakeLists.txt +++ b/src/Bullet3Geometry/CMakeLists.txt @@ -16,9 +16,7 @@ SET(Bullet3Geometry_HDRS ) ADD_LIBRARY(Bullet3Geometry ${Bullet3Geometry_SRCS} ${Bullet3Geometry_HDRS}) -if (BUILD_SHARED_LIBS) - target_link_libraries(Bullet3Geometry Bullet3Common) -endif() +target_link_libraries(Bullet3Geometry PUBLIC Bullet3Common) SET_TARGET_PROPERTIES(Bullet3Geometry PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet3Geometry PROPERTIES SOVERSION ${BULLET_VERSION}) @@ -30,6 +28,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS Bullet3Geometry DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet3Geometry + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/Bullet3OpenCL/CMakeLists.txt b/src/Bullet3OpenCL/CMakeLists.txt index 1da58d4..b93b80b 100644 --- a/src/Bullet3OpenCL/CMakeLists.txt +++ b/src/Bullet3OpenCL/CMakeLists.txt @@ -43,9 +43,7 @@ SET(Bullet3OpenCL_clew_HDRS ADD_LIBRARY(Bullet3OpenCL_clew ${Bullet3OpenCL_clew_SRCS} ${Bullet3OpenCL_clew_HDRS}) SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(Bullet3OpenCL_clew LinearMath Bullet3Dynamics ${CMAKE_DL_LIBS}) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(Bullet3OpenCL_clew PUBLIC LinearMath Bullet3Dynamics ${CMAKE_DL_LIBS}) IF (INSTALL_LIBS) @@ -55,7 +53,9 @@ IF (INSTALL_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet3OpenCL_clew DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS Bullet3OpenCL_clew RUNTIME DESTINATION bin + INSTALL(TARGETS Bullet3OpenCL_clew + EXPORT BulletTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt b/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt index 1255766..e47ad6f 100644 --- a/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt +++ b/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt @@ -24,9 +24,7 @@ SET(Bullet2FileLoader_HDRS ) ADD_LIBRARY(Bullet2FileLoader ${Bullet2FileLoader_SRCS} ${Bullet2FileLoader_HDRS}) -if (BUILD_SHARED_LIBS) - target_link_libraries(Bullet2FileLoader Bullet3Common) -endif () +target_link_libraries(Bullet2FileLoader PUBLIC Bullet3Common) SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES SOVERSION ${BULLET_VERSION}) @@ -38,6 +36,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS Bullet2FileLoader DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS Bullet2FileLoader + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/src/BulletCollision/CMakeLists.txt b/src/BulletCollision/CMakeLists.txt index f5d7255..53dd2f1 100644 --- a/src/BulletCollision/CMakeLists.txt +++ b/src/BulletCollision/CMakeLists.txt @@ -256,9 +256,7 @@ SET(BulletCollision_HDRS ADD_LIBRARY(BulletCollision ${BulletCollision_SRCS} ${BulletCollision_HDRS}) SET_TARGET_PROPERTIES(BulletCollision PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletCollision PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletCollision LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletCollision PUBLIC LinearMath) IF (INSTALL_LIBS) @@ -268,7 +266,9 @@ IF (INSTALL_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletCollision DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletCollision RUNTIME DESTINATION bin + INSTALL(TARGETS BulletCollision + EXPORT BulletTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/BulletDynamics/CMakeLists.txt b/src/BulletDynamics/CMakeLists.txt index cfd49e9..217b702 100644 --- a/src/BulletDynamics/CMakeLists.txt +++ b/src/BulletDynamics/CMakeLists.txt @@ -143,9 +143,7 @@ SET(BulletDynamics_HDRS ADD_LIBRARY(BulletDynamics ${BulletDynamics_SRCS} ${BulletDynamics_HDRS}) SET_TARGET_PROPERTIES(BulletDynamics PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletDynamics PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletDynamics BulletCollision LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletDynamics PUBLIC BulletCollision) IF (INSTALL_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -153,7 +151,9 @@ IF (INSTALL_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletDynamics DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletDynamics RUNTIME DESTINATION bin + INSTALL(TARGETS BulletDynamics + EXPORT BulletTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/BulletInverseDynamics/CMakeLists.txt b/src/BulletInverseDynamics/CMakeLists.txt index 3331c27..b49d795 100644 --- a/src/BulletInverseDynamics/CMakeLists.txt +++ b/src/BulletInverseDynamics/CMakeLists.txt @@ -32,9 +32,7 @@ SET(BulletInverseDynamics_HDRS ADD_LIBRARY(BulletInverseDynamics ${BulletInverseDynamics_SRCS} ${BulletInverseDynamics_HDRS}) SET_TARGET_PROPERTIES(BulletInverseDynamics PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletInverseDynamics PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletInverseDynamics Bullet3Common LinearMath) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletInverseDynamics PUBLIC Bullet3Common LinearMath) IF (INSTALL_LIBS) @@ -44,7 +42,9 @@ IF (INSTALL_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletInverseDynamics DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletInverseDynamics RUNTIME DESTINATION bin + INSTALL(TARGETS BulletInverseDynamics + EXPORT BulletTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/BulletSoftBody/CMakeLists.txt b/src/BulletSoftBody/CMakeLists.txt index c12eef5..51ecdca 100644 --- a/src/BulletSoftBody/CMakeLists.txt +++ b/src/BulletSoftBody/CMakeLists.txt @@ -80,9 +80,7 @@ SET(BulletSoftBody_HDRS ADD_LIBRARY(BulletSoftBody ${BulletSoftBody_SRCS} ${BulletSoftBody_HDRS}) SET_TARGET_PROPERTIES(BulletSoftBody PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletSoftBody PROPERTIES SOVERSION ${BULLET_VERSION}) -IF (BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(BulletSoftBody BulletDynamics) -ENDIF (BUILD_SHARED_LIBS) +TARGET_LINK_LIBRARIES(BulletSoftBody PUBLIC BulletDynamics) IF (INSTALL_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -90,7 +88,9 @@ IF (INSTALL_LIBS) IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS BulletSoftBody DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) - INSTALL(TARGETS BulletSoftBody RUNTIME DESTINATION bin + INSTALL(TARGETS BulletSoftBody + EXPORT BulletTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/src/LinearMath/CMakeLists.txt b/src/LinearMath/CMakeLists.txt index a0532c7..a9a577d 100644 --- a/src/LinearMath/CMakeLists.txt +++ b/src/LinearMath/CMakeLists.txt @@ -57,6 +57,7 @@ SET(LinearMath_HDRS ADD_LIBRARY(LinearMath ${LinearMath_SRCS} ${LinearMath_HDRS}) SET_TARGET_PROPERTIES(LinearMath PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(LinearMath PROPERTIES SOVERSION ${BULLET_VERSION}) +TARGET_INCLUDE_DIRECTORIES(LinearMath INTERFACE $) IF (INSTALL_LIBS) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) @@ -66,6 +67,7 @@ IF (INSTALL_LIBS) INSTALL(TARGETS LinearMath DESTINATION .) ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) INSTALL(TARGETS LinearMath + EXPORT BulletTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) ================================================ FILE: ports/bullet3/cmake-version.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a695b71..8c407de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.4.3) +cmake_minimum_required(VERSION 3.11) set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) cmake_policy(SET CMP0017 NEW) #this line has to appear before 'PROJECT' in order to be able to disable incremental linking ================================================ FILE: ports/bullet3/opencl.diff ================================================ diff --git a/src/Bullet3OpenCL/CMakeLists.txt b/src/Bullet3OpenCL/CMakeLists.txt index b93b80b..c9c985c 100644 --- a/src/Bullet3OpenCL/CMakeLists.txt +++ b/src/Bullet3OpenCL/CMakeLists.txt @@ -1,3 +1,8 @@ +option(BUILD_OPENCL "Build Bullet3OpenCL_clew") +if(NOT BUILD_OPENCL) + return() +endif() + INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/src ) ADD_DEFINITIONS(-DB3_USE_CLEW) ================================================ FILE: ports/bullet3/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bulletphysics/bullet3 REF "${VERSION}" SHA512 7086e5fcf69635801bb311261173cb8d173b712ca1bd78be03df48fad884674e85512861190e45a1a62d5627aaad65cde08c175c44a3be9afa410d3dfd5358d4 HEAD_REF master PATCHES cmake-version.diff cmake-config-export.diff opencl.diff tinyxml2.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/examples/ThirdPartyLibs") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES multithreading BULLET2_MULTITHREADING double-precision USE_DOUBLE_PRECISION extras BUILD_EXTRAS opencl BUILD_OPENCL INVERTED_FEATURES rtti USE_MSVC_DISABLE_RTTI ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" USE_MSVC_RUNTIME_LIBRARY_DLL) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_MSVC_RUNTIME_LIBRARY_DLL=${USE_MSVC_RUNTIME_LIBRARY_DLL} -DBUILD_CPU_DEMOS=OFF -DBUILD_BULLET2_DEMOS=OFF -DBUILD_OPENGL3_DEMOS=OFF -DBUILD_BULLET3=ON -DBUILD_BULLET_ROBOTICS_GUI_EXTRA=OFF -DBUILD_BULLET_ROBOTICS_EXTRA=OFF -DBUILD_GIMPACTUTILS_EXTRA=OFF -DBUILD_HACD_EXTRA=OFF -DBUILD_OBJ2SDF_EXTRA=OFF -DBUILD_UNIT_TESTS=OFF -DINSTALL_LIBS=ON ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES BUILD_BULLET_ROBOTICS_EXTRA BUILD_BULLET_ROBOTICS_GUI_EXTRA BUILD_GIMPACTUTILS_EXTRA BUILD_HACD_EXTRA BUILD_OBJ2SDF_EXTRA USE_MSVC_DISABLE_RTTI ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bullet) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/bullet/BulletInverseDynamics/details") # empty file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/bullet3/tinyxml2.diff ================================================ diff --git a/BulletConfig.cmake.in b/BulletConfig.cmake.in index 2d18304..9d97c77 100644 --- a/BulletConfig.cmake.in +++ b/BulletConfig.cmake.in @@ -15,6 +15,10 @@ # BULLET_VERSION_STRING - A human-readable string containing the version @PACKAGE_INIT@ +if("@BUILD_EXTRAS@" AND NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + find_dependency(tinyxml2 CONFIG) +endif() include("${CMAKE_CURRENT_LIST_DIR}/BulletTargets.cmake") set ( BULLET_FOUND 1 ) diff --git a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt index 4e16d9e..ab8eb9d 100644 --- a/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt +++ b/Extras/Serialize/BulletXmlWorldImporter/CMakeLists.txt @@ -2,7 +2,6 @@ INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletFileLoader ${BULLET_PHYSICS_SOURCE_DIR}/Extras/Serialize/BulletWorldImporter - ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/tinyxml2 ) ADD_LIBRARY( @@ -11,8 +10,9 @@ ADD_LIBRARY( btBulletXmlWorldImporter.h string_split.cpp string_split.h - ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp ) +find_package(tinyxml2 CONFIG REQUIRED) +target_link_libraries(BulletXmlWorldImporter PRIVATE tinyxml2::tinyxml2) SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES VERSION ${BULLET_VERSION}) SET_TARGET_PROPERTIES(BulletXmlWorldImporter PROPERTIES SOVERSION ${BULLET_VERSION}) ================================================ FILE: ports/bullet3/usage ================================================ bullet3 provides CMake targets: find_package(Bullet CONFIG REQUIRED) # specific set: BulletSoftBody, BulletDynamics, BulletInverseDynamics, # BulletCollision, Bullet3Common, LinearMath target_link_libraries(main PRIVATE ${BULLET_LIBRARIES}) # individual imported targets, e.g. for Bullet 3 libs target_link_libraries(main PRIVATE Bullet3Dynamics) bullet3 provides pkg-config modules: # specific set: BulletSoftBody, BulletDynamics, BulletCollision, LinearMath bullet ================================================ FILE: ports/bullet3/vcpkg.json ================================================ { "name": "bullet3", "version": "3.25", "port-version": 3, "description": "Bullet Physics is a professional collision detection, rigid body, and soft body dynamics library", "homepage": "https://github.com/bulletphysics/bullet3", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "double-precision": { "description": "Use float64 doubles for bullet3" }, "extras": { "description": "Build selected extras", "dependencies": [ "tinyxml2" ] }, "multithreading": { "description": "Multithreading functionality for bullet3" }, "opencl": { "description": "Build Bullet3OpenCL_clew library", "supports": "!uwp" }, "rtti": { "description": "Enable RTTI on windows" } } } ================================================ FILE: ports/bungee/assert-win32-compat.patch ================================================ diff --git a/src/Assert.cpp b/src/Assert.cpp index b0ac35c53c..d212320065 100644 --- a/src/Assert.cpp +++ b/src/Assert.cpp @@ -6,7 +6,17 @@ #include #include #include -#include +#if defined(_WIN32) +#include +#include +#ifndef STDERR_FILENO +#define STDERR_FILENO 2 +#endif +#define getpid _getpid +#define write _write +#else +#include +#endif #include namespace Bungee::Assert { ================================================ FILE: ports/bungee/cmake-use-vcpkg-deps-and-install-layout.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b80f74acbc..47aff80f70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,9 +10,12 @@ endif() cmake_minimum_required(VERSION 3.30...3.31) include(CheckCXXCompilerFlag) +include(GNUInstallDirs) project(bungee VERSION ${BUNGEE_VERSION}) set(CMAKE_CXX_STANDARD 20) +find_package(Eigen3 CONFIG REQUIRED) +find_package(pffft CONFIG REQUIRED) if (WIN32) set(BUNGEE_EXPORT "__declspec(dllexport)") @@ -28,7 +32,7 @@ if (BUNGEE_BUILD_SHARED_LIBRARY) else() add_library(bungee_library STATIC ${BUNGEE_LIBRARY_HEADERS} ${BUNGEE_SOURCE_FILES}) endif() -target_include_directories(bungee_library PRIVATE submodules/eigen submodules .) +target_include_directories(bungee_library PRIVATE .) target_compile_definitions(bungee_library PRIVATE BUNGEE_VISIBILITY=${BUNGEE_EXPORT} BUNGEE_SELF_TEST=${BUNGEE_SELF_TEST} @@ -38,27 +42,13 @@ target_compile_definitions(bungee_library PRIVATE ) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/src/version.cpp PROPERTIES COMPILE_DEFINITIONS BUNGEE_VERSION=\"${BUNGEE_VERSION}\") target_compile_options(bungee_library PRIVATE $<$:-fwrapv>) -target_link_libraries(bungee_library PRIVATE pffft) +target_link_libraries(bungee_library PRIVATE pffft::pffft Eigen3::Eigen) if (ANDROID) target_link_libraries(bungee_library PRIVATE log) endif() set_target_properties(bungee_library PROPERTIES OUTPUT_NAME bungee) +set_target_properties(bungee_library PROPERTIES EXPORT_NAME bungee) -# Bungee command-line executable target: "bungee_executable" -add_executable(bungee_executable cmd/main.cpp) -target_include_directories(bungee_executable PRIVATE submodules/cxxopts/include .) -target_link_libraries(bungee_executable PRIVATE bungee_library) -set_target_properties(bungee_executable PROPERTIES - OUTPUT_NAME bungee - INSTALL_RPATH "${CMAKE_INSTALL_RPATH};${CMAKE_INSTALL_PREFIX}" -) - -# PFFFT as a static library -add_library(pffft EXCLUDE_FROM_ALL STATIC - submodules/pffft/pffft.c - submodules/pffft/fftpack.c -) -target_compile_options(pffft PRIVATE -ffast-math -fno-finite-math-only -fno-exceptions) # Installation if (BUNGEE_BUILD_SHARED_LIBRARY) @@ -76,34 +75,30 @@ if (BUNGEE_BUILD_SHARED_LIBRARY) MACOSX_PACKAGE_LOCATION Headers/bungee ) endif() - install(FILES - ${BUNGEE_LIBRARY_HEADERS} - DESTINATION ${CMAKE_INSTALL_PREFIX}/include/bungee - ) - install(TARGETS bungee_library bungee_executable - ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET} - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET} - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET} - BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET} - ) - install(FILES - cmd/main.cpp - submodules/cxxopts/include/cxxopts.hpp - DESTINATION ${CMAKE_INSTALL_PREFIX}/sample - ) - -get_property(BUNGEE_LIBRARY_OUTPUT_NAME TARGET bungee_library PROPERTY OUTPUT_NAME) - -if (APPLE) - set(PKGCONFIG_LINK_PATH -F) - set(PKGCONFIG_LINK_FLAG "-framework ") -else() - set(PKGCONFIG_LINK_PATH -L) - set(PKGCONFIG_LINK_FLAG "-I") endif() -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libbungee.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libbungee.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbungee.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/${BUNGEE_PRESET}/pkgconfig) - -endif() +install(FILES + ${BUNGEE_LIBRARY_HEADERS} + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bungee +) +install(TARGETS bungee_library + EXPORT unofficial-bungee-targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) + +install( + EXPORT unofficial-bungee-targets + NAMESPACE unofficial::bungee:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-bungee +) + +get_property(BUNGEE_LIBRARY_OUTPUT_NAME TARGET bungee_library PROPERTY OUTPUT_NAME) + + set(PKGCONFIG_LINK_PATH -L) + set(PKGCONFIG_LINK_FLAG "-l") + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libbungee.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libbungee.pc @ONLY) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbungee.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ================================================ FILE: ports/bungee/pffft-include-path.patch ================================================ diff --git a/src/Fourier.cpp b/src/Fourier.cpp index 9f9220a28c..81ae37fdea 100644 --- a/src/Fourier.cpp +++ b/src/Fourier.cpp @@ -4,7 +4,7 @@ #include "Fourier.h" #include "Assert.h" -#include "../submodules/pffft/pffft.h" +#include "pffft/pffft.h" namespace Bungee::Fourier { #ifndef BUNGEE_USE_PFFFT ================================================ FILE: ports/bungee/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bungee-audio-stretch/bungee REF "v${VERSION}" SHA512 9824eb682d8b6601d9bc276b80062bc5fd910ea6a72b6798ab62ecb9750275d27ef9a58803e1f9701ae74ea203277db42840562210851c496092efec2fc1ee4d HEAD_REF main PATCHES cmake-use-vcpkg-deps-and-install-layout.patch pffft-include-path.patch assert-win32-compat.patch resample-msvc-noinline.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUNGEE_BUILD_SHARED_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUNGEE_SELF_TEST=0 -DBUNGEE_BUILD_SHARED_LIBRARY=${BUNGEE_BUILD_SHARED_LIBRARY} -DBUNGEE_INSTALL_FRAMEWORK=OFF -DBUNGEE_VERSION=${VERSION} -DBUNGEE_PRESET= ) vcpkg_cmake_install() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-bungee-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/cmake/unofficial-bungee") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-bungee CONFIG_PATH lib/cmake/unofficial-bungee) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bungee/resample-msvc-noinline.patch ================================================ diff --git a/src/Resample.h b/src/Resample.h index 2d40eb91a1..b729ab9df0 100644 --- a/src/Resample.h +++ b/src/Resample.h @@ -154,11 +154,17 @@ struct RatioState } }; +#if defined(_MSC_VER) +#define BUNGEE_NOINLINE __declspec(noinline) +#else +#define BUNGEE_NOINLINE __attribute__((noinline)) +#endif + template struct Loop { template - static __attribute__((noinline)) void run(RatioState &ratioState, Internal &internal, External external) // const & ext + static BUNGEE_NOINLINE void run(RatioState &ratioState, Internal &internal, External external) // const & ext { const Assert::FloatingPointExceptions floatingPointExceptions(FE_INEXACT | FE_UNDERFLOW); ================================================ FILE: ports/bungee/unofficial-bungee-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(Eigen3 CONFIG) find_dependency(pffft CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-bungee-targets.cmake") check_required_components(unofficial-bungee) ================================================ FILE: ports/bungee/usage ================================================ bungee provides CMake targets: find_package(unofficial-bungee CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::bungee::bungee) bungee provides pkg-config modules: libbungee ================================================ FILE: ports/bungee/vcpkg.json ================================================ { "name": "bungee", "version": "2.4.15", "description": "C++ library for time-stretching and pitch-shifting audio with high quality in realtime or offline", "homepage": "https://bungee.parabolaresearch.com/", "license": "MPL-2.0", "dependencies": [ "eigen3", "pffft", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bustache/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jamboree/bustache REF abb25ca189425783c6b7ec5c17c5284dccb59faf SHA512 be00451f6a85edccacbdd5d8478d7af4f3162f9a9a31af876004237ca7f303c1262b2ea623e6ec595d73440dc14fcf22d185bc521fd3aca6e28ec43890d611c5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/bustache/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) # No license file --> use Readme file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/bustache/vcpkg.json ================================================ { "name": "bustache", "version": "1.1.0", "port-version": 2, "description": "C++11 implementation of {{ mustache }}", "homepage": "https://github.com/jamboree/bustache", "license": "BSL-1.0", "dependencies": [ "boost-unordered", "boost-utility", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/butteraugli/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(butteraugli CXX) add_compile_options(-D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018) else() add_compile_options(-std=c++11) endif() find_package(JPEG REQUIRED) find_package(PNG REQUIRED) include_directories("." ${JPEG_INCLUDE_DIR} ${PNG_INCLUDE_DIRS}) add_library(butteraugli_lib butteraugli/butteraugli.cc) install( TARGETS butteraugli_lib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) add_executable(butteraugli butteraugli/butteraugli_main.cc) find_library(TURBO turbojpeg) target_link_libraries(butteraugli butteraugli_lib ${JPEG_LIBRARIES} ${TURBO} ${PNG_LIBRARIES}) install ( TARGETS butteraugli RUNTIME DESTINATION tools/butteraugli ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(FILES butteraugli/butteraugli.h DESTINATION include/butteraugli) endif() ================================================ FILE: ports/butteraugli/missing_header.patch ================================================ diff --git "a/butteraugli/butteraugli_main.cc" "b/butteraugli/butteraugli_main.cc" index f38af1d..ebf3197 100644 --- "a/butteraugli/butteraugli_main.cc" +++ "b/butteraugli/butteraugli_main.cc" @@ -2,6 +2,7 @@ #include #include #include +#include #include "butteraugli/butteraugli.h" extern "C" { ================================================ FILE: ports/butteraugli/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/butteraugli REF 71b18b636b9c7d1ae0c1d3730b85b3c127eb4511 SHA512 2e73f8ad8953307eea956ed8bd828e110419d6d9f8a42685d225953d3a8017a79d0701bde0282459dc51198e75a99dcd99dd3c4e7ef065736c512a7b11ea0fdf HEAD_REF master PATCHES missing_header.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/butteraugli/vcpkg.json ================================================ { "name": "butteraugli", "version-date": "2019-05-08", "port-version": 4, "description": "butteraugli estimates the psychovisual difference between two images", "homepage": "https://github.com/google/butteraugli", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bw-sqlitemap/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bw-hro/sqlitemap REF "v${VERSION}" SHA512 1f3e3fd0c3127273c5aa13b739f5a75c0e84c54a0da20f27793627602f7072b206a53c5dc617ebe89ce87e811ac940e7416109d4bc404e760dbcb2765e28948e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSM_BUILD_EXAMPLES=OFF -DSM_BUILD_TESTS=OFF -DSM_ENABLE_COVERAGE=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bw-sqlitemap/usage ================================================ sqlitemap is header-only and can be used from CMake via: find_path(SQLITEMAP_INCLUDE_DIRS "bw/sqlitemap/sqlitemap.hpp") target_include_directories(main PRIVATE ${SQLITEMAP_INCLUDE_DIRS}) However it requires find_package(unofficial-sqlite3 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3) ================================================ FILE: ports/bw-sqlitemap/vcpkg.json ================================================ { "name": "bw-sqlitemap", "version": "1.2.0", "description": "sqlitemap — Persistent Map Backed by SQLite", "homepage": "https://github.com/bw-hro/sqlitemap", "license": "MIT", "dependencies": [ "sqlite3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/bw-tempdir/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bw-hro/TempDir REF "v${VERSION}" SHA512 bae89ee0e5d3df75d23d83865e5c2d7a9fdb82ee4b8fead11ea89e7fc032c789e257411ff82d2de3d15b8a9947fdfcb98050531d7b0b5c20b4f8f247c6d11de0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTD_BUILD_EXAMPLES=OFF -DTD_BUILD_TESTS=OFF -DTD_ENABLE_COVERAGE=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bw-tempdir/vcpkg.json ================================================ { "name": "bw-tempdir", "version": "1.0.1", "description": "TempDir: Simplified Temporary Directory for C++", "homepage": "https://github.com/bw-hro/TempDir", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/bxzstr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tmaklin/bxzstr REF "v${VERSION}" SHA512 1d957ed42d62aa7deddabd862805c80273aedacda5b1fad867df6d0c8cfeab69557d87830934f70f70a52acd8e251ad0e47178a70f9fe34713b28c6ff91f2d87 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/bxzstr.hpp" "${SOURCE_PATH}/include/bz_stream_wrapper.hpp" "${SOURCE_PATH}/include/compression_types.hpp" "${SOURCE_PATH}/include/config.hpp" "${SOURCE_PATH}/include/lzma_stream_wrapper.hpp" "${SOURCE_PATH}/include/stream_wrapper.hpp" "${SOURCE_PATH}/include/strict_fstream.hpp" "${SOURCE_PATH}/include/z_stream_wrapper.hpp" "${SOURCE_PATH}/include/zstd_stream_wrapper.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/bxzstr") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bxzstr/usage ================================================ The package bxzstr is header only and can be used from CMake via: find_path(BXZSTR_INCLUDE_DIRS "bxzstr.hpp" PATH_SUFFIXES "include/bxzstr") target_include_directories(main PRIVATE ${BXZSTR_INCLUDE_DIRS}) ================================================ FILE: ports/bxzstr/vcpkg.json ================================================ { "name": "bxzstr", "version": "1.2.3", "description": "A C++ header-only ZLib/libBZ2/libLZMA/Zstandard wrapper.", "homepage": "https://github.com/tmaklin/bxzstr", "license": "MPL-2.0", "supports": "!xbox", "dependencies": [ "bzip2", "liblzma", "zlib", "zstd" ] } ================================================ FILE: ports/byte-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/byte-lite REF v0.3.0 SHA512 a49c7cf820db2bcf63f231324bca72642161fcaa4ecd9e4b18aa752902f393a3983014feae824fa4f5dea0e7182eadded1a9a83c469fa4039d4d17b3c814b2ef ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBYTE_LITE_OPT_BUILD_TESTS=OFF -DBYTE_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/byte-lite/vcpkg.json ================================================ { "name": "byte-lite", "version": "0.3.0", "description": "A C++17-like byte type for C++98, C++11 and later in a single-file header-only library", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/bzip2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5...3.29) project(bzip2 C) if(CMAKE_BUILD_TYPE STREQUAL Debug) add_definitions(-DBZ_DEBUG) # enable extra assertions endif() set(BZ2_SOURCES blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c) add_library(bz2 ${BZ2_SOURCES}) set_target_properties(bz2 PROPERTIES DEBUG_POSTFIX d VERSION "${BZ2_VERSION}" SOVERSION 1.0) if(BUILD_SHARED_LIBS) target_compile_definitions(bz2 PRIVATE -DBZ_BUILD_DLL) endif() if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) endif() install(TARGETS bz2 RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) if(NOT BZIP2_SKIP_TOOLS) add_executable(bzip2 bzip2.c ${BZ2_SOURCES}) add_executable(bzip2recover bzip2recover.c ${BZ2_SOURCES}) install(TARGETS bzip2 bzip2recover DESTINATION tools/bzip2) endif() if(NOT BZIP2_SKIP_HEADERS) install(FILES bzlib.h DESTINATION include) endif() ================================================ FILE: ports/bzip2/bzip2.pc.in ================================================ prefix=@BZIP2_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: bzip2 Description: bzip2 Version: @VERSION@ Requires: Libs: -L${libdir} -l@bzname@ Cflags: -I${includedir} ================================================ FILE: ports/bzip2/fix-import-export-macros.patch ================================================ diff --git a/bzlib.h b/bzlib.h index 8277123..84fbd0a 100644 --- a/bzlib.h +++ b/bzlib.h @@ -65,29 +65,23 @@ typedef } bz_stream; - -#ifndef BZ_IMPORT -#define BZ_EXPORT -#endif - #ifndef BZ_NO_STDIO /* Need a definitition for FILE */ #include #endif #ifdef _WIN32 -# include # ifdef small /* windows.h define small to char */ # undef small # endif -# ifdef BZ_EXPORT -# define BZ_API(func) WINAPI func -# define BZ_EXTERN extern +# define BZ_API(func) func +# if defined(BZ_BUILD_DLL) +# define BZ_EXTERN __declspec(dllexport) +# elif defined(BZ_IMPORT) +# define BZ_EXTERN __declspec(dllimport) # else - /* import windows dll dynamically */ -# define BZ_API(func) (WINAPI * func) -# define BZ_EXTERN +# define BZ_EXTERN # endif #else # define BZ_API(func) func ================================================ FILE: ports/bzip2/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://sourceware.org/pub/bzip2/bzip2-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/sourceware.org/pub/bzip2/bzip2-${VERSION}.tar.gz" FILENAME "bzip2-${VERSION}.tar.gz" SHA512 083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-import-export-macros.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES tool BZIP2_SKIP_TOOLS ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DBZ2_VERSION=${VERSION}" OPTIONS_DEBUG -DBZIP2_SKIP_HEADERS=ON -DBZIP2_SKIP_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(READ "${CURRENT_PACKAGES_DIR}/include/bzlib.h" BZLIB_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "defined(BZ_IMPORT)" "0" BZLIB_H "${BZLIB_H}") else() string(REPLACE "defined(BZ_IMPORT)" "1" BZLIB_H "${BZLIB_H}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/bzlib.h" "${BZLIB_H}") if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(BZIP2_PREFIX "${CURRENT_INSTALLED_DIR}") set(bzname bz2) configure_file("${CMAKE_CURRENT_LIST_DIR}/bzip2.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/bzip2.pc" @ONLY) endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(BZIP2_PREFIX "${CURRENT_INSTALLED_DIR}/debug") set(bzname bz2d) configure_file("${CMAKE_CURRENT_LIST_DIR}/bzip2.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/bzip2.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/bzip2/usage ================================================ The package bzip2 is compatible with built-in CMake targets: find_package(BZip2 REQUIRED) target_link_libraries(main PRIVATE BZip2::BZip2) ================================================ FILE: ports/bzip2/vcpkg.json ================================================ { "name": "bzip2", "version-semver": "1.0.8", "port-version": 6, "description": "bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10% to 15% of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.", "homepage": "https://sourceware.org/bzip2/", "documentation": "https://sourceware.org/bzip2/docs.html", "license": "bzip2-1.0.6", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "tool" ], "features": { "tool": { "description": "Builds bzip2 executable" } } } ================================================ FILE: ports/bzip3/disable-man.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b6ad2c..b9945c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,7 +111,7 @@ if(BZIP3_BUILD_APPS) set(BZIP3_APP_SCRIPTS bunzip3 bz3cat bz3grep bz3less bz3more bz3most) install(PROGRAMS ${BZIP3_APP_SCRIPTS} DESTINATION ${CMAKE_INSTALL_BINDIR}) - if(UNIX) + if(0) set(BZIP3_MANS bunzip3.1 bz3cat.1 ================================================ FILE: ports/bzip3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO iczelia/bzip3 REF ${VERSION} SHA512 4864db82af7bfb4b9753a4dfc6b966fb707607b5e5693134b6771a4c745a2cbe5767928c54f36ba89181d59dc2882d5630379c60655e23d0e7b2a0997d655aef HEAD_REF master PATCHES disable-man.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES tools BZIP3_BUILD_APPS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/bzip3) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/bzip3/usage ================================================ bzip3 provides CMake targets: find_package(bzip3 CONFIG REQUIRED) target_link_libraries(main PUBLIC bzip3::bz3) bzip3 provides pkg-config modules: # A better and stronger spiritual successor to BZip2 bzip3 ================================================ FILE: ports/bzip3/vcpkg.json ================================================ { "name": "bzip3", "version": "1.5.3", "description": "A better and stronger spiritual successor to BZip2.", "homepage": "https://github.com/kspalaiologos/bzip3/", "license": "LGPL-3.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build bzip3 applications", "supports": "!windows" } } } ================================================ FILE: ports/c-ares/avoid-docs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 194485a..e903e50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -618,7 +618,7 @@ ADD_SUBDIRECTORY (include) ADD_SUBDIRECTORY (src) # Docs -ADD_SUBDIRECTORY (docs) +#ADD_SUBDIRECTORY (docs) # Tests IF (CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS) ================================================ FILE: ports/c-ares/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c-ares/c-ares REF "v${VERSION}" SHA512 5fba9e7d97a8bd6741c13e1d4597aaeddc5766c8043bd4031bb899a0cf20d2446480b03261244b9569b4e42c03c8948b211c53e9f33c661c9f8200eb76e1c52a HEAD_REF main PATCHES avoid-docs.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool CARES_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCARES_STATIC=${BUILD_STATIC} -DCARES_SHARED=${BUILD_SHARED} -DCARES_BUILD_TESTS=OFF -DCARES_BUILD_CONTAINER_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/c-ares) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/ares.h" "# ifdef CARES_STATICLIB" "#if 1" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") if ("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES adig ahost AUTO_CLEAN) endif() ================================================ FILE: ports/c-ares/usage ================================================ c-ares provides CMake targets: find_package(c-ares CONFIG REQUIRED) target_link_libraries(main PRIVATE c-ares::cares) c-ares provides pkg-config modules: # asynchronous DNS lookup library libcares ================================================ FILE: ports/c-ares/vcpkg.json ================================================ { "name": "c-ares", "version-semver": "1.34.6", "port-version": 1, "description": "A C library for asynchronous DNS requests", "homepage": "https://github.com/c-ares/c-ares", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Builds c-ares executables" } } } ================================================ FILE: ports/c4core/disable-cpack.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ba9983c..41ea81a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,7 +115,7 @@ endif() c4_add_dev_targets() if(C4CORE_INSTALL) - c4_pack_project(TYPE LIBRARY) +# c4_pack_project(TYPE LIBRARY) endif() ================================================ FILE: ports/c4core/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Get c4core src vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO biojppm/c4core REF "v${VERSION}" SHA512 990925e9f70796a7395dde6ccf3a3e361169a418a04ea14d406b41b6ac5e56d92e513aaf77c90638db06d6970007a15218b221d87bd7cbe7ee8f0e0b5a299397 HEAD_REF master PATCHES disable-cpack.patch ) set(CM_COMMIT_HASH 469017f6ddab72e860aa80221736c00d3dae0587) # Get cmake scripts for c4core vcpkg_download_distfile( CMAKE_ARCHIVE URLS "https://github.com/biojppm/cmake/archive/${CM_COMMIT_HASH}.zip" FILENAME "cmake-${CM_COMMIT_HASH}.zip" SHA512 858200265b335297fefacf23780d2db596f09fe71dd04088ec34fa29d6d962dc04ece3429108ad3332289cbf41da2cae6991ac6211ff12f6c796ca4e25b7ceef ) vcpkg_extract_source_archive( SOURCE_PATH_CMAKE ARCHIVE ${CMAKE_ARCHIVE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/deps" ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake") file(RENAME "${SOURCE_PATH_CMAKE}" "${SOURCE_PATH}/cmake") set(DB_COMMIT_HASH 328e4abca3384cbd0a69e70f263cc7b2794bff09) vcpkg_download_distfile( DEBUGBREAK_ARCHIVE URLS "https://github.com/biojppm/debugbreak/archive/${DB_COMMIT_HASH}.zip" FILENAME "debugbreak-${DB_COMMIT_HASH}.zip" SHA512 47208fd7578d7fa0ff2d9170955b073cd761b271bc512072eab3bfd8e7f06d4bd5503837957acd388cbb95fde7f67b4c024f8809a1214417400f3bed4dab3ece ) vcpkg_extract_source_archive( SOURCE_PATH_DEBUGBREAK ARCHIVE ${DEBUGBREAK_ARCHIVE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/deps" ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/c4/ext/debugbreak") file(RENAME "${SOURCE_PATH_DEBUGBREAK}" "${SOURCE_PATH}/src/c4/ext/debugbreak") set(FF_COMMIT_HASH d28a3320c2de0963b6e469b8ca3bbc36496de684) vcpkg_download_distfile( FAST_FLOAT_ARCHIVE URLS "https://github.com/biojppm/fast_float/archive/${FF_COMMIT_HASH}.zip" FILENAME "fast_float-${FF_COMMIT_HASH}.zip" SHA512 7642badc0af2e57303667de4fe6dbd61b633d82e9a42571f241a2e4ae8e385529096b4dcf22e7beb6998bf36f28eec10f7af396032db41f6a59ab6a8bffaf34a ) vcpkg_extract_source_archive( SOURCE_PATH_FAST_FLOAT ARCHIVE ${FAST_FLOAT_ARCHIVE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/deps" ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/c4/ext/fast_float") file(RENAME "${SOURCE_PATH_FAST_FLOAT}" "${SOURCE_PATH}/src/c4/ext/fast_float") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS ${CURRENT_PACKAGES_DIR}/cmake) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) elseif(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake/c4core) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/c4core) endif() # Fix paths in config file file(READ "${CURRENT_PACKAGES_DIR}/share/c4core/c4coreConfig.cmake" _contents) string(REGEX REPLACE [[[ \t\r\n]*"\${PACKAGE_PREFIX_DIR}[\./\\]*"]] [["${PACKAGE_PREFIX_DIR}/../.."]] _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/c4core/c4coreConfig.cmake" "${_contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/c4core/vcpkg.json ================================================ { "name": "c4core", "version": "0.2.10", "description": "Library of low-level C++ utilities", "homepage": "https://github.com/biojppm/c4core", "license": "MIT", "supports": "!uwp & !(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/c89stringutils/no_flags.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e3c005..75dee3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,12 +24,6 @@ if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") # the BUILD_INTERFACE genex set(gcc_like "$") set(msvc "$") - target_compile_options( - "${PROJECT_NAME}_compiler_flags" - INTERFACE - "$<${gcc_like}:$>" - "$<${msvc}:$>" - ) endif (CMAKE_VERSION VERSION_GREATER_EQUAL "3.15") # Set the build directories if (CMAKE_SYSTEM_NAME STREQUAL "Windows" ================================================ FILE: ports/c89stringutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO offscale/c89stringutils REF "${VERSION}" SHA512 82edb341d5566c42eaffcd5c87d4fbd82a4e47b9c31a8533b08d28b9e1311ced281b59b3b6103e274355a82117095fcff1cb5f9c29eecc9563dc3cd962a37773 HEAD_REF master PATCHES no_flags.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-APACHE" "${SOURCE_PATH}/LICENSE-MIT") ================================================ FILE: ports/c89stringutils/usage ================================================ c89stringutils provides CMake targets: find_package(c89stringutils CONFIG REQUIRED) target_link_libraries(main PRIVATE c89stringutils) ================================================ FILE: ports/c89stringutils/vcpkg.json ================================================ { "name": "c89stringutils", "version": "0.0.2", "description": "string functions from newer standards / common non-standards for C89", "homepage": "https://github.com/offscale/c89stringutils", "license": "Apache-2.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/c9y/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rioki/c9y REF v0.8.0 SHA512 f3161bde45fd534029ef4609b1b49d4edbeb636c9305e01e7e9cfa6a62cde0978632d46597510bea0ff96cae09b819905c0d8c5d2fd85cf641d7b47ea2a732b1 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/c9y) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/c9y/vcpkg.json ================================================ { "name": "c9y", "version-semver": "0.8.0", "description": "Concurency", "homepage": "https://github.com/rioki/c9y", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cachelib/fix-build.patch ================================================ diff --git a/cachelib/cachebench/util/JSONConfig.h b/cachelib/cachebench/util/JSONConfig.h index 97cbe3f..7e9bbdd 100644 --- a/cachelib/cachebench/util/JSONConfig.h +++ b/cachelib/cachebench/util/JSONConfig.h @@ -146,10 +146,6 @@ struct Options {}; template constexpr void checkCorrectSize() { -#ifndef SKIP_OPTION_SIZE_VERIFY - Options var = Options{}; - (void)var; -#endif } } // namespace cachebench } // namespace cachelib diff --git a/cachelib/common/CMakeLists.txt b/cachelib/common/CMakeLists.txt index 308f526..d7f7345 100644 --- a/cachelib/common/CMakeLists.txt +++ b/cachelib/common/CMakeLists.txt @@ -43,10 +43,6 @@ target_link_libraries(cachelib_common PUBLIC FBThrift::thrift_dynamic_value Folly::folly Folly::follybenchmark - Folly::folly_debugging_exception_tracer_exception_tracer - Folly::folly_debugging_exception_tracer_exception_tracer_base - Folly::folly_debugging_exception_tracer_exception_counter - GTest::gtest magic_enum::magic_enum ${XXHASH_LIBRARY} ) diff --git a/cachelib/common/Utils.cpp b/cachelib/common/Utils.cpp index 12c1e4a..7aa8a42 100644 --- a/cachelib/common/Utils.cpp +++ b/cachelib/common/Utils.cpp @@ -15,7 +15,6 @@ */ #include -#include #include #include #include @@ -442,10 +441,6 @@ void setCgroupMemoryAdvising(CgroupMemAvailableFn provider) { } void printExceptionStackTraces() { - auto exceptions = folly::exception_tracer::getCurrentExceptions(); - for (auto& exc : exceptions) { - std::cerr << exc << std::endl; - } } } // namespace util ================================================ FILE: ports/cachelib/fix-glog.patch ================================================ diff --git a/cachelib/CMakeLists.txt b/cachelib/CMakeLists.txt index 8d17d64..bfe055f 100644 --- a/cachelib/CMakeLists.txt +++ b/cachelib/CMakeLists.txt @@ -108,8 +108,8 @@ find_package(Threads REQUIRED) find_package(Boost REQUIRED COMPONENTS system filesystem regex context program_options thread) -find_package(Gflags REQUIRED) -find_package(Glog REQUIRED) +find_package(gflags CONFIG REQUIRED) +find_package(glog CONFIG REQUIRED) find_package(GTest REQUIRED) include(GoogleTest) enable_testing() diff --git a/cachelib/cachebench/CMakeLists.txt b/cachelib/cachebench/CMakeLists.txt index df1cb18..157975a 100644 --- a/cachelib/cachebench/CMakeLists.txt +++ b/cachelib/cachebench/CMakeLists.txt @@ -46,7 +46,7 @@ add_dependencies(cachelib_cachebench thrift_generated_files) target_link_libraries(cachelib_cachebench PUBLIC cachelib_datatype cachelib_allocator - gflags + gflags::gflags ) add_library (cachelib_binary_trace_gen @@ -65,7 +65,7 @@ add_dependencies(cachelib_binary_trace_gen thrift_generated_files) target_link_libraries(cachelib_binary_trace_gen PUBLIC cachelib_datatype cachelib_allocator - gflags + gflags::gflags ) if ((CMAKE_SYSTEM_NAME STREQUAL Linux) AND ================================================ FILE: ports/cachelib/fix-status-formmatable.patch ================================================ diff --git a/cachelib/navy/block_cache/FixedSizeIndex.h b/cachelib/navy/block_cache/FixedSizeIndex.h index 0f9c2d9..68ce95c 100644 --- a/cachelib/navy/block_cache/FixedSizeIndex.h +++ b/cachelib/navy/block_cache/FixedSizeIndex.h @@ -466,7 +466,7 @@ class FixedSizeIndex : public Index { XLOGF(ERR, "Adding Key hash {}, bid {} to CombinedEntryBlock failed, " "status={}", - key.value(), curBid, status); + key.value(), curBid, static_cast(status)); // We will continue by discarding currently stored entry return {}; } diff --git a/cachelib/navy/CMakeLists.txt b/cachelib/navy/CMakeLists.txt index 8fa1d10..73406c5 100644 --- a/cachelib/navy/CMakeLists.txt +++ b/cachelib/navy/CMakeLists.txt @@ -30,6 +30,7 @@ add_library (cachelib_navy block_cache/Region.cpp block_cache/RegionManager.cpp block_cache/SparseMapIndex.cpp + block_cache/CombinedEntryBlock.cpp common/Buffer.cpp common/Device.cpp common/FdpNvme.cpp diff --git a/cachelib/cachebench/CMakeLists.txt b/cachelib/cachebench/CMakeLists.txt index df1cb18..574cd5f 100644 --- a/cachelib/cachebench/CMakeLists.txt +++ b/cachelib/cachebench/CMakeLists.txt @@ -29,6 +29,7 @@ add_library (cachelib_cachebench ./runner/ProgressTracker.cpp ./runner/Runner.cpp ./runner/Stressor.cpp + ./cache/components/RAMComponent.cpp ./util/AggregateStats.cpp ./util/CacheConfig.cpp ./util/Config.cpp ================================================ FILE: ports/cachelib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/CacheLib REF "v${VERSION}" SHA512 cb5b8b00ffc0fb3ee743416125875b25c62b9620e6dc6657bb3be0c93ae3e5be1f9c30577cac8db57518ccddf63b03a5980cd7626c3bb0059f48c3db1fd72345 HEAD_REF main PATCHES fix-build.patch fix-glog.patch fix-status-formmatable.patch ) FIND_PATH(NUMA_INCLUDE_DIR NAME numa.h PATHS ENV NUMA_ROOT HINTS "$ENV{HOME}/local/include" /opt/local/include /usr/local/include /usr/include ) IF (NOT NUMA_INCLUDE_DIR) MESSAGE(FATAL_ERROR "Numa library not found.\nTry: 'sudo yum install numactl numactl-devel' (or sudo apt-get install libnuma1 libnuma-dev)") ENDIF () file(REMOVE "${SOURCE_PATH}/cmake/FindGlog.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cachelib" OPTIONS -DBUILD_TESTS=OFF -DCMAKE_INSTALL_DIR=share/cachelib -DVCPKG_LOCK_FIND_PACKAGE_uring=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cachelib PACKAGE_NAME cachelib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cachelib/vcpkg.json ================================================ { "name": "cachelib", "version-string": "2026.02.23.00", "description": "Pluggable caching engine to build and scale high performance cache services.", "homepage": "https://github.com/facebook/CacheLib", "license": "Apache-2.0", "supports": "linux & x64 & static", "dependencies": [ "fbthrift", "fizz", "fmt", { "name": "folly", "features": [ "libaio" ] }, "gflags", "glog", "gtest", "magic-enum", "tsl-sparse-map", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wangle" ] } ================================================ FILE: ports/cadons-ctus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Cadons/ctus REF ${VERSION} SHA512 79ad70b945d0cb9ac64838dd4e76fa2ed18aa58e63d6b2ecfa20d313f6cfe4b50e42294ebef71e25b7d87d24b5b511decdc4f695987500f8726906925dcc4a97 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME ctus CONFIG_PATH lib/cmake/ctus) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cadons-ctus/vcpkg.json ================================================ { "name": "cadons-ctus", "version": "1.0.0", "description": "Library implementing the tus protocol for resumable uploads", "homepage": "https://github.com/Cadons/ctus", "license": "MIT", "dependencies": [ "boost-lexical-cast", "boost-uuid", "curl", "fmt", "glog", "libzippp", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/caf/fix_cxx17.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0622702..f44e0f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,7 +158,6 @@ install(TARGETS caf_internal EXPORT CAFTargets) # -- create the libcaf_test target ahead of time for caf_core ------------------ -add_library(libcaf_test) # -- add uninstall target if it does not exist yet ----------------------------- @@ -351,7 +350,6 @@ endfunction() add_subdirectory(libcaf_core) -add_subdirectory(libcaf_test) if(CAF_ENABLE_NET_MODULE) add_subdirectory(libcaf_net) ================================================ FILE: ports/caf/fix_dependency.patch ================================================ diff --git a/cmake/CAFConfig.cmake.in b/cmake/CAFConfig.cmake.in index 1a2348c..6c0d0b2 100644 --- a/cmake/CAFConfig.cmake.in +++ b/cmake/CAFConfig.cmake.in @@ -5,5 +5,6 @@ include(CMakeFindDependencyMacro) set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_dependency(Threads) +find_dependency(OpenSSL REQUIRED) include("${CMAKE_CURRENT_LIST_DIR}/CAFTargets.cmake") ================================================ FILE: ports/caf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO actor-framework/actor-framework REF "${VERSION}" SHA512 64e504513694b351eec954baae4c243dc3d273cc893094548be31131abfc5bd4eb3968ab6326b26d1b9de8454c1511104a46a4e81c9ff73f54028592abc9f410 HEAD_REF main PATCHES fix_dependency.patch fix_cxx17.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCAF_ENABLE_CURL_EXAMPLES=OFF -DCAF_ENABLE_PROTOBUF_EXAMPLES=OFF -DCAF_ENABLE_QT6_EXAMPLES=OFF -DCAF_ENABLE_RUNTIME_CHECKS=OFF -DCAF_ENABLE_ACTOR_PROFILER=OFF -DCAF_ENABLE_EXAMPLES=OFF -DCAF_ENABLE_TESTING=OFF -DCAF_ENABLE_IO_MODULE=ON -DCAF_ENABLE_EXCEPTIONS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME CAF CONFIG_PATH lib/cmake/CAF) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/caf/internal") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/caf/vcpkg.json ================================================ { "name": "caf", "version": "1.1.0", "description": "an open source implementation of the actor model for C++ featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more.", "homepage": "https://github.com/actor-framework/actor-framework", "license": "BSD-3-Clause", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cairo/fix_clang-cl_build.patch ================================================ diff --git a/util/cairo-script/cairo-script-objects.c b/util/cairo-script/cairo-script-objects.c index 2d7937be3..4d55ca848 100644 --- a/util/cairo-script/cairo-script-objects.c +++ b/util/cairo-script/cairo-script-objects.c @@ -127,7 +127,7 @@ csi_array_append (csi_t *ctx, return _csi_stack_push (ctx, &array->stack, csi_object_reference (obj)); } -inline csi_status_t +csi_status_t _csi_array_execute (csi_t *ctx, csi_array_t *array) { csi_integer_t i; diff --git a/meson.build b/meson.build index 7b20c0c48..9cb4a82ba 100644 --- a/meson.build +++ b/meson.build @@ -38,7 +38,7 @@ cc = meson.get_compiler('c') # Compiler flags cflags = [] -if cc.get_id() != 'msvc' +if cc.get_argument_syntax() != 'msvc' cflags += [ '-Wmissing-declarations', '-Werror-implicit-function-declaration', @@ -159,8 +159,7 @@ check_headers = [ check_types = [ ['uint64_t', {'headers': ['stdint.h']}], - ['uint128_t', {'headers': ['stdint.h']}], - ['__uint128_t'] + ['uint128_t', {'headers': ['stdint.h']}] ] check_funcs = [ ================================================ FILE: ports/cairo/msvc-convenience.diff ================================================ diff --git a/src/win32/cairo-win32-private.h b/src/win32/cairo-win32-private.h index d457b78..0b1b4ed 100644 --- a/src/win32/cairo-win32-private.h +++ b/src/win32/cairo-win32-private.h @@ -53,6 +53,10 @@ #define WIN32_FONT_LOGICAL_SCALE 32 +#ifdef _MSC_VER +#pragma comment(lib, "MSImg32.Lib") +#endif + CAIRO_BEGIN_DECLS /* Surface DC flag values */ ================================================ FILE: ports/cairo/portfile.cmake ================================================ set(EXTRA_PATCHES "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND EXTRA_PATCHES fix_clang-cl_build.patch) endif() vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://gitlab.freedesktop.org REPO cairo/cairo REF "${VERSION}" SHA512 663e6edf2718e8205e30ba309ac609ced9e88e6e1ec857fc48b345dfce82b044d58ec6b4a2d2b281fba30a659a368625ea7501f8b43fe26c137a7ebffdbaac91 PATCHES msvc-convenience.diff ${EXTRA_PATCHES} ) if("fontconfig" IN_LIST FEATURES) list(APPEND OPTIONS -Dfontconfig=enabled) else() list(APPEND OPTIONS -Dfontconfig=disabled) endif() if("freetype" IN_LIST FEATURES) list(APPEND OPTIONS -Dfreetype=enabled) else() list(APPEND OPTIONS -Dfreetype=disabled) endif() if ("x11" IN_LIST FEATURES) message(WARNING "You will need to install Xorg dependencies to use feature x11:\nsudo apt install libx11-dev libxft-dev libxext-dev\n") list(APPEND OPTIONS -Dxlib=enabled) else() list(APPEND OPTIONS -Dxlib=disabled) endif() list(APPEND OPTIONS -Dxcb=disabled) list(APPEND OPTIONS -Dxlib-xcb=disabled) if("gobject" IN_LIST FEATURES) list(APPEND OPTIONS -Dglib=enabled) else() list(APPEND OPTIONS -Dglib=disabled) endif() if("lzo" IN_LIST FEATURES) list(APPEND OPTIONS -Dlzo=enabled) else() list(APPEND OPTIONS -Dlzo=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Dtests=disabled -Dzlib=enabled -Dpng=enabled -Dspectre=auto -Dgtk2-utils=disabled -Dsymbol-lookup=disabled ) vcpkg_install_meson() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cairo/cairo.h" "defined(CAIRO_WIN32_STATIC_BUILD)" "1") endif() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING-LGPL-2.1" "${SOURCE_PATH}/COPYING-MPL-1.1") ================================================ FILE: ports/cairo/vcpkg.json ================================================ { "name": "cairo", "version": "1.18.4", "port-version": 1, "description": "Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.", "homepage": "https://cairographics.org", "license": "LGPL-2.1-only OR MPL-1.1", "supports": "!xbox & !uwp", "dependencies": [ "dirent", "expat", "libpng", "pixman", "pthread", { "name": "vcpkg-tool-meson", "host": true }, "zlib" ], "default-features": [ "fontconfig", "freetype" ], "features": { "fontconfig": { "description": "Build with fontconfig", "dependencies": [ "fontconfig" ] }, "freetype": { "description": "Use the freetype font backend", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "gobject": { "description": "Build the gobject module", "dependencies": [ "glib" ] }, "lzo": { "description": "Build with lzo support", "dependencies": [ "lzo" ] }, "x11": { "description": "Build with X11 support", "supports": "!windows", "dependencies": [ { "name": "cairo", "default-features": false, "features": [ "fontconfig" ] }, "libx11", "libxext", "libxrender" ] } } } ================================================ FILE: ports/cairomm/fix_include_path.patch ================================================ diff --git a/meson.build b/meson.build index b8c2191..8f280b4 100644 --- a/meson.build +++ b/meson.build @@ -288,7 +288,7 @@ mm_conf_data.set('CAIROMM_MICRO_VERSION', cairomm_micro_version) mm_conf_data.set('VERSION', meson.project_version()) # for MSVC_NMake/cairomm/cairomm.rc cairommconfig_h_meson = files('cairommconfig.h.meson') -install_includeconfigdir = install_libdir / cairomm_pcname / 'include' +install_includeconfigdir = install_includedir configure_file( input: cairommconfig_h_meson, output: 'cairommconfig.h', @@ -380,7 +380,7 @@ summary = [ 'Directories:', ' prefix: @0@'.format(install_prefix), ' includedir: @0@'.format(install_prefix / install_includedir), - ' includecairommdir: @0@'.format(install_prefix / install_includedir / cairomm_pcname), + ' includecairommdir: @0@'.format(install_prefix / install_includedir), ' libdir: @0@'.format(install_prefix / install_libdir), ' includeconfigdir: @0@'.format(install_prefix / install_includeconfigdir), ' pkgconfigdir: @0@'.format(install_prefix / install_pkgconfigdir), diff --git a/cairomm/meson.build b/cairomm/meson.build index f940268..23b955e 100644 --- a/cairomm/meson.build +++ b/cairomm/meson.build @@ -64,7 +64,7 @@ cairomm_private_h = [ # docs/reference/meson.build needs this. source_h_files = cairomm_public_h -install_headers(cairomm_public_h, subdir: cairomm_pcname / 'cairomm') +install_headers(cairomm_public_h, subdir: 'cairomm') # Make sure we are exporting the symbols from the DLL cairomm_cpp_args = ['-DCAIROMM_BUILD=1'] diff --git a/data/cairomm.pc.in b/data/cairomm.pc.in index b6d19a2..59a03f0 100644 --- a/data/cairomm.pc.in +++ b/data/cairomm.pc.in @@ -16,4 +16,4 @@ Version: @PACKAGE_VERSION@ URL: http://www.cairographics.org/cairomm/ Requires: @CAIROMM_MODULES@ Libs: -L${libdir} -lcairomm@MSVC_TOOLSET_VER@-@CAIROMM_API_VERSION@ @CAIROMM_EXTRA_LIBS@ -Cflags: -I${includedir}/@CAIROMM_MODULE_NAME@ -I${libdir}/@CAIROMM_MODULE_NAME@/include +Cflags: -I${includedir} ================================================ FILE: ports/cairomm/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_download_distfile(ARCHIVE URLS "https://www.cairographics.org/releases/cairomm-${VERSION}.tar.xz" FILENAME "cairomm-${VERSION}.tar.xz" SHA512 d358a765136e244773b4a0fdcb2d9c81dd0b76f7a27c7108f94df9765f2d790f5f50b5645c09c292efce3e012528f85114d51916450c5fe6fa87d09f5a405d4c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix_include_path.patch ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbuild-examples=false -Dmsvc14x-parallel-installable=false # Use separate DLL and LIB filenames for Visual Studio 2017 and 2019 -Dbuild-tests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cairommconfig.h" "# define CAIROMM_DLL 1" "# undef CAIROMM_DLL\n# define CAIROMM_STATIC_LIB 1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cairomm/usage ================================================ cairomm provides usage: find_package(PkgConfig REQUIRED) pkg_check_modules(CAIROMM REQUIRED IMPORTED_TARGET cairomm-1.16) target_link_libraries(main PRIVATE PkgConfig::CAIROMM) ================================================ FILE: ports/cairomm/vcpkg.json ================================================ { "name": "cairomm", "version": "1.18.0", "description": "A C++ wrapper for the cairo graphics library", "homepage": "https://www.cairographics.org", "license": "LGPL-2.0-only", "supports": "!xbox", "dependencies": [ "cairo", "libsigcpp", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/calceph/disable-gnu-source.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a1cb297..9448623 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,8 +147,10 @@ IF ("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel") MESSAGE(STATUS "Add the option '-fp-model precise' for the Intel compilers") string(APPEND CMAKE_C_FLAGS " -fp-model precise ") ENDIF () +if(NOT ANDROID) # Define for the function strod_l string(APPEND CMAKE_C_FLAGS " -D_GNU_SOURCE=1 ") +endif() # Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). string(APPEND CMAKE_C_FLAGS " -D_LARGEFILE_SOURCE=1 ") string(APPEND CMAKE_C_FLAGS " -D_LARGE_FILES=1 ") ================================================ FILE: ports/calceph/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-${VERSION}.tar.gz" FILENAME "calceph-${VERSION}.tar.gz" SHA512 d3f17a302dafee243a3c7698dd5b7e67550ba070cd3217c399e2cee5f90486d2be394ddcfe6dcc1b72f980e212d19bda50c4057fca05b032f6558794f191935a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable-gnu-source.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_FORTRAN=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_tools(TOOL_NAMES calceph_inspector calceph_queryposition calceph_queryorientation AUTO_CLEAN) 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/share") file(INSTALL "${SOURCE_PATH}/README.rst" DESTINATION "${CURRENT_PACKAGES_DIR}/share/calceph" RENAME readme.rst) vcpkg_install_copyright( COMMENT "The CALCEPH library is triple-licensed (CECILL-2.1 OR CECILL-B OR CECILL-C)." FILE_LIST "${SOURCE_PATH}/COPYING_CECILL_V2.1.LIB" "${SOURCE_PATH}/COPYING_CECILL_B.LIB" "${SOURCE_PATH}/COPYING_CECILL_C.LIB" ) ================================================ FILE: ports/calceph/vcpkg.json ================================================ { "name": "calceph", "version": "4.0.5", "port-version": 1, "description": "C library to access the binary planetary ephemeris files.", "homepage": "https://www.imcce.fr/inpop/calceph/", "documentation": "https://calceph.imcce.fr/docs/latest/html/c/index.html", "license": "CECILL-2.1 OR CECILL-B OR CECILL-C", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/camport3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO percipioxyz/camport3 REF "v${VERSION}" SHA512 9d2ab3fdf4c46ca92afbf3c2ebc171df0a29415956e3a4325a4e5146d128e886c09f3b992fbad4c759cadcf22c08d149bb6c37fe33a27accacc66dc71b2b1dfa HEAD_REF master ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/include/TYApi.h" "${SOURCE_PATH}/include/TYCoordinateMapper.h" "${SOURCE_PATH}/include/TYDefs.h" "${SOURCE_PATH}/include/TYImageProc.h" "${SOURCE_PATH}/include/TyIsp.h" "${SOURCE_PATH}/include/TYVer.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(VCPKG_TARGET_IS_WINDOWS) if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/lib/win/hostapp/${VCPKG_TARGET_ARCHITECTURE}/tycam.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) file(COPY "${SOURCE_PATH}/lib/win/hostapp/${VCPKG_TARGET_ARCHITECTURE}/tycam.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin" ) endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(COPY "${SOURCE_PATH}/lib/win/hostapp/${VCPKG_TARGET_ARCHITECTURE}/tycam.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) file(COPY "${SOURCE_PATH}/lib/win/hostapp/${VCPKG_TARGET_ARCHITECTURE}/tycam.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() elseif(VCPKG_TARGET_IS_LINUX) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set (CAMPORT3_ARCH "Aarch64") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set (CAMPORT3_ARCH "armv7hf") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set (CAMPORT3_ARCH "i686") else() set (CAMPORT3_ARCH ${VCPKG_TARGET_ARCHITECTURE}) endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/lib/linux/lib_${CAMPORT3_ARCH}/libtycam.so" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(COPY "${SOURCE_PATH}/lib/linux/lib_${CAMPORT3_ARCH}/libtycam.so" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) endif() endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/camport3/vcpkg.json ================================================ { "name": "camport3", "version": "1.6.75", "description": "percipio.xyz cameras SDK", "homepage": "https://github.com/percipioxyz/camport3", "license": "LicenseRef-PERCIPIO", "supports": "((windows & !uwp & !arm & !arm64 & !static) | linux) & !wasm32" } ================================================ FILE: ports/canvas-ity/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO a-e-k/canvas_ity REF fc5c115d8ca8be0cf81c2247270cc955f78b6138 SHA512 19560fa09e8a8eeb09c05b26cf562dc506e6c88e1e66767a2214d2310188cb52ffe03294bd6448531703bd972e2a1995446a3cc20684c9d617ebe65ac93dd37a HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/src/canvas_ity.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/canvas-ity/vcpkg.json ================================================ { "name": "canvas-ity", "version": "1.0", "description": "A tiny, single-header -like 2D rasterizer for C++", "homepage": "https://github.com/a-e-k/canvas_ity", "license": "ISC" } ================================================ FILE: ports/capnproto/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO capnproto/capnproto REF "v${VERSION}" SHA512 6f31294ffe613b28ee891a7e7465d35781697dc7ed51f806b7c707c8fc94ead01099ab356041646e382320ff922f40c393b4b58f3106bbc3fb547386d7c0ed1a HEAD_REF master PATCHES undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # In ARM64 it fails without /bigobj set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} /bigobj") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} /bigobj") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "openssl" OPENSSL_FEATURE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF "-DWITH_OPENSSL=${OPENSSL_FEATURE}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CapnProto) vcpkg_copy_tools(TOOL_NAMES capnp capnpc-c++ capnpc-capnp AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/capnproto/undef-KJ_USE_EPOLL-for-ANDROID_PLATFORM-23.patch ================================================ From 306220e57881064da99f89ad4192b3e19c7953a9 Mon Sep 17 00:00:00 2001 From: Stig Hornang Date: Thu, 31 Aug 2023 21:20:09 +0200 Subject: [PATCH] Undef KJ_USE_EPOLL for ANDROID_PLATFORM < 23 --- c++/src/kj/async-unix.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/c++/src/kj/async-unix.h b/c++/src/kj/async-unix.h index 665305ea..c5f195cf 100644 --- a/c++/src/kj/async-unix.h +++ b/c++/src/kj/async-unix.h @@ -34,7 +34,10 @@ KJ_BEGIN_HEADER #if !defined(KJ_USE_EPOLL) && !defined(KJ_USE_KQUEUE) -#if __linux__ + +// Android NDK less than API version 23 doesn't have sigtimedwait +// sigtimedwait is used in async-unix.c++ if KJ_USE_EPOLL is defined +#if __linux__ && !(__ANDROID__ && __ANDROID_API__ < 23) // Default to epoll on Linux. #define KJ_USE_EPOLL 1 #elif __APPLE__ || __FreeBSD__ || __NetBSD__ || __DragonFly__ -- 2.41.0.windows.3 ================================================ FILE: ports/capnproto/vcpkg.json ================================================ { "name": "capnproto", "version": "1.4.0", "description": "Data interchange format and capability-based RPC system", "homepage": "https://capnproto.org/", "license": "MIT", "supports": "!windows | (!uwp & !arm32)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "openssl": { "description": "Build libkj-tls by linking against OpenSSL.", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/capstone/001-silence-windows-crt-secure-warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f5f4448..5e5cc7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,6 +87,10 @@ if(CAPSTONE_BUILD_STATIC_RUNTIME) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() +if(WIN32) + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +endif() + ## sources set(SOURCES_ENGINE cs.c ================================================ FILE: ports/capstone/002-force-exportname-capstone.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4797bc57..929eee49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -658,7 +658,7 @@ target_include_directories(capstone PUBLIC if(BUILD_STATIC_LIBS) add_library(capstone_static STATIC $) # Use normal capstone name. Otherwise we get libcapstone_static.a - set_target_properties(capstone_static PROPERTIES OUTPUT_NAME "capstone") + set_target_properties(capstone_static PROPERTIES OUTPUT_NAME "capstone" EXPORT_NAME "capstone") target_include_directories(capstone_static PUBLIC $ ) @@ -668,7 +668,7 @@ if(BUILD_SHARED_LIBS) set_property(TARGET capstone PROPERTY POSITION_INDEPENDENT_CODE 1) add_library(capstone_shared SHARED $) # Use normal capstone name. Otherwise we get libcapstone_shared.so - set_target_properties(capstone_shared PROPERTIES OUTPUT_NAME "capstone") + set_target_properties(capstone_shared PROPERTIES OUTPUT_NAME "capstone" EXPORT_NAME "capstone") set_target_properties(capstone_shared PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ================================================ FILE: ports/capstone/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "capstone-engine/capstone" REF "${VERSION}" SHA512 e09788d7dfca281f8f3773323d72e1157df777878d59ace6a8996495d505dec10051ce002f473fa5ff8aa60d5e6bb4cff5e55faffb074643cae7c4515e324994 HEAD_REF next PATCHES 001-silence-windows-crt-secure-warnings.patch 002-force-exportname-capstone.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CAPSTONE_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "arm" CAPSTONE_ARM_SUPPORT "arm64" CAPSTONE_ARM64_SUPPORT "evm" CAPSTONE_EVM_SUPPORT "m680x" CAPSTONE_M680X_SUPPORT "m68k" CAPSTONE_M68K_SUPPORT "mips" CAPSTONE_MIPS_SUPPORT "ppc" CAPSTONE_PPC_SUPPORT "sparc" CAPSTONE_SPARC_SUPPORT "sysz" CAPSTONE_SYSZ_SUPPORT "tms320c64x" CAPSTONE_TMS320C64X_SUPPORT "x86" CAPSTONE_X86_SUPPORT "xcore" CAPSTONE_XCORE_SUPPORT "mos65xx" CAPSTONE_MOS65XX_SUPPORT "tricore" CAPSTONE_TRICORE_SUPPORT "wasm" CAPSTONE_WASM_SUPPORT "bpf" CAPSTONE_BPF_SUPPORT "riscv" CAPSTONE_RISCV_SUPPORT "diet" CAPSTONE_BUILD_DIET ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCAPSTONE_ARCHITECTURE_DEFAULT=OFF -DCAPSTONE_BUILD_TESTS=OFF -DCAPSTONE_BUILD_CSTOOL=OFF -DCAPSTONE_BUILD_STATIC_RUNTIME=${STATIC_CRT} -DBUILD_STATIC_RUNTIME=${STATIC_CRT} -DBUILD_STATIC_LIBS=${CAPSTONE_STATIC} ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CAPSTONE_BUILD_STATIC_RUNTIME BUILD_STATIC_RUNTIME BUILD_STATIC_LIBS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.TXT" ) ================================================ FILE: ports/capstone/vcpkg.json ================================================ { "name": "capstone", "version": "5.0.7", "description": "Multi-architecture disassembly framework", "homepage": "https://github.com/capstone-engine/capstone", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "arm": { "description": "Capstone disassembly support for ARM" }, "arm64": { "description": "Capstone disassembly support for ARM64" }, "bpf": { "description": "Capstone disassembly support for BPF" }, "diet": { "description": "Build Capstone in diet mode (reduced features for smaller size)" }, "evm": { "description": "Capstone disassembly support for EVM" }, "m680x": { "description": "Capstone disassembly support for M680X" }, "m68k": { "description": "Capstone disassembly support for M68k" }, "mips": { "description": "Capstone disassembly support for MIPS" }, "mos65xx": { "description": "Capstone disassembly support for MOS65XX" }, "ppc": { "description": "Capstone disassembly support for PowerPC" }, "riscv": { "description": "Capstone disassembly support for RISC-V" }, "sparc": { "description": "Capstone disassembly support for SPARC" }, "sysz": { "description": "Capstone disassembly support for SysZ" }, "tms320c64x": { "description": "Capstone disassembly support for TMS320C64X" }, "tricore": { "description": "Capstone disassembly support for TriCore" }, "wasm": { "description": "Capstone disassembly support for WebAssembly" }, "x86": { "description": "Capstone disassembly support for x86" }, "xcore": { "description": "Capstone disassembly support for XCore" } } } ================================================ FILE: ports/cargs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO likle/cargs REF "v${VERSION}" SHA512 56877e330745369585b1b6ed274e8c898381439915048375a22a3fed077c1818b5d21356a33a77f516571d834a3fce7f78e509df63ce0f93b8276ac0a93df02a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cargs) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cargs/vcpkg.json ================================================ { "name": "cargs", "version": "1.2.0", "description": "A lightweight cross-platform getopt alternative that works on Linux, Windows and macOS. Command line argument parser library for C/C++. Can be used to parse argv and argc parameters.", "homepage": "https://likle.github.io/cargs/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/casadi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO casadi/casadi REF "${VERSION}" SHA512 ebd1d91f18b29620c8898fd014e35eefce2d621f9a698a14454b478cded78087bffa3651d808908a16ed8864571c7ddae99e387e53cb79a451ca60a8d690c8bb HEAD_REF main ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(ENABLE_SHARED ON) set(ENABLE_STATIC OFF) else() set(ENABLE_SHARED OFF) set(ENABLE_STATIC ON) endif() # Do not build deepbind on unsupported platforms if(VCPKG_TARGET_IS_ANDROID) set(WITH_DEEPBIND OFF) else() set(WITH_DEEPBIND ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_SHARED=${ENABLE_SHARED} -DWITH_DEEPBIND=${WITH_DEEPBIND} -DWITH_SELFCONTAINED=OFF -DWITH_TINYXML=OFF -DWITH_BUILD_TINYXML=OFF -DWITH_QPOASES=OFF -DWITH_SUNDIALS=OFF -DWITH_CSPARSE=OFF -DLIB_PREFIX:PATH=lib -DBIN_PREFIX:PATH=bin -DINCLUDE_PREFIX:PATH=include -DCMAKE_PREFIX:PATH=share/${PORT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") vcpkg_fixup_pkgconfig() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_tools(TOOL_NAMES casadi-cli AUTO_CLEAN) ================================================ FILE: ports/casadi/usage ================================================ casadi provides CMake targets: find_package(casadi CONFIG REQUIRED) target_link_libraries(main PRIVATE casadi::casadi) ================================================ FILE: ports/casadi/vcpkg.json ================================================ { "name": "casadi", "version": "3.7.2", "description": "CasADi is a symbolic framework for numeric optimization implementing automatic differentiation in forward and reverse modes on sparse matrix-valued computational graphs. It supports self-contained C-code generation and interfaces state-of-the-art codes such as SUNDIALS, IPOPT etc. It can be used from C++, Python or Matlab/Octave.", "homepage": "https://web.casadi.org", "license": "LGPL-3.0-only", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/casclib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ladislav-zezula/CascLib REF 1623348517352ff0d6364d47533c0d7f118b46e1 SHA512 1b6dd77a399ff21a278d1ac68efa1417f2a9472b241401d3f6cb8f01ea702b32b4296012bb71ae62a932f9b0fa2b6d3035befe6f3ba0d567e85ac747c503b07c HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CASC_BUILD_SHARED_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CASC_BUILD_STATIC_LIB) set(CASC_UNICODE OFF) if(VCPKG_TARGET_IS_WINDOWS) message(STATUS "This version of CascLib is built in ASCII mode. To switch to UNICODE version, create an overlay port of this with CASC_UNICODE set to ON.") message(STATUS "This recipe is at ${CMAKE_CURRENT_LIST_DIR}") message(STATUS "See the overlay ports documentation at https://github.com/microsoft/vcpkg/blob/master/docs/specifications/ports-overlay.md") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON -DCASC_BUILD_SHARED_LIB=${CASC_BUILD_SHARED_LIB} -DCASC_BUILD_STATIC_LIB=${CASC_BUILD_STATIC_LIB} -DCASC_UNICODE=${CASC_UNICODE} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CascLib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/casclib/vcpkg.json ================================================ { "name": "casclib", "version-date": "2024-06-05", "description": "An open-source implementation of library for reading CASC storage from Blizzard games since 2014", "homepage": "http://www.zezula.net/en/casc/casclib.html", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/catch2/fix-install-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1676ee7..5231934 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,13 +167,13 @@ if(NOT_SUBPROJECT) "extras/gdbinit" "extras/lldbinit" DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR}/Catch2 + ${CMAKE_INSTALL_DATAROOTDIR}/catch2 ) endif() ## Provide some pkg-config integration set(PKGCONFIG_INSTALL_DIR - "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig" + "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Path where catch2.pc is installed" ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1e3af14..265626c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -402,7 +402,6 @@ if(NOT_SUBPROJECT) install( TARGETS Catch2 - Catch2WithMain EXPORT Catch2Targets LIBRARY DESTINATION @@ -413,6 +412,19 @@ if(NOT_SUBPROJECT) ${CMAKE_INSTALL_BINDIR} ) + install( + TARGETS + Catch2WithMain + EXPORT + Catch2Targets + LIBRARY DESTINATION + ${CMAKE_INSTALL_LIBDIR}/manual-link + ARCHIVE DESTINATION + ${CMAKE_INSTALL_LIBDIR}/manual-link + RUNTIME DESTINATION + ${CMAKE_INSTALL_BINDIR} + ) + install( EXPORT Catch2Targets ================================================ FILE: ports/catch2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO catchorg/Catch2 REF v${VERSION} SHA512 7eea385d79d88a5690cde131fe7ccda97d5c54ea09d6f515000d7bf07c828809d61c1ac99912c1ee507cf933f61c1c47ecdcc45df7850ffa82714034b0fccf35 HEAD_REF devel PATCHES fix-install-path.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES thread-safe-assertions CATCH_CONFIG_EXPERIMENTAL_THREAD_SAFE_ASSERTIONS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DCATCH_INSTALL_DOCS=OFF -DCMAKE_CXX_STANDARD=17 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Catch2) vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/catch2-with-main.pc" [["-L${libdir}"]] [["-L${libdir}/manual-link"]]) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/catch2-with-main.pc" [["-L${libdir}"]] [["-L${libdir}/manual-link"]]) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # We remove these folders because they are empty and cause warnings on the library installation file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/catch2/benchmark/internal") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/catch2/generators/internal") file(WRITE "${CURRENT_PACKAGES_DIR}/include/catch.hpp" "#include ") # Copy pdb files to lib folders if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # Catch2 builds static libraries even when shared libraries are requested. # We thus cannot use vcpkg_copy_pdbs which only works for dlls but have to search for the pdbs manually. file(GLOB_RECURSE catch2_pdb_files "${CURRENT_BUILDTREES_DIR}/*.pdb") list(FILTER catch2_pdb_files INCLUDE REGEX ".*${TARGET_TRIPLET}.*") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(catch2_release_pdb_files ${catch2_pdb_files}) list(FILTER catch2_release_pdb_files INCLUDE REGEX ".*${TARGET_TRIPLET}-rel.*") file(COPY ${catch2_release_pdb_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(catch2_debug_pdb_files ${catch2_pdb_files}) list(FILTER catch2_debug_pdb_files INCLUDE REGEX ".*${TARGET_TRIPLET}-dbg.*") file(COPY ${catch2_debug_pdb_files} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/catch2/vcpkg.json ================================================ { "name": "catch2", "version-semver": "3.13.0", "port-version": 1, "description": "A modern, C++-native, test framework for unit-tests, TDD and BDD.", "homepage": "https://github.com/catchorg/Catch2", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "thread-safe-assertions": { "description": "Enables thread safe assertions" } } } ================================================ FILE: ports/cblas/cblas.pc.in ================================================ prefix=${pcfiledir}/../.. Name: CBLAS Description: Implementation of CBLAS Version: Requires: @requires@ Libs: @libs@ Cflags: @cflags@ ================================================ FILE: ports/cblas/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) # See explanation in ports/blas/portfile.cmake for which blas implementation is chosen. set(requires blas) configure_file("${CMAKE_CURRENT_LIST_DIR}/cblas.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cblas.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/cblas.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cblas.pc" @ONLY) endif() ================================================ FILE: ports/cblas/vcpkg.json ================================================ { "$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!", "name": "cblas", "version-date": "2025-10-29", "description": "Metapackage for packages which provide CBLAS", "license": null, "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cccapstone/fix-include-path.patch ================================================ diff --git a/cppbindings/CsCapstoneHelper.hh b/cppbindings/CsCapstoneHelper.hh index daf7a73..8ed5194 100644 --- a/cppbindings/CsCapstoneHelper.hh +++ b/cppbindings/CsCapstoneHelper.hh @@ -1,6 +1,6 @@ #pragma once -#include +#include #include struct CS_HANDLE : diff --git a/cppbindings/CsIns.hpp b/cppbindings/CsIns.hpp index 6e8ba71..c723be9 100644 --- a/cppbindings/CsIns.hpp +++ b/cppbindings/CsIns.hpp @@ -1,6 +1,6 @@ #pragma once -#include +#include #include "CsCapstoneHelper.hh" //x86_insn_group, x86_reg, x86_op_type, x86_insn ================================================ FILE: ports/cccapstone/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REF 9b4128ee1153e78288a1b5433e2c06a0d47a4c4e REPO zer0mem/cccapstone SHA512 d0023586281f921314dbba501fa2c06d822b1adba0a0c32f30b78628ee935e5822caebe3881a5d1cc4cc696b82a7e348044d887a7f652303359d2853d2ee45fb HEAD_REF master PATCHES fix-include-path.patch ) file(INSTALL ${SOURCE_PATH}/cppbindings/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/cccapstone/cppbindings) file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/cccapstone RENAME copyright) ================================================ FILE: ports/cccapstone/vcpkg.json ================================================ { "name": "cccapstone", "version-string": "9b4128ee1153e78288a1b5433e2c06a0d47a4c4e", "port-version": 2, "description": "c++ bindings for capstone disasembly framework", "homepage": "https://github.com/zer0mem/cccapstone", "dependencies": [ "capstone" ] } ================================================ FILE: ports/ccd/fix-static.patch ================================================ diff --git a/src/ccd/ccd_export.h b/src/ccd/ccd_export.h index e898d41..c6aa5fb 100644 --- a/src/ccd/ccd_export.h +++ b/src/ccd/ccd_export.h @@ -1,7 +1,7 @@ #ifndef CCD_EXPORT_H #define CCD_EXPORT_H -#ifdef CCD_STATIC_DEFINE +#if 1 # define CCD_EXPORT #else # ifdef _MSC_VER ================================================ FILE: ports/ccd/portfile.cmake ================================================ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(STATIC_PATCH fix-static.patch) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO danfis/libccd REF v2.1 SHA512 ff037d9c4df50f09600cf9b3514b259b2850ff43f74817853f5665d22812891168f70bd3cc3969b2c9e3c706f6254991a65421476349607fbd04d894b217456d HEAD_REF master # Backport https://github.com/danfis/libccd/pull/70 to support Emscripten PATCHES "support-emscripten.patch" ${STATIC_PATCH} ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES double-precision ENABLE_DOUBLE_PRECISION ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/ccd) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(INSTALL "${SOURCE_PATH}/BSD-LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/ccd/support-emscripten.patch ================================================ From c3616f28d33019047e8e71df8abeb0493159539e Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Sun, 17 May 2020 11:42:24 +0200 Subject: [PATCH] Fix configuration with Emscripten In Emscripten there is no separate libm library, so there is no need to explicitly link it, and in particular the find_library call would fail as there is not libm to find. See https://stackoverflow.com/questions/24663915/how-can-i-link-libm-to-my-emscripten-port --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1407080..357ed76 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -48,7 +48,7 @@ target_include_directories(ccd PUBLIC $ $) -if(NOT WIN32) +if(NOT WIN32 AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Emscripten")) find_library(LIBM_LIBRARY NAMES m) if(NOT LIBM_LIBRARY) message(FATAL_ERROR "Could NOT find required library LibM") ================================================ FILE: ports/ccd/vcpkg.json ================================================ { "name": "ccd", "version": "2.1", "port-version": 4, "description": "Library for collision detection between two convex shapes", "homepage": "https://github.com/danfis/libccd", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "double-precision": { "description": "Use float64 doubles for ccd" } } } ================================================ FILE: ports/ccfits/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 89c2bed..225ca3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -PROJECT(CCfits) CMAKE_MINIMUM_REQUIRED(VERSION 3.8) +PROJECT(CCfits) # Allow the developer to select whether to build Dynamic or Static libraries OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" OFF) @@ -57,10 +57,9 @@ SET(SRC_FILES # Dependencies: #============================================================================== -# Try to get CFITSIO info (incl. dependencies) using pkg-config: -SET (PKG_CONFIG_USE_CMAKE_PREFIX_PATH "on") -FIND_PACKAGE(PkgConfig) -IF (${PkgConfig_FOUND}) +if(1) + find_package(CFITSIO NAMES cfitsio REQUIRED) +elseif(0) PKG_CHECK_MODULES(CFITSIO REQUIRED cfitsio) IF (CFITSIO_FOUND) MESSAGE(STATUS "Found CFITSIO:") @@ -101,7 +100,9 @@ IF (MSVC) ENDIF(MSVC) # Add link dependencies: -IF (${PkgConfig_FOUND}) +if(1) + target_link_libraries(${LIB_NAME} PRIVATE CFITSIO::cfitsio) +elseif(0) # pkg-config supplies the CFITSIO dependencies (zlib, curl) IF (CFITSIO_FOUND) TARGET_LINK_LIBRARIES(${LIB_NAME} ${CFITSIO_LIBRARIES}) ================================================ FILE: ports/ccfits/dll_exports.patch ================================================ diff --git a/FITS.h b/FITS.h index e21f3db..3e97c83 100644 --- a/FITS.h +++ b/FITS.h @@ -21,6 +21,8 @@ #include "HDUCreator.h" // FitsError #include "FitsError.h" +// DLL Exporting +#include "ccfits_export.h" namespace CCfits { class PHDU; @@ -625,7 +627,7 @@ do this either). - class FITS + class CCFITS_EXPORT FITS { public: diff --git a/HDU.h b/HDU.h index 07f68e7..047e731 100644 --- a/HDU.h +++ b/HDU.h @@ -683,7 +683,7 @@ namespace CCfits { - class HDU + class CCFITS_EXPORT HDU { public: diff --git a/Table.h b/Table.h index a0c1afe..9a8a5db 100644 --- a/Table.h +++ b/Table.h @@ -279,7 +279,7 @@ namespace CCfits { - class Table : public ExtHDU //## Inherits: %3804A126EB10 + class CCFITS_EXPORT Table : public ExtHDU //## Inherits: %3804A126EB10 { public: diff --git a/Column.h b/Column.h index e4496a7..b798947 100644 --- a/Column.h +++ b/Column.h @@ -838,14 +838,14 @@ namespace CCfits { - class Column + class CCFITS_EXPORT Column { public: - class RangeError : public FitsException //## Inherits: %3946526D031A + class CCFITS_EXPORT RangeError : public FitsException //## Inherits: %3946526D031A { public: RangeError (const String& msg, bool silent = true); @@ -857,7 +857,7 @@ namespace CCfits { - class InvalidDataType : public FitsException //## Inherits: %3947CF30033E + class CCFITS_EXPORT InvalidDataType : public FitsException //## Inherits: %3947CF30033E { public: InvalidDataType (const String& str = string(), bool silent = true); @@ -869,7 +869,7 @@ namespace CCfits { - class InvalidRowParameter : public FitsException //## Inherits: %39B5310F01A0 + class CCFITS_EXPORT InvalidRowParameter : public FitsException //## Inherits: %39B5310F01A0 { public: InvalidRowParameter (const String& diag, bool silent = true); @@ -881,7 +881,7 @@ namespace CCfits { - class WrongColumnType : public FitsException //## Inherits: %39B545780082 + class CCFITS_EXPORT WrongColumnType : public FitsException //## Inherits: %39B545780082 { public: WrongColumnType (const String& diag, bool silent = true); @@ -893,7 +893,7 @@ namespace CCfits { - class UnspecifiedLengths : public FitsException //## Inherits: %3A018C9D007D + class CCFITS_EXPORT UnspecifiedLengths : public FitsException //## Inherits: %3A018C9D007D { public: UnspecifiedLengths (const String& diag, bool silent = true); @@ -905,7 +905,7 @@ namespace CCfits { - class InvalidRowNumber : public FitsException //## Inherits: %3B0A850F0307 + class CCFITS_EXPORT InvalidRowNumber : public FitsException //## Inherits: %3B0A850F0307 { public: InvalidRowNumber (const String& diag, bool silent = true); @@ -917,7 +917,7 @@ namespace CCfits { - class InsufficientElements : public FitsException //## Inherits: %3B0BE611010A + class CCFITS_EXPORT InsufficientElements : public FitsException //## Inherits: %3B0BE611010A { public: InsufficientElements (const String& msg, bool silent = true); @@ -929,7 +929,7 @@ namespace CCfits { - class NoNullValue : public FitsException //## Inherits: %3B0D589A0092 + class CCFITS_EXPORT NoNullValue : public FitsException //## Inherits: %3B0D589A0092 { public: NoNullValue (const String& diag, bool silent = true); @@ -941,7 +941,7 @@ namespace CCfits { - class InvalidNumberOfRows : public FitsException //## Inherits: %3B20EB8B0205 + class CCFITS_EXPORT InvalidNumberOfRows : public FitsException //## Inherits: %3B20EB8B0205 { public: InvalidNumberOfRows (int number, bool silent = true); diff --git a/AsciiTable.h b/AsciiTable.h index 620cf41..d03aa44 100644 --- a/AsciiTable.h +++ b/AsciiTable.h @@ -133,7 +133,7 @@ namespace CCfits { - class AsciiTable : public Table //## Inherits: %3804A75CE420 + class CCFITS_EXPORT AsciiTable : public Table //## Inherits: %3804A75CE420 { public: diff --git a/CCfits.h b/CCfits.h index d09438a..a62b8a6 100644 --- a/CCfits.h +++ b/CCfits.h @@ -23,7 +23,7 @@ namespace CCfits { #include #include "longnam.h" #include "float.h" - +#include "ccfits_export.h" namespace CCfits { /*! \namespace CCfits @@ -32,8 +32,8 @@ namespace CCfits { static const int BITPIX = -32; static const int NAXIS = 2; static const int MAXDIM = 99; - extern const unsigned long USBASE; - extern const unsigned long ULBASE; + extern const CCFITS_EXPORT unsigned long USBASE; + extern const CCFITS_EXPORT unsigned long ULBASE; extern char BSCALE[7]; extern char BZERO[6]; diff --git a/Keyword.h b/Keyword.h index 816c119..b6df1f1 100644 --- a/Keyword.h +++ b/Keyword.h @@ -195,7 +195,7 @@ namespace CCfits { - class Keyword + class CCFITS_EXPORT Keyword { public: diff --git a/ExtHDU.h b/ExtHDU.h index d075fa1..e2d7dc6 100644 --- a/ExtHDU.h +++ b/ExtHDU.h @@ -435,7 +435,7 @@ namespace CCfits { - class ExtHDU : public HDU //## Inherits: %38048213E7A8 + class CCFITS_EXPORT ExtHDU : public HDU //## Inherits: %38048213E7A8 { public: diff --git a/PHDU.h b/PHDU.h index fe5f799..d9669b4 100644 --- a/PHDU.h +++ b/PHDU.h @@ -264,7 +264,7 @@ namespace CCfits { - class PHDU : public HDU //## Inherits: %394E6F9800C3 + class CCFITS_EXPORT PHDU : public HDU //## Inherits: %394E6F9800C3 { public: diff --git a/BinTable.h b/BinTable.h index 68851e3..906005a 100644 --- a/BinTable.h +++ b/BinTable.h @@ -127,7 +127,7 @@ namespace CCfits { - class BinTable : public Table //## Inherits: %3804A7E75F10 + class CCFITS_EXPORT BinTable : public Table //## Inherits: %3804A7E75F10 { public: diff --git a/ColumnCreator.h b/ColumnCreator.h index 104bd4f..15cd0ea 100644 --- a/ColumnCreator.h +++ b/ColumnCreator.h @@ -28,7 +28,7 @@ namespace CCfits { - class ColumnCreator + class CCFITS_EXPORT ColumnCreator { public: diff --git a/FitsError.h b/FitsError.h index 593723c..52941f6 100644 --- a/FitsError.h +++ b/FitsError.h @@ -13,6 +13,7 @@ //#include //#include //#include +#include "ccfits_export.h" #include using std::string; @@ -90,7 +91,7 @@ namespace CCfits { - class FitsException + class CCFITS_EXPORT FitsException { public: FitsException (const string& msg, bool& silent); @@ -109,7 +110,7 @@ namespace CCfits { - class FitsError : public FitsException //## Inherits: %399170BD017D + class CCFITS_EXPORT FitsError : public FitsException //## Inherits: %399170BD017D { public: FitsError (int errornum, bool silent = true); @@ -123,7 +124,7 @@ namespace CCfits { - class FitsFatal + class CCFITS_EXPORT FitsFatal { public: FitsFatal (const string& diag); diff --git a/HDUCreator.h b/HDUCreator.h index 65b82b7..2b5f717 100644 --- a/HDUCreator.h +++ b/HDUCreator.h @@ -35,7 +35,7 @@ namespace CCfits { - class HDUCreator + class CCFITS_EXPORT HDUCreator { public: diff --git a/ccfits_export.h b/ccfits_export.h new file mode 100644 index 0000000..a2540a6 100644 --- /dev/null +++ b/ccfits_export.h @@ -0,0 +1,22 @@ +#ifndef CCFITS_EXPORT_H +#define CCFITS_EXPORT_H + +#ifdef CCFITS_STATIC_DEFINE +# define CCFITS_EXPORT +#else +# ifndef CCFITS_EXPORT +# ifdef _MSC_VER +# ifdef CCfits_EXPORTS + /* We are building this library */ +# define CCFITS_EXPORT __declspec(dllexport) +# else + /* We are using this library */ +# define CCFITS_EXPORT __declspec(dllimport) +# endif +# else +# define CCFITS_EXPORT __attribute__((visibility("default"))) +# endif +# endif +#endif + +#endif diff --git a/FITSUtil.h b/FITSUtil.h index 762d430..e2eee33 100644 --- a/FITSUtil.h +++ b/FITSUtil.h @@ -22,6 +22,7 @@ #include // FitsError #include "FitsError.h" +#include "ccfits_export.h" #include @@ -287,21 +288,21 @@ object. template void swap(std::vector& left, std::vector& right); - string lowerCase(const string& inputString); + string CCFITS_EXPORT lowerCase(const string& inputString); - string upperCase(const string& inputString); + string CCFITS_EXPORT upperCase(const string& inputString); // Check if a file name includes an image compression specifier, // and return its location if it exists. - string::size_type checkForCompressString(const string& fileName); + string::size_type CCFITS_EXPORT checkForCompressString(const string& fileName); - struct InvalidConversion : public FitsException + struct CCFITS_EXPORT InvalidConversion : public FitsException { InvalidConversion(const string& diag, bool silent=false); }; - struct MatchStem + struct CCFITS_EXPORT MatchStem { bool operator()(const string& left, const string& right) const; }; @@ -323,7 +324,7 @@ object. char** CharArray(const std::vector& inArray); - string FITSType2String( int typeInt ); + string CCFITS_EXPORT FITSType2String( int typeInt ); template @@ -633,7 +634,7 @@ object. - class UnrecognizedType : public FitsException //## Inherits: %3CE143AB00C6 + class CCFITS_EXPORT UnrecognizedType : public FitsException //## Inherits: %3CE143AB00C6 { public: UnrecognizedType (string diag, bool silent = true); diff --git a/KeywordCreator.h b/KeywordCreator.h index d878a26..b2c0c70 100644 --- a/KeywordCreator.h +++ b/KeywordCreator.h @@ -24,7 +24,7 @@ namespace CCfits { - class KeywordCreator + class CCFITS_EXPORT KeywordCreator { public: diff --git a/CMakeLists.txt b/CMakeLists.txt index 6716c5b..455f27d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,9 +90,8 @@ SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES IF (MSVC) ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE) IF (BUILD_SHARED_LIBS) - # MSVC shared is broken; better fix would be to "hide all symbols - # for all compilers", and export public symbols with a macro. - SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS ON) + ELSE() + ADD_DEFINITIONS(-DCCFITS_STATIC_DEFINE) ENDIF (BUILD_SHARED_LIBS) ENDIF(MSVC) ================================================ FILE: ports/ccfits/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/ccfits/v${VERSION}/CCfits-${VERSION}.tar.gz" FILENAME "CCfits-${VERSION}.tar.gz" SHA512 5cb802f41cf0695d0e49924ee163151ee657b93158246766d04c192518c7bed30383405d87b5fb312f5f44af26d5ede3104fab90d93cc232e950f8ae66050fde ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES dependencies.diff dll_exports.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/ccfits/vcpkg.json ================================================ { "name": "ccfits", "version": "2.7", "description": "CCfits is an object oriented interface to the cfitsio library. It is designed to make the capabilities of cfitsio available to programmers working in C++.", "homepage": "https://heasarc.gsfc.nasa.gov/fitsio/CCfits/", "license": "NASA-1.3", "dependencies": [ "cfitsio", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cctag/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d0e35b6..6633a9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -232,9 +232,9 @@ endif(CCTAG_WITH_CUDA) find_package(OpenCV REQUIRED core videoio imgproc imgcodecs) # FIND Eigen -set(CCTAG_EIGEN_REQUIRED_VERSION 3.3.4) +set(CCTAG_EIGEN_REQUIRED_VERSION 3.3.4...5) if(MSVC AND CCTAG_WITH_CUDA) - set(CCTAG_EIGEN_REQUIRED_VERSION 3.3.9) + set(CCTAG_EIGEN_REQUIRED_VERSION 3.3.9...5) message(WARNING "Building CCTag with Cuda support under windows requires Eigen >= ${CCTAG_EIGEN_REQUIRED_VERSION}") endif() find_package(Eigen3 ${CCTAG_EIGEN_REQUIRED_VERSION} REQUIRED) ================================================ FILE: ports/cctag/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alicevision/cctag REF "v${VERSION}" SHA512 65f8260213faab1965ff97e38b890d85f5599c5db5f50f09ab1ed2d73d7008d2e93693145d66a4d9af6342666817204736c3b0384885fa50402850f1dc5dceae HEAD_REF develop PATCHES 0001-support-eigen3-5.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda CCTAG_WITH_CUDA apps CCTAG_BUILD_APPS ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT) message(STATUS "CUDA_TOOLKIT_ROOT ${CUDA_TOOLKIT_ROOT}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCCTAG_BUILD_TESTS:BOOL=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CCTag) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # remove test files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/cctag/geometry/test" "${CURRENT_PACKAGES_DIR}/include/cctag/test") # remove cuda headers if(NOT "cuda" IN_LIST FEATURES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/cctag/cuda") endif() # move the bin directory to tools if ("apps" IN_LIST FEATURES) set(CCTAG_TOOLS detection regression simulation) vcpkg_copy_tools(TOOL_NAMES ${CCTAG_TOOLS} AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.md") ================================================ FILE: ports/cctag/vcpkg.json ================================================ { "name": "cctag", "version-semver": "1.0.4", "port-version": 1, "maintainers": "alicevision-team@googlegroups.com", "description": "Computer vision library for detecting CCTag markers made up of concentric circles", "homepage": "https://github.com/alicevision/CCTag", "documentation": "https://cctag.readthedocs.io/", "license": "MPL-2.0", "supports": "!(uwp | arm | arm64 | android | x86 | xbox)", "dependencies": [ "boost-accumulators", "boost-algorithm", "boost-container", "boost-date-time", "boost-exception", "boost-filesystem", "boost-foreach", "boost-iterator", "boost-lexical-cast", { "name": "boost-math", "features": [ "legacy" ] }, "boost-mpl", "boost-multi-array", "boost-program-options", "boost-ptr-container", "boost-serialization", "boost-spirit", "boost-stacktrace", "boost-static-assert", "boost-test", "boost-thread", "boost-throw-exception", "boost-timer", "boost-type-traits", "boost-unordered", "eigen3", "opencv", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "apps": { "description": "Sample applications for detecting CCTag markers in images and videos", "dependencies": [ "boost-program-options", "boost-system" ] }, "cuda": { "description": "Enable Cuda support for faster detection", "dependencies": [ "cuda" ] } } } ================================================ FILE: ports/cctz/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/cctz REF "v${VERSION}" SHA512 e3eba96482b7745b145ecfd9b3b96b09d9120bde952dfdb66d625e642a463b87c74205b1813e3c4bd9b408410bb26fb095d034ca56a4953005bf0c988ccc741e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TOOLS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/cctz/vcpkg.json ================================================ { "name": "cctz", "version": "2.5", "description": "two libraries that cooperate with to give C++ programmers all the necessary tools for computing with dates, times, and time zones in a simple and correct manner.", "homepage": "https://github.com/google/cctz", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cddlib/0001-disable-doc-target.patch ================================================ diff --git a/Makefile.am b/Makefile.am index e08cd91..bcde34b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # Directories where we can build something. -SUBDIRS = doc lib-src src +SUBDIRS = lib-src src # Install the examples into /usr/share/doc/cddlib/examples* nobase_doc_DATA = $(srcdir)/examples/* $(srcdir)/examples-ine/* $(srcdir)/examples-ine3d/* $(srcdir)/examples-ext/* ================================================ FILE: ports/cddlib/0002-disable-dd-log.patch ================================================ diff --git a/src/lcdd.c b/src/lcdd.c index 473e6c5..cafc1a5 100644 --- a/src/lcdd.c +++ b/src/lcdd.c @@ -44,7 +44,6 @@ int main(int argc, char *argv[]) dd_ErrorType err; dd_set_global_constants(); /* First, this must be called. */ - dd_log=dd_TRUE; /* Output log */ if (argc > 2) dd_DDFile2File(argv[1],argv[2],&err); diff --git a/src/scdd.c b/src/scdd.c index e9e0c59..9e6ed32 100644 --- a/src/scdd.c +++ b/src/scdd.c @@ -66,7 +66,6 @@ int main(int argc, char *argv[]) FILE *reading=NULL, *writing; dd_set_global_constants(); /* First, this must be called. */ - dd_log=dd_TRUE; /* output log */ if (argc>1) strcpy(inputfile,argv[1]); if (argc<=1 || !SetInputFile(&reading,argv[1])){ ================================================ FILE: ports/cddlib/portfile.cmake ================================================ vcpkg_download_distfile( MSVC_PATCH URLS https://github.com/cddlib/cddlib/commit/cf2c7939d6b5c40f1eb66860a9ef56015df58c8f.patch?full_index=1 SHA512 09b9ca12b768a16e3a61aa03e6223802d5fbd8020a89cd33c1648ee04ff7a66ce9056e2d773cdc853f7d8b8870d29c068192178d1a932a0f629981aa0ea2238c FILENAME pr_86.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cddlib/cddlib REF "${VERSION}" SHA512 08314d757a55065fc09ca2b514d8425b651eee2f5a195d5fbc1369acde1dc704c31a7c0e85ef3f8ec72e36f5f6a10618acef95157fa78989da96ce34bc9bc7f9 HEAD_REF master PATCHES 0001-disable-doc-target.patch # disable building docs, as they require latex 0002-disable-dd-log.patch # windows does not export global variables ${MSVC_PATCH} ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF COPY_SOURCE # ensure generated files are found ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/cddlib/vcpkg.json ================================================ { "name": "cddlib", "version-string": "0.94n", "port-version": 1, "description": "C implementation of the Double Description Method", "homepage": "https://github.com/cddlib/cddlib", "license": "GPL-2.0-or-later", "dependencies": [ "gmp", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/cdt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO artem-ogre/CDT REF "${VERSION}" SHA512 57b250a280bbe90ef919a3e857bf5fbbdf0d1d162b2b205d22bbcf90d7d7c2e327f128f0ea820963d8938ad06337966a9a606885621a5e13feae99e746c44da6 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "64-bit-index-type" CDT_USE_64_BIT_INDEX_TYPE "as-compiled-library" CDT_USE_AS_COMPILED_LIBRARY ) if (NOT CDT_USE_AS_COMPILED_LIBRARY) set(VCPKG_BUILD_TYPE "release") # header-only endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/CDT" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) if (CDT_USE_AS_COMPILED_LIBRARY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cdt/vcpkg.json ================================================ { "name": "cdt", "version": "1.4.4", "description": "Constrained Delaunay Triangulation", "homepage": "https://github.com/artem-ogre/CDT.git", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "64-bit-index-type": { "description": "64bits are used to store vertex/triangle index types" }, "as-compiled-library": { "description": "Templates for float and double will be instantiated and compiled into a library" } } } ================================================ FILE: ports/celero/fix-bin-install-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0158c4f..5be0fbc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,9 +220,11 @@ install( DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install( TARGETS celero - DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT celero-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib ) install( EXPORT celero-targets ================================================ FILE: ports/celero/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DigitalInBlue/Celero REF "v${VERSION}" SHA512 18bd6443ff09e72dca0bf98d1bc0543c4839c18239b60c0c7a8bc30c67681b97fd23e8c8892b90a9f3a63a81ed6cac794fa63d58dd60f5daae9f48fc75c8a637 HEAD_REF master PATCHES fix-bin-install-path.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CELERO_COMPILE_DYNAMIC_LIBRARIES) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCELERO_ENABLE_EXPERIMENTS=OFF -DCELERO_ENABLE_TESTS=OFF -DCELERO_COMPILE_DYNAMIC_LIBRARIES=${CELERO_COMPILE_DYNAMIC_LIBRARIES} -DCELERO_ENABLE_WARNINGS_AS_ERRORS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/celero/Export.h" "#ifdef CELERO_STATIC" "#define CELERO_STATIC\n#ifdef CELERO_STATIC") endif() file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/celero/vcpkg.json ================================================ { "name": "celero", "version": "2.9.1", "description": "Celero is a modern cross-platform (Windows, Linux, MacOS) Microbenchmarking library for C++ 11 and later.", "homepage": "https://github.com/DigitalInBlue/Celero", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cello/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(cello LANGUAGES C) include(GNUInstallDirs) file(GLOB cello_sources src/*.c) add_library(cello ${cello_sources}) target_include_directories( cello PUBLIC $ $ ) set_target_properties(cello PROPERTIES PUBLIC_HEADER include/Cello.h) if(ANDROID AND ANDROID_NATIVE_API_LEVEL LESS "33") target_compile_definitions(cello PRIVATE CELLO_NSTRACE) endif() install(TARGETS cello EXPORT unofficial-cello-config) install( EXPORT unofficial-cello-config NAMESPACE unofficial::cello:: DESTINATION share/unofficial-cello PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/cello/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orangeduck/Cello REF da28eefbc95d8bd5628e5f1c4cc12bc1b13fef4f SHA512 64825cf37223dd679b379d78475218a543690c3b78333acb906d42982261df4b9ada3a87bea183fad5e2cf220311904e657b0bf5051b141c389d5ee1d2974e5b HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/cello/vcpkg.json ================================================ { "name": "cello", "version-date": "2019-07-23", "port-version": 4, "description": "Higher level programming in C", "homepage": "https://libcello.org/", "license": "BSD-2-Clause-Views", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cereal/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO USCiLab/cereal REF v1.3.2 SHA512 98d306d6292789129675f1c5c5aedcb90cfcc1029c4482893a8f9b23f3c9755e5ed4762d7a528f215345cae6392e87cd8d89467115b6f031b41c8673d6b4b109 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJUST_INSTALL_CEREAL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cereal) # Clean file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cereal/vcpkg.json ================================================ { "name": "cereal", "version": "1.3.2", "port-version": 1, "description": "a header-only C++11 serialization library (built in support for binary, XML and JSon)", "homepage": "https://github.com/USCiLab/cereal", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ceres/0001_cmakelists_fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e49c19..4ea82bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -292,10 +292,23 @@ if (SUITESPARSE) # built with SuiteSparse support. # Check for SuiteSparse and dependencies. - find_package(SuiteSparse 4.5.6 COMPONENTS CHOLMOD SPQR - OPTIONAL_COMPONENTS Partition) + find_package(CHOLMOD REQUIRED) + include(CheckCSourceCompiles) + block(SCOPE_FOR VARIABLES) + set(CMAKE_REQUIRED_INCLUDES "") + set(CMAKE_REQUIRED_LIBRARIES SuiteSparse::CHOLMOD) + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + check_c_source_compiles([[ + #include + #ifndef CHOLMOD_HAS_PARTITION + #error "partition not enabled" + #endif + ]] SuiteSparse_Partition_FOUND) + endblock() + find_package(SPQR CONFIG REQUIRED) + find_package(SuiteSparse NAMES SuiteSparse_config REQUIRED) if (SuiteSparse_FOUND) - set(SuiteSparse_DEPENDENCY "find_dependency(SuiteSparse ${SuiteSparse_VERSION})") + set(SuiteSparse_DEPENDENCY "find_dependency(CHOLMOD CONFIG)\nfind_dependency(SPQR CONFIG)") # By default, if all of SuiteSparse's dependencies are found, Ceres is # built with SuiteSparse support. message("-- Found SuiteSparse ${SuiteSparse_VERSION}, " @@ -323,13 +336,14 @@ if (NOT SuiteSparse_Partition_FOUND) endif (NOT SuiteSparse_Partition_FOUND) if (EIGENMETIS) - find_package (METIS) + find_package (METIS NAMES metis REQUIRED) + add_library(METIS::METIS ALIAS metis) if (METIS_FOUND) # Since METIS is a private dependency of Ceres, it requires access to the # link-only METIS::METIS target to avoid undefined linker errors in projects # relying on Ceres. We do not actually need to propagate anything besides # the link libraries (such as include directories.) - set(METIS_DEPENDENCY "find_dependency(METIS ${METIS_VERSION})") + set(METIS_DEPENDENCY "find_dependency(metis CONFIG)") # METIS find module must be installed unless a package config is being used. if (NOT METIS_DIR) install(FILES ${Ceres_SOURCE_DIR}/cmake/FindMETIS.cmake @@ -433,7 +447,9 @@ else (MINIGLOG) unset(MINIGLOG_MAX_LOG_LEVEL CACHE) # Don't search with REQUIRED so that configuration continues if not found and # we can output an error messages explaining MINIGLOG option. - find_package(Glog) + find_package(GLOG NAMES glog REQUIRED) + set(FOUND_INSTALLED_GLOG_CMAKE_CONFIGURATION TRUE) + set(GLOG_LIBRARIES glog::glog) if (NOT GLOG_FOUND) message(FATAL_ERROR "Can't find Google Log (glog). Please set either: " "glog_DIR (newer CMake built versions of glog) or GLOG_INCLUDE_DIR & " diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in index ceb7e26..a5eb833 100644 --- a/cmake/CeresConfig.cmake.in +++ b/cmake/CeresConfig.cmake.in @@ -195,7 +195,7 @@ set(CERES_EIGEN_VERSION @Eigen3_VERSION@) # Search quietly to control the timing of the error message if not found. The # search should be for an exact match, but for usability reasons do a soft # match and reject with an explanation below. -find_package(Eigen3 ${CERES_EIGEN_VERSION} QUIET) +find_dependency(Eigen3 CONFIG ${CERES_EIGEN_VERSION}) if (Eigen3_FOUND) if (NOT Eigen3_VERSION VERSION_EQUAL CERES_EIGEN_VERSION) # CMake's VERSION check in FIND_PACKAGE() will accept any version >= the @@ -233,7 +233,7 @@ if (CERES_USES_MINIGLOG) "for glog, beware this will likely cause problems if glog is later linked.") else(CERES_USES_MINIGLOG) if (CERES_GLOG_WAS_BUILT_WITH_CMAKE) - find_package(glog ${CERES_GLOG_VERSION} CONFIG QUIET) + find_dependency(glog) set(GLOG_FOUND ${glog_FOUND}) else() # Version of glog against which Ceres was built was not built with CMake, diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index f9fc241..9f6f25b 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt @@ -104,15 +104,14 @@ if (SUITESPARSE AND SuiteSparse_FOUND) SuiteSparse::SPQR) if (SuiteSparse_Partition_FOUND) - list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES SuiteSparse::Partition) endif (SuiteSparse_Partition_FOUND) endif (SUITESPARSE AND SuiteSparse_FOUND) -if (SuiteSparse_Partition_FOUND OR EIGENMETIS) +if (EIGENMETIS) # Define version information for use in Solver::FullReport. add_definitions(-DCERES_METIS_VERSION="${METIS_VERSION}") list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES METIS::METIS) -endif (SuiteSparse_Partition_FOUND OR EIGENMETIS) +endif (EIGENMETIS) if (ACCELERATESPARSE AND AccelerateSparse_FOUND) list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${AccelerateSparse_LIBRARIES}) diff --git a/internal/ceres/solver_utils.cc b/internal/ceres/solver_utils.cc index 3356f3b..35a6109 100644 --- a/internal/ceres/solver_utils.cc +++ b/internal/ceres/solver_utils.cc @@ -62,7 +62,7 @@ constexpr char kVersion[] = "-suitesparse-(" CERES_SUITESPARSE_VERSION ")" #endif -#if !defined(CERES_NO_EIGEN_METIS) || !defined(CERES_NO_CHOLMOD_PARTITION) +#if !defined(CERES_NO_EIGEN_METIS) "-metis-(" CERES_METIS_VERSION ")" #endif ================================================ FILE: ports/ceres/0002_use_glog_target.patch ================================================ diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index f9fc2415..0aaabe4d 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt @@ -85,7 +85,7 @@ endif (SCHUR_SPECIALIZATIONS) SKIP_UNITY_BUILD_INCLUSION ON) if (NOT MINIGLOG AND GLOG_FOUND) - list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES}) + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES glog::glog) if (gflags_FOUND) # If glog & gflags are both found, we assume that glog was built with # gflags, as it is awkward to perform a try_compile() to verify this ================================================ FILE: ports/ceres/0004_remove_broken_fake_ba_jac.patch ================================================ diff --git a/internal/ceres/fake_bundle_adjustment_jacobian.cc b/internal/ceres/fake_bundle_adjustment_jacobian.cc index efe4d8d7..22f34059 100644 --- a/internal/ceres/fake_bundle_adjustment_jacobian.cc +++ b/internal/ceres/fake_bundle_adjustment_jacobian.cc @@ -96,25 +96,4 @@ std::unique_ptr CreateFakeBundleAdjustmentJacobian( return jacobian; } -std::pair< - std::unique_ptr>, - std::unique_ptr> -CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras, - int num_points, - int camera_size, - int landmark_size, - double visibility, - std::mt19937& rng) { - using PartitionedView = - PartitionedMatrixView<2, Eigen::Dynamic, Eigen::Dynamic>; - auto block_sparse_matrix = CreateFakeBundleAdjustmentJacobian( - num_cameras, num_points, camera_size, landmark_size, visibility, rng); - LinearSolver::Options options; - options.elimination_groups.push_back(num_points); - auto partitioned_view = - std::make_unique(options, *block_sparse_matrix); - return std::make_pair(std::move(partitioned_view), - std::move(block_sparse_matrix)); -} - } // namespace ceres::internal diff --git a/internal/ceres/fake_bundle_adjustment_jacobian.h b/internal/ceres/fake_bundle_adjustment_jacobian.h index ced1b161..0448dbf3 100644 --- a/internal/ceres/fake_bundle_adjustment_jacobian.h +++ b/internal/ceres/fake_bundle_adjustment_jacobian.h @@ -47,32 +47,6 @@ std::unique_ptr CreateFakeBundleAdjustmentJacobian( double visibility, std::mt19937& prng); -template -std::pair>, - std::unique_ptr> -CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras, - int num_points, - double visibility, - std::mt19937& rng) { - using PartitionedView = PartitionedMatrixView<2, kEBlockSize, kFBlockSize>; - auto block_sparse_matrix = CreateFakeBundleAdjustmentJacobian( - num_cameras, num_points, kFBlockSize, kEBlockSize, visibility, rng); - auto partitioned_view = - std::make_unique(*block_sparse_matrix, num_points); - return std::make_pair(std::move(partitioned_view), - std::move(block_sparse_matrix)); -} - -std::pair< - std::unique_ptr>, - std::unique_ptr> -CreateFakeBundleAdjustmentPartitionedJacobian(int num_cameras, - int num_points, - int camera_size, - int landmark_size, - double visibility, - std::mt19937& rng); - } // namespace ceres::internal #endif // CERES_INTERNAL_FAKE_BUNDLE_ADJUSTMENT_JACOBIAN ================================================ FILE: ports/ceres/0005_link_cuda_static.patch ================================================ commit d0b87157ab0e27e9e4cf2ea27967b5d619e81a76 Author: Markus Heß Date: Sat Mar 2 13:28:02 2024 +0000 Link static cuda libs when ceres is build static Change-Id: I8821a2df5302cf164b6f80d6787ae795691d6b32 diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ea82bcd..9729ccc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,7 +126,7 @@ if (APPLE) endif() # We can't have an option called 'CUDA' since that is a reserved word -- a # language definition. -option(USE_CUDA "Enable use of CUDA linear algebra solvers." ON) +set(USE_CUDA "default" CACHE STRING "Enable use of CUDA linear algebra solvers.") option(LAPACK "Enable use of LAPACK directly within Ceres." ON) # Template specializations for the Schur complement based solvers. If # compile time, binary size or compiler performance is an issue, you @@ -204,6 +204,12 @@ if (Eigen3_FOUND) endif (EIGENSPARSE) endif (Eigen3_FOUND) +if (CMAKE_VERSION VERSION_LESS 3.17) + set_property(CACHE USE_CUDA PROPERTY STRINGS OFF default) +else (CMAKE_VERSION VERSION_LESS 3.17) + set_property(CACHE USE_CUDA PROPERTY STRINGS OFF default static) +endif (CMAKE_VERSION VERSION_LESS 3.17) + if (USE_CUDA) if (CMAKE_VERSION VERSION_LESS 3.17) # On older versions of CMake (20.04 default is 3.16) FindCUDAToolkit was @@ -233,6 +239,7 @@ if (USE_CUDA) declare_imported_cuda_target(cusparse) declare_imported_cuda_target(cudart ${CUDA_LIBRARIES}) + set(CERES_CUDA_TARGET_SUFFIX "") set(CUDAToolkit_BIN_DIR ${CUDA_TOOLKIT_ROOT_DIR}/bin) else (CUDA_FOUND) @@ -252,22 +259,31 @@ if (USE_CUDA) set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80") message("-- Setting CUDA Architecture to ${CMAKE_CUDA_ARCHITECTURES}") endif() - list(APPEND CERES_CUDA_LIBRARIES - CUDA::cublas - CUDA::cudart - CUDA::cusolver - CUDA::cusparse) - set(CMAKE_CUDA_RUNTIME_LIBRARY NONE) + + if (USE_CUDA STREQUAL "static") + set(CERES_CUDA_TARGET_SUFFIX "_static") + else (USE_CUDA STREQUAL "static") + set(CERES_CUDA_TARGET_SUFFIX "") + endif (USE_CUDA STREQUAL "static") else (CUDAToolkit_FOUND) message("-- Did not find CUDA, disabling CUDA support.") update_cache_variable(USE_CUDA OFF) endif (CUDAToolkit_FOUND) endif (CMAKE_VERSION VERSION_LESS 3.17) endif (USE_CUDA) -if (NOT USE_CUDA) + +if (USE_CUDA) + list(APPEND CERES_CUDA_LIBRARIES + CUDA::cublas${CERES_CUDA_TARGET_SUFFIX} + CUDA::cudart${CERES_CUDA_TARGET_SUFFIX} + CUDA::cusolver${CERES_CUDA_TARGET_SUFFIX} + CUDA::cusparse${CERES_CUDA_TARGET_SUFFIX}) + unset (CERES_CUDA_TARGET_SUFFIX) + set(CMAKE_CUDA_RUNTIME_LIBRARY NONE) +else (USE_CUDA) message("-- Building without CUDA.") list(APPEND CERES_COMPILE_OPTIONS CERES_NO_CUDA) -endif (NOT USE_CUDA) +endif (USE_CUDA) if (LAPACK) find_package(LAPACK QUIET) diff --git a/internal/ceres/CMakeLists.txt b/internal/ceres/CMakeLists.txt index eecef260..b7e31ee6 100644 --- a/internal/ceres/CMakeLists.txt +++ b/internal/ceres/CMakeLists.txt @@ -118,11 +118,7 @@ if (ACCELERATESPARSE AND AccelerateSparse_FOUND) endif() if (USE_CUDA) - list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES - CUDA::cublas - CUDA::cudart - CUDA::cusolver - CUDA::cusparse) + list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CERES_CUDA_LIBRARIES}) set_source_files_properties(cuda_kernels_vector_ops.cu.cc PROPERTIES LANGUAGE CUDA) set_source_files_properties(cuda_kernels_bsm_to_crs.cu.cc PROPERTIES LANGUAGE CUDA) add_library(ceres_cuda_kernels STATIC cuda_kernels_vector_ops.cu.cc cuda_kernels_bsm_to_crs.cu.cc) ================================================ FILE: ports/ceres/0006_fix_cuda_architectures.patch ================================================ commit 4939da2d6bbd8652020dc970ea0405d634e3550f Author: Markus Hess Date: Thu Jun 6 12:44:55 2024 +0000 Set CMAKE_CUDA_ARCHITECTURES depending on CUDAToolkit_VERSION Compilation fails if the CUDA architecture is not supported by the installed version of the CUDA toolkit. This commit sets the CMAKE_CUDA_ARCHITECTURES depending on the the installed CUDA toolkit version. Change-Id: I4765512279ee56897388e6ea22b961aebeb0fbca diff --git a/CMakeLists.txt b/CMakeLists.txt index 9729ccc2..bfa2d8ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -255,8 +255,29 @@ if (USE_CUDA) "find_dependency(CUDAToolkit ${CUDAToolkit_VERSION})") enable_language(CUDA) if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18") - # Support Maxwell, Pascal, Volta, Turing, and Ampere GPUs. - set(CMAKE_CUDA_ARCHITECTURES "50;60;70;80") + # Support Maxwell GPUs (Default). + set(CMAKE_CUDA_ARCHITECTURES "50") + # Support other architectures depending on CUDA toolkit version. + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + # Support Pascal GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "60") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + # Support Volta GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "70") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0") + # Support Turing GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "75") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0") + # Support Ampere GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "80") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") + # Support Hopper GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "90") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "11.8") message("-- Setting CUDA Architecture to ${CMAKE_CUDA_ARCHITECTURES}") endif() ================================================ FILE: ports/ceres/0007_support_cuda_13.patch ================================================ commit d9d0c4d0e0cc560b7a3556284201537859b16fc6 Author: Mackay <1.732mackay@gmail.com> Date: Wed Aug 6 21:36:12 2025 -0400 Update CMakeLists.txt to support CUDA 13 Change-Id: I4a0a0b29a45c1108d27b6f85670c926f5dda0f5e diff --git a/CMakeLists.txt b/CMakeLists.txt index bfa2d8ff..7e7e413d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -255,17 +255,19 @@ if (USE_CUDA) "find_dependency(CUDAToolkit ${CUDAToolkit_VERSION})") enable_language(CUDA) if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18") - # Support Maxwell GPUs (Default). - set(CMAKE_CUDA_ARCHITECTURES "50") - # Support other architectures depending on CUDA toolkit version. - if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") - # Support Pascal GPUs. - list(APPEND CMAKE_CUDA_ARCHITECTURES "60") - endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") - if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") - # Support Volta GPUs. - list(APPEND CMAKE_CUDA_ARCHITECTURES "70") - endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + set(CMAKE_CUDA_ARCHITECTURES "") + if (CUDAToolkit_VERSION VERSION_LESS "13.0") + # Support Maxwell GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "50") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + # Support Pascal GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "60") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "8.0") + if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + # Support Volta GPUs. + list(APPEND CMAKE_CUDA_ARCHITECTURES "70") + endif(CUDAToolkit_VERSION VERSION_GREATER_EQUAL "9.0") + endif(CUDAToolkit_VERSION VERSION_LESS "13.0") if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "10.0") # Support Turing GPUs. list(APPEND CMAKE_CUDA_ARCHITECTURES "75") ================================================ FILE: ports/ceres/0008_support_eigen3_5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e7e413..1ab96b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,7 +182,7 @@ unset(CERES_COMPILE_OPTIONS) # Eigen. # Eigen delivers Eigen3Config.cmake since v3.3.3 -find_package(Eigen3 3.3 REQUIRED) +find_package(Eigen3 3.3...5 REQUIRED) if (Eigen3_FOUND) message("-- Found Eigen version ${Eigen3_VERSION}: ${Eigen3_DIR}") if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND diff --git a/internal/ceres/covariance_impl.cc b/internal/ceres/covariance_impl.cc index 56221945a55927aff91ab96b37a9af19514ca508..930711fd01f0a61aad88b188acad4958f777f706 100644 --- a/internal/ceres/covariance_impl.cc +++ b/internal/ceres/covariance_impl.cc @@ -724,8 +724,13 @@ bool CovarianceImpl::ComputeCovarianceValuesUsingDenseSVD() { } event_logger.AddEvent("ConvertToDenseMatrix"); +#if EIGEN_VERSION_AT_LEAST(5, 0, 0) + Eigen::BDCSVD svd( + dense_jacobian); +#else // !EIGEN_VERSION_AT_LEAST(5, 0, 0) Eigen::BDCSVD svd(dense_jacobian, Eigen::ComputeThinU | Eigen::ComputeThinV); +#endif // EIGEN_VERSION_AT_LEAST(5, 0, 0) event_logger.AddEvent("SingularValueDecomposition"); diff --git a/internal/ceres/invert_psd_matrix.h b/internal/ceres/invert_psd_matrix.h index 21ba2dc8a150725aae2a779b7551ad4b7973b379..dd3a0a34bf02f8852a7a71edbc8ac0e9a8865f51 100644 --- a/internal/ceres/invert_psd_matrix.h +++ b/internal/ceres/invert_psd_matrix.h @@ -67,7 +67,11 @@ typename EigenTypes::Matrix InvertPSDMatrix( // For a thin SVD the number of columns of the matrix need to be dynamic. using SVDMType = typename EigenTypes::Matrix; +#if EIGEN_VERSION_AT_LEAST(5, 0, 0) + Eigen::JacobiSVD svd(m); +#else // !EIGEN_VERSION_AT_LEAST(5, 0, 0) Eigen::JacobiSVD svd(m, Eigen::ComputeThinU | Eigen::ComputeThinV); +#endif // EIGEN_VERSION_AT_LEAST(5, 0, 0) return svd.solve(MType::Identity(size, size)); } ================================================ FILE: ports/ceres/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ceres-solver/ceres-solver REF 85331393dc0dff09f6fb9903ab0c4bfa3e134b01 #2.2.0 SHA512 16d3f4f3524b7532f666c0a626f1c678170698119eff3d914ade2e7cc65f25e644c2eabb618cd5805cba0fd4e08d3f64658a9f480934d8aace4089ec42b3d691 HEAD_REF master PATCHES 0001_cmakelists_fixes.patch 0004_remove_broken_fake_ba_jac.patch 0005_link_cuda_static.patch 0006_fix_cuda_architectures.patch 0007_support_cuda_13.patch 0008_support_eigen3_5.patch ) file(REMOVE "${SOURCE_PATH}/cmake/FindGflags.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindGlog.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindEigen.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindMETIS.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindSuiteSparse.cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "cuda" USE_CUDA "eigensparse" EIGENSPARSE "lapack" LAPACK "schur" SCHUR_SPECIALIZATIONS "suitesparse" SUITESPARSE ) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_UWP) list(APPEND FEATURE_OPTIONS -DMINIGLOG=ON) endif() if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() if(VCPKG_TARGET_IS_IOS) # Note: CMake uses "OSX" not just for macOS, but also iOS, watchOS and tvOS. list(APPEND FEATURE_OPTIONS "-DIOS_DEPLOYMENT_TARGET=${VCPKG_OSX_DEPLOYMENT_TARGET}") endif() # Add big object support for MinGW if(VCPKG_TARGET_IS_MINGW) list(APPEND FEATURE_OPTIONS "-DCMAKE_CXX_FLAGS=-Wa,-mbig-obj") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DEXPORT_BUILD_DIR=ON -DBUILD_BENCHMARKS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DPROVIDE_UNINSTALL_TARGET=OFF -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT_VALUE} -DVCPKG_LOCK_FIND_PACKAGE_CUDAToolkit=ON -DVCPKG_LOCK_FIND_PACKAGE_gflags=OFF # No direct use except examples+tests -DVCPKG_LOCK_FIND_PACKAGE_LAPACK=ON MAYBE_UNUSED_VARIABLES MSVC_USE_STATIC_CRT VCPKG_LOCK_FIND_PACKAGE_CUDAToolkit VCPKG_LOCK_FIND_PACKAGE_LAPACK ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Ceres") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ceres/vcpkg.json ================================================ { "name": "ceres", "version": "2.2.0", "port-version": 6, "description": "non-linear optimization package", "homepage": "https://github.com/ceres-solver/ceres-solver", "license": "Apache-2.0", "dependencies": [ "eigen3", { "name": "glog", "platform": "!ios & !uwp" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Support for CUDA based dense solvers", "dependencies": [ "cuda" ] }, "eigensparse": { "description": "Use of Eigen as a sparse linear algebra library in Ceres", "dependencies": [ "metis" ] }, "lapack": { "description": "Use Lapack in Ceres", "dependencies": [ "lapack" ] }, "schur": { "description": "Enable fixed-size Schur specializations in Ceres" }, "suitesparse": { "description": "SuiteSparse support for Ceres", "dependencies": [ { "name": "ceres", "features": [ "lapack" ] }, { "name": "suitesparse-cholmod", "default-features": false, "features": [ "matrixops" ] }, "suitesparse-config", "suitesparse-spqr" ] } } } ================================================ FILE: ports/cfitsio/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cfb85b..7dd1253 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,14 +76,19 @@ ENDIF(BUILD_SHARED_LIBS) # Find curl library, for HTTPS support: IF(USE_CURL) - FIND_PACKAGE(CURL) + FIND_PACKAGE(CURL REQUIRED) IF(CURL_FOUND) ADD_DEFINITIONS(-DCFITSIO_HAVE_CURL) ENDIF() ENDIF() IF(USE_PTHREADS) - FIND_PACKAGE(Threads REQUIRED) + IF(WIN32 AND NOT MINGW) + FIND_PACKAGE(PThreads4W REQUIRED) + ADD_DEFINITIONS(-Dstrtok_r=strtok_s) + ELSE() + FIND_PACKAGE(Threads REQUIRED) + ENDIF() ADD_DEFINITIONS(-D_REENTRANT) ENDIF(USE_PTHREADS) @@ -96,7 +101,8 @@ ENDIF(USE_BZIP2) IF(MSVC OR MINGW) SET(M_LIB "") ELSE() - FIND_LIBRARY(M_LIB m) + SET(M_LIB m) + SET(PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} -lm") ENDIF() # Support for remote file drivers is not implemented for native Windows: @@ -255,31 +261,29 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}") ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${H_FILES} ${SRC_FILES}) # Math: -TARGET_LINK_LIBRARIES(${LIB_NAME} ${M_LIB}) +TARGET_LINK_LIBRARIES(${LIB_NAME} PRIVATE ${M_LIB}) # zlib: IF (ZLIB_FOUND) - TARGET_INCLUDE_DIRECTORIES(${LIB_NAME} PUBLIC ${ZLIB_INCLUDE_DIR}) - TARGET_LINK_LIBRARIES(${LIB_NAME} ${ZLIB_LIBRARIES}) - # For cfitsio.pc.cmake: - SET (PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} -lz") + TARGET_LINK_LIBRARIES(${LIB_NAME} PRIVATE ZLIB::ZLIB) + STRING(APPEND PKG_CONFIG_REQUIRES_PRIVATE " zlib") ENDIF(ZLIB_FOUND) # cURL: IF (CURL_FOUND) - TARGET_INCLUDE_DIRECTORIES(${LIB_NAME} PUBLIC ${CURL_INCLUDE_DIRS}) - TARGET_LINK_LIBRARIES(${LIB_NAME} ${CURL_LIBRARIES}) + TARGET_LINK_LIBRARIES(${LIB_NAME} PRIVATE CURL::libcurl) # For cfitsio.pc.cmake: - SET (PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} -lcurl") + STRING(APPEND PKG_CONFIG_REQUIRES_PRIVATE " libcurl") ENDIF(CURL_FOUND) # PThreads: -IF (THREADS_FOUND) - TARGET_LINK_LIBRARIES(${LIB_NAME} Threads::Threads) +IF (PThreads4W_FOUND) + TARGET_LINK_LIBRARIES(${LIB_NAME} PUBLIC PThreads4W::PThreads4W) +ELSEIF (THREADS_FOUND) + TARGET_LINK_LIBRARIES(${LIB_NAME} PUBLIC Threads::Threads) ENDIF(THREADS_FOUND) # BZip2: -IF (BZIP2_FOUND) - TARGET_INCLUDE_DIRECTORIES(${LIB_NAME} PUBLIC ${BZIP2_INCLUDE_DIRS}) - TARGET_LINK_LIBRARIES(${LIB_NAME} ${BZIP2_LIBRARIES}) - SET (PKG_CONFIG_LIBS "${PKG_CONFIG_LIBS} -lbz2") -ENDIF(BZIP2_FOUND) +IF (BZip2_FOUND) + TARGET_LINK_LIBRARIES(${LIB_NAME} PRIVATE BZip2::BZip2) + string(APPEND PKG_CONFIG_REQUIRES_PRIVATE " bzip2") +ENDIF(BZip2_FOUND) #============================================================================== @@ -326,9 +330,10 @@ install(EXPORT cfitsioTargets DESTINATION ${ConfigPackageLocation} ) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cfitsioConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cfitsioConfig.cmake" @ONLY) install( FILES - cmake/cfitsioConfig.cmake + "${CMAKE_CURRENT_BINARY_DIR}/cfitsioConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cfitsio/cfitsioConfigVersion.cmake" DESTINATION ${ConfigPackageLocation} diff --git a/cfitsio.pc.cmake b/cfitsio.pc.cmake index 949b80e..3dce033 100644 --- a/cfitsio.pc.cmake +++ b/cfitsio.pc.cmake @@ -8,5 +8,6 @@ Description: FITS File Subroutine Library URL: https://heasarc.gsfc.nasa.gov/fitsio/ Version: @CFITSIO_MAJOR@.@CFITSIO_MINOR@.@CFITSIO_MICRO@ Libs: -L${libdir} -lcfitsio -Libs.private: @PKG_CONFIG_LIBS@ -lm +Libs.private: @PKG_CONFIG_LIBS@ +Requires.private: @PKG_CONFIG_REQUIRES_PRIVATE@ Cflags: -I${includedir} diff --git a/cmake/cfitsioConfig.cmake b/cmake/cfitsioConfig.cmake index b3c3aa3..9479ffc 100644 --- a/cmake/cfitsioConfig.cmake +++ b/cmake/cfitsioConfig.cmake @@ -1 +1,18 @@ +include(CMakeFindDependencyMacro) +if("@USE_PTHREADS@") + if(WIN32 AND NOT MINGW) + find_dependency(PThreads4W) + else() + find_dependency(Threads) + endif() +endif() +if(NOT "@BUILD_SHARED_LIBS@") + find_dependency(ZLIB) + if("@USE_CURL@") + find_dependency(CURL) + endif() + if("@USE_BZIP2@") + find_dependency(BZip2) + endif() +endif() include("${CMAKE_CURRENT_LIST_DIR}/cfitsioTargets.cmake") ================================================ FILE: ports/cfitsio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HEASARC/cfitsio REF "cfitsio-${VERSION}" SHA512 5db1b0c881169d2718cecff53c2de2ef2c93b933d48996025a0559ecff903f4aea0a0727aec0863b5eedafba4022325fcebd9092d50c427b3c1bab9a5c3fde6f HEAD_REF master PATCHES dependencies.diff ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 USE_BZIP2 curl USE_CURL pthreads USE_PTHREADS tools UTILS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DTESTS=OFF OPTIONS_DEBUG -DUTILS=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cfitsio) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES fitscopy fitsverify fpack funpack imcopy speed AUTO_CLEAN) if(EXISTS "${VCPKG_INSTALLED_DIR}/bin/smem${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tools(TOOL_NAMES smem AUTO_CLEAN) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/licenses/License.txt") ================================================ FILE: ports/cfitsio/vcpkg.json ================================================ { "name": "cfitsio", "version": "4.6.3", "description": "Library of C and Fortran subroutines for reading and writing data files in FITS (Flexible Image Transport System) data format", "homepage": "https://heasarc.gsfc.nasa.gov/fitsio/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "bzip2": { "description": "Bzip2 compression", "dependencies": [ "bzip2" ] }, "curl": { "description": "Network file access", "dependencies": [ "curl" ] }, "pthreads": { "description": "Thread-safe build (using pthreads)", "dependencies": [ { "name": "pthreads", "platform": "windows" } ] }, "tools": { "description": "Build utility programs" } } } ================================================ FILE: ports/cgal/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CGAL/cgal REF v${VERSION} SHA512 682a028aee951b631827ede9a2fe7cacebbefdf0b2cc63c25c43828eb1f749800e995079c1655b820db41157e03c9cc4286d68d66b9bb7e97a7522f6d0fae05f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCGAL_HEADER_ONLY=ON -DCGAL_INSTALL_CMAKE_DIR=share/cgal -DBUILD_TESTING=OFF -DBUILD_DOC=OFF -DCGAL_BUILD_THREE_DOC=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CGAL_BUILD_THREE_DOC CGAL_HEADER_ONLY ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() # Clean file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") else() foreach(ROOT "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE "${ROOT}/cgal_create_CMakeLists" "${ROOT}/cgal_create_cmake_script" "${ROOT}/cgal_make_macosx_app" ) endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/man") set(LICENSES "${SOURCE_PATH}/Installation/LICENSE" "${SOURCE_PATH}/Installation/LICENSE.BSL" "${SOURCE_PATH}/Installation/LICENSE.RFL" "${SOURCE_PATH}/Installation/LICENSE.GPL" "${SOURCE_PATH}/Installation/LICENSE.LGPL" ) vcpkg_install_copyright(FILE_LIST ${LICENSES}) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cgal/usage ================================================ The package cgal provides CMake targets: find_package(CGAL CONFIG REQUIRED) target_link_libraries(main PRIVATE CGAL::CGAL) ================================================ FILE: ports/cgal/vcpkg.json ================================================ { "name": "cgal", "version": "6.1.1", "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.", "homepage": "https://github.com/CGAL/cgal", "license": "GPL-3.0-or-later AND LGPL-3.0-or-later AND BSL-1.0", "supports": "!xbox", "dependencies": [ "boost-accumulators", "boost-algorithm", "boost-bimap", "boost-callable-traits", "boost-concept-check", "boost-container", "boost-core", "boost-detail", "boost-filesystem", "boost-format", "boost-functional", "boost-fusion", "boost-geometry", "boost-graph", "boost-heap", "boost-intrusive", "boost-iostreams", "boost-iterator", "boost-lambda", "boost-logic", "boost-math", "boost-mpl", "boost-multi-array", "boost-multi-index", "boost-multiprecision", "boost-numeric-conversion", "boost-optional", "boost-parameter", "boost-pool", "boost-preprocessor", "boost-property-map", "boost-property-tree", "boost-ptr-container", "boost-random", "boost-range", "boost-serialization", "boost-spirit", "boost-stl-interfaces", "boost-thread", "boost-tuple", "boost-type-traits", "boost-units", "boost-utility", "boost-variant", "gmp", "mpfr", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "qt": { "description": "Qt GUI support for CGAL", "dependencies": [ "eigen3", { "name": "qtbase", "default-features": false }, "qtdeclarative", "qtsvg" ] } } } ================================================ FILE: ports/cgicc/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.8) project (cgicc) include (CheckIncludeFiles) include(CheckSymbolExists) include (CheckCXXSourceCompiles) set (VERSION "3.2.19") execute_process (COMMAND hostname OUTPUT_VARIABLE HOST OUTPUT_STRIP_TRAILING_WHITESPACE) check_include_files (dlfcn.h HAVE_DLFCN_H) check_symbol_exists(gettimeofday sys/time.h HAVE_GETTIMEOFDAY) check_include_files (inttypes.h HAVE_INTTYPES_H) check_include_files (memory.h HAVE_MEMORY_H) check_cxx_source_compiles (" namespace test { } int main(int, char**) { using namespace ::test; }" HAVE_NAMESPACES) check_include_files (stdint.h HAVE_STDINT_H) check_include_files (stdlib.h HAVE_STDLIB_H) set (CMAKE_REQUIRED_FLAGS "-DHAVE_NAMESPACES") check_cxx_source_compiles (" #include #include #ifdef HAVE_NAMESPACES using namespace std; #endif int main () { list x; x.push_back(5); list::iterator iter = x.begin(); if (iter != x.end()) ++iter; return 0; ; return 0; }" HAVE_STL) check_include_files (strings.h HAVE_STRINGS_H) check_include_files (string.h HAVE_STRING_H) check_include_files (sys/stat.h HAVE_SYS_STAT_H) check_include_files (sys/time.h HAVE_SYS_TIME_H) check_include_files (sys/types.h HAVE_SYS_TYPES_H) check_include_files (sys/utsname.h HAVE_SYS_UTSNAME_H) check_symbol_exists (uname sys/utsname.h HAVE_UNAME) check_include_files (unistd.h HAVE_UNISTD_H) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cgicc/CgiDefs.h.in ${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h @ONLY) add_definitions (-DHAVE_CONFIG_H) set (cgicc_SOURCES cgicc/CgiEnvironment.cpp cgicc/CgiInput.cpp cgicc/CgiUtils.cpp cgicc/Cgicc.cpp cgicc/FormEntry.cpp cgicc/FormFile.cpp cgicc/HTMLAttribute.cpp cgicc/HTMLAttributeList.cpp cgicc/HTMLDoctype.cpp cgicc/HTMLElement.cpp cgicc/HTMLElementList.cpp cgicc/HTTPContentHeader.cpp cgicc/HTTPCookie.cpp cgicc/HTTPHTMLHeader.cpp cgicc/HTTPHeader.cpp cgicc/HTTPPlainHeader.cpp cgicc/HTTPRedirectHeader.cpp cgicc/HTTPResponseHeader.cpp cgicc/HTTPStatusHeader.cpp cgicc/HTTPXHTMLHeader.cpp cgicc/MStreamable.cpp cgicc/XHTMLDoctype.cpp cgicc/XMLPI.cpp) set (cgicc_HEADERS cgicc/Cgicc.h cgicc/CgiEnvironment.h cgicc/CgiInput.h cgicc/CgiUtils.h cgicc/FormEntry.h cgicc/FormFile.h cgicc/HTMLAtomicElement.h cgicc/HTMLAttribute.h cgicc/HTMLAttributeList.h cgicc/HTMLBooleanElement.h cgicc/HTMLClasses.h cgicc/HTMLDoctype.h cgicc/HTMLElement.h cgicc/HTMLElementList.h cgicc/HTTPContentHeader.h cgicc/HTTPCookie.h cgicc/HTTPHeader.h cgicc/HTTPHTMLHeader.h cgicc/HTTPPlainHeader.h cgicc/HTTPRedirectHeader.h cgicc/HTTPResponseHeader.h cgicc/HTTPStatusHeader.h cgicc/HTTPXHTMLHeader.h cgicc/MStreamable.h cgicc/XHTMLDoctype.h cgicc/XMLDeclaration.h cgicc/XMLPI.h ${CMAKE_CURRENT_BINARY_DIR}/CgiDefs.h ${CMAKE_CURRENT_BINARY_DIR}/config.h ) include_directories (. ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}) add_library (cgicc ${cgicc_SOURCES} ${cgicc_HEADERS}) if (BUILD_SHARED_LIBS) add_definitions(-DCGICC_EXPORTS) else() add_definitions(-DCGICC_STATIC) endif() install(TARGETS cgicc RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${cgicc_HEADERS} DESTINATION include/cgicc) endif() ================================================ FILE: ports/cgicc/fix-define.patch ================================================ diff --git a/cgicc/config.h.in b/cgicc/config.h.in index 6870cc2..ee7b5b4 100644 --- a/cgicc/config.h.in +++ b/cgicc/config.h.in @@ -76,7 +76,7 @@ #undef HAVE__BOOL /* The host system cgicc was configured for */ -#undef HOST +#cmakedefine HOST "@HOST@" /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR @@ -106,7 +106,7 @@ #undef STDC_HEADERS /* Version number of package */ -#undef VERSION +#cmakedefine VERSION "@VERSION@" /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ ================================================ FILE: ports/cgicc/fix-static-build.patch ================================================ diff --git a/cgicc/CgiDefs.h.in b/cgicc/CgiDefs.h.in index 71b70ad..3793cd8 100644 --- a/cgicc/CgiDefs.h.in +++ b/cgicc/CgiDefs.h.in @@ -47,7 +47,9 @@ #ifdef WIN32 // export library symbols -# ifdef CGICC_EXPORTS +# ifdef CGICC_STATIC +# define CGICC_API +# elif defined(CGICC_EXPORTS) # define CGICC_API __declspec(dllexport) # else # define CGICC_API __declspec(dllimport) ================================================ FILE: ports/cgicc/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/cgicc/cgicc-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/cgicc/cgicc-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/cgicc/cgicc-${VERSION}.tar.gz" FILENAME "cgicc-${VERSION}.tar.gz" SHA512 e57b8f30b26b29008bcf1ffc3b2d272bdbd77848fb02e24912b6182ae90923d5933b9d204c556ac922a389f73ced465065b6e2202fc0c3d008e0e6038e7c8052 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-define.patch fix-static-build.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 # 17 removes std::unary_function OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(READ "${CURRENT_PACKAGES_DIR}/include/cgicc/CgiDefs.h" CGI_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) string(REPLACE "# ifdef CGICC_STATIC" "# if 0" CGI_H "${CGI_H}") else() string(REPLACE "# ifdef CGICC_STATIC" "# if 1" CGI_H "${CGI_H}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/cgicc/CgiDefs.h" "${CGI_H}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.DOC") ================================================ FILE: ports/cgicc/vcpkg.json ================================================ { "name": "cgicc", "version": "3.2.20", "port-version": 2, "description": "GNU Cgicc is an ANSI C++ compliant class library that greatly simplifies the creation of CGI applications for the World Wide Web", "homepage": "https://www.gnu.org/software/cgicc/", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cglm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO recp/cglm REF "v${VERSION}" SHA512 5493b9c19a9aae556e579f41687d8e7184aa0b03d4c5358975521102fe8dbb456493f858512564b2c30093bbd2ea801f0280592a54cc5454045fcac762e71eaf ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CGLM_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CGLM_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCGLM_SHARED=${CGLM_BUILD_SHARED}" "-DCGLM_STATIC=${CGLM_BUILD_STATIC}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/cglm") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cglm/usage ================================================ cglm provides CMake targets: find_package(cglm CONFIG REQUIRED) target_link_libraries(main PRIVATE cglm::cglm) ================================================ FILE: ports/cglm/vcpkg.json ================================================ { "name": "cglm", "version-semver": "0.9.6", "description": "Highly Optimized Graphics Math (glm) for C", "homepage": "https://github.com/recp/cglm", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cgltf/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkuhlmann/cgltf REF "v${VERSION}" SHA512 9474b2ae79ac34015b21e4a20813bfc14ad037636304a28ce91011989202a11568b7f7201bca745701163e2c1077425065782a2aa265d53fe6edeb2e7d0e0b0a HEAD_REF master ) file(COPY "${SOURCE_PATH}/cgltf.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/cgltf_write.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cgltf/vcpkg.json ================================================ { "name": "cgltf", "version": "1.15", "description": "Single-file glTF 2.0 loader and writer written in C99", "homepage": "https://github.com/jkuhlmann/cgltf", "license": "MIT" } ================================================ FILE: ports/cgns/cgnsconfig.h ================================================ #ifndef CGNSCONFIG_H #define CGNSCONFIG_H #include "cgnstypes.h" #endif ================================================ FILE: ports/cgns/hdf5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a400b8..6bc5d6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -261,7 +261,8 @@ endif () option(CGNS_ENABLE_HDF5 "Enable or disable HDF5 interface" "ON") if (CGNS_ENABLE_HDF5) - if (CGNS_BUILD_SHARED) + find_package(hdf5 CONFIG REQUIRED) + if (TARGET hdf5::hdf5-shared) set (CG_HDF5_LINK_TYPE "shared") set (CG_HDF5_LINK_TYPE_UPPER "SHARED") else () diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f21eecb..fc3ad34 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -597,7 +597,7 @@ add_library(cgns_static STATIC ${cgns_FILES} $<$:$< add_library(CGNS::cgns-static ALIAS cgns_static) # Needed to work around a CMake > 3.8 bug on Windows with MSVS and Intel Fortran set_property(TARGET cgns_static PROPERTY LINKER_LANGUAGE C) -target_link_libraries(cgns_static PRIVATE $<$:hdf5-${CG_HDF5_LINK_TYPE}>) +target_link_libraries(cgns_static PRIVATE $<$:${HDF5_LIBRARY}>) # Build a shared version of the library if(CGNS_BUILD_SHARED) @@ -614,7 +614,7 @@ if(CGNS_BUILD_SHARED) target_compile_definitions(cgns_shared INTERFACE -DUSE_DLL) endif () if (CGNS_ENABLE_HDF5 AND HDF5_LIBRARY) - target_link_libraries(cgns_shared PUBLIC hdf5-${CG_HDF5_LINK_TYPE} $<$>:${CMAKE_DL_LIBS}>) + target_link_libraries(cgns_shared PUBLIC ${HDF5_LIBRARY} $<$>:${CMAKE_DL_LIBS}>) if(HDF5_NEED_ZLIB AND ZLIB_LIBRARY) target_link_libraries(cgns_shared PUBLIC ${ZLIB_LIBRARY}) endif() diff --git a/src/cgns-config.cmake.in b/src/cgns-config.cmake.in index 12d9b17..23f2d99 100644 --- a/src/cgns-config.cmake.in +++ b/src/cgns-config.cmake.in @@ -1,5 +1,10 @@ @PACKAGE_INIT@ +if("@CGNS_ENABLE_HDF5@") + include(CMakeFindDependencyMacro) + find_dependency(hdf5 CONFIG) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/cgns-targets.cmake") check_required_components(cgns) ================================================ FILE: ports/cgns/install-lib-linkage.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fc3ad34..bef4944 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -697,6 +697,8 @@ endif() set (install_targets cgns_static) if(CGNS_BUILD_SHARED) + set_target_properties(${install_targets} PROPERTIES EXCLUDE_FROM_ALL 1) + set(install_targets "") set(install_targets ${install_targets} cgns_shared) endif () # Set the install path of the static and shared library ================================================ FILE: ports/cgns/linux_lfs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 46446da8a..a3d8cd98f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,6 +116,7 @@ if (CGNS_ENABLE_LFS) else () check_symbol_exists(open64 "sys/types.h;sys/stat.h;unistd.h" HAVE_OPEN64) check_symbol_exists(lseek64 "sys/types.h;unistd.h" HAVE_LSEEK64) + add_definitions(-D_FILE_OFFSET_BITS=64 -D__LARGEFILE64_SOURCE -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE) endif () if (HAVE_OPEN64) add_compile_definitions(HAVE_OPEN64) ================================================ FILE: ports/cgns/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CGNS/CGNS REF "v${VERSION}" SHA512 f0a3f82824d81e2db4c992fc41e91c53158898fbf0b342c0c857e5e3f02d081df3822035b9eb558fe12c48ce36e4123810adc11f9b85e60e76e7de7f35a56162 HEAD_REF develop PATCHES hdf5.patch install-lib-linkage.diff linux_lfs.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "fortran" CGNS_ENABLE_FORTRAN "hdf5" CGNS_ENABLE_HDF5 "lfs" CGNS_ENABLE_LFS "legacy" CGNS_ENABLE_LEGACY "tests" CGNS_ENABLE_TESTS ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CGNS_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCGNS_BUILD_SHARED=${CGNS_BUILD_SHARED} -DCGNS_ENABLE_SCOPING:BOOL=ON OPTIONS_RELEASE -DCMAKE_TRY_COMPILE_CONFIGURATION=Release OPTIONS_DEBUG -DCMAKE_TRY_COMPILE_CONFIGURATION=Debug ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/cgns") set(TOOLS "cgnsupdate") if("hdf5" IN_LIST FEATURES) list(APPEND TOOLS "adf2hdf" "hdf2adf") endif() if(VCPKG_TARGET_IS_WINDOWS) list(TRANSFORM TOOLS APPEND ".bat") endif() foreach(TOOL IN LISTS TOOLS) file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}") endforeach() vcpkg_copy_tools( TOOL_NAMES cgnscheck cgnscompress cgnsconvert cgnsdiff cgnslist cgnsnames AUTO_CLEAN ) file(REMOVE "${CURRENT_PACKAGES_DIR}/include/cgnsBuild.defs" "${CURRENT_PACKAGES_DIR}/include/cgnsconfig.h") file(INSTALL "${CURRENT_PORT_DIR}/cgnsconfig.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # the include is all that is needed if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cgnslib.h" "defined(USE_DLL)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/cgns/usage ================================================ cgns provides CMake targets: find_package(cgns CONFIG REQUIRED) target_link_libraries(main PRIVATE $,CGNS::cgns_shared,CGNS::cgns_static>) ================================================ FILE: ports/cgns/vcpkg.json ================================================ { "name": "cgns", "version-semver": "4.5.1", "description": "The CFD General Notation System (CGNS) provides a standard for recording and recovering computer data associated with the numerical solution of fluid dynamics equations.", "homepage": "https://cgns.org", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "hdf5", { "name": "lfs", "platform": "!osx" } ], "features": { "fortran": { "description": "Enable fortran support (not yet implemented)" }, "hdf5": { "description": "Enable hdf5 support", "dependencies": [ { "name": "hdf5", "default-features": false } ] }, "legacy": { "description": "Enable legacy support" }, "lfs": { "description": "Enable LFS support" }, "mpi": { "description": "Enable MPI support", "dependencies": [ { "name": "cgns", "default-features": false, "features": [ "hdf5" ] }, { "name": "hdf5", "default-features": false, "features": [ "parallel" ] } ] }, "tests": { "description": "Build tests" } } } ================================================ FILE: ports/chaiscript/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ChaiScript/ChaiScript REF v6.1.0 SHA512 7728abd8d3e1e8007f4d95c8065ba5a9154583bcd1d493bfd96d608ff91f4c9bb23e538378b77c1cfd6c637d6b4885af94ac0a2a9a34b6bae19581d9f1a831cc HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/chaiscript/vcpkg.json ================================================ { "name": "chaiscript", "version": "6.1.0", "port-version": 3, "description": "Embedded Scripting Language Designed for C++", "homepage": "https://github.com/ChaiScript/ChaiScript" } ================================================ FILE: ports/chakracore/avoid_msvc_internal_STRINGIZE.patch ================================================ diff --git a/bin/NativeTests/stdafx.h b/bin/NativeTests/stdafx.h index c7a021c..77f8299 100644 --- a/bin/NativeTests/stdafx.h +++ b/bin/NativeTests/stdafx.h @@ -25,11 +25,16 @@ #define DebugOnly(x) x +#if !defined(CHAKRACORE_STRINGIZE) +#define CHAKRACORE_STRINGIZE_IMPL(x) #x +#define CHAKRACORE_STRINGIZE(x) CHAKRACORE_STRINGIZE_IMPL(x) +#endif + #define AssertMsg(exp, comment) \ do { \ if (!(exp)) \ { \ - fprintf(stderr, "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, _STRINGIZE(exp), comment); \ + fprintf(stderr, "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, CHAKRACORE_STRINGIZE(exp), comment); \ fflush(stderr); \ DebugBreak(); \ } \ diff --git a/bin/ch/stdafx.h b/bin/ch/stdafx.h index 450a33d..7c5ecc2 100644 --- a/bin/ch/stdafx.h +++ b/bin/ch/stdafx.h @@ -57,16 +57,16 @@ #if defined(DBG) -#define _STRINGIZE_(x) #x -#if !defined(_STRINGIZE) -#define _STRINGIZE(x) _STRINGIZE_(x) +#if !defined(CHAKRACORE_STRINGIZE) +#define CHAKRACORE_STRINGIZE_IMPL(x) #x +#define CHAKRACORE_STRINGIZE(x) CHAKRACORE_STRINGIZE_IMPL(x) #endif #define AssertMsg(exp, comment) \ do { \ if (!(exp)) \ { \ - fprintf(stderr, "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, _STRINGIZE(exp), comment); \ + fprintf(stderr, "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, CHAKRACORE_STRINGIZE(exp), comment); \ fflush(stderr); \ DebugBreak(); \ } \ diff --git a/pal/inc/assert_only.h b/pal/inc/assert_only.h index eef0e62..644460c 100644 --- a/pal/inc/assert_only.h +++ b/pal/inc/assert_only.h @@ -6,20 +6,22 @@ // PAL free Assert definitions #ifdef DEBUG -#define _QUOTE_(s) #s -#define _STRINGIZE_(s) _QUOTE_(s) +#if !defined(CHAKRACORE_STRINGIZE) +#define CHAKRACORE_STRINGIZE_IMPL(x) #x +#define CHAKRACORE_STRINGIZE(x) CHAKRACORE_STRINGIZE_IMPL(x) +#endif #ifndef __ANDROID__ #define _ERR_OUTPUT_(condition, comment) \ fprintf(stderr, "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, \ - _STRINGIZE_(condition), comment); \ + CHAKRACORE_STRINGIZE(condition), comment); \ fflush(stderr); #else // ANDROID #include #define _ERR_OUTPUT_(condition, comment) \ __android_log_print(ANDROID_LOG_ERROR, "chakracore-log", \ "ASSERTION (%s, line %d) %s %s\n", __FILE__, __LINE__, \ - _STRINGIZE_(condition), comment); + CHAKRACORE_STRINGIZE(condition), comment); #endif #define _Assert_(condition, comment) \ ================================================ FILE: ports/chakracore/no-warning-as-error.props ================================================ false ================================================ FILE: ports/chakracore/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/ChakraCore REF 2af598f04ab508f9231d6e26f0f82f5a57561413 SHA512 a42138cb5906d8f6cbdab32fad042f626bacb62450839f66d6b27831fcd5bd93039f68423c82d460cf1147ce82908c04595442f90be3bf67e2066547d0fe0291 HEAD_REF master PATCHES avoid_msvc_internal_STRINGIZE.patch ) set(BUILDTREE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(additional_options NO_TOOLCHAIN_PROPS) # don't know how to fix the linker error about __guard_check_icall_thunk endif() if(VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(PLATFORM_ARG PLATFORM x86) # it's x86, not Win32 in sln file endif() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH Build/Chakra.Core.sln OPTIONS "/p:CustomBeforeMicrosoftCommonTargets=${CMAKE_CURRENT_LIST_DIR}/no-warning-as-error.props" ${PLATFORM_ARG} ${additional_options} ) file(GLOB_RECURSE LIB_FILES "${CURRENT_PACKAGES_DIR}/lib/*.lib") file(GLOB_RECURSE DEBUG_LIB_FILES "${CURRENT_PACKAGES_DIR}/debug/lib/*.lib") foreach(file ${LIB_FILES} ${DEBUG_LIB_FILES}) if(NOT file MATCHES "ChakraCore.lib") file(REMOVE ${file}) endif() endforeach() else() if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(CHAKRACORE_TARGET_ARCH amd64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(CHAKRACORE_TARGET_ARCH x86) endif() if (VCPKG_TARGET_IS_LINUX) message(WARNING "${PORT} requires Clang from the system package manager, this can be installed on Ubuntu systems via sudo apt install clang") endif() file(MAKE_DIRECTORY "${BUILDTREE_PATH}-dbg") if(NOT DEFINED VCPKG_BUILD_TYPE) list(APPEND configs "debug") execute_process( COMMAND bash "build.sh" "--arch=${CHAKRACORE_TARGET_ARCH}" "--debug" "-j=${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${SOURCE_PATH}" OUTPUT_VARIABLE CHAKRA_BUILD_SH_OUT ERROR_VARIABLE CHAKRA_BUILD_SH_ERR RESULT_VARIABLE CHAKRA_BUILD_SH_RES ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE ) endif() file(MAKE_DIRECTORY "${BUILDTREE_PATH}-rel") list(APPEND configs "release") execute_process( COMMAND bash "build.sh" "--arch=${CHAKRACORE_TARGET_ARCH}" "-j=${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${SOURCE_PATH}" OUTPUT_VARIABLE CHAKRA_BUILD_SH_OUT ERROR_VARIABLE CHAKRA_BUILD_SH_ERR RESULT_VARIABLE CHAKRA_BUILD_SH_RES ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE ) endif() file(INSTALL "${SOURCE_PATH}/lib/Jsrt/ChakraCore.h" "${SOURCE_PATH}/lib/Jsrt/ChakraCommon.h" "${SOURCE_PATH}/lib/Jsrt/ChakraDebug.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(INSTALL "${BUILDTREE_PATH}-rel/lib/Jsrt/ChakraCommonWindows.h" "${BUILDTREE_PATH}-rel/lib/Jsrt/ChakraCoreWindows.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) else() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(INSTALL "${SOURCE_PATH}/out/Debug/libChakraCore.so" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) file(INSTALL "${SOURCE_PATH}/out/Release/libChakraCore.so" DESTINATION ${CURRENT_PACKAGES_DIR}/bin) else() file(INSTALL "${SOURCE_PATH}/out/Debug/lib/libChakraCoreStatic.a" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL "${SOURCE_PATH}/out/Release/lib/libChakraCoreStatic.a" DESTINATION ${CURRENT_PACKAGES_DIR}/lib) endif() set(out_dir_release "${SOURCE_PATH}/out/Release") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${out_dir_release}/ch" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/chakracore" ) vcpkg_copy_tools(TOOL_NAMES ch SEARCH_DIR "${out_dir_release}" ) endif() endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-chakracore-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" ) ================================================ FILE: ports/chakracore/unofficial-chakracore-config.cmake ================================================ if(NOT TARGET unofficial::chakracore::chakracore) add_library(unofficial::chakracore::chakracore UNKNOWN IMPORTED) find_path(ChakraCore_INCLUDE_DIR NAMES ChakraCore.h) set_target_properties(unofficial::chakracore::chakracore PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ChakraCore_INCLUDE_DIR}" ) find_library(ChakraCore_LIBRARY_RELEASE NAMES ChakraCore PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH REQUIRED) find_library(ChakraCore_LIBRARY_DEBUG NAMES ChakraCore PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::chakracore::chakracore PROPERTIES IMPORTED_LOCATION_DEBUG "${ChakraCore_LIBRARY_DEBUG}" IMPORTED_LOCATION_RELEASE "${ChakraCore_LIBRARY_RELEASE}" IMPORTED_CONFIGURATIONS "Release;Debug" ) endif() ================================================ FILE: ports/chakracore/vcpkg.json ================================================ { "name": "chakracore", "version-date": "2022-11-09", "port-version": 7, "description": "Core part of the Chakra Javascript engine", "homepage": "https://github.com/Microsoft/ChakraCore", "license": "MIT", "supports": "!osx & !uwp & (linux | !static)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-msbuild", "host": true, "features": [ "pkg-config" ], "platform": "windows" } ] } ================================================ FILE: ports/charls/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO team-charls/charls REF "${VERSION}" SHA512 b266b3f56f099419e75b301607db36475ffd4a76142431c74f94c60d2d2f1b1f278625dfd141bf986dcc60d5be4ec86f0ddc7cadd2eafaa7db201f9c0796bfda HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCHARLS_BUILD_TESTS=OFF -DCHARLS_BUILD_SAMPLES=OFF -DCHARLS_BUILD_FUZZ_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/charls) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/charls/vcpkg.json ================================================ { "name": "charls", "version": "2.4.3", "description": "CharLS, a C++ JPEG-LS library implementation.", "homepage": "https://github.com/team-charls/charls", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/chartdir/Config.cmake.in ================================================ get_filename_component(_chartdir_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_chartdir_root "${_chartdir_root}" PATH) get_filename_component(_chartdir_root "${_chartdir_root}" PATH) set(_chartdir_lib "${_chartdir_root}/lib/@CHARTDIR_LIB@") if (EXISTS "${_chartdir_lib}") add_library(chartdir UNKNOWN IMPORTED) set_target_properties(chartdir PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_chartdir_root}/include") set_target_properties(chartdir PROPERTIES IMPORTED_LOCATION "${_chartdir_lib}") set_property(TARGET chartdir APPEND PROPERTY IMPORTED_CONFIGURATIONS) else() set(chartdir_FOUND FALSE) endif() unset(_chartdir_lib) unset(_chartdir_root) ================================================ FILE: ports/chartdir/chartdir.h ================================================ #ifndef __CHARTDIR_H__ #define __CHARTDIR_H__ #include #endif // __CHARTDIR_H__ ================================================ FILE: ports/chartdir/portfile.cmake ================================================ # ChartDirector's DLL interface only contains primitive types, so it is CRT agnostic. if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") message(STATUS "Note: ${PORT} only supports dynamic library linkage. Building dynamic library.") set(VCPKG_LIBRARY_LINKAGE dynamic) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile(ARCHIVE_FILE URLS "https://www.advsofteng.com/vcpkg/chartdir_cpp_win_7.0.0.zip" FILENAME "chartdir_cpp_win-7.0.0.zip" SHA512 e5b5d387cff693a7f5ee98c2d2df75f421129b006e4324ae30ace0cbaac58867f048868ddfacdb3224c7165c8f27219c4273f3c778be3330d39ef95260d4186b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE_FILE}" SOURCE_BASE 7.0.0 ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(LIBDIR "${SOURCE_PATH}/lib64") else() set(LIBDIR "${SOURCE_PATH}/lib32") endif() file(COPY "${LIBDIR}/chartdir70.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY "${LIBDIR}/chartdir70.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${LIBDIR}/chartdir70.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY "${LIBDIR}/chartdir70.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(CHARTDIR_LIB "chartdir70.lib") elseif(VCPKG_TARGET_IS_OSX) vcpkg_download_distfile(ARCHIVE_FILE URLS "https://www.advsofteng.com/vcpkg/chartdir_cpp_mac_7.0.0.tar.gz" FILENAME "chartdir_cpp_mac-7.0.0.tar.gz" SHA512 fd46ac45e8906854ededb9e30ee3ba8bdd05588e6ca7c9fdf140254ee637d32565417d799da33b23228f1ade8111fcae037eed4cf978a11d35e70ab8861214a2 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE_FILE}" SOURCE_BASE 7.0.0 ) file(COPY "${SOURCE_PATH}/lib/libchartdir.7.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/lib/libchartdir.7.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(CHARTDIR_LIB "libchartdir.7.dylib") elseif(VCPKG_TARGET_IS_LINUX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(ARCHIVE_FILE URLS "https://www.advsofteng.com/vcpkg/chartdir_cpp_linux_64_7.0.0.tar.gz" FILENAME "chartdir_cpp_linux_64-7.0.0.tar.gz" SHA512 ea2e05f28dd9647fed49feaf130d8034065067463965f144b3fae4eae482579b1ecf528dc86d1b3602887d5ca0c3b1569404489b0f4cb2300b798fed940cd467 ) else() vcpkg_download_distfile(ARCHIVE_FILE URLS "https://www.advsofteng.com/vcpkg/chartdir_cpp_linux_7.0.0.tar.gz" FILENAME "chartdir_cpp_linux-7.0.0.tar.gz" SHA512 54720fb431fa0fb34be3a187ec3886b0f2a7307ea52a0415fab8513117a157f64a8c0e0b01304aac1d313e4557768242e6b12002509fde2e5303d930c78c0e03 ) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE_FILE}" SOURCE_BASE 7.0.0 ) file(COPY "${SOURCE_PATH}/lib/libchartdir.so.7.0.0" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/lib/libchartdir.so.7.0.0" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(CHARTDIR_LIB "libchartdir.so.7.0.0") file(COPY "${SOURCE_PATH}/lib/fonts" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() file(GLOB HEADERS "${SOURCE_PATH}/include/*.h") file(COPY ${HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/chartdir.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/chartdir-config.cmake" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/chartdir/usage ================================================ The package chartdir provides CMake targets: find_package(chartdir CONFIG REQUIRED) target_link_libraries(main PRIVATE chartdir) ================================================ FILE: ports/chartdir/vcpkg.json ================================================ { "name": "chartdir", "version": "7.0.0", "port-version": 8, "description": "ChartDirector is a powerful chart component for creating professional looking charts for web and windows applications.", "homepage": "https://www.advsofteng.com/", "license": null, "supports": "(windows & !uwp & (x86 | x64)) | osx | linux" } ================================================ FILE: ports/check/fix-lib-path.patch ================================================ diff --git a/doc/example/src/CMakeLists.txt b/doc/example/src/CMakeLists.txt index b5e211e..2a92a1a 100644 --- a/doc/example/src/CMakeLists.txt +++ b/doc/example/src/CMakeLists.txt @@ -18,7 +18,7 @@ target_link_libraries(main money) install(TARGETS money RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + LIBRARY DESTINATION lib/manual-link + ARCHIVE DESTINATION lib/manual-link) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/money.h DESTINATION include) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 38cbc53..d8a4272 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -75,5 +75,11 @@ set(HEADERS libcompat.h) add_library(compat STATIC ${SOURCES} ${HEADERS}) +install(TARGETS compat + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib/manual-link + ARCHIVE DESTINATION lib/manual-link +) + # vim: shiftwidth=2:softtabstop=2:tabstop=2:expandtab:autoindent diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4a02dbe..3bf2fa6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -191,7 +191,7 @@ if(NOT THIS_IS_SUBPROJECT) install(TARGETS check checkShared EXPORT check-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) ================================================ FILE: ports/check/linkage.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4a02dbe..3e147e4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -188,7 +188,14 @@ target_include_directories(checkShared ) if(NOT THIS_IS_SUBPROJECT) - install(TARGETS check checkShared + if(BUILD_SHARED_LIBS) + set(lib checkShared) + set_target_properties(check PROPERTIES EXCLUDE_FROM_ALL 1) + else() + set(lib check) + set_target_properties(checkShared PROPERTIES EXCLUDE_FROM_ALL 1) + endif() + install(TARGETS ${lib} EXPORT check-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link ================================================ FILE: ports/check/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libcheck/check REF 11970a7e112dfe243a2e68773f014687df2900e8 # 0.15.2 SHA512 210c9617fa1c1ce16bef983b0e6cb587b1774c3f7ce27a53ca7799642dc7a14be8de567d69dc0e57845684c6f7991d772c73654f63c8755afda3b37a35c7156e HEAD_REF master PATCHES fix-lib-path.patch linkage.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCHECK_ENABLE_GCOV=OFF -DCHECK_ENABLE_TESTS=OFF -DCHECK_ENABLE_TIMEOUT_TESTS=OFF -DENABLE_MEMORY_LEAKING_TESTS=OFF -DINSTALL_CHECKMK=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/check) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/check.h" "#define CK_DLL_EXP" "#define CK_DLL_EXP __declspec(dllimport)") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/check/usage ================================================ check provides CMake targets: find_package(check CONFIG REQUIRED) target_link_libraries(main PRIVATE $,Check::check,Check::checkShared>) ================================================ FILE: ports/check/vcpkg.json ================================================ { "name": "check", "version": "0.15.2", "port-version": 5, "description": "A unit testing framework for C", "homepage": "https://github.com/libcheck/check", "license": "LGPL-2.1-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/chenjunfu2-nbt-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chenjunfu2/NBT_CPP REF "v${VERSION}" HEAD_REF master SHA512 a8b8a26ed55ca0f0c1975e069725208f84edbcc3e68e0f660d63c5e063657a4a52e27feac076e3902a50cd93cb3105119aead83c2436b416ca6fd19b6512af9d ) # install file(INSTALL "${SOURCE_PATH}/include/nbt_cpp/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/nbt_cpp" FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h" PATTERN "vcpkg_config.h" EXCLUDE ) # vcpkg_config set(CONFIG_HEADER_CONTENT "#pragma once\n\n") set(CONFIG_HEADER_CONTENT "${CONFIG_HEADER_CONTENT}//Auto-generated by vcpkg - DO NOT EDIT\n\n") if("zlib" IN_LIST FEATURES) set(CONFIG_HEADER_CONTENT "${CONFIG_HEADER_CONTENT}//use zlib\n") set(CONFIG_HEADER_CONTENT "${CONFIG_HEADER_CONTENT}#define CJF2_NBT_CPP_USE_ZLIB\n\n") endif() if("xxhash" IN_LIST FEATURES) set(CONFIG_HEADER_CONTENT "${CONFIG_HEADER_CONTENT}//use xxhash\n") set(CONFIG_HEADER_CONTENT "${CONFIG_HEADER_CONTENT}#define CJF2_NBT_CPP_USE_XXHASH\n\n") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/nbt_cpp/vcpkg_config.h" "${CONFIG_HEADER_CONTENT}") # copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/chenjunfu2-nbt-cpp/vcpkg.json ================================================ { "name": "chenjunfu2-nbt-cpp", "version": "2.0.0", "description": "A header-only C++ library for [NBT(Named Binary Tag)]", "homepage": "https://github.com/chenjunfu2/NBT_CPP", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "xxhash": { "description": "Enable XXHASH support for hash functionality", "dependencies": [ "xxhash" ] }, "zlib": { "description": "Enable ZLIB support for compression", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/chipmunk/export-targets.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 34882d1..d47c303 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,7 +31,9 @@ if(BUILD_SHARED) # need to explicitly link to the math library because the CMake/Android toolchains may not do it automatically target_link_libraries(chipmunk m) endif(ANDROID OR UNIX) - install(TARGETS chipmunk RUNTIME DESTINATION ${BIN_INSTALL_DIR} + target_include_directories(chipmunk INTERFACE $) + install(TARGETS chipmunk EXPORT unofficial-chipmunk-config + RUNTIME DESTINATION ${BIN_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) endif(BUILD_SHARED) @@ -46,9 +48,12 @@ if(BUILD_STATIC) set_target_properties(chipmunk_static PROPERTIES LINKER_LANGUAGE CXX) endif(MSVC) # Sets chipmunk_static to output "libchipmunk.a" not "libchipmunk_static.a" - set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk) + set_target_properties(chipmunk_static PROPERTIES OUTPUT_NAME chipmunk EXPORT_NAME chipmunk) + target_include_directories(chipmunk_static INTERFACE $) if(INSTALL_STATIC) - install(TARGETS chipmunk_static ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) + install(TARGETS chipmunk_static EXPORT unofficial-chipmunk-config + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) endif(INSTALL_STATIC) endif(BUILD_STATIC) @@ -57,3 +62,9 @@ if(BUILD_SHARED OR INSTALL_STATIC) install(FILES ${chipmunk_public_header} DESTINATION include/chipmunk) install(FILES ${chipmunk_constraint_header} DESTINATION include/chipmunk/constraints) endif(BUILD_SHARED OR INSTALL_STATIC) + +install(EXPORT unofficial-chipmunk-config + FILE unofficial-chipmunk-config.cmake + NAMESPACE unofficial::chipmunk:: + DESTINATION share/unofficial-chipmunk +) ================================================ FILE: ports/chipmunk/portfile.cmake ================================================ vcpkg_download_distfile( SYSCTL_REMOVED_PATCH URLS https://github.com/slembcke/Chipmunk2D/commit/9a051e6fb970c7afe09ce2d564c163b81df050a8.patch?full_index=1 SHA512 54ec8766529d301ea35e8e0e7f7e9803101454d0f3655f7be87b6c81414a71e6fd269c14cf1d89902eebea78bb20526b0e4da4c53cf660d169ebabe46dadd059 FILENAME 9a051e6fb970c7afe09ce2d564c163b81df050a8.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO slembcke/Chipmunk2D REF "Chipmunk-${VERSION}" SHA512 edd16544a572c8f7654c99d6420aefe2f73ce2630f3e2e969f17b4980a8ea4044b5738f4a3cefbe0edd7bb4cd039a70748773b48cd59df12a09123eca9f451e4 HEAD_REF master PATCHES "${SYSCTL_REMOVED_PATCH}" export-targets.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KEYSTONE_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KEYSTONE_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DEMOS=OFF -DBUILD_SHARED=${KEYSTONE_BUILD_SHARED} -DBUILD_STATIC=${KEYSTONE_BUILD_STATIC} -DINSTALL_STATIC=${KEYSTONE_BUILD_STATIC} ) vcpkg_cmake_install() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") endif() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-chipmunk) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/chipmunk/vcpkg.json ================================================ { "name": "chipmunk", "version": "7.0.3", "port-version": 7, "description": "A fast and lightweight 2D game physics library.", "homepage": "https://github.com/slembcke/Chipmunk2D", "license": "MIT", "supports": "!(arm & !arm64 & android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/chmlib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(chm C) include (CheckIncludeFiles) check_include_files(strings.h HAVE_STRINGS_H) # for ffs add_library(chm src/lzx.c src/chm_lib.c) if(HAVE_STRINGS_H) target_compile_definitions(chm PRIVATE CHMLIB_HAVE_STRINGS_H) endif() if(BUILD_TOOLS) link_libraries(chm) add_executable(enum_chmLib src/enum_chmLib.c) add_executable(enumdir_chmLib src/enumdir_chmLib.c) add_executable(extract_chmLib src/extract_chmLib.c) install(TARGETS enum_chmLib extract_chmLib enumdir_chmLib RUNTIME DESTINATION tools/chmlib LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() install(TARGETS chm RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) ================================================ FILE: ports/chmlib/all-platforms.patch ================================================ diff --git a/src/chm_lib.c b/src/chm_lib.c index 6c6736c..d532691 100644 --- a/src/chm_lib.c +++ b/src/chm_lib.c @@ -175,8 +175,13 @@ typedef unsigned long UInt64; #else -/* yielding an error is preferable to yielding incorrect behavior */ -#error "Please define the sized types for your platform in chm_lib.c" +typedef unsigned char UChar; +typedef int16_t Int16; +typedef uint16_t UInt16; +typedef int32_t Int32; +typedef uint32_t UInt32; +typedef int64_t Int64; +typedef uint64_t UInt64; #endif /* GCC */ ================================================ FILE: ports/chmlib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(CHMLIB_VERSION chmlib-0.40) set(CHMLIB_FILENAME ${CHMLIB_VERSION}.zip) set(CHMLIB_URL http://www.jedrea.com/chmlib/${CHMLIB_FILENAME}) vcpkg_download_distfile( ARCHIVE URLS ${CHMLIB_URL} FILENAME ${CHMLIB_FILENAME} SHA512 ad3b0d49fcf99e724c0c38b9c842bae9508d0e4ad47122b0f489c113160f5344223d311abb79f25cbb0b662bb00e2925d338d60dd20a0c309bda2822cda4cd24 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES all-platforms.patch strings_h.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_RELEASE -DBUILD_TOOLS=ON OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/src/chm_lib.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/chmlib/strings_h.patch ================================================ diff --git a/src/chm_lib.c b/src/chm_lib.c index 6c6736c..4a3f167 100644 --- a/src/chm_lib.c +++ b/src/chm_lib.c @@ -62,7 +62,7 @@ #include #endif -#if __sun || __sgi +#ifdef CHMLIB_HAVE_STRINGS_H #include #endif ================================================ FILE: ports/chmlib/vcpkg.json ================================================ { "name": "chmlib", "version": "0.40", "port-version": 8, "description": "CHMLIB is a library for dealing with Microsoft ITSS/CHM format files. Right now, it is a very simple library, but sufficient for dealing with all of the .chm files I've come across. Due to the fairly well-designed indexing built into this particular file format, even a small library is able to gain reasonably good performance indexing into ITSS archives.", "homepage": "http://www.jedrea.com/chmlib/", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/chromaprint/pkgconfig-cxx-linkage.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 319bd3d..118104c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -187,6 +187,15 @@ else() endif() if(NOT BUILD_FRAMEWORK) + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND PC_LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND PC_LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libchromaprint.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libchromaprint.pc @ONLY) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libchromaprint.pc ================================================ FILE: ports/chromaprint/pkgconfig-dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 01b7df7..319bd3d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,9 @@ include(CheckSymbolExists) include(CheckCXXCompilerFlag) include(GNUInstallDirs) +set(PC_LIBS_PRIVATE "") +set(PC_REQUIRES_PRIVATE "") + find_package(Threads) option(BUILD_SHARED_LIBS "Build shared libraries" ON) @@ -106,10 +109,12 @@ set(USE_KISSFFT OFF) if(NOT FFT_LIB) if(APPLE AND ACCELERATE_LIBRARIES) set(FFT_LIB "vdsp") + string(APPEND PC_LIBS_PRIVATE " -framework Accelerate") elseif(FFMPEG_LIBAVUTIL_TX_FOUND) set(FFT_LIB "avtx") elseif(FFMPEG_LIBAVCODEC_FFT_FOUND) set(FFT_LIB "avfft") + string(APPEND PC_REQUIRES_PRIVATE " libavcodec") elseif(FFTW3_LIBRARIES) set(FFT_LIB "fftw3") elseif(FFTW3_FFTWF_LIBRARY) @@ -172,6 +177,7 @@ if(AUDIO_PROCESSOR_LIB STREQUAL "swresample") set(USE_SWRESAMPLE ON) set(AUDIO_PROCESSOR_LIBRARIES ${FFMPEG_LIBSWRESAMPLE_LIBRARIES}) set(AUDIO_PROCESSOR_INCLUDE_DIRS ${FFMPEG_LIBSWRESAMPLE_INCLUDE_DIRS}) + string(APPEND PC_REQUIRES_PRIVATE " libswresample") else() message(FATAL_ERROR "Selected ${AUDIO_PROCESSOR_LIB} for audio processing, but the library is not found") endif() diff --git a/libchromaprint.pc.cmake b/libchromaprint.pc.cmake index dbe8f98..b38f8d8 100644 --- a/libchromaprint.pc.cmake +++ b/libchromaprint.pc.cmake @@ -7,6 +7,8 @@ Name: @PROJECT_NAME@ Description: Audio fingerprint library URL: http://acoustid.org/chromaprint Version: @PROJECT_VERSION@ +Requires.private: @PC_REQUIRES_PRIVATE@ Libs: -L${libdir} -lchromaprint +Libs.private: @PC_LIBS_PRIVATE@ Cflags: -I${includedir} ================================================ FILE: ports/chromaprint/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO acoustid/chromaprint REF "v${VERSION}" SHA512 c556b3e9b67affaabadadaabc0a26fbbf32f89e271cde0843057166d0b02f054cbe44a6707c6c8cc9eb70d808821295ce4ea526a293f345e0b98af035a24234b HEAD_REF master PATCHES pkgconfig-dependencies.diff pkgconfig-cxx-linkage.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME Chromaprint CONFIG_PATH "lib/cmake/Chromaprint") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/chromaprint.h" "ifdef CHROMAPRINT_NODLL" "if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/chromaprint/vcpkg.json ================================================ { "name": "chromaprint", "version": "1.6.0", "port-version": 1, "description": "C library for generating audio fingerprints used by AcoustID", "homepage": "https://github.com/acoustid/chromaprint", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat", "swresample" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/chronoengine/0001-dependencies.patch ================================================ diff --git a/cmake/FindBLAS.cmake b/cmake/FindBLAS.cmake index 6a8f0f9..c44f92e 100644 --- a/cmake/FindBLAS.cmake +++ b/cmake/FindBLAS.cmake @@ -487,7 +487,7 @@ if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") endif () if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED) if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED) - find_package(Threads) + find_package(Threads REQUIRED) else() find_package(Threads REQUIRED) endif() diff --git a/cmake/FindEigen3.cmake b/cmake/FindEigen3.cmake index 0d2b3ce..4154783 100644 --- a/cmake/FindEigen3.cmake +++ b/cmake/FindEigen3.cmake @@ -1,96 +1,163 @@ -# - Try to find Eigen3 lib +# Try to find Eigen3 lib # # This module supports requiring a minimum version, e.g. you can do # find_package(Eigen3 3.1.2) # to require version 3.1.2 or newer of Eigen3. # -# Once done this will define +# If successful, this will define # -# EIGEN3_FOUND - system has eigen lib with correct version -# EIGEN3_INCLUDE_DIR - the eigen include directory -# EIGEN3_VERSION - eigen version +# Eigen3_FOUND - system has Eigen3 lib with correct version +# EIGEN3_INCLUDE_DIR - the Eigen3 include directory +# EIGEN3_VERSION - Eigen3 version # -# This module reads hints about search locations from -# the following enviroment variables: +# and the following imported target: # -# EIGEN3_ROOT -# EIGEN3_ROOT_DIR +# Eigen3::Eigen - The header-only Eigen library +# +# This module reads hints about search locations from the following environment variables: +# EIGEN3_ROOT +# EIGEN3_ROOT_DIR +# Based on: # Copyright (c) 2006, 2007 Montel Laurent, # Copyright (c) 2008, 2009 Gael Guennebaud, # Copyright (c) 2009 Benoit Jacob # Redistribution and use is allowed according to the terms of the 2-clause BSD license. + if(NOT Eigen3_FIND_VERSION) if(NOT Eigen3_FIND_VERSION_MAJOR) - set(Eigen3_FIND_VERSION_MAJOR 2) - endif(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 3) + endif() if(NOT Eigen3_FIND_VERSION_MINOR) - set(Eigen3_FIND_VERSION_MINOR 91) - endif(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 3) + endif() if(NOT Eigen3_FIND_VERSION_PATCH) set(Eigen3_FIND_VERSION_PATCH 0) - endif(NOT Eigen3_FIND_VERSION_PATCH) + endif() set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") -endif(NOT Eigen3_FIND_VERSION) +endif() -macro(_eigen3_check_version) - file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) +# ------------------------------------------------------------------------------ - string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") - set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") - set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") - string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") - set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") +macro(_eigen3_check_version) + if(EXISTS "${EIGEN3_INCLUDE_DIR}/Eigen/Version") + # Eigen version >= 5.0.0 + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/Version" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_PATCH_VERSION[ \t]+([0-9]+)" _eigen3_patch_version_match "${_eigen3_version_header}") + set(EIGEN3_PATCH_VERSION "${CMAKE_MATCH_1}") + + set(EIGEN3_VERSION ${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}.${EIGEN3_PATCH_VERSION}) + elseif(EXISTS "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h") + # Eigen version <= 3.4.1 + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") + set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + + set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + endif() + + if(EIGEN3_VERSION) + if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK FALSE) + message("WARNING: Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") + else() + set(EIGEN3_VERSION_OK TRUE) + endif() + else() + message("ERROR: cannot find Eigen3 version information") + endif() + +endmacro() + +# ------------------------------------------------------------------------------ + +if(EIGEN3_INCLUDE_DIR) + + if(NOT Eigen3_FIND_QUIETLY) + message(STATUS " EIGEN3_INCLUDE_DIR found in cache.") + message(STATUS " Eigen3 include dir: ${EIGEN3_INCLUDE_DIR}") + endif() - set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) - if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK FALSE) - else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) - set(EIGEN3_VERSION_OK TRUE) - endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + _eigen3_check_version() + set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) + set(Eigen3_FOUND ${EIGEN3_VERSION_OK}) - if(NOT EIGEN3_VERSION_OK) +else() - message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " - "but at least version ${Eigen3_FIND_VERSION} is required") - endif(NOT EIGEN3_VERSION_OK) -endmacro(_eigen3_check_version) + if(NOT Eigen3_FIND_QUIETLY) + message(STATUS " EIGEN3_INCLUDE_DIR NOT found in cache.") + message(STATUS " Looking for Eigen3Config.cmake.") + endif() + + # Check if Eigen3Config.cmake is available + if(Eigen3_FIND_QUIETLY) + find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET) + else() + find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE) + endif() -if (EIGEN3_INCLUDE_DIR) + if(Eigen3_FOUND) - # in cache already - _eigen3_check_version() - set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) + get_target_property(EIGEN3_INCLUDE_DIR Eigen3::Eigen INTERFACE_INCLUDE_DIRECTORIES) -else (EIGEN3_INCLUDE_DIR) + if(NOT Eigen3_FIND_QUIETLY) + message(STATUS " Eigen3 found with Eigen3Config.cmake.") + message(STATUS " Eigen3 include dir: ${EIGEN3_INCLUDE_DIR}") + endif() - # search first if an Eigen3Config.cmake is available in the system, - # if successful this would set EIGEN3_INCLUDE_DIR and the rest of - # the script will work as usual - find_package(Eigen3 ${Eigen3_FIND_VERSION} NO_MODULE QUIET) + else() + + if(NOT Eigen3_FIND_QUIETLY) + message(STATUS " Eigen3 NOT found through Eigen3Config.cmake.") + message(STATUS " Searching paths EIGEN3_ROOT, EIGEN3_ROOT_DIR.") + endif() - if(NOT EIGEN3_INCLUDE_DIR) - find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library HINTS - ENV EIGEN3_ROOT - ENV EIGEN3_ROOT_DIR + ENV Eigen3_ROOT + ENV Eigen3_ROOT_DIR PATHS ${CMAKE_INSTALL_PREFIX}/include ${KDE4_INCLUDE_DIR} PATH_SUFFIXES eigen3 eigen - ) - endif(NOT EIGEN3_INCLUDE_DIR) + ) - if(EIGEN3_INCLUDE_DIR) - _eigen3_check_version() - endif(EIGEN3_INCLUDE_DIR) + if(NOT EIGEN3_INCLUDE_DIR) + if(NOT Eigen3_FIND_QUIETLY) + message(STATUS " EIGEN3_INCLUDE_DIR NOT found through find_path.") + endif() + endif() + + endif() + + if(EIGEN3_INCLUDE_DIR) + _eigen3_check_version() + endif() + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) + + mark_as_advanced(EIGEN3_INCLUDE_DIR) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) +endif() - mark_as_advanced(EIGEN3_INCLUDE_DIR) +# ------------------------------------------------------------------------------ -endif(EIGEN3_INCLUDE_DIR) +if(Eigen3_FOUND AND NOT TARGET Eigen3::Eigen) + add_library(Eigen3::Eigen INTERFACE IMPORTED) + set_target_properties(Eigen3::Eigen PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${EIGEN3_INCLUDE_DIR}") +endif() diff --git a/cmake/FindMKL.cmake b/cmake/FindMKL.cmake index 6f8a274..acf43af 100644 --- a/cmake/FindMKL.cmake +++ b/cmake/FindMKL.cmake @@ -7,7 +7,7 @@ # # Usage example: # set(MKL_USE_STATIC_LIBS ON) -# find_package(MKL) +# find_package(MKL REQUIRED) # if (MKL_FOUND) # include_directories(${MKL_INCLUDE_DIRS}) # link_directories(${MKL_LIBRARY_DIRS}) diff --git a/cmake/FindMyGUI.cmake b/cmake/FindMyGUI.cmake index b5563c8..2fc9912 100644 --- a/cmake/FindMyGUI.cmake +++ b/cmake/FindMyGUI.cmake @@ -81,7 +81,7 @@ IF (WIN32) #Windows ENDIF (OGRESOURCE) ELSE (WIN32) #Unix CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR) - FIND_PACKAGE(PkgConfig) + find_package(PkgConfig REQUIRED) IF(MYGUI_STATIC) # don't use pkgconfig on OS X, find freetype & append it's libs to resulting MYGUI_LIBRARIES IF (NOT APPLE) @@ -101,7 +101,7 @@ ELSE (WIN32) #Unix ENDIF (MYGUI_INCLUDE_DIRS) ELSE (NOT APPLE) SET(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${MYGUI_DEPENDENCIES_DIR} ${OGRE_DEPENDENCIES_DIR}) - FIND_PACKAGE(freetype) + find_package(freetype REQUIRED) FIND_PATH(MYGUI_INCLUDE_DIRS MyGUI.h PATHS /usr/local/include /usr/include PATH_SUFFIXES MyGUI MYGUI) FIND_LIBRARY(MYGUI_LIBRARIES MyGUIEngineStatic PATHS /usr/lib /usr/local/lib) SET(MYGUI_PLATFORM_LIBRARIES "MyGUI.OgrePlatform") diff --git a/cmake/FindOgre.cmake b/cmake/FindOgre.cmake index 9e2081a..950ba01 100644 --- a/cmake/FindOgre.cmake +++ b/cmake/FindOgre.cmake @@ -262,17 +262,17 @@ endif () # look for required Ogre dependencies in case of static build and/or threading if (OGRE_STATIC) set(OGRE_DEPS_FOUND TRUE) - find_package(Cg QUIET) - find_package(DirectX QUIET) - find_package(FreeImage QUIET) - find_package(Freetype QUIET) - find_package(OpenGL QUIET) - find_package(OpenGLES QUIET) - find_package(OpenGLES2 QUIET) - find_package(ZLIB QUIET) - find_package(ZZip QUIET) + find_package(Cg REQUIRED) + find_package(DirectX REQUIRED) + find_package(FreeImage REQUIRED) + find_package(Freetype REQUIRED) + find_package(OpenGL REQUIRED) + find_package(OpenGLES REQUIRED) + find_package(OpenGLES2 REQUIRED) + find_package(ZLIB REQUIRED) + find_package(ZZip REQUIRED) if (UNIX AND NOT APPLE AND NOT ANDROID) - find_package(X11 QUIET) + find_package(X11 REQUIRED) find_library(XAW_LIBRARY NAMES Xaw Xaw7 PATHS ${DEP_LIB_SEARCH_DIR} ${X11_LIB_SEARCH_PATH}) if (NOT XAW_LIBRARY OR NOT X11_Xt_FOUND) set(X11_FOUND FALSE) @@ -310,7 +310,7 @@ endif() endif() set(OGRE_BOOST_COMPONENTS thread date_time) - find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} QUIET) + find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} REQUIRED) if(Boost_FOUND AND Boost_VERSION GREATER 104900) if(Boost_VERSION GREATER 105300) set(OGRE_BOOST_COMPONENTS thread date_time system atomic chrono) @@ -319,7 +319,7 @@ endif() endif() endif() - find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} QUIET) + find_package(Boost COMPONENTS ${OGRE_BOOST_COMPONENTS} REQUIRED) if (NOT Boost_THREAD_FOUND) set(OGRE_DEPS_FOUND FALSE) else () @@ -327,7 +327,7 @@ endif() set(OGRE_INCLUDE_DIRS ${OGRE_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) endif () elseif (OGRE_CONFIG_THREAD_PROVIDER EQUAL 2) - find_package(POCO QUIET) + find_package(POCO REQUIRED) if (NOT POCO_FOUND) set(OGRE_DEPS_FOUND FALSE) else () @@ -335,7 +335,7 @@ endif() set(OGRE_INCLUDE_DIRS ${OGRE_INCLUDE_DIRS} ${POCO_INCLUDE_DIRS}) endif () elseif (OGRE_CONFIG_THREAD_PROVIDER EQUAL 3) - find_package(TBB QUIET) + find_package(TBB REQUIRED) if (NOT TBB_FOUND) set(OGRE_DEPS_FOUND FALSE) else () diff --git a/cmake/FindPkgMacros.cmake b/cmake/FindPkgMacros.cmake index 53111e0..2f6881c 100644 --- a/cmake/FindPkgMacros.cmake +++ b/cmake/FindPkgMacros.cmake @@ -70,7 +70,7 @@ endmacro(clear_if_changed) # Try to get some hints from pkg-config, if available macro(use_pkgconfig PREFIX PKGNAME) if(NOT ANDROID) - find_package(PkgConfig) + find_package(PkgConfig REQUIRED) if (PKG_CONFIG_FOUND) pkg_check_modules(${PREFIX} ${PKGNAME}) endif () diff --git a/cmake/FindSDL2.cmake b/cmake/FindSDL2.cmake index 4b8f7e9..e27895a 100644 --- a/cmake/FindSDL2.cmake +++ b/cmake/FindSDL2.cmake @@ -112,7 +112,7 @@ ENDIF(NOT SDL2_BUILDING_LIBRARY) # frameworks may already provide it. # But for non-OSX systems, I will use the CMake Threads package. IF(NOT APPLE) - FIND_PACKAGE(Threads) + find_package(Threads REQUIRED) ENDIF(NOT APPLE) # MinGW needs an additional library, mwindows diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake index 319f307..68ec2da 100644 --- a/cmake/GetGitRevisionDescription.cmake +++ b/cmake/GetGitRevisionDescription.cmake @@ -82,7 +82,7 @@ endfunction() function(git_describe _var) if(NOT GIT_FOUND) - find_package(Git QUIET) + find_package(Git REQUIRED) endif() get_git_head_revision(refspec hash) if(NOT GIT_FOUND) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d75ce10..3603db6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -96,7 +96,7 @@ endif() message(STATUS "Searching for Threads...") set(THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package(Threads) +find_package(Threads REQUIRED) message(STATUS " Thread library: ${CMAKE_THREAD_LIBS_INIT}") message(STATUS " Using Win32 threads? ${CMAKE_USE_WIN32_THREADS_INIT}") @@ -112,7 +112,7 @@ set(CH_C_FLAGS "${CH_C_FLAGS} ${CMAKE_THREAD_LIBS_INIT}") # main ChronoEngine library, regardless on whether or not OpenMP is found. message(STATUS "Searching for OpenMP...") -find_package(OpenMP) +# find_package(OpenMP) # Determine OpenMP version. Prepare substitution variables that can be used in # generating configuration header files. @@ -177,7 +177,7 @@ if(USE_SIMD) # Figure out SIMD support message(STATUS "Testing SIMD capabilities...") - find_package(SIMD) + find_package(SIMD REQUIRED) # Set substitution variables for configuration file if(SIMD_SSE) @@ -249,22 +249,28 @@ endif() # Eigen library #----------------------------------------------------------------------------- -message(STATUS "Searching for Eigen3...") -find_package(Eigen3 3.3.0) -if(EIGEN3_FOUND) - message(STATUS " Eigen3 version: ${EIGEN3_VERSION}") - message(STATUS " Eigen3 include directory: ${EIGEN3_INCLUDE_DIR}") +message(STATUS "Searching for Eigen3") +find_package(Eigen3 3.3 REQUIRED) +if(Eigen3_FOUND) + message(STATUS "Eigen3 found") + message(STATUS " Eigen3 version: ${EIGEN3_VERSION}") + message(STATUS " Eigen3 include dir: ${EIGEN3_INCLUDE_DIR}") + mark_as_advanced(FORCE EIGEN3_INCLUDE_DIR) + mark_as_advanced(FORCE Eigen3_DIR) else() + message(ERROR "Eigen3 cannot be found.\n" + " Provide Eigen3_DIR (location of Eigen3Config.cmake) or else\n" + " set either EIGEN3_INCLUDE_DIR or the envvar Eigen3_ROOT to the location of Eigen library.") + set(EIGEN3_INCLUDE_DIR "" CACHE PATH "Path to Eigen3 directory (should contain a subfolder named \"Eigen\"") + set(Eigen3_DIR "" CACHE PATH "Path to Eigen3 config file (should contain the \"Eigen3Config.cmake\" file") mark_as_advanced(CLEAR EIGEN3_INCLUDE_DIR) - mark_as_advanced(FORCE Eigen3_DIR) - message(FATAL_ERROR " Eigen3 not found. Specify EIGEN3_INCLUDE_DIR") + mark_as_advanced(CLEAR Eigen3_DIR) + return() endif() # Fix for VS 2017 15.8 and newer to handle alignment specification with Eigen. -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") - if(MSVC AND ${MSVC_VERSION} GREATER_EQUAL 1915) - add_definitions( "-D_ENABLE_EXTENDED_ALIGNED_STORAGE" ) - endif() +if((${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND MSVC AND "${MSVC_VERSION}" GREATER_EQUAL 1915) OR NOT CH_USE_EIGEN_OPENMP) + target_compile_definitions(Eigen3::Eigen INTERFACE "_ENABLE_EXTENDED_ALIGNED_STORAGE") endif() cmake_dependent_option(USE_EIGEN_OPENMP "Compile Chrono with OpenMP support in Eigen" ON "ENABLE_OPENMP" OFF) @@ -293,7 +299,7 @@ endif() #----------------------------------------------------------------------------- message(STATUS "Searching for MPI...") -find_package(MPI) +# find_package(MPI) if(MPI_FOUND) message(STATUS " MPI compiler: ${MPI_CXX_COMPILER}") message(STATUS " MPI compile flags: ${MPI_CXX_COMPILE_FLAGS}") @@ -313,7 +319,7 @@ endif() message(STATUS "Searching for CUDA...") -find_package(CUDA QUIET) +# find_package(CUDA) if(CUDA_FOUND) set(CUDA_BINARY_DIR "${CUDA_TOOLKIT_ROOT_DIR}/bin") @@ -383,7 +389,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") set(${THRUST_FOUND} FALSE) endif() else() - find_package(Thrust) +# find_package(Thrust) endif() if(THRUST_FOUND) @@ -500,14 +506,14 @@ if(ENABLE_HDF5) # HDF5_INCLUDE_DIRS # HDF5_C_LIBRARIES # HDF5_CXX_LIBRARIES - find_package(HDF5 COMPONENTS CXX) + find_package(HDF5 COMPONENTS CXX REQUIRED) if(NOT HDF5_FOUND) # Look for a package configuration file # LIB_TYPE can be one of STATIC or SHARED. set(LIB_TYPE SHARED) # STATIC or SHARED string(TOLOWER ${LIB_TYPE} SEARCH_TYPE) - find_package(HDF5 NAMES hdf5 COMPONENTS CXX ${SEARCH_TYPE}) + find_package(HDF5 NAMES hdf5 COMPONENTS CXX ${SEARCH_TYPE} REQUIRED) if (HDF5_FOUND) set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR}) diff --git a/src/chrono/CMakeLists.txt b/src/chrono/CMakeLists.txt index 88f970f..917452c 100644 --- a/src/chrono/CMakeLists.txt +++ b/src/chrono/CMakeLists.txt @@ -1405,9 +1405,9 @@ endif() # Add the ChronoEngine library to the project add_library(ChronoEngine SHARED ${ChronoEngine_FILES}) -target_link_libraries(ChronoEngine ${OPENMP_LIBRARIES} ${CH_SOCKET_LIB}) +target_link_libraries(ChronoEngine ${OPENMP_LIBRARIES} ${CH_SOCKET_LIB} TBB::tbb TBB::tbbmalloc) if (UNIX) - target_link_libraries(ChronoEngine pthread) + target_link_libraries(ChronoEngine pthread TBB::tbb TBB::tbbmalloc) endif() # Set some custom properties of this target diff --git a/src/chrono_cascade/CMakeLists.txt b/src/chrono_cascade/CMakeLists.txt index 3d38c87..f9558ba 100644 --- a/src/chrono_cascade/CMakeLists.txt +++ b/src/chrono_cascade/CMakeLists.txt @@ -50,7 +50,7 @@ source_group("" FILES #----------------------------------------------------------------------------- # Find OpenCASCADE -find_package(OpenCASCADE CONFIG) +find_package(OpenCASCADE CONFIG REQUIRED) if (NOT OpenCASCADE_FOUND) message("Could not find OpenCASCADE or one of its required modules") diff --git a/src/chrono_irrlicht/CMakeLists.txt b/src/chrono_irrlicht/CMakeLists.txt index acffe0c..bc0e938 100644 --- a/src/chrono_irrlicht/CMakeLists.txt +++ b/src/chrono_irrlicht/CMakeLists.txt @@ -54,7 +54,7 @@ SOURCE_GROUP("" FILES set(CH_IRRLICHT_CXX_FLAGS "") set(CH_IRRLICHT_C_FLAGS "") - +if(0) IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") SET(IRRLICHT_ROOT "C:/irrlicht-1.8.1" CACHE PATH "Path to Irrlicht SDK installation.") IF("${CH_COMPILER}" STREQUAL "COMPILER_MSVC") @@ -84,7 +84,8 @@ else() FIND_LIBRARY(IRRLICHT_LIBRARY NAMES Irrlicht PATHS ${IRRLICHT_ROOT}/../../lib) set(IRRLICHT_LIBRARY "${IRRLICHT_LIBRARY}") ENDIF() - +endif() +find_package(irrlicht REQUIRED) # If using MSVC, disable warning 4275 (non-DLL-interface class used as base for DLL-interface class) if(MSVC) add_compile_options(/wd4275) @@ -93,7 +94,7 @@ if(MSVC) endif() # Add path to IRRLICHT headers - +if(0) IF(EXISTS "${IRRLICHT_ROOT}/include/irrlicht") SET(CH_IRRLICHTINC "${IRRLICHT_ROOT}/include/irrlicht") ELSEIF(EXISTS "${IRRLICHT_ROOT}/include") @@ -103,7 +104,7 @@ ELSE() ENDIF() INCLUDE_DIRECTORIES( ${CH_IRRLICHTINC} ) - +endif(0) # Let some variables be visible also from outside this directory @@ -119,7 +120,7 @@ set(COMPILER_FLAGS "${CH_CXX_FLAGS} ${CH_IRRLICHT_CXX_FLAGS}") set(LINKER_FLAGS "${CH_LINKERFLAG_SHARED}") set(LIBRARIES ChronoEngine - ${IRRLICHT_LIBRARY} + Irrlicht ) if (ENABLE_MODULE_POSTPROCESS) @@ -168,7 +169,7 @@ endif() # appropriate directory (depending on the build type); however, we use # copy_if_different. -IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") +IF(0) IF(DEFINED ENV{CONDA_BUILD}) SET(CH_IRRLICHT_DLL "$ENV{PREFIX}/Library/bin/Irrlicht.dll") diff --git a/src/chrono_mumps/CMakeLists.txt b/src/chrono_mumps/CMakeLists.txt index d856460..a2e1ea2 100644 --- a/src/chrono_mumps/CMakeLists.txt +++ b/src/chrono_mumps/CMakeLists.txt @@ -88,7 +88,7 @@ unset(BLAS_FOUND) unset(BLAS_LIBRARIES) message(STATUS "Searching for BLAS...") -find_package(BLAS) +find_package(BLAS REQUIRED) set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH_BKP}) # restore original CMAKE_LIBRARY_PATH diff --git a/src/chrono_mumps/building_Mumps/CMakeLists_5.0.2.txt b/src/chrono_mumps/building_Mumps/CMakeLists_5.0.2.txt index e179a68..5a6852e 100644 --- a/src/chrono_mumps/building_Mumps/CMakeLists_5.0.2.txt +++ b/src/chrono_mumps/building_Mumps/CMakeLists_5.0.2.txt @@ -78,7 +78,7 @@ endif() SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${BLAS_LIBRARIES_USER} ${INTEL_LIBRARIES_DIRS} ) -find_package(BLAS) +find_package(BLAS REQUIRED) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH_BKP}) # restore original CMAKE_LIBRARY_PATH if (NOT BLAS_FOUND) @@ -101,7 +101,7 @@ SET(GENERIC_COMPILER_FLAGS_C #aka OPTC "-MD") -find_package(OpenMP) +find_package(OpenMP REQUIRED) if (ENABLE_OPENMP AND OPENMP_FOUND) SET(GENERIC_COMPILER_FLAGS_FORTRAN "${GENERIC_COMPILER_FLAGS_FORTRAN} ${OpenMP_Fortran_FLAGS}") SET(GENERIC_COMPILER_FLAGS_C "${GENERIC_COMPILER_FLAGS_C} ${OpenMP_C_FLAGS}") diff --git a/src/chrono_mumps/building_Mumps/CMakeLists_5.1.1.txt b/src/chrono_mumps/building_Mumps/CMakeLists_5.1.1.txt index 1c3a3b3..115d337 100644 --- a/src/chrono_mumps/building_Mumps/CMakeLists_5.1.1.txt +++ b/src/chrono_mumps/building_Mumps/CMakeLists_5.1.1.txt @@ -78,7 +78,7 @@ endif() SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${BLAS_LIBRARIES_USER} ${INTEL_LIBRARIES_DIRS} ) # Looking for valid BLAS libraries -find_package(BLAS) +find_package(BLAS REQUIRED) SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH_BKP}) # restore original CMAKE_LIBRARY_PATH if (NOT BLAS_FOUND) @@ -121,7 +121,7 @@ SET(GENERIC_COMPILER_FLAGS_C #aka OPTC "-MD") -find_package(OpenMP) +find_package(OpenMP REQUIRED) if (ENABLE_OPENMP AND OPENMP_FOUND) SET(GENERIC_COMPILER_FLAGS_FORTRAN "${GENERIC_COMPILER_FLAGS_FORTRAN} ${OpenMP_Fortran_FLAGS}") SET(GENERIC_COMPILER_FLAGS_C "${GENERIC_COMPILER_FLAGS_C} ${OpenMP_C_FLAGS}") diff --git a/src/chrono_opengl/CMakeLists.txt b/src/chrono_opengl/CMakeLists.txt index a7b60f1..9b76134 100644 --- a/src/chrono_opengl/CMakeLists.txt +++ b/src/chrono_opengl/CMakeLists.txt @@ -41,10 +41,10 @@ endif() cmake_policy(SET CMP0072 NEW) -find_package(OpenGL) -find_package(GLM) -find_package(GLEW) -find_package(GLFW) +find_package(OpenGL REQUIRED) +find_package(GLM REQUIRED) +find_package(GLEW REQUIRED) +find_package(GLFW REQUIRED) # On windows, ask for the GLEW and GLFW DLLs so that we can copy. This is # optional. If not specified, it is the user's responsibility to make them diff --git a/src/chrono_pardisomkl/CMakeLists.txt b/src/chrono_pardisomkl/CMakeLists.txt index 8c35c5d..8313af4 100644 --- a/src/chrono_pardisomkl/CMakeLists.txt +++ b/src/chrono_pardisomkl/CMakeLists.txt @@ -27,7 +27,7 @@ message(STATUS "Find MKL libraries") #set(MKL_USE_STATIC_LIBS ON) #set(MKL_FIND_DEBUG ON) -find_package(MKL) +find_package(MKL REQUIRED) message(STATUS " MKL include dirs: ${MKL_INCLUDE_DIRS}") message(STATUS " MKL libraries: ${MKL_LIBRARIES}") diff --git a/src/chrono_sensor/CMakeLists.txt b/src/chrono_sensor/CMakeLists.txt index 2b4102d..14c2f15 100644 --- a/src/chrono_sensor/CMakeLists.txt +++ b/src/chrono_sensor/CMakeLists.txt @@ -29,9 +29,9 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") mark_as_advanced(CLEAR GLFW_DLL) endif() -find_package(GLFW OPTIONAL_COMPONENTS) -find_package(OpenGL OPTIONAL_COMPONENTS) -find_package(GLEW OPTIONAL_COMPONENTS) +find_package(GLFW REQUIRED) +find_package(OpenGL REQUIRED) +find_package(GLEW REQUIRED) message(STATUS "OpenGL libraries: ${OPENGL_LIBRARIES}") message(STATUS "GLEW libraries: ${GLEW_LIBRARY}") ================================================ FILE: ports/chronoengine/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO projectchrono/chrono REF ${VERSION} SHA512 379609b5a968b56faf48d2e848b0bb85d95f266a4fea48d457f2242fad580fee88ae5974e1021e31e56ebdb7a49fcddba681eff4d56605c94fbe30032dc5906c PATCHES 0001-dependencies.patch ) file(REMOVE "${SOURCE_PATH}/cmake/FindTBB.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES irrlicht ENABLE_MODULE_IRRLICHT vehicle ENABLE_MODULE_VEHICLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_MODULE_POSTPROCESS=ON -DBUILD_DEMOS=OFF -DBUILD_TESTING=OFF -DBUILD_BENCHMARKING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup( CONFIG_PATH cmake ) else() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/Chrono ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/chrono_thirdparty/chpf" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/chronoengine/vcpkg.json ================================================ { "name": "chronoengine", "version": "8.0.0", "port-version": 2, "description": "Multi-physics Simulation Engine.", "homepage": "https://projectchrono.org/", "license": "BSD-3-Clause", "supports": "(windows & x64 & !static & !uwp) | linux | osx", "dependencies": [ "eigen3", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "irrlicht": { "description": "Default visualization system for interactive 3D viewing of Chrono simulations.", "dependencies": [ "irrlicht" ] }, "vehicle": { "description": "Enables template-based ground vehicle modeling and simulation within Chrono." } } } ================================================ FILE: ports/cialloo-rcon/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO luckyweNda/rcon REF 6ea49bbd54bbf7604e4e3f6fc2dbd4e507d7bd90 SHA512 84fefc80e6c47decd9fedb2df1ce1c2671cf8159eb8d60d9b90e3208dd2bd5786eb1bbd526d1d252cd1fc4c6bbb0377712b224c8a4b7ea66b52c6184c241f85e HEAD_REF main ) # Install include directory file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Copy usage file file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cialloo-rcon/usage ================================================ The package rcon is header only and can be used from CMake via: find_path(RCON_INCLUDE_DIRS "rcon.hpp") target_include_directories(main PRIVATE ${RCON_INCLUDE_DIRS}) ================================================ FILE: ports/cialloo-rcon/vcpkg.json ================================================ { "name": "cialloo-rcon", "version": "1.0.0", "description": "implementation in valve source rcon protocal", "homepage": "https://github.com/luckyweNda/rcon", "license": "MIT", "dependencies": [ "asio" ] } ================================================ FILE: ports/cimg/CMakeLists.txt ================================================ CMAKE_MINIMUM_REQUIRED(VERSION 3.9) project(CImg) add_library(${PROJECT_NAME} INTERFACE) target_include_directories(${PROJECT_NAME} INTERFACE $ $ ) install(TARGETS ${PROJECT_NAME} EXPORT CImgExport INCLUDES DESTINATION include ) install(EXPORT CImgExport FILE ${PROJECT_NAME}Config.cmake NAMESPACE ${PROJECT_NAME}:: DESTINATION share/cimg) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/CImg.h DESTINATION include ) install( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/plugins DESTINATION include) ================================================ FILE: ports/cimg/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO GreycLab/CImg # Using commit id becuase upstream likes to change tags REF adc0075060e600f79bff9a6455daf53ff5968905 SHA512 59b7388238d73e7c56a029bc7f372085f9e2a167ff138f0f2671ad59d3c988ca512e0b3df4892688b665baff3f327da429e94d60e0ee75c29b8367f7f3537de1 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/Licence_CeCILL-C_V1-en.txt" "${SOURCE_PATH}/Licence_CeCILL_V2-en.txt" ) ================================================ FILE: ports/cimg/vcpkg.json ================================================ { "name": "cimg", "version": "3.7.2", "description": "The CImg Library is a small, open-source, and modern C++ toolkit for image processing", "homepage": "https://github.com/GreycLab/CImg", "license": "CECILL-C AND CECILL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cinatra/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qicosmos/cinatra REF ${VERSION} SHA512 43d0fffade96f3d187045e20dc61f4cf4f2aaba0ea4b6e54c145d2ef9a9aa67b06538f4c1817f4ad5cc8c1e68dfc5fcb460e376d45ae6ebde9b4fde4498b8637 HEAD_REF master ) # Install Cinatra’s headers file(INSTALL "${SOURCE_PATH}/include/cinatra" "${SOURCE_PATH}/include/cinatra.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cinatra/vcpkg.json ================================================ { "name": "cinatra", "version": "0.9.8", "description": "Cinatra is a high performance HTTP framework with modern C++ features.", "homepage": "https://github.com/qicosmos/cinatra", "license": "MIT", "supports": "!uwp & !android", "dependencies": [ "asio", "async-simple", "iguana", "tanakh-cmdline" ] } ================================================ FILE: ports/cista/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO felixguendling/cista REF "v${VERSION}" SHA512 87679d9eba2b6ed1fe60b39163b13cebaee221127784b5906c82770455908375e6cdcca58d3994fb22eefe4d9605332ee2134c0420f5c11783868cffd7cfa0ee HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCISTA_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cista) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cista/usage ================================================ cista provides CMake targets: find_package(cista CONFIG REQUIRED) target_link_libraries(main PRIVATE cista::cista) ================================================ FILE: ports/cista/vcpkg.json ================================================ { "name": "cista", "version": "0.16", "description": "Cista is a simple, high-performance, zero-copy C++ serialization & reflection library.", "homepage": "https://github.com/felixguendling/cista", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cityhash/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) project(cityhash CXX) option(ENABLE_SSE "Build CityHash variants that depend on the _mm_crc32_u64 intrinsic." OFF) set(CMAKE_CXX_STANDARD 11) if (ENABLE_SSE) include (CMakePushCheckState) cmake_push_check_state() if (MSVC) include(CheckCXXSourceCompiles) check_cxx_source_compiles( "#include int main() { _mm_crc32_u64(0, 0); return 0; }" USE_SSE) else() include(CheckCXXCompilerFlag) check_cxx_compiler_flag ("-msse4.2" USE_SSE) if (USE_SSE) set (SSE2_FLAG "-msse4.2") endif() endif() cmake_pop_check_state() if (NOT USE_SSE) message(FATAL_ERROR "This platform doesn't support feature SSE4.2") endif() else() set(USE_SSE OFF) endif() add_library(cityhash STATIC src/city.cc) list(APPEND CITY_HEADERS src/city.h) if (USE_SSE) list(APPEND CITY_HEADERS src/citycrc.h) target_compile_options(cityhash PRIVATE ${SSE2_FLAG}) if (MSVC) target_compile_definitions(cityhash PRIVATE __SSE4_2__) endif() endif() target_include_directories(cityhash PUBLIC $ $ ) install(TARGETS cityhash EXPORT cityhash-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(EXPORT cityhash-config DESTINATION share/cmake/cityhash) install(FILES ${CITY_HEADERS} DESTINATION include) ================================================ FILE: ports/cityhash/config.h ================================================ /* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ /* #undef AC_APPLE_UNIVERSAL_BUILD */ /* Define to 1 if the compiler supports __builtin_expect. */ #if WIN32 || WIN64 # define HAVE_BUILTIN_EXPECT 0 #else # define HAVE_BUILTIN_EXPECT 1 #endif /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "cityhash-discuss@googlegroups.com" /* Define to the full name of this package. */ #define PACKAGE_NAME "CityHash" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "CityHash 1.1.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "cityhash" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "1.1.1" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 # endif #else # ifndef WORDS_BIGENDIAN /* # undef WORDS_BIGENDIAN */ # endif #endif /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ /* #undef _UINT32_T */ /* Define for Solaris 2.5.1 so the uint64_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ /* #undef _UINT64_T */ /* Define for Solaris 2.5.1 so the uint8_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ /* #undef _UINT8_T */ /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus /* #undef inline */ #endif /* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to `int' if does not define. */ /* #undef ssize_t */ /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ /* #undef uint32_t */ /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ /* #undef uint64_t */ /* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ /* #undef uint8_t */ ================================================ FILE: ports/cityhash/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/cityhash REF 8af9b8c2b889d80c22d6bc26ba0df1afb79a30db SHA512 5878a6a4f8ee99593412d446d96c05be1f89fa7771eca49ff4a52ce181de8199ba558170930996d36f6df80a65889d93c81ab2611868b015d8db913e2ecd2eb9 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if(VCPKG_TARGET_IS_WINDOWS) file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h" DESTINATION "${SOURCE_PATH}/src") else() file(MAKE_DIRECTORY "${SOURCE_PATH}/out") vcpkg_execute_required_process( COMMAND "${SOURCE_PATH}/configure" WORKING_DIRECTORY "${SOURCE_PATH}/out" LOGNAME configure-${TARGET_TRIPLET} ) file(COPY "${SOURCE_PATH}/out/config.h" DESTINATION "${SOURCE_PATH}/src") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "sse" ENABLE_SSE ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/cityhash) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/COPYING" "${CURRENT_PACKAGES_DIR}/share/cityhash/copyright" COPYONLY) ================================================ FILE: ports/cityhash/vcpkg.json ================================================ { "name": "cityhash", "version-date": "2013-01-08", "port-version": 3, "description": "CityHash, a family of hash functions for strings.", "homepage": "https://github.com/google/cityhash", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "sse": { "description": "Build CityHash variants that depend on the _mm_crc32_u64 intrinsic.", "supports": "x64 | (x86 & !windows)" } } } ================================================ FILE: ports/civetweb/disable_warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1eb391f2c..2665fa73e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -360,6 +360,7 @@ if (CIVETWEB_ENABLE_CXX) else() add_cxx_compiler_flag(-std=${CIVETWEB_CXX_STANDARD}) endif() + if(0) add_cxx_compiler_flag(-Wall) add_cxx_compiler_flag(-Wextra) add_cxx_compiler_flag(-Wshadow) @@ -377,6 +378,7 @@ if (CIVETWEB_ENABLE_CXX) add_cxx_compiler_flag(-Werror) add_cxx_compiler_flag(/WX) endif() + endif() add_cxx_compiler_flag(-pedantic-errors) add_cxx_compiler_flag(-fvisibility=hidden) add_cxx_compiler_flag(-fstack-protector-strong RELEASE) @@ -403,6 +405,7 @@ endif() if (NOT ZEPHYR) #Warnings: enable everything + if(0) add_c_compiler_flag(-Wall) add_c_compiler_flag(-Wextra) add_c_compiler_flag(-Wshadow) @@ -422,7 +425,7 @@ if (NOT ZEPHYR) add_c_compiler_flag(-Wno-format-nonliteral) # printf(myFormatStringVar, ...) add_c_compiler_flag(-Wno-cast-qual) # const cast add_c_compiler_flag(/Wd4820) # padding - + endif() add_c_compiler_flag(-pedantic-errors) add_c_compiler_flag(-fvisibility=hidden) add_c_compiler_flag(-fstack-protector-strong RELEASE) ================================================ FILE: ports/civetweb/fix-fseeko.patch ================================================ diff --git a/src/civetweb.c b/src/civetweb.c index 9e321ed..0f11407 100644 --- a/src/civetweb.c +++ b/src/civetweb.c @@ -892,6 +892,12 @@ typedef unsigned short int in_port_t; #if defined(USE_X_DOM_SOCKET) #include #endif + +#if defined(__ANDROID_API__) && __ANDROID_API__ < 24 + // Cf. https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md#32_bit-and + #define fseeko fseek +#endif + #endif #define vsnprintf_impl vsnprintf ================================================ FILE: ports/civetweb/pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c5368c0..c297861 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -614,6 +614,10 @@ configure_package_config_file( PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CIVETWEB_ENABLE_CXX ) +set(PROJECT_VERSION "${VERSION}") +if(CIVETWEB_ENABLE_SSL) + set(REQUIRES_OPENSSL openssl) +endif() configure_file( cmake/${PROJECT_NAME}.pc.in ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc @@ -629,13 +633,13 @@ configure_file( install( FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.pc" - DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) install( FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-cpp.pc" - DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) write_basic_package_version_file(${PROJECT_NAME}-config-version.cmake diff --git a/cmake/civetweb-cpp.pc.in b/cmake/civetweb-cpp.pc.in index ca1232c..495da46 100644 --- a/cmake/civetweb-cpp.pc.in +++ b/cmake/civetweb-cpp.pc.in @@ -10,3 +10,4 @@ Requires: Libs: -L${libdir} -l@PROJECT_NAME@-cpp Cflags: -I${includedir} +Requires.private: civetweb diff --git a/cmake/civetweb.pc.in b/cmake/civetweb.pc.in index 27cea8f..0826f61 100644 --- a/cmake/civetweb.pc.in +++ b/cmake/civetweb.pc.in @@ -11,3 +11,4 @@ Libs: -L${libdir} -l@PROJECT_NAME@ Cflags: -I${includedir} +Requires.private: @REQUIRES_OPENSSL@ ================================================ FILE: ports/civetweb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO civetweb/civetweb REF "v${VERSION}" SHA512 a0b943dfc76d7fd47f5a7d2c834fd38ddd4cf01a11730cf2f7cfaf32fea9698f59672f3a0f86ac80e0abc315d94d2367a500d37013f305c87d45e84cf39ca816 HEAD_REF master PATCHES disable_warnings.patch # cl will simply ignore the other invalid options. fix-fseeko.patch pkgconfig.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/third_party") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl CIVETWEB_ENABLE_SSL ) # Fixes arm64-windows build. CIVETWEB_ARCHITECTURE is used only for CPack, which is not used by vcpkg vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "determine_target_architecture(CIVETWEB_ARCHITECTURE)" "") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCIVETWEB_BUILD_TESTING=OFF -DCIVETWEB_ENABLE_DEBUG_TOOLS=OFF -DCIVETWEB_ENABLE_ASAN=OFF -DCIVETWEB_ENABLE_CXX=ON -DCIVETWEB_ENABLE_IPV6=ON -DCIVETWEB_ENABLE_SERVER_EXECUTABLE=OFF -DCIVETWEB_ENABLE_SSL_DYNAMIC_LOADING=OFF -DCIVETWEB_ENABLE_WEBSOCKETS=ON -DCIVETWEB_ALLOW_WARNINGS=ON -DCIVETWEB_ENABLE_ZLIB=ON "-DVERSION=${VERSION}" ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/civetweb) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/civetweb.h" "defined(CIVETWEB_DLL_IMPORTS)" 1) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/CivetServer.h" "defined(CIVETWEB_CXX_DLL_IMPORTS)" 1) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/pkgconfig") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/civetweb/usage ================================================ civetweb provides CMake targets: find_package(civetweb CONFIG REQUIRED) target_link_libraries(main PRIVATE civetweb::civetweb) ================================================ FILE: ports/civetweb/vcpkg.json ================================================ { "name": "civetweb", "version": "1.16", "port-version": 2, "description": "Easy to use, powerful, C/C++ embeddable web server.", "homepage": "https://github.com/civetweb/civetweb", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ssl": { "description": "Enable SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/cjson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DaveGamble/cJSON REF "v${VERSION}" SHA512 7b22bdd05b8e0bf8b24ab79db128dbab9f8c2c167f4b1d3073922b8ff1e0f0e8917322283d6d4091002f014f42692984f4f641761f05965d3b66fb3eca14dc46 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES utils ENABLE_CJSON_UTILS ) if(CMAKE_HOST_WIN32) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_PUBLIC_SYMBOLS) string(COMPARE NOTEQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DENABLE_HIDDEN_SYMBOLS) else() set(ENABLE_PUBLIC_SYMBOLS OFF) set(DENABLE_HIDDEN_SYMBOLS OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SHARED_AND_STATIC_LIBS=OFF -DCJSON_OVERRIDE_BUILD_SHARED_LIBS=OFF -DENABLE_PUBLIC_SYMBOLS=${ENABLE_PUBLIC_SYMBOLS} -DENABLE_HIDDEN_SYMBOLS=${DENABLE_HIDDEN_SYMBOLS} -DENABLE_TARGET_EXPORT=ON # Export CMake config files -DENABLE_CJSON_TEST=OFF -DENABLE_CUSTOM_COMPILER_FLAGS=OFF -DENABLE_FUZZING=OFF -DCMAKE_POLICY_DEFAULT_CMP0057=NEW ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cJSON) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(READ "${CURRENT_PACKAGES_DIR}/include/cjson/cJSON.h" _contents) if(ENABLE_PUBLIC_SYMBOLS) string(REPLACE "defined(CJSON_HIDE_SYMBOLS)" "0 /* defined(CJSON_HIDE_SYMBOLS) */" _contents "${_contents}") string(REPLACE "defined(CJSON_EXPORT_SYMBOLS)" "0 /* defined(CJSON_EXPORT_SYMBOLS) */" _contents "${_contents}") string(REPLACE "defined(CJSON_IMPORT_SYMBOLS)" "1 /* defined(CJSON_IMPORT_SYMBOLS) */" _contents "${_contents}") else() string(REPLACE "defined(CJSON_HIDE_SYMBOLS)" "1 /* defined(CJSON_HIDE_SYMBOLS) */" _contents "${_contents}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/cjson/cJSON.h" "${_contents}") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cjson/vcpkg.json ================================================ { "name": "cjson", "version": "1.7.19", "description": "Ultralightweight JSON parser in ANSI C", "homepage": "https://github.com/DaveGamble/cJSON", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "utils": { "description": "Enable building the cJSON_Utils library" } } } ================================================ FILE: ports/clamav/build.patch ================================================ diff --git a/cmake/FindCURSES.cmake b/cmake/FindCURSES.cmake index a0755c697..f60735a91 100644 --- a/cmake/FindCURSES.cmake +++ b/cmake/FindCURSES.cmake @@ -107,7 +107,7 @@ else() set(CURSES_INCLUDE "") find_library(CURSES_LIBRARY - NAMES curses + NAMES curses pdcurses PATHS ${PC_PDCurses_LIBRARY_DIRS} ) diff --git a/cmake/FindPthreadW32.cmake b/cmake/FindPthreadW32.cmake index 4fded1eb7..0d44af310 100644 --- a/cmake/FindPthreadW32.cmake +++ b/cmake/FindPthreadW32.cmake @@ -54,7 +54,7 @@ find_path(PThreadW32_INCLUDE_DIR PATH_SUFFIXES pthreadw32 ) find_library(PThreadW32_LIBRARY - NAMES pthreadVC2 + NAMES pthreadVC2 pthreadVC3 PATHS ${PC_PThreadW32_LIBRARY_DIRS} ) ================================================ FILE: ports/clamav/cmakefiles.patch ================================================ diff --git a/freshclam/CMakeLists.txt b/freshclam/CMakeLists.txt index 545d5d4ba..59cbbc4ce 100644 --- a/freshclam/CMakeLists.txt +++ b/freshclam/CMakeLists.txt @@ -28,18 +28,8 @@ target_link_libraries(freshclam-bin ClamAV::libfreshclam ClamAV::libclamav ClamAV::shared ) -if(WIN32) - install(TARGETS freshclam-bin DESTINATION ${CMAKE_INSTALL_PREFIX}) -else() - install(TARGETS freshclam-bin DESTINATION ${CMAKE_INSTALL_BINDIR}) -endif() -# Install an empty database directory -if(WIN32) - INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/database)") -else() - INSTALL(CODE "FILE(MAKE_DIRECTORY \${ENV}\${CMAKE_INSTALL_PREFIX}/share/clamav)") -endif() +install(TARGETS freshclam-bin) # now we rename resman-bin executable to resman using target properties set_target_properties( freshclam-bin diff --git a/libclamav/CMakeLists.txt b/libclamav/CMakeLists.txt index bb14510db..136ea308a 100644 --- a/libclamav/CMakeLists.txt +++ b/libclamav/CMakeLists.txt @@ -564,11 +564,7 @@ if(ENABLE_SHARED_LIB) else() target_link_libraries( clamav PUBLIC Iconv::Iconv ) endif() - if(WIN32) - install(TARGETS clamav DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(TARGETS clamav DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() + install(TARGETS clamav) if(LLVM_FOUND) target_link_directories( clamav PRIVATE ${LLVM_LIBRARY_DIRS} ) @@ -609,11 +605,7 @@ if(ENABLE_STATIC_LIB) COMPILE_FLAGS "${WARNCFLAGS}" VERSION ${LIBCLAMAV_VERSION} SOVERSION ${LIBCLAMAV_SOVERSION}) target_compile_definitions(clamav_static PUBLIC clamav_staticLIB) - if(WIN32) - install(TARGETS clamav_static DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(TARGETS clamav_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() + install(TARGETS clamav_static) add_library( ClamAV::libclamav_static ALIAS clamav_static ) endif() diff --git a/libclammspack/CMakeLists.txt b/libclammspack/CMakeLists.txt index 1b5edbd4d..bba781d76 100644 --- a/libclammspack/CMakeLists.txt +++ b/libclammspack/CMakeLists.txt @@ -73,11 +73,7 @@ endif() target_sources( mspack PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/mspack/mspack.h" ) -if(WIN32) - install(TARGETS mspack DESTINATION ${CMAKE_INSTALL_PREFIX}) -else() - install(TARGETS mspack DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif() +install(TARGETS mspack) # Public (forwarded) dependencies. target_link_libraries( mspack diff --git a/libclamunrar/CMakeLists.txt b/libclamunrar/CMakeLists.txt index 03dbc3387..267690b1c 100644 --- a/libclamunrar/CMakeLists.txt +++ b/libclamunrar/CMakeLists.txt @@ -90,10 +90,6 @@ target_link_libraries( clamunrar PUBLIC unrar_obj ) -if(WIN32) - install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_PREFIX}) -else() - install(TARGETS clamunrar DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif() +install(TARGETS clamunrar) add_library( ClamAV::libclamunrar ALIAS clamunrar ) diff --git a/libclamunrar_iface/CMakeLists.txt b/libclamunrar_iface/CMakeLists.txt index 42f81544d..61f21da33 100644 --- a/libclamunrar_iface/CMakeLists.txt +++ b/libclamunrar_iface/CMakeLists.txt @@ -55,11 +55,7 @@ if(ENABLE_UNRAR) PUBLIC ClamAV::libclamunrar_iface_iface) - if(WIN32) - install(TARGETS clamunrar_iface DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(TARGETS clamunrar_iface DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() + install(TARGETS clamunrar_iface) add_library( ClamAV::libclamunrar_iface ALIAS clamunrar_iface ) -endif() \ No newline at end of file +endif() diff --git a/libfreshclam/CMakeLists.txt b/libfreshclam/CMakeLists.txt index 6fb711818..27321ceb4 100644 --- a/libfreshclam/CMakeLists.txt +++ b/libfreshclam/CMakeLists.txt @@ -65,11 +65,7 @@ if(ENABLE_SHARED_LIB) set_target_properties(freshclam PROPERTIES COMPILE_FLAGS "${WARNCFLAGS}" VERSION ${LIBFRESHCLAM_VERSION} SOVERSION ${LIBFRESHCLAM_SOVERSION}) - if(WIN32) - install(TARGETS freshclam DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(TARGETS freshclam DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() + install(TARGETS freshclam) add_library( ClamAV::libfreshclam ALIAS freshclam ) endif() @@ -88,11 +84,7 @@ if(ENABLE_STATIC_LIB) COMPILE_FLAGS "${WARNCFLAGS}" VERSION ${LIBFRESHCLAM_VERSION} SOVERSION ${LIBFRESHCLAM_SOVERSION}) target_compile_definitions(freshclam_static PUBLIC freshclam_staticLIB) - if(WIN32) - install(TARGETS freshclam_static DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(TARGETS freshclam_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) - endif() + install(TARGETS freshclam_static) add_library( ClamAV::libfreshclam_static ALIAS freshclam_static ) endif() ================================================ FILE: ports/clamav/curl.patch ================================================ commit 59516af244a840aa95a8f15f978ac24ec97178cf Author: jzaddach Date: Fri Nov 27 14:24:31 2020 +0100 Fix curl usage diff --git a/CMakeLists.txt b/CMakeLists.txt index e85d03e20..9f1cd42c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -685,7 +685,7 @@ endif() add_subdirectory( libclamav ) -if(NOT LIBCLAMAV_ONLY) +if(NOT ENABLE_LIBCLAMAV_ONLY) add_subdirectory( shared ) add_subdirectory( libfreshclam ) diff --git a/shared/CMakeLists.txt b/shared/CMakeLists.txt index d9c8b6bfe..30df5a1a4 100644 --- a/shared/CMakeLists.txt +++ b/shared/CMakeLists.txt @@ -59,9 +59,13 @@ target_link_libraries( shared_obj PUBLIC ClamAV::libclamav ZLIB::ZLIB - CURL::libcurl OpenSSL::SSL OpenSSL::Crypto ) +if(CURL_FOUND) + target_link_libraries( shared_obj + PUBLIC + CURL::libcurl ) +endif() if(WIN32) target_link_libraries( shared_obj PUBLIC ================================================ FILE: ports/clamav/isnt.patch ================================================ diff --git a/libclamunrar/CMakeLists.txt b/libclamunrar/CMakeLists.txt index f7ce3848e..5bae50aca 100644 --- a/libclamunrar/CMakeLists.txt +++ b/libclamunrar/CMakeLists.txt @@ -85,6 +85,7 @@ target_sources( clamunrar "dll.hpp" ) if(WIN32) set_target_properties(clamunrar PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) + target_sources( clamunrar PRIVATE "isnt.cpp") endif() # Public (forwarded) dependencies. ================================================ FILE: ports/clamav/mspack.patch ================================================ diff --git a/cmake/FindMSPack.cmake b/cmake/FindMSPack.cmake index cad448f..4ce4f87 100644 --- a/cmake/FindMSPack.cmake +++ b/cmake/FindMSPack.cmake @@ -50,7 +50,7 @@ find_path(MSPack_INCLUDE_DIR PATH_SUFFIXES mspack ) find_library(MSPack_LIBRARY - NAMES mspack + NAMES libmspack PATHS ${PC_MSPack_LIBRARY_DIRS} ) diff --git a/libclamav/CMakeLists.txt b/libclamav/CMakeLists.txt index 136ea30..72db826 100644 --- a/libclamav/CMakeLists.txt +++ b/libclamav/CMakeLists.txt @@ -504,7 +504,7 @@ target_link_libraries( clamav_obj yara tomsfastmath bytecode_runtime - ClamAV::libmspack + ${MSPack_LIBRARIES} ClamAV::libclamunrar_iface_iface OpenSSL::SSL OpenSSL::Crypto @@ -547,7 +547,7 @@ if(ENABLE_SHARED_LIB) yara tomsfastmath bytecode_runtime - ClamAV::libmspack + ${MSPack_LIBRARIES} ClamAV::libclamunrar_iface_iface OpenSSL::SSL OpenSSL::Crypto @@ -588,7 +588,7 @@ if(ENABLE_STATIC_LIB) yara tomsfastmath bytecode_runtime - ClamAV::libmspack + ${MSPack_LIBRARIES} ClamAV::libclamunrar_iface_iface OpenSSL::SSL OpenSSL::Crypto ================================================ FILE: ports/clamav/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Cisco-Talos/clamav-devel REF clamav-0.103.11 SHA512 2d614b5006fe526d7bb43dfc691329f2de2fa2dc6cfc63fb93ba556ee26a9f87369bf072f59db0fed178c44413d68838b45ea572885c8d0a0bee81a410d5e055 FILE_DISAMBIGUATOR 1 HEAD_REF master PATCHES "build.patch" "cmakefiles.patch" "curl.patch" "mspack.patch" "isnt.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_LIBCLAMAV_ONLY=ON -DENABLE_DOCS=OFF -DENABLE_SHARED_LIB=ON -DENABLE_STATIC_LIB=OFF -DENABLE_EXTERNAL_MSPACK=ON ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # On Linux, clamav will still build and install clamav-config if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() ================================================ FILE: ports/clamav/vcpkg.json ================================================ { "name": "clamav", "version-semver": "0.103.11", "description": "ClamAV is an open-source anti-virus toolkit.", "homepage": "https://www.clamav.net", "supports": "!uwp & !static", "dependencies": [ "bzip2", "json-c", "libmspack", "libxml2", "openssl", "pcre2", "pthreads", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/clap-cleveraudio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO free-audio/clap REF "${VERSION}" SHA512 e99b20a8f8aeba9493d6d6110012a9147bb5facfdf78fce3d7ef4bfd2a16abba1b9e8b1ae55667eba9f11576d2b54d5391b972a09e52a3334ede81fe84ce22e8 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/clap") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/clap-cleveraudio/vcpkg.json ================================================ { "name": "clap-cleveraudio", "version-semver": "1.2.7", "description": "CLAP is an audio plugin ABI which defines a standard for Digital Audio Workstations and audio plugins to work together", "homepage": "https://cleveraudio.org/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clapack/FindLAPACK.cmake ================================================ #.rst: # clapack config for vcpkg # ------------ # # Find clapack as a valid LAPACK implementation. # # The module defines the same outputs as FindLAPACK by cmake include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) set(CLAPACK_VERSION "3.2.1") set(LAPACK_VERSION "${CLAPACK_VERSION}") #set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(Threads) find_package(clapack CONFIG REQUIRED) # This will be found ! if(NOT TARGET lapack) message(FATAL_ERROR "Target lapack was not created by find_package(clapack)!") endif() if(NOT TARGET LAPACK::LAPACK) add_library(LAPACK::LAPACK INTERFACE IMPORTED) target_link_libraries(LAPACK::LAPACK INTERFACE lapack) set(lib_prop IMPORTED_LOCATION) #if(@VCPKG_LIBRARY_LINKAGE@ STREQUAL "dynamic" AND WIN32) # set(lib_prop IMPORTED_IMPLIB) #endif() get_property(LAPACK_LIBRARY_RELEASE TARGET lapack PROPERTY ${lib_prop}_RELEASE) get_property(LAPACK_LIBRARY_DEBUG TARGET lapack PROPERTY ${lib_prop}_DEBUG) get_property(LAPACK_INCLUDE_DIR TARGET lapack PROPERTY INTERFACE_INCLUDE_DIRECTORIES) # Doesn't make much sense but ok. select_library_configurations(LAPACK) get_property(LAPACK_LINKER_FLAGS_RELEASE TARGET lapack PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE) get_property(LAPACK_LINKER_FLAGS_DEBUG TARGET lapack PROPERTY IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG) if(TARGET f2c) get_property(LAPACK_F2C_LIBRARY_RELEASE TARGET f2c PROPERTY ${lib_prop}_RELEASE) get_property(LAPACK_F2C_LIBRARY_DEBUG TARGET f2c PROPERTY ${lib_prop}_DEBUG) list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE REPLACE "^f2c$" "${LAPACK_F2C_LIBRARY_RELEASE}") list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG REPLACE "^f2c$" "${LAPACK_F2C_LIBRARY_DEBUG}") endif() list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG PREPEND "$<$:") list(TRANSFORM LAPACK_LINKER_FLAGS_DEBUG APPEND ">") list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE PREPEND "$<$>:") list(TRANSFORM LAPACK_LINKER_FLAGS_RELEASE APPEND ">") set(LAPACK_LIBRARIES "${LAPACK_LIBRARIES};${LAPACK_LINKER_FLAGS_DEBUG};${LAPACK_LINKER_FLAGS_RELEASE}") set(LAPACK95_LIBRARIES "${LAPACK_LIBRARIES}") set(LAPACK95_FOUND "TRUE") set(LAPACK_LINKER_FLAGS "${LAPACK_LIBRARIES}") endif() find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR ) mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY) ================================================ FILE: ports/clapack/arith_linux64.h ================================================ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Long int #define Intcast (int)(long) #define Double_Align #define X64_bit_pointers #define NO_LONG_LONG #define QNaN0 0x0 #define QNaN1 0xfff80000 ================================================ FILE: ports/clapack/arith_osx.h ================================================ /* Suitable for macOS on x86_64 and arm64 */ /* Not suitable for 32-bit macOS */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Long int #define Intcast (int)(long) #define Double_Align #define X64_bit_pointers #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/clapack/arith_win32.h ================================================ /* Windows 32-bit */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Double_Align #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/clapack/arith_win64.h ================================================ /* Windows 64-bit */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Double_Align #define X64_bit_pointers #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/clapack/fix-ConfigFile.patch ================================================ diff --git a/clapack-config.cmake.in b/clapack-config.cmake.in index cd19f1d..49af4f0 100644 --- a/clapack-config.cmake.in +++ b/clapack-config.cmake.in @@ -1 +1 @@ -include("@CLAPACK_BINARY_DIR@/clapack-targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/clapack-targets.cmake") ================================================ FILE: ports/clapack/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 414ac8e..db58b4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE) add_subdirectory(F2CLIBS) add_subdirectory(SRC) set(CLAPACK_VERSION 3.2.1) -export(TARGETS f2c lapack FILE ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-targets.cmake) +install(EXPORT clapack-targets FILE clapack-targets.cmake DESTINATION share/clapack) configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config-version.cmake @ONLY) configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt index 6fa3598..c855e38 100644 --- a/F2CLIBS/libf2c/CMakeLists.txt +++ b/F2CLIBS/libf2c/CMakeLists.txt @@ -63,8 +63,9 @@ set_property(TARGET f2c PROPERTY PREFIX lib) if(UNIX) target_link_libraries(f2c m) endif() -install(TARGETS f2c +install(TARGETS f2c EXPORT clapack-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + ARCHIVE DESTINATION lib + INCLUDES DESTINATION include) diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index 07dc8c7..2355225 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -377,8 +377,9 @@ if(BUILD_COMPLEX16) endif() add_library(lapack ${ALLOBJ} ${ALLXOBJ}) target_link_libraries(lapack ${BLAS_LIBRARIES} f2c) -install(TARGETS lapack +install(TARGETS lapack EXPORT clapack-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) + ARCHIVE DESTINATION lib + INCLUDES DESTINATION include) ================================================ FILE: ports/clapack/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/lapack-reference/copyright") message(FATAL_ERROR "Can't build ${PORT} if lapack-reference is installed. Please remove lapack-reference:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz" FILENAME "clapack-3.2.1.tgz" SHA512 cf19c710291ddff3f6ead7d86bdfdeaebca21291d9df094bf0a8ef599546b007757fb2dbb19b56511bb53ef7456eac0c73973b9627bf4d02982c856124428b49 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES remove_internal_blas.patch fix-ConfigFile.patch fix-install.patch support-uwp.patch ) set(ARITH_PATH) if(DEFINED CLAPACK_ARITH_PATH) set(ARITH_PATH "-DARITH_PATH=${CLAPACK_ARITH_PATH}") elseif(NOT TARGET_TRIPLET STREQUAL HOST_TRIPLET) if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) if(VCPKG_TARGET_ARCHITECTURE MATCHES "^x64$|^arm64$") set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_win64.h") else() set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_win32.h") endif() elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_osx.h") elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARITH_PATH "-DARITH_PATH=${CMAKE_CURRENT_LIST_DIR}/arith_linux64.h") else() message(WARNING "Unable to cross-compile clapack for ${VCPKG_TARGET_ARCHITECTURE}-${VCPKG_CMAKE_SYSTEM_NAME}. No arith.h is available and arithchk must be executed for the target. To fix this issue, define CLAPACK_ARITH_PATH in your triplet to the location of a pre-generated arith.h file. Continuing with trying to run arithchk anyway.") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${ARITH_PATH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() #TODO: fix the official exported targets, since they are broken (luckily it seems that no-one uses them for now) vcpkg_cmake_config_fixup(CONFIG_PATH share/clapack) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Install clapack wrappers. file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/wrapper") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clapack/remove_internal_blas.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 320ccc6..414ac8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 2.6) project(CLAPACK C) -enable_testing() -include(CTest) +find_package(BLAS REQUIRED) if(WIN32 AND NOT CYGWIN) set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/winsecond.c) @@ -11,7 +10,6 @@ else() set(SECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/second.c) set(DSECOND_SRC ${CLAPACK_SOURCE_DIR}/INSTALL/dsecnd.c) endif() -enable_testing() option(USE_BLAS_WRAP "pre-pend f2c_ to each function in blas" OFF) if(NOT USE_BLAS_WRAP) # _zrotg_ seems to be missing in the wrap header @@ -19,16 +17,15 @@ if(NOT USE_BLAS_WRAP) endif() include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE) add_subdirectory(F2CLIBS) -add_subdirectory(BLAS) add_subdirectory(SRC) -add_subdirectory(TESTING) set(CLAPACK_VERSION 3.2.1) -set(CPACK_PACKAGE_VERSION_MAJOR 3) -set(CPACK_PACKAGE_VERSION_MINOR 2) -set(CPACK_PACKAGE_VERSION_PATCH 1) -include(CPack) -export(TARGETS f2c blas lapack FILE clapack-targets.cmake) +export(TARGETS f2c lapack FILE ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-targets.cmake) configure_file(${CLAPACK_SOURCE_DIR}/clapack-config-version.cmake.in - ${CLAPACK_BINARY_DIR}/clapack-config-version.cmake @ONLY) + ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config-version.cmake @ONLY) configure_file(${CLAPACK_SOURCE_DIR}/clapack-config.cmake.in - ${CLAPACK_BINARY_DIR}/clapack-config.cmake @ONLY) + ${CMAKE_INSTALL_PREFIX}/share/clapack/clapack-config.cmake @ONLY) +install(FILES + ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/clapack.h + ${CMAKE_CURRENT_LIST_DIR}/INCLUDE/f2c.h + DESTINATION include) + diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt index 43d7b3f..6fa3598 100644 --- a/F2CLIBS/libf2c/CMakeLists.txt +++ b/F2CLIBS/libf2c/CMakeLists.txt @@ -60,3 +60,11 @@ include_directories(${CLAPACK_SOURCE_DIR}/F2CLIBS/libf2c) include_directories(${CLAPACK_BINARY_DIR}/F2CLIBS/libf2c) add_library(f2c ${OFILES} ${CMAKE_CURRENT_BINARY_DIR}/arith.h) set_property(TARGET f2c PROPERTY PREFIX lib) +if(UNIX) + target_link_libraries(f2c m) +endif() +install(TARGETS f2c + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index ac4cce3..07dc8c7 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -376,5 +376,9 @@ if(BUILD_COMPLEX16) set(ALLOBJ ${ZLASRC} ${ALLAUX} ${DZLAUX}) endif() add_library(lapack ${ALLOBJ} ${ALLXOBJ}) -target_link_libraries(lapack blas) +target_link_libraries(lapack ${BLAS_LIBRARIES} f2c) +install(TARGETS lapack + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) ================================================ FILE: ports/clapack/support-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index db58b4e..0fb61a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,9 @@ if(NOT USE_BLAS_WRAP) # _zrotg_ seems to be missing in the wrap header add_definitions(-DNO_BLAS_WRAP) endif() +if (MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE) +endif() include_directories(${CLAPACK_SOURCE_DIR}/INCLUDE) add_subdirectory(F2CLIBS) add_subdirectory(SRC) diff --git a/F2CLIBS/libf2c/CMakeLists.txt b/F2CLIBS/libf2c/CMakeLists.txt index 094614a..e5b40ab 100644 --- a/F2CLIBS/libf2c/CMakeLists.txt +++ b/F2CLIBS/libf2c/CMakeLists.txt @@ -44,12 +44,19 @@ if(UNIX) endif() set_target_properties(arithchk PROPERTIES COMPILE_DEFINITIONS "NO_FPINIT;NO_LONG_LONG") + +if (ARITH_PATH) +configure_file( + "${ARITH_PATH}" + "${CMAKE_CURRENT_BINARY_DIR}/arith.h" + COPYONLY) +else() ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/arith.h COMMAND arithchk > ${CMAKE_CURRENT_BINARY_DIR}/arith.h DEPENDS arithchk ) - +endif() set(OFILES ${MISC} ${POW} ${CX} ${DCX} ${REAL} ${DBL} ${INT} ${HALF} ${CMP} ${EFL} ${CHAR} ${I77} ${TIME}) diff --git a/F2CLIBS/libf2c/inquire.c b/F2CLIBS/libf2c/inquire.c index 5936a67..4846d41 100644 --- a/F2CLIBS/libf2c/inquire.c +++ b/F2CLIBS/libf2c/inquire.c @@ -32,7 +32,7 @@ integer f_inqu(inlist *a) { byfile=1; g_char(a->infile,a->infilen,buf); #ifdef NON_UNIX_STDIO - x = access(buf,0) ? -1 : 0; + x = _access(buf,0) ? -1 : 0; for(i=0,p=NULL;inext) if (nl == y->nl) return y; @@ -308,7 +308,7 @@ x_rsne(cilist *a) char buf[64]; hashtab *ht; Vardesc *v; - dimen *dn, *dn0, *dn1; + dimen *dn = NULL, *dn0 = NULL, *dn1; ftnlen *dims, *dims1; ftnlen b, b0, b1, ex, no, nomax, size, span; ftnint no1, no2, type; ================================================ FILE: ports/clapack/vcpkg-cmake-wrapper.cmake ================================================ message(STATUS "Using VCPKG FindLAPACK from package 'clapack'") set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH}) ================================================ FILE: ports/clapack/vcpkg.json ================================================ { "name": "clapack", "version": "3.2.1", "port-version": 24, "description": "CLAPACK (f2c'ed version of LAPACK)", "homepage": "https://netlib.org/lapack/", "license": null, "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clara/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO philsquared/Clara REF v1.1.5 SHA512 10aed7452eaf95c785899086118181615d29496d9f6e5b7054005b565afb642fcdf18b87ebb2dae4e9e365c434be9463c1a5d1a4c4ab17b95a87b89a7f7e3b08 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/single_include/clara.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/share/clara RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/clara/vcpkg.json ================================================ { "name": "clara", "version": "1.1.5", "port-version": 2, "description": "A simple to use command line parser for C++", "homepage": "https://github.com/philsquared/Clara" } ================================================ FILE: ports/clay/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nicbarker/clay REF "v${VERSION}" SHA512 f454940397653fbd845b05ad484405abf197c3063959fe7762d6bf94c94bc6e5046cedd2f80b52fc89cee4299567861c91b992539f9aa661b729a5a521719343 HEAD_REF main ) file(COPY "${SOURCE_PATH}/clay.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/clay/vcpkg.json ================================================ { "name": "clay", "version": "0.14", "description": "High performance UI layout library in C", "homepage": "https://www.nicbarker.com/clay", "license": "Zlib" } ================================================ FILE: ports/clblas/Fix-BuildDLL.patch ================================================ diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt index f2d5a88..8f84133 100644 --- a/src/library/CMakeLists.txt +++ b/src/library/CMakeLists.txt @@ -910,11 +910,6 @@ endif( ) include( InstallRequiredSystemLibraries ) -# Install necessary runtime files for debug builds -install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} - CONFIGURATIONS Debug - DESTINATION ${CLBLAS_RUNTIME_DESTINATION} ) - # Install all *.pdb files for debug builds install( DIRECTORY ${PROJECT_BINARY_DIR}/staging/ DESTINATION ${CLBLAS_RUNTIME_DESTINATION} ================================================ FILE: ports/clblas/abs-arm.patch ================================================ diff --git a/src/library/blas/gens/gemv.c b/src/library/blas/gens/gemv.c index 9835482..8bf3476 100644 --- a/src/library/blas/gens/gemv.c +++ b/src/library/blas/gens/gemv.c @@ -21,6 +21,7 @@ #include #include +#include // for abs(int) #include #include #include diff --git a/src/library/blas/gens/symv.c b/src/library/blas/gens/symv.c index 47c8f1d..31ab3c5 100644 --- a/src/library/blas/gens/symv.c +++ b/src/library/blas/gens/symv.c @@ -21,6 +21,7 @@ #include #include +#include // for abs(int) #include #include #include ================================================ FILE: ports/clblas/cmake.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6a88c41..05b8029 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -276,6 +276,9 @@ endif() # This will define OPENCL_FOUND find_package( OpenCL ${OPENCL_VERSION} ) +set( OPENCL_FOUND ${OpenCL_FOUND}) +set( OPENCL_LIBRARIES ${OpenCL_LIBRARIES} ) +set( OPENCL_INCLUDE_DIRS ${OpenCL_INCLUDE_DIRS} ) # Find Boost on the system, and configure the type of boost build we want set( Boost_USE_MULTITHREADED ON ) diff --git a/src/clBLASConfig.cmake.in b/src/clBLASConfig.cmake.in index f52d1d6..464feca 100644 --- a/src/clBLASConfig.cmake.in +++ b/src/clBLASConfig.cmake.in @@ -1,3 +1,3 @@ include(${CMAKE_CURRENT_LIST_DIR}/clBLASTargets.cmake) -get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE) +get_filename_component(CLBLAS_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/../include ABSOLUTE) set(CLBLAS_LIBRARIES clBLAS) diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt index 5164898..f2d5a88 100644 --- a/src/library/CMakeLists.txt +++ b/src/library/CMakeLists.txt @@ -894,7 +894,7 @@ install( TARGETS clBLAS EXPORT Library RUNTIME DESTINATION bin${SUFFIX_BIN} LIBRARY DESTINATION lib${SUFFIX_LIB} - ARCHIVE DESTINATION lib${SUFFIX_LIB}/import + ARCHIVE DESTINATION lib${SUFFIX_LIB} ) # For debug builds, include the debug runtimes into the package for testing on non-developer machines ================================================ FILE: ports/clblas/fix-cmake-4.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 75df37a..4e31cd3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -103,19 +103,19 @@ else( ) endif( ) # Define a version for the code -if( NOT DEFINED clBLAS_VERSION_MAJOR ) - set( clBLAS_VERSION_MAJOR 2 ) +if( NOT DEFINED CLBLAS_VERSION_MAJOR ) + set( CLBLAS_VERSION_MAJOR 2 ) endif( ) -if( NOT DEFINED clBLAS_VERSION_MINOR ) - set( clBLAS_VERSION_MINOR 12 ) +if( NOT DEFINED CLBLAS_VERSION_MINOR ) + set( CLBLAS_VERSION_MINOR 12 ) endif( ) -if( NOT DEFINED clBLAS_VERSION_PATCH ) - set( clBLAS_VERSION_PATCH 0 ) +if( NOT DEFINED CLBLAS_VERSION_PATCH ) + set( CLBLAS_VERSION_PATCH 0 ) endif( ) -set( clBLAS_VERSION "${clBLAS_VERSION_MAJOR}.${clBLAS_VERSION_MINOR}.${clBLAS_VERSION_PATCH}") +set( clBLAS_VERSION "${CLBLAS_VERSION_MAJOR}.${CLBLAS_VERSION_MINOR}.${CLBLAS_VERSION_PATCH}") # Increment this if we break backward compatibility. set( clBLAS_SOVERSION 2 ) @@ -425,9 +425,9 @@ endif( ) set( CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${clBLAS_VERSION}-${CMAKE_HOST_SYSTEM_NAME}-Source") -set( CPACK_PACKAGE_VERSION_MAJOR ${clBLAS_VERSION_MAJOR} ) -set( CPACK_PACKAGE_VERSION_MINOR ${clBLAS_VERSION_MINOR} ) -set( CPACK_PACKAGE_VERSION_PATCH ${clBLAS_VERSION_PATCH} ) +set( CPACK_PACKAGE_VERSION_MAJOR ${CLBLAS_VERSION_MAJOR} ) +set( CPACK_PACKAGE_VERSION_MINOR ${CLBLAS_VERSION_MINOR} ) +set( CPACK_PACKAGE_VERSION_PATCH ${CLBLAS_VERSION_PATCH} ) set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL implementation of a BLAS library") set( CPACK_PACKAGE_VENDOR "Neutral") set( CPACK_SOURCE_IGNORE_FILES "/\\\\.hg/;/\\\\.svn/;/\\\\.git/" ) diff --git a/src/clBLAS.version.h.in b/src/clBLAS.version.h.in index a05cbce..ab22a87 100644 --- a/src/clBLAS.version.h.in +++ b/src/clBLAS.version.h.in @@ -17,6 +17,6 @@ /* the configured version and settings for clblas */ -#define clblasVersionMajor @clBLAS_VERSION_MAJOR@ -#define clblasVersionMinor @clBLAS_VERSION_MINOR@ -#define clblasVersionPatch @clBLAS_VERSION_PATCH@ +#define clblasVersionMajor @CLBLAS_VERSION_MAJOR@ +#define clblasVersionMinor @CLBLAS_VERSION_MINOR@ +#define clblasVersionPatch @CLBLAS_VERSION_PATCH@ ================================================ FILE: ports/clblas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO clMathLibraries/clBLAS REF v2.12 SHA512 5d9b0c58adde69e83d95e9c713e0cdc5f64785fe7e05553a14c57fa483c4ef39e9dc780c26880a7f15924967d5ce4ea29035c29d63eac7ee5a2ae5ddacac2b72 HEAD_REF master PATCHES cmake.patch Fix-BuildDLL.patch abs-arm.patch fix-cmake-4.diff # https://github.com/clMathLibraries/clBLAS/pull/364 ) # v2.12 has a very old FindOpenCL.cmake using OPENCL_ vs. OpenCL_ var names # conflicting with the built-in, more modern FindOpenCL.cmake file(REMOVE "${SOURCE_PATH}/src/FindOpenCL.cmake") vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS -DBUILD_TEST=OFF -DBUILD_KTEST=OFF -DSUFFIX_LIB= -DPYTHON_EXECUTABLE=${PYTHON3} ) vcpkg_cmake_install() 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") if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.pdb" "${CURRENT_PACKAGES_DIR}/debug/bin/clBLAS-tune.exe" "${CURRENT_PACKAGES_DIR}/bin/clBLAS-tune.exe" ) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/clBLAS) endif() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/clblas" RENAME copyright) ================================================ FILE: ports/clblas/vcpkg.json ================================================ { "name": "clblas", "version": "2.12", "port-version": 8, "description": "clBLAS is an OpenCL 1.2 accelerated BLAS (Basic Linear Algebra Subsystem) library.", "license": "Apache-2.0", "supports": "!(windows & arm)", "dependencies": [ "opencl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clblast/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CNugteren/CLBlast REF "${VERSION}" SHA512 cc93afd4e4860789c4fed8a82bb0019f039285060e74aa65a1916bf061aaa67cc6dc675000b28500046062f40570472abd9c34c210d130e10b8e5c591ceb8ad7 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTUNERS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CLBlast) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clblast/vcpkg.json ================================================ { "name": "clblast", "version": "1.6.3", "description": "A modern, lightweight, performant and tunable OpenCL BLAS library written in C++11.", "homepage": "https://github.com/CNugteren/CLBlast", "license": "Apache-2.0", "dependencies": [ "opencl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cld3/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fa3908..37e9944 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,11 @@ # This cmake scripts only builds a static cld3 lib and the unittests. -project(cld3) # Old versions of cmake dont search/find protobuf lite cmake_minimum_required(VERSION 3.9) +project(cld3) -find_package(Protobuf REQUIRED) +find_package(Protobuf CONFIG REQUIRED) message(STATUS "Protobuf_FOUND= ${Protobuf_FOUND}") message(STATUS "Protobuf_VERSION= ${Protobuf_VERSION}") message(WARNING "Protobuf 2.5 and CLD3 seems happy together. This script does NOT check if your verison of protobuf is compatible.") @@ -20,9 +20,6 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/misc/myprotobuf.cmake) my_protobuf_generate_cpp(cld_3/protos PROTO_SRCS PROTO_HDRS src/feature_extractor.proto src/sentence.proto src/task_spec.proto) message(STATUS "PROTO_HDRS= ${PROTO_HDRS}") -add_definitions(-fPIC) # Position Independant Code -add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) -add_definitions(-std=c++11) # Needed for std::to_string(), ... include_directories(${CMAKE_CURRENT_BINARY_DIR} ${Protobuf_INCLUDE_DIRS}) # needed to include generated pb headers @@ -58,6 +55,10 @@ add_library(${PROJECT_NAME} src/script_span/fixunicodevalue.cc ) +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) +target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf-lite) + +if(BUILD_TESTS) # unit tests exec: add_executable(language_identifier_main src/language_identifier_main.cc) target_link_libraries(language_identifier_main cld3 ${Protobuf_LITE_LIBRARIES}) @@ -67,3 +68,4 @@ target_link_libraries(getonescriptspan_test cld3 ${Protobuf_LITE_LIBRARIES}) add_executable(language_identifier_features_test src/language_identifier_features_test.cc) target_link_libraries(language_identifier_features_test cld3 ${Protobuf_LITE_LIBRARIES}) +endif() diff --git a/src/base.h b/src/base.h index 20189e2..3c610e3 100644 --- a/src/base.h +++ b/src/base.h @@ -71,7 +71,7 @@ typedef unsigned short uint16; // NOLINT typedef signed int char32; #endif // SWIG -#ifdef COMPILER_MSVC +#ifdef _MSC_VER typedef __int64 int64; #else typedef long long int64; // NOLINT diff --git a/src/script_span/utf8statetable.cc b/src/script_span/utf8statetable.cc index 8fcfb1e..87da972 100644 --- a/src/script_span/utf8statetable.cc +++ b/src/script_span/utf8statetable.cc @@ -17,7 +17,7 @@ // 32- or 16-bit Unicode values. // -#ifdef COMPILER_MSVC +#ifdef _MSC_VER // MSVC warns: warning C4309: 'initializing' : truncation of constant value // But the value is in fact not truncated. 0xFF still comes out 0xFF at // runtime. diff --git a/src/sentence_features.h b/src/sentence_features.h index cc0be88..e2e27d2 100644 --- a/src/sentence_features.h +++ b/src/sentence_features.h @@ -34,7 +34,7 @@ using WholeSentenceExtractor = FeatureExtractor; // for clang's -Wundefined-var-template. However, MSVC has a bug which treats // this declaration as a definition, leading to multiple definition errors, so // omit this on MSVC. -#if !defined(COMPILER_MSVC) +#if !defined(_MSC_VER) template <> WholeSentenceFeature::Registry *RegisterableClass::registry_; ================================================ FILE: ports/cld3/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/cld3 REF b48dc46512566f5a2d41118c8c1116c4f96dc661 SHA512 c3650ffbf5855aaf04d03930f01c6efd76e1f2b2d47365348721f16531a14653ae5b3aff8fefa8e5fa1c769fdf1a9b441a88bc687f97f8c579b84f17c6984c9e HEAD_REF master PATCHES fix-build.patch unofficial-export.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-cld3Config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-cld3") vcpkg_cmake_config_fixup(CONFIG_PATH share/unofficial-cld3 PACKAGE_NAME unofficial-cld3) file(GLOB PUBLIC_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/*.h") file(INSTALL ${PUBLIC_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/cld3") file(GLOB HEADERS_SCRIPT_SPAN_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/script_span/*.h") file(INSTALL ${HEADERS_SCRIPT_SPAN_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/cld3/script_span") file(GLOB HEADERS_PROTO_FILES LIST_DIRECTORIES false "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/cld_3/protos/*.h") file(INSTALL ${HEADERS_PROTO_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/cld_3/protos") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cld3/unofficial-cld3Config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(Protobuf) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-cld3-targets.cmake") ================================================ FILE: ports/cld3/unofficial-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 37e9944..fb27632 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,19 @@ add_library(${PROJECT_NAME} target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf-lite) +target_include_directories(${PROJECT_NAME} PUBLIC $) + +install(TARGETS ${PROJECT_NAME} + EXPORT unofficial-cld3-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install(EXPORT unofficial-cld3-targets + NAMESPACE unofficial::cld3:: + DESTINATION share/unofficial-cld3 +) if(BUILD_TESTS) # unit tests exec: ================================================ FILE: ports/cld3/vcpkg.json ================================================ { "name": "cld3", "version": "3.0.14", "port-version": 2, "description": "Compact Language Detector v3", "homepage": "https://github.com/google/cld3", "license": "Apache-2.0", "dependencies": [ "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cleishm-frequency-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cleishm/frequency-cpp REF "v${VERSION}" SHA512 afe81f653573fc4222ac96979b949d5714db2aba444d6965ee5e71a015ffdc8008709c0180af7ffe5295920cb99185849ff359d1fe5fdb8ef7f9f8cfcdc504b3 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFREQUENCY_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME frequency CONFIG_PATH lib/cmake/frequency) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cleishm-frequency-cpp/usage ================================================ The package frequency is a header-only library and can be used from CMake via: find_package(frequency CONFIG REQUIRED) target_link_libraries(main PRIVATE freq::frequency) ================================================ FILE: ports/cleishm-frequency-cpp/vcpkg.json ================================================ { "name": "cleishm-frequency-cpp", "version": "1.1.2", "description": "Type-safe frequency handling library modeled after std::chrono", "homepage": "https://github.com/cleishm/frequency-cpp", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cleishm-thermo-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cleishm/thermo-cpp REF "v${VERSION}" SHA512 5f4f433c70f6178edef655fb3ed48419e06b3c9984c3f8a868bff31c82f8a1cdf060152c2646ec094a9eab4aa214e3b6977fc48ea2b384305d152c3a978e3276 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTHERMO_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME thermo CONFIG_PATH lib/cmake/thermo) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cleishm-thermo-cpp/usage ================================================ The package thermo is a header-only library and can be used from CMake via: find_package(thermo CONFIG REQUIRED) target_link_libraries(main PRIVATE thermo::thermo) ================================================ FILE: ports/cleishm-thermo-cpp/vcpkg.json ================================================ { "name": "cleishm-thermo-cpp", "version": "1.2.1", "description": "Type-safe temperature handling library modeled after std::chrono", "homepage": "https://github.com/cleishm/thermo-cpp", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clfft/fix-build.patch ================================================ diff --git a/src/library/generator.transpose.cpp b/src/library/generator.transpose.cpp index a04a43a..5c15882 100644 --- a/src/library/generator.transpose.cpp +++ b/src/library/generator.transpose.cpp @@ -1089,8 +1089,18 @@ clfftStatus genSwapKernelGeneral(const FFTGeneratedTransposeNonSquareAction::Sig //std::string funcName = "swap_nonsquare_" + std::to_string(smaller_dim) + "_" + std::to_string(dim_ratio); std::string funcName = "swap_nonsquare_"; - std::string smaller_dim_str = static_cast(&(std::ostringstream() << smaller_dim))->str(); - std::string dim_ratio_str = static_cast(&(std::ostringstream() << dim_ratio))->str(); + std::string smaller_dim_str; + { + std::ostringstream oss; + oss << smaller_dim; + smaller_dim_str = oss.str(); + } + std::string dim_ratio_str; + { + std::ostringstream oss; + oss << dim_ratio; + dim_ratio_str = oss.str(); + } if(params.fft_N[0] > params.fft_N[1]) funcName = funcName + smaller_dim_str + "_" + dim_ratio_str; else ================================================ FILE: ports/clfft/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO clMathLibraries/clFFT REF v2.12.2 SHA512 19e9a4e06f76ae7c7808d1188677d5553c43598886a75328b7801ab2ca68e35206839a58fe2f958a44a6f7c83284dc9461cd0e21c37d1042bf82e24aad066be8 HEAD_REF master PATCHES tweak-install.patch fix-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS -DCMAKE_CXX_STANDARD=11 # 17 removes std::unary_function -DBUILD_LOADLIBRARIES=OFF -DBUILD_EXAMPLES=OFF -DSUFFIX_LIB= ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/clFFT) endif() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clfft/tweak-install.patch ================================================ diff --git a/src/clFFTConfig.cmake.in b/src/clFFTConfig.cmake.in index 5b58c35..ee749a2 100644 --- a/src/clFFTConfig.cmake.in +++ b/src/clFFTConfig.cmake.in @@ -1,3 +1,3 @@ include(${CMAKE_CURRENT_LIST_DIR}/clFFTTargets.cmake) -get_filename_component(CLFFT_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/include ABSOLUTE) +get_filename_component(CLFFT_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/@reldir@/../include ABSOLUTE) set(CLFFT_LIBRARIES clFFT) diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt index 132ef86..12ba905 100644 --- a/src/library/CMakeLists.txt +++ b/src/library/CMakeLists.txt @@ -90,6 +90,7 @@ target_link_libraries( clFFT ${OPENCL_LIBRARIES} ${CMAKE_DL_LIBS} ) set_target_properties( clFFT PROPERTIES VERSION ${CLFFT_VERSION} ) set_target_properties( clFFT PROPERTIES SOVERSION ${CLFFT_SOVERSION} ) set_target_properties( clFFT PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/staging" ) +set_target_properties( clFFT PROPERTIES INTERFACE_INCLUDE_DIRECTORIES $ ) if( CMAKE_COMPILER_IS_GNUCC ) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/clFFT.pc.in @@ -104,5 +105,5 @@ install( TARGETS clFFT EXPORT Library RUNTIME DESTINATION bin${SUFFIX_BIN} LIBRARY DESTINATION lib${SUFFIX_LIB} - ARCHIVE DESTINATION lib${SUFFIX_LIB}/import + ARCHIVE DESTINATION lib${SUFFIX_LIB} ) ================================================ FILE: ports/clfft/vcpkg.json ================================================ { "name": "clfft", "version": "2.12.2", "port-version": 7, "description": "clFFT is an OpenCL 1.2 accelerated Fast Fourier Transform library.", "homepage": "https://github.com/clMathLibraries/clFFT", "license": "Apache-2.0", "dependencies": [ "opencl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cli/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO daniele77/cli REF "v${VERSION}" SHA512 c6d7421ca9c2c483f2c8adc4b44ab65da9eb78132784c53ff77ca63734c39619e590ec61814b100dfca6520af803cd0616ce8a54d4b4aa2312bf324f7d6a0ffc HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cli) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cli/vcpkg.json ================================================ { "name": "cli", "version": "2.2.0", "description": "A library for interactive command line interfaces in modern C++", "homepage": "https://github.com/daniele77/cli", "license": "BSL-1.0", "dependencies": [ "boost-asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cli11/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CLIUtils/CLI11 REF "v${VERSION}" SHA512 3b17c02e120d6c14246157fcfef1e55c34462d8ee3adb55e49f4b180fc2e0d52ec4371505c009839c623ccc5bf4ac16c8c94707d10b1f1cb0e916c3402d2e7a6 HEAD_REF main PATCHES revert-1012-pkgconfig.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCLI11_BUILD_EXAMPLES=OFF -DCLI11_BUILD_DOCS=OFF -DCLI11_BUILD_TESTS=OFF -DCLI11_PRECOMPILED=ON -DCMAKE_CXX_STANDARD=17 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/CLI11) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/CLI/CLI.hpp" "#pragma once" "#pragma once\n#ifndef CLI11_COMPILE\n#define CLI11_COMPILE\n#endif") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cli11/revert-1012-pkgconfig.diff ================================================ diff --git a/cmake/CLI11GeneratePkgConfig.cmake b/cmake/CLI11GeneratePkgConfig.cmake index 7ed87f077..a9c5eb885 100644 --- a/cmake/CLI11GeneratePkgConfig.cmake +++ b/cmake/CLI11GeneratePkgConfig.cmake @@ -4,4 +4,4 @@ else() configure_file("cmake/CLI11.pc.in" "CLI11.pc" @ONLY) endif() -install(FILES "${PROJECT_BINARY_DIR}/CLI11.pc" DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig") +install(FILES "${PROJECT_BINARY_DIR}/CLI11.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ================================================ FILE: ports/cli11/vcpkg.json ================================================ { "name": "cli11", "version": "2.6.2", "description": "CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.", "homepage": "https://github.com/CLIUtils/CLI11", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clickhouse-cpp/fix-deps-and-build-type.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 24b71ba..5cd7446 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,28 +78,28 @@ IF (CLANG_WITH_LIB_STDCXX) ENDIF () IF (WITH_SYSTEM_ABSEIL) - FIND_PACKAGE(absl REQUIRED) + FIND_PACKAGE(absl CONFIG REQUIRED) ELSE () INCLUDE_DIRECTORIES (contrib/absl) SUBDIRS (contrib/absl/absl) ENDIF () IF (WITH_SYSTEM_LZ4) - FIND_PACKAGE(lz4 REQUIRED) + FIND_PACKAGE(lz4 CONFIG REQUIRED) ELSE () INCLUDE_DIRECTORIES (contrib/lz4/lz4) SUBDIRS (contrib/lz4/lz4) ENDIF () IF (WITH_SYSTEM_CITYHASH) - FIND_PACKAGE(cityhash REQUIRED) + FIND_PACKAGE(cityhash CONFIG REQUIRED) ELSE () INCLUDE_DIRECTORIES (contrib/cityhash/cityhash) SUBDIRS (contrib/cityhash/cityhash) ENDIF () IF (WITH_SYSTEM_ZSTD) - FIND_PACKAGE(zstd REQUIRED) + FIND_PACKAGE(zstd CONFIG REQUIRED) ELSE () INCLUDE_DIRECTORIES (contrib/zstd/zstd) SUBDIRS (contrib/zstd/zstd) @@ -153,5 +153,5 @@ if(DEBUG_DEPENDENCIES) print_target_debug_info(absl::int128) print_target_debug_info(cityhash::cityhash) print_target_debug_info(lz4::lz4) - print_target_debug_info(zstd::zstd) + print_target_debug_info(zstd::libzstd) endif() diff --git a/clickhouse/CMakeLists.txt b/clickhouse/CMakeLists.txt index 7669420..9a566ec 100644 --- a/clickhouse/CMakeLists.txt +++ b/clickhouse/CMakeLists.txt @@ -111,9 +111,9 @@ SET_TARGET_PROPERTIES (clickhouse-cpp-lib ) TARGET_LINK_LIBRARIES (clickhouse-cpp-lib absl::int128 - cityhash::cityhash + cityhash lz4::lz4 - zstd::zstd + zstd::libzstd ) TARGET_INCLUDE_DIRECTORIES (clickhouse-cpp-lib PUBLIC ${PROJECT_SOURCE_DIR} ================================================ FILE: ports/clickhouse-cpp/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ClickHouse/clickhouse-cpp REF "v${VERSION}" SHA512 4199ac2848b0544a2a9c4e03ca62f9a14e13652b09df62b2c95eda59c567cb8227099b9cb027f18d7bdb3a25ee41f01301a551f1bf98727bf89766f5e1cac3f5 HEAD_REF master PATCHES fix-deps-and-build-type.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl WITH_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWITH_SYSTEM_ABSEIL=ON -DWITH_SYSTEM_LZ4=ON -DWITH_SYSTEM_CITYHASH=ON -DWITH_SYSTEM_ZSTD=ON -DDEBUG_DEPENDENCIES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clickhouse-cpp/vcpkg.json ================================================ { "name": "clickhouse-cpp", "version": "2.6.0", "description": "C++ client for Yandex ClickHouse", "homepage": "https://github.com/ClickHouse/clickhouse-cpp", "license": "Apache-2.0", "dependencies": [ "abseil", "cityhash", "lz4", { "name": "vcpkg-cmake", "host": true }, "zstd" ], "features": { "openssl": { "description": "Enable OpenSSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/clipboardxx/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 07c06cc..a3d78ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE include) # install header files install(FILES include/clipboardxx.hpp DESTINATION include) +install(DIRECTORY include/detail DESTINATION include) # dependencies if(UNIX AND NOT APPLE) ================================================ FILE: ports/clipboardxx/portfile.cmake ================================================ # Download the code from GitHub vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Arian8j2/ClipboardXX REF v${VERSION} SHA512 f5435698cf1c10609c22140974fc86c672a331c419e6c6faa94e9fdc14fb0b0dd59f1f16a062f18320d7c523ba1951d917ef607a307c1c3fa88c71ef8e34b4ca HEAD_REF master PATCHES fix-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") configure_file( "${CMAKE_CURRENT_LIST_DIR}/unofficial-clipboardxx-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-clipboardxx/unofficial-clipboardxx-config.cmake" @ONLY ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clipboardxx/unofficial-clipboardxx-config.cmake.in ================================================ 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() add_library(unofficial::ClipboardXX INTERFACE IMPORTED) set_target_properties(unofficial::ClipboardXX PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) if("@VCPKG_TARGET_IS_LINUX@") set_target_properties(unofficial::ClipboardXX PROPERTIES INTERFACE_LINK_LIBRARIES "xcb;pthread" ) endif() unset(_IMPORT_PREFIX) ================================================ FILE: ports/clipboardxx/vcpkg.json ================================================ { "name": "clipboardxx", "version": "0.5", "port-version": 1, "description": "Header only, lightweight and cross platform C++ library for copy and paste text from clipboard.", "homepage": "https://github.com/Arian8j2/ClipboardXX", "license": "MIT", "supports": "!osx & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clipp/Fix-result_of-deprecated-in-C++20.patch ================================================ diff --git a/include/clipp.h b/include/clipp.h index d7b101e..a1bec2d 100644 --- a/include/clipp.h +++ b/include/clipp.h @@ -155,16 +155,27 @@ namespace traits { * @brief function (class) signature type trait * *****************************************************************************/ +#if defined(__cpp_lib_is_invocable) template constexpr auto check_is_callable(int) -> decltype( std::declval()(std::declval()...), std::integral_constant::type>::value>{} ); + std::is_same::type>::value>{} ); -template +template constexpr auto -check_is_callable(long) -> std::false_type; +check_is_callable_without_arg(int) -> decltype( + std::declval()(), + std::integral_constant::type>::value>{} ); +#else +template +constexpr auto +check_is_callable(int) -> decltype( + std::declval()(std::declval()...), + std::integral_constant::type>::value>{} ); template constexpr auto @@ -172,6 +183,11 @@ check_is_callable_without_arg(int) -> decltype( std::declval()(), std::integral_constant::type>::value>{} ); +#endif + +template +constexpr auto +check_is_callable(long) -> std::false_type; template constexpr auto ================================================ FILE: ports/clipp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "muellan/clipp" REF 2c32b2f1f7cc530b1ec1f62c92f698643bb368db SHA512 4645fafe85a8099ea97b85e939747a12e9b3b92213b5b8207a9c277537377b77b5daebd88a4c090ea89cfff2937a9fc155da6e8b5558574d7129227c28826e1c HEAD_REF master PATCHES Fix-result_of-deprecated-in-C++20.patch # https://github.com/muellan/clipp/pull/54 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clipp/vcpkg.json ================================================ { "name": "clipp", "version-date": "2019-04-30", "port-version": 2, "description": "command line interfaces for modern C++", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/clipper2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AngusJohnson/Clipper2 REF "Clipper2_${VERSION}" SHA512 ce753ae3752b7516a9e0cb23c9788d9533c204819d5451ee50cf3b69a06e24165fa9f5270781764c036ad597eef83cf80532a5bebce5c96f5230179dc3ed499a HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/CPP" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCLIPPER2_EXAMPLES=OFF -DCLIPPER2_TESTS=OFF -DCLIPPER2_UTILS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/clipper2/usage ================================================ The package clipper2 can be imported via CMake FindPkgConfig module: # Clipper2 find_package(PkgConfig REQUIRED) pkg_check_modules(Clipper2 REQUIRED IMPORTED_TARGET Clipper2) target_link_libraries(main PkgConfig::Clipper2) # Clipper2Z find_package(PkgConfig REQUIRED) pkg_check_modules(Clipper2Z REQUIRED IMPORTED_TARGET Clipper2Z) target_link_libraries(main PkgConfig::Clipper2Z) clipper2 provides CMake targets: # Clipper2 find_package(Clipper2 CONFIG REQUIRED) target_link_libraries(main PRIVATE Clipper2::Clipper2) # Clipper2Z find_package(Clipper2 CONFIG REQUIRED) target_link_libraries(main PRIVATE Clipper2::Clipper2Z) ================================================ FILE: ports/clipper2/vcpkg.json ================================================ { "name": "clipper2", "version": "2.0.1", "description": "Polygon Clipping and Offsetting", "homepage": "http://www.angusj.com/clipper2", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clockutils/add-missing-thread-header.patch ================================================ diff --git a/include/clockUtils/sockets/TcpSocket.h b/include/clockUtils/sockets/TcpSocket.h index 3bb97a9..cdd7810 100644 --- a/include/clockUtils/sockets/TcpSocket.h +++ b/include/clockUtils/sockets/TcpSocket.h @@ -33,6 +33,7 @@ #include #include #include +#include #include "clockUtils/errors.h" diff --git a/include/clockUtils/sockets/UdpSocket.h b/include/clockUtils/sockets/UdpSocket.h index c5da451..ea0a518 100644 --- a/include/clockUtils/sockets/UdpSocket.h +++ b/include/clockUtils/sockets/UdpSocket.h @@ -33,6 +33,7 @@ #include #include #include +#include #include "clockUtils/errors.h" ================================================ FILE: ports/clockutils/cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 89b42c8398..5c77383813 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ IF(WITH_TESTING AND UNIX) ENDIF(WITH_TESTING AND UNIX) set (CLANG_FLAGS "-Wstring-plus-int") -IF(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang) +IF(${CMAKE_CXX_COMPILER_ID} MATCHES Clang) set (CMAKE_CXX_FLAGS_DEBUG "${CXX_FLAGS} ${CLANG_FLAGS} -g") set (CMAKE_CXX_FLAGS_MINSIZEREL "${CXX_FLAGS} ${CLANG_FLAGS} -0s -DNDEBUG") set (CMAKE_CXX_FLAGS_RELEASE "${CXX_FLAGS} ${CLANG_FLAGS} -O3 -DNDEBUG -Werror") @@ -141,7 +141,7 @@ ELSEIF(WIN32) ENDIF() SET(COMPILER_VERSION ${DEP_DIR_BUILD}) ELSEIF(UNIX) - IF(${CMAKE_CXX_COMPILER_ID} STREQUAL Clang) + IF(${CMAKE_CXX_COMPILER_ID} MATCHES Clang) SET(DEP_DIR_BUILD "clang") SET(UNIX_COMPILER "clang") ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) ================================================ FILE: ports/clockutils/disable-werror.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c77383..0c8029b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,13 +64,13 @@ set (CLANG_FLAGS "-Wstring-plus-int") IF(${CMAKE_CXX_COMPILER_ID} MATCHES Clang) set (CMAKE_CXX_FLAGS_DEBUG "${CXX_FLAGS} ${CLANG_FLAGS} -g") set (CMAKE_CXX_FLAGS_MINSIZEREL "${CXX_FLAGS} ${CLANG_FLAGS} -0s -DNDEBUG") - set (CMAKE_CXX_FLAGS_RELEASE "${CXX_FLAGS} ${CLANG_FLAGS} -O3 -DNDEBUG -Werror") - set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CXX_FLAGS} ${CLANG_FLAGS} -O2 -g -Werror") + set (CMAKE_CXX_FLAGS_RELEASE "${CXX_FLAGS} ${CLANG_FLAGS} -O3 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CXX_FLAGS} ${CLANG_FLAGS} -O2 -g") ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU) set (CMAKE_CXX_FLAGS_DEBUG "${CXX_FLAGS} -g") set (CMAKE_CXX_FLAGS_MINSIZEREL "${CXX_FLAGS} -0s -DNDEBUG") - set (CMAKE_CXX_FLAGS_RELEASE "${CXX_FLAGS} -O3 -DNDEBUG -Werror") - set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CXX_FLAGS} -O2 -g -Werror") + set (CMAKE_CXX_FLAGS_RELEASE "${CXX_FLAGS} -O3 -DNDEBUG") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CXX_FLAGS} -O2 -g") ELSEIF(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC) set (CXX_FLAGS "/MP /W4 /wd4127 /D_WINSOCK_DEPRECATED_NO_WARNINGS /DNOMINMAX") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CXX_FLAGS}") ================================================ FILE: ports/clockutils/fix-warningC4643.patch ================================================ diff --git a/include/clockUtils/sockets/TcpSocket.h b/include/clockUtils/sockets/TcpSocket.h index 6e0d9c8..3bb97a9 100644 --- a/include/clockUtils/sockets/TcpSocket.h +++ b/include/clockUtils/sockets/TcpSocket.h @@ -57,9 +57,6 @@ #define INVALID_SOCKET -1 #endif -namespace std { - class thread; -} /* namespace std */ namespace clockUtils { enum class ClockError; namespace sockets { diff --git a/include/clockUtils/sockets/UdpSocket.h b/include/clockUtils/sockets/UdpSocket.h index 31eeeb5..c5da451 100644 --- a/include/clockUtils/sockets/UdpSocket.h +++ b/include/clockUtils/sockets/UdpSocket.h @@ -60,10 +60,6 @@ #define INVALID_SOCKET -1 #endif -namespace std { - class thread; -} /* namespace std */ - namespace clockUtils { enum class ClockError; namespace sockets { ================================================ FILE: ports/clockutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ClockworkOrigins/clockUtils REF 3651f232c27074c4ceead169e223edf5f00247c5 SHA512 ddb70cae9ced25de77a2df1854dac15e58a77347042ba3ee9c691f85f49edbc6539c84929a7477d429fb9161ba24c57d24d767793b8b1180216d5ddfc5d3ed6a HEAD_REF dev-1.2 PATCHES fix-warningC4643.patch add-missing-thread-header.patch cmake4.patch disable-werror.diff ) set(SHARED_FLAG OFF) set(USE_MSBUILD "") if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic") set(SHARED_FLAG ON) set(USE_MSBUILD WINDOWS_USE_MSBUILD) # MS Build only required for dynamic builds endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${USE_MSBUILD} OPTIONS -DWITH_LIBRARY_ARGPARSER=ON -DWITH_LIBRARY_COMPRESSION=ON -DWITH_LIBRARY_CONTAINER=ON -DWITH_LIBRARY_INIPARSER=ON -DWITH_LIBRARY_SOCKETS=ON -DWITH_TESTING=OFF -DCLOCKUTILS_BUILD_SHARED=${SHARED_FLAG} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clockutils/vcpkg.json ================================================ { "name": "clockutils", "version": "1.1.1", "port-version": 4, "description": "A lightweight c++ library for commonly needed tasks. Optimized for simplicity and speed.", "homepage": "https://github.com/ClockworkOrigins/clockUtils", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/clrng/001-build-fixup.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 65f51db..f010bb8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,7 +31,7 @@ # ######################################################################## -cmake_minimum_required( VERSION 2.8.10 ) +cmake_minimum_required( VERSION 3.0 ) if( CMAKE_GENERATOR MATCHES "NMake" ) option( NMAKE_COMPILE_VERBOSE "Print compile and link strings to the console" OFF ) @@ -127,7 +127,6 @@ if( BUILD64 ) set_property( GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE ) message( STATUS "64bit build - FIND_LIBRARY_USE_LIB64_PATHS TRUE" ) - set( SUFFIX_LIB_DEFAULT "64" ) else( ) set_property( GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE ) message( STATUS "32bit build - FIND_LIBRARY_USE_LIB64_PATHS FALSE" ) @@ -161,7 +160,8 @@ set( SUFFIX_BIN ${SUFFIX_BIN_DEFAULT} CACHE STRING "String to append to 'bin' in #endif( ) # This will define OPENCL_FOUND -find_package( OpenCL ) +find_package( OpenCL REQUIRED ) +find_package( Threads REQUIRED ) if( (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 2.8) ) message( STATUS "Cmake version 2.8 or greater needed to use GTest" ) @@ -170,7 +170,7 @@ else() find_package( GTest ) # Hack to get googletest v1.6 to work with vs2012 - if( MSVC11 ) + if( 0 ) add_definitions( "/D_VARIADIC_MAX=10" ) endif( ) endif() @@ -196,7 +196,7 @@ get_filename_component( C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME_WE ) # message( "CMAKE_C_COMPILER: " ${CMAKE_C_COMPILER} ) # Set common compile and link options -if( MSVC ) +if( 0 ) # Following options for nMake message( STATUS "Detected MSVS Ver: " ${MSVC_VERSION} ) @@ -206,6 +206,7 @@ if( MSVC ) string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}" ) elseif( CMAKE_COMPILER_IS_GNUCXX ) + if( 0 ) message( STATUS "Detected GNU fortran compiler." ) EXEC_PROGRAM( ${CMAKE_CXX_COMPILER} ARGS --version OUTPUT_VARIABLE vnum ) STRING(REGEX REPLACE ".*([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" vnum ${vnum}) @@ -216,6 +217,7 @@ elseif( CMAKE_COMPILER_IS_GNUCXX ) set( CMAKE_CXX_FLAGS "-pthread ${CMAKE_CXX_FLAGS}" ) set( CMAKE_C_FLAGS "-std=c11 -Wall -pedantic-errors -pthread ${CMAKE_C_FLAGS}" ) + endif() if( BUILD64 ) set( CMAKE_CXX_FLAGS "-m64 ${CMAKE_CXX_FLAGS}" ) diff --git a/src/library/CMakeLists.txt b/src/library/CMakeLists.txt index dbe479d..8717e58 100644 --- a/src/library/CMakeLists.txt +++ b/src/library/CMakeLists.txt @@ -62,8 +62,6 @@ set( clRNG.Headers private.h set( clRNG.Files ${clRNG.Source} ${clRNG.Headers} ) -# Include standard OpenCL headers -include_directories( ${OPENCL_INCLUDE_DIRS} ${PROJECT_BINARY_DIR}/include ../include ) if(BUILD_SHARED_LIBRARY) add_library( clRNG SHARED ${clRNG.Files} ) @@ -72,6 +70,15 @@ else() endif() target_link_libraries( clRNG ${OPENCL_LIBRARIES} ) +target_link_libraries( clRNG PUBLIC + OpenCL::OpenCL + Threads::Threads +) +target_include_directories( clRNG PUBLIC + $ + $ +) + set_target_properties( clRNG PROPERTIES VERSION ${CLRNG_VERSION} ) set_target_properties( clRNG PROPERTIES SOVERSION ${CLRNG_SOVERSION} ) set_target_properties( clRNG PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/staging" ) @@ -89,7 +96,7 @@ install( TARGETS clRNG EXPORT clRNG-Targets RUNTIME DESTINATION bin${SUFFIX_BIN} LIBRARY DESTINATION lib${SUFFIX_LIB} - ARCHIVE DESTINATION lib${SUFFIX_LIB}/import + ARCHIVE DESTINATION lib${SUFFIX_LIB} ) # CMake config files for clRNG @@ -139,9 +146,9 @@ endif( ) include( InstallRequiredSystemLibraries ) # Install necessary runtime files for debug builds -install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} - CONFIGURATIONS Debug - DESTINATION ${CLRNG_RUNTIME_DESTINATION} ) +#install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} +# CONFIGURATIONS Debug +# DESTINATION ${CLRNG_RUNTIME_DESTINATION} ) # Install all *.pdb files for debug builds install( DIRECTORY ${PROJECT_BINARY_DIR}/staging/ @@ -152,6 +159,6 @@ install( DIRECTORY ${PROJECT_BINARY_DIR}/staging/ # Install a snapshot of the source as it was for this build; useful for the .pdb's install( DIRECTORY ${PROJECT_SOURCE_DIR} - DESTINATION ${CLRNG_RUNTIME_DESTINATION} + DESTINATION "." OPTIONAL CONFIGURATIONS Debug ) ================================================ FILE: ports/clrng/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO clMathLibraries/clRNG REF 4a16519ddf52ee0a5f0b7e6288b0803b9019c13b SHA512 28bda5d2a156e7394917f8c40bd1e8e7b52cf680abc0ef50c2650b1d546c0a1d0bd47ceeccce3cd7c79c90a15494c3d27829e153613a7d8e18267ce7262eeb6e HEAD_REF master PATCHES 001-build-fixup.patch ) file(REMOVE ${SOURCE_PATH}/src/FindOpenCL.cmake) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND NOT VCPKG_CMAKE_SYSTEM_NAME) set(R123_SSE_FLAG [[-DCMAKE_C_FLAGS="/DR123_USE_SSE=0"]]) endif() # We only have x64 and x86 as valid archs, as arm64 fails fast string(COMPARE EQUAL "${VCPKG_TARGET_ARCHITECTURE}" "x64" BUILD64) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS -DBUILD_SHARED_LIBRARY=${BUILD_SHARED_LIBRARY} -DBUILD64=${BUILD64} -DBUILD_TEST=OFF -DBUILD_CLIENT=OFF ${R123_SSE_FLAG} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file( REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/clRNG) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clrng/vcpkg.json ================================================ { "name": "clrng", "version-date": "2020-12-01", "port-version": 3, "description": "clRNG is a library for uniform random number generation in OpenCL.", "homepage": "https://github.com/clMathLibraries/clRNG", "supports": "!arm64", "dependencies": [ "opencl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/clue/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(clue VERSION 1.0.0 LANGUAGES CXX) option(CLUE_BUILD_TEST "Build tests for clue" OFF) option(CLUE_BUILD_EXAMPLE "Build examples" OFF) include(GNUInstallDirs) include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include/clue.hpp") if(CLUE_BUILD_TEST) file(GLOB TEST_SOURCES "tests/*.cpp") add_executable(test_clue ${TEST_SOURCES}) target_include_directories(test_clue PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/tests") install(TARGETS test_clue RUNTIME DESTINATION tools) endif() if(CLUE_BUILD_EXAMPLE) file(GLOB EXAMPLES "examples/*.cpp") install(FILES ${EXAMPLES} DESTINATION examples) endif() install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/include/clue.hpp" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") # end of file ================================================ FILE: ports/clue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/clue REF v1.0.0 SHA512 A142EDD57753DA36687803332E81BD9D4413203F69F0055466219437C3385C593384DA2A3C6BC67B39EC7ED0C36854354F34C2AA2D4CE4F1D2B912546F4F46B2 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test CLUE_BUILD_TEST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/clue/vcpkg.json ================================================ { "name": "clue", "version": "1.0.0", "description": "clue is a C++03 header-only library to log messages with a severity and optional module identifier.", "homepage": "https://github.com/martinmoene/clue", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "test": { "description": "Build test" } } } ================================================ FILE: ports/cmakerc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vector-of-bool/cmrc REF 952ffddba731fc110bd50409e8d2b8a06abbd237 SHA512 e00ff1a4166f62f66effe324551f3c3225a7bf0416a693ca39b1d04fdf696c162466da18718b2c44f84227c17e82fa6ca50882d28bfd6e0147fa6741008e58e5 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/CMakeRC.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME cmakerc-config.cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cmakerc/usage ================================================ The package cmakerc provides additional cmake functions: find_package(CMakeRC CONFIG REQUIRED) cmrc_add_resource_library(foo-resources ALIAS foo::rc NAMESPACE foo ...) target_link_libraries(main PRIVATE foo::rc) See https://github.com/vector-of-bool/cmrc/blob/master/README.md ================================================ FILE: ports/cmakerc/vcpkg.json ================================================ { "name": "cmakerc", "version-date": "2023-07-24", "description": "A Resource Compiler in a Single CMake Script", "homepage": "https://github.com/vector-of-bool/cmrc", "license": "MIT" } ================================================ FILE: ports/cmark/add-feature-tools.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 523b2cb..fac823e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -51,6 +51,7 @@ generate_export_header(cmark # path for OSS Fuzz. add_custom_target(cmark_static DEPENDS cmark) +if (BUILD_TOOLS) add_executable(cmark_exe main.c) cmark_add_compile_options(cmark_exe) @@ -59,14 +60,22 @@ set_target_properties(cmark_exe PROPERTIES INSTALL_RPATH "${Base_rpath}") target_link_libraries(cmark_exe PRIVATE cmark) +endif() -install(TARGETS cmark_exe cmark +install(TARGETS cmark EXPORT cmark-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +if (BUILD_TOOLS) + install(TARGETS cmark_exe + EXPORT cmark-targets + RUNTIME DESTINATION tools/cmark + ) +endif() + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libcmark.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ================================================ FILE: ports/cmark/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO commonmark/cmark REF "${VERSION}" SHA512 8dcf4f25b53e84a16afa506214f17c3d2d7b0cc78d9d289b469ad8d1e481c4b355263eca3fb1e2b595c30734bc2d617fd38e00d17a14dcfa9de8c71580916265 HEAD_REF master PATCHES add-feature-tools.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CMARK_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CMARK_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DCMARK_SHARED=${CMARK_SHARED} -DCMARK_STATIC=${CMARK_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cmark) vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES cmark SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools/cmark" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/cmark/vcpkg.json ================================================ { "name": "cmark", "version-semver": "0.31.2", "description": "CommonMark parsing and rendering library", "homepage": "https://github.com/commonmark/cmark", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "!uwp" } } } ================================================ FILE: ports/cmark-gfm/add-feature-tools.patch ================================================ diff --git a/extensions/CMakeLists.txt b/extensions/CMakeLists.txt index e545b6d..01d84af 100644 --- a/extensions/CMakeLists.txt +++ b/extensions/CMakeLists.txt @@ -1,3 +1,8 @@ +if(BUILD_SHARED_LIBS) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Dlibcmark_gfm_EXPORTS") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dlibcmark_gfm_EXPORTS") +endif() + set(LIBRARY "libcmark-gfm-extensions") set(STATICLIBRARY "libcmark-gfm-extensions_static") set(LIBRARY_SOURCES @@ -66,6 +71,7 @@ endif() set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON) include (InstallRequiredSystemLibraries) +target_include_directories(${CMARK_INSTALL} INTERFACE $) install(TARGETS ${CMARK_INSTALL} EXPORT cmark-gfm-extensions RUNTIME DESTINATION bin @@ -79,7 +85,7 @@ if (CMARK_SHARED OR CMARK_STATIC) DESTINATION include ) - install(EXPORT cmark-gfm-extensions DESTINATION lib${LIB_SUFFIX}/cmake-gfm-extensions) + install(EXPORT cmark-gfm-extensions FILE cmark-gfm-extensions-config.cmake DESTINATION lib${LIB_SUFFIX}/cmake-gfm-extensions) endif() # Feature tests diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 84dd2a0..f355de5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -154,12 +154,17 @@ endif() set(libdir lib${LIB_SUFFIX}) +if(NOT BUILD_TOOLS) + set_target_properties(${PROGRAM} PROPERTIES EXCLUDE_FROM_ALL 1) + set(PROGRAM "") +endif() install(TARGETS ${PROGRAM} ${CMARK_INSTALL} EXPORT cmark-gfm RUNTIME DESTINATION bin LIBRARY DESTINATION ${libdir} ARCHIVE DESTINATION ${libdir} ) +target_include_directories(${CMARK_INSTALL} INTERFACE $) if(CMARK_SHARED OR CMARK_STATIC) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libcmark-gfm.pc.in @@ -175,7 +180,7 @@ if(CMARK_SHARED OR CMARK_STATIC) DESTINATION include ) - install(EXPORT cmark-gfm DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) + install(EXPORT cmark-gfm FILE cmark-gfm-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) endif() # Feature tests ================================================ FILE: ports/cmark-gfm/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.([0-9]+)$" "\\1.gfm.\\2" GFM_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO github/cmark-gfm REF ${GFM_VERSION} SHA512 435298fcf782dfc5b64c578ac839759b9d5cd0c08eb90d6702f26278062a0f4887c65c18e89e2c9f6be23f10dd835c769a7e0f8c934be068b6754dcca30cdd7c HEAD_REF master PATCHES add-feature-tools.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CMARK_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CMARK_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMARK_TESTS=OFF -DCMARK_SHARED=${CMARK_SHARED} -DCMARK_STATIC=${CMARK_STATIC} ${FEATURE_OPTIONS} OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) vcpkg_cmake_config_fixup(PACKAGE_NAME cmark-gfm-extensions CONFIG_PATH lib/cmake-gfm-extensions) vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES cmark-gfm AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/cmark-gfm/vcpkg.json ================================================ { "name": "cmark-gfm", "version": "0.29.0.13", "description": "GitHub Flavored Markdown parser based on cmark.", "homepage": "https://github.com/github/cmark-gfm", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "!uwp" } } } ================================================ FILE: ports/cminpack/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO devernay/cminpack REF "v${VERSION}" SHA512 97655252f99a01bda00da136bdfbd3719888f6c2fe191b5ed70a339900b0606ad4ee2504cb87a223bc46b84645fb051a228d742fdbe2979693527a27578c0360 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DUSE_BLAS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cminpack-1/cminpack.h" [[!defined(CMINPACK_NO_DLL)]] 0) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/CopyrightMINPACK.txt") ================================================ FILE: ports/cminpack/usage ================================================ cminpack provides CMake targets: find_package(CMinpack CONFIG REQUIRED) target_link_libraries(main PRIVATE cminpack::cminpack) # alternative for single precision target_link_libraries(main PRIVATE cminpack::cminpacks) # alternative for long double precision target_link_libraries(main PRIVATE cminpack::cminpackld) ================================================ FILE: ports/cminpack/vcpkg.json ================================================ { "name": "cminpack", "version": "1.3.11", "description": "A C/C++ rewrite of the MINPACK software (originally in FORTRAN) for solving nonlinear equations and nonlinear least squares problems", "homepage": "http://devernay.free.fr/hacks/cminpack/", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cmocka/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO cmocka/cmocka REF "cmocka-${VERSION}" SHA512 69d60cf4c40cba56575acb9a32a38649305266179ce33bd079fe9ea8e54498e2c585adc43bdc254579beefc38209c4d0ae622f093ad7acf4946ccaf9dcbba5ee HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNIT_TESTING=OFF -DWITH_EXAMPLES=OFF -DPICKY_DEVELOPER=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cmocka/vcpkg.json ================================================ { "name": "cmocka", "version": "2.0.2", "description": "An elegant unit testing framework for C with support for mock objects", "homepage": "https://cmocka.org", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cnats/fix-sodium-dep.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 305198f..0b559b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,6 +110,11 @@ if(NATS_BUILD_STREAMING) endif(NATS_BUILD_STREAMING) if(NATS_BUILD_USE_SODIUM) + find_package(libsodium NAMES unofficial-sodium CONFIG REQUIRED) + set(NATS_SODIUM_INCLUDE_DIRS "") + set(NATS_SODIUM_LIBRARIES unofficial-sodium::sodium) + add_definitions(-DNATS_USE_LIBSODIUM) +elseif(0) IF(DEFINED ENV{NATS_SODIUM_DIR}) SET(NATS_SODIUM_DIR "$ENV{NATS_SODIUM_DIR}") ENDIF() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 971ddf0..65fee5a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -65,7 +65,7 @@ if(NATS_BUILD_LIB_SHARED) install(TARGETS nats EXPORT cnats-targets DESTINATION ${NATS_LIBDIR}) install(EXPORT cnats-targets NAMESPACE cnats:: - FILE cnats-config.cmake + FILE cnats-targets.cmake DESTINATION ${NATS_LIBDIR}/cmake/cnats) install(FILES "${PROJECT_BINARY_DIR}/cnats-config-version.cmake" DESTINATION ${NATS_LIBDIR}/cmake/cnats) @@ -79,12 +79,16 @@ if(NATS_BUILD_LIB_STATIC) install(TARGETS nats_static EXPORT cnats-targets ARCHIVE DESTINATION ${NATS_LIBDIR}) install(EXPORT cnats-targets NAMESPACE cnats:: - FILE cnats-config.cmake + FILE cnats-targets.cmake DESTINATION ${NATS_LIBDIR}/cmake/cnats) install(FILES "${PROJECT_BINARY_DIR}/cnats-config-version.cmake" DESTINATION ${NATS_LIBDIR}/cmake/cnats) endif(NATS_BUILD_LIB_STATIC) +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cnats-config.cmake" INSTALL_DESTINATION ${NATS_LIBDIR}/cmake/cnats) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/cnats-config.cmake DESTINATION ${NATS_LIBDIR}/cmake/cnats) + install(FILES deprnats.h DESTINATION ${NATS_INCLUDE_DIR} RENAME nats.h) install(FILES nats.h status.h version.h DESTINATION ${NATS_INCLUDE_DIR}/nats) install(FILES adapters/libevent.h adapters/libuv.h DESTINATION ${NATS_INCLUDE_DIR}/nats/adapters) diff --git a/src/Config.cmake.in b/src/Config.cmake.in new file mode 100644 index 0000000..aa1d6bf --- /dev/null +++ b/src/Config.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +if("@NATS_BUILD_USE_SODIUM@") + find_dependency(unofficial-sodium) +endif() + +include ( "${CMAKE_CURRENT_LIST_DIR}/cnats-targets.cmake" ) ================================================ FILE: ports/cnats/fix_install_path.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 65fee5a..3731b86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,7 +62,10 @@ if(NATS_BUILD_LIB_SHARED) target_include_directories(nats PUBLIC $ $) - install(TARGETS nats EXPORT cnats-targets DESTINATION ${NATS_LIBDIR}) + install(TARGETS nats EXPORT cnats-targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) install(EXPORT cnats-targets NAMESPACE cnats:: FILE cnats-targets.cmake @@ -76,7 +79,10 @@ if(NATS_BUILD_LIB_STATIC) target_include_directories(nats_static PUBLIC $ $) - install(TARGETS nats_static EXPORT cnats-targets ARCHIVE DESTINATION ${NATS_LIBDIR}) + install(TARGETS nats_static EXPORT cnats-targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) install(EXPORT cnats-targets NAMESPACE cnats:: FILE cnats-targets.cmake ================================================ FILE: ports/cnats/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nats-io/nats.c REF "v${VERSION}" SHA512 d1243cd3ea2bc4cffb50b12acb745a3b573eacdc30457dc59ae33def0217ec090df6c706c67cba4ee75ade6db5adf3742affed771aeb77305048a18d8bbac695 HEAD_REF main PATCHES fix-sodium-dep.patch fix_install_path.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "sodium" NATS_BUILD_USE_SODIUM "streaming" NATS_BUILD_STREAMING ) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) list(APPEND OPTIONS -DNATS_BUILD_LIB_SHARED=ON) list(APPEND OPTIONS -DNATS_BUILD_LIB_STATIC=OFF) else() list(APPEND OPTIONS -DNATS_BUILD_LIB_SHARED=OFF) list(APPEND OPTIONS -DNATS_BUILD_LIB_STATIC=ON) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} ${OPTIONS} -DBUILD_TESTING=OFF -DNATS_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install(ADD_BIN_TO_PATH) if(VCPKG_TARGET_IS_WINDOWS) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/nats.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/nats.dll" "${CURRENT_PACKAGES_DIR}/bin/nats.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/natsd.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/natsd.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/natsd.dll") endif() endif() endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) if(VCPKG_TARGET_IS_WINDOWS) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) if(EXISTS "${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-debug.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-debug.cmake" "\${_IMPORT_PREFIX}/debug/lib/natsd.dll" "\${_IMPORT_PREFIX}/debug/bin/natsd.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-release.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/cnats/cnats-config-release.cmake" "\${_IMPORT_PREFIX}/lib/nats.dll" "\${_IMPORT_PREFIX}/bin/nats.dll") endif() endif() endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cnats/vcpkg.json ================================================ { "name": "cnats", "version": "3.12.0", "port-version": 2, "description": "A C client for the NATS messaging system", "homepage": "https://github.com/nats-io/nats.c", "license": "Apache-2.0", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "sodium": { "description": "Use libsodium for improved NKey signing performance", "supports": "!windows", "dependencies": [ "libsodium" ] }, "streaming": { "description": "Include deprecated NATS Streaming (STAN) APIs in the NATS library", "supports": "!windows", "dependencies": [ "protobuf-c" ] } } } ================================================ FILE: ports/cnl/disable-test.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 73111fc..a0cb3db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,8 @@ project(cnl) cmake_minimum_required(VERSION 3.5.1) -include(CTest) -add_subdirectory("test") +# include(CTest) +# add_subdirectory("test") # the CNL library add_library(Cnl INTERFACE) ================================================ FILE: ports/cnl/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO johnmcfarlane/cnl REF 2dde6e62e608a4adc3c5504f067575efa4910568 #v1.1.7 SHA512 33a81ea726802c71a684bcd002b5119cde4db471ebc9ba02cd15c7487ab468eeca09fb8dcaed953e3f3cded2cd813a903f808d97527b0ec7f393647b64a22572 HEAD_REF main PATCHES disable-test.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE_1_0.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/cnl/vcpkg.json ================================================ { "name": "cnl", "version": "1.1.7", "port-version": 3, "description": "A Compositional Numeric Library for C++", "homepage": "https://github.com/johnmcfarlane/cnl", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cocoyaxi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO idealvin/coost REF 0e89c366f707ff4ca4738f879fd5e6934bc57cc4 SHA512 712b04cac80f230cb40497ab43a95ca8fcd922f5a8edd93f00be50d46a148b579f7f3e66985bf92ff6d0258e58fa138944c8b6c08384186e929406743b2a8872 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libcurl WITH_LIBCURL openssl WITH_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DSTATIC_VS_CRT=${STATIC_CRT} MAYBE_UNUSED_VARIABLES STATIC_VS_CRT ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/coost) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cocoyaxi/vcpkg.json ================================================ { "name": "cocoyaxi", "version-date": "2024-09-04", "description": "A go-style coroutine library in C++11 and more", "homepage": "https://github.com/idealvin/coost/", "license": "MIT", "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "libcurl": { "description": "libcurl with OpenSSL support", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "openssl" ] } ] }, "openssl": { "description": "SSL support (OpenSSL)", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/coin/expat.diff ================================================ diff --git a/src/xml/document.cpp b/src/xml/document.cpp index f31e2ed..576ceb5 100644 --- a/src/xml/document.cpp +++ b/src/xml/document.cpp @@ -52,7 +52,7 @@ #include #include -#include "expat/expat.h" +#include #include "utils.h" #include "elementp.h" ================================================ FILE: ports/coin/openal.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b9891b1..0cf864f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -324,9 +324,11 @@ if(HAVE_SOUND) if(OpenAL_FOUND) set(HAVE_OPENAL 1) # Checks specific OpenAL configurations - set(CMAKE_REQUIRED_INCLUDES ${OPENGL_INCLUDE_DIR}) + set(CMAKE_REQUIRED_INCLUDES "") + set(CMAKE_REQUIRED_LIBRARIES OpenAL::OpenAL) check_include_file(AL/al.h HAVE_AL_AL_H) check_include_file(OpenAL/al.h HAVE_OPENAL_AL_H) + set(CMAKE_REQUIRED_LIBRARIES) set(CMAKE_REQUIRED_INCLUDES) if(NOT TARGET OpenAL::OpenAL) add_library(OpenAL::OpenAL UNKNOWN IMPORTED) diff --git a/src/glue/openal_wrapper.cpp b/src/glue/openal_wrapper.cpp index 7ffd12c..25e745b 100644 --- a/src/glue/openal_wrapper.cpp +++ b/src/glue/openal_wrapper.cpp @@ -62,6 +62,9 @@ #elif defined HAVE_OPENAL_AL_H #include #include +#else +#include +#include #endif #endif /* OPENALWRAPPER_ASSUME_OPENAL */ ================================================ FILE: ports/coin/portfile.cmake ================================================ if(NOT VCPKG_HOST_IS_WINDOWS) message(WARNING "${PORT} currently requires the following programs from the system package manager: libgl libglu On Debian and Ubuntu derivatives: sudo apt-get install libgl-dev libglu1-mesa-dev On CentOS and recent Red Hat derivatives: yum install mesa-libGL-devel mesa-libGLU-devel On Fedora derivatives: sudo dnf install mesa-libGL-devel mesa-libGLU-devel On Arch Linux and derivatives: sudo pacman -S gl glu On Alpine: apk add gl glu\n") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Coin3D/coin REF "v${VERSION}" SHA512 4594f1b23a32298b2fc3ce77287fba7c76c9912e17aa596f5f45aae300775fc2794e5c47720767a0116b981306a60c3ca70729fdab17d1476696834507d78c75 HEAD_REF master PATCHES expat.diff openal.diff remove-default-config.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/xml/expat") file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindFontconfig.cmake") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" COIN_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" COIN_BUILD_MSVC_STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 VCPKG_LOCK_FIND_PACKAGE_BZip2 fontconfig VCPKG_LOCK_FIND_PACKAGE_Fontconfig freetype VCPKG_LOCK_FIND_PACKAGE_Freetype openal VCPKG_LOCK_FIND_PACKAGE_OpenAL simage VCPKG_LOCK_FIND_PACKAGE_simage superglu USE_SUPERGLU superglu VCPKG_LOCK_FIND_PACKAGE_superglu zlib VCPKG_LOCK_FIND_PACKAGE_ZLIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 # Boost v1.84.0 libraries require C++11 -DCOIN_BUILD_DOCUMENTATION=OFF -DCOIN_BUILD_MSVC_STATIC_RUNTIME=${COIN_BUILD_MSVC_STATIC_RUNTIME} -DCOIN_BUILD_SHARED_LIBS=${COIN_BUILD_SHARED_LIBS} -DCOIN_BUILD_TESTS=OFF -DUSE_EXTERNAL_EXPAT=ON -DFONTCONFIG_RUNTIME_LINKING=OFF -DFREETYPE_RUNTIME_LINKING=OFF -DGLU_RUNTIME_LINKING=OFF -DLIBBZIP2_RUNTIME_LINKING=OFF -DOPENAL_RUNTIME_LINKING=OFF -DSIMAGE_RUNTIME_LINKING=OFF -DSPIDERMONKEY_RUNTIME_LINKING=OFF -DVCPKG_LOCK_FIND_PACKAGE_SpiderMonkey=OFF -DZLIB_RUNTIME_LINKING=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES COIN_BUILD_MSVC_STATIC_RUNTIME VCPKG_LOCK_FIND_PACKAGE_superglu ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Coin-${VERSION}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Coin/profiler") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/coin/remove-default-config.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -395,8 +395,8 @@ configure_file("${PROJECT_SOURCE_DIR}/${PROJECT_NAME}.pc.cmake.in" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc" @ONLY) install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(PROGRAMS "${PROJECT_SOURCE_DIR}/bin/coin-config" DESTINATION ${CMAKE_INSTALL_BINDIR}) - configure_file("${PROJECT_SOURCE_DIR}/coin.cfg.cmake.in" "${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}-default.cfg" @ONLY) - install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}-default.cfg" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Coin/conf) + #configure_file("${PROJECT_SOURCE_DIR}/coin.cfg.cmake.in" "${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}-default.cfg" @ONLY) + #install(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME_LOWER}-default.cfg" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Coin/conf) endif() endif() ================================================ FILE: ports/coin/vcpkg.json ================================================ { "name": "coin", "version": "4.0.6", "description": "A high-level 3D visualization library with Open Inventor 2.1 API", "homepage": "https://github.com/coin3d/coin", "license": "BSD-3-Clause", "supports": "!android & !uwp", "dependencies": [ "boost-assert", "boost-config", "boost-lexical-cast", "boost-math", "boost-smart-ptr", "boost-static-assert", "expat", "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "simage", "zlib" ], "features": { "bzip2": { "description": "Support bzip2 compressed fonts", "dependencies": [ "bzip2", { "name": "freetype", "features": [ "bzip2" ] } ] }, "fontconfig": { "description": "Use fontconfig for font support", "dependencies": [ "fontconfig" ] }, "freetype": { "description": "Use freetype for font support", "dependencies": [ "freetype" ] }, "openal": { "description": "Use OpenAL for sound support in VRML97", "dependencies": [ "openal-soft" ] }, "simage": { "description": "Use simage for loading images (textures), audio, and animations", "dependencies": [ "simage" ] }, "superglu": { "description": "Use SuperGLU (SGI GLU fork with fixes) instead of system GLU", "supports": "windows", "dependencies": [ "superglu" ] }, "zlib": { "description": "Use zlib for reading/writing compressed files", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/coin-or-buildtools/buildtools.patch ================================================ diff --git a/coin.m4 b/coin.m4 index 46501b207..a0ff20a6f 100644 --- a/coin.m4 +++ b/coin.m4 @@ -1312,11 +1312,11 @@ AC_DEFUN([AC_COIN_CHK_ZLIB], if test x$coin_enable_zlib = xyes ; then AC_CHECK_HEADER([zlib.h],[coin_has_zlib=yes]) if test x$coin_has_zlib = xyes ; then - AC_CHECK_LIB([z],[gzopen],[],[coin_has_zlib=no]) + AC_SEARCH_LIBS([gzopen],[z zlib zlibd],[],[coin_has_zlib=no]) fi if test x$coin_has_zlib = xyes ; then m4_foreach_w([myvar],[$1], - [m4_toupper(myvar)_LFLAGS="-lz $m4_toupper(myvar)_LFLAGS" + [m4_toupper(myvar)_LFLAGS="-l$ac_cv_search_gzopen $m4_toupper(myvar)_LFLAGS" ]) AC_DEFINE(m4_toupper(AC_PACKAGE_NAME)_HAS_ZLIB,[1],[Define to 1 if zlib is available]) fi @@ -1353,11 +1353,11 @@ AC_DEFUN([AC_COIN_CHK_BZLIB], if test $coin_enable_bzlib = yes ; then AC_CHECK_HEADER([bzlib.h],[coin_has_bzlib=yes]) if test $coin_has_bzlib = yes ; then - AC_CHECK_LIB([bz2],[BZ2_bzReadOpen],[],[coin_has_bzlib=no]) + AC_SEARCH_LIBS([BZ2_bzReadOpen],[bz2 bz2d],[],[coin_has_bzlib=no]) fi if test $coin_has_bzlib = yes ; then m4_foreach_w([myvar],[$1], - [m4_toupper(myvar)_LFLAGS="-lbz2 $m4_toupper(myvar)_LFLAGS" + [m4_toupper(myvar)_LFLAGS="-l$ac_cv_search_BZ2_bzReadOpen $m4_toupper(myvar)_LFLAGS" ]) AC_DEFINE(m4_toupper(AC_PACKAGE_NAME)_HAS_BZLIB,[1],[Define to 1 if bzlib is available]) fi ================================================ FILE: ports/coin-or-buildtools/buildtools2.patch ================================================ diff --git a/coin.m4 b/coin.m4 index a0ff20a6f..46e0519d1 100644 --- a/coin.m4 +++ b/coin.m4 @@ -773,7 +773,6 @@ dnl Create a automake conditional and PKG_CONFIG variable COIN_PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" AC_SUBST(COIN_PKG_CONFIG_PATH) - COIN_PKG_CONFIG_PATH="${expanded_libdir}/pkgconfig:${COIN_PKG_CONFIG_PATH}" if test -n "$PKG_CONFIG"; then AC_MSG_NOTICE([$PKG_CONFIG path is "$COIN_PKG_CONFIG_PATH"]) fi @@ -1316,7 +1315,7 @@ AC_DEFUN([AC_COIN_CHK_ZLIB], fi if test x$coin_has_zlib = xyes ; then m4_foreach_w([myvar],[$1], - [m4_toupper(myvar)_LFLAGS="-l$ac_cv_search_gzopen $m4_toupper(myvar)_LFLAGS" + [m4_toupper(myvar)_LFLAGS="$ac_cv_search_gzopen $m4_toupper(myvar)_LFLAGS" ]) AC_DEFINE(m4_toupper(AC_PACKAGE_NAME)_HAS_ZLIB,[1],[Define to 1 if zlib is available]) fi @@ -1357,7 +1356,7 @@ AC_DEFUN([AC_COIN_CHK_BZLIB], fi if test $coin_has_bzlib = yes ; then m4_foreach_w([myvar],[$1], - [m4_toupper(myvar)_LFLAGS="-l$ac_cv_search_BZ2_bzReadOpen $m4_toupper(myvar)_LFLAGS" + [m4_toupper(myvar)_LFLAGS="$ac_cv_search_BZ2_bzReadOpen $m4_toupper(myvar)_LFLAGS" ]) AC_DEFINE(m4_toupper(AC_PACKAGE_NAME)_HAS_BZLIB,[1],[Define to 1 if bzlib is available]) fi diff --git a/coin_chk_lapack.m4 b/coin_chk_lapack.m4 index 6085069af..3314f97e2 100644 --- a/coin_chk_lapack.m4 +++ b/coin_chk_lapack.m4 @@ -186,9 +186,7 @@ dnl links. We check for both to ensure that blas lib also appears on link line dnl in case someone wants to use Blas functions but tests only for Lapack. dnl We skip this if int64 if test "$lapack_keep_looking" = yes ; then - case " $2 " in - *\ int64\ * ) ;; - *) AC_COIN_CHK_MOD_EXISTS([lapack],[lapack blas], + AC_COIN_CHK_MOD_EXISTS([lapack],[lapack blas], [lapack_what="generic module (lapack.pc blas.pc)" AC_COIN_TRY_LINK([dsyev],[],[lapack], [coin_has_lapack=yes @@ -196,8 +194,6 @@ dnl We skip this if int64 lapack_pcfiles="lapack blas"], [AC_MSG_WARN([lapack.pc and blas.pc present, but could not find dsyev when trying to link with LAPACK.])],no) ]) - ;; - esac fi dnl TODO do we need another check with lapack.pc only? ================================================ FILE: ports/coin-or-buildtools/disable-mkl.diff ================================================ diff --git a/coin_chk_lapack.m4 b/coin_chk_lapack.m4 index 3314f97..0156a0e 100644 --- a/coin_chk_lapack.m4 +++ b/coin_chk_lapack.m4 @@ -113,55 +113,7 @@ dnl can arrange that explicitly. esac ;; - *-cygwin* | *-mingw* | *-msys*) -dnl Check for 64-bit sequential MKL in $LIB - old_IFS="$IFS" - IFS=";" - coin_mkl="" - for d in $LIB ; do - # turn $d into unix-style short path (no spaces); cannot do -us, - # so first do -ws, then -u - d=`cygpath -ws "$d"` - d=`cygpath -u "$d"` - if test "$enable_shared" = yes ; then - if test -e "$d/mkl_core_dll.lib" ; then - case " $2 " in - *\ int64\ * ) coin_mkl="$d/mkl_intel_ilp64_dll.lib $d/mkl_sequential_dll.lib $d/mkl_core_dll.lib" ;; - *) coin_mkl="$d/mkl_intel_lp64_dll.lib $d/mkl_sequential_dll.lib $d/mkl_core_dll.lib" ;; - esac - break - fi - else - if test -e "$d/mkl_core.lib" ; then - case " $2 " in - *\ int64\ * ) coin_mkl="$d/mkl_intel_ilp64.lib $d/mkl_sequential.lib $d/mkl_core.lib" ;; - *) coin_mkl="$d/mkl_intel_lp64.lib $d/mkl_sequential.lib $d/mkl_core.lib" ;; - esac - break - fi - fi - done - IFS="$old_IFS" - if test -n "$coin_mkl" ; then - AC_COIN_TRY_LINK([dsyev],[$coin_mkl],[], - [coin_has_lapack=yes - lapack_lflags="$coin_mkl" - lapack_what="Intel MKL ($lapack_lflags)" - ],,no) - fi - ;; - *-darwin*) - case " $2 " in - *\ int64\ * ) coin_mkl="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lm" ;; - *) coin_mkl="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lm" ;; - esac - AC_COIN_TRY_LINK([dsyev], - [$coin_mkl],[], - [coin_has_lapack=yes - lapack_lflags="$coin_mkl" - lapack_what="Intel MKL ($lapack_lflags)" - ],,no) if test "$coin_has_lapack" = no ; then case " $2 " in *\ int64\ * ) ;; ================================================ FILE: ports/coin-or-buildtools/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH BUILD_SCRIPTS_PATH REPO coin-or-tools/BuildTools REF 1e473af11438bc0a9e8506252e31fc14b902a31e SHA512 c142163a270848d1e1300a70713ee03ec822cc9d7583ba7aa685c02b7c25e0d4c0f7d958aad320dbf1824cc88fe0a49dc3357e0fe11588dc8c30e7fec8d239f6 PATCHES buildtools.patch buildtools2.patch disable-mkl.diff ) file(COPY "${BUILD_SCRIPTS_PATH}/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/BuildTools") file(INSTALL "${BUILD_SCRIPTS_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/coin-or-buildtools/vcpkg.json ================================================ { "name": "coin-or-buildtools", "version-date": "2023-02-02", "port-version": 1, "description": "Macros and patches for GNU autotools ", "homepage": "https://coin-or-tools.github.io/BuildTools/", "license": "EPL-2.0" } ================================================ FILE: ports/coin-or-cbc/disable_glpk.patch ================================================ diff --git a/src/CbcSolver.cpp b/src/CbcSolver.cpp index 93da884..1c9d463 100644 --- a/src/CbcSolver.cpp +++ b/src/CbcSolver.cpp @@ -32,6 +32,9 @@ void CbcCrashHandler(int sig); #endif +// glpk currently not supported +#undef COINUTILS_HAS_GLPK + #ifdef COINUTILS_HAS_GLPK #include "glpk.h" #endif ================================================ FILE: ports/coin-or-cbc/pkgconf_win.patch ================================================ diff --git a/configure b/configure index 3a63499..2d12129 100755 --- a/configure +++ b/configure @@ -17932,8 +17932,6 @@ fi COIN_PKG_CONFIG_PATH="${PKG_CONFIG_PATH}" - - COIN_PKG_CONFIG_PATH="${expanded_libdir}/pkgconfig:${COIN_PKG_CONFIG_PATH}" if test -n "$PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $PKG_CONFIG path is \"$COIN_PKG_CONFIG_PATH\"" >&5 printf "%s\n" "$as_me: $PKG_CONFIG path is \"$COIN_PKG_CONFIG_PATH\"" >&6;} ================================================ FILE: ports/coin-or-cbc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/Cbc REF ca088df34881ef0d58124e53b3d70bfa73e92713 SHA512 9df1242910a42a9b942fd25dbf8a80b6278d75641c93e1218b39695224cf88bdf9d1a2d27e637ebb068b1e8733267a0f16c69b4db9a480e3f6b9cd732afb2d7a PATCHES pkgconf_win.patch disable_glpk.patch ) file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --with-coinutils --with-clp --with-cgl --with-osi --without-ositests --without-sample --without-netlib --without-miplib3 --enable-relocatable --disable-readline ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/coin-or-cbc/vcpkg.json ================================================ { "name": "coin-or-cbc", "version-date": "2024-06-04", "port-version": 1, "description": "Cbc (Coin-or branch and cut) is an open-source mixed integer linear programming solver written in C++.", "homepage": "https://github.com/coin-or/Cbc", "license": "EPL-2.0", "dependencies": [ "coin-or-cgl", "coin-or-clp", "coin-or-osi", "coinutils", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/coin-or-cgl/fix-c1083-error.patch ================================================ diff --git a/Cgl/src/CglLandP/CglLandP.cpp b/Cgl/src/CglLandP/CglLandP.cpp index 2676790..af90a6e 100644 --- a/Cgl/src/CglLandP/CglLandP.cpp +++ b/Cgl/src/CglLandP/CglLandP.cpp @@ -22,7 +22,7 @@ #define CLONE_SI //Solver is cloned between two cuts #include "CoinTime.hpp" -#include "CglGomory.hpp" +#include "CglGomory/CglGomory.hpp" #include "CoinFactorization.hpp" #include namespace LAP diff --git a/Cgl/src/CglPreProcess/CglPreProcess.cpp b/Cgl/src/CglPreProcess/CglPreProcess.cpp index 17cf372..8cb738f 100644 --- a/Cgl/src/CglPreProcess/CglPreProcess.cpp +++ b/Cgl/src/CglPreProcess/CglPreProcess.cpp @@ -24,9 +24,9 @@ #include "CoinHelperFunctions.hpp" #include "CoinWarmStartBasis.hpp" -#include "CglProbing.hpp" -#include "CglDuplicateRow.hpp" -#include "CglClique.hpp" +#include "CglProbing/CglProbing.hpp" +#include "CglDuplicateRow/CglDuplicateRow.hpp" +#include "CglClique/CglClique.hpp" //#define PRINT_DEBUG 1 //#define COIN_DEVELOP 1 #ifdef COIN_DEVELOP ================================================ FILE: ports/coin-or-cgl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/Cgl REF 3d7daa62b37e7b3504a372f2c93236052952d0f8 SHA512 48014a5e5bec23ebda34d97f1c3aeb511271e17dac203258668a94a8004c01b7460ddfd7086b6db911d4e8800b61cf2bdc5a11b597cc22317cfef45364cf20fd ) file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --with-coinutils --with-osi # The rest will be pulled in via being available. # Since there are no features in the other coin-or-* ports # yet there is no need to control them here. --without-sample --without-netlib --enable-relocatable --disable-readline ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/coin-or-cgl/vcpkg.json ================================================ { "name": "coin-or-cgl", "version-date": "2023-02-01", "port-version": 1, "description": "The COIN-OR Cut Generation Library (Cgl) is a collection of cut generators that can be used with other COIN-OR packages that make use of cuts, such as, among others, the linear solver Clp or the mixed integer linear programming solvers Cbc or BCP.", "homepage": "https://github.com/coin-or/Cgl", "license": "EPL-2.0", "dependencies": [ "coin-or-clp", "coin-or-osi", "coinutils", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/coin-or-clp/dep.patch ================================================ diff --git a/configure.ac b/configure.ac index a3f2fb9c4..e6f53f26c 100644 --- a/configure.ac +++ b/configure.ac @@ -16,6 +16,8 @@ All Rights Reserved. This file is part of the open source package Clp which is distributed under the Eclipse Public License.]) +AC_CONFIG_MACRO_DIR([m4]) + # List one file in the package so that the configure script can test # whether the package is actually there. AC_CONFIG_SRCDIR(src/ClpSimplex.cpp) @@ -63,7 +63,7 @@ AC_COIN_CHK_PKG(Osi,[OsiClpLib OsiClpUnitTest]) AC_COIN_CHK_PKG(OsiTests,[OsiClpUnitTest],[osi-unittests]) AC_COIN_CHK_PKG(Sample,,[coindatasample],[],dataonly) AC_COIN_CHK_PKG(Netlib,,[coindatanetlib],[],dataonly) -AC_COIN_CHK_PKG(Glpk,[ClpLib],[coinglpk]) +AC_COIN_CHK_PKG(Glpk,[ClpLib],[glpk]) ############################################################################# # Aboca # @@ -96,7 +96,7 @@ AC_COIN_CHK_LIBHDR(CHOLMOD,[ClpLib],[-lcholmod],[-I/usr/include/suitesparse],[], # bothered to build it, we should use it. If it's not present, try for a # system installation. If we find it, define CLP_HAS_MUMPS for export to code # using clp. -AC_COIN_CHK_PKG(MUMPS,[ClpLib],[coinmumps]) +AC_COIN_CHK_PKG(MUMPS,[ClpLib],[mumps]) if test $coin_has_mumps = no ; then AC_COIN_CHK_LIBHDR(MUMPS,[ClpLib],[-ldmumps],[-I/usr/include/MUMPS],[], [dmumps_c((DMUMPS_STRUC_C*)0)], ================================================ FILE: ports/coin-or-clp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/Clp REF 5315ef2e93f5f532a600e16ab604ac439a416e59 SHA512 78dc8f562e7c1bff3e86c81eda4eda9780a4075921bcdd2338191f37820699baee94eec86b6f63b1b27e5bca7346a2611d669a7cdf3e47e1c032b072ca10bdab PATCHES dep.patch ) file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --with-coinutils --with-glpk --with-osi --without-ositests --without-sample --without-netlib --without-amd --without-cholmod --without-mumps --enable-relocatable --disable-readline ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/coin-or/ClpModel.hpp" "\"glpk.h\"" "\"../glpk.h\"") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/coin-or-clp/vcpkg.json ================================================ { "name": "coin-or-clp", "version-date": "2023-02-01", "port-version": 1, "description": "Clp (Coin-or linear programming) is an open-source linear programming solver written in C++. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available.", "license": "EPL-2.0", "dependencies": [ "coin-or-osi", "coinutils", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/coin-or-ipopt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/Ipopt REF ec43e37a06054246764fb116e50e3e30c9ada089 SHA512 f5b30e81b4a1a178e9a0e2b51b4832f07441b2c3e9a2aa61a6f07807f94185998e985fcf3c34d96fbfde78f07b69f2e0a0675e1e478a4e668da6da60521e0fd6 HEAD_REF master ) # --with-precision floating-point precision to use: single or double # (default) # --with-intsize integer type to use: specify 32 for int or 64 for # int64_t file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG OPTIONS #--with-pardiso --without-spral #--without-wsmp --without-hsl --without-asl --with-lapack --without-mumps --enable-relocatable --disable-f77 --disable-java ) vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/coin-or-ipopt/vcpkg.json ================================================ { "name": "coin-or-ipopt", "version-date": "2023-02-01", "description": "Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt) is a software package for large-scale nonlinear optimization", "homepage": "https://github.com/coin-or/Ipopt", "license": "EPL-2.0", "dependencies": [ "coinutils", "intel-mkl" ] } ================================================ FILE: ports/coin-or-osi/glpk.patch ================================================ diff --git a/configure.ac b/configure.ac index e4bd1361e..4c3a2a166 100644 --- a/configure.ac +++ b/configure.ac @@ -78,7 +78,7 @@ AC_COIN_CHK_HERE([OsiLib],[OsiCommonTestLib],[osi]) # downloaded and built. The general flow here is as above: Initialise the # library, add external components, finalize the flags, and add any components # being built here. -AC_COIN_CHK_PKG(Glpk,[OsiGlpkLib OsiTest],[coinglpk]) +AC_COIN_CHK_PKG(Glpk,[OsiGlpkLib OsiTest],[glpk]) AC_LANG_PUSH(C++) AC_COIN_CHK_LIBHDR(SoPlex,[OsiSpxLib OsiTest],[-lsoplex],[],[], ================================================ FILE: ports/coin-or-osi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/Osi REF 2420bb864d039a03e11c579b0c9087adbdaa26db SHA512 27d501cb513a0570ad83247b6a8e7fc69cdbcd2cbec6c11aea0b5982627e76efa7ea6403e6d97419f6c984553434f088a748a7d8d54c1bf73cdbdfd5bef1f2b0 PATCHES glpk.patch ) file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --with-glpk --with-lapack --with-coinutils --without-netlib --without-sample --without-gurobi --without-xpress --without-cplex --without-soplex --enable-relocatable --disable-readline ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/coin-or-osi/vcpkg.json ================================================ { "name": "coin-or-osi", "version-date": "2024-04-16", "port-version": 1, "description": "Osi (Open Solver Interface) provides an abstract base class to a generic linear programming (LP) solver, along with derived classes for specific solvers. Many applications may be able to use the Osi to insulate themselves from a specific LP solver.", "license": "EPL-2.0", "dependencies": [ "coinutils", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/coinutils/coinutils.patch ================================================ diff --git a/configure.ac b/configure.ac index f35c22949..8787a1c0b 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,8 @@ AC_INIT([CoinUtils],[devel],[https://github.com/coin-or/CoinUtils/issues/new],[coin-or-coinutils],[https://github.com/coin-or/CoinUtils]) +AC_CONFIG_MACRO_DIR([m4]) + AC_COPYRIGHT([ Copyright 2006 International Business Machines and others. All Rights Reserved. ================================================ FILE: ports/coinutils/coinutils2.patch ================================================ diff --git a/configure.ac b/configure.ac index 8787a1c0b..504019b78 100644 --- a/configure.ac +++ b/configure.ac @@ -96,8 +96,8 @@ AC_COINUTILS_MEMPOOL(4096,no) # Collect information required to use component libraries. AC_COIN_CHK_LAPACK(CoinUtilsLib) -AC_COIN_CHK_PKG(Glpk,[CoinUtilsLib CoinUtilsTest],[coinglpk]) -AC_COIN_CHK_PKG(ASL,[CoinUtilsLib],[coinasl]) +AC_COIN_CHK_PKG(Glpk,[CoinUtilsLib CoinUtilsTest],[glpk]) +AC_COIN_CHK_PKG(ASL,[CoinUtilsLib],[asl]) AC_COIN_CHK_PKG(Sample,[],[coindatasample],[],dataonly) AC_COIN_CHK_PKG(Netlib,[],[coindatanetlib],[],dataonly) ================================================ FILE: ports/coinutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/CoinUtils REF 014be1f1724c074401d9d9c27bcce35baa9dca45 # I don't trust the release tags. They seem to point to a different fork with an outdates file structure? SHA512 c5b706ca070b9f0997f9cdf532eb97c4d6ef6c6219d5d247c486048daf94a31151711ad96a32a0f0e701024d7759f07abc867591249d6c19b2b1c153257b794a PATCHES coinutils.patch coinutils2.patch ) file(COPY "${CURRENT_INSTALLED_DIR}/share/coin-or-buildtools/" DESTINATION "${SOURCE_PATH}") set(ENV{ACLOCAL} "aclocal -I \"${SOURCE_PATH}/BuildTools\"") #--enable-msvc set(options "") if("glpk" IN_LIST FEATURES) list(APPEND options "--with-glpk") else() list(APPEND options "--without-glpk") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} --with-lapack --without-netlib --without-sample --without-asl #--enable-coinutils-threads # only with -lrt #--enable-coinutils-bigindex # only for x64 --enable-relocatable --disable-readline ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/coin-or/CoinMpsIO.hpp" "\"glpk.h\"" "\"../glpk.h\"") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/coinutils" RENAME copyright) file(COPY "${SOURCE_PATH}/m4" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/coinutils/vcpkg.json ================================================ { "name": "coinutils", "version-date": "2024-04-08", "port-version": 1, "description": "CoinUtils (Coin-or Utilities) is an open-source collection of classes and functions that are generally useful to more than one COIN-OR project", "homepage": "https://www.coin-or.org/", "license": "EPL-2.0", "supports": "!uwp", "dependencies": [ "bzip2", "coin-or-buildtools", "lapack", { "name": "vcpkg-make", "host": true }, "zlib" ], "features": { "glpk": { "description": "Build with Glpk", "dependencies": [ { "name": "glpk", "default-features": false } ] } } } ================================================ FILE: ports/collada-dom/fix-compatibility-with-boost-1.85.patch ================================================ dom/include/dae.h | 2 +- dom/src/dae/daeUtils.cpp | 2 +- dom/src/dae/daeZAEUncompressHandler.cpp | 2 +- dom/test/1.4/domTest.cpp | 4 ++-- dom/test/1.4/domTest.h | 2 +- dom/test/1.5/domTest.cpp | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dom/include/dae.h b/dom/include/dae.h index e53388b..a14276a 100644 --- a/dom/include/dae.h +++ b/dom/include/dae.h @@ -25,7 +25,7 @@ #pragma warning(disable: 4180 4245) #endif #ifndef NO_BOOST -#include +#include #endif #ifdef _MSC_VER #pragma warning(pop) diff --git a/dom/src/dae/daeUtils.cpp b/dom/src/dae/daeUtils.cpp index dc94b5b..156d889 100644 --- a/dom/src/dae/daeUtils.cpp +++ b/dom/src/dae/daeUtils.cpp @@ -18,7 +18,7 @@ #endif #ifndef NO_BOOST -#include // THIS WAS NOT COMMENTED. +#include // THIS WAS NOT COMMENTED. #endif #include // for tmpnam diff --git a/dom/src/dae/daeZAEUncompressHandler.cpp b/dom/src/dae/daeZAEUncompressHandler.cpp index da2a344..2550000 100644 --- a/dom/src/dae/daeZAEUncompressHandler.cpp +++ b/dom/src/dae/daeZAEUncompressHandler.cpp @@ -271,7 +271,7 @@ bool daeZAEUncompressHandler::checkAndExtractInternalArchive( const std::string& bool error = false; boost::filesystem::path archivePath(filePath); - std::string dir = archivePath.branch_path().string(); + std::string dir = archivePath.parent_path().string(); const std::string& randomSegment = cdom::getRandomFileName(); std::string tmpDir = dir + cdom::getFileSeparator() + randomSegment + cdom::getFileSeparator(); diff --git a/dom/test/1.4/domTest.cpp b/dom/test/1.4/domTest.cpp index 28aefa5..ad76358 100644 --- a/dom/test/1.4/domTest.cpp +++ b/dom/test/1.4/domTest.cpp @@ -1543,9 +1543,9 @@ int main(int argc, char* argv[]) { // Shut the DOM up daeErrorHandler::setErrorHandler(&quietErrorHandler::getInstance()); - dataPath() = (fs::path(argv[0]).branch_path()/"domTestData/").normalize(); + dataPath() = (fs::path(argv[0]).parent_path()/"domTestData/").normalize(); if (!fs::exists(dataPath())) - dataPath() = (fs::path(argv[0]).branch_path()/"../../test/1.4/data/").normalize(); + dataPath() = (fs::path(argv[0]).parent_path()/"../../test/1.4/data/").normalize(); tmpPath() = dataPath() / "tmp"; tmpDir tmp(tmpPath(), !leaveTmpFiles); diff --git a/dom/test/1.4/domTest.h b/dom/test/1.4/domTest.h index a531e89..7dbf08c 100644 --- a/dom/test/1.4/domTest.h +++ b/dom/test/1.4/domTest.h @@ -26,7 +26,7 @@ #pragma warning(push) #pragma warning(disable: 4180 4245) #endif -#include +#include #ifdef _MSC_VER #pragma warning(pop) #endif diff --git a/dom/test/1.5/domTest.cpp b/dom/test/1.5/domTest.cpp index 0ba3449..457c863 100644 --- a/dom/test/1.5/domTest.cpp +++ b/dom/test/1.5/domTest.cpp @@ -1609,9 +1609,9 @@ int main(int argc, char* argv[]) { // Shut the DOM up daeErrorHandler::setErrorHandler(&quietErrorHandler::getInstance()); - dataPath() = (fs::path(argv[0]).branch_path()/"domTestData/").normalize(); + dataPath() = (fs::path(argv[0]).parent_path()/"domTestData/").normalize(); if (!fs::exists(dataPath())) - dataPath() = (fs::path(argv[0]).branch_path()/"../../test/1.5/data/").normalize(); + dataPath() = (fs::path(argv[0]).parent_path()/"../../test/1.5/data/").normalize(); tmpPath() = dataPath() / "tmp"; tmpDir tmp(tmpPath(), !leaveTmpFiles); ================================================ FILE: ports/collada-dom/fix-emscripten.patch ================================================ diff --git a/dom/src/dae/daeUtils.cpp b/dom/src/dae/daeUtils.cpp index 7e3dc9a..dc94b5b 100644 --- a/dom/src/dae/daeUtils.cpp +++ b/dom/src/dae/daeUtils.cpp @@ -152,7 +152,7 @@ char cdom::getFileSeparator() { const string& cdom::getSystemTmpDir() { #ifdef WIN32 static string tmpDir = string(getenv("TMP")) + getFileSeparator(); -#elif defined(__linux__) || defined(__linux) +#elif defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) static string tmpDir = "/tmp/"; #elif defined __APPLE_CC__ static string tmpDir = string(getenv("TMPDIR")); @@ -171,7 +171,7 @@ string cdom::getRandomFileName() { std::string tmp(tmpnam(&tmpbuffer[0])); #ifdef WIN32 randomSegment = tmp.substr(tmp.find_last_of('\\')+1); -#elif defined(__linux__) || defined(__linux) +#elif defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) randomSegment = tmp.substr(tmp.find_last_of('/')+1); #elif defined __APPLE_CC__ randomSegment = tmp.substr(tmp.find_last_of('/')+1); ================================================ FILE: ports/collada-dom/fix-shared-keyword.patch ================================================ diff --git a/dom/CMakeLists.txt b/dom/CMakeLists.txt index 62e1b8a..7ff49b5 100644 --- a/dom/CMakeLists.txt +++ b/dom/CMakeLists.txt @@ -28,7 +28,7 @@ if( OPT_COLLADA14 ) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/1.4 DESTINATION ${COLLADA_DOM_INCLUDE_INSTALL_DIR} COMPONENT ${COMPONENT_PREFIX}-dev PATTERN ".svn" EXCLUDE PATTERN ".~" EXCLUDE) endif() -add_library(collada-dom SHARED ${COLLADA_BASE_SOURCES}) +add_library(collada-dom ${COLLADA_BASE_SOURCES}) target_link_libraries(collada-dom ${COLLADA_LIBS}) set_target_properties(collada-dom PROPERTIES COMPILE_FLAGS "${COLLADA_COMPILE_FLAGS}" ================================================ FILE: ports/collada-dom/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rdiankov/collada-dom REF d37ae7532e350b87c88712e9f6ab4b1f440d20cd SHA512 cb923d296219765096f5246cc7a2b69712931f58171ae885dbdbd215fca86d911c34d12748d3304d6a5a350dc737ff0caead2495acac488af5431b437cbacc7d HEAD_REF v2.5.0 PATCHES vs-version-detection.patch use-uriparser.patch use-vcpkg-minizip.patch fix-shared-keyword.patch fix-emscripten.patch fix-compatibility-with-boost-1.85.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/collada_dom-2.5) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/licenses/license_e.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/collada-dom/use-uriparser.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ec1527..3f044d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,23 +237,29 @@ else() set(MINIZIP_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dom/external-libs/minizip-1.1 ${ZLIB_INCLUDE_DIR}) endif() -pkg_check_modules(liburiparser liburiparser) - -if(liburiparser_FOUND) - set(liburiparser_CFLAGS_OTHERS "-DUSE_URIPARSER") +find_package(UriParser) +if(URIPARSER_FOUND) + set(URIPARSER_CFLAGS_OTHERS "-DUSE_URIPARSER") + set(URIPARSER_LIBRARIES ${URIPARSER_LIBRARY}) + message(STATUS "liburiparser found") else() - # try using pcrecpp - pkg_check_modules(libpcrecpp libpcrecpp) - if( libpcrecpp_FOUND ) + pkg_check_modules(liburiparser liburiparser) + if(liburiparser_FOUND) + set(URIPARSER_CFLAGS_OTHERS "-DUSE_URIPARSER") + message(STATUS "liburiparser found") + else() + # try using pcrecpp + pkg_check_modules(libpcrecpp libpcrecpp) + if( libpcrecpp_FOUND ) set(CMAKE_REQUIRED_INCLUDES ${libpcrecpp_INCLUDE_DIRS}) check_include_file_cxx(pcrecpp.h HAVE_PCRECPP_H) set(CMAKE_REQUIRED_INCLUDES) if( NOT HAVE_PCRECPP_H ) - set(libpcrecpp_FOUND 0) + set(libpcrecpp_FOUND 0) + endif() endif() - endif() - if( NOT libpcrecpp_FOUND ) + if( NOT libpcrecpp_FOUND ) message(STATUS "System pcre not found, using local from sources") # include the local pcre add_subdirectory(dom/external-libs/pcre-8.02) @@ -262,6 +268,7 @@ else() set(libpcrecpp_LIBRARIES pcrecpp_local) set(libpcrecpp_CFLAGS_OTHERS "-DPCRE_STATIC") set(libpcrecpp_LDFLAGS_OTHERS) + endif() endif() endif() diff --git a/cmake-modules/FindUriParser.cmake b/cmake-modules/FindUriParser.cmake new file mode 100644 index 0000000..91f466b --- /dev/null +++ b/cmake-modules/FindUriParser.cmake @@ -0,0 +1,35 @@ +# Find the UriParser library +# Defines: + +# URIPARSER_INCLUDE_DIR - uriparser include directory +# URIPARSER_LIBRARY - uriparser library file +# URIPARSER_FOUND - TRUE if uriparser is found + +if (URIPARSER_INCLUDE_DIR) + #check cache + set(URIPARSER_FIND_QUIETLY TRUE) +endif () + +if (NOT URIPARSER_INCLUDE_DIR) + find_path(URIPARSER_INCLUDE_DIR NAMES Uri.h PATH_SUFFIXES uriparser) + set(URIPARSER_INCLUDE_DIR ${URIPARSER_INCLUDE_DIR}/uriparser CACHE PATH "uriparser includes") +endif () + +find_library(URIPARSER_LIBRARY NAMES uriparser) + +if (URIPARSER_INCLUDE_DIR AND URIPARSER_LIBRARY) + set(URIPARSER_FOUND TRUE) + set(UriParser_FOUND TRUE) +endif () + +if (URIPARSER_FOUND) + if (NOT URIPARSER_FIND_QUIETLY) + message(STATUS "Found UriParser library: ${URIPARSER_LIBRARY}") + endif () +else () + if (NOT URIPARSER_FIND_QUIETLY) + message(FATAL_ERROR "Could NOT find UriParser library") + else () + message(STATUS "Could NOT find UriParser library") + endif () +endif () diff --git a/dom/CMakeLists.txt b/dom/CMakeLists.txt index f7ffb27..62e1b8a 100644 --- a/dom/CMakeLists.txt +++ b/dom/CMakeLists.txt @@ -1,6 +1,6 @@ set(COLLADA_INTERNAL_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${COLLADA_INTERNAL_INCLUDE}) -set(COLLADA_LIBS minizip ${liburiparser_LIBRARIES} ${libpcrecpp_LIBRARIES} ${ZLIB_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) +set(COLLADA_LIBS minizip ${URIPARSER_LIBRARIES} ${libpcrecpp_LIBRARIES} ${ZLIB_LIBRARIES} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) file(GLOB dae_files ${CMAKE_CURRENT_SOURCE_DIR}/src/dae/*.cpp) if( LIBXML2_FOUND ) @@ -13,7 +13,7 @@ file(GLOB stddatabase_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/STLDatabase/ file(GLOB stderrplugin_files ${CMAKE_CURRENT_SOURCE_DIR}/src/modules/stdErrPlugin/*.cpp) set(COLLADA_BASE_SOURCES ${dae_files} ${libxmlplugin_files} ${stddatabase_files} ${stderrplugin_files}) -set(COLLADA_COMPILE_FLAGS "${liburiparser_CFLAGS_OTHERS} ${libpcrecpp_CFLAGS_OTHERS} ${EXTRA_COMPILE_FLAGS} ${Boost_CFLAGS}") +set(COLLADA_COMPILE_FLAGS "${URIPARSER_CFLAGS_OTHERS} ${libpcrecpp_CFLAGS_OTHERS} ${EXTRA_COMPILE_FLAGS} ${Boost_CFLAGS}") # create dynamic libraries set(COLLADA_COMPILE_FLAGS "${COLLADA_COMPILE_FLAGS} -DDOM_DYNAMIC -DDOM_EXPORT") diff --git a/dom/src/dae/daeURI.cpp b/dom/src/dae/daeURI.cpp index 3a8f815..1623753 100644 --- a/dom/src/dae/daeURI.cpp +++ b/dom/src/dae/daeURI.cpp @@ -790,7 +790,7 @@ bool cdom::parseUriRef(const string& uriRef, scheme = fromRange(uri.scheme); authority = fromRange(uri.hostText); path = fromList(uri.pathHead, "/"); - if (uri.absolutePath != URI_TRUE and uri.hostText.first == NULL) + if (uri.absolutePath != URI_TRUE && uri.hostText.first == NULL) path = path.erase(0, 1); query = fromRange(uri.query); fragment = fromRange(uri.fragment); ================================================ FILE: ports/collada-dom/use-vcpkg-minizip.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f6c2bb6..3351ab0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,7 +222,8 @@ else() endif() endif() -pkg_check_modules(minizip minizip) +find_package(minizip NAMES unofficial-minizip REQUIRED) +add_library(minizip ALIAS unofficial::minizip::minizip) if(minizip_FOUND) set(MINIZIP_INCLUDE_DIR ${minizip_INCLUDE_DIRS}) else() diff --git a/dom/include/dae/daeZAEUncompressHandler.h b/dom/include/dae/daeZAEUncompressHandler.h index e9b0e9e..3d120da 100644 --- a/dom/include/dae/daeZAEUncompressHandler.h +++ b/dom/include/dae/daeZAEUncompressHandler.h @@ -9,7 +9,7 @@ #ifndef __DAE_ZAE_UNCOMPRESS_HANDLER_H__ #define __DAE_ZAE_UNCOMPRESS_HANDLER_H__ -#include +#include <../minizip/unzip.h> #include #include diff --git a/dom/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp b/dom/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp index 4536275..2666959 100644 --- a/dom/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp +++ b/dom/src/modules/LIBXMLPlugin/daeLIBXMLPlugin.cpp @@ -32,9 +32,9 @@ #include using namespace std; -#include // for saving compressed files +#include <../minizip/zip.h> // for saving compressed files #ifdef _WIN32 -#include +#include <../minizip/iowin32.h> #else #include #endif ================================================ FILE: ports/collada-dom/vcpkg.json ================================================ { "name": "collada-dom", "version": "2.5.0", "port-version": 11, "description": "The COLLADA Document Object Model (DOM) is an application programming interface (API) that provides a C++ object representation of a COLLADA XML instance document.", "homepage": "https://github.com/rdiankov/collada-dom", "license": null, "dependencies": [ "boost-filesystem", "boost-system", "libxml2", "minizip", "uriparser", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/collada-dom/vs-version-detection.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2596a23..3ec1527 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required (VERSION 2.6.0) +cmake_minimum_required (VERSION 3.7.0) project (collada-dom) set( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE ) @@ -89,14 +89,22 @@ string(TOUPPER ${COMPONENT_PREFIX} COMPONENT_PREFIX_UPPER) set(CPACK_COMPONENTS_ALL ${COMPONENT_PREFIX}-base ${COMPONENT_PREFIX}-dev) if( MSVC ) - if( MSVC70 OR MSVC71 ) - set(MSVC_PREFIX "vc70") - elseif( MSVC80 ) - set(MSVC_PREFIX "vc80") - elseif( MSVC90 ) + if( MSVC_VERSION GREATER_EQUAL 1910 ) + set(MSVC_PREFIX "vc140") + elseif( MSVC_VERSION GREATER_EQUAL 1900 ) + set(MSVC_PREFIX "vc130") + elseif( MSVC_VERSION GREATER_EQUAL 1800 ) + set(MSVC_PREFIX "vc120") + elseif( MSVC_VERSION GREATER_EQUAL 1700 ) + set(MSVC_PREFIX "vc110") + elseif( MSVC_VERSION GREATER_EQUAL 1600 ) + set(MSVC_PREFIX "vc100") + elseif( MSVC_VERSION GREATER_EQUAL 1500 ) set(MSVC_PREFIX "vc90") + elseif( MSVC_VERSION GREATER_EQUAL 1400 ) + set(MSVC_PREFIX "vc80") else() - set(MSVC_PREFIX "vc100") + set(MSVC_PREFIX "vc70") endif() set(COLLADA_DOM_LIBRARY_SUFFIX "${COLLADA_DOM_SOVERSION}-${COLLADA_PRECISION}-${MSVC_PREFIX}-mt") else() ================================================ FILE: ports/colmap/add-missing-cassert.patch ================================================ diff --git a/src/colmap/sfm/observation_manager.cc b/src/colmap/sfm/observation_manager.cc index 22d076da..53412449 100644 --- a/src/colmap/sfm/observation_manager.cc +++ b/src/colmap/sfm/observation_manager.cc @@ -36,6 +36,8 @@ #include "colmap/util/logging.h" #include "colmap/util/misc.h" +#include + namespace colmap { bool MergeAndFilterReconstructions(const double max_reproj_error, ================================================ FILE: ports/colmap/no-glu.diff ================================================ diff --git a/src/thirdparty/SiftGPU/GlobalUtil.cpp b/src/thirdparty/SiftGPU/GlobalUtil.cpp index e98ef6b..39435db 100644 --- a/src/thirdparty/SiftGPU/GlobalUtil.cpp +++ b/src/thirdparty/SiftGPU/GlobalUtil.cpp @@ -137,7 +137,7 @@ void GlobalUtil::CheckErrorsGL(const char* location) const char *errstr; while (errnum = glGetError()) { - errstr = (const char *)(gluErrorString(errnum)); + errstr = nullptr; // just print errnum if(errstr) { std::cerr << errstr; } ================================================ FILE: ports/colmap/portfile.cmake ================================================ # Update both, literally. set(COLMAP_REF 3.12.6 "4d5b60e19ad268072adaf1267d21fa38a9a828ca") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO colmap/colmap REF "${VERSION}" SHA512 718e4542a128fbe39dd36a5e2e6d013c201ef7e23d0f6f38acc10aa5f505185389d8c9b8a75f02846cac4fd426adb75250cc32d32d427496b275ad4632a05ddb HEAD_REF main PATCHES no-glu.diff add-missing-cassert.patch ) if (NOT TRIPLET_SYSTEM_ARCH STREQUAL "x64" AND ("cuda" IN_LIST FEATURES OR "cuda-redist" IN_LIST FEATURES)) message(FATAL_ERROR "Feature cuda and cuda-redist require x64 triplet.") endif() # set GIT_COMMIT_ID and GIT_COMMIT_DATE if(DEFINED VCPKG_HEAD_VERSION) set(GIT_COMMIT_ID "${VCPKG_HEAD_VERSION}") elseif(NOT VERSION IN_LIST COLMAP_REF) message(FATAL_ERROR "Version ${VERSION} missing in COLMAP_REF (${COLMAP_REF})") else() list(GET COLMAP_REF 1 GIT_COMMIT_ID) endif() string(TIMESTAMP COLMAP_GIT_COMMIT_DATE "%Y-%m-%d") foreach(FEATURE ${FEATURE_OPTIONS}) message(STATUS "${FEATURE}") endforeach() set(CUDA_ENABLED OFF) set(GUI_ENABLED OFF) set(CGAL_ENABLED OFF) set(OPENMP_ENABLED ON) if("cuda" IN_LIST FEATURES) set(CUDA_ENABLED ON) set(CUDA_ARCHITECTURES "native") endif() if("cuda-redist" IN_LIST FEATURES) set(CUDA_ENABLED ON) set(CUDA_ARCHITECTURES "all-major") endif() if("gui" IN_LIST FEATURES) set(GUI_ENABLED ON) endif() if("cgal" IN_LIST FEATURES) set(CGAL_ENABLED ON) endif() if (VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm") set(OPENMP_ENABLED OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCUDA_ENABLED=${CUDA_ENABLED} -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES} -DGUI_ENABLED=${GUI_ENABLED} -DGIT_COMMIT_ID=${GIT_COMMIT_ID} -DGIT_COMMIT_DATE=${COLMAP_GIT_COMMIT_DATE} -DOPENMP_ENABLED=${OPENMP_ENABLED} -DCGAL_ENABLED=${CGAL_ENABLED} -DTESTS_ENABLED=OFF -DFETCH_POSELIB=OFF -DFETCH_FAISS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(GLOB TOOL_FILENAMES "${CURRENT_PACKAGES_DIR}/bin/*") foreach(TOOL_FILENAME ${TOOL_FILENAMES}) get_filename_component(TEST_TOOL_NAME ${TOOL_FILENAME} NAME_WLE) list(APPEND COLMAP_TOOL_NAMES "${TEST_TOOL_NAME}") endforeach() vcpkg_copy_tools(TOOL_NAMES ${COLMAP_TOOL_NAMES} AUTO_CLEAN) # remove empty folders and unused files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/colmap/exe" "${CURRENT_PACKAGES_DIR}/include/colmap/tools" "${CURRENT_PACKAGES_DIR}/include/colmap/ui/media" "${CURRENT_PACKAGES_DIR}/include/colmap/ui/shaders" "${CURRENT_PACKAGES_DIR}/COLMAP.bat" "${CURRENT_PACKAGES_DIR}/RUN_TESTS.bat" "${CURRENT_PACKAGES_DIR}/debug/COLMAP.bat" "${CURRENT_PACKAGES_DIR}/debug/RUN_TESTS.bat" "${CURRENT_PACKAGES_DIR}/debug/bin" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/colmap/usage ================================================ For example, under Windows, execute COLMAP as: \packages\colmap_\tools\colmap\colmap.exe gui \packages\colmap_\tools\colmap\colmap.exe mapper \packages\colmap_\tools\colmap\colmap.exe ... The package colmap provides CMake integration: find_package(COLMAP REQUIRED) target_link_libraries(main colmap::colmap) ================================================ FILE: ports/colmap/vcpkg.json ================================================ { "name": "colmap", "version": "3.12.6", "port-version": 1, "description": "COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline with a graphical and command-line interface. It offers a wide range of features for reconstruction of ordered and unordered image collections. The software is licensed under the new BSD license.", "homepage": "https://colmap.github.io/", "license": "BSD-3-Clause", "supports": "(linux | (windows & !static) | osx) & (x86 | x64 | arm64)", "dependencies": [ "boost-algorithm", "boost-graph", "boost-heap", "boost-program-options", "boost-property-map", "boost-property-tree", { "name": "ceres", "features": [ "lapack", "suitesparse" ] }, "eigen3", "faiss", "freeimage", "gflags", "glog", { "name": "jasper", "default-features": false }, "metis", "poselib", "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "gui" ], "features": { "cgal": { "description": "Build with CGAL.", "dependencies": [ "cgal" ] }, "cuda": { "description": "Build with CUDA.", "dependencies": [ "cuda", "glew" ] }, "cuda-redist": { "description": "Redistributable CUDA support for common supported compute architectures.", "dependencies": [ "cuda", "glew" ] }, "gui": { "description": "Build the GUI.", "dependencies": [ "glew", "qt5-base" ] } } } ================================================ FILE: ports/color-console/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO imfl/color-console REF 745f57141e6322e20cdda59a74ab1e00d107ade1 SHA512 d4d919eb211f2981daf6b9af93262fc8ac89bac0db755ba30b31d6aa1b981e5383fb23ef95d1ff004606d138fee630fd790c72e92440b684306c6780750bd9fd HEAD_REF master ) # Install source file file(INSTALL ${SOURCE_PATH}/include/color.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME colorconsole.hpp) # Install license file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) # Install usage file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) ================================================ FILE: ports/color-console/usage ================================================ The package zstr is header only and can be used from CMake via: find_path(COLORCONSOLE_INCLUDE_DIRS "colorconsole.hpp") target_include_directories(main PRIVATE ${COLORCONSOLE_INCLUDE_DIRS}) ================================================ FILE: ports/color-console/vcpkg.json ================================================ { "name": "color-console", "version-date": "2022-03-20", "description": "A lightweight header-only C++ library to bring colors to your Windows console with a very-easy-to-use API.", "homepage": "https://github.com/imfl/color-console", "license": "MIT" } ================================================ FILE: ports/commata/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO furfurylic/commata REF "v${VERSION}" SHA512 9204ff324113359c3f59f10cf24403bf6b18c44146715165f2b8886c852b909cdbd4f681ae82d6abd1c7ce1a1f68cea41c649154f8ec074811f36312e8c168e5 HEAD_REF master ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/include/commata" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/commata/vcpkg.json ================================================ { "name": "commata", "version": "1.2.0", "description": "Just another header-only C++17 CSV parser.", "homepage": "https://github.com/furfurylic/commata", "license": "Unlicense" } ================================================ FILE: ports/comms/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO commschamp/comms REF "v${VERSION}" SHA512 838b4c90a2c9c6374f0755a694057f60b53898dfdd100d16b0e81d308f6a62f3af9e680307b1782290d71c7c0d067fdf5af364e58f30907246b0fcad962e4ce8 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCC_COMMS_BUILD_UNIT_TESTS=OFF -DBUILD_TESTING=OFF -DCC_COMMS_WARN_AS_ERR=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME LibComms CONFIG_PATH lib/LibComms/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/comms/usage ================================================ The package comms provides CMake targets: find_package(LibComms CONFIG REQUIRED) target_link_libraries(main PRIVATE cc::comms) ================================================ FILE: ports/comms/vcpkg.json ================================================ { "name": "comms", "version": "5.2.7", "description": "COMMS is the C++(11) headers only, platform independent library, which makes the implementation of a communication protocol to be an easy and relatively quick process.", "homepage": "https://commschamp.github.io/", "documentation": "https://github.com/commschamp/comms", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/comms-ublox/copyright ================================================ The generated code has no license, the vendor is free to pick any as long as it's compatibile with the license(s) of the relevant CommsChampion Ecosystem project: The protocol definition uses the COMMS Library, which is provided under the MPL-2.0 licence. It allows usage in any closed source projects as long as modifications to the COMMS Library itself remain open source. The CommsChampion Tools use open source Qt5 libraries, hence are licensed under the GPLv3. It means that any relevant plugin code must remain open source and is not really available to be used in the closed source commercial products. The code of this project (libraries and tools it contains) is licensed under Apache v2.0 license. ================================================ FILE: ports/comms-ublox/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO commschamp/cc.ublox.generated REF v1.0 SHA512 0c487d9409c2f2818024f6232832762527250c3563a5eb5c639ad49943931ceb24616db2432bcd752d1a84820ec5349522510dcd202508641d3f29aef41ca1e5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPT_REQUIRE_COMMS_LIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ublox CONFIG_PATH lib/ublox/cmake) # currently this is only a header only library. after moving lib/ublox to share this lib path will be empty file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${CURRENT_PORT_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/comms-ublox/vcpkg.json ================================================ { "name": "comms-ublox", "version-semver": "1.0.0", "description": "UBLOX (UBX) protocol definition, generated out of cc.ublox.commsdsl", "homepage": "https://commschamp.github.io/", "documentation": "https://github.com/commschamp/cc.ublox.generated", "license": null, "dependencies": [ "comms", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/commsdsl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO commschamp/commsdsl REF "v${VERSION}" SHA512 f782f624016d8dd45280a647b056430eed246ee1d1ab6ff9c55870bb7ed7111d4d4d02d14c59aa3364625cdb804e4af1965b8b3834d5f4a2865d062a1ff2b75e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCOMMSDSL_INSTALL_APPS=ON -DCOMMSDSL_INSTALL_LIBRARY=ON -DCOMMSDSL_INSTALL_LIBRARY_HEADERS=ON -DCOMMSDSL_BUILD_UNIT_TESTS=OFF -DCOMMSDSL_WARN_AS_ERR=OFF -DCOMMSDSL_WIN_ALLOW_LIBXML_BUILD=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_tools( TOOL_NAMES commsdsl2comms AUTO_CLEAN ) vcpkg_cmake_config_fixup(PACKAGE_NAME LibCommsdsl CONFIG_PATH lib/LibCommsdsl/cmake) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/LibCommsdsl/LibCommsdslConfig.cmake" "if (TARGET cc::commsdsl)" [[include(CMakeFindDependencyMacro) find_dependency(LibXml2) if (TARGET cc::commsdsl)]]) # after fixing the following dirs are empty file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/LibCommsdsl") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/LibCommsdsl") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/commsdsl/vcpkg.json ================================================ { "name": "commsdsl", "version-semver": "6.3.4", "description": "DSL schemas parser and code generator for CommsChampion Ecosystem", "homepage": "https://commschamp.github.io/", "documentation": "https://github.com/commschamp/commsdsl", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "libxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/compoundfilereader/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/compoundfilereader REF v0.1.0 SHA512 0ebb3ad02e4723d5e00a553d608dd8760614a3d83785c0e96a6d9a04df7e92486f6a4ecc0f7327a593776865abe697d21125554d547e89c838c69ab2da24d906 ) file(COPY "${SOURCE_PATH}/src/include/compoundfilereader.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/src/include/utf.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/compoundfilereader/vcpkg.json ================================================ { "name": "compoundfilereader", "version": "0.1.0", "description": "Simple standalone c++ header file to read compound file (Structured Storage File) content.", "homepage": "https://github.com/microsoft/compoundfilereader" } ================================================ FILE: ports/concurrencpp/add-include-chrono.patch ================================================ diff --git a/include/concurrencpp/results/impl/shared_result_state.h b/include/concurrencpp/results/impl/shared_result_state.h index 6c96f4b..1433e74 100644 --- a/include/concurrencpp/results/impl/shared_result_state.h +++ b/include/concurrencpp/results/impl/shared_result_state.h @@ -5,6 +5,7 @@ #include "concurrencpp/results/impl/result_state.h" #include +#include #include #include ================================================ FILE: ports/concurrencpp/add-include-string.patch ================================================ diff --git a/include/concurrencpp/threads/thread.h b/include/concurrencpp/threads/thread.h index 82ca58b..ecdaa27 100644 --- a/include/concurrencpp/threads/thread.h +++ b/include/concurrencpp/threads/thread.h @@ -4,6 +4,7 @@ #include "concurrencpp/platform_defs.h" #include +#include #include #include ================================================ FILE: ports/concurrencpp/fix-include-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ include(CMakePackageConfigHelpers) include(GNUInstallDirs) set(concurrencpp_directory "concurrencpp-${PROJECT_VERSION}") -set(concurrencpp_include_directory "${CMAKE_INSTALL_INCLUDEDIR}/${concurrencpp_directory}") +set(concurrencpp_include_directory "${CMAKE_INSTALL_INCLUDEDIR}") install( TARGETS concurrencpp ================================================ FILE: ports/concurrencpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO David-Haim/concurrencpp REF "v.${VERSION}" SHA512 b87a6bd0593d6a7d35f911a0a9835e1afe416aa25d06e4d448789617c94ec2faeb5df07d68d5ccc7e986009f09016f90ef57016b1aabe567996d3ad9816add4c HEAD_REF master PATCHES fix-include-path.patch add-include-string.patch add-include-chrono.patch # https://github.com/David-Haim/concurrencpp/pull/170 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/concurrencpp-${VERSION}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/concurrencpp/vcpkg.json ================================================ { "name": "concurrencpp", "version": "0.1.7", "port-version": 2, "description": "concurrencpp is a tasking library for C++ allowing developers to write highly concurrent applications easily and safely by using tasks, executors and coroutines.", "homepage": "https://github.com/David-Haim/concurrencpp/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/concurrentqueue/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cameron314/concurrentqueue REF v${VERSION} SHA512 a27306d1a7ad725daf5155a8e33a93efd29839708b2147ba703d036c4a92e04cbd8a505d804d2596ccb4dd797e88aca030b1cb34a4eaf09c45abb0ab55e604ea HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/concurrentqueue") # transitional polyfill file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include/concurrentqueue/unofficial/concurrentqueue") file(WRITE "${CURRENT_PACKAGES_DIR}/include/concurrentqueue/unofficial/concurrentqueue/concurrentqueue.h" [[#include "../../moodycamel/concurrentqueue.h"]]) file(COPY "${CURRENT_PORT_DIR}/unofficial-concurrentqueue-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-concurrentqueue") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(RENAME "${CURRENT_PACKAGES_DIR}/include/concurrentqueue/moodycamel/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/concurrentqueue/unofficial-concurrentqueue-config.cmake ================================================ message(WARNING [[ 'find_package(unofficial-concurrentqueue)' is deprecated. Please use find_package(concurrentqueue CONFIG) target_link_libraries(main PRIVATE concurrentqueue::concurrentqueue) #include ]]) include(CMakeFindDependencyMacro) find_dependency(concurrentqueue) if(NOT TARGET unofficial::concurrentqueue::concurrentqueue) add_library(#[[skip-usage-heuristics]] unofficial::concurrentqueue::concurrentqueue IMPORTED INTERFACE) set_target_properties(unofficial::concurrentqueue::concurrentqueue PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../include/concurrentqueue/unofficial" INTERFACE_LINK_LIBRARIES concurrentqueue::concurrentqueue ) endif() ================================================ FILE: ports/concurrentqueue/vcpkg.json ================================================ { "name": "concurrentqueue", "version": "1.0.4", "port-version": 1, "description": "A fast multi-producer, multi-consumer lock-free concurrent queue for C++11", "homepage": "https://github.com/cameron314/concurrentqueue", "license": "BSD-2-Clause OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/configcat/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO configcat/cpp-sdk REF "v${VERSION}" SHA512 e292608042f695fdded36490f1a6ec7ba956cd400c0d3cfb54bf4199d65cd88a7a7b2ffc10b5d9f346c1f3b916781df14fcbeb3e329c6683a9efab32338b9ac0 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES network CONFIGCAT_USE_EXTERNAL_NETWORK_ADAPTER sha CONFIGCAT_USE_EXTERNAL_SHA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCONFIGCAT_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/configcat") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/configcat/vcpkg.json ================================================ { "name": "configcat", "version": "4.0.5", "description": "ConfigCat SDK for C++ provides easy integration for your application to ConfigCat. ConfigCat is a feature flag and configuration management service that lets you separate feature releases from deployments. Alternative to LaunchDarkly.", "homepage": "https://configcat.com/", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "z4kn4fein-semver" ], "default-features": [ "network", "sha" ], "features": { "network": { "description": "Use curl for network", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] }, { "name": "openssl", "platform": "linux" } ] }, "sha": { "description": "Use hash-library for SHA calculations", "dependencies": [ "hash-library" ] } } } ================================================ FILE: ports/conjure-enum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fix8mt/conjure_enum REF "v${VERSION}" SHA512 1eb201b7286f77176eb76fbb7d1e2236f9c689dadbbba1f73211c80bdfa04f3eb3a170b325115d54a9d0ddbb4789ee45c6952dd9c23688910bf919a7e19e4aa8 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/fix8 DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/conjure-enum/vcpkg.json ================================================ { "name": "conjure-enum", "version": "1.2.0", "description": "Lightweight header-only C++20 enum and typename reflection.", "homepage": "https://github.com/fix8mt/conjure_enum", "license": "MIT" } ================================================ FILE: ports/console-bridge/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ros/console_bridge REF 1.0.2 SHA512 ed427da8e59f9629f8d70e0a14415f88177c06fbaf7334bee56135dde91d19a1b54f5c9c668e0fd68314ab8dfd61446a174b9f528304decc5d4626a7c98882cb HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(PACKAGE_NAME console_bridge CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME console_bridge CONFIG_PATH lib/console_bridge/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/console_bridge") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/console_bridge") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${CURRENT_PACKAGES_DIR}/include/console_bridge/console_bridge_export.h" _contents) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "ifdef CONSOLE_BRIDGE_STATIC_DEFINE" "if 1" _contents "${_contents}") else() string(REPLACE "ifdef CONSOLE_BRIDGE_STATIC_DEFINE" "if 0" _contents "${_contents}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/console_bridge/console_bridge_export.h" "${_contents}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/console-bridge/vcpkg.json ================================================ { "name": "console-bridge", "version-semver": "1.0.2", "description": "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages.", "homepage": "https://github.com/ros/console_bridge", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/constexpr/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO elbeno/constexpr REF a98b1db39c909e0130d21d3910d4faf97035a625 SHA512 8802ee43b510ea1f0c00949eecd84eb2bf3ac721802e6bc6755db9e6e2742d8b97fef427eca7d4d9a282c60a18ca10401386022eac995bd22624f45e3fc2c370 HEAD_REF master ) # Copy the constexpr header files file(GLOB HEADER_FILES "${SOURCE_PATH}/src/include/*.h") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/constexpr/vcpkg.json ================================================ { "name": "constexpr", "version": "1.0", "port-version": 3, "description": "Small MIT License Library of general stdlib functions written as C++11 constexpr functions.", "homepage": "https://github.com/elbeno/constexpr", "license": "MIT" } ================================================ FILE: ports/constexpr-contracts/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cjdb/constexpr-contracts REF 58154e9010cb80aad4e95ef6f1835ebd7db3780a # commit 2020-05-25 SHA512 b634267a4044cd712c8e52f65cd305f437864cab591f2b22104581f70b305ba52889dd46724e6047386463a010ee78fdd951411ea3691b5725d52d13f7adda76 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/constexpr-contracts) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/constexpr-contracts/vcpkg.json ================================================ { "name": "constexpr-contracts", "version-date": "2020-08-09", "port-version": 3, "description": "A constexpr-friendly, optimisation-friendly contracts library.", "homepage": "https://github.com/cjdb/constexpr-contracts", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/continuable/fix-cmakelists.patch ================================================ Index: 4.2.0-0b164f3722.clean/CMakeLists.txt =================================================================== --- 4.2.0-0b164f3722.clean.orig/CMakeLists.txt +++ 4.2.0-0b164f3722.clean/CMakeLists.txt @@ -82,7 +82,7 @@ if(NOT TARGET Threads::Threads) find_package(Threads REQUIRED) endif() -if(CTI_CONTINUABLE_IS_TOP_LEVEL_PROJECT) +if(false) include(cmake/CMakeLists.txt) add_subdirectory(dep) else() @@ -168,8 +168,8 @@ if(CTI_CONTINUABLE_WITH_INSTALL) # Create an install target: Headers and license files install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/continuable" DESTINATION "include") - install(FILES "LICENSE.txt" DESTINATION .) - install(FILES "Readme.md" DESTINATION .) + install(FILES "LICENSE.txt" DESTINATION share/${PROJECT_NAME} RENAME copyright) + install(FILES "Readme.md" DESTINATION share/${PROJECT_NAME}) # Config.cmake write_basic_package_version_file( ================================================ FILE: ports/continuable/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Naios/continuable REF "${VERSION}" SHA512 069b1fe37d5dd3495639942af40b9d5fe90408ee0f92f61e85c8aab3e1132300eb75df216a84595cb05c35e0fcb1b789fda4dae3fd2b263ac70910f5374536cc HEAD_REF master PATCHES fix-cmakelists.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCTI_CONTINUABLE_WITH_INSTALL=ON -DCTI_CONTINUABLE_WITH_TESTS=OFF -DCTI_CONTINUABLE_WITH_EXAMPLES=OFF -DCTI_CONTINUABLE_WITH_BENCHMARKS=OFF -DCTI_CONTINUABLE_WITH_NO_EXCEPTIONS=OFF -DCTI_CONTINUABLE_WITH_UNHANDLED_EXCEPTIONS=ON -DCTI_CONTINUABLE_WITH_EXPERIMENTAL_COROUTINE=ON -DCTI_CONTINUABLE_WITH_CPP_LATEST=ON # requires cxx_std_17 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) ================================================ FILE: ports/continuable/vcpkg.json ================================================ { "name": "continuable", "version": "4.2.2", "description": "C++14 asynchronous allocation aware futures (supporting then, exception handling, coroutines and connections)", "homepage": "https://naios.github.io/continuable/", "license": "MIT", "dependencies": [ "function2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/convectionkernels/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.3.0) project( convectionkernels ) file(GLOB SRC_FILES *.cpp) file(GLOB HDR_FILES *.h) add_library( ${PROJECT_NAME} STATIC ${HDR_FILES} ${SRC_FILES} ) set_property( TARGET ${PROJECT_NAME} PROPERTY PUBLIC_HEADER ${HDR_FILES} ) target_include_directories( ${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR} INTERFACE $ ) install( TARGETS ${PROJECT_NAME} EXPORT unofficial-convectionkernels-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include/convectionkernels ) install( EXPORT unofficial-convectionkernels-config FILE unofficial-convectionkernels-config.cmake NAMESPACE unofficial::convectionkernels:: DESTINATION share/unofficial-convectionkernels ) ================================================ FILE: ports/convectionkernels/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO elasota/ConvectionKernels REF dc2dbbe0ae2cf2be06ef56d1021e2222a56c7fe2 SHA512 2bf3aff1acb7b2365b882b4c1274ea8bcb9aea3015b5009e0ec50279122ecc623074d0f4fa04ddf8cd457e1f6868075a773bf8a2fa5b4fa9e2fd51d0a76d2560 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-convectionkernels) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/convectionkernels/vcpkg.json ================================================ { "name": "convectionkernels", "version-date": "2022-06-08", "description": "Fast, high-quality texture compression library for many formats, also known as cvtt", "homepage": "https://github.com/elasota/ConvectionKernels", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/coolprop/cmake-project-include.cmake ================================================ if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() ================================================ FILE: ports/coolprop/fix-builderror.patch ================================================ diff --git a/include/CPmsgpack.h b/include/CPmsgpack.h index e11f6be..948cc65 100644 --- a/include/CPmsgpack.h +++ b/include/CPmsgpack.h @@ -6,7 +6,6 @@ // Workaround MSVC endiannes issues #if defined(_MSC_VER) && ( defined(_M_ARM) || defined(_M_ARM64) ) -# define MSGPACK_ENDIAN_LITTLE_BYTE #endif #include "msgpack.hpp" diff --git a/src/ODEIntegrators.cpp b/src/ODEIntegrators.cpp index 23bd4c4..beab710 100644 --- a/src/ODEIntegrators.cpp +++ b/src/ODEIntegrators.cpp @@ -4,6 +4,8 @@ #include "CPstrings.h" #include "Exceptions.h" #include +#undef max +#undef min bool ODEIntegrators::AdaptiveRK54(AbstractODEIntegrator& ode, double tstart, double tend, double hmin, double hmax, double eps_allowed, double step_relax) { ================================================ FILE: ports/coolprop/fix-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7bbf8d6..617ac93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,13 +247,10 @@ list(REMOVE_ITEM APP_SOURCES list(REMOVE_ITEM APP_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/CoolPropLib.cpp") set(APP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}") -list(APPEND APP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/externals/Eigen") -list(APPEND APP_INCLUDE_DIRS - "${CMAKE_CURRENT_SOURCE_DIR}/externals/msgpack-c/include") -list(APPEND APP_INCLUDE_DIRS - "${CMAKE_CURRENT_SOURCE_DIR}/externals/fmtlib/include") -list(APPEND APP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/externals/fmtlib" -)# should be deprecated +find_package(Eigen3 CONFIG REQUIRED) +find_package(msgpack-cxx CONFIG REQUIRED) +find_package(fmt CONFIG REQUIRED) +link_libraries(Eigen3::Eigen msgpack-cxx fmt::fmt) list(APPEND APP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include") list(APPEND APP_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/src") ================================================ FILE: ports/coolprop/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 619dfeb..f856613 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -543,21 +543,24 @@ if(COOLPROP_OBJECT_LIBRARY endif(MSVC) install( TARGETS ${LIB_NAME} - DESTINATION - static_library/${CMAKE_SYSTEM_NAME}/${BITNESS}bit_${CMAKE_CXX_COMPILER_ID}_${CMAKE_CXX_COMPILER_VERSION} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${COOLPROP_LIBRARY_HEADER} - DESTINATION static_library) + DESTINATION include) elseif(COOLPROP_SHARED_LIBRARY) list(APPEND APP_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${COOLPROP_LIBRARY_SOURCE}") add_library(${LIB_NAME} SHARED ${APP_SOURCES} ${COOLPROP_LIBRARY_EXPORTS}) install( TARGETS ${LIB_NAME} - DESTINATION shared_library/${CMAKE_SYSTEM_NAME}/${BITNESS}bit${CONVENTION} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${COOLPROP_LIBRARY_HEADER} - DESTINATION shared_library) + DESTINATION include) set_property( TARGET ${LIB_NAME} APPEND_STRING @@ -889,7 +892,9 @@ if(COOLPROP_EES_MODULE) VERBATIM) # install the generated library and the other files install(TARGETS COOLPROP_EES - DESTINATION "${CMAKE_INSTALL_PREFIX}/EES/${CMAKE_SYSTEM_NAME}") + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/wrappers/EES/CoolProp.htm" DESTINATION "${CMAKE_INSTALL_PREFIX}/EES/${CMAKE_SYSTEM_NAME}") install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/wrappers/EES/CoolProp.LIB" ================================================ FILE: ports/coolprop/fmt-fix.patch ================================================ diff --git a/include/CPstrings.h b/include/CPstrings.h index 711981cd..fda2f055 100644 --- a/include/CPstrings.h +++ b/include/CPstrings.h @@ -6,6 +6,8 @@ #include #include #include +#include +#include #if !defined(NO_FMTLIB) # ifndef FMT_HEADER_ONLY @@ -74,17 +76,16 @@ inline bool endswith(const std::string& s1, const std::string& s2) { #if defined(NO_FMTLIB) // Missing string formatting function, this old guy is needed for ancient gcc compilers on PowerPC for VxWorks inline std::string format(const char* fmt, ...); +#elif FMT_VERSION >= 50000 +template +inline std::string format(const char* format_str, const Args&... args) { + return fmt::sprintf(format_str, args...); +} #else -// Missing std::string formatting function - provided by the fmtlib library inline std::string format(const char* format, fmt::ArgList args) { return fmt::sprintf(format, args); } FMT_VARIADIC(std::string, format, const char*) -// For latest FMTLIB -/*template - inline std::string format(const char *format_str, const Args & ... args) { - return fmt::sprintf(format_str, args); - }*/ #endif // Missing string split - like in Python diff --git a/include/CoolPropFluid.h b/include/CoolPropFluid.h index 80fb9ff3..093bd294 100644 --- a/include/CoolPropFluid.h +++ b/include/CoolPropFluid.h @@ -562,5 +562,19 @@ class CoolPropFluid }; }; +#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 +static int format_as(ViscosityDiluteVariables::ViscosityDiluteType type) { + return fmt::underlying(type); +} + +static int format_as(TransportPropertyData::ViscosityHardcodedEnum viscosity) { + return fmt::underlying(viscosity); +} + +static int format_as(TransportPropertyData::ConductivityHardcodedEnum conductivity) { + return fmt::underlying(conductivity); +} +#endif + } /* namespace CoolProp */ #endif /* COOLPROPFLUID_H_ */ diff --git a/include/DataStructures.h b/include/DataStructures.h index 0aebc0b4..5265ac82 100644 --- a/include/DataStructures.h +++ b/include/DataStructures.h @@ -473,5 +473,40 @@ void extract_backend_families(std::string backend_string, backend_families& f1, void extract_backend_families_string(std::string backend_string, backend_families& f1, std::string& f2); std::string get_backend_string(backends backend); +#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 +/// Allows enums to be formatted +static int format_as(parameters parameter) { + return fmt::underlying(parameter); +} + +static int format_as(phases phase) { + return fmt::underlying(phase); +} + +static int format_as(schemes scheme) { + return fmt::underlying(scheme); +} + +static int format_as(composition_types type) { + return fmt::underlying(type); +} + +static int format_as(fluid_types type) { + return fmt::underlying(type); +} + +static int format_as(input_pairs pair) { + return fmt::underlying(pair); +} + +static int format_as(backend_families family) { + return fmt::underlying(family); +} + +static int format_as(backends backend) { + return fmt::underlying(backend); +} +#endif + } /* namespace CoolProp */ #endif /* DATASTRUCTURES_H_ */ diff --git a/include/IncompressibleFluid.h b/include/IncompressibleFluid.h index 1ea41775..b641d2e0 100644 --- a/include/IncompressibleFluid.h +++ b/include/IncompressibleFluid.h @@ -44,6 +44,12 @@ struct IncompressibleData }; }; +#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 +static int format_as(IncompressibleData::IncompressibleTypeEnum type) { + return fmt::underlying(type); +} +#endif + /// A property provider for incompressible solutions and pure fluids /** This fluid instance is populated using an entry from a JSON file diff --git a/src/Backends/Helmholtz/VLERoutines.h b/src/Backends/Helmholtz/VLERoutines.h index e13c0295..c63d0cbc 100644 --- a/src/Backends/Helmholtz/VLERoutines.h +++ b/src/Backends/Helmholtz/VLERoutines.h @@ -97,6 +97,12 @@ struct saturation_PHSU_pure_options } }; +#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 +static int format_as(saturation_PHSU_pure_options::specified_variable_options option) { + return fmt::underlying(option); +} +#endif + void saturation_PHSU_pure(HelmholtzEOSMixtureBackend& HEOS, CoolPropDbl specified_value, saturation_PHSU_pure_options& options); /* \brief This is a backup saturation_p solver for the case where the Newton solver cannot approach closely enough the solution diff --git a/src/HumidAirProp.cpp b/src/HumidAirProp.cpp index 640bd843..eb586a63 100644 --- a/src/HumidAirProp.cpp +++ b/src/HumidAirProp.cpp @@ -76,6 +76,12 @@ enum givens GIVEN_ISENTROPIC_EXPONENT }; +#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 +int format_as(givens given) { + return fmt::underlying(given); +} +#endif + void _HAPropsSI_inputs(double p, const std::vector& input_keys, const std::vector& input_vals, double& T, double& psi_w); double _HAPropsSI_outputs(givens OuputType, double p, double T, double psi_w); double MoleFractionWater(double, double, int, double); ================================================ FILE: ports/coolprop/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CoolProp/CoolProp REF "v${VERSION}" SHA512 ccd868cb297d86f054318acec4c3bf9f8ec07b54c320d5e887853c4190adefbd3b2d188e7453896656b5ad0e81b32d133fd0ce67bf58e647d58c96918bc993eb HEAD_REF master PATCHES fmt-fix.patch fix-builderror.patch fix-dependency.patch fix-install.patch ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "CACHE LIST" "CACHE STRING") file(REMOVE_RECURSE "${SOURCE_PATH}/externals") file(COPY "${CURRENT_INSTALLED_DIR}/include/IF97.h" DESTINATION "${SOURCE_PATH}/externals/IF97") file(COPY "${CURRENT_INSTALLED_DIR}/include/REFPROP_lib.h" DESTINATION "${SOURCE_PATH}/externals/REFPROP-headers/") file(COPY "${CURRENT_INSTALLED_DIR}/include/rapidjson" DESTINATION "${SOURCE_PATH}/externals/rapidjson/include") # Fix GCC warning when thread_local is substitude as __thread vcpkg_replace_string("${SOURCE_PATH}/externals/rapidjson/include/rapidjson/document.h" "thread_local static " "static thread_local ") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" COOLPROP_SHARED_LIBRARY) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" COOLPROP_STATIC_LIBRARY) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" COOLPROP_MSVC_DYNAMIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" COOLPROP_MSVC_STATIC) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DCOOLPROP_SHARED_LIBRARY=${COOLPROP_SHARED_LIBRARY} -DCOOLPROP_STATIC_LIBRARY=${COOLPROP_STATIC_LIBRARY} -DCOOLPROP_MSVC_DYNAMIC=${COOLPROP_MSVC_DYNAMIC} -DCOOLPROP_MSVC_STATIC=${COOLPROP_MSVC_STATIC} "-DPYTHON_EXECUTABLE=${PYTHON3}" OPTIONS_RELEASE "-DCOOLPROP_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}" OPTIONS_DEBUG "-DCOOLPROP_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug" ) vcpkg_cmake_install() vcpkg_copy_pdbs() if (VCPKG_TARGET_IS_WINDOWS AND COOLPROP_SHARED_LIBRARY) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/CoolPropLib.h "#if defined(COOLPROP_LIB)" "#if 1" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/coolprop/vcpkg.json ================================================ { "name": "coolprop", "version-semver": "6.4.3", "port-version": 3, "description": "Thermophysical properties for the masses", "homepage": "https://github.com/CoolProp/CoolProp", "license": "MIT", "dependencies": [ "eigen3", "fmt", "if97", "msgpack", "rapidjson", "refprop-headers", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/copypp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO i-curve/copypp REF "v${VERSION}" SHA512 1c34cfcc30234d6a0eb3f150dff40299f74be8cc7653dc494a5a6857ad4d42342815a8ef2cb3b06d05555cd9d6d4c9b9941a7a845ab40cc782ce4660fb1e2560 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCOPYPP_TEST=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/copypp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/copypp/usage ================================================ copypp provides CMake targets: find_package(copypp CONFIG REQUIRED) target_link_libraries(main PRIVATE icurve::copypp) ================================================ FILE: ports/copypp/vcpkg.json ================================================ { "name": "copypp", "version": "0.3.0", "description": "support field copy in different c++ data type.", "homepage": "https://github.com/i-curve/copypp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/coroutine/add-noexcept-to-frame.patch ================================================ --- a/interface/coroutine/frame.h +++ a/interface/coroutine/frame.h @@ -119,8 +119,8 @@ return *this; } // 17.12.3.2, export/import - static /*constexpr*/ coroutine_handle from_address(void* _Addr) { + static /*constexpr*/ coroutine_handle from_address(void* _Addr) noexcept { coroutine_handle _Result{}; _Result._Ptr = reinterpret_cast(_Addr); return _Result; } ================================================ FILE: ports/coroutine/fix-errorC7651.patch ================================================ diff --git a/modules/portable/frame.cpp b/modules/portable/frame.cpp index 2cedf81..f413f28 100644 --- a/modules/portable/frame.cpp +++ b/modules/portable/frame.cpp @@ -77,13 +77,31 @@ size_t _coro_done(void*); // // intrinsic: Clang/GCC // -extern "C" { -bool __builtin_coro_done(void*); -void __builtin_coro_resume(void*); -void __builtin_coro_destroy(void*); -// void* __builtin_coro_promise(void* ptr, int align, bool p); +//extern "C" { +template +void resume_wrapper(void *p) +{ + if constexpr (B) + __builtin_coro_resume(p); +} + +template +void destroy_wrapper(void *p) +{ + if constexpr(B) + __builtin_coro_destroy(p); } +template +bool done_wrapper(void *p) +{ + if constexpr(B) + return __builtin_coro_done(p); + return false; +} +// void* __builtin_coro_promise(void* ptr, int align, bool p); +//} + bool _coro_finished(portable_coro_prefix* _Handle); #if defined(__clang__) @@ -124,7 +142,7 @@ bool portable_coro_done(portable_coro_prefix* _Handle) { if constexpr (is_msvc) { return _coro_finished(_Handle); } else if constexpr (is_clang) { - return __builtin_coro_done(_Handle); + return done_wrapper(_Handle); } return false; // follow `noop_coroutine` } @@ -133,7 +151,7 @@ void portable_coro_resume(portable_coro_prefix* _Handle) { if constexpr (is_msvc) { _coro_resume(_Handle); } else if constexpr (is_clang) { - __builtin_coro_resume(_Handle); + resume_wrapper(_Handle); } } @@ -141,7 +159,7 @@ void portable_coro_destroy(portable_coro_prefix* _Handle) { if constexpr (is_msvc) { _coro_destroy(_Handle); } else if constexpr (is_clang) { - __builtin_coro_destroy(_Handle); + destroy_wrapper(_Handle); } } ================================================ FILE: ports/coroutine/gsl-4_0_0.patch ================================================ diff --git a/interface/coroutine/net.h b/interface/coroutine/net.h index 17b70a8..3c44827 100644 --- a/interface/coroutine/net.h +++ b/interface/coroutine/net.h @@ -344,7 +344,7 @@ void poll_net_tasks(uint64_t nano) noexcept(false); * @ingroup Network */ uint32_t get_address(const addrinfo& hint, // - gsl::czstring<> host, gsl::czstring<> serv, + gsl::czstring host, gsl::czstring serv, gsl::span output) noexcept; /** @@ -361,7 +361,7 @@ uint32_t get_address(const addrinfo& hint, // * @ingroup Network */ uint32_t get_address(const addrinfo& hint, // - gsl::czstring<> host, gsl::czstring<> serv, + gsl::czstring host, gsl::czstring serv, gsl::span output) noexcept; /** @@ -377,7 +377,7 @@ uint32_t get_address(const addrinfo& hint, // * @ingroup Network */ uint32_t get_name(const sockaddr_in& addr, // - gsl::zstring name, gsl::zstring serv, + gsl::basic_zstring name, gsl::basic_zstring serv, int32_t flags = NI_NUMERICHOST | NI_NUMERICSERV) noexcept; /** @@ -392,7 +392,7 @@ uint32_t get_name(const sockaddr_in& addr, // * @ingroup Network */ uint32_t get_name(const sockaddr_in6& addr, // - gsl::zstring name, gsl::zstring serv, + gsl::basic_zstring name, gsl::basic_zstring serv, int32_t flags = NI_NUMERICHOST | NI_NUMERICSERV) noexcept; } // namespace coro diff --git a/modules/net/resolver.cpp b/modules/net/resolver.cpp index 21a9800..5328939 100644 --- a/modules/net/resolver.cpp +++ b/modules/net/resolver.cpp @@ -9,7 +9,7 @@ namespace coro { GSL_SUPPRESS(type .1) uint32_t get_name(const sockaddr_in& addr, // - gsl::zstring name, gsl::zstring serv, + gsl::basic_zstring name, gsl::basic_zstring serv, int32_t flags) noexcept { const auto* ptr = reinterpret_cast(addressof(addr)); return ::getnameinfo(ptr, sizeof(sockaddr_in), // @@ -20,7 +20,7 @@ uint32_t get_name(const sockaddr_in& addr, // GSL_SUPPRESS(type .1) uint32_t get_name(const sockaddr_in6& addr, // - gsl::zstring name, gsl::zstring serv, + gsl::basic_zstring name, gsl::basic_zstring serv, int32_t flags) noexcept { const auto* ptr = reinterpret_cast(addressof(addr)); return ::getnameinfo(ptr, sizeof(sockaddr_in6), // @@ -58,7 +58,7 @@ auto get_address(addrinfo* list, sockaddr_in6 addr) noexcept } uint32_t get_address(const addrinfo& hint, // - gsl::czstring<> host, gsl::czstring<> serv, + gsl::czstring host, gsl::czstring serv, gsl::span output) noexcept { addrinfo* list = nullptr; if (const auto ec = ::getaddrinfo(host, serv, // @@ -74,7 +74,7 @@ uint32_t get_address(const addrinfo& hint, // } uint32_t get_address(const addrinfo& hint, // - gsl::czstring<> host, gsl::czstring<> serv, + gsl::czstring host, gsl::czstring serv, gsl::span output) noexcept { addrinfo* list = nullptr; if (const auto ec = ::getaddrinfo(host, serv, // ================================================ FILE: ports/coroutine/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("Warning: `coroutine` requires libc++ and Clang or GCC 10+ on Linux") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO luncliff/coroutine REF 1.5.0 SHA512 61b91fdc641b6905b884e99c5bf193ec2cf6962144ab3baafdb9432115757d96f3797f116b30356f0d21417b23082bc908f75042721caeab3329c4910b654594 HEAD_REF master PATCHES fix-errorC7651.patch add-noexcept-to-frame.patch gsl-4_0_0.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DGSL_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include" -DBUILD_TESTING=False ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/coroutine/vcpkg.json ================================================ { "name": "coroutine", "version": "1.5.0", "port-version": 5, "description": "C++ 20 Coroutines helper/example library", "homepage": "https://github.com/luncliff/coroutine", "supports": "!uwp", "dependencies": [ "ms-gsl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/corrade/build-corrade-rc-always.patch ================================================ --- a/src/Corrade/Utility/CMakeLists.txt +++ b/src/Corrade/Utility/CMakeLists.txt @@ -185,13 +185,12 @@ # corrade-rc when generating WinRT targets by setting # set_target_properties(corrade-rc PROPERTIES VS_WINRT_COMPONENT OFF) # Then this would be if(NOT CMAKE_CROSSCOMPILING OR CORRADE_TARGET_WINDOWS_RT). # However, it seems like this feature never materialized, as doing this will # result in corrade-rc that's looking for vcruntime140_app.dll in order to be # run. Last checked: Nov 2019. -if(NOT CMAKE_CROSSCOMPILING) # Sources for standalone corrade-rc set(CorradeUtilityRc_SRCS Arguments.cpp Debug.cpp Directory.cpp Configuration.cpp @@ -235,9 +234,10 @@ if(CORRADE_TARGET_UNIX) target_link_libraries(corrade-rc PRIVATE ${CMAKE_DL_LIBS}) endif() set_target_properties(corrade-rc PROPERTIES FOLDER "Corrade/Utility") install(TARGETS corrade-rc DESTINATION ${CORRADE_BINARY_INSTALL_DIR}) +if(NOT CMAKE_CROSSCOMPILING) # Corrade::rc target alias for superprojects add_executable(Corrade::rc ALIAS corrade-rc) endif() ================================================ FILE: ports/corrade/clang-16.patch ================================================ diff --git a/src/Corrade/Utility/StlForwardArray.h b/src/Corrade/Utility/StlForwardArray.h index 0e78d61..363fafb 100644 --- a/src/Corrade/Utility/StlForwardArray.h +++ b/src/Corrade/Utility/StlForwardArray.h @@ -55,7 +55,11 @@ possible or is unknown is equivalent to @cpp #include @ce. #ifdef CORRADE_TARGET_LIBCXX /* https://github.com/llvm-mirror/libcxx/blob/73d2eccc78ac83d5947243c4d26a53f668b4f432/include/__tuple#L223 */ +#if _LIBCPP_VERSION < 160000 #include <__tuple> +#else +#include <__fwd/array.h> +#endif #elif defined(CORRADE_TARGET_DINKUMWARE) /* MSVC has it defined next to std::pair */ #include diff --git a/src/Corrade/Utility/StlForwardTuple.h b/src/Corrade/Utility/StlForwardTuple.h index 5701bc0..3292ec8 100644 --- a/src/Corrade/Utility/StlForwardTuple.h +++ b/src/Corrade/Utility/StlForwardTuple.h @@ -55,7 +55,11 @@ is equivalent to @cpp #include @ce. #ifdef CORRADE_TARGET_LIBCXX /* https://github.com/llvm-mirror/libcxx/blob/73d2eccc78ac83d5947243c4d26a53f668b4f432/include/__tuple#L163 */ +#if _LIBCPP_VERSION < 160000 #include <__tuple> +#else +#include <__fwd/tuple.h> +#endif #elif defined(CORRADE_TARGET_LIBSTDCXX) /* https://github.com/gcc-mirror/gcc/blob/c014d57d57a03e6061a57fa8534e90979567392b/libstdc%2B%2B-v3/include/std/type_traits#L2465-L2466 */ #include ================================================ FILE: ports/corrade/fix-vs2019.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e0cc288..e5a4648 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,7 +195,7 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(MSVC2017_COMPATIBILITY ON) message(WARNING "MSVC 2017 detected, automatically enabling MSVC2017_COMPATIBILITY. Note that some features may not be available with this compiler.") endif() - elseif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.30") + elseif(CMAKE_CXX_COMPILER_VERSION GREATER "19.20") if(NOT MSVC2019_COMPATIBILITY) set(MSVC2019_COMPATIBILITY ON) message(WARNING "MSVC 2019 detected, automatically enabling MSVC2019_COMPATIBILITY. Note that some features may not be available with this compiler.") ================================================ FILE: ports/corrade/missing-headers.diff ================================================ diff --git a/src/Corrade/PluginManager/AbstractManager.h b/src/Corrade/PluginManager/AbstractManager.h index c8ef531..3d2e3dd 100644 --- a/src/Corrade/PluginManager/AbstractManager.h +++ b/src/Corrade/PluginManager/AbstractManager.h @@ -29,6 +29,10 @@ * @brief Class @ref Corrade::PluginManager::AbstractManager, macro @ref CORRADE_PLUGIN_VERSION, @ref CORRADE_PLUGIN_REGISTER() */ +#include +#include +#include + #include "Corrade/Containers/EnumSet.h" #include "Corrade/Containers/Pointer.h" #include "Corrade/PluginManager/PluginManager.h" diff --git a/src/Corrade/PluginManager/AbstractPlugin.h b/src/Corrade/PluginManager/AbstractPlugin.h index b22deee..4f5738f 100644 --- a/src/Corrade/PluginManager/AbstractPlugin.h +++ b/src/Corrade/PluginManager/AbstractPlugin.h @@ -29,6 +29,10 @@ * @brief Class @ref Corrade::PluginManager::AbstractPlugin */ +#include +#include +#include + #include "Corrade/Containers/Pointer.h" #include "Corrade/PluginManager/PluginManager.h" #include "Corrade/PluginManager/visibility.h" diff --git a/src/Corrade/Utility/Arguments.h b/src/Corrade/Utility/Arguments.h index 84d856d..ea801be 100644 --- a/src/Corrade/Utility/Arguments.h +++ b/src/Corrade/Utility/Arguments.h @@ -31,6 +31,7 @@ #include #include +#include #include "Corrade/Containers/Array.h" #include "Corrade/Utility/ConfigurationValue.h" diff --git a/src/Corrade/Utility/Directory.h b/src/Corrade/Utility/Directory.h index 21c1e1a..8d9bde6 100644 --- a/src/Corrade/Utility/Directory.h +++ b/src/Corrade/Utility/Directory.h @@ -30,6 +30,9 @@ */ #include +#include +#include +#include #include "Corrade/Containers/Containers.h" #include "Corrade/Containers/EnumSet.h" diff --git a/src/Corrade/Utility/Resource.h b/src/Corrade/Utility/Resource.h index e08c03d..6ce48b0 100644 --- a/src/Corrade/Utility/Resource.h +++ b/src/Corrade/Utility/Resource.h @@ -30,6 +30,8 @@ */ #include +#include +#include #include "Corrade/Containers/ArrayView.h" #include "Corrade/Utility/StlForwardString.h" ================================================ FILE: ports/corrade/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/corrade REF v2020.06 SHA512 94cc8959b0ee43ecd8d13a25307e7829d53dc6601628d97c32288d1704e2c0835b755bffc06b2105e6aa5a612f119a60e83cb475860b51e6a35999215c100227 HEAD_REF master PATCHES fix-vs2019.patch build-corrade-rc-always.patch clang-16.patch missing-headers.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Handle features set(_COMPONENTS "") foreach(_feature IN LISTS ALL_FEATURES) # Uppercase the feature name and replace "-" with "_" string(TOUPPER "${_feature}" _FEATURE) string(REPLACE "-" "_" _FEATURE "${_FEATURE}") # Final feature is empty, ignore it if(_feature AND NOT "${_feature}" STREQUAL "dynamic-pluginmanager") list(APPEND _COMPONENTS ${_feature} WITH_${_FEATURE}) endif() endforeach() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ${_COMPONENTS}) set(corrade_rc_param "") if(VCPKG_CROSSCOMPILING) set(corrade_rc_param "-DCORRADE_RC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/corrade/corrade-rc${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "${corrade_rc_param}" -DUTILITY_USE_ANSI_COLORS=ON -DBUILD_STATIC=${BUILD_STATIC} MAYBE_UNUSED_VARIABLES CORRADE_RC_EXECUTABLE UTILITY_USE_ANSI_COLORS ) vcpkg_cmake_install() # Debug includes and share are the same as release file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # corrade-rc is not built when CMAKE_CROSSCOMPILING vcpkg_copy_tools(TOOL_NAMES "corrade-rc" AUTO_CLEAN) # Ensure no empty folders are left behind if(FEATURES STREQUAL "core") # No features, no libs (only Corrade.h). file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") # debug is completely empty, as include and share # have already been removed. elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # No dlls file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/corrade/vcpkg.json ================================================ { "name": "corrade", "version-string": "2020.06", "port-version": 9, "description": "C++11/C++14 multiplatform utility library.", "homepage": "https://magnum.graphics/corrade/", "dependencies": [ { "name": "corrade", "host": true, "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "interconnect", "pluginmanager", "testsuite", "utility" ], "features": { "dynamic-pluginmanager": { "description": "PluginManager library with dynamic plugin support", "supports": "!ios & !uwp & !android", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "pluginmanager" ] } ] }, "interconnect": { "description": "Interconnect library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "utility" ] } ] }, "pluginmanager": { "description": "PluginManager library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ { "name": "dynamic-pluginmanager", "platform": "!ios & !uwp & !android" }, "utility" ] } ] }, "testsuite": { "description": "TestSuite library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "utility" ] } ] }, "utility": { "description": "Utility library" } } } ================================================ FILE: ports/correlation-vector-cpp/correlation-vector.patch ================================================ diff --git a/CorrelationVector/CMakeLists.txt b/CorrelationVector/CMakeLists.txt index 2b32f8b..2c3a0ec 100644 --- a/CorrelationVector/CMakeLists.txt +++ b/CorrelationVector/CMakeLists.txt @@ -9,7 +9,7 @@ include (CVOptions) include (CVHelpers) add_global_definitions () -set_global_compile_flags () +#set_global_compile_flags () set(CORRELATION_VECTOR_VERSION_MAJOR 1) set(CORRELATION_VECTOR_VERSION_MINOR 0) diff --git a/CorrelationVector/cmake/correlation_vector-config.in.cmake b/CorrelationVector/cmake/correlation_vector-config.in.cmake index 6b389d5..9c4fb5a 100644 --- a/CorrelationVector/cmake/correlation_vector-config.in.cmake +++ b/CorrelationVector/cmake/correlation_vector-config.in.cmake @@ -1 +1,7 @@ +# Optional dependency for Linux +if(UNIX) + include(CMakeFindDependencyMacro) + find_dependency(unofficial-libuuid) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/correlation_vector-targets.cmake") \ No newline at end of file diff --git a/CorrelationVector/src/CMakeLists.txt b/CorrelationVector/src/CMakeLists.txt index 00baa66..08f3fc9 100644 --- a/CorrelationVector/src/CMakeLists.txt +++ b/CorrelationVector/src/CMakeLists.txt @@ -15,16 +15,9 @@ else() if (WIN32) target_compile_definitions(${TARGETNAME} PUBLIC GUID_WINDOWS) elseif (UNIX) - # apt-get install pkg-config uuid-dev - find_package(PkgConfig REQUIRED) - # TODO: move to FindUUID module - pkg_check_modules(UUID uuid) - if (UUID_FOUND) - message("Found and using uuid.") - target_include_directories(${TARGETNAME} PUBLIC ${UUID_INCLUDE_DIRS}) - target_link_libraries(${TARGETNAME} PRIVATE ${UUID_LIBRARIES}) - target_compile_definitions(${TARGETNAME} PUBLIC GUID_LIBUUID) - endif() + find_package(unofficial-libuuid REQUIRED) + target_compile_definitions(${TARGETNAME} PUBLIC GUID_LIBUUID) + target_link_libraries(${TARGETNAME} PRIVATE unofficial::UUID::uuid) endif() endif() ================================================ FILE: ports/correlation-vector-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/CorrelationVector-Cpp REF cf38d2b44baaf352509ad9980786bc49554c32e4 SHA512 f97eaef649ffd010fb79bca0ae6cb7ce6792dcb38f6a5180d04dc6542589d0d727583455bbafb319982cfed1291384180d49c7f32ebe7560b444ec132c76d0c4 HEAD_REF master PATCHES "correlation-vector.patch" ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME correlation_vector CONFIG_PATH lib/correlation_vector) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/correlation-vector-cpp/usage ================================================ The package CorrelationVector-Cpp provides CMake targets: find_package(correlation_vector CONFIG REQUIRED) target_link_libraries(main PRIVATE microsoft::correlation_vector) ================================================ FILE: ports/correlation-vector-cpp/vcpkg.json ================================================ { "name": "correlation-vector-cpp", "version": "1.0", "description": "CorrelationVector-Cpp provides a reference C++ implementation of the CorrelationVector protocol for tracing and correlation of events through a distributed system.", "homepage": "https://github.com/microsoft/CorrelationVector-Cpp", "license": "MIT", "dependencies": [ { "name": "libuuid", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-async/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/cpp-async REF "v${VERSION}" SHA512 3ee150d37b8d5f9f4153407a796ec23b10d567bc316253091cf1f052ad96a1097e730496db49ec1333d3a824856a5d242500dfe6b8bba4a1e0ac942168548df9 HEAD_REF main ) file(COPY "${SOURCE_PATH}/include/async" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cpp-async/usage ================================================ cpp-async is header-only and can be used from CMake via: find_path(CPP_ASYNC_INCLUDE_DIRS "async/task.h") target_include_directories(main PRIVATE ${CPP_ASYNC_INCLUDE_DIRS}) ================================================ FILE: ports/cpp-async/vcpkg.json ================================================ { "name": "cpp-async", "version": "1.2.0", "description": "Support types and functions for C++20 coroutines", "homepage": "https://github.com/microsoft/cpp-async", "license": "MIT" } ================================================ FILE: ports/cpp-base64/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ReneNyffenegger/cpp-base64 REF V2.rc.08 # V2.rc.08 SHA512 8d115c3341bee31c3d83f5ad07d457a507f42d58bb5db8d9ead213494f7f25065eeeac06226f9cc34235c0360eb893e7bc66a95aa3bfbc9ea0d179f5a0b7af0a HEAD_REF master ) file(COPY ${SOURCE_PATH}/base64.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(COPY ${SOURCE_PATH}/base64.cpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/cpp-base64/vcpkg.json ================================================ { "name": "cpp-base64", "version-string": "V2.rc.08", "description": "Base64 encoding and decoding with c++.", "homepage": "https://github.com/ReneNyffenegger/cpp-base64/" } ================================================ FILE: ports/cpp-channel/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andreiavrammsd/cpp-channel REF "v${VERSION}" SHA512 143f6872dc0388e18605374a4daa9857abe27a68904aef6661b2d0dbb25f59f4e3f139ae537b041b8990b225b6ef7a9f72e645d28a4926c9b015d03ea4395c66 HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPP_CHANNEL_BUILD_TESTS=OFF -DCPP_CHANNEL_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpp-channel/vcpkg.json ================================================ { "name": "cpp-channel", "version": "1.3.1", "description": "C++11 thread-safe container for sharing data between threads (synchronized queue)", "homepage": "https://github.com/andreiavrammsd/cpp-channel", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cpp-exiftool/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.21) project(cpp-exiftool LANGUAGES CXX) file(GLOB src_files "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") file(GLOB public_headers "${CMAKE_CURRENT_SOURCE_DIR}/inc/*.h") add_library(cpp-exiftool ${src_files}) target_include_directories(cpp-exiftool PUBLIC "$" "$") set_target_properties(cpp-exiftool PROPERTIES PUBLIC_HEADER "${public_headers}") install(TARGETS cpp-exiftool EXPORT cpp-exiftool-targets LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include/cpp-exiftool) install(EXPORT cpp-exiftool-targets FILE unofficial-cpp-exiftool-config.cmake DESTINATION share/unofficial-cpp-exiftool NAMESPACE unofficial::cpp-exiftool::) ================================================ FILE: ports/cpp-exiftool/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE URLS "https://exiftool.org/cpp_exiftool/cpp_exiftool.tar.gz" FILENAME "cpp_exiftool-${VERSION}.tar.gz" SHA512 d362e622deeb2a04aa6d694e0c8ffabf610af30cb30c29430811e77b0faa86177fe3409ec228ead9af998a99eb6d3ffa601652c6128a96f20eb60a03e0f64292 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-cpp-exiftool) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README") ================================================ FILE: ports/cpp-exiftool/vcpkg.json ================================================ { "name": "cpp-exiftool", "version": "1.8.0", "description": "The C++ interface for exiftool provides the source code for a set of objects that allow C++ applications to easily leverage the full power of the exiftool application through a simple interface. This interface handles all the hard work of launching, monitoring, controlling, and communicating with an external exiftool process.", "homepage": "https://exiftool.org/cpp_exiftool/", "license": null, "supports": "linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-httplib/fix-find-brotli.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b0f8f45..a5b6084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,10 +178,10 @@ endif() # This is so we can use our custom FindBrotli.cmake list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") if(HTTPLIB_REQUIRE_BROTLI) - find_package(Brotli COMPONENTS encoder decoder common REQUIRED) + find_package(unofficial-brotli CONFIG REQUIRED) set(HTTPLIB_IS_USING_BROTLI TRUE) elseif(HTTPLIB_USE_BROTLI_IF_AVAILABLE) - find_package(Brotli COMPONENTS encoder decoder common QUIET) + find_package(unofficial-brotli CONFIG QUIET) set(HTTPLIB_IS_USING_BROTLI ${Brotli_FOUND}) endif() @@ -282,9 +282,9 @@ target_link_libraries(${PROJECT_NAME} ${_INTERFACE_OR_PUBLIC} # Needed for non-blocking getaddrinfo on MacOS "$<$,$>:-framework CFNetwork -framework CoreFoundation>" # Can't put multiple targets in a single generator expression or it bugs out. - $<$:Brotli::common> - $<$:Brotli::encoder> - $<$:Brotli::decoder> + $<$:unofficial::brotli::brotlicommon> + $<$:unofficial::brotli::brotlienc> + $<$:unofficial::brotli::brotlidec> $<$:ZLIB::ZLIB> $<$:zstd::libzstd> $<$:OpenSSL::SSL> @@ -343,9 +343,6 @@ if(HTTPLIB_INSTALL) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - # Install it so it can be used later by the httplibConfig.cmake file. - # Put it in the same dir as our config file instead of a global path so we don't potentially stomp on other packages. - "${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindBrotli.cmake" DESTINATION ${_TARGET_INSTALL_CMAKEDIR} ) diff --git a/cmake/httplibConfig.cmake.in b/cmake/httplibConfig.cmake.in index 8ca8b99..9c61742 100644 --- a/cmake/httplibConfig.cmake.in +++ b/cmake/httplibConfig.cmake.in @@ -35,8 +35,8 @@ if(@HTTPLIB_IS_USING_BROTLI@) # Note that the FindBrotli.cmake file is installed in the same dir as this file. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") set(BROTLI_USE_STATIC_LIBS @BROTLI_USE_STATIC_LIBS@) - find_dependency(Brotli COMPONENTS common encoder decoder) - set(httplib_Brotli_FOUND ${Brotli_FOUND}) + find_dependency(unofficial-brotli COMPONENTS common encoder decoder) + set(httplib_Brotli_FOUND ${unofficial-brotli_FOUND}) endif() if(@HTTPLIB_IS_USING_ZSTD@) ================================================ FILE: ports/cpp-httplib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yhirose/cpp-httplib REF "v${VERSION}" SHA512 d8dfd5a447db4d6eb2a92c498af18cb3bf999ed43ef9a9552a8781f9c23597a3d178d2a15f5fa0afb68f2ec278080e6d4808cef5cfa68a8ed5f0c57b42bdbee7 HEAD_REF master PATCHES fix-find-brotli.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES brotli HTTPLIB_REQUIRE_BROTLI openssl HTTPLIB_REQUIRE_OPENSSL zlib HTTPLIB_REQUIRE_ZLIB zstd HTTPLIB_REQUIRE_ZSTD ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=OFF -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=OFF -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=OFF -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME httplib CONFIG_PATH lib/cmake/httplib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cpp-httplib/usage ================================================ cpp-httplib provides CMake targets: find_package(httplib CONFIG REQUIRED) target_link_libraries(main PRIVATE httplib::httplib) ================================================ FILE: ports/cpp-httplib/vcpkg.json ================================================ { "name": "cpp-httplib", "version": "0.38.0", "description": "A single file C++11 header-only HTTP/HTTPS server and client library", "homepage": "https://github.com/yhirose/cpp-httplib", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "brotli" ], "features": { "brotli": { "description": "Enables brotli compression support using brotli", "dependencies": [ "brotli" ] }, "openssl": { "description": "Enables HTTPS support using OpenSSL", "dependencies": [ "openssl" ] }, "zlib": { "description": "Enables gzip compression support using zlib", "dependencies": [ "zlib" ] }, "zstd": { "description": "Enables zstd support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/cpp-ipc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mutouyun/cpp-ipc REF v${VERSION} SHA512 114534b28654b9085b3d757fbb1d03aec6f6eb6b34312168f5e72f03e75f57299714dba20f345be5ecc940b38eb7d956a42a41ae82f12d722a27075ac27e31d9 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBIPC_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" LIBIPC_USE_STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBIPC_BUILD_SHARED_LIBS:BOOL=${LIBIPC_BUILD_SHARED_LIBS} -DLIBIPC_USE_STATIC_CRT:BOOL=${LIBIPC_USE_STATIC_CRT} -DLIBIPC_BUILD_TESTS:BOOL=OFF -DLIBIPC_BUILD_DEMOS:BOOL=OFF ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/cpp-ipc") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cpp-ipc) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/share/cpp-ipc") vcpkg_cmake_config_fixup(CONFIG_PATH share/cpp-ipc) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libipc/export.h" "#elif defined(LIBIPC_LIBRARY_SHARED_USING__)" "#elif 1") endif() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/cpp-ipc/vcpkg.json ================================================ { "name": "cpp-ipc", "version": "1.4.1", "description": "C++ IPC Library: A high-performance inter-process communication using shared memory on Linux/Windows.", "homepage": "https://github.com/mutouyun/cpp-ipc", "supports": "!osx & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-jwt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arun11299/cpp-jwt REF v${VERSION} SHA512 765579abef09774e396bdf539e1585d383aabe50b76c7d7643ede85187a665a3420db2ad90fee1ca2a9003965b777816b8594dc10b08772db58c8068cbe64a09 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPP_JWT_BUILD_EXAMPLES=off -DCPP_JWT_BUILD_TESTS=off -DCPP_JWT_USE_VENDORED_NLOHMANN_JSON=off ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpp-jwt/vcpkg.json ================================================ { "name": "cpp-jwt", "version": "1.5.1", "description": "JSON Web Token library for C++", "homepage": "https://github.com/arun11299/cpp-jwt", "license": "MIT", "dependencies": [ "nlohmann-json", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-kana/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfgitpr/cpp-kana REF "${VERSION}" SHA512 7fab4134c2caca4229fc6b459df10c92ad4385e3e724d9dc0cd3346d15b9862df3ebe99b0a345b9f468866d03b2d0c0c8f0f3e126e797a5e61e3179c317ba3d5 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CPP_KANA_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPP_KANA_BUILD_STATIC=${CPP_KANA_BUILD_STATIC} -DCPP_KANA_BUILD_TESTS=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/cpp-kana/usage ================================================ cpp-kana provides CMake targets: find_package(cpp-kana CONFIG REQUIRED) target_link_libraries(main PRIVATE cpp-kana::cpp-kana) ================================================ FILE: ports/cpp-kana/vcpkg.json ================================================ { "name": "cpp-kana", "version": "1.0.2", "description": "A lightweight library for converting Japanese kana to romaji and vice versa.", "homepage": "https://github.com/wolfgitpr/cpp-kana", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-lazy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Kaaserne/cpp-lazy REF "v${VERSION}" SHA512 d5ad743805df55178b3758e9ad9e5cdc001821d3bb2bb284fa0c5709780edb1896d4695582ce26849eecec287b9bd41b646e7f9d166b897bab82a93fe37ed37b HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPP_LAZY_INSTALL=ON -DCPP_LAZY_USE_INSTALLED_FMT=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cpp-lazy) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/cpp-lazy/vcpkg.json ================================================ { "name": "cpp-lazy", "version": "9.0.1", "description": "C++11 (and onwards) library for lazy evaluation ", "homepage": "https://github.com/Kaaserne/cpp-lazy", "license": "MIT", "dependencies": [ "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-peglib/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yhirose/cpp-peglib REF "v${VERSION}" SHA512 8a9c6add9c65bbbcdd55d2a32c88afb2cb88588839addc7cd42abd352f6c0ef7721d8b86202642d3ad98640a9a5bccf46500eafa105e3e0f44a45174ce7bb1ee HEAD_REF master ) file(COPY "${SOURCE_PATH}/peglib.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/cpp-peglib" RENAME copyright) ================================================ FILE: ports/cpp-peglib/vcpkg.json ================================================ { "name": "cpp-peglib", "version": "1.10.0", "description": "A single file C++ header-only PEG (Parsing Expression Grammars) library", "homepage": "https://github.com/yhirose/cpp-peglib", "license": "MIT" } ================================================ FILE: ports/cpp-pinyin/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfgitpr/cpp-pinyin REF "${VERSION}" SHA512 5ad5425f5c804607c90c801fac722971a6ddac39914807b9a0885dfcdcc0c2afc577893956164af4c2e1d8f87a3a63be884215d84be37e861abc25b98ab565ec HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CPP_PINYIN_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPP_PINYIN_BUILD_STATIC=${CPP_PINYIN_BUILD_STATIC} -DCPP_PINYIN_BUILD_TESTS=FALSE -DCPP_PINYIN_VCPKG_DICT_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/cpp-pinyin/usage ================================================ cpp-pinyin provides CMake targets: find_package(cpp-pinyin CONFIG REQUIRED) target_link_libraries(main PRIVATE cpp-pinyin::cpp-pinyin) To use the library, you need to copy the dictionary files to the binary directory. add_custom_command(TARGET main POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy_directory "${cpp-pinyin_DIR}/dict" "$/dict" ) ================================================ FILE: ports/cpp-pinyin/vcpkg.json ================================================ { "name": "cpp-pinyin", "version": "1.0.2", "description": "A lightweight Chinese/Cantonese to Pinyin library.", "homepage": "https://github.com/wolfgitpr/cpp-pinyin", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-redis/fix-sleep_for.patch ================================================ diff --git a/sources/core/client.cpp b/sources/core/client.cpp index 7ea20e2..c5d2c40 100644 --- a/sources/core/client.cpp +++ b/sources/core/client.cpp @@ -23,6 +23,7 @@ #include #include #include +#include namespace cpp_redis { ================================================ FILE: ports/cpp-redis/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpp-redis/cpp_redis REF 4.3.1 SHA512 abf372542c53f37f504b3211b840b100d07a8f4b2e7f5584cc7550ab16ed617838e2df79064374c7a409458d8567f4834686318ea3a40249c767e36c744c7a47 HEAD_REF master PATCHES "fix-sleep_for.patch" ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/tacopie/CMakeLists.txt DESTINATION ${SOURCE_PATH}/tacopie) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(MSVC_RUNTIME_LIBRARY_CONFIG "/MD") else() set(MSVC_RUNTIME_LIBRARY_CONFIG "/MT") endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME) # cpp-redis forcibly removes "/RTC1" in its cmake file. Because this is an ABI-sensitive flag, we need to re-add it in a form that won't be detected. set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -RTC1") set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG} -RTC1") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DMSVC_RUNTIME_LIBRARY_CONFIG=${MSVC_RUNTIME_LIBRARY_CONFIG} ) vcpkg_cmake_install() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(GLOB_RECURSE FILES "${CURRENT_PACKAGES_DIR}/include/*") foreach(file ${FILES}) file(READ ${file} _contents) string(REPLACE "ifndef __CPP_REDIS_USE_CUSTOM_TCP_CLIENT" "if 1" _contents "${_contents}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(REPLACE "extern std::unique_ptr active_logger;" "extern __declspec(dllimport) std::unique_ptr active_logger;" _contents "${_contents}") endif() file(WRITE ${file} "${_contents}") endforeach() file(GLOB FILES_TO_REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/cpp_redis.ilk" "${CURRENT_PACKAGES_DIR}/bin/cpp_redis.dll.manifest") if(FILES_TO_REMOVE) file(REMOVE_RECURSE ${FILES_TO_REMOVE}) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cpp-redis/tacopie/CMakeLists.txt ================================================ find_library(TACOPIE tacopie) find_path(TACOPIE_H tacopie/tacopie) message(STATUS "TACOPIE_H: ${TACOPIE_H}") add_library(tacopie INTERFACE) target_link_libraries(tacopie INTERFACE "${TACOPIE}") target_include_directories(tacopie INTERFACE "${TACOPIE_H}") ================================================ FILE: ports/cpp-redis/vcpkg.json ================================================ { "name": "cpp-redis", "version": "4.3.1", "port-version": 5, "description": "cpp-redis is a C++11 Asynchronous Multi-Platform Lightweight Redis Client, with support for synchronous operations and pipelining.", "homepage": "https://github.com/cpp-redis/cpp_redis", "license": "MIT", "dependencies": [ "tacopie", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-smtpclient-library/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jeremydumais/CPP-SMTPClient-library REF "v${VERSION}" SHA512 1f1b28519e9cc4c37746dcb083ac00180ef249cffd60feb8f13365c9655b2c66f4c05c46e5fd7953254a20d4708eb1e80ea883a205411554ae23f5709935f901 HEAD_REF master ) # Configure with explicit install dirs to avoid absolute /smtpclient vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_INCLUDEDIR=include # must be initialized -DBUILD_TESTING=OFF # avoid gtest download/build in vcpkg ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "smtpclient" CONFIG_PATH "lib/cmake/smtpclient") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/smtpclient/cpp/example") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpp-smtpclient-library/usage ================================================ cpp-smtpclient-library provides CMake targets: find_package(smtpclient CONFIG REQUIRED) target_link_libraries(main PRIVATE smtpclient::smtpclient) ================================================ FILE: ports/cpp-smtpclient-library/vcpkg.json ================================================ { "name": "cpp-smtpclient-library", "version": "1.1.13", "description": "An SMTP client library built in C++ that support authentication and secure connections", "homepage": "https://github.com/jeremydumais/CPP-SMTPClient-library", "license": "MIT AND Zlib", "supports": "!uwp", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-sort/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Morwenn/cpp-sort REF "v${VERSION}" SHA512 4567092dd03f37d61cc5b315954de8c867b74d5831d1843814514f8c6cccdb134646a0287bb85e7dd7b60410971f9587e48af2b6e4fb67b555732ba91103ec10 HEAD_REF 1.x.y-develop ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPPSORT_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/cpp-sort") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/cpp-sort/vcpkg.json ================================================ { "name": "cpp-sort", "version": "2.1.0", "description": "Sorting algorithms & related tools for C++14", "homepage": "https://github.com/Morwenn/cpp-sort/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpp-timsort/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO timsort/cpp-TimSort REF "v${VERSION}" SHA512 79a7640d9aef8c5347d4916efaf9dd70ceb4b72417b29a313a567a8d86786886dc44c79eff8f47092cd7c782c54ea82d2d33237360e3049aa2d4781441c31dbe HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gfx PACKAGE_NAME gfx-timsort) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpp-timsort/vcpkg.json ================================================ { "name": "cpp-timsort", "version": "3.0.1", "description": "A C++ implementation of timsort", "homepage": "https://github.com/timsort/cpp-TimSort", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppad/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/CppAD REF "${VERSION}" SHA512 f2dffaeaaf46dcd051a3354478c7ba61ed6a3538cdcc39c066fd9eb22ef58f0cde30079595e9db273d6484a31c8f73c84061ac7f5a5028f920ec74ef26c8e7c1 HEAD_REF master ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" cppad_static_lib) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -Dcppad_static_lib=${cppad_static_lib} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/pkgconfig" # redundant # Remove empty dirs "${CURRENT_PACKAGES_DIR}/include/cppad/local/sweep/template" "${CURRENT_PACKAGES_DIR}/include/cppad/local/var_op/template" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/cppad/vcpkg.json ================================================ { "name": "cppad", "version": "20250000.3", "port-version": 2, "description": "CppAD: A Package for Differentiation of C++ Algorithms", "homepage": "https://github.com/coin-or/CppAD", "license": "EPL-2.0 OR GPL-2.0-or-later", "dependencies": [ "boost-thread", "eigen3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cppadcodegen/change_main_cmake.diff ================================================ Index: CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>GBK =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision 656d23e3c06e0e3d573f02336eb457e1f30896f2) +++ b/CMakeLists.txt (date 1766635625297) @@ -167,16 +167,16 @@ # Currently building tests as normal executables # ---------------------------------------------------------------------------- ADD_SUBDIRECTORY(include) -ADD_SUBDIRECTORY(example EXCLUDE_FROM_ALL) +#ADD_SUBDIRECTORY(example EXCLUDE_FROM_ALL) #ADD_SUBDIRECTORY(introduction EXCLUDE_FROM_ALL) -ADD_SUBDIRECTORY(speed EXCLUDE_FROM_ALL) -ADD_SUBDIRECTORY(python) +#ADD_SUBDIRECTORY(speed EXCLUDE_FROM_ALL) +#ADD_SUBDIRECTORY(python) ADD_SUBDIRECTORY(pkgconfig) -ADD_SUBDIRECTORY(doc) +#ADD_SUBDIRECTORY(doc) # enable testing must be called here in order for the target test to be created ENABLE_TESTING() -ADD_SUBDIRECTORY(test EXCLUDE_FROM_ALL) +#ADD_SUBDIRECTORY(test EXCLUDE_FROM_ALL) # ============================================================================= # uninstall procedure ================================================ FILE: ports/cppadcodegen/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO joaoleal/CppADCodeGen REF "v${VERSION}" SHA512 e197b9a9cb5e091dceead33e3d82a77f8b2a80e5e37d99b23d67ded19f6a7fb0b5b99e4322b9cb053b98d0e730cdab547a73b3073d921109acf83d7aade2e3fa HEAD_REF master PATCHES change_main_cmake.diff undef_CONST.diff ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/epl-v10.txt" "${SOURCE_PATH}/gpl3.txt") ================================================ FILE: ports/cppadcodegen/undef_CONST.diff ================================================ Index: include/cppad/cg/cppadcg.hpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>GBK =================================================================== diff --git a/include/cppad/cg/cppadcg.hpp b/include/cppad/cg/cppadcg.hpp --- a/include/cppad/cg/cppadcg.hpp (revision 656d23e3c06e0e3d573f02336eb457e1f30896f2) +++ b/include/cppad/cg/cppadcg.hpp (date 1766646866207) @@ -239,6 +239,9 @@ #include #include #include +#ifdef CONST +#undef CONST +#endif #include #include #include ================================================ FILE: ports/cppadcodegen/vcpkg.json ================================================ { "name": "cppadcodegen", "version": "2.5.0", "description": "Source code generation for automatic differentiation using operator overloading (extension of CppAD)", "homepage": "https://github.com/joaoleal/CppADCodeGen", "license": "EPL-1.0 OR GPL-3.0-only", "dependencies": [ "cppad", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppcms/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a9c601b..aa35908 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,8 +246,8 @@ check_cxx_source_compiles( CPPCMS_HAVE_FSEEKI64 ) if(NOT DISABLE_GZIP) - find_library(ZLIB NAMES z zdll zlib${ZLIB_SUFFIX} zlib) - find_path(ZLIB_INCLUDE_DIR zlib.h) + find_package(ZLIB REQUIRED) + set(ZLIB "${ZLIB_LIBRARIES}") if(NOT ZLIB OR NOT ZLIB_INCLUDE_DIR) set(DISABLE_GZIP ON) message("Can't fild zlib - disabling compression support") @@ -403,8 +403,8 @@ if(NOT DISABLE_GCRYPT) endif() if(NOT DISABLE_OPENSSL) - find_path(OPENSSL_INCLUDE_DIR openssl/aes.h) - find_library(LIB_OPENSSL NAMES crypto libcrypto libeay32) + find_package(OpenSSL REQUIRED) + set(LIB_OPENSSL "${OPENSSL_CRYPTO_LIBRARIES}") endif() if (OPENSSL_INCLUDE_DIR AND LIB_OPENSSL) diff --git a/booster/CMakeLists.txt b/booster/CMakeLists.txt index 0687d1d..aeaaaa8 100644 --- a/booster/CMakeLists.txt +++ b/booster/CMakeLists.txt @@ -124,6 +124,10 @@ endif() if(NOT DISABLE_ICU_LOCALE) message("-- Looking for ICU libraries") + find_package(ICU REQUIRED COMPONENTS i18n uc data) + include_directories(${ICU_INCLUDE_DIRS}) + set(ICU_I18N "${ICU_LIBRARIES}") +elseif(0) if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") if(MSVC) ================================================ FILE: ports/cppcms/dllexport.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c91ec97..11d475b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -692,7 +692,7 @@ target_link_libraries(hello_world ${CPPCMS_LIB}) if(NOT DISABLE_TCPCACHE) add_executable(cppcms_scale src/cache_server_main.cpp) target_link_libraries(cppcms_scale ${CPPCMS_LIB}) - if(WIN32 OR CYGWIN) + if(NOT DISABLE_SHARED) set_target_properties(cppcms_scale PROPERTIES COMPILE_DEFINITIONS DLL_EXPORT) endif() endif() ================================================ FILE: ports/cppcms/fix_narrowing_error.patch ================================================ diff --git a/src/session_win32_file_storage.cpp b/src/session_win32_file_storage.cpp index ce3fba330..a5e54be84 100644 --- a/src/session_win32_file_storage.cpp +++ b/src/session_win32_file_storage.cpp @@ -186,7 +186,7 @@ void session_file_storage::save_to_file(HANDLE h,time_t timeout,std::string cons int64_t timeout; uint32_t crc; uint32_t size; - } tmp = { timeout, 0, in.size() }; + } tmp = { timeout, 0, static_cast(in.size()) }; impl::crc32_calc crc_calc; crc_calc.process_bytes(in.data(),in.size()); tmp.crc=crc_calc.checksum(); ================================================ FILE: ports/cppcms/no-tests-and-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d2b91f5..c91ec97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -647,7 +647,7 @@ add_custom_command( -if(NOT DISABLE_SHARED) +if(installing-plugins) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/skin3.cpp COMMAND ${PYTHON} ${CMAKE_CURRENT_SOURCE_DIR}/bin/cppcms_tmpl_cc @@ -779,6 +779,7 @@ endif() ##################################### # End of tests ##################################### +set_target_properties(${ALL_TESTS} hello_world PROPERTIES EXCLUDE_FROM_ALL 1) # These are use export if(IS_WINDOWS AND NOT DISABLE_SHARED) diff --git a/booster/CMakeLists.txt b/booster/CMakeLists.txt index 822c470..0a95248 100644 --- a/booster/CMakeLists.txt +++ b/booster/CMakeLists.txt @@ -674,6 +674,7 @@ macro(add_booster_param_test MODULE TEST PARAMETER) add_executable(${TEST_NAME} ${TEST_SRC}) target_link_libraries(${TEST_NAME} ${BOOSTER_LIB}) set_target_properties(${TEST_NAME} PROPERTIES COMPILE_DEFINITIONS "${EXE_COM_DEFS}") + set_target_properties(${TEST_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) add_test(${TEST_NAME} ${TEST_NAME} ${PARAMETER}) set_tests_properties(${TEST_NAME} PROPERTIES TIMEOUT 20) endmacro() ================================================ FILE: ports/cppcms/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO artyom-beilis/cppcms REF v${VERSION} SHA512 b91da68b3e277cf3814f6772a2580db95d55a9022b165b44f9d2fde0bc13779e9198b45e1ebdbd10189cb192109a61777888ce0670644da1e64a0e1008a827a7 PATCHES dependencies.diff dllexport.diff no-tests-and-examples.patch fix_narrowing_error.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DISABLE_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DISABLE_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 -DPYTHON=: -DUSE_WINDOWS6_API=ON -DDISABLE_SHARED=${DISABLE_SHARED} -DDISABLE_STATIC=${DISABLE_STATIC} -DDISABLE_GCRYPT=ON -DDISABLE_ICONV=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script IN ITEMS cppcms_tmpl_cc cppcms_run) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endforeach() vcpkg_copy_tools(TOOL_NAMES cppcms_scale cppcms_make_key cppcms_config_find_param AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/MIT.TXT" "${SOURCE_PATH}/THIRD_PARTY_SOFTWARE.TXT") ================================================ FILE: ports/cppcms/vcpkg.json ================================================ { "name": "cppcms", "version": "2.0.1", "description": "CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development", "homepage": "https://github.com/artyom-beilis/cppcms", "license": null, "supports": "!uwp", "dependencies": [ "icu", "openssl", "pcre", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/cppcodec/0001-Fix-62.patch ================================================ From 9f67d7026d3dee8fc6a0af614d97f9365cee2872 Mon Sep 17 00:00:00 2001 From: Gabriele_Frau Date: Wed, 17 Oct 2018 14:35:54 +0200 Subject: [PATCH] Fix #62 includes macro definitions named max and min, wrap the call to max and min with parentheses, which prevent the macro expansion --- cppcodec/detail/stream_codec.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cppcodec/detail/stream_codec.hpp b/cppcodec/detail/stream_codec.hpp index d4204bc..4d8d054 100644 --- a/cppcodec/detail/stream_codec.hpp +++ b/cppcodec/detail/stream_codec.hpp @@ -187,8 +187,8 @@ template static CPPCODEC_ALWAYS_INLINE constexpr size_t num_possible_values() { return static_cast( - static_cast(std::numeric_limits::max()) - - static_cast(std::numeric_limits::min()) + 1); + static_cast((std::numeric_limits::max)()) + - static_cast((std::numeric_limits::min)()) + 1); } template -- 2.32.0.windows.1 ================================================ FILE: ports/cppcodec/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tplgy/cppcodec REF v0.2 SHA512 50c9c81cdb12560c87e513e1fd22c1ad24ea37b7d20a0e3044d43fb887f4c6494c69468e4d0811cd2fc1ae8fdb01b01cfb9f3cfdd8611d4bb0221cbd38cbead3 HEAD_REF master PATCHES 0001-Fix-62.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cppcodec/vcpkg.json ================================================ { "name": "cppcodec", "version": "0.2", "port-version": 4, "description": "Header-only C++11 library to encode/decode base64, base64url, base32, base32hex and hex (a.k.a. base16) as specified in RFC 4648, plus Crockford's base32.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppcoro/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(cppcoro VERSION 2020.2 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) add_library(cppcoro lib/async_mutex.cpp lib/lightweight_manual_reset_event.cpp lib/async_auto_reset_event.cpp lib/async_manual_reset_event.cpp lib/auto_reset_event.cpp lib/auto_reset_event.hpp lib/cancellation_registration.cpp lib/cancellation_source.cpp lib/cancellation_state.cpp lib/cancellation_state.hpp lib/cancellation_token.cpp lib/spin_mutex.cpp lib/spin_mutex.hpp lib/spin_wait.cpp lib/spin_wait.hpp lib/static_thread_pool.cpp lib/ip_address.cpp lib/ip_endpoint.cpp lib/ipv4_address.cpp lib/ipv4_endpoint.cpp lib/ipv6_address.cpp lib/ipv6_endpoint.cpp ) if(APPLE) message(STATUS "using sysroot: ${CMAKE_OSX_SYSROOT}") elseif(WIN32) message(STATUS "using platform: ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}") # for now, build in single target target_sources(cppcoro PRIVATE lib/win32.cpp lib/file.cpp lib/file_read_operation.cpp lib/file_write_operation.cpp lib/read_only_file.cpp lib/read_write_file.cpp lib/readable_file.cpp lib/writable_file.cpp lib/write_only_file.cpp lib/socket.cpp lib/socket_accept_operation.cpp lib/socket_connect_operation.cpp lib/socket_send_operation.cpp lib/socket_send_to_operation.cpp lib/socket_disconnect_operation.cpp lib/socket_helpers.cpp lib/socket_helpers.hpp lib/socket_recv_from_operation.cpp lib/socket_recv_operation.cpp lib/io_service.cpp ) elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") message(STATUS "using system: ${CMAKE_HOST_SYSTEM_VERSION}") endif() target_include_directories(cppcoro PUBLIC $ $ ) if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") if(WIN32) message(FATAL_ERROR " doesn't support clang-cl compiler") else() target_compile_options(cppcoro PUBLIC -std=c++1z -fcoroutines-ts -stdlib=libc++ ) target_link_libraries(cppcoro PUBLIC c++ pthread ) endif() elseif(MSVC) target_compile_options(cppcoro PUBLIC /await PRIVATE "/analyze:max_paths 512" -D_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING=1 ) if(CMAKE_GENERATOR_PLATFORM STREQUAL x64) target_compile_options(cppcoro PUBLIC /await:heapelide ) endif() endif() if(WIN32) target_link_libraries(cppcoro PUBLIC kernel32 synchronization ws2_32 mswsock # msvcrt[d] msvcprt[d] vcruntime ucrt ) elseif(APPLE) elseif(CMAKE_SYSTEM_NAME MATCHES Linux) target_link_libraries(cppcoro PUBLIC c++ # stdc++ # expect libc++ instead of libstdc++ ) endif() install(DIRECTORY include/cppcoro DESTINATION include ) install(TARGETS cppcoro EXPORT ${PROJECT_NAME}-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT ${PROJECT_NAME}-config DESTINATION share/${PROJECT_NAME} ) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH ${CMAKE_BINARY_DIR}/cmake/${PROJECT_NAME}-config-version.cmake) write_basic_package_version_file(${VERSION_FILE_PATH} VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${VERSION_FILE_PATH} DESTINATION share/${PROJECT_NAME} ) if(NOT BUILD_TESTING) return() endif() enable_testing() find_package(Threads REQUIRED) add_executable(cppcoro_test test/main.cpp test/counted.cpp test/generator_tests.cpp # test/recursive_generator_tests.cpp # clang crash test/async_generator_tests.cpp test/async_auto_reset_event_tests.cpp test/async_manual_reset_event_tests.cpp test/async_mutex_tests.cpp test/async_latch_tests.cpp test/cancellation_token_tests.cpp test/task_tests.cpp test/sequence_barrier_tests.cpp test/shared_task_tests.cpp test/sync_wait_tests.cpp test/single_consumer_async_auto_reset_event_tests.cpp test/single_producer_sequencer_tests.cpp test/multi_producer_sequencer_tests.cpp test/when_all_tests.cpp test/when_all_ready_tests.cpp test/ip_address_tests.cpp test/ip_endpoint_tests.cpp test/ipv4_address_tests.cpp test/ipv4_endpoint_tests.cpp test/ipv6_address_tests.cpp test/ipv6_endpoint_tests.cpp test/static_thread_pool_tests.cpp ) target_link_libraries(cppcoro_test PRIVATE cppcoro Threads::Threads ) find_package(doctest CONFIG REQUIRED) get_target_property(DOCTEST_INCLUDE_DIR doctest::doctest INTERFACE_INCLUDE_DIRECTORIES ) message(STATUS "using doctest: ${DOCTEST_INCLUDE_DIR}") target_link_libraries(cppcoro_test PRIVATE doctest::doctest ) if(WIN32) target_sources(cppcoro_test PRIVATE test/scheduling_operator_tests.cpp test/io_service_tests.cpp test/file_tests.cpp test/socket_tests.cpp ) endif() add_test(NAME test_all COMMAND cppcoro_test --duration=true ) ================================================ FILE: ports/cppcoro/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(VCPKG_TARGET_IS_LINUX) message("Warning: cppcoro requires libc++ and Clang on Linux. See https://github.com/microsoft/vcpkg/pull/10693#issuecomment-610394650.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lewissbaker/cppcoro REF 391215262bd40d68ac6534810164131f5f9eb148 #2022-10-25 SHA512 22372a0385d6628e81d44cb3096186f7f79f53dff7786815546bfe6d8e1f5af4eae769c6b23e7d18aa123105418780d022239ebd48d25237fe6face9b74e42e8 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=False ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/cppcoro/vcpkg.json ================================================ { "name": "cppcoro", "version-date": "2022-10-25", "description": "A library of C++ coroutine abstractions for the Coroutines TS", "homepage": "https://github.com/lewissbaker/cppcoro", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppdap/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/cppdap REF "dap-${VERSION}" SHA512 36f31cf7b90190820f5a5b7df679a3ca1a4f51b58a7a4c46f85c7b55b0ad9dbeba3436992b5eb8a3fd4499fc38bbf2b16f834f5f1989717f151abf13c262c747 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/cppdap") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cppdap/vcpkg.json ================================================ { "name": "cppdap", "version-semver": "1.58.0-a", "description": "A C++11 library (\"SDK\") implementation of the Debug Adapter Protocol, providing an API for implementing a DAP client or server.", "homepage": "https://github.com/google/cppdap", "license": "Apache-2.0", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppfs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cginternals/cppfs REF 156d72e2cf0a9b12bdce369fc5b5d98fb5dffe2d # v1.3.0 SHA512 da1e09f79d9e65e7676784f47196645aabe1e1284f0ea5e48e845a244f5d49f5ea4b032f9e2e38c8e6a29657ebe636c9b1c9a4601c4bbc7637e7f592c52a8961 HEAD_REF master PATCHES ssh-dependencies.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssh OPTION_BUILD_SSH_BACKEND ssh CMAKE_REQUIRE_FIND_PACKAGE_LibSSH2 ssh CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL ssh CMAKE_REQUIRE_FIND_PACKAGE_ZLIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_cppcheck=ON -DCMAKE_DISABLE_FIND_PACKAGE_clang_tidy=ON -DOPTION_BUILD_TESTS=OFF -DOPTION_FORCE_SYSTEM_DIR_INSTALL=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cppfs/cmake/cppfs") # Overwriting original config file(WRITE "${CURRENT_PACKAGES_DIR}/share/cppfs/cppfs-config.cmake" " if(NOT \"${BUILD_SHARED_LIBS}\" AND \"${OPTION_BUILD_SSH_BACKEND}\") include(CMakeFindDependencyMacro) find_dependency(Libssh2 CONFIG) find_dependency(OpenSSL) find_dependency(ZLIB) endif() include(\"\${CMAKE_CURRENT_LIST_DIR}/cppfs-export.cmake\") ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/cppfs" RENAME copyright) ================================================ FILE: ports/cppfs/ssh-dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ea9fd15..af63d1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.0 FATAL_ERROR) # Include cmake modules -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +# list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(GenerateExportHeader) diff --git a/source/cppfs/CMakeLists.txt b/source/cppfs/CMakeLists.txt index aa37eda..d29176a 100644 --- a/source/cppfs/CMakeLists.txt +++ b/source/cppfs/CMakeLists.txt @@ -4,9 +4,9 @@ # -find_package(LibSSH2) -find_package(LibCrypto) +find_package(LibSSH2 NAMES libssh2) find_package(ZLIB) find_package(OpenSSL) +set(LibCrypto_FOUND "${OpenSSL_FOUND}") if (LibSSH2_FOUND AND LibCrypto_FOUND AND ZLIB_FOUND AND OpenSSL_FOUND) set(SSH_DEPS_MET TRUE) @@ -207,10 +207,10 @@ target_link_libraries(${target} if (OPTION_BUILD_SSH_BACKEND) target_link_libraries(${target} PRIVATE - ${OPENSSL_LIBRARIES} - ${LIBSSH2_LIBRARY} - ${LIBCRYPTO_LIBRARY} - ${ZLIB_LIBRARY} + OpenSSL::SSL + libssh2::libssh2 + OpenSSL::Crypto + ZLIB::ZLIB ) if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows") ================================================ FILE: ports/cppfs/vcpkg.json ================================================ { "name": "cppfs", "version": "1.3.0", "port-version": 4, "description": "Cross-platform C++ file system library supporting multiple backends", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssh": { "description": "SSH backend for cppfs", "dependencies": [ "libssh2", "openssl", "zlib" ] } } } ================================================ FILE: ports/cppgraphqlgen/356.patch ================================================ From f6a0073a51324209035ab0632272c970cdfbfe5b Mon Sep 17 00:00:00 2001 From: Bruno S Marques Date: Wed, 11 Feb 2026 11:09:47 -0300 Subject: [PATCH] Fix operator overload attribute syntax in GraphQLParse.h to fix identifier '_graphql' preceded by whitespace in a literal operator declaration is deprecated [-Wdeprecated-literal-operator] 53 | [[nodiscard("unnecessary parse")]] GRAPHQLPEG_EXPORT peg::ast operator"" _graphql( | ~~~~~~~~~~~^~~~~~~~ | operator""_graphql --- include/graphqlservice/GraphQLParse.h | 2 +- src/SyntaxTree.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/graphqlservice/GraphQLParse.h b/include/graphqlservice/GraphQLParse.h index e983b224..627446dc 100644 --- a/include/graphqlservice/GraphQLParse.h +++ b/include/graphqlservice/GraphQLParse.h @@ -50,7 +50,7 @@ constexpr size_t c_defaultDepthLimit = 25; } // namespace peg -[[nodiscard("unnecessary parse")]] GRAPHQLPEG_EXPORT peg::ast operator"" _graphql( +[[nodiscard("unnecessary parse")]] GRAPHQLPEG_EXPORT peg::ast operator""_graphql( const char* text, size_t size); } // namespace graphql diff --git a/src/SyntaxTree.cpp b/src/SyntaxTree.cpp index 60743538..524067ec 100644 --- a/src/SyntaxTree.cpp +++ b/src/SyntaxTree.cpp @@ -1148,7 +1148,7 @@ ast parseFile(std::string_view filename, size_t depthLimit) } // namespace peg -peg::ast operator"" _graphql(const char* text, size_t size) +peg::ast operator""_graphql(const char* text, size_t size) { peg::ast result { std::make_shared( peg::ast_input { peg::ast_string_view { { text, size } } }), ================================================ FILE: ports/cppgraphqlgen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/cppgraphqlgen REF "v${VERSION}" SHA512 eb26e6b9b51eabeb84ab82035097579dcdc5f44cc1d50ae85303bbab8fcc2a3da0749cef4e15bf09adb62a4783446bb8b661666db52517b2e98543177f662eb5 HEAD_REF main PATCHES 356.patch # https://patch-diff.githubusercontent.com/raw/microsoft/cppgraphqlgen/pull/356.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES clientgen GRAPHQL_BUILD_CLIENTGEN rapidjson GRAPHQL_USE_RAPIDJSON schemagen GRAPHQL_BUILD_SCHEMAGEN ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DGRAPHQL_BUILD_TESTS=OFF -DGRAPHQL_UPDATE_VERSION=OFF -DGRAPHQL_UPDATE_SAMPLES=OFF -DGRAPHQL_INSTALL_CONFIGURATIONS=Release ${FEATURE_OPTIONS} OPTIONS_RELEASE -DGRAPHQL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share -DGRAPHQL_INSTALL_TOOLS_DIR=${CURRENT_PACKAGES_DIR}/tools OPTIONS_DEBUG -DGRAPHQL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share -DGRAPHQL_INSTALL_TOOLS_DIR=${CURRENT_PACKAGES_DIR}/debug/tools ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() set(tools "") if ("clientgen" IN_LIST FEATURES) list(APPEND tools clientgen) endif() if ("schemagen" IN_LIST FEATURES) list(APPEND tools schemagen) endif() list(LENGTH tools num_tools) if (num_tools GREATER 0) vcpkg_copy_tools( TOOL_NAMES ${tools} SEARCH_DIR ${CURRENT_PACKAGES_DIR}/tools/cppgraphqlgen) endif() vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/cppgraphqlgen/vcpkg.json ================================================ { "name": "cppgraphqlgen", "version": "4.5.9", "port-version": 1, "description": "C++ GraphQL schema service generator", "homepage": "https://github.com/microsoft/cppgraphqlgen", "license": "MIT", "dependencies": [ "pegtl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "rapidjson" ], "features": { "clientgen": { "description": "Build the clientgen CLI tool.", "dependencies": [ "boost-program-options" ] }, "rapidjson": { "description": "Build the graphqljson library with RapidJSON.", "dependencies": [ "rapidjson" ] }, "schemagen": { "description": "Build the schemagen CLI tool.", "dependencies": [ "boost-program-options" ] } } } ================================================ FILE: ports/cppitertools/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ryanhaining/cppitertools REF "v${VERSION}" SHA512 af7150487677ab29e77be86402997107ce897459b4e39992192a4c613e64b0d6603ac70456afee645694b262e1486e478a500d6ff854059c3015ba51bcf65263 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dcppitertools_INSTALL_CMAKE_DIR=share ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/share/cppitertools-config-version.cmake") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/cppitertools" RENAME copyright) ================================================ FILE: ports/cppitertools/vcpkg.json ================================================ { "name": "cppitertools", "version": "2.3", "description": "Range-based for loop add-ons inspired by the Python builtins and itertools library", "homepage": "https://github.com/ryanhaining/cppitertools", "license": "BSD-2-Clause", "dependencies": [ "boost-optional", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppkafka/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mfontanini/cppkafka REF "v${VERSION}" SHA512 dce4da452cb98d854714a0ab7ab5e85a078d5e1c023c05344ea1a63d08112c25d32a6209bc29cfbaefc2b26abfab02e72081baa68528a23ec610c208f4d34d9f HEAD_REF master ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(CPPKAFKA_BUILD_SHARED OFF) set(CPPKAFKA_RDKAFKA_STATIC_LIB ON) else() set(CPPKAFKA_BUILD_SHARED ON) set(CPPKAFKA_RDKAFKA_STATIC_LIB OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_CXX_STANDARD=11 -DCPPKAFKA_BUILD_SHARED=${CPPKAFKA_BUILD_SHARED} -DCPPKAFKA_DISABLE_TESTS=ON -DCPPKAFKA_DISABLE_EXAMPLES=ON -DCPPKAFKA_PKGCONFIG_DIR=lib/pkgconfig -DCPPKAFKA_RDKAFKA_STATIC_LIB=${CPPKAFKA_RDKAFKA_STATIC_LIB} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/CppKafka ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/cppkafka/vcpkg.json ================================================ { "name": "cppkafka", "version": "0.4.1", "description": "cppkafka allows C++ applications to consume and produce messages using the Apache Kafka protocol. The library is built on top of librdkafka, and provides a high level API that uses modern C++ features to make it easier to write code while keeping the wrapper's performance overhead to a minimum.", "homepage": "https://github.com/mfontanini/cppkafka", "license": "BSD-2-Clause", "dependencies": [ "boost-program-options", "librdkafka", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppmicroservices/devendor_boost_absl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 87cfb37..d7fbd20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -693,7 +693,7 @@ endif() # Compile libraries here if you do not want -Werror or /WX on #----------------------------------------------------------------------------- set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries" FORCE) -add_subdirectory(third_party/boost/nowide) +find_package(Boost COMPONENTS nowide CONFIG REQUIRED) set(BUILD_SHARED_LIBS ${_us_build_shared} CACHE BOOL "Build shared libraries" FORCE) #----------------------------------------------------------------------------- diff --git a/cmake/usBundleConfig.cmake.in b/cmake/usBundleConfig.cmake.in index c9cf743..f0ab1ca 100644 --- a/cmake/usBundleConfig.cmake.in +++ b/cmake/usBundleConfig.cmake.in @@ -3,6 +3,10 @@ set(US_@PROJECT_NAME@_LIBRARIES @PROJECT_TARGET@) set(US_@PROJECT_NAME@_RUNTIME_LIBRARY_DIRS "@PACKAGE_CONFIG_RUNTIME_LIBRARY_DIR@") +include(CMakeFindDependencyMacro) +find_dependency(Boost COMPONENTS asio nowide CONFIG) +find_dependency(absl CONFIG) + if(NOT TARGET @PROJECT_TARGET@) include("${CMAKE_CURRENT_LIST_DIR}/us@PROJECT_NAME@Targets.cmake") endif() diff --git a/compendium/CMakeLists.txt b/compendium/CMakeLists.txt index a571331..d26ac7e 100644 --- a/compendium/CMakeLists.txt +++ b/compendium/CMakeLists.txt @@ -1,3 +1,4 @@ +find_package(Boost COMPONENTS asio CONFIG REQUIRED) if(US_BUILD_TESTING) add_subdirectory(test_bundles) endif() diff --git a/compendium/ConfigurationAdmin/src/CMAsyncWorkService.cpp b/compendium/ConfigurationAdmin/src/CMAsyncWorkService.cpp index 50f02e6..fdfa45d 100644 --- a/compendium/ConfigurationAdmin/src/CMAsyncWorkService.cpp +++ b/compendium/ConfigurationAdmin/src/CMAsyncWorkService.cpp @@ -22,10 +22,10 @@ #include "CMAsyncWorkService.hpp" -#include "boost/asio/async_result.hpp" -#include "boost/asio/packaged_task.hpp" -#include "boost/asio/post.hpp" -#include "boost/asio/thread_pool.hpp" +#include +#include +#include +#include namespace cppmicroservices { diff --git a/compendium/ConfigurationAdmin/src/CMakeLists.txt b/compendium/ConfigurationAdmin/src/CMakeLists.txt index a079c20..2657610 100644 --- a/compendium/ConfigurationAdmin/src/CMakeLists.txt +++ b/compendium/ConfigurationAdmin/src/CMakeLists.txt @@ -28,7 +28,7 @@ set(_private_headers ) add_library(ConfigurationAdminObjs OBJECT ${_srcs} ${_private_headers}) - +target_link_libraries(ConfigurationAdminObjs PULBIC Boost::asio) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") get_property(_compile_flags TARGET ConfigurationAdminObjs PROPERTY COMPILE_FLAGS) set_property(TARGET ConfigurationAdminObjs PROPERTY COMPILE_FLAGS "${_compile_flags} -fPIC") diff --git a/compendium/DeclarativeServices/CMakeLists.txt b/compendium/DeclarativeServices/CMakeLists.txt index 2920189..810b00b 100755 --- a/compendium/DeclarativeServices/CMakeLists.txt +++ b/compendium/DeclarativeServices/CMakeLists.txt @@ -37,14 +37,14 @@ endif() add_compile_definitions(BOOST_DATE_TIME_NO_LIB) add_compile_definitions(BOOST_REGEX_NO_LIB) - +find_package(Boost COMPONENTS asio CONFIG REQUIRED) usMacroCreateBundle(DeclarativeServices VERSION "1.5.13" DEPENDS Framework TARGET DeclarativeServices SYMBOLIC_NAME declarative_services EMBED_RESOURCE_METHOD LINK - LINK_LIBRARIES ${_link_libraries} usServiceComponent usAsyncWorkService + LINK_LIBRARIES ${_link_libraries} usServiceComponent usAsyncWorkService Boost::asio PRIVATE_HEADERS ${_ds_private_headers} SOURCES $ src/SCRActivator.cpp BINARY_RESOURCES manifest.json diff --git a/compendium/DeclarativeServices/src/CMakeLists.txt b/compendium/DeclarativeServices/src/CMakeLists.txt index 726d402..4e075d5 100644 --- a/compendium/DeclarativeServices/src/CMakeLists.txt +++ b/compendium/DeclarativeServices/src/CMakeLists.txt @@ -80,9 +80,9 @@ set(_private_headers metadata/ServiceMetadata.hpp metadata/Util.hpp ) - +find_package(Boost COMPONENTS asio CONFIG REQUIRED) add_library(DeclarativeServicesObjs OBJECT ${_srcs} ${_private_headers}) - +target_link_libraries(DeclarativeServicesObjs PUBLIC Boost::asio) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") get_property(_compile_flags TARGET DeclarativeServicesObjs PROPERTY COMPILE_FLAGS) set_property(TARGET DeclarativeServicesObjs PROPERTY COMPILE_FLAGS "${_compile_flags} -fPIC") diff --git a/compendium/DeclarativeServices/src/SCRAsyncWorkService.cpp b/compendium/DeclarativeServices/src/SCRAsyncWorkService.cpp index ffc93e9..1b9af7b 100644 --- a/compendium/DeclarativeServices/src/SCRAsyncWorkService.cpp +++ b/compendium/DeclarativeServices/src/SCRAsyncWorkService.cpp @@ -22,10 +22,10 @@ #include "SCRAsyncWorkService.hpp" -#include "boost/asio/async_result.hpp" -#include "boost/asio/packaged_task.hpp" -#include "boost/asio/post.hpp" -#include "boost/asio/thread_pool.hpp" +#include +#include +#include +#include namespace cppmicroservices { diff --git a/compendium/DeclarativeServices/src/manager/ComponentConfigurationImpl.cpp b/compendium/DeclarativeServices/src/manager/ComponentConfigurationImpl.cpp index c4483a9..84d4217 100644 --- a/compendium/DeclarativeServices/src/manager/ComponentConfigurationImpl.cpp +++ b/compendium/DeclarativeServices/src/manager/ComponentConfigurationImpl.cpp @@ -30,7 +30,7 @@ #include "ReferenceManager.hpp" #include "ReferenceManagerImpl.hpp" #include "RegistrationManager.hpp" -#include "boost/asio/post.hpp" +#include #include "cppmicroservices/servicecomponent/ComponentConstants.hpp" #include "states/CCUnsatisfiedReferenceState.hpp" #include "states/ComponentConfigurationState.hpp" diff --git a/tools/rc/CMakeLists.txt b/tools/rc/CMakeLists.txt index c4a36f8..8844292 100755 --- a/tools/rc/CMakeLists.txt +++ b/tools/rc/CMakeLists.txt @@ -20,8 +20,8 @@ if(WIN32) target_link_libraries(${US_RCC_EXECUTABLE_TARGET} Shlwapi) endif() -target_link_libraries(${US_RCC_EXECUTABLE_TARGET} nowide::nowide) -target_include_directories(${US_RCC_EXECUTABLE_TARGET} PRIVATE ${CppMicroServices_SOURCE_DIR}/third_party/boost/nowide/include) +find_package(Boost COMPONENTS nowide CONFIG REQUIRED) +target_link_libraries(${US_RCC_EXECUTABLE_TARGET} Boost::nowide) set_property(TARGET ${US_RCC_EXECUTABLE_TARGET} APPEND PROPERTY COMPILE_DEFINITIONS "MINIZ_NO_ARCHIVE_READING_API;MINIZ_NO_ZLIB_COMPATIBLE_NAMES") diff --git a/tools/rc/ResourceCompiler.cpp b/tools/rc/ResourceCompiler.cpp index a5b81d3..4e92db4 100755 --- a/tools/rc/ResourceCompiler.cpp +++ b/tools/rc/ResourceCompiler.cpp @@ -37,9 +37,12 @@ #include #include -#include -#include +#include +#include +namespace nowide { + using namespace boost::nowide; +} #include "optionparser.h" #include "json/json.h" ================================================ FILE: ports/cppmicroservices/fix_strnicmp.patch ================================================ diff --git a/framework/src/util/PropsCheck.h b/framework/src/util/PropsCheck.h index 26acd33..930a328 100644 --- a/framework/src/util/PropsCheck.h +++ b/framework/src/util/PropsCheck.h @@ -47,7 +47,7 @@ #ifdef US_PLATFORM_WINDOWS # include -# define ci_compare strnicmp +# define ci_compare _strnicmp #else # include # define ci_compare strncasecmp ================================================ FILE: ports/cppmicroservices/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CppMicroServices/CppMicroservices REF "v${VERSION}" SHA512 6378f929bebd2d77d260791c0518dc0fcda43a19ade2475d5e20698c594c178ed1f9123d65017fc25c34c95437d25d5eca889224c6650a1c37584842ddc6dbab HEAD_REF development PATCHES werror.patch fix_strnicmp.patch devendor_boost_absl.patch remove-ut-macro.patch ) # TODO: De-vendor everything file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/absl" "${SOURCE_PATH}/third_party/boost" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTOOLS_INSTALL_DIR:STRING=tools/cppmicroservices -DAUXILIARY_INSTALL_DIR:STRING=share/cppmicroservices -DUS_USE_SYSTEM_GTEST=TRUE -DUS_BUILD_TESTING=FALSE -DUS_USE_SYSTEM_BOOST=TRUE ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # CppMicroServices uses a custom resource compiler to compile resources # the zipped resources are then appended to the target which cause the linker to crash # when compiling a static library if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) endif() ================================================ FILE: ports/cppmicroservices/remove-ut-macro.patch ================================================ diff --git a/framework/include/FrameworkConfig.h.in b/framework/include/FrameworkConfig.h.in index 024a0ec..9eba2f8 100644 --- a/framework/include/FrameworkConfig.h.in +++ b/framework/include/FrameworkConfig.h.in @@ -18,11 +18,4 @@ #define US_FRAMEWORK_VERSION @Framework_VERSION@ #define US_FRAMEWORK_VERSION_STR "@Framework_VERSION@" - -///------------------------------------------------------------------- -// Macros used by the unit tests -//------------------------------------------------------------------- - -#define US_FRAMEWORK_SOURCE_DIR "@PROJECT_SOURCE_DIR@" - #endif // CPPMICROSERVICES_FRAMEWORKCONFIG_H ================================================ FILE: ports/cppmicroservices/vcpkg.json ================================================ { "name": "cppmicroservices", "version": "3.8.6", "description": "An OSGi-like C++ dynamic module system and service registry", "homepage": "https://github.com/CppMicroServices/CppMicroServices", "license": "Apache-2.0", "dependencies": [ "abseil", "boost-asio", "boost-nowide", "gtest", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppmicroservices/werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 267b82e..87cfb37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -552,7 +552,7 @@ else() usFunctionCheckCompilerFlags(-fstack-protector-all US_CXX_FLAGS) endif() - foreach(_cxxflag -Werror -Wall -Wextra -Wpointer-arith -Winvalid-pch -Wcast-align + foreach(_cxxflag -Wall -Wextra -Wpointer-arith -Winvalid-pch -Wcast-align -Wwrite-strings -Woverloaded-virtual -Wnon-virtual-dtor -Wold-style-cast -Wstrict-null-sentinel -Wsign-promo -fdiagnostics-show-option ) usFunctionCheckCompilerFlags(${_cxxflag} US_CXX_FLAGS) ================================================ FILE: ports/cppp-reiconv/portfile.cmake ================================================ # We do not use vcpkg_from_github here, as build-aux and cppp-platform are not part of the repo. vcpkg_download_distfile(ARCHIVE URLS "https://github.com/cppp-project/cppp-reiconv/releases/download/v${VERSION}/cppp-reiconv-${VERSION}.zip" FILENAME "cppp-reiconv-v${VERSION}.zip" SHA512 08351752a3a8e6f816146c69e8e26dac450a1f2a8d5cdaf78328e1244bb03b4e9c092ac36928afffa24c7993573b4cd1e12866b43f8f33a764da46697285dfdf ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cppp-reiconv/vcpkg.json ================================================ { "name": "cppp-reiconv", "version": "3.0.0", "description": "cppp-reiconv: A character set conversion library based on GNU LIBICONV for The C++ Plus Project.", "homepage": "https://github.com/cppp-project/cppp-reiconv", "license": "LGPL-3.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/cpprealm/disable-werror.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f8b0675..e7dd3f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,7 @@ target_link_libraries(cpprealm PUBLIC Realm::ObjectStore) set(CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT_PATH}) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - target_compile_options(cpprealm PRIVATE -Wall -Wextra -pedantic -Werror) + target_compile_options(cpprealm PRIVATE -Wall -Wextra -pedantic -Wno-changes-meaning) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0) ================================================ FILE: ports/cpprealm/missing-cstdint.diff ================================================ diff --git a/include/cpprealm/internal/bridge/realm.hpp b/include/cpprealm/internal/bridge/realm.hpp index 38703d1..827c71d 100644 --- a/include/cpprealm/internal/bridge/realm.hpp +++ b/include/cpprealm/internal/bridge/realm.hpp @@ -27,6 +27,7 @@ #include #include #include +#include namespace realm { class Realm; ================================================ FILE: ports/cpprealm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO realm/realm-cpp REF "v${VERSION}" SHA512 "cf975741b5a4a68a40845c53d8584d871acff03c7a212e71a67799801979e0514de2a449aa5d78137f2d7f42e113c5df7c97e9f8c5fb6371e95c46f29ab2b246" HEAD_REF "main" PATCHES missing-cstdint.diff # https://github.com/realm/realm-cpp/pull/247 disable-werror.diff remove-overzealous-template.diff # https://github.com/realm/realm-cpp/pull/248 ) if(NOT VCPKG_BUILD_TYPE) set(DISABLE_ALIGNED_STORAGE 1) else() set(DISABLE_ALIGNED_STORAGE 0) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DREALM_DISABLE_ALIGNED_STORAGE=${DISABLE_ALIGNED_STORAGE} -DREALM_CPP_NO_TESTS=ON -DREALM_ENABLE_EXPERIMENTAL=ON -DREALMCXX_VERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpprealm/remove-overzealous-template.diff ================================================ diff --git a/include/cpprealm/schema.hpp b/include/cpprealm/schema.hpp index 7494d60..7479c3c 100644 --- a/include/cpprealm/schema.hpp +++ b/include/cpprealm/schema.hpp @@ -253,7 +253,7 @@ namespace realm { if constexpr (N + 1 == sizeof...(Properties)) { if (property_name == std::string_view(names[N])) { - auto ptr = managed::template unmanaged_to_managed_pointer(property.ptr); + auto ptr = managed::unmanaged_to_managed_pointer(property.ptr); if constexpr (std::is_pointer_v) { return (cls.*ptr); } else { @@ -263,7 +263,7 @@ namespace realm { return variant_t{}; } else { if (property_name == std::string_view(names[N])) { - auto ptr = managed::template unmanaged_to_managed_pointer(property.ptr); + auto ptr = managed::unmanaged_to_managed_pointer(property.ptr); if constexpr (std::is_pointer_v) { return (cls.*ptr); } else { ================================================ FILE: ports/cpprealm/vcpkg.json ================================================ { "name": "cpprealm", "version": "2.2.0", "port-version": 1, "description": "Realm is a mobile database that runs directly inside phones, tablets or wearables.", "homepage": "https://github.com/realm/realm-cpp", "license": "Apache-2.0", "supports": "!emscripten", "dependencies": [ { "name": "curl", "platform": "linux" }, { "name": "libuv", "platform": "!osx, !ios" }, "realm-core", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpprestsdk/fix-asio-error.patch ================================================ diff --git a/Release/include/pplx/threadpool.h b/Release/include/pplx/threadpool.h index b297ff6..56ea475 100644 --- a/Release/include/pplx/threadpool.h +++ b/Release/include/pplx/threadpool.h @@ -69,15 +69,15 @@ public: CASABLANCA_DEPRECATED("Use `.service().post(task)` directly.") void schedule(T task) { - service().post(task); + boost::asio::post(service(), task); } - boost::asio::io_service& service() { return m_service; } + boost::asio::io_context& service() { return m_service; } protected: threadpool(size_t num_threads) : m_service(static_cast(num_threads)) {} - boost::asio::io_service m_service; + boost::asio::io_context m_service; }; } // namespace crossplat diff --git a/Release/src/http/client/http_client_asio.cpp b/Release/src/http/client/http_client_asio.cpp index 07bb488..f9c7c51 100644 --- a/Release/src/http/client/http_client_asio.cpp +++ b/Release/src/http/client/http_client_asio.cpp @@ -146,9 +146,9 @@ class asio_connection friend class asio_client; public: - asio_connection(boost::asio::io_service& io_service) + asio_connection(boost::asio::io_context& io_context) : m_socket_lock() - , m_socket(io_service) + , m_socket(io_context) , m_ssl_stream() , m_cn_hostname() , m_is_reused(false) @@ -429,7 +429,7 @@ private: auto& self = *pool; std::weak_ptr weak_pool = pool; - self.m_pool_epoch_timer.expires_from_now(boost::posix_time::seconds(30)); + self.m_pool_epoch_timer.expires_after(std::chrono::seconds(30)); self.m_pool_epoch_timer.async_wait([weak_pool](const boost::system::error_code& ec) { if (ec) { @@ -467,7 +467,7 @@ private: std::mutex m_lock; std::map> m_connections; bool m_is_timer_running; - boost::asio::deadline_timer m_pool_epoch_timer; + boost::asio::system_timer m_pool_epoch_timer; }; class asio_client final : public _http_client_communicator @@ -581,18 +581,16 @@ public: m_context->m_timer.start(); - tcp::resolver::query query(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port)); - auto client = std::static_pointer_cast(m_context->m_http_client); - m_context->m_resolver.async_resolve(query, - boost::bind(&ssl_proxy_tunnel::handle_resolve, - shared_from_this(), - boost::asio::placeholders::error, - boost::asio::placeholders::iterator)); + m_context->m_resolver.async_resolve(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port), + [self = shared_from_this()](const boost::system::error_code& error, tcp::resolver::results_type results){ + self->handle_resolve(error, results.begin()); + } + ); } private: - void handle_resolve(const boost::system::error_code& ec, tcp::resolver::iterator endpoints) + void handle_resolve(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints) { if (ec) { @@ -610,7 +608,7 @@ public: } } - void handle_tcp_connect(const boost::system::error_code& ec, tcp::resolver::iterator endpoints) + void handle_tcp_connect(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints) { if (!ec) { @@ -621,7 +619,7 @@ public: shared_from_this(), boost::asio::placeholders::error)); } - else if (endpoints == tcp::resolver::iterator()) + else if (endpoints == tcp::resolver::results_type::iterator()) { m_context->report_error( "Failed to connect to any resolved proxy endpoint", ec, httpclient_errorcode_context::connect); @@ -885,12 +883,11 @@ public: auto tcp_host = proxy_type == http_proxy_type::http ? proxy_host : host; auto tcp_port = proxy_type == http_proxy_type::http ? proxy_port : port; - tcp::resolver::query query(tcp_host, to_string(tcp_port)); - ctx->m_resolver.async_resolve(query, - boost::bind(&asio_context::handle_resolve, - ctx, - boost::asio::placeholders::error, - boost::asio::placeholders::iterator)); + ctx->m_resolver.async_resolve(tcp_host, to_string(tcp_port), + [ctx](const boost::system::error_code& error, tcp::resolver::results_type results){ + ctx->handle_resolve(error, results.begin()); + } + ); } // Register for notification on cancellation to abort this request. @@ -1006,7 +1003,7 @@ private: request_context::report_error(errorcodeValue, message); } - void handle_connect(const boost::system::error_code& ec, tcp::resolver::iterator endpoints) + void handle_connect(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints) { m_timer.reset(); if (!ec) @@ -1019,7 +1016,7 @@ private: { report_error("Request canceled by user.", ec, httpclient_errorcode_context::connect); } - else if (endpoints == tcp::resolver::iterator()) + else if (endpoints == tcp::resolver::results_type::iterator()) { report_error("Failed to connect to any resolved endpoint", ec, httpclient_errorcode_context::connect); } @@ -1045,13 +1042,13 @@ private: } } - void handle_resolve(const boost::system::error_code& ec, tcp::resolver::iterator endpoints) + void handle_resolve(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints) { if (ec) { report_error("Error resolving address", ec, httpclient_errorcode_context::connect); } - else if (endpoints == tcp::resolver::iterator()) + else if (endpoints == tcp::resolver::results_type::iterator()) { report_error("Failed to resolve address", ec, httpclient_errorcode_context::connect); } @@ -1134,7 +1131,7 @@ private: } #endif // CPPREST_PLATFORM_ASIO_CERT_VERIFICATION_AVAILABLE - boost::asio::ssl::rfc2818_verification rfc2818(m_connection->cn_hostname()); + boost::asio::ssl::host_name_verification rfc2818(m_connection->cn_hostname()); return rfc2818(preverified, verifyCtx); } @@ -1182,8 +1179,8 @@ private: const auto& chunkSize = m_http_client->client_config().chunksize(); auto readbuf = _get_readbuffer(); - uint8_t* buf = boost::asio::buffer_cast( - m_body_buf.prepare(chunkSize + http::details::chunked_encoding::additional_encoding_space)); + uint8_t* buf = static_cast( + m_body_buf.prepare(chunkSize + http::details::chunked_encoding::additional_encoding_space).data()); const auto this_request = shared_from_this(); readbuf.getn(buf + http::details::chunked_encoding::data_offset, chunkSize) .then([this_request, buf, chunkSize AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task op) { @@ -1247,7 +1244,7 @@ private: const auto readSize = static_cast((std::min)( static_cast(m_http_client->client_config().chunksize()), m_content_length - m_uploaded)); auto readbuf = _get_readbuffer(); - readbuf.getn(boost::asio::buffer_cast(m_body_buf.prepare(readSize)), readSize) + readbuf.getn(static_cast(m_body_buf.prepare(readSize).data()), readSize) .then([this_request AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task op) { try { @@ -1639,7 +1636,7 @@ private: std::vector decompressed; bool boo = - decompress(boost::asio::buffer_cast(m_body_buf.data()), to_read, decompressed); + decompress(static_cast(m_body_buf.data().data()), to_read, decompressed); if (!boo) { report_exception(std::runtime_error("Failed to decompress the response body")); @@ -1687,7 +1684,7 @@ private: } else { - writeBuffer.putn_nocopy(boost::asio::buffer_cast(m_body_buf.data()), to_read) + writeBuffer.putn_nocopy(static_cast(m_body_buf.data().data()), to_read) .then([this_request, to_read AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task op) { try { @@ -1759,7 +1756,7 @@ private: std::vector decompressed; bool boo = - decompress(boost::asio::buffer_cast(m_body_buf.data()), read_size, decompressed); + decompress(static_cast(m_body_buf.data().data()), read_size, decompressed); if (!boo) { this_request->report_exception(std::runtime_error("Failed to decompress the response body")); @@ -1821,7 +1818,7 @@ private: } else { - writeBuffer.putn_nocopy(boost::asio::buffer_cast(m_body_buf.data()), read_size) + writeBuffer.putn_nocopy(static_cast(m_body_buf.data().data()), read_size) .then([this_request AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task op) { size_t writtenSize = 0; try @@ -1870,7 +1867,7 @@ private: assert(!m_ctx.expired()); m_state = started; - m_timer.expires_from_now(m_duration); + m_timer.expires_after(m_duration); auto ctx = m_ctx; m_timer.async_wait([ctx AND_CAPTURE_MEMBER_FUNCTION_POINTERS](const boost::system::error_code& ec) { handle_timeout(ec, ctx); @@ -1881,7 +1878,7 @@ private: { assert(m_state == started || m_state == timedout); assert(!m_ctx.expired()); - if (m_timer.expires_from_now(m_duration) > 0) + if (m_timer.expires_after(m_duration) > 0) { // The existing handler was canceled so schedule a new one. assert(m_state == started); diff --git a/Release/src/http/client/x509_cert_utilities.cpp b/Release/src/http/client/x509_cert_utilities.cpp index 67fc5ac..7239f97 100644 --- a/Release/src/http/client/x509_cert_utilities.cpp +++ b/Release/src/http/client/x509_cert_utilities.cpp @@ -95,7 +95,7 @@ bool verify_cert_chain_platform_specific(boost::asio::ssl::verify_context& verif #if defined(_WIN32) if (verify_result) { - boost::asio::ssl::rfc2818_verification rfc2818(hostName); + boost::asio::ssl::host_name_verification rfc2818(hostName); verify_result = rfc2818(verify_result, verifyCtx); } #endif diff --git a/Release/src/http/listener/http_server_asio.cpp b/Release/src/http/listener/http_server_asio.cpp index e83b9ff..14aadfb 100644 --- a/Release/src/http/listener/http_server_asio.cpp +++ b/Release/src/http/listener/http_server_asio.cpp @@ -520,17 +520,14 @@ void hostport_listener::start() auto& service = crossplat::threadpool::shared_instance().service(); tcp::resolver resolver(service); // #446: boost resolver does not recognize "+" as a host wildchar - tcp::resolver::query query = - ("+" == m_host) ? tcp::resolver::query(m_port, boost::asio::ip::resolver_query_base::flags()) - : tcp::resolver::query(m_host, m_port, boost::asio::ip::resolver_query_base::flags()); - - tcp::endpoint endpoint = *resolver.resolve(query); - + auto host = ("+" == m_host) ? "" : m_host; + auto results = resolver.resolve(host, m_port, boost::asio::ip::resolver_query_base::flags()); + tcp::endpoint endpoint = *results.begin(); m_acceptor.reset(new tcp::acceptor(service)); m_acceptor->open(endpoint.protocol()); m_acceptor->set_option(socket_base::reuse_address(true)); m_acceptor->bind(endpoint); - m_acceptor->listen(0 != m_backlog ? m_backlog : socket_base::max_connections); + m_acceptor->listen(0 != m_backlog ? m_backlog : socket_base::max_listen_connections); auto socket = new ip::tcp::socket(service); std::unique_ptr usocket(socket); @@ -881,7 +878,7 @@ will_deref_t asio_server_connection::handle_chunked_body(const boost::system::er else { auto writebuf = requestImpl->outstream().streambuf(); - writebuf.putn_nocopy(buffer_cast(m_request_buf.data()), toWrite) + writebuf.putn_nocopy(static_cast(m_request_buf.data().data()), toWrite) .then([=](pplx::task writeChunkTask) -> will_deref_t { try { @@ -913,7 +910,7 @@ will_deref_t asio_server_connection::handle_body(const boost::system::error_code { auto writebuf = requestImpl->outstream().streambuf(); writebuf - .putn_nocopy(boost::asio::buffer_cast(m_request_buf.data()), + .putn_nocopy(static_cast(m_request_buf.data().data()), (std::min)(m_request_buf.size(), m_read_size - m_read)) .then([this](pplx::task writtenSizeTask) -> will_deref_t { size_t writtenSize = 0; @@ -1134,7 +1131,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_chunked_response(con } auto membuf = m_response_buf.prepare(ChunkSize + chunked_encoding::additional_encoding_space); - readbuf.getn(buffer_cast(membuf) + chunked_encoding::data_offset, ChunkSize) + readbuf.getn(static_cast(membuf.data()) + chunked_encoding::data_offset, ChunkSize) .then([=](pplx::task actualSizeTask) -> will_deref_and_erase_t { size_t actualSize = 0; try @@ -1146,7 +1143,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_chunked_response(con return cancel_sending_response_with_error(response, std::current_exception()); } size_t offset = chunked_encoding::add_chunked_delimiters( - buffer_cast(membuf), ChunkSize + chunked_encoding::additional_encoding_space, actualSize); + static_cast(membuf.data()), ChunkSize + chunked_encoding::additional_encoding_space, actualSize); m_response_buf.commit(actualSize + chunked_encoding::additional_encoding_space); m_response_buf.consume(offset); if (actualSize == 0) @@ -1167,7 +1164,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_large_response(const return cancel_sending_response_with_error( response, std::make_exception_ptr(http_exception("Response stream close early!"))); size_t readBytes = (std::min)(ChunkSize, m_write_size - m_write); - readbuf.getn(buffer_cast(m_response_buf.prepare(readBytes)), readBytes) + readbuf.getn(static_cast(m_response_buf.prepare(readBytes).data()), readBytes) .then([=](pplx::task actualSizeTask) -> will_deref_and_erase_t { size_t actualSize = 0; try diff --git a/Release/src/pplx/pplxlinux.cpp b/Release/src/pplx/pplxlinux.cpp index 630a9e4..65625b6 100644 --- a/Release/src/pplx/pplxlinux.cpp +++ b/Release/src/pplx/pplxlinux.cpp @@ -35,7 +35,7 @@ _PPLXIMP void YieldExecution() { std::this_thread::yield(); } _PPLXIMP void linux_scheduler::schedule(TaskProc_t proc, void* param) { - crossplat::threadpool::shared_instance().service().post(boost::bind(proc, param)); + boost::asio::post(crossplat::threadpool::shared_instance().service(), boost::bind(proc, param)); } } // namespace details diff --git a/Release/src/pplx/threadpool.cpp b/Release/src/pplx/threadpool.cpp index ba38a1a..e12e48d 100644 --- a/Release/src/pplx/threadpool.cpp +++ b/Release/src/pplx/threadpool.cpp @@ -37,7 +37,7 @@ static void abort_if_no_jvm() struct threadpool_impl final : crossplat::threadpool { - threadpool_impl(size_t n) : crossplat::threadpool(n), m_work(m_service) + threadpool_impl(size_t n) : crossplat::threadpool(n), m_work(m_service.get_executor()) { for (size_t i = 0; i < n; i++) add_thread(); @@ -84,7 +84,7 @@ private: } std::vector> m_threads; - boost::asio::io_service::work m_work; + boost::asio::executor_work_guard m_work; }; #if defined(_WIN32) diff --git a/Release/src/websockets/client/ws_client_wspp.cpp b/Release/src/websockets/client/ws_client_wspp.cpp index d7c31c4..8dfa815 100644 --- a/Release/src/websockets/client/ws_client_wspp.cpp +++ b/Release/src/websockets/client/ws_client_wspp.cpp @@ -225,7 +225,7 @@ public: verifyCtx, utility::conversions::to_utf8string(m_uri.host())); } #endif - boost::asio::ssl::rfc2818_verification rfc2818(utility::conversions::to_utf8string(m_uri.host())); + boost::asio::ssl::host_name_verification rfc2818(utility::conversions::to_utf8string(m_uri.host())); return rfc2818(preverified, verifyCtx); }); ================================================ FILE: ports/cpprestsdk/fix-clang-dllimport.patch ================================================ diff --git a/Release/include/cpprest/details/cpprest_compat.h b/Release/include/cpprest/details/cpprest_compat.h index bf107479..00581371 100644 --- a/Release/include/cpprest/details/cpprest_compat.h +++ b/Release/include/cpprest/details/cpprest_compat.h @@ -29,7 +29,6 @@ #else // ^^^ _WIN32 ^^^ // vvv !_WIN32 vvv #define __declspec(x) __attribute__((x)) -#define dllimport #define novtable /* no novtable equivalent */ #define __assume(x) \ do \ @@ -74,9 +73,17 @@ #define _ASYNCRTIMP_TYPEINFO #else // ^^^ _NO_ASYNCRTIMP ^^^ // vvv !_NO_ASYNCRTIMP vvv #ifdef _ASYNCRT_EXPORT +#ifdef _WIN32 #define _ASYNCRTIMP __declspec(dllexport) +#else +#define _ASYNCRTIMP __attribute__((visibility("default"))) +#endif #else // ^^^ _ASYNCRT_EXPORT ^^^ // vvv !_ASYNCRT_EXPORT vvv +#ifdef _WIN32 #define _ASYNCRTIMP __declspec(dllimport) +#else +#define _ASYNCRTIMP +#endif #endif // _ASYNCRT_EXPORT #if defined(_WIN32) diff --git a/Release/include/pplx/pplx.h b/Release/include/pplx/pplx.h index d9ba9c61..8d36252c 100644 --- a/Release/include/pplx/pplx.h +++ b/Release/include/pplx/pplx.h @@ -30,9 +30,17 @@ #define _PPLXIMP #else #ifdef _PPLX_EXPORT +#ifdef _WIN32 #define _PPLXIMP __declspec(dllexport) #else +#define _PPLXIMP __attribute__((visibility("default"))) +#endif +#else +#ifdef _WIN32 #define _PPLXIMP __declspec(dllimport) +#else +#define _PPLXIMP +#endif #endif #endif ================================================ FILE: ports/cpprestsdk/fix-find-openssl.patch ================================================ diff --git a/Release/cmake/cpprest_find_openssl.cmake b/Release/cmake/cpprest_find_openssl.cmake index 9333663..c1df089 100644 --- a/Release/cmake/cpprest_find_openssl.cmake +++ b/Release/cmake/cpprest_find_openssl.cmake @@ -36,8 +36,11 @@ function(cpprest_find_openssl) # Prefer a homebrew version of OpenSSL over the one in /usr/lib file(GLOB OPENSSL_ROOT_DIR /usr/local/Cellar/openssl*/*) # Prefer the latest (make the latest one first) - list(REVERSE OPENSSL_ROOT_DIR) - list(GET OPENSSL_ROOT_DIR 0 OPENSSL_ROOT_DIR) + if(OPENSSL_ROOT_DIR) + # Prefer the latest (make the latest one first) + list(REVERSE OPENSSL_ROOT_DIR) + list(GET OPENSSL_ROOT_DIR 0 OPENSSL_ROOT_DIR) + endif() endif() # This should prevent linking against the system provided 0.9.8y message(STATUS "OPENSSL_ROOT_DIR = ${OPENSSL_ROOT_DIR}") ================================================ FILE: ports/cpprestsdk/fix-uwp.patch ================================================ diff --git a/Release/CMakeLists.txt b/Release/CMakeLists.txt index b8f3809..3857cfc 100644 --- a/Release/CMakeLists.txt +++ b/Release/CMakeLists.txt @@ -187,7 +187,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /profile /OPT:REF /OPT:ICF") if (WINDOWS_STORE OR WINDOWS_PHONE) - add_compile_options(/ZW) + # add_compile_options(/ZW) else() if (NOT (MSVC_VERSION LESS 1920)) add_compile_options(/permissive-) diff --git a/Release/src/CMakeLists.txt b/Release/src/CMakeLists.txt index 128f6d6..098d33f 100644 --- a/Release/src/CMakeLists.txt +++ b/Release/src/CMakeLists.txt @@ -47,6 +47,10 @@ target_include_directories(cpprest pch ) +if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND (WINDOWS_STORE OR WINDOWS_PHONE)) + target_compile_options(cpprest PUBLIC /ZW) +endif() + ## Sub-components # Websockets component if(CPPREST_WEBSOCKETS_IMPL STREQUAL "none") ================================================ FILE: ports/cpprestsdk/fix_narrowing.patch ================================================ diff --git a/Release/src/CMakeLists.txt b/Release/src/CMakeLists.txt index e15aeb7fc..128f6d6af 100644 --- a/Release/src/CMakeLists.txt +++ b/Release/src/CMakeLists.txt @@ -185,12 +185,12 @@ endif() configure_pch(cpprest stdafx.h pch/stdafx.cpp /Zm120) -if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU") +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND NOT MSVC) if(WERROR) target_compile_options(cpprest PRIVATE -Werror) endif() target_compile_options(cpprest PRIVATE -pedantic ${WARNINGS}) -elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT MATCHES "MSVC") if(WERROR) target_compile_options(cpprest PRIVATE /WX ${WARNINGS}) endif() diff --git a/Release/src/streams/fileio_win32.cpp b/Release/src/streams/fileio_win32.cpp index 057dd9b67..a65439cb7 100644 --- a/Release/src/streams/fileio_win32.cpp +++ b/Release/src/streams/fileio_win32.cpp @@ -616,7 +616,7 @@ size_t _fill_buffer_fsb(_In_ _file_info_impl* fInfo, // pending return read; - case (-1): + case ((size_t)(-1)): // error delete cb; return read; @@ -668,7 +668,7 @@ size_t _fill_buffer_fsb(_In_ _file_info_impl* fInfo, // pending return read; - case (-1): + case ((size_t)(-1)): // error delete cb; return read; @@ -719,7 +719,7 @@ size_t _fill_buffer_fsb(_In_ _file_info_impl* fInfo, // pending return read; - case (-1): + case ((size_t)(-1)): // error delete cb; return read; ================================================ FILE: ports/cpprestsdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/cpprestsdk REF 411a109150b270f23c8c97fa4ec9a0a4a98cdecf SHA512 4f604763f05d53e50dec5deaba283fa4f82d5e7a94c7c8142bf422f4c0bc24bcef00666ddbdd820f64c14e552997d6657b6aca79a29e69db43799961b44b2a1a HEAD_REF master PATCHES fix-find-openssl.patch fix_narrowing.patch fix-uwp.patch fix-clang-dllimport.patch # workaround for https://github.com/microsoft/cpprestsdk/issues/1710 silence-stdext-checked-array-iterators-warning.patch fix-asio-error.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES brotli CPPREST_EXCLUDE_BROTLI compression CPPREST_EXCLUDE_COMPRESSION websockets CPPREST_EXCLUDE_WEBSOCKETS ) if(VCPKG_TARGET_IS_UWP) set(configure_opts WINDOWS_USE_MSBUILD) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Release" ${configure_opts} OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTS=OFF -DBUILD_SAMPLES=OFF -DCPPREST_EXPORT_DIR=share/cpprestsdk -DWERROR=OFF -DPKG_CONFIG_EXECUTABLE=FALSE OPTIONS_DEBUG -DCPPREST_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/share" "${CURRENT_PACKAGES_DIR}/lib/share") if (VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpprest/details/cpprest_compat.h" "#ifdef _NO_ASYNCRTIMP" "#if 1") endif() file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cpprestsdk/silence-stdext-checked-array-iterators-warning.patch ================================================ diff --git a/Release/CMakeLists.txt b/Release/CMakeLists.txt index 3d6df65..9ff6d66 100644 --- a/Release/CMakeLists.txt +++ b/Release/CMakeLists.txt @@ -178,6 +178,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(WARNINGS) set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4264") add_compile_options(/bigobj) + add_compile_options(/D_SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MP") set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /MP") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MP") ================================================ FILE: ports/cpprestsdk/test.patch ================================================ diff --git a/Release/src/CMakeLists.txt b/Release/src/CMakeLists.txt index 098d33f..7f1f650 100644 --- a/Release/src/CMakeLists.txt +++ b/Release/src/CMakeLists.txt @@ -218,15 +218,15 @@ if (WIN32 AND NOT WINDOWS_STORE AND NOT WINDOWS_PHONE) crypt32.lib ) elseif(WINDOWS_STORE) - if(NOT CMAKE_GENERATOR MATCHES "Visual Studio .*") - target_compile_definitions(cpprest PRIVATE -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP) + + target_compile_definitions(cpprest PUBLIC -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP) get_target_property(LINK_FLAGS cpprest LINK_FLAGS) if(NOT LINK_FLAGS) set(LINK_FLAGS "") endif() set(LINK_FLAGS "${LINK_FLAGS} /APPCONTAINER") set_target_properties(cpprest PROPERTIES LINK_FLAGS "${LINK_FLAGS}") - endif() + endif() set_target_properties(cpprest PROPERTIES OUTPUT_NAME "cpprest${CPPREST_ABI_TAG}") ================================================ FILE: ports/cpprestsdk/vcpkg.json ================================================ { "name": "cpprestsdk", "version": "2.10.19", "port-version": 3, "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." ], "homepage": "https://github.com/Microsoft/cpprestsdk", "license": "MIT", "dependencies": [ { "name": "boost-asio", "platform": "!uwp & !windows" }, { "name": "boost-chrono", "platform": "!uwp & !windows" }, { "name": "boost-date-time", "platform": "!uwp & !windows" }, { "name": "boost-filesystem", "platform": "!uwp & !windows" }, { "name": "boost-random", "platform": "!uwp & !windows" }, { "name": "boost-regex", "platform": "!uwp & !windows" }, { "name": "boost-system", "platform": "!uwp & !windows" }, { "name": "boost-thread", "platform": "!uwp & !windows" }, { "name": "openssl", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "brotli", "platform": "windows" }, "compression" ], "features": { "brotli": { "description": "Brotli compression support", "dependencies": [ "brotli", { "name": "cpprestsdk", "default-features": false, "features": [ "compression" ] } ] }, "compression": { "description": "HTTP Compression support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/cppslippi/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO cppslippi FILENAME "CppSlippi-${VERSION}.zip" SHA512 8bd20b485ce15fbd184d48dd8f58d20d448ea081efd97ae613cbb78a8c9fa0b8f9b643b16a6e25317e9582b86a968eac2ec1ee6b6b6749b8cc79a8b9a9f6de9b NO_REMOVE_ONE_LEVEL ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TESTING=False ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CppSlippi) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/cppslippi/usage ================================================ The package cppslippi provides CMake targets: find_package(CppSlippi CONFIG REQUIRED) target_link_libraries(main PRIVATE CppSlippi::CppSlippi) ================================================ FILE: ports/cppslippi/vcpkg.json ================================================ { "name": "cppslippi", "version": "1.4.3.18", "description": "C++ Slippi replay file parser.", "homepage": "https://sourceforge.net/projects/cppslippi/", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpptoml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chadaustin/cpptoml REF "v${VERSION}" SHA512 80fa659b529b242e02ae233d2870b666c3c7cfd9d6d6bb9d07cd5539d7778c8809e614b46a3d4cf97f9a2b0b5d5f953bba170fb1d95b5b920c395f3df52f2c9a HEAD_REF master ) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS -DENABLE_LIBCXX=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DCPPTOML_BUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpptoml/vcpkg.json ================================================ { "name": "cpptoml", "version": "0.1.2", "description": "A header-only library for parsing TOML configuration files.", "homepage": "https://github.com/chadaustin/cpptoml", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpptrace/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jeremy-rifkin/cpptrace REF "v${VERSION}" SHA512 e88edddbcdd423d49ed3adb02cf70580ee3a56065db4d81ca69d3f9f6d9b64ac27734842ca3b6d8ff45a548c25900a88f979e39d777af422a153e586d26ac5b5 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPPTRACE_USE_EXTERNAL_LIBDWARF=ON -DCPPTRACE_USE_EXTERNAL_ZSTD=ON -DCPPTRACE_VCPKG=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "cpptrace" CONFIG_PATH "lib/cmake/cpptrace" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpptrace/usage ================================================ cpptrace provides CMake targets: find_package(cpptrace CONFIG REQUIRED) target_link_libraries(main PRIVATE cpptrace::cpptrace) ================================================ FILE: ports/cpptrace/vcpkg.json ================================================ { "name": "cpptrace", "version": "1.0.4", "description": "Simple, portable, and self-contained stacktrace library for C++11 and newer", "homepage": "https://github.com/jeremy-rifkin/cpptrace", "license": "MIT", "supports": "!(uwp | android)", "dependencies": [ { "name": "libdwarf", "platform": "!windows | mingw" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppunit/CMakeLists.txt ================================================ project(cppunit) cmake_minimum_required(VERSION 2.8.12) set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables" ) set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries" ) set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers" ) file(GLOB CPPUNIT_SRC RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src/cppunit/*.cpp") include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) set(DLLPLUGINTESTER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/DllPlugInTester/CommandLineParser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/DllPlugInTester/DllPlugInTester.cpp ) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/DllPlugInTester) if(WIN32) set(CMAKE_DEBUG_POSTFIX d) endif() if(BUILD_SHARED_LIBS) add_library(cppunit SHARED ${CPPUNIT_SRC}) add_definitions(-DCPPUNIT_BUILD_DLL) else() add_library(cppunit STATIC ${CPPUNIT_SRC}) endif() add_executable(DllPlugInTester ${DLLPLUGINTESTER_SRC}) target_link_libraries(DllPlugInTester cppunit) install(TARGETS cppunit RUNTIME DESTINATION "${INSTALL_BIN_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) install(TARGETS DllPlugInTester RUNTIME DESTINATION "${INSTALL_BIN_DIR}" ) install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/cppunit" DESTINATION "${INSTALL_INC_DIR}" ) ================================================ FILE: ports/cppunit/CppUnitConfig.cmake ================================================ include(SelectLibraryConfigurations) find_path(CppUnit_INCLUDE_DIR TestCase.h PATH_SUFFIXES cppunit) find_library(CppUnit_LIBRARY_RELEASE NAMES cppunit PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH) find_library(CppUnit_LIBRARY_DEBUG NAMES cppunitd cppunit PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH) select_library_configurations(CppUnit) if(NOT CppUnit_LIBRARY) set(CppUnit_FOUND FALSE) set(CPPUNIT_FOUND FALSE) return() endif() if(WIN32) find_file(CppUnit_LIBRARY_RELEASE_DLL NAMES cppunit.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../bin" NO_DEFAULT_PATH) find_file(CppUnit_LIBRARY_DEBUG_DLL NAMES cppunitd.dll PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/bin" NO_DEFAULT_PATH) endif() # Manage Release Windows shared if(EXISTS "${CppUnit_LIBRARY_RELEASE_DLL}") add_library(CppUnit SHARED IMPORTED) set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS Release IMPORTED_LOCATION_RELEASE "${CppUnit_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB_RELEASE "${CppUnit_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) endif() # Manage Debug Windows shared if(EXISTS "${CppUnit_LIBRARY_DEBUG_DLL}") if(EXISTS "${CppUnit_LIBRARY_RELEASE_DLL}") set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" IMPORTED_LOCATION_RELEASE "${CppUnit_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB_RELEASE "${CppUnit_LIBRARY_RELEASE}" IMPORTED_LOCATION_DEBUG "${CppUnit_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${CppUnit_LIBRARY_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) else() add_library(CppUnit SHARED IMPORTED) set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS Debug IMPORTED_LOCATION_DEBUG "${CppUnit_LIBRARY_DEBUG_DLL" IMPORTED_IMPLIB_DEBUG "${CppUnit_LIBRARY_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) endif() endif() # Manage Release Windows static and Linux shared/static if((NOT EXISTS "${CppUnit_LIBRARY_RELEASE_DLL}") AND (EXISTS "${CppUnit_LIBRARY_RELEASE}")) add_library(CppUnit UNKNOWN IMPORTED) set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS Release IMPORTED_LOCATION_RELEASE "${CppUnit_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) endif() # Manage Debug Windows static and Linux shared/static if((NOT EXISTS "${CppUnit_LIBRARY_DEBUG_DLL}") AND (EXISTS "${CppUnit_LIBRARY_DEBUG}")) if(EXISTS "${CppUnit_LIBRARY_RELEASE}") set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS "Release;Debug" IMPORTED_LOCATION_RELEASE "${CppUnit_LIBRARY_RELEASE}" IMPORTED_LOCATION_DEBUG "${CppUnit_LIBRARY_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) else() add_library(CppUnit UNKNOWN IMPORTED) set_target_properties(CppUnit PROPERTIES IMPORTED_CONFIGURATIONS Debug IMPORTED_LOCATION_DEBUG "${CppUnit_LIBRARY_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${CppUnit_INCLUDE_DIR}" ) endif() endif() set(CppUnit_FOUND TRUE) set(CPPUNIT_FOUND TRUE) ================================================ FILE: ports/cppunit/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz" FILENAME "cppunit-1.15.1.tar.gz" SHA512 0feb47faec451357bb4c4e287efa17bb60fd3ad966d5350e9f25b414aaab79e94921024b0c0497672f8d3eeb22a599213d2d71d9e1d28b243b3e37f3a9a43691 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) if(VCPKG_TARGET_IS_WINDOWS) # Use a simple CMakeLists.txt to build CppUnit on windows file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # Move EXE to 'tools' vcpkg_copy_tools(TOOL_NAMES DllPlugInTester AUTO_CLEAN) else() # Use a configure on unix. It should be doable to use the cmake, but may require some patching if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(LINKAGE_DYNAMIC yes) set(LINKAGE_STATIC no) else() set(LINKAGE_DYNAMIC no) set(LINKAGE_STATIC yes) endif() vcpkg_make_configure( SOURCE_PATH ${SOURCE_PATH} AUTORECONF OPTIONS "--enable-shared=${LINKAGE_DYNAMIC}" "--enable-static=${LINKAGE_STATIC}" "--prefix=${CURRENT_INSTALLED_DIR}" "--disable-doxygen" OPTIONS_DEBUG "--enable-debug" ) vcpkg_make_install() endif() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Install CppUnitConfig.cmake file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/CppUnitConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Cleanup file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/cppunit/vcpkg.json ================================================ { "name": "cppunit", "version": "1.15.1", "port-version": 5, "description": "Unit testing framework module for the C++ programming language", "homepage": "https://www.freedesktop.org/wiki/Software/cppunit", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake-config", "host": true, "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "!windows" } ] } ================================================ FILE: ports/cpputest/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpputest/cpputest REF "v${VERSION}" SHA512 5f7d6f9e34a462b35a0161a7486fd56074f5b07f92d029a3c57741c72df7bbc6ea4f98b1e57e9c500ad6d57c303d222afe523d59ec943f4461f67ce5be74dd77 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTESTS=OFF -DTESTS_DETALED=OFF -DTESTS_BUILD_DISCOVER=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/CppUTest/cmake ) if (EXISTS "${CURRENT_PACKAGES_DIR}/lib/CppUTest") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/CppUTest") endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/CppUTest") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/CppUTest") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(GLOB CPPUTEST_LIBS "${CURRENT_PACKAGES_DIR}/lib/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") file(COPY ${CPPUTEST_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(REMOVE ${CPPUTEST_LIBS}) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/CppUTestTargets-release.cmake" "\${_IMPORT_PREFIX}/lib/" "\${_IMPORT_PREFIX}/lib/manual-link/") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(GLOB CPPUTEST_LIBS "${CURRENT_PACKAGES_DIR}/debug/lib/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") file(COPY ${CPPUTEST_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(REMOVE ${CPPUTEST_LIBS}) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/CppUTestTargets-debug.cmake" "\${_IMPORT_PREFIX}/debug/lib/" "\${_IMPORT_PREFIX}/debug/lib/manual-link/") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cpputest/vcpkg.json ================================================ { "name": "cpputest", "version": "4.0", "description": "CppUTest unit testing and mocking framework for C/C++.", "homepage": "https://github.com/cpputest/cpputest", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppvrf/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/cppvrf REF "v${VERSION}" SHA512 518c97a06e8728e21702521aa1999589e33c1ce1f245a7efca72c9e79fa5449376b95577365aaaad95b5560f0e60241884b9406133fd92ff462423e0a81e7c8d HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() # Only take the minor and minor version from ${VERSION}. string(REGEX MATCH "^[0-9]+\\.[0-9]+" VERSION_MAJOR_MINOR "${VERSION}") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/cppvrf-${VERSION_MAJOR_MINOR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file( INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cppvrf/usage ================================================ cppvrf provides CMake targets: find_package(cppvrf CONFIG REQUIRED) target_link_libraries(main PRIVATE cppvrf::cppvrf) ================================================ FILE: ports/cppvrf/vcpkg.json ================================================ { "name": "cppvrf", "version": "1.6.0", "description": "VRF implementation library in C++20", "homepage": "https://github.com/microsoft/cppvrf", "license": "MIT", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cppwinrt/cppwinrt-config.cmake.in ================================================ get_filename_component(_cppwinrt_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_cppwinrt_root "${_cppwinrt_root}" PATH) set(_cppwinrt_exe "${_cppwinrt_root}/@tool_path@") if (EXISTS "${_cppwinrt_exe}") add_library(Microsoft::CppWinRT INTERFACE IMPORTED) set_target_properties(Microsoft::CppWinRT PROPERTIES INTERFACE_COMPILE_FEATURES cxx_std_17 INTERFACE_INCLUDE_DIRECTORIES "${_cppwinrt_root}/include" INTERFACE_LINK_LIBRARIES "${_cppwinrt_root}/lib/@lib_name@" ) set(cppwinrt_FOUND TRUE) set(CPPWINRT_TOOL ${_cppwinrt_exe}) else() set(cppwinrt_FOUND FALSE) endif() unset(_cppwinrt_root) unset(_cppwinrt_exe) ================================================ FILE: ports/cppwinrt/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.Windows.CppWinRT/${VERSION}" FILENAME "cppwinrt.${VERSION}.zip" SHA512 ADF9EC7059A58B3E0EB0057DE52900692F58305AEE8BA708D265D273A81127978BEB9BF2599B00855B61B725D4E6EB06206B66897EAEAEF1AEC83948D60BC293 ) vcpkg_extract_source_archive( src ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CPPWINRT_ARCH win32) else() set(CPPWINRT_ARCH ${VCPKG_TARGET_ARCHITECTURE}) endif() set(CPPWINRT_TOOL "${src}/bin/cppwinrt.exe") #--- Find Windows SDK Version if (NOT EXISTS "$ENV{WindowsSDKDir}/Lib/$ENV{WindowsSDKVersion}.") message(FATAL_ERROR "ERROR: Cannot locate the Windows SDK. Please define %WindowsSDKDir% and %WindowsSDKVersion%. (Expected file to exist: $ENV{WindowsSDKDir}/Lib/$ENV{WindowsSDKVersion})") endif() if (NOT EXISTS "$ENV{WindowsSDKDir}References/$ENV{WindowsSDKVersion}Windows.Foundation.FoundationContract") message(FATAL_ERROR "ERROR: The Windows SDK is too old (needs 14393 or later, found $ENV{WindowsSDKVersion}).") endif() file(TO_CMAKE_PATH "$ENV{WindowsSDKDir}References/$ENV{WindowsSDKVersion}" winsdk) file(GLOB winmds "${winsdk}/*/*/*.winmd") #--- Create response file set(args "") foreach(winmd IN LISTS winmds) string(APPEND args "-input \"${winmd}\"\n") endforeach() file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") file(WRITE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/cppwinrt.rsp" "${args}") #--- Generate headers string(REGEX MATCH "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" SDKVersion $ENV{WindowsSDKVersion}) message(STATUS "Generating headers for Windows SDK ${SDKVersion}") vcpkg_execute_required_process( COMMAND "${CPPWINRT_TOOL}" "@${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/cppwinrt.rsp" -output "${CURRENT_PACKAGES_DIR}/include" -verbose WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" LOGNAME "cppwinrt-generate-${TARGET_TRIPLET}" ) set(CPPWINRT_LIB "${src}/build/native/lib/${CPPWINRT_ARCH}/cppwinrt_fast_forwarder.lib") file(INSTALL "${CPPWINRT_LIB}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(NOT DEFINED VCPKG_BUILD_TYPE) file(INSTALL "${CPPWINRT_LIB}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${CPPWINRT_TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/cppwinrt") set(tool_path "tools/cppwinrt/cppwinrt.exe") set(lib_name "cppwinrt_fast_forwarder.lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/cppwinrt-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${src}/LICENSE") ================================================ FILE: ports/cppwinrt/usage ================================================ The C++/WinRT package provides CMake targets: find_package(cppwinrt CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::CppWinRT) The CMake variable CPPWINRT_TOOL is also set to point to the .winmd to header command-line tool. ================================================ FILE: ports/cppwinrt/vcpkg.json ================================================ { "name": "cppwinrt", "version": "2.0.250303.1", "description": "C++/WinRT is a standard C++ language projection for the Windows Runtime.", "homepage": "https://github.com/microsoft/cppwinrt", "documentation": "https://docs.microsoft.com/windows/uwp/cpp-and-winrt-apis/", "license": "MIT", "supports": "windows" } ================================================ FILE: ports/cppxaml/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO asklar/xaml-islands REF 0.0.16 SHA512 30fba1ef9264bf2eeaf0e48898c6b138adef9ee98d758ac91bcc7f2c90e50f00ec35925705347c3fc5c84b97652caeece7b3854be5b468a02e51fed23eda8007 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/inc/cppxaml" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cppxaml/vcpkg.json ================================================ { "name": "cppxaml", "version": "0.0.16", "port-version": 1, "description": "CppXaml is a library to facilitate usage of the XAML UI framework in C++ Windows apps.", "homepage": "https://asklar.github.io/xaml-islands", "license": "MIT", "supports": "windows & !xbox" } ================================================ FILE: ports/cppzmq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/cppzmq REF "v${VERSION}" SHA512 7ef3866fe0a337771be40153dd744306fa951214329670a068a0344e909b1128fabce22676561d68bed270716e6fabda53e8bcc839184565db634b38d11bdbac HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPPZMQ_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/cppzmq) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/share/${PORT}/libzmq-pkg-config") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cppzmq/vcpkg.json ================================================ { "name": "cppzmq", "version": "4.11.0", "description": "Header-only C++ binding for ZeroMQ", "homepage": "https://github.com/zeromq/cppzmq", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zeromq" ] } ================================================ FILE: ports/cpr/disable_werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 70d3296..293ce95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -379,7 +379,7 @@ if(CPR_BUILD_TESTS) restore_variable(DESTINATION CMAKE_CXX_CLANG_TIDY BACKUP CMAKE_CXX_CLANG_TIDY_BKP) endif() -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") +if (1) else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -Werror") if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") ================================================ FILE: ports/cpr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libcpr/cpr REF ${VERSION} SHA512 9907d2936f814924e82aaaf652149c119e2d9b94677efde0c80c570bc8cb50e4a36aa2520e2efb3f1fc82cba10ef61b9262705cd6e5cb49757b0c37af071ae22 HEAD_REF master PATCHES disable_werror.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl CPR_ENABLE_SSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCPR_BUILD_TESTS=OFF -DCPR_USE_SYSTEM_CURL=ON ${FEATURE_OPTIONS} # skip test for unused sanitizer flags -DTHREAD_SANITIZER_AVAILABLE=OFF -DADDRESS_SANITIZER_AVAILABLE=OFF -DLEAK_SANITIZER_AVAILABLE=OFF -DUNDEFINED_BEHAVIOUR_SANITIZER_AVAILABLE=OFF -DALL_SANITIZERS_AVAILABLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cpr) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cpr/vcpkg.json ================================================ { "name": "cpr", "version-semver": "1.14.2", "description": "C++ Requests is a simple wrapper around libcurl inspired by the excellent Python Requests project.", "homepage": "https://github.com/libcpr/cpr", "license": "MIT", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ssl" ], "features": { "ssl": { "description": "Enable SSL support", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] }, { "name": "openssl", "platform": "linux" } ] } } } ================================================ FILE: ports/cpu-features/0001-ndk-compat-export-include-dirs.patch ================================================ diff --git a/ndk_compat/CMakeLists.txt b/ndk_compat/CMakeLists.txt index 37b3866..27861b7 100644 --- a/ndk_compat/CMakeLists.txt +++ b/ndk_compat/CMakeLists.txt @@ -15,7 +15,11 @@ set (NDK_COMPAT_SRCS add_cpu_features_headers_and_sources(NDK_COMPAT_SRCS NDK_COMPAT_SRCS) add_library(ndk_compat ${NDK_COMPAT_HDRS} ${NDK_COMPAT_SRCS}) setup_include_and_definitions(ndk_compat) -target_include_directories(ndk_compat PUBLIC $) +target_include_directories(ndk_compat + PUBLIC + $ + $ +) target_link_libraries(ndk_compat PUBLIC ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) set_target_properties(ndk_compat PROPERTIES PUBLIC_HEADER "${NDK_COMPAT_HDRS}") ================================================ FILE: ports/cpu-features/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/cpu_features REF "v${VERSION}" SHA512 40c314c584fcf109d9a641c055cb75f335fd5425dd336fe831828b956226eaf0ac2fd8ffceeaf10e02afa9cec01cb0ddc6af8ff78f20dd925783e6958d0b9304 HEAD_REF master PATCHES 0001-ndk-compat-export-include-dirs.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_EXECUTABLE ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_ANDROID) vcpkg_cmake_config_fixup(PACKAGE_NAME "CpuFeatures" CONFIG_PATH "lib/cmake/CpuFeatures" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME "CpuFeaturesNdkCompat" CONFIG_PATH "lib/cmake/CpuFeaturesNdkCompat") else() vcpkg_cmake_config_fixup(PACKAGE_NAME "CpuFeatures" CONFIG_PATH "lib/cmake/CpuFeatures") endif() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES "list_cpu_features" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if(VCPKG_TARGET_IS_ANDROID) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage_android" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "usage") else() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() ================================================ FILE: ports/cpu-features/usage ================================================ cpu-features provides CMake targets: find_package(CpuFeatures CONFIG REQUIRED) target_link_libraries(main PRIVATE CpuFeatures::cpu_features) ================================================ FILE: ports/cpu-features/usage_android ================================================ cpu-features provides CMake targets: find_package(CpuFeatures CONFIG REQUIRED) target_link_libraries(main PRIVATE CpuFeatures::cpu_features) find_package(CpuFeaturesNdkCompat CONFIG REQUIRED) target_link_libraries(main PRIVATE CpuFeatures::ndk_compat) ================================================ FILE: ports/cpu-features/vcpkg.json ================================================ { "name": "cpu-features", "version": "0.10.1", "port-version": 1, "description": "A cross-platform C library to retrieve CPU features (such as available instructions) at runtime", "homepage": "https://github.com/google/cpu_features", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "list_cpu_features command line tool" } } } ================================================ FILE: ports/cpuid/fix-LNK2019.patch ================================================ diff --git a/libcpuid/CMakeLists.txt b/libcpuid/CMakeLists.txt index 09189ef..fa3f6ff 100644 --- a/libcpuid/CMakeLists.txt +++ b/libcpuid/CMakeLists.txt @@ -21,7 +21,7 @@ if(UNIX) add_compile_definitions(_GNU_SOURCE) endif(UNIX) -if("${MSVC_CXX_ARCHITECTURE_ID}" MATCHES "x64") +if(MSVC AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|x64") list(APPEND cpuid_sources masm-x64.asm) endif() ================================================ FILE: ports/cpuid/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f5ff50..3d62dba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,6 @@ endif(UNIX) # Include subdirectories add_subdirectory(libcpuid) -add_subdirectory(cpuid_tool) if(LIBCPUID_BUILD_DRIVERS) add_subdirectory(drivers) endif(LIBCPUID_BUILD_DRIVERS) ================================================ FILE: ports/cpuid/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO anrieff/libcpuid REF "v${VERSION}" SHA512 6b642418bef40848fa0b61a6798c90121e1d31dceee815946bde621e01f50a8353d4cd22bce864af080e4342e036bab9bfe1f61f99083620885f9e252ce11895 HEAD_REF master PATCHES fix-build.patch fix-LNK2019.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBCPUID_ENABLE_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cpuid) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/cpuid/vcpkg.json ================================================ { "name": "cpuid", "version": "0.8.1", "description": "Provides CPU identification for the x86 (and x86_64)", "homepage": "https://github.com/anrieff/libcpuid", "license": "MIT", "supports": "!uwp & !(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cpuinfo/add-clog-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b260162..d63e180 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -929,3 +929,7 @@ IF(CPUINFO_BUILD_PKG_CONFIG) DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ENDIF() + +IF(CPUINFO_BUILD_CLOG) +add_subdirectory(deps/clog) +ENDIF() \ No newline at end of file ================================================ FILE: ports/cpuinfo/portfile.cmake ================================================ # On Windows, we can get a cpuinfo.dll, but it exports no symbols. if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/cpuinfo REF 877328f188a3c7d1fa855871a278eb48d530c4c0 SHA512 b6d5a9ce9996eee3b2f09f39115f7ae178fe4d4814cc35b049a59d04a82228e268aa52d073c307ccb56a427428622940e1c77f004c99851dfca0d3a5d803658b HEAD_REF master PATCHES add-clog-cmake.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools CPUINFO_BUILD_TOOLS clog CPUINFO_BUILD_CLOG ) set(LINK_OPTIONS "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=shared) else() list(APPEND LINK_OPTIONS -DCPUINFO_LIBRARY_TYPE=static) endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=shared) else() list(APPEND LINK_OPTIONS -DCPUINFO_RUNTIME_TYPE=static) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${LINK_OPTIONS} -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DCLOG_BUILD_TESTS=OFF OPTIONS_DEBUG -DCPUINFO_LOG_LEVEL=debug OPTIONS_RELEASE -DCPUINFO_LOG_LEVEL=default MAYBE_UNUSED_VARIABLES CLOG_BUILD_TESTS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # pkg_check_modules(libcpuinfo) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if("tools" IN_LIST FEATURES) set(additional_tools "") if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/cpuid-dump${VCPKG_TARGET_EXECUTABLE_SUFFIX}") list(APPEND additional_tools "cpuid-dump") endif() vcpkg_copy_tools( TOOL_NAMES cache-info cpu-info isa-info ${additional_tools} AUTO_CLEAN ) endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cpuinfo/vcpkg.json ================================================ { "name": "cpuinfo", "version-date": "2025-09-06", "description": "CPU INFOrmation library (x86/x86-64/ARM/ARM64, Linux/Windows/Android/macOS/iOS)", "homepage": "https://github.com/pytorch/cpuinfo", "license": "BSD-2-Clause", "supports": "!(uwp & arm32)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "clog": { "description": "Build clog support", "supports": "!uwp" }, "tools": { "description": "Build cpuinfo command-line tools", "supports": "!uwp" } } } ================================================ FILE: ports/cr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fungos/cr REF 66b76e24611c3b87566e5365e8c422387bc85916 SHA512 002162461ecf131d717f7567cf13ee1345b7b359bb17c0801f4246c472c1b180f4f8937e9a3f4c186d95c41c20ffcc5ba5e953f197f344fb1000f51d8c4ee473 HEAD_REF master ) file( COPY ${SOURCE_PATH}/cr.h DESTINATION ${CURRENT_PACKAGES_DIR}/include ) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/cr/vcpkg.json ================================================ { "name": "cr", "version-date": "2020-04-26", "port-version": 2, "description": "cr.h: A Simple C Hot Reload Header-only Library", "homepage": "https://fungos.github.io/cr-simple-c-hot-reload/" } ================================================ FILE: ports/crashpad/crashpad-memset-errors-5758170.diff ================================================ From 575817027d03ecce3c5d9ee0991a04e00babae3b Mon Sep 17 00:00:00 2001 From: Victor Hugo Vianna Silva Date: Wed, 17 Dec 2025 22:33:24 +0000 Subject: [PATCH] Fix C++23 build errors in crashpad Bug: 388070065 Change-Id: Iaa150463bcae34db0f3ea022cd25df3035112704 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7270947 Reviewed-by: Joshua Peraza Commit-Queue: Victor Vianna --- diff --git a/util/linux/socket_test.cc b/util/linux/socket_test.cc index 3e84aaa..8e75318 100644 --- a/util/linux/socket_test.cc +++ b/util/linux/socket_test.cc @@ -124,7 +124,7 @@ for (size_t index = 0; index < UnixCredentialSocket::kMaxSendRecvMsgFDs; ++index) { recv_fds[index].reset(); - char c; + char c = 0; EXPECT_EQ( HANDLE_EINTR(send(send_fds[index].get(), &c, sizeof(c), MSG_NOSIGNAL)), -1); diff --git a/util/linux/thread_info.cc b/util/linux/thread_info.cc index 77ffb06..4cff830 100644 --- a/util/linux/thread_info.cc +++ b/util/linux/thread_info.cc @@ -19,13 +19,13 @@ namespace crashpad { ThreadContext::ThreadContext() { - memset(this, 0, sizeof(*this)); + memset(static_cast(this), 0, sizeof(*this)); } ThreadContext::~ThreadContext() {} FloatContext::FloatContext() { - memset(this, 0, sizeof(*this)); + memset(static_cast(this), 0, sizeof(*this)); } FloatContext::~FloatContext() {} ================================================ FILE: ports/crashpad/crashpadConfig.cmake.in ================================================ # Compute the installation prefix relative to this file. 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() include(CMakeFindDependencyMacro) find_dependency(ZLIB) if(NOT TARGET crashpad::crashpad) add_library(crashpad::crashpad INTERFACE IMPORTED) target_include_directories(crashpad::crashpad INTERFACE "${_IMPORT_PREFIX}/include/crashpad" "${_IMPORT_PREFIX}/include") set(_libs vcpkg_crashpad_client vcpkg_crashpad_client_common vcpkg_crashpad_util vcpkg_crashpad_base) if(APPLE) list(APPEND _libs mig_output) endif() include(SelectLibraryConfigurations) foreach(_lib IN LISTS _libs) find_library(CRASHPAD_${_lib}_LIBRARY_RELEASE NAMES ${_lib} PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(CRASHPAD_${_lib}_LIBRARY_DEBUG NAMES ${_lib} PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(CRASHPAD_${_lib}) target_link_libraries(crashpad::crashpad INTERFACE ${CRASHPAD_${_lib}_LIBRARIES}) endforeach() if(WIN32) target_compile_definitions(crashpad::crashpad INTERFACE NOMINMAX) elseif(APPLE) foreach(_lib IN ITEMS ApplicationServices CoreFoundation Foundation IOKit Security bsm) find_library(CRASHPAD_${_lib}_LIBRARY NAMES ${_lib}) target_link_libraries(crashpad::crashpad INTERFACE ${CRASHPAD_${_lib}_LIBRARY}) endforeach() elseif(ANDROID) target_link_libraries(crashpad::crashpad INTERFACE log) endif() target_link_libraries(crashpad::crashpad INTERFACE ZLIB::ZLIB) if(NOT TARGET crashpad) add_library(crashpad ALIAS crashpad::crashpad) endif() unset(_lib) unset(_libs) endif() ================================================ FILE: ports/crashpad/fix-lib-name-conflict-1.patch ================================================ diff --git a/base/BUILD.gn b/base/BUILD.gn index 0bcf519..c637f2b 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -5,6 +5,7 @@ import("../build/platform.gni") static_library("base") { + output_name = "vcpkg_crashpad_base" sources = [ "atomicops.h", "atomicops_internals_atomicword_compat.h", ================================================ FILE: ports/crashpad/fix-lib-name-conflict.patch ================================================ diff --git a/client/BUILD.gn b/client/BUILD.gn index bd150ab..5cbf469 100644 --- a/client/BUILD.gn +++ b/client/BUILD.gn @@ -15,6 +15,7 @@ import("../build/crashpad_buildconfig.gni") crashpad_static_library("client") { + output_name = "vcpkg_crashpad_client" sources = [ "crashpad_client.h", "prune_crash_reports.cc", @@ -114,6 +115,7 @@ crashpad_static_library("client") { } static_library("common") { + output_name = "vcpkg_crashpad_client_common" sources = [ "annotation.cc", "annotation.h", diff --git a/handler/BUILD.gn b/handler/BUILD.gn index a2d6f7f..70a997e 100644 --- a/handler/BUILD.gn +++ b/handler/BUILD.gn @@ -94,6 +94,7 @@ if (crashpad_is_android) { } static_library("common") { + output_name = "vcpkg_crashpad_handler_common" sources = [ "crash_report_upload_thread.cc", "crash_report_upload_thread.h", diff --git a/util/BUILD.gn b/util/BUILD.gn index e7ff4a8..9efcb41 100644 --- a/util/BUILD.gn +++ b/util/BUILD.gn @@ -167,6 +167,7 @@ if (crashpad_is_win) { } crashpad_static_library("util") { + output_name = "vcpkg_crashpad_util" sources = [ "file/delimited_file_reader.cc", "file/delimited_file_reader.h", ================================================ FILE: ports/crashpad/fix-linux.patch ================================================ diff --git a/util/misc/uuid.cc b/util/misc/uuid.cc index 3013d7b..4cc135f 100644 --- a/util/misc/uuid.cc +++ b/util/misc/uuid.cc @@ -41,7 +41,8 @@ namespace crashpad { static_assert(sizeof(UUID) == 16, "UUID must be 16 bytes"); -static_assert(std::is_pod::value, "UUID must be POD"); +static_assert(std::is_standard_layout::value, "UUID must be a standard-layout type"); +static_assert(std::is_trivial::value, "UUID must be a trivial type"); bool UUID::operator==(const UUID& that) const { return memcmp(this, &that, sizeof(*this)) == 0; ================================================ FILE: ports/crashpad/fix-std-20.patch ================================================ diff --git a/base/atomicops_internals_portable.h b/base/atomicops_internals_portable.h index 2486fb7..88e2d2d 100644 --- a/base/atomicops_internals_portable.h +++ b/base/atomicops_internals_portable.h @@ -51,13 +51,7 @@ static_assert(sizeof(*(AtomicLocation32) nullptr) == sizeof(Atomic32), "incompatible 32-bit atomic layout"); inline void MemoryBarrier() { -#if defined(__GLIBCXX__) - // Work around libstdc++ bug 51038 where atomic_thread_fence was declared but - // not defined, leading to the linker complaining about undefined references. - __atomic_thread_fence(std::memory_order_seq_cst); -#else std::atomic_thread_fence(std::memory_order_seq_cst); -#endif } inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, ================================================ FILE: ports/crashpad/ndk-toolchain.diff ================================================ diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 0802be8..dd77285 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn @@ -425,7 +425,7 @@ toolchain("gcc_like_toolchain") { ]) if (target_cpu == "arm") { - tool_prefix = "arm-linux-androideabi" + # unused } else if (target_cpu == "arm64") { tool_prefix = "aarch64-linux-android" } else if (target_cpu == "x86") { @@ -446,7 +446,7 @@ toolchain("gcc_like_toolchain") { cxx = ndk_bin_dir + clang_prefix + "-clang++" asm = cxx ld = cxx - ar = ndk_bin_dir + tool_prefix + "-ar" + ar = ndk_bin_dir + "llvm-ar" } else { cc = "clang" cxx = "clang++" ================================================ FILE: ports/crashpad/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://chromium.googlesource.com/crashpad/crashpad REF 7e0af1d4d45b526f01677e74a56f4a951b70517d PATCHES fix-linux.patch fix-lib-name-conflict.patch crashpad-memset-errors-5758170.diff # https://chromium-review.googlesource.com/c/crashpad/crashpad/+/7270947 ) vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages(OUT_PYTHON_VAR PYTHON3 PYTHON_EXECUTABLE "${PYTHON3}" PYTHON_VERSION "3" PACKAGES setuptools ) vcpkg_replace_string("${SOURCE_PATH}/.gn" "script_executable = \"python3\"" "script_executable = \"${PYTHON3}\"") # mini_chromium contains the toolchains and build configuration if(NOT EXISTS "${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/BUILD.gn") vcpkg_from_git(OUT_SOURCE_PATH mini_chromium URL "https://chromium.googlesource.com/chromium/mini_chromium" REF dce72d97d1c2e9beb5e206c6a05a702269794ca3 PATCHES fix-std-20.patch ndk-toolchain.diff fix-lib-name-conflict-1.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/mini_chromium/mini_chromium") file(RENAME "${mini_chromium}" "${SOURCE_PATH}/third_party/mini_chromium/mini_chromium") endif() if(NOT EXISTS "${SOURCE_PATH}/third_party/lss/lss/BUILD.gn" AND (VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_LINUX)) vcpkg_from_git(OUT_SOURCE_PATH lss URL https://chromium.googlesource.com/linux-syscall-support REF 9719c1e1e676814c456b55f5f070eabad6709d31 ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/lss/lss") file(RENAME "${lss}" "${SOURCE_PATH}/third_party/lss/lss") endif() function(replace_gn_dependency INPUT_FILE OUTPUT_FILE LIBRARY_NAMES) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") unset(_LIBRARY_DEB CACHE) find_library(_LIBRARY_DEB NAMES ${LIBRARY_NAMES} PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) if(_LIBRARY_DEB MATCHES "-NOTFOUND") message(FATAL_ERROR "Could not find debug library with names: ${LIBRARY_NAMES}") endif() endif() unset(_LIBRARY_REL CACHE) find_library(_LIBRARY_REL NAMES ${LIBRARY_NAMES} PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) if(_LIBRARY_REL MATCHES "-NOTFOUND") message(FATAL_ERROR "Could not find library with names: ${LIBRARY_NAMES}") endif() if(VCPKG_BUILD_TYPE STREQUAL "release") set(_LIBRARY_DEB ${_LIBRARY_REL}) endif() set(_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include") file(REMOVE "${OUTPUT_FILE}") configure_file("${INPUT_FILE}" "${OUTPUT_FILE}" @ONLY) endfunction() replace_gn_dependency( "${CMAKE_CURRENT_LIST_DIR}/zlib.gn" "${SOURCE_PATH}/third_party/zlib/BUILD.gn" "z;zlib;zlibd" ) set(OPTIONS "target_cpu=\"${VCPKG_TARGET_ARCHITECTURE}\"") set(OPTIONS_DBG "is_debug=true") set(OPTIONS_REL "") if(VCPKG_TARGET_IS_ANDROID) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") string(APPEND OPTIONS " target_os=\"android\" android_ndk_root=\"${VCPKG_DETECTED_CMAKE_ANDROID_NDK}\"") elseif(VCPKG_TARGET_IS_LINUX) string(APPEND OPTIONS " target_os=\"linux\"") elseif(VCPKG_TARGET_IS_OSX) string(APPEND OPTIONS " target_os=\"mac\"") elseif(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) string(APPEND OPTIONS " target_os=\"win\"") # Load toolchains vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") set(OPTIONS_DBG "${OPTIONS_DBG} \ extra_cflags_c=\"${VCPKG_COMBINED_C_FLAGS_DEBUG}\" \ extra_cflags_cc=\"${VCPKG_COMBINED_CXX_FLAGS_DEBUG}\" \ extra_ldflags=\"${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}\" \ extra_arflags=\"${VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG}\"") set(OPTIONS_REL "${OPTIONS_REL} \ extra_cflags_c=\"${VCPKG_COMBINED_C_FLAGS_RELEASE}\" \ extra_cflags_cc=\"${VCPKG_COMBINED_CXX_FLAGS_RELEASE}\" \ extra_ldflags=\"${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE}\" \ extra_arflags=\"${VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE}\"") set(DISABLE_WHOLE_PROGRAM_OPTIMIZATION "\ extra_cflags=\"/GL-\" \ extra_ldflags=\"/LTCG:OFF\" \ extra_arflags=\"/LTCG:OFF\"") set(OPTIONS_DBG "${OPTIONS_DBG} ${DISABLE_WHOLE_PROGRAM_OPTIMIZATION}") set(OPTIONS_REL "${OPTIONS_REL} ${DISABLE_WHOLE_PROGRAM_OPTIMIZATION}") endif() vcpkg_gn_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "${OPTIONS}" OPTIONS_DEBUG "${OPTIONS_DBG}" OPTIONS_RELEASE "${OPTIONS_REL}" ) vcpkg_gn_install( SOURCE_PATH "${SOURCE_PATH}" TARGETS client client:common util third_party/mini_chromium/mini_chromium/base handler:crashpad_handler ) message(STATUS "Installing headers...") set(PACKAGES_INCLUDE_DIR "${CURRENT_PACKAGES_DIR}/include/${PORT}") function(install_headers DIR) file(COPY "${DIR}" DESTINATION "${PACKAGES_INCLUDE_DIR}" FILES_MATCHING PATTERN "*.h") endfunction() install_headers("${SOURCE_PATH}/client") install_headers("${SOURCE_PATH}/util") install_headers("${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/base") install_headers("${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/build") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen/build/chromeos_buildflags.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/build") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen/build/chromeos_buildflags.h.flags" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/build") # On Windows/MSVC, mirror headers into the root include directory so MSBuild integration # (which adds only /include) can resolve un-namespaced includes like # "client/..." and "base/...". if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) message(STATUS "Mirroring headers into include root for MSBuild consumption...") file(COPY "${SOURCE_PATH}/client" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(COPY "${SOURCE_PATH}/util" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(COPY "${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/base" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(COPY "${SOURCE_PATH}/third_party/mini_chromium/mini_chromium/build" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen/build/chromeos_buildflags.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/build") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen/build/chromeos_buildflags.h.flags" DESTINATION "${CURRENT_PACKAGES_DIR}/include/build") endif() if(VCPKG_TARGET_IS_OSX) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/obj/util/libmig_output.a" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/obj/util/libmig_output.a" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() vcpkg_copy_tools( TOOL_NAMES crashpad_handler SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools") if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) file(CHMOD "${CURRENT_PACKAGES_DIR}/tools/crashpad_handler" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() # remove empty directories file(REMOVE_RECURSE "${PACKAGES_INCLUDE_DIR}/util/net/testdata" "${PACKAGES_INCLUDE_DIR}/build/ios") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/util/net/testdata" "${CURRENT_PACKAGES_DIR}/include/build/ios") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/crashpadConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/crashpadConfig.cmake" @ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${PORT}/build/config") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${PORT}/util/mach/__pycache__") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # Remove empty directory created under the mirrored root include file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/build/config") endif() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/crashpad/vcpkg.json ================================================ { "name": "crashpad", "version-date": "2024-04-11", "port-version": 10, "description": [ "Crashpad is a crash-reporting system.", "Crashpad is a library for capturing, storing and transmitting postmortem crash reports from a client to an upstream collection server. Crashpad aims to make it possible for clients to capture process state at the time of crash with the best possible fidelity and coverage, with the minimum of fuss." ], "homepage": "https://chromium.googlesource.com/crashpad/crashpad/+/master/README.md", "license": "Apache-2.0", "supports": "android | linux | osx | (windows & !uwp)", "dependencies": [ { "name": "curl", "default-features": false, "platform": "linux" }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-gn", "host": true }, { "name": "vcpkg-tool-gn", "host": true }, "zlib" ] } ================================================ FILE: ports/crashpad/zlib.gn ================================================ import("../../build/crashpad_buildconfig.gni") config("zlib_config") { defines = [ "CRASHPAD_ZLIB_SOURCE_EXTERNAL" ] include_dirs = [ "@_INCLUDE_DIR@" ] } source_set("zlib") { public_configs = [ ":zlib_config" ] if(is_debug) { libs = [ "@_LIBRARY_DEB@" ] } else { libs = [ "@_LIBRARY_REL@" ] } } ================================================ FILE: ports/crashrpt/001-add-install-target-and-find-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 44d7df0..ed9e3d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,9 @@ set (CRASHRPT_VER 1403) # Build options option(CRASHRPT_BUILD_SHARED_LIBS "If set (default), CrashRpt modules are built as dynamic-link libraries, otherwise as static libs." ON) option(CRASHRPT_LINK_CRT_AS_DLL "If set (default), CrashRpt modules link C run-time (CRT) as multi-threaded dynamic libraries, otherwise as multi-threaded static libs." ON) +option(CRASHRPT_BUILD_PROBE "If set (default), CrashRpt builds the CrashRptProbe project." ON) +option(CRASHRPT_BUILD_DEMOS "If set (default), CrashRpt builds the demo projects." ON) +option(CRASHRPT_BUILD_TESTS "If set (default), CrashRpt builds the test projects." ON) # Set output directory for executable files if(CMAKE_CL_64) @@ -94,19 +97,65 @@ macro(fix_default_compiler_settings_) endmacro() +find_package(ZLIB REQUIRED) +find_package(PNG REQUIRED) +find_package(Ogg REQUIRED) +find_package(JPEG REQUIRED) + +find_library(THEORA_LIBRARY theora) +if(NOT THEORA_LIBRARY) + message(FATAL_ERROR "theora library not found") +endif() + +find_path(THEORA_INCLUDE_DIR theora/theora.h) +if(NOT THEORA_INCLUDE_DIR) + message(FATAL_ERROR "theora include dir not found") +endif() + +find_library(TINYXML_LIBRARY NAMES tinyxml) +if(NOT TINYXML_LIBRARY) + message(FATAL_ERROR "tinyxml library not found") +endif() + +find_path(TINYXML_INCLUDE_DIR tinyxml.h) +if(NOT TINYXML_INCLUDE_DIR) + message(FATAL_ERROR "tinyxml include dir not found") +endif() + +find_path(WTL_INCLUDE_DIR wtl/atlapp.h) +if(NOT WTL_INCLUDE_DIR) + message(FATAL_ERROR "WTL include dir not found") +endif() + +find_library(DBGHELP_LIBRARY dbghelp) +if(NOT DBGHELP_LIBRARY) + message(FATAL_ERROR "dbghelp library not found") +endif() + +find_path(DBGHELP_INCLUDE_DIR dbghelp.h) +if(NOT DBGHELP_INCLUDE_DIR) + message(FATAL_ERROR "dbghelp include dir not found") +endif() + # Other CMakeLists are located in project subdirectories +if(CRASHRPT_BUILD_DEMOS) add_subdirectory("demos/ConsoleDemo") add_subdirectory("demos/WTLDemo") add_subdirectory("demos/MFCDemo") +endif() add_subdirectory("reporting/crashrpt") add_subdirectory("reporting/crashsender") +if(CRASHRPT_BUILD_PROBE) add_subdirectory("processing/crashrptprobe") add_subdirectory("processing/crprober") +endif() +if(CRASHRPT_BUILD_TESTS) add_subdirectory("tests") +endif() # Set output directory for LIB files if(CMAKE_CL_64) @@ -117,13 +166,13 @@ else(CMAKE_CL_64) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/thirdparty/lib) endif(CMAKE_CL_64) -add_subdirectory("thirdparty/tinyxml") -add_subdirectory("thirdparty/jpeg") -add_subdirectory("thirdparty/libpng") +#add_subdirectory("thirdparty/tinyxml") +#add_subdirectory("thirdparty/jpeg") +#add_subdirectory("thirdparty/libpng") add_subdirectory("thirdparty/minizip") -add_subdirectory("thirdparty/zlib") -add_subdirectory("thirdparty/libogg") -add_subdirectory("thirdparty/libtheora") +#add_subdirectory("thirdparty/zlib") +#add_subdirectory("thirdparty/libogg") +#add_subdirectory("thirdparty/libtheora") diff --git a/demos/ConsoleDemo/CMakeLists.txt b/demos/ConsoleDemo/CMakeLists.txt index e47ef4c..4df7b12 100644 --- a/demos/ConsoleDemo/CMakeLists.txt +++ b/demos/ConsoleDemo/CMakeLists.txt @@ -12,12 +12,12 @@ fix_default_compiler_settings_() # Add include dir include_directories(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/reporting/CrashRpt - ${CMAKE_SOURCE_DIR}/thirdparty/wtl - ${CMAKE_SOURCE_DIR}/thirdparty/zlib + ${WTL_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/thirdparty/minizip - ${CMAKE_SOURCE_DIR}/thirdparty/jpeg - ${CMAKE_SOURCE_DIR}/thirdparty/libpng - ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml ) + ${JPEG_INCLUDE_DIR} + ${PNG_INCLUDE_DIRS} + ${TINYXML_INCLUDE_DIR} ) # Add executable build target add_executable(ConsoleDemo ${source_files} ${header_files}) @@ -26,3 +26,7 @@ add_executable(ConsoleDemo ${source_files} ${header_files}) target_link_libraries(ConsoleDemo CrashRpt) set_target_properties(ConsoleDemo PROPERTIES DEBUG_POSTFIX d ) + +install(TARGETS ConsoleDemo + RUNTIME DESTINATION tools/crashrpt +) diff --git a/demos/MFCDemo/CMakeLists.txt b/demos/MFCDemo/CMakeLists.txt index a250ecc..ade93cb 100644 --- a/demos/MFCDemo/CMakeLists.txt +++ b/demos/MFCDemo/CMakeLists.txt @@ -44,7 +44,7 @@ if(CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET WTLDemo POST_BUILD - COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" + #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\\crashrpt_lang.ini\"" @@ -53,9 +53,13 @@ else(CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET WTLDemo POST_BUILD - COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\"" + #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\crashrpt_lang.ini\"" ) -endif(CMAKE_CL_64) \ No newline at end of file +endif(CMAKE_CL_64) + +install(TARGETS MFCDemo + RUNTIME DESTINATION tools/crashrpt +) diff --git a/demos/WTLDemo/AboutDlg.h b/demos/WTLDemo/AboutDlg.h index 83eaac0..e96d1c2 100644 --- a/demos/WTLDemo/AboutDlg.h +++ b/demos/WTLDemo/AboutDlg.h @@ -33,7 +33,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #pragma once #include "stdafx.h" #include -#include +#include #include "CrashRpt.h" class CAboutDlg : public CDialogImpl diff --git a/demos/WTLDemo/CMakeLists.txt b/demos/WTLDemo/CMakeLists.txt index 40aaefb..42c0f5a 100644 --- a/demos/WTLDemo/CMakeLists.txt +++ b/demos/WTLDemo/CMakeLists.txt @@ -19,7 +19,7 @@ fix_default_compiler_settings_() # Add include dir include_directories(${CMAKE_SOURCE_DIR}/include - ${CMAKE_SOURCE_DIR}/thirdparty/wtl) + ${WTL_INCLUDE_DIR}) # Add executable build target add_executable(WTLDemo WIN32 ${source_files} ${header_files}) @@ -36,7 +36,7 @@ if(CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET WTLDemo POST_BUILD - COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" + #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\\x64\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\x64\\crashrpt_lang.ini\"" @@ -45,9 +45,13 @@ else(CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET WTLDemo POST_BUILD - COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\"" + #COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/bin\\dbghelp.dll\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.ini\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/demos/WTLDemo\\dummy.log\" \"${CMAKE_BINARY_DIR}/bin\"" COMMAND copy ARGS "\"${CMAKE_SOURCE_DIR}/lang_files\\crashrpt_lang_EN.ini\" \"${CMAKE_BINARY_DIR}/bin\\crashrpt_lang.ini\"" ) -endif(CMAKE_CL_64) \ No newline at end of file +endif(CMAKE_CL_64) + +install(TARGETS WTLDemo + RUNTIME DESTINATION tools/crashrpt +) diff --git a/demos/WTLDemo/DocumentDlg.h b/demos/WTLDemo/DocumentDlg.h index afce8fe..9b47728 100644 --- a/demos/WTLDemo/DocumentDlg.h +++ b/demos/WTLDemo/DocumentDlg.h @@ -33,7 +33,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #pragma once #include "stdafx.h" #include -#include +#include #include "CrashRpt.h" class CDocumentDlg : public CDialogImpl diff --git a/demos/WTLDemo/WTLDemo.rc b/demos/WTLDemo/WTLDemo.rc index c651841..71f4b39 100644 --- a/demos/WTLDemo/WTLDemo.rc +++ b/demos/WTLDemo/WTLDemo.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "atlres.h" +#include "wtl/atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -32,7 +32,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""atlres.h""\r\n" + "#include ""wtl/atlres.h""\r\n" "\0" END diff --git a/demos/WTLDemo/stdafx.h b/demos/WTLDemo/stdafx.h index a601446..658d9e5 100644 --- a/demos/WTLDemo/stdafx.h +++ b/demos/WTLDemo/stdafx.h @@ -16,10 +16,10 @@ be found in the Authors.txt file in the root of the source tree. #pragma once // Change these values to use different versions -#define WINVER 0x0500 +#define WINVER 0x0501 #define _WIN32_WINNT 0x0501 -#define _WIN32_IE 0x0501 -#define _RICHEDIT_VER 0x0200 +#define _WIN32_IE 0x0600 +#define _RICHEDIT_VER 0x0300 #include #if ( _ATL_VER < 0x0800 ) @@ -52,18 +52,18 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include -#include -#include -#include +#include +#include +#include #define _WTL_USE_CSTRING -#include +#include #if _MSC_VER>=1400 #if defined _M_IX86 diff --git a/processing/crashrptprobe/CMakeLists.txt b/processing/crashrptprobe/CMakeLists.txt index a6c692a..c513c6d 100644 --- a/processing/crashrptprobe/CMakeLists.txt +++ b/processing/crashrptprobe/CMakeLists.txt @@ -21,11 +21,11 @@ fix_default_compiler_settings_() include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/reporting/crashrpt ${CMAKE_SOURCE_DIR}/reporting/crashsender - ${CMAKE_SOURCE_DIR}/thirdparty/wtl - ${CMAKE_SOURCE_DIR}/thirdparty/zlib + ${WTL_INCLUDE_DIR} + ${ZLIB_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/thirdparty/minizip - ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml - ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/include) + ${TINYXML_INCLUDE_DIR} + ${DBGHELP_INCLUDE_DIR}) # Add library build target if(CRASHRPT_BUILD_SHARED_LIBS) @@ -34,15 +34,15 @@ else(CRASHRPT_BUILD_SHARED_LIBS) add_library(CrashRptProbe STATIC ${source_files} ${header_files}) endif(CRASHRPT_BUILD_SHARED_LIBS) -if(CMAKE_CL_64) - link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 ) - target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64/dbghelp.lib) -else(CMAKE_CL_64) - link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib ) - target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/dbghelp.lib) -endif(CMAKE_CL_64) +#if(CMAKE_CL_64) +# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 ) +# target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64/dbghelp.lib) +#else(CMAKE_CL_64) +# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib ) +# target_link_libraries(CrashRptProbe ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/dbghelp.lib) +#endif(CMAKE_CL_64) -target_link_libraries(CrashRptProbe zlib minizip tinyxml Rpcrt4.lib shell32.lib gdi32.lib version.lib psapi.lib) +target_link_libraries(CrashRptProbe ZLIB::ZLIB minizip ${TINYXML_LIBRARY} ${DBGHELP_LIBRARY} Rpcrt4.lib shell32.lib gdi32.lib version.lib psapi.lib) if(CRASHRPT_BUILD_SHARED_LIBS) @@ -58,4 +58,11 @@ else(CRASHRPT_BUILD_SHARED_LIBS) endif(CRASHRPT_BUILD_SHARED_LIBS) +set_target_properties(CrashRptProbe PROPERTIES PUBLIC_HEADER ${CMAKE_SOURCE_DIR}/include/CrashRptProbe.h) +INSTALL(TARGETS CrashRptProbe + PUBLIC_HEADER DESTINATION include/crashrpt + LIBRARY + ARCHIVE + RUNTIME +) diff --git a/processing/crashrptprobe/CrashRptProbe.rc b/processing/crashrptprobe/CrashRptProbe.rc index a08f63e..e12b8e9 100644 --- a/processing/crashrptprobe/CrashRptProbe.rc +++ b/processing/crashrptprobe/CrashRptProbe.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "atlres.h" +#include "wtl/atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -32,7 +32,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""atlres.h""\r\n" + "#include ""wtl/atlres.h""\r\n" "\0" END diff --git a/processing/crashrptprobe/stdafx.h b/processing/crashrptprobe/stdafx.h index 2b027b2..0b60659 100644 --- a/processing/crashrptprobe/stdafx.h +++ b/processing/crashrptprobe/stdafx.h @@ -70,13 +70,13 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include // CString-related includes #define _WTL_USE_CSTRING -#include +#include #if _MSC_VER<1400 #define WCSNCPY_S(strDest, sizeInBytes, strSource, count) wcsncpy(strDest, strSource, count) diff --git a/processing/crprober/CMakeLists.txt b/processing/crprober/CMakeLists.txt index 046ba57..255e200 100644 --- a/processing/crprober/CMakeLists.txt +++ b/processing/crprober/CMakeLists.txt @@ -18,4 +18,8 @@ add_executable(crprober ${source_files} ${header_files}) # Add input link libraries target_link_libraries(crprober CrashRptProbe) -set_target_properties(crprober PROPERTIES DEBUG_POSTFIX d ) \ No newline at end of file +set_target_properties(crprober PROPERTIES DEBUG_POSTFIX d ) + +install(TARGETS crprober + RUNTIME DESTINATION tools/crashrpt +) diff --git a/reporting/crashrpt/CMakeLists.txt b/reporting/crashrpt/CMakeLists.txt index 42d40e2..c7e4fd6 100644 --- a/reporting/crashrpt/CMakeLists.txt +++ b/reporting/crashrpt/CMakeLists.txt @@ -18,7 +18,7 @@ add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE) fix_default_compiler_settings_() # Add include dir -include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/thirdparty/wtl) +include_directories( ${CMAKE_SOURCE_DIR}/include ${WTL_INCLUDE_DIR}) # Add library build target if(CRASHRPT_BUILD_SHARED_LIBS) @@ -55,3 +55,11 @@ else(CRASHRPT_BUILD_SHARED_LIBS) RELEASE_POSTFIX LIB ) endif(CRASHRPT_BUILD_SHARED_LIBS) +set_target_properties(CrashRpt PROPERTIES PUBLIC_HEADER ${CMAKE_SOURCE_DIR}/include/CrashRpt.h) + +INSTALL(TARGETS CrashRpt + PUBLIC_HEADER DESTINATION include/crashrpt + LIBRARY + ARCHIVE + RUNTIME +) diff --git a/reporting/crashrpt/CrashRpt.rc b/reporting/crashrpt/CrashRpt.rc index 95e7502..a8c821b 100644 --- a/reporting/crashrpt/CrashRpt.rc +++ b/reporting/crashrpt/CrashRpt.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "atlres.h" +#include "wtl/atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -32,7 +32,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""atlres.h""\r\n" + "#include ""wtl/atlres.h""\r\n" "\0" END diff --git a/reporting/crashrpt/StdAfx.h b/reporting/crashrpt/StdAfx.h index 77d8c36..13bbe50 100644 --- a/reporting/crashrpt/StdAfx.h +++ b/reporting/crashrpt/StdAfx.h @@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree. #define WINVER 0x0501 #define _WIN32_WINNT 0x0501 #define _WIN32_IE 0x0600 -#define _RICHEDIT_VER 0x0200 +#define _RICHEDIT_VER 0x0300 #include #include @@ -54,12 +54,12 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include // CString-related includes #define _WTL_USE_CSTRING -#include +#include #include #include #include diff --git a/reporting/crashsender/CMakeLists.txt b/reporting/crashsender/CMakeLists.txt index 9b444c5..aa4ab8a 100644 --- a/reporting/crashsender/CMakeLists.txt +++ b/reporting/crashsender/CMakeLists.txt @@ -22,27 +22,27 @@ fix_default_compiler_settings_() # Add include dir include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/reporting/CrashRpt - ${CMAKE_SOURCE_DIR}/thirdparty/wtl - ${CMAKE_SOURCE_DIR}/thirdparty/zlib + ${WTL_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/thirdparty/minizip - ${CMAKE_SOURCE_DIR}/thirdparty/jpeg - ${CMAKE_SOURCE_DIR}/thirdparty/libpng - ${CMAKE_SOURCE_DIR}/thirdparty/tinyxml - ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/include - ${CMAKE_SOURCE_DIR}/thirdparty/libogg/include - ${CMAKE_SOURCE_DIR}/thirdparty/libtheora/include) - -if(NOT CMAKE_CL_64) - link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib ) -else(NOT CMAKE_CL_64) - link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 ) -endif(NOT CMAKE_CL_64) + ${ZLIB_INCLUDE_DIRS} + ${JPEG_INCLUDE_DIR} + ${PNG_INCLUDE_DIRS} + ${TINYXML_INCLUDE_DIR} + ${DBGHELP_INCLUDE_DIR} + ${OGG_INCLUDE_DIRS} + ${THEORA_INCLUDE_DIR}) + +#if(NOT CMAKE_CL_64) +# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib ) +#else(NOT CMAKE_CL_64) +# link_directories( ${CMAKE_SOURCE_DIR}/thirdparty/dbghelp/lib/amd64 ) +#endif(NOT CMAKE_CL_64) # Add executable build target add_executable(CrashSender WIN32 ${source_files} ${header_files}) # Add input link libraries -target_link_libraries(CrashSender zlib minizip libjpeg libpng tinyxml libogg libtheora WS2_32.lib Dnsapi.lib wininet.lib Rpcrt4.lib Gdi32.lib shell32.lib Comdlg32.lib version.lib psapi.lib) +target_link_libraries(CrashSender ZLIB::ZLIB minizip ${JPEG_LIBRARIES} PNG::PNG ${TINYXML_LIBRARY} Ogg::ogg ${THEORA_LIBRARY} WS2_32.lib Dnsapi.lib wininet.lib Rpcrt4.lib Gdi32.lib shell32.lib Comdlg32.lib version.lib psapi.lib) # Add compiler flags (/MP for multi-processor compilation, /Os to favor small code) set_target_properties(CrashRpt PROPERTIES COMPILE_FLAGS "/Os") @@ -52,4 +52,12 @@ set_target_properties(CrashRpt PROPERTIES COMPILE_FLAGS "/Os") set_target_properties(CrashSender PROPERTIES DEBUG_POSTFIX ${CRASHRPT_VER}d - RELEASE_POSTFIX ${CRASHRPT_VER} ) \ No newline at end of file + RELEASE_POSTFIX ${CRASHRPT_VER} ) + +install(TARGETS CrashSender + RUNTIME DESTINATION tools/crashrpt +) + +file(GLOB LANG_FILES "${CMAKE_SOURCE_DIR}/lang_files/crashrpt_lang_*.ini") +install(FILES ${LANG_FILES} DESTINATION tools/crashrpt) +install(FILES "${CMAKE_SOURCE_DIR}/lang_files/crashrpt_lang_EN.ini" DESTINATION tools/crashrpt RENAME crashrpt_lang.ini) diff --git a/reporting/crashsender/CrashSender.rc b/reporting/crashsender/CrashSender.rc index 0502962..e10e269 100644 --- a/reporting/crashsender/CrashSender.rc +++ b/reporting/crashsender/CrashSender.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "atlres.h" +#include "wtl/atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -243,7 +243,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""atlres.h""\r\n" + "#include ""wtl/atlres.h""\r\n" "\0" END diff --git a/reporting/crashsender/ErrorReportSender.cpp b/reporting/crashsender/ErrorReportSender.cpp index ac9603c..64cf2b5 100644 --- a/reporting/crashsender/ErrorReportSender.cpp +++ b/reporting/crashsender/ErrorReportSender.cpp @@ -722,9 +722,9 @@ BOOL CErrorReportSender::CreateMiniDump() CompiledApiVer.Reserved = 0; LPAPI_VERSION pActualApiVer = lpImagehlpApiVersionEx(&CompiledApiVer); pActualApiVer; - ATLASSERT(CompiledApiVer.MajorVersion==pActualApiVer->MajorVersion); - ATLASSERT(CompiledApiVer.MinorVersion==pActualApiVer->MinorVersion); - ATLASSERT(CompiledApiVer.Revision==pActualApiVer->Revision); + //ATLASSERT(CompiledApiVer.MajorVersion==pActualApiVer->MajorVersion); + //ATLASSERT(CompiledApiVer.MinorVersion==pActualApiVer->MinorVersion); + //ATLASSERT(CompiledApiVer.Revision==pActualApiVer->Revision); } // Write minidump to the file @@ -1086,7 +1086,7 @@ BOOL CErrorReportSender::CreateCrashDescriptionXML(CErrorReportInfo& eri) goto cleanup; } - doc.useMicrosoftBOM = true; + //doc.useMicrosoftBOM = true; bool bSave = doc.SaveFile(f); if(!bSave) { diff --git a/reporting/crashsender/FilePreviewCtrl.cpp b/reporting/crashsender/FilePreviewCtrl.cpp index e71aafc..5650291 100644 --- a/reporting/crashsender/FilePreviewCtrl.cpp +++ b/reporting/crashsender/FilePreviewCtrl.cpp @@ -365,7 +365,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName) if (!png_ptr) goto cleanup; - if (setjmp(png_ptr->jmpbuf)) + if (setjmp(png_jmpbuf(png_ptr))) goto cleanup; info_ptr = png_create_info_struct(png_ptr); @@ -389,7 +389,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName) width = png_get_image_width(png_ptr, info_ptr); height = png_get_image_height(png_ptr, info_ptr); - if(info_ptr->channels==3) + if (png_get_channels(png_ptr, info_ptr) == 3) { png_set_strip_16(png_ptr); png_set_packing(png_ptr); @@ -408,14 +408,14 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName) pBMI = (BITMAPINFO*)new BYTE[sizeof(BITMAPINFO)+256*4]; memset(pBMI, 0, sizeof(BITMAPINFO)+256*4); pBMI->bmiHeader.biSize = sizeof(BITMAPINFO); - pBMI->bmiHeader.biBitCount = 8*info_ptr->channels; + pBMI->bmiHeader.biBitCount = 8 * png_get_channels(png_ptr, info_ptr); pBMI->bmiHeader.biWidth = width; pBMI->bmiHeader.biHeight = height; pBMI->bmiHeader.biPlanes = 1; pBMI->bmiHeader.biCompression = BI_RGB; pBMI->bmiHeader.biSizeImage = rowbytes*height; - if( info_ptr->channels == 1 ) + if (png_get_channels(png_ptr, info_ptr) == 1) { RGBQUAD* palette = pBMI->bmiColors; @@ -431,7 +431,7 @@ BOOL CImage::LoadBitmapFromPNGFile(LPTSTR szFileName) for(y=height-1; y>=0; y--) { - png_read_rows(png_ptr, &row, png_bytepp_NULL, 1); + png_read_rows(png_ptr, &row, NULL, 1); { CAutoLock lock(&m_csLock); diff --git a/reporting/crashsender/ScreenCap.cpp b/reporting/crashsender/ScreenCap.cpp index c183c19..8f5643d 100644 --- a/reporting/crashsender/ScreenCap.cpp +++ b/reporting/crashsender/ScreenCap.cpp @@ -11,6 +11,7 @@ be found in the Authors.txt file in the root of the source tree. #include "stdafx.h" #include "ScreenCap.h" #include "Utility.h" +#include "zlib.h" // Disable warning C4611: interaction between '_setjmp' and C++ object destruction is non-portable #pragma warning(disable:4611) diff --git a/reporting/crashsender/stdafx.h b/reporting/crashsender/stdafx.h index f087ff4..4494d3a 100644 --- a/reporting/crashsender/stdafx.h +++ b/reporting/crashsender/stdafx.h @@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree. #define WINVER 0x0501 #define _WIN32_WINNT 0x0501 #define _WIN32_IE 0x0600 -#define _RICHEDIT_VER 0x0200 +#define _RICHEDIT_VER 0x0300 typedef __int64 off_t, _off_t; #define _OFF_T_DEFINED @@ -61,19 +61,19 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include -#include -#include -#include -#include +#include +#include +#include +#include #define _WTL_USE_CSTRING -#include +#include #include #include diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f7bfede..9358bef 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -32,7 +32,7 @@ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG") # Add include dir include_directories( ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/reporting/CrashRpt - ${CMAKE_SOURCE_DIR}/thirdparty/wtl ) + ${WTL_INCLUDE_DIR} ) # Add executable build target add_executable(Tests ${source_files} ${header_files}) @@ -42,3 +42,10 @@ target_link_libraries(Tests CrashRpt CrashRptProbe) set_target_properties(Tests PROPERTIES DEBUG_POSTFIX d ) #set_target_properties(Tests PROPERTIES COMPILE_FLAGS "/Zi" LINK_FLAGS "/DEBUG") + +install(TARGETS Tests + RUNTIME DESTINATION tools/crashrpt +) + +install(FILES "${CMAKE_SOURCE_DIR}/demos/WTLDemo/dummy.ini" DESTINATION tools/crashrpt) +install(FILES "${CMAKE_SOURCE_DIR}/demos/WTLDemo/dummy.log" DESTINATION tools/crashrpt) diff --git a/tests/stdafx.h b/tests/stdafx.h index f12675b..0ec2117 100644 --- a/tests/stdafx.h +++ b/tests/stdafx.h @@ -19,7 +19,7 @@ be found in the Authors.txt file in the root of the source tree. #define WINVER 0x0501 #define _WIN32_WINNT 0x0501 #define _WIN32_IE 0x0600 -#define _RICHEDIT_VER 0x0200 +#define _RICHEDIT_VER 0x0300 #include #include @@ -58,15 +58,15 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include -#include -#include -#include +#include +#include +#include #include #include #include @@ -75,7 +75,7 @@ extern CAppModule _Module; #include #define _WTL_USE_CSTRING -#include +#include #if _MSC_VER<1400 #define _TCSCPY_S(strDestination, numberOfElements, strSource) _tcscpy(strDestination, strSource) diff --git a/thirdparty/libpng/CMakeLists.txt b/thirdparty/libpng/CMakeLists.txt index b358c4e..e0f7a33 100644 --- a/thirdparty/libpng/CMakeLists.txt +++ b/thirdparty/libpng/CMakeLists.txt @@ -7,7 +7,7 @@ aux_source_directory( . source_files ) add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4244 /wd4267) # Add include dir -include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/zlib ) +include_directories( ${ZLIB_INCLUDE_DIRS} ) fix_default_compiler_settings_() @@ -15,6 +15,6 @@ fix_default_compiler_settings_() add_library(libpng STATIC ${source_files}) # Add linker input libraries -target_link_libraries(libpng zlib) +target_link_libraries(libpng ZLIB::ZLIB) set_target_properties(libpng PROPERTIES DEBUG_POSTFIX d ) \ No newline at end of file diff --git a/thirdparty/libtheora/CMakeLists.txt b/thirdparty/libtheora/CMakeLists.txt index 896fb47..f3cf5eb 100644 --- a/thirdparty/libtheora/CMakeLists.txt +++ b/thirdparty/libtheora/CMakeLists.txt @@ -8,7 +8,7 @@ aux_source_directory( ./lib/x86_vc x86_source_files ) add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4244 /wd4700 /wd4214 /wd4554 /wd4018 /wd4100 /wd4132 /wd4389 /wd4127 /wd4701 /wd4245 /wd4267 /wd4334) # Add include dir -include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/libogg/include +include_directories( ${OGG_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/thirdparty/libtheora/include) fix_default_compiler_settings_() diff --git a/thirdparty/minizip/CMakeLists.txt b/thirdparty/minizip/CMakeLists.txt index 5f4d0af..2b015c9 100644 --- a/thirdparty/minizip/CMakeLists.txt +++ b/thirdparty/minizip/CMakeLists.txt @@ -7,7 +7,7 @@ aux_source_directory( . source_files ) add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE /wd4127 /wd4131 /wd4100 /wd4189 /wd4244) # Add include dir -include_directories( ${CMAKE_SOURCE_DIR}/thirdparty/zlib ) +include_directories( ${ZLIB_INCLUDE_DIRS} ) fix_default_compiler_settings_() @@ -15,6 +15,6 @@ fix_default_compiler_settings_() add_library(minizip STATIC ${source_files}) # Add linker input libraries -target_link_libraries(minizip zlib) +target_link_libraries(minizip ZLIB::ZLIB) set_target_properties(minizip PROPERTIES DEBUG_POSTFIX d ) \ No newline at end of file ================================================ FILE: ports/crashrpt/002-fix-wtl-includepath.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ed9e3d3..d842aa7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ if(NOT TINYXML_INCLUDE_DIR) message(FATAL_ERROR "tinyxml include dir not found") endif() -find_path(WTL_INCLUDE_DIR wtl/atlapp.h) +find_path(WTL_INCLUDE_DIR atlapp.h) if(NOT WTL_INCLUDE_DIR) message(FATAL_ERROR "WTL include dir not found") endif() diff --git a/processing/crashrptprobe/CrashRptProbe.rc b/processing/crashrptprobe/CrashRptProbe.rc index e12b8e9..a08f63e 100644 --- a/processing/crashrptprobe/CrashRptProbe.rc +++ b/processing/crashrptprobe/CrashRptProbe.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "wtl/atlres.h" +#include "atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -32,7 +32,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""wtl/atlres.h""\r\n" + "#include ""atlres.h""\r\n" "\0" END diff --git a/processing/crashrptprobe/stdafx.h b/processing/crashrptprobe/stdafx.h index 0b60659..2b027b2 100644 --- a/processing/crashrptprobe/stdafx.h +++ b/processing/crashrptprobe/stdafx.h @@ -70,13 +70,13 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include // CString-related includes #define _WTL_USE_CSTRING -#include +#include #if _MSC_VER<1400 #define WCSNCPY_S(strDest, sizeInBytes, strSource, count) wcsncpy(strDest, strSource, count) diff --git a/reporting/crashrpt/CrashRpt.rc b/reporting/crashrpt/CrashRpt.rc index a8c821b..95e7502 100644 --- a/reporting/crashrpt/CrashRpt.rc +++ b/reporting/crashrpt/CrashRpt.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "wtl/atlres.h" +#include "atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -32,7 +32,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""wtl/atlres.h""\r\n" + "#include ""atlres.h""\r\n" "\0" END diff --git a/reporting/crashrpt/StdAfx.h b/reporting/crashrpt/StdAfx.h index 13bbe50..3ed0a55 100644 --- a/reporting/crashrpt/StdAfx.h +++ b/reporting/crashrpt/StdAfx.h @@ -54,12 +54,12 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include // CString-related includes #define _WTL_USE_CSTRING -#include +#include #include #include #include diff --git a/reporting/crashsender/CrashSender.rc b/reporting/crashsender/CrashSender.rc index e10e269..0502962 100644 --- a/reporting/crashsender/CrashSender.rc +++ b/reporting/crashsender/CrashSender.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "wtl/atlres.h" +#include "atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -243,7 +243,7 @@ END 2 TEXTINCLUDE BEGIN - "#include ""wtl/atlres.h""\r\n" + "#include ""atlres.h""\r\n" "\0" END diff --git a/reporting/crashsender/stdafx.h b/reporting/crashsender/stdafx.h index 4494d3a..9bbbe3a 100644 --- a/reporting/crashsender/stdafx.h +++ b/reporting/crashsender/stdafx.h @@ -61,19 +61,19 @@ namespace ATL }; #endif // _WTL_SUPPORT_SDK_ATL3 -#include +#include extern CAppModule _Module; #include -#include -#include -#include -#include +#include +#include +#include +#include #define _WTL_USE_CSTRING -#include +#include #include #include ================================================ FILE: ports/crashrpt/003-add-definition-UNICODE.patch ================================================ diff --git a/processing/crashrptprobe/CMakeLists.txt b/processing/crashrptprobe/CMakeLists.txt index c513c6d..8ac306a 100644 --- a/processing/crashrptprobe/CMakeLists.txt +++ b/processing/crashrptprobe/CMakeLists.txt @@ -13,7 +13,7 @@ list(REMOVE_ITEM srcs_using_precomp ./CrashRptProbe.rc ./CrashRptProbe.def ./st add_msvc_precompiled_header(stdafx.h ./stdafx.cpp srcs_using_precomp) # Define _UNICODE (use wide-char encoding) -add_definitions(-D_UNICODE) +add_definitions(-D_UNICODE -DUNICODE) fix_default_compiler_settings_() diff --git a/reporting/crashrpt/CMakeLists.txt b/reporting/crashrpt/CMakeLists.txt index c7e4fd6..da9cef1 100644 --- a/reporting/crashrpt/CMakeLists.txt +++ b/reporting/crashrpt/CMakeLists.txt @@ -12,7 +12,7 @@ list(REMOVE_ITEM srcs_using_precomp ./CrashRpt.rc ./StdAfx.cpp ./CrashRpt.def) add_msvc_precompiled_header(stdafx.h ./StdAfx.cpp srcs_using_precomp) # Define _UNICODE (use wide-char encoding) -add_definitions(-D_UNICODE -D_CRT_SECURE_NO_DEPRECATE) +add_definitions(-D_UNICODE -DUNICODE -D_CRT_SECURE_NO_DEPRECATE) # Modify default compiler settings fix_default_compiler_settings_() diff --git a/reporting/crashsender/CMakeLists.txt b/reporting/crashsender/CMakeLists.txt index aa4ab8a..f081254 100644 --- a/reporting/crashsender/CMakeLists.txt +++ b/reporting/crashsender/CMakeLists.txt @@ -15,7 +15,7 @@ list(APPEND source_files ${CMAKE_SOURCE_DIR}/reporting/CrashRpt/SharedMem.cpp) # Define _UNICODE (use wide-char encoding) -add_definitions(-D_UNICODE ) +add_definitions(-D_UNICODE -DUNICODE) fix_default_compiler_settings_() ================================================ FILE: ports/crashrpt/portfile.cmake ================================================ if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(ARCH_DIR "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(ARCH_DIR "x64/") else() message(FATAL_ERROR "${PORT} only supports x86 and x64 architectures") endif() vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://git.code.sf.net/p/crashrpt/code REF 4616504670be5a425a525376648d912a72ce18f2 PATCHES 001-add-install-target-and-find-deps.patch 002-fix-wtl-includepath.patch 003-add-definition-UNICODE.patch ) # Remove vendored dependencies to ensure they are not picked up by the build # Vendored minizip is still used since it contains modifications needed for CrashRpt foreach(DEPENDENCY dbghelp jpeg libogg libpng libtheora tinyxml wtl zlib) if(EXISTS "${SOURCE_PATH}/thirdparty/${DEPENDENCY}") file(REMOVE_RECURSE "${SOURCE_PATH}/thirdparty/${DEPENDENCY}") endif() endforeach() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CRASHRPT_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" CRASHRPT_LINK_CRT_AS_DLL) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES probe CRASHRPT_BUILD_PROBE tests CRASHRPT_BUILD_TESTS demos CRASHRPT_BUILD_DEMOS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCRASHRPT_BUILD_SHARED_LIBS=${CRASHRPT_BUILD_SHARED_LIBS} -DCRASHRPT_LINK_CRT_AS_DLL=${CRASHRPT_LINK_CRT_AS_DLL} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/crashrpt/vcpkg.json ================================================ { "name": "crashrpt", "version": "1.4.3", "port-version": 4, "description": "A crash reporting system for Windows applications", "homepage": "https://crashrpt.sourceforge.net", "license": "BSD-3-Clause", "supports": "!osx & !linux & !uwp & (x86 | x64)", "dependencies": [ "dbghelp", "libjpeg-turbo", "libogg", "libpng", "libtheora", "tinyxml", { "name": "vcpkg-cmake", "host": true }, "wtl", "zlib" ], "features": { "demos": { "description": "Demo applications for CrashRptProbe" }, "probe": { "description": "The CrashRptProbe library" }, "tests": { "description": "Test application for crashrpt", "dependencies": [ { "name": "crashrpt", "default-features": false, "features": [ "probe" ] } ] } } } ================================================ FILE: ports/crc32c/fix_clang-cl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 84907285c..8c446b0c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ if(NOT CMAKE_CXX_STANDARD) endif(NOT CMAKE_CXX_STANDARD) # https://github.com/izenecloud/cmake/blob/master/SetCompilerWarningAll.cmake -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") +if(MSVC) # Use the highest warning level for Visual Studio. set(CMAKE_CXX_WARNING_LEVEL 4) if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") ================================================ FILE: ports/crc32c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/crc32c REF 1.1.2 SHA512 6325c52b5a6850b9f90086e0c0c86798c008af36e7cfd3a0216184a2d37b3bf7323481ddc6bfe4cbd5b31288b3ee6c69772d03085a13094cf95d00a9756a7196 HEAD_REF master PATCHES fix_clang-cl.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DCRC32C_BUILD_TESTS=OFF -DCRC32C_BUILD_BENCHMARKS=OFF -DCRC32C_USE_GLOG=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Crc32c) 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) endif() # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/crc32c/vcpkg.json ================================================ { "name": "crc32c", "version": "1.1.2", "port-version": 2, "description": "CRC32C implementation with support for CPU-specific acceleration instructions.", "homepage": "https://github.com/google/crc32c", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/crcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO d-bahr/CRCpp REF "release-${VERSION}" SHA512 61d6d4636cbf42752568900a1267336721836b80cbe99e1795c74be9fffd9d6368697182565beecf5b4050d649c7a77acbacfac2a20eff9de4073dab4ea073cf HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TEST=OFF -DBUILD_DOC=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/crcpp/vcpkg.json ================================================ { "name": "crcpp", "version": "1.2.1.0", "description": "Easy to use and fast C++ CRC library.", "homepage": "https://github.com/d-bahr/CRCpp", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/crfsuite/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19 FATAL_ERROR) PROJECT(crfsuite) if(ANDROID AND ANDROID_NATIVE_API_LEVEL LESS 28) set(CMAKE_C_STANDARD 99) # no aligned_alloc endif() file(GLOB SOURCE_FILE_CQDB "lib/cqdb/src/*.c" ) file(GLOB HEADERS_FILE_CQDB "lib/cqdb/include/*.h" ) file(GLOB SOURCE_FILE_CRF "lib/crf/src/*.c" ) file(GLOB HEADERS_FILE_CRF "lib/crf/src/*.h" ) file(GLOB SOURCE_FILE_FRONTEND "frontend/*.c" ) file(GLOB HEADERS_FILE_FRONTEND "frontend/*.h" ) file(GLOB SOURCE_FILE "swig/*.cpp" "frontend/*.c" ) file(GLOB HEADERS_FILE "include/*.h" "include/*.hpp" "frontend/*.h" ) find_library(LBFGS_LIBRARY lbfgs) include_directories(lib/cqdb/include/) include_directories(include/) include_directories(win32/liblbfgs/) add_library(cqdb STATIC ${SOURCE_FILE_CQDB} ${HEADERS_FILE_CQDB}) add_library(crf STATIC ${SOURCE_FILE_CRF} ${HEADERS_FILE_CRF}) add_library(crfsuite STATIC ${SOURCE_FILE} ${HEADERS_FILE}) target_link_libraries(crf PUBLIC cqdb ${LBFGS_LIBRARY}) target_link_libraries(crfsuite PUBLIC crf) install(TARGETS cqdb crf crfsuite RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) if (WIN32) add_executable(frontend ${SOURCE_FILE_FRONTEND} ${HEADERS_FILE_FRONTEND}) target_link_libraries(frontend PUBLIC crf) install(TARGETS frontend RUNTIME DESTINATION tools ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) endif() install( FILES ${HEADERS_FILE} ${HEADERS_FILE_CQDB} ${HEADERS_FILE_CRF} ${HEADERS_FILE_FRONTEND} DESTINATION include/crfsuite ) ================================================ FILE: ports/crfsuite/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chokkan/crfsuite REF a2a1547727985e3aff6a35cffe073f57f0223e9d SHA512 d80f72fe13288bc516772542438c09439c6abbd4c15b06650f1de1fee7f7f710c1eed924d4300141807b8f86af398ae5d217974c13a65044515ceb163de441a4 HEAD_REF master ) list(REMOVE_ITEM SOURCE_FILE "${SOURCE_PATH}/win32/liblbfgs/lbfgs.lib") list(REMOVE_ITEM SOURCE_FILE "${SOURCE_PATH}/win32/liblbfgs/lbfgs_debug.lib") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/crfsuite/vcpkg.json ================================================ { "name": "crfsuite", "version-date": "2020-08-27", "port-version": 1, "description": "CRFSuite is an implementation of Conditional Random Fields (CRFs) for labeling sequential data.", "homepage": "https://www.chokkan.org/software/crfsuite/", "license": null, "supports": "!uwp", "dependencies": [ "liblbfgs", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/croncpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mariusbancila/croncpp REF e817348a2dcd77b968c0b87a43274932b9800f4b # 2023-03-30 SHA512 aee687f4e8d7ce85aa9ba3a9e551443353abc20af9face62b618ce55ffa7a4632a4cd0c02c46e43c52b7f1797d62006183776a2d7fad48473bb964af79c2d531 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCRONCPP_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/croncpp/vcpkg.json ================================================ { "name": "croncpp", "version-date": "2023-03-30", "description": "croncpp is a C++11/14/17 header-only cross-platform library for handling CRON expressions.", "homepage": "https://github.com/mariusbancila/croncpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/crossdb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO crossdb-org/crossdb REF "${VERSION}" SHA512 ad0d1c4eb02016d4d1eb8b8f3dbbacc800c1ac02a2fd39e832225e7d17d4f9938da4b49cd6ca226555819a17bb23cdf8c6d5945eeb612fe8e7e140eedd902d8f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_copy_tools(TOOL_NAMES xdb-cli DESTINATION "${CURRENT_PACKAGES_DIR}/tools" AUTO_CLEAN) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/crossdb/usage ================================================ The package crossdb can be used via CMake: find_path(CROSSDB_INCLUDE_DIR crossdb.h) find_library(CROSSDB_LIBRARY NAMES crossdb) target_include_directories(main PRIVATE "${CROSSDB_INCLUDE_DIR}") target_link_libraries(main PRIVATE "${CROSSDB_LIBRARY}") ================================================ FILE: ports/crossdb/vcpkg.json ================================================ { "name": "crossdb", "version": "0.14.0", "description": "Ultra High-performance Lightweight Embedded and Server OLTP RDBMS", "homepage": "https://github.com/crossdb-org/crossdb", "license": "MPL-2.0", "supports": "(!windows | mingw) & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/crossguid/missing-include-cstdint.patch ================================================ diff --git a/include/crossguid/guid.hpp b/include/crossguid/guid.hpp index 61e0f17..70966f2 100644 --- a/include/crossguid/guid.hpp +++ b/include/crossguid/guid.hpp @@ -29,6 +29,7 @@ THE SOFTWARE. #include #endif +#include #include #include #include ================================================ FILE: ports/crossguid/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO graeme-hill/crossguid REF ca1bf4b810e2d188d04cb6286f957008ee1b7681 #2021-10-22 SHA512 f0a80d8e99b10473bcfdfde3d1c5fd7b766959819f0d1c0595ac84ce46db9007a5fbfde9a55aca60530c46cb7f8ef4c7e472c6191559ded92f868589c141ccaf HEAD_REF master PATCHES warnings.patch missing-include-cstdint.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCROSSGUID_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/crossguid/cmake) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/crossguid/vcpkg.json ================================================ { "name": "crossguid", "version-date": "2021-10-22", "port-version": 3, "description": "CrossGuid is a minimal, cross platform, C++ GUID library.", "dependencies": [ { "name": "libuuid", "platform": "!windows & !osx & !android" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/crossguid/warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 76b5a62..174d981 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,15 +40,6 @@ else() target_compile_definitions(crossguid PRIVATE GUID_LIBUUID) endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(WARNINGS "-Werror" "-Wall") -elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(WARNINGS "-Werror" "-Wall") -elseif(MSVC) - set(WARNINGS "/WX" "/W4") -endif() -target_compile_options(crossguid PRIVATE ${WARNINGS}) - set_target_properties(crossguid PROPERTIES VERSION ${PROJECT_VERSION} ================================================ FILE: ports/crow/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CrowCpp/crow REF "v${VERSION}" SHA512 32c956a36652ac14a9ffd41333b9e80031f86b99b09f54affb9cb0196c4672c5877daebf6327a359c735f5246dd4119cf17ac5d68271953bfa389d660f745e42 HEAD_REF master PATCHES remove-cpm.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Crow) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/crow/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 198235dd0..42ebedb21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,6 @@ project(Crow set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/CPM.cmake) # Make sure Findasio.cmake module is found list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) ================================================ FILE: ports/crow/vcpkg.json ================================================ { "name": "crow", "version": "1.3.0", "port-version": 1, "description": "Very fast and easy to use C++ micro web framework", "homepage": "https://github.com/CrowCpp/crow", "license": "BSD-3-Clause", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cryptopp/cryptopp.patch ================================================ diff --git a/secblock.h b/secblock.h index 5ab920f9..74d939cf 100644 --- a/secblock.h +++ b/secblock.h @@ -270,7 +270,7 @@ public: /// \details VS.NET STL enforces the policy of "All STL-compliant allocators /// have to provide a template class member called rebind". template struct rebind { typedef AllocatorWithCleanup other; }; -#if (CRYPTOPP_MSC_VERSION >= 1500) +#if (CRYPTOPP_MSC_VERSION >= 1500) || defined(__clang__) AllocatorWithCleanup() {} template AllocatorWithCleanup(const AllocatorWithCleanup &) {} #endif ================================================ FILE: ports/cryptopp/patch.patch ================================================ diff --git a/config_cxx.h b/config_cxx.h index ffd57ad..353d7ce 100644 --- a/config_cxx.h +++ b/config_cxx.h @@ -217,7 +217,7 @@ // Also see https://github.com/weidai11/cryptopp/issues/980. I'm not sure what // to do when the compiler defines __cpp_lib_uncaught_exceptions but the platform // does not support std::uncaught_exceptions. What was Apple thinking??? -#if defined(__clang__) +#if defined(__clang__) && !defined(CRYPTOPP_MSC_VERSION) # if __EXCEPTIONS && __has_feature(cxx_exceptions) # if __cpp_lib_uncaught_exceptions >= 201411L # define CRYPTOPP_CXX17_UNCAUGHT_EXCEPTIONS 1 diff --git a/config_os.h b/config_os.h index 0994563..4546585 100644 --- a/config_os.h +++ b/config_os.h @@ -29,7 +29,7 @@ // https://www.cryptopp.com/wiki/Release_Process#Self_Tests // The problems with Clang pretending to be other compilers is // discussed at http://github.com/weidai11/cryptopp/issues/147. -#if (defined(_MSC_VER) && defined(__clang__)) +#if (defined(_MSC_VER) && _MSC_VER < 1930 && defined(__clang__)) # error: "Unsupported configuration" #endif @@ -126,6 +126,7 @@ #endif #ifdef CRYPTOPP_WIN32_AVAILABLE +#include # if !defined(WINAPI_FAMILY) # define THREAD_TIMER_AVAILABLE # elif defined(WINAPI_FAMILY) ================================================ FILE: ports/cryptopp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REPLACE "." "_" CRYPTOPP_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO abdes/cryptopp-cmake REF "866aceb8b13b6427a3c4541288ff412ad54f11ea" SHA512 "c891aa30f9bd26383617f3f224d5b098f9aca3342487a136af3dbe70ffae9a7b8590248717f16d665870c93992fed3b79c727c4deb6e8b060eec56ce1aa8cfca" HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO weidai11/cryptopp REF "b5242667a24e3db8e4600e77b2e502ef204e5280" SHA512 "4ed3e0a67cd6120d2c352c3bd42029ae38a5f2a0c57a4934980de8961d7f37134bedf17fca8178ea2ca9b43283763319dc108cb08f9ab0e43ead6da2d93d5c1c" HEAD_REF master PATCHES patch.patch cryptopp.patch ) file(COPY "${CMAKE_SOURCE_PATH}/cryptopp" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/cmake" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/test" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/cryptopp/cryptoppConfig.cmake" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pem-pack CRYPTOPP_USE_PEM_PACK ) if(CRYPTOPP_USE_PEM_PACK) vcpkg_from_github( OUT_SOURCE_PATH PEM_PACK_SOURCE_PATH REPO noloader/cryptopp-pem REF 64782e531d116ffbf83ca80614ac408dbb3fd775 SHA512 154cf045f822a0da54a88ceb89d5b42cb8ad2eface73eb32a8eee0c4e60be10f4692442f1913f58e894b46412884907f5f70d99d1691ccf52e0aa50c9c9943cd HEAD_REF master ) list(APPEND FEATURE_OPTIONS -Dcryptopp-pem_SOURCE_DIR="${PEM_PACK_SOURCE_PATH}" ) endif() # disable assembly on ARM Windows to fix broken build if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "^arm") set(CRYPTOPP_DISABLE_ASM "ON") elseif(NOT DEFINED CRYPTOPP_DISABLE_ASM) # Allow disabling using a triplet file set(CRYPTOPP_DISABLE_ASM "OFF") endif() # 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: # https://www.cryptopp.com/wiki/Visual_Studio#Dynamic_Runtime_Linking # https://www.cryptopp.com/wiki/Visual_Studio#The_DLL vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCRYPTOPP_SOURCES=${SOURCE_PATH} -DCRYPTOPP_BUILD_SHARED=OFF -DBUILD_STATIC=ON -DCRYPTOPP_BUILD_TESTING=OFF -DCRYPTOPP_BUILD_DOCUMENTATION=OFF -DCRYPTOPP_DISABLE_ASM=${CRYPTOPP_DISABLE_ASM} -DUSE_INTERMEDIATE_OBJECTS_TARGET=OFF # Not required when we build static only -DCMAKE_POLICY_DEFAULT_CMP0063=NEW # Honor "_VISIBILITY_PRESET" properties ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES BUILD_STATIC USE_INTERMEDIATE_OBJECTS_TARGET CMAKE_POLICY_DEFAULT_CMP0063 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/cryptopp) if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") vcpkg_fixup_pkgconfig() # There is no way to suppress installation of the headers and resource files in debug build. 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") endif() # Handle copyright file(COPY "${SOURCE_PATH}/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/License.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/cryptopp/vcpkg.json ================================================ { "name": "cryptopp", "version": "2026-03-02", "description": "Crypto++ is a free C++ class library of cryptographic schemes.", "homepage": "https://github.com/weidai11/cryptopp", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pem-pack": { "description": "Crypto++ with PEM pack" } } } ================================================ FILE: ports/cserialport/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO itas109/CSerialPort REF "v${VERSION}" SHA512 657d0696df97d71d8b44f5e254e72ca1c36d701e84284d78e8bb6d4f5b525920e192477009cc79137984563dbd9d30ae530407dbcd121a5171326e0012a1a3f5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCSERIALPORT_BUILD_EXAMPLES=OFF -DCSERIALPORT_BUILD_TEST=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CSerialPort) vcpkg_fixup_pkgconfig() 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") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cserialport/vcpkg.json ================================================ { "name": "cserialport", "version": "4.3.3", "description": "C++ lightweight cross-platform serial port library and protocol parsing, also support C, C#, Java, Python, Node.js, Electron, Rust etc.", "homepage": "https://github.com/itas109/CSerialPort", "license": "LGPL-3.0-only WITH LGPL-3.0-linking-exception", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cspice/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(cspice LANGUAGES C) file(GLOB CSPICE_SOURCES "${PROJECT_SOURCE_DIR}/src/cspice/*.c") set(INCLUDE_PATH "${PROJECT_SOURCE_DIR}/include") add_library(cspice ${CSPICE_SOURCES}) target_include_directories(cspice PUBLIC $ $ ) if (WIN32) # cf. src/cspice/mkprodct.bat target_compile_definitions(cspice PRIVATE "_COMPLEX_DEFINED;MSDOS;OMIT_BLANK_CC;NON_ANSI_STDIO;_CRT_SECURE_NO_WARNINGS") set_target_properties(cspice PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") target_compile_options(cspice PRIVATE /sdl-) endif() elseif (UNIX) target_compile_definitions(cspice PRIVATE "NON_UNIX_STDIO") set_target_properties(cspice PROPERTIES C_STANDARD 90) target_compile_options(cspice PRIVATE -Wno-error=implicit-function-declaration) endif () set_target_properties(cspice PROPERTIES VERSION "${VERSION}" SOVERSION "${VERSION}" ) file(GLOB SPICE_HEADERS ${INCLUDE_PATH}/*.h) install(FILES ${SPICE_HEADERS} DESTINATION include/cspice) install( TARGETS cspice EXPORT cspice ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install( EXPORT cspice FILE unofficial-cspice-config.cmake NAMESPACE unofficial::cspice:: DESTINATION share/unofficial-cspice ) ================================================ FILE: ports/cspice/License.txt ================================================ This software and any related materials were created by the California Institute of Technology (Caltech) under U.S. government contract with the National Aeronautics and Space Administration (NASA). The software is Technology and Software Publicly Available under U.S. export laws and is provided "as-is" to the recipient without warranty of any kind, including any warranties of performance or merchantability or fitness for particular use or purpose (as set forth in United States UCC§2312-§2313) or for any purpose whatsoever, for the software and related materials, however used. In no event shall Caltech, its Jet Propulsion Laboratory, or NASA be liable for any damages and/or costs, including, but not limited to, incidental or consequential damages of any kind, including economic damage or injury to property and lost profits, regardless of whether Caltech, JPL, or NASA be advised, have reason to know, or, in fact, shall know of the possibility. Recipient bears all risk relating to quality and performance of the software and any related materials, and agrees to indemnify Caltech and NASA for all third-party claims resulting from the actions of recipient in the use of the software. ================================================ FILE: ports/cspice/isatty.patch ================================================ --- a/src/cspice/fio.h 2019-11-01 20:51:53.198400000 +0300 +++ b/src/cspice/fio.h 2019-11-01 21:19:58.123200000 +0300 @@ -1,3 +1,6 @@ +#ifdef _WIN32 +#include /* for isatty() */ +#endif #include "stdio.h" #include "errno.h" #ifndef NULL @@ -75,7 +76,9 @@ extern int (*f__donewrec)(void), t_putc(int), x_wSL(void); extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*); extern int c_sfe(cilist*), z_rnew(void); +#ifndef _WIN32 extern int isatty(int); +#endif extern int err__fl(int,int,char*); extern int xrd_SL(void); extern int f__putbuf(int); ================================================ FILE: ports/cspice/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(SUBPATH "PC_Windows_VisualC_32bit/packages/cspice.zip") set(SHA512 1949fd12b30ca0e42f53311a97d8571e68737f6a667a56946d3415ee715dda0a1adca9bfc985b9b9447084189c50d261f2c00960cbe2ddf6a1d1d92cf8fa17ab) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(SUBPATH "PC_Windows_VisualC_64bit/packages/cspice.zip") set(SHA512 5457f24279fb485b0ac92713dab026d1c1ed766a358fcf7d9ce3f70693e75da85a656e72b1ada4dc334e9e68d6c0eb42b2a31f3ad0c83b491dd3afc79e5cda98) endif() elseif(VCPKG_TARGET_IS_OSX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(SUBPATH "MacIntel_OSX_AppleC_64bit/packages/cspice.tar.Z") set(SHA512 ea9a32c763cd54303de180b4895a195cd5ef6774051f18a1812f2fff39adc0ca9d5dd7878853af40e766882e79a0f542a45139656fb79fb4b436c4bc5bdecddc) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(SUBPATH "MacM1_OSX_clang_64bit/packages/cspice.tar.Z") set(SHA512 a64f028ec1935dbc7f8d03c903fbfa40cfff097ec4aa0ca4aa1d2ee08561833000e7caf99d6550b06d2a0874cbaf1767382e7a9aea6a39228f3eaa89c6c31a6d) endif() else() if ((VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") OR (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) set(SUBPATH "PC_Linux_GCC_32bit/packages/cspice.tar.Z") set(SHA512 22a6250376e9f98d75ecc8682c5432a07a89addc9812010ad97059491e2c19cab418d7aa3f591bded9df132fcfb6865686f0ecfe70821ad31061ae2f7b165f2b) elseif((VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") OR (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) set(SUBPATH "PC_Linux_GCC_64bit/packages/cspice.tar.Z") set(SHA512 59946f628284cd31c75a23c152d725ae7e01b179f97c52b98518eceeda54bc38875b1dd93dc17574c0bf00e706e0ee35d06ecb5d7871d49633baa8f16eb6c7c8) endif() endif() set(URL "https://naif.jpl.nasa.gov/pub/naif/misc/toolkit_N00${VERSION}/C/${SUBPATH}") get_filename_component(ext "${SUBPATH}" EXT) string(SUBSTRING "${SHA512}" 0 6 subsha) vcpkg_download_distfile(ARCHIVE URLS "${URL}" FILENAME "cspice-${subsha}${ext}" SHA512 "${SHA512}") vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES isatty.patch ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( COMMENT "The complete rules are available at https://naif.jpl.nasa.gov/naif/rules.html." FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/License.txt" ) ================================================ FILE: ports/cspice/vcpkg.json ================================================ { "name": "cspice", "version": "67", "port-version": 4, "description": "NASA C SPICE toolkit", "homepage": "https://naif.jpl.nasa.gov/naif/toolkit_C.html", "license": null, "supports": "!(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ctbench/fix_build_with_boost_1_88_0.diff ================================================ diff --git a/compiler-launcher/compiler-launcher.cpp b/compiler-launcher/compiler-launcher.cpp index f106ff5..c2820e0 100644 --- a/compiler-launcher/compiler-launcher.cpp +++ b/compiler-launcher/compiler-launcher.cpp @@ -21,7 +21,7 @@ #include #include -#include +#include #include @@ -55,7 +55,7 @@ inline int get_timetrace_file(std::filesystem::path const time_trace_file_dest, using exec_clock_t = ch::steady_clock; exec_clock_t::time_point const exec_t0 = exec_clock_t::now(); - int const exit_code = boost::process::system(command_args); + int const exit_code = boost::process::v1::system(command_args); exec_clock_t::time_point const exec_t1 = exec_clock_t::now(); // Check child exit code ================================================ FILE: ports/ctbench/portfile.cmake ================================================ message(WARNING "Building ${PORT} requires a C++20 compliant compiler. GCC 12 and Clang 15 are known to work.") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jpenuchot/ctbench REF 7ddc634650f392923f0f511fb3b494a6e1add2a9 SHA512 7acc45c383541fa2fc518585b1358e61103ae52c9e880df3d44b857489ea5c2d5fe004c810f60f3246f5d175d61ba80435e09ac1f2ce6a8a4dc63b8c1881f0f3 HEAD_REF main PATCHES fix_build_with_boost_1_88_0.diff ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DCTBENCH_ENABLE_TESTS=OFF -DCTBENCH_ENABLE_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ctbench TOOLS_PATH bin/) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/ctbench/vcpkg.json ================================================ { "name": "ctbench", "version": "1.3.4", "port-version": 2, "description": "Compiler-assisted variable size benchmarking for the study of C++ metaprogram compile times.", "homepage": "https://github.com/JPenuchot/ctbench", "documentation": "https://jpenuchot.github.io/ctbench-docs/", "license": "MIT", "supports": "!windows", "dependencies": [ "boost-container", "boost-process", "fmt", { "name": "llvm", "default-features": false }, "nlohmann-json", "sciplot", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ctbignum/no-boost.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a5070b1..b60462b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,18 +19,6 @@ cmake_minimum_required(VERSION 3.0.0) ## project(ctbignum VERSION 0.1 LANGUAGES CXX) -## -## INCLUDE -## -## -include(ExternalProject) - -## External dependencies -find_package(Boost 1.61 REQUIRED) -if(Boost_FOUND) - include_directories(${Boost_INCLUDE_DIRS}) -endif() - ## ## OPTIONS ## ================================================ FILE: ports/ctbignum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO niekbouman/ctbignum REF cf3233d8b7dcff59f29a7389204959ee2228a4af SHA512 8cd5e187836f48165a088a171c87ce438393e66f7362af1b67a253ae6ef0b17c41468e21e0dfe337094796f2b2a2fa5062cc9a9231afc377f187baf1ead1257e HEAD_REF master PATCHES no-boost.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCTBIGNUM_BuildTests=OFF -DCTBIGNUM_BuildBenchmarks=OFF ) vcpkg_cmake_install() # Move CMake files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # Remove empty files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ctbignum/vcpkg.json ================================================ { "name": "ctbignum", "version-date": "2019-08-02", "port-version": 5, "description": "This is a header-only template library for fixed-width \"small big-integer\" computations, for use during run-time as well as compile-time.", "homepage": "https://github.com/niekbouman/ctbignum", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ctemplate/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5.1) project(libctemplate C CXX) # find_package(PythonInterp) if(NOT PYTHON_EXECUTABLE) message(FATAL_ERROR "PYTHON_EXECUTABLE must be set") endif() if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_VARIADIC_MAX=10) endif() set(SOURCE_PATH ${PROJECT_SOURCE_DIR}/src) set(BASE_SOURCE_PATH ${SOURCE_PATH}/base) set(WINDOWS_SOURCE_PATH ${SOURCE_PATH}/windows) set(HTMLPARSER_SOURCE_PATH ${SOURCE_PATH}/htmlparser) set(COMMON_INCLUDES ${PROJECT_BINARY_DIR}/include) set(HTMLPARSER_CONFIG ${HTMLPARSER_SOURCE_PATH}/htmlparser_fsm.config) set(JSPASPER_CONFIG ${HTMLPARSER_SOURCE_PATH}/jsparser_fsm.config) set(FSM_GENERATOR ${HTMLPARSER_SOURCE_PATH}/generate_fsm.py) set(BASE_HEADERS "${BASE_SOURCE_PATH}/arena.h" "${BASE_SOURCE_PATH}/manual_constructor.h" "${BASE_SOURCE_PATH}/mutex.h" "${BASE_SOURCE_PATH}/small_map.h" "${BASE_SOURCE_PATH}/thread_annotations.h" "${BASE_SOURCE_PATH}/util.h" "${BASE_SOURCE_PATH}/arena-inl.h" ) set( HTMLPARSER_HEADERS "${HTMLPARSER_SOURCE_PATH}/htmlparser.h" "${HTMLPARSER_SOURCE_PATH}/htmlparser_cpp.h" "${HTMLPARSER_SOURCE_PATH}/jsparser.h" "${HTMLPARSER_SOURCE_PATH}/statemachine.h" ) set(SRC_FILES "${SOURCE_PATH}/base/arena.cc" "${SOURCE_PATH}/htmlparser/htmlparser.cc" "${SOURCE_PATH}/htmlparser/jsparser.cc" "${SOURCE_PATH}/htmlparser/statemachine.cc" "${SOURCE_PATH}/per_expand_data.cc" "${SOURCE_PATH}/template.cc" "${SOURCE_PATH}/template_annotator.cc" "${SOURCE_PATH}/template_cache.cc" "${SOURCE_PATH}/template_dictionary.cc" "${SOURCE_PATH}/template_modifiers.cc" "${SOURCE_PATH}/template_namelist.cc" "${SOURCE_PATH}/template_pathops.cc" "${SOURCE_PATH}/template_string.cc" "${SOURCE_PATH}/windows/port.cc" ) file(COPY "${WINDOWS_SOURCE_PATH}/" DESTINATION ${COMMON_INCLUDES}) file(COPY "${WINDOWS_SOURCE_PATH}/config.h" DESTINATION ${COMMON_INCLUDES}/windows) file(COPY "${WINDOWS_SOURCE_PATH}/port.h" DESTINATION ${COMMON_INCLUDES}/windows) file(COPY ${HTMLPARSER_HEADERS} DESTINATION ${COMMON_INCLUDES}/htmlparser) file(COPY ${BASE_HEADERS} DESTINATION ${COMMON_INCLUDES}/base) execute_process( COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${HTMLPARSER_CONFIG} WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser OUTPUT_VARIABLE HTMLPARSER_CONFIG_H ) execute_process( COMMAND ${PYTHON_EXECUTABLE} ${FSM_GENERATOR} ${JSPASPER_CONFIG} WORKING_DIRECTORY ${COMMON_INCLUDES}/htmlparser OUTPUT_VARIABLE JSPASPER_CONFIG_H ) file(WRITE "${COMMON_INCLUDES}/htmlparser/htmlparser_fsm.h" "${HTMLPARSER_CONFIG_H}") file(WRITE "${COMMON_INCLUDES}/htmlparser/jsparser_fsm.h" "${JSPASPER_CONFIG_H}") include_directories(${COMMON_INCLUDES}) add_library(libctemplate ${SRC_FILES}) if(NOT BUILD_SHARED_LIBS) # Note: CTEMPLATE_DLL_DECL should be empty to build static file target_compile_definitions(libctemplate PRIVATE -DCTEMPLATE_DLL_DECL=) endif() install( TARGETS libctemplate RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY "${COMMON_INCLUDES}/ctemplate" DESTINATION include FILES_MATCHING PATTERN "*.h") endif() ================================================ FILE: ports/ctemplate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OlafvdSpek/ctemplate REF 1c397b63e62dc6547054f4711c27918aedce4c2d # accessed on 2020-09-14 SHA512 9691393cbb89972e95dba3cb802d0a0379f8f45cddc696e4ce223eb94887b3be46a9d999cac161069261ef63ba26fbdc392c53c3f977e1a7ae51768caa7739ea HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPYTHON_EXECUTABLE=${PYTHON3}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ctemplate" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/ctemplate/vcpkg.json ================================================ { "name": "ctemplate", "version-date": "2020-09-14", "port-version": 5, "description": "C++ CTemplate system", "homepage": "https://github.com/OlafvdSpek/ctemplate", "supports": "windows & !arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cthash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hanickadot/cthash REF cb62928766c9623bf86072e412220d59a65407d4 SHA512 9ce214eff8772fcbdeac147ffdb7dadb8755bf101ed8b5fd5961ed57bfe314392dc42d40699ad1ff41d823cc132488ae936b2cb17615a1ce6740cba655e89498 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/include/cthash" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cthash/vcpkg.json ================================================ { "name": "cthash", "version-date": "2024-11-16", "description": "constexpr implementation of SHA-2 and SHA-3 family of hashes", "homepage": "https://github.com/hanickadot/cthash", "license": "Apache-2.0" } ================================================ FILE: ports/ctp/portfile.cmake ================================================ message(STATUS "Note: the downloading server may only be avilable from 8:00AM-5:00PM (UTC+8), Mon-Fri (except public holidays in China)") vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(TRADEAPI_ARCHIVE URLS "http://www.sfit.com.cn/DocumentDown/api_3/5_2_2/v6.6.1_P1_tradeapi.zip" FILENAME "v6.6.1_P1_tradeapi.zip" SHA512 04d8ba233394fea04dacfa4bcb8758d9e068025ab3d963f6a89dcdfb79bbe10d58c10a71f630a039e130e4f8dfdc05cb4d1a52fd23d908f0798e43792d656cc4 ) if("datacollect" IN_LIST FEATURES) # Data collect library is not included in this version, and official release note said we should get it from traderapi_v6.3.19_P1 vcpkg_download_distfile(DATACOLLECT_ARCHIVE URLS "http://www.sfit.com.cn/DocumentDown/api_3/5_2_2/traderapi_v6.3.19_P1.zip" FILENAME "traderapi_v6.3.19_P1.zip" SHA512 ce44d761b2aebaaf131b91bcfc2fa0d5466c023310bcae1f03297fe228f62d2c281c09a82bb4068ae92ddd3d5ba00359b7b44b8c44af1181fff1954317d24bbb ) endif() vcpkg_extract_source_archive( TRADEAPI_UNPACK_PATH ARCHIVE ${TRADEAPI_ARCHIVE} NO_REMOVE_ONE_LEVEL ) if("datacollect" IN_LIST FEATURES) vcpkg_extract_source_archive( DATACOLLECT_UNPACK_PATH ARCHIVE ${DATACOLLECT_ARCHIVE} NO_REMOVE_ONE_LEVEL ) endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(TRADEAPI_SOURCE_PATH "${TRADEAPI_UNPACK_PATH}/v6.6.1_P1_20210406_winApi/tradeapi/20210406_tradeapi_se_windows") elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(TRADEAPI_SOURCE_PATH "${TRADEAPI_UNPACK_PATH}/v6.6.1_P1_20210406_winApi/tradeapi/20210406_tradeapi64_se_windows") elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_extract_source_archive( TRADEAPI_LINUX_TAR_PATH ARCHIVE "${TRADEAPI_UNPACK_PATH}/v6.6.1_P1_20210406_api_tradeapi_linux64.tar" ) set(TRADEAPI_SOURCE_PATH "${TRADEAPI_LINUX_TAR_PATH}/v6.6.1_P1_20210406_api_tradeapi_se_linux64") else() message(FATAL_ERROR "${TARGET_TRIPLET} is not a supported platform" ) endif() if("datacollect" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(DATACOLLECT_SOURCE_PATH "${DATACOLLECT_UNPACK_PATH}/v6.3.19_P1_20200106_winApi/20200106_clientdll_windows") elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(DATACOLLECT_SOURCE_PATH "${DATACOLLECT_UNPACK_PATH}/v6.3.19_P1_20200106_winApi/20200106_clientdll64_windows") elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_extract_source_archive( DATACOLLECT_LINUX_TAR_PATH ARCHIVE "${DATACOLLECT_UNPACK_PATH}/v6.3.19_P1_20200106_api.tar" ) set(DATACOLLECT_SOURCE_PATH "${DATACOLLECT_LINUX_TAR_PATH}/v6.3.19_P1_20200106_api_clientdatacollectdll_linux64") else() message(FATAL_ERROR "${TARGET_TRIPLET} is not a supported platform" ) endif() endif() file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "*.lib") file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/bin FILES_MATCHING PATTERN "*.dll") file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "*.lib") file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin FILES_MATCHING PATTERN "*.dll") elseif(VCPKG_TARGET_IS_LINUX) file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "*.so") file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "*.so") endif() file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} FILES_MATCHING PATTERN "*.xml") file(INSTALL ${TRADEAPI_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} FILES_MATCHING PATTERN "*.dtd") if("datacollect" IN_LIST FEATURES) file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h") if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "*.lib") file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/bin FILES_MATCHING PATTERN "*.dll") file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "*.lib") file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin FILES_MATCHING PATTERN "*.dll") elseif(VCPKG_TARGET_IS_LINUX) file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib FILES_MATCHING PATTERN "*.so") file(INSTALL ${DATACOLLECT_SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib FILES_MATCHING PATTERN "*.so") endif() endif() file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "Copyright By Shanghai Futures Information Technology Co.,Ltd") ================================================ FILE: ports/ctp/vcpkg.json ================================================ { "name": "ctp", "version-string": "6.6.1_P1_20210406_se", "port-version": 4, "description": "The Comprehensive Transaction Platform (CTP) is a future brokerage management system developed specially for futures companies. CTP API client library allows users to connect to CTP gateway for algorithmic trading.", "homepage": "http://www.sfit.com.cn/index.htm", "supports": "!osx & !uwp & !arm & !(static & staticcrt)", "features": { "datacollect": { "description": "Data collect support of CTP" } } } ================================================ FILE: ports/ctpg/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO peter-winter/ctpg REF "v${VERSION}" SHA512 630fb49e0dd46dfede6ea8ae1b62019e2b3119ff18abe0e398a771d83d9980e4e47f57d500f2d69d34ef7f4653e4a5edcdacf0634fcd014c6bdb2824023a96a4 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCTPG_ENABLE_INSTALL=ON -DCTPG_ENABLE_TESTS=OFF -DCTPG_WARNING_FLAGS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}/cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/ctpg/vcpkg.json ================================================ { "name": "ctpg", "version": "1.3.7", "port-version": 2, "description": "Compile Time Parser Generator is a C++ single header library which takes a language description as a C++ code and turns it into a LR1 table parser with a deterministic finite automaton lexical analyzer, all in compile time.", "homepage": "https://github.com/peter-winter/ctpg", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ctre/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hanickadot/compile-time-regular-expressions REF "v${VERSION}" SHA512 4bed66b8adbf1de4f73963370e8b210787ace2f50d956cac141f1353c6a4e0ed0dcd62eb61cf54ae3e64875752ffdc04b67985a25aa50a2a245bc9039ab39f46 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCTRE_BUILD_TESTS=OFF -DCTRE_BUILD_PACKAGE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ctre") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ctre/vcpkg.json ================================================ { "name": "ctre", "version": "3.10.0", "description": "A Compile time PCRE (almost) compatible regular expression matcher", "homepage": "https://github.com/hanickadot/compile-time-regular-expressions", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ctstraffic/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/ctsTraffic REF 88a415197951912fc70e440b31cad8d4ff4ea68a SHA512 152ee25d1ba70c68c5bae61ee08d1d2905efd28a10c48672de852c8ee9d0964a9202814cdcc40bca712ef69f952630509810827226861dad16516f5e0827d879 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # Windows port only includes tools. include("${CURRENT_PORT_DIR}/prepare_for_build.cmake") prepare_for_build("${SOURCE_PATH}") vcpkg_list(SET MSBUILD_OPTIONS "/p:UseVcpkg=yes" ) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH ctsTraffic/ctsTraffic.vcxproj OPTIONS ${MSBUILD_OPTIONS} ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ctstraffic/prepare_for_build.cmake ================================================ function(prepare_for_build CTSTRAFFIC_SOURCE_DIR) message("-- Modifying hardcoded 'NuGet' directives in .vcxproj files") file(GLOB_RECURSE PROJ_FILES "${CTSTRAFFIC_SOURCE_DIR}/*.vcxproj") foreach(PROJ_FILE ${PROJ_FILES}) file(READ ${PROJ_FILE} PROJ_FILE_CONTENT) STRING(REGEX REPLACE "" "" PROJ_FILE_CONTENT "${PROJ_FILE_CONTENT}" ) file(WRITE ${PROJ_FILE} "${PROJ_FILE_CONTENT}") endforeach() endfunction() ================================================ FILE: ports/ctstraffic/usage ================================================ See https://github.com/microsoft/ctsTraffic for usage instructions or .\ctsTraffic.exe -help ================================================ FILE: ports/ctstraffic/vcpkg.json ================================================ { "name": "ctstraffic", "version": "2.0.3.2", "description": "ctsTraffic is a highly scalable client/server networking tool giving detailed performance and reliability analytics.", "homepage": "https://github.com/microsoft/ctsTraffic/", "license": "Apache-2.0", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-msbuild", "host": true }, "wil" ] } ================================================ FILE: ports/cubeb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mozilla/cubeb REF f1bfefbbd412eaa0fe89f5afb3c11b427dc2446a SHA512 541bdcdc17c02f51e6faae1c90e0ddf30f40b137bb47498f7845919107190a4acb97d88e26ccf4877dbce7aeddee0f6538fd34c71396bc6a81644438a1a3242e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DUSE_SANITIZERS=OFF -DBUILD_TESTS=OFF -DBUILD_TOOLS=OFF -DDOXYGEN_EXECUTABLE= # Prevents the generation of documentation ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cubeb) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/cubeb/vcpkg.json ================================================ { "name": "cubeb", "version-date": "2023-09-26", "port-version": 1, "description": "Cross platform audio library", "homepage": "https://github.com/mozilla/cubeb", "license": "ISC", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cuda/portfile.cmake ================================================ # This package doesn't install CUDA. It instead verifies that CUDA is installed. # Other packages can depend on this package to declare a dependency on CUDA. # If this package is installed, we assume that CUDA is properly installed. #note: this port must be kept in sync with CUDNN and NCCL ports: every time one is upgraded, the other must be too include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake") vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT) file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/cuda/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake") ================================================ FILE: ports/cuda/vcpkg.json ================================================ { "name": "cuda", "version": "10.1", "port-version": 13, "description": "A parallel computing platform and programming model", "homepage": "https://developer.nvidia.com/cuda-toolkit", "license": null, "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)" } ================================================ FILE: ports/cuda/vcpkg_find_cuda.cmake ================================================ function(vcpkg_find_cuda) cmake_parse_arguments(PARSE_ARGV 0 vfc "" "OUT_CUDA_TOOLKIT_ROOT;OUT_CUDA_VERSION" "") if(NOT vfc_OUT_CUDA_TOOLKIT_ROOT) message(FATAL_ERROR "vcpkg_find_cuda() requres an OUT_CUDA_TOOLKIT_ROOT argument") endif() set(CUDA_REQUIRED_VERSION "10.1.0") set(CUDA_PATHS ENV CUDA_PATH ENV CUDA_HOME ENV CUDA_BIN_PATH ENV CUDA_TOOLKIT_ROOT_DIR) if (VCPKG_TARGET_IS_WINDOWS) find_program(NVCC NAMES nvcc.exe PATHS ${CUDA_PATHS} PATH_SUFFIXES bin bin64 DOC "Toolkit location." NO_DEFAULT_PATH ) else() if (VCPKG_TARGET_IS_LINUX) set(platform_base "/usr/local/cuda-") else() set(platform_base "/Developer/NVIDIA/CUDA-") endif() file(GLOB possible_paths "${platform_base}*") set(FOUND_PATH ) foreach (p ${possible_paths}) # Extract version number from end of string string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p}) if (IS_DIRECTORY ${p} AND p_version) if (p_version VERSION_GREATER_EQUAL CUDA_REQUIRED_VERSION) set(FOUND_PATH ${p}) break() endif() endif() endforeach() vcpkg_list(APPEND CUDA_PATHS /usr/bin) find_program(NVCC NAMES nvcc PATHS ${CUDA_PATHS} PATHS ${FOUND_PATH} PATH_SUFFIXES bin bin64 DOC "Toolkit location." NO_DEFAULT_PATH ) endif() set(error_code 1) if (NVCC) execute_process( COMMAND ${NVCC} --version OUTPUT_VARIABLE NVCC_OUTPUT RESULT_VARIABLE error_code) endif() if (error_code) message(STATUS "Executing ${NVCC} --version resulted in error: ${error_code}") message(FATAL_ERROR "Could not find CUDA. Before continuing, please download and install CUDA (v${CUDA_REQUIRED_VERSION} or higher) from:" "\n https://developer.nvidia.com/cuda-downloads\n") endif() # Sample output: # NVIDIA (R) Cuda compiler driver # Copyright (c) 2005-2016 NVIDIA Corporation # Built on Sat_Sep__3_19:05:48_CDT_2016 # Cuda compilation tools, release 8.0, V8.0.44 string(REGEX MATCH "V([0-9]+)\\.([0-9]+)\\.([0-9]+)" CUDA_VERSION ${NVCC_OUTPUT}) message(STATUS "Found CUDA ${CUDA_VERSION}") set(CUDA_VERSION_MAJOR "${CMAKE_MATCH_1}") set(CUDA_VERSION_MINOR "${CMAKE_MATCH_2}") set(CUDA_VERSION_MAJOR_MINOR "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}") if (CUDA_VERSION_MAJOR_MINOR VERSION_LESS CUDA_REQUIRED_VERSION) message(FATAL_ERROR "CUDA v${CUDA_VERSION_MAJOR_MINOR} found, but v${CUDA_REQUIRED_VERSION} is required. Please download and install a more recent version of CUDA from:" "\n https://developer.nvidia.com/cuda-downloads\n") endif() get_filename_component(CUDA_TOOLKIT_ROOT "${NVCC}" DIRECTORY) get_filename_component(CUDA_TOOLKIT_ROOT "${CUDA_TOOLKIT_ROOT}" DIRECTORY) set(${vfc_OUT_CUDA_TOOLKIT_ROOT} "${CUDA_TOOLKIT_ROOT}" PARENT_SCOPE) if(DEFINED vfc_OUT_CUDA_VERSION) set(${vfc_OUT_CUDA_VERSION} "${CUDA_VERSION_MAJOR_MINOR}" PARENT_SCOPE) endif() endfunction() ================================================ FILE: ports/cuda-api-wrappers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eyalroz/cuda-api-wrappers REF "v${VERSION}" SHA512 5d42cebdc1361e525fc93ea71df6b126f9ce79b2aad3af60e1e59caa8185e3e06997452c588505a294200917c84840f33324bcea8c11ee911b5fd5b11a6b1f9d HEAD_REF master ) # head only library set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCAW_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cuda-api-wrappers/usage ================================================ cuda-api-wrappers provides CMake targets: find_package(cuda-api-wrappers CONFIG REQUIRED) target_link_libraries(main PRIVATE cuda-api-wrappers::rtc cuda-api-wrappers::nvtx cuda-api-wrappers::runtime-and-driver cuda-api-wrappers::fatbin) ================================================ FILE: ports/cuda-api-wrappers/vcpkg.json ================================================ { "name": "cuda-api-wrappers", "version": "0.8.1", "description": "Header-only library of integrated wrappers around the core parts of NVIDIA's CUDA execution ecosystem", "homepage": "https://github.com/eyalroz/cuda-api-wrappers", "license": "BSD-3-Clause", "dependencies": [ "cuda", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cudnn/FindCUDNN.cmake ================================================ # Distributed under the OSI-approved BSD 3-Clause License. #.rst: # FindCUDNN # -------- # # Result Variables # ^^^^^^^^^^^^^^^^ # # This module will set the following variables in your project:: # # ``CUDNN_FOUND`` # True if CUDNN found on the local system # # ``CUDNN_INCLUDE_DIRS`` # Location of CUDNN header files. # # ``CUDNN_LIBRARIES`` # The CUDNN libraries. # # ``CuDNN::CuDNN`` # The CUDNN target # include(FindPackageHandleStandardArgs) file(GLOB CUDNN_VERSION_DIRS LIST_DIRECTORIES true "$ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v[1-9]*.[0-9]*" ) find_path(CUDNN_INCLUDE_DIR NAMES cudnn.h cudnn_v8.h cudnn_v7.h HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} ${CUDNN_VERSION_DIRS} /usr/include /usr/include/x86_64-linux-gnu/ /usr/include/aarch64-linux-gnu/ PATH_SUFFIXES cuda/include include include/11.8 include/12.0 include/12.1 include/12.2 include/12.3 include/12.4 include/12.5 include/12.6 include/12.7 include/12.8 include/12.9) find_library(CUDNN_LIBRARY NAMES cudnn cudnn8 cudnn7 HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} ${CUDNN_VERSION_DIRS} /usr/lib/x86_64-linux-gnu/ /usr/lib/aarch64-linux-gnu/ /usr/ PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64 cuda/lib/x64 lib/11.8/x64 lib/12.0/x64 lib/12.1/x64 lib/12.2/x64 lib/12.3/x64 lib/12.4/x64 lib/12.5/x64 lib/12.6/x64 lib/12.7/x64 lib/12.8/x64 lib/12.9/x64) if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn.h") file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS) elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_v8.h") file(READ ${CUDNN_INCLUDE_DIR}/cudnn_v8.h CUDNN_HEADER_CONTENTS) elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_v7.h") file(READ ${CUDNN_INCLUDE_DIR}/cudnn_v7.h CUDNN_HEADER_CONTENTS) endif() if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version.h") file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version.h" CUDNN_VERSION_H_CONTENTS) string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") unset(CUDNN_VERSION_H_CONTENTS) elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version_v8.h") file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version_v8.h" CUDNN_VERSION_H_CONTENTS) string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") unset(CUDNN_VERSION_H_CONTENTS) elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version_v7.h") file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version_v7.h" CUDNN_VERSION_H_CONTENTS) string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") unset(CUDNN_VERSION_H_CONTENTS) endif() if(CUDNN_HEADER_CONTENTS) string(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)" _CUDNN_VERSION_MAJOR "${CUDNN_HEADER_CONTENTS}") string(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1" _CUDNN_VERSION_MAJOR "${_CUDNN_VERSION_MAJOR}") string(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)" _CUDNN_VERSION_MINOR "${CUDNN_HEADER_CONTENTS}") string(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1" _CUDNN_VERSION_MINOR "${_CUDNN_VERSION_MINOR}") string(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)" _CUDNN_VERSION_PATCH "${CUDNN_HEADER_CONTENTS}") string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1" _CUDNN_VERSION_PATCH "${_CUDNN_VERSION_PATCH}") if(NOT _CUDNN_VERSION_MAJOR) set(_CUDNN_VERSION "?") else() set(_CUDNN_VERSION "${_CUDNN_VERSION_MAJOR}.${_CUDNN_VERSION_MINOR}.${_CUDNN_VERSION_PATCH}") endif() endif() set(CUDNN_INCLUDE_DIRS ${CUDNN_INCLUDE_DIR}) set(CUDNN_LIBRARIES ${CUDNN_LIBRARY}) mark_as_advanced(CUDNN_LIBRARY CUDNN_INCLUDE_DIR) find_package_handle_standard_args(CUDNN REQUIRED_VARS CUDNN_INCLUDE_DIR CUDNN_LIBRARY VERSION_VAR CUDNN_VERSION ) set(CUDNN_DLL_DIR ${CUDNN_INCLUDE_DIR}) list(TRANSFORM CUDNN_DLL_DIR APPEND "/../bin") find_file(CUDNN_LIBRARY_DLL NAMES cudnn64_${CUDNN_VERSION_MAJOR}.dll PATHS ${CUDNN_DLL_DIR}) if(CUDNN_FOUND AND NOT TARGET CuDNN::CuDNN AND NOT CMAKE_SCRIPT_MODE_FILE) if(EXISTS "${CUDNN_LIBRARY_DLL}") add_library(CuDNN::CuDNN SHARED IMPORTED) set_target_properties(CuDNN::CuDNN PROPERTIES IMPORTED_LOCATION "${CUDNN_LIBRARY_DLL}" IMPORTED_IMPLIB "${CUDNN_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LANGUAGES "C") else() add_library(CuDNN::CuDNN UNKNOWN IMPORTED) set_target_properties(CuDNN::CuDNN PROPERTIES IMPORTED_LOCATION "${CUDNN_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${CUDNN_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LANGUAGES "C") endif() endif() ================================================ FILE: ports/cudnn/portfile.cmake ================================================ set(MINIMUM_CUDNN_VERSION "7.6.5") vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT OUT_CUDA_VERSION CUDA_VERSION) include("${CURRENT_PORT_DIR}/FindCUDNN.cmake") if (CUDNN_INCLUDE_DIR AND CUDNN_LIBRARY AND _CUDNN_VERSION VERSION_GREATER_EQUAL MINIMUM_CUDNN_VERSION) message(STATUS "Found CUDNN ${_CUDNN_VERSION} located on system: (include ${CUDNN_INCLUDE_DIR} lib: ${CUDNN_LIBRARY})") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) elseif(VCPKG_TARGET_IS_WINDOWS) message(FATAL_ERROR "Please download CUDNN from official sources (https://developer.nvidia.com/cudnn) and install it") else() message(FATAL_ERROR "Please install CUDNN using your system package manager (the same way you installed CUDA). For example: apt install libcudnn8-dev.") endif() file(INSTALL "${CURRENT_PORT_DIR}/FindCUDNN.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cudnn/usage ================================================ The package cudnn provides CMake variables: find_package(CUDNN REQUIRED) target_link_libraries(main PRIVATE ${CUDNN_LIBRARIES}) target_include_directories(main PRIVATE ${CUDNN_INCLUDE_DIRS}) Or the following CMake target: find_package(CUDNN REQUIRED) target_link_libraries(main PRIVATE CuDNN::CuDNN) ================================================ FILE: ports/cudnn/vcpkg-cmake-wrapper.cmake ================================================ set(CUDNN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${CUDNN_PREV_MODULE_PATH}) ================================================ FILE: ports/cudnn/vcpkg.json ================================================ { "name": "cudnn", "version": "7.6.5", "port-version": 16, "description": "NVIDIA's cuDNN deep neural network acceleration library.", "homepage": "https://developer.nvidia.com/cudnn", "license": null, "supports": "(windows & x64 & !uwp) | (linux & x64) | (linux & arm64)", "dependencies": [ "cuda" ] } ================================================ FILE: ports/cudnn-frontend/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIA/cudnn-frontend REF "v${VERSION}" SHA512 75943654652bbde8dc90cf52b58078a8c8250940827cebfe96c36750bc41047d016a94f1201f9e4069cdac56e0804c2f5a534ca86d4dc0f0ba4e65a97792a7a7 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/include/cudnn_frontend/thirdparty") set(VCPKG_BUILD_TYPE release) # header only, INTERFACE library vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_CUDA_COMPILER:FILEPATH=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" -DCUDNN_FRONTEND_BUILD_PYTHON_BINDINGS=OFF -DCUDNN_FRONTEND_BUILD_TESTS=OFF -DCUDNN_FRONTEND_BUILD_SAMPLES=OFF -DCUDNN_FRONTEND_SKIP_JSON_LIB=OFF # no macro definition MAYBE_UNUSED_VARIABLES CUDNN_FRONTEND_FETCH_PYBINDS_IN_CMAKE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cudnn_frontend PACKAGE_NAME cudnn_frontend) # make the installed files to see nlohmann/json.hpp from vcpkg vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/cudnn_frontend_utils.h" "\"cudnn_frontend/thirdparty/nlohmann/json.hpp\"" "" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/cudnn-frontend/vcpkg.json ================================================ { "name": "cudnn-frontend", "version-semver": "1.15.0", "description": "cudnn_frontend provides a c++ wrapper for the cudnn backend API and samples on how to use it", "homepage": "https://github.com/NVIDIA/cudnn-frontend", "license": "MIT", "dependencies": [ "cuda", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cunit/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.8.0) project (cunit C) set(HEADERS_DIR "${PROJECT_SOURCE_DIR}/CUnit/Headers") set(SOURCES_DIR "${PROJECT_SOURCE_DIR}/CUnit/Sources") if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 -D_CRT_SECURE_NO_WARNINGS) endif() configure_file( "${HEADERS_DIR}/CUnit.h.in" "${PROJECT_BINARY_DIR}/CUnit.h" @ONLY ) file(READ "${PROJECT_BINARY_DIR}/CUnit.h" CUNIT_H) if (BUILD_SHARED_LIBS) string(REPLACE "ifdef CU_DLL" "if 1" CUNIT_H "${CUNIT_H}") else() string(REPLACE "ifdef CU_DLL" "if 0" CUNIT_H "${CUNIT_H}") endif() file(WRITE "${PROJECT_BINARY_DIR}/CUnit.h" "${CUNIT_H}") include_directories("${PROJECT_BINARY_DIR}") include_directories(${HEADERS_DIR}) add_library(cunit "${SOURCES_DIR}/Automated/Automated.c" "${SOURCES_DIR}/Basic/Basic.c" "${SOURCES_DIR}/Console/Console.c" "${SOURCES_DIR}/Framework/CUError.c" "${SOURCES_DIR}/Framework/MyMem.c" "${SOURCES_DIR}/Framework/TestDB.c" "${SOURCES_DIR}/Framework/TestRun.c" "${SOURCES_DIR}/Framework/Util.c" ) target_compile_definitions(cunit PRIVATE -DCU_BUILD_DLL) target_include_directories(cunit INTERFACE $) install(TARGETS cunit EXPORT unofficial-cunit-config) install(EXPORT unofficial-cunit-config NAMESPACE unofficial::cunit:: DESTINATION share/unofficial-cunit FILE unofficial-cunit-config.cmake ) if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY "${HEADERS_DIR}/" DESTINATION include/CUnit FILES_MATCHING PATTERN "*.h") install(FILES "${PROJECT_BINARY_DIR}/CUnit.h" DESTINATION include/CUnit) endif() ================================================ FILE: ports/cunit/portfile.cmake ================================================ set(VERSION 2.1) set(RELEASE 3) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO cunit/CUnit REF "${VERSION}-${RELEASE}" FILENAME "CUnit-${VERSION}-${RELEASE}.tar.bz2" SHA512 547b417109332446dfab8fda17bf4ccd2da841dc93f824dc90a20635bcf1fb80fb2176500d8a0906940f3f3d3e2f77b2d70a71090c9ab84ad9af43f3582bc487 ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" "-DRELEASE=${RELEASE}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-cunit) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cunit/vcpkg.json ================================================ { "name": "cunit", "version": "2.1.3", "port-version": 8, "description": "CUnit is a lightweight system for writing, administering, and running unit tests in C. It provides C programmers a basic testing functionality with a flexible variety of user interfaces", "homepage": "https://sourceforge.net/projects/cunit/", "license": "LGPL-2.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/curl/cmake-project-include.cmake ================================================ if(ANDROID AND ANDROID_NATIVE_API_LEVEL LESS 24) # https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md set(HAVE_FILE_OFFSET_BITS FALSE CACHE INTERNAL "") endif() if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") add_compile_definitions(_WINSOCK_DEPRECATED_NO_WARNINGS) endif() ================================================ FILE: ports/curl/dependencies.patch ================================================ diff --git a/CMake/FindBrotli.cmake b/CMake/FindBrotli.cmake index b5437e7525..14dbbb9d3f 100644 --- a/CMake/FindBrotli.cmake +++ b/CMake/FindBrotli.cmake @@ -57,6 +57,17 @@ if(_brotli_FOUND) set(_brotli_LIBRARIES "${_brotli_STATIC_LIBRARIES}") endif() message(STATUS "Found Brotli (via pkg-config): ${_brotli_INCLUDE_DIRS} (found version \"${BROTLI_VERSION}\")") + find_package(_brotli_cmake NAMES unofficial-brotli) + if(TARGET unofficial::brotli::brotlidec AND NOT TARGET CURL::brotli) + add_library(CURL::brotli INTERFACE IMPORTED) + set_target_properties(CURL::brotli PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_brotli_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_brotli_pc_requires}" + INTERFACE_LINK_LIBRARIES unofficial::brotli::brotlidec) + endif() +elseif(1) + set(Brotli_FOUND FALSE) + set(BROTLI_FOUND FALSE) else() find_path(BROTLI_INCLUDE_DIR "brotli/decode.h") if(BROTLI_USE_STATIC_LIBS) diff --git a/CMake/FindCares.cmake b/CMake/FindCares.cmake index 3c05c3b2eb..b9f022cdd4 100644 --- a/CMake/FindCares.cmake +++ b/CMake/FindCares.cmake @@ -55,6 +55,17 @@ if(_cares_FOUND) set(_cares_LIBRARIES "${_cares_STATIC_LIBRARIES}") endif() message(STATUS "Found Cares (via pkg-config): ${_cares_INCLUDE_DIRS} (found version \"${CARES_VERSION}\")") + find_package(_cares_cmake NAMES c-ares) + if(TARGET c-ares::cares AND NOT TARGET CURL::cares) + add_library(CURL::cares INTERFACE IMPORTED) + set_target_properties(CURL::cares PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_cares_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_cares_pc_requires}" + INTERFACE_LINK_LIBRARIES c-ares::cares) + endif() +elseif(1) + set(Cares_FOUND FALSE) + set(CARES_FOUND FALSE) else() find_path(CARES_INCLUDE_DIR NAMES "ares.h") if(CARES_USE_STATIC_LIBS) diff --git a/CMake/FindGSS.cmake b/CMake/FindGSS.cmake index e36f75bf9c..c4c7c4ad81 100644 --- a/CMake/FindGSS.cmake +++ b/CMake/FindGSS.cmake @@ -269,7 +269,6 @@ if(GSS_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_gss_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_gss_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_gss_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_gss_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_gss_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_gss_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindGnuTLS.cmake b/CMake/FindGnuTLS.cmake index fff57b2c29..7d81acd99a 100644 --- a/CMake/FindGnuTLS.cmake +++ b/CMake/FindGnuTLS.cmake @@ -36,6 +36,7 @@ set(_gnutls_pc_requires "gnutls") +unset(GNUTLS_LIBRARY CACHE) # from shiftmedia-libgnutls cmake wrapper if(CURL_USE_PKGCONFIG AND NOT DEFINED GNUTLS_INCLUDE_DIR AND NOT DEFINED GNUTLS_LIBRARY) @@ -90,7 +91,6 @@ if(GNUTLS_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_gnutls_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_gnutls_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_gnutls_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_gnutls_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_gnutls_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_gnutls_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLDAP.cmake b/CMake/FindLDAP.cmake index 2f5cc713c7..63c1b0800f 100644 --- a/CMake/FindLDAP.cmake +++ b/CMake/FindLDAP.cmake @@ -113,7 +113,6 @@ if(LDAP_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_ldap_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_ldap_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_ldap_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_ldap_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_ldap_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_ldap_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLibgsasl.cmake b/CMake/FindLibgsasl.cmake index 5ddf957d72..db462466e4 100644 --- a/CMake/FindLibgsasl.cmake +++ b/CMake/FindLibgsasl.cmake @@ -89,7 +89,6 @@ if(LIBGSASL_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_libgsasl_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_libgsasl_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_libgsasl_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_libgsasl_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_libgsasl_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_libgsasl_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLibidn2.cmake b/CMake/FindLibidn2.cmake index 336a7f7b40..b2f3eaf534 100644 --- a/CMake/FindLibidn2.cmake +++ b/CMake/FindLibidn2.cmake @@ -90,7 +90,6 @@ if(LIBIDN2_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_libidn2_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_libidn2_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_libidn2_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_libidn2_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_libidn2_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_libidn2_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLibpsl.cmake b/CMake/FindLibpsl.cmake index 9b1a0cdd97..a7fe288883 100644 --- a/CMake/FindLibpsl.cmake +++ b/CMake/FindLibpsl.cmake @@ -90,7 +90,6 @@ if(LIBPSL_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_libpsl_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_libpsl_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_libpsl_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_libpsl_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_libpsl_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_libpsl_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLibrtmp.cmake b/CMake/FindLibrtmp.cmake index 853ba63ad0..a9d24d9b3a 100644 --- a/CMake/FindLibrtmp.cmake +++ b/CMake/FindLibrtmp.cmake @@ -110,7 +110,6 @@ if(LIBRTMP_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_librtmp_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_librtmp_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_librtmp_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_librtmp_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_librtmp_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_librtmp_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindLibssh2.cmake b/CMake/FindLibssh2.cmake index abed471eb2..f07bb0226b 100644 --- a/CMake/FindLibssh2.cmake +++ b/CMake/FindLibssh2.cmake @@ -55,6 +55,17 @@ if(_libssh2_FOUND AND _libssh2_INCLUDE_DIRS) set(_libssh2_LIBRARIES "${_libssh2_STATIC_LIBRARIES}") endif() message(STATUS "Found Libssh2 (via pkg-config): ${_libssh2_INCLUDE_DIRS} (found version \"${LIBSSH2_VERSION}\")") + find_package(_libssh2_cmake NAMES libssh2) + if(TARGET libssh2::libssh2 AND NOT TARGET CURL::libssh2) + add_library(CURL::libssh2 INTERFACE IMPORTED) + set_target_properties(CURL::libssh2 PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_libssh2_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_libssh2_pc_requires}" + INTERFACE_LINK_LIBRARIES libssh2::libssh2) + endif() +elseif(1) + set(Libssh2_FOUND FALSE) + set(LIBSSH2_FOUND FALSE) else() find_path(LIBSSH2_INCLUDE_DIR NAMES "libssh2.h") if(LIBSSH2_USE_STATIC_LIBS) diff --git a/CMake/FindMbedTLS.cmake b/CMake/FindMbedTLS.cmake index 8b67ce9acf..f3c984079a 100644 --- a/CMake/FindMbedTLS.cmake +++ b/CMake/FindMbedTLS.cmake @@ -65,6 +65,17 @@ if(_mbedtls_FOUND) set(_mbedtls_LIBRARIES "${_mbedtls_STATIC_LIBRARIES}") endif() message(STATUS "Found MbedTLS (via pkg-config): ${_mbedtls_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")") + find_package(_mbedtls_cmake NAMES MbedTLS) + if(TARGET MbedTLS::mbedtls AND NOT TARGET CURL::mbedtls) + add_library(CURL::mbedtls INTERFACE IMPORTED) + set_target_properties(CURL::mbedtls PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_mbedtls_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_mbedtls_pc_requires}" + INTERFACE_LINK_LIBRARIES MbedTLS::mbedtls MbedTLS::mbedx509 MbedTLS::mbedcrypto) + endif() +elseif(1) + set(MbedTLS_FOUND FALSE) + set(MBEDTLS_FOUND FALSE) else() set(_mbedtls_pc_requires "") # Depend on pkg-config only when found via pkg-config diff --git a/CMake/FindNGHTTP2.cmake b/CMake/FindNGHTTP2.cmake index b2a8c97ccd..8b3a1c72d3 100644 --- a/CMake/FindNGHTTP2.cmake +++ b/CMake/FindNGHTTP2.cmake @@ -101,7 +101,6 @@ if(NGHTTP2_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_nghttp2_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_nghttp2_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_nghttp2_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_nghttp2_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_nghttp2_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_nghttp2_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindNGHTTP3.cmake b/CMake/FindNGHTTP3.cmake index 57550bffaf..b9bd85e43b 100644 --- a/CMake/FindNGHTTP3.cmake +++ b/CMake/FindNGHTTP3.cmake @@ -54,6 +54,16 @@ if(_nghttp3_FOUND) set(_nghttp3_LIBRARIES "${_nghttp3_STATIC_LIBRARIES}") endif() message(STATUS "Found NGHTTP3 (via pkg-config): ${_nghttp3_INCLUDE_DIRS} (found version \"${NGHTTP3_VERSION}\")") + find_package(_nghttp3_cmake NAMES nghttp3) + if((TARGET nghttp3::nghttp3 OR TARGET nghttp3::nghttp3_static) AND NOT TARGET CURL::nghttp3) + add_library(CURL::nghttp3 INTERFACE IMPORTED) + set_target_properties(CURL::nghttp3 PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_nghttp3_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_nghttp3_pc_requires}" + INTERFACE_LINK_LIBRARIES $,nghttp3::nghttp3,nghttp3::nghttp3_static>) + endif() +elseif(1) + set(NGHTTP3_FOUND FALSE) else() find_path(NGHTTP3_INCLUDE_DIR NAMES "nghttp3/nghttp3.h") if(NGHTTP3_USE_STATIC_LIBS) diff --git a/CMake/FindNGTCP2.cmake b/CMake/FindNGTCP2.cmake index 615ee4a3c2..c2b0fd2e4d 100644 --- a/CMake/FindNGTCP2.cmake +++ b/CMake/FindNGTCP2.cmake @@ -92,6 +92,24 @@ if(_ngtcp2_FOUND) set(_ngtcp2_LIBRARIES "${_ngtcp2_STATIC_LIBRARIES}") endif() message(STATUS "Found NGTCP2 (via pkg-config): ${_ngtcp2_INCLUDE_DIRS} (found version \"${NGTCP2_VERSION}\")") + find_package(_ngtcp2_cmake NAMES ngtcp2) + set(_ngtcp2_cmake_target ngtcp2::ngtcp2) + if(_ngtcp2_crypto_backend) + # ngtcp2::ngtcp2 is a public link library of the crypto backend. + set(_ngtcp2_cmake_target ngtcp2::ngtcp2_crypto_${_ngtcp2_crypto_backend}) + endif() + if(TARGET ${_ngtcp2_cmake_target}_static) + string(APPEND _ngtcp2_cmake_target "_static") + endif() + if(TARGET ${_ngtcp2_cmake_target} AND NOT TARGET CURL::ngtcp2) + add_library(CURL::ngtcp2 INTERFACE IMPORTED) + set_target_properties(CURL::ngtcp2 PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_ngtcp2_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_ngtcp2_pc_requires}" + INTERFACE_LINK_LIBRARIES ${_ngtcp2_cmake_target}) + endif() +elseif(0) + set(NGTCP2_FOUND FALSE) else() find_path(NGTCP2_INCLUDE_DIR NAMES "ngtcp2/ngtcp2.h") if(NGTCP2_USE_STATIC_LIBS) diff --git a/CMake/FindNettle.cmake b/CMake/FindNettle.cmake index d22865ffad..049265bc8b 100644 --- a/CMake/FindNettle.cmake +++ b/CMake/FindNettle.cmake @@ -95,7 +95,6 @@ if(NETTLE_FOUND) INTERFACE_LIBCURL_PC_MODULES "${_nettle_pc_requires}" INTERFACE_COMPILE_OPTIONS "${_nettle_CFLAGS}" INTERFACE_INCLUDE_DIRECTORIES "${_nettle_INCLUDE_DIRS}" - INTERFACE_LINK_DIRECTORIES "${_nettle_LIBRARY_DIRS}" - INTERFACE_LINK_LIBRARIES "${_nettle_LIBRARIES}") + INTERFACE_LINK_LIBRARIES "${_nettle_LINK_LIBRARIES}") endif() endif() diff --git a/CMake/FindWolfSSL.cmake b/CMake/FindWolfSSL.cmake index 3a3c05f0fd..4c1b832898 100644 --- a/CMake/FindWolfSSL.cmake +++ b/CMake/FindWolfSSL.cmake @@ -57,6 +57,17 @@ if(_wolfssl_FOUND) set(WOLFSSL_FOUND TRUE) set(WOLFSSL_VERSION ${_wolfssl_VERSION}) message(STATUS "Found WolfSSL (via pkg-config): ${_wolfssl_INCLUDE_DIRS} (found version \"${WOLFSSL_VERSION}\")") + find_package(_wolfssl_cmake NAMES wolfssl) + if(TARGET wolfssl::wolfssl AND NOT TARGET CURL::wolfssl) + add_library(CURL::wolfssl INTERFACE IMPORTED) + set_target_properties(CURL::wolfssl PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_wolfssl_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_wolfssl_pc_requires}" + INTERFACE_LINK_LIBRARIES wolfssl::wolfssl) + endif() +elseif(1) + set(WolfSSL_FOUND FALSE) + set(WOLFSSL_FOUND FALSE) else() find_path(WOLFSSL_INCLUDE_DIR NAMES "wolfssl/ssl.h") find_library(WOLFSSL_LIBRARY NAMES "wolfssl") diff --git a/CMake/FindZstd.cmake b/CMake/FindZstd.cmake index baf6148f0d..c75cfdf47e 100644 --- a/CMake/FindZstd.cmake +++ b/CMake/FindZstd.cmake @@ -64,6 +64,17 @@ if(_zstd_FOUND) set(_zstd_LIBRARIES "${_zstd_STATIC_LIBRARIES}") endif() message(STATUS "Found Zstd (via pkg-config): ${_zstd_INCLUDE_DIRS} (found version \"${ZSTD_VERSION}\")") + find_package(_zstd_cmake NAMES zstd) + if(TARGET zstd::libzstd AND NOT TARGET CURL::zstd) + add_library(CURL::zstd INTERFACE IMPORTED) + set_target_properties(CURL::zstd PROPERTIES + INTERFACE_LIBCURL_PC_LINK_LIBRARIES "${_zstd_LINK_LIBRARIES}" + INTERFACE_LIBCURL_PC_MODULES "${_zstd_pc_requires}" + INTERFACE_LINK_LIBRARIES zstd::libzstd) + endif() +elseif(1) + set(Zstd_FOUND TRUE) + set(ZSTD_FOUND TRUE) else() find_path(ZSTD_INCLUDE_DIR NAMES "zstd.h") if(ZSTD_USE_STATIC_LIBS) diff --git a/CMake/curl-config.in.cmake b/CMake/curl-config.in.cmake index f4e17d29b3..45947ec6c9 100644 --- a/CMake/curl-config.in.cmake +++ b/CMake/curl-config.in.cmake @@ -62,74 +62,50 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_MODULE_PATH}) set(_curl_libs "") if("@HAVE_BROTLI@") - find_dependency(Brotli MODULE) - list(APPEND _curl_libs CURL::brotli) + find_dependency(unofficial-brotli CONFIG) endif() if("@USE_ARES@") - find_dependency(Cares MODULE) - list(APPEND _curl_libs CURL::cares) + find_dependency(c-ares CONFIG) endif() if("@HAVE_GSSAPI@") - find_dependency(GSS MODULE) - list(APPEND _curl_libs CURL::gss) endif() if("@USE_BACKTRACE@") find_dependency(Libbacktrace MODULE) list(APPEND _curl_libs CURL::libbacktrace) endif() if("@USE_GSASL@") - find_dependency(Libgsasl MODULE) - list(APPEND _curl_libs CURL::libgsasl) endif() if(NOT "@USE_WIN32_LDAP@" AND NOT "@CURL_DISABLE_LDAP@") - find_dependency(LDAP MODULE) - list(APPEND _curl_libs CURL::ldap) endif() if("@HAVE_LIBIDN2@") - find_dependency(Libidn2 MODULE) - list(APPEND _curl_libs CURL::libidn2) endif() if("@USE_LIBPSL@") - find_dependency(Libpsl MODULE) - list(APPEND _curl_libs CURL::libpsl) endif() if("@USE_LIBRTMP@") - find_dependency(Librtmp MODULE) - list(APPEND _curl_libs CURL::librtmp) endif() if("@USE_LIBSSH@") find_dependency(Libssh MODULE) list(APPEND _curl_libs CURL::libssh) endif() if("@USE_LIBSSH2@") - find_dependency(Libssh2 MODULE) - list(APPEND _curl_libs CURL::libssh2) + find_dependency(libssh2 CONFIG) endif() if("@USE_LIBUV@") find_dependency(Libuv MODULE) list(APPEND _curl_libs CURL::libuv) endif() if("@USE_MBEDTLS@") - find_dependency(MbedTLS MODULE) - list(APPEND _curl_libs CURL::mbedtls) + find_dependency(MbedTLS CONFIG) endif() if("@USE_NGHTTP2@") - find_dependency(NGHTTP2 MODULE) - list(APPEND _curl_libs CURL::nghttp2) endif() if("@USE_NGHTTP3@") - find_dependency(NGHTTP3 MODULE) - list(APPEND _curl_libs CURL::nghttp3) + find_dependency(nghttp3 CONFIG) endif() if("@USE_NGTCP2@") - find_dependency(NGTCP2 MODULE) - list(APPEND _curl_libs CURL::ngtcp2) + find_dependency(ngtcp2 CONFIG) endif() if("@USE_GNUTLS@") - find_dependency(GnuTLS MODULE) - list(APPEND _curl_libs CURL::gnutls) - find_dependency(Nettle MODULE) - list(APPEND _curl_libs CURL::nettle) endif() if("@USE_QUICHE@") find_dependency(Quiche MODULE) @@ -140,12 +116,10 @@ if("@USE_RUSTLS@") list(APPEND _curl_libs CURL::rustls) endif() if("@USE_WOLFSSL@") - find_dependency(WolfSSL MODULE) - list(APPEND _curl_libs CURL::wolfssl) + find_dependency(wolfssl CONFIG) endif() if("@HAVE_ZSTD@") - find_dependency(Zstd MODULE) - list(APPEND _curl_libs CURL::zstd) + find_dependency(zstd CONFIG) endif() set(CMAKE_MODULE_PATH ${_curl_cmake_module_path_save}) @@ -192,7 +166,11 @@ endif() # For compatibility with CMake's FindCURL.cmake set(CURL_VERSION_STRING "@CURLVERSION@") set(CURL_LIBRARIES @PROJECT_NAME@::@LIB_NAME@) -set(CURL_LIBRARIES_PRIVATE "@LIBCURL_PC_LIBS_PRIVATE_LIST@") +set(CURL_LIBRARIES_PRIVATE "") +# @CMAKE_BUILD_TYPE@ usage requirements +set(_z_vcpkg_CURL_CONFIG_LIBS "@CURL_CONFIG_LIBS@") +set(_z_vcpkg_LIBCURL_PC_LDFLAGS_PRIVATE "@LIBCURL_PC_LDFLAGS_PRIVATE@") +set(_z_vcpkg_LIBCURL_PC_LIBS_PRIVATE_LIST "@LIBCURL_PC_LIBS_PRIVATE_LIST@") set_and_check(CURL_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") set(CURL_SUPPORTED_PROTOCOLS "@CURL_SUPPORTED_PROTOCOLS_LIST@") diff --git a/CMakeLists.txt b/CMakeLists.txt index 154ba5ef8f..316ad603a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1853,6 +1853,44 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU") endif() endif() +# avoid downstream pkg-config requirement for CURL::dependency interface targets +# changing CURL_LIBS before add_subdirectory(src) +set(CURL_LIBS_RAW "${CURL_LIBS}") +set(CURL_LIBS "") +find_library(_libdl_absolute dl NO_CACHE) +find_library(_libm_absolute m NO_CACHE) +foreach(_lib IN LISTS CURL_LIBS_RAW) + if(NOT _lib MATCHES "CURL::") + list(APPEND CURL_LIBS ${_lib}) + continue() + endif() + get_target_property(_modules "${_lib}" INTERFACE_LIBCURL_PC_MODULES) + if(NOT _modules) + list(APPEND CURL_LIBS ${_lib}) + continue() + endif() + get_target_property(_pc_link_libs "${_lib}" INTERFACE_LIBCURL_PC_LINK_LIBRARIES) + get_target_property(_link_libs "${_lib}" INTERFACE_LINK_LIBRARIES) + if(_pc_link_libs AND NOT TARGET "${_link_libs}") + set(_link_libs "${_pc_link_libs}") + endif() + if(NOT _link_libs) + list(APPEND CURL_LIBS ${_lib}) + continue() + endif() + list(APPEND CURL_LIBS $) + foreach(_item IN LISTS _link_libs) + if(_item STREQUAL "${_libdl_absolute}") + set(_item dl) + list(REMOVE_ITEM CURL_LIBS $) + elseif(_item STREQUAL "${_libm_absolute}") + set(_item m) + list(REMOVE_ITEM CURL_LIBS $) + endif() + list(APPEND CURL_LIBS $) + endforeach() +endforeach() + if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") # MSVC but exclude clang-cl set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS "-MP") # Parallel compilation endif() @@ -2144,7 +2182,7 @@ if(NOT CURL_DISABLE_INSTALL) set(_explicit_libdirs "") set(LIBCURL_PC_REQUIRES_PRIVATE "") set(LIBCURL_PC_LIBS_PRIVATE_LIST "") - foreach(_lib IN LISTS CURL_LIBS _custom_libs _implicit_libs) + foreach(_lib IN LISTS CURL_LIBS_RAW _custom_libs _implicit_libs) if(TARGET "${_lib}") set(_explicit_libs "") get_target_property(_imported "${_lib}" IMPORTED) @@ -2184,8 +2222,25 @@ if(NOT CURL_DISABLE_INSTALL) endif() if(_modules) list(APPEND LIBCURL_PC_REQUIRES_PRIVATE "${_modules}") + get_target_property(_link_libs "${_lib}" INTERFACE_LIBCURL_PC_LINK_LIBRARIES) + if(_link_libs) + set(_explicit_libs "${_link_libs}") + endif() endif() + # deduplication and workaround for pkgconf 2.5.1 bug + if("${_explicit_libs};" MATCHES "/libcrypto.a;") + list(REMOVE_ITEM _modules "libcrypto") + list(APPEND _modules "libcrypto;") + endif() + if("${_explicit_libs};" MATCHES "/libz.a") + list(REMOVE_ITEM _modules "zlib") + list(APPEND _modules "zlib") + endif() + + set(LIBCURL_PC_LIBS_PRIVATE_NO_MODULES "${LIBCURL_PC_LIBS_PRIVATE}") + set(LIBCURL_PC_LIBS_PRIVATE "") + set(_original_lib "${_lib}") foreach(_lib IN LISTS _explicit_libs) if(_lib MATCHES "/") # This gets a bit more complex, because we want to specify the @@ -2204,23 +2259,44 @@ if(NOT CURL_DISABLE_INSTALL) if(NOT _libdir IN_LIST _sys_libdirs) list(APPEND _ldflags "-L${_libdir}") endif() + if(CMAKE_STATIC_LIBRARY_PREFIX STREQUAL "lib") string(REGEX REPLACE "^lib" "" _libname "${_libname}") + endif() + list(REMOVE_ITEM CURL_CONFIG_LIBS "-l${_libname}") list(APPEND LIBCURL_PC_LIBS_PRIVATE "-l${_libname}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") else() list(APPEND LIBCURL_PC_LIBS_PRIVATE "${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") endif() + elseif(_lib MATCHES "^-") # '-framework ' + list(APPEND _ldflags "${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") + list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") else() + list(REMOVE_ITEM CURL_CONFIG_LIBS "-l${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE "-l${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") endif() endforeach() + list(APPEND CURL_CONFIG_LIBS ${LIBCURL_PC_LIBS_PRIVATE}) + if(NOT _modules) + list(APPEND LIBCURL_PC_LIBS_PRIVATE_NO_MODULES ${LIBCURL_PC_LIBS_PRIVATE}) + endif() + set(LIBCURL_PC_LIBS_PRIVATE "${LIBCURL_PC_LIBS_PRIVATE_NO_MODULES}") elseif(_lib MATCHES "^-") # '-framework ' list(APPEND _ldflags "${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") else() + list(REMOVE_ITEM CURL_CONFIG_LIBS "-l${_lib}") + list(APPEND CURL_CONFIG_LIBS "-l${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE "-l${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE "-l${_lib}") + list(REMOVE_ITEM LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") list(APPEND LIBCURL_PC_LIBS_PRIVATE_LIST "${_lib}") endif() endforeach() @@ -2243,6 +2319,7 @@ if(NOT CURL_DISABLE_INSTALL) if(LIBCURL_PC_LIBS_PRIVATE) string(REPLACE ";" " " LIBCURL_PC_LIBS_PRIVATE "${LIBCURL_PC_LIBS_PRIVATE}") endif() + string(REPLACE ";" " " CURL_CONFIG_LIBS "${CURL_CONFIG_LIBS}") if(_ldflags) list(REMOVE_DUPLICATES _ldflags) string(REPLACE ";" " " _ldflags "${_ldflags}") diff --git a/curl-config.in b/curl-config.in index a1c8185875..bb6e053d23 100644 --- a/curl-config.in +++ b/curl-config.in @@ -155,7 +155,7 @@ while test "$#" -gt 0; do curllibdir='' fi if test '@ENABLE_SHARED@' = 'no'; then - echo "${curllibdir}-lcurl @LIBCURL_PC_LIBS_PRIVATE@" + echo "${curllibdir}-lcurl @LIBCURL_PC_LDFLAGS_PRIVATE@ @CURL_CONFIG_LIBS@" else echo "${curllibdir}-lcurl" fi @@ -167,7 +167,7 @@ while test "$#" -gt 0; do --static-libs) if test '@ENABLE_STATIC@' != 'no'; then - echo "@libdir@/libcurl.@libext@ @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@" + echo "@libdir@/libcurl.@libext@ @LIBCURL_PC_LDFLAGS_PRIVATE@ @CURL_CONFIG_LIBS@" else echo 'curl was built with static libraries disabled' >&2 exit 1 diff --git a/libcurl.pc.in b/libcurl.pc.in index c0ba5244a8..17b7db9220 100644 --- a/libcurl.pc.in +++ b/libcurl.pc.in @@ -33,9 +33,9 @@ Name: libcurl URL: https://curl.se/ Description: Library to transfer files with HTTP, FTP, etc. Version: @CURLVERSION@ -Requires: @LIBCURL_PC_REQUIRES@ +Requires: Requires.private: @LIBCURL_PC_REQUIRES_PRIVATE@ -Libs: -L${libdir} -lcurl @LIBCURL_PC_LIBS@ +Libs: -L${libdir} -lcurl Libs.private: @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@ -Cflags: -I${includedir} @LIBCURL_PC_CFLAGS@ +Cflags: -I${includedir} Cflags.private: @LIBCURL_PC_CFLAGS_PRIVATE@ ================================================ FILE: ports/curl/portfile.cmake ================================================ string(REPLACE "." "_" curl_version "curl-${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO curl/curl REF ${curl_version} SHA512 1ce097d400da48e038f64e637ed338ab5873b2a961b1837b615ef890e530fd711fe44d47527eecbc3652e67e09bed2bb81bb2045b8e0f5b5137236e74b458f96 HEAD_REF master PATCHES dependencies.patch ) # The on-the-fly tarballs do not carry the details of release tarballs. vcpkg_replace_string("${SOURCE_PATH}/include/curl/curlver.h" [[-DEV"]] [["]]) vcpkg_replace_string("${SOURCE_PATH}/include/curl/curlver.h" [[LIBCURL_TIMESTAMP "[unreleased]"]] [[LIBCURL_TIMESTAMP "[vcpkg]"]]) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES http2 USE_NGHTTP2 http3 USE_NGTCP2 wolfssl CURL_USE_WOLFSSL openssl CURL_USE_OPENSSL openssl CURL_CA_FALLBACK mbedtls CURL_USE_MBEDTLS ssh CURL_USE_LIBSSH2 tool BUILD_CURL_EXE c-ares ENABLE_ARES sspi CURL_WINDOWS_SSPI brotli CURL_BROTLI idn2 USE_LIBIDN2 winidn USE_WIN32_IDN zstd CURL_ZSTD psl CURL_USE_LIBPSL gssapi CURL_USE_GSSAPI gsasl CURL_USE_GSASL gnutls CURL_USE_GNUTLS rtmp USE_LIBRTMP httpsrr USE_HTTPSRR ssls-export USE_SSLS_EXPORT INVERTED_FEATURES ldap CURL_DISABLE_LDAP ldap CURL_DISABLE_LDAPS non-http HTTP_ONLY websockets CURL_DISABLE_WEBSOCKETS ) if("ssl" IN_LIST FEATURES AND NOT "http3" IN_LIST FEATURES AND # (windows & !uwp) | mingw to match curl[ssl]'s "platform" ((VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_UWP) OR VCPKG_TARGET_IS_MINGW)) list(APPEND FEATURE_OPTIONS -DCURL_USE_SCHANNEL=ON) endif() if("http3" IN_LIST FEATURES AND ("wolfssl" IN_LIST FEATURES OR "mbedtls" IN_LIST FEATURES OR "gnutls" IN_LIST FEATURES)) message(FATAL_ERROR "http3 is incompatible with curl multi-ssl, preventing combination with wolfssl, mbedtls or \ gnutls in vcpkg's curated registry. To use curl http3 on ngtcp2 on one of the other TLS backends, author an \ overlay-port which exchanges curl[ssl]'s and curl[http3]'s openssl dependencies with the backend you want.") endif() set(OPTIONS "") if(VCPKG_TARGET_IS_UWP) list(APPEND OPTIONS -DCURL_DISABLE_TELNET=ON -DENABLE_UNIX_SOCKETS=OFF ) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -DENABLE_UNICODE=ON) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ${FEATURE_OPTIONS} ${OPTIONS} -DBUILD_TESTING=OFF -DENABLE_CURL_MANUAL=OFF -DIMPORT_LIB_SUFFIX= # empty -DSHARE_LIB_OBJECT=OFF -DCURL_USE_PKGCONFIG=ON -DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() if ("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES curl AUTO_CLEAN) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/CURL) vcpkg_fixup_pkgconfig() set(namespec "curl") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(namespec "libcurl") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libcurl.pc" " -lcurl" " -l${namespec}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libcurl.pc" " -lcurl" " -l${namespec}-d") endif() #Fix install path vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/curl-config" "${CURRENT_PACKAGES_DIR}" "\${prefix}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/curl-config" "${CURRENT_INSTALLED_DIR}" "\${prefix}" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/curl-config" "\nprefix='\${prefix}'" [=[prefix=$(CDPATH= cd -- "$(dirname -- "$0")"/../../.. && pwd -P)]=]) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/curl-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/curl-config") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/curl-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "${CURRENT_PACKAGES_DIR}" "\${prefix}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "${CURRENT_INSTALLED_DIR}" "\${prefix}" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "\nprefix='\${prefix}/debug'" [=[prefix=$(CDPATH= cd -- "$(dirname -- "$0")"/../../../.. && pwd -P)]=]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "\nexec_prefix=\"\${prefix}\"" "\nexec_prefix=\"\${prefix}/debug\"") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "-lcurl" "-l${namespec}-d") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "curl." "curl-d.") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/curl-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/curl-config") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/curl/curl.h" "#ifdef CURL_STATICLIB" "#if 1" ) endif() file(INSTALL "${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(READ "${SOURCE_PATH}/lib/curlx/inet_ntop.c" inet_ntop_c) string(REGEX REPLACE "#i.*" "" inet_ntop_c "${inet_ntop_c}") set(inet_ntop_copyright "${CURRENT_BUILDTREES_DIR}/inet_ntop.c and inet_pton.c Notice") file(WRITE "${inet_ntop_copyright}" "${inet_ntop_c}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${inet_ntop_copyright}" ) ================================================ FILE: ports/curl/usage ================================================ curl is compatible with built-in CMake targets: find_package(CURL REQUIRED) target_link_libraries(main PRIVATE CURL::libcurl) ================================================ FILE: ports/curl/vcpkg-cmake-wrapper.cmake ================================================ function(z_vcpkg_curl_libraries_warning variable access value current_list_file stack) if(variable STREQUAL "CURL_LIBRARIES" AND access STREQUAL "READ_ACCESS" AND NOT z_vcpkg_curl_libraries_warning_issued) set(z_vcpkg_curl_libraries_warning_issued 1 PARENT_SCOPE) message(WARNING "CURL_LIBRARIES is '${CURL_LIBRARIES}'. " "When linking imported targets, exported CMake config must use \"find_dependency(CURL)\"." ) endif() endfunction() list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") list(GET ARGS 0 _z_vcpg_curl_name) _find_package(${ARGS} CONFIG) if(${_z_vcpg_curl_name}_FOUND) cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) set(_curl_target CURL::libcurl_shared) if(TARGET CURL::libcurl_static) set(_curl_target CURL::libcurl_static) endif() get_target_property(_curl_link_libraries ${_curl_target} INTERFACE_LINK_LIBRARIES) if(NOT _curl_link_libraries) set(_curl_link_libraries "") endif() if(_curl_link_libraries MATCHES "ZLIB::ZLIB") string(REGEX REPLACE "([\$]<[^;]*)?ZLIB::ZLIB([^;]*>)?" "${ZLIB_LIBRARIES}" _curl_link_libraries "${_curl_link_libraries}") endif() if(_curl_link_libraries MATCHES "OpenSSL::") string(REGEX REPLACE "([\$]<[^;]*)?OpenSSL::(SSL|Crypto)([^;]*>)?" "${OPENSSL_LIBRARIES}" _curl_link_libraries "${_curl_link_libraries}") endif() if(_curl_link_libraries MATCHES "::") # leave CURL_LIBRARIES as set by upstream (imported target), but add information. variable_watch(CURL_LIBRARIES "z_vcpkg_curl_libraries_warning") else() get_target_property(CURL_INCLUDE_DIRS ${_curl_target} INTERFACE_INCLUDE_DIRECTORIES) # resolve CURL_LIBRARIES to filepaths. if(WIN32) get_target_property(_curl_location_debug ${_curl_target} IMPORTED_IMPLIB_DEBUG) get_target_property(_curl_location_release ${_curl_target} IMPORTED_IMPLIB_RELEASE) endif() if(NOT _curl_location_debug AND NOT _curl_location_release) get_target_property(_curl_location_debug ${_curl_target} IMPORTED_LOCATION_DEBUG) get_target_property(_curl_location_release ${_curl_target} IMPORTED_LOCATION_RELEASE) endif() set(CURL_LIBRARY_DEBUG "${_curl_location_debug}" CACHE INTERNAL "vcpkg") set(CURL_LIBRARY_RELEASE "${_curl_location_release}" CACHE INTERNAL "vcpkg") include("${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake") select_library_configurations(CURL) set(CURL_LIBRARIES ${CURL_LIBRARY} ${_curl_link_libraries}) unset(_curl_link_libraries) unset(_curl_location_debug) unset(_curl_location_release) endif() unset(_curl_target) cmake_policy(POP) endif() ================================================ FILE: ports/curl/vcpkg.json ================================================ { "name": "curl", "version": "8.19.0", "description": "A library for transferring data with URLs", "homepage": "https://curl.se/", "license": "curl AND ISC AND BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "non-http", "ssl" ], "features": { "brotli": { "description": "brotli support (brotli)", "dependencies": [ "brotli" ] }, "c-ares": { "description": "c-ares support", "dependencies": [ "c-ares" ] }, "gnutls": { "description": "TLS support (gnutls)", "dependencies": [ { "name": "libgnutls", "platform": "!windows | mingw" }, { "name": "shiftmedia-libgnutls", "platform": "windows & !mingw" } ] }, "gsasl": { "description": "GSASL support (libgsasl)", "dependencies": [ "gsasl" ] }, "gssapi": { "description": "krb5 support", "supports": "!windows", "dependencies": [ "krb5" ] }, "http2": { "description": "HTTP2 support", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] }, "nghttp2" ] }, "http3": { "description": "HTTP3 support with ngtcp2 on openssl", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "openssl" ] }, "nghttp3", { "name": "ngtcp2", "default-features": false, "features": [ "openssl" ] } ] }, "httpsrr": { "description": "enable support for HTTPS RR" }, "idn": { "description": "Default IDN support", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "winidn" ], "platform": "windows" }, { "name": "curl", "default-features": false, "features": [ "idn2" ], "platform": "!windows" } ] }, "idn2": { "description": "idn2 support (libidn2)", "dependencies": [ "libidn2" ] }, "ldap": { "description": "LDAP support", "supports": "!uwp", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "non-http" ] }, { "name": "openldap", "platform": "!windows" } ] }, "mbedtls": { "description": "TLS support (mbedTLS)", "dependencies": [ "mbedtls" ] }, "non-http": { "description": "Enables protocols beyond HTTP/HTTPS/HTTP2/HTTP3" }, "openssl": { "description": "TLS support (OpenSSL)", "dependencies": [ "openssl" ] }, "psl": { "description": "Use psl support (libpsl)", "dependencies": [ "libpsl" ] }, "rtmp": { "description": "RTMP support", "dependencies": [ "librtmp" ] }, "ssh": { "description": "SSH support via libssh2", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "non-http" ] }, { "name": "curl", "default-features": false, "features": [ "openssl" ] }, "libssh2" ] }, "ssl": { "description": "Default SSL / TLS implementation.", "dependencies": [ { "$comment": "Defaults to schannel on Windows, unless http3 is also enabled", "name": "curl", "default-features": false, "features": [ "sspi" ], "platform": "(windows & !uwp) | mingw" }, { "$comment": "Otherwise, defaults to OpenSSL.", "name": "curl", "default-features": false, "features": [ "openssl" ], "platform": "(uwp | !windows) & !mingw" } ] }, "ssls-export": { "description": "SSL session import/export", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] } ] }, "sspi": { "description": "SSPI support", "supports": "(windows & !uwp) | mingw" }, "tool": { "description": "Builds curl executable", "supports": "!uwp" }, "websockets": { "description": "WebSocket support" }, "winidn": { "description": "WinIDN support", "supports": "windows" }, "winldap": { "description": "Obsolete. Use feature 'ldap' instead.", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ldap" ] } ] }, "wolfssl": { "description": "SSL support (wolfSSL)", "dependencies": [ "wolfssl" ] }, "zstd": { "description": "ZStandard support (zstd)", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/curlcpp/fix-cmake.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f3c6d78..a457717 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,7 +43,7 @@ if(NOT BUILD_SHARED_LIBS) ${CURLCPP_HEADER_LIST} ) else() - add_library(curlcpp ${BUILD_SHARED_LIBS} + add_library(curlcpp SHARED curl_easy.cpp curl_header.cpp curl_global.cpp ================================================ FILE: ports/curlcpp/obsolete-curlopt.diff ================================================ diff --git a/include/curl_easy.h b/include/curl_easy.h index 66f8f51..8004957 100644 --- a/include/curl_easy.h +++ b/include/curl_easy.h @@ -358,7 +358,9 @@ namespace curl { /* Renamed / obsoleted since 7.37 */ #if defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM > 0x072500 +# if LIBCURL_VERSION_NUM < 0x080a00 CURLCPP_DEFINE_OPTION(CURLOPT_OBSOLETE72, long); /* OBSOLETE, do not use! */ +# endif #else CURLCPP_DEFINE_OPTION(CURLOPT_CLOSEPOLICY, long); #endif ================================================ FILE: ports/curlcpp/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JosephP91/curlcpp REF "${VERSION}" SHA512 9c84dff893ac4f7a02b6b360d72f9cf65a69ca33bed6c35ceef21cef2f20c1eb36664fdb3e2918a39a88f88bd4104d9d09f5d40168847a3be83135958bd41046 HEAD_REF master PATCHES fix-cmake.patch obsolete-curlopt.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT} PACKAGE_NAME "curlcpp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/curlcpp/vcpkg.json ================================================ { "name": "curlcpp", "version": "3.1", "port-version": 1, "description": "An object oriented C++ wrapper for CURL (libcurl)", "homepage": "https://josephp91.github.io/curlcpp/", "license": "MIT", "dependencies": [ "curl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/curlpp/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b183a0..a801ae8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,11 +85,12 @@ endif() file(GLOB_RECURSE HeaderFileList "${CMAKE_CURRENT_SOURCE_DIR}/include/*") file(GLOB_RECURSE SourceFileList "${CMAKE_CURRENT_SOURCE_DIR}/src/*") +if(BUILD_SHARED_LIBS) add_library(${PROJECT_NAME} SHARED ${HeaderFileList} ${SourceFileList}) target_link_libraries(${PROJECT_NAME} ${CURL_LIBRARIES} ${CONAN_LIBS}) set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION 1 VERSION 1.0.0) - -add_library(${PROJECT_NAME}_static STATIC ${HeaderFileList} ${SourceFileList}) +else() +add_library(${PROJECT_NAME} STATIC ${HeaderFileList} ${SourceFileList}) # Make sure that on unix-platforms shared and static libraries have # the same root name, but different suffixes. @@ -97,19 +98,28 @@ add_library(${PROJECT_NAME}_static STATIC ${HeaderFileList} ${SourceFileList}) # (solution taken from https://cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F) # # Making shared and static libraries have the same root name, but different suffixes -SET_TARGET_PROPERTIES(${PROJECT_NAME}_static PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) # Now the library target "curlpp_static" will be named "curlpp.lib" with MS tools. # This conflicts with the "curlpp.lib" import library corresponding to "curlpp.dll", # so we add a "lib" prefix (which is default on other platforms anyway): -SET_TARGET_PROPERTIES(${PROJECT_NAME}_static PROPERTIES PREFIX "lib") -target_link_libraries(${PROJECT_NAME}_static ${CURL_LIBRARIES} ${CONAN_LIBS}) +SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES PREFIX "lib") +target_link_libraries(${PROJECT_NAME} CURL::libcurl) +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC $) # install headers install(DIRECTORY include/utilspp/ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/utilspp") install(DIRECTORY include/curlpp/ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/curlpp") -install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_static +install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-config RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT ${PROJECT_NAME}-config + FILE unofficial-${PROJECT_NAME}-config.cmake + NAMESPACE unofficial::${PROJECT_NAME}:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) ================================================ FILE: ports/curlpp/fix-findzliberror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c42943c..12d402c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,4 @@ +cmake_minimum_required(VERSION 2.8) project(curlpp) ================================================ FILE: ports/curlpp/obsolete-curlopt.diff ================================================ diff --git a/include/curlpp/Options.hpp b/include/curlpp/Options.hpp index c705c9d..a658752 100644 --- a/include/curlpp/Options.hpp +++ b/include/curlpp/Options.hpp @@ -278,7 +278,9 @@ namespace options typedef curlpp::OptionTrait LowSpeedLimit; typedef curlpp::OptionTrait LowSpeedTime; typedef curlpp::OptionTrait MaxConnects; +#if LIBCURL_VERSION_NUM < 0x080a00 typedef curlpp::OptionTrait ClosePolicy; +#endif typedef curlpp::OptionTrait FreshConnect; typedef curlpp::OptionTrait ForbidReuse; typedef curlpp::OptionTrait ConnectTimeout; ================================================ FILE: ports/curlpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jpbarrette/curlpp REF 8810334c830faa3b38bcd94f5b1ab695a4f05eb9 SHA512 47eb0738d7cd2d4262c455f9472a21535343bcf08bda6de19771dab9204e068272b41782c87057d50e3781683a29e79d6387577be68d175a7fa890367f15d0d2 HEAD_REF master PATCHES fix-cmake.patch fix-findzliberror.patch obsolete-curlopt.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT} PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT (VCPKG_LIBRARY_LINKAGE STREQUAL static)) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/curlpp-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/curlpp-config" "${CURRENT_INSTALLED_DIR}" "$(prefix)" IGNORE_UNCHANGED) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curlpp-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/bin/curlpp-config" "${CURRENT_INSTALLED_DIR}" "$(prefix)" IGNORE_UNCHANGED) endif() endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/unofficial-curlpp/unofficial-curlpp-config.cmake" "# Generated by CMake" [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(CURL)]]) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/LICENSE") ================================================ FILE: ports/curlpp/vcpkg.json ================================================ { "name": "curlpp", "version-date": "2018-06-15", "port-version": 11, "description": "C++ wrapper around libcURL", "homepage": "https://github.com/jpbarrette/curlpp", "license": "MIT", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/curve-coco/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/coco REF "v${VERSION}" SHA512 7c011553834dba0030ad01d45fcdd3b092ca1b30ccb6f500bbc3e53ed5ee3c0eb57a581347f9879e5b3746cdc3e3214d41329a6ef04988c64c9f55350d8948a3 HEAD_REF master PATCHES remove-cpm.patch ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.13.0" SHA512 3cf0523bddc213f206ed0ca57803550cb7db9e293392d3741138be47f49d9027ef517e1656235a349a62b492d35c3fc677714dc00afe59e2d36144a9689cfa8f HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/coco-${VERSION}" PACKAGE_NAME "coco") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # from CMake config vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/curve-coco/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a2434c..ae2b342 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,6 @@ option(coco_exceptions "Enable exception support (Respects -fno-exceptions even # +-------------------------------------------------------------------------------------------------------+ add_library(${PROJECT_NAME} STATIC "src/latch.cpp" "src/stray.cpp") -add_library(cr::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON) @@ -50,13 +49,7 @@ endif() # | Package Config | # +-------------------------------------------------------------------------------------------------------+ -include("cmake/cpm.cmake") - -CPMFindPackage( - NAME PackageProject - VERSION 1.13.0 - GIT_REPOSITORY "https://github.com/TheLartians/PackageProject.cmake" -) +add_subdirectory(cmake/packageproject.cmake) packageProject( NAMESPACE cr ================================================ FILE: ports/curve-coco/vcpkg.json ================================================ { "name": "curve-coco", "version": "4.3.0", "description": "a C++20 coroutine library that aims to be convenient and simple to use.", "homepage": "https://github.com/Curve/coco", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cute-headers/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RandyGaul/cute_headers REF 4f765abf4a59660e72f9f49c444371ba373e834b SHA512 e898520dc668ce9d1f51c748da1c674f9fa0540bac7a0d10a45fde5ebb0ca6573dc5178ce41199a138e3153343b1ff0c589bc7908a8edcd4a7753d5a1440030b HEAD_REF master ) file(GLOB CUTE_HEADERS_FILES ${SOURCE_PATH}/*.h) file(COPY ${CUTE_HEADERS_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright file(STRINGS "${SOURCE_PATH}/cute_math2d.h" SOURCE_LINES) list(REVERSE SOURCE_LINES) set(line_no 0) foreach(line ${SOURCE_LINES}) math(EXPR line_no "${line_no} + 1") if(line STREQUAL "/*") break() endif() endforeach() list(SUBLIST SOURCE_LINES 0 ${line_no} SOURCE_LINES) list(REVERSE SOURCE_LINES) list(JOIN SOURCE_LINES "\n" _contents) file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}") ================================================ FILE: ports/cute-headers/vcpkg.json ================================================ { "name": "cute-headers", "version-date": "2019-09-20", "port-version": 2, "description": "Collection of cross-platform one-file C/C++ libraries with no dependencies", "homepage": "https://github.com/RandyGaul/cute_headers" } ================================================ FILE: ports/cutelyst2/fix-static-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a695fd..0667668 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,6 +129,33 @@ add_definitions( -DQT_DISABLE_DEPRECATED_BEFORE=0x050c00 ) +if (BUILD_WIN_STATIC) + add_definitions( + -DCutelyst2Qt5_EXPORTS + -DActionRenderView_EXPORTS + -DActionREST_EXPORTS + -DActionRoleACL_EXPORTS + -DCutelyst2Qt5Authentication_EXPORTS + -DCutelyst2Qt5Session_EXPORTS + -DCutelyst2Qt5StaticSimple_EXPORTS + -DCutelyst2Qt5StaticCompressed_EXPORTS + -DCutelyst2Qt5UtilsPagination_EXPORTS + -DCutelyst2Qt5StatusMessage_EXPORTS + -DCutelyst2Qt5Memcached_EXPORTS + -DCutelyst2Qt5MemcachedSessionStore_EXPORTS + -DCutelyst2Qt5CSRFProtection_EXPORTS + -DCutelyst2Qt5UtilsSql_EXPORTS + -DCutelyst2Qt5UtilsValidator_EXPORTS + -DCutelyst2Qt5UtilsLangSelect_EXPORTS + -DCutelyst2Qt5ViewClearSilver_EXPORTS + -DCutelyst2Qt5ViewEmail_EXPORTS + -DCutelyst2Qt5ViewGrantlee_EXPORTS + -DCutelyst2Qt5ViewJson_EXPORTS + -DCutelyst2Qt5Wsgi_EXPORTS + -DCutelyst2Qt5UserAgent_EXPORTS + ) +endif() + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) ================================================ FILE: ports/cutelyst2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cutelyst/cutelyst REF 526aef6b4c1a48f8e91d59607763fade9157d01f # v2.12.0 SHA512 0960801ae8d772a93e3f2dcd221f919ff28000076cecd4d1a2ff7b6e62575805738292257e63a48e455f6fc0bc446c90214fc33679ea1deb17b0c31d6f125e2a HEAD_REF master PATCHES fix-static-build.patch ) set(BUILD_WIN_STATIC OFF) if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL static) set(BUILD_WIN_STATIC ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF -DBUILD_WIN_STATIC=${BUILD_WIN_STATIC} ) vcpkg_cmake_install() # Move CMake config files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Cutelyst2Qt5) file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/cutelyst2" "${CURRENT_PACKAGES_DIR}/bin/cutelyst2-wsgi" "${CURRENT_PACKAGES_DIR}/bin/cutelyst2.exe" "${CURRENT_PACKAGES_DIR}/bin/cutelyst-wsgi2.exe") file(GLOB DEBUG_EXES "${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst2" "${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst2-wsgi" "${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst2.exe" "${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst-wsgi2.exe") if(EXES OR DEBUG_EXES) file(COPY ${EXES} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/cutelyst2") file(REMOVE ${EXES} ${DEBUG_EXES}) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/cutelyst2") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cutelyst2-plugins/ActionREST.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/cutelyst2-plugins" "${CURRENT_PACKAGES_DIR}/bin/cutelyst2-plugins") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/cutelyst2-plugins/ActionREST.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/cutelyst2-plugins" "${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst2-plugins") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright configure_file("${SOURCE_PATH}/COPYING" "${CURRENT_PACKAGES_DIR}/share/cutelyst2/copyright" COPYONLY) vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") else() vcpkg_fixup_pkgconfig() endif() ================================================ FILE: ports/cutelyst2/vcpkg.json ================================================ { "name": "cutelyst2", "version": "2.12.0", "port-version": 2, "description": "A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework", "dependencies": [ { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cwalk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO likle/cwalk REF "v${VERSION}" SHA512 d29c83bb350a5477e450cdb86b1edf7232296aed67680345a84fee967ff414d5c997ac313e38620b51cda21398cc5d19c8130fe999ecd6b0161e81b3566f5516 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/cwalk) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/cwalk/vcpkg.json ================================================ { "name": "cwalk", "version": "1.2.9", "description": "Path library for C/C++. Cross-Platform for Windows, MacOS and Linux. Supports UNIX and Windows path styles on those platforms.", "homepage": "https://likle.github.io/cwalk/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cwapi3d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cwapi3d/cwapi3dcpp REF 68fba49c5f99bb1b4e0b6f7ea285ee2805311821 SHA512 275a85d80b50ce71b19e7005a6a3db5079dfdd2f50a8f2f710746e6e12ba38d610fbd478c22a49127228648be7cf00b7a8e2ece9de830670124327e880d031dc HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/CwAPI3D) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cwapi3d/usage ================================================ The package cwapi3d provides CMake targets: find_package(CwAPI3D CONFIG REQUIRED) target_link_libraries(main PRIVATE CwAPI3D::CwAPI3D) ================================================ FILE: ports/cwapi3d/vcpkg.json ================================================ { "name": "cwapi3d", "version": "32.219.1", "description": "CwAPI3D is the Cadwork 3D plugin architecture in C++.", "homepage": "https://github.com/cwapi3d/cwapi3dcpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cxxgraph/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ZigRazor/CXXGraph REF "v${VERSION}" SHA512 81af9edbb3d768bf770a3626b411c753632763a1229fe87dbdca7c8d8f96554205abf527f0916bfe6dff47b5c19259345f2f9cad81bc84eb4d7972de75643af4 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") # cxxgraph provides no targets and is a header only lib designed to be copied to include dir file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cxxgraph/usage ================================================ To use CXXGraph header files: find_path(CXXGRAPH_INCLUDE_DIR CXXGraph/CXXGraph.hpp) target_include_directories(main PRIVATE ${CXXGRAPH_INCLUDE_DIR}) ================================================ FILE: ports/cxxgraph/vcpkg.json ================================================ { "name": "cxxgraph", "version": "4.1.0", "description": "CXXGraph is a header only comprehensive C++ graph library.", "homepage": "https://github.com/ZigRazor/CXXGraph", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cxxopts/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jarro2783/cxxopts REF "v${VERSION}" SHA512 a22da1436a263d51aad2f542c2099f5b4fd1b02674716ff26d2f575786dcec4e97400edebf5577de95f3ae48c7c99be7be17d7a3de3e01a9f3612667e1547908 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCXXOPTS_BUILD_EXAMPLES=OFF -DCXXOPTS_BUILD_TESTS=OFF -DCXXOPTS_ENABLE_WARNINGS=OFF -DCXXOPTS_CMAKE_DIR=share/cxxopts ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cxxopts/vcpkg.json ================================================ { "name": "cxxopts", "version-semver": "3.3.1", "port-version": 1, "description": "A lightweight C++ option parser library, supporting the standard GNU style syntax for options", "homepage": "https://github.com/jarro2783/cxxopts", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/cyclonedds/enable-security.patch ================================================ diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 148fb3f2..c9c4d96c 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -43,7 +43,7 @@ endif() # Support the OMG DDS Security within ddsc adds quite a bit of code. if(ENABLE_SECURITY) - target_link_libraries(ddsc PRIVATE security_core) + target_link_libraries(ddsc PRIVATE $) target_include_directories( ddsc PUBLIC $>) ================================================ FILE: ports/cyclonedds/idlc-generate.patch ================================================ diff --git a/cmake/Modules/Generate.cmake b/cmake/Modules/Generate.cmake index 0ed67d63..9037fe05 100644 --- a/cmake/Modules/Generate.cmake +++ b/cmake/Modules/Generate.cmake @@ -157,11 +157,25 @@ function(IDLC_GENERATE_GENERIC) endforeach() list(APPEND _outputs ${_file_outputs}) - add_custom_command( - OUTPUT ${_file_outputs} - COMMAND ${_idlc_executable} - ARGS ${_language} ${IDLC_ARGS} ${IDLC_INCLUDE_DIRS} ${_file} - DEPENDS ${_files} ${_depends}) + if(APPLE) + add_custom_command( + OUTPUT ${_file_outputs} + COMMAND ${CMAKE_COMMAND} + ARGS -E env "DYLD_LIBRARY_PATH=$/../../lib" $ ${_language} ${IDLC_ARGS} ${IDLC_INCLUDE_DIRS} ${_file} + DEPENDS ${_files} ${_depends}) + elseif(UNIX) + add_custom_command( + OUTPUT ${_file_outputs} + COMMAND ${CMAKE_COMMAND} + ARGS -E env "LD_LIBRARY_PATH=$/../../lib" $ ${_language} ${IDLC_ARGS} ${IDLC_INCLUDE_DIRS} ${_file} + DEPENDS ${_files} ${_depends}) + else() + add_custom_command( + OUTPUT ${_file_outputs} + COMMAND ${_idlc_executable} + ARGS ${_language} ${IDLC_ARGS} ${IDLC_INCLUDE_DIRS} ${_file} + DEPENDS ${_files} ${_depends}) + endif() endforeach() add_custom_target("${_target}_generate" DEPENDS "${_outputs}") ================================================ FILE: ports/cyclonedds/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-cyclonedds/cyclonedds REF "${VERSION}" SHA512 de63a7207c36ff1b185b1a108d697d37675078ac15c34a940429b619b048593056dd8c4c920fb708235b972f94536452973eb40a8e66da1d57cb9b9b03005f30 HEAD_REF master PATCHES enable-security.patch idlc-generate.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "ddsperf" BUILD_DDSPERF "deadline-missed" ENABLE_DEADLINE_MISSED "ipv6" ENABLE_IPV6 "idlc" BUILD_IDLC "lifespan" ENABLE_LIFESPAN "security" ENABLE_SECURITY "shm" ENABLE_SHM "source-specific-multicast" ENABLE_SOURCE_SPECIFIC_MULTICAST "ssl" ENABLE_SSL "topic-discovery" ENABLE_TOPIC_DISCOVERY "type-discovery" ENABLE_TYPE_DISCOVERY ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/CycloneDDS") if(BUILD_IDLC) vcpkg_copy_tools(TOOL_NAMES idlc AUTO_CLEAN) endif() if(BUILD_DDSPERF) vcpkg_copy_tools(TOOL_NAMES ddsperf AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/cyclonedds/usage ================================================ cyclonedds provides CMake targets: find_package(CycloneDDS CONFIG REQUIRED) target_link_libraries(main PRIVATE CycloneDDS::ddsc) ================================================ FILE: ports/cyclonedds/vcpkg.json ================================================ { "name": "cyclonedds", "version-semver": "0.10.5", "description": "Eclipse Cyclone DDS is a very performant and robust open-source implementation of the OMG DDS specification", "homepage": "https://cyclonedds.io", "license": "EPL-2.0 OR BSD-3-Clause", "supports": "!uwp & !(arm64 & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "deadline-missed", "ipv6", "lifespan", "security", "source-specific-multicast", "topic-discovery", "type-discovery" ], "features": { "ddsperf": { "description": "Build ddsperf tool", "dependencies": [ { "name": "cyclonedds", "host": true, "default-features": false, "features": [ "idlc" ] } ] }, "deadline-missed": { "description": "Enable Deadline Missed QoS suppor" }, "idlc": { "description": "Build IDL preprocessor" }, "ipv6": { "description": "Enable ipv6 support" }, "lifespan": { "description": "Enable Lifespan QoS support" }, "security": { "description": "Enable OMG DDS Security support" }, "shm": { "description": "Enable shared memory support", "supports": "!windows", "dependencies": [ "iceoryx" ] }, "source-specific-multicast": { "description": "Enable support for source-specific multicast" }, "ssl": { "description": "Enable OpenSSL support", "dependencies": [ "openssl" ] }, "topic-discovery": { "description": "Enable Topic Discovery support", "dependencies": [ { "name": "cyclonedds", "default-features": false, "features": [ "type-discovery" ] } ] }, "type-discovery": { "description": "Enable Type Discovery support" } } } ================================================ FILE: ports/cyclonedds-cxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-cyclonedds/cyclonedds-cxx REF "${VERSION}" SHA512 fd03beca1f2b7140c213a2be8c19390c308469b625e2bafd66935258d4e6bec6a8c01940c208501f2619c36f0a04f6538b17b1b7ca562ab5a7533be0747e5bef HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "idllib" BUILD_IDLLIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/CycloneDDS-CXX") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/cyclonedds-cxx/vcpkg.json ================================================ { "name": "cyclonedds-cxx", "version": "0.10.5", "description": "C++ binding for Eclipse Cyclone DDS", "homepage": "https://cyclonedds.io", "license": "EPL-2.0", "dependencies": [ { "name": "cyclonedds", "default-features": false }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "idllib": { "description": "Build IDL preprocessor lib", "dependencies": [ { "name": "cyclonedds", "default-features": false, "features": [ "idlc" ] } ] } } } ================================================ FILE: ports/cyrus-sasl/configure.diff ================================================ diff --git a/libsasl2.pc.in b/libsasl2.pc.in index ddad76d..5192f74 100644 --- a/libsasl2.pc.in +++ b/libsasl2.pc.in @@ -9,4 +9,5 @@ URL: http://www.cyrussasl.org/ Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lsasl2 -Libs.private: @LIB_DOOR@ @SASL_DL_LIB@ @LIBS@ +Libs.private: @LIB_DOOR@ @SASL_DB_LIB@ @SASL_DL_LIB@ @LIBS@ +Requires.private: mit-krb5-gssapi diff --git a/m4/openssl.m4 b/m4/openssl.m4 index 42b31af..301dca5 100644 --- a/m4/openssl.m4 +++ b/m4/openssl.m4 @@ -20,6 +20,12 @@ case "$with_openssl" in no) with_openssl="no";; *) + with_openssl="yes" + PKG_CHECK_MODULES([LIBCRYPTO],[libcrypto],[],[AC_MSG_FAILURE([Cannot find OpenSSL])]) + CFLAGS="$CFLAGS $LIBCRYPTO_CFLAGS" + LIBS="$LIBS $LIBCRYPTO_LIBS" + ;; + orig) with_openssl="yes" dnl if openssl has been compiled with the rsaref2 libraries, dnl we need to include the rsaref libraries in the crypto check diff --git a/m4/sasl2.m4 b/m4/sasl2.m4 index 80371ef..77133af 100644 --- a/m4/sasl2.m4 +++ b/m4/sasl2.m4 @@ -117,8 +117,7 @@ if test "$gssapi" != no; then if test "$gss_impl" = "auto" -o "$gss_impl" = "mit"; then gss_failed=0 - AC_CHECK_LIB(gssapi_krb5,gss_unwrap,gss_impl="mit",gss_failed=1, - ${GSSAPIBASE_LIBS} -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err ${LIB_SOCKET}) + PKG_CHECK_MODULES([MIT_KRB5_GSSAPI],[mit-krb5-gssapi],[gss_impl="mit"],[AC_MSG_FAILURE([Cannot find MIT Kerberos])]) if test "$gss_impl" != "auto" -a "$gss_failed" = "1"; then gss_impl="failed" fi @@ -170,8 +169,9 @@ if test "$gssapi" != no; then fi if test "$gss_impl" = "mit"; then - GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err" - GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a" + GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS $MIT_KRB5_GSSAPI_LIBS" + GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $MIT_KRB5_GSSAPI_LIBS" + CFLAGS="$CFLAGS $MIT_KRB5_GSSAPI_CFLAGS" elif test "$gss_impl" = "heimdal"; then CPPFLAGS="$CPPFLAGS" GSSAPIBASE_LIBS="$GSSAPIBASE_LIBS -lgssapi -lkrb5 -lasn1 -lroken ${LIB_CRYPT} ${LIB_DES} -lcom_err" diff --git a/m4/sasldb.m4 b/m4/sasldb.m4 index 5febf14..5848576 100644 --- a/m4/sasldb.m4 +++ b/m4/sasldb.m4 @@ -46,8 +46,9 @@ dnl named. arg. esac ;; lmdb) + AX_PTHREAD() AC_CHECK_HEADER(lmdb.h, [ - AC_CHECK_LIB(lmdb, mdb_env_create, SASL_DB_LIB="-llmdb"; enable_keep_db_open=yes, dblib="no")], + AC_CHECK_LIB(lmdb, mdb_env_create, SASL_DB_LIB="-llmdb $PTHREAD_CFLAGS $PTHREAD_LIBS"; enable_keep_db_open=yes, [AC_MSG_FAILURE([Cannot find lmdb])], [$PTHREAD_CFLAGS $PTHREAD_LIBS])], dblib="no") ;; ndbm) diff --git a/utils/Makefile.am b/utils/Makefile.am index 99c49e1..c34913f 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -43,6 +43,7 @@ ################################################################ all_sasl_libs = ../lib/libsasl2.la $(SASL_DB_LIB) $(LIB_SOCKET) +all_sasl_libs += $(GSSAPIBASE_LIBS) all_sasl_static_libs = ../lib/.libs/libsasl2.a $(SASL_DB_LIB) $(LIB_SOCKET) $(GSSAPIBASE_LIBS) $(GSSAPI_LIBS) $(SASL_KRB_LIB) $(LIB_DES) $(PLAIN_LIBS) $(SRP_LIBS) $(LIB_MYSQL) $(LIB_PGSQL) $(LIB_SQLITE) sbin_PROGRAMS = @SASL_DB_UTILS@ @SMTPTEST_PROGRAM@ pluginviewer ================================================ FILE: ports/cyrus-sasl/fix-gcc14-time-includes.diff ================================================ diff --git a/lib/saslutil.c b/lib/saslutil.c index 46c628c7..5341cbb3 100644 --- a/lib/saslutil.c +++ b/lib/saslutil.c @@ -59,9 +59,7 @@ #ifdef HAVE_UNISTD_H #include #endif -#ifdef HAVE_TIME_H #include -#endif #include "saslint.h" #include diff --git a/plugins/cram.c b/plugins/cram.c index d02e9baa..89c9308d 100644 --- a/plugins/cram.c +++ b/plugins/cram.c @@ -52,6 +52,7 @@ #include #endif #include +#include #include #include ================================================ FILE: ports/cyrus-sasl/portfile.cmake ================================================ # NOTE: We don't use vcpkg_from_github as it does not # include all the necessary source files vcpkg_download_distfile(ARCHIVE URLS "https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-${VERSION}/cyrus-sasl-${VERSION}.tar.gz" FILENAME "cyrus-sasl-${VERSION}.tar.gz" SHA512 db15af9079758a9f385457a79390c8a7cd7ea666573dace8bf4fb01bb4b49037538d67285727d6a70ad799d2e2318f265c9372e2427de9371d626a1959dd6f78 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES configure.diff fix-gcc14-time-includes.diff ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(REMOVE "${SOURCE_PATH}/include/md5global.h") file(COPY "${SOURCE_PATH}/win32/include/md5global.h" DESTINATION "${SOURCE_PATH}/include/md5global.h") vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # only DLL build rules set(STATIC_CRT_LINKAGE no) if(VCPKG_CRT_LINKAGE STREQUAL "static") set(STATIC_CRT_LINKAGE yes) endif() string(APPEND VCPKG_C_FLAGS " /DUNICODE /D_UNICODE /D_WINSOCK_DEPRECATED_NO_WARNINGS") string(APPEND VCPKG_CXX_FLAGS " /DUNICODE /D_UNICODE /D_WINSOCK_DEPRECATED_NO_WARNINGS") cmake_path(NATIVE_PATH CURRENT_INSTALLED_DIR CURRENT_INSTALLED_DIR_NATIVE) cmake_path(NATIVE_PATH CURRENT_PACKAGES_DIR CURRENT_PACKAGES_DIR_NATIVE) vcpkg_install_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME "NTMakefile" OPTIONS STATIC=${STATIC_CRT_LINKAGE} "SUBDIRS=lib plugins utils" # Note https://www.cyrusimap.org/sasl/sasl/windows.html#limitations GSSAPI=MITKerberos # but "GSSAPI - tested using CyberSafe" "GSSAPI_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include" SASLDB=LMDB # but "SASLDB - only SleepyCat version can be built" "LMDB_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include" SRP=1 DO_SRP_SETPASS=1 OTP=1 "OPENSSL_INCLUDE=${CURRENT_INSTALLED_DIR_NATIVE}\\include" # Silence log messages about default initialization "DB_LIB=unused" "DB_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "DB_LIBPATH=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "LDAP_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "LDAP_LIB_BASE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "SQLITE_INCLUDE=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "SQLITE_LIBPATH=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "SQLITE_INCLUDE3=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" "SQLITE_LIBPATH3=${CURRENT_PACKAGES_DIR_NATIVE}\\unused" OPTIONS_RELEASE CFG=Release "prefix=${CURRENT_PACKAGES_DIR_NATIVE}" "GSSAPI_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib" "LMDB_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib" "OPENSSL_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\lib" OPTIONS_DEBUG CFG=Debug "prefix=${CURRENT_PACKAGES_DIR_NATIVE}\\debug" "GSSAPI_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib" "LMDB_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib" "OPENSSL_LIBPATH=${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\lib" ) vcpkg_copy_tools(TOOL_NAMES pluginviewer sasldblistusers2 saslpasswd2 testsuite AUTO_CLEAN) block(SCOPE_FOR VARIABLES) set(prefix [[placeholder]]) set(exec_prefix [[${prefix}]]) set(libdir [[${prefix}/lib]]) set(includedir [[${prefix}/include]]) configure_file("${SOURCE_PATH}/libsasl2.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" @ONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" " -lsasl2" " -llibsasl") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsasl2.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libsasl2.pc") endif() endblock() else() vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --enable-sample=no --with-dblib=lmdb --with-gss_impl=mit --disable-macos-framework ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" COMMENT [[ The top-level COPYING file represents the license identified as BSD with Attribution and HPND disclaimer. However, various source files are under different licenses, including other BSD license variants, MIT license variants, OpenLDAP, OpenSSL and others. ]]) ================================================ FILE: ports/cyrus-sasl/vcpkg.json ================================================ { "name": "cyrus-sasl", "version": "2.1.28", "port-version": 4, "description": "Cyrus SASL is an implementation of SASL that makes it easy for application developers to integrate authentication mechanisms into their application in a generic way.", "homepage": "https://github.com/cyrusimap/cyrus-sasl", "license": null, "supports": "linux | osx | (windows & !uwp)", "dependencies": [ "krb5", "lmdb", "openssl", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/czmq/Findlibcurl.cmake ================================================ find_package(CURL CONFIG QUIET) if(CURL_FOUND) set(LIBCURL_INCLUDE_DIRS ${CURL_INCLUDE_DIRS}) set(LIBCURL_LIBRARIES CURL::libcurl) set(LIBCURL_FOUND TRUE) message(STATUS "Found libcurl: ${LIBCURL_LIBRARIES}") else() set(LIBCURL_FOUND FALSE) message(STATUS "Could not find libcurl") endif() ================================================ FILE: ports/czmq/Findlibmicrohttpd.cmake ================================================ find_path(LIBMICROHTTPD_INCLUDE_DIR NAMES microhttpd.h) get_filename_component(_prefix_path ${LIBMICROHTTPD_INCLUDE_DIR} PATH) find_library( LIBMICROHTTPD_LIBRARY_DEBUG NAMES libmicrohttpd-dll_d libmicrohttpd microhttpd PATHS ${_prefix_path}/debug/lib NO_DEFAULT_PATH ) find_library( LIBMICROHTTPD_LIBRARY_RELEASE NAMES libmicrohttpd-dll libmicrohttpd microhttpd PATHS ${_prefix_path}/lib NO_DEFAULT_PATH ) unset(_prefix_path) include(SelectLibraryConfigurations) select_library_configurations(LIBMICROHTTPD) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( LIBMICROHTTPD REQUIRED_VARS LIBMICROHTTPD_LIBRARY LIBMICROHTTPD_INCLUDE_DIR ) if(LIBMICROHTTPD_FOUND) set(LIBMICROHTTPD_INCLUDE_DIRS ${LIBMICROHTTPD_INCLUDE_DIR}) endif() ================================================ FILE: ports/czmq/Findlibzmq.cmake ================================================ find_package(ZeroMQ CONFIG REQUIRED) set(LIBZMQ_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR}) set(LIBZMQ_LIBRARIES libzmq libzmq-static) set(LIBZMQ_FOUND TRUE) message(STATUS "Found libzmq: ${LIBZMQ_LIBRARIES}") ================================================ FILE: ports/czmq/Findlz4.cmake ================================================ find_path(LZ4_INCLUDE_DIR NAMES lz4.h) find_library(LZ4_LIBRARY_DEBUG NAMES lz4d) find_library(LZ4_LIBRARY_RELEASE NAMES lz4) include(SelectLibraryConfigurations) select_library_configurations(LZ4) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( LZ4 REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR ) if(LZ4_FOUND) set(LZ4_INCLUDE_DIRS ${LZ4_INCLUDE_DIR}) endif() ================================================ FILE: ports/czmq/Finduuid.cmake ================================================ find_path( UUID_INCLUDE_DIR NAMES uuid/uuid.h ) get_filename_component(_prefix_path ${UUID_INCLUDE_DIR} PATH) find_library( UUID_LIBRARY_DEBUG NAMES uuid PATHS ${_prefix_path}/debug/lib NO_DEFAULT_PATH ) find_library( UUID_LIBRARY_RELEASE NAMES uuid PATHS ${_prefix_path}/lib NO_DEFAULT_PATH ) unset(_prefix_path) include(SelectLibraryConfigurations) select_library_configurations(UUID) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( UUID REQUIRED_VARS UUID_LIBRARY UUID_INCLUDE_DIR ) if(UUID_FOUND) set(UUID_INCLUDE_DIRS ${UUID_INCLUDE_DIR}) endif() ================================================ FILE: ports/czmq/fix-dependencies.patch ================================================ diff --git a/builds/cmake/Config.cmake.in b/builds/cmake/Config.cmake.in index 9c15f36a..5afff016 100644 --- a/builds/cmake/Config.cmake.in +++ b/builds/cmake/Config.cmake.in @@ -1,4 +1,12 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +find_dependency(ZeroMQ) + +if ("@CZMQ_WITH_LIBCURL@" AND "@LIBCURL_FOUND@") + find_dependency(CURL) +endif () + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/czmq/link-log-on-android.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d51cba0..301679d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -484,7 +484,9 @@ if (CZMQ_BUILD_STATIC) target_compile_definitions(czmq-static PUBLIC CZMQ_STATIC ) - + if(ANDROID) + target_link_libraries(czmq-static PRIVATE log) + endif() endif() ================================================ FILE: ports/czmq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/czmq REF "v${VERSION}" SHA512 65a21f7bd5935b119e1b24ce3b2ce8462031ab7c9a4ba587bb99fe618c9f8cb672cfa202993ddd79e0fb0f154ada06560b79a1b4f762fcce8f88f2f450ecee01 HEAD_REF master PATCHES fix-dependencies.patch link-log-on-android.patch ) foreach(_cmake_module Findlibcurl.cmake Findlibmicrohttpd.cmake Findlibzmq.cmake Findlz4.cmake Finduuid.cmake ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/${_cmake_module} DESTINATION ${SOURCE_PATH} ) endforeach() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES draft ENABLE_DRAFTS curl CZMQ_WITH_LIBCURL httpd CZMQ_WITH_LIBMICROHTTPD lz4 CZMQ_WITH_LZ4 uuid CZMQ_WITH_UUID ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} DISABLE_PARALLEL_CONFIGURE OPTIONS -DCZMQ_BUILD_SHARED=${BUILD_SHARED} -DCZMQ_BUILD_STATIC=${BUILD_STATIC} -DCZMQ_WITH_SYSTEMD=OFF -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS ${CURRENT_PACKAGES_DIR}/CMake) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) endif() if(EXISTS ${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}) vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/${PORT}) endif() vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_copy_tools(TOOL_NAMES zmakecert AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Remove headers with "common" names that conflict with other packages which aren't intended to be installed # See https://github.com/zeromq/czmq/issues/2197 foreach(FILE readme.txt sha1.h sha1.inc_c slre.h slre.inc_c zgossip_engine.inc zgossip_msg.h zhash_primes.inc zsock_option.inc) file(REMOVE "${CURRENT_PACKAGES_DIR}/include/${FILE}") endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/czmq_library.h "if defined CZMQ_STATIC" "if 1 //if defined CZMQ_STATIC" ) endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/czmq/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET czmq AND NOT TARGET czmq-static) add_library(czmq-static INTERFACE IMPORTED) set_target_properties(czmq-static PROPERTIES INTERFACE_LINK_LIBRARIES czmq) elseif(TARGET czmq-static AND NOT TARGET czmq) add_library(czmq INTERFACE IMPORTED) set_target_properties(czmq PROPERTIES INTERFACE_LINK_LIBRARIES czmq-static) endif() ================================================ FILE: ports/czmq/vcpkg.json ================================================ { "name": "czmq", "version-semver": "4.2.1", "port-version": 5, "description": "High-level C binding for ZeroMQ", "homepage": "https://github.com/zeromq/czmq", "license": "MPL-2.0", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zeromq" ], "features": { "curl": { "description": "Build with libcurl", "dependencies": [ "curl" ] }, "draft": { "description": "Build and install draft APIs" }, "httpd": { "description": "Build with HTTP server support (libmicrohttpd)", "dependencies": [ "libmicrohttpd" ] }, "lz4": { "description": "Build with lz4", "dependencies": [ "lz4" ] }, "tool": { "description": "Build and install czmq tools (zmakecert)" }, "uuid": { "description": "Build with libuuid", "dependencies": [ { "name": "libuuid", "platform": "!windows & !uwp & !osx" } ] } } } ================================================ FILE: ports/d3d12-memory-allocator/0001-build-options.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 34fcecd..d796333 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,14 +26,16 @@ set_target_properties( MINSIZEREL_POSTFIX "s" ) +find_package(directx-headers CONFIG REQUIRED) + +target_compile_definitions(D3D12MemoryAllocator PUBLIC D3D12MA_USING_DIRECTX_HEADERS) + target_include_directories(D3D12MemoryAllocator PUBLIC $ $ ) target_link_libraries(D3D12MemoryAllocator PUBLIC - d3d12.lib - dxgi.lib - dxguid.lib + Microsoft::DirectX-Headers Microsoft::DirectX-Guids d3d12.lib dxgi.lib ) if(BUILD_SHARED_LIBS) diff --git a/src/cmake/config.cmake.in b/src/cmake/config.cmake.in index 3e47daa..08de2e8 100644 --- a/src/cmake/config.cmake.in +++ b/src/cmake/config.cmake.in @@ -1,3 +1,4 @@ include(CMakeFindDependencyMacro) +find_dependency(directx-headers CONFIG) -include("${CMAKE_CURRENT_LIST_DIR}/@D3D12MA_TARGETS_EXPORT_NAME@.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@D3D12MA_TARGETS_EXPORT_NAME@.cmake") \ No newline at end of file ================================================ FILE: ports/d3d12-memory-allocator/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator REF v${VERSION} SHA512 58d44aa021a04c1fa82cf5ff76420de43091d5475da9c23975176058990e0e3e1106aa13042ea6e75d29dd71f821b5431f9f12b62fba5e58955aa30127b4221b HEAD_REF master PATCHES "0001-build-options.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME D3D12MemoryAllocator CONFIG_PATH share/cmake/D3D12MemoryAllocator/ ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/d3d12-memory-allocator/vcpkg.json ================================================ { "name": "d3d12-memory-allocator", "version": "3.0.1", "description": "Easy to integrate D3d12 memory allocation library from GPUOpen", "homepage": "https://gpuopen.com/d3d12-memory-allocator/", "license": "MIT", "supports": "windows", "dependencies": [ "directx-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/d3dx12/portfile.cmake ================================================ set(VERSION may2021) # The official D3DX12.H is hosted on https://github.com/microsoft/DirectX-Headers. # # This port uses the version from directx-vs-templates instead because it is compatible with multiple # versions of the Windows 10 SDK. The official version only supports the 'latest' Windows 10 SDK. message(NOTICE "Consider using the 'directx-headers' port instead. See https://aka.ms/directx12agility") vcpkg_download_distfile(D3DX12_H URLS "https://raw.githubusercontent.com/walbourn/directx-vs-templates/${VERSION}/d3d12game_win32_dr/d3dx12.h" FILENAME "directx-vs-templates-${VERSION}-d3dx12.h" SHA512 b053a8e6593c701a0827f8a52f20e160070b8b71242fd60a57617e46b87e909e11f814fc15b084b4f83b7ff5b9a562280da64a77cee3a171ef17839315df4245 ) vcpkg_download_distfile(LICENSE URLS "https://raw.githubusercontent.com/walbourn/directx-vs-templates/${VERSION}/LICENSE" FILENAME "directx-vs-templates-${VERSION}-LICENSE" SHA512 ce7d8ec7bfb58ef36a95b20f6f0fc4e3cd4923bb3ac6bd1f62e8215df2ee83d2a594ce84b15951310f05a819a0370468af781e73a10e536d23965421466851f4 ) file(INSTALL "${D3DX12_H}" DESTINATION ${CURRENT_PACKAGES_DIR}/include RENAME d3dx12.h) file(INSTALL "${LICENSE}" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/d3dx12/vcpkg.json ================================================ { "name": "d3dx12", "version-string": "may2021", "port-version": 1, "description": "The D3D12 Helper Library", "homepage": "https://docs.microsoft.com/en-us/windows/win32/direct3d12/helper-structures-and-functions-for-d3d12", "license": "MIT", "supports": "(windows & !xbox) | linux" } ================================================ FILE: ports/dacap-clip/fix-install-header-and-force-static-compilation.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d9aa76e..cee1d90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,8 @@ endif() if(CLIP_INSTALL) include(GNUInstallDirs) + target_include_directories(clip PUBLIC $) + install( FILES clip.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ================================================ FILE: ports/dacap-clip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dacap/clip REF v${VERSION} SHA512 d245781ae4e290f75195782522190fc4d7645b8718d640fb5e3f6f7a47d1bcbf29fb34407b4368698dfe0039abfc42eac805201a192ab4569a68eca6f6234c76 PATCHES "fix-install-header-and-force-static-compilation.patch") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCLIP_ENABLE_LIST_FORMATS=ON -DCLIP_EXAMPLES=OFF -DCLIP_TESTS=OFF -DCLIP_X11_WITH_PNG=ON MAYBE_UNUSED_VARIABLES CLIP_X11_WITH_PNG # only an option when UNIX AND NOT APPLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME clip CONFIG_PATH "lib/cmake/clip") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/dacap-clip/vcpkg.json ================================================ { "name": "dacap-clip", "version": "1.14", "description": "Cross-platform C++ library to copy/paste clipboard content.", "homepage": "https://github.com/dacap/clip", "license": "MIT", "supports": "!android & !uwp", "dependencies": [ "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dagir/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Alan-Jowett/dagir REF 0.1.0 SHA512 0450b03c282daa9b941a56283ccc00663c8eb66c9d02bdae05d2ea5dd60c4048a30ba4b4d3f51fe51d7a7f43132d48989140fc02d088522a2177ff779c204ed3 ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DDAGIR_BUILD_TESTS=OFF -DDAGIR_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/DagIR") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dagir/vcpkg.json ================================================ { "name": "dagir", "version": "0.1.0", "description": "Header-only C++20 library for read-only external DAG views, traversal, and IR rendering", "homepage": "https://github.com/Alan-Jowett/dagir", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/darknet/android.diff ================================================ diff --git a/src/utils.c b/src/utils.c index 2ad33d5..385f010 100644 --- a/src/utils.c +++ b/src/utils.c @@ -340,7 +340,7 @@ void top_k(float *a, int n, int k, int *index) void log_backtrace() { -#ifndef WIN32 +#if !defined(WIN32) && !defined(__ANDROID__) void * buffer[50]; int count = backtrace(buffer, sizeof(buffer)); char **symbols = backtrace_symbols(buffer, count); ================================================ FILE: ports/darknet/installation.diff ================================================ diff --git a/cfg/CMakeLists.txt b/cfg/CMakeLists.txt index b4d7898..2374cee 100644 --- a/cfg/CMakeLists.txt +++ b/cfg/CMakeLists.txt @@ -3,8 +3,4 @@ FILE (GLOB CFG *.cfg *.names) -IF (UNIX) - INSTALL (FILES ${CFG} DESTINATION /opt/darknet/cfg/) -ELSE () - INSTALL (FILES ${CFG} DESTINATION cfg/) -ENDIF () +INSTALL (FILES ${CFG} DESTINATION share/darknet/cfg/) diff --git a/src-cli/CMakeLists.txt b/src-cli/CMakeLists.txt index 4124877..e23ed14 100644 --- a/src-cli/CMakeLists.txt +++ b/src-cli/CMakeLists.txt @@ -32,10 +32,6 @@ ELSE () # https://stackoverflow.com/a/72088102/13022 INSTALL (TARGETS darknetcli DESTINATION bin - RUNTIME_DEPENDENCIES - PRE_EXCLUDE_REGEXES "api-ms-" "ext-ms-" "wpaxholder" "HvsiFileTrust" "PdmUtilities" - POST_EXCLUDE_REGEXES ".*system32/.*\\.dll" - DIRECTORIES ${CMAKE_BINARY_DIR}/bin RUNTIME DESTINATION bin ) ENDIF () ================================================ FILE: ports/darknet/msvc-names.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c65eef..ca26161 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -472,6 +472,9 @@ if(BUILD_AS_CPP) endif() add_executable(darknet ${CMAKE_CURRENT_LIST_DIR}/src/darknet.c ${sources} ${headers} ${cuda_sources}) +if(WIN32 AND NOT MINGW) + set_target_properties(darknet PROPERTIES PDB_NAME "darknet.exe" IMPORT_SUFFIX ".exe.lib") +endif() if(BUILD_AS_CPP) set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/src/darknet.c PROPERTIES LANGUAGE CXX) set_target_properties(darknet PROPERTIES LINKER_LANGUAGE CXX) ================================================ FILE: ports/darknet/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # There are no curated versions. # Port updates must checkout the master branch, run # git describe --tags --dirty --long # and put the result into this variable. set(darknet_version_string "v5.0-167-gfc780f8a") string(REGEX REPLACE "^.*-g" "" ref "${darknet_version_string}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hank-ai/darknet REF "${ref}" SHA512 4403922273526862d6e899bfe4de2bc1205d004e8eb58f2a5837fda913565eff970405692d69f7c0155182a688d1ee91ca67f79edd1eae8c03228cdd24acac53 HEAD_REF master PATCHES installation.diff purely-openmp_cxx-target.diff version-info.diff system-processor.diff windows-getopt.diff ) file(WRITE "${SOURCE_PATH}/src-examples/CMakeLists.txt" "# disabled by vcpkg") file(REMOVE_RECURSE "${SOURCE_PATH}/src-other") # src-lib/col2im_kernels.cu, src-lib/gemm.cpp, src-lib/im2col.cpp, src-lib/im2col_kernels.cu vcpkg_download_distfile(caffe_license_file URLS "https://github.com/BVLC/caffe/raw/9ab67099e08c03bf57e6a67538ca4746365beda8/LICENSE" FILENAME "hunk-ai-darknet-caffe-LICENSE-9ab6709" SHA512 333129c62f7c45df992ea4638d2b879608c1d01db80a5a6ce3e93970b414976374ef3e7b670f655b62f6fc4f8eb8c7ba17e94aad197e5e1a7ae8c0ef0b3587ba ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda DARKNET_TRY_CUDA openmp VCPKG_LOCK_FIND_PACKAGE_OpenMP ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}") if(DEFINED CUDA_ARCHITECTURES) list(APPEND FEATURE_OPTIONS "-DDARKNET_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES}") else() message(STATUS "CUDA_ARCHITECTURES is not set. Choice is made by darknet.") endif() if(NOT "cudnn" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-Dcudnn=OFF") # disable find_library endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # configuring darknet_version.h OPTIONS ${FEATURE_OPTIONS} -DDARKNET_BRANCH_NAME=vcpkg # actually master with extra patches. -DDARKNET_VERSION_STRING=${darknet_version_string} -DDARKNET_TRY_ONNX=OFF -DDARKNET_TRY_OPENBLAS=OFF -DDARKNET_TRY_ROCM=OFF -DGTEST=OFF # disable find_library -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF MAYBE_UNUSED_VARIABLES DARKNET_TRY_OPENBLAS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES darknet) file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/cfg" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${caffe_license_file}") ================================================ FILE: ports/darknet/purely-openmp_cxx-target.diff ================================================ diff --git a/CM_dependencies.cmake b/CM_dependencies.cmake index 1462d195..e26dc7d1 100644 --- a/CM_dependencies.cmake +++ b/CM_dependencies.cmake @@ -239,6 +239,7 @@ LIST (APPEND DARKNET_LINK_LIBS ${OpenCV_LIBS}) # ============ # == OpenMP == # ============ +set(OpenMP_RUNTIME_MSVC experimental) FIND_PACKAGE (OpenMP QUIET) # optional IF (NOT OPENMP_FOUND) MESSAGE (WARNING "OpenMP not found. Building Darknet without support for OpenMP.") @@ -248,15 +249,7 @@ ELSEIF (DARKNET_USE_ROCM) ELSE () MESSAGE (STATUS "Found OpenMP ${OpenMP_VERSION}") ADD_COMPILE_DEFINITIONS (DARKNET_OPENMP) - LIST (APPEND DARKNET_LINK_LIBS OpenMP::OpenMP_CXX OpenMP::OpenMP_C) - IF (WIN32) - ADD_COMPILE_OPTIONS (/openmp:experimental) - ELSE () - ADD_COMPILE_DEFINITIONS (_GLIBCXX_PARALLEL) - ADD_COMPILE_OPTIONS (-fopenmp) - ADD_COMPILE_OPTIONS (${OpenMP_C_FLAGS}) - ADD_COMPILE_OPTIONS (${OpenMP_CXX_FLAGS}) - ENDIF() + LIST (APPEND DARKNET_LINK_LIBS OpenMP::OpenMP_CXX) ENDIF () ================================================ FILE: ports/darknet/system-processor.diff ================================================ diff --git a/CM_dependencies.cmake b/CM_dependencies.cmake index 53699a9b..1462d195 100644 --- a/CM_dependencies.cmake +++ b/CM_dependencies.cmake @@ -151,15 +151,15 @@ ENDIF () # ======================== # == Intel/AMD Hardware == # ======================== -IF (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86" OR - CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_32" OR - CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64" OR - CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "AMD64") +IF (CMAKE_SYSTEM_PROCESSOR MATCHES "x86" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "x86_32" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR + CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64") SET (HARDWARE_IS_X86 TRUE) - MESSAGE (STATUS "Hardware is 32-bit or 64-bit, and seems to be Intel or AMD: ${CMAKE_HOST_SYSTEM_PROCESSOR}") + MESSAGE (STATUS "Hardware is 32-bit or 64-bit, and seems to be Intel or AMD: ${CMAKE_SYSTEM_PROCESSOR}") ELSE () SET (HARDWARE_IS_X86 FALSE) - MESSAGE (STATUS "Hardware does not appear to be 32-bit or 64-bit, Intel or AMD: ${CMAKE_HOST_SYSTEM_PROCESSOR}") + MESSAGE (STATUS "Hardware does not appear to be 32-bit or 64-bit, Intel or AMD: ${CMAKE_SYSTEM_PROCESSOR}") ENDIF () @@ -277,7 +277,7 @@ ELSE () ADD_COMPILE_OPTIONS(-msse4.2) ADD_COMPILE_OPTIONS(-msse4a) ELSE () - LIST (APPEND CMAKE_CXX_FLAGS /arch:AVX2) + STRING (APPEND CMAKE_CXX_FLAGS " /arch:AVX2") ENDIF() ENDIF () ================================================ FILE: ports/darknet/vcpkg.json ================================================ { "name": "darknet", "version-date": "2025-10-24", "description": "Darknet is an open source neural network framework written in C and CUDA for processing images or video frames in computer vision.", "homepage": "https://darknetcv.ai/", "license": "Apache-2.0 AND BSD-2-Clause", "supports": "!android & !uwp & !(static & staticcrt)", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "highgui" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Build darknet with support for CUDA", "dependencies": [ "cuda", { "name": "opencv", "default-features": false } ] }, "cudnn": { "description": "Build darknet with support for cuDNN", "dependencies": [ "cudnn", { "name": "darknet", "features": [ "cuda" ] } ] }, "openmp": { "description": "Build darknet with support for OpenMP" } } } ================================================ FILE: ports/darknet/version-info.diff ================================================ diff --git a/CM_version.cmake b/CM_version.cmake index 95f29db2..115cb043 100644 --- a/CM_version.cmake +++ b/CM_version.cmake @@ -6,7 +6,6 @@ # # v1.99-63-gc5c3569 # -EXECUTE_PROCESS (COMMAND git describe --tags --dirty --long OUTPUT_VARIABLE DARKNET_VERSION_STRING OUTPUT_STRIP_TRAILING_WHITESPACE) MESSAGE (STATUS "Darknet ${DARKNET_VERSION_STRING}") STRING (REGEX MATCH "v([0-9]+)\.([0-9]+)-([0-9]+)-g([0-9a-fA-F]+)" _ ${DARKNET_VERSION_STRING}) @@ -14,5 +13,4 @@ STRING (REGEX MATCH "v([0-9]+)\.([0-9]+)-([0-9]+)-g([0-9a-fA-F]+)" _ ${DARKNET_V SET (DARKNET_VERSION_SHORT ${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}) -EXECUTE_PROCESS (COMMAND git branch --show-current OUTPUT_VARIABLE DARKNET_BRANCH_NAME OUTPUT_STRIP_TRAILING_WHITESPACE) MESSAGE (STATUS "Darknet branch name: ${DARKNET_BRANCH_NAME}") ================================================ FILE: ports/darknet/windows-getopt.diff ================================================ diff --git a/src-lib/darkunistd.hpp b/src-lib/darkunistd.hpp index 6c06aef..5f9c970 100644 --- a/src-lib/darkunistd.hpp +++ b/src-lib/darkunistd.hpp @@ -9,7 +9,6 @@ #include #include /* for _getcwd() and _chdir() */ -#include "getopt.h" #include #include /* for getpid() and the exec..() family */ #include ================================================ FILE: ports/darts-clone/CMakeLists.txt ================================================ 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() ================================================ FILE: ports/darts-clone/portfile.cmake ================================================ 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_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE "${CURRENT_PACKAGES_DIR}/include/Makefile.am") file(INSTALL "${SOURCE_PATH}/COPYING.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/darts-clone/vcpkg.json ================================================ { "name": "darts-clone", "version-string": "1767ab87cffe", "port-version": 3, "description": "A static double-array trie structure", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dartsim/0001-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fc52494..9bc2db3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,7 +64,7 @@ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\3" set(DART_VERSION "${DART_MAJOR_VERSION}.${DART_MINOR_VERSION}.${DART_PATCH_VERSION}") set(DART_PKG_DESC "Dynamic Animation and Robotics Toolkit.") -set(DART_PKG_EXTERNAL_DEPS "assimp, ccd, eigen3, fcl, octomap") +set(DART_PKG_EXTERNAL_DEPS "assimp, eigen3, fcl, octomap") #=============================================================================== # Build options diff --git a/cmake/DARTFindBullet.cmake b/cmake/DARTFindBullet.cmake index c2d3e63..fbcdd4d 100644 --- a/cmake/DARTFindBullet.cmake +++ b/cmake/DARTFindBullet.cmake @@ -9,7 +9,7 @@ # Bullet. Force MODULE mode to use the FindBullet.cmake file distributed with # CMake. Otherwise, we may end up using the BulletConfig.cmake file distributed # with Bullet, which uses relative paths and may break transitive dependencies. -find_package(Bullet COMPONENTS BulletMath BulletCollision MODULE QUIET) +find_package(BULLET COMPONENTS LinearMath BulletCollision QUIET NAMES Bullet) if((BULLET_FOUND OR Bullet_FOUND) AND NOT TARGET Bullet) add_library(Bullet INTERFACE IMPORTED) diff --git a/cmake/Findassimp.cmake b/cmake/Findassimp.cmake index b5c1c66..099a3b4 100644 --- a/cmake/Findassimp.cmake +++ b/cmake/Findassimp.cmake @@ -25,7 +25,7 @@ find_path(ASSIMP_INCLUDE_DIRS assimp/scene.h PATHS "${CMAKE_INSTALL_PREFIX}/include") # Libraries -if(MSVC) +if(1) find_package(assimp QUIET CONFIG) if(TARGET assimp::assimp) set(ASSIMP_LIBRARIES "assimp::assimp") diff --git a/cmake/Findfcl.cmake b/cmake/Findfcl.cmake index 7be9d61..d082d4d 100644 --- a/cmake/Findfcl.cmake +++ b/cmake/Findfcl.cmake @@ -27,7 +27,7 @@ find_path(FCL_INCLUDE_DIRS PATHS "${CMAKE_INSTALL_PREFIX}/include") # Libraries -if(MSVC) +if(1) find_package(fcl QUIET CONFIG) if(TARGET fcl) set(FCL_LIBRARIES fcl) diff --git a/cmake/Findtinyxml2.cmake b/cmake/Findtinyxml2.cmake index 0552a8e..c731624 100644 --- a/cmake/Findtinyxml2.cmake +++ b/cmake/Findtinyxml2.cmake @@ -29,8 +29,8 @@ find_path(TINYXML2_INCLUDE_DIRS PATHS "${CMAKE_INSTALL_PREFIX}/include") # Libraries -if(MSVC) - set(TINYXML2_LIBRARIES "tinyxml2$<$:d>") +if(1) + set(TINYXML2_LIBRARIES tinyxml2::tinyxml2) else() find_library(TINYXML2_LIBRARIES NAMES tinyxml2 ================================================ FILE: ports/dartsim/0002-devendor-lodepng.patch ================================================ diff --git a/cmake/dart_Component.cmake.in b/cmake/dart_Component.cmake.in index 2a2d54e..a421adb 100644 --- a/cmake/dart_Component.cmake.in +++ b/cmake/dart_Component.cmake.in @@ -1,3 +1,7 @@ +if("@component@" STREQUAL "external-lodepng") + include(CMakeFindDependencyMacro) + find_dependency(lodepng) +endif() set("@PROJECT_NAME@_@component@_DEPENDENCIES" @internal_dependencies@) set("@PROJECT_NAME@_@component@_LIBRARIES" @libraries@) diff --git a/dart/external/lodepng/CMakeLists.txt b/dart/external/lodepng/CMakeLists.txt index 93b4e73..5309d7b 100644 --- a/dart/external/lodepng/CMakeLists.txt +++ b/dart/external/lodepng/CMakeLists.txt @@ -6,10 +6,12 @@ file(GLOB srcs "*.cpp") set(target_name ${PROJECT_NAME}-external-lodepng) set(component_name external-lodepng) +find_package(lodepng CONFIG) +set(hdrs "") +set(srcs "${CMAKE_CURRENT_BINARY_DIR}/empty.cpp") +file(WRITE "${srcs}" "") dart_add_library(${target_name} ${hdrs} ${srcs}) -target_include_directories(${target_name} - PUBLIC $ -) +target_link_libraries(${target_name} PUBLIC $,lodepng,lodepng::NOTFOUND>) # Component add_component(${PROJECT_NAME} ${component_name}) diff --git a/dart/external/lodepng/lodepng.h b/dart/external/lodepng/lodepng.h index fcf9f71..974d826 100644 --- a/dart/external/lodepng/lodepng.h +++ b/dart/external/lodepng/lodepng.h @@ -23,8 +23,11 @@ freely, subject to the following restrictions: distribution. */ -#ifndef LODEPNG_H -#define LODEPNG_H +#ifndef LODEPNG_H_DEVENDORED +#define LODEPNG_H_DEVENDORED +#include +#endif +#if 0 #include /*for size_t*/ ================================================ FILE: ports/dartsim/0003-disable_unit_tests_examples_and_tutorials.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fc5249444a5c..39c29e92bb33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -376,7 +376,7 @@ add_subdirectory(dart) set(DART_IN_SOURCE_BUILD TRUE) -if(TARGET dart) +if(0) # Add a "tests" target to build unit tests. include(CTest) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 37cadf4f8de1..fcfbd13cf793 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -22,9 +22,11 @@ endif() set(DART_DARTPY_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/dartpy") add_subdirectory(dartpy) +if(0) add_subdirectory(tests) add_subdirectory(examples) add_subdirectory(tutorials) +endif() message(STATUS "") message(STATUS "[ dartpy ]") ================================================ FILE: ports/dartsim/0004-pkgconfig.patch ================================================ diff --git a/cmake/dart.pc.in b/cmake/dart.pc.in index 402c496..9814576 100644 --- a/cmake/dart.pc.in +++ b/cmake/dart.pc.in @@ -8,5 +8,6 @@ Name: @PROJECT_NAME@ Description: @DART_PKG_DESC@ Version: @DART_VERSION@ Requires: @DART_PKG_EXTERNAL_DEPS@ -Libs: -L${libdir} -ldart +Libs: -L${libdir} -ldart@DART_PKG_DEBUG_POSTFIX@ +Libs.private: -ldart-external-odelcpsolver@DART_PKG_DEBUG_POSTFIX@ Cflags: @CMAKE_CXX_FLAGS@ ================================================ FILE: ports/dartsim/0005-add-cassert.patch ================================================ diff --git a/dart/optimizer/GenericMultiObjectiveProblem.cpp b/dart/optimizer/GenericMultiObjectiveProblem.cpp index e58a57aa97..d62515739d 100644 --- a/dart/optimizer/GenericMultiObjectiveProblem.cpp +++ b/dart/optimizer/GenericMultiObjectiveProblem.cpp @@ -37,6 +37,7 @@ #include "dart/optimizer/Function.hpp" #include +#include #include #include diff --git a/dart/optimizer/GradientDescentSolver.cpp b/dart/optimizer/GradientDescentSolver.cpp index 6c92a32c30..d4b858a6c0 100644 --- a/dart/optimizer/GradientDescentSolver.cpp +++ b/dart/optimizer/GradientDescentSolver.cpp @@ -36,6 +36,7 @@ #include "dart/math/Helpers.hpp" #include "dart/optimizer/Problem.hpp" +#include #include namespace dart { diff --git a/dart/optimizer/MultiObjectiveProblem.cpp b/dart/optimizer/MultiObjectiveProblem.cpp index 6e86f0ee1a..e55e0bf99b 100644 --- a/dart/optimizer/MultiObjectiveProblem.cpp +++ b/dart/optimizer/MultiObjectiveProblem.cpp @@ -37,6 +37,7 @@ #include "dart/optimizer/Function.hpp" #include +#include #include #include diff --git a/dart/optimizer/MultiObjectiveSolver.cpp b/dart/optimizer/MultiObjectiveSolver.cpp index 4215f78e14..c0edbb5dc6 100644 --- a/dart/optimizer/MultiObjectiveSolver.cpp +++ b/dart/optimizer/MultiObjectiveSolver.cpp @@ -35,6 +35,7 @@ #include "dart/common/Console.hpp" #include "dart/optimizer/MultiObjectiveProblem.hpp" +#include #include namespace dart { diff --git a/dart/optimizer/Population.cpp b/dart/optimizer/Population.cpp index 0469683434..69e4b65141 100644 --- a/dart/optimizer/Population.cpp +++ b/dart/optimizer/Population.cpp @@ -35,6 +35,8 @@ #include "dart/common/Console.hpp" #include "dart/math/Random.hpp" +#include + namespace dart { namespace optimizer { diff --git a/dart/optimizer/Problem.cpp b/dart/optimizer/Problem.cpp index 8bf3317777..7dc20a0cc5 100644 --- a/dart/optimizer/Problem.cpp +++ b/dart/optimizer/Problem.cpp @@ -37,6 +37,7 @@ #include "dart/optimizer/Function.hpp" #include +#include #include namespace dart { diff --git a/dart/optimizer/ipopt/IpoptSolver.cpp b/dart/optimizer/ipopt/IpoptSolver.cpp index 0762e1efed..e21260113c 100644 --- a/dart/optimizer/ipopt/IpoptSolver.cpp +++ b/dart/optimizer/ipopt/IpoptSolver.cpp @@ -38,6 +38,8 @@ #include "dart/optimizer/Function.hpp" #include "dart/optimizer/Problem.hpp" +#include + namespace dart { namespace optimizer { diff --git a/dart/optimizer/nlopt/NloptSolver.cpp b/dart/optimizer/nlopt/NloptSolver.cpp index 0adb336fcd..b5dcba5745 100644 --- a/dart/optimizer/nlopt/NloptSolver.cpp +++ b/dart/optimizer/nlopt/NloptSolver.cpp @@ -39,6 +39,7 @@ #include +#include #include namespace dart { diff --git a/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp b/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp index aa3f5517c4..626955cbee 100644 --- a/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp +++ b/dart/optimizer/pagmo/PagmoMultiObjectiveProblemAdaptor.cpp @@ -34,6 +34,8 @@ #include "dart/optimizer/pagmo/PagmoUtils.hpp" +#include + namespace dart { namespace optimizer { ================================================ FILE: ports/dartsim/0006-support-eigen3-5.patch ================================================ diff --git a/cmake/DARTFindEigen3.cmake b/cmake/DARTFindEigen3.cmake index f1f002e..d205773 100644 --- a/cmake/DARTFindEigen3.cmake +++ b/cmake/DARTFindEigen3.cmake @@ -6,4 +6,4 @@ # # This file is provided under the "BSD-style" License -find_package(Eigen3 3.4.0 REQUIRED CONFIG) +find_package(Eigen3 3.4.0...5 REQUIRED CONFIG) ================================================ FILE: ports/dartsim/0007-fix-imgui.patch ================================================ diff --git a/dart/gui/osg/ImGuiHandler.cpp b/dart/gui/osg/ImGuiHandler.cpp index 39b1005..05e252c 100644 --- a/dart/gui/osg/ImGuiHandler.cpp +++ b/dart/gui/osg/ImGuiHandler.cpp @@ -128,16 +128,16 @@ ConvertedKey convertFromOSGKey(int key) return ImGuiKey_Escape; case KeySymbol::KEY_Control_L: case KeySymbol::KEY_Control_R: - return ImGuiKey_ModCtrl; + return ImGuiMod_Ctrl; case KeySymbol::KEY_Shift_L: case KeySymbol::KEY_Shift_R: - return ImGuiKey_ModShift; + return ImGuiMod_Shift; case KeySymbol::KEY_Alt_L: case KeySymbol::KEY_Alt_R: - return ImGuiKey_ModAlt; + return ImGuiMod_Alt; case KeySymbol::KEY_Super_L: case KeySymbol::KEY_Super_R: - return ImGuiKey_ModSuper; + return ImGuiMod_Super; case KeySymbol::KEY_A: return ImGuiKey_A; case KeySymbol::KEY_C: ================================================ FILE: ports/dartsim/portfile.cmake ================================================ # DLL support is broken upstream (https://github.com/dartsim/dart/issues/1005#issuecomment-375406260) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dartsim/dart REF v${VERSION} SHA512 3c621245c5dc1bf26932c33c940e2b09aaebd1a15f3620616c60296f18a67e1044728543b4f640f92caf8f98295e350679b70eb11aecadea9e4a28aaf370ea75 HEAD_REF main PATCHES 0001-dependencies.patch 0002-devendor-lodepng.patch 0003-disable_unit_tests_examples_and_tutorials.patch 0004-pkgconfig.patch 0005-add-cassert.patch 0006-support-eigen3-5.patch 0007-fix-imgui.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/dart/external/imgui") vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES collision-bullet CMAKE_REQUIRE_FIND_PACKAGE_BULLET collision-ode CMAKE_REQUIRE_FIND_PACKAGE_ODE gui CMAKE_REQUIRE_FIND_PACKAGE_GLUT gui-osg DART_BUILD_GUI_OSG spdlog CMAKE_REQUIRE_FIND_PACKAGE_spdlog utils CMAKE_REQUIRE_FIND_PACKAGE_tinyxml2 utils-urdf CMAKE_REQUIRE_FIND_PACKAGE_urdfdom INVERTED_FEATURES collision-bullet CMAKE_DISABLE_FIND_PACKAGE_BULLET collision-ode DART_SKIP_ODE gui DART_SKIP_GLUT gui DART_SKIP_OPENGL spdlog DART_SKIP_spdlog utils DART_SKIP_TINYXML2 utils-urdf CMAKE_DISABLE_FIND_PACKAGE_urdfdom ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DDART_VERBOSE=ON -DDART_TREAT_WARNINGS_AS_ERRORS=OFF -DDART_MSVC_DEFAULT_OPTIONS=ON -DDART_USE_SYSTEM_IMGUI=ON -DDART_BUILD_DARTPY=OFF -DDART_SKIP_DOXYGEN=ON -DDART_SKIP_IPOPT=ON -DDART_SKIP_NLOPT=ON -DDART_SKIP_pagmo=ON -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON OPTIONS_DEBUG -DDART_PKG_DEBUG_POSTFIX=d MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_urdfdom CMAKE_REQUIRE_FIND_PACKAGE_GLUT CMAKE_REQUIRE_FIND_PACKAGE_urdfdom DART_MSVC_DEFAULT_OPTIONS DART_SKIP_GLUT DART_SKIP_OPENGL ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/dart/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # only used for tests and examples (we removed the examples in share/doc above): vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dart/config.hpp" "#define DART_ROOT_PATH \"${SOURCE_PATH}/\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dart/config.hpp" "#define DART_DATA_PATH \"${SOURCE_PATH}/data/\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dart/config.hpp" "#define DART_DATA_LOCAL_PATH \"${SOURCE_PATH}/data/\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dart/config.hpp" "#define DART_DATA_GLOBAL_PATH \\\n \"${CURRENT_PACKAGES_DIR}/share/doc/dart/data/\"" "") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY_FILE "${SOURCE_PATH}/dart/external/convhull_3d/convhull_3d.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/convhull_3d LICENSE") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/convhull_3d LICENSE" [[[*]/.*]] [[*/]] REGEX) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/convhull_3d LICENSE" ) ================================================ FILE: ports/dartsim/usage ================================================ dartsim provides CMake targets: find_package(DART CONFIG REQUIRED) target_link_libraries(main PRIVATE dart) # main library dartsim provides pkg-config modules: # Dynamic Animation and Robotics Toolkit. dart ================================================ FILE: ports/dartsim/vcpkg.json ================================================ { "name": "dartsim", "version": "6.15.0", "port-version": 7, "description": "Dynamic Animation and Robotics Toolkit", "homepage": "https://dartsim.github.io/", "license": "BSD-2-Clause", "supports": "!x86 & !arm32", "dependencies": [ "assimp", "eigen3", "fcl", "fmt", "lodepng", "octomap", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "collision-bullet": { "description": "Build dart-collision-bullet library", "dependencies": [ "bullet3" ] }, "collision-ode": { "description": "Build dart-collision-ode library", "dependencies": [ "ode" ] }, "gui": { "description": "Build dart-gui library", "dependencies": [ { "name": "dartsim", "default-features": false, "features": [ "utils" ] }, { "name": "freeglut", "platform": "!osx" }, "opengl" ] }, "gui-osg": { "description": "Build dart-gui-osg library", "dependencies": [ { "name": "dartsim", "default-features": false, "features": [ "gui" ] }, { "name": "imgui", "default-features": false, "features": [ "opengl2-binding" ] }, { "name": "osg", "default-features": false } ] }, "spdlog": { "description": "Support spdlog as underlying logging framework", "dependencies": [ "spdlog" ] }, "utils": { "description": "Build dart-utils library", "dependencies": [ "tinyxml2" ] }, "utils-urdf": { "description": "Build dart-utils-urdf library", "dependencies": [ { "name": "dartsim", "default-features": false, "features": [ "utils" ] }, "urdfdom" ] } } } ================================================ FILE: ports/dataframe/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hosseinmoein/DataFrame REF "${VERSION}" SHA512 9a45be1149d158732cb66714e105c7d120a107ff427e5f28aeb68e29519b0822ac4fc89d144f0fa7a83118d1a52329b0838bf69a9b259b5792b4771e3247cd17 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHMDF_TESTING:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/DataFrame) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License") ================================================ FILE: ports/dataframe/vcpkg.json ================================================ { "name": "dataframe", "version": "4.0.0", "description": "C++ DataFrame for statistical, Financial, and ML analysis in modern C++", "homepage": "https://github.com/hosseinmoein/DataFrame", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/date/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) message(WARNING "You will need to also install https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/windowsZones.xml into your install location.\n" "See https://howardhinnant.github.io/date/tz.html" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HowardHinnant/date REF "v${VERSION}" SHA512 9bffca5c7cfd1769f66bef330fe4ef0ad2512a8afd229ddb4043a4f166741e697c7a5fbdddf29f7157b3fc2c2c2a80fa7cff45078f1d8ab248d3b07e14518fcf HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES remote-api USE_SYSTEM_TZ_DB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TZ_LIB=ON ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/date") endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/date/usage ================================================ date provides CMake targets: find_package(date CONFIG REQUIRED) target_link_libraries(main PRIVATE date::date date::date-tz) ================================================ FILE: ports/date/vcpkg.json ================================================ { "name": "date", "version": "3.0.4", "description": "A date and time library based on the C++17 header", "homepage": "https://github.com/HowardHinnant/date", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "remote-api": { "description": "support automatic download of tz data", "supports": "!uwp & !android", "dependencies": [ "curl" ] } } } ================================================ FILE: ports/datraw/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO UniStuttgart-VISUS/datraw REF "v${VERSION}" SHA512 45c79ae6deaa1434782d3372a036211889ae7dc883b368136d83648718f8c1b23d08206ba30c99aca02ee22d2c9a044313a066d43ed461fa563b1eca3ed90870 HEAD_REF master ) file(COPY "${SOURCE_PATH}/datraw/datraw.h" "${SOURCE_PATH}/datraw/datraw" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE.md") ================================================ FILE: ports/datraw/vcpkg.json ================================================ { "name": "datraw", "version": "1.1.0", "description": "C++ reimplementation of VIS's datraw library.", "homepage": "https://github.com/UniStuttgart-VISUS/datraw", "license": "MIT" } ================================================ FILE: ports/dav1d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO videolan/dav1d REF "${VERSION}" SHA512 8d976b93135213d41385c20205475269a6826a68ebfd716c4d9a7a3ff2a79703e8df0573e43207c81b5db44807d2721db18ec84c0fc6bef98efab86a2cccb6cc HEAD_REF master ) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) vcpkg_add_to_path(${NASM_EXE_PATH}) elseif (VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(GASPREPROCESSOR) foreach(GAS_PATH ${GASPREPROCESSOR}) get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY) vcpkg_add_to_path(${GAS_ITEM_PATH}) endforeach(GAS_PATH) endif() set(LIBRARY_TYPE ${VCPKG_LIBRARY_LINKAGE}) if (LIBRARY_TYPE STREQUAL "dynamic") set(LIBRARY_TYPE "shared") endif(LIBRARY_TYPE STREQUAL "dynamic") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --default-library=${LIBRARY_TYPE} -Denable_tests=false -Denable_tools=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/dav1d/usage ================================================ The package dav1d can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(dav1d REQUIRED IMPORTED_TARGET dav1d) target_link_libraries(main PkgConfig::dav1d) ================================================ FILE: ports/dav1d/vcpkg.json ================================================ { "name": "dav1d", "version": "1.5.3", "description": "dav1d is a new open-source AV1 decoder developed by the VideoLAN and FFmpeg communities and sponsored by the Alliance for Open Media.", "homepage": "https://code.videolan.org/videolan/dav1d", "license": "BSD-2-Clause", "supports": "!(windows & x86 & !static)", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/daw-header-libraries/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO beached/header_libraries REF "v${VERSION}" SHA512 0c75ae477c4e971d479ecdd9891028053e278211b75ce71ed808165e522520acfd863cc96c1bce5c5c0570766f760b7456c5840cd383bd12f16cffff2ed09de0 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # remove empty lib and debug/lib directories (and duplicate files from debug/include) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/daw-header-libraries/vcpkg.json ================================================ { "name": "daw-header-libraries", "version": "2.132.1", "description": "Set of header-only algorithms used in daw-utf8-range and daw-json-link.", "homepage": "https://github.com/beached/header_libraries", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/daw-json-link/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO beached/daw_json_link REF "v${VERSION}" SHA512 47d351c9ab00434f80a01b06ae870132f1a013502140a72f54f0e8054df827d38e9923d7650c0a0e2ffabd6ca7887fafb92d31a5964567bdb7443410856d5b21 HEAD_REF release ) file(REMOVE "${SOURCE_PATH}/include/daw/daw_tuple_forward.h") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDAW_USE_PACKAGE_MANAGEMENT=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}/cmake) # remove empty lib and debug/lib directories (and duplicate files from debug/include) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Append the json-link and dragonbox license information into a single # copyright file (they are both Boost v1.0 but it is good to be clear). file(APPEND "${SOURCE_PATH}/copyright" [=[+----------------------------------------------------------------------------+ | json-link copywrite | +----------------------------------------------------------------------------+ ]=]) file(READ "${SOURCE_PATH}/LICENSE" json_link_copywrite) file(APPEND "${SOURCE_PATH}/copyright" ${json_link_copywrite}) file(APPEND "${SOURCE_PATH}/copyright" [=[ +----------------------------------------------------------------------------+ | dragonbox copywrite | +----------------------------------------------------------------------------+ ]=]) file(READ "${SOURCE_PATH}/LICENSE_Dragonbox" dragonbox_copywrite) file(APPEND "${SOURCE_PATH}/copyright" ${dragonbox_copywrite}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/copyright") ================================================ FILE: ports/daw-json-link/vcpkg.json ================================================ { "name": "daw-json-link", "version": "3.31.0", "description": "Perhaps the fastest JSON deserializer/serializer posssible or at least close to it.", "homepage": "https://github.com/beached/daw_json_link", "license": "BSL-1.0", "dependencies": [ "daw-utf-range", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/daw-utf-range/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO beached/utf_range REF "v${VERSION}" SHA512 47a67b02ea9b8255ad8d891f79bacb0cbdb2118e296e519f5397785c9dc090b89d6fddfe043b99815774a4bc137dc0e808e8cda3a8acd57b613a44614f41c2ec HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDAW_USE_PACKAGE_MANAGEMENT=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # remove empty lib and debug/lib directories (and duplicate files from debug/include) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/daw-utf-range/vcpkg.json ================================================ { "name": "daw-utf-range", "version": "2.2.6", "description": "Header-only utf8 string range used by daw-json-link. Includes a constexpr/noexcept modified version of utfcpp.", "homepage": "https://github.com/beached/utf_range", "license": "BSL-1.0", "dependencies": [ "daw-header-libraries", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dawn/000-fix-emdawnwebgpu.patch ================================================ diff --git a/emdawnwebgpu.port.py b/emdawnwebgpu.port.py index 4b90064..1956d0b 100644 --- a/emdawnwebgpu.port.py +++ b/emdawnwebgpu.port.py @@ -70,10 +70,10 @@ def _walk(path): yield os.path.join(dirpath, filename) -_pkg_dir = os.path.dirname(os.path.realpath(__file__)) -_c_include_dir = os.path.join(_pkg_dir, 'webgpu', 'include') -_cpp_include_dir = os.path.join(_pkg_dir, 'webgpu_cpp', 'include') -_src_dir = os.path.join(_pkg_dir, 'webgpu', 'src') +_pkg_dir = os.path.dirname(os.path.realpath(os.path.join(__file__, '..', '..'))) +_c_include_dir = os.path.join(_pkg_dir, 'include') +_cpp_include_dir = os.path.join(_pkg_dir, 'include') +_src_dir = os.path.join(_pkg_dir, 'share', 'dawn', 'src') _srcs = [ os.path.join(_src_dir, 'webgpu.cpp'), ] ================================================ FILE: ports/dawn/001-fix-windows-build.patch ================================================ diff --git a/src/cmake/DawnLibrary.cmake b/src/cmake/DawnLibrary.cmake index f80426804a..44f4535c63 100644 --- a/src/cmake/DawnLibrary.cmake +++ b/src/cmake/DawnLibrary.cmake @@ -184,9 +184,6 @@ function(dawn_install_target name) get_target_property(target_type "${name}" TYPE) # Only shared libraries and executables generate PDB files through the linker # Static libraries are created by the archiver and don't generate PDB files - if ((target_type STREQUAL "SHARED_LIBRARY") OR (target_type STREQUAL "EXECUTABLE")) - install(FILES $ DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL) - endif() endif (MSVC) # Automatically determine where each header should go based on its subdirectory in the include dir. ================================================ FILE: ports/dawn/002-fix-uwp.patch ================================================ diff --git a/src/dawn/native/d3d/PlatformFunctions.cpp b/src/dawn/native/d3d/PlatformFunctions.cpp index 12d65e0db5..d3abb05fb5 100644 --- a/src/dawn/native/d3d/PlatformFunctions.cpp +++ b/src/dawn/native/d3d/PlatformFunctions.cpp @@ -121,10 +121,14 @@ MaybeError PlatformFunctions::EnsureFXC(std::span searchPaths } void PlatformFunctions::InitWindowsVersion() { +#if DAWN_PLATFORM_IS(WINUWP) + return; +#else // Currently we only care about the build number of Windows 10 and Windows 11. if (!IsWindows10OrGreater()) { return; } +#endif // Referenced from base/win/windows_version.cc in Chromium constexpr wchar_t kRegKeyWindowsNTCurrentVersion[] = ================================================ FILE: ports/dawn/003-fix-d3d11.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2092a42fc6..596f55d5f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,6 +222,12 @@ else() set(TINT_DEFAULT_GLSL OFF) endif() +if (DAWN_ENABLE_D3D11 OR DAWN_ENABLE_D3D12) + set(TINT_DEFAULT_HLSL ON) +else() + set(TINT_DEFAULT_HLSL OFF) +endif() + option(TINT_ENABLE_INSTALL "Enable install step for Tint libraries" OFF) option(TINT_BUILD_CMD_TOOLS "Build the Tint command line tools" ON) @@ -235,7 +241,7 @@ option(TINT_BUILD_SPV_READER "Build the SPIR-V input reader" ${DAWN_ENABLE_VULKA option(TINT_BUILD_WGSL_READER "Build the WGSL input reader" ON) option(TINT_BUILD_GLSL_WRITER "Build the GLSL output writer" ${TINT_DEFAULT_GLSL}) option(TINT_BUILD_GLSL_VALIDATOR "Build the GLSL output validator" ON) -option(TINT_BUILD_HLSL_WRITER "Build the HLSL output writer" ${DAWN_ENABLE_D3D12}) +option(TINT_BUILD_HLSL_WRITER "Build the HLSL output writer" ${TINT_DEFAULT_HLSL}) option(TINT_BUILD_MSL_WRITER "Build the MSL output writer" ${DAWN_ENABLE_METAL}) option(TINT_BUILD_SPV_WRITER "Build the SPIR-V output writer" ${DAWN_ENABLE_VULKAN}) option(TINT_BUILD_WGSL_WRITER "Build the WGSL output writer" ON) ================================================ FILE: ports/dawn/004-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 596f55d5f2..3ded3daa67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -471,6 +471,11 @@ set(TINT_SPIRV_TOOLS_DIR ${DAWN_SPIRV_TOOLS_DIR}) ################################################################################ # Run on all subdirectories ################################################################################ +find_package(absl CONFIG REQUIRED) +if (DAWN_ENABLE_VULKAN) + find_package(VulkanHeaders CONFIG REQUIRED) + find_package(VulkanUtilityLibraries CONFIG REQUIRED) +endif() add_subdirectory(third_party) # TODO(crbug.com/tint/455): Tint does not currently build with CMake when diff --git a/src/cmake/BundleLibraries.cmake b/src/cmake/BundleLibraries.cmake index 682a73924c..1ec358c54c 100644 --- a/src/cmake/BundleLibraries.cmake +++ b/src/cmake/BundleLibraries.cmake @@ -92,7 +92,18 @@ function(bundle_libraries output_target library_type) # Collect $ from STATIC and OBJECT library dependencies set(all_objects "") + set(all_libraries "") + message(STATUS "all_dependencies: ${all_dependencies}") foreach(dependency IN LISTS all_dependencies) + if("${dependency}" MATCHES "^absl::") + list(APPEND all_libraries ${dependency}) + continue() + endif() + if("${dependency}" MATCHES "^Vulkan-Headers" OR "${dependency}" MATCHES "^VulkanUtility") + list(APPEND all_libraries ${dependency}) + continue() + endif() + get_target_property(type ${dependency} TYPE) # We only want object files from static or object libraries. @@ -112,6 +123,7 @@ function(bundle_libraries output_target library_type) # Create the output library using the validated type and collected objects # If all_objects is empty, add_library will still create an empty library of the specified type. add_library(${output_target} ${library_type} ${all_objects}) + target_link_libraries(${output_target} PRIVATE ${all_libraries}) # Add dependencies to ensure input targets are built before the bundled library. # This handles the build order correctly. diff --git a/src/cmake/DawnConfig.cmake.in b/src/cmake/DawnConfig.cmake.in index 8bfeda55bc..a0f9858530 100644 --- a/src/cmake/DawnConfig.cmake.in +++ b/src/cmake/DawnConfig.cmake.in @@ -31,4 +31,9 @@ # 2. https://cmake.org/cmake/help/latest/guide/tutorial/Adding%20Export%20Configuration.html @PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +find_dependency(absl CONFIG) + include ("${CMAKE_CURRENT_LIST_DIR}/DawnTargets.cmake") diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt index c96d5a24d9..472a86d29f 100644 --- a/src/dawn/native/CMakeLists.txt +++ b/src/dawn/native/CMakeLists.txt @@ -650,11 +650,17 @@ if ((DAWN_ENABLE_OPENGL OR DAWN_ENABLE_VULKAN) AND DAWN_ENABLE_SPIRV_VALIDATION) endif() if (DAWN_ENABLE_OPENGL) + find_path(OPENGL_REGISTRY_INCLUDE_DIRS "GL/glcorearb.h") + find_file( + OPENGL_XML_FILE + NAMES "opengl/gl.xml" + PATHS "${OPENGL_REGISTRY_INCLUDE_DIRS}/../share" + ) DawnGenerator( SCRIPT "${Dawn_SOURCE_DIR}/generator/opengl_loader_generator.py" PRINT_NAME "OpenGL function loader" EXTRA_PARAMETERS "--gl-xml" - "${DAWN_OPENGL_REGISTRY_DIR}/xml/gl.xml" + "${OPENGL_XML_FILE}" "--supported-extensions" "${Dawn_SOURCE_DIR}/src/dawn/native/opengl/supported_extensions.json" OUTPUT_HEADERS DAWN_NATIVE_OPENGL_AUTOGEN_HEADERS diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index f7812f211e..68644c04f6 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -41,6 +41,7 @@ if (DAWN_FETCH_DEPENDENCIES) ) endif () +if(0) set(ABSL_ROOT_DIR ${DAWN_ABSEIL_DIR}) if (NOT TARGET absl::strings) # Recommended setting for compatibility with future abseil releases. @@ -62,6 +63,7 @@ if (NOT TARGET absl::strings) add_subdirectory(${DAWN_ABSEIL_DIR} "${CMAKE_CURRENT_BINARY_DIR}/abseil") endif() +endif() if (DAWN_BUILD_PROTOBUF AND EXISTS "${DAWN_PROTOBUF_DIR}/cmake") if (("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") AND WIN32) @@ -183,10 +185,12 @@ endif() if (DAWN_ENABLE_DESKTOP_GL OR DAWN_ENABLE_OPENGLES) # Header-only library for khrplatform.h add_library(dawn_khronos_platform INTERFACE) - target_sources(dawn_khronos_platform INTERFACE "${DAWN_EGL_REGISTRY_DIR}/api/KHR/khrplatform.h") - target_include_directories(dawn_khronos_platform INTERFACE "${DAWN_EGL_REGISTRY_DIR}/api") + find_path(EGL_REGISTRY_INCLUDE_DIRS "EGL/egl.h") + target_sources(dawn_khronos_platform INTERFACE "${EGL_REGISTRY_INCLUDE_DIRS}/KHR/khrplatform.h") + target_include_directories(dawn_khronos_platform INTERFACE "${EGL_REGISTRY_INCLUDE_DIRS}") endif() +if(0) if (NOT TARGET Vulkan::Headers AND DAWN_ENABLE_VULKAN) message(STATUS "Dawn: using Vulkan::Headers at ${DAWN_VULKAN_HEADERS_DIR}") @@ -198,6 +202,7 @@ if (NOT TARGET Vulkan::UtilityHeaders AND DAWN_ENABLE_VULKAN) message(STATUS "Dawn: using VulkanUtilityLibraries at ${DAWN_VULKAN_UTILITY_LIBRARIES_DIR}") add_subdirectory(${DAWN_VULKAN_UTILITY_LIBRARIES_DIR} "${CMAKE_CURRENT_BINARY_DIR}/vulkan-utility-libraries/src") endif() +endif() if (DAWN_ENABLE_SWIFTSHADER AND NOT TARGET vk_swiftshader) set(SWIFTSHADER_BUILD_TESTS OFF CACHE BOOL "" FORCE) ================================================ FILE: ports/dawn/005-bsd-support.patch ================================================ diff --git a/include/dawn/native/VulkanBackend.h b/include/dawn/native/VulkanBackend.h index 201bc3242f..3221ad2e37 100644 --- a/include/dawn/native/VulkanBackend.h +++ b/include/dawn/native/VulkanBackend.h @@ -83,7 +83,7 @@ struct ExternalImageExportInfoVk : ExternalImageExportInfo { }; // Can't use DAWN_PLATFORM_IS(LINUX) since header included in both Dawn and Chrome -#if defined(__linux__) || defined(__Fuchsia__) +#if defined(__linux__) || defined(__Fuchsia__) || defined(__OpenBSD__) || defined(__FreeBSD__) // Common properties of external images represented by FDs. On successful import the file // descriptor's ownership is transferred to the Dawn implementation and they shouldn't be diff --git a/src/dawn/common/Platform.h b/src/dawn/common/Platform.h index b4ac61004d..cbc5c7b8b5 100644 --- a/src/dawn/common/Platform.h +++ b/src/dawn/common/Platform.h @@ -60,6 +60,11 @@ #error "Unsupported Windows platform." #endif +#elif defined(__OpenBSD__) || defined(__FreeBSD__) +#define DAWN_PLATFORM_IS_LINUX 1 +#define DAWN_PLATFORM_IS_BSD 1 +#define DAWN_PLATFORM_IS_POSIX 1 + #elif defined(__linux__) #define DAWN_PLATFORM_IS_LINUX 1 #define DAWN_PLATFORM_IS_POSIX 1 diff --git a/src/dawn/native/vulkan/BackendVk.cpp b/src/dawn/native/vulkan/BackendVk.cpp index 783a15ab55..29405d2003 100644 --- a/src/dawn/native/vulkan/BackendVk.cpp +++ b/src/dawn/native/vulkan/BackendVk.cpp @@ -57,7 +57,7 @@ constexpr char kSwiftshaderLibName[] = "libvk_swiftshader.dylib"; #endif #if DAWN_PLATFORM_IS(LINUX) -#if DAWN_PLATFORM_IS(ANDROID) +#if DAWN_PLATFORM_IS(ANDROID) || DAWN_PLATFORM_IS(BSD) constexpr char kVulkanLibName[] = "libvulkan.so"; #else constexpr char kVulkanLibName[] = "libvulkan.so.1"; ================================================ FILE: ports/dawn/006-msvc-spirv-tools-disable-warnaserror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d843b4d..db498e60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,7 +112,7 @@ if(${COMPILER_IS_LIKE_GNU}) set(SPIRV_WARNINGS ${SPIRV_WARNINGS} -Werror) endif() elseif(MSVC) - set(SPIRV_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS /wd4800 /wd4819 /wd4251 /W2 /WX) + set(SPIRV_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS /wd4800 /wd4819 /wd4251 /W2) if(${SPIRV_WERROR}) set(SPIRV_WARNINGS ${SPIRV_WARNINGS} /WX) ================================================ FILE: ports/dawn/007-fix-tint-null-only-writer.patch ================================================ diff --git a/src/tint/lang/null/writer/common/options.h b/src/tint/lang/null/writer/common/options.h index b3d9f0deac..d20b7715bb 100644 --- a/src/tint/lang/null/writer/common/options.h +++ b/src/tint/lang/null/writer/common/options.h @@ -30,6 +30,8 @@ #include +#include "src/tint/api/common/binding_point.h" +#include "src/tint/api/common/bindings.h" #include "src/tint/api/common/substitute_overrides_config.h" #include "src/tint/utils/reflection.h" ================================================ FILE: ports/dawn/008-wrong-dxcapi-include.patch ================================================ diff --git a/src/tint/lang/hlsl/validate/validate.cc b/src/tint/lang/hlsl/validate/validate.cc index 21e6b9c6dc..00cdbfe95c 100644 --- a/src/tint/lang/hlsl/validate/validate.cc +++ b/src/tint/lang/hlsl/validate/validate.cc @@ -51,7 +51,7 @@ TINT_BEGIN_DISABLE_ALL_WARNINGS(); // # Use UUID emulation with clang to avoid compiling with ms-extensions #define __EMULATE_UUID #endif -#include "dxc/dxcapi.h" +#include "dxcapi.h" TINT_END_DISABLE_ALL_WARNINGS(); // Disable warnings about old-style casts which result from using ================================================ FILE: ports/dawn/009-fix-tint-install.patch ================================================ diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt index 446c0d8b29..573c615799 100644 --- a/src/tint/CMakeLists.txt +++ b/src/tint/CMakeLists.txt @@ -415,7 +415,9 @@ function(tint_add_target TARGET KIND) elseif(${KIND} STREQUAL cmd) add_executable(${TARGET}) tint_default_compile_options(${TARGET}) + if(TINT_ENABLE_INSTALL) install(TARGETS "${TARGET}") + endif() elseif(${KIND} STREQUAL test_cmd) add_executable(${TARGET}) tint_test_cmd_compile_options(${TARGET}) @@ -744,3 +746,9 @@ if (TINT_ENABLE_INSTALL) install(FILES ${TINT_ROOT_SOURCE_DIR}/${TINT_HEADER_FILE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/src/tint/${TINT_HEADER_DIR}) endforeach () endif() + +if(TINT_BUILD_CMD_TOOLS) + install(TARGETS tint_cmd_tint_cmd + RUNTIME DESTINATION bin + BUNDLE DESTINATION bin) +endif() ================================================ FILE: ports/dawn/010-fix-glslang.patch ================================================ diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index 68644c04f6..c1ca58b3e2 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -122,6 +122,12 @@ if (EMSCRIPTEN) return() endif() +if(NOT TARGET glslang AND (TINT_BUILD_GLSL_WRITER OR TINT_BUILD_GLSL_VALIDATOR) AND TINT_BUILD_CMD_TOOLS) + find_package(glslang CONFIG REQUIRED GLOBAL) + add_library(glslang ALIAS glslang::glslang) + add_library(glslang-default-resource-limits ALIAS glslang::glslang-default-resource-limits) +endif() + # Force ENABLE_RTTI in spirv-tools and glslang. set(ENABLE_RTTI ${DAWN_ENABLE_RTTI} CACHE BOOL "" FORCE) ================================================ FILE: ports/dawn/011-fix-dxc.patch ================================================ diff --git a/src/dawn/native/CMakeLists.txt b/src/dawn/native/CMakeLists.txt index 472a86d29f..42a2943e1a 100644 --- a/src/dawn/native/CMakeLists.txt +++ b/src/dawn/native/CMakeLists.txt @@ -963,7 +963,6 @@ if (DAWN_ENABLE_D3D12) if (DAWN_USE_BUILT_DXC) target_compile_definitions(dawn_native PRIVATE "DAWN_USE_BUILT_DXC") target_compile_definitions(dawn_native_objects PRIVATE "DAWN_USE_BUILT_DXC") - add_dependencies(dawn_native copy_dxil_dll) endif() endif() @@ -1065,7 +1064,7 @@ endif () # They happen because dxcompiler is declared a shared library and bundle_libraries # doesn't work well with shared libs if (DAWN_USE_BUILT_DXC) - target_link_libraries(dawn_native PRIVATE dxcompiler) + target_link_libraries(dawn_native PRIVATE Microsoft::DirectXShaderCompiler) endif() # Copy d3dcompiler_47.dll from Windows SDK when not using system component loading diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index c1ca58b3e2..e2b9faf26f 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -366,7 +366,7 @@ function(AddSubdirectoryDXC) endfunction() if (DAWN_USE_BUILT_DXC) - AddSubdirectoryDXC() + find_package(directx-dxc CONFIG REQUIRED GLOBAL) endif() if (TINT_BUILD_TINTD) ================================================ FILE: ports/dawn/DawnConfig.cmake ================================================ if (NOT TARGET dawn::webgpu_dawn) add_library(dawn::webgpu_dawn INTERFACE IMPORTED) set_target_properties(dawn::webgpu_dawn PROPERTIES INTERFACE_COMPILE_OPTIONS "--use-port=${CMAKE_CURRENT_LIST_DIR}/emdawnwebgpu.port.py" INTERFACE_LINK_OPTIONS "--use-port=${CMAKE_CURRENT_LIST_DIR}/emdawnwebgpu.port.py" ) endif() ================================================ FILE: ports/dawn/portfile.cmake ================================================ if (VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/google/dawn/releases/download/v${VERSION}/emdawnwebgpu_pkg-v${VERSION}.zip" FILENAME "emdawnwebgpu_pkg-v${VERSION}.zip" SHA512 67f64ae3263e2111ca5d71b0ea69f0fbf42a0a7cd40ada66c3975e031f9af07411e1390a8b52fec08d563a99612ca6a3b3f75115191253d41fca18b8f3494f9c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES 000-fix-emdawnwebgpu.patch ) set(VCPKG_BUILD_TYPE release) file(INSTALL "${SOURCE_PATH}/webgpu/include" DESTINATION "${CURRENT_PACKAGES_DIR}") file(INSTALL "${SOURCE_PATH}/webgpu_cpp/include" DESTINATION "${CURRENT_PACKAGES_DIR}") file(INSTALL "${SOURCE_PATH}/webgpu/src" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" PATTERN "LICENSE" EXCLUDE) file(INSTALL "${SOURCE_PATH}/emdawnwebgpu.port.py" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # cmake config file file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/DawnConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_cmake_config_fixup() # pkgconfig file set(DAWN_PKGCONFIG_CFLAGS "--use-port=\${prefix}/share/${PORT}/emdawnwebgpu.port.py") set(DAWN_PKGCONFIG_LIBS "--use-port=\${prefix}/share/${PORT}/emdawnwebgpu.port.py") set(DAWN_PKGCONFIG_REQUIRES "") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial_webgpu_dawn.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/unofficial_webgpu_dawn.pc" @ONLY) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/webgpu/src/LICENSE" "${SOURCE_PATH}/webgpu_cpp/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") return() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/dawn REF "v${VERSION}" SHA512 c4d0f19b6ebffd1dd2ac46397ccbffeb60970c3aeb98063aed79fd51de1577c83d3c50e54c86b6ec3bb3cf429629deedebfbafac12d57eda41d6592114b6172a HEAD_REF master PATCHES 001-fix-windows-build.patch 002-fix-uwp.patch 003-fix-d3d11.patch 004-deps.patch 005-bsd-support.patch # https://github.com/google/dawn/commit/fa4a364b9ff215f9fe95823ec89ccc922cf7b254 added a tint writer for the null backend. # When building dawn[core] which only enables dawns null backend and tints null writer, src/dawn/native/ShaderModule.cpp failed to compile # as it was expecting a transitive include of tint::Bindings from a shader language writer. 007-fix-tint-null-only-writer.patch 008-wrong-dxcapi-include.patch 009-fix-tint-install.patch 010-fix-glslang.patch 011-fix-dxc.patch ) # vcpkg_find_acquire_program(PYTHON3) # vcpkg_execute_in_download_mode( # COMMAND "${PYTHON3}" tools/fetch_dawn_dependencies.py # WORKING_DIRECTORY "${SOURCE_PATH}" # ) # # get_dawn_deps_commit() { curl -s "https://dawn.googlesource.com/dawn/+/refs/heads/chromium/7371/$1" | htmlq .gitlink-detail --text; } # function(checkout_in_path PATH URL REF) cmake_parse_arguments(EXTERNAL "" "" "PATCHES" ${ARGN}) if(EXISTS "${PATH}") file(GLOB_RECURSE subdirectory_children "${CURRENT_PACKAGES_DIR}/include/${directory_child}/*") if(NOT "${subdirectory_children}" STREQUAL "") return() else() file(REMOVE_RECURSE "${PATH}") endif() endif() vcpkg_from_git( OUT_SOURCE_PATH DEP_SOURCE_PATH URL "${URL}" REF "${REF}" PATCHES ${EXTERNAL_PATCHES} ) file(RENAME "${DEP_SOURCE_PATH}" "${PATH}") file(REMOVE_RECURSE "${DEP_SOURCE_PATH}") endfunction() checkout_in_path( "${SOURCE_PATH}/third_party/jinja2" "https://chromium.googlesource.com/chromium/src/third_party/jinja2" "c3027d884967773057bf74b957e3fea87e5df4d7" ) checkout_in_path( "${SOURCE_PATH}/third_party/markupsafe" "https://chromium.googlesource.com/chromium/src/third_party/markupsafe" "4256084ae14175d38a3ff7d739dca83ae49ccec6" ) checkout_in_path( "${SOURCE_PATH}/third_party/spirv-headers/src" "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers" "f88a2d766840fc825af1fc065977953ba1fa4a91" ) checkout_in_path( "${SOURCE_PATH}/third_party/spirv-tools/src" "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools" "4972c69eb50255b314fc0925ca757c4417e6b6c0" PATCHES # Dawn sets SPIRV_WERROR to OFF when building SPIRV-Tools, but https://github.com/KhronosGroup/SPIRV-Tools/commit/337fdb6a284fe7f7e374a14271f8e20e579f3263 ignores that CMake variable and forces /WX 006-msvc-spirv-tools-disable-warnaserror.patch ) checkout_in_path( "${SOURCE_PATH}/third_party/webgpu-headers/src" "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers" "b2b04dde36a941434c88ccff7a730d7e464d638c" ) vcpkg_find_acquire_program(PYTHON3) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(DAWN_BUILD_MONOLITHIC_LIBRARY "STATIC") else() set(DAWN_BUILD_MONOLITHIC_LIBRARY "SHARED") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES d3d11 DAWN_ENABLE_D3D11 d3d12 DAWN_ENABLE_D3D12 gl DAWN_ENABLE_DESKTOP_GL gles DAWN_ENABLE_OPENGLES metal DAWN_ENABLE_METAL vulkan DAWN_ENABLE_VULKAN wayland DAWN_USE_WAYLAND x11 DAWN_USE_X11 tint TINT_BUILD_CMD_TOOLS ) set(DAWN_USE_BUILT_DXC OFF) if(DAWN_ENABLE_D3D11 OR DAWN_ENABLE_D3D12) set(DAWN_USE_BUILT_DXC ON) endif() # DAWN_BUILD_MONOLITHIC_LIBRARY SHARED/STATIC requires BUILD_SHARED_LIBS=OFF set(VCPKG_LIBRARY_LINKAGE_BACKUP ${VCPKG_LIBRARY_LINKAGE}) set(VCPKG_LIBRARY_LINKAGE static) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPython3_EXECUTABLE="${PYTHON3}" -DDAWN_BUILD_MONOLITHIC_LIBRARY=${DAWN_BUILD_MONOLITHIC_LIBRARY} -DDAWN_ENABLE_INSTALL=ON -DDAWN_USE_GLFW=OFF -DDAWN_BUILD_PROTOBUF=OFF -DDAWN_BUILD_SAMPLES=OFF -DDAWN_BUILD_TESTS=OFF -DTINT_BUILD_TESTS=OFF -DTINT_ENABLE_INSTALL=OFF -DTINT_BUILD_WGSL_READER=ON -DTINT_BUILD_WGSL_WRITER=ON -DTINT_BUILD_SPV_READER=OFF -DTINT_BUILD_SPV_WRITER=OFF -DDAWN_ENABLE_NULL=ON -DDAWN_USE_BUILT_DXC=${DAWN_USE_BUILT_DXC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Dawn) # Restore the original library linkage set(VCPKG_LIBRARY_LINKAGE ${VCPKG_LIBRARY_LINKAGE_BACKUP}) list(APPEND DAWN_ABSL_REQUIRES absl_flat_hash_set absl_flat_hash_map absl_inlined_vector absl_no_destructor absl_overload absl_strings absl_span absl_string_view ) list(JOIN DAWN_ABSL_REQUIRES ", " DAWN_ABSL_REQUIRES) set(DAWN_PKGCONFIG_CFLAGS "") set(DAWN_PKGCONFIG_REQUIRES "${DAWN_ABSL_REQUIRES}") set(DAWN_PKGCONFIG_LIBS "-lwebgpu_dawn") if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND NOT VCPKG_TARGET_IS_UWP) set(DAWN_PKGCONFIG_LIBS "${DAWN_PKGCONFIG_LIBS} -lonecore -luser32 -ldelayimp") endif() if (DAWN_ENABLE_D3D11 OR DAWN_ENABLE_D3D12) set(DAWN_PKGCONFIG_LIBS "${DAWN_PKGCONFIG_LIBS} -ldxguid") endif() if (DAWN_ENABLE_METAL) set(DAWN_PKGCONFIG_LIBS "${DAWN_PKGCONFIG_LIBS} -framework IOSurface -framework Metal -framework QuartzCore") if (VCPKG_TARGET_IS_OSX) set(DAWN_PKGCONFIG_LIBS "${DAWN_PKGCONFIG_LIBS} -framework Cocoa -framework IOKit") endif() endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial_webgpu_dawn.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/unofficial_webgpu_dawn.pc" @ONLY) endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial_webgpu_dawn.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/unofficial_webgpu_dawn.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() if(TINT_BUILD_CMD_TOOLS) vcpkg_copy_tools(TOOL_NAMES tint AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/dawn/unofficial_webgpu_dawn.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: unofficial_webgpu_dawn Description: Dawn WebGPU library Version: @VERSION@ URL: https://dawn.googlesource.com/dawn Libs: -L${libdir} @DAWN_PKGCONFIG_LIBS@ Requires.private: @DAWN_PKGCONFIG_REQUIRES@ Cflags: -I${includedir} @DAWN_PKGCONFIG_CFLAGS@ ================================================ FILE: ports/dawn/usage ================================================ dawn provides CMake targets: find_package(Dawn CONFIG REQUIRED) target_link_libraries(main PRIVATE dawn::webgpu_dawn) dawn provides pkg-config modules: unofficial_webgpu_dawn ================================================ FILE: ports/dawn/vcpkg.json ================================================ { "name": "dawn", "version": "20260219.200501", "description": "Dawn is an open-source and cross-platform implementation of the WebGPU standard.", "homepage": "https://dawn.googlesource.com/dawn", "license": "BSD-3-Clause", "dependencies": [ { "name": "abseil", "platform": "!emscripten" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true } ], "default-features": [ { "name": "d3d11", "platform": "windows" }, { "name": "d3d12", "platform": "windows" }, { "name": "gl", "platform": "linux | freebsd | openbsd" }, { "name": "gles", "platform": "android | linux | freebsd | openbsd" }, { "name": "metal", "platform": "osx | ios" }, { "name": "vulkan", "platform": "(windows & !uwp) | android | linux | freebsd | openbsd" }, { "name": "x11", "platform": "linux | freebsd | openbsd" } ], "features": { "d3d11": { "description": "Direct3D 11 backend support", "supports": "windows", "dependencies": [ "directx-dxc" ] }, "d3d12": { "description": "Direct3D 12 backend support", "supports": "windows", "dependencies": [ "directx-dxc" ] }, "gl": { "description": "Desktop OpenGL backend support", "supports": "linux | freebsd | openbsd", "dependencies": [ "egl-registry", "opengl-registry" ] }, "gles": { "description": "OpenGL ES backend support", "supports": "android | linux | freebsd | openbsd", "dependencies": [ "egl-registry", "opengl-registry" ] }, "metal": { "description": "Metal backend support", "supports": "osx | ios" }, "tint": { "description": "Compiles a minimal tint compiler (mainly for WGSL validation)", "supports": "(windows & !uwp) | linux | freebsd | openbsd | osx", "dependencies": [ "glslang" ] }, "vulkan": { "description": "Vulkan backend support", "supports": "(windows & !uwp) | android | linux | freebsd | openbsd", "dependencies": [ "vulkan-headers", "vulkan-utility-libraries" ] }, "wayland": { "description": "Wayland support", "supports": "linux | freebsd | openbsd" }, "x11": { "description": "X11 support", "supports": "linux | freebsd | openbsd" } } } ================================================ FILE: ports/daxa/daxa_swp_current_cpu_timeline_value.patch ================================================ diff --git a/src/impl_swapchain.cpp b/src/impl_swapchain.cpp index dfbdebc5..e190490b 100644 --- a/src/impl_swapchain.cpp +++ b/src/impl_swapchain.cpp @@ -238,7 +238,7 @@ auto daxa_swp_gpu_timeline_semaphore(daxa_Swapchain self) -> daxa_TimelineSemaph auto daxa_swp_current_cpu_timeline_value(daxa_Swapchain self) -> u64 { - return static_cast(std::max(0ll, self->cpu_frame_timeline)); + return static_cast(std::max(int64_t{0}, self->cpu_frame_timeline)); } auto daxa_swp_info(daxa_Swapchain self) -> daxa_SwapchainInfo const * ================================================ FILE: ports/daxa/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ipotrick/Daxa REF ${VERSION} SHA512 2cdb653be68e9c70fd023d1d3c450830b9fb9fcd3d7257e85715390f422501ae17633b01fdc1b9da7b9563ace1c4b524f8b69e5a24636b387b7960b52906ed94 HEAD_REF master PATCHES daxa_swp_current_cpu_timeline_value.patch # fix std::max(long long int, long int), as int64_t is long int on some platforms ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES utils-imgui WITH_UTILS_IMGUI utils-mem WITH_UTILS_MEM utils-pipeline-manager-glslang WITH_UTILS_PIPELINE_MANAGER_GLSLANG utils-pipeline-manager-slang WITH_UTILS_PIPELINE_MANAGER_SLANG utils-pipeline-manager-spirv-validation WITH_UTILS_PIPELINE_MANAGER_SPIRV_VALIDATION utils-task-graph WITH_UTILS_TASK_GRAPH ) set(DAXA_DEFINES "-DDAXA_INSTALL=true") if(WITH_UTILS_IMGUI) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_IMGUI=true") endif() if(WITH_UTILS_MEM) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_MEM=true") endif() if(WITH_UTILS_PIPELINE_MANAGER_GLSLANG) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_PIPELINE_MANAGER_GLSLANG=true") endif() if(WITH_UTILS_PIPELINE_MANAGER_SLANG) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_PIPELINE_MANAGER_SLANG=true") endif() if(WITH_UTILS_PIPELINE_MANAGER_SPIRV_VALIDATION) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_PIPELINE_MANAGER_SPIRV_VALIDATION=true") endif() if(WITH_UTILS_TASK_GRAPH) list(APPEND DAXA_DEFINES "-DDAXA_ENABLE_UTILS_TASK_GRAPH=true") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${DAXA_DEFINES} -DCMAKE_REQUIRE_FIND_PACKAGE_X11=ON -DCMAKE_REQUIRE_FIND_PACKAGE_WAYLAND=ON MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_X11 CMAKE_REQUIRE_FIND_PACKAGE_WAYLAND ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/daxa/vcpkg.json ================================================ { "name": "daxa", "version": "3.3.1", "description": "Daxa C++ Vulkan Abstraction", "homepage": "https://github.com/Ipotrick/Daxa", "license": "MIT", "supports": "(windows | linux) & !x86", "dependencies": [ "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan", "vulkan-headers", "vulkan-memory-allocator", { "name": "wayland", "default-features": false, "platform": "linux" } ], "features": { "utils-imgui": { "description": "The ImGUI Daxa utility", "dependencies": [ "imgui" ] }, "utils-mem": { "description": "The Mem Daxa utility" }, "utils-pipeline-manager-glslang": { "description": "Build with glslang", "dependencies": [ "glslang" ] }, "utils-pipeline-manager-slang": { "description": "Build with Slang", "dependencies": [ "shader-slang" ] }, "utils-pipeline-manager-spirv-validation": { "description": "Build with SPIR-V validation", "dependencies": [ "spirv-tools" ] }, "utils-task-graph": { "description": "The Task-Graph Daxa utility" } } } ================================================ FILE: ports/dbg-macro/portfile.cmake ================================================ # single header file library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sharkdp/dbg-macro REF "v${VERSION}" SHA512 9aa41745168409f7c8c9e36e9bae58e2b3b356edd6d5f2414acd7dee9a79d2faa7b63d789821702e33781449b42213855c2ff71dcc39956f5f69c083827118c1 HEAD_REF master ) file(COPY "${SOURCE_PATH}/dbg.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/dbg-macro") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dbg-macro/vcpkg.json ================================================ { "name": "dbg-macro", "version": "0.5.1", "port-version": 1, "description": "A dbg(...) macro for C++", "homepage": "https://github.com/sharkdp/dbg-macro", "license": "MIT" } ================================================ FILE: ports/dbghelp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK VERSION_GREATER "10") set(LIBFILEPATH "$ENV{WindowsSdkDir}Debuggers\\lib\\${TRIPLET_SYSTEM_ARCH}\\dbghelp.lib") message("LIBFILEPATH: ${LIBFILEPATH}") set(DLLFILEPATH "$ENV{WindowsSdkDir}Debuggers\\${TRIPLET_SYSTEM_ARCH}\\dbghelp.dll") message("DLLFILEPATH: ${DLLFILEPATH}") set(HEADERPATH "$ENV{WindowsSdkDir}Debuggers\\inc\\dbghelp.h") message("HEADERPATH: ${HEADERPATH}") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() if (NOT EXISTS "${LIBFILEPATH}" OR NOT EXISTS "${DLLFILEPATH}" OR NOT EXISTS "${HEADERPATH}") message(FATAL_ERROR "Cannot find debugging tools in Windows SDK ${WINDOWS_SDK}. Please reinstall the Windows SDK and select \"Debugging Tools\".") endif() file(INSTALL ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(INSTALL ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(INSTALL ${DLLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${DLLFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) file(INSTALL ${HEADERPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license") ================================================ FILE: ports/dbghelp/vcpkg.json ================================================ { "name": "dbghelp", "version": "0", "port-version": 2, "description": "Windows Debug Help Library", "supports": "windows" } ================================================ FILE: ports/dbow2/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dorian3d/DBoW2 REF 4d08e9fc751fac9063874d85a43c1ccdcda8b401 SHA512 0a4ad8506c731395cb23d96d0e8afe4131576af88468723b9496cdbc95a031089ecdeb61dbb7205cb3a7599acb60a39887fa9852e7d7a690b8152a1bd26d9bd0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_Demo=OFF ) vcpkg_cmake_install() # Move CMake files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/DBoW2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/DBoW2/DBoW2Config.cmake") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/dbow2/vcpkg.json ================================================ { "name": "dbow2", "version-date": "2019-08-05", "port-version": 3, "description": "DBoW2 is an improved version of the DBow library, an open source C++ library for indexing and converting images into a bag-of-word representation.", "homepage": "https://github.com/dorian3d/DBoW2", "dependencies": [ "opencv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dbow3/add-cstdint.diff ================================================ diff --git a/Lib/include/DBow3/BowVector.h b/Lib/include/DBow3/BowVector.h index cdbf517..90862b9 100644 --- a/Lib/include/DBow3/BowVector.h +++ b/Lib/include/DBow3/BowVector.h @@ -10,13 +10,11 @@ #ifndef __D_T_BOW_VECTOR__ #define __D_T_BOW_VECTOR__ +#include #include #include #include #include "exports.h" -#if _WIN32 -#include -#endif namespace DBoW3 { /// Id of words ================================================ FILE: ports/dbow3/fix_cmake.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,268 +1,25 @@ -# ---------------------------------------------------------------------------- -# Basic Configuration -# ---------------------------------------------------------------------------- -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +cmake_minimum_required(VERSION 3.10) -set(CMAKE_CXX_STANDARD 11) +project(DBow3 VERSION 1.0.0) -PROJECT(DBoW3) -set(PROJECT_VERSION "0.0.1") -string(REGEX MATCHALL "[0-9]" PROJECT_VERSION_PARTS "${PROJECT_VERSION}") -list(GET PROJECT_VERSION_PARTS 0 PROJECT_VERSION_MAJOR) -list(GET PROJECT_VERSION_PARTS 1 PROJECT_VERSION_MINOR) -list(GET PROJECT_VERSION_PARTS 2 PROJECT_VERSION_PATCH) -set(PROJECT_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") +option(BUILD_EXAMPLES "Set to ON to build examples" OFF) +option(BUILD_TESTS "Set to ON to build tests" OFF) +option(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON) -message("LIB_INSTALL_DIR: ${LIB_INSTALL_DIR}") +# OpenCV +option(USE_OPENCV_CONTRIB "Set on to use opencv-contrib" ON) -#------------------------------------------------------ -# Build type -#------------------------------------------------------ +# Optimization +option(USE_SIMD "Set on to enabel avx optimization" ON) -IF(NOT CMAKE_BUILD_TYPE ) - SET( CMAKE_BUILD_TYPE "Release" ) -ENDIF() -#------------------------------------------------------ -# Lib Names and Dirs -#------------------------------------------------------ +add_subdirectory(Lib) -if(WIN32) - # Postfix of DLLs: - SET(PROJECT_DLLVERSION "${PROJECT_VERSION_MAJOR}${PROJECT_VERSION_MINOR}${PROJECT_VERSION_PATCH}") - SET(RUNTIME_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "Directory for dlls and binaries") - SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "Directory for binaries") - SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH "Directory for dlls") -else() - # Postfix of so's: - set(PROJECT_DLLVERSION) - set(LIB_INSTALL_DIR lib CACHE STRING "Install location of libraries (e.g. lib32 or lib64 for multilib installations)") - SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/cmake/ /usr/${LIB_INSTALL_DIR}/cmake ) -endif() +if(BUILD_EXAMPLES) + add_subdirectory(examples) +endif(BUILD_EXAMPLES) +if(BUILD_TESTS) + add_subdirectory(tests) +endif(BUILD_TESTS) - -# -OPTION(BUILD_UTILS "Set to OFF to not build utils" ON) -OPTION(USE_CONTRIB "Set to ON if contrib are installed" OFF) -OPTION(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON) - -# ---------------------------------------------------------------------------- -# Find Dependencies -# ---------------------------------------------------------------------------- -find_package(OpenCV REQUIRED) -IF(USE_CONTRIB) -add_definitions(-DUSE_CONTRIB) -ENDIF() -if(NOT OpenCV_VERSION VERSION_LESS "3.0") - ADD_DEFINITIONS(-DOPENCV_VERSION_3) - SET(OPENCV_VERSION_3 ON) -ELSE() - SET(OPENCV_VERSION_3 OFF) -ENDIF() - -include_directories(${OpenCV_INCLUDE_DIRS}) - -SET(REQUIRED_LIBRARIES ${REQUIRED_LIBRARIES} ${OpenCV_LIBS}) - -# ---------------------------------------------------------------------------- -# PROJECT CONFIGURATION -# force some variables that could be defined in the command line to be written to cache -# ---------------------------------------------------------------------------- -OPTION(INSTALL_DOC "Set to ON to build/install Documentation" OFF) -IF (INSTALL_DOC) - FIND_PACKAGE(Doxygen REQUIRED) - MESSAGE( STATUS "INSTALL_DOC: ${INSTALL_DOC} ") - INCLUDE("${PROJECT_SOURCE_DIR}/generateDoc.cmake") - GENERATE_DOCUMENTATION(${PROJECT_SOURCE_DIR}/dox.in) -ENDIF() - -# ---------------------------------------------------------------------------- -# Uninstall target, for "make uninstall" -# ---------------------------------------------------------------------------- -CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") - -# ---------------------------------------------------------------------------- -# create configuration file from .in file (If you use windows take care with paths) -# ---------------------------------------------------------------------------- - -CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/config.cmake.in" "${PROJECT_BINARY_DIR}/Find${PROJECT_NAME}.cmake") -CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake") -INSTALL(FILES "${PROJECT_BINARY_DIR}/Find${PROJECT_NAME}.cmake" DESTINATION ${LIB_INSTALL_DIR}/cmake/ ) -INSTALL(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" DESTINATION ${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME} ) - - - - -# ---------------------------------------------------------------------------- -# Program Optimization and debug (Extracted from OpenCV) -# ---------------------------------------------------------------------------- -set(WARNINGS_ARE_ERRORS OFF CACHE BOOL "Treat warnings as errors") -set(WHOLE_PROGRAM_OPTIMIZATION OFF CACHE BOOL "Flags for whole program optimization.") - -set(EXTRA_C_FLAGS "") -set(EXTRA_C_FLAGS_RELEASE "") -set(EXTRA_C_FLAGS_DEBUG "") -set(EXTRA_EXE_LINKER_FLAGS "") -set(EXTRA_EXE_LINKER_FLAGS_RELEASE "") -set(EXTRA_EXE_LINKER_FLAGS_DEBUG "") - -IF(CMAKE_COMPILER_IS_GNUCXX OR MINGW) - set(ENABLE_PROFILING OFF CACHE BOOL "Enable profiling in the GCC compiler (Add flags: -g -pg)") - set(USE_OMIT_FRAME_POINTER ON CACHE BOOL "Enable -fomit-frame-pointer for GCC") - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES arm*) # We can use only -O2 because the -O3 causes gcc crash - set(USE_O2 ON CACHE BOOL "Enable -O2 for GCC") - set(USE_FAST_MATH OFF CACHE BOOL "Enable -ffast-math for GCC") - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES powerpc*) - set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC") - set(USE_POWERPC ON CACHE BOOL "Enable PowerPC for GCC") - endif () - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64* OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64*) - set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC") - set(USE_FAST_MATH OFF CACHE BOOL "Enable -ffast-math for GCC") - set(USE_MMX ON CACHE BOOL "Enable MMX for GCC") - set(USE_SSE ON CACHE BOOL "Enable SSE for GCC") - set(USE_SSE2 ON CACHE BOOL "Enable SSE2 for GCC") - set(USE_SSE3 ON CACHE BOOL "Enable SSE3 for GCC") - endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES i686* OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES x86) - set(USE_O3 ON CACHE BOOL "Enable -O3 for GCC") - set(USE_FAST_MATH OFF CACHE BOOL "Enable -ffast-math for GCC") - set(USE_MMX ON CACHE BOOL "Enable MMX for GCC") - set(USE_SSE OFF CACHE BOOL "Enable SSE for GCC") - set(USE_SSE2 OFF CACHE BOOL "Enable SSE2 for GCC") - set(USE_SSE3 OFF CACHE BOOL "Enable SSE3 for GCC") - endif () - - set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall") - - if(WARNINGS_ARE_ERRORS) - set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror") - endif() - - # The -Wno-long-long is required in 64bit systems when including sytem headers. - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES x86_64* OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES amd64*) - set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-long-long") - endif() - - # Whole program optimization - if(WHOLE_PROGRAM_OPTIMIZATION) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fwhole-program --combine") - endif() - - # Other optimizations - if(USE_OMIT_FRAME_POINTER) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -fomit-frame-pointer") - endif() - if(USE_O2) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O2") - endif() - if(USE_O3) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -O3") - endif() - if(USE_FAST_MATH) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -ffast-math") - endif() - if(USE_POWERPC) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mcpu=G3 -mtune=G5") - endif() - if(USE_MMX) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -mmmx") - endif() - if(USE_SSE) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse") - endif() - if(USE_SSE2) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse2") - endif() - if(USE_SSE3 AND NOT MINGW) # SSE3 should be disabled under MingW because it generates compiler errors - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -msse3") - endif() - - if(ENABLE_PROFILING) - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -pg -g") - else() - if(NOT APPLE) - set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -ffunction-sections") - endif() - endif() - - - set(EXTRA_C_FLAGS_RELEASE "${EXTRA_C_FLAGS_RELEASE} -DNDEBUG ") - set(EXTRA_C_FLAGS_DEBUG "-g3 -O0 -DDEBUG -D_DEBUG -W -Wextra -Wno-return-type ") - - MESSAGE( STATUS "-------------------------------------------------------------------------------" ) - message( STATUS "GNU COMPILER") - MESSAGE( STATUS "-------------------------------------------------------------------------------" ) - - - - -ELSE() # MSVC - - -ENDIF()#END OF COMPILER SPECIFIC OPTIONS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS_RELEASE}") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS_DEBUG}") -SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -std=c++11") -SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -std=c++11") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_FLAGS_DEBUG}") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_DEBUG}") -SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EXTRA_EXE_LINKER_FLAGS}") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${EXTRA_EXE_LINKER_FLAGS_RELEASE}") -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${EXTRA_EXE_LINKER_FLAGS_DEBUG}") - - - -#------------------------------------------------ -# DIRS -#------------------------------------------------ -ADD_SUBDIRECTORY(src) -IF (BUILD_UTILS) -ADD_SUBDIRECTORY(utils) -ENDIF() - -IF (BUILD_TESTS) -ADD_SUBDIRECTORY(tests) -ENDIF() - - -# ---------------------------------------------------------------------------- -# display status message for important variables -# ---------------------------------------------------------------------------- -message( STATUS ) -MESSAGE( STATUS "-------------------------------------------------------------------------------" ) -message( STATUS "General configuration for ${PROJECT_NAME} ${PROJECT_VERSION}") -MESSAGE( STATUS "-------------------------------------------------------------------------------" ) -message(" Built as dynamic libs?:" ${BUILD_SHARED_LIBS}) -message(" Compiler:" "${CMAKE_COMPILER}" "${CMAKE_CXX_COMPILER}") - -message( STATUS "Build Type: ${CMAKE_BUILD_TYPE}") -message( STATUS "C++ flags (Release): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}") -message( STATUS "C++ flags (Debug): ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}") -message( STATUS "C++ flags (Relase+Debug): ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") - -message( STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") -message( STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") - -MESSAGE( STATUS ) -MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}" ) -MESSAGE( STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}" ) -MESSAGE( STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}" ) -MESSAGE( STATUS "CMAKE_MODULE_PATH = ${CMAKE_MODULE_PATH}" ) -MESSAGE( STATUS "BUILD_UTILS= ${BUILD_UTILS}" ) -MESSAGE( STATUS "BUILD_TESTS= ${BUILD_TESTS}" ) -MESSAGE( STATUS "OPENCV_DIR= ${OpenCV_DIR} VERSION=${OpenCV_VERSION}" ) - -MESSAGE( STATUS "USE_CONTRIB= ${USE_CONTRIB}" ) - -MESSAGE( STATUS ) -MESSAGE( STATUS "OpenCV_LIB_DIR=${OpenCV_LIB_DIR}") -MESSAGE( STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}") - -MESSAGE( STATUS ) -MESSAGE( STATUS ) -MESSAGE( STATUS "Change a value with: cmake -D=" ) -MESSAGE( STATUS ) --- /dev/null +++ b/Lib/CMakeLists.txt @@ -0,0 +1,92 @@ +cmake_minimum_required(VERSION 3.10) + +find_package(OpenCV REQUIRED) + +find_package(OpenMP REQUIRED) + +include(${CMAKE_SOURCE_DIR}/cmake/instructionSet.cmake) + +if(BUILD_SHARED_LIBS) + add_library(DBow3 SHARED) + + target_compile_definitions(DBow3 + PUBLIC + DBOW_API + ) + +else() + add_library(DBow3 STATIC) +endif() + +add_library(DBow3::DBow3 ALIAS DBow3) + +target_sources(DBow3 + PRIVATE + src/BowVector.cpp + src/Database.cpp + src/DescManip.cpp + src/FeatureVector.cpp + src/QueryResults.cpp + src/ScoringObject.cpp + src/Vocabulary.cpp + src/quicklz.c +) + +target_include_directories(DBow3 + PUBLIC + $ + $ +) + +target_link_libraries(DBow3 + PUBLIC + OpenMP::OpenMP_CXX +) + +if(USE_OPENCV_CONTRIB) +target_link_libraries(DBow3 + PUBLIC + ${OpenCV_LIBS} +) + +target_include_directories(DBow3 + PUBLIC + ${OpenCV_INCLUDE_DIR} +) +endif() + +target_compile_definitions(DBow3 + PUBLIC + NOMINMAX + _USE_MATH_DEFINES +) + +target_compile_features(DBow3 + PRIVATE + cxx_std_14 +) + + +install(TARGETS DBow3 EXPORT DBow3Targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include +) + +install (DIRECTORY include/ DESTINATION include) + +install(EXPORT DBow3Targets + FILE DBow3Targets.cmake + NAMESPACE DBow3:: + DESTINATION cmake/DBow3 +) + +include(CMakePackageConfigHelpers) + +write_basic_package_version_file(DBow3ConfigVersion.cmake + COMPATIBILITY SameMajorVersion +) + +install(FILES DBow3Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/DBow3ConfigVersion.cmake + DESTINATION cmake/DBow3) \ No newline at end of file --- /dev/null +++ b/Lib/DBow3Config.cmake @@ -0,0 +1,4 @@ +include(CMakeFindDependencyMacro) +find_dependency(OpenCV) +find_dependency(OpenMP) +include("${CMAKE_CURRENT_LIST_DIR}/FbowTargets.cmake") \ No newline at end of file diff --git a/src/BowVector.h b/Lib/include/DBow3/BowVector.h similarity index 99% rename from src/BowVector.h rename to Lib/include/DBow3/BowVector.h index d8c17e0..cdbf517 100644 --- a/src/BowVector.h +++ b/Lib/include/DBow3/BowVector.h @@ -12,6 +12,7 @@ #include #include +#include #include "exports.h" #if _WIN32 #include diff --git a/src/DBoW3.h b/Lib/include/DBow3/DBoW3.h similarity index 100% rename from src/DBoW3.h rename to Lib/include/DBow3/DBoW3.h diff --git a/src/Database.h b/Lib/include/DBow3/Database.h similarity index 100% rename from src/Database.h rename to Lib/include/DBow3/Database.h diff --git a/src/DescManip.h b/Lib/include/DBow3/DescManip.h similarity index 100% rename from src/DescManip.h rename to Lib/include/DBow3/DescManip.h diff --git a/src/FeatureVector.h b/Lib/include/DBow3/FeatureVector.h similarity index 100% rename from src/FeatureVector.h rename to Lib/include/DBow3/FeatureVector.h diff --git a/src/QueryResults.h b/Lib/include/DBow3/QueryResults.h similarity index 100% rename from src/QueryResults.h rename to Lib/include/DBow3/QueryResults.h diff --git a/src/ScoringObject.h b/Lib/include/DBow3/ScoringObject.h similarity index 100% rename from src/ScoringObject.h rename to Lib/include/DBow3/ScoringObject.h diff --git a/src/Vocabulary.h b/Lib/include/DBow3/Vocabulary.h similarity index 100% rename from src/Vocabulary.h rename to Lib/include/DBow3/Vocabulary.h diff --git a/src/exports.h b/Lib/include/DBow3/exports.h similarity index 78% rename from src/exports.h rename to Lib/include/DBow3/exports.h index c324953..a31b317 100644 --- a/src/exports.h +++ b/Lib/include/DBow3/exports.h @@ -35,17 +35,15 @@ or implied, of Rafael Muñoz Salinas. #define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual Studio 2005 warnings */ #endif -#if (defined WIN32 || defined _WIN32 || defined WINCE) && defined DBOW_DSO_EXPORTS - #define DBOW_API __declspec(dllexport) - #pragma warning ( disable : 4251 ) //disable warning to templates with dll linkage. - #pragma warning ( disable : 4290 ) //disable warning due to exception specifications. - #pragma warning ( disable : 4996 ) //disable warning regarding unsafe vsprintf. - #pragma warning ( disable : 4244 ) //disable warning convesions with lost of data. - +#ifdef _WIN32 +# ifdef DBOW_API +# define DBOW_API __declspec(dllexport) +# else +# define DBOW_API __declspec(dllimport) +# endif #else - #define DBOW_API +# define DBOW_API #endif - #define DBOW_VERSION "3.0.0" #endif diff --git a/src/quicklz.h b/Lib/include/DBow3/quicklz.h similarity index 100% rename from src/quicklz.h rename to Lib/include/DBow3/quicklz.h diff --git a/src/timers.h b/Lib/include/DBow3/timers.h similarity index 100% rename from src/timers.h rename to Lib/include/DBow3/timers.h diff --git a/src/BowVector.cpp b/Lib/src/BowVector.cpp similarity index 99% rename from src/BowVector.cpp rename to Lib/src/BowVector.cpp index d132213..f61d421 100644 --- a/src/BowVector.cpp +++ b/Lib/src/BowVector.cpp @@ -13,7 +13,7 @@ #include #include -#include "BowVector.h" +#include "DBow3/BowVector.h" namespace DBoW3 { diff --git a/src/Database.cpp b/Lib/src/Database.cpp similarity index 99% rename from src/Database.cpp rename to Lib/src/Database.cpp index d8a1b81..25610a0 100644 --- a/src/Database.cpp +++ b/Lib/src/Database.cpp @@ -1,4 +1,4 @@ -#include "Database.h" +#include "DBow3/Database.h" namespace DBoW3{ diff --git a/src/DescManip.cpp b/Lib/src/DescManip.cpp similarity index 96% rename from src/DescManip.cpp rename to Lib/src/DescManip.cpp index d6331af..430ce2b 100644 --- a/src/DescManip.cpp +++ b/Lib/src/DescManip.cpp @@ -1,273 +1,273 @@ -/** - * File: DescManip.cpp - * Date: June 2012 - * Author: Dorian Galvez-Lopez - * Description: functions for ORB descriptors - * License: see the LICENSE.txt file - * - */ - -#include -#include -#include -#include -#include -#include - -#include "DescManip.h" - -using namespace std; - -namespace DBoW3 { - -// -------------------------------------------------------------------------- - -void DescManip::meanValue(const std::vector &descriptors, - cv::Mat &mean) -{ - - if(descriptors.empty()) return; - - if(descriptors.size() == 1) - { - mean = descriptors[0].clone(); - return; - } - //binary descriptor - if (descriptors[0].type()==CV_8U ){ - //determine number of bytes of the binary descriptor - int L= getDescSizeBytes( descriptors[0]); - vector sum( L * 8, 0); - - for(size_t i = 0; i < descriptors.size(); ++i) - { - const cv::Mat &d = descriptors[i]; - const unsigned char *p = d.ptr(); - - for(int j = 0; j < d.cols; ++j, ++p) - { - if(*p & (1 << 7)) ++sum[ j*8 ]; - if(*p & (1 << 6)) ++sum[ j*8 + 1 ]; - if(*p & (1 << 5)) ++sum[ j*8 + 2 ]; - if(*p & (1 << 4)) ++sum[ j*8 + 3 ]; - if(*p & (1 << 3)) ++sum[ j*8 + 4 ]; - if(*p & (1 << 2)) ++sum[ j*8 + 5 ]; - if(*p & (1 << 1)) ++sum[ j*8 + 6 ]; - if(*p & (1)) ++sum[ j*8 + 7 ]; - } - } - - mean = cv::Mat::zeros(1, L, CV_8U); - unsigned char *p = mean.ptr(); - - const int N2 = (int)descriptors.size() / 2 + descriptors.size() % 2; - for(size_t i = 0; i < sum.size(); ++i) - { - if(sum[i] >= N2) - { - // set bit - *p |= 1 << (7 - (i % 8)); - } - - if(i % 8 == 7) ++p; - } - } - //non binary descriptor - else{ - assert(descriptors[0].type()==CV_32F );//ensure it is float - - mean.create(1, descriptors[0].cols,descriptors[0].type()); - mean.setTo(cv::Scalar::all(0)); - float inv_s =1./double( descriptors.size()); - for(size_t i=0;i(); // a & b are actually CV_8U - pb = b.ptr(); - - uint64_t v, ret = 0; - for(size_t i = 0; i < a.cols / sizeof(uint64_t); ++i, ++pa, ++pb) - { - v = *pa ^ *pb; - v = v - ((v >> 1) & (uint64_t)~(uint64_t)0/3); - v = (v & (uint64_t)~(uint64_t)0/15*3) + ((v >> 2) & - (uint64_t)~(uint64_t)0/15*3); - v = (v + (v >> 4)) & (uint64_t)~(uint64_t)0/255*15; - ret += (uint64_t)(v * ((uint64_t)~(uint64_t)0/255)) >> - (sizeof(uint64_t) - 1) * CHAR_BIT; - } - - return ret; - } - else{ - double sqd = 0.; - assert(a.type()==CV_32F); - assert(a.rows==1); - const float *a_ptr=a.ptr(0); - const float *b_ptr=b.ptr(0); - for(int i = 0; i < a.cols; i ++) - sqd += (a_ptr[i ] - b_ptr[i ])*(a_ptr[i ] - b_ptr[i ]); - return sqd; - } -} - - - - -// -------------------------------------------------------------------------- - -std::string DescManip::toString(const cv::Mat &a) -{ - stringstream ss; - //introduce a magic value to distinguish from DBOw2 - ss<<"dbw3 "; - //save size and type - - - ss <(); - for(int i = 0; i < a.cols; ++i, ++p) - ss << (int)*p << " "; - }else{ - - const float *p = a.ptr(); - for(int i = 0; i < a.cols; ++i, ++p) - ss << *p << " "; - - } - - return ss.str(); -} - -// -------------------------------------------------------------------------- - -void DescManip::fromString(cv::Mat &a, const std::string &s) -{ - - //check if the dbow3 is present - string ss_aux;ss_aux.reserve(10); - for(size_t i=0;i<10 && i data;data.reserve(100); - while( ss>>val) data.push_back(val); - //copy to a - a.create(1,data.size(),CV_8UC1); - memcpy(a.ptr(0),&data[0],data.size()); - } - else { - char szSign[10]; - int type,cols; - stringstream ss(s); - ss >> szSign >> type >> cols; - a.create(1, cols, type); - if(type==CV_8UC1){ - unsigned char *p = a.ptr(); - int n; - for(int i = 0; i < a.cols; ++i, ++p) - if ( ss >> n) *p = (unsigned char)n; - } - else{ - float *p = a.ptr(); - for(int i = 0; i < a.cols; ++i, ++p) - if ( !(ss >> *p))cerr<<"Error reading. Unexpected EOF. DescManip::fromString"< &descriptors, - cv::Mat &mat) -{ - if(descriptors.empty()) - { - mat.release(); - return; - } - - if(descriptors[0].type()==CV_8UC1){ - - const size_t N = descriptors.size(); - int L=getDescSizeBytes(descriptors[0]); - mat.create(N, L*8, CV_32F); - float *p = mat.ptr(); - - for(size_t i = 0; i < N; ++i) - { - const int C = descriptors[i].cols; - const unsigned char *desc = descriptors[i].ptr(); - - for(int j = 0; j < C; ++j, p += 8) - { - p[0] = (desc[j] & (1 << 7) ? 1 : 0); - p[1] = (desc[j] & (1 << 6) ? 1 : 0); - p[2] = (desc[j] & (1 << 5) ? 1 : 0); - p[3] = (desc[j] & (1 << 4) ? 1 : 0); - p[4] = (desc[j] & (1 << 3) ? 1 : 0); - p[5] = (desc[j] & (1 << 2) ? 1 : 0); - p[6] = (desc[j] & (1 << 1) ? 1 : 0); - p[7] = desc[j] & (1); - } - } - } - else{ - assert(descriptors[0].type()==CV_32F); - const int N = descriptors.size(); - int L=descriptors[0].cols; - mat.create(N, L, CV_32F); - for(int i = 0; i < N; ++i) - memcpy(mat.ptr(i),descriptors[i].ptr(0),sizeof(float)*L); - } -} - -void DescManip::toStream(const cv::Mat &m,std::ostream &str){ - assert(m.rows==1 || m.isContinuous()); - int type=m.type(); - int cols=m.cols; - int rows=m.rows; - str.write((char*)&cols,sizeof(cols)); - str.write((char*)&rows,sizeof(rows)); - str.write((char*)&type,sizeof(type)); - str.write((char*)m.ptr(0),m.elemSize()*m.cols); -} - -void DescManip::fromStream(cv::Mat &m,std::istream &str){ - int type,cols,rows; - str.read((char*)&cols,sizeof(cols)); - str.read((char*)&rows,sizeof(rows)); - str.read((char*)&type,sizeof(type)); - m.create(rows,cols,type); - str.read((char*)m.ptr(0),m.elemSize()*m.cols); -} - - -// -------------------------------------------------------------------------- - -} // namespace DBoW3 - +/** + * File: DescManip.cpp + * Date: June 2012 + * Author: Dorian Galvez-Lopez + * Description: functions for ORB descriptors + * License: see the LICENSE.txt file + * + */ + +#include +#include +#include +#include +#include +#include + +#include "DBow3/DescManip.h" + +using namespace std; + +namespace DBoW3 { + +// -------------------------------------------------------------------------- + +void DescManip::meanValue(const std::vector &descriptors, + cv::Mat &mean) +{ + + if(descriptors.empty()) return; + + if(descriptors.size() == 1) + { + mean = descriptors[0].clone(); + return; + } + //binary descriptor + if (descriptors[0].type()==CV_8U ){ + //determine number of bytes of the binary descriptor + int L= getDescSizeBytes( descriptors[0]); + vector sum( L * 8, 0); + + for(size_t i = 0; i < descriptors.size(); ++i) + { + const cv::Mat &d = descriptors[i]; + const unsigned char *p = d.ptr(); + + for(int j = 0; j < d.cols; ++j, ++p) + { + if(*p & (1 << 7)) ++sum[ j*8 ]; + if(*p & (1 << 6)) ++sum[ j*8 + 1 ]; + if(*p & (1 << 5)) ++sum[ j*8 + 2 ]; + if(*p & (1 << 4)) ++sum[ j*8 + 3 ]; + if(*p & (1 << 3)) ++sum[ j*8 + 4 ]; + if(*p & (1 << 2)) ++sum[ j*8 + 5 ]; + if(*p & (1 << 1)) ++sum[ j*8 + 6 ]; + if(*p & (1)) ++sum[ j*8 + 7 ]; + } + } + + mean = cv::Mat::zeros(1, L, CV_8U); + unsigned char *p = mean.ptr(); + + const int N2 = (int)descriptors.size() / 2 + descriptors.size() % 2; + for(size_t i = 0; i < sum.size(); ++i) + { + if(sum[i] >= N2) + { + // set bit + *p |= 1 << (7 - (i % 8)); + } + + if(i % 8 == 7) ++p; + } + } + //non binary descriptor + else{ + assert(descriptors[0].type()==CV_32F );//ensure it is float + + mean.create(1, descriptors[0].cols,descriptors[0].type()); + mean.setTo(cv::Scalar::all(0)); + float inv_s =1./double( descriptors.size()); + for(size_t i=0;i(); // a & b are actually CV_8U + pb = b.ptr(); + + uint64_t v, ret = 0; + for(size_t i = 0; i < a.cols / sizeof(uint64_t); ++i, ++pa, ++pb) + { + v = *pa ^ *pb; + v = v - ((v >> 1) & (uint64_t)~(uint64_t)0/3); + v = (v & (uint64_t)~(uint64_t)0/15*3) + ((v >> 2) & + (uint64_t)~(uint64_t)0/15*3); + v = (v + (v >> 4)) & (uint64_t)~(uint64_t)0/255*15; + ret += (uint64_t)(v * ((uint64_t)~(uint64_t)0/255)) >> + (sizeof(uint64_t) - 1) * CHAR_BIT; + } + + return ret; + } + else{ + double sqd = 0.; + assert(a.type()==CV_32F); + assert(a.rows==1); + const float *a_ptr=a.ptr(0); + const float *b_ptr=b.ptr(0); + for(int i = 0; i < a.cols; i ++) + sqd += (a_ptr[i ] - b_ptr[i ])*(a_ptr[i ] - b_ptr[i ]); + return sqd; + } +} + + + + +// -------------------------------------------------------------------------- + +std::string DescManip::toString(const cv::Mat &a) +{ + stringstream ss; + //introduce a magic value to distinguish from DBOw2 + ss<<"dbw3 "; + //save size and type + + + ss <(); + for(int i = 0; i < a.cols; ++i, ++p) + ss << (int)*p << " "; + }else{ + + const float *p = a.ptr(); + for(int i = 0; i < a.cols; ++i, ++p) + ss << *p << " "; + + } + + return ss.str(); +} + +// -------------------------------------------------------------------------- + +void DescManip::fromString(cv::Mat &a, const std::string &s) +{ + + //check if the dbow3 is present + string ss_aux;ss_aux.reserve(10); + for(size_t i=0;i<10 && i data;data.reserve(100); + while( ss>>val) data.push_back(val); + //copy to a + a.create(1,data.size(),CV_8UC1); + memcpy(a.ptr(0),&data[0],data.size()); + } + else { + char szSign[10]; + int type,cols; + stringstream ss(s); + ss >> szSign >> type >> cols; + a.create(1, cols, type); + if(type==CV_8UC1){ + unsigned char *p = a.ptr(); + int n; + for(int i = 0; i < a.cols; ++i, ++p) + if ( ss >> n) *p = (unsigned char)n; + } + else{ + float *p = a.ptr(); + for(int i = 0; i < a.cols; ++i, ++p) + if ( !(ss >> *p))cerr<<"Error reading. Unexpected EOF. DescManip::fromString"< &descriptors, + cv::Mat &mat) +{ + if(descriptors.empty()) + { + mat.release(); + return; + } + + if(descriptors[0].type()==CV_8UC1){ + + const size_t N = descriptors.size(); + int L=getDescSizeBytes(descriptors[0]); + mat.create(N, L*8, CV_32F); + float *p = mat.ptr(); + + for(size_t i = 0; i < N; ++i) + { + const int C = descriptors[i].cols; + const unsigned char *desc = descriptors[i].ptr(); + + for(int j = 0; j < C; ++j, p += 8) + { + p[0] = (desc[j] & (1 << 7) ? 1 : 0); + p[1] = (desc[j] & (1 << 6) ? 1 : 0); + p[2] = (desc[j] & (1 << 5) ? 1 : 0); + p[3] = (desc[j] & (1 << 4) ? 1 : 0); + p[4] = (desc[j] & (1 << 3) ? 1 : 0); + p[5] = (desc[j] & (1 << 2) ? 1 : 0); + p[6] = (desc[j] & (1 << 1) ? 1 : 0); + p[7] = desc[j] & (1); + } + } + } + else{ + assert(descriptors[0].type()==CV_32F); + const int N = descriptors.size(); + int L=descriptors[0].cols; + mat.create(N, L, CV_32F); + for(int i = 0; i < N; ++i) + memcpy(mat.ptr(i),descriptors[i].ptr(0),sizeof(float)*L); + } +} + +void DescManip::toStream(const cv::Mat &m,std::ostream &str){ + assert(m.rows==1 || m.isContinuous()); + int type=m.type(); + int cols=m.cols; + int rows=m.rows; + str.write((char*)&cols,sizeof(cols)); + str.write((char*)&rows,sizeof(rows)); + str.write((char*)&type,sizeof(type)); + str.write((char*)m.ptr(0),m.elemSize()*m.cols); +} + +void DescManip::fromStream(cv::Mat &m,std::istream &str){ + int type,cols,rows; + str.read((char*)&cols,sizeof(cols)); + str.read((char*)&rows,sizeof(rows)); + str.read((char*)&type,sizeof(type)); + m.create(rows,cols,type); + str.read((char*)m.ptr(0),m.elemSize()*m.cols); +} + + +// -------------------------------------------------------------------------- + +} // namespace DBoW3 + diff --git a/src/FeatureVector.cpp b/Lib/src/FeatureVector.cpp similarity index 98% rename from src/FeatureVector.cpp rename to Lib/src/FeatureVector.cpp index 880eab1..a9cd792 100644 --- a/src/FeatureVector.cpp +++ b/Lib/src/FeatureVector.cpp @@ -7,7 +7,7 @@ * */ -#include "FeatureVector.h" +#include "DBow3/FeatureVector.h" #include #include #include diff --git a/src/QueryResults.cpp b/Lib/src/QueryResults.cpp similarity index 97% rename from src/QueryResults.cpp rename to Lib/src/QueryResults.cpp index 7062400..b852979 100644 --- a/src/QueryResults.cpp +++ b/Lib/src/QueryResults.cpp @@ -9,7 +9,7 @@ #include #include -#include "QueryResults.h" +#include "DBow3/QueryResults.h" using namespace std; diff --git a/src/ScoringObject.cpp b/Lib/src/ScoringObject.cpp similarity index 99% rename from src/ScoringObject.cpp rename to Lib/src/ScoringObject.cpp index 7cf0812..adde8e9 100644 --- a/src/ScoringObject.cpp +++ b/Lib/src/ScoringObject.cpp @@ -8,8 +8,8 @@ */ #include -#include "Vocabulary.h" -#include "BowVector.h" +#include "DBow3/Vocabulary.h" +#include "DBow3/BowVector.h" using namespace DBoW3; diff --git a/src/Vocabulary.cpp b/Lib/src/Vocabulary.cpp similarity index 99% rename from src/Vocabulary.cpp rename to Lib/src/Vocabulary.cpp index 9f0eff3..6ccbbea 100644 --- a/src/Vocabulary.cpp +++ b/Lib/src/Vocabulary.cpp @@ -1,8 +1,8 @@ -#include "Vocabulary.h" -#include "DescManip.h" -#include "quicklz.h" +#include "DBow3/Vocabulary.h" +#include "DBow3/DescManip.h" +#include "DBow3/quicklz.h" #include -#include "timers.h" +#include "DBow3/timers.h" namespace DBoW3{ // -------------------------------------------------------------------------- diff --git a/src/quicklz.c b/Lib/src/quicklz.c similarity index 99% rename from src/quicklz.c rename to Lib/src/quicklz.c index 3742129..bd3cb11 100644 --- a/src/quicklz.c +++ b/Lib/src/quicklz.c @@ -9,7 +9,7 @@ // 1.5.0 final -#include "quicklz.h" +#include "DBow3/quicklz.h" #if QLZ_VERSION_MAJOR != 1 || QLZ_VERSION_MINOR != 5 || QLZ_VERSION_REVISION != 0 #error quicklz.c and quicklz.h have different versions diff --git a/cmake/instructionSet.cmake b/cmake/instructionSet.cmake new file mode 100644 index 0000000..d0febeb --- /dev/null +++ b/cmake/instructionSet.cmake @@ -0,0 +1,13 @@ +add_library( + SSE4.1 + INTERFACE +) + +add_library(SIMD::SSE4.1 ALIAS SSE4.1) + +target_compile_options( + SSE4.1 + INTERFACE + $<$:-msse4.1;-march=native> + $<$:/arch:AVX2> +) diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in deleted file mode 100644 index 81482da..0000000 --- a/cmake_uninstall.cmake.in +++ /dev/null @@ -1,28 +0,0 @@ -# ----------------------------------------------- -# File that provides "make uninstall" target -# We use the file 'install_manifest.txt' -# ----------------------------------------------- -IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") -ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - -FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) -STRING(REGEX REPLACE "\n" ";" files "${files}") -FOREACH(file ${files}) - MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") -# IF(EXISTS "$ENV{DESTDIR}${file}") -# EXEC_PROGRAM( -# "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" -# OUTPUT_VARIABLE rm_out -# RETURN_VALUE rm_retval -# ) - EXECUTE_PROCESS(COMMAND rm $ENV{DESTDIR}${file}) -# IF(NOT "${rm_retval}" STREQUAL 0) -# MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") -# ENDIF(NOT "${rm_retval}" STREQUAL 0) -# ELSE(EXISTS "$ENV{DESTDIR}${file}") -# MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") -# ENDIF(EXISTS "$ENV{DESTDIR}${file}") -ENDFOREACH(file) - - diff --git a/config.cmake.in b/config.cmake.in deleted file mode 100644 index 9d15feb..0000000 --- a/config.cmake.in +++ /dev/null @@ -1,36 +0,0 @@ -# =================================================================================== -# @PROJECT_NAME@ CMake configuration file -# -# ** File generated automatically, do not modify ** -# -# Usage from an external project: -# In your CMakeLists.txt, add these lines: -# -# FIND_PACKAGE(@PROJECT_NAME@ REQUIRED ) -# TARGET_LINK_LIBRARIES(MY_TARGET_NAME ${@PROJECT_NAME@_LIBS}) -# -# This file will define the following variables: -# - @PROJECT_NAME@_LIBS : The list of libraries to links against. -# - @PROJECT_NAME@_LIB_DIR : The directory where lib files are. Calling LINK_DIRECTORIES -# with this path is NOT needed. -# - @PROJECT_NAME@_VERSION : The version of this PROJECT_NAME build. Example: "1.2.0" -# - @PROJECT_NAME@_VERSION_MAJOR : Major version part of VERSION. Example: "1" -# - @PROJECT_NAME@_VERSION_MINOR : Minor version part of VERSION. Example: "2" -# - @PROJECT_NAME@_VERSION_PATCH : Patch version part of VERSION. Example: "0" -# -# =================================================================================== -INCLUDE_DIRECTORIES("@CMAKE_INSTALL_PREFIX@/include") -SET(@PROJECT_NAME@_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include") - -LINK_DIRECTORIES("@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@") -SET(@PROJECT_NAME@_LIB_DIR "@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@") - -SET(@PROJECT_NAME@_LIBS @REQUIRED_LIBRARIES@ @PROJECT_NAME@@PROJECT_DLLVERSION@) -SET(@PROJECT_NAME@_LIBRARIES @REQUIRED_LIBRARIES@ @PROJECT_NAME@@PROJECT_DLLVERSION@) - -SET(@PROJECT_NAME@_FOUND YES) -SET(@PROJECT_NAME@_FOUND "YES") -SET(@PROJECT_NAME@_VERSION @PROJECT_VERSION@) -SET(@PROJECT_NAME@_VERSION_MAJOR @PROJECT_VERSION_MAJOR@) -SET(@PROJECT_NAME@_VERSION_MINOR @PROJECT_VERSION_MINOR@) -SET(@PROJECT_NAME@_VERSION_PATCH @PROJECT_VERSION_PATCH@) diff --git a/utils/CMakeLists.txt b/examples/CMakeLists.txt similarity index 100% rename from utils/CMakeLists.txt rename to examples/CMakeLists.txt diff --git a/utils/create_voc_step0.cpp b/examples/create_voc_step0.cpp similarity index 97% rename from utils/create_voc_step0.cpp rename to examples/create_voc_step0.cpp index 4fd78f6..c48a3c4 100644 --- a/utils/create_voc_step0.cpp +++ b/examples/create_voc_step0.cpp @@ -1,126 +1,126 @@ - -//First step of creating a vocabulary is extracting features from a set of images. We save them to a file for next step -#include -#include - -// DBoW3 -#include "DBoW3.h" - -// OpenCV -#include -#include -#include -#ifdef USE_CONTRIB -#include -#include -#endif -#include "DescManip.h" - -using namespace DBoW3; -using namespace std; - - -//command line parser -class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readImagePaths(int argc,char **argv,int start){ - vector paths; - for(int i=start;i loadFeatures( std::vector path_to_images,string descriptor="") throw (std::exception){ - //select detector - cv::Ptr fdetector; - if (descriptor=="orb") fdetector=cv::ORB::create(); - else if (descriptor=="brisk") fdetector=cv::BRISK::create(); -#ifdef OPENCV_VERSION_3 - else if (descriptor=="akaze") fdetector=cv::AKAZE::create(); -#endif -#ifdef USE_CONTRIB - else if(descriptor=="surf" ) fdetector=cv::xfeatures2d::SURF::create(400, 4, 2, EXTENDED_SURF); -#endif - - else throw std::runtime_error("Invalid descriptor"); - assert(!descriptor.empty()); - vector features; - - - cout << "Extracting features..." << endl; - for(size_t i = 0; i < path_to_images.size(); ++i) - { - vector keypoints; - cv::Mat descriptors; - cout<<"reading image: "<detectAndCompute(image, cv::Mat(), keypoints, descriptors); - features.push_back(descriptors); - cout<<"done detecting features"< &features){ - - //test it is not created - std::ifstream ifile(filename); - if (ifile.is_open()){cerr<<"ERROR::: Output File "<(0),f.total()*f.elemSize()); - } -} - -// ---------------------------------------------------------------------------- - -int main(int argc,char **argv) -{ - - try{ - CmdLineParser cml(argc,argv); - if (cml["-h"] || argc==1){ - cerr<<"Usage: descriptor_name output image0 image1 ... \n\t descriptors:brisk,surf,orb(default),akaze(only if using opencv 3)"< features= loadFeatures(images,descriptor); - - //save features to file - saveToFile(argv[2],features); - - }catch(std::exception &ex){ - cerr< +#include + +// DBoW3 +#include "DBoW3.h" + +// OpenCV +#include +#include +#include +#ifdef USE_CONTRIB +#include +#include +#endif +#include "DescManip.h" + +using namespace DBoW3; +using namespace std; + + +//command line parser +class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readImagePaths(int argc,char **argv,int start){ + vector paths; + for(int i=start;i loadFeatures( std::vector path_to_images,string descriptor="") throw (std::exception){ + //select detector + cv::Ptr fdetector; + if (descriptor=="orb") fdetector=cv::ORB::create(); + else if (descriptor=="brisk") fdetector=cv::BRISK::create(); +#ifdef OPENCV_VERSION_3 + else if (descriptor=="akaze") fdetector=cv::AKAZE::create(); +#endif +#ifdef USE_CONTRIB + else if(descriptor=="surf" ) fdetector=cv::xfeatures2d::SURF::create(400, 4, 2, EXTENDED_SURF); +#endif + + else throw std::runtime_error("Invalid descriptor"); + assert(!descriptor.empty()); + vector features; + + + cout << "Extracting features..." << endl; + for(size_t i = 0; i < path_to_images.size(); ++i) + { + vector keypoints; + cv::Mat descriptors; + cout<<"reading image: "<detectAndCompute(image, cv::Mat(), keypoints, descriptors); + features.push_back(descriptors); + cout<<"done detecting features"< &features){ + + //test it is not created + std::ifstream ifile(filename); + if (ifile.is_open()){cerr<<"ERROR::: Output File "<(0),f.total()*f.elemSize()); + } +} + +// ---------------------------------------------------------------------------- + +int main(int argc,char **argv) +{ + + try{ + CmdLineParser cml(argc,argv); + if (cml["-h"] || argc==1){ + cerr<<"Usage: descriptor_name output image0 image1 ... \n\t descriptors:brisk,surf,orb(default),akaze(only if using opencv 3)"< features= loadFeatures(images,descriptor); + + //save features to file + saveToFile(argv[2],features); + + }catch(std::exception &ex){ + cerr< -#include - -// DBoW3 -#include "DBoW3.h" - -// OpenCV -#include -using namespace DBoW3; -using namespace std; - -//command line parser -class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readFeaturesFromFile(string filename){ -vector features; - //test it is not created - std::ifstream ifile(filename); - if (!ifile.is_open()){cerr<<"could not open input file"<(0),features[i].total()*features[i].elemSize()); - } - return features; -} - -// ---------------------------------------------------------------------------- - -int main(int argc,char **argv) -{ - - try{ - CmdLineParser cml(argc,argv); - if (cml["-h"] || argc!=3){ - cerr<<"Usage: features output_voc.yml[.gz]"< +#include + +// DBoW3 +#include "DBoW3.h" + +// OpenCV +#include +using namespace DBoW3; +using namespace std; + +//command line parser +class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readFeaturesFromFile(string filename){ +vector features; + //test it is not created + std::ifstream ifile(filename); + if (!ifile.is_open()){cerr<<"could not open input file"<(0),features[i].total()*features[i].elemSize()); + } + return features; +} + +// ---------------------------------------------------------------------------- + +int main(int argc,char **argv) +{ + + try{ + CmdLineParser cml(argc,argv); + if (cml["-h"] || argc!=3){ + cerr<<"Usage: features output_voc.yml[.gz]"< -#include - -// DBoW3 -#include "DBoW3.h" - -// OpenCV -#include -#include -#include -#ifdef USE_CONTRIB -#include -#include -#endif -#include "DescManip.h" - -using namespace DBoW3; -using namespace std; - - -//command line parser -class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readImagePaths(int argc,char **argv,int start){ - vector paths; - for(int i=start;i loadFeatures( std::vector path_to_images,string descriptor="") throw (std::exception){ - //select detector - cv::Ptr fdetector; - if (descriptor=="orb") fdetector=cv::ORB::create(); - else if (descriptor=="brisk") fdetector=cv::BRISK::create(); -#ifdef OPENCV_VERSION_3 - else if (descriptor=="akaze") fdetector=cv::AKAZE::create(); -#endif -#ifdef USE_CONTRIB - else if(descriptor=="surf" ) fdetector=cv::xfeatures2d::SURF::create(400, 4, 2, EXTENDED_SURF); -#endif - - else throw std::runtime_error("Invalid descriptor"); - assert(!descriptor.empty()); - vector features; - - - cout << "Extracting features..." << endl; - for(size_t i = 0; i < path_to_images.size(); ++i) - { - vector keypoints; - cv::Mat descriptors; - cout<<"reading image: "<detectAndCompute(image, cv::Mat(), keypoints, descriptors); - features.push_back(descriptors); - cout<<"done detecting features"< &features) -{ - // branching factor and depth levels - const int k = 9; - const int L = 3; - const WeightingType weight = TF_IDF; - const ScoringType score = L1_NORM; - - DBoW3::Vocabulary voc(k, L, weight, score); - - cout << "Creating a small " << k << "^" << L << " vocabulary..." << endl; - voc.create(features); - cout << "... done!" << endl; - - cout << "Vocabulary information: " << endl - << voc << endl << endl; - - // lets do something with this vocabulary - cout << "Matching images against themselves (0 low, 1 high): " << endl; - BowVector v1, v2; - for(size_t i = 0; i < features.size(); i++) - { - voc.transform(features[i], v1); - for(size_t j = 0; j < features.size(); j++) - { - voc.transform(features[j], v2); - - double score = voc.score(v1, v2); - cout << "Image " << i << " vs Image " << j << ": " << score << endl; - } - } - - // save the vocabulary to disk - cout << endl << "Saving vocabulary..." << endl; - voc.save("small_voc.yml.gz"); - cout << "Done" << endl; -} - -////// ---------------------------------------------------------------------------- - -void testDatabase(const vector &features) -{ - cout << "Creating a small database..." << endl; - - // load the vocabulary from disk - Vocabulary voc("small_voc.yml.gz"); - - Database db(voc, false, 0); // false = do not use direct index - // (so ignore the last param) - // The direct index is useful if we want to retrieve the features that - // belong to some vocabulary node. - // db creates a copy of the vocabulary, we may get rid of "voc" now - - // add images to the database - for(size_t i = 0; i < features.size(); i++) - db.add(features[i]); - - cout << "... done!" << endl; - - cout << "Database information: " << endl << db << endl; - - // and query the database - cout << "Querying the database: " << endl; - - QueryResults ret; - for(size_t i = 0; i < features.size(); i++) - { - db.query(features[i], ret, 4); - - // ret[0] is always the same image in this case, because we added it to the - // database. ret[1] is the second best match. - - cout << "Searching for Image " << i << ". " << ret << endl; - } - - cout << endl; - - // we can save the database. The created file includes the vocabulary - // and the entries added - cout << "Saving database..." << endl; - db.save("small_db.yml.gz"); - cout << "... done!" << endl; - - // once saved, we can load it again - cout << "Retrieving database once again..." << endl; - Database db2("small_db.yml.gz"); - cout << "... done! This is: " << endl << db2 << endl; -} - - -// ---------------------------------------------------------------------------- - -int main(int argc,char **argv) -{ - - try{ - CmdLineParser cml(argc,argv); - if (cml["-h"] || argc<=2){ - cerr<<"Usage: descriptor_name image0 image1 ... \n\t descriptors:brisk,surf,orb ,akaze(only if using opencv 3)"< features= loadFeatures(images,descriptor); - testVocCreation(features); - - - testDatabase(features); - - }catch(std::exception &ex){ - cerr< +#include + +// DBoW3 +#include "DBoW3.h" + +// OpenCV +#include +#include +#include +#ifdef USE_CONTRIB +#include +#include +#endif +#include "DescManip.h" + +using namespace DBoW3; +using namespace std; + + +//command line parser +class CmdLineParser{int argc; char **argv; public: CmdLineParser(int _argc,char **_argv):argc(_argc),argv(_argv){} bool operator[] ( string param ) {int idx=-1; for ( int i=0; i readImagePaths(int argc,char **argv,int start){ + vector paths; + for(int i=start;i loadFeatures( std::vector path_to_images,string descriptor="") throw (std::exception){ + //select detector + cv::Ptr fdetector; + if (descriptor=="orb") fdetector=cv::ORB::create(); + else if (descriptor=="brisk") fdetector=cv::BRISK::create(); +#ifdef OPENCV_VERSION_3 + else if (descriptor=="akaze") fdetector=cv::AKAZE::create(); +#endif +#ifdef USE_CONTRIB + else if(descriptor=="surf" ) fdetector=cv::xfeatures2d::SURF::create(400, 4, 2, EXTENDED_SURF); +#endif + + else throw std::runtime_error("Invalid descriptor"); + assert(!descriptor.empty()); + vector features; + + + cout << "Extracting features..." << endl; + for(size_t i = 0; i < path_to_images.size(); ++i) + { + vector keypoints; + cv::Mat descriptors; + cout<<"reading image: "<detectAndCompute(image, cv::Mat(), keypoints, descriptors); + features.push_back(descriptors); + cout<<"done detecting features"< &features) +{ + // branching factor and depth levels + const int k = 9; + const int L = 3; + const WeightingType weight = TF_IDF; + const ScoringType score = L1_NORM; + + DBoW3::Vocabulary voc(k, L, weight, score); + + cout << "Creating a small " << k << "^" << L << " vocabulary..." << endl; + voc.create(features); + cout << "... done!" << endl; + + cout << "Vocabulary information: " << endl + << voc << endl << endl; + + // lets do something with this vocabulary + cout << "Matching images against themselves (0 low, 1 high): " << endl; + BowVector v1, v2; + for(size_t i = 0; i < features.size(); i++) + { + voc.transform(features[i], v1); + for(size_t j = 0; j < features.size(); j++) + { + voc.transform(features[j], v2); + + double score = voc.score(v1, v2); + cout << "Image " << i << " vs Image " << j << ": " << score << endl; + } + } + + // save the vocabulary to disk + cout << endl << "Saving vocabulary..." << endl; + voc.save("small_voc.yml.gz"); + cout << "Done" << endl; +} + +////// ---------------------------------------------------------------------------- + +void testDatabase(const vector &features) +{ + cout << "Creating a small database..." << endl; + + // load the vocabulary from disk + Vocabulary voc("small_voc.yml.gz"); + + Database db(voc, false, 0); // false = do not use direct index + // (so ignore the last param) + // The direct index is useful if we want to retrieve the features that + // belong to some vocabulary node. + // db creates a copy of the vocabulary, we may get rid of "voc" now + + // add images to the database + for(size_t i = 0; i < features.size(); i++) + db.add(features[i]); + + cout << "... done!" << endl; + + cout << "Database information: " << endl << db << endl; + + // and query the database + cout << "Querying the database: " << endl; + + QueryResults ret; + for(size_t i = 0; i < features.size(); i++) + { + db.query(features[i], ret, 4); + + // ret[0] is always the same image in this case, because we added it to the + // database. ret[1] is the second best match. + + cout << "Searching for Image " << i << ". " << ret << endl; + } + + cout << endl; + + // we can save the database. The created file includes the vocabulary + // and the entries added + cout << "Saving database..." << endl; + db.save("small_db.yml.gz"); + cout << "... done!" << endl; + + // once saved, we can load it again + cout << "Retrieving database once again..." << endl; + Database db2("small_db.yml.gz"); + cout << "... done! This is: " << endl << db2 << endl; +} + + +// ---------------------------------------------------------------------------- + +int main(int argc,char **argv) +{ + + try{ + CmdLineParser cml(argc,argv); + if (cml["-h"] || argc<=2){ + cerr<<"Usage: descriptor_name image0 image1 ... \n\t descriptors:brisk,surf,orb ,akaze(only if using opencv 3)"< features= loadFeatures(images,descriptor); + testVocCreation(features); + + + testDatabase(features); + + }catch(std::exception &ex){ + cerr< Date: Thu, 15 Aug 2019 14:00:28 +0200 Subject: [PATCH 2/2] Fix DBow3Config.cmake --- Lib/DBow3Config.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/DBow3Config.cmake b/Lib/DBow3Config.cmake index 9720a14..da63d5e 100644 --- a/Lib/DBow3Config.cmake +++ b/Lib/DBow3Config.cmake @@ -1,4 +1,4 @@ include(CMakeFindDependencyMacro) find_dependency(OpenCV) find_dependency(OpenMP) -include("${CMAKE_CURRENT_LIST_DIR}/FbowTargets.cmake") \ No newline at end of file +include("${CMAKE_CURRENT_LIST_DIR}/DBow3Targets.cmake") \ No newline at end of file ================================================ FILE: ports/dbow3/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # https://github.com/rmsalinas/DBow3/pull/50 , already accepted but not merged as of 2023-06-13 vcpkg_download_distfile(REMOVE_DYNAMIC_EXCEPTION_SPECS URLS https://patch-diff.githubusercontent.com/raw/rmsalinas/DBow3/pull/50.patch?full_index=1 SHA512 e39b9615aa8cfd4cf26b4ec977df823533b187d18ade5447c96fdcea53c9a58b1648e0a9fe78e3833360ba91c27ad56b6d65f944bd6c46f76969a652ba64cb5a FILENAME 9f9d19930c3ec597bd1ebc2a9c2a84b9fd49674e.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rmsalinas/DBow3 REF c5ae539abddcef43ef64fa130555e2d521098369 SHA512 a1b35d2a524a23c367180574f7ddbcad73161c7fda6c3e7973273ab86092d9c6d89df28925a8e53691cd894f2d6588832604a0dbdba478557695806907bf36eb PATCHES "${REMOVE_DYNAMIC_EXCEPTION_SPECS}" fix_cmake.patch add-cstdint.diff # https://github.com/rmsalinas/DBow3/pull/55 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_OPENCV_CONTRIB=ON -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake/DBow3) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/dbow3/vcpkg.json ================================================ { "name": "dbow3", "version": "1.0.0", "port-version": 4, "description": "DBoW3 is an improved version of the DBow2 library, an open source C++ library for indexing and converting images into a bag-of-word representation.", "homepage": "https://github.com/rmsalinas/DBow3", "license": "BSD-3-Clause", "supports": "linux", "dependencies": [ { "name": "opencv", "features": [ "contrib" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dbus/cmake.dep.patch ================================================ diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 8cde1ffe0..d4d09f223 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -91,7 +91,9 @@ endif() add_executable(dbus-launch ${dbus_launch_SOURCES}) target_link_libraries(dbus-launch ${DBUS_LIBRARIES}) if(DBUS_BUILD_X11) - target_link_libraries(dbus-launch ${X11_LIBRARIES} ) + find_package(Threads REQUIRED) + target_link_libraries(dbus-launch ${X11_LIBRARIES} ${X11_xcb_LIB} ${X11_Xau_LIB} ${X11_Xdmcp_LIB} Threads::Threads) + target_include_directories(dbus-launch PRIVATE ${X11_INCLUDE_DIR}) endif() install(TARGETS dbus-launch ${INSTALL_TARGETS_DEFAULT_ARGS}) ================================================ FILE: ports/dbus/getpeereid.patch ================================================ diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index b7f3702..e2336ba 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -51,6 +51,7 @@ check_symbol_exists(closefrom "unistd.h" HAVE_CLOSEFROM) # check_symbol_exists(environ "unistd.h" HAVE_DECL_ENVIRON) check_symbol_exists(fstatfs "sys/vfs.h" HAVE_FSTATFS) check_symbol_exists(getgrouplist "grp.h" HAVE_GETGROUPLIST) # dbus-sysdeps.c +check_symbol_exists(getpeereid "sys/types.h;unistd.h" HAVE_GETPEEREID) # dbus-sysdeps.c, check_symbol_exists(getpeerucred "ucred.h" HAVE_GETPEERUCRED) # dbus-sysdeps.c, dbus-sysdeps-win.c check_symbol_exists(getpwnam_r "errno.h;pwd.h" HAVE_GETPWNAM_R) # dbus-sysdeps-util-unix.c check_symbol_exists(getrandom "sys/random.h" HAVE_GETRANDOM) diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake index 77fc19c..2f25643 100644 --- a/cmake/config.h.cmake +++ b/cmake/config.h.cmake @@ -140,6 +140,9 @@ /* Define to 1 if you have getgrouplist */ #cmakedefine HAVE_GETGROUPLIST 1 +/* Define to 1 if you have getpeereid */ +#cmakedefine HAVE_GETPEEREID 1 + /* Define to 1 if you have getpeerucred */ #cmakedefine HAVE_GETPEERUCRED 1 ================================================ FILE: ports/dbus/libsystemd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d3ec71b..932066a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,6 +141,10 @@ if(DBUS_LINUX) if(ENABLE_SYSTEMD AND SYSTEMD_FOUND) set(DBUS_BUS_ENABLE_SYSTEMD ON) set(HAVE_SYSTEMD ${SYSTEMD_FOUND}) + pkg_check_modules(SYSTEMD libsystemd IMPORTED_TARGET) + set(SYSTEMD_LIBRARIES PkgConfig::SYSTEMD CACHE INTERNAL "") + else() + set(SYSTEMD_LIBRARIES "" CACHE INTERNAL "") endif() option(ENABLE_USER_SESSION "enable user-session semantics for session bus under systemd" OFF) set(DBUS_ENABLE_USER_SESSION ${ENABLE_USER_SESSION}) ================================================ FILE: ports/dbus/pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index caef738..b878f42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -724,11 +724,11 @@ add_custom_target(help-options # if(DBUS_ENABLE_PKGCONFIG) set(PLATFORM_LIBS pthread ${LIBRT}) - if(PKG_CONFIG_FOUND) - # convert lists of link libraries into -lstdc++ -lm etc.. - foreach(LIB ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS}) - set(LIBDBUS_LIBS "${LIBDBUS_LIBS} -l${LIB}") - endforeach() + if(1) + set(LIBDBUS_LIBS "${CMAKE_THREAD_LIBS_INIT}") + if(LIBRT) + string(APPEND LIBDBUS_LIBS " -lrt") + endif() set(original_prefix "${CMAKE_INSTALL_PREFIX}") if(DBUS_RELOCATABLE) set(pkgconfig_prefix "\${pcfiledir}/../..") ================================================ FILE: ports/dbus/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO dbus/dbus REF "dbus-${VERSION}" SHA512 8ad3ab55bf6e2bbe6ff871302c2840c0cb82b4ec785b05f146c577ca1e931825084012ac90251e28c30e44d111e5ca5711b29349f4f0e68a09ba49392e63ac89 HEAD_REF master PATCHES cmake.dep.patch pkgconfig.patch getpeereid.patch # missing check from configure.ac libsystemd.patch remove-path.patch remove-var-lib-dbus-creation.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES systemd ENABLE_SYSTEMD x11 DBUS_BUILD_X11 x11 CMAKE_REQUIRE_FIND_PACKAGE_X11 ) unset(ENV{DBUSDIR}) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDBUS_BUILD_TESTS=OFF -DDBUS_ENABLE_DOXYGEN_DOCS=OFF -DDBUS_ENABLE_XML_DOCS=OFF -DDBUS_INSTALL_SYSTEM_LIBS=OFF #-DDBUS_SERVICE=ON -DDBUS_WITH_GLIB=OFF -DTHREADS_PREFER_PTHREAD_FLAG=ON -DXSLTPROC_EXECUTABLE=FALSE "-DCMAKE_INSTALL_SYSCONFDIR=${CURRENT_PACKAGES_DIR}/etc/${PORT}" "-DWITH_SYSTEMD_SYSTEMUNITDIR=lib/systemd/system" "-DWITH_SYSTEMD_USERUNITDIR=lib/systemd/user" ${options} OPTIONS_RELEASE -DDBUS_DISABLE_ASSERT=OFF -DDBUS_ENABLE_STATS=OFF -DDBUS_ENABLE_VERBOSE_MODE=OFF MAYBE_UNUSED_VARIABLES DBUS_BUILD_X11 DBUS_WITH_GLIB ENABLE_SYSTEMD THREADS_PREFER_PTHREAD_FLAG WITH_SYSTEMD_SYSTEMUNITDIR WITH_SYSTEMD_USERUNITDIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "DBus1" CONFIG_PATH "lib/cmake/DBus1") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/var/" "${CURRENT_PACKAGES_DIR}/etc" "${CURRENT_PACKAGES_DIR}/share/dbus-1/services" "${CURRENT_PACKAGES_DIR}/share/dbus-1/session.d" "${CURRENT_PACKAGES_DIR}/share/dbus-1/system-services" "${CURRENT_PACKAGES_DIR}/share/dbus-1/system.d" "${CURRENT_PACKAGES_DIR}/share/dbus-1/system.conf" "${CURRENT_PACKAGES_DIR}/share/dbus-1/system.conf" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/var" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/dbus-1/session.conf" "${CURRENT_PACKAGES_DIR}/etc/dbus/dbus-1/session.conf" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/dbus-1/session.conf" "${CURRENT_PACKAGES_DIR}/etc/dbus/dbus-1/session.d" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/dbus-1/session.conf" "${CURRENT_PACKAGES_DIR}/etc/dbus/dbus-1/session-local.conf" "") set(TOOLS daemon launch monitor run-session send test-tool update-activation-environment) if(VCPKG_TARGET_IS_WINDOWS) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/dbus-env.bat" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/dbus-env.bat") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/dbus-env.bat" "${CURRENT_PACKAGES_DIR}" "%~dp0/../..") else() list(APPEND TOOLS cleanup-sockets uuidgen) endif() list(TRANSFORM TOOLS PREPEND "dbus-" ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_copy_tools(TOOL_NAMES ${TOOLS} SEARCH_DIR ${CURRENT_PACKAGES_DIR}/debug/bin DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}") endif() vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/dbus/remove-path.patch ================================================ diff --git a/bus/CMakeLists.txt b/bus/CMakeLists.txt index e464f60..fc991f4 100644 --- a/bus/CMakeLists.txt +++ b/bus/CMakeLists.txt @@ -113,7 +113,6 @@ if(NOT WIN32) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/legacy-config/system.conf DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/dbus-1) install(DIRECTORY DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system.d) install(DIRECTORY DESTINATION ${CMAKE_INSTALL_DATADIR}/dbus-1/system-services) - install(DIRECTORY DESTINATION ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/run/dbus) endif() if(DBUS_SERVICE) ================================================ FILE: ports/dbus/remove-var-lib-dbus-creation.patch ================================================ diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 5caf5de5..d8124818 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -130,9 +130,6 @@ if(NOT WIN32) install(TARGETS dbus-uuidgen ${INSTALL_TARGETS_DEFAULT_ARGS}) endif() -# create the /var/lib/dbus directory for dbus-uuidgen -install(DIRECTORY DESTINATION ${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/lib/dbus) - set(EXAMPLES_SCRIPTS GetAllMatchRules.py ) ================================================ FILE: ports/dbus/vcpkg.json ================================================ { "name": "dbus", "version": "1.16.2", "port-version": 3, "description": "D-Bus specification and reference implementation, including libdbus and dbus-daemon", "homepage": "https://gitlab.freedesktop.org/dbus/dbus", "license": "AFL-2.1 OR GPL-2.0-or-later", "supports": "!uwp & !staticcrt & !android & !ios", "dependencies": [ "expat", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "systemd", "platform": "linux & !arm" } ], "features": { "systemd": { "description": "Build with systemd at_console support", "supports": "linux", "dependencies": [ { "name": "libsystemd", "platform": "linux" } ] }, "x11": { "description": "Build with X11 autolaunch support", "supports": "!windows", "dependencies": [ "libx11" ] } } } ================================================ FILE: ports/dbus-cxx/create-cmakeconfig.patch ================================================ diff --git a/cmake/dbus-cxxConfig.cmake.in b/cmake/dbus-cxxConfig.cmake.in new file mode 100644 index 0000000..42181f0 --- /dev/null +++ b/cmake/dbus-cxxConfig.cmake.in @@ -0,0 +1,79 @@ +@PACKAGE_INIT@ + +set(dbus-cxx_KNOWN_COMPONENTS "glib" "qt" "uv") + +include(CMakeFindDependencyMacro) + +find_dependency(Threads) +find_dependency(sigc++-3) + +if(@ENABLE_GLIB_SUPPORT@) + find_dependency(PkgConfig) + pkg_check_modules(glib REQUIRED IMPORTED_TARGET glib-2.0) +endif() + +if(@ENABLE_UV_SUPPORT@) + find_dependency(libuv) +endif() + +if(@ENABLE_QT_SUPPORT@) + find_dependency(Qt6 COMPONENTS Core) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/dbus-cxxTargets.cmake") + +if("glib" IN_LIST dbus-cxx_FIND_COMPONENTS) + if(@ENABLE_GLIB_SUPPORT@) + if(TARGET dbus-cxx::dbus-cxx-glib) + set(dbus-cxx_glib_FOUND TRUE) + else() + set(dbus-cxx_glib_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_glib) + message(FATAL_ERROR "Requested 'glib' component but target 'dbus-cxx::dbus-cxx-glib' is not available.") + endif() + endif() + else() + set(dbus-cxx_glib_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_glib) + message(FATAL_ERROR "Requested 'glib' component but dbus-cxx was built without glib support.") + endif() + endif() +endif() + +if("uv" IN_LIST dbus-cxx_FIND_COMPONENTS) + if(@ENABLE_UV_SUPPORT@) + if(TARGET dbus-cxx::dbus-cxx-uv) + set(dbus-cxx_uv_FOUND TRUE) + else() + set(dbus-cxx_uv_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_uv) + message(FATAL_ERROR "Requested 'uv' component but target 'dbus-cxx::dbus-cxx-uv' is not available.") + endif() + endif() + else() + set(dbus-cxx_uv_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_uv) + message(FATAL_ERROR "Requested 'uv' component but dbus-cxx was built without uv support.") + endif() + endif() +endif() + +if("qt" IN_LIST dbus-cxx_FIND_COMPONENTS) + if(@ENABLE_QT_SUPPORT@) + if(TARGET dbus-cxx::dbus-cxx-qt) + set(dbus-cxx_qt_FOUND TRUE) + else() + set(dbus-cxx_qt_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_qt) + message(FATAL_ERROR "Requested 'qt' component but target 'dbus-cxx::dbus-cxx-qt' is not available.") + endif() + endif() + else() + set(dbus-cxx_qt_FOUND FALSE) + if(dbus-cxx_FIND_REQUIRED_qt) + message(FATAL_ERROR "Requested 'qt' component but dbus-cxx was built without qt support.") + endif() + endif() +endif() + +check_required_components(dbus-cxx) ================================================ FILE: ports/dbus-cxx/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dbus-cxx/dbus-cxx REF "${VERSION}" SHA512 ad6551d03d0c7d499e9f0c6d77584e39d361a1464017be3c40c237d4c43306ad0ffb49b52c06b89cd62ec7346ebcb29f3d166a31b245fd978159e337a08ebafb HEAD_REF master PATCHES create-cmakeconfig.patch use-cmakeconfig.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "glib" ENABLE_GLIB_SUPPORT "libuv" ENABLE_UV_SUPPORT "qt6" ENABLE_QT_SUPPORT ) if (EXISTS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/libuv-static.pc") set(UV_STATIC ON) else () set(UV_STATIC OFF) endif () vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DENABLE_CODE_COVERAGE_REPORT=OFF -DENABLE_EXAMPLES=OFF -DENABLE_TOOLS=OFF -DBUILD_SITE=OFF -DUV_STATIC=${UV_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "dbus-cxx" CONFIG_PATH "lib/cmake/dbus-cxx") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/dbus-cxx/use-cmakeconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0030f17..0e19089 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,6 @@ include( CTest ) include( CheckCXXSymbolExists ) include( CheckCXXCompilerFlag ) IF( CMAKE_BUILD_TYPE MATCHES Debug ) -include( CodeCoverage ) ENDIF( CMAKE_BUILD_TYPE MATCHES Debug ) find_package(PkgConfig REQUIRED) @@ -36,7 +35,8 @@ set( DBUS_CXX_INCLUDE_VERSION 2.0 ) set( PKG_VERSION ${dbus-cxx_VERSION} ) # Our required dependencies: libsigc++ 3.0 -pkg_check_modules( sigc REQUIRED IMPORTED_TARGET sigc++-3.0 ) +find_package(sigc++-3 CONFIG REQUIRED) +add_library(PkgConfig::sigc ALIAS sigc-3.0) # # Check our options @@ -355,18 +355,26 @@ INSTALL( FILES "${PROJECT_BINARY_DIR}/dbus-cxx-2.0.pc" # Support for find_package # install(EXPORT dbus-cxxTargets - FILE dbus-cxxConfig.cmake - NAMESPACE dbus-cxx:: + FILE dbus-cxxTargets.cmake + NAMESPACE dbus-cxx:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dbus-cxx ) include(CMakePackageConfigHelpers) -write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfigVersion.cmake" +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfigVersion.cmake" - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dbus-cxx +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/cmake/dbus-cxxConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dbus-cxx" +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxxConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dbus-cxx" ) # diff --git a/dbus-cxx-glib/CMakeLists.txt b/dbus-cxx-glib/CMakeLists.txt index 6b98f27..87c245c 100644 --- a/dbus-cxx-glib/CMakeLists.txt +++ b/dbus-cxx-glib/CMakeLists.txt @@ -67,6 +67,6 @@ INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxx-glib-2.0.pc" install( TARGETS dbus-cxx-glib EXPORT dbus-cxxTargets COMPONENT glib - PUBLIC_HEADER DESTINATION include/dbus-cxx-glib-${DBUS_CXX_INCLUDE_VERSION} - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) + PUBLIC_HEADER DESTINATION include/dbus-cxx-glib-${DBUS_CXX_INCLUDE_VERSION} COMPONENT glib + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT glib + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT glib) diff --git a/dbus-cxx-qt/CMakeLists.txt b/dbus-cxx-qt/CMakeLists.txt index 9c637ed..a7b75ca 100644 --- a/dbus-cxx-qt/CMakeLists.txt +++ b/dbus-cxx-qt/CMakeLists.txt @@ -16,7 +16,7 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) -find_package(Qt5 COMPONENTS Core REQUIRED) +find_package(Qt6 COMPONENTS Core REQUIRED) set( dbus-cxx-qt-headers dbus-cxx-qt.h qtthreaddispatcher.h qtdispatcher.h ) set( dbus-cxx-qt-sources dbus-cxx-qt.cpp qtthreaddispatcher.cpp qtdispatcher.cpp ) @@ -28,7 +28,7 @@ set_target_properties( dbus-cxx-qt PROPERTIES VERSION 2.0.0 SOVERSION 2 PUBLIC_HEADER "${dbus-cxx-qt-headers}" ) -target_link_libraries( dbus-cxx-qt PUBLIC Qt5::Core dbus-cxx PkgConfig::sigc ${LIBRT} ) +target_link_libraries( dbus-cxx-qt PUBLIC Qt6::Core dbus-cxx PkgConfig::sigc ${LIBRT} ) target_include_directories( dbus-cxx-qt INTERFACE $ $ @@ -73,6 +73,6 @@ INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxx-qt-2.0.pc" install( TARGETS dbus-cxx-qt EXPORT dbus-cxxTargets COMPONENT qt - PUBLIC_HEADER DESTINATION include/dbus-cxx-qt-${DBUS_CXX_INCLUDE_VERSION} - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) + PUBLIC_HEADER DESTINATION include/dbus-cxx-qt-${DBUS_CXX_INCLUDE_VERSION} COMPONENT qt + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT qt + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT qt) diff --git a/dbus-cxx-uv/CMakeLists.txt b/dbus-cxx-uv/CMakeLists.txt index 23d51c5..a1e3abb 100644 --- a/dbus-cxx-uv/CMakeLists.txt +++ b/dbus-cxx-uv/CMakeLists.txt @@ -18,7 +18,7 @@ else() set( LIBUV_PKG_NAME libuv ) endif() -pkg_check_modules( libuv REQUIRED IMPORTED_TARGET ${LIBUV_PKG_NAME} ) +find_package(libuv CONFIG REQUIRED) set( dbus-cxx-uv-headers dbus-cxx-uv.h uvdispatcher.h ) set( dbus-cxx-uv-sources dbus-cxx-uv.cpp uvdispatcher.cpp ) @@ -33,7 +33,7 @@ target_include_directories( dbus-cxx-uv INTERFACE $ $ ) -target_link_libraries( dbus-cxx-uv PUBLIC PkgConfig::libuv ) +target_link_libraries( dbus-cxx-uv PUBLIC $,libuv::uv_a,libuv::uv> ) set_property( TARGET dbus-cxx-uv PROPERTY CXX_STANDARD 17 ) @@ -74,6 +74,6 @@ INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/dbus-cxx-uv-2.0.pc" install( TARGETS dbus-cxx-uv EXPORT dbus-cxxTargets COMPONENT uv - PUBLIC_HEADER DESTINATION include/dbus-cxx-uv-${DBUS_CXX_INCLUDE_VERSION} - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) + PUBLIC_HEADER DESTINATION include/dbus-cxx-uv-${DBUS_CXX_INCLUDE_VERSION} COMPONENT uv + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT uv + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT uv) ================================================ FILE: ports/dbus-cxx/vcpkg.json ================================================ { "name": "dbus-cxx", "version": "2.6.0", "port-version": 1, "description": "DBus-cxx provides an object-oriented interface to DBus.", "homepage": "https://dbus-cxx.github.io/", "license": "LGPL-3.0-or-later AND BSD-3-Clause", "supports": "linux", "dependencies": [ "libsigcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "glib": { "description": "Build dbus-cxx with GLib module", "dependencies": [ "glib" ] }, "libuv": { "description": "Build dbus-cxx with libuv module", "dependencies": [ "libuv" ] }, "qt6": { "description": "Build dbus-cxx with QT6 module", "dependencies": [ "qtbase" ] } } } ================================================ FILE: ports/dcmtk/dcmtk.patch ================================================ diff --git a/CMake/dcmtkPrepare.cmake b/CMake/dcmtkPrepare.cmake index 23a9278..15e9391 100644 --- a/CMake/dcmtkPrepare.cmake +++ b/CMake/dcmtkPrepare.cmake @@ -210,9 +210,9 @@ include(GNUInstallDirs) # CMake's files (DCMTKTarget.cmake, DCMTKConfigVersion.cmake and DCMTKConfig.cmake) are installed # to different installation paths under Unix- and Windows-based systems if(UNIX) - set(DCMTK_INSTALL_CMKDIR "${CMAKE_INSTALL_LIBDIR}/cmake/dcmtk") + set(DCMTK_INSTALL_CMKDIR "share/dcmtk") elseif(WIN32) - set(DCMTK_INSTALL_CMKDIR "cmake") + set(DCMTK_INSTALL_CMKDIR "share/dcmtk") endif() #----------------------------------------------------------------------------- ================================================ FILE: ports/dcmtk/dependencies.diff ================================================ diff --git a/CMake/3rdparty.cmake b/CMake/3rdparty.cmake index 837900575..2e1c0a2ef 100644 --- a/CMake/3rdparty.cmake +++ b/CMake/3rdparty.cmake @@ -1,3 +1,11 @@ +set(CMAKE_REQUIRE_FIND_PACKAGE_Iconv "${DCMTK_WITH_ICONV}") +set(CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 "${DCMTK_WITH_XML}") +set(CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL "${DCMTK_WITH_OPENSSL}") +set(CMAKE_REQUIRE_FIND_PACKAGE_PNG "${DCMTK_WITH_PNG}") +set(CMAKE_REQUIRE_FIND_PACKAGE_TIFF "${DCMTK_WITH_TIFF}") +set(CMAKE_REQUIRE_FIND_PACKAGE_ZLIB "${DCMTK_WITH_ZLIB}") +set(CMAKE_REQUIRE_FIND_PACKAGE_OpenJPEG "${DCMTK_WITH_OPENJPEG}") + set(USE_FIND_PACKAGE_DOCS "Control whether libraries are searched via CMake's find_package() mechanism or a Windows specific fallback") # Advanced user (eg. vcpkg) may want to override this: if(NOT DEFINED DCMTK_USE_FIND_PACKAGE_WIN_DEFAULT) @@ -42,7 +50,7 @@ if(DCMTK_USE_FIND_PACKAGE) else() message(STATUS "Info: DCMTK TIFF support will be enabled") include_directories(${TIFF_INCLUDE_DIR} ${JPEG_INCLUDE_DIR}) - set(LIBTIFF_LIBS ${TIFF_LIBRARIES} ${TIFF_EXTRA_LIBS_STATIC} ${JPEG_LIBRARIES}) + set(LIBTIFF_LIBS ${TIFF_LIBRARIES}) endif() endif() endif() @@ -58,7 +66,7 @@ if(DCMTK_USE_FIND_PACKAGE) message(STATUS "Info: DCMTK PNG support will be enabled") set(WITH_LIBPNG 1) include_directories(${PNG_INCLUDE_DIR}) - set(LIBPNG_LIBS ${PNG_LIBRARY} ${LIBPNG_EXTRA_LIBS_STATIC}) + set(LIBPNG_LIBS ${PNG_LIBRARIES}) endif() endif() @@ -103,7 +111,7 @@ if(DCMTK_USE_FIND_PACKAGE) else() message(STATUS "Info: DCMTK XML support will be enabled") set(WITH_LIBXML 1) - include_directories(${LIBXML2_INCLUDE_DIR}) + include_directories(${LIBXML2_INCLUDE_DIRS}) set(LIBXML_LIBS ${LIBXML2_LIBRARIES} ${LIBXML2_EXTRA_LIBS_STATIC}) endif() endif() @@ -141,7 +149,10 @@ if(DCMTK_USE_FIND_PACKAGE) # Find libiconv if(DCMTK_WITH_ICONV) find_package(Iconv QUIET) - find_package(LIBCHARSET QUIET) + set(ICONV_FOUND 1) + if(CHARSET_LIBRARIES) + set(LIBCHARSET_FOUND 1) + endif() if(ICONV_FOUND) if(NOT Iconv_IS_BUILT_IN) set(LIBICONV_FOUND ${ICONV_FOUND}) ================================================ FILE: ports/dcmtk/dictionary_paths.patch ================================================ diff --git a/CMake/GenerateDCMTKConfigure.cmake b/CMake/GenerateDCMTKConfigure.cmake index 8a59d44fa..8d3b4fc60 100644 --- a/CMake/GenerateDCMTKConfigure.cmake +++ b/CMake/GenerateDCMTKConfigure.cmake @@ -173,19 +173,11 @@ if(WIN32 AND NOT CYGWIN) # Set dictionary path to the data dir inside install main dir (prefix) if(DCMTK_DEFAULT_DICT STREQUAL "external") - if(DCMTK_USE_WIN32_PROGRAMDATA) - set(DCM_DICT_DEFAULT_PATH "${CMAKE_INSTALL_FULL_DATADIR}\\\\dicom.dic") - else() - set(DCM_DICT_DEFAULT_PATH "${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\dicom.dic") - endif() + set(DCM_DICT_DEFAULT_PATH "${CMAKE_INSTALL_FULL_DATADIR}\\\\dicom.dic") # If private dictionary should be utilized, add it to default dictionary path. if(ENABLE_PRIVATE_TAGS) - if(DCMTK_USE_WIN32_PROGRAMDATA) - set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${CMAKE_INSTALL_FULL_DATADIR}\\\\private.dic") - else() - set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${DCMTK_PREFIX}\\\\${CMAKE_INSTALL_DATADIR}\\\\dcmtk\\\\private.dic") - endif() + set(DCM_DICT_DEFAULT_PATH "${DCM_DICT_DEFAULT_PATH};${CMAKE_INSTALL_FULL_DATADIR}\\\\private.dic") endif() # Again, for Windows strip all / from path and replace it with \\. ================================================ FILE: ports/dcmtk/disable-test-setup.diff ================================================ diff --git a/CMake/dcmtkUseWine.cmake b/CMake/dcmtkUseWine.cmake index 6dbd7dc..cf529e2 100644 --- a/CMake/dcmtkUseWine.cmake +++ b/CMake/dcmtkUseWine.cmake @@ -1,3 +1,14 @@ +if(CMAKE_HOST_WIN32) + function(DCMTK_SETUP_WINE) + endfunction() + function(WINE_COMMAND) + message(FATAL_ERROR "Not implemented") + endfunction() + function(WINE_DETACHED) + message(FATAL_ERROR "Not implemented") + endfunction() + return() +endif() # # Functions for detection and usage of Wine # Used when cross compiling ================================================ FILE: ports/dcmtk/msvc.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bef673f..284d40e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ target_include_directories(config INTERFACE $ $ ) +target_compile_options(config INTERFACE "\$<\$:/Zc:__cplusplus>") install(TARGETS config EXPORT DCMTKTargets) # Include directories ================================================ FILE: ports/dcmtk/pkgconfig-lib-order.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 284d40e..8f8acfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,7 +158,12 @@ endif() if(DCMTK_WITH_ICONV) # libiconv does not provide a .pc file - set(PKGCONF_LIBS_PRIV "${PKGCONF_LIBS_PRIV} ${Iconv_LIBRARY} ${LIBCHARSET_LIBRARY}") + if(Iconv_LIBRARIES) + string(APPEND PKGCONF_LIBS_PRIV " -liconv") + endif() + if(CHARSET_LIBRARIES) + string(APPEND PKGCONF_LIBS_PRIV " -lcharset") + endif() endif() if(DCMTK_WITH_ICU) @@ -200,6 +205,41 @@ endif() get_property(DCMTK_LIBRARY_TARGETS GLOBAL PROPERTY DCMTK_LIBRARY_TARGETS) +foreach(lib IN LISTS WIN32_STD_LIBRARIES) + string(APPEND PKGCONF_LIBS_PRIV " -l${lib}") +endforeach() +configure_file("${DCMTK_SOURCE_DIR}/CMake/dcmtk.pc.in" "${DCMTK_BINARY_DIR}/dcmtk-deps.pc" @ONLY) +install(FILES "${DCMTK_BINARY_DIR}/dcmtk-deps.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +set(PKGCONF_LIBS "") +set(PKGCONF_LIBS_PRIV "") +set(PKGCONF_REQ_PUB dcmtk-deps) +set(PKGCONF_REQ_PRIV "") + +foreach(lib IN ITEMS + dcmfg # for dcmseg, dcmpmap, dcmect + dcmiod # for dcmpstat, dcmfg, dcmseg + dcmdsig # for dcmpstat + dcmtls # for dcmpstat + dcmqrdb # for dcmpstat + dcmsr # for cmr + dcmnet # for dcmtls, dcmwlm, dcmqrdb + dcmtkcharls # for dcmjpls + ijg8 # for dcmjpeg + ijg12 # fpr dcmjpeg + ijg16 # for dcmjpeg + dcmimage # for dcmjpeg etc. + dcmimgle # for dcmimage etc. + dcmxml # for i2d + dcmdata # fpr dcmxml, dcmimgle, etc. + oflog # for most libs + ofstd # for oflog + oficonv # for ofstd + ) + if(lib IN_LIST DCMTK_LIBRARY_TARGETS) + list(REMOVE_ITEM DCMTK_LIBRARY_TARGETS ${lib}) + list(APPEND DCMTK_LIBRARY_TARGETS ${lib}) + endif() +endforeach() foreach(T ${DCMTK_LIBRARY_TARGETS}) set(PKGCONF_LIBS "${PKGCONF_LIBS} -l${T}") endforeach() ================================================ FILE: ports/dcmtk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DCMTK/dcmtk REF "DCMTK-${VERSION}" SHA512 6c7699d222b3a26f2bf52fddbf3278946429f9b4b5cdd0607fb3c3fa82f5a13c6289c831d7a584700c9f59ae4244d94ea678a22a34aee988399056436f600a95 HEAD_REF master PATCHES dcmtk.patch dependencies.diff dictionary_paths.patch disable-test-setup.diff pkgconfig-lib-order.diff msvc.diff ) file(REMOVE "${SOURCE_PATH}/CMake/FindICONV.cmake" "${SOURCE_PATH}/CMake/FindJPEG.cmake" "${SOURCE_PATH}/CMake/FindOpenJPEG.cmake" ) # Prefix all exported API symbols of vendored libjpeg with "dcmtk_" file(GLOB src_files "${SOURCE_PATH}/dcmjpeg/libijg*/*.c" "${SOURCE_PATH}/dcmjpeg/libijg*/*.h") foreach(file_path ${src_files}) file(READ "${file_path}" file_string) string(REGEX REPLACE "(#define[ \t\r\n]+[A-Za-z0-9_]*[ \t\r\n]+)(j[a-z]+[0-9]+_)" "\\1dcmtk_\\2" file_string "${file_string}") file(WRITE "${file_path}" "${file_string}") endforeach() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_CROSSCOMPILING) message(STATUS [[ Cross-compiling DCMTK needs input from executing test programs in the target environment. You may need to provide a suitable emulator setup, and you can set values directly with `VCPKG_CMAKE_CONFIGURE_OPTIONS` in a custom triplet file. For more information see https://support.dcmtk.org/redmine/projects/dcmtk/wiki/Cross_Compiling ]]) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "iconv" DCMTK_WITH_ICONV "openssl" DCMTK_WITH_OPENSSL "png" DCMTK_WITH_PNG "tiff" DCMTK_WITH_TIFF "xml2" DCMTK_WITH_XML "zlib" DCMTK_WITH_ZLIB "openjpeg" DCMTK_WITH_OPENJPEG "tools" BUILD_APPS ) if("external-dict" IN_LIST FEATURES) set(DCMTK_DEFAULT_DICT "external") set(DCMTK_ENABLE_BUILTIN_OFICONV_DATA OFF) else() set(DCMTK_DEFAULT_DICT "builtin") set(DCMTK_ENABLE_BUILTIN_OFICONV_DATA ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_DOCDIR=share/${PORT}/doc -DDCMTK_DEFAULT_DICT=${DCMTK_DEFAULT_DICT} -DCMAKE_DISABLE_FIND_PACKAGE_BISON=ON -DCMAKE_DISABLE_FIND_PACKAGE_FLEX=ON -DDCMTK_ENABLE_BUILTIN_OFICONV_DATA=${DCMTK_ENABLE_BUILTIN_OFICONV_DATA} -DDCMTK_ENABLE_PRIVATE_TAGS=ON -DDCMTK_ENABLE_STL=ON -DDCMTK_OVERWRITE_WIN32_COMPILER_FLAGS=OFF -DDCMTK_USE_FIND_PACKAGE=ON -DDCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS=ON -DDCMTK_WIDE_CHAR_MAIN_FUNCTION=ON -DDCMTK_WITH_DOXYGEN=OFF -DDCMTK_WITH_SNDFILE=OFF -DDCMTK_WITH_WRAP=OFF OPTIONS_DEBUG -DBUILD_APPS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) set(_tools dcm2cda cda2dcm dcm2img dcm2json dcm2pdf dcm2pnm dcm2xml dcmcjpeg dcmcjpls dcmconv dcmcrle dcmdecap dcmdjpeg dcmdjpls dcmdrle dcmdspfn dcmdump dcmencap dcmftest dcmgpdir dcmicmp dcmj2pnm dcml2pnm dcmmkcrv dcmmkdir dcmmklut dcmodify dcmp2pgm dcmprscp dcmprscu dcmpschk dcmpsmk dcmpsprt dcmpsrcv dcmpssnd dcmqridx dcmqrscp dcmqrti dcmquant dcmrecv dcmscale dcmsend dcmsign dcod2lum dconvlum drtdump dsr2html dsr2xml dsrdump dump2dcm echoscu findscu getscu img2dcm json2dcm mkcsmapper mkesdb movescu pdf2dcm stl2dcm storescp storescu termscu wlmscpfs xml2dcm xml2dsr ) vcpkg_copy_tools(TOOL_NAMES ${_tools} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() # no absolute paths vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dcmtk/config/osconfig.h" "#define (DCMTK_PREFIX|DCM_DICT_DEFAULT_PATH|DEFAULT_CONFIGURATION_DIR|DEFAULT_SUPPORT_DATA_DIR) \"[^\"]*\"" "#define \\1 \"\" /* redacted by vcpkg */" REGEX ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/dcmtk/usage ================================================ dcmtk provides CMake targets: find_package(DCMTK CONFIG REQUIRED) target_link_libraries(main PRIVATE DCMTK::DCMTK) # You may also select specific modules using DCMTK::. dcmtk provides pkg-config modules: dcmtk ================================================ FILE: ports/dcmtk/vcpkg.json ================================================ { "name": "dcmtk", "version": "3.7.0", "description": "This DICOM ToolKit (DCMTK) package consists of source code, documentation and installation instructions for a set of software libraries and applications implementing part of the DICOM/MEDICOM Standard.", "homepage": "https://github.com/DCMTK/dcmtk", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "external-dict": { "description": "Enable external dictionary" }, "iconv": { "description": "Enable Iconv support", "dependencies": [ "libiconv" ] }, "openjpeg": { "description": "Enable OpenJPEG support", "dependencies": [ "openjpeg" ] }, "openssl": { "description": "Enable OpenSSL", "dependencies": [ "openssl" ] }, "png": { "description": "Enable PNG support", "dependencies": [ "libpng" ] }, "tiff": { "description": "Enable TIFF support", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "tools": { "description": "Build apps" }, "xml2": { "description": "Enable XML support", "dependencies": [ "libxml2" ] }, "zlib": { "description": "Enable zlib support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/ddtdanilo-lmdb-wrapper/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ddtdanilo/LMDB-wrapper-MISRA-C REF "v${VERSION}" SHA512 97ef5907023623b4342cdd48dfc931d964bb04a23991ad1ef9689c2f16f1e3a84a0b0316da0911a128bf16fd9ac34d8cab02b487f19fea34e53125464cfba189 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLMDB_WRAPPER_BUILD_TESTS=OFF -DLMDB_WRAPPER_BUILD_EXAMPLES=OFF ) vcpkg_cmake_build() vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME lmdb_wrapper CONFIG_PATH lib/cmake/lmdb_wrapper) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ddtdanilo-lmdb-wrapper/vcpkg.json ================================================ { "name": "ddtdanilo-lmdb-wrapper", "version": "1.0.1", "description": "MISRA C compliant wrapper for LMDB (Lightning Memory-Mapped Database)", "homepage": "https://github.com/ddtdanilo/LMDB-wrapper-MISRA-C", "license": "MIT", "supports": "!uwp & !x86", "dependencies": [ "lmdb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/debug-assert/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO foonathan/debug_assert REF "v${VERSION}" SHA512 0cc2f301e5f604501d29bab0e05ab9b667c1e0160003fc26da4f3edf747c761ff6d409cacc6bbe7fb15cd5caf9d3175fd4e88c0b066e659b41966916fab45ba8 HEAD_REF v1.3.3 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDEBUG_ASSERT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/debug_assert PACKAGE_NAME debug_assert) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/debug-assert/vcpkg.json ================================================ { "name": "debug-assert", "version": "1.3.4", "description": "Provides flexible DEBUG_ASSERT() macro.", "homepage": "https://github.com/foonathan/debug_assert", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/decimal-for-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vpiotr/decimal_for_cpp REF 98265a57385ec14ae84fc0b2b0f15c770b30f548 SHA512 b8779ffb81567309ab07fa17eb6d3eb8bb94f77f5a388fd395433a304923ccf75e753a5822f36e5ad9d8959ee1a92b660639367d3a443f353e3e22d36a056f4d HEAD_REF master ) file(COPY ${SOURCE_PATH}/include/decimal.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/decimal-for-cpp) file(COPY ${SOURCE_PATH}/doc/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/decimal-for-cpp) file(RENAME ${CURRENT_PACKAGES_DIR}/share/decimal-for-cpp/license.txt ${CURRENT_PACKAGES_DIR}/share/decimal-for-cpp/copyright) ================================================ FILE: ports/decimal-for-cpp/vcpkg.json ================================================ { "name": "decimal-for-cpp", "version": "1.18", "port-version": 1, "description": "Decimal data type support, for COBOL-like fixed-point operations on currency values." } ================================================ FILE: ports/delaunator-cpp/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abellgithub/delaunator-cpp REF "v${VERSION}" SHA512 14831b2b86e4a53b7da702d551d93ce555c639721bd5d84733c0bf994e71885d0af5963b8033e278dafa73f59996da4eee03fcd19e78206f0dbcf66077875d8b HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/delaunator-header-only.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/include/delaunator.cpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/include/delaunator.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/delaunator-cpp/vcpkg.json ================================================ { "name": "delaunator-cpp", "version": "1.0.0", "description": "A really fast C++ library for Delaunay triangulation of 2D points", "homepage": "https://github.com/abellgithub/delaunator-cpp", "license": "MIT" } ================================================ FILE: ports/deniskovalchuk-libftp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO deniskovalchuk/libftp REF "v${VERSION}" SHA512 34e3abdbe5fbc9e422f58e50f5a6f276ffbd3abf8d2c419c294e4e7ea36fb42dbdf15dff3c3a3d9e1c7ca7164e7f6fdc77f12f722c6002294a77e46fa61e3122 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # generating export header in source dir OPTIONS -DLIBFTP_BUILD_TEST=OFF -DLIBFTP_BUILD_EXAMPLE=OFF -DLIBFTP_BUILD_CMDLINE_CLIENT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ftp CONFIG_PATH "share/cmake/ftp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/deniskovalchuk-libftp/vcpkg.json ================================================ { "name": "deniskovalchuk-libftp", "version": "1.5.0", "maintainers": "Denis Kovalchuk ", "description": "A cross-platform FTP/FTPS client library based on Boost.Asio.", "homepage": "https://github.com/deniskovalchuk/libftp", "license": "MIT", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-format", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/detours/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/Detours REF 9764cebcb1a75940e68fa83d6730ffaf0f669401 SHA512 30f689a7f7dd3d762f1194ad8d7e05517678b754d6c0db297220f946485a8c8ec8a07cf5f3f893aabcc5623f64c81ee358e2a1c3ba23ba1fbd5856f6b3dd9eb7 HEAD_REF main ) vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "src" PROJECT_NAME "Makefile" OPTIONS "PROCESSOR_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}" OPTIONS_RELEASE "DETOURS_CONFIG=Release" OPTIONS_DEBUG "DETOURS_CONFIG=Debug" ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib.${VCPKG_TARGET_ARCHITECTURE}Release/" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib.${VCPKG_TARGET_ARCHITECTURE}Debug/" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME detours) else() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME detours) endif() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/detours/usage ================================================ detours can be used from CMake via: find_path(DETOURS_INCLUDE_DIRS "detours/detours.h") find_library(DETOURS_LIBRARY detours REQUIRED) target_include_directories(main PRIVATE ${DETOURS_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${DETOURS_LIBRARY}) ================================================ FILE: ports/detours/vcpkg.json ================================================ { "name": "detours", "version-date": "2025-06-20", "description": "Detours is a software package for monitoring and instrumenting API calls on Windows.", "homepage": "https://github.com/microsoft/Detours", "license": "MIT", "supports": "windows & !uwp" } ================================================ FILE: ports/devicenameresolver/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(DeviceNameResolver CXX) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 /DUNICODE /D_UNICODE -D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) endif() include_directories(.) file(GLOB DeviceNameResolver_srcs "*.cpp") add_library(DeviceNameResolver ${DeviceNameResolver_srcs}) install( TARGETS DeviceNameResolver RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES DeviceNameResolver.h DESTINATION include) endif() ================================================ FILE: ports/devicenameresolver/add-string-headfile.patch ================================================ diff --git a/NativeWinApi.h b/NativeWinApi.h index 63fced1..582306b 100644 --- a/NativeWinApi.h +++ b/NativeWinApi.h @@ -1,6 +1,7 @@ #pragma once #include +#include #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) #define STATUS_SUCCESS ((NTSTATUS)0x00000000L) ================================================ FILE: ports/devicenameresolver/portfile.cmake ================================================ vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO mrexodia/devicenameresolver REF 0850d88fa6a759d79b3c859933870d9aa602aa79 SHA512 9161411d3c8c17f49f5ff9482a007a6608872c948ef856aa7076a45c246e8d777e4cd6b54169d9c1b9e99e7b383436e1a084e168fafff1ca5f2b28260bac1452 HEAD_REF master PATCHES add-string-headfile.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/DeviceNameResolver.h" "__declspec(dllexport)" "") file(INSTALL "${SOURCE_PATH}/readme.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/devicenameresolver" RENAME copyright) ================================================ FILE: ports/devicenameresolver/vcpkg.json ================================================ { "name": "devicenameresolver", "version-date": "2016-06-26", "port-version": 4, "description": "a little library that resolves a path from a (virtual) device name.", "license": null, "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/devil/0001_fix-encoding.patch ================================================ diff --git a/DevIL/src-ILU/include/ilu_error/ilu_err-french.h b/DevIL/src-ILU/include/ilu_error/ilu_err-french.h index d3b280d..445440e 100644 --- a/DevIL/src-ILU/include/ilu_error/ilu_err-french.h +++ b/DevIL/src-ILU/include/ilu_error/ilu_err-french.h @@ -17,19 +17,19 @@ #include "ilu_internal.h" ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { - IL_TEXT("numration invalide"), - IL_TEXT("dpassement de mmoire"), - IL_TEXT("format non support"), + IL_TEXT("énumération invalide"), + IL_TEXT("dépassement de mémoire"), + IL_TEXT("format non supporté"), IL_TEXT("erreur interne"), - IL_TEXT("valeur illgale"), - IL_TEXT("opration illgale"), - IL_TEXT("valeur de fichier illgale"), - IL_TEXT("en-tte de fichier invalide"), - IL_TEXT("paramtre invalide"), + IL_TEXT("valeur illégale"), + IL_TEXT("opération illégale"), + IL_TEXT("valeur de fichier illégale"), + IL_TEXT("en-tête de fichier invalide"), + IL_TEXT("paramètre invalide"), IL_TEXT("ne peut pas ouvrir le fichier"), IL_TEXT("extension invalide"), - IL_TEXT("fichier dj existant"), - IL_TEXT("quivalent hors-format"), + IL_TEXT("fichier déjà existant"), + IL_TEXT("équivalent hors-format"), IL_TEXT("stack overflow"), //often used like this in French, so no need to translate IL_TEXT("stack underflow"), IL_TEXT("conversion invalide"), @@ -38,7 +38,7 @@ ILconst_string iluErrorStringsFrench[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = }; ILconst_string iluLibErrorStringsFrench[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = { - IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothque (but less used) + IL_TEXT("gif : erreur dans la librairie"), //or: gif : erreur dans la bibliothèque (but less used) IL_TEXT("jpeg : erreur dans la librairie"), IL_TEXT("png : erreur dans la librairie"), IL_TEXT("tiff : erreur dans la librairie"), diff --git a/DevIL/src-ILU/include/ilu_error/ilu_err-german.h b/DevIL/src-ILU/include/ilu_error/ilu_err-german.h index bf3f05c..acdbe8a 100644 --- a/DevIL/src-ILU/include/ilu_error/ilu_err-german.h +++ b/DevIL/src-ILU/include/ilu_error/ilu_err-german.h @@ -6,7 +6,7 @@ // // Filename: src-ILU/include/ilu_error/ilu_err_German.h // -// Description: Error functions in German, translated by Andreas Stckel. +// Description: Error functions in German, translated by Andreas Stöckel. // //----------------------------------------------------------------------------- @@ -17,23 +17,23 @@ #include "ilu_internal.h" ILconst_string iluErrorStringsGerman[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { - IL_TEXT("Ungltiger Enumerator"), - IL_TEXT("Kein Speicher verfgbar"), - IL_TEXT("Das Format wird noch nicht untersttzt"), + IL_TEXT("Ungültiger Enumerator"), + IL_TEXT("Kein Speicher verfügbar"), + IL_TEXT("Das Format wird noch nicht unterstützt"), IL_TEXT("Interner Fehler"), - IL_TEXT("Ungltiger Wert"), - IL_TEXT("Unzulssige Operation"), - IL_TEXT("Unzulssiger Datei-Wert"), - IL_TEXT("Unzulssiger Datei-Header"), - IL_TEXT("Unzulssiger Parameter"), - IL_TEXT("Datei konnte nicht geffnet werden"), - IL_TEXT("Ungltiger Erweiterung"), + IL_TEXT("Ungültiger Wert"), + IL_TEXT("Unzulässige Operation"), + IL_TEXT("Unzulässiger Datei-Wert"), + IL_TEXT("Unzulässiger Datei-Header"), + IL_TEXT("Unzulässiger Parameter"), + IL_TEXT("Datei konnte nicht geöffnet werden"), + IL_TEXT("Ungültiger Erweiterung"), IL_TEXT("Die Datei existiert bereits"), IL_TEXT("out format equivalent"), - IL_TEXT("Stack berlauf"), + IL_TEXT("Stack Überlauf"), IL_TEXT("Stack Unterlauf"), - IL_TEXT("Ungltige Konvertierung"), - IL_TEXT("Unzulssige Abmessungen"), + IL_TEXT("Ungültige Konvertierung"), + IL_TEXT("Unzulässige Abmessungen"), IL_TEXT("Fehler beim Lesen der Datei") }; diff --git a/DevIL/src-ILU/include/ilu_error/ilu_err-italian.h b/DevIL/src-ILU/include/ilu_error/ilu_err-italian.h index 09d7bd1..d34b23f 100644 --- a/DevIL/src-ILU/include/ilu_error/ilu_err-italian.h +++ b/DevIL/src-ILU/include/ilu_error/ilu_err-italian.h @@ -22,13 +22,13 @@ ILconst_string iluErrorStringsItalian[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] IL_TEXT("configuri non sostenne"), IL_TEXT("erreur interne"), IL_TEXT("errore interno"), - IL_TEXT("opration illgale"), + IL_TEXT("opération illégale"), IL_TEXT("operazione illegale"), IL_TEXT("inebri archivio nullo"), IL_TEXT("parametro nullo"), - IL_TEXT("non pu aprire l'archivio"), + IL_TEXT("non può aprire l'archivio"), IL_TEXT("dilazione nulla"), - IL_TEXT("archivi gi esistendo"), + IL_TEXT("archivi già esistendo"), IL_TEXT("equivalente fuori-configuri"), IL_TEXT("inondi di batteria"), IL_TEXT("insufficienza di batteria"), diff --git a/DevIL/src-ILU/include/ilu_error/ilu_err-spanish.h b/DevIL/src-ILU/include/ilu_error/ilu_err-spanish.h index 77b5a24..0945fdf 100644 --- a/DevIL/src-ILU/include/ilu_error/ilu_err-spanish.h +++ b/DevIL/src-ILU/include/ilu_error/ilu_err-spanish.h @@ -6,7 +6,7 @@ // // Filename: src-ILU/include/ilu_error/ilu_err-spanish.h // -// Description: Error functions in Spanish, translated by Carlos Aragons +// Description: Error functions in Spanish, translated by Carlos Aragonés // //----------------------------------------------------------------------------- @@ -19,32 +19,32 @@ ILconst_string iluErrorStringsSpanish[IL_FILE_READ_ERROR - IL_INVALID_ENUM + 1] = { IL_TEXT("enumerador incorrecto"), IL_TEXT("no queda memoria disponible"), - IL_TEXT("formato no soportado todava"), + IL_TEXT("formato no soportado todavía"), IL_TEXT("error interno"), IL_TEXT("valor incorrecto"), - IL_TEXT("operacin ilegaIL_TEXT("), + IL_TEXT("operación ilegaIL_TEXT("), IL_TEXT("valor de fichero ilegaIL_TEXT("), IL_TEXT("cabecera incorrecta"), - IL_TEXT("parmetro incorrecto"), + IL_TEXT("parámetro incorrecto"), IL_TEXT("no se puede abrir el fichero"), - IL_TEXT("extensin desconocida"), + IL_TEXT("extensión desconocida"), IL_TEXT("el fichero ya existe"), IL_TEXT("formato de salida equivalente"), IL_TEXT("desbordamiento superior de pila"), IL_TEXT("desbordamiento inferior de pila"), - IL_TEXT("conversin incorrecta"), - IL_TEXT("nmero de dimensiones incorrecto"), + IL_TEXT("conversión incorrecta"), + IL_TEXT("número de dimensiones incorrecto"), IL_TEXT("error de lectura en el fichero") }; ILconst_string iluLibErrorStringsSpanish[IL_LIB_EXR_ERROR - IL_LIB_GIF_ERROR + 1] = { - IL_TEXT("error en la librera gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librera'. - IL_TEXT("error en la librera jpeg"), - IL_TEXT("error en la librera png"), - IL_TEXT("error en la librera tiff"), - IL_TEXT("error en la librera mng"), - IL_TEXT("error en la librera jp2"), - IL_TEXT("error en la librera exr"), + IL_TEXT("error en la librería gif"), // the correct translation will be 'error en la biblioteca gif', but nobody in spain uses the word 'biblioteca' for the translation the word 'library'. Almost all Spanish programmers translate 'library' incorrectly to 'librería'. + IL_TEXT("error en la librería jpeg"), + IL_TEXT("error en la librería png"), + IL_TEXT("error en la librería tiff"), + IL_TEXT("error en la librería mng"), + IL_TEXT("error en la librería jp2"), + IL_TEXT("error en la librería exr"), }; ILconst_string iluMiscErrorStringsSpanish[2] = { ================================================ FILE: ports/devil/0002_fix-missing-mfc-includes.patch ================================================ diff --git a/DevIL/src-IL/msvc/IL Unicode.rc b/DevIL/src-IL/msvc/IL Unicode.rc index 346758f..298a207 100644 --- a/DevIL/src-IL/msvc/IL Unicode.rc +++ b/DevIL/src-IL/msvc/IL Unicode.rc @@ -7,7 +7,11 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" + ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/DevIL/src-IL/msvc/IL.rc b/DevIL/src-IL/msvc/IL.rc index 8bfadf9..0b8289f 100644 --- a/DevIL/src-IL/msvc/IL.rc +++ b/DevIL/src-IL/msvc/IL.rc @@ -7,10 +7,13 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" -///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (United States) resources diff --git a/DevIL/src-IL/msvc8/IL Unicode.rc b/DevIL/src-IL/msvc8/IL Unicode.rc index 026ee49..66ca4bf 100644 --- a/DevIL/src-IL/msvc8/IL Unicode.rc +++ b/DevIL/src-IL/msvc8/IL Unicode.rc @@ -7,7 +7,10 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/DevIL/src-IL/msvc8/IL.rc b/DevIL/src-IL/msvc8/IL.rc index 9301d41..3ad52c0 100644 --- a/DevIL/src-IL/msvc8/IL.rc +++ b/DevIL/src-IL/msvc8/IL.rc @@ -7,7 +7,10 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/DevIL/src-IL/msvc9/IL Unicode.rc b/DevIL/src-IL/msvc9/IL Unicode.rc index d0dff4f..c9cf51f 100644 --- a/DevIL/src-IL/msvc9/IL Unicode.rc +++ b/DevIL/src-IL/msvc9/IL Unicode.rc @@ -7,7 +7,10 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/DevIL/src-IL/msvc9/IL.rc b/DevIL/src-IL/msvc9/IL.rc index 9f5c795..6b8c891 100644 --- a/DevIL/src-IL/msvc9/IL.rc +++ b/DevIL/src-IL/msvc9/IL.rc @@ -7,7 +7,10 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "resource.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ================================================ FILE: ports/devil/0003_fix-openexr.patch ================================================ diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 02e4f03..4accaa1 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -235,8 +235,12 @@ target_link_libraries(IL ${libs}) # generate config.h configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.h.cmake.in ${CMAKE_CURRENT_SOURCE_DIR}/include/config.h) - - +add_definitions(-DHAVE_CONFIG_H) +if(WIN32) + if(BUILD_SHARED_LIBS) + add_definitions(-DOPENEXR_DLL) + endif() +endif() # generate pkg-config file # TODO: add Requires.private or Libs.private diff --git a/DevIL/src-IL/src/il_exr.cpp b/DevIL/src-IL/src/il_exr.cpp index bbb3978..3916c6f 100644 --- a/DevIL/src-IL/src/il_exr.cpp +++ b/DevIL/src-IL/src/il_exr.cpp @@ -14,15 +14,10 @@ #include "il_internal.h" #ifndef IL_NO_EXR -#ifndef HAVE_CONFIG_H // We are probably on a Windows box . -//#define OPENEXR_DLL -#define HALF_EXPORTS -#endif //HAVE_CONFIG_H - #include "il_exr.h" -#include -#include -#include +#include +#include +#include //#include //#include //#include diff --git a/DevIL/src-IL/include/il_exr.h b/DevIL/src-IL/include/il_exr.h index 3d880c4..04d721a 100644 --- a/DevIL/src-IL/include/il_exr.h +++ b/DevIL/src-IL/include/il_exr.h @@ -15,7 +15,7 @@ #define EXR_H #include "il_internal.h" -#include +#include //using namespace Imf; // Using this leads to errors with Microsoft's IStream. ================================================ FILE: ports/devil/0004_compatible-jasper-2-0-20.patch ================================================ diff --git a/DevIL/src-IL/src/il_jp2.cpp b/DevIL/src-IL/src/il_jp2.cpp index 730afee..a419c14 100644 --- a/DevIL/src-IL/src/il_jp2.cpp +++ b/DevIL/src-IL/src/il_jp2.cpp @@ -313,20 +313,31 @@ ILboolean iLoadJp2Internal(jas_stream_t *Stream, ILimage *Image) } - -static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, int cnt) +#ifdef __APPLE__ +static int iJp2_file_read(void *obj, char *buf, unsigned int cnt) +#else +static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, unsigned int cnt) +#endif { obj; - return iread(buf, 1, cnt); + return iread((void*)buf, 1, cnt); } -static int iJp2_file_write(jas_stream_obj_t *obj, char *buf, int cnt) +#ifdef __APPLE__ +static int iJp2_file_write(void *obj, const char *buf, unsigned int cnt) +#else +static int iJp2_file_write(jas_stream_obj_t *obj, const char *buf, unsigned int cnt) +#endif { obj; return iwrite(buf, 1, cnt); } +#ifdef __APPLE__ static long iJp2_file_seek(jas_stream_obj_t *obj, long offset, int origin) +#else +static long iJp2_file_seek(void *obj, long offset, int origin) +#endif { obj; @@ -343,7 +354,11 @@ static long iJp2_file_seek(jas_stream_obj_t *obj, long offset, int origin) return 0; // Failed } +#ifdef __APPLE__ +static int iJp2_file_close(void *obj) +#else static int iJp2_file_close(jas_stream_obj_t *obj) +#endif { obj; return 0; // We choose when we want to close the file. ================================================ FILE: ports/devil/0005-fix-pkgconfig.patch ================================================ diff --git a/DevIL/src-IL/CMakeLists.txt b/DevIL/src-IL/CMakeLists.txt index 4accaa1..c3a1874 100644 --- a/DevIL/src-IL/CMakeLists.txt +++ b/DevIL/src-IL/CMakeLists.txt @@ -160,6 +160,27 @@ if(WIN32) # Linux uses libIL.so, libILU.so, and libILUT.so, but Windows uses # DevIL.dll, ILU.dll, and ILUT.dll. set_target_properties(IL PROPERTIES OUTPUT_NAME "DevIL") + + configure_file(${CMAKE_CURRENT_LIST_DIR}/pkgconfig/IL.pc.cmake.in ${CMAKE_CURRENT_LIST_DIR}/pkgconfig/DevIL.pc.cmake.in COPYONLY) + + file(READ ${CMAKE_CURRENT_LIST_DIR}/pkgconfig/DevIL.pc.cmake.in PKGCONFIG_FILE) + string(REPLACE "IL" "DevIL" PKGCONFIG_FILE "${PKGCONFIG_FILE}") + file(WRITE ${CMAKE_CURRENT_LIST_DIR}/pkgconfig/DevIL.pc.cmake.in "${PKGCONFIG_FILE}") + + file(READ ${CMAKE_CURRENT_LIST_DIR}/../src-ILU/pkgconfig/ILU.pc.cmake.in PKGCONFIG_FILE) + string(REPLACE "Requires: IL" "Requires: DevIL" PKGCONFIG_FILE "${PKGCONFIG_FILE}") + string(REPLACE "Libs.private: -lIL" "Libs.private: -lDevIL" PKGCONFIG_FILE "${PKGCONFIG_FILE}") + file(WRITE ${CMAKE_CURRENT_LIST_DIR}/../src-ILU/pkgconfig/ILU.pc.cmake.in "${PKGCONFIG_FILE}") + + file(READ ${CMAKE_CURRENT_LIST_DIR}/../src-ILUT/pkgconfig/ILUT.pc.cmake.in PKGCONFIG_FILE) + string(REPLACE "Requires: IL" "Requires: DevIL" PKGCONFIG_FILE "${PKGCONFIG_FILE}") + string(REPLACE "Libs.private: -lIL" "Libs.private: -lDevIL" PKGCONFIG_FILE "${PKGCONFIG_FILE}") + file(WRITE ${CMAKE_CURRENT_LIST_DIR}/../src-ILUT/pkgconfig/ILUT.pc.cmake.in "${PKGCONFIG_FILE}") + set(PKGCFG_IN_FILE pkgconfig/DevIL.pc.cmake.in) + set(PKGCFG_FILE DevIL.pc) +else(WIN32) + set(PKGCFG_IN_FILE pkgconfig/IL.pc.cmake.in) + set(PKGCFG_FILE IL.pc) endif(WIN32) if(UNICODE) @@ -246,8 +267,8 @@ endif() # TODO: add Requires.private or Libs.private # (needed to support static linking?) # TODO: sort out version number -configure_file( pkgconfig/IL.pc.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/IL.pc @ONLY) +configure_file( ${PKGCFG_IN_FILE} + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCFG_FILE} @ONLY) # Installation @@ -259,7 +280,7 @@ install (TARGETS IL install (FILES ../include/IL/il.h DESTINATION include/IL) install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/IL.pc + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCFG_FILE} DESTINATION lib/pkgconfig ) ================================================ FILE: ports/devil/0006-fix-ilut-header.patch ================================================ diff --git a/DevIL/src-ILUT/CMakeLists.txt b/DevIL/src-ILUT/CMakeLists.txt index 398d3c1..617c8d8 100644 --- a/DevIL/src-ILUT/CMakeLists.txt +++ b/DevIL/src-ILUT/CMakeLists.txt @@ -77,6 +77,7 @@ install (TARGETS ILUT RUNTIME DESTINATION bin ) install (FILES ../include/IL/ilut.h DESTINATION include/IL) +install (FILES ../include/IL/ilut_config.h DESTINATION include/IL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ILUT.pc ================================================ FILE: ports/devil/0007-remove_register_keyword_cpp17.patch ================================================ diff --git a/DevIL/src-IL/src/il_manip.cpp b/DevIL/src-IL/src/il_manip.cpp index 79acc99..229a692 100644 --- a/DevIL/src-IL/src/il_manip.cpp +++ b/DevIL/src-IL/src/il_manip.cpp @@ -37,9 +37,9 @@ ILushort ILAPIENTRY ilFloatToHalf(ILuint i) { // of float and half (127 versus 15). // - register int s = (i >> 16) & 0x00008000; - register int e = ((i >> 23) & 0x000000ff) - (127 - 15); - register int m = i & 0x007fffff; + int s = (i >> 16) & 0x00008000; + int e = ((i >> 23) & 0x000000ff) - (127 - 15); + int m = i & 0x007fffff; // // Now reassemble s, e and m into a half: diff --git a/DevIL/src-ILU/src/ilu_scaling.cpp b/DevIL/src-ILU/src/ilu_scaling.cpp index c2893a3..ef35c13 100644 --- a/DevIL/src-ILU/src/ilu_scaling.cpp +++ b/DevIL/src-ILU/src/ilu_scaling.cpp @@ -406,7 +406,7 @@ main(argc, argv) int argc; char *argv[]; { - register int c; + int c; int optind; char *optarg; int xsize = 0, ysize = 0; ================================================ FILE: ports/devil/enable-static.patch ================================================ diff --git a/DevIL/src-ILU/CMakeLists.txt b/DevIL/src-ILU/CMakeLists.txt index 17a3afe..a46ab41 100644 --- a/DevIL/src-ILU/CMakeLists.txt +++ b/DevIL/src-ILU/CMakeLists.txt @@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILU_INC} ) source_group("Resource Files" FILES ${ILU_RSRC} ) # Remove SHARED to create a static library -add_library(ILU SHARED ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) +add_library(ILU ${ILU_SRCS} ${ILU_INC} ${ILU_RSRC}) ## ILU requires IL diff --git a/DevIL/src-ILUT/CMakeLists.txt b/DevIL/src-ILUT/CMakeLists.txt index 21470cb..398d3c1 100644 --- a/DevIL/src-ILUT/CMakeLists.txt +++ b/DevIL/src-ILUT/CMakeLists.txt @@ -43,7 +43,7 @@ source_group("Header Files" FILES ${ILUT_INC} ) source_group("Resource Files" FILES ${ILUT_RSRC} ) # Remove SHARED to create a static library -add_library(ILUT SHARED ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) +add_library(ILUT ${ILUT_SRCS} ${ILUT_INC} ${ILUT_RSRC}) ## add link sub library info target_link_libraries(ILUT ================================================ FILE: ports/devil/jasper-4.patch ================================================ diff --git a/DevIL/src-IL/src/il_jp2.cpp b/DevIL/src-IL/src/il_jp2.cpp index a419c1484..7b7e3cb12 100644 --- a/DevIL/src-IL/src/il_jp2.cpp +++ b/DevIL/src-IL/src/il_jp2.cpp @@ -314,9 +314,9 @@ ILboolean iLoadJp2Internal(jas_stream_t *Stream, ILimage *Image) #ifdef __APPLE__ -static int iJp2_file_read(void *obj, char *buf, unsigned int cnt) +static ssize_t iJp2_file_read(void *obj, char *buf, size_t cnt) #else -static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, unsigned int cnt) +static ssize_t iJp2_file_read(jas_stream_obj_t *obj, char *buf, size_t cnt) #endif { obj; @@ -324,9 +324,9 @@ static int iJp2_file_read(jas_stream_obj_t *obj, char *buf, unsigned int cnt) } #ifdef __APPLE__ -static int iJp2_file_write(void *obj, const char *buf, unsigned int cnt) +static ssize_t iJp2_file_write(void *obj, const char *buf, size_t cnt) #else -static int iJp2_file_write(jas_stream_obj_t *obj, const char *buf, unsigned int cnt) +static ssize_t iJp2_file_write(jas_stream_obj_t *obj, const char *buf, size_t cnt) #endif { obj; ================================================ FILE: ports/devil/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DentonW/DevIL REF v1.8.0 SHA512 4aed5e50a730ece8b1eb6b2f6204374c6fb6f5334cf7c880d84c0f79645ea7c6b5118f57a7868a487510fc59c452f51472b272215d4c852f265f58b5857e17c7 HEAD_REF master PATCHES 0001_fix-encoding.patch 0002_fix-missing-mfc-includes.patch 0003_fix-openexr.patch enable-static.patch 0004_compatible-jasper-2-0-20.patch 0005-fix-pkgconfig.patch 0006-fix-ilut-header.patch jasper-4.patch 0007-remove_register_keyword_cpp17.patch ) file(REMOVE "${SOURCE_PATH}/DevIL/src-IL/cmake/FindOpenEXR.cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES INVERTED_FEATURES libpng IL_NO_PNG tiff IL_NO_TIF libjpeg IL_NO_JPG openexr IL_NO_EXR jasper IL_NO_JP2 lcms IL_NO_LCMS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/DevIL" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DIL_NO_MNG=ON -DIL_USE_DXTC_NVIDIA=OFF -DIL_USE_DXTC_SQUISH=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/devil/vcpkg.json ================================================ { "name": "devil", "version": "1.8.0", "port-version": 13, "description": "A full featured cross-platform image library", "homepage": "https://github.com/DentonW/DevIL", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "jasper", "lcms", "libjpeg", "libpng", "openexr", "tiff" ], "features": { "jasper": { "description": "Use JasPer for .jp2 (and some .icns) support", "dependencies": [ "jasper" ] }, "lcms": { "description": "Use Little CMS for color profiles", "dependencies": [ "lcms" ] }, "libjpeg": { "description": "Use Libjpeg for .jpg (and some .blp) support", "dependencies": [ "libjpeg-turbo" ] }, "libpng": { "description": "Use Libpng for .png (and some .ico)", "dependencies": [ "libpng" ] }, "openexr": { "description": " Use openexr", "dependencies": [ "openexr" ] }, "tiff": { "description": "Use Libtiff for .tif support", "dependencies": [ { "name": "tiff", "default-features": false } ] } } } ================================================ FILE: ports/dimcli/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gknowles/dimcli REF "v${VERSION}" SHA512 fff7ac643b42c9c4464ac34c80369ef1e3d9d87677a3c7c660fd6a697b57348599b445794ac278d87a9a8d31c00adfded5932ecaa54e8ed918cb4665023fd8d5 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" staticCrt) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DLINK_STATIC_RUNTIME:BOOL=${staticCrt} -DINSTALL_LIBS:BOOL=ON -DBUILD_PROJECT_NAME=dimcli -DBUILD_TESTING=OFF -DINSTALL_TOOLS=OFF -DINSTALL_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Remove includes from ${CMAKE_INSTALL_PREFIX}/debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/dimcli/vcpkg.json ================================================ { "name": "dimcli", "version-semver": "7.3.0", "description": "C++ command line parser toolkit", "homepage": "https://github.com/gknowles/dimcli", "documentation": "https://gknowles.github.io/dimcli", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/dingo/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO romanpauk/dingo REF "v${VERSION}" HEAD_REF master SHA512 a302e8e504a9f0a863c729432a479134ade96198af48219064d8f3f1e18ef78541e93048811865cd8cb878e5a0837ed98425e7481fd08726806e6b72aa57f908 ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dingo/vcpkg.json ================================================ { "name": "dingo", "version": "0.1.0", "description": "Dependency Injection Container for C++", "homepage": "https://github.com/romanpauk/dingo", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/directfb2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO directfb2/DirectFB2 REF "7d4682d0cc092ed2f28c903175d1a0c104e9e9a8" # no release tag available yet in upstream: https://github.com/directfb2/DirectFB2/issues/162 SHA512 b57c43559992fc7594ca2806dd07c547c13260e7286791eadf64ec75631cb7d61d049d17644e714702919aaee82850387d08fc92b97b8a8a595981faf0c8f4a5 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_clean_executables_in_bin(FILE_NAMES dfb-update-pkgconfig) ================================================ FILE: ports/directfb2/vcpkg.json ================================================ { "name": "directfb2", "version-date": "2025-11-25", "description": "A graphics library designed with embedded systems in mind. Clean and drop-in successor to DirectFB", "homepage": "https://github.com/directfb2/DirectFB2", "supports": "linux & !android", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/directx-dxc/directx-dxc-config.cmake.in ================================================ get_filename_component(_dxc_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_dxc_root "${_dxc_root}" PATH) set(DIRECTX_DXC_TOOL "${_dxc_root}/@tool_path@" CACHE PATH "Location of the dxc tool") mark_as_advanced(DIRECTX_DXC_TOOL) add_library(Microsoft::DirectXShaderCompiler SHARED IMPORTED) set_target_properties(Microsoft::DirectXShaderCompiler PROPERTIES IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LOCATION_DEBUG "${_dxc_root}/@dll_debug_dir@/@dll_name_dxc@" IMPORTED_LOCATION_RELEASE "${_dxc_root}/@dll_dir@/@dll_name_dxc@" IMPORTED_IMPLIB "${_dxc_root}/lib/@lib_name@" IMPORTED_SONAME "@lib_name@" INTERFACE_INCLUDE_DIRECTORIES "${_dxc_root}/include/directx-dxc" INTERFACE_LINK_LIBRARIES "Microsoft::DXIL" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::DXIL SHARED IMPORTED) set_target_properties(Microsoft::DXIL PROPERTIES IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LOCATION_DEBUG "${_dxc_root}/@dll_debug_dir@/@dll_name_dxil@" IMPORTED_LOCATION_RELASE "${_dxc_root}/@dll_dir@/@dll_name_dxil@" IMPORTED_IMPLIB "${_dxc_root}/lib/@lib_name@" IMPORTED_NO_SONAME TRUE INTERFACE_INCLUDE_DIRECTORIES "${_dxc_root}/include/directx-dxc" IMPORTED_LINK_INTERFACE_LANGUAGES "C") unset(_dxc_root) ================================================ FILE: ports/directx-dxc/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) set(DIRECTX_DXC_TAG v1.9.2602) set(DIRECTX_DXC_VERSION 2026_02_20) if (NOT VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") message(STATUS "Note: ${PORT} always requires dynamic library linkage at runtime.") endif() if (VCPKG_TARGET_IS_LINUX) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/microsoft/DirectXShaderCompiler/releases/download/${DIRECTX_DXC_TAG}/linux_dxc_${DIRECTX_DXC_VERSION}.x86_64.tar.gz" FILENAME "linux_dxc_${DIRECTX_DXC_VERSION}.tar.gz" SHA512 74e1d310e3ece2b29ca6ed8836ffd99160d35f8aac4bc23e72f3a12d4f1311fc6ff405ad55683187f98a871bdac10e1342d2cd1aac05bdb3d2a81131091618cf ) else() vcpkg_download_distfile(ARCHIVE URLS "https://github.com/microsoft/DirectXShaderCompiler/releases/download/${DIRECTX_DXC_TAG}/dxc_${DIRECTX_DXC_VERSION}.zip" FILENAME "dxc_${DIRECTX_DXC_VERSION}.zip" SHA512 47c34ff760080f5121496db4a6b92cce88dfaaf8b16075ffb3e4487ad7b1433d4b36c4deaab55846fd9f3f01ae5e0ed71474fc538b6cad79055d66c3dc5021e8 ) endif() vcpkg_download_distfile( LICENSE_TXT URLS "https://raw.githubusercontent.com/microsoft/DirectXShaderCompiler/${DIRECTX_DXC_TAG}/LICENSE.TXT" FILENAME "LICENSE.${DIRECTX_DXC_VERSION}" SHA512 9feaa85ca6d42d5a2d6fe773706bbab8241e78390a9d61ea9061c8f0eeb5a3e380ff07c222e02fbf61af7f2b2f6dd31c5fc87247a94dae275dc0a20cdfcc8c9d ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) if (VCPKG_TARGET_IS_LINUX) file(INSTALL "${PACKAGE_PATH}/include/dxc/dxcapi.h" "${PACKAGE_PATH}/include/dxc/dxcerrors.h" "${PACKAGE_PATH}/include/dxc/dxcisense.h" "${PACKAGE_PATH}/include/dxc/WinAdapter.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(INSTALL "${PACKAGE_PATH}/lib/libdxcompiler.so" "${PACKAGE_PATH}/lib/libdxil.so" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(NOT DEFINED VCPKG_BUILD_TYPE) file(INSTALL "${PACKAGE_PATH}/lib/libdxcompiler.so" "${PACKAGE_PATH}/lib/libdxil.so" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${PACKAGE_PATH}/bin/dxc" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) set(dll_name_dxc "libdxcompiler.so") set(dll_name_dxil "libdxil.so") set(dll_dir "lib") if(NOT DEFINED VCPKG_BUILD_TYPE) set(dll_debug_dir "debug/lib") else() set(dll_debug_dir "lib") endif() set(lib_name "libdxcompiler.so") set(tool_path "tools/${PORT}/dxc") else() # VCPKG_TARGET_IS_WINDOWS if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(DXC_ARCH arm64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(DXC_ARCH x86) else() set(DXC_ARCH x64) endif() file(INSTALL "${PACKAGE_PATH}/inc/dxcapi.h" "${PACKAGE_PATH}/inc/dxcerrors.h" "${PACKAGE_PATH}/inc/dxcisense.h" "${PACKAGE_PATH}/inc/d3d12shader.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(INSTALL "${PACKAGE_PATH}/lib/${DXC_ARCH}/dxcompiler.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(NOT DEFINED VCPKG_BUILD_TYPE) file(INSTALL "${PACKAGE_PATH}/lib/${DXC_ARCH}/dxcompiler.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll" "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") if(NOT DEFINED VCPKG_BUILD_TYPE) file(INSTALL "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll" "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/") file(INSTALL "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxc.exe" "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxcompiler.dll" "${PACKAGE_PATH}/bin/${DXC_ARCH}/dxil.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/") set(dll_name_dxc "dxcompiler.dll") set(dll_name_dxil "dxil.dll") set(dll_dir "bin") set(dll_debug_dir "bin") set(lib_name "dxcompiler.lib") set(tool_path "tools/${PORT}/dxc.exe") endif() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") configure_file("${CMAKE_CURRENT_LIST_DIR}/directx-dxc-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${LICENSE_TXT}") ================================================ FILE: ports/directx-dxc/usage ================================================ The DirectX Shader Compiler package provides CMake targets: find_package(directx-dxc CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXShaderCompiler) The CMake variable DIRECTX_DXC_TOOL is also set to point to the appropriate DXC command-line tool. ================================================ FILE: ports/directx-dxc/vcpkg.json ================================================ { "name": "directx-dxc", "version-date": "2026-02-20", "description": "DirectX Shader Compiler (LLVM/Clang)", "homepage": "https://github.com/microsoft/DirectXShaderCompiler", "documentation": "https://github.com/microsoft/DirectXShaderCompiler/wiki", "license": null, "supports": "(windows & !arm32 & !uwp & !xbox) | (linux & x64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "zlib", "platform": "linux & !static" } ] } ================================================ FILE: ports/directx-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectX-Headers REF v${VERSION} SHA512 3c907ca4aa34dd6775321bc71267c041ab87a1d981c09ca53f8974891f4b47d01e35fefd164280da7ad7497e1c827d8bed4797ca1015c44a8aa563fa38055ec0 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DDXHEADERS_INSTALL=ON -DDXHEADERS_BUILD_TEST=OFF -DDXHEADERS_BUILD_GOOGLE_TEST=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directx-headers/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directx-headers/usage ================================================ The DirectX Headers package provides CMake targets: find_package(directx-headers CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectX-Headers) ================================================ FILE: ports/directx-headers/vcpkg.json ================================================ { "name": "directx-headers", "version": "1.619.1", "description": "Official DirectX 12 Headers", "homepage": "https://devblogs.microsoft.com/directx/", "documentation": "https://devblogs.microsoft.com/directx/gettingstarted-dx12agility/", "license": "MIT", "supports": "(windows & !arm32 & !xbox) | linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/directx12-agility/directx12-config.cmake.in ================================================ get_filename_component(_dx12_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_dx12_root "${_dx12_root}" PATH) get_filename_component(_dx12_root "${_dx12_root}" PATH) if (EXISTS "${_dx12_root}/bin/D3D12Core.dll") find_library(D3D12_LIB NAMES d3d12) if("${D3D12_LIB}" STREQUAL "D3D12_LIB-NOTFOUND") message(FATAL_ERROR "D3D12.LIB import library from the Windows SDK is required") endif() add_library(Microsoft::DirectX12-Core SHARED IMPORTED) set_target_properties(Microsoft::DirectX12-Core PROPERTIES IMPORTED_LOCATION_RELEASE "${_dx12_root}/bin/D3D12Core.dll" IMPORTED_LOCATION_DEBUG "${_dx12_root}/debug/bin/D3D12Core.dll" IMPORTED_IMPLIB "${D3D12_LIB}" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::DirectX12-Layers SHARED IMPORTED) set_target_properties(Microsoft::DirectX12-Layers PROPERTIES IMPORTED_LOCATION_RELEASE "${_dx12_root}/debug/bin/d3d12SDKLayers.dll" IMPORTED_LOCATION_DEBUG "${_dx12_root}/debug/bin/d3d12SDKLayers.dll" IMPORTED_IMPLIB "${D3D12_LIB}" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::DirectX12-Agility INTERFACE IMPORTED) set_target_properties(Microsoft::DirectX12-Agility PROPERTIES INTERFACE_LINK_LIBRARIES "Microsoft::DirectX12-Core;Microsoft::DirectX12-Layers") set(directx12-agility_FOUND TRUE) else() set(directx12-agility_FOUND FALSE) endif() unset(_dx12_root) ================================================ FILE: ports/directx12-agility/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # headers are provided by the directx-headers port set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) # DX12 SDK Debug Layer is an extra DLL vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.Direct3D.D3D12/${VERSION}" FILENAME "Microsoft.Direct3D.D3D12.${VERSION}.zip" SHA512 fd6ed5a200c1589d91c85b35bb0018117695ac2c3858e8dd4fb3247e4cba94bc3c09325ccbf246aac9a37754f0bf9fb69f94199dc9a2ad42d534ad6e2d367770 ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(REDIST_ARCH arm64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(REDIST_ARCH win32) else() set(REDIST_ARCH x64) endif() file(COPY "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/D3D12Core.dll" "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/D3D12Core.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/D3D12Core.dll" "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/D3D12Core.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/d3d12SDKLayers.dll" "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/d3d12SDKLayers.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(COPY "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/d3dconfig.exe" "${PACKAGE_PATH}/build/native/bin/${REDIST_ARCH}/d3dconfig.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/tools//${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") message(STATUS "BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS: https://www.nuget.org/packages/Microsoft.Direct3D.D3D12/${VERSION}/License") configure_file("${CMAKE_CURRENT_LIST_DIR}/directx12-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) ================================================ FILE: ports/directx12-agility/usage ================================================ The DirectX 12 Agility SDK package provides CMake targets: find_package(directx-headers CONFIG REQUIRED) find_package(directx12-agility CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectX-Headers Microsoft::DirectX-Guids Microsoft::DirectX12-Agility) if(TARGET Microsoft::DirectX12-Agility) file(MAKE_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/D3D12") add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ $/D3D12 COMMAND ${CMAKE_COMMAND} -E copy $ $/D3D12 COMMAND_EXPAND_LISTS ) endif() ================================================ FILE: ports/directx12-agility/vcpkg.json ================================================ { "name": "directx12-agility", "version": "1.619.1", "description": "DirectX 12 Agility SDK", "homepage": "https://aka.ms/directx12agility", "documentation": "https://devblogs.microsoft.com/directx/gettingstarted-dx12agility/", "license": null, "supports": "windows & !uwp & !xbox & !arm32", "dependencies": [ "directx-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/directxmath/Linux-SHMath-SAL.patch ================================================ diff --git a/SHMath/CMakeLists.txt b/SHMath/CMakeLists.txt index 8a21ee7..5d9ea30 100644 --- a/SHMath/CMakeLists.txt +++ b/SHMath/CMakeLists.txt @@ -217,3 +217,13 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") target_compile_options(${PROJECT_NAME} PRIVATE $<$:/Zc:templateScope>) endif() endif() + +if(NOT WIN32) + file(DOWNLOAD + https://raw.githubusercontent.com/dotnet/runtime/v9.0.2/src/coreclr/pal/inc/rt/sal.h + "${CMAKE_CURRENT_BINARY_DIR}/sal/sal.h" + EXPECTED_HASH SHA512=8085f67bfa4ce01ae89461cadf72454a9552fde3f08b2dcc3de36b9830e29ce7a6192800f8a5cb2a66af9637be0017e85719826a4cfdade508ae97f319e0ee8e + ) + + target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/sal") +endif() -- 2.49.0.windows.1 ================================================ FILE: ports/directxmath/MinGW-fix.patch ================================================ diff --git a/SHMath/CMakeLists.txt b/SHMath/CMakeLists.txt index dc5cb6d..aa6d4a0 100644 --- a/SHMath/CMakeLists.txt +++ b/SHMath/CMakeLists.txt @@ -73,7 +73,7 @@ target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_11) target_link_libraries(${PROJECT_NAME} PRIVATE DirectXMath) -if(MINGW) +if(MINGW AND BUILD_DX12) find_package(directx-headers CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Microsoft::DirectX-Headers) target_compile_definitions(${PROJECT_NAME} PUBLIC USING_DIRECTX_HEADERS) -- 2.49.0.windows.1 ================================================ FILE: ports/directxmath/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXMath REF apr2025 SHA512 c7d3b107180b269c5c4e823fa51d96a316dc35cace3cb13f030022d9096c9465e8a770559419176692b047574fd67c96d8527abd8817998264a149eee0b88c9d HEAD_REF main PATCHES MinGW-fix.patch Linux-SHMath-SAL.patch powerpc64le.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xdsp BUILD_XDSP dx11 BUILD_DX11 dx12 BUILD_DX12 ) set(EXTRA_OPTIONS "") if(("dx11" IN_LIST FEATURES) OR ("dx12" IN_LIST FEATURES)) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) list(APPEND EXTRA_OPTIONS -DBUILD_SHMATH=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} MAYBE_UNUSED_VARIABLES BUILD_DX11 BUILD_DX12 ) vcpkg_cmake_install() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/DirectXMath.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/share/pkgconfig") vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directxmath) if(("dx11" IN_LIST FEATURES) OR ("dx12" IN_LIST FEATURES)) vcpkg_cmake_config_fixup(CONFIG_PATH share/directxsh) endif() if("xdsp" IN_LIST FEATURES) vcpkg_cmake_config_fixup(CONFIG_PATH share/xdsp) endif() if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile( SAL_HEADER URLS "https://raw.githubusercontent.com/dotnet/runtime/v9.0.2/src/coreclr/pal/inc/rt/sal.h" FILENAME "sal.h" SHA512 8085f67bfa4ce01ae89461cadf72454a9552fde3f08b2dcc3de36b9830e29ce7a6192800f8a5cb2a66af9637be0017e85719826a4cfdade508ae97f319e0ee8e ) file(INSTALL ${DOWNLOADS}/sal.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) endif() if(("dx11" IN_LIST FEATURES) OR ("dx12" IN_LIST FEATURES)) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if(("dx11" IN_LIST FEATURES) OR ("dx12" IN_LIST FEATURES)) file(READ "${CMAKE_CURRENT_LIST_DIR}/shmathusage" USAGE_CONTENT) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" ${USAGE_CONTENT}) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directxmath/powerpc64le.patch ================================================ --- a/Inc/DirectXMath.h +++ b/Inc/DirectXMath.h @@ -82,7 +82,7 @@ #endif #if !defined(_XM_ARM_NEON_INTRINSICS_) && !defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_) -#if (defined(_M_IX86) || defined(_M_X64) || __i386__ || __x86_64__) && !defined(_M_HYBRID_X86_ARM64) && !defined(_M_ARM64EC) +#if (defined(_M_IX86) || defined(_M_X64) || __i386__ || __x86_64__ || __powerpc64__) && !defined(_M_HYBRID_X86_ARM64) && !defined(_M_ARM64EC) #define _XM_SSE_INTRINSICS_ #elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_HYBRID_X86_ARM64) || defined(_M_ARM64EC) || __arm__ || __aarch64__ #define _XM_ARM_NEON_INTRINSICS_ @@ -213,7 +213,7 @@ #define XM_PERMUTE_PS( v, c ) _mm_shuffle_ps((v), (v), c ) #endif -#if defined(__GNUC__) && !defined(__clang__) && (__GNUC__ < 11) +#if (defined(__GNUC__) && !defined(__clang__) && (__GNUC__ < 11)) || defined(__powerpc64__) #define XM_LOADU_SI16( p ) _mm_cvtsi32_si128(*reinterpret_cast(p)) #else #define XM_LOADU_SI16( p ) _mm_loadu_si16(p) --- a/Inc/DirectXMathMisc.inl +++ b/Inc/DirectXMathMisc.inl @@ -1971,7 +1971,7 @@ inline bool XMVerifyCPUSupport() noexcept { -#if defined(_XM_SSE_INTRINSICS_) && !defined(_XM_NO_INTRINSICS_) +#if defined(_XM_SSE_INTRINSICS_) && !defined(__powerpc64__) && !defined(_XM_NO_INTRINSICS_) int CPUInfo[4] = { -1 }; #if (defined(__clang__) || defined(__GNUC__)) && defined(__cpuid) __cpuid(0, CPUInfo[0], CPUInfo[1], CPUInfo[2], CPUInfo[3]); ================================================ FILE: ports/directxmath/shmathusage ================================================ find_package(directxmath CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXSH) ================================================ FILE: ports/directxmath/usage ================================================ The DirectXMath package provides CMake targets: find_package(directxmath CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXMath) ================================================ FILE: ports/directxmath/vcpkg.json ================================================ { "name": "directxmath", "version-date": "2026-03-12", "description": "DirectXMath SIMD C++ math library", "homepage": "https://github.com/Microsoft/DirectXMath", "documentation": "https://docs.microsoft.com/windows/win32/dxmath/directxmath-portal", "license": "MIT", "supports": "!arm32", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dx11": { "description": "C++ Spherical Harmonics Math Library for DirectX 11", "supports": "windows & !xbox" }, "dx12": { "description": "C++ Spherical Harmonics Math Library for DirectX 12", "supports": "(windows & !arm32) | linux", "dependencies": [ { "name": "directx-headers", "platform": "windows & !xbox" } ] }, "xdsp": { "description": "XDSP Digital Signal Processing (DSP) for DirectXMath" } } } ================================================ FILE: ports/directxmesh/portfile.cmake ================================================ set(DIRECTXMESH_TAG oct2025) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXMesh REF ${DIRECTXMESH_TAG} SHA512 bc5f2e399e09c792ae4859698dddb6debb9ce7c5a96cd3b368511529bd24272e20c8bc889523b401198556b5a3fb40e09904d5316de27317d87e36c785fbfec7 HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dx12 BUILD_DX12 spectre ENABLE_SPECTRE_MITIGATION tools BUILD_TOOLS ) if (VCPKG_HOST_IS_LINUX) message(WARNING "Build ${PORT} requires GCC version 9 or later") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directxmesh) if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/directxmesh/") if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) vcpkg_download_distfile( MESHCONVERT_EXE URLS "https://github.com/Microsoft/DirectXMesh/releases/download/${DIRECTXMESH_TAG}/meshconvert.exe" FILENAME "meshconvert-${DIRECTXMESH_TAG}.exe" SHA512 3240fbf63c6349b2fa1f2806ea0ab789edae1abe4c48a553c7f77796b2cdc08e5c4078f05936ea18bebd9482e7753ed6fb9adfe9dce06da8c9e90aaa7ede4c9e ) file(INSTALL "${MESHCONVERT_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxmesh/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxmesh/meshconvert-${DIRECTXMESH_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxmesh/meshconvert.exe") elseif((VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) OR (VCPKG_TARGET_ARCHITECTURE STREQUAL arm64ec)) vcpkg_download_distfile( MESHCONVERT_EXE URLS "https://github.com/Microsoft/DirectXMesh/releases/download/${DIRECTXMESH_TAG}/meshconvert_arm64.exe" FILENAME "meshconvert-${DIRECTXMESH_TAG}-arm64.exe" SHA512 c3267992f5796f9d924120f1e84ba75322a3a373b2e8dc25e427cb8a8d79483139709c95b63431f54963ec97bdb9044782c52141e6ac25a3b87b99c3a139d4ad ) file(INSTALL "${MESHCONVERT_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxmesh/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxmesh/meshconvert-${DIRECTXMESH_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxmesh/meshconvert.exe") else() vcpkg_copy_tools( TOOL_NAMES meshconvert SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin" ) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directxmesh/usage ================================================ The DirectXMesh package provides CMake targets: find_package(directxmesh CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXMesh) The utilities headers FlexibleVertexFormat.h and WaveFrontReader.h have their own target: target_link_libraries(main PRIVATE Microsoft::DirectXMesh::Utilities) ================================================ FILE: ports/directxmesh/vcpkg.json ================================================ { "name": "directxmesh", "version-date": "2025-10-27", "description": "DirectXMesh geometry processing library", "homepage": "https://github.com/Microsoft/DirectXMesh", "documentation": "https://github.com/microsoft/DirectXMesh/wiki", "license": "MIT", "supports": "(windows & !arm32) | linux", "dependencies": [ { "name": "directx-headers", "platform": "mingw | linux" }, "directxmath", { "name": "ms-gdkx", "platform": "xbox" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dx12": { "description": "Build with DirectX12 support for Windows 10/Windows 11", "dependencies": [ { "name": "directx-headers", "platform": "windows & !xbox" } ] }, "spectre": { "description": "Build Spectre-mitigated library" }, "tools": { "description": "meshconvert command-line tool", "supports": "windows & !uwp & !xbox" } } } ================================================ FILE: ports/directxsdk/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/dxsdk-d3dx/copyright") message(FATAL_ERROR "Can't build ${PORT} if dxsdk-d3dx is installed. Please remove dxsdk-d3dx, and try to install ${PORT} again if you need it.") endif() message(WARNING "Build ${PORT} is deprecated, untested in CI, and requires the use of the DirectSetup legacy REDIST solution. See https://aka.ms/dxsdk for more information.") vcpkg_download_distfile(ARCHIVE URLS "https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe" FILENAME "DXSDK_Jun10_SHA256.exe" SHA512 24e1e9bda319b780124b865f4640822cfc44e4d18fbdcc8456d48fe54081652ce4ddb63d3bd8596351057cbae50fc824b8297e99f0f7c97547153162562ba73f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) # See https://walbourn.github.io/the-zombie-directx-sdk/ set(INC_DIR "${SOURCE_PATH}/Include") set(LIB_DIR "${SOURCE_PATH}/Lib/${VCPKG_TARGET_ARCHITECTURE}") set(HEADERS ${INC_DIR}/audiodefs.h ${INC_DIR}/comdecl.h ${INC_DIR}/D3DX10.h ${INC_DIR}/d3dx10async.h ${INC_DIR}/D3DX10core.h ${INC_DIR}/D3DX10math.h ${INC_DIR}/D3DX10math.inl ${INC_DIR}/D3DX10mesh.h ${INC_DIR}/D3DX10tex.h ${INC_DIR}/D3DX11.h ${INC_DIR}/D3DX11async.h ${INC_DIR}/D3DX11core.h ${INC_DIR}/D3DX11tex.h ${INC_DIR}/d3d9.h ${INC_DIR}/d3d9types.h ${INC_DIR}/d3dx9.h ${INC_DIR}/d3dx9anim.h ${INC_DIR}/d3dx9core.h ${INC_DIR}/d3dx9effect.h ${INC_DIR}/d3dx9math.h ${INC_DIR}/d3dx9math.inl ${INC_DIR}/d3dx9mesh.h ${INC_DIR}/d3dx9shader.h ${INC_DIR}/d3dx9shape.h ${INC_DIR}/d3dx9tex.h ${INC_DIR}/d3dx9xof.h ${INC_DIR}/D3DX_DXGIFormatConvert.inl ${INC_DIR}/dsetup.h ${INC_DIR}/dxdiag.h ${INC_DIR}/DxErr.h ${INC_DIR}/dxfile.h ${INC_DIR}/dxsdkver.h ${INC_DIR}/PIXPlugin.h ${INC_DIR}/rmxfguid.h ${INC_DIR}/rmxftmpl.h ${INC_DIR}/xact3.h ${INC_DIR}/xact3d3.h ${INC_DIR}/xact3wb.h ${INC_DIR}/XDSP.h ${INC_DIR}/xma2defs.h) set(DEBUG_LIBS ${LIB_DIR}/d3dx10d.lib ${LIB_DIR}/d3dx11d.lib ${LIB_DIR}/d3dx9d.lib ) set(RELEASE_LIBS ${LIB_DIR}/d3dx10.lib ${LIB_DIR}/d3dx11.lib ${LIB_DIR}/d3dx9.lib ) set(OTHER_LIBS ${LIB_DIR}/d3d9.lib ${LIB_DIR}/d3dxof.lib ${LIB_DIR}/DxErr.lib ) if(${VCPKG_TARGET_ARCHITECTURE} STREQUAL "x86") list(APPEND OTHER_LIBS ${LIB_DIR}/dsetup.lib) endif() set(XINPUT13_HEADER ${INC_DIR}/XInput.h) set(XINPUT13_LIB ${LIB_DIR}/XInput.lib) set(XAUDIO27_HEADERS ${INC_DIR}/X3DAudio.h ${INC_DIR}/XAPO.h ${INC_DIR}/XAPOBase.h ${INC_DIR}/XAPOFX.h ${INC_DIR}/XAudio2.h ${INC_DIR}/XAudio2fx.h) set(XAUDIO27_DEBUG_LIBS ${LIB_DIR}/xapobased.lib) set(XAUDIO27_RELEASE_LIBS ${LIB_DIR}/xapobase.lib) set(XAUDIO27_OTHER_LIBS ${LIB_DIR}/X3DAudio.lib ${LIB_DIR}/XAPOFX.lib ) set(XP_HEADERS ${INC_DIR}/D3D10.h ${INC_DIR}/D3D10effect.h ${INC_DIR}/d3d10misc.h ${INC_DIR}/d3d10sdklayers.h ${INC_DIR}/D3D10shader.h ${INC_DIR}/D3D10_1.h ${INC_DIR}/D3D10_1shader.h ${INC_DIR}/D3D11.h ${INC_DIR}/D3D11SDKLayers.h ${INC_DIR}/D3D11Shader.h ${INC_DIR}/D3Dcommon.h ${INC_DIR}/D3Dcompiler.h ${INC_DIR}/D3DCSX.h ${INC_DIR}/D3DX_DXGIFormatConvert.inl ${INC_DIR}/xnamath.h ${INC_DIR}/xnamathconvert.inl ${INC_DIR}/xnamathmatrix.inl ${INC_DIR}/xnamathmisc.inl ${INC_DIR}/xnamathvector.inl) set(XP_DEBUG_LIBS ${LIB_DIR}/D3DCSXd.lib) set(XP_RELEASE_LIBS ${LIB_DIR}/D3DCSX.lib) set(XP_OTHER_LIBS ${LIB_DIR}/d3dcompiler.lib ${LIB_DIR}/dxguid.lib ) #install(DIRECTORY "${SOURCE_PATH}/Include" DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(COPY ${RELEASE_LIBS} ${OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${DEBUG_LIBS} ${OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if(("xinput1-3" IN_LIST FEATURES) OR ("xp" IN_LIST FEATURES)) file(COPY ${XINPUT13_HEADER} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(COPY ${XINPUT13_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${XINPUT13_LIB} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) endif() if(("xaudio2-7" IN_LIST FEATURES) OR ("xp" IN_LIST FEATURES)) file(COPY ${XAUDIO27_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(COPY ${XAUDIO27_RELEASE_LIBS} ${XAUDIO27_OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${XAUDIO27_DEBUG_LIBS} ${XAUDIO27_OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) endif() if("xp" IN_LIST FEATURES) file(COPY ${XP_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(COPY ${XP_RELEASE_LIBS} ${XP_OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${XP_DEBUG_LIBS} ${XP_OTHER_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) endif() # # Handle copyright file(INSTALL "${SOURCE_PATH}/Documentation/License Agreements/DirectX SDK EULA.txt" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/directxsdk/vcpkg.json ================================================ { "name": "directxsdk", "version-string": "jun10", "port-version": 8, "description": "Legacy DirectX SDK", "homepage": "https://docs.microsoft.com/en-us/windows/win32/directx-sdk--august-2009-", "license": null, "supports": "windows & !uwp & !xbox & !arm", "features": { "xaudio2-7": { "description": "Include headers/libs for legacy XAudio 2.7 (prefer use of XAudio2Redist)" }, "xinput1-3": { "description": "Include headers for legacy XInput 1.3 (prefer use of XInput 9.1.0 or 1.4)" }, "xp": { "description": "Include headers/libs needed for Windows 7.1A targeting Windows XP / Server 2003" } } } ================================================ FILE: ports/directxtex/portfile.cmake ================================================ set(DIRECTXTEX_TAG oct2025) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTex REF ${DIRECTXTEX_TAG} SHA512 8adca6e50dc5da91d2be0c9a644a3372f0c134ec80d71260d72dca79b2422d5eccae844b1b5d0eb4f335548730eb3b1faad4ba7e228f865c7688b60915e70efc HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dx11 BUILD_DX11 dx12 BUILD_DX12 jpeg ENABLE_LIBJPEG_SUPPORT openexr ENABLE_OPENEXR_SUPPORT png ENABLE_LIBPNG_SUPPORT spectre ENABLE_SPECTRE_MITIGATION tools BUILD_TOOLS ) set(EXTRA_OPTIONS -DBUILD_SAMPLE=OFF) if(VCPKG_TARGET_IS_WINDOWS AND NOT (VCPKG_TARGET_IS_XBOX OR VCPKG_TARGET_IS_MINGW) AND NOT "dx12" IN_LIST FEATURES) list(APPEND EXTRA_OPTIONS "-DCMAKE_DISABLE_FIND_PACKAGE_directx-headers=TRUE") endif() if(VCPKG_TARGET_IS_MINGW AND ("dx11" IN_LIST FEATURES)) message(NOTICE "Building ${PORT} for MinGW requires the HLSL Compiler fxc.exe also be in the PATH. See https://aka.ms/windowssdk.") endif() if("xbox" IN_LIST FEATURES) if((NOT (DEFINED DIRECTXTEX_XBOX_CONSOLE_TARGET)) OR (DIRECTXTEX_XBOX_CONSOLE_TARGET STREQUAL "scarlett")) list(APPEND FEATURE_OPTIONS "-DBUILD_XBOX_EXTS_SCARLETT=ON") message(NOTICE "Building ${PORT} with Xbox Series X|S extensions") elseif(DIRECTXTEX_XBOX_CONSOLE_TARGET STREQUAL "xboxone") list(APPEND FEATURE_OPTIONS "-DBUILD_XBOX_EXTS_XBOXONE=ON") message(NOTICE "Building ${PORT} with Xbox One extensions") else() message(FATAL_ERROR "The triplet variable DIRECTXTEX_XBOX_CONSOLE_TARGET should be set to 'xboxone' or 'scarlett'.") endif() endif() if (VCPKG_HOST_IS_LINUX) message(WARNING "Build ${PORT} requires GCC version 9 or later") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directxtex) if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/directxtex/") if((VCPKG_TARGET_ARCHITECTURE STREQUAL x64) AND (NOT (("openexr" IN_LIST FEATURES) OR ("xbox" IN_LIST FEATURES)))) vcpkg_download_distfile( TEXASSEMBLE_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texassemble.exe" FILENAME "texassemble-${DIRECTXTEX_TAG}.exe" SHA512 d1e8f2959e9a53367a03ded17c49e8720dd8f62cfcde13feeff39ba9b68a5352488ac743c6208f4820b0a94605a8bdce7f2949705d0aba06fb298f93813c2e72 ) vcpkg_download_distfile( TEXCONV_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texconv.exe" FILENAME "texconv-${DIRECTXTEX_TAG}.exe" SHA512 de5d4d237a17cac3a3c5c932dcca316e887f7d141353000b343ed7c48f1065bfd232c2f3e748f749b2b4bb1ccb7f731893e28b1227d6bf37ca1ef68c41b1bd00 ) vcpkg_download_distfile( TEXDIAG_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texdiag.exe" FILENAME "texdiag-${DIRECTXTEX_TAG}.exe" SHA512 960aeb72e82d4c5fc6388e47ef220062a5e279574338798a32a7b4a3b0bc3bf362272ccd6f8ed6a7fb9674e9ee52f6e2faa022236e6e28dd852445c7b742fecf ) file(INSTALL "${TEXASSEMBLE_EXE}" "${TEXCONV_EXE}" "${TEXDIAG_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtex/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texassemble-${DIRECTXTEX_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texassemble.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texconv-${DIRECTXTEX_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texconv.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texdiag-${DIRECTXTEX_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texadiag.exe") elseif(((VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) OR (VCPKG_TARGET_ARCHITECTURE STREQUAL arm64ec)) AND (NOT ("openexr" IN_LIST FEATURES))) vcpkg_download_distfile( TEXASSEMBLE_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texassemble_arm64.exe" FILENAME "texassemble-${DIRECTXTEX_TAG}-arm64.exe" SHA512 9724d9c0b27d4e7b438da99cf304324a94c232d410e18f26ba4dbd3e38495e11b4d03fd63c09c642107afa8529ebb366341e47da0f50fa55b1ec76927adce0ed ) vcpkg_download_distfile( TEXCONV_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texconv_arm64.exe" FILENAME "texconv-${DIRECTXTEX_TAG}-arm64.exe" SHA512 d4701b93bae60abb4ad364cde1ce3462c3c39298b1929f0fad188ccc2363b8d25d2f84fb67c259def32dfa2921bc92afae60480ea89c9602e318b91b5c6f3c93 ) vcpkg_download_distfile( TEXDIAG_EXE URLS "https://github.com/Microsoft/DirectXTex/releases/download/${DIRECTXTEX_TAG}/texdiag_arm64.exe" FILENAME "texdiag-${DIRECTXTEX_TAG}-arm64.exe" SHA512 49134ba643f482b42fe3dd06cbf0b59c899f2d76094f9bea10096aecd70d2641ea06aa94513a7807ffb2ce14126f15bcbcbca98d19d0934e2f5f56ce1ee1197b ) file(INSTALL "${TEXASSEMBLE_EXE}" "${TEXCONV_EXE}" "${TEXDIAG_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtex/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texassemble-${DIRECTXTEX_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texassemble.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texconv-${DIRECTXTEX_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texconv.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtex/texdiag-${DIRECTXTEX_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtex/texadiag.exe") elseif("dx11" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES texassemble texconv texdiag SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin" ) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if("xbox" IN_LIST FEATURES) file(READ "${CMAKE_CURRENT_LIST_DIR}/xboxusage" USAGE_CONTENT) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" ${USAGE_CONTENT}) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directxtex/usage ================================================ The DirectXTex package provides CMake targets: find_package(directxtex CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXTex) ================================================ FILE: ports/directxtex/vcpkg.json ================================================ { "name": "directxtex", "version-date": "2025-10-27", "description": "DirectXTex texture processing library", "homepage": "https://github.com/Microsoft/DirectXTex", "documentation": "https://github.com/microsoft/DirectXTex/wiki", "license": "MIT", "supports": "(windows & !arm32) | linux", "dependencies": [ { "name": "directx-headers", "platform": "mingw | linux" }, "directxmath", { "name": "ms-gdkx", "platform": "xbox" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "dx11", "platform": "windows & !xbox" } ], "features": { "dx11": { "description": "Build with DirectX11 support", "supports": "windows & !xbox" }, "dx12": { "description": "Build with DirectX12 support for Windows 10/Windows 11", "dependencies": [ { "name": "directx-headers", "platform": "windows & !xbox" } ] }, "jpeg": { "description": "Add the JPEG auxiliary functions", "supports": "linux", "dependencies": [ "libjpeg-turbo" ] }, "openexr": { "description": "Enable OpenEXR support", "dependencies": [ "openexr" ] }, "png": { "description": "Add the PNG auxiliary functions", "supports": "linux", "dependencies": [ "libpng" ] }, "spectre": { "description": "Build Spectre-mitigated library" }, "tools": { "description": "texture command-line tools", "supports": "windows & !uwp & !xbox" }, "xbox": { "description": "Adds Xbox specific extensions to the library", "supports": "windows & x64 & !uwp & !xbox", "dependencies": [ "ms-gdkx" ] } } } ================================================ FILE: ports/directxtex/xboxusage ================================================ For the 'xbox' feature, it defaults to targeting Xbox Series X|S. To set it to Xbox One, create a custom triplet from x64-windows with the addition of the following: if (PORT STREQUAL "directxtex") set(DIRECTXTEX_XBOX_CONSOLE_TARGET "xboxone") endif() ================================================ FILE: ports/directxtk/CMake-build-options-improvements.patch ================================================ --- CMakeLists.txt | 66 +++++++++++++++++++++++++++-------------------- CMakePresets.json | 6 +++-- 2 files changed, 42 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 70db51f..de2ccfb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,14 +60,28 @@ if(XBOX_CONSOLE_TARGET STREQUAL "durango") set(BUILD_GAMEINPUT OFF) set(BUILD_WGI OFF) set(BUILD_XINPUT OFF) - set(BUILD_XBOXONE_SHADERS ON) set(BUILD_XAUDIO_WIN10 OFF) set(BUILD_XAUDIO_WIN8 ON) + set(BUILD_XAUDIO_REDIST OFF) + set(BUILD_XBOXONE_SHADERS ON) set(BUILD_TOOLS OFF) elseif(WINDOWS_STORE) set(BUILD_GAMEINPUT OFF) set(BUILD_WGI ON) + set(BUILD_XINPUT OFF) + set(BUILD_XAUDIO_WIN10 ON) + set(BUILD_XAUDIO_WIN8 OFF) + set(BUILD_XAUDIO_REDIST OFF) set(BUILD_TOOLS OFF) +elseif(MINGW) + set(BUILD_WGI OFF) + set(BUILD_XAUDIO_WIN10 OFF) + set(BUILD_XAUDIO_WIN8 OFF) + if (NOT BUILD_GAMEINPUT) + set(BUILD_XINPUT ON) + endif() +elseif(WIN32 AND (NOT BUILD_GAMEINPUT) AND (NOT BUILD_WGI)) + set(BUILD_XINPUT ON) endif() include(GNUInstallDirs) @@ -145,29 +159,14 @@ set(SHADER_SOURCES Src/Shaders/SpriteEffect.fx Src/Shaders/ToneMap.fx) -# Xbox-specific extensions -if(DEFINED XBOX_CONSOLE_TARGET) - set(LIBRARY_HEADERS ${LIBRARY_HEADERS} - Inc/XboxDDSTextureLoader.h) - - set(LIBRARY_SOURCES ${LIBRARY_SOURCES} - Src/XboxDDSTextureLoader.cpp) -endif() - # These source files are identical in both DX11 and DX12 version. set(LIBRARY_HEADERS ${LIBRARY_HEADERS} - Inc/GamePad.h - Inc/Keyboard.h - Inc/Mouse.h Inc/SimpleMath.h Inc/SimpleMath.inl) set(LIBRARY_SOURCES ${LIBRARY_SOURCES} Src/BinaryReader.cpp - Src/GamePad.cpp Src/Geometry.cpp - Src/Keyboard.cpp - Src/Mouse.cpp Src/SimpleMath.cpp) set(LIBRARY_SOURCES ${LIBRARY_SOURCES} @@ -193,14 +192,28 @@ set(SHADER_SOURCES ${SHADER_SOURCES} Src/Shaders/Structures.fxh Src/Shaders/Utilities.fxh) -if(MINGW) - set(BUILD_XAUDIO_WIN10 OFF) - set(BUILD_XAUDIO_WIN8 OFF) +# Xbox-specific extensions +if(DEFINED XBOX_CONSOLE_TARGET) + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} + Inc/XboxDDSTextureLoader.h) + + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} + Src/XboxDDSTextureLoader.cpp) +endif() + +if(BUILD_XINPUT OR BUILD_WGI OR BUILD_GAMEINPUT) + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} + Inc/GamePad.h + Inc/Keyboard.h + Inc/Mouse.h) + + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} + Src/GamePad.cpp + Src/Keyboard.cpp + Src/Mouse.cpp) endif() -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 OR BUILD_XAUDIO_REDIST) set(LIBRARY_HEADERS ${LIBRARY_HEADERS} Inc/Audio.h) @@ -274,7 +287,7 @@ if(WIN32 AND BUILD_SHARED_LIBS) target_link_libraries(${PROJECT_NAME} PRIVATE kernelx.lib combase.lib d3d12_x.lib xi.lib) endif() - if(MINGW) + if(MINGW AND BUILD_XINPUT) target_link_libraries(${PROJECT_NAME} PRIVATE xinput1_4.lib) endif() else() @@ -297,9 +310,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 OR BUILD_XAUDIO_REDIST) target_include_directories(${PROJECT_NAME} PRIVATE Audio) endif() @@ -315,8 +326,7 @@ if(directxmath_FOUND) target_link_libraries(${PROJECT_NAME} PRIVATE Microsoft::DirectXMath) endif() -if(BUILD_XAUDIO_REDIST - AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8) AND (NOT WINDOWS_STORE)) +if(BUILD_XAUDIO_REDIST AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8)) message(STATUS "Using XAudio2Redist for DirectX Tool Kit for Audio.") find_package(xaudio2redist CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Microsoft::XAudio2Redist) diff --git a/CMakePresets.json b/CMakePresets.json index 69e1cad..03b7c7a 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -122,8 +122,7 @@ "cacheVariables": { "BUILD_XAUDIO_WIN10": false, "BUILD_XAUDIO_WIN8": false, - "BUILD_XAUDIO_REDIST": true, - "BUILD_XINPUT": true + "BUILD_XAUDIO_REDIST": true }, "hidden": true }, @@ -324,6 +323,9 @@ { "name": "x86-Debug-MinGW" , "description": "MinG-W32 (Debug)", "inherits": [ "base", "x86", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, { "name": "x86-Release-MinGW", "description": "MinG-W32 (Release)", "inherits": [ "base", "x86", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, + { "name": "x64-Debug-MinGW-GI" , "description": "MinG-W64 (Debug) using GameInput", "inherits": [ "base", "x64", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } }, + { "name": "x64-Release-MinGW-GI", "description": "MinG-W64 (Release) using GameInput", "inherits": [ "base", "x64", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } }, + { "name": "x64-Debug-ICC" , "description": "Intel Classic Compiler (Debug) for Windows 8", "inherits": [ "base", "x64", "Debug", "Intel" ] }, { "name": "x64-Release-ICC" , "description": "Intel Classic Compiler (Release) for Windows 8", "inherits": [ "base", "x64", "Release", "Intel" ] }, -- 2.51.2.windows.1 ================================================ FILE: ports/directxtk/portfile.cmake ================================================ set(DIRECTXTK_TAG oct2025) if(VCPKG_TARGET_IS_MINGW) message(NOTICE "Building ${PORT} for MinGW requires the HLSL Compiler fxc.exe also be in the PATH. See https://aka.ms/windowssdk.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTK REF ${DIRECTXTK_TAG} SHA512 3be2fce3c3a34a22b7bdfda914ca45930c5b979bb467530b8cbb510c0f58485056c285ff86ddaecbc5aac95ae67f0b92c4e1dd8261cee4a87cf3e7056329ac28 HEAD_REF main PATCHES CMake-build-options-improvements.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gameinput BUILD_GAMEINPUT windows-gaming-input BUILD_WGI spectre ENABLE_SPECTRE_MITIGATION tools BUILD_TOOLS xaudio2-9 BUILD_XAUDIO_WIN10 xaudio2-8 BUILD_XAUDIO_WIN8 xaudio2redist BUILD_XAUDIO_REDIST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directxtk) if("tools" IN_LIST FEATURES) vcpkg_download_distfile( MAKESPRITEFONT_EXE URLS "https://github.com/Microsoft/DirectXTK/releases/download/${DIRECTXTK_TAG}/MakeSpriteFont.exe" FILENAME "makespritefont-${DIRECTXTK_TAG}.exe" SHA512 edec18a1c7790d6f27f8d910307a38a037784cc974b38debb8ef6eb77369941b60bf7cb52de4150f80bca4ab541d76d54f21ef91524b83b11b684f0a92e1c879 ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/directxtk/") file(INSTALL "${MAKESPRITEFONT_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk/makespritefont-${DIRECTXTK_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk/makespritefont.exe") if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) vcpkg_download_distfile( XWBTOOL_EXE URLS "https://github.com/Microsoft/DirectXTK/releases/download/${DIRECTXTK_TAG}/XWBTool.exe" FILENAME "xwbtool-${DIRECTXTK_TAG}.exe" SHA512 68ff3f4a99585e08698c6385550628341e31218315029700c9b8d9a17118ba964856358bc2bebc951b6ec8d1584e8d62138505780897430509dca2652832384b ) file(INSTALL "${XWBTOOL_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk/xwbtool-${DIRECTXTK_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk/xwbtool.exe") elseif((VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) OR (VCPKG_TARGET_ARCHITECTURE STREQUAL arm64ec)) vcpkg_download_distfile( XWBTOOL_EXE URLS "https://github.com/Microsoft/DirectXTK/releases/download/${DIRECTXTK_TAG}/XWBTool_arm64.exe" FILENAME "xwbtool-${DIRECTXTK_TAG}-arm64.exe" SHA512 8e9d0fdd206bff4e3c0b344ed754a16cee913833be205c822d41ed3264d3578ae168ef415043ff8f95b38890c37457a56ee7677b26d95b8afd60dd307bffb9e0 ) file(INSTALL "${XWBTOOL_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk/xwbtool-${DIRECTXTK_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk/xwbtool.exe") else() vcpkg_copy_tools( TOOL_NAMES XWBTool SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin" ) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directxtk/usage ================================================ The DirectX Tool Kit for DX11 package provides CMake targets: find_package(directxtk CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXTK) ================================================ FILE: ports/directxtk/vcpkg.json ================================================ { "name": "directxtk", "version-date": "2025-10-27", "description": "A collection of helper classes for writing DirectX 11.x code in C++.", "homepage": "https://github.com/Microsoft/DirectXTK", "documentation": "https://github.com/microsoft/DirectXTK/wiki", "license": "MIT", "supports": "windows & !xbox & !arm32", "dependencies": [ "directxmath", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gameinput": { "description": "Build using GameInput API for input processing", "supports": "windows & x64 & !uwp", "dependencies": [ "gameinput" ] }, "spectre": { "description": "Build Spectre-mitigated library" }, "tools": { "description": "MakeSpriteFont and xwbtool command-line tools", "supports": "windows & !uwp & !xbox" }, "windows-gaming-input": { "description": "Build using Windows.Gaming.Input for input processing", "supports": "windows & !xbox" }, "xaudio2-8": { "description": "Build with XAudio 2.8 support for Windows 8.x or later" }, "xaudio2-9": { "description": "Build with XAudio 2.9 support for Windows 10/11" }, "xaudio2redist": { "description": "Build with XAudio2Redist support for Windows 8.1 or later", "dependencies": [ "xaudio2redist" ] } } } ================================================ FILE: ports/directxtk12/CMake-build-options-improvements.patch ================================================ --- CMakeLists.txt | 55 ++++++++++++++++++++++++++++------------------- CMakePresets.json | 3 +++ 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a353f8..0b62d4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,24 +59,38 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") set(BUILD_GAMEINPUT ON) - set(BUILD_SCARLETT_SHADERS ON) + set(BUILD_WGI OFF) + set(BUILD_XINPUT OFF) set(BUILD_XAUDIO_REDIST OFF) + set(BUILD_SCARLETT_SHADERS ON) elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") set(BUILD_GAMEINPUT ON) - set(BUILD_XBOXONE_SHADERS ON) + set(BUILD_WGI OFF) + set(BUILD_XINPUT OFF) set(BUILD_XAUDIO_REDIST OFF) + set(BUILD_XBOXONE_SHADERS ON) elseif(XBOX_CONSOLE_TARGET STREQUAL "durango") set(BUILD_GAMEINPUT OFF) set(BUILD_WGI OFF) set(BUILD_XINPUT OFF) + set(BUILD_XAUDIO_WIN10 ON) + set(BUILD_XAUDIO_REDIST OFF) set(BUILD_XBOXONE_SHADERS ON) set(BUILD_DXIL_SHADERS OFF) - set(BUILD_XAUDIO_WIN10 OFF) - set(BUILD_XAUDIO_WIN8 ON) elseif(WINDOWS_STORE) set(BUILD_GAMEINPUT OFF) set(BUILD_WGI ON) + set(BUILD_XINPUT OFF) + set(BUILD_XAUDIO_WIN10 ON) set(BUILD_XAUDIO_REDIST OFF) +elseif(MINGW) + set(BUILD_WGI OFF) + set(BUILD_XAUDIO_WIN10 OFF) + if (NOT BUILD_GAMEINPUT) + set(BUILD_XINPUT ON) + endif() +elseif(WIN32 AND (NOT BUILD_GAMEINPUT) AND (NOT BUILD_XINPUT)) + set(BUILD_WGI ON) endif() include(GNUInstallDirs) @@ -164,18 +178,12 @@ set(SHADER_SOURCES # These source files are identical in both DX11 and DX12 version. if(NOT BUILD_MIXED_DX11) set(LIBRARY_HEADERS ${LIBRARY_HEADERS} - Inc/GamePad.h - Inc/Keyboard.h - Inc/Mouse.h Inc/SimpleMath.h Inc/SimpleMath.inl) set(LIBRARY_SOURCES ${LIBRARY_SOURCES} Src/BinaryReader.cpp - Src/GamePad.cpp Src/Geometry.cpp - Src/Keyboard.cpp - Src/Mouse.cpp Src/SimpleMath.cpp) endif() @@ -211,13 +219,19 @@ if(DEFINED XBOX_CONSOLE_TARGET) Src/XboxDDSTextureLoader.cpp) endif() -if(MINGW) - set(BUILD_XAUDIO_WIN10 OFF) +if(BUILD_XINPUT OR BUILD_WGI OR BUILD_GAMEINPUT) + set(LIBRARY_HEADERS ${LIBRARY_HEADERS} + Inc/GamePad.h + Inc/Keyboard.h + Inc/Mouse.h) + + set(LIBRARY_SOURCES ${LIBRARY_SOURCES} + Src/GamePad.cpp + Src/Keyboard.cpp + Src/Mouse.cpp) endif() -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_REDIST) set(LIBRARY_HEADERS ${LIBRARY_HEADERS} Inc/Audio.h) @@ -319,7 +333,7 @@ if(WIN32 AND BUILD_SHARED_LIBS) target_link_libraries(${PROJECT_NAME} PRIVATE d3d12.lib) endif() - if(MINGW) + if(MINGW AND BUILD_XINPUT) target_link_libraries(${PROJECT_NAME} PRIVATE xinput1_4.lib) endif() else() @@ -342,9 +356,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) -if(WINDOWS_STORE - OR BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_WIN8 - OR BUILD_XAUDIO_REDIST) +if(BUILD_XAUDIO_WIN10 OR BUILD_XAUDIO_REDIST) target_include_directories(${PROJECT_NAME} PRIVATE Audio) endif() @@ -371,8 +383,7 @@ if(directx-headers_FOUND) target_compile_definitions(${PROJECT_NAME} PRIVATE USING_DIRECTX_HEADERS) endif() -if(BUILD_XAUDIO_REDIST - AND (NOT BUILD_XAUDIO_WIN10) AND (NOT BUILD_XAUDIO_WIN8) AND (NOT WINDOWS_STORE)) +if(BUILD_XAUDIO_REDIST AND (NOT BUILD_XAUDIO_WIN10)) message(STATUS "Using XAudio2Redist for DirectX Tool Kit for Audio.") find_package(xaudio2redist CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Microsoft::XAudio2Redist) @@ -532,7 +543,7 @@ if(WIN32) target_compile_definitions(${PROJECT_NAME} PRIVATE _WIN32_WINNT=${WINVER}) - if(WINDOWS_STORE OR BUILD_XAUDIO_WIN10) + if(BUILD_XAUDIO_WIN10) message(STATUS "Using DirectX Tool Kit for Audio on XAudio 2.9 (Windows 10/Windows 11).") endif() diff --git a/CMakePresets.json b/CMakePresets.json index eed1f1b..b7ab045 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -381,6 +381,9 @@ { "name": "x86-Debug-MinGW" , "description": "MinG-W32 (Debug)", "inherits": [ "base", "x86", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, { "name": "x86-Release-MinGW", "description": "MinG-W32 (Release)", "inherits": [ "base", "x86", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW32" ] }, + { "name": "x64-Debug-MinGW-GI" , "description": "MinG-W64 (Debug) using GameInput", "inherits": [ "base", "x64", "Debug", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } }, + { "name": "x64-Release-MinGW-GI", "description": "MinG-W64 (Release) using GameInput", "inherits": [ "base", "x64", "Release", "GNUC", "VCPKG", "XAudio2Redist", "MinGW64" ], "cacheVariables": { "BUILD_GAMEINPUT": "true" } }, + { "name": "x64-Debug-ICC" , "description": "Intel Classic Compiler (Debug) for Windows 10", "inherits": [ "base", "x64", "Debug", "Intel" ] }, { "name": "x64-Release-ICC" , "description": "Intel Classic Compiler (Release) for Windows 10", "inherits": [ "base", "x64", "Release", "Intel" ] }, -- 2.51.2.windows.1 ================================================ FILE: ports/directxtk12/portfile.cmake ================================================ set(DIRECTXTK_TAG oct2025) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/DirectXTK12 REF ${DIRECTXTK_TAG} SHA512 8ecb03c2773f68b42959940004b483c5978a4e933ddd24ef0db9ecec721daf691927b64d1d4c00430df5569bf0358874fc565bf4225c336b4846f353fef5088c HEAD_REF main PATCHES CMake-build-options-improvements.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gameinput BUILD_GAMEINPUT xinput BUILD_XINPUT spectre ENABLE_SPECTRE_MITIGATION xaudio2-9 BUILD_XAUDIO_WIN10 xaudio2redist BUILD_XAUDIO_REDIST ) set(EXTRA_OPTIONS "") if(NOT VCPKG_TARGET_IS_XBOX) set(DXCPATH "${CURRENT_HOST_INSTALLED_DIR}/tools/directx-dxc") list(APPEND EXTRA_OPTIONS -DBUILD_DXIL_SHADERS=ON "-DDIRECTX_DXC_PATH=${DXCPATH}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/directxtk12) if("tools" IN_LIST FEATURES) vcpkg_download_distfile( MAKESPRITEFONT_EXE URLS "https://github.com/Microsoft/DirectXTK12/releases/download/${DIRECTXTK_TAG}/MakeSpriteFont.exe" FILENAME "makespritefont-${DIRECTXTK_TAG}.exe" SHA512 edec18a1c7790d6f27f8d910307a38a037784cc974b38debb8ef6eb77369941b60bf7cb52de4150f80bca4ab541d76d54f21ef91524b83b11b684f0a92e1c879 ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/directxtk12/") file(INSTALL "${MAKESPRITEFONT_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk12/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk12/makespritefont-${DIRECTXTK_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk12/makespritefont.exe") if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) vcpkg_download_distfile( XWBTOOL_EXE URLS "https://github.com/Microsoft/DirectXTK12/releases/download/${DIRECTXTK_TAG}/XWBTool.exe" FILENAME "xwbtool-${DIRECTXTK_TAG}.exe" SHA512 68ff3f4a99585e08698c6385550628341e31218315029700c9b8d9a17118ba964856358bc2bebc951b6ec8d1584e8d62138505780897430509dca2652832384b ) file(INSTALL "${XWBTOOL_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk12/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk12/xwbtool-${DIRECTXTK_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk12/xwbtool.exe") elseif((VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) OR (VCPKG_TARGET_ARCHITECTURE STREQUAL arm64ec)) vcpkg_download_distfile( XWBTOOL_EXE URLS "https://github.com/Microsoft/DirectXTK12/releases/download/${DIRECTXTK_TAG}/XWBTool_arm64.exe" FILENAME "xwbtool-${DIRECTXTK_TAG}-arm64.exe" SHA512 8e9d0fdd206bff4e3c0b344ed754a16cee913833be205c822d41ed3264d3578ae168ef415043ff8f95b38890c37457a56ee7677b26d95b8afd60dd307bffb9e0 ) file(INSTALL "${XWBTOOL_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/directxtk12/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/directxtk12/xwbtool-${DIRECTXTK_TAG}-arm64.exe" "${CURRENT_PACKAGES_DIR}/tools/directxtk12/xwbtool.exe") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/directxtk12/usage ================================================ The DirectX Tool Kit for DX12 package provides CMake targets find_package(directxtk12 CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectXTK12) ================================================ FILE: ports/directxtk12/vcpkg.json ================================================ { "name": "directxtk12", "version-date": "2025-10-27", "description": "A collection of helper classes for writing DirectX 12 code in C++.", "homepage": "https://github.com/Microsoft/DirectXTK12", "documentation": "https://github.com/microsoft/DirectXTK12/wiki", "license": "MIT", "supports": "windows & !arm32", "dependencies": [ { "name": "directx-dxc", "host": true, "platform": "windows & !xbox" }, { "name": "directx-headers", "platform": "windows & !xbox" }, "directxmath", { "name": "ms-gdkx", "platform": "xbox" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "xaudio2-9" ], "features": { "gameinput": { "description": "Build using GameInput API for input processing", "supports": "windows & x64 & !uwp", "dependencies": [ "gameinput" ] }, "spectre": { "description": "Build Spectre-mitigated library" }, "tools": { "description": "MakeSpriteFont and xwbtool command-line tools", "supports": "windows & !uwp & !xbox & (x64 | arm64 | arm64ec)" }, "xaudio2-9": { "description": "Build with XAudio 2.9 support for Windows 10/11" }, "xaudio2redist": { "description": "Build with XAudio2Redist", "dependencies": [ "xaudio2redist" ] }, "xinput": { "description": "Build using XInput for input processing", "supports": "windows & !uwp & !xbox" } } } ================================================ FILE: ports/dirent/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tronkko/dirent REF "${VERSION}" SHA512 5dc3ae63247259e209f8a93c0be9369c094e6783bd0b9df41545067e4d807da2e5339509da03cfdb1ea1c2f9642b1fad33124b7b2ec7e649442cc6e561b0a3f9 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) ================================================ FILE: ports/dirent/vcpkg.json ================================================ { "name": "dirent", "version": "1.26", "description": "Dirent is a C/C++ programming interface that allows programmers to retrieve information about files and directories under Linux/UNIX. This project provides Linux compatible Dirent interface for Microsoft Windows.", "homepage": "https://github.com/tronkko/dirent", "license": "MIT" } ================================================ FILE: ports/discord-game-sdk/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(discord_game_sdk_cpp) find_library(SDK_LIB "discord_game_sdk" PATHS "${SDK_LIB_FOLDER}" NO_DEFAULT_PATH ) file(GLOB SRC_FILES "${PROJECT_SOURCE_DIR}/cpp/*.cpp") file(GLOB_RECURSE HDR_FILES "${PROJECT_SOURCE_DIR}/*.h") add_library(discord_game_sdk_cpp STATIC ${SRC_FILES}) target_link_libraries(discord_game_sdk_cpp PUBLIC ${SDK_LIB}) set_property(TARGET discord_game_sdk_cpp PROPERTY CXX_STANDARD 11) install(TARGETS discord_game_sdk_cpp ARCHIVE) install(FILES ${HDR_FILES} DESTINATION "include/discord-game-sdk") ================================================ FILE: ports/discord-game-sdk/copyright ================================================ Your use of the GameSDK is bound by the Discord Developer Terms of Service, whose text is available online at https://discord.com/developers/docs/legal. ================================================ FILE: ports/discord-game-sdk/include-cstdint.patch ================================================ From 91fab7c4b8f7da3182f07f5392ebe9388f979157 Mon Sep 17 00:00:00 2001 From: l3nn0x Date: Wed, 17 Mai 2023 11:40:58 +0100 Subject: [PATCH] Include cstdint --- cpp/types.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpp/types.h b/cpp/types.h index 8c7cc2b..122dc71 100644 --- a/cpp/types.h +++ b/cpp/types.h @@ -6,6 +6,8 @@ #include #include #endif + +#include namespace discord { ================================================ FILE: ports/discord-game-sdk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS https://dl-game-sdk.discordapp.net/3.2.1/discord_game_sdk.zip FILENAME discord_game_sdk.zip SHA512 4851cb70f428eb391959018aa7206e11232348189f7e47f9b8e15535f02a8b114ef825198b0d772979b77ca47061ee7fa764ca90a1dc39370eb9802e8bf04541 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL PATCHES include-cstdint.patch # allows compiling on newer versions of GCC ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ARCH_FOLDER "x86") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCH_FOLDER "x86_64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ARCH_FOLDER "aarch64") endif() if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dll.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "discord_game_sdk.lib") file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dll.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "discord_game_sdk.lib") elseif(VCPKG_TARGET_IS_OSX) file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "libdiscord_game_sdk.dylib") file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "libdiscord_game_sdk.dylib") elseif(VCPKG_TARGET_IS_LINUX) file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.so" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "libdiscord_game_sdk.so") file(INSTALL "${SOURCE_PATH}/lib/${ARCH_FOLDER}/discord_game_sdk.so" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "libdiscord_game_sdk.so") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DSDK_LIB_FOLDER=${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/discord-game-sdk/usage ================================================ The package discord-game-sdk does not provides CMake integration: find_library(GAME_SDK discord_game_sdk) target_link_libraries( PRIVATE ${GAME_SDK}) find_path(GAME_SDK_INCLUDE discord-game-sdk/discord.h) target_include_directories( PRIVATE ${GAME_SDK_INCLUDE}) The C++ SDK source code is compiled in a static library: find_library(CPP_GAME_SDK discord_game_sdk_cpp) target_link_libraries( PRIVATE ${CPP_GAME_SDK}) ================================================ FILE: ports/discord-game-sdk/vcpkg.json ================================================ { "name": "discord-game-sdk", "version": "3.2.1", "description": "The Discord GameSDK is an easy drop-in SDK to help you manage all the hard things that come with making a game.", "homepage": "https://discord.com/developers/docs/game-sdk/sdk-starter-guide", "supports": "((x64 & (windows | osx | linux)) | (x86 & windows) | (arm64 & osx)) & !uwp & !static", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/discord-rpc/disable-downloading.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5dad9e9..961f02d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ file(GLOB_RECURSE ALL_SOURCE_FILES src/*.cpp src/*.h src/*.c ) +if(0) # Set CLANG_FORMAT_SUFFIX if you are using custom clang-format, e.g. clang-format-5.0 find_program(CLANG_FORMAT_CMD clang-format${CLANG_FORMAT_SUFFIX}) @@ -43,7 +44,7 @@ if (NOT RAPIDJSONTEST) ) file(REMOVE ${RJ_TAR_FILE}) endif(NOT RAPIDJSONTEST) - +endif() find_file(RAPIDJSON NAMES rapidjson rapidjson-1.1.0 PATHS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty CMAKE_FIND_ROOT_PATH_BOTH) add_library(rapidjson STATIC IMPORTED ${RAPIDJSON}) ================================================ FILE: ports/discord-rpc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO discordapp/discord-rpc REF "v${VERSION}" SHA512 ca981b833aff5f21fd629a704deadd8e3fb5423d959ddb75e381313f6462d984c567671b10c8f031905c08d85792ddbe2dddc402ba2613c42de9e80fc68d0d51 HEAD_REF master PATCHES disable-downloading.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) file(REMOVE_RECURSE "${SOURCE_PATH}/thirdparty") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_STATIC_CRT=${STATIC_CRT} -DBUILD_EXAMPLES=OFF "-DRAPIDJSON=${CURRENT_INSTALLED_DIR}" ) if(EXISTS "${SOURCE_PATH}/thirdparty") message(FATAL_ERROR "The source directory should not be modified during the build.") endif() vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/discord-rpc/vcpkg.json ================================================ { "name": "discord-rpc", "version": "3.4.0", "port-version": 4, "description": "Rich Presence allows you to leverage the totally overhauled \"Now Playing\" section in a Discord user's profile to help people play your game together.", "homepage": "https://github.com/discordapp/discord-rpc", "license": "MIT", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/discordcoreapi/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message(WARNING "DiscordCoreAPI only supports g++ 11 on linux.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RealTimeChris/DiscordCoreAPI REF "v${VERSION}" SHA512 d977ed7d8805f0b110450d3baf0256eae11ecc25947496c657a9c9b17aa9222db92435f28ebd924c166927e4714b3e9ae388f64836175cc96b78b08315031ede HEAD_REF main ) # discordcoreapi consumes extreme amounts of memory (>9GB per .cpp file). With our default # concurrency values this causes hanging and/or OOM killing on Linux build machines and # warnings on the Windows machines like: # #[warning]Free memory is lower than 5%; Currently used: 99.99% # #[warning]Free memory is lower than 5%; Currently used: 99.99% # #[warning]Free memory is lower than 5%; Currently used: 99.99% # Cut the requested concurrency in quarter to avoid this. if(VCPKG_CONCURRENCY GREATER 4) math(EXPR VCPKG_CONCURRENCY "${VCPKG_CONCURRENCY} / 4") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(NO_PREFIX_CORRECTION) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.md") ================================================ FILE: ports/discordcoreapi/vcpkg.json ================================================ { "name": "discordcoreapi", "version": "2.0.8", "description": "A Discord bot library written in C++ using custom asynchronous coroutines.", "homepage": "https://discordcoreapi.com", "license": "MIT", "supports": "(windows & x64 & !xbox) | (linux & x64) | (osx & x64)", "dependencies": [ "jsonifier", "libsodium", "openssl", "opus", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/discount/blocktags ================================================ static struct kw blocktags[] = { { "P", 1, 0 }, { "DL", 2, 0 }, { "H1", 2, 0 }, { "H2", 2, 0 }, { "H3", 2, 0 }, { "H4", 2, 0 }, { "H5", 2, 0 }, { "H6", 2, 0 }, { "HR", 2, 1 }, { "OL", 2, 0 }, { "UL", 2, 0 }, { "BDO", 3, 0 }, { "DFN", 3, 0 }, { "DIV", 3, 0 }, { "MAP", 3, 0 }, { "PRE", 3, 0 }, { "WBR", 3, 0 }, { "XMP", 3, 0 }, { "FORM", 4, 0 }, { "NOBR", 4, 0 }, { "STYLE", 5, 0 }, { "TABLE", 5, 0 }, { "CENTER", 6, 0 }, { "IFRAME", 6, 0 }, { "OBJECT", 6, 0 }, { "SCRIPT", 6, 0 }, { "ADDRESS", 7, 0 }, { "LISTING", 7, 0 }, { "PLAINTEXT", 9, 0 }, { "BLOCKQUOTE", 10, 0 }, }; #define NR_blocktags 30 ================================================ FILE: ports/discount/cmake.patch ================================================ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 3895fdb..a183836 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -182,7 +182,10 @@ if(${PROJECT_NAME}_MAKE_INSTALL) target_include_directories(libmarkdown INTERFACE $ ) - set(_TARGETS libmarkdown markdown) + set(_TARGETS libmarkdown) + if(NOT ${PROJECT_NAME}_ONLY_LIBRARY) + set(_TARGETS ${_TARGETS} markdown) + endif() if(${PROJECT_NAME}_INSTALL_SAMPLES) list(APPEND _TARGETS mkd2html makepage) endif() diff --git a/cmake/config.h.in b/cmake/config.h.in index e08220d..e630934 100644 --- a/cmake/config.h.in +++ b/cmake/config.h.in @@ -74,4 +74,6 @@ #define TABSTOP @TABSTOP@ +#define DESTRUCTOR + #endif /* _CONFIG_D */ ================================================ FILE: ports/discount/disable-deprecated-warnings.patch ================================================ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index ae859a3..77a936a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -23,6 +23,11 @@ set(${PROJECT_NAME}_ONLY_LIBRARY OFF CACHE BOOL set(${PROJECT_NAME}_CXX_BINDING OFF CACHE BOOL "Set to ON to install header files with c++ wrappers (default is OFF)") +# MSVC deprecated warnings (C4996,strdup, ...) +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS) +endif() + # Check headers include(CheckIncludeFile) check_include_file(libgen.h HAVE_LIBGEN_H) ================================================ FILE: ports/discount/generate-blocktags-command.patch ================================================ diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index a183836..e9deef5 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -113,12 +115,19 @@ configure_file("${_ROOT}/mkdio.h.in" include_directories("${_ROOT}") -add_executable(mktags - "${_ROOT}/mktags.c") -add_custom_command(OUTPUT "${_ROOT}/blocktags" - COMMAND mktags > blocktags - WORKING_DIRECTORY "${_ROOT}") +if(NOT GENERATE_BLOCKTAGS) + message(STATUS "Not generating blocktags") +else() + message(STATUS "Using mktags to generate blocktags") + + add_executable(mktags + "${_ROOT}/mktags.c") + + add_custom_command(OUTPUT "${_ROOT}/blocktags" + COMMAND mktags > blocktags + WORKING_DIRECTORY "${_ROOT}") +endif() add_library(libmarkdown "${_ROOT}/mkdio.c" ================================================ FILE: ports/discount/portfile.cmake ================================================ # No dynamic link for MSVC vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Orc/discount REF "v${VERSION}" SHA512 ab24722bb8513f64eed59bb2770276b91615033b494a0492a331f36c5fcd2e32b7a9f3bd7ef0bb74c107f1e0e955522c83ddba6c482fca7f18cf275334707c4d HEAD_REF master PATCHES generate-blocktags-command.patch disable-deprecated-warnings.patch ) set(GENERATE_BLOCKTAGS ON) if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm" OR VCPKG_TARGET_ARCHITECTURE MATCHES "arm64" OR VCPKG_CMAKE_SYSTEM_NAME MATCHES "WindowsStore") set(GENERATE_BLOCKTAGS OFF) endif() if(NOT GENERATE_BLOCKTAGS) configure_file("${CURRENT_PORT_DIR}/blocktags" "${SOURCE_PATH}/blocktags" COPYONLY) message(STATUS "Copied blocktags") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cmake" DISABLE_PARALLEL_CONFIGURE OPTIONS -DDISCOUNT_ONLY_LIBRARY=ON -DGENERATE_BLOCKTAGS=${GENERATE_BLOCKTAGS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/discount) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/discount" RENAME copyright) ================================================ FILE: ports/discount/vcpkg.json ================================================ { "name": "discount", "version-string": "3.0.0d", "description": "DISCOUNT is a implementation of John Gruber & Aaron Swartz's Markdown markup language.", "homepage": "https://github.com/Orc/discount", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/discreture/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mraggi/discreture REF eeeec31c814e6a9a8506a6bfd6a5b35704350605 SHA512 de1c7d74d337605fd9b9d1f3ee6637b4afd179d495de243b21168b0a4376b83c0519b4cced985af694850755ab1e3caca5087b3ca0cd6ccb3b73b10bd6b25b49 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/discreture/usage ================================================ The package discreture is header only and can be used from CMake via: find_path(DISCRETURE_INCLUDE_DIRS "discreture.hpp") target_include_directories(main PRIVATE ${DISCRETURE_INCLUDE_DIRS}) ================================================ FILE: ports/discreture/vcpkg.json ================================================ { "name": "discreture", "version-date": "2020-01-29", "port-version": 3, "description": "A modern C++ library for efficiently and easily iterating through common combinatorial objects, such as combinations, permutations, partitions and more.", "homepage": "https://github.com/mraggi/discreture", "dependencies": [ "boost-container", "boost-iterator", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/distorm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(distorm C) set(CMAKE_C_STANDARD 99) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) endif() include_directories(include src) add_library(distorm src/decoder.c src/distorm.c src/instructions.c src/insts.c src/mnemonics.c src/operands.c src/prefix.c src/textdefs.c ) if(BUILD_SHARED_LIBS) target_compile_definitions(distorm PRIVATE -DDISTORM_DYNAMIC=1 -DSUPPORT_64BIT_OFFSET=1) else() target_compile_definitions(distorm PRIVATE -DDISTORM_STATIC=1 -DSUPPORT_64BIT_OFFSET=1) endif() install( TARGETS distorm RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES include/distorm.h include/mnemonics.h DESTINATION include) endif() ================================================ FILE: ports/distorm/fix-arm-builds.patch ================================================ --- a/src/textdefs.c +++ b/src/textdefs.c @@ -42,7 +42,8 @@ s->length = len * 2; s->p[len * 2] = 0; do { - RSHORT(&s->p[i]) = RSHORT(&TextBTable[(*buf) * 2]); + s->p[i] = TextBTable[(*buf) * 2]; + s->p[i + 1] = TextBTable[(*buf) * 2 + 1]; buf++; i += 2; } while (i < len * 2); ================================================ FILE: ports/distorm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gdabah/distorm REF 3.5.2b SHA512 8AAD0C51E8D9DFAEAA069A3D4FADE4BDF87CCE464C85898B6B4888FA51A9BB6EC1221FAF32ACF59EBD047CCEB9A535B2FF93D196FD14FA834D8ECE5685417A55 HEAD_REF master PATCHES fix-arm-builds.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/distorm/vcpkg.json ================================================ { "name": "distorm", "version-string": "3.5.2b", "description": "Powerful Disassembler Library For x86/AMD64", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dlfcn-win32/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dlfcn-win32/dlfcn-win32 REF "v${VERSION}" SHA512 13b52c078c20f97b4293257904d64c4a018115a68af606a04699acbe3f7ff07887eecd2512363c062eb43a34cedd27c5989bded4b7d0530d697dbd65dbdbffac HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) ================================================ FILE: ports/dlfcn-win32/vcpkg.json ================================================ { "name": "dlfcn-win32", "version": "1.4.2", "description": "dlfcn-win32 is an implementation of dlfcn for Windows.", "homepage": "https://github.com/dlfcn-win32/dlfcn-win32", "license": "MIT", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dlib/find_blas.patch ================================================ diff --git a/dlib/cmake_utils/find_blas.cmake b/dlib/cmake_utils/find_blas.cmake index 806b938..507f871 100644 --- a/dlib/cmake_utils/find_blas.cmake +++ b/dlib/cmake_utils/find_blas.cmake @@ -438,7 +438,7 @@ endif() # If using lapack, determine whether to mangle functions if (lapack_found) include(CheckFortranFunctionExists) - set(CMAKE_REQUIRED_LIBRARIES ${lapack_libraries}) + set(CMAKE_REQUIRED_LIBRARIES ${lapack_libraries} ${blas_libraries}) check_function_exists("sgesv" LAPACK_FOUND_C_UNMANGLED) check_function_exists("sgesv_" LAPACK_FOUND_C_MANGLED) ================================================ FILE: ports/dlib/fix-dependencies.patch ================================================ diff --git a/dlib/CMakeLists.txt b/dlib/CMakeLists.txt index cfe6ad9..75cfd54 100644 --- a/dlib/CMakeLists.txt +++ b/dlib/CMakeLists.txt @@ -293,6 +293,7 @@ if (NOT TARGET dlib) set(dlib_needed_public_ldflags) set(dlib_needed_private_libraries) set(dlib_needed_private_includes) + set(pkg_config_dlib_requires_private "") if (DLIB_ISO_CPP_ONLY) add_library(dlib ${source_files} ) @@ -833,6 +834,10 @@ if (NOT TARGET dlib) if (DLIB_LINK_WITH_SQLITE3) + find_package(unofficial-sqlite3 CONFIG REQUIRED) + list(APPEND dlib_needed_libraries unofficial::sqlite3::sqlite3) + string(APPEND pkg_config_dlib_requires_private " sqlite3") + elseif(0) find_library(sqlite sqlite3) # make sure sqlite3.h is in the include path find_path(sqlite_path sqlite3.h) @@ -848,6 +853,10 @@ if (NOT TARGET dlib) if (DLIB_USE_FFTW) + find_package(FFTW3 CONFIG REQUIRED) + list(APPEND dlib_needed_libraries FFTW3::fftw3) + string(APPEND pkg_config_dlib_requires_private " fftw3") + elseif(0) find_library(fftw fftw3) # make sure fftw3.h is in the include path find_path(fftw_path fftw3.h) @@ -998,6 +1007,8 @@ if (NOT TARGET dlib) ## dlib-1.pc generation and installation + string (REGEX REPLACE " m " " -lm " pkg_config_dlib_needed_libraries "${pkg_config_dlib_needed_libraries} ") + string (REGEX REPLACE "[^ ]*::[^ ]*" "" pkg_config_dlib_needed_libraries "${pkg_config_dlib_needed_libraries}") configure_file("cmake_utils/dlib.pc.in" "dlib-1.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/dlib-1.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") @@ -1011,7 +1022,7 @@ if (NOT TARGET dlib) endif() -if (MSVC) +if (0) # Give the output library files names that are unique functions of the # visual studio mode that compiled them. We do this so that people who # compile dlib and then copy the .lib files around (which they shouldn't be diff --git a/dlib/cmake_utils/dlib.pc.in b/dlib/cmake_utils/dlib.pc.in index 9060110..2ec27e8 100644 --- a/dlib/cmake_utils/dlib.pc.in +++ b/dlib/cmake_utils/dlib.pc.in @@ -6,3 +6,4 @@ Description: Numerical and networking C++ library Version: @VERSION@ Libs: -L${libdir} -ldlib @pkg_config_dlib_needed_libraries@ Cflags: -I${includedir} @pkg_config_dlib_needed_includes@ +Requires.private: @pkg_config_dlib_requires_private@ diff --git a/dlib/cmake_utils/dlibConfig.cmake.in b/dlib/cmake_utils/dlibConfig.cmake.in index 2667a2e..cc7b4a2 100644 --- a/dlib/cmake_utils/dlibConfig.cmake.in +++ b/dlib/cmake_utils/dlibConfig.cmake.in @@ -31,6 +31,14 @@ if(NOT TARGET dlib-shared AND NOT dlib_BINARY_DIR) unset(dlib_deps_threads_check) endif() +include(CMakeFindDependencyMacro) +if("@DLIB_USE_FFTW@") + find_dependency(FFTW3 CONFIG) +endif() +if("@DLIB_LINK_WITH_SQLITE3@") + find_dependency(unofficial-sqlite3 CONFIG) +endif() + set(dlib_LIBRARIES dlib::dlib) set(dlib_LIBS dlib::dlib) set(dlib_INCLUDE_DIRS "@CMAKE_INSTALL_FULL_INCLUDEDIR@" "@dlib_needed_includes@") ================================================ FILE: ports/dlib/fix-lapack.patch ================================================ diff --git a/dlib/CMakeLists.txt b/dlib/CMakeLists.txt index 5a3135b3b8..0ce2996f9a 100644 --- a/dlib/CMakeLists.txt +++ b/dlib/CMakeLists.txt @@ -612,18 +612,10 @@ if (NOT TARGET dlib) # Try to find BLAS, LAPACK and MKL include(cmake_utils/find_blas.cmake) - if (DLIB_USE_BLAS) - if (blas_found) - list (APPEND dlib_needed_public_libraries ${blas_libraries}) - else() - set(DLIB_USE_BLAS OFF CACHE STRING ${DLIB_USE_BLAS_STR} FORCE ) - toggle_preprocessor_switch(DLIB_USE_BLAS) - endif() - endif() - if (DLIB_USE_LAPACK) if (lapack_found) list (APPEND dlib_needed_public_libraries ${lapack_libraries}) + string(APPEND pkg_config_dlib_requires_private " lapack") if (lapack_with_underscore) set(LAPACK_FORCE_UNDERSCORE 1) enable_preprocessor_switch(LAPACK_FORCE_UNDERSCORE) @@ -637,6 +629,16 @@ if (NOT TARGET dlib) endif() endif() + if (DLIB_USE_BLAS) + if (blas_found) + list (APPEND dlib_needed_public_libraries ${blas_libraries}) + string(APPEND pkg_config_dlib_requires_private " blas") + else() + set(DLIB_USE_BLAS OFF CACHE STRING ${DLIB_USE_BLAS_STR} FORCE ) + toggle_preprocessor_switch(DLIB_USE_BLAS) + endif() + endif() + if (DLIB_USE_MKL_FFT) if (found_intel_mkl AND found_intel_mkl_headers) list (APPEND dlib_needed_public_includes ${mkl_include_dir}) diff --git a/dlib/cmake_utils/dlibConfig.cmake.in b/dlib/cmake_utils/dlibConfig.cmake.in index cc7b4a21d7..918707a418 100644 --- a/dlib/cmake_utils/dlibConfig.cmake.in +++ b/dlib/cmake_utils/dlibConfig.cmake.in @@ -38,6 +38,8 @@ endif() if("@DLIB_LINK_WITH_SQLITE3@") find_dependency(unofficial-sqlite3 CONFIG) endif() +find_dependency(BLAS) +find_dependency(LAPACK) set(dlib_LIBRARIES dlib::dlib) set(dlib_LIBS dlib::dlib) diff --git a/dlib/cmake_utils/find_blas.cmake b/dlib/cmake_utils/find_blas.cmake index 21edbdbe42..92858951d8 100644 --- a/dlib/cmake_utils/find_blas.cmake +++ b/dlib/cmake_utils/find_blas.cmake @@ -32,7 +32,7 @@ SET(lapack_without_underscore 0) message(STATUS "Searching for BLAS and LAPACK") INCLUDE(CheckFunctionExists) -if (UNIX OR MINGW) +if (0) message(STATUS "Searching for BLAS and LAPACK") if (BUILDING_MATLAB_MEX_FILE) @@ -296,7 +296,7 @@ if (UNIX OR MINGW) -elseif(WIN32 AND NOT MINGW) +elseif(0) message(STATUS "Searching for BLAS and LAPACK") include(CheckTypeSize) @@ -435,19 +435,18 @@ endif() if (NOT blas_found) find_package(BLAS QUIET) if (${BLAS_FOUND}) - set(blas_libraries ${BLAS_LIBRARIES}) + set(blas_libraries BLAS::BLAS) set(blas_found 1) if (NOT lapack_found) find_package(LAPACK QUIET) if (${LAPACK_FOUND}) - set(lapack_libraries ${LAPACK_LIBRARIES}) + set(lapack_libraries LAPACK::LAPACK) set(lapack_found 1) endif() endif() endif() endif() - # If using lapack, determine whether to mangle functions if (lapack_found) include(CheckFortranFunctionExists) ================================================ FILE: ports/dlib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davisking/dlib REF "v${VERSION}" SHA512 a4bcb2d013bd2b0000530d684c9c4b9f047f9fa6216174b3cb26d96f66c4a302d0bd1733d0ba35626d57133d9159f90114ab51a3af8fb9c493ff3e74dcc73911 HEAD_REF master PATCHES fix-dependencies.patch find_blas.patch fix-lapack.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/dlib/external") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "sqlite3" DLIB_LINK_WITH_SQLITE3 "fftw3" DLIB_USE_FFTW "cuda" DLIB_USE_CUDA ) if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(COMMON_OPTIONS -DUSE_SSE2_INSTRUCTIONS=OFF) endif() set(dbg_opts "") if(VCPKG_TARGET_IS_WINDOWS) set(dbg_opts -DDLIB_ENABLE_ASSERTS=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${COMMON_OPTIONS} -DDLIB_PNG_SUPPORT=ON -DCMAKE_REQUIRE_FIND_PACKAGE_PNG=ON -DDLIB_JPEG_SUPPORT=ON -DCMAKE_REQUIRE_FIND_PACKAGE_JPEG=ON -DDLIB_USE_BLAS=ON -DDLIB_USE_LAPACK=ON -DDLIB_GIF_SUPPORT=OFF -DDLIB_WEBP_SUPPORT=OFF -DDLIB_USE_MKL_FFT=OFF -DDLIB_USE_FFMPEG=OFF -DDLIB_NO_GUI_SUPPORT=ON OPTIONS_DEBUG ${dbg_opts} #-DDLIB_ENABLE_STACK_TRACE=ON ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) # Dlib encodes debug/release in its config.h. Patch it to respond to the NDEBUG macro instead. <- The below is using _DEBUG but there is no correct way to switch this on !windows # Only windows defines _DEBUG in debug builds. vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dlib/config.h" "/* #undef ENABLE_ASSERTS */" "#if defined(_DEBUG)\n#define ENABLE_ASSERTS\n#endif") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/dlib/config.h" "#define DLIB_DISABLE_ASSERTS" "#if !defined(_DEBUG)\n#define DLIB_DISABLE_ASSERTS\n#endif") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/dlib) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") # Remove other files not required in package file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/all") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/appveyor") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/test") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/travis") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_neon") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cudnn") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cuda") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_cpp11") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_avx") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_sse4") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_libjpeg") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_libpng") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_libjxl") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/cmake_utils/test_for_libwebp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/dlib/external/libpng/arm") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/dlib/LICENSE.txt") ================================================ FILE: ports/dlib/vcpkg.json ================================================ { "name": "dlib", "version": "20.0", "port-version": 3, "description": "Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++", "homepage": "https://github.com/davisking/dlib", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ "blas", "lapack", "libjpeg-turbo", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "fftw3", "sqlite3" ], "features": { "cuda": { "description": "CUDA support for dlib", "dependencies": [ "cuda", "cudnn" ] }, "fftw3": { "description": "fftw3 support for dlib", "dependencies": [ "fftw3" ] }, "sqlite3": { "description": "sqlite3 support for dlib", "dependencies": [ "sqlite3" ] } } } ================================================ FILE: ports/dlpack/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dmlc/dlpack REF "v${VERSION}" SHA512 e1945d863bf22f162b915f18482bddabec7665a3c9ca7b2554a32622d6dff15908eb15761b21838ecac7db75cfd9cd835cead1c2d4b005dca2a40e71e2889d3a HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_MOCK=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/dlpack") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/dlpack/usage ================================================ dlpack provides CMake targets: find_package(dlpack CONFIG REQUIRED) target_link_libraries(main PRIVATE dlpack::dlpack) ================================================ FILE: ports/dlpack/vcpkg.json ================================================ { "name": "dlpack", "version": "1.3", "description": "DLPack is an open in-memory tensor structure for sharing tensors among frameworks", "homepage": "https://github.com/dmlc/dlpack", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dmlc/cxx-fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 46aa280..f66b286 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,7 @@ if(USE_AZURE) endif() add_library(dmlc ${SOURCE}) +target_compile_features(dmlc PUBLIC cxx_std_${CMAKE_CXX_STANDARD}) # Sanitizer if (DMLC_USE_SANITIZER) ================================================ FILE: ports/dmlc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dmlc/dmlc-core REF dfd9365264a060a5096734b7d892e1858b6d2722 SHA512 0dc2ecd3c981d88de27bf5184f7b380261335c474934d0db59028adfe75f6b3ee2da5b831135acfaad7943acb3eaa7007c0faf0f14e63b39865354898f64fcea HEAD_REF main PATCHES cxx-fix.patch # from https://github.com/dmlc/dmlc-core/pull/676 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp ENABLE_OPENMP ) if(VCPKG_CRT_LINKAGE STREQUAL dynamic) set(DMLC_FORCE_SHARED_CRT ON) else() set(DMLC_FORCE_SHARED_CRT OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DDMLC_FORCE_SHARED_CRT=${DMLC_FORCE_SHARED_CRT} -DUSE_OPENMP=${ENABLE_OPENMP} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/dmlc) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/dmlc/vcpkg.json ================================================ { "name": "dmlc", "version-date": "2022-06-22", "description": "DMLC-Core is the backbone library to support all DMLC projects, offers the bricks to build efficient and scalable distributed machine learning libraries.", "homepage": "https://github.com/dmlc/dmlc-core", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Build with openmp" } } } ================================================ FILE: ports/docopt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO docopt/docopt.cpp REF 400e6dd8e59196c914dcc2c56caf7dae7efa5eb3 SHA512 a9ef466ba40127f636bc20beb7508c4da2dc32c0c37acb5729644f31d4910d9c0253f311457f39ed57605775e72f3370aff4e5ef88e60a49d190bc4760c40ea3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWITH_EXAMPLE=OFF -DWITH_TESTS=OFF -DUSE_BOOST_REGEX=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/docopt) vcpkg_fixup_pkgconfig() 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" "#ifdef _WIN32" _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 vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-MIT" "${SOURCE_PATH}/LICENSE-Boost-1.0") vcpkg_copy_pdbs() ================================================ FILE: ports/docopt/vcpkg.json ================================================ { "name": "docopt", "version-date": "2022-03-15", "port-version": 1, "description": "Command line arguments parser that will make you smile (C++11 port).", "license": "MIT OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/docraft/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Cadons/Docraft REF ${VERSION} SHA512 fee1f78fb013b592faf3107e6bd77485f14755d0a1add6b3f906b896f743c693bd900ce26f6d347a577e00f507d541917657ab6ccae93a2de800ab68a1adbd93 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES docraft_tool AUTO_CLEAN) vcpkg_cmake_config_fixup(PACKAGE_NAME docraft) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/docraft/vcpkg.json ================================================ { "name": "docraft", "version-string": "v1.0.0-beta.3", "description": "Docraft is a self-contained C++ library for generating professionally rendered PDF documents — without external tools, command-line utilities, or runtime dependencies beyond your own application", "homepage": "https://cadons.github.io/Docraft/", "license": "Apache-2.0", "dependencies": [ "fmt", "gtest", "libharu", "nlohmann-json", "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/doctest/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO doctest/doctest REF "v${VERSION}" SHA512 d55aae632e6d66add7b65d0e97bde5063cdae7512836f278613af35957c62dbc6b0b0febbe2eb1eddd334a7a5343faca7357a2eeebbf1428cafffeb5d18e610c HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DDOCTEST_WITH_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/doctest/vcpkg.json ================================================ { "name": "doctest", "version": "2.4.12", "description": "The fastest feature-rich C++11/14/17/20 single-header testing framework", "homepage": "https://github.com/doctest/doctest", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/double-conversion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/double-conversion REF "v${VERSION}" SHA512 9a6f43497a772c78660d0c0f9bc42902f5cb99066a08f0ab50345db37ddf62bb491ae7f5ca45819251e3a1d41282e5646b269e912cbd24eca6b440a31409712f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/double-conversion/vcpkg.json ================================================ { "name": "double-conversion", "version": "3.4.0", "description": "Efficient binary-decimal and decimal-binary conversion routines for IEEE doubles.", "homepage": "https://github.com/google/double-conversion", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dp-thread-pool/include.diff ================================================ diff --git a/include/thread_pool/thread_pool.h b/include/thread_pool/thread_pool.h index 4dbe54f..4b97ec5 100644 --- a/include/thread_pool/thread_pool.h +++ b/include/thread_pool/thread_pool.h @@ -15,7 +15,7 @@ # endif #endif -#include "thread_pool/thread_safe_queue.h" +#include "thread_safe_queue.h" namespace dp { namespace details { ================================================ FILE: ports/dp-thread-pool/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DeveloperPaul123/thread-pool REF ${VERSION} SHA512 c2a75117f7def0dacc2679f8eb70835acfba58d1aba7beec9bf0a29cdb23883222294dc4b04b77e323f8ecb8623b70d728bee46bf2c5a4fd6711a749c9709981 HEAD_REF master PATCHES include.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTP_BUILD_TESTS=OFF -DTP_BUILD_EXAMPLES=OFF -DTP_BUILD_BENCHMARKS=OFF -DTP_CXX_STANDARD=20 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME thread-pool CONFIG_PATH lib/cmake/thread-pool-${VERSION} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dp-thread-pool/vcpkg.json ================================================ { "name": "dp-thread-pool", "version": "0.7.0", "port-version": 1, "maintainers": "Paul Tsouchlos ", "description": "dp::thread_pool - fast, lightweight C++20 thread pool.", "homepage": "https://github.com/DeveloperPaul123/thread-pool", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dpdk/0001-enable-either-static-or-shared-build.patch ================================================ diff --git a/config/meson.build b/config/meson.build index b6b3558e11..34b85f10b5 100644 --- a/config/meson.build +++ b/config/meson.build @@ -95,7 +95,9 @@ eal_pmd_path = join_paths(get_option('prefix'), driver_install_path) # driver .so files often depend upon the bus drivers for their connect bus, # e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need # to be in the library path, so symlink the drivers from the main lib directory. -if not is_windows +if get_option('default_library') == 'static' + # skip +elif not is_windows # skip symlink-drivers-solibs.sh execution on no sub directory if pmd_subdir_opt != '' and pmd_subdir_opt != '.' meson.add_install_script('../buildtools/symlink-drivers-solibs.sh', diff --git a/drivers/meson.build b/drivers/meson.build index 495e21b54a..ff7b5983cb 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -322,7 +322,7 @@ foreach subpath:subdirs include_directories: includes, dependencies: static_deps, c_args: cflags, - install: true) + install: get_option('default_library') == 'static') # now build the shared driver if is_ms_linker @@ -359,7 +359,7 @@ foreach subpath:subdirs output: lib_name + '.sym_chk', depends: [version_map]) endif - + if get_option('default_library') == 'shared' shared_lib = shared_library(lib_name, sources_pmd_info, objects: objs, include_directories: includes, @@ -377,10 +377,14 @@ foreach subpath:subdirs shared_dep = declare_dependency(link_with: shared_lib, include_directories: includes, dependencies: shared_deps) + endif static_dep = declare_dependency( include_directories: includes, dependencies: static_deps) + if get_option('default_library') == 'static' + shared_dep = static_dep + endif dpdk_drivers += static_lib set_variable('shared_@0@'.format(lib_name), shared_dep) diff --git a/lib/meson.build b/lib/meson.build index ce92cb5537..40880bbf02 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -274,7 +274,7 @@ foreach l:libraries c_args: cflags, dependencies: static_deps, include_directories: includes, - install: true) + install: get_option('default_library') == 'static') static_dep = declare_dependency( include_directories: includes, dependencies: static_deps) @@ -324,6 +324,7 @@ foreach l:libraries cflags += '-DRTE_BUILD_SHARED_LIB' endif + if get_option('default_library') == 'shared' shared_lib = shared_library(libname, sources, objects: objs, @@ -341,6 +342,9 @@ foreach l:libraries dependencies: shared_deps) dpdk_libraries = [shared_lib] + dpdk_libraries + else + shared_dep = static_dep + endif dpdk_static_libraries = [static_lib] + dpdk_static_libraries set_variable('shared_rte_' + name, shared_dep) ================================================ FILE: ports/dpdk/0002-fix-dependencies.patch ================================================ diff --git a/config/meson.build b/config/meson.build index 34b85f10b5..5ed4625d9e 100644 --- a/config/meson.build +++ b/config/meson.build @@ -238,12 +238,10 @@ if meson.is_cross_build() and not meson.get_external_property('numa', true) find_libnuma = false endif if find_libnuma - numa_dep = cc.find_library('numa', required: false) - if numa_dep.found() and cc.has_header('numaif.h') and cc.links(min_c_code, dependencies: numa_dep) + numa_dep = dependency('numa', method: 'pkg-config', required: false) + if numa_dep.found() dpdk_conf.set10('RTE_HAS_LIBNUMA', true) has_libnuma = true - add_project_link_arguments('-lnuma', language: 'c') - dpdk_extra_ldflags += '-lnuma' endif endif diff --git a/lib/eal/linux/meson.build b/lib/eal/linux/meson.build index e99ebed256..672c70547b 100644 --- a/lib/eal/linux/meson.build +++ b/lib/eal/linux/meson.build @@ -21,5 +21,6 @@ sources += files( deps += ['kvargs', 'telemetry'] if has_libnuma + ext_deps += numa_dep dpdk_conf.set10('RTE_EAL_NUMA_AWARE_HUGEPAGES', true) endif diff --git a/lib/vhost/meson.build b/lib/vhost/meson.build index 51bcf17244..1099a0232f 100644 --- a/lib/vhost/meson.build +++ b/lib/vhost/meson.build @@ -6,6 +6,7 @@ if not is_linux reason = 'only supported on Linux' endif if has_libnuma + ext_deps += numa_dep dpdk_conf.set10('RTE_LIBRTE_VHOST_NUMA', true) endif dpdk_conf.set('RTE_LIBRTE_VHOST_POSTCOPY', cc.has_header('linux/userfaultfd.h')) ================================================ FILE: ports/dpdk/0003-remove-examples-src-from-datadir.patch ================================================ diff --git a/meson.build b/meson.build index 8436d1dff8..5e704e37d5 100644 --- a/meson.build +++ b/meson.build @@ -89,13 +89,6 @@ subdir('app') # build docs subdir('doc') -# build any examples explicitly requested - useful for developers - and -# install any example code into the appropriate install path -subdir('examples') -install_subdir('examples', - install_dir: get_option('datadir') + '/dpdk', - exclude_files: ex_file_excludes) - # build kernel modules subdir('kernel') ================================================ FILE: ports/dpdk/0004-stop-building-apps.patch ================================================ diff --git a/app/meson.build b/app/meson.build index e2db888ae1..5e28824780 100644 --- a/app/meson.build +++ b/app/meson.build @@ -52,7 +52,7 @@ endif foreach app:apps name = app - build = true + build = false reason = '' # set if build == false to explain sources = [] resources = [] ================================================ FILE: ports/dpdk/0005-no-absolute-driver-path.patch ================================================ diff --git a/config/meson.build b/config/meson.build index 5ed4625d9e..3f89fd0768 100644 --- a/config/meson.build +++ b/config/meson.build @@ -461,7 +461,7 @@ Please install libnuma, or set 'max_numa_nodes' option to '1' to build without N endif # set the install path for the drivers -dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path) +dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', '') dpdk_arch_headers += files('rte_config.h') ================================================ FILE: ports/dpdk/0006-rename-sched.h.patch ================================================ diff --git a/lib/eal/common/eal_common_thread.c b/lib/eal/common/eal_common_thread.c index a53bc63..087ec80 100644 --- a/lib/eal/common/eal_common_thread.c +++ b/lib/eal/common/eal_common_thread.c @@ -6,7 +6,11 @@ #include #include #include +#ifdef _WIN32 +#include +#else #include +#endif #include #include diff --git a/lib/eal/windows/include/meson.build b/lib/eal/windows/include/meson.build index e985a77..dbd6b4b 100644 --- a/lib/eal/windows/include/meson.build +++ b/lib/eal/windows/include/meson.build @@ -6,5 +6,5 @@ includes += include_directories('.') headers += files( 'rte_os.h', 'rte_windows.h', - 'sched.h', + 'sched_from_dpdk.h', ) diff --git a/lib/eal/windows/include/pthread.h b/lib/eal/windows/include/pthread.h index e1c3101..f28b37d 100644 --- a/lib/eal/windows/include/pthread.h +++ b/lib/eal/windows/include/pthread.h @@ -6,7 +6,7 @@ #define _PTHREAD_H_ #include -#include +#include /** * This file is required to support the common code in eal_common_proc.c, diff --git a/lib/eal/windows/include/rte_os.h b/lib/eal/windows/include/rte_os.h index 9d69467..4df82dd 100644 --- a/lib/eal/windows/include/rte_os.h +++ b/lib/eal/windows/include/rte_os.h @@ -14,7 +14,7 @@ #include #include -#include +#include /* These macros are compatible with bundled sys/queue.h. */ #define RTE_TAILQ_HEAD(name, type) \ diff --git a/lib/eal/windows/include/sched.h b/lib/eal/windows/include/sched_from_dpdk.h similarity index 97% rename from lib/eal/windows/include/sched.h rename to lib/eal/windows/include/sched_from_dpdk.h index 912fed1..400c927 100644 --- a/lib/eal/windows/include/sched.h +++ b/lib/eal/windows/include/sched_from_dpdk.h @@ -2,8 +2,8 @@ * Copyright(c) 2019 Intel Corporation */ -#ifndef _SCHED_H_ -#define _SCHED_H_ +#ifndef _SCHED_FROM_DPDK_H_ +#define _SCHED_FROM_DPDK_H_ /** * This file is added to support the common code in eal_common_thread.c ================================================ FILE: ports/dpdk/portfile.cmake ================================================ # Some dll doesn't export any symbols. # https://doc.dpdk.org/guides-25.07/windows_gsg/intro.html#limitations if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() if(VCPKG_TARGET_IS_LINUX AND VCPKG_HOST_IS_LINUX) execute_process( COMMAND uname --kernel-release OUTPUT_VARIABLE KERNEL_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) if(KERNEL_VERSION VERSION_LESS 4.4) message( WARNING " Kernel version requires >= 4.4 on Linux (current version: ${KERNEL_VERSION})\n" " Building may fail or have functional defects. See\n" " https://doc.dpdk.org/guides/linux_gsg/sys_reqs.html#system-software" ) endif() execute_process( COMMAND sh -c "ldd --version | head -n1 | rev | cut -d' ' -f 1 | rev" OUTPUT_VARIABLE GLIBC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) if(GLIBC_VERSION VERSION_LESS 2.7) message( FATAL_ERROR "glibc version requires >= 2.7 (for features related to cpuset)") endif() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DPDK/dpdk REF "v${VERSION}" SHA512 21b1fd1b87797a61c3480e9b049a38ea5be2fb174b8d1d397db25a0d6c04281f1951e402276299fd605763ef6aa867f1285b2321f03214aa6122553cfb53771e HEAD_REF main PATCHES 0001-enable-either-static-or-shared-build.patch 0002-fix-dependencies.patch 0003-remove-examples-src-from-datadir.patch 0004-stop-building-apps.patch 0005-no-absolute-driver-path.patch 0006-rename-sched.h.patch ) macro(append_bool_option feature_name option_name) if("${feature_name}" IN_LIST FEATURES) list(APPEND DPDK_OPTIONS -D${option_name}=true) else() list(APPEND DPDK_OPTIONS -D${option_name}=false) endif() endmacro() set(DPDK_OPTIONS "") set(DPDK_OPTIONS_RELEASE "") append_bool_option("docs" "enable_docs") append_bool_option("tests" "tests") append_bool_option("trace" "enable_trace_fp") set(PYTHON_PACKAGES "") if(VCPKG_TARGET_IS_WINDOWS) # https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html#option-3-native-build-on-windows-using-msvc list(APPEND DPDK_OPTIONS "-Denable_stdatomic=true") else() list(APPEND PYTHON_PACKAGES pyelftools) endif() if("docs" IN_LIST FEATURES) list(APPEND DPDK_OPTIONS_RELEASE "-Denable_docs=true") vcpkg_find_acquire_program(DOXYGEN) list(APPEND PYTHON_PACKAGES packaging sphinx) endif() if(PYTHON_PACKAGES) x_vcpkg_get_python_packages(OUT_PYTHON_VAR PYTHON3 PYTHON_VERSION "3" PACKAGES ${PYTHON_PACKAGES}) endif() vcpkg_configure_meson(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddeveloper_mode=disabled -Ddisable_drivers=regex/cn9k ${DPDK_OPTIONS} OPTIONS_RELEASE ${DPDK_OPTIONS_RELEASE} ADDITIONAL_BINARIES "doxygen = ['${DOXYGEN}']" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(GLOB scripts "${CURRENT_PACKAGES_DIR}/bin/*.py") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script IN LISTS scripts) cmake_path(GET script FILENAME filename) file(RENAME "${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${filename}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${filename}") endforeach() vcpkg_clean_executables_in_bin(FILE_NAMES none) if("docs" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc/dpdk" "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license/README") # Move dll driver to bin directory. file(GLOB PMD_DIRS "${CURRENT_PACKAGES_DIR}/lib/dpdk/pmds-*") foreach(PMD_DIR ${PMD_DIRS}) get_filename_component(DIR_NAME ${PMD_DIR} NAME) file(GLOB DLLS "${PMD_DIR}/*.dll") if(DLLS) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin/dpdk/${DIR_NAME}") file(COPY ${DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin/dpdk/${DIR_NAME}") file(REMOVE ${DLLS}) endif() endforeach() if(NOT VCPKG_BUILD_TYPE) file(GLOB PMD_DIRS_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/dpdk/pmds-*") foreach(PMD_DIR ${PMD_DIRS_DEBUG}) get_filename_component(DIR_NAME ${PMD_DIR} NAME) file(GLOB DLLS "${PMD_DIR}/*.dll" "${PMD_DIR}/*.pdb") if(DLLS) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin/dpdk/${DIR_NAME}") file(COPY ${DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/dpdk/${DIR_NAME}") file(REMOVE ${DLLS}) endif() endforeach() endif() # pkg_check_modules doesn't support -l:lib syntax # https://gitlab.kitware.com/cmake/cmake/-/issues/27452 if (VCPKG_TARGET_IS_WINDOWS) set(PREFIX_LIB "") else() set(PREFIX_LIB "lib") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libdpdk.pc" "-l:lib" "-l${PREFIX_LIB}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libdpdk.pc" "-l:lib" "-l${PREFIX_LIB}") endif() ================================================ FILE: ports/dpdk/vcpkg.json ================================================ { "name": "dpdk", "version": "25.11", "port-version": 1, "description": "A set of libraries and drivers for fast packet processing", "homepage": "https://www.dpdk.org/", "documentation": "https://doc.dpdk.org/guides/", "license": "BSD-3-Clause", "supports": "freebsd | linux", "dependencies": [ { "name": "libarchive", "default-features": false }, { "name": "numactl", "platform": "linux" }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "docs": { "description": "Build and install docs" }, "tests": { "description": "Build and install tests" }, "trace": { "description": "Build with fast path traces enabled" } } } ================================================ FILE: ports/dpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brainboxdotcc/DPP REF "v${VERSION}" SHA512 c840f0c36babaf8a193132a56c62673092901c7814deafb4bc37753596e35bf31bd08051d79aa9b71ef439c55a327b046aea6bc4f07c984ab61204e3ff7e7ebe ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(NO_PREFIX_CORRECTION) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/dpp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/dpp/usage ================================================ dpp provides CMake targets: find_package(dpp CONFIG REQUIRED) target_link_libraries(main PRIVATE dpp::dpp) ================================================ FILE: ports/dpp/vcpkg.json ================================================ { "name": "dpp", "version": "10.1.4", "description": "D++ Extremely Lightweight C++ Discord Library.", "homepage": "https://dpp.dev/", "license": "Apache-2.0", "supports": "(windows & !static & !uwp) | linux | osx", "dependencies": [ "nlohmann-json", "openssl", "opus", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/draco/disable-symlinks.patch ================================================ diff --git a/cmake/draco_targets.cmake b/cmake/draco_targets.cmake index c8c79f5..1cec5b8 100644 --- a/cmake/draco_targets.cmake +++ b/cmake/draco_targets.cmake @@ -111,9 +111,6 @@ macro(draco_add_executable) target_compile_features(${exe_NAME} PUBLIC cxx_std_11) - if(NOT EMSCRIPTEN) - set_target_properties(${exe_NAME} PROPERTIES VERSION ${DRACO_VERSION}) - endif() if(exe_OUTPUT_NAME) set_target_properties(${exe_NAME} PROPERTIES OUTPUT_NAME ${exe_OUTPUT_NAME}) @@ -364,14 +361,6 @@ macro(draco_add_library) set_target_properties(${lib_NAME} PROPERTIES PREFIX "") endif() - if(NOT EMSCRIPTEN) - # VERSION and SOVERSION as necessary - if((lib_TYPE STREQUAL BUNDLE OR lib_TYPE STREQUAL SHARED) AND NOT MSVC) - set_target_properties( - ${lib_NAME} PROPERTIES VERSION ${DRACO_SOVERSION} - SOVERSION ${DRACO_SOVERSION_MAJOR}) - endif() - endif() if(BUILD_SHARED_LIBS AND (MSVC OR WIN32)) if(lib_TYPE STREQUAL SHARED) ================================================ FILE: ports/draco/fix-compile-error-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a93267d..3a3ccf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,9 @@ draco_set_cxx_flags() draco_set_exe_linker_flags() draco_generate_features_h() +if (MSVC) + add_compile_options(/wd4996) +endif() # Draco source file listing variables. list( APPEND draco_attributes_sources diff --git a/src/draco/io/parser_utils.cc b/src/draco/io/parser_utils.cc index 378de73..be7e032 100644 --- a/src/draco/io/parser_utils.cc +++ b/src/draco/io/parser_utils.cc @@ -152,7 +152,9 @@ bool ParseSignedInt(DecoderBuffer *buffer, int32_t *value) { if (!ParseUnsignedInt(buffer, &v)) { return false; } - *value = (sign < 0) ? -v : v; + if (sign < 0) + v *= -1; + *value = v; return true; } ================================================ FILE: ports/draco/fix-pkgconfig.patch ================================================ diff --git a/cmake/draco.pc.template b/cmake/draco.pc.template index 050219c..2886bfc 100644 --- a/cmake/draco.pc.template +++ b/cmake/draco.pc.template @@ -1,6 +1,6 @@ Name: @PROJECT_NAME@ Description: Draco geometry de(com)pression library. Version: @DRACO_VERSION@ -Cflags: -I@includes_path@ -Libs: -L@libs_path@ -ldraco +Cflags: -I@CMAKE_INSTALL_FULL_INCLUDEDIR@ +Libs: -L@CMAKE_INSTALL_FULL_LIBDIR@ -ldraco Libs.private: @CMAKE_THREAD_LIBS_INIT@ ================================================ FILE: ports/draco/fix-uwperror.patch ================================================ diff --git a/src/draco/core/bit_utils.h b/src/draco/core/bit_utils.h index a102095..b6ba69b 100644 --- a/src/draco/core/bit_utils.h +++ b/src/draco/core/bit_utils.h @@ -27,6 +27,8 @@ #include #endif // defined(_MSC_VER) +#pragma warning(disable:4146) + namespace draco { // Returns the number of '1' bits within the input 32 bit integer. ================================================ FILE: ports/draco/install-linkage.diff ================================================ diff --git a/cmake/draco_install.cmake b/cmake/draco_install.cmake index 3be1ba1..b91938c 100644 --- a/cmake/draco_install.cmake +++ b/cmake/draco_install.cmake @@ -65,10 +65,14 @@ macro(draco_setup_install_target) ARCHIVE DESTINATION "${libs_path}" LIBRARY DESTINATION "${libs_path}") else() + if(BUILD_SHARED_LIBS) + set_target_properties(draco_static PROPERTIES EXCLUDE_FROM_ALL 1) + else() install( TARGETS draco_static EXPORT dracoExport DESTINATION "${libs_path}") + endif() if(BUILD_SHARED_LIBS) install( ================================================ FILE: ports/draco/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/draco REF "${VERSION}" SHA512 8b444744cdf12fb9d276916eb2ff0735cd1a6497b65b88813ec457fe2169db987db62e3db253a7d0f3ae7d45ae6502e8a9f8c0b81abde73e07b3bec69f9dc170 HEAD_REF master PATCHES fix-compile-error-uwp.patch fix-uwperror.patch fix-pkgconfig.patch disable-symlinks.patch install-linkage.diff ) if(VCPKG_TARGET_IS_EMSCRIPTEN) set(ENV{EMSCRIPTEN} "${EMSCRIPTEN_ROOT}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPYTHON_EXECUTABLE=: # unused with DRACO_JS_GLUE off -DDRACO_JS_GLUE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/draco) vcpkg_fixup_pkgconfig() # Install tools and plugins if(NOT VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_copy_tools(TOOL_NAMES draco_encoder draco_decoder AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/draco/vcpkg.json ================================================ { "name": "draco", "version": "1.5.7", "description": " A library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.", "homepage": "https://github.com/google/draco", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/drekar-launch-process-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO johnwason/drekar-launch-process-cpp REF v0.1.0 SHA512 5f2d9e9c8a6f9e2884441fdc6369441d5ad0e13c40412fc8f64043ba614b0abc86e34405dd75e8ea7760e5ca7a2c1457ef52c5b082db16645f7158f74a56872e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT} ) vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/drekar-launch-process-cpp/usage ================================================ The package drekar-launch-process-cpp is compatible with built-in CMake targets: find_package(drekar-launch-process-cpp CONFIG REQUIRED) target_link_libraries(main PRIVATE drekar-launch-process-cpp) ================================================ FILE: ports/drekar-launch-process-cpp/vcpkg.json ================================================ { "name": "drekar-launch-process-cpp", "version-semver": "0.1.0", "description": "Companion library for drekar-launch for C++", "homepage": "https://github.com/johnwason/drekar-launch-process-cpp", "license": "Apache-2.0", "supports": "(windows & (x86 | x64) & !uwp) | linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/drlibs/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mackron/dr_libs REF fa931f3285ced10ace628f7f1ac951e1951e7ea6 SHA512 a1422ac827334d9e4adcbb7bc9b51244659c1c6e07b8e5ab3af2b82c5ac4842c4fb54a6a19d02e287eb2a8c3f470f556b2d111e23f10cae83a7ffb4e36ebc04f HEAD_REF master ) # Copy the header files file(GLOB HEADER_FILES "${SOURCE_PATH}/*.h") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/drlibs/vcpkg.json ================================================ { "name": "drlibs", "version-date": "2026-03-03", "description": "Single-file audio decoding libraries for C/C++", "homepage": "https://github.com/mackron/dr_libs", "license": "Unlicense OR MIT-0" } ================================================ FILE: ports/drogon/0001-vcpkg.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cbc6d73..30a88c1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -361,11 +361,10 @@ endif() if (BUILD_POSTGRESQL) # find postgres - find_package(pg) - if (pg_FOUND) - message(STATUS "libpq inc path:" ${PG_INCLUDE_DIRS}) - message(STATUS "libpq lib:" ${PG_LIBRARIES}) - target_link_libraries(${PROJECT_NAME} PRIVATE pg_lib) + find_package(PostgreSQL REQUIRED) + if(PostgreSQL_FOUND) + set(pg_FOUND true) + target_link_libraries(${PROJECT_NAME} PRIVATE PostgreSQL::PostgreSQL) set(DROGON_SOURCES ${DROGON_SOURCES} orm_lib/src/postgresql_impl/PostgreSQLResultImpl.cc @@ -395,7 +394,7 @@ if (BUILD_POSTGRESQL) ${private_headers} orm_lib/src/postgresql_impl/PgConnection.h) endif (libpq_supports_batch) - endif (pg_FOUND) + endif (PostgreSQL_FOUND) endif (BUILD_POSTGRESQL) if (BUILD_MYSQL) @@ -420,7 +419,9 @@ if (BUILD_MYSQL) message(STATUS "Mariadb support mysql_optionsv") add_definitions(-DHAS_MYSQL_OPTIONSV) endif(HAS_MYSQL_OPTIONSV) - + if (NOT BUILD_SHARED_LIBS AND WIN32) + target_link_libraries(${PROJECT_NAME} PUBLIC bcrypt) + endif() set(DROGON_SOURCES ${DROGON_SOURCES} orm_lib/src/mysql_impl/MysqlConnection.cc ================================================ FILE: ports/drogon/0002-drogon-config.patch ================================================ diff --git a/cmake/templates/DrogonConfig.cmake.in b/cmake/templates/DrogonConfig.cmake.in index a21122a..6367259 100644 --- a/cmake/templates/DrogonConfig.cmake.in +++ b/cmake/templates/DrogonConfig.cmake.in @@ -19,7 +19,7 @@ find_dependency(UUID REQUIRED) endif(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD" AND NOT WIN32) find_dependency(ZLIB REQUIRED) if(@pg_FOUND@) -find_dependency(pg) +find_dependency(PostgreSQL) endif() if(@SQLite3_FOUND@) find_dependency(SQLite3) ================================================ FILE: ports/drogon/0003-deps-redis.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d7218a6..ccd08cb 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -467,10 +467,10 @@ if (BUILD_SQLITE) endif (BUILD_SQLITE) if (BUILD_REDIS) - find_package(Hiredis) + find_package(Hiredis NAMES hiredis CONFIG REQUIRED) if (Hiredis_FOUND) add_definitions(-DUSE_REDIS) - target_link_libraries(${PROJECT_NAME} PRIVATE Hiredis_lib) + target_link_libraries(${PROJECT_NAME} PRIVATE hiredis::hiredis) set(DROGON_SOURCES ${DROGON_SOURCES} nosql_lib/redis/src/RedisClientImpl.cc diff --git a/cmake/templates/DrogonConfig.cmake.in b/cmake/templates/DrogonConfig.cmake.in index 48eb393..9a9742e 100644 --- a/cmake/templates/DrogonConfig.cmake.in +++ b/cmake/templates/DrogonConfig.cmake.in @@ -38,7 +38,7 @@ if(@COZ-PROFILER_FOUND@) find_dependency(coz-profiler) endif() if(@Hiredis_FOUND@) -find_dependency(Hiredis) +find_dependency(hiredis CONFIG) endif() if(@yaml-cpp_FOUND@) find_dependency(yaml-cpp) ================================================ FILE: ports/drogon/0004-drogon-ctl.patch ================================================ diff --git a/cmake/DrogonUtilities.cmake b/cmake/DrogonUtilities.cmake index 7cb9799..5462572 100644 --- a/cmake/DrogonUtilities.cmake +++ b/cmake/DrogonUtilities.cmake @@ -3,6 +3,7 @@ # [TRUE to use_path_as_namespace] [prefixed namespace]) # ############################################################################## function(drogon_create_views arg) + find_program(DROGON_CTL_COMMAND drogon_ctl REQUIRED) if(ARGC LESS 3) message(STATUS "arguments error when calling drogon_create_views") return() @@ -39,7 +40,7 @@ function(drogon_create_views arg) set(ns "") endif() add_custom_command(OUTPUT ${ARGV2}/${outputFile}.h ${ARGV2}/${outputFile}.cc - COMMAND drogon_ctl + COMMAND ${DROGON_CTL_COMMAND} ARGS create view @@ -55,7 +56,7 @@ function(drogon_create_views arg) else() get_filename_component(classname ${cspFile} NAME_WE) add_custom_command(OUTPUT ${ARGV2}/${classname}.h ${ARGV2}/${classname}.cc - COMMAND drogon_ctl + COMMAND ${DROGON_CTL_COMMAND} ARGS create view ================================================ FILE: ports/drogon/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO drogonframework/drogon REF "v${VERSION}" SHA512 a3a4de363ffb21066ae4ab629c5b33287ef14ca085052568b005102679d724795e45edaca223f2bb0d6b22edd4d4a2400ffeec445182faf23a2b2c2e77338337 HEAD_REF master PATCHES 0001-vcpkg.patch 0002-drogon-config.patch 0003-deps-redis.patch 0004-drogon-ctl.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ctl BUILD_CTL mysql BUILD_MYSQL orm BUILD_ORM postgres BUILD_POSTGRESQL postgres LIBPQ_BATCH_MODE redis BUILD_REDIS sqlite3 BUILD_SQLITE yaml BUILD_YAML_CONFIG ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_EXAMPLES=OFF -DUSE_SUBMODULE=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install(ADD_BIN_TO_PATH) # Fix CMake files vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Drogon) vcpkg_fixup_pkgconfig() # Copy drogon_ctl if("ctl" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES _drogon_ctl drogon_ctl AUTO_CLEAN) endif() # Remove includes in debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Copy pdb files vcpkg_copy_pdbs() ================================================ FILE: ports/drogon/usage ================================================ The package drogon provides CMake targets: find_package(Drogon CONFIG REQUIRED) target_link_libraries(main PRIVATE Drogon::Drogon) ================================================ FILE: ports/drogon/vcpkg.json ================================================ { "name": "drogon", "version-semver": "1.9.12", "description": "A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows", "homepage": "https://github.com/an-tao/drogon", "documentation": "https://drogon.docsforge.com/master/overview/", "license": "MIT", "supports": "!uwp", "dependencies": [ "brotli", "jsoncpp", { "name": "libuuid", "platform": "!windows & !osx" }, "trantor", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ctl": { "description": "Build drogon_ctl tool.", "supports": "native", "dependencies": [ { "name": "drogon", "host": true, "default-features": false, "features": [ "ctl" ] } ] }, "mysql": { "description": "Support reading and writing from/to MySQL databases.", "dependencies": [ { "name": "drogon", "features": [ "orm" ] }, { "name": "libmariadb", "features": [ "iconv" ], "platform": "osx" }, { "name": "libmariadb", "platform": "!osx" } ] }, "orm": { "description": "Build with object-relational mapping support." }, "postgres": { "description": "Support reading and writing from/to Postgres databases.", "dependencies": [ { "name": "drogon", "features": [ "orm" ] }, "libpq" ] }, "redis": { "description": "Support reading and writing from/to Redis databases.", "dependencies": [ { "name": "drogon", "features": [ "orm" ] }, "hiredis" ] }, "sqlite3": { "description": "Support reading and writing from/to SQLite databases.", "dependencies": [ { "name": "drogon", "features": [ "orm" ] }, "sqlite3" ] }, "yaml": { "description": "Support YAML Drogon configuration files", "dependencies": [ "yaml-cpp" ] } } } ================================================ FILE: ports/dstorage/dstorage-config.cmake.in ================================================ get_filename_component(_dstorage_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_dstorage_root "${_dstorage_root}" PATH) get_filename_component(_dstorage_root "${_dstorage_root}" PATH) set(_dstorage_root_lib "${_dstorage_root}/lib/dstorage.lib") if (EXISTS "${_dstorage_root_lib}") add_library(Microsoft::DirectStorage SHARED IMPORTED) set_target_properties(Microsoft::DirectStorage PROPERTIES IMPORTED_LOCATION "${_dstorage_root}/bin/dstorage.dll" IMPORTED_IMPLIB "${_dstorage_root_lib}" INTERFACE_INCLUDE_DIRECTORIES "${_dstorage_root}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::DirectStorageCore SHARED IMPORTED) set_target_properties(Microsoft::DirectStorageCore PROPERTIES IMPORTED_LOCATION "${_dstorage_root}/bin/dstoragecore.dll" IMPORTED_IMPLIB "${_dstorage_root_lib}" IMPORTED_LINK_INTERFACE_LANGUAGES "C") target_link_libraries(Microsoft::DirectStorage INTERFACE Microsoft::DirectStorageCore) set(dstorage_FOUND TRUE) else() set(dstorage_FOUND FALSE) endif() unset(_dstorage_root_lib) unset(_dstorage_root) ================================================ FILE: ports/dstorage/portfile.cmake ================================================ # Set VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY instead of using `vcpkg_check_linkage` because # these DLLs don't link with a CRT. set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.Direct3D.DirectStorage/${VERSION}" FILENAME "directstorage.${VERSION}.zip" SHA512 589a83194e9e05654523b9ca10401982d235dbaa991c8535807d5b9f851d877281417d79a0210f77b46c0f65114f805f4a12f04b7bdb3de8a00fe20c78def791 ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64|arm64ec") set(DS_ARCH arm64) else() set(DS_ARCH ${VCPKG_TARGET_ARCHITECTURE}) endif() file(INSTALL "${PACKAGE_PATH}/native/include/dstorage.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${PACKAGE_PATH}/native/include/dstorageerr.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${PACKAGE_PATH}/native/lib/${DS_ARCH}/dstorage.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${PACKAGE_PATH}/native/bin/${DS_ARCH}/dstorage.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY "${PACKAGE_PATH}/native/bin/${DS_ARCH}/dstoragecore.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug") file(COPY "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/dstorage-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" COPYONLY) ================================================ FILE: ports/dstorage/usage ================================================ The DirectStorage package provides CMake targets: find_package(dstorage CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DirectStorage) ================================================ FILE: ports/dstorage/vcpkg.json ================================================ { "name": "dstorage", "version": "1.3.0", "description": "DirectStorage for Windows", "homepage": "https://aka.ms/directstorage/", "documentation": "https://github.com/microsoft/DirectStorage", "license": null, "supports": "windows & !arm32 & !uwp & !xbox" } ================================================ FILE: ports/dtl/portfile.cmake ================================================ #header-only library include(CMakePackageConfigHelpers) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cubicdaiya/dtl REF "v${VERSION}" SHA512 53a448ce499d96c5030ff787db68dd4cb52ee9686453da81aeb5c143e21d4a10fcc4c9b88ebf86d71824cb919d6e4ebf39df52b74bd9333f411935e5f23bfa86 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/${PORT}" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/dtl/vcpkg.json ================================================ { "name": "dtl", "version": "1.21", "description": "Diff template library", "license": "BSD-4-Clause" } ================================================ FILE: ports/duckdb/library-linkage-excel.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 981de80..65aa1da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,6 +35,10 @@ target_link_libraries(${EXTENSION_NAME} EXPAT::EXPAT MINIZIP::minizip-ng target_link_libraries(${LOADABLE_EXTENSION_NAME} EXPAT::EXPAT MINIZIP::minizip-ng ZLIB::ZLIB) +set_target_properties(${LOADABLE_EXTENSION_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS ${EXTENSION_NAME} EXPORT "${DUCKDB_EXPORT_SET}" ================================================ FILE: ports/duckdb/library-linkage-httpfs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 40a19e8..8b75d40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,10 @@ else() endif() +set_target_properties(httpfs_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS httpfs_extension EXPORT "${DUCKDB_EXPORT_SET}" ================================================ FILE: ports/duckdb/library-linkage.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e9d498..70414b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -410,7 +410,6 @@ option(EXTENSION_STATIC_BUILD FALSE) if(WIN32 OR ZOS) - set(EXTENSION_STATIC_BUILD TRUE) add_definitions(-D_SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS=1) endif() @@ -857,6 +856,7 @@ if (NOT EXTENSION_CONFIG_BUILD AND NOT ${EXTENSION_TESTS_ONLY} AND NOT CLANG_TID message(STATUS "Extensions will be deployed to: ${LOCAL_EXTENSION_REPO_DIR}") endif() endif() +set_target_properties(duckdb_local_extension_repo PROPERTIES EXCLUDE_FROM_ALL 1) function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTENSION_VERSION CAPI_VERSION PARAMETERS) set(TARGET_NAME ${NAME}_loadable_extension) @@ -875,6 +875,8 @@ function(build_loadable_extension_directory NAME ABI_TYPE OUTPUT_DIRECTORY EXTEN if(EMSCRIPTEN) add_library(${TARGET_NAME} STATIC ${FILES}) + elseif(WIN32) + add_library(${TARGET_NAME} MODULE ${FILES}) else() add_library(${TARGET_NAME} SHARED ${FILES}) endif() diff --git a/DuckDBConfig.cmake.in b/DuckDBConfig.cmake.in index 7c5ce31..bc4f40d 100644 --- a/DuckDBConfig.cmake.in +++ b/DuckDBConfig.cmake.in @@ -6,8 +6,24 @@ include(CMakeFindDependencyMacro) find_dependency(Threads) -if(NOT @WITH_INTERNAL_ICU@) - find_dependency(ICU COMPONENTS i18n uc data) +if(NOT "@BUILD_SHARED_LIBS@") + set(z_vcpkg_duckdb_extensions_names "@DUCKDB_EXTENSION_NAMES@") + if("icu" IN_LIST z_vcpkg_duckdb_extensions_names AND NOT "@WITH_INTERNAL_ICU@") + find_dependency(ICU COMPONENTS i18n uc data) + endif() + if("excel" IN_LIST z_vcpkg_duckdb_extensions_names) + find_dependency(EXPAT) + find_dependency(ZLIB) + find_dependency(minizip-ng CONFIG) + endif() + if("httpfs" IN_LIST z_vcpkg_duckdb_extensions_names) + find_dependency(CURL) + find_dependency(OpenSSL) + if(MINGW) + find_dependency(ZLIB) + endif() + endif() + unset(z_vcpkg_duckdb_extensions_names) endif() # Compute paths @@ -18,7 +34,7 @@ if(NOT TARGET duckdb AND NOT DuckDB_BINARY_DIR) include("${DuckDB_CMAKE_DIR}/DuckDBExports.cmake") endif() -if(DuckDB_USE_STATIC_LIBS) +if(NOT "@BUILD_SHARED_LIBS@") set(DuckDB_LIBRARIES duckdb_static) else() set(DuckDB_LIBRARIES duckdb) diff --git a/extension/autocomplete/CMakeLists.txt b/extension/autocomplete/CMakeLists.txt index 544e65a..a8e1e43 100644 --- a/extension/autocomplete/CMakeLists.txt +++ b/extension/autocomplete/CMakeLists.txt @@ -13,6 +13,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(autocomplete ${PARAMETERS} ${AUTOCOMPLETE_EXTENSION_FILES}) +set_target_properties(autocomplete_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS autocomplete_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/core_functions/CMakeLists.txt b/extension/core_functions/CMakeLists.txt index c97cd77..0827683 100644 --- a/extension/core_functions/CMakeLists.txt +++ b/extension/core_functions/CMakeLists.txt @@ -14,6 +14,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(core_functions ${PARAMETERS} ${CORE_FUNCTION_FILES}) target_link_libraries(core_functions_loadable_extension duckdb_skiplistlib) +set_target_properties(core_functions_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS core_functions_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/icu/CMakeLists.txt b/extension/icu/CMakeLists.txt index a5bb58a..8edff2b 100644 --- a/extension/icu/CMakeLists.txt +++ b/extension/icu/CMakeLists.txt @@ -42,6 +42,11 @@ build_loadable_extension(icu ${PARAMETERS} ${ICU_EXTENSION_FILES}) if(NOT WITH_INTERNAL_ICU) target_link_libraries(icu_loadable_extension ICU::i18n ICU::uc ICU::data) endif() + +set_target_properties(icu_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS icu_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/jemalloc/CMakeLists.txt b/extension/jemalloc/CMakeLists.txt index 38be497..75cb8fb 100644 --- a/extension/jemalloc/CMakeLists.txt +++ b/extension/jemalloc/CMakeLists.txt @@ -12,6 +12,9 @@ set(JEMALLOC_EXTENSION_FILES jemalloc_extension.cpp ${JEMALLOC_OBJECT_FILES}) build_static_extension(jemalloc ${JEMALLOC_EXTENSION_FILES}) # we do not do build_loadable_extension here because jemalloc is static-only +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS jemalloc_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/json/CMakeLists.txt b/extension/json/CMakeLists.txt index 80b4af4..81055de 100644 --- a/extension/json/CMakeLists.txt +++ b/extension/json/CMakeLists.txt @@ -41,6 +41,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(json ${PARAMETERS} ${JSON_EXTENSION_FILES}) target_link_libraries(json_loadable_extension duckdb_yyjson) +set_target_properties(json_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS json_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/parquet/CMakeLists.txt b/extension/parquet/CMakeLists.txt index a8335d8..ef2ea3f 100644 --- a/extension/parquet/CMakeLists.txt +++ b/extension/parquet/CMakeLists.txt @@ -82,6 +82,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(parquet ${PARAMETERS} ${PARQUET_EXTENSION_FILES}) target_link_libraries(parquet_loadable_extension duckdb_mbedtls duckdb_zstd) +set_target_properties(parquet_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS parquet_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/tpcds/CMakeLists.txt b/extension/tpcds/CMakeLists.txt index 6ec4cb8..db51141 100644 --- a/extension/tpcds/CMakeLists.txt +++ b/extension/tpcds/CMakeLists.txt @@ -11,6 +11,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(tpcds ${PARAMETERS} tpcds_extension.cpp ${DSDGEN_OBJECT_FILES}) +set_target_properties(tpcds_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS tpcds_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/extension/tpch/CMakeLists.txt b/extension/tpch/CMakeLists.txt index 46dcb12..46b9950 100644 --- a/extension/tpch/CMakeLists.txt +++ b/extension/tpch/CMakeLists.txt @@ -11,6 +11,10 @@ set(PARAMETERS "-warnings") build_loadable_extension(tpch ${PARAMETERS} tpch_extension.cpp ${DBGEN_OBJECT_FILES}) +set_target_properties(tpch_loadable_extension PROPERTIES EXCLUDE_FROM_ALL 1) +if(BUILD_SHARED_LIBS) + return() +endif() install( TARGETS tpch_extension EXPORT "${DUCKDB_EXPORT_SET}" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1915e92..83da5f4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -172,8 +172,15 @@ else() endif() +if(BUILD_SHARED_LIBS) + set(INSTALL_TARGET duckdb) + set_target_properties(duckdb_static PROPERTIES EXCLUDE_FROM_ALL 1) +else() + set(INSTALL_TARGET duckdb_static) + set_target_properties(duckdb PROPERTIES EXCLUDE_FROM_ALL 1) +endif() install( - TARGETS duckdb duckdb_static + TARGETS ${INSTALL_TARGET} EXPORT "${DUCKDB_EXPORT_SET}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" ================================================ FILE: ports/duckdb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO duckdb/duckdb REF v${VERSION} SHA512 2287ff1af67808e495ca4da527bd54e9c9f2044ed1bb4749cdaeee7993a7b0edca73cccd476a607442a4bf313b43e2358bf6ca28035e2dbe52b16847f6e5b30a HEAD_REF main PATCHES library-linkage.diff ) # Remove vendored dependencies which are optional or not properly namespaced file(REMOVE_RECURSE "${SOURCE_PATH}/extension/third_party/icu" "${SOURCE_PATH}/third_party/catch" "${SOURCE_PATH}/third_party/imdb" "${SOURCE_PATH}/third_party/snowball" "${SOURCE_PATH}/third_party/tpce-tool" ) set(extension_dirs "") if("excel" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH DUCKDB_EXCEL_SOURCE_PATH REPO duckdb/duckdb-excel REF 9421a2d75bd7544336caa73e5f9e6063cc7f6992 SHA512 0532844ba531d70e78c499ce7caefd772da4b013459676da1b552b20c3ac674af979b1958d84566147580cd39cf97ba4fefc010bcfb5fcb70628deaf2e95dbb0 HEAD_REF main PATCHES library-linkage-excel.diff ) list(APPEND extension_dirs "${DUCKDB_EXCEL_SOURCE_PATH}") file(WRITE "${SOURCE_PATH}/.github/config/extensions/excel.cmake" " duckdb_extension_load(excel SOURCE_DIR \"${DUCKDB_EXCEL_SOURCE_PATH}\" INCLUDE_DIR \"${DUCKDB_EXCEL_SOURCE_PATH}/src/excel/include\" ) ") endif() if("httpfs" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH DUCKDB_HTTPFS_SOURCE_PATH REPO duckdb/duckdb_httpfs REF 8ff2283fb14b443e673c58e2e9621e3c3215d794 SHA512 df2a61667b1fcf0e7a1d455a1805231c61362a135e7a93079b47032246b502b48aafcbae4aeee7b29145c25e3b98afa5ef6e3076ffcb71562acfbae6e2fbc087 HEAD_REF main PATCHES library-linkage-httpfs.diff ) list(APPEND extension_dirs "${DUCKDB_HTTPFS_SOURCE_PATH}") file(WRITE "${SOURCE_PATH}/.github/config/extensions/httpfs.cmake" " duckdb_extension_load(httpfs SOURCE_DIR \"${DUCKDB_HTTPFS_SOURCE_PATH}\" INCLUDE_DIR \"${DUCKDB_HTTPFS_SOURCE_PATH}/src/include\" ) ") endif() if("iceberg" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH DUCKDB_ICEBERG_SOURCE_PATH REPO duckdb/duckdb-iceberg REF 6cec0127c340bc7e83c7e6b2390e27cb555a9d0a SHA512 d49f7e9f0492111ac81f0c34db84ca675c6a39fb66f257d080953a53922243d6cff09ee1c1dbb0f5fefc911b936ed8b03df2b30431cd6e2319c4cbefcf8690b6 HEAD_REF main ) list(APPEND extension_dirs "${DUCKDB_ICEBERG_SOURCE_PATH}") file(WRITE "${SOURCE_PATH}/.github/config/extensions/iceberg.cmake" " duckdb_extension_load(iceberg SOURCE_DIR \"${DUCKDB_ICEBERG_SOURCE_PATH}\" INCLUDE_DIR \"${DUCKDB_ICEBERG_SOURCE_PATH}/src/include\" ) ") endif() set(BUILD_EXTENSIONS "${FEATURES}") list(FILTER BUILD_EXTENSIONS INCLUDE REGEX "^(autocomplete|excel|httpfs|icu|json|tpcds|tpch)\$") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" EXTENSION_STATIC_BUILD) if(VCPKG_CROSSCOMPILING AND NOT DEFINED DUCKDB_EXPLICIT_PLATFORM) set(DUCKDB_EXPLICIT_PLATFORM "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(DUCKDB_EXPLICIT_PLATFORM "arm64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(DUCKDB_EXPLICIT_PLATFORM "amd64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(DUCKDB_EXPLICIT_PLATFORM "i686") endif() if(DUCKDB_EXPLICIT_PLATFORM) if(VCPKG_TARGET_IS_ANDROID) string(APPEND DUCKDB_EXPLICIT_PLATFORM "-linux_android") elseif(VCPKG_TARGET_IS_FREEBSD) string(APPEND DUCKDB_EXPLICIT_PLATFORM "-freebsd") elseif(VCPKG_TARGET_IS_LINUX) string(APPEND DUCKDB_EXPLICIT_PLATFORM "-linux") elseif(VCPKG_TARGET_IS_OSX) string(APPEND DUCKDB_EXPLICIT_PLATFORM "-osx") elseif(VCPKG_TARGET_IS_WINDOWS) string(APPEND DUCKDB_EXPLICIT_PLATFORM "-windows") if(VCPKG_TARGET_IS_MINGW) string(APPEND DUCKDB_EXPLICIT_PLATFORM "_mingw") endif() elseif() set(DUCKDB_EXPLICIT_PLATFORM "") # unknown. override in triplet file. endif() endif() endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DOVERRIDE_GIT_DESCRIBE=v${VERSION}-0-g0123456789 -DDUCKDB_EXPLICIT_PLATFORM=${DUCKDB_EXPLICIT_PLATFORM} -DDUCKDB_EXPLICIT_VERSION=v${VERSION} "-DBUILD_EXTENSIONS=${BUILD_EXTENSIONS}" -DBUILD_SHELL=FALSE -DBUILD_UNITTESTS=OFF -DCMAKE_CXX_STANDARD=17 -DCMAKE_JOB_POOL_LINK=console # Serialize linking to avoid OOM -DENABLE_EXTENSION_AUTOINSTALL=1 -DENABLE_EXTENSION_AUTOLOADING=1 -DENABLE_SANITIZER=OFF -DENABLE_THREAD_SANITIZER=OFF -DENABLE_UBSAN=OFF "-DEXTENSION_CONFIG_BASE_DIR=${SOURCE_PATH}/OUT_OF_TREE" "-DEXTENSION_STATIC_BUILD=${EXTENSION_STATIC_BUILD}" "-DINSTALL_CMAKE_DIR:STRING=share/${PORT}" -DWITH_INTERNAL_ICU=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") foreach(path IN ITEMS duckdb.h duckdb/common/winapi.hpp) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${path}" "#ifdef DUCKDB_STATIC_BUILD" "#if 1") endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # empty dirs file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/duckdb/main/capi/header_generation") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/duckdb/storage/serialization") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(third_party_licenses "") file(COPY_FILE "${SOURCE_PATH}/third_party/thrift/thrift/LICENSE" "${SOURCE_PATH}/third_party/thrift/LICENSE") file(GLOB third_party_files "${SOURCE_PATH}/third_party/*") foreach(maybe_directory IN LISTS extension_dirs third_party_files) if(IS_DIRECTORY "${maybe_directory}") cmake_path(GET maybe_directory FILENAME package) set(license_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/## ${package} license") file(COPY_FILE "${maybe_directory}/LICENSE" "${license_file}") list(APPEND third_party_licenses "${license_file}") endif() endforeach() vcpkg_install_copyright( COMMENT [[ Duckdb contains copies of many third-party packages which are subject to separate license terms. ]] FILE_LIST "${SOURCE_PATH}/LICENSE" ${third_party_licenses} ) ================================================ FILE: ports/duckdb/usage ================================================ duckdb provides CMake targets: find_package(DuckDB CONFIG REQUIRED) target_link_libraries(main PRIVATE $,duckdb,duckdb_static>) ================================================ FILE: ports/duckdb/vcpkg.json ================================================ { "name": "duckdb", "version": "1.4.4", "description": "High-performance in-process analytical database system", "homepage": "https://duckdb.org", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "autocomplete": { "description": "Statically link the autocomplete extension into DuckDB" }, "excel": { "description": "Statically link the excel extension into DuckDB", "dependencies": [ "expat", { "name": "minizip-ng", "default-features": false } ] }, "httpfs": { "description": "Statically link the httpfs extension into DuckDB", "dependencies": [ { "name": "curl", "default-features": false }, "openssl", { "name": "zlib", "platform": "mingw" } ] }, "iceberg": { "description": "Statically link the iceberg extension into DuckDB", "dependencies": [ "roaring" ] }, "icu": { "description": "Statically link the icu extension into DuckDB", "dependencies": [ { "name": "icu", "default-features": false } ] }, "json": { "description": "Statically link the json extension into DuckDB" }, "tpcds": { "description": "Statically link the tpcds extension into DuckDB" }, "tpch": { "description": "Statically link the tpch extension into DuckDB" } } } ================================================ FILE: ports/duckx/fix_dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f45218659..1ec4250c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,9 +9,11 @@ endif() option(BUILD_SHARED_LIBS "Build shared instead of static library" OFF) option(BUILD_SAMPLE "Build provided sample" OFF) -set(HEADERS src/duckx.hpp src/zip.h src/miniz.h - src/pugixml.hpp src/pugiconfig.hpp) -set(SOURCES src/duckx.cpp src/zip.c src/pugixml.cpp) +find_package(libzip REQUIRED) +find_package(pugixml REQUIRED) + +set(HEADERS src/duckx.hpp) +set(SOURCES src/duckx.cpp) if(BUILD_SHARED_LIBS) add_library(duckx SHARED ${HEADERS} ${SOURCES}) @@ -19,6 +21,8 @@ else() add_library(duckx STATIC ${HEADERS} ${SOURCES}) endif() +target_link_libraries(duckx PUBLIC libzip::zip pugixml::pugixml) + add_library(duckx::duckx ALIAS duckx) target_include_directories(duckx PUBLIC @@ -38,12 +42,22 @@ endif() include(GNUInstallDirs) install( TARGETS duckx - EXPORT duckxConfig + EXPORT duckxTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${INSTALL_SUFFIX} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${INSTALL_SUFFIX} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -install(EXPORT duckxConfig NAMESPACE duckx:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/duckx) +install(EXPORT duckxTargets NAMESPACE duckx:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/duckx) +include(CMakePackageConfigHelpers) +configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/duckxConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/duckxConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/duckx" + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO) +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/duckxConfigVersion.cmake" COMPATIBILITY ExactVersion) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/duckxConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/duckxConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/duckx") + install(FILES ${HEADERS} DESTINATION include) diff --git a/duckxConfig.cmake.in b/duckxConfig.cmake.in new file mode 100644 index 000000000..960b03b3b --- /dev/null +++ b/duckxConfig.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(libzip) +find_dependency(pugixml) +include("${CMAKE_CURRENT_LIST_DIR}/duckxTargets.cmake") \ No newline at end of file ================================================ FILE: ports/duckx/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO amiremohamadi/DuckX REF v1.2.2 SHA512 3f1e626973b4638adaffcc0a20f59791f3a70abda1d2d09fddca9312014cef86d097f24873e74ef58c775b27c71a637e44f340da01a301b00ef334600bd412d6 PATCHES fix_dependencies.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/duckx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/duckx/vcpkg.json ================================================ { "name": "duckx", "version": "1.2.2", "port-version": 1, "description": "DuckX is a library for creation of Office docx files.", "homepage": "https://github.com/amiremohamadi/DuckX", "license": "MIT", "dependencies": [ "libzip", "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/duilib/enable-static.patch ================================================ diff --git a/DuiLib/CMakeLists.txt b/DuiLib/CMakeLists.txt index 96b8fe4..99dc314 100644 --- a/DuiLib/CMakeLists.txt +++ b/DuiLib/CMakeLists.txt @@ -19,8 +19,14 @@ if (MSVC) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /source-charset:.936") endif() +if (BUILD_SHARED_LIBS STREQUAL ON) + SET(LINKAGE SHARED) +else() + SET(LINKAGE STATIC) +endif() + set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) -add_library(duilib SHARED ${Control_src} ${Core_src} ${Layout_src} ${Utils_src} ${Root_src}) +add_library(duilib ${LINKAGE} ${Control_src} ${Core_src} ${Layout_src} ${Utils_src} ${Root_src}) add_definitions(-DUILIB_EXPORTS) target_link_libraries(duilib comctl32 gdi32 user32) ================================================ FILE: ports/duilib/fix-arm-build.patch ================================================ diff --git a/DuiLib/CMakeLists.txt b/DuiLib/CMakeLists.txt index 6a4da5a..4961174 100644 --- a/DuiLib/CMakeLists.txt +++ b/DuiLib/CMakeLists.txt @@ -18,5 +18,5 @@ set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) add_library(duilib SHARED ${Control_src} ${Core_src} ${Layout_src} ${Utils_src} ${Root_src}) add_definitions(-DUILIB_EXPORTS) -target_link_libraries(duilib comctl32) +target_link_libraries(duilib comctl32 gdi32 user32) target_include_directories(duilib PUBLIC $) ================================================ FILE: ports/duilib/fix-encoding.patch ================================================ diff --git a/DuiLib/CMakeLists.txt b/DuiLib/CMakeLists.txt index 4961174..96b8fe4 100644 --- a/DuiLib/CMakeLists.txt +++ b/DuiLib/CMakeLists.txt @@ -14,6 +14,11 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Core) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Layout) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/Utils) +if (MSVC) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /source-charset:.936") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /source-charset:.936") +endif() + set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) add_library(duilib SHARED ${Control_src} ${Core_src} ${Layout_src} ${Utils_src} ${Root_src}) ================================================ FILE: ports/duilib/fix-include-path.patch ================================================ diff --git a/DuiLib/CMakeLists.txt b/DuiLib/CMakeLists.txt index 188f36f..5c706fb 100644 --- a/DuiLib/CMakeLists.txt +++ b/DuiLib/CMakeLists.txt @@ -30,7 +30,7 @@ add_library(duilib ${LINKAGE} ${Control_src} ${Core_src} ${Layout_src} ${Utils_s add_definitions(-DUILIB_EXPORTS) target_link_libraries(duilib comctl32 gdi32 user32) -target_include_directories(duilib PUBLIC $) +target_include_directories(duilib PUBLIC $) target_compile_definitions(duilib PRIVATE UILIB_EXPORTS) set_target_properties(duilib PROPERTIES OUTPUT_NAME "duilib") @@ -41,11 +41,11 @@ file(GLOB DUILIB_UTILS_HDRS "${CMAKE_CURRENT_SOURCE_DIR}/Utils/*.h") file(GLOB DUILIB_CONTROL_HDRS "${CMAKE_CURRENT_SOURCE_DIR}/Control/*.h") file(GLOB DUILIB_LAYOUT_HDRS "${CMAKE_CURRENT_SOURCE_DIR}/Layout/*.h") -install(FILES ${DUILIB_PUBLIC_HDRS} DESTINATION include) -install(FILES ${DUILIB_CORE_HDRS} DESTINATION include/Core) -install(FILES ${DUILIB_UTILS_HDRS} DESTINATION include/Utils) -install(FILES ${DUILIB_CONTROL_HDRS} DESTINATION include/Control) -install(FILES ${DUILIB_LAYOUT_HDRS} DESTINATION include/Layout) +install(FILES ${DUILIB_PUBLIC_HDRS} DESTINATION include/duilib) +install(FILES ${DUILIB_CORE_HDRS} DESTINATION include/duilib/Core) +install(FILES ${DUILIB_UTILS_HDRS} DESTINATION include/duilib/Utils) +install(FILES ${DUILIB_CONTROL_HDRS} DESTINATION include/duilib/Control) +install(FILES ${DUILIB_LAYOUT_HDRS} DESTINATION include/duilib/Layout) # Install binaries install( ================================================ FILE: ports/duilib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO duilib/duilib REF 502ac62be82c2bc33cf0e8635782fb370c68b1e7 SHA512 249d2b7ab5b830a4b7a69e52e2e141f14e59d6bad610c48c7c2e4a8a974e45ace94d5106ea9583053d8a8ce389854ccea7c62e32c3685d2f07fe26225ece5e5a HEAD_REF master PATCHES "fix-arm-build.patch" "fix-encoding.patch" "enable-static.patch" "fix-include-path.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" NO_CHARSET_FLAG OPTIONS -DDUILIB_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/duilib/vcpkg.json ================================================ { "name": "duilib", "version-date": "2024-12-23", "port-version": 1, "description": "Duilib is a free open source DirectUI interface library under Windows. It is widely accepted by major Internet companies due to its simple and easy to expand design and stable and efficient implementation. It is widely used in IM, video client, stock market software, navigation software, and mobile phone assistive software. Duilib is still evolving, and will continue to improve in many aspects such as documentation, examples, animations, and rendering engines.", "homepage": "https://github.com/duilib/duilib", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dukglue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Aloshi/dukglue REF c3ec2a463a03a4fa34715aa75273537d39900edb #2022-11-08 HEAD_REF master SHA512 60bf0274113fa7d547ed2890268782176c507ab0b7ea601362640bb2d4d637ce013a4dabeffbd8a82ed672b2de7778355b6e79642d70cfc2c1f1cf2c2fd9f6c1 ) file(COPY "${SOURCE_PATH}/include/dukglue" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/dukglue/vcpkg.json ================================================ { "name": "dukglue", "version-date": "2022-11-08", "description": "A C++ binding/wrapper library for the Duktape JavaScript interpreter.", "homepage": "https://github.com/Aloshi/dukglue", "license": "MIT", "dependencies": [ "duktape" ] } ================================================ FILE: ports/duktape/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) option(CMAKE_VERBOSE_MAKEFILE "Create verbose makefile" OFF) option(BUILD_SHARED_LIBS "Create duktape as a shared library" ON) project(duktape VERSION ${VERSION}) file(GLOB_RECURSE DUKTAPE_SOURCES "${CMAKE_CURRENT_LIST_DIR}/src/*.c") file(GLOB_RECURSE DUKTAPE_HEADERS "${CMAKE_CURRENT_LIST_DIR}/src/*.h") add_library(duktape ${DUKTAPE_SOURCES} ${DUKTAPE_HEADERS}) target_include_directories(duktape PRIVATE "${CMAKE_CURRENT_LIST_DIR}/src") target_include_directories(duktape PUBLIC "$") set_target_properties(duktape PROPERTIES PUBLIC_HEADER "${DUKTAPE_HEADERS}") set_target_properties(duktape PROPERTIES VERSION ${duktape_VERSION}) set_target_properties(duktape PROPERTIES SOVERSION ${duktape_VERSION_MAJOR}) if (BUILD_SHARED_LIBS) target_compile_definitions(duktape PRIVATE -DDUK_F_DLL_BUILD) endif () install(TARGETS duktape EXPORT duktapeTargets ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib" RUNTIME DESTINATION "bin" PUBLIC_HEADER DESTINATION "include" COMPONENT dev ) install(EXPORT duktapeTargets FILE unofficial-duktape-config.cmake NAMESPACE unofficial::duktape:: DESTINATION "share/unofficial-duktape" ) export(PACKAGE duktape) include(CMakePackageConfigHelpers) write_basic_package_version_file("${PROJECT_BINARY_DIR}/unofficial-duktape-config-version.cmake" COMPATIBILITY SameMajorVersion ) install(FILES "${PROJECT_BINARY_DIR}/unofficial-duktape-config-version.cmake" DESTINATION "share/unofficial-duktape" ) set(prefix "") set(LIBDIR "/lib") set(VERSION "${duktape_VERSION}") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/duktape.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/duktape.pc" @ONLY) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/duktape.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) ================================================ FILE: ports/duktape/duktapeConfig.cmake ================================================ # - Try to find duktape # Once done this will define # # DUKTAPE_FOUND - system has Duktape # DUKTAPE_INCLUDE_DIRS - the Duktape include directory # DUKTAPE_LIBRARIES - Link these to use DUKTAPE # DUKTAPE_DEFINITIONS - Compiler switches required for using Duktape # include(FindPackageHandleStandardArgs) include(SelectLibraryConfigurations) find_path(DUKTAPE_INCLUDE_DIR duktape.h PATHS "${CMAKE_CURRENT_LIST_DIR}/../../include" NO_DEFAULT_PATH REQUIRED) find_library(DUKTAPE_LIBRARY_RELEASE NAMES duktape PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH REQUIRED) find_library(DUKTAPE_LIBRARY_DEBUG NAMES duktape PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH) select_library_configurations(DUKTAPE) find_package_handle_standard_args(duktape REQUIRED_VARS DUKTAPE_LIBRARY DUKTAPE_INCLUDE_DIR) if(DUKTAPE_FOUND) set(DUKTAPE_INCLUDE_DIRS "${DUKTAPE_INCLUDE_DIR}") set(DUKTAPE_LIBRARIES "${DUKTAPE_LIBRARY}") set(DUKTAPE_DEFINITIONS "") endif () mark_as_advanced( DUKTAPE_INCLUDE_DIR DUKTAPE_LIBRARY_RELEASE DUKTAPE_LIBRARY_DEBUG ) ================================================ FILE: ports/duktape/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE URLS https://github.com/svaarala/duktape/releases/download/v2.7.0/duktape-2.7.0.tar.xz FILENAME duktape-2.7.0.tar.xz SHA512 8ff5465c9c335ea08ebb0d4a06569c991b9dc4661b63e10da6b123b882e7375e82291d6b883c2644902d68071a29ccc880dae8229447cebe710c910b54496c1d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${SOURCE_PATH}/src/duk_config.h" "#undef DUK_F_DLL_BUILD" "#define DUK_F_DLL_BUILD") else() vcpkg_replace_string("${SOURCE_PATH}/src/duk_config.h" "#define DUK_F_DLL_BUILD" "#undef DUK_F_DLL_BUILD" IGNORE_UNCHANGED) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-duktape) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Legacy package based on find commands, not on exported config. file(COPY "${CURRENT_PORT_DIR}/duktapeConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/duktape/vcpkg.json ================================================ { "name": "duktape", "version": "2.7.0", "port-version": 2, "description": "Embeddable Javascript engine with a focus on portability and compact footprint.", "homepage": "https://github.com/svaarala/duktape", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dumb/check-for-math-lib.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a793bba..6fd094c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,7 +223,10 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set_target_properties(dumb PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_FULL_LIBDIR}) ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin") +find_library(HAS_MATH_LIB NAMES "m") +if(HAS_MATH_LIB) target_link_libraries(dumb m) +endif() install(FILES ${PKG_CONFIG_FILE} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${INSTALL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ================================================ FILE: ports/dumb/do-not-overwrite-cflags.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a793bba..585ef78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,17 +29,17 @@ check_and_add_c_compiler_flag("-Wall" CMAKE_C_FLAGS) add_definitions("-D_FILE_OFFSET_BITS=64") add_definitions("-DDUMB_DECLARE_DEPRECATED") -set(CMAKE_C_FLAGS_DEBUG "-DDEBUGMODE=1 -D_DEBUG") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DDEBUGMODE=1 -D_DEBUG") check_and_add_c_compiler_flag("-ggdb" CMAKE_C_FLAGS_DEBUG) check_and_add_c_compiler_flag("-Zi" CMAKE_C_FLAGS_DEBUG) -set(CMAKE_C_FLAGS_RELEASE "-ffast-math -O2 -DNDEBUG") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffast-math -O2 -DNDEBUG") -set(CMAKE_C_FLAGS_RELWITHDEBINFO "-ffast-math -O2 -DNDEBUG") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ffast-math -O2 -DNDEBUG") check_and_add_c_compiler_flag("-g" CMAKE_C_FLAGS_RELWITHDEBINFO) check_and_add_c_compiler_flag("-Zi" CMAKE_C_FLAGS_RELWITHDEBINFO) -set(CMAKE_C_FLAGS_MINSIZEREL "-ffast-math -Os -DNDEBUG") +set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -ffast-math -Os -DNDEBUG") if(USE_SSE) check_c_compiler_flag("-msse" "CC_HAS_MSSE") ================================================ FILE: ports/dumb/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kode54/dumb REF "${VERSION}" SHA512 18b10a507d69a754cdf97fbeae41c17f211a6ba1f166a822276bdb6769d3edc326919067a3f4d1247d6715d7a5a8276669d83b9427e7336c6d111593fb7e36cf HEAD_REF master PATCHES "check-for-math-lib.patch" "do-not-overwrite-cflags.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_ALLEGRO4=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/dumb.pc" "-llibdumb" "-ldumb") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/dumb.pc" "-llibdumb" "-ldumbd") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/dumb.pc" " -lm" "") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/dumb.pc" " -lm" "") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dumb/vcpkg.json ================================================ { "name": "dumb", "version": "2.0.3", "description": "Module/tracker based music format parser and player library", "homepage": "https://github.com/kode54/dumb", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/duvc-ctl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO allanhanan/duvc-ctl REF "v${VERSION}" SHA512 5cc63ef7c3a46fb351015ae2b1b96837ea46dbb7656ab1cf633af6027d32ae447dfc60a8757677eae07dabfb3ec1aca90f7019a6d7b5344c66324d39e9f0c464 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DUVC_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DUVC_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDUVC_BUILD_SHARED=${DUVC_BUILD_SHARED} -DDUVC_BUILD_STATIC=${DUVC_BUILD_STATIC} -DDUVC_BUILD_C_API=OFF -DDUVC_BUILD_CLI=OFF -DDUVC_BUILD_TESTS=OFF -DDUVC_BUILD_EXAMPLES=OFF -DDUVC_BUILD_PYTHON=OFF -DDUVC_BUILD_DOCS=OFF -DDUVC_INSTALL=ON -DDUVC_INSTALL_CMAKE_CONFIG=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/duvc-ctl") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/duvc-ctl/usage ================================================ duvc-ctl provides CMake targets: find_package(duvc CONFIG REQUIRED) target_link_libraries(main PRIVATE $,duvc::core-static,duvc::core-shared>) ================================================ FILE: ports/duvc-ctl/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "duvc-ctl", "version": "2.0.1", "description": "Windows DirectShow UVC camera control library", "homepage": "https://github.com/allanhanan/duvc-ctl", "license": "MIT", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dv-processing/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b67acfc1..1c51931f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,7 +156,10 @@ IF(OS_WINDOWS) ENDIF() # Eigen support. -FIND_PACKAGE(Eigen3 3.4.0 REQUIRED) +FIND_PACKAGE(Eigen3 REQUIRED) +IF(Eigen3_VERSION VERSION_LESS "3.4.0") + MESSAGE(FATAL_ERROR "Cannot find Eigen3 3.4.0 or newer.") +ENDIF() # OpenCV support. FIND_PACKAGE(OpenCV REQUIRED) diff --git a/benchmarks/cluster/mean-shift-alternatives.hpp b/benchmarks/cluster/mean-shift-alternatives.hpp index a7c572ff..e2aab920 100644 --- a/benchmarks/cluster/mean-shift-alternatives.hpp +++ b/benchmarks/cluster/mean-shift-alternatives.hpp @@ -40,12 +40,6 @@ public: using VectorOfVectors = std::vector>; private: - static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor) - && "Eigen doesn't allow row-vectors to be stored in column-major storage"); - - static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor) - && "Eigen doesn't allow column-vectors to be stored in row-major storage"); - const uint64_t mNumSamples; const uint16_t mNumDimensions; @@ -322,12 +316,6 @@ public: using VectorOfVectors = std::vector>; private: - static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor) - && "Eigen doesn't allow row-vectors to be stored in column-major storage"); - - static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor) - && "Eigen doesn't allow column-vectors to be stored in row-major storage"); - using RTree = boost::geometry::index::rtree>; const uint64_t mNumSamples; diff --git a/cmake/dv-processing-config.cmake.in b/cmake/dv-processing-config.cmake.in index 9692b181..03e00602 100644 --- a/cmake/dv-processing-config.cmake.in +++ b/cmake/dv-processing-config.cmake.in @@ -35,7 +35,10 @@ FIND_PACKAGE(Boost 1.80 REQUIRED COMPONENTS nowide) FIND_PACKAGE(OpenSSL REQUIRED) # Eigen support. -FIND_PACKAGE(Eigen3 3.4.0 REQUIRED) +FIND_PACKAGE(Eigen3 REQUIRED) +IF (Eigen3_VERSION VERSION_LESS "3.4.0") + MESSAGE(FATAL_ERROR "Cannot find Eigen3 3.4.0 or newer.") +ENDIF () # OpenCV support. FIND_PACKAGE(OpenCV REQUIRED) diff --git a/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp b/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp index c23c2aeb..d0b180d7 100644 --- a/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp +++ b/include/dv-processing/containers/kd_tree/eigen_matrix_adaptor.hpp @@ -103,14 +103,7 @@ private: using Tree = nanoflann::KDTreeEigenMatrixAdaptor; - static_assert(EIGEN_IMPLIES(ROWS == 1 && COLUMNS != 1, STORAGE_ORDER == Eigen::RowMajor) - && "Eigen doesn't allow row-vectors to be stored in column-major storage"); - - static_assert(EIGEN_IMPLIES(COLUMNS == 1 && ROWS != 1, STORAGE_ORDER == Eigen::ColMajor) - && "Eigen doesn't allow column-vectors to be stored in row-major storage"); - const uint32_t mNumSamples; - const uint32_t mNumDimensions; std::unique_ptr mTree; diff --git a/include/dv-processing/visualization/pose_visualizer.hpp b/include/dv-processing/visualization/pose_visualizer.hpp index 11b18ba9..2fa6b398 100644 --- a/include/dv-processing/visualization/pose_visualizer.hpp +++ b/include/dv-processing/visualization/pose_visualizer.hpp @@ -456,8 +456,12 @@ public: */ template [[nodiscard]] Output getCameraOrientation() const { +#if EIGEN_MAJOR_VERSION < 5 Eigen::Vector3f eulerAngles = mT_C_W.inverse().getRotationMatrix().eulerAngles(0, 1, 2); - eulerAngles = eulerAngles * RAD_TO_DEG; +#else + Eigen::Vector3f eulerAngles = mT_C_W.inverse().getRotationMatrix().canonicalEulerAngles(0, 1, 2); +#endif + eulerAngles = eulerAngles * RAD_TO_DEG; return Output(eulerAngles.x(), eulerAngles.y(), eulerAngles.z()); } ================================================ FILE: ports/dv-processing/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com/inivation OUT_SOURCE_PATH SOURCE_PATH REPO dv/dv-processing REF "${VERSION}" SHA512 535680686214d9d44efa8281d9b7cb424e93a662b0742f02a07616ca6b1d313779f03845489059b082481aafd9a83eca20f5315a4b5319e8dc956a15ca790afa HEAD_REF master PATCHES 0001-support-eigen3-5.patch ) vcpkg_from_gitlab( GITLAB_URL https://gitlab.com/inivation OUT_SOURCE_PATH CMAKEMOD_SOURCE_PATH REPO dv/cmakemod REF d107c76b73a49a16c3ac733749152037406a515e SHA512 fe87530ce5fecfe5d1ccdc6a06addc652167c67c4707d9039bf2f022ced2966dc8295b8ed69c3d4154b965f0dd22f43a8830eb4f03e99ff3edfe38de759bd0d5 HEAD_REF d107c76b73a49a16c3ac733749152037406a515e ) file(GLOB CMAKEMOD_FILES "${CMAKEMOD_SOURCE_PATH}/*") file(COPY ${CMAKEMOD_FILES} DESTINATION "${SOURCE_PATH}/cmake/modules") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools DVP_ENABLE_UTILITIES ) vcpkg_find_acquire_program(PKGCONFIG) set(VCPKG_BUILD_TYPE release) # no lib binaries vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # writes to include/dv-processing/version.hpp OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ${FEATURE_OPTIONS} -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_REQUIRE_FIND_PACKAGE_lz4=ON -DCMAKE_REQUIRE_FIND_PACKAGE_zstd=ON -DDVP_ENABLE_TESTS=OFF -DDVP_ENABLE_SAMPLES=OFF -DDVP_ENABLE_PYTHON=OFF -DDVP_ENABLE_BENCHMARKS=OFF -DDVP_BUILD_CONFIG_VCPKG=ON ) vcpkg_cmake_install() if(DVP_ENABLE_UTILITIES) vcpkg_copy_tools(TOOL_NAMES dv-filestat dv-imu-bias-estimation dv-list-devices dv-tcpstat AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # pkgconfig only, but incomplete file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dv-processing/usage ================================================ dv-processing provides CMake targets: find_package(dv-processing CONFIG REQUIRED) target_link_libraries(main PRIVATE dv::processing) Using dv-processing requires a C++20 compliant compiler. ================================================ FILE: ports/dv-processing/vcpkg.json ================================================ { "name": "dv-processing", "version": "2.0.2", "description": "Generic algorithms for event cameras. (C++20 required.)", "homepage": "https://gitlab.com/inivation/dv/dv-processing", "license": "Apache-2.0", "dependencies": [ "boost-algorithm", { "name": "boost-asio", "features": [ "ssl" ] }, "boost-callable-traits", "boost-circular-buffer", "boost-core", "boost-endian", "boost-geometry", "boost-lockfree", "boost-nowide", "boost-property-tree", "boost-stacktrace", "cli11", "eigen3", "fmt", "libusb", "lz4", { "name": "opencv4", "default-features": false, "features": [ "fs", "intrinsics", "thread" ] }, "openssl", { "name": "vcpkg-cmake", "host": true }, "zstd" ], "features": { "tools": { "description": "Build CLI utilities" } } } ================================================ FILE: ports/dx/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sdcb/dx REF v1.0.1 SHA512 b40eb4daf774bfdb394b207bb29652fbf44361f5d8f9b60509c7a3215cd403dbf0c10454979c0c2e97d839496ef20940070a42837375993cd67d58afacc990e0 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/dx.h ${SOURCE_PATH}/debug.h ${SOURCE_PATH}/handle.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/dx ) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/dx RENAME copyright) ================================================ FILE: ports/dx/vcpkg.json ================================================ { "name": "dx", "version": "1.0.1", "port-version": 3, "description": "A modern C++ library for DirectX programming", "homepage": "https://github.com/sdcb/dx" } ================================================ FILE: ports/dxcam-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Fidelxyz/DXCam-CPP HEAD_REF main REF "v${VERSION}" SHA512 1e5f8e0d1c92197a87280c901a81fb9b9f21cc754113de72f590525dcec3879536431cb15acc79190e9e39a3d429bb06badf9f5cf24a4eed8af9eea797bbcd52 ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/dxcam) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dxcam-cpp/usage ================================================ dxcam-cpp provides CMake targets: find_package(DXCam CONFIG REQUIRED) target_link_libraries(main PRIVATE DXCam::DXCam) ================================================ FILE: ports/dxcam-cpp/vcpkg.json ================================================ { "name": "dxcam-cpp", "version": "0.2.5", "maintainers": "Fidel Yin ", "description": "A high performance screen capturing library for Windows rewriting DXcam in C++.", "homepage": "https://github.com/Fidelxyz/DXCam-CPP", "documentation": "https://dxcam-cpp.readthedocs.io/en/latest/", "license": "MIT", "supports": "windows & !uwp", "dependencies": [ { "name": "opencv4", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dxsdk-d3dx/dxsdk-d3dx-config.cmake.in ================================================ get_filename_component(_d3dx_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_d3dx_root "${_d3dx_root}" PATH) set(_d3dx_root_lib "${_d3dx_root}/lib/d3dx9.lib") if (EXISTS "${_d3dx_root_lib}") add_library(Microsoft::D3DX9 SHARED IMPORTED) set_target_properties(Microsoft::D3DX9 PROPERTIES IMPORTED_LOCATION_RELEASE "${_d3dx_root}/bin/D3DX9_43.dll" IMPORTED_IMPLIB_RELEASE "${_d3dx_root_lib}" IMPORTED_LOCATION_DEBUG "${_d3dx_root}/debug/bin/D3DX9d_43.dll" IMPORTED_IMPLIB_DEBUG "${_d3dx_root}/debug/lib/d3dx9d.lib" INTERFACE_INCLUDE_DIRECTORIES "${_d3dx_root}/include/dxsdk-d3dx" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::D3DX10 SHARED IMPORTED) set_target_properties(Microsoft::D3DX10 PROPERTIES IMPORTED_LOCATION_RELEASE "${_d3dx_root}/bin/d3dx10_43.dll" IMPORTED_IMPLIB_RELEASE "${_d3dx_root}/lib/d3dx10.lib" IMPORTED_LOCATION_DEBUG "${_d3dx_root}/debug/bin/D3DX10d_43.dll" IMPORTED_IMPLIB_DEBUG "${_d3dx_root}/debug/lib/d3dx10d.lib" INTERFACE_INCLUDE_DIRECTORIES "${_d3dx_root}/include/dxsdk-d3dx" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::D3DX11 SHARED IMPORTED) set_target_properties(Microsoft::D3DX11 PROPERTIES IMPORTED_LOCATION_RELEASE "${_d3dx_root}/bin/d3dx11_43.dll" IMPORTED_IMPLIB_RELEASE "${_d3dx_root}/lib/d3dx11.lib" IMPORTED_LOCATION_DEBUG "${_d3dx_root}/debug/bin/D3DX11d_43.dll" IMPORTED_IMPLIB_DEBUG "${_d3dx_root}/debug/lib/d3dx11d.lib" INTERFACE_INCLUDE_DIRECTORIES "${_d3dx_root}/include/dxsdk-d3dx" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") set(dxsdk-d3dx_FOUND TRUE) else() set(dxsdk-d3dx_FOUND FALSE) endif() unset(_d3dx_root_lib) unset(_d3dx_root) ================================================ FILE: ports/dxsdk-d3dx/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/directxsdk/copyright") message(FATAL_ERROR "Can't build ${PORT} if directxsdk is installed. Please remove directxsdk, and try to install ${PORT} again if you need it.") endif() message(WARNING "Use of ${PORT} is not recommended for new projects. See https://aka.ms/dxsdk for more information.") set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.DXSDK.D3DX/9.29.952.8" FILENAME "dxsdk-d3dx.9.29.952.8.zip" SHA512 9f6a95ed858555c1c438a85219ede32c82729068b21dd7ecf11de01cf3cdd525b2f04a58643bfcc14c48a29403dc1c80246f0a12a1ef4377b91b855f6d6d7986 ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) file(GLOB HEADER_FILES "${PACKAGE_PATH}/build/native/include/*.h" "${PACKAGE_PATH}/build/native/include/*.inl") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(GLOB RELEASE_LIB_FILES "${PACKAGE_PATH}/build/native/release/lib/${VCPKG_TARGET_ARCHITECTURE}/*.lib") file(INSTALL ${RELEASE_LIB_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/") file(GLOB RELEASE_DLL_FILES "${PACKAGE_PATH}/build/native/release/bin/${VCPKG_TARGET_ARCHITECTURE}/*.dll") file(INSTALL ${RELEASE_DLL_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/bin/") if(NOT DEFINED VCPKG_BUILD_TYPE) file(GLOB DEBUG_LIB_FILES "${PACKAGE_PATH}/build/native/debug/lib/${VCPKG_TARGET_ARCHITECTURE}/*.lib") file(INSTALL ${DEBUG_LIB_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/") file(GLOB DEBUG_DLL_FILES "${PACKAGE_PATH}/build/native/debug/bin/${VCPKG_TARGET_ARCHITECTURE}/*.dll") file(INSTALL ${DEBUG_DLL_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/dxsdk-d3dx-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" COPYONLY) ================================================ FILE: ports/dxsdk-d3dx/usage ================================================ The legacy DirectX SDK D3DX package provides CMake targets: find_package(dxsdk-d3dx CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::D3DX9 Microsoft::D3DX10 Microsoft::D3DX11) NOTE: This port is not recommended for use in new projects and is incompatible with the deprecated directxsdk port. ================================================ FILE: ports/dxsdk-d3dx/vcpkg.json ================================================ { "name": "dxsdk-d3dx", "version": "9.29.952.8", "port-version": 7, "description": "Redistributable package for the legacy DirectX SDK's D3DX9, D3DX10, and/or D3DX11 utility libraries.", "homepage": "https://walbourn.github.io/legacy-d3dx-on-nuget/", "license": null, "supports": "windows & !arm & !uwp & !xbox" } ================================================ FILE: ports/dxut/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/DXUT REF aug2024 SHA512 9ae3ff34308446b9d145306c4eee6a70319c103540e76e3df305bed6b9d4348b508976d930fbbaac29d560879afc5e53367bdd81142a02920dd28c4fc9013136 HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dxtk DIRECTXTK_INTEGRATION spectre ENABLE_SPECTRE_MITIGATION ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/dxut) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dxut/usage ================================================ The DXUT for Direct3D 11 package is compatible with built-in CMake targets: find_package(dxut CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::DXUTOpt Microsoft::DXUT) ================================================ FILE: ports/dxut/vcpkg.json ================================================ { "name": "dxut", "version": "11.32", "description": "A \"GLUT\"-like framework for Direct3D 11.x Win32 desktop applications", "homepage": "https://github.com/Microsoft/DXUT", "documentation": "https://github.com/microsoft/DXUT/wiki", "license": "MIT", "supports": "windows & !uwp & !xbox", "dependencies": [ "directxmath", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dxtk": { "description": "Support integration with DirectX Tool Kit for DX11", "dependencies": [ "directxtk" ] }, "spectre": { "description": "Build Spectre-mitigated library" } } } ================================================ FILE: ports/dylib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martin-olivier/dylib REF "v${VERSION}" SHA512 9975c202aacc698b0b30cec1d839e31eb4fc60d7ee54fc56a114d5e8905a2ac4757aa97fc580b3b1a3c98bdba1420a49707339a09a646e4e8663ef17fe3cded3 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME dylib CONFIG_PATH lib/cmake/dylib ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/dylib/vcpkg.json ================================================ { "name": "dylib", "version-semver": "3.0.1", "description": "C++ cross-platform wrapper around dynamic loading of shared libraries", "homepage": "https://github.com/martin-olivier/dylib", "license": "MIT", "supports": "!android & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/dyno/fix-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c7c421..1b8b2bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,9 +14,8 @@ add_library(dyno INTERFACE) add_library(Dyno::dyno ALIAS dyno) target_compile_features(dyno INTERFACE cxx_std_17) target_include_directories(dyno INTERFACE "$") -find_package(Hana REQUIRED) -find_package(CallableTraits REQUIRED) -target_link_libraries(dyno INTERFACE hana callable_traits) +find_package(Boost REQUIRED) +target_link_libraries(dyno INTERFACE Boost::boost) include(CheckCXXCompilerFlag) check_cxx_compiler_flag("-Wno-gnu-string-literal-operator-template" DYNO_HAS_WNO_GNU_STRING_UDL) diff --git a/cmake/dyno-config.cmake b/cmake/dyno-config.cmake index 8a1845b..57aa7a1 100644 --- a/cmake/dyno-config.cmake +++ b/cmake/dyno-config.cmake @@ -3,8 +3,7 @@ # (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) include(CMakeFindDependencyMacro) -find_dependency(Hana REQUIRED) -find_dependency(CallableTraits REQUIRED) +find_dependency(Boost) if(NOT TARGET Dyno::dyno) include("${CMAKE_CURRENT_LIST_DIR}/dyno-targets.cmake") ================================================ FILE: ports/dyno/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ldionne/dyno REF 56ced251f5751ef4e3fe66d4f28ccbc75b902d70 SHA512 c3f34679d1e2f3cec3757f69662d4f5db602b9028a927ad9070e70813caf18bb2a512f148e69f14aaac35a3e13abb57e1aa8e4f369993e7a01d048d70050daa6 HEAD_REF master PATCHES fix-deps.patch ) set(VCPKG_BUILD_TYPE release) #header-only library vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME dyno CONFIG_PATH "lib/cmake/dyno") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/dyno/usage ================================================ The package dyno provides CMake targets: find_package(dyno CONFIG REQUIRED) target_link_libraries(main PRIVATE Dyno::dyno) ================================================ FILE: ports/dyno/vcpkg.json ================================================ { "name": "dyno", "version-date": "2019-11-13", "description": "Runtime polymorphism done right", "homepage": "https://github.com/ldionne/dyno/", "license": "BSL-1.0", "dependencies": [ "boost-callable-traits", "boost-hana", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/e-dant-watcher/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b9872dc..86cb5fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,10 +109,11 @@ if(ANDROID) # Android's stdlib ("bionic") doesn't need to be linked with (p)threads. set(LINK_LIBRARIES "${LINK_LIBRARIES}") else() + set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) set(LINK_LIBRARIES "${LINK_LIBRARIES}" - "Threads::Threads" + "${CMAKE_THREAD_LIBS_INIT}" ) if(APPLE) list(APPEND LINK_LIBRARIES @@ -409,7 +410,7 @@ wtr_add_hdr_target( "wtr.hdr_watcher" "include/wtr/watcher.hpp" ) - +if(0) wtr_add_hdr_target( "watcher-c-hdr" "watcher-c/include/wtr/watcher-c.h" @@ -468,17 +469,17 @@ wtr_add_bin_target( "" "" ) - +endif() set(PC_WATCHER_LIBS_PRIVATE "${LINK_LIBRARIES}") set(PC_WATCHER_LIBDIR "${CMAKE_INSTALL_LIBDIR}") -set(PC_WATCHER_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/wtr") +set(PC_WATCHER_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include/wtr") wtr_add_pkg_config_target("watcher.pc" "watcher.pc.in") - +if(0) set(PC_LIBWATCHER_C_LIBS_PRIVATE "${LINK_LIBRARIES}") set(PC_LIBWATCHER_C_LIBDIR "${CMAKE_INSTALL_LIBDIR}") set(PC_LIBWATCHER_C_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/wtr") wtr_add_pkg_config_target("watcher-c.pc" "watcher-c/watcher-c.pc.in") - +endif() if(BUILD_TESTING) message(STATUS "wtr.test_tool_test_all: Added (BUILD_TESTING=${BUILD_TESTING})") add_test( ================================================ FILE: ports/e-dant-watcher/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO e-dant/watcher REF "${VERSION}" SHA512 fcd4581d29c3d9aa4911edc3fc84d8dcf48ec7e5c5b077bc4c41f1f7d63646cdcf02349281b855415608174173f0b19a922f25b7d679e4536a27808617f18cc8 HEAD_REF release PATCHES fix-install.patch ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_LIB=OFF -DBUILD_BIN=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() # remove empty lib and debug/lib directories (and duplicate files from debug/include) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license") ================================================ FILE: ports/e-dant-watcher/vcpkg.json ================================================ { "name": "e-dant-watcher", "version": "0.14.5", "description": "Filesystem watcher. Works anywhere. Simple, efficient and friendly.", "homepage": "https://github.com/e-dant/watcher", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/eabase/EABaseConfig.cmake.in ================================================ @PACKAGE_INIT@ # Provide path for scripts list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") include(${CMAKE_CURRENT_LIST_DIR}/EABaseTargets.cmake) ================================================ FILE: ports/eabase/fix_cmake_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 652f07f..264aaf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,9 @@ cmake_minimum_required(VERSION 3.1) project(EABase CXX) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + #------------------------------------------------------------------------------------------- # Options #------------------------------------------------------------------------------------------- @@ -24,14 +27,38 @@ add_definitions(-D_CHAR16T) #------------------------------------------------------------------------------------------- # Header only library #------------------------------------------------------------------------------------------- -add_library(EABase INTERFACE) - +add_library(EABase INTERFACE) +add_library(EABase::EABase ALIAS EABase) #------------------------------------------------------------------------------------------- # Include dirs #------------------------------------------------------------------------------------------- -target_include_directories(EABase INTERFACE include/Common) - -#------------------------------------------------------------------------------------------- -# Installation -#------------------------------------------------------------------------------------------- -install(DIRECTORY include/Common/EABase DESTINATION include) +target_include_directories(EABase INTERFACE + $ + $ +) +# create and install an export set for eabase target as EABase::EABase +set(EABase_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EABase") +configure_package_config_file( + EABaseConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake + INSTALL_DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION} +) +# create and install an export set for Terra target as Terra +install( + TARGETS EABase EXPORT EABaseTargets + DESTINATION ${CMAKE_INSTALL_LIBDIR} +) +install(EXPORT EABaseTargets DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION}) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake" + VERSION 2.09.12 + COMPATIBILITY SameMajorVersion +) +install(TARGETS EABase LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") +install(DIRECTORY "include/Common/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/EABaseConfigVersion.cmake" + DESTINATION ${EABase_CMAKE_CONFIG_DESTINATION} +) ================================================ FILE: ports/eabase/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO electronicarts/EABase REF 0699a15efdfd20b6cecf02153bfa5663decb653c SHA512 6852fcef08002c503d7ca23a22ef25d4b3136787c505d9b7ad55e821a6369d1dcc1773ff8042d7a9c306a52f33dd8da35b2f3fdbd8ea0ff1ca0f765fbe7ac240 HEAD_REF master PATCHES fix_cmake_install.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/EABaseConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEABASE_BUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/EABase) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/eabase/vcpkg.json ================================================ { "name": "eabase", "version-date": "2025-08-01", "description": "Electronic Arts Base. EABase is a small set of header files that define platform-independent data types and macros.", "homepage": "https://github.com/electronicarts/EABase", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/earcut-hpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/earcut.hpp REF "v${VERSION}" SHA512 87f52bf99273dc47f78ebacd4ee0ccbab4edd3f9b85d97aed1c0d1165b3e2523e1a71f3a37a118e82170e79d57a2e09644d4115facb63dc6f704affb9c428e6b HEAD_REF master ) # This is a header only library file(INSTALL "${SOURCE_PATH}/include/mapbox/earcut.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mapbox") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/earcut-hpp/vcpkg.json ================================================ { "name": "earcut-hpp", "version": "2.2.4", "description": "earcut.hpp is a C++ port of earcut.js, a fast, header-only polygon triangulation library.", "homepage": "https://github.com/mapbox/earcut.hpp", "license": "ISC" } ================================================ FILE: ports/eastl/0001-fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a5870f8..1553513 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,9 @@ cmake_minimum_required(VERSION 3.11) include(FetchContent) project(EASTL CXX) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + #------------------------------------------------------------------------------------------- # Options #------------------------------------------------------------------------------------------- @@ -17,6 +20,8 @@ option(EASTL_DISABLE_APRIL_2024_DEPRECATIONS "Enable use of API marked for remov option(EASTL_DISABLE_SEPT_2024_DEPRECATIONS "Enable use of API marked for removal in September 2024." OFF) option(EASTL_DISABLE_APRIL_2025_DEPRECATIONS "Enable use of API marked for removal in April 2025." OFF) +find_package(EABase CONFIG REQUIRED) + #------------------------------------------------------------------------------------------- # Compiler Flags #------------------------------------------------------------------------------------------- @@ -65,21 +70,49 @@ endif() #------------------------------------------------------------------------------------------- # Include dirs #------------------------------------------------------------------------------------------- -target_include_directories(EASTL PUBLIC include) +target_include_directories(EASTL PUBLIC + $ + $ + ) #------------------------------------------------------------------------------------------- # Dependencies #------------------------------------------------------------------------------------------- -FetchContent_Declare( - EABase - GIT_REPOSITORY https://github.com/electronicarts/EABase.git - GIT_TAG 0699a15efdfd20b6cecf02153bfa5663decb653c - GIT_SUBMODULES "" # This should be temporary until we update the cyclic submodule dependencies in EABase. + +target_link_libraries(EASTL PUBLIC EABase) + +# create and install an export set for eabase target as EABase::EABase +set(EASTL_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EASTL") + +configure_package_config_file( + EASTLConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake + INSTALL_DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} ) -FetchContent_MakeAvailable(EABase) +# create and install an export set for Terra target as Terra +install( + TARGETS EASTL EXPORT EASTLTargets + DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(EXPORT EASTLTargets DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION}) + +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" + VERSION 3.16.05 + COMPATIBILITY SameMajorVersion +) + +install(TARGETS EASTL LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") +install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") -target_link_libraries(EASTL EABase) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/EASTLConfigVersion.cmake" + DESTINATION ${EASTL_CMAKE_CONFIG_DESTINATION} +) #------------------------------------------------------------------------------------------- # Deprecations ================================================ FILE: ports/eastl/0002-fix-error-C2338.patch ================================================ diff --git a/scripts/CMake/CommonCppFlags.cmake b/scripts/CMake/CommonCppFlags.cmake index 08b6af5..281665e 100644 --- a/scripts/CMake/CommonCppFlags.cmake +++ b/scripts/CMake/CommonCppFlags.cmake @@ -74,6 +74,9 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++latest /W4 /permissive-") + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "19.31.30911.95") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:static_assert-") + endif() endif() ================================================ FILE: ports/eastl/EASTLConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(EABase CONFIG REQUIRED) # Provide path for scripts list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") include(${CMAKE_CURRENT_LIST_DIR}/EASTLTargets.cmake) ================================================ FILE: ports/eastl/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # EASTL uses leading zeros in tags (e.g., 3.27.01), but vcpkg drops them in versions string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$" "\\1.\\2.0\\3" EASTL_REF "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO electronicarts/EASTL REF "${EASTL_REF}" SHA512 08ac403fceb032cc8622e3f15eef0b00246b8abb2daceb8fabd66d23408c738e82126a4b5187201ec7f6606df46cca1fcda1ec646cfe18ec8e9e081a057101e3 HEAD_REF master PATCHES 0001-fix-cmake-install.patch 0002-fix-error-C2338.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/EASTLConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEASTL_BUILD_TESTS=OFF -DEASTL_BUILD_BENCHMARK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/EASTL) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/3RDPARTYLICENSES.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # CommonCppFlags used by EAThread file(INSTALL "${SOURCE_PATH}/scripts/CMake/CommonCppFlags.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/eastl/vcpkg.json ================================================ { "name": "eastl", "version": "3.27.1", "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.", "homepage": "https://github.com/electronicarts/EASTL", "license": "BSD-3-Clause", "dependencies": [ "eabase", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/easy-profiler/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yse/easy_profiler REF "v${VERSION}" SHA512 101d84a903315456ac24d060da6269e02ac0030e966b801910543c39980042e92082b2430daaa9ab48ced90fb5fc0adf43dfab647615742d32950a1667c3630f HEAD_REF develop ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEASY_PROFILER_NO_GUI=ON -DEASY_PROFILER_NO_SAMPLES=ON ) vcpkg_cmake_install() vcpkg_copy_tools( TOOL_NAMES "profiler_converter" AUTO_CLEAN ) vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/easy_profiler" PACKAGE_NAME easy_profiler ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE.APACHE") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE.MIT") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE.APACHE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE.MIT") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/easy_profiler_core/LICENSE.MIT" "${SOURCE_PATH}/easy_profiler_core/LICENSE.APACHE" ) ================================================ FILE: ports/easy-profiler/vcpkg.json ================================================ { "name": "easy-profiler", "version": "2.1.0", "description": "Lightweight profiler library for c++", "homepage": "https://github.com/yse/easy_profiler", "license": "MIT OR Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/easycl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO architector1324/EasyCL REF 0.3 SHA512 c0e9aa03c9039e9ffe4794ccc4e85654f8267924e577cf96fd8d5e141fab9e8f6dc4668ee4475d6df3ba77572e52a181493acd3dfdb0abf7bd83b7e3d4d08a29 HEAD_REF master ) # Handle headers file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/easycl RENAME copyright) ================================================ FILE: ports/easycl/vcpkg.json ================================================ { "name": "easycl", "version": "0.3", "port-version": 2, "description": "OpenCL based lightweight c++ computing library", "homepage": "https://github.com/architector1324/EasyCL", "dependencies": [ "opencl" ] } ================================================ FILE: ports/easyexif/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(easyexif CXX) include(GNUInstallDirs) add_library(easyexif STATIC exif.h exif.cpp ) set_target_properties(easyexif PROPERTIES CXX_STANDARD 11 PUBLIC_HEADER exif.h ) install(TARGETS easyexif PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}) # share/easyexif ================================================ FILE: ports/easyexif/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mayanklahiri/easyexif REF cd994a3b6009bc3c1f84062e96bd7f5ad16e85f6 SHA512 f421ff0900ae456165917106caa1c222ed8005706edc62983ad1ea72baffdfc99c581a015cf00132c7255ac32e64ec24bd8d65c9b32e9f4d05809baf7f37516d HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/easyexif/vcpkg.json ================================================ { "name": "easyexif", "version-date": "2022-10-07", "description": "Tiny ISO-compliant C++ EXIF parsing library, third-party dependency free", "homepage": "https://github.com/mayanklahiri/easyexif", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/easyhook/fix-build.patch ================================================ diff --git a/EasyHookDll/EasyHookDll.vcxproj b/EasyHookDll/EasyHookDll.vcxproj index ec66f91..5773555 100644 --- a/EasyHookDll/EasyHookDll.vcxproj +++ b/EasyHookDll/EasyHookDll.vcxproj @@ -188,7 +188,7 @@ true true EnableFastChecks - true + false MultiThreadedDebug @@ -207,10 +207,6 @@ MachineX86 false - - copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" -copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" - false @@ -223,7 +219,7 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" true true EnableFastChecks - true + false MultiThreadedDebug @@ -242,10 +238,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" MachineX86 false - - copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" -copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" - false @@ -261,7 +253,7 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" true true EnableFastChecks - true + false MultiThreadedDebug @@ -278,10 +270,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" Windows MachineX64 - - copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" -copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" - false @@ -297,7 +285,7 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" true true EnableFastChecks - true + false MultiThreadedDebug @@ -314,10 +302,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" Windows MachineX64 - - copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" -copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" - false @@ -355,10 +339,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" MachineX86 false - - copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" -copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" - false false @@ -397,10 +377,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" MachineX86 false - - copy "$(TargetPath)" "$(TargetDir)..\x64\EasyHook32.dll" -copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" - false false @@ -439,10 +415,6 @@ copy "$(TargetDir)EasyHook32.lib" "$(TargetDir)..\x64\EasyHook32.lib" true MachineX64 - - copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" -copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" - false false @@ -481,10 +453,6 @@ copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" true MachineX64 - - copy "$(TargetPath)" "$(TargetDir)..\x86\EasyHook64.dll" -copy "$(TargetDir)EasyHook64.lib" "$(TargetDir)..\x86\EasyHook64.lib" - false false diff --git a/EasyHookDll/EasyHookDll_32.rc b/EasyHookDll/EasyHookDll_32.rc index 2a8dfb6..abf5ae3 100644 --- a/EasyHookDll/EasyHookDll_32.rc +++ b/EasyHookDll/EasyHookDll_32.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#include "windows.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS diff --git a/EasyHookDll/EasyHookDll_64.rc b/EasyHookDll/EasyHookDll_64.rc index 163a2f0..b32a4d4 100644 --- a/EasyHookDll/EasyHookDll_64.rc +++ b/EasyHookDll/EasyHookDll_64.rc @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#include "windows.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ================================================ FILE: ports/easyhook/portfile.cmake ================================================ message(WARNING ".Net framework 4.7.2 is required, please install it before installing easyhook.") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EasyHook/EasyHook REF v2.7.7097.0 SHA512 D0CA5B64E77F6281B2DD7EE0DC492A9B07DDB60A9F514037938CC3E3FFA5DD57C95CB630E18C02C984A89070839E4188044896D4EE57A21E43E6EA3A4918255A HEAD_REF master PATCHES fix-build.patch ) # Use /Z7 rather than /Zi to avoid "fatal error C1090: PDB API call failed, error code '23': (0x00000006)" foreach(VCXPROJ IN ITEMS "${SOURCE_PATH}/EasyHookDll/EasyHookDll.vcxproj" "${SOURCE_PATH}/Examples/UnmanagedHook/UnmanagedHook.vcxproj") vcpkg_replace_string( "${VCXPROJ}" "ProgramDatabase" "OldStyle" ) vcpkg_replace_string( "${VCXPROJ}" "EditAndContinue" "OldStyle" ) vcpkg_replace_string( "${VCXPROJ}" "true" "" ) endforeach() # Use modern .NET Framework foreach(CSPROJ IN ITEMS "${SOURCE_PATH}/EasyHook/EasyHook.csproj" "${SOURCE_PATH}/EasyHookSvc/EasyHookSvc.csproj" "${SOURCE_PATH}/EasyLoad/EasyLoad.csproj" "${SOURCE_PATH}/Examples/FileMon/FileMon.csproj" "${SOURCE_PATH}/Examples/FileMonInject/FileMonInject.csproj" "${SOURCE_PATH}/Examples/FileMonitorController/FileMonitorController.csproj" "${SOURCE_PATH}/Examples/FileMonitorInterceptor/FileMonitorInterceptor.csproj" "${SOURCE_PATH}/Examples/FileMonitorInterface/FileMonitorInterface.csproj" "${SOURCE_PATH}/Examples/ProcessMonitor/ProcessMonitor.csproj" "${SOURCE_PATH}/Examples/ProcMonInject/ProcMonInject.csproj" "${SOURCE_PATH}/Test/ComplexParameterInject/ComplexParameterInject.csproj" "${SOURCE_PATH}/Test/ComplexParameterTest/ComplexParameterTest.csproj" "${SOURCE_PATH}/Test/EasyHook.Tests/EasyHook.Tests.csproj" "${SOURCE_PATH}/Test/ManagedTarget/ManagedTarget.csproj" "${SOURCE_PATH}/Test/ManagedTest/ManagedTest.csproj" "${SOURCE_PATH}/Test/MultipleHooks/MultipleHooks/MultipleHooks.csproj" "${SOURCE_PATH}/Test/MultipleHooks/SimpleHook1/SimpleHook1.csproj" "${SOURCE_PATH}/Test/MultipleHooks/SimpleHook2/SimpleHook2.csproj" "${SOURCE_PATH}/Test/TestFuncHooks/TestFuncHooks.csproj") vcpkg_replace_string( "${CSPROJ}" "v4.0" "4.7.2" IGNORE_UNCHANGED ) vcpkg_replace_string( "${CSPROJ}" "Client" "" IGNORE_UNCHANGED ) endforeach() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH EasyHook.sln TARGET EasyHookDll RELEASE_CONFIGURATION "netfx4-Release" DEBUG_CONFIGURATION "netfx4-Debug" ) # Remove the mismatch rebuild library if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/AUX_ULIB_x64.LIB") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/AUX_ULIB_x64.LIB") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/AUX_ULIB_x86.LIB") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/AUX_ULIB_x86.LIB") endif() # These libraries are useless, so remove. file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/EasyHook.dll" "${CURRENT_PACKAGES_DIR}/bin/EasyHook.pdb") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/EasyHook.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/EasyHook.pdb") # Install includes file(INSTALL "${SOURCE_PATH}/Public/easyhook.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/easyhook") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/easyhook/vcpkg.json ================================================ { "name": "easyhook", "version": "2.7.7097.0", "port-version": 9, "description": "This project supports extending (hooking) unmanaged code (APIs) with pure managed ones, from within a fully managed environment on 32- or 64-bit Windows Vista x64, Windows Server 2008 x64, Windows 7, Windows 8.1, and Windows 10.", "homepage": "https://github.com/EasyHook/EasyHook", "supports": "windows & !static & !uwp & (x86 | x64)", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/easyloggingpp/0001_add_cmake_options.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8604a54..e08df91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,10 @@ option(test "Build all tests" OFF) option(build_static_lib "Build easyloggingpp as a static library" OFF) option(lib_utc_datetime "Build library with UTC date/time logging" OFF) +option(no_default_logfile "Do not write to default log file \"myeasylog.log\" (define ELPP_NO_DEFAULT_LOG_FILE)" OFF) +option(thread_safe "Build easyloggingpp thread safe (define ELPP_THREAD_SAFE)" OFF) +option(use_std_threads "Use standard library thread synchronization (define ELPP_FORCE_USE_STD_THREAD)" OFF) + set(ELPP_MAJOR_VERSION "9") set(ELPP_MINOR_VERSION "96") set(ELPP_PATCH_VERSION "7") @@ -57,6 +61,18 @@ if (build_static_lib) add_definitions(-DELPP_UTC_DATETIME) endif() + if (no_default_logfile) + add_definitions(-DELPP_NO_DEFAULT_LOG_FILE) + endif() + + if (thread_safe) + add_definitions(-DELPP_THREAD_SAFE) + endif() + + if (use_std_threads) + add_definitions(-DELPP_FORCE_USE_STD_THREAD) + endif() + require_cpp14() add_library(easyloggingpp STATIC src/easylogging++.cc) set_property(TARGET easyloggingpp PROPERTY POSITION_INDEPENDENT_CODE ON) ================================================ FILE: ports/easyloggingpp/0002_fix_build_uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e08df91..7c02adf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,7 @@ option(lib_utc_datetime "Build library with UTC date/time logging" OFF) option(no_default_logfile "Do not write to default log file \"myeasylog.log\" (define ELPP_NO_DEFAULT_LOG_FILE)" OFF) option(thread_safe "Build easyloggingpp thread safe (define ELPP_THREAD_SAFE)" OFF) option(use_std_threads "Use standard library thread synchronization (define ELPP_FORCE_USE_STD_THREAD)" OFF) +option(is_uwp "The compilation platform is uwp." OFF) set(ELPP_MAJOR_VERSION "9") set(ELPP_MINOR_VERSION "96") @@ -76,6 +77,9 @@ if (build_static_lib) require_cpp14() add_library(easyloggingpp STATIC src/easylogging++.cc) set_property(TARGET easyloggingpp PROPERTY POSITION_INDEPENDENT_CODE ON) + if(is_uwp) + target_compile_definitions(easyloggingpp PUBLIC WIN32_LEAN_AND_MEAN ELPP_WINSOCK2) + endif() install(TARGETS easyloggingpp ================================================ FILE: ports/easyloggingpp/0003_fix_pkgconfig.patch ================================================ diff --git a/cmake/easyloggingpp.pc.cmakein b/cmake/easyloggingpp.pc.cmakein index 61000ce..f7f8d0c 100644 --- a/cmake/easyloggingpp.pc.cmakein +++ b/cmake/easyloggingpp.pc.cmakein @@ -4,3 +4,5 @@ Version: @ELPP_VERSION_STRING@ prefix=@CMAKE_INSTALL_PREFIX@ includedir=@ELPP_INCLUDE_INSTALL_DIR@ Cflags: -I${includedir} +libdir=${prefix}/lib +Libs: -L${libdir} -leasyloggingpp ================================================ FILE: ports/easyloggingpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abumq/easyloggingpp REF "v${VERSION}" SHA512 3df813f7f9796c81c974ba794624db2602253e14b938370deb4c851fe8725f5c7ebf71d7ae0277fcb770b043ccf8f04bbf8e770d14565f4cb704328973473387 HEAD_REF master PATCHES 0001_add_cmake_options.patch 0002_fix_build_uwp.patch 0003_fix_pkgconfig.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES std-locking use_std_threads thread-safe thread_safe no-defaultfile no_default_logfile ) if(VCPKG_TARGET_IS_UWP) set(TARGET_IS_UWP ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dbuild_static_lib=ON -Dis_uwp=${TARGET_IS_UWP} OPTIONS_DEBUG -DELPP_PKGCONFIG_INSTALL_DIR="${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" OPTIONS_RELEASE -DELPP_PKGCONFIG_INSTALL_DIR="${CURRENT_PACKAGES_DIR}/lib/pkgconfig" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${CURRENT_PORT_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/easyloggingpp/usage ================================================ easyloggingpp can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(easyloggingpp easyloggingpp REQUIRED IMPORTED_TARGET) target_link_libraries(main PRIVATE PkgConfig::easyloggingpp) ================================================ FILE: ports/easyloggingpp/vcpkg.json ================================================ { "name": "easyloggingpp", "version": "9.97.1", "port-version": 1, "description": "Easylogging++ is a single header efficient logging library for C++ applications.", "homepage": "https://github.com/abumq/easyloggingpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "no-defaultfile": { "description": "Do not write to default log file \"myeasylog.log\" (compile with ELPP_NO_DEFAULT_LOG_FILE)" }, "std-locking": { "description": "Use std::mutex for thread synchronization (compile with ELPP_FORCE_USE_STD_THREAD)" }, "thread-safe": { "description": "Make easyloggingpp thread safe (compile with ELPP_THREAD_SAFE)" } } } ================================================ FILE: ports/eathread/EAThreadConfig.cmake.in ================================================ @PACKAGE_INIT@ # Provide path for scripts list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") include(${CMAKE_CURRENT_LIST_DIR}/EAThreadTargets.cmake) ================================================ FILE: ports/eathread/fix_cmake_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 34fc37a..60d201a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,15 +4,21 @@ cmake_minimum_required(VERSION 3.1) project(EAThread CXX) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + #------------------------------------------------------------------------------------------- # Options #------------------------------------------------------------------------------------------- option(EATHREAD_BUILD_TESTS "Enable generation of build files for tests" OFF) +find_package(EABase CONFIG REQUIRED) +find_package(EASTL CONFIG REQUIRED) + #------------------------------------------------------------------------------------------- # Compiler Flags #------------------------------------------------------------------------------------------- -set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/test/packages/EASTL/scripts/CMake") +set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${_VCPKG_ROOT_DIR}/installed/${VCPKG_TARGET_TRIPLET}/share/eastl") include(CommonCppFlags) #------------------------------------------------------------------------------------------- @@ -34,10 +40,45 @@ add_definitions(-D_CRT_SECURE_NO_WARNINGS) #------------------------------------------------------------------------------------------- # Export Include Directories #------------------------------------------------------------------------------------------- -target_include_directories(EAThread PUBLIC include) +target_include_directories(EAThread PUBLIC + $ + $ + ) #------------------------------------------------------------------------------------------- # Package Dependencies #------------------------------------------------------------------------------------------- -target_link_libraries(EAThread EABase) +target_link_libraries(EAThread PUBLIC EABase) + +# create and install an export set for eabase target as EABase::EABase +set(EAThread_CMAKE_CONFIG_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/EAThread") + +configure_package_config_file( + EAThreadConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/EAThreadConfig.cmake + INSTALL_DESTINATION ${EAThread_CMAKE_CONFIG_DESTINATION} +) + +# create and install an export set for Terra target as Terra +install( + TARGETS EAThread EXPORT EAThreadTargets + DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +install(EXPORT EAThreadTargets DESTINATION ${EAThread_CMAKE_CONFIG_DESTINATION}) + +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/EAThreadConfigVersion.cmake" + VERSION 3.16.01 + COMPATIBILITY SameMajorVersion +) + +install(TARGETS EAThread LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") +install(DIRECTORY "include/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/EAThreadConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/EAThreadConfigVersion.cmake" + DESTINATION ${EAThread_CMAKE_CONFIG_DESTINATION} +) ================================================ FILE: ports/eathread/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO electronicarts/EAThread REF e4367a36f2e55d10b2b994bfbae8edf21f15bafd SHA512 cd5a2aa6cdfe6fa538067919aa49e5ecd901898e12929dc852068ce66efe386032eb1fe667ea7d9b7a3d73a7bef1d90a683c0b90b6fb0d6d9a27950b05c4ab6a HEAD_REF master PATCHES fix_cmake_install.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/EAThreadConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEATHREAD_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/EAThread) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/3RDPARTYLICENSES.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/eathread") ================================================ FILE: ports/eathread/vcpkg.json ================================================ { "name": "eathread", "version-string": "1.32.09", "port-version": 5, "description": "Electronic Arts Thread Library. EAThread implements a unified cross-platform interface for multithreaded programming on various platforms.", "homepage": "https://github.com/electronicarts/EAThread", "supports": "!uwp & x64", "dependencies": [ "eabase", "eastl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ebml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Matroska-Org/libebml REF "release-${VERSION}" SHA512 284da9b7a1415585bbcfffc87101c63f1dd242bb09d88a731597127732a2f8064fd35e0a718fdcde464714b71e3f7dcc8285f291889629aba6997c38e0575dfb HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/EBML) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.LGPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/ebml/vcpkg.json ================================================ { "name": "ebml", "version": "1.4.5", "port-version": 1, "description": "A C++ library to parse EBML files", "homepage": "https://github.com/Matroska-Org/libebml", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ecal/0001-disable-app-plugins.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f2fc25d2..e82e353e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -357,8 +357,10 @@ endif() # -------------------------------------------------------- # ecal rec addon sdk # -------------------------------------------------------- +if (BUILD_APPS) add_subdirectory(app/rec/rec_addon_core) add_subdirectory(app/rec/rec_addon_dummy) +endif() # -------------------------------------------------------- # ecal time ================================================ FILE: ports/ecal/0002-fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e82e353e0..19d8f2a93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,8 @@ endif (POLICY CMP0077) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) + # Removed project specific Module overrides +) set(eCAL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) @@ -221,6 +222,8 @@ set(possible_subprojects set(ECAL_THIRDPARTY_BUILD_CMAKEFUNCTIONS ${ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS}) # if a package does need to be build, include the cmake file with build instructions +# Disable all submodules, except CMakeFunctions which isn't a submodule and required +set(possible_subprojects "CMakeFunctions") foreach (dep IN LISTS possible_subprojects) string(TOUPPER ${dep} dep_upper) string(TOLOWER ${dep} dep_lower) @@ -336,7 +339,9 @@ add_subdirectory(ecal/core) # custom libs # -------------------------------------------------------- add_subdirectory(lib/ThreadingUtils) -add_subdirectory(lib/CustomTclap) +# Removed due to only being used by the apps, which are disabled, and for +# publicly linking tclap::tclap which doesn't exist outside of eCAL +# add_subdirectory(lib/CustomTclap) add_subdirectory(lib/ecal_utils) if(HAS_QT) @@ -559,7 +564,9 @@ endif() # -------------------------------------------------------- # create package # -------------------------------------------------------- +if(CPACK_PACK_WITH_INNOSETUP) include(cpack/cpack_variables.cmake) +endif() message(STATUS "Build Options:") message(STATUS "--------------------------------------------------------------------------------") diff --git a/contrib/ecalhdf5/CMakeLists.txt b/contrib/ecalhdf5/CMakeLists.txt index d5285101c..3b7eb705a 100644 --- a/contrib/ecalhdf5/CMakeLists.txt +++ b/contrib/ecalhdf5/CMakeLists.txt @@ -55,7 +55,12 @@ set(ecalhdf5_header_base include/ecalhdf5/eh5_types.h ) +if (WIN32) +# This library, ecal::hdf5 does not export any symbols on Windows. Must be static +ecal_add_static_library(${PROJECT_NAME} ${ecalhdf5_src} ${ecalhdf5_header_base}) +else() ecal_add_library(${PROJECT_NAME} ${ecalhdf5_src} ${ecalhdf5_header_base}) +endif() add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} diff --git a/contrib/ecalproto/CMakeLists.txt b/contrib/ecalproto/CMakeLists.txt index 04f1a1b9a..58df32705 100644 --- a/contrib/ecalproto/CMakeLists.txt +++ b/contrib/ecalproto/CMakeLists.txt @@ -37,7 +37,12 @@ set(ecal_protobuf_header include/ecal/protobuf/ecal_proto_visitor.h ) +if (WIN32) +# This library, ecal::proto does not export any symbols on Windows. Must be static +ecal_add_static_library(${PROJECT_NAME} ${ecal_protobuf_src} ${ecal_protobuf_header}) +else() ecal_add_library(${PROJECT_NAME} ${ecal_protobuf_src} ${ecal_protobuf_header}) +endif() add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC $ diff --git a/ecal/core/CMakeLists.txt b/ecal/core/CMakeLists.txt index f18dd6291..8655d134a 100644 --- a/ecal/core/CMakeLists.txt +++ b/ecal/core/CMakeLists.txt @@ -20,8 +20,6 @@ project(core VERSION ${eCAL_VERSION_STRING}) find_package(Threads REQUIRED) find_package(asio REQUIRED) -find_package(tclap REQUIRED) -find_package(simpleini REQUIRED) find_package(tcp_pubsub REQUIRED) if (ECAL_NPCAP_SUPPORT) find_package(udpcap REQUIRED) @@ -549,8 +547,6 @@ target_link_libraries(${PROJECT_NAME} $<$:wsock32> $<$:socket> asio::asio - tclap::tclap - simpleini::simpleini eCAL::core_pb Threads::Threads eCAL::ecal-utils @@ -558,6 +554,14 @@ target_link_libraries(${PROJECT_NAME} ecal_service ) +# tclap is header only and only used for implementation +find_path(TCLAP_INCLUDE_DIRS "tclap/Arg.h") +target_include_directories(${PROJECT_NAME} PRIVATE ${TCLAP_INCLUDE_DIRS}) + +# simpleini is header only and only used for implementation +find_path(SIMPLEINI_INCLUDE_DIRS "ConvertUTF.c") +target_include_directories(${PROJECT_NAME} PRIVATE ${SIMPLEINI_INCLUDE_DIRS}) + set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ecal/core) set_property(TARGET ${PROJECT_NAME}_c PROPERTY FOLDER ecal/core) diff --git a/ecal/service/ecal_service/CMakeLists.txt b/ecal/service/ecal_service/CMakeLists.txt index 0ac70a214..6a565c726 100644 --- a/ecal/service/ecal_service/CMakeLists.txt +++ b/ecal/service/ecal_service/CMakeLists.txt @@ -99,6 +99,8 @@ set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER ecal/service ) +ecal_install_library(${PROJECT_NAME}) + ################################## source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" FILES diff --git a/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt b/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt index 8d13b791c..6ed0d1a14 100644 --- a/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt +++ b/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt @@ -40,4 +40,6 @@ foreach (f ${file_list}) install( FILES ${f} DESTINATION "${cmake_functions_install_cmake_dir}/${dir}" ) endforeach() +if(CPACK_PACK_WITH_INNOSETUP) include(cmake/cpack_variables.cmake) +endif() diff --git a/thirdparty/cmakefunctions/cmake_functions/cmake_functions.cmake b/thirdparty/cmakefunctions/cmake_functions/cmake_functions.cmake index a053b06e6..127eb14e6 100644 --- a/thirdparty/cmakefunctions/cmake_functions/cmake_functions.cmake +++ b/thirdparty/cmakefunctions/cmake_functions/cmake_functions.cmake @@ -5,22 +5,12 @@ set (file_list_include target_definitions/targets_protobuf.cmake ) -if(WIN32) - list(APPEND file_list_include - qt/qt_windeployqt.cmake - ) -endif() set(file_list_no_include protoc_functions/protoc_generate_cpp.cmake protoc_functions/protoc_generate_python.cmake ) -if(WIN32) - list(APPEND file_list_no_include - qt/qt_windeployqt_threadsafe_cmake.bat.in - ) -endif() # Set list of all files to be installed by CMake Script. set(file_list ================================================ FILE: ports/ecal/0003-fix-dependencies.patch ================================================ diff --git a/contrib/ecalhdf5/CMakeLists.txt b/contrib/ecalhdf5/CMakeLists.txt index c167bacd4..45e754340 100644 --- a/contrib/ecalhdf5/CMakeLists.txt +++ b/contrib/ecalhdf5/CMakeLists.txt @@ -18,9 +18,14 @@ project(hdf5 LANGUAGES C CXX) -if(NOT CMAKE_CROSSCOMPILING) +if(1) find_package(HDF5 COMPONENTS C REQUIRED) find_package(Threads REQUIRED) + if (TARGET hdf5::hdf5-shared) + set(ECAL_LINK_HDF5_SHARED 1) + else() + set(ECAL_LINK_HDF5_SHARED 0) + endif() else() find_library(hdf5_path NAMES hdf5 REQUIRED PATH_SUFFIXES hdf5/serial) find_path(hdf5_include NAMES hdf5.h PATH_SUFFIXES hdf5/serial REQUIRED) ================================================ FILE: ports/ecal/0004-install-cmake-files-to-share.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 19d8f2a93..dca8948be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -277,7 +277,7 @@ set(eCAL_install_app_dir ${CMAKE_INSTALL_BINDIR}) set(eCAL_install_archive_dir ${CMAKE_INSTALL_LIBDIR}) set(eCAL_install_archive_dyn_dir ${CMAKE_INSTALL_LIBDIR}) set(eCAL_install_bin_dir ${CMAKE_INSTALL_BINDIR}) -set(eCAL_install_cmake_dir ${CMAKE_INSTALL_LIBDIR}/cmake/eCAL) +set(eCAL_install_cmake_dir share/eCAL) set(eCAL_install_config_dir ${CMAKE_INSTALL_SYSCONFDIR}/ecal) set(eCAL_install_doc_dir ${CMAKE_INSTALL_DOCDIR}) set(eCAL_install_include_dir ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt b/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt index 6ed0d1a14..9a833a1f9 100644 --- a/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt +++ b/thirdparty/cmakefunctions/cmake_functions/CMakeLists.txt @@ -4,12 +4,8 @@ include(cmake_functions.cmake) project(CMakeFunctions VERSION 0.4.1) -if (MSVC) -# Variable definitions -set(cmake_functions_install_cmake_dir cmake) -else (MSVC) -set(cmake_functions_install_cmake_dir lib/cmake/${PROJECT_NAME}-${PROJECT_VERSION}) -endif (MSVC) +set(cmake_functions_install_cmake_dir "share/${PROJECT_NAME}") + set(cmake_functions_config ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake) set(cmake_functions_config_version ${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake) ================================================ FILE: ports/ecal/0005-remove-install-prefix-macro-value.patch ================================================ diff --git a/ecal/core/src/ecal_defs.h.in b/ecal/core/src/ecal_defs.h.in index c792a26d1..e5119582b 100644 --- a/ecal/core/src/ecal_defs.h.in +++ b/ecal/core/src/ecal_defs.h.in @@ -39,6 +39,6 @@ #define ECAL_INSTALL_LIB_DIR "@eCAL_install_lib_dir@" #define ECAL_INSTALL_CONFIG_DIR "@eCAL_install_config_dir@" #define ECAL_INSTALL_INCLUDE_DIR "@eCAL_install_include_dir@" -#define ECAL_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" +#define ECAL_INSTALL_PREFIX "" #endif // ecal_defs_h_included ================================================ FILE: ports/ecal/0006-use-find_dependency-in-cmake-config.patch ================================================ diff --git a/cmake/eCALConfig.cmake.in b/cmake/eCALConfig.cmake.in index 704da4de8..e8cfb765c 100644 --- a/cmake/eCALConfig.cmake.in +++ b/cmake/eCALConfig.cmake.in @@ -25,12 +25,21 @@ set(eCAL_VERSION_MAJOR @eCAL_VERSION_MAJOR@) set(eCAL_VERSION_MINOR @eCAL_VERSION_MINOR@) set(eCAL_VERSION_PATCH @eCAL_VERSION_PATCH@) set(eCAL_VERSION_STRING @eCAL_VERSION_STRING@) +set(eCAL_IS_SHARED @BUILD_SHARED_LIBS@) # eCAL is provided only with Release and Debug Version, thus map the other configs to Release build. set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL Release "") set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release "") -find_package(Protobuf REQUIRED) +include(CMakeFindDependencyMacro) +find_dependency(Protobuf CONFIG) + +# Ensure transitive dependencies are present for static builds +if(NOT eCAL_IS_SHARED) + find_dependency(asio) + find_dependency(tcp_pubsub) + find_dependency(HDF5) +endif() include("@PACKAGE_eCAL_install_cmake_dir@/helper_functions/ecal_add_functions.cmake") include("@PACKAGE_eCAL_install_cmake_dir@/helper_functions/ecal_helper_functions.cmake") @@ -44,6 +53,6 @@ include("@PACKAGE_eCAL_install_cmake_dir@/eCALTargets.cmake") # list(APPEND CMAKE_PREFIX_PATH "${PACKAGE_PREFIX_DIR}/../../../../cmake") #endif() -find_package(CMakeFunctions REQUIRED) +find_dependency(CMakeFunctions CONFIG) -find_package(Threads REQUIRED) +find_dependency(Threads) ================================================ FILE: ports/ecal/0007-allow-static-build-of-core.patch ================================================ diff --git a/ecal/core/CMakeLists.txt b/ecal/core/CMakeLists.txt index 8655d134a..03d0f7c81 100644 --- a/ecal/core/CMakeLists.txt +++ b/ecal/core/CMakeLists.txt @@ -449,7 +449,7 @@ set(ecal_header_public ${ecal_header_msg} ) -ecal_add_ecal_shared_library(${PROJECT_NAME} +ecal_add_library(${PROJECT_NAME} ${ecal_config_src} ${ecal_io_mtx_src} ${ecal_io_mtx_linux_src} @@ -483,7 +483,7 @@ if(UNIX) set_source_files_properties(src/util/convert_utf.cpp PROPERTIES COMPILE_FLAGS -Wno-implicit-fallthrough) endif() -ecal_add_ecal_shared_library(${PROJECT_NAME}_c ${ecal_c_src} ${ecal_c_win_src}) +ecal_add_library(${PROJECT_NAME}_c ${ecal_c_src} ${ecal_c_win_src}) add_library(eCAL::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) add_library(eCAL::${PROJECT_NAME}_c ALIAS ${PROJECT_NAME}_c) @@ -514,6 +514,11 @@ target_compile_definitions(${PROJECT_NAME} ECALC_NO_DEPRECATION_WARNINGS ) +if(BUILD_SHARED_LIBS) + target_compile_definitions(${PROJECT_NAME}_c PUBLIC eCAL_SHARED_LIB) + target_compile_definitions(${PROJECT_NAME} PUBLIC eCAL_SHARED_LIB) +endif() + if(ECAL_NPCAP_SUPPORT) target_compile_definitions(${PROJECT_NAME} PRIVATE ECAL_NPCAP_SUPPORT) @@ -565,8 +570,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${SIMPLEINI_INCLUDE_DIRS}) set_property(TARGET ${PROJECT_NAME} PROPERTY FOLDER ecal/core) set_property(TARGET ${PROJECT_NAME}_c PROPERTY FOLDER ecal/core) -ecal_install_ecal_shared_library(${PROJECT_NAME}_c) -ecal_install_ecal_shared_library(${PROJECT_NAME}) +ecal_install_ecal_library(${PROJECT_NAME}_c) +ecal_install_ecal_library(${PROJECT_NAME}) install(DIRECTORY "include/" DESTINATION "${INSTALL_INCLUDE_DIR}" COMPONENT sdk diff --git a/ecal/core/include/ecal/ecal_os.h b/ecal/core/include/ecal/ecal_os.h index 2b051d893..f24cdc325 100644 --- a/ecal/core/include/ecal/ecal_os.h +++ b/ecal/core/include/ecal/ecal_os.h @@ -47,7 +47,7 @@ #define ECAL_OS_FREEBSD #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) && defined(eCAL_SHARED_LIB) #ifdef eCAL_EXPORTS #define ECALC_API __declspec(dllexport) #else /* eCAL_EXPORTS */ @@ -65,11 +65,15 @@ #if !defined(ECALC_NO_DEPRECATION_WARNINGS) #ifdef _MSC_VER + #ifdef eCAL_SHARED_LIB #ifdef eCAL_EXPORTS #define ECALC_API_DEPRECATED __declspec(dllexport deprecated) #else /* eCAL_EXPORTS */ #define ECALC_API_DEPRECATED __declspec(dllimport deprecated) #endif /* eCAL_EXPORTS */ + #else + #define ECALC_API_DEPRECATED + #endif #elif defined(__GNUC__) || defined(__clang__) #define ECALC_API_DEPRECATED __attribute__((deprecated)) #else -- 2.45.0.windows.1 ================================================ FILE: ports/ecal/0008-protobuf-linkage.patch ================================================ diff --git a/app/app_pb/CMakeLists.txt b/app/app_pb/CMakeLists.txt index edd036188..1aae43a81 100644 --- a/app/app_pb/CMakeLists.txt +++ b/app/app_pb/CMakeLists.txt @@ -68,7 +68,7 @@ target_compile_options(${PROJECT_NAME} set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(${PROJECT_NAME} protobuf::libprotobuf) +target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14) ecal_install_library(${PROJECT_NAME}) diff --git a/ecal/core_pb/CMakeLists.txt b/ecal/core_pb/CMakeLists.txt index e8f0704c7..502a92c11 100644 --- a/ecal/core_pb/CMakeLists.txt +++ b/ecal/core_pb/CMakeLists.txt @@ -63,7 +63,7 @@ target_compile_options(${PROJECT_NAME} set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON) -target_link_libraries(${PROJECT_NAME} protobuf::libprotobuf) +target_link_libraries(${PROJECT_NAME} PUBLIC protobuf::libprotobuf) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14) ecal_install_library(${PROJECT_NAME}) ================================================ FILE: ports/ecal/0009-protobuf-6.patch ================================================ diff --git a/contrib/ecalproto/include/ecal/protobuf/ecal_proto_hlp.h b/contrib/ecalproto/include/ecal/protobuf/ecal_proto_hlp.h index f36195022..3c3772dc4 100644 --- a/contrib/ecalproto/include/ecal/protobuf/ecal_proto_hlp.h +++ b/contrib/ecalproto/include/ecal/protobuf/ecal_proto_hlp.h @@ -41,7 +41,7 @@ namespace eCAL { namespace protobuf { - inline std::string CreateCompleteMessageName(const std::string& name_, const std::string& prefix_) + inline std::string CreateCompleteMessageName(absl::string_view name_, const std::string& prefix_) { std::string message_name; if (!prefix_.empty()) @@ -58,7 +58,7 @@ namespace protobuf return element_.substr(0, element_.find('.')); } - inline bool HasFile(const google::protobuf::FileDescriptorSet& fset_, const std::string& fname_) + inline bool HasFile(const google::protobuf::FileDescriptorSet& fset_, absl::string_view fname_) { for (auto findex = 0; findex < fset_.file_size(); ++findex) { @@ -140,18 +140,16 @@ namespace protobuf inline std::string GetProtoMessageTypeName(const google::protobuf::Message& msg_) { - return(std::string("proto:") + msg_.GetTypeName()); + return(std::string("proto:") + std::string(msg_.GetTypeName())); } inline std::vector GetProtoMessageFieldNames(const std::vector& fields_) { std::vector names_vec; - std::transform(fields_.begin(), fields_.end(), std::back_inserter(names_vec), - [](const google::protobuf::FieldDescriptor* field) + for (const google::protobuf::FieldDescriptor* field : fields_) { - return field->name(); + names_vec.emplace_back(field->name()); } - ); return names_vec; } @@ -162,7 +160,7 @@ namespace protobuf for (int i = 0; i < count; ++i) { auto field = descriptor->field(i); - names_vec.push_back(field->name()); + names_vec.emplace_back(field->name()); } return names_vec; } diff --git a/contrib/ecalproto/src/ecal_proto_decoder.cpp b/contrib/ecalproto/src/ecal_proto_decoder.cpp index 786ec7885..1e5ad490a 100644 --- a/contrib/ecalproto/src/ecal_proto_decoder.cpp +++ b/contrib/ecalproto/src/ecal_proto_decoder.cpp @@ -48,11 +48,11 @@ namespace protobuf if (!is_Array_) { - visitor->ScalarMessageStart({ name_, prefix_, (int)index_, msg_.GetTypeName()}, GetProtoMessageFieldNames(descriptor)); + visitor->ScalarMessageStart({ name_, prefix_, (int)index_, std::string(msg_.GetTypeName())}, GetProtoMessageFieldNames(descriptor)); } else { - visitor->ArrayMessageStart({ name_, prefix_, (int)index_, msg_.GetTypeName()}, GetProtoMessageFieldNames(descriptor)); + visitor->ArrayMessageStart({ name_, prefix_, (int)index_, std::string(msg_.GetTypeName())}, GetProtoMessageFieldNames(descriptor)); } std::string complete_message_name = CreateCompleteMessageName(name_, prefix_); @@ -73,7 +73,7 @@ namespace protobuf { accept_complete_array = visitor->AcceptMessage(child_message_name + "[*]"); fsize = ref_ptr->FieldSize(msg_, field); - visitor->ArrayStart({ field->name(), complete_message_name, field->number(), field->type_name() }, field->type(), fsize); + visitor->ArrayStart({ std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, field->type(), fsize); } const google::protobuf::FieldDescriptor::CppType fdt = field->cpp_type(); @@ -82,7 +82,7 @@ namespace protobuf case google::protobuf::FieldDescriptor::CPPTYPE_INT32: // TYPE_INT32, TYPE_SINT32, TYPE_SFIXED32 if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) +"]")) @@ -94,13 +94,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({ field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetInt32(msg_, field)); + visitor->ScalarValueIntegral({ std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetInt32(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_UINT32: // TYPE_UINT32, TYPE_FIXED32 if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -112,13 +112,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number(), field->type_name()}, ref_ptr->GetUInt32(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name())}, ref_ptr->GetUInt32(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_INT64: // TYPE_INT64, TYPE_SINT64, TYPE_SFIXED64 if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -130,13 +130,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetInt64(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetInt64(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_UINT64: // TYPE_UINT64, TYPE_FIXED64 if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -148,13 +148,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetUInt64(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetUInt64(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_FLOAT: // TYPE_FLOAT if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -166,13 +166,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetFloat(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetFloat(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_DOUBLE: // TYPE_DOUBLE if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -184,13 +184,13 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetDouble(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetDouble(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_BOOL: // TYPE_BOOL if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -202,31 +202,31 @@ namespace protobuf } else { - visitor->ScalarValueIntegral({field->name(), complete_message_name, field->number() , field->type_name()}, ref_ptr->GetBool(msg_, field)); + visitor->ScalarValueIntegral({std::string(field->name()), complete_message_name, field->number() , std::string(field->type_name())}, ref_ptr->GetBool(msg_, field)); } break; case google::protobuf::FieldDescriptor::CPPTYPE_ENUM: // TYPE_ENUM if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) { info.id = fnum; - visitor->ArrayValueEnum(info, ref_ptr->GetRepeatedEnum(msg_, field, fnum)->number(), ref_ptr->GetRepeatedEnum(msg_, field, fnum)->name()); + visitor->ArrayValueEnum(info, ref_ptr->GetRepeatedEnum(msg_, field, fnum)->number(), std::string(ref_ptr->GetRepeatedEnum(msg_, field, fnum)->name())); } } } else { - visitor->ScalarValueEnum({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetEnum(msg_, field)->number(), ref_ptr->GetEnum(msg_, field)->name()); + visitor->ScalarValueEnum({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetEnum(msg_, field)->number(), std::string(ref_ptr->GetEnum(msg_, field)->name())); } break; case google::protobuf::FieldDescriptor::CPPTYPE_STRING: // TYPE_STRING, TYPE_BYTES if (field->is_repeated()) { - MessageInfo info{field->name(), complete_message_name, 0, field->type_name()}; + MessageInfo info{std::string(field->name()), complete_message_name, 0, std::string(field->type_name())}; for (int fnum = 0; fnum < fsize; ++fnum) { if (accept_complete_array || visitor->AcceptMessage(child_message_name + "[" + std::to_string(fnum) + "]")) @@ -247,11 +247,11 @@ namespace protobuf { if (field->type() == google::protobuf::FieldDescriptor::TYPE_STRING) { - visitor->ScalarValueString({field->name(), complete_message_name, field->number(), field->type_name()}, ref_ptr->GetString(msg_, field)); + visitor->ScalarValueString({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name())}, ref_ptr->GetString(msg_, field)); } else // TYPE_BYTES { - visitor->ScalarValueBytes({field->name(), complete_message_name, field->number(), field->type_name() }, ref_ptr->GetString(msg_, field)); + visitor->ScalarValueBytes({std::string(field->name()), complete_message_name, field->number(), std::string(field->type_name()) }, ref_ptr->GetString(msg_, field)); } } break; @@ -285,7 +285,7 @@ namespace protobuf msg.GetReflection()->ListFields(msg, &msg_fields); if (prefix_.find(field->name()) == std::string::npos || !msg_fields.empty()) - ProcProtoMsg(msg, field->name(), complete_message_name, false, field->number()); + ProcProtoMsg(msg, std::string(field->name()), complete_message_name, false, field->number()); } } break; diff --git a/ecal/core/src/pubsub/ecal_proto_dyn_json_sub.cpp b/ecal/core/src/pubsub/ecal_proto_dyn_json_sub.cpp index 0797a0b98..071414fa4 100644 --- a/ecal/core/src/pubsub/ecal_proto_dyn_json_sub.cpp +++ b/ecal/core/src/pubsub/ecal_proto_dyn_json_sub.cpp @@ -158,7 +158,7 @@ namespace eCAL if (msg_callback) { - google::protobuf::util::JsonOptions options; + google::protobuf::util::JsonPrintOptions options; #if GOOGLE_PROTOBUF_VERSION >= 5026000 options.always_print_fields_with_no_presence = true; #else ================================================ FILE: ports/ecal/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-ecal/ecal REF "v${VERSION}" SHA512 ae34bfc4aa021ab049758373dbac90dfcee34e92f94590813797d88b854420f9e4419f35fbd0db41c7b8aedbfcd24e46dd385f3017a7e0c1a04ee6863c4f948a HEAD_REF master PATCHES 0001-disable-app-plugins.patch 0002-fix-build.patch 0003-fix-dependencies.patch 0004-install-cmake-files-to-share.patch 0005-remove-install-prefix-macro-value.patch 0006-use-find_dependency-in-cmake-config.patch 0007-allow-static-build-of-core.patch 0008-protobuf-linkage.patch 0009-protobuf-6.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHAS_HDF5=ON -DHAS_QT5=OFF -DHAS_CURL=OFF -DHAS_CAPNPROTO=OFF -DHAS_FTXUI=OFF -DBUILD_DOCS=OFF -DBUILD_APPS=OFF -DBUILD_SAMPLES=OFF -DBUILD_TIME=OFF -DBUILD_PY_BINDING=OFF -DBUILD_CSHARP_BINDING=OFF -DBUILD_ECAL_TESTS=OFF -DECAL_INCLUDE_PY_SAMPLES=OFF -DECAL_INSTALL_SAMPLE_SOURCES=OFF -DECAL_NPCAP_SUPPORT=OFF -DECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONS=ON -DECAL_THIRDPARTY_BUILD_SPDLOG=OFF -DECAL_THIRDPARTY_BUILD_TINYXML2=OFF -DECAL_THIRDPARTY_BUILD_FINEFTP=OFF -DECAL_THIRDPARTY_BUILD_TERMCOLOR=OFF -DECAL_THIRDPARTY_BUILD_TCP_PUBSUB=OFF -DECAL_THIRDPARTY_BUILD_RECYCLE=OFF -DECAL_THIRDPARTY_BUILD_FTXUI=OFF -DECAL_THIRDPARTY_BUILD_GTEST=OFF -DECAL_THIRDPARTY_BUILD_UDPCAP=OFF -DECAL_THIRDPARTY_BUILD_PROTOBUF=OFF -DECAL_THIRDPARTY_BUILD_YAML-CPP=OFF -DECAL_THIRDPARTY_BUILD_CURL=OFF -DECAL_THIRDPARTY_BUILD_HDF5=OFF -DCPACK_PACK_WITH_INNOSETUP=OFF -DECAL_BUILD_VERSION="${VERSION}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME eCAL CONFIG_PATH share/eCAL) vcpkg_cmake_config_fixup(PACKAGE_NAME CMakeFunctions CONFIG_PATH share/CMakeFunctions) # Remove extra debug files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # global ini files not strictly required if (VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/cfg" "${CURRENT_PACKAGES_DIR}/debug/cfg") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc" "${CURRENT_PACKAGES_DIR}/debug/etc") endif() # Install copyright and usage vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/ecal/usage ================================================ The package eCAL provides CMake targets: find_package(eCAL CONFIG REQUIRED) target_link_libraries(main PRIVATE eCAL::core eCAL::core_c eCAL::core_pb eCAL::hdf5) ================================================ FILE: ports/ecal/vcpkg.json ================================================ { "name": "ecal", "version-semver": "5.13.4", "port-version": 1, "description": "eCAL - enhanced Communication Abstraction Layer", "homepage": "https://eclipse-ecal.github.io/ecal/", "license": "Apache-2.0", "supports": "!emscripten", "dependencies": [ "asio", { "name": "hdf5", "default-features": false }, { "name": "protobuf", "default-features": false }, "simpleini", "tclap", "tcp-pubsub", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ecaludp/find-recycle.patch ================================================ diff --git a/ecaludp/CMakeLists.txt b/ecaludp/CMakeLists.txt index c6fc47a..df7073d 100644 --- a/ecaludp/CMakeLists.txt +++ b/ecaludp/CMakeLists.txt @@ -26,7 +26,8 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) find_package(asio REQUIRED) -find_package(recycle REQUIRED) + +find_path(RECYCLE_INCLUDE_DIRS "recycle/no_locking_policy.hpp") message(STATUS "ECALUDP_ENABLE_NPCAP: ${ECALUDP_ENABLE_NPCAP}") if(ECALUDP_ENABLE_NPCAP) @@ -99,11 +100,11 @@ target_link_libraries(${PROJECT_NAME} PRIVATE # Link header-only libs (recycle) as described in this workaround: # https://gitlab.kitware.com/cmake/cmake/-/issues/15415#note_633938 - $ $<$:ws2_32> $<$:wsock32> $<$:udpcap::udpcap> ) +target_include_directories(${PROJECT_NAME} PRIVATE ${RECYCLE_INCLUDE_DIRS}) target_compile_definitions(${PROJECT_NAME} PRIVATE ================================================ FILE: ports/ecaludp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-ecal/ecaludp REF "v${VERSION}" SHA512 4f9d8c67777a63b569bd7069ca2a43eaaaa898a429c206bccfd5e90b10a733aa5f138be059cef2fcebda53987fdf0583b1d1859ecd154b9a48b5d39afd21c637 HEAD_REF master PATCHES find-recycle.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(ECALUDP_LIBRARY_TYPE "SHARED") else() set(ECALUDP_LIBRARY_TYPE "STATIC") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DECALUDP_LIBRARY_TYPE=${ECALUDP_LIBRARY_TYPE} -DECALUDP_BUILD_SAMPLES=OFF -DECALUDP_BUILD_TESTS=OFF -DECALUDP_ENABLE_NPCAP=OFF -DECALUDP_USE_BUILTIN_ASIO=OFF -DECALUDP_USE_BUILTIN_RECYCLE=OFF -DECALUDP_USE_BUILTIN_UDPCAP=OFF -DECALUDP_USE_BUILTIN_GTEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ecaludp) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ecaludp/vcpkg.json ================================================ { "name": "ecaludp", "version": "0.1.2", "description": "UDP transport library for eCAL with fragmentation/reassembly support.", "homepage": "https://github.com/eclipse-ecal/ecaludp", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "asio", "recycle", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ecm/fix-wrong-version.patch ================================================ diff --git a/modules/ECMSetupVersion.cmake b/modules/ECMSetupVersion.cmake index a40c4484..785c58dd 100644 --- a/modules/ECMSetupVersion.cmake +++ b/modules/ECMSetupVersion.cmake @@ -118,7 +118,6 @@ function(ecm_setup_version _version) set(project_manages_version FALSE) set(use_project_version FALSE) if(CMAKE_MAJOR_VERSION VERSION_GREATER_EQUAL 4) - set(project_manages_version TRUE) if(_version STREQUAL "PROJECT") set(use_project_version TRUE) endif() ================================================ FILE: ports/ecm/fix_generateqmltypes.patch ================================================ diff --git a/modules/ECMGenerateQmlTypes.cmake b/modules/ECMGenerateQmlTypes.cmake index d6e124266308028b8533203da63f572f6e99b308..7d7cecb5201521019764102eba0da2abf8b4d911 100644 --- a/modules/ECMGenerateQmlTypes.cmake +++ b/modules/ECMGenerateQmlTypes.cmake @@ -1,4 +1,5 @@ # SPDX-FileCopyrightText: 2017 Aleix Pol Gonzalez +# SPDX-FileCopyrightText: 2021 Dawid Wrobel # # SPDX-License-Identifier: BSD-3-Clause @@ -18,10 +19,7 @@ our project offers. These files offer introspection upon our plugin and are useful for integrating with IDE language support of our plugin. It offers information about the objects its methods and their argument types. -The developer will be in charge of making sure that these files are up to date. -The plugin.qmltypes file will sit in the source directory. This function will -include the code that installs the file in the right place and a small unit -test named qmltypes-pluginname-version that makes sure that it doesn't need updating. +This function installs the file in DESTINATION folder. Since 5.33.0 @@ -40,7 +38,7 @@ function(ecm_generate_qmltypes) set(targetname "qmltypes-${ARG_UNPARSED_ARGUMENTS}") string(REPLACE ";" - targetname "${targetname}") - set(generatedFile ${CMAKE_CURRENT_SOURCE_DIR}/plugins.qmltypes) + set(generatedFile plugins.qmltypes) add_custom_target(${targetname} BYPRODUCTS ${generatedFile} COMMAND qmlplugindump -nonrelocatable ${ARG_UNPARSED_ARGUMENTS} ${KDE_INSTALL_QMLDIR} > ${generatedFile} ================================================ FILE: ports/ecm/kde-clang-format.diff ================================================ diff --git a/kde-modules/KDEClangFormat.cmake b/kde-modules/KDEClangFormat.cmake index e278a63..3949bd2 100644 --- a/kde-modules/KDEClangFormat.cmake +++ b/kde-modules/KDEClangFormat.cmake @@ -53,7 +53,7 @@ Since 5.64 find_program(KDE_CLANG_FORMAT_EXECUTABLE clang-format) # instantiate our clang-format file, must be in source directory for tooling if we have the tool -if(KDE_CLANG_FORMAT_EXECUTABLE) +if(KDE_CLANG_FORMAT_EXECUTABLE AND NOT "$ENV{VCPKG_DISABLE_KDE_CLANG_FORMAT}") set(CLANG_FORMAT_FILE ${CMAKE_CURRENT_SOURCE_DIR}/.clang-format) if (EXISTS ${CLANG_FORMAT_FILE}) file(READ ${CLANG_FORMAT_FILE} CLANG_FORMAT_CONTENTS LIMIT 1000) @@ -77,6 +77,9 @@ function(KDE_CLANG_FORMAT) # add target without specific commands first, we add the real calls file-per-file to avoid command line length issues and enable parallelization add_custom_target(clang-format COMMENT "Formatting sources in ${CMAKE_CURRENT_SOURCE_DIR} with ${KDE_CLANG_FORMAT_EXECUTABLE}...") + if("$ENV{VCPKG_DISABLE_KDE_CLANG_FORMAT}") + return() + endif() # run clang-format only if available, else signal the user what is missing if(KDE_CLANG_FORMAT_EXECUTABLE) ================================================ FILE: ports/ecm/portfile.cmake ================================================ # cmake-scripts only set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/extra-cmake-modules REF "v${VERSION}" SHA512 2aedb0d0a647642ab86fc8d365e1e2508ce585081de79e31a44d9d68c3cdec407990e76059ffbb3cc64dae11a7aec5edcbe2a8cf015af3264987055f618bc0b9 HEAD_REF master PATCHES fix_generateqmltypes.patch # https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/201 fix-wrong-version.patch # Adjust default installation dirs to vcpkg layout, reduce cross-platform variation uniform-dataroot-dir.patch uniform-libexec-dir.patch uniform-plugin-dir.patch # Avoid race while configuring downstream ports kde-clang-format.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_HTML_DOCS=OFF -DBUILD_MAN_DOCS=OFF -DBUILD_QTHELP_DOCS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/ECM/cmake) file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING-CMAKE-SCRIPTS") ================================================ FILE: ports/ecm/uniform-dataroot-dir.patch ================================================ diff --git a/kde-modules/KDEInstallDirsCommon.cmake b/kde-modules/KDEInstallDirsCommon.cmake index aae70d6..623cee7 100644 --- a/kde-modules/KDEInstallDirsCommon.cmake +++ b/kde-modules/KDEInstallDirsCommon.cmake @@ -265,7 +265,7 @@ _define_absolute(LOCALSTATEDIR "var" _define_absolute(SHAREDSTATEDIR "com" "modifiable architecture-independent data") -if (WIN32) +if (0) _define_relative(DATAROOTDIR BINDIR "data" "read-only architecture-independent data root" SHARE_INSTALL_PREFIX) ================================================ FILE: ports/ecm/uniform-libexec-dir.patch ================================================ diff --git a/kde-modules/KDEInstallDirs5.cmake b/kde-modules/KDEInstallDirs5.cmake index 5f67759..24308ad 100644 --- a/kde-modules/KDEInstallDirs5.cmake +++ b/kde-modules/KDEInstallDirs5.cmake @@ -222,7 +222,7 @@ for the prefix into a process. include(${CMAKE_CURRENT_LIST_DIR}/KDEInstallDirsCommon.cmake) -if(WIN32) +if(1) _define_non_cache(LIBEXECDIR_KF5 "${CMAKE_INSTALL_LIBEXECDIR}") else() _define_non_cache(LIBEXECDIR_KF5 "${CMAKE_INSTALL_LIBEXECDIR}/kf5") diff --git a/kde-modules/KDEInstallDirs6.cmake b/kde-modules/KDEInstallDirs6.cmake index 469997b..87c5cd4 100644 --- a/kde-modules/KDEInstallDirs6.cmake +++ b/kde-modules/KDEInstallDirs6.cmake @@ -191,7 +191,7 @@ set(KDE_INSTALL_DIRS_NO_DEPRECATED TRUE) include(${CMAKE_CURRENT_LIST_DIR}/KDEInstallDirsCommon.cmake) -if(WIN32) +if(1) _define_non_cache(LIBEXECDIR_KF "${CMAKE_INSTALL_LIBEXECDIR}") else() _define_non_cache(LIBEXECDIR_KF "${CMAKE_INSTALL_LIBEXECDIR}/kf6") diff --git a/kde-modules/KDEInstallDirsCommon.cmake b/kde-modules/KDEInstallDirsCommon.cmake index aae70d6..6b39058 100644 --- a/kde-modules/KDEInstallDirsCommon.cmake +++ b/kde-modules/KDEInstallDirsCommon.cmake @@ -241,7 +241,7 @@ _define_relative(LIBDIR EXECROOTDIR "${_LIBDIR_DEFAULT}" "object code libraries" LIB_INSTALL_DIR) -if(WIN32) +if(1) _define_relative(LIBEXECDIR BINDIR "" "executables for internal use by programs and libraries" LIBEXEC_INSTALL_DIR) ================================================ FILE: ports/ecm/uniform-plugin-dir.patch ================================================ diff --git a/kde-modules/KDEInstallDirs5.cmake b/kde-modules/KDEInstallDirs5.cmake index 24308ad..c975b3c 100644 --- a/kde-modules/KDEInstallDirs5.cmake +++ b/kde-modules/KDEInstallDirs5.cmake @@ -273,7 +273,7 @@ if(KDE_INSTALL_USE_QT_SYS_PATHS) "QtQuick2 imports" QML_INSTALL_DIR) else() - set(_pluginsDirParent LIBDIR) + set(_pluginsDirParent "") if (ANDROID) set(_pluginsDirParent) #androiddeployqt wants plugins right in the prefix @@ -286,7 +286,7 @@ else() "QtQuick1 imports" IMPORTS_INSTALL_DIR) - _define_relative(QMLDIR LIBDIR "qml" + _define_relative(QMLDIR "" "qml" "QtQuick2 imports" QML_INSTALL_DIR) endif() ================================================ FILE: ports/ecm/usage ================================================ ecm provides CMake files: # Selecting particular find modules find_package(ECM CONFIG REQUIRED) ecm_use_find_modules( DIR "${CMAKE_BINARY_DIR}/cmake" MODULES FindEGL.cmake NO_OVERRIDE ) list(PREPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/cmake") # Everything, via find_package() and include() find_package(ECM CONFIG REQUIRED) list(PREPEND CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(KDEInstallDirs) include(KDECompilerSettings) include(KDECMakeSettings) ================================================ FILE: ports/ecm/vcpkg-port-config.cmake ================================================ # share/ECM/kde-modules/KDEClangFormat.cmake might write to the # source dir, breaking parallel configuration for release/debug. # This variables disables the undesired behaviour. set(ENV{VCPKG_DISABLE_KDE_CLANG_FORMAT} 1) ================================================ FILE: ports/ecm/vcpkg.json ================================================ { "name": "ecm", "version": "6.23.0", "description": "Extra CMake Modules (ECM), extra modules and scripts for CMake", "homepage": "https://invent.kde.org/frameworks/extra-cmake-modules", "documentation": "https://api.kde.org/ecm/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ecos/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(ecos C) #include(GNUInstallDirs) set(EXTERNAL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/external) set(SUITESPARSE ${EXTERNAL_SRC}/SuiteSparse_config) add_library(ecos-suitesparse INTERFACE) target_sources(ecos-suitesparse INTERFACE $ $) target_include_directories(ecos-suitesparse INTERFACE $ $) target_compile_definitions(ecos-suitesparse INTERFACE DLONG LDL_LONG) set(AMD_SRC ${EXTERNAL_SRC}/amd/src) set(AMD_INCLUDE ${EXTERNAL_SRC}/amd/include) add_library(ecos-amd STATIC ${AMD_SRC}/amd_1.c ${AMD_SRC}/amd_2.c ${AMD_SRC}/amd_aat.c ${AMD_SRC}/amd_control.c ${AMD_SRC}/amd_defaults.c ${AMD_SRC}/amd_dump.c ${AMD_SRC}/amd_global.c ${AMD_SRC}/amd_info.c ${AMD_SRC}/amd_order.c ${AMD_SRC}/amd_post_tree.c ${AMD_SRC}/amd_postorder.c ${AMD_SRC}/amd_preprocess.c ${AMD_SRC}/amd_valid.c ) file(GLOB AMD_HEADERS ${EXTERNAL_SRC}/amd/include/*.h) target_include_directories(ecos-amd PUBLIC $ $) target_link_libraries(ecos-amd ecos-suitesparse) add_library(ecos-ldl STATIC ${EXTERNAL_SRC}/ldl/src/ldl.c ) file(GLOB LDL_HEADERS ${EXTERNAL_SRC}/ldl/include/*.h) target_include_directories(ecos-ldl PUBLIC $ $) target_link_libraries(ecos-ldl ecos-suitesparse) add_library(ecos STATIC src/cone.c src/ecos.c src/expcone.c src/preproc.c src/splamm.c src/wright_omega.c src/ctrlc.c src/equil.c src/kkt.c src/spla.c src/timer.c ) file(GLOB ECOS_HEADERS include/*.h) target_include_directories(ecos PUBLIC $ $) target_link_libraries(ecos ecos-amd ecos-ldl) install(FILES ${SUITESPARSE}/SuiteSparse_config.h DESTINATION "include/ecos/") install(FILES ${ECOS_HEADERS} DESTINATION "include/ecos/") install(FILES ${LDL_HEADERS} DESTINATION "include/ecos/") install(FILES ${AMD_HEADERS} DESTINATION "include/ecos/") install(TARGETS ecos ecos-amd ecos-ldl ecos-suitesparse EXPORT ecos-targets) install( EXPORT ecos-targets FILE ecos-config.cmake DESTINATION share/ecos/ ) ================================================ FILE: ports/ecos/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO embotech/ecos REF "v${VERSION}" SHA512 b79434c194b5681f323b275eff0126f56beba792d270bd1773307cdf33297bee550b13bd2f96f5923dc4b8e200216d897ea01978f65da69dd81f1a669f8fd6e2 HEAD_REF develop ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "share/ecos") ================================================ FILE: ports/ecos/vcpkg.json ================================================ { "name": "ecos", "version": "2.0.10", "description": "A lightweight conic solver for second-order cone programming.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ed25519/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) project(ed25519 LANGUAGES C) set(PROJECT_VERSION "${VERSION}") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ed25519.h" "#elif defined(ED25519_DLL)" "#elif 1") endif() set(Header_Files "src/ed25519.h" "src/fe.h" "src/fixedint.h" "src/ge.h" "src/precomp_data.h" "src/sc.h" "src/sha512.h") set(Source_Files "src/add_scalar.c" "src/fe.c" "src/ge.c" "src/key_exchange.c" "src/keypair.c" "src/sc.c" "src/seed.c" "src/sha512.c" "src/sign.c" "src/verify.c") add_library("${PROJECT_NAME}" "${Header_Files}" "${Source_Files}") include(GNUInstallDirs) target_include_directories( "${PROJECT_NAME}" PUBLIC "$" "$" ) target_compile_features("${PROJECT_NAME}" PRIVATE c_std_90) set_target_properties("${PROJECT_NAME}" PROPERTIES C_VISIBILITY_PRESET hidden PUBLIC_HEADER "src/ed25519.h") install( TARGETS "${PROJECT_NAME}" EXPORT "unofficial-${PROJECT_NAME}Config" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}ConfigVersion.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${VERSION_FILE_PATH}" DESTINATION "share/unofficial-${PROJECT_NAME}") install(FILES "src/ed25519.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install( EXPORT "unofficial-${PROJECT_NAME}Config" FILE "unofficial-${PROJECT_NAME}Config.cmake" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") export(PACKAGE "${PROJECT_NAME}") ================================================ FILE: ports/ed25519/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orlp/${PORT} REF b1f19fab4aebe607805620d25a5e42566ce46a0e SHA512 fcbeba58591543304dd93ae7c1b62a720d89c80c4c07c323eabb6e1f41b93562660181973bda345976e5361e925f243ba9abaec19fc8a05235011957367c6e7e HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "Zlib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/ed25519/usage ================================================ ed25519 provides CMake targets: find_package(unofficial-ed25519 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::ed25519::ed25519) ================================================ FILE: ports/ed25519/vcpkg.json ================================================ { "name": "ed25519", "version-date": "2017-02-10", "port-version": 1, "description": "Portable C implementation of Ed25519, a high-speed high-security public-key signature system.", "homepage": "https://github.com/orlp/ed25519", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/edflib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(EDFlib LANGUAGES C) option(BUILD_TOOLS "Build EDFlib tools." OFF) include(GNUInstallDirs) set(sources edflib.h edflib.c) add_library(EDFlib ${sources}) if(BUILD_SHARED_LIBS) target_compile_definitions(EDFlib PUBLIC EDFLIB_SO_DLL PRIVATE $ ) endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU") target_compile_definitions(EDFlib PRIVATE _LARGEFILE64_SOURCE _LARGEFILE_SOURCE) target_compile_options(EDFlib PRIVATE -Wall -Wextra -Wshadow -Wformat-nonliteral -Wformat-security) endif() set_target_properties(EDFlib PROPERTIES PUBLIC_HEADER edflib.h) install(TARGETS EDFlib EXPORT EDFlibTargets PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) install(EXPORT EDFlibTargets FILE unofficial-EDFlibConfig.cmake DESTINATION "share/unofficial-EDFlib" ) if(BUILD_TOOLS) include(CheckSymbolExists) # https://stackoverflow.com/questions/32816646/can-cmake-detect-if-i-need-to-link-to-libm-when-using-pow-in-c if(NOT POW_FUNCTION_EXISTS AND NOT NEED_LINKING_AGAINST_LIBM) check_symbol_exists(pow "math.h" POW_FUNCTION_EXISTS) if(NOT POW_FUNCTION_EXISTS) unset(POW_FUNCTION_EXISTS CACHE) list(APPEND CMAKE_REQUIRED_LIBRARIES m) check_symbol_exists(pow "math.h" POW_FUNCTION_EXISTS) if(POW_FUNCTION_EXISTS) set(NEED_LINKING_AGAINST_LIBM True CACHE BOOL "" FORCE) else() message(FATAL_ERROR "Failed making the pow() function available") endif() endif() endif() add_executable(sine_generator sine_generator.c) target_link_libraries(sine_generator PRIVATE EDFlib) add_executable(sweep_generator sweep_generator.c) target_link_libraries(sweep_generator PRIVATE EDFlib) if(NEED_LINKING_AGAINST_LIBM) target_link_libraries(sine_generator PRIVATE m) target_link_libraries(sweep_generator PRIVATE m) endif() install(TARGETS sine_generator sweep_generator RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/edflib/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO Teuniz/EDFlib REF "v${VERSION}" SHA512 ad5f9be5a10d0e83a80242cdb088db8ae697ee6e723a7c5459cef95b5eba16c54d8bc2493b66d5114a8d1782505b2d2c63c9a5ce96c09dcca89489cd43fa6012 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/edflib.h" "#if defined(EDFLIB_SO_DLL)" "#if 1 // defined(EDFLIB_SO_DLL)" ) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-EDFlib) if ("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES sine_generator sweep_generator AUTO_CLEAN ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/edflib/vcpkg.json ================================================ { "name": "edflib", "version": "1.27", "description": "A C library to read/write EDF/EDF+/BDF/BDF+ files", "homepage": "https://www.teuniz.net/edflib/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/edlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Martinsos/edlib REF v1.2.7 SHA512 720C732C76D0D9ABE28ADCE9972B355864571A2E6CBD2C72C3B4A92E045A99E3A688153865586F7E8B6C90433E2EB1BB024AD0A6E9D4EB4B4D401A160D3F13CE HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/edlib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/edlib/vcpkg.json ================================================ { "name": "edlib", "version": "1.2.7", "port-version": 1, "description": "Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.", "homepage": "https://github.com/Martinsos/edlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/effects11/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/FX11 REF jun2023 SHA512 93a90b42efbc8e1e9cb76de80c959bc24406536af9d943d21e324a82be677d695c201deb995490e331ecfcda301d8b42285b90577fbed9acd5bb61c753efd66c HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES spectre ENABLE_SPECTRE_MITIGATION ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/effects11) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/effects11/usage ================================================ The Effects (FX) system for Direct3D 11 package is compatible with built-in CMake targets: find_package(effects11 CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::Effects11) ================================================ FILE: ports/effects11/vcpkg.json ================================================ { "name": "effects11", "version": "11.29", "port-version": 3, "description": "Effects for Direct3D 11 (FX11) is a management runtime for authoring HLSL shaders, render state, and runtime variables together.", "homepage": "https://github.com/Microsoft/FX11", "documentation": "https://github.com/microsoft/FX11/wiki", "license": "MIT", "supports": "windows & !xbox & !mingw", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "spectre": { "description": "Build Spectre-mitigated library" } } } ================================================ FILE: ports/effolkronium-random/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO effolkronium/random REF "v${VERSION}" SHA512 778667d3b3a4bd51b67ef7d1842652dcf6d7df210345f667d0474cdfe48bb75fa2c891f8843f3fc4946fb2ef71da652c296eaaa03718ed889dee4926d743b7dd HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRandom_BuildTests=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME effolkronium_random CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE.MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/effolkronium-random/vcpkg.json ================================================ { "name": "effolkronium-random", "version": "1.5.0", "description": "Random with a modern C++ API", "homepage": "https://github.com/effolkronium/random", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/efsw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SpartanJ/efsw REF "${VERSION}" SHA512 465349e4333c674b1000441d48ee8e063ad09316bc55c1797a464f6c66ff7d904b7a6169d56ac2a29cc17d4be03665b2ccba8d479932cfdbba414f0d8d387488 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" EFSW_BUILD_SHARED_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" EFSW_BUILD_STATIC_LIB) # efsw CMakeLists sets up two targets "efsw" and "efsw-static" where the former is static or shared depending on BUILD_SHARED_LIBS and the latter is always static vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DVERBOSE=OFF -DBUILD_TEST_APP=OFF -DBUILD_SHARED_LIBS=${EFSW_BUILD_SHARED_LIB} -DBUILD_STATIC_LIBS=0 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/efsw) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/efsw/vcpkg.json ================================================ { "name": "efsw", "version": "1.5.1", "description": "efsw is a C++ cross-platform file system watcher and notifier.", "homepage": "https://github.com/SpartanJ/efsw", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/egl/egl.pc.in ================================================ prefix=${pcfiledir}/../.. libdir=${prefix}/lib includedir=${prefix}/include Name: EGL Description: EGL library and headers. Version: @VERSION@ Requires.private: zlib opengl # angle Libs: -L${libdir} -llibEGL Libs.private: -llibGLESv2 -llibANGLE -ld3d9 -ldxguid -ldxgi Cflags: -I${includedir} Cflags.private: -DKHRONOS_STATIC ================================================ FILE: ports/egl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/egl/vcpkg-cmake-wrapper.cmake" @ONLY) if(VCPKG_TARGET_IS_WINDOWS) configure_file("${CMAKE_CURRENT_LIST_DIR}/egl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/egl.pc" @ONLY) if (NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/egl.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/egl.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() endif() ================================================ FILE: ports/egl/vcpkg-cmake-wrapper.cmake ================================================ # Wrapper for FindEGL.cmake in extra-cmake-modules (port ecm) and its vendored copies if(UNIX) find_package(OpenGL COMPONENTS EGL) if(OPENGL_egl_LIBRARY) set(EGL_LIBRARY "${OPENGL_egl_LIBRARY}" CACHE STRING "") set(EGL_INCLUDE_DIR "${OPENGL_EGL_INCLUDE_DIRS}" CACHE STRING "") endif() elseif(WIN32) find_package(unofficial-angle CONFIG) if(TARGET unofficial::angle::libEGL) set(EGL_LIBRARY unofficial::angle::libEGL) if(NOT TARGET EGL::EGL) add_library(EGL::EGL INTERFACE IMPORTED) set_target_properties(EGL::EGL PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::angle::libEGL ) endif() endif() endif() _find_package(${ARGS}) ================================================ FILE: ports/egl/vcpkg.json ================================================ { "name": "egl", "version-date": "2022-12-04", "description": "EGL is an interface between Khronos rendering APIs (such as OpenGL, OpenGL ES or OpenVG) and the underlying native platform windowing system.", "license": null, "dependencies": [ { "$comment": "alternativly this can be supplied by mesa; angle translates to Direct 3D", "name": "angle", "platform": "windows" }, "opengl" ] } ================================================ FILE: ports/egl-registry/copyright ================================================ ## include/KHR/khrplatform.h Copyright (c) 2008-2018 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Materials. THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. ## include/EGL/* ## share/opengl/egl.xml Copyright 2013-2020 The Khronos Group Inc. SPDX-License-Identifier: Apache-2.0 ================================================ FILE: ports/egl-registry/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/EGL-Registry REF 3ae2b7c48690d2ce13cc6db3db02dfc0572be65e SHA512 c7b09ded4964fa427546bd345a29325105b79079b59642214dc8f04de113f42de2bc4272dbbbd4a801d92afc20297442fdfa12043a0900cf1e2b1cd83f260883 HEAD_REF master ) file( COPY "${SOURCE_PATH}/api/KHR" "${SOURCE_PATH}/api/EGL" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file( COPY "${SOURCE_PATH}/api/egl.xml" DESTINATION "${CURRENT_PACKAGES_DIR}/share/opengl" ) vcpkg_install_copyright(FILE_LIST "${CURRENT_PORT_DIR}/copyright") ================================================ FILE: ports/egl-registry/vcpkg.json ================================================ { "name": "egl-registry", "version-date": "2025-05-27", "description": "EGL API and Extension Registry", "homepage": "https://github.com/KhronosGroup/EGL-Registry", "license": "Apache-2.0" } ================================================ FILE: ports/eigen3/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO libeigen/eigen REF ${VERSION} SHA512 b337d3bc38440db190a8f1fbc4eabc0098e69fcc95bfba195fe039ffb942cae2a7f0153f3094f35fa26325750d1c62e20cccaf916a41f5c7f248ec5e5d30a942 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DEIGEN_BUILD_BLAS=OFF -DEIGEN_BUILD_BTL=OFF -DEIGEN_BUILD_CMAKE_PACKAGE=ON -DEIGEN_BUILD_DEMOS=OFF -DEIGEN_BUILD_DOC=OFF -DEIGEN_BUILD_LAPACK=OFF -DEIGEN_BUILD_PKGCONFIG=ON -DEIGEN_BUILD_SPBENCH=OFF OPTIONS_RELEASE "-DCMAKEPACKAGE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT}" "-DPKGCONFIG_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/lib/pkgconfig" OPTIONS_DEBUG "-DCMAKEPACKAGE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}" "-DPKGCONFIG_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING.README" "${SOURCE_PATH}/COPYING.APACHE" "${SOURCE_PATH}/COPYING.BSD" "${SOURCE_PATH}/COPYING.MINPACK" "${SOURCE_PATH}/COPYING.MPL2" ) ================================================ FILE: ports/eigen3/vcpkg.json ================================================ { "name": "eigen3", "version": "5.0.1", "description": "C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.", "homepage": "http://eigen.tuxfamily.org", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/eipscanner/package.patch ================================================ diff --git a/cmake/EIPScannerConfig.cmake.in b/cmake/EIPScannerConfig.cmake.in new file mode 100644 index 0000000..3e16bd1 --- /dev/null +++ b/cmake/EIPScannerConfig.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/EIPScannerTargets.cmake") + +check_required_components(EIPScanner) + diff --git a/CMakeLists.txt b/CMakeLists.txt index 68a291e..d2562a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ option(TEST_ENABLED "Enable unit test" OFF) option(EXAMPLE_ENABLED "Build examples" OFF) add_subdirectory(src) + if (EXAMPLE_ENABLED) add_subdirectory(examples) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dc2bbb9..d8d3cfa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,7 +64,18 @@ set_target_properties( VERSION ${EIPSCANNER_FULL_VERSION} SOVERSION ${EIPSCANNER_MAJOR_VERSION}) -install(TARGETS EIPScanner EIPScannerS +if(BUILD_SHARED_LIBS) + set(install_target EIPScanner) + set_target_properties(EIPScanner PROPERTIES EXPORT_NAME eipscanner) + set_target_properties(EIPScannerS PROPERTIES EXCLUDE_FROM_ALL 1) +else() + set(install_target EIPScannerS) + set_target_properties(EIPScannerS PROPERTIES EXPORT_NAME eipscanner) + set_target_properties(EIPScanner PROPERTIES EXCLUDE_FROM_ALL 1) +endif() + +install(TARGETS ${install_target} + EXPORT ${install_target} LIBRARY DESTINATION lib ARCHIVE @@ -73,3 +84,33 @@ install(TARGETS EIPScanner EIPScannerS install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/ DESTINATION include/EIPScanner FILES_MATCHING PATTERN "*.h*") + +target_include_directories(${install_target} + INTERFACE + $ +) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ../cmake/EIPScannerConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfig.cmake + INSTALL_DESTINATION lib/cmake/eipscanner +) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/EIPScannerConfigVersion.cmake + DESTINATION lib/cmake/eipscanner +) + +install(EXPORT ${install_target} + FILE EIPScannerTargets.cmake + NAMESPACE unofficial::eipscanner:: + DESTINATION lib/cmake/eipscanner +) ================================================ FILE: ports/eipscanner/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nimbuscontrols/EIPScanner REF ${VERSION} SHA512 24612e6eec97aa67dfd83ec90d3f1a961c69a63a17cb09679b9eb453750049628def8d488b9debbf1f322a800f9f54933dedca9b37fb1c5703e95460b89f2f43 HEAD_REF master PATCHES package.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/eipscanner) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/eipscanner/usage ================================================ The package EIPScanner provides CMake targets: find_package(EIPScanner CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::eipscanner::eipscanner) ================================================ FILE: ports/eipscanner/vcpkg.json ================================================ { "name": "eipscanner", "version": "1.3.0", "description": "Free implementation of EtherNet/IP in C++ ", "homepage": "https://eipscanner.readthedocs.io", "license": "MIT", "supports": "!windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/elements/fix-dependencies.patch ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index e84ca98..7a06ed2 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -226,14 +226,7 @@ endif() ############################################################################### # Cycfi Infra -FetchContent_Declare( - cycfi_infra - GIT_REPOSITORY https://github.com/cycfi/infra.git - GIT_TAG master - GIT_SUBMODULES_RECURSE ON -) - -FetchContent_MakeAvailable(cycfi_infra) +add_subdirectory(infra) target_link_libraries(elements PUBLIC cycfi::infra) ############################################################################### @@ -272,15 +265,8 @@ endif() ############################################################################### # Asio headers -FetchContent_Declare( - asio - GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git - GIT_TAG asio-1-29-0 - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(asio) - -target_include_directories(elements PUBLIC ${asio_SOURCE_DIR}/asio/include) +find_package(asio CONFIG REQUIRED) +target_include_directories(elements PUBLIC ${ASIO_INCLUDE_DIR}) ############################################################################### # Global options ================================================ FILE: ports/elements/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cycfi/elements REF 28ede99e37597d743979b127191df45ace11f58b SHA512 4ab2952d64a6c19de15b24db9bf4523ba26c274847dedf7f1d36b09e5fda0656d0b83d9aa310cc0a81b23c894a8ad00c6a88afc9b0b6c1e76b6469f8bb01603c HEAD_REF master PATCHES fix-dependencies.patch ) vcpkg_from_github( OUT_SOURCE_PATH INFRA_SOURCE_PATH REPO cycfi/infra REF 2dff97a4b107eced78e426152f5001a2331cb1cf SHA512 a679e70fe1751e0a6be7b7449d7f4bf36e59ea355e44ddef4902b784f521e264bfc009ec0792ef7fb04ffbc187f0e99116a615e8bdf7932abd34cafc0d7cdfff HEAD_REF master ) if(NOT EXISTS "${SOURCE_PATH}/lib/infra/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/lib/infra") file(RENAME "${INFRA_SOURCE_PATH}" "${SOURCE_PATH}/lib/infra") endif() if(VCPKG_TARGET_IS_WINDOWS) set(ELEMENTS_HOST_UI_LIBRARY "win32") elseif(VCPKG_TARGET_IS_OSX) set(ELEMENTS_HOST_UI_LIBRARY "cocoa") else() set(ELEMENTS_HOST_UI_LIBRARY "gtk") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DELEMENTS_BUILD_EXAMPLES=OFF -DELEMENTS_HOST_UI_LIBRARY=${ELEMENTS_HOST_UI_LIBRARY} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() file(INSTALL "${SOURCE_PATH}/lib/include/elements.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/lib/include/elements" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/lib/infra/include/infra" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(GLOB ELEMENTS_LIBS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/*elements*") file(INSTALL ${ELEMENTS_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB ELEMENTS_LIBS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/*elements*") file(INSTALL ${ELEMENTS_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md") ================================================ FILE: ports/elements/vcpkg.json ================================================ { "name": "elements", "version-date": "2025-11-18", "description": "Elements is a lightweight, fine-grained, resolution independent, modular GUI library.", "homepage": "https://cycfi.github.io/elements", "license": "MIT", "supports": "(windows & staticcrt) | osx | linux", "dependencies": [ "asio", "cairo", "fontconfig", "freetype", { "name": "gtk3", "platform": "!osx & !windows" }, "libwebp", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/elfio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO serge1/ELFIO REF "Release_${VERSION}" SHA512 f5c8bc6cc98da845f6c011fc85b98476935c5d20d72b36bff5ad2472434494115ee7c06cfa37152c528e5931c39fe3cc084bfc8e6952b2c3e8f24b8601ae212f ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DELFIO_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/elfio/vcpkg.json ================================================ { "name": "elfio", "version": "3.12", "port-version": 1, "description": "A header-only C++ library intended for reading and generating files in the ELF binary format.", "homepage": "https://github.com/serge1/ELFIO", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/elfutils/disable-werror.diff ================================================ diff --git a/config/eu.am b/config/eu.am index e6c241f..4136e7c 100644 --- a/config/eu.am +++ b/config/eu.am @@ -99,7 +99,6 @@ AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ $(USE_AFTER_FREE3_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ @@ -109,7 +108,6 @@ AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \ $(TRAMPOLINES_WARNING) \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ - $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \ ================================================ FILE: ports/elfutils/link-libs.diff ================================================ diff --git a/config/libdw.pc.in b/config/libdw.pc.in index 2e83a43..bdfc808 100644 --- a/config/libdw.pc.in +++ b/config/libdw.pc.in @@ -18,5 +18,4 @@ Requires: libelf = @VERSION@ # We support various compressed ELF images, but don't export any of the # data structures or functions. zlib (gz) is always required, bzip2 (bz2) # lzma (xz) and zstd () are optional. But bzip2 doesn't have a pkg-config file. -Requires.private: zlib @LIBLZMA@ @LIBZSTD@ -Libs.private: @BZ2_LIB@ +Requires.private: zlib @LIBLZMA@ @LIBZSTD@ bzip2 diff --git a/configure.ac b/configure.ac index f191488..fe617ac 100644 --- a/configure.ac +++ b/configure.ac @@ -429,6 +429,8 @@ AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes) dnl zlib is mandatory. save_LIBS="$LIBS" LIBS= +PKG_PROG_PKG_CONFIG +PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], AC_MSG_ERROR([zlib not found])) eu_ZIPLIB(zlib,ZLIB,z,gzdirect,gzip) AS_IF([test "x$with_zlib" = xno], [AC_MSG_ERROR([zlib not found but is required])]) LIBS="$save_LIBS" @@ -437,18 +439,21 @@ dnl Test for bzlib and xz/lzma/zstd, gives BZLIB/LZMALIB/ZSTD .am dnl conditional and config.h USE_BZLIB/USE_LZMALIB/USE_ZSTD #define. save_LIBS="$LIBS" LIBS= +PKG_CHECK_MODULES([BZLIB], [bzip2], [LIBS="$BZLIB_LIBS $LIBS"], AC_MSG_ERROR([bzip2 not found])) eu_ZIPLIB(bzlib,BZLIB,bz2,BZ2_bzdopen,bzip2) # We need this since bzip2 doesn't have a pkgconfig file. BZ2_LIB="$LIBS" AC_SUBST([BZ2_LIB]) save_LIBS="$LIBS" LIBS= +PKG_CHECK_MODULES([LZMA], [liblzma], [LIBS="$LZMA_LIBS $LIBS"], AC_MSG_ERROR([liblzma not found])) eu_ZIPLIB(lzma,LZMA,lzma,lzma_auto_decoder,[LZMA (xz)]) lzma_LIBS="$LIBS" LIBS="$lzma_LIBS $save_LIBS" AS_IF([test "x$with_lzma" = xyes], [LIBLZMA="liblzma"], [LIBLZMA=""]) AC_SUBST([lzma_LIBS]) AC_SUBST([LIBLZMA]) +PKG_CHECK_MODULES([ZSTD], [libzstd], [LIBS="$ZSTDLIBS $LIBS"], AC_MSG_ERROR([libzstd not found])) eu_ZIPLIB(zstd,ZSTD,zstd,ZSTD_decompress,[ZSTD (zst)]) AS_IF([test "x$with_zstd" = xyes], [LIBZSTD="libzstd"], [LIBLZSTD=""]) AC_SUBST([LIBZSTD]) diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am index 0a129fa..b90ed23 100644 --- a/debuginfod/Makefile.am +++ b/debuginfod/Makefile.am @@ -42,8 +42,8 @@ program_transform_name = s,x,x, if BUILD_STATIC libasm = ../libasm/libasm.a -libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread -libelf = ../libelf/libelf.a -lz +libdw = ../libdw/libdw.a $(ZLIB_LIBS) $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread +libelf = ../libelf/libelf.a $(ZLIB_LIBS) $(zip_LIBS) if DUMMY_LIBDEBUGINFOD libdebuginfod = ./libdebuginfod.a else diff --git a/libdw/Makefile.am b/libdw/Makefile.am index 5363c02..045cde5 100644 --- a/libdw/Makefile.am +++ b/libdw/Makefile.am @@ -110,7 +110,7 @@ libdw_so_LIBS = ../libebl/libebl_pic.a ../backends/libebl_backends_pic.a \ ../libcpu/libcpu_pic.a libdw_pic.a ../libdwelf/libdwelf_pic.a \ ../libdwfl/libdwfl_pic.a ../libdwfl_stacktrace/libdwfl_stacktrace_pic.a libdw_so_DEPS = ../lib/libeu.a ../libelf/libelf.so -libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl -lz $(argp_LDADD) $(fts_LIBS) $(obstack_LIBS) $(zip_LIBS) -pthread +libdw_so_LDLIBS = $(libdw_so_DEPS) -ldl $(ZLIB_LIBS) $(argp_LDADD) $(fts_LIBS) $(obstack_LIBS) $(zip_LIBS) -pthread libdw.so: $(srcdir)/libdw.map $(libdw_so_LIBS) $(libdw_so_DEPS) $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \ -Wl,--soname,$@.$(VERSION),--enable-new-dtags \ diff --git a/libelf/Makefile.am b/libelf/Makefile.am index 3402863..30a331e 100644 --- a/libelf/Makefile.am +++ b/libelf/Makefile.am @@ -106,7 +106,7 @@ libelf_pic_a_SOURCES = am_libelf_pic_a_OBJECTS = $(libelf_a_SOURCES:.c=.os) libelf_so_DEPS = ../lib/libeu.a -libelf_so_LDLIBS = $(libelf_so_DEPS) -lz $(zstd_LIBS) +libelf_so_LDLIBS = $(libelf_so_DEPS) $(ZLIB_LIBS) $(zstd_LIBS) if USE_LOCKS libelf_so_LDLIBS += -lpthread endif diff --git a/src/Makefile.am b/src/Makefile.am index 6bdf2df..2fd5b42 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -54,8 +54,8 @@ CLEANFILES = $(bin_SCRIPTS) $(EXTRA_libar_a_DEPENDENCIES) if BUILD_STATIC libasm = ../libasm/libasm.a -libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) -ldl -lpthread -libelf = ../libelf/libelf.a -lz $(zstd_LIBS) +libdw = ../libdw/libdw.a $(ZLIB_LIBS) $(zip_LIBS) $(libelf) -ldl -lpthread +libelf = ../libelf/libelf.a $(ZLIB_LIBS) $(zstd_LIBS) if LIBDEBUGINFOD libdebuginfod = ../debuginfod/libdebuginfod.a -lpthread $(libcurl_LIBS) $(crypto_LIBS) $(jsonc_LIBS) else ================================================ FILE: ports/elfutils/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://sourceware.org/pub/elfutils/${VERSION}/elfutils-${VERSION}.tar.bz2" "https://www.mirrorservice.org/sites/sourceware.org/pub/elfutils/${VERSION}/elfutils-${VERSION}.tar.bz2" FILENAME "elfutils-${VERSION}.tar.bz2" SHA512 557e328e3de0d2a69d09c15a9333f705f3233584e2c6a7d3ce855d06a12dc129e69168d6be64082803630397bd64e1660a8b5324d4f162d17922e10ddb367d76 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable-werror.diff link-libs.diff rpath-link.diff static-tools.diff ) vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_find_acquire_program(BISON) get_filename_component(BISON_DIR "${BISON}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${BISON_DIR}") set(options "") if("libdebuginfod" IN_LIST FEATURES) list(APPEND options "--enable-libdebuginfod=yes") else() list(APPEND options "--enable-libdebuginfod=no") endif() if("nls" IN_LIST FEATURES) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") else() set(ENV{AUTOPOINT} true) # the program list(APPEND options "--enable-nls=no") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} --enable-debuginfod=no --with-bzlib --with-lzma --with-zlib --with-zstd ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/etc/debuginfod" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(wrong_suffix "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") else() set(wrong_suffix "${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") endif() file(GLOB wrong_libs "${CURRENT_PACKAGES_DIR}/lib/*${wrong_suffix}" "${CURRENT_PACKAGES_DIR}/lib/*${wrong_suffix}.*" "${CURRENT_PACKAGES_DIR}/debug/lib/*${wrong_suffix}" "${CURRENT_PACKAGES_DIR}/debug/lib/*${wrong_suffix}.*" ) file(REMOVE ${wrong_libs}) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/eu-make-debug-archive" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") if("libdebuginfod" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/etc/profile.d/debuginfod.sh" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/etc/profile.d/debuginfod.csh" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../..") endif() vcpkg_install_copyright( COMMENT [[ The libraries are subject to LGPL-3.0-or-later OR GPL-2.0-or-later (cf. COPYING-LGPLV3, COPYING-GPLV2). The tools are subject to GPL-3.0-or-later (cf. COPYING). For additional terms, see the following source files: - doc/readelf.1 (GFDL-NIV-1.3) - lib/stdatomic-fbsd.h (BSD-2-Clause) - libcpu/i386_parse.* (GPL-3+ with Bison exception) - libelf/dl-hash.h (LGPL-2.1+) - libelf/elf.h (LGPL-2.1+) ]] FILE_LIST "${SOURCE_PATH}/COPYING-LGPLV3" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING-GPLV2" ) ================================================ FILE: ports/elfutils/rpath-link.diff ================================================ diff --git a/debuginfod/Makefile.am b/debuginfod/Makefile.am index db27b2a..b90ed23 100644 --- a/debuginfod/Makefile.am +++ b/debuginfod/Makefile.am @@ -58,7 +58,7 @@ endif libebl = ../libebl/libebl.a libeu = ../lib/libeu.a -AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:. +AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:.:$(libdir) bin_PROGRAMS = if DEBUGINFOD diff --git a/src/Makefile.am b/src/Makefile.am index 8e35512..33f7f4b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -26,7 +26,7 @@ AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ -I$(srcdir)/../libdwfl -I$(srcdir)/../libdwfl_stacktrace \ -I$(srcdir)/../libasm -I../debuginfod -AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw $(STACK_USAGE_NO_ERROR) +AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:$(libdir) $(STACK_USAGE_NO_ERROR) bin_PROGRAMS = readelf nm size strip elflint findtextrel addr2line \ elfcmp objdump ranlib strings ar unstrip stack elfcompress \ ================================================ FILE: ports/elfutils/static-tools.diff ================================================ diff --git a/configure.ac b/configure.ac index bbe8673..7bb1b0e 100644 --- a/configure.ac +++ b/configure.ac @@ -415,6 +415,7 @@ AS_HELP_STRING([--enable-install-elfh],[install elf.h in include dir]), AM_CONDITIONAL(INSTALL_ELFH, test "$install_elfh" = yes) AM_CONDITIONAL(BUILD_STATIC, [dnl +test "$enable_static" = yes || test "$use_gprof" = yes -o "$use_gcov" = yes]) AC_ARG_ENABLE([tests-rpath], ================================================ FILE: ports/elfutils/vcpkg.json ================================================ { "name": "elfutils", "version": "0.193", "port-version": 1, "description": "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux.", "homepage": "https://sourceware.org/elfutils/", "license": null, "supports": "linux", "dependencies": [ "bzip2", "liblzma", { "name": "vcpkg-make", "host": true }, "zlib", "zstd" ], "features": { "libdebuginfod": { "description": "Build the debuginfod library.", "dependencies": [ { "name": "curl", "default-features": false }, "json-c" ] }, "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/eljonny-testcpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eljonny/TestCPP REF "v${VERSION}" SHA512 a47803b2e36cc5ed6055d27865d61225368daaebefe615d22afb2055b4da6ff44a8da8a4bee72f7f35bb9a53ebc12229143b16401391cef130818f105a42df3e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH "lib/cmake" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/eljonny-testcpp/usage ================================================ eljonny-testcpp provides CMake targets: find_package(TestCPP CONFIG REQUIRED) target_link_libraries(main PRIVATE cpptesting::TestCPP) See https://github.com/eljonny/TestCPP/blob/main/README.md for more information ================================================ FILE: ports/eljonny-testcpp/vcpkg.json ================================================ { "name": "eljonny-testcpp", "version": "0.3.0-beta.4", "description": "A simple C++ test framework with no dependencies other than C++11 STL.", "homepage": "https://github.com/eljonny/TestCPP", "license": "Unlicense", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/embree/avoid-library-conflicts.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1292e26..93a673a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -708,3 +708,9 @@ ENDIF() ############################################################## INCLUDE(CPack) + +foreach(lib IN ITEMS lexers math simd sys tasking) + if(TARGET ${lib}) + set_target_properties(${lib} PROPERTIES OUTPUT_NAME ${EMBREE_LIBRARY_NAME}_${lib}) + endif() +endforeach() ================================================ FILE: ports/embree/cmake-config.diff ================================================ diff --git a/common/cmake/embree-config.cmake b/common/cmake/embree-config.cmake index c0009fd..e80df05 100644 --- a/common/cmake/embree-config.cmake +++ b/common/cmake/embree-config.cmake @@ -5,7 +5,7 @@ SET(EMBREE_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/@EMBREE_RELATIVE_ROOT_DIR@") GET_FILENAME_COMPONENT(EMBREE_ROOT_DIR "${EMBREE_ROOT_DIR}" ABSOLUTE) SET(EMBREE_INCLUDE_DIRS "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_INCLUDEDIR@") -SET(EMBREE_LIBRARY "${EMBREE_ROOT_DIR}/@CMAKE_INSTALL_LIBDIR@/@EMBREE_LIBRARY_FULLNAME@") +SET(EMBREE_LIBRARY "unofficial::embree::embree") # Improve diagnostics with namespaced target SET(EMBREE_LIBRARIES ${EMBREE_LIBRARY}) SET(EMBREE_VERSION @EMBREE_VERSION@) @@ -104,6 +104,10 @@ IF (EMBREE_SYCL_SUPPORT) ENDIF() INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree-targets.cmake") +if(NOT TARGET unofficial::embree::embree) + add_library(unofficial::embree::embree INTERFACE IMPORTED) + target_link_libraries(unofficial::embree::embree INTERFACE embree) +endif() SET(EMBREE_TESTING_ONLY_SYCL_TESTS @EMBREE_TESTING_ONLY_SYCL_TESTS@) diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake index 7cd3775..3fe79bb 100644 --- a/common/cmake/package.cmake +++ b/common/cmake/package.cmake @@ -218,6 +218,9 @@ ELSE() FILE(RELATIVE_PATH EMBREE_RELATIVE_ROOT_DIR "/${EMBREE_CMAKECONFIG_DIR}" "/") ENDIF() #ENDIF() +SET(EMBREE_CMAKECONFIG_DIR "share/embree") +SET(EMBREE_CMAKEEXPORT_DIR "share/embree") +SET(EMBREE_RELATIVE_ROOT_DIR "../../") CONFIGURE_FILE(common/cmake/embree-config.cmake embree-config-install.cmake @ONLY) CONFIGURE_FILE(common/cmake/embree-config-version.cmake embree-config-version.cmake @ONLY) ================================================ FILE: ports/embree/no-runtime-install.patch ================================================ diff --git a/common/cmake/package.cmake b/common/cmake/package.cmake index daa4f49..7cd3775 100644 --- a/common/cmake/package.cmake +++ b/common/cmake/package.cmake @@ -119,6 +119,7 @@ ENDIF() ############################################################## IF (WIN32) +ELSEIF (0) SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) SET(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS TRUE) ================================================ FILE: ports/embree/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/embree/embree-config.cmake") message(FATAL_ERROR "Port embree3 must be removed before installing embree.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RenderKit/embree REF v${VERSION} SHA512 5e77a033192ade6562b50d32c806c6a467580722898ca52ccfe002b51279314055e9c0e6c969651b0d03716d04ab249301340cd2790556a0dbfb8c296e8f0574 HEAD_REF master PATCHES avoid-library-conflicts.diff cmake-config.diff no-runtime-install.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" static EMBREE_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" static EMBREE_STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES backface-culling EMBREE_BACKFACE_CULLING compact-polys EMBREE_COMPACT_POLYS filter-function EMBREE_FILTER_FUNCTION ray-mask EMBREE_RAY_MASK ray-packets EMBREE_RAY_PACKETS geometry-triangle EMBREE_GEOMETRY_TRIANGLE geometry-quad EMBREE_GEOMETRY_QUAD geometry-curve EMBREE_GEOMETRY_CURVE geometry-subdivision EMBREE_GEOMETRY_SUBDIVISION geometry-user EMBREE_GEOMETRY_USER geometry-instance EMBREE_GEOMETRY_INSTANCE geometry-grid EMBREE_GEOMETRY_GRID geometry-point EMBREE_GEOMETRY_POINT ) if("tasking-tbb" IN_LIST FEATURES) set(EMBREE_TASKING_SYSTEM "TBB") list(APPEND FEATURE_OPTIONS "-DVCPKG_LOCK_FIND_PACKAGE_TBB=ON") else() set(EMBREE_TASKING_SYSTEM "INTERNAL") endif() if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") # "Using Embree as static library is not supported with AppleClang >= 9.0 # when multiple ISAs are selected." # The port follows linkage and selects a single ISA for static linkage. # Per-port customization may override VCPKG_LIBRARY_LINKAGE or ISA flags. list(APPEND FEATURE_OPTIONS "-DEMBREE_MAX_ISA=NONE") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND FEATURE_OPTIONS -DEMBREE_ISA_SSE2=OFF -DEMBREE_ISA_SSE42=OFF -DCOMPILER_SUPPORTS_AVX=OFF -DEMBREE_ISA_AVX2=ON -DCOMPILER_SUPPORTS_AVX512=OFF ) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # in-source CONFIGURE_FILE OPTIONS ${FEATURE_OPTIONS} -DEMBREE_INSTALL_DEPENDENCIES=OFF -DEMBREE_ISPC_SUPPORT=OFF -DEMBREE_STATIC_RUNTIME=${EMBREE_STATIC_RUNTIME} -DEMBREE_STATIC_LIB=${EMBREE_STATIC_LIB} -DEMBREE_TASKING_SYSTEM:STRING=${EMBREE_TASKING_SYSTEM} -DEMBREE_TUTORIALS=OFF MAYBE_UNUSED_VARIABLES EMBREE_STATIC_RUNTIME ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/embree-vars.csh" "${CURRENT_PACKAGES_DIR}/debug/embree-vars.sh" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/embree-vars.csh" "${CURRENT_PACKAGES_DIR}/embree-vars.sh" "${CURRENT_PACKAGES_DIR}/share/man" "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc/LICENSE.txt" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( COMMENT "The embree package contains third-party software which may be governed by separate license terms." FILE_LIST "${SOURCE_PATH}/LICENSE.txt" ) ================================================ FILE: ports/embree/usage ================================================ embree provides CMake targets: find_package(embree CONFIG REQUIRED) target_link_libraries(main PRIVATE embree) ================================================ FILE: ports/embree/vcpkg.json ================================================ { "name": "embree", "version": "4.4.0", "description": "High Performance Ray Tracing Kernels.", "homepage": "https://github.com/RenderKit/embree", "license": null, "supports": "linux | osx | (windows & !uwp & !arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "filter-function", "geometry-curve", "geometry-grid", "geometry-instance", "geometry-point", "geometry-quad", "geometry-subdivision", "geometry-triangle", "geometry-user", "ray-packets", "tasking-tbb" ], "features": { "backface-culling": { "description": "Enables backface culling." }, "compact-polys": { "description": "Enables double indexed poly layout." }, "filter-function": { "description": "Enables filter functions." }, "geometry-curve": { "description": "Enables support for curve geometries." }, "geometry-grid": { "description": "Enables support for grid geometries." }, "geometry-instance": { "description": "Enables support for instances." }, "geometry-point": { "description": "Enables support for point geometries." }, "geometry-quad": { "description": "Enables support for quad geometries." }, "geometry-subdivision": { "description": "Enables support for subdiv geometries." }, "geometry-triangle": { "description": "Enables support for triangle geometries." }, "geometry-user": { "description": "Enables support for user geometries." }, "ray-mask": { "description": "Enables ray mask support." }, "ray-packets": { "description": "Enabled support for ray packets." }, "tasking-tbb": { "description": "Use oneTBB as task system.", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/enchantum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ZXShady/enchantum REF ${VERSION} SHA512 7d44b63415c02c5ee02c4c3cf800e084cdb6dbf516a93f4cc37457b935fa5d563ffd29cca58db4ecee5afc007c3be638574d7fe9337b36354a0db9ecd4f24d2d HEAD_REF main ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/enchantum/vcpkg.json ================================================ { "name": "enchantum", "version": "0.3.0", "description": "Header-only C++20 fast compile time enum reflection library.", "homepage": "https://github.com/ZXShady/enchantum", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/enet/fix-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c6459b6..63aef98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,14 +89,25 @@ add_library(enet STATIC ${SOURCE_FILES} ) +target_include_directories(enet PUBLIC + $ + $ +) + if (MINGW) target_link_libraries(enet winmm ws2_32) endif() install(TARGETS enet + EXPORT unofficial-enet-config RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib/static + ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +INSTALL(EXPORT unofficial-enet-config + NAMESPACE unofficial::enet:: + DESTINATION share/unofficial-enet +) + install(DIRECTORY include/ DESTINATION include) ================================================ FILE: ports/enet/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO "lsalzman/enet" REF "v${VERSION}" HEAD_REF master SHA512 a0d2fa8c957704dd49e00a726284ac5ca034b50b00d2b20a94fa1bbfbb80841467834bfdc84aa0ed0d6aab894608fd6c86c3b94eee46343f0e6d9c22e391dbf9 PATCHES fix-export.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-enet CONFIG_PATH share/unofficial-enet) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/enet/vcpkg.json ================================================ { "name": "enet", "version": "1.3.18", "description": "Reliable UDP networking library", "homepage": "https://github.com/lsalzman/enet", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/enkits/fix_shared_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c12562..e15f863 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,6 +85,8 @@ if( ENKITS_INSTALL ) install( TARGETS enkiTS EXPORT enkiTSConfig + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES ${ENKITS_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/enkiTS) install( ================================================ FILE: ports/enkits/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dougbinks/enkiTS REF "03e6a2c0c97208ade44478d617d2002b0f95faf4" SHA512 2889a7b015319115f6acf74036f709b30786602f3b7205bdf401644172e2d92307f325719ccc02ad93a09557a9155e31db4d8e07f9f77e0c700d5a3365091ad3 HEAD_REF master PATCHES fix_shared_install.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENKITS_BUILD_C_INTERFACE=ON -DENKITS_BUILD_EXAMPLES=OFF -DENKITS_BUILD_SHARED=${BUILD_SHARED} -DENKITS_INSTALL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME enkiTS CONFIG_PATH lib/cmake/enkiTS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/enkits/usage ================================================ enkits provides CMake targets: find_package(enkiTS CONFIG REQUIRED) target_link_libraries(main PRIVATE enkiTS::enkiTS) ================================================ FILE: ports/enkits/vcpkg.json ================================================ { "name": "enkits", "version": "1.11", "port-version": 3, "description": "A permissively licensed C and C++ Task Scheduler for creating parallel programs.", "homepage": "https://github.com/dougbinks/enkiTS", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ensmallen/dependencies.patch ================================================ diff --git a/CMake/ensmallen-config.cmake.in b/CMake/ensmallen-config.cmake.in index 3a9a93c..7bed7fd 100644 --- a/CMake/ensmallen-config.cmake.in +++ b/CMake/ensmallen-config.cmake.in @@ -1,4 +1,9 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if(@USE_OPENMP@) +find_dependency(OpenMP) +endif() +find_dependency(Armadillo CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake) check_required_components(ensmallen) diff --git a/CMakeLists.txt b/CMakeLists.txt index 551c538..0b20af1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,21 +47,13 @@ endif() # Find OpenMP and link it. if(USE_OPENMP) - if(NOT TARGET OpenMP::OpenMP_CXX) - find_package(Threads REQUIRED) - add_library(OpenMP::OpenMP_CXX IMPORTED INTERFACE) - set_property(TARGET OpenMP::OpenMP_CXX - PROPERTY INTERFACE_COMPILE_OPTIONS ${OpenMP_CXX_FLAGS}) - # Only works if the same flag is passed to the linker; use CMake 3.9+ otherwise (Intel, AppleClang). - set_property(TARGET OpenMP::OpenMP_CXX - PROPERTY INTERFACE_LINK_LIBRARIES ${OpenMP_CXX_FLAGS} Threads::Threads) - endif() + find_package(OpenMP REQUIRED) target_link_libraries(ensmallen INTERFACE OpenMP::OpenMP_CXX) endif() # Find Armadillo and link it. -find_package(Armadillo 9.800.0 REQUIRED) -target_link_libraries(ensmallen INTERFACE Armadillo::Armadillo) +find_package(Armadillo CONFIG REQUIRED) +target_link_libraries(ensmallen INTERFACE armadillo) # Set helper variables for creating the version, config and target files. include(CMakePackageConfigHelpers) ================================================ FILE: ports/ensmallen/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mlpack/ensmallen REF "${VERSION}" SHA512 1e86fc28a58694057262a8d036af8080be084c889f7b659b77a08fd4e0957d0f03d8866e47b682a1868b5ac2198cca85c591a334b284096659a123196de95a66 HEAD_REF master PATCHES dependencies.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ensmallen) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT.txt") ================================================ FILE: ports/ensmallen/vcpkg.json ================================================ { "name": "ensmallen", "version-semver": "2.21.1", "port-version": 1, "description": "A header-only C++ library for mathematical optimization", "homepage": "http://ensmallen.org/", "license": "BSD-3-Clause", "dependencies": [ "armadillo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "openmp", "platform": "!osx" } ], "features": { "openmp": { "description": "Enable OpenMP support" } } } ================================================ FILE: ports/entityx/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alecthomas/entityx REF 1.3.0 SHA512 724a3f421f802e60a1106ff8a69435c9a9da14e35c3e88565bbc17bff3a17f2d9771818aac83320cc4f14de0ec770a66f1eb7cbf4318f43abd516c63e077c07d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_CXX_STANDARD=11 # std::iterator is deprecated in C++17 -DENTITYX_BUILD_TESTING=false -DENTITYX_BUILD_SHARED=0 ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/entityx" RENAME copyright) ================================================ FILE: ports/entityx/vcpkg.json ================================================ { "name": "entityx", "version": "1.3.0", "port-version": 6, "description": "EntityX - A fast, type-safe C++ Entity-Component system.", "homepage": "https://github.com/alecthomas/entityx", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/entt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skypjack/entt REF "v${VERSION}" SHA512 69350434d62942fff78128408759c1763cdcc5ddf8c1d2d7ffdc2ac3813786e04535f8e9e58a5c727f37b9c88cf2d444aaca1a3b2559d234cca89a79bd9ac1bf HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENTT_BUILD_TESTING=OFF -DENTT_BUILD_TESTBED=OFF -DENTT_BUILD_DOCS=OFF -DENTT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/EnTT/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Install natvis files file(INSTALL "${SOURCE_PATH}/src/entt/natvis" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/natvis") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/entt/usage ================================================ entt provides CMake targets: find_package(EnTT CONFIG REQUIRED) target_link_libraries(main PRIVATE EnTT::EnTT) ================================================ FILE: ports/entt/vcpkg.json ================================================ { "name": "entt", "version": "3.16.0", "description": "Gaming meets modern C++ - a fast and reliable entity-component system and much more", "homepage": "https://github.com/skypjack/entt", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/epoll-shim/000-install-pkg-config-into-standard-location.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 744c9e8..02ef4aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,7 +62,7 @@ add_library(${_namespace}::epoll-shim-interpose ALIAS epoll-shim-interpose)\n") configure_file("${PROJECT_SOURCE_DIR}/${_pc_filename}.pc.cmakein" "${PROJECT_BINARY_DIR}/${_pc_filename}.pc" @ONLY) install(FILES "${PROJECT_BINARY_DIR}/${_pc_filename}.pc" - DESTINATION "${CMAKE_INSTALL_PKGCONFIGDIR}") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") endforeach() set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/libepoll-shim") ================================================ FILE: ports/epoll-shim/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jiixyj/epoll-shim REF v${VERSION} SHA512 03f2cf64854dcb7c065284bbe765e6b52a9504969a733b450746226334fb9852e210b3db0d8ae40733abf62d75d35cc539140e9b5fb3507de9e47ebbc15f2ae3 HEAD_REF master PATCHES 000-install-pkg-config-into-standard-location.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/epoll-shim) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/epoll-shim/vcpkg.json ================================================ { "name": "epoll-shim", "version": "0.0.20240608", "description": "Small epoll implementation using kqueue", "homepage": "https://github.com/jiixyj/epoll-shim", "license": "MIT", "supports": "osx | freebsd | openbsd", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/eraser/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/eraser REF "v${VERSION}" SHA512 5c43cb2af7a42f4eb6c1b5f76ce36315f093cd8d2e3aa7873da7d1a1d188df3515e0e63b9ba8fd7418d9b62c3bc80fa1ec7548535fb69e3f36873eede682af4b HEAD_REF master PATCHES remove-cpm.patch # Note: Removed also the ALIAS library as packageProject creates it ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.13.0" SHA512 3cf0523bddc213f206ed0ca57803550cb7db9e293392d3741138be47f49d9027ef517e1656235a349a62b492d35c3fc677714dc00afe59e2d36144a9689cfa8f HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/eraser/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e7e973..dc09990 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,6 @@ option(eraser_tests "Build tests" OFF) # -------------------------------------------------------------------------------------------------------- add_library(${PROJECT_NAME} INTERFACE) -add_library(cr::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 20 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON) @@ -39,13 +38,7 @@ endif() # Install Targets # -------------------------------------------------------------------------------------------------------- -include("cmake/cpm.cmake") - -CPMFindPackage( - NAME PackageProject - VERSION 1.13.0 - GIT_REPOSITORY "https://github.com/TheLartians/PackageProject.cmake" -) +add_subdirectory(cmake/packageproject.cmake) packageProject( NAMESPACE cr ================================================ FILE: ports/eraser/vcpkg.json ================================================ { "name": "eraser", "version": "2.3.0", "description": "A C++20 type-erasure library that supports user defined interfaces", "homepage": "https://github.com/Curve/eraser", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ereignis/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/ereignis REF "v${VERSION}" SHA512 73b9fbf01caee6f0cc49de771ee5fc5e1da208acd2d3d40647c3e9c19df121b05c3403393539fa4bb510cb8e58769fe9afa5b036ce04c564266fc49b8ddea8e5 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ereignis/vcpkg.json ================================================ { "name": "ereignis", "version": "4.3", "description": "A thread-safe C++17 Event Library", "homepage": "https://github.com/Curve/ereignis", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/esaxx/portfile.cmake ================================================ #header-only library 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) ================================================ FILE: ports/esaxx/vcpkg.json ================================================ { "name": "esaxx", "version-string": "ca7cb332011ec37", "port-version": 1, "description": "This library provides the implementation of enhanced suffix array." } ================================================ FILE: ports/ethindp-prism/portfile.cmake ================================================ if(EMSCRIPTEN) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ethindp/prism REF v0.7.1 SHA512 7a412110cd0d5da23eafc78a979cfd7fdcfddef6d8ecc6a370afbf93914d41bf8b7a87cd8e0d44cd84b6b2c1d9de0621c0214892cef057c8f6c3c3424ecfb7b5 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES orca PRISM_VCPKG_WANTS_ORCA_BACKEND speech-dispatcher PRISM_VCPKG_WANTS_SPEECH_DISPATCHER_BACKEND ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPRISM_ENABLE_TESTS=OFF -DPRISM_ENABLE_DEMOS=OFF -DPRISM_ENABLE_LINTING=OFF -DPRISM_ENABLE_VCPKG_SPECIFIC_OPTIONS=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_cmake_config_fixup(PACKAGE_NAME prism CONFIG_PATH share/prism) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ethindp-prism/vcpkg.json ================================================ { "name": "ethindp-prism", "version": "0.7.1", "description": "The Platform-agnostic Reader Interface for Speech and Messages", "license": "MPL-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "orca": { "description": "Enable the Orca backend", "supports": "(linux | freebsd | openbsd) & !android & !emscripten", "dependencies": [ "glib" ] }, "speech-dispatcher": { "description": "Enable the speech-dispatcher backend (requires libspeechd to be installed)", "supports": "(linux | freebsd | openbsd) & !android & !emscripten", "dependencies": [ { "name": "pkgconf", "host": true } ] } } } ================================================ FILE: ports/etl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ETLCPP/etl REF "${VERSION}" SHA512 54fa5b60f6f6e4fe3e9a9bda16752b95c77040f4fb624671a395030da4777cbde84b9d544e503c9afb0d8798ae5d4790852a83155a8aed435fd1773efc574f04 HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/etl/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/etl/.vscode") # remove templates used for generating headers file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/etl/generators") file(GLOB_RECURSE PNG_FILES "${CURRENT_PACKAGES_DIR}/include/etl/*.png") file(REMOVE ${PNG_FILES}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/etl/vcpkg.json ================================================ { "name": "etl", "version": "20.46.2", "description": "A C++ template library for embedded applications", "homepage": "https://www.etlcpp.com", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/eve/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} string(REGEX REPLACE "^(v[0-9]+)[.]([0-9])[.]([0-9]+)\$" "\\1.0\\2.\\3" git_ref "v${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jfalcou/eve REF "${git_ref}" SHA512 20b55996465fa5016d43cee95541510b6470b2358635b0e269965d3fb43731e83b92bc2df0502fcdfadd31de47f877f22b1c6ae84638f1f3db92c70315cc1b29 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/eve-${VERSION}") if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/share/eve/eve-config.cmake") message(FATAL_ERROR "CMake config is missing") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/share/doc" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/eve/usage ================================================ eve provides CMake targets: find_package(eve CONFIG REQUIRED) target_link_libraries(main PRIVATE eve::eve) Using eve requires a C++20 compliant compiler. GCC-11 and clang-12 are known to work. ================================================ FILE: ports/eve/vcpkg.json ================================================ { "name": "eve", "version": "2023.2.15", "description": "EVE - the Expressive Vector Engine : C++20 SIMD Programming Library", "homepage": "https://github.com/jfalcou/eve", "documentation": "https://jfalcou.github.io/eve/", "license": "BSL-1.0", "supports": "!windows, mingw", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/eventpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wqking/eventpp REF "v${VERSION}" SHA512 b39994e9bd581d6bb61b634c434c46075e41ec2217e1174578fefd206a927bd725744ae0724d319cde8f2b2a43d2e030a04c271197500d94c6b1afd849f779fd HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/eventpp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/eventpp/license" "${CURRENT_PACKAGES_DIR}/share/eventpp/readme.md") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license") ================================================ FILE: ports/eventpp/vcpkg.json ================================================ { "name": "eventpp", "version-semver": "0.1.3", "port-version": 1, "description": "C++ library for event dispatcher and callback list", "homepage": "https://github.com/wqking/eventpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/evpp/Add-static-shared-handling.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 17b0a1c..7a054b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,30 @@ set(CMAKE_CXX_STANDARD 14) project (safe-evpp C CXX) +macro(install_shared_or_static_targets) + get_directory_property(shared_targets BUILDSYSTEM_TARGETS) + list(FILTER shared_targets EXCLUDE REGEX "_static") + get_directory_property(static_targets BUILDSYSTEM_TARGETS) + list(FILTER static_targets INCLUDE REGEX "_static") + if(SHARED) + set_target_properties(${static_targets} PROPERTIES EXCLUDE_FROM_ALL 1) + install ( + TARGETS ${shared_targets} + EXPORT evpp-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + else() + set_target_properties(${shared_targets} PROPERTIES EXCLUDE_FROM_ALL 1) + install ( + TARGETS ${static_targets} + EXPORT evpp-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + endif() +endmacro() + if (UNIX) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") diff --git a/apps/evmc/CMakeLists.txt b/apps/evmc/CMakeLists.txt index 888c672..e1ee45e 100644 --- a/apps/evmc/CMakeLists.txt +++ b/apps/evmc/CMakeLists.txt @@ -20,18 +20,9 @@ if (UNIX) VERSION "${PACKAGE_VERSION}" SOVERSION "${PACKAGE_SOVERSION}" ) - - install ( - TARGETS evmc - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) endif (UNIX) -install ( - TARGETS evmc_static - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) -install (FILES ${evmc_PUBLIC_HEADERS} DESTINATION "include/evmc") +install_shared_or_static_targets() if (NOT EVPP_VCPKG_BUILD) diff --git a/apps/evnsq/CMakeLists.txt b/apps/evnsq/CMakeLists.txt index a4d4113..aa3b800 100644 --- a/apps/evnsq/CMakeLists.txt +++ b/apps/evnsq/CMakeLists.txt @@ -16,18 +16,9 @@ if (UNIX) VERSION "${PACKAGE_VERSION}" SOVERSION "${PACKAGE_SOVERSION}" ) - - install ( - TARGETS evnsq - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) endif (UNIX) -install ( - TARGETS evnsq_static - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) -install (FILES ${evnsq_PUBLIC_HEADERS} DESTINATION "include/evnsq") +install_shared_or_static_targets() if (NOT EVPP_VCPKG_BUILD) add_subdirectory(evnsqtail) diff --git a/evpp/CMakeLists.txt b/evpp/CMakeLists.txt index 73ee071..bb97c38 100644 --- a/evpp/CMakeLists.txt +++ b/evpp/CMakeLists.txt @@ -50,24 +50,10 @@ if (UNIX) VERSION "${PACKAGE_VERSION}" SOVERSION "${PACKAGE_SOVERSION}" ) - - install ( - TARGETS evpp evpp_static evpp_lite_static evpp_boost evpp_boost_static evpp_concurrentqueue evpp_concurrentqueue_static - EXPORT ${PACKAGE_NAME} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - -else (UNIX) - install ( - TARGETS evpp_static evpp_lite_static - EXPORT ${PACKAGE_NAME} - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) - endif (UNIX) +install_shared_or_static_targets() + install (FILES ${evpp_PUBLIC_HEADERS} DESTINATION "include/evpp") install (FILES ${evpp_HTTP_PUBLIC_HEADERS} DESTINATION "include/evpp/http") install (FILES ${evpp_HTTPC_PUBLIC_HEADERS} DESTINATION "include/evpp/httpc") ================================================ FILE: ports/evpp/Export-unofficial-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a054b3..fa6da0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -107,3 +107,22 @@ include (packages) include (CPack) include (CTest) + +install(EXPORT evpp-targets + FILE unofficial-evpp-targets.cmake + NAMESPACE unofficial::evpp:: + DESTINATION share/unofficial-evpp +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-evpp-config.cmake" [[ +include(CMakeFindDependencyMacro) +find_dependency(glog CONFIG) +find_dependency(Libevent CONFIG) +if(UNIX) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_dependency(Threads) + find_dependency(unofficial-concurrentqueue) +endif() +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-evpp-targets.cmake") +]]) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-evpp-config.cmake DESTINATION "share/unofficial-evpp") ================================================ FILE: ports/evpp/basic-fixes.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7872fc8..e1e7c02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ -cmake_minimum_required (VERSION 2.8) +cmake_minimum_required (VERSION 3.10) +set(CMAKE_CXX_STANDARD 14) project (safe-evpp C CXX) @@ -24,22 +25,18 @@ if (UNIX) -fms-extensions -Wfloat-equal -Wextra - -std=c++11 ) include_directories (${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/3rdparty) else (UNIX) set (CXX_FLAGS -DWIN32 -D_WIN32 -EHsc) - set(VcpkgRoot ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}) - include_directories(${VcpkgRoot}/include + include_directories( ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/3rdparty/wininclude) # On windows, Debug mode - link_directories(${VcpkgRoot}/debug/lib ${VcpkgRoot}/debug/lib/manual-link) # On Windows, Release mode - # link_directories(${VcpkgRoot}/lib ${VcpkgRoot}/lib/manual-link) endif (UNIX) string (REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") diff --git a/apps/evmc/CMakeLists.txt b/apps/evmc/CMakeLists.txt index 9918919..888c672 100644 --- a/apps/evmc/CMakeLists.txt +++ b/apps/evmc/CMakeLists.txt @@ -6,11 +6,11 @@ file(GLOB evmc_SRCS *.cc file(GLOB evmc_PUBLIC_HEADERS *.h) add_library(evmc_static STATIC ${evmc_SRCS}) -target_link_libraries(evmc_static ${LIBRARIES}) +target_link_libraries(evmc_static PRIVATE ${LIBRARIES}) if (UNIX) add_library(evmc SHARED ${evmc_SRCS}) - target_link_libraries(evmc ${LIBRARIES}) + target_link_libraries(evmc PRIVATE ${LIBRARIES}) set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include (utils) diff --git a/apps/evnsq/CMakeLists.txt b/apps/evnsq/CMakeLists.txt index c510814..a4d4113 100644 --- a/apps/evnsq/CMakeLists.txt +++ b/apps/evnsq/CMakeLists.txt @@ -2,11 +2,11 @@ file(GLOB evnsq_SRCS *.cc *.h) file(GLOB evnsq_PUBLIC_HEADERS *.h) add_library(evnsq_static STATIC ${evnsq_SRCS}) -target_link_libraries(evnsq_static ${LIBRARIES}) +target_link_libraries(evnsq_static PRIVATE ${LIBRARIES}) if (UNIX) add_library(evnsq SHARED ${evnsq_SRCS}) - target_link_libraries(evnsq ${LIBRARIES}) + target_link_libraries(evnsq PRIVATE ${LIBRARIES}) set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include (utils) diff --git a/evpp/CMakeLists.txt b/evpp/CMakeLists.txt index b2e470d..1dfd91b 100644 --- a/evpp/CMakeLists.txt +++ b/evpp/CMakeLists.txt @@ -14,30 +14,30 @@ set (MACOSX_RPATH ${LIBRARY_OUTPUT_PATH}) include_directories(${PROJECT_SOURCE_DIR}) add_library(evpp_static STATIC ${evpp_SRCS}) -target_link_libraries(evpp_static ${DEPENDENT_LIBRARIES}) +target_link_libraries(evpp_static PRIVATE ${DEPENDENT_LIBRARIES}) add_library(evpp_lite_static STATIC ${evpp_lite_SRCS}) -target_link_libraries(evpp_lite_static ${DEPENDENT_LIBRARIES}) +target_link_libraries(evpp_lite_static PRIVATE ${DEPENDENT_LIBRARIES}) if (UNIX) add_library(evpp SHARED ${evpp_SRCS}) - target_link_libraries(evpp ${DEPENDENT_LIBRARIES}) + target_link_libraries(evpp PRIVATE ${DEPENDENT_LIBRARIES}) # boost lockfree queue add_library(evpp_boost SHARED ${evpp_SRCS}) add_library(evpp_boost_static STATIC ${evpp_SRCS}) target_compile_definitions(evpp_boost PRIVATE -DH_HAVE_BOOST=1) target_compile_definitions(evpp_boost_static PRIVATE -DH_HAVE_BOOST=1) - target_link_libraries(evpp_boost ${DEPENDENT_LIBRARIES}) - target_link_libraries(evpp_boost_static ${DEPENDENT_LIBRARIES}) + target_link_libraries(evpp_boost PRIVATE ${DEPENDENT_LIBRARIES}) + target_link_libraries(evpp_boost_static PRIVATE ${DEPENDENT_LIBRARIES}) # https://github.com/cameron314/concurrentqueue add_library(evpp_concurrentqueue SHARED ${evpp_SRCS}) add_library(evpp_concurrentqueue_static STATIC ${evpp_SRCS}) target_compile_definitions(evpp_concurrentqueue PRIVATE -DH_HAVE_CAMERON314_CONCURRENTQUEUE=1) target_compile_definitions(evpp_concurrentqueue_static PRIVATE -DH_HAVE_CAMERON314_CONCURRENTQUEUE=1) - target_link_libraries(evpp_concurrentqueue ${DEPENDENT_LIBRARIES}) - target_link_libraries(evpp_concurrentqueue_static ${DEPENDENT_LIBRARIES}) + target_link_libraries(evpp_concurrentqueue PRIVATE ${DEPENDENT_LIBRARIES}) + target_link_libraries(evpp_concurrentqueue_static PRIVATE ${DEPENDENT_LIBRARIES}) set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include (utils) ================================================ FILE: ports/evpp/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e1e7c02..17b0a1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,12 +41,16 @@ endif (UNIX) string (REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") +find_package(Libevent CONFIG REQUIRED) +find_package(glog CONFIG REQUIRED) +set(DEPENDENT_LIBRARIES libevent::core libevent::extra libevent::openssl glog::glog) if (UNIX) SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb -D_DEBUG -DGOOGLE_STRIP_LOG=0") SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -g -ggdb -DNDEBUG -DGOOGLE_STRIP_LOG=1") - SET(DEPENDENT_LIBRARIES event glog pthread) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + list(APPEND DEPENDENT_LIBRARIES Threads::Threads) else (UNIX) - SET(DEPENDENT_LIBRARIES event glog) endif (UNIX) if (CMAKE_BENCHMARK_TESTING) diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 469ed1c..fc6762a 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -2,12 +2,9 @@ include_directories(${PROJECT_SOURCE_DIR}/apps ${PROJECT_SOURCE_DIR}/3rdparty) if (UNIX) -set(LIBRARIES evpp_concurrentqueue event glog pthread) -link_directories("/home/s/safe/lib" ${PROJECT_BUILD_DIR}/lib) + set(LIBRARIES $,evpp_concurrentqueue,evpp_concurrentqueue_static> glog::glog Threads::Threads) else(UNIX) -set(LIBRARIES evpp_static event glog) -link_directories(${PROJECT_SOURCE_DIR}/vsprojects/bin/${CMAKE_BUILD_TYPE}/ - ${LIBRARY_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/) + set(LIBRARIES evpp_static glog::glog) endif(UNIX) add_subdirectory(evnsq) diff --git a/evpp/CMakeLists.txt b/evpp/CMakeLists.txt index 1dfd91b..73ee071 100644 --- a/evpp/CMakeLists.txt +++ b/evpp/CMakeLists.txt @@ -38,6 +38,9 @@ if (UNIX) target_compile_definitions(evpp_concurrentqueue_static PRIVATE -DH_HAVE_CAMERON314_CONCURRENTQUEUE=1) target_link_libraries(evpp_concurrentqueue PRIVATE ${DEPENDENT_LIBRARIES}) target_link_libraries(evpp_concurrentqueue_static PRIVATE ${DEPENDENT_LIBRARIES}) + find_package(unofficial-concurrentqueue REQUIRED) + target_link_libraries(evpp_concurrentqueue PRIVATE unofficial::concurrentqueue::concurrentqueue) + target_link_libraries(evpp_concurrentqueue_static PRIVATE unofficial::concurrentqueue::concurrentqueue) set (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include (utils) ================================================ FILE: ports/evpp/fix-osx-build.patch ================================================ diff --git a/evpp/server_status.h b/evpp/server_status.h index 3a83725..f28f833 100644 --- a/evpp/server_status.h +++ b/evpp/server_status.h @@ -25,7 +25,7 @@ public: }; std::string StatusToString() const { - H_CASE_STRING_BIGIN(status_); + H_CASE_STRING_BIGIN(+status_); H_CASE_STRING(kNull); H_CASE_STRING(kInitialized); H_CASE_STRING(kRunning); diff --git a/evpp/sockets.cc b/evpp/sockets.cc index 333c05c..c547d88 100644 --- a/evpp/sockets.cc +++ b/evpp/sockets.cc @@ -22,6 +22,14 @@ std::string strerror(int e) { } return empty_string; +#elif defined(__APPLE__) + char buf[2048] = {}; + strerror_r(e, buf, sizeof(buf) - 1); + const char* s = buf; + if (s) { + return std::string(s); + } + return std::string(); #else char buf[2048] = {}; const char* s = strerror_r(e, buf, sizeof(buf) - 1); diff --git a/evpp/tcp_conn.cc b/evpp/tcp_conn.cc index b7678d0..527b2b9 100644 --- a/evpp/tcp_conn.cc +++ b/evpp/tcp_conn.cc @@ -309,7 +309,7 @@ void TCPConn::SetTCPNoDelay(bool on) { } std::string TCPConn::StatusToString() const { - H_CASE_STRING_BIGIN(status_); + H_CASE_STRING_BIGIN(+status_); H_CASE_STRING(kDisconnected); H_CASE_STRING(kConnecting); H_CASE_STRING(kConnected); ================================================ FILE: ports/evpp/fix-rapidjson-1-1.patch ================================================ diff --git a/3rdparty/libhashkit/crc32.c b/3rdparty/libhashkit/crc32.c index 6db0478..ff34194 100644 --- a/3rdparty/libhashkit/crc32.c +++ b/3rdparty/libhashkit/crc32.c @@ -73,7 +73,7 @@ static const uint32_t crc32tab[256] = { 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, }; -uint32_t hashkit_crc32(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_crc32(const char *key, size_t key_length, void * context) { uint64_t x; uint32_t crc= UINT32_MAX; diff --git a/3rdparty/libhashkit/fnv.c b/3rdparty/libhashkit/fnv.c index ee3754d..d79fe39 100644 --- a/3rdparty/libhashkit/fnv.c +++ b/3rdparty/libhashkit/fnv.c @@ -14,7 +14,7 @@ static uint64_t FNV_64_PRIME= UINT64_C(0x100000001b3); static uint32_t FNV_32_INIT= 2166136261UL; static uint32_t FNV_32_PRIME= 16777619; -uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void * context) { /* Thanks to pierre@demartines.com for the pointer */ uint64_t hash= FNV_64_INIT; @@ -28,7 +28,7 @@ uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void *context __att return (uint32_t)hash; } -uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void * context) { uint32_t hash= (uint32_t) FNV_64_INIT; @@ -42,7 +42,7 @@ uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void *context __at return hash; } -uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void * context) { uint32_t hash= FNV_32_INIT; @@ -56,7 +56,7 @@ uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void *context __att return hash; } -uint32_t hashkit_fnv1a_32(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_fnv1a_32(const char *key, size_t key_length, void * context) { uint32_t hash= FNV_32_INIT; diff --git a/3rdparty/libhashkit/hsieh.c b/3rdparty/libhashkit/hsieh.c index ba46ed2..c3e9a38 100644 --- a/3rdparty/libhashkit/hsieh.c +++ b/3rdparty/libhashkit/hsieh.c @@ -17,7 +17,7 @@ +(uint32_t)(((const uint8_t *)(d))[0]) ) #endif -uint32_t hashkit_hsieh(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_hsieh(const char *key, size_t key_length, void * context) { uint32_t hash = 0, tmp; int rem; diff --git a/3rdparty/libhashkit/jenkins.c b/3rdparty/libhashkit/jenkins.c index b684d7a..2b59714 100644 --- a/3rdparty/libhashkit/jenkins.c +++ b/3rdparty/libhashkit/jenkins.c @@ -56,7 +56,7 @@ use a bitmask. For example, if you need only 10 bits, do In which case, the hash table should have hashsize(10) elements. */ -uint32_t hashkit_jenkins(const char *key, size_t length, void *context __attribute__((unused))) +uint32_t hashkit_jenkins(const char *key, size_t length, void * context) { uint32_t a,b,c; /* internal state */ union { const void *ptr; size_t i; } u; /* needed for Mac Powerbook G4 */ diff --git a/3rdparty/libhashkit/md5.c b/3rdparty/libhashkit/md5.c index 7371c6d..0e3181b 100644 --- a/3rdparty/libhashkit/md5.c +++ b/3rdparty/libhashkit/md5.c @@ -352,7 +352,7 @@ unsigned int len) (((UINT4)input[j+2]) << 16) | (((UINT4)input[j+3]) << 24); } -uint32_t hashkit_md5(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_md5(const char *key, size_t key_length, void * context) { unsigned char results[16]; diff --git a/3rdparty/libhashkit/murmur.c b/3rdparty/libhashkit/murmur.c index a18ac40..9e55eec 100644 --- a/3rdparty/libhashkit/murmur.c +++ b/3rdparty/libhashkit/murmur.c @@ -17,7 +17,7 @@ #include "common.h" -uint32_t hashkit_murmur(const char *key, size_t length, void *context __attribute__((unused))) +uint32_t hashkit_murmur(const char *key, size_t length, void * context) { /* 'm' and 'r' are mixing constants generated offline. They're not diff --git a/3rdparty/libhashkit/one_at_a_time.c b/3rdparty/libhashkit/one_at_a_time.c index 579d044..539861c 100644 --- a/3rdparty/libhashkit/one_at_a_time.c +++ b/3rdparty/libhashkit/one_at_a_time.c @@ -13,7 +13,7 @@ http://en.wikipedia.org/wiki/Jenkins_hash_function #include "common.h" -uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void *context __attribute__((unused))) +uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void * context) { const char *ptr= key; uint32_t value= 0; diff --git a/3rdparty/libhashkit/strerror.c b/3rdparty/libhashkit/strerror.c index 270fa21..7446782 100644 --- a/3rdparty/libhashkit/strerror.c +++ b/3rdparty/libhashkit/strerror.c @@ -8,7 +8,7 @@ #include "common.h" -const char *hashkit_strerror(hashkit_st *ptr __attribute__((unused)), hashkit_return_t rc) +const char *hashkit_strerror(hashkit_st *ptr, hashkit_return_t rc) { switch (rc) { diff --git a/apps/evnsq/option.cc b/apps/evnsq/option.cc index e2128f5..0248ace 100644 --- a/apps/evnsq/option.cc +++ b/apps/evnsq/option.cc @@ -21,14 +21,14 @@ std::string Option::ToJSON() const { doc.AddMember("write_timeout", rapidjson::Value(int64_t(write_timeout.Milliseconds())), doc.GetAllocator()); doc.AddMember("msg_timeout", rapidjson::Value(int64_t(msg_timeout.Milliseconds())), doc.GetAllocator()); - doc.AddMember("client_id", rapidjson::Value(client_id, doc.GetAllocator()), doc.GetAllocator()); - doc.AddMember("hostname", rapidjson::Value(hostname, doc.GetAllocator()), doc.GetAllocator()); - doc.AddMember("user_agent", rapidjson::Value(user_agent, doc.GetAllocator()), doc.GetAllocator()); + doc.AddMember("client_id", rapidjson::Value(client_id.data(), client_id.size(), doc.GetAllocator()), doc.GetAllocator()); + doc.AddMember("hostname", rapidjson::Value(hostname.data(), hostname.size(), doc.GetAllocator()), doc.GetAllocator()); + doc.AddMember("user_agent", rapidjson::Value(user_agent.data(), user_agent.size(), doc.GetAllocator()), doc.GetAllocator()); doc.AddMember("heartbeat_interval", rapidjson::Value(int64_t(heartbeat_interval.Milliseconds())), doc.GetAllocator()); doc.AddMember("deflate", rapidjson::Value(false), doc.GetAllocator()); - doc.AddMember("long_id", rapidjson::Value(hostname, doc.GetAllocator()), doc.GetAllocator()); + doc.AddMember("long_id", rapidjson::Value(hostname.data(), hostname.size(), doc.GetAllocator()), doc.GetAllocator()); doc.AddMember("output_buffer_size", rapidjson::Value(int64_t(16384)), doc.GetAllocator()); doc.AddMember("output_buffer_timeout", rapidjson::Value(int64_t(250)), doc.GetAllocator()); doc.AddMember("feature_negotiation", rapidjson::Value(feature_negotiation), doc.GetAllocator()); @@ -40,3 +40,4 @@ std::string Option::ToJSON() const { return std::string(buffer.GetString(), buffer.GetSize()); } } + ================================================ FILE: ports/evpp/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Qihoo360/evpp REF v${VERSION} SHA512 ddcef8d2af6b3c46473d755c0f0994d63d56240ea85d6b44ceb6b77724c3c56bbf1156f7188e270fb5f9f36f25bfc2f96669d7249a34c921922671e3fe267e88 HEAD_REF master PATCHES basic-fixes.diff dependencies.diff fix-rapidjson-1-1.patch fix-osx-build.patch Add-static-shared-handling.patch Export-unofficial-target.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/concurrentqueue" "${SOURCE_PATH}/3rdparty/gtest" "${SOURCE_PATH}/3rdparty/rapidjson" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEVPP_VCPKG_BUILD=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-evpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" COMMENT [[ The evpp source code is offered under the BSD-3-Clause license. However, evpp includes 3rd-party source code with other licenses and additional attribution requirements. ]]) ================================================ FILE: ports/evpp/vcpkg.json ================================================ { "name": "evpp", "version": "0.7.0", "port-version": 9, "description": "A modern C++ network library based on libevent for developing high performance network services in TCP/UDP/HTTP protocols.", "homepage": "https://github.com/Qihoo360/evpp", "license": null, "dependencies": [ { "name": "boost-lockfree", "platform": "!windows" }, { "name": "concurrentqueue", "platform": "!windows" }, "glog", { "name": "libevent", "features": [ "openssl" ] }, "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/exiv2/dependencies.diff ================================================ diff --git a/cmake/exiv2Config.cmake.in b/cmake/exiv2Config.cmake.in index 09b46df..85badd2 100644 --- a/cmake/exiv2Config.cmake.in +++ b/cmake/exiv2Config.cmake.in @@ -9,7 +9,7 @@ if(NOT @BUILD_SHARED_LIBS@) # if(NOT BUILD_SHARED_LIBS) endif() if(@EXIV2_ENABLE_BMFF@ AND @EXIV2_ENABLE_BROTLI@) # if(EXIV2_ENABLE_BMFF AND EXIV2_ENABLE_BROTLI) - find_package(Brotli QUIET) + find_dependency(Brotli NAMES unofficial-brotli) if (NOT Brotli_FOUND) message(FATAL_ERROR "Static builds of exiv2 require Brotli. " @@ -25,7 +25,7 @@ if(NOT @BUILD_SHARED_LIBS@) # if(NOT BUILD_SHARED_LIBS) endif() if(@EXIV2_ENABLE_XMP@) # if(EXIV2_ENABLE_XMP) - find_dependency(EXPAT REQUIRED) + find_dependency(EXPAT NAMES expat) elseif(@EXIV2_ENABLE_EXTERNAL_XMP@) # elseif(EXIV2_ENABLE_EXTERNAL_XMP) find_dependency(XmpSdk REQUIRED) endif() @@ -39,7 +39,7 @@ if(NOT @BUILD_SHARED_LIBS@) # if(NOT BUILD_SHARED_LIBS) endif() if(@EXIV2_ENABLE_INIH@) # if(EXIV2_ENABLE_INIH) - find_package(inih QUIET) + find_dependency(inih NAMES unofficial-inih) if (NOT inih_FOUND) message(FATAL_ERROR "Static builds of exiv2 require inih. " diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake index b0897c3..e559666 100644 --- a/cmake/findDependencies.cmake +++ b/cmake/findDependencies.cmake @@ -49,7 +49,8 @@ if( EXIV2_ENABLE_PNG ) endif( ) if( EXIV2_ENABLE_BMFF AND EXIV2_ENABLE_BROTLI ) - find_package( Brotli REQUIRED ) + find_package(BROTLI NAMES unofficial-brotli REQUIRED) + set(Brotli_LIBRARIES unofficial::brotli::brotlidec) endif( ) if( EXIV2_ENABLE_WEBREADY ) @@ -62,7 +63,9 @@ if (EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP) message(FATAL_ERROR "EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP are mutually exclusive. You can only choose one of them") else() if (EXIV2_ENABLE_XMP) - find_package(EXPAT REQUIRED) + find_package(EXPAT NAMES expat REQUIRED) + add_library(EXPAT::EXPAT ALIAS expat::expat) + set(EXPAT_LIBRARIES expat::expat) elseif (EXIV2_ENABLE_EXTERNAL_XMP) find_package(XmpSdk REQUIRED) endif () @@ -79,7 +82,9 @@ if( ICONV_FOUND ) endif() if( EXIV2_ENABLE_INIH ) - find_package(inih) + find_package(unofficial-inih CONFIG REQUIRED) + add_library(inih::libinih ALIAS unofficial::inih::libinih) + add_library(inih::inireader ALIAS unofficial::inih::inireader) message ( "-- inih_INCLUDE_DIRS : " ${inih_INCLUDE_DIRS} ) message ( "-- inih_LIBRARIES : " ${inih_LIBRARIES} ) message ( "-- inih_inireader_INCLUDE_DIRS : " ${inih_inireader_INCLUDE_DIRS} ) diff --git a/xmpsdk/CMakeLists.txt b/xmpsdk/CMakeLists.txt index 87c59c0..613c49b 100644 --- a/xmpsdk/CMakeLists.txt +++ b/xmpsdk/CMakeLists.txt @@ -32,6 +32,8 @@ target_include_directories(exiv2-xmp SYSTEM ${EXPAT_INCLUDE_DIRS} ) +target_link_libraries(exiv2-xmp PRIVATE expat::expat) + # Prevent a denial-service-attack related to XML entity expansion # ("billion laughs attack"). # See https://bugzilla.redhat.com/show_bug.cgi?id=888769 ================================================ FILE: ports/exiv2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 REF "v${VERSION}" SHA512 e322438b565fe373e65baceeb4fd5173f538063b12b3d5a93d6e707da5020c818b1b9cc116f7bf0709635aa72b941dacb7a2bcfe6d946e2eaf7d9e55736dec5b HEAD_REF master PATCHES dependencies.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bmff EXIV2_ENABLE_BMFF nls EXIV2_ENABLE_NLS png EXIV2_ENABLE_PNG xmp EXIV2_ENABLE_XMP ) if(VCPKG_TARGET_IS_UWP) list(APPEND FEATURE_OPTIONS -DEXIV2_ENABLE_FILESYSTEM_ACCESS=OFF) endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" EXIV2_CRT_DYNAMIC) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DEXIV2_BUILD_EXIV2_COMMAND=OFF -DEXIV2_BUILD_UNIT_TESTS=OFF -DEXIV2_BUILD_SAMPLES=OFF -DEXIV2_BUILD_DOC=OFF -DEXIV2_ENABLE_EXTERNAL_XMP=OFF -DEXIV2_ENABLE_LENSDATA=ON -DEXIV2_ENABLE_DYNAMIC_RUNTIME=${EXIV2_CRT_DYNAMIC} -DEXIV2_ENABLE_WEBREADY=OFF -DEXIV2_ENABLE_CURL=OFF -DEXIV2_ENABLE_VIDEO=OFF -DEXIV2_TEAM_EXTRA_WARNINGS=OFF -DEXIV2_TEAM_WARNINGS_AS_ERRORS=OFF -DEXIV2_TEAM_PACKAGING=OFF -DEXIV2_TEAM_USE_SANITIZERS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/exiv2) if(VCPKG_TARGET_IS_OSX AND "nls" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/exiv2.pc" " -lintl" " -lintl -framework CoreFoundation") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/exiv2.pc" " -lintl" " -lintl -framework CoreFoundation") endif() endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/exiv2.pc" "Libs.private: " "Libs.private: -lpsapi ") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/exiv2.pc" "Libs.private: " "Libs.private: -lpsapi ") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/exiv2/vcpkg.json ================================================ { "name": "exiv2", "version": "0.28.8", "description": "Image metadata library and tools", "homepage": "https://exiv2.org", "license": "GPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "inih", "default-features": false, "features": [ "cpp" ] }, { "name": "libiconv", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bmff": { "description": "Support for BMFF files (e.g., CR3, HEIF, HEIC, AVIF, and JPEG XL)", "dependencies": [ "brotli" ] }, "nls": { "description": "Build native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] }, "png": { "description": "Build with png support", "dependencies": [ "zlib" ] }, "xmp": { "description": "Build with XMP metadata support", "dependencies": [ "expat" ] } } } ================================================ FILE: ports/expat/portfile.cmake ================================================ string(REPLACE "." "_" REF "R_${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libexpat/libexpat REF "${REF}" SHA512 0e157ce875ec993b4e495e0cd04979109c1f0f0dbfa707c113d9b4ed243c668fce20e5ef79ff8df2f30587cc182a0254794b2fb9bb53f938da608ace32903820 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" EXPAT_LINKAGE) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" EXPAT_CRT_LINKAGE) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/expat" OPTIONS -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_BUILD_TOOLS=OFF -DEXPAT_BUILD_DOCS=OFF -DEXPAT_SHARED_LIBS=${EXPAT_LINKAGE} -DEXPAT_MSVC_STATIC_CRT=${EXPAT_CRT_LINKAGE} -DEXPAT_BUILD_PKGCONFIG=ON MAYBE_UNUSED_VARIABLES EXPAT_MSVC_STATIC_CRT ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/expat-${VERSION}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/expat_external.h" "defined(_MSC_VER)" "defined(_WIN32)") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/expat_external.h" "! defined(XML_STATIC)" "0") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/expat/COPYING") ================================================ FILE: ports/expat/vcpkg-cmake-wrapper.cmake ================================================ include(SelectLibraryConfigurations) set(EXPATNAMES expat expatw libexpat libexpatw) set(DEBUGNAMES) foreach(_CRT "" MT MD) foreach(name IN LISTS EXPATNAMES) list(APPEND EXPATNAMES ${name}${_CRT}) list(APPEND DEBUGNAMES ${name}d${_CRT}) endforeach() endforeach() find_library(EXPAT_LIBRARY_DEBUG NAMES ${DEBUGNAMES} ${EXPATNAMES} NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH) find_library(EXPAT_LIBRARY_RELEASE NAMES ${EXPATNAMES} NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH) select_library_configurations(EXPAT) set(EXPAT_LIBRARY "${EXPAT_LIBRARIES}" CACHE STRING "" FORCE) _find_package(${ARGS}) if(EXPAT_FOUND AND TARGET EXPAT::EXPAT) if(EXPAT_LIBRARY_DEBUG) set_target_properties(EXPAT::EXPAT PROPERTIES IMPORTED_LOCATION_DEBUG "${EXPAT_LIBRARY_DEBUG}") endif() if(EXPAT_LIBRARY_RELEASE) set_target_properties(EXPAT::EXPAT PROPERTIES IMPORTED_LOCATION_RELEASE "${EXPAT_LIBRARY_RELEASE}") endif() endif() unset(EXPATNAMES) unset(DEBUGNAMES) ================================================ FILE: ports/expat/vcpkg.json ================================================ { "name": "expat", "version": "2.7.4", "description": "XML parser library written in C", "homepage": "https://github.com/libexpat/libexpat", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/expected-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/expected-lite REF "v${VERSION}" SHA512 a5c2c3b8a2ad22938a2efaaa53fc110c0323e9c9cd384af1aaf74dc9f2e9d73451d9de1bfe6eb64546fb70853c006344bcedb09ccebbef6ea52fb10d857b1a45 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEXPECTED_LITE_OPT_BUILD_TESTS=OFF -DEXPECTED_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/${PORT} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/expected-lite/vcpkg.json ================================================ { "name": "expected-lite", "version": "0.10.0", "description": "Expected objects in C++11 and later in a single-file header-only library", "homepage": "https://github.com/martinmoene/expected-lite", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/exprtk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArashPartow/exprtk REF ${VERSION} SHA512 1493b68929d3cb4e97c0180ef6f111ae4edbbee072ab78223976005b8402e4e7b56d94f013fbbc009f4db2652167fa3b4ba3c33d4029572ebbe61a36df9da9e4 HEAD_REF master ) file(COPY "${SOURCE_PATH}/exprtk.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/exprtk/vcpkg.json ================================================ { "name": "exprtk", "version": "0.0.3", "description": "Simple to use, easy to integrate and extremely efficient run-time C++ mathematical expression parser and evaluation engine.", "homepage": "https://www.partow.net/programming/exprtk/index.html", "license": "MIT" } ================================================ FILE: ports/ezc3d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pyomeca/ezc3d REF "Release_${VERSION}" SHA512 36c0a3ebd3d1a6f60d842dd459cb87f6fb2ff39b63f1b6b193f4a0359a83da3ad1435fc3e33bb9f8319cedd743e8587fcde3e854f915a9ee5c1851cd64bf786e HEAD_REF dev ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ezc3d") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ezc3d/vcpkg.json ================================================ { "name": "ezc3d", "version": "1.6.1", "description": "C3D reader/writer", "homepage": "https://github.com/pyomeca/ezc3d", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ezfoundation/ezFoundation_vcpkg.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a04be90..f853a0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.19) +if(CMAKE_BUILD_TYPE STREQUAL Release) + set(CMAKE_BUILD_TYPE "Shipping" CACHE STRING "Release overridden with Shipping" FORCE) +endif() + if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR "In-source builds are not supported. Please choose a different binary directory.") return() diff --git a/Code/Engine/CMakeLists.txt b/Code/Engine/CMakeLists.txt index fb4bef4..ccda93d 100644 --- a/Code/Engine/CMakeLists.txt +++ b/Code/Engine/CMakeLists.txt @@ -20,5 +20,3 @@ execute_process( OUTPUT_VARIABLE EZ_GIT_BRANCH_NAME OUTPUT_STRIP_TRAILING_WHITESPACE ) - -configure_file("${CMAKE_CURRENT_LIST_DIR}/ezBuildInfo.h.in" "${CMAKE_CURRENT_LIST_DIR}/ezBuildInfo.h" NEWLINE_STYLE LF) \ No newline at end of file diff --git a/Code/Engine/Foundation/Basics/Assert.cpp b/Code/Engine/Foundation/Basics/Assert.cpp index 7a55afc..778fadd 100644 --- a/Code/Engine/Foundation/Basics/Assert.cpp +++ b/Code/Engine/Foundation/Basics/Assert.cpp @@ -66,16 +66,6 @@ bool ezDefaultAssertHandler(const char* szSourceFile, ezUInt32 uiLine, const cha #if EZ_ENABLED(EZ_PLATFORM_WINDOWS) - // make sure the cursor is definitely shown, since the user must be able to click buttons -# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_UWP) - // Todo: Use modern Windows API to show cursor in current window. - // http://stackoverflow.com/questions/37956628/change-mouse-pointer-in-uwp-app -# else - ezInt32 iHideCursor = 1; - while (ShowCursor(true) < 0) - ++iHideCursor; -# endif - # if EZ_ENABLED(EZ_COMPILE_FOR_DEBUG) ezInt32 iRes = _CrtDbgReport(_CRT_ASSERT, szSourceFile, uiLine, nullptr, "'%s'\nFunction: %s\nMessage: %s", szExpression, szFunction, szAssertMsg); @@ -83,24 +73,9 @@ bool ezDefaultAssertHandler(const char* szSourceFile, ezUInt32 uiLine, const cha // currently we will ALWAYS trigger the breakpoint / crash (except for when the user presses 'ignore') if (iRes == 0) { - // when the user ignores the assert, restore the cursor show/hide state to the previous count -# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_UWP) - // Todo: Use modern Windows API to restore cursor. -# else - for (ezInt32 i = 0; i < iHideCursor; ++i) - ShowCursor(false); -# endif - return false; } -# else - - -# if EZ_ENABLED(EZ_PLATFORM_WINDOWS_DESKTOP) - MessageBoxA(nullptr, szTemp, "Assertion", MB_ICONERROR); -# endif - # endif #endif diff --git a/Code/Engine/Foundation/Logging/Implementation/Log.cpp b/Code/Engine/Foundation/Logging/Implementation/Log.cpp index 1a0d2ed..afcde54 100644 --- a/Code/Engine/Foundation/Logging/Implementation/Log.cpp +++ b/Code/Engine/Foundation/Logging/Implementation/Log.cpp @@ -260,12 +260,7 @@ void ezLog::OsMessageBox(const ezFormatString& text) title = ezApplication::GetApplicationInstance()->GetApplicationName(); } -#if EZ_ENABLED(EZ_PLATFORM_WINDOWS_DESKTOP) - MessageBoxW(nullptr, ezStringWChar(display).GetData(), ezStringWChar(title), MB_OK); -#else ezLog::Print(display); - EZ_ASSERT_NOT_IMPLEMENTED; -#endif } void ezLog::GenerateFormattedTimestamp(TimestampMode mode, ezStringBuilder& sTimestampOut) diff --git a/Code/Engine/Foundation/Math/Implementation/Math_inl.h b/Code/Engine/Foundation/Math/Implementation/Math_inl.h index 1a2962e..9b31f01 100644 --- a/Code/Engine/Foundation/Math/Implementation/Math_inl.h +++ b/Code/Engine/Foundation/Math/Implementation/Math_inl.h @@ -80,6 +80,7 @@ namespace ezMath #endif } +#if EZ_ENABLED(EZ_PLATFORM_64BIT) EZ_ALWAYS_INLINE ezUInt32 FirstBitLow(ezUInt64 value) { EZ_ASSERT_DEBUG(value != 0, "FirstBitLow is undefined for 0"); @@ -95,6 +96,7 @@ namespace ezMath return 0; #endif } +#endif EZ_ALWAYS_INLINE ezUInt32 FirstBitHigh(ezUInt32 value) { @@ -112,6 +114,7 @@ namespace ezMath #endif } +#if EZ_ENABLED(EZ_PLATFORM_64BIT) EZ_ALWAYS_INLINE ezUInt32 FirstBitHigh(ezUInt64 value) { EZ_ASSERT_DEBUG(value != 0, "FirstBitHigh is undefined for 0"); @@ -127,6 +130,7 @@ namespace ezMath return 0; #endif } +#endif EZ_ALWAYS_INLINE ezUInt32 CountTrailingZeros(ezUInt32 bitmask) { return (bitmask == 0) ? 32 : FirstBitLow(bitmask); } diff --git a/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h b/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h index fb839b3..21e2ec1 100644 --- a/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h +++ b/Code/Engine/Foundation/Memory/Implementation/AllocatorBase_inl.h @@ -60,7 +60,11 @@ namespace ezInternal template EZ_FORCE_INLINE T* CreateRawBuffer(ezAllocatorBase* pAllocator, size_t uiCount) { +#if EZ_ENABLED(EZ_PLATFORM_64BIT) ezUInt64 safeAllocationSize = ezMath::SafeMultiply64(uiCount, sizeof(T)); +#else + ezUInt32 safeAllocationSize = ezMath::SafeMultiply32(uiCount, sizeof(T)); +#endif return static_cast(pAllocator->Allocate(safeAllocationSize, EZ_ALIGNMENT_OF(T))); } diff --git a/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h b/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h index 54939fb..15f928a 100644 --- a/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h +++ b/Code/Engine/Foundation/System/Implementation/Win/StackTracer_win.h @@ -229,11 +229,23 @@ ezUInt32 ezStackTracer::GetStackTrace(ezArrayPtr& trace, void* pContext) frame.AddrFrame.Offset = context.Rbp; frame.AddrStack.Offset = context.Rsp; machine_type = IMAGE_FILE_MACHINE_AMD64; -#else +#elif defined(_M_IX86) frame.AddrPC.Offset = context.Eip; frame.AddrFrame.Offset = context.Ebp; frame.AddrStack.Offset = context.Esp; machine_type = IMAGE_FILE_MACHINE_I386; +#elif defined(_M_ARM64) + frame.AddrPC.Offset = context.Pc; + frame.AddrFrame.Offset = context.Fp; + frame.AddrStack.Offset = context.Sp; + machine_type = IMAGE_FILE_MACHINE_ARM64; +#elif defined(_M_ARM) + frame.AddrPC.Offset = context.Pc; + frame.AddrFrame.Offset = context.R11; + frame.AddrStack.Offset = context.Sp; + machine_type = IMAGE_FILE_MACHINE_ARM; +#else + #error Unknown architecture #endif for (ezInt32 i = 0; i < (ezInt32)trace.GetCount(); i++) { diff --git b/Code/Engine/ezBuildInfo.h b/Code/Engine/ezBuildInfo.h new file mode 100644 index 0000000..763271c --- /dev/null +++ b/Code/Engine/ezBuildInfo.h @@ -0,0 +1,10 @@ +// +// This file is auto-generated by CMake. +// + +#pragma once + +#define EZ_GIT_COMMIT_HASH_SHORT +#define EZ_GIT_COMMIT_HASH_LONG +#define EZ_GIT_BRANCH_NAME "" + ================================================ FILE: ports/ezfoundation/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ezEngine/ezEngine REF 1448308ab99bae0d8d2a292ad345ff3a757f3124 #21.10 SHA512 20da87772366d1612795f534b31600123c0d04beba252d27d895c3c3cff7dae65952bd890629d79a7a691c2f3444601552c4b4eca99e8f8a99dc935ce2ebd284 PATCHES ezFoundation_vcpkg.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEZ_3RDPARTY_ENET_SUPPORT=OFF -DEZ_3RDPARTY_ZSTD_SUPPORT=OFF -DEZ_3RDPARTY_ZLIB_SUPPORT=OFF -DEZ_BUILD_FILTER=FoundationOnly -DEZ_BUILD_UNITTESTS=OFF -DEZ_ENABLE_FOLDER_UNITY_FILES=OFF -DEZ_ENABLE_QT_SUPPORT=OFF -DEZ_USE_PCH=OFF OPTIONS_DEBUG -DEZ_OUTPUT_DIRECTORY_LIB=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Lib -DEZ_OUTPUT_DIRECTORY_DLL=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Bin OPTIONS_RELEASE -DEZ_OUTPUT_DIRECTORY_LIB=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Lib -DEZ_OUTPUT_DIRECTORY_DLL=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Bin ) vcpkg_cmake_build(TARGET Foundation) # EzEngine does not support CMake-based install; copy headers and libraries manually. file(GLOB_RECURSE FOUNDATION_INCLUDE_FILES RELATIVE "${SOURCE_PATH}/Code/Engine/Foundation" "${SOURCE_PATH}/Code/Engine/Foundation/*.h") foreach(SOURCE_FILE ${FOUNDATION_INCLUDE_FILES}) get_filename_component(SOURCE_FILE_DIR "${SOURCE_FILE}" DIRECTORY) if(SOURCE_FILE_DIR STREQUAL "") set(TARGET_DIR "${CURRENT_PACKAGES_DIR}/include/Foundation") else() set(TARGET_DIR "${CURRENT_PACKAGES_DIR}/include/Foundation/${SOURCE_FILE_DIR}") endif() file(COPY "${SOURCE_PATH}/Code/Engine/Foundation/${SOURCE_FILE}" DESTINATION "${TARGET_DIR}") endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) set(LIB_SOURCE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Output/Lib") set(LIB_TARGET_DIR "${CURRENT_PACKAGES_DIR}/debug/lib") file(GLOB_RECURSE LIB_FILES "${LIB_SOURCE_DIR}/*.lib") foreach(LIB_FILE ${LIB_FILES}) file(COPY "${LIB_FILE}" DESTINATION "${LIB_TARGET_DIR}") endforeach() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) set(LIB_SOURCE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Output/Lib") set(LIB_TARGET_DIR "${CURRENT_PACKAGES_DIR}/lib") file(GLOB_RECURSE LIB_FILES "${LIB_SOURCE_DIR}/*.lib") foreach(LIB_FILE ${LIB_FILES}) file(COPY "${LIB_FILE}" DESTINATION "${LIB_TARGET_DIR}") endforeach() endif() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ezfoundation/vcpkg.json ================================================ { "name": "ezfoundation", "version": "21.10", "description": "Foundation library out of ezEngine", "homepage": "https://ezengine.net/", "license": "MIT", "supports": "windows | uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/f3d/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a2a29e18..06caee00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,11 +290,11 @@ if (UNIX AND NOT APPLE AND NOT ANDROID) endif() install(FILES LICENSE.md - DESTINATION ${F3D_LIC_DIR} COMPONENT licenses) + DESTINATION ${F3D_LIC_DIR} COMPONENT licenses EXCLUDE_FROM_ALL) if (F3D_BUILD_APPLICATION) install(FILES doc/THIRD_PARTY_LICENSES.md - DESTINATION ${F3D_LIC_DIR} COMPONENT licenses) + DESTINATION ${F3D_LIC_DIR} COMPONENT licenses EXCLUDE_FROM_ALL) endif () # Check that a LFS data file is big enough to be an actual file diff --git a/application/CMakeLists.txt b/application/CMakeLists.txt index 060b4fcd..3fd2c906 100644 --- a/application/CMakeLists.txt +++ b/application/CMakeLists.txt @@ -221,7 +221,7 @@ if(UNIX AND NOT APPLE) add_custom_target(man ALL DEPENDS ${MAN_OUTPUT_FILE}) install(FILES "${CMAKE_BINARY_DIR}/f3d.1.gz" - DESTINATION "share/man/man1/" COMPONENT documentation) + DESTINATION "share/man/man1/" COMPONENT documentation EXCLUDE_FROM_ALL) else() message(FATAL_ERROR "help2man or gzip not found, cannot create man entry, please disable F3D_LINUX_GENERATE_MAN or install them") endif() @@ -250,16 +250,14 @@ endif() install(EXPORT f3dTargets NAMESPACE f3d:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) install( FILES "${F3D_SOURCE_DIR}/cmake/application-config.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) # Default config files install( @@ -278,40 +276,40 @@ install( # Other ressoure files if(UNIX AND NOT APPLE AND NOT ANDROID) install(FILES "${F3D_SOURCE_DIR}/resources/f3d.desktop" - DESTINATION "share/applications" COMPONENT assets) + DESTINATION "share/applications" COMPONENT assets EXCLUDE_FROM_ALL) install(FILES "${F3D_SOURCE_DIR}/resources/logo16.png" - DESTINATION "share/icons/hicolor/16x16/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/16x16/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo24.png" - DESTINATION "share/icons/hicolor/24x24/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/24x24/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo32.png" - DESTINATION "share/icons/hicolor/32x32/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/32x32/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo48.png" - DESTINATION "share/icons/hicolor/48x48/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/48x48/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo64.png" - DESTINATION "share/icons/hicolor/64x64/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/64x64/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo256.png" - DESTINATION "share/icons/hicolor/256x256/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/256x256/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.png") install(FILES "${F3D_SOURCE_DIR}/resources/logo.svg" - DESTINATION "share/icons/hicolor/scalable/apps" COMPONENT assets + DESTINATION "share/icons/hicolor/scalable/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.svg") install(FILES "${F3D_SOURCE_DIR}/resources/logo-mono.svg" - DESTINATION "share/icons/HighContrast/scalable/apps" COMPONENT assets + DESTINATION "share/icons/HighContrast/scalable/apps" COMPONENT assets EXCLUDE_FROM_ALL RENAME "f3d.svg") install(FILES "${F3D_SOURCE_DIR}/resources/completion.bash" - DESTINATION "share/bash-completion/completions" COMPONENT shellext + DESTINATION "share/bash-completion/completions" COMPONENT shellext EXCLUDE_FROM_ALL RENAME "f3d") install(FILES "${F3D_SOURCE_DIR}/resources/completion.zsh" - DESTINATION "share/zsh/site-functions" COMPONENT shellext + DESTINATION "share/zsh/site-functions" COMPONENT shellext EXCLUDE_FROM_ALL RENAME "_f3d") install(FILES "${F3D_SOURCE_DIR}/resources/completion.fish" - DESTINATION "share/fish/vendor_completions.d" COMPONENT shellext + DESTINATION "share/fish/vendor_completions.d" COMPONENT shellext EXCLUDE_FROM_ALL RENAME "f3d.fish") install(FILES "${F3D_SOURCE_DIR}/resources/app.f3d.F3D.metainfo.xml" - DESTINATION "share/metainfo" COMPONENT assets) + DESTINATION "share/metainfo" COMPONENT assets EXCLUDE_FROM_ALL) endif() diff --git a/cmake/f3dPlugin.cmake b/cmake/f3dPlugin.cmake index 7307ef5e..7ffc9348 100644 --- a/cmake/f3dPlugin.cmake +++ b/cmake/f3dPlugin.cmake @@ -204,10 +204,6 @@ The `NAME` argument is required. The arguments are as follows: macro(f3d_plugin_build) cmake_parse_arguments(F3D_PLUGIN "FREEDESKTOP;FORCE_STATIC" "NAME;DESCRIPTION;VERSION" "VTK_MODULES;ADDITIONAL_RPATHS;MIMETYPE_XML_FILES;CONFIGURATION_DIRS" ${ARGN}) - find_package(VTK 9.2.6 REQUIRED COMPONENTS - CommonCore CommonExecutionModel IOImport - ${F3D_PLUGIN_VTK_MODULES}) - set(_force_static FALSE) if(DEFINED BUILD_SHARED_LIBS AND NOT BUILD_SHARED_LIBS) set(_force_static TRUE) @@ -254,7 +250,9 @@ macro(f3d_plugin_build) ENABLE_TESTS ${BUILD_TESTING}) vtk_module_build( + ENABLE_WRAPPING OFF MODULES ${modules} + INSTALL_EXPORT "f3dLibraryTargets" INSTALL_HEADERS OFF PACKAGE "f3d_${F3D_PLUGIN_NAME}_vtkext_private") @@ -327,9 +325,9 @@ macro(f3d_plugin_build) ${F3D_PLUGIN_VTK_MODULES} ${modules}) - if(NOT F3D_PLUGIN_IS_STATIC) + if(NOT F3D_PLUGIN_IS_STATIC OR NOT BUILD_SHARED_LIBS) install(TARGETS f3d-plugin-${F3D_PLUGIN_NAME} - EXPORT f3dTargets + EXPORT "f3dLibraryTargets" ARCHIVE DESTINATION ${_f3d_plugins_install_dir} COMPONENT plugin LIBRARY DESTINATION ${_f3d_plugins_install_dir} COMPONENT plugin) endif() @@ -361,10 +359,10 @@ macro(f3d_plugin_build) "${CMAKE_BINARY_DIR}/share/thumbnailers/f3d-plugin-${F3D_PLUGIN_NAME}.thumbnailer") install(FILES "${CMAKE_BINARY_DIR}/share/applications/f3d-plugin-${F3D_PLUGIN_NAME}.desktop" DESTINATION "share/applications" - COMPONENT plugin) + COMPONENT plugin EXCLUDE_FROM_ALL) install(FILES "${CMAKE_BINARY_DIR}/share/thumbnailers/f3d-plugin-${F3D_PLUGIN_NAME}.thumbnailer" DESTINATION "share/thumbnailers" - COMPONENT plugin) + COMPONENT plugin EXCLUDE_FROM_ALL) endif() endif() diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index d00e9feb..53c8de85 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -112,8 +112,6 @@ set_target_properties(libf3d PROPERTIES CXX_VISIBILITY_PRESET hidden CXX_STANDARD 17 POSITION_INDEPENDENT_CODE ON - OUTPUT_NAME "f3d" - PDB_NAME "libf3d" ) # It can be useful to disable soversion in case the links are duplicated @@ -237,17 +235,16 @@ install( "${CMAKE_BINARY_DIR}/cmake/f3dConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) ## Install the rest of the libraries and SDK parts -if(BUILD_SHARED_LIBS) +if(ON) # Install the libf3d install(TARGETS libf3d EXPORT f3dLibraryTargets RUNTIME_DEPENDENCY_SET libf3dDeps - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sdk EXCLUDE_FROM_ALL + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sdk RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT library LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library) @@ -263,15 +260,13 @@ if(BUILD_SHARED_LIBS) # Install the public headers install(FILES ${F3D_PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) # Install the library exported targets install(EXPORT f3dLibraryTargets NAMESPACE f3d:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) # Install library cmake files install( @@ -280,14 +275,12 @@ if(BUILD_SHARED_LIBS) "${F3D_SOURCE_DIR}/cmake/f3dEmbed.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT sdk - EXCLUDE_FROM_ALL) + COMPONENT sdk) # Install plugin headers install(FILES ${F3D_PLUGIN_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/f3d" - COMPONENT plugin_sdk - EXCLUDE_FROM_ALL) + COMPONENT plugin_sdk EXCLUDE_FROM_ALL) # Install pluginsdk cmake and source files install( @@ -300,7 +293,6 @@ if(BUILD_SHARED_LIBS) "${F3D_SOURCE_DIR}/cmake/readerBoilerPlate.h.in" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/f3d" - COMPONENT plugin_sdk - EXCLUDE_FROM_ALL) + COMPONENT plugin_sdk EXCLUDE_FROM_ALL) endif() diff --git a/plugins/alembic/module/CMakeLists.txt b/plugins/alembic/module/CMakeLists.txt index 271eaa88..3af83302 100644 --- a/plugins/alembic/module/CMakeLists.txt +++ b/plugins/alembic/module/CMakeLists.txt @@ -3,7 +3,7 @@ set(classes ) set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/plugins/assimp/module/CMakeLists.txt b/plugins/assimp/module/CMakeLists.txt index 31e8840c..202b7444 100644 --- a/plugins/assimp/module/CMakeLists.txt +++ b/plugins/assimp/module/CMakeLists.txt @@ -3,7 +3,7 @@ set(classes ) set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/plugins/draco/module/CMakeLists.txt b/plugins/draco/module/CMakeLists.txt index 6d690733..8cf42872 100644 --- a/plugins/draco/module/CMakeLists.txt +++ b/plugins/draco/module/CMakeLists.txt @@ -11,7 +11,7 @@ if(VTK_VERSION VERSION_GREATER_EQUAL 9.3.20240214) endif() set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/plugins/native/module/CMakeLists.txt b/plugins/native/module/CMakeLists.txt index 991cc9ac..1355eef0 100644 --- a/plugins/native/module/CMakeLists.txt +++ b/plugins/native/module/CMakeLists.txt @@ -8,7 +8,7 @@ if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20221216) endif() set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/plugins/occt/module/CMakeLists.txt b/plugins/occt/module/CMakeLists.txt index 493ea503..d89b49eb 100644 --- a/plugins/occt/module/CMakeLists.txt +++ b/plugins/occt/module/CMakeLists.txt @@ -3,7 +3,7 @@ set(classes ) set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/vtkext/private/CMakeLists.txt b/vtkext/private/CMakeLists.txt index 0357f869..e55507c9 100644 --- a/vtkext/private/CMakeLists.txt +++ b/vtkext/private/CMakeLists.txt @@ -7,7 +7,9 @@ vtk_module_scan( ENABLE_TESTS ${BUILD_TESTING}) vtk_module_build( + ENABLE_WRAPPING OFF MODULES ${modules} + INSTALL_EXPORT "f3dLibraryTargets" INSTALL_HEADERS OFF PACKAGE "f3d_vtkext_private") diff --git a/vtkext/private/module/CMakeLists.txt b/vtkext/private/module/CMakeLists.txt index fd5516c1..0f0527e8 100644 --- a/vtkext/private/module/CMakeLists.txt +++ b/vtkext/private/module/CMakeLists.txt @@ -112,7 +112,7 @@ if(F3D_MODULE_UI AND NOT F3D_USE_EXTERNAL_IMGUI) endif() set(_no_install "") -if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) +if(BUILD_SHARED_LIBS) set(_no_install "NO_INSTALL") endif() diff --git a/vtkext/public/CMakeLists.txt b/vtkext/public/CMakeLists.txt index d6bebf6c..d35b6a66 100644 --- a/vtkext/public/CMakeLists.txt +++ b/vtkext/public/CMakeLists.txt @@ -18,10 +18,10 @@ set(headers_component "") set(f3d_vtk_no_install "") set(f3d_vtk_force_static "") get_target_property(f3d_vtk_target_type VTK::CommonCore TYPE) -if(BUILD_SHARED_LIBS AND NOT f3d_vtk_target_type STREQUAL STATIC_LIBRARY) +if(ON) # The headers and all "dev" part are installed as part of the plugin SDK # The library itself is installed as part of the library - set(export_name "f3d_vtkext") + set(export_name "f3dLibraryTargets") set(headers_component "plugin_sdk") else() if(VTK_VERSION VERSION_GREATER_EQUAL 9.2.20220928) @@ -32,10 +32,10 @@ else() endif() vtk_module_build( + ENABLE_WRAPPING OFF MODULES ${modules} INSTALL_EXPORT ${export_name} - INSTALL_HEADERS ON - HEADERS_COMPONENT ${headers_component} + INSTALL_HEADERS OFF ${f3d_vtkext_headers_exclude} HEADERS_DESTINATION "include/f3d" TARGETS_COMPONENT library ================================================ FILE: ports/f3d/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO f3d-app/f3d REF v${VERSION} SHA512 ac3f9edca7c870f56603165a6035da36486f05dc8367ba9147f687f6de2f4c9dfb94077f6041f41dd689e03c0387f9fab62c69f995a4e18016d623844e83bb6b HEAD_REF master PATCHES fix-install.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES application F3D_BUILD_APPLICATION # optional modules exr F3D_MODULE_EXR # optional plugins alembic F3D_PLUGIN_BUILD_ALEMBIC assimp F3D_PLUGIN_BUILD_ASSIMP draco F3D_PLUGIN_BUILD_DRACO ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DF3D_MACOS_BUNDLE=OFF -DF3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION=OFF MAYBE_UNUSED_VARIABLES F3D_MACOS_BUNDLE F3D_WINDOWS_BUILD_SHELL_THUMBNAILS_EXTENSION ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/f3d) # If the application feature is enabled, install it as a tool if("application" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES f3d AUTO_CLEAN) endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/f3d/usage ================================================ f3d provides CMake targets: find_package(f3d CONFIG REQUIRED) target_link_libraries(main PRIVATE f3d::libf3d) ================================================ FILE: ports/f3d/vcpkg.json ================================================ { "name": "f3d", "version": "3.2.0", "description": "A fast and minimalist 3D viewer", "homepage": "https://f3d.app", "license": "BSD-3-Clause", "supports": "!(windows & (arm | uwp))", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vtk", "default-features": false, "features": [ "opengl", "seacas" ] } ], "features": { "alembic": { "description": "alembic plugin", "dependencies": [ "alembic" ] }, "application": { "description": "build the application" }, "assimp": { "description": "assimp plugin", "dependencies": [ "assimp" ] }, "draco": { "description": "draco plugin", "dependencies": [ "draco" ] }, "exr": { "description": "support for OpenEXR images", "dependencies": [ "openexr" ] } } } ================================================ FILE: ports/faad2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO knik0/faad2 REF "${VERSION}" SHA512 fd140c0f4e7946e95a49a8652e26f33b138fc3375da34d5e3a55cdde8a74be429eb6fe0180bd434841022cee3c2ec65fe40dda7440fe0dd2761622174f992490 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES faad_cli AUTO_CLEAN) else() vcpkg_copy_tools(TOOL_NAMES faad AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/faad2/vcpkg.json ================================================ { "name": "faad2", "version": "2.11.2", "description": "Freeware Advanced Audio (AAC) Decoder", "homepage": "https://sourceforge.net/projects/faac/", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fadbad/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://uning.dk/download/FADBAD++-2.1.tar.gz" FILENAME "FADBAD++-2.1.tar.gz" SHA512 7a82c51c03acb0806d673853f391379ea974e304c831ee15ef05a90c30661736ff572481b5b8254b2646c63968043ee90a06cba88261b87fc34d01f92403360a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(INSTALL "${SOURCE_PATH}/tadiff.h" "${SOURCE_PATH}/fadbad.h" "${SOURCE_PATH}/fadiff.h" "${SOURCE_PATH}/badiff.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/fadbad/vcpkg.json ================================================ { "name": "fadbad", "version": "2.1.0", "port-version": 3, "description": "FADBAD++ Templates for Automatic Differentiation", "homepage": "https://uning.dk/fadbad.html" } ================================================ FILE: ports/faiss/msvc-template.diff ================================================ diff --git a/faiss/gpu/impl/PQCodeDistances-inl.cuh b/faiss/gpu/impl/PQCodeDistances-inl.cuh index e2e66f3..309187e 100644 --- a/faiss/gpu/impl/PQCodeDistances-inl.cuh +++ b/faiss/gpu/impl/PQCodeDistances-inl.cuh @@ -544,7 +544,7 @@ void runPQCodeDistancesMM( // View output as (q * c)(sub q * code), and add centroid norm to // each row - auto outDistancesCodeViewCols = outCodeDistancesView.view<2>( + auto outDistancesCodeViewCols = outCodeDistancesView.template view<2>( {coarseIndices.getSize(0) * coarseIndices.getSize(1), outCodeDistances.getSize(2) * outCodeDistances.getSize(3)}); ================================================ FILE: ports/faiss/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebookresearch/faiss REF "v${VERSION}" SHA512 f4f1e392a3b25d5523cd1f4a6293f13018703687aeb609fafc93e2d99b3c8bba1d7a2ae300ec9ceea7750d66517c688d1a2b1160f98edfea37b78d218804f9ed HEAD_REF master PATCHES msvc-template.diff undef-small.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gpu FAISS_ENABLE_GPU ) if ("gpu" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DFAISS_ENABLE_MKL=OFF -DFAISS_ENABLE_PYTHON=OFF # Requires SWIG -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/faiss/undef-small.diff ================================================ diff --git a/faiss/gpu/utils/MergeNetworkWarp.cuh b/faiss/gpu/utils/MergeNetworkWarp.cuh index 39b3008..06d0c91 100644 --- a/faiss/gpu/utils/MergeNetworkWarp.cuh +++ b/faiss/gpu/utils/MergeNetworkWarp.cuh @@ -13,6 +13,10 @@ #include #include +#ifdef small +#undef small +#endif + namespace faiss { namespace gpu { ================================================ FILE: ports/faiss/vcpkg.json ================================================ { "name": "faiss", "version": "1.14.1", "description": "Faiss is a library for efficient similarity search and clustering of dense vectors.", "homepage": "https://faiss.ai/", "license": "MIT", "supports": "!x86 & !uwp", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gpu": { "description": "Whether to enable GPU support", "dependencies": [ "cuda" ] } } } ================================================ FILE: ports/fakeit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eranpeer/FakeIt REF "${VERSION}" SHA512 19ed2000837574598f72f28b42a4ecc7f3a7f46f69b744025521f6668da469fefbbf91f30d00460d3a7d72722fec2030d43365272953947bb530f04c707e5d65 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_INCLUDEDIR=include/fakeit/single_header -DENABLE_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FakeIt) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fakeit/usage ================================================ FakeIt provides CMake targets: # Usage for specific framework tests (e.g. boost, catch, gtest, etc.) find_package(FakeIt CONFIG REQUIRED) target_link_libraries(main PRIVATE FakeIt::FakeIt-) ================================================ FILE: ports/fakeit/vcpkg.json ================================================ { "name": "fakeit", "version": "2.5.0", "description": "FakeIt is a simple mocking framework for C++. It supports GCC, Clang and MS Visual C++.", "homepage": "https://github.com/eranpeer/FakeIt", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/faker-cxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cieslarmichal/faker-cxx REF "v${VERSION}" SHA512 610933b09e5f77c0bb07f25e24a783b1d28f6c7183b24d93a54cf32275cac100248e8488b8b0768300f3b7c34fd653ba74c398e917925a20ce209e3dac97b814 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFAKER_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup( PACKAGE_NAME faker-cxx CONFIG_PATH "lib/cmake" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSES.md") ================================================ FILE: ports/faker-cxx/vcpkg.json ================================================ { "name": "faker-cxx", "version": "4.3.0", "description": "C++ Faker library for generating fake (but realistic) data.", "homepage": "https://github.com/cieslarmichal/faker-cxx", "documentation": "https://cieslarmichal.github.io/faker-cxx/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fameta-counter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO falemagn/fameta-counter REF 35f4421524b61eaa658c23e9c3667dc914df72fa SHA512 624baa2646a4141a1b326910f567d8a4799b72ee4cf569497940a877be2f035a19cf9a709f3bb64be7055175bd72c698d3f82df5bd47996eacbe6bbc2f4a42cd HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/fameta/counter.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/fameta-counter") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fameta-counter/vcpkg.json ================================================ { "name": "fameta-counter", "version-date": "2021-02-13", "description": "Compile time counter that works with all major modern compilers, compatible with C++11 and above.", "homepage": "https://github.com/falemagn/fameta-counter", "license": "Unlicense" } ================================================ FILE: ports/fann/fix-build_type.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c35ea2..fafd904 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,6 @@ set (FANN_VERSION_MINOR 2) set (FANN_VERSION_PATCH 0) set (FANN_VERSION_STRING ${FANN_VERSION_MAJOR}.${FANN_VERSION_MINOR}.${FANN_VERSION_PATCH}) -option(BUILD_SHARED_LIBS "build shared/static libs" ON) INCLUDE(DefineInstallationPaths) ================================================ FILE: ports/fann/fix-installation.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 12ea06c..6c33c25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -156,10 +156,5 @@ install (FILES ################# compile tests ################ -ADD_SUBDIRECTORY( lib/googletest ) - -if(COMPILER_SUPPORTS_CXX11) - ADD_SUBDIRECTORY( tests ) -endif() ENDIF() diff --git a/cmake/Modules/DefineInstallationPaths.cmake b/cmake/Modules/DefineInstallationPaths.cmake index 2969533..e70c4b7 100644 --- a/cmake/Modules/DefineInstallationPaths.cmake +++ b/cmake/Modules/DefineInstallationPaths.cmake @@ -127,7 +127,7 @@ if (UNIX OR MINGW OR WIN32) set (PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "pkgconfig dir" FORCE) endif () -if (MSCV) +if (0) # Same same SET(BIN_INSTALL_DIR .) SET(SBIN_INSTALL_DIR .) @@ -137,5 +137,5 @@ if (MSCV) SET(ICON_INSTALL_DIR .) SET(SOUND_INSTALL_DIR .) SET(LOCALE_INSTALL_DIR lang) -endif (MSCV) +endif () ================================================ FILE: ports/fann/fix-uwp-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6c33c25..2c35ea2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,10 @@ configure_file (cmake/fann.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/fann.pc @ONLY) install (FILES ${CMAKE_CURRENT_BINARY_DIR}/fann.pc DESTINATION ${PKGCONFIG_INSTALL_DIR}) +if (MSVC) + add_compile_options(/wd4996) +endif() + ADD_SUBDIRECTORY( src ) ################# cpack ################ ================================================ FILE: ports/fann/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libfann/fann REF 8409b42d308bf9428b9d3e60927595e53a797bbc SHA512 4ad66808d7c88911d4c6d63368240ece2d0cbc73d89a95d32261b95dc551c47c46b3a34cc81b8cb0e03fe3f9ea61cb304e028780357bcf332d660824b066fd1e HEAD_REF master PATCHES fix-installation.patch fix-uwp-build.patch fix-build_type.patch remove-nouse-target.patch ) set(INSTALL_BASE_DIR_DBG "${CURRENT_PACKAGES_DIR}/debug") set(INSTALL_BASE_DIR_REL "${CURRENT_PACKAGES_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DBIN_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/bin -DSBIN_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/sbin -DLIB_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/lib -DEXEC_INSTALL_PREFIX=${INSTALL_BASE_DIR_DBG}/tools/${PORT} -DXDG_APPS_DIR=${INSTALL_BASE_DIR_DBG}/tools/${PORT} -DPLUGIN_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/tools/${PORT} -DINCLUDE_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/include -DSHARE_INSTALL_PREFIX=${INSTALL_BASE_DIR_DBG}/share/${PORT} -DDATA_INSTALL_PREFIX=${INSTALL_BASE_DIR_DBG}/share/${PORT} -DHTML_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/doc -DICON_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/data/icons -DSOUND_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/sounds -DLOCALE_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/locale -DSYSCONF_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/etc -DINFO_INSTALL_DIR=${INSTALL_BASE_DIR_DBG}/share/${PORT}/info OPTIONS_RELEASE -DBIN_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/bin -DSBIN_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/sbin -DLIB_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/lib -DEXEC_INSTALL_PREFIX=${INSTALL_BASE_DIR_REL}/tools/${PORT} -DXDG_APPS_DIR=${INSTALL_BASE_DIR_REL}/tools/${PORT} -DPLUGIN_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/tools/${PORT} -DINCLUDE_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/include -DSHARE_INSTALL_PREFIX=${INSTALL_BASE_DIR_REL}/share/${PORT} -DDATA_INSTALL_PREFIX=${INSTALL_BASE_DIR_REL}/share/${PORT} -DHTML_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/doc -DICON_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/data/icons -DSOUND_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/sounds -DLOCALE_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/locale -DSYSCONF_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/etc -DINFO_INSTALL_DIR=${INSTALL_BASE_DIR_REL}/share/${PORT}/info ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/fann/remove-nouse-target.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ac3ff73..2fb9a59 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -23,15 +23,12 @@ SET(floatfann_LIB_SRCS floatfann.c ) -ADD_LIBRARY(floatfann SHARED ${floatfann_LIB_SRCS}) -ADD_LIBRARY(floatfann_static STATIC ${floatfann_LIB_SRCS}) +ADD_LIBRARY(floatfann ${floatfann_LIB_SRCS}) SET_TARGET_PROPERTIES(floatfann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) -SET_TARGET_PROPERTIES(floatfann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) if (UNIX) - SET_TARGET_PROPERTIES(floatfann_static PROPERTIES OUTPUT_NAME floatfann) endif(UNIX) -INSTALL(TARGETS floatfann floatfann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} +INSTALL(TARGETS floatfann LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${BIN_INSTALL_DIR} ) @@ -42,15 +39,12 @@ SET(doublefann_LIB_SRCS doublefann.c ) -ADD_LIBRARY(doublefann SHARED ${doublefann_LIB_SRCS}) -ADD_LIBRARY(doublefann_static STATIC ${doublefann_LIB_SRCS}) +ADD_LIBRARY(doublefann ${doublefann_LIB_SRCS}) SET_TARGET_PROPERTIES(doublefann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) -SET_TARGET_PROPERTIES(doublefann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) if (UNIX) - SET_TARGET_PROPERTIES(doublefann_static PROPERTIES OUTPUT_NAME doublefann) endif(UNIX) -INSTALL(TARGETS doublefann doublefann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} +INSTALL(TARGETS doublefann LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${BIN_INSTALL_DIR} ) @@ -61,20 +55,16 @@ SET(fixedfann_LIB_SRCS fixedfann.c ) -ADD_LIBRARY(fixedfann SHARED ${fixedfann_LIB_SRCS}) -ADD_LIBRARY(fixedfann_static STATIC ${fixedfann_LIB_SRCS}) +ADD_LIBRARY(fixedfann ${fixedfann_LIB_SRCS}) if(NOT MSVC) TARGET_LINK_LIBRARIES(fixedfann m) -TARGET_LINK_LIBRARIES(fixedfann_static m) endif(NOT MSVC) SET_TARGET_PROPERTIES(fixedfann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) -SET_TARGET_PROPERTIES(fixedfann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) if (UNIX) - SET_TARGET_PROPERTIES(fixedfann_static PROPERTIES OUTPUT_NAME fixedfann) endif(UNIX) -INSTALL(TARGETS fixedfann fixedfann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} +INSTALL(TARGETS fixedfann LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${BIN_INSTALL_DIR} ) @@ -85,19 +75,15 @@ SET(fann_LIB_SRCS floatfann.c ) -ADD_LIBRARY(fann SHARED ${fann_LIB_SRCS}) -ADD_LIBRARY(fann_static STATIC ${fann_LIB_SRCS}) +ADD_LIBRARY(fann ${fann_LIB_SRCS}) if(NOT MSVC) TARGET_LINK_LIBRARIES(fann m) -TARGET_LINK_LIBRARIES(fann_static m) endif(NOT MSVC) SET_TARGET_PROPERTIES(fann PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) -SET_TARGET_PROPERTIES(fann_static PROPERTIES VERSION ${FANN_VERSION_STRING} SOVERSION ${FANN_VERSION_MAJOR}) if (UNIX) - SET_TARGET_PROPERTIES(fann_static PROPERTIES OUTPUT_NAME fann) endif(UNIX) -INSTALL(TARGETS fann fann_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} +INSTALL(TARGETS fann LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${BIN_INSTALL_DIR} ) ================================================ FILE: ports/fann/vcpkg.json ================================================ { "name": "fann", "version-date": "2023-01-26", "description": "Fast Artificial Neural Network (FANN) Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks.", "homepage": "https://github.com/libfann/fann", "license": "LGPL-2.1-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/farmhash/farmhashConfig.cmake ================================================ function(set_library_target NAMESPACE LIB_NAME DEBUG_LIB_FILE_NAME RELEASE_LIB_FILE_NAME INCLUDE_DIR) add_library(${NAMESPACE}::${LIB_NAME} STATIC IMPORTED) set_target_properties(${NAMESPACE}::${LIB_NAME} PROPERTIES IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" IMPORTED_LOCATION_RELEASE "${RELEASE_LIB_FILE_NAME}" IMPORTED_LOCATION_DEBUG "${DEBUG_LIB_FILE_NAME}" INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIR}" ) set(${NAMESPACE}_${LIB_NAME}_FOUND 1) endfunction() get_filename_component(ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(ROOT "${ROOT}" PATH) get_filename_component(ROOT "${ROOT}" PATH) set_library_target("GOOGLE" "farmhash" "${ROOT}/debug/lib/${CMAKE_STATIC_LIBRARY_PREFIX}farmhash${CMAKE_STATIC_LIBRARY_SUFFIX}" "${ROOT}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}farmhash${CMAKE_STATIC_LIBRARY_SUFFIX}" "${ROOT}/include/") ================================================ FILE: ports/farmhash/portfile.cmake ================================================ #Requires a compiler which understands '__builtin_unreachable': vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(WIN_PR_PATCH URLS "https://github.com/google/farmhash/pull/40.diff?full_index=1" FILENAME farmhash-pr-40.patch SHA512 a479450e3e2c4810ef67bb0704c30c2779e12a8768524f179235fae8687d064e62ee225b4b167a30fda59c39de40587629813804f452841badf308e1e76607a7 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/farmhash REF 0d859a811870d10f53a594927d0d0b97573ad06d SHA512 7bc14931e488464c1cedbc17551fb90a8cec494d0e0860db9df8efff09000fd8d91e01060dd5c5149b1104ac4ac8bf7eb57e5b156b05ef42636938edad1518f1 HEAD_REF master PATCHES ${WIN_PR_PATCH} ) if((VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) AND NOT ENV{CXX_FLAGS}) # This should be a compiler check set(ENV{CXXFLAGS} "-maes -msse4.2") endif() file(REMOVE_RECURSE "${SOURCE_PATH}/configure") vcpkg_make_configure( AUTORECONF SOURCE_PATH ${SOURCE_PATH} ) vcpkg_make_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share" # eliminate unused files ) file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/farmhashConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/farmhash/usage ================================================ The package farmhash is compatible with built-in CMake targets: FIND_PACKAGE(farmhash REQUIRED) TARGET_LINK_LIBRARIES(main PRIVATE GOOGLE::farmhash) for linkage ================================================ FILE: ports/farmhash/vcpkg.json ================================================ { "name": "farmhash", "version": "1.1", "port-version": 7, "description": "FarmHash, a family of hash functions.", "homepage": "https://github.com/google/farmhash", "license": "MIT", "supports": "!arm", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/fast-cpp-csv-parser/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ben-strasser/fast-cpp-csv-parser REF 75600d0b77448e6c410893830df0aec1dbacf8e3 SHA512 aab418e98eb895dabd6369b186b7a55beddb84b89e358395a9f125829074916eff9086d80f9cd342d1bfd91acacc7103875c970a84164b75fff259cc93729285 HEAD_REF master ) file(COPY "${SOURCE_PATH}/csv.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fast-cpp-csv-parser/vcpkg.json ================================================ { "name": "fast-cpp-csv-parser", "version-date": "2021-01-03", "port-version": 2, "description": "A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files", "homepage": "https://github.com/ben-strasser/fast-cpp-csv-parser", "license": "BSD-3-Clause" } ================================================ FILE: ports/fast-double-parser/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lemire/fast_double_parser REF "v${VERSION}" SHA512 143f5d920159c5fc6d516417d14f297f7ba79764bab794ed6337dff73add7adcf99f27c078cd0e83a2907c5ec1143a247d85fc229eedcaf74d7710bab0adbd76 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME fast_double_parser) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fast-double-parser/vcpkg.json ================================================ { "name": "fast-double-parser", "version": "0.8.1", "description": "Fast function to parse strings into double (binary64) floating-point values, enforces the RFC 7159 (JSON standard) grammar: 4x faster than strtod", "homepage": "https://github.com/lemire/fast_double_parser", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fast-float/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fastfloat/fast_float REF "v${VERSION}" SHA512 794b6a99cd3b903df2ded95202873882317a47a34d88c4b9b30bb2f3b37eeb75645bb1a8b19715fe723186c57317c027ecdb399937744a1800fbd1d121ac6f12 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFASTFLOAT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME FastFloat CONFIG_PATH share/cmake/FastFloat) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-APACHE" "${SOURCE_PATH}/LICENSE-BOOST" "${SOURCE_PATH}/LICENSE-MIT") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/fast-float/usage ================================================ fast-float provides CMake targets: find_package(FastFloat CONFIG REQUIRED) target_link_libraries(main PRIVATE FastFloat::fast_float) ================================================ FILE: ports/fast-float/vcpkg.json ================================================ { "name": "fast-float", "version": "8.2.4", "description": "Fast and exact implementation of the C++ from_chars functions for float and double types: 4x faster than strtod", "homepage": "https://github.com/fastfloat/fast_float", "license": "Apache-2.0 OR BSL-1.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fast-obj/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.22) project(fast-obj C) add_library(fast-obj fast_obj.c) target_include_directories(fast-obj PUBLIC $ $ ) install(TARGETS fast-obj EXPORT fast-obj-config ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(FILES fast_obj.h DESTINATION include) install(EXPORT fast-obj-config NAMESPACE fast-obj:: DESTINATION share/fast-obj ) ================================================ FILE: ports/fast-obj/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thisistherk/fast_obj REF "v${VERSION}" SHA512 8db413ce3526a91be7834d7fcec23b012738d017d2e28e4fc212fd58c0f5ef7fe4e7aea07aaf440fdc3ec7e6a6bfa32ea777a344a166246bcfd7bd35938b359f HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "fast-obj") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fast-obj/vcpkg.json ================================================ { "name": "fast-obj", "version": "1.3", "description": "Fast C OBJ parser - a single-header C/C++ library for loading Wavefront .obj files.", "homepage": "https://github.com/thisistherk/fast_obj", "license": "MIT", "dependencies": [ "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fastcdr/pdb-file.patch ================================================ diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index 7ac643b..a70750d 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -158,7 +158,7 @@ if(MSVC OR MSVC_IDE) endif() # install symbols if any - if(PDB_FILE) + if(PDB_FILE AND BUILD_SHARED_LIBS) install(FILES ${PDB_FILE} DESTINATION ${LIB_INSTALL_DIR} COMPONENT symbols ================================================ FILE: ports/fastcdr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eProsima/Fast-CDR REF "v${VERSION}" SHA512 cdf13b4801ec9a5dcc7f5b30963db75645f6e0287d4dbac46dbc2eb8e3881a5cdd4318f71178e3903b40fcddcc2b6d70a4a66ac2b5cf8a2e29161e1e0b1a5a94 HEAD_REF master PATCHES pdb-file.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fastcdr) vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/lib/fastcdr ${CURRENT_PACKAGES_DIR}/debug/lib/fastcdr) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fastcdr/eProsima_auto_link.h" "(defined(_DLL) || defined(_RTLDLL)) && defined(EPROSIMA_DYN_LINK)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fastcdr/fastcdr_dll.h" "defined(FASTCDR_DYN_LINK)" "1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fastcdr/vcpkg.json ================================================ { "name": "fastcdr", "version-semver": "2.3.5", "description": "eProsima FastCDR is a C++ library that provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation that modifies the standard.", "homepage": "https://github.com/eProsima/Fast-CDR", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fastcgi/dll.patch ================================================ diff --git a/include/fcgi_stdio.h b/include/fcgi_stdio.h index 6d242f36f..ec57131ce 100644 --- a/include/fcgi_stdio.h +++ b/include/fcgi_stdio.h @@ -23,14 +23,6 @@ extern "C" { #endif -#ifndef DLLAPI -#if defined (_WIN32) && defined (_MSC_VER) -#define DLLAPI __declspec(dllimport) -#else -#define DLLAPI -#endif -#endif - /* * Wrapper type for FILE */ diff --git a/include/fcgiapp.h b/include/fcgiapp.h index 8cadde16d..9b034def3 100644 --- a/include/fcgiapp.h +++ b/include/fcgiapp.h @@ -23,11 +23,19 @@ #endif #ifndef DLLAPI -#if defined (_WIN32) && defined (_MSC_VER) -#define DLLAPI __declspec(dllimport) -#else -#define DLLAPI -#endif +# if defined (_WIN32) && defined (_MSC_VER) +# if defined(DLL_EXPORT) && defined(LIBFCGI_BUILD) +# define DLLAPI __declspec(dllexport) +# else +# ifdef LIBFCGI_DLL_IMPORT +# define DLLAPI extern __declspec(dllimport) +# else +# define DLLAPI +# endif +# endif +# else +# define DLLAPI +# endif #endif #if defined (c_plusplus) || defined (__cplusplus) diff --git a/include/fcgio.h b/include/fcgio.h index ce8b930a8..81981974a 100644 --- a/include/fcgio.h +++ b/include/fcgio.h @@ -34,14 +34,6 @@ #include "fcgiapp.h" -#ifndef DLLAPI -#if defined (_WIN32) && defined (_MSC_VER) -#define DLLAPI __declspec(dllimport) -#else -#define DLLAPI -#endif -#endif - #if ! HAVE_STREAMBUF_CHAR_TYPE typedef char char_type; #endif diff --git a/include/fcgios.h b/include/fcgios.h index 206973137..7a2f5333a 100644 --- a/include/fcgios.h +++ b/include/fcgios.h @@ -50,11 +50,19 @@ extern "C" { #endif /* !_WIN32 */ #ifndef DLLAPI -#if defined (_WIN32) && defined (_MSC_VER) -#define DLLAPI __declspec(dllimport) -#else -#define DLLAPI -#endif +# if defined (_WIN32) && defined (_MSC_VER) +# if defined(DLL_EXPORT) && defined(LIBFCGI_BUILD) +# define DLLAPI __declspec(dllexport) +# else +# ifdef LIBFCGI_DLL_IMPORT +# define DLLAPI extern __declspec(dllimport) +# else +# define DLLAPI +# endif +# endif +# else +# define DLLAPI +# endif #endif diff --git a/libfcgi/Makefile.am b/libfcgi/Makefile.am index 42d507253..26f06f550 100644 --- a/libfcgi/Makefile.am +++ b/libfcgi/Makefile.am @@ -1,7 +1,7 @@ # $Id: Makefile.am,v 1.9 2001/12/22 03:16:20 robs Exp $ INCLUDEDIR = ../include -AM_CPPFLAGS = -I$(top_srcdir)/include -W -Wall -pedantic -Wno-unused-parameter +AM_CPPFLAGS = -I$(top_srcdir)/include -DLIBFCGI_BUILD INCLUDE_FILES = $(INCLUDEDIR)/fastcgi.h \ $(INCLUDEDIR)/fcgiapp.h \ ================================================ FILE: ports/fastcgi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FastCGI-Archives/fcgi2 REF "${VERSION}" SHA512 a8b49fe7d88fa5404ec6f9b9aba59f1c37c479820ba1ed7024260fe2539ff98dae9f71fb7c46192a257401b0eab1ce8cb6b2825286c85a73a33457f8cd9dd926 HEAD_REF master PATCHES dll.patch ) # Check build system first if(VCPKG_TARGET_IS_OSX) message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n\nIt can be installed with brew install gettext automake libtool") elseif(NOT VCPKG_TARGET_IS_WINDOWS) message("${PORT} currently requires the following library from the system package manager:\n gettext\n automake\n libtool\n libtool-bin\n\nIt can be installed with apt-get install gettext automake libtool libtool-bin") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF COPY_SOURCE OPTIONS --disable-examples ) vcpkg_make_install() # switch ${PORT} into /${PORT} file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include2") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(RENAME "${CURRENT_PACKAGES_DIR}/include2" "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/fcgiapp.h" "ifdef LIBFCGI_DLL_IMPORT" "if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/fcgios.h" "ifdef LIBFCGI_DLL_IMPORT" "if 1") endif() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fastcgi/vcpkg.json ================================================ { "name": "fastcgi", "version": "2.4.7", "port-version": 1, "description": "The FastCGI interface combines the best aspects of CGI and vendor APIs. Like CGI, FastCGI applications run in separate, isolated processes.", "homepage": "https://fastcgi-archives.github.io", "license": "OML", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/fastdds/disable-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b2ea15f..ffa61d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,9 +191,6 @@ if (${SANITIZER_THREAD} EQUAL -1) message(STATUS "Setting warnings as errors...") if(MSVC OR MSVC_IDE) add_compile_options(/WX) - else() - set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -Werror") endif() endif() ================================================ FILE: ports/fastdds/fix-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f7a02666..91609a491 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -244,8 +244,8 @@ if(NOT BUILD_SHARED_LIBS) endif() eprosima_find_package(fastcdr 2 REQUIRED) -eprosima_find_thirdparty(Asio asio VERSION 1.13.0) -eprosima_find_thirdparty(TinyXML2 tinyxml2) +find_package(asio CONFIG REQUIRED) +find_package(tinyxml2 CONFIG REQUIRED) find_package(foonathan_memory REQUIRED) message(STATUS "Found foonathan_memory: ${foonathan_memory_DIR}") @@ -257,7 +257,7 @@ if(ANDROID) endif() endif() -include_directories(thirdparty/nlohmann-json) +find_package(nlohmann_json CONFIG REQUIRED) include_directories(thirdparty/filewatch) ############################################################################### diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index 070597df6..c0b2d6b64 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -169,11 +169,12 @@ target_link_libraries(${PROJECT_NAME} PUBLIC fastcdr foonathan_memory - + nlohmann_json::nlohmann_json + PRIVATE eProsima_atomic ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} - ${TINYXML2_LIBRARY} + tinyxml2::tinyxml2 $<$:OpenSSL::SSL$OpenSSL::Crypto$<$:$crypt32.lib>> $<$:iphlpapi$Shlwapi> ${THIRDPARTY_BOOST_LINK_LIBS} ================================================ FILE: ports/fastdds/include-cstdint.patch ================================================ diff --git a/src/cpp/rtps/security/common/SharedSecretHandle.h b/src/cpp/rtps/security/common/SharedSecretHandle.h index c53b153..b2b6507 100644 --- a/src/cpp/rtps/security/common/SharedSecretHandle.h +++ b/src/cpp/rtps/security/common/SharedSecretHandle.h @@ -21,6 +21,7 @@ #include #include +#include namespace eprosima { namespace fastdds { ================================================ FILE: ports/fastdds/pdb-file.patch ================================================ diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index e0be0a7..9eb07a6 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -661,7 +661,7 @@ if(MSVC OR MSVC_IDE) endif() # install symbols if any - if(PDB_FILE) + if(PDB_FILE AND BUILD_SHARED_LIBS) install(FILES ${PDB_FILE} DESTINATION ${LIB_INSTALL_DIR}${MSVCARCH_DIR_EXTENSION} COMPONENT symbols ================================================ FILE: ports/fastdds/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eProsima/Fast-DDS REF "v${VERSION}" SHA512 92869a930fe0b67ae4b457a00cb273aba6e52af3f7c39f7fc2ded8e7285237871d99579b31c28e831bebde820aeef190a70827c9e8a02c7119ca1908b181f3b6 HEAD_REF master PATCHES fix-deps.patch pdb-file.patch disable-werror.patch include-cstdint.patch ) set(extra_opts "") if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") # when cross-compiling, try_run will not work. set(extra_opts -DSM_RUN_RESULT=TRUE -DSM_RUN_RESULT__TRYRUN_OUTPUT= ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSECURITY=ON -DFORCE_CXX=14 # foonathan memory debug needs C++14 constexpr ${extra_opts} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/fastdds/cmake) if(VCPKG_TARGET_IS_WINDOWS) # copy tools from "bin" to "tools" folder foreach(TOOL "fast-discovery-server-1.0.1.exe" "fastdds.bat" "ros-discovery.bat") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${TOOL}") endforeach() # remove tools from debug builds foreach(TOOL "fast-discovery-serverd-1.0.1.exe" "fastdds.bat" "ros-discovery.bat") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}") endif() endforeach() # adjust paths in batch files vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fastdds.bat" "%dir%\\..\\tools\\fastdds\\fastdds.py" "%dir%\\..\\fastdds\\fastdds.py") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/ros-discovery.bat" "%dir%\\..\\tools\\fastdds\\fastdds.py" "%dir%\\..\\fastdds\\fastdds.py") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") elseif(VCPKG_TARGET_IS_LINUX) # copy tools from "bin" to "tools" folder foreach(TOOL "fast-discovery-server-1.0.1" "fast-discovery-server" "fastdds" "ros-discovery") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${TOOL}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${TOOL}") endforeach() # replace symlink by a copy because symlinks do not work well together with vcpkg binary caching file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fast-discovery-server") file(INSTALL "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fast-discovery-server-1.0.1" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}" RENAME "fast-discovery-server") # remove tools from debug builds foreach(TOOL "fast-discovery-serverd-1.0.1" "fast-discovery-server" "fastdds" "ros-discovery") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL}") endforeach() # adjust paths in batch files vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fastdds" "$dir/../tools/fastdds/fastdds.py" "$dir/../fastdds/fastdds.py") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/ros-discovery" "$dir/../tools/fastdds/fastdds.py" "$dir/../fastdds/fastdds.py") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/fastdds/discovery/parser.py" "tool_path / '../../../bin'" "tool_path / '../../${PORT}'") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fastdds/usage ================================================ fastdds provides CMake targets: find_package(fastdds CONFIG REQUIRED) target_link_libraries(main PRIVATE fastdds) ================================================ FILE: ports/fastdds/vcpkg.json ================================================ { "name": "fastdds", "version": "3.4.1", "description": "eprosima Fast DDS (formerly Fast RTPS) is a C++ implementation of the DDS (Data Distribution Service) standard of the OMG (Object Management Group). eProsima Fast DDS implements the RTPS (Real Time Publish Subscribe) protocol, which provides publisher-subscriber communications over unreliable transports such as UDP, as defined and maintained by the Object Management Group (OMG) consortium.", "homepage": "https://www.eprosima.com/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "asio", "fastcdr", "foonathan-memory", "nlohmann-json", "openssl", "tinyxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fastfeat/CMakeLists.txt ================================================ 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() ================================================ FILE: ports/fastfeat/fastfeat.def ================================================ 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 ================================================ FILE: ports/fastfeat/portfile.cmake ================================================ 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_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/fastfeat" RENAME copyright) ================================================ FILE: ports/fastfeat/vcpkg.json ================================================ { "name": "fastfeat", "version-string": "391d5e9", "port-version": 4, "description": "FAST feature detectors in C", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fastgltf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO spnda/fastgltf REF "v${VERSION}" SHA512 b18162eb8a1631d9a28ed97961ac8f08d6aa2797f2bf035a470660cfd052f25c2bd47b77ce2c3f5367d5006c706cf6e00a710c14a25ad5e02b619430ea076882 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") vcpkg_copy_pdbs() file(READ "${CURRENT_PACKAGES_DIR}/share/fastgltf/fastgltfConfig.cmake" contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/fastgltf/fastgltfConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(simdjson) ${contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/fastgltf/vcpkg.json ================================================ { "name": "fastgltf", "version": "0.9.0", "description": "A modern C++17 glTF 2.0 library focused on speed, correctness, and usability", "homepage": "https://github.com/spnda/fastgltf", "license": "MIT", "dependencies": [ "simdjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fastio/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cppfastio/fast_io REF dd78867b7ae27da71c2e6d5d4f543066c301c047 SHA512 7376b4f2420c6b21d1b81f693a067c43ca16ad3110a53893687e1715acfdfa4d41604fb1d13c1537809a9f14321cfae6829f56a10bdceba72926feb45ec9d0a3 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/fastio/vcpkg.json ================================================ { "name": "fastio", "version-date": "2024-12-05", "description": "fast_io is an extremely fast C++20 input/output library aiming to replace and . It supports networking, NT apis, pipe, filesystem, winrt hstring, Qt, OpenSSL, cryptography. It is freestanding and it works on any platform, including dos, win95, wasm, linux kernel, windows kernel or your own operating system kernel. It has no dependencies.", "homepage": "https://github.com/cppfastio/fast_io", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fastlz/CMakeLists.txt ================================================ CMAKE_MINIMUM_REQUIRED (VERSION 3.5) add_library (fastlz fastlz.c) install (TARGETS fastlz DESTINATION RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) IF (NOT DEFINED SKIP_INSTALL_HEADERS) INSTALL( FILES fastlz.h DESTINATION include ) ENDIF () ================================================ FILE: ports/fastlz/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ariya/FastLZ REF b1342dabcf5257ab303743c9332fe75e9147a011 #2024-08-02 SHA512 a9c440c60e0d4fd9535a5438f3227e626c27ccd26cdcc9787c0dda5011b980c12ef46c7ddd2f197f6cc3bcef39755341d34214be9a508871ee3e1a24631a87b5 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MIT") ================================================ FILE: ports/fastlz/vcpkg.json ================================================ { "name": "fastlz", "version-date": "2024-08-02", "port-version": 1, "description": "A lightning-fast lossless compression library", "homepage": "https://github.com/ariya/FastLZ", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fastor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO romeric/Fastor REF "V${VERSION}" SHA512 6f636cf93b6fcd3fed83c4c7e4d0e762c2ca03368cc5fa38805913173a35b5919a030190744edc90e13ba4e463f1be742b1aa97b849cc48e93d9bcb6b635774a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fastor/vcpkg.json ================================================ { "name": "fastor", "version": "0.6.4", "description": "a high performance tensor library for modern C++", "homepage": "https://github.com/romeric/Fastor", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fastpfor/fix-arm-checker.patch ================================================ diff --git a/cmake_modules/environment.cmake b/cmake_modules/environment.cmake index 8072ae8..9d05bcc 100644 --- a/cmake_modules/environment.cmake +++ b/cmake_modules/environment.cmake @@ -1,10 +1,10 @@ include(CheckCXXCompilerFlag) -if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") +if (CMAKE_SYSTEM_PROCESSOR MATCHES "[Aa][Rr][Mm]64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "[Aa][Rr][Mm]" OR CMAKE_SYSTEM_PROCESSOR MATCHES "[Aa][Rr][Cc][Hh]64") set(SUPPORT_NEON ON) endif () # Check if the Visual Studio build is targeting ARM -if (CMAKE_GENERATOR_PLATFORM MATCHES "ARM64" OR CMAKE_GENERATOR_PLATFORM MATCHES "ARM") +if (CMAKE_GENERATOR_PLATFORM MATCHES "[Aa][Rr][Mm]64" OR CMAKE_GENERATOR_PLATFORM MATCHES "[Aa][Rr][Mm]") set(SUPPORT_NEON ON) endif () \ No newline at end of file ================================================ FILE: ports/fastpfor/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fast-pack/FastPFOR REF "v${VERSION}" SHA512 63eae397540e901e6b60420a92a165bbc16f35d97238221dac5d9d8819f40886a12edc17087d0aa2eeef706b8f411d1d19b77d6833d8bf34ad8340fa59f4cccf HEAD_REF master PATCHES remove-cpm.patch fix-arm-checker.patch ) file(REMOVE ${SOURCE_PATH}/cmake_modules/CPM.cmake ${SOURCE_PATH}/cmake_modules/Findsnappy.cmake ${SOURCE_PATH}/cmake_modules/simde.cmake ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFASTPFOR_WITH_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/FastPFOR") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fastpfor/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c32c332..a72eada 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,6 @@ set(CMAKE_C_STANDARD_REQUIRED True) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") include(AppendCompilerFlags) -include(cmake/CPM.cmake) project(FastPFOR CXX C) set(PROJECT_URL "https://github.com/fast-pack/FastPFOR") @@ -40,7 +39,6 @@ if( SUPPORT_SSE42 ) MESSAGE( STATUS "SSE 4.2 support detected" ) else() if (SUPPORT_NEON) - include(simde) MESSAGE(STATUS "USING SIMDE FOR SIMD OPERATIONS") else () MESSAGE(STATUS "SIMDE and SSE 4.2 support not detected") @@ -112,10 +110,9 @@ add_executable(csv2maropu src/csv2maropu.cpp) target_link_libraries(csv2maropu PRIVATE FastPFOR) if (SUPPORT_NEON) - target_link_libraries(FastPFOR PUBLIC simde) - target_link_libraries(gapstats PUBLIC simde) - target_link_libraries(partitionbylength PUBLIC simde) - target_link_libraries(csv2maropu PUBLIC simde) + find_path(SIMDE_INCLUDE_DIRS "simde/arm/neon.h") + target_include_directories(FastPFOR PUBLIC ${SIMDE_INCLUDE_DIRS}) + target_compile_definitions(FastPFOR PUBLIC SIMDE_ENABLE_NATIVE_ALIASES) else() message(STATUS "SIMDE not used") endif() @@ -128,21 +125,21 @@ if( SUPPORT_SSE42 ) target_link_libraries(benchbitpacking FastPFOR) endif() -find_package(snappy) -if(NOT ${snappy_FOUND}) +find_package(Snappy CONFIG) +if(NOT ${Snappy_FOUND}) message(STATUS "Snappy was not found. codecssnappy and " "inmemorybenchmarksnappy targets are not available.") else() message(STATUS "Snappy was found. Building additional targets " "codecssnappy and inmemorybenchmarksnappy.") - include_directories(${snappy_INCLUDE_DIRS}) + include_directories(${Snappy_INCLUDE_DIRS}) add_executable(codecssnappy src/codecs.cpp) set_target_properties(codecssnappy PROPERTIES DEFINE_SYMBOL USESNAPPY) - target_link_libraries(codecssnappy FastPFOR ${snappy_LIBRARIES}) + target_link_libraries(codecssnappy FastPFOR ${Snappy_LIBRARIES}) add_executable(inmemorybenchmarksnappy src/inmemorybenchmark.cpp) set_target_properties(inmemorybenchmarksnappy PROPERTIES DEFINE_SYMBOL USESNAPPY) - target_link_libraries(inmemorybenchmarksnappy FastPFOR ${snappy_LIBRARIES}) + target_link_libraries(inmemorybenchmarksnappy FastPFOR ${Snappy_LIBRARIES}) endif() option(FASTPFOR_WITH_TEST "Build with Google Test" ON) ================================================ FILE: ports/fastpfor/vcpkg.json ================================================ { "name": "fastpfor", "version": "0.3.1", "description": "Fast integer compression", "homepage": "https://github.com/fast-pack/FastPFOR", "license": "Apache-2.0", "supports": "!(arm & !arm64)", "dependencies": [ { "name": "simde", "platform": "arm" }, "snappy", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/faudio/portfile.cmake ================================================ # FAudio uses calender versioning (e.g., 26.01), but vcpkg drops them in versions string(REGEX REPLACE "^([0-9]+)\\.([1-9])$" "\\1.0\\2" FAUDIO_REF "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FNA-XNA/faudio REF "${FAUDIO_REF}" SHA512 2ec7ff7a08f75aa3217672115350814f5fcd0bede28d87d705c1ca8abd464b7a1293c4658a9adf97ca0fdc5126fe6067c2a34755fb29d4ec26457d6303beef77 HEAD_REF master ) set(options "") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND options -DPLATFORM_WIN32=TRUE) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FAudio) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright( COMMENT "FAudio is licensed under the Zlib license." FILE_LIST "${SOURCE_PATH}/LICENSE" ) ================================================ FILE: ports/faudio/vcpkg.json ================================================ { "name": "faudio", "version": "26.3", "description": "FAudio - accuracy-focused XAudio reimplementation for open platforms", "homepage": "https://fna-xna.github.io/", "license": "Zlib", "supports": "!uwp", "dependencies": [ { "name": "sdl3", "default-features": false, "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fawdlstty-libfv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fawdlstty/libfv REF v${VERSION} SHA512 9ad1c4a6e72d4a4208d4b5347b4be44b4894d777f293666d34ac76b53eb3d15ae79cd46d3315459dd2c3ca1c6d08691e31d37cc0636444278ca35144a7423902 HEAD_REF master ) file(WRITE "${CURRENT_PACKAGES_DIR}/share/fawdlstty-libfv/fawdlstty-libfv-config.cmake" " include(CMakeFindDependencyMacro) find_dependency(OpenSSL) find_dependency(ZLIB) if(NOT TARGET fawdlstty-libfv::libfv) add_library(fawdlstty-libfv::libfv INTERFACE IMPORTED) target_include_directories(fawdlstty-libfv::libfv INTERFACE \"\${CMAKE_CURRENT_LIST_DIR}/../../include\") target_link_libraries(fawdlstty-libfv::libfv INTERFACE ZLIB::ZLIB OpenSSL::SSL) endif() ") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") ================================================ FILE: ports/fawdlstty-libfv/vcpkg.json ================================================ { "name": "fawdlstty-libfv", "version": "0.1.0", "description": "libfv is C++20 header-only network library, support TCP/SSL/Http/websocket server and client", "homepage": "https://github.com/fawdlstty/libfv", "license": "MIT", "dependencies": [ "asio", "fmt", "gzip-hpp", "nlohmann-json", "openssl", "zlib" ] } ================================================ FILE: ports/fbgemm/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0243f68..bbe98e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,13 +94,12 @@ project(fbgemm VERSION 0.1 LANGUAGES CXX C) include(GNUInstallDirs) # Load Python -find_package(PythonInterp) - -set(FBGEMM_LIBRARY_TYPE "default" - CACHE STRING - "Type of library (shared, static, or default) to build") +if(BUILD_SHARED_LIBS) +set(FBGEMM_LIBRARY_TYPE "shared") +else() +set(FBGEMM_LIBRARY_TYPE "static") +endif() -set_property(CACHE FBGEMM_LIBRARY_TYPE PROPERTY STRINGS default static shared) option(FBGEMM_BUILD_TESTS "Build fbgemm unit tests" ON) option(FBGEMM_BUILD_BENCHMARKS "Build fbgemm benchmarks" ON) option(FBGEMM_BUILD_DOCS "Build fbgemm documentation" OFF) @@ -178,11 +177,12 @@ add_dependencies(fbgemm_autovec defs.bzl) # 2) MSVC uses /MD in default cxx compiling flags, # Need to change it to /MT in static case if(MSVC) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4305 /wd4309 /wd4703 /bigobj") if(FBGEMM_LIBRARY_TYPE STREQUAL "static") target_compile_definitions(fbgemm_generic PRIVATE ASMJIT_STATIC) target_compile_definitions(fbgemm_avx2 PRIVATE ASMJIT_STATIC) target_compile_definitions(fbgemm_avx512 PRIVATE ASMJIT_STATIC) +if(FALSE) foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) @@ -190,6 +190,7 @@ if(MSVC) string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") endif(${flag_var} MATCHES "/MD") endforeach(flag_var) +endif() endif() target_compile_options(fbgemm_avx2 PRIVATE "/arch:AVX2") target_compile_options(fbgemm_avx512 PRIVATE "/arch:AVX512") @@ -199,7 +200,6 @@ if(MSVC) else(MSVC) string(APPEND CMAKE_CXX_FLAGS " -Wall") string(APPEND CMAKE_CXX_FLAGS " -Wextra") - string(APPEND CMAKE_CXX_FLAGS " -Werror") string(APPEND CMAKE_CXX_FLAGS " -Wno-deprecated-declarations") string(APPEND CMAKE_CXX_FLAGS " -Wunknown-pragmas") string(APPEND CMAKE_CXX_FLAGS " -Wimplicit-fallthrough") @@ -247,6 +247,8 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}") message(WARNING "CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}") message(WARNING "==========") +find_package(asmjit CONFIG REQUIRED) # target 'asmjit::asmjit' +add_library(asmjit ALIAS asmjit::asmjit) if(NOT TARGET asmjit) # Download asmjit from github if ASMJIT_SRC_DIR is not specified. if(NOT DEFINED ASMJIT_SRC_DIR) @@ -280,6 +282,8 @@ if(NOT TARGET asmjit) endif() endif() +find_package(cpuinfo CONFIG REQUIRED) # target 'cpuinfo::cpuinfo' +add_library(cpuinfo ALIAS cpuinfo::cpuinfo) if(NOT TARGET cpuinfo) #Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified. if(NOT DEFINED CPUINFO_SOURCE_DIR) @@ -301,26 +305,26 @@ endif() target_include_directories(fbgemm_generic BEFORE PUBLIC $ PUBLIC $ - PRIVATE "${ASMJIT_SRC_DIR}/src" - PRIVATE "${CPUINFO_SOURCE_DIR}/include") +) +target_link_libraries(fbgemm_generic PUBLIC asmjit::asmjit cpuinfo::cpuinfo) target_include_directories(fbgemm_avx2 BEFORE PUBLIC $ PUBLIC $ - PRIVATE "${ASMJIT_SRC_DIR}/src" - PRIVATE "${CPUINFO_SOURCE_DIR}/include") +) +target_link_libraries(fbgemm_avx2 PUBLIC asmjit::asmjit cpuinfo::cpuinfo) target_include_directories(fbgemm_avx512 BEFORE PUBLIC $ PUBLIC $ - PRIVATE "${ASMJIT_SRC_DIR}/src" - PRIVATE "${CPUINFO_SOURCE_DIR}/include") +) +target_link_libraries(fbgemm_avx512 PUBLIC asmjit::asmjit cpuinfo::cpuinfo) target_include_directories(fbgemm_autovec BEFORE PUBLIC $ PUBLIC $ - PRIVATE "${ASMJIT_SRC_DIR}/src" - PRIVATE "${CPUINFO_SOURCE_DIR}/include") +) +target_link_libraries(fbgemm_autovec PUBLIC asmjit::asmjit cpuinfo::cpuinfo) if(FBGEMM_LIBRARY_TYPE STREQUAL "default") add_library(fbgemm @@ -338,6 +342,7 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "shared") set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET fbgemm_autovec PROPERTY POSITION_INDEPENDENT_CODE ON) + set_target_properties(fbgemm PROPERTIES CXX_VISIBILITY_PRESET hidden) elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static") add_library(fbgemm STATIC $ @@ -346,11 +351,11 @@ elseif(FBGEMM_LIBRARY_TYPE STREQUAL "static") $) #MSVC need to define FBGEMM_STATIC for fbgemm_generic also to #avoid generating _dllimport functions. - target_compile_definitions(fbgemm_generic PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm_avx2 PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm_avx512 PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm_autovec PRIVATE FBGEMM_STATIC) - target_compile_definitions(fbgemm PRIVATE FBGEMM_STATIC) + target_compile_definitions(fbgemm_generic PUBLIC FBGEMM_STATIC) + target_compile_definitions(fbgemm_avx2 PUBLIC FBGEMM_STATIC) + target_compile_definitions(fbgemm_avx512 PUBLIC FBGEMM_STATIC) + target_compile_definitions(fbgemm_autovec PUBLIC FBGEMM_STATIC) + target_compile_definitions(fbgemm PUBLIC FBGEMM_STATIC) else() message(FATAL_ERROR "Unsupported library type ${FBGEMM_LIBRARY_TYPE}") endif() @@ -364,20 +369,15 @@ target_include_directories(fbgemm BEFORE PUBLIC $ PUBLIC $) -target_link_libraries(fbgemm - $ - $) -add_dependencies(fbgemm - asmjit - cpuinfo) +target_link_libraries(fbgemm PUBLIC asmjit::asmjit cpuinfo::cpuinfo) if(OpenMP_FOUND) - target_link_libraries(fbgemm OpenMP::OpenMP_CXX) + target_link_libraries(fbgemm PUBLIC OpenMP::OpenMP_CXX) endif() install( TARGETS fbgemm - EXPORT fbgemmLibraryConfig + EXPORT unofficial-fbgemm-config-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) #For windows @@ -387,11 +387,16 @@ install( DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/fbgemm") install( - EXPORT fbgemmLibraryConfig - DESTINATION share/cmake/fbgemm - FILE fbgemmLibraryConfig.cmake) + EXPORT unofficial-fbgemm-config-targets + FILE unofficial-fbgemm-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary) -if(MSVC) +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/fbgemmLibraryConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/fbgemmLibraryConfig.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fbgemmLibrary) + + +if(FALSE) if(FBGEMM_LIBRARY_TYPE STREQUAL "shared") install( FILES $ $ diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..e2e187d --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(asmjit) +find_dependency(cpuinfo) + + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-fbgemm-config-targets.cmake" ) ================================================ FILE: ports/fbgemm/portfile.cmake ================================================ # The project's CMakeLists.txt uses Python to select source files. Check if it is available in advance. vcpkg_find_acquire_program(PYTHON3) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/fbgemm REF 73a64e75ff31be7ece6f68929ee5682b0bf9eb10 SHA512 2757d986a977d14bd32d482452627b55aae216f77a262b2b1b88a643a2977c6c27c5a99ee91b7a7bdbb66248239ecc1a57d1953251049d787317b6355369af26 PATCHES fix-cmakelists.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_SANITIZER=OFF -DFBGEMM_BUILD_TESTS=OFF -DFBGEMM_BUILD_BENCHMARKS=OFF -DPYTHON_EXECUTABLE=${PYTHON3} # inject the path instead of find_package(Python) ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME fbgemmLibrary) # this internal header is required by pytorch file(INSTALL "${SOURCE_PATH}/src/RefImplementations.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/fbgemm/src") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/fbgemm/vcpkg.json ================================================ { "name": "fbgemm", "version": "1.0.0", "port-version": 1, "description": "FB (Facebook) + GEMM (General Matrix-Matrix Multiplication)", "homepage": "https://code.fb.com/ml-applications/fbgemm/", "license": "BSD-3-Clause", "supports": "!arm & !x86 & !uwp", "dependencies": [ "asmjit", "cpuinfo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fbthrift/fix-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f214f5..b45f528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,12 +118,15 @@ endif () # Find required dependencies for thrift/lib if (THRIFT_LIB_ONLY OR build_all) - find_package(Gflags REQUIRED) - find_package(Glog REQUIRED) + find_package(gflags CONFIG REQUIRED) + set(LIBGFLAGS_LIBRARY gflags::gflags) + find_package(glog CONFIG REQUIRED) + set(GLOG_LIBRARIES glog::glog) find_package(fizz CONFIG REQUIRED) find_package(wangle CONFIG REQUIRED) find_package(ZLIB REQUIRED) - find_package(Zstd REQUIRED) + find_package(zstd CONFIG REQUIRED) + set(ZSTD_LIBRARIES zstd::libzstd) find_package(Xxhash REQUIRED) find_package(mvfst CONFIG REQUIRED) # https://cmake.org/cmake/help/v3.9/module/FindThreads.html diff --git a/thrift/cmake/FBThriftConfig.cmake.in b/thrift/cmake/FBThriftConfig.cmake.in index e279485..4dd8bd1 100644 --- a/thrift/cmake/FBThriftConfig.cmake.in +++ b/thrift/cmake/FBThriftConfig.cmake.in @@ -29,9 +29,16 @@ else() set_and_check(FBTHRIFT_COMPILER "@PACKAGE_BIN_INSTALL_DIR@/thrift1") endif() -find_dependency(Xxhash REQUIRED) -find_dependency(ZLIB REQUIRED) -find_package(mvfst CONFIG REQUIRED) +find_dependency(xxHash CONFIG) +find_dependency(ZLIB) +find_dependency(mvfst CONFIG) +find_dependency(fizz CONFIG) +find_dependency(fmt CONFIG) +find_dependency(folly CONFIG) +find_dependency(gflags CONFIG) +find_dependency(glog CONFIG) +find_dependency(wangle CONFIG) +find_dependency(zstd CONFIG) if (NOT TARGET FBThrift::thriftcpp2) include("${FBTHRIFT_CMAKE_DIR}/FBThriftTargets.cmake") ================================================ FILE: ports/fbthrift/fix-fmt-include.patch ================================================ diff --git a/thrift/lib/cpp2/server/RoundRobinRequestPile.h b/thrift/lib/cpp2/server/RoundRobinRequestPile.h index 3a06c5b..bae9387 100644 --- a/thrift/lib/cpp2/server/RoundRobinRequestPile.h +++ b/thrift/lib/cpp2/server/RoundRobinRequestPile.h @@ -21,6 +21,8 @@ #include #include +#include + #include #include #include ================================================ FILE: ports/fbthrift/fix-test.patch ================================================ diff --git a/thrift/lib/cpp2/CMakeLists.txt b/thrift/lib/cpp2/CMakeLists.txt index 439f0814..3374dd34 100644 --- a/thrift/lib/cpp2/CMakeLists.txt +++ b/thrift/lib/cpp2/CMakeLists.txt @@ -15,11 +15,6 @@ # Set the cpp2 directory set(LIB_CPP2_HOME ${CMAKE_CURRENT_SOURCE_DIR}) -if (enable_tests) - add_subdirectory(protocol/test) -endif () -add_subdirectory(test) - ####### # CMAKE variables only have local/subdirectory scope # So even though this is defined in ../thrift/CMakeLists.txt as a variable ================================================ FILE: ports/fbthrift/folly-has-liburing.diff ================================================ diff --git a/thrift/lib/cpp2/security/SSLUtil.cpp b/thrift/lib/cpp2/security/SSLUtil.cpp index 571ffef..8803f37 100644 --- a/thrift/lib/cpp2/security/SSLUtil.cpp +++ b/thrift/lib/cpp2/security/SSLUtil.cpp @@ -144,7 +144,7 @@ folly::AsyncSocketTransport::UniquePtr toFDSocket( auto sock = fizzSock->template getUnderlyingTransport(); folly::AsyncSocketTransport::UniquePtr ret; -#if defined(__linux__) && __has_include() +#if defined(__linux__) && FOLLY_HAS_LIBURING if (!sock && fizzSock->template getUnderlyingTransport()) { // `AsyncFdSocket` currently lacks uring support, so hardcode `AsyncSocket` ================================================ FILE: ports/fbthrift/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/fbthrift REF "v${VERSION}" SHA512 32f2a648496a321b6aaf55197c2dc1412d030ca82f8d8a5ca0516379379a0f71dc17e2edcb2be3972f76603935c7dcae29769c067caa1ec8a33e7f4efb251581 HEAD_REF main PATCHES fix-deps.patch folly-has-liburing.diff fix-fmt-include.patch ) file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindGMock.cmake") file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindOpenSSL.cmake") file(REMOVE "${SOURCE_PATH}/thrift/cmake/FindZstd.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-Dthriftpy=OFF" "-Denable_tests=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fbthrift) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # There should be no empty directories in vcpkg/packages/fbthrift_x64-linux file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/thrift/common/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/transport/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp/util/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/async/metadata/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/debug_thrift_data_difference/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/detail/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/dynamic/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/folly_dynamic/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/frozen/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/patch/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/detail/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/protocol/tool" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/demo" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/reflection/docs" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/runtime/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/schema/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/extensions/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/security/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/server/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/core/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/common/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/server/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/http2/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/inmemory/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/client/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/compression/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/core/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/framing/parser/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/payload/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/transport/rocket/server/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/gtest/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/util/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/cpp2/visitation/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/benchmark" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/py3/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/any/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/benchmark" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/capi/benchmark" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/conformance/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/server/interceptor/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/server/test" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/adapters" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/cpp_conversion" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/python/test/request_context_extractor" "${CURRENT_PACKAGES_DIR}/include/thrift/lib/thrift/annotation" ) vcpkg_copy_tools(TOOL_NAMES thrift1 AUTO_CLEAN) vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake" "${PACKAGE_PREFIX_DIR}/lib/cmake/fbthrift" "${PACKAGE_PREFIX_DIR}/share/fbthrift") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake" "${PACKAGE_PREFIX_DIR}/bin/thrift1.exe" "${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1.exe") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftConfig.cmake" "${PACKAGE_PREFIX_DIR}/bin/thrift1" "${PACKAGE_PREFIX_DIR}/tools/fbthrift/thrift1") endif() # Only used internally and removed in master vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fbthrift/FBThriftTargets.cmake" "LOCATION_HH=\\\"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/thrift/compiler/location.hh\\\"" "" IGNORE_UNCHANGED) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fbthrift/vcpkg.json ================================================ { "name": "fbthrift", "version-string": "2026.02.23.00", "description": "Facebook's branch of Apache Thrift, including a new C++ server.", "homepage": "https://github.com/facebook/fbthrift", "license": "Apache-2.0", "supports": "x64 & static", "dependencies": [ "boost-context", "boost-filesystem", "boost-program-options", "boost-regex", "boost-system", "boost-thread", "fizz", "fmt", "folly", "gflags", "glog", "mvfst", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wangle", "xxhash", "zlib", "zstd" ] } ================================================ FILE: ports/fcl/0001-fix-cxx-standard.patch ================================================ diff --git a/CMakeModules/CompilerSettings.cmake b/CMakeModules/CompilerSettings.cmake index 96b9e1f..645ca38 100644 --- a/CMakeModules/CompilerSettings.cmake +++ b/CMakeModules/CompilerSettings.cmake @@ -33,7 +33,7 @@ # GCC if(CMAKE_COMPILER_IS_GNUCXX) - add_definitions(-std=c++11 -W -Wall -Wextra -Wpedantic) + add_definitions(-W -Wall -Wextra -Wpedantic) if(FCL_TREAT_WARNINGS_AS_ERRORS) add_definitions(-Werror) endif() @@ -41,7 +41,7 @@ endif() # Clang if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - add_definitions(-std=c++11 -W -Wall -Wextra) + add_definitions(-W -Wall -Wextra) if(FCL_TREAT_WARNINGS_AS_ERRORS) add_definitions(-Werror) endif() @@ -53,7 +53,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1) message(FATAL_ERROR "AppleClang version must be at least 6.1!") endif() - add_definitions(-std=c++11 -W -Wall -Wextra) + add_definitions(-W -Wall -Wextra) if(FCL_TREAT_WARNINGS_AS_ERRORS) add_definitions(-Werror) endif() @@ -77,7 +77,7 @@ else() set(IS_ICPC 0) endif() if(IS_ICPC) - add_definitions(-std=c++11 -wd191 -wd411 -wd654 -wd1125 -wd1292 -wd1565 -wd1628 -wd2196) + add_definitions(-wd191 -wd411 -wd654 -wd1125 -wd1292 -wd1565 -wd1628 -wd2196) set(CMAKE_AR "xiar" CACHE STRING "Intel archiver" FORCE) set(CMAKE_CXX_FLAGS "-pthread" CACHE STRING "Default compile flags" FORCE) set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG" @@ -97,7 +97,7 @@ else() set(IS_XLC 0) endif() if(IS_XLC) - add_definitions(-std=c++11 -qpic -q64 -qmaxmem=-1) + add_definitions(-qpic -q64 -qmaxmem=-1) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -q64") set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -q64") endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 425724e..c065b3f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,6 +47,8 @@ else() add_library(${PROJECT_NAME} SHARED ${FCL_HEADERS} ${FCL_SOURCE_CODE}) endif() +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_14) + # Be sure to pass to the consumer the set of SIMD used in the compilation target_compile_options(${PROJECT_NAME} PUBLIC ${SSE_FLAGS}) ================================================ FILE: ports/fcl/0002-fix-eigen3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d03ebe3..f5e4ca9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -157,11 +157,11 @@ set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) # # If Eigen3 is not found, manually set the cache variable EIGEN3_INCLUDE_DIR #=============================================================================== -find_package(Eigen3 3.0.5 QUIET CONFIG) +find_package(Eigen3 QUIET CONFIG) # If Eigen3Config.cmake is not found, use the FindEigen3.cmake module if(NOT Eigen3_FOUND) - find_package(Eigen3 3.0.5 QUIET MODULE) + find_package(Eigen3 QUIET MODULE) set(Eigen3_FOUND ON) endif() ================================================ FILE: ports/fcl/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flexible-collision-library/fcl REF a3fbc9fe4f619d7bb1117dc137daa497d2de454b # unrelased (Mar 13, 2025) SHA512 d04db55768d27cd191cf72ee3cc7ffeb5164c0d5db8bd38eb8ed523846e205340947f0b64473d567db0bc56bf8e8da330dc6e5e2929066e6d0f512fd5a7cbd92 HEAD_REF master PATCHES 0001-fix-cxx-standard.patch 0002-fix-eigen3.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FCL_STATIC_LIBRARY) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(FCL_USE_X64_SSE ON) else() set(FCL_USE_X64_SSE OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=1 -DCMAKE_REQUIRE_FIND_PACKAGE_Eigen3=1 -DCMAKE_REQUIRE_FIND_PACKAGE_ccd=1 -DCMAKE_REQUIRE_FIND_PACKAGE_octomap=1 -DFCL_STATIC_LIBRARY=${FCL_STATIC_LIBRARY} -DFCL_USE_X64_SSE=${FCL_USE_X64_SSE} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fcl) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fcl/vcpkg.json ================================================ { "name": "fcl", "version": "0.7.0", "port-version": 5, "description": "A library for performing three types of proximity queries on a pair of geometric models composed of triangles", "homepage": "https://github.com/flexible-collision-library/fcl", "dependencies": [ "ccd", "eigen3", "octomap", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fdk-aac/cmake_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cc40c55..072838b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,16 +103,10 @@ set(AACDEC_SRC libAACdec/src/block.h libAACdec/src/channel.h libAACdec/src/channelinfo.h - libAACdec/src/conceal.h - libAACdec/src/conceal_types.h libAACdec/src/FDK_delay.h libAACdec/src/ldfiltbank.h libAACdec/src/overlapadd.h libAACdec/src/pulsedata.h - libAACdec/src/rvlc.h - libAACdec/src/rvlc_info.h - libAACdec/src/rvlcbit.h - libAACdec/src/rvlcconceal.h libAACdec/src/stereo.h ) ================================================ FILE: ports/fdk-aac/cxx-linkage-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4db8c7e..da3297c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -528,6 +528,15 @@ if(FDK_AAC_INSTALL_PKGCONFIG_MODULE) set(LIBS_PUBLIC "-lm") endif() endif() + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() configure_file(fdk-aac.pc.in fdk-aac.pc @ONLY) install( FILES ================================================ FILE: ports/fdk-aac/portfile.cmake ================================================ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES FEATURES he-aac HE_AAC ) set(legal_notes "NOTICE") if(HE_AAC) vcpkg_from_github( REPO mstorsjo/fdk-aac REF "v${VERSION}" SHA512 f8ea7abe83e6e138dac4a06f195bdf870bca93137bdaea6f5d85f266f3659b4a1b54da3b4c02a1eba3a134d9d19dcf89908cfbed4bbcab8550e114e84c333779 HEAD_REF master OUT_SOURCE_PATH SOURCE_PATH PATCHES cxx-linkage-pkgconfig.patch ) else() list(PREPEND legal_notes "README.fedora") vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ REPO wtaymans/fdk-aac-stripped REF 9896ddc0d08bb3f764f01d5e372bec1c068ad8f5 # corresponds to v2.0.3 tag in mstorsjo/fdk-aac GitHub repository HEAD_REF stripped5 SHA512 af19608d54a32a153f8b11f7a92d6c41f0eab890426fa03aad0a68961402ebc6a85f97fae2d64bdfa25c3ba4553eaafab78abfbaf8542291c48bbba9333d8e9b OUT_SOURCE_PATH SOURCE_PATH PATCHES cxx-linkage-pkgconfig.patch cmake_fix.patch # Some files were removed in 2fc6d97f7881816969caab88015688ecb0cea7d0, but CMakeFile adjustment was incomplete ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PROGRAMS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") list(TRANSFORM legal_notes PREPEND "${SOURCE_PATH}/") vcpkg_install_copyright(FILE_LIST ${legal_notes}) ================================================ FILE: ports/fdk-aac/vcpkg.json ================================================ { "name": "fdk-aac", "version-semver": "2.0.3", "description": "A standalone Third-Party Modified Version of the Fraunhofer FDK AAC Codec Library for Android. Uses a fork without HE-AAC, HE-AACv2, or xHE-AAC support to avoid patent licensing and GPL compatibility issues when built without the he-aac option.", "homepage": "https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped", "license": "FDK-AAC", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "he-aac": { "description": "Support patent-encumbered HE-AAC, HE-AACv2, and xHE-AAC codec profiles. Do not distribute binaries with this option without the relevant patent licenses if you are in a jurisdiction that recognizes software patents. Might not be compatible with the GPL depending on legal interpretation. Refer to https://bugzilla.redhat.com/show_bug.cgi?id=1501522#c112", "supports": "!android" } } } ================================================ FILE: ports/fdlibm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(fdlibm C) file(GLOB fdlibm_SOURCES "*.c") include_directories(".") if(WIN32) set(fdlibm_SOURCES ${fdlibm_SOURCES} libm5.def) endif() add_library(fdlibm ${fdlibm_SOURCES}) install( TARGETS fdlibm RUNTIME DESTINATION bin LIBRARY DESTINATION lib/manual-link ARCHIVE DESTINATION lib/manual-link ) if(NOT DISABLE_INSTALL_HEADERS) install( FILES fdlibm.h DESTINATION include ) endif() ================================================ FILE: ports/fdlibm/libm5.def ================================================ EXPORTS __ieee754_acos @ 1 ; __ieee754_acosh @ 2 ; __ieee754_asin @ 3 ; __ieee754_atan2 @ 4 ; __ieee754_atanh @ 5 ; __ieee754_cosh @ 6 ; __ieee754_exp @ 7 ; __ieee754_fmod @ 8 ; __ieee754_gamma @ 9 ; __ieee754_gamma_r @ 10 ; __ieee754_hypot @ 11 ; __ieee754_j0 @ 12 ; __ieee754_j1 @ 13 ; __ieee754_jn @ 14 ; __ieee754_lgamma @ 15 ; __ieee754_lgamma_r @ 16 ; __ieee754_log @ 17 ; __ieee754_log10 @ 18 ; __ieee754_pow @ 19 ; __ieee754_rem_pio2 @ 20 ; __ieee754_remainder @ 21 ; __ieee754_scalb @ 22 ; __ieee754_sinh @ 23 ; __ieee754_sqrt @ 24 ; __ieee754_y0 @ 25 ; __ieee754_y1 @ 26 ; __ieee754_yn @ 27 ; __kernel_cos @ 28 ; __kernel_rem_pio2 @ 29 ; __kernel_sin @ 30 ; __kernel_standard @ 31 ; __kernel_tan @ 32 ; _fdlib_version @ 33 DATA ; acos @ 34 ; acosh @ 35 ; asin @ 36 ; asinh @ 37 ; atan @ 38 ; atan2 @ 39 ; atanh @ 40 ; cbrt @ 41 ; ceil @ 42 ; copysign @ 43 ; cos @ 44 ; cosh @ 45 ; erf @ 46 ; erfc @ 47 ; exp @ 48 ; expm1 @ 49 ; fabs @ 50 ; ieee_finite @ 51 ; floor @ 52 ; fmod @ 53 ; frexp @ 54 ; ieee_gamma @ 55 ; ieee_gamma_r @ 56 ; hypot @ 57 ; ilogb @ 58 ; ieee_isnan @ 59 ; j0 @ 60 ; j1 @ 61 ; jn @ 62 ; ldexp @ 63 ; ieee_lgamma @ 64 ; ieee_lgamma_r @ 65 ; log @ 66 ; log10 @ 67 ; log1p @ 68 ; logb @ 69 ; ieee_matherr @ 70 ; modf @ 71 ; nextafter @ 72 ; pow @ 73 ; remainder @ 74 ; rint @ 75 ; ieee_scalb @ 76 ; scalbn @ 77 ; signgam @ 78 DATA ; ieee_significand @ 79 ; sin @ 80 ; sinh @ 81 ; sqrt @ 82 ; tan @ 83 ; tanh @ 84 ; y0 @ 85 ; y1 @ 86 ; yn @ 87 ; ================================================ FILE: ports/fdlibm/portfile.cmake ================================================ vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://android.googlesource.com/platform/external/fdlibm REF 59f7335e4dd8275a7dc2f8aeb4fd00758fde37ac ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/libm5.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Handle copyright configure_file("${SOURCE_PATH}/NOTICE" "${CURRENT_PACKAGES_DIR}/share/fdlibm/copyright" COPYONLY) ================================================ FILE: ports/fdlibm/vcpkg.json ================================================ { "name": "fdlibm", "version": "5.3", "port-version": 7, "description": "FDLIBM (Freely Distributable LIBM) is a C math library for machines that support IEEE 754 floating-point arithmetic", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fenster/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zserge/fenster REF 92aa0ecd30f1c1c8175d72042c319268568434fb SHA512 2909afe3d5cab88c4353e2632d05b2ff196fb21ebb9789ccb851e328961836b4b5d5eca80843c38e7924ef48ff02106fc4f06ebe5ffe71f71b5bbbb4dad229b9 HEAD_REF main ) file(COPY "${SOURCE_PATH}/fenster.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/fenster_audio.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fenster/vcpkg.json ================================================ { "name": "fenster", "version-date": "2024-08-19", "description": "The most minimal cross-platform GUI library", "homepage": "https://github.com/zserge/fenster", "license": "MIT" } ================================================ FILE: ports/ffmpeg/0001-create-lib-libraries.patch ================================================ diff --git a/configure b/configure index 1f0b9497cb..3243e23021 100644 --- a/configure +++ b/configure @@ -5697,17 +5697,19 @@ case $target_os in ;; win32|win64) disable symver - if enabled shared; then +# if enabled shared; then # Link to the import library instead of the normal static library # for shared libs. LD_LIB='%.lib' # Cannot build both shared and static libs with MSVC or icl. - disable static - fi +# disable static +# fi ! enabled small && test_cmd $windres --version && enable gnu_windres enabled x86_32 && check_ldflags -LARGEADDRESSAWARE add_cppflags -DWIN32_LEAN_AND_MEAN shlibdir_default="$bindir_default" + LIBPREF="" + LIBSUF=".lib" SLIBPREF="" SLIBSUF=".dll" SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)' ================================================ FILE: ports/ffmpeg/0002-fix-msvc-link.patch ================================================ diff --git a/configure b/configure --- a/configure +++ b/configure @@ -6162,6 +6162,7 @@ EOF test -n "$extern_prefix" && append X86ASMFLAGS "-DPREFIX" case "$objformat" in elf*) enabled debug && append X86ASMFLAGS $x86asm_debug ;; + win*) enabled debug && append X86ASMFLAGS "-g" ;; esac enabled avx512 && check_x86asm avx512_external "vmovdqa32 [eax]{k1}{z}, zmm0" ================================================ FILE: ports/ffmpeg/0003-fix-windowsinclude.patch ================================================ diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c --- a/fftools/cmdutils.c +++ b/fftools/cmdutils.c @@ -51,6 +51,8 @@ #include "fopen_utf8.h" #include "opt_common.h" #ifdef _WIN32 +#define _WIN32_WINNT 0x0502 +#define WIN32_LEAN_AND_MEAN #include #include "compat/w32dlfcn.h" #endif ================================================ FILE: ports/ffmpeg/0004-dependencies.patch ================================================ diff --git a/configure b/configure index 4a9534a..1f0cb43 100644 --- a/configure +++ b/configure @@ -6973,7 +6973,7 @@ fi enabled zlib && { check_pkg_config zlib zlib "zlib.h" zlibVersion || check_lib zlib zlib.h zlibVersion -lz; } -enabled bzlib && check_lib bzlib bzlib.h BZ2_bzlibVersion -lbz2 +enabled bzlib && require_pkg_config bzlib bzip2 bzlib.h BZ2_bzlibVersion enabled lzma && check_lib lzma lzma.h lzma_version_number -llzma enabled zlib && test_exec $zlib_extralibs <= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs +enabled libmp3lame && { check_lib libmp3lame lame/lame.h lame_set_VBR_quality -lmp3lame $libm_extralibs || + require libmp3lame lame/lame.h lame_set_VBR_quality -llibmp3lame-static -llibmpghip-static $libm_extralibs; } enabled libmysofa && { check_pkg_config libmysofa libmysofa mysofa.h mysofa_neighborhood_init_withstepdefine || require libmysofa mysofa.h mysofa_neighborhood_init_withstepdefine -lmysofa $zlib_extralibs; } enabled libnpp && { check_lib libnpp npp.h nppGetLibVersion -lnppig -lnppicc -lnppc -lnppidei -lnppif || @@ -7125,7 +7126,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && enabled libopenh264 && require_pkg_config libopenh264 "openh264 >= 1.3.0" wels/codec_api.h WelsGetCodecVersion enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } -enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" +enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create enabled libopenvino && { { check_pkg_config libopenvino openvino openvino/c/openvino.h ov_core_create && enable openvino2; } || { check_pkg_config libopenvino openvino c_api/ie_c_api.h ie_c_api_version || require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engine_c_api; } } @@ -7151,8 +7152,8 @@ enabled libshaderc && require_pkg_config spirv_compiler "shaderc >= 2019. enabled libshine && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer enabled libsmbclient && { check_pkg_config libsmbclient smbclient libsmbclient.h smbc_init || require libsmbclient libsmbclient.h smbc_init -lsmbclient; } -enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++ -enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr +enabled libsnappy && require_pkg_config libsnappy snappy snappy-c.h snappy_compress +enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr $libm_extralibs enabled libssh && require_pkg_config libssh "libssh >= 0.6.0" libssh/sftp.h sftp_init enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init enabled libsrt && require_pkg_config libsrt "srt >= 1.3.0" srt/srt.h srt_socket @@ -7246,6 +7247,8 @@ enabled openal && { check_pkg_config openal "openal >= 1.1" "AL/al.h" enabled opencl && { check_pkg_config opencl OpenCL CL/cl.h clEnqueueNDRangeKernel || check_lib opencl OpenCL/cl.h clEnqueueNDRangeKernel "-framework OpenCL" || check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL || + check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL -lAdvapi32 -lOle32 -lCfgmgr32|| + check_lib opencl CL/cl.h clEnqueueNDRangeKernel -lOpenCL -pthread -ldl || die "ERROR: opencl not found"; } && { test_cpp_condition "OpenCL/cl.h" "defined(CL_VERSION_1_2)" || test_cpp_condition "CL/cl.h" "defined(CL_VERSION_1_2)" || @@ -7578,10 +7581,10 @@ enabled amf && "(AMF_VERSION_MAJOR << 48 | AMF_VERSION_MINOR << 32 | AMF_VERSION_RELEASE << 16 | AMF_VERSION_BUILD_NUM) >= 0x0001000400240000" # Funny iconv installations are not unusual, so check it after all flags have been set -if enabled libc_iconv; then +if enabled libc_iconv && disabled iconv; then check_func_headers iconv.h iconv elif enabled iconv; then - check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv + check_func_headers iconv.h iconv || check_lib iconv iconv.h iconv -liconv || check_lib iconv iconv.h iconv -liconv -lcharset fi enabled debug && add_cflags -g"$debuglevel" && add_asflags -g"$debuglevel" ================================================ FILE: ports/ffmpeg/0005-fix-nasm.patch ================================================ diff --git a/libavcodec/x86/apv_dsp.asm b/libavcodec/x86/apv_dsp.asm index 60e0f03..12668d3 100644 --- a/libavcodec/x86/apv_dsp.asm +++ b/libavcodec/x86/apv_dsp.asm @@ -18,7 +18,10 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 +%ifn ARCH_X86_64 +SECTION .rdata +apv_dsp_placeholder: times 4 db 0 +%else SECTION_RODATA 32 diff --git a/libavcodec/x86/mlpdsp.asm b/libavcodec/x86/mlpdsp.asm index 3dc641e..609b834 100644 --- a/libavcodec/x86/mlpdsp.asm +++ b/libavcodec/x86/mlpdsp.asm @@ -23,7 +23,9 @@ SECTION .text -%if ARCH_X86_64 +%ifn ARCH_X86_64 +mlpdsp_placeholder: times 4 db 0 +%else %macro SHLX 2 %if cpuflag(bmi2) diff --git a/libavcodec/x86/proresdsp.asm b/libavcodec/x86/proresdsp.asm index 65c9fad..5ad73f3 100644 --- a/libavcodec/x86/proresdsp.asm +++ b/libavcodec/x86/proresdsp.asm @@ -24,7 +24,10 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 +%ifn ARCH_X86_64 +SECTION .rdata +proresdsp_placeholder: times 4 db 0 +%else SECTION_RODATA diff --git a/libavcodec/x86/vp9itxfm_16bpp_avx512.asm b/libavcodec/x86/vp9itxfm_16bpp_avx512.asm index 1924233..17a0ce4 100644 --- a/libavcodec/x86/vp9itxfm_16bpp_avx512.asm +++ b/libavcodec/x86/vp9itxfm_16bpp_avx512.asm @@ -22,7 +22,10 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 && HAVE_AVX512ICL_EXTERNAL +%ifn ARCH_X86_64 && HAVE_AVX512ICL_EXTERNAL +SECTION .rdata +vp9itxfm_16bpp_avx512_placeholder: times 4 db 0 +%else SECTION_RODATA 64 diff --git a/libavcodec/x86/vp9itxfm_avx512.asm b/libavcodec/x86/vp9itxfm_avx512.asm index d51c507..1f16ba2 100644 --- a/libavcodec/x86/vp9itxfm_avx512.asm +++ b/libavcodec/x86/vp9itxfm_avx512.asm @@ -22,7 +22,10 @@ %include "libavutil/x86/x86util.asm" -%if ARCH_X86_64 && HAVE_AVX512ICL_EXTERNAL +%ifn ARCH_X86_64 && HAVE_AVX512ICL_EXTERNAL +SECTION .rdata +vp9itxfm_avx512_placeholder: times 4 db 0 +%else SECTION_RODATA 64 diff --git a/libavcodec/x86/vvc/mc.asm b/libavcodec/x86/vvc/mc.asm index 30aa97c..3975f98 100644 --- a/libavcodec/x86/vvc/mc.asm +++ b/libavcodec/x86/vvc/mc.asm @@ -31,7 +31,9 @@ SECTION_RODATA 32 -%if ARCH_X86_64 +%ifn ARCH_X86_64 +vvc_mc_placeholder: times 4 db 0 +%else %if HAVE_AVX2_EXTERNAL diff --git a/libavfilter/x86/vf_atadenoise.asm b/libavfilter/x86/vf_atadenoise.asm index 4945ad3..748b65a 100644 --- a/libavfilter/x86/vf_atadenoise.asm +++ b/libavfilter/x86/vf_atadenoise.asm @@ -20,7 +20,10 @@ ;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ;****************************************************************************** -%if ARCH_X86_64 +%ifn ARCH_X86_64 +SECTION .rdata +vf_atadenoise_placeholder: times 4 db 0 +%else %include "libavutil/x86/x86util.asm" diff --git a/libavfilter/x86/vf_nlmeans.asm b/libavfilter/x86/vf_nlmeans.asm index 8f57801..9aef3a4 100644 --- a/libavfilter/x86/vf_nlmeans.asm +++ b/libavfilter/x86/vf_nlmeans.asm @@ -21,7 +21,10 @@ %include "libavutil/x86/x86util.asm" -%if HAVE_AVX2_EXTERNAL && ARCH_X86_64 +%ifn HAVE_AVX2_EXTERNAL && ARCH_X86_64 +SECTION .rdata +vf_nlmeans_placeholder: times 4 db 0 +%else SECTION_RODATA 32 ================================================ FILE: ports/ffmpeg/0007-fix-lib-naming.patch ================================================ diff --git a/configure b/configure index d6c4388..75b96c3 100644 --- a/configure +++ b/configure @@ -4781,6 +4781,7 @@ msvc_common_flags(){ -mfp16-format=*) ;; -lz) echo zlib.lib ;; -lx264) echo libx264.lib ;; + -lmp3lame) echo libmp3lame.lib ;; -lstdc++) ;; -l*) echo ${flag#-l}.lib ;; -LARGEADDRESSAWARE) echo $flag ;; ================================================ FILE: ports/ffmpeg/0013-define-WINVER.patch ================================================ diff --color -Naur src_old/libavcodec/mf_utils.c src/libavcodec/mf_utils.c --- src_old/libavcodec/mf_utils.c 2020-07-11 05:26:17.000000000 +0700 +++ src/libavcodec/mf_utils.c 2020-11-13 12:55:57.226976400 +0700 @@ -22,6 +22,11 @@ #define _WIN32_WINNT 0x0602 #endif +#if !defined(WINVER) || WINVER < 0x0602 +#undef WINVER +#define WINVER 0x0602 +#endif + #include "mf_utils.h" #include "libavutil/pixdesc.h" ================================================ FILE: ports/ffmpeg/0020-fix-aarch64-libswscale.patch ================================================ diff --git a/libswscale/aarch64/yuv2rgb_neon.S b/libswscale/aarch64/yuv2rgb_neon.S index 89d69e7f6c..4bc1607a7a 100644 --- a/libswscale/aarch64/yuv2rgb_neon.S +++ b/libswscale/aarch64/yuv2rgb_neon.S @@ -169,19 +169,19 @@ function ff_\ifmt\()_to_\ofmt\()_neon, export=1 sqdmulh v26.8h, v26.8h, v0.8h // ((Y1*(1<<3) - y_offset) * y_coeff) >> 15 sqdmulh v27.8h, v27.8h, v0.8h // ((Y2*(1<<3) - y_offset) * y_coeff) >> 15 -.ifc \ofmt,argb // 1 2 3 0 +.ifc \ofmt,argb compute_rgba v5.8b,v6.8b,v7.8b,v4.8b, v17.8b,v18.8b,v19.8b,v16.8b .endif -.ifc \ofmt,rgba // 0 1 2 3 +.ifc \ofmt,rgba compute_rgba v4.8b,v5.8b,v6.8b,v7.8b, v16.8b,v17.8b,v18.8b,v19.8b .endif -.ifc \ofmt,abgr // 3 2 1 0 +.ifc \ofmt,abgr compute_rgba v7.8b,v6.8b,v5.8b,v4.8b, v19.8b,v18.8b,v17.8b,v16.8b .endif -.ifc \ofmt,bgra // 2 1 0 3 +.ifc \ofmt,bgra compute_rgba v6.8b,v5.8b,v4.8b,v7.8b, v18.8b,v17.8b,v16.8b,v19.8b .endif ================================================ FILE: ports/ffmpeg/0024-fix-osx-host-c11.patch ================================================ diff --git a/configure b/configure index 4f5353f84b..dd9147c677 100755 --- a/configure +++ b/configure @@ -5607,8 +5607,8 @@ check_cppflags -D_FILE_OFFSET_BITS=64 check_cppflags -D_LARGEFILE_SOURCE add_host_cppflags -D_ISOC11_SOURCE check_host_cflags_cc -std=$stdc ctype.h "__STDC_VERSION__ >= 201112L" || - check_host_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L" || die "Host compiler lacks C11 support" + check_host_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L" check_host_cflags -Wall check_host_cflags $host_cflags_speed ================================================ FILE: ports/ffmpeg/0040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch ================================================ diff --git a/libavformat/avformat.h b/libavformat/avformat.h index cd7b0d941c..b4a6dce885 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -1169,7 +1169,11 @@ typedef struct AVStreamGroup { } AVStreamGroup; struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); +// Chromium: We use the internal field first_dts vvv +int64_t av_stream_get_first_dts(const AVStream *st); +// Chromium: We use the internal field first_dts ^^^ + #define AV_PROGRAM_RUNNING 1 /** diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c index de7580c32d..0ef0fe530e 100644 --- a/libavformat/mux_utils.c +++ b/libavformat/mux_utils.c @@ -29,7 +29,14 @@ #include "avformat.h" #include "avio.h" #include "internal.h" #include "mux.h" +// Chromium: We use the internal field first_dts vvv +int64_t av_stream_get_first_dts(const AVStream *st) +{ + return cffstream(st)->first_dts; +} +// Chromium: We use the internal field first_dts ^^^ + int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id, int std_compliance) { ================================================ FILE: ports/ffmpeg/0042-fix-arm64-linux.patch ================================================ diff --git a/ffbuild/libversion.sh b/ffbuild/libversion.sh index a94ab58..ecaa90c 100644 --- a/ffbuild/libversion.sh +++ b/ffbuild/libversion.sh @@ -1,3 +1,4 @@ +#!/bin/sh toupper(){ echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ } ================================================ FILE: ports/ffmpeg/0044-fix-vulkan-debug-callback-abi.patch ================================================ diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index 6317ab7d0e..f1f70e9b96 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -453,7 +453,7 @@ static const VulkanOptExtension optional_device_exts[] = { { VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_AV1 }, }; -static VkBool32 VKAPI_CALL vk_dbg_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, +static VKAPI_ATTR VkBool32 VKAPI_CALL vk_dbg_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *data, void *priv) ================================================ FILE: ports/ffmpeg/0045-use-prebuilt-bin2c.patch ================================================ diff --git a/ffbuild/common.mak b/ffbuild/common.mak index ddf4892..7d9f311 100644 --- a/ffbuild/common.mak +++ b/ffbuild/common.mak @@ -12,8 +12,7 @@ endif ifndef SUBDIR -BIN2CEXE = ffbuild/bin2c$(HOSTEXESUF) -BIN2C = $(BIN2CEXE) +BIN2C = bin2c ifndef V Q = @ @@ -112,9 +111,6 @@ COMPILE_LASX = $(call COMPILE,CC,LASXFLAGS) %.h.c: $(Q)echo '#include "$*.h"' >$@ -$(BIN2CEXE): ffbuild/bin2c_host.o - $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS) - %.metal.air: %.metal $(METALCC) $< -o $@ ================================================ FILE: ports/ffmpeg/0046-fix-msvc-detection.patch ================================================ diff --git a/configure b/configure index e8cce5d..d465a53 100644 --- a/configure +++ b/configure @@ -5178,12 +5178,12 @@ probe_cc(){ _flags_filter=msvc_flags_link _ld_lib='lib%.a' _ld_path='-libpath:' - elif VSLANG=1033 $_cc -nologo- 2>&1 | grep -q ^Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then + elif VSLANG=1033 $_cc -nologo- 2>&1 | grep -qi Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then _type=msvc - if VSLANG=1033 $_cc -nologo- 2>&1 | grep -q ^Microsoft; then + if VSLANG=1033 $_cc -nologo- 2>&1 | grep -qi Microsoft; then # Depending on the tool (cl.exe or link.exe), the version number # is printed on the first line of stderr or stdout - _ident=$(VSLANG=1033 $_cc 2>&1 | grep ^Microsoft | head -n1 | tr -d '\r') + _ident=$(VSLANG=1033 $_cc 2>&1 | grep -i Microsoft | head -n1 | tr -d '\r') else _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r') fi @@ -5293,7 +5293,7 @@ if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then DEPCCFLAGS=$_flags fi -if VSLANG=1033 $ar 2>&1 | grep -q ^Microsoft; then +if VSLANG=1033 $ar 2>&1 | grep -qi Microsoft; then arflags="-nologo" ar_o='-out:$@' elif $ar 2>&1 | grep -q "\[D\] "; then ================================================ FILE: ports/ffmpeg/FindFFMPEG.cmake.in ================================================ # Distributed under the OSI-approved BSD 3-Clause License. # #.rst: # FindFFMPEG # -------- # # Find the FFPMEG libraries # # Result Variables # ^^^^^^^^^^^^^^^^ # # The following variables will be defined: # # ``FFMPEG_FOUND`` # True if FFMPEG found on the local system # # ``FFMPEG_INCLUDE_DIRS`` # Location of FFMPEG header files # # ``FFMPEG_LIBRARY_DIRS`` # Location of FFMPEG libraries # # ``FFMPEG_LIBRARIES`` # List of the FFMPEG libraries found # # include(FindPackageHandleStandardArgs) include(SelectLibraryConfigurations) include(CMakeFindDependencyMacro) if(NOT FFMPEG_FOUND) # Compute the installation path relative to this file. get_filename_component(SEARCH_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(SEARCH_PATH "${SEARCH_PATH}" PATH) get_filename_component(SEARCH_PATH "${SEARCH_PATH}" PATH) if(SEARCH_PATH STREQUAL "/") set(SEARCH_PATH "") endif() set(FFMPEG_VERSION "@FFMPEG_VERSION@") function(append_dependencies out) cmake_parse_arguments(PARSE_ARGV 1 "arg" "DEBUG" "NAMES" "") if(${arg_DEBUG}) set(config DEBUG) set(path "${SEARCH_PATH}/debug/lib/") else() set(config RELEASE) set(path "${SEARCH_PATH}/lib/") endif() if("${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}" STREQUAL "") enable_language(CXX) endif() set(pass_through ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} advapi32 bcrypt crypt32 gdi32 mfuuid ole32 oleaut32 psapi secur32 shlwapi strmiids user32 uuid vfw32 ws2_32 usp10 cfgmgr32 rpcrt4 -pthread -pthreads pthread atomic m ) cmake_policy(SET CMP0057 NEW) foreach(lib_name IN LISTS arg_NAMES) if(lib_name IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) continue() # implicit even for C elseif(lib_name IN_LIST pass_through) list(APPEND ${out} "${lib_name}") elseif(EXISTS "${lib_name}") list(APPEND ${out} "${lib_name}") else() # first look in ${path} specifically to ensure we find the right release/debug variant find_library(FFMPEG_DEPENDENCY_${lib_name}_${config} NAMES "${lib_name}" PATHS "${path}" NO_DEFAULT_PATH) # if not found there, must be a system dependency, so look elsewhere find_library(FFMPEG_DEPENDENCY_${lib_name}_${config} NAMES "${lib_name}" REQUIRED) list(APPEND ${out} "${FFMPEG_DEPENDENCY_${lib_name}_${config}}") endif() endforeach() set("${out}" "${${out}}" PARENT_SCOPE) endfunction() macro(FFMPEG_FIND varname shortname headername) if(NOT FFMPEG_${varname}_INCLUDE_DIRS) find_path(FFMPEG_${varname}_INCLUDE_DIRS NAMES lib${shortname}/${headername} ${headername} PATHS ${SEARCH_PATH}/include NO_DEFAULT_PATH) endif() if(NOT FFMPEG_${varname}_LIBRARY) find_library(FFMPEG_${varname}_LIBRARY_RELEASE NAMES ${shortname} PATHS ${SEARCH_PATH}/lib/ NO_DEFAULT_PATH) find_library(FFMPEG_${varname}_LIBRARY_DEBUG NAMES ${shortname}d ${shortname} PATHS ${SEARCH_PATH}/debug/lib/ NO_DEFAULT_PATH) get_filename_component(FFMPEG_${varname}_LIBRARY_RELEASE_DIR ${FFMPEG_${varname}_LIBRARY_RELEASE} DIRECTORY) get_filename_component(FFMPEG_${varname}_LIBRARY_DEBUG_DIR ${FFMPEG_${varname}_LIBRARY_DEBUG} DIRECTORY) select_library_configurations(FFMPEG_${varname}) set(FFMPEG_${varname}_LIBRARY ${FFMPEG_${varname}_LIBRARY} CACHE STRING "") endif() if (FFMPEG_${varname}_LIBRARY AND FFMPEG_${varname}_INCLUDE_DIRS) set(FFMPEG_${varname}_FOUND TRUE BOOL) list(APPEND FFMPEG_INCLUDE_DIRS ${FFMPEG_${varname}_INCLUDE_DIRS}) list(APPEND FFMPEG_LIBRARIES ${FFMPEG_${varname}_LIBRARY}) list(APPEND FFMPEG_LIBRARY_DIRS ${FFMPEG_${varname}_LIBRARY_RELEASE_DIR} ${FFMPEG_${varname}_LIBRARY_DEBUG_DIR}) endif() endmacro(FFMPEG_FIND) if(@ENABLE_AVDEVICE@) FFMPEG_FIND(libavdevice avdevice avdevice.h) endif() if(@ENABLE_AVFILTER@) FFMPEG_FIND(libavfilter avfilter avfilter.h) endif() if(@ENABLE_AVFORMAT@) FFMPEG_FIND(libavformat avformat avformat.h) endif() if(@ENABLE_AVCODEC@) FFMPEG_FIND(libavcodec avcodec avcodec.h) endif() if(@ENABLE_SWRESAMPLE@) FFMPEG_FIND(libswresample swresample swresample.h) endif() if(@ENABLE_SWSCALE@) FFMPEG_FIND(libswscale swscale swscale.h) endif() FFMPEG_FIND(libavutil avutil avutil.h) if (FFMPEG_libavutil_FOUND) list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS) list(REMOVE_DUPLICATES FFMPEG_LIBRARY_DIRS) set(FFMPEG_libavutil_VERSION "@LIBAVUTIL_VERSION@" CACHE STRING "") if(FFMPEG_libavcodec_FOUND) set(FFMPEG_libavcodec_VERSION "@LIBAVCODEC_VERSION@" CACHE STRING "") endif() if(FFMPEG_libavdevice_FOUND) set(FFMPEG_libavdevice_VERSION "@LIBAVDEVICE_VERSION@" CACHE STRING "") endif() if(FFMPEG_libavfilter_FOUND) set(FFMPEG_libavfilter_VERSION "@LIBAVFILTER_VERSION@" CACHE STRING "") endif() if(FFMPEG_libavformat_FOUND) set(FFMPEG_libavformat_VERSION "@LIBAVFORMAT_VERSION@" CACHE STRING "") endif() if(FFMPEG_libswresample_FOUND) set(FFMPEG_libswresample_VERSION "@LIBSWRESAMPLE_VERSION@" CACHE STRING "") endif() if(FFMPEG_libswscale_FOUND) set(FFMPEG_libswscale_VERSION "@LIBSWSCALE_VERSION@" CACHE STRING "") endif() append_dependencies(FFMPEG_DEPS_LIBRARY_RELEASE NAMES "@FFMPEG_DEPENDENCIES_RELEASE@") append_dependencies(FFMPEG_DEPS_LIBRARY_DEBUG NAMES "@FFMPEG_DEPENDENCIES_DEBUG@" DEBUG) if(FFMPEG_DEPS_LIBRARY_RELEASE OR FFMPEG_DEPS_LIBRARY_DEBUG) select_library_configurations(FFMPEG_DEPS) list(APPEND FFMPEG_LIBRARIES ${FFMPEG_DEPS_LIBRARY}) endif() set(FFMPEG_LIBRARY ${FFMPEG_LIBRARIES}) set(FFMPEG_FOUND TRUE CACHE BOOL "") set(FFMPEG_LIBRARIES ${FFMPEG_LIBRARIES} CACHE STRING "") set(FFMPEG_INCLUDE_DIRS ${FFMPEG_INCLUDE_DIRS} CACHE STRING "") set(FFMPEG_LIBRARY_DIRS ${FFMPEG_LIBRARY_DIRS} CACHE STRING "") endif() find_package_handle_standard_args(FFMPEG REQUIRED_VARS FFMPEG_LIBRARIES FFMPEG_LIBRARY_DIRS FFMPEG_INCLUDE_DIRS) set(z_vcpkg_using_vcpkg_find_ffmpeg ${FFMPEG_FOUND}) endif() ================================================ FILE: ports/ffmpeg/build.sh.in ================================================ #!/usr/bin/env bash set -e move_binary() { SOURCE=$1 TARGET=$2 BINARY=$3 # run lipo over the command to check whether it really # is a binary that we need to merge architectures lipo $SOURCE/$BINARY -info &> /dev/null || return 0 # get the directory name the file is in DIRNAME=$(dirname $BINARY) # ensure the directory to move the binary to exists mkdir -p $TARGET/$DIRNAME # now finally move the binary mv $SOURCE/$BINARY $TARGET/$BINARY } move_binaries() { SOURCE=$1 TARGET=$2 [ ! -d $SOURCE ] && return 0 pushd $SOURCE for BINARY in $(find . -type f); do move_binary $SOURCE $TARGET $BINARY done popd } merge_binaries() { TARGET=$1 SOURCE=$2 shift shift pushd $SOURCE/$1 BINARIES=$(find . -type f) popd for BINARY in $BINARIES; do COMMAND="lipo -create -output $TARGET/$BINARY" for ARCH in $@; do COMMAND="$COMMAND -arch $ARCH $SOURCE/$ARCH/$BINARY" done $($COMMAND) done } PATH_TO_BUILD_DIR="@BUILD_DIR@" PATH_TO_SRC_DIR="@SOURCE_PATH@" PATH_TO_PACKAGE_DIR="@INST_PREFIX@" JOBS=@VCPKG_CONCURRENCY@ OSX_ARCHS="@OSX_ARCHS@" OSX_ARCH_COUNT=0@OSX_ARCH_COUNT@ # Default to hardware concurrency if unset. : ${JOBS:=$(nproc)} # Disable asm and x86asm on all android targets because they trigger build failures: # arm64 Android build fails with 'relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol ff_cos_32; recompile with -fPIC' # x86 Android build fails with 'error: inline assembly requires more registers than available'. # x64 Android build fails with 'relocation R_X86_64_PC32 cannot be used against symbol ff_h264_cabac_tables; recompile with -fPIC' if [ "@VCPKG_CMAKE_SYSTEM_NAME@" = "Android" ]; then OPTIONS_arm=" --disable-asm --disable-x86asm" OPTIONS_arm64=" --disable-asm --disable-x86asm" OPTIONS_x86=" --disable-asm --disable-x86asm" OPTIONS_x86_64="${OPTIONS_x86}" else OPTIONS_arm=" --disable-asm --disable-x86asm" OPTIONS_arm64=" --enable-asm --disable-x86asm" OPTIONS_x86=" --enable-asm --enable-x86asm" OPTIONS_x86_64="${OPTIONS_x86}" fi case "@VCPKG_CMAKE_SYSTEM_NAME@" in *BSD) MAKE_BINARY="gmake" ;; *) MAKE_BINARY="make" ;; esac build_ffmpeg() { # extract build architecture BUILD_ARCH=$1 shift echo "BUILD_ARCH=${BUILD_ARCH}" # get architecture-specific options OPTION_VARIABLE="OPTIONS_${BUILD_ARCH}" echo "OPTION_VARIABLE=${OPTION_VARIABLE}" echo "=== CONFIGURING ===" sh "$PATH_TO_SRC_DIR/configure" "--prefix=$PATH_TO_PACKAGE_DIR" @CONFIGURE_OPTIONS@ --arch=${BUILD_ARCH} ${!OPTION_VARIABLE} $@ echo "=== BUILDING ===" $MAKE_BINARY -j${JOBS} V=1 echo "=== INSTALLING ===" $MAKE_BINARY install } cd "$PATH_TO_BUILD_DIR" if [ $OSX_ARCH_COUNT -gt 0 ]; then for ARCH in $OSX_ARCHS; do echo "=== CLEANING FOR $ARCH ===" $MAKE_BINARY clean && $MAKE_BINARY distclean build_ffmpeg $ARCH --extra-cflags=-arch --extra-cflags=$ARCH --extra-ldflags=-arch --extra-ldflags=$ARCH echo "=== COLLECTING BINARIES FOR $ARCH ===" move_binaries $PATH_TO_PACKAGE_DIR/lib $PATH_TO_BUILD_DIR/stage/$ARCH/lib move_binaries $PATH_TO_PACKAGE_DIR/bin $PATH_TO_BUILD_DIR/stage/$ARCH/bin done echo "=== MERGING ARCHITECTURES ===" merge_binaries $PATH_TO_PACKAGE_DIR $PATH_TO_BUILD_DIR/stage $OSX_ARCHS else build_ffmpeg @BUILD_ARCH@ fi ================================================ FILE: ports/ffmpeg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ffmpeg/ffmpeg REF "n${VERSION}" SHA512 f31769a7ed52865165e7db4a03e9378b3376012b7aaf0bbc022aa76c3e999e71c3927e6eb8639d8681e04e33362dd73eafa9e7c62a3c71599ff78da09f5cee0a HEAD_REF master PATCHES 0001-create-lib-libraries.patch 0002-fix-msvc-link.patch 0003-fix-windowsinclude.patch 0004-dependencies.patch 0005-fix-nasm.patch 0007-fix-lib-naming.patch 0013-define-WINVER.patch 0020-fix-aarch64-libswscale.patch 0024-fix-osx-host-c11.patch 0040-ffmpeg-add-av_stream_get_first_dts-for-chromium.patch # Do not remove this patch. It is required by chromium 0044-fix-vulkan-debug-callback-abi.patch 0045-use-prebuilt-bin2c.patch 0046-fix-msvc-detection.patch ) if(SOURCE_PATH MATCHES " ") message(FATAL_ERROR "Error: ffmpeg will not build with spaces in the path. Please use a directory with no spaces") endif() vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/ffmpeg-bin2c") if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${NASM_EXE_PATH}") endif() set(OPTIONS "--enable-pic --disable-doc --enable-runtime-cpudetect --disable-autodetect") if(VCPKG_TARGET_IS_MINGW) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(APPEND OPTIONS " --target-os=mingw32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") string(APPEND OPTIONS " --target-os=mingw64") endif() elseif(VCPKG_TARGET_IS_LINUX) string(APPEND OPTIONS " --target-os=linux --enable-pthreads") elseif(VCPKG_TARGET_IS_UWP) string(APPEND OPTIONS " --target-os=win32 --enable-w32threads --enable-d3d11va --enable-d3d12va --enable-mediafoundation") elseif(VCPKG_TARGET_IS_WINDOWS) string(APPEND OPTIONS " --target-os=win32 --enable-w32threads --enable-d3d11va --enable-d3d12va --enable-dxva2 --enable-mediafoundation") elseif(VCPKG_TARGET_IS_OSX) string(APPEND OPTIONS " --target-os=darwin --enable-appkit --enable-avfoundation --enable-coreimage --enable-audiotoolbox --enable-videotoolbox") elseif(VCPKG_TARGET_IS_IOS) string(APPEND OPTIONS " --enable-avfoundation --enable-coreimage --enable-videotoolbox") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android") string(APPEND OPTIONS " --target-os=android --enable-jni --enable-mediacodec") elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "QNX") string(APPEND OPTIONS " --target-os=qnx") endif() if(VCPKG_TARGET_IS_OSX) list(JOIN VCPKG_OSX_ARCHITECTURES " " OSX_ARCHS) list(LENGTH VCPKG_OSX_ARCHITECTURES OSX_ARCH_COUNT) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_MSVC) set(OPTIONS "--toolchain=msvc ${OPTIONS}") # This is required because ffmpeg depends upon optimizations to link correctly string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " -O2") string(REGEX REPLACE "(^| )-RTC1( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}") string(REGEX REPLACE "(^| )-Od( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}") string(REGEX REPLACE "(^| )-Ob0( |$)" " " VCPKG_COMBINED_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}") endif() string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " -I \"${CURRENT_INSTALLED_DIR}/include\"") string(APPEND VCPKG_COMBINED_C_FLAGS_RELEASE " -I \"${CURRENT_INSTALLED_DIR}/include\"") ## Setup vcpkg toolchain set(prog_env "") if(VCPKG_DETECTED_CMAKE_C_COMPILER) get_filename_component(CC_path "${VCPKG_DETECTED_CMAKE_C_COMPILER}" DIRECTORY) get_filename_component(CC_filename "${VCPKG_DETECTED_CMAKE_C_COMPILER}" NAME) set(ENV{CC} "${CC_filename}") string(APPEND OPTIONS " --cc=${CC_filename}") list(APPEND prog_env "${CC_path}") endif() if(VCPKG_DETECTED_CMAKE_CXX_COMPILER) get_filename_component(CXX_path "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}" DIRECTORY) get_filename_component(CXX_filename "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}" NAME) set(ENV{CXX} "${CXX_filename}") string(APPEND OPTIONS " --cxx=${CXX_filename}") list(APPEND prog_env "${CXX_path}") endif() if(VCPKG_DETECTED_CMAKE_RC_COMPILER) get_filename_component(RC_path "${VCPKG_DETECTED_CMAKE_RC_COMPILER}" DIRECTORY) get_filename_component(RC_filename "${VCPKG_DETECTED_CMAKE_RC_COMPILER}" NAME) set(ENV{WINDRES} "${RC_filename}") string(APPEND OPTIONS " --windres=${RC_filename}") list(APPEND prog_env "${RC_path}") endif() if(VCPKG_DETECTED_CMAKE_LINKER AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) get_filename_component(LD_path "${VCPKG_DETECTED_CMAKE_LINKER}" DIRECTORY) get_filename_component(LD_filename "${VCPKG_DETECTED_CMAKE_LINKER}" NAME) set(ENV{LD} "${LD_filename}") string(APPEND OPTIONS " --ld=${LD_filename}") list(APPEND prog_env "${LD_path}") endif() if(VCPKG_DETECTED_CMAKE_NM) get_filename_component(NM_path "${VCPKG_DETECTED_CMAKE_NM}" DIRECTORY) get_filename_component(NM_filename "${VCPKG_DETECTED_CMAKE_NM}" NAME) set(ENV{NM} "${NM_filename}") string(APPEND OPTIONS " --nm=${NM_filename}") list(APPEND prog_env "${NM_path}") endif() if(VCPKG_DETECTED_CMAKE_AR) get_filename_component(AR_path "${VCPKG_DETECTED_CMAKE_AR}" DIRECTORY) get_filename_component(AR_filename "${VCPKG_DETECTED_CMAKE_AR}" NAME) if(AR_filename MATCHES [[^(llvm-)?lib\.exe$]]) set(ENV{AR} "ar-lib ${AR_filename}") string(APPEND OPTIONS " --ar='ar-lib ${AR_filename}'") else() set(ENV{AR} "${AR_filename}") string(APPEND OPTIONS " --ar='${AR_filename}'") endif() list(APPEND prog_env "${AR_path}") endif() if(VCPKG_DETECTED_CMAKE_RANLIB) get_filename_component(RANLIB_path "${VCPKG_DETECTED_CMAKE_RANLIB}" DIRECTORY) get_filename_component(RANLIB_filename "${VCPKG_DETECTED_CMAKE_RANLIB}" NAME) set(ENV{RANLIB} "${RANLIB_filename}") string(APPEND OPTIONS " --ranlib=${RANLIB_filename}") list(APPEND prog_env "${RANLIB_path}") endif() if(VCPKG_DETECTED_CMAKE_STRIP) get_filename_component(STRIP_path "${VCPKG_DETECTED_CMAKE_STRIP}" DIRECTORY) get_filename_component(STRIP_filename "${VCPKG_DETECTED_CMAKE_STRIP}" NAME) set(ENV{STRIP} "${STRIP_filename}") string(APPEND OPTIONS " --strip=${STRIP_filename}") list(APPEND prog_env "${STRIP_path}") endif() if(VCPKG_HOST_IS_WINDOWS) vcpkg_acquire_msys(MSYS_ROOT PACKAGES automake) set(SHELL "${MSYS_ROOT}/usr/bin/bash.exe") vcpkg_execute_required_process( COMMAND "${SHELL}" -c "'/usr/bin/automake' --print-lib" OUTPUT_VARIABLE automake_lib OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${MSYS_ROOT}" LOGNAME automake-print-lib ) list(APPEND prog_env "${MSYS_ROOT}/usr/bin" "${MSYS_ROOT}${automake_lib}") else() find_program(SHELL bash) endif() list(REMOVE_DUPLICATES prog_env) vcpkg_add_to_path(PREPEND ${prog_env}) # More? OBJCC BIN2C file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") set(FFMPEG_PKGCONFIG_MODULES libavutil) if("nonfree" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-nonfree") endif() if("gpl" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-gpl") endif() if("version3" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-version3") endif() if("ffmpeg" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-ffmpeg") else() set(OPTIONS "${OPTIONS} --disable-ffmpeg") endif() if("ffplay" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-ffplay") else() set(OPTIONS "${OPTIONS} --disable-ffplay") endif() if("ffprobe" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-ffprobe") else() set(OPTIONS "${OPTIONS} --disable-ffprobe") endif() if("avcodec" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-avcodec") set(ENABLE_AVCODEC ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libavcodec) else() set(OPTIONS "${OPTIONS} --disable-avcodec") set(ENABLE_AVCODEC OFF) endif() if("avdevice" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-avdevice") set(ENABLE_AVDEVICE ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libavdevice) else() set(OPTIONS "${OPTIONS} --disable-avdevice") set(ENABLE_AVDEVICE OFF) endif() if("avformat" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-avformat") set(ENABLE_AVFORMAT ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libavformat) else() set(OPTIONS "${OPTIONS} --disable-avformat") set(ENABLE_AVFORMAT OFF) endif() if("avfilter" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-avfilter") set(ENABLE_AVFILTER ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libavfilter) else() set(OPTIONS "${OPTIONS} --disable-avfilter") set(ENABLE_AVFILTER OFF) endif() if("swresample" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-swresample") set(ENABLE_SWRESAMPLE ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libswresample) else() set(OPTIONS "${OPTIONS} --disable-swresample") set(ENABLE_SWRESAMPLE OFF) endif() if("swscale" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-swscale") set(ENABLE_SWSCALE ON) list(APPEND FFMPEG_PKGCONFIG_MODULES libswscale) else() set(OPTIONS "${OPTIONS} --disable-swscale") set(ENABLE_SWSCALE OFF) endif() if ("alsa" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-alsa") else() set(OPTIONS "${OPTIONS} --disable-alsa") endif() if("amf" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-amf") else() set(OPTIONS "${OPTIONS} --disable-amf") endif() if("aom" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libaom") set(WITH_AOM ON) else() set(OPTIONS "${OPTIONS} --disable-libaom") set(WITH_AOM OFF) endif() if("ass" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libass") set(WITH_ASS ON) else() set(OPTIONS "${OPTIONS} --disable-libass") set(WITH_ASS OFF) endif() if("avisynthplus" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-avisynth") else() set(OPTIONS "${OPTIONS} --disable-avisynth") endif() if("bzip2" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-bzlib") else() set(OPTIONS "${OPTIONS} --disable-bzlib") endif() if("dav1d" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libdav1d") set(WITH_DAV1D ON) else() set(OPTIONS "${OPTIONS} --disable-libdav1d") set(WITH_DAV1D OFF) endif() if("fdk-aac" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libfdk-aac") set(WITH_AAC ON) else() set(OPTIONS "${OPTIONS} --disable-libfdk-aac") set(WITH_AAC OFF) endif() if("fontconfig" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libfontconfig") else() set(OPTIONS "${OPTIONS} --disable-libfontconfig") endif() if("drawtext" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libharfbuzz") else() set(OPTIONS "${OPTIONS} --disable-libharfbuzz") endif() if("freetype" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libfreetype") else() set(OPTIONS "${OPTIONS} --disable-libfreetype") endif() if("fribidi" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libfribidi") else() set(OPTIONS "${OPTIONS} --disable-libfribidi") endif() if("iconv" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-iconv") set(WITH_ICONV ON) else() set(OPTIONS "${OPTIONS} --disable-iconv") set(WITH_ICONV OFF) endif() if("ilbc" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libilbc") set(WITH_ILBC ON) else() set(OPTIONS "${OPTIONS} --disable-libilbc") set(WITH_ILBC OFF) endif() if("lzma" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-lzma") set(WITH_LZMA ON) else() set(OPTIONS "${OPTIONS} --disable-lzma") set(WITH_LZMA OFF) endif() if("mp3lame" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libmp3lame") set(WITH_MP3LAME ON) else() set(OPTIONS "${OPTIONS} --disable-libmp3lame") set(WITH_MP3LAME OFF) endif() if("modplug" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libmodplug") set(WITH_MODPLUG ON) else() set(OPTIONS "${OPTIONS} --disable-libmodplug") set(WITH_MODPLUG OFF) endif() if("nvcodec" IN_LIST FEATURES) #Note: the --enable-cuda option does not actually require the cuda sdk or toolset port dependency as ffmpeg uses runtime detection and dynamic loading set(OPTIONS "${OPTIONS} --enable-cuda --enable-nvenc --enable-nvdec --enable-cuvid --enable-ffnvcodec") else() set(OPTIONS "${OPTIONS} --disable-cuda --disable-nvenc --disable-nvdec --disable-cuvid --disable-ffnvcodec") endif() if("opencl" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-opencl") set(WITH_OPENCL ON) else() set(OPTIONS "${OPTIONS} --disable-opencl") set(WITH_OPENCL OFF) endif() if("opengl" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-opengl") else() set(OPTIONS "${OPTIONS} --disable-opengl") endif() if("openh264" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libopenh264") set(WITH_OPENH264 ON) else() set(OPTIONS "${OPTIONS} --disable-libopenh264") set(WITH_OPENH264 OFF) endif() if("openjpeg" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libopenjpeg") set(WITH_OPENJPEG ON) else() set(OPTIONS "${OPTIONS} --disable-libopenjpeg") set(WITH_OPENJPEG OFF) endif() if("openmpt" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libopenmpt") set(WITH_OPENMPT ON) else() set(OPTIONS "${OPTIONS} --disable-libopenmpt") set(WITH_OPENMPT OFF) endif() set(WITH_OPENSSL OFF) set(WITH_SCHANNEL OFF) if("openssl" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-openssl") set(WITH_OPENSSL ON) else() set(OPTIONS "${OPTIONS} --disable-openssl") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_UWP) string(APPEND OPTIONS " --enable-schannel") set(WITH_SCHANNEL ON) endif() endif() if("opus" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libopus") set(WITH_OPUS ON) else() set(OPTIONS "${OPTIONS} --disable-libopus") set(WITH_OPUS OFF) endif() if("sdl2" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-sdl2") else() set(OPTIONS "${OPTIONS} --disable-sdl2") endif() if("snappy" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libsnappy") set(WITH_SNAPPY ON) else() set(OPTIONS "${OPTIONS} --disable-libsnappy") set(WITH_SNAPPY OFF) endif() if("soxr" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libsoxr") set(WITH_SOXR ON) else() set(OPTIONS "${OPTIONS} --disable-libsoxr") set(WITH_SOXR OFF) endif() if("speex" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libspeex") set(WITH_SPEEX ON) else() set(OPTIONS "${OPTIONS} --disable-libspeex") set(WITH_SPEEX OFF) endif() if("ssh" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libssh") set(WITH_SSH ON) else() set(OPTIONS "${OPTIONS} --disable-libssh") set(WITH_SSH OFF) endif() if("tensorflow" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libtensorflow") else() set(OPTIONS "${OPTIONS} --disable-libtensorflow") endif() if("tesseract" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libtesseract") else() set(OPTIONS "${OPTIONS} --disable-libtesseract") endif() if("theora" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libtheora") set(WITH_THEORA ON) else() set(OPTIONS "${OPTIONS} --disable-libtheora") set(WITH_THEORA OFF) endif() if("vorbis" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libvorbis") set(WITH_VORBIS ON) else() set(OPTIONS "${OPTIONS} --disable-libvorbis") set(WITH_VORBIS OFF) endif() if("vpx" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libvpx") set(WITH_VPX ON) else() set(OPTIONS "${OPTIONS} --disable-libvpx") set(WITH_VPX OFF) endif() if("vulkan" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-vulkan") else() set(OPTIONS "${OPTIONS} --disable-vulkan") endif() if("webp" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libwebp") set(WITH_WEBP ON) else() set(OPTIONS "${OPTIONS} --disable-libwebp") set(WITH_WEBP OFF) endif() if("x264" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libx264") set(WITH_X264 ON) else() set(OPTIONS "${OPTIONS} --disable-libx264") set(WITH_X264 OFF) endif() if("x265" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libx265") set(WITH_X265 ON) else() set(OPTIONS "${OPTIONS} --disable-libx265") set(WITH_X265 OFF) endif() if("xml2" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libxml2") set(WITH_XML2 ON) else() set(OPTIONS "${OPTIONS} --disable-libxml2") set(WITH_XML2 OFF) endif() if("zlib" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-zlib") else() set(OPTIONS "${OPTIONS} --disable-zlib") endif() if ("srt" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libsrt") set(WITH_SRT ON) else() set(OPTIONS "${OPTIONS} --disable-libsrt") set(WITH_SRT OFF) endif() if ("qsv" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libmfx --enable-encoder=h264_qsv --enable-decoder=h264_qsv") set(WITH_MFX ON) else() set(OPTIONS "${OPTIONS} --disable-libmfx") set(WITH_MFX OFF) endif() if ("vaapi" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-vaapi") set(WITH_VAAPI ON) else() set(OPTIONS "${OPTIONS} --disable-vaapi") set(WITH_VAAPI OFF) endif() if("zmq" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-libzmq") set(WITH_ZMQ ON) else() set(OPTIONS "${OPTIONS} --disable-libzmq") set(WITH_ZMQ OFF) endif() if("rubberband" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-librubberband") set(WITH_RUBBERBAND ON) else() set(OPTIONS "${OPTIONS} --disable-librubberband") set(WITH_RUBBERBAND OFF) endif() set(OPTIONS_CROSS "--enable-cross-compile") # ffmpeg needs --cross-prefix option to use appropriate tools for cross-compiling. if(VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "([^\/]*-)gcc$") string(APPEND OPTIONS_CROSS " --cross-prefix=${CMAKE_MATCH_1}") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(BUILD_ARCH "x86_64") else() set(BUILD_ARCH ${VCPKG_TARGET_ARCHITECTURE}) endif() if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(GASPREPROCESSOR) foreach(GAS_PATH ${GASPREPROCESSOR}) get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY) vcpkg_add_to_path("${GAS_ITEM_PATH}") endforeach(GAS_PATH) endif() endif() if(VCPKG_TARGET_IS_UWP) set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\") string(APPEND OPTIONS " --disable-programs") string(APPEND OPTIONS " --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00") string(APPEND OPTIONS " --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib --extra-ldflags=dxguid.lib") endif() if (VCPKG_TARGET_IS_IOS) set(vcpkg_target_arch "${VCPKG_TARGET_ARCHITECTURE}") if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(vcpkg_target_arch "x86_64") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") message(FATAL_ERROR "You can build for arm up to iOS 10 but ffmpeg can only be built for iOS 11.0 and later. Did you mean arm64?") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") message(FATAL_ERROR "You can build for x86 up to iOS 10 but ffmpeg can only be built for iOS 11.0 and later. Did you mean x64") endif () set(vcpkg_osx_deployment_target "${VCPKG_OSX_DEPLOYMENT_TARGET}") if (NOT VCPKG_OSX_DEPLOYMENT_TARGET) set(vcpkg_osx_deployment_target 11.0) elseif (VCPKG_OSX_DEPLOYMENT_TARGET LESS 11.0) # nowadays ffmpeg needs to be built for ios 11.0 and later message(FATAL_ERROR "ffmpeg can be built only for iOS 11.0 and later but you set VCPKG_OSX_DEPLOYMENT_TARGET to ${VCPKG_OSX_DEPLOYMENT_TARGET}") endif () if (VCPKG_OSX_SYSROOT STREQUAL "iphonesimulator") set(simulator "-simulator") endif () set(OPTIONS "${OPTIONS} --extra-cflags=--target=${vcpkg_target_arch}-apple-ios${vcpkg_osx_deployment_target}${simulator}") set(OPTIONS "${OPTIONS} --extra-ldflags=--target=${vcpkg_target_arch}-apple-ios${vcpkg_osx_deployment_target}${simulator}") set(vcpkg_osx_sysroot "${VCPKG_OSX_SYSROOT}") # only on x64 for some reason you need to specify the sdk path, otherwise it will try to build with the MacOS sdk # (on apple silicon it's not required but shouldn't cause any problems) if ((VCPKG_OSX_SYSROOT MATCHES "^(iphoneos|iphonesimulator)$") OR (NOT VCPKG_OSX_SYSROOT) OR (VCPKG_OSX_SYSROOT STREQUAL "")) # if it's not a path if (VCPKG_OSX_SYSROOT MATCHES "^(iphoneos|iphonesimulator)$") set(requested_sysroot "${VCPKG_OSX_SYSROOT}") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") # if the sysroot is not specified we have to guess set(requested_sysroot "iphoneos") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(requested_sysroot "iphonesimulator") else () message(FATAL_ERROR "Unsupported build arch: ${VCPKG_TARGET_ARCHITECTURE}") endif () message(STATUS "Retrieving default SDK for ${requested_sysroot}") execute_process( COMMAND /usr/bin/xcrun --sdk ${requested_sysroot} --show-sdk-path OUTPUT_VARIABLE sdk_path ERROR_VARIABLE xcrun_error OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ) if (sdk_path) message(STATUS "Found!") set(vcpkg_osx_sysroot "${sdk_path}") else () message(FATAL_ERROR "Can't determine ${CMAKE_OSX_SYSROOT} SDK path. Error: ${xcrun_error}") endif () endif () set(OPTIONS "${OPTIONS} --extra-cflags=-isysroot\"${vcpkg_osx_sysroot}\"") set(OPTIONS "${OPTIONS} --extra-ldflags=-isysroot\"${vcpkg_osx_sysroot}\"") endif () set(OPTIONS_DEBUG "--disable-optimizations --enable-debug") set(OPTIONS_RELEASE "--enable-optimizations") set(OPTIONS "${OPTIONS} ${OPTIONS_CROSS}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPTIONS "${OPTIONS} --disable-static --enable-shared") endif() if(VCPKG_TARGET_IS_MINGW) set(OPTIONS "${OPTIONS} --extra_cflags=-D_WIN32_WINNT=0x0601") elseif(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS "${OPTIONS} --extra-cflags=-DHAVE_UNISTD_H=0") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) set(maybe_needed_libraries -lm) else() set(maybe_needed_libraries "") endif() separate_arguments(standard_libraries NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}") foreach(item IN LISTS standard_libraries) if(item IN_LIST maybe_needed_libraries) set(OPTIONS "${OPTIONS} \"--extra-libs=${item}\"") endif() endforeach() vcpkg_find_acquire_program(PKGCONFIG) set(OPTIONS "${OPTIONS} --pkg-config=\"${PKGCONFIG}\"") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(OPTIONS "${OPTIONS} --pkg-config-flags=--static") endif() message(STATUS "Building Options: ${OPTIONS}") # Release build if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") if (VCPKG_DETECTED_MSVC) set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-ldflags=-libpath:\"${CURRENT_INSTALLED_DIR}/lib\"") else() set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-ldflags=-L\"${CURRENT_INSTALLED_DIR}/lib\"") endif() message(STATUS "Building Release Options: ${OPTIONS_RELEASE}") message(STATUS "Building ${PORT} for Release") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") # We use response files here as the only known way to handle spaces in paths set(crsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/cflags.rsp") string(REGEX REPLACE "-arch [A-Za-z0-9_]+" "" VCPKG_COMBINED_C_FLAGS_RELEASE_SANITIZED "${VCPKG_COMBINED_C_FLAGS_RELEASE}") file(WRITE "${crsp}" "${VCPKG_COMBINED_C_FLAGS_RELEASE_SANITIZED}") set(ldrsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/ldflags.rsp") string(REGEX REPLACE "-arch [A-Za-z0-9_]+" "" VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE_SANITIZED "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE}") file(WRITE "${ldrsp}" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE_SANITIZED}") set(ENV{CFLAGS} "@${crsp}") # All tools except the msvc arm{,64} assembler accept @... as response file syntax. # For that assembler, there is no known way to pass in flags. We must hope that not passing flags will work acceptably. if(NOT VCPKG_DETECTED_MSVC OR NOT VCPKG_TARGET_ARCHITECTURE MATCHES "^arm") set(ENV{ASFLAGS} "@${crsp}") endif() set(ENV{LDFLAGS} "@${ldrsp}") set(ENV{ARFLAGS} "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE}") set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_RELEASE}") set(INST_PREFIX "${CURRENT_PACKAGES_DIR}") configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY) z_vcpkg_setup_pkgconfig_path(CONFIG RELEASE) vcpkg_execute_required_process( COMMAND "${SHELL}" ./build.sh WORKING_DIRECTORY "${BUILD_DIR}" LOGNAME "build-${TARGET_TRIPLET}-rel" SAVE_LOG_FILES ffbuild/config.log ) z_vcpkg_restore_pkgconfig_path() endif() # Debug build if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if (VCPKG_DETECTED_MSVC) set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-ldflags=-libpath:\"${CURRENT_INSTALLED_DIR}/debug/lib\"") else() set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-ldflags=-L\"${CURRENT_INSTALLED_DIR}/debug/lib\"") endif() message(STATUS "Building Debug Options: ${OPTIONS_DEBUG}") message(STATUS "Building ${PORT} for Debug") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") set(crsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/cflags.rsp") string(REGEX REPLACE "-arch [A-Za-z0-9_]+" "" VCPKG_COMBINED_C_FLAGS_DEBUG_SANITIZED "${VCPKG_COMBINED_C_FLAGS_DEBUG}") file(WRITE "${crsp}" "${VCPKG_COMBINED_C_FLAGS_DEBUG_SANITIZED}") set(ldrsp "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/ldflags.rsp") string(REGEX REPLACE "-arch [A-Za-z0-9_]+" "" VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG_SANITIZED "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}") file(WRITE "${ldrsp}" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG_SANITIZED}") set(ENV{CFLAGS} "@${crsp}") if(NOT VCPKG_DETECTED_MSVC OR NOT VCPKG_TARGET_ARCHITECTURE MATCHES "^arm") set(ENV{ASFLAGS} "@${crsp}") endif() set(ENV{LDFLAGS} "@${ldrsp}") set(ENV{ARFLAGS} "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG}") set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_DEBUG}") set(INST_PREFIX "${CURRENT_PACKAGES_DIR}/debug") configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY) z_vcpkg_setup_pkgconfig_path(CONFIG DEBUG) vcpkg_execute_required_process( COMMAND "${SHELL}" ./build.sh WORKING_DIRECTORY "${BUILD_DIR}" LOGNAME "build-${TARGET_TRIPLET}-dbg" SAVE_LOG_FILES ffbuild/config.log ) z_vcpkg_restore_pkgconfig_path() endif() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB DEF_FILES "${CURRENT_PACKAGES_DIR}/lib/*.def" "${CURRENT_PACKAGES_DIR}/debug/lib/*.def") if(NOT VCPKG_TARGET_IS_MINGW) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(LIB_MACHINE_ARG /machine:ARM) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(LIB_MACHINE_ARG /machine:ARM64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(LIB_MACHINE_ARG /machine:x86) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(LIB_MACHINE_ARG /machine:x64) else() message(FATAL_ERROR "Unsupported target architecture") endif() foreach(DEF_FILE ${DEF_FILES}) get_filename_component(DEF_FILE_DIR "${DEF_FILE}" DIRECTORY) get_filename_component(DEF_FILE_NAME "${DEF_FILE}" NAME) string(REGEX REPLACE "-[0-9]*\\.def" "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" OUT_FILE_NAME "${DEF_FILE_NAME}") file(TO_NATIVE_PATH "${DEF_FILE}" DEF_FILE_NATIVE) file(TO_NATIVE_PATH "${DEF_FILE_DIR}/${OUT_FILE_NAME}" OUT_FILE_NATIVE) message(STATUS "Generating ${OUT_FILE_NATIVE}") vcpkg_execute_required_process( COMMAND lib.exe "/def:${DEF_FILE_NATIVE}" "/out:${OUT_FILE_NATIVE}" ${LIB_MACHINE_ARG} WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" LOGNAME "libconvert-${TARGET_TRIPLET}" ) endforeach() endif() file(GLOB EXP_FILES "${CURRENT_PACKAGES_DIR}/lib/*.exp" "${CURRENT_PACKAGES_DIR}/debug/lib/*.exp") file(GLOB LIB_FILES "${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") if(VCPKG_TARGET_IS_MINGW) file(GLOB LIB_FILES_2 "${CURRENT_PACKAGES_DIR}/bin/*.lib" "${CURRENT_PACKAGES_DIR}/debug/bin/*.lib") endif() set(files_to_remove ${EXP_FILES} ${LIB_FILES} ${LIB_FILES_2} ${DEF_FILES}) if(files_to_remove) file(REMOVE ${files_to_remove}) endif() endif() if("ffmpeg" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ffmpeg AUTO_CLEAN) endif() if("ffprobe" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ffprobe AUTO_CLEAN) endif() if("ffplay" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ffplay AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(file IN LISTS pc_files) # ffmpeg exports -libpath:foo and bar.lib for transitive deps. # But CMake's pkg_check_modules cannot handle this properly. # pc files generally use non-msvc syntax with -Lfoo -lbar. file(READ "${file}" content) foreach(entry IN ITEMS Libs Libs.private) if(content MATCHES "${entry}:( [^\n]*)") set(old_value "${CMAKE_MATCH_1}") string(REGEX REPLACE "-libpath:" "-L" new_value "${old_value}") string(REGEX REPLACE " ([^ /]+)[.]lib" " -l\\1" new_value "${new_value}") string(REPLACE "${entry}:${old_value}" "${entry}:${new_value}" content "${content}") endif() endforeach() file(WRITE "${file}" "${content}") endforeach() endif() vcpkg_fixup_pkgconfig() # Handle dependencies x_vcpkg_pkgconfig_get_modules(PREFIX FFMPEG_PKGCONFIG MODULES ${FFMPEG_PKGCONFIG_MODULES} LIBS) function(append_dependencies_from_libs out) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "LIBS" "") separate_arguments(contents UNIX_COMMAND "${arg_LIBS}") list(FILTER contents EXCLUDE REGEX "^-F.+") list(FILTER contents EXCLUDE REGEX "^-framework$") list(FILTER contents EXCLUDE REGEX "^-L.+") list(FILTER contents EXCLUDE REGEX "^-libpath:.+") list(TRANSFORM contents REPLACE "^-Wl,-framework," "-l") list(FILTER contents EXCLUDE REGEX "^-Wl,.+") list(TRANSFORM contents REPLACE "^-l" "") list(FILTER contents EXCLUDE REGEX "^avutil$") list(FILTER contents EXCLUDE REGEX "^avcodec$") list(FILTER contents EXCLUDE REGEX "^avdevice$") list(FILTER contents EXCLUDE REGEX "^avfilter$") list(FILTER contents EXCLUDE REGEX "^avformat$") list(FILTER contents EXCLUDE REGEX "^swresample$") list(FILTER contents EXCLUDE REGEX "^swscale$") if(VCPKG_TARGET_IS_WINDOWS) list(TRANSFORM contents TOLOWER) endif() if(contents) list(APPEND "${out}" "${contents}") set("${out}" "${${out}}" PARENT_SCOPE) endif() endfunction() append_dependencies_from_libs(FFMPEG_DEPENDENCIES_RELEASE LIBS "${FFMPEG_PKGCONFIG_LIBS_RELEASE}") append_dependencies_from_libs(FFMPEG_DEPENDENCIES_DEBUG LIBS "${FFMPEG_PKGCONFIG_LIBS_DEBUG}") # must remove duplicates from the front to respect link order so reverse first list(REVERSE FFMPEG_DEPENDENCIES_RELEASE) list(REVERSE FFMPEG_DEPENDENCIES_DEBUG) list(REMOVE_DUPLICATES FFMPEG_DEPENDENCIES_RELEASE) list(REMOVE_DUPLICATES FFMPEG_DEPENDENCIES_DEBUG) list(REVERSE FFMPEG_DEPENDENCIES_RELEASE) list(REVERSE FFMPEG_DEPENDENCIES_DEBUG) message(STATUS "Dependencies (release): ${FFMPEG_DEPENDENCIES_RELEASE}") message(STATUS "Dependencies (debug): ${FFMPEG_DEPENDENCIES_DEBUG}") # Handle version strings function(extract_regex_from_file out) cmake_parse_arguments(PARSE_ARGV 1 "arg" "MAJOR" "FILE_WITHOUT_EXTENSION;REGEX" "") file(READ "${arg_FILE_WITHOUT_EXTENSION}.h" contents) if (contents MATCHES "${arg_REGEX}") if(NOT CMAKE_MATCH_COUNT EQUAL 1) message(FATAL_ERROR "Could not identify match group in regular expression \"${arg_REGEX}\"") endif() else() if (arg_MAJOR) file(READ "${arg_FILE_WITHOUT_EXTENSION}_major.h" contents) if (contents MATCHES "${arg_REGEX}") if(NOT CMAKE_MATCH_COUNT EQUAL 1) message(FATAL_ERROR "Could not identify match group in regular expression \"${arg_REGEX}\"") endif() else() message(WARNING "Could not find line matching \"${arg_REGEX}\" in file \"${arg_FILE_WITHOUT_EXTENSION}_major.h\"") endif() else() message(WARNING "Could not find line matching \"${arg_REGEX}\" in file \"${arg_FILE_WITHOUT_EXTENSION}.h\"") endif() endif() set("${out}" "${CMAKE_MATCH_1}" PARENT_SCOPE) endfunction() function(extract_version_from_component out) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "COMPONENT" "") string(TOLOWER "${arg_COMPONENT}" component_lower) string(TOUPPER "${arg_COMPONENT}" component_upper) extract_regex_from_file(major_version FILE_WITHOUT_EXTENSION "${SOURCE_PATH}/${component_lower}/version" MAJOR REGEX "#define ${component_upper}_VERSION_MAJOR[ ]+([0-9]+)" ) extract_regex_from_file(minor_version FILE_WITHOUT_EXTENSION "${SOURCE_PATH}/${component_lower}/version" REGEX "#define ${component_upper}_VERSION_MINOR[ ]+([0-9]+)" ) extract_regex_from_file(micro_version FILE_WITHOUT_EXTENSION "${SOURCE_PATH}/${component_lower}/version" REGEX "#define ${component_upper}_VERSION_MICRO[ ]+([0-9]+)" ) set("${out}" "${major_version}.${minor_version}.${micro_version}" PARENT_SCOPE) endfunction() extract_regex_from_file(FFMPEG_VERSION FILE_WITHOUT_EXTENSION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libavutil/ffversion" REGEX "#define FFMPEG_VERSION[ ]+\"(.+)\"" ) extract_version_from_component(LIBAVUTIL_VERSION COMPONENT libavutil) extract_version_from_component(LIBAVCODEC_VERSION COMPONENT libavcodec) extract_version_from_component(LIBAVDEVICE_VERSION COMPONENT libavdevice) extract_version_from_component(LIBAVFILTER_VERSION COMPONENT libavfilter) extract_version_from_component(LIBAVFORMAT_VERSION COMPONENT libavformat) extract_version_from_component(LIBSWRESAMPLE_VERSION COMPONENT libswresample) extract_version_from_component(LIBSWSCALE_VERSION COMPONENT libswscale) # Handle copyright file(STRINGS "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-out.log" LICENSE_STRING REGEX "License: .*" LIMIT_COUNT 1) if(LICENSE_STRING STREQUAL "License: LGPL version 2.1 or later") set(LICENSE_FILE "COPYING.LGPLv2.1") elseif(LICENSE_STRING STREQUAL "License: LGPL version 3 or later") set(LICENSE_FILE "COPYING.LGPLv3") elseif(LICENSE_STRING STREQUAL "License: GPL version 2 or later") set(LICENSE_FILE "COPYING.GPLv2") elseif(LICENSE_STRING STREQUAL "License: GPL version 3 or later") set(LICENSE_FILE "COPYING.GPLv3") elseif(LICENSE_STRING STREQUAL "License: nonfree and unredistributable") set(LICENSE_FILE "COPYING.NONFREE") file(WRITE "${SOURCE_PATH}/${LICENSE_FILE}" "${LICENSE_STRING}") else() message(FATAL_ERROR "Failed to identify license (${LICENSE_STRING})") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/FindFFMPEG.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/FindFFMPEG.cmake" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_OSX AND NOT VCPKG_TARGET_IS_IOS) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" " To use the static libraries to build your own shared library, you may need to add the following link option for your library: -Wl,-Bsymbolic ") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${LICENSE_FILE}") ================================================ FILE: ports/ffmpeg/usage ================================================ ffmpeg provides CMake integration: find_package(FFMPEG REQUIRED) target_include_directories(main PRIVATE ${FFMPEG_INCLUDE_DIRS}) target_link_directories(main PRIVATE ${FFMPEG_LIBRARY_DIRS}) target_link_libraries(main PRIVATE ${FFMPEG_LIBRARIES}) ffmpeg provides pkg-config modules: # FFmpeg codec library libavcodec # FFmpeg device handling library libavdevice # FFmpeg audio/video filtering library libavfilter # FFmpeg container format library libavformat # FFmpeg utility library libavutil # FFmpeg audio resampling library libswresample # FFmpeg image rescaling library libswscale ================================================ FILE: ports/ffmpeg/vcpkg-cmake-wrapper.cmake ================================================ set(FFMPEG_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) cmake_policy(SET CMP0012 NEW) # Detect if we use "our" find module or a vendored one set(z_vcpkg_using_vcpkg_find_ffmpeg OFF) # Detect targets created e.g. by VTK/CMake/FindFFMPEG.cmake set(vcpkg_no_avcodec_target ON) set(vcpkg_no_avformat_target ON) set(vcpkg_no_avutil_target ON) set(vcpkg_no_swresample_target ON) if(TARGET FFmpeg::avcodec) set(vcpkg_no_avcodec_target OFF) endif() if(TARGET FFmpeg::avformat) set(vcpkg_no_avformat_target OFF) endif() if(TARGET FFmpeg::avutil) set(vcpkg_no_avutil_target OFF) endif() if(TARGET FFmpeg::swresample) set(vcpkg_no_swresample_target OFF) endif() _find_package(${ARGS}) # Fixup of variables and targets for (some) vendored find modules if(NOT z_vcpkg_using_vcpkg_find_ffmpeg AND NOT "@BUILD_SHARED_LIBS@") include(SelectLibraryConfigurations) if(CMAKE_HOST_WIN32) set(PKG_CONFIG_EXECUTABLE "${CMAKE_CURRENT_LIST_DIR}/../../../@_HOST_TRIPLET@/tools/pkgconf/pkgconf.exe" CACHE STRING "" FORCE) endif() set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON) # Required for CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.1 which otherwise ignores CMAKE_PREFIX_PATH find_package(PkgConfig) pkg_check_modules(PKG_libavcodec libavcodec) if(APPLE) list(FILTER PKG_libavcodec_LIBRARIES INCLUDE REGEX "^-framework ") if(PKG_libavcodec_LIBRARIES) list(APPEND FFMPEG_LIBRARIES ${PKG_libavcodec_LIBRARIES}) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE ${PKG_libavcodec_LIBRARIES}) endif() endif() elseif(WIN32) foreach(z_libavcodec_link_lib IN ITEMS bcrypt crypt32 mfuuid psapi secur32 shlwapi strmiids vfw32 ws2_32 usp10 cfgmgr32 rpcrt4) if("-l${z_libavcodec_link_lib}" IN_LIST PKG_libavcodec_LDFLAGS) list(APPEND FFMPEG_LIBRARIES "${z_libavcodec_link_lib}") if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE "$") endif() endif() endforeach() endif() if(@WITH_MP3LAME@) find_package(mp3lame CONFIG ) list(APPEND FFMPEG_LIBRARIES mp3lame::mp3lame) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) # target exists after find_package and wasn't defined before target_link_libraries(FFmpeg::avcodec INTERFACE mp3lame::mp3lame) endif() endif() if(@WITH_XML2@) find_package(LibXml2 ) list(APPEND FFMPEG_LIBRARIES LibXml2::LibXml2) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE LibXml2::LibXml2) endif() if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE LibXml2::LibXml2) endif() endif() if(@WITH_ICONV@) find_package(Iconv ) list(APPEND FFMPEG_LIBRARIES Iconv::Iconv) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE Iconv::Iconv) endif() if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE Iconv::Iconv) endif() endif() if(@WITH_LZMA@) find_package(liblzma CONFIG ) list(APPEND FFMPEG_LIBRARIES liblzma::liblzma) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE liblzma::liblzma) endif() endif() if(@WITH_SSH@) find_package(libssh CONFIG ) list(APPEND FFMPEG_LIBRARIES ssh) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE ssh) endif() endif() if(@WITH_OPENMPT@) find_package(libopenmpt CONFIG ) list(APPEND FFMPEG_LIBRARIES libopenmpt::libopenmpt) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE libopenmpt::libopenmpt) endif() endif() if(@WITH_MODPLUG@) pkg_check_modules(modplug IMPORTED_TARGET libmodplug) list(APPEND FFMPEG_LIBRARIES PkgConfig::modplug) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE PkgConfig::modplug) endif() endif() if(@WITH_SRT@) pkg_check_modules(srt IMPORTED_TARGET srt) list(APPEND FFMPEG_LIBRARIES PkgConfig::srt) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE PkgConfig::srt) endif() endif() if(@WITH_DAV1D@) pkg_check_modules(dav1d IMPORTED_TARGET dav1d) list(APPEND FFMPEG_LIBRARIES PkgConfig::dav1d) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::dav1d) endif() endif() if(@WITH_OPENH264@) pkg_check_modules(openh264 IMPORTED_TARGET openh264) list(APPEND FFMPEG_LIBRARIES PkgConfig::openh264) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::openh264) endif() endif() if(@WITH_WEBP@) find_package(WebP CONFIG ) list(APPEND FFMPEG_LIBRARIES WebP::webp WebP::webpdecoder WebP::webpdemux WebP::libwebpmux) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE WebP::webp WebP::webpdecoder WebP::webpdemux WebP::libwebpmux) endif() endif() if(@WITH_SOXR@) find_library(SOXR_LIBRARY_RELEASE NAMES soxr PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(SOXR_LIBRARY_DEBUG NAMES soxr PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(SOXR) if(SOXR_LIBRARY_RELEASE) list(APPEND FFMPEG_LIBRARIES $<$>:${SOXR_LIBRARY_RELEASE}>) endif() if(SOXR_LIBRARY_DEBUG) list(APPEND FFMPEG_LIBRARIES $<$:${SOXR_LIBRARY_DEBUG}>) endif() if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE ${SOXR_LIBRARIES}) endif() if(vcpkg_no_swresample_target AND TARGET FFmpeg::swresample) target_link_libraries(FFmpeg::swresample INTERFACE ${SOXR_LIBRARIES}) endif() endif() if(@WITH_THEORA@) pkg_check_modules(theora IMPORTED_TARGET theora) list(APPEND FFMPEG_LIBRARIES PkgConfig::theora) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::theora) endif() endif() if(@WITH_MFX@) pkg_check_modules(libmfx IMPORTED_TARGET libmfx) list(APPEND FFMPEG_LIBRARIES PkgConfig::libmfx) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::libmfx) endif() if(vcpkg_no_avutil_target AND TARGET FFmpeg::avutil) target_link_libraries(FFmpeg::avutil INTERFACE PkgConfig::libmfx) endif() endif() if(@WITH_ILBC@) pkg_check_modules(libilbc IMPORTED_TARGET libilbc) list(APPEND FFMPEG_LIBRARIES PkgConfig::libilbc) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::libilbc) endif() endif() if(@WITH_THEORA@) pkg_check_modules(theora IMPORTED_TARGET theora) list(APPEND FFMPEG_LIBRARIES PkgConfig::theora) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::theora) endif() endif() if(@WITH_VORBIS@) find_package(Vorbis CONFIG ) list(APPEND FFMPEG_LIBRARIES Vorbis::vorbis Vorbis::vorbisenc) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE Vorbis::vorbis Vorbis::vorbisenc) endif() endif() if(@WITH_VPX@) pkg_check_modules(vpx IMPORTED_TARGET vpx) list(APPEND FFMPEG_LIBRARIES PkgConfig::vpx) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::vpx) endif() endif() if(@WITH_OPUS@) find_package(Opus CONFIG ) list(APPEND FFMPEG_LIBRARIES Opus::opus) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE Opus::opus) endif() endif() if(@WITH_SPEEX@) pkg_check_modules(speex IMPORTED_TARGET speex) list(APPEND FFMPEG_LIBRARIES PkgConfig::speex) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::speex) endif() endif() if(@WITH_OPENJPEG@) find_package(OpenJPEG CONFIG ) list(APPEND FFMPEG_LIBRARIES openjp2) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE openjp2) endif() endif() if(@WITH_SNAPPY@) find_package(Snappy CONFIG ) list(APPEND FFMPEG_LIBRARIES Snappy::snappy) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE Snappy::snappy) endif() endif() if(@WITH_AOM@) pkg_check_modules(aom IMPORTED_TARGET aom) list(APPEND FFMPEG_LIBRARIES PkgConfig::aom) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::aom) endif() endif() if(@WITH_X264@) pkg_check_modules(x264 IMPORTED_TARGET x264) list(APPEND FFMPEG_LIBRARIES PkgConfig::x264) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::x264) endif() endif() if(@WITH_X265@) pkg_check_modules(x265 IMPORTED_TARGET x265) list(APPEND FFMPEG_LIBRARIES PkgConfig::x265) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::x265) endif() endif() if(@WITH_AAC@) find_package(fdk-aac CONFIG) list(APPEND FFMPEG_LIBRARIES FDK-AAC::fdk-aac) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE FDK-AAC::fdk-aac) endif() endif() if(@WITH_OPENCL@) find_package(OpenCL ) list(APPEND FFMPEG_LIBRARIES OpenCL::OpenCL) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE OpenCL::OpenCL) endif() if(vcpkg_no_avutil_target AND TARGET FFmpeg::avutil) target_link_libraries(FFmpeg::avutil INTERFACE OpenCL::OpenCL) endif() endif() if(@WITH_VAAPI@) pkg_check_modules(libva IMPORTED_TARGET libva) pkg_check_modules(libva-drm IMPORTED_TARGET libva-drm) list(APPEND FFMPEG_LIBRARIES PkgConfig::libva PkgConfig::libva-drm) if(vcpkg_no_avcodec_target AND TARGET FFmpeg::avcodec) target_link_libraries(FFmpeg::avcodec INTERFACE PkgConfig::libva PkgConfig::libva-drm) endif() endif() if(@WITH_ZMQ@) pkg_check_modules(libzmq IMPORTED_TARGET libzmq) list(APPEND FFMPEG_LIBRARIES PkgConfig::libzmq) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE PkgConfig::libzmq) endif() endif() if(@WITH_RUBBERBAND@) pkg_check_modules(rubberband IMPORTED_TARGET rubberband) list(APPEND FFMPEG_LIBRARIES PkgConfig::rubberband) if(vcpkg_no_avfilter_target AND TARGET FFmpeg::avfilter) target_link_libraries(FFmpeg::avfilter INTERFACE PkgConfig::rubberband) endif() endif() if(@WITH_OPENSSL@) find_package(OpenSSL REQUIRED) list(APPEND FFMPEG_LIBRARIES $) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE $) endif() elseif(@WITH_SCHANNEL@) list(APPEND FFMPEG_LIBRARIES secur32 ncrypt crypt32) if(vcpkg_no_avformat_target AND TARGET FFmpeg::avformat) target_link_libraries(FFmpeg::avformat INTERFACE secur32 ncrypt crypt32) endif() endif() endif() unset(z_vcpkg_using_vcpkg_find_ffmpeg) set(FFMPEG_LIBRARY ${FFMPEG_LIBRARIES}) set(CMAKE_MODULE_PATH ${FFMPEG_PREV_MODULE_PATH}) unset(vcpkg_no_avcodec_target) unset(vcpkg_no_avformat_target) unset(vcpkg_no_avutil_target) unset(vcpkg_no_swresample_target) ================================================ FILE: ports/ffmpeg/vcpkg.json ================================================ { "name": "ffmpeg", "version": "8.0.1", "port-version": 2, "description": [ "A library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.", "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations." ], "homepage": "https://ffmpeg.org", "license": null, "dependencies": [ { "name": "ffmpeg-bin2c", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true } ], "default-features": [ "avcodec", "avdevice", "avfilter", "avformat", "swresample", "swscale" ], "features": { "all": { "description": "Build with all allowed dependencies selected that are compatible with the lgpl license", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "sdl2" ] }, { "name": "ffmpeg", "default-features": false, "features": [ "aom", "avcodec", "avdevice", "avfilter", "avformat", "bzip2", "freetype", "iconv", "lzma", "mp3lame", "openjpeg", "openmpt", "opus", "snappy", "soxr", "speex", "swresample", "swscale", "theora", "vorbis", "vpx", "vulkan", "webp", "xml2", "zlib" ] }, { "name": "ffmpeg", "default-features": false, "features": [ "alsa" ], "platform": "linux" }, { "name": "ffmpeg", "default-features": false, "features": [ "ass" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "fontconfig" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "fribidi" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "modplug" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "openh264" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "srt" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "ilbc" ], "platform": "!(arm & uwp)" }, { "name": "ffmpeg", "default-features": false, "features": [ "ssh" ], "platform": "!(uwp | arm)" }, { "name": "ffmpeg", "default-features": false, "features": [ "amf" ], "platform": "!osx & !uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "opencl" ], "platform": "!uwp & !osx" }, { "name": "ffmpeg", "default-features": false, "features": [ "opengl" ], "platform": "!uwp & !(arm64 & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "tensorflow" ], "platform": "x64 & !static & !uwp & !windows" }, { "name": "ffmpeg", "default-features": false, "features": [ "dav1d" ], "platform": "!(uwp | (windows & x86 & !static))" }, { "name": "ffmpeg", "default-features": false, "features": [ "tesseract" ], "platform": "!(windows & arm) & !static & !uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "qsv" ], "platform": "linux | (!osx & !uwp & !(arm & windows))" }, { "name": "ffmpeg", "default-features": false, "features": [ "nvcodec" ], "platform": "linux | (!osx & !uwp & !(arm64 & windows))" } ] }, "all-gpl": { "description": "Build with all allowed dependencies selected that are compatible with the gpl license", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "all", "gpl" ] }, { "name": "ffmpeg", "default-features": false, "features": [ "x264" ], "platform": "!(arm & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "x265" ], "platform": "!uwp & !(arm & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "avisynthplus" ], "platform": "windows & !arm & !uwp & !static" } ] }, "all-nonfree": { "description": "Build with all allowed dependencies selected with a non-redistributable license", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "all-gpl", "fdk-aac", "nonfree", "openssl" ] } ] }, "alsa": { "description": "Enable ALSA support", "dependencies": [ "alsa" ] }, "amf": { "description": "AMD AMF codec support", "dependencies": [ "amd-amf" ] }, "aom": { "description": "AV1 video encoding/decoding via libaom support in ffmpeg", "dependencies": [ "aom" ] }, "ass": { "description": "Libass subtitles rendering, needed for subtitles and ass filter support in ffmpeg", "dependencies": [ "libass" ] }, "avcodec": { "description": "Build the avcodec library" }, "avdevice": { "description": "Build the avdevice library", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat" ] } ] }, "avfilter": { "description": "Build the avfilter library" }, "avformat": { "description": "Build the avformat library", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec" ] } ] }, "avisynthplus": { "description": "Reading of AviSynth script files", "supports": "windows & !static", "dependencies": [ "avisynthplus", { "name": "ffmpeg", "default-features": false, "features": [ "gpl" ] } ] }, "avresample": { "description": "Build the avresample library" }, "bzip2": { "description": "Bzip2 support", "dependencies": [ "bzip2" ] }, "dav1d": { "description": "AV1 decoding via libdav1d", "dependencies": [ "dav1d" ] }, "drawtext": { "description": "Enable the drawtext filter", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "freetype" ] }, "harfbuzz" ] }, "dvdvideo": { "description": "DVD-Video demuxer", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "gpl" ] }, "libdvdnav", "libdvdread" ] }, "fdk-aac": { "description": "AAC de/encoding via libfdk-aac, **including GPL-incompatible patent-encumbered HE-AAC**. If you do not require HE-AAC, use the built-in FFmpeg AAC codec.", "dependencies": [ { "name": "fdk-aac", "default-features": false, "features": [ "he-aac" ] }, { "name": "ffmpeg", "default-features": false, "features": [ "nonfree" ] } ] }, "ffmpeg": { "description": "Build the ffmpeg application", "supports": "!uwp", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avfilter", "avformat" ] } ] }, "ffplay": { "description": "Build the ffplay application", "supports": "!uwp", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avfilter", "avformat", "sdl2", "swresample", "swscale" ] } ] }, "ffprobe": { "description": "Build the ffprobe application", "supports": "!uwp", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat" ] } ] }, "fontconfig": { "description": "Useful for drawtext filter", "dependencies": [ "fontconfig" ] }, "freetype": { "description": "Needed for drawtext filter", "dependencies": [ "freetype" ] }, "fribidi": { "description": "Improves drawtext filter", "dependencies": [ "fribidi" ] }, "gpl": { "description": "Allow use of GPL code, the resulting libs and binaries will be under GPL" }, "iconv": { "description": "Iconv support", "dependencies": [ "libiconv" ] }, "ilbc": { "description": "iLBC de/encoding via libilbc", "dependencies": [ "libilbc" ] }, "lzma": { "description": "lzma support", "dependencies": [ "liblzma" ] }, "modplug": { "description": "ModPlug via libmodplug", "dependencies": [ "libmodplug" ] }, "mp3lame": { "description": "MP3 encoding via libmp3lame", "dependencies": [ "mp3lame" ] }, "nonfree": { "description": "Allow use of nonfree code, the resulting libs and binaries will be unredistributable" }, "nvcodec": { "description": "Nvidia video decoding/encoding acceleration", "supports": "linux | (!osx & !uwp & !(arm64 & windows))", "dependencies": [ "ffnvcodec" ] }, "opencl": { "description": "OpenCL processing", "supports": "!uwp", "dependencies": [ "opencl" ] }, "opengl": { "description": "OpenGL rendering", "supports": "!uwp", "dependencies": [ "opengl", "opengl-registry" ] }, "openh264": { "description": "H.264 de/encoding via openh264", "dependencies": [ "openh264" ] }, "openjpeg": { "description": "JPEG 2000 de/encoding via OpenJPEG", "dependencies": [ "openjpeg" ] }, "openmpt": { "description": "Decoding tracked files via libopenmpt", "dependencies": [ "libopenmpt" ] }, "openssl": { "description": "Use OpenSSL for TLS support", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "version3" ] }, "openssl" ] }, "opus": { "description": "Opus de/encoding via libopus", "dependencies": [ "opus" ] }, "qsv": { "description": "Intel QSV Codec", "dependencies": [ "mfx-dispatch" ] }, "rubberband": { "description": "Enable rubberband support", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "gpl" ] }, "rubberband" ] }, "sdl2": { "description": "Sdl2 support", "dependencies": [ { "name": "sdl2", "default-features": false, "features": [ "x11" ], "platform": "linux" }, { "name": "sdl2", "platform": "!linux" } ] }, "snappy": { "description": "Snappy compression, needed for hap encoding", "dependencies": [ "snappy" ] }, "soxr": { "description": "Include libsoxr resampling", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "swresample" ] }, "soxr" ] }, "speex": { "description": "Speex de/encoding via libspeex", "dependencies": [ "speex" ] }, "srt": { "description": "Haivision SRT protocol", "supports": "!uwp", "dependencies": [ "libsrt" ] }, "ssh": { "description": "SFTP protocol via libssh", "dependencies": [ "libssh" ] }, "swresample": { "description": "Build the swresample library" }, "swscale": { "description": "Build the swscale library" }, "tensorflow": { "description": "TensorFlow as a DNN module backend for DNN based filters like sr", "supports": "!static", "dependencies": [ "tensorflow" ] }, "tesseract": { "description": "Tesseract, needed for ocr filter", "supports": "!static", "dependencies": [ "tesseract" ] }, "theora": { "description": "Theora encoding via libtheora", "dependencies": [ "libtheora" ] }, "vaapi": { "description": "VAAPI video decoding/encoding acceleration", "supports": "linux", "dependencies": [ { "name": "libva", "default-features": false, "platform": "linux" } ] }, "version3": { "description": "Upgrade (L)GPL to version 3" }, "vorbis": { "description": "Vorbis en/decoding via libvorbis, native implementation exists", "dependencies": [ "libvorbis" ] }, "vpx": { "description": "VP8 and VP9 de/encoding via libvpx", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec" ] }, "libvpx" ] }, "vulkan": { "description": "H.264, HEVC and AV1 de/encoding via Vulkan", "dependencies": [ "vulkan-headers" ] }, "webp": { "description": "WebP encoding via libwebp", "dependencies": [ "libwebp" ] }, "x264": { "description": "H.264 encoding via x264", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "gpl" ] }, "x264" ] }, "x265": { "description": "HEVC encoding via x265", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "gpl" ] }, "x265" ] }, "xml2": { "description": "XML parsing using the C library libxml2, needed for dash demuxing support", "dependencies": [ "libxml2" ] }, "zlib": { "description": "zlib support", "dependencies": [ "zlib" ] }, "zmq": { "description": "Enable ZeroMQ support", "dependencies": [ "zeromq" ] } } } ================================================ FILE: ports/ffmpeg-bin2c/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(ffmpeg-bin2c C) # Create the executable from the source file add_executable(bin2c bin2c.c) # Install rule to put it into the standard bin directory install(TARGETS bin2c DESTINATION manual-tools/ffmpeg-bin2c) ================================================ FILE: ports/ffmpeg-bin2c/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) # host tool for building ffmpeg vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ffmpeg/ffmpeg REF "n${VERSION}" SHA512 f31769a7ed52865165e7db4a03e9378b3376012b7aaf0bbc022aa76c3e999e71c3927e6eb8639d8681e04e33362dd73eafa9e7c62a3c71599ff78da09f5cee0a HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/ffbuild") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/ffbuild" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LGPLv2.1") ================================================ FILE: ports/ffmpeg-bin2c/vcpkg.json ================================================ { "name": "ffmpeg-bin2c", "version": "8.0.1", "description": "Host tool bin2c for FFmpeg build", "license": "LGPL-2.1-or-later", "supports": "native", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ffnvcodec/LICENSE.txt ================================================ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. one line to give the library's name and an idea of what it does. Copyright (C) year name of author This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. signature of Ty Coon, 1 April 1990 Ty Coon, President of Vice That's all there is to it! ================================================ FILE: ports/ffnvcodec/build.sh ================================================ #!/usr/bin/bash # Deploys the ffnvcodec.pc file to the MSYS rootfs so that pkgconfig can find it. set -e export PATH=/usr/bin:$PATH SOURCE_PATH="$1" CURRENT_PACKAGES_DIR="$2" pushd ${SOURCE_PATH} # Create ffnvcodec.pc make PREFIX=${CURRENT_PACKAGES_DIR} make install PREFIX=${CURRENT_PACKAGES_DIR} popd ================================================ FILE: ports/ffnvcodec/copyright ================================================ /* * This copyright notice applies to this header file only: * * Copyright (c) 2010-2019 NVIDIA Corporation * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the software, and to permit persons to whom the * software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ ================================================ FILE: ports/ffnvcodec/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FFmpeg/nv-codec-headers REF "n${VERSION}" SHA512 103381914daf92ae11a409b2c9d0a9036bd40e3f7f244fa05202ed19c863f0630818c72e09e829b336754d727672b75d2789978a5875b355c3bc107fa9ca3ec6 HEAD_REF master ) # ==================================================== # Install the pkgconfig info for the `nvcodec` package # ==================================================== # Windows if(VCPKG_HOST_IS_WINDOWS) set(BUILD_SCRIPT ${CMAKE_CURRENT_LIST_DIR}\\build.sh) vcpkg_acquire_msys(MSYS_ROOT PACKAGES make pkg-config) set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) message(STATUS "Building ${_csc_PROJECT_PATH} for Release") file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) # Make and deploy the ffnvcodec.pc file using MSYS # (so that FFmpeg can find it in the MSYS rootfs) vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc "${BUILD_SCRIPT}" "${SOURCE_PATH}" "${CURRENT_PACKAGES_DIR}" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET} LOGNAME build-${TARGET_TRIPLET} ) if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${SOURCE_PATH}/ffnvcodec.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() # Linux, etc. else() FIND_PROGRAM(MAKE make) IF (NOT MAKE) MESSAGE(FATAL_ERROR "MAKE not found") ENDIF () vcpkg_execute_required_process( COMMAND make PREFIX=$${CURRENT_PACKAGES_DIR} WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME make-${TARGET_TRIPLET} ) # FFmpeg uses pkgconfig to find ffnvcodec.pc, so install it where # FFMpeg's call to pkgconfig expects to find it. file(INSTALL "${SOURCE_PATH}/ffnvcodec.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${SOURCE_PATH}/ffnvcodec.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() endif() vcpkg_fixup_pkgconfig() # Install the files to their default vcpkg locations file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") vcpkg_install_copyright(FILE_LIST "${CURRENT_PORT_DIR}/copyright") ================================================ FILE: ports/ffnvcodec/vcpkg.json ================================================ { "name": "ffnvcodec", "version": "13.0.19.0", "description": "FFmpeg version of Nvidia Codec SDK headers.", "homepage": "https://github.com/FFmpeg/nv-codec-headers", "supports": "linux | (!osx & !uwp & !(arm64 & windows))" } ================================================ FILE: ports/fftw3/aligned_malloc.patch ================================================ diff --git a/cmake.config.h.in b/cmake.config.h.in index 1f4c505..fd763cc 100644 --- a/cmake.config.h.in +++ b/cmake.config.h.in @@ -112,6 +112,10 @@ you don't. */ #cmakedefine01 HAVE_DECL_POSIX_MEMALIGN +/* Define to 1 if you have the declaration of `_aligned_malloc', and to 0 if you + don't. */ +#cmakedefine01 HAVE_DECL_ALIGNED_MALLOC + /* Define to 1 if you have the declaration of `sinl', and to 0 if you don't. */ #cmakedefine01 HAVE_DECL_SINL @@ -184,6 +188,9 @@ /* Define to 1 if you have the `memalign' function. */ #cmakedefine HAVE_MEMALIGN 1 +/* Define to 1 if you have the `_aligned_malloc' function. */ +#cmakedefine HAVE_ALIGNED_MALLOC 1 + /* Define to 1 if you have the `memmove' function. */ #cmakedefine HAVE_MEMMOVE 1 diff --git a/kernel/kalloc.c b/kernel/kalloc.c index e42f6f3..ffc2257 100644 --- a/kernel/kalloc.c +++ b/kernel/kalloc.c @@ -103,7 +103,7 @@ void *X(kernel_malloc)(size_t n) # undef real_free # define real_free _mm_free -# elif defined(_MSC_VER) +# elif defined(_MSC_VER) || defined (HAVE_ALIGNED_MALLOC) /* MS Visual C++ 6.0 with a "Processor Pack" supports SIMD and _aligned_malloc/free (uses malloc.h) */ p = (void *) _aligned_malloc(n, MIN_ALIGNMENT); ================================================ FILE: ports/fftw3/bigobj.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 64db20b6a..ce438a379 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -315,7 +315,7 @@ endif () add_library (${fftw3_lib} ${SOURCEFILES}) target_include_directories (${fftw3_lib} INTERFACE $) if (MSVC AND NOT (CMAKE_C_COMPILER_ID STREQUAL "Intel")) - target_compile_definitions (${fftw3_lib} PRIVATE /bigobj) + target_compile_options (${fftw3_lib} PRIVATE "/bigobj") endif () if (HAVE_SSE) target_compile_options (${fftw3_lib} PRIVATE ${SSE_FLAG}) ================================================ FILE: ports/fftw3/fftw3_arch_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 49be67d..ef69fa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,7 @@ check_prototype_definition (cosl "long double cosl( long double arg )" "0" math. check_prototype_definition (sinl "long double sinl( long double arg )" "0" math.h HAVE_DECL_SINL) check_prototype_definition (memalign "void *memalign(size_t alignment, size_t size)" "0" malloc.h HAVE_DECL_MEMALIGN) check_prototype_definition (posix_memalign "int posix_memalign(void **memptr, size_t alignment, size_t size)" "0" stdlib.h HAVE_DECL_POSIX_MEMALIGN) +check_prototype_definition (_aligned_malloc "void* __cdecl _aligned_malloc(size_t _Size, size_t _Alignment)" "0" malloc.h HAVE_DECL_ALIGNED_MALLOC) include (CheckSymbolExists) check_symbol_exists (clock_gettime time.h HAVE_CLOCK_GETTIME) @@ -75,6 +76,7 @@ check_symbol_exists (drand48 stdlib.h HAVE_DRAND48) check_symbol_exists (srand48 stdlib.h HAVE_SRAND48) check_symbol_exists (memalign malloc.h HAVE_MEMALIGN) check_symbol_exists (posix_memalign stdlib.h HAVE_POSIX_MEMALIGN) +check_symbol_exists (_aligned_malloc malloc.h HAVE_ALIGNED_MALLOC) check_symbol_exists (mach_absolute_time mach/mach_time.h HAVE_MACH_ABSOLUTE_TIME) check_symbol_exists (alloca alloca.h HAVE_ALLOCA) if (NOT HAVE_ALLOCA) @@ -131,6 +133,7 @@ endif () include (CheckCCompilerFlag) +#All those checks fail due to linkage errors so we directly set HAVE_ in the PORTFILE! We assume the user knows what (s)he is doing! if (ENABLE_SSE) foreach (FLAG "-msse" "/arch:SSE") unset (HAVE_SSE CACHE) @@ -180,8 +183,9 @@ if (ENABLE_AVX2) endif () # AVX2 codelets require FMA support as well +# AVX2 implicitly includes FMA using Visual Studio (also definition __FMA__ is not set) if (ENABLE_AVX2) - foreach (FLAG "-mfma" "/arch:FMA") + foreach (FLAG "-mfma" "/arch:AVX2") unset (HAVE_FMA CACHE) unset (HAVE_FMA) check_c_compiler_flag (${FLAG} HAVE_FMA) ================================================ FILE: ports/fftw3/fix-openmp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ce438a3..43c74be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,7 +356,7 @@ if (OPENMP_FOUND) target_link_libraries (${fftw3_lib}_omp ${fftw3_lib}) target_link_libraries (${fftw3_lib}_omp ${CMAKE_THREAD_LIBS_INIT}) list (APPEND subtargets ${fftw3_lib}_omp) - target_compile_options (${fftw3_lib}_omp PRIVATE ${OpenMP_C_FLAGS}) + target_link_libraries (${fftw3_lib}_omp OpenMP::OpenMP_C) endif () foreach(subtarget ${subtargets}) ================================================ FILE: ports/fftw3/fix-wrong-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bc150c6..39a49fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -283,7 +283,7 @@ if (HAVE_AVX2) list (APPEND SOURCEFILES ${fftw_dft_simd_avx2_SOURCE} ${fftw_rdft_simd_avx2_SOURCE}) endif () -set (FFTW_VERSION 3.3.9) +set (FFTW_VERSION 3.3.10) set (PREC_SUFFIX) if (ENABLE_FLOAT) ================================================ FILE: ports/fftw3/install-subtargets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d1e4dff..ea5d579 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -361,12 +361,8 @@ endif () foreach(subtarget ${subtargets}) set_target_properties (${subtarget} PROPERTIES SOVERSION 3.6.9 VERSION 3) - install (TARGETS ${subtarget} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endforeach () -install(TARGETS ${fftw3_lib} +install(TARGETS ${subtargets} EXPORT FFTW3LibraryDepends RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ================================================ FILE: ports/fftw3/neon.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index db20caa7..48e724f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ option (ENABLE_SSE "Compile with SSE instruction set support" OFF) option (ENABLE_SSE2 "Compile with SSE2 instruction set support" OFF) option (ENABLE_AVX "Compile with AVX instruction set support" OFF) option (ENABLE_AVX2 "Compile with AVX2 instruction set support" OFF) +option (ENABLE_NEON "Compile with NEON instruction set support" OFF) option (DISABLE_FORTRAN "Disable Fortran wrapper routines" OFF) @@ -203,9 +204,20 @@ if (ENABLE_AVX2) endforeach () endif () +if (ENABLE_NEON) + if (ENABLE_LONG_DOUBLE) + message (FATAL_ERROR "NEON only works in single or double precision, please disable long double support") + endif () + if (ENABLE_QUAD_PRECISION) + message (FATAL_ERROR "NEON only works in single or double precision, please disable quad precision support") + endif () + set (HAVE_NEON TRUE) +endif () + if (HAVE_SSE2 OR HAVE_AVX) set (HAVE_SIMD TRUE) endif () + file(GLOB fftw_api_SOURCE api/*.c api/*.h) file(GLOB fftw_dft_SOURCE dft/*.c dft/*.h) file(GLOB fftw_dft_scalar_SOURCE dft/scalar/*.c dft/scalar/*.h) @@ -215,6 +227,7 @@ file(GLOB fftw_dft_simd_SOURCE dft/simd/*.c dft/simd file(GLOB fftw_dft_simd_sse2_SOURCE dft/simd/sse2/*.c dft/simd/sse2/*.h) file(GLOB fftw_dft_simd_avx_SOURCE dft/simd/avx/*.c dft/simd/avx/*.h) file(GLOB fftw_dft_simd_avx2_SOURCE dft/simd/avx2/*.c dft/simd/avx2/*.h dft/simd/avx2-128/*.c dft/simd/avx2-128/*.h) +file(GLOB fftw_dft_simd_neon_SOURCE dft/simd/neon/*.c dft/simd/neon/*.h) file(GLOB fftw_kernel_SOURCE kernel/*.c kernel/*.h) file(GLOB fftw_rdft_SOURCE rdft/*.c rdft/*.h) file(GLOB fftw_rdft_scalar_SOURCE rdft/scalar/*.c rdft/scalar/*.h) @@ -230,6 +243,7 @@ file(GLOB fftw_rdft_simd_SOURCE rdft/simd/*.c rdft/sim file(GLOB fftw_rdft_simd_sse2_SOURCE rdft/simd/sse2/*.c rdft/simd/sse2/*.h) file(GLOB fftw_rdft_simd_avx_SOURCE rdft/simd/avx/*.c rdft/simd/avx/*.h) file(GLOB fftw_rdft_simd_avx2_SOURCE rdft/simd/avx2/*.c rdft/simd/avx2/*.h rdft/simd/avx2-128/*.c rdft/simd/avx2-128/*.h) +file(GLOB fftw_rdft_simd_neon_SOURCE rdft/simd/neon/*.c rdft/simd/neon/*.h) file(GLOB fftw_reodft_SOURCE reodft/*.c reodft/*.h) file(GLOB fftw_simd_support_SOURCE simd-support/*.c simd-support/*.h) @@ -283,6 +297,10 @@ if (HAVE_AVX2) list (APPEND SOURCEFILES ${fftw_dft_simd_avx2_SOURCE} ${fftw_rdft_simd_avx2_SOURCE}) endif () +if (HAVE_NEON) + list (APPEND SOURCEFILES ${fftw_dft_simd_neon_SOURCE} ${fftw_rdft_simd_neon_SOURCE}) +endif () + set (FFTW_VERSION 3.3.10) set (PREC_SUFFIX) diff --git a/cmake.config.h.in b/cmake.config.h.in index 1f4c5055..8c61b38f 100644 --- a/cmake.config.h.in +++ b/cmake.config.h.in @@ -211,7 +211,7 @@ /* #undef HAVE_MPI */ /* Define to enable ARM NEON optimizations. */ -/* #undef HAVE_NEON */ +#cmakedefine HAVE_NEON 1 /* Define if OpenMP is enabled */ #cmakedefine HAVE_OPENMP ================================================ FILE: ports/fftw3/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.fftw.org/fftw-3.3.10.tar.gz" FILENAME "fftw-3.3.10.tar.gz" SHA512 2d34b5ccac7b08740dbdacc6ebe451d8a34cf9d9bfec85a5e776e87adf94abfd803c222412d8e10fbaa4ed46f504aa87180396af1b108666cde4314a55610b40 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fftw3_arch_fix.patch aligned_malloc.patch bigobj.patch fix-openmp.patch install-subtargets.patch fix-wrong-version.patch # https://github.com/FFTW/fftw3/commit/0842f00ae6b6e1f3aade155bc0edd17a7313fa6a neon.patch # https://github.com/FFTW/fftw3/pull/275/commits/262f5cfe23af54930b119bd3653bc25bf2d881da ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp ENABLE_OPENMP openmp CMAKE_REQUIRE_FIND_PACKAGE_OpenMP threads ENABLE_THREADS threads WITH_COMBINED_THREADS avx2 ENABLE_AVX2 avx ENABLE_AVX sse2 ENABLE_SSE2 sse ENABLE_SSE ) set(package_names fftw3 fftw3f fftw3l) set(fftw3_options "") set(fftw3f_options -DENABLE_FLOAT=ON) set(fftw3l_options -DENABLE_LONG_DOUBLE=ON -DENABLE_AVX2=OFF -DENABLE_AVX=OFF -DENABLE_SSE2=OFF) if("neon" IN_LIST FEATURES) list(APPEND fftw3f_options -DENABLE_NEON=ON) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") list(APPEND fftw3_options -DENABLE_NEON=ON) endif() endif() foreach(package_name IN LISTS package_names) message(STATUS "${package_name}...") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" LOGFILE_BASE "config-${package_name}-${TARGET_TRIPLET}" OPTIONS ${FEATURE_OPTIONS} ${${package_name}_options} # may override FEATURE_OPTIONS -DBUILD_TESTS=OFF MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_OpenMP ) vcpkg_cmake_build( LOGFILE_BASE "install-${package_name}" TARGET install ) vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "${package_name}" CONFIG_PATH "lib/cmake/${package_name}") endforeach() vcpkg_fixup_pkgconfig() file(READ "${SOURCE_PATH}/api/fftw3.h" _contents) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "defined(FFTW_DLL)" "0" _contents "${_contents}") else() string(REPLACE "defined(FFTW_DLL)" "1" _contents "${_contents}") endif() file(WRITE "${SOURCE_PATH}/include/fftw3.h" "${_contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/fftw3/vcpkg.json ================================================ { "name": "fftw3", "version": "3.3.10", "port-version": 10, "description": "FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).", "homepage": "https://www.fftw.org/", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "avx": { "description": "Builds part of the library with avx, sse2, sse", "supports": "!arm" }, "avx2": { "description": "Builds part of the library with avx2, fma, avx, sse2, sse", "supports": "!arm" }, "neon": { "description": "Builds part of the library with neon", "supports": "(linux | android) & arm" }, "openmp": { "description": "Builds openmp enabled lib" }, "sse": { "description": "Builds part of the library with sse", "supports": "!arm" }, "sse2": { "description": "Builds part of the library with sse2, sse", "supports": "!arm" }, "threads": { "description": "Enable threads in fftw3" } } } ================================================ FILE: ports/fftwpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dealias/fftwpp REF d05a2812995a52a3834140fd3ddd2e80bf8fcd42 SHA512 851c79245eb61ebebfde97e7a8f3b9c061e84c9df571b5a7cafc3e959941e7b0792923e0ddefde4739582932d135c578c703195017da4bd34872adce7ab8c5ee HEAD_REF master ) # fftwpp is a header-only library set (FFWTPP_SOURCE_FILES ${SOURCE_PATH}/Array.h ${SOURCE_PATH}/Array.cc ${SOURCE_PATH}/Complex.h ${SOURCE_PATH}/Complex.cc ${SOURCE_PATH}/align.h ${SOURCE_PATH}/cmult-sse2.h ${SOURCE_PATH}/convolution.h ${SOURCE_PATH}/convolution.cc ${SOURCE_PATH}/fftw++.h ${SOURCE_PATH}/fftw++.cc ${SOURCE_PATH}/seconds.h ${SOURCE_PATH}/statistics.h ${SOURCE_PATH}/transposeoptions.h ) set(FFWTPP_DOXY_CFG ${SOURCE_PATH}/fftw++.doxycfg) file(INSTALL ${FFWTPP_SOURCE_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(INSTALL ${FFWTPP_DOXY_CFG} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/fftwpp/vcpkg.json ================================================ { "name": "fftwpp", "version-date": "2019-12-19", "port-version": 2, "description": "FFTW++ is a C++ header/MPI transpose for Version 3 of the highly optimized FFTW (https://www.fftw.org) Fourier Transform library.", "homepage": "https://www.fftw.org/", "dependencies": [ "fftw3" ] } ================================================ FILE: ports/fineftp/asio.patch ================================================ diff --git a/fineftp-server/CMakeLists.txt b/fineftp-server/CMakeLists.txt index e4e3152..9e609d9 100644 --- a/fineftp-server/CMakeLists.txt +++ b/fineftp-server/CMakeLists.txt @@ -10,7 +10,7 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) find_package(Threads REQUIRED) -find_package(asio REQUIRED) +find_package(asio CONFIG REQUIRED) # Include GenerateExportHeader that will create export macros for us include(GenerateExportHeader) ================================================ FILE: ports/fineftp/portfile.cmake ================================================ #Get release from GitHub vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-ecal/fineftp-server REF "v${VERSION}" SHA512 10e6fe6724e1751cb72d212f5fc8053b9c715e79ab41b080beb35c3501377b9e8fd8137de0b30266709aa34432dfa4593026db1b04735f7c1a4dbde90763ea97 HEAD_REF master PATCHES asio.patch ) # Configure vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME fineftp CONFIG_PATH lib/cmake/fineftp ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/fineftp/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "fineftp", "version": "1.5.1", "description": "FineFTP is a minimal FTP server library for Windows and Unix flavors.", "homepage": "https://github.com/eclipse-ecal/fineftp-server", "license": "MIT", "supports": "!uwp & !android", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fins/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lammertb/libfins REF 5525ef513137507ec3ecab68c698a21b30497bc3 SHA512 6d5c039cefa55183460b14c226a77e24a93200a288486fca6fd5a3639d78e028a89a7eb25775c802cd78fdb371b0cae05236926612395896f56b23f61f5e5e87 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fins/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "fins", "version-date": "2023-07-31", "maintainers": "Lammert Bies", "description": "LibFINS is an MIT licensed library written in C implementing the FINS/TCP protocol used for communication between Omron PLCs. The library contains all the documented client FINS functions. This open source library is a spin-off of a larger project which also implements FINS/UDP client communication and a FINS server engine.", "homepage": "https://www.libfins.org", "documentation": "https://www.libfins.org/api-reference/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fixed-containers/add-install-configuration.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2738060..4f3aedd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,6 +236,13 @@ if (FIXED_CONTAINERS_OPT_INSTALL) target_include_directories(fixed_containers INTERFACE $) include(CMakePackageConfigHelpers) + + configure_package_config_file( + ${PROJECT_NAME}Config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}/ + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + write_basic_package_version_file(${PROJECT_NAME}ConfigVersion.cmake VERSION "0.0.0" COMPATIBILITY AnyNewerVersion @@ -249,11 +256,14 @@ if (FIXED_CONTAINERS_OPT_INSTALL) install(EXPORT ${PROJECT_NAME}Config NAMESPACE ${PROJECT_NAME}:: + FILE ${PROJECT_NAME}-targets.cmake DESTINATION lib/cmake/${PROJECT_NAME}) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include DESTINATION .) - export(EXPORT ${PROJECT_NAME}Config - NAMESPACE ${PROJECT_NAME}::) + install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + DESTINATION lib/cmake/${PROJECT_NAME}) endif() ================================================ FILE: ports/fixed-containers/fixed_containersConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(magic_enum CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/fixed_containers-targets.cmake") ================================================ FILE: ports/fixed-containers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO teslamotors/fixed-containers REF 1ad10a6ca835611124f54a1d8ed04bcf7ab53da4 SHA512 71b7ea86ed45bac39c2f22c572f84d3a9862aab350eeef5d72c6061d42c10bf7fad26cafc6c6b991cdf3ac758b23c29fd8d3414f1b2af7c65058bc31d000b49b HEAD_REF main PATCHES add-install-configuration.patch ) set(VCPKG_BUILD_TYPE release) # header-only file(COPY "${CMAKE_CURRENT_LIST_DIR}/fixed_containersConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DFIXED_CONTAINERS_OPT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME fixed_containers CONFIG_PATH lib/cmake/fixed_containers) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fixed-containers/vcpkg.json ================================================ { "name": "fixed-containers", "version-date": "2024-09-19", "description": "C++ Fixed Containers", "homepage": "https://github.com/teslamotors/fixed-containers", "license": "MIT", "dependencies": [ "magic-enum", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fixed-math/disable-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bfd3c01..d9f7abe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.21 FATAL_ERROR ) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules") include(get_fixed_math_version) -include(cmake/CPM.cmake) project(fixed_math LANGUAGES CXX ================================================ FILE: ports/fixed-math/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arturbac/fixed_math REF "v${VERSION}" SHA512 fc1415e205cc5f2a63ad8019397c9aad082a7f256d050f894b3e2b6f3824396142333004a3a11a024594d7c95e5b302e8cab75faa9fc3563a5e04db1791efaf6 HEAD_REF master PATCHES disable-cpm.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFIXEDMATH_ENABLE_UNIT_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME fixed_math CONFIG_PATH lib/cmake/fixed_math) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") ================================================ FILE: ports/fixed-math/vcpkg.json ================================================ { "name": "fixed-math", "version": "2.2.0", "description": "A High-Performance C++23, C++17 Library for Fixed-Point 48.16 Arithmetic", "homepage": "https://github.com/arturbac/fixed_math", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fixed-string/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unterumarmung/fixed_string REF v0.1.1 SHA512 8367f7cf898dd88918913f6e788cc5841eab7cd56d61f3ea21636bf3253f450d5dd6207a259d4c5980d863c2ce55fba35e3e8944341f56dbfd56faa29c39746e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFIXED_STRING_OPT_BUILD_EXAMPLES=OFF -DFIXED_STRING_OPT_BUILD_TESTS=OFF -DFIXED_STRING_OPT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME fixed_string CONFIG_PATH lib/cmake/fixed_string) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/fixed-string/vcpkg.json ================================================ { "name": "fixed-string", "version": "0.1.1", "description": "Header-only C++17 library provides a string class with std::array fixed-size semantic.", "homepage": "https://github.com/unterumarmung/fixed_string", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fizz/fix-build.patch ================================================ diff --git a/fizz/CMakeLists.txt b/fizz/CMakeLists.txt index 995d207..d266d67 100644 --- a/fizz/CMakeLists.txt +++ b/fizz/CMakeLists.txt @@ -60,25 +60,28 @@ endif() find_package(fmt CONFIG REQUIRED) find_package(OpenSSL REQUIRED) -find_package(Glog REQUIRED) +find_package(glog CONFIG REQUIRED) +set(GLOG_LIBRARIES glog::glog) add_compile_definitions(GLOG_USE_GLOG_EXPORT) find_package(Threads REQUIRED) -find_package(Zstd REQUIRED) +find_package(zstd CONFIG REQUIRED) +set(ZSTD_LIBRARY zstd::libzstd) if (UNIX AND NOT APPLE) find_package(Librt) endif() include(CheckAtomic) -find_package(Sodium REQUIRED) -set(FIZZ_HAVE_SODIUM ${Sodium_FOUND}) +find_package(unofficial-sodium CONFIG REQUIRED) +set(FIZZ_HAVE_SODIUM ${unofficial-sodium_FOUND}) SET(FIZZ_SHINY_DEPENDENCIES "") SET(FIZZ_LINK_LIBRARIES "") SET(FIZZ_INCLUDE_DIRECTORIES "") -find_package(gflags CONFIG QUIET) -if (gflags_FOUND) +find_package(gflags CONFIG REQUIRED) +set(GFLAGS_LIBRARIES gflags::gflags) +if (0) message(STATUS "Found gflags from package config") if (TARGET gflags-shared) list(APPEND FIZZ_SHINY_DEPENDENCIES gflags-shared) @@ -89,7 +92,7 @@ if (gflags_FOUND) endif() list(APPEND CMAKE_REQUIRED_LIBRARIES ${GFLAGS_LIBRARIES}) list(APPEND CMAKE_REQUIRED_INCLUDES ${GFLAGS_INCLUDE_DIR}) -else() +elseif(0) find_package(Gflags REQUIRED MODULE) list(APPEND FIZZ_LINK_LIBRARIES ${LIBGFLAGS_LIBRARY}) list(APPEND FIZZ_INCLUDE_DIRECTORIES ${LIBGFLAGS_INCLUDE_DIR}) @@ -97,12 +100,13 @@ else() list(APPEND CMAKE_REQUIRED_INCLUDES ${LIBGFLAGS_INCLUDE_DIR}) endif() +find_package(gflags CONFIG REQUIRED) find_package(ZLIB REQUIRED) -find_package(Libevent CONFIG QUIET) -if(TARGET event) +find_package(Libevent CONFIG REQUIRED) +if(TARGET libevent::core) message(STATUS "Found libevent from package config") - list(APPEND FIZZ_SHINY_DEPENDENCIES event) + list(APPEND FIZZ_SHINY_DEPENDENCIES libevent::core) else() find_package(Libevent MODULE REQUIRED) list(APPEND FIZZ_LINK_LIBRARIES ${LIBEVENT_LIB}) @@ -209,12 +213,7 @@ target_include_directories( $ $ $ - ${FOLLY_INCLUDE_DIR} - ${OPENSSL_INCLUDE_DIR} - ${sodium_INCLUDE_DIR} - ${ZSTD_INCLUDE_DIR} PRIVATE - ${GLOG_INCLUDE_DIRS} ${FIZZ_INCLUDE_DIRECTORIES} ) @@ -261,7 +260,7 @@ target_link_libraries(fizz Folly::folly_portability_unistd Folly::folly_detail_base64_detail_base64_api ${OPENSSL_LIBRARIES} - sodium + unofficial-sodium::sodium Threads::Threads ZLIB::ZLIB ${ZSTD_LIBRARY} @@ -333,8 +332,7 @@ ENDIF(CMAKE_CROSSCOMPILING) SET(FIZZ_TEST_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) if(BUILD_TESTS) - find_package(GMock 1.8.0 MODULE REQUIRED) - find_package(GTest 1.8.0 MODULE REQUIRED) + find_package(GTest CONFIG REQUIRED) endif() add_library(fizz_test_support diff --git a/fizz/cmake/fizz-config.cmake.in b/fizz/cmake/fizz-config.cmake.in index 07b4d01..3004ad2 100644 --- a/fizz/cmake/fizz-config.cmake.in +++ b/fizz/cmake/fizz-config.cmake.in @@ -32,9 +32,18 @@ set(FIZZ_LIBRARIES fizz::fizz) include(CMakeFindDependencyMacro) -find_dependency(Sodium) +find_dependency(unofficial-sodium CONFIG) find_dependency(folly CONFIG) find_dependency(ZLIB) +find_dependency(Libevent CONFIG) +find_dependency(fmt CONFIG) +find_dependency(OpenSSL) +find_dependency(glog CONFIG) +find_dependency(double-conversion CONFIG) +find_dependency(Threads) +find_dependency(gflags CONFIG) +find_dependency(zstd CONFIG) +find_dependency(GTest CONFIG) if(FIZZ_HAVE_OQS) find_dependency(liboqs CONFIG) endif() ================================================ FILE: ports/fizz/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebookincubator/fizz REF "v${VERSION}" SHA512 0246c3add82002f648fd9844ab3f4062265049de3976a5e4cb92b5a8eea8ac3778254dac61364abd7cdc582b223d0d062049b5664100376913a2b153c5638afb HEAD_REF main PATCHES fix-build.patch ) # Prefer installed config files file(REMOVE "${SOURCE_PATH}/fizz/cmake/FindGMock.cmake" "${SOURCE_PATH}/fizz/cmake/FindGflags.cmake" "${SOURCE_PATH}/fizz/cmake/FindGlog.cmake" "${SOURCE_PATH}/fizz/cmake/FindLibevent.cmake" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/fizz" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DINCLUDE_INSTALL_DIR:STRING=include ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fizz) vcpkg_copy_pdbs() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fizz/fizz-config.cmake" "lib/cmake/fizz" "share/fizz") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/fizz/crypto/aead/test/facebook" "${CURRENT_PACKAGES_DIR}/include/fizz/record/test/facebook" "${CURRENT_PACKAGES_DIR}/include/fizz/server/test/facebook" "${CURRENT_PACKAGES_DIR}/include/fizz/tool/test" "${CURRENT_PACKAGES_DIR}/include/fizz/util/test") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fizz/vcpkg.json ================================================ { "name": "fizz", "version-string": "2026.02.23.00", "description": "a TLS 1.3 implementation by Facebook", "homepage": "https://github.com/facebookincubator/fizz", "license": "BSD-3-Clause", "dependencies": [ "double-conversion", "fmt", "folly", "gflags", "glog", "gtest", "libevent", "libsodium", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zstd" ] } ================================================ FILE: ports/fkyaml/fix-natvis-install.patch ================================================ CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c2b923..7e7d447 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,11 +79,12 @@ target_include_directories( if(MSVC) set(FK_YAML_INSTALL_NATVIS ON) set(FK_YAML_NATVIS_FILE ${FK_YAML_TARGET_NAME}.natvis) + set(FK_YAML_NATVIS_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}") target_sources( ${FK_YAML_TARGET_NAME} INTERFACE $ - $ + $ ) endif() @@ -171,7 +172,7 @@ if(FK_YAML_INSTALL) if(FK_YAML_INSTALL_NATVIS) install( FILES ${FK_YAML_NATVIS_FILE} - DESTINATION . + DESTINATION "${FK_YAML_NATVIS_INSTALL_DIR}" ) endif() ================================================ FILE: ports/fkyaml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fktn-k/fkYAML REF "v${VERSION}" SHA512 20a7e2a236f77e27a676348585cbf6c36d8c46f1ad0964b879eb61925e3d6545d6dda46379b897712890faa2b8d5e837b7f9cc312448a3d762f0017c618cbcd1 HEAD_REF develop PATCHES fix-natvis-install.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFK_YAML_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/fkYAML) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/fkyaml/vcpkg.json ================================================ { "name": "fkyaml", "version": "0.4.2", "port-version": 1, "description": "A C++ header-only YAML library", "homepage": "https://github.com/fktn-k/fkYAML", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flagpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/flagpp REF "v${VERSION}" SHA512 92e324b1cd773ae256c50d389fe1b30ac71237dfb299bae1e413e97b8057433dccb8a6c93ce16f05edc0de624893165491ac621e1b9da9f512df531bd69b504b HEAD_REF master PATCHES remove-cpm.patch # Note: Removed also the ALIAS library as packageProject creates it ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.13.0" SHA512 3cf0523bddc213f206ed0ca57803550cb7db9e293392d3741138be47f49d9027ef517e1656235a349a62b492d35c3fc677714dc00afe59e2d36144a9689cfa8f HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flagpp/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 052b07e..fcd8583 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,6 @@ option(flagpp_tests "Whether or not tests should be enabled" OFF) # -------------------------------------------------------------------------------------------------------- add_library(${PROJECT_NAME} INTERFACE) -add_library(cr::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_23) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 23 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON) @@ -39,13 +38,7 @@ endif() # Install Targets # -------------------------------------------------------------------------------------------------------- -include("cmake/cpm.cmake") - -CPMFindPackage( - NAME PackageProject - VERSION 1.13.0 - GIT_REPOSITORY "https://github.com/TheLartians/PackageProject.cmake" -) +add_subdirectory(cmake/packageproject.cmake) packageProject( NAMESPACE cr ================================================ FILE: ports/flagpp/vcpkg.json ================================================ { "name": "flagpp", "version": "3.1.0", "description": "A C++20 library that provides (opt-in) bit-wise operations for arbitrary `enum class`es", "homepage": "https://github.com/Curve/flagpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flann/fix-dep-lz4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fd73ba..ff357f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,8 +155,8 @@ if (BUILD_CUDA_LIB) endif(CUDA_FOUND) endif(BUILD_CUDA_LIB) -find_package(PkgConfig REQUIRED) -pkg_check_modules(LZ4 REQUIRED liblz4) +find_package(lz4 CONFIG REQUIRED) +set(LZ4_LINK_LIBRARIES lz4::lz4) include_directories(${LZ4_INCLUDE_DIRS}) #set the C/C++ include path to the "include" directory diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index 6b95a71..d78c74a 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,5 +1,10 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(lz4 CONFIG) +if(@WITH_HDF5@) + find_dependency(HDF5 CONFIG) +endif() include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") check_required_components("flann") diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index 7603abc..cb31f6f 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -24,7 +24,9 @@ target_link_libraries(flann_cpp ${LZ4_LINK_LIBRARIES}) # export lz4 headers, so that MSVC to creates flann_cpp.lib set_target_properties(flann_cpp PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS YES) -set(flann_install_targets flann_cpp) +if (NOT CMAKE_BUILD_STATIC_LIBS) + set(flann_install_targets flann_cpp) +endif() if (BUILD_CUDA_LIB) SET(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-DFLANN_USE_CUDA;-Xcudafe \"--diag_suppress=partial_override\" ;-gencode=arch=compute_52,code=\"sm_52,compute_52\";-gencode=arch=compute_61,code=\"sm_61,compute_61\"") @@ -45,9 +47,12 @@ if (BUILD_CUDA_LIB) endif() cuda_add_library(flann_cuda SHARED ${CU_SOURCES}) - list(APPEND flann_install_targets flann_cuda) - set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA) + if (NOT CMAKE_BUILD_STATIC_LIBS) + list(APPEND flann_install_targets flann_cuda) + set_property(TARGET flann_cpp PROPERTY COMPILE_DEFINITIONS FLANN_USE_CUDA) + endif() set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC FLANN_USE_CUDA) + else() set_property(TARGET flann_cpp_s PROPERTY COMPILE_DEFINITIONS FLANN_STATIC) endif() @@ -94,8 +99,9 @@ if (BUILD_C_BINDINGS) add_library(flann SHARED ${C_SOURCES}) target_link_libraries(flann ${LZ4_LINK_LIBRARIES}) - list(APPEND flann_install_targets flann) - + if (NOT CMAKE_BUILD_STATIC_LIBS) + list(APPEND flann_install_targets flann) + endif() if(MINGW AND OPENMP_FOUND) target_link_libraries(flann gomp) endif() ================================================ FILE: ports/flann/fix-dependency-hdf5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f1dbcb74..5587c896e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,11 +77,19 @@ if (NOT PYTHON_EXECUTABLE) endif() endif() -find_hdf5() +if (WITH_HDF5) +find_package(HDF5 CONFIG REQUIRED) if (NOT HDF5_FOUND) - message(WARNING "hdf5 library not found, some tests will not be run") + message(ERROR "hdf5 library not found") else() - include_directories(${HDF5_INCLUDE_DIR}) + if (TARGET hdf5::hdf5-shared) + link_libraries(hdf5::hdf5-shared) + elseif (TARGET hdf5::hdf5-static) + link_libraries(hdf5::hdf5-static) + endif() + set(PKG_EXTERNAL_DEPS "${PKG_EXTERNAL_DEPS} hdf5") + set(CMAKE_EXTERNAL_DEPS "find_dependency(HDF5)") +endif() endif() if (USE_MPI OR HDF5_IS_PARALLEL) diff --git a/cmake/flann_utils.cmake b/cmake/flann_utils.cmake index 8aef8e0..747414f 100644 --- a/cmake/flann_utils.cmake +++ b/cmake/flann_utils.cmake @@ -21,21 +21,8 @@ endmacro(DISSECT_VERSION) # workaround a FindHDF5 bug macro(find_hdf5) - find_package(HDF5) - - set( HDF5_IS_PARALLEL FALSE ) - foreach( _dir ${HDF5_INCLUDE_DIRS} ) - if( EXISTS "${_dir}/H5pubconf.h" ) - file( STRINGS "${_dir}/H5pubconf.h" - HDF5_HAVE_PARALLEL_DEFINE - REGEX "HAVE_PARALLEL 1" ) - if( HDF5_HAVE_PARALLEL_DEFINE ) - set( HDF5_IS_PARALLEL TRUE ) - endif() - endif() - endforeach() - set( HDF5_IS_PARALLEL ${HDF5_IS_PARALLEL} CACHE BOOL - "HDF5 library compiled with parallel IO support" ) + find_package(hdf5 CONFIG) + set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL}) mark_as_advanced( HDF5_IS_PARALLEL ) endmacro(find_hdf5) ================================================ FILE: ports/flann/portfile.cmake ================================================ #the port uses inside the CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, which is discouraged by vcpkg. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flann-lib/flann REF f9caaf609d8b8cb2b7104a85cf59eb92c275a25d SHA512 14cd7d3249109ce66c43258f8b9d158efa3b57f654708e76751290eba25e2cb7fc8044a1d882c6b24d0cda1a8b206709acdb5338086ca1f2d60fef35f0fa85be HEAD_REF master PATCHES fix-dependency-hdf5.patch fix-dep-lz4.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hdf5 WITH_HDF5 cuda BUILD_CUDA_LIB ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(LINK_STATIC ON) else() set(LINK_STATIC OFF) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_DOC=OFF -DBUILD_PYTHON_BINDINGS=OFF -DBUILD_MATLAB_BINDINGS=OFF -DUSE_OPENMP=OFF -DCMAKE_BUILD_STATIC_LIBS=${LINK_STATIC} OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/flann/vcpkg.json ================================================ { "name": "flann", "version-date": "2022-10-28", "description": "Fast Library for Approximate Nearest Neighbors", "homepage": "https://github.com/mariusmuja/flann", "license": "BSD-3-Clause", "dependencies": [ "lz4", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "CUDA support for FLANN", "dependencies": [ "cuda" ] }, "hdf5": { "description": "Build with hdf5", "dependencies": [ "hdf5" ] } } } ================================================ FILE: ports/flash-runtime-extensions/README.md ================================================ # flash-runtime-extensions CMake port of FlashRuntimeExtensions for vcpkg ================================================ FILE: ports/flash-runtime-extensions/portfile.cmake ================================================ set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO al-sabr/FlashRuntimeExtensions REF v2.4 SHA512 16db340a9c8d868c64b9771e3ac9a20e775fa145f36158e798733b788fd99d1ac101bfae93b8f88b0e5a0a530e0261c1fbdf7d367031dd3108c14ee00a106c10 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/flash-runtime-extensions/vcpkg.json ================================================ { "name": "flash-runtime-extensions", "version": "2.4", "port-version": 1, "description": "Adobe AIR Native Extension API for Windows/MacOS/Linux", "homepage": "https://github.com/al-sabr/FlashRuntimeExtensions", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flashlight-cpu/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d9eacb..b530743 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,7 +183,7 @@ if (FL_BUILD_CORE) # If cereal is found in a user-defined location, use it rather than # downloading from source - find_package(cereal) + find_package(cereal CONFIG REQUIRED) if (NOT TARGET cereal AND NOT cereal_FOUND AND FL_BUILD_STANDALONE) message(STATUS "cereal NOT found. Will download from source") set(CEREAL_INSTALL_PATH ${FL_INSTALL_INC_DIR}/cereal) @@ -206,7 +206,6 @@ if (FL_BUILD_CORE) message(STATUS "Found cereal") target_link_libraries(flashlight PRIVATE cereal) endif() - setup_install_find_module(${CMAKE_MODULE_PATH}/Findcereal.cmake) # -------------------- Locate Backend-specific Dependencies -------------------- # TODO: rather than conditionally searching for backend-specific dependencies, diff --git a/cmake/flashlightConfig.cmake.in b/cmake/flashlightConfig.cmake.in index 00f9442..f265b8f 100644 --- a/cmake/flashlightConfig.cmake.in +++ b/cmake/flashlightConfig.cmake.in @@ -36,6 +36,7 @@ if (@FL_BUILD_LIBRARIES@) endif() # Core dependencies if (@FL_BUILD_CORE@) + find_dependency(cereal CONFIG) find_dependency(ArrayFire 3.7.1) endif() if (@FL_BUILD_DISTRIBUTED@) ================================================ FILE: ports/flashlight-cpu/portfile.cmake ================================================ if (EXISTS "${CURRENT_INSTALLED_DIR}/share/flashlight") message(FATAL_ERROR "Only one of flashlight-cpu and flashlight-cuda" "can be installed at once. Uninstall and try again:" "\n vcpkg remove flashlight-cuda\n") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flashlight/flashlight REF 626914e79073c5547513de649af706f7e2b796ad # 0.3 branch tip SHA512 a22057cfa4cfe7acd95cbc5445a30870cce3cdde89066d1d75f40be0d73b069a49e89b226fe5337488cfe5618dd25958679c0636a3e4008312f01606328becfa HEAD_REF master PATCHES fix-dependencies.patch ) ################################### Build ################################### # Default flags set(FL_DEFAULT_VCPKG_CMAKE_FLAGS -DFL_BUILD_TESTS=OFF -DFL_BUILD_EXAMPLES=OFF -DFL_BACKEND=CPU # this port is CPU-backend only -DFL_BUILD_STANDALONE=OFF ) # Determine which components to build via specified feature vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES lib FL_BUILD_LIBRARIES fl FL_BUILD_CORE asr FL_BUILD_APP_ASR imgclass FL_BUILD_APP_IMGCLASS lm FL_BUILD_APP_LM objdet FL_BUILD_APP_OBJDET ) # Build and install vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FL_DEFAULT_VCPKG_CMAKE_FLAGS} ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share/flashlight" OPTIONS_RELEASE "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share/flashlight" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME flashlight) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Binaries/tools set(FLASHLIGHT_TOOLS "") if ("imgclass" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_img_imagenet_resnet34 fl_img_imagenet_eval fl_img_imagenet_vit ) endif() if ("asr" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_asr_train fl_asr_test fl_asr_decode fl_asr_align fl_asr_voice_activity_detection_ctc fl_asr_arch_benchmark ) endif() if ("lm" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_lm_dictionary_builder fl_lm_train fl_lm_test ) endif() list(LENGTH FLASHLIGHT_TOOLS NUM_TOOLS) if (NUM_TOOLS GREATER 0) vcpkg_copy_tools(TOOL_NAMES ${FLASHLIGHT_TOOLS} AUTO_CLEAN) endif() # Copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/flashlight-cpu/vcpkg.json ================================================ { "name": "flashlight-cpu", "version": "0.3", "port-version": 5, "description": "A C++ standalone library for machine learning. CPU backend.", "homepage": "https://github.com/facebookresearch/flashlight", "license": "MIT", "supports": "!(windows | osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "fl" ], "features": { "asr": { "description": "flashlight asr app", "dependencies": [ { "name": "flashlight-cpu", "features": [ "fl", "lib" ] }, "gflags", { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] } ] }, "fl": { "description": "flashlight core autograd and neural net library", "dependencies": [ { "name": "arrayfire", "features": [ "cpu" ] }, "cereal", { "name": "gloo", "features": [ "mpi" ] }, "onednn", "openmpi", "stb" ] }, "imgclass": { "description": "flashlight image classification app", "dependencies": [ { "name": "flashlight-cpu", "features": [ "fl", "lib" ] }, "gflags" ] }, "lib": { "description": "flashlight libraries", "dependencies": [ "fftw3", "intel-mkl", "kenlm" ] }, "lm": { "description": "flashlight lm app", "dependencies": [ { "name": "flashlight-cpu", "features": [ "fl", "lib" ] }, "gflags" ] }, "objdet": { "description": "flashlight object detection app", "dependencies": [ { "name": "flashlight-cpu", "features": [ "fl", "imgclass", "lib" ] }, "gflags" ] } } } ================================================ FILE: ports/flashlight-cuda/portfile.cmake ================================================ if (EXISTS "${CURRENT_INSTALLED_DIR}/share/flashlight") message(FATAL_ERROR "Only one of flashlight-cpu and flashlight-cuda" "can be installed at once. Uninstall and try again:" "\n vcpkg remove flashlight-cuda\n") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flashlight/flashlight REF 626914e79073c5547513de649af706f7e2b796ad # 0.3 branch tip SHA512 a22057cfa4cfe7acd95cbc5445a30870cce3cdde89066d1d75f40be0d73b069a49e89b226fe5337488cfe5618dd25958679c0636a3e4008312f01606328becfa HEAD_REF master ) ################################### Build ################################### # Default flags set(FL_DEFAULT_VCPKG_CMAKE_FLAGS -DFL_BUILD_TESTS=OFF -DFL_BUILD_EXAMPLES=OFF -DFL_BACKEND=CUDA # this port is CUDA-backend only -DFL_BUILD_STANDALONE=OFF ) # Determine which components to build via specified feature vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES lib FL_BUILD_LIBRARIES fl FL_BUILD_CORE asr FL_BUILD_APP_ASR imgclass FL_BUILD_APP_IMGCLASS lm FL_BUILD_APP_LM objdet FL_BUILD_APP_OBJDET ) # Build and install vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FL_DEFAULT_VCPKG_CMAKE_FLAGS} ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share/flashlight" OPTIONS_RELEASE "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share/flashlight" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME flashlight) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Binaries/tools set(FLASHLIGHT_TOOLS "") if ("imgclass" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_img_imagenet_resnet34 fl_img_imagenet_eval fl_img_imagenet_vit ) endif() if ("asr" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_asr_train fl_asr_test fl_asr_decode fl_asr_align fl_asr_voice_activity_detection_ctc fl_asr_arch_benchmark ) endif() if ("lm" IN_LIST FEATURES) list(APPEND FLASHLIGHT_TOOLS fl_lm_dictionary_builder fl_lm_train fl_lm_test ) endif() list(LENGTH FLASHLIGHT_TOOLS NUM_TOOLS) if (NUM_TOOLS GREATER 0) vcpkg_copy_tools(TOOL_NAMES ${FLASHLIGHT_TOOLS} AUTO_CLEAN) endif() # Copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/flashlight-cuda/vcpkg.json ================================================ { "name": "flashlight-cuda", "version": "0.3", "port-version": 7, "description": "A C++ standalone library for machine learning. CUDA backend.", "homepage": "https://github.com/facebookresearch/flashlight", "license": "MIT", "supports": "!(windows | osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "fl" ], "features": { "asr": { "description": "flashlight asr app", "dependencies": [ { "name": "flashlight-cuda", "features": [ "fl", "lib" ] }, "gflags", { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] } ] }, "fl": { "description": "flashlight core autograd and neural net library", "dependencies": [ { "name": "arrayfire", "features": [ "cuda" ] }, "cereal", "cuda", "cudnn", "nccl", "openmpi", "stb" ] }, "imgclass": { "description": "flashlight image classification app", "dependencies": [ { "name": "flashlight-cuda", "features": [ "fl", "lib" ] }, "gflags" ] }, "lib": { "description": "flashlight libraries", "dependencies": [ "cuda", "fftw3", "intel-mkl", "kenlm" ] }, "lm": { "description": "flashlight lm app", "dependencies": [ { "name": "flashlight-cuda", "features": [ "fl", "lib" ] }, "gflags" ] }, "objdet": { "description": "flashlight object detection app", "dependencies": [ { "name": "flashlight-cuda", "features": [ "fl", "imgclass", "lib" ] }, "gflags" ] } } } ================================================ FILE: ports/flashlight-sequence/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flashlight/sequence REF v${VERSION} SHA512 215bb4988fbdd31573965c3c5d88d40b247cbca49f092dcdb89b5f2ca422d5774e941de843433fd3effd8f09569a7e0c2cc61364b5f0a210f156933e4c00f16b HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp FL_SEQUENCE_USE_OPENMP cuda FL_SEQUENCE_USE_CUDA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFL_SEQUENCE_BUILD_TESTS=OFF -DFL_SEQUENCE_BUILD_STANDALONE=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}" OPTIONS_RELEASE "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flashlight-sequence/vcpkg.json ================================================ { "name": "flashlight-sequence", "version": "0.0.1", "description": "Flashlight Sequence is a library containing fast implementations of sequence loss algorithms.", "homepage": "https://github.com/flashlight/sequence", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Build CUDA components", "dependencies": [ "cuda" ] }, "openmp": { "description": "Build with OpenMP" } } } ================================================ FILE: ports/flashlight-text/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO flashlight/text REF v${VERSION} SHA512 465663e146efdc26a0faf01c8d3062945947204e8d6552a17f7bd567e5e4fdcfae75177ce7cbf2a3677166158e6b9322707974a21f9cd8a3b89b759bd61ed38d HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES kenlm FL_TEXT_USE_KENLM ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFL_TEXT_BUILD_TESTS=OFF -DFL_TEXT_BUILD_STANDALONE=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}" OPTIONS_RELEASE "-DFL_INSTALL_CMAKE_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flashlight-text/vcpkg.json ================================================ { "name": "flashlight-text", "version": "0.0.7", "description": "Flashlight Text is a library for tokenization, beam search, and text processing.", "homepage": "https://github.com/flashlight/text", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "kenlm": { "description": "Build with KenLM", "dependencies": [ "kenlm" ] } } } ================================================ FILE: ports/flat/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pubby/flat REF 7ddca21388ad45d5b830d836b256d47d1289315f SHA512 eecb9683c681e46e166140c491536f87ec78c6ed456ad0295f2b53631c377c6356fea6bb8a2d17ca27457807a03f9e188bf27b3ff489d78624ab997957279cf3 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/flat FILES_MATCHING PATTERN "*.hpp") file(INSTALL ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/flat RENAME copyright) ================================================ FILE: ports/flat/vcpkg.json ================================================ { "name": "flat", "version-date": "2022-08-30", "description": "Flat Containers Library", "homepage": "https://github.com/pubby/flat", "license": "BSL-1.0" } ================================================ FILE: ports/flatbuffers/fix-runtime-flags-msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f7f388f..4ab8149 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -456,12 +456,14 @@ if(FLATBUFFERS_BUILD_FLATC) endif() target_link_libraries(flatc PRIVATE $) + if(FALSE) # DONT mess with runtime flags target_compile_options(flatc PRIVATE $<$,$>: /MT > ) + endif() if(FLATBUFFERS_CODE_SANITIZE AND NOT WIN32) add_fsanitize_to_target(flatc ${FLATBUFFERS_CODE_SANITIZE}) ================================================ FILE: ports/flatbuffers/fix-uwp-build.patch ================================================ diff --git a/src/util.cpp b/src/util.cpp index aabc23a..06e9ebe 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -434,9 +434,15 @@ bool ReadEnvironmentVariable(const char *var_name, std::string *_value) { #ifdef _MSC_VER __pragma(warning(disable : 4996)); // _CRT_SECURE_NO_WARNINGS #endif +#if _WIN32_WINNT < 0x0A00 auto env_str = std::getenv(var_name); if (!env_str) return false; if (_value) *_value = std::string(env_str); +#else + //There is no support for environment variables in UWP + var_name; // Do nothing + *_value = std::string(""); +#endif return true; } ================================================ FILE: ports/flatbuffers/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/flatbuffers REF "v${VERSION}" SHA512 808c77536fbfb1c8a1145506873a2b4e5cb508e48bf35f8502a2d1349b64e7581bfe7ff2f587b3edb2642cc885c60c0170a8875fad245240a1288057f4c07a42 HEAD_REF master PATCHES fix-uwp-build.patch fix-runtime-flags-msvc.patch ) set(options "") if(VCPKG_CROSSCOMPILING) list(APPEND options -DFLATBUFFERS_BUILD_FLATC=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) # The option may cause "#error Unsupported architecture" list(APPEND options -DFLATBUFFERS_OSX_BUILD_UNIVERSAL=OFF) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_GRPCTEST=OFF ${options} OPTIONS_DEBUG -DFLATBUFFERS_BUILD_FLATC=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/flatbuffers) vcpkg_fixup_pkgconfig() file(GLOB flatc_path ${CURRENT_PACKAGES_DIR}/bin/flatc*) if(flatc_path) vcpkg_copy_tools(TOOL_NAMES flatc AUTO_CLEAN) else() file(APPEND "${CURRENT_PACKAGES_DIR}/share/flatbuffers/flatbuffers-config.cmake" "\ninclude(\"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}/share/flatbuffers/FlatcTargets.cmake\")\n") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/flatbuffers/pch") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flatbuffers/vcpkg.json ================================================ { "name": "flatbuffers", "version": "25.12.19", "description": "FlatBuffers is a cross platform serialization library architected for maximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility.", "homepage": "https://google.github.io/flatbuffers/", "license": "Apache-2.0", "dependencies": [ { "name": "flatbuffers", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flatbush/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chusitoo/flatbush REF "v${VERSION}" SHA512 243eb75fe234731f65aaee491124b82e3dd096f6dd707c666ad4d769fe3e7464ceff240ce33ec88d20062247f12fb0c001a44fee7aa511b6e6b561fc107686c1 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/flatbush) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flatbush/vcpkg.json ================================================ { "name": "flatbush", "version": "1.3.2", "description": "A C++11 header-only single file port of Flatbush", "homepage": "https://github.com/chusitoo/flatbush", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flatcc/fix_install_dir.patch ================================================ diff --git a/src/runtime/CMakeLists.txt b/src/runtime/CMakeLists.txt index 127e2a4..f827a79 100644 --- a/src/runtime/CMakeLists.txt +++ b/src/runtime/CMakeLists.txt @@ -12,5 +12,8 @@ add_library(flatccrt ) if (FLATCC_INSTALL) - install(TARGETS flatccrt DESTINATION ${lib_dir}) + install(TARGETS flatccrt + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() ================================================ FILE: ports/flatcc/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dvidelabs/flatcc REF "v${VERSION}" SHA512 46ba5ca75facc7d3360dba797d24ae7bfe539a854a48831e1c7b96528cf9594d8bea22b267678fd7c6d742b6636d9e52930987119b4c6b2e38d4abe89b990cae HEAD_REF master PATCHES fix_install_dir.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFLATCC_INSTALL=ON -DFLATCC_ALLOW_WERROR=OFF -DFLATCC_TEST=OFF -DFLATCC_CXX_TEST=OFF -DFLATCC_RTONLY=ON ${EXTRA_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flatcc/vcpkg.json ================================================ { "name": "flatcc", "version": "0.6.1", "description": "FlatBuffers Compiler and Library in C for C", "homepage": "https://github.com/dvidelabs/flatcc", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flecs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SanderMertens/flecs REF "v${VERSION}" SHA512 6bd3ffb4b008b7ed83baedc87b2a55ced6b93072d930c5cd751a324a39154b9edf89331546f2587daf87d3eef471cf9c3ba1c9cf58f94c3d69d6ee2248081598 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FLECS_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" FLECS_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFLECS_STATIC=${FLECS_STATIC_LIBS} -DFLECS_SHARED=${FLECS_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(FLECS_STATIC_LIBS) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/${PORT}/bake_config.h" "#ifndef flecs_STATIC" "#if 0 // #ifndef flecs_STATIC" ) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/flecs/usage ================================================ The package flecs provides CMake targets: find_package(flecs CONFIG REQUIRED) target_link_libraries(main PRIVATE $,flecs::flecs,flecs::flecs_static>) ================================================ FILE: ports/flecs/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET flecs::flecs AND NOT TARGET flecs::flecs_static) add_library(flecs::flecs_static INTERFACE IMPORTED) set_target_properties(flecs::flecs_static PROPERTIES INTERFACE_LINK_LIBRARIES flecs::flecs) elseif(TARGET flecs::flecs_static AND NOT TARGET flecs::flecs) add_library(flecs::flecs INTERFACE IMPORTED) set_target_properties(flecs::flecs PROPERTIES INTERFACE_LINK_LIBRARIES flecs::flecs_static) endif() ================================================ FILE: ports/flecs/vcpkg.json ================================================ { "name": "flecs", "version": "4.1.5", "description": "A fast entity component system (ECS) for C & C++", "homepage": "https://github.com/SanderMertens/flecs", "documentation": "https://www.flecs.dev/flecs/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/flint/fix-static.patch ================================================ diff --git a/src/mpoly.h b/src/mpoly.h index b50f27332..5e6307b89 100644 --- a/src/mpoly.h +++ b/src/mpoly.h @@ -33,12 +33,14 @@ slong mpoly_divide_threads(slong n, double la, double lb); #else # define DECLSPEC_IMPORT #endif +#ifndef __GMP_H__ DECLSPEC_IMPORT ulong __gmpn_add_n(nn_ptr, nn_srcptr, nn_srcptr, long int); DECLSPEC_IMPORT ulong __gmpn_sub_n(nn_ptr, nn_srcptr, nn_srcptr, long int); DECLSPEC_IMPORT ulong __gmpn_addmul_1(nn_ptr, nn_srcptr, long int, ulong); DECLSPEC_IMPORT ulong __gmpn_submul_1(nn_ptr, nn_srcptr, long int, ulong); DECLSPEC_IMPORT ulong __gmpn_rshift(nn_ptr, nn_srcptr, long int, unsigned int); DECLSPEC_IMPORT ulong __gmpn_mul_1(nn_ptr, nn_srcptr, long int, ulong); +#endif #undef DECLSPEC_IMPORT /* context *******************************************************************/ diff --git a/src/ulong_extras.h b/src/ulong_extras.h index 808a9e3c1..aaf4916cc 100644 --- a/src/ulong_extras.h +++ b/src/ulong_extras.h @@ -91,8 +91,10 @@ ulong n_clog_2exp(ulong n, ulong b); #else # define DECLSPEC_IMPORT #endif +#ifndef __GMP_H__ DECLSPEC_IMPORT ulong __gmpn_gcd_11(ulong, ulong); DECLSPEC_IMPORT ulong __gmpn_gcd_1(nn_srcptr, long int, ulong); +#endif #undef DECLSPEC_IMPORT ULONG_EXTRAS_INLINE ================================================ FILE: ports/flint/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://flintlib.org/download/flint-${VERSION}.zip" FILENAME "flint-${VERSION}.zip" SHA512 a4180c4a8ce889d552e207f699d1243bb9af3001aee5f084bc0f67d04cb788268a31725ba23ffa750b1726cd7756ad4efa9f38b5242960fe962bebe96600e7d8 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-static.patch ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPython_EXECUTABLE=${PYTHON3}" -DVCPKG_LOCK_FIND_PACKAGE_CBLAS=OFF -DWITH_NTL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/flint) else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --with-ntl=no --with-blas=no ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/flint/vcpkg.json ================================================ { "name": "flint", "version-semver": "3.4.0", "description": "Fast Library for Number Theory", "homepage": "https://www.flintlib.org/", "license": "GPL-3.0-only", "supports": "!uwp & (!windows | x64)", "dependencies": [ "gettimeofday", "gmp", "mpfr", { "name": "pthreads", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake-config", "host": true, "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "!windows" } ] } ================================================ FILE: ports/fltk/config-path.patch ================================================ diff --git a/CMake/setup.cmake b/CMake/setup.cmake index 60b7da1..6831d29 100644 --- a/CMake/setup.cmake +++ b/CMake/setup.cmake @@ -65,6 +65,8 @@ else () set (FLTK_CONFIG_PATH ${FLTK_DATADIR}/fltk) endif (WIN32 AND NOT CYGWIN) +set(FLTK_CONFIG_PATH share/fltk) + include(TestBigEndian) TEST_BIG_ENDIAN(WORDS_BIGENDIAN) ================================================ FILE: ports/fltk/dependencies.patch ================================================ diff --git a/CMake/options.cmake b/CMake/options.cmake index d1e299f..d20e9c8 100644 --- a/CMake/options.cmake +++ b/CMake/options.cmake @@ -101,11 +101,14 @@ endif () ####################################################################### if (OPTION_USE_SYSTEM_ZLIB) - find_package (ZLIB) + find_package(ZLIB REQUIRED) + set(LIB_zlib "${ZLIB_LIBRARIES}" CACHE INTERNAL "") endif () if (OPTION_USE_SYSTEM_LIBPNG) - find_package (PNG) + find_package(PNG REQUIRED) + set(HAVE_PNG_H "${PNG_FOUND}") + set(LIB_png "${PNG_LIBRARIES}" CACHE INTERNAL "") endif () # If we use the system zlib, we must also use the system png zlib and vice versa @@ -148,7 +151,8 @@ set (HAVE_LIBZ 1) ####################################################################### if (OPTION_USE_SYSTEM_LIBJPEG) - find_package (JPEG) + find_package(JPEG REQUIRED) + set(LIB_jpeg "${JPEG_LIBRARIES}" CACHE INTERNAL "") endif () if (OPTION_USE_SYSTEM_LIBJPEG AND JPEG_FOUND) @@ -228,7 +232,7 @@ endif (APPLE) # find X11 libraries and headers set (PATH_TO_XLIBS) if (NOT APPLE AND NOT WIN32) - include (FindX11) + find_package(X11) if (X11_FOUND) set (USE_X11 1) list (APPEND FLTK_LDLIBS -lX11) @@ -351,7 +355,7 @@ if (HAVE_GL) endif (HAVE_GL) if (OPTION_USE_GL) - include (FindOpenGL) + find_package(OpenGL REQUIRED) if (APPLE) set (HAVE_GL_GLU_H ${HAVE_OPENGL_GLU_H}) endif (APPLE) @@ -421,7 +425,7 @@ set (FLTK_PTHREADS_FOUND FALSE) if (OPTION_USE_THREADS) - include (FindThreads) + find_package(Threads REQUIRED) if (CMAKE_HAVE_THREADS_LIBRARY) add_definitions ("-D_THREAD_SAFE -D_REENTRANT") diff --git a/CMake/resources.cmake b/CMake/resources.cmake index a763fb6..5fdb3d5 100644 --- a/CMake/resources.cmake +++ b/CMake/resources.cmake @@ -39,7 +39,7 @@ endmacro (fl_find_header) # Include FindPkgConfig for later use of pkg-config ####################################################################### -include (FindPkgConfig) +find_package(PkgConfig) # fl_debug_var (PKG_CONFIG_FOUND) # fl_debug_var (PKG_CONFIG_EXECUTABLE) @@ -131,8 +131,7 @@ mark_as_advanced (HAVE_X11_XREGION_H) # where to find freetype headers -find_path (FREETYPE_PATH freetype.h PATH_SUFFIXES freetype2) -find_path (FREETYPE_PATH freetype/freetype.h PATH_SUFFIXES freetype2) +set(FREETYPE_PATH "" CACHE INTERNAL "Obsolete") if (FREETYPE_PATH) include_directories (${FREETYPE_PATH}) @@ -142,11 +141,12 @@ mark_as_advanced (FREETYPE_PATH) ####################################################################### # libraries -find_library (LIB_dl dl) +set(LIB_dl "${CMAKE_DL_LIBS}" CACHE STRING "") if (NOT APPLE) - find_library (LIB_fontconfig fontconfig) + find_package(Fontconfig REQUIRED) + set(LIB_fontconfig "${Fontconfig_LIBRARIES}" CACHE INTERNAL "") endif (NOT APPLE) -find_library (LIB_freetype freetype) +set(LIB_freetype "" CACHE INTERNAL "Obsolete") find_library (LIB_GL GL) find_library (LIB_MesaGL MesaGL) find_library (LIB_GLEW NAMES GLEW glew32) ================================================ FILE: ports/fltk/fix-system-link.patch ================================================ diff --git a/CMake/fl_add_library.cmake b/CMake/fl_add_library.cmake index 7e3490b..682a000 100644 --- a/CMake/fl_add_library.cmake +++ b/CMake/fl_add_library.cmake @@ -39,6 +39,11 @@ macro (FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES) target_include_directories(${TARGET_NAME} PUBLIC $) + if (APPLE) + find_library(Cocoa Cocoa) + target_link_libraries(${TARGET_NAME} $<$:${Cocoa}>) + endif() + # target properties for all libraries set_target_properties(${TARGET_NAME} ================================================ FILE: ports/fltk/include.patch ================================================ diff --git a/CMake/fl_add_library.cmake b/CMake/fl_add_library.cmake index 29baa95..7e3490b 100644 --- a/CMake/fl_add_library.cmake +++ b/CMake/fl_add_library.cmake @@ -37,6 +37,8 @@ macro (FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES) add_library(${TARGET_NAME} ${LIBTYPE} ${LIBFILES}) + target_include_directories(${TARGET_NAME} PUBLIC $) + # target properties for all libraries set_target_properties(${TARGET_NAME} ================================================ FILE: ports/fltk/math-h-polyfill.patch ================================================ diff --git a/FL/math.h b/FL/math.h index b574000..216a2ad 100644 --- a/FL/math.h +++ b/FL/math.h @@ -47,7 +47,7 @@ # define M_SQRT1_2 0.70710678118654752440 # endif // !M_SQRT2 -# if (defined(WIN32) || defined(CRAY)) && !defined(__MINGW32__) && !defined(__MWERKS__) +# if defined(FLTK_ENABLE_MATH_H_POLYFILL) inline double rint(double v) {return floor(v+.5);} inline double copysign(double a, double b) {return b<0 ? -a : a;} ================================================ FILE: ports/fltk/portfile.cmake ================================================ # FLTK has many improperly shared global variables that get duplicated into every DLL vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fltk/fltk REF "release-${VERSION}" SHA512 b18ff6322349af4416a37d28c4f42ebe355260786ed42bdd54dcc20dc92db1a38a8db74e6d637fdff8f320bdd51e2515c0fa939d30679c5f22ea99fb32c97204 PATCHES dependencies.patch config-path.patch include.patch fix-system-link.patch math-h-polyfill.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/jpeg" "${SOURCE_PATH}/png" "${SOURCE_PATH}/zlib" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opengl OPTION_USE_GL ) set(fluid_path_param "") if(VCPKG_CROSSCOMPILING) set(fluid_path_param "-DFLUID_PATH=${CURRENT_HOST_INSTALLED_DIR}/tools/fltk/fluid${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() set(runtime_dll "ON") if(VCPKG_CRT_LINKAGE STREQUAL "static") set(runtime_dll "OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DFLTK_BUILD_TEST=OFF -DOPTION_LARGE_FILE=ON -DHAVE_ALSA_ASOUNDLIB_H=OFF # tests only -DOPTION_USE_SYSTEM_ZLIB=ON -DOPTION_USE_SYSTEM_LIBPNG=ON -DOPTION_USE_SYSTEM_LIBJPEG=ON -DOPTION_BUILD_SHARED_LIBS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=1 "-DCocoa:STRING=-framework Cocoa" # avoid absolute path ${fluid_path_param} -DFLTK_MSVC_RUNTIME_DLL=${runtime_dll} MAYBE_UNUSED_VARIABLES Cocoa ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/fltk-config") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/fltk-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fltk-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fltk-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/fltk-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../.." IGNORE_UNCHANGED) if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/fltk-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/fltk-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/fltk-config" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/../../..") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/fltk-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../.." IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/fltk-config" "{prefix}/include" "{prefix}/../include") endif() endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/fluid${VCPKG_TARGET_EXECUTABLE_SUFFIX}" OR EXISTS "${CURRENT_PACKAGES_DIR}/bin/fluid${VCPKG_TARGET_BUNDLE_SUFFIX}") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/fluid.icns" "${CURRENT_PACKAGES_DIR}/debug/bin/fluid.icns") vcpkg_copy_tools(TOOL_NAMES fluid AUTO_CLEAN) elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) foreach(FILE IN ITEMS Fl_Export.H fl_utf8.h) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FL/${FILE}" "defined(FL_DLL)" "0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FL/${FILE}" "defined(FL_DLL)" "1") endif() endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/fltk/UseFLTK.cmake" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel;${SOURCE_PATH}" [[${CMAKE_CURRENT_LIST_DIR}/../../include]]) set(copyright_files "${SOURCE_PATH}/COPYING") if("opengl" IN_LIST FEATURES) file(READ "${SOURCE_PATH}/src/freeglut_geometry.cxx" freeglut_copyright) string(REGEX MATCH " [*] Copyright.*" freeglut_copyright "${freeglut_copyright}" ) string(REGEX REPLACE "[*]/.*" "" freeglut_copyright "${freeglut_copyright}") file(WRITE "${CURRENT_BUILDTREES_DIR}/Freeglut code copyright" "${freeglut_copyright}") list(APPEND copyright_files "${CURRENT_BUILDTREES_DIR}/Freeglut code copyright") file(READ "${SOURCE_PATH}/src/freeglut_teapot.cxx" teapot_copyright) string(REGEX MATCH " [*][^*]*Silicon Graphics, Inc.*" teapot_copyright "${teapot_copyright}") string(REGEX REPLACE "[*]/.*" "" teapot_copyright "${teapot_copyright}") file(WRITE "${CURRENT_BUILDTREES_DIR}/Original teapot code copyright" "${teapot_copyright}") list(APPEND copyright_files "${CURRENT_BUILDTREES_DIR}/Original teapot code copyright") endif() vcpkg_install_copyright(FILE_LIST ${copyright_files}) ================================================ FILE: ports/fltk/vcpkg.json ================================================ { "name": "fltk", "version": "1.3.11", "description": "FLTK (pronounced fulltick) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation.", "homepage": "https://www.fltk.org/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "fltk", "host": true, "default-features": false }, { "name": "fontconfig", "platform": "!osx" }, { "name": "freetype", "default-features": false }, "libjpeg-turbo", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "opengl" ], "features": { "opengl": { "description": "OpenGL support", "dependencies": [ "opengl" ] } } } ================================================ FILE: ports/fluidlite/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4aead6c369f129f50d79d77e6ac8f58afba91fa5..83f3f5026861dd904060293be8754c9e265047ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,7 +113,7 @@ endif() set(FLUIDLITE_VENDORED FALSE) if (ENABLE_SF3 AND NOT STB_VORBIS) - find_package(Vorbis QUIET) + find_package(Vorbis CONFIG REQUIRED) if (NOT TARGET Vorbis::vorbisfile) message(WARNING "Using vendored libogg/libvorbis") diff --git a/fluidlite-config.cmake.in b/fluidlite-config.cmake.in index 8c40ff0eb077fc0fd530f052500214d75e96899d..46940e4cd218d245014f40f1097f7193cc8952b3 100644 --- a/fluidlite-config.cmake.in +++ b/fluidlite-config.cmake.in @@ -15,7 +15,7 @@ endif() if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-static-targets.cmake") include(CMakeFindDependencyMacro) if("${FLUIDLITE_SF3_SUPPORT}" STREQUAL "SF3_XIPH_VORBIS" AND NOT FLUIDLITE_VENDORED AND NOT TARGET Vorbis::vorbisfile) - find_dependency(Vorbis) + find_dependency(Vorbis CONFIG) endif() include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-static-targets.cmake") ================================================ FILE: ports/fluidlite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO divideconcept/FluidLite REF d59d2328818f913b7d1a6a59aed695c47a8ce388 SHA512 d08ddd0b61dc16c26e5ebc8e54e2efef163f8d0b4da6ce4a040b49756feb105220d48ec6238568b00c68dfa244fac0ab53e3c59c066d4b92dc248df3715c388c PATCHES fix-dependencies.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sf3 ENABLE_SF3 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME fluidlite CONFIG_PATH lib/cmake/fluidlite ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fluidlite/usage ================================================ fluidlite provides CMake targets: find_package(fluidlite CONFIG REQUIRED) target_link_libraries(main PRIVATE $,fluidlite::fluidlite,fluidlite::fluidlite-static>) ================================================ FILE: ports/fluidlite/vcpkg.json ================================================ { "name": "fluidlite", "version-date": "2023-04-18", "description": "FluidLite is a very light version of FluidSynth designed to be hardware, platform and external dependency independant.", "homepage": "https://github.com/divideconcept/FluidLite", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "sf3" ], "features": { "sf3": { "description": "Enable SF3 files (ogg/vorbis compressed samples)", "dependencies": [ "libvorbis" ] } } } ================================================ FILE: ports/fluidsynth/cxx-linkage-pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 02fa284..609bbc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -920,6 +920,16 @@ else () set ( implibname "fluidsynth" ) endif () +set(FAKE_CXX_LINKAGE "") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " -l${lib}") + endif() +endforeach() generate_pkgconfig_spec(fluidsynth.pc.in ${FluidSynth_BINARY_DIR}/fluidsynth.pc libfluidsynth-OBJ) install ( FILES ${FluidSynth_BINARY_DIR}/fluidsynth.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig diff --git a/fluidsynth.pc.in b/fluidsynth.pc.in index b7a9afa..b74728e 100644 --- a/fluidsynth.pc.in +++ b/fluidsynth.pc.in @@ -8,5 +8,5 @@ Description: Software SoundFont synth Version: @VERSION@ Requires.private: @PC_REQUIRES_PRIV_JOINED@ Libs: -L${libdir} -l@implibname@ -Libs.private: @LIBS_PRIVATE_JOINED@ @LIBS_PRIVATE_WITH_PATH_JOINED@ +Libs.private: @LIBS_PRIVATE_JOINED@ @LIBS_PRIVATE_WITH_PATH_JOINED@ @FAKE_CXX_LINKAGE@ Cflags: -I${includedir} ================================================ FILE: ports/fluidsynth/fix-gcem.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bb396ba..25d3557b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -364,7 +364,7 @@ if ( WIN32 ) endif ( MINGW ) endif ( WIN32 ) -find_package ( GCEM REQUIRED ) +find_package ( gcem CONFIG REQUIRED ) set ( LIBFLUID_LIBS ${MATH_LIBRARY} ) if (NOT ((CMAKE_SYSTEM_NAME MATCHES "SunOS") OR (osal STREQUAL "embedded"))) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cc43d691..3021d54f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -295,7 +295,7 @@ target_include_directories ( libfluidsynth-OBJ PRIVATE ${FluidSynth_SOURCE_DIR}/src/sfloader ${FluidSynth_SOURCE_DIR}/src/bindings ${FluidSynth_SOURCE_DIR}/include - ${GCEM_INCLUDE_DIR} + ${gcem_INCLUDE_DIRS} ) if ( LIBFLUID_CPPFLAGS ) ================================================ FILE: ports/fluidsynth/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FluidSynth/fluidsynth REF "v${VERSION}" SHA512 5c376d9bf6388f04e5d48375a70682f9d7edcd65809383afc0190c77140b086492abc17a8d3a2aa07e59dde681ab17a919e9b8b7e174a91a2951c30b262c10e4 HEAD_REF master PATCHES fix-gcem.patch cxx-linkage-pkgconfig.diff ) # Do not use or install FindSndFileLegacy.cmake and its deps file(REMOVE "${SOURCE_PATH}/cmake_admin/FindFLAC.cmake" "${SOURCE_PATH}/cmake_admin/Findmp3lame.cmake" "${SOURCE_PATH}/cmake_admin/Findmpg123.cmake" "${SOURCE_PATH}/cmake_admin/FindOgg.cmake" "${SOURCE_PATH}/cmake_admin/FindOpus.cmake" "${SOURCE_PATH}/cmake_admin/FindSndFileLegacy.cmake" "${SOURCE_PATH}/cmake_admin/FindVorbis.cmake" "${SOURCE_PATH}/cmake_admin/FindGCEM.cmake" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libinstpatch enable-libinstpatch sndfile enable-libsndfile pulseaudio enable-pulseaudio ) # enable platform-specific features, force the build to fail if the required libraries are not found, # and disable all other features to avoid system libraries to be picked up set(WINDOWS_OPTIONS enable-dsound enable-wasapi enable-waveout enable-winmidi HAVE_MMSYSTEM_H HAVE_DSOUND_H HAVE_OBJBASE_H) set(MACOS_OPTIONS enable-coreaudio enable-coremidi COREAUDIO_FOUND COREMIDI_FOUND) set(LINUX_OPTIONS enable-alsa ALSA_FOUND) set(ANDROID_OPTIONS enable-opensles OpenSLES_FOUND) set(IGNORED_OPTIONS enable-coverage enable-dbus enable-floats enable-fpe-check enable-framework enable-jack enable-libinstpatch enable-midishare enable-oboe enable-openmp enable-oss enable-pipewire enable-portaudio enable-profiling enable-readline enable-sdl3 enable-systemd enable-trap-on-fpe enable-ubsan) if(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS_TO_ENABLE ${WINDOWS_OPTIONS}) set(OPTIONS_TO_DISABLE ${MACOS_OPTIONS} ${LINUX_OPTIONS} ${ANDROID_OPTIONS}) elseif(VCPKG_TARGET_IS_OSX) set(OPTIONS_TO_ENABLE ${MACOS_OPTIONS}) set(OPTIONS_TO_DISABLE ${WINDOWS_OPTIONS} ${LINUX_OPTIONS} ${ANDROID_OPTIONS}) elseif(VCPKG_TARGET_IS_LINUX) set(OPTIONS_TO_ENABLE ${LINUX_OPTIONS}) set(OPTIONS_TO_DISABLE ${WINDOWS_OPTIONS} ${MACOS_OPTIONS} ${ANDROID_OPTIONS}) elseif(VCPKG_TARGET_IS_ANDROID) set(OPTIONS_TO_ENABLE ${ANDROID_OPTIONS}) set(OPTIONS_TO_DISABLE ${WINDOWS_OPTIONS} ${MACOS_OPTIONS} ${LINUX_OPTIONS}) endif() foreach(_option IN LISTS OPTIONS_TO_ENABLE) list(APPEND ENABLED_OPTIONS "-D${_option}:BOOL=ON") endforeach() foreach(_option IN LISTS OPTIONS_TO_DISABLE IGNORED_OPTIONS) list(APPEND DISABLED_OPTIONS "-D${_option}:BOOL=OFF") endforeach() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${ENABLED_OPTIONS} ${DISABLED_OPTIONS} "-Dosal=cpp11" -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON MAYBE_UNUSED_VARIABLES ${OPTIONS_TO_DISABLE} enable-coverage enable-framework enable-ubsan ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/fluidsynth) vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES fluidsynth AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fluidsynth/usage ================================================ fluidsynth provides CMake targets: find_package(FluidSynth CONFIG REQUIRED) target_link_libraries(main PRIVATE FluidSynth::libfluidsynth) add_custom_command(OUTPUT result COMMAND FluidSynth::q ARGS ...) fluidsynth provides pkg-config modules: # Software SoundFont synth fluidsynth ================================================ FILE: ports/fluidsynth/vcpkg.json ================================================ { "name": "fluidsynth", "version": "2.5.2", "port-version": 1, "description": "FluidSynth reads and handles MIDI events from the MIDI input device. It is the software analogue of a MIDI synthesizer. FluidSynth can also play midifiles using a Soundfont.", "homepage": "https://github.com/FluidSynth/fluidsynth", "license": "LGPL-2.1-or-later", "supports": "!(uwp | xbox)", "dependencies": [ { "name": "alsa", "platform": "linux" }, "gcem", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "libinstpatch": { "description": "Use libinstpatch for DLS support. Required if C++17 is not available", "dependencies": [ "glib" ] }, "pulseaudio": { "description": "Build with PulseAudio support", "dependencies": [ "pulseaudio" ] }, "sndfile": { "description": "Enable rendering to file and SF3 support", "dependencies": [ { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] } ] } } } ================================================ FILE: ports/flux/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tcbrindle/flux REF "v${VERSION}" SHA512 ac6f373d2b6b7f568528ba489aa0b1785ce9e25ba1c75ec23a3a7b517d54534491be0f808a09778e651791e61cc4bf407b8c18ff6aa53af4ae7cd9b518a8df43 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFLUX_BUILD_EXAMPLES=OFF -DFLUX_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/flux) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/flux/vcpkg.json ================================================ { "name": "flux", "version": "0.4.0", "description": "Experimental C++20 library that provides a broadly equivalent feature set to C++20 Ranges, but uses a slightly different model based around cursors rather than iterators. Safer, easier, more efficient, compatible.", "homepage": "https://github.com/tcbrindle/flux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fmem/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c-libs/fmem REF 2ccee3d2fb2fc72370a9bb2131bfc9167e0d9022 SHA512 4a63332eb5df7f30bdad9e4233171b5c21dd2b092e525e9dcc4f602295ffff50c555c80fd74d964bc3daeffd8001a9b852f1769ef3161259dd8a3cae3ca3a4df HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/fmem" RENAME copyright) ================================================ FILE: ports/fmem/vcpkg.json ================================================ { "name": "fmem", "version-string": "c-libs-2ccee3d2fb", "port-version": 3, "description": "A cross-platform library for opening memory-backed libc streams.", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fmi4cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NTNU-IHB/FMI4cpp REF "v${VERSION}" SHA512 547f61dfbd57593ff8839fbed3f8a5624551ee4be5e0dd7773384a869086af8a4483cfe17dc087e3f03c9ea2038b537c8c4998a405687c1a353d08e52dac411e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFMI4CPP_BUILD_TESTS=OFF -DFMI4CPP_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/fmi4cpp/vcpkg.json ================================================ { "name": "fmi4cpp", "version": "0.8.3", "description": "FMI 2.0 implementation written in modern C++", "homepage": "https://github.com/NTNU-IHB/FMI4cpp", "license": "MIT", "dependencies": [ "boost-property-tree", { "name": "libzip", "features": [ "openssl" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fmilib/devendor-sublibs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 690ee5f..2816987 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -230,7 +230,7 @@ configure_file ( "${FMILibrary_BINARY_DIR}/fmilib_config.h" ) -set(FMILIB_SHARED_SUBLIBS ${FMIXML_LIBRARIES} ${FMIZIP_LIBRARIES} ${FMICAPI_LIBRARIES} expat minizip zlib c99snprintf) +set(FMILIB_SHARED_SUBLIBS ${FMIXML_LIBRARIES} ${FMIZIP_LIBRARIES} ${FMICAPI_LIBRARIES} minizip c99snprintf) set(FMILIB_SUBLIBS ${FMIIMPORT_LIBRARIES} ${JMUTIL_LIBRARIES} ${FMILIB_SHARED_SUBLIBS}) set(FMILIB_SHARED_SRC ${FMIIMPORTSOURCE} ${JMUTILSOURCE} ${FMIIMPORTHEADERS}) diff --git a/Config.cmake/fmixml.cmake b/Config.cmake/fmixml.cmake index ddd3c1f..3bafac3 100644 --- a/Config.cmake/fmixml.cmake +++ b/Config.cmake/fmixml.cmake @@ -137,6 +137,7 @@ set(FMIXMLSOURCE src/FMI2/fmi2_xml_variable.c ) +if(0) include(ExternalProject) # The *_POSTFIX variables are set because it makes it easier to determine the name of @@ -211,7 +212,10 @@ if(FMILIB_INSTALL_SUBLIBS) DESTINATION lib) endif() +endif(0) set(EXPAT_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/ExpatEx/install/include) +find_package(expat CONFIG REQUIRED) +add_library(expat ALIAS expat::expat) include_directories("${EXPAT_INCLUDE_DIRS}" "${FMILIB_THIRDPARTYLIBS}/FMI/" "${FMIXMLGENDIR}/FMI1" "${FMIXMLGENDIR}/FMI2") diff --git a/Config.cmake/fmizip.cmake b/Config.cmake/fmizip.cmake index c046d47..50e82b3 100644 --- a/Config.cmake/fmizip.cmake +++ b/Config.cmake/fmizip.cmake @@ -20,7 +20,12 @@ if(NOT FMIZIPDIR) set(FMIZIP_LIBRARIES fmizip) - add_subdirectory(Config.cmake/Minizip) + add_library(minizip OBJECT + "${FMILIB_THIRDPARTYLIBS}/Minizip/minizip/miniunz.c" + "${FMILIB_THIRDPARTYLIBS}/Minizip/minizip/minizip.c" + ) + find_package(unofficial-minizip CONFIG REQUIRED) + target_link_libraries(minizip PRIVATE unofficial::minizip::minizip) include_directories("${FMIZIPDIR}/include" "${FMILIB_THIRDPARTYLIBS}/Minizip/minizip" "${FMILIB_THIRDPARTYLIBS}/FMI" "${FMILIB_THIRDPARTYLIBS}/Zlib/zlib-1.2.6" "${FMILibrary_BINARY_DIR}/zlib") ================================================ FILE: ports/fmilib/fix-mergestaticlibs.diff ================================================ diff --git a/Config.cmake/mergestaticlibs.cmake b/Config.cmake/mergestaticlibs.cmake index 858a026..67eccb7 100644 --- a/Config.cmake/mergestaticlibs.cmake +++ b/Config.cmake/mergestaticlibs.cmake @@ -21,6 +21,15 @@ function(merge_static_libs outlib ) file(WRITE ${dummyfile} "const char * dummy = \"${dummyfile}\";") add_library(${outlib} STATIC ${dummyfile}) + foreach(lib IN LISTS libs) + target_sources(${outlib} PRIVATE "$") + get_target_property(link_libs ${lib} INTERFACE_LINK_LIBRARIES) + if(link_libs) + list(REMOVE_ITEM link_libs ${libs}) + target_link_libraries(${outlib} ${link_libs}) + endif() + endforeach() + return() if("${CMAKE_CFG_INTDIR}" STREQUAL ".") set(multiconfig FALSE) ================================================ FILE: ports/fmilib/minizip.patch ================================================ diff --git a/ThirdParty/Minizip/minizip/miniunz.c b/ThirdParty/Minizip/minizip/miniunz.c index 1931161..d7a8be1 100644 --- a/ThirdParty/Minizip/minizip/miniunz.c +++ b/ThirdParty/Minizip/minizip/miniunz.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #ifdef _WIN32 @@ -107,7 +108,7 @@ void change_file_date(filename,dosdate,tmu_date) SetFileTime(hFile,&ftm,&ftLastAcc,&ftm); CloseHandle(hFile); #else -#ifdef unix || __APPLE__ +#if defined(unix) || defined(__APPLE__) struct utimbuf ut; struct tm newdate; newdate.tm_sec = tmu_date.tm_sec; @@ -137,7 +138,7 @@ int mymkdir(dirname) int ret=0; #ifdef _WIN32 ret = _mkdir(dirname); -#elif unix +#elif 1 ret = mkdir (dirname,0775); #elif __APPLE__ ret = mkdir (dirname,0775); diff --git a/ThirdParty/Minizip/minizip/minizip.c b/ThirdParty/Minizip/minizip/minizip.c index e22f80d..548b6ca 100644 --- a/ThirdParty/Minizip/minizip/minizip.c +++ b/ThirdParty/Minizip/minizip/minizip.c @@ -101,7 +101,7 @@ uLong filetime(f, tmzip, dt) return ret; } #else -#ifdef unix || __APPLE__ +#if defined(unix) || defined(__APPLE__) uLong filetime(f, tmzip, dt) char *f; /* name of file to get info on */ tm_zip *tmzip; /* return value: access, modific. and creation times */ @@ -453,7 +453,7 @@ int minizip(argc,argv) } if( lastslash != NULL ) { - savefilenameinzip = lastslash+1; // base filename follows last slash. + savefilenameinzip = lastslash+1; } } ================================================ FILE: ports/fmilib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO modelon-community/fmi-library REF "${VERSION}" SHA512 65c2dc11116737e4e2ee91a4ec58d2cf24003774fd6d9b8b1d6521f046be9e8f8a963ebedb50a161ad264927062f41ce757c84563cfe628d47614910e8730349 HEAD_REF master PATCHES devendor-sublibs.diff minizip.patch fix-mergestaticlibs.diff unofficial-export.diff ) file(GLOB vendored_minizip "${SOURCE_PATH}/ThirdParty/Minizip/minizip/*") list(FILTER vendored_minizip EXCLUDE REGEX "/minizip.[ch]\$|/miniunz.[ch]\$") file(REMOVE_RECURSE ${vendored_minizip} "${SOURCE_PATH}/ThirdParty/Expat" "${SOURCE_PATH}/ThirdParty/Zlib" ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FMILIB_BUILD_WITH_STATIC_RTLIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Wno-dev -DFMILIB_BUILD_TESTS=OFF -DFMILIB_BUILD_STATIC_LIB=${BUILD_STATIC} -DFMILIB_BUILD_SHARED_LIB=${BUILD_SHARED} -DFMILIB_BUILD_WITH_STATIC_RTLIB=${FMILIB_BUILD_WITH_STATIC_RTLIB} -DFMILIB_GENERATE_DOXYGEN_DOC=OFF OPTIONS_DEBUG "-DFMILIB_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug" OPTIONS_RELEASE "-DFMILIB_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}" MAYBE_UNUSED_VARIABLES FMILIB_BUILD_WITH_STATIC_RTLIB ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-fmilib-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-fmilib") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-fmilib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/doc" "${CURRENT_PACKAGES_DIR}/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/fmilib/unofficial-export.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 583e15b..0319e3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -300,10 +300,17 @@ endif() file(COPY "${FMILIBRARYHOME}/Config.cmake/fmilib.h" DESTINATION "${FMILibrary_BINARY_DIR}") +target_include_directories(${FMILIB_TARGETS} INTERFACE $) install(TARGETS ${FMILIB_TARGETS} + EXPORT unofficial-fmilib-targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib - RUNTIME DESTINATION lib + RUNTIME DESTINATION bin +) +install(EXPORT unofficial-fmilib-targets + FILE unofficial-fmilib-targets.cmake + NAMESPACE unofficial::fmilib:: + DESTINATION share/unofficial-fmilib ) install(FILES "${FMILIBRARYHOME}/FMILIB_Readme.txt" ================================================ FILE: ports/fmilib/unofficial-fmilib-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(expat CONFIG) find_dependency(unofficial-minizip CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-fmilib-targets.cmake") ================================================ FILE: ports/fmilib/vcpkg.json ================================================ { "name": "fmilib", "version": "2.4.1", "port-version": 2, "description": "FMI library is intended as a foundation for applications interfacing FMUs (Functional Mockup Units) that follow FMI Standard. This version of the library supports FMI 1.0 and FMI2.0.", "homepage": "https://www.fmi-standard.org/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "expat", "minizip", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fmt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fmtlib/fmt REF "${VERSION}" SHA512 f0da82c545b01692e9fd30fdfb613dbb8dd9716983dcd0ff19ac2a8d36f74beb5540ef38072fdecc1e34191b3682a8542ecbf3a61ef287dbba0a2679d4e023f2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFMT_CMAKE_DIR=share/fmt -DFMT_TEST=OFF -DFMT_DOC=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/fmt/usage ================================================ The package fmt provides CMake targets: find_package(fmt CONFIG REQUIRED) target_link_libraries(main PRIVATE fmt::fmt) # Or use the header-only version find_package(fmt CONFIG REQUIRED) target_link_libraries(main PRIVATE fmt::fmt-header-only) ================================================ FILE: ports/fmt/vcpkg.json ================================================ { "name": "fmt", "version": "12.1.0", "description": "{fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.", "homepage": "https://github.com/fmtlib/fmt", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/folly/disable-uninitialized-resize-on-new-stl.patch ================================================ diff --git a/folly/memory/UninitializedMemoryHacks.h b/folly/memory/UninitializedMemoryHacks.h index daf5eb735..1ac44d6b2 100644 --- a/folly/memory/UninitializedMemoryHacks.h +++ b/folly/memory/UninitializedMemoryHacks.h @@ -101,6 +101,9 @@ template < typename std::enable_if::value>::type> inline void resizeWithoutInitialization( std::basic_string& s, std::size_t n) { +#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L + s.resize(n); +#else if (n <= s.size()) { s.resize(n); } else { @@ -111,6 +114,7 @@ inline void resizeWithoutInitialization( } detail::unsafeStringSetLargerSize(s, n); } +#endif // defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L } /** @@ -278,8 +282,11 @@ struct MakeUnsafeStringSetLargerSize { } // namespace folly #if defined(FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT) +#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L +#else FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT(char) FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT(wchar_t) +#endif // defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L #endif namespace folly { ================================================ FILE: ports/folly/fix-deps.patch ================================================ diff --git a/CMake/folly-config.cmake.in b/CMake/folly-config.cmake.in index 5fc83ac..7efb0fc 100644 --- a/CMake/folly-config.cmake.in +++ b/CMake/folly-config.cmake.in @@ -34,10 +34,31 @@ endif() set(FOLLY_LIBRARIES Folly::folly) # Find folly's dependencies -find_dependency(fmt) +find_dependency(fmt CONFIG) +find_dependency(double-conversion CONFIG) +find_dependency(FastFloat CONFIG) +set(z_vcpkg_folly_gflags_backup ${GFLAGS_USE_TARGET_NAMESPACE}) +set(GFLAGS_USE_TARGET_NAMESPACE ON) +find_dependency(gflags CONFIG) +set(GFLAGS_USE_TARGET_NAMESPACE ${z_vcpkg_folly_gflags_backup}) +find_dependency(glog CONFIG) +find_dependency(Libevent CONFIG) +find_dependency(ZLIB) +if("@VCPKG_LOCK_FIND_PACKAGE_LZ4@") + find_dependency(lz4 CONFIG) +endif() +if("@VCPKG_LOCK_FIND_PACKAGE_ZSTD@") + find_dependency(zstd CONFIG) +endif() +if("@VCPKG_LOCK_FIND_PACKAGE_SNAPPY@") + find_dependency(Snappy CONFIG) +endif() +if("@VCPKG_LOCK_FIND_PACKAGE_LIBSODIUM@") + find_dependency(unofficial-sodium CONFIG) +endif() set(Boost_USE_STATIC_LIBS "@FOLLY_BOOST_LINK_STATIC@") -find_package(Boost 1.69.0 REQUIRED +find_dependency(Boost 1.69.0 COMPONENTS context filesystem diff --git a/CMake/folly-config.h.cmake b/CMake/folly-config.h.cmake index 1da1cc1..701ec99 100644 --- a/CMake/folly-config.h.cmake +++ b/CMake/folly-config.h.cmake @@ -16,6 +16,9 @@ #pragma once +#cmakedefine01 FOLLY_HAS_LIBURING +#cmakedefine01 FOLLY_HAS_LIBAIO + #ifdef __APPLE__ #include // @manual #endif diff --git a/CMake/folly-deps.cmake b/CMake/folly-deps.cmake index 1c41750..6ab485c 100644 --- a/CMake/folly-deps.cmake +++ b/CMake/folly-deps.cmake @@ -57,14 +57,17 @@ find_package(Boost 1.69.0 REQUIRED # Per-target Boost dependencies are specified via EXTERNAL_DEPS list(APPEND FOLLY_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIRS}) -find_package(DoubleConversion MODULE REQUIRED) +find_package(double-conversion CONFIG REQUIRED) +set(DOUBLE_CONVERSION_LIBRARY double-conversion::double-conversion) list(APPEND FOLLY_LINK_LIBRARIES ${DOUBLE_CONVERSION_LIBRARY}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${DOUBLE_CONVERSION_INCLUDE_DIR}) -find_package(FastFloat MODULE REQUIRED) -list(APPEND FOLLY_INCLUDE_DIRECTORIES ${FASTFLOAT_INCLUDE_DIR}) +find_package(FastFloat CONFIG REQUIRED) +list(APPEND FOLLY_LINK_LIBRARIES FastFloat::fast_float) -find_package(Gflags MODULE) +set(GFLAGS_USE_TARGET_NAMESPACE ON) +find_package(LIBGFLAGS NAMES gflags REQUIRED) +set(LIBGFLAGS_LIBRARY gflags::gflags) set(FOLLY_HAVE_LIBGFLAGS ${LIBGFLAGS_FOUND}) if(LIBGFLAGS_FOUND) list(APPEND FOLLY_LINK_LIBRARIES ${LIBGFLAGS_LIBRARY}) @@ -73,7 +76,8 @@ if(LIBGFLAGS_FOUND) set(FOLLY_LIBGFLAGS_INCLUDE ${LIBGFLAGS_INCLUDE_DIR}) endif() -find_package(Glog MODULE) +find_package(GLOG NAMES glog REQUIRED) +set(GLOG_LIBRARY glog::glog) set(FOLLY_HAVE_LIBGLOG ${GLOG_FOUND}) list(APPEND FOLLY_LINK_LIBRARIES glog::glog) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${GLOG_INCLUDE_DIR}) @@ -83,11 +87,16 @@ if (EXISTS "${GLOG_INCLUDE_DIR}/glog/export.h") list(APPEND FOLLY_CXX_FLAGS -DGLOG_USE_GLOG_EXPORT) endif() -find_package(LibEvent MODULE REQUIRED) +find_package(LIBEVENT NAMES Libevent REQUIRED) +set(LIBEVENT_LIB libevent::core libevent::extra) +if(NOT WIN32) + list(APPEND LIBEVENT_LIB libevent::pthreads) +endif() list(APPEND FOLLY_LINK_LIBRARIES ${LIBEVENT_LIB}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBEVENT_INCLUDE_DIR}) find_package(ZLIB MODULE) +set(ZLIB_LIBRARIES ZLIB::ZLIB) # consistent with proxygen set(FOLLY_HAVE_LIBZ ${ZLIB_FOUND}) if (ZLIB_FOUND) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${ZLIB_INCLUDE_DIRS}) @@ -120,21 +129,24 @@ if (LIBLZMA_FOUND) list(APPEND FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES}) endif() -find_package(LZ4 MODULE) +find_package(LZ4 NAMES lz4) +set(LZ4_LIBRARY lz4::lz4) set(FOLLY_HAVE_LIBLZ4 ${LZ4_FOUND}) if (LZ4_FOUND) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LZ4_INCLUDE_DIR}) list(APPEND FOLLY_LINK_LIBRARIES ${LZ4_LIBRARY}) endif() -find_package(Zstd MODULE) +find_package(ZSTD NAMES zstd) +set(ZSTD_LIBRARY zstd::libzstd) set(FOLLY_HAVE_LIBZSTD ${ZSTD_FOUND}) if(ZSTD_FOUND) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${ZSTD_INCLUDE_DIR}) list(APPEND FOLLY_LINK_LIBRARIES ${ZSTD_LIBRARY}) endif() -find_package(Snappy MODULE) +find_package(SNAPPY NAMES Snappy) +set(SNAPPY_LIBRARY Snappy::snappy) set(FOLLY_HAVE_LIBSNAPPY ${SNAPPY_FOUND}) if (SNAPPY_FOUND) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${SNAPPY_INCLUDE_DIR}) @@ -150,14 +162,19 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBIBERTY_LIBRARIES}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBIBERTY_INCLUDE_DIRS}) find_package(LibAIO) +set(FOLLY_HAS_LIBAIO ${VCPKG_LOCK_FIND_PACKAGE_LibAIO}) list(APPEND FOLLY_LINK_LIBRARIES ${LIBAIO_LIBRARIES}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBAIO_INCLUDE_DIRS}) find_package(LibUring) +set(FOLLY_HAS_LIBURING ${VCPKG_LOCK_FIND_LibUring}) list(APPEND FOLLY_LINK_LIBRARIES ${LIBURING_LIBRARIES}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBURING_INCLUDE_DIRS}) -find_package(Libsodium) +find_package(LIBSODIUM NAMES unofficial-sodium) +if(LIBSODIUM_FOUND) + set(LIBSODIUM_LIBRARIES unofficial-sodium::sodium) +endif() list(APPEND FOLLY_LINK_LIBRARIES ${LIBSODIUM_LIBRARIES}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBSODIUM_INCLUDE_DIRS}) @@ -174,6 +191,8 @@ list(APPEND FOLLY_LINK_LIBRARIES ${LIBUNWIND_LIBRARIES}) list(APPEND FOLLY_INCLUDE_DIRECTORIES ${LIBUNWIND_INCLUDE_DIRS}) if (LIBUNWIND_FOUND) set(FOLLY_HAVE_LIBUNWIND ON) + list(REMOVE_ITEM FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES}) + list(APPEND FOLLY_LINK_LIBRARIES ${LIBLZMA_LIBRARIES}) endif() if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD") list(APPEND FOLLY_LINK_LIBRARIES "execinfo") diff --git a/CMakeLists.txt b/CMakeLists.txt index 49dd964..b84f338 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -273,7 +273,8 @@ folly_resolve_deferred_dependencies() # This points to the SSL test certificates used by TestSSLServer and related tests if(TARGET folly_testing_test_util) target_compile_definitions(folly_testing_test_util INTERFACE - FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs" + $ + $ ) endif() @@ -285,7 +286,8 @@ add_library(folly_test_util ${FOLLY_DIR}/json/JsonTestUtil.cpp ) target_compile_definitions(folly_test_util PUBLIC - FOLLY_CERTS_DIR="${FOLLY_DIR}/io/async/test/certs" + $ + $ ) set_property(TARGET folly_test_util PROPERTY VERSION ${PACKAGE_VERSION}) target_link_libraries(folly_test_util diff --git a/folly/io/async/AsyncIO.cpp b/folly/io/async/AsyncIO.cpp index 2760e0f..a51c16c 100644 --- a/folly/io/async/AsyncIO.cpp +++ b/folly/io/async/AsyncIO.cpp @@ -35,7 +35,7 @@ #include #endif -#if __has_include() +#if FOLLY_HAS_LIBAIO // debugging helpers namespace { diff --git a/folly/io/async/AsyncIO.h b/folly/io/async/AsyncIO.h index 36c6df2..02ff518 100644 --- a/folly/io/async/AsyncIO.h +++ b/folly/io/async/AsyncIO.h @@ -18,7 +18,7 @@ #include -#if __has_include() +#if FOLLY_HAS_LIBAIO #include diff --git a/folly/io/async/Liburing.h b/folly/io/async/Liburing.h index 8e81aaa..c7f4a67 100644 --- a/folly/io/async/Liburing.h +++ b/folly/io/async/Liburing.h @@ -17,7 +17,5 @@ #pragma once #if defined(__linux__) && __has_include() -#define FOLLY_HAS_LIBURING 1 #else -#define FOLLY_HAS_LIBURING 0 #endif diff --git a/folly/io/async/SimpleAsyncIO.cpp b/folly/io/async/SimpleAsyncIO.cpp index cceb964..9f97e36 100644 --- a/folly/io/async/SimpleAsyncIO.cpp +++ b/folly/io/async/SimpleAsyncIO.cpp @@ -25,7 +25,7 @@ namespace folly { -#if __has_include() +#if FOLLY_HAS_LIBAIO static constexpr bool has_aio = true; using aio_type = AsyncIO; #else ================================================ FILE: ports/folly/fix-perf_scoped-target.patch ================================================ diff --git a/folly/detail/CMakeLists.txt b/folly/detail/CMakeLists.txt index 521983f..7bbfb6d 100644 --- a/folly/detail/CMakeLists.txt +++ b/folly/detail/CMakeLists.txt @@ -182,6 +182,9 @@ folly_add_library( EXTERNAL_DEPS Boost::regex ) +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(folly_detail_perf_scoped PUBLIC folly_subprocess) +endif() folly_add_library( NAME poly_detail ================================================ FILE: ports/folly/fix-unistd-include.patch ================================================ diff --git a/folly/debugging/symbolizer/Elf.cpp b/folly/debugging/symbolizer/Elf.cpp index 6a7f74f..6546fe0 100644 --- a/folly/debugging/symbolizer/Elf.cpp +++ b/folly/debugging/symbolizer/Elf.cpp @@ -49,6 +49,8 @@ #define FOLLY_ELF_NATIVE_CLASS __WORDSIZE #endif // __ELF_NATIVE_CLASS +#include + namespace folly { namespace symbolizer { ================================================ FILE: ports/folly/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/folly REF "v${VERSION}" SHA512 8ee08591724fb1f6183cc0456c13cd00474e425d41824add2751fd3823e23b95ea69ec1b246bc85c95d30add854ee53dafd2bc1b824d0b555917dcbaf6943a6f HEAD_REF main PATCHES fix-deps.patch disable-uninitialized-resize-on-new-stl.patch fix-unistd-include.patch fix-perf_scoped-target.patch ) file(REMOVE "${SOURCE_PATH}/CMake/FindFastFloat.cmake") file(REMOVE "${SOURCE_PATH}/CMake/FindFmt.cmake") file(REMOVE "${SOURCE_PATH}/CMake/FindLibsodium.cmake") file(REMOVE "${SOURCE_PATH}/CMake/FindZstd.cmake") file(REMOVE "${SOURCE_PATH}/CMake/FindSnappy.cmake") file(REMOVE "${SOURCE_PATH}/CMake/FindLZ4.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindDoubleConversion.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake") file(REMOVE "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake") string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" MSVC_USE_STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "bzip2" VCPKG_LOCK_FIND_PACKAGE_BZip2 "libaio" VCPKG_LOCK_FIND_PACKAGE_LibAIO "libsodium" VCPKG_LOCK_FIND_PACKAGE_LIBSODIUM "liburing" VCPKG_LOCK_FIND_PACKAGE_LibUring "lz4" VCPKG_LOCK_FIND_PACKAGE_LZ4 "snappy" VCPKG_LOCK_FIND_PACKAGE_SNAPPY "zstd" VCPKG_LOCK_FIND_PACKAGE_ZSTD ) set(CROSSCOMP_OPTIONS "") if(VCPKG_CROSSCOMPILING AND VCPKG_TARGET_IS_LINUX) # Seed try_run results for cross-compiling; binaries cannot execute on the build host. set(CROSSCOMP_OPTIONS -DFOLLY_HAVE_UNALIGNED_ACCESS_EXITCODE=0 -DFOLLY_HAVE_WEAK_SYMBOLS_EXITCODE=0 -DFOLLY_HAVE_LINUX_VDSO_EXITCODE=0 -DFOLLY_HAVE_WCHAR_SUPPORT_EXITCODE=0 -DHAVE_VSNPRINTF_ERRORS_EXITCODE=0 ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSVC_USE_STATIC_RUNTIME=${MSVC_USE_STATIC_RUNTIME} -DCMAKE_INSTALL_DIR=share/folly -DCMAKE_POLICY_DEFAULT_CMP0167=NEW -DVCPKG_LOCK_FIND_PACKAGE_fmt=ON -DVCPKG_LOCK_FIND_PACKAGE_LibDwarf=OFF -DVCPKG_LOCK_FIND_PACKAGE_Libiberty=OFF -DVCPKG_LOCK_FIND_PACKAGE_LibUnwind=${VCPKG_TARGET_IS_LINUX} -DVCPKG_LOCK_FIND_PACKAGE_ZLIB=ON ${FEATURE_OPTIONS} ${CROSSCOMP_OPTIONS} MAYBE_UNUSED_VARIABLES MSVC_USE_STATIC_RUNTIME ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/folly/vcpkg.json ================================================ { "name": "folly", "version-string": "2026.02.23.00", "port-version": 1, "description": "An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows", "homepage": "https://github.com/facebook/folly", "license": "Apache-2.0", "supports": "(windows & x64 & !uwp & !mingw) | (!windows & !android & (x64 | arm64))", "dependencies": [ "boost-chrono", "boost-context", "boost-conversion", "boost-crc", "boost-date-time", "boost-filesystem", "boost-multi-index", "boost-program-options", "boost-regex", "boost-smart-ptr", "boost-system", "boost-thread", "boost-variant", "double-conversion", "fast-float", "fmt", "gflags", "glog", "libevent", "liblzma", { "name": "libunwind", "platform": "linux" }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "bzip2": { "description": "Support bzip2 for compression", "dependencies": [ "bzip2" ] }, "libaio": { "description": "Support compile with libaio", "supports": "linux", "dependencies": [ "libaio" ] }, "libsodium": { "description": "Support libsodium for cryto", "dependencies": [ "libsodium" ] }, "liburing": { "description": "Support compile with liburing", "supports": "linux", "dependencies": [ "liburing" ] }, "lz4": { "description": "Support lz4 for compression", "dependencies": [ "lz4" ] }, "lzma": { "description": "Support LZMA for compression", "dependencies": [ "liblzma" ] }, "snappy": { "description": "Support Snappy for compression", "dependencies": [ { "name": "snappy", "features": [ "rtti" ] } ] }, "zstd": { "description": "Support zstd for compression", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/font-chef/disable-warnings-as-errors.patch ================================================ diff --git a/src/font-chef/CMakeLists.txt b/src/font-chef/CMakeLists.txt --- a/src/font-chef/CMakeLists.txt +++ b/src/font-chef/CMakeLists.txt @@ -68,7 +68,7 @@ target_include_directories(font-chef++ INTERFACE if (NOT CMAKE_BUILD_TYPE MATCHES "Release") target_compile_options(font-chef PRIVATE $<$,$>:-Wall -Wextra -pedantic -fvisibility=hidden -Werror> - $<$:/W3 /WX /wd4820 /wd4668 /wd4204> + $<$:/W3 /wd4820 /wd4668 /wd4204> ) endif() ================================================ FILE: ports/font-chef/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mobius3/font-chef REF v1.1.0 SHA512 3df1e31e4405bcbb05ffed8fe618eb953498389adef3d83d337ac570644008bee031e08cd64382443ad123c4abf7e0acca5e3e16288caf6225672d6796a9494f HEAD_REF master PATCHES disable-warnings-as-errors.patch # to workaround https://github.com/mobius3/font-chef/issues/3 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/font-chef/vcpkg.json ================================================ { "name": "font-chef", "version": "1.1.0", "description": "A font cooking library", "homepage": "https://github.com/mobius3/font-chef", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/font-util/build.patch ================================================ diff --git a/bdftruncate.c b/bdftruncate.c index 2b317c0b0..3ab84978f 100644 --- a/bdftruncate.c +++ b/bdftruncate.c @@ -40,7 +40,13 @@ #include #include #include - +#if defined(_MSC_VER) +# if defined(_M_X64) || defined(_M_ARM64) +# define SSIZE_MAX LLONG_MAX +# else +# define SSIZE_MAX LONG_MAX +# endif +#endif #if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) # define ATTR_NORETURN __attribute((noreturn)) diff --git a/ucs2any.c b/ucs2any.c index 1f575d14f..75b662b3d 100644 --- a/ucs2any.c +++ b/ucs2any.c @@ -49,7 +49,9 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif /* global variable for argv[0] */ static const char *my_name = NULL; ================================================ FILE: ports/font-util/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO font/util REF "font-util-${VERSION}" SHA512 93285c2e8c5c01f069a7621dba0bbb1175c0ebbea27d521395b40f036443c162fc1948c4d3cb34fe6c509d1818d95ed7e6d38919e3f7857dfa53e388aadb9128 HEAD_REF master PATCHES build.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND VCPKG_C_FLAGS " /DNEED_BASENAME") list(APPEND VCPKG_CXX_FLAGS " /DNEED_BASENAME") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/xorg/") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/aclocal/" "${CURRENT_PACKAGES_DIR}/share/xorg/aclocal") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/fonts/" "${CURRENT_PACKAGES_DIR}/share/xorg/fonts") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/debug") set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/fontutil.pc") file(READ "${_file}" _contents) string(REPLACE "datarootdir=\${prefix}/share/${PORT}" "datarootdir=\${prefix}/share/xorg" _contents "${_contents}") string(REPLACE "exec_prefix=\${prefix}" "exec_prefix=\${prefix}/tools/${PORT}" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") if(NOT VCPKG_BUILD_TYPE) set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/fontutil.pc") file(READ "${_file}" _contents) string(REPLACE "datarootdir=\${prefix}/share/${PORT}" "datarootdir=\${prefix}/../share/xorg" _contents "${_contents}") string(REPLACE "exec_prefix=\${prefix}" "exec_prefix=\${prefix}/../tools/${PORT}" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") endif() ================================================ FILE: ports/font-util/vcpkg.json ================================================ { "name": "font-util", "version": "1.4.1", "port-version": 1, "description": "X.Org font package creation/installation utilities", "homepage": "https://gitlab.freedesktop.org/xorg/font/util", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/fontconfig/dllexport.diff ================================================ diff --git a/fontconfig/fontconfig.h.in b/fontconfig/fontconfig.h.in index e8944f9..a76230b 100644 --- a/fontconfig/fontconfig.h.in +++ b/fontconfig/fontconfig.h.in @@ -39,7 +39,7 @@ #endif #ifndef FcPublic -# define FcPublic +# define FcPublic @DEFAULT_FCPUBLIC@ #endif typedef unsigned char FcChar8; diff --git a/fontconfig/meson.build b/fontconfig/meson.build index 1ad1e58..1d9ac14 100644 --- a/fontconfig/meson.build +++ b/fontconfig/meson.build @@ -1,5 +1,14 @@ fontconfig_h_conf = configuration_data() fontconfig_h_conf.set('CACHE_VERSION', cacheversion) +default_FcPublic = '' +if get_option('default_library') != 'static' + if host_machine.system() == 'windows' + default_FcPublic = '__declspec(dllimport)' + else + default_FcPublic = '__attribute__((visibility("default")))' + endif +endif +fontconfig_h_conf.set('DEFAULT_FCPUBLIC', default_FcPublic) fontconfig_h = configure_file(output: 'fontconfig.h', input: 'fontconfig.h.in', configuration: fontconfig_h_conf) diff --git a/src/meson.build b/src/meson.build index bf5a781..c892a34 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,7 +1,7 @@ win_export_args = [] # Define FcPublic appropriately for exports on windows -if host_machine.system() == 'windows' +if host_machine.system() == 'windows' and get_option('default_library') != 'static' win_export_args += '-DFcPublic=__declspec(dllexport)' win_export_args += '-DDLL_EXPORT' endif ================================================ FILE: ports/fontconfig/fix-wasm-shared-memory-atomics.patch ================================================ diff --git a/meson.build b/meson.build index 8e78700..95bae59 100644 --- a/meson.build +++ b/meson.build @@ -112,6 +112,9 @@ check_alignofs = [ ] add_project_arguments('-DHAVE_CONFIG_H', language: 'c') +if cc.get_id() == 'clang' and host_machine.cpu_family() == 'wasm' + add_project_arguments('-matomics', '-mbulk-memory', language: 'c') +endif c_args = [] ================================================ FILE: ports/fontconfig/libgetopt.patch ================================================ --- a/fc-cache/meson.build +++ b/fc-cache/meson.build @@ -1,6 +1,6 @@ fccache = executable('fc-cache', ['fc-cache.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-cat/meson.build +++ b/fc-cat/meson.build @@ -1,6 +1,6 @@ fccat = executable('fc-cat', ['fc-cat.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-conflist/meson.build +++ b/fc-conflist/meson.build @@ -1,6 +1,6 @@ fcconflist = executable('fc-conflist', ['fc-conflist.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-list/meson.build +++ b/fc-list/meson.build @@ -1,6 +1,6 @@ fclist = executable('fc-list', ['fc-list.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-match/meson.build +++ b/fc-match/meson.build @@ -1,6 +1,6 @@ fcmatch = executable('fc-match', ['fc-match.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-pattern/meson.build +++ b/fc-pattern/meson.build @@ -1,6 +1,6 @@ fcpattern = executable('fc-pattern', ['fc-pattern.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [libintl_dep], + dependencies: [getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-query/meson.build +++ b/fc-query/meson.build @@ -1,6 +1,6 @@ fcquery = executable('fc-query', ['fc-query.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [freetype_dep, libintl_dep], + dependencies: [freetype_dep, getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-scan/meson.build +++ b/fc-scan/meson.build @@ -1,6 +1,6 @@ fcscan = executable('fc-scan', ['fc-scan.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [freetype_dep, libintl_dep], + dependencies: [freetype_dep, getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/fc-validate/meson.build +++ b/fc-validate/meson.build @@ -1,6 +1,6 @@ fcvalidate = executable('fc-validate', ['fc-validate.c', fcstdint_h, alias_headers, ft_alias_headers], include_directories: [incbase, incsrc], - dependencies: [freetype_dep, libintl_dep], + dependencies: [freetype_dep, getopt_dep, libintl_dep], link_with: [libfontconfig], c_args: c_args, install: true, --- a/meson.build +++ b/meson.build @@ -319,6 +319,14 @@ if cc.links(files('meson-cc-tests/solaris-atomic-operations.c'), name: 'Solaris conf.set('HAVE_SOLARIS_ATOMIC_OPS', 1) endif +if host_machine.system() == 'windows' + conf.set('HAVE_GETOPT', 1) + conf.set('HAVE_GETOPT_LONG', 1) + getopt_dep = cc.find_library('getopt', required: false) +else + getopt_dep = dependency('', required: false) +endif + prefix = get_option('prefix') ================================================ FILE: ports/fontconfig/libintl.diff ================================================ diff --git a/meson.build b/meson.build index e742ea6..1d795d1 100644 --- a/meson.build +++ b/meson.build @@ -200,10 +200,16 @@ gettext_args = [ '--msgid-bugs-address=@0@'.format(conf.get('PACKAGE_BUGREPORT') # Check for libintl.h opt_nls = get_option('nls') +libintl_dep = dependency('', required: false) +if opt_nls.allowed() libintl_dep = dependency('intl', required: opt_nls, fallback: ['libintl', 'libintl_dep']) +endif if libintl_dep.found() conf.set('ENABLE_NLS', opt_nls.allowed().to_int()) deps += [libintl_dep] + if host_machine.system() == 'darwin' + deps += [dependency('CoreFoundation', method: 'extraframework')] + endif else opt_nls = opt_nls.require(false) endif ================================================ FILE: ports/fontconfig/no-etc-symlinks.patch ================================================ --- a/conf.d/link_confs.py 2022-03-24 04:13:59.000982000 +0900 +++ b/conf.d/link_confs.py 2022-03-24 04:14:46.271964000 +0900 @@ -4,6 +4,7 @@ import sys import argparse import platform +import shutil from pathlib import PurePath if __name__=='__main__': @@ -32,7 +33,7 @@ except FileNotFoundError: pass try: - os.symlink(os.path.relpath(src, start=args.confpath), dst) + shutil.copyfile(src, dst) except NotImplementedError: # Not supported on this version of Windows break ================================================ FILE: ports/fontconfig/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO fontconfig/fontconfig REF ${VERSION} SHA512 8e05cad63cd0c5ca15d1359e19a605912198fcc0ec6ecc11d5a0ef596d72e795cd8128e4d350716e63cbc01612c3807b1455b8153901333790316170c9ef8e75 HEAD_REF master PATCHES dllexport.diff no-etc-symlinks.patch libgetopt.patch libintl.diff fix-wasm-shared-memory-atomics.patch ) set(options "") if("iconv" IN_LIST FEATURES) list(APPEND options "-Diconv=enabled") else() list(APPEND options "-Diconv=disabled") endif() if("nls" IN_LIST FEATURES) list(APPEND options "-Dnls=enabled") else() list(APPEND options "-Dnls=disabled") endif() if("tools" IN_LIST FEATURES) list(APPEND options "-Dtools=enabled") else() list(APPEND options "-Dtools=disabled") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -Ddoc=disabled -Dcache-build=disabled -Dxml-backend=expat -Dtests=disabled ADDITIONAL_BINARIES "gperf = ['${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}']" ) # https://www.freedesktop.org/software/fontconfig/fontconfig-user.html # Adding OPTIONS for e.g. baseconfig-dir etc. won't work since meson will try to install into those dirs! # Since adding OPTIONS does not work use a replacement in the generated config.h instead set(replacement "") if(VCPKG_TARGET_IS_WINDOWS) set(replacement "**invalid-fontconfig-dir-do-not-use**") endif() set(configfile "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/meson-config.h") vcpkg_replace_string("${configfile}" "${CURRENT_PACKAGES_DIR}" "${replacement}") if(NOT VCPKG_BUILD_TYPE) set(configfile "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/meson-config.h") vcpkg_replace_string("${configfile}" "${CURRENT_PACKAGES_DIR}/debug" "${replacement}") endif() vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() #Fix missing libintl static dependency if("nls" IN_LIST FEATURES AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/fontconfig.pc" "-liconv" "-liconv -lintl" IGNORE_UNCHANGED) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/fontconfig.pc" "-liconv" "-liconv -lintl" IGNORE_UNCHANGED) endif() vcpkg_fixup_pkgconfig() # Fix paths in debug pc file. if(NOT VCPKG_BUILD_TYPE) set(fontconfig_pc_debug "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/fontconfig.pc") vcpkg_replace_string("${fontconfig_pc_debug}" "/etc" "/../etc" REGEX) vcpkg_replace_string("${fontconfig_pc_debug}" "/var" "/../var" REGEX) endif() # Make path to cache in fonts.conf relative set(_file "${CURRENT_PACKAGES_DIR}/etc/fonts/fonts.conf") if(EXISTS "${_file}") vcpkg_replace_string("${_file}" "${CURRENT_PACKAGES_DIR}/var/cache/fontconfig" "./../../var/cache/fontconfig" IGNORE_UNCHANGED) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/var" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/var") if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES fc-match fc-cat fc-list fc-pattern fc-query fc-scan fc-cache fc-validate fc-conflist AUTO_CLEAN ) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/fontconfig/usage ================================================ fontconfig is compatible with built-in CMake targets: find_package(Fontconfig REQUIRED) # since CMake 3.14 target_link_libraries(main PRIVATE Fontconfig::Fontconfig) fontconfig provides pkg-config modules: # Font configuration and customization library fontconfig ================================================ FILE: ports/fontconfig/vcpkg-cmake-wrapper.cmake.in ================================================ _find_package(${ARGS}) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") if(NOT TARGET Fontconfig::Fontconfig) # Simplify wrapper for case of vendored FindFontconfig.cmake add_library(Fontconfig::Fontconfig UNKNOWN IMPORTED) endif() include(SelectLibraryConfigurations) find_library(Fontconfig_LIBRARY_DEBUG NAMES fontconfig fontconfigd NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_INSTALLED_DIR}/debug" NO_DEFAULT_PATH) find_library(Fontconfig_LIBRARY_RELEASE NAMES fontconfig NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH) select_library_configurations(Fontconfig) set_target_properties(Fontconfig::Fontconfig PROPERTIES IMPORTED_CONFIGURATIONS "Release" IMPORTED_LOCATION_RELEASE "${Fontconfig_LIBRARY_RELEASE}" ) if(Fontconfig_LIBRARY_DEBUG) set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(Fontconfig::Fontconfig PROPERTIES IMPORTED_LOCATION_DEBUG "${Fontconfig_LIBRARY_DEBUG}") endif() find_package(Freetype) if(Freetype_FOUND) list(APPEND Fontconfig_LIBRARIES "${FREETYPE_LIBRARIES}") if(TARGET Freetype::Freetype) set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$") else() # TODO link FREETYPE_LIBRARIES transformed for $. endif() endif() find_package(EXPAT) if(EXPAT_FOUND) list(APPEND Fontconfig_LIBRARIES "${EXPAT_LIBRARIES}") if(TARGET EXPAT::EXPAT) set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$") else() # TODO link EXPAT_LIBRARIES transformed for $. endif() endif() if(NOT WIN32) find_package(Iconv) if(Iconv_FOUND) list(APPEND Fontconfig_LIBRARIES "${Iconv_LIBRARIES}") set_property(TARGET Fontconfig::Fontconfig APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$") endif() endif() endif() ================================================ FILE: ports/fontconfig/vcpkg.json ================================================ { "name": "fontconfig", "version": "2.17.1", "port-version": 2, "description": "Library for configuring and customizing font access.", "homepage": "https://www.freedesktop.org/wiki/Software/fontconfig", "license": "MIT", "supports": "!uwp", "dependencies": [ "dirent", "expat", { "name": "freetype", "default-features": false }, { "name": "gperf", "host": true }, { "name": "libuuid", "platform": "!osx & !windows" }, { "name": "pthread", "platform": "!emscripten & !windows" }, { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ { "name": "iconv", "platform": "!windows" } ], "features": { "iconv": { "description": "Iconv support", "dependencies": [ "libiconv" ] }, "nls": { "description": "Native languages support", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl" ] }, "tools": { "description": "Build tools", "supports": "!emscripten", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/foonathan-lexy/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([0-9][.])" "\\1.0\\2" LEXY_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO foonathan/lexy REF "v${LEXY_VERSION}" SHA512 04eec38823ab7e6d67fe2017f9d09485ec0e2a2fa60182732e1b7a471944290934f10ded5ad209965efa0931a8f9db8bcf789ca8fb52a371b776d12edd8ca8f5 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLEXY_BUILD_BENCHMARKS=OFF -DLEXY_BUILD_EXAMPLES=OFF -DLEXY_BUILD_TESTS=OFF -DLEXY_BUILD_DOCS=OFF -DLEXY_BUILD_PACKAGE=OFF -DLEXY_ENABLE_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME lexy CONFIG_PATH lib/cmake/lexy ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/foonathan-lexy/vcpkg.json ================================================ { "name": "foonathan-lexy", "version": "2025.5.0", "description": "C++ parsing DSL", "homepage": "https://github.com/foonathan/lexy", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/foonathan-memory/backport-0f5ebe9f.diff ================================================ diff --git a/include/foonathan/memory/memory_arena.hpp b/include/foonathan/memory/memory_arena.hpp index 30ddd68..be2de58 100644 --- a/include/foonathan/memory/memory_arena.hpp +++ b/include/foonathan/memory/memory_arena.hpp @@ -656,32 +656,32 @@ namespace foonathan /// \returns The number of bytes `value` is in the given unit. /// \ingroup core /// @{ - constexpr std::size_t operator"" _KiB(unsigned long long value) noexcept + constexpr std::size_t operator""_KiB(unsigned long long value) noexcept { return std::size_t(value * 1024); } - constexpr std::size_t operator"" _KB(unsigned long long value) noexcept + constexpr std::size_t operator""_KB(unsigned long long value) noexcept { return std::size_t(value * 1000); } - constexpr std::size_t operator"" _MiB(unsigned long long value) noexcept + constexpr std::size_t operator""_MiB(unsigned long long value) noexcept { return std::size_t(value * 1024 * 1024); } - constexpr std::size_t operator"" _MB(unsigned long long value) noexcept + constexpr std::size_t operator""_MB(unsigned long long value) noexcept { return std::size_t(value * 1000 * 1000); } - constexpr std::size_t operator"" _GiB(unsigned long long value) noexcept + constexpr std::size_t operator""_GiB(unsigned long long value) noexcept { return std::size_t(value * 1024 * 1024 * 1024); } - constexpr std::size_t operator"" _GB(unsigned long long value) noexcept + constexpr std::size_t operator""_GB(unsigned long long value) noexcept { return std::size_t(value * 1000 * 1000 * 1000); } ================================================ FILE: ports/foonathan-memory/config-debug.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e736ae5..9aa61eb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -93,6 +93,10 @@ target_compile_definitions(foonathan_memory PUBLIC if(NOT MSVC) target_compile_features(foonathan_memory PUBLIC cxx_constexpr) endif() +target_compile_definitions(foonathan_memory INTERFACE + $<$:Z_VCPKG_FOONATHAN_MEMORY_DEBUG=1> + $<$>:Z_VCPKG_FOONATHAN_MEMORY_DEBUG=0> +) if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") if("${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") ================================================ FILE: ports/foonathan-memory/config_impl.hpp ================================================ #ifndef Z_VCPKG_FOONATHAN_MEMORY_DEBUG # if defined(NDEBUG) && !defined(_DEBUG) # define Z_VCPKG_FOONATHAN_MEMORY_DEBUG 0 # else # define Z_VCPKG_FOONATHAN_MEMORY_DEBUG 1 # endif #endif #if Z_VCPKG_FOONATHAN_MEMORY_DEBUG # include "config_impl-debug.hpp" #else # include "config_impl-release.hpp" #endif ================================================ FILE: ports/foonathan-memory/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO foonathan/memory REF "v0.7-4" SHA512 fe6d429644c3e5edfb5666e4047ece45766fa5907094903cbd1e5b91e164fa31b7596ea5627e0272cbb8ea0a2b26a1f57564c797874718396ea87d8fad7ab559 HEAD_REF master PATCHES config-debug.diff backport-0f5ebe9f.diff # Fix deprecated literal operator syntax ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool FOONATHAN_MEMORY_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DFOONATHAN_MEMORY_BUILD_EXAMPLES=OFF -DFOONATHAN_MEMORY_BUILD_TESTS=OFF OPTIONS_DEBUG -DFOONATHAN_MEMORY_BUILD_TOOLS=OFF ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH share/foonathan_memory/cmake PACKAGE_NAME foonathan_memory) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/foonathan_memory/cmake PACKAGE_NAME foonathan_memory) endif() vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/include/foonathan/memory/config_impl.hpp" "${CURRENT_PACKAGES_DIR}/include/foonathan/memory/config_impl-debug.hpp") file(RENAME "${CURRENT_PACKAGES_DIR}/include/foonathan/memory/config_impl.hpp" "${CURRENT_PACKAGES_DIR}/include/foonathan/memory/config_impl-release.hpp") file(COPY_FILE "${CURRENT_PORT_DIR}/config_impl.hpp" "${CURRENT_PACKAGES_DIR}/include/foonathan/memory/config_impl.hpp") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/foonathan_memory" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/LICENSE" "${CURRENT_PACKAGES_DIR}/debug/README.md" "${CURRENT_PACKAGES_DIR}/lib/foonathan_memory" "${CURRENT_PACKAGES_DIR}/LICENSE" "${CURRENT_PACKAGES_DIR}/README.md" ) if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES nodesize_dbg AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/foonathan-memory/vcpkg.json ================================================ { "name": "foonathan-memory", "version": "0.7.4", "port-version": 1, "description": "STL compatible C++ memory allocator library", "homepage": "https://foonathan.net/doc/memory/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "tool" ], "features": { "tool": { "description": "Build foonathan memory tool" } } } ================================================ FILE: ports/forge/cmake_config.patch ================================================ diff --git a/CMakeModules/ForgeConfig.cmake.in b/CMakeModules/ForgeConfig.cmake.in index 6fb18ac..5a3b000 100644 --- a/CMakeModules/ForgeConfig.cmake.in +++ b/CMakeModules/ForgeConfig.cmake.in @@ -83,3 +83,22 @@ if ((TARGET Forge::forge AND Forge_BINARY_EXISTS) OR TARGET forge) else () set(Forge_FOUND OFF) endif () + +if(Forge_FOUND) + # Check for dependencies when Forge binary and cmake files are found + include(CMakeFindDependencyMacro) + + find_dependency(glad CONFIG) + find_dependency(glfw3 CONFIG) + find_dependency(freetype CONFIG) + find_dependency(freeimage CONFIG) + find_dependency(OpenGL) + + if(NOT WIN32) + find_package(PkgConfig REQUIRED) + pkg_check_modules(fontconfig REQUIRED) + if(NOT fontconfig_FOUND) + message(FATAL_ERROR "Please install Fontconfig dependency") + endif() + endif() +endif() ================================================ FILE: ports/forge/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arrayfire/forge REF v1.0.8 SHA512 08e5eb89d80f7fa3310f0eb37481492b5c1dfff00b33c308169862d8b25cf93ad1d9c0db78667c0207a7f6f8ca4046c196bd3a987af839ea1864b49c738ee8e3 HEAD_REF master PATCHES cmake_config.patch ) file(REMOVE "${SOURCE_PATH}/CMakeModules/FindOpenGL.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFG_BUILD_DOCS=OFF -DFG_BUILD_EXAMPLES=OFF -DFG_INSTALL_BIN_DIR=bin -DFG_INSTALL_CMAKE_DIR=share/forge ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(GLOB DLLS ${CURRENT_PACKAGES_DIR}/bin/* ${CURRENT_PACKAGES_DIR}/debug/bin/*) list(FILTER DLLS EXCLUDE REGEX "forge\\.dll\$") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/debug/examples ${CURRENT_PACKAGES_DIR}/examples ${DLLS} ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/.github/LICENSE") ================================================ FILE: ports/forge/vcpkg.json ================================================ { "name": "forge", "version-semver": "1.0.8", "port-version": 3, "description": "An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend.", "homepage": "https://github.com/arrayfire/forge", "license": "BSD-3-Clause", "supports": "!(windows & (arm | uwp))", "dependencies": [ "boost-container-hash", { "name": "fontconfig", "platform": "!windows" }, "freeimage", "freetype", "glad", "glfw3", "glm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/foxi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO houseroad/foxi REF c278588e34e535f0bb8f00df3880d26928038cad SHA512 ad42cfd70e40ba0f0a9187b34ae9e3bd361c8c0038669f4c1591c4f7421d12ad93f76f42b33c2575eea1a3ddb3ff781da2895cdc636df5b60422598f450203c7 PATCHES remove-test-targets.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/foxi/remove-test-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b406d0f..c5d04d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,7 @@ if(MSVC) add_msvc_runtime_flag(foxi_loader) endif() -if (NOT ANDROID AND NOT IOS) +if (FALSE) # ---[ FOXI wrapper add_library(foxi_wrapper MODULE foxi/onnxifi_wrapper.c) target_include_directories(foxi_wrapper PRIVATE @@ -93,17 +93,6 @@ if (NOT ANDROID AND NOT IOS) endif() endif() -# ---[ FOXI dummy backend -add_library(foxi_dummy SHARED foxi/onnxifi_dummy.c) -target_include_directories(foxi_dummy PRIVATE - $ - $) -target_link_libraries(foxi_dummy PUBLIC foxi ${CMAKE_DL_LIBS}) -target_compile_definitions(foxi_dummy PRIVATE ONNXIFI_BUILD_LIBRARY=TRUE) -if(MSVC) - add_msvc_runtime_flag(foxi_dummy) -endif() - install(DIRECTORY ${FOXI_ROOT}/foxi DESTINATION include FILES_MATCHING @@ -114,10 +103,10 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/foxi PATTERN "*.h") install(TARGETS - foxi foxi_dummy foxi_loader + foxi_loader EXPORT ONNXTargets DESTINATION lib) -if(NOT ANDROID AND NOT IOS) +if(FALSE) install(TARGETS foxi_wrapper EXPORT ONNXTargets DESTINATION lib) endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index c5d04d5..cc7d18a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,9 +61,6 @@ set_target_properties(foxi_loader C_EXTENSIONS NO) target_link_libraries(foxi_loader PUBLIC foxi ${CMAKE_DL_LIBS}) -if(MSVC) - add_msvc_runtime_flag(foxi_loader) -endif() if (FALSE) # ---[ FOXI wrapper ================================================ FILE: ports/foxi/vcpkg.json ================================================ { "name": "foxi", "version-date": "2021-12-01", "description": "ONNXIFI with Facebook Extension", "homepage": "https://github.com/houseroad/foxi", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fp16/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e0d87f8..ae08c37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) INCLUDE(GNUInstallDirs) # ---[ Project -PROJECT(FP16 C CXX) +PROJECT(fp16 C CXX) # ---[ Options. OPTION(FP16_BUILD_TESTS "Build FP16 unit tests" ON) @@ -33,7 +33,10 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps CACHE PATH "Confu-style dependencies binary directory") -IF(NOT DEFINED PSIMD_SOURCE_DIR) +find_package(unofficial-psimd CONFIG REQUIRED) +add_library(psimd ALIAS unofficial::psimd::psimd) + +IF(FALSE) MESSAGE(STATUS "Downloading PSimd to ${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd (define PSIMD_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -77,7 +80,7 @@ ENDIF() TARGET_INCLUDE_DIRECTORIES(fp16 INTERFACE $ $) - +TARGET_LINK_LIBRARIES(fp16 INTERFACE psimd) INSTALL(FILES include/fp16.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) INSTALL(FILES @@ -89,6 +92,23 @@ INSTALL(FILES include/fp16/avx2.py DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fp16) + +INSTALL(TARGETS fp16 + EXPORT unofficial-fp16-config-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + INSTALL(EXPORT unofficial-fp16-config-targets NAMESPACE unofficial::fp16:: + FILE unofficial-fp16-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) # share/fp16 + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-fp16-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-fp16-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fp16) + + + # ---[ Configure psimd IF(NOT TARGET psimd) ADD_SUBDIRECTORY( diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..4523150 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(unofficial-psimd) + + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-fp16-config-targets.cmake" ) ================================================ FILE: ports/fp16/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Maratyszcza/fp16 REF 4dfe081cf6bcd15db339cf2680b9281b8451eeb3 SHA512 e79a1f6f8d4aeca85982158d5b070923d31d4f2062ed84cfa6f26c47a34f2e8ac49e0f330b7d49f5732d5e1eec6e7afccdac43645070060fb7827e2ce261dd3e PATCHES fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFP16_BUILD_TESTS=OFF -DFP16_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/fp16/vcpkg.json ================================================ { "name": "fp16", "version-date": "2021-02-21", "port-version": 4, "description": "Header-only library for conversion to/from half-precision floating point formats", "homepage": "https://github.com/Maratyszcza/FP16", "dependencies": [ "psimd", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/freealut/cmake_builds.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 963c530..656ce14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ # cmake project file by Prakash Punnoor # improved by Ryan Pavlik -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required(VERSION 2.8.12) project(Alut C) @@ -27,7 +27,6 @@ include_directories(${Alut_SOURCE_DIR}/include) # What to build? option(BUILD_EXAMPLES "build example applications" ON) -option(BUILD_STATIC "build static library too" OFF) option(BUILD_TESTS "build the test-suite" ON) # How to build it? diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b72d1a1..5fc6cdc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -39,35 +39,7 @@ set(ALUT_HEADERS ../include/AL/alut.h) source_group(APIHeader FILES ${ALUT_HEADERS}) - -if(BUILD_STATIC) - # we can't create a static library with the same name - # as the shared one, so we copy it over after creation - add_library(alut_static STATIC ${ALUT_SOURCES} ${ALUT_INTERNAL_HEADERS} ${ALUT_HEADERS}) - target_link_libraries(alut_static ${OPENAL_LIBRARY} ${ADD_LIBS}) - if(UNIX) - target_link_libraries(alut_static m) - endif() - if(NOT WIN32) - # TODO this is an inelegant hack... - add_custom_command(TARGET - alut_static - POST_BUILD - COMMAND - ${CMAKE_COMMAND} - ARGS - -E - copy - ${CMAKE_BINARY_DIR}/src/${CMAKE_STATIC_LIBRARY_PREFIX}alut_static${CMAKE_STATIC_LIBRARY_SUFFIX} - ${CMAKE_BINARY_DIR}/src/${CMAKE_STATIC_LIBRARY_PREFIX}alut${CMAKE_STATIC_LIBRARY_SUFFIX}) - install_files(/lib${LIB_SUFFIX} - FILES - ${CMAKE_STATIC_LIBRARY_PREFIX}alut${CMAKE_STATIC_LIBRARY_SUFFIX}) - endif() -endif() - - -add_library(alut SHARED ${ALUT_SOURCES} ${ALUT_INTERNAL_HEADERS} ${ALUT_HEADERS}) +add_library(alut ${ALUT_SOURCES} ${ALUT_INTERNAL_HEADERS} ${ALUT_HEADERS}) set_property(TARGET alut PROPERTY @@ -80,12 +52,40 @@ set_target_properties(alut SOVERSION ${MAJOR_VERSION}) target_link_libraries(alut ${OPENAL_LIBRARY}) +target_include_directories(alut PUBLIC ${OPENAL_INCLUDE_DIR}) if(UNIX) target_link_libraries(alut m) endif() +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(alut PUBLIC ALUT_BUILD_STATIC) +endif() install(TARGETS alut + EXPORT "FreeALUTTargets" LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} RUNTIME DESTINATION bin - PUBLIC_HEADER DESTINATION include/AL) + PUBLIC_HEADER DESTINATION include/AL + ) + +include(CMakePackageConfigHelpers) + +set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/FreeALUTConfigVersion.cmake") +set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/FreeALUTConfig.cmake") +set(namespace "FreeALUT::") + +write_basic_package_version_file("${version_config}" + COMPATIBILITY SameMajorVersion + VERSION ${PACKAGE_VERSION}) + +configure_package_config_file("Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION + lib${LIB_SUFFIX}/cmake/freealut) + +install(FILES "${project_config}" "${version_config}" + DESTINATION lib${LIB_SUFFIX}/cmake/freealut) + +install(EXPORT "FreeALUTTargets" + NAMESPACE "${namespace}" + DESTINATION lib${LIB_SUFFIX}/cmake/freealut) diff --git a/src/Config.cmake.in b/src/Config.cmake.in new file mode 100644 index 0000000..2a20f59 --- /dev/null +++ b/src/Config.cmake.in @@ -0,0 +1,5 @@ + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/FreeALUTTargets.cmake") +check_required_components("FreeALUT") ================================================ FILE: ports/freealut/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vancegroup/freealut REF fc814e316c2bfa6e05b723b8cc9cb276da141aae SHA512 046990cc13822ca6eea0b8e412aa95a994b881429e0b15cefee379f08bd9636d4a4598292a8d46b30c3cd06814bfaeae3298e8ef4087a46eede344f3880e9fed HEAD_REF master PATCHES cmake_builds.patch unix_headers.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/freealut-config") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/freealut-config") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/freealut/unix_headers.patch ================================================ diff --git a/include/AL/alut.h b/include/AL/alut.h index 4b05a3c..1084604 100644 --- a/include/AL/alut.h +++ b/include/AL/alut.h @@ -1,24 +1,18 @@ #if !defined(AL_ALUT_H) #define AL_ALUT_H -#if defined(_MSC_VER) #include #include -#elif defined(__APPLE__) -#include -#include -#else -#include -#include -#endif #if defined(__cplusplus) extern "C" { #endif #if defined(_WIN32) && !defined(_XBOX) - #if defined (ALUT_BUILD_LIBRARY) + #if defined(ALUT_BUILD_LIBRARY) #define ALUT_API __declspec(dllexport) + #elif defined(ALUT_BUILD_STATIC) + #define ALUT_API extern #else #define ALUT_API __declspec(dllimport) #endif ================================================ FILE: ports/freealut/vcpkg.json ================================================ { "name": "freealut", "version": "1.1.0", "port-version": 4, "description": [ "FreeALUT is a free implementation of OpenAL's ALUT standard.", "ALUT is a set of portable functions which remove the annoying details of getting an audio application started. It is the OpenAL counterpart of what GLUT is for OpenGL. " ], "homepage": "https://github.com/vancegroup/freealut", "license": "LGPL-2.0-only", "supports": "!uwp & !xbox", "dependencies": [ "openal-soft", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/freeglut/android.patch ================================================ diff --git a/src/android/native_app_glue/android_native_app_glue.c b/src/android/native_app_glue/android_native_app_glue.c index be8d941..6ddae78 100644 --- a/src/android/native_app_glue/android_native_app_glue.c +++ b/src/android/native_app_glue/android_native_app_glue.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include ================================================ FILE: ports/freeglut/fix-debug-macro.patch ================================================ diff --git a/include/GL/freeglut_std.h b/include/GL/freeglut_std.h index a658c7c..a5efb3b 100644 --- a/include/GL/freeglut_std.h +++ b/include/GL/freeglut_std.h @@ -70,7 +70,7 @@ /* Link with Win32 static freeglut lib */ # if FREEGLUT_LIB_PRAGMAS -# ifdef NDEBUG +# if defined(NDEBUG) || !defined(_DEBUG) # pragma comment (lib, "freeglut_static.lib") # else # pragma comment (lib, "freeglut_staticd.lib") @@ -88,7 +88,7 @@ /* Link with Win32 shared freeglut lib */ # if FREEGLUT_LIB_PRAGMAS -# ifdef NDEBUG +# if defined(NDEBUG) || !defined(_DEBUG) # pragma comment (lib, "freeglut.lib") # else # pragma comment (lib, "freeglutd.lib") diff --git a/src/blackberry/fg_main_blackberry.c b/src/blackberry/fg_main_blackberry.c index a1b9cbb..a20c53d 100644 --- a/src/blackberry/fg_main_blackberry.c +++ b/src/blackberry/fg_main_blackberry.c @@ -31,7 +31,7 @@ #include "fg_internal.h" #include "egl/fg_window_egl.h" -#ifdef NDEBUG +#if defined(NDEBUG) || !defined(_DEBUG) #define LOGI(...) #endif ================================================ FILE: ports/freeglut/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FreeGLUTProject/freeglut REF "v${VERSION}" SHA512 5e891e838a11ffbd5c2aea1f39004be6a0ccc1da11d661a37302c316734e0986ed86622f174ae91f40572ce9d0fbe9c43e0976ee8636f2de25aa8e1ecf256785 HEAD_REF master PATCHES android.patch x11-dependencies-export.patch fix-debug-macro.patch windows-output-name.patch ) if(VCPKG_TARGET_IS_OSX) message("Freeglut currently requires Xquartz for macOS.") elseif(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID) message("Freeglut currently requires the following libraries from the system package manager:\n opengl\n glu\n libx11\n xrandr\n xi\n xxf86vm\n\nThese can be installed on Ubuntu systems via apt-get install libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FREEGLUT_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" FREEGLUT_DYNAMIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFREEGLUT_BUILD_STATIC_LIBS=${FREEGLUT_STATIC} -DFREEGLUT_BUILD_SHARED_LIBS=${FREEGLUT_DYNAMIC} -DFREEGLUT_REPLACE_GLUT=ON -DFREEGLUT_BUILD_DEMOS=OFF -DINSTALL_PDB=OFF # Installing pdbs failed on debug static. So, disable it and let vcpkg_copy_pdbs() do it ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeGLUT) vcpkg_fixup_pkgconfig() file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(file IN LISTS pc_files) vcpkg_replace_string("${file}" ";-D" " -D" IGNORE_UNCHANGED) endforeach() if(NOT VCPKG_TARGET_IS_ANDROID) file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glut.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freeglut.pc") if(NOT VCPKG_BUILD_TYPE) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glut.pc" " -lfreeglut" " -lfreeglutd" IGNORE_UNCHANGED) endif() file(COPY_FILE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glut.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freeglut.pc") endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/GL/freeglut_std.h" "ifdef FREEGLUT_STATIC" "if 1 //ifdef FREEGLUT_STATIC" ) endif() # Clean file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/glut") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/freeglut/usage ================================================ freeglut provides CMake targets: find_package(FreeGLUT CONFIG REQUIRED) target_link_libraries(main PRIVATE $,FreeGLUT::freeglut,FreeGLUT::freeglut_static>) freeglut is compatible with built-in CMake targets: find_package(GLUT REQUIRED) target_link_libraries(main PRIVATE GLUT::GLUT) ================================================ FILE: ports/freeglut/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(GLUT_FOUND AND UNIX AND NOT ANDROID) cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) if(GLUT_LINK_LIBRARIES) # Since CMake 3.22, FindGLUT.cmake loads the glut pkg-config module. # We need `-lglut` resolved to an absolute path. set(GLUT_LIBRARIES "${GLUT_LINK_LIBRARIES}") else() find_package(X11) # Before CMake 3.14, FindX11.cmake doesn't create imported targets. # For X11, we simply assume shared linkage of system libs, # so order and transitive usage requirements don't matter. if(X11_FOUND AND NOT "X11" IN_LIST GLUT_LIBRARIES) list(APPEND GLUT_LIBRARIES "${X11_X11_LIB}") set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_X11_LIB}") endif() if(X11_Xrandr_FOUND AND NOT "Xrandr" IN_LIST GLUT_LIBRARIES) list(APPEND GLUT_LIBRARIES "${X11_Xrandr_LIB}") set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xrandr_LIB}") endif() # X11_xf86vmode_FOUND for CMake < 3.14 if((X11_Xxf86vm_FOUND OR X11_xf86vmode_FOUND) AND NOT "Xxf86vm" IN_LIST GLUT_LIBRARIES) list(APPEND GLUT_LIBRARIES "${X11_Xxf86vm_LIB}") set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xxf86vm_LIB}") endif() if(X11_Xi_FOUND AND NOT GLUT_Xi_LIBRARY AND NOT "Xi" IN_LIST GLUT_LIBRARIES) list(APPEND GLUT_LIBRARIES "${X11_Xi_LIB}") set_property(TARGET GLUT::GLUT APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${X11_Xi_LIB}") endif() endif() cmake_policy(POP) endif() ================================================ FILE: ports/freeglut/vcpkg.json ================================================ { "name": "freeglut", "version": "3.8.0", "description": "A free OpenGL utility toolkit, the open-sourced alternative to the GLUT library.", "homepage": "https://sourceforge.net/projects/freeglut/", "license": null, "supports": "!ios", "dependencies": [ "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/freeglut/windows-output-name.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 99957a1..9a5fb2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -533,12 +533,12 @@ IF(WIN32) LIST(APPEND LIBS winmm gdi32) IF(FREEGLUT_BUILD_SHARED_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut PRIVATE FREEGLUT_EXPORTS) - SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME ${LIBNAME}) + SET_TARGET_PROPERTIES(freeglut PROPERTIES OUTPUT_NAME freeglut) ENDIF() IF(FREEGLUT_BUILD_STATIC_LIBS) TARGET_COMPILE_DEFINITIONS(freeglut_static PUBLIC FREEGLUT_STATIC) IF(FREEGLUT_REPLACE_GLUT) - SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME ${LIBNAME}) + SET_TARGET_PROPERTIES(freeglut_static PROPERTIES OUTPUT_NAME freeglut) ENDIF() # need to set machine:x64 for linker, at least for VC10, and # doesn't hurt for older compilers: diff --git a/include/GL/freeglut_std.h b/include/GL/freeglut_std.h index e5da4ce..4eea6eb 100644 --- a/include/GL/freeglut_std.h +++ b/include/GL/freeglut_std.h @@ -71,9 +71,9 @@ /* Link with Win32 static freeglut lib */ # if FREEGLUT_LIB_PRAGMAS # if defined(NDEBUG) || !defined(_DEBUG) -# pragma comment (lib, "freeglut_static.lib") +# pragma comment (lib, "freeglut.lib") # else -# pragma comment (lib, "freeglut_staticd.lib") +# pragma comment (lib, "freeglutd.lib") # endif # endif ================================================ FILE: ports/freeglut/x11-dependencies-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5568b63..bec3de5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -620,6 +620,15 @@ ELSE() SET(PC_LIBS_PRIVATE "-lX11 -lXxf86vm -lXrandr -lGL -lm") ENDIF() ENDIF() +if(NOT X11_Xrandr_FOUND) + string(REPLACE " -lXrandr" "" PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}") +endif() +if(NOT X11_xf86vmode_FOUND) + string(REPLACE " -lXxf86vm" "" PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}") +endif() +if(X11_Xinput_FOUND) + string(REPLACE "-lX11 " "-lX11 -lXi " PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}") +endif() # Client applications need to define FreeGLUT GLES version to # bootstrap headers inclusion in freeglut_std.h: SET(PC_LIBNAME ${LIBNAME}) ================================================ FILE: ports/freeimage/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) include(GNUInstallDirs) project(FreeImage C CXX) if(MSVC) add_definitions("-D_CRT_SECURE_NO_WARNINGS") set(CMAKE_CXX_FLAGS "/wd4828 ${CMAKE_CXX_FLAGS}") endif() find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(JPEG REQUIRED) find_package(TIFF REQUIRED) find_package(OpenJPEG REQUIRED) find_package(WebP CONFIG REQUIRED) find_package(JXR REQUIRED) find_package(LibRaw REQUIRED) find_package(OpenEXR REQUIRED) option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(INSTALL_HEADERS "Install the development headers" ON) set(REAL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Source) # Add a debug postfix set(CMAKE_DEBUG_POSTFIX "d") # List the public header files set(PUBLIC_HEADERS ${REAL_SOURCE_DIR}/FreeImage.h) # List the private header files set(ROOT_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/CacheFile.h ${REAL_SOURCE_DIR}/FreeImageIO.h ${REAL_SOURCE_DIR}/MapIntrospector.h ${REAL_SOURCE_DIR}/Plugin.h ${REAL_SOURCE_DIR}/Quantizers.h ${REAL_SOURCE_DIR}/ToneMapping.h ${REAL_SOURCE_DIR}/Utilities.h) file(GLOB FREEIMAGE_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/FreeImage/*.h) file(GLOB FREEIMAGE_TOOLKIT_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/FreeImageToolkit/*.h) file(GLOB METADATA_PRIVATE_HEADERS ${REAL_SOURCE_DIR}/Metadata/*.h) set(PRIVATE_HEADERS ${ROOT_PRIVATE_HEADERS} ${FREEIMAGE_PRIVATE_HEADERS} ${FREEIMAGE_TOOLKIT_PRIVATE_HEADERS} ${METADATA_PRIVATE_HEADERS}) # List the source files file(GLOB DEPRECATION_SRCS ${REAL_SOURCE_DIR}/DeprecationManager/*.cpp) file(GLOB FREEIMAGE_TOOLKIT_SRCS ${REAL_SOURCE_DIR}/FreeImageToolkit/*.cpp) file(GLOB FREEIMAGE_SRCS ${REAL_SOURCE_DIR}/FreeImage/*.cpp) file(GLOB METADATA_SRCS ${REAL_SOURCE_DIR}/Metadata/*.cpp) # The G3 plugin is disabled because it require the private copy of tiff list(REMOVE_ITEM FREEIMAGE_SRCS ${REAL_SOURCE_DIR}/FreeImage/PluginG3.cpp) # The JPEGTransform plugin is disable because it requires a private copy of jpeg list(REMOVE_ITEM FREEIMAGE_TOOLKIT_SRCS ${REAL_SOURCE_DIR}/FreeImageToolkit/JPEGTransform.cpp) set(SRCS ${DEPRECATION_SRCS} ${FREEIMAGE_SRCS} ${FREEIMAGE_TOOLKIT_SRCS} ${METADATA_SRCS} ) # If FreeImage is used as a static library, FREEIMAGE_LIB # needs to be defined (at the C preprocessor level) to correctly # define (to nothing instead of _declspec(dllimport) ) the DLL_API macro. # For this purpouse we include (depending on the BUILD_SHARED_LIBS ) # the appropriate FreeImageConfig.h . if(BUILD_SHARED_LIBS) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FreeImageConfig-dynamic.h ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h) else() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/FreeImageConfig-static.h ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h) endif() list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/FreeImageConfig.h) add_library(FreeImage ${SRCS} ${PRIVATE_HEADERS} ${PUBLIC_HEADERS} ${CMAKE_CURRENT_SOURCE_DIR}/FreeImage.rc) if(BUILD_SHARED_LIBS) target_compile_definitions(FreeImage PRIVATE -DFREEIMAGE_EXPORTS) else() target_compile_definitions(FreeImage PRIVATE -DFREEIMAGE_LIB) endif() target_include_directories(FreeImage PRIVATE ${REAL_SOURCE_DIR} ${ZLIB_INCLUDE_DIRS} ${JPEG_INCLUDE_DIRS} ${TIFF_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS} ${OPENJPEG_INCLUDE_DIRS} ${JXR_INCLUDE_DIRS} ${LibRaw_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} PUBLIC $) target_link_libraries(FreeImage ${ZLIB_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${PNG_LIBRARIES} ${OPENJPEG_LIBRARIES} WebP::webp WebP::webpdemux WebP::libwebpmux WebP::webpdecoder ${JXR_LIBRARIES} ${LibRaw_LIBRARIES} OpenEXR::OpenEXR Imath::Imath) target_compile_definitions(FreeImage PRIVATE ${PNG_DEFINITIONS}) # FreeImagePlus file(GLOB FREEIMAGEPLUS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/src/*.cpp) add_library(FreeImagePlus ${FREEIMAGEPLUS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/FreeImagePlus.h ${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/FreeImagePlus.rc) if(BUILD_SHARED_LIBS) target_compile_definitions(FreeImagePlus PRIVATE -DFIP_EXPORTS) else() target_compile_definitions(FreeImagePlus PRIVATE -DFREEIMAGE_LIB) endif() target_include_directories(FreeImagePlus PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus ${CMAKE_CURRENT_BINARY_DIR} ${REAL_SOURCE_DIR} PUBLIC $) target_link_libraries(FreeImagePlus PUBLIC FreeImage) list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/Wrapper/FreeImagePlus/FreeImagePlus.h) install(TARGETS FreeImage FreeImagePlus EXPORT freeimage-targets COMPONENT runtime RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") install(EXPORT freeimage-targets NAMESPACE freeimage:: DESTINATION share/freeimage) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freeimage-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(ZLIB) find_dependency(PNG) find_dependency(JPEG) find_dependency(TIFF) find_dependency(OpenJPEG) find_dependency(WebP CONFIG) find_dependency(JXR) find_dependency(LibRaw) find_dependency(OpenEXR) find_dependency(Imath) include(\"\${CMAKE_CURRENT_LIST_DIR}/freeimage-targets.cmake\") ") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freeimage-config.cmake DESTINATION share/freeimage) if(INSTALL_HEADERS) install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif() ================================================ FILE: ports/freeimage/FreeImageConfig-dynamic.h ================================================ #ifndef FREEIMAGE_CONFIG_H #define FREEIMAGE_CONFIG_H #undef FREEIMAGE_LIB #endif ================================================ FILE: ports/freeimage/FreeImageConfig-static.h ================================================ #ifndef FREEIMAGE_CONFIG_H #define FREEIMAGE_CONFIG_H #define FREEIMAGE_LIB #endif ================================================ FILE: ports/freeimage/disable-plugins-depending-on-internal-third-party-libraries.patch ================================================ diff --git a/Source/FreeImage.h b/Source/FreeImage.h index 12182cd..ebd0453 100644 --- a/Source/FreeImage.h +++ b/Source/FreeImage.h @@ -410,16 +410,20 @@ FI_ENUM(FREE_IMAGE_FORMAT) { FIF_DDS = 24, FIF_GIF = 25, FIF_HDR = 26, - FIF_FAXG3 = 27, - FIF_SGI = 28, - FIF_EXR = 29, - FIF_J2K = 30, - FIF_JP2 = 31, - FIF_PFM = 32, - FIF_PICT = 33, - FIF_RAW = 34, - FIF_WEBP = 35, - FIF_JXR = 36 +/* vcpkg: The G3 fax format plugin is deliberately disabled in our build of + FreeImage, since it requires usage of the vendored copy of libtiff. */ +#if 0 + FIF_FAXG3 = 27, +#endif + FIF_SGI = 27, + FIF_EXR = 28, + FIF_J2K = 29, + FIF_JP2 = 30, + FIF_PFM = 31, + FIF_PICT = 32, + FIF_RAW = 33, + FIF_WEBP = 34, + FIF_JXR = 35 }; /** Image type used in FreeImage. @@ -476,6 +480,9 @@ FI_ENUM(FREE_IMAGE_DITHER) { /** Lossless JPEG transformations Constants used in FreeImage_JPEGTransform */ +/* vcpkg: The JPEGTransform functions are deliberately disabled in our build + of FreeImage, since they require usage of the vendored copy of libjpeg. */ +#if 0 FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { FIJPEG_OP_NONE = 0, //! no transformation FIJPEG_OP_FLIP_H = 1, //! horizontal flip @@ -486,6 +493,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) { FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw) }; +#endif /** Tone mapping operators. Constants used in FreeImage_ToneMapping. @@ -1089,6 +1097,9 @@ DLL_API const char* DLL_CALLCONV FreeImage_TagToString(FREE_IMAGE_MDMODEL model, // JPEG lossless transformation routines // -------------------------------------------------------------------------- +/* vcpkg: The JPEGTransform functions are deliberately disabled in our build + of FreeImage, since they require usage of the vendored copy of libjpeg. */ +#if 0 DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE)); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom); @@ -1097,7 +1108,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformFromHandle(FreeImageIO* src_io, DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE)); - +#endif // -------------------------------------------------------------------------- // Image manipulation toolkit diff --git a/Source/FreeImage/Plugin.cpp b/Source/FreeImage/Plugin.cpp index 11e7294..0119ba7 100644 --- a/Source/FreeImage/Plugin.cpp +++ b/Source/FreeImage/Plugin.cpp @@ -263,7 +263,11 @@ FreeImage_Initialise(BOOL load_local_plugins_only) { s_plugins->AddNode(InitDDS); s_plugins->AddNode(InitGIF); s_plugins->AddNode(InitHDR); - s_plugins->AddNode(InitG3); +/* vcpkg: The G3 fax format plugin is deliberately disabled in our build of FreeImage ++ since it requires usage of the vendored copy of libtiff. */ +#if 0 + s_plugins->AddNode(InitG3); +#endif s_plugins->AddNode(InitSGI); s_plugins->AddNode(InitEXR); s_plugins->AddNode(InitJ2K); ================================================ FILE: ports/freeimage/fix-function-overload.patch ================================================ diff --git a/Source/FreeImage/PluginJPEG.cpp b/Source/FreeImage/PluginJPEG.cpp index 8db177d..efa2c4e 100644 --- a/Source/FreeImage/PluginJPEG.cpp +++ b/Source/FreeImage/PluginJPEG.cpp @@ -503,7 +503,7 @@ marker_is_icc(jpeg_saved_marker_ptr marker) { return FALSE. You might want to issue an error message instead. */ static BOOL -jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned *icc_data_len) { +jpeg_read_icc_profile_(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned *icc_data_len) { jpeg_saved_marker_ptr marker; int num_markers = 0; int seq_no; @@ -745,7 +745,7 @@ read_markers(j_decompress_ptr cinfo, FIBITMAP *dib) { BYTE *icc_profile = NULL; unsigned icc_length = 0; - if( jpeg_read_icc_profile(cinfo, &icc_profile, &icc_length) ) { + if( jpeg_read_icc_profile_(cinfo, &icc_profile, &icc_length) ) { // copy ICC profile data FreeImage_CreateICCProfile(dib, icc_profile, icc_length); // clean up @@ -785,7 +785,7 @@ jpeg_write_comment(j_compress_ptr cinfo, FIBITMAP *dib) { Write JPEG_APP2 marker (ICC profile) */ static BOOL -jpeg_write_icc_profile(j_compress_ptr cinfo, FIBITMAP *dib) { +jpeg_write_icc_profile_(j_compress_ptr cinfo, FIBITMAP *dib) { // marker identifying string "ICC_PROFILE" (null-terminated) BYTE icc_signature[12] = { 0x49, 0x43, 0x43, 0x5F, 0x50, 0x52, 0x4F, 0x46, 0x49, 0x4C, 0x45, 0x00 }; @@ -1038,7 +1038,7 @@ write_markers(j_compress_ptr cinfo, FIBITMAP *dib) { jpeg_write_comment(cinfo, dib); // write ICC profile - jpeg_write_icc_profile(cinfo, dib); + jpeg_write_icc_profile_(cinfo, dib); // write IPTC profile jpeg_write_iptc_profile(cinfo, dib); ================================================ FILE: ports/freeimage/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO freeimage/Source%20Distribution REF 3.18.0 FILENAME "FreeImage3180.zip" SHA512 9d9cc7e2d57552c3115e277aeb036e0455204d389026b17a3f513da5be1fd595421655488bb1ec2f76faebed66049119ca55e26e2a6d37024b3fb7ef36ad4818 PATCHES disable-plugins-depending-on-internal-third-party-libraries.patch use-external-jpeg.patch use-external-jxrlib.patch use-external-libtiff.patch use-external-openjpeg.patch use-external-png-zlib.patch use-external-rawlib.patch use-external-webp.patch use-external-openexr.patch use-freeimage-config-include.patch fix-function-overload.patch use-typedef-as-already-declared.patch use-functions-to-override-libtiff-warning-error-handlers.patch remove_auto_ptr.patch rawlib-build-fix.patch typedef-xcode.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/FreeImageConfig-static.h" "${CMAKE_CURRENT_LIST_DIR}/FreeImageConfig-dynamic.h" DESTINATION "${SOURCE_PATH}" ) # This is not strictly necessary, but to make sure # that no "internal" libraries are used we remove them file(REMOVE_RECURSE "${SOURCE_PATH}/Source/LibJPEG" "${SOURCE_PATH}/Source/LibPNG" "${SOURCE_PATH}/Source/LibTIFF4" "${SOURCE_PATH}/Source/ZLib" "${SOURCE_PATH}/Source/LibOpenJPEG" "${SOURCE_PATH}/Source/LibJXR" "${SOURCE_PATH}/Source/LibWebP" "${SOURCE_PATH}/Source/LibRawLite" "${SOURCE_PATH}/Source/OpenEXR" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license-fi.txt") ================================================ FILE: ports/freeimage/rawlib-build-fix.patch ================================================ diff --git a/Source/FreeImage/PluginRAW.cpp b/Source/FreeImage/PluginRAW.cpp index c7f8758a..a57fd5f1 100644 --- a/Source/FreeImage/PluginRAW.cpp +++ b/Source/FreeImage/PluginRAW.cpp @@ -46,6 +46,14 @@ private: long _eof; INT64 _fsize; + // Minimal change to make version 3.18.0 of FreeImage compile with + // LibRaw 0.20 and later versions. + // Once the port of FreeImage has been updated to a version greater + // than 3.18.0, this patch should be removed as it will not be needed. +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 20) + LibRaw_abstract_datastream * const substream = nullptr; +#endif + public: LibRaw_freeimage_datastream(FreeImageIO *io, fi_handle handle) : _io(io), _handle(handle) { long start_pos = io->tell_proc(handle); @@ -694,7 +702,11 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) { // -------------------------------------------- // (-s [0..N-1]) Select one raw image from input file +#if LIBRAW_COMPILE_CHECK_VERSION_NOTLESS(0, 20) + RawProcessor->imgdata.rawparams.shot_select = 0; +#else RawProcessor->imgdata.params.shot_select = 0; +#endif // (-w) Use camera white balance, if possible (otherwise, fallback to auto_wb) RawProcessor->imgdata.params.use_camera_wb = 1; // (-M) Use any color matrix from the camera metadata. This option only affects Olympus, Leaf, and Phase One cameras. ================================================ FILE: ports/freeimage/remove_auto_ptr.patch ================================================ diff --git a/Source/FreeImage/MultiPage.cpp b/Source/FreeImage/MultiPage.cpp index 4f2605188..8af384aff 100644 --- a/Source/FreeImage/MultiPage.cpp +++ b/Source/FreeImage/MultiPage.cpp @@ -31,6 +31,8 @@ #pragma warning (disable : 4786) // identifier was truncated to 'number' characters #endif +#include + #include "CacheFile.h" #include "FreeImageIO.h" #include "Plugin.h" @@ -271,8 +273,8 @@ FreeImage_OpenMultiBitmap(FREE_IMAGE_FORMAT fif, const char *filename, BOOL crea } } - std::auto_ptr bitmap (new FIMULTIBITMAP); - std::auto_ptr header (new MULTIBITMAPHEADER); + std::unique_ptr bitmap (new FIMULTIBITMAP); + std::unique_ptr header (new MULTIBITMAPHEADER); header->m_filename = filename; // io is default header->node = node; @@ -337,8 +339,8 @@ FreeImage_OpenMultiBitmapFromHandle(FREE_IMAGE_FORMAT fif, FreeImageIO *io, fi_h PluginNode *node = list->FindNodeFromFIF(fif); if (node) { - std::auto_ptr bitmap (new FIMULTIBITMAP); - std::auto_ptr header (new MULTIBITMAPHEADER); + std::unique_ptr bitmap (new FIMULTIBITMAP); + std::unique_ptr header (new MULTIBITMAPHEADER); header->io = *io; header->node = node; header->fif = fif; ================================================ FILE: ports/freeimage/typedef-xcode.patch ================================================ diff --git a/Source/FreeImage.h b/Source/FreeImage.h index ad2574d..9588944 100644 --- a/Source/FreeImage.h +++ b/Source/FreeImage.h @@ -155,7 +155,9 @@ FI_STRUCT (FIMULTIBITMAP) { void *data; }; #ifndef _MSC_VER // define portable types for 32-bit / 64-bit OS #include +#ifndef OBJC_BOOL_DEFINED typedef int32_t BOOL; +#endif typedef uint8_t BYTE; typedef uint16_t WORD; typedef uint32_t DWORD; ================================================ FILE: ports/freeimage/use-external-jpeg.patch ================================================ diff --git a/Source/FreeImage/PluginJPEG.cpp b/Source/FreeImage/PluginJPEG.cpp index 573989c..aaeefa4 100644 --- a/Source/FreeImage/PluginJPEG.cpp +++ b/Source/FreeImage/PluginJPEG.cpp @@ -35,9 +35,9 @@ extern "C" { #undef FAR #include -#include "../LibJPEG/jinclude.h" -#include "../LibJPEG/jpeglib.h" -#include "../LibJPEG/jerror.h" +#include +#include +#include } #include "FreeImage.h" ================================================ FILE: ports/freeimage/use-external-jxrlib.patch ================================================ diff --git a/Source/FreeImage/PluginJXR.cpp b/Source/FreeImage/PluginJXR.cpp index 0e14e09..8eb9d5d 100644 --- a/Source/FreeImage/PluginJXR.cpp +++ b/Source/FreeImage/PluginJXR.cpp @@ -23,7 +23,8 @@ #include "Utilities.h" #include "../Metadata/FreeImageTag.h" -#include "../LibJXR/jxrgluelib/JXRGlue.h" +#define INITGUID +#include // ========================================================== // Plugin Interface ================================================ FILE: ports/freeimage/use-external-libtiff.patch ================================================ diff --git a/Source/FreeImage/PluginTIFF.cpp b/Source/FreeImage/PluginTIFF.cpp index 5068d94..8947b03 100644 --- a/Source/FreeImage/PluginTIFF.cpp +++ b/Source/FreeImage/PluginTIFF.cpp @@ -37,9 +37,9 @@ #include "FreeImage.h" #include "Utilities.h" -#include "../LibTIFF4/tiffiop.h" +#include #include "../Metadata/FreeImageTag.h" #include "../OpenEXR/Half/half.h" #include "FreeImageIO.h" #include "PSDParser.h" @@ -199,15 +199,18 @@ Open a TIFF file for reading or writing @param name @param mode */ +/* TIFF* TIFFOpen(const char* name, const char* mode) { return 0; } +*/ // ---------------------------------------------------------- // TIFF library FreeImage-specific routines. // ---------------------------------------------------------- +/* void* _TIFFmalloc(tmsize_t s) { return malloc(s); @@ -245,6 +248,7 @@ int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c) { return (memcmp(p1, p2, (size_t) c)); } +*/ // ---------------------------------------------------------- // in FreeImage warnings and errors are disabled diff --git a/Source/Metadata/XTIFF.cpp b/Source/Metadata/XTIFF.cpp index d5be902..8dbcd5d 100644 --- a/Source/Metadata/XTIFF.cpp +++ b/Source/Metadata/XTIFF.cpp @@ -29,7 +29,7 @@ #pragma warning (disable : 4786) // identifier was truncated to 'number' characters #endif -#include "../LibTIFF4/tiffiop.h" +#include #include "FreeImage.h" #include "Utilities.h" @@ -40,6 +40,43 @@ // Extended TIFF Directory GEO Tag Support // ---------------------------------------------------------- +// vcpkg: function imported from libtiff/tif_dirinfo.c, in which it is not exported +/* + * Return size of TIFFDataType in bytes. + * + * XXX: We need a separate function to determine the space needed + * to store the value. For TIFF_RATIONAL values TIFFDataWidth() returns 8, + * but we use 4-byte float to represent rationals. + */ +int +FreeImage_TIFFDataSize(TIFFDataType type) +{ + switch (type) + { + case TIFF_BYTE: + case TIFF_SBYTE: + case TIFF_ASCII: + case TIFF_UNDEFINED: + return 1; + case TIFF_SHORT: + case TIFF_SSHORT: + return 2; + case TIFF_LONG: + case TIFF_SLONG: + case TIFF_FLOAT: + case TIFF_IFD: + case TIFF_RATIONAL: + case TIFF_SRATIONAL: + return 4; + case TIFF_DOUBLE: + case TIFF_LONG8: + case TIFF_SLONG8: + case TIFF_IFD8: + return 8; + default: + return 0; + } +} /** Tiff info structure. Entry format: @@ -224,6 +261,33 @@ tiff_write_geotiff_profile(TIFF *tif, FIBITMAP *dib) { // TIFF EXIF tag reading & writing // ---------------------------------------------------------- +static uint32 exif_tag_ids[] = { + EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM, + EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF, + EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED, + EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL, + EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE, + EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE, + EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE, + EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH, + EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT, + EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL, + EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE, + EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION, + EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY, + EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION, + EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT, + EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD, + EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN, + EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE, + EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM, + EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST, + EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION, + EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL, + EXIFTAG_IMAGEUNIQUEID +}; +static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]); + /** Read a single Exif tag @@ -575,43 +639,10 @@ tiff_read_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) { // loop over all Core Directory Tags // ### uses private data, but there is no other way + // -> vcpkg: Best we can do without private headers is to hard-code a list of known EXIF tags and read those if(md_model == TagLib::EXIF_MAIN) { - const TIFFDirectory *td = &tif->tif_dir; - - uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo) - - for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { - const TIFFField *fld = tif->tif_fields[fi]; - - const uint32 tag_id = TIFFFieldTag(fld); - - if(tag_id == lastTag) { - continue; - } - - // test if tag value is set - // (lifted directly from LibTiff _TIFFWriteDirectory) - - if( fld->field_bit == FIELD_CUSTOM ) { - int is_set = FALSE; - - for(int ci = 0; ci < td->td_customValueCount; ci++ ) { - is_set |= (td->td_customValues[ci].info == fld); - } - - if( !is_set ) { - continue; - } - - } else if(!TIFFFieldSet(tif, fld->field_bit)) { - continue; - } - - // process *all* other tags (some will be ignored) - - tiff_read_exif_tag(tif, tag_id, dib, md_model); - - lastTag = tag_id; + for (int i = 0; i < nExifTags; ++i) { + tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model); } } @@ -723,10 +754,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) { TagLib& tag_lib = TagLib::instance(); - for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) { - const TIFFField *fld = tif->tif_fields[fi]; - - const uint32 tag_id = TIFFFieldTag(fld); + for (int fi = 0, nfi = nExifTags; nfi > 0; nfi--, fi++) { + const uint32 tag_id = exif_tag_ids[fi]; + const TIFFField *fld = TIFFFieldWithTag(tif, tag_id); if(skip_write_field(tif, tag_id)) { // skip tags that are already handled by the LibTIFF writing process @@ -749,7 +779,7 @@ tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) { continue; } // type of storage may differ (e.g. rationnal array vs float array type) - if((unsigned)_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) { + if((unsigned)FreeImage_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) { // skip tag or _TIFFmemcpy will fail continue; } ================================================ FILE: ports/freeimage/use-external-openexr.patch ================================================ diff --git a/Source/FreeImage/PluginEXR.cpp b/Source/FreeImage/PluginEXR.cpp index b286430..82b3b72 100644 --- a/Source/FreeImage/PluginEXR.cpp +++ b/Source/FreeImage/PluginEXR.cpp @@ -28,16 +28,16 @@ #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning) #endif -#include "../OpenEXR/IlmImf/ImfIO.h" -#include "../OpenEXR/Iex/Iex.h" -#include "../OpenEXR/IlmImf/ImfOutputFile.h" -#include "../OpenEXR/IlmImf/ImfInputFile.h" -#include "../OpenEXR/IlmImf/ImfRgbaFile.h" -#include "../OpenEXR/IlmImf/ImfChannelList.h" -#include "../OpenEXR/IlmImf/ImfRgba.h" -#include "../OpenEXR/IlmImf/ImfArray.h" -#include "../OpenEXR/IlmImf/ImfPreviewImage.h" -#include "../OpenEXR/Half/half.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // ========================================================== @@ -66,11 +66,11 @@ public: return ((unsigned)n != _io->read_proc(c, 1, n, _handle)); } - virtual Imath::Int64 tellg() { + virtual uint64_t tellg() { return _io->tell_proc(_handle); } - virtual void seekg(Imath::Int64 pos) { + virtual void seekg(uint64_t pos) { _io->seek_proc(_handle, (unsigned)pos, SEEK_SET); } @@ -100,11 +100,11 @@ public: } } - virtual Imath::Int64 tellp() { + virtual uint64_t tellp() { return _io->tell_proc(_handle); } - virtual void seekp(Imath::Int64 pos) { + virtual void seekp(uint64_t pos) { _io->seek_proc(_handle, (unsigned)pos, SEEK_SET); } }; diff --git a/Source/FreeImage/PluginTIFF.cpp b/Source/FreeImage/PluginTIFF.cpp index 562fdd7..ce12649 100644 --- a/Source/FreeImage/PluginTIFF.cpp +++ b/Source/FreeImage/PluginTIFF.cpp @@ -39,7 +39,7 @@ #include "Utilities.h" #include #include "../Metadata/FreeImageTag.h" -#include "../OpenEXR/Half/half.h" +#include #include "FreeImageIO.h" #include "PSDParser.h" ================================================ FILE: ports/freeimage/use-external-openjpeg.patch ================================================ diff --git a/Source/FreeImage/J2KHelper.cpp b/Source/FreeImage/J2KHelper.cpp index 1776c3b..538f1c5 100644 --- a/Source/FreeImage/J2KHelper.cpp +++ b/Source/FreeImage/J2KHelper.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "../LibOpenJPEG/openjpeg.h" +#include #include "J2KHelper.h" // -------------------------------------------------------------------------- diff --git a/Source/FreeImage/PluginJ2K.cpp b/Source/FreeImage/PluginJ2K.cpp index b8bcfc8..621a903 100644 --- a/Source/FreeImage/PluginJ2K.cpp +++ b/Source/FreeImage/PluginJ2K.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "../LibOpenJPEG/openjpeg.h" +#include #include "J2KHelper.h" // ========================================================== diff --git a/Source/FreeImage/PluginJP2.cpp b/Source/FreeImage/PluginJP2.cpp index 742fe2c..c57f626 100644 --- a/Source/FreeImage/PluginJP2.cpp +++ b/Source/FreeImage/PluginJP2.cpp @@ -21,7 +21,7 @@ #include "FreeImage.h" #include "Utilities.h" -#include "../LibOpenJPEG/openjpeg.h" +#include #include "J2KHelper.h" // ========================================================== ================================================ FILE: ports/freeimage/use-external-png-zlib.patch ================================================ diff --git a/Source/FreeImage/PluginPNG.cpp b/Source/FreeImage/PluginPNG.cpp index ba2ef17..c3c5cd6 100644 --- a/Source/FreeImage/PluginPNG.cpp +++ b/Source/FreeImage/PluginPNG.cpp @@ -40,8 +40,8 @@ // ---------------------------------------------------------- -#include "../ZLib/zlib.h" -#include "../LibPNG/png.h" +#include +#include // ---------------------------------------------------------- diff --git a/Source/FreeImage/ZLibInterface.cpp b/Source/FreeImage/ZLibInterface.cpp index 3ab6d32..725618b 100644 --- a/Source/FreeImage/ZLibInterface.cpp +++ b/Source/FreeImage/ZLibInterface.cpp @@ -19,10 +19,9 @@ // Use at your own risk! // ========================================================== -#include "../ZLib/zlib.h" +#include #include "FreeImage.h" #include "Utilities.h" -#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */ /** Compresses a source buffer into a target buffer, using the ZLib library. @@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD target_size, BYTE *source, DWORD source_s return 0; case Z_OK: { // patch header, setup crc and length (stolen from mod_trace_output) - BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code + BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code crc = crc32(crc, source, source_size); memcpy(target + 4 + dest_len, &crc, 4); memcpy(target + 8 + dest_len, &source_size, 4); ================================================ FILE: ports/freeimage/use-external-rawlib.patch ================================================ diff --git a/Source/FreeImage/PluginRAW.cpp b/Source/FreeImage/PluginRAW.cpp index e9bd5bf..c7f8758 100644 --- a/Source/FreeImage/PluginRAW.cpp +++ b/Source/FreeImage/PluginRAW.cpp @@ -19,7 +19,7 @@ // Use at your own risk! // ========================================================== -#include "../LibRawLite/libraw/libraw.h" +#include #include "FreeImage.h" #include "Utilities.h" ================================================ FILE: ports/freeimage/use-external-webp.patch ================================================ diff --git a/Source/FreeImage/PluginWebP.cpp b/Source/FreeImage/PluginWebP.cpp index 7c9f62f..c401447 100644 --- a/Source/FreeImage/PluginWebP.cpp +++ b/Source/FreeImage/PluginWebP.cpp @@ -24,9 +24,9 @@ #include "../Metadata/FreeImageTag.h" -#include "../LibWebP/src/webp/decode.h" -#include "../LibWebP/src/webp/encode.h" -#include "../LibWebP/src/webp/mux.h" +#include +#include +#include // ========================================================== // Plugin Interface ================================================ FILE: ports/freeimage/use-freeimage-config-include.patch ================================================ diff --git a/Source/FreeImage.h b/Source/FreeImage.h index 12182cd..86a1e68 100644 --- a/Source/FreeImage.h +++ b/Source/FreeImage.h @@ -32,6 +32,11 @@ #define FREEIMAGE_MINOR_VERSION 18 #define FREEIMAGE_RELEASE_SERIAL 0 +// vcpkg specific includes -------------------------------------------------- +// Include FreeImageConfig.h to define FREEIMAGE_LIB in static builds, +// or do not define it in dynamic builds +#include "FreeImageConfig.h" + // Compiler options --------------------------------------------------------- #include // needed for UNICODE functions ================================================ FILE: ports/freeimage/use-functions-to-override-libtiff-warning-error-handlers.patch ================================================ diff --git a/Source/FreeImage/PluginTIFF.cpp b/Source/FreeImage/PluginTIFF.cpp index a9fcf0e..b1f7b32 100644 --- a/Source/FreeImage/PluginTIFF.cpp +++ b/Source/FreeImage/PluginTIFF.cpp @@ -258,7 +258,7 @@ static void msdosWarningHandler(const char* module, const char* fmt, va_list ap) { } -TIFFErrorHandler _TIFFwarningHandler = msdosWarningHandler; +//TIFFErrorHandler _TIFFwarningHandler = msdosWarningHandler; static void msdosErrorHandler(const char* module, const char* fmt, va_list ap) { @@ -273,7 +273,7 @@ msdosErrorHandler(const char* module, const char* fmt, va_list ap) { */ } -TIFFErrorHandler _TIFFerrorHandler = msdosErrorHandler; +//TIFFErrorHandler _TIFFerrorHandler = msdosErrorHandler; // ---------------------------------------------------------- @@ -2659,6 +2659,8 @@ InitTIFF(Plugin *plugin, int format_id) { // Set up the callback for extended TIFF directory tag support (see XTIFF.cpp) // Must be called before using libtiff XTIFFInitialize(); + TIFFSetWarningHandler(msdosWarningHandler); + TIFFSetErrorHandler(msdosErrorHandler); plugin->format_proc = Format; plugin->description_proc = Description; ================================================ FILE: ports/freeimage/use-typedef-as-already-declared.patch ================================================ diff --git a/Source/FreeImage.h b/Source/FreeImage.h index 1fd9c2f..59de277 100644 --- a/Source/FreeImage.h +++ b/Source/FreeImage.h @@ -160,8 +160,8 @@ typedef uint8_t BYTE; typedef uint16_t WORD; typedef uint32_t DWORD; typedef int32_t LONG; -typedef int64_t INT64; -typedef uint64_t UINT64; +typedef long long int INT64; +typedef long long unsigned int UINT64; #else // MS is not C99 ISO compliant typedef long BOOL; ================================================ FILE: ports/freeimage/vcpkg.json ================================================ { "name": "freeimage", "version": "3.18.0", "port-version": 27, "description": "Support library for graphics image formats", "homepage": "https://sourceforge.net/projects/freeimage/", "license": "GPL-2.0-only OR GPL-3.0-only OR FreeImage", "dependencies": [ "imath", "jxrlib", "libjpeg-turbo", "libpng", "libraw", { "name": "libwebp", "default-features": false, "platform": "!uwp" }, "openexr", "openjpeg", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/freerdp/cmake-project-include.cmake ================================================ find_package(PkgConfig REQUIRED) if(CHANNEL_URBDRC) pkg_check_modules(vcpkg_libusb REQUIRED libusb-1.0) set(LIBUSB_1_INCLUDE_DIR "${vcpkg_libusb_INCLUDE_DIRS}") set(LIBUSB_1_LIBRARY "${vcpkg_libusb_LINK_LIBRARIES}") string(REPLACE "-Wl,-framework," "-framework " libusb_frameworks "${vcpkg_libusb_LDFLAGS}") list(FILTER libusb_frameworks INCLUDE REGEX "^-framework ") list(APPEND LIBUSB_1_LIBRARY ${libusb_frameworks}) endif() ================================================ FILE: ports/freerdp/dependencies.patch ================================================ diff --git a/cmake/FindFeature.cmake b/cmake/FindFeature.cmake index 11bd9f1..231dcf4 100644 --- a/cmake/FindFeature.cmake +++ b/cmake/FindFeature.cmake @@ -15,7 +15,7 @@ macro(find_feature _feature _type _purpose _description) set(_feature_default "ON") message(STATUS "Finding ${_type_lower} feature ${_feature} for ${_purpose} (${_description})") find_package(${_feature} REQUIRED) - elseif(${_type} STREQUAL "RECOMMENDED") + elseif(0) if(NOT ${WITH_${_feature_upper}}) set(_feature_default "OFF") message(STATUS "Skipping ${_type_lower} feature ${_feature} for ${_purpose} (${_description})") @@ -31,7 +31,7 @@ macro(find_feature _feature _type _purpose _description) ) endif() endif() - elseif(${_type} STREQUAL "OPTIONAL") + elseif(1) if(${WITH_${_feature_upper}}) set(_feature_default "ON") message(STATUS "Finding ${_type_lower} feature ${_feature} for ${_purpose} (${_description})") ================================================ FILE: ports/freerdp/ffmpeg.diff ================================================ diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake index 0e5f7be..af23774 100644 --- a/cmake/FindFFmpeg.cmake +++ b/cmake/FindFFmpeg.cmake @@ -86,7 +86,11 @@ endmacro() # include directories. # macro(find_component _component _pkgconfig _library _header) - if(NOT WIN32) + find_package(PkgConfig) + pkg_check_modules(PC_${_component} ${_pkgconfig}) + set(${_component}_INCLUDE_DIRS "${PC_${_component}_INCLUDE_DIRS}" CACHE STRING "") + set(${_component}_LIBRARIES "${PC_${_component}_LINK_LIBRARIES}" CACHE STRING "") + if(0) # use pkg-config to get the directories and then use these values # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) ================================================ FILE: ports/freerdp/install-layout.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 04ab111..9ae59af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -483,12 +483,12 @@ endif() option(WITH_ABSOLUTE_PLUGIN_LOAD_PATHS "Load plugins with absolute paths" ${PLUGIN_ABS_PATHS_DEFAULT}) if(NOT WITH_ABSOLUTE_PLUGIN_LOAD_PATHS) - set(FREERDP_DATA_PATH "share") + set(FREERDP_DATA_PATH "share/freerdp") if(NOT FREERDP_INSTALL_PREFIX) set(FREERDP_INSTALL_PREFIX ".") endif() - set(FREERDP_LIBRARY_PATH ".") - set(FREERDP_PLUGIN_PATH ".") + set(FREERDP_LIBRARY_PATH "${CMAKE_INSTALL_LIBDIR}") + set(FREERDP_PLUGIN_PATH "${CMAKE_INSTALL_LIBDIR}/freerdp${FREERDP_VERSION_MAJOR}") else() set(FREERDP_DATA_PATH "${CMAKE_INSTALL_PREFIX}/share/${FREERDP_MAJOR_DIR}") if(NOT FREERDP_INSTALL_PREFIX) ================================================ FILE: ports/freerdp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FreeRDP/FreeRDP REF "${VERSION}" SHA512 8be31fde32d9626b2e92c8d4d94a373389e094c901246a6cf566ebe67840d630ed1856865e9b4e63d6ffa0cfe3bd35b78200c5cf4dfe25c08689d028ad7b44ea HEAD_REF master PATCHES dependencies.patch ffmpeg.diff install-layout.patch windows-linkage.patch ) file(WRITE "${SOURCE_PATH}/.source_version" "${VERSION}-vcpkg") file(WRITE "${SOURCE_PATH}/CMakeCPack.cmake" "") if("x11" IN_LIST FEATURES) message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libxfixes-dev\n") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES client WITH_CLIENT ffmpeg WITH_DSP_FFMPEG ffmpeg WITH_FFMPEG ffmpeg WITH_SWSCALE server WITH_SERVER urbdrc CHANNEL_URBDRC winpr-tools WITH_WINPR_TOOLS x11 WITH_X11 x11 VCPKG_LOCK_FIND_PACKAGE_X11 ) if("client" IN_LIST FEATURES) # Xcode dependency and untested installation paths if(VCPKG_TARGET_IS_IOS) message(STATUS "Not building native client components.") list(APPEND FEATURE_OPTIONS -DWITH_CLIENT_IOS=OFF) elseif(VCPKG_TARGET_IS_OSX) message(STATUS "Not building native client components.") list(APPEND FEATURE_OPTIONS -DWITH_CLIENT_MAC=OFF) endif() endif() set(HAS_SHADOW_SUBSYSTEM ON) if("server" IN_LIST FEATURES) # actual shadow platform subsystem if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS # implementation unmaintained OR NOT WITH_X11) # dependency set(HAS_SHADOW_SUBSYSTEM OFF) endif() # actual platform server implementation if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS) # implementation unmaintained list(APPEND FEATURE_OPTIONS -DWITH_PLATFORM_SERVER=OFF) endif() endif() if (NOT HAS_SHADOW_SUBSYSTEM) list(APPEND FEATURE_OPTIONS -DWITH_SHADOW_SUBSYSTEM=OFF -DWITH_SERVER_SHADOW_CLI=OFF) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${GENERATOR_OPTION} OPTIONS ${FEATURE_OPTIONS} "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DUSE_VERSION_FROM_GIT_TAG=OFF -DWITH_ABSOLUTE_PLUGIN_LOAD_PATHS=OFF -DWITH_AAD=ON -DWITH_CCACHE=OFF -DWITH_CJSON_REQUIRED=ON -DWITH_CLANG_FORMAT=OFF -DWITH_MANPAGES=OFF -DWITH_OPENSSL=ON -DWITH_SAMPLE=OFF -DWITH_UNICODE_BUILTIN=ON "-DMSVC_RUNTIME=${VCPKG_CRT_LINKAGE}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" # Unmaintained -DWITH_CLIENT_WINDOWS=OFF -DWITH_WAYLAND=OFF # Uncontrolled dependencies w.r.t. vcpkg ports, system libs, or tools # Can be overriden in custom triplet file -DUSE_UNWIND=OFF -DWITH_ALSA=OFF -DWITH_CAIRO=OFF -DWITH_CLIENT_SDL=OFF -DWITH_CUPS=OFF -DWITH_FUSE=OFF -DWITH_KRB5=OFF -DWITH_LIBSYSTEMD=OFF -DWITH_OPUS=OFF -DWITH_OSS=OFF -DWITH_PCSC=OFF -DWITH_PKCS11=OFF -DWITH_PROXY_MODULES=OFF -DWITH_PULSE=OFF -DWITH_URIPARSER=OFF OPTIONS_RELEASE -DWITH_VERBOSE_WINPR_ASSERT=OFF MAYBE_UNUSED_VARIABLES MSVC_RUNTIME USE_UNWIND VCPKG_LOCK_FIND_PACKAGE_X11 WITH_CLIENT_WINDOWS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_list(SET tools) if("client" IN_LIST FEATURES AND "x11" IN_LIST FEATURES) list(APPEND tools xfreerdp) endif() if("server" IN_LIST FEATURES) list(APPEND tools freerdp-proxy) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeRDP-Proxy3 PACKAGE_NAME freerdp-Proxy3 DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeRDP-Server3 PACKAGE_NAME freerdp-server3 DO_NOT_DELETE_PARENT_CONFIG_PATH) if (HAS_SHADOW_SUBSYSTEM) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeRDP-Shadow3 PACKAGE_NAME freerdp-shadow3 DO_NOT_DELETE_PARENT_CONFIG_PATH) list(APPEND tools freerdp-shadow-cli) endif() endif() if("winpr-tools" IN_LIST FEATURES) list(APPEND tools winpr-hash winpr-makecert) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/WinPR-tools3 PACKAGE_NAME winpr-tools3 DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeRDP-Client3 PACKAGE_NAME freerdp-client3 DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/WinPR3 PACKAGE_NAME winpr3 DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FreeRDP3 PACKAGE_NAME freerdp) if(tools) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/winpr3/winpr/build-config.h" "\"${CURRENT_PACKAGES_DIR}" "/* vcpkg redacted */ \"") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # They build static with dllexport, so it must be used with dllexport. Proper fix needs invasive patching. vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/freerdp3/freerdp/api.h" "#ifdef FREERDP_EXPORTS" "#if 1") endif() file(GLOB cmakefiles "${CURRENT_PACKAGES_DIR}/include/*/CMakeFiles") file(REMOVE_RECURSE ${cmakefiles} "${CURRENT_PACKAGES_DIR}/include/winpr3/config" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/freerdp/vcpkg.json ================================================ { "name": "freerdp", "version": "3.24.0", "description": "A free implementation of the Remote Desktop Protocol (RDP)", "homepage": "https://github.com/FreeRDP/FreeRDP", "license": "Apache-2.0", "supports": "!uwp & (!bsd | freebsd)", "dependencies": [ "cjson", { "name": "epoll-shim", "platform": "bsd" }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "client": { "description": "Build client components" }, "ffmpeg": { "description": "Enable image scaling, video and audio with ffmpeg", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "swresample", "swscale" ] } ] }, "server": { "description": "Build server components", "supports": "!android & !ios & !uwp", "dependencies": [ { "name": "freerdp", "default-features": false, "features": [ "winpr-tools" ] } ] }, "urbdrc": { "description": "USB redirection channel support", "dependencies": [ "libusb" ] }, "winpr-tools": { "description": "Build winpr tools", "supports": "!android & !ios & !uwp" }, "x11": { "description": "Enable X11 support", "supports": "!android & !ios & !windows & !osx" } } } ================================================ FILE: ports/freerdp/windows-linkage.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index db346d3..6ad72d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,6 +260,9 @@ if(WIN32) endif() add_compile_definitions(FREERDP_EXPORTS) +if(NOT BUILD_SHARED_LIBS) + add_compile_definitions(RDTK_EXPORTS) +endif() # Mac OS X if(APPLE) ================================================ FILE: ports/freetds/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ac6cc58..1a6a4f0e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,9 +64,9 @@ math(EXPR BUILD_NUMBER "${BUILD_NUMBER}") set(FREETDS_TOPDIR ${CMAKE_CURRENT_LIST_DIR}) -enable_testing() -set(CMAKE_CTEST_COMMAND ctest) -add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) +#enable_testing() +#set(CMAKE_CTEST_COMMAND ctest) +#add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) # TODO depends on configure add_definitions(-D_REENTRANT -D_THREAD_SAFE) @@ -459,9 +459,11 @@ add_subdirectory(src/tds) add_subdirectory(src/ctlib) add_subdirectory(src/dblib) add_subdirectory(src/odbc) -add_subdirectory(src/apps) +if(WITH_TOOLS) + add_subdirectory(src/apps) + add_subdirectory(src/pool) +endif() add_subdirectory(src/server) -add_subdirectory(src/pool) configure_file(${CMAKE_BINARY_DIR}/include/config.h.in ${CMAKE_BINARY_DIR}/include/config.h) configure_file(${CMAKE_SOURCE_DIR}/include/tds_sysdep_public.h.in ${CMAKE_BINARY_DIR}/include/tds_sysdep_public.h) diff --git a/src/ctlib/CMakeLists.txt b/src/ctlib/CMakeLists.txt index e83b0b1a..017d571a 100644 --- a/src/ctlib/CMakeLists.txt +++ b/src/ctlib/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(unittests) +#add_subdirectory(unittests) set(static_lib_name ct) if(WIN32) diff --git a/src/dblib/CMakeLists.txt b/src/dblib/CMakeLists.txt index 5f1766f4..c70e87a3 100644 --- a/src/dblib/CMakeLists.txt +++ b/src/dblib/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(unittests) +#add_subdirectory(unittests) if(WIN32) set(win_SRCS winmain.c dblib.def dbopen.c) diff --git a/src/odbc/CMakeLists.txt b/src/odbc/CMakeLists.txt index ec8eaadd..6f9f32c9 100644 --- a/src/odbc/CMakeLists.txt +++ b/src/odbc/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(unittests) +#add_subdirectory(unittests) # TODO checks add_definitions(-DUNIXODBC -DHAVE_SQLGETPRIVATEPROFILESTRING) diff --git a/src/replacements/CMakeLists.txt b/src/replacements/CMakeLists.txt index 48d7e536..f7b490f8 100644 --- a/src/replacements/CMakeLists.txt +++ b/src/replacements/CMakeLists.txt @@ -41,7 +41,7 @@ if (NOT WIN32) set_target_properties(replacements PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -add_subdirectory(unittests) +#add_subdirectory(unittests) INSTALL(TARGETS replacements diff --git a/src/tds/CMakeLists.txt b/src/tds/CMakeLists.txt index 134a30cb..5426571b 100644 --- a/src/tds/CMakeLists.txt +++ b/src/tds/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(unittests) +#add_subdirectory(unittests) if(PERL_FOUND AND NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tds_willconvert.h") if (NOT GPERF) diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 2a1935c9..a46483e0 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,4 +1,4 @@ -add_subdirectory(unittests) +#add_subdirectory(unittests) if(WIN32) set(add_SRCS md5.c) ================================================ FILE: ports/freetds/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO freetds/freetds REF v1.3.10 HEAD_REF master SHA512 78b494c04e3436bfdc4997e6f0196baef27246bb7ad825c487a16f247d13c99324a39d52bfe8f5306164ae3f5c7eb43ca83944b24a3ce6b4bcd733849b4064ad PATCHES disable-tests.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl WITH_OPENSSL tools WITH_TOOLS ) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_PATH ${PERL} DIRECTORY) vcpkg_add_to_path("${PERL_PATH}") vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") set(_WCHAR_SUPPORT ON) if(NOT VCPKG_TARGET_IS_WINDOWS) set(_WCHAR_SUPPORT OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DENABLE_ODBC_WIDE=${_WCHAR_SUPPORT} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES bsqldb bsqlodbc datacopy defncopy freebcp tdspool tsql AUTO_CLEAN) if(EXISTS "${CURRENT_PACKAGES_DIR}/etc") file(INSTALL "${CURRENT_PACKAGES_DIR}/etc" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/etc") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc" "${CURRENT_PACKAGES_DIR}/debug/etc") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${SOURCE_PATH}/COPYING.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/freetds/vcpkg.json ================================================ { "name": "freetds", "version": "1.3.10", "port-version": 2, "description": "Implementation of the Tabular Data Stream protocol", "homepage": "https://www.freetds.org", "license": "GPL-2.0-only", "supports": "windows & !uwp & !xbox", "dependencies": [ { "name": "gperf", "host": true }, { "name": "libmysql", "platform": "windows" }, { "name": "unixodbc", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "openssl" ], "features": { "openssl": { "description": "OpenSSL support", "dependencies": [ "openssl" ] }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/freetype/0003-Fix-UWP.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index db48e9f..5c35276 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -328,6 +328,10 @@ else () list(APPEND BASE_SRCS src/base/ftdebug.c) endif () +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS) +endif() + if (BUILD_FRAMEWORK) list(APPEND BASE_SRCS builds/mac/freetype-Info.plist) endif () diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h index 4f2eaca..1e01fe4 100644 --- a/include/freetype/freetype.h +++ b/include/freetype/freetype.h @@ -1038,6 +1038,11 @@ FT_BEGIN_HEADER * Especially for TrueType fonts see also the documentation for * @FT_Size_Metrics. */ + +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) +#define generic GenericFromFreeTypeLibrary +#endif + typedef struct FT_FaceRec_ { FT_Long num_faces; @@ -1910,6 +1915,9 @@ FT_BEGIN_HEADER } FT_GlyphSlotRec; +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) +#undef generic +#endif /*************************************************************************/ /*************************************************************************/ diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 3f8619d..edf03b6 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -528,6 +528,9 @@ return error; } +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) +#define generic GenericFromFreeTypeLibrary +#endif static void ft_glyphslot_clear( FT_GlyphSlot slot ) @@ -1195,6 +1198,9 @@ FT_FREE( face ); } +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP) +#undef generic +#endif static void Destroy_Driver( FT_Driver driver ) ================================================ FILE: ports/freetype/brotli-static.patch ================================================ diff --git a/builds/cmake/FindBrotliDec.cmake b/builds/cmake/FindBrotliDec.cmake index 46356b1fd..ed4cc2409 100644 --- a/builds/cmake/FindBrotliDec.cmake +++ b/builds/cmake/FindBrotliDec.cmake @@ -35,10 +35,15 @@ find_path(BROTLIDEC_INCLUDE_DIRS PATH_SUFFIXES brotli) find_library(BROTLIDEC_LIBRARIES - NAMES brotlidec + NAMES brotlidec brotlidec-static NAMES_PER_DIR HINTS ${PC_BROTLIDEC_LIBDIR} ${PC_BROTLIDEC_LIBRARY_DIRS}) + find_library(BROTLICOMMON_LIBRARIES + NAMES brotlicommon-static brotlicommon NAMES_PER_DIR + HINTS ${PC_BROTLIDEC_LIBDIR} + ${PC_BROTLIDEC_LIBRARY_DIRS}) + set(BROTLIDEC_LIBRARIES "${BROTLIDEC_LIBRARIES};${BROTLICOMMON_LIBRARIES}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args( ================================================ FILE: ports/freetype/bzip2.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 469a141a2..eec19c7d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -517,7 +517,7 @@ if (BZIP2_FOUND) if (PC_BZIP2_FOUND) list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2") else () - list(APPEND PKGCONFIG_LIBS_PRIVATE "-lbz2") + list(APPEND PKGCONFIG_REQUIRES_PRIVATE "bzip2") endif () endif () if (PNG_FOUND) ================================================ FILE: ports/freetype/fix-exports.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cb1b9a0f2..edca5d579 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -508,7 +508,6 @@ set(PKG_CONFIG_REQUIRED_PRIVATE "") set(PKGCONFIG_LIBS_PRIVATE "") if (ZLIB_FOUND) - target_link_libraries(freetype PRIVATE ${ZLIB_LIBRARIES}) + target_link_libraries(freetype PRIVATE ZLIB::ZLIB) - target_include_directories(freetype PRIVATE ${ZLIB_INCLUDE_DIRS}) list(APPEND PKGCONFIG_REQUIRES_PRIVATE "zlib") endif () @@ -596,12 +596,25 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) install( EXPORT freetype-targets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype - FILE freetype-config.cmake COMPONENT headers) install( FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype COMPONENT headers) + + if(ZLIB_FOUND AND BUILD_SHARED_LIBS) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake" +[[include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +include("${CMAKE_CURRENT_LIST_DIR}/freetype-targets.cmake") +]]) + else() + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake" +[[include("${CMAKE_CURRENT_LIST_DIR}/freetype-targets.cmake") +]]) + endif() + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freetype-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype) endif () ================================================ FILE: ports/freetype/portfile.cmake ================================================ if("subpixel-rendering" IN_LIST FEATURES) set(SUBPIXEL_RENDERING_PATCH "subpixel-rendering.patch") endif() string(REPLACE "." "-" VERSION_HYPHEN "${VERSION}") vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO freetype/freetype REF "VER-${VERSION_HYPHEN}" SHA512 fccfaa15eb79a105981bf634df34ac9ddf1c53550ec0b334903a1b21f9f8bf5eb2b3f9476e554afa112a0fca58ec85ab212d674dfd853670efec876bacbe8a53 HEAD_REF master PATCHES 0003-Fix-UWP.patch brotli-static.patch bzip2.patch fix-exports.patch ${SUBPIXEL_RENDERING_PATCH} ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES zlib FT_REQUIRE_ZLIB bzip2 FT_REQUIRE_BZIP2 error-strings FT_ENABLE_ERROR_STRINGS png FT_REQUIRE_PNG brotli FT_REQUIRE_BROTLI INVERTED_FEATURES zlib FT_DISABLE_ZLIB bzip2 FT_DISABLE_BZIP2 png FT_DISABLE_PNG brotli FT_DISABLE_BROTLI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFT_DISABLE_HARFBUZZ=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/freetype) # Rename for easy usage (VS integration; CMake and autotools will not care) file(RENAME "${CURRENT_PACKAGES_DIR}/include/freetype2/freetype" "${CURRENT_PACKAGES_DIR}/include/freetype") file(RENAME "${CURRENT_PACKAGES_DIR}/include/freetype2/ft2build.h" "${CURRENT_PACKAGES_DIR}/include/ft2build.h") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/freetype2") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Fix the include dir [freetype2 -> freetype] file(READ "${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake" CONFIG_MODULE) string(REPLACE "\${_IMPORT_PREFIX}/include/freetype2" "\${_IMPORT_PREFIX}/include" CONFIG_MODULE "${CONFIG_MODULE}") string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlicommon-static.lib" [[\$<\$>:${_IMPORT_PREFIX}/lib/brotlicommon-static.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/brotlicommon-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}") string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec-static.lib" [[\$<\$>:${_IMPORT_PREFIX}/lib/brotlidec-static.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/brotlidec-static.lib>]] CONFIG_MODULE "${CONFIG_MODULE}") string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}") string(REPLACE "\${_IMPORT_PREFIX}/lib/brotlidec.lib" [[\$<\$>:${_IMPORT_PREFIX}/lib/brotlidec.lib>;\$<\$:${_IMPORT_PREFIX}/debug/lib/brotlidec.lib>]] CONFIG_MODULE "${CONFIG_MODULE}") file(WRITE ${CURRENT_PACKAGES_DIR}/share/freetype/freetype-targets.cmake "${CONFIG_MODULE}") find_library(FREETYPE_DEBUG NAMES freetyped PATHS "${CURRENT_PACKAGES_DIR}/debug/lib/" NO_DEFAULT_PATH) if(NOT VCPKG_BUILD_TYPE) file(READ "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freetype2.pc" _contents) if(FREETYPE_DEBUG) string(REPLACE "-lfreetype" "-lfreetyped" _contents "${_contents}") endif() string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freetype2.pc" "${_contents}") endif() file(READ "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" _contents) string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" "${_contents}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_TARGET_IS_WINDOWS) set(dll_linkage 1) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(dll_linkage 0) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/freetype/config/public-macros.h" "#elif defined( DLL_IMPORT )" "#elif ${dll_linkage}") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.TXT" "${SOURCE_PATH}/docs/FTL.TXT" "${SOURCE_PATH}/docs/GPLv2.TXT" ) ================================================ FILE: ports/freetype/subpixel-rendering.patch ================================================ diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h index 1976b33af959..b3425e55feec 100644 --- a/include/freetype/config/ftoption.h +++ b/include/freetype/config/ftoption.h @@ -123,7 +123,7 @@ FT_BEGIN_HEADER * When this macro is not defined, FreeType offers alternative LCD * rendering technology that produces excellent output. */ -/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ +#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING /************************************************************************** ================================================ FILE: ports/freetype/usage ================================================ freetype is compatible with built-in CMake targets: find_package(Freetype REQUIRED) target_link_libraries(main PRIVATE Freetype::Freetype) # since CMake 3.10 ================================================ FILE: ports/freetype/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") _find_package(${ARGS} CONFIG) if(Freetype_FOUND) include("${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake") get_target_property(_freetype_include_dirs freetype INTERFACE_INCLUDE_DIRECTORIES) if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") get_target_property(_freetype_location_debug freetype IMPORTED_IMPLIB_DEBUG) get_target_property(_freetype_location_release freetype IMPORTED_IMPLIB_RELEASE) endif() if(NOT _freetype_location_debug AND NOT _freetype_location_release) get_target_property(_freetype_location_debug freetype IMPORTED_LOCATION_DEBUG) get_target_property(_freetype_location_release freetype IMPORTED_LOCATION_RELEASE) endif() set(FREETYPE_FOUND TRUE) set(FREETYPE_INCLUDE_DIRS "${_freetype_include_dirs}") set(FREETYPE_INCLUDE_DIR_ft2build "${_freetype_include_dirs}") set(FREETYPE_INCLUDE_DIR_freetype2 "${_freetype_include_dirs}") set(FREETYPE_LIBRARY_DEBUG "${_freetype_location_debug}" CACHE INTERNAL "vcpkg") set(FREETYPE_LIBRARY_RELEASE "${_freetype_location_release}" CACHE INTERNAL "vcpkg") select_library_configurations(FREETYPE) set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY}) set(FREETYPE_VERSION_STRING "${Freetype_VERSION}") unset(_freetype_include_dirs) unset(_freetype_location_debug) unset(_freetype_location_release) endif() if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") if("@FT_REQUIRE_ZLIB@") find_package(ZLIB) endif() if("@FT_REQUIRE_BZIP2@") find_package(BZip2) endif() if("@FT_REQUIRE_PNG@") find_package(PNG) endif() if("@FT_REQUIRE_BROTLI@") find_library(BROTLIDEC_LIBRARY_RELEASE NAMES brotlidec brotlidec-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(BROTLIDEC_LIBRARY_DEBUG NAMES brotlidec brotlidec-static brotlidecd brotlidec-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(BROTLICOMMON_LIBRARY_RELEASE NAMES brotlicommon brotlicommon-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(BROTLICOMMON_LIBRARY_DEBUG NAMES brotlicommon brotlicommon-static brotlicommond brotlicommon-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) include(SelectLibraryConfigurations) select_library_configurations(BROTLIDEC) select_library_configurations(BROTLICOMMON) endif("@FT_REQUIRE_BROTLI@") if(TARGET Freetype::Freetype) if("@FT_REQUIRE_ZLIB@") set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) endif() if("@FT_REQUIRE_BZIP2@") set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2) endif() if("@FT_REQUIRE_PNG@") set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG) endif() if("@FT_REQUIRE_BROTLI@") if(BROTLIDEC_LIBRARY_DEBUG) set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${BROTLIDEC_LIBRARY_DEBUG}>") set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${BROTLICOMMON_LIBRARY_DEBUG}>") endif() if(BROTLIDEC_LIBRARY_RELEASE) set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${BROTLIDEC_LIBRARY_RELEASE}>") set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${BROTLICOMMON_LIBRARY_RELEASE}>") endif() endif() endif() if(FREETYPE_LIBRARIES) if("@FT_REQUIRE_ZLIB@") list(APPEND FREETYPE_LIBRARIES ${ZLIB_LIBRARIES}) endif() if("@FT_REQUIRE_BZIP2@") list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES}) endif() if("@FT_REQUIRE_PNG@") list(APPEND FREETYPE_LIBRARIES ${PNG_LIBRARIES}) endif() if("@FT_REQUIRE_BROTLI@") list(APPEND FREETYPE_LIBRARIES ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES}) endif() endif() endif() cmake_policy(POP) ================================================ FILE: ports/freetype/vcpkg.json ================================================ { "name": "freetype", "version": "2.13.3", "description": "A library to render fonts.", "homepage": "https://www.freetype.org/", "license": "FTL OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "brotli", "bzip2", "png", "zlib" ], "features": { "brotli": { "description": "Support decompression of WOFF2 streams", "dependencies": [ "brotli" ] }, "bzip2": { "description": "Support bzip2 compressed fonts.", "dependencies": [ "bzip2" ] }, "error-strings": { "description": "Enable support for meaningful error descriptions." }, "png": { "description": "Support PNG compressed OpenType embedded bitmaps.", "dependencies": [ "libpng" ] }, "subpixel-rendering": { "description": "Enables subpixel rendering." }, "zlib": { "description": "Use zlib instead of internal library for DEFLATE", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/freetype-gl/0001-Link-to-dependencies-also-for-static-build.patch ================================================ From 1ad7d07765445511d51f3888ffdedba2cb282e84 Mon Sep 17 00:00:00 2001 From: Stig Hornang Date: Sun, 1 May 2022 21:57:18 +0200 Subject: [PATCH 1/4] Link to dependencies also for static build --- CMakeLists.txt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ccbf9a..b5db60a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,12 +185,6 @@ if(freetype-gl_BUILD_SHARED) PROPERTIES VERSION 0.3.2 SOVERSION 0) - target_link_libraries (freetype-gl - ${OPENGL_LIBRARY} - ${FREETYPE_LIBRARIES} - ${MATH_LIBRARY} - ${GLEW_LIBRARY} - ) else() add_library(freetype-gl STATIC ${FREETYPE_GL_SRC} @@ -198,6 +192,13 @@ else() ) endif() +target_link_libraries(freetype-gl + ${OPENGL_LIBRARY} + ${FREETYPE_LIBRARIES} + ${MATH_LIBRARY} + ${GLEW_LIBRARY} +) + if(freetype-gl_BUILD_MAKEFONT) add_executable(makefont makefont.c) -- 2.27.0 ================================================ FILE: ports/freetype-gl/0002-Remove-duplicate-installs.patch ================================================ From 9af89db45ef951d5fd8e8be5b4029136f59e94a1 Mon Sep 17 00:00:00 2001 From: Stig Hornang Date: Sun, 1 May 2022 22:00:38 +0200 Subject: [PATCH 2/4] Remove duplicate installs --- CMakeLists.txt | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5db60a..09163ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -249,14 +249,3 @@ if ("${LIB64}" STREQUAL "TRUE") else() set(LIBSUFFIX "") endif() - -set(INSTALL_LIB_DIR lib${LIBSUFFIX} CACHE PATH "Installation directory for libraries") -mark_as_advanced(INSTALL_LIB_DIR) - -install(TARGETS freetype-gl - ARCHIVE DESTINATION ${INSTALL_LIB_DIR} - LIBRARY DESTINATION ${INSTALL_LIB_DIR} - COMPONENT library) -install(FILES ${FREETYPE_GL_HDR} DESTINATION include - COMPONENT headers) - -- 2.27.0 ================================================ FILE: ports/freetype-gl/0003-Add-exports.patch ================================================ From 2c2e7e6cc7cb55eff502889421fe7a207cec932d Mon Sep 17 00:00:00 2001 From: Stig Hornang Date: Sun, 1 May 2022 22:01:00 +0200 Subject: [PATCH 3/4] Add exports --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09163ec..fd40e68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -217,7 +217,7 @@ if(freetype-gl_BUILD_MAKEFONT) endif() endif() -install(TARGETS freetype-gl +install(TARGETS freetype-gl EXPORT freetype-glConfig RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) @@ -249,3 +249,8 @@ if ("${LIB64}" STREQUAL "TRUE") else() set(LIBSUFFIX "") endif() + +install( + EXPORT freetype-glConfig + DESTINATION share/freetype-gl +) -- 2.27.0 ================================================ FILE: ports/freetype-gl/0004-Change-install-dir-for-pkgconfig.patch ================================================ From ad0c57a370a15e8114447b8170ecddf14f21d352 Mon Sep 17 00:00:00 2001 From: Stig Hornang Date: Tue, 3 May 2022 20:27:09 +0200 Subject: [PATCH 4/4] Change install dir for pkgconfig --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fd40e68..4f8d7dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,7 +172,7 @@ if(NOT MSVC) set(PKG_CONFIG_LIBDIR "\${exec_prefix}/lib") set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include") configure_file(freetype-gl.pc.in ${CMAKE_CURRENT_BINARY_DIR}/freetype-gl.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freetype-gl.pc DESTINATION ${PKG_CONFIG_PREFIX}/share/pkgconfig) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/freetype-gl.pc DESTINATION ${PKG_CONFIG_PREFIX}/lib/pkgconfig) endif() if(freetype-gl_BUILD_SHARED) -- 2.27.0 ================================================ FILE: ports/freetype-gl/0005-add-version.patch ================================================ diff --git a/freetype-gl.pc.in b/freetype-gl.pc.in index 3b33096..a5ae350 100644 --- a/freetype-gl.pc.in +++ b/freetype-gl.pc.in @@ -5,5 +5,6 @@ includedir=@PKG_CONFIG_INCLUDEDIR@ Name: freetype-gl Description: OpenGL text using one vertex buffer, one texture and FreeType +Version: v1.0 Libs: -L${libdir} -lfreetype-gl Cflags: -I${includedir} ================================================ FILE: ports/freetype-gl/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rougier/freetype-gl REF "v${VERSION}" SHA512 0bdba3cf4e1460588a41b7f8e6d5ce46ecf437f2be605297a6a9676c3c2875fbc5cd3c4c36ab8902bb5827a1c1749c0e27cda36b98d1fef32576099ab4ed7e21 HEAD_REF master PATCHES 0001-Link-to-dependencies-also-for-static-build.patch 0002-Remove-duplicate-installs.patch 0003-Add-exports.patch 0004-Change-install-dir-for-pkgconfig.patch 0005-add-version.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "glew" freetype-gl_WITH_GLEW "glad" freetype-gl_WITH_GLAD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dfreetype-gl_BUILD_APIDOC=OFF -Dfreetype-gl_BUILD_DEMOS=OFF -Dfreetype-gl_BUILD_TESTS=OFF -Dfreetype-gl_BUILD_MAKEFONT=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/freetype-gl/vcpkg.json ================================================ { "name": "freetype-gl", "version": "1.0", "description": "OpenGL text using one vertex buffer, one texture and FreeType", "homepage": "https://github.com/rougier/freetype-gl", "dependencies": [ "freetype", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "glew" ], "features": { "glad": { "description": "Use the GLAD gl loader", "dependencies": [ "glad" ] }, "glew": { "description": "Use the GLEW gl loader", "dependencies": [ "glew" ] } } } ================================================ FILE: ports/freexl/android-builtin-iconv.diff ================================================ diff --git a/src/freexl.c b/src/freexl.c index f73021d..cc76d63 100644 --- a/src/freexl.c +++ b/src/freexl.c @@ -61,7 +61,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not WINDOWS */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ diff --git a/src/freexl_ods.c b/src/freexl_ods.c index 07265eb..ec29b51 100644 --- a/src/freexl_ods.c +++ b/src/freexl_ods.c @@ -61,7 +61,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not WINDOWS */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ diff --git a/src/freexl_xlsx.c b/src/freexl_xlsx.c index dc8891d..de56436 100644 --- a/src/freexl_xlsx.c +++ b/src/freexl_xlsx.c @@ -62,7 +62,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not WINDOWS */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ ================================================ FILE: ports/freexl/dependencies.patch ================================================ diff --git a/configure.ac b/configure.ac index d79099f..a820b17 100644 --- a/configure.ac +++ b/configure.ac @@ -66,10 +66,12 @@ AC_CONFIG_FILES([Makefile \ AC_CHECK_HEADERS(iconv.h,, [AC_MSG_ERROR([cannot find iconv.h, bailing out])]) # on some systems "iconv()" lives in libc. On others it lives in libiconv # on older systems "libiconv()" lives in libiconv +SAVED_LIBS="${LIBS}" AC_SEARCH_LIBS(iconv,iconv,, AC_SEARCH_LIBS(libiconv,iconv,,AC_MSG_ERROR(['libiconv' is required but it doesn't seem to be installed on this system.]),)) AC_SEARCH_LIBS(locale_charset,charset,, AC_SEARCH_LIBS(nl_langinfo,c,,AC_MSG_ERROR(['libcharset' is required but it doesn't seem to be installed on this system.]),)) +AC_SUBST(ICONV_LIBS, "${LIBS%${SAVED_LIBS}}") #----------------------------------------------------------------------- # --enable-xmldocs @@ -77,14 +79,14 @@ AC_SEARCH_LIBS(locale_charset,charset,, AC_ARG_ENABLE(xmldocs, [AS_HELP_STRING( [--enable-xmldocs], [enables XML documents support [default=yes]])], [], [enable_xmldocs=yes]) +PKG_PROG_PKG_CONFIG if test x"$enable_xmldocs" != "xyes"; then AC_DEFINE(OMIT_XMLDOC) else -AC_CHECK_HEADERS(minizip/unzip.h,, [AC_MSG_ERROR([cannot find minizip/unzip.h, bailing out])]) -AC_SEARCH_LIBS(unzLocateFile, minizip,,AC_MSG_ERROR(['libminizip' is required but it doesn't seem to be installed on this system.])) - -AC_CHECK_HEADERS(expat.h,, [AC_MSG_ERROR([cannot find expat.h, bailing out])]) -AC_CHECK_LIB(expat,XML_ParserCreate,,AC_MSG_ERROR(['expat' is required but it doesn't seem to be installed on this system.])) + PKG_CHECK_MODULES(MINIZIP, [minizip], [], [AC_MSG_ERROR([[minizip is required]])]) + PKG_CHECK_MODULES(EXPAT, [expat], [], [AC_MSG_ERROR([[expat is required]])]) + CFLAGS="${EXPAT_CFLAGS} ${MINIZIP_CFLAGS} ${CFLAGS}" + LIBS="${EXPAT_LIBS} ${MINIZIP_LIBS} ${LIBS}" fi #----------------------------------------------------------------------- diff --git a/freexl.pc.in b/freexl.pc.in index 5813e68..4393590 100644 --- a/freexl.pc.in +++ b/freexl.pc.in @@ -10,3 +10,5 @@ Description: a simple library extracting data from .xls (Excel BIFF) files Version: @VERSION@ Libs: -L${libdir} -lfreexl -lm Cflags: -I${includedir} +Libs.private: @ICONV_LIBS@ +Requires.private: expat minizip ================================================ FILE: ports/freexl/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-${VERSION}.tar.gz" FILENAME "freexl-${VERSION}.tar.gz" SHA512 663ccc321c2f0dcab8ad9255b2a77066c2046d531a0aa723fb114301fa27b53bf980787dd2548c46541036eceef988c5eedf2bec053adf628929470e67ddc17a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES dependencies.patch subdirs.patch android-builtin-iconv.diff ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freexl.pc" " -lm" " -liconv -lcharset") if(NOT DEFINED VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/freexl.pc" " -lm" " -liconv -lcharset") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/freexl/subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 50dc7f6..cbc99ca 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = headers src tests examples +SUBDIRS = headers src EXTRA_DIST = makefile.vc nmake.opt makefile64.vc nmake64.opt \ images/piazza.jpg images/piazza.eps mainpage.doxy config-msvc.h ================================================ FILE: ports/freexl/vcpkg.json ================================================ { "name": "freexl", "version": "2.0.0", "port-version": 2, "description": "FreeXL is an open source library to extract valid data from within an Excel (.xls) spreadsheet", "homepage": "https://www.gaia-gis.it/gaia-sins/freexl-sources", "license": "MPL-1.1 OR GPL-2.0-or-later OR LGPL-2.1-or-later", "dependencies": [ "expat", "libiconv", "minizip", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/frei0r/install-dlls-to-bin.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bb5b8c..faac2b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,10 @@ if (NOT CMAKE_BUILD_TYPE) FORCE) endif (NOT CMAKE_BUILD_TYPE) -set (LIBDIR "${CMAKE_INSTALL_LIBDIR}/frei0r-1") +if(WIN32) + set(LIBDIR "${CMAKE_INSTALL_BINDIR}/frei0r-1") +else() + set(LIBDIR "${CMAKE_INSTALL_LIBDIR}/frei0r-1") +endif() set (FREI0R_DEF "${CMAKE_SOURCE_DIR}/msvc/frei0r_1_0.def") set (FREI0R_1_1_DEF "${CMAKE_SOURCE_DIR}/msvc/frei0r_1_1.def") ================================================ FILE: ports/frei0r/portfile.cmake ================================================ # Frei0r dlls are MODULE librarys that are meant to be loaded at runtime, # hence they don't have import libs set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) vcpkg_download_distfile(FIX_UPSTREAM_PR_252 URLS https://github.com/dyne/frei0r/pull/252.patch?full_index=1 SHA512 bdf8c6e64d73495a843c76d08204217002f1108363674633a70574ba05f0f33efafc567b73f604c7c76fd9a9614a64ccadd62c3709454b52efbb8b8d61055532 FILENAME fix-sleid0r-symbol-export.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dyne/frei0r REF "v${VERSION}" SHA512 81831ede1d76d0ad8811f6b8116eb71a74e5af47a3249954f2c6f327e71e618d92c31f19566963bd9952363b22c5a6606df3ef8592f97c3bb1cd8ed9abe94c14 HEAD_REF master PATCHES "${FIX_UPSTREAM_PR_252}" install-dlls-to-bin.diff ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES cairo WITHOUT_CAIRO opencv WITHOUT_OPENCV ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWITHOUT_GAVL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/frei0r/vcpkg.json ================================================ { "name": "frei0r", "version": "2.5.4", "description": "A large collection of free and portable video plugins", "homepage": "https://frei0r.dyne.org/", "license": "GPL-2.0", "supports": "!(static & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "cairo": { "description": "Enable plugins dependent upon Cairo", "supports": "!arm & !static", "dependencies": [ { "name": "cairo", "default-features": false } ] }, "opencv": { "description": "Enable plugins dependent upon OpenCV", "dependencies": [ "opencv" ] } } } ================================================ FILE: ports/fribidi/meson-crosscompile.patch ================================================ diff --git a/gen.tab/meson.build b/gen.tab/meson.build index 8c21e98..1cd9960 100644 --- a/gen.tab/meson.build +++ b/gen.tab/meson.build @@ -1,5 +1,10 @@ # gen.tab +if get_option('pregenerated_tab') != '' + generated_tab_include_files = [] + fribidi_unicode_version_h = files() + add_project_arguments('-I' + get_option('pregenerated_tab'), language: 'c') +else native_cc = meson.get_compiler('c') # Don't pick up top-level config.h, as that has defines for the cross-compiler @@ -75,7 +80,10 @@ foreach tab : tabs input: gen_prog_inputs, output: gen_prog_out, command: [gen_exe, COMPRESSION, '@INPUT@', gen_prog_name], + install: true, + install_dir: 'share/fribidi/gen.tab', capture: true) generated_tab_include_files += [tab_inc_file] endforeach +endif diff --git a/meson_options.txt b/meson_options.txt index f54a639..8f60205 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -8,3 +8,5 @@ option('tests', type : 'boolean', value : true, description: 'Build tests') option('fuzzer_ldflags', type : 'string', description: 'Extra LDFLAGS used during linking of fuzzing binaries') +option('pregenerated_tab', type: 'string', + description: 'Path to pregenerated table sources') ================================================ FILE: ports/fribidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fribidi/fribidi REF v${VERSION} SHA512 13d7104f80e1b480d65a4c47fd694f5930222f3db843b8b6c1b6af58c43ee74b08635ce6166d005451498d060e549e4c666aa30c46d4df003d9ad63dba1d854a HEAD_REF master PATCHES meson-crosscompile.patch ) set(gen_tab_subdir "share/${PORT}/gen.tab") set(options "") if(VCPKG_CROSSCOMPILING) set(gen_tab "${CURRENT_HOST_INSTALLED_DIR}/${gen_tab_subdir}") cmake_path(NATIVE_PATH gen_tab gen_tab) set(options "-Dpregenerated_tab=${gen_tab}") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -Ddocs=false -Dbin=false -Dtests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # Define static macro if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fribidi/fribidi-common.h" "# elif defined(_WIN32) && ! defined(FRIBIDI_LIB_STATIC)" "# elif defined(_WIN32) && 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fribidi/fribidi-common.h" "# elif defined(_WIN32) && ! defined(FRIBIDI_LIB_STATIC)" "# elif defined(_WIN32) && 1") endif() if(VCPKG_CROSSCOMPILING) file( COPY "${gen_tab}/fribidi-unicode-version.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/fribidi" ) else() file( COPY "${CURRENT_PACKAGES_DIR}/include/fribidi/fribidi-unicode-version.h" DESTINATION "${CURRENT_PACKAGES_DIR}/${gen_tab_subdir}" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/fribidi/vcpkg.json ================================================ { "name": "fribidi", "version": "1.0.16", "description": "GNU FriBidi is an implementation of the Unicode Bidirectional Algorithm (bidi)", "homepage": "https://www.gnu.org/software/fribidi", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "name": "fribidi", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/frozen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO serge-sans-paille/frozen REF "${VERSION}" SHA512 644b29f60458fc5193a3fb16a347c190f9694d1bdbc75202aafe8d43eb72ce0433bbeaeb692f8ca485000d68b451ddc0236a1880ebbd64477f73198043d046b3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dfrozen.benchmark=OFF -Dfrozen.coverage=OFF -Dfrozen.installation=ON -Dfrozen.tests=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/frozen) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/frozen/vcpkg.json ================================================ { "name": "frozen", "version": "1.2.0", "description": "Header-only library that provides 0 cost initialization for immutable containers and various algorithms. Frozen provides:immutable (a.k.a. frozen), constexpr-compatible versions of std::set, std::unordered_set, std::map and std::unordered_map and 0-cost initialization version of std::search for frozen needles using Boyer-Moore or Knuth-Morris-Pratt algorithms.", "homepage": "https://github.com/serge-sans-paille/frozen", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/frugally-deep/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Dobiasd/frugally-deep REF "v${VERSION}" SHA512 7490f7ede1fc138889992bfd859d552ba76677ae13d18622165ba6e3c3ffffa4e9169965e246050922f756361f1d97d1530f2dfdd15425a687c19078a2488ed3 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES double FDEEP_USE_DOUBLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFDEEP_BUILD_UNITTEST=OFF -DFDEEP_USE_TOOLCHAIN=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/frugally-deep) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/frugally-deep/vcpkg.json ================================================ { "name": "frugally-deep", "version-semver": "0.18.2", "description": "Header-only library for using Keras models in C++.", "homepage": "https://github.com/Dobiasd/frugally-deep", "license": "MIT", "dependencies": [ "eigen3", "functionalplus", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "double": { "description": "Use double precision" } } } ================================================ FILE: ports/fruit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/fruit REF "v${VERSION}" SHA512 82e86b939ce7d1c0f092255211cd0825e7cf96e56b4af44dcbb67c863c41cb398afbbf9098a934b7eea848acc0b48d3dee3a67cf907f9b9ef2a0d59d92507f30 HEAD_REF master ) # TODO: Make boost an optional dependency? vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DFRUIT_USES_BOOST=False -DFRUIT_TESTS_USE_PRECOMPILED_HEADERS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/fruit/vcpkg.json ================================================ { "name": "fruit", "version": "3.7.1", "description": "Fruit, a dependency injection framework for C++ by Google", "homepage": "https://github.com/google/fruit", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ftgl/02_enable-cpp11-std.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 718ae88..e53e0da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,9 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) +CMAKE_MINIMUM_REQUIRED(VERSION 3.21) PROJECT(FTGL) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + SET(CMAKE_MODULE_PATH ${FTGL_SOURCE_DIR}) SET(VERSION_SERIES 2) ================================================ FILE: ports/ftgl/fix-cmake.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 693e49f..b0f26f6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,7 +26,6 @@ SET(libftgl_la_SOURCES FTGlyphContainer.h FTInternals.h FTLibrary.cpp - FTLibrary.h FTList.h FTPoint.cpp FTSize.cpp ================================================ FILE: ports/ftgl/fix-gl-flags.diff ================================================ diff --git a/src/FTFont/FTBufferFont.cpp b/src/FTFont/FTBufferFont.cpp index ce04cf5..b330a3b 100644 --- a/src/FTFont/FTBufferFont.cpp +++ b/src/FTFont/FTBufferFont.cpp @@ -232,7 +232,7 @@ inline FTPoint FTBufferFontImpl::RenderI(const T* string, const int len, bool inCache = false; // Protect blending functions, GL_TEXTURE_2D and optionally GL_BLEND - glPushAttrib(GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT | GL_TEXTURE_ENV_MODE); + glPushAttrib(GL_COLOR_BUFFER_BIT | GL_ENABLE_BIT | GL_TEXTURE_BIT); // Protect glPixelStorei() calls glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); diff --git a/src/FTFont/FTTextureFont.cpp b/src/FTFont/FTTextureFont.cpp index 97e8768..a5145cf 100644 --- a/src/FTFont/FTTextureFont.cpp +++ b/src/FTFont/FTTextureFont.cpp @@ -241,7 +241,7 @@ inline FTPoint FTTextureFontImpl::RenderI(const T* string, const int len, int renderMode) { // Protect GL_TEXTURE_2D and optionally GL_BLEND - glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_TEXTURE_ENV_MODE); + glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT | GL_TEXTURE_BIT); if(FTLibrary::Instance().GetLegacyOpenGLStateSet()) { ================================================ FILE: ports/ftgl/freetype-usage.diff ================================================ --- a/src/FTVectoriser.h +++ b/src/FTVectoriser.h @@ -296,7 +296,7 @@ /** * The number of contours reported by Freetype */ - short ftContourCount; + unsigned short ftContourCount; /** * A flag indicating the tesselation rule for the glyph --- a/src/FTVectoriser.cpp +++ b/src/FTVectoriser.cpp @@ -159,16 +159,16 @@ void FTVectoriser::ProcessContours() { - short contourLength = 0; - short startIndex = 0; - short endIndex = 0; + unsigned short contourLength = 0; + unsigned short startIndex = 0; + unsigned short endIndex = 0; contourList = new FTContour*[ftContourCount]; for(int i = 0; i < ftContourCount; ++i) { FT_Vector* pointList = &outline.points[startIndex]; - char* tagList = &outline.tags[startIndex]; + unsigned char* tagList = &outline.tags[startIndex]; endIndex = outline.contours[i]; contourLength = (endIndex - startIndex) + 1; --- a/src/FTContour.h +++ b/src/FTContour.h @@ -52,7 +52,7 @@ * @param pointTags * @param numberOfPoints */ - FTContour(FT_Vector* contour, char* pointTags, unsigned int numberOfPoints); + FTContour(FT_Vector* contour, unsigned char* pointTags, unsigned int numberOfPoints); /** * Destructor --- a/src/FTContour.cpp +++ b/src/FTContour.cpp @@ -174,7 +174,7 @@ } -FTContour::FTContour(FT_Vector* contour, char* tags, unsigned int n) +FTContour::FTContour(FT_Vector* contour, unsigned char* tags, unsigned int n) { FTPoint prev, cur(contour[(n - 1) % n]), next(contour[0]); double olddir, dir = atan2((next - cur).Y(), (next - cur).X()); ================================================ FILE: ports/ftgl/install-pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 303fcae..cdcf2c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,3 +74,12 @@ install(EXPORT FTGL-targets DESTINATION "${cmakedir}") install( FILES "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FTGLConfig.cmake" DESTINATION "${cmakedir}") + +SET(PKGCONFIG_INSTALL_PREFIX "lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/ftgl.pc.cmake + ${CMAKE_CURRENT_BINARY_DIR}/ftgl.pc + @ONLY) +INSTALL( + FILES ${CMAKE_CURRENT_BINARY_DIR}/ftgl.pc + DESTINATION ${PKGCONFIG_INSTALL_PREFIX}) diff --git a/ftgl.pc.cmake b/ftgl.pc.cmake new file mode 100644 index 0000000..d242667 --- /dev/null +++ b/ftgl.pc.cmake @@ -0,0 +1,6 @@ +Name: ftgl +Description: OpenGL frontend to Freetype 2 +Requires.private: freetype2 +Version: @VERSION_SERIES@.@VERSION_MAJOR@.@VERSION_MINOR@ +Libs: -L@CMAKE_INSTALL_PREFIX@/lib -lftgl +Cflags: -I@CMAKE_INSTALL_PREFIX@/include \ No newline at end of file ================================================ FILE: ports/ftgl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO frankheckenbach/ftgl REF v${VERSION} SHA512 5a0d05dbb32952e5aa81d2537d604192ca19710cd57289ae056acc5e3ae6d403d7f0ffc8cf6c1aada6c3c23a8df4a8d0eabb81433036ade810bca1894fdfde54 HEAD_REF master PATCHES fix-cmake.diff # https://github.com/frankheckenbach/ftgl/commit/835f2ba7911a6c15a1a314d5e3267fa089b5a319 fix-gl-flags.diff # https://github.com/frankheckenbach/ftgl/commit/778b8f21ba0b71289aef37e3422d008456445971 install-pkgconfig.diff # https://github.com/frankheckenbach/ftgl/commit/8763fa4e413e015e46376697fb8ab59ed31c2ff5 02_enable-cpp11-std.patch freetype-usage.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_CxxTest=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else () vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/FTGL) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/FTGL/ftgl.h" "ifdef FTGL_LIBRARY_STATIC" "if 1//ifdef FTGL_LIBRARY_STATIC" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/ftgl/vcpkg.json ================================================ { "name": "ftgl", "version": "2.4.0", "port-version": 7, "description": [ "FTGL is a free open source library to enable developers to use arbitrary fonts in their OpenGL (www.opengl.org) applications.", "Unlike other OpenGL font libraries FTGL uses standard font file formats so doesn't need a preprocessing step to convert the high quality font data into a lesser quality, proprietary format.", "FTGL uses the Freetype (www.freetype.org) font library to open and 'decode' the fonts. It then takes that output and stores it in a format most efficient for OpenGL rendering." ], "homepage": "https://github.com/frankheckenbach/ftgl", "license": "MIT", "dependencies": [ { "name": "freetype", "default-features": false }, "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ftxui/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArthurSonzogni/FTXUI REF "v${VERSION}" SHA512 55921a42081630947760f46b533fa1e1f65abfad8976db74018fa48889ba352a01b6adaa56fba482f100f15e450df7e0e3120f899d89685612bf19199a7f7c59 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DFTXUI_BUILD_EXAMPLES=OFF -DFTXUI_ENABLE_INSTALL=ON -DFTXUI_BUILD_TESTS=OFF -DFTXUI_BUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ftxui/vcpkg.json ================================================ { "name": "ftxui", "version-semver": "6.1.9", "description": "C++ Functional Terminal User Interface", "homepage": "https://github.com/ArthurSonzogni/FTXUI", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/function2/disable-testing.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 684abe0..32a5cf6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,9 @@ if (FU2_IS_TOP_LEVEL_PROJECT) install(EXPORT "${PROJECT_NAME}Targets" NAMESPACE ${PROJECT_NAME}:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") +endif() +if(0) # Setup CPack for bundling set(CPACK_GENERATOR "ZIP") set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) ================================================ FILE: ports/function2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Naios/function2 REF "${VERSION}" SHA512 59ae559854eab40d65bfa24b41953333ce76e1e91af6232ff4f134514a044adf1d1fa4ffa0b33d49085b3f59c671c301aa1e69e4fbb3490c7099dc8ce34dac88 HEAD_REF master PATCHES disable-testing.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE.txt" "${CURRENT_PACKAGES_DIR}/Readme.md") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/function2/vcpkg.json ================================================ { "name": "function2", "version-semver": "4.2.5", "description": "Improved drop-in replacement to std::function", "homepage": "https://github.com/Naios/function2", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/functionalplus/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Dobiasd/FunctionalPlus REF "v${VERSION}" SHA512 9ad4e16d9519d73c4ff448371ba42369b33725770f279cb9835855256406fdfb146bd87935257f8f13c1d661696fddb7e08dba16c2b215cf81a98aa8610a6712 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFunctionalPlus_INSTALL_CMAKEDIR=share/functionalplus ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/functionalplus/vcpkg.json ================================================ { "name": "functionalplus", "version": "0.2.27", "description": "This port is the new fplus port, the old fplus has been removed. Functional Programming Library for C++. Write concise and readable C++ code", "homepage": "https://github.com/Dobiasd/FunctionalPlus", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/functions-framework-cpp/fix-asio-error.patch ================================================ diff --git a/google/cloud/functions/internal/framework_impl.cc b/google/cloud/functions/internal/framework_impl.cc index 4a4a43d..33a7661 100644 --- a/google/cloud/functions/internal/framework_impl.cc +++ b/google/cloud/functions/internal/framework_impl.cc @@ -78,7 +78,7 @@ int RunForTestImpl(int argc, char const* const argv[], asio::io_context ioc{1}; tcp::acceptor acceptor{ioc, {address, static_cast(port)}}; - acceptor.listen(boost::asio::socket_base::max_connections); + acceptor.listen(boost::asio::socket_base::max_listen_connections); actual_port(acceptor.local_endpoint().port()); auto handler = FunctionImpl::GetImpl(function)->GetHandler(target); ================================================ FILE: ports/functions-framework-cpp/fix-integral-include.patch ================================================ diff --git a/google/cloud/functions/internal/parse_options.cc b/google/cloud/functions/internal/parse_options.cc index ba3a2b5..54daf29 100644 --- a/google/cloud/functions/internal/parse_options.cc +++ b/google/cloud/functions/internal/parse_options.cc @@ -17,6 +17,7 @@ #include #include #include +#include namespace google::cloud::functions_internal { FUNCTIONS_FRAMEWORK_CPP_INLINE_NAMESPACE_BEGIN ================================================ FILE: ports/functions-framework-cpp/portfile.cmake ================================================ # TODO(coryan) - fix support for DLLs vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GoogleCloudPlatform/functions-framework-cpp REF "v${VERSION}" SHA512 3832e205a2505152ed6955d7cf5630b2045133221ddd96e2bef62e66cad58cea326f32428e2f494bbe1a10f5d66453d09ae46e6b972a7ed13f211efbb79527a8 HEAD_REF main PATCHES fix-integral-include.patch fix-asio-error.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install(ADD_BIN_TO_PATH) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME functions_framework_cpp CONFIG_PATH lib/cmake/functions_framework_cpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file( INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/functions-framework-cpp/vcpkg.json ================================================ { "name": "functions-framework-cpp", "version": "1.2.0", "port-version": 1, "description": "Functions Framework for C++.", "homepage": "https://github.com/GoogleCloudPlatform/functions-framework-cpp/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "abseil", "boost-beast", "boost-program-options", "boost-serialization", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/future-config/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO F-I-D-O/Future-Config REF "v${VERSION}" SHA512 86a42c00da27d3182cf758ecaf94cab3c6e9811d61a6937a8a8c8afc20f367b95376dd304a603cd4eb780e7c4134582dae23e019538dcbab571483fa5dc15658 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cpp" OPTIONS -DFCONFIG_BUILD_SHARED_LIBS=${BUILD_SHARED} -DFCONFIG_ENABLE_TESTS=OFF -DFCONFIG_BUILDER_COPY_LIBRARY_DEPENDENCIES_MANUALLY=OFF -DFCONFIG_INSTALL_BUILDER_TOOL_AND_HEADERS_DEBUG=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() # move the jinja template for the builder tool from bin directory to tools directory set(BIN_DIR "${CURRENT_PACKAGES_DIR}/bin") set(BIN_DATA_DIR "${BIN_DIR}/data") set(PORT_TOOL_DATA_DIR "${CURRENT_PACKAGES_DIR}/tools/${PORT}/data") file(MAKE_DIRECTORY "${PORT_TOOL_DATA_DIR}") file(RENAME "${BIN_DATA_DIR}/config.jinja" "${PORT_TOOL_DATA_DIR}/config.jinja") file(REMOVE_RECURSE "${BIN_DATA_DIR}") # Copy the builder tool dependencies vcpkg_copy_tools( TOOL_NAMES fconfig_builder AUTO_CLEAN ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/future-config/usage ================================================ future-config provides CMake targets and functions: find_package(future-config CONFIG REQUIRED) target_link_libraries(main PRIVATE future-config::future-config) run_fconfig_builder(...) copy_master_config(...) ================================================ FILE: ports/future-config/vcpkg.json ================================================ { "name": "future-config", "version": "0.2.0", "description": "C++ implementation of the Future Config configuration system", "homepage": "https://github.com/F-I-D-O/Future-Config", "license": "LGPL-3.0-or-later", "dependencies": [ "fmt", "inja", "spdlog", "tclap", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "yaml-cpp" ] } ================================================ FILE: ports/fuzzylite/no-werror.patch ================================================ diff --git a/fuzzylite/CMakeLists.txt b/fuzzylite/CMakeLists.txt index 28435e2..3824c8f 100644 --- a/fuzzylite/CMakeLists.txt +++ b/fuzzylite/CMakeLists.txt @@ -74,7 +74,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY bin) if(NOT MSVC) #TODO: Remove -Werror before release. #Add Unix compilation flags - set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Werror ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra ${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") ================================================ FILE: ports/fuzzylite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fuzzylite/fuzzylite REF v6.0 SHA512 6f5d40d0359458e109ac2aebfbf571f61867a8b49920f4a5e1b5d86bdf578dba038b942c9e05eab0d4620f73e8cded770abe7b5e597a3b4c39dbcf6a1259f4af HEAD_REF master PATCHES no-werror.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FL_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" FL_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/fuzzylite" OPTIONS -DFL_BUILD_SHARED=${FL_BUILD_SHARED} -DFL_BUILD_STATIC=${FL_BUILD_STATIC} -DFL_BUILD_BINARY=OFF -DFL_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fl/fuzzylite.h" "#elif defined(FL_IMPORT_LIBRARY)" "#elif 1" ) elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/fl/fuzzylite.h" "#elif defined(FL_IMPORT_LIBRARY)" "#elif 0" ) endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/fuzzylite/vcpkg.json ================================================ { "name": "fuzzylite", "version": "6.0", "port-version": 6, "description": "A fuzzy logic control library in C++", "homepage": "https://github.com/fuzzylite/fuzzylite", "license": "GPL-3.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/fxaudio/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EnzoMassyle/AudioFX REF ${VERSION} SHA512 fca56da7b4579dafd02138817e1b1d6cceb1f6d210f414afb042d8d720e9d611f7a4c110b7edb36b07e6ef0e7b1f412888c0c8e42c35f66db09cde23882aeb6b HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/FXAUDIO") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/fxaudio/usage ================================================ fxaudio library provides CMake targets: find_package(FXAUDIO CONFIG REQUIRED) target_link_libraries(main PRIVATE FXAUDIO::fxaudio) ================================================ FILE: ports/fxaudio/vcpkg.json ================================================ { "name": "fxaudio", "version": "1.0.1", "description": "An easy to use audio processing library", "homepage": "https://github.com/EnzoMassyle/AudioFX", "license": "MIT", "dependencies": [ { "name": "fftw3", "features": [ "threads" ] }, "libsndfile", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/fxdiv/add-cmake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bcae6b5..a20ea87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ ENDIF() # ---[ FXdiv library ADD_LIBRARY(fxdiv INTERFACE) -TARGET_INCLUDE_DIRECTORIES(fxdiv INTERFACE include) +TARGET_INCLUDE_DIRECTORIES(fxdiv INTERFACE $ $) IF(FXDIV_USE_INLINE_ASSEMBLY) TARGET_COMPILE_DEFINITIONS(fxdiv INTERFACE FXDIV_USE_INLINE_ASSEMBLY=1) ELSE() @@ -51,6 +51,14 @@ ELSE() ENDIF() INSTALL(FILES include/fxdiv.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +INSTALL(TARGETS fxdiv + EXPORT unofficial-fxdiv-config + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +INSTALL(EXPORT unofficial-fxdiv-config NAMESPACE unofficial::fxdiv:: + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-fxdiv) # share/fxdiv IF(FXDIV_BUILD_TESTS) # ---[ Build google test ================================================ FILE: ports/fxdiv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Maratyszcza/fxdiv REF 63058eff77e11aa15bf531df5dd34395ec3017c8 SHA512 da33eab4d006645f383a1f24fc3e747db3aeb0613219297ec0ae69aa2617f07ba050ebd6a64a8cbde6d25481f176d0ec3b9753a95d1fbcead2136595f3e50e97 PATCHES add-cmake-config.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFXDIV_BUILD_TESTS=OFF -DFXDIV_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/fxdiv/vcpkg.json ================================================ { "name": "fxdiv", "version-date": "2021-02-21", "port-version": 4, "description": "C99/C++ header-only library for division via fixed-point multiplication by inverse", "homepage": "https://github.com/Maratyszcza/FXdiv", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/g2o/0001-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c2b0a09..08bd944 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,7 +95,7 @@ endif() # For building the CHOLMOD based solvers option(G2O_USE_CHOLMOD "Build g2o with CHOLMOD support" ON) -find_package(SuiteSparse) +find_package(SuiteSparse_CHOLMOD NAMES CHOLMOD CONFIG REQUIRED) if (G2O_USE_CHOLMOD AND SuiteSparse_CHOLMOD_FOUND) message(STATUS "Enable support for Cholmod") set(CHOLMOD_FOUND TRUE) @@ -128,7 +128,8 @@ endif() # For building the CSparse based solvers. Note this depends on an LGPL library. option(G2O_USE_CSPARSE "Build g2o with CSParse support" ON) -find_package(CSparse) +find_package(CSPARSE NAMES CXSparse REQUIRED) +set(CSPARSE_LIBRARY SuiteSparse::CXSparse) if (${G2O_USE_CSPARSE} AND ${CSPARSE_FOUND} AND ${G2O_USE_LGPL_LIBS}) message(STATUS "Enable support for CSparse") else() diff --git a/cmake_modules/Config.cmake.in b/cmake_modules/Config.cmake.in index efeb3bd..f8ab1ad 100644 --- a/cmake_modules/Config.cmake.in +++ b/cmake_modules/Config.cmake.in @@ -1,4 +1,6 @@ include(CMakeFindDependencyMacro) +find_dependency(CHOLMOD CONFIG) +find_dependency(CXSparse CONFIG) find_dependency(Eigen3) ================================================ FILE: ports/g2o/0002-fix-absolute.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c2b0a09..8c62d5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -492,7 +492,8 @@ set(G2O_HAVE_CHOLMOD ${CHOLMOD_FOUND}) set(G2O_HAVE_CSPARSE ${G2O_USE_CSPARSE}) set(G2O_SHARED_LIBS ${BUILD_SHARED_LIBS}) set(G2O_LGPL_SHARED_LIBS ${BUILD_LGPL_SHARED_LIBS}) -set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER}") +cmake_path(GET CMAKE_CXX_COMPILER FILENAME cxx_compiler) +set(G2O_CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${cxx_compiler}") # Generate cmake configuration scripts set(G2O_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") @@ -501,7 +502,6 @@ set(G2O_PROJECT_CONFIG "${G2O_GENERATED_DIR}/${PROJECT_NAME}Config.cmake") set(G2O_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") set(G2O_CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") set(G2O_NAMESPACE "${PROJECT_NAME}::") -set(G2O_SRC_DIR "${PROJECT_SOURCE_DIR}") include(CMakePackageConfigHelpers) WRITE_BASIC_PACKAGE_VERSION_FILE( ================================================ FILE: ports/g2o/0003-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3bc511e..86a903c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -477,15 +477,9 @@ endif(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${g2o_CXX_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${g2o_C_FLAGS}") -# Find Eigen3. If it defines the target, this is used. If not, -# fall back to the using the module form. +# Find Eigen3 # See https://eigen.tuxfamily.org/dox/TopicCMakeGuide.html for details -find_package(Eigen3 3.3 REQUIRED) -if (TARGET Eigen3::Eigen) - set(G2O_EIGEN3_EIGEN_TARGET Eigen3::Eigen) -else() - include_directories(${EIGEN3_INCLUDE_DIR}) -endif () +find_package(Eigen3 REQUIRED NO_MODULE) # Generate config.h set(G2O_OPENGL_FOUND ${OPENGL_FOUND}) diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 89a2612..acda5b9 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -4,4 +4,4 @@ target_include_directories(benchmark_jacobian_timing PUBLIC "$" ) -target_link_libraries(benchmark_jacobian_timing benchmark::benchmark ${G2O_EIGEN3_EIGEN_TARGET}) +target_link_libraries(benchmark_jacobian_timing benchmark::benchmark Eigen3::Eigen) diff --git a/g2o/core/CMakeLists.txt b/g2o/core/CMakeLists.txt index 21901c2..da0d2a9 100644 --- a/g2o/core/CMakeLists.txt +++ b/g2o/core/CMakeLists.txt @@ -50,7 +50,7 @@ set_target_properties(core PROPERTIES OUTPUT_NAME ${LIB_PREFIX}core) set_target_properties(core PROPERTIES VERSION ${G2O_LIB_VERSION} SOVERSION ${G2O_LIB_SOVERSION}) -target_link_libraries(core PUBLIC stuff ${G2O_EIGEN3_EIGEN_TARGET}) +target_link_libraries(core PUBLIC stuff Eigen3::Eigen) target_link_libraries(core PUBLIC g2o_ceres_ad) target_compile_features(core PUBLIC cxx_std_17) diff --git a/g2o/solvers/csparse/CMakeLists.txt b/g2o/solvers/csparse/CMakeLists.txt index e3a3980..3539711 100644 --- a/g2o/solvers/csparse/CMakeLists.txt +++ b/g2o/solvers/csparse/CMakeLists.txt @@ -19,7 +19,7 @@ target_include_directories(csparse_extension PUBLIC ${CSPARSE_INCLUDE_DIR} $ $) -target_link_libraries(csparse_extension PUBLIC stuff ${CSPARSE_LIBRARY} ${G2O_EIGEN3_EIGEN_TARGET}) +target_link_libraries(csparse_extension PUBLIC stuff ${CSPARSE_LIBRARY} Eigen3::Eigen) add_library(solver_csparse ${G2O_LIB_TYPE} solver_csparse.cpp diff --git a/g2o/stuff/CMakeLists.txt b/g2o/stuff/CMakeLists.txt index 6334468..04d0255 100644 --- a/g2o/stuff/CMakeLists.txt +++ b/g2o/stuff/CMakeLists.txt @@ -28,7 +28,7 @@ set_target_properties(stuff PROPERTIES VERSION ${G2O_LIB_VERSION} SOVERSION ${G2O_LIB_SOVERSION}) target_compile_features(stuff PUBLIC cxx_std_17) -target_link_libraries(stuff PUBLIC ${G2O_EIGEN3_EIGEN_TARGET}) +target_link_libraries(stuff PUBLIC Eigen3::Eigen) if (APPLE) set_target_properties(stuff PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") @@ -64,7 +64,7 @@ if(OPENGL_FOUND AND G2O_HAVE_OPENGL) $ ) - target_link_libraries(opengl_helper PUBLIC ${G2O_OPENGL_TARGET} ${G2O_EIGEN3_EIGEN_TARGET}) + target_link_libraries(opengl_helper PUBLIC ${G2O_OPENGL_TARGET} Eigen3::Eigen) target_compile_features(opengl_helper PUBLIC cxx_std_17) set_target_properties(opengl_helper PROPERTIES OUTPUT_NAME "${LIB_PREFIX}opengl_helper") set_target_properties(opengl_helper PROPERTIES ================================================ FILE: ports/g2o/portfile.cmake ================================================ vcpkg_download_distfile(FIX_UPSTREAM_37d17a9 URLS https://github.com/RainerKuemmerle/g2o/commit/37d17a94594648acf9cce85e8483c0405c510f0d.patch?full_index=1 SHA512 dc333fa43770fbdfc98592b4beb0ff03fdb033990b7054ae65953bad31899d11053fe08977526d70fa7fdf299ad0d2368ed79f29b9db847fdca3ff4e3d0415d9 FILENAME g2o-37d17a94594648acf9cce85e8483c0405c510f0d.patch ) vcpkg_download_distfile(FIX_UPSTREAM_100af05 URLS https://github.com/RainerKuemmerle/g2o/commit/100af05931ae3497f39ab42cbeba240f50cc7b66.patch?full_index=1 SHA512 bc837081f14476e28e638de097fa7d8d44fa336d6f126391b4856dbfb6165d4fc89bf5a16d7e165a846288700596fd8d550c0a478bb7eb52d612d5d1ef62cbed FILENAME g2o-100af05931ae3497f39ab42cbeba240f50cc7b66.patch ) string(REPLACE "-" "" GIT_TAG "${VERSION}_git") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RainerKuemmerle/g2o REF "${GIT_TAG}" SHA512 575e97a54f87a4df239b2137c58ebb7025dfa78f6046808d155bec978f8ef88b2e4e6ef53401941fdb30cf88916c4eacb43512d615c5f8d30301cd176c53b05e HEAD_REF master PATCHES 0001-dependencies.patch 0002-fix-absolute.patch "${FIX_UPSTREAM_37d17a9}" "${FIX_UPSTREAM_100af05}" 0003-support-eigen3-5.patch ) file(REMOVE "${SOURCE_PATH}/cmake_modules/FindBLAS.cmake" "${SOURCE_PATH}/cmake_modules/FindCSparse.cmake" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_LGPL_SHARED_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES spdlog G2O_USE_LOGGING spdlog VCPKG_LOCK_FIND_PACKAGE_spdlog ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_LGPL_SHARED_LIBS=${BUILD_LGPL_SHARED_LIBS} -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DVCPKG_LOCK_FIND_PACKAGE_QGLViewer=OFF MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_spdlog ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/g2o") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB_RECURSE HEADERS "${CURRENT_PACKAGES_DIR}/include/*") foreach(HEADER IN LISTS HEADERS) vcpkg_replace_string("${HEADER}" "#ifdef G2O_SHARED_LIBS" "#if 1" IGNORE_UNCHANGED) endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${SOURCE_PATH}/README.md" readme) string(REGEX REPLACE "^.*## License" "" readme "${readme}") string(REGEX REPLACE "\n##.*" "" readme "${readme}") string(STRIP "${readme}" readme) set(ceres_license "${CURRENT_PACKAGES_DIR}/include/g2o/autodiff/Ceres Solver in autodiff") file(RENAME "${CURRENT_PACKAGES_DIR}/include/g2o/autodiff/LICENSE" "${ceres_license}") vcpkg_install_copyright( COMMENT "${readme}" FILE_LIST "${SOURCE_PATH}/doc/license-bsd.txt" "${ceres_license}" "${SOURCE_PATH}/doc/license-lgpl.txt" ) file(REMOVE "${ceres_license}") ================================================ FILE: ports/g2o/vcpkg.json ================================================ { "name": "g2o", "version-date": "2024-12-28", "description": "g2o: A General Framework for Graph Optimization", "homepage": "https://openslam.org/g2o.html", "license": null, "supports": "!uwp", "dependencies": [ "ceres", "eigen3", "lapack", "suitesparse-cholmod", "suitesparse-cxsparse", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "spdlog": { "description": "Use spdlog for logging", "dependencies": [ "spdlog" ] } } } ================================================ FILE: ports/g3log/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KjellKod/g3log REF "${VERSION}" SHA512 94074247811d2811bad634714549f59ca4826976e0129160a007229fdc39b6abdb36a5a3f851de64bf9df11fde5838f200c6d5b171004c5c2f2cd5ae4e0eb3ed HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" G3_SHARED_LIB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" G3_SHARED_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dynamic-logging USE_DYNAMIC_LOGGING_LEVELS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DG3_SHARED_LIB=${G3_SHARED_LIB} # Options.cmake -DG3_SHARED_RUNTIME=${G3_SHARED_RUNTIME} # Options.cmake -DADD_FATAL_EXAMPLE=OFF -DADD_G3LOG_BENCH_PERFORMANCE=OFF -DADD_G3LOG_UNIT_TEST=OFF -DVERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/g3log) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/g3log/vcpkg.json ================================================ { "name": "g3log", "version": "2.6", "port-version": 1, "description": "Asynchronous logger with Dynamic Sinks", "homepage": "https://github.com/KjellKod/g3log", "license": "Unlicense", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dynamic-logging": { "description": "Enable dynamic logging levels" } } } ================================================ FILE: ports/gainput/fix-build.patch ================================================ set(XINPUT, "xinput") sets the variable "XINPUT," to "xinput", so this variable is never used anyways diff --git a/CMakeLists.txt b/CMakeLists.txt index a443b66..61ff7b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,11 +9,11 @@ option(GAINPUT_TESTS "Build Tests for Gainput" ON) option(GAINPUT_BUILD_SHARED "BUILD_SHARED" ON) option(GAINPUT_BUILD_STATIC "BUILD_STATIC" ON) -if(!WIN32) +if(NOT WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra") else() set(XINPUT "Xinput9_1_0") - if ( ${CMAKE_SYSTEM_VERSION} LESS 6.1 ) + if ( 0 ) set(XINPUT, "xinput") endif() endif() diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index cb7232f..a6ae3d9 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -55,15 +55,21 @@ elseif(APPLE) find_library(FOUNDATION Foundation) find_library(IOKIT IOKit) find_library(GAME_CONTROLLER GameController) + if (GAINPUT_BUILD_SHARED) target_link_libraries(gainput ${FOUNDATION} ${IOKIT} ${GAME_CONTROLLER}) + endif() if(IOS) find_library(UIKIT UIKit) find_library(COREMOTION CoreMotion) find_library(QUARTZCORE QuartzCore) + if (GAINPUT_BUILD_SHARED) target_link_libraries(gainput ${UIKIT} ${COREMOTION}) + endif() else() find_library(APPKIT AppKit) + if (GAINPUT_BUILD_SHARED) target_link_libraries(gainput ${APPKIT}) + endif() endif() endif() ================================================ FILE: ports/gainput/install_as_cmake_package.patch ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 14d5e85..cb7232f 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -30,19 +30,27 @@ if (GAINPUT_BUILD_SHARED) endif (GAINPUT_BUILD_SHARED) if (GAINPUT_BUILD_STATIC) - message(STATUS "..Building shared libraries (-DGAINPUT_BUILD_STATIC=OFF to disable)") + message(STATUS "..Building static libraries (-DGAINPUT_BUILD_STATIC=OFF to disable)") add_library(gainputstatic STATIC ${sources} ${mmsources}) set_target_properties(gainputstatic PROPERTIES DEBUG_POSTFIX -d FOLDER gainput) set(install_libs ${install_libs} gainputstatic) endif (GAINPUT_BUILD_STATIC) if(WIN32) - target_link_libraries(gainput ${XINPUT} ws2_32) - target_link_libraries(gainputstatic ${XINPUT} ws2_32) + if (GAINPUT_BUILD_SHARED) + target_link_libraries(gainput ${XINPUT} ws2_32) + endif(GAINPUT_BUILD_SHARED) + if(GAINPUT_BUILD_STATIC) + target_link_libraries(gainputstatic ${XINPUT} ws2_32) + endif(GAINPUT_BUILD_STATIC) add_definitions(-DGAINPUT_LIB_DYNAMIC=1) elseif(ANDROID) - target_link_libraries(gainputstatic native_app_glue log android) - target_link_libraries(gainput native_app_glue log android) + if (GAINPUT_BUILD_SHARED) + target_link_libraries(gainput native_app_glue log android) + endif(GAINPUT_BUILD_SHARED) + if(GAINPUT_BUILD_STATIC) + target_link_libraries(gainputstatic native_app_glue log android) + endif(GAINPUT_BUILD_STATIC) elseif(APPLE) find_library(FOUNDATION Foundation) find_library(IOKIT IOKit) @@ -65,6 +73,14 @@ if(NOT DEFINED CMAKE_INSTALL_LIBDIR) endif(NOT DEFINED CMAKE_INSTALL_LIBDIR) set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) +foreach(t ${install_libs}) + target_include_directories( + ${t} + INTERFACE $ + $ + ) +endforeach() + install( DIRECTORY "include/gainput" DESTINATION "include" @@ -73,7 +89,15 @@ install( install( TARGETS ${install_libs} + EXPORT unofficial-${PROJECT_NAME}-Targets LIBRARY DESTINATION "${libdir}" ARCHIVE DESTINATION "${libdir}" RUNTIME DESTINATION "bin" ) + +install( + EXPORT unofficial-${PROJECT_NAME}-Targets + FILE unofficial-${PROJECT_NAME}Config.cmake + NAMESPACE unofficial::${PROJECT_NAME}:: + DESTINATION share/unofficial-${PROJECT_NAME} +) \ No newline at end of file ================================================ FILE: ports/gainput/portfile.cmake ================================================ if (VCPKG_TARGET_IS_OSX) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkuhlmann/gainput REF v1.0.0 SHA512 56fdc4c0613d7260861885b270ebe9e624e940175f41e3ac82516e2eb0d6d229e405fbcc2e54608e7d6751c1d8658b5b5e186153193badc6487274cb284a8cd6 HEAD_REF master PATCHES install_as_cmake_package.patch fix-build.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" GAINPUT_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" GAINPUT_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGAINPUT_BUILD_SHARED=${GAINPUT_BUILD_SHARED} -DGAINPUT_BUILD_STATIC=${GAINPUT_BUILD_STATIC} -DGAINPUT_TESTS=OFF -DGAINPUT_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-gainput CONFIG_PATH share/unofficial-gainput) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gainput/vcpkg.json ================================================ { "name": "gainput", "version": "1.0.0", "port-version": 6, "description": "Gainput is a multiplatform C++ input library, supporting mouse, keyboard and controllers", "homepage": "https://github.com/jkuhlmann/gainput", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gamedev-framework/portfile.cmake ================================================ if (VCPKG_HOST_IS_LINUX) message(WARNING "gamedev-framework requires gcc version 8.3 or later.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GamedevFramework/gf HEAD_REF master REF v1.2.0 SHA512 2043d0b015af7127887df44a9e2e035000c93c20a713d7297736fb05e46923684e330c7a541a115c110ea8737f0ddbfb0c0ef13498102732cfb2a4b243fd22cd ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGF_USE_EMBEDDED_LIBS=OFF -DGF_BUILD_GAMES=OFF -DGF_BUILD_EXAMPLES=OFF -DGF_BUILD_DOCUMENTATION=OFF -DBUILD_TESTING=OFF -DCMAKE_UNITY_BUILD=ON -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} OPTIONS_RELEASE -DGF_DEBUG=OFF OPTIONS_DEBUG -DGF_DEBUG=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME gf CONFIG_PATH lib/cmake/gf ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/bin/gf_info.exe" "${CURRENT_PACKAGES_DIR}/bin/gf_info.exe" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/gamedev-framework/vcpkg.json ================================================ { "name": "gamedev-framework", "version-semver": "1.2.0", "maintainers": [ "Julien Bernard ", "Arthur Hugeat " ], "description": "gamedev-framework is a framework to build 2D games in C++17", "homepage": "https://gamedevframework.github.io/", "license": "Zlib", "supports": "!arm & !android", "dependencies": [ "boost-algorithm", "boost-container", "boost-filesystem", "boost-heap", "freetype", "pugixml", { "name": "sdl2", "default-features": false, "features": [ "x11" ], "platform": "linux" }, { "name": "sdl2", "platform": "!linux" }, "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/gameinput/CMakeLists.txt.in ================================================ cmake_minimum_required (VERSION 3.21) project(GameInput LANGUAGES CXX) add_library(${PROJECT_NAME} STATIC GameInput.cpp) if(WIN32) target_compile_definitions(${PROJECT_NAME} PRIVATE _UNICODE UNICODE _WIN32_WINNT=0x0A00) endif() include(GNUInstallDirs) install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ================================================ FILE: ports/gameinput/gameinput-config.cmake.in ================================================ get_filename_component(_gameinput_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_gameinput_root "${_gameinput_root}" PATH) set(_gameinput_root_lib "${_gameinput_root}/lib/@LIB_NAME@") add_library(Microsoft::GameInput INTERFACE IMPORTED) set_target_properties(Microsoft::GameInput PROPERTIES INTERFACE_LINK_LIBRARIES "${_gameinput_root_lib}" INTERFACE_INCLUDE_DIRECTORIES "${_gameinput_root}/include") unset(_gameinput_root_lib) unset(_gameinput_root) ================================================ FILE: ports/gameinput/portfile.cmake ================================================ if(VCPKG_TARGET_IS_XBOX) cmake_path(SET GameDKXboxLatest "$ENV{GameDKXboxLatest}") cmake_path(SET GRDKLatest "$ENV{GRDKLatest}") cmake_path(SET GXDKLatest "$ENV{GXDKLatest}") find_file(GAMEINPUT_H NAMES GameInput.h PATHS "${GameDKXboxLatest}/xbox/include" "${GRDKLatest}/gameKit/Include" "${GXDKLatest}/gameKit/Include" NO_DEFAULT_PATH ) find_library(GAMEINPUT_LIB NAMES GameInput.lib PATHS "${GameDKXboxLatest}/xbox/lib/x64" "${GRDKLatest}/gameKit/Lib/amd64" "${GXDKLatest}/gameKit/Lib/amd64" NO_DEFAULT_PATH ) if(NOT (GAMEINPUT_H AND GAMEINPUT_LIB)) message(FATAL_ERROR "Ensure you have installed the Microsoft GDK with Xbox Extensions installed. See https://aka.ms/gdkx.") endif() # Output user-friendly status message for installed edition. if(${GAMEINPUT_H} MATCHES ".*/([0-9][0-9])([0-9][0-9])([0-9][0-9])/.*") set(_months "null" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December") list(GET _months ${CMAKE_MATCH_2} month) set(update "") if(${CMAKE_MATCH_3} GREATER 0) set(update " Update ${CMAKE_MATCH_3}") endif() message(STATUS "Found the Microsoft GDK with Xbox Extensions (${month} 20${CMAKE_MATCH_1}${update})") endif() file(INSTALL ${GAMEINPUT_H} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL ${GAMEINPUT_LIB} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL ${GAMEINPUT_LIB} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(VCPKG_POLICY_SKIP_COPYRIGHT_CHECK enabled) else() vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.GameInput/${VERSION}" FILENAME "gameinput.${VERSION}.zip" SHA512 7377a8cf9291318b99db4f94b6e2db6d8bd2a5afdac0b35bd38b3f51c75948a247e74dab155f2ba67d4ece78899e87c3e0e35510f1547bbc9b7c8202573a8ff6 ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) file(INSTALL "${PACKAGE_PATH}/native/include/gameinput.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${PACKAGE_PATH}/redist/GameInputRedist.msi" DESTINATION "${CURRENT_PACKAGES_DIR}/tools") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") if(VCPKG_TARGET_IS_MINGW) # "Thick" GameInput.lib is not compatible with MinGW file(COPY "${PACKAGE_PATH}/native/lib/x64/GameInput.cpp" DESTINATION "${CURRENT_BUILDTREES_DIR}/fixlib") configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in" "${CURRENT_BUILDTREES_DIR}/fixlib/CMakeLists.txt" COPYONLY) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/fixlib") vcpkg_cmake_install() set(LIB_NAME "libGameInput.a") else() file(INSTALL "${PACKAGE_PATH}/native/lib/${VCPKG_TARGET_ARCHITECTURE}/gameinput.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${PACKAGE_PATH}/native/lib/${VCPKG_TARGET_ARCHITECTURE}/gameinput.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(LIB_NAME "gameinput.lib") endif() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/gameinput-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/gameinput/usage ================================================ The GameInput package provides CMake targets: find_package(gameinput CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::GameInput) Note that the GameInputRedist.msi must be installed on the target system for Windows. ================================================ FILE: ports/gameinput/vcpkg.json ================================================ { "name": "gameinput", "version": "3.1.26100.6879", "description": "GameInput", "homepage": "https://aka.ms/gameinput", "license": null, "supports": "windows & x64 & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gamenetworkingsockets/fix-depend-protobuf.patch ================================================ diff --git a/cmake/GameNetworkingSocketsConfig.cmake.in b/cmake/GameNetworkingSocketsConfig.cmake.in index 1a27988..5076a6e 100644 --- a/cmake/GameNetworkingSocketsConfig.cmake.in +++ b/cmake/GameNetworkingSocketsConfig.cmake.in @@ -3,6 +3,7 @@ include(CMakeFindDependencyMacro) find_dependency(Threads) +find_dependency(Protobuf) if(@USE_CRYPTO@ STREQUAL "OpenSSL") find_dependency(OpenSSL) ================================================ FILE: ports/gamenetworkingsockets/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ValveSoftware/GameNetworkingSockets REF 505c697d0abef5da2ff3be35aa4ea3687597c3e9 # v1.4.1 SHA512 3e4b4da138f2b356169e6504aa899c9eca4fba5b5fcaed2a0ae8a2f5828976dd00af9f3262c75bd6d820300da87ebe32da152fecddc278a651f3b33eb59142df HEAD_REF master PATCHES fix-depend-protobuf.patch protobuf-6.patch ) set(CRYPTO_BACKEND OpenSSL) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DUSE_CRYPTO=${CRYPTO_BACKEND} -DUSE_CRYPTO25519=${CRYPTO_BACKEND} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/GameNetworkingSockets") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/gamenetworkingsockets/protobuf-6.patch ================================================ diff --git a/src/steamnetworkingsockets/steamnetworkingsockets_internal.h b/src/steamnetworkingsockets/steamnetworkingsockets_internal.h index d5b0a97..ecaa53d 100644 --- a/src/steamnetworkingsockets/steamnetworkingsockets_internal.h +++ b/src/steamnetworkingsockets/steamnetworkingsockets_internal.h @@ -674,7 +674,7 @@ extern bool BSteamNetworkingIdentityToProtobufInternal( const SteamNetworkingIde #define SteamNetworkingIdentityToProtobuf( identity, msg, field_identity_string, field_identity_legacy_binary, field_legacy_steam_id ) \ { SteamDatagramErrMsg identityToProtobufErrMsg; \ if ( !BSteamNetworkingIdentityToProtobuf( identity, msg, field_identity_string, field_identity_legacy_binary, field_legacy_steam_id, identityToProtobufErrMsg ) ) { \ - AssertMsg2( false, "Failed to serialize identity to %s message. %s", msg.GetTypeName().c_str(), identityToProtobufErrMsg ); \ + AssertMsg2( false, "Failed to serialize identity to %s message. %s", std::string(msg.GetTypeName()).c_str(), identityToProtobufErrMsg ); \ } \ } ================================================ FILE: ports/gamenetworkingsockets/vcpkg.json ================================================ { "name": "gamenetworkingsockets", "version": "1.4.1", "port-version": 2, "description": "GameNetworkingSockets is a basic transport layer for games.", "homepage": "https://github.com/ValveSoftware/GameNetworkingSockets", "license": "BSD-3-Clause", "supports": "!(static & windows) & !uwp & !(arm64 & windows)", "dependencies": [ "openssl", "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gamma/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.0) project (gamma) # dependent on libsndfile and portaudio find_package(SndFile CONFIG REQUIRED) find_path(PORTAUDIO_H portaudio.h) find_library(PORTAUDIO_LIB NAMES portaudio) set(SOURCEFILES src/arr.cpp src/AudioIO.cpp src/Conversion.cpp src/Domain.cpp src/DFT.cpp src/FFT_fftpack.cpp src/fftpack++1.cpp src/fftpack++2.cpp src/SoundFile.cpp src/Print.cpp src/Recorder.cpp src/scl.cpp src/Scheduler.cpp src/Timer.cpp src/SoundFile.cpp) include_directories(. Gamma ${CMAKE_INSTALL_FULL_INCLUDEDIR} ${PORTAUDIO_H}) add_library (gamma ${SOURCEFILES}) target_link_libraries(gamma PUBLIC SndFile::sndfile ${PORTAUDIO_LIB}) install( TARGETS gamma RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY Gamma DESTINATION include FILES_MATCHING PATTERN "*.h") endif() ================================================ FILE: ports/gamma/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(GAMMA_RELEASE_TAG "cc442ad0c5da369966cd937a96925c7b9a04e9e5") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "LancePutnam/Gamma" REF ${GAMMA_RELEASE_TAG} SHA512 431f17f053ca1c5ba0117b7ae7af8efae9df454593437de00dfea8ee04991b5701bee99d79deb074e60e397981a7fc1ce3476ec118d0f369e71e2cbaa696383d HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1 ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gamma/vcpkg.json ================================================ { "name": "gamma", "version-string": "gamma-2018-01-27", "port-version": 6, "description": "Gamma is a cross-platform, C++ library for doing generic synthesis and filtering of signals. It is oriented towards real-time sound and graphics applications, but is equally useful for non-real-time tasks. Gamma is designed to be \"light-footed\" in terms of memory and processing making it highly suitable for plug-in development or embedding in other C++ projects.", "homepage": "https://github.com/LancePutnam/Gamma", "license": "MIT", "dependencies": [ { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] }, "portaudio", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gapp/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KRM7/gapp REF "v${VERSION}" SHA512 de6e1d9e28590cc569c05fe3b2462245940fcca5c8ffbc2974758062f88d3165e527fdc273bb290eb1080dd899d78b540fc7d0f62d7236b289a63e138484f5f0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGAPP_BUILD_TESTS=OFF -DGAPP_USE_LTO=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gapp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc/gapp/api") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/gapp/usage ================================================ gapp provides CMake targets: find_package(gapp CONFIG REQUIRED) target_link_libraries(main PRIVATE gapp::gapp) ================================================ FILE: ports/gapp/vcpkg.json ================================================ { "name": "gapp", "version": "1.0.0", "description": "A genetic algorithms library in C++ for single- and multi-objective optimization.", "homepage": "https://github.com/KRM7/gapp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gasol/fix-install.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0cba691..51e47a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,3 +1,13 @@ file(GLOB GASol_SRC *.cpp) add_library(GASol STATIC ${GASol_SRC}) +file(GLOB GASol_INCLUDES *.h) + +install(FILES ${GASol_INCLUDES} DESTINATION include) + +install( + TARGETS GASol + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) \ No newline at end of file ================================================ FILE: ports/gasol/gasol.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a21f65..a4cede0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,11 +15,15 @@ set(CMAKE_CXX_EXTENSIONS OFF) # Find OpenMP. find_package(OpenMP) if (OPENMP_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fPIC -Wall -Wextra -Werror -pedantic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -fPIC -pedantic") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -Wall -Wextra -Werror -pedantic") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic") endif() +if(CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") +endif(CMAKE_COMPILER_IS_GNUCXX) + if (COV) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") endif() @@ -39,7 +43,7 @@ endif() add_subdirectory(src) # GASol test dir. -add_subdirectory(unittest) +# add_subdirectory(unittest) # GASol run dir. add_subdirectory(example) ================================================ FILE: ports/gasol/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PytLab/GASol REF 05af009bca2903c1cc491c9a6eed01bc3c936637 SHA512 a8546bf565a389b919dd1dd5b88b4985c1803cbb09fab0715d1b0abfda92a6bf3adea7e4b3329ad82a6f6892f1747a73a632687fd79fb77c937e7ba07c62268a HEAD_REF master PATCHES gasol.patch fix-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gasol/vcpkg.json ================================================ { "name": "gasol", "version-date": "2018-01-04", "port-version": 4, "description": "A general Genetic Algorithm Solver in C++", "homepage": "https://github.com/PytLab/GASol", "supports": "!uwp & !arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gaussianlib/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LukasBanana/GaussianLib REF da580773dc65eefb4369894587864384e5e0dd7e # 2024-11-03 SHA512 4092c9d69c15e4aca08bde140dde2e7fa919dad4cb4f9138871efd9d23cd3d672201bc65608b8a379186e5d64b14e10852323a4a243c5ccd9911b7b9589cd927 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/Gauss" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/gaussianlib/vcpkg.json ================================================ { "name": "gaussianlib", "version-date": "2024-11-03", "description": "Basic linear algebra C++ library for 2D and 3D applications", "homepage": "https://github.com/LukasBanana/GaussianLib" } ================================================ FILE: ports/gcem/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kthohr/gcem REF "v${VERSION}" SHA512 b9bbf16cfc3488a99ab371db36879bdde1699f0890db609278c03fb161cdffef0fbd34dbbf6004d6352e9e90c49e08e6b77357c4a424b0b5e174198b42dc049c HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gcem) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gcem/vcpkg.json ================================================ { "name": "gcem", "version": "1.18.0", "description": "A C++ compile-time math library using generalized constant expressions", "homepage": "https://www.kthohr.com/gcem.html", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gdal/cmake-project-include.cmake ================================================ if(GDAL_USE_KEA) find_package(Kealib CONFIG REQUIRED) add_library(KEA::KEA ALIAS Kealib::Kealib) set(GDAL_CHECK_PACKAGE_KEA_NAMES Kealib CACHE INTERNAL "vcpkg") set(GDAL_CHECK_PACKAGE_KEA_TARGETS Kealib::Kealib CACHE INTERNAL "vcpkg") endif() if(GDAL_USE_WEBP) find_package(WebP CONFIG REQUIRED) add_library(WEBP::WebP ALIAS WebP::webp) set(GDAL_CHECK_PACKAGE_WebP_NAMES WebP CACHE INTERNAL "vcpkg") set(GDAL_CHECK_PACKAGE_WebP_TARGETS WebP::webp CACHE INTERNAL "vcpkg") endif() if(GDAL_USE_ARROW) find_package(Arrow REQUIRED) set(ARROW_USE_STATIC_LIBRARIES "${ARROW_BUILD_STATIC}" CACHE INTERNAL "") set(GDAL_USE_ARROWDATASET "${ARROW_DATASET}" CACHE INTERNAL "") set(GDAL_USE_ARROWCOMPUTE "${ARROW_COMPUTE}" CACHE INTERNAL "") endif() if(GDAL_USE_SQLITE3) # CMake find module with vcpkg cmake wrapper find_package(SQLite3 REQUIRED) # .. and inject into GDAL's FindSQLite3.cmake set(SQLite3_LIBRARY "${SQLite3_LIBRARIES}") set(SQLite3_FOUND FALSE) set(SQLITE3_FOUND FALSE) endif() ================================================ FILE: ports/gdal/find-link-libraries.patch ================================================ diff --git a/cmake/modules/packages/FindFreeXL.cmake b/cmake/modules/packages/FindFreeXL.cmake index 6c86fb8..0634412 100644 --- a/cmake/modules/packages/FindFreeXL.cmake +++ b/cmake/modules/packages/FindFreeXL.cmake @@ -37,7 +37,15 @@ include(SelectLibraryConfigurations) find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_FREEXL QUIET freexl) + pkg_check_modules(PC_FREEXL QUIET IMPORTED_TARGET freexl) +endif() +if(PC_FREEXL_FOUND) + set(FREEXL_INCLUDE_DIR "${PC_FREEXL_INCLUDE_DIRS}" CACHE STRING "") + set(FREEXL_LIBRARY "${PC_FREEXL_LIBRARIES}" CACHE STRING "") + if(NOT TARGET FREEXL::freexl) + add_library(FREEXL::freexl INTERFACE IMPORTED) + set_target_properties(FREEXL::freexl PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_FREEXL) + endif() endif() find_path(FREEXL_INCLUDE_DIR diff --git a/cmake/modules/packages/FindOpenJPEG.cmake b/cmake/modules/packages/FindOpenJPEG.cmake index c697484..6e83222 100644 --- a/cmake/modules/packages/FindOpenJPEG.cmake +++ b/cmake/modules/packages/FindOpenJPEG.cmake @@ -32,9 +32,18 @@ endfunction() find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_OPENJPEG QUIET libopenjp2) + pkg_check_modules(PC_OPENJPEG QUIET IMPORTED_TARGET libopenjp2) set(OpenJPEG_VERSION_STRING ${PC_OPENJPEG_VERSION}) endif() +if(PC_OPENJPEG_FOUND) + set(OPENJPEG_INCLUDE_DIR "${PC_OPENJPEG_INCLUDE_DIRS}" CACHE STRING "") + set(OPENJPEG_LIBRARY "${PC_OPENJPEG_LIBRARIES}" CACHE STRING "") + if(NOT TARGET OPENJPEG::OpenJPEG) + add_library(OPENJPEG::OpenJPEG INTERFACE IMPORTED) + set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PC_OPENJPEG_INCLUDE_DIRS}") + set_target_properties(OPENJPEG::OpenJPEG PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_OPENJPEG) + endif() +endif() find_path(OPENJPEG_INCLUDE_DIR opj_config.h diff --git a/cmake/modules/packages/FindPoppler.cmake b/cmake/modules/packages/FindPoppler.cmake index 3807ec0..8059eb4 100644 --- a/cmake/modules/packages/FindPoppler.cmake +++ b/cmake/modules/packages/FindPoppler.cmake @@ -42,11 +42,19 @@ This module defines the following variables: find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_Poppler QUIET poppler) + pkg_check_modules(PC_Poppler QUIET IMPORTED_TARGET poppler) if(PC_Poppler_VERSION) set(Poppler_VERSION_STRING ${PC_Poppler_VERSION}) endif() endif() +if(PC_Poppler_FOUND) + find_path(Poppler_INCLUDE_DIR NAMES Object.h PATHS ${PC_Poppler_INCLUDE_DIRS} NO_DEFAULT_PATH) + set(Poppler_LIBRARY "${PC_Poppler_LIBRARIES}" CACHE STRING "") + if(NOT TARGET Poppler::Poppler) + add_library(Poppler::Poppler INTERFACE IMPORTED) + set_target_properties(Poppler::Poppler PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler) + endif() +endif() find_path(Poppler_INCLUDE_DIR NAMES "poppler-config.h" "cpp/poppler-version.h" "qt5/poppler-qt5.h" "qt4/poppler-qt4.h" "glib/poppler.h" HINTS ${PC_Poppler_INCLUDE_DIRS} @@ -77,6 +85,15 @@ endforeach() foreach(_comp IN LISTS Poppler_known_components) list(FIND Poppler_FIND_COMPONENTS "${_comp}" _nextcomp) if(_nextcomp GREATER -1) + pkg_check_modules(PC_Poppler_${_comp} QUIET IMPORTED_TARGET ${Poppler_${_comp}_pkg_config}) + if(PC_Poppler_${_comp}_FOUND) + set(Poppler_${_comp}_INCLUDE_DIR "${PC_Poppler_${_comp}_INCLUDE_DIRS}" CACHE STRING "") + set(Poppler_${_comp}_LIBRARY "${PC_Poppler_${_comp}_LIBRARIES}" CACHE STRING "") + if(NOT TARGET Poppler::Poppler_${_comp}) + add_library(Poppler::${_comp} INTERFACE IMPORTED) + set_target_properties(Poppler::${_comp} PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_Poppler_${_comp}) + endif() + endif() find_path(Poppler_${_comp}_INCLUDE_DIR NAMES ${Poppler_${_comp}_header} PATH_SUFFIXES poppler diff --git a/cmake/modules/packages/FindSPATIALITE.cmake b/cmake/modules/packages/FindSPATIALITE.cmake index 00612b0..6388719 100644 --- a/cmake/modules/packages/FindSPATIALITE.cmake +++ b/cmake/modules/packages/FindSPATIALITE.cmake @@ -38,9 +38,17 @@ endif() find_package(PkgConfig QUIET) if(PKG_CONFIG_FOUND) - pkg_check_modules(PC_SPATIALITE QUIET spatialite) + pkg_check_modules(PC_SPATIALITE QUIET IMPORTED_TARGET spatialite) set(SPATIALITE_VERSION_STRING ${PC_SPATIALITE_VERSION}) endif() +if(PC_SPATIALITE_FOUND) + set(SPATIALITE_INCLUDE_DIR "${PC_SPATIALITE_INCLUDE_DIRS}" CACHE STRING "") + set(SPATIALITE_LIBRARY "${PC_SPATIALITE_LIBRARIES}" CACHE STRING "") + if(NOT TARGET SPATIALITE::SPATIALITE) + add_library(SPATIALITE::SPATIALITE INTERFACE IMPORTED) + set_target_properties(SPATIALITE::SPATIALITE PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::PC_SPATIALITE) + endif() +endif() find_path(SPATIALITE_INCLUDE_DIR NAMES spatialite.h ================================================ FILE: ports/gdal/fix-gdal-target-interfaces.patch ================================================ diff --git a/cmake/helpers/GdalDriverHelper.cmake b/cmake/helpers/GdalDriverHelper.cmake index 838f0fd..380e20d 100644 --- a/cmake/helpers/GdalDriverHelper.cmake +++ b/cmake/helpers/GdalDriverHelper.cmake @@ -248,6 +248,10 @@ function(gdal_target_interfaces _TARGET) if (_res) target_compile_options(${_TARGET} PRIVATE ${_res}) endif () + get_property(_res TARGET ${_LIB} PROPERTY INTERFACE_LINK_LIBRARIES) + if (_res) + gdal_target_interfaces(${_TARGET} ${_res}) + endif () endif () endforeach () endfunction() ================================================ FILE: ports/gdal/iconv.diff ================================================ diff --git a/cmake/helpers/CheckDependentLibraries.cmake b/cmake/helpers/CheckDependentLibraries.cmake index ba99a00a67..8501773e7d 100644 --- a/cmake/helpers/CheckDependentLibraries.cmake +++ b/cmake/helpers/CheckDependentLibraries.cmake @@ -30,8 +30,7 @@ gdal_check_package(CURL "Enable drivers to use web API" CAN_DISABLE RECOMMENDED gdal_check_package(Iconv "Character set recoding (used in GDAL portability library)" CAN_DISABLE) if (Iconv_FOUND) - set(CMAKE_REQUIRED_INCLUDES ${Iconv_INCLUDE_DIR}) - set(CMAKE_REQUIRED_LIBRARIES ${Iconv_LIBRARY}) + set(CMAKE_REQUIRED_LIBRARIES Iconv::Iconv) set(ICONV_CONST_TEST_CODE "#include ================================================ FILE: ports/gdal/libkml.patch ================================================ diff --git a/cmake/modules/packages/FindLibKML.cmake b/cmake/modules/packages/FindLibKML.cmake index 9418247..589b83d 100644 --- a/cmake/modules/packages/FindLibKML.cmake +++ b/cmake/modules/packages/FindLibKML.cmake @@ -56,6 +56,8 @@ find_library(LIBKML_BASE_LIBRARY HINTS ${PC_LIBKML_LIBRARY_DIRS} ) mark_as_advanced(LIBKML_BASE_LIBRARY) +cmake_policy(PUSH) +cmake_policy(SET CMP0057 NEW) set(libkml_known_components DOM CONVENIENCE ENGINE REGIONATOR) foreach(_comp IN LISTS libkml_known_components) if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) @@ -99,21 +101,20 @@ find_package_handle_standard_args(LibKML if(LIBKML_FOUND) set(LIBKML_INCLUDE_DIRS "${LIBKML_INCLUDE_DIR}") set(LIBKML_LIBRARIES "${LIBKML_BASE_LIBRARY}") + find_package(LibKML CONFIG REQUIRED) if(NOT TARGET LIBKML::LibKML) - add_library(LIBKML::LibKML UNKNOWN IMPORTED) + add_library(LIBKML::LibKML INTERFACE IMPORTED) set_target_properties(LIBKML::LibKML PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${LIBKML_INCLUDE_DIR}" - IMPORTED_LINK_INTERFACE_LANGUAGES "C++" - IMPORTED_LOCATION "${LIBKML_BASE_LIBRARY}") + INTERFACE_LINK_LIBRARIES kmlbase) endif() foreach(_comp IN LISTS libkml_known_components) if(${_comp} IN_LIST LibKML_FIND_COMPONENTS) + string(TOLOWER ${_comp} _name) list(APPEND LIBKML_LIBRARIES "${LIBKML_${_comp}_LIBRARY}") if(NOT TARGET LIBKML::${_comp}) - add_library(LIBKML::${_comp} UNKNOWN IMPORTED) + add_library(LIBKML::${_comp} INTERFACE IMPORTED) set_target_properties(LIBKML::${_comp} PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C++" - IMPORTED_LOCATION "${LIBKML_${_comp}_LIBRARY}") + INTERFACE_LINK_LIBRARIES kml${_name}) endif() endif() endforeach() @@ -129,3 +130,4 @@ if(LIBKML_FOUND) endif() endforeach() endif() +cmake_policy(POP) ================================================ FILE: ports/gdal/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OSGeo/gdal REF "v${VERSION}" SHA512 a16036d4bb4c96bad75830be9a882329a7968621e24a3e28fae1908c2b2ea8e5779df98beaf2ad045f2671cb2688f6592450f9546903662c08cbf5c606a7ceaf HEAD_REF master PATCHES find-link-libraries.patch fix-gdal-target-interfaces.patch iconv.diff libkml.patch sqlite3.diff target-is-valid.patch ) file(REMOVE "${SOURCE_PATH}/cmake/modules/packages/FindIconv.cmake") # `vcpkg clean` stumbles over one subdir file(REMOVE_RECURSE "${SOURCE_PATH}/autotest") # Avoid abseil, no matter if vcpkg or system vcpkg_replace_string("${SOURCE_PATH}/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h" [[__has_include("absl/strings/string_view.h")]] "(0)") # Cf. cmake/helpers/CheckDependentLibraries.cmake # The default for all `GDAL_USE_` dependencies is `OFF`. # Here, we explicitly control dependencies provided via vpcpkg. # "core" is used for a dependency which must be enabled to avoid vendored lib. vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES arrow GDAL_USE_ARROW arrow-adbc GDAL_USE_ADBCDRIVERMANAGER archive GDAL_USE_ARCHIVE cfitsio GDAL_USE_CFITSIO curl GDAL_USE_CURL expat GDAL_USE_EXPAT freexl GDAL_USE_FREEXL geos GDAL_USE_GEOS core GDAL_USE_GEOTIFF gif GDAL_USE_GIF hdf5 GDAL_USE_HDF5 iconv GDAL_USE_ICONV jpeg GDAL_USE_JPEG core GDAL_USE_JSONC kea GDAL_USE_KEA lerc GDAL_USE_LERC libkml GDAL_USE_LIBKML lzma GDAL_USE_LIBLZMA libxml2 GDAL_USE_LIBXML2 mysql-libmariadb GDAL_USE_MYSQL netcdf GDAL_USE_NETCDF odbc GDAL_USE_ODBC openjpeg GDAL_USE_OPENJPEG openssl GDAL_USE_OPENSSL parquet GDAL_USE_PARQUET pcre2 GDAL_USE_PCRE2 png GDAL_USE_PNG poppler GDAL_USE_POPPLER postgresql GDAL_USE_POSTGRESQL qhull GDAL_USE_QHULL #core GDAL_USE_SHAPELIB # https://github.com/OSGeo/gdal/issues/5711, https://github.com/microsoft/vcpkg/issues/16041 core GDAL_USE_SHAPELIB_INTERNAL libspatialite GDAL_USE_SPATIALITE sqlite3 GDAL_USE_SQLITE3 core GDAL_USE_TIFF webp GDAL_USE_WEBP core GDAL_USE_ZLIB zstd GDAL_USE_ZSTD tools BUILD_APPS INVERTED_FEATURES libspatialite CMAKE_DISABLE_FIND_PACKAGE_SPATIALITE ) if(GDAL_USE_ICONV AND VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS -D_ICONV_SECOND_ARGUMENT_IS_NOT_CONST=ON) endif() # Compatibility with older Android versions https://github.com/OSGeo/gdal/pull/5941 if(VCPKG_TARGET_IS_ANDROID AND ANDROID_PLATFORM VERSION_LESS 24 AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) list(APPEND FEATURE_OPTIONS -DBUILD_WITHOUT_64BIT_OFFSET=ON) endif() string(REPLACE "dynamic" "" qhull_target "Qhull::qhull${VCPKG_LIBRARY_LINKAGE}_r") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # for host pkgconf in PATH ${FEATURE_OPTIONS} -DBUILD_DOCS=OFF -DBUILD_PYTHON_BINDINGS=OFF -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_CSharp=ON -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON -DGDAL_USE_INTERNAL_LIBS=OFF -DGDAL_USE_EXTERNAL_LIBS=OFF -DGDAL_BUILD_OPTIONAL_DRIVERS=ON -DOGR_BUILD_OPTIONAL_DRIVERS=ON -DFIND_PACKAGE2_KEA_ENABLED=OFF -DGDAL_CHECK_PACKAGE_MySQL_NAMES=unofficial-libmariadb -DGDAL_CHECK_PACKAGE_MySQL_TARGETS=unofficial::libmariadb -DMYSQL_LIBRARIES=unofficial::libmariadb -DGDAL_CHECK_PACKAGE_NetCDF_NAMES=netCDF -DGDAL_CHECK_PACKAGE_NetCDF_TARGETS=netCDF::netcdf -DGDAL_CHECK_PACKAGE_QHULL_NAMES=Qhull "-DGDAL_CHECK_PACKAGE_QHULL_TARGETS=${qhull_target}" "-DQHULL_LIBRARY=${qhull_target}" "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" OPTIONS_DEBUG -DBUILD_APPS=OFF MAYBE_UNUSED_VARIABLES QHULL_LIBRARY ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gdal) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/gdal/GDALConfig.cmake" "include(CMakeFindDependencyMacro)" "include(CMakeFindDependencyMacro) # gdal needs a pkg-config tool. A host dependency provides pkgconf. get_filename_component(vcpkg_host_prefix \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" ABSOLUTE) list(APPEND CMAKE_PROGRAM_PATH \"\${vcpkg_host_prefix}/tools/pkgconf\")" ) if (BUILD_APPS) vcpkg_copy_tools( TOOL_NAMES gdal gdal_contour gdal_create gdal_footprint gdal_grid gdal_rasterize gdal_translate gdal_viewshed gdaladdo gdalbuildvrt gdaldem gdalenhance gdalinfo gdallocationinfo gdalmanage gdalmdiminfo gdalmdimtranslate gdalsrsinfo gdaltindex gdaltransform gdalwarp gnmanalyse gnmmanage nearblack ogr2ogr ogrinfo ogrlineref ogrtindex sozip AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/gdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/gdal-config") file(GLOB bin_files "${CURRENT_PACKAGES_DIR}/bin/*") if(NOT bin_files) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/cpl_config.h" "#define GDAL_PREFIX \"${CURRENT_PACKAGES_DIR}\"" "") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT") ================================================ FILE: ports/gdal/sqlite3.diff ================================================ diff --git a/cmake/modules/packages/FindSQLite3.cmake b/cmake/modules/packages/FindSQLite3.cmake index 903465b3c9..5d3a067e50 100644 --- a/cmake/modules/packages/FindSQLite3.cmake +++ b/cmake/modules/packages/FindSQLite3.cmake @@ -77,7 +77,7 @@ if(SQLite3_INCLUDE_DIR AND SQLite3_LIBRARY) cmake_push_check_state(RESET) # check column metadata set(CMAKE_REQUIRED_INCLUDES ${SQLite3_INCLUDE_DIR}) - if( ${SQLite3_LIBRARY} MATCHES "libsqlite3.a") + if(0) if(PC_SQLITE3_STATIC_LDFLAGS) set(CMAKE_REQUIRED_LIBRARIES ${PC_SQLITE3_STATIC_LDFLAGS}) else() @@ -111,15 +111,10 @@ if(SQLite3_INCLUDE_DIR AND SQLite3_LIBRARY) endif() else() set(CMAKE_REQUIRED_LIBRARIES ${SQLite3_LIBRARY}) + list(APPEND CMAKE_REQUIRED_LIBRARIES ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) + list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} "") endif() - # Trick to force CMake to re-run if SQLite3_LIBRARY changes - # Useful in development situations when switching/refreshing the library - set_property( - DIRECTORY - APPEND - PROPERTY CMAKE_CONFIGURE_DEPENDS "${SQLite3_LIBRARY}" - ) # Invalidate cached variables if SQLite3_LIBRARY changes file(TIMESTAMP "${SQLite3_LIBRARY}" SQLite3_LIBRARY_TIMESTAMP) if( SQLite3_LIBRARY_TIMESTAMP_OLD_VAL AND @@ -179,6 +174,7 @@ if(SQLite3_FOUND) INTERFACE_INCLUDE_DIRECTORIES "${SQLite3_INCLUDE_DIRS}" IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${SQLite3_LIBRARY}") + endif() if(SQLite3_HAS_COLUMN_METADATA) set_property(TARGET SQLite::SQLite3 APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "SQLite3_HAS_COLUMN_METADATA") @@ -187,5 +183,9 @@ if(SQLite3_FOUND) set_property(TARGET SQLite::SQLite3 APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "SQLite3_HAS_RTREE") endif() + get_target_property(definitions SQLite::SQLite3 INTERFACE_COMPILE_DEFINITIONS) + if(definitions) + list(REMOVE_DUPLICATES definitions) + set_target_properties(SQLite::SQLite3 PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${definitions}") endif() endif() ================================================ FILE: ports/gdal/target-is-valid.patch ================================================ diff --git a/cmake/helpers/CheckDependentLibrariesCommon.cmake b/cmake/helpers/CheckDependentLibrariesCommon.cmake index ebb3538..a4a6d69 100644 --- a/cmake/helpers/CheckDependentLibrariesCommon.cmake +++ b/cmake/helpers/CheckDependentLibrariesCommon.cmake @@ -41,6 +41,7 @@ endif() # https://github.com/OSGeo/gdal/issues/5324 function (gdal_check_target_is_valid target res_var) get_target_property(_interface_include_directories ${target} "INTERFACE_INCLUDE_DIRECTORIES") + get_target_property(_type ${target} "TYPE") if(_interface_include_directories) foreach(_dir IN LISTS _interface_include_directories) if(NOT EXISTS "${_dir}") @@ -54,7 +55,7 @@ function (gdal_check_target_is_valid target res_var) # property, but a GeoTIFF_INCLUDE_DIRS variable. set_target_properties(${target} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GeoTIFF_INCLUDE_DIRS}") - else() + elseif(NOT _type STREQUAL "INTERFACE" AND _type STREQUAL "ALIAS") message(WARNING "Target ${target} has no INTERFACE_INCLUDE_DIRECTORIES property. Ignoring that target.") set(${res_var} FALSE PARENT_SCOPE) return() ================================================ FILE: ports/gdal/usage ================================================ The package GDAL provides CMake targets: find_package(GDAL CONFIG REQUIRED) target_link_libraries(main PRIVATE GDAL::GDAL) ================================================ FILE: ports/gdal/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") list(APPEND ARGS "CONFIG") # The current port version should satisfy GDAL 3.0 ... 3.5 list(GET ARGS 1 vcpkg_gdal_maybe_version) if(vcpkg_gdal_maybe_version MATCHES "(^3\$|^3[.][0-5])") list(REMOVE_AT ARGS "1") endif() unset(vcpkg_gdal_maybe_version) _find_package(${ARGS} CONFIG) if(GDAL_FOUND) get_filename_component(vcpkg_gdal_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) set(GDAL_INCLUDE_DIR "${vcpkg_gdal_prefix}/include" CACHE INTERNAL "") set(GDAL_INCLUDE_DIRS "${GDAL_INCLUDE_DIR}") set(GDAL_LIBRARY GDAL::GDAL CACHE INTERNAL "") set(GDAL_LIBRARIES "${GDAL_LIBRARY}") unset(vcpkg_gdal_prefix) endif() cmake_policy(POP) ================================================ FILE: ports/gdal/vcpkg.json ================================================ { "name": "gdal", "version-semver": "3.12.2", "port-version": 1, "description": "The Geographic Data Abstraction Library for reading and writing geospatial raster and vector data", "homepage": "https://gdal.org", "license": null, "supports": "!uwp", "dependencies": [ "json-c", "libgeotiff", { "name": "pkgconf", "host": true }, { "name": "proj", "default-features": false, "features": [ "tiff" ] }, { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ], "default-features": [ "gif", { "name": "hdf5", "platform": "!uwp" }, "iconv", "libkml", { "name": "libspatialite", "platform": "!uwp" }, "libxml2", "lzma", { "name": "netcdf", "platform": "!android & !ios & !(windows & arm64) & !uwp" }, "openjpeg", "openssl", "pcre2", { "name": "postgresql", "platform": "!uwp" }, "recommended-features", "webp", "zstd" ], "features": { "archive": { "description": "Enable libarchive support", "dependencies": [ { "name": "libarchive", "default-features": false } ] }, "arrow": { "description": "Enable arrow support", "dependencies": [ { "name": "arrow", "default-features": false } ] }, "arrow-adbc": { "description": "Arrow ADBC support", "dependencies": [ "arrow-adbc" ] }, "aws-ec2-windows": { "description": "Optimized detection of AWS EC2 Windows hosts", "dependencies": [ "atl" ] }, "cfitsio": { "description": "Enable cfitsio support", "supports": "!(android & arm32)", "dependencies": [ "cfitsio" ] }, "curl": { "description": "Enable CURL network support", "dependencies": [ { "name": "curl", "default-features": false } ] }, "expat": { "description": "Use EXPAT library", "dependencies": [ "expat" ] }, "freexl": { "description": "Enable FREEXL support", "dependencies": [ "freexl" ] }, "geos": { "description": "Enable GEOS support", "dependencies": [ "geos" ] }, "gif": { "description": "Enable GIF support", "dependencies": [ "giflib" ] }, "hdf5": { "description": "Enable HDF5 support", "dependencies": [ { "name": "hdf5", "default-features": false, "features": [ "cpp" ] } ] }, "iconv": { "description": "Use iconv library", "dependencies": [ "libiconv" ] }, "jpeg": { "description": "Use JPEG compression library", "dependencies": [ "libjpeg-turbo" ] }, "kea": { "description": "Enable KEA driver", "dependencies": [ { "name": "gdal", "default-features": false, "features": [ "hdf5" ] }, "kealib" ] }, "lerc": { "description": "Enable LERC support", "dependencies": [ "lerc" ] }, "libkml": { "description": "Enable the LibKML driver", "dependencies": [ "libkml" ] }, "libspatialite": { "description": "Create or update SpatiaLite databases using libspatialite", "dependencies": [ { "name": "libspatialite", "default-features": false } ] }, "libxml2": { "description": "Use LibXML2 library", "dependencies": [ { "name": "libxml2", "default-features": false } ] }, "lzma": { "description": "Use LZMA library", "dependencies": [ "liblzma" ] }, "mysql-libmariadb": { "description": "Add mysql support using libmariadb", "dependencies": [ "libmariadb" ] }, "netcdf": { "description": "Enable NetCDF support", "dependencies": [ { "name": "netcdf-c", "default-features": false } ] }, "openjpeg": { "description": "Use OpenJPEG library", "dependencies": [ "openjpeg" ] }, "openssl": { "description": "Use OpenSSL library", "dependencies": [ "openssl" ] }, "parquet": { "description": "Enable parquet reading support. Combine with arrow[compute] or arrow[dataset] for additional capabilities.", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "parquet" ] }, { "name": "gdal", "default-features": false, "features": [ "arrow" ] } ] }, "pcre2": { "description": "Enable PCRE2 support for sqlite3", "dependencies": [ "pcre2" ] }, "png": { "description": "Use PNG compression library", "dependencies": [ "libpng" ] }, "poppler": { "description": "Enable PDF reading support via poppler", "dependencies": [ { "name": "poppler", "default-features": false, "features": [ "private-api" ] } ] }, "postgresql": { "description": "Enable PostgreSQL support", "dependencies": [ "libpq" ] }, "qhull": { "description": "Use QHULL library", "dependencies": [ "qhull" ] }, "recommended-features": { "description": "Features that are explicity marked as recommended by GDAL.", "dependencies": [ { "name": "gdal", "default-features": false, "features": [ "curl", "expat", "geos", "jpeg", "lerc", "png", "qhull", "sqlite3" ] } ] }, "sqlite3": { "description": "Enable SQLite3 support", "dependencies": [ { "name": "sqlite3", "features": [ "rtree" ] } ] }, "tools": { "description": "Builds gdal and ogr executables" }, "webp": { "description": "Enable WEBP support", "dependencies": [ "libwebp" ] }, "zstd": { "description": "Use ZSTD library", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/gdbm/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gdbm/gdbm-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/gdbm/gdbm-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gdbm/gdbm-${VERSION}.tar.gz" FILENAME "gdbm-${VERSION}.tar.gz" SHA512 401ff8c707079f21da1ac1d6f4714a87f224b6f41943078487dc891be49f51fd1ac7a32fd599aae0fad185f2c6ba7432616d328fd6aaab068eb54db9562ff7fa ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_list(SET options) if("libgdbm-compat" IN_LIST FEATURES) list(APPEND options "--enable-libgdbm-compat=yes") endif() if("readline" IN_LIST FEATURES) list(APPEND options "--with-readline") else() list(APPEND options "--without-readline") endif() if("memory-mapped-io" IN_LIST FEATURES) list(APPEND options "--enable-memory-mapped-io") else() list(APPEND options "--disable-memory-mapped-io") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF COPY_SOURCE OPTIONS ${options} ) vcpkg_make_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/gdbm/info" "${CURRENT_PACKAGES_DIR}/share/gdbm/locale" "${CURRENT_PACKAGES_DIR}/share/gdbm/man1" "${CURRENT_PACKAGES_DIR}/share/gdbm/man3" ) ================================================ FILE: ports/gdbm/vcpkg.json ================================================ { "name": "gdbm", "version": "1.24", "port-version": 1, "description": "GDBM is a library of database functions that use extensible hashing and works similar to the standard UNIX dbm.", "homepage": "https://www.gnu.org.ua/software/gdbm/gdbm.html", "license": "GPL-3.0-only", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "features": { "libgdbm-compat": { "description": "Build and install libgdbm_compat, a compatibility layer which provides UNIX-like dbm and ndbm interfaces." }, "memory-mapped-io": { "description": "Enable the use of mmap(2) for I/O optimizations." }, "readline": { "description": "Enable GNU Readline support.", "dependencies": [ "readline" ] } } } ================================================ FILE: ports/gdcm/copyright.diff ================================================ diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt index 4cdc999..5971705 100644 --- a/Utilities/CMakeLists.txt +++ b/Utilities/CMakeLists.txt @@ -12,8 +12,8 @@ if(NOT GDCM_USE_SYSTEM_LJPEG) endif() # Do expat -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmexpat/COPYING) if(NOT GDCM_USE_SYSTEM_EXPAT) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmexpat/COPYING) set(EXPAT_NAMESPACE "GDCMEXPAT") set(EXPAT_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(EXPAT_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -22,8 +22,8 @@ if(NOT GDCM_USE_SYSTEM_EXPAT) endif() # Do openjpeg (jpeg2000 implementation) -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmopenjpeg/LICENSE) if(NOT GDCM_USE_SYSTEM_OPENJPEG) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmopenjpeg/LICENSE) set(OPENJPEG_NAMESPACE "GDCMOPENJPEG") set(OPENJPEG_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(OPENJPEG_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -34,9 +34,9 @@ if(NOT GDCM_USE_SYSTEM_OPENJPEG) endif() # Do jpegls (JPEG-LS aka near lossless implementation) -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmcharls/License.txt) if(GDCM_USE_JPEGLS) if(NOT GDCM_USE_SYSTEM_CHARLS) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmcharls/License.txt) set(CHARLS_NAMESPACE "GDCMCHARLS") set(CHARLS_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(CHARLS_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -47,9 +47,9 @@ endif() endif() # Do md5 -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmmd5/COPYING) if(GDCM_BUILD_TESTING) if(NOT GDCM_USE_SYSTEM_MD5) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmmd5/COPYING) set(MD5_NAMESPACE "GDCMMD5") set(MD5_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(MD5_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -59,8 +59,8 @@ endif() endif() # Do zlib -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmzlib/COPYING) if(NOT GDCM_USE_SYSTEM_ZLIB) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmzlib/COPYING) set(ZLIB_NAMESPACE "GDCMZLIB") set(ZLIB_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(ZLIB_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -70,8 +70,8 @@ endif() # Do getopt if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/getopt) - APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/getopt/COPYING) if(WIN32 AND NOT CYGWIN AND NOT MINGW) + APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/getopt/COPYING) set(GETOPT_NAMESPACE "GDCMGETOPT") set(GETOPT_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(GETOPT_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -81,9 +81,9 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/getopt) endif() # you could be running mingw32 on linux in which case you do NOT want the gdcmuuid lib -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmuuid/COPYING) if(NOT WIN32 AND NOT MINGW) if(NOT GDCM_USE_SYSTEM_UUID) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/gdcmuuid/COPYING) set(UUID_NAMESPACE "GDCMUUID") set(UUID_INSTALL_NO_LIBRARIES ${GDCM_INSTALL_NO_LIBRARIES}) set(UUID_INSTALL_BIN_DIR ${GDCM_INSTALL_BIN_DIR}) @@ -92,8 +92,8 @@ if(NOT WIN32 AND NOT MINGW) endif() endif() -APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/pvrg/COPYING) if(GDCM_USE_PVRG) +APPEND_COPYRIGHT(${CMAKE_CURRENT_SOURCE_DIR}/pvrg/COPYING) if(NOT GDCM_USE_SYSTEM_PVRG) add_subdirectory(pvrg) endif() ================================================ FILE: ports/gdcm/no-absolute-paths.diff ================================================ diff --git a/CMake/ExportConfiguration/GDCMConfig.cmake.in b/CMake/ExportConfiguration/GDCMConfig.cmake.in index d43d565..dd2023d 100644 --- a/CMake/ExportConfiguration/GDCMConfig.cmake.in +++ b/CMake/ExportConfiguration/GDCMConfig.cmake.in @@ -46,8 +46,6 @@ if(EXISTS ${SELF_DIR}/GDCMTargets.cmake) else() if(EXISTS ${SELF_DIR}/GDCMExports.cmake) # This is a build tree - set( GDCM_INCLUDE_DIRS "@GDCM_INCLUDE_PATH@") - set(GDCM_LIBRARY_DIRS "@GDCM_LIBRARY_DIR@") include(${SELF_DIR}/GDCMExports.cmake) diff --git a/Source/Common/gdcmConfigure.h.in b/Source/Common/gdcmConfigure.h.in index 4a5d68f..276c0f4 100644 --- a/Source/Common/gdcmConfigure.h.in +++ b/Source/Common/gdcmConfigure.h.in @@ -37,9 +37,9 @@ /* Useful in particular for loadshared where the full path * to the lib is needed */ -#define GDCM_SOURCE_DIR "@GDCM_SOURCE_DIR@" -#define GDCM_EXECUTABLE_OUTPUT_PATH "@EXECUTABLE_OUTPUT_PATH@" -#define GDCM_LIBRARY_OUTPUT_PATH "@LIBRARY_OUTPUT_PATH@" +#define GDCM_SOURCE_DIR "" +#define GDCM_EXECUTABLE_OUTPUT_PATH "" +#define GDCM_LIBRARY_OUTPUT_PATH "" #cmakedefine GDCM_BUILD_TESTING @@ -81,7 +81,7 @@ /* only cerr, for instance 'invalid file' will be allowed */ #cmakedefine GDCM_DEBUG -#define GDCM_CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" +#define GDCM_CMAKE_INSTALL_PREFIX "" #define GDCM_INSTALL_INCLUDE_DIR "@GDCM_INSTALL_INCLUDE_DIR@" #define GDCM_INSTALL_DATA_DIR "@GDCM_INSTALL_DATA_DIR@" ================================================ FILE: ports/gdcm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO malaterre/GDCM REF "v${VERSION}" SHA512 95758f99053d46d285f92107fd5e62a8749bef9274847c2959eef02c52282a34498543a282922b2b8c89b92910bffb4158d90cb2a1b4145bbac0ddca34cace9e HEAD_REF master PATCHES copyright.diff no-absolute-paths.diff prefer-config.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGDCM_BUILD_DOCBOOK_MANPAGES=OFF -DGDCM_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DGDCM_BUILD_TESTING=OFF -DGDCM_INSTALL_DATA_DIR=share/${PORT} -DGDCM_INSTALL_DOC_DIR=share/${PORT}/doc -DGDCM_INSTALL_INCLUDE_DIR=include -DGDCM_INSTALL_PACKAGE_DIR=share/${PORT} -DGDCM_USE_SYSTEM_EXPAT=ON -DGDCM_USE_SYSTEM_OPENJPEG=ON -DGDCM_USE_SYSTEM_ZLIB=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Copyright.txt") ================================================ FILE: ports/gdcm/prefer-config.diff ================================================ diff --git a/CMake/ExportConfiguration/GDCMConfig.cmake.in b/CMake/ExportConfiguration/GDCMConfig.cmake.in index 169cb82..c77cf1f 100644 --- a/CMake/ExportConfiguration/GDCMConfig.cmake.in +++ b/CMake/ExportConfiguration/GDCMConfig.cmake.in @@ -1,3 +1,7 @@ +include(CMakeFindDependencyMacro) +find_dependency(expat CONFIG) +find_dependency(OpenJPEG CONFIG) +find_dependency(ZLIB) #----------------------------------------------------------------------------- # # GDCMConfig.cmake - CMake configuration file for external projects. diff --git a/CMakeLists.txt b/CMakeLists.txt index 38c65d1..b0cb77b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -360,8 +360,8 @@ else() endif() if(GDCM_USE_SYSTEM_OPENJPEG) - find_package(OpenJPEG 2.0.0 REQUIRED) - set(GDCM_OPENJPEG_LIBRARIES ${OPENJPEG_LIBRARIES}) + find_package(OpenJPEG CONFIG REQUIRED) + set(GDCM_OPENJPEG_LIBRARIES $) else() set(GDCM_OPENJPEG_LIBRARIES gdcmopenjp2) endif() @@ -401,7 +401,7 @@ if(GDCM_USE_SYSTEM_ZLIB) # If user say so, then this is a requirement ! find_package(ZLIB REQUIRED) include_directories(${ZLIB_INCLUDE_DIR}) - set(GDCM_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}) + set(GDCM_ZLIB_LIBRARIES ZLIB::ZLIB) else() set(GDCM_ZLIB_LIBRARIES "gdcmzlib") endif() @@ -420,8 +420,8 @@ endif() if(GDCM_USE_SYSTEM_EXPAT) # If user say so, then this is a requirement ! - find_package(EXPAT REQUIRED) - set(GDCM_EXPAT_LIBRARIES ${EXPAT_LIBRARIES}) + find_package(expat CONFIG REQUIRED) + set(GDCM_EXPAT_LIBRARIES expat::expat) else() set(GDCM_EXPAT_LIBRARIES "gdcmexpat") endif() ================================================ FILE: ports/gdcm/vcpkg.json ================================================ { "name": "gdcm", "version": "3.2.2", "description": "Grassroots DICOM library", "homepage": "https://github.com/malaterre/GDCM", "license": null, "supports": "!uwp", "dependencies": [ "expat", { "name": "libiconv", "platform": "!windows" }, "openjpeg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/gdk-pixbuf/fix-static-deps.patch ================================================ diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build index d7aa127b48..c313dc272d 100644 --- a/gdk-pixbuf/meson.build +++ b/gdk-pixbuf/meson.build @@ -214,6 +214,7 @@ gdkpixbuf = library('gdk_pixbuf-2.0', dependencies: [ gdk_pixbuf_deps, included_loaders_deps, + loaders_deps ], install: true) ================================================ FILE: ports/gdk-pixbuf/fix_build_error_windows.patch ================================================ --- a/meson.build +++ b/meson.build @@ -90,8 +90,14 @@ gdk_pixbuf_conf.set('HAVE_ROUND', 1) endif -if cc.has_function('lrint', dependencies: mathlib_dep) - gdk_pixbuf_conf.set('HAVE_LRINT', 1) +if cc.get_id() == 'msvc' + if cc.has_function('lrint', dependencies: mathlib_dep, args: '-Oi-') + gdk_pixbuf_conf.set('HAVE_LRINT', 1) + endif +else + if cc.has_function('lrint', dependencies: mathlib_dep) + gdk_pixbuf_conf.set('HAVE_LRINT', 1) + endif endif intl_dep = cc.find_library('intl', required: false) ================================================ FILE: ports/gdk-pixbuf/loaders-cache.patch ================================================ diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build index 54ff9dd..27f8512 100644 --- a/gdk-pixbuf/meson.build +++ b/gdk-pixbuf/meson.build @@ -348,7 +348,14 @@ foreach bin: gdkpixbuf_bin set_variable(bin_name.underscorify(), bin) endforeach -if not meson.is_cross_build() +if dynamic_loaders.length() == 0 + # skip tool invocation + cmake = find_program('cmake', required : true) + loaders_cache = custom_target('loaders.cache', output: 'loaders.cache', capture: true, + command: [ cmake, '-E', 'echo', '# No dynamic loaders enabled at build time' ], + build_by_default: true) + loaders_dep = declare_dependency(sources: [ loaders_cache ]) +elif not meson.is_cross_build() # The 'loaders.cache' used for testing, so we don't accidentally # load the installed cache; we always build it by default loaders_cache = custom_target('loaders.cache', ================================================ FILE: ports/gdk-pixbuf/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 ae9fcc9b4e8fd10a4c9bf34c3a755205dae7bbfe13fbc93ec4e63323dad10cc862df6a9e2e2e63c84ffa01c5e120a3be06ac9fad2a7c5e58d3dc6ba14d1766e8 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix_build_error_windows.patch loaders-cache.patch use-libtiff-4-pkgconfig.patch fix-static-deps.patch ) if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() if("png" IN_LIST FEATURES) list(APPEND OPTIONS -Dpng=enabled) else() list(APPEND OPTIONS -Dpng=disabled) endif() if("tiff" IN_LIST FEATURES) list(APPEND OPTIONS -Dtiff=enabled) else() list(APPEND OPTIONS -Dtiff=disabled) endif() if("jpeg" IN_LIST FEATURES) list(APPEND OPTIONS -Djpeg=enabled) else() list(APPEND OPTIONS -Djpeg=disabled) endif() if("others" IN_LIST FEATURES) list(APPEND OPTIONS -Dothers=enabled) else() list(APPEND OPTIONS -Dothers=disabled) endif() # Whether to enable application bundle relocation support. # Limitation cf. gdk-pixbuf/gdk-pixbuf-io.c if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -Drelocatable=true) endif() if(VCPKG_TARGET_IS_WINDOWS) #list(APPEND OPTIONS -Dnative_windows_loaders=true) # Use Windows system components to handle BMP, EMF, GIF, ICO, JPEG, TIFF and WMF images, overriding jpeg and tiff. To build this into gdk-pixbuf, pass in windows" with the other loaders to build in or use "all" with the builtin_loaders option endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dman=false # Whether to generate man pages (requires xlstproc) -Dgtk_doc=false # Whether to generate the API reference (requires GTK-Doc) -Ddocs=false -Dtests=false -Dinstalled_tests=false -Dgio_sniffing=false # Perform file type detection using GIO (Unused on MacOS and Windows) -Dbuiltin_loaders=all # since it is unclear where loadable plugins should be located; # Comma-separated list of loaders to build into gdk-pixbuf, or "none", or "all" to build all buildable loaders into gdk-pixbuf ${OPTIONS} OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources' glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gdk-pixbuf-2.0.pc" [[${bindir}]] "\${prefix}/tools/${PORT}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gdk-pixbuf-2.0.pc" [[${bindir}]] "\${prefix}/../tools/${PORT}") endif() vcpkg_fixup_pkgconfig() set(TOOL_NAMES gdk-pixbuf-csource gdk-pixbuf-pixdata gdk-pixbuf-query-loaders) # gdk-pixbuf-thumbnailer is not compiled for cross-compiling # vcpkg-meson cross-build configuration differs from VCPKG_CROSSCOMPILING if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/gdk-pixbuf-thumbnailer${VCPKG_TARGET_EXECUTABLE_SUFFIX}") list(APPEND TOOL_NAMES gdk-pixbuf-thumbnailer) endif() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gdk-pixbuf/use-libtiff-4-pkgconfig.patch ================================================ diff --git a/meson.build b/meson.build index b5280f3..4927ed5 100644 --- a/meson.build +++ b/meson.build @@ -333,7 +333,7 @@ tiff_opt = get_option('tiff') if not tiff_opt.disabled() and not native_windows_loaders # We currently don't have a fallback subproject, but this handles error # reporting if tiff_opt is enabled. - tiff_dep = dependency(is_msvc_like ? 'tiff' : 'libtiff-4', required: tiff_opt) + tiff_dep = dependency(false ? 'tiff' : 'libtiff-4', required: tiff_opt) if tiff_dep.found() enabled_loaders += 'tiff' ================================================ FILE: ports/gdk-pixbuf/vcpkg.json ================================================ { "name": "gdk-pixbuf", "version": "2.42.12", "port-version": 6, "description": "Image loading library.", "homepage": "https://gitlab.gnome.org/GNOME/gdk-pixbuf", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ "jpeg", "png", "tiff" ], "features": { "introspection": { "description": "Build with introspection", "supports": "!static", "dependencies": [ "gobject-introspection" ] }, "jpeg": { "description": "Enable JPEG loader (requires libjpeg)", "dependencies": [ "libjpeg-turbo" ] }, "others": { "description": "Enable other loaders, which are weakly maintained (ani, bmp, icns, ico, pnm, qtif, tga, xbm, xpm)" }, "png": { "description": "Enable PNG loader (requires libpng)", "dependencies": [ "libpng" ] }, "tiff": { "description": "Enable TIFF loader (requires libtiff)", "dependencies": [ { "name": "tiff", "default-features": false } ] } } } ================================================ FILE: ports/gegl/disable_tests.patch ================================================ diff --git a/meson.build b/meson.build --- a/meson.build +++ b/meson.build @@ -600,9 +600,8 @@ subdir('bin') subdir('tools') subdir('operations') subdir('examples') -subdir('tests') subdir('perf') subdir('po') subdir('docs') ================================================ FILE: ports/gegl/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS https://download.gimp.org/pub/gegl/${VERSION_MAJOR_MINOR}/gegl-${VERSION}.tar.xz FILENAME "gegl-${VERSION}.tar.xz" SHA512 ed1f809aaea8768b1eff2a6adcf66b3ef7c11e03d410ef8952051822017f9a6bcee0e29dd32708dd6937d49416c6db55cd8d34458619022ea750311253899ae9 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable_tests.patch remove_execinfo_support.patch remove-consistency-check.patch ) if("introspection" IN_LIST FEATURES) list(APPEND feature_options "-Dintrospection=true") vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND feature_options "-Dintrospection=false") endif() if("cairo" IN_LIST FEATURES) list(APPEND feature_options "-Dcairo=enabled") else() list(APPEND feature_options "-Dcairo=disabled") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${feature_options} -Ddocs=false -Dgdk-pixbuf=disabled -Dgexiv2=disabled -Dgraphviz=disabled -Djasper=disabled -Dlcms=disabled -Dlensfun=disabled -Dlibav=disabled -Dlibraw=disabled -Dlibrsvg=disabled -Dlibspiro=disabled -Dlibtiff=disabled -Dlibv4l=disabled -Dlibv4l2=disabled -Dlua=disabled -Dmrg=disabled -Dmaxflow=disabled -Dopenexr=disabled -Dopenmp=disabled -Dpango=disabled -Dpangocairo=disabled -Dpoppler=disabled -Dpygobject=disabled -Dsdl2=disabled -Dumfpack=disabled -Dwebp=disabled ADDITIONAL_BINARIES "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/gegl/remove-consistency-check.patch ================================================ diff --git a/meson.build b/meson.build --- a/meson.build +++ b/meson.build @@ -664,9 +664,9 @@ subdir('po') subdir('docs') -if not os_win32 and not os_osx +if false # Verify .def files for Windows. # Ironically we only check this on non-Windows platform, since the # script expects .so libraries, and I'm not sure that the `nm` tool is # available on Windows. ================================================ FILE: ports/gegl/remove_execinfo_support.patch ================================================ diff --git a/meson.build b/meson.build index bf43d32ca..6798c43a4 100644 --- a/meson.build +++ b/meson.build @@ -270,7 +270,7 @@ w3m = find_program('w3m', # Required Dependencies config.set('HAVE_UNISTD_H', cc.has_header('unistd.h')) -config.set('HAVE_EXECINFO_H', cc.has_header('execinfo.h')) +config.set('HAVE_EXECINFO_H', target_machine.system() != 'android' and cc.has_header('execinfo.h')) config.set('HAVE_FSYNC', cc.has_function('fsync')) config.set('HAVE_MALLOC_TRIM', cc.has_function('malloc_trim')) config.set('HAVE_STRPTIME', cc.has_function('strptime')) ================================================ FILE: ports/gegl/vcpkg.json ================================================ { "name": "gegl", "version": "0.4.66", "port-version": 1, "description": "Generic Graphical Library.", "homepage": "https://gegl.org/", "license": "LGPL-3.0-or-later", "supports": "!windows | mingw", "dependencies": [ "babl", "json-glib", "libjpeg-turbo", "libpng", { "name": "vcpkg-tool-meson", "host": true } ], "features": { "cairo": { "description": "Add cairo support", "dependencies": [ { "name": "cairo", "default-features": false } ] }, "introspection": { "description": "Enable introspection", "supports": "!static", "dependencies": [ { "name": "babl", "features": [ "introspection" ] }, "gobject-introspection" ] } } } ================================================ FILE: ports/gemmlowp/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/gemmlowp REF daf630d3d0c439dbe22229838a5ba1bc5f82908d SHA512 8d1a422bbf2495dcec1c30147bc96d0a2ca494220a45050937f84567c3352cd8916f07d1bbab68c8d36ae7ce3e9b8bee8b518900e21967a3185bf7ff25812785 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/contrib" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/gemmlowp/vcpkg.json ================================================ { "name": "gemmlowp", "version-date": "2021-09-28", "description": "Low-precision matrix multiplication", "homepage": "https://github.com/google/gemmlowp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/genann/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(genann) set(SRC_FILES genann.c ) add_library(genann ${SRC_FILES}) target_include_directories(genann PUBLIC $ $ ) # Install targets install(TARGETS genann RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) # Install headers if (INSTALL_HEADERS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/genann.h DESTINATION include/genann) endif() ================================================ FILE: ports/genann/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO codeplea/genann REF 122243f9449b3e33a4e11450b70c10576d4559d7 SHA512 d70cb8bc678d80ed3e790866f6060850cf9309eefe90d3ca4d77e28538639a927333d49c4d1af3e81123b8e88224f2f51b74ec41ca22639a276359568652ed15 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_RELEASE -DINSTALL_HEADERS=ON OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/genann/vcpkg.json ================================================ { "name": "genann", "version-date": "2019-07-10", "port-version": 3, "description": "Genann is a minimal, well-tested library for training and using feedforward artificial neural networks (ANN) in C.", "homepage": "https://github.com/codeplea/genann", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/geogram/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/geogram/fix-vcpkg-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6934fca..c2f855d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ set(GEOGRAM_INSTALL_PKGCONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig CACHE PATH " set(GEOGRAM_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/modules CACHE PATH "CMake file install destination") -set(VORPALINE_INCLUDE_SUBPATH geogram${VORPALINE_VERSION_MAJOR}) +set(VORPALINE_INCLUDE_SUBPATH ./) # Determine the current Build-OS (Build-platform without the compiler info) string(REGEX REPLACE "-[^-]+$" "" VORPALINE_OS ${VORPALINE_PLATFORM}) @@ -130,6 +130,7 @@ endif() add_subdirectory(src/lib/third_party) if(GEOGRAM_WITH_GRAPHICS) +find_package(GLFW3 REQUIRED) add_subdirectory(src/lib/geogram_gfx) endif() @@ -160,7 +161,44 @@ file(REMOVE ${CMAKE_BINARY_DIR}/doc/LICENSE.txt) # FindGeogram.cmake -install(FILES cmake/FindGeogram.cmake DESTINATION ${GEOGRAM_INSTALL_CMAKE_DIR} COMPONENT devkit) +# This installation is not suitable for vcpkg +# install(FILES cmake/FindGeogram.cmake DESTINATION lib/cmake/modules COMPONENT devkit) + +set(config_install_dir "share/geogram") +set(include_install_dir "include") +set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") + +# Configuration +set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") +set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") +set(targets_export_name "${PROJECT_NAME}Targets") +set(namespace "${PROJECT_NAME}::") + +# Include module with fuction 'write_basic_package_version_file' +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + "${version_config}" COMPATIBILITY SameMajorVersion VERSION ${VORPALINE_VERSION} +) + +configure_package_config_file( + "cmake/Config.cmake.in" + "${project_config}" + INSTALL_DESTINATION "${config_install_dir}" +) + +# Config +install( + FILES "${project_config}" "${version_config}" + DESTINATION "${config_install_dir}" +) + +# Config +install( + EXPORT "${targets_export_name}" + NAMESPACE "${namespace}" + DESTINATION "${config_install_dir}" +) # Configure CPack diff --git a/src/lib/geogram/CMakeLists.txt b/src/lib/geogram/CMakeLists.txt index d50b3d2..41ec3e4 100644 --- a/src/lib/geogram/CMakeLists.txt +++ b/src/lib/geogram/CMakeLists.txt @@ -69,7 +69,7 @@ endif() # path for targets that depend on geogram. # See: https://cmake.org/cmake/help/v3.3/command/target_include_directories.html # https://stackoverflow.com/questions/26243169/cmake-target-include-directories-meaning-of-scope -target_include_directories(geogram PUBLIC ${PROJECT_SOURCE_DIR}/src/lib) +target_include_directories(geogram PUBLIC $) if(ANDROID) target_include_directories(geogram PRIVATE @@ -78,6 +78,9 @@ ${ANDROID_NDK}/sources/android/native_app_glue message(STATUS "building for Android") endif() +if(WIN32 AND VORPALINE_BUILD_DYNAMIC) + target_compile_definitions(geogram PUBLIC GEO_DYNAMIC_LIBS) +endif() set_target_properties(geogram PROPERTIES VERSION ${VORPALINE_VERSION} @@ -101,7 +104,14 @@ target_link_libraries(geogram ${GEOGRAMPLUS_LIBS}) endif() # Install the library -install_devkit_targets(geogram) +install( + TARGETS geogram + EXPORT "${PROJECT_NAME}Targets" + LIBRARY DESTINATION "lib" + ARCHIVE DESTINATION "lib" + RUNTIME DESTINATION "bin" + INCLUDES DESTINATION "include" +) # Install include files for the standard devkit install( diff --git a/src/lib/geogram_gfx/CMakeLists.txt b/src/lib/geogram_gfx/CMakeLists.txt index 391e607..13b6bcb 100644 --- a/src/lib/geogram_gfx/CMakeLists.txt +++ b/src/lib/geogram_gfx/CMakeLists.txt @@ -52,14 +52,21 @@ target_link_libraries(geogram_gfx ${OPENGL_LIBRARIES}) endif() # Install the library -install_devkit_targets(geogram_gfx) +install( + TARGETS geogram_gfx + EXPORT "${PROJECT_NAME}Targets" + LIBRARY DESTINATION "lib" + ARCHIVE DESTINATION "lib" + RUNTIME DESTINATION "bin" + INCLUDES DESTINATION "include" +) # Install include files for the standard devkit install( DIRECTORY . DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx COMPONENT devkit -FILES_MATCHING PATTERN *.h +FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file ) # Install include files for the full devkit @@ -67,7 +74,7 @@ install( DIRECTORY . DESTINATION include/${VORPALINE_INCLUDE_SUBPATH}/geogram_gfx COMPONENT devkit-full -FILES_MATCHING PATTERN *.h +FILES_MATCHING PATTERN *.h PATTERN *.xpm # xpm is the colrbar file ) install( diff --git a/src/lib/third_party/numerics/CMakeLists.txt b/src/lib/third_party/numerics/CMakeLists.txt index 5faf2fa..33c9bdd 100644 --- a/src/lib/third_party/numerics/CMakeLists.txt +++ b/src/lib/third_party/numerics/CMakeLists.txt @@ -14,10 +14,11 @@ endif() include_directories(${GEOGRAM_SOURCE_DIR}/src/lib/third_party/numerics/INCLUDE) +set(LAPACK_lapack_WORKS TRUE) +find_package(BLAS REQUIRED) +find_package(LAPACK REQUIRED) aux_source_directories(SOURCES "Source Files" .) aux_source_directories(SOURCES "Source Files\\LIBF2C" LIBF2C) -aux_source_directories(SOURCES "Source Files\\CBLAS" CBLAS) -aux_source_directories(SOURCES "Source Files\\CLAPACK" CLAPACK) aux_source_directories(SOURCES "Source Files\\SUPERLU" SUPERLU) aux_source_directories(SOURCES "Source Files\\ARPACK" ARPACK) aux_source_directories(SOURCES "Source Files\\ARPACK_UTIL" ARPACK_UTIL) @@ -28,6 +29,7 @@ list(REMOVE_ITEM SOURCES "LIBF2C/system_.c") add_library(geogram_num_3rdparty ${SOURCES}) +target_link_libraries(geogram_num_3rdparty ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}) if(UNIX) target_link_libraries(geogram_num_3rdparty m) endif() diff --git a/src/lib/third_party/numerics/LIBF2C/libf2c_getarg_.c b/src/lib/third_party/numerics/LIBF2C/libf2c_getarg_.c index 2b69a1e..a4b4c55 100644 --- a/src/lib/third_party/numerics/LIBF2C/libf2c_getarg_.c +++ b/src/lib/third_party/numerics/LIBF2C/libf2c_getarg_.c @@ -17,20 +17,21 @@ VOID getarg_(n, s, ls) ftnint *n; char *s; ftnlen ls; void getarg_(ftnint *n, char *s, ftnlen ls) #endif { - extern int xargc; - extern char **xargv; - Const char *t; - int i; + // extern int xargc; + // extern char **xargv; + // Const char *t; + // int i; - if(*n>=0 && *n=0 && *n") target_include_directories(MSPCoordinateConversionService INTERFACE $) if(WIN32) if (BUILD_SHARED_LIBS) add_definitions( -DMSP_CCS_EXPORTS -D_USRDLL ) endif() add_definitions(-D_CRT_SECURE_NO_WARNINGS) else() find_package(Threads REQUIRED) target_link_libraries(MSPdtcc PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) endif() install( TARGETS MSPdtcc EXPORT geotrans RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( TARGETS MSPCoordinateConversionService EXPORT geotrans RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(DIRECTORY "${CMAKE_SOURCE_DIR}/CCS/src/" DESTINATION "include" CONFIGURATIONS Release FILES_MATCHING PATTERN "*.h" ) install(EXPORT geotrans NAMESPACE geotrans:: DESTINATION share/geotrans CONFIGURATIONS Release) ================================================ FILE: ports/geotrans/geotrans-config.in.cmake ================================================ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT WIN32) include(CMakeFindDependencyMacro) find_dependency(Threads) endif() include(${CMAKE_CURRENT_LIST_DIR}/geotrans.cmake) ================================================ FILE: ports/geotrans/portfile.cmake ================================================ set(VCPKG_LIBRARY_LINKAGE "dynamic") # We specify the Linux URL, but the only difference between the Windows/Linux packages are the included libraries # which we re-build anyway. There is no source only package provided or it would be preferred (and smaller). vcpkg_download_distfile(ARCHIVE URLS "https://earth-info.nga.mil/php/download.php?file=wgs-mastertgz" FILENAME "geotrans-3.10-master-501325b.tgz" SHA512 501e25b80bd92a9651a6879ee42768abff9871cec3c79d457b0e74940e6fd3a477d98568dea0c4a4da2aa251ada11e17ab76edf5bcbdbde68e0e5cfe1813491f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() configure_file( "${CMAKE_CURRENT_LIST_DIR}/geotrans-config.in.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/geotrans-config.cmake" @ONLY ) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}" @ONLY) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/GEOTRANS3/docs/MSP_Geotrans_Terms_Of_Use.txt") # Install the geo model data file(COPY "${SOURCE_PATH}/data" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/geotrans/usage ================================================ The package geotrans provides CMake targets: find_package(geotrans CONFIG REQUIRED) target_link_libraries(main PRIVATE geotrans::MSPdtcc geotrans::MSPCoordinateConversionService) The geotrans library depends on being able to read it's model data so you'll need to set an environment variable to let geotrans know where the models are installed: export MSPCCS_DATA=/share/@PORT@/data ================================================ FILE: ports/geotrans/vcpkg.json ================================================ { "name": "geotrans", "version": "3.10", "description": "GEOTRANS is an application that allows you to convert geographic coordinates among a wide variety of coordinate systems, map projections, grids, and datums. GEOTRANS runs in Microsoft Windows and LINUX environments.", "homepage": "https://earth-info.nga.mil/GandG/update/index.php?action=home", "license": null, "supports": "!uwp & !osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/getdns/disable-docs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9170be7..def3758 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1036,9 +1036,9 @@ configure_file(src/version.c.in version.c) set(version ${PACKAGE_VERSION}) set(date ${API_VERSION}) -file(GLOB mans doc/*.3.in) -file(MAKE_DIRECTORY man3) -foreach (man ${mans}) +#file(GLOB mans doc/*.3.in) +#file(MAKE_DIRECTORY man3) +if (FALSE) get_filename_component(out ${man} NAME_WE) configure_file(${man} man3/${out}.3 @ONLY) @@ -1058,7 +1058,7 @@ foreach (man ${mans}) configure_file(${man} man3/${alt}.3 @ONLY) endif () endforeach() -endforeach() +endif() set(prefix ${CMAKE_INSTALL_PREFIX}) cmake_path(APPEND libdir_for_pc_file "\${prefix}" "${CMAKE_INSTALL_LIBDIR}") @@ -1098,10 +1098,10 @@ if (BUILD_GETDNS_SERVER_MON) endif () install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/getdns DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man3 DESTINATION ${CMAKE_INSTALL_MANDIR}) +#install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man3 DESTINATION ${CMAKE_INSTALL_MANDIR}) -install(FILES AUTHORS ChangeLog COPYING LICENSE NEWS README.md DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(FILES spec/index.html DESTINATION ${CMAKE_INSTALL_DOCDIR}/spec) +#install(FILES AUTHORS ChangeLog COPYING LICENSE NEWS README.md DESTINATION ${CMAKE_INSTALL_DOCDIR}) +#install(FILES spec/index.html DESTINATION ${CMAKE_INSTALL_DOCDIR}/spec) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/getdns.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(CODE "message(\"\ ================================================ FILE: ports/getdns/fix-include.patch ================================================ diff --git a/src/gldns/parse.c b/src/gldns/parse.c index 367fa80..79fa527 100644 --- a/src/gldns/parse.c +++ b/src/gldns/parse.c @@ -13,7 +13,7 @@ #include "gldns/gbuffer.h" #include -#include +#include gldns_lookup_table gldns_directive_types[] = { { GLDNS_DIR_TTL, "$TTL" }, diff --git a/src/gldns/parseutil.c b/src/gldns/parseutil.c index 293496a..bcd8e6f 100644 --- a/src/gldns/parseutil.c +++ b/src/gldns/parseutil.c @@ -14,8 +14,12 @@ #include "config.h" #include "gldns/parseutil.h" +#ifdef HAVE_SYS_TIME_H #include +#endif +#ifdef HAVE_TIME_H #include +#endif #include gldns_lookup_table * ================================================ FILE: ports/getdns/fix-libuv-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c5b711e..6bd9ee2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -872,7 +872,7 @@ endif () # libuv extension. if (USE_LIBUV) - find_package(Libuv) + find_package(libuv CONFIG REQUIRED) if (Libuv_FOUND) # Check for new-style callbacks. try_compile(HAVE_NEW_UV_TIMER_CB @@ -894,8 +894,7 @@ if (USE_LIBUV) set_property(TARGET uv_objects PROPERTY C_STANDARD 11) if (ENABLE_STATIC) add_library(getdns_ext_uv STATIC $) - target_include_directories(getdns_ext_uv PRIVATE Libuv::Libuv) - target_link_libraries(getdns_ext_uv PUBLIC getdns Libuv::Libuv) + target_link_libraries(getdns_ext_uv PUBLIC getdns $,libuv::uv_a,libuv::uv>) if (Libunbound_FOUND) target_link_libraries(getdns_ext_uv PUBLIC Libunbound::Libunbound) endif () @@ -903,8 +902,7 @@ if (USE_LIBUV) endif () if (ENABLE_SHARED) add_library(getdns_ext_uv_shared SHARED $) - target_include_directories(getdns_ext_uv_shared PRIVATE Libuv::Libuv) - target_link_libraries(getdns_ext_uv_shared PUBLIC getdns_shared Libuv::Libuv) + target_link_libraries(getdns_ext_uv_shared PUBLIC getdns $,libuv::uv_a,libuv::uv>) if (Libunbound_FOUND) target_link_libraries(getdns_ext_uv_shared PUBLIC Libunbound::Libunbound) endif () ================================================ FILE: ports/getdns/portfile.cmake ================================================ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" GETDNS_ENABLE_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" GETDNS_ENABLE_SHARED) vcpkg_download_distfile(ARCHIVE URLS "https://getdnsapi.net/dist/getdns-${VERSION}.tar.gz" FILENAME "getdns-${VERSION}.tar.gz" SHA512 d5725a24378b6fe0018daefdaba5565d2d4d51109ef66609fc34270a0a69accb95f5f895d0cdfc5caca51d2ec586db126f367439f05aed12507395af26739e2f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable-docs.patch fix-include.patch fix-libuv-deps.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}") set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libevent BUILD_LIBEVENT2 libuv BUILD_LIBUV ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_GETDNS_QUERY=OFF -DBUILD_GETDNS_SERVER_MON=OFF -DENABLE_STATIC=${GETDNS_ENABLE_STATIC} -DENABLE_SHARED=${GETDNS_ENABLE_SHARED} ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DENABLE_STUB_ONLY=ON #if setting ON, it will require libunbound to build on Unix platform. ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/getdns/vcpkg.json ================================================ { "name": "getdns", "version": "1.7.3", "description": "GetDNS is a modern asynchronous DNS API", "homepage": "https://getdnsapi.net/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "libidn2", "openssl", { "name": "vcpkg-cmake", "host": true } ], "features": { "libevent": { "description": "libevent event loop integration", "dependencies": [ "libevent" ] }, "libuv": { "description": "libuv event loop integration", "dependencies": [ "libuv" ] } } } ================================================ FILE: ports/getopt/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "No implementation of getopt is currently available for UWP targets") endif() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/getopt/vcpkg.json ================================================ { "name": "getopt", "version": "0", "port-version": 3, "description": "The getopt and getopt_long functions automate some of the chore involved in parsing typical unix command line options.", "supports": "!uwp", "dependencies": [ { "name": "getopt-win32", "platform": "windows & !mingw" } ] } ================================================ FILE: ports/getopt-win32/portfile.cmake ================================================ set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS "enabled") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ludvikjerabek/getopt-win REF v${VERSION} SHA512 9ca4e7ed7a1fe7bad9d9ef91b5e65c18a716f4c999818e3dd4f644fc861e1ae12e64255c27f12c0df3b1e44757d3d36c068682dd86d184c6f957b2cabda7bbf3 HEAD_REF getopt_glibc_2.42_port PATCHES static-output-name.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/getopt") if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/getopt.h" "defined(STATIC_GETOPT)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Legacy polyfill file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-getopt-win32-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-getopt-win32") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/getopt-win32/static-output-name.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1267606..1e4946f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ if(BUILD_STATIC_LIBS) $ ) set_target_properties(getopt_static PROPERTIES - OUTPUT_NAME getopt_static + OUTPUT_NAME getopt PUBLIC_HEADER ${GETOPT_HDR} VERSION ${PROJECT_VERSION} ) ================================================ FILE: ports/getopt-win32/unofficial-getopt-win32-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/../getopt-win32/usage" usage) message(WARNING "find_package(unofficial-getopt-win32) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(getopt CONFIG) if(NOT TARGET unofficial::getopt-win32::getopt) if(TARGET getopt::getopt_static) add_library(unofficial::getopt-win32::getopt ALIAS getopt::getopt_static) else() add_library(unofficial::getopt-win32::getopt ALIAS getopt::getopt_shared) endif() endif() ================================================ FILE: ports/getopt-win32/usage ================================================ getopt-win32 provides CMake targets: find_package(getopt CONFIG REQUIRED) target_link_libraries(main PRIVATE $,getopt::getopt_shared,getopt::getopt_static>) ================================================ FILE: ports/getopt-win32/vcpkg.json ================================================ { "name": "getopt-win32", "version": "2.42.0", "description": "Full getopt port for unicode and multibyte windows applications", "homepage": "https://github.com/ludvikjerabek/getopt-win/", "license": "LGPL-3.0-only", "supports": "windows & !mingw", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gettext/0001-xgettext-Fix-some-test-failures-on-MSVC.patch ================================================ From e5cf655767413f38e8a308f6e0440d7d283ef841 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 12 Mar 2025 00:55:16 +0100 Subject: [PATCH] xgettext: Fix some test failures on MSVC. * gettext-tools/src/locating-rule.c: Include always. (HAVE_DIR): Remove macro. (locating_rule_list_add_from_directory): Don't test HAVE_DIR. * gettext-tools/src/msginit.c: Include always. (HAVE_DIR): Remove macro. (find_pot): Don't test HAVE_DIR. --- gettext-tools/src/locating-rule.c | 12 +----------- gettext-tools/src/msginit.c | 12 +----------- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/gettext-tools/src/locating-rule.c b/gettext-tools/src/locating-rule.c index c6f4b1b..d38bb15 100644 --- a/gettext-tools/src/locating-rule.c +++ b/gettext-tools/src/locating-rule.c @@ -27,15 +27,7 @@ #include "concat-filename.h" #include "c-strcase.h" -#if HAVE_DIRENT_H -# include -#endif - -#if HAVE_DIRENT_H -# define HAVE_DIR 1 -#else -# define HAVE_DIR 0 -#endif +#include #include "dir-list.h" #include @@ -411,7 +403,6 @@ bool locating_rule_list_add_from_directory (struct locating_rule_list_ty *rules, const char *directory) { -#if HAVE_DIR DIR *dirp; dirp = opendir (directory); @@ -445,7 +436,6 @@ locating_rule_list_add_from_directory (struct locating_rule_list_ty *rules, if (closedir (dirp)) return false; -#endif return true; } diff --git a/gettext-tools/src/msginit.c b/gettext-tools/src/msginit.c index 9ff75e7..736c671 100644 --- a/gettext-tools/src/msginit.c +++ b/gettext-tools/src/msginit.c @@ -39,15 +39,7 @@ #include -#if HAVE_DIRENT_H -# include -#endif - -#if HAVE_DIRENT_H -# define HAVE_DIR 1 -#else -# define HAVE_DIR 0 -#endif +#include #include @@ -491,7 +483,6 @@ or by email to <%s>.\n"), static const char * find_pot () { -#if HAVE_DIR DIR *dirp; char *found = NULL; @@ -534,7 +525,6 @@ Please specify the input .pot file through the --input option.\n"))); if (found != NULL) return found; } -#endif multiline_error (xstrdup (""), xstrdup (_("\ -- 2.34.1 ================================================ FILE: ports/gettext/0003-Fix-win-unicode-paths.patch ================================================ diff --git a/gettext-runtime/intl/loadmsgcat.c b/gettext-runtime/intl/loadmsgcat.c index d5a5fe1..5c47f48 100644 --- a/gettext-runtime/intl/loadmsgcat.c +++ b/gettext-runtime/intl/loadmsgcat.c @@ -390,9 +390,56 @@ char *alloca (); # define munmap(addr, len) __munmap (addr, len) #elif defined _WIN32 && !defined __CYGWIN__ /* On native Windows, don't require linking with '-loldnames'. */ -# define open _open +# define open(name, flags) _open_utf8_windows_wrapper(name, flags) # define read _read # define close _close + +/* Provide wrapper of "open" for Windows that supports UTF-8 filenames. */ +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# ifndef WIN32_EXTRA_LEAN +# define WIN32_EXTRA_LEAN +# endif +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include // For: MultiByteToWideChar +# include +# include + +int _open_utf8_windows_wrapper( + const char *filename, + int flags +) +{ + int wstr_len = -1; + wchar_t* pUtf16FileName = NULL; + int fh = -1; + + // on Windows, convert the filename from UTF-8 to UTF-16 + wstr_len = MultiByteToWideChar(CP_UTF8, 0, filename, -1, NULL, 0); + if (wstr_len <= 0) + { + // MultiByteToWideChar failed + errno = ENOENT; + return -1; + } + pUtf16FileName = malloc(wstr_len * sizeof(wchar_t)); + if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, pUtf16FileName, wstr_len) == 0) + { + // MultiByteToWideChar failed + free(pUtf16FileName); + errno = ENOENT; + return -1; + } + + // and call _wopen + fh = _wopen(pUtf16FileName, flags); + + free(pUtf16FileName); + return fh; +} #endif /* For those losing systems which don't have `alloca' we have to add ================================================ FILE: ports/gettext/assume-modern-darwin.patch ================================================ diff --git a/gettext-runtime/configure b/gettext-runtime/configure index a984774..f436a19 100755 --- a/gettext-runtime/configure +++ b/gettext-runtime/configure @@ -35448,7 +35448,7 @@ fi haiku*) use_elf_origin_trick=yes ;; # On Mac OS X 10.4 or newer, use Mac OS X tools. See # . - darwin | darwin[1-7].*) ;; + darwin[1-7].*) ;; darwin*) use_macos_tools=yes ;; esac if test $is_noop = yes; then diff --git a/gettext-tools/configure b/gettext-tools/configure index ee64b69..2dde1f5 100755 --- a/gettext-tools/configure +++ b/gettext-tools/configure @@ -48606,7 +48606,7 @@ fi haiku*) use_elf_origin_trick=yes ;; # On Mac OS X 10.4 or newer, use Mac OS X tools. See # . - darwin | darwin[1-7].*) ;; + darwin[1-7].*) ;; darwin*) use_macos_tools=yes ;; esac if test $is_noop = yes; then ================================================ FILE: ports/gettext/bashify.cmake ================================================ # By using bash builtin expansion, we can avoid # expensively spawing three sub-processes (bash, echo, sed). foreach(dir IN LISTS SOURCE_DIRS) file(READ "${dir}/configure" script) string(REGEX REPLACE "(\n[a-zA-Z0-9_]*)='`[\$]ECHO \"[\$]([^\"]*)\" \\| [\$]SED \"[\$]delay_single_quote_subst\"`'" [[\1='${\2//\\'/\\'\\\\\\'\\'}']] script "${script}" ) string(REPLACE [[ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in]] [[ case "\${!var}" in]] script "${script}" ) file(WRITE "${dir}/configure" "${script}") endforeach() ================================================ FILE: ports/gettext/config-step-order.patch ================================================ diff --git a/gettext-runtime/configure b/gettext-runtime/configure index 2a376c6..a984774 100755 --- a/gettext-runtime/configure +++ b/gettext-runtime/configure @@ -22346,6 +22346,12 @@ printf "%s\n" "$acl_cv_libdirstems" >&6; } +### Configuration step reordering +### Similar to AM_GNU_GETTEXT(external,...), cf. gettext-runtime/m4/gettext.m4 +### Pull (include_next and) iconv lookup before actual GNU gettext lookup. +for configuration_step in gettext-independent gettext-main ; do +case "$configuration_step" in +gettext-main) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 printf %s "checking for CFPreferencesCopyAppValue... " >&6; } if test ${gt_cv_func_CFPreferencesCopyAppValue+y} @@ -23288,6 +23294,9 @@ printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h +### Configuration step reordering +;; +gettext-independent) # Check whether --enable-cross-guesses was given. if test ${enable_cross_guesses+y} then : @@ -30464,6 +30473,10 @@ printf "%s\n" "$gl_cv_next_iconv_h" >&6; } gl_next_as_first_directive=$gl_cv_next_iconv_h fi NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive +### Configuration step reordering +;; +esac +done diff --git a/gettext-tools/configure b/gettext-tools/configure index 5ce6cf1..ee64b69 100755 --- a/gettext-tools/configure +++ b/gettext-tools/configure @@ -25735,6 +25735,12 @@ printf "%s\n" "$acl_cv_libdirstems" >&6; } +### Configuration step reordering +### Similar to AM_GNU_GETTEXT(external,...), cf. gettext-runtime/m4/gettext.m4 +### Pull (include_next and) iconv lookup before actual GNU gettext lookup. +for configuration_step in gettext-independent gettext-main; do +case "$configuration_step" in +gettext-main) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 printf %s "checking for CFPreferencesCopyAppValue... " >&6; } if test ${gt_cv_func_CFPreferencesCopyAppValue+y} @@ -27588,6 +27594,9 @@ fi +### Configuration step reordering +;; +gettext-independent) # Check whether --enable-cross-guesses was given. if test ${enable_cross_guesses+y} then : @@ -38458,6 +38467,10 @@ printf "%s\n" "$gl_cv_next_iconv_h" >&6; } gl_next_as_first_directive=$gl_cv_next_iconv_h fi NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive +### Configuration step reordering +;; +esac +done ================================================ FILE: ports/gettext/env.patch ================================================ --- a/gettext-tools/gnulib-lib/localtime.c.old 2024-02-21 11:44:25.000000000 +0100 +++ b/gettext-tools/gnulib-lib/localtime.c 2026-02-05 14:32:39.392247000 +0100 @@ -63,13 +63,19 @@ rpl_localtime (const time_t *tp) char **env = _environ; wchar_t **wenv = _wenviron; if (env != NULL) - for (char *s = env; *s != NULL; s++) - if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=') - s[0] = '$'; + for (char **ep = env; *ep != NULL; ep++) + { + char *s = *ep; + if (s[0] == 'T' && s[1] == 'Z' && s[2] == '=') + s[0] = '$'; + } if (wenv != NULL) - for (wchar_t *ws = wenv; *ws != NULL; ws++) - if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=') - ws[0] = L'$'; + for (wchar_t **wep = wenv; *wep != NULL; wep++) + { + wchar_t *ws = *wep; + if (ws[0] == L'T' && ws[1] == L'Z' && ws[2] == L'=') + ws[0] = L'$'; + } } #endif ================================================ FILE: ports/gettext/install-autopoint.cmake ================================================ function(install_autopoint) # variables for configuring autopoint.in set(PACKAGE "gettext-tools") set(ARCHIVE_VERSION "${VERSION}") set(ARCHIVE_FORMAT "dirgz") set(bindir [[${prefix}/tools/gettext/bin]]) set(datadir [[${datarootdir}]]) set(exec_prefix [[${prefix}]]) set(PATH_SEPARATOR ":") set(RELOCATABLE "yes") file(STRINGS "${SOURCE_PATH}/gettext-tools/configure" VERSIONS_FROM_CONFIGURE REGEX "^ *(ARCHIVE_VERSION|VERSION)=.*$" ) foreach(LINE IN LISTS VERSIONS_FROM_CONFIGURE) if(LINE MATCHES "^ *(ARCHIVE_VERSION|VERSION)='?([0-9.]+)'?$") set(${CMAKE_MATCH_1} "${CMAKE_MATCH_2}") endif() endforeach() set(WORKING_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") file(MAKE_DIRECTORY "${WORKING_DIR}") # autopoint script configure_file("${SOURCE_PATH}/gettext-tools/misc/autopoint.in" "${WORKING_DIR}/autopoint" @ONLY) # data tarball if(CMAKE_HOST_WIN32) vcpkg_acquire_msys(MSYS_ROOT PACKAGES gzip) vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") endif() file(COPY "${SOURCE_PATH}/gettext-tools/misc/archive.dir.tar" DESTINATION "${WORKING_DIR}") vcpkg_execute_required_process( COMMAND gzip -f archive.dir.tar WORKING_DIRECTORY "${WORKING_DIR}" LOGNAME gzip-${TARGET_TRIPLET} ) # installation file(INSTALL "${WORKING_DIR}/autopoint" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" FILE_PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) file(INSTALL "${WORKING_DIR}/archive.dir.tar.gz" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gettext/gettext") endfunction() ================================================ FILE: ports/gettext/parallel-gettext-tools.patch ================================================ diff --git a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in index 5d60b99..d86232d 100644 --- a/gettext-tools/src/Makefile.in +++ b/gettext-tools/src/Makefile.in @@ -3625,7 +3625,10 @@ USEJAVA_no = 0 # Version information according to Woe32 conventions. @WOE32_TRUE@WOE32_LDADD = gettext.res -all: $(BUILT_SOURCES) +@USE_INSTALLED_LIBTEXTSTYLE_FALSE@all: textstyle.h +all: + $(MAKE) $(AM_MAKEFLAGS) all-parallel +all-parallel: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: @@ -5045,7 +5048,7 @@ uninstall-tcl: # namely those which build textstyle.h, po-gram-gen.c, cldr-plural.c. # See . # So, turn off parallel execution in this Makefile. -.NOTPARALLEL: +# .NOTPARALLEL: # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. ================================================ FILE: ports/gettext/portfile.cmake ================================================ # This port is just to provide gettext tools and build data, not libs. # The "core" feature depends on port gettext-libintl which provides libintl. # The "core" feature also installs enough for running autoreconf. # The actual tools are only enabled by opt-in features. # These features are typically used as a host dependency. # For fast builds in particular on Windows, the following choices are made: # - only release build type # - namespacing disabled (windows only) # - configuration cache # - using preinstalled gettext-libintl # - skipping some subdirs set(VCPKG_BUILD_TYPE release) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/gettext/gettext-${VERSION}.tar.gz" "https://ftp.gnu.org/pub/gnu/gettext/gettext-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gettext/gettext-${VERSION}.tar.gz" FILENAME "gettext-${VERSION}.tar.gz" SHA512 d8b22d7fba10052a2045f477f0a5b684d932513bdb3b295c22fbd9dfc2a9d8fccd9aefd90692136c62897149aa2f7d1145ce6618aa1f0be787cb88eba5bc09be ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES assume-modern-darwin.patch uwp.patch rel_path.patch subdirs.patch parallel-gettext-tools.patch config-step-order.patch 0001-xgettext-Fix-some-test-failures-on-MSVC.patch env.patch # https://cgit.git.savannah.gnu.org/cgit/gnulib.git/commit/lib/localtime.c?id=92cdf62b56462b914193c7770440e505a37c2526 ) set(subdirs "") if("runtime-tools" IN_LIST FEATURES) string(APPEND subdirs " gettext-runtime") endif() if("tools" IN_LIST FEATURES) string(APPEND subdirs " libtextstyle gettext-tools") endif() if(subdirs) set(ENV{VCPKG_GETTEXT_SUBDIRS} "${subdirs}") vcpkg_find_acquire_program(BISON) cmake_path(GET BISON FILENAME BISON_NAME) cmake_path(GET BISON PARENT_PATH BISON_PATH) vcpkg_add_to_path("${BISON_PATH}") if(VCPKG_HOST_IS_WINDOWS) message(STATUS "Modifying build system for less forks") set(ENV{CONFIG_SHELL} "/usr/bin/bash") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" "-DSOURCE_DIRS=.;gettext-runtime;libtextstyle;gettext-tools" -P "${CMAKE_CURRENT_LIST_DIR}/bashify.cmake" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "bashify-${TARGET_TRIPLET}" ) endif() set(OPTIONS --enable-relocatable #symbol duplication with glib-init.c? --enable-c++ --disable-acl --disable-csharp --disable-curses --disable-java --disable-openmp --disable-dependency-tracking # Avoiding system dependencies and unnecessary tests --with-included-glib --with-included-libxml # libtextstyle won't use external libxml --with-included-libunistring --with-installed-libtextstyle=no --without-cvs --without-emacs --without-git --without-libcurses-prefix --without-libncurses-prefix --without-libtermcap-prefix --without-libxcurses-prefix "INTLBISON=${BISON_NAME}" "TOOLS_BISON=${BISON_NAME}" ) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() vcpkg_list(APPEND options "--disable-nls") endif() if(VCPKG_TARGET_IS_LINUX) # Cannot use gettext-libintl, empty port on linux set(ENV{VCPKG_INTL} intl) else() # Relying on gettext-libintl list(APPEND OPTIONS --with-included-gettext=no) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS # Faster, but not for export --disable-namespacing # Avoid unnecessary tests. am_cv_func_iconv_works=yes "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}" "--with-libintl-prefix=${CURRENT_INSTALLED_DIR}" # This is required. For some reason these do not get correctly identified for release builds. ac_cv_func_wcslen=yes ac_cv_func_memmove=yes # The following are required for a full gettext built (libintl and tools). gl_cv_func_printf_directive_n=no # segfaults otherwise with popup window ac_cv_func_memset=yes # not detected in release builds ) if(NOT VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS # Don't take from port dirent ac_cv_header_dirent_h=no # Don't take from port getopt-win32 ac_cv_header_getopt_h=no # Don't take from port pthreads ac_cv_header_pthread_h=no ac_cv_header_sched_h=no ac_cv_header_semaphore_h=no # Detected 'no' everywhere except x64-windows-static ac_cv_func_snprintf=no # Detected x64 values for gnulib, overriding guesses for cross builds gl_cv_func_fopen_mode_x=yes gl_cv_func_frexpl_works=yes gl_cv_func_getcwd_null=yes gl_cv_func_mbrtowc_empty_input=no gl_cv_func_mbsrtowcs_works=yes gl_cv_func_printf_flag_zero=yes gl_cv_func_printf_infinite_long_double=yes gl_cv_func_printf_precision=yes gl_cv_func_snprintf_truncation_c99=yes # Detected x64 values for gettext, overriding guesses for x86 & x64-uwp gt_cv_int_divbyzero_sigfpe=no ) endif() endif() file(REMOVE "${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-rel.log") vcpkg_configure_make(SOURCE_PATH "${SOURCE_PATH}" DETERMINE_BUILD_TRIPLET USE_WRAPPERS ADDITIONAL_MSYS_PACKAGES gzip OPTIONS ${OPTIONS} OPTIONS_RELEASE "--cache-file=${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-rel.log" ) # This helps with Windows build times, but should work everywhere in vcpkg. # - Avoid an extra command to move a temporary file, we are building out of source. # - Avoid a subshell just to add comments, the build dir is temporary. # - Avoid cygpath -w when other tools handle this for us. file(GLOB_RECURSE makefiles "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}*/*Makefile") foreach(file IN LISTS makefiles) file(READ "${file}" rules) string(REGEX REPLACE "(\n\ttest -d [^ ]* [|][|] [\$][(]MKDIR_P[)][^\n;]*)(\n\t)" "\\1 || exit 1 ; \\\\\\2" rules "${rules}") string(REGEX REPLACE "(\n\t){ echo '/[*] [^*]* [*]/'; \\\\\n\t cat ([^;\n]*); \\\\\n\t[}] > [\$]@-t\n\tmv -f [\$]@-t ([\$]@\n)" "\\1cp \\2 \\3" rules "${rules}") string(REGEX REPLACE " > [\$]@-t\n\t[\$][(]AM_V_at[)]mv [\$]@-t ([\$]@\n)" "> \\1" rules "${rules}") string(REGEX REPLACE "([\$}[(]COMPILE[)] -c -o [\$]@) `[\$][(]CYGPATH_W[)] '[\$]<'`" "\\1 \$<" rules "${rules}") file(WRITE "${file}" "${rules}") endforeach() vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(GLOB unix_runtime LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/lib/libgettext*${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}*" "${CURRENT_PACKAGES_DIR}/lib/libtextstyle*${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}*" ) if(unix_runtime) file(INSTALL ${unix_runtime} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") endif() file(GLOB link_libs LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/lib/*" "${CURRENT_PACKAGES_DIR}/bin/*.dll") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include" ${link_libs}) endif() if("tools" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/gettext/user-email" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../.." IGNORE_UNCHANGED) else() # A fast installation of the autopoint tool and data, needed for autoconfig include("${CMAKE_CURRENT_LIST_DIR}/install-autopoint.cmake") install_autopoint() endif() # These files can be needed to run `autoreconf`. # We want to install these files also for fast "core" builds without "tools". # Cf. PACKAGING for the file list. file(INSTALL "${SOURCE_PATH}/gettext-runtime/m4/build-to-host.m4" "${SOURCE_PATH}/gettext-runtime/m4/gettext.m4" "${SOURCE_PATH}/gettext-runtime/m4/iconv.m4" "${SOURCE_PATH}/gettext-runtime/m4/intlmacosx.m4" "${SOURCE_PATH}/gettext-runtime/m4/nls.m4" "${SOURCE_PATH}/gettext-runtime/m4/po.m4" "${SOURCE_PATH}/gettext-runtime/m4/progtest.m4" "${SOURCE_PATH}/gettext-runtime/gnulib-m4/host-cpu-c-abi.m4" "${SOURCE_PATH}/gettext-runtime/gnulib-m4/lib-ld.m4" "${SOURCE_PATH}/gettext-runtime/gnulib-m4/lib-link.m4" "${SOURCE_PATH}/gettext-runtime/gnulib-m4/lib-prefix.m4" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gettext/aclocal" ) if(NOT VCPKG_CROSSCOMPILING) file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gettext") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/gettext-runtime/COPYING" "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gettext/rel_path.patch ================================================ diff --git a/gettext-tools/misc/autopoint.in b/gettext-tools/misc/autopoint.in index 3a24eee5d..56b36d5ff 100644 --- a/gettext-tools/misc/autopoint.in +++ b/gettext-tools/misc/autopoint.in @@ -27,8 +27,9 @@ archive_version=@ARCHIVE_VERSION@ # Set variables # - gettext_datadir directory where the data files are stored. -prefix="@prefix@" -datarootdir="@datarootdir@" + +prefix="$(dirname "$0")/../../../" +datarootdir="${prefix}/share/gettext" : ${gettext_datadir="@datadir@/gettext"} : ${AUTOM4TE=autom4te} diff --git a/gettext-tools/misc/gettextize.in b/gettext-tools/misc/gettextize.in index c78c308bf..175ad57e7 100644 --- a/gettext-tools/misc/gettextize.in +++ b/gettext-tools/misc/gettextize.in @@ -27,8 +27,8 @@ archive_version=@ARCHIVE_VERSION@ # Set variables # - gettext_datadir directory where the data files are stored. -prefix="@prefix@" -datarootdir="@datarootdir@" +prefix="$(dirname "$0")/../../../" +datarootdir="${prefix}/share/gettext" : ${gettext_datadir="@datadir@/gettext"} : ${AUTOM4TE=autom4te} ================================================ FILE: ports/gettext/subdirs.patch ================================================ diff --git a/configure b/configure index 904bdf5..e751ffc 100755 --- a/configure +++ b/configure @@ -2797,7 +2797,7 @@ am__tar='${AMTAR} chf - --format=ustar --owner=root --group=root "$$tardir"' -subdirs="$subdirs gettext-runtime libtextstyle gettext-tools" +subdirs="$subdirs gettext-runtime $(echo ${VCPKG_GETTEXT_SUBDIRS} | sed 's/gettext-runtime//')" diff --git a/Makefile.in b/Makefile.in index a287d38..075ddc5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -311,7 +311,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = gnulib-local gettext-runtime libtextstyle gettext-tools +SUBDIRS = $(VCPKG_GETTEXT_SUBDIRS) changelog_etc = \ gettext-runtime/ChangeLog.0 \ gettext-runtime/doc/ChangeLog.0 \ diff --git a/gettext-runtime/Makefile.in b/gettext-runtime/Makefile.in index 8b8b5bc..bb75447 100644 --- a/gettext-runtime/Makefile.in +++ b/gettext-runtime/Makefile.in @@ -1487,7 +1487,7 @@ ACLOCAL_AMFLAGS = -I m4 -I ../m4 -I gnulib-m4 # The list of subdirectories depends on whether --disable-libasprintf was # specified. @ENABLE_LIBASPRINTF_TRUE@SUBDIR_libasprintf = libasprintf -SUBDIRS = doc intl intl-java intl-csharp gnulib-lib $(SUBDIR_libasprintf) src po man m4 tests +SUBDIRS = $(VCPKG_INTL) gnulib-lib src po # Allow users to use "gnulib-tool --update". diff --git a/gettext-runtime/configure b/gettext-runtime/configure index a7594ed..296f3b7 100644 --- a/gettext-runtime/configure +++ b/gettext-runtime/configure @@ -26906,7 +26906,7 @@ printf "%s\n" "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ - && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != pristine-gettext-runtime \ && test "$PACKAGE" != gettext-tools \ && test "$PACKAGE" != libintl; }; then gt_use_preinstalled_gnugettext=yes diff --git a/gettext-runtime/libasprintf/configure b/gettext-runtime/libasprintf/configure --- a/gettext-runtime/libasprintf/configure +++ b/gettext-runtime/libasprintf/configure index ff1c212..0c0dbcd 100644 @@ -11,6 +11,7 @@ # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. +exit 0; ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## diff --git a/gettext-tools/Makefile.in b/gettext-tools/Makefile.in index 59e81a8..107856d 100644 --- a/gettext-tools/Makefile.in +++ b/gettext-tools/Makefile.in @@ -2872,7 +2872,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies ACLOCAL_AMFLAGS = -I m4 -I ../gettext-runtime/m4 -I ../m4 -I gnulib-m4 -I libgrep/gnulib-m4 -I libgettextpo/gnulib-m4 -SUBDIRS = gnulib-lib libgrep src libgettextpo po its projects styles emacs misc man m4 tests system-tests gnulib-tests examples doc +SUBDIRS = gnulib-lib libgrep src po its projects styles misc # Allow users to use "gnulib-tool --update". diff --git a/gettext-tools/configure b/gettext-tools/configure index 056a830..9abca7e 100644 --- a/gettext-tools/configure +++ b/gettext-tools/configure @@ -29661,7 +29661,7 @@ printf "%s\n" "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ - && test "$PACKAGE" != gettext-tools \ + && test "$PACKAGE" != pristine-gettext-tools \ && test "$PACKAGE" != libintl; }; then gt_use_preinstalled_gnugettext=yes else diff --git a/gettext-tools/examples/configure b/gettext-tools/examples/configure --- a/gettext-tools/examples/configure +++ b/gettext-tools/examples/configure index ff1c212..0c0dbcd 100644 @@ -11,6 +11,7 @@ # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. +exit 0; ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## diff --git a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in --- a/gettext-tools/src/Makefile.in +++ b/gettext-tools/src/Makefile.in index ff1c212..0c0dbcd 100644 @@ -4381,6 +4381,7 @@ $(AM_V_GEN)$(msgfilter_LINK) $(msgfilter_OBJECTS) $(msgfilter_LDADD) $(LIBS) ../../gettext-runtime/intl/$(am__dirstamp): @$(MKDIR_P) ../../gettext-runtime/intl + @$(MAKE) -C ../../gettext-runtime/intl libgnuintl.h @: > ../../gettext-runtime/intl/$(am__dirstamp) ../../gettext-runtime/intl/msgfmt-hash-string.$(OBJEXT): \ ../../gettext-runtime/intl/$(am__dirstamp) diff --git a/libtextstyle/Makefile.in b/libtextstyle/Makefile.in index ff1c212..0c0dbcd 100644 --- a/libtextstyle/Makefile.in +++ b/libtextstyle/Makefile.in @@ -1667,7 +1667,7 @@ AUTOMAKE_OPTIONS = 1.13 gnu no-dependencies ACLOCAL_AMFLAGS = -I m4 -I gnulib-m4 # The list of subdirectories containing Makefiles. -SUBDIRS = lib tests adhoc-tests doc +SUBDIRS = lib # Allow users to use "gnulib-tool --update". ================================================ FILE: ports/gettext/uwp.patch ================================================ diff --git a/gettext-runtime/gnulib-lib/fcntl.c b/gettext-runtime/gnulib-lib/fcntl.c index f9753c4..3a3caee 100644 --- a/gettext-runtime/gnulib-lib/fcntl.c +++ b/gettext-runtime/gnulib-lib/fcntl.c @@ -38,6 +38,12 @@ # define WIN32_LEAN_AND_MEAN # include +# if defined(WINAPI_FAMILY_PARTITION) +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +# define HANDLE_FLAG_INHERIT 0 +# endif +# endif + /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW # include "msvc-nothrow.h" diff --git a/gettext-runtime/gnulib-lib/localcharset.c b/gettext-runtime/gnulib-lib/localcharset.c index ec75427..9e063e4 100644 --- a/gettext-runtime/gnulib-lib/localcharset.c +++ b/gettext-runtime/gnulib-lib/localcharset.c @@ -34,6 +34,9 @@ #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include +# if !defined(WINAPI_FAMILY_PARTITION) +# define WINAPI_FAMILY_PARTITION(x) (0) +# endif #endif #if defined __EMX__ @@ -912,6 +915,8 @@ locale_charset (void) /* The canonical name cannot be determined. */ codeset = ""; +# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + codeset = ""; # elif defined WINDOWS_NATIVE char buf[2 + 10 + 1]; diff --git a/gettext-runtime/gnulib-lib/localename-unsafe.c b/gettext-runtime/gnulib-lib/localename-unsafe.c index d77bb81..3c6e055 100644 --- a/gettext-runtime/gnulib-lib/localename-unsafe.c +++ b/gettext-runtime/gnulib-lib/localename-unsafe.c @@ -69,6 +69,11 @@ extern char * getlocalename_l(int, locale_t); #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE +# if defined(WINAPI_FAMILY_PARTITION) +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +# undef WIN32_NATIVE +# endif +# endif # include "glthread/lock.h" #endif ================================================ FILE: ports/gettext/vcpkg-port-config.cmake ================================================ get_filename_component(gettext_tools_dir "${CMAKE_CURRENT_LIST_DIR}/../../tools/gettext/bin" ABSOLUTE) if(CMAKE_HOST_WIN32) set(ENV{PATH} "$ENV{PATH};${gettext_tools_dir}") else() set(ENV{PATH} "$ENV{PATH}:${gettext_tools_dir}") endif() ================================================ FILE: ports/gettext/vcpkg.json ================================================ { "name": "gettext", "version": "0.22.5", "port-version": 4, "description": "A GNU framework to help produce multi-lingual messages.", "homepage": "https://www.gnu.org/software/gettext/", "license": "GPL-3.0-only", "supports": "!xbox", "dependencies": [ "gettext-libintl" ], "features": { "nls": { "description": "Enable native language support" }, "runtime-tools": { "description": "Build runtime tools for internationalization of scripts", "supports": "!uwp", "dependencies": [ "libiconv" ] }, "tools": { "description": "Build gettext tools", "supports": "!uwp", "dependencies": [ "libiconv" ] } } } ================================================ FILE: ports/gettext-libintl/0003-Fix-win-unicode-paths.patch ================================================ diff --git a/gettext-runtime/intl/loadmsgcat.c b/gettext-runtime/intl/loadmsgcat.c index d5a5fe1..5c47f48 100644 --- a/gettext-runtime/intl/loadmsgcat.c +++ b/gettext-runtime/intl/loadmsgcat.c @@ -390,9 +390,56 @@ char *alloca (); # define munmap(addr, len) __munmap (addr, len) #elif defined _WIN32 && !defined __CYGWIN__ /* On native Windows, don't require linking with '-loldnames'. */ -# define open _open +# define open(name, flags) _open_utf8_windows_wrapper(name, flags) # define read _read # define close _close + +/* Provide wrapper of "open" for Windows that supports UTF-8 filenames. */ +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# ifndef WIN32_EXTRA_LEAN +# define WIN32_EXTRA_LEAN +# endif +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include // For: MultiByteToWideChar +# include +# include + +int _open_utf8_windows_wrapper( + const char *filename, + int flags +) +{ + int wstr_len = -1; + wchar_t* pUtf16FileName = NULL; + int fh = -1; + + // on Windows, convert the filename from UTF-8 to UTF-16 + wstr_len = MultiByteToWideChar(CP_UTF8, 0, filename, -1, NULL, 0); + if (wstr_len <= 0) + { + // MultiByteToWideChar failed + errno = ENOENT; + return -1; + } + pUtf16FileName = malloc(wstr_len * sizeof(wchar_t)); + if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, pUtf16FileName, wstr_len) == 0) + { + // MultiByteToWideChar failed + free(pUtf16FileName); + errno = ENOENT; + return -1; + } + + // and call _wopen + fh = _wopen(pUtf16FileName, flags); + + free(pUtf16FileName); + return fh; +} #endif /* For those losing systems which don't have `alloca' we have to add ================================================ FILE: ports/gettext-libintl/bashify.cmake ================================================ # By using bash builtin expansion, we can avoid # expensively spawing three sub-processes (bash, echo, sed). foreach(dir IN LISTS SOURCE_DIRS) file(READ "${dir}/configure" script) string(REGEX REPLACE "(\n[a-zA-Z0-9_]*)='`[\$]ECHO \"[\$]([^\"]*)\" \\| [\$]SED \"[\$]delay_single_quote_subst\"`'" [[\1='${\2//\\'/\\'\\\\\\'\\'}']] script "${script}" ) string(REPLACE [[ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in]] [[ case "\${!var}" in]] script "${script}" ) file(WRITE "${dir}/configure" "${script}") endforeach() ================================================ FILE: ports/gettext-libintl/detect/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(find-libintl C) set(OUTFILE "${CMAKE_CURRENT_BINARY_DIR}/detected_intl.cmake" CACHE FILEPATH "Where to store results") find_package(Intl) find_file(LIBINTL_H NAMES libintl.h PATHS ${Intl_INCLUDE_DIRS}) string(CONFIGURE [[ set(VCPKG_DETECTED_Intl_FOUND "@Intl_FOUND@") set(VCPKG_DETECTED_Intl_IS_BUILT_IN "@Intl_IS_BUILT_IN@") set(VCPKG_DETECTED_Intl_INCLUDE_DIRS "@Intl_INCLUDE_DIRS@") set(VCPKG_DETECTED_LIBINTL_H "@LIBINTL_H@") ]] detected_intl @ONLY ESCAPE_QUOTES) file(WRITE "${OUTFILE}" "${detected_intl}") ================================================ FILE: ports/gettext-libintl/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX AND NOT X_VCPKG_FORCE_VCPKG_GETTEXT_LIBINTL) set(detection_results "${CURRENT_BUILDTREES_DIR}/detected-intl-${TARGET_TRIPLET}.cmake.log") file(REMOVE "${detection_results}") block(SCOPE_FOR VARIABLES) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/detect" OPTIONS "-DOUTFILE=${detection_results}") endblock() include("${detection_results}") message(STATUS "libintl header: ${VCPKG_DETECTED_LIBINTL_H}") if(NOT VCPKG_DETECTED_LIBINTL_H) message(FATAL_ERROR "When targeting Linux, `libintl.h` is expected to come from a system package. " "Please use the following commands or the equivalent to install development files.\n" "On Debian and Ubuntu derivatives: \"sudo apt-get install libc-dev\"\n" "On Alpine: \"apk add gettext-dev\"\n" ) endif() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") return() endif() set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/gettext/gettext-${VERSION}.tar.gz" "https://ftp.gnu.org/pub/gnu/gettext/gettext-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gettext/gettext-${VERSION}.tar.gz" FILENAME "gettext-${VERSION}.tar.gz" SHA512 d8b22d7fba10052a2045f477f0a5b684d932513bdb3b295c22fbd9dfc2a9d8fccd9aefd90692136c62897149aa2f7d1145ce6618aa1f0be787cb88eba5bc09be ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES uwp.patch 0003-Fix-win-unicode-paths.patch ) if(VCPKG_HOST_IS_WINDOWS) message(STATUS "Modifying 'configure' to use fast bash variable expansion") set(ENV{CONFIG_SHELL} "/usr/bin/bash") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" "-DSOURCE_DIRS=gettext-runtime" -P "${CMAKE_CURRENT_LIST_DIR}/bashify.cmake" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "bashify-${TARGET_TRIPLET}" ) endif() set(OPTIONS --no-recursion --enable-relocatable #symbol duplication with glib-init.c? --with-included-gettext --without-libintl-prefix --disable-dependency-tracking ac_cv_path_GMSGFMT=false ac_cv_path_MSGFMT=false ac_cv_path_MSGMERGE=false ac_cv_path_XGETTEXT=false ac_cv_prog_INTLBISON=false ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS # Avoid unnecessary tests. am_cv_func_iconv_works=yes # This is required. For some reason these do not get correctly identified for release builds. ac_cv_func_wcslen=yes ac_cv_func_memmove=yes # May trigger debugger window in debug builds, even in unattended builds. # Cf. https://github.com/microsoft/vcpkg/issues/35974 gl_cv_func_printf_directive_n=no ) if(NOT VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS # Don't take from port getopt-win32 ac_cv_header_getopt_h=no # Don't take from port pthreads ac_cv_header_pthread_h=no # Detected 'no' everywhere except x64-windows-static ac_cv_func_snprintf=no # Detected x64 values for gnulib, overriding guesses for cross builds gl_cv_func_mbrtowc_empty_input=no # Detected x64 values for gettext, overriding guesses for x86 & x64-uwp gt_cv_int_divbyzero_sigfpe=no ) endif() endif() file(REMOVE "${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-rel.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-dbg.log") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/gettext-runtime/intl" OPTIONS ${OPTIONS} OPTIONS_RELEASE "--cache-file=${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-rel.log" OPTIONS_DEBUG "--cache-file=${CURRENT_BUILDTREES_DIR}/config.cache-${TARGET_TRIPLET}-dbg.log" ) # This helps with Windows build times, but should work everywhere in vcpkg. # - Avoid an extra command to move a temporary file, we are building out of source. # - Avoid a subshell just to add comments, the build dir is temporary. # - Avoid cygpath -w when other tools handle this for us. file(GLOB_RECURSE makefiles "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}*/Makefile") foreach(file IN LISTS makefiles) file(READ "${file}" rules) string(REGEX REPLACE "(\n\ttest -d [^ ]* [|][|] [\$][(]MKDIR_P[)][^\n;]*)(\n\t)" "\\1 || exit 1 ; \\\\\\2" rules "${rules}") string(REGEX REPLACE "(\n\t){ echo '/[*] [^*]* [*]/'; \\\\\n\t cat ([^;\n]*); \\\\\n\t[}] > [\$]@-t\n\tmv -f [\$]@-t ([\$]@\n)" "\\1cp \\2 \\3" rules "${rules}") string(REGEX REPLACE " > [\$]@-t\n\t[\$][(]AM_V_at[)]mv [\$]@-t ([\$]@\n)" "> \\1" rules "${rules}") string(REGEX REPLACE "([\$}[(]COMPILE[)] -c -o [\$]@) `[\$][(]CYGPATH_W[)] '[\$]<'`" "\\1 \$<" rules "${rules}") string(REPLACE " ../config.h" " config.h" rules "${rules}") file(WRITE "${file}" "${rules}") endforeach() vcpkg_make_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/intl") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/gettext-runtime/intl/COPYING.LIB") ================================================ FILE: ports/gettext-libintl/usage ================================================ gettext-libintl is compatible with built-in CMake targets: find_package(Intl REQUIRED) target_link_libraries(main PRIVATE Intl::Intl) # since CMake 3.20 ================================================ FILE: ports/gettext-libintl/uwp.patch ================================================ diff --git a/gettext-runtime/intl/langprefs.c b/gettext-runtime/intl/langprefs.c index f774ba2..f488b7f 100644 --- a/gettext-runtime/intl/langprefs.c +++ b/gettext-runtime/intl/langprefs.c @@ -38,6 +38,11 @@ extern void _nl_locale_name_canonicalize (char *name); #if defined _WIN32 # define WIN32_NATIVE +# if defined(WINAPI_FAMILY_PARTITION) +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +# undef WIN32_NATIVE +# endif +# endif #endif #ifdef WIN32_NATIVE diff --git a/gettext-runtime/intl/gnulib-lib/localcharset.c b/gettext-runtime/intl/gnulib-lib/localcharset.c index ec75427..9e063e4 100644 --- a/gettext-runtime/intl/gnulib-lib/localcharset.c +++ b/gettext-runtime/intl/gnulib-lib/localcharset.c @@ -34,6 +34,9 @@ #if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include +# if !defined(WINAPI_FAMILY_PARTITION) +# define WINAPI_FAMILY_PARTITION(x) (0) +# endif #endif #if defined __EMX__ @@ -912,6 +915,8 @@ locale_charset (void) /* The canonical name cannot be determined. */ codeset = ""; +# elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) + codeset = ""; # elif defined WINDOWS_NATIVE char buf[2 + 10 + 1]; ================================================ FILE: ports/gettext-libintl/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(Intl_FOUND AND Intl_LIBRARIES) include(SelectLibraryConfigurations) find_library(Intl_LIBRARY_DEBUG NAMES intl libintl intl-8 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH) find_library(Intl_LIBRARY_RELEASE NAMES intl libintl intl-8 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH) unset(Intl_LIBRARIES) unset(Intl_LIBRARIES CACHE) select_library_configurations(Intl) find_package(Iconv) # Since CMake 3.11 if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) list(APPEND Intl_LIBRARIES ${Iconv_LIBRARIES}) if(TARGET Intl::Intl) # Since CMake 3.20 set_property(TARGET Intl::Intl APPEND PROPERTY INTERFACE_LINK_LIBRARIES $) endif() endif() if(APPLE) list(APPEND Intl_LIBRARIES "-framework CoreFoundation") if(TARGET Intl::Intl) # Since CMake 3.20 set_property(TARGET Intl::Intl APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$") endif() endif() endif() ================================================ FILE: ports/gettext-libintl/vcpkg.json ================================================ { "name": "gettext-libintl", "version": "0.22.5", "port-version": 4, "description": "The libintl C library from GNU gettext-runtime.", "homepage": "https://www.gnu.org/software/gettext/", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "libiconv", "platform": "!linux" }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/gettimeofday/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(gettimeofday C) add_library(gettimeofday gettimeofday.c gettimeofday.def) install(TARGETS gettimeofday RUNTIME DESTINATION bin ARCHIVE DESTINATION lib/manual-link LIBRARY DESTINATION lib/manual-link ) if(CMAKE_BUILD_TYPE STREQUAL "Release") install(FILES gettimeofday.h DESTINATION include) endif() ================================================ FILE: ports/gettimeofday/LICENSE ================================================ /* * Copied from PostgreSQL source: * http://doxygen.postgresql.org/gettimeofday_8c_source.html * */ /* * gettimeofday.c * Win32 gettimeofday() replacement * * src/port/gettimeofday.c * * Copyright (c) 2003 SRA, Inc. * Copyright (c) 2003 SKC, Inc. * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose, without fee, and without a * written agreement is hereby granted, provided that the above * copyright notice and this paragraph and the following two * paragraphs appear in all copies. * * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */ ================================================ FILE: ports/gettimeofday/gettimeofday.c ================================================ /* * Copied from PostgreSQL source: * http://doxygen.postgresql.org/gettimeofday_8c_source.html * */ /* * gettimeofday.c * Win32 gettimeofday() replacement * * src/port/gettimeofday.c * * Copyright (c) 2003 SRA, Inc. * Copyright (c) 2003 SKC, Inc. * * Permission to use, copy, modify, and distribute this software and * its documentation for any purpose, without fee, and without a * written agreement is hereby granted, provided that the above * copyright notice and this paragraph and the following two * paragraphs appear in all copies. * * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. */ #ifdef _MSC_VER #include /* FILETIME of Jan 1 1970 00:00:00. */ static const unsigned __int64 epoch = 116444736000000000Ui64; /* * timezone information is stored outside the kernel so tzp isn't used anymore. * * Note: this function is not for Win32 high precision timing purpose. See * elapsed_time(). */ int gettimeofday(struct timeval * tp, struct timezone * tzp) { FILETIME file_time; SYSTEMTIME system_time; ULARGE_INTEGER ularge; GetSystemTime(&system_time); SystemTimeToFileTime(&system_time, &file_time); ularge.LowPart = file_time.dwLowDateTime; ularge.HighPart = file_time.dwHighDateTime; tp->tv_sec = (long) ((ularge.QuadPart - epoch) / 10000000L); tp->tv_usec = (long) (system_time.wMilliseconds * 1000); return 0; } #endif /* _MSC_VER */ ================================================ FILE: ports/gettimeofday/gettimeofday.def ================================================ EXPORTS gettimeofday ================================================ FILE: ports/gettimeofday/gettimeofday.h ================================================ #ifndef _MY_GETTIMEOFDAY_H_ #define _MY_GETTIMEOFDAY_H_ #ifdef _MSC_VER #include #include int gettimeofday(struct timeval * tp, struct timezone * tzp); #endif /* _MSC_VER */ #endif /* _MY_GETTIMEOFDAY_H_ */ ================================================ FILE: ports/gettimeofday/portfile.cmake ================================================ vcpkg_cmake_configure( SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gettimeofday/vcpkg.json ================================================ { "name": "gettimeofday", "version-date": "2017-10-14", "port-version": 6, "description": "An implementation of gettimeofday for WIN32", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gexiv2/msvc_def.patch ================================================ From 53770886561d434db53c229cd3d6391939a8185c Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Mon, 10 Feb 2025 22:15:56 +0100 Subject: [PATCH] build: Add .def file and a script to update it --- build-aux/update-def-file.sh | 3 + gexiv2/gexiv2.def | 152 +++++++++++++++++++++++++++++++++++ gexiv2/meson.build | 8 ++ 3 files changed, 163 insertions(+) create mode 100755 build-aux/update-def-file.sh create mode 100644 gexiv2/gexiv2.def diff --git a/build-aux/update-def-file.sh b/build-aux/update-def-file.sh new file mode 100755 index 0000000..950d422 --- /dev/null +++ b/build-aux/update-def-file.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +nm -gD "$1" | grep " T " | cut -f3 -d " " | sort | uniq > "$2" diff --git a/gexiv2/gexiv2.def b/gexiv2/gexiv2.def new file mode 100644 index 0000000..de934fd --- /dev/null +++ b/gexiv2/gexiv2.def @@ -0,0 +1,151 @@ +EXPORTS +gexiv2_get_version +gexiv2_gexiv2_byte_order_get_type +gexiv2_gexiv2_log_level_get_type +gexiv2_gexiv2_orientation_get_type +gexiv2_gexiv2_structure_type_get_type +gexiv2_gexiv2_xmp_format_flags_get_type +gexiv2_initialize +gexiv2_log_get_default_handler +gexiv2_log_get_handler +gexiv2_log_get_level +gexiv2_log_set_handler +gexiv2_log_set_level +gexiv2_log_use_glib_logging +gexiv2_metadata_clear +gexiv2_metadata_clear_comment +gexiv2_metadata_clear_exif +gexiv2_metadata_clear_iptc +gexiv2_metadata_clear_tag +gexiv2_metadata_clear_xmp +gexiv2_metadata_delete_gps_info +gexiv2_metadata_erase_exif_thumbnail +gexiv2_metadata_free +gexiv2_metadata_from_app1_segment +gexiv2_metadata_from_stream +gexiv2_metadata_generate_xmp_packet +gexiv2_metadata_get_comment +gexiv2_metadata_get_exif_data +gexiv2_metadata_get_exif_tag_rational +gexiv2_metadata_get_exif_tags +gexiv2_metadata_get_exif_thumbnail +gexiv2_metadata_get_exposure_time +gexiv2_metadata_get_fnumber +gexiv2_metadata_get_focal_length +gexiv2_metadata_get_gps_altitude +gexiv2_metadata_get_gps_info +gexiv2_metadata_get_gps_latitude +gexiv2_metadata_get_gps_longitude +gexiv2_metadata_get_iptc_tags +gexiv2_metadata_get_iso_speed +gexiv2_metadata_get_metadata_pixel_height +gexiv2_metadata_get_metadata_pixel_width +gexiv2_metadata_get_mime_type +gexiv2_metadata_get_orientation +gexiv2_metadata_get_pixel_height +gexiv2_metadata_get_pixel_width +gexiv2_metadata_get_preview_image +gexiv2_metadata_get_preview_properties +gexiv2_metadata_get_supports_exif +gexiv2_metadata_get_supports_iptc +gexiv2_metadata_get_supports_xmp +gexiv2_metadata_get_tag_description +gexiv2_metadata_get_tag_interpreted_string +gexiv2_metadata_get_tag_label +gexiv2_metadata_get_tag_long +gexiv2_metadata_get_tag_multiple +gexiv2_metadata_get_tag_raw +gexiv2_metadata_get_tag_string +gexiv2_metadata_get_tag_type +gexiv2_metadata_get_type +gexiv2_metadata_get_xmp_namespace_for_tag +gexiv2_metadata_get_xmp_packet +gexiv2_metadata_get_xmp_tags +gexiv2_metadata_has_exif +gexiv2_metadata_has_iptc +gexiv2_metadata_has_tag +gexiv2_metadata_has_xmp +gexiv2_metadata_is_exif_tag +gexiv2_metadata_is_iptc_tag +gexiv2_metadata_is_xmp_tag +gexiv2_metadata_new +gexiv2_metadata_open_buf +gexiv2_metadata_open_path +gexiv2_metadata_register_xmp_namespace +gexiv2_metadata_save_external +gexiv2_metadata_save_file +gexiv2_metadata_set_comment +gexiv2_metadata_set_exif_tag_rational +gexiv2_metadata_set_exif_thumbnail_from_buffer +gexiv2_metadata_set_exif_thumbnail_from_file +gexiv2_metadata_set_gps_info +gexiv2_metadata_set_metadata_pixel_height +gexiv2_metadata_set_metadata_pixel_width +gexiv2_metadata_set_orientation +gexiv2_metadata_set_tag_long +gexiv2_metadata_set_tag_multiple +gexiv2_metadata_set_tag_string +gexiv2_metadata_set_xmp_tag_struct +gexiv2_metadata_try_clear_tag +gexiv2_metadata_try_delete_gps_info +gexiv2_metadata_try_erase_exif_thumbnail +gexiv2_metadata_try_generate_xmp_packet +gexiv2_metadata_try_get_comment +gexiv2_metadata_try_get_exif_tag_rational +gexiv2_metadata_try_get_exposure_time +gexiv2_metadata_try_get_fnumber +gexiv2_metadata_try_get_focal_length +gexiv2_metadata_try_get_gps_altitude +gexiv2_metadata_try_get_gps_info +gexiv2_metadata_try_get_gps_latitude +gexiv2_metadata_try_get_gps_longitude +gexiv2_metadata_try_get_iso_speed +gexiv2_metadata_try_get_metadata_pixel_height +gexiv2_metadata_try_get_metadata_pixel_width +gexiv2_metadata_try_get_orientation +gexiv2_metadata_try_get_preview_image +gexiv2_metadata_try_get_tag_description +gexiv2_metadata_try_get_tag_interpreted_string +gexiv2_metadata_try_get_tag_label +gexiv2_metadata_try_get_tag_long +gexiv2_metadata_try_get_tag_multiple +gexiv2_metadata_try_get_tag_raw +gexiv2_metadata_try_get_tag_string +gexiv2_metadata_try_get_tag_type +gexiv2_metadata_try_get_xmp_namespace_for_tag +gexiv2_metadata_try_get_xmp_packet +gexiv2_metadata_try_has_tag +gexiv2_metadata_try_register_xmp_namespace +gexiv2_metadata_try_set_comment +gexiv2_metadata_try_set_exif_tag_rational +gexiv2_metadata_try_set_exif_thumbnail_from_buffer +gexiv2_metadata_try_set_gps_info +gexiv2_metadata_try_set_metadata_pixel_height +gexiv2_metadata_try_set_metadata_pixel_width +gexiv2_metadata_try_set_orientation +gexiv2_metadata_try_set_tag_long +gexiv2_metadata_try_set_tag_multiple +gexiv2_metadata_try_set_tag_string +gexiv2_metadata_try_set_xmp_tag_struct +gexiv2_metadata_try_tag_supports_multiple_values +gexiv2_metadata_try_unregister_all_xmp_namespaces +gexiv2_metadata_try_unregister_xmp_namespace +gexiv2_metadata_try_update_gps_info +gexiv2_metadata_unregister_all_xmp_namespaces +gexiv2_metadata_unregister_xmp_namespace +gexiv2_metadata_update_gps_info +gexiv2_preview_image_free +gexiv2_preview_image_get_data +gexiv2_preview_image_get_extension +gexiv2_preview_image_get_height +gexiv2_preview_image_get_mime_type +gexiv2_preview_image_get_type +gexiv2_preview_image_get_width +gexiv2_preview_image_try_write_file +gexiv2_preview_image_write_file +gexiv2_preview_properties_get_extension +gexiv2_preview_properties_get_height +gexiv2_preview_properties_get_mime_type +gexiv2_preview_properties_get_size +gexiv2_preview_properties_get_type +gexiv2_preview_properties_get_width diff --git a/gexiv2/meson.build b/gexiv2/meson.build index d56409c..fe7de09 100644 --- a/gexiv2/meson.build +++ b/gexiv2/meson.build @@ -66,8 +66,16 @@ gexiv2 = library('gexiv2', version: libversion, darwin_versions: darwin_versions, dependencies : [gobject, exiv2, gio], + vs_module_defs : 'gexiv2.def', install : true) +update_def_script = find_program('update-def-file.sh', dirs: [meson.project_source_root() / 'build-aux']) +custom_target('update-def-file', + output: 'gexiv2.def', + input: gexiv2, + command: [update_def_script, '@INPUT@', '@OUTPUT@'], + install: false) + libgexiv2 = declare_dependency( link_with : gexiv2, include_directories : include_directories('..'), -- GitLab ================================================ FILE: ports/gexiv2/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "${PORT}-${VERSION}.tar.xz" SHA512 24c97fa09b9ee32cb98da4637ea78eb72ae7e2d1792f9ebb31d63e305b3e0e1f6935b8647589c76c39ba631a15c1d8d2f3879c7dff81433786e9533b6348b6a0 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES msvc_def.patch ) if("introspection" IN_LIST FEATURES) list(APPEND feature_options "-Dintrospection=true") vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND feature_options "-Dintrospection=false") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${feature_options} -Dvapi=false -Dgtk_doc=false -Dpython3=false -Dtests=false -Dtools=false ADDITIONAL_BINARIES "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/gexiv2/vcpkg.json ================================================ { "name": "gexiv2", "version": "0.14.3", "port-version": 3, "description": "A GObject-based Exiv2 wrapper.", "homepage": "https://gitlab.gnome.org/GNOME/gexiv2/", "license": "GPL-2.0-or-later", "dependencies": [ "exiv2", "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Enable introspection", "supports": "!static & !windows", "dependencies": [ "gobject-introspection" ] } } } ================================================ FILE: ports/gflags/0001-patch-dir.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3709073..8e919cb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -503,7 +503,7 @@ endif () # ---------------------------------------------------------------------------- # installation rules set (EXPORT_NAME ${PACKAGE_NAME}-targets) -file (RELATIVE_PATH INSTALL_PREFIX_REL2CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/${CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}") +set (INSTALL_PREFIX_REL2CONFIG_DIR "../..") configure_file (cmake/config.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-install.cmake" @ONLY) configure_file (cmake/version.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}-config-version.cmake" @ONLY) ================================================ FILE: ports/gflags/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "${PORT} does not currently support UWP") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gflags/gflags REF v${VERSION} SHA512 d1e3971c2db6e0cba16fc6438213866c3e031bed73b3332ae3ca3a6e6f14fd17c8881ad8fa9716a4c468171c8d7cbd26d4049fc4af8ed4888c3a0ad913ea24da HEAD_REF master PATCHES 0001-patch-dir.patch # gflags was estimating a wrong relative path between the gflags-config.cmake file and the include path; "../.." goes from share/gflags/ to the triplet root ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGFLAGS_REGISTER_BUILD_DIR:BOOL=OFF -DGFLAGS_REGISTER_INSTALL_PREFIX:BOOL=OFF -DBUILD_gflags_nothreads_LIB:BOOL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gflags) if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gflags.pc" "-lgflags" "-lgflags_debug") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt") ================================================ FILE: ports/gflags/usage ================================================ gflags provides CMake targets: set(GFLAGS_USE_TARGET_NAMESPACE ON) find_package(gflags CONFIG REQUIRED) target_link_libraries(main PRIVATE gflags::gflags) ================================================ FILE: ports/gflags/vcpkg-cmake-wrapper.cmake ================================================ if(NOT DEFINED GFLAGS_USE_TARGET_NAMESPACE) # vcpkg legacy set(GFLAGS_USE_TARGET_NAMESPACE ON) _find_package(${ARGS}) unset(GFLAGS_USE_TARGET_NAMESPACE) endif() _find_package(${ARGS}) ================================================ FILE: ports/gflags/vcpkg.json ================================================ { "name": "gflags", "version": "2.3.0", "description": "A C++ library that implements commandline flags processing", "homepage": "https://github.com/gflags/gflags", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ggml/cmake-config.diff ================================================ diff --git a/cmake/ggml-config.cmake.in b/cmake/ggml-config.cmake.in index fe34cda4..723acac4 100644 --- a/cmake/ggml-config.cmake.in +++ b/cmake/ggml-config.cmake.in @@ -98,7 +98,7 @@ if (NOT GGML_SHARED_LIB) endif() set_and_check(GGML_INCLUDE_DIR "@PACKAGE_GGML_INCLUDE_INSTALL_DIR@") -set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@") +#set_and_check(GGML_LIB_DIR "@PACKAGE_GGML_LIB_INSTALL_DIR@") #set_and_check(GGML_BIN_DIR "@PACKAGE_GGML_BIN_INSTALL_DIR@") if(NOT TARGET ggml::ggml) @@ -112,6 +112,7 @@ if(NOT TARGET ggml::ggml) add_library(ggml::ggml UNKNOWN IMPORTED) set_target_properties(ggml::ggml PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${GGML_INCLUDE_DIR}" IMPORTED_LOCATION "${GGML_LIBRARY}") find_library(GGML_BASE_LIBRARY ggml-base ================================================ FILE: ports/ggml/fix-dequant_funcs.diff ================================================ diff --git a/src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl b/src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl index 09676a6..021bc66 100644 --- a/src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl +++ b/src/ggml-vulkan/vulkan-shaders/dequant_funcs.glsl @@ -454,8 +454,12 @@ vec2 get_dm(uint ib, uint a_offset) { #if defined(DATA_A_IQ1_M) vec2 get_dm(uint ib, uint a_offset) { - const uint16_t[4] scales = data_a[a_offset + ib].scales; - const u16vec4 s = u16vec4(scales[0], scales[1], scales[2], scales[3]) >> 12; + const u16vec4 s = u16vec4( + data_a[a_offset + ib].scales[0], + data_a[a_offset + ib].scales[1], + data_a[a_offset + ib].scales[2], + data_a[a_offset + ib].scales[3] + ) >> 12; const float d = float(unpackHalf2x16(s.x | (s.y << 4) | (s.z << 8) | (s.w << 12)).x); return vec2(d, 0); } ================================================ FILE: ports/ggml/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 56420587..98422c5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -328,7 +328,7 @@ if (GGML_STANDALONE) @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ggml.pc - DESTINATION share/pkgconfig) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif() # @@ -349,6 +349,7 @@ set(variable_set_statements set(GGML_SHARED_LIB ${BUILD_SHARED_LIBS}) get_cmake_property(all_variables VARIABLES) +list(FILTER all_variables EXCLUDE REGEX "^GGML_PKGCONFIG") foreach(variable_name IN LISTS all_variables) if(variable_name MATCHES "^GGML_") string(REPLACE ";" "\\;" diff --git a/ggml.pc.in b/ggml.pc.in index 3e0291e0..a7627339 100644 --- a/ggml.pc.in +++ b/ggml.pc.in @@ -6,5 +6,7 @@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ Name: ggml Description: The GGML Tensor Library for Machine Learning Version: @GGML_VERSION@ -Cflags: -I${includedir} -Libs: -L${libdir} -lggml +Cflags: -I${includedir} @GGML_PKGCONFIG_CFLAGS@ +Libs: -L${libdir} -lggml @GGML_PKGCONFIG_LIBS_BACKEND@ -lggml-base +Libs.private: @GGML_PKGCONFIG_LIBS_PRIVATE@ +Requires.private: @GGML_PKGCONFIG_REQUIRES_PRIVATE@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c8f3d859..d7c15992 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -186,6 +186,10 @@ endif() # ggml +set(GGML_PKGCONFIG_CFLAGS "") +set(GGML_PKGCONFIG_LIBS_BACKEND "") +set(GGML_PKGCONFIG_LIBS_PRIVATE "") + if (GGML_BACKEND_DL AND NOT BUILD_SHARED_LIBS) message(FATAL_ERROR "GGML_BACKEND_DL requires BUILD_SHARED_LIBS") endif() @@ -228,6 +232,7 @@ target_link_libraries(ggml PUBLIC ggml-base) if (CMAKE_SYSTEM_NAME MATCHES "Linux") target_link_libraries(ggml PRIVATE dl) + string(APPEND GGML_PKGCONFIG_LIBS_PRIVATE " -ldl") endif() function(ggml_add_backend_library backend) @@ -272,12 +277,20 @@ function(ggml_add_backend backend) string(TOUPPER "GGML_${backend}" backend_id) if (${backend_id}) string(TOLOWER "ggml-${backend}" backend_target) + if (NOT GGML_BACKEND_DL) + # Mirrors ggml_add_backend_library but avoids cmake scoping + set(GGML_PKGCONFIG_LIBS_BACKEND "${GGML_PKGCONFIG_LIBS_BACKEND} -l${backend_target}") + endif() add_subdirectory(${backend_target}) message(STATUS "Including ${backend} backend") if (NOT GGML_BACKEND_DL) string(TOUPPER "GGML_USE_${backend}" backend_use) target_compile_definitions(ggml PUBLIC ${backend_use}) + set(GGML_PKGCONFIG_CFLAGS "${GGML_PKGCONFIG_CFLAGS} -D${backend_use}" PARENT_SCOPE) endif() + set(GGML_PKGCONFIG_LIBS_BACKEND "${GGML_PKGCONFIG_LIBS_BACKEND}" PARENT_SCOPE) + set(GGML_PKGCONFIG_LIBS_PRIVATE "${GGML_PKGCONFIG_LIBS_PRIVATE}" PARENT_SCOPE) + set(GGML_PKGCONFIG_REQUIRES_PRIVATE "${GGML_PKGCONFIG_REQUIRES_PRIVATE}" PARENT_SCOPE) endif() endfunction() @@ -399,11 +412,15 @@ find_library(MATH_LIBRARY m) if (MATH_LIBRARY) if (NOT WIN32 OR NOT DEFINED ENV{ONEAPI_ROOT}) target_link_libraries(ggml-base PRIVATE m) + string(APPEND GGML_PKGCONFIG_LIBS_PRIVATE " -lm") endif() endif() if (CMAKE_SYSTEM_NAME MATCHES "Android") target_link_libraries(ggml-base PRIVATE dl) + if(NOT GGML_PKGCONFIG_LIBS_PRIVATE MATCHES " -ldl") + string(APPEND GGML_PKGCONFIG_LIBS_PRIVATE " -ldl") + endif() endif() if(CMAKE_SYSTEM_NAME MATCHES "visionOS") @@ -416,4 +433,10 @@ if (BUILD_SHARED_LIBS) target_compile_definitions(${target} PRIVATE GGML_BUILD) target_compile_definitions(${target} PUBLIC GGML_SHARED) endforeach() + string(APPEND GGML_PKGCONFIG_CFLAGS " -DGGML_SHARED -DGGML_BACKEND_SHARED") endif() + +set(GGML_PKGCONFIG_CFLAGS "${GGML_PKGCONFIG_CFLAGS}" PARENT_SCOPE) +set(GGML_PKGCONFIG_LIBS_BACKEND "${GGML_PKGCONFIG_LIBS_BACKEND}" PARENT_SCOPE) +set(GGML_PKGCONFIG_LIBS_PRIVATE "${GGML_PKGCONFIG_LIBS_PRIVATE}" PARENT_SCOPE) +set(GGML_PKGCONFIG_REQUIRES_PRIVATE "${GGML_PKGCONFIG_REQUIRES_PRIVATE}" PARENT_SCOPE) diff --git a/src/ggml-blas/CMakeLists.txt b/src/ggml-blas/CMakeLists.txt index 60ce4b1e..058f65cd 100644 --- a/src/ggml-blas/CMakeLists.txt +++ b/src/ggml-blas/CMakeLists.txt @@ -79,6 +79,7 @@ if (BLAS_FOUND) endif() target_link_libraries (ggml-blas PRIVATE ${BLAS_LIBRARIES}) + set(GGML_PKGCONFIG_REQUIRES_PRIVATE "${GGML_PKGCONFIG_REQUIRES_PRIVATE} cblas" PARENT_SCOPE) target_include_directories(ggml-blas PRIVATE ${BLAS_INCLUDE_DIRS}) else() message(FATAL_ERROR "BLAS not found, please refer to " diff --git a/src/ggml-cpu/CMakeLists.txt b/src/ggml-cpu/CMakeLists.txt index 42041b71..b17aca1a 100644 --- a/src/ggml-cpu/CMakeLists.txt +++ b/src/ggml-cpu/CMakeLists.txt @@ -52,6 +52,9 @@ function(ggml_add_cpu_backend_variant_impl tag_name) target_compile_features(${GGML_CPU_NAME} PRIVATE c_std_11 cxx_std_17) target_include_directories(${GGML_CPU_NAME} PRIVATE . ggml-cpu) + set(libs_private "") + set(pkgconfig_cflags "") + if (APPLE AND GGML_ACCELERATE) find_library(ACCELERATE_FRAMEWORK Accelerate) if (ACCELERATE_FRAMEWORK) @@ -62,6 +65,7 @@ function(ggml_add_cpu_backend_variant_impl tag_name) target_compile_definitions(${GGML_CPU_NAME} PRIVATE ACCELERATE_LAPACK_ILP64) target_link_libraries(${GGML_CPU_NAME} PRIVATE ${ACCELERATE_FRAMEWORK}) + string(APPEND libs_private " -framework Accelerate") else() message(WARNING "Accelerate framework not found") endif() @@ -74,6 +78,18 @@ function(ggml_add_cpu_backend_variant_impl tag_name) target_compile_definitions(${GGML_CPU_NAME} PRIVATE GGML_USE_OPENMP) target_link_libraries(${GGML_CPU_NAME} PRIVATE OpenMP::OpenMP_C OpenMP::OpenMP_CXX) + set(items "") + foreach(lib IN LISTS OpenMP_CXX_LIB_NAMES OpenMP_C_LIB_NAMES) + list(REMOVE_ITEM items " -l${lib}") + list(APPEND items " -l${lib}") + endforeach() + string(APPEND libs_private ${items}) + set(items "") + foreach(flag IN LISTS OpenMP_CXX_FLAGS OpenMP_C_FLAGS) + list(REMOVE_ITEM items " ${flag}") + list(APPEND items " ${flag}") + endforeach() + string(APPEND pkgconfig_cflags ${items}) else() set(GGML_OPENMP_ENABLED "OFF" CACHE INTERNAL "") message(WARNING "OpenMP not found") @@ -96,8 +112,12 @@ function(ggml_add_cpu_backend_variant_impl tag_name) target_compile_definitions(${GGML_CPU_NAME} PRIVATE GGML_USE_CPU_HBM) target_link_libraries(${GGML_CPU_NAME} PUBLIC memkind) + string(APPEND libs_private " -lmemkind") endif() + set(GGML_PKGCONFIG_CFLAGS "${GGML_PKGCONFIG_CFLAGS}${pkgconfig_cflags}" PARENT_SCOPE) + set(GGML_PKGCONFIG_LIBS_PRIVATE "${GGML_PKGCONFIG_LIBS_PRIVATE}${libs_private}" PARENT_SCOPE) + if (GGML_SYSTEM_ARCH STREQUAL "ARM") message(STATUS "ARM detected") list(APPEND GGML_CPU_SOURCES diff --git a/src/ggml-metal/CMakeLists.txt b/src/ggml-metal/CMakeLists.txt index 63418fe1..138996a1 100644 --- a/src/ggml-metal/CMakeLists.txt +++ b/src/ggml-metal/CMakeLists.txt @@ -19,6 +19,11 @@ target_link_libraries(ggml-metal PRIVATE ${METALKIT_FRAMEWORK} ) +set(GGML_PKGCONFIG_LIBS_PRIVATE + "${GGML_PKGCONFIG_LIBS_PRIVATE} -framework Foundation -framework Metal -framework MetalKit" + PARENT_SCOPE +) + if (GGML_METAL_NDEBUG) add_compile_definitions(GGML_METAL_NDEBUG) endif() diff --git a/src/ggml-opencl/CMakeLists.txt b/src/ggml-opencl/CMakeLists.txt index 7e6c8438..de676a79 100644 --- a/src/ggml-opencl/CMakeLists.txt +++ b/src/ggml-opencl/CMakeLists.txt @@ -7,6 +7,7 @@ ggml_add_backend_library(${TARGET_NAME} ggml-opencl.cpp ../../include/ggml-opencl.h) target_link_libraries(${TARGET_NAME} PRIVATE ${OpenCL_LIBRARIES}) +set(GGML_PKGCONFIG_REQUIRES_PRIVATE "${GGML_PKGCONFIG_REQUIRES_PRIVATE} OpenCL" PARENT_SCOPE) target_include_directories(${TARGET_NAME} PRIVATE ${OpenCL_INCLUDE_DIRS}) if (GGML_OPENCL_PROFILING) diff --git a/src/ggml-vulkan/CMakeLists.txt b/src/ggml-vulkan/CMakeLists.txt index b97e7bf9..ec194126 100644 --- a/src/ggml-vulkan/CMakeLists.txt +++ b/src/ggml-vulkan/CMakeLists.txt @@ -77,6 +77,11 @@ if (Vulkan_FOUND) ) target_link_libraries(ggml-vulkan PRIVATE Vulkan::Vulkan) + if(ANDROID) + set(GGML_PKGCONFIG_LIBS_PRIVATE "${GGML_PKGCONFIG_LIBS_PRIVATE} -lvulkan" PARENT_SCOPE) + else() + set(GGML_PKGCONFIG_REQUIRES_PRIVATE "${GGML_PKGCONFIG_REQUIRES_PRIVATE} vulkan" PARENT_SCOPE) + endif() target_include_directories(ggml-vulkan PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) # Workaround to the "can't dereference invalidated vector iterator" bug in clang-cl debug build ================================================ FILE: ports/ggml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ggml-org/ggml REF 55bc9320a4aae82af18e23eefd5de319a755d7b9 SHA512 9433c9c258bbbfa817051f2ba2a8c8f166ee885c953d3ee27198890d4af8366fdee11ba55514b8b8414c836615e56eceaa98f33a01ecf51846338bc60d34263b HEAD_REF master PATCHES cmake-config.diff pkgconfig.diff relax-link-options.diff vulkan-shaders-gen.diff fix-dequant_funcs.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES blas GGML_BLAS cuda GGML_CUDA metal GGML_METAL opencl GGML_OPENCL openmp GGML_OPENMP vulkan GGML_VULKAN ) if("blas" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND FEATURE_OPTIONS "-DCMAKE_REQUIRE_FIND_PACKAGE_BLAS=ON" # workaround message(ERROR ...) "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) endif() if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() if("opencl" IN_LIST FEATURES) vcpkg_find_acquire_program(PYTHON3) list(APPEND FEATURE_OPTIONS "-DPython3_EXECUTABLE=${PYTHON3}" ) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") message(STATUS "The CPU backend is not supported for arm64 with MSVC.") list(APPEND FEATURE_OPTIONS "-DGGML_CPU=OFF" ) if(FEATURES STREQUAL "core") message(WARNING "No backend enabled!") endif() endif() if("vulkan" IN_LIST FEATURES AND VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DVulkan_GLSLC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc/glslc${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-DVULKAN_SHADERS_GEN_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/vulkan-shaders-gen${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" GGML_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGGML_STATIC=${GGML_STATIC} -DGGML_CCACHE=OFF -DGGML_BUILD_NUMBER=1 -DGGML_BUILD_TESTS=OFF -DGGML_BUILD_EXAMPLES=OFF -DGGML_HIP=OFF -DGGML_SYCL=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME ggml CONFIG_PATH "lib/cmake/ggml") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ggml.h" "#ifdef GGML_SHARED" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ggml-backend.h" "#ifdef GGML_BACKEND_SHARED" "#if 1") endif() if("vulkan" IN_LIST FEATURES AND NOT VCPKG_CROSSCOMPILING) vcpkg_copy_tools(TOOL_NAMES vulkan-shaders-gen AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ggml/relax-link-options.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c8f3d859..8aa425f6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -117,9 +117,7 @@ if (NOT MSVC) if (UNIX AND NOT APPLE) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.so") endif() - add_link_options(-static) if (MINGW) - add_link_options(-static-libgcc -static-libstdc++) endif() endif() if (GGML_GPROF) ================================================ FILE: ports/ggml/vcpkg.json ================================================ { "name": "ggml", "version-date": "2025-11-17", "port-version": 1, "description": "Tensor library for machine learning", "homepage": "https://github.com/ggml-org/ggml", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "blas": { "description": "Enable BLAS support", "dependencies": [ "blas", "cblas" ] }, "cuda": { "description": "Enable CUDA support", "supports": "!(windows & staticcrt)", "dependencies": [ "cuda" ] }, "metal": { "description": "Enable Metal support", "supports": "osx" }, "opencl": { "description": "Enable OpenCL support", "supports": "!arm32", "dependencies": [ "opencl" ] }, "openmp": { "description": "Enable OpenMP support", "supports": "!osx" }, "vulkan": { "description": "Enable Vulkan support", "dependencies": [ { "name": "ggml", "host": true, "default-features": false, "features": [ "vulkan" ] }, { "name": "shaderc", "host": true }, "vulkan" ] } } } ================================================ FILE: ports/ggml/vulkan-shaders-gen.diff ================================================ diff --git a/src/ggml-vulkan/CMakeLists.txt b/src/ggml-vulkan/CMakeLists.txt index b97e7bf9..0ba5fcdd 100644 --- a/src/ggml-vulkan/CMakeLists.txt +++ b/src/ggml-vulkan/CMakeLists.txt @@ -110,6 +110,12 @@ if (Vulkan_FOUND) add_compile_definitions(GGML_VULKAN_RUN_TESTS) endif() + if(DEFINED VULKAN_SHADERS_GEN_EXECUTABLE) + add_executable(vulkan-shaders-gen IMPORTED) + set_target_properties(vulkan-shaders-gen PROPERTIES IMPORTED_LOCATION "${VULKAN_SHADERS_GEN_EXECUTABLE}") + elseif(1) + add_subdirectory(vulkan-shaders) + elseif(0) # Set up toolchain for host compilation whether cross-compiling or not if (CMAKE_CROSSCOMPILING) if (GGML_VULKAN_SHADERS_GEN_TOOLCHAIN) @@ -159,6 +165,8 @@ if (Vulkan_FOUND) set (_ggml_vk_host_suffix $,.exe,>) set (_ggml_vk_genshaders_dir "${CMAKE_BINARY_DIR}/$") set (_ggml_vk_genshaders_cmd "${_ggml_vk_genshaders_dir}/vulkan-shaders-gen${_ggml_vk_host_suffix}") + endif() + set (_ggml_vk_genshaders_cmd "vulkan-shaders-gen") set (_ggml_vk_header "${CMAKE_CURRENT_BINARY_DIR}/ggml-vulkan-shaders.hpp") set (_ggml_vk_input_dir "${CMAKE_CURRENT_SOURCE_DIR}/vulkan-shaders") set (_ggml_vk_output_dir "${CMAKE_CURRENT_BINARY_DIR}/vulkan-shaders.spv") ================================================ FILE: ports/ghc-filesystem/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gulrak/filesystem REF "v${VERSION}" HEAD_REF master SHA512 6eae921485ecdaf4b8329a568b1f4f612ee491fc5fdeafce9c8000b9bf1a73b6fa4e07d0d4ddf05be49efe79e9bddfbcc0aba85529cb016668797a8d89eb9b82 ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGHC_FILESYSTEM_BUILD_TESTING=OFF -DGHC_FILESYSTEM_BUILD_EXAMPLES=OFF -DGHC_FILESYSTEM_WITH_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ghc_filesystem CONFIG_PATH "lib/cmake/ghc_filesystem" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ghc-filesystem/vcpkg.json ================================================ { "name": "ghc-filesystem", "version": "1.5.14", "description": "An implementation of C++17 std::filesystem for C++11/C++14/C++17/C++20 on Windows, macOS, Linux and FreeBSD", "homepage": "https://github.com/gulrak/filesystem", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gherkin-c/fix-include-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 74b9ffb..6af4645 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ LIST(APPEND GHERKIN_SRS ) add_library(gherkin ${GHERKIN_SRS}) -target_include_directories(gherkin PUBLIC "$") +target_include_directories(gherkin PUBLIC "$" "$") if (BUILD_GHERKIN_TESTS) LIST(APPEND GENERATE_TOKEN @@ -96,7 +96,7 @@ if (BUILD_GHERKIN_TESTS) ENDFOREACH() endif() -set(include_install_dir "include") +set(include_install_dir "include/gherkin-c") set(lib_install_dir "lib/") set(bin_install_dir "bin/") set(config_install_dir "lib/cmake/") ================================================ FILE: ports/gherkin-c/fix-install-error.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3227bf5..74b9ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,3 @@ install( # NAMESPACE "${namespace}" # DESTINATION "${config_install_dir}") -add_custom_target(install_${PROJECT_NAME} - $(MAKE) install - DEPENDS gherkin - COMMENT "Installing ${PROJECT_NAME}") ================================================ FILE: ports/gherkin-c/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c-libs/gherkin-c REF dd180edc7d092311f2e90a0c4957061156d39dd3 SHA512 c6b38ab0e7a0fd1061d86b0ff9d9140f8c3d6f15cfc1673e947254c6c03a66d3e6aae5b267b074aa10fa30ba2850190c9e9ea7c12e340e4f8c5575b9bf31bab3 HEAD_REF master PATCHES fix-install-error.patch fix-include-path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_GHERKIN_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gherkin-c" RENAME copyright) ================================================ FILE: ports/gherkin-c/vcpkg.json ================================================ { "name": "gherkin-c", "version-date": "2019-10-07", "port-version": 3, "description": "Gherkin parser/compiler in C", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/giflib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(giflib C) set(GIFLIB_EXPORTS "NOTFOUND" CACHE FILEPATH "The path of the DEF file listing the DLL exports.") set(GIFLIB_HEADERS gif_lib.h ) set(GIFLIB_SOURCES dgif_lib.c egif_lib.c gifalloc.c gif_err.c gif_font.c gif_hash.c openbsd-reallocarray.c ) add_definitions(-D_CRT_SECURE_NO_WARNINGS) include(CheckSymbolExists) check_symbol_exists(reallocarray "stdlib.h" HAVE_REALLOCARRAY) if(HAVE_REALLOCARRAY) add_definitions(-DHAVE_REALLOCARRAY) endif() add_library(gif ${GIFLIB_SOURCES}) if(BUILD_SHARED_LIBS AND WIN32) target_sources(gif PRIVATE "${GIFLIB_EXPORTS}") else() set(UNUSED "${GIFLIB_EXPORTS}") endif() if (NOT GIFLIB_SKIP_HEADERS) install(FILES ${GIFLIB_HEADERS} DESTINATION include) endif () install(TARGETS gif RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) ================================================ FILE: ports/giflib/exports.def ================================================ EXPORTS DGifCloseFile @1 DGifExtensionToGCB @2 DGifGetCode @3 DGifGetCodeNext @4 DGifGetExtension @5 DGifGetExtensionNext @6 DGifGetImageDesc @7 DGifGetLZCodes @8 DGifGetLine @9 DGifGetPixel @10 DGifGetRecordType @11 DGifGetScreenDesc @12 DGifOpen @13 DGifOpenFileHandle @14 DGifOpenFileName @15 DGifSavedExtensionToGCB @16 DGifSlurp @17 EGifCloseFile @18 EGifGCBToExtension @19 EGifGCBToSavedExtension @20 EGifGetGifVersion @21 EGifOpen @22 EGifOpenFileHandle @23 EGifOpenFileName @24 EGifPutCode @25 EGifPutCodeNext @26 EGifPutComment @27 EGifPutExtension @28 EGifPutExtensionBlock @29 EGifPutExtensionLeader @30 EGifPutExtensionTrailer @31 EGifPutImageDesc @32 EGifPutLine @33 EGifPutPixel @34 EGifPutScreenDesc @35 EGifSetGifVersion @36 EGifSpew @37 FreeLastSavedImage @38 GifAddExtensionBlock @39 GifApplyTranslation @40 GifAsciiTable8x8 @41 DATA GifBitSize @42 GifDrawBox @43 GifDrawBoxedText8x8 @44 GifDrawRectangle @45 GifDrawText8x8 @46 GifErrorString @47 GifFreeExtensions @48 GifFreeMapObject @49 GifFreeSavedImages @50 GifMakeMapObject @51 GifMakeSavedImage @52 GifUnionColorMap @53 openbsd_reallocarray @54 ================================================ FILE: ports/giflib/msvc.diff ================================================ diff --git a/dgif_lib.c b/dgif_lib.c index cbcf23f..15dee84 100644 --- a/dgif_lib.c +++ b/dgif_lib.c @@ -57,7 +57,7 @@ GifFileType *DGifOpenFileName(const char *FileName, int *Error) { int FileHandle; GifFileType *GifFile; - if ((FileHandle = open(FileName, O_RDONLY)) == -1) { + if ((FileHandle = _open(FileName, O_RDONLY)) == -1) { if (Error != NULL) { *Error = D_GIF_ERR_OPEN_FAILED; } @@ -84,7 +84,7 @@ GifFileType *DGifOpenFileHandle(int FileHandle, int *Error) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } - (void)close(FileHandle); + (void)_close(FileHandle); return NULL; } @@ -99,7 +99,7 @@ GifFileType *DGifOpenFileHandle(int FileHandle, int *Error) { if (Error != NULL) { *Error = D_GIF_ERR_NOT_ENOUGH_MEM; } - (void)close(FileHandle); + (void)_close(FileHandle); free((char *)GifFile); return NULL; } @@ -110,7 +110,7 @@ GifFileType *DGifOpenFileHandle(int FileHandle, int *Error) { _setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */ #endif /* _WIN32 */ - f = fdopen(FileHandle, "rb"); /* Make it into a stream: */ + f = _fdopen(FileHandle, "rb"); /* Make it into a stream: */ /*@-mustfreeonly@*/ GifFile->Private = (void *)Private; diff --git a/egif_lib.c b/egif_lib.c index 1526868..6644eed 100644 --- a/egif_lib.c +++ b/egif_lib.c @@ -64,10 +64,10 @@ GifFileType *EGifOpenFileName(const char *FileName, const bool TestExistence, GifFileType *GifFile; if (TestExistence) { - FileHandle = open(FileName, O_WRONLY | O_CREAT | O_EXCL, + FileHandle = _open(FileName, O_WRONLY | O_CREAT | O_EXCL, S_IREAD | S_IWRITE); } else { - FileHandle = open(FileName, O_WRONLY | O_CREAT | O_TRUNC, + FileHandle = _open(FileName, O_WRONLY | O_CREAT | O_TRUNC, S_IREAD | S_IWRITE); } @@ -79,7 +79,7 @@ GifFileType *EGifOpenFileName(const char *FileName, const bool TestExistence, } GifFile = EGifOpenFileHandle(FileHandle, Error); if (GifFile == (GifFileType *)NULL) { - (void)close(FileHandle); + (void)_close(FileHandle); } return GifFile; } @@ -125,7 +125,7 @@ GifFileType *EGifOpenFileHandle(const int FileHandle, int *Error) { _setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */ #endif /* _WIN32 */ - f = fdopen(FileHandle, "wb"); /* Make it into a stream: */ + f = _fdopen(FileHandle, "wb"); /* Make it into a stream: */ GifFile->Private = (void *)Private; Private->FileHandle = FileHandle; diff --git a/gif_font.c b/gif_font.c index 75f9731..c215795 100644 --- a/gif_font.c +++ b/gif_font.c @@ -200,6 +200,9 @@ void GifDrawRectangle(SavedImage *Image, const int x, const int y, const int w, } } +#ifdef _MSC_VER +# define strtok_r strtok_s +#endif void GifDrawBoxedText8x8(SavedImage *Image, const int x, const int y, const char *legend, const int border, const int bg, const int fg) { ================================================ FILE: ports/giflib/portfile.cmake ================================================ set(EXTRA_PATCHES "") if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND EXTRA_PATCHES msvc.diff) endif() vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO "giflib" FILENAME "giflib-${VERSION}.tar.gz" SHA512 0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f PATCHES ${EXTRA_PATCHES} ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DGIFLIB_EXPORTS=${CMAKE_CURRENT_LIST_DIR}/exports.def" OPTIONS_DEBUG -DGIFLIB_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gif") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/giflib/usage ================================================ The package giflib is compatible with built-in CMake targets: find_package(GIF REQUIRED) target_link_libraries(main PRIVATE GIF::GIF) ================================================ FILE: ports/giflib/vcpkg-cmake-wrapper.cmake ================================================ find_path(GIF_INCLUDE_DIR NAMES gif_lib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) find_library(GIF_LIBRARY_RELEASE NAMES gif PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(GIF_LIBRARY_DEBUG NAMES gif PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) include(SelectLibraryConfigurations) select_library_configurations(GIF) set(GIF_LIBRARY "${GIF_LIBRARY}" CACHE STRING "") unset(GIF_LIBRARY) unset(GIF_FOUND) if(NOT TARGET GIF::GIF) add_library(GIF::GIF UNKNOWN IMPORTED) set_target_properties(GIF::GIF PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${GIF_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS RELEASE IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" IMPORTED_LOCATION_RELEASE "${GIF_LIBRARY_RELEASE}" ) if(GIF_LIBRARY_DEBUG) set_property(TARGET GIF::GIF APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(GIF::GIF PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" IMPORTED_LOCATION_DEBUG "${GIF_LIBRARY_DEBUG}") endif() endif() _find_package(${ARGS}) ================================================ FILE: ports/giflib/vcpkg.json ================================================ { "name": "giflib", "version": "5.2.2", "port-version": 2, "description": "A library for reading and writing gif images.", "homepage": "https://sourceforge.net/projects/giflib/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ginkgo/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ginkgo-project/ginkgo REF "v${VERSION}" SHA512 f151c99738847ae2e3fb42131c3d3a8c67d39fc985e1d294060134499d96bc802c10cb6c1388bca7acab16e546c2549221f2854e02277f913726a543139b143b HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp GINKGO_BUILD_OMP cuda GINKGO_BUILD_CUDA mpi GINKGO_BUILD_MPI half GINKGO_ENABLE_HALF bfloat16 GINKGO_ENABLE_BFLOAT16 ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" "-DCMAKE_CUDA_ARCHITECTURES=native" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGINKGO_BUILD_REFERENCE=ON -DGINKGO_BUILD_TESTS=OFF -DGINKGO_BUILD_EXAMPLES=OFF -DGINKGO_BUILD_HIP=OFF -DGINKGO_BUILD_SYCL=OFF -DGINKGO_BUILD_HWLOC=OFF -DGINKGO_BUILD_BENCHMARKS=OFF -DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_SKIP_DEPENDENCY_UPDATE=ON -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ${FEATURE_OPTIONS} ${CUDA_ARCHITECTURES_OPTION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Ginkgo) vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ginkgo" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ginkgo") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/CMakeFiles") ================================================ FILE: ports/ginkgo/usage ================================================ The package ginkgo provides CMake targets: find_package(Ginkgo CONFIG REQUIRED) target_link_libraries(main PRIVATE Ginkgo::ginkgo) ================================================ FILE: ports/ginkgo/vcpkg.json ================================================ { "name": "ginkgo", "version-semver": "1.11.0", "description": "Ginkgo is a high-performance linear algebra library for manycore systems, with a focus on sparse solution of linear systems.", "homepage": "https://github.com/ginkgo-project/ginkgo", "license": "BSD-3-Clause", "supports": "!(x86 | android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bfloat16": { "description": "Enable bfloat16 precision in Ginkgo", "supports": "!windows" }, "cuda": { "description": "Build the CUDA backend of Ginkgo", "dependencies": [ "cuda" ] }, "half": { "description": "Enable half precision in Ginkgo", "supports": "!windows" }, "mpi": { "description": "Build the distributed MPI backend of Ginkgo", "supports": "!windows", "dependencies": [ "mpi" ] }, "openmp": { "description": "Build the OpenMP backend of Ginkgo", "supports": "mingw | !windows" } } } ================================================ FILE: ports/gklib/build-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a9a694..fd3705e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,11 +163,6 @@ target_compile_definitions(${PROJECT_NAME} target_compile_options(${PROJECT_NAME} PUBLIC $<$,$>:-pg>) -target_compile_options(${PROJECT_NAME} - PUBLIC $<$,$>,$>:-g>) - -target_compile_options(${PROJECT_NAME} - PUBLIC $<$,$>>:-O3>) target_link_libraries(${PROJECT_NAME} PUBLIC $<$:OpenMP::OpenMP_C>) diff --git a/cmake/GKlibSystem.cmake b/cmake/GKlibSystem.cmake index 249d424..94d9fd6 100644 --- a/cmake/GKlibSystem.cmake +++ b/cmake/GKlibSystem.cmake @@ -2,7 +2,6 @@ # Add compiler flags. if(MSVC) - set(GKlib_COPTS "/Ox") set(GKlib_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") elseif(MINGW) set(GKlib_COPTS "-DUSE_GKREGEX") @@ -20,6 +19,8 @@ if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") if(VALGRIND) set(GKlib_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic") + elseif(1) + # Use flags from toolchain and triplet else() set(GKlib_COPTIONS "${GKlib_COPTIONS} -march=native") endif(VALGRIND) @@ -30,6 +31,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") # GCC warnings. set(GKlib_COPTIONS "${GKlib_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label") + string(REPLACE " -Werror " " " GKlib_COPTIONS "${GKlib_COPTIONS}") endif() if(${CMAKE_C_COMPILER_ID} MATCHES "Sun") diff --git a/include/gk_ms_inttypes.h b/include/gk_ms_inttypes.h index b89fc10..7247c38 100644 --- a/include/gk_ms_inttypes.h +++ b/include/gk_ms_inttypes.h @@ -35,6 +35,8 @@ #ifndef _MSC_INTTYPES_H_ // [ #define _MSC_INTTYPES_H_ +#include +#elif 0 #if _MSC_VER > 1000 #pragma once diff --git a/include/gk_ms_stdint.h b/include/gk_ms_stdint.h index 7e200dc..1c51958 100644 --- a/include/gk_ms_stdint.h +++ b/include/gk_ms_stdint.h @@ -35,6 +35,8 @@ #ifndef _MSC_STDINT_H_ // [ #define _MSC_STDINT_H_ +#include +#elif 0 #if _MSC_VER > 1000 #pragma once diff --git a/src/win32/adapt.c b/src/win32/adapt.c index 546857c..d56f767 100644 --- a/src/win32/adapt.c +++ b/src/win32/adapt.c @@ -3,7 +3,7 @@ \brief Implementation of Win32 adaptation of libc functions */ -#include "adapt.h" +#include "win32/adapt.h" pid_t getpid(void) { ================================================ FILE: ports/gklib/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KarypisLab/GKlib REF 6e7951358fd896e2abed7887196b6871aac9f2f8 SHA512 54ba87f2c47e025ada0fe6fe608d9d144df5cd13e97e71892dbba4d50cd96409add309937a540cdf8bd2632cbfbc0e22e080a32d114ba6037008c8676aa8d88d PATCHES build-fixes.patch regex.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_INCLUDEDIR=include/GKlib -DGKLIB_BUILD_APPS=OFF -DSHARED=${SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/GKlib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/gklib/regex.patch ================================================ --- 71aac9f2f8-6ab87cd67d.clean/CMakeLists.txt.old 2026-02-05 23:01:42.685830600 +0100 +++ 71aac9f2f8-6ab87cd67d.clean/CMakeLists.txt 2026-02-05 23:02:00.820495600 +0100 @@ -109,6 +109,10 @@ if(NOT HAVE_PCREPOSIX_H) check_include_file(regex.h HAVE_REGEX_H) if(NOT HAVE_REGEX_H) set(USE_GKREGEX ON) + else() + if(MINGW) + target_link_libraries(${PROJECT_NAME} PUBLIC regex) + endif() endif() endif() ================================================ FILE: ports/gklib/vcpkg.json ================================================ { "name": "gklib", "version-date": "2025-07-06", "port-version": 1, "description": "General helper libraries for KarypisLab.", "homepage": "https://github.com/KarypisLab/GKlib/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gl2ps/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://geuz.org/gl2ps/src/gl2ps-${VERSION}.tgz" FILENAME "gl2ps-${VERSION}.tgz" SHA512 46652e1b3825ace61dbd77c4b0bf451e7671c248eb18bbd3369e2fac00056ea4cd5d2578561984313c239e3b02f78b9d9a76d963c935af65a13bc2abfc538620 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES separate-static-dynamic-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0057=NEW -DVCPKG_LOCK_FIND_PACKAGE_GLUT=OFF -DVCPKG_LOCK_FIND_PACKAGE_LATEX=OFF -DVCPKG_LOCK_FIND_PACKAGE_OpenGL=ON ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gl2ps.h" "defined\(GL2PSDLL\)" "(1)") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gl2ps.h" "defined(HAVE_ZLIB)" "(1)") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gl2ps.h" "defined(HAVE_LIBPNG)" "(1)") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/README.txt" "${SOURCE_PATH}/COPYING.LGPL" "${SOURCE_PATH}/COPYING.GL2PS" ) ================================================ FILE: ports/gl2ps/separate-static-dynamic-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0001c4f..e5e1d00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,19 +139,15 @@ if(APPLE) endif() if(OPENGL_FOUND) - add_library(lib STATIC gl2ps.c gl2ps.h) - set_target_properties(lib PROPERTIES OUTPUT_NAME gl2ps) - - add_library(shared SHARED gl2ps.c gl2ps.h) - target_link_libraries(shared ${EXTERNAL_LIBRARIES}) - set_target_properties(shared PROPERTIES OUTPUT_NAME gl2ps + add_library(gl2ps gl2ps.c gl2ps.h) + target_link_libraries(gl2ps ${EXTERNAL_LIBRARIES}) + set_target_properties(gl2ps PROPERTIES VERSION ${GL2PS_MAJOR_VERSION}.${GL2PS_MINOR_VERSION}.${GL2PS_PATCH_VERSION} SOVERSION ${GL2PS_MAJOR_VERSION}) - if(WIN32 OR CYGWIN) - set_target_properties(shared PROPERTIES - COMPILE_FLAGS "-DGL2PSDLL -DGL2PSDLL_EXPORTS") + if(WIN32 AND BUILD_SHARED_LIBS) + target_compile_definitions(gl2ps PRIVATE -DGL2PSDLL -DGL2PSDLL_EXPORTS) endif() - install(TARGETS lib shared RUNTIME DESTINATION bin + install(TARGETS gl2ps RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) endif() @@ -161,6 +157,7 @@ if(WIN32) else() set(GL2PS_DOC share/doc/gl2ps) endif() +set(GL2PS_DOC share/doc) install(FILES gl2ps.h DESTINATION include) install(FILES ${CMAKE_SOURCE_DIR}/README.txt DESTINATION ${GL2PS_DOC}) ================================================ FILE: ports/gl2ps/vcpkg.json ================================================ { "name": "gl2ps", "version": "1.4.2", "port-version": 5, "description": "OpenGL to PostScript Printing Library", "homepage": "https://gitlab.onelab.info/gl2ps/gl2ps", "supports": "!android", "dependencies": [ "libpng", "opengl", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/gl3w/0001-enable-shared-build.patch ================================================ From 5f482a64c642f830f1d25f8abae7cae6dd2c6c2b Mon Sep 17 00:00:00 2001 From: Stanislav Ershov Date: Mon, 8 Jan 2018 03:16:07 +0300 Subject: [PATCH] enable shared build --- gl3w_gen.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gl3w_gen.py b/gl3w_gen.py index 611331a..3515cf9 100755 --- a/gl3w_gen.py +++ b/gl3w_gen.py @@ -130,6 +130,10 @@ with open(os.path.join(args.root, 'include/GL/gl3w.h'), 'wb') as f: #include +#ifndef GL3W_API + #define GL3W_API +#endif + #ifndef __gl_h_ #define __gl_h_ #endif @@ -147,10 +151,10 @@ typedef void (*GL3WglProc)(void); typedef GL3WglProc (*GL3WGetProcAddressProc)(const char *proc); /* gl3w api */ -int gl3wInit(void); -int gl3wInit2(GL3WGetProcAddressProc proc); -int gl3wIsSupported(int major, int minor); -GL3WglProc gl3wGetProcAddress(const char *proc); +GL3W_API int gl3wInit(void); +GL3W_API int gl3wInit2(GL3WGetProcAddressProc proc); +GL3W_API int gl3wIsSupported(int major, int minor); +GL3W_API GL3WglProc gl3wGetProcAddress(const char *proc); /* gl3w internal state */ ''') @@ -162,7 +168,7 @@ GL3WglProc gl3wGetProcAddress(const char *proc); write(f, r''' } gl; }; -extern union GL3WProcs gl3wProcs; +GL3W_API extern union GL3WProcs gl3wProcs; /* OpenGL functions */ ''') @@ -329,7 +333,7 @@ static const char *proc_names[] = { write(f, '\t"{0}",\n'.format(proc)) write(f, r'''}; -union GL3WProcs gl3wProcs; +GL3W_API union GL3WProcs gl3wProcs; static void load_procs(GL3WGetProcAddressProc proc) { -- 2.15.0.windows.1 ================================================ FILE: ports/gl3w/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(gl3w C) find_package(OpenGL REQUIRED) find_path(GLCOREARB_H NAMES GL/glcorearb.h) add_library(gl3w src/gl3w.c) target_include_directories(gl3w PUBLIC $ $ PRIVATE ${GLCOREARB_H} ${OPENGL_INCLUDE_DIR} ) if(BUILD_SHARED_LIBS) target_compile_definitions(gl3w PRIVATE "-DGL3W_API=__declspec(dllexport)") endif() target_link_libraries(gl3w PRIVATE ${OPENGL_LIBRARIES}) install(TARGETS gl3w EXPORT gl3wExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT gl3wExport FILE gl3wConfig.cmake NAMESPACE unofficial::gl3w:: DESTINATION share/gl3w ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES include/GL/gl3w.h DESTINATION include/GL) endif() ================================================ FILE: ports/gl3w/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skaslev/gl3w REF 99ed321100d37032cb6bfa7dd8dea85f10c86132 SHA512 217f65644c73c33383b09893fa5ede066cc4b1cddab051feac11d7e939dba14ed637b297ea42a0426bc0a1a3bc665998a91c27ca10d28704ce9e2d3d90e73595 HEAD_REF master PATCHES 0001-enable-shared-build.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CURRENT_INSTALLED_DIR}/include/GL/glcorearb.h" DESTINATION "${SOURCE_PATH}/include/GL") file(COPY "${CURRENT_INSTALLED_DIR}/include/KHR/khrplatform.h" DESTINATION "${SOURCE_PATH}/include/KHR") vcpkg_find_acquire_program(PYTHON3) if("ext" IN_LIST FEATURES) set(EXT "--ext") endif() vcpkg_execute_required_process( COMMAND "${PYTHON3}" "${SOURCE_PATH}/gl3w_gen.py" "${EXT}" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME gl3w-gen ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/GL/gl3w.h" "#define GL3W_API" "#define GL3W_API __declspec(dllimport)") endif() file(INSTALL "${SOURCE_PATH}/UNLICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gl3w/vcpkg.json ================================================ { "name": "gl3w", "version-date": "2018-05-31", "port-version": 5, "description": "Simple OpenGL core profile loading", "homepage": "https://github.com/skaslev/gl3w", "dependencies": [ "egl-registry", "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ext": { "description": "include the GL Extensions in output header" } } } ================================================ FILE: ports/glad/encoding.patch ================================================ diff --git a/glad/__main__.py b/glad/__main__.py index e7c0544a5..1e10dcc60 100644 --- a/glad/__main__.py +++ b/glad/__main__.py @@ -32,7 +32,7 @@ def main(): if reproducible: logger.info('reproducible build, using packaged specification: \'%s.xml\'', value) try: - return spec_cls.from_file(glad.files.open_local(value + '.xml')) + return spec_cls.from_file(glad.files.open_local(value + '.xml', encoding='utf-8-sig')) except IOError: raise ValueError('unable to open reproducible copy of {}.xml, ' 'try dropping --reproducible'.format(value)) ================================================ FILE: ports/glad/find_python.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c4031a6..6a106e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,16 +23,6 @@ project(GLAD VERSION 0.1.34 LANGUAGES C) set(GLAD_DIR "${CMAKE_CURRENT_SOURCE_DIR}") -# Find the python interpreter, set the PYTHON_EXECUTABLE variable -if (CMAKE_VERSION VERSION_LESS 3.12) - # this logic is deprecated in CMake after 3.12 - find_package(PythonInterp REQUIRED) -else() - # the new hotness. This will preferentially find Python3 instead of Python2 - find_package(Python) - set(PYTHON_EXECUTABLE ${Python_EXECUTABLE}) -endif() - # Options set(GLAD_OUT_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "Output directory") set(GLAD_PROFILE "compatibility" CACHE STRING "OpenGL profile") ================================================ FILE: ports/glad/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Dav1dde/glad REF 1ecd45775d96f35170458e6b148eb0708967e402 # 0.1.36 SHA512 f6292e9dbce503a95b6eca927a90cf8a06f5e3de39b84f9a47e0d9273a6ea3f6591a64d35f2e33b5ea353e0c784f15c38579fc15aa6c5b180154e241ccbb16fe HEAD_REF master PATCHES encoding.patch find_python.patch ) if(NOT GLAD_PROFILE) set(GLAD_PROFILE "compatibility") endif() message(STATUS "This version of glad uses the compatibility profile. To use the core profile instead, create an overlay port of this with GLAD_PROFILE set to 'core' or set GLAD_PROFILE to 'core' in a custom triplet.") message(STATUS "This recipe is at ${CMAKE_CURRENT_LIST_DIR}") message(STATUS "See the overlay ports documentation at https://github.com/microsoft/vcpkg/blob/master/docs/specifications/ports-overlay.md") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES extensions GLAD_ALL_EXTENSIONS INVERTED_FEATURES loader GLAD_NO_LOADER ) set(GLAD_SPEC "gl") if("egl" IN_LIST FEATURES) string(APPEND GLAD_SPEC ",egl") endif() if("wgl" IN_LIST FEATURES) string(APPEND GLAD_SPEC ",wgl") endif() if("glx" IN_LIST FEATURES) string(APPEND GLAD_SPEC ",glx") endif() # This needs to be ordered highest to lowest for it to be correct! if("gl-api-latest" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=") elseif("gl-api-46" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.6") elseif("gl-api-45" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.5") elseif("gl-api-44" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.4") elseif("gl-api-43" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.3") elseif("gl-api-42" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.2") elseif("gl-api-41" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.1") elseif("gl-api-40" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=4.0") elseif("gl-api-33" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=3.3") elseif("gl-api-32" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=3.2") elseif("gl-api-31" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=3.1") elseif("gl-api-30" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=3.0") elseif("gl-api-21" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=2.1") elseif("gl-api-20" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=2.0") elseif("gl-api-15" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.5") elseif("gl-api-14" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.4") elseif("gl-api-13" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.3") elseif("gl-api-12" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.2") elseif("gl-api-11" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.1") elseif("gl-api-10" IN_LIST FEATURES) LIST(APPEND GLAD_API "gl=1.0") endif() # This needs to be ordered highest to lowest for it to be correct! if("gles1-api-latest" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles1=") elseif("gles1-api-10" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles1=1.0") endif() # This needs to be ordered highest to lowest for it to be correct! if("gles2-api-latest" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles2=") elseif("gles2-api-32" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles2=3.2") elseif("gles2-api-31" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles2=3.1") elseif("gles2-api-30" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles2=3.0") elseif("gles2-api-20" IN_LIST FEATURES) LIST(APPEND GLAD_API "gles2=2.0") endif() # This needs to be ordered highest to lowest for it to be correct! if("glsc2-api-latest" IN_LIST FEATURES) LIST(APPEND GLAD_API "glsc2=") elseif("glsc2-api-20" IN_LIST FEATURES) LIST(APPEND GLAD_API "glsc2=2.0") endif() string(REPLACE ";" "," GLAD_API "${GLAD_API}") vcpkg_find_acquire_program(PYTHON3) file(COPY "${CURRENT_INSTALLED_DIR}/include/KHR/khrplatform.h" "${CURRENT_INSTALLED_DIR}/include/EGL/eglplatform.h" "${CURRENT_INSTALLED_DIR}/share/opengl/egl.xml" "${CURRENT_INSTALLED_DIR}/share/opengl/gl.xml" "${CURRENT_INSTALLED_DIR}/share/opengl/glx.xml" "${CURRENT_INSTALLED_DIR}/share/opengl/wgl.xml" DESTINATION "${SOURCE_PATH}/glad/files" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGLAD_EXPORT=OFF -DGLAD_INSTALL=ON -DGLAD_REPRODUCIBLE=ON -DGLAD_SPEC=${GLAD_SPEC} -DGLAD_API=${GLAD_API} -DGLAD_PROFILE=${GLAD_PROFILE} -DPYTHON_EXECUTABLE=${PYTHON3} ${FEATURE_OPTIONS} OPTIONS_DEBUG -DGLAD_GENERATOR="c-debug" OPTIONS_RELEASE -DGLAD_GENERATOR="c" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/glad) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/KHR") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/EGL") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/glad/vcpkg.json ================================================ { "name": "glad", "version": "0.1.36", "description": "Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.", "homepage": "https://github.com/Dav1dde/glad", "documentation": "https://github.com/Dav1dde/glad/wiki", "license": "MIT", "dependencies": [ "egl-registry", "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "loader" ], "features": { "egl": { "description": "Use `egl` spec instead of `gl`." }, "extensions": { "description": "Enables all extensions." }, "gl-api-10": { "description": "Imports extensions from OpenGL API specification version 1.0." }, "gl-api-11": { "description": "Imports extensions from OpenGL API specification version 1.1.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-10" ] } ] }, "gl-api-12": { "description": "Imports extensions from OpenGL API specification version 1.2.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-11" ] } ] }, "gl-api-13": { "description": "Imports extensions from OpenGL API specification version 1.3.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-12" ] } ] }, "gl-api-14": { "description": "Imports extensions from OpenGL API specification version 1.4.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-13" ] } ] }, "gl-api-15": { "description": "Imports extensions from OpenGL API specification version 1.5.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-14" ] } ] }, "gl-api-20": { "description": "Imports extensions from OpenGL API specification version 2.0.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-15" ] } ] }, "gl-api-21": { "description": "Imports extensions from OpenGL API specification version 2.1.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-20" ] } ] }, "gl-api-30": { "description": "Imports extensions from OpenGL API specification version 3.0.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-21" ] } ] }, "gl-api-31": { "description": "Imports extensions from OpenGL API specification version 3.1.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-30" ] } ] }, "gl-api-32": { "description": "Imports extensions from OpenGL API specification version 3.2.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-31" ] } ] }, "gl-api-33": { "description": "Imports extensions from OpenGL API specification version 3.3.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-32" ] } ] }, "gl-api-40": { "description": "Imports extensions from OpenGL API specification version 4.0.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-33" ] } ] }, "gl-api-41": { "description": "Imports extensions from OpenGL API specification version 4.1.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-40" ] } ] }, "gl-api-42": { "description": "Imports extensions from OpenGL API specification version 4.2.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-41" ] } ] }, "gl-api-43": { "description": "Imports extensions from OpenGL API specification version 4.3.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-42" ] } ] }, "gl-api-44": { "description": "Imports extensions from OpenGL API specification version 4.4.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-43" ] } ] }, "gl-api-45": { "description": "Imports extensions from OpenGL API specification version 4.5.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-44" ] } ] }, "gl-api-46": { "description": "Imports extensions from OpenGL API specification version 4.6.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-45" ] } ] }, "gl-api-latest": { "description": "Imports extensions from latest OpenGL API specification version.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gl-api-46" ] } ] }, "gles1-api-10": { "description": "Imports extensions from OpenGL ES 1 specification version 1.0." }, "gles1-api-latest": { "description": "Imports extensions from latest OpenGL ES 1 specification.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gles1-api-10" ] } ] }, "gles2-api-20": { "description": "Imports extensions from OpenGL ES 2 specification version 2.0." }, "gles2-api-30": { "description": "Imports extensions from OpenGL ES 2 specification version 3.0.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gles2-api-20" ] } ] }, "gles2-api-31": { "description": "Imports extensions from OpenGL ES 2 specification version 3.1.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gles2-api-30" ] } ] }, "gles2-api-32": { "description": "Imports extensions from OpenGL ES 2 specification version 3.2.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gles2-api-31" ] } ] }, "gles2-api-latest": { "description": "Imports extensions from latest OpenGL ES 2 specification.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "gles2-api-32" ] } ] }, "glsc2-api-20": { "description": "Imports extensions from OpenGL SC API specification version 2.0." }, "glsc2-api-latest": { "description": "Imports extensions from latest OpenGL SC API specification.", "dependencies": [ { "name": "glad", "default-features": false, "features": [ "glsc2-api-20" ] } ] }, "glx": { "description": "Use `glx` spec instead of `gl`. Only available with the X Window System.", "supports": "!(windows | uwp)" }, "loader": { "description": "Generate loader logic." }, "wgl": { "description": "Use `wgl` spec instead of `gl`. Only available for Windows and UWP platforms.", "supports": "!(linux | osx)" } } } ================================================ FILE: ports/glaze/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("Warning: `glaze` requires Clang15+ or GCC 12+ on Linux") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stephenberry/glaze REF "v${VERSION}" SHA512 5783ee6d3abee59c89d0ee9488ff71acd95ff938335bff60dc858c282381608397491ec6bfe5a535349e54b2933dac68493b1adb32782a29fcd56ad97ae1b925 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl glaze_ENABLE_SSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dglaze_DEVELOPER_MODE=OFF -Dglaze_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/glaze/vcpkg.json ================================================ { "name": "glaze", "version": "7.2.1", "description": "One of the fastest JSON libraries in the world. Glaze reads and writes from C++ memory, simplifying interfaces and offering incredible performance.", "homepage": "https://github.com/stephenberry/glaze", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "Enable SSL/TLS support for HTTPS servers", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/glbinding/0001_force-system-install.patch ================================================ 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 ".") # ./ ================================================ FILE: ports/glbinding/0002_fix-uwpmacro.patch ================================================ diff --git a/source/glbinding/CMakeLists.txt b/source/glbinding/CMakeLists.txt index 97654c8..bca68d1 100644 --- a/source/glbinding/CMakeLists.txt +++ b/source/glbinding/CMakeLists.txt @@ -261,6 +261,11 @@ target_link_libraries(${target} # Compile definitions # + +if (CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + target_compile_definitions(${target} PRIVATE SYSTEM_WINDOWS WINDOWS_STORE) +endif() + target_compile_definitions(${target} PRIVATE # since we use stl and stl is intended to use exceptions, exceptions should not be disabled diff --git a/source/glbinding/source/getProcAddress.cpp b/source/glbinding/source/getProcAddress.cpp index c1cfc5c..7e5f8bc 100644 --- a/source/glbinding/source/getProcAddress.cpp +++ b/source/glbinding/source/getProcAddress.cpp @@ -18,7 +18,11 @@ namespace glbinding { ProcAddress getProcAddress(const char * name) { - static auto module = LoadLibrary(_T("OPENGL32.DLL")); +#ifdef WINDOWS_STORE + static auto module = ::LoadPackagedLibrary(_T("OPENGL32.DLL"), 0); +#else + static auto module = ::LoadLibrary(_T("OPENGL32.DLL")); +#endif // Prevent static linking of opengl32 static auto wglGetProcAddress_ = reinterpret_cast(::GetProcAddress(module, "wglGetProcAddress")); ================================================ FILE: ports/glbinding/0003_fix-cmake-configs-paths.patch ================================================ diff --git a/3rdparty/KHR/CMakeLists.txt b/3rdparty/KHR/CMakeLists.txt index 25fac3a..429544f 100644 --- a/3rdparty/KHR/CMakeLists.txt +++ b/3rdparty/KHR/CMakeLists.txt @@ -43,7 +43,7 @@ add_library(${target} INTERFACE) add_library(externals::${target} ALIAS ${target}) # Export library for downstream projects -export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake) +export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake) # diff --git a/CMakeLists.txt b/CMakeLists.txt index 700b48b..8aaab8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,15 +141,15 @@ endif() 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 + set(INSTALL_CMAKE "share/${project}") # /usr/[local]/share//cmake set(INSTALL_EXAMPLES "share/${project}") # /usr/[local]/share/ set(INSTALL_DATA "share/${project}") # /usr/[local]/share/ set(INSTALL_BIN "bin") # /usr/[local]/bin set(INSTALL_SHARED "lib") # /usr/[local]/lib set(INSTALL_LIB "lib") # /usr/[local]/lib set(INSTALL_INCLUDE "include") # /usr/[local]/include - set(INSTALL_DOC "share/doc/${project}") # /usr/[local]/share/doc/ - set(INSTALL_SHORTCUTS "share/applications") # /usr/[local]/share/applications + set(INSTALL_DOC "share/${project}/doc") # /usr/[local]/share/doc/ + set(INSTALL_SHORTCUTS "share/${project}/applications") # /usr/[local]/share/applications set(INSTALL_ICONS "share/pixmaps") # /usr/[local]/share/pixmaps set(INSTALL_INIT "etc/init") # /etc/init (upstart init scripts) else() diff --git a/source/glbinding-aux/CMakeLists.txt b/source/glbinding-aux/CMakeLists.txt index 61cc166..cb0758a 100644 --- a/source/glbinding-aux/CMakeLists.txt +++ b/source/glbinding-aux/CMakeLists.txt @@ -137,7 +137,7 @@ add_library(${target} add_library(${META_PROJECT_NAME}::${target} ALIAS ${target}) # Export library for downstream projects -export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake) +export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake) # Create API export header generate_export_header(${target} diff --git a/source/glbinding/CMakeLists.txt b/source/glbinding/CMakeLists.txt index bca68d1..f014494 100644 --- a/source/glbinding/CMakeLists.txt +++ b/source/glbinding/CMakeLists.txt @@ -172,7 +172,7 @@ add_library(${target} add_library(${META_PROJECT_NAME}::${target} ALIAS ${target}) # Export library for downstream projects -export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/cmake/${target}/${target}-export.cmake) +export(TARGETS ${target} NAMESPACE ${META_PROJECT_NAME}:: FILE ${PROJECT_BINARY_DIR}/${target}-export.cmake) # Create API export header generate_export_header(${target} ================================================ FILE: ports/glbinding/0004_fix-config-expected-paths.patch ================================================ diff --git a/glbinding-config.cmake b/glbinding-config.cmake index 03fc505..01b6cc8 100644 --- a/glbinding-config.cmake +++ b/glbinding-config.cmake @@ -1,7 +1,7 @@ # This config script tries to locate the project either in its source tree # or from an install location. -# +# # Please adjust the list of submodules to search for. @@ -35,20 +35,11 @@ endmacro() # Try install location set(MODULE_FOUND FALSE) -find_modules("cmake") +find_modules(".") if(MODULE_FOUND) return() endif() -# Try common build locations -if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - find_modules("build-debug/cmake") - find_modules("build/cmake") -else() - find_modules("build/cmake") - find_modules("build-debug/cmake") -endif() - # Signal success/failure to CMake set(glbinding_FOUND ${MODULE_FOUND}) ================================================ FILE: ports/glbinding/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cginternals/glbinding REF v3.1.0 SHA512 d7294c9a0dc47a7c107b134e5dfa78c5812fc6bf739b9fd778fa7ce946d5ea971839a65c3985e0915fd75311e4a85fb221d33a71856c460199eab0e7622f7151 HEAD_REF master PATCHES 0001_force-system-install.patch 0002_fix-uwpmacro.patch 0003_fix-cmake-configs-paths.patch 0004_fix-config-expected-paths.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_TOOLS=OFF -DOPTION_BUILD_EXAMPLES=OFF -DGIT_REV=0 -DCMAKE_DISABLE_FIND_PACKAGE_cpplocate=ON -DOPTION_BUILD_EXAMPLES=OFF MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_cpplocate ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() ## _IMPORT_PREFIX needs to go up one extra level in the directory tree. file(GLOB_RECURSE TARGET_CMAKES "${CURRENT_PACKAGES_DIR}/*-export.cmake") foreach(TARGET_CMAKE IN LISTS TARGET_CMAKES) file(READ ${TARGET_CMAKE} _contents) string(REPLACE [[ 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) ]] [[ 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) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) ]] _contents "${_contents}") file(WRITE ${TARGET_CMAKE} "${_contents}") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Remove files already published by egl-registry file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR") # Handle copyright file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/glbinding/usage ================================================ The package glbinding:@TARGET_TRIPLET@ provides CMake targets: find_package(glbinding CONFIG REQUIRED) target_link_libraries(main PRIVATE glbinding::glbinding glbinding::glbinding-aux) ================================================ FILE: ports/glbinding/vcpkg.json ================================================ { "name": "glbinding", "version": "3.1.0", "port-version": 4, "description": "glbinding is an MIT licensed, cross-platform C++ binding for the OpenGL API", "homepage": "https://github.com/cginternals/glbinding", "license": "MIT", "dependencies": [ "egl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/glew/fix-LNK2019.patch ================================================ diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index 5649972..c0252ec 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -129,9 +129,6 @@ if (MSVC) target_compile_options (glew PRIVATE -GS-) target_compile_options (glew_s PRIVATE -GS-) # remove stdlib dependency - target_link_libraries (glew LINK_PRIVATE -nodefaultlib -noentry) - target_link_libraries (glew LINK_PRIVATE libvcruntime.lib) - target_link_libraries (glew LINK_PRIVATE msvcrt.lib ) string(REGEX REPLACE "/RTC(su|[1su])" "" CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}) elseif (WIN32 AND ((CMAKE_C_COMPILER_ID MATCHES "GNU") OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))) # remove stdlib dependency on windows with GCC and Clang (for similar reasons ================================================ FILE: ports/glew/portfile.cmake ================================================ if("x11" IN_LIST FEATURES) message(WARNING "${PORT} requires the following libraries from the system package manager:\n libxmu-dev\n libxi-dev\n libgl-dev\n\nThese can be installed on Ubuntu systems via apt-get install libxmu-dev libxi-dev libgl-dev.") endif() # Don't change to vcpkg_from_github! The sources in the git repository (archives) are missing some files that are distributed inside releases. # More info: https://github.com/nigels-com/glew/issues/31 and https://github.com/nigels-com/glew/issues/13 vcpkg_download_distfile(ARCHIVE URLS "https://github.com/nigels-com/glew/releases/download/glew-${VERSION}/glew-${VERSION}.tgz" FILENAME "glew-${VERSION}.tgz" SHA512 cb4caecf32ec0f180c2691dc7769ffc99571c64f259a2663a2b80e788f1c2fd5362c59e0caaeefed6fb78a4070366d244666a657358049b09071b59fae2377e0 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE glew PATCHES fix-LNK2019.patch trim-build.diff ) set(options "") if(VCPKG_TARGET_IS_ANDROID) list(APPEND options "-DGLEW_X11=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/build/cmake" OPTIONS ${options} -DBUILD_UTILS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/glew) vcpkg_fixup_pkgconfig() # Burn-in CMake build config vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/GL/glew.h" "ifndef GLEW_NO_GLU" "if 0") if(NOT VCPKG_BUILD_TYPE) set(libname GLEW) if(VCPKG_TARGET_IS_WINDOWS) set(libname glew32) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glew.pc" " -l${libname}" " -l${libname}d") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/GL/glew.h" "#ifdef GLEW_STATIC" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/GL/wglew.h" "#ifdef GLEW_STATIC" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/glew/trim-build.diff ================================================ diff --git a/build/cmake/CMakeLists.txt b/build/cmake/CMakeLists.txt index c5c1fb8..b1f41bf 100644 --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -162,8 +162,10 @@ endforeach() set(targets_to_install "") if(BUILD_SHARED_LIBS) list(APPEND targets_to_install glew) + set_target_properties(glew_s PROPERTIES EXCLUDE_FROM_ALL 1) else () list(APPEND targets_to_install glew_s) + set_target_properties(glew PROPERTIES EXCLUDE_FROM_ALL 1) endif() install ( TARGETS ${targets_to_install} @@ -235,6 +237,7 @@ if(WIN32 AND MSVC AND (NOT MSVC_VERSION LESS 1600)) DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS Debug RelWithDebInfo COMPONENT Runtime + OPTIONAL # subject to BUILD_SHARED_LIBS ) endif() ================================================ FILE: ports/glew/usage ================================================ glew provides CMake targets: # Legacy CMake find module find_package(GLEW REQUIRED) target_link_libraries(main PRIVATE GLEW::GLEW) # Modern CMake config package find_package(GLEW CONFIG REQUIRED) target_link_libraries(main PRIVATE GLEW::GLEW) glew provides pkg-config modules: # The OpenGL Extension Wrangler library glew ================================================ FILE: ports/glew/vcpkg-cmake-wrapper.cmake ================================================ include(SelectLibraryConfigurations) _find_package(GLEW CONFIG) if(GLEW_FOUND AND TARGET GLEW::GLEW AND NOT DEFINED GLEW_INCLUDE_DIRS) get_target_property(GLEW_INCLUDE_DIRS GLEW::GLEW INTERFACE_INCLUDE_DIRECTORIES) set(GLEW_INCLUDE_DIR ${GLEW_INCLUDE_DIRS}) get_target_property(_GLEW_DEFS GLEW::GLEW INTERFACE_COMPILE_DEFINITIONS) if("${_GLEW_DEFS}" MATCHES "GLEW_STATIC") get_target_property(GLEW_LIBRARY_DEBUG GLEW::GLEW IMPORTED_LOCATION_DEBUG) get_target_property(GLEW_LIBRARY_RELEASE GLEW::GLEW IMPORTED_LOCATION_RELEASE) else() get_target_property(GLEW_LIBRARY_DEBUG GLEW::GLEW IMPORTED_IMPLIB_DEBUG) get_target_property(GLEW_LIBRARY_RELEASE GLEW::GLEW IMPORTED_IMPLIB_RELEASE) endif() get_target_property(_GLEW_LINK_INTERFACE GLEW::GLEW IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE) # same for debug and release list(APPEND GLEW_LIBRARIES ${_GLEW_LINK_INTERFACE}) list(APPEND GLEW_LIBRARY ${_GLEW_LINK_INTERFACE}) select_library_configurations(GLEW) if("${_GLEW_DEFS}" MATCHES "GLEW_STATIC") set(GLEW_STATIC_LIBRARIES ${GLEW_LIBRARIES}) else() set(GLEW_SHARED_LIBRARIES ${GLEW_LIBRARIES}) endif() unset(_GLEW_DEFS) unset(_GLEW_LINK_INTERFACE) endif() ================================================ FILE: ports/glew/vcpkg.json ================================================ { "name": "glew", "version": "2.3.1", "description": "The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library.", "homepage": "https://github.com/nigels-com/glew", "supports": "!android", "dependencies": [ "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/glfw3/glfw3Config.cmake ================================================ if (NOT TARGET glfw) add_library(glfw INTERFACE IMPORTED) set_target_properties(glfw PROPERTIES INTERFACE_LINK_OPTIONS "-sUSE_GLFW=3" ) endif() ================================================ FILE: ports/glfw3/portfile.cmake ================================================ if (VCPKG_TARGET_IS_EMSCRIPTEN) # emscripten has built-in glfw3 library set(VCPKG_BUILD_TYPE release) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/glfw3Config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/glfw3") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO glfw/glfw REF ${VERSION} SHA512 39ad7a4521267fbebc35d2ff0c389a56236ead5fa4bdff33db113bd302f70f5f2869ff4e6db1979512e1542813292dff5a482e94dfce231750f0746c301ae9ed HEAD_REF master ) if(VCPKG_TARGET_IS_LINUX) message( "GLFW3 currently requires the following libraries from the system package manager: xinerama xcursor xorg libglu1-mesa pkg-config These can be installed on Ubuntu systems via sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev pkg-config Alternatively, when targeting the Wayland display server, use the packages listed in the GLFW documentation here: https://www.glfw.org/docs/3.3/compile.html#compile_deps_wayland") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES wayland GLFW_BUILD_WAYLAND ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGLFW_BUILD_EXAMPLES=OFF -DGLFW_BUILD_TESTS=OFF -DGLFW_BUILD_DOCS=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES GLFW_USE_WAYLAND ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/glfw3) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/glfw3/vcpkg.json ================================================ { "name": "glfw3", "version": "3.4", "port-version": 1, "description": "GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.", "homepage": "https://github.com/glfw/glfw", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "wayland": { "description": "Use Wayland display server", "supports": "linux", "dependencies": [ "wayland" ] } } } ================================================ FILE: ports/gli/disable-test.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb1a68..610c0bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ endmacro(addExternalPackageGTC) # Add subdirectory add_subdirectory(gli) -add_subdirectory(test) +#add_subdirectory(test) #add_subdirectory(doc) ################################ ================================================ FILE: ports/gli/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO g-truc/gli REF 779b99ac6656e4d30c3b24e96e0136a59649a869 SHA512 6e7ab46b7943cb185c8c1f6e45b765f5463e03628973043a0e8b866458ccceb5249f69a2a77b5e69c73f3ace85af96c7b9b2137685ceb6d0fcb67e491a49be69 HEAD_REF master PATCHES disable-test.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/gli) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/gli/CMakeLists.txt") # Put the license file where vcpkg expects it # manual.md contains the "licenses" section for the project file(INSTALL "${SOURCE_PATH}/manual.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gli/vcpkg.json ================================================ { "name": "gli", "version-date": "2021-07-06", "port-version": 2, "description": "OpenGL Image (GLI)", "homepage": "https://gli.g-truc.net", "dependencies": [ "glm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/glib/libintl.patch ================================================ diff --git a/meson.build b/meson.build index 5677fa8..6407c64 100644 --- a/meson.build +++ b/meson.build @@ -2307,8 +2307,9 @@ endif # implementations. This could be extended if issues are found in some platforms. libintl_deps = [] libintl_prefix = '#include ' -libintl = dependency('intl', required: false) -if libintl.found() and libintl.type_name() != 'internal' +libintl = dependency('intl', required : true) +libintl_deps = [libintl] +if false # libintl supports different threading APIs, which may not # require additional flags, but it defaults to using pthreads if # found. Meson's "threads" dependency does not allow you to ================================================ FILE: ports/glib/portfile.cmake ================================================ string(REGEX MATCH "^([0-9]*[.][0-9]*)" VERSION_MAJOR_MINOR "${VERSION}") # https://github.com/GNOME/glib/blob/main/SECURITY.md#supported-versions if(NOT VERSION_MAJOR_MINOR MATCHES "[02468]\$") message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "glib ${VERSION_MAJOR_MINOR} is a not a \"stable release series\".") endif() # vcpkg_from_* is not used because the project uses submodules and Anubis deployed to GNOME's gitlab # causes vcpkg_from_gitlab to fail for several users vcpkg_download_distfile(GLIB_ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "${PORT}-${VERSION}.tar.xz" SHA512 13e8beb84f3464f50c9764d0d3c6822a4bb41ae65e6c3ffac4200a5b441acdd2eb6f838a6b0722cae501e367ce9cfd4f8516b684a391c2f088a593172abcacd9 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${GLIB_ARCHIVE}" PATCHES use-libiconv-on-windows.patch libintl.patch ) set(LANGUAGES C CXX) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) list(APPEND LANGUAGES OBJC OBJCXX) endif() vcpkg_list(SET OPTIONS) if ("selinux" IN_LIST FEATURES) if(NOT EXISTS "/usr/include/selinux") message(WARNING "SELinux was not found in its typical system location. Your build may fail. You can install SELinux with \"apt-get install selinux libselinux1-dev\".") endif() list(APPEND OPTIONS -Dselinux=enabled) else() list(APPEND OPTIONS -Dselinux=disabled) endif() if ("libmount" IN_LIST FEATURES) list(APPEND OPTIONS -Dlibmount=enabled) else() list(APPEND OPTIONS -Dlibmount=disabled) endif() vcpkg_list(SET ADDITIONAL_BINARIES) if(VCPKG_HOST_IS_WINDOWS) # Presence of bash and sh enables installation of auxiliary components. vcpkg_list(APPEND ADDITIONAL_BINARIES "bash = ['${CMAKE_COMMAND}', '-E', 'false']") vcpkg_list(APPEND ADDITIONAL_BINARIES "sh = ['${CMAKE_COMMAND}', '-E', 'false']") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" LANGUAGES ${LANGUAGES} ADDITIONAL_BINARIES ${ADDITIONAL_BINARIES} OPTIONS ${OPTIONS} -Ddocumentation=false -Ddtrace=disabled -Dinstalled_tests=false -Dintrospection=disabled -Dlibelf=disabled -Dman-pages=disabled -Dsysprof=disabled -Dtests=false -Dxattr=false ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") set(GLIB_SCRIPTS gdbus-codegen glib-genmarshal glib-gettextize glib-mkenums gtester-report ) foreach(script IN LISTS GLIB_SCRIPTS) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endforeach() set(GLIB_TOOLS gapplication gdbus gi-compile-repository gi-decompile-typelib gi-inspect-typelib gio gio-querymodules glib-compile-resources glib-compile-schemas gobject-query gresource gsettings gtester ) if(VCPKG_TARGET_IS_WINDOWS) list(REMOVE_ITEM GLIB_TOOLS gapplication gtester) if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64|arm64") list(APPEND GLIB_TOOLS gspawn-win64-helper gspawn-win64-helper-console) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") list(APPEND GLIB_TOOLS gspawn-win32-helper gspawn-win32-helper-console) endif() elseif(VCPKG_TARGET_IS_OSX) list(REMOVE_ITEM GLIB_TOOLS gapplication) endif() vcpkg_copy_tools(TOOL_NAMES ${GLIB_TOOLS} AUTO_CLEAN) vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) set(LIBINTL_NAME "intl.lib") else() set(LIBINTL_NAME "libintl") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) string(APPEND LIBINTL_NAME "${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") else() string(APPEND LIBINTL_NAME "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") endif() endif() set(pc_replace_intl_path gio glib gmodule-no-export gobject gthread) foreach(pc_prefix IN LISTS pc_replace_intl_path) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${pc_prefix}-2.0.pc" "\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${pc_prefix}-2.0.pc" "\${prefix}/debug/lib/${LIBINTL_NAME}" "-lintl" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${pc_prefix}-2.0.pc" "\${prefix}/lib/${LIBINTL_NAME}" "-lintl" IGNORE_UNCHANGED) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${pc_prefix}-2.0.pc" "\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${pc_prefix}-2.0.pc" "\${prefix}/lib/${LIBINTL_NAME}" "-lintl" IGNORE_UNCHANGED) endif() endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gio-2.0.pc" "\${bindir}" "\${prefix}/tools/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glib-2.0.pc" "\${bindir}" "\${prefix}/tools/${PORT}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gio-2.0.pc" "\${bindir}" "\${prefix}/../tools/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glib-2.0.pc" "\${bindir}" "\${prefix}/../tools/${PORT}") endif() # Fix python scripts set(_file "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gdbus-codegen") file(READ "${_file}" _contents) string(REPLACE "elif os.path.basename(filedir) == 'bin':" "elif os.path.basename(filedir) == 'tools':" _contents "${_contents}") string(REPLACE "path = os.path.join(filedir, '..', 'share', 'glib-2.0')" "path = os.path.join(filedir, '../..', 'share', 'glib-2.0')" _contents "${_contents}") string(REPLACE "path = os.path.join(filedir, '..')" "path = os.path.join(filedir, '../../share/glib-2.0')" _contents "${_contents}") string(REPLACE "path = os.path.join('${CURRENT_PACKAGES_DIR}/share', 'glib-2.0')" "path = os.path.join('unuseable/share', 'glib-2.0')" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/${PORT}/glib-gettextize") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/glib-gettextize" "${CURRENT_PACKAGES_DIR}" "`dirname $0`/../..") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/gdb" "${CURRENT_PACKAGES_DIR}/debug/lib/gio" "${CURRENT_PACKAGES_DIR}/lib/gio" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES/LGPL-2.1-or-later.txt") ================================================ FILE: ports/glib/use-libiconv-on-windows.patch ================================================ diff --git a/glib/gconvert.c b/glib/gconvert.c index 53b2065..3e29bee 100644 --- a/glib/gconvert.c +++ b/glib/gconvert.c @@ -33,7 +33,8 @@ #ifdef G_OS_WIN32 #include -#include "win_iconv.c" +#define USE_LIBICONV_GNU +#include #endif #include "gconvert.h" diff --git a/meson.build b/meson.build index f30ca58..5677fa8 100644 --- a/meson.build +++ b/meson.build @@ -2233,7 +2233,8 @@ glibconfig_conf.set10('G_HAVE_GROWING_STACK', growing_stack) if host_system == 'windows' # We have a #include "win_iconv.c" in gconvert.c on Windows, so we don't need # any external library for it - libiconv = [] + libiconv = [cc.find_library('iconv')] + found_iconv = true else libiconv = dependency('iconv') endif ================================================ FILE: ports/glib/vcpkg.json ================================================ { "name": "glib", "version": "2.86.4", "description": "Portable, general-purpose utility library.", "homepage": "https://developer.gnome.org/glib/", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ "dirent", { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "libffi", "libiconv", "pcre2", { "name": "vcpkg-tool-meson", "host": true }, "zlib" ], "features": { "libmount": { "description": "Build with libmount support.", "supports": "linux", "dependencies": [ "libmount" ] }, "selinux": { "description": "Build with selinux support.", "supports": "linux" } } } ================================================ FILE: ports/glib-networking/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 0f1b3807635fcae143ad1a89731a8f7e1b6f4b8f6cc2dd1b7b5eea3d77c796ee5a55ea330901bfd22927d07795f39450d30f0f1029595761e659f96a8415c263 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_list(SET FEATURE_OPTIONS) if (gnutls IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dgnutls=enabled) else() list(APPEND FEATURE_OPTIONS -Dgnutls=disabled) endif() if (openssl IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dopenssl=enabled) else() list(APPEND FEATURE_OPTIONS -Dopenssl=disabled) endif() if (libproxy IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dlibproxy=enabled) else() list(APPEND FEATURE_OPTIONS -Dlibproxy=disabled) endif() if (environment-proxy IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Denvironment_proxy=enabled) else() list(APPEND FEATURE_OPTIONS -Denvironment_proxy=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dgnome_proxy=disabled ADDITIONAL_BINARIES "gio-querymodules = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gio-querymodules${CMAKE_EXECUTABLE_SUFFIX}'" ) vcpkg_install_meson() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/gio/modules/pkgconfig") file(GLOB MODULE_FILES "${CURRENT_PACKAGES_DIR}/lib/gio/modules/*") file(COPY ${MODULE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/plugins/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gio/modules/pkgconfig") file(GLOB MODULE_DEBUG_FILES "${CURRENT_PACKAGES_DIR}/debug/lib/gio/modules/*") file(COPY ${MODULE_DEBUG_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib") if(libproxy IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES glib-pacrunner SEARCH_DIR "${CURRENT_PACKAGES_DIR}/libexec") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/libexec" "${CURRENT_PACKAGES_DIR}/debug/libexec") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/dbus-1/services/org.gtk.GLib.PACRunner.service" "${CURRENT_PACKAGES_DIR}/libexec/glib-pacrunner" "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/glib-pacrunner") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/glib-networking/usage ================================================ glib-networking is a gio module, you should set GIO_MODULE_DIR to the location of dynamic libraries. ================================================ FILE: ports/glib-networking/vcpkg.json ================================================ { "name": "glib-networking", "version": "2.80.1", "description": "Network extensions for GLib", "homepage": "https://gitlab.gnome.org/GNOME/glib-networking", "license": "LGPL-2.1-only", "supports": "!uwp", "dependencies": [ "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ { "name": "gnutls", "platform": "linux | mingw" }, { "name": "openssl", "platform": "!linux & !mingw" } ], "features": { "environment-proxy": { "description": "support for environment variable proxy configuration" }, "gnutls": { "description": "support for GnuTLS networking configuration", "supports": "!windows | mingw", "dependencies": [ "libgnutls" ] }, "libproxy": { "description": "support for libproxy proxy configuration", "supports": "!(uwp | xbox | android)", "dependencies": [ "libproxy" ] }, "openssl": { "description": "support for OpenSSL networking configuration", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/glibmm/portfile.cmake ================================================ # Glib uses winapi functions not available in WindowsStore string(REGEX MATCH "^([0-9]*[.][0-9]*)" GLIBMM_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(GLIBMM_ARCHIVE URLS "https://ftp.gnome.org/pub/GNOME/sources/glibmm/${GLIBMM_MAJOR_MINOR}/glibmm-${VERSION}.tar.xz" FILENAME "glibmm-${VERSION}.tar.xz" SHA512 6f9ee91212077f3712a5ba99507479b5c99d021670e6bf298afc7239fafed8a40b3b17bfae96d9a7fa7fb199c3994b81b433c8275afe89839229a1fe20ba791e ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${GLIBMM_ARCHIVE}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbuild-examples=false -Dmsvc14x-parallel-installable=false ) vcpkg_install_meson() vcpkg_copy_pdbs() # intentionally 2.68 - glib does not install glibmm-2.7x files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/glibmm-2.68/proc" "${CURRENT_PACKAGES_DIR}/lib/glibmm-2.68/proc" ) vcpkg_fixup_pkgconfig() # Handle copyright and readmes file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME readme.txt) file(INSTALL "${SOURCE_PATH}/README.win32.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/glibmm/vcpkg.json ================================================ { "name": "glibmm", "version": "2.80.1", "port-version": 1, "description": "This is glibmm, a C++ API for parts of glib that are useful for C++.", "homepage": "https://www.gtkmm.org.", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ "gettext", "glib", "libffi", "libiconv", "libsigcpp", "pcre", { "name": "vcpkg-tool-meson", "host": true }, "zlib" ] } ================================================ FILE: ports/glm/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO g-truc/glm REF "${VERSION}" SHA512 0a490f0c79cd4a8ba54f37358f8917cef961dab9e61417c84ae0959c61bc860e5b83f4fb7f27169fb3d08eef1d84131bddde23d60876922310205c901b1273aa HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGLM_BUILD_LIBRARY=ON -DGLM_BUILD_TESTS=OFF -DGLM_BUILD_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/copying.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/glm/usage ================================================ The package glm provides CMake targets: find_package(glm CONFIG REQUIRED) target_link_libraries(main PRIVATE glm::glm) # Or use the header-only version find_package(glm CONFIG REQUIRED) target_link_libraries(main PRIVATE glm::glm-header-only) ================================================ FILE: ports/glm/vcpkg.json ================================================ { "name": "glm", "version": "1.0.3", "description": "OpenGL Mathematics (GLM)", "homepage": "https://glm.g-truc.net", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/globjects/fix-dependency-glm.patch ================================================ diff --git a/source/globjects/CMakeLists.txt b/source/globjects/CMakeLists.txt index 71e92d8..b8b4408 100644 --- a/source/globjects/CMakeLists.txt +++ b/source/globjects/CMakeLists.txt @@ -359,7 +359,7 @@ target_link_libraries(${target} PUBLIC ${DEFAULT_LIBRARIES} - glm + glm::glm glbinding::glbinding glbinding::glbinding-aux ================================================ FILE: ports/globjects/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cginternals/globjects REF dc68b09a53ec20683d3b3a12ed8d9cb12602bb9a SHA512 5145df795a73a8d74e983e143fd57441865f3082860efb89a3aa8c4d64c2eb6f0256a8049ccd5479dd77e53ef6638d9c903b29a8ef2b41a076003d9595912500 HEAD_REF master PATCHES system-install.patch fix-dependency-glm.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPTION_BUILD_TESTS=OFF -DOPTION_BUILD_GPU_TESTS=OFF -DGIT_REV=0 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/globjects/cmake/globjects) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(WRITE "${CURRENT_PACKAGES_DIR}/share/globjects/globjects-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(glm) find_dependency(glbinding) include(\${CMAKE_CURRENT_LIST_DIR}/globjects-export.cmake) ") # Handle copyright file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") vcpkg_copy_pdbs() ================================================ FILE: ports/globjects/system-install.patch ================================================ 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 ================================================ FILE: ports/globjects/vcpkg.json ================================================ { "name": "globjects", "version": "1.1.0", "port-version": 6, "description": "C++ library strictly wrapping OpenGL objects", "homepage": "https://github.com/cginternals/globjects", "dependencies": [ "glbinding", "glm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/glog/fix_crosscompile_symbolize.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fe1d85f..985f5f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -243,6 +243,9 @@ endif (HAVE_EXECINFO_BACKTRACE AND HAVE_EXECINFO_BACKTRACE_SYMBOLS) if (WITH_SYMBOLIZE) if (WIN32 OR CYGWIN) + if(CMAKE_CROSSCOMPILING) + set(HAVE_SYMBOLIZE 0) + else() cmake_push_check_state (RESET) set (CMAKE_REQUIRED_LIBRARIES DbgHelp) @@ -273,6 +276,7 @@ if (WITH_SYMBOLIZE) ]=] HAVE_SYMBOLIZE) cmake_pop_check_state () + endif() if (HAVE_SYMBOLIZE) set (HAVE_STACKTRACE 1) ================================================ FILE: ports/glog/fix_glog_CMAKE_MODULE_PATH.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b787631..41bf110 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1000,7 +1000,7 @@ write_basic_package_version_file ( export (TARGETS glog NAMESPACE glog:: FILE glog-targets.cmake) export (PACKAGE glog) - +if(0) get_filename_component (_PREFIX "${CMAKE_INSTALL_PREFIX}" ABSOLUTE) # Directory containing the find modules relative to the config install @@ -1036,6 +1036,7 @@ file (INSTALL " COMPONENT Development ) +endif() install (FILES ${glog_BINARY_DIR}/glog-config.cmake diff --git a/glog-config.cmake.in b/glog-config.cmake.in index 7d98525..93bc7d9 100644 --- a/glog-config.cmake.in +++ b/glog-config.cmake.in @@ -5,7 +5,6 @@ endif (CMAKE_VERSION VERSION_LESS @glog_CMake_VERSION@) @PACKAGE_INIT@ include (CMakeFindDependencyMacro) -include (${CMAKE_CURRENT_LIST_DIR}/glog-modules.cmake) find_dependency (Threads) ================================================ FILE: ports/glog/glog_disable_debug_postfix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 41bf110..fe1d85f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,7 @@ set (CMAKE_CXX_VISIBILITY_PRESET hidden) set (CMAKE_POSITION_INDEPENDENT_CODE ON) set (CMAKE_VISIBILITY_INLINES_HIDDEN ON) -set (CMAKE_DEBUG_POSTFIX d) +#set (CMAKE_DEBUG_POSTFIX d) find_package (GTest NO_MODULE) ================================================ FILE: ports/glog/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/glog REF "v${VERSION}" SHA512 2dabac87d44e4fe58beceb31b22be732b47df84c22f1af8c0e7d0f262de939889de1f16025c1256539f2833ef3393bc92034e983aa2886752bb8705801a68630 HEAD_REF master PATCHES fix_glog_CMAKE_MODULE_PATH.patch glog_disable_debug_postfix.patch fix_crosscompile_symbolize.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES unwind WITH_UNWIND customprefix WITH_CUSTOM_PREFIX INVERTED_FEATURES unwind CMAKE_DISABLE_FIND_PACKAGE_Unwind ) file(REMOVE "${SOURCE_PATH}/glog-modules.cmake.in") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/glog) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/export.h" "#ifdef GLOG_STATIC_DEFINE" "#if 1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/export.h" "#ifdef GLOG_STATIC_DEFINE" "#if 0") endif() if("unwind" IN_LIST FEATURES) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/glog/vcpkg-cmake-wrapper.cmake ================================================ set(GLOG_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${GLOG_PREV_MODULE_PATH}) ================================================ FILE: ports/glog/vcpkg.json ================================================ { "name": "glog", "version": "0.7.1", "port-version": 1, "description": "C++ implementation of the Google logging module", "homepage": "https://github.com/google/glog", "license": "BSD-3-Clause", "dependencies": [ "gflags", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "customprefix": { "description": "Enable support for user-generated message prefixes" }, "unwind": { "description": "Enable libunwind support", "supports": "linux", "dependencies": [ "libunwind" ] } } } ================================================ FILE: ports/gloo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebookincubator/gloo REF 81925d1c674c34f0dc34dd9a0f2151c1b6f701eb SHA512 2783908e7e0d6bd7f8cf59f4e6a94c84908e459f394c294cdf34aa8d1943a193fb25d15a8662f5a32a82b23a2657e63b1aa562f3ad8953ef79c9f502d04fed20 HEAD_REF master ) # Determine which backend to build via specified feature vcpkg_check_features( OUT_FEATURE_OPTIONS GLOO_FEATURE_OPTIONS FEATURES mpi USE_MPI redis USE_REDIS cuda USE_CUDA cuda USE_NCCL ) if ("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND GLOO_FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER:FILEPATH=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${GLOO_FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_CUDA_COMPILER CUDAToolkit_ROOT ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/Gloo) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/gloo/vcpkg.json ================================================ { "name": "gloo", "version": "20240626", "port-version": 1, "description": "Collective communications library with various primitives for multi-machine training.", "homepage": "https://github.com/facebookincubator/gloo", "supports": "x64 & linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "for CUDA aware algorithms", "dependencies": [ "cuda", "nccl" ] }, "mpi": { "description": "for coordinating machine rendezvous through MPI", "dependencies": [ "openmpi" ] }, "redis": { "description": "for coordinating machine rendezvous through Redis", "dependencies": [ "hiredis" ] } } } ================================================ FILE: ports/glpk/configure.ac.patch ================================================ --- configure.ac.original 2022-12-15 13:46:24.222223600 -0500 +++ configure.ac 2022-12-28 09:30:59.301984700 -0500 @@ -114,6 +114,12 @@ LIBODBC="libodbc.dylib" LIBMYSQL="libmysqlclient.dylib" ;; + cygwin* | mingw*) + LIBIODBC="odbc32.dll" + LIBODBC="odbc32.dll" + LIBMYSQL="libmysql.dll" + AC_DEFINE([__WOE__], [1], [N/A]) + ;; *) LIBIODBC="libiodbc.so" LIBODBC="libodbc.so" @@ -145,7 +151,6 @@ AC_MSG_ERROR([--enable-mysql requires --enable-dl]) fi AC_MSG_RESULT([yes]) - CPPFLAGS="-I/usr/include/mysql $CPPFLAGS" AC_DEFINE_UNQUOTED([MYSQL_DLNAME], ["$LIBMYSQL"], [N/A]) else AC_MSG_RESULT([no]) ================================================ FILE: ports/glpk/glpk.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: glpk Description: The GNU Linear Programming Kit (GLPK) solves large-scale linear programming (LP), mixed integer programming (MIP), and related problems. Version: @VERSION@ Libs: -L${libdir} -l@libname@ Libs.private: @libs@ Cflags: -I${includedir} Requires.private: @requires@ ================================================ FILE: ports/glpk/portfile.cmake ================================================ set(DISTFILE_SHA512_HASH 4e92195fa058c707146f2690f3a38b46c33add948c852f67659ca005a6aa980bbf97be96528b0f8391690facb880ac2126cd60198c6c175e7f3f06cca7e29f9d) vcpkg_download_distfile( DISTFILE FILENAME "glpk.tar.gz" URLS "https://ftpmirror.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/glpk/glpk-${VERSION}.tar.gz" SHA512 ${DISTFILE_SHA512_HASH} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${DISTFILE}" PATCHES configure.ac.patch ) vcpkg_list(SET CONFIGURE_OPTIONS) if("dl" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-dl=dlfcn "LIBS=-ldl \$LIBS") else() vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-dl) endif() if("gmp" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS --with-gmp) string(APPEND requires " gmp") else() vcpkg_list(APPEND CONFIGURE_OPTIONS --without-gmp) endif() if("mysql" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-mysql "CPPFLAGS=-I${CURRENT_INSTALLED_DIR}/include/mysql \$CPPFLAGS" ) string(APPEND libs " -lmysql") else() vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-mysql) endif() if("odbc" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-odbc) else() vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-odbc) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG NO_ADDITIONAL_PATHS DETERMINE_BUILD_TRIPLET OPTIONS ${CONFIGURE_OPTIONS} ) vcpkg_install_make() set(libname glpk) configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glpk.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/glpk.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glpk.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES glpsol AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/glpk/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "glpk", "version": "5.0", "port-version": 3, "maintainers": "Fabio A. Correa Duran", "description": [ "The GNU Linear Programming Kit (GLPK) solves large-scale linear programming (LP), mixed integer programming (MIP), and related problems.", "GLPK includes the following main components:", "Primal and dual simplex methods", "Primal-dual interior-point method", "Branch-and-cut method", "Translator for GNU MathProg", "Application program interface (API)", "Stand-alone LP/MIP solver " ], "homepage": "https://www.gnu.org/software/glpk/", "documentation": "https://www.gnu.org/software/glpk/#documentation", "license": "GPL-3.0-or-later", "supports": "!xbox", "features": { "dl": { "description": "Enable shared library support", "dependencies": [ "dlfcn-win32" ] }, "gmp": { "description": "Use the GNU Multiple Precision Arithmetic Library", "dependencies": [ "gmp" ] }, "mysql": { "description": "Sharing between MathProg objects and MySQL databases (libmysql)", "dependencies": [ { "name": "glpk", "features": [ "dl" ] }, "libmysql" ] }, "odbc": { "description": "Sharing between MathProg objects and databases through ODBC (libiodbc)", "dependencies": [ { "name": "glpk", "features": [ "dl" ] } ] } } } ================================================ FILE: ports/glslang/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/glslang REF "${VERSION}" SHA512 bcd0604f0a4a1a17ae207b90daeb9031d5c473968d331baf487acbc0f38871a0a82d2b20d274389f9988735e8dcd3fe4d2c2bd1513c77d031c8253c66424dbc4 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opt ENABLE_OPT opt ALLOW_EXTERNAL_SPIRV_TOOLS tools ENABLE_GLSLANG_BINARIES rtti ENABLE_RTTI ) if(ENABLE_GLSLANG_BINARIES) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path("${PYTHON_PATH}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXTERNAL=OFF -DGLSLANG_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/glslang DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/glslang-config.cmake" [[${PACKAGE_PREFIX_DIR}/lib/cmake/glslang/glslang-targets.cmake]] [[${CMAKE_CURRENT_LIST_DIR}/glslang-targets.cmake]] ) file(REMOVE_RECURSE CONFIG_PATH "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/glslang/Public/ShaderLang.h" "ifdef GLSLANG_IS_SHARED_LIBRARY" "if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/glslang/Include/glslang_c_interface.h" "ifdef GLSLANG_IS_SHARED_LIBRARY" "if 1") endif() vcpkg_copy_pdbs() if(ENABLE_GLSLANG_BINARIES) vcpkg_copy_tools(TOOL_NAMES glslang glslangValidator AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/glslang/usage ================================================ glslang provides CMake targets: find_package(glslang CONFIG REQUIRED) target_link_libraries(main PRIVATE glslang::glslang glslang::glslang-default-resource-limits glslang::SPIRV glslang::SPVRemapper) ================================================ FILE: ports/glslang/vcpkg.json ================================================ { "name": "glslang", "version": "16.1.0", "description": "Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.", "homepage": "https://github.com/KhronosGroup/glslang", "license": "Apache-2.0 AND BSD-3-Clause AND MIT AND GPL-3.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "opt": { "description": "Build with spirv-opt capability", "dependencies": [ "spirv-tools" ] }, "rtti": { "description": "Build with dynamic typeinfo" }, "tools": { "description": "Build the glslang binaries", "supports": "!android & !ios" } } } ================================================ FILE: ports/glui/install-one-flavor.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c0f7d32..8446f3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,22 @@ target_include_directories(glui_obj # create static *and* shared libraries without double compilation set_target_properties( glui_obj PROPERTIES POSITION_INDEPENDENT_CODE 1) +if (MSVC) + target_compile_options(glui_obj + PRIVATE + /D_CRT_SECURE_NO_WARNINGS + /wd4244 + /wd4305 + ) +endif() + +if(BUILD_SHARED_LIBS) + if(WIN32) + target_compile_definitions(glui_obj + PRIVATE GLUI_BUILDING_LIB + PUBLIC GLUIDLL + ) + endif() add_library(glui SHARED $) target_include_directories(glui PUBLIC @@ -71,7 +87,7 @@ set_target_properties(glui PROPERTIES DEBUG_POSTFIX "d" VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION}) - +else() add_library(glui_static STATIC $) target_include_directories(glui_static PUBLIC @@ -81,7 +97,9 @@ target_include_directories(glui_static ${GLUT_INCLUDE_DIR}) target_link_libraries(glui_static PUBLIC ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES}) set_target_properties(glui_static PROPERTIES DEBUG_POSTFIX "d") +endif() +if(GLUI_BUILD_EXAMPLES) add_executable(ppm2array tools/ppm.cpp tools/ppm2array.cpp) target_link_libraries(ppm2array) @@ -97,7 +115,7 @@ add_executable(example5 example/example5.cpp) target_link_libraries(example5 glui_static ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES}) add_executable(example6 example/example6.cpp) target_link_libraries(example6 glui_static ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES}) - +endif() #### @@ -130,8 +148,13 @@ configure_package_config_file( ) # Targets: +if(BUILD_SHARED_LIBS) + set(glui_target glui) +else() + set(glui_target glui_static) +endif() install( - TARGETS glui_static glui + TARGETS ${glui_target} EXPORT "${targets_export_name}" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib" ================================================ FILE: ports/glui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libglui/glui REF 093edc777c02118282910bdee59f8db1bd46a84d SHA512 650e169a6a55cd7d599176ac0767cd95b511fbc0a9b27aab2fa4f94a6395fa1a5762b6c23f5f1a9fc5ac9ce70c44fee4e4cbb6d6afd2307130cedfb80aae877a HEAD_REF master PATCHES install-one-flavor.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/GL/glui.h" "ifdef GLUIDLL" "if 1 //ifdef GLUIDLL" ) endif() file(INSTALL "${SOURCE_PATH}/license.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/glui/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET glui::glui AND NOT TARGET glui::glui_static) add_library(glui::glui_static INTERFACE IMPORTED) set_target_properties(glui::glui_static PROPERTIES INTERFACE_LINK_LIBRARIES glui::glui) elseif(TARGET glui::glui_static AND NOT TARGET glui::glui) add_library(glui::glui INTERFACE IMPORTED) set_target_properties(glui::glui PROPERTIES INTERFACE_LINK_LIBRARIES glui::glui_static) endif() ================================================ FILE: ports/glui/vcpkg.json ================================================ { "name": "glui", "version-date": "2019-11-30", "port-version": 4, "description": "GLUI is a GLUT-based C++ user interface library", "homepage": "https://github.com/libglui/glui", "supports": "!android", "dependencies": [ "freeglut", "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gmime/msvc-ssize_t.diff ================================================ diff --git a/configure.ac b/configure.ac index 9d368e0..c534a09 100644 --- a/configure.ac +++ b/configure.ac @@ -168,6 +168,13 @@ AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_SIZE_T AC_TYPE_SSIZE_T +AH_BOTTOM([ +#ifdef _MSC_VER +#undef ssize_t; +#include +typedef SSIZE_T ssize_t; +#endif +]) AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_TYPE_UINT8_T diff --git a/gmime/gmime.h b/gmime/gmime.h index ef6b93e..d3696ac 100644 --- a/gmime/gmime.h +++ b/gmime/gmime.h @@ -22,6 +22,10 @@ #ifndef __GMIME_H__ #define __GMIME_H__ +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#endif #include #include #include ================================================ FILE: ports/gmime/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS https://github.com/jstedfast/gmime/releases/download/${VERSION}/gmime-${VERSION}.tar.xz FILENAME "gmime-${VERSION}.tar.xz" SHA512 cafb89854b2441508bf940fd6f991739d30fb137b8928ad33e8e4d2a0293a6460e4d1318e73c3ee9e5a964b692f36e7a4eb5f2930c6998698bd9edf866629655 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES subdirs.diff msvc-ssize_t.diff ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/aclocal/\"") # for glib set(ENV{GTKDOCIZE} true) vcpkg_list(SET options) set(iconv_detect_h "${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/iconv-detect-${VCPKG_CMAKE_SYSTEM_NAME}.h") if(EXISTS "${iconv_detect_h}") vcpkg_list(APPEND options "ac_cv_have_iconv_detect_h=yes") elseif(VCPKG_CROSSCOMPILING) vcpkg_list(APPEND options "ac_cv_have_iconv_detect_h=no") endif() if("crypto" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-crypto") else() vcpkg_list(APPEND options "--disable-crypto") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG ADD_BIN_TO_PATH # for iconv-detect OPTIONS ${options} --disable-glibtest --disable-introspection --disable-vala ) if(EXISTS "${iconv_detect_h}") file(COPY_FILE "${iconv_detect_h}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/iconv-detect.h") if(NOT VCPKG_BUILD_TYPE) file(COPY_FILE "${iconv_detect_h}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/iconv-detect.h") endif() endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(COPY "${SOURCE_PATH}/build/vs2017/unistd.h" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") if(NOT VCPKG_BUILD_TYPE) file(COPY "${SOURCE_PATH}/build/vs2017/unistd.h" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") endif() endif() vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/iconv-detect.h" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "iconv-detect-${VCPKG_CMAKE_SYSTEM_NAME}.h" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gmime/subdirs.diff ================================================ diff --git a/Makefile.am b/Makefile.am index c004167..0fafe72 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,10 +2,9 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = m4 build util gmime tests docs +SUBDIRS = m4 build util gmime if !PLATFORM_WIN32 -SUBDIRS += examples endif SUBDIRS += tools . ================================================ FILE: ports/gmime/vcpkg.json ================================================ { "name": "gmime", "version": "3.2.15", "port-version": 1, "description": "GMime is a C/C++ library which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).", "homepage": "https://github.com/jstedfast/gmime", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ "glib", { "name": "gmime", "host": true }, "libiconv", "libidn2", "zlib" ], "features": { "crypto": { "description": "PGP and S/MIME support", "dependencies": [ { "name": "gpgme", "default-features": false } ] } } } ================================================ FILE: ports/gmmlib/portfile.cmake ================================================ 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-${VERSION}" SHA512 c54581e4927bfedd7cb4084111cce69c9ee14f0047f6d16d26358e9d41feb8d28d5158f7fbdfbe4980dae904e7c2065deed19fd2f91e32b49fd7b984d47c0f44 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") 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") vcpkg_fixup_pkgconfig() # Handle copyright configure_file("${SOURCE_PATH}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/gmmlib/vcpkg.json ================================================ { "name": "gmmlib", "version": "22.9.0", "description": "Intel(R) Graphics Memory Management Library", "homepage": "https://github.com/intel/gmmlib", "license": "MIT", "supports": "linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gmp/arm64-coff.patch ================================================ diff --git a/configure.ac b/configure.ac index bd92bc4..bd2c0af 100644 --- a/configure.ac +++ b/configure.ac @@ -3704,6 +3704,8 @@ if test "$gmp_asm_syntax_testing" != no; then case $host in *-*-darwin*) GMP_INCLUDE_MPN(arm64/darwin.m4) ;; + *-pc-mingw32) + GMP_INCLUDE_MPN(arm64/coff.m4) ;; *) GMP_INCLUDE_MPN(arm64/arm64-defs.m4) ;; esac diff --git a/mpn/arm64/coff.m4 b/mpn/arm64/coff.m4 new file mode 100644 index 0000000..88605b3 --- /dev/null +++ b/mpn/arm64/coff.m4 @@ -0,0 +1,54 @@ +divert(-1) + +dnl m4 macros for ARM64 COFF assembler. + +dnl Copyright 2020 Free Software Foundation, Inc. + +dnl This file is part of the GNU MP Library. +dnl +dnl The GNU MP Library is free software; you can redistribute it and/or modify +dnl it under the terms of either: +dnl +dnl * the GNU Lesser General Public License as published by the Free +dnl Software Foundation; either version 3 of the License, or (at your +dnl option) any later version. +dnl +dnl or +dnl +dnl * the GNU General Public License as published by the Free Software +dnl Foundation; either version 2 of the License, or (at your option) any +dnl later version. +dnl +dnl or both in parallel, as here. +dnl +dnl The GNU MP Library is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +dnl for more details. +dnl +dnl You should have received copies of the GNU General Public License and the +dnl GNU Lesser General Public License along with the GNU MP Library. If not, +dnl see https://www.gnu.org/licenses/. + + +dnl Standard commenting is with @, the default m4 # is for constants and we +dnl don't want to disable macro expansions in or after them. + +changecom + + +dnl LEA_HI(reg,gmp_symbol), LEA_LO(reg,gmp_symbol) +dnl +dnl Load the address of gmp_symbol into a register. We split this into two +dnl parts to allow separation for manual insn scheduling. + +define(`LEA_HI', `ldr $1, =$2')dnl +define(`LEA_LO')dnl + +dnl Usage: ALIGN(bytes) +dnl +dnl Emit a ".align" directive. + +define(`ALIGN', ` .align 8')dnl + +divert`'dnl ================================================ FILE: ports/gmp/asmflags.patch ================================================ diff --git a/acinclude.m4 b/acinclude.m4 index 86175ce42..8228d20dc 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1649,7 +1649,7 @@ AC_DEFUN([GMP_TRY_ASSEMBLE], [cat >conftest.s <&AC_FD_CC ifelse([$2],,:,[$2]) @@ -2382,7 +2382,7 @@ for tmp_underscore in "" "_"; do ${tmp_gsym_prefix}main$gmp_cv_asm_label_suffix addl $ ${tmp_underscore}_GLOBAL_OFFSET_TABLE_, %ebx EOF - gmp_compile="$CCAS $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.s >&AC_FD_CC && $CC $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&AC_FD_CC" + gmp_compile="$CCAS $CPPFLAGS $ASMFLAGS $lt_prog_compiler_pic conftest.s >&AC_FD_CC && $CC $CPPFLAGS $ASMFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&AC_FD_CC" if AC_TRY_EVAL(gmp_compile); then if test "$tmp_underscore" = "_"; then gmp_cv_asm_x86_got_underscore=yes @@ -2556,7 +2556,7 @@ movq-bug) AC_MSG_WARN([+----------------------------------------------------------]) AC_MSG_WARN([| WARNING WARNING WARNING]) AC_MSG_WARN([| Host CPU has MMX code, but the assembler]) - AC_MSG_WARN([| $CCAS $CFLAGS $CPPFLAGS]) + AC_MSG_WARN([| $CCAS $CPPFLAGS $ASMFLAGS]) AC_MSG_WARN([| has the Solaris 2.6 and 2.7 bug where register to register]) AC_MSG_WARN([| movq operands are reversed.]) AC_MSG_WARN([| Non-MMX replacements will be used.]) diff --git a/mpn/Makeasm.am b/mpn/Makeasm.am index 5d7306c22..75692128d 100644 --- a/mpn/Makeasm.am +++ b/mpn/Makeasm.am @@ -31,8 +31,9 @@ # COMPILE minus CC. # +# Only used with CCAS COMPILE_FLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(ASMFLAGS) + $(CPPFLAGS) $(ASMFLAGS) # Flags used for preprocessing (in ansi2knr rules). # ================================================ FILE: ports/gmp/c23.patch ================================================ diff --git a/acinclude.m4 b/acinclude.m4 index e84c5c785..8e7bb4ae7 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -564,23 +564,6 @@ } ]) -# __builtin_alloca is not available everywhere, check it exists before -# seeing that it works -GMP_PROG_CC_WORKS_PART_TEST([$1],[__builtin_alloca availability], -[int k; int foo () { __builtin_alloca (k); }], - [GMP_PROG_CC_WORKS_PART([$1], [alloca array], -[/* The following provokes an internal compiler error from Itanium HP-UX cc - under +O2 or higher. We use this sort of code in mpn/generic/mul_fft.c. */ -int k; -int foo () -{ - int i, **a; - a = __builtin_alloca (k); - for (i = 0; i <= k; i++) - a[i] = __builtin_alloca (1 << i); -} -])]) - GMP_PROG_CC_WORKS_PART([$1], [abs int -> double conversion], [/* The following provokes an internal error from the assembler on power2-ibm-aix4.3.1.0. gcc -mrios2 compiles to nabs+fcirz, and this @@ -609,7 +609,7 @@ #if defined (__GNUC__) && ! defined (__cplusplus) typedef unsigned long long t1;typedef t1*t2; -void g(){} +void g(int,t1 const*,t1,t2,t1 const*,int){} void h(){} static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) {t1 c,x,r;int i;if(v0){c=1;for(i=1;ifac_table.h || (rm -f fac_table.h; exit 1) +fac_table.h: $(HOST_TOOLS_PREFIX)/gen-fac$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-fac $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fac_table.h || (rm -f fac_table.h; exit 1) BUILT_SOURCES += fac_table.h gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c @@ -354,8 +358,8 @@ gen-fac$(EXEEXT_FOR_BUILD): gen-fac$(U_FOR_BUILD).c bootstrap.c DISTCLEANFILES += gen-fac$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-fac.c -sieve_table.h: gen-sieve$(EXEEXT_FOR_BUILD) - ./gen-sieve $(GMP_LIMB_BITS) >sieve_table.h || (rm -f sieve_table.h; exit 1) +sieve_table.h: $(HOST_TOOLS_PREFIX)/gen-sieve$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-sieve $(GMP_LIMB_BITS) >sieve_table.h || (rm -f sieve_table.h; exit 1) BUILT_SOURCES += sieve_table.h gen-sieve$(EXEEXT_FOR_BUILD): gen-sieve$(U_FOR_BUILD).c bootstrap.c @@ -364,12 +368,12 @@ DISTCLEANFILES += gen-sieve$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-sieve.c -fib_table.h: gen-fib$(EXEEXT_FOR_BUILD) - ./gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1) +fib_table.h: $(HOST_TOOLS_PREFIX)/gen-fib$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-fib header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >fib_table.h || (rm -f fib_table.h; exit 1) BUILT_SOURCES += fib_table.h -mpn/fib_table.c: gen-fib$(EXEEXT_FOR_BUILD) - ./gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1) +mpn/fib_table.c: $(HOST_TOOLS_PREFIX)/gen-fib$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-fib table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1) BUILT_SOURCES += mpn/fib_table.c gen-fib$(EXEEXT_FOR_BUILD): gen-fib$(U_FOR_BUILD).c bootstrap.c @@ -378,12 +382,12 @@ DISTCLEANFILES += gen-fib$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-fib.c -mp_bases.h: gen-bases$(EXEEXT_FOR_BUILD) - ./gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1) +mp_bases.h: $(HOST_TOOLS_PREFIX)/gen-bases$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-bases header $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mp_bases.h || (rm -f mp_bases.h; exit 1) BUILT_SOURCES += mp_bases.h -mpn/mp_bases.c: gen-bases$(EXEEXT_FOR_BUILD) - ./gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1) +mpn/mp_bases.c: $(HOST_TOOLS_PREFIX)/gen-bases$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-bases table $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/mp_bases.c || (rm -f mpn/mp_bases.c; exit 1) BUILT_SOURCES += mpn/mp_bases.c gen-bases$(EXEEXT_FOR_BUILD): gen-bases$(U_FOR_BUILD).c bootstrap.c @@ -392,8 +396,8 @@ DISTCLEANFILES += gen-bases$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-bases.c -trialdivtab.h: gen-trialdivtab$(EXEEXT_FOR_BUILD) - ./gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1) +trialdivtab.h: $(HOST_TOOLS_PREFIX)/gen-trialdivtab$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-trialdivtab $(GMP_LIMB_BITS) 8000 >trialdivtab.h || (rm -f trialdivtab.h; exit 1) BUILT_SOURCES += trialdivtab.h gen-trialdivtab$(EXEEXT_FOR_BUILD): gen-trialdivtab$(U_FOR_BUILD).c bootstrap.c @@ -402,8 +406,8 @@ DISTCLEANFILES += gen-trialdivtab$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-trialdivtab.c -mpn/jacobitab.h: gen-jacobitab$(EXEEXT_FOR_BUILD) - ./gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1) +mpn/jacobitab.h: $(HOST_TOOLS_PREFIX)/gen-jacobitab$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-jacobitab >mpn/jacobitab.h || (rm -f mpn/jacobitab.h; exit 1) BUILT_SOURCES += mpn/jacobitab.h gen-jacobitab$(EXEEXT_FOR_BUILD): gen-jacobitab$(U_FOR_BUILD).c @@ -412,8 +416,8 @@ DISTCLEANFILES += gen-jacobitab$(EXEEXT_FOR_BUILD) EXTRA_DIST += gen-jacobitab.c -mpn/perfsqr.h: gen-psqr$(EXEEXT_FOR_BUILD) - ./gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1) +mpn/perfsqr.h: $(HOST_TOOLS_PREFIX)/gen-psqr$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gen-psqr $(GMP_LIMB_BITS) $(GMP_NAIL_BITS) >mpn/perfsqr.h || (rm -f mpn/perfsqr.h; exit 1) BUILT_SOURCES += mpn/perfsqr.h gen-psqr$(EXEEXT_FOR_BUILD): gen-psqr$(U_FOR_BUILD).c bootstrap.c diff --git a/acinclude.m4 b/acinclude.m4 index aea4c38..aaef13a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -3833,6 +3833,7 @@ if AC_TRY_EVAL(gmp_compile); then if (./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest) >&AC_FD_CC 2>&1; then cc_for_build_works=yes fi + cc_for_build_works=yes # forced fi rm -f conftest* a.out b.out a.exe a_out.exe AC_MSG_RESULT($cc_for_build_works) ================================================ FILE: ports/gmp/msvc_symbol.patch ================================================ diff --git a/configure.ac b/configure.ac index cafdb3c..3c3e3c8 100644 --- a/configure.ac +++ b/configure.ac @@ -2702,9 +2702,7 @@ Use "--disable-static --enable-shared" to build just a DLL.]) # __isascii, but for some reason not the plain isascii. # if test "$enable_shared" = yes; then - GMP_LDFLAGS="$GMP_LDFLAGS -no-undefined -Wl,--export-all-symbols" - LIBGMP_LDFLAGS="$LIBGMP_LDFLAGS -Wl,--output-def,.libs/libgmp-3.dll.def" - LIBGMPXX_LDFLAGS="$LIBGMP_LDFLAGS -Wl,--output-def,.libs/libgmpxx-3.dll.def" + GMP_LDFLAGS="$GMP_LDFLAGS -no-undefined" LIBGMP_DLL=1 fi ;; diff --git a/gmp-h.in b/gmp-h.in index 3d449d4..18a03b7 100644 --- a/gmp-h.in +++ b/gmp-h.in @@ -398,7 +398,7 @@ typedef __mpq_struct *mpq_ptr; /* Microsoft's C compiler accepts __inline */ #ifdef _MSC_VER -#define __GMP_EXTERN_INLINE __inline +#define __GMP_EXTERN_INLINE static __inline #endif /* Recent enough Sun C compilers want "inline" */ ================================================ FILE: ports/gmp/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/gmp.h" OR "${CURRENT_INSTALLED_DIR}/include/gmpxx.h") message(FATAL_ERROR "Can't build ${PORT} if mpir is installed. Please remove mpir, and try install ${PORT} again if you need it.") endif() vcpkg_download_distfile( ARCHIVE URLS "https://ftpmirror.gnu.org/gmp/gmp-${VERSION}.tar.xz" "https://ftp.gnu.org/gnu/gmp/gmp-${VERSION}.tar.xz" "https://gmplib.org/download/gmp/gmp-${VERSION}.tar.xz" FILENAME "gmp-${VERSION}.tar.xz" SHA512 e85a0dab5195889948a3462189f0e0598d331d3457612e2d3350799dba2e244316d256f8161df5219538eb003e4b5343f989aaa00f96321559063ed8c8f29fd2 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "v${VERSION}" PATCHES asmflags.patch cross-tools.patch subdirs.patch msvc_symbol.patch arm64-coff.patch remove_compiler_info.patch c23.patch ) vcpkg_list(SET OPTIONS) if("fat" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS "--enable-fat") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_list(APPEND OPTIONS "ac_cv_func_memset=yes" "gmp_cv_asm_w32=.word" "gmp_cv_check_libm_for_build=no" ) endif() set(disable_assembly OFF) set(ccas "") set(asmflags "-c") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(APPEND asmflags " --target=i686-pc-windows-msvc") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") string(APPEND asmflags " --target=x86_64-pc-windows-msvc") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") string(APPEND asmflags " --target=arm64-pc-windows-msvc") else() set(disable_assembly ON) endif() if(NOT disable_assembly) vcpkg_find_acquire_program(CLANG) set(ccas "${CLANG}") endif() elseif(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # not exporting asm functions set(disable_assembly ON) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}") vcpkg_list(APPEND OPTIONS "ABI=32") string(APPEND asmflags " -m32") else() set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() if(disable_assembly) vcpkg_list(APPEND OPTIONS "--enable-assembly=no") elseif(ccas) cmake_path(GET ccas PARENT_PATH ccas_dir) vcpkg_add_to_path("${ccas_dir}") cmake_path(GET ccas FILENAME ccas_command) endif() vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASMFLAGS=${asmflags}") if(VCPKG_CROSSCOMPILING) set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() if(VCPKG_HOST_IS_WINDOWS) # dumpbin detection fails with autoconf 2.72 set(ENV{WANT_AUTOCONF} 2.71) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG ADDITIONAL_MSYS_PACKAGES DIRECT_PACKAGES "https://mirror.msys2.org/msys/x86_64/autoconf2.71-2.71-3-any.pkg.tar.zst" dd312c428b2e19afd00899eb53ea4255794dea4c19d1d6dea2419cb6a54209ea2130d48abbc20af12196b9f628143436f736fbf889809c2c2291be0c69c0e306 OPTIONS ${OPTIONS} --enable-cxx --with-pic --with-readline=no "gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) vcpkg_install_make() vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-bases${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-fac${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-fib${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-jacobitab${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-psqr${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-sieve${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gen-trialdivtab${VCPKG_HOST_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" USE_SOURCE_PERMISSIONS ) vcpkg_copy_tool_dependencies("${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/README" "${SOURCE_PATH}/COPYING.LESSERv3" "${SOURCE_PATH}/COPYINGv3" "${SOURCE_PATH}/COPYINGv2" ) ================================================ FILE: ports/gmp/remove_compiler_info.patch ================================================ diff --git a/gmp-h.in b/gmp-h.in index 648c933582..fa37296fe4 100644 --- a/gmp-h.in +++ b/gmp-h.in @@ -2330,10 +2330,6 @@ enum GMP_ERROR_MPZ_OVERFLOW = 16 }; -/* Define CC and CFLAGS which were used to build this version of GMP */ -#define __GMP_CC "@CC@" -#define __GMP_CFLAGS "@CFLAGS@" - /* Major version number is the value of __GNU_MP__ too, above. */ #define __GNU_MP_VERSION 6 #define __GNU_MP_VERSION_MINOR 3 ================================================ FILE: ports/gmp/subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 9f92a4f..e35629d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -117,7 +117,7 @@ LIBGMPXX_LT_REVISION = 0 LIBGMPXX_LT_AGE = 7 -SUBDIRS = tests mpn mpz mpq mpf printf scanf rand cxx demos tune doc +SUBDIRS = mpn mpz mpq mpf printf rand cxx EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf \ COPYING.LESSERv3 COPYINGv2 COPYINGv3 ================================================ FILE: ports/gmp/usage ================================================ The package gmp can be imported via CMake FindPkgConfig module: # gmp find_package(PkgConfig REQUIRED) pkg_check_modules(gmp REQUIRED IMPORTED_TARGET gmp) target_link_libraries(main PkgConfig::gmp) # gmpxx find_package(PkgConfig REQUIRED) pkg_check_modules(gmpxx REQUIRED IMPORTED_TARGET gmpxx) target_link_libraries(main PkgConfig::gmpxx) ================================================ FILE: ports/gmp/vcpkg.json ================================================ { "name": "gmp", "version": "6.3.0", "port-version": 3, "description": "The GNU Multiple Precision Arithmetic Library", "homepage": "https://gmplib.org", "license": "LGPL-3.0-only OR GPL-2.0-only", "supports": "!xbox", "dependencies": [ { "name": "gmp", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "fat": { "description": "Enable runtime selection of optimized low level routines", "supports": "!windows | mingw" } } } ================================================ FILE: ports/gmsh/installdirs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 11b2662a5..e2764d751 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2014,7 +2014,7 @@ if(ENABLE_BUILD_LIB) endif() if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) install(TARGETS shared EXPORT gmshTargets - RUNTIME DESTINATION ${GMSH_LIB} + RUNTIME DESTINATION ${GMSH_BIN} ARCHIVE DESTINATION ${GMSH_LIB} LIBRARY DESTINATION ${GMSH_LIB} OPTIONAL) @@ -2038,10 +2038,6 @@ if(ENABLE_ONELAB AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/onelab) endif() if(ENABLE_BUILD_LIB OR ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC) install(FILES ${GMSH_API} DESTINATION ${GMSH_INC}) - install(FILES ${GMSH_PY} DESTINATION ${GMSH_LIB}) - install(FILES ${GMSH_JL} DESTINATION ${GMSH_LIB}) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/METADATA DESTINATION - ${GMSH_LIB}/gmsh-${GMSH_PYTHON_VERSION}.dist-info) if(ENABLE_PRIVATE_API) install(FILES ${GMSH_PRIVATE_API} DESTINATION ${GMSH_INC}/gmsh) if(HAVE_CONTRIB_EIGEN) # the private API depends on Eigen ================================================ FILE: ports/gmsh/linking-and-naming.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 46937b2..67ddec5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1748,6 +1748,7 @@ endforeach() if(ENABLE_BUILD_LIB) add_library(lib STATIC ${GMSH_SRC}) set_target_properties(lib PROPERTIES OUTPUT_NAME gmsh) + target_link_libraries(lib ${LINK_LIBRARIES}) if(MSVC) set_target_properties(lib PROPERTIES DEBUG_POSTFIX d) if(ENABLE_MSVC_STATIC_RUNTIME) @@ -1793,26 +1794,23 @@ endif() # binary targets if(HAVE_FLTK) - if(ENABLE_BUILD_DYNAMIC) - add_executable(gmsh WIN32 src/common/Main.cpp) - target_link_libraries(gmsh shared) - else() - add_executable(gmsh WIN32 src/common/Main.cpp ${GMSH_SRC}) - endif() + add_executable(gmsh WIN32 src/common/Main.cpp) # we could add this to create a minimal app bundle even without install # if(APPLE AND NOT ENABLE_OS_SPECIFIC_INSTALL) # set_target_properties(gmsh PROPERTIES MACOSX_BUNDLE ON # MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/utils/misc/gmsh_dev.plist) # endif() else() - if(ENABLE_BUILD_DYNAMIC) - add_executable(gmsh src/common/Main.cpp) - target_link_libraries(gmsh shared) - else() - add_executable(gmsh src/common/Main.cpp ${GMSH_SRC}) - endif() + add_executable(gmsh src/common/Main.cpp) +endif() +if(TARGET shared) + target_link_libraries(gmsh shared) +elseif(TARGET lib) + target_link_libraries(gmsh lib) +else() + target_sources(gmsh ${GMSH_SRC}) endif() -target_link_libraries(gmsh ${LINK_LIBRARIES}) +set_target_properties(gmsh PROPERTIES PDB_NAME gmsh.exe) # OS specific linker options if(WIN32 AND NOT MSVC) ================================================ FILE: ports/gmsh/opencascade.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 11b2662..ed5face 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1300,6 +1300,9 @@ if(ENABLE_OCC) else() set(OCC_SYS_NAME ${CMAKE_SYSTEM_NAME}) endif() + find_package(OpenCASCADE CONFIG REQUIRED) + set(OCC_VERSION "${OpenCASCADE_VERSION}") + if(0) find_path(OCC_INC "Standard_Version.hxx" HINTS ENV CASROOT PATH_SUFFIXES inc include include/oce opencascade include/opencascade occt include/occt) @@ -1318,11 +1321,12 @@ if(ENABLE_OCC) message(STATUS "Found OpenCASCADE version ${OCC_VERSION} in ${OCC_INC}") endif() endif() + endif() if(OCC_VERSION AND OCC_VERSION VERSION_LESS ${OCC_MINIMAL_VERSION}) message(WARNING "Gmsh requires OpenCASCADE >= ${OCC_MINIMAL_VERSION}. " "Use CMAKE_PREFIX_PATH or the CASROOT environment variable " "to explicitly specify the installation path of OpenCASCADE") - elseif(OCC_INC) + elseif(1) if(OCC_VERSION AND OCC_VERSION VERSION_GREATER_EQUAL "7.8.0") set(OCC_LIBS_REQUIRED # subset of DataExchange @@ -1356,6 +1360,10 @@ if(ENABLE_OCC) else() set(OCC_LIBS) foreach(OCC ${OCC_LIBS_REQUIRED}) + if(NOT TARGET ${OCC}) + message(SEND_ERROR "No such OCC target: ${OCC}") + endif() + set(OCC_LIB "${OCC}" CACHE INTERNAL "imported target") find_library(OCC_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/vc8/lib ${OCC_SYS_NAME}/vc9/lib ${OCC_SYS_NAME}/vc10/lib ${OCC_SYS_NAME}/vc11/lib @@ -1375,7 +1383,9 @@ if(ENABLE_OCC) # additional OCC libraries to handle reading of STEP/IGES attributes. Oh my... if(ENABLE_OCC_CAF) - find_package(Freetype) + set(FREETYPE_INCLUDE_DIRS "") + set(FREETYPE_LIBRARIES "") + set(FREETYPE FOUND "${OpenCASCADE_WITH_FREETYPE}") if(FREETYPE_FOUND) if(OCC_VERSION AND OCC_VERSION VERSION_GREATER_EQUAL "7.8.0") set(OCC_CAF_LIBS_REQUIRED @@ -1387,6 +1397,10 @@ if(ENABLE_OCC) list(LENGTH OCC_CAF_LIBS_REQUIRED NUM_OCC_CAF_LIBS_REQUIRED) set(OCC_CAF_LIBS) foreach(OCC ${OCC_CAF_LIBS_REQUIRED}) + if(NOT TARGET ${OCC}) + message(SEND_ERROR "No such OCC CAF target: ${OCC}") + endif() + set(OCC_CAF_LIB "${OCC}" CACHE INTERNAL "imported target") find_library(OCC_CAF_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib ${OCC_SYS_NAME}/vc8/lib ${OCC_SYS_NAME}/vc9/lib ${OCC_SYS_NAME}/vc10/lib ${OCC_SYS_NAME}/vc11/lib @@ -1423,7 +1437,6 @@ if(ENABLE_OCC) add_definitions(-DOCC_CONVERT_SIGNALS) endif() if(WIN32 AND MSVC) - add_definitions(-D "Standard_EXPORT=__declspec(dllimport)") endif() endif() endif() diff --git a/utils/misc/gmsh-config.cmake.in b/utils/misc/gmsh-config.cmake.in index 1c211e2..073c3ab 100644 --- a/utils/misc/gmsh-config.cmake.in +++ b/utils/misc/gmsh-config.cmake.in @@ -1,3 +1,7 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if("@ENABLE_OCC@") + find_dependency(OpenCASCADE CONFIG) +endif() include ( "${CMAKE_CURRENT_LIST_DIR}/gmshTargets.cmake" ) \ No newline at end of file ================================================ FILE: ports/gmsh/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://gmsh.info/src/gmsh-${VERSION}-source.tgz" FILENAME "gmsh-${VERSION}-source.tgz" SHA512 dc3ba00c2788d95f30d0cedac490b72cdf6805ef67d81f8636e4ff45510640991cc85e950b3953335f1ba73f9458b980949469844f65d6d5fb09b51936ddef12 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES installdirs.diff linking-and-naming.diff opencascade.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES mpi ENABLE_MPI occ ENABLE_OCC occ ENABLE_OCC_CAF zipper ENABLE_ZIPPER ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DENABLE_BUILD_LIB=${BUILD_LIB} -DENABLE_BUILD_SHARED=${BUILD_SHARED} -DENABLE_MSVC_STATIC_RUNTIME=${STATIC_RUNTIME} -DENABLE_OS_SPECIFIC_INSTALL=OFF -DGMSH_PACKAGER=vcpkg -DGMSH_RELEASE=ON -DENABLE_PACKAGE_STRIP=ON -DENABLE_SYSTEM_CONTRIB=ON # Not implemented -DENABLE_GRAPHICS=OFF # Requires mesh, post, plugins and onelab -DENABLE_POST=OFF -DENABLE_PLUGINS=OFF -DENABLE_MESH=OFF -DENABLE_PARSER=OFF -DENABLE_PROFILE=OFF -DENABLE_PRIVATE_API=OFF -DENABLE_QUADMESHINGTOOLS=OFF -DENABLE_PRO=OFF -DENABLE_TOUCHBAR=OFF -DENABLE_VISUDEV=OFF -DENABLE_BLAS_LAPACK=OFF -DENABLE_CAIRO=OFF -DENABLE_CGNS=OFF -DENABLE_CGNS_CPEX0045=OFF -DENABLE_EIGEN=OFF -DENABLE_GMP=OFF -DENABLE_OPENMP=OFF -DENABLE_POPPLER=OFF -DENABLE_WRAP_JAVA=OFF -DENABLE_WRAP_PYTHON=OFF # Requies dependencies which not included in vcpkg yet -DENABLE_3M=OFF -DENABLE_ALGLIB=OFF -DENABLE_ANN=OFF -DENABLE_BAMG=OFF -DENABLE_BLOSSOM=OFF -DENABLE_BUILD_DYNAMIC=OFF # Needs gfortran -DENABLE_FLTK=OFF # Needs executable fltk-config -DENABLE_DINTEGRATION=OFF -DENABLE_GEOMETRYCENTRAL=OFF -DENABLE_DOMHEX=OFF -DENABLE_GETDP=OFF -DENABLE_GMM=OFF -DENABLE_HXT=OFF -DENABLE_KBIPACK=OFF -DENABLE_MATHEX=OFF -DENABLE_MED=OFF -DENABLE_METIS=OFF -DENABLE_MMG=OFF -DENABLE_MPEG_ENCODE=OFF -DENABLE_MUMPS=OFF -DENABLE_NUMPY=OFF -DENABLE_NETGEN=OFF -DENABLE_PETSC4PY=OFF -DENABLE_ONELAB_METAMODEL=OFF -DENABLE_ONELAB=OFF -DENABLE_OPENACC=OFF -DENABLE_OPTHOM=OFF -DENABLE_OSMESA=OFF -DENABLE_P4EST=OFF -DENABLE_PETSC=OFF -DENABLE_QUADTRI=OFF -DENABLE_REVOROPT=OFF -DENABLE_SLEPC=OFF -DENABLE_SOLVER=OFF -DENABLE_TCMALLOC=OFF -DENABLE_VOROPP=OFF -DENABLE_WINSLOWUNTANGLER=OFF # experimental -DENABLE_BUILD_ANDROID=OFF -DENABLE_BUILD_IOS=OFF -DENABLE_OS_SPECIFIC_INSTALL=OFF # Needs system permission -DENABLE_RPATH=OFF # Should use dependencies in vcpkg -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_tools(TOOL_NAMES gmsh AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/gmsh/usage ================================================ gmsh provides CMake targets: find_package(gmsh CONFIG REQUIRED) target_link_libraries(main PRIVATE $,gmsh::shared,gmsh::lib>) ================================================ FILE: ports/gmsh/vcpkg.json ================================================ { "name": "gmsh", "version": "4.15.1", "description": "Gmsh is an open source 3D finite element mesh generator with a built-in CAD engine and post-processor.", "homepage": "https://gmsh.info", "license": "LGPL-2.0-or-later", "supports": "!uwp", "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "graphics": { "description": "Enable building graphics lib even without GUI (advanced)", "dependencies": [ "libjpeg-turbo", "libpng", "opengl", "zlib" ] }, "mpi": { "description": "Enable MPI (experimental, not used for meshing)", "dependencies": [ "openmpi" ] }, "occ": { "description": "Enable OpenCASCADE modules", "dependencies": [ { "name": "opencascade", "default-features": false } ] }, "zipper": { "description": "Enable Zip file compression/decompression", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/gobject-introspection/0001-g-ir-tool-template.in.patch ================================================ diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in index 648c9ab..b5e3568 100755 --- a/tools/g-ir-tool-template.in +++ b/tools/g-ir-tool-template.in @@ -1,4 +1,4 @@ -#!@PYTHON_CMD@ +#!/usr/bin/env python3 # -*- Mode: Python -*- # GObject-Introspection - a framework for introspecting GObject libraries # Copyright (C) 2008 Johan Dahlin @@ -46,22 +46,20 @@ if debug: filedir = os.path.dirname(__file__) # Try using relative paths first so that the installation prefix is relocatable -datadir = os.path.abspath(os.path.join(filedir, '..', 'share')) +datadir = os.path.abspath(os.path.join(filedir, '..', '..', 'share')) # Fallback to hard-coded paths if the relocatable paths are wrong +datadir = os.getenv('VCPKG_GI_DATADIR', datadir) if not os.path.isdir(os.path.join(datadir, 'gir-1.0')): - datadir = "@datarootdir@" + raise Exception('Failed to determine datadir') builtins.__dict__['DATADIR'] = datadir -gir_dir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@', 'gir-1.0')) -# Fallback to hard-coded paths if the relocatable paths are wrong -if not os.path.isdir(gir_dir): - gir_dir = "@GIR_DIR@" +gir_dir = os.path.abspath(os.path.join(datadir, 'gir-1.0')) builtins.__dict__['GIR_DIR'] = gir_dir # Again, relative paths first so that the installation prefix is relocatable -pylibdir = os.path.abspath(os.path.join(filedir, '..', 'lib', 'gobject-introspection')) +pylibdir = os.path.abspath(os.path.join(filedir, '..', '..', 'lib', 'gobject-introspection')) # EXT_SUFFIX for py3 SO for py2 py_mod_suffix = sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO') @@ -90,12 +88,18 @@ if not os.path.isfile(os.path.join(pylibdir, 'giscanner', '_giscanner' + py_mod_ if os.path.isfile(gdump_path): builtins.__dict__['GDUMP_PATH'] = gdump_path else: - # Okay, we're not running uninstalled and the prefix is not - # relocatable. Use hard-coded libdir. - pylibdir = os.path.join('@libdir@', 'gobject-introspection') + raise Exception('Could not determine pylibdir') sys.path.insert(0, pylibdir) +vcpkg_gi_lib_path = os.getenv('VCPKG_GI_LIBDIR', None) +vcpkg_gi_lib_path_var = os.getenv('VCPKG_GI_LIBDIR_VAR', None) +if vcpkg_gi_lib_path_var is not None and vcpkg_gi_lib_path is not None: + ld_lib_path = os.getenv(vcpkg_gi_lib_path_var, '') + if ld_lib_path != '': + ld_lib_path = os.pathsep + ld_lib_path + os.environ[vcpkg_gi_lib_path_var] = vcpkg_gi_lib_path + ld_lib_path + from giscanner.utils import dll_dirs dll_dirs = dll_dirs() dll_dirs.add_dll_dirs(['gio-2.0']) ================================================ FILE: ports/gobject-introspection/gir-scanner-runtime.diff ================================================ diff --git a/meson.build b/meson.build index ea3ae94..9cd88fe 100644 --- a/meson.build +++ b/meson.build @@ -220,6 +220,7 @@ current_library_path = run_command( g_ir_scanner_env.set(var, current_library_path.stdout().strip()) if host_system in ['windows', 'cygwin'] g_ir_scanner_env.prepend(var, gio_dep.get_variable('giomoduledir')) + g_ir_scanner_env.prepend(var, glib_dep.get_variable('bindir')) endif configure_file( ================================================ FILE: ports/gobject-introspection/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "${PORT}-${VERSION}.tar.xz" SHA512 a9d2edbe1cea710e10ef1ea8059a45cf5689bace43b5d2a6861809e863a6de7114b4763db8df3916ad6202c9967f48f7997acd0810a86e5e88dea7e0be88b585 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-g-ir-tool-template.in.patch gir-scanner-runtime.diff # https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/575 setuptools-compat.patch ) include("${CURRENT_PORT_DIR}/vcpkg-port-config.cmake") vcpkg_get_gobject_introspection_programs(PYTHON3) set(additional_binaries "") set(options "") set(options_release "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") message(STATUS "Static triplet. Not building introspection data.") list(APPEND options_release -Dbuild_introspection_data=false) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) list(APPEND additional_binaries "flex='${FLEX}'" "bison='${BISON}'" ) if("cairo" IN_LIST FEATURES) list(APPEND options_release -Dcairo=enabled) else() list(APPEND options_release -Dcairo=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddoctool=disabled -Dgtk_doc=false ${options} OPTIONS_DEBUG -Dbuild_introspection_data=false -Dcairo=disabled OPTIONS_RELEASE ${options_release} ADDITIONAL_BINARIES "python='${PYTHON3}'" ${additional_binaries} ) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") # VCPKG_GI_... variables are used by, and scoped to, giscanner set(ENV{VCPKG_GI_LIBDIR} "${CURRENT_INSTALLED_DIR}/lib") set(ENV{VCPKG_GI_DATADIR} "${CURRENT_PACKAGES_DIR}/share") file(MAKE_DIRECTORY "$ENV{VCPKG_GI_DATADIR}/gir-1.0") if(VCPKG_TARGET_IS_WINDOWS) set(ENV{VCPKG_GI_LIBDIR_VAR} "LIB") elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(ENV{VCPKG_GI_LIBDIR_VAR} "DYLD_LIBRARY_PATH") else() set(ENV{VCPKG_GI_LIBDIR_VAR} "LD_LIBRARY_PATH") endif() vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # Cf. https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir") foreach(lib IN ITEMS GLib-2.0 GObject-2.0 GModule-2.0 Gio-2.0) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir/${lib}.gir" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gir-1.0") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir/${lib}.typelib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/girepository-1.0") endforeach() endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script IN ITEMS g-ir-annotation-tool g-ir-scanner) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endforeach() vcpkg_copy_tools(TOOL_NAMES g-ir-compiler g-ir-generate g-ir-inspect AUTO_CLEAN) file(GLOB pcfiles "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") foreach(file IN LISTS pcfiles) vcpkg_replace_string("${file}" [[=${bindir}/g-ir-]] [[=${prefix}/tools/gobject-introspection/g-ir-]]) endforeach() # No fixup for debug: Let it fail early as long as we lack debug builds for (windows) python. if(VCPKG_TARGET_IS_WINDOWS) file(GLOB _pyd_lib_files "${CURRENT_PACKAGES_DIR}/lib/gobject-introspection/giscanner/_giscanner.*.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/gobject-introspection/giscanner/_giscanner.*.lib") file(REMOVE ${_pyd_lib_files}) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gobject-introspection/setuptools-compat.patch ================================================ diff --git a/giscanner/msvccompiler.py b/giscanner/msvccompiler.py index c9f14b5..1cd57df 100644 --- a/giscanner/msvccompiler.py +++ b/giscanner/msvccompiler.py @@ -40,7 +40,8 @@ class MSVCCompiler(DistutilsMSVCCompiler): def __init__(self, verbose=0, dry_run=0, force=0): super(DistutilsMSVCCompiler, self).__init__() - CCompiler.__init__(self, verbose, dry_run, force) + # dry_run removed in setuptools 81; just ignore it + CCompiler.__init__(self, verbose=verbose, force=force) self.__paths = [] self.__arch = None # deprecated name self.initialized = False ================================================ FILE: ports/gobject-introspection/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) function(z_vcpkg_get_gobject_introspection_python out_var) if(VCPKG_CROSSCOMPILING) message(STATUS "Cross build with gobject-introspection. " "Building and using ${PORT} will fail if the host cannot execute target binaries." ) endif() set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python3${VCPKG_TARGET_EXECUTABLE_SUFFIX}") if(VCPKG_TARGET_IS_WINDOWS) set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python.exe") endif() # Varation of x_vcpkg_get_python_packages, but # - providing the interpreter for the target # - using venv also for windows message(STATUS "Setting up ${TARGET_TRIPLET} python venv which provides setuptools...") set(venv_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-gir-venv") file(REMOVE_RECURSE "${venv_path}") file(MAKE_DIRECTORY "${venv_path}") set(python_sub_path /bin) set(python_venv_options --symlinks) if(VCPKG_TARGET_IS_WINDOWS) set(python_sub_path /Scripts) set(python_venv_options --copies) endif() set(ENV{PYTHONNOUSERSITE} "1") vcpkg_execute_required_process( COMMAND "${target_python}" -I -m venv ${python_venv_options} "${venv_path}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "venv-init-${TARGET_TRIPLET}" ) set(gobject_introspection_python "${venv_path}${python_sub_path}/python${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(ENV{VIRTUAL_ENV} "${venv_path}") unset(ENV{PYTHONHOME}) unset(ENV{PYTHONPATH}) vcpkg_execute_required_process( COMMAND "${gobject_introspection_python}" -I -m pip install setuptools WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "venv-install-setuptools-${TARGET_TRIPLET}" ) message(STATUS "Finished (with ${out_var} at ${gobject_introspection_python})") set("${out_var}" "${gobject_introspection_python}" PARENT_SCOPE) endfunction() function(vcpkg_get_gobject_introspection_programs) if("PYTHON3" IN_LIST ARGN) z_vcpkg_get_gobject_introspection_python(PYTHON3) set(PYTHON3 "${PYTHON3}" PARENT_SCOPE) list(REMOVE_ITEM ARGN "PYTHON3") endif() if("GIR_COMPILER" IN_LIST ARGN) set(GIR_COMPILER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_TARGET_EXECUTABLE_SUFFIX}" PARENT_SCOPE) list(REMOVE_ITEM ARGN "GIR_COMPILER") endif() if("GIR_SCANNER" IN_LIST ARGN) set(GIR_SCANNER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-scanner" PARENT_SCOPE) list(REMOVE_ITEM ARGN "GIR_SCANNER") endif() if(NOT ARGN STREQUAL "") message(FATAL_ERROR "Unsupported arguments: ${ARGN}") endif() endfunction() ================================================ FILE: ports/gobject-introspection/vcpkg.json ================================================ { "name": "gobject-introspection", "version": "1.86.0", "port-version": 2, "description": [ "A middleware layer between C libraries (using GObject) and language bindings.", "Building (with) gobject-introspection is based on dynamic library linkage. Static builds of the core feature set are supported only for CI purposes.", "The g-ir-scanner program runs executables for the target system. This limits actual cross-build support to targets supported by the host CPU." ], "homepage": "https://gi.readthedocs.io/en/latest/", "license": null, "supports": "!(static & staticcrt)", "dependencies": [ "glib", "libffi", "python3", { "name": "vcpkg-tool-meson", "host": true } ], "features": { "cairo": { "description": "Install introspection data for cairo.", "supports": "!static", "dependencies": [ { "name": "cairo", "default-features": false, "features": [ "gobject" ] } ] } } } ================================================ FILE: ports/godot-cpp/packagable.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e4b1f50..cb910688 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,3 +60,38 @@ endif() # USE_FOLDERS flag will organize godot-cpp targets under the subfolder # 'godot-cpp'. This is enable by default from CMake version 3.26 set_property(GLOBAL PROPERTY USE_FOLDERS ON) + + + +include("CMakePackageConfigHelpers") +include("GNUInstallDirs") + +string(TOLOWER "godot-cpp.template_${CMAKE_BUILD_TYPE}" INSTALL_TARGET) +install(TARGETS "${INSTALL_TARGET}" + EXPORT "unofficial-godot-cpp-config" + ARCHIVE + DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) + +install( + DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}/include/" + "${CMAKE_CURRENT_BINARY_DIR}/gen/include/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) +install(FILES "${GODOTCPP_GDEXTENSION_DIR}/gdextension_interface.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) + +install(EXPORT "unofficial-godot-cpp-config" + NAMESPACE "unofficial::" + DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-godot-cpp" +) + +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-godot-cpp-config-version.cmake" + VERSION "4.4" + COMPATIBILITY "SameMinorVersion" +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-godot-cpp-config-version.cmake" + DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-godot-cpp" +) diff --git a/cmake/GodotCPPModule.cmake b/cmake/GodotCPPModule.cmake index ce087468..04b4679d 100644 --- a/cmake/GodotCPPModule.cmake +++ b/cmake/GodotCPPModule.cmake @@ -18,7 +18,6 @@ godot-cpp include( GodotCPPModule ) ]=======================================================================] -find_package(Python3 3.4 REQUIRED) # pathlib should be present #[[ Generate Trimmed API diff --git a/cmake/godotcpp.cmake b/cmake/godotcpp.cmake index c10d835d..cb2e8f70 100644 --- a/cmake/godotcpp.cmake +++ b/cmake/godotcpp.cmake @@ -105,7 +105,7 @@ function( godotcpp_options ) # Except for macos universal, which can be set by GODOTCPP_MACOS_UNIVERSAL=YES # Input from user for GDExtension interface header and the API JSON file - set( GODOTCPP_GDEXTENSION_DIR "gdextension" CACHE PATH + set( GODOTCPP_GDEXTENSION_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gdextension" CACHE PATH "Path to a custom directory containing GDExtension interface header and API JSON file ( /path/to/gdextension_dir )" ) set( GODOTCPP_CUSTOM_API_FILE "" CACHE FILEPATH "Path to a custom GDExtension API JSON file (takes precedence over `GODOTCPP_GDEXTENSION_DIR`) ( /path/to/custom_api_file )") @@ -288,7 +288,8 @@ function( godotcpp_generate ) set( IS_DEV_BUILD "$") ### Define our godot-cpp library targets - foreach ( TARGET_ALIAS template_debug template_release editor ) + block() + string(TOLOWER "template_${CMAKE_BUILD_TYPE}" TARGET_ALIAS) set( TARGET_NAME "godot-cpp.${TARGET_ALIAS}" ) # Generator Expressions that rely on the target @@ -307,7 +308,7 @@ function( godotcpp_generate ) ) # the godot-cpp.* library targets - add_library( ${TARGET_NAME} STATIC EXCLUDE_FROM_ALL ) + add_library( ${TARGET_NAME} STATIC ) add_library( godot-cpp::${TARGET_ALIAS} ALIAS ${TARGET_NAME} ) file( GLOB_RECURSE GODOTCPP_SOURCES LIST_DIRECTORIES NO CONFIGURE_DEPENDS src/*.cpp ) @@ -319,9 +320,10 @@ function( godotcpp_generate ) ) target_include_directories( ${TARGET_NAME} ${GODOTCPP_SYSTEM_HEADERS_ATTRIBUTE} PUBLIC - include - ${CMAKE_CURRENT_BINARY_DIR}/gen/include - ${GODOTCPP_GDEXTENSION_DIR} + "$" + "$" + "$" + "$" ) set_target_properties( ${TARGET_NAME} @@ -348,6 +350,8 @@ function( godotcpp_generate ) # Some IDE's respect this property to logically group targets FOLDER "godot-cpp" + + EXPORT_NAME "godot::cpp" ) if( CMAKE_SYSTEM_NAME STREQUAL Android ) @@ -364,10 +368,9 @@ function( godotcpp_generate ) windows_generate() endif () - endforeach () + endblock() # Added for backwards compatibility with prior cmake solution so that builds dont immediately break # from a missing target. - add_library( godot::cpp ALIAS godot-cpp.template_debug ) endfunction() diff --git a/cmake/web.cmake b/cmake/web.cmake index 996a1e52..170c6ac9 100644 --- a/cmake/web.cmake +++ b/cmake/web.cmake @@ -26,7 +26,6 @@ function( web_generate ) PUBLIC -sSIDE_MODULE -sSUPPORT_LONGJMP=wasm - -fno-exceptions $<${THREADS_ENABLED}:-sUSE_PTHREADS=1> ) diff --git a/cmake/windows.cmake b/cmake/windows.cmake index 8e37e7e4..02a24fde 100644 --- a/cmake/windows.cmake +++ b/cmake/windows.cmake @@ -60,9 +60,9 @@ function( windows_options ) message( STATUS "If not already cached, setting CMAKE_MSVC_RUNTIME_LIBRARY.\n" "\tFor more information please read godot-cpp/cmake/windows.cmake") - set( CMAKE_MSVC_RUNTIME_LIBRARY - "MultiThreaded$,DebugDLL,$<$>:DLL>>" - CACHE STRING "Select the MSVC runtime library for use by compilers targeting the MSVC ABI.") + # set( CMAKE_MSVC_RUNTIME_LIBRARY + # "MultiThreaded$,DebugDLL,$<$>:DLL>>" + # CACHE STRING "Select the MSVC runtime library for use by compilers targeting the MSVC ABI.") endfunction() ================================================ FILE: ports/godot-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "godotengine/godot-cpp" REF "godot-${VERSION}-stable" SHA512 "3c97d6f0bbd952977d8085483d538b650d44ee0f9c6d84215128d9702d071b23a91bacab3a5259320f89d11884b3a5d5b638bc757c11d7447c000223fa976de8" HEAD_REF "master" PATCHES "packagable.patch" ) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPython3_EXECUTABLE=${PYTHON3}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file( INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/godot-cpp/usage ================================================ godot-cpp provides CMake targets: find_package(unofficial-godot-cpp CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::godot::cpp) ================================================ FILE: ports/godot-cpp/vcpkg.json ================================================ { "name": "godot-cpp", "version": "4.4", "description": "C++ bindings for the Godot script API", "homepage": "https://github.com/godotengine/godot-cpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/goldy/goldy-config.cmake ================================================ include(CMakeFindDependencyMacro) if(NOT TARGET goldy::goldy) add_library(goldy::goldy INTERFACE IMPORTED) get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) set_target_properties(goldy::goldy PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) if(WIN32) set_target_properties(goldy::goldy PROPERTIES INTERFACE_LINK_LIBRARIES "${_IMPORT_PREFIX}/lib/goldy_ffi.lib" ) else() find_library(_GOLDY_FFI_LIB goldy_ffi PATHS "${_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) set_target_properties(goldy::goldy PROPERTIES INTERFACE_LINK_LIBRARIES "${_GOLDY_FFI_LIB}" ) endif() endif() ================================================ FILE: ports/goldy/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO koubaa/goldy REF "v${VERSION}" SHA512 8ff9ac74d796cc5ac4660232cf55edda9f848aca4fd565e59d4e6a90c3d2c1ced444b96aa4f2ab4cfe300049eda5aaa275238ba4e7c341771ef3c8b723df79a0 HEAD_REF main ) # Download pre-built native library for target platform if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(GOLDY_FFI_ARCHIVE URLS "https://github.com/koubaa/goldy/releases/download/v${VERSION}/goldy_ffi-windows-x64.zip" FILENAME "goldy_ffi-${VERSION}-windows-x64.zip" SHA512 15142e06536046d4f2768c95256471efb8c0cb1b52a905f34aaab9636d5f98139b7a038afeace680879298695dfe952061a404eb7da5ef6999f65b8317455ef9 ) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(GOLDY_FFI_ARCHIVE URLS "https://github.com/koubaa/goldy/releases/download/v${VERSION}/goldy_ffi-linux-x64.tar.gz" FILENAME "goldy_ffi-${VERSION}-linux-x64.tar.gz" SHA512 ebc70ffdc0895ed8755a5e475d0e06e91114998e0dab1a6a2db4f909a1b606a3b6c150e9325a23ff498a3d82c67ff7e433fe5524399bbbb4e4308f2969ac527f ) elseif(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(GOLDY_FFI_ARCHIVE URLS "https://github.com/koubaa/goldy/releases/download/v${VERSION}/goldy_ffi-macos-x64.tar.gz" FILENAME "goldy_ffi-${VERSION}-macos-x64.tar.gz" SHA512 416ad1957f96fb7a9e6a5a0711ae58e75c0658f8f84014797b041b482698b4780fd422ffcd515e46796395a69400ece2487ff2225b7df729959c87b05da826e1 ) elseif(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") vcpkg_download_distfile(GOLDY_FFI_ARCHIVE URLS "https://github.com/koubaa/goldy/releases/download/v${VERSION}/goldy_ffi-macos-arm64.tar.gz" FILENAME "goldy_ffi-${VERSION}-macos-arm64.tar.gz" SHA512 7451fb6cbec47f869c295db480a2d9f32a064e0602e40cc8b9742543e78fccf35fae542e24d883b0ea632d803cc2789a120dfe880ca84e806b5f0091edf5007a ) else() message(FATAL_ERROR "Unsupported platform: ${VCPKG_TARGET_TRIPLET}") endif() vcpkg_extract_source_archive( BINARY_PATH ARCHIVE "${GOLDY_FFI_ARCHIVE}" NO_REMOVE_ONE_LEVEL ) # Install headers file(INSTALL "${SOURCE_PATH}/cpp/include/goldy.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/cpp/include/goldy.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Install native library if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${BINARY_PATH}/lib/goldy_ffi.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${BINARY_PATH}/lib/goldy_ffi.dll.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" RENAME "goldy_ffi.lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${BINARY_PATH}/lib/goldy_ffi.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${BINARY_PATH}/lib/goldy_ffi.dll.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" RENAME "goldy_ffi.lib") elseif(VCPKG_TARGET_IS_LINUX) file(INSTALL "${BINARY_PATH}/lib/libgoldy_ffi.so" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${BINARY_PATH}/lib/libgoldy_ffi.so" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") elseif(VCPKG_TARGET_IS_OSX) file(INSTALL "${BINARY_PATH}/lib/libgoldy_ffi.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${BINARY_PATH}/lib/libgoldy_ffi.dylib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() # Install CMake config and usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/goldy-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/goldy/usage ================================================ The package goldy provides CMake targets: find_package(goldy CONFIG REQUIRED) target_link_libraries(main PRIVATE goldy::goldy) Include the headers: #include // C++ RAII wrapper #include // C API Note: goldy_ffi.dll must be in your PATH or next to your executable at runtime. The Slang compiler (slang.dll) is also required at runtime (from Vulkan SDK). ================================================ FILE: ports/goldy/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "goldy", "version": "0.1.0", "description": "Modern GPU library with Slang shader support", "homepage": "https://github.com/koubaa/goldy", "license": "MIT", "supports": "!(static & staticcrt) & !uwp & ((x64 & (windows | linux)) | osx)", "features": { "examples": { "description": "Build example programs" } } } ================================================ FILE: ports/google-cloud-cpp/fix-googleapis-download.patch ================================================ diff --git a/external/googleapis/CMakeLists.txt b/external/googleapis/CMakeLists.txt index 5e93f522..30132c06 100644 --- a/external/googleapis/CMakeLists.txt +++ b/external/googleapis/CMakeLists.txt @@ -114,7 +114,7 @@ include(GoogleCloudCppCommonOptions) # the generated libraries. The Conan packages (https://conan.io), will need to # patch this value. Setting the value in a single place makes such patching # easier. -set(EXTERNAL_GOOGLEAPIS_PREFIX "${PROJECT_BINARY_DIR}/external/googleapis") +set(EXTERNAL_GOOGLEAPIS_PREFIX "${CMAKE_SOURCE_DIR}/external/googleapis") set(EXTERNAL_GOOGLEAPIS_SOURCE "${EXTERNAL_GOOGLEAPIS_PREFIX}/src/googleapis_download" PARENT_SCOPE) @@ -138,6 +138,7 @@ foreach (file IN LISTS protolists) endforeach () endforeach () +if(0) include(ExternalProject) externalproject_add( @@ -163,6 +164,7 @@ externalproject_add( INSTALL_COMMAND "" BUILD_BYPRODUCTS ${EXTERNAL_GOOGLEAPIS_BYPRODUCTS} LOG_DOWNLOAD OFF) +endif() google_cloud_cpp_find_proto_include_dir(PROTO_INCLUDE_DIR) @@ -204,7 +206,6 @@ function (external_googleapis_add_library proto) endfunction () function (external_googleapis_set_version_and_alias short_name) - add_dependencies("google_cloud_cpp_${short_name}" googleapis_download) set_target_properties( "google_cloud_cpp_${short_name}" PROPERTIES EXPORT_NAME google-cloud-cpp::${short_name} diff --git a/protos/google/cloud/compute/CMakeLists.txt b/protos/google/cloud/compute/CMakeLists.txt index 0a3b1ed..c054bc3 100644 --- a/protos/google/cloud/compute/CMakeLists.txt +++ b/protos/google/cloud/compute/CMakeLists.txt @@ -56,7 +56,6 @@ google_cloud_cpp_install_proto_library_headers(compute_protos) # `*.proto` files. We achieve this by having this target depend on all proto # libraries. It has to be defined at the top level of the project. add_dependencies(google-cloud-cpp-protos compute_protos) -add_dependencies(compute_protos googleapis_download) # Get the destination directories based on the GNU recommendations. include(GNUInstallDirs) ================================================ FILE: ports/google-cloud-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO googleapis/google-cloud-cpp REF "v${VERSION}" SHA512 a482008c81d12ffd6ec97b58fc25677f93ac59338e7092c28d2d3bace2f5263d575827b9837bb3413b3078bf5bb4feda4410eeeb269b888aa05f056ced42175f HEAD_REF main PATCHES fix-googleapis-download.patch ) # On update, update REF according to $/cmake/GoogleapisConfig.cmake 's # set(_GOOGLE_CLOUD_CPP_GOOGLEAPIS_COMMIT_SHA vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_GOOGLEAPIS REPO googleapis/googleapis REF 079e5305050859d0e3a8c0768611283ee4863c07 SHA512 c02ce31b4a2c80596a6c786a49b59f42d6b104e911b8e10f2548768ed48d708fc46308aecf04611c62512a968d9c31e9d0a73f921fcf5d1ab533e5ce8d9cf72c HEAD_REF master ) if(NOT EXISTS "${SOURCE_PATH}/external/googleapis/src") file(MAKE_DIRECTORY "${SOURCE_PATH}/external/googleapis/src") file(RENAME "${SOURCE_PATH_GOOGLEAPIS}" "${SOURCE_PATH}/external/googleapis/src/googleapis_download") endif() if ("grpc-common" IN_LIST FEATURES) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/grpc") endif () set(GOOGLE_CLOUD_CPP_ENABLE "${FEATURES}") list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "core") # This feature does not exist, but allows us to simplify the vcpkg.json # file. list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "grpc-common") list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "rest-common") list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "googleapis") # google-cloud-cpp uses dialogflow_cx and dialogflow_es. Underscores # are invalid in `vcpkg` features, we use dashes (`-`) as a separator # for the `vcpkg` feature name, and convert it here to something that # `google-cloud-cpp` would like. if ("dialogflow-cx" IN_LIST FEATURES) list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "dialogflow-cx") list(APPEND GOOGLE_CLOUD_CPP_ENABLE "dialogflow_cx") endif () if ("dialogflow-es" IN_LIST FEATURES) list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "dialogflow-es") list(APPEND GOOGLE_CLOUD_CPP_ENABLE "dialogflow_es") endif () if ("storage-grpc" IN_LIST FEATURES) list(REMOVE_ITEM GOOGLE_CLOUD_CPP_ENABLE "storage-grpc") list(APPEND GOOGLE_CLOUD_CPP_ENABLE "storage_grpc") endif () vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS "-DGOOGLE_CLOUD_CPP_ENABLE=${GOOGLE_CLOUD_CPP_ENABLE}" -DGOOGLE_CLOUD_CPP_ENABLE_MACOS_OPENSSL_CHECK=OFF -DGOOGLE_CLOUD_CPP_ENABLE_WERROR=OFF -DGOOGLE_CLOUD_CPP_ENABLE_CCACHE=OFF -DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF -DBUILD_TESTING=OFF -DGOOGLE_CLOUD_CPP_WITH_MOCKS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") function (google_cloud_cpp_cmake_config_fixup library) string(REPLACE "experimental-" "" library "${library}") string(REPLACE "-" "_" library "${library}") set(config_path "lib/cmake/google_cloud_cpp_${library}") # If the library exists and is installed, tell vcpkg about it. if(NOT IS_DIRECTORY "${CURRENT_PACKAGES_DIR}/${config_path}") return() endif() vcpkg_cmake_config_fixup(PACKAGE_NAME "google_cloud_cpp_${library}" CONFIG_PATH "${config_path}" DO_NOT_DELETE_PARENT_CONFIG_PATH) endfunction () foreach(feature IN LISTS GOOGLE_CLOUD_CPP_ENABLE) google_cloud_cpp_cmake_config_fixup(${feature}) google_cloud_cpp_cmake_config_fixup(${feature}_mocks) endforeach() # These packages are automatically installed depending on what features are # enabled. foreach(feature common compute_protos googleapis grpc_utils iam_v2 logging_type rest_internal rest_protobuf_internal) google_cloud_cpp_cmake_config_fixup(${feature}) endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/google-cloud-cpp/vcpkg.json ================================================ { "name": "google-cloud-cpp", "version": "2.37.0", "description": "C++ Client Libraries for Google Cloud Platform APIs.", "homepage": "https://github.com/googleapis/google-cloud-cpp", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "abseil", { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "bigquery", "bigtable", "iam", "pubsub", "spanner", "storage" ], "features": { "accessapproval": { "description": "Access Approval API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "accesscontextmanager": { "description": "Access Context Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "advisorynotifications": { "description": "Advisory Notifications API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "aiplatform": { "description": "Vertex AI API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "alloydb": { "description": "Alloy DB API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "apigateway": { "description": "API Gateway API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "apigeeconnect": { "description": "Apigee Connect API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "apikeys": { "description": "API Keys API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "appengine": { "description": "App Engine Admin API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "apphub": { "description": "App Hub API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "artifactregistry": { "description": "Artifact Registry API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "asset": { "description": "Cloud Asset API C++ Client Library", "supports": "!windows", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "accesscontextmanager", "grpc-common", "osconfig" ] } ] }, "assuredworkloads": { "description": "Assured Workloads API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "automl": { "description": "Cloud AutoML API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "backupdr": { "description": "Backup and DR Service API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "baremetalsolution": { "description": "Bare Metal Solution API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "batch": { "description": "Batch API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "beyondcorp": { "description": "BeyondCorp API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "bigquery": { "description": "The Google Cloud BigQuery C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "bigquerycontrol": { "description": "Cloud BigQuery Control API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common", "rest-common" ] } ] }, "bigtable": { "description": "The Google Cloud Bigtable C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "billing": { "description": "Cloud Billing Budget API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "binaryauthorization": { "description": "Binary Authorization API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grafeas", "grpc-common" ] } ] }, "certificatemanager": { "description": "Certificate Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "channel": { "description": "Cloud Channel API C++ Client Library", "supports": "!windows", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "chronicle": { "description": "Chronicle API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "cloudbuild": { "description": "Cloud Build API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "cloudcontrolspartner": { "description": "Cloud Controls Partner API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "cloudquotas": { "description": "Cloud Quotas API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "commerce": { "description": "Cloud Commerce C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "composer": { "description": "Cloud Composer C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "compute": { "description": "Compute Engine C++ Client Library", "supports": "!windows", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common", "rest-common" ] } ] }, "confidentialcomputing": { "description": "Confidential Computing API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "config": { "description": "Infrastructure Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "connectors": { "description": "Connectors API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "contactcenterinsights": { "description": "Contact Center AI Insights API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "container": { "description": "Kubernetes Engine API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "containeranalysis": { "description": "Container Analysis API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grafeas", "grpc-common" ] } ] }, "contentwarehouse": { "description": "Document AI Warehouse API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "datacatalog": { "description": "Google Cloud Data Catalog API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "datafusion": { "description": "Cloud Data Fusion API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "datamigration": { "description": "Database Migration API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "dataplex": { "description": "Cloud Dataplex API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "dataproc": { "description": "Cloud Dataproc API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "datastore": { "description": "Cloud Datastore API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "datastream": { "description": "Datastream API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "deploy": { "description": "Google Cloud Deploy API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "developerconnect": { "description": "Developer Connect API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "devicestreaming": { "description": "Device Streaming API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "dialogflow-cx": { "description": "Cloud Dialogflow CX API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "dialogflow-es": { "description": "Cloud Dialogflow ES API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "discoveryengine": { "description": "Discovery Engine API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "dlp": { "description": "Cloud Data Loss Prevention (DLP) API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "documentai": { "description": "Cloud Document AI API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "domains": { "description": "Cloud Domains API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "edgecontainer": { "description": "Distributed Cloud Edge Container API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "edgenetwork": { "description": "Distributed Cloud Edge Network API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "essentialcontacts": { "description": "Essential Contacts API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "eventarc": { "description": "Eventarc API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "filestore": { "description": "Cloud Filestore API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "financialservices": { "description": "Financial Services API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "functions": { "description": "Cloud Functions API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "gkebackup": { "description": "Backup for GKE API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "gkeconnect": { "description": "GKE Connect Gateway API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common", "rest-common" ] } ] }, "gkehub": { "description": "GKE Hub C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "gkemulticloud": { "description": "Anthos Multi-Cloud C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "grafeas": { "description": "Protocol buffers implementing the 'Grafeas API' (metadata about software artifacts)", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "grpc-common": { "description": "Dependencies used by all gRPC-based libraries", "dependencies": [ "grpc", { "name": "grpc", "host": true }, "protobuf", { "name": "protobuf", "host": true } ] }, "iam": { "description": "The Google Cloud IAM C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "iap": { "description": "Cloud Identity-Aware Proxy API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "ids": { "description": "Cloud IDS API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "kms": { "description": "Cloud Key Management Service (KMS) API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "language": { "description": "Cloud Natural Language API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "logging": { "description": "Google Cloud Logging C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "managedidentities": { "description": "Managed Service for Microsoft Active Directory API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "managedkafka": { "description": "Manage Apache Kafka clusters and resources.", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "memcache": { "description": "Cloud Memorystore for Memcached API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "metastore": { "description": "Dataproc Metastore API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "migrationcenter": { "description": "Migration Center API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "monitoring": { "description": "Cloud Monitoring API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "netapp": { "description": "NetApp API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "networkconnectivity": { "description": "Network Connectivity API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "networkmanagement": { "description": "Network Management API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "networksecurity": { "description": "Secure Web Proxy API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "networkservices": { "description": "Network Services API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "notebooks": { "description": "Notebooks API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "oauth2": { "description": "OAuth2 Access Token Generation Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "rest-common" ] } ] }, "opentelemetry": { "description": "OpenTelemetry C++ GCP Exporter Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "monitoring", "rest-common", "trace" ] }, "opentelemetry-cpp" ] }, "optimization": { "description": "Cloud Optimization API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "orgpolicy": { "description": "Organization Policy API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "osconfig": { "description": "Cloud OS Config API C++ Client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "oslogin": { "description": "Cloud OS Login API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "parallelstore": { "description": "Cloud Parallel Store API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "parametermanager": { "description": "Cloud Parameter Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "policysimulator": { "description": "Policy Simulator API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "policytroubleshooter": { "description": "Policy Troubleshooter API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "privateca": { "description": "Certificate Authority API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "privilegedaccessmanager": { "description": "Privileged Access Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "profiler": { "description": "Cloud Profiler API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "publicca": { "description": "Public Certificate Authority API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "pubsub": { "description": "The Google Cloud Bigtable C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "rapidmigrationassessment": { "description": "Rapid Migration Assessment C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "recaptchaenterprise": { "description": "reCAPTCHA Enterprise API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "recommender": { "description": "Recommender C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "redis": { "description": "Google Cloud Memorystore for Redis API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "resourcemanager": { "description": "Cloud Resource Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "resourcesettings": { "description": "Resource Settings API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "rest-common": { "description": "Dependencies used by all REST-based libraries", "dependencies": [ { "name": "curl", "features": [ "ssl" ] }, "nlohmann-json" ] }, "retail": { "description": "Retail API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "rpc": { "description": "RPC API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "run": { "description": "Cloud Run Admin API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "scheduler": { "description": "Cloud Scheduler API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "secretmanager": { "description": "The Google Cloud Secret Manager C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "securesourcemanager": { "description": "Secure Source Manager API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "securitycenter": { "description": "Security Command Center API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "securitycentermanagement": { "description": "Security Center Management API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "servicecontrol": { "description": "Service Control API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "servicedirectory": { "description": "Service Directory API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "servicehealth": { "description": "Personalized Service Health API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "servicemanagement": { "description": "Service Management API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "serviceusage": { "description": "Service Usage API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "shell": { "description": "Cloud Shell API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "spanner": { "description": "The Google Cloud Spanner C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "speech": { "description": "The Google Cloud Speech-to-Text C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "sql": { "description": "The Google Cloud SQL Admin C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common", "rest-common" ] } ] }, "storage": { "description": "The Google Cloud Storage C++ client library", "dependencies": [ "crc32c", { "name": "google-cloud-cpp", "default-features": false, "features": [ "rest-common" ] } ] }, "storage-grpc": { "description": "The GCS+gRPC plugin", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common", "opentelemetry", "storage" ] } ] }, "storagebatchoperations": { "description": "Cloud Storage Batch Operations API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "storagecontrol": { "description": "Cloud Storage Control API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "storageinsights": { "description": "Storage Insights API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "storagetransfer": { "description": "Storage Transfer API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "support": { "description": "Cloud Support API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "talent": { "description": "Cloud Talent Solution API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "tasks": { "description": "The Google Cloud Tasks C++ client library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "telcoautomation": { "description": "Cloud Telco Automation API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "texttospeech": { "description": "Cloud Text-to-Speech API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "timeseriesinsights": { "description": "Timeseries Insights API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "tpu": { "description": "Cloud TPU API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "trace": { "description": "Stackdriver Trace API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "translate": { "description": "Cloud Translation API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "video": { "description": "Video Services C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "videointelligence": { "description": "Cloud Video Intelligence API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "vision": { "description": "Cloud Vision API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "vmmigration": { "description": "VM Migration API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "vmwareengine": { "description": "VMware Engine API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "vpcaccess": { "description": "Serverless VPC Access API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "webrisk": { "description": "Web Risk API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "websecurityscanner": { "description": "Web Security Scanner API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "workflows": { "description": "Workflow Executions API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] }, "workstations": { "description": "Workstations API C++ Client Library", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "grpc-common" ] } ] } } } ================================================ FILE: ports/gperf/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) # tool only vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/gperf/gperf-${VERSION}.tar.gz" "https://ftp.gnu.org/pub/gnu/gperf/gperf-${VERSION}.tar.gz" FILENAME gperf-${VERSION}.tar.gz SHA512 246b75b8ce7d77d6a8725cd15f1cf2e68da404812573af1d5bf32dbe6ad4228f48757baefc77bcb1f5597c2397043c04d31d8a04ab507bfa7a80f85e1ab6045f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS_RELEASE "--bindir=\\\${prefix}/tools/${PORT}" # legacy from vendored CMake build ) vcpkg_make_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gperf/vcpkg.json ================================================ { "name": "gperf", "version": "3.3", "description": "GNU perfect hash function generator", "homepage": "https://www.gnu.org/software/gperf/", "license": "GPL-3.0-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/gperftools/cmake-project-include.cmake ================================================ if(ANDROID) include(CheckFunctionExists) check_function_exists("glob" HAVE_GLOB_H) endif() ================================================ FILE: ports/gperftools/install.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e9647d5..092f40d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -424,7 +424,7 @@ if(MSVC) endif() add_library(common - STATIC + OBJECT src/base/logging.cc src/base/generic_writer.cc src/base/sysinfo.cc @@ -497,7 +497,7 @@ endif() if(WITH_STACK_TRACE) ### Making the library - add_library(stacktrace STATIC + add_library(stacktrace OBJECT src/stacktrace.cc src/base/elf_mem_image.cc src/base/vdso_support.cc) @@ -926,4 +926,53 @@ if(MSVC) add_subdirectory(src/windows) endif() +foreach(lib IN ITEMS + tcmalloc_minimal tcmalloc tcmalloc_minimal_debug tcmalloc_debug + profiler +) + if(TARGET "${lib}") + install(TARGETS "${lib}") + set(pc_file "${CMAKE_CURRENT_BINARY_DIR}/lib${lib}.pc") + set(pc_libs_private "${CMAKE_THREAD_LIBS_INIT}") + if("execinfo" IN_LIST unwind_libs AND lib MATCHES "tcmalloc") + string(APPEND pc_libs_private " -lexecinfo") + endif() + set(pc_requires_private "") + if(gperftools_enable_libunwind AND lib MATCHES "tcmalloc") + string(APPEND pc_requires_private " libunwind") + endif() + file(CONFIGURE OUTPUT "${pc_file}" CONTENT [[ +prefix= +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: @PROJECT_NAME@ +Version: @PROJECT_VERSION@ +Description: Performance tools for C++ +URL: https://github.com/gperftools/gperftools +Cflags: -I${includedir} +Libs: -L${libdir} -l@lib@ +Libs.private: @pc_libs_private@ +Requires.private: @pc_requires_private@ +]] @ONLY) + install(FILES "${pc_file}" DESTINATION "lib/pkgconfig") + endif() +endforeach() + +install( + FILES + src/gperftools/heap-checker.h + src/gperftools/heap-profiler.h + src/gperftools/malloc_extension.h + src/gperftools/malloc_extension_c.h + src/gperftools/malloc_hook.h + src/gperftools/malloc_hook_c.h + src/gperftools/nallocx.h + src/gperftools/profiler.h + src/gperftools/stacktrace.h + src/gperftools/tcmalloc.h + DESTINATION include/gperftools +) + message(WARNING "note: gperftools' cmake support is incomplete and is best-effort only") ================================================ FILE: ports/gperftools/libunwind.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 52629d3..a93c7e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,13 +241,13 @@ if(NOT WIN32) endif() if(gperftools_enable_libunwind) - check_include_file("libunwind.h" HAVE_LIBUNWIND_H) + find_package(PkgConfig REQUIRED) + pkg_check_modules(PC_LIBUNWIND libunwind REQUIRED) + find_file(HAVE_LIBUNWIND_H "libunwind.h" PATHS ${PC_LIBUNWIND_INCLUDE_DIRS} NO_DEFAULT_PATH REQUIRED) if(HAVE_LIBUNWIND_H) - find_library(libunwind_location NAMES unwind) - if(libunwind_location) - check_library_exists( - unwind backtrace ${libunwind_location} have_libunwind) - endif() + include_directories(${PC_LIBUNWIND_INCLUDE_DIRS}) + set(libunwind_location "${PC_LIBUNWIND_LINK_LIBRARIES}" CACHE INTERNAL "") + set(have_libunwind 1) if(have_libunwind) set(unwind_libs ${libunwind_location}) set(will_use_libunwind ON) ================================================ FILE: ports/gperftools/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gperftools/gperftools REF gperftools-${VERSION} SHA512 db5435194019797ce2556ee3f113ade6df28963f13ad579f492528fc1307041093558676aac9d2295b1ab392bb8553532ae079687dc01bdc14b40261e5dfe2d4 HEAD_REF master PATCHES libunwind.diff install.diff win32-override.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/vendor/googletest") if("override" IN_LIST FEATURES) vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_STATIC_CRT) endif() vcpkg_check_features( OUT_FEATURE_OPTIONS OPTIONS FEATURES libunwind gperftools_enable_libunwind override GPERFTOOLS_WIN32_OVERRIDE ) if(gperftools_enable_libunwind) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" -Dgperftools_build_benchmark=OFF ${OPTIONS} MAYBE_UNUSED_VARIABLES GPERFTOOLS_WIN32_OVERRIDE ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(GLOB gperf_public_headers "${CURRENT_PACKAGES_DIR}/include/gperftools/*.h") foreach(gperf_header IN LISTS gperf_public_headers) vcpkg_replace_string("${gperf_header}" "__declspec(dllimport)" "") endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gperftools/vcpkg.json ================================================ { "name": "gperftools", "version": "2.18.1", "description": "A high-performance multi-threaded malloc() implementation, plus some performance analysis tools.", "homepage": "https://github.com/gperftools/gperftools", "license": "BSD-3-Clause", "supports": "((x86 | x64) & windows & !uwp) | !windows | mingw", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "libunwind": { "description": "Support libunwind for stack traces", "dependencies": [ "libunwind" ] }, "override": { "description": "Override Windows allocators", "supports": "windows & staticcrt" } } } ================================================ FILE: ports/gperftools/win32-override.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2897655..7e93511 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -460,6 +460,11 @@ target_sources(common PRIVATE set(SYSTEM_ALLOC_CC src/windows/system-alloc.cc) set(TCMALLOC_CC src/windows/patch_functions.cc) +if(GPERFTOOLS_WIN32_OVERRIDE) + set(TCMALLOC_CC src/windows/override_functions.cc) + add_definitions(-DWIN32_OVERRIDE_ALLOCATORS) +endif() + # patch_function uses -lpsapi and spinlock bits use -synchronization # and -lshlwapi link_libraries(psapi synchronization shlwapi) ================================================ FILE: ports/gpgme/disable-docs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 1772d69..9bf9863 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,7 +45,7 @@ else tests = endif -SUBDIRS = src ${tests} doc lang +SUBDIRS = src ${tests} lang # Fix the version of the spec file. dist-hook: gen-ChangeLog ================================================ FILE: ports/gpgme/portfile.cmake ================================================ vcpkg_download_distfile(tarball URLS "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/gpgme/gpgme-${VERSION}.tar.bz2" "https://gnupg.org/ftp/gcrypt/gpgme/gpgme-${VERSION}.tar.bz2" FILENAME "gpgme-${VERSION}.tar.bz2" SHA512 ee58dc2a4273c740d5b9ef13cc655d5e600ddddd137fb85a781c31e8854829283b4ce241d7810a963d9a125d603213600f37e7d0c1ce3b3cf1b935e62cf60777 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${tarball}" PATCHES disable-docs.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-gpgconf-test --disable-gpg-test --disable-gpgsm-test --disable-g13-test GPG_ERROR_CONFIG=/ # fake absolute path; gpgrt-config is used instead OPTIONS_RELEASE "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" OPTIONS_DEBUG "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" ) vcpkg_make_install() vcpkg_copy_pdbs() # This port doesn't support the windows-only glib integration. file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gpgme-glib.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gpgme-glib.pc") vcpkg_fixup_pkgconfig() set(install_prefix "${CURRENT_INSTALLED_DIR}") if(VCPKG_HOST_IS_WINDOWS) string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" install_prefix "${install_prefix}") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/gpgme-config" "${install_prefix}" "`dirname $0`/../../..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/gpgme-config" "${install_prefix}" "`dirname $0`/../../../..") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(COMMENT [[ The library is distributed under the terms of the GNU Lesser General Public License (LGPL). The helper programs are distributed under the terms of the GNU General Public License (GPL). There are additional notices about contributions that require these additional notices are distributed. ]] FILE_LIST "${SOURCE_PATH}/COPYING.LESSER" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/LICENSES" ) ================================================ FILE: ports/gpgme/vcpkg.json ================================================ { "name": "gpgme", "version": "2.0.0", "description": "A library designed to make access to GnuPG easier for applications", "homepage": "https://gnupg.org/software/gpgme/", "license": null, "supports": "!windows | mingw", "dependencies": [ "libassuan", "libgpg-error", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/gpgmepp/cmake-config.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c121025..1f0554f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -194,14 +194,14 @@ configure_package_config_file(GpgmeppConfig.cmake.in ) if(ENABLE_SHARED) - if (MSVC) + if (0) install(TARGETS Gpgmepp EXPORT GpgmeppTargets "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") else() install(TARGETS Gpgmepp EXPORT GpgmeppTargets) endif() endif() if(ENABLE_STATIC) - install(TARGETS GpgmeppStatic) + install(TARGETS GpgmeppStatic EXPORT GpgmeppTargets) endif() set(pkgconfig_host_line "") @@ -224,7 +224,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gpgmepp_version.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gpgme++) # for now we install the cmake config files only for the shared library -if(ENABLE_SHARED) +if(1) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfigVersion.cmake ${CMAKE_CURRENT_BINARY_DIR}/GpgmeppConfig.cmake DESTINATION ${CMAKECONFIG_INSTALL_DIR}) ================================================ FILE: ports/gpgmepp/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 33a55c7..ed169aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,10 +62,8 @@ include(ECMUninstallTarget) include(FeatureSummary) include(GNUInstallDirs) -find_package(LibGpgError ${GPG_ERROR_REQUIRED_VERSION}) -set_package_properties(LibGpgError PROPERTIES TYPE REQUIRED) -find_package(Gpgme ${GPGME_REQUIRED_VERSION}) -set_package_properties(Gpgme PROPERTIES TYPE REQUIRED) +find_package(PkgConfig REQUIRED) +pkg_check_modules(Gpgme "gpgme>=${GPGME_REQUIRED_VERSION}" "gpg-error>=${GPG_ERROR_REQUIRED_VERSION}" REQUIRED) g10_get_full_version() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d28ed8f..989a011 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -126,11 +126,11 @@ if(ENABLE_SHARED) target_sources(Gpgmepp PRIVATE ${Gpgmepp_SOURCES}) target_include_directories(Gpgmepp - PRIVATE ${LibGpgError_INCLUDE_DIRS} + PRIVATE ${Gpgme_INCLUDE_DIRS} INTERFACE $ ) - target_link_libraries(Gpgmepp Gpgme::Gpgme) + target_link_libraries(Gpgmepp PRIVATE ${Gpgme_LINK_LIBRARIES}) set_target_properties(Gpgmepp PROPERTIES OUTPUT_NAME gpgmepp @@ -142,11 +142,11 @@ if(ENABLE_STATIC) target_sources(GpgmeppStatic PRIVATE ${Gpgmepp_SOURCES}) target_include_directories(GpgmeppStatic - PRIVATE ${LibGpgError_INCLUDE_DIRS} + PRIVATE ${Gpgme_INCLUDE_DIRS} INTERFACE $ ) - target_link_libraries(GpgmeppStatic Gpgme::Gpgme) + target_link_libraries(GpgmeppStatic PRIVATE ${Gpgme_LINK_LIBRARIES}) set_target_properties(GpgmeppStatic PROPERTIES OUTPUT_NAME gpgmepp diff --git a/src/GpgmeppConfig.cmake.in b/src/GpgmeppConfig.cmake.in index 8969602..4d5fedd 100644 --- a/src/GpgmeppConfig.cmake.in +++ b/src/GpgmeppConfig.cmake.in @@ -20,9 +20,5 @@ @PACKAGE_INIT@ -include(CMakeFindDependencyMacro) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") -find_dependency(LibGpgError "@GPG_ERROR_REQUIRED_VERSION@") -find_dependency(Gpgme "@GPGME_REQUIRED_VERSION@") include("${CMAKE_CURRENT_LIST_DIR}/GpgmeppTargets.cmake") ================================================ FILE: ports/gpgmepp/disable-docs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 1772d69..9bf9863 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,7 +45,7 @@ else tests = endif -SUBDIRS = src ${tests} doc lang +SUBDIRS = src ${tests} lang # Fix the version of the spec file. dist-hook: gen-ChangeLog ================================================ FILE: ports/gpgmepp/portfile.cmake ================================================ vcpkg_download_distfile(tarball URLS "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/gpgmepp/gpgmepp-${VERSION}.tar.xz" "https://gnupg.org/ftp/gcrypt/gpgme/gpgmepp-${VERSION}.tar.xz" FILENAME "gpgmepp-${VERSION}.tar.xz" SHA512 ed98f5dfd45efa216d0fc983ad650b46235b28a8e4faaf4349bc8e14cf76758e3099cfdc61e549f07e57d663e82550f373641f67303c5f2891b00fa5b419e927 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${tarball}" PATCHES cmake-config.diff dependencies.diff ) file(WRITE "${SOURCE_PATH}/VERSION" "${VERSION}") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DENABLE_SHARED=${ENABLE_SHARED} -DENABLE_STATIC=${ENABLE_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Gpgmepp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/gpgmepp/vcpkg.json ================================================ { "name": "gpgmepp", "version": "2.0.0", "description": "A C++ binding for gpgme", "homepage": "https://gnupg.org/software/gpgme/", "license": "LGPL-2.0-or-later", "dependencies": [ "gpgme", "libgpg-error", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gpgmm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/gpgmm REF "v${VERSION}" SHA512 1e949e87110e555aa139e564a667a030150e77fd9b174f11bd3238b1fc3e7ae7ef17cc483b8afc9b0b7c346ce36564c94959454e27509c520bec18ef8396b5a1 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DGPGMM_STANDALONE=OFF -DGPGMM_ENABLE_TESTS=OFF -DGPGMM_ENABLE_VK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) 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") endif() file(GLOB_RECURSE GPGMM_INCLUDE "${SOURCE_PATH}/include/*.h") file(INSTALL ${GPGMM_INCLUDE} DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/gpgmm/vcpkg.json ================================================ { "name": "gpgmm", "version": "0.1.2", "port-version": 1, "description": "GPGMM is a General-Purpose GPU Memory Management library. It provides a common set of GPU memory routines optimized for GPUs. The library helps developers manage video memory by implementing the necessary functionality across components based on Vulkan or D3D12", "homepage": "https://github.com/intel/GPGMM/", "license": "Apache-2.0", "supports": "windows & !(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gppanel/00001-fix-build.patch ================================================ diff --git a/gpPanel/gpPanel.cpp b/gpPanel/gpPanel.cpp index 7af20b5..908523c 100644 --- a/gpPanel/gpPanel.cpp +++ b/gpPanel/gpPanel.cpp @@ -720,8 +720,8 @@ void gpPanel::OnMenuItemPrintPreview(wxCommandEvent& event) gpLayer_s *gp = GetLayerByMenuId(event.GetId() ); if(gp==NULL)return; - mpPrintout *plotPrint = new mpPrintout(gp->m_plot, gp->layer->GetName()); - mpPrintout *plotPrintPreview = new mpPrintout(gp->m_plot, gp->layer->GetName()); + mpPrintout *plotPrint = new mpPrintout(gp->m_plot, gp->layer->GetName().c_str()); + mpPrintout *plotPrintPreview = new mpPrintout(gp->m_plot, gp->layer->GetName().c_str()); wxPrintPreview *preview = new wxPrintPreview(plotPrintPreview, plotPrint); @@ -765,7 +765,7 @@ void gpPanel::OnMenuItemSaveScreenshot(wxCommandEvent& event) if(index!=-1) { wxString reso = aChoices.Item(index); - if( reso.CompareTo(_("custom")) == 0 ){ + if( reso.CompareTo(_("custom").c_str()) == 0 ){ reso = wxGetTextFromUser(_("Write image resolution (format: [width]x[height]"), _("Custom resolution for image"), _("640x480"), this); } if(reso.Find('x') != -1) ================================================ FILE: ports/gppanel/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) project(gpPanel CXX) set(wxWidgets_EXCLUDE_COMMON_LIBRARIES TRUE) find_package(wxWidgets REQUIRED COMPONENTS core base) include(${wxWidgets_USE_FILE}) file(GLOB_RECURSE SOURCES "gpPanel/*.cpp") file(GLOB HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/include" "include/*.h") add_library(gpPanel STATIC ${SOURCES}) target_compile_definitions(gpPanel PRIVATE _CRT_SECURE_NO_WARNINGS) target_include_directories(gpPanel PUBLIC $ $ ) target_link_libraries(gpPanel PRIVATE ${wxWidgets_LIBRARIES}) install(TARGETS gpPanel EXPORT gpPanel-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(EXPORT gpPanel-config DESTINATION share/cmake/gpPanel) foreach(HEADER ${HEADERS}) get_filename_component(HEADER_DIR ${HEADER} DIRECTORY) install(FILES include/${HEADER} DESTINATION include/gpPanel/${HEADER_DIR}) endforeach() ================================================ FILE: ports/gppanel/fix-missing-headers.patch ================================================ diff --git a/include/baseXYData.h b/include/baseXYData.h index 2877e4f..f018b35 100644 --- a/include/baseXYData.h +++ b/include/baseXYData.h @@ -5,6 +5,9 @@ #include "CMinMax.h" #include "xyMultimapLabel.h" #include +#include +#include +#include //This possible to handle a lot of data quicker //plot just second 1000 point to display.. ================================================ FILE: ports/gppanel/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO woollybah/gppanel REF f58a9028f7c9a8e9b4324ff2165951f558365f90 SHA512 4ec5fbef4c487d351c60f48b0c0e41c5d077989ab96f827b9fd5ef01c167d50f39a313bd82db1b5df19d14025983e83db4d19cc4048c1c50fc8ef9128de15575 HEAD_REF master PATCHES 00001-fix-build.patch use-complex-header.patch fix-missing-headers.patch # https://github.com/woollybah/gppanel/pull/5 ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/gpPanel) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/gppanel/copyright COPYONLY) ================================================ FILE: ports/gppanel/use-complex-header.patch ================================================ diff --git a/include/Fourier.h b/include/Fourier.h index af55d2a..4283be8 100644 --- a/include/Fourier.h +++ b/include/Fourier.h @@ -13,7 +13,8 @@ //============================================================================== // FORWARD DECLARATION //============================================================================== -namespace std { template class complex; } +#include + #define SQUARE(real,imag) sqrt((real)*(real)+(imag)*(imag)) //============================================================================== ================================================ FILE: ports/gppanel/vcpkg.json ================================================ { "name": "gppanel", "version-date": "2020-05-20", "port-version": 4, "description": "gpPanel is chart library for wxWidget. It inheritance from wxPanel and use modified wxMathPlot library at chart engine.", "homepage": "https://github.com/woollybah/gppanel", "license": "GPL-2.0-or-later WITH WxWindows-exception-3.1", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wxwidgets" ] } ================================================ FILE: ports/graaf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bobluppes/graaf REF "v${VERSION}" SHA512 e97eeadaab079cf6ff429d2580ea7be454a6583b8cc5cd231065c7c51a87d52d60457370dc9688a7e426ffc7ef79ad9670e44966dd367224a4124bcd5755f080 ) file(COPY "${SOURCE_PATH}/include/graaflib" DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/graaf/usage ================================================ graaf is header-only and can be used from CMake via: find_path(GRAAF_INCLUDE_DIRS "graaflib/graph.h") target_include_directories(main PRIVATE ${GRAAF_INCLUDE_DIRS}) ================================================ FILE: ports/graaf/vcpkg.json ================================================ { "name": "graaf", "version": "1.1.1", "description": "A general-purpose lightweight C++ graph library", "homepage": "https://bobluppes.github.io/graaf/", "license": "MIT" } ================================================ FILE: ports/grantlee/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO steveire/grantlee REF v5.3.1 SHA512 dc7192fe0553954fffc3e2c584e4fdd80fc1f22d25846cacc5f2dcd1db2673ca62464c8492a4ed3bfc9dfc3e62ef13322809dd29bd56fa4a3a153a8d373ddde5 HEAD_REF master ) vcpkg_cmake_configure ( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGRANTLEE_BUILD_WITH_QT6=ON -DBUILD_TESTS=OFF ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" [[set( PLUGIN_INSTALL_DIR ${LIB_INSTALL_DIR}/grantlee/${Grantlee5_MAJOR_MINOR_VERSION_STRING} )]] [[set( PLUGIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)]]) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Grantlee5) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/grantlee/vcpkg.json ================================================ { "name": "grantlee", "version": "5.3.1", "port-version": 2, "description": "Libraries for text templating with Qt", "homepage": "https://github.com/steveire/grantlee", "license": "LGPL-2.1-or-later", "supports": "!staticcrt & !xbox", "dependencies": [ "qtdeclarative", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/graphene/fix_clang-cl.patch ================================================ diff --git a/meson.build b/meson.build index 1a93dbb95..2f5f7c891 100644 --- a/meson.build +++ b/meson.build @@ -55,7 +55,7 @@ conf = configuration_data() common_cflags = [] common_ldflags = [] -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' # Make MSVC more pedantic, this is a recommended pragma list # from _Win32_Programming_ by Rector and Newcomer. Taken from # glib's msvc_recommended_pragmas.h--please see that file for @@ -117,7 +117,7 @@ endif common_cflags = cc.get_supported_arguments(test_cflags) # MSVC: Let C4819 error out if we do not have the -utf-8 compiler flag -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' if not common_cflags.contains('-utf-8') common_cflags += cc.get_supported_arguments('-we4819') endif @@ -202,7 +202,7 @@ if get_option('default_library') != 'static' if host_system == 'windows' conf.set('DLL_EXPORT', true) conf.set('_GRAPHENE_PUBLIC', '__declspec(dllexport) extern') - if cc.get_id() != 'msvc' + if cc.get_argument_syntax() != 'msvc' extra_args += ['-fvisibility=hidden'] endif else @@ -226,7 +226,7 @@ if get_option('gobject_types') ) build_gobject = gobject.found() if build_gobject - if cc.get_id() == 'msvc' + if cc.get_argument_syntax() == 'msvc' extra_args += ['/FImsvc_recommended_pragmas.h'] endif endif ================================================ FILE: ports/graphene/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 c56dab6712cf58387d0512a213cd0cd456679e46a495ee5cfd9bc25440cda2d72d56974af4e462f3c863869a1e2e506b702f468933045609d35fdf006212c67d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix_clang-cl.patch ) if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgtk_doc=false #Enable generating the API reference (depends on GTK-Doc) -Dgobject_types=true #Enable GObject types (depends on GObject) -Dtests=false -Dinstalled_tests=false ${OPTIONS} OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/graphene/vcpkg.json ================================================ { "name": "graphene", "version": "1.10.8", "port-version": 6, "description": "A thin layer of types for graphic libraries.", "homepage": "https://www.gtk.org/", "license": "MIT", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "build with introspection", "supports": "!static", "dependencies": [ "gobject-introspection" ] } } } ================================================ FILE: ports/graphicsmagick/dependencies.diff ================================================ diff --git a/configure.ac b/configure.ac index bc9acc9..94449f3 100644 --- a/configure.ac +++ b/configure.ac @@ -1876,12 +1876,12 @@ then fi AC_CHECK_HEADER([zconf.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([zlib.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_LIB([z],[compress],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([z],[uncompress],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([z],[deflate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([z],[inflate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([z],[gzseek],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([z],[gztell],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([compress],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([uncompress],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([deflate],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([inflate],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([gzseek],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([gztell],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) AC_MSG_CHECKING([if ZLIB package is complete]) if test $passed -gt 0 then @@ -1895,8 +1895,7 @@ then LDFLAGS=$OLD_LDFLAGS LIBS=$OLD_LIBS else - LIB_ZLIB='-lz' - pkg_config_to_flags 'zlib' "${LIB_ZLIB}" '' + LIB_ZLIB='' AC_DEFINE([HasZLIB],[1],[Define if you have zlib compression library]) AC_MSG_RESULT([yes]) have_zlib='yes' @@ -1922,8 +1921,10 @@ then failed=0 passed=0 found_libbz=0 + PKG_CHECK_MODULES([BZIP2], [bzip2], [passed=`expr $passed + 1`], [failed=`expr $failed + 1`]) + pkg_config_to_flags 'bzip2' "${BZIP2_LIBS}" "${BZIP2_CFLAGS}" AC_CHECK_HEADER([bzlib.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_LIB([bz2],[BZ2_bzDecompress],[found_libbz=`expr $found_libbz + 1`],,) + AC_SEARCH_LIBS([BZ2_bzDecompress],[],[found_libbz=`expr $found_libbz + 1`],,) if test "$native_win32_build" = 'yes' then # Under MinGW, libbz2 obfuscates its functions by declaring them @@ -1931,7 +1932,7 @@ then # somehow include bzlib.h during the test but Autoconf does not # make that possible. We check for BZ2_decompress since that is # one of the few functions exported from the DLL (very strange). - AC_CHECK_LIB([bz2],[_imp__BZ2_decompress],[found_libbz=`expr $found_libbz + 1`],,) + : fi if test $found_libbz -gt 0 then @@ -1950,8 +1951,7 @@ then AC_MSG_RESULT([no -- some components failed test]) have_bzlib='no (failed tests)' else - LIB_BZLIB='-lbz2' - LIBS="$LIB_BZLIB $LIBS" + LIB_BZLIB='' AC_DEFINE([HasBZLIB],[1],[Define if you have the bzip2 library]) AC_MSG_RESULT([yes]) have_bzlib='yes' @@ -2391,7 +2391,18 @@ then if test "x${var}" = 'x' ; then pnglib='png' else - pnglib="png1${var}" + case "${PNG_LIBS}" in + *-lpng1${var}d*) + pnglib="png1${var}d" + ;; + *-lpng1${var}*) + pnglib="png1${var}" + ;; + *) + # don't pick system lib + pnglib="NOT_IN_PC_FILE" + ;; + esac fi if test "$have_png" = 'no' then @@ -2457,8 +2468,7 @@ return 0; LDFLAGS=$OLD_LDFLAGS LIBS=$OLD_LIBS else - LIB_PNG="-l${pnglib}" - pkg_config_to_flags 'libpng' "${LIB_PNG}" '' + LIB_PNG='' #LIBS="$LIB_PNG $LIBS" AC_DEFINE([HasPNG],[1],[Define if you have PNG library]) AC_MSG_RESULT([yes]) @@ -2515,7 +2525,7 @@ then AC_CHECK_HEADER([jerror.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([jmorecfg.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([jpeglib.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_LIB([jpeg],[jpeg_read_header],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([jpeg_read_header],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) AC_MSG_CHECKING([if JPEG package is complete]) if test $passed -gt 0 then @@ -2527,8 +2537,7 @@ then LDFLAGS=$OLD_LDFLAGS LIBS=$OLD_LIBS else - LIB_JPEG='-ljpeg' - pkg_config_to_flags 'libjpeg' "${LIB_JPEG}" '' + LIB_JPEG='' #LIBS="$LIB_JPEG $LIBS" AC_DEFINE([HasJPEG],[1],[Define if you have JPEG library]) AC_MSG_RESULT([yes]) @@ -2624,7 +2633,7 @@ then fi dnl First see if there is a library - AC_CHECK_LIB([freetype],[FT_Init_FreeType],[LIB_TTF="-lfreetype"],[LIB_TTF=''],[]) + AC_SEARCH_LIBS([FT_Init_FreeType],[],[LIB_TTF="-lfreetype"],[LIB_TTF=''],[]) if test "$LIB_TTF" != '' then passed=`expr $passed + 1` @@ -2665,7 +2674,7 @@ dnl Now test for the headers LDFLAGS=$OLD_LDFLAGS LIBS=$OLD_LIBS else - pkg_config_to_flags 'freetype2' "${LIB_TTF}" '' + LIB_TTF='' #LIBS="$LIB_TTF $LIBS" AC_DEFINE([HasTTF],[1],[Define if you have FreeType (TrueType font) library]) if test "$ac_cv_header_ft2build_h" = 'yes' @@ -2718,7 +2727,6 @@ then printf "WEBPMUX_LIBS=${WEBPMUX_LIBS}\n" printf "WEBPMUX_CFLAGS=${WEBPMUX_CFLAGS}\n" fi - pkg_config_to_flags 'libwebpmux' "${WEBPMUX_LIBS}" "${WEBPMUX_CFLAGS}" else if test -n "${WEBPMUX_PKG_ERRORS}" then @@ -2742,7 +2750,7 @@ then # pkg-config libwebp --static --libs #-L/work/lib -lwebp -lm -lsharpyuv -lm - PKG_CHECK_MODULES([WEBP], [libwebp], [passed=`expr $passed + 1`], [failed=`expr $failed + 1`]) + PKG_CHECK_MODULES([WEBP], [libwebp libwebpmux], [passed=`expr $passed + 1`], [failed=`expr $failed + 1`]) if test $failed -eq 0 ; then if test -n "$VERBOSE" then @@ -2760,9 +2768,9 @@ then AC_CHECK_HEADER([webp/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) AC_CHECK_HEADER([webp/encode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([webp],[WebPDecodeRGB],[passed=`expr $passed + 1`; LIB_WEBP='-lwebp'],[failed=`expr $failed + 1`],[]) - AC_CHECK_LIB([webpmux],[WebPMuxSetImage],[LIB_WEBP="$LIB_WEBP -lwebpmux"],[],[-lwebp]) - AC_CHECK_LIB([sharpyuv],[SharpYuvConvert],[LIB_WEBP="$LIB_WEBP -lsharpyuv"],[],[]) + AC_SEARCH_LIBS([WebPDecodeRGB],[],[passed=`expr $passed + 1`; LIB_WEBP='-lwebp'],[failed=`expr $failed + 1`],[]) + AC_SEARCH_LIBS([WebPMuxSetImage],[],[LIB_WEBP="$LIB_WEBP -lwebpmux"],[],[]) + AC_SEARCH_LIBS([SharpYuvConvert],[],[LIB_WEBP="$LIB_WEBP -lsharpyuv"],[],[]) AC_MSG_CHECKING([if WEBP package is complete]) if test $passed -gt 0 then @@ -2774,7 +2782,7 @@ then LDFLAGS=$OLD_LDFLAGS LIBS=$OLD_LIBS else - pkg_config_to_flags 'libwebp' "${LIB_WEBP}" '' + LIB_WEBP='' # LIBS="$LIB_WEBP $LIBS" AC_DEFINE([HasWEBP],[1],[Define if you have WEBP library]) AC_MSG_RESULT([yes]) @@ -2918,11 +2926,11 @@ then #set +x AC_CHECK_HEADER([tiff.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) AC_CHECK_HEADER([tiffio.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`]) - AC_CHECK_LIB([tiff],[TIFFOpen],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([tiff],[TIFFClientOpen],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([tiff],[TIFFIsByteSwapped],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([tiff],[TIFFReadRGBATile],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) - AC_CHECK_LIB([tiff],[TIFFReadRGBAStrip],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([TIFFOpen],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([TIFFClientOpen],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([TIFFIsByteSwapped],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([TIFFReadRGBATile],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) + AC_SEARCH_LIBS([TIFFReadRGBAStrip],[],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],) AC_MSG_CHECKING([if TIFF package is complete]) if test $passed -gt 0 then @@ -2934,8 +2942,7 @@ then CPPFLAGS=$OLD_CPPFLAGS LIBS=$OLD_LIBS else - LIB_TIFF='-ltiff' - pkg_config_to_flags 'libtiff-4' "${LIB_TIFF}" '' + LIB_TIFF='' #LIBS="$LIB_TIFF $LIBS" AC_DEFINE([HasTIFF],[1],[Define if you have TIFF library]) AC_MSG_RESULT([yes]) @@ -4266,7 +4273,7 @@ MAGICK_EXTRA_DEP_LIBS=`echo $MAGICK_EXTRA_DEP_LIBS | sed -e 's/ */ /g'` MAGICK_API_CFLAGS=$CFLAGS MAGICK_API_CPPFLAGS=`echo $MAGICK_API_CPPFLAGS | sed -e 's/ */ /g'` -MAGICK_API_LDFLAGS="-L$LIB_DIR $LDFLAGS" +MAGICK_API_LDFLAGS="-L$LIB_DIR" MAGICK_API_DEP_LIBS="$MAGICK_DEP_LIBS" MAGICK_API_LIBS="-lGraphicsMagick $MAGICK_API_DEP_LIBS $MAGICK_EXTRA_DEP_LIBS" diff --git a/magick/GraphicsMagick.pc.in b/magick/GraphicsMagick.pc.in index e968715..6b7c404 100644 --- a/magick/GraphicsMagick.pc.in +++ b/magick/GraphicsMagick.pc.in @@ -9,5 +9,5 @@ Version: @PACKAGE_VERSION@ Description: GraphicsMagick image processing library URL: http://www.graphicsmagick.org/ Libs: -L${libdir} -lGraphicsMagick -Libs.private: @LDFLAGS@ @MAGICK_API_DEP_LIBS@ @MAGICK_EXTRA_DEP_LIBS@ +Libs.private: @MAGICK_API_DEP_LIBS@ @MAGICK_EXTRA_DEP_LIBS@ Cflags: -I${includedir} @MAGICK_API_PC_CPPFLAGS@ ================================================ FILE: ports/graphicsmagick/magick-types.diff ================================================ diff --git a/magick/magick_types.h.in b/magick/magick_types.h.in index 106ac97..a9f8a9a 100644 --- a/magick/magick_types.h.in +++ b/magick/magick_types.h.in @@ -108,8 +108,6 @@ extern "C" { # define MAGICK_SIZE_T unsigned long # define MAGICK_SSIZE_T_F "" # define MAGICK_SSIZE_T int - typedef long magick_ptrdiff_t - typedef unsigned long magick_uintptr_t; # endif // defined(WIN64) #endif /* if defined(MAGICK_IMPLEMENTATION) */ ================================================ FILE: ports/graphicsmagick/portfile.cmake ================================================ string(REPLACE "." "_" graphicsmagick_version "GraphicsMagick-${VERSION}") vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://foss.heptapod.net/ REPO graphicsmagick/graphicsmagick REF ${graphicsmagick_version} SHA512 e64842dbbe2026e7d75b4004f615f32b4e2d57ce8dbd9bc90f87ee6e180d7e2feb61da6c25d404c43ac8d7661f94f7be3bd2882928dbd0e276b5c9040690f6f4 PATCHES dependencies.diff magick-types.diff ) set(options "") if(VCPKG_TARGET_IS_WINDOWS) set(options ac_cv_header_dirent_dirent_h=no) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} # Before enabling another lib, make sure that the build does not # hard-code the library name and dependencies (cf. dependencies.diff). --with-heif=no --with-fpx=no ### --with-gs=no --with-jbig=no --with-jp2=no --with-jxl=no --with-lcms2=no --with-libzip=no --with-lzma=no --with-modules=no --with-mpeg2=no --with-trio=no --with-x=no --with-xml=no --with-wmf=no --with-zstd=no ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/gm${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") set(config_scripts "GraphicsMagick++-config" "GraphicsMagick-config" "GraphicsMagickWand-config" ) string(REGEX REPLACE "^([A-Za-z]):/" "/\\1/" literal_prefix "${CURRENT_INSTALLED_DIR}") foreach(filename IN LISTS config_scripts) set(file "${CURRENT_PACKAGES_DIR}/tools/graphicsmagick/bin/${filename}") vcpkg_replace_string("${file}" "${literal_prefix}" "'\"\${prefix}\"'") vcpkg_replace_string("${file}" "while test" "prefix=$(CDPATH= cd -- \"$(dirname -- \"$0\")/../../..\" && pwd -P)\n\nwhile test") if(NOT VCPKG_BUILD_TYPE) set(debug_file "${CURRENT_PACKAGES_DIR}/tools/graphicsmagick/debug/bin/${filename}") vcpkg_replace_string("${debug_file}" "${literal_prefix}" "'\"\${prefix}\"'") vcpkg_replace_string("${debug_file}" "while test" "prefix=$(CDPATH= cd -- \"$(dirname -- \"$0\")/../../../..\" && pwd -P)\n\nwhile test") endif() endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt") ================================================ FILE: ports/graphicsmagick/vcpkg.json ================================================ { "name": "graphicsmagick", "version": "1.3.45", "port-version": 1, "description": "Image processing library", "homepage": "http://www.graphicsmagick.org/", "license": "MIT", "dependencies": [ "bzip2", { "name": "freetype", "default-features": false }, "libjpeg-turbo", "libpng", "libwebp", { "name": "tiff", "default-features": false }, { "name": "vcpkg-make", "host": true }, "zlib" ] } ================================================ FILE: ports/graphite2/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 496712d..3df05c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,10 +82,12 @@ if (BUILD_SHARED_LIBS) endif() add_subdirectory(src) -add_subdirectory(tests) -add_subdirectory(doc) -if (NOT GRAPHITE2_NFILEFACE) - add_subdirectory(gr2fonttest) +if(NOT DISABLE_TESTS) + add_subdirectory(tests) + add_subdirectory(doc) + if (NOT GRAPHITE2_NFILEFACE) + add_subdirectory(gr2fonttest) + endif() endif() set(version 3.0.1) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b6ac26b..851a97f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -127,9 +127,9 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") endif () endif() include(Graphite) - if (BUILD_SHARED_LIBS) + if (NOT DISABLE_TESTS) nolib_test(stdc++ $) - endif () + endif() set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") endif() @@ -144,7 +144,9 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") endif() target_link_libraries(graphite2 c) include(Graphite) - nolib_test(stdc++ $) + if (NOT DISABLE_TESTS) + nolib_test(stdc++ $) + endif() set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") endif() ================================================ FILE: ports/graphite2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO silnrsi/graphite REF 92f59dcc52f73ce747f1cdc831579ed2546884aa # 1.3.14 SHA512 011855576124b2f9ae9d7d3a0dfc5489794cf82b81bebc02c11c9cca350feb9fbb411844558811dff1ebbacac58a24a7cf56a374fc2c27e97a5fb4795a01486e HEAD_REF master PATCHES disable-tests.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDISABLE_TESTS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphite2/Types.h" "defined GRAPHITE2_STATIC" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libgraphite2.la" "${CURRENT_PACKAGES_DIR}/debug/lib/libgraphite2.la") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/graphite2/vcpkg.json ================================================ { "name": "graphite2", "version": "1.3.14", "port-version": 4, "description": [ "Graphite is a \"smart font\" system developed specifically to handle the complexities of lesser-known languages of the world.", "Graphite2 is a rework of the original Graphite engine that is faster, smaller, and uses an API that is better suited to the layout architecture of most text-processing applications." ], "homepage": "https://github.com/silnrsi/graphite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/graphviz/build.diff ================================================ diff --git a/cmd/gvpr/CMakeLists.txt b/cmd/gvpr/CMakeLists.txt index 7bca2427a..98b7016d7 100644 --- a/cmd/gvpr/CMakeLists.txt +++ b/cmd/gvpr/CMakeLists.txt @@ -1,5 +1,3 @@ -add_definitions(-DEXPORT_GVPR) - add_executable(gvpr-bin # Source files gvprmain.c @@ -13,12 +11,9 @@ target_include_directories(gvpr-bin PRIVATE ) target_link_libraries(gvpr-bin PRIVATE - ast cgraph gvc gvpr - expr - sfio ) set_target_properties(gvpr-bin diff --git a/lib/ast/CMakeLists.txt b/lib/ast/CMakeLists.txt index a77af5574..000d71b77 100644 --- a/lib/ast/CMakeLists.txt +++ b/lib/ast/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(ast STATIC +add_library(ast OBJECT # private in gvpr # Header files ast.h error.h diff --git a/lib/cdt/CMakeLists.txt b/lib/cdt/CMakeLists.txt index ed192dac8..7110f1a79 100644 --- a/lib/cdt/CMakeLists.txt +++ b/lib/cdt/CMakeLists.txt @@ -1,4 +1,6 @@ +if(BUILD_SHARED_LIBS) add_definitions(-DEXPORT_CDT) +endif() add_library(cdt # Header files diff --git a/lib/cgraph/CMakeLists.txt b/lib/cgraph/CMakeLists.txt index 794b5c186..d05d87a22 100644 --- a/lib/cgraph/CMakeLists.txt +++ b/lib/cgraph/CMakeLists.txt @@ -7,7 +7,9 @@ FLEX_TARGET(Scan ) ADD_FLEX_BISON_DEPENDENCY(Scan Grammar) +if(BUILD_SHARED_LIBS) add_definitions(-DEXPORT_CGRAPH -DEXPORT_CGHDR) +endif() if(WIN32 AND NOT MINGW) add_definitions(-DYY_NO_UNISTD_H) endif() diff --git a/lib/common/CMakeLists.txt b/lib/common/CMakeLists.txt index be815ef72..0a6c703dc 100644 --- a/lib/common/CMakeLists.txt +++ b/lib/common/CMakeLists.txt @@ -122,20 +122,17 @@ if(APPLE) target_compile_options(common_obj PRIVATE "-fno-common") endif() -add_library(common STATIC - $ -) - -target_link_libraries(common PRIVATE +# legacy; target objects in gvc +add_library(common INTERFACE) +target_link_libraries(common INTERFACE cgraph pathplan - label xdot util ) if(EXPAT_FOUND) - target_link_libraries(common PRIVATE + target_link_libraries(common INTERFACE ${EXPAT_LIBRARIES} ) endif() diff --git a/lib/dotgen/CMakeLists.txt b/lib/dotgen/CMakeLists.txt index e7802eb46..931a18b1f 100644 --- a/lib/dotgen/CMakeLists.txt +++ b/lib/dotgen/CMakeLists.txt @@ -35,5 +35,6 @@ target_include_directories(dotgen PRIVATE target_link_libraries(dotgen PRIVATE cgraph + gvc # ortho, pack util ) diff --git a/lib/expr/CMakeLists.txt b/lib/expr/CMakeLists.txt index 452ecc9c2..fbb1f99e5 100644 --- a/lib/expr/CMakeLists.txt +++ b/lib/expr/CMakeLists.txt @@ -5,7 +5,7 @@ BISON_TARGET( COMPILE_FLAGS "--yacc -Wno-yacc --defines --debug --verbose" ) -add_library(expr STATIC +add_library(expr OBJECT # private in gvpr # Header files exgram.h exlib.h diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt index 8530818a8..45a669e6a 100644 --- a/lib/gvc/CMakeLists.txt +++ b/lib/gvc/CMakeLists.txt @@ -53,8 +53,9 @@ if(WIN32 AND NOT MINGW) ) endif() -target_link_libraries(gvc PRIVATE +target_sources(gvc PRIVATE $ + $ $ ) @@ -62,7 +63,6 @@ target_link_libraries(gvc PRIVATE cdt cgraph common - pack util ) @@ -79,10 +79,7 @@ if(ZLIB_FOUND) endif() if(with_ortho) - target_link_libraries(gvc PRIVATE - $ - ) - target_link_libraries(gvc PRIVATE ortho) + target_sources(gvc PRIVATE $) endif() # Installation location of library files diff --git a/lib/gvpr/CMakeLists.txt b/lib/gvpr/CMakeLists.txt index 35fccf805..eb3b50596 100644 --- a/lib/gvpr/CMakeLists.txt +++ b/lib/gvpr/CMakeLists.txt @@ -1,4 +1,6 @@ +if(BUILD_SHARED_LIBS) add_definitions(-DEXPORT_GVPR) +endif() add_library(gvpr # Header files @@ -45,13 +47,16 @@ if(WIN32 AND NOT MINGW) target_include_directories(gvpr PRIVATE ../../windows/include/unistd) endif() -target_link_libraries(gvpr PRIVATE +target_sources(gvpr PRIVATE $ + $ + $ +) + +target_link_libraries(gvpr PRIVATE cgraph gvc util - $ - $ ) if(NOT HAVE_GETOPT_H) diff --git a/lib/label/CMakeLists.txt b/lib/label/CMakeLists.txt index a9f690150..aa33a6871 100644 --- a/lib/label/CMakeLists.txt +++ b/lib/label/CMakeLists.txt @@ -1,6 +1,6 @@ add_definitions(-DGVC_EXPORTS) -add_library(label STATIC +add_library(label OBJECT # export with gvc # Header files index.h node.h diff --git a/lib/ortho/CMakeLists.txt b/lib/ortho/CMakeLists.txt index 7c2b83832..62f1bc5d7 100644 --- a/lib/ortho/CMakeLists.txt +++ b/lib/ortho/CMakeLists.txt @@ -35,10 +35,7 @@ target_include_directories(ortho_obj PRIVATE target_link_libraries(ortho_obj PRIVATE util) -add_library(ortho STATIC - $ -) - -target_link_libraries(ortho PRIVATE util) +add_library(ortho INTERFACE) # legacy +target_link_libraries(ortho INTERFACE gvc) # target objects in gvc endif() diff --git a/lib/pack/CMakeLists.txt b/lib/pack/CMakeLists.txt index 585fefe9f..13e2eb99e 100644 --- a/lib/pack/CMakeLists.txt +++ b/lib/pack/CMakeLists.txt @@ -21,11 +21,9 @@ target_include_directories(pack_obj PRIVATE target_link_libraries(pack_obj PRIVATE util) -add_library(pack STATIC - $ -) - -target_link_libraries(pack PRIVATE util) +# legacy; target objects in gvc +add_library(pack INTERFACE) +target_link_libraries(pack INTERFACE gvc) # Specify headers to be installed install( diff --git a/lib/sfio/CMakeLists.txt b/lib/sfio/CMakeLists.txt index d92a13201..237872715 100644 --- a/lib/sfio/CMakeLists.txt +++ b/lib/sfio/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(sfio STATIC +add_library(sfio OBJECT # private in gvpr # Header files sfhdr.h sfio.h diff --git a/lib/xdot/CMakeLists.txt b/lib/xdot/CMakeLists.txt index 70a317d72..12788b3d8 100644 --- a/lib/xdot/CMakeLists.txt +++ b/lib/xdot/CMakeLists.txt @@ -1,4 +1,6 @@ +if(BUILD_SHARED_LIBS) add_definitions(-DEXPORT_XDOT) +endif() add_library(xdot # Header files ================================================ FILE: ports/graphviz/cmake-project-include.cmake ================================================ if(WIN32 AND NOT MINGW) find_package(getopt CONFIG REQUIRED) if(TARGET getopt::getopt_shared) set(GETOPT_LIBRARY "getopt::getopt_shared" CACHE INTERNAL "vcpkg") else() set(GETOPT_LIBRARY "getopt::getopt_static" CACHE INTERNAL "vcpkg") endif() set(GETOPT_RUNTIME_LIBRARY "unused" CACHE INTERNAL "vcpkg") endif() ================================================ FILE: ports/graphviz/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b02632b1f..cce1f3e9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -327,8 +327,8 @@ if(PkgConfig_FOUND) message(FATAL_ERROR "-DWITH_GDK=ON and GDK not found") endif() endif() - pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0) - pkg_check_modules(LASI lasi) + set(GDK_PIXBUF_FOUND 0) + set(LASI_FOUND 0) if(AUTO_POPPLER) pkg_check_modules(POPPLER poppler-glib) elseif(WITH_POPPLER) @@ -682,7 +682,13 @@ endif() if(UNIX) find_library(MATH_LIB m) - link_libraries(${MATH_LIB}) + if(MATH_LIB) + set(MATH_LIB m CACHE INTERNAL "") + link_libraries(${MATH_LIB}) + string(APPEND LIBGVC_PC_LIBS_PRIVATE " -lm") + else() + set(MATH_LIB "") + endif() endif() if(WIN32) diff --git a/cmake/FindCAIRO.cmake b/cmake/FindCAIRO.cmake index a6fdf8e3c..a4690653b 100644 --- a/cmake/FindCAIRO.cmake +++ b/cmake/FindCAIRO.cmake @@ -1,8 +1,11 @@ include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(CAIRO cairo) -if(MINGW) +pkg_check_modules(CAIRO cairo IMPORTED_TARGET) +if(CAIRO_FOUND) + set(CAIRO_LIBRARIES PkgConfig::CAIRO) + set(CAIRO_LINK_LIBRARIES PkgConfig::CAIRO) +elseif(MINGW) find_program(CAIRO_RUNTIME_LIBRARY NAMES libcairo-2.dll) find_program(EXPAT_RUNTIME_LIBRARY NAMES libexpat-1.dll) find_program(FONTCONFIG_RUNTIME_LIBRARY NAMES libfontconfig-1.dll) diff --git a/cmake/FindGD.cmake b/cmake/FindGD.cmake index 49d372c37..2ed7e42af 100644 --- a/cmake/FindGD.cmake +++ b/cmake/FindGD.cmake @@ -1,3 +1,11 @@ +find_package(PkgConfig) +pkg_check_modules(GD gdlib IMPORTED_TARGET) +set(GD_LIBRARIES PkgConfig::GD) +foreach(item IN ITEMS FONTCONFIG FREETYPE GIF JPEG PNG) + set(HAVE_GD_${item} 1) +endforeach() +return() + find_path(GD_INCLUDE_DIR gd.h) find_library(GD_LIBRARY NAMES gd libgd) diff --git a/cmake/FindGTS.cmake b/cmake/FindGTS.cmake index bc1d5ea35..8114884a5 100644 --- a/cmake/FindGTS.cmake +++ b/cmake/FindGTS.cmake @@ -1,9 +1,11 @@ include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(GTS gts) +pkg_check_modules(GTS gts IMPORTED_TARGET) -if(MINGW) +if(GTS_FOUND) + set(GTS_LINK_LIBRARIES PkgConfig::GTS) +elseif(MINGW) find_package(GLIB) find_program(GTS_RUNTIME_LIBRARY NAMES libgts-0-7-5.dll) diff --git a/cmake/FindLTDL.cmake b/cmake/FindLTDL.cmake index e74d23f52..42d9ae23c 100644 --- a/cmake/FindLTDL.cmake +++ b/cmake/FindLTDL.cmake @@ -20,4 +20,7 @@ mark_as_advanced(LTDL_INCLUDE_DIR LTDL_LIBRARY) set(LTDL_INCLUDE_DIRS ${LTDL_INCLUDE_DIR}) if(NOT WIN32 OR MINGW) set(LTDL_LIBRARIES ${LTDL_LIBRARY}) + if(CMAKE_DL_LIBS AND NOT BUILD_SHARED_LIBS) + set(LTDL_LIBRARIES "${LTDL_LIBRARIES};${CMAKE_DL_LIBS}") + endif() endif() diff --git a/cmake/FindPANGOCAIRO.cmake b/cmake/FindPANGOCAIRO.cmake index d185f0bf7..222789a96 100644 --- a/cmake/FindPANGOCAIRO.cmake +++ b/cmake/FindPANGOCAIRO.cmake @@ -1,9 +1,12 @@ include(FindPackageHandleStandardArgs) find_package(PkgConfig) -pkg_check_modules(PANGOCAIRO pangocairo) +pkg_check_modules(PANGOCAIRO pangocairo IMPORTED_TARGET) -if(MINGW) +if(1) + set(PANGOCAIRO_LIBRARIES PkgConfig::PANGOCAIRO) + set(PANGOCAIRO_LINK_LIBRARIES PkgConfig::PANGOCAIRO) # https://gitlab.kitware.com/cmake/cmake/-/issues/16154 +elseif(MINGW) find_package(GLIB) find_program(GOBJECT_RUNTIME_LIBRARY NAMES libgobject-2.0-0.dll) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 65a357678..e656b1228 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -59,3 +59,6 @@ if(BUILD_SHARED_LIBS) DESTINATION ${LIBRARY_INSTALL_DIR}/cmake/graphviz ) endif() + +set(LIBGVC_PC_LIBS_PRIVATE "${LIBGVC_PC_LIBS_PRIVATE}" PARENT_SCOPE) +set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE}" PARENT_SCOPE) diff --git a/lib/cgraph/libcgraph.pc.in b/lib/cgraph/libcgraph.pc.in index 2b8c8f47b..168ce85f0 100644 --- a/lib/cgraph/libcgraph.pc.in +++ b/lib/cgraph/libcgraph.pc.in @@ -6,5 +6,6 @@ includedir=@includedir@ Name: libcgraph Description: Graph library (file i/o, dot language parsing, graph, subgraph, node, edge, attribute, data structure manipulation) Version: @VERSION@ +Libs.private: -lutil Libs: -L${libdir} -lcgraph -lcdt Cflags: -I${includedir} -I${includedir}/@PACKAGE@ diff --git a/lib/common/CMakeLists.txt b/lib/common/CMakeLists.txt index 3b0e469f4..265de0354 100644 --- a/lib/common/CMakeLists.txt +++ b/lib/common/CMakeLists.txt @@ -136,6 +136,9 @@ if(EXPAT_FOUND) ${EXPAT_LIBRARIES} ) endif() +if(EXPAT_FOUND) + string(APPEND LIBGVC_PC_REQUIRES_PRIVATE " expat") +endif() # Specify headers to be installed install( @@ -148,3 +151,5 @@ install( usershape.h DESTINATION ${HEADER_INSTALL_DIR} ) + +set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE}" PARENT_SCOPE) diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt index 11dba53f3..1d54de861 100644 --- a/lib/gvc/CMakeLists.txt +++ b/lib/gvc/CMakeLists.txt @@ -70,12 +70,17 @@ if(LTDL_FOUND) target_include_directories(gvc SYSTEM PRIVATE ${LTDL_INCLUDE_DIRS}) if(NOT WIN32 OR MINGW) target_link_libraries(gvc PUBLIC ${LTDL_LIBRARIES}) + string(APPEND LIBGVC_PC_LIBS_PRIVATE " -lltdl") + if(CMAKE_DL_LIBS STREQUAL "dl") + string(APPEND LIBGVC_PC_LIBS_PRIVATE " -ldl") + endif() endif() endif() if(ZLIB_FOUND) target_include_directories(gvc SYSTEM PRIVATE ${ZLIB_INCLUDE_DIRS}) target_link_libraries(gvc PUBLIC ${ZLIB_LIBRARIES}) + string(APPEND LIBGVC_PC_REQUIRES_PRIVATE " zlib") endif() if(with_ortho) @@ -152,3 +157,6 @@ if(WIN32 AND ZLIB_FOUND AND install_win_dependency_dlls) DESTINATION ${BINARY_INSTALL_DIR} ) endif() + +set(LIBGVC_PC_LIBS_PRIVATE "${LIBGVC_PC_LIBS_PRIVATE}" PARENT_SCOPE) +set(LIBGVC_PC_REQUIRES_PRIVATE "${LIBGVC_PC_REQUIRES_PRIVATE} libpathplan libxdot" PARENT_SCOPE) diff --git a/lib/gvc/libgvc.pc.in b/lib/gvc/libgvc.pc.in index f12b472e1..9b89519f8 100644 --- a/lib/gvc/libgvc.pc.in +++ b/lib/gvc/libgvc.pc.in @@ -7,6 +7,8 @@ plugins=@GVPLUGIN_VERSION@ Name: libgvc Description: The GraphVizContext library Version: @VERSION@ +Requires.private: @LIBGVC_PC_REQUIRES_PRIVATE@ +Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lutil Libs: -L${libdir} -lgvc -lcgraph -lcdt Cflags: -I${includedir} -I${includedir}/@PACKAGE@ ================================================ FILE: ports/graphviz/install.diff ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index e656b1228..41faad061 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -47,7 +47,10 @@ if(with_cxx_api) add_subdirectory(gvc++) endif() -if(BUILD_SHARED_LIBS) +if(1) + set_target_properties(common PROPERTIES EXPORT_NAME private::common) + set_target_properties(util PROPERTIES EXPORT_NAME private::util OUTPUT_NAME gvutil) + install(TARGETS common util EXPORT graphvizTargets) install( EXPORT graphvizTargets FILE graphvizTargets.cmake diff --git a/lib/cgraph/libcgraph.pc.in b/lib/cgraph/libcgraph.pc.in index 168ce85f0..9340aa32e 100644 --- a/lib/cgraph/libcgraph.pc.in +++ b/lib/cgraph/libcgraph.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: libcgraph Description: Graph library (file i/o, dot language parsing, graph, subgraph, node, edge, attribute, data structure manipulation) Version: @VERSION@ -Libs.private: -lutil +Libs.private: -lgvutil Libs: -L${libdir} -lcgraph -lcdt Cflags: -I${includedir} -I${includedir}/@PACKAGE@ diff --git a/lib/gvc/libgvc.pc.in b/lib/gvc/libgvc.pc.in index 9b89519f8..22ee26e4c 100644 --- a/lib/gvc/libgvc.pc.in +++ b/lib/gvc/libgvc.pc.in @@ -8,7 +8,7 @@ Name: libgvc Description: The GraphVizContext library Version: @VERSION@ Requires.private: @LIBGVC_PC_REQUIRES_PRIVATE@ -Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lutil +Libs.private: @LIBGVC_PC_LIBS_PRIVATE@ -lgvutil Libs: -L${libdir} -lgvc -lcgraph -lcdt Cflags: -I${includedir} -I${includedir}/@PACKAGE@ diff --git a/plugin/CMakeLists.txt b/plugin/CMakeLists.txt index 3eac7cd4d..9e41c2fd2 100644 --- a/plugin/CMakeLists.txt +++ b/plugin/CMakeLists.txt @@ -24,3 +24,13 @@ add_subdirectory(rsvg) add_subdirectory(vt) add_subdirectory(webp) add_subdirectory(xlib) + +if(NOT BUILD_SHARED_LIBS) + get_directory_property(subdirs SUBDIRECTORIES) + foreach(dir IN LISTS subdirs) + get_directory_property(targets DIRECTORY "${dir}" BUILDSYSTEM_TARGETS) + if(targets) + install(TARGETS ${targets}) + endif() + endforeach() +endif() ================================================ FILE: ports/graphviz/no-absolute-paths.patch ================================================ diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt index b437bde..04fe8e8 100644 --- a/lib/gvc/CMakeLists.txt +++ b/lib/gvc/CMakeLists.txt @@ -1,4 +1,4 @@ -add_definitions(-DGVC_EXPORTS -DGVLIBDIR="${LIBRARY_INSTALL_DIR}/graphviz") +add_definitions(-DGVC_EXPORTS -DGVLIBDIR="") add_library(gvc # Header files ================================================ FILE: ports/graphviz/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO graphviz/graphviz REF "${VERSION}" SHA512 3f58d94750b80b527fdbdf3e745af514a80d5d1a6479768bae7ccfb94fe458dcca939a18c53de2ddc15bd464028efa473c777b5265ac787231526849a2232d56 HEAD_REF main PATCHES build.diff dependencies.diff install.diff no-absolute-paths.patch skip-configure-plugins.diff version.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES tools GRAPHVIZ_CLI ) foreach(lang IN ITEMS D GO GUILE JAVA JAVASCRIPT LUA PERL PHP PYTHON R RUBY SHARP TCL) list(APPEND OPTIONS -DENABLE_${lang}=OFF) endforeach() vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" "-DVERSION=${VERSION}" "-DBISON_EXECUTABLE=${BISON}" "-DFLEX_EXECUTABLE=${FLEX}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" "-DPython3_EXECUTABLE=${PYTHON3}" -Dinstall_win_dependency_dlls=OFF -Duse_win_pre_inst_libs=OFF -DENABLE_LTDL=ON -DENABLE_SWIG=OFF -DWITH_EXPAT=ON -DWITH_GDK=OFF -DWITH_GHOSTSCRIPT=OFF -DWITH_GTK=OFF -DWITH_GVEDIT=OFF -DWITH_POPPLER=OFF -DWITH_RSVG=ON -DWITH_SMYRNA=OFF -DWITH_WEBP=ON -DWITH_X=OFF -DWITH_ZLIB=ON -DVCPKG_LOCK_FIND_PACKAGE_AA=OFF -DVCPKG_LOCK_FIND_PACKAGE_ANN=OFF -DVCPKG_LOCK_FIND_PACKAGE_CAIRO=ON -DVCPKG_LOCK_FIND_PACKAGE_DevIL=OFF -DVCPKG_LOCK_FIND_PACKAGE_EXPAT=ON -DVCPKG_LOCK_FIND_PACKAGE_Freetype=OFF -DVCPKG_LOCK_FIND_PACKAGE_GD=ON -DVCPKG_LOCK_FIND_PACKAGE_GTS=ON -DVCPKG_LOCK_FIND_PACKAGE_PANGOCAIRO=ON ${OPTIONS} OPTIONS_DEBUG -DGRAPHVIZ_CLI=OFF MAYBE_UNUSED_VARIABLES install_win_dependency_dlls ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/graphviz) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/graphvizConfig.cmake" cmake-config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/graphvizConfig.cmake" "include(CMakeFindDependencyMacro)\nfind_dependency(getopt CONFIG)\n${cmake-config}" ) endif() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB headers "${CURRENT_PACKAGES_DIR}/include/graphviz/*.h") foreach(file IN LISTS headers) vcpkg_replace_string("${file}" "#ifdef GVDLL" "#if 1" IGNORE_UNCHANGED) endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # static libs built with dllexport must be used with dllexport vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/cdt.h" "#ifdef EXPORT_CDT" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/cgraph.h" "#ifdef EXPORT_CGRAPH" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/gvc.h" "#ifdef GVC_EXPORTS" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/gvplugin_loadimage.h" "#ifdef GVC_EXPORTS" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/pack.h" "#ifdef GVC_EXPORTS" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/pathgeom.h" "#ifdef PATHPLAN_EXPORTS" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/pathplan.h" "#ifdef PATHPLAN_EXPORTS" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/graphviz/xdot.h" "#ifdef EXPORT_XDOT" "#if 1") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script_or_link IN ITEMS "dot2gxl${VCPKG_TARGET_EXECUTABLE_SUFFIX}" gvmap.sh dot_sandbox) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script_or_link}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script_or_link}") endif() endforeach() vcpkg_copy_tools( TOOL_NAMES acyclic bcomps ccomps circo cluster diffimg dijkstra dot edgepaint fdp gc gml2gv graphml2gv gv2gml gv2gxl gvcolor gvgen gvmap gvpack gvpr gxl2dot gxl2gv mm2gv neato nop osage patchwork prune sccmap sfdp tred twopi unflatten AUTO_CLEAN ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_copy_tools(TOOL_NAMES dot_builtins AUTO_CLEAN) file(GLOB plugin_config "${CURRENT_PACKAGES_DIR}/lib/graphviz/config*" "${CURRENT_PACKAGES_DIR}/bin/config*") if(NOT plugin_config) message(WARNING "In order to create the plugin configuration file, " "you must run `dot -c` on the target system." ) endif() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB plugins "${CURRENT_PACKAGES_DIR}/bin/gvplugin_*") file(COPY ${plugins} ${plugin_config} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") else() file(COPY "${CURRENT_PACKAGES_DIR}/lib/graphviz" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/graphviz/skip-configure-plugins.diff ================================================ diff --git a/cmake/configure_plugins.cmake.in b/cmake/configure_plugins.cmake.in index 66a02d198..2848b3378 100644 --- a/cmake/configure_plugins.cmake.in +++ b/cmake/configure_plugins.cmake.in @@ -1,3 +1,5 @@ +return() # skip: host-only, using paths from staging dir + # Run dot -c in the staging install directory to create the config8 # plugin before the final package is created. # ================================================ FILE: ports/graphviz/vcpkg.json ================================================ { "name": "graphviz", "version-semver": "14.1.2", "description": "Graph Visualization Tools", "homepage": "https://graphviz.org/", "license": "EPL-1.0", "dependencies": [ { "name": "cairo", "default-features": false }, "expat", "gdk-pixbuf", { "name": "getopt-win32", "platform": "windows & !mingw" }, "gts", { "name": "libgd", "default-features": false, "features": [ "fontconfig", "freetype", "jpeg", "png", "tiff" ] }, { "name": "libltdl", "platform": "!windows | mingw" }, "librsvg", "libwebp", "pango", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "tools": { "description": "Install graphviz executables" } } } ================================================ FILE: ports/graphviz/version.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a3e7857..ac5a5c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.21 FATAL_ERROR) -project(Graphviz) +project(Graphviz VERSION ${VERSION}) include(FeatureSummary) @@ -703,6 +703,7 @@ endif() find_package(Python3 COMPONENTS Interpreter) set_package_properties(Python3 PROPERTIES TYPE REQUIRED) +if(0) execute_process( COMMAND ${Python3_EXECUTABLE} gen_version.py --major WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" @@ -745,6 +746,15 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) +endif() +set(GRAPHVIZ_VERSION_MAJOR ${Graphviz_VERSION_MAJOR}) +set(GRAPHVIZ_VERSION_MINOR ${Graphviz_VERSION_MINOR}) +set(GRAPHVIZ_VERSION_PATCH ${Graphviz_VERSION_PATCH}) +set(GRAPHVIZ_VERSION_PRE_RELEASE "") +set(GRAPHVIZ_VERSION_BUILD 0) +set(GRAPHVIZ_VERSION + "${GRAPHVIZ_VERSION_MAJOR}.${GRAPHVIZ_VERSION_MINOR}.${GRAPHVIZ_VERSION_PATCH}${GRAPHVIZ_VERSION_PRE_RELEASE}" +) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/builddate.h "#define BUILDDATE \"${GRAPHVIZ_VERSION_BUILD}\"") ================================================ FILE: ports/greatest/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO silentbicycle/greatest REF v1.5.0 SHA512 836392A7C9C56C6A5658FD18B4BBB146304B1997DFD9CB59F2A83C18A5EC140C8DDE64A2C0CF9A169C426B9E586D37E2ED7D7FB792402DBB4149CC424EC2DB2E HEAD_REF master ) file(COPY "${SOURCE_PATH}/greatest.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/greatest/vcpkg.json ================================================ { "name": "greatest", "version": "1.5.0", "description": "Single-file testing system for C", "homepage": "https://github.com/silentbicycle/greatest" } ================================================ FILE: ports/grpc/00001-fix-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bc86c00463..e675fb3e5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -292,6 +292,9 @@ if(UNIX) endif() if(WIN32) set(_gRPC_PLATFORM_WINDOWS ON) + if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(_gRPC_PLATFORM_UWP ON) + endif() endif() if (APPLE AND NOT DEFINED CMAKE_CXX_STANDARD) @@ -322,6 +325,9 @@ if(MSVC) set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4267") # TODO(jtattermusch): needed to build boringssl with VS2017, revisit later set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4987 /wd4774 /wd4819 /wd4996 /wd4619") + if(_gRPC_PLATFORM_UWP) + add_definitions(-DGRPC_ARES=0) + endif() # Silences thousands of trucation warnings set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4503") # Tell MSVC to build grpc using utf-8 @@ -563,6 +569,10 @@ file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR}) # ``.proto`` files # function(protobuf_generate_grpc_cpp) + if(_gRPC_PLATFORM_UWP) + return() + endif() + if(NOT ARGN) message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files") return() @@ -685,6 +695,7 @@ if (gRPC_BUILD_GRPC_RUBY_PLUGIN) list(APPEND _gRPC_PLUGIN_LIST grpc_ruby_plugin) endif () +if(NOT _gRPC_PLATFORM_UWP) add_custom_target(plugins DEPENDS ${_gRPC_PLUGIN_LIST} ) @@ -700,6 +711,7 @@ add_custom_target(tools_cxx add_custom_target(tools DEPENDS tools_c tools_cxx) +endif() protobuf_generate_grpc_cpp_with_import_path_correction( src/core/ext/transport/chaotic_good/chaotic_good_frame.proto src/core/ext/transport/chaotic_good/chaotic_good_frame.proto ) diff --git a/src/core/credentials/transport/alts/check_gcp_environment_windows.cc b/src/core/credentials/transport/alts/check_gcp_environment_windows.cc index dfbd5ec396..3b08ef0692 100644 --- a/src/core/credentials/transport/alts/check_gcp_environment_windows.cc +++ b/src/core/credentials/transport/alts/check_gcp_environment_windows.cc @@ -40,6 +40,7 @@ bool check_bios_data(const char*) { return false; } bool check_windows_registry_product_name(HKEY root_key, const char* reg_key_path, const char* reg_key_name) { + #if !defined(WINAPI_FAMILY) || WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP const size_t kProductNameBufferSize = 256; char const expected_substr[] = "Google"; @@ -72,6 +73,9 @@ bool check_windows_registry_product_name(HKEY root_key, } return strstr(buffer, expected_substr) != nullptr; +#else + return false; +#endif } } // namespace internal ================================================ FILE: ports/grpc/00002-static-linking-in-linux.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f78306f77..e09f8fcc1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,6 +211,11 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE) endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") +if (gRPC_STATIC_LINKING AND NOT _gRPC_PLATFORM_WINDOWS) + # Force to static link + set(CMAKE_EXE_LINKER_FLAGS "-Bstatic") +endif() + if(MSVC) include(cmake/msvc_static_runtime.cmake) add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS) ================================================ FILE: ports/grpc/00004-link-gdi32-on-windows.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2f633092ae..43fa8f6d97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -481,7 +481,7 @@ if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/xds AND gRPC_DOWNLOAD_ARC endif() if(WIN32) - set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} ws2_32 crypt32) + set(_gRPC_ALLTARGETS_LIBRARIES ${_gRPC_ALLTARGETS_LIBRARIES} wsock32 ws2_32 crypt32 gdi32) set(_gRPC_STATIC_WIN32 STATIC) endif() ================================================ FILE: ports/grpc/00005-fix-uwp-error.patch ================================================ diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc index 84b4e86279..4921002887 100644 --- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc +++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc @@ -688,7 +688,7 @@ class HPackParser::Parser { } void GPR_ATTRIBUTE_NOINLINE LogHeader(const HPackTable::Memento& memento) { - const char* type; + const char* type = nullptr; switch (log_info_.type) { case LogInfo::kHeaders: type = "HDR"; diff --git a/src/core/lib/slice/slice.cc b/src/core/lib/slice/slice.cc index f2d49e0bf4..c86a75f1a3 100644 --- a/src/core/lib/slice/slice.cc +++ b/src/core/lib/slice/slice.cc @@ -189,6 +189,7 @@ grpc_slice grpc_slice_from_moved_buffer(grpc_core::UniquePtr p, size_t len) { uint8_t* ptr = reinterpret_cast(p.get()); grpc_slice slice; + memset(&slice, 0, sizeof(grpc_slice)); if (len <= sizeof(slice.data.inlined.bytes)) { slice.refcount = nullptr; slice.data.inlined.length = len; @@ -207,7 +208,7 @@ grpc_slice grpc_slice_from_moved_string(grpc_core::UniquePtr p) { } grpc_slice grpc_slice_from_cpp_string(std::string str) { - grpc_slice slice; + grpc_slice slice = { 0 }; if (str.size() <= sizeof(slice.data.inlined.bytes)) { slice.refcount = nullptr; slice.data.inlined.length = str.size(); diff --git a/src/core/server/server.cc b/src/core/server/server.cc index c4796d6ae9..6a0289d180 100644 --- a/src/core/server/server.cc +++ b/src/core/server/server.cc @@ -1284,7 +1284,7 @@ grpc_call_error Server::QueueRequestedCall(size_t cq_idx, RequestedCall* rc) { FailCall(cq_idx, rc, GRPC_ERROR_CREATE("Server Shutdown")); return GRPC_CALL_OK; } - RequestMatcherInterface* rm; + RequestMatcherInterface* rm = nullptr; switch (rc->type) { case RequestedCall::Type::BATCH_CALL: rm = unregistered_request_matcher_.get(); ================================================ FILE: ports/grpc/00006-utf8-range.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bc86c00463..6f98d5e4c1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4641,7 +4641,7 @@ if(gRPC_INSTALL) ) endif() - +if(0) add_library(utf8_range_lib third_party/utf8_range/utf8_range.c ) @@ -4691,6 +4691,7 @@ if(gRPC_INSTALL) ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR} ) endif() +endif() if(gRPC_BUILD_TESTS) @@ -51977,9 +51978,9 @@ generate_pkgconfig( "high performance general RPC framework" "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" - "libcares openssl re2 zlib" + "libcares openssl re2 zlib utf8_range" "-lgrpc" - "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" + "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" "grpc.pc") # grpc_unsecure .pc file @@ -51988,9 +51989,9 @@ generate_pkgconfig( "high performance general RPC framework without SSL" "${gRPC_CORE_VERSION}" "absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr" - "libcares zlib" + "libcares zlib utf8_range" "-lgrpc_unsecure" - "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" + "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" "grpc_unsecure.pc") # grpc++ .pc file @@ -51999,9 +52000,9 @@ generate_pkgconfig( "C++ wrapper for gRPC" "${gRPC_CPP_VERSION}" "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc" - "libcares openssl re2 zlib" + "libcares openssl re2 zlib utf8_range" "-lgrpc++" - "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" + "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" "grpc++.pc") # grpc++_unsecure .pc file @@ -52010,18 +52011,20 @@ generate_pkgconfig( "C++ wrapper for gRPC without SSL" "${gRPC_CPP_VERSION}" "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_synchronization absl_time absl_type_traits absl_utility gpr grpc_unsecure" - "libcares zlib" + "libcares zlib utf8_range" "-lgrpc++_unsecure" - "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" + "-laddress_sorting -lupb_textformat_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" "grpc++_unsecure.pc") +if(gRPC_BUILD_GRPCPP_OTEL_PLUGIN) # grpcpp_otel_plugin .pc file generate_pkgconfig( "gRPC++ OpenTelemetry Plugin" "OpenTelemetry Plugin for gRPC C++" "${gRPC_CPP_VERSION}" "absl_absl_check absl_absl_log absl_algorithm_container absl_any_invocable absl_base absl_bind_front absl_bits absl_btree absl_check absl_cleanup absl_config absl_cord absl_core_headers absl_dynamic_annotations absl_flags absl_flags_marshalling absl_flat_hash_map absl_flat_hash_set absl_function_ref absl_hash absl_inlined_vector absl_layout absl_log absl_log_globals absl_log_severity absl_memory absl_no_destructor absl_node_hash_map absl_optional absl_prefetch absl_random_bit_gen_ref absl_random_distributions absl_random_random absl_span absl_status absl_statusor absl_str_format absl_string_view absl_strings absl_strings_internal absl_synchronization absl_time absl_type_traits absl_utility gpr grpc grpc++ opentelemetry_api" - "libcares openssl re2 zlib" + "libcares openssl re2 zlib utf8_range" "-lgrpcpp_otel_plugin" - "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lutf8_range_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" + "-laddress_sorting -lupb_textformat_lib -lupb_json_lib -lupb_reflection_lib -lupb_wire_lib -lupb_message_lib -lupb_mini_descriptor_lib -lupb_mini_table_lib -lupb_hash_lib -lupb_mem_lib -lupb_base_lib -lupb_lex_lib" "grpcpp_otel_plugin.pc") +endif() diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in index d552e0bb4e..5751f503ba 100644 --- a/cmake/gRPCConfig.cmake.in +++ b/cmake/gRPCConfig.cmake.in @@ -9,6 +9,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules) @_gRPC_FIND_ABSL@ @_gRPC_FIND_RE2@ @_gRPC_FIND_OPENTELEMETRY@ +@_gRPC_FIND_UTF8_RANGE@ # Targets include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake) diff --git a/cmake/upb.cmake b/cmake/upb.cmake index 9156e5f48f..5323b5f10d 100644 --- a/cmake/upb.cmake +++ b/cmake/upb.cmake @@ -14,7 +14,9 @@ set(UPB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/upb) -set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/third_party/utf8_range") +set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}") set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-gen" "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upbdefs-gen") set(_gRPC_UPB_LIBRARIES upb) +set(_gRPC_FIND_UTF8_RANGE "find_dependency(utf8_range CONFIG)") +add_library(utf8_range_lib ALIAS utf8_range::utf8_range) \ No newline at end of file ================================================ FILE: ports/grpc/00015-disable-download-archive.patch ================================================ diff --git a/cmake/download_archive.cmake b/cmake/download_archive.cmake index 820aafa..a59b785 100644 --- a/cmake/download_archive.cmake +++ b/cmake/download_archive.cmake @@ -19,6 +19,7 @@ file(MAKE_DIRECTORY ${_download_archive_TEMPORARY_DIR}) # Note that strip_prefix strips the directory path prefix of the extracted # archive content, and it may strip multiple directories. function(download_archive destination url hash strip_prefix) + return() # Fetch and validate set(_TEMPORARY_FILE ${_download_archive_TEMPORARY_DIR}/${strip_prefix}.tar.gz) message(STATUS "Downloading from ${url}, if failed, please try configuring again") ================================================ FILE: ports/grpc/00016-fix-plugin-targets.patch ================================================ diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in index 7cad2abca1..c287f3b413 100644 --- a/cmake/gRPCConfig.cmake.in +++ b/cmake/gRPCConfig.cmake.in @@ -12,6 +12,6 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules) # Targets include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake) -if(NOT CMAKE_CROSSCOMPILING) +if(@gRPC_BUILD_CODEGEN@) include(${CMAKE_CURRENT_LIST_DIR}/gRPCPluginTargets.cmake) endif() ================================================ FILE: ports/grpc/00017-add-missing-include-file.patch ================================================ diff --git a/include/grpc/event_engine/memory_request.h b/include/grpc/event_engine/memory_request.h index 76bcbb2..f5c3d89 100644 --- a/include/grpc/event_engine/memory_request.h +++ b/include/grpc/event_engine/memory_request.h @@ -16,7 +16,7 @@ #include #include - +#include #include "absl/strings/string_view.h" namespace grpc_event_engine { diff --git a/src/core/channelz/v2tov1/property_list.cc b/src/core/channelz/v2tov1/property_list.cc index 64bbb63..dc3c9b0 100644 --- a/src/core/channelz/v2tov1/property_list.cc +++ b/src/core/channelz/v2tov1/property_list.cc @@ -17,7 +17,7 @@ #include #include #include - +#include #include "absl/strings/string_view.h" #include "google/protobuf/any.upb.h" #include "google/protobuf/duration.upb.h" diff --git a/src/core/util/glob.cc b/src/core/util/glob.cc index 1b1c16e..d13138d 100644 --- a/src/core/util/glob.cc +++ b/src/core/util/glob.cc @@ -13,7 +13,7 @@ // limitations under the License. #include "absl/strings/string_view.h" - +#include namespace grpc_core { namespace { ================================================ FILE: ports/grpc/gRPCTargets-vcpkg-tools.cmake ================================================ file(GLOB GRPC_PLUGINS "${_IMPORT_PREFIX}/../@HOST_TRIPLET@/tools/grpc/grpc_*_plugin*") foreach(PLUGIN ${GRPC_PLUGINS}) get_filename_component(PLUGIN_NAME "${PLUGIN}" NAME_WE) add_executable(gRPC::${PLUGIN_NAME} IMPORTED) set_property(TARGET gRPC::${PLUGIN_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(gRPC::${PLUGIN_NAME} PROPERTIES IMPORTED_LOCATION_RELEASE "${PLUGIN}" ) endforeach() ================================================ FILE: ports/grpc/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO grpc/grpc REF "v${VERSION}" SHA512 6338448d7c0fc78c38480f1fafd7605d031b600a702df3771a9d1b1236da7bf97a93dbdbc2d93d12d395411dc2f2ac57587ad1b697c4b2a5ac56fb8af1184501 HEAD_REF master PATCHES 00001-fix-uwp.patch 00002-static-linking-in-linux.patch 00004-link-gdi32-on-windows.patch 00005-fix-uwp-error.patch 00006-utf8-range.patch 00015-disable-download-archive.patch 00016-fix-plugin-targets.patch 00017-add-missing-include-file.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/abseil-cpp" "${SOURCE_PATH}/third_party/cares" "${SOURCE_PATH}/third_party/protobuf" "${SOURCE_PATH}/third_party/re2" "${SOURCE_PATH}/third_party/utf8_range" "${SOURCE_PATH}/third_party/zlib" ) if(VCPKG_CROSSCOMPILING) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/grpc") endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" gRPC_MSVC_STATIC_RUNTIME) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" gRPC_STATIC_LINKING) set(cares_CARES_PROVIDER "package") if(VCPKG_TARGET_IS_UWP) set(cares_CARES_PROVIDER "OFF") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES codegen gRPC_BUILD_CODEGEN systemd gRPC_USE_SYSTEMD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_STATIC_LINKING=${gRPC_STATIC_LINKING} -DgRPC_MSVC_STATIC_RUNTIME=${gRPC_MSVC_STATIC_RUNTIME} -DgRPC_ZLIB_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ABSL_PROVIDER=package -DgRPC_RE2_PROVIDER=package -DgRPC_CARES_PROVIDER=${cares_CARES_PROVIDER} -DgRPC_BENCHMARK_PROVIDER=none -DgRPC_INSTALL_BINDIR:STRING=bin -DgRPC_INSTALL_LIBDIR:STRING=lib -DgRPC_INSTALL_INCLUDEDIR:STRING=include -DgRPC_INSTALL_CMAKEDIR:STRING=share/grpc "-D_gRPC_PROTOBUF_PROTOC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-DProtobuf_PROTOC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=OFF -DgRPC_DOWNLOAD_ARCHIVES=OFF MAYBE_UNUSED_VARIABLES gRPC_MSVC_STATIC_RUNTIME gRPC_USE_SYSTEMD ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if (VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") else() vcpkg_fixup_pkgconfig() endif() if (gRPC_BUILD_CODEGEN) vcpkg_copy_tools( AUTO_CLEAN TOOL_NAMES grpc_php_plugin grpc_python_plugin grpc_node_plugin grpc_objective_c_plugin grpc_csharp_plugin grpc_cpp_plugin grpc_ruby_plugin ) else() configure_file("${CMAKE_CURRENT_LIST_DIR}/gRPCTargets-vcpkg-tools.cmake" "${CURRENT_PACKAGES_DIR}/share/grpc/gRPCTargets-vcpkg-tools.cmake" @ONLY) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/grpc/vcpkg-cmake-wrapper.cmake ================================================ list(REMOVE_AT ARGS 0) _find_package(gRPC ${ARGS}) # Shouldn't this be fixed downstream instead of using a Wrapper? ================================================ FILE: ports/grpc/vcpkg.json ================================================ { "name": "grpc", "version-semver": "1.76.0", "port-version": 1, "description": "gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.", "homepage": "https://github.com/grpc/grpc", "license": "Apache-2.0", "dependencies": [ "abseil", { "name": "c-ares", "platform": "!uwp" }, { "name": "grpc", "host": true, "features": [ "codegen" ] }, "openssl", "protobuf", { "name": "protobuf", "host": true }, "re2", "utf8-range", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "codegen": { "description": "Build code generator machinery", "supports": "!uwp" }, "systemd": { "description": "Build with libsystemd support", "dependencies": [ "libsystemd" ] } } } ================================================ FILE: ports/grppi/fix-build-error.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f1f9b..9ef62e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ message(STATUS "CMAKE_CXX_COMPILER_ID: " ${CMAKE_CXX_COMPILER_ID} ) set(CMAKE_CXX_STANDARD 14) -add_compile_options(-Wall -Werror -pedantic -pedantic-errors -Wextra -Weffc++) +add_compile_options(-Wall -Werror -pedantic -pedantic-errors -Wextra) # Set specific options depending on compiler if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" ) ================================================ FILE: ports/grppi/fix-support-other-compilers.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f1f9b..e7b562b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,22 +20,19 @@ if ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" ) if(NOT(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 3.9.0)) message(FATAL_ERROR "Clang version " ${CMAKE_CXX_COMPILER_VERSION} " not supported. Upgrade to 3.9 or above.") - else() - message( STATUS "C++ Compiler is Clang" ) endif() elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") if(NOT(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 6.0)) message(FATAL_ERROR "g++ version " ${CMAKE_CXX_COMPILER_VERSION} " not supported. Upgrade to 6.0 or above.") else() - message( STATUS "C++ Compiler is GNU") if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 7.0) #g++ 7 warns in non C++17 for over-aligned new otherwise add_compile_options(-faligned-new) endif() endif() elseif ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" ) - message(FATAL_ERROR "Intel compiler is not currently supported") + message(WARNING "Intel compiler is not currently supported") # if(NOT(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 16.0)) # message( FATAL_ERROR "Intel version " ${CMAKE_CXX_COMPILER_VERSION} # " not supported. Upgrade to 16.0 or above.") @@ -43,12 +40,11 @@ elseif ( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel" ) # message( STATUS "C++ Compiler is Intel" ) # message( WARNING "WARNING: GrPPI has not been fully tested with Intel compiler." ) # endif() -else() - message( FATAL_ERROR "Unsupported compiler: " - ${CMAKE_CXX_COMPILER_ID} - ${CMAKE_CXX_COMPILER_VERSION}) endif() +message(STATUS "C++ Compiler is " ${CMAKE_CXX_COMPILER_ID} + " version " ${CMAKE_CXX_COMPILER_VERSION}) + # GrPPI library include_directories("${CMAKE_SOURCE_DIR}/include") ================================================ FILE: ports/grppi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arcosuc3m/grppi REF v0.4.0 SHA512 f8235af6832958de420a68d4465a6c63701ab4385f3430d32f77c1d5e8212001262aad1a8aae04261ba889d592798cd3963843b190d325bddc1fe7dcc4aebd7d HEAD_REF master PATCHES fix-build-error.patch fix-support-other-compilers.patch tbb.patch ) file(REMOVE "${SOURCE_PATH}/cmake.modules/FindTBB.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tbb GRPPI_TBB_ENABLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DGRPPI_DOXY_ENABLE=OFF -DGRPPI_EXAMPLE_APPLICATIONS_ENABLE=OFF -DGRPPI_UNIT_TEST_ENABLE=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/grppi/tbb.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f1f9b..d58b972 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,15 +53,10 @@ endif() include_directories("${CMAKE_SOURCE_DIR}/include") # TBB Library -find_package( TBB ) -if( TBB_FOUND ) - option(GRPPI_TBB_ENABLE "Require TBB library" ON) - message(STATUS "TBB found") -else( TBB_FOUND ) - option(GRPPI_TBB_ENABLE "Require TBB library" OFF ) - set(GRPPI_TBB_ENABLE OFF CACHE BOOL "Require TBB library" FORCE) - message(STATUS "TBB not found") -endif( TBB_FOUND ) +option(GRPPI_TBB_ENABLE "Enable TBB backend" OFF) +if(GRPPI_TBB_ENABLE) + find_package(TBB CONFIG REQUIRED) +endif() message( STATUS "TBB: " ${GRPPI_TBB_ENABLE} ) if( GRPPI_TBB_ENABLE ) ================================================ FILE: ports/grppi/vcpkg.json ================================================ { "name": "grppi", "version": "0.4.0", "port-version": 2, "description": "GrPPI is an open source generic and reusable parallel pattern programming interface developed at University Carlos III of Madrid.", "homepage": "https://github.com/arcosuc3m/grppi", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tbb": { "description": "Enable tbb backend", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/gsasl/configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 1a53887c..55b176f8 100644 --- a/configure.ac +++ b/configure.ac @@ -482,6 +482,11 @@ AC_MSG_CHECKING([if GSSAPI should be used]) AC_MSG_RESULT($gssapi) AM_CONDITIONAL(GSSAPI, test x$gssapi = xyes) + +AC_ARG_WITH(gsasl-tool, AS_HELP_STRING([--with-gsasl-tool], [Build gsasl tool]), gsasl_tool=$withval, gsasl_tool=no) +AC_MSG_CHECKING([if gsasl tool should be built]) +AC_MSG_RESULT($gsasl_tool) +AM_CONDITIONAL(BUILD_GSASL_TOOL, test x$gsasl_tool = xyes) AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([[--enable-gcc-warnings[=TYPE]]], diff --git a/Makefile.am b/Makefile.am index 016e0ed7..54121ff1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,10 @@ AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --with-gssapi-impl=no ACLOCAL_AMFLAGS = -I m4 -I lib/m4 -SUBDIRS = lib po gl src examples tests doc +if BUILD_GSASL_TOOL + MAYBE_GSASL_TOOL = src +endif +SUBDIRS = lib po gl $(MAYBE_GSASL_TOOL) EXTRA_DIST = cfg.mk maint.mk CONTRIBUTING.md EXTRA_DIST += m4/gnulib-cache.m4 ================================================ FILE: ports/gsasl/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/gsasl/gsasl-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/gsasl/gsasl-${VERSION}.tar.gz" FILENAME "gsasl-${VERSION}.tar.gz" SHA512 62fb4a9383392e4816a036f3e8f408c5161a10723e59f0a8f6df5f72101e0b644787f3b07a71c772628fc4f4050960c842c7500736edacd24313ef654e703bc9 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES configure.patch ) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(CPPFLAGS_WINDOWS_STATIC "CPPFLAGS=\$CPPFLAGS -DGSASL_STATIC=1") endif() if("tool" IN_LIST FEATURES) vcpkg_list(APPEND FEATURE_OPTIONS --with-gsasl-tool) endif() set(ENV{AUTOPOINT} true) set(ENV{GTKDOCIZE} true) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${CPPFLAGS_WINDOWS_STATIC} ${FEATURE_OPTIONS} --disable-nls --disable-gssapi ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if("tool" IN_LIST FEATURES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gsasl.h" "defined GSASL_STATIC" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("tool" IN_LIST FEATURES) list(APPEND tool_license_file "${SOURCE_PATH}/COPYING") set(tool_license_comment [[The GNU SASL Library is licensed under the GNU Lesser General Public License (LGPL) version 2.1 (or later). The command-line application is licensed under the GNU General Public License license version 3.0 (or later).]] ) endif() vcpkg_install_copyright( COMMENT "${tool_license_comment}" FILE_LIST "${SOURCE_PATH}/COPYING.LESSER" ${tool_license_file} ) ================================================ FILE: ports/gsasl/vcpkg.json ================================================ { "name": "gsasl", "version": "2.2.2", "port-version": 1, "description": "Simple Authentication and Security Layer framework and a few common SASL mechanisms", "homepage": "https://www.gnu.org/software/gsasl/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "features": { "tool": { "description": "Build gsasl tool", "license": "GPL-3.0-or-later" } } } ================================================ FILE: ports/gsl/0001-configure.patch ================================================ --- diff --git a/config.h.in b/config.h index adab7a58d..f6dc2278e 100644 --- a/config.h.in +++ b/config.h @@ -11,19 +11,19 @@ /* Define to 1 if you have the declaration of 'acosh', and to 0 if you don't. */ -#undef HAVE_DECL_ACOSH +#define HAVE_DECL_ACOSH 1 /* Define to 1 if you have the declaration of 'asinh', and to 0 if you don't. */ -#undef HAVE_DECL_ASINH +#define HAVE_DECL_ASINH 1 /* Define to 1 if you have the declaration of 'atanh', and to 0 if you don't. */ -#undef HAVE_DECL_ATANH +#define HAVE_DECL_ATANH 1 /* Define to 1 if you have the declaration of 'expm1', and to 0 if you don't. */ -#undef HAVE_DECL_EXPM1 +#define HAVE_DECL_EXPM1 1 /* Define to 1 if you have the declaration of 'feenableexcept', and to 0 if you don't. */ @@ -43,31 +43,31 @@ /* Define to 1 if you have the declaration of 'frexp', and to 0 if you don't. */ -#undef HAVE_DECL_FREXP +#define HAVE_DECL_FREXP 1 /* Define to 1 if you have the declaration of 'hypot', and to 0 if you don't. */ -#undef HAVE_DECL_HYPOT +#define HAVE_DECL_HYPOT 1 /* Define to 1 if you have the declaration of 'isfinite', and to 0 if you don't. */ -#undef HAVE_DECL_ISFINITE +#define HAVE_DECL_ISFINITE 1 /* Define to 1 if you have the declaration of 'isinf', and to 0 if you don't. */ -#undef HAVE_DECL_ISINF +#define HAVE_DECL_ISINF 1 /* Define to 1 if you have the declaration of 'isnan', and to 0 if you don't. */ -#undef HAVE_DECL_ISNAN +#define HAVE_DECL_ISNAN 1 /* Define to 1 if you have the declaration of 'ldexp', and to 0 if you don't. */ -#undef HAVE_DECL_LDEXP +#define HAVE_DECL_LDEXP 1 /* Define to 1 if you have the declaration of 'log1p', and to 0 if you don't. */ -#undef HAVE_DECL_LOG1P +#define HAVE_DECL_LOG1P 1 /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H @@ -76,13 +76,13 @@ #undef HAVE_DOPRNT /* Defined if you have ansi EXIT_SUCCESS and EXIT_FAILURE in stdlib.h */ -#undef HAVE_EXIT_SUCCESS_AND_FAILURE +#define HAVE_EXIT_SUCCESS_AND_FAILURE 1 /* Defined on architectures with excess floating-point precision */ #undef HAVE_EXTENDED_PRECISION_REGISTERS /* Define if x86 processor has sse extensions. */ -#undef HAVE_FPU_X86_SSE +#define HAVE_FPU_X86_SSE 1 /* Define to 1 if you have the header file. */ #undef HAVE_IEEEFP_H @@ -97,43 +97,43 @@ #undef HAVE_INLINE /* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H +#define HAVE_INTTYPES_H 1 /* Define to 1 if you have the 'm' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the 'memcpy' function. */ -#undef HAVE_MEMCPY +#define HAVE_MEMCPY 1 /* Define to 1 if you have the 'memmove' function. */ -#undef HAVE_MEMMOVE +#define HAVE_MEMMOVE 1 /* Define this if printf can handle %Lf for long double */ #undef HAVE_PRINTF_LONGDOUBLE /* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H +#define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ -#undef HAVE_STDIO_H +#define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H +#define HAVE_STDLIB_H 1 /* Define to 1 if you have the 'strdup' function. */ -#undef HAVE_STRDUP +#define HAVE_STRDUP 1 /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H +#define HAVE_STRING_H 1 /* Define to 1 if you have the 'strtol' function. */ -#undef HAVE_STRTOL +#define HAVE_STRTOL 1 /* Define to 1 if you have the 'strtoul' function. */ -#undef HAVE_STRTOUL +#define HAVE_STRTOUL 1 /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H @@ -145,7 +145,7 @@ #undef HAVE_UNISTD_H /* Define to 1 if you have the 'vprintf' function. */ -#undef HAVE_VPRINTF +#define HAVE_VPRINTF 1 /* Define if you need to hide the static definitions of inline functions */ #undef HIDE_INLINE_STATIC @@ -180,7 +180,7 @@ /* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ -#undef STDC_HEADERS +#define STDC_HEADERS 1 /* Version number of package */ #undef VERSION --- ================================================ FILE: ports/gsl/0002-add-fp-control.patch ================================================ --- ieee-utils/fp-win.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ ieee-utils/fp.c | 2 ++ 2 files changed, 72 insertions(+) create mode 100644 ieee-utils/fp-win.c diff --git a/ieee-utils/fp-win.c b/ieee-utils/fp-win.c new file mode 100644 index 0000000..e024eae --- /dev/null +++ b/ieee-utils/fp-win.c @@ -0,0 +1,70 @@ +/* fp-win.c + * + * Author: Brian Gladman + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include + +#include +#include +#include + +const char *fp_env_string = "round-to-nearest,double-precision,mask-all"; + +int +gsl_ieee_set_mode (int precision, int rounding, int exception_mask) +{ + unsigned int old, mode = _DN_SAVE, mask = _MCW_DN | _MCW_RC | _MCW_EM; + + switch(precision) + { + case GSL_IEEE_SINGLE_PRECISION: mode |= _PC_24; break; + case GSL_IEEE_EXTENDED_PRECISION: mode |= _PC_64; break; + case GSL_IEEE_DOUBLE_PRECISION: + default: mode |= _PC_53; + } +#ifndef _M_AMD64 + mask |= _MCW_PC; +#endif + + switch(rounding) + { + case GSL_IEEE_ROUND_DOWN: mode |= _RC_DOWN; break; + case GSL_IEEE_ROUND_UP: mode |= _RC_UP; break; + case GSL_IEEE_ROUND_TO_ZERO: mode |= _RC_CHOP; break; + case GSL_IEEE_ROUND_TO_NEAREST: + default: mode |= _RC_NEAR; + } + + if(exception_mask & GSL_IEEE_MASK_INVALID) + mode |= _EM_INVALID; + if(exception_mask & GSL_IEEE_MASK_DENORMALIZED) + mode |= _EM_DENORMAL; + if(exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) + mode |= _EM_ZERODIVIDE; + if(exception_mask & GSL_IEEE_MASK_OVERFLOW) + mode |= _EM_OVERFLOW; + if(exception_mask & GSL_IEEE_MASK_UNDERFLOW) + mode |= _EM_UNDERFLOW; + if(exception_mask & GSL_IEEE_TRAP_INEXACT) + mode &= ~_EM_INEXACT; + else + mode |= _EM_INEXACT; + + _controlfp_s( &old, mode, mask); + return GSL_SUCCESS; +} diff --git a/ieee-utils/fp.c b/ieee-utils/fp.c index 445a14f..b6ae5af 100644 --- a/ieee-utils/fp.c +++ b/ieee-utils/fp.c @@ -45,6 +45,8 @@ #endif #elif HAVE_DECL_FEENABLEEXCEPT || HAVE_DECL_FESETTRAPENABLE #include "fp-gnuc99.c" +#elif _MSC_VER +#include "fp-win.c" #else #include "fp-unknown.c" #endif -- ================================================ FILE: ports/gsl/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(gsl C) option(INSTALL_HEADERS "Install public header files" ON) # Function to extract parameter from makefile. Space separated values are returned as lists function(extract_from_makefile PATTERN RETURN FILEPATH) file(READ ${FILEPATH} MAKEFILE_CONTENT) string(REGEX MATCH "${PATTERN}" CONTENTS "${MAKEFILE_CONTENT}") set(CONTENTS ${CMAKE_MATCH_1}) # Split string into list string(REGEX REPLACE "([\t ]+(\\\\\n)?)+" ";" CONTENTS "${CONTENTS}") string(REGEX REPLACE "[\t ]*\\\\\n[\t ]*;" "" CONTENTS "${CONTENTS}") if("${CONTENTS}" STREQUAL "") message(AUTHOR_WARNING "No match for \"${PATTERN}\" found in file ${FILEPATH}") endif() # Return set(${RETURN} ${CONTENTS} PARENT_SCOPE) endfunction(extract_from_makefile) # Function to extract C sources from makefile function(extract_sources SUBFOLDER ALLSOURCES) extract_from_makefile("lib[a-zA-Z1-9_]*_la_SOURCES[ \t]*=[ \t]*(((\\\\\n)?[^\n])*)" SOURCEFILES "${SUBFOLDER}/Makefile.am") # Add the folder in front of the file names string(REGEX REPLACE "([^;]+)" "${SUBFOLDER}/\\1" SOURCEFILES "${SOURCEFILES}") # Return set(${ALLSOURCES} ${${ALLSOURCES}} ${SOURCEFILES} PARENT_SCOPE) endfunction(extract_sources) set(SOURCES) set(CBLAS_SOURCES) extract_from_makefile("SUBDIRS = (((\\\\\n)?[^\n])*)" FOLDERS "./Makefile.am") extract_sources("." SOURCES) foreach(DIR IN LISTS FOLDERS) if("${DIR}" STREQUAL "cblas") extract_sources("${DIR}" CBLAS_SOURCES) else() extract_sources("${DIR}" SOURCES) endif() endforeach() file(READ gsl_types.h GSLTYPES_H) string(REPLACE "#ifdef WIN32" "#ifdef _WIN32" GSLTYPES_H "${GSLTYPES_H}") if(BUILD_SHARED_LIBS) string(REPLACE "# ifdef GSL_DLL" "# if 1 /*GSL_DLL*/" GSLTYPES_H "${GSLTYPES_H}") endif() file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gsl_types.h "${GSLTYPES_H}") file(GLOB_RECURSE PUBLIC_HEADERS gsl*.h) list(APPEND PUBLIC_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/gsl_types.h) # The debug libraries have a "d" postfix so that CMake's FindGSL.cmake # module can distinguish between Release and Debug libraries set(CMAKE_DEBUG_POSTFIX "d") add_library(gslcblas ${CBLAS_SOURCES}) set_target_properties(gslcblas PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) add_library(gsl ${SOURCES}) set_target_properties(gsl PROPERTIES DEFINE_SYMBOL DLL_EXPORT WINDOWS_EXPORT_ALL_SYMBOLS ON) target_link_libraries(gsl PUBLIC gslcblas) if(INSTALL_HEADERS) set_target_properties(gsl PROPERTIES PUBLIC_HEADER "${PUBLIC_HEADERS}") endif() target_include_directories(gslcblas PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(gsl PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) # For the build, we need to copy all headers to the gsl directory file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gsl) file(COPY ${PUBLIC_HEADERS} DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/gsl") set(TARGET_INSTALL_OPTIONS) if(INSTALL_HEADERS) set(TARGET_INSTALL_OPTIONS PUBLIC_HEADER DESTINATION include/gsl) endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gsl.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/gsl.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gsl.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(TARGETS gsl gslcblas RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ${TARGET_INSTALL_OPTIONS} ) ================================================ FILE: ports/gsl/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gsl/gsl-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/gsl/gsl-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gsl/gsl-${VERSION}.tar.gz" FILENAME "gsl-${VERSION}.tar.gz" SHA512 4427f6ce59dc14eabd6d31ef1fcac1849b4d7357faf48873aef642464ddf21cc9b500d516f08b410f02a2daa9a6ff30220f3995584b0a6ae2f73c522d1abb66b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-configure.patch 0002-add-fp-control.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gsl.pc" "\${GSL_CBLAS_LIB}" "-lgsl \${GSL_CBLAS_LIB}") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gsl.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gsl.pc" "-lgslcblas" "-lgslcblasd") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gsl.pc" "\${GSL_CBLAS_LIB}" "-lgsld \${GSL_CBLAS_LIB}") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gsl/usage ================================================ The package gsl is compatible with built-in CMake targets: find_package(GSL REQUIRED) target_link_libraries(main PRIVATE GSL::gsl GSL::gslcblas) ================================================ FILE: ports/gsl/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(GSL_FOUND AND TARGET GSL::gsl) set_property( TARGET GSL::gslcblas APPEND PROPERTY IMPORTED_CONFIGURATIONS Release ) set_property( TARGET GSL::gsl APPEND PROPERTY IMPORTED_CONFIGURATIONS Release ) if( EXISTS "${GSL_LIBRARY_DEBUG}" AND EXISTS "${GSL_CBLAS_LIBRARY_DEBUG}") set_property( TARGET GSL::gsl APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( GSL::gsl PROPERTIES IMPORTED_LOCATION_DEBUG "${GSL_LIBRARY_DEBUG}" ) set_property( TARGET GSL::gslcblas APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( GSL::gslcblas PROPERTIES IMPORTED_LOCATION_DEBUG "${GSL_CBLAS_LIBRARY_DEBUG}" ) endif() endif() ================================================ FILE: ports/gsl/vcpkg.json ================================================ { "name": "gsl", "version": "2.8", "port-version": 2, "description": "The GNU Scientific Library is a numerical library for C and C++ programmers", "homepage": "https://www.gnu.org/software/gsl/", "license": "GPL-3.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gsl-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gsl-lite/gsl-lite REF "v${VERSION}" SHA512 9da9b3b29703117e835170f902eace691a31d02d0477eae0026de36d56ffc188e32f3ea769865e3cd501e2880fd0380d9e1f46c7561d94c9f57f8b61d377f4bb HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "share/cmake/gsl-lite" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) ================================================ FILE: ports/gsl-lite/usage ================================================ gsl-lite provides CMake targets: find_package(gsl-lite CONFIG REQUIRED) target_link_libraries(main PRIVATE gsl-lite::gsl-lite) ================================================ FILE: ports/gsl-lite/vcpkg.json ================================================ { "name": "gsl-lite", "version": "1.1.0", "description": "ISO C++ Core Guidelines Library implementation for C++98, C++11 up", "homepage": "https://github.com/gsl-lite/gsl-lite/", "documentation": "https://gsl-lite.github.io/gsl-lite/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gsoap/fix-build-in-windows.patch ================================================ gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln | 8 +- .../soapcpp2/soapcpp2/soapcpp2.vcxproj | 114 +++++++++++++++++ gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln | 8 +- .../VisualStudio2005/wsdl2h/wsdl2h/wsdl2h.vcxproj | 139 +++++++++++++++++++++ 4 files changed, 263 insertions(+), 6 deletions(-) diff --git a/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln b/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln index 68bacf1..5d74e6b 100644 --- a/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln +++ b/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln @@ -1,7 +1,9 @@  -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "soapcpp2", "soapcpp2\soapcpp2.vcproj", "{BDD1B293-CE39-4BEC-8E63-8B1621F3EB56}" +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "soapcpp2", "soapcpp2\soapcpp2.vcxproj", "{BDD1B293-CE39-4BEC-8E63-8B1621F3EB56}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/gsoap/VisualStudio2005/soapcpp2/soapcpp2/soapcpp2.vcxproj b/gsoap/VisualStudio2005/soapcpp2/soapcpp2/soapcpp2.vcxproj new file mode 100644 index 0000000..17f1d75 --- /dev/null +++ b/gsoap/VisualStudio2005/soapcpp2/soapcpp2/soapcpp2.vcxproj @@ -0,0 +1,114 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {BDD1B293-CE39-4BEC-8E63-8B1621F3EB56} + soapcpp2 + Win32Proj + 8.1 + + + + Application + v140 + Unicode + true + + + Application + v140 + Unicode + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25431.1 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + Level3 + EditAndContinue + + + kernel32.lib + true + Console + MachineX86 + + + + + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + kernel32.lib + true + Console + true + true + MachineX86 + + + + + + + + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + $(IntDir)%(Filename)1.obj + $(IntDir)%(Filename)1.xdc + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln b/gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln index ffa3fa4..3f23607 100644 --- a/gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln +++ b/gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln @@ -1,7 +1,9 @@  -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual C++ Express 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wsdl2h", "wsdl2h\wsdl2h.vcproj", "{6CBC554A-4FFB-461F-91D4-11B358802815}" +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wsdl2h", "wsdl2h\wsdl2h.vcxproj", "{6CBC554A-4FFB-461F-91D4-11B358802815}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/gsoap/VisualStudio2005/wsdl2h/wsdl2h/wsdl2h.vcxproj b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/wsdl2h.vcxproj new file mode 100644 index 0000000..abf3ea6 --- /dev/null +++ b/gsoap/VisualStudio2005/wsdl2h/wsdl2h/wsdl2h.vcxproj @@ -0,0 +1,139 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {6CBC554A-4FFB-461F-91D4-11B358802815} + wsdl2h + Win32Proj + 8.1 + + + + Application + v140 + Unicode + true + + + Application + v140 + Unicode + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25431.1 + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + true + + + $(SolutionDir)$(Configuration)\ + $(Configuration)\ + false + + + + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + + Level3 + EditAndContinue + + + kernel32.lib + true + Console + MachineX86 + + + + + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + MultiThreaded + + Level3 + ProgramDatabase + + + kernel32.lib + true + Console + true + true + MachineX86 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Parsing WSDL and Schema definitions + soapcpp2.exe -SC -pwsdl %(Filename)%(Extension) + + wsdlStub.h wsdlH.h wsdlC.cpp;%(Outputs) + Parsing WSDL and Schema definitions + soapcpp2.exe -SC -pwsdl %(Filename)%(Extension) + + wsdlStub.h wsdlH.h wsdlC.cpp;%(Outputs) + + + + + + + + + + + + \ No newline at end of file ================================================ FILE: ports/gsoap/portfile.cmake ================================================ message(FATAL_ERROR "gsoap does not offer permanent public downloads of its sources; all versions except the latest are removed from sourceforge. Therefore, vcpkg cannot support this library directly in the central catalog. If you would like to use gsoap, you can use this port as a starting point (${CMAKE_CURRENT_LIST_DIR}) and update it to use a permanent commercial copy or the latest public download. Do not report issues with this library to the vcpkg GitHub.") vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO gsoap2 REF gsoap-2.8 FILENAME "gsoap_2.8.112.zip" SHA512 0c2562891a738916235f1d4b19d8419d96d0466ca4b729766551183c7b9b90cbe35bbf7fe126b3ea6b18138cbf591c9a9b5b73ddea7152ccdd2f790777c2b6d8 PATCHES fix-build-in-windows.patch ) set(BUILD_ARCH "Win32") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/gsoap" "${CURRENT_PACKAGES_DIR}/debug/tools") if (VCPKG_TARGET_IS_WINDOWS) vcpkg_msbuild_install( PROJECT_PATH "${SOURCE_PATH}/gsoap/VisualStudio2005/soapcpp2/soapcpp2.sln" PLATFORM ${BUILD_ARCH} TARGET Build ) vcpkg_msbuild_install( PROJECT_PATH "${SOURCE_PATH}/gsoap/VisualStudio2005/wsdl2h/wsdl2h.sln" PLATFORM ${BUILD_ARCH} TARGET Build ) else() message(FATAL_ERROR "Sorry but gsoap only can be build in Windows temporary") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/gsoap/stdsoap2.h" "${SOURCE_PATH}/gsoap/stdsoap2.c" "${SOURCE_PATH}/gsoap/stdsoap2.cpp" "${SOURCE_PATH}/gsoap/dom.c" "${SOURCE_PATH}/gsoap/dom.cpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(COPY "${SOURCE_PATH}/gsoap/import" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/gsoap/custom" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/gsoap/plugin" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/gsoap/plugin/.deps") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${SOURCE_PATH}/INSTALL.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME install) file(INSTALL "${SOURCE_PATH}/README.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME readme) ================================================ FILE: ports/gsoap/vcpkg.json ================================================ { "name": "gsoap", "version": "2.8.112", "port-version": 2, "description": "The gSOAP toolkit is a C and C++ software development toolkit for SOAP and REST XML Web services and generic C/C++ XML data bindings.", "homepage": "https://sourceforge.net/projects/gsoap2/", "supports": "!(linux | osx | arm | uwp)", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/gst-rtsp-server/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO gstreamer/gstreamer REF "${VERSION}" SHA512 04785a0c77a63480b1f7b1b794393a5e08faa6c56e434e30cdf3802e2e0ab659062a30010db920dc32aa672663133cb45840e4484a51ce5272aa9953ea77d364 HEAD_REF main ) set(SOURCE_PATH "${SOURCE_PATH}/subprojects/gst-rtsp-server") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dexamples=disabled -Dtests=disabled -Dintrospection=disabled -Dpackage-origin="vcpkg" -Ddoc=disabled OPTIONS_RELEASE -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false ) vcpkg_install_meson() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Move plugin pkg-config files file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") if(NOT VCPKG_BUILD_TYPE) file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" ) file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/plugins/gstreamer") endif() file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" ) file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/plugins/gstreamer") file(REMOVE ${DBG_BINS} ${REL_BINS}) if(NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0") endif() endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gst-rtsp-server/vcpkg.json ================================================ { "name": "gst-rtsp-server", "version": "1.26.4", "description": "gst-rtsp-server is a library on top of GStreamer for building an RTSP server", "homepage": "https://gstreamer.freedesktop.org/", "license": "LGPL-2.1-only", "supports": "!xbox", "dependencies": [ "glib", { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/gstreamer/duplicate-unused.diff ================================================ diff --git a/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c b/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c index 3fd15a0..232ac14 100644 --- a/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c +++ b/subprojects/gst-plugins-bad/sys/wasapi/gstwasapiutil.c @@ -39,6 +39,7 @@ GST_DEBUG_CATEGORY_EXTERN (gst_wasapi_debug); /* __uuidof is only available in C++, so we hard-code the GUID values for all * these. This is ok because these are ABI. MSYS2 provides these in C. */ #ifndef HAVE_AUDCLNT_GUIDS +static const CLSID CLSID_MMDeviceEnumerator = { 0xbcde0395, 0xe52f, 0x467c, {0x8e, 0x3d, 0xc4, 0x57, 0x92, 0x91, 0x69, 0x2e} }; ================================================ FILE: ports/gstreamer/fix-bz2-windows-debug-dependency.patch ================================================ diff --git a/subprojects/gst-plugins-bad/ext/bz2/meson.build b/subprojects/gst-plugins-bad/ext/bz2/meson.build index e7d8feb..9908a4c 100644 --- a/subprojects/gst-plugins-bad/ext/bz2/meson.build +++ b/subprojects/gst-plugins-bad/ext/bz2/meson.build @@ -18,7 +18,7 @@ plugin_sources += { 'bz2': pathsep.join(doc_sources) } -bz2_dep = cc.find_library('bz2', required : get_option('bz2')) +bz2_dep = dependency('bzip2', required : get_option('bz2')) if bz2_dep.found() and cc.has_header_symbol('bzlib.h', 'BZ2_bzlibVersion') gstbz2 = library('gstbz2', diff --git a/subprojects/gst-plugins-good/gst/matroska/meson.build b/subprojects/gst-plugins-good/gst/matroska/meson.build index 3dc9292..747e608 100644 --- a/subprojects/gst-plugins-good/gst/matroska/meson.build +++ b/subprojects/gst-plugins-good/gst/matroska/meson.build @@ -39,7 +39,7 @@ if get_option('matroska').disabled() subdir_done() endif -bz2_dep = cc.find_library('bz2', required : get_option('bz2')) +bz2_dep = dependency('bzip2', required : get_option('bz2')) cdata.set('HAVE_BZ2', bz2_dep.found() and cc.has_header('bzlib.h')) gstmatroska = library('gstmatroska', ================================================ FILE: ports/gstreamer/fix-clang-cl.patch ================================================ diff --git a/meson.build b/meson.build index 5f44b78..7f91238 100644 --- a/meson.build +++ b/meson.build @@ -88,7 +88,7 @@ endif # Ensure that MSVC interprets all source code as UTF-8. Only do this when we're # not a subproject, because subprojects are not allowed to call # add_global_arguments(). -if not meson.is_subproject() and cc.get_id() == 'msvc' +if not meson.is_subproject() and cc.get_argument_syntax() == 'msvc' add_global_arguments( cc.get_supported_arguments(['/utf-8']), # set the input encoding to utf-8 language: ['c', 'cpp']) @@ -480,7 +480,7 @@ if building_full if cc.has_link_argument(link_arg) gstfull_link_args += link_arg link_deps += symbol_map - elif cc.get_id() == 'msvc' + elif cc.get_argument_syntax() == 'msvc' warning('FIXME: Provide a def file to publish the public symbols') else warning('FIXME: Linker does not support the supplied version script (' + symbol_map + '), please disable the "gst-full-version-script" option') diff --git a/subprojects/gst-plugins-bad/ext/dts/meson.build b/subprojects/gst-plugins-bad/ext/dts/meson.build index dc884e0..82bfc53 100644 --- a/subprojects/gst-plugins-bad/ext/dts/meson.build +++ b/subprojects/gst-plugins-bad/ext/dts/meson.build @@ -37,7 +37,7 @@ if not dca_dep.found() endif no_warn_c_args = [] -if cc.get_id() != 'msvc' +if cc.get_argument_syntax() != 'msvc' # autotools didn't use the libdca pkg-config cflags, and they # can point to a non-existing location (/usr/include/dca) no_warn_c_args = ['-Wno-missing-include-dirs'] diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index c160778..9b1d692 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -54,7 +54,7 @@ endif cdata = configuration_data() -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it diff --git a/subprojects/gst-plugins-bad/sys/d3d11/meson.build b/subprojects/gst-plugins-bad/sys/d3d11/meson.build index 2859ea3..666199d 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/meson.build +++ b/subprojects/gst-plugins-bad/sys/d3d11/meson.build @@ -175,7 +175,7 @@ endif # MinGW 32bits compiler seems to be complaining about redundant-decls # when ComPtr is in use. Let's just disable the warning -if cc.get_id() != 'msvc' +if cc.get_argument_syntax() != 'msvc' extra_mingw_args = cc.get_supported_arguments([ '-Wno-redundant-decls', # include/directxmath/DirectXMathMatrix.inl:1161:16: error: variable 'aa' set but not used diff --git a/subprojects/gst-plugins-bad/sys/msdk/meson.build b/subprojects/gst-plugins-bad/sys/msdk/meson.build index 79e7200..4aad1d7 100644 --- a/subprojects/gst-plugins-bad/sys/msdk/meson.build +++ b/subprojects/gst-plugins-bad/sys/msdk/meson.build @@ -243,12 +243,12 @@ if use_onevpl and have_mfx_ver205 endif if host_machine.system() == 'windows' - if cc.get_id() != 'msvc' and msdk_option.enabled() + if cc.get_argument_syntax() != 'msvc' and msdk_option.enabled() error('msdk plugin can only be built with MSVC') endif legacy_stdio_dep = cc.find_library('legacy_stdio_definitions', required: get_option('msdk')) msdk_deps = declare_dependency(dependencies: [gstd3d11_dep, legacy_stdio_dep]) - msdk_deps_found = gstd3d11_dep.found() and legacy_stdio_dep.found() and cc.get_id() == 'msvc' + msdk_deps_found = gstd3d11_dep.found() and legacy_stdio_dep.found() and cc.get_argument_syntax() == 'msvc' else libdl_dep = cc.find_library('dl', required: get_option('msdk')) libgudev_dep = dependency('gudev-1.0', required: get_option('msdk'), allow_fallback: true) diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index 3f6730c..d94f936 100644 --- a/subprojects/gst-plugins-base/meson.build +++ b/subprojects/gst-plugins-base/meson.build @@ -52,7 +52,7 @@ gst_libraries = [] cc = meson.get_compiler('c') -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build index 95c89b2..52332c7 100644 --- a/subprojects/gst-plugins-good/meson.build +++ b/subprojects/gst-plugins-good/meson.build @@ -54,7 +54,7 @@ endif cc = meson.get_compiler('c') -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it @@ -239,7 +239,7 @@ cdata.set('HAVE_RTLD_NOLOAD', have_rtld_noload) # Here be fixmes. # FIXME: check if this is correct cdata.set('HAVE_CPU_X86_64', host_machine.cpu() == 'amd64') -cdata.set('HAVE_GCC_ASM', cc.get_id() != 'msvc') +cdata.set('HAVE_GCC_ASM', cc.get_argument_syntax() != 'msvc') cdata.set_quoted('VERSION', gst_version) cdata.set_quoted('PACKAGE_VERSION', gst_version) cdata.set_quoted('GST_LICENSE', 'LGPL') diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build index 4d68e1d..28e8cb1 100644 --- a/subprojects/gst-plugins-ugly/meson.build +++ b/subprojects/gst-plugins-ugly/meson.build @@ -39,7 +39,7 @@ if have_cxx cxx = meson.get_compiler('cpp') endif -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it diff --git a/subprojects/gstreamer/gst/parse/meson.build b/subprojects/gstreamer/gst/parse/meson.build index b79a07c..891f907 100644 --- a/subprojects/gstreamer/gst/parse/meson.build +++ b/subprojects/gstreamer/gst/parse/meson.build @@ -16,7 +16,7 @@ else endif flex_cdata.set('FLEX', flex.full_path()) -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' flex_cdata.set('FLEX_ARGS', '--nounistd') else flex_cdata.set('FLEX_ARGS', '') diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index ba50005..47cc78a 100644 --- a/subprojects/gstreamer/meson.build +++ b/subprojects/gstreamer/meson.build @@ -48,7 +48,7 @@ endif cdata = configuration_data() -if cc.get_id() == 'msvc' +if cc.get_argument_syntax() == 'msvc' msvc_args = [ # Ignore several spurious warnings for things gstreamer does very commonly # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it @@ -358,9 +358,11 @@ static __uint128_t v2 = 10; static __uint128_t u; u = v1 / v2; }''' +if cc.get_argument_syntax() != 'msvc' if cc.compiles(uint128_t_src, name : '__uint128_t available') cdata.set('HAVE_UINT128_T', 1) endif +endif # All supported platforms have long long now cdata.set('HAVE_LONG_LONG', 1) ================================================ FILE: ports/gstreamer/fix-multiple-def.patch ================================================ diff --git a/subprojects/gst-plugins-bad/gst/siren/common.c b/subprojects/gst-plugins-bad/gst/siren/common.c index 2e07748..70f58f6 100644 --- a/subprojects/gst-plugins-bad/gst/siren/common.c +++ b/subprojects/gst-plugins-bad/gst/siren/common.c @@ -44,7 +44,7 @@ int max_bin[8] = { 1 }; -float step_size[8] = { +float stp_size[8] = { 0.3536f, 0.5f, 0.70709997f, @@ -87,7 +87,7 @@ siren_init (void) (float) pow (10, (i - 24 + 0.5) * STEPSIZE); for (i = 0; i < 8; i++) - step_size_inverse[i] = (float) 1.0 / step_size[i]; + step_size_inverse[i] = (float) 1.0 / stp_size[i]; siren_dct4_init (); siren_rmlt_init (); diff --git a/subprojects/gst-plugins-bad/gst/siren/common.h b/subprojects/gst-plugins-bad/gst/siren/common.h index e09e533..123b888 100644 --- a/subprojects/gst-plugins-bad/gst/siren/common.h +++ b/subprojects/gst-plugins-bad/gst/siren/common.h @@ -95,7 +95,7 @@ extern int vector_dimension[8]; extern int number_of_vectors[8]; extern float dead_zone[8]; extern int max_bin[8]; -extern float step_size[8]; +extern float stp_size[8]; extern float step_size_inverse[8]; diff --git a/subprojects/gstreamer/plugins/elements/gstqueue.c b/subprojects/gstreamer/plugins/elements/gstqueue.c index 8a654cc..3f98a9d 100644 --- a/subprojects/gstreamer/plugins/elements/gstqueue.c +++ b/subprojects/gstreamer/plugins/elements/gstqueue.c @@ -127,7 +127,7 @@ enum PROP_LAST }; -GParamSpec *properties[PROP_LAST]; +static GParamSpec *properties[PROP_LAST]; /* default property values */ #define DEFAULT_MAX_SIZE_BUFFERS 200 /* 200 buffers */ ================================================ FILE: ports/gstreamer/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO gstreamer/gstreamer REF "${VERSION}" SHA512 2870d76fffd68bb5c702766a5dd3aa95f864c56a1d19444a3ad0a0e38fa1c66b25d61d5eb31046a3c53b875499ce7b784277cc9bf0bcbf698f35df0fb6a7b3f1 HEAD_REF main PATCHES fix-clang-cl.patch fix-bz2-windows-debug-dependency.patch fix-multiple-def.patch x264-api-imports.diff duplicate-unused.diff ) vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(NASM) # gstreamer/meson tends to pick host modules (e.g. libdrm) # or X11 etc. from brew, so control installation order by # explicitly cleaning the search root unless set externally. if((VCPKG_CROSSCOMPILING OR VCPKG_TARGET_IS_OSX) AND "$ENV{PKG_CONFIG}$ENV{PKG_CONFIG_LIBDIR}" STREQUAL "") set(ENV{PKG_CONFIG_LIBDIR} "${CURRENT_INSTALLED_DIR}/share/pkgconfig") endif() if(VCPKG_TARGET_IS_OSX) # In Darwin platform, there can be an old version of `bison`, # Which can't be used for `gst-build`. It requires 2.4+ execute_process( COMMAND ${BISON} --version OUTPUT_VARIABLE BISON_OUTPUT ) string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" BISON_VERSION "${BISON_OUTPUT}") set(BISON_MAJOR ${CMAKE_MATCH_1}) set(BISON_MINOR ${CMAKE_MATCH_2}) message(STATUS "Using bison: ${BISON_MAJOR}.${BISON_MINOR}.${CMAKE_MATCH_3}") if(NOT (BISON_MAJOR GREATER_EQUAL 2 AND BISON_MINOR GREATER_EQUAL 4)) message(WARNING "'bison' upgrade is required. Please check the https://stackoverflow.com/a/35161881") endif() endif() # General features vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ges ges gpl gpl libav libav nls nls plugins-base base alsa gst-plugins-base:alsa gl gst-plugins-base:gl gl-graphene gst-plugins-base:gl-graphene ogg gst-plugins-base:ogg opus-base gst-plugins-base:opus pango gst-plugins-base:pango vorbis gst-plugins-base:vorbis x11 gst-plugins-base:x11 x11 gst-plugins-base:xshm plugins-good good bzip2 gst-plugins-good:bz2 cairo gst-plugins-good:cairo flac gst-plugins-good:flac gdk-pixbuf gst-plugins-good:gdk-pixbuf jpeg gst-plugins-good:jpeg mpg123 gst-plugins-good:mpg123 png gst-plugins-good:png speex gst-plugins-good:speex taglib gst-plugins-good:taglib vpx gst-plugins-good:vpx plugins-ugly ugly x264 gst-plugins-ugly:x264 plugins-bad bad aes gst-plugins-bad:aes aom gst-plugins-bad:aom asio gst-plugins-bad:asio assrender gst-plugins-bad:assrender bzip2 gst-plugins-bad:bz2 chromaprint gst-plugins-bad:chromaprint closedcaption gst-plugins-bad:closedcaption colormanagement gst-plugins-bad:colormanagement dash gst-plugins-bad:dash dc1394 gst-plugins-bad:dc1394 dtls gst-plugins-bad:dtls faad gst-plugins-bad:faad fdkaac gst-plugins-bad:fdkaac fluidsynth gst-plugins-bad:fluidsynth gl gst-plugins-bad:gl hls gst-plugins-bad:hls libde265 gst-plugins-bad:libde265 microdns gst-plugins-bad:microdns modplug gst-plugins-bad:modplug nvcodec gst-plugins-bad:nvcodec openal gst-plugins-bad:openal openh264 gst-plugins-bad:openh264 openjpeg gst-plugins-bad:openjpeg openmpt gst-plugins-bad:openmpt opus-bad gst-plugins-bad:opus smoothstreaming gst-plugins-bad:smoothstreaming sndfile gst-plugins-bad:sndfile soundtouch gst-plugins-bad:soundtouch srt gst-plugins-bad:srt srtp gst-plugins-bad:srtp vulkan gst-plugins-bad:vulkan wayland gst-plugins-bad:wayland webp gst-plugins-bad:webp webrtc gst-plugins-bad:webrtc wildmidi gst-plugins-bad:wildmidi x11 gst-plugins-bad:x11 x265 gst-plugins-bad:x265 amd-amf gst-plugins-bad:amfcodec ) string(REPLACE "OFF" "disabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") string(REPLACE "ON" "enabled" FEATURE_OPTIONS "${FEATURE_OPTIONS}") # Align with dependencies of feature gl. if(NOT "gl" IN_LIST FEATURES) set(PLUGIN_BASE_GL_API "") set(PLUGIN_BASE_WINDOW_SYSTEM "") set(PLUGIN_BASE_GL_PLATFORM "") elseif(VCPKG_TARGET_IS_ANDROID) set(PLUGIN_BASE_GL_API gles2) set(PLUGIN_BASE_WINDOW_SYSTEM android,egl) set(PLUGIN_BASE_GL_PLATFORM egl) elseif(VCPKG_TARGET_IS_WINDOWS) set(PLUGIN_BASE_GL_API opengl) set(PLUGIN_BASE_WINDOW_SYSTEM win32) set(PLUGIN_BASE_GL_PLATFORM wgl) else() set(PLUGIN_BASE_GL_API opengl) set(PLUGIN_BASE_WINDOW_SYSTEM auto) set(PLUGIN_BASE_GL_PLATFORM auto) endif() # # References # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gstreamer/meson_options.txt # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-base/meson_options.txt # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-good/meson_options.txt # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-ugly/meson_options.txt # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/1.20.4/subprojects/gst-plugins-bad/meson_options.txt # # Rationale for added options # Common options are added below systematically # Feature options are added below only if the feature needs an external dependency # Feature options that are dependent on the operating system type (like wasapi or osxaudio) are set to auto # Every other feature options are made available if the dependency is available on vcpkg and if the plugin has managed to build during tests # vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} # GStreamer subprojects -Ddevtools=disabled -Drtsp_server=disabled -Drs=disabled -Dvaapi=disabled -Dgst-examples=disabled # Bindings -Dpython=disabled -Dsharp=disabled # External subprojects -Dtls=disabled -Dlibnice=disabled # Other options -Dbuild-tools-source=system -Dbenchmarks=disabled -Dorc=disabled # gstreamer requires a specific version of orc which is not available in vcpkg -Dqt5=disabled -Dqt6=disabled # Common options -Dtests=disabled -Dexamples=disabled -Dintrospection=disabled -Ddoc=disabled -Dgtk_doc=disabled # gstreamer -Dgstreamer:check=disabled -Dgstreamer:libunwind=disabled -Dgstreamer:libdw=disabled -Dgstreamer:dbghelp=disabled -Dgstreamer:bash-completion=disabled -Dgstreamer:coretracers=disabled -Dgstreamer:ptp-helper=disabled # needs rustc toolchain setup # gst-plugins-base -Dgst-plugins-base:gl_api=${PLUGIN_BASE_GL_API} -Dgst-plugins-base:gl_winsys=${PLUGIN_BASE_WINDOW_SYSTEM} -Dgst-plugins-base:gl_platform=${PLUGIN_BASE_GL_PLATFORM} -Dgst-plugins-base:cdparanoia=disabled -Dgst-plugins-base:libvisual=disabled -Dgst-plugins-base:theora=disabled -Dgst-plugins-base:tremor=disabled -Dgst-plugins-base:xvideo=disabled # gst-plugins-good -Dgst-plugins-good:aalib=disabled -Dgst-plugins-good:directsound=auto -Dgst-plugins-good:dv=disabled -Dgst-plugins-good:dv1394=disabled -Dgst-plugins-good:gtk3=disabled # GTK version 3 only -Dgst-plugins-good:jack=disabled -Dgst-plugins-good:lame=disabled -Dgst-plugins-good:libcaca=disabled -Dgst-plugins-good:oss=disabled -Dgst-plugins-good:oss4=disabled -Dgst-plugins-good:osxaudio=auto -Dgst-plugins-good:osxvideo=auto -Dgst-plugins-good:pulse=disabled # Port pulseaudio depends on gstreamer -Dgst-plugins-good:qt5=disabled -Dgst-plugins-good:shout2=disabled #-Dgst-plugins-good:soup=disabled -Dgst-plugins-good:twolame=disabled -Dgst-plugins-good:waveform=auto -Dgst-plugins-good:wavpack=disabled # Error during plugin build # gst-plugins-ugly -Dgst-plugins-ugly:a52dec=disabled -Dgst-plugins-ugly:cdio=disabled -Dgst-plugins-ugly:dvdread=disabled -Dgst-plugins-ugly:mpeg2dec=disabled # libmpeg2 not found -Dgst-plugins-ugly:sidplay=disabled # gst-plugins-bad -Dgst-plugins-bad:avtp=disabled -Dgst-plugins-bad:androidmedia=auto -Dgst-plugins-bad:applemedia=auto -Dgst-plugins-bad:bluez=disabled -Dgst-plugins-bad:bs2b=disabled -Dgst-plugins-bad:curl=disabled # Error during plugin build -Dgst-plugins-bad:curl-ssh2=disabled -Dgst-plugins-bad:d3dvideosink=auto -Dgst-plugins-bad:d3d11=auto -Dgst-plugins-bad:decklink=disabled -Dgst-plugins-bad:directfb=disabled -Dgst-plugins-bad:directsound=auto -Dgst-plugins-bad:dts=disabled -Dgst-plugins-bad:dvb=auto -Dgst-plugins-bad:faac=disabled -Dgst-plugins-bad:fbdev=auto -Dgst-plugins-bad:flite=disabled -Dgst-plugins-bad:gl=auto -Dgst-plugins-bad:gme=disabled -Dgst-plugins-bad:gs=disabled # Error during plugin configuration (abseil pkg-config file missing) -Dgst-plugins-bad:gsm=disabled -Dgst-plugins-bad:hls-crypto=openssl -Dgst-plugins-bad:ipcpipeline=auto -Dgst-plugins-bad:iqa=disabled -Dgst-plugins-bad:kms=disabled -Dgst-plugins-bad:ladspa=disabled -Dgst-plugins-bad:ldac=disabled -Dgst-plugins-bad:lv2=disabled # Error during plugin configuration (lilv pkg-config file missing) -Dgst-plugins-bad:mediafoundation=auto -Dgst-plugins-bad:mpeg2enc=disabled -Dgst-plugins-bad:mplex=disabled -Dgst-plugins-bad:msdk=disabled -Dgst-plugins-bad:musepack=disabled -Dgst-plugins-bad:neon=disabled -Dgst-plugins-bad:onnx=disabled # libonnxruntime not found -Dgst-plugins-bad:openaptx=disabled -Dgst-plugins-bad:opencv=disabled # opencv not found -Dgst-plugins-bad:openexr=disabled # OpenEXR::IlmImf target not found -Dgst-plugins-bad:openni2=disabled # libopenni2 not found -Dgst-plugins-bad:opensles=disabled -Dgst-plugins-bad:qroverlay=disabled -Dgst-plugins-bad:resindvd=disabled -Dgst-plugins-bad:rsvg=disabled # librsvg-2.0 not found -Dgst-plugins-bad:rtmp=disabled # librtmp not found -Dgst-plugins-bad:sbc=disabled -Dgst-plugins-bad:sctp=auto -Dgst-plugins-bad:shm=disabled -Dgst-plugins-bad:spandsp=disabled -Dgst-plugins-bad:svthevcenc=disabled -Dgst-plugins-bad:teletext=disabled -Dgst-plugins-bad:tinyalsa=disabled -Dgst-plugins-bad:transcode=disabled -Dgst-plugins-bad:ttml=disabled -Dgst-plugins-bad:uvch264=disabled -Dgst-plugins-bad:va=disabled -Dgst-plugins-bad:voaacenc=disabled -Dgst-plugins-bad:voamrwbenc=disabled -Dgst-plugins-bad:wasapi=auto -Dgst-plugins-bad:wasapi2=auto -Dgst-plugins-bad:wayland=auto -Dgst-plugins-bad:winks=disabled -Dgst-plugins-bad:winscreencap=auto -Dgst-plugins-bad:zbar=disabled # Error during plugin build -Dgst-plugins-bad:zxing=disabled # Error during plugin build -Dgst-plugins-bad:wpe=disabled -Dgst-plugins-bad:magicleap=disabled -Dgst-plugins-bad:v4l2codecs=disabled -Dgst-plugins-bad:isac=disabled OPTIONS_RELEASE -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false -Dgstreamer:gst_debug=false -Dgstreamer:extra-checks=disabled ADDITIONAL_BINARIES flex='${FLEX}' bison='${BISON}' nasm='${NASM}' glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' glslc='${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc/glslc${VCPKG_HOST_EXECUTABLE_SUFFIX}' ) vcpkg_install_meson() # Remove duplicated GL headers (we already have `opengl-registry`) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/KHR" "${CURRENT_PACKAGES_DIR}/include/GL" ) if("gl" IN_LIST FEATURES) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include/gst/gl/gstglconfig.h" "${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gl/gstglconfig.h" ) endif() if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") # AND tools list(APPEND GST_BIN_TOOLS gst-inspect-1.0 gst-launch-1.0 gst-stats-1.0 gst-typefind-1.0 ) list(APPEND GST_LIBEXEC_TOOLS gst-completion-helper gst-plugin-scanner ) if("ges" IN_LIST FEATURES) list(APPEND GST_BIN_TOOLS ges-launch-1.0 ) endif() if("plugins-base" IN_LIST FEATURES) list(APPEND GST_BIN_TOOLS gst-device-monitor-1.0 gst-discoverer-1.0 gst-play-1.0 ) endif() if("plugins-bad" IN_LIST FEATURES) list(APPEND GST_BIN_TOOLS gst-transcoder-1.0 ) endif() endif() if(GST_BIN_TOOLS) vcpkg_copy_tools(TOOL_NAMES ${GST_BIN_TOOLS} AUTO_CLEAN) endif() if(GST_LIBEXEC_TOOLS) vcpkg_copy_tools(TOOL_NAMES ${GST_LIBEXEC_TOOLS} SEARCH_DIR "${CURRENT_PACKAGES_DIR}/libexec/gstreamer-1.0" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/libexec" "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/include" "${CURRENT_PACKAGES_DIR}/libexec" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/include" "${CURRENT_PACKAGES_DIR}/share/gdb" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Move plugin pkg-config files file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/*") file(COPY ${pc_files} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(GLOB pc_files_dbg "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/*") file(COPY ${pc_files_dbg} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) set(PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}") set(SUFFIX "${CMAKE_SHARED_LIBRARY_SUFFIX}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" "${CURRENT_PACKAGES_DIR}/lib/${PREFIX}gstreamer-full-1.0${SUFFIX}" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gstreamer-1.0/gst/gstconfig.h" "!defined(GST_STATIC_COMPILATION)" "0") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # move plugins to ${prefix}/plugins/${PORT} instead of ${prefix}/lib/gstreamer-1.0 if(NOT VCPKG_BUILD_TYPE) file(GLOB DBG_BINS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/*.pdb" ) file(COPY ${DBG_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}") endif() file(GLOB REL_BINS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/*.pdb" ) file(COPY ${REL_BINS} DESTINATION "${CURRENT_PACKAGES_DIR}/plugins/${PORT}") file(REMOVE ${DBG_BINS} ${REL_BINS}) if(NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0") endif() set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-1.0.pc") if(EXISTS "${_file}") file(READ "${_file}" _contents) string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/../tools/${PORT}" _contents "${_contents}") string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") endif() set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-1.0.pc") if(EXISTS "${_file}") file(READ "${_file}" _contents) string(REPLACE [[toolsdir=${exec_prefix}/bin]] "toolsdir=\${prefix}/tools/${PORT}" _contents "${_contents}") string(REPLACE [[pluginscannerdir=${libexecdir}/gstreamer-1.0]] "pluginscannerdir=\${prefix}/tools/${PORT}" _contents "${_contents}") string(REPLACE [[pluginsdir=${libdir}/gstreamer-1.0]] "pluginsdir=\${prefix}/plugins/${PORT}" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") endif() endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-gl-1.0.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gstreamer-gl-1.0.pc" [[-I${libdir}/gstreamer-1.0/include]] "") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-gl-1.0.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gstreamer-gl-1.0.pc" [[-I${libdir}/gstreamer-1.0/include]] "") endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/gstreamer/vcpkg.json ================================================ { "name": "gstreamer", "version": "1.26.5", "port-version": 1, "description": "GStreamer open-source multimedia framework core library", "homepage": "https://gstreamer.freedesktop.org/", "license": "LGPL-2.0-only", "supports": "!uwp & !xbox", "dependencies": [ "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ "plugins-base" ], "features": { "aes": { "description": "Enable support for AES encryption/decryption", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openssl" ] }, "alsa": { "description": "Enable support for ALSA (Advanced Linux Sound Architecture)", "supports": "linux", "dependencies": [ { "name": "alsa", "platform": "linux" }, { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "amd-amf": { "description": "Enable support for the AMD AMF plugins", "supports": "windows", "dependencies": [ "amd-amf", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "aom": { "description": "Enable support for the Alliance for Open Media (AOM) AV1 encoder and decoder", "supports": "!windows", "dependencies": [ "aom", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "asio": { "description": "Enable support for the Steinberg Audio Streaming Input Output (ASIO) library", "dependencies": [ "asiosdk", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "assrender": { "description": "Enable support for the ASS/SSA subtitle renderer", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libass" ] }, "bzip2": { "description": "Enable bzip2 stream compression in plugins", "dependencies": [ "bzip2" ] }, "cairo": { "description": "Enable support for the cairo graphics library", "dependencies": [ { "name": "cairo", "features": [ "gobject" ] }, { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] } ] }, "chromaprint": { "description": "Enable support for the Chromaprint audio fingerprint library", "dependencies": [ "chromaprint", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "closedcaption": { "description": "Enable support for the closed caption extractor, decoder, and overlay", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "pango" ] }, "colormanagement": { "description": "Enable support for the color management correction", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "lcms" ] }, "dash": { "description": "Enable support for the DASH demuxer", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libxml2" ] }, "dc1394": { "description": "Enable support for the libdc1394 IIDC camera source", "supports": "!windows", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libdc1394" ] }, "dtls": { "description": "Enable support for the DTLS encoder and decoder", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openssl" ] }, "faad": { "description": "Enable support for the free AAC audio decoder (GPL licensed)", "dependencies": [ "faad2", { "name": "gstreamer", "default-features": false, "features": [ "gpl", "plugins-bad" ] } ] }, "fdkaac": { "description": "Enable support for the Fraunhofer AAC audio codec", "dependencies": [ "fdk-aac", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "flac": { "description": "Enable support for FLAC: Free Lossless Audio Codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "ogg", "plugins-good" ] }, "libflac" ] }, "fluidsynth": { "description": "Enable support for the Fluidsynth MIDI decoder", "supports": "!windows", "dependencies": [ { "name": "fluidsynth", "platform": "!windows" }, { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "gdk-pixbuf": { "description": "Enable support for gdk-pixbuf image loader", "dependencies": [ "gdk-pixbuf", { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] } ] }, "ges": { "description": "Enable support for GStreamer Editing Services", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "gl": { "description": "Enable OpenGL integration library and OpenGL plugin", "dependencies": [ { "name": "egl", "platform": "android" }, { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, { "name": "opengl", "platform": "!android" } ] }, "gl-graphene": { "description": "Use Graphene in OpenGL plugin", "dependencies": [ "graphene", { "name": "gstreamer", "default-features": false, "features": [ "gl" ] } ] }, "gpl": { "description": "Allow build of plugins that have (A)GPL-licensed dependencies", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "hls": { "description": "Enable HTTP Live Streaming plugin", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openssl" ] }, "jpeg": { "description": "Enable support for the JPEG file format", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base", "plugins-good" ] }, "libjpeg-turbo" ] }, "libav": { "description": "libav plugins", "dependencies": [ { "name": "ffmpeg", "default-features": false }, { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "libde265": { "description": "Enable support for the HEVC/H.265 video decoder", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libde265" ] }, "microdns": { "description": "Enable support for the microdns device provider", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libmicrodns" ] }, "modplug": { "description": "Enable support for the ModPlug audio decoder", "supports": "!uwp", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, { "name": "libmodplug", "platform": "!uwp" } ] }, "mpg123": { "description": "Enable support for the MPG123 decoding library", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "mpg123" ] }, "nls": { "description": "National language support", "dependencies": [ { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "nvcodec": { "description": "Enable support for the NVCODEC encoders and decoders", "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] } ] }, "ogg": { "description": "Enable support for the Ogg container format (commonly used by Vorbis, Theora and flac)", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, "libogg" ] }, "openal": { "description": "Enable support for the OpenAL audio library", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openal-soft" ] }, "openh264": { "description": "Enable support for the OpenH264 codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openh264" ] }, "openjpeg": { "description": "Enable support for the JPEG2000 codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "openjpeg" ] }, "openmpt": { "description": "Enable support for the OpenMPT codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libopenmpt" ] }, "opus-bad": { "description": "Enable support for the Opus codec in bad plugins", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "opus" ] }, "opus-base": { "description": "Enable support for the Opus codec in base plugins", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, "opus" ] }, "pango": { "description": "Enable support for pango font rendering", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, "pango" ] }, "plugins-bad": { "description": "'Bad' GStreamer plugins and helper libraries", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, { "name": "gstreamer", "default-features": false, "features": [ "gl" ], "platform": "osx" } ] }, "plugins-base": { "description": "'Base' GStreamer plugins and helper libraries", "dependencies": [ "zlib" ] }, "plugins-good": { "description": "'Good' GStreamer plugins and helper libraries", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] }, "zlib" ] }, "plugins-ugly": { "description": "'Ugly' GStreamer plugins and helper libraries", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "png": { "description": "Enable support for the PNG image format", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "libpng" ] }, "smoothstreaming": { "description": "Enable support for the Microsoft Smooth Streaming format", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libxml2" ] }, "sndfile": { "description": "Enable support for the SndFile file reader/writer", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libsndfile" ] }, "soundtouch": { "description": "Enable support for the SoundTouch audio processing library", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "soundtouch" ] }, "soup": { "description": "Enable support for the soup plugin", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "libsoup" ] }, "speex": { "description": "Enable support for the speex codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "speex" ] }, "srt": { "description": "Enable support for the SRT protocol", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libsrt" ] }, "srtp": { "description": "Enable support for the SRTP protocol", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libsrtp" ] }, "taglib": { "description": "Enable support for the taglib library", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "taglib" ] }, "vorbis": { "description": "Enable support for the OggVorbis audio codec", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "ogg", "plugins-base" ] }, "libvorbis" ] }, "vpx": { "description": "Enable support for the VP8 and VP9 codecs", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "libvpx" ] }, "vulkan": { "description": "Enable Vulkan video sink plugin", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, { "name": "gstreamer", "default-features": false, "features": [ "wayland" ], "platform": "!android & !ios & !osx & !windows" }, { "name": "shaderc", "host": true }, "vulkan" ] }, "wayland": { "description": "Enable Wayland plugin/library", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "wayland", "wayland-protocols" ] }, "webp": { "description": "Enable support for WebP image format", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "libwebp" ] }, "webrtc": { "description": "Enable support for WebRTC", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "dtls", "plugins-bad", "srtp" ] }, "libnice" ] }, "wildmidi": { "description": "Enable support for the WildMIDI synthesizer", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad" ] }, "wildmidi" ] }, "x11": { "description": "Enable X11 support in libraries and plugins", "supports": "!windows", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-good" ] }, "libx11", "libxext", "libxkbcommon", "xcb" ] }, "x264": { "description": "Enable support for the x264 encoder (GPL license)", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "gpl", "plugins-ugly" ] }, "x264" ] }, "x265": { "description": "Enable support for the x265 encoder (GPL license)", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "gpl", "plugins-bad" ] }, "x265" ] } } } ================================================ FILE: ports/gstreamer/x264-api-imports.diff ================================================ diff --git a/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h b/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h index b9c9f82..df96c4a 100644 --- a/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h +++ b/subprojects/gst-plugins-ugly/ext/x264/gstx264enc.h @@ -36,7 +36,6 @@ * leads to a segfault when you try to dereference any const values provided * by x264.dll. See: https://bugzilla.gnome.org/show_bug.cgi?id=779249 */ #if defined(_WIN32) && !defined(X264_API_IMPORTS) && !defined(GST_STATIC_COMPILATION) -# define X264_API_IMPORTS #endif #include ================================================ FILE: ports/gtest/001-fix-UWP-death-test.patch ================================================ diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index a64e887c..45ff24c3 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -5434,7 +5434,7 @@ int UnitTest::Run() { // used for the duration of the program. impl()->set_catch_exceptions(GTEST_FLAG_GET(catch_exceptions)); -#ifdef GTEST_OS_WINDOWS +#if defined(GTEST_OS_WINDOWS) && defined(GTEST_HAS_DEATH_TEST) // Either the user wants Google Test to catch exceptions thrown by the // tests or this is executing in the context of death test child // process. In either case the user does not want to see pop-up dialogs ================================================ FILE: ports/gtest/clang-tidy-no-lint.patch ================================================ diff --git a/googletest/include/gtest/gtest-matchers.h b/googletest/include/gtest/gtest-matchers.h index 2bd3dcf6..12cd60f6 100644 --- a/googletest/include/gtest/gtest-matchers.h +++ b/googletest/include/gtest/gtest-matchers.h @@ -403,6 +403,7 @@ class MatcherBase : private MatcherDescriberInterface { }; void Destroy() { + // NOLINTNEXTLINE if (IsShared() && buffer_.shared->Unref()) { vtable_->shared_destroy(buffer_.shared); } ================================================ FILE: ports/gtest/fix-main-lib-path.patch ================================================ diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt index 99b2411f..74610b12 100644 --- a/googlemock/CMakeLists.txt +++ b/googlemock/CMakeLists.txt @@ -112,8 +112,9 @@ target_include_directories(gmock_main SYSTEM INTERFACE ######################################################################## # -# Install rules. -install_project(gmock gmock_main) +# Install rules +install_project(gmock) +install_project(gmock_main) ######################################################################## # diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt index dce6a7c9..d8faf644 100644 --- a/googletest/CMakeLists.txt +++ b/googletest/CMakeLists.txt @@ -154,8 +154,9 @@ target_link_libraries(gtest_main PUBLIC gtest) ######################################################################## # -# Install rules. -install_project(gtest gtest_main) +# Install rules +install_project(gtest) +install_project(gtest_main) ######################################################################## # diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 580ac1cb..78a5b659 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -302,12 +302,16 @@ function(install_project) COMPONENT "${PROJECT_NAME}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") # Install the project targets. + set (LIB_INSTALL_DST ${CMAKE_INSTALL_LIBDIR}) + if (${ARGN} MATCHES "_main") + set (LIB_INSTALL_DST ${CMAKE_INSTALL_LIBDIR}/manual-link) + endif() install(TARGETS ${ARGN} EXPORT ${targets_export_name} COMPONENT "${PROJECT_NAME}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + ARCHIVE DESTINATION "${LIB_INSTALL_DST}" + LIBRARY DESTINATION "${LIB_INSTALL_DST}") if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") # Install PDBs. foreach(t ${ARGN}) @@ -317,7 +321,7 @@ function(install_project) install(FILES "${t_pdb_output_directory}/\${CMAKE_INSTALL_CONFIG_NAME}/$<$:${t_pdb_name_debug}>$<$>:${t_pdb_name}>.pdb" COMPONENT "${PROJECT_NAME}" - DESTINATION ${CMAKE_INSTALL_LIBDIR} + DESTINATION ${LIB_INSTALL_DST} OPTIONAL) endforeach() endif() ================================================ FILE: ports/gtest/portfile.cmake ================================================ if (EXISTS "${CURRENT_BUILDTREES_DIR}/src/.git") file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/src) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/googletest REF "v${VERSION}" SHA512 0f57e9ef06925e5b7722df1eb92ef5850e8dce79220ea16a8aaff586a71c0b01460ef1713649ee24ffedb2e6ad5a51e9198c5a5ae1b2789e43feb1f494e7d45c HEAD_REF main PATCHES 001-fix-UWP-death-test.patch clang-tidy-no-lint.patch fix-main-lib-path.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" GTEST_FORCE_SHARED_CRT) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_GMOCK=ON -Dgtest_force_shared_crt=${GTEST_FORCE_SHARED_CRT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/GTest) file( INSTALL "${SOURCE_PATH}/googletest/src/gtest.cc" "${SOURCE_PATH}/googletest/src/gtest_main.cc" "${SOURCE_PATH}/googletest/src/gtest-all.cc" "${SOURCE_PATH}/googletest/src/gtest-assertion-result.cc" "${SOURCE_PATH}/googletest/src/gtest-death-test.cc" "${SOURCE_PATH}/googletest/src/gtest-filepath.cc" "${SOURCE_PATH}/googletest/src/gtest-internal-inl.h" "${SOURCE_PATH}/googletest/src/gtest-matchers.cc" "${SOURCE_PATH}/googletest/src/gtest-port.cc" "${SOURCE_PATH}/googletest/src/gtest-printers.cc" "${SOURCE_PATH}/googletest/src/gtest-test-part.cc" "${SOURCE_PATH}/googletest/src/gtest-typed-test.cc" DESTINATION ${CURRENT_PACKAGES_DIR}/src ) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_fixup_pkgconfig() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gmock_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gtest_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gmock_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gtest_main.pc" "libdir=\${prefix}/lib" "libdir=\${prefix}/lib/manual-link") endif() vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/gtest/usage ================================================ The package gtest is compatible with built-in CMake targets: enable_testing() find_package(GTest CONFIG REQUIRED) target_link_libraries(main PRIVATE GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main) add_test(AllTestsInMain main) ================================================ FILE: ports/gtest/vcpkg.json ================================================ { "name": "gtest", "version-semver": "1.17.0", "port-version": 2, "description": "Google Testing and Mocking Framework", "homepage": "https://github.com/google/googletest", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gtk/0001-build.patch ================================================ diff --git a/meson.build b/meson.build index 713d87a531..e2e86726a2 100644 --- a/meson.build +++ b/meson.build @@ -1008,7 +1008,7 @@ if os_unix endif -if not meson.is_cross_build() +if false gnome.post_install( glib_compile_schemas: true, gtk_update_icon_cache: get_option('build-demos'), ================================================ FILE: ports/gtk/portfile.cmake ================================================ # It installs only shared libs, regardless build type. vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 bfea8825c5cdaaaea95055bf522c384b23bb26e9b8205081d055f85dc5df5d357827139115a4b7efe4d42418714b2ac062349459f761b383bed170354ecfa7f4 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-build.patch ) vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(PKGCONFIG_DIR "${PKGCONFIG}" DIRECTORY ) vcpkg_add_to_path("${PKGCONFIG_DIR}") # Post install script runs pkg-config so it needs to be on PATH vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/glib/") set(x11 false) set(win32 false) set(osx false) if(VCPKG_TARGET_IS_LINUX) set(OPTIONS -Dwayland-backend=false) # CI missing at least wayland-protocols set(x11 true) # Enable the wayland gdk backend (only when building on Unix except for macOS) elseif(VCPKG_TARGET_IS_WINDOWS) set(win32 true) elseif(VCPKG_TARGET_IS_OSX) set(osx true) endif() list(APPEND OPTIONS -Dx11-backend=${x11}) #Enable the X11 gdk backend (only when building on Unix) list(APPEND OPTIONS -Dbroadway-backend=false) #Enable the broadway (HTML5) gdk backend list(APPEND OPTIONS -Dwin32-backend=${win32}) #Enable the Windows gdk backend (only when building on Windows) list(APPEND OPTIONS -Dmacos-backend=${osx}) #Enable the macOS gdk backend (only when building on macOS) if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${OPTIONS} -Dbuild-demos=false -Dbuild-testsuite=false -Dbuild-examples=false -Dbuild-tests=false -Ddocumentation=false -Dman-pages=false -Dmedia-gstreamer=disabled # Build the gstreamer media backend -Dprint-cups=disabled # Build the cups print backend -Dvulkan=disabled # Enable support for the Vulkan graphics API -Dcloudproviders=disabled # Enable the cloudproviders support -Dsysprof=disabled # include tracing support for sysprof -Dtracker=disabled # Enable Tracker3 filechooser search -Dcolord=disabled # Build colord support for the CUPS printing backend -Df16c=disabled # Enable F16C fast paths (requires F16C) OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}' gdbus-codegen='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gdbus-codegen' glib-compile-schemas='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-schemas${VCPKG_HOST_EXECUTABLE_SUFFIX}' sassc='${CURRENT_HOST_INSTALLED_DIR}/tools/sassc/bin/sassc${VCPKG_HOST_EXECUTABLE_SUFFIX}' "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") set(TOOL_NAMES gtk4-builder-tool gtk4-encode-symbolic-svg gtk4-path-tool gtk4-query-settings gtk4-rendernode-tool gtk4-update-icon-cache gtk4-image-tool) if(VCPKG_TARGET_IS_LINUX) list(APPEND TOOL_NAMES gtk4-launch) endif() vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) 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") endif() ================================================ FILE: ports/gtk/vcpkg.json ================================================ { "name": "gtk", "version": "4.22.0", "description": "Portable library for creating graphical user interfaces.", "homepage": "https://www.gtk.org/", "license": "LGPL-2.0-only", "supports": "!android & !xbox & !(arm64 & windows)", "dependencies": [ { "name": "cairo", "default-features": false, "features": [ "gobject" ] }, { "name": "cairo", "default-features": false, "features": [ "x11" ], "platform": "linux" }, { "name": "directx-headers", "platform": "windows" }, "gdk-pixbuf", { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, "graphene", { "name": "harfbuzz", "features": [ "glib" ] }, "libepoxy", "pango", { "name": "sassc", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Build with introspection", "supports": "!static & !windows", "dependencies": [ { "name": "gdk-pixbuf", "default-features": false, "features": [ "introspection" ] }, "gobject-introspection", { "name": "graphene", "default-features": false, "features": [ "introspection" ] }, { "name": "pango", "default-features": false, "features": [ "introspection" ] } ] } } } ================================================ FILE: ports/gtk3/0001-build.patch ================================================ diff --git a/meson.build b/meson.build index 397ea07..dd6b888 100644 --- a/meson.build +++ b/meson.build @@ -997,7 +997,7 @@ subdir('docs/reference') install_data('m4macros/gtk-3.0.m4', install_dir: join_paths(get_option('datadir'), 'aclocal')) -if not meson.is_cross_build() +if false gnome.post_install( glib_compile_schemas: true, gio_querymodules: gio_module_dirs, ================================================ FILE: ports/gtk3/avoid-multiple-definition.diff ================================================ diff --git a/gtk/inspector/size-groups.c b/gtk/inspector/size-groups.c index eb185ed..f7c604d 100644 --- a/gtk/inspector/size-groups.c +++ b/gtk/inspector/size-groups.c @@ -44,7 +44,7 @@ enum { LAST_PROPERTY }; -GParamSpec *properties[LAST_PROPERTY] = { NULL }; +static GParamSpec *properties[LAST_PROPERTY] = { NULL }; GType size_group_row_get_type (void); ================================================ FILE: ports/gtk3/cairo-cpp-linkage.patch ================================================ diff --git a/gtk/meson.build b/gtk/meson.build index ea866d8..0d312f3 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -1102,6 +1102,7 @@ gtk_query_settings = executable( 'gtk-query-settings.c', c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_query_settings @@ -1111,6 +1112,7 @@ gtk_builder_tool = executable( 'gtk-builder-tool.c', c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_builder_tool @@ -1143,6 +1145,7 @@ gtk_update_icon_cache = executable( extra_update_icon_cache_objs, c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_update_icon_cache @@ -1153,6 +1156,7 @@ gtk_query_immodules = executable( 'gtkutils.c', c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_query_immodules @@ -1162,6 +1166,7 @@ gtk_encode_symbolic_svg = executable( 'encodesymbolic.c', c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_encode_symbolic_svg @@ -1171,6 +1176,7 @@ gtk_launch = executable( 'gtk-launch.c', c_args: gtk_cargs, dependencies: libgtk_dep, + link_language: 'cpp', install: true ) gtk_tools += gtk_launch diff --git a/meson.build b/meson.build index dd6b888..e60ad30 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,4 @@ -project('gtk', 'c', +project('gtk', 'c', 'cpp', version: '3.24.51', default_options: [ 'buildtype=debugoptimized', ================================================ FILE: ports/gtk3/egl-conditional.diff ================================================ diff --git a/gdk/win32/gdkglcontext-win32.c b/gdk/win32/gdkglcontext-win32.c index b1cbfa2c047dac8a73002120ffe4130f557cf82f..0021f8cdb5000d2ae0b70a22f6539c47e79a5e9d 100644 --- a/gdk/win32/gdkglcontext-win32.c +++ b/gdk/win32/gdkglcontext-win32.c @@ -833,7 +833,7 @@ gdk_win32_gl_context_realize_wgl (GdkGLContext *context, return TRUE; } -static gboolean +gboolean gdk_win32_display_is_wgl_context_current (GdkDisplay *display, GdkGLContext *context) { @@ -1313,7 +1313,8 @@ gdk_win32_window_invalidate_egl_framebuffer (GdkWindow *window) } } -static gboolean +#ifdef GDK_WIN32_ENABLE_EGL +gboolean gdk_win32_display_is_egl_context_current (GdkDisplay *display, GdkGLContext *context) { @@ -1321,6 +1322,9 @@ gdk_win32_display_is_egl_context_current (GdkDisplay *display, return context_egl->egl_context == eglGetCurrentContext (); } +#else +#define gdk_win32_display_is_egl_context_current(disp,ctx) FALSE +#endif static gboolean gdk_win32_display_make_egl_context_current (GdkDisplay *display, diff --git a/gdk/win32/gdkglcontext-win32.h b/gdk/win32/gdkglcontext-win32.h index 793a3ef4ffaa1fa2ba3d46b5a0ecfdf2ccb576fa..69d5d63166287360115aeec5cafbce264653f04c 100644 --- a/gdk/win32/gdkglcontext-win32.h +++ b/gdk/win32/gdkglcontext-win32.h @@ -61,6 +61,18 @@ gboolean gdk_win32_display_is_gl_context_current (GdkDisplay *display, GdkGLContext *context); +gboolean +gdk_win32_display_is_wgl_context_current (GdkDisplay *display, + GdkGLContext *context); + +#ifdef GDK_WIN32_ENABLE_EGL +gboolean +gdk_win32_display_is_egl_context_current (GdkDisplay *display, + GdkGLContext *context); +#else +#define gdk_win32_display_is_egl_context_current(disp,ctx) FALSE +#endif + gboolean gdk_win32_display_make_gl_context_current (GdkDisplay *display, GdkGLContext *context); ================================================ FILE: ports/gtk3/portfile.cmake ================================================ set(warning_length 24) string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length) if(buildtrees_path_length GREATER warning_length AND CMAKE_HOST_WIN32) message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n" "We recommend moving vcpkg to a short path such as 'C:\\vcpkg' or using the subst command." ) endif() string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/gtk/${VERSION_MAJOR_MINOR}/gtk-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/gtk/${VERSION_MAJOR_MINOR}/gtk-${VERSION}.tar.xz" FILENAME "GNOME-gtk-${VERSION}.tar.xz" SHA512 f96ee1c586284af315709ec38e841bd1b2558d09e2162834a132ffc4bbcddca272a92a828550a3accaa3e4da1964ad32b3b48291e929a108a913bd18c61cd73b ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-build.patch cairo-cpp-linkage.patch egl-conditional.diff # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/9067 avoid-multiple-definition.diff ) vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(PKGCONFIG_DIR "${PKGCONFIG}" DIRECTORY ) vcpkg_add_to_path("${PKGCONFIG_DIR}") # Post install script runs pkg-config so it needs to be on PATH vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/glib/") vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gdk-pixbuf") vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=true) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=false) endif() if("wayland" IN_LIST FEATURES) list(APPEND OPTIONS -Dwayland_backend=true) else() list(APPEND OPTIONS -Dwayland_backend=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Ddemos=false -Dexamples=false -Dtests=false -Dgtk_doc=false -Dman=false -Dxinerama=no # Enable support for the X11 Xinerama extension -Dcloudproviders=false # Enable the cloudproviders support -Dprofiler=false # include tracing support for sysprof -Dtracker3=false # Enable Tracker3 filechooser search -Dcolord=no # Build colord support for the CUPS printing backend OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=false ADDITIONAL_BINARIES "glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}'" "gdbus-codegen='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gdbus-codegen'" "glib-compile-schemas='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-schemas${VCPKG_HOST_EXECUTABLE_SUFFIX}'" "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) # Reduce command line lengths, in particular for static windows builds. foreach(dir IN ITEMS "${TARGET_TRIPLET}-dbg" "${TARGET_TRIPLET}-rel") if(EXISTS "${CURRENT_BUILDTREES_DIR}/${dir}/build.ninja") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${dir}/build.ninja" "/${dir}/../src/" "/src/") endif() endforeach() vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() set(GTK_TOOLS gtk-builder-tool gtk-encode-symbolic-svg gtk-launch gtk-query-immodules-3.0 gtk-query-settings gtk-update-icon-cache ) vcpkg_copy_tools(TOOL_NAMES ${GTK_TOOLS} AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gtk3/vcpkg.json ================================================ { "name": "gtk3", "version": "3.24.51", "port-version": 3, "description": "Portable library for creating graphical user interfaces.", "homepage": "https://www.gtk.org/", "license": null, "supports": "!android", "dependencies": [ { "name": "at-spi2-atk", "platform": "linux" }, "atk", { "name": "cairo", "default-features": false, "features": [ "gobject" ] }, { "name": "cairo", "default-features": false, "features": [ "x11" ], "platform": "linux | freebsd | openbsd" }, { "name": "gdk-pixbuf", "host": true }, "gdk-pixbuf", { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, "libepoxy", "libxi", "libxrandr", "pango", { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Build with introspection", "supports": "!static", "dependencies": [ { "name": "atk", "default-features": false, "features": [ "introspection" ] }, { "name": "gdk-pixbuf", "default-features": false, "features": [ "introspection" ] }, "gobject-introspection", { "name": "pango", "default-features": false, "features": [ "introspection" ] } ] }, "wayland": { "description": "Build with Wayland support", "supports": "linux | freebsd | openbsd", "dependencies": [ "wayland", "wayland-protocols" ] } } } ================================================ FILE: ports/gtkmm/portfile.cmake ================================================ string(REGEX MATCH "^([0-9]*[.][0-9]*)" GTKMM_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnome.org/pub/GNOME/sources/gtkmm/${GTKMM_MAJOR_MINOR}/gtkmm-${VERSION}.tar.xz" FILENAME "gtkmm-${VERSION}.tar.xz" SHA512 b0c4b77249dcf2d917919d43b04e41b819507ab34366aa4bbffd53bbe5edbb195081d69ae4996a116573a5d4e6d2affbbbc62d4ff986dcbf95045c5d64284d7f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dmsvc14x-parallel-installable=false # Use separate DLL and LIB filenames for Visual Studio 2017 and 2019 -Dbuild-tests=false -Dbuild-demos=false ADDITIONAL_BINARIES glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}' ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gtkmm/vcpkg.json ================================================ { "name": "gtkmm", "version": "4.22.0", "description": "gtkmm is the official C++ interface for the popular GUI library GTK+.", "homepage": "https://www.gtkmm.org/", "license": "LGPL-3.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "cairomm", "gdk-pixbuf", "glibmm", "gtk", "libepoxy", "pangomm", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/gtl/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO greg7mdp/gtl REF "v${VERSION}" SHA512 068d37b7028979538884db5956a76e1de301202eb6b015104c6d8b246e894f9166b1d2b97aff47b2641b6948e7dd1cd20a74396f1a6d276e2ade74469d27c3c2 HEAD_REF main ) # Use greg7mdp/gtl's own build process, skipping examples and tests vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGTL_BUILD_TESTS=OFF -DGTL_BUILD_EXAMPLES=OFF -DGTL_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() # Delete redundant directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/share/doc") # Put the licence file where vcpkg expects it file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/gtl/vcpkg.json ================================================ { "name": "gtl", "version": "1.2.0", "description": "Greg's Template Library of useful classes.", "homepage": "https://github.com/greg7mdp/gtl", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gts/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(gts VERSION "${VERSION}" LANGUAGES C) find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB2 glib-2.0 IMPORTED_TARGET) if(WIN32) add_definitions(-DNATIVE_WIN32 -D_USE_MATH_DEFINES) else() include(CheckIncludeFile) check_include_file("fpu_control.h" HAVE_FPU_CONTROL_H) if(HAVE_FPU_CONTROL_H) add_definitions(-DHAVE_FPU_CONTROL_H) endif() endif() add_definitions( -DGTS_COMPILATION -DGTS_MAJOR_VERSION=${PROJECT_VERSION_MAJOR} -DGTS_MINOR_VERSION=${PROJECT_VERSION_MINOR} -DGTS_MICRO_VERSION=${PROJECT_VERSION_PATCH} -DGTS_INTERFACE_AGE=1 -DGTS_BINARY_AGE=1 -DGTS_VERSION=${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} ) file(GLOB src src/*.c src/gts.def) list(FILTER src EXCLUDE REGEX ".*predicates_init\\.c$") add_library(gts ${src}) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "") target_include_directories(gts PUBLIC $ $ $ ) target_link_libraries(gts PUBLIC PkgConfig::GLIB2) set(prefix ?) set(exec_prefix \${prefix}) set(libdir \${prefix}/lib) set(includedir \${prefix}/include) configure_file(gts.pc.in gts.pc @ONLY) install(FILES src/gts.h src/gtsconfig.h DESTINATION include) install(TARGETS gts) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gts.pc" DESTINATION lib/pkgconfig) ================================================ FILE: ports/gts/fix-dllexport.patch ================================================ diff --git a/src/gts.h b/src/gts.h index 1b76915..ae1d888 100644 --- a/src/gts.h +++ b/src/gts.h @@ -38,7 +38,7 @@ extern "C" { * we prefix variable declarations so they can * properly get exported in windows dlls. */ -#ifdef NATIVE_WIN32 +#if 0 # ifdef GTS_COMPILATION # define GTS_C_VAR __declspec(dllexport) # else /* not GTS_COMPILATION */ ================================================ FILE: ports/gts/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO gts/gts REF 0.7.6 FILENAME gts-0.7.6.tar.gz SHA512 645123b72dba3d04dad3c5d936d7e55947826be0fb25e84595368919b720deccddceb7c3b30865a5a40f2458254c2af793b7c014e6719cf07e7f8e6ff30890f8 PATCHES fix-dllexport.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/predicates_init.h" DESTINATION "${SOURCE_PATH}/src") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/gts/predicates_init.h ================================================ /* This file was generated automatically by predicates_init * * This file is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ static double splitter = 134217729.000000; static double resulterrbound = 3.330669073875471e-16; static double ccwerrboundA = 3.330669073875472e-16; static double ccwerrboundB = 2.220446049250315e-16; static double ccwerrboundC = 1.109335647967049e-31; static double o3derrboundA = 7.771561172376103e-16; static double o3derrboundB = 3.330669073875473e-16; static double o3derrboundC = 3.204747427460364e-31; static double iccerrboundA = 1.110223024625158e-15; static double iccerrboundB = 4.440892098500632e-16; static double iccerrboundC = 5.423418723394464e-31; static double isperrboundA = 1.776356839400253e-15; static double isperrboundB = 5.551115123125792e-16; static double isperrboundC = 8.751425667295619e-31; ================================================ FILE: ports/gts/usage ================================================ gts can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(GTS gts REQUIRED IMPORTED_TARGET) target_link_libraries(main PRIVATE PkgConfig::GTS) ================================================ FILE: ports/gts/vcpkg.json ================================================ { "name": "gts", "version": "0.7.6", "port-version": 9, "description": "3D surfaces meshed with interconnected triangles", "homepage": "https://gts.sourceforge.net/", "license": "LGPL-2.0-or-later", "dependencies": [ "glib", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/gtsam/build-fixes.patch ================================================ diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index cc2a7df8f..e11de1815 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -25,6 +25,14 @@ if(@GTSAM_USE_SYSTEM_EIGEN@) find_dependency(Eigen3 REQUIRED) endif() +if(@GTSAM_USE_SYSTEM_METIS@) +find_dependency(metis REQUIRED) +endif() + +if(@GTSAM_USE_TBB@) +find_dependency(TBB REQUIRED) +endif() + # Load exports include(${OUR_CMAKE_DIR}/@PACKAGE_NAME@-exports.cmake) diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake index 0ecd4ca0e..725589a2d 100644 --- a/cmake/FindTBB.cmake +++ b/cmake/FindTBB.cmake @@ -1,3 +1,4 @@ +if(0) # The MIT License (MIT) # # Copyright (c) 2015 Justus Calvin @@ -321,3 +322,4 @@ if(NOT TBB_FOUND) unset(TBB_DEFAULT_SEARCH_DIR) endif() +endif() \ No newline at end of file diff --git a/cmake/HandleMetis.cmake b/cmake/HandleMetis.cmake index 5cbec4ff5..10dbb53de 100644 --- a/cmake/HandleMetis.cmake +++ b/cmake/HandleMetis.cmake @@ -13,10 +13,9 @@ option(GTSAM_USE_SYSTEM_METIS "Find and use system-installed libmetis. If 'off', if(GTSAM_USE_SYSTEM_METIS) # Debian package: libmetis-dev - find_path(METIS_INCLUDE_DIR metis.h REQUIRED) - find_library(METIS_LIBRARY metis REQUIRED) + find_package(metis CONFIG REQUIRED) - if(METIS_INCLUDE_DIR AND METIS_LIBRARY) + if(metis_FOUND) mark_as_advanced(METIS_INCLUDE_DIR) mark_as_advanced(METIS_LIBRARY) @@ -27,7 +26,7 @@ if(GTSAM_USE_SYSTEM_METIS) $ $ ) - target_link_libraries(metis-gtsam-if INTERFACE ${METIS_LIBRARY}) + target_link_libraries(metis-gtsam-if INTERFACE ${METIS_LIBRARY} metis) endif() else() # Bundled version: diff --git a/cmake/HandleTBB.cmake b/cmake/HandleTBB.cmake index fb944ba5b..393aeb345 100644 --- a/cmake/HandleTBB.cmake +++ b/cmake/HandleTBB.cmake @@ -14,7 +14,7 @@ if (GTSAM_WITH_TBB) endif() # all definitions and link requisites will go via imported targets: # tbb & tbbmalloc - list(APPEND GTSAM_ADDITIONAL_LIBRARIES tbb tbbmalloc) + list(APPEND GTSAM_ADDITIONAL_LIBRARIES TBB::tbb TBB::tbbmalloc) else() set(GTSAM_USE_TBB 0) # This will go into config.h endif() ================================================ FILE: ports/gtsam/eigen3-fixes.patch ================================================ diff --git a/gtsam/base/Matrix.cpp b/gtsam/base/Matrix.cpp index 5b8a021..abc6574 100644 --- a/gtsam/base/Matrix.cpp +++ b/gtsam/base/Matrix.cpp @@ -127,16 +127,6 @@ bool linear_dependent(const Matrix& A, const Matrix& B, double tol) { } } -/* ************************************************************************* */ -Vector operator^(const Matrix& A, const Vector & v) { - if (A.rows()!=v.size()) throw std::invalid_argument( - boost::str(boost::format("Matrix operator^ : A.m(%d)!=v.size(%d)") % A.rows() % v.size())); -// Vector vt = v.transpose(); -// Vector vtA = vt * A; -// return vtA.transpose(); - return A.transpose() * v; -} - const Eigen::IOFormat& matlabFormat() { static const Eigen::IOFormat matlab( Eigen::StreamPrecision, // precision diff --git a/gtsam/base/Matrix.h b/gtsam/base/Matrix.h index cfedf6d..05e3d0d 100644 --- a/gtsam/base/Matrix.h +++ b/gtsam/base/Matrix.h @@ -54,7 +54,7 @@ using Matrix7##N = Eigen::Matrix; \ using Matrix8##N = Eigen::Matrix; \ using Matrix9##N = Eigen::Matrix; \ static const Eigen::MatrixBase::IdentityReturnType I_##N##x##N = Matrix##N::Identity(); \ -static const Eigen::MatrixBase::ConstantReturnType Z_##N##x##N = Matrix##N::Zero(); +static const Eigen::MatrixBase::ZeroReturnType Z_##N##x##N = Matrix##N::Zero(); GTSAM_MAKE_MATRIX_DEFS(1) GTSAM_MAKE_MATRIX_DEFS(2) @@ -133,12 +133,6 @@ GTSAM_EXPORT bool linear_independent(const Matrix& A, const Matrix& B, double to */ GTSAM_EXPORT bool linear_dependent(const Matrix& A, const Matrix& B, double tol = 1e-9); -/** - * overload ^ for trans(A)*v - * We transpose the vectors for speed. - */ -GTSAM_EXPORT Vector operator^(const Matrix& A, const Vector & v); - /** products using old-style format to improve compatibility */ template inline MATRIX prod(const MATRIX& A, const MATRIX&B) { diff --git a/gtsam/base/Vector.h b/gtsam/base/Vector.h index f7923ff..99573a5 100644 --- a/gtsam/base/Vector.h +++ b/gtsam/base/Vector.h @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -42,14 +43,14 @@ typedef Eigen::Matrix Vector1; typedef Eigen::Vector2d Vector2; typedef Eigen::Vector3d Vector3; -static const Eigen::MatrixBase::ConstantReturnType Z_2x1 = Vector2::Zero(); -static const Eigen::MatrixBase::ConstantReturnType Z_3x1 = Vector3::Zero(); +static const Eigen::MatrixBase::ZeroReturnType Z_2x1 = Vector2::Zero(); +static const Eigen::MatrixBase::ZeroReturnType Z_3x1 = Vector3::Zero(); // Create handy typedefs and constants for vectors with N>3 // VectorN and Z_Nx1, for N=1..9 #define GTSAM_MAKE_VECTOR_DEFS(N) \ using Vector##N = Eigen::Matrix; \ - static const Eigen::MatrixBase::ConstantReturnType Z_##N##x1 = Vector##N::Zero(); + static const Eigen::MatrixBase::ZeroReturnType Z_##N##x1 = Vector##N::Zero(); GTSAM_MAKE_VECTOR_DEFS(4) GTSAM_MAKE_VECTOR_DEFS(5) ================================================ FILE: ports/gtsam/path-fixes.patch ================================================ diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index e11de1815..a25a9883d 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -4,13 +4,8 @@ # Compute paths get_filename_component(OUR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -if(EXISTS "${OUR_CMAKE_DIR}/CMakeCache.txt") - # In build tree - set(@PACKAGE_NAME@_INCLUDE_DIR @GTSAM_SOURCE_DIR@ CACHE PATH "@PACKAGE_NAME@ include directory") -else() - # Find installed library - set(@PACKAGE_NAME@_INCLUDE_DIR "${OUR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@" CACHE PATH "@PACKAGE_NAME@ include directory") -endif() +# Find installed library +set(@PACKAGE_NAME@_INCLUDE_DIR "${OUR_CMAKE_DIR}/@CONF_REL_INCLUDE_DIR@" CACHE PATH "@PACKAGE_NAME@ include directory") # Find dependencies, required by cmake exported targets: include(CMakeFindDependencyMacro) diff --git a/gtsam/config.h.in b/gtsam/config.h.in index d47329a62..60ca62931 100644 --- a/gtsam/config.h.in +++ b/gtsam/config.h.in @@ -25,7 +25,7 @@ #define GTSAM_VERSION_STRING "@GTSAM_VERSION_STRING@" // Paths to example datasets distributed with GTSAM -#define GTSAM_SOURCE_TREE_DATASET_DIR "@GTSAM_SOURCE_DIR@/examples/Data" +#define GTSAM_SOURCE_TREE_DATASET_DIR "" #define GTSAM_INSTALLED_DATASET_DIR "@GTSAM_TOOLBOX_INSTALL_PATH@/gtsam_examples/Data" // Whether GTSAM is compiled to use quaternions for Rot3 (otherwise uses rotation matrices) ================================================ FILE: ports/gtsam/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO borglab/gtsam REF ${VERSION} SHA512 c0e5de8d86ea8241b49449bd291999ec0d6530bc9943b213e7c650b0ab29894ab53636bd1a0ed82d9d9d148dfc399ebff28e108b060d2d2176b584823bd722cd HEAD_REF develop PATCHES build-fixes.patch path-fixes.patch eigen3-fixes.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DGTSAM_BUILD_TIMING_ALWAYS=OFF -DGTSAM_BUILD_UNSTABLE=OFF -DGTSAM_UNSTABLE_BUILD_PYTHON=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON -DGTSAM_USE_SYSTEM_METIS=ON -DGTSAM_INSTALL_CPPUNITLITE=OFF -DGTSAM_BUILD_TYPE_POSTFIXES=OFF -DCMAKE_CXX_STANDARD=14 # Boost-math require C++14 ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(PACKAGE_NAME GTSAM CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME GTSAM CONFIG_PATH lib/cmake/GTSAM) endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE.BSD") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/gtsam/usage ================================================ The package gtsam is compatible with built-in CMake targets: find_package(GTSAM CONFIG REQUIRED) target_link_libraries(main PRIVATE gtsam) ================================================ FILE: ports/gtsam/vcpkg.json ================================================ { "name": "gtsam", "version": "4.2.0", "port-version": 2, "description": "GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.", "homepage": "https://github.com/borglab/gtsam", "license": "BSD-3-Clause", "dependencies": [ "boost-assign", "boost-bimap", "boost-date-time", "boost-filesystem", "boost-format", "boost-graph", "boost-math", "boost-program-options", "boost-regex", "boost-serialization", "boost-system", "boost-thread", "boost-timer", "eigen3", "metis", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/guetzli/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(guetzli) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) endif() find_path(butteraugli_include butteraugli/butteraugli.h) find_library(butteraugli_library NAMES butteraugli_lib) find_package(PNG REQUIRED) include_directories("." ${PNG_INCLUDE_DIRS} ${butteraugli_include}) file(GLOB guetzli_srcs "guetzli/*.cc") file(GLOB guetzli_includes "guetzli/*.h") list(REMOVE_ITEM guetzli_srcs "guetzli/guetzli.cc") add_library(guetzli_lib ${guetzli_srcs}) target_compile_features(guetzli_lib PUBLIC cxx_std_11) add_executable(guetzli guetzli/guetzli.cc) target_link_libraries(guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES}) target_link_libraries(guetzli guetzli_lib ${butteraugli_library} ${PNG_LIBRARIES}) install( TARGETS guetzli_lib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) install ( TARGETS guetzli RUNTIME DESTINATION tools/guetzli ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${guetzli_includes} DESTINATION include/guetzli) endif() ================================================ FILE: ports/guetzli/butteraugli.patch ================================================ diff --git a/guetzli/butteraugli_comparator.cc b/guetzli/butteraugli_comparator.cc index 142c203..f4e710d 100644 --- a/guetzli/butteraugli_comparator.cc +++ b/guetzli/butteraugli_comparator.cc @@ -56,7 +56,7 @@ ButteraugliComparator::ButteraugliComparator(const int width, const int height, height_(height), target_distance_(target_distance), rgb_orig_(*rgb), - comparator_(LinearRgb(width_, height_, *rgb)), + comparator_(LinearRgb(width_, height_, *rgb), 1.0f), distance_(0.0), stats_(stats) {} ================================================ FILE: ports/guetzli/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/guetzli REF 214f2bb42abf5a577c079d00add5d6cc470620d3 # accessed on 2020-09-14 SHA512 841cb14df4d27d3227e0ef8ecff6bd8a222d791abfc8fb593bf68996ed8861a9cc483f1a9b140023a247a5b1a350197601ca75a990507aaafa1b2dd03f8577d0 HEAD_REF master PATCHES butteraugli.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/guetzli") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/guetzli" RENAME copyright) ================================================ FILE: ports/guetzli/vcpkg.json ================================================ { "name": "guetzli", "version-date": "2020-09-14", "port-version": 2, "description": "Perceptual JPEG encoder", "homepage": "https://github.com/google/guetzli", "dependencies": [ "butteraugli", "libpng", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/guile/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/guile/guile-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/guile/guile-${VERSION}.tar.gz" FILENAME "guile-${VERSION}.tar.gz" SHA512 bf81eca9554d22dcfcff4797739dee18758c257bd2c848fdf508e3fd6e58ffd9754b08a57d8ba31c80a69b0444fff3b045e22ec88fc34ef787cd71f5466fafe8 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" ADD_BIN_TO_PATH AUTOCONFIG ) vcpkg_install_make() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() if (NOT VCPKG_BUILD_TYPE) foreach(file guile-tools guile-config guild) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/${file}" "${CURRENT_INSTALLED_DIR}/debug/../tools/guile/debug/bin" "`dirname $0`" IGNORE_UNCHANGED) endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/guile-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../..") endif() foreach(file guile-tools guile-config guild) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${file}" "${CURRENT_INSTALLED_DIR}/tools/guile/bin" "`dirname $0`" IGNORE_UNCHANGED) endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/guile-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/guile/vcpkg.json ================================================ { "name": "guile", "version": "3.0.11", "description": "GNU's programming and extension language", "homepage": "https://www.gnu.org/software/guile/", "documentation": "https://www.gnu.org/software/guile/manual/", "license": "LGPL-3.0-or-later", "supports": "linux", "dependencies": [ "bdwgc", { "name": "gettext", "host": true, "features": [ "tools" ] }, "gmp", { "name": "gperf", "host": true }, "libffi", "libunistring" ] } ================================================ FILE: ports/guilite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO idea4good/GuiLite REF 61d1bd94cbc35da74c0f3c40422a7d783c04d40b SHA512 b428e9bfc62fabb4d23d4c39b78d521aa13eb52e571a5aaab7609a03bb88e6f2184587885cd4df950eb5f48dece2b8fbff2264f158251ed06c6a6415b9b59f1a HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/GuiLite.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/guilite/vcpkg.json ================================================ { "name": "guilite", "version-date": "2022-05-05", "description": "The smallest header-only GUI library (4 KLOC) for all platforms.", "homepage": "https://github.com/idea4good/GuiLite", "license": "Apache-2.0" } ================================================ FILE: ports/gul14/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gul-cpp/gul14 REF "v${VERSION}" SHA512 50e20163ac0d29b80eb5b7fef3d57ccb8c649096414f432d613a900d8c420aa6847b1f2e47fb34571efc614d965ef265796b29ebf45bc99809ae8c505315c3bc HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ) vcpkg_install_meson() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # Install copyright file vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/gul14/vcpkg.json ================================================ { "name": "gul14", "version": "2.13.1", "description": [ "General Utility Library for C++14.", "GUL14 contains often-used utility functions and types that form the foundation for other libraries and programs.", "It provides basic functionality that is not available in the C++14 standard library, including some backports from later versions of the standard." ], "homepage": "https://github.com/gul-cpp/gul14.git", "documentation": "https://gul-cpp.github.io/gul14/", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/gul17/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gul-cpp/gul17 REF "v${VERSION}" SHA512 4529b4d3bc3dcb2c1553b54f93c71ce7640b28aa823d0cece07b2739962fe05fe2df3dc06165ea754e59de7af065813260180cf779e8716598d595385d5c9914 HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # Install copyright file vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/gul17/vcpkg.json ================================================ { "name": "gul17", "version": "26.2.0", "description": [ "General Utility Library for C++17.", "GUL17 contains often-used utility functions and types that form the foundation for other libraries and programs.", "It provides basic functionality that is not available in the C++17 standard library, including some backports from later versions of the standard." ], "homepage": "https://github.com/gul-cpp/gul17", "documentation": "https://gul-cpp.github.io/gul17/", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/gumbo/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(gumbo) set(gumbo_public_headers src/gumbo.h src/tag_enum.h ) set(gumbo_srcs src/attribute.c src/char_ref.c src/error.c src/parser.c src/string_buffer.c src/string_piece.c src/tag.c src/tokenizer.c src/utf8.c src/util.c src/vector.c ) include_directories(src) if (MSVC) include_directories(visualc/include) endif (MSVC) add_library(gumbo ${gumbo_srcs}) set_target_properties(gumbo PROPERTIES C_STANDARD 99 PUBLIC_HEADER "${gumbo_public_headers}" ) target_include_directories(gumbo PUBLIC $ $ $) install( TARGETS gumbo EXPORT unofficial-gumbo-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include ) install(EXPORT unofficial-gumbo-config NAMESPACE unofficial::gumbo:: DESTINATION share/unofficial-gumbo ) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/gumbo.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/lib/pkgconfig/gumbo.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lib/pkgconfig/gumbo.pc" DESTINATION "lib/pkgconfig") ================================================ FILE: ports/gumbo/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://codeberg.org/gumbo-parser/gumbo-parser/archive/${VERSION}.tar.gz" FILENAME "gumbo-${VERSION}.tar.gz" SHA512 15da29bc1b7d70a827870562462ca90fd57469d72d7a4804c59da96c5c46b3a0c50e99a08a80d6e08d2be87f55388c8848918bfbab58ac0c22df85fdc2bd35e7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-gumbo CONFIG_PATH share/unofficial-gumbo) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/COPYING") ================================================ FILE: ports/gumbo/vcpkg.json ================================================ { "name": "gumbo", "version": "0.12.3", "description": "An HTML5 parsing library in pure C99", "homepage": "https://codeberg.org/gumbo-parser/gumbo-parser", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/gz-cmake/find-modules.diff ================================================ diff --git a/cmake/FindFreeImage.cmake b/cmake/FindFreeImage.cmake index 8a5836e..d7e41d2 100644 --- a/cmake/FindFreeImage.cmake +++ b/cmake/FindFreeImage.cmake @@ -23,7 +23,23 @@ set(minor_version ${FreeImage_FIND_VERSION_MINOR}) # Set the full version number set(full_version ${major_version}.${minor_version}) -if (NOT WIN32) +if(1) + find_package(freeimage CONFIG) # not using NAMES to avoid version check + if(freeimage_FOUND) + set(FreeImage_FOUND 1) + set(FreeImage_LIBRARIES freeimage::FreeImage) + include(GzImportTarget) + gz_import_target(FreeImage INTERFACE) + # sorry, no transitive link libs for pkgconfig + include(GzPkgConfig) + find_library(FreeImage_LIBRARY NAMES FreeImage FreeImaged NAMES_PER_DIR) + if(FreeImage_LIBRARY MATCHES "FreeImaged[^/]*\$") + gz_pkg_config_library_entry(FreeImage "FreeImaged") + else() + gz_pkg_config_library_entry(FreeImage "FreeImage") + endif() + endif() +elseif(0) include(GzPkgConfig) gz_pkg_config_library_entry(FreeImage freeimage) diff --git a/cmake/FindGTS.cmake b/cmake/FindGTS.cmake index b400483..48cf9f7 100644 --- a/cmake/FindGTS.cmake +++ b/cmake/FindGTS.cmake @@ -16,7 +16,7 @@ ######################################## # Find GNU Triangulation Surface Library -if (NOT WIN32) +if(1) # Configuration using pkg-config modules include(GzPkgConfig) gz_pkg_check_modules(GTS gts) diff --git a/cmake/FindGzBullet.cmake b/cmake/FindGzBullet.cmake index 70f7a76..e39a3fd 100644 --- a/cmake/FindGzBullet.cmake +++ b/cmake/FindGzBullet.cmake @@ -31,7 +31,7 @@ endif() # Bullet. Force MODULE mode to use the FindBullet.cmake file distributed with # CMake. Otherwise, we may end up using the BulletConfig.cmake file distributed # with Bullet, which uses relative paths and may break transitive dependencies. -find_package(Bullet MODULE ${gz_quiet_arg}) +find_package(BULLET NAMES Bullet ${gz_quiet_arg}) set(GzBullet_FOUND false) # create Bullet target diff --git a/cmake/FindGzOGRE2.cmake b/cmake/FindGzOGRE2.cmake index 2decd84..dd2c2c2 100644 --- a/cmake/FindGzOGRE2.cmake +++ b/cmake/FindGzOGRE2.cmake @@ -146,7 +146,7 @@ endmacro() find_package(PkgConfig QUIET) if (PkgConfig_FOUND) set(PKG_CONFIG_PATH_ORIGINAL $ENV{PKG_CONFIG_PATH}) - foreach (GZ_OGRE2_PROJECT_NAME "OGRE2" "OGRE-Next") + foreach (GZ_OGRE2_PROJECT_NAME "OGRE-Next") message(STATUS "Looking for OGRE using the name: ${GZ_OGRE2_PROJECT_NAME}") if (GZ_OGRE2_PROJECT_NAME STREQUAL "OGRE2") set(OGRE2_INSTALL_PATH "OGRE-2.${GzOGRE2_FIND_VERSION_MINOR}") @@ -173,6 +173,7 @@ if (PkgConfig_FOUND) set(GZ_PKG_NAME ${OGRE2_INSTALL_PATH}) set(OGRE2_FOUND ${${GZ_OGRE2_PROJECT_NAME}_FOUND}) # sync possible OGRE-Next to OGRE2 fix_pkgconfig_prefix_jammy_bug("${${GZ_OGRE2_PROJECT_NAME}_LIBRARY_DIRS}" OGRE2_LIBRARY_DIRS) + set(OGRE2_LIBRARY_DIRS ${${GZ_OGRE2_PROJECT_NAME}_LIBRARY_DIRS}) set(OGRE2_LIBRARIES ${${GZ_OGRE2_PROJECT_NAME}_LIBRARIES}) # sync possible Ogre-Next ot OGRE2 else() # look for OGRE2 installed from source @@ -264,10 +265,10 @@ if (PkgConfig_FOUND) get_filename_component(dir_name "${dir}" NAME) if ("${dir_name}" STREQUAL ${GZ_PKG_NAME}) set(dir_include "${dir}/RenderSystems/GL3Plus") - else() - set(dir_include "${dir}") + if(EXISTS "${dir_include}") + list(APPEND OGRE2_INCLUDE_DIRS "${dir_include}") + endif() endif() - list(APPEND OGRE2_INCLUDE_DIRS ${dir_include}) endforeach() file(READ ${OGRE2_INCLUDE}/OgrePrerequisites.h OGRE_TEMP_VERSION_CONTENT) @@ -309,6 +310,9 @@ if (PkgConfig_FOUND) "${OGRE2LIBNAME}${component}_d" "${OGRE2LIBNAME}${component}.${OGRE2_VERSION}" "${OGRE2LIBNAME}${component}" + "${OGRE2LIBNAME}${component}Static" + "${OGRE2LIBNAME}${component}Static_d" + NAMES_PER_DIR HINTS ${OGRE2_LIBRARY_DIRS}) if (NOT "${OGRE2-${component}}" STREQUAL "OGRE2-${component}-NOTFOUND") message(STATUS " + component ${component}: found") @@ -400,17 +404,22 @@ else() #PkgConfig_FOUND set(OGRE2_VERSION_MINOR "") set(OGRE2_RESOURCE_PATH "") - set(OGRE2_SEARCH_VER "OGRE-${GzOGRE2_FIND_VERSION_MAJOR}.${GzOGRE2_FIND_VERSION_MINOR}") + set(OGRE2_SEARCH_VER "OGRE-Next") set(OGRE2_PATHS "") set(OGRE2_INC_PATHS "") foreach(_rootPath ${VCPKG_CMAKE_FIND_ROOT_PATH}) - list(APPEND OGRE2_PATHS "${_rootPath}/lib/${OGRE2_SEARCH_VER}/") - list(APPEND OGRE2_PATHS "${_rootPath}/lib/${OGRE2_SEARCH_VER}/manual-link/") + list(APPEND OGRE2_PATHS "${_rootPath}/lib") + list(APPEND OGRE2_PATHS "${_rootPath}/lib/manual-link") list(APPEND OGRE2_INC_PATHS "${_rootPath}/include/${OGRE2_SEARCH_VER}") endforeach() find_library(OGRE2_LIBRARY - NAMES "OgreMain" + NAMES + "OgreNextMain" + "OgreNextMainStatic" + "OgreNextMain_d" + "OgreNextMainStatic_d" + NAMES_PER_DIR HINTS ${OGRE2_PATHS} NO_DEFAULT_PATH) @@ -450,8 +459,11 @@ else() #PkgConfig_FOUND find_library(${PREFIX}_LIBRARY NAMES - "Ogre${COMPONENT}" - "Ogre${COMPONENT}_d" + "OgreNext${COMPONENT}" + "OgreNext${COMPONENT}_d" + "OgreNext${COMPONENT}Static" + "OgreNext${COMPONENT}Static_d" + NAMES_PER_DIR HINTS ${OGRE2_LIBRARY_DIRS} NO_DEFAULT_PATH) @@ -506,6 +518,7 @@ else() #PkgConfig_FOUND ogre_find_component(Overlay OgreOverlaySystem.h "Overlay") ogre_find_component(HlmsPbs OgreHlmsPbs.h Hlms/Pbs/) ogre_find_component(HlmsUnlit OgreHlmsUnlit.h Hlms/Unlit) + ogre_find_component(PlanarReflections OgrePlanarReflections.h PlanarReflections) ogre_find_plugin(Plugin_ParticleFX OgreParticleFXPrerequisites.h PlugIns/ParticleFX/include) ogre_find_plugin(RenderSystem_GL3Plus OgreGL3PlusRenderSystem.h RenderSystems/GL3Plus/include) @@ -521,7 +534,7 @@ else() #PkgConfig_FOUND if(${HLMS_POS} GREATER -1) foreach (dir ${OGRE2_INCLUDE_DIRS}) get_filename_component(dir_name "${dir}" NAME) - if ("${dir_name}" STREQUAL "OGRE-${OGRE2_VERSION_MAJOR}.${OGRE2_VERSION_MINOR}") + if ("${dir_name}" STREQUAL "OGRE-Next") set(dir_include "${dir}/Hlms/Common") if (EXISTS ${dir_include}) list(APPEND component_INCLUDE_DIRS ${dir_include}) ================================================ FILE: ports/gz-cmake/gz-find-package.diff ================================================ diff --git a/cmake/GzFindPackage.cmake b/cmake/GzFindPackage.cmake index 93da803..c16e3ba 100644 --- a/cmake/GzFindPackage.cmake +++ b/cmake/GzFindPackage.cmake @@ -177,6 +177,8 @@ macro(gz_find_package PACKAGE_NAME_) if(gz_find_package_EXACT) list(APPEND ${PACKAGE_NAME}_find_package_args EXACT) + elseif(gz_find_package_VERSION AND NOT gz_find_package_PKGCONFIG_VER_COMPARISON) + set(gz_find_package_PKGCONFIG_VER_COMPARISON >=) endif() if(gz_find_package_CONFIG) @@ -344,7 +346,7 @@ macro(gz_find_package PACKAGE_NAME_) # ${component}_CMAKE_DEPENDENCIES variables that are specific to those # componenets foreach(component ${gz_find_package_REQUIRED_BY}) - if(NOT ${component}_${PACKAGE_NAME}_PRIVATE) + if(NOT ${component}_${PACKAGE_NAME}_PRIVATE OR NOT BUILD_SHARED_LIBS) gz_string_append(${component}_CMAKE_DEPENDENCIES "${${PACKAGE_NAME}_find_dependency}" DELIM "\n") endif() endforeach() ================================================ FILE: ports/gz-cmake/gz-import-target.diff ================================================ diff --git a/cmake/GzImportTarget.cmake b/cmake/GzImportTarget.cmake index 934df6d..aba4129 100644 --- a/cmake/GzImportTarget.cmake +++ b/cmake/GzImportTarget.cmake @@ -83,6 +83,15 @@ macro(gz_import_target package) set(gz_import_target_CFLAGS_VAR ${package}_CFLAGS) endif() + # In vcpkg, some _LIBRARIES carry targets. Example: BULLET_LIBRARIES + # Targets must not be used for IMPORTED_LOCATION or IMPORTED_IMPLIB. + if(NOT gz_import_target_INTERFACE) + list(GET "${gz_import_target_LIB_VAR}" 0 gz_import_target_first_item) + if(TARGET "${gz_import_target_first_item}") + set(gz_import_target_INTERFACE TRUE) + endif() + endif() + #------------------------------------ # Link against this "imported" target by saying # target_link_libraries(mytarget package::package), instead of linking ================================================ FILE: ports/gz-cmake/lock-dependencies.diff ================================================ diff --git a/cmake/GzConfigureBuild.cmake b/cmake/GzConfigureBuild.cmake index 3122c15..f64d695 100644 --- a/cmake/GzConfigureBuild.cmake +++ b/cmake/GzConfigureBuild.cmake @@ -265,6 +265,13 @@ macro(gz_configure_build) gz_string_append(skip_msg "by user request") elseif(${component}_MISSING_DEPS) gz_string_append(skip_msg "because the following packages are missing: ${${component}_MISSING_DEPS}") + if(NOT DEFINED GZ_LOCK_DEPENDENCIES OR "${GZ_LOCK_DEPENDENCIES}") + message(SEND_ERROR "Vcpkg ports must lock dependencies." + " To enable ${component}, provide missing dependencies." + " To disable ${component}, pass -DSKIP_${component}=true." + " To disable this check, pass -DGZ_LOCK_DEPENDENCIES=OFF." + ) + endif() endif() message(STATUS "${skip_msg}") ================================================ FILE: ports/gz-cmake/pkg-check-modules.diff ================================================ diff --git a/cmake/GzPkgConfig.cmake b/cmake/GzPkgConfig.cmake index 5fcdb76..9ff169c 100644 --- a/cmake/GzPkgConfig.cmake +++ b/cmake/GzPkgConfig.cmake @@ -105,6 +105,7 @@ macro(gz_pkg_check_modules_quiet package signature) unset(${package}_LIBRARIES) pkg_check_modules(${package} + IMPORTED_TARGET ${gz_pkg_check_modules_quiet_arg} ${gz_pkg_check_modules_no_cmake_environment_path_arg} ${signature}) @@ -155,15 +156,13 @@ macro(gz_pkg_check_modules_quiet package signature) # # TODO: How would we deal with multiple modules that are in different # directories? How does cmake-3.6+ handle that situation? - _gz_pkgconfig_find_libraries( - ${package}_LIBRARIES - ${package} - "${${package}_LIBRARIES}" - "${${package}_LIBRARY_DIRS}") - - include(GzImportTarget) - gz_import_target(${package} ${_gz_pkg_check_modules_interface_option} - TARGET_NAME ${gz_pkg_check_modules_TARGET_NAME}) + + if(NOT TARGET ${gz_pkg_check_modules_TARGET_NAME}) + add_library(${gz_pkg_check_modules_TARGET_NAME} INTERFACE IMPORTED) + set_target_properties(${gz_pkg_check_modules_TARGET_NAME} PROPERTIES + INTERFACE_LINK_LIBRARIES PkgConfig::${package} + ) + endif() endif() ================================================ FILE: ports/gz-cmake/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 c22d942880acdd9de5613e7ebf71395d3b1bc9b70543fbcf284ccf271f593e198c9918a1c6883288d39b4c022fcb206d8b4f626fb11460d421efc2751b2e8d7c PATCHES find-modules.diff gz-find-package.diff gz-import-target.diff lock-dependencies.diff pkg-check-modules.diff ) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/gz-cmake/usage ================================================ gz-cmake provides CMake integration: find_package(gz-cmake@VERSION_MAJOR@ REQUIRED) gz_configure_project(...) ================================================ FILE: ports/gz-cmake/vcpkg.json ================================================ { "name": "gz-cmake", "version": "4.2.1", "description": "CMake helper functions for building robotic applications", "homepage": "https://gazebosim.org/libs/cmake/", "license": null, "dependencies": [ { "name": "ignition-modularscripts", "host": true } ] } ================================================ FILE: ports/gz-common/003-include-chrono.patch ================================================ diff --git a/events/include/gz/common/Event.hh b/events/include/gz/common/Event.hh index a86c3ac07..936417d74 100644 --- a/events/include/gz/common/Event.hh +++ b/events/include/gz/common/Event.hh @@ -18,6 +18,7 @@ #define GZ_COMMON_EVENT_HH_ #include +#include #include #include #include ================================================ FILE: ports/gz-common/gdal-3.11.diff ================================================ diff --git a/geospatial/src/Dem.cc b/geospatial/src/Dem.cc index 88d541d..74eb78c 100644 --- a/geospatial/src/Dem.cc +++ b/geospatial/src/Dem.cc @@ -389,7 +389,6 @@ bool Dem::GeoReference(double _x, double _y, { gzerr << "Unable to transform terrain coordinate system for " << "coordinates (" << _x << "," << _y << ")" << std::endl; - OCTDestroyCoordinateTransformation(cT); return false; } @@ -401,7 +400,7 @@ bool Dem::GeoReference(double _x, double _y, _latitude.SetDegree(yGeoDeg); _longitude.SetDegree(xGeoDeg); - OCTDestroyCoordinateTransformation(cT); + delete cT; } else { ================================================ FILE: ports/gz-common/gz-utils3-log.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ae68cb7..9c5f952 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,7 @@ set(GZ_MATH_VER ${gz-math8_VERSION_MAJOR}) #-------------------------------------- # Find gz-utils gz_find_package(gz-utils3 REQUIRED COMPONENTS log) +list(APPEND PROJECT_PKGCONFIG_REQUIRES_PRIVATE gz-utils3-log) set(GZ_UTILS_VER ${gz-utils3_VERSION_MAJOR}) #-------------------------------------- ================================================ FILE: ports/gz-common/gz_remotery_vis.patch ================================================ diff --git a/profiler/src/CMakeLists.txt b/profiler/src/CMakeLists.txt --- a/profiler/src/CMakeLists.txt +++ b/profiler/src/CMakeLists.txt @@ -116,7 +116,7 @@ install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/gz_remotery_vis - DESTINATION ${GZ_PROFILER_SCRIPT_PATH}) + DESTINATION ${CMAKE_INSTALL_PREFIX}/tools/gz-common${PROJECT_VERSION_MAJOR}) install(DIRECTORY Remotery/vis/ DESTINATION ${GZ_PROFILER_VIS_PATH}) endif() ================================================ FILE: ports/gz-common/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 fb94b496ce351771acaaff9e7476ff09e3536a3bbfd63404350a3be4ea32d52aec7564c9ef97c99c696342eefa2e0e4efa58f4d1bb0d70ea18677785f7b5d9ca PATCHES gz-utils3-log.diff gz_remotery_vis.patch pthread.diff gdal-3.11.diff ) ================================================ FILE: ports/gz-common/pthread.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c5f952..d44132e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,10 @@ endif() #============================================================================ message(STATUS "\n\n-- ====== Finding Dependencies ======") +gz_find_package(Threads REQUIRED IGNORE_PKGCONFIG) +add_library(pthread ALIAS Threads::Threads) +list(APPEND PROJECT_PKGCONFIG_LIBS_PRIVATE "${CMAKE_THREAD_LIBS_INIT}") + #-------------------------------------- # Find gz-math gz_find_package(gz-math8 REQUIRED_BY geospatial graphics events) ================================================ FILE: ports/gz-common/vcpkg.json ================================================ { "name": "gz-common", "version": "6.3.0", "description": "Common libraries for robotics applications", "homepage": "https://gazebosim.org/libs/common/", "license": "Apache-2.0", "dependencies": [ "assimp", { "name": "dlfcn-win32", "platform": "windows | uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avdevice", "avformat", "swscale" ] }, "freeimage", { "name": "gdal", "default-features": false }, "gz-cmake", "gz-math", "gz-utils", { "name": "ignition-modularscripts", "host": true }, { "name": "libuuid", "platform": "!windows & !osx" }, "tinyxml2" ] } ================================================ FILE: ports/gz-fuel-tools/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 e6017537f2cc9ea76b3b577231e9819e58e8c463db1994da9483ac4e3c4c88e8ef503d7159e42b64519d988c4e20c37d4e76587e9a948feebc4b12ed41e0d68b OPTIONS PATCHES remove_docs.patch ) ================================================ FILE: ports/gz-fuel-tools/remove_docs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,8 @@ +if(0) #============================================================================ # gz command line support #============================================================================ add_subdirectory(conf) +endif(0) @@ -95,7 +95,9 @@ +if(0) gz_create_docs( API_MAINPAGE_MD "${CMAKE_BINARY_DIR}/api.md" TUTORIALS_MAINPAGE_MD "${CMAKE_BINARY_DIR}/tutorials.md" TAGFILES "${GZ-COMMON_DOXYGEN_TAGFILE} = ${GZ-COMMON_API_URL}" ) +endif(0) ================================================ FILE: ports/gz-fuel-tools/vcpkg.json ================================================ { "name": "gz-fuel-tools", "version": "10.1.0", "description": "Tools for using fuel API to download robot models", "homepage": "https://gazebosim.org/libs/fuel_tools", "license": null, "dependencies": [ "curl", "gz-cmake", "gz-common", "gz-msgs", { "name": "ignition-modularscripts", "host": true }, "jsoncpp", "libyaml", "libzip", "tinyxml2" ] } ================================================ FILE: ports/gz-gui/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c7c7f509..2f2265a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,10 +81,11 @@ set(GZ_TOOLS_VER 2) #-------------------------------------- # Find QT -set(QT_MAJOR_VERSION 5) -set(QT_MINOR_VERSION 15) -gz_find_package (Qt${QT_MAJOR_VERSION} - VERSION ${QT_MAJOR_VERSION}.${QT_MINOR_VERSION} +set(qt_pkgconfig "Qt5Core Qt5Quick Qt5QuickControls2 Qt5Widgets") +if(WIN32 OR APPLE) +set(qt_pkgconfig "") +endif() +gz_find_package (Qt5 COMPONENTS Core Quick @@ -92,8 +93,7 @@ gz_find_package (Qt${QT_MAJOR_VERSION} Widgets Test REQUIRED - PKGCONFIG_VER_COMPARISON >= - PKGCONFIG "Qt${QT_MAJOR_VERSION}Core Qt${QT_MAJOR_VERSION}Quick Qt${QT_MAJOR_VERSION}QuickControls2 Qt${QT_MAJOR_VERSION}Widgets") + PKGCONFIG ${qt_pkgconfig}) add_compile_definitions(QT_DISABLE_DEPRECATED_UP_TO=0x050F00) set(GZ_GUI_PLUGIN_RELATIVE_INSTALL_DIR ================================================ FILE: ports/gz-gui/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 154d8e6149f762d7f32cebde2b41e17b42846b65a643a7216cabde93644ae821d626b10ba3a9faf9fe39c404976489cf726896e3373daf2598177b6738d76545 OPTIONS PATCHES dependencies.patch ) if(VCPKG_TARGET_IS_WINDOWS) file(GLOB plugins "${CURRENT_PACKAGES_DIR}/lib/${PORT}-${VERSION_MAJOR}/plugins/*.dll") if (NOT plugins STREQUAL "") file(COPY ${plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/engine-plugins/") file(REMOVE ${plugins}) endif() file(GLOB plugins_debug "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}-${VERSION_MAJOR}/plugins/*.dll") if (NOT plugins_debug STREQUAL "") file(COPY ${plugins_debug} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/engine-plugins/") file(REMOVE ${plugins_debug}) endif() endif() ================================================ FILE: ports/gz-gui/vcpkg.json ================================================ { "name": "gz-gui", "version": "9.0.2", "port-version": 1, "description": "Gazebo GUI builds on top of Qt to provide widgets which are useful when developing robotics applications, such as a 3D view, plots, dashboard, etc, and can be used together in a convenient unified interface.", "homepage": "https://gazebosim.org/libs/gui", "license": "Apache-2.0", "dependencies": [ "gz-cmake", "gz-common", "gz-math", "gz-msgs", "gz-plugin", "gz-rendering", "gz-transport", "gz-utils", { "name": "ignition-modularscripts", "host": true }, "protobuf", { "name": "qt5-base", "default-features": false }, { "name": "qt5-quickcontrols2", "default-features": false }, "sdformat", "tinyxml2" ] } ================================================ FILE: ports/gz-math/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 c57f56f39f7b9f37883320887c266e6451dd94659228e309c51764e1a7f29662339e88ef3dc4de01b989ec60afcd217cd770ba12cde181967b2ea0f332bc0fc4 OPTIONS -DSKIP_SWIG=ON -DSKIP_PYBIND11=ON -DBUILD_DOCS=OFF ) ================================================ FILE: ports/gz-math/vcpkg.json ================================================ { "name": "gz-math", "version": "8.2.1", "description": "Math API for robotic applications", "homepage": "https://ignitionrobotics.org/libs/math", "license": null, "dependencies": [ "eigen3", "gz-cmake", "gz-utils", { "name": "ignition-modularscripts", "host": true } ] } ================================================ FILE: ports/gz-msgs/cmake-project-include.cmake ================================================ if(MSVC) add_compile_options("/bigobj") endif() ================================================ FILE: ports/gz-msgs/move_bin_to_tools.patch ================================================ diff --git a/gz-msgs-extras.cmake.in b/gz-msgs-extras.cmake.in index 7c322b1..78cf807 100644 --- a/gz-msgs-extras.cmake.in +++ b/gz-msgs-extras.cmake.in @@ -33,7 +33,7 @@ set(FACTORY_SCRIPT_NAME "@PROJECT_NAME@_generate_factory.py") set(@PROJECT_NAME@_PROTO_PATH ${@PROJECT_NAME@_INSTALL_PATH}/share/protos) # Provide support to override generator executable used during cross-compilation if(NOT DEFINED @PROJECT_NAME@_PROTO_GENERATOR_PLUGIN) - set(@PROJECT_NAME@_PROTO_GENERATOR_PLUGIN ${@PROJECT_NAME@_INSTALL_PATH}/bin/${PROTOC_NAME}) + set(@PROJECT_NAME@_PROTO_GENERATOR_PLUGIN ${VCPKG_IMPORT_PREFIX}/tools/@PROJECT_NAME@/${PROTOC_NAME}) endif() if(NOT DEFINED @PROJECT_NAME@_PROTOC_EXECUTABLE) set(@PROJECT_NAME@_PROTOC_EXECUTABLE protobuf::protoc) @@ -41,8 +41,8 @@ endif() if(NOT DEFINED @PROJECT_NAME@_PYTHON_INTERPRETER) set(@PROJECT_NAME@_PYTHON_INTERPRETER Python3::Interpreter) endif() -set(@PROJECT_NAME@_PROTO_GENERATOR_SCRIPT ${@PROJECT_NAME@_INSTALL_PATH}/bin/${PROTO_SCRIPT_NAME}) -set(@PROJECT_NAME@_FACTORY_GENERATOR_SCRIPT ${@PROJECT_NAME@_INSTALL_PATH}/bin/${FACTORY_SCRIPT_NAME}) +set(@PROJECT_NAME@_PROTO_GENERATOR_SCRIPT ${VCPKG_IMPORT_PREFIX}/tools/@PROJECT_NAME@/${PROTO_SCRIPT_NAME}) +set(@PROJECT_NAME@_FACTORY_GENERATOR_SCRIPT ${VCPKG_IMPORT_PREFIX}/tools/@PROJECT_NAME@/${FACTORY_SCRIPT_NAME}) ################################################## # A function to generate a target message library from a group of protobuf files . ================================================ FILE: ports/gz-msgs/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX REPLACE "^gz-" "" PACKAGE_NAME "${PORT}") set(options "") if(VCPKG_CROSSCOMPILING) list(APPEND options "-Dgz-msgs${VERSION_MAJOR}_PROTO_GENERATOR_PLUGIN=${CURRENT_HOST_INSTALLED_DIR}/tools/gz-msgs${VERSION_MAJOR}/gz-msgs${VERSION_MAJOR}_protoc_plugin${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-Dgz-msgs${VERSION_MAJOR}_PROTOC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() vcpkg_find_acquire_program(PYTHON3) ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 43c75eb30f00708c54f3de54737a4f1bda4a77a1d1ca3ba1354270beb01db078e73b909fdebb33b938a45a9808d4d2f2c164efe01c98aaec7a88003c85fab6f9 OPTIONS ${options} "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" "-DPython3_EXECUTABLE=${PYTHON3}" PATCHES remove_ruby.patch move_bin_to_tools.patch pthread.diff ) file(GLOB python_files_debug "${CURRENT_PACKAGES_DIR}/debug/bin/${PORT}${VERSION_MAJOR}_*.py") file(GLOB python_files_release "${CURRENT_PACKAGES_DIR}/bin/${PORT}${VERSION_MAJOR}_*.py") file(COPY ${python_files_release} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}${VERSION_MAJOR}") file(REMOVE ${python_files_release} ${python_files_debug}) vcpkg_copy_tools(TOOL_NAMES "${PORT}${VERSION_MAJOR}_protoc_plugin" AUTO_CLEAN DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}${VERSION_MAJOR}" ) ================================================ FILE: ports/gz-msgs/pthread.diff ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 951b72d..0547ee0 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -12,7 +12,12 @@ target_include_directories(${PROTOC_PLUGIN} PRIVATE ${PROTOBUF_INCLUDE_DIR}) target_compile_features(${PROTOC_PLUGIN} PRIVATE ${GZ_CXX_11_FEATURES}) if (UNIX) - target_link_libraries(${PROTOC_PLUGIN} pthread) + set(THREADS_PREFER_PTHREAD_FLAG ON) + gz_find_package(Threads REQUIRED PKGCONFIG_IGNORE) + if(CMAKE_THREAD_LIBS_INIT) + gz_string_append(PROJECT_PKGCONFIG_LIBS ${CMAKE_THREAD_LIBS_INIT}) + endif() + target_link_libraries(${PROTOC_PLUGIN} Threads::Threads) endif() install(TARGETS ${PROTOC_PLUGIN} DESTINATION ${GZ_BIN_INSTALL_DIR}) ================================================ FILE: ports/gz-msgs/remove_ruby.patch ================================================ diff --git a/core/cmd/CMakeLists.txt b/core/cmd/CMakeLists.txt index 736f537..ace3d77 100644 --- a/core/cmd/CMakeLists.txt +++ b/core/cmd/CMakeLists.txt @@ -9,6 +9,7 @@ set(EXE_INSTALL_DIR ${CMAKE_INSTALL_LIBEXECDIR}/gz/${GZ_DESIGNATION}${PROJECT_VE install(TARGETS ${msgs_executable} DESTINATION ${EXE_INSTALL_DIR}) set(executable_location "../../../${EXE_INSTALL_DIR}/$") +if(0) set(cmd_script_generated "${CMAKE_CURRENT_BINARY_DIR}/cmd${GZ_DESIGNATION}${PROJECT_VERSION_MAJOR}.rb") set(cmd_script_configured "${cmd_script_generated}.configured") @@ -23,6 +24,7 @@ file(GENERATE install(FILES ${cmd_script_generated} DESTINATION lib/ruby/gz) +endif() #=============================================================================== # Bash completion ================================================ FILE: ports/gz-msgs/vcpkg.json ================================================ { "name": "gz-msgs", "version": "11.1.0", "port-version": 1, "description": "Protobuf messages and functions for robot applications", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "gz-cmake", "gz-math", { "name": "gz-msgs", "host": true }, { "name": "ignition-modularscripts", "host": true }, "protobuf", { "name": "protobuf", "host": true }, "tinyxml2" ] } ================================================ FILE: ports/gz-physics/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b16b4dd..3c44e8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,10 +85,14 @@ gz_find_package(DART #-------------------------------------- # Find bullet for the bullet plugin wrapper +set(bullet_pkgconfig PKGCONFIG bullet) +if(WIN32) + set(bullet_pkgconfig PKGCONFIG_IGNORE) +endif() gz_find_package(GzBullet VERSION 2.87 REQUIRED_BY bullet bullet-featherstone - PKGCONFIG bullet + ${bullet_pkgconfig} PKGCONFIG_VER_COMPARISON >=) message(STATUS "-------------------------------------------\n") ================================================ FILE: ports/gz-physics/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 a3c8d28e552ae1f4d0fa1639638c862a09324dda484f95c9c6edf5a77eeb37528e84d53e22e59a6e27ab5229ea1fd94cf45ccfb6b53ac759aad12c40e4fe6bd9 PATCHES dependencies.patch ) if(VCPKG_TARGET_IS_WINDOWS) file(GLOB plugins "${CURRENT_PACKAGES_DIR}/lib/${PORT}-${VERSION_MAJOR}/engine-plugins/*.dll") if (NOT plugins STREQUAL "") file(COPY ${plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/engine-plugins/") file(REMOVE ${plugins}) endif() file(GLOB plugins_debug "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}-${VERSION_MAJOR}/engine-plugins/*.dll") if (NOT plugins_debug STREQUAL "") file(COPY ${plugins_debug} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/engine-plugins/") file(REMOVE ${plugins_debug}) endif() endif() ================================================ FILE: ports/gz-physics/vcpkg.json ================================================ { "name": "gz-physics", "version": "8.3.0", "port-version": 1, "description": "component of Gazebo, provides an abstract physics interface designed to support simulation and rapid development of robot applications.", "homepage": "https://gazebosim.org/libs/physics", "license": "Apache-2.0", "dependencies": [ "bullet3", { "name": "dartsim", "features": [ "collision-bullet", "collision-ode", "utils", "utils-urdf" ] }, "eigen3", "gz-cmake", "gz-common", "gz-math", "gz-plugin", "gz-utils", { "name": "ignition-modularscripts", "host": true }, "sdformat" ] } ================================================ FILE: ports/gz-plugin/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 fa9f408ac78ad2713fa278048e8b641836aec902530a2e1cece204969c14d9f194aaebb35417fc2b0e552afea9f86223794449cca4505bbb99b3ab7b54caf045 OPTIONS PATCHES ) ================================================ FILE: ports/gz-plugin/vcpkg.json ================================================ { "name": "gz-plugin", "version": "3.1.0", "description": "Library for registering plugin libraries and dynamically loading them at runtime", "homepage": "https://ignitionrobotics.org/libs/plugin", "license": null, "supports": "!arm & !android", "dependencies": [ { "name": "dlfcn-win32", "platform": "windows | uwp" }, "gz-cmake", "gz-utils", { "name": "ignition-modularscripts", "host": true } ] } ================================================ FILE: ports/gz-rendering/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 96ce8913..4ef6b63c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,13 +55,13 @@ set(GZ_UTILS_VER ${gz-utils3_VERSION_MAJOR}) if (APPLE) gz_find_package(OpenGL REQUIRED_BY ogre ogre2 - PKGCONFIG gl) + ) else() gz_find_package(OpenGL REQUIRED COMPONENTS OpenGL OPTIONAL_COMPONENTS EGL REQUIRED_BY ogre ogre2 - PKGCONFIG gl) + PKGCONFIG opengl) endif() if (OpenGL_FOUND) @@ -70,6 +70,7 @@ endif() #-------------------------------------- # Find OGRE +if(0) list(APPEND gz_ogre_components "RTShaderSystem" "Terrain" "Overlay" "Paging") gz_find_package(GzOGRE VERSION 1.9.0 @@ -87,6 +88,7 @@ if (NOT USE_UNOFFICIAL_OGRE_VERSIONS) "could be reduced to accepting patches for newer versions") endif() endif() +endif() if (OGRE_FOUND) # find boost - mainly needed on macOS and also by the terrain component diff --git a/ogre2/src/terrain/Terra/CMakeLists.txt b/ogre2/src/terrain/Terra/CMakeLists.txt --- a/ogre2/src/terrain/Terra/CMakeLists.txt +++ b/ogre2/src/terrain/Terra/CMakeLists.txt @@ -1,6 +1,6 @@ -project(terra) +project(terra9) file( GLOB_RECURSE TERRA_SOURCES ${CMAKE_CURRENT_LIST_DIR}/include/*.h ${CMAKE_CURRENT_LIST_DIR}/src/*.cpp @@ -32,8 +32,10 @@ # we must add this one manually for this to build correctly ${OGRE2_INCLUDE}/Hlms/Pbs ${OGRE2_INCLUDE}/Hlms/Common PUBLIC - ${CMAKE_CURRENT_LIST_DIR}/include + $ + $ ) target_link_libraries(${PROJECT_NAME} PRIVATE GzOGRE2::GzOGRE2) +install(TARGETS ${PROJECT_NAME} EXPORT gz-rendering9-ogre2) diff --git a/ogre2/src/CMakeLists.txt b/ogre2/src/CMakeLists.txt --- a/ogre2/src/CMakeLists.txt +++ b/ogre2/src/CMakeLists.txt @@ -58,9 +58,9 @@ gz-math${GZ_MATH_VER}::eigen3 PRIVATE gz-plugin${GZ_PLUGIN_VER}::register ${OPENGL_LIBRARIES} - terra + terra9 GzOGRE2::GzOGRE2) if (TARGET OpenGL::EGL) ================================================ FILE: ports/gz-rendering/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 9fc6c9ffd7cfb6290d43ecbe572b41d78251af802400244b5ffa9b0ff5dc7e54462d169aec0a4009b52049df32650c6349d8d7a2287771746098512270f098c0 OPTIONS PATCHES fix-dependencies.patch ) if(VCPKG_TARGET_IS_WINDOWS) file(GLOB plugins "${CURRENT_PACKAGES_DIR}/lib/${PORT}-${VERSION_MAJOR}/engine-plugins/*.dll") if (NOT plugins STREQUAL "") file(COPY ${plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/bin/engine-plugins/") file(REMOVE ${plugins}) endif() file(GLOB plugins_debug "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}-${VERSION_MAJOR}/engine-plugins/*.dll") if (NOT plugins_debug STREQUAL "") file(COPY ${plugins_debug} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/engine-plugins/") file(REMOVE ${plugins_debug}) endif() endif() ================================================ FILE: ports/gz-rendering/vcpkg.json ================================================ { "name": "gz-rendering", "version": "9.5.0", "port-version": 1, "description": "Gazebo Rendering is a C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.", "homepage": "https://gazebosim.org/libs/rendering", "license": "Apache-2.0", "dependencies": [ "freeimage", "gz-cmake", "gz-common", "gz-math", "gz-plugin", "gz-utils", { "name": "ignition-modularscripts", "host": true }, { "name": "ogre-next", "features": [ "planar-reflections" ] }, "opengl" ] } ================================================ FILE: ports/gz-sensors/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 e4a049dc7200f7fc5727c9e500abb48f6fcbec48555a2bae116bf7ff2d3d78a86e129a583243bcf598446fc6317b4bf7ffbf7c8dc64246a429a8987380f05afb OPTIONS PATCHES ) ================================================ FILE: ports/gz-sensors/vcpkg.json ================================================ { "name": "gz-sensors", "version": "9.2.0", "port-version": 1, "description": "Component of Gazebo, provides numerous sensor models designed to generate realistic data from simulation environments.", "homepage": "https://gazebosim.org/libs/sensors", "license": "Apache-2.0", "dependencies": [ "gz-cmake", "gz-common", "gz-math", "gz-msgs", "gz-rendering", "gz-transport", { "name": "ignition-modularscripts", "host": true }, "protobuf", "sdformat" ] } ================================================ FILE: ports/gz-sim/cmake-project-include.cmake ================================================ if(MSVC) set(CMAKE_CXX_FLAGS "/bigobj ${CMAKE_CXX_FLAGS}") else() include(CheckLinkerFlag) check_linker_flag(CXX "LINKER:--no-keep-memory" HAVE_NO_KEEP_MEMORY) if(HAVE_NO_KEEP_MEMORY) add_link_options("$<$:LINKER:--no-keep-memory>") endif() check_linker_flag(CXX "LINKER:-Bsymbolic" HAVE_BSYMBOLIC) if(HAVE_BSYMBOLIC) add_link_options("$<$:LINKER:-Bsymbolic>") endif() endif() ================================================ FILE: ports/gz-sim/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f309499c..943f60d98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,7 +121,7 @@ gz_find_package (Qt5 Quick QuickControls2 REQUIRED - PKGCONFIG "Qt5Core Qt5Quick Qt5QuickControls2") +) #-------------------------------------- # Find gz-physics ================================================ FILE: ports/gz-sim/portfile.cmake ================================================ # This port is not tested in vcpkg's curated registry due to excessive memory consumption # that cause reliability problems for other customers. # It must be checked manually after updates. string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") set(PACKAGE_NAME gazebo) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 45125f324d65114264bb57afb99b11f3dab6110f95dad673ec992735c1c958b8fff2daefe90465b3b731499adac8a7e8e790c2a8cbf1e1d73a75ad8362ea4d43 OPTIONS -DSKIP_PYBIND11=ON "-DPython3_EXECUTABLE=${PYTHON3}" "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" PATCHES dependencies.patch ) IF(EXISTS "${CURRENT_PACKAGES_DIR}/lib/${PORT}-${VERSION_MAJOR}/") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/plugins") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${PORT}-${VERSION_MAJOR}/" "${CURRENT_PACKAGES_DIR}/plugins/${PORT}-${VERSION_MAJOR}/") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}-${VERSION_MAJOR}/") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/plugins") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}-${VERSION_MAJOR}/" "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}-${VERSION_MAJOR}/") endif() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB BIN_DLLS "${CURRENT_PACKAGES_DIR}/lib/${PORT}${VERSION_MAJOR}-*.dll") file(GLOB BIN_DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}${VERSION_MAJOR}-*.dll") file(COPY ${BIN_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin/") file(COPY ${BIN_DEBUG_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/") file(REMOVE_RECURSE ${BIN_DLLS} ${BIN_DEBUG_DLLS}) endif() ================================================ FILE: ports/gz-sim/vcpkg.json ================================================ { "name": "gz-sim", "version": "9.5.0", "port-version": 2, "description": "Gazebo Sim is an open source robotics simulator.", "homepage": "https://gazebosim.org/libs/sim", "license": "Apache-2.0", "dependencies": [ "gz-cmake", "gz-common", "gz-fuel-tools", "gz-gui", "gz-math", "gz-msgs", "gz-physics", "gz-plugin", "gz-rendering", "gz-sensors", "gz-transport", "gz-utils", { "name": "ignition-modularscripts", "host": true }, "sdformat" ] } ================================================ FILE: ports/gz-tools/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 d74eb686c05c62dea5303e629136a187aa09db67305cdc46577e8ff6dd420b70b074d25474669c9d3f1286d141d1e30cf9b4b32b726f0e6d2bae4dabc298160b PATCHES ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/gz-tools/vcpkg.json ================================================ { "name": "gz-tools", "version": "2.0.3", "port-version": 1, "description": "Gazebo tools provide the ign command line tool that accepts multiple subcommands.", "homepage": "https://gazebosim.org", "license": "Apache-2.0", "supports": "!(arm & windows) & !uwp", "dependencies": [ "gz-cmake", { "name": "ignition-modularscripts", "host": true } ] } ================================================ FILE: ports/gz-transport/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX REPLACE "^gz-" "" PACKAGE_NAME "${PORT}") vcpkg_find_acquire_program(PYTHON3) ignition_modular_library( NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 c006bc4eec27c863c24149cf5857d392cec8aa2be877fcf3f9b094d5fcab7eb656e61c84950507693c81eec1e3dc64edb23dc799a54125169e780f7b8fe10980 OPTIONS "-DPython3_EXECUTABLE=${PYTHON3}" -DSKIP_PYBIND11=ON PATCHES uuid-osx.patch ) ================================================ FILE: ports/gz-transport/uuid-osx.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c69aa0e..428bd0ac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,6 +111,8 @@ gz_find_package(CPPZMQ REQUIRED PRIVATE if (MSVC) set(skip_pybind11_default_value ON) message (STATUS "UUID: Using Windows RPC UuidCreate function\n") +elseif (APPLE) + message (STATUS "Use system uuid header") else() gz_find_package(UUID REQUIRED) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 13101c50..340e0e82 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,7 +21,7 @@ target_include_directories(${PROJECT_LIBRARY_TARGET_NAME} $) # Windows system library provides UUID -if (NOT MSVC) +if (NOT MSVC AND NOT APPLE) target_link_libraries(${PROJECT_LIBRARY_TARGET_NAME} PUBLIC UUID::UUID ================================================ FILE: ports/gz-transport/vcpkg.json ================================================ { "name": "gz-transport", "version": "14.2.0", "description": "Transport middleware for robotics", "license": null, "dependencies": [ "cppzmq", "gz-cmake", "gz-msgs", "gz-utils", { "name": "ignition-modularscripts", "host": true }, { "name": "libuuid", "platform": "!windows & !osx" }, "protobuf", "sqlite3", "zeromq" ] } ================================================ FILE: ports/gz-utils/portfile.cmake ================================================ string(REGEX MATCH "^[0-9]+" VERSION_MAJOR "${VERSION}") string(REGEX MATCH "^gz-([a-z-]+)" MATCHED_VALUE "${PORT}") set(PACKAGE_NAME "${CMAKE_MATCH_1}") ignition_modular_library(NAME "${PACKAGE_NAME}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" VERSION "${VERSION}" SHA512 83f570c9f091fa0434cc43d0b12c1d22d3949205d42d0ba60246585b8dbdbf03726ceddfc981b231086e69a28a307dc7b61bf4d8fbe87e3fdf64a8f562ff756d PATCHES ) ================================================ FILE: ports/gz-utils/vcpkg.json ================================================ { "name": "gz-utils", "version": "3.1.1", "description": "Ignition Utils, a component of Ignition Robotics, provides general purpose classes and functions designed for robotic applications.", "homepage": "https://gazebosim.org", "license": "Apache-2.0", "dependencies": [ "gz-cmake", { "name": "ignition-modularscripts", "host": true }, "spdlog" ] } ================================================ FILE: ports/gzip-hpp/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/gzip-hpp REF v0.1.0 SHA512 4f332f08e842583b421932f14ee736a64d090ac22fd4e4654e5d84667c2fd6dcd73206b27b7c0c4f364104af7f4a5ad765c38125574bc239fa93b0b0ec4dad56 HEAD_REF master ) file(COPY ${SOURCE_PATH}/include/gzip DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/gzip-hpp/vcpkg.json ================================================ { "name": "gzip-hpp", "version": "0.1.0", "port-version": 2, "description": "Gzip header-only C++ library", "homepage": "https://github.com/mapbox/gzip-hpp/", "dependencies": [ "zlib" ] } ================================================ FILE: ports/h3/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uber/h3 REF "v${VERSION}" SHA512 e8a87c109ba917887483c73b0410bfd11f9259815ba7f9b967779963c9a7a5c208d70f0d6f6ae586ff371feeab3e19d96273137b42fd03a84ae08965bb8ea643 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_BENCHMARKS=OFF -DBUILD_FUZZERS=OFF -DBUILD_FILTERS=OFF -DBUILD_GENERATORS=OFF -DBUILD_TESTING=OFF -DENABLE_DOCS=OFF -DENABLE_FORMAT=OFF -DENABLE_LINTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/h3/vcpkg.json ================================================ { "name": "h3", "version-semver": "4.4.1", "port-version": 1, "description": "A Hexagonal Hierarchical Geospatial Indexing System", "homepage": "https://github.com/uber/h3", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/h5py-lzf/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) project(h5py-lzf LANGUAGES C) find_package(hdf5 CONFIG REQUIRED) find_package(unofficial-liblzf CONFIG REQUIRED) add_library(h5py-lzf STATIC lzf_filter.c) target_include_directories(h5py-lzf PUBLIC $) target_link_libraries(h5py-lzf PRIVATE unofficial::liblzf::liblzf $,hdf5::hdf5-shared,hdf5::hdf5-static> ) install(FILES lzf_filter.h DESTINATION include) install(TARGETS h5py-lzf EXPORT unofficial-h5py-lzf-targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(EXPORT unofficial-h5py-lzf-targets NAMESPACE unofficial::h5py-lzf:: DESTINATION share/unofficial-h5py-lzf ) ================================================ FILE: ports/h5py-lzf/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO h5py/h5py REF ${VERSION} SHA512 6e63113223698c69e5c3c8214e07dce39872ee815ec15d3a217b9d9275463a3ca238c7375d6c566dd1079e937ae747b4af8f9302cac7b3019559bf149d7b6628 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/lzf/lzf") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/lzf") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/lzf" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-h5py-lzf) file(COPY "${CURRENT_PORT_DIR}/unofficial-h5py-lzf-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-h5py-lzf") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lzf/LICENSE.txt") ================================================ FILE: ports/h5py-lzf/unofficial-h5py-lzf-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(hdf5 CONFIG) find_dependency(unofficial-liblzf CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-h5py-lzf-targets.cmake") ================================================ FILE: ports/h5py-lzf/vcpkg.json ================================================ { "name": "h5py-lzf", "version": "3.15.1", "description": "The LZF filter is an alternative DEFLATE-style compressor for HDF5 datasets.", "homepage": "https://github.com/h5py/h5py/tree/master/lzf", "license": "BSD-3-Clause", "dependencies": [ { "name": "hdf5", "default-features": false }, "liblzf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/half/literal_operator.diff ================================================ diff --git a/include/half.hpp b/include/half.hpp index cb658f2..5c054c6 100644 --- a/include/half.hpp +++ b/include/half.hpp @@ -442,7 +442,7 @@ namespace half_float /// ~~~~ namespace literal { - half operator "" _h(long double); + half operator ""_h(long double); } #endif @@ -2261,7 +2261,7 @@ namespace half_float friend struct std::hash; #endif #if HALF_ENABLE_CPP11_USER_LITERALS - friend half literal::operator "" _h(long double); + friend half literal::operator ""_h(long double); #endif #endif }; @@ -2276,7 +2276,7 @@ namespace half_float /// \param value literal value /// \return half with of given value (possibly rounded) /// \exception FE_OVERFLOW, ...UNDERFLOW, ...INEXACT according to rounding - inline half operator "" _h(long double value) { return half(detail::binary, detail::float2half(value)); } + inline half operator ""_h(long double value) { return half(detail::binary, detail::float2half(value)); } } #endif ================================================ FILE: ports/half/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO half/half REF ${VERSION} FILENAME "half-${VERSION}.zip" NO_REMOVE_ONE_LEVEL SHA512 946b1663a736eb486f670ba9dfcc56b43b9e7fb195988174b7dd004bdd2e23aba7a395b8867b4f58c97e73a50edf845b703b8cfc35708a562e6a9d7e1b4f4204 PATCHES literal_operator.diff ) file(GLOB HEADER_FILES "${SOURCE_PATH}/include/*.hpp") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/half/usage ================================================ half is header-only and can be used from CMake via: find_path(HALF_INCLUDE_DIRS "half.hpp") target_include_directories(main PRIVATE ${HALF_INCLUDE_DIRS}) ================================================ FILE: ports/half/vcpkg.json ================================================ { "name": "half", "version": "2.2.1", "port-version": 1, "description": "C++ library for half precision floating point arithmetics.", "homepage": "https://sourceforge.net/projects/half/", "license": "MIT" } ================================================ FILE: ports/halide/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO halide/Halide REF "v${VERSION}" SHA512 ab684be4cb8bad7b46b8df5271efb37d3675344f689e37b7af1f12f584fba23318ed8f934156a8b99802b86bdebb55fac9cbcca193d58951ae0ace4816e4ec46 HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES target-aarch64 TARGET_AARCH64 target-amdgpu TARGET_AMDGPU target-arm TARGET_ARM target-d3d12compute TARGET_D3D12COMPUTE target-opengl-compute TARGET_OPENGLCOMPUTE target-hexagon TARGET_HEXAGON target-metal TARGET_METAL target-nvptx TARGET_NVPTX target-opencl TARGET_OPENCL target-powerpc TARGET_POWERPC target-riscv TARGET_RISCV target-webassembly TARGET_WEBASSEMBLY target-x86 TARGET_X86 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWITH_WABT=OFF -DWITH_V8=OFF -DWITH_DOCS=OFF -DWITH_PYTHON_BINDINGS=OFF -DWITH_TESTS=OFF -DWITH_TUTORIALS=OFF -DWITH_UTILS=OFF -DWITH_SERIALIZATION=OFF # Disable experimental serializer -DCMAKE_INSTALL_LIBDIR=bin "-DCMAKE_INSTALL_DATADIR=share/${PORT}" "-DHalide_INSTALL_CMAKEDIR=share/${PORT}" -DHalide_INSTALL_HELPERSDIR=share/HalideHelpers -DHalide_INSTALL_PLUGINDIR=bin -DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_JPEG=JPEG ) # ADD_BIN_TO_PATH needed to compile autoschedulers, # which use Halide.dll (and deps) during the build. vcpkg_cmake_install(ADD_BIN_TO_PATH) # Release mode MODULE targets in CMake don't get PDBs. # Exclude those to avoid warning with default globs. vcpkg_copy_pdbs( BUILD_PATHS "${CURRENT_PACKAGES_DIR}/bin/Halide.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/*.dll" ) vcpkg_cmake_config_fixup() vcpkg_cmake_config_fixup(PACKAGE_NAME HalideHelpers) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/halide/usage.in ================================================ The package halide provides CMake targets: set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_CXX_EXTENSIONS NO) find_package(Halide REQUIRED) # JIT mode: add_executable(my_halide_app main.cpp) target_link_libraries(my_halide_app PRIVATE Halide::Halide) # AOT mode: add_executable(my_generators my_generators.cpp) target_link_libraries(my_generators PRIVATE Halide::Generator) add_halide_library(my_first_generator FROM my_generators) add_halide_library(my_second_generator FROM my_generators PARAMS parallel=false scale=3.0 rotation=ccw output.type=uint16) add_halide_library(my_second_generator_2 FROM my_generators GENERATOR my_second_generator PARAMS scale=9.0 rotation=ccw output.type=float32) add_halide_library(my_second_generator_3 FROM my_generators GENERATOR my_second_generator PARAMS parallel=false output.type=float64) For more information see: https://github.com/halide/Halide/blob/@HALIDE_VERSION_TAG@/README_cmake.md ================================================ FILE: ports/halide/vcpkg.json ================================================ { "name": "halide", "version": "18.0.0", "port-version": 1, "description": "Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines.", "homepage": "https://github.com/halide/Halide", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "halide", "default-features": false, "features": [ "target-arm" ], "platform": "arm32" }, { "name": "halide", "default-features": false, "features": [ "target-aarch64" ], "platform": "arm64" }, { "name": "halide", "default-features": false, "features": [ "target-x86" ], "platform": "x86 | x64" }, { "name": "halide", "features": [ "target-all" ], "platform": "!x86 & !x64 & !arm" }, { "name": "llvm", "default-features": false, "features": [ "clang", "enable-rtti", "tools" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "target-aarch64": { "description": "Include AArch64 target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-aarch64" ] } ] }, "target-all": { "description": "Include all targets", "dependencies": [ { "name": "halide", "default-features": false, "features": [ "target-aarch64", "target-amdgpu", "target-arm", "target-d3d12compute", "target-hexagon", "target-metal", "target-nvptx", "target-opencl", "target-opengl-compute", "target-powerpc", "target-riscv", "target-webassembly", "target-x86" ] } ] }, "target-amdgpu": { "description": "Include AMDGPU target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-amdgpu" ] } ] }, "target-arm": { "description": "Include ARM target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-arm" ] } ] }, "target-d3d12compute": { "description": "Include Direct3D 12 Compute target" }, "target-hexagon": { "description": "Include Hexagon target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-hexagon" ] } ] }, "target-metal": { "description": "Include Metal target" }, "target-nvptx": { "description": "Include NVPTX target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-nvptx" ] } ] }, "target-opencl": { "description": "Include OpenCL-C target" }, "target-opengl-compute": { "description": "Include OpenGL Compute target" }, "target-powerpc": { "description": "Include PowerPC target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-powerpc" ] } ] }, "target-riscv": { "description": "Include RISCV target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-riscv" ] } ] }, "target-webassembly": { "description": "Include WebAssembly target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-webassembly" ] } ] }, "target-x86": { "description": "Include X86 target", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-x86" ] } ] } } } ================================================ FILE: ports/hanjingo-high-jump/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hanjingo/high-jump REF v${VERSION} SHA512 65081057674916833611dfbb11ba261477f1aebfd7291ed93b1722f8a36e327ad7d82db0b26f6776b73d5ceb862ca167954653adcc4e2374bf0f607eb0724c21 ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_LIB=OFF -DBUILD_EXAMPLE=OFF -DBUILD_TEST=OFF -DBUILD_BENCH=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hanjingo-high-jump/usage ================================================ hanjingo-high-jump provides CMake targets: find_package(hj CONFIG REQUIRED) target_link_libraries(myapp PRIVATE hj::hj) ================================================ FILE: ports/hanjingo-high-jump/vcpkg.json ================================================ { "name": "hanjingo-high-jump", "version": "1.0.4", "maintainers": [ "hanjingo", "hehehunanchina@live.com" ], "description": "Modern C++ library framework implemented by C++17. High-jump(hj) is a comprehensive C++ library providing utilities for algorithms, compression, cryptography, databases, encoding, hardware, I/O, logging, math, networking, OS operations, synchronization, testing, time handling, types, and more.", "homepage": "https://github.com/hanjingo/high-jump", "license": "GPL-3.0-only", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/happly/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nmwsharp/happly REF v${VERSION} SHA512 18dfcfebf3a374fae170c992c9e9a7409c12b41c092a3d261d37fdfcd1198060c1c2fe2a13820036b5d3b76dfa206b3f995e105313dc2da2f98fc53cc3781653 HEAD_REF master ) file( COPY ${SOURCE_PATH}/happly.h DESTINATION ${CURRENT_PACKAGES_DIR}/include ) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/happly/vcpkg.json ================================================ { "name": "happly", "version": "1.0.0", "description": "A header-only C++ reader/writer for the PLY file format.", "homepage": "https://github.com/nmwsharp/happly" } ================================================ FILE: ports/hareflow/fix-asio-error.patch ================================================ diff --git a/src/connection.cpp b/src/connection.cpp index da2c556..a6cd8ca 100644 --- a/src/connection.cpp +++ b/src/connection.cpp @@ -276,7 +276,7 @@ Connection::SslAdapter::SslAdapter(tcp_socket& wrapped_socket, const std::string if (verify_host) { m_context.set_default_verify_paths(); m_context.set_verify_mode(ssl::verify_peer); - m_context.set_verify_callback(ssl::rfc2818_verification(host)); + m_context.set_verify_callback(ssl::host_name_verification(host)); } m_stream = std::make_unique(wrapped_socket, m_context); } ================================================ FILE: ports/hareflow/fix-missing-headers.diff ================================================ diff --git a/include/hareflow/detail/accumulator.h b/include/hareflow/detail/accumulator.h index 1c1e0c5..6470870 100644 --- a/include/hareflow/detail/accumulator.h +++ b/include/hareflow/detail/accumulator.h @@ -6,6 +6,7 @@ #include #include #include +#include #include "hareflow/detail/internal_types.h" ================================================ FILE: ports/hareflow/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coveooss/hareflow REF "v${VERSION}" SHA512 96138675a37e381db97d963b339ab2d6472573d0e1d215bb485141d1a92be0c9658db1abb849d6e7849b396e9a877e5f0ed2ce332b68b44b7dda21536733158a HEAD_REF main PATCHES fix-asio-error.patch fix-missing-headers.diff ) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(rpath "@loader_path") else() set(rpath "\$ORIGIN") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_INSTALL_RPATH=${rpath}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/hareflow/vcpkg.json ================================================ { "name": "hareflow", "version-semver": "0.1.1", "port-version": 2, "description": "Hareflow: A RabbitMQ C++ stream client.", "homepage": "https://github.com/coveooss/hareflow", "license": "Apache-2.0", "dependencies": [ { "name": "boost-asio", "features": [ "ssl" ], "version>=": "1.78.0" }, { "name": "boost-endian", "version>=": "1.78.0" }, { "name": "fmt", "version>=": "8.0.1" }, { "name": "openssl", "version>=": "3.0.2#3" }, { "name": "qpid-proton", "version>=": "0.37.0#2" }, { "name": "vcpkg-cmake", "host": true, "version>=": "2021-02-28" }, { "name": "vcpkg-cmake-config", "host": true, "version>=": "2021-02-26" } ] } ================================================ FILE: ports/harfbuzz/fix-win32-build.patch ================================================ diff --git a/src/meson.build b/src/meson.build index 87e8962..bdfa797 100644 --- a/src/meson.build +++ b/src/meson.build @@ -387,6 +387,11 @@ hb_subset_sources = files( 'hb-subset.hh', ) +extra_hb_cpp_args = [] +if cpp.get_argument_syntax() == 'msvc' + extra_hb_cpp_args += ['/bigobj'] +endif + hb_subset_headers = files( 'hb-subset.h', 'hb-subset-serialize.h' ================================================ FILE: ports/harfbuzz/harfbuzzConfig.cmake.in ================================================ # For old projects where the minimum CMake version is lower than 3.3. cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) include(CMakeFindDependencyMacro) # Traditional find module variables (vcpkg polyfill) set(HARFBUZZ_INCLUDE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/harfbuzz" CACHE INTERNAL "") set(HARFBUZZ_INCLUDE_DIRS "${HARFBUZZ_INCLUDE_DIR}") set(HARFBUZZ_LIBRARY harfbuzz::harfbuzz CACHE INTERNAL "") set(HARFBUZZ_LIBRARIES harfbuzz::harfbuzz) if(TARGET harfbuzz) set(HARFBUZZ_FOUND TRUE) return() endif() add_library(harfbuzz UNKNOWN IMPORTED) add_library(harfbuzz::harfbuzz ALIAS harfbuzz) find_library(HARFBUZZ_LIBRARY_DEBUG NAMES harfbuzz PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(HARFBUZZ_LIBRARY_RELEASE NAMES harfbuzz PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(NOT HARFBUZZ_LIBRARY_DEBUG) set_target_properties(harfbuzz PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS "RELEASE" IMPORTED_LOCATION_RELEASE "${HARFBUZZ_LIBRARY_RELEASE}" ) else() set_target_properties(harfbuzz PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_RELEASE "${HARFBUZZ_LIBRARY_RELEASE}" IMPORTED_LOCATION_DEBUG "${HARFBUZZ_LIBRARY_DEBUG}" ) endif() set(HARFBUZZ_FEATURES @FEATURES@) if(APPLE) find_library(APPLICATIONSERVICES_LIBRARY ApplicationServices) if(APPLICATIONSERVICES_LIBRARY) target_link_libraries(harfbuzz INTERFACE ${APPLICATIONSERVICES_LIBRARY}) endif() endif() find_dependency(freetype CONFIG) target_link_libraries(harfbuzz INTERFACE freetype) if ("graphite2" IN_LIST HARFBUZZ_FEATURES) find_library(GRAPHITE2_LIBRARY_DEBUG NAMES graphite2 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(GRAPHITE2_LIBRARY_RELEASE NAMES graphite2 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(NOT GRAPHITE2_LIBRARY_DEBUG) target_link_libraries(harfbuzz INTERFACE "${GRAPHITE2_LIBRARY_RELEASE}") else() target_link_libraries(harfbuzz INTERFACE "$<$>:${GRAPHITE2_LIBRARY_RELEASE}>$<$:${GRAPHITE2_LIBRARY_DEBUG}>") endif() endif() if ("glib" IN_LIST HARFBUZZ_FEATURES) find_library(GLIB_LIBRARY_DEBUG NAMES glib glib-2.0 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(GLIB_LIBRARY_RELEASE NAMES glib glib-2.0 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(NOT GLIB_LIBRARY_DEBUG) target_link_libraries(harfbuzz INTERFACE "${GLIB_LIBRARY_RELEASE}") else() target_link_libraries(harfbuzz INTERFACE "$<$>:${GLIB_LIBRARY_RELEASE}>$<$:${GLIB_LIBRARY_DEBUG}>") endif() endif() if ("icu" IN_LIST HARFBUZZ_FEATURES) find_dependency(ICU 61 COMPONENTS uc) target_link_libraries(harfbuzz INTERFACE ICU::uc) endif() add_library(harfbuzz::harfbuzz-subset UNKNOWN IMPORTED) find_library(HARFBUZZ_SUBSET_LIBRARY_DEBUG NAMES harfbuzz-subset PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) find_library(HARFBUZZ_SUBSET_LIBRARY_RELEASE NAMES harfbuzz-subset PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(NOT HARFBUZZ_LIBRARY_DEBUG) set_target_properties(harfbuzz::harfbuzz-subset PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS "RELEASE" IMPORTED_LOCATION_RELEASE "${HARFBUZZ_SUBSET_LIBRARY_RELEASE}" ) else() set_target_properties(harfbuzz::harfbuzz-subset PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${HARFBUZZ_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_RELEASE "${HARFBUZZ_SUBSET_LIBRARY_RELEASE}" IMPORTED_LOCATION_DEBUG "${HARFBUZZ_SUBSET_LIBRARY_DEBUG}" ) endif() target_link_libraries(harfbuzz::harfbuzz-subset INTERFACE harfbuzz) ================================================ FILE: ports/harfbuzz/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO harfbuzz/harfbuzz REF ${VERSION} SHA512 27ef2976b89b50af8501b7dd51f9bc39b86da12a03da80d30644e202d3c23820f0c40adcab42537955cd7094356ead091c275c58251c308e598dd6c461083250 HEAD_REF master PATCHES fix-win32-build.patch ${ANDROID_LOCALECONV_L_PATCH} ) if("icu" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dicu=enabled) # Enable ICU library unicode functions else() list(APPEND FEATURE_OPTIONS -Dicu=disabled) endif() if("graphite2" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dgraphite=enabled) #Enable Graphite2 complementary shaper else() list(APPEND FEATURE_OPTIONS -Dgraphite=disabled) endif() if("coretext" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dcoretext=enabled) # Enable CoreText shaper backend on macOS else() list(APPEND FEATURE_OPTIONS -Dcoretext=disabled) endif() if("directwrite" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Ddirectwrite=enabled) # Enable DirectWrite support on Windows else() list(APPEND FEATURE_OPTIONS -Ddirectwrite=disabled) endif() if("glib" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dglib=enabled) # Enable GLib unicode functions list(APPEND FEATURE_OPTIONS -Dgobject=enabled) #Enable GObject bindings list(APPEND FEATURE_OPTIONS -Dchafa=disabled) else() list(APPEND FEATURE_OPTIONS -Dglib=disabled) list(APPEND FEATURE_OPTIONS -Dgobject=disabled) endif() if("cairo" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dcairo=enabled) # Enable Cairo graphics library support else() list(APPEND FEATURE_OPTIONS -Dcairo=disabled) endif() if("freetype" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dfreetype=enabled) #Enable freetype interop helpers else() list(APPEND FEATURE_OPTIONS -Dfreetype=disabled) endif() if("experimental-api" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dexperimental_api=true) #Enable experimental api else() list(APPEND FEATURE_OPTIONS -Dexperimental_api=false) endif() if("gdi" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -Dgdi=enabled) # enable gdi helpers and uniscribe shaper backend (windows only) endif() if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_DEBUG -Dgobject=enabled -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dgobject=enabled -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS -Dintrospection=disabled) endif() set(cxx_link_libraries "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") block(PROPAGATE cxx_link_libraries) vcpkg_list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_DEFAULT_VARS_TO_CHECK=CMAKE_C_IMPLICIT_LINK_LIBRARIES;CMAKE_CXX_IMPLICIT_LINK_LIBRARIES") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") list(REMOVE_ITEM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES ${VCPKG_DETECTED_CMAKE_C_IMPLICIT_LINK_LIBRARIES}) list(TRANSFORM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES PREPEND "-l") string(JOIN " " cxx_link_libraries ${VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) endblock() endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Ddocs=disabled # Generate documentation with gtk-doc -Dtests=disabled -Dbenchmark=disabled ${OPTIONS} OPTIONS_DEBUG ${OPTIONS_DEBUG} OPTIONS_RELEASE ${OPTIONS_RELEASE} ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' g-ir-compiler='${GIR_COMPILER}' g-ir-scanner='${GIR_SCANNER}' ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(cxx_link_libraries) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/harfbuzz.pc" "(Libs:[^\r\n]*)" "\\1 ${cxx_link_libraries}" REGEX ) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/harfbuzz.pc" "(Libs:[^\r\n]*)" "\\1 ${cxx_link_libraries}" REGEX ) endif() endif() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc" ) foreach(pc_file IN LISTS pc_files) vcpkg_replace_string("${pc_file}" "\\$\\{prefix\}\\/lib\\/([a-zA-Z0-9\-]*)\\.lib" "-l\\1" REGEX IGNORE_UNCHANGED ) endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake") configure_file("${CMAKE_CURRENT_LIST_DIR}/harfbuzzConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/harfbuzzConfig.cmake" @ONLY) vcpkg_list(SET TOOL_NAMES) if("glib" IN_LIST FEATURES) vcpkg_list(APPEND TOOL_NAMES hb-subset hb-shape hb-info hb-vector) if("cairo" IN_LIST FEATURES) vcpkg_list(APPEND TOOL_NAMES hb-view) endif() endif() if(TOOL_NAMES) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/harfbuzz/usage ================================================ harfbuzz provides CMake targets: find_package(harfbuzz CONFIG REQUIRED) # HarfBuzz font subsetter target_link_libraries(main PRIVATE harfbuzz::harfbuzz-subset) # HarfBuzz text shaping library target_link_libraries(main PRIVATE harfbuzz::harfbuzz) harfbuzz provides pkg-config modules: # HarfBuzz font subsetter harfbuzz-subset # HarfBuzz text shaping library harfbuzz ================================================ FILE: ports/harfbuzz/vcpkg.json ================================================ { "name": "harfbuzz", "version": "13.0.1", "description": "HarfBuzz OpenType text shaping engine", "homepage": "https://github.com/harfbuzz/harfbuzz", "license": "MIT-Modern-Variant", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ "freetype" ], "features": { "cairo": { "description": "Enable Cairo graphics library support", "dependencies": [ { "name": "cairo", "default-features": false, "features": [ "freetype" ] } ] }, "coretext": { "description": "Enable CoreText shaper backend on macOS", "supports": "osx" }, "directwrite": { "description": "Enable DirectWrite support on Windows", "supports": "windows" }, "experimental-api": { "description": "Enable experimental api" }, "freetype": { "description": "Enable FreeType support", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "gdi": { "description": "Enable GDI/Uniscribe support on Windows", "supports": "windows" }, "glib": { "description": "Glib Unicode callbacks support", "dependencies": [ "glib", { "name": "glib", "host": true } ] }, "graphite2": { "description": "Graphite2 shaper support", "dependencies": [ "graphite2" ] }, "icu": { "description": "icu support for harfbuzz", "dependencies": [ "icu" ] }, "introspection": { "description": "build with introspection", "supports": "!static", "dependencies": [ "gobject-introspection", { "name": "harfbuzz", "default-features": false, "features": [ "glib" ] } ] } } } ================================================ FILE: ports/hash-library/001-fix-macos.patch ================================================ Fixes includes of endian.h on MacOS, see https://github.com/stbrumme/hash-library/pull/4. diff --git a/crc32.cpp b/crc32.cpp --- a/crc32.cpp +++ b/crc32.cpp @@ -7,8 +7,10 @@ #include "crc32.h" // big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif diff --git a/keccak.cpp b/keccak.cpp --- a/keccak.cpp +++ b/keccak.cpp @@ -7,8 +7,10 @@ #include "keccak.h" // big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif diff --git a/md5.cpp b/md5.cpp --- a/md5.cpp +++ b/md5.cpp @@ -6,8 +6,10 @@ #include "md5.h" -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif diff --git a/sha1.cpp b/sha1.cpp --- a/sha1.cpp +++ b/sha1.cpp @@ -7,8 +7,10 @@ #include "sha1.h" // big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif diff --git a/sha256.cpp b/sha256.cpp --- a/sha256.cpp +++ b/sha256.cpp @@ -7,8 +7,10 @@ #include "sha256.h" // big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif diff --git a/sha3.cpp b/sha3.cpp --- a/sha3.cpp +++ b/sha3.cpp @@ -7,8 +7,10 @@ #include "sha3.h" // big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN -#ifndef _MSC_VER -#include +#if defined(__APPLE__) + #include +#elif !defined(_MSC_VER) + #include #endif #include ================================================ FILE: ports/hash-library/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5.1) project(hash-library CXX) set(HEADERS crc32.h hash.h hmac.h keccak.h md5.h sha1.h sha256.h sha3.h ) set(SRCS crc32.cpp keccak.cpp md5.cpp sha1.cpp sha256.cpp sha3.cpp ) add_library(hash-library ${SRCS}) target_include_directories(hash-library PUBLIC $ $) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/hash-library) endif() install( TARGETS hash-library EXPORT unofficial-hash-library-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT unofficial-hash-library-targets FILE unofficial-hash-library-targets.cmake NAMESPACE unofficial:: DESTINATION share/unofficial-hash-library ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-hash-library-config.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/unofficial-hash-library-targets.cmake)\n") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-hash-library-config.cmake" DESTINATION share/unofficial-hash-library) ================================================ FILE: ports/hash-library/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stbrumme/hash-library REF hash_library_v8 SHA512 1c428710c0c3e4d5d1114d757a5d9145ed12c7e2fbbfa51635f43a349ddb5634bdf49e8d8fdbc7576e90b319989fb85efec433bb43ddb551c2cf29a8e80ba78b HEAD_REF master PATCHES 001-fix-macos.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}" CONFIG_PATH "share/unofficial-${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hash-library/vcpkg.json ================================================ { "name": "hash-library", "version": "8", "port-version": 3, "description": "Portable C++ hashing library", "homepage": "https://create.stephan-brumme.com/hash-library/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hashids/hashids.patch ================================================ diff --git a/src/hashids.c b/src/hashids.c index 7f0b2f3..8d68509 100644 --- a/src/hashids.c +++ b/src/hashids.c @@ -6,6 +6,13 @@ #include "hashids.h" +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#else +#include +#endif + /* branch prediction hinting */ #ifndef __has_builtin # define __has_builtin(x) (0) ================================================ FILE: ports/hashids/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tzvetkoff/hashids.c REF "v${VERSION}" SHA512 f752a95118f729eb9e9651fc5d0112271c5cb95c8cefeaef33f61611274075ba4085edca58fb14823d4665de4044eff24397b891a22c2cb196e9c1c287fae378 HEAD_REF master PATCHES hashids.patch ) set(EXTRA_OPTS "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # $LIBS is an environment variable that vcpkg already pre-populated with some libraries. # We need to re-purpose it when passing LIBS option to make to avoid overriding the vcpkg's own list. list(APPEND EXTRA_OPTS "LIBS=-lgetopt \$LIBS") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${EXTRA_OPTS} ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/hashids/vcpkg.json ================================================ { "name": "hashids", "version": "1.2.2", "port-version": 1, "description": "generate short unique ids from integers", "homepage": "https://hashids.org/c/", "license": "MIT", "dependencies": [ { "name": "getopt", "platform": "windows & !mingw" }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/hayai/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nickbruun/hayai REF 0234860c7a851362ab33efc6c018203cded3eb48 SHA512 e4c65d834eddaeb77e73a3bc24645a531b93d26e32ff1daffbe71c579b76b4b8b4865f6c7ea07b378cafbe2da3a698414d4135f28fc9821eef995ed78d0987f2 HEAD_REF master ) if(VCPKG_TARGET_IS_UWP) set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALL_HAYAI=ON -DBUILD_HAYAI_TESTS=OFF -DBUILD_HAYAI_SAMPLES=OFF ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(CONFIG_PATH CMake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/CMake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH lib/CMake/${PORT}) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle manual-link libraries if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/hayai_main.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/hayai_main.lib" ) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-debug.cmake" "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/hayai_main.lib" "\${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/manual-link/hayai_main.lib" IGNORE_UNCHANGED ) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/hayai_main.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/hayai_main.lib" ) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/${PORT}/hayai-targets-release.cmake" "\${CMAKE_CURRENT_LIST_DIR}/../../lib/hayai_main.lib" "\${CMAKE_CURRENT_LIST_DIR}/../../lib/manual-link/hayai_main.lib" IGNORE_UNCHANGED ) endif() # Handle copyright configure_file("${SOURCE_PATH}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/hayai/vcpkg.json ================================================ { "name": "hayai", "version-date": "2019-08-10", "port-version": 4, "description": "C++ benchmarking framework", "homepage": "https://github.com/nickbruun/hayai", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hazelcast-cpp-client/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hazelcast/hazelcast-cpp-client REF "v${VERSION}" SHA512 bc37aae5fbd4272b7e3f1c489c05661c1c771e96fc3f0344ee02be8fe705e98a64234772e679e635f10a64788b8d62e069bc5eb119884b7eb9a78ccd66da62c4 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl WITH_OPENSSL example BUILD_EXAMPLES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/hazelcast-cpp-client) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/hazelcast-cpp-client/vcpkg.json ================================================ { "name": "hazelcast-cpp-client", "version": "5.6.0", "description": "C++ client library for Hazelcast in-memory database.", "homepage": "https://github.com/hazelcast/hazelcast-cpp-client", "documentation": "https://docs.hazelcast.com/hazelcast/latest/clients/cplusplus", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-chrono", "boost-format", "boost-multiprecision", "boost-optional", "boost-property-tree", "boost-system", "boost-thread", "boost-uuid", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "example": { "description": "Build examples for Hazelcast C++ client" }, "openssl": { "description": "Build Hazelcast C++ client with SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/hdf5/default-plugin-dir.diff ================================================ diff --git a/src/H5pubconf.h.in b/src/H5pubconf.h.in index 82fc2f5..73ef147 100644 --- a/src/H5pubconf.h.in +++ b/src/H5pubconf.h.in @@ -27,7 +27,9 @@ #cmakedefine H5_HAVE_VISUAL_STUDIO @H5_HAVE_VISUAL_STUDIO@ /* Define the default plugins path to compile */ -#cmakedefine H5_DEFAULT_PLUGINDIR "@H5_DEFAULT_PLUGINDIR@" +#ifndef H5_DEFAULT_PLUGINDIR +#define H5_DEFAULT_PLUGINDIR "" +#endif /* Define if your system is IBM ppc64le and cannot convert some long double values correctly. */ ================================================ FILE: ports/hdf5/libaec-config.diff ================================================ diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index 548a306..680ab84 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -211,12 +211,6 @@ endif () if (HDF5_ENABLE_SZIP_SUPPORT) cmake_dependent_option (HDF5_ENABLE_SZIP_ENCODING "Use SZip Encoding" ON HDF5_ENABLE_SZIP_SUPPORT OFF) if (NOT SZIP_USE_EXTERNAL) # This checks if szip should be found on the system or built from an external source - if (HDF5_USE_LIBAEC_STATIC) - set (LIBAEC_SEARCH_TYPE "static") - else () - set (LIBAEC_SEARCH_TYPE "shared") - endif () - set (libaec_USE_STATIC_LIBS ${HDF5_USE_LIBAEC_STATIC}) set (SZIP_FOUND FALSE) # Search pure Config mode, there is not a FindSZIP module available find_package (${LIBAEC_PACKAGE_NAME} NAMES ${LIBAEC_PACKAGE_NAME}${HDF_PACKAGE_EXT} OPTIONAL_COMPONENTS ${LIBAEC_SEARCH_TYPE}) diff --git a/config/install/hdf5-config.cmake.in b/config/install/hdf5-config.cmake.in index 6b82510..d1bc1b6 100644 --- a/config/install/hdf5-config.cmake.in +++ b/config/install/hdf5-config.cmake.in @@ -133,7 +133,7 @@ endif () if (${HDF5_PACKAGE_NAME}_PROVIDES_SZIP_SUPPORT) if (NOT @SZIP_USE_EXTERNAL@) - find_package (LIBAEC NAMES @LIBAEC_PACKAGE_NAME@ CONFIG OPTIONAL_COMPONENTS @LIBAEC_SEARCH_TYPE@) + find_package (@LIBAEC_PACKAGE_NAME@ CONFIG) endif () endif () ================================================ FILE: ports/hdf5/mpi-flags.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d608b39..57f59ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -833,7 +833,7 @@ endif () if (H5_HAVE_PARALLEL) list (APPEND LINK_PUB_LIBS MPI::MPI_C) if (MPI_C_LINK_FLAGS) - set (CMAKE_EXE_LINKER_FLAGS "${MPI_C_LINK_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}") + string(JOIN " " CMAKE_EXE_LINKER_FLAGS ${MPI_C_LINK_FLAGS} "${CMAKE_EXE_LINKER_FLAGS}") endif () endif () ================================================ FILE: ports/hdf5/pkgconfig.patch ================================================ diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake index b276769..548a306 100644 --- a/CMakeFilters.cmake +++ b/CMakeFilters.cmake @@ -161,7 +161,7 @@ if (HDF5_ENABLE_ZLIB_SUPPORT) endif () set (H5_ZLIB_INCLUDE_DIR_GEN ${ZLIB_INCLUDE_DIR}) set (H5_ZLIB_INCLUDE_DIRS ${H5_ZLIB_INCLUDE_DIRS} ${ZLIB_INCLUDE_DIR}) - if (NOT WIN32) #windows has a list of names + if (0) # The FindZLIB.cmake module does not set an OUTPUT_NAME # on the target. The target returned is: ZLIB::ZLIB get_filename_component (libname ${ZLIB_LIBRARIES} NAME_WLE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bbdf92a..c36d5c2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1450,9 +1450,26 @@ foreach (lib ${LINK_LIBS}) endif () endforeach () +if(UNIX AND H5_HAVE_PARALLEL) + foreach(_lib IN LISTS ${MPI_C_LIBRARIES}) + string(REPLACE " -l${_lib} " " " _PKG_CONFIG_LIBS_PRIVATE " ${_PKG_CONFIG_LIBS_PRIVATE} ") + endforeach() + string(APPEND _PKG_CONFIG_REQUIRES_PRIVATE " ompi-c") +endif() + # The settings for the compression libs depends on if they have pkconfig support # Assuming they don't foreach (libs ${LINK_COMP_LIBS}) + if(libs STREQUAL ZLIB::ZLIB) + string(APPEND _PKG_CONFIG_REQUIRES_PRIVATE " zlib") + continue() + elseif(libs STREQUAL "libaec::sz") + string(APPEND _PKG_CONFIG_LIBS_PRIVATE " ${libaec_LIBRARY}") + continue() + elseif(libs STREQUAL "libaec::aec") + string(APPEND _PKG_CONFIG_LIBS_PRIVATE " ${SZIP_LIBRARY}") + continue() + endif() get_target_property (libname ${libs} OUTPUT_NAME) set (_PKG_CONFIG_LIBS_PRIVATE "${_PKG_CONFIG_LIBS_PRIVATE} -l${libname}") endforeach () ================================================ FILE: ports/hdf5/portfile.cmake ================================================ # highfive should be updated together with hdf5 string(REPLACE "." "." hdf5_ref "hdf5_${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HDFGroup/hdf5 REF "${hdf5_ref}" SHA512 609e129f78c6777a0e64694de8ec638326a616ff9cbd916f310dc6f78435ef67194c5ab59faedda09c85c045c15ebe2ec4ce04fa905d5f74801600e067c27fcc HEAD_REF develop PATCHES default-plugin-dir.diff # avoid absolute path libaec-config.diff mpi-flags.diff pkgconfig.patch win-compile-flags.diff ) set(HDF5_ALLOW_UNSUPPORTED OFF) set(unsupported_with_parallel cpp) set(unsupported_with_threadsafe parallel fortran cpp hl) foreach(feature IN ITEMS parallel threadsafe) if(NOT feature IN_LIST FEATURES) continue() endif() foreach(other IN LISTS unsupported_with_${feature}) if(other IN_LIST FEATURES) message(WARNING "Features '${feature}' and '${other}' are mutually exclusive. Implicitly enabling option HDF5_ALLOW_UNSUPPORTED to unlock the build with both.") set(HDF5_ALLOW_UNSUPPORTED ON) endif() endforeach() endforeach() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cpp HDF5_BUILD_CPP_LIB fortran HDF5_BUILD_FORTRAN hl HDF5_BUILD_HL_LIB map HDF5_ENABLE_MAP_API mirror HDF5_ENABLE_MIRROR_VFD parallel HDF5_ENABLE_PARALLEL szip HDF5_ENABLE_SZIP_SUPPORT szip HDF5_ENABLE_SZIP_ENCODING threadsafe HDF5_ENABLE_THREADSAFE tools HDF5_BUILD_TOOLS tools HDF5_BUILD_UTILS zlib HDF5_ENABLE_ZLIB_SUPPORT ) if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND FEATURE_OPTIONS -DBUILD_STATIC_EXECS=ON) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND FEATURE_OPTIONS -DBUILD_STATIC_LIBS=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DHDF5_ALLOW_EXTERNAL_SUPPORT=NO -DHDF5_BUILD_EXAMPLES=OFF -DHDF5_INSTALL_DATA_DIR=share/hdf5/data -DHDF5_INSTALL_CMAKE_DIR=share/hdf5 -DHDF_PACKAGE_NAMESPACE:STRING=hdf5:: -DHDF5_MSVC_NAMING_CONVENTION=OFF -DHDF5_ALLOW_UNSUPPORTED=${HDF5_ALLOW_UNSUPPORTED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(file IN LISTS pc_files) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${file}" " -lhdf5" " -llibhdf5" IGNORE_UNCHANGED) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${file}" "/msmpi.lib\"" "/msmpi\"" IGNORE_UNCHANGED) endif() endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/hdf5/hdf5-config.cmake" [[${HDF5_PACKAGE_NAME}_TOOLS_DIR "${PACKAGE_PREFIX_DIR}/bin"]] [[${HDF5_PACKAGE_NAME}_TOOLS_DIR "${PACKAGE_PREFIX_DIR}/tools/hdf5"]] ) if("parallel" IN_LIST FEATURES AND NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/hdf5/hdf5-config.cmake" [[..HDF5_PACKAGE_NAME._MPI_C_LIBRARIES "..VCPKG_IMPORT_PREFIX.(/lib/[^"]*)"]] [[${HDF5_PACKAGE_NAME}_MPI_C_LIBRARIES optimized "${VCPKG_IMPORT_PREFIX}\1" debug "${VCPKG_IMPORT_PREFIX}/debug\1"]] REGEX ) endif() set(HDF5_TOOLS "") if("tools" IN_LIST FEATURES) list(APPEND HDF5_TOOLS h5perf_serial h5clear h5copy h5debug h5delete h5diff h5dump h5format_convert h5import h5jam h5ls h5mkgrp h5repack h5repart h5stat h5unjam ) if ("hl" IN_LIST FEATURES) list(APPEND HDF5_TOOLS h5watch) endif() if ("mirror" IN_LIST FEATURES) list(APPEND HDF5_TOOLS mirror_server mirror_server_stop) endif() if("parallel" IN_LIST FEATURES) list(APPEND HDF5_TOOLS ph5diff h5perf) endif() endif() if(HDF5_TOOLS) vcpkg_copy_tools(TOOL_NAMES ${HDF5_TOOLS} AUTO_CLEAN) endif() foreach(script IN ITEMS h5cc h5c++ h5hlcc h5hlc++ h5pcc h5fuse.sh) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${script}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}" "${CURRENT_INSTALLED_DIR}" "$(dirname \"$0\")/../.." IGNORE_UNCHANGED) file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endif() endforeach() vcpkg_clean_executables_in_bin(FILE_NAMES none) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) if("parallel" IN_LIST FEATURES) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/H5public.h" "#define H5public_H" "#define H5public_H\n#ifndef H5_BUILT_AS_DYNAMIC_LIB\n#define H5_BUILT_AS_DYNAMIC_LIB\n#endif\n") endif() file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/data/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/hdf5/vcpkg-cmake-wrapper.cmake ================================================ if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.3) cmake_policy(PUSH) cmake_policy(SET CMP0057 NEW) if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND "HDF5" IN_LIST ARGS) # The caller hasn't said "CONFIG", so they want the built-in FindHDF5.cmake behavior. Set configurations macros to ensure the built-in script finds us. if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") set(HDF5_USE_STATIC_LIBRARIES ON) add_compile_definitions(H5_BUILT_AS_STATIC_LIB) else() set(HDF5_USE_STATIC_LIBRARIES OFF) add_compile_definitions(H5_BUILT_AS_DYNAMIC_LIB) endif() endif() cmake_policy(POP) endif() _find_package(${ARGS}) # HDF5_ENABLE_PARALLEL is used by several ports. set (HDF5_ENABLE_PARALLEL "${HDF5_PROVIDES_PARALLEL}") ================================================ FILE: ports/hdf5/vcpkg-port-config.cmake ================================================ # This variable can be used for testing and for messages. set(HDF5_WITH_PARALLEL [[ HDF5 was built with parallel support. ]]) ================================================ FILE: ports/hdf5/vcpkg.json ================================================ { "name": "hdf5", "version": "2.0.0", "port-version": 1, "description": "HDF5 is a data model, library, and file format for storing and managing data", "homepage": "https://www.hdfgroup.org/downloads/hdf5/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "szip", "zlib" ], "features": { "cpp": { "description": "Builds cpp lib" }, "fortran": { "description": "Build with fortran" }, "hl": { "description": "Build HIGH Level HDF5 Library" }, "map": { "description": "Build the map API" }, "mirror": { "description": "Build the Mirror Virtual File Driver", "supports": "!windows | mingw" }, "parallel": { "description": "parallel support for HDF5", "supports": "!staticcrt", "dependencies": [ "mpi" ] }, "szip": { "description": "Build with szip", "dependencies": [ "libaec" ] }, "threadsafe": { "description": "thread safety for HDF5", "supports": "!(static & windows)", "dependencies": [ { "name": "pthreads", "platform": "!windows" } ] }, "tools": { "description": "Build hdf tools" }, "zlib": { "description": "Build with zlib", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/hdf5/win-compile-flags.diff ================================================ diff --git a/config/flags/HDFMsvcFlags.cmake b/config/flags/HDFMsvcFlags.cmake index db520fe..9ab9bde 100644 --- a/config/flags/HDFMsvcFlags.cmake +++ b/config/flags/HDFMsvcFlags.cmake @@ -25,5 +25,5 @@ if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 19.28) endif () if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64" AND ${HDF_CFG_NAME} MATCHES "Debug") - set (WIN_COMPILE_FLAGS "${WIN_COMPILE_FLAGS} /Gy") + list (APPEND WIN_COMPILE_FLAGS "/Gy") endif () ================================================ FILE: ports/hdr-histogram/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HdrHistogram/HdrHistogram_c REF ${VERSION} SHA512 62cb07f60c817eab1e4782522934f9e6bb5495dab35747be01936aa05468a6cc4aeb70dd54632db3ebb03f0c4f42097475679d914df93e4eba8798e6b2affc60 HEAD_REF main ) if("log" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DHDR_LOG_REQUIRED=ON") else() list(APPEND FEATURE_OPTIONS "-DHDR_LOG_REQUIRED=DISABLED") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND FEATURE_OPTIONS "-DHDR_HISTOGRAM_BUILD_STATIC:BOOL=OFF") list(APPEND FEATURE_OPTIONS "-DHDR_HISTOGRAM_INSTALL_STATIC:BOOL=OFF") else() list(APPEND FEATURE_OPTIONS "-DHDR_HISTOGRAM_BUILD_SHARED:BOOL=OFF") list(APPEND FEATURE_OPTIONS "-DHDR_HISTOGRAM_INSTALL_SHARED:BOOL=OFF") endif() # Do not build tests and examples list(APPEND FEATURE_OPTIONS "-DHDR_HISTOGRAM_BUILD_PROGRAMS:BOOL=OFF") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME hdr_histogram CONFIG_PATH lib/cmake/hdr_histogram ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/COPYING.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/hdr-histogram/usage ================================================ hdr_histogram provides CMake targets: find_package(hdr_histogram CONFIG REQUIRED) target_link_libraries(main PRIVATE $,hdr_histogram::hdr_histogram,hdr_histogram::hdr_histogram_static>) ================================================ FILE: ports/hdr-histogram/vcpkg.json ================================================ { "name": "hdr-histogram", "version-semver": "0.11.9", "description": "'C' port of High Dynamic Range (HDR) Histogram", "homepage": "https://github.com/HdrHistogram/HdrHistogram_c", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "log": { "description": "Logging support for HdrHistogram", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/healpix/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO healpix REF Healpix_${VERSION} FILENAME "healpix_cxx-${VERSION}.0.tar.gz" SHA512 0e797773e3831fad155e5b670e5cbd9c58a40dba2883b45b757ac2f520fc56591309d93cbcb90a23ff68b6207a0081dcbc781b5e91efd60614104a3ee87ef55e ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/healpix/vcpkg.json ================================================ { "name": "healpix", "version": "3.83", "description": "C++ library for Data Analysis, Simulations and Visualization on the Sphere", "homepage": "https://healpix.sourceforge.io/", "license": "GPL-2.0-or-later", "supports": "!windows | mingw", "dependencies": [ "cfitsio", "libsharp", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/hedley/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nemequ/hedley REF 8fb0604a8095f6c907378cc3f0391520ae843f6f SHA512 3ce102d348f96bd8c7d44bc7119a8f637041f613e1e6a578c15e24c56f79dbcb0b1bce93bc8779a90cc2e34ab74d09f29d240b4519d592973c59da49923460da HEAD_REF master ) file(COPY ${SOURCE_PATH}/hedley.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(STRINGS ${SOURCE_PATH}/hedley.h SOURCE_LINES) # Capture more lines than required to handle future license file changes list(SUBLIST SOURCE_LINES 0 30 SOURCE_LINES) list(JOIN SOURCE_LINES "\n" _contents) file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}") ================================================ FILE: ports/hedley/vcpkg.json ================================================ { "name": "hedley", "version": "15", "description": "A C/C++ header to help move #ifdefs out of your code", "homepage": "https://nemequ.github.io/hedley/" } ================================================ FILE: ports/hello-imgui/cmake-config.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 26ae5f7..10a58fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -407,7 +407,8 @@ if(HELLOIMGUI_INSTALL) VERSION ${hello_imgui_VERSION} COMPATIBILITY AnyNewerVersion) - install(FILES "hello_imgui_cmake/hello-imguiConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/hello-imguiConfigVersion.cmake" + configure_file("${PROJECT_SOURCE_DIR}/hello_imgui_cmake/hello-imguiConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/hello-imguiConfig.cmake" @ONLY) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/hello-imguiConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/hello-imguiConfigVersion.cmake" DESTINATION lib/cmake/hello_imgui) endif() diff --git a/hello_imgui_cmake/hello-imguiConfig.cmake b/hello_imgui_cmake/hello-imguiConfig.cmake index 2b93540..6cfa3f8 100644 --- a/hello_imgui_cmake/hello-imguiConfig.cmake +++ b/hello_imgui_cmake/hello-imguiConfig.cmake @@ -1,6 +1,9 @@ include(CMakeFindDependencyMacro) -find_dependency(imgui CONFIG REQUIRED) -find_dependency(glad CONFIG REQUIRED) +find_dependency(imgui CONFIG) +find_dependency(nlohmann_json CONFIG) +if("@HELLOIMGUI_HAS_OPENGL3@") + find_dependency(glad CONFIG) +endif() include(${CMAKE_CURRENT_LIST_DIR}/hello_imgui_cmake/hello_imgui_add_app.cmake) include(${CMAKE_CURRENT_LIST_DIR}/hello-imgui-targets.cmake) diff --git a/hello_imgui_cmake/hello_imgui_build_lib.cmake b/hello_imgui_cmake/hello_imgui_build_lib.cmake index 7b5e7ac..37f5910 100644 --- a/hello_imgui_cmake/hello_imgui_build_lib.cmake +++ b/hello_imgui_cmake/hello_imgui_build_lib.cmake @@ -1181,7 +1181,7 @@ endfunction() # Install: API = him_install ################################################################################################### function(him_install) - if (HELLOIMGUI_INSTALL AND NOT IOS AND NOT ANDROID) + if (HELLOIMGUI_INSTALL) install(TARGETS ${HELLOIMGUI_TARGET} DESTINATION lib/) file(GLOB headers *.h) install(FILES ${headers} DESTINATION include/hello_imgui/) ================================================ FILE: ports/hello-imgui/disable-sdl-android.patch ================================================ diff --git a/src/hello_imgui/internal/hello_imgui_assets.cpp b/src/hello_imgui/internal/hello_imgui_assets.cpp index 028c8ef..d7ec663 100644 --- a/src/hello_imgui/internal/hello_imgui_assets.cpp +++ b/src/hello_imgui/internal/hello_imgui_assets.cpp @@ -249,7 +249,7 @@ std::string AssetFileFullPath(const std::string& assetFilename, bool assertIfNot // Returns true if this asset file exists bool AssetExists(const std::string& assetFilename) { -#ifdef __ANDROID__ +#if defined(__ANDROID__) && defined(HELLOIMGUI_USE_SDL2) size_t dataSize; void *data = SDL_LoadFile(assetFilename.c_str(), &dataSize); bool exists = (data != nullptr); ================================================ FILE: ports/hello-imgui/fix-vulkan-binding.patch ================================================ diff --git a/src/hello_imgui/internal/image_vulkan.h b/src/hello_imgui/internal/image_vulkan.h index ee165d0..aa0e445 100644 --- a/src/hello_imgui/internal/image_vulkan.h +++ b/src/hello_imgui/internal/image_vulkan.h @@ -18,12 +18,12 @@ namespace HelloImGui // Specific to Vulkan VkDescriptorSet DS; static constexpr int Channels = 4; // We intentionally only support RGBA for now - VkImageView ImageView = nullptr; - VkImage Image = nullptr; - VkDeviceMemory ImageMemory = nullptr; - VkSampler Sampler = nullptr; - VkBuffer UploadBuffer = nullptr; - VkDeviceMemory UploadBufferMemory = nullptr; + VkImageView ImageView; + VkImage Image; + VkDeviceMemory ImageMemory; + VkSampler Sampler; + VkBuffer UploadBuffer; + VkDeviceMemory UploadBufferMemory; }; } ================================================ FILE: ports/hello-imgui/imgui-test-engine.diff ================================================ diff --git a/src/hello_imgui_test_engine_integration/hello_imgui_test_engine_cmake.cmake b/src/hello_imgui_test_engine_integration/hello_imgui_test_engine_cmake.cmake index fda2d91..44c76a3 100644 --- a/src/hello_imgui_test_engine_integration/hello_imgui_test_engine_cmake.cmake +++ b/src/hello_imgui_test_engine_integration/hello_imgui_test_engine_cmake.cmake @@ -147,9 +147,6 @@ endfunction() # Public API for this module function(add_imgui_test_engine) - _fetch_imgui_test_engine_if_needed() - _add_imgui_test_engine_lib() - _configure_imgui_with_test_engine() _add_hello_imgui_test_engine_integration() # _add_imgui_test_engine_app_minimal_example() endfunction() diff --git a/src/hello_imgui_test_engine_integration/test_engine_integration.cpp b/src/hello_imgui_test_engine_integration/test_engine_integration.cpp index 9f5bb59..2be0fa1 100644 --- a/src/hello_imgui_test_engine_integration/test_engine_integration.cpp +++ b/src/hello_imgui_test_engine_integration/test_engine_integration.cpp @@ -1,4 +1,4 @@ -#include "imgui_test_engine/imgui_te_engine.h" +#include #include "hello_imgui/runner_params.h" #include "hello_imgui/internal/functional_utils.h" #include "hello_imgui/internal/backend_impls/opengl_setup_helper/opengl_screenshot.h" ================================================ FILE: ports/hello-imgui/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # this mirrors ImGui's portfile behavior vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pthom/hello_imgui REF "v${VERSION}" SHA512 a81faf70a564147cf9c4587de54e46965b744ce93afadf7c9ce8a4868a9a584eea0c8f8df0c7f701e0404b4984f95ecfa3f5aa36a94ef2a84eaadbcc1e80c9b7 HEAD_REF master PATCHES cmake-config.diff imgui-test-engine.diff disable-sdl-android.patch fix-vulkan-binding.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/external/imgui" "${SOURCE_PATH}/external/nlohmann_json" "${SOURCE_PATH}/external/OpenGL_Loaders" "${SOURCE_PATH}/external/stb_hello_imgui/stb_image.h" "${SOURCE_PATH}/external/stb_hello_imgui/stb_image_write.h" ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES # "target platforms" opengl3-binding HELLOIMGUI_HAS_OPENGL3 metal-binding HELLOIMGUI_HAS_METAL experimental-vulkan-binding HELLOIMGUI_HAS_VULKAN experimental-dx11-binding HELLOIMGUI_HAS_DIRECTX11 experimental-dx12-binding HELLOIMGUI_HAS_DIRECTX12 # "platform backends" glfw-binding HELLOIMGUI_USE_GLFW3 # sdl2-binding HELLOIMGUI_USE_SDL2 # removed with imgui[sdl2-binding] # other test-engine HELLOIMGUI_WITH_TEST_ENGINE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DHELLO_IMGUI_IMGUI_SHARED=OFF -DHELLOIMGUI_BUILD_DEMOS=OFF -DHELLOIMGUI_BUILD_IMGUI=OFF -DHELLOIMGUI_FETCH_FORBIDDEN=ON -DHELLOIMGUI_FREETYPE_STATIC=OFF -DHELLOIMGUI_MACOS_NO_BUNDLE=OFF -DHELLOIMGUI_USE_IMGUI_CMAKE_PACKAGE=ON -DHELLOIMGUI_WIN32_NO_CONSOLE=ON -DHELLOIMGUI_WIN32_AUTO_WINMAIN=ON -DCMAKE_REQUIRE_FIND_PACKAGE_glad=ON -DCMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json=ON MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_glad HELLOIMGUI_WIN32_NO_CONSOLE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/hello_imgui" PACKAGE_NAME "hello-imgui") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/hello-imgui/hello_imgui_cmake/ios-cmake" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if (NOT HELLOIMGUI_HAS_OPENGL3 AND NOT HELLOIMGUI_HAS_METAL AND NOT HELLOIMGUI_HAS_VULKAN AND NOT HELLOIMGUI_HAS_DIRECTX11 AND NOT HELLOIMGUI_HAS_DIRECTX12) set(no_rendering_backend TRUE) endif() if (NOT HELLOIMGUI_USE_GLFW3 AND NOT HELLOIMGUI_USE_SDL2) set(no_platform_backend TRUE) endif() if (no_rendering_backend OR no_platform_backend) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" " ######################################################################## !!!! WARNING !!!!! !!!! Installed hello-imgui without a viable backend !!!!! ######################################################################## When installing hello-imgui, you should specify: - At least one (or more) rendering backend (OpenGL3, Metal, Vulkan, DirectX11, DirectX12) Make your choice according to your needs and your target platforms, between: opengl3-binding # This is the recommended choice, especially for beginners metal-binding # Apple only, advanced users only experimental-vulkan-binding # Advanced users only experimental-dx11-binding # Windows only, still experimental experimental-dx12-binding # Windows only, advanced users only, still experimental - At least one (or more) platform backend (Glfw3*): Make your choice according to your needs and your target platforms, between: glfw-binding *) This port currently doesn't offer an SDL platform backend. For example, you could use: vcpkg install \"hello-imgui[opengl3-binding,glfw-binding]\" ######################################################################## !!!! WARNING !!!!! !!!! Installed hello-imgui without a viable backend !!!!! ######################################################################## ") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hello-imgui/usage ================================================ hello-imgui provides CMake integration: set(CMAKE_CXX_STANDARD 17) find_package(hello-imgui CONFIG REQUIRED) # Usage with `hello_imgui_add_app` (recommended) hello_imgui_add_app(main my_main.cpp) # Usage with `target_link_libraries` (no tooling, no asset deployment) target_link_libraries(main PRIVATE hello-imgui::hello_imgui) ================================================ FILE: ports/hello-imgui/vcpkg.json ================================================ { "name": "hello-imgui", "version": "1.92.5", "description": [ "Hello ImGui: unleash your creativity in app development and prototyping", "Note that at least on renderer backend and at least one platform backend must be chosen." ], "homepage": "https://pthom.github.io/hello_imgui/", "license": "MIT", "dependencies": [ { "name": "imgui", "features": [ "docking-experimental" ] }, "nlohmann-json", "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "experimental-dx11-binding": { "description": "Use DirectX11 renderer backend (Windows only, experimental)", "dependencies": [ { "name": "imgui", "features": [ "dx11-binding" ] } ] }, "experimental-dx12-binding": { "description": "Use DirectX12 renderer backend (Windows only, experimental)", "dependencies": [ { "name": "imgui", "features": [ "dx12-binding" ] } ] }, "experimental-vulkan-binding": { "description": "Use Vulkan renderer backend (Windows/Linux/macOS, experimental)", "dependencies": [ { "name": "imgui", "features": [ "vulkan-binding" ] } ] }, "glfw-binding": { "description": "Use GLFW platform backend (default)", "dependencies": [ { "name": "imgui", "features": [ "glfw-binding" ] } ] }, "metal-binding": { "description": "Use Metal renderer backend (macOS/iOS only)", "dependencies": [ { "name": "imgui", "features": [ "metal-binding" ] } ] }, "opengl3-binding": { "description": "Use OpenGL3/ES2 renderer backend (default)", "dependencies": [ { "name": "glad", "features": [ "gl-api-43" ] }, { "name": "imgui", "features": [ "opengl3-binding" ] } ] }, "test-engine": { "description": "Build test engine", "dependencies": [ { "name": "imgui", "features": [ "test-engine" ] } ] } } } ================================================ FILE: ports/hesphoros-uniconv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hesphoros/UniConv REF "v${VERSION}" SHA512 e830ce3d10172dbce460677b09991fa2697d2301deb65b7ed0a5af92cd06ccb4f7b96f4ef354da1d7049f6ae79e3f982886f12e4e6909d332189a5fc132d25b1 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" UNICONV_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNICONV_BUILD_SHARED=${UNICONV_BUILD_SHARED} -DUNICONV_BUILD_TESTS=OFF -DUNICONV_LIBICONV_SOURCE=SYSTEM -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DFETCHCONTENT_FULLY_DISCONNECTED=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME UniConv CONFIG_PATH lib/cmake/UniConv ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hesphoros-uniconv/vcpkg.json ================================================ { "name": "hesphoros-uniconv", "version": "3.3.2", "description": "A high-performance C++ character encoding conversion library with modern C++17 interface", "homepage": "https://github.com/hesphoros/UniConv", "documentation": "https://github.com/hesphoros/UniConv/blob/main/README.MD", "license": "MIT", "supports": "!(arm & windows)", "dependencies": [ "libiconv", "parallel-hashmap", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hexi/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EmberEmu/Hexi REF "v${VERSION}" SHA512 25a02c79ad43cfe21bc306df3f9c2f64561b07f7eea70be9d59c4a76505a5b68805fbea29fe67052795bfc21daf5889c5bbc3e39ef561b993925cc96d2d17cfe HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/single_include/hexi.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/hexi") file(INSTALL "${SOURCE_PATH}/single_include/hexi_fwd.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/hexi") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE-MIT") ================================================ FILE: ports/hexi/vcpkg.json ================================================ { "name": "hexi", "version": "1.3.5", "description": "Header-only, lightweight C++ library for binary streaming & serialization.", "homepage": "https://github.com/EmberEmu/Hexi", "license": "MIT OR Apache-2.0" } ================================================ FILE: ports/hexl/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/hexl REF "v${VERSION}" SHA512 1a5e42fdeac877f3b4ef87ab75ffa8280697e941d7a8f0f6dc8c5066f2dd405470530dfabdf12d846362bd3e7e6cd30fd1f11d8dd99bee5086d09371ba1da196 HEAD_REF development ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" HEXL_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DHEXL_BENCHMARK=OFF -DHEXL_COVERAGE=OFF -DHEXL_TESTING=OFF -DHEXL_SHARED_LIB=${HEXL_SHARED} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME "HEXL" CONFIG_PATH "lib/cmake/hexl-${VERSION}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/hexl/vcpkg.json ================================================ { "name": "hexl", "version": "1.2.5", "description": "Intel® HEXL is an open-source library which provides efficient implementations of integer arithmetic on Galois fields.", "homepage": "https://github.com/intel/hexl", "license": "Apache-2.0", "supports": "x64", "dependencies": [ "cpu-features", "easyloggingpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hffix/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) set(PROJECT_NAME hffix) project(${PROJECT_NAME}) include(GNUInstallDirs) add_library(hffix INTERFACE) target_include_directories(hffix INTERFACE $ $ ) install( FILES ${CMAKE_SOURCE_DIR}/include/hffix.hpp ${CMAKE_SOURCE_DIR}/include/hffix_fields.hpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install( TARGETS hffix EXPORT hffix-config RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(EXPORT hffix-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}::) ================================================ FILE: ports/hffix/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jamesdbrock/hffix REF "v${VERSION}" SHA512 155c0e0bd57d952523343e94b0160baf3b20d366ff8260340d96c2ec4e638c94d192c08b7204303b0fa8610beb5c71046f62fa8b0212b477aaab88e49974cac1 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/hffix") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hffix/vcpkg.json ================================================ { "name": "hffix", "version": "1.4.1", "description": "Financial Information Exchange Protocol C++ Library", "homepage": "https://jamesdbrock.github.io/hffix", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hfsm2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andrew-gresyk/HFSM2 REF ${VERSION} SHA512 4effd662b63765b9f4a194bb1efe92e5f3b69e96bda8dc78dfa86698ab9ddc33d2d7079d22d278311b47691f59605a0980cf49b33c9d3b2e884e2d74067d1b56 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHFSM2_BUILD_TESTS=OFF -DHFSM2_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/hfsm2 PACKAGE_NAME hfsm2) vcpkg_fixup_pkgconfig() # Remove empty directories if they exist file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/hfsm2/usage ================================================ The package hfsm2 is header only and can be used from CMake via: find_package(hfsm2 CONFIG REQUIRED) target_link_libraries(main PRIVATE hfsm2::hfsm2) ================================================ FILE: ports/hfsm2/vcpkg.json ================================================ { "name": "hfsm2", "version": "2.10.0", "description": "Header-only heriarchical FSM framework in C++11, with fully statically-defined structure (no dynamic allocations), built with variadic templates.", "homepage": "https://github.com/andrew-gresyk/HFSM2", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hidapi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libusb/hidapi REF hidapi-${VERSION} SHA512 a4ddd13a80a84956872fa52aa861b40e4959f301d8d91afe0feaf9dbd87394561e1fdd20cbf8cf47200845f80a8db8a934bc2e3025fe6f16435e37c17621e7b6 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "pp-data-dump" HIDAPI_BUILD_PP_DATA_DUMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHIDAPI_BUILD_HIDTEST=OFF -DHIDAPI_WITH_TESTS=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES # Windows only HIDAPI_BUILD_PP_DATA_DUMP HIDAPI_WITH_TESTS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if ("pp-data-dump" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES pp_data_dump AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-bsd.txt") ================================================ FILE: ports/hidapi/vcpkg.json ================================================ { "name": "hidapi", "version-semver": "0.15.0", "port-version": 1, "description": "A Simple library for communicating with USB and Bluetooth HID devices on Linux, Mac and Windows.", "homepage": "https://github.com/libusb/hidapi", "license": "BSD-3-Clause-Clear", "supports": "!uwp", "dependencies": [ { "name": "libusb", "platform": "!(windows | osx)" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pp-data-dump": { "description": "Build pp_data_dump.exe tool, to store WIN32 HidD Preparsed Data as file", "supports": "windows" } } } ================================================ FILE: ports/highfive/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO highfive-devs/highfive REF "v${VERSION}" SHA512 b7c4eeec0670ba7d8c3b6c69e85abaae1a9b1237eea4f5fb873d8730633c5e785a73d80ee29e64e57afea83e4c52e8a0779c8564edd484069127965a8d3bddb3 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES boost HIGHFIVE_TEST_BOOST opencv HIGHFIVE_TEST_OPENCV xtensor HIGHFIVE_TEST_XTENSOR eigen3 HIGHFIVE_TEST_EIGEN ) if(HDF5_WITH_PARALLEL) message(STATUS "${HDF5_WITH_PARALLEL} Enabling HIGHFIVE_PARALLEL_HDF5.") list(APPEND FEATURE_OPTIONS "-DHIGHFIVE_PARALLEL_HDF5=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DHIGHFIVE_UNIT_TESTS=OFF -DHIGHFIVE_EXAMPLES=OFF -DHIGHFIVE_BUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/HighFive) if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/share/HighFive/HighFiveConfig.cmake") # left over with mixed case file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/HighFive") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/highfive/usage ================================================ highfive provides CMake targets: find_package(HighFive CONFIG REQUIRED) target_link_libraries(main PRIVATE HighFive) ================================================ FILE: ports/highfive/vcpkg.json ================================================ { "name": "highfive", "version": "3.3.0", "description": "HighFive is a modern, user-friendly, header-only, C++14 interface for libhdf5.", "homepage": "https://github.com/highfive-devs/highfive", "license": "BSL-1.0", "dependencies": [ { "name": "hdf5", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost": { "description": "Enable testing Boost features", "dependencies": [ "boost-multi-array", "boost-serialization", "boost-system", "boost-ublas" ] }, "eigen3": { "description": "Enable testing Eigen", "dependencies": [ "eigen3" ] }, "opencv": { "description": "Enable testing OpenCV", "dependencies": [ "opencv" ] }, "xtensor": { "description": "Enable testing xtensor", "dependencies": [ "xtensor" ] } } } ================================================ FILE: ports/highs/fix-install-dirs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 52c3654..8e19f11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -565,24 +565,6 @@ if(ZLIB AND NOT TARGET ZLIB::ZLIB) find_package(ZLIB 1.2.3) endif() -if (PYTHON_BUILD_SETUP OR CMAKE_INSTALL_DOCDIR STREQUAL "" OR NOT BUILD_CXX) - install(FILES - README.md - LICENSE.txt - THIRD_PARTY_NOTICES.md - DESTINATION .) -else() - install(FILES - README.md - LICENSE.txt - AUTHORS - CITATION.cff - CODE_OF_CONDUCT.md - CONTRIBUTING.md - FEATURES.md - DESTINATION ${CMAKE_INSTALL_DOCDIR}) -endif() - # Set default generator based on platform if(WIN32) set(CPACK_GENERATOR "ZIP") diff --git a/highs/CMakeLists.txt b/highs/CMakeLists.txt index c30823a..78a324f 100644 --- a/highs/CMakeLists.txt +++ b/highs/CMakeLists.txt @@ -94,9 +94,9 @@ if(NOT FAST_BUILD) endif() install(TARGETS libhighs EXPORT highs-targets - LIBRARY - ARCHIVE - RUNTIME + LIBRARY ${CMAKE_INSTALL_LIBDIR} + ARCHIVE ${CMAKE_INSTALL_LIBDIR} + RUNTIME ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/highs) # Add library targets to the build-tree export set ================================================ FILE: ports/highs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ERGO-Code/HiGHS REF "v${VERSION}" SHA512 e5547c16bd9dc0eb0465322e11195e7d67205b43ea9e830bcd6d272dacb4edbe4c98f852e4833bb3b37771146654e495be464af0887e1da227e439ca2d7b496e HEAD_REF master PATCHES fix-install-dirs.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFAST_BUILD=ON -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES highs AUTO_CLEAN) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/highs") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/highs/vcpkg.json ================================================ { "name": "highs", "version": "1.13.1", "description": "High performance library to solve linear, mixed-integer, and convex quadratic optimization problems.", "homepage": "https://highs.dev", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/highway/2695.patch ================================================ From 21635e43996f0b4365584f69b0014655f548853a Mon Sep 17 00:00:00 2001 From: John Platts Date: Sun, 31 Aug 2025 22:08:43 -0500 Subject: [PATCH] Fix for AVX10_2 target with Android NDK r29-beta3 --- hwy/ops/x86_128-inl.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hwy/ops/x86_128-inl.h b/hwy/ops/x86_128-inl.h index bcd08d590d..3a2820102e 100644 --- a/hwy/ops/x86_128-inl.h +++ b/hwy/ops/x86_128-inl.h @@ -71,8 +71,9 @@ namespace detail { #endif #undef HWY_X86_HAVE_AVX10_2_OPS -#if HWY_TARGET_IS_AVX10_2 && \ - (HWY_COMPILER_GCC_ACTUAL >= 1501 || HWY_COMPILER3_CLANG >= 200103) +#if HWY_TARGET_IS_AVX10_2 && \ + (HWY_COMPILER_GCC_ACTUAL >= 1501 || \ + (HWY_COMPILER3_CLANG >= 200103 && HWY_COMPILER_CLANG != 2100)) #define HWY_X86_HAVE_AVX10_2_OPS 1 #else #define HWY_X86_HAVE_AVX10_2_OPS 0 ================================================ FILE: ports/highway/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/highway REF "${VERSION}" SHA512 8b9f4fdc4fa60b6817417959853f5b55bf86aec9d35fc6664dda15179cc55e0a9940f3a46011a84b95263ba342dc47ca1cb93b04481ff4b63d724cce1815d7c6 HEAD_REF master PATCHES 2695.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES contrib HWY_ENABLE_CONTRIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DHWY_ENABLE_INSTALL=ON -DHWY_ENABLE_EXAMPLES=OFF -DHWY_ENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME hwy CONFIG_PATH lib/cmake/hwy) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/hwy/highway_export.h" "defined(HWY_SHARED_DEFINE)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/highway/usage ================================================ highway provides CMake targets: find_package(hwy CONFIG REQUIRED) target_link_libraries(main PRIVATE hwy::hwy) ================================================ FILE: ports/highway/vcpkg.json ================================================ { "name": "highway", "version": "1.3.0", "port-version": 1, "description": "Performance-portable, length-agnostic SIMD with runtime dispatch", "homepage": "https://github.com/google/highway", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "contrib": { "description": "SIMD related utility functions", "supports": "!uwp" } } } ================================================ FILE: ports/hikogui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hikogui/hikogui REF v0.8.1 SHA512 1a711aeb83d4d84e89ba4895aea321b1e5120fc20e8124237ee575b14955edcfa991965cb80628e7c485a44ba13245ba76781582339f62939a8180a629de996a HEAD_REF main ) set(ENV{VULKAN_SDK} "${CURRENT_INSTALLED_DIR}") vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(NO_PREFIX_CORRECTION) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/hikogui/vcpkg.json ================================================ { "name": "hikogui", "version": "0.8.1", "port-version": 2, "maintainers": "@takev", "description": "A portable, low latency, retained-mode GUI framework written in C++.", "homepage": "https://github.com/hikogui/hikogui", "license": "BSL-1.0", "supports": "windows & x64", "dependencies": [ { "name": "glslang", "features": [ "tools" ] }, "shaderc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan", "vulkan-memory-allocator" ] } ================================================ FILE: ports/hiredis/fix-cmake-conf-install-dir.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fca0ee8..b67888e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,7 +127,7 @@ export(EXPORT hiredis-targets if(WIN32) SET(CMAKE_CONF_INSTALL_DIR share/hiredis) else() - SET(CMAKE_CONF_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/hiredis) + SET(CMAKE_CONF_INSTALL_DIR share/hiredis) endif() SET(INCLUDE_INSTALL_DIR include) include(CMakePackageConfigHelpers) @@ -200,7 +204,7 @@ IF(ENABLE_SSL) if(WIN32) SET(CMAKE_CONF_INSTALL_DIR share/hiredis_ssl) else() - SET(CMAKE_CONF_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/hiredis_ssl) + SET(CMAKE_CONF_INSTALL_DIR share/hiredis_ssl) endif() configure_package_config_file(hiredis_ssl-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hiredis_ssl-config.cmake INSTALL_DESTINATION ${CMAKE_CONF_INSTALL_DIR} ================================================ FILE: ports/hiredis/fix-ssize_t.patch ================================================ diff --git a/hiredis.h b/hiredis.h --- a/hiredis.h +++ b/hiredis.h @@ -40,6 +40,7 @@ #else struct timeval; /* forward declaration */ typedef long long ssize_t; +#define _SSIZE_T_ /* for compatibility with libuv */ #endif #include /* uintXX_t, etc */ #include "sds.h" /* for sds */ ================================================ FILE: ports/hiredis/fix-timeval.patch ================================================ diff --git a/async_private.h b/async_private.h index d0133ae..7760b60 100644 --- a/async_private.h +++ b/async_private.h @@ -32,6 +32,11 @@ #ifndef __HIREDIS_ASYNC_PRIVATE_H #define __HIREDIS_ASYNC_PRIVATE_H +#ifdef _WIN32 +#include +#include +#endif + #define _EL_ADD_READ(ctx) \ do { \ refreshTimeout(ctx); \ ================================================ FILE: ports/hiredis/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO redis/hiredis REF "v${VERSION}" SHA512 e6e9f7e617bf1d03bdf64a80e74ed24816b6c71607b976757a9962ae02a3b65be7006d84fd353dd5a63c8d0ef1ed385c3b73851b4a119c5ed48f3f86437cf250 HEAD_REF master PATCHES fix-timeval.patch fix-ssize_t.patch support-static.patch fix-cmake-conf-install-dir.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl ENABLE_SSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DDISABLE_TESTS=ON -DBUILD_SHARED_LIBS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() if("ssl" IN_LIST FEATURES) vcpkg_cmake_config_fixup(PACKAGE_NAME hiredis_ssl CONFIG_PATH share/hiredis_ssl) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/hiredis/hiredis.h" [[typedef long long ssize_t; #define _SSIZE_T_ /* for compatibility with libuv */]] [[typedef intptr_t ssize_t;]] ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/hiredis/sds.h" [[typedef long long ssize_t; #define SSIZE_MAX (LLONG_MAX >> 1)]] [[typedef intptr_t ssize_t; #define SSIZE_MAX INTPTR_MAX]] ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hiredis/support-static.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b7d6ee8..8cf6c4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,8 @@ ENDIF() ADD_LIBRARY(hiredis ${hiredis_sources}) ADD_LIBRARY(hiredis::hiredis ALIAS hiredis) +ADD_LIBRARY(hiredis_static STATIC ${hiredis_sources}) +SET_TARGET_PROPERTIES(hiredis_static PROPERTIES EXCLUDE_FROM_ALL TRUE) set(hiredis_export_name hiredis CACHE STRING "Name of the exported target") set_target_properties(hiredis PROPERTIES EXPORT_NAME ${hiredis_export_name}) @@ -156,6 +158,8 @@ IF(ENABLE_SSL) ssl.c) ADD_LIBRARY(hiredis_ssl ${hiredis_ssl_sources}) ADD_LIBRARY(hiredis::hiredis_ssl ALIAS hiredis_ssl) + ADD_LIBRARY(hiredis_ssl_static STATIC ${hiredis_ssl_sources}) + SET_TARGET_PROPERTIES(hiredis_ssl_static PROPERTIES EXCLUDE_FROM_ALL TRUE) IF (APPLE AND BUILD_SHARED_LIBS) SET_PROPERTY(TARGET hiredis_ssl PROPERTY LINK_FLAGS "-Wl,-undefined -Wl,dynamic_lookup") ================================================ FILE: ports/hiredis/vcpkg.json ================================================ { "name": "hiredis", "version": "1.3.0", "description": "Hiredis is a minimalistic C client library for the Redis database.", "homepage": "https://github.com/redis/hiredis", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "Build hiredis_ssl for SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/hjson-cpp/fix-runtime-destination.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f1f6cf4..05189a3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -33,6 +33,6 @@ set_target_properties(hjson PROPERTIES ) if(HJSON_ENABLE_INSTALL) - install(TARGETS hjson EXPORT hjson DESTINATION ${lib_dest}) + install(TARGETS hjson EXPORT hjson DESTINATION ${lib_dest} RUNTIME DESTINATION bin) install(FILES ${header} DESTINATION ${include_dest}) endif() ================================================ FILE: ports/hjson-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hjson/hjson-cpp REF "${VERSION}" SHA512 ae97d44cbc3b896fb52cd435a7cfa7212025e2db718b316fe2b087d5b56f84b5a5da58b72d490ac6ff7e822278a816a73d9c7c50cf56c2e97f48009f3312b097 HEAD_REF master PATCHES fix-runtime-destination.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHJSON_ENABLE_INSTALL=ON -DHJSON_ENABLE_TEST=OFF -DHJSON_ENABLE_PERFTEST=OFF -DHJSON_VERSIONED_INSTALL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME hjson CONFIG_PATH lib/hjson) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hjson-cpp/vcpkg.json ================================================ { "name": "hjson-cpp", "version": "2.6", "description": "Hjson for C++", "homepage": "https://hjson.github.io", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hlslpp/hlslpp-config.cmake ================================================ add_library(unofficial::hlslpp::hlslpp INTERACE IMPORTED) target_include_directories(unofficial::hlslpp::hlslpp INTERFACE "${CMAKE_CURRENT_LIST_DIR}/../../include/hlslpp") ================================================ FILE: ports/hlslpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO redorav/hlslpp REF "${VERSION}" SHA512 d70cd2a6788ffd462b088ad9ad4c9fd0aba0d971054a896626d05409afd5865f44f630e0b84329f0923b1ee2e608200a222e0207529faf22931c8260766b0c6d HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}/include/") file(RENAME "${CURRENT_PACKAGES_DIR}/include/include" "${CURRENT_PACKAGES_DIR}/include/hlslpp") # Copy and rename License -> copyright. vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Copy the cmake config file, which is used to setup the imported target. file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/${PORT}-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Copy and show the usage. configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/hlslpp/usage ================================================ hlslpp provides a CMake package: find_package(unofficial-hlslpp CONFIG REQUIRED) target_link_libraries(main PUBLIC unofficial::hlslpp::hlslpp) ================================================ FILE: ports/hlslpp/vcpkg.json ================================================ { "name": "hlslpp", "version": "3.8", "description": "Math library using HLSL syntax with multiplatform SIMD support.", "homepage": "https://github.com/redorav/hlslpp", "license": "MIT", "supports": "!x86", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hnswlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nmslib/hnswlib REF "v${VERSION}" SHA512 2bac86547374ef762083f33b5209c7c02c89b3270442dda2bc80fbc7b6a33766cb81248841deddc2ca1f7c49e3e19889955f45c91d0b601d1c883a5e1c930794 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHNSWLIB_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/hnswlib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/hnswlib/vcpkg.json ================================================ { "name": "hnswlib", "version": "0.8.0", "description": "Header-only library for fast approximate nearest neighbors", "homepage": "https://github.com/nmslib/hnswlib", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hps/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jl2922/hps REF 8d1403697a2fad6ddf02c7afb190596ca68b2105 SHA512 e0c22de8a684891a5b6faa968c72782ffb44c5359ce53a4cbd74abf5e1b6d5d1ff30ce96a4fc4c38fc7a0222d6874eab47b76c5a87fce1c43285a915d0f55814 HEAD_REF master ) # Install header files file(INSTALL DIRECTORY "${SOURCE_PATH}/src/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}" FILES_MATCHING PATTERN "*.h" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${PORT}/benchmark") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hps/usage ================================================ The package hps is header only and can be used from CMake via: find_path(HPS_INCLUDE_DIRS "hps/hps.h") target_include_directories(main PRIVATE ${HPS_INCLUDE_DIRS}) ================================================ FILE: ports/hps/vcpkg.json ================================================ { "name": "hps", "version-date": "2022-01-18", "description": "A C++11 High Performance Serialization Library.", "homepage": "https://github.com/jl2922/hps", "license": "MIT" } ================================================ FILE: ports/hpx/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" HPX_WITH_STATIC_LINKING) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO STEllAR-GROUP/hpx REF "v${VERSION}" SHA512 bf22add7a97087f68bd49fe0ae5b2bfbd7ba01d4018872c3934ebd81a632e2559e6144c5aa06779db971c642d5a41b16c8c48108af2c4069be6d9f9b72985182 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "zlib" HPX_WITH_COMPRESSION_ZLIB "snappy" HPX_WITH_COMPRESSION_SNAPPY "bzip2" HPX_WITH_COMPRESSION_BZIP2 "cuda" HPX_WITH_CUDA "mpi" HPX_WITH_PARCELPORT_MPI "mpi" HPX_WITH_PARCELPORT_MPI_MULTITHREADED ) if(NOT VCPKG_TARGET_ARCHITECTURE MATCHES "(x64|x86)") list(APPEND FEATURE_OPTIONS "-DHPX_WITH_GENERIC_CONTEXT_COROUTINES=ON") endif() file(REMOVE "${SOURCE_PATH}/cmake/FindBZip2.cmake") # Outdated vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHPX_WITH_VCPKG=ON -DHPX_WITH_TESTS=OFF -DHPX_WITH_EXAMPLES=OFF -DHPX_WITH_TOOLS=OFF -DHPX_WITH_RUNTIME=OFF -DHPX_USE_CMAKE_CXX_STANDARD=ON ${FEATURE_OPTIONS} -DHPX_WITH_PKGCONFIG=OFF -DHPX_WITH_STATIC_LINKING=${HPX_WITH_STATIC_LINKING} -DHPX_WITH_PARCELPORT_TCP=ON -DHPX_WITH_THREAD_TARGET_ADDRESS=ON -DHPX_WITH_CHECK_MODULE_DEPENDENCIES=ON -DHPX_WITH_THREAD_IDLE_RATES=ON -DVCPKG_HOST_TRIPLET=${_HOST_TRIPLET} ) vcpkg_cmake_install() # post build cleanup vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/HPX) file(GLOB_RECURSE CMAKE_FILES "${CURRENT_PACKAGES_DIR}/share/hpx/*.cmake") foreach(CMAKE_FILE IN LISTS CMAKE_FILES) file(READ ${CMAKE_FILE} _contents) string(REGEX REPLACE "lib/([A-Za-z0-9_.-]+\\.dll)" "bin/\\1" _contents "${_contents}") string(REGEX REPLACE "lib/hpx/([A-Za-z0-9_.-]+\\.dll)" "bin/hpx/\\1" _contents "${_contents}") file(WRITE ${CMAKE_FILE} "${_contents}") endforeach() vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/${PORT}/HPXConfig.cmake" "set(HPX_BUILD_TYPE \"Release\")" "set(HPX_BUILD_TYPE \"\${CMAKE_BUILD_TYPE}\")") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/${PORT}/HPXMacros.cmake" "set(CMAKE_MODULE_PATH \${CMAKE_MODULE_PATH}" "list(APPEND CMAKE_MODULE_PATH") file(INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/hpxcxx" "${CURRENT_PACKAGES_DIR}/debug/bin/hpxcxx") if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/hpxrun.py") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/hpxrun.py" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/hpxrun.py") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/hpxrun.py" "'${CURRENT_INSTALLED_DIR}/tools/openmpi/bin/mpiexec'" "'mpiexec'" IGNORE_UNCHANGED) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/hpx/usage ================================================ The port hpx provides CMake targets: find_package(HPX REQUIRED) target_link_libraries(main PRIVATE HPX::hpx) ================================================ FILE: ports/hpx/vcpkg.json ================================================ { "name": "hpx", "version": "1.11.0", "description": [ "The C++ Standards Library for Concurrency and Parallelism", "HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case." ], "homepage": "https://github.com/STEllAR-GROUP/hpx", "license": "BSL-1.0", "supports": "!(windows & arm64) & !(windows & staticcrt)", "dependencies": [ "asio", "boost-accumulators", "boost-config", "boost-context", "boost-dynamic-bitset", "boost-exception", "boost-filesystem", "boost-iostreams", "boost-lockfree", "boost-range", "boost-spirit", "boost-system", "boost-throw-exception", "boost-variant", "boost-winapi", { "name": "gperftools", "platform": "linux" }, "hwloc", { "name": "pkgconf", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "bzip2", "mpi", "snappy", "zlib" ], "features": { "bzip2": { "description": "Build with bzip2 compression", "dependencies": [ "bzip2" ] }, "cuda": { "description": "Build with CUDA support", "supports": "!linux & !(windows & arm)", "dependencies": [ "cuda" ] }, "mpi": { "description": "Build with MPI parcelport", "dependencies": [ "mpi" ] }, "snappy": { "description": "Build with snappy compression", "dependencies": [ "snappy" ] }, "zlib": { "description": "Build with zlib compression", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/htscodecs/0001-no-tests.patch ================================================ diff --git a/tests/Makefile.am b/tests/Makefile.am index 873ad3e..0ab3638 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,7 +31,7 @@ # # Standalone test programs -noinst_PROGRAMS = rans4x16pr tokenise_name3 arith_dynamic rans4x8 rans4x16pr fqzcomp_qual varint entropy +check_PROGRAMS = rans4x16pr tokenise_name3 arith_dynamic rans4x8 rans4x16pr fqzcomp_qual varint entropy LDADD = $(top_builddir)/htscodecs/libhtscodecs.la AM_CPPFLAGS = -I$(top_srcdir) ================================================ FILE: ports/htscodecs/configure_bz2.patch ================================================ diff --git a/configure.ac b/configure.ac index 082783a..b94ce25 100644 --- a/configure.ac +++ b/configure.ac @@ -97,9 +97,11 @@ AC_ARG_ENABLE([bz2], if test "$enable_bz2" != no; then bz2_devel=ok - AC_CHECK_LIB([bz2], [BZ2_bzBuffToBuffCompress], [ - LIBS="-lbz2 $LIBS" - AC_DEFINE([HAVE_LIBBZ2],1,[Define to 1 if you have the libbz2 library.])], [bz2_devel=missing]) + PKG_CHECK_MODULES([BZ2_PKG], [bzip2], [ + AC_DEFINE([HAVE_LIBBZ2],1,[Define to 1 if you have the libbz2 library.]) + LIBS="$LIBS $BZ2_PKG_LIBS" + CFLAGS="$CFLAGS $BZ2_PKG_CFLAGS" + ], [bz2_devel=missing]) if test "$bz2_devel" != "ok"; then AC_MSG_ERROR([libbzip2 development files not found. ================================================ FILE: ports/htscodecs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO samtools/htscodecs REF "v${VERSION}" SHA512 79393d6e38677a5538c8e8a4d0077012368476b87fc729acfb1f2e5737d0bd0dd0873e86b0090a9ac5227113ff834cfb30a264afd524038fcef6ba91128495eb HEAD_REF master PATCHES 0001-no-tests.patch # https://github.com/samtools/htscodecs/pull/120 configure_bz2.patch ) set(FEATURE_OPTIONS "") macro(enable_feature feature switch) if("${feature}" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "--enable-${switch}") else() list(APPEND FEATURE_OPTIONS "--disable-${switch}") endif() endmacro() enable_feature("bzip2" "bz2") vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/htscodecs/vcpkg.json ================================================ { "name": "htscodecs", "version": "1.6.6", "port-version": 1, "description": "Custom compression for CRAM and others.", "homepage": "https://github.com/samtools/htscodecs", "license": "MIT", "supports": "!windows", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "features": { "bzip2": { "description": "Enable support for BZ2 within Arith streams", "dependencies": [ "bzip2" ] } } } ================================================ FILE: ports/htslib/0001-set-linkage.patch ================================================ diff --git a/Makefile b/Makefile index 0bbb078..e98f287 100644 --- a/Makefile +++ b/Makefile @@ -958,11 +958,10 @@ $(srcprefix)htslib.map: libhts.so rm -f $@.tmp ; \ fi -install: libhts.a $(BUILT_PROGRAMS) $(BUILT_PLUGINS) $(REF_CACHE_PROGRAMS) installdirs install-$(SHLIB_FLAVOUR) install-pkgconfig +install: $(BUILT_PROGRAMS) $(BUILT_PLUGINS) installdirs install-pkgconfig $(INSTALL_PROGRAM) $(BUILT_PROGRAMS) $(REF_CACHE_PROGRAMS) $(DESTDIR)$(bindir) if test -n "$(BUILT_PLUGINS)"; then $(INSTALL_PROGRAM) $(BUILT_PLUGINS) $(DESTDIR)$(plugindir); fi $(INSTALL_DATA) $(SRC)htslib/*.h $(DESTDIR)$(includedir)/htslib - $(INSTALL_DATA) libhts.a $(DESTDIR)$(libdir)/libhts.a $(INSTALL_MAN) $(SRC)annot-tsv.1 $(SRC)bgzip.1 $(SRC)htsfile.1 $(SRC)tabix.1 $(DESTDIR)$(man1dir) if test "x$(REF_CACHE_PROGRAMS)" != "x" ; then \ $(INSTALL_MAN) $(SRC)ref_cache/ref-cache.1 $(DESTDIR)$(man1dir) ; \ @@ -970,6 +969,11 @@ install: libhts.a $(BUILT_PROGRAMS) $(BUILT_PLUGINS) $(REF_CACHE_PROGRAMS) insta $(INSTALL_MAN) $(SRC)faidx.5 $(SRC)sam.5 $(SRC)vcf.5 $(DESTDIR)$(man5dir) $(INSTALL_MAN) $(SRC)htslib-s3-plugin.7 $(DESTDIR)$(man7dir) +install-static: install + $(INSTALL_DATA) libhts.a $(DESTDIR)$(libdir)/libhts.a + +install-dynamic: install install-$(SHLIB_FLAVOUR) + installdirs: $(INSTALL_DIR) $(DESTDIR)$(bindir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/htslib $(DESTDIR)$(libdir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man5dir) $(DESTDIR)$(man7dir) $(DESTDIR)$(pkgconfigdir) if test -n "$(plugindir)"; then $(INSTALL_DIR) $(DESTDIR)$(plugindir); fi ================================================ FILE: ports/htslib/0002-pthread-flag.patch ================================================ diff --git a/Makefile b/Makefile index e98f287..ab3fdc1 100644 --- a/Makefile +++ b/Makefile @@ -145,6 +145,8 @@ HTS_BUILD_AVX2 = HTS_BUILD_AVX512 = HTS_BUILD_SSE4 = +PTHREAD = -pthread + include htslib_vars.mk include htscodecs.mk @@ -191,10 +193,10 @@ config_vars.h: .SUFFIXES: .bundle .c .cygdll .dll .o .pico .so .c.o: - $(CC) $(CFLAGS) $(TARGET_CFLAGS) $(ALL_CPPFLAGS) -c -o $@ $< + $(CC) $(CFLAGS) $(TARGET_CFLAGS) $(ALL_CPPFLAGS) $(PTHREAD) -c -o $@ $< .c.pico: - $(CC) $(CFLAGS) $(TARGET_CFLAGS) $(ALL_CPPFLAGS) $(EXTRA_CFLAGS_PIC) -c -o $@ $< + $(CC) $(CFLAGS) $(TARGET_CFLAGS) $(ALL_CPPFLAGS) $(PTHREAD) $(EXTRA_CFLAGS_PIC) -c -o $@ $< ref_cache/%.o: ref_cache/%.c $(CC) $(CFLAGS) $(REF_CACHE_EXTRA_C_FLAGS) $(TARGET_CFLAGS) $(ALL_CPPFLAGS) -c -o $@ $< @@ -409,7 +411,7 @@ print-config: # file used at runtime (when $LD_LIBRARY_PATH includes the build directory). libhts.so: $(LIBHTS_OBJS:.o=.pico) - $(CC) -shared -Wl,-soname,libhts.so.$(LIBHTS_SOVERSION) $(VERSION_SCRIPT_LDFLAGS) $(LDFLAGS) -o $@ $(LIBHTS_OBJS:.o=.pico) $(LIBS) -lpthread + $(CC) -shared -Wl,-soname,libhts.so.$(LIBHTS_SOVERSION) $(VERSION_SCRIPT_LDFLAGS) $(LDFLAGS) -o $@ $(LIBHTS_OBJS:.o=.pico) $(LIBS) $(PTHREAD) ln -sf $@ libhts.so.$(LIBHTS_SOVERSION) # Similarly this also creates libhts.NN.dylib as a byproduct, so that programs @@ -421,10 +423,10 @@ libhts.dylib: $(LIBHTS_OBJS) ln -sf $@ libhts.$(LIBHTS_SOVERSION).dylib cyghts-$(LIBHTS_SOVERSION).dll libhts.dll.a: $(LIBHTS_OBJS) - $(CC) -shared -Wl,--out-implib=libhts.dll.a -Wl,--enable-auto-import $(LDFLAGS) -o $@ -Wl,--whole-archive $(LIBHTS_OBJS) -Wl,--no-whole-archive $(LIBS) -lpthread + $(CC) -shared -Wl,--out-implib=libhts.dll.a -Wl,--enable-auto-import $(LDFLAGS) -o $@ -Wl,--whole-archive $(LIBHTS_OBJS) -Wl,--no-whole-archive $(LIBS) $(PTHREAD) hts-$(LIBHTS_SOVERSION).dll hts.dll.a: $(LIBHTS_OBJS) - $(CC) -shared -Wl,--out-implib=hts.dll.a -Wl,--enable-auto-import -Wl,--exclude-all-symbols $(LDFLAGS) -o $@ -Wl,--whole-archive $(LIBHTS_OBJS) -Wl,--no-whole-archive $(LIBS) -lpthread + $(CC) -shared -Wl,--out-implib=hts.dll.a -Wl,--enable-auto-import -Wl,--exclude-all-symbols $(LDFLAGS) -o $@ -Wl,--whole-archive $(LIBHTS_OBJS) -Wl,--no-whole-archive $(LIBS) $(PTHREAD) hts-$(LIBHTS_SOVERSION).def: hts-$(LIBHTS_SOVERSION).dll gendef hts-$(LIBHTS_SOVERSION).dll @@ -471,7 +473,7 @@ hts-object-files: $(LIBHTS_OBJS) # may not be able to access libhts symbols via the main program's libhts # if that was dynamically loaded without an explicit RTLD_GLOBAL. %.so: %.pico libhts.so - $(CC) -shared -Wl,-E $(LDFLAGS) -o $@ $< libhts.so $(LIBS) -lpthread + $(CC) -shared -Wl,-E $(LDFLAGS) -o $@ $< libhts.so $(LIBS) $(PTHREAD) # For programs *statically* linked to libhts.a, on macOS loading a plugin # linked to a shared libhts.NN.dylib would lead to conflicting duplicate @@ -553,16 +555,16 @@ htscodecs/htscodecs/rANS_static32x16pr_avx512.o htscodecs/htscodecs/rANS_static3 htscodecs/htscodecs/rANS_static32x16pr_sse4.o htscodecs/htscodecs/rANS_static32x16pr_sse4.pico: TARGET_CFLAGS = $(HTS_CFLAGS_SSE4) annot-tsv: annot-tsv.o libhts.a - $(CC) $(LDFLAGS) -o $@ annot-tsv.o libhts.a $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ annot-tsv.o libhts.a $(LIBS) $(PTHREAD) bgzip: bgzip.o libhts.a - $(CC) $(LDFLAGS) -o $@ bgzip.o libhts.a $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ bgzip.o libhts.a $(LIBS) $(PTHREAD) htsfile: htsfile.o libhts.a - $(CC) $(LDFLAGS) -o $@ htsfile.o libhts.a $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ htsfile.o libhts.a $(LIBS) $(PTHREAD) tabix: tabix.o libhts.a - $(CC) $(LDFLAGS) -o $@ tabix.o libhts.a $(LIBS) -lpthread + $(CC) $(LDFLAGS) -o $@ tabix.o libhts.a $(LIBS) $(PTHREAD) ref_cache/ref-cache: $(REF_CACHE_OBJS) $(CC) $(LDFLAGS) $(REF_CACHE_EXTRA_LD_FLAGS) -o $@ $(REF_CACHE_OBJS) -lcurl ================================================ FILE: ports/htslib/0003-no-tests.patch ================================================ diff --git a/Makefile b/Makefile index fb4f527..751df4b 100644 --- a/Makefile +++ b/Makefile @@ -111,7 +111,7 @@ BUILT_THRASH_PROGRAMS = \ test/thrash_threads6 \ test/thrash_threads7 all: lib-static lib-shared $(BUILT_PROGRAMS) plugins \ - $(BUILT_TEST_PROGRAMS) htslib_static.mk htslib-uninstalled.pc + htslib_static.mk htslib-uninstalled.pc # Report compiler and version ================================================ FILE: ports/htslib/0004-fix-find-htscodecs.patch ================================================ diff --git a/configure.ac b/configure.ac index 49f2cbc..434086f 100644 --- a/configure.ac +++ b/configure.ac @@ -156,7 +156,7 @@ m4_ifdef([PKG_PROG_PKG_CONFIG], [PKG_PROG_PKG_CONFIG], [PKG_CONFIG=""]) need_crypto=no pc_requires= static_LDFLAGS=$LDFLAGS -static_LIBS='-lpthread -lz -lm' +static_LIBS='-pthread -lz -lm' private_LIBS=$LDFLAGS AC_ARG_ENABLE([versioned-symbols], @@ -404,7 +404,7 @@ AS_IF([test "x$with_external_htscodecs" != "xno"], AC_CHECK_HEADER([htscodecs/rANS_static4x16.h],[], [libhtscodecs='missing header'],[;]) AC_CHECK_LIB([htscodecs],[rans_compress_bound_4x16], - [:],[libhtscodecs='missing library']) + [:],[libhtscodecs='missing library'], ["$static_LIBS"]) AS_IF([test "$libhtscodecs" = "ok"], [AC_DEFINE([HAVE_EXTERNAL_LIBHTSCODECS], 1, [Define if using an external libhtscodecs]) LIBS="-lhtscodecs $LIBS" ================================================ FILE: ports/htslib/bzip2-use-pkgconfig.diff ================================================ diff --git a/configure.ac b/configure.ac index 593a664..5fcca0d 100644 --- a/configure.ac +++ b/configure.ac @@ -412,8 +412,11 @@ fi], if test "$enable_bz2" != no; then bz2_devel=ok - AC_CHECK_HEADER([bzlib.h], [], [bz2_devel=missing], [;]) - AC_CHECK_LIB([bz2], [BZ2_bzBuffToBuffCompress], [], [bz2_devel=missing]) + PKG_CHECK_MODULES([BZ2_PKG], [bzip2], [ + AC_DEFINE([HAVE_LIBBZ2], 1, [Define if libbzip2 is available.]) + LIBS="$LIBS $BZ2_PKG_LIBS" + CFLAGS="$CFLAGS $BZ2_PKG_CFLAGS" + ], [bz2_devel=missing]) if test $bz2_devel != ok; then MSG_ERROR([libbzip2 development files not found @@ -430,12 +433,7 @@ produced elsewhere unreadable) or resolve this error to build HTSlib.]) fi dnl Unfortunately the 'bzip2' package-cfg module is not standard. dnl Redhat/Fedora has it; Debian/Ubuntu does not. - if test -n "$PKG_CONFIG" && "$PKG_CONFIG" --exists bzip2; then pc_requires="$pc_requires bzip2" - else - private_LIBS="$private_LIBS -lbz2" - fi - static_LIBS="$static_LIBS -lbz2" fi if test "$enable_lzma" != no; then ================================================ FILE: ports/htslib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO samtools/htslib REF "${VERSION}" SHA512 4fefb02ded13808afdb04b343d84bf78127338a8110ef7b11417cc1b62763ae4aafce65c35d711f713475e86df9e44c4082d64ee9d445dd6ff61b083de2af77e HEAD_REF develop PATCHES 0001-set-linkage.patch 0002-pthread-flag.patch 0003-no-tests.patch 0004-fix-find-htscodecs.patch bzip2-use-pkgconfig.diff ) set(FEATURE_OPTIONS "") macro(enable_feature feature switch) if("${feature}" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "--enable-${switch}") else() list(APPEND FEATURE_OPTIONS "--disable-${switch}") endif() endmacro() enable_feature("bzip2" "bz2") enable_feature("lzma" "lzma") if("deflate" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "--with-libdeflate") else() list(APPEND FEATURE_OPTIONS "--without-libdeflate") endif() vcpkg_configure_make( AUTOCONFIG SOURCE_PATH "${SOURCE_PATH}" OPTIONS --with-external-htscodecs --disable-libcurl --disable-gcs --disable-s3 --disable-plugins ${FEATURE_OPTIONS} ) vcpkg_install_make( INSTALL_TARGET install-${VCPKG_LIBRARY_LINKAGE} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/htslib/vcpkg.json ================================================ { "name": "htslib", "version": "1.23.1", "description": "C library for high-throughput sequencing data formats", "homepage": "https://github.com/samtools/htslib", "license": "MIT", "supports": "!windows", "dependencies": [ "htscodecs", "zlib" ], "features": { "bzip2": { "description": "Enable support for BZ2-compressed CRAM files", "dependencies": [ "bzip2" ] }, "deflate": { "description": "Use libdeflate for faster crc and deflate algorithms", "dependencies": [ "libdeflate" ] }, "lzma": { "description": "Enable support for LZMA-compressed CRAM files", "dependencies": [ "liblzma" ] } } } ================================================ FILE: ports/http-parser/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) project(http-parser C) if(CMAKE_BUILD_TYPE MATCHES "Release") add_definitions(-DHTTP_PARSER_STRICT=0) endif() add_library(http_parser http_parser.c http_parser.h) target_include_directories(http_parser PUBLIC $) install( TARGETS http_parser EXPORT NODEJS_HTTP_PARSER_ALL_TARGETS LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) install( EXPORT NODEJS_HTTP_PARSER_ALL_TARGETS NAMESPACE unofficial::http_parser:: FILE unofficial-http-parser-config.cmake DESTINATION share/unofficial-http-parser ) install(FILES http_parser.h DESTINATION include) ================================================ FILE: ports/http-parser/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nodejs/http-parser REF 2343fd6b5214b2ded2cdcf76de2bf60903bb90cd # v2.9.4 SHA512 9fb95794d2c278c933e9bff0284befd1a8c8cf8ddda8e9929669f3134246d7fe81b54293359164d947f9278e2dd28b87d29a8ad8f523ed659d62713d782c7e46 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-http-parser) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE-MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/http-parser/vcpkg.json ================================================ { "name": "http-parser", "version": "2.9.4", "port-version": 3, "description": "HTTP Parser.", "homepage": "https://github.com/nodejs/http-parser", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/huira/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Only headers and tools vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO huira-render/huira REF "v${VERSION}" SHA512 cd2f1208f318a8ed28109618b623f574767241c5dd6da63458f8921793f97f6553636a50fc05c55f5223664321bb1f2a9e8b7791738037b0d7d985d8b877e976 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools HUIRA_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DHUIRA_NATIVE_ARCH=OFF -DHUIRA_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/huira) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES huira AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/huira/usage ================================================ huira provides CMake integration: find_package(huira CONFIG REQUIRED) target_link_libraries(main PRIVATE huira::huira) ================================================ FILE: ports/huira/vcpkg.json ================================================ { "name": "huira", "version": "0.9.1", "description": "A library for space rendering, LiDAR simulation, and solar radiation pressure modeling.", "homepage": "https://github.com/huira-render/huira", "documentation": "https://docs.huira.space", "license": "MIT", "supports": "!android & !uwp & !xbox", "dependencies": [ "assimp", "cfitsio", "cspice", { "name": "embree", "default-features": false, "features": [ "geometry-instance", "geometry-triangle", "ray-packets", "tasking-tbb" ] }, "fftw3", "glm", "libjpeg-turbo", "libpng", "tbb", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build huira command line tools", "dependencies": [ { "name": "curl", "default-features": false }, "indicators" ] } } } ================================================ FILE: ports/hungarian/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.8) project (hungarian C) add_library(hungarian ${CMAKE_CURRENT_LIST_DIR}/libhungarian/hungarian.h ${CMAKE_CURRENT_LIST_DIR}/libhungarian/hungarian.c ) target_include_directories(hungarian PUBLIC $ $ ) set_target_properties(hungarian PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_LIST_DIR}/libhungarian/hungarian.h) install( TARGETS hungarian EXPORT hungarian RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include ) install(EXPORT hungarian DESTINATION "share/hungarian" FILE hungarianConfig.cmake NAMESPACE hungarian:: ) ================================================ FILE: ports/hungarian/LICENSE.txt ================================================ /******************************************************************** ******************************************************************** ** ** libhungarian by Cyrill Stachniss, 2004 ** ** ** Solving the Minimum Assignment Problem using the ** Hungarian Method. ** ** ** This file may be freely copied and distributed! ** ** ** Parts of the used code was originally provided by the ** "Stanford GraphGase", but I made changes to this code. ** As asked by the copyright node of the "Stanford GraphGase", ** I hereby proclaim that this file are *NOT* part of the ** "Stanford GraphGase" distrubition! ** ** This file is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ** PURPOSE. ** ******************************************************************** ********************************************************************/ ================================================ FILE: ports/hungarian/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://www2.informatik.uni-freiburg.de/~stachnis/misc/libhungarian-v${VERSION}.tgz" FILENAME "libhungarian-v${VERSION}.tgz" SHA512 1fa105e351c307c07bb96892c9d4c44b167d92cbed80962a8653ac35b8afe00fcf5dcc2d920b95671d6c3cd86745362a64dd8dc173623a8179006e2c7b2cbc69 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hungarian/vcpkg.json ================================================ { "name": "hungarian", "version": "0.1.3", "port-version": 3, "description": "C-implementation of the Hungarian Method: finding the optimal assignment (assigning a set of jobs to a set of machines) in O(n^3), where n=max{#jobs, #machines}. The implementation is a sligntly enhanced version of the implementation provided by the Stanford GraphBase", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hunspell/0005-autotools-subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index c0aae53..769aef5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = -I m4 -SUBDIRS= po src man tests +SUBDIRS= po src pkgconfdir = $(libdir)/pkgconfig pkgconf_DATA = hunspell.pc diff --git a/configure.ac b/configure.ac index 358cb1d..152adef 100644 --- a/configure.ac +++ b/configure.ac @@ -38,6 +38,9 @@ dnl internationalization macros AM_GNU_GETTEXT_VERSION(0.18) AM_GNU_GETTEXT([external]) +AC_ARG_ENABLE(tools,[]) +AM_CONDITIONAL(DISABLE_TOOLS, test x$enable_tools != xyes) + AC_ARG_WITH(warnings,[ --with-warnings compile with warning messages],[ AC_DEFINE(HUNSPELL_WARNING_ON,1,"Define if you need warning messages") ]) diff --git a/src/Makefile.am b/src/Makefile.am index 45b7703..27700af 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1 +1,5 @@ +if DISABLE_TOOLS +SUBDIRS=hunspell +else SUBDIRS=hunspell parsers tools +endif ================================================ FILE: ports/hunspell/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hunspell/hunspell REF "v${VERSION}" SHA512 d007edc8cb7ff95048361418b088bb062962973247c940aa826c9859a5ef90a9734100bffe7c7ac9a774f2e233605e814efb9e7fd3fc8c4ef4b978e9ec990cba HEAD_REF master PATCHES 0005-autotools-subdirs.patch ) file(REMOVE "${SOURCE_PATH}/README") #README is a symlink configure_file("${SOURCE_PATH}/README.md" "${SOURCE_PATH}/README" COPYONLY) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DHUNSPELL_STATIC") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DHUNSPELL_STATIC") endif() vcpkg_list(SET options) if("tools" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-tools") endif() if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG ADDITIONAL_MSYS_PACKAGES gzip OPTIONS ${options} OPTIONS_DEBUG --disable-tools ) if("nls" IN_LIST FEATURES) vcpkg_build_make(BUILD_TARGET dist LOGFILE_ROOT build-dist) endif() vcpkg_install_make() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") vcpkg_fixup_pkgconfig() set(HUNSPELL_EXPORT_HDR "${CURRENT_PACKAGES_DIR}/include/hunspell/hunvisapi.h") if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${HUNSPELL_EXPORT_HDR}" "#if defined(HUNSPELL_STATIC)" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( COMMENT "Hunspell is licensed under LGPL/GPL/MPL tri-license." FILE_LIST "${SOURCE_PATH}/license.hunspell" "${SOURCE_PATH}/license.myspell" "${SOURCE_PATH}/COPYING.MPL" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LESSER" ) ================================================ FILE: ports/hunspell/vcpkg.json ================================================ { "name": "hunspell", "version": "1.7.2", "port-version": 1, "description": "The most popular spellchecking library.", "homepage": "https://github.com/hunspell/hunspell", "license": "MPL-1.1 OR LGPL-2.1-or-later OR GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "libiconv" ], "features": { "nls": { "description": "Enable native language support", "supports": "!windows | mingw", "dependencies": [ "gettext", { "name": "gettext", "host": true, "features": [ "tools" ] } ] }, "tools": { "description": "Build hunspell tools", "supports": "!windows | mingw" } } } ================================================ FILE: ports/hwloc/fix_shared_win_build.patch ================================================ diff --git a/configure.ac b/configure.ac index 8af26ec..0d52b00 100644 --- a/configure.ac +++ b/configure.ac @@ -127,6 +127,8 @@ AS_IF([test "$enable_embedded_mode" != "yes"], #################################################################### AC_SUBST([libhwloc_so_version]) +libhwloc_so_version_current_minus_age=`expr [[ $libhwloc_so_version=~ ([[:digit:]]+):[[:digit:]]+:([[:digit:]]+) ]] && real_so_ver=$(expr ${BASH_REMATCH[1]} - ${BASH_REMATCH[2]})` +AC_SUBST(libhwloc_so_version_current_minus_age) AC_SUBST([libhwloc_so_name]) # Setup the hwloc core diff --git a/hwloc/Makefile.am b/hwloc/Makefile.am index 4b3800a..f96473c 100644 --- a/hwloc/Makefile.am +++ b/hwloc/Makefile.am @@ -189,11 +189,10 @@ if HWLOC_HAVE_WINDOWS LC_MESSAGES=C export LC_MESSAGES -ldflags += -Xlinker --output-def -Xlinker .libs/libhwloc.def if HWLOC_HAVE_MS_LIB .libs/libhwloc.lib: libhwloc.la - [ ! -r .libs/libhwloc.def ] || "$(HWLOC_MS_LIB)" -machine:$(HWLOC_MS_LIB_ARCH) -def:.libs/libhwloc.def -name:libhwloc-$(libhwloc_so_name) -out:.libs/libhwloc.lib +# [ ! -r .libs/libhwloc.def ] || "$(HWLOC_MS_LIB)" -machine:$(HWLOC_MS_LIB_ARCH) -def:.libs/libhwloc.def -name:libhwloc-$(libhwloc_so_name) -out:.libs/libhwloc.lib all-local: .libs/libhwloc.lib endif HWLOC_HAVE_MS_LIB ================================================ FILE: ports/hwloc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-mpi/hwloc REF "hwloc-${VERSION}" SHA512 1ed47955d4a3ecf66636f1c5a89648ef055aa4f26fac9b9bc64d6f7715d671dc823337ebf38df53d60b50d697eccadfbd48d28b4540a5153c59d7eecd347f91c PATCHES fix_shared_win_build.patch stdout_fileno.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(OPTIONS ac_cv_prog_cc_c99= # To avoid the compiler check for C99 which will fail for MSVC --disable-plugin-dlopen) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS "HWLOC_LDFLAGS=-no-undefined") elseif(VCPKG_TARGET_IS_OSX) list(APPEND OPTIONS "HWLOC_LDFLAGS=-framework CoreFoundation") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG OPTIONS ${OPTIONS} --disable-libxml2 --disable-opencl --disable-cairo --disable-cuda --disable-libudev --disable-levelzero --disable-nvml --disable-rsmi --disable-pci #--disable-cpuid #--disable-picky ) vcpkg_install_make() vcpkg_fixup_pkgconfig() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/hwloc/bin/hwloc-compress-dir") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/hwloc/bin/hwloc-compress-dir" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../.." IGNORE_UNCHANGED) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/hwloc/debug/bin/hwloc-compress-dir") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/hwloc/debug/bin/hwloc-compress-dir" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../.." IGNORE_UNCHANGED) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/hwloc/bin/hwloc-gather-topology") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/hwloc/bin/hwloc-gather-topology" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../..") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/hwloc/debug/bin/hwloc-gather-topology") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/hwloc/debug/bin/hwloc-gather-topology" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../..") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/COPYING.txt" "${CURRENT_PACKAGES_DIR}/debug/README.txt" "${CURRENT_PACKAGES_DIR}/debug/NEWS.txt" "${CURRENT_PACKAGES_DIR}/COPYING.txt" "${CURRENT_PACKAGES_DIR}/README.txt" "${CURRENT_PACKAGES_DIR}/NEWS.txt" ) ================================================ FILE: ports/hwloc/stdout_fileno.patch ================================================ diff --git a/utils/lstopo/lstopo.c b/utils/lstopo/lstopo.c index a946581c3..ecbf64aff 100644 --- a/utils/lstopo/lstopo.c +++ b/utils/lstopo/lstopo.c @@ -58,6 +58,10 @@ # endif #endif +#if _MSC_VER +#define STDOUT_FILENO _fileno( stdout ) +#endif + #ifdef ANDROID extern void setJNIEnv(); #endif ================================================ FILE: ports/hwloc/vcpkg.json ================================================ { "name": "hwloc", "version": "2.11.2", "maintainers": "bgoglin", "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." ], "homepage": "https://github.com/open-mpi/hwloc", "license": "BSD-2-Clause", "supports": "!uwp" } ================================================ FILE: ports/hyperscan/0001-remove-Werror.patch ================================================ From e2c0779de8096623be874c5fa0d275113b9d1204 Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Tue, 22 Sep 2020 14:44:36 -0700 Subject: [PATCH] remove Werror --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 83197af..d27eb76 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,8 +235,8 @@ else() if (NOT RELEASE_BUILD) # -Werror is most useful during development, don't potentially break # release builds - set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror") - set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Werror") + #set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror") + #set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Werror") endif() if (DISABLE_ASSERTS) -- 2.24.3 (Apple Git-128) ================================================ FILE: ports/hyperscan/0002-fix-threads.patch ================================================ diff --git a/tools/hscheck/CMakeLists.txt b/tools/hscheck/CMakeLists.txt index 2ae0613..3a47776 100644 --- a/tools/hscheck/CMakeLists.txt +++ b/tools/hscheck/CMakeLists.txt @@ -11,7 +11,7 @@ if (BUILD_CHIMERA) add_definitions(-DHS_HYBRID) add_executable(hscheck ${hscheck_SOURCES}) if(NOT WIN32) - target_link_libraries(hscheck hs chimera ${PCRE_LDFLAGS} expressionutil pthread) + target_link_libraries(hscheck hs chimera ${PCRE_LDFLAGS} expressionutil Threads::Threads) else() target_link_libraries(hscheck hs chimera pcre expressionutil) endif() @@ -22,7 +22,7 @@ else() add_executable(hscheck ${hscheck_SOURCES}) endif() if(NOT WIN32) - target_link_libraries(hscheck hs expressionutil pthread) + target_link_libraries(hscheck hs expressionutil Threads::Threads) else() target_link_libraries(hscheck hs expressionutil) endif() diff --git a/tools/hscollider/CMakeLists.txt b/tools/hscollider/CMakeLists.txt index a4d71b2..ca9fa0c 100644 --- a/tools/hscollider/CMakeLists.txt +++ b/tools/hscollider/CMakeLists.txt @@ -68,11 +68,11 @@ add_dependencies(hscollider ragel_ColliderCorporaParser) if(NOT WIN32) if (BUILD_CHIMERA) target_link_libraries(hscollider hs chimera ${PCRE_LDFLAGS} databaseutil - expressionutil corpusomatic crosscompileutil pthread + expressionutil corpusomatic crosscompileutil Threads::Threads "${BACKTRACE_LDFLAGS}") else() target_link_libraries(hscollider hs ${PCRE_LDFLAGS} databaseutil - expressionutil corpusomatic crosscompileutil pthread + expressionutil corpusomatic crosscompileutil Threads::Threads "${BACKTRACE_LDFLAGS}") endif() ================================================ FILE: ports/hyperscan/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/hyperscan REF "v${VERSION}" SHA512 328f21133161d16b36ebdc7f8b80a7afe7ca9e7e7433348e9bfa9acb5f3641522e8314beea1b219891f4e95f1392ff8036ebb87780fe808b8b4bd15a535e9509 HEAD_REF master PATCHES 0001-remove-Werror.patch 0002-fix-threads.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPYTHON_EXECUTABLE=${PYTHON3}" "-DRAGEL=${CURRENT_HOST_INSTALLED_DIR}/tools/ragel${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/hyperscan/vcpkg.json ================================================ { "name": "hyperscan", "version": "5.4.2", "port-version": 2, "description": "A regular expression library with O(length of input) match times that takes advantage of Intel hardware to provide blazing speed.", "homepage": "https://www.hyperscan.io", "license": "BSD-3-Clause", "supports": "!arm", "dependencies": [ "boost-array", "boost-chrono", "boost-config", "boost-core", "boost-crc", "boost-detail", "boost-dynamic-bitset", "boost-functional", "boost-graph", "boost-icl", "boost-multi-array", "boost-ptr-container", "boost-random", "boost-regex", "boost-system", "boost-thread", "boost-type-traits", "boost-unordered", "boost-utility", "pcre", { "name": "ragel", "host": true }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/hypodermic/disable_hypodermic_tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b6358a..5f55bc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS} ${WARNING_FLAGS}") add_subdirectory(Hypodermic) -add_subdirectory(Hypodermic.Tests) +#add_subdirectory(Hypodermic.Tests) # uninstall target ================================================ FILE: ports/hypodermic/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ybainier/Hypodermic REF ba5516d4e78230c1187debb01ebdf01e5d11f62d # 2023-03-03 SHA512 40a119baafc23149117e286c38c00bdc0debda1cb6fefbecfdbc6e1a779789c6c884d1e7513aaf55060d550232c3dc8777ef0ebf0cd94e998ff2d5d6d375d2ff HEAD_REF master PATCHES "disable_hypodermic_tests.patch" ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) # Put the license file where vcpkg expects it file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hypodermic/vcpkg.json ================================================ { "name": "hypodermic", "version-date": "2023-03-03", "description": "Hypodermic is a non-intrusive header only IoC container for C++", "homepage": "https://github.com/ybainier/Hypodermic", "license": "MIT", "dependencies": [ "boost-algorithm", "boost-config", "boost-format", "boost-range", "boost-signals2", "boost-system", "boost-test", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/hypre/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hypre-space/hypre REF "v${VERSION}" SHA512 c1b09a31781ce4e1a411c486424cf7a4df1275d53445ed83d0e4e210dcc87e9c09e17e26cc5ee736aebbd70618674cd3b7dba6736f8e725ba1c3d981869ada24 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" HYPRE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" DISABLE_PARALLEL_CONFIGURE # See 'Autogenerate csr_spgemm_device_numer$ files' OPTIONS -DHYPRE_SHARED=${HYPRE_SHARED} -DHYPRE_ENABLE_HYPRE_BLAS=OFF -DHYPRE_ENABLE_HYPRE_LAPACK=OFF OPTIONS_RELEASE -DHYPRE_BUILD_TYPE=Release "-DHYPRE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}" OPTIONS_DEBUG -DHYPRE_BUILD_TYPE=Debug "-DHYPRE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/HYPRE) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/hypre/vcpkg.json ================================================ { "name": "hypre", "version": "2.32.0", "description": "Parallel solvers for sparse linear systems featuring multigrid methods", "homepage": "https://computation.llnl.gov/projects/hypre-scalable-linear-solvers-multigrid-methods", "dependencies": [ "blas", "lapack", "mpi", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/iausofa/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) # Sets the name of the project(iausofa LANGUAGES C) include(GNUInstallDirs) # set SOURCE dir set(SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") # set .c files except for test_sofa.c file(GLOB_RECURSE SOURCES "${SOURCE_DIR}/*.c") list(REMOVE_ITEM SOURCES "${SOURCE_DIR}/test_sofa.c") # set .h files file(GLOB_RECURSE HEADERS "${SOURCE_DIR}/*.h") # Add a library target called , eg. .lib add_library(iausofa ${SOURCES}) # Sets properties on if(LINUX) target_link_libraries(iausofa PRIVATE m) endif() # Specifies include directories to use when compiling a given target_include_directories(iausofa PUBLIC $ # for headers when building $ # for client in install mode ) # Install target Output Artifacts and associated files install(TARGETS iausofa EXPORT iausofa_targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") install(FILES ${HEADERS} DESTINATION include/iausofa) # Install for dependent projects: install(EXPORT iausofa_targets FILE unofficial-iausofa-targets.cmake NAMESPACE unofficial::iausofa:: DESTINATION share/unofficial-iausofa) # Generate the config file in the current binary dir (this ensures it's not placed directly in source) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-iausofa-config.cmake" "include(CMakeFindDependencyMacro)\n" "include(\"\${CMAKE_CURRENT_LIST_DIR}/unofficial-iausofa-targets.cmake\")\n" ) # Install the generated config file install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-iausofa-config.cmake" DESTINATION share/unofficial-iausofa) ================================================ FILE: ports/iausofa/LICENSE ================================================ ===================== SOFA License ===================== The license content can be found at [SOFA Terms and Conditions](https://iausofa.org/tandc.html) or by downloading the source code from [SOFA Home Page](https://iausofa.org) and checking the end of any code file. ================================================ FILE: ports/iausofa/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile( ARCHIVE URLS "http://iausofa.org/2023_1011_C/sofa_c-${VERSION}.tar.gz" FILENAME "sofa_c-${VERSION}.tar.gz" SHA512 8e7d67f7ac7a285a96160c96d16b1921ccb7a9324b83280b1594efcbbd7eb78c4d41898c1e5acfa5081842e4aeee15a96572d21b466bfda7ef7582c58624d376 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") set(SOURCE_SUBDIR "${SOURCE_PATH}/${VERSION}/c") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_SUBDIR}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_SUBDIR}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-iausofa") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/LICENSE") ================================================ FILE: ports/iausofa/usage ================================================ iausofa provides CMake targets: find_package(unofficial-iausofa CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::iausofa::iausofa) ================================================ FILE: ports/iausofa/vcpkg.json ================================================ { "name": "iausofa", "version": "20231011", "description": "This is C version of IAU sofa software.", "homepage": "https://iausofa.org", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/icecream-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO renatoGarcia/icecream-cpp REF "v${VERSION}" SHA512 57410045b5dce11da3bba423347a0b7e861a1ce7eaae4317b08e366ff79530985fc300d12ef5ce9388bc44574cc03fd0b3c2a9b80a3949f41620778b18fd9ace HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/icecream-cpp/vcpkg.json ================================================ { "name": "icecream-cpp", "version": "1.0.0", "description": "A little (single header) library to help with the print debugging in C++11 and forward.", "homepage": "https://github.com/renatoGarcia/icecream-cpp", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/iceoryx/acl.patch ================================================ diff --git a/iceoryx_hoofs/CMakeLists.txt b/iceoryx_hoofs/CMakeLists.txt index a8238ff..9741fd3 100644 --- a/iceoryx_hoofs/CMakeLists.txt +++ b/iceoryx_hoofs/CMakeLists.txt @@ -217,7 +217,9 @@ target_link_libraries(iceoryx_hoofs ) if(LINUX) - target_link_libraries(iceoryx_hoofs PRIVATE acl atomic ${CODE_COVERAGE_LIBS}) + find_package(PkgConfig REQUIRED) + pkg_check_modules(ACL REQUIRED IMPORTED_TARGET libacl) + target_link_libraries(iceoryx_hoofs PUBLIC PkgConfig::ACL PRIVATE atomic ${CODE_COVERAGE_LIBS}) endif() target_compile_options(iceoryx_hoofs PRIVATE ${ICEORYX_WARNINGS} ${ICEORYX_SANITIZER_FLAGS}) diff --git a/iceoryx_hoofs/cmake/Config.cmake.in b/iceoryx_hoofs/cmake/Config.cmake.in index c03b3b5..731c636 100644 --- a/iceoryx_hoofs/cmake/Config.cmake.in +++ b/iceoryx_hoofs/cmake/Config.cmake.in @@ -17,6 +17,10 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) +if(LINUX) + find_dependency(PkgConfig) + pkg_check_modules(ACL REQUIRED libacl IMPORTED_TARGET) +endif() include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") list(APPEND CMAKE_MODULE_PATH "@CMAKE_INSTALL_PREFIX@/@DESTINATION_CONFIGDIR@") ================================================ FILE: ports/iceoryx/add-include-chrono.patch ================================================ diff --git a/iceoryx_hoofs/platform/win/source/time.cpp b/iceoryx_hoofs/platform/win/source/time.cpp index 4c2ab2d..4a7074b 100644 --- a/iceoryx_hoofs/platform/win/source/time.cpp +++ b/iceoryx_hoofs/platform/win/source/time.cpp @@ -16,6 +16,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "iceoryx_hoofs/platform/time.hpp" +#include static std::chrono::nanoseconds getNanoSeconds(const timespec& value) { ================================================ FILE: ports/iceoryx/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-iceoryx/iceoryx REF "v${VERSION}" SHA512 708c113f8b4e5a23830172cd67414cb6fa389f9bc34a5979b27131c3180d6758ca50257baa86cb6f74bcff71b24237cffc0e697964a7c0326e9018fbf7885c09 HEAD_REF master PATCHES acl.patch add-include-chrono.patch # https://github.com/eclipse-iceoryx/iceoryx/pull/2378 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "toml-config" TOML_CONFIG INVERTED_FEATURES "many-to-many" ONE_TO_MANY_ONLY ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/iceoryx_meta" OPTIONS ${FEATURE_OPTIONS} -DDOWNLOAD_TOML_LIB=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME iceoryx_binding_c CONFIG_PATH lib/cmake/iceoryx_binding_c DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME iceoryx_hoofs CONFIG_PATH lib/cmake/iceoryx_hoofs DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME iceoryx_posh CONFIG_PATH lib/cmake/iceoryx_posh) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) if(TOML_CONFIG) vcpkg_copy_tools(TOOL_NAMES iox-roudi AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/iceoryx/usage ================================================ iceoryx provides CMake targets: find_package(iceoryx_binding_c CONFIG REQUIRED) target_link_libraries(main PRIVATE iceoryx_binding_c::iceoryx_binding_c) find_package(iceoryx_hoofs CONFIG REQUIRED) target_link_libraries(main PRIVATE iceoryx_hoofs::iceoryx_hoofs iceoryx_hoofs::iceoryx_platform) find_package(iceoryx_posh CONFIG REQUIRED) target_link_libraries(main PRIVATE iceoryx_posh::iceoryx_posh iceoryx_posh::iceoryx_posh_roudi iceoryx_posh::iceoryx_posh_config iceoryx_posh::iceoryx_posh_gateway) ================================================ FILE: ports/iceoryx/vcpkg.json ================================================ { "name": "iceoryx", "version": "2.0.6", "port-version": 1, "description": "True zero-copy inter-process-communication", "homepage": "https://iceoryx.io", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "acl", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "many-to-many", "toml-config" ], "features": { "many-to-many": { "description": "Using the m:n pattern for communication" }, "toml-config": { "description": "TOML support for RouDi with dynamic configuration", "dependencies": [ "cpptoml" ] } } } ================================================ FILE: ports/icu/disable-static-prefix.patch ================================================ diff --git a/source/icudefs.mk.in b/source/icudefs.mk.in index 24bd97a..33169de 100644 --- a/source/icudefs.mk.in +++ b/source/icudefs.mk.in @@ -213,13 +213,13 @@ LIBICU = $(LIBPREFIX)$(ICUPREFIX) ## If we can't use the shared libraries, use the static libraries ifneq ($(ENABLE_SHARED),YES) -STATIC_PREFIX_WHEN_USED = s +STATIC_PREFIX_WHEN_USED = else STATIC_PREFIX_WHEN_USED = endif # Static library prefix and file extension -STATIC_PREFIX = s +STATIC_PREFIX = LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX) A = a SOBJ = $(SO) ================================================ FILE: ports/icu/fix_bsd_and_solaris.patch ================================================ diff --git a/source/configure b/source/configure index d1b5812..7b93221 100755 --- a/source/configure +++ b/source/configure @@ -7008,12 +7008,12 @@ printf %s "checking for genccode assembly... " >&6; } # Check to see if genccode can generate simple assembly. GENCCODE_ASSEMBLY= case "${host}" in -*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu) +*-linux*|*-kfreebsd*-gnu*|*86*-*bsd*|*86*-pc-gnu) if test "$GCC" = yes; then # We're using gcc, and the simple -a gcc command line works for genccode GENCCODE_ASSEMBLY="-a gcc" fi ;; -i*86-*-solaris*) +*86*-solaris*) if test "$GCC" = yes; then # When using gcc, look if we're also using GNU as. # When using GNU as, the simple -a gcc command line works for genccode. ================================================ FILE: ports/icu/fix_parallel_build_on_windows.patch ================================================ diff --urN a/source/data/Makefile.in b/source/data/Makefile.in --- a/source/data/Makefile.in +++ b/source/data/Makefile.in @@ -236,11 +236,12 @@ ## Include the main build rules for data files include $(top_builddir)/$(subdir)/rules.mk +PKGDATA_LIST = $(TMP_DIR)/icudata.lst ifeq ($(ENABLE_SO_VERSION_DATA),1) ifeq ($(PKGDATA_MODE),dll) SO_VERSION_DATA = $(OUTTMPDIR)/icudata.res -$(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc | $(TMP_DIR)/dirs.timestamp +$(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc $(PKGDATA_LIST) ifeq ($(MSYS_RC_MODE),1) rc.exe -i$(srcdir)/../common -i$(top_builddir)/common -fo$@ $(CPPFLAGS) $< else @@ -249,7 +250,6 @@ endif endif -PKGDATA_LIST = $(TMP_DIR)/icudata.lst ##################################################### ================================================ FILE: ports/icu/mh-darwin.patch ================================================ diff --git a/source/config/mh-darwin b/source/config/mh-darwin index 7b15709..e2cdbdb 100644 --- a/source/config/mh-darwin +++ b/source/config/mh-darwin @@ -31,7 +31,8 @@ SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS) ## Compiler switches to embed a library name and version information ifeq ($(ENABLE_RPATH),YES) -LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET)) +ID_PREFIX = @rpath +LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(ID_PREFIX)/$(notdir $(MIDDLE_SO_TARGET)) else LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) $(PKGDATA_TRAILING_SPACE) endif ================================================ FILE: ports/icu/mh-mingw.patch ================================================ diff --git a/source/config/mh-mingw b/source/config/mh-mingw index 30f6e5be81..b6364551ea 100644 --- a/source/config/mh-mingw +++ b/source/config/mh-mingw @@ -13,7 +13,7 @@ # On Windows we generally have the DLLs in the bin directory rather than the lib directory. # This setting moves the ICU DLLs into the bin folder for MinGW/MSYS2 when "make install" is run. # If you prefer to have the DLLs in the lib folder, then set this to NO instead. -MINGW_MOVEDLLSTOBINDIR = YES +MINGW_MOVEDLLSTOBINDIR = NO # We install sbin tools into the same bin directory because # pkgdata needs some of the tools in sbin, and we can't always depend on diff --git a/source/config/mh-mingw64 b/source/config/mh-mingw64 index fb64c56260..a43cc4dd71 100644 --- a/source/config/mh-mingw64 +++ b/source/config/mh-mingw64 @@ -10,7 +10,7 @@ # On Windows we generally have the DLLs in the bin directory rather than the lib directory. # This setting moves the ICU DLLs into the bin folder for MinGW/MSYS2 when "make install" is run. # If you prefer to have the DLLs in the lib folder, then set this to NO instead. -MINGW_MOVEDLLSTOBINDIR = YES +MINGW_MOVEDLLSTOBINDIR = NO # This file is similar to mh-mingw # Any changes made here may also need to be made in mh-mingw ================================================ FILE: ports/icu/mh-msys-msvc.patch ================================================ diff --git a/source/config/mh-msys-msvc b/source/config/mh-msys-msvc index 6f50798..2a669b3 100644 --- a/source/config/mh-msys-msvc +++ b/source/config/mh-msys-msvc @@ -54,7 +54,7 @@ endif # -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions. # -utf-8 set source file encoding to utf-8. CFLAGS+=-GF -nologo -utf-8 -CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8 +CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t -utf-8 -std:c++17 CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE DEFS+=-DWIN32 -DCYGWINMSVC LDFLAGS+=-nologo @@ -90,8 +90,6 @@ LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX) A = lib # Cygwin's ar can't handle Win64 right now. So we use Microsoft's tool instead. -AR = LIB.EXE#M# -ARFLAGS := -nologo $(ARFLAGS:r=)#M# RANLIB = ls -s#M# AR_OUTOPT = -OUT:#M# ================================================ FILE: ports/icu/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE URLS "https://github.com/unicode-org/icu/releases/download/release-${VERSION}/icu4c-${VERSION}-sources.tgz" FILENAME "icu4c-${VERSION}-sources.tgz" SHA512 92feddfe81c57336f386c7cbc9f6d976bf349db148a77a247c4559676f51116115c8c52c4d907feb50933f72ab75fd8e48be092bf9c8ca33a3e8fabc9372a5d6 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable-static-prefix.patch # https://gitlab.kitware.com/cmake/cmake/-/issues/16617; also mingw. fix_bsd_and_solaris.patch fix_parallel_build_on_windows.patch mh-darwin.patch mh-mingw.patch mh-msys-msvc.patch subdirs.patch vcpkg-cross-data.patch ) vcpkg_find_acquire_program(PYTHON3) set(ENV{PYTHON} "${PYTHON3}") vcpkg_list(SET CONFIGURE_OPTIONS) vcpkg_list(SET BUILD_OPTIONS) if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-extras icu_cv_host_frag=mh-linux) vcpkg_list(APPEND BUILD_OPTIONS "\"PKGDATA_OPTS=--without-assembly -O ../data/icupkg.inc\"") elseif(VCPKG_TARGET_IS_UWP) vcpkg_list(APPEND CONFIGURE_OPTIONS --disable-extras ac_cv_func_tzset=no ac_cv_func__tzset=no) string(APPEND VCPKG_C_FLAGS " -DU_PLATFORM_HAS_WINUWP_API=1") string(APPEND VCPKG_CXX_FLAGS " -DU_PLATFORM_HAS_WINUWP_API=1") vcpkg_list(APPEND BUILD_OPTIONS "\"PKGDATA_OPTS=--windows-uwp-build -O ../data/icupkg.inc\"") elseif(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_list(APPEND CONFIGURE_OPTIONS --enable-rpath) if(DEFINED CMAKE_INSTALL_NAME_DIR) vcpkg_list(APPEND BUILD_OPTIONS "ID_PREFIX=${CMAKE_INSTALL_NAME_DIR}") endif() endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND CONFIGURE_OPTIONS ac_cv_lib_m_floor=no) endif() if("tools" IN_LIST FEATURES) list(APPEND CONFIGURE_OPTIONS --enable-tools) else() list(APPEND CONFIGURE_OPTIONS --disable-tools) endif() if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_IS_MINGW AND NOT HOST_TRIPLET MATCHES "mingw") # Assuming no cross compiling because the host (windows) pkgdata tool doesn't # use the '/' path separator when creating compiler commands for mingw bash. elseif(VCPKG_CROSSCOMPILING) set(TOOL_PATH "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}") # convert to unix path string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" _VCPKG_TOOL_PATH "${TOOL_PATH}") list(APPEND CONFIGURE_OPTIONS "--with-cross-build=${_VCPKG_TOOL_PATH}") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/source" # AUTORECONF # needs Autoconf version 2.72 OPTIONS ${CONFIGURE_OPTIONS} --disable-samples --disable-tests --disable-layoutex OPTIONS_RELEASE --disable-debug --enable-release OPTIONS_DEBUG --enable-debug --disable-release ) vcpkg_make_install(OPTIONS ${BUILD_OPTIONS}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/icu" "${CURRENT_PACKAGES_DIR}/debug/lib/icu" "${CURRENT_PACKAGES_DIR}/debug/lib/icud") file(GLOB TEST_LIBS "${CURRENT_PACKAGES_DIR}/lib/*test*" "${CURRENT_PACKAGES_DIR}/debug/lib/*test*") if(TEST_LIBS) file(REMOVE ${TEST_LIBS}) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # force U_STATIC_IMPLEMENTATION macro foreach(HEADER utypes.h utf_old.h platform.h) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unicode/${HEADER}" "defined(U_STATIC_IMPLEMENTATION)" "1") endforeach() endif() # Install executables from /tools/icu/sbin to /tools/icu/bin on unix (/bin because icu require this for cross compiling) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX AND "tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES icupkg gennorm2 gencmn genccode gensprep SEARCH_DIR "${CURRENT_PACKAGES_DIR}/tools/icu/sbin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/icu/sbin" "${CURRENT_PACKAGES_DIR}/tools/icu/debug") # To cross compile, we need some files at specific positions. So lets copy them file(GLOB CROSS_COMPILE_DEFS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config/icucross.*") file(INSTALL ${CROSS_COMPILE_DEFS} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/config") if(VCPKG_TARGET_IS_WINDOWS) string(REGEX MATCH "^[0-9]*" ICU_VERSION_MAJOR "${VERSION}") file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*icu*${ICU_VERSION_MAJOR}.dll") file(COPY ${RELEASE_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") # copy dlls file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*icu*${ICU_VERSION_MAJOR}.dll") file(COPY ${RELEASE_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") if(NOT VCPKG_BUILD_TYPE) file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*icu*${ICU_VERSION_MAJOR}.dll") file(COPY ${DEBUG_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # remove any remaining dlls in /lib file(GLOB DUMMY_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll") if(DUMMY_DLLS) file(REMOVE ${DUMMY_DLLS}) endif() vcpkg_copy_pdbs() endif() vcpkg_fixup_pkgconfig() set(cxx_link_libraries "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") block(PROPAGATE cxx_link_libraries) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") list(REMOVE_ITEM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES ${VCPKG_DETECTED_CMAKE_C_IMPLICIT_LINK_LIBRARIES}) list(TRANSFORM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES REPLACE "^([^/]+)\$" "-l\\1") string(JOIN " " cxx_link_libraries ${VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) endblock() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/icu-uc.pc" "baselibs = " "baselibs = ${cxx_link_libraries} ") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/icu-uc.pc" "baselibs = " "baselibs = ${cxx_link_libraries} ") endif() endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/icu/bin/icu-config" "${CURRENT_INSTALLED_DIR}" "`dirname $0`/../../../" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/icu/bin/icu-config" "${CURRENT_HOST_INSTALLED_DIR}" "`dirname $0`/../../../../${_HOST_TRIPLET}/" IGNORE_UNCHANGED) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/icu/remove-MD-from-configure.patch ================================================ diff -urN a/source/runConfigureICU b/source/runConfigureICU --- a/source/runConfigureICU 2018-03-26 21:38:44.000000000 +0800 +++ b/source/runConfigureICU 2018-08-26 09:04:53.197454400 +0800 @@ -322,10 +322,10 @@ THE_COMP="Microsoft Visual C++" CC=cl; export CC CXX=cl; export CXX - RELEASE_CFLAGS='-Gy -MD' - RELEASE_CXXFLAGS='-Gy -MD' - DEBUG_CFLAGS='-FS -Zi -MDd' - DEBUG_CXXFLAGS='-FS -Zi -MDd' + RELEASE_CFLAGS='-Gy' + RELEASE_CXXFLAGS='-Gy' + DEBUG_CFLAGS='-FS -Zi' + DEBUG_CXXFLAGS='-FS -Zi' DEBUG_LDFLAGS='-DEBUG' ;; *BSD) ================================================ FILE: ports/icu/subdirs.patch ================================================ diff --git a/source/extra/Makefile.in b/source/extra/Makefile.in index 2e48dba..3bbae74 100644 --- a/source/extra/Makefile.in +++ b/source/extra/Makefile.in @@ -23,7 +23,7 @@ subdir = extra ## Files to remove for 'make clean' CLEANFILES = *~ -SUBDIRS = scrptrun uconv +SUBDIRS = uconv ## List of phony targets .PHONY : all all-local all-recursive install install-local \ diff --git a/source/tools/Makefile.in b/source/tools/Makefile.in index e0896f1..d009382 100644 --- a/source/tools/Makefile.in +++ b/source/tools/Makefile.in @@ -20,7 +20,6 @@ gencnval gensprep icuinfo genccode gencmn icupkg pkgdata \ gentest gennorm2 gencfu gendict icuexportdata ifneq (@platform_make_fragment_name@,mh-cygwin-msvc) -SUBDIRS += escapesrc endif ## List of phony targets ================================================ FILE: ports/icu/vcpkg-cmake-wrapper.cmake ================================================ set(z_vcpkg_icu_fixup "") set(z_vcpkg_icu_config_mode_args "${ARGS}") list(FILTER z_vcpkg_icu_config_mode_args INCLUDE REGEX "^(CONFIGS?|HINTS|NAMES|NO_MODULE|PATH_SUFFIXES|PATHS)\$") if(z_vcpkg_icu_config_mode_args STREQUAL "") cmake_policy(PUSH) cmake_policy(SET CMP0057 NEW) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") # Fix problem: Static link libraries, ordered for traditional linker if("io" IN_LIST ARGS AND NOT TARGET ICU::io) if("in" IN_LIST ARGS) list(APPEND z_vcpkg_icu_fixup "io->in") list(REMOVE_ITEM ARGS in) list(APPEND ARGS COMPONENTS in) else() list(APPEND z_vcpkg_icu_fixup "io->i18n") list(REMOVE_ITEM ARGS i18n) list(APPEND ARGS COMPONENTS i18n) endif() endif() if("i18n" IN_LIST ARGS AND NOT TARGET ICU::i18n) list(APPEND z_vcpkg_icu_fixup "i18n->uc") list(REMOVE_ITEM ARGS uc) list(APPEND ARGS COMPONENTS uc) endif() if("in" IN_LIST ARGS AND NOT TARGET ICU::in) list(APPEND z_vcpkg_icu_fixup "in->uc") list(REMOVE_ITEM ARGS uc) list(APPEND ARGS COMPONENTS uc) endif() if("uc" IN_LIST ARGS AND NOT TARGET ICU::uc) if("dt" IN_LIST ARGS) list(APPEND z_vcpkg_icu_fixup "uc->dt") list(REMOVE_ITEM ARGS dt) list(APPEND ARGS COMPONENTS dt) else() list(APPEND z_vcpkg_icu_fixup "uc->data") list(REMOVE_ITEM ARGS data) list(APPEND ARGS COMPONENTS data) endif() # Fix problem: C++ linkage add_library(ICU::uc STATIC IMPORTED) list(APPEND z_vcpkg_icu_fixup "uc->c++") endif() endif() # Fix problem: Find debug variant without 'd' suffix # Fix problem: Apply NAMES_PER_DIR if("data" IN_LIST ARGS) find_library(ICU_DATA_LIBRARY_RELEASE NAMES icudata icudt NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_DATA_LIBRARY_DEBUG NAMES icudatad icudtd icudata icudt NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("dt" IN_LIST ARGS) find_library(ICU_DT_LIBRARY_RELEASE NAMES icudata icudt NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_DT_LIBRARY_DEBUG NAMES icudatad icudtd icudata icudt NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("i18n" IN_LIST ARGS) find_library(ICU_I18N_LIBRARY_RELEASE NAMES icui18n icuin NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_I18N_LIBRARY_DEBUG NAMES icui18nd icuind icui18n icuin NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("in" IN_LIST ARGS) find_library(ICU_IN_LIBRARY_RELEASE NAMES icui18n icuin NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_IN_LIBRARY_DEBUG NAMES icui18nd icuind icui18n icuin NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("io" IN_LIST ARGS) find_library(ICU_IO_LIBRARY_RELEASE NAMES icuio NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_IO_LIBRARY_DEBUG NAMES icuiod icuio NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("tu" IN_LIST ARGS) # optional, subject to icu[tools]. find_library(ICU_TU_LIBRARY_RELEASE NAMES icutu NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(ICU_TU_LIBRARY_DEBUG NAMES icutud icutu NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() if("uc" IN_LIST ARGS) find_library(ICU_UC_LIBRARY_RELEASE NAMES icuuc NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(ICU_UC_LIBRARY_DEBUG NAMES icuucd icuuc NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) endif() cmake_policy(POP) endif() _find_package(${ARGS}) if(ICU_FOUND AND NOT z_vcpkg_icu_fixup STREQUAL "") cmake_policy(PUSH) cmake_policy(SET CMP0057 NEW) if("uc->c++" IN_LIST z_vcpkg_icu_fixup) list(REMOVE_ITEM z_vcpkg_icu_fixup "uc->c++") if(ICU_INCLUDE_DIR) set_target_properties(ICU::uc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ICU_INCLUDE_DIR}") endif() if(EXISTS "${ICU_UC_LIBRARY}") set_target_properties(ICU::uc PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" IMPORTED_LOCATION "${ICU_UC_LIBRARY}") endif() if(EXISTS "${ICU_UC_LIBRARY_RELEASE}") set_property(TARGET ICU::uc APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(ICU::uc PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" IMPORTED_LOCATION_RELEASE "${ICU_UC_LIBRARY_RELEASE}") endif() if(EXISTS "${ICU_UC_LIBRARY_DEBUG}") set_property(TARGET ICU::uc APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(ICU::uc PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" IMPORTED_LOCATION_DEBUG "${ICU_UC_LIBRARY_DEBUG}") endif() endif() if("i18n->uc" IN_LIST z_vcpkg_icu_fixup) list(REMOVE_ITEM z_vcpkg_icu_fixup "i18n->uc") set_target_properties(ICU::i18n PROPERTIES INTERFACE_LINK_LIBRARIES ICU::uc) endif() if("in->uc" IN_LIST z_vcpkg_icu_fixup) list(REMOVE_ITEM z_vcpkg_icu_fixup "in->uc") set_target_properties(ICU::in PROPERTIES INTERFACE_LINK_LIBRARIES ICU::uc) endif() if("uc->data" IN_LIST z_vcpkg_icu_fixup) list(REMOVE_ITEM z_vcpkg_icu_fixup "uc->data") set_target_properties(ICU::uc PROPERTIES INTERFACE_LINK_LIBRARIES ICU::data) endif() if("uc->dt" IN_LIST z_vcpkg_icu_fixup) list(REMOVE_ITEM z_vcpkg_icu_fixup "uc->dt") set_target_properties(ICU::uc PROPERTIES INTERFACE_LINK_LIBRARIES ICU::dt) endif() if(NOT z_vcpkg_icu_fixup STREQUAL "") message(WARNING "Missing fixup handler for ${z_vcpkg_icu_fixup}.") endif() cmake_policy(POP) endif() if(TARGET ICU::uc) target_compile_features(ICU::uc INTERFACE cxx_std_17) endif() ================================================ FILE: ports/icu/vcpkg-cross-data.patch ================================================ diff --git a/source/configure b/source/configure index d1b5812..1dfbf59 100755 --- a/source/configure +++ b/source/configure @@ -8063,7 +8063,7 @@ fi -if test "$tools" = true || test "$cross_compiling" = "yes"; then +if true; then DATA_TRUE= U_HAVE_DATA=1 else ================================================ FILE: ports/icu/vcpkg.json ================================================ { "name": "icu", "version": "78.2", "description": "Mature and widely used Unicode and localization library.", "homepage": "https://icu.unicode.org/home", "license": "ICU", "dependencies": [ { "name": "icu", "host": true, "features": [ "tools" ] }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-make", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "!uwp" } } } ================================================ FILE: ports/ideviceinstaller/001_fix_windows.patch ================================================ diff --git a/src/ideviceinstaller.c b/src/ideviceinstaller.c index c50bacf..e4a8c3d 100644 --- a/src/ideviceinstaller.c +++ b/src/ideviceinstaller.c @@ -32,7 +32,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #include @@ -87,6 +89,32 @@ static int asprintf(char **PTR, const char *TEMPLATE, ...) } #endif +#ifdef _MSC_VER +#ifndef ISSLASH +#define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif +char *basename(char const *name) { + char const *base = name; + char const *p; + for (p = base; *p; p++) { + if (ISSLASH(*p)) { + do p++; + while (ISSLASH(*p)); + + if (!*p) { + if (ISSLASH(*base)) + base = p - 1; + break; + } + + base = p; + } + } + + return (char *) base; +} +#endif + #define ITUNES_METADATA_PLIST_FILENAME "iTunesMetadata.plist" const char PKG_PATH[] = "PublicStaging"; ================================================ FILE: ports/ideviceinstaller/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(ideviceinstaller C) include(GNUInstallDirs) file(GLOB_RECURSE IDEVICEINSTALLER_SOURCE src/*.c src/*.h) set(DEFINITIONS) list(APPEND DEFINITIONS -DPACKAGE_NAME="ideviceinstaller") list(APPEND DEFINITIONS -DPACKAGE_VERSION="1.1.1") list(APPEND DEFINITIONS -DPACKAGE_URL="https://github.com/libimobiledevice/ideviceinstaller") list(APPEND DEFINITIONS -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/ideviceinstaller/issues") if(UNIX) list(APPEND DEFINITIONS -DHAVE_VASPRINTF) list(APPEND DEFINITIONS -DHAVE_ASPRINTF) list(APPEND DEFINITIONS -DHAVE_UNISTD_H) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libimobiledevice CONFIG REQUIRED) find_package(libzip CONFIG REQUIRED) find_path(DIRENT_INCLUDE_DIR dirent.h REQUIRED) add_executable(ideviceinstaller ${IDEVICEINSTALLER_SOURCE}) target_include_directories(ideviceinstaller PRIVATE ${DIRENT_INCLUDE_DIR} ) target_compile_definitions(ideviceinstaller PRIVATE ${DEFINITIONS}) target_link_libraries(ideviceinstaller PRIVATE unofficial::libimobiledevice::libimobiledevice libzip::zip ) if(WIN32) find_package(unofficial-getopt-win32 REQUIRED) target_link_libraries(ideviceinstaller PRIVATE unofficial::getopt-win32::getopt) endif() install(TARGETS ideviceinstaller RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") ================================================ FILE: ports/ideviceinstaller/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/ideviceinstaller REF b9cfe0b264f66eab9ad88e11eb6b0523cb1de911 # commits on 2023-07-21 SHA512 a78418001109593f2d704d91aff8df009e15c504c2139ca606c9719b70868466ef73778d52670468a4b7bf758ec65435c1b981c27809a2e22737f7587ad51c7d HEAD_REF master PATCHES 001_fix_windows.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES ideviceinstaller AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/ideviceinstaller/vcpkg.json ================================================ { "name": "ideviceinstaller", "version-date": "2023-07-21", "description": "Manage apps of iOS devices", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.0-or-later", "supports": "!uwp & !android & !ios & !xbox", "dependencies": [ "dirent", "getopt", "libimobiledevice", "libzip", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/idevicerestore/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(idevicerestore C) include(GNUInstallDirs) file(GLOB_RECURSE IDEVICERESTORE_SOURCE src/*.c src/*.h) list(FILTER IDEVICERESTORE_SOURCE EXCLUDE REGEX "sha(1|512)\\.(c|h)$") set(DEFINITIONS) list(APPEND DEFINITIONS -DPACKAGE_NAME="idevicerestore") list(APPEND DEFINITIONS -DPACKAGE_VERSION="1.0.0") list(APPEND DEFINITIONS -DPACKAGE_URL="https://github.com/libimobiledevice/idevicerestore") list(APPEND DEFINITIONS -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/idevicerestore/issues") list(APPEND DEFINITIONS -DHAVE_REVERSE_PROXY) list(APPEND DEFINITIONS -DHAVE_OPENSSL) if(UNIX) list(APPEND DEFINITIONS -DHAVE_REALPATH) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32) endif() find_package(CURL CONFIG REQUIRED) find_package(unofficial-libimobiledevice CONFIG REQUIRED) find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) find_package(unofficial-libirecovery CONFIG REQUIRED) find_package(libzip CONFIG REQUIRED) find_package(OpenSSL REQUIRED) find_package(ZLIB REQUIRED) find_path(DIRENT_INCLUDE_DIR dirent.h REQUIRED) add_executable(idevicerestore ${IDEVICERESTORE_SOURCE}) target_include_directories(idevicerestore PRIVATE ${DIRENT_INCLUDE_DIR} ) target_compile_definitions(idevicerestore PRIVATE ${DEFINITIONS}) target_link_libraries(idevicerestore PRIVATE CURL::libcurl unofficial::libimobiledevice::libimobiledevice unofficial::libimobiledevice-glue::libimobiledevice-glue unofficial::libirecovery::libirecovery libzip::zip OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB ) if(WIN32) find_package(unofficial-getopt-win32 REQUIRED) target_link_libraries(idevicerestore PRIVATE unofficial::getopt-win32::getopt) endif() install(TARGETS idevicerestore RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") ================================================ FILE: ports/idevicerestore/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/idevicerestore REF 609f7f058487596597e8e742088119fdd46729df # commits on 2023-05-23 SHA512 9427c438d1967f1717424dd1d1b789d3d139b3fcacee15911e531d6377039927c147150dafacd251b92d57134e72c49de6e1a053fcd63f14c780e60dc5b13fc5 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES idevicerestore AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/idevicerestore/vcpkg.json ================================================ { "name": "idevicerestore", "version-date": "2023-05-23", "description": "Restore/upgrade firmware of iOS devices", "homepage": "https://libimobiledevice.org/", "license": "LGPL-3.0-or-later", "supports": "(!windows & !android & !ios) | mingw", "dependencies": [ "curl", "dirent", "getopt", "libimobiledevice", "libimobiledevice-glue", "libirecovery", "libzip", "openssl", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/idyntree/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO robotology/idyntree REF "v${VERSION}" SHA512 bfcdddebb2ae3d5b9e75cea799d4dfb6ad745d26eb220419c9795c30397ee400dce7669546fe78aadbab49e29be48b3ecece7bb972c1032d04f6b621a1d5bcf0 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "assimp" IDYNTREE_USES_ASSIMP "irrlicht" IDYNTREE_USES_IRRLICHT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DIDYNTREE_USES_IPOPT:BOOL=OFF -DIDYNTREE_USES_OSQPEIGEN:BOOL=OFF -DIDYNTREE_USES_MATLAB:BOOL=OFF -DIDYNTREE_USES_PYTHON:BOOL=OFF -DIDYNTREE_USES_OCTAVE:BOOL=OFF -DIDYNTREE_USES_LUA:BOOL=OFF -DIDYNTREE_USES_YARP:BOOL=OFF -DIDYNTREE_USES_ICUB_MAIN:BOOL=OFF -DIDYNTREE_USES_ALGLIB:BOOL=OFF -DIDYNTREE_USES_WORHP:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME iDynTree CONFIG_PATH lib/cmake/iDynTree) vcpkg_copy_pdbs() set(TOOL_NAMES_LIST idyntree-model-info) if ("assimp" IN_LIST FEATURES) list(APPEND TOOL_NAMES_LIST idyntree-model-simplify-shapes) endif() if ("irrlicht" IN_LIST FEATURES) list(APPEND TOOL_NAMES_LIST idyntree-model-view) endif() vcpkg_copy_tools( TOOL_NAMES ${TOOL_NAMES_LIST} AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/idyntree/usage ================================================ The package idyntree provides CMake targets: find_package(iDynTree CONFIG REQUIRED) target_link_libraries(main PRIVATE iDynTree::idyntree-core iDynTree::idyntree-model iDynTree::idyntree-modelio iDynTree::idyntree-modelio iDynTree::idyntree-high-level iDynTree::idyntree-estimation) ================================================ FILE: ports/idyntree/vcpkg.json ================================================ { "name": "idyntree", "version": "15.0.0", "description": "Multibody Dynamics Library designed for Free Floating Robots.", "homepage": "https://github.com/robotology/idyntree", "license": "BSD-3-Clause", "supports": "!xbox", "dependencies": [ "eigen3", "libxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "assimp" ], "features": { "assimp": { "description": "Add support for loading meshes", "dependencies": [ "assimp" ] }, "irrlicht": { "description": "Add support for irrlicht-based visualizer", "supports": "!windows & !osx", "dependencies": [ "glfw3", "irrlicht" ] } } } ================================================ FILE: ports/if97/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CoolProp/IF97 REF "v${VERSION}" SHA512 c8aef492445a167d76f92174edadfd37d9918a3f9ca718d63d26dc4692ade5539cbce362a92e4a5b78f3d95766baf5da36a6783cc6001bd9fad204ebe2cad44f HEAD_REF master PATCHES relax-encoding.diff ) file(INSTALL "${SOURCE_PATH}/IF97.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/if97/relax-encoding.diff ================================================ diff --git a/IF97.h b/IF97.h index 6de27ce..b796d86 100644 --- a/IF97.h +++ b/IF97.h @@ -75,7 +75,7 @@ namespace IF97 // IF97 Constants const double Tcrit = 647.096; // K const double Pcrit = 22.064*p_fact; // MPa* - const double Rhocrit = 322.0; // kg/m³ + const double Rhocrit = 322.0; // kg/m^3 const double Scrit = 4.41202148223476*R_fact; // kJ*/kg-K (needed for backward eqn. in Region 3(a)(b) const double Ttrip = 273.16; // K const double Ptrip = 0.000611657*p_fact; // MPa* [Change per IAPWS R7-97(2012), p. 7, Eq. 9] @@ -2418,7 +2418,7 @@ namespace IF97 // The equation is rearranged to solve for rho and turned // into functions f(T,P,rho0) and f'(T,P,rho0) for the // Newton-Raphson technique. Functions for - // dphi/ddelta and d²phi/ddelta² were also required. These + // dphi/ddelta and d^2phi/ddelta^2 were also required. These // additional Taylor functions are defined above. // double f(double T, double p, double rho0) const{ @@ -4401,7 +4401,7 @@ namespace IF97 return RegionOutput( IF97_HMASS,RegionOutputBackward(Pmax,s,IF97_SMASS,false,NONE),Pmax, NONE); else { // Determining H(s) along Tmax is difficult because there is no direct p(T,s) formulation. - // This linear combination fit h(s)=a*ln(s)+b/s+c/s²+d is not perfect, but it's close + // This linear combination fit h(s)=a*ln(s)+b/s+c/s^2+d is not perfect, but it's close // and can serve as a limit along that Tmax boundary. Coefficients in HTmaxdata above. // There is a better way to do this using Newton-Raphson on Tmax = T(p,s), but it is iterative and slow. double ETA = Hmax_n[0]*log(sigma) + Hmax_n[1]/sigma + Hmax_n[2]/powi(sigma,2) +Hmax_n[3]; @@ -4556,14 +4556,14 @@ namespace IF97 inline double cvmass_Tp(double T, double p){ return RegionOutput( IF97_CVMASS, T, p, NONE); }; /// Get the speed of sound [m/s] as a function of T [K] and p [Pa] inline double speed_sound_Tp(double T, double p){ return RegionOutput( IF97_W, T, p, NONE); }; - /// Get the [d(rho)/d(p)]T [kg/m³/Pa] as a function of T [K] and p [Pa] + /// Get the [d(rho)/d(p)]T [kg/m^3/Pa] as a function of T [K] and p [Pa] inline double drhodp_Tp(double T, double p){ return RegionOutput( IF97_DRHODP, T, p, NONE); }; // ******************************************************************************** // // Transport Properties // // ******************************************************************************** // - /// Get the viscosity [Pa-s] as a function of T [K] and Rho [kg/m³] + /// Get the viscosity [Pa-s] as a function of T [K] and Rho [kg/m^3] /// Used for function verification only inline double visc_TRho(double T, double rho) { // Since we have density, we don't need to determine the region for viscosity. @@ -4573,7 +4573,7 @@ namespace IF97 /// Get the viscosity [Pa-s] as a function of T [K] and p [Pa] inline double visc_Tp(double T, double p) { return RegionOutput(IF97_MU, T, p, NONE); }; - /// Get the thermal conductivity [W/m-K] as a function of T [K], p [Pa], and Rho [kg/m³] + /// Get the thermal conductivity [W/m-K] as a function of T [K], p [Pa], and Rho [kg/m^3] /// Used for function verification only inline double tcond_TpRho(double T, double p, double rho) { // Since we have density, we don't need to determine the region for viscosity. ================================================ FILE: ports/if97/vcpkg.json ================================================ { "name": "if97", "version": "2.2.1", "description": "This repository implements the IF97 formulation for the properties of pure water substance.", "homepage": "https://github.com/CoolProp/IF97", "license": "MIT" } ================================================ FILE: ports/igloo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO joakimkarlsson/igloo REF igloo.1.1.1 SHA512 69d8edb840aa1e2c1df4529a39b94e2d33dbc9fb5869ae91a0f062d29b7fbb73d4e2180080e7696cb69fbf5126c7c53c98dddb003e0e5e796812330e1a4ba32e HEAD_REF master ) file(COPY ${SOURCE_PATH}/igloo DESTINATION ${CURRENT_PACKAGES_DIR}/include/ FILES_MATCHING PATTERN *.h) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/igloo/external/snowhouse) file(WRITE "${CURRENT_PACKAGES_DIR}/include/igloo/external/snowhouse/snowhouse/snowhouse.h" "#include ") file(COPY ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/igloo) file(RENAME ${CURRENT_PACKAGES_DIR}/share/igloo/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/igloo/copyright) ================================================ FILE: ports/igloo/vcpkg.json ================================================ { "name": "igloo", "version": "1.1.1", "port-version": 2, "description": "A framework for unit testing in C++" } ================================================ FILE: ports/ignition-modularscripts/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/ignition-modularscripts/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake-config/vcpkg-port-config.cmake") function(ignition_modular_build_library) set(options DISABLE_PKGCONFIG_INSTALL) set(oneValueArgs NAME MAJOR_VERSION SOURCE_PATH CMAKE_PACKAGE_NAME DEFAULT_CMAKE_PACKAGE_NAME) set(multiValueArgs OPTIONS) cmake_parse_arguments(PARSE_ARGV 0 IML "${options}" "${oneValueArgs}" "${multiValueArgs}") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${IML_SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DBUILD_DOCS=OFF -DBUILD_TESTING=OFF ${IML_OPTIONS} MAYBE_UNUSED_VARIABLES BUILD_DOCS BUILD_TESTING PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install(ADD_BIN_TO_PATH) # If necessary, move the CMake config files if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake") # Some ignition libraries install library subcomponents, that are effectively additional cmake packages # with name ${IML_CMAKE_PACKAGE_NAME}-${COMPONENT_NAME}, so it is needed to call vcpkg_cmake_config_fixup for them as well file(GLOB COMPONENTS_CMAKE_PACKAGE_NAMES LIST_DIRECTORIES TRUE RELATIVE "${CURRENT_PACKAGES_DIR}/lib/cmake/" "${CURRENT_PACKAGES_DIR}/lib/cmake/*") foreach(COMPONENT_CMAKE_PACKAGE_NAME IN LISTS COMPONENTS_CMAKE_PACKAGE_NAMES) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${COMPONENT_CMAKE_PACKAGE_NAME}" PACKAGE_NAME "${COMPONENT_CMAKE_PACKAGE_NAME}" DO_NOT_DELETE_PARENT_CONFIG_PATH) endforeach() file(GLOB_RECURSE CMAKE_RELEASE_FILES "${CURRENT_PACKAGES_DIR}/lib/cmake/${IML_CMAKE_PACKAGE_NAME}/*") file(COPY ${CMAKE_RELEASE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${IML_CMAKE_PACKAGE_NAME}/") endif() # Remove unused files files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/share") # Make pkg-config files relocatable if(NOT IML_DISABLE_PKGCONFIG_INSTALL) vcpkg_fixup_pkgconfig() else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() # Find the relevant license file and install it if(EXISTS "${SOURCE_PATH}/LICENSE") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE") elseif(EXISTS "${SOURCE_PATH}/README.md") set(LICENSE_PATH "${SOURCE_PATH}/README.md") endif() file(INSTALL "${LICENSE_PATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endfunction() ## # ignition_modular_library ## ## Download and build a library from the Ignition Robotics project ( https://ignitionrobotics.org/ ). ## ## ## Usage: ## ```cmake ## ignition_modular_library(NAME ## VERSION ## SHA512 ## [REF ] ## [HEAD_REF ] ## [PATCHES ] ## [CMAKE_PACKAGE_NAME ] ## [DISABLE_PKGCONFIG_INSTALL]) ## ``` ## ## ## Parameters: ## ### NAME ## The name of the specific ignition library, i.e. `cmake` for `ignition-cmake0`, `math` for `ignition-math4`. ## ## ### VERSION ## The complete version number. ## ## ### SHA512 ## The SHA512 hash that should match the downloaded archive. This is forwarded to the `vcpkg_from_github` command. ## ## ### REF ## Reference to the tag of the desired release. This is forwarded to the `vcpkg_from_github` command. ## If not specified, defaults to `ignition-${NAME}${MAJOR_VERSION}_${VERSION}`. ## ## ### HEAD_REF ## Reference (tag) to the desired release. This is forwarded to the `vcpkg_from_github` command. ## If not specified, defaults to `ign-${NAME}${MAJOR_VERSION}`. ## ## ### PATCHES ## A list of patches to be applied to the extracted sources. ## This is forwarded to the `vcpkg_from_github` command. ## ## ### CMAKE_PACKAGE_NAME ## The name of the CMake package for the port. ## If not specified, defaults to `ignition-${NAME}${MAJOR_VERSION}`. ## ## ### DISABLE_PKGCONFIG_INSTALL ## If present, disable installation of .pc pkg-config configuration files. ## ## ## ## Examples: ## ## * [ignition-cmake0](https://github.com/Microsoft/vcpkg/blob/master/ports/ignition-cmake0/portfile.cmake) ## * [ignition-math4](https://github.com/Microsoft/vcpkg/blob/master/ports/ignition-math4/portfile.cmake) ## * [ignition-fuel-tools1](https://github.com/Microsoft/vcpkg/blob/master/ports/ignition-fuel-tools1/portfile.cmake) function(ignition_modular_library) set(options DISABLE_PKGCONFIG_INSTALL) set(oneValueArgs NAME VERSION SHA512 REF HEAD_REF CMAKE_PACKAGE_NAME) set(multiValueArgs PATCHES OPTIONS) cmake_parse_arguments(PARSE_ARGV 0 IML "${options}" "${oneValueArgs}" "${multiValueArgs}") string(REPLACE "." ";" IML_VERSION_LIST "${IML_VERSION}") list(GET IML_VERSION_LIST 0 IML_MAJOR_VERSION) # If the REF option is omitted, use the canonical one if(NOT DEFINED IML_REF) set(IML_REF "ignition-${IML_NAME}${IML_MAJOR_VERSION}_${IML_VERSION}") endif() # If the HEAD_REF option is omitted, use the canonical one if(NOT DEFINED IML_HEAD_REF) set(IML_HEAD_REF "ign-${IML_NAME}${IML_MAJOR_VERSION}") endif() # If the CMAKE_PACKAGE_NAME option is omitted, use the canonical one set(DEFAULT_CMAKE_PACKAGE_NAME "gz-${IML_NAME}${IML_MAJOR_VERSION}") if(NOT DEFINED IML_CMAKE_PACKAGE_NAME) set(IML_CMAKE_PACKAGE_NAME "${DEFAULT_CMAKE_PACKAGE_NAME}") endif() # Download library from github, to support also the --head option vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "ignitionrobotics/ign-${IML_NAME}" REF "${IML_REF}" SHA512 "${IML_SHA512}" HEAD_REF "${IML_HEAD_REF}" PATCHES ${IML_PATCHES} FILE_DISAMBIGUATOR 1 ) set(extra_arguments "") if (IML_DISABLE_PKGCONFIG_INSTALL) list(APPEND extra_arguments DISABLE_PKGCONFIG_INSTALL) endif() # Build library ignition_modular_build_library( NAME "${IML_NAME}" MAJOR_VERSION "${IML_MAJOR_VERSION}" SOURCE_PATH "${SOURCE_PATH}" CMAKE_PACKAGE_NAME "${IML_CMAKE_PACKAGE_NAME}" DEFAULT_CMAKE_PACKAGE_NAME "${DEFAULT_CMAKE_PACKAGE_NAME}" ${extra_arguments} OPTIONS ${IML_OPTIONS} ) endfunction() ================================================ FILE: ports/ignition-modularscripts/vcpkg.json ================================================ { "name": "ignition-modularscripts", "version-date": "2025-02-27", "description": "Vcpkg helpers to package ignition libraries", "license": null, "supports": "native", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/igraph/arith_osx.h ================================================ /* Suitable for macOS on x86_64 and arm64 */ /* Not suitable for 32-bit macOS */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Long int #define Intcast (int)(long) #define Double_Align #define X64_bit_pointers #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/igraph/arith_win32.h ================================================ /* Windows 32-bit */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Double_Align #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/igraph/arith_win64.h ================================================ /* Windows 64-bit */ #define IEEE_8087 #define Arith_Kind_ASL 1 #define Double_Align #define X64_bit_pointers #define NANCHECK #define QNaN0 0x0 #define QNaN1 0x7ff80000 ================================================ FILE: ports/igraph/constant-nan.patch ================================================ diff --git a/vendor/plfit/hzeta.c b/vendor/plfit/hzeta.c index d8f9a6d..4ef8d5d 100644 --- a/vendor/plfit/hzeta.c +++ b/vendor/plfit/hzeta.c @@ -43,6 +43,7 @@ /* Author: Jerome G. Benoit < jgmbenoit _at_ rezozer _dot_ net > */ #ifdef _MSC_VER +#define _UCRT_NOISY_NAN #define _USE_MATH_DEFINES #endif ================================================ FILE: ports/igraph/glpk-uwp.patch ================================================ diff --git a/vendor/glpk/env/dlsup.c b/vendor/glpk/env/dlsup.c index 741354475..968a794b7 100644 --- a/vendor/glpk/env/dlsup.c +++ b/vendor/glpk/env/dlsup.c @@ -25,6 +25,8 @@ #include "env.h" +#undef __WOE__ + /* GNU version ********************************************************/ #if defined(HAVE_LTDL) ================================================ FILE: ports/igraph/portfile.cmake ================================================ # We use the release tarball from GitHub instead of the sources in the repo because: # - igraph will not compile from the git sources unless there is an actual git repository to back it. This is because it detects the version from git tags. The release tarball has the version hard-coded. # - The release tarball contains pre-generated parser sources, which eliminates the dependency on bison/flex. vcpkg_download_distfile(ARCHIVE URLS "https://github.com/igraph/igraph/releases/download/${VERSION}/igraph-${VERSION}.tar.gz" FILENAME "igraph-${VERSION}.tar.gz" SHA512 9fbb3bfc92a7b36c89d5eefc455644130bf5f99e92718c8e8ef44cc486071e288fca562f114001b5ef5d771d228b44e963b176e2d9f61e369f9899f0575e6d85 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES "glpk-uwp.patch" # patch GLPK for UWP compatibility "constant-nan.patch" # Workaround https://developercommunity.visualstudio.com/t/NAN-is-no-longer-compile-time-constant-i/10688907 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES graphml IGRAPH_GRAPHML_SUPPORT openmp IGRAPH_OPENMP_SUPPORT ) # Allow cross-compilation. See https://igraph.org/c/html/latest/igraph-Installation.html#igraph-Installation-cross-compiling set(ARITH_H "") if (VCPKG_TARGET_IS_OSX) set(ARITH_H ${CURRENT_PORT_DIR}/arith_osx.h) elseif (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(ARITH_H ${CURRENT_PORT_DIR}/arith_win32.h) elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ARITH_H ${CURRENT_PORT_DIR}/arith_win64.h) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIGRAPH_ENABLE_LTO=AUTO # ARPACK not yet available in vcpkg. -DIGRAPH_USE_INTERNAL_ARPACK=ON # GLPK is not yet available in vcpkg. -DIGRAPH_USE_INTERNAL_GLPK=ON # Currently, external GMP provides no performance or functionality benefits. -DIGRAPH_USE_INTERNAL_GMP=ON # PLFIT is not yet available in vcpkg. -DIGRAPH_USE_INTERNAL_PLFIT=ON # Use BLAS and LAPACK from vcpkg -DIGRAPH_USE_INTERNAL_BLAS=OFF -DIGRAPH_USE_INTERNAL_LAPACK=OFF -DF2C_EXTERNAL_ARITH_HEADER=${ARITH_H} -DIGRAPH_WARNINGS_AS_ERRORS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/igraph) file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/igraph/vcpkg.json ================================================ { "name": "igraph", "version": "1.0.1", "description": "igraph is a C library for network analysis and graph theory, with an emphasis on efficiency portability and ease of use.", "homepage": "https://igraph.org/", "license": "GPL-2.0-or-later", "supports": "!xbox", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "graphml" ], "features": { "graphml": { "description": "Support for reading GraphML files", "dependencies": [ "libxml2" ] }, "openmp": { "description": "Use OpenMP parallelization in some functions" } } } ================================================ FILE: ports/iguana/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qicosmos/iguana REF "${VERSION}" SHA512 dc0e3002ade1075c7a8be8146e891aceb9b6a4ccc12a918f5c74c99f0aee8d47b087f4ca220115146c7b40ee40ae9187f81570b87aac442aea677df8f2cd19d8 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/iguana" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/iguana/vcpkg.json ================================================ { "name": "iguana", "version": "1.1.0", "description": "Header-only C++ serialization library used by Cinatra.", "homepage": "https://github.com/qicosmos/iguana", "license": "Apache-2.0", "dependencies": [ "protobuf" ] } ================================================ FILE: ports/iir1/fix-shared-lib.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4dd67df..3840ff8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,7 @@ set_target_properties(iir PROPERTIES PUBLIC_HEADER Iir.h PRIVATE_HEADER "${LIBINCLUDE}") +if(BUILD_SHARED_LIBS) install(TARGETS iir EXPORT iir-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -91,6 +92,10 @@ install(TARGETS iir EXPORT iir-targets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PRIVATE_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/iir) + set(IIR1_INSTALL_STATIC OFF) +else() + set_target_properties(iir PROPERTIES EXCLUDE_FROM_ALL 1) +endif() include(JoinPaths) ================================================ FILE: ports/iir1/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO berndporr/iir1 REF "${VERSION}" SHA512 f50b925394f79662ae021c02e60667273a5d4615f2ef9f88d256c3c6dbb0f7d851207b65e2da56b69a97e576b3bb611653fde421df4ae0a952615d29be2f33a6 HEAD_REF master PATCHES fix-shared-lib.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIIR1_BUILD_TESTING=OFF -DIIR1_BUILD_DEMO=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME iir CONFIG_PATH lib/cmake/iir) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/iir.pc" " -liir" "-liir_static") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/iir.pc" " -liir" " -liir_static") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/iir1/vcpkg.json ================================================ { "name": "iir1", "version": "1.10.0", "description": "An infinite impulse response (IIR) filter library for realtime processing. It implements Butterworth, RBJ, Chebychev filters.", "homepage": "https://github.com/berndporr/iir1", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/im3d/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(im3d) set(CMAKE_CXX_STANDARD 11) add_library(${PROJECT_NAME} "") target_include_directories( ${PROJECT_NAME} PUBLIC $ $ ) target_sources( ${PROJECT_NAME} PRIVATE im3d.cpp ) install( TARGETS ${PROJECT_NAME} EXPORT unofficial-${PROJECT_NAME}-target ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) if (NOT IM3D_SKIP_HEADERS) install( FILES im3d.h im3d_config.h im3d_math.h DESTINATION include ) endif() install( EXPORT unofficial-${PROJECT_NAME}-target NAMESPACE unofficial::${PROJECT_NAME}:: FILE unofficial-${PROJECT_NAME}-config.cmake DESTINATION share/unofficial-${PROJECT_NAME} ) ================================================ FILE: ports/im3d/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO john-chapman/im3d REF 651220df4d595ff3d7ac5c1a64b3355774e86bc8 SHA512 0a117bddcf2de51870367a0d6d2753d9b691466427c5942be448d9930fac41fd8502788d76162831686f50f880a6b0a7fad541a380598c830ff8f44670f29381 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DIM3D_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/im3d/vcpkg.json ================================================ { "name": "im3d", "version-date": "2022-10-11", "description": "Immediate mode rendering and 3d gizmos", "homepage": "https://github.com/john-chapman/im3d", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/imageinfo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiaozhuai/imageinfo REF 4e772f7d7d4453028c71f90e1783c390f5d78adf # committed on 2024-12-02 SHA512 6ef9041a450c516ba84c5ccb4d96a2f5e27c0b45164e1db38b8df6adfeaec1725b76677955e8b2bf4d73842162cecf734ee25163af21eeeb045af48af92ba821 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools IMAGEINFO_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIMAGEINFO_BUILD_INSTALL=ON -DIMAGEINFO_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES imageinfo AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/imageinfo/usage ================================================ imageinfo provides CMake targets: find_package(imageinfo CONFIG REQUIRED) target_link_libraries(main PRIVATE imageinfo::imageinfo) ================================================ FILE: ports/imageinfo/vcpkg.json ================================================ { "name": "imageinfo", "version-date": "2024-12-02", "description": "Cross platform super fast single header c++ library to get image size and format without loading/decoding. Support avif, bmp, cur, dds, gif, hdr (pic), heic (heif), icns, ico, jp2, jpeg (jpg), jpx, ktx, png, psd, qoi, tga, tiff (tif), webp ...", "homepage": "https://github.com/xiaozhuai/imageinfo", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox & !wasm32" } } } ================================================ FILE: ports/imath/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/Imath REF "v${VERSION}" SHA512 492a624e4c0b59685d1ea58a3c2c63ddb4ba5ab9177c7d2a1b7e80be95d38ce02c74fafd2fe0982f7d21e5e75c938cc24a33a12d827dec32727cb8dcd5066450 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIMATH_INSTALL_SYM_LINK=OFF -DBUILD_TESTING=OFF -DIMATH_INSTALL_PKG_CONFIG=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Imath) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/imath/vcpkg.json ================================================ { "name": "imath", "version": "3.2.2", "description": "Imath is a C++ and Python library of 2D and 3D vector, matrix, and math operations for computer graphics.", "homepage": "https://github.com/AcademySoftwareFoundation/Imath", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/imcce-openfa/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://gitlab.obspm.fr REPO imcce_openfa/openfa REF ${VERSION} SHA512 8f4cd47c80afcf91514233ff77730d65d264a11d6fa7b6f4eb5382a336577af8ec683a582a14b7aa440fa19f9cdeb780a6010144ce94029b759cb4ee52f7c654 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "openfa" CONFIG_PATH "lib/cmake/openfa") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") 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/share") file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME readme.md) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/imcce-openfa/vcpkg.json ================================================ { "name": "imcce-openfa", "version": "20231011.0.3", "description": "set of algorithms and procedures that implement standard models used in fundamental astronomy", "homepage": "https://gitlab.obspm.fr/imcce_openfa/openfa", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/imgui/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(imgui CXX) set(CMAKE_DEBUG_POSTFIX d) if(APPLE) set(CMAKE_CXX_STANDARD 11) enable_language(OBJCXX) endif() add_library(${PROJECT_NAME} "") add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories( ${PROJECT_NAME} PUBLIC "$" $ ) target_sources( ${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/imgui.cpp ${CMAKE_CURRENT_SOURCE_DIR}/imgui_demo.cpp ${CMAKE_CURRENT_SOURCE_DIR}/imgui_draw.cpp ${CMAKE_CURRENT_SOURCE_DIR}/imgui_tables.cpp ${CMAKE_CURRENT_SOURCE_DIR}/imgui_widgets.cpp ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.cpp ) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) if(IMGUI_BUILD_ALLEGRO5_BINDING) find_package(Allegro CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PRIVATE Allegro::allegro Allegro::allegro_ttf Allegro::allegro_font Allegro::allegro_main) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.cpp) endif() if(IMGUI_BUILD_ANDROID_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.cpp) endif() if(IMGUI_BUILD_DX9_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.cpp) endif() if(IMGUI_BUILD_DX10_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.cpp) endif() if(IMGUI_BUILD_DX11_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.cpp) endif() if(IMGUI_BUILD_DX12_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.cpp) endif() if(IMGUI_BUILD_GLFW_BINDING) if(NOT EMSCRIPTEN) find_package(glfw3 CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC glfw) endif() target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.cpp) endif() if(IMGUI_BUILD_GLUT_BINDING) find_package(GLUT REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC GLUT::GLUT) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.cpp) endif() if(IMGUI_BUILD_METAL_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.mm) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.mm PROPERTIES COMPILE_FLAGS -fobjc-weak) endif() if(IMGUI_BUILD_OPENGL2_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.cpp) endif() if(IMGUI_BUILD_OPENGL3_BINDING) if(APPLE AND (CMAKE_SYSTEM_NAME MATCHES "iOS")) target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_IMPL_OPENGL_ES3) target_link_libraries(${PROJECT_NAME} PUBLIC -framework OpenGLES) elseif(ANDROID) target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_IMPL_OPENGL_ES3) find_path(OPENGL_INCLUDE_DIR NAMES GLES3/gl3.h REQUIRED) target_include_directories(${PROJECT_NAME} PRIVATE ${OPENGL_INCLUDE_DIR}) endif() target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp) endif() if(IMGUI_BUILD_OSX_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.mm) endif() if(IMGUI_BUILD_SDL3_BINDING) find_package(SDL3 CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC SDL3::SDL3) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp) endif() if(IMGUI_BUILD_SDLGPU3_BINDING) find_package(SDL3 CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC SDL3::SDL3) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3.cpp) endif() if(IMGUI_BUILD_SDL3_RENDERER_BINDING) find_package(SDL3 CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC SDL3::SDL3) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp) endif() if(IMGUI_BUILD_VULKAN_BINDING) find_package(Vulkan REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC Vulkan::Vulkan) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.cpp) endif() if(IMGUI_BUILD_WIN32_BINDING) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.cpp) endif() if(IMGUI_BUILD_WEBGPU_BINDING) find_package(Dawn CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC dawn::webgpu_dawn) target_compile_definitions(${PROJECT_NAME} PRIVATE IMGUI_IMPL_WEBGPU_BACKEND_DAWN) list(APPEND WGPU_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_wgpu.cpp) target_sources(${PROJECT_NAME} PRIVATE ${WGPU_SRCS}) if(APPLE) set_source_files_properties(${WGPU_SRCS} PROPERTIES LANGUAGE OBJCXX) target_link_libraries(${PROJECT_NAME} PUBLIC "-framework Foundation") endif() endif() if(IMGUI_FREETYPE) find_package(freetype CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC freetype) target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.cpp) target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_ENABLE_FREETYPE) endif() if(IMGUI_FREETYPE_SVG) find_package(plutosvg CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC plutosvg::plutosvg) target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_ENABLE_FREETYPE_PLUTOSVG) endif() if(IMGUI_USE_WCHAR32) target_compile_definitions(${PROJECT_NAME} PUBLIC IMGUI_USE_WCHAR32) endif() if(IMGUI_TEST_ENGINE) find_package(Stb REQUIRED) target_include_directories(${PROJECT_NAME} PRIVATE ${Stb_INCLUDE_DIR}) target_sources( ${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_capture_tool.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_context.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_coroutine.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_engine.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_exporters.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_perftool.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_ui.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_utils.cpp ) endif() list(REMOVE_DUPLICATES BINDINGS_SOURCES) install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}_target ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) foreach(BINDING_TARGET ${BINDING_TARGETS}) install( TARGETS ${BINDING_TARGET} EXPORT ${PROJECT_NAME}_target ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) endforeach() if(NOT IMGUI_SKIP_HEADERS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/imgui.h ${CMAKE_CURRENT_SOURCE_DIR}/imconfig.h ${CMAKE_CURRENT_SOURCE_DIR}/imgui_internal.h ${CMAKE_CURRENT_SOURCE_DIR}/imstb_textedit.h ${CMAKE_CURRENT_SOURCE_DIR}/imstb_rectpack.h ${CMAKE_CURRENT_SOURCE_DIR}/imstb_truetype.h ${CMAKE_CURRENT_SOURCE_DIR}/misc/cpp/imgui_stdlib.h DESTINATION include ) if(IMGUI_BUILD_ALLEGRO5_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_allegro5.h DESTINATION include) endif() if (IMGUI_BUILD_ANDROID_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_android.h DESTINATION include) endif() if(IMGUI_BUILD_DX9_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx9.h DESTINATION include) endif() if(IMGUI_BUILD_DX10_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx10.h DESTINATION include) endif() if(IMGUI_BUILD_DX11_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx11.h DESTINATION include) endif() if(IMGUI_BUILD_DX12_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_dx12.h DESTINATION include) endif() if(IMGUI_BUILD_GLFW_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glfw.h DESTINATION include) endif() if(IMGUI_BUILD_GLUT_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_glut.h DESTINATION include) endif() if(IMGUI_BUILD_METAL_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_metal.h DESTINATION include) endif() if(IMGUI_BUILD_OPENGL2_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl2.h DESTINATION include) endif() if(IMGUI_BUILD_OPENGL3_BINDING) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3.h ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_opengl3_loader.h DESTINATION include ) endif() if(IMGUI_BUILD_OSX_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_osx.h DESTINATION include) endif() if(IMGUI_BUILD_SDL3_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdl3.h DESTINATION include) endif() if(IMGUI_BUILD_SDLGPU3_BINDING) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3.h ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlgpu3_shaders.h DESTINATION include ) endif() if(IMGUI_BUILD_SDL3_RENDERER_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h DESTINATION include) endif() if(IMGUI_BUILD_VULKAN_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_vulkan.h DESTINATION include) endif() if(IMGUI_BUILD_WIN32_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_win32.h DESTINATION include) endif() if(IMGUI_BUILD_WEBGPU_BINDING) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/backends/imgui_impl_wgpu.h DESTINATION include) endif() if(IMGUI_FREETYPE) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/misc/freetype/imgui_freetype.h DESTINATION include) endif() if(IMGUI_TEST_ENGINE) install( FILES ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_capture_tool.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_context.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_coroutine.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_engine.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_exporters.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_imconfig.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_internal.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_perftool.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_ui.h ${CMAKE_CURRENT_SOURCE_DIR}/test-engine/imgui_te_utils.h DESTINATION include ) endif() endif() include(CMakePackageConfigHelpers) configure_package_config_file(imgui-config.cmake.in imgui-config.cmake INSTALL_DESTINATION share/imgui) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/imgui-config.cmake DESTINATION share/imgui) install( EXPORT ${PROJECT_NAME}_target NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-targets.cmake DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/imgui/imgui-config.cmake.in ================================================ cmake_policy(SET CMP0012 NEW) @PACKAGE_INIT@ include(CMakeFindDependencyMacro) if (@IMGUI_BUILD_GLFW_BINDING@) if (NOT "@EMSCRIPTEN@") find_dependency(glfw3 CONFIG) endif() endif() if (@IMGUI_BUILD_GLUT_BINDING@) find_dependency(GLUT) endif() if (@IMGUI_BUILD_SDL3_BINDING@ OR @IMGUI_BUILD_SDL3_RENDERER_BINDING@ OR @IMGUI_BUILD_SDLGPU3_BINDING@) find_dependency(SDL3 CONFIG) endif() if (@IMGUI_BUILD_VULKAN_BINDING@) find_dependency(Vulkan) endif() if (@IMGUI_BUILD_WEBGPU_BINDING@) find_dependency(Dawn) endif() if (@IMGUI_FREETYPE@) find_dependency(freetype CONFIG) endif() if (@IMGUI_FREETYPE_SVG@) find_dependency(plutosvg CONFIG) endif() if (@IMGUI_BUILD_ALLEGRO5_BINDING@) find_dependency(Allegro CONFIG) endif() if (@IMGUI_TEST_ENGINE@) find_dependency(Stb) endif() include("${CMAKE_CURRENT_LIST_DIR}/imgui-targets.cmake") ================================================ FILE: ports/imgui/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if ("docking-experimental" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui REF "v${VERSION}-docking" SHA512 14cf795a95deb8f3ba45c2eed3c26584b713c0cf17e01939a372c033c344ba78ddfa4d0d63619243b639779aa1eacf452771d1b6a1d9b80d13f8cc4d0b9d8e6d HEAD_REF docking ) else() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui REF "v${VERSION}" SHA512 1742eaa4811fc63f4ed3804ecd6970cbc0a960c85014903e302ab082ccf7ff7488d534bd4cb7a6d7c2a71824cb80d6c9923ea5a4951190941121cf1b05e3df9d HEAD_REF master ) endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/imgui-config.cmake.in" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES allegro5-binding IMGUI_BUILD_ALLEGRO5_BINDING android-binding IMGUI_BUILD_ANDROID_BINDING dx9-binding IMGUI_BUILD_DX9_BINDING dx10-binding IMGUI_BUILD_DX10_BINDING dx11-binding IMGUI_BUILD_DX11_BINDING dx12-binding IMGUI_BUILD_DX12_BINDING glfw-binding IMGUI_BUILD_GLFW_BINDING glut-binding IMGUI_BUILD_GLUT_BINDING metal-binding IMGUI_BUILD_METAL_BINDING opengl2-binding IMGUI_BUILD_OPENGL2_BINDING opengl3-binding IMGUI_BUILD_OPENGL3_BINDING osx-binding IMGUI_BUILD_OSX_BINDING sdl3-binding IMGUI_BUILD_SDL3_BINDING sdlgpu3-binding IMGUI_BUILD_SDLGPU3_BINDING sdl3-renderer-binding IMGUI_BUILD_SDL3_RENDERER_BINDING vulkan-binding IMGUI_BUILD_VULKAN_BINDING win32-binding IMGUI_BUILD_WIN32_BINDING webgpu-binding IMGUI_BUILD_WEBGPU_BINDING freetype IMGUI_FREETYPE freetype-svg IMGUI_FREETYPE_SVG wchar32 IMGUI_USE_WCHAR32 test-engine IMGUI_TEST_ENGINE ) if ("libigl-imgui" IN_LIST FEATURES) vcpkg_download_distfile( IMGUI_FONTS_DROID_SANS_H URLS https://raw.githubusercontent.com/libigl/libigl-imgui/c3efb9b62780f55f9bba34561f79a3087e057fc0/imgui_fonts_droid_sans.h FILENAME "imgui_fonts_droid_sans.h" SHA512 abe9250c9a5989e0a3f2285bbcc83696ff8e38c1f5657c358e6fe616ff792d3c6e5ff2fa23c2eeae7d7b307392e0dc798a95d14f6d10f8e9bfbd7768d36d8b31 ) file(INSTALL "${IMGUI_FONTS_DROID_SANS_H}" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endif() if ("test-engine" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH TEST_ENGINE_SOURCE_PATH REPO ocornut/imgui_test_engine REF "v${VERSION}" SHA512 f125ed5e8345fa9c7e9761ad738c68e2b51bd7cfe338dbb1bb4235d65f9430dc1555beb1f12409941ad5f1c8580409b11bd52db3b159a3d08a61000507900104 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/test-engine") file(COPY "${TEST_ENGINE_SOURCE_PATH}/imgui_test_engine/" DESTINATION "${SOURCE_PATH}/test-engine") file(REMOVE_RECURSE "${SOURCE_PATH}/test-engine/thirdparty/stb") vcpkg_replace_string("${SOURCE_PATH}/test-engine/imgui_capture_tool.cpp" "//#define IMGUI_STB_IMAGE_WRITE_FILENAME \"my_folder/stb_image_write.h\"" "#define IMGUI_STB_IMAGE_WRITE_FILENAME \n#define STB_IMAGE_WRITE_STATIC") vcpkg_replace_string("${SOURCE_PATH}/imconfig.h" "#pragma once" "#pragma once\n\n#include \"imgui_te_imconfig.h\"") vcpkg_replace_string("${SOURCE_PATH}/test-engine/imgui_te_imconfig.h" "#define IMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL 0" "#define IMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL 1") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DIMGUI_SKIP_HEADERS=ON ) vcpkg_cmake_install() if ("freetype" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/imconfig.h" "//#define IMGUI_ENABLE_FREETYPE\n" "#define IMGUI_ENABLE_FREETYPE\n") endif() if ("freetype-svg" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/imconfig.h" "//#define IMGUI_ENABLE_FREETYPE_PLUTOSVG" "#define IMGUI_ENABLE_FREETYPE_PLUTOSVG") endif() if ("wchar32" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/imconfig.h" "//#define IMGUI_USE_WCHAR32" "#define IMGUI_USE_WCHAR32") endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if ("test-engine" IN_LIST FEATURES) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/test-engine/LICENSE.txt") else() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") endif() ================================================ FILE: ports/imgui/vcpkg.json ================================================ { "name": "imgui", "version": "1.92.6", "description": "Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.", "homepage": "https://github.com/ocornut/imgui", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "allegro5-binding": { "description": "Make available Allegro5 binding", "dependencies": [ "allegro5" ] }, "android-binding": { "description": "Make available Android native app support", "supports": "android" }, "docking-experimental": { "description": "Build with docking support" }, "dx10-binding": { "description": "Make available DirectX10 binding", "supports": "windows & !uwp" }, "dx11-binding": { "description": "Make available DirectX11 binding", "supports": "windows & !uwp" }, "dx12-binding": { "description": "Make available DirectX12 binding", "supports": "!x86 & windows & !uwp" }, "dx9-binding": { "description": "Make available DirectX9 binding", "supports": "windows & !uwp" }, "freetype": { "description": "Build font atlases using FreeType instead of stb_truetype", "dependencies": [ "freetype" ] }, "freetype-svg": { "description": "Add support to render OpenType SVG fonts", "dependencies": [ { "name": "imgui", "features": [ "freetype" ] }, { "name": "plutosvg", "features": [ "freetype" ] } ] }, "glfw-binding": { "description": "Make available GLFW binding", "dependencies": [ { "name": "glfw3", "platform": "!emscripten" } ] }, "glut-binding": { "description": "Make available Glut binding", "dependencies": [ "freeglut" ] }, "libigl-imgui": { "description": "Install the libigl-imgui headers" }, "metal-binding": { "description": "Make available Metal binding", "supports": "osx" }, "opengl2-binding": { "description": "Make available OpenGL (legacy) binding", "supports": "!(uwp | android)" }, "opengl3-binding": { "description": "Make available OpenGL3/ES/ES2 (modern) binding" }, "osx-binding": { "description": "Make available OSX binding", "supports": "osx" }, "sdl3-binding": { "description": "Make available SDL3 binding", "dependencies": [ "sdl3" ] }, "sdl3-renderer-binding": { "description": "Make available SDL3 Renderer binding", "dependencies": [ "sdl3" ] }, "sdlgpu3-binding": { "description": "Make available SDLGPU3 binding", "dependencies": [ { "name": "imgui", "features": [ "sdl3-binding" ] }, "sdl3" ] }, "test-engine": { "description": "Build test engine", "supports": "!uwp", "license": null, "dependencies": [ "stb" ] }, "vulkan-binding": { "description": "Make available Vulkan binding", "dependencies": [ "vulkan" ] }, "wchar32": { "description": "Use WCHAR32 instead of WCHAR16" }, "webgpu-binding": { "description": "Make available WebGPU binding", "dependencies": [ "dawn" ] }, "win32-binding": { "description": "Make available Win32 binding", "supports": "windows & !uwp" } } } ================================================ FILE: ports/imgui-node-editor/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(imgui-node-editor) set(CMAKE_CXX_STANDARD 14) find_package(imgui CONFIG REQUIRED) get_target_property(IMGUI_INCLUDE_DIRS imgui::imgui INTERFACE_INCLUDE_DIRECTORIES ) add_library(${PROJECT_NAME} "") target_include_directories( ${PROJECT_NAME} PUBLIC $ $ PRIVATE ${IMGUI_INCLUDE_DIRS} ) target_sources( ${PROJECT_NAME} PRIVATE crude_json.cpp imgui_canvas.cpp imgui_node_editor.cpp imgui_node_editor_api.cpp ) install( TARGETS ${PROJECT_NAME} EXPORT unofficial-${PROJECT_NAME}-target ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) if (NOT IMGUI_NODE_EDITOR_SKIP_HEADERS) install( FILES crude_json.h imgui_bezier_math.h imgui_bezier_math.inl imgui_canvas.h imgui_extra_math.h imgui_extra_math.inl imgui_node_editor.h imgui_node_editor_internal.h imgui_node_editor_internal.inl DESTINATION include/${PROJECT_NAME} ) endif() install( EXPORT unofficial-${PROJECT_NAME}-target NAMESPACE unofficial::${PROJECT_NAME}:: FILE unofficial-${PROJECT_NAME}-config.cmake DESTINATION share/unofficial-${PROJECT_NAME} ) ================================================ FILE: ports/imgui-node-editor/fix-imgui-v1.92.5.patch ================================================ diff --git a/imgui_node_editor.cpp b/imgui_node_editor.cpp index 7dee2e4..4b2ea5f 100644 --- a/imgui_node_editor.cpp +++ b/imgui_node_editor.cpp @@ -1659,7 +1659,8 @@ void ed::EditorContext::SetNodePosition(NodeId nodeId, const ImVec2& position) if (node->m_Bounds.Min != position) { node->m_Bounds.Translate(position - node->m_Bounds.Min); - node->m_Bounds.Floor(); + node->m_Bounds.Min = ImFloor(node->m_Bounds.Min); + node->m_Bounds.Max = ImFloor(node->m_Bounds.Max); MakeDirty(NodeEditor::SaveReasonFlags::Position, node); } } @@ -1679,7 +1680,8 @@ void ed::EditorContext::SetGroupSize(NodeId nodeId, const ImVec2& size) { node->m_GroupBounds.Min = node->m_Bounds.Min; node->m_GroupBounds.Max = node->m_Bounds.Min + size; - node->m_GroupBounds.Floor(); + node->m_GroupBounds.Min = ImFloor(node->m_GroupBounds.Min); + node->m_GroupBounds.Max = ImFloor(node->m_GroupBounds.Max); MakeDirty(NodeEditor::SaveReasonFlags::Size, node); } } @@ -1757,10 +1759,12 @@ void ed::EditorContext::UpdateNodeState(Node* node) node->m_Bounds.Min = settings->m_Location; node->m_Bounds.Max = node->m_Bounds.Min + settings->m_Size; - node->m_Bounds.Floor(); + node->m_Bounds.Min = ImFloor(node->m_Bounds.Min); + node->m_Bounds.Max = ImFloor(node->m_Bounds.Max); node->m_GroupBounds.Min = settings->m_Location; node->m_GroupBounds.Max = node->m_GroupBounds.Min + settings->m_GroupSize; - node->m_GroupBounds.Floor(); + node->m_GroupBounds.Min = ImFloor(node->m_GroupBounds.Min); + node->m_GroupBounds.Max = ImFloor(node->m_GroupBounds.Max); } void ed::EditorContext::RemoveSettings(Object* object) @@ -3785,7 +3789,8 @@ bool ed::SizeAction::Process(const Control& control) if ((m_Pivot & NodeRegion::Right) == NodeRegion::Right) newBounds.Max.x = ImMax(newBounds.Min.x + minimumSize.x, Editor->AlignPointToGrid(newBounds.Max.x + dragOffset.x)); - newBounds.Floor(); + newBounds.Min = ImFloor(newBounds.Min); + newBounds.Max = ImFloor(newBounds.Max); m_LastSize = newBounds.GetSize(); @@ -5308,7 +5313,8 @@ void ed::NodeBuilder::End() ImGui::EndGroup(); m_NodeRect = ImGui_GetItemRect(); - m_NodeRect.Floor(); + m_NodeRect.Min = ImFloor(m_NodeRect.Min); + m_NodeRect.Max = ImFloor(m_NodeRect.Max); if (m_CurrentNode->m_Bounds.GetSize() != m_NodeRect.GetSize()) { @@ -5416,7 +5422,8 @@ void ed::NodeBuilder::PinRect(const ImVec2& a, const ImVec2& b) IM_ASSERT(nullptr != m_CurrentPin); m_CurrentPin->m_Bounds = ImRect(a, b); - m_CurrentPin->m_Bounds.Floor(); + m_CurrentPin->m_Bounds.Min = ImFloor(m_CurrentPin->m_Bounds.Min); + m_CurrentPin->m_Bounds.Max = ImFloor(m_CurrentPin->m_Bounds.Max); m_ResolvePinRect = false; } @@ -5466,7 +5473,8 @@ void ed::NodeBuilder::Group(const ImVec2& size) ImGui::Dummy(size); m_GroupBounds = ImGui_GetItemRect(); - m_GroupBounds.Floor(); + m_GroupBounds.Min = ImFloor(m_GroupBounds.Min); + m_GroupBounds.Max = ImFloor(m_GroupBounds.Max); } ImDrawList* ed::NodeBuilder::GetUserBackgroundDrawList() const ================================================ FILE: ports/imgui-node-editor/fix-vec2-math-operators.patch ================================================ diff --git a/imgui_extra_math.h b/imgui_extra_math.h index 5c46cc4..18f6dad 100644 --- a/imgui_extra_math.h +++ b/imgui_extra_math.h @@ -30,8 +30,10 @@ struct ImLine //------------------------------------------------------------------------------ +# if IMGUI_VERSION_NUM < 19002 inline bool operator==(const ImVec2& lhs, const ImVec2& rhs); inline bool operator!=(const ImVec2& lhs, const ImVec2& rhs); +#endif inline ImVec2 operator*(const float lhs, const ImVec2& rhs); # if IMGUI_VERSION_NUM < 18955 inline ImVec2 operator-(const ImVec2& lhs); diff --git a/imgui_extra_math.inl b/imgui_extra_math.inl index 8b1b071..acc1254 100644 --- a/imgui_extra_math.inl +++ b/imgui_extra_math.inl @@ -19,6 +19,7 @@ //------------------------------------------------------------------------------ +# if IMGUI_VERSION_NUM < 19002 inline bool operator==(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x == rhs.x && lhs.y == rhs.y; @@ -28,6 +29,7 @@ inline bool operator!=(const ImVec2& lhs, const ImVec2& rhs) { return lhs.x != rhs.x || lhs.y != rhs.y; } +#endif inline ImVec2 operator*(const float lhs, const ImVec2& rhs) { ================================================ FILE: ports/imgui-node-editor/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thedmd/imgui-node-editor REF v${VERSION} SHA512 83573b6ed776095837373bc95be1c1f5b85e9c5fae2145647f9cb6fdc17d3889edce716ac9e27c1bbde56f00803a66db98ca856910e6e0ce8714d3c5ce3f7c3f HEAD_REF master PATCHES fix-vec2-math-operators.patch remove-getkeyindex.patch # GetKeyIndex() is a no-op since 1.87; see https://github.com/ocornut/imgui/issues/5979#issuecomment-1345349492 fix-imgui-v1.92.5.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(REMOVE_RECURSE "${SOURCE_PATH}/external/imgui") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DIMGUI_NODE_EDITOR_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/imgui-node-editor/remove-getkeyindex.patch ================================================ diff --git a/imgui_node_editor.cpp b/imgui_node_editor.cpp index 1d2bb06..f70d099 100644 --- a/imgui_node_editor.cpp +++ b/imgui_node_editor.cpp @@ -60,6 +60,7 @@ namespace Detail { DECLARE_KEY_TESTER(ImGuiKey_F); DECLARE_KEY_TESTER(ImGuiKey_D); +DECLARE_KEY_TESTER(ImGuiKey_Delete); static inline int GetKeyIndexForF() { @@ -70,6 +71,11 @@ static inline int GetKeyIndexForD() { return KeyTester_ImGuiKey_D::Get(nullptr); } + +static inline int GetKeyIndexForDelete() +{ + return KeyTester_ImGuiKey_Delete::Get(nullptr); +} # else static inline ImGuiKey GetKeyIndexForF() { @@ -80,6 +86,11 @@ static inline ImGuiKey GetKeyIndexForD() { return ImGuiKey_D; } + +static inline ImGuiKey GetKeyIndexForDelete() +{ + return ImGuiKey_Delete; +} # endif } // namespace Detail @@ -4391,6 +4402,7 @@ ed::EditorAction::AcceptResult ed::ShortcutAction::Accept(const Control& control Action candidateAction = None; auto& io = ImGui::GetIO(); +# if !defined(IMGUI_VERSION_NUM) || (IMGUI_VERSION_NUM < 18822) if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_X))) candidateAction = Cut; if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_C))) @@ -4401,6 +4413,18 @@ ed::EditorAction::AcceptResult ed::ShortcutAction::Accept(const Control& control candidateAction = Duplicate; if (!io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Space))) candidateAction = CreateNode; +# else + if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGuiKey_X)) + candidateAction = Cut; + if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGuiKey_C)) + candidateAction = Copy; + if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGuiKey_V)) + candidateAction = Paste; + if (io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(GetKeyIndexForD())) + candidateAction = Duplicate; + if (!io.KeyCtrl && !io.KeyShift && !io.KeyAlt && ImGui::IsKeyPressed(ImGuiKey_Space)) + candidateAction = CreateNode; +# endif if (candidateAction != None) { @@ -4953,7 +4977,7 @@ ed::EditorAction::AcceptResult ed::DeleteItemsAction::Accept(const Control& cont return False; auto& io = ImGui::GetIO(); - if (Editor->CanAcceptUserInput() && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Delete)) && Editor->AreShortcutsEnabled()) + if (Editor->CanAcceptUserInput() && ImGui::IsKeyPressed(GetKeyIndexForDelete()) && Editor->AreShortcutsEnabled()) { auto& selection = Editor->GetSelectedObjects(); if (!selection.empty()) ================================================ FILE: ports/imgui-node-editor/vcpkg.json ================================================ { "name": "imgui-node-editor", "version": "0.9.3", "port-version": 3, "description": "Node Editor built using Dear ImGui", "homepage": "https://github.com/thedmd/imgui-node-editor", "license": "MIT", "dependencies": [ "imgui", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/imgui-sfml/0001-fix_find_package.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7945482..1c91277 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,16 +29,7 @@ if(IMGUI_SFML_FIND_SFML) find_package(SFML 3 REQUIRED COMPONENTS Graphics) endif() -# ImGui does not provide native support for CMakeLists, workaround for now to have -# users specify IMGUI_DIR. Waiting for this PR to get merged... -# https://github.com/ocornut/imgui/pull/1713 -if(NOT IMGUI_DIR) - set(IMGUI_DIR "" CACHE PATH "imgui top-level directory") - message(FATAL_ERROR "ImGui directory not found. Set IMGUI_DIR to imgui's top-level path (containing 'imgui.h' and other files).\n") -endif() - -# This uses FindImGui.cmake provided in ImGui-SFML repo for now -find_package(ImGui 1.91.1 REQUIRED) +find_package(ImGui CONFIG REQUIRED) # These headers will be installed alongside ImGui-SFML set(IMGUI_PUBLIC_HEADERS @@ -70,7 +61,7 @@ target_include_directories(ImGui-SFML PUBLIC $ $ ) -target_link_libraries(ImGui-SFML PUBLIC SFML::Graphics OpenGL::GL) +target_link_libraries(ImGui-SFML PUBLIC imgui::imgui SFML::Graphics ${OPENGL_LIBRARIES}) if(WIN32 AND MINGW) target_link_libraries(ImGui-SFML PUBLIC imm32) endif() @@ -113,7 +104,6 @@ target_compile_definitions(ImGui-SFML PUBLIC IMGUI_USER_CONFIG="${IMGUI_SFML_CON set(IMGUI_SFML_PUBLIC_HEADERS ${PROJECT_SOURCE_DIR}/imgui-SFML.h ${PROJECT_SOURCE_DIR}/imgui-SFML_export.h - ${IMGUI_PUBLIC_HEADERS} ) if(IMGUI_SFML_USE_DEFAULT_CONFIG OR (NOT DEFINED "${IMGUI_SFML_CONFIG_INSTALL_DIR}")) list(APPEND IMGUI_SFML_PUBLIC_HEADERS "${IMGUI_SFML_CONFIG_DIR}/${IMGUI_SFML_CONFIG_NAME}") ================================================ FILE: ports/imgui-sfml/0002-support-imgui-1.92.patch ================================================ diff --git a/imgui-SFML.cpp b/imgui-SFML.cpp index 6641244..7bd812f 100644 --- a/imgui-SFML.cpp +++ b/imgui-SFML.cpp @@ -1,4 +1,5 @@ #include "imgui-SFML.h" +#include #include #include @@ -313,6 +314,7 @@ bool Init(sf::Window& window, const sf::Vector2f& displaySize, bool loadDefaultF io.BackendFlags |= ImGuiBackendFlags_HasGamepad; io.BackendFlags |= ImGuiBackendFlags_HasMouseCursors; io.BackendFlags |= ImGuiBackendFlags_HasSetMousePos; + io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures; io.BackendPlatformName = "imgui_impl_sfml"; s_currWindowCtx->joystickId = getConnectedJoystickId(); @@ -338,13 +340,6 @@ bool Init(sf::Window& window, const sf::Vector2f& displaySize, bool loadDefaultF loadMouseCursor(ImGuiMouseCursor_ResizeNWSE, sf::Cursor::Type::SizeTopLeftBottomRight); loadMouseCursor(ImGuiMouseCursor_Hand, sf::Cursor::Type::Hand); - if (loadDefaultFont) - { - // this will load default font automatically - // No need to call AddDefaultFont - return UpdateFontTexture(); - } - return true; } @@ -589,6 +584,15 @@ void Shutdown(const sf::Window& window) { const bool needReplacement = (s_currWindowCtx->window->getNativeHandle() == window.getNativeHandle()); + for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) + { + if (tex->RefCount == 1) + { + tex->SetStatus(ImTextureStatus_WantDestroy); + UpdateFontTexture(tex); + } + } + // remove window's context auto found = std::find_if(s_windowContexts.begin(), s_windowContexts.end(), @@ -619,37 +623,55 @@ void Shutdown(const sf::Window& window) void Shutdown() { + for (ImTextureData* tex : ImGui::GetPlatformIO().Textures) + { + if (tex->RefCount == 1) + { + tex->SetStatus(ImTextureStatus_WantDestroy); + UpdateFontTexture(tex); + } + } s_currWindowCtx = nullptr; ImGui::SetCurrentContext(nullptr); s_windowContexts.clear(); } -bool UpdateFontTexture() +void UpdateFontTexture(ImTextureData* tex) { assert(s_currWindowCtx); - ImGuiIO& io = ImGui::GetIO(); - unsigned char* pixels = nullptr; - int width = 0; - int height = 0; - - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - - sf::Texture newTexture; - if (!newTexture.resize(sf::Vector2u(sf::Vector2(width, height)))) + if (tex->Status == ImTextureStatus_WantCreate) { - return false; + auto sfml_texture = std::make_unique(); + [[maybe_unused]] auto res = sfml_texture->resize(sf::Vector2u(sf::Vector2(tex->Width, tex->Height))); + sfml_texture->update(reinterpret_cast(tex->GetPixels())); + ImTextureID id = convertGLTextureHandleToImTextureID(sfml_texture->getNativeHandle()); + tex->SetTexID(id); + textureMap[id] = std::move(sfml_texture); + tex->SetStatus(ImTextureStatus_OK); } + else if (tex->Status == ImTextureStatus_WantUpdates) + { + auto it = textureMap.find(tex->GetTexID()); + if (it != textureMap.end()) { + for (ImTextureRect& r : tex->Updates) + { + it->second->update( + reinterpret_cast(tex->GetPixelsAt(r.x, r.y)), + sf::Vector2u(sf::Vector2(r.w, r.h)), + sf::Vector2u(sf::Vector2(r.x, r.y))); + tex->SetStatus(ImTextureStatus_OK); + } - newTexture.update(pixels); - - ImTextureID texID = convertGLTextureHandleToImTextureID(newTexture.getNativeHandle()); - io.Fonts->SetTexID(texID); - - s_currWindowCtx->fontTexture = std::move(newTexture); - - return true; + } + } + else + { + tex->SetTexID(ImTextureID_Invalid); + tex->SetStatus(ImTextureStatus_Destroyed); + textureMap.erase(tex->GetTexID()); + } } std::optional& GetFontTexture() @@ -776,7 +798,7 @@ void Image(const sf::Texture& texture, const sf::Vector2f& size, const sf::Color { ImTextureID textureID = convertGLTextureHandleToImTextureID(texture.getNativeHandle()); - ImGui::Image(textureID, toImVec2(size), ImVec2(0, 0), ImVec2(1, 1), toImColor(tintColor), toImColor(borderColor)); + ImGui::ImageWithBg(textureID, toImVec2(size), ImVec2(0, 0), ImVec2(1, 1), toImColor(tintColor), toImColor(borderColor)); } /////////////// Image Overloads for sf::RenderTexture @@ -789,7 +811,7 @@ void Image(const sf::RenderTexture& texture, const sf::Vector2f& size, const sf: { ImTextureID textureID = convertGLTextureHandleToImTextureID(texture.getTexture().getNativeHandle()); - ImGui::Image(textureID, + ImGui::ImageWithBg(textureID, toImVec2(size), ImVec2(0, 1), ImVec2(1, 0), // flipped vertically, @@ -810,7 +832,7 @@ void Image(const sf::Sprite& sprite, const sf::Color& tintColor, const sf::Color void Image(const sf::Sprite& sprite, const sf::Vector2f& size, const sf::Color& tintColor, const sf::Color& borderColor) { auto [uv0, uv1, textureID] = getSpriteTextureData(sprite); - ImGui::Image(textureID, toImVec2(size), uv0, uv1, toImColor(tintColor), toImColor(borderColor)); + ImGui::ImageWithBg(textureID, toImVec2(size), uv0, uv1, toImColor(tintColor), toImColor(borderColor)); } /////////////// Image Button Overloads for sf::Texture @@ -946,14 +968,11 @@ void SetupRenderState(ImDrawData* draw_data, int fb_width, int fb_height) // Rendering callback void RenderDrawLists(ImDrawData* draw_data) { - ImGui::GetDrawData(); - if (draw_data->CmdListsCount == 0) - { - return; - } - - const ImGuiIO& io = ImGui::GetIO(); - assert(io.Fonts->TexID != (ImTextureID) nullptr); // You forgot to create and set font texture + auto& io = ImGui::GetIO(); + if (draw_data->Textures != nullptr) + for (ImTextureData* tex : *draw_data->Textures) + if (tex->Status != ImTextureStatus_OK) + ImGui::SFML::UpdateFontTexture(tex); // Avoid rendering when minimized, scale coordinates for retina displays (screen coordinates != // framebuffer coordinates) @@ -1040,7 +1059,7 @@ void RenderDrawLists(ImDrawData* draw_data) (int)(clip_rect.w - clip_rect.y)); // Bind texture, Draw - const GLuint textureHandle = convertImTextureIDToGLTextureHandle(pcmd->TextureId); + const GLuint textureHandle = (GLuint)(intptr_t)pcmd->GetTexID(); glBindTexture(GL_TEXTURE_2D, textureHandle); glDrawElements(GL_TRIANGLES, (GLsizei)pcmd->ElemCount, diff --git a/imgui-SFML.h b/imgui-SFML.h index ee873f6..e0d15aa 100644 --- a/imgui-SFML.h +++ b/imgui-SFML.h @@ -6,10 +6,14 @@ #include #include #include +#include #include #include "imgui-SFML_export.h" +#include "imgui.h" // IMGUI_IMPL_API +#include +#include namespace sf { @@ -26,6 +30,8 @@ namespace ImGui { namespace SFML { + inline std::unordered_map> textureMap; + [[nodiscard]] IMGUI_SFML_API bool Init(sf::RenderWindow& window, bool loadDefaultFont = true); [[nodiscard]] IMGUI_SFML_API bool Init(sf::Window& window, sf::RenderTarget& target, bool loadDefaultFont = true); [[nodiscard]] IMGUI_SFML_API bool Init(sf::Window& window, const sf::Vector2f& displaySize, bool loadDefaultFont = true); @@ -45,7 +51,7 @@ IMGUI_SFML_API void Shutdown(const sf::Window& window); // Shuts down all ImGui contexts IMGUI_SFML_API void Shutdown(); -[[nodiscard]] IMGUI_SFML_API bool UpdateFontTexture(); +IMGUI_SFML_API void UpdateFontTexture(ImTextureData* tex); IMGUI_SFML_API std::optional& GetFontTexture(); // joystick functions ================================================ FILE: ports/imgui-sfml/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # this mirrors ImGui's portfile behavior vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sfml/imgui-sfml REF "v${VERSION}" SHA512 be02207533b532f10038bb83eb49311e57774dbddd1bac2ebb1789cbdef2abbfa24cee59b8b5889302feba72af1e98a4a1c7ac063e7d815ce1f2ef9bd40cf552 HEAD_REF master PATCHES 0001-fix_find_package.patch 0002-support-imgui-1.92.patch # https://github.com/SFML/imgui-sfml/pull/330 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ImGui-SFML) file(READ "${CURRENT_PACKAGES_DIR}/share/imgui-sfml/ImGui-SFMLConfig.cmake" cmake_config) string(PREPEND cmake_config [[ include(CMakeFindDependencyMacro) find_dependency(imgui CONFIG) find_dependency(SFML COMPONENTS Graphics Window System) ]]) file(WRITE "${CURRENT_PACKAGES_DIR}/share/imgui-sfml/ImGui-SFMLConfig.cmake" "${cmake_config}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/imgui-sfml/usage ================================================ imgui-sfml provides CMake targets: find_package(ImGui-SFML CONFIG REQUIRED) target_link_libraries(main PRIVATE ImGui-SFML::ImGui-SFML) ================================================ FILE: ports/imgui-sfml/vcpkg.json ================================================ { "name": "imgui-sfml", "version": "3.0", "port-version": 3, "description": "ImGui binding for use with SFML", "homepage": "https://github.com/eliasdaler/imgui-sfml", "license": "MIT", "supports": "!android", "dependencies": [ "imgui", "opengl", "sfml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/imguizmo/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(imguizmo) set(CMAKE_CXX_STANDARD 11) find_package(imgui CONFIG REQUIRED) get_target_property(IMGUI_INCLUDE_DIRS imgui::imgui INTERFACE_INCLUDE_DIRECTORIES ) add_library(${PROJECT_NAME} "") target_include_directories( ${PROJECT_NAME} PUBLIC $ $ PRIVATE ${IMGUI_INCLUDE_DIRS} ) target_sources( ${PROJECT_NAME} PRIVATE GraphEditor.cpp ImCurveEdit.cpp ImGradient.cpp ImGuizmo.cpp ImSequencer.cpp ) install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-target ARCHIVE DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) if (NOT IMGUIZMO_SKIP_HEADERS) install( FILES GraphEditor.h ImCurveEdit.h ImGradient.h ImGuizmo.h ImSequencer.h ImZoomSlider.h DESTINATION include ) endif() install( EXPORT ${PROJECT_NAME}-target NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-config.cmake DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/imguizmo/fix-imgui-1.92.5.patch ================================================ diff --git a/GraphEditor.cpp b/GraphEditor.cpp index f75fdd9..c7fde15 100644 --- a/GraphEditor.cpp +++ b/GraphEditor.cpp @@ -837,7 +837,7 @@ void Show(Delegate& delegate, const Options& options, ViewState& viewState, bool captureOffset = viewState.mPosition * viewState.mFactor; //ImGui::InvisibleButton("GraphEditorButton", canvasSize); - ImGui::BeginChildFrame(71711, canvasSize); + ImGui::BeginChild(71711, canvasSize, ImGuiChildFlags_FrameStyle); ImGui::SetCursorPos(windowPos); ImGui::BeginGroup(); @@ -1030,7 +1030,7 @@ void Show(Delegate& delegate, const Options& options, ViewState& viewState, bool ImGui::PopStyleColor(1); ImGui::PopStyleVar(2); ImGui::EndGroup(); - ImGui::EndChildFrame(); + ImGui::EndChild(); ImGui::PopStyleVar(3); diff --git a/ImCurveEdit.cpp b/ImCurveEdit.cpp index f0d5a97..6914af0 100644 --- a/ImCurveEdit.cpp +++ b/ImCurveEdit.cpp @@ -148,7 +148,7 @@ namespace ImCurveEdit ImGuiIO& io = ImGui::GetIO(); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0)); ImGui::PushStyleColor(ImGuiCol_Border, 0); - ImGui::BeginChildFrame(id, size); + ImGui::BeginChild(id, size, ImGuiChildFlags_FrameStyle); delegate.focused = ImGui::IsWindowFocused(); ImDrawList* draw_list = ImGui::GetWindowDrawList(); if (clippingRect) @@ -441,7 +441,7 @@ namespace ImCurveEdit if (clippingRect) draw_list->PopClipRect(); - ImGui::EndChildFrame(); + ImGui::EndChild(); ImGui::PopStyleVar(); ImGui::PopStyleColor(1); diff --git a/ImGradient.cpp b/ImGradient.cpp index 734200e..8fce078 100644 --- a/ImGradient.cpp +++ b/ImGradient.cpp @@ -67,7 +67,7 @@ namespace ImGradient bool ret = false; ImGuiIO& io = ImGui::GetIO(); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0)); - ImGui::BeginChildFrame(137, size); + ImGui::BeginChild(137, size, ImGuiChildFlags_FrameStyle); ImDrawList* draw_list = ImGui::GetWindowDrawList(); const ImVec2 offset = ImGui::GetCursorScreenPos(); @@ -107,7 +107,7 @@ namespace ImGradient delegate.AddPoint(delegate.GetPoint(t)); ret = true; } - ImGui::EndChildFrame(); + ImGui::EndChild(); ImGui::PopStyleVar(); selection = currentSelection; diff --git a/ImSequencer.cpp b/ImSequencer.cpp index aff7729..3a0c8e8 100644 --- a/ImSequencer.cpp +++ b/ImSequencer.cpp @@ -162,7 +162,7 @@ namespace ImSequencer ImVec2 childFramePos = ImGui::GetCursorScreenPos(); ImVec2 childFrameSize(canvas_size.x, canvas_size.y - 8.f - headerSize.y - (hasScrollBar ? scrollBarSize.y : 0)); ImGui::PushStyleColor(ImGuiCol_FrameBg, 0); - ImGui::BeginChildFrame(889, childFrameSize); + ImGui::BeginChild(890, childFrameSize, ImGuiChildFlags_FrameStyle); sequence->focused = ImGui::IsWindowFocused(); ImGui::InvisibleButton("contentBar", ImVec2(canvas_size.x, float(controlHeight))); const ImVec2 contentMin = ImGui::GetItemRectMin(); @@ -511,7 +511,7 @@ namespace ImSequencer } // - ImGui::EndChildFrame(); + ImGui::EndChild(); ImGui::PopStyleColor(); if (hasScrollBar) { ================================================ FILE: ports/imguizmo/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CedricGuillemet/ImGuizmo REF ba662b119d64f9ab700bb2cd7b2781f9044f5565 SHA512 682d785b582379914d525985de3a0bc04932b4ed715607127b1803ffba4d9b85165255dca1c18d2fd0934bab43de5d6c9c2d9909ac84d0ddaea12dad1871bcf8 HEAD_REF master PATCHES fix-imgui-1.92.5.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DIMGUIZMO_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME ${PORT} CONFIG_PATH share/${PORT}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/imguizmo/vcpkg.json ================================================ { "name": "imguizmo", "version-date": "2024-05-29", "port-version": 2, "description": "Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui", "homepage": "https://github.com/CedricGuillemet/ImGuizmo", "license": "MIT", "dependencies": [ "imgui", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/immer/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arximboldi/immer REF "v${VERSION}" SHA512 b001a23b503610ce989f68fee8136723b3b2cc788558a37a373aaa0347acf615a647b44759cda7f5ab4a6f9f15f46dcb9f22eac569310201d95161e8892e3619 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "docs" immer_BUILD_DOCS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_PYTHON=OFF -DENABLE_GUILE=OFF -DENABLE_BOOST_COROUTINE=OFF -Dimmer_BUILD_TESTS=OFF -Dimmer_BUILD_EXAMPLES=OFF -Dimmer_BUILD_EXTRAS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Immer) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/immer/vcpkg.json ================================================ { "name": "immer", "version": "0.9.1", "description": "Postmodern immutable and persistent data structures for C++", "homepage": "https://sinusoid.es/immer/", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "docs": { "description": "Build documentation" } } } ================================================ FILE: ports/implot/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(implot CXX) find_package(imgui CONFIG REQUIRED) get_target_property(IMGUI_INCLUDE_DIRS imgui::imgui INTERFACE_INCLUDE_DIRECTORIES ) set(CMAKE_DEBUG_POSTFIX d) add_library(${PROJECT_NAME} "") add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) target_include_directories( ${PROJECT_NAME} PUBLIC $ $ PRIVATE ${IMGUI_INCLUDE_DIRS} ) target_sources( ${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/implot.cpp ${CMAKE_CURRENT_SOURCE_DIR}/implot_items.cpp ${CMAKE_CURRENT_SOURCE_DIR}/implot_demo.cpp ) install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}_target ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(NOT IMPLOT_SKIP_HEADERS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/implot.h ${CMAKE_CURRENT_SOURCE_DIR}/implot_internal.h DESTINATION include ) endif() install( EXPORT ${PROJECT_NAME}_target NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-config.cmake DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/implot/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO epezent/implot REF v${VERSION} SHA512 cb1c3d7990f583e3d95464b449bd5dd6dd599b3221684a298c268c3425fe65e1634a39e5055b8faac7549665568186915ec8915540f9b2544046d1f000f1d146 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DIMPLOT_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/implot/vcpkg.json ================================================ { "name": "implot", "version": "0.17", "description": "Advanced 2D Plotting for Dear ImGui", "homepage": "https://github.com/epezent/implot", "license": "MIT", "dependencies": [ "imgui", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/implot3d/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(implot3d CXX) set(CMAKE_DEBUG_POSTFIX d) add_library(${PROJECT_NAME} "" ${CMAKE_CURRENT_SOURCE_DIR}/implot3d.cpp ${CMAKE_CURRENT_SOURCE_DIR}/implot3d_items.cpp ${CMAKE_CURRENT_SOURCE_DIR}/implot3d_demo.cpp ${CMAKE_CURRENT_SOURCE_DIR}/implot3d_meshes.cpp ) add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) find_package(imgui CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC imgui::imgui) target_include_directories( ${PROJECT_NAME} PUBLIC $ $ ) install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}_target ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/implot3d.h ${CMAKE_CURRENT_SOURCE_DIR}/implot3d_internal.h DESTINATION include ) install( EXPORT ${PROJECT_NAME}_target NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-config.cmake DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/implot3d/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brenocq/implot3d REF "v${VERSION}" SHA512 6503a0f1a32f9c5a2bfc45205304a9a8b7a44e471d3391131e557b7c301d355a4e987c0828a32f5b84f2f1368a891a493f803156f9181cdfd700bbe4219a2321 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DIMPLOT3D_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/implot3d/vcpkg.json ================================================ { "name": "implot3d", "version": "0.3", "description": "Immediate Mode 3D Plotting", "homepage": "https://github.com/brenocq/implot3d", "license": "MIT", "dependencies": [ "imgui", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/indicators/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/indicators REF v2.3 SHA512 59FB17E93C886CEC2418E93E221FEBD2BF3160691B3473363417F8F8FA3D50D42D1DE0E55D62598EBA800B13C1D5AB1422D0A2C867246006B61340BA32D99232 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINDICATORS_BUILD_TESTS=OFF -DINDICATORS_SAMPLES=OFF -DINDICATORS_DEMO=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/indicators) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/LICENSE.termcolor" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/indicators/vcpkg.json ================================================ { "name": "indicators", "version": "2.3", "description": "Activity indicators for modern C++", "homepage": "https://github.com/p-ranav/indicators", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/indirect-value/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index da1d4d8..f314754 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -162,12 +162,6 @@ if (${CPP_INDIRECT_IS_NOT_SUBPROJECT}) ${CMAKE_INSTALL_INCLUDEDIR} ) - install( - FILES - "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt" - DESTINATION - "${CMAKE_INSTALL_DATAROOTDIR}/licenses/indirect_value" - ) install( TARGETS indirect_value @@ -179,6 +173,7 @@ if (${CPP_INDIRECT_IS_NOT_SUBPROJECT}) install( EXPORT indirect_value-export-set + FILE indirect_value-target.cmake NAMESPACE indirect_value:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/indirect_value" ) ================================================ FILE: ports/indirect-value/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jbcoe/indirect_value REF 4152dcc5d2e35d03f3e71089508b47a8f630b8e7 SHA512 fea37378041f9c770b76e6c68777d0fd5c27e28e7f83b0a7a021eb06aa279c959ab6d5f4d748e1f0fedd90c04965073850a855395b72574143fa1053704211ea HEAD_REF main PATCHES fix-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_CODE_COVERAGE=OFF -DENABLE_INCLUDE_NATVIS=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME indirect_value CONFIG_PATH lib/cmake/indirect_value) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/indirect-value/") ================================================ FILE: ports/indirect-value/usage ================================================ The package indirect-value provides CMake targets: find_package(indirect_value CONFIG REQUIRED) target_link_libraries(main PRIVATE indirect_value::indirect_value) ================================================ FILE: ports/indirect-value/vcpkg.json ================================================ { "name": "indirect-value", "version-date": "2023-06-01", "description": "An indirect value-type for C++", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/inflatelib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/inflatelib REF "v${VERSION}" SHA512 75c9bd5cca52813ccb7ff5dd048783c8865b7fdcdab406849019a321c49c3b74b831d0529549168b78bb4a51fcebbe6e945ca6309e60c4c5a3c0290d17d07cee HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINFLATELIB_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/inflatelib/usage ================================================ inflatelib provides CMake targets: find_package(inflatelib CONFIG REQUIRED) target_link_libraries(main PRIVATE inflatelib::inflatelib) ================================================ FILE: ports/inflatelib/vcpkg.json ================================================ { "name": "inflatelib", "version": "0.1.0", "description": "A Deflate and Deflate64 decompression library", "homepage": "https://github.com/microsoft/inflatelib", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/influxdb-cxx/fix-dllexports.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index df7e7a3..4879802 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,10 @@ project(influxdb-cxx LANGUAGES CXX ) +if (BUILD_SHARED_LIBS) + add_definitions(-DInfluxDB_EXPORTS) +endif() + message(STATUS "~~~ ${PROJECT_NAME} v${PROJECT_VERSION} ~~~") ================================================ FILE: ports/influxdb-cxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO offa/influxdb-cxx REF "v${VERSION}" SHA512 bd21c67988fe3ffddcfe11c26c2d23954702a542f138751e78d027d98f980c5c8e969776a1697d6104a704c0dddf63130b9c1f9c9df6e8e6bcb27bf9f8303218 HEAD_REF master PATCHES fix-dllexports.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES boost INFLUXCXX_WITH_BOOST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINFLUXCXX_TESTING=OFF -DINFLUXCXX_SYSTEMTEST=OFF -DINFLUXCXX_INSTALL_HEADER_TO_SUBDIR=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME InfluxDB CONFIG_PATH lib/cmake/InfluxDB) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/influxdb-cxx/vcpkg.json ================================================ { "name": "influxdb-cxx", "version": "0.8.1", "description": "InfluxDB C++ client library", "homepage": "https://github.com/offa/influxdb-cxx", "license": "MIT", "dependencies": [ "cpr", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost": { "description": "Enables UDP and Unix sockets as Transport Layer", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-conversion", "boost-property-tree" ] } } } ================================================ FILE: ports/infoware/cross-build.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 580df83..ac89904 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,6 +93,8 @@ if(INFOWARE_PCI_IDS_PATH) message(WARNING "The specified pci.ids file INFOWARE_PCI_IDS_PATH=${INFOWARE_PCI_IDS_PATH} doesn't seem to exist.") endif() set(infoware_pci_ids_file "${INFOWARE_PCI_IDS_PATH}") +elseif(HOST_PCI_DATA) + # git unused elseif(NOT Git_FOUND) message(SEND_ERROR "Couldn't find a usable git executable in the environment, and the CMake variable INFOWARE_PCI_IDS_PATH is empty.\n${infoware_pci_ids_error}") else() @@ -122,11 +124,17 @@ set_target_properties(infoware_pci_generator PROPERTIES CXX_STANDARD 14 set(INFOWARE_PCI_DATA_HPP pci_data.hpp) set(INFOWARE_PCI_DATA_GEN "infoware_generated/${INFOWARE_PCI_DATA_HPP}") +if(HOST_PCI_DATA) + set_target_properties(infoware_pci_generator PROPERTIES EXCLUDE_FROM_ALL 1) + configure_file("${HOST_PCI_DATA}" "${CMAKE_CURRENT_BINARY_DIR}/${INFOWARE_PCI_DATA_GEN}" COPYONLY) +else() +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${INFOWARE_PCI_DATA_GEN}" DESTINATION "share/infoware") add_custom_command(OUTPUT ${INFOWARE_PCI_DATA_GEN} COMMAND ${CMAKE_COMMAND} -E make_directory infoware_generated/ COMMAND $ "${infoware_pci_ids_file}" > "infoware_generated/pci_data.hpp" DEPENDS "${infoware_pci_ids_file}" COMMENT "Generating ${INFOWARE_PCI_DATA_HPP}") +endif() add_custom_target(infoware_generate_pcis DEPENDS "${INFOWARE_PCI_DATA_GEN}") add_dependencies(infoware infoware_generate_pcis) ================================================ FILE: ports/infoware/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ThePhD/infoware REF d64a0c948593c0555115f60c79225c0b9ae09510 SHA512 3794cb78a1422bfc065037abbae81259e6061ba7b12ebd7b88581118e8eeebaf92d80cf7793b0f9f1da6754baf52835a6891663593dd0b0a38009a9cb141082b HEAD_REF master PATCHES cross-build.diff ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES d3d INFOWARE_USE_D3D opencl INFOWARE_USE_OPENCL opengl INFOWARE_USE_OPENGL x11 INFOWARE_USE_X11 ) if(VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DHOST_PCI_DATA=${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/pci_data.hpp") else() acquire_pciids(pciids_path) list(APPEND FEATURE_OPTIONS "-DINFOWARE_PCI_IDS_PATH=${pciids_path}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DINFOWARE_EXAMPLES=OFF -DINFOWARE_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/infoware/vcpkg.json ================================================ { "name": "infoware", "version-date": "2023-04-12", "description": "C++ Library for pulling system and hardware information, without hitting the command line.", "homepage": "https://github.com/ThePhD/infoware", "license": "CC0-1.0", "supports": "!android & !uwp & !(windows & arm)", "dependencies": [ { "name": "infoware", "host": true }, { "name": "pciids", "platform": "native" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "d3d": { "description": [ "Use Direct3D for GPU detection.", "This choice has priority over opencl and opengl." ], "supports": "windows" }, "opencl": { "description": [ "Use OpenCL for GPU detection.", "This choice has priority over opengl." ], "dependencies": [ "opencl" ] }, "opengl": { "description": "Use OpenGL for GPU detection.", "supports": "!osx & !ios", "dependencies": [ "opengl" ] }, "x11": { "description": "Use X11 for display detection.", "supports": "!windows" } } } ================================================ FILE: ports/inih/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO benhoyt/inih REF "r${VERSION}" SHA512 206ddfaa55d29396c3a44f8d1dfcf578c5ebf892e81fe875cd6b4ec2af5cccf400ca13fc6585b6d8232bd122bd8aef7522bfc83898b5609b29c20bad9390ee02 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cpp with_INIReader ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(INIH_CONFIG_DEBUG ON) else() set(INIH_CONFIG_DEBUG OFF) endif() # Install unofficial CMake package configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-inihConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-inih/unofficial-inihConfig.cmake" @ONLY) # meson build string(REPLACE "OFF" "false" FEATURE_OPTIONS "${FEATURE_OPTIONS}") string(REPLACE "ON" "true" FEATURE_OPTIONS "${FEATURE_OPTIONS}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "${FEATURE_OPTIONS}" "-Dcpp_std=c++11" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/inih/unofficial-inihConfig.cmake.in ================================================ if(TARGET unofficial::inih::libinih) return() endif() set(INIH_WITH_INI_READER @with_INIReader@) set(INIH_WITH_DEBUG @INIH_CONFIG_DEBUG@) # Compute the installation prefix relative to this file. 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) ################### #### libinih #### add_library(unofficial::inih::libinih UNKNOWN IMPORTED) find_library(INIH_INIHLIB_RELEASE NAMES inih PATHS "${_IMPORT_PREFIX}/lib/" REQUIRED NO_DEFAULT_PATH) set_target_properties(unofficial::inih::libinih PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION_RELEASE "${INIH_INIHLIB_RELEASE}" IMPORTED_CONFIGURATIONS "RELEASE" ) if(INIH_WITH_DEBUG) set_property(TARGET unofficial::inih::libinih APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) find_library(INIH_INIHLIB_DEBUG NAMES inih PATHS "${_IMPORT_PREFIX}/debug/lib/" REQUIRED NO_DEFAULT_PATH) set_target_properties(unofficial::inih::libinih PROPERTIES IMPORTED_LOCATION_DEBUG "${INIH_INIHLIB_DEBUG}" ) endif() #### libinih #### ################### #### INIReader #### if(INIH_WITH_INI_READER) add_library(unofficial::inih::inireader UNKNOWN IMPORTED) find_library(INIH_INIREADER_RELEASE NAMES INIReader PATHS "${_IMPORT_PREFIX}/lib/" REQUIRED NO_DEFAULT_PATH) set_target_properties(unofficial::inih::inireader PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C;CXX" IMPORTED_LOCATION_RELEASE "${INIH_INIREADER_RELEASE}" INTERFACE_LINK_LIBRARIES "unofficial::inih::libinih" IMPORTED_CONFIGURATIONS "RELEASE" ) if(INIH_WITH_DEBUG) set_property(TARGET unofficial::inih::inireader APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) find_library(INIH_INIREADER_DEBUG NAMES INIReader PATHS "${_IMPORT_PREFIX}/debug/lib/" NO_DEFAULT_PATH) set_target_properties(unofficial::inih::inireader PROPERTIES IMPORTED_LOCATION_DEBUG "${INIH_INIREADER_DEBUG}" ) endif() endif() #### INIReader #### ################### ================================================ FILE: ports/inih/usage ================================================ The package inih provides unofficial CMake targets: find_package(unofficial-inih CONFIG REQUIRED) # C API target_link_libraries(main PRIVATE unofficial::inih::libinih) # C++ API (Requires "cpp" feature) target_link_libraries(main PRIVATE unofficial::inih::inireader) Alternatively, if you are using pckgconfig use the name "inih" for the C API and "inireader" for the C++ API ================================================ FILE: ports/inih/vcpkg.json ================================================ { "name": "inih", "version": "62", "description": "Simple .INI file parser", "homepage": "https://github.com/benhoyt/inih", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ "cpp" ], "features": { "cpp": { "description": "Build the C++ library" } } } ================================================ FILE: ports/iniparser/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ndevilla/iniparser REF v${VERSION} SHA512 4057e65011efb005fd212c2316580b9d5d6b835f0a507001324e5ca49ad0e7656508a915484c24cd5b57aece11a9298feb5904fec3535c5191fff62706b15aa9 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH /lib/cmake/iniparser) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/iniparser/vcpkg.json ================================================ { "name": "iniparser", "version": "4.2.6", "description": "C library for parsing INI-style files", "homepage": "https://github.com/ndevilla/iniparser", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/inipp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mcmtroffaes/inipp REF ${VERSION} SHA512 c1123dcda9cddd5b979fc1788c326eba6d0b2d9cec4415d7a27e6b0906eeb2d1ad68dffbf4673b90b268defc6593d32e22beac4b3619e68df4ea83ab8a15d562 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/inipp/inipp.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/inipp/vcpkg.json ================================================ { "name": "inipp", "version": "1.0.13", "description": "Simple header-only C++ ini parser and generator", "homepage": "https://github.com/mcmtroffaes/inipp", "license": "MIT" } ================================================ FILE: ports/inja/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pantor/inja REF v${VERSION} SHA512 3b8924f22ae62d58f03ae16b9c485ee35c617aa37d99d94b0ab21e8fd70fa51ef3a10de6f578b51fa3e1dcf37afe484c409c9abb5c6525b5b49a3bafc46c47c7 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINJA_USE_EMBEDDED_JSON=OFF -DBUILD_TESTING=OFF -DBUILD_BENCHMARK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/inja") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Don't need built-in nlohmann-json as this package depends on nlohmann-json file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/inja/json") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/inja/vcpkg.json ================================================ { "name": "inja", "version": "3.5.0", "description": "Inja - A Template Engine for Modern C++", "homepage": "https://github.com/pantor/inja", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/intel-ipsec/always-generate-pdb.patch ================================================ From 19d3b3fca689fb87e819b0b27bc74d1f52fcd2c8 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 12 Jan 2022 12:40:30 +0000 Subject: [PATCH] lib: generate PDB in release build on Windows PDBs are necessary for postmortem debugging and for teams to get reports from Watson, so they should be built for released software too. This change always passes /DEBUG to the MSVC linker. That switch controls whether a PDB is generated (as in "generate debugging information") not a statement that the resulting files are the debug specific version of your library. /DEBUG changes the default values of /INCREMENTAL (to on) and /OPT:REF and /OPT:ICF to off, so those are changed back to incremental off and linker optimizations on in debug builds. This missing PDB issue was discovered in fixing intel-ipsec's port in vcpkg to build on Windows (https://github.com/microsoft/vcpkg/pull/22269). intel-ipsec-mb vcpkg PR link is https://github.com/microsoft/vcpkg/pull/5586 --- lib/win_x64.mak | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/win_x64.mak b/lib/win_x64.mak index 89162feb..bb62b2ea 100644 --- a/lib/win_x64.mak +++ b/lib/win_x64.mak @@ -12,7 +12,7 @@ # * Neither the name of Intel Corporation nor the names of its contributors # may be used to endorse or promote products derived from this software # without specific prior written permission. -# +# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -71,14 +71,14 @@ LIB_DIR = .\ !ifdef DEBUG OPT = $(DEBUG_OPT) -DCFLAGS = /DDEBUG /Z7 +DCFLAGS = /DDEBUG DAFLAGS = -gcv8 -DLFLAGS = /DEBUG +DLFLAGS = /DEBUG /INCREMENTAL:NO !else OPT = /O2 /Oi DCFLAGS = DAFLAGS = -DLFLAGS = /RELEASE +DLFLAGS = /RELEASE /DEBUG /OPT:REF /OPT:ICF /INCREMENTAL:NO !endif !if "$(SAFE_DATA)" != "n" @@ -98,7 +98,7 @@ DAFLAGS = $(DAFLAGS) -DSAFE_LOOKUP CC = cl CFLAGS_ALL = $(EXTRA_CFLAGS) /DNO_COMPAT_IMB_API_053 /I. /Iinclude /Ino-aesni \ - /nologo /Y- /W3 /WX- /Gm- /fp:precise /EHsc + /nologo /Y- /W3 /WX- /Gm- /fp:precise /EHsc /Z7 CFLAGS = $(CFLAGS_ALL) $(OPT) $(DCFLAGS) CFLAGS_NO_SIMD = $(CFLAGS_ALL) /Od $(DCFLAGS) @@ -633,6 +633,7 @@ install: -copy /Y /V /B $(LIBBASE).lib "$(INSTDIR)" -copy /Y /V /A intel-ipsec-mb.h "$(INSTDIR)" !if "$(SHARED)" == "y" + -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).pdb "$(INSTDIR)" -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).dll "$(INSTDIR)" -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).dll "%windir%\system32" !endif @@ -641,6 +642,7 @@ uninstall: !if "$(SHARED)" == "y" -del /Q "%windir%\system32\$(LIBBASE).dll" -del /Q "$(INSTDIR)\$(LIBBASE).dll" + -del /Q "$(INSTDIR)\$(LIBBASE).pdb" !endif -del /Q "$(INSTDIR)\$(LIBBASE).def" -del /Q "$(INSTDIR)\$(LIBBASE).exp" ================================================ FILE: ports/intel-ipsec/intel-ipsec-targets-implib.cmake.in ================================================ set_property(TARGET IPSEC::ipsec APPEND PROPERTY IMPORTED_CONFIGURATIONS @INTEL_IPSEC_CONFIGURATION@) set_target_properties(IPSEC::ipsec PROPERTIES IMPORTED_LOCATION_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_LOCATION@" IMPORTED_IMPLIB_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_IMPLIB@" ) ================================================ FILE: ports/intel-ipsec/intel-ipsec-targets.cmake.in ================================================ set_property(TARGET IPSEC::ipsec APPEND PROPERTY IMPORTED_CONFIGURATIONS @INTEL_IPSEC_CONFIGURATION@) set_target_properties(IPSEC::ipsec PROPERTIES IMPORTED_LOCATION_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_LOCATION@" ) ================================================ FILE: ports/intel-ipsec/intel-ipsecConfig.cmake.in ================================================ if(TARGET IPSEC::ipsec) return() endif() get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) # intel-ipsec get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) # share get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) # package root add_library(IPSEC::ipsec @INTEL_IPSEC_STATIC_OR_SHARED@ IMPORTED) set_target_properties(IPSEC::ipsec PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include") set(IPSEC_ipsec_FOUND 1) get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) file(GLOB CONFIG_FILES "${_DIR}/intel-ipsec-targets-*.cmake") foreach(f ${CONFIG_FILES}) include(${f}) endforeach() ================================================ FILE: ports/intel-ipsec/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/intel-ipsec-mb REF bde82c8737edc04d80549f0a68225ede7e5cefd #v1.1 SHA512 f41dcde88b062e8ec2327987c6d36cd4f74a5e4fea386cc1ef8364f1dc432a2db02ca7d3312c0471b443cf93e815af6d74a4819c249afd6777aa91693b2546e5 HEAD_REF master PATCHES always-generate-pdb.patch # https://github.com/intel/intel-ipsec-mb/pull/93 ) vcpkg_find_acquire_program(NASM) get_filename_component(NASM_DIR "${NASM}" DIRECTORY) vcpkg_add_to_path(PREPEND "${NASM_DIR}") vcpkg_list(SET MAKE_OPTIONS) set(INTEL_IPSEC_STATIC_OR_SHARED SHARED) if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") vcpkg_list(APPEND MAKE_OPTIONS SHARED=n) set(INTEL_IPSEC_STATIC_OR_SHARED STATIC) endif() set(DEBUG_LIB "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib") set(RELEASE_LIB "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib") if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH lib PROJECT_NAME win_x64.mak OPTIONS ${MAKE_OPTIONS} OPTIONS_DEBUG DEBUG=y ) if(NOT "${VCPKG_BUILD_TYPE}" STREQUAL "release") file(INSTALL "${DEBUG_LIB}/libIPSec_MB.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(INTEL_IPSEC_CONFIGURATION "DEBUG") if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") set(INTEL_IPSEC_LOCATION "debug/lib/libIPSec_MB.lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) else() file(INSTALL "${DEBUG_LIB}/libIPSec_MB.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${DEBUG_LIB}/libIPSec_MB.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${DEBUG_LIB}/libIPSec_MB.exp" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(INTEL_IPSEC_LOCATION "debug/bin/libIPSec_MB.dll") set(INTEL_IPSEC_IMPLIB "debug/lib/libIPSec_MB.lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets-implib.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) endif() endif() file(INSTALL "${RELEASE_LIB}/libIPSec_MB.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") set(INTEL_IPSEC_CONFIGURATION "RELEASE") if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") set(INTEL_IPSEC_LOCATION "lib/libIPSec_MB.lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) else() file(INSTALL "${RELEASE_LIB}/libIPSec_MB.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${RELEASE_LIB}/libIPSec_MB.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${RELEASE_LIB}/libIPSec_MB.exp" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") set(INTEL_IPSEC_LOCATION "bin/libIPSec_MB.dll") set(INTEL_IPSEC_IMPLIB "lib/libIPSec_MB.lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets-implib.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) endif() else() if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") set(LIB_SUFFIX ".a") else() set(LIB_SUFFIX ".so") endif() find_program(MAKE make REQUIRED) if(NOT "${VCPKG_BUILD_TYPE}" STREQUAL "release") message(STATUS "Building ${TARGET_TRIPLET}-dbg") set(INTEL_IPSEC_CONFIGURATION "DEBUG") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_execute_build_process( COMMAND "${MAKE}" "-j${VCPKG_CONCURRENCY}" ${MAKE_OPTIONS} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib" LOGNAME "build-${TARGET_TRIPLET}-dbg" ) file(INSTALL "${DEBUG_LIB}/libIPSec_MB${LIB_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") set(INTEL_IPSEC_LOCATION "debug/lib/libIPSec_MB${LIB_SUFFIX}") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) endif() message(STATUS "Building ${TARGET_TRIPLET}-rel") set(INTEL_IPSEC_CONFIGURATION "RELEASE") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") vcpkg_execute_build_process( COMMAND "${MAKE}" -j ${MAKE_OPTIONS} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib" LOGNAME "build-${TARGET_TRIPLET}-rel" ) file(INSTALL "${RELEASE_LIB}/libIPSec_MB${LIB_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") set(INTEL_IPSEC_LOCATION "lib/libIPSec_MB${LIB_SUFFIX}") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) endif() file(INSTALL "${SOURCE_PATH}/lib/intel-ipsec-mb.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsecConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsecConfig.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/intel-ipsec/usage ================================================ The package intel-ipsec is compatible with built-in CMake targets: FIND_PACKAGE(intel-ipsec CONFIG REQUIRED) TARGET_LINK_LIBRARIES(main PRIVATE IPSEC::ipsec) ================================================ FILE: ports/intel-ipsec/vcpkg.json ================================================ { "name": "intel-ipsec", "version": "1.1", "description": "Intel(R) Multi-Buffer Crypto for IPsec Library", "supports": "x64 & (windows | linux) & !uwp" } ================================================ FILE: ports/intel-mkl/copy-from-dmg.cmake ================================================ find_program(HDIUTIL NAMES hdiutil REQUIRED) set(dmg_path "NOTFOUND" CACHE FILEPATH "Where to find the DMG") set(output_dir "output_dir" CACHE FILEPATH "Where to put the packages") if(NOT EXISTS "${dmg_path}") message(FATAL_ERROR "'dmg_path' (${dmg_path}) does not exist.") endif() if(NOT IS_DIRECTORY "${output_dir}") message(FATAL_ERROR "'output_dir' (${output_dir}) is not a directory.") endif() execute_process( COMMAND mktemp -d RESULT_VARIABLE mktemp_result OUTPUT_VARIABLE mount_point OUTPUT_STRIP_TRAILING_WHITESPACE ) if(NOT mktemp_result STREQUAL "0") message(FATAL_ERROR "mktemp -d failed: ${mktemp_result}") elseif(NOT IS_DIRECTORY "${mount_point}") message(FATAL_ERROR "'mount_point' (${mount_point}) is not a directory.") endif() execute_process( COMMAND "${HDIUTIL}" attach "${dmg_path}" -mountpoint "${mount_point}" -readonly RESULT_VARIABLE mount_result ) if(mount_result STREQUAL "0") set(dmg_packages_dir "${mount_point}/bootstrapper.app/Contents/Resources/packages") file(GLOB packages "${dmg_packages_dir}/intel.oneapi.mac.mkl.devel,*" "${dmg_packages_dir}/intel.oneapi.mac.mkl.runtime,*" "${dmg_packages_dir}/intel.oneapi.mac.mkl.product,*" "${dmg_packages_dir}/intel.oneapi.mac.openmp,*" ) # Using execute_process to avoid direct errors execute_process( COMMAND cp -R ${packages} "${output_dir}/" RESULT_VARIABLE copy_result ) endif() execute_process( COMMAND "${HDIUTIL}" detach "${mount_point}" RESULT_VARIABLE unmount_result ) if(NOT mount_result STREQUAL "0") message(FATAL_ERROR "Mounting ${dmg_path} failed: ${mount_result}") elseif(NOT copy_result STREQUAL "0") message(FATAL_ERROR "Coyping packages failed: ${copy_result}") elseif(NOT unmount_result STREQUAL "0") message(FATAL_ERROR "Unounting ${dmg_path} failed: ${unmount_result}") endif() ================================================ FILE: ports/intel-mkl/portfile.cmake ================================================ # This package installs Intel MKL on Linux, macOS and Windows for x64. # Configuration: # - ilp64 # - dynamic CRT: intel_thread, static CRT: sequential set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # https://registrationcenter-download.intel.com/akdlm/IRC_NAS/307bccae-8631-4712-8999-02a8abf51994/intel-onemkl-2025.2.0.630_offline.exe # windows # https://registrationcenter-download.intel.com/akdlm/IRC_NAS/47c7d946-fca1-441a-b0df-b094e3f045ea/intel-onemkl-2025.2.0.629_offline.sh # linux set(sha "") set(mkl_version 2025.2.0) set(mkl_short_version 2025.2) if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") # nop elseif(VCPKG_TARGET_IS_WINDOWS) set(filename intel-onemkl-2025.2.0.630_offline.exe) set(magic_number 307bccae-8631-4712-8999-02a8abf51994) set(sha 13d6c1ab943d2a3a16ee29be995215ef14eb469215c24633d9fdff1f0e1b3e78225ed92780b9a20d90812160da5a4969e16f0e9df36df45389c4fab4b5ecac3d) set(package_infix "win") set(package_libdir "lib") set(runtime_dir "bin") elseif(VCPKG_TARGET_IS_LINUX) set(filename intel-onemkl-2025.2.0.629_offline.sh) set(magic_number 47c7d946-fca1-441a-b0df-b094e3f045ea) set(sha 60e0b86b2e63da1becb527db0d912d19e2a664671e1e6cf54ac6fad35ced3bb791e490d4b7d1a555231a0b553a32652d1c6c41869222c88f30e17fee5c436cd3) set(package_infix "lin") set(package_libdir "lib") set(runtime_dir "lib") endif() if(NOT sha) message(WARNING "${PORT} is empty for ${TARGET_TRIPLET}.") return() endif() vcpkg_download_distfile(installer_path URLS "https://registrationcenter-download.intel.com/akdlm/IRC_NAS/${magic_number}/${filename}" FILENAME "${filename}" SHA512 "${sha}" ) # Note: intel_thread and lp64 are the defaults. set(interface "ilp64") # or ilp64; ilp == 64 bit int api #https://www.intel.com/content/www/us/en/develop/documentation/onemkl-linux-developer-guide/top/linking-your-application-with-onemkl/linking-in-detail/linking-with-interface-libraries/using-the-ilp64-interface-vs-lp64-interface.html if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(threading "intel_thread") #sequential or intel_thread or tbb_thread or pgi_thread else() set(threading "sequential") endif() if(threading STREQUAL "intel_thread") set(short_thread "iomp") else() string(SUBSTRING "${threading}" "0" "3" short_thread) endif() set(main_pc_file "mkl-${VCPKG_LIBRARY_LINKAGE}-${interface}-${short_thread}.pc") # First extraction level: packages (from offline installer) set(extract_0_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-extract") file(REMOVE_RECURSE "${extract_0_dir}") file(MAKE_DIRECTORY "${extract_0_dir}") # Second extraction level: actual files (from packages) set(extract_1_dir "${CURRENT_PACKAGES_DIR}/intel-extract") file(REMOVE_RECURSE "${extract_1_dir}") file(MAKE_DIRECTORY "${extract_1_dir}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") message(STATUS "Warning: This port is still a work on progress. E.g. it is not correctly filtering the libraries in accordance with VCPKG_LIBRARY_LINKAGE. It is using the default threading (Intel OpenMP) which is known to segfault when used together with GNU OpenMP. ") message(STATUS "Extracting offline installer") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(7Z) vcpkg_execute_required_process( COMMAND "${7Z}" x "${installer_path}" "-o${extract_0_dir}" "-y" "-bso0" "-bsp0" WORKING_DIRECTORY "${extract_0_dir}" LOGNAME "extract-${TARGET_TRIPLET}-0" ) endif() if(VCPKG_TARGET_IS_LINUX) vcpkg_execute_required_process( COMMAND "bash" "--verbose" "--noprofile" "${installer_path}" "--extract-only" "--extract-folder" "${extract_0_dir}" WORKING_DIRECTORY "${extract_0_dir}" LOGNAME "extract-${TARGET_TRIPLET}-0" ) cmake_path(GET filename STEM LAST_ONLY filename_no_ext) file(RENAME "${extract_0_dir}/${filename_no_ext}/packages" "${extract_0_dir}/packages") endif() file(GLOB package_path "${extract_0_dir}/packages/intel.oneapi.${package_infix}.mkl.runtime,v=${mkl_version}+*") cmake_path(GET package_path STEM LAST_ONLY packstem) message(STATUS "Extracting ${packstem}") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" "-E" "tar" "-xf" "${package_path}/cupPayload.cup" "_installdir/mkl/${mkl_short_version}/${runtime_dir}" "_installdir/mkl/${mkl_short_version}/share/doc/mkl/licensing/" WORKING_DIRECTORY "${extract_1_dir}" LOGNAME "extract-${TARGET_TRIPLET}-${packstem}" ) file(RENAME "${extract_1_dir}/_installdir/mkl/${mkl_short_version}/share/doc/mkl/licensing/" "${extract_1_dir}/_installdir/mkl/${mkl_short_version}/licensing/") file(GLOB package_path "${extract_0_dir}/packages/intel.oneapi.${package_infix}.mkl.devel,v=${mkl_version}+*") cmake_path(GET package_path STEM LAST_ONLY packstem) message(STATUS "Extracting ${packstem}") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" "-E" "tar" "-xf" "${package_path}/cupPayload.cup" "_installdir/mkl/${mkl_short_version}/bin" "_installdir/mkl/${mkl_short_version}/include" "_installdir/mkl/${mkl_short_version}/lib" WORKING_DIRECTORY "${extract_1_dir}" LOGNAME "extract-${TARGET_TRIPLET}-${packstem}" ) file(GLOB package_path "${extract_0_dir}/packages/intel.oneapi.${package_infix}.openmp,v=${mkl_version}+*") cmake_path(GET package_path STEM LAST_ONLY packstem) message(STATUS "Extracting ${packstem}") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" "-E" "tar" "-xf" "${package_path}/cupPayload.cup" "_installdir/compiler/${mkl_short_version}" WORKING_DIRECTORY "${extract_1_dir}" LOGNAME "extract-${TARGET_TRIPLET}-${packstem}" ) set(mkl_dir "${extract_1_dir}/_installdir/mkl/${mkl_short_version}") file(COPY "${mkl_dir}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${mkl_dir}/${package_libdir}/" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${mkl_dir}/${runtime_dir}/" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/") endif() file(COPY_FILE "${mkl_dir}/lib/pkgconfig/${main_pc_file}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${main_pc_file}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${main_pc_file}" "\${exec_prefix}/${package_libdir}" "\${exec_prefix}/lib/" IGNORE_UNCHANGED) set(compiler_dir "${extract_1_dir}/_installdir/compiler/${mkl_short_version}") if(threading STREQUAL "intel_thread") file(COPY "${compiler_dir}/lib/" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${compiler_dir}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/") endif() file(COPY_FILE "${compiler_dir}/lib/pkgconfig/openmp.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libiomp5.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${main_pc_file}" "openmp" "libiomp5") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(to_remove_suffix .a) else() if(VCPKG_TARGET_IS_WINDOWS) set(to_remove_suffix .dll) else() set(to_remove_suffix .so) endif() endif() file(GLOB_RECURSE files_to_remove "${CURRENT_PACKAGES_DIR}/bin/*${to_remove_suffix}" "${CURRENT_PACKAGES_DIR}/lib/*${to_remove_suffix}" "${CURRENT_PACKAGES_DIR}/lib/*${to_remove_suffix}.?" ) file(REMOVE ${files_to_remove}) file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${main_pc_file}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/mkl.pc") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(GLOB pc_files RELATIVE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") foreach(file IN LISTS pc_files) file(COPY_FILE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${file}" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${file}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${file}" "/include" "/../include") if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${file}" "/lib/" "/../lib/" IGNORE_UNCHANGED) endif() endforeach() endif() file(COPY "${mkl_dir}/lib/cmake/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mkl/MKLConfig.cmake" "MKL_CMAKE_PATH}/../../../" "MKL_CMAKE_PATH}/../../") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mkl/MKLConfig.cmake" "redist/\${MKL_ARCH}" "bin") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mkl/MKLConfig.cmake" "set(DEFAULT_MKL_LINK dynamic)" "set(DEFAULT_MKL_LINK static)") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mkl/MKLConfig.cmake" "set(LIB_EXT \".so\")" "set(LIB_EXT \".a\")") endif() #TODO: Hardcode settings from portfile in config.cmake #TODO: Give lapack/blas information about the correct BLA_VENDOR depending on settings. file(INSTALL "${mkl_dir}/licensing" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(GLOB package_path "${extract_0_dir}/packages/intel.oneapi.${package_infix}.mkl.product,v=${mkl_version}+*") vcpkg_install_copyright(FILE_LIST "${package_path}/licenses/license.htm") file(REMOVE_RECURSE "${extract_0_dir}" "${extract_1_dir}" "${CURRENT_PACKAGES_DIR}/bin/compiler" "${CURRENT_PACKAGES_DIR}/lib/cmake" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/intel-mkl/usage ================================================ intel-mkl provides CMake targets: find_package(MKL CONFIG REQUIRED) target_link_libraries(main PRIVATE MKL::MKL) ================================================ FILE: ports/intel-mkl/vcpkg.json ================================================ { "name": "intel-mkl", "version": "2025.2.0", "port-version": 1, "description": "Intel® Math Kernel Library (Intel® MKL) accelerates math processing routines, increases application performance, and reduces development time on Intel® processors.", "homepage": "https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html", "license": null, "supports": "(windows | linux) & x64" } ================================================ FILE: ports/intelrdfpmathlib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(intelrdfpmathlib C) set( intelrdfpmathlib_SOURCES float128/dpml_exception.c float128/dpml_four_over_pi.c float128/dpml_ux_bessel.c float128/dpml_ux_bid.c float128/dpml_ux_cbrt.c float128/dpml_ux_erf.c float128/dpml_ux_exp.c float128/dpml_ux_int.c float128/dpml_ux_inv_hyper.c float128/dpml_ux_inv_trig.c float128/dpml_ux_lgamma.c float128/dpml_ux_log.c float128/dpml_ux_mod.c float128/dpml_ux_ops.c float128/dpml_ux_ops_64.c float128/dpml_ux_pow.c float128/dpml_ux_powi.c float128/dpml_ux_sqrt.c float128/dpml_ux_trig.c float128/sqrt_tab_t.c src/bid128.c src/bid128_2_str_tables.c src/bid128_acos.c src/bid128_acosh.c src/bid128_add.c src/bid128_asin.c src/bid128_asinh.c src/bid128_atan.c src/bid128_atan2.c src/bid128_atanh.c src/bid128_cbrt.c src/bid128_compare.c src/bid128_cos.c src/bid128_cosh.c src/bid128_div.c src/bid128_erf.c src/bid128_erfc.c src/bid128_exp.c src/bid128_exp10.c src/bid128_exp2.c src/bid128_expm1.c src/bid128_fdimd.c src/bid128_fma.c src/bid128_fmod.c src/bid128_frexp.c src/bid128_hypot.c src/bid128_ldexp.c src/bid128_lgamma.c src/bid128_llrintd.c src/bid128_log.c src/bid128_log10.c src/bid128_log1p.c src/bid128_log2.c src/bid128_logb.c src/bid128_logbd.c src/bid128_lrintd.c src/bid128_lround.c src/bid128_minmax.c src/bid128_modf.c src/bid128_mul.c src/bid128_nearbyintd.c src/bid128_next.c src/bid128_nexttowardd.c src/bid128_noncomp.c src/bid128_pow.c src/bid128_quantexpd.c src/bid128_quantize.c src/bid128_rem.c src/bid128_round_integral.c src/bid128_scalb.c src/bid128_scalbl.c src/bid128_sin.c src/bid128_sinh.c src/bid128_sqrt.c src/bid128_string.c src/bid128_tan.c src/bid128_tanh.c src/bid128_tgamma.c src/bid128_to_int16.c src/bid128_to_int32.c src/bid128_to_int64.c src/bid128_to_int8.c src/bid128_to_uint16.c src/bid128_to_uint32.c src/bid128_to_uint64.c src/bid128_to_uint8.c src/bid32_acos.c src/bid32_acosh.c src/bid32_add.c src/bid32_asin.c src/bid32_asinh.c src/bid32_atan.c src/bid32_atan2.c src/bid32_atanh.c src/bid32_cbrt.c src/bid32_compare.c src/bid32_cos.c src/bid32_cosh.c src/bid32_div.c src/bid32_erf.c src/bid32_erfc.c src/bid32_exp.c src/bid32_exp10.c src/bid32_exp2.c src/bid32_expm1.c src/bid32_fdimd.c src/bid32_fma.c src/bid32_fmod.c src/bid32_frexp.c src/bid32_hypot.c src/bid32_ldexp.c src/bid32_lgamma.c src/bid32_llrintd.c src/bid32_log.c src/bid32_log10.c src/bid32_log1p.c src/bid32_log2.c src/bid32_logb.c src/bid32_logbd.c src/bid32_lrintd.c src/bid32_lround.c src/bid32_minmax.c src/bid32_modf.c src/bid32_mul.c src/bid32_nearbyintd.c src/bid32_next.c src/bid32_nexttowardd.c src/bid32_noncomp.c src/bid32_pow.c src/bid32_quantexpd.c src/bid32_quantize.c src/bid32_rem.c src/bid32_round_integral.c src/bid32_scalb.c src/bid32_scalbl.c src/bid32_sin.c src/bid32_sinh.c src/bid32_sqrt.c src/bid32_string.c src/bid32_sub.c src/bid32_tan.c src/bid32_tanh.c src/bid32_tgamma.c src/bid32_to_bid128.c src/bid32_to_bid64.c src/bid32_to_int16.c src/bid32_to_int32.c src/bid32_to_int64.c src/bid32_to_int8.c src/bid32_to_uint16.c src/bid32_to_uint32.c src/bid32_to_uint64.c src/bid32_to_uint8.c src/bid64_acos.c src/bid64_acosh.c src/bid64_add.c src/bid64_asin.c src/bid64_asinh.c src/bid64_atan.c src/bid64_atan2.c src/bid64_atanh.c src/bid64_cbrt.c src/bid64_compare.c src/bid64_cos.c src/bid64_cosh.c src/bid64_div.c src/bid64_erf.c src/bid64_erfc.c src/bid64_exp.c src/bid64_exp10.c src/bid64_exp2.c src/bid64_expm1.c src/bid64_fdimd.c src/bid64_fma.c src/bid64_fmod.c src/bid64_frexp.c src/bid64_hypot.c src/bid64_ldexp.c src/bid64_lgamma.c src/bid64_llrintd.c src/bid64_log.c src/bid64_log10.c src/bid64_log1p.c src/bid64_log2.c src/bid64_logb.c src/bid64_logbd.c src/bid64_lrintd.c src/bid64_lround.c src/bid64_minmax.c src/bid64_modf.c src/bid64_mul.c src/bid64_nearbyintd.c src/bid64_next.c src/bid64_nexttowardd.c src/bid64_noncomp.c src/bid64_pow.c src/bid64_quantexpd.c src/bid64_quantize.c src/bid64_rem.c src/bid64_round_integral.c src/bid64_scalb.c src/bid64_scalbl.c src/bid64_sin.c src/bid64_sinh.c src/bid64_sqrt.c src/bid64_string.c src/bid64_tan.c src/bid64_tanh.c src/bid64_tgamma.c src/bid64_to_bid128.c src/bid64_to_int16.c src/bid64_to_int32.c src/bid64_to_int64.c src/bid64_to_int8.c src/bid64_to_uint16.c src/bid64_to_uint32.c src/bid64_to_uint64.c src/bid64_to_uint8.c src/bid_binarydecimal.c src/bid_convert_data.c src/bid_decimal_data.c src/bid_decimal_globals.c src/bid_dpd.c src/bid_feclearexcept.c src/bid_fegetexceptflag.c src/bid_feraiseexcept.c src/bid_fesetexceptflag.c src/bid_fetestexcept.c src/bid_flag_operations.c src/bid_from_int.c src/bid_round.c src/strtod128.c src/strtod32.c src/strtod64.c src/wcstod128.c src/wcstod32.c src/wcstod64.c ) if(MSVC) add_compile_options(/W3 ) else() add_compile_options(-w) endif() if(WIN32) if(CMAKE_SIZEOF_VOID_P EQUAL 8) add_compile_options(-Defi2=1 -DEFI2=1) else() add_compile_options(-DIA32= -Dia32=1) endif() else() add_compile_options(-Defi2=1 -DEFI2=1) endif() add_library(intel_decimal128 ${intelrdfpmathlib_SOURCES}) set_target_properties(intel_decimal128 PROPERTIES EXPORT_NAME decimal128) target_include_directories( intel_decimal128 PUBLIC $ $ $ $ ) target_compile_definitions( intel_decimal128 PRIVATE -DDECIMAL_CALL_BY_REFERENCE=0 -DDECIMAL_GLOBAL_ROUNDING=0 -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=0 ) if(WIN32) target_compile_definitions(intel_decimal128 PRIVATE -DWINDOWS=1 -DWNT=1 -Dwinnt=1) elseif(APPLE) target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dmach=1) elseif(CMAKE_SYSTEM_NAME MATCHES "(FreeBSD|OpenBSD|NetBSD)") target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dfreebsd=1) else() target_compile_definitions(intel_decimal128 PRIVATE -DLINUX=1 -Dlinux=1) endif() install( TARGETS intel_decimal128 EXPORT unofficial-intelrdfpmathlib-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT unofficial-intelrdfpmathlib-config NAMESPACE unofficial::intelrdfpmathlib:: DESTINATION share/unofficial-intelrdfpmathlib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES src/dfp754.h src/bid_conf.h src/bid_functions.h DESTINATION include) endif() ================================================ FILE: ports/intelrdfpmathlib/fix-types.patch ================================================ diff --git a/LIBRARY/src/bid_functions.h b/LIBRARY/src/bid_functions.h index a2d0cd7..a92481d 100644 --- a/LIBRARY/src/bid_functions.h +++ b/LIBRARY/src/bid_functions.h @@ -36,13 +36,12 @@ #ifndef _BID_FUNCTIONS_H #define _BID_FUNCTIONS_H -#if !defined (__GNUC__) || defined(__QNX__) +#include #include -#endif #include // Fix system header issue on Sun solaris and define required type by ourselves -#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) +#if !defined(__cplusplus) && !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) typedef int wchar_t; #endif @@ -150,23 +149,6 @@ typedef BID_UINT128 _Quad; /////////////////////////////////////////////////////// // This section may move to fenv_support.h -#if !defined(__FENV_H_INCLUDED) && !defined (_FENV_H) && !defined(_FENV_INCLUDED) /* Otherwise we already defined fexcept_t type */ -#if defined(__ECL) || defined(__ECC) /* Intel(R) Itanium(R) architecture */ -/* Default 64-bit Floating Point Status Register */ -#if defined(__linux__) -typedef unsigned long fexcept_t; -#else -typedef unsigned bid__int64 fexcept_t; -#endif -#else -#ifdef __QNX__ -#include -#else -typedef unsigned short int fexcept_t; -#endif -#endif -#endif - #define DEC_FE_INVALID 0x01 #define DEC_FE_UNNORMAL 0x02 #define DEC_FE_DIVBYZERO 0x04 ================================================ FILE: ports/intelrdfpmathlib/missing-includes.patch ================================================ diff --git a/LIBRARY/src/bid_internal.h b/LIBRARY/src/bid_internal.h index cd08ea7..ea5d0a0 100755 --- a/LIBRARY/src/bid_internal.h +++ b/LIBRARY/src/bid_internal.h @@ -37,6 +37,7 @@ #include "bid_conf.h" #include "bid_functions.h" +#include #define __BID_INLINE__ static __inline diff --git a/LIBRARY/float128/dpml_exception.c b/LIBRARY/float128/dpml_exception.c index d061a4c..c647732 100755 --- a/LIBRARY/float128/dpml_exception.c +++ b/LIBRARY/float128/dpml_exception.c @@ -132,6 +132,7 @@ !defined(wnt) # include +#include # define DPML_SIGNAL(p) raise(SIGFPE) #else ================================================ FILE: ports/intelrdfpmathlib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://www.netlib.org/misc/intel/IntelRDFPMathLib20U2.tar.gz" FILENAME "IntelRDFPMathLib20U2.tar.gz" SHA512 4d445855f41b066b784f0c6b4e52f854df4129fa9d43569b1e1518f002b860f69796459c78de46a8ea24fb6e7aefe7f8bc1f253e78971a5ef202dab2a7b1b75a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES missing-includes.patch fix-types.patch ) set(LIB_SOURCE_PATH "${SOURCE_PATH}/LIBRARY") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${LIB_SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${LIB_SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME unofficial-intelrdfpmathlib ) # Handle copyright file(INSTALL "${SOURCE_PATH}/eula.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/intelrdfpmathlib/vcpkg.json ================================================ { "name": "intelrdfpmathlib", "version-string": "20U2", "port-version": 7, "description": "Intel(R) Decimal Floating-Point Math Library", "supports": "!(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/intrusive-shared-ptr/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gershnik/intrusive_shared_ptr REF "v${VERSION}" SHA512 4977aeb12ee2ad79f7dbd240c7383d11e0dbd2821682705c351c8a1b55b17afa6eb99aa0618df494a3dd717b5b6e55b6d8dc555e3011c563369500382091ec93 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/isptr PACKAGE_NAME isptr) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") ================================================ FILE: ports/intrusive-shared-ptr/usage ================================================ intrusive-shared-ptr provides CMake targets: find_package(isptr CONFIG REQUIRED) target_link_libraries(main PRIVATE isptr::isptr) ================================================ FILE: ports/intrusive-shared-ptr/vcpkg.json ================================================ { "name": "intrusive-shared-ptr", "version": "1.9", "description": "Intrusive reference counting smart pointer, highly configurable reference counted base class and various adapters. Also known as libisptr.", "homepage": "https://github.com/gershnik/intrusive_shared_ptr", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/intx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chfast/intx REF "v${VERSION}" SHA512 8d3ab7f8492bc409f075118ed2a85b2efffe1ab9eaf36d93c5532f30d5e80b6eadbd3d5f5dd1e8dc5760f45b0236c633afdc492ad125ffdf9dcdea1ba9c382d9 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINTX_INSTALL=ON -DINTX_TESTING=OFF -DINTX_BENCHMARKING=OFF -DINtX_FUZZING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME intx CONFIG_PATH lib/cmake/intx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/intx/vcpkg.json ================================================ { "name": "intx", "version": "0.15.0", "description": "Extended precision integer C++ library ", "homepage": "https://github.com/chfast/intx", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/iowa-hills-dsp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hayguen/iowahills_dsp REF "v${VERSION}" SHA512 095fecb1a4bf074a3e11da7e6edaba4d375c5603bed5f2578b52f900dbd20ac59f2414a8f9432eba1742807fe8553cc1edd63606fc38400cdda77bf32ee49eb1 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/iowa-hills-dsp/vcpkg.json ================================================ { "name": "iowa-hills-dsp", "version": "0.1.0", "description": "A platform-independent C/C++ library with many DSP (digital signal processing) functions, amongst also FIR and IIR filter design - but also FFT, DFT, Goertzel and Windowing functions.", "homepage": "https://github.com/hayguen/iowahills_dsp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/irrlicht/CMakeLists.txt ================================================ # # Irrlicht 3D engine # cmake_minimum_required(VERSION 3.16) project(Irrlicht LANGUAGES C CXX) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Irrlicht directories # ------------------------------------------------------------------------------------------------- set(IRR_SRC_DIR "source/Irrlicht") set(IRR_INC_DIR "include") set(IRR_TOOL_DIR "tools") # Options # ------------------------------------------------------------------------------------------------- set(DXSDK "") if(DEFINED ENV{DXSDK_DIR}) set(DXSDK "$ENV{DXSDK_DIR}") endif() set(IRR_UNICODE_PATH 0 CACHE BOOL "Whether to enable unicode path support on windows") set(IRR_FAST_MATH 0 CACHE BOOL "Whether to enable fast maths (at the expense of precision)") set(IRR_SHARED_LIB 1 CACHE BOOL "Whether to generate shared libraries instead of static libraries") set(IRR_DIRECTX_SDK ${DXSDK} CACHE PATH "Path to the DirectX SDK (for DirectX 9, this folder should contain /Include, /Lib)") set(IRR_BUILD_TOOLS 0 CACHE BOOL "Whether to generate the tools") # Some helper functions # ------------------------------------------------------------------------------------------------- function(glob_c_cpp_sources result folder) file(GLOB res "${folder}/*.c" "${folder}/*.cpp" "${folder}/*.h" "${folder}/*.hpp" "${folder}/*.rc") set(${result} ${res} PARENT_SCOPE) endfunction() # Source files # ------------------------------------------------------------------------------------------------- glob_c_cpp_sources(IRR_SRC_FILES ${IRR_SRC_DIR}) glob_c_cpp_sources(IRR_SRC_FILES_INTERFACE ${IRR_INC_DIR}) glob_c_cpp_sources(IRR_SRC_FILES_AESGLADMAN ${IRR_SRC_DIR}/aesGladman) glob_c_cpp_sources(IRR_SRC_FILES_LZMA ${IRR_SRC_DIR}/lzma) glob_c_cpp_sources(IRR_TOOL_FILES_FILE_TO_HEADER ${IRR_TOOL_DIR}/FileToHeader/) glob_c_cpp_sources(IRR_TOOL_FILES_GUI_EDITOR ${IRR_TOOL_DIR}/GUIEditor/) glob_c_cpp_sources(IRR_TOOL_FILES_FONT_TOOL ${IRR_TOOL_DIR}/IrrFontTool/newFontTool/) glob_c_cpp_sources(IRR_TOOL_FILES_MESH_CONVERTER ${IRR_TOOL_DIR}/MeshConverter/) if(APPLE) file(GLOB IRR_SRC_FILES_OSX "${IRR_SRC_DIR}/MacOSX/*.mm" "${IRR_SRC_DIR}/MacOSX/*.h") set(IRR_SRC_FILES ${IRR_SRC_FILES} ${IRR_SRC_FILES_OSX}) endif() # Group files # ------------------------------------------------------------------------------------------------- source_group(Irrlicht\\engine FILES ${IRR_SRC_FILES}) source_group(Irrlicht\\interface FILES ${IRR_SRC_FILES_INTERFACE}) source_group(Irrlicht\\libs\\aesGladman FILES ${IRR_SRC_FILES_AESGLADMAN}) source_group(Irrlicht\\libs\\lzma FILES ${IRR_SRC_FILES_LZMA}) # Library files # ------------------------------------------------------------------------------------------------- find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) #find_package(LIBLZMA REQUIRED) # LIBLZMA does not export _LzmaDecode # Irrlicht target # ------------------------------------------------------------------------------------------------- set(IRR_ALL_SRC_FILES ${IRR_SRC_FILES} ${IRR_SRC_FILES_INTERFACE} ${IRR_SRC_FILES_AESGLADMAN} ${IRR_SRC_FILES_LZMA} ) if(${IRR_SHARED_LIB}) add_library(Irrlicht SHARED ${IRR_ALL_SRC_FILES}) else() add_library(Irrlicht STATIC ${IRR_ALL_SRC_FILES}) endif() if(APPLE) target_include_directories(Irrlicht PRIVATE ${IRR_SRC_DIR}/MacOSX) target_compile_definitions(Irrlicht PRIVATE SYSTEM=MacOSX) target_link_libraries(Irrlicht ${OSX_LIBRARIES}) target_compile_options(Irrlicht PRIVATE "-ObjC++") set(ADDITIONAL_LIRARIES "-framework OpenGL" "-framework IOKit" "-framework Carbon" "-framework AppKit" "-framework Cocoa") endif() target_link_libraries(Irrlicht PRIVATE ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARY} ${BZIP2_LIBRARY} ${ADDITIONAL_LIRARIES} ) if(IRR_BUILD_TOOLS) add_executable(FileToHeader ${IRR_TOOL_FILES_FILE_TO_HEADER}) add_executable(GUIEditor ${IRR_TOOL_FILES_GUI_EDITOR}) target_link_libraries(GUIEditor Irrlicht) add_executable(FontTool ${IRR_TOOL_FILES_FONT_TOOL}) target_link_libraries(FontTool Irrlicht) add_executable(MeshConverter ${IRR_TOOL_FILES_MESH_CONVERTER}) target_link_libraries(MeshConverter Irrlicht) endif() # Target properties (for compilation & export) # ------------------------------------------------------------------------------------------------- target_include_directories(Irrlicht PRIVATE ${IRR_SRC_DIR} PRIVATE ${IRR_SRC_DIR}/aesGladman PRIVATE ${BZIP2_INCLUDE_DIR} PRIVATE ${JPEG_INCLUDE_DIR} PRIVATE ${LIBPNG_INCLUDE_DIR} PRIVATE ${IRR_SRC_DIR}/lzma PRIVATE ${ZLIB_INCLUDE_DIR} ) # I dont realy understand why this is necesary or what it is doing, # but it is necesarry to build and export a package. # See: https://cmake.org/cmake/help/v3.8/command/target_include_directories.html target_include_directories(Irrlicht PUBLIC $ $ # /include/irrlicht ) if(NOT ${IRR_DIRECTX_SDK} STREQUAL "") target_include_directories(Irrlicht PRIVATE ${IRR_DIRECTX_SDK}/Include) if(${CMAKE_SIZEOF_VOID_P} EQUAL 4) set(DX_LIBS ${IRR_DIRECTX_SDK}/Lib/x86) else() set(DX_LIBS ${IRR_DIRECTX_SDK}/Lib/x64) endif() target_link_libraries(Irrlicht PRIVATE ${DX_LIBS}/d3dx9.lib PRIVATE ${DX_LIBS}/dinput8.lib PRIVATE ${DX_LIBS}/dxguid.lib) else() target_compile_definitions(Irrlicht PRIVATE NO_IRR_COMPILE_WITH_DIRECT3D_9_) endif() if(NOT ${IRR_SHARED_LIB}) target_compile_definitions(Irrlicht PUBLIC _IRR_STATIC_LIB_) endif() # Disable Irrlicht building already provided dependencies target_compile_definitions(Irrlicht PRIVATE NO_IRR_USE_NON_SYSTEM_ZLIB_ PRIVATE NO_IRR_USE_NON_SYSTEM_LIB_PNG_ PRIVATE NO_IRR_USE_NON_SYSTEM_BZLIB_ PRIVATE NO_IRR_USE_NON_SYSTEM_JPEG_LIB_ ) # Per platform config # ------------------------------------------------------------------------------------------------- # Export symbols target_compile_definitions(Irrlicht PRIVATE IRRLICHT_EXPORTS) if(WIN32) # Import the symbols of bzip2 target_compile_definitions(Irrlicht PRIVATE BZ_IMPORT) # Disable the ton of warnings from standard library target_compile_definitions(Irrlicht PRIVATE _CRT_SECURE_NO_WARNINGS) # Multi processor compilation target_compile_options(Irrlicht PRIVATE /MP) # Unicode if(${IRR_UNICODE_PATH}) target_compile_definitions(Irrlicht PRIVATE UNICODE _UNICODE) target_compile_definitions(Irrlicht PUBLIC _IRR_WCHAR_FILESYSTEM) endif() # Fast math options if(${IRR_FAST_MATH}) target_compile_options(Irrlicht PRIVATE /fp:fast) message("Fast Math Enabled") # SSE2 is automatically activated on x64 if(${CMAKE_SIZEOF_VOID_P} EQUAL 4) target_compile_options(Irrlicht PRIVATE /arch:SSE2) endif() endif() elseif(UNIX) # Standard mode target_compile_options(Irrlicht PRIVATE -Wall PRIVATE -pipe PRIVATE -fno-exceptions PRIVATE -fno-strict-aliasing) # Disable RTTI on C++ files only (no sense for C files) set_source_files_properties(${IRR_SRC_FILES} ${IRR_SRC_FILES_AESGLADMAN} PROPERTIES COMPILE_FLAGS -fno-rtti) # Debug macro target_compile_options(Irrlicht PRIVATE $<$:-D_DEBUG>) # X11 and OpenGL if(NOT APPLE) target_link_libraries(Irrlicht PRIVATE X11 PRIVATE GL PRIVATE Xxf86vm) endif() endif() # Installation # ------------------------------------------------------------------------------------------------- install( TARGETS Irrlicht EXPORT Irrlicht RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES ${IRR_SRC_FILES_INTERFACE} DESTINATION "include/irrlicht" CONFIGURATIONS Release) if(IRR_BUILD_TOOLS) install( TARGETS FileToHeader GUIEditor FontTool MeshConverter RUNTIME DESTINATION tools/irrlicht/ CONFIGURATIONS Release ) endif() install(EXPORT Irrlicht FILE irrlicht-targets.cmake DESTINATION share/irrlicht) ================================================ FILE: ports/irrlicht/LICENSE.txt ================================================ The Irrlicht Engine License =========================== Copyright (C) 2002-2015 Nikolaus Gebhardt This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgement in the product documentation would be appreciated but is not required. 2. Altered source versions must be clearly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ================================================ FILE: ports/irrlicht/fix-encoding.patch ================================================ diff --git a/include/Keycodes.h b/include/Keycodes.h index e56eca1..57ab312 100644 --- a/include/Keycodes.h +++ b/include/Keycodes.h @@ -89,7 +89,7 @@ namespace irr KEY_KEY_X = 0x58, // X key KEY_KEY_Y = 0x59, // Y key KEY_KEY_Z = 0x5A, // Z key - KEY_LWIN = 0x5B, // Left Windows key (Microsoft Natural keyboard) + KEY_LWIN = 0x5B, // Left Windows key (Microsoft® Natural® keyboard) KEY_RWIN = 0x5C, // Right Windows key (Natural keyboard) KEY_APPS = 0x5D, // Applications key (Natural keyboard) KEY_SLEEP = 0x5F, // Computer Sleep key ================================================ FILE: ports/irrlicht/fix-osx-compilation-2.diff ================================================ diff --git a/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm b/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm index 60da342..6bf2e30 100644 --- a/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm +++ b/source/Irrlicht/MacOSX/CIrrDeviceMacOSX.mm @@ -642,7 +642,7 @@ long GetDictionaryLong(CFDictionaryRef theDict, const void* key) NSOpenGLPFASamples, (NSOpenGLPixelFormatAttribute)CreationParams.AntiAlias, NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)(CreationParams.Stencilbuffer?1:0), NSOpenGLPFADoubleBuffer, - (NSOpenGLPixelFormatAttribute)nil + (NSOpenGLPixelFormatAttribute)0 }; if (CreationParams.AntiAlias<2) @@ -668,7 +668,7 @@ long GetDictionaryLong(CFDictionaryRef theDict, const void* key) { // Third try without Doublebuffer os::Printer::log("No doublebuffering available.", ELL_WARNING); - windowattribs[14]=(NSOpenGLPixelFormatAttribute)nil; + windowattribs[14]=(NSOpenGLPixelFormatAttribute)0; } format = [[NSOpenGLPixelFormat alloc] initWithAttributes:windowattribs]; ================================================ FILE: ports/irrlicht/fix-osx-compilation.patch ================================================ diff --git a/source/Irrlicht/CImageLoaderJPG.cpp b/source/Irrlicht/CImageLoaderJPG.cpp index 404bd53..71684d8 100644 --- a/source/Irrlicht/CImageLoaderJPG.cpp +++ b/source/Irrlicht/CImageLoaderJPG.cpp @@ -68,7 +68,7 @@ void CImageLoaderJPG::init_source (j_decompress_ptr cinfo) boolean CImageLoaderJPG::fill_input_buffer (j_decompress_ptr cinfo) { // DO NOTHING - return 1; + return TRUE; } ================================================ FILE: ports/irrlicht/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO irrlicht/Irrlicht%20SDK REF 1.8/${VERSION} FILENAME "irrlicht-${VERSION}.zip" SHA512 d11c7a056bfb8c9737ed583c5bc5794223bc59fb4620411b63bc4d1eedc41db2ed1cab5cb7a37fee42a7f38c0e0645f5fc53fd329fff0f2aa78e0df6804c47c9 PATCHES fix-encoding.patch fix-osx-compilation.patch fix-osx-compilation-2.diff ) if(VCPKG_TARGET_IS_LINUX) message( "Irrlicht currently requires the following libraries from the system package manager: libgl1-mesa xf86vmode These can be installed on Ubuntu systems via sudo apt-get install libgl1-mesa-dev libxxf86vm-dev") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${SOURCE_PATH}/CMakeLists.txt" COPYONLY) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES unicode IRR_UNICODE_PATH fast-fpu IRR_FAST_MATH tools IRR_BUILD_TOOLS ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIRR_SHARED_LIB=${SHARED_LIB} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if("tools" IN_LIST FEATURES) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/irrlicht/") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/irrlicht/irrlicht-config.cmake" "include(\${CMAKE_CURRENT_LIST_DIR}/irrlicht-targets.cmake)") vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/irrlicht") endif() vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/LICENSE.txt") ================================================ FILE: ports/irrlicht/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) find_package(ZLIB REQUIRED) find_package(PNG REQUIRED) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) if(TARGET Irrlicht::Irrlicht) set_property(TARGET Irrlicht::Irrlicht APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB PNG::PNG JPEG::JPEG BZip2::BZip2) endif() if(IRRLICHT_LIBRARIES) list(APPEND IRRLICHT_LIBRARIES ${ZLIB_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${BZIP2_LIBRARIES}) endif() ================================================ FILE: ports/irrlicht/vcpkg.json ================================================ { "name": "irrlicht", "version": "1.8.5", "port-version": 2, "description": "The Irrlicht Engine is an open source realtime 3D engine written in C++. It is cross-platform, using D3D, OpenGL and its own software renderers.", "homepage": "http://irrlicht.sourceforge.net", "supports": "!(android | uwp)", "dependencies": [ "bzip2", "libjpeg-turbo", "libpng", "vcpkg-cmake", "vcpkg-cmake-config", "zlib" ], "features": { "fast-fpu": { "description": "Enable fast maths (at the expense of precision)" }, "tools": { "description": "Build the Tools FileToHeader, FontTool, GUIEditor and MeshConverter" }, "unicode": { "description": "Support unicode path on windows" } } } ================================================ FILE: ports/irsdkcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vrkit-platform/irsdk-cpp REF "v${VERSION}" SHA512 c702479259d77b3eeec85f5fbe177b040c598f2c0b3812139f4c95a1d3c292eff96cc84baa2c620bbfb2c507c61b4425f2cbeb4cb143235b8b25098ab816796a HEAD_REF develop ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" IRSDKCPP_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=23 -DIRSDKCPP_BUILD_TESTS=OFF -DIRSDKCPP_BUILD_DOCS=OFF -DIRSDKCPP_BUILD_EXAMPLES=OFF -DIRSDKCPP_BUILD_SHARED=${IRSDKCPP_BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/include/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/include") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/irsdkcpp/usage ================================================ irsdkcpp provides CMake targets: find_package(irsdkcpp CONFIG REQUIRED) target_link_libraries(main PRIVATE $,irsdkcpp::irsdkcpp_shared,irsdkcpp::irsdkcpp_static>) irsdkcpp provides pkg-config modules: irsdkcpp ================================================ FILE: ports/irsdkcpp/vcpkg.json ================================================ { "name": "irsdkcpp", "version": "1.0.9", "description": "iRacing Modern C++ SDK", "license": "MIT", "supports": "windows & !uwp & x64", "dependencies": [ { "name": "cppwinrt", "version>=": "2.0.240111.5" }, { "name": "fmt", "version>=": "10.1.1" }, { "name": "magic-enum", "version>=": "0.9.7" }, { "name": "ms-gsl", "version>=": "4.0.0#1" }, { "name": "nlohmann-json", "version>=": "3.11.3" }, { "name": "range-v3", "version>=": "0.12.0#1" }, { "name": "spdlog", "version>=": "1.13.0#1" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "yaml-cpp", "version>=": "0.8.0#1" } ] } ================================================ FILE: ports/isal/isalConfig.cmake ================================================ message(WARNING "'find_package(isal CONFIG)' is deprecated. Please use 'find_package(unofficial-isal CONFIG)' instead.") include(CMakeFindDependencyMacro) find_dependency(unofficial-isal) if(NOT TARGET unofficial::isal::isal) set(isal_FOUND FALSE) elseif(TARGET ISAL::isa-l OR TARGET ISAL::isal) # done elseif ("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") add_library(ISAL::isa-l INTERFACE IMPORTED) set_target_properties(ISAL::isa-l PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::isal::isal) else() add_library(ISAL::isal INTERFACE IMPORTED) set_target_properties(ISAL::isal PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::isal::isal) endif() ================================================ FILE: ports/isal/osx-asm-sysroot.patch ================================================ diff --git a/tools/nasm-filter.sh b/tools/nasm-filter.sh index 5ec9ba3..fcc4971 100755 --- a/tools/nasm-filter.sh +++ b/tools/nasm-filter.sh @@ -15,6 +15,11 @@ while [ -n "$*" ]; do shift shift ;; + -isysroot ) + # Unsupported options with arg + shift + shift + ;; --prefix* ) # Supported options without arg options="$options $1" diff --git a/tools/yasm-filter.sh b/tools/yasm-filter.sh index c33952a..b99bfc3 100755 --- a/tools/yasm-filter.sh +++ b/tools/yasm-filter.sh @@ -10,6 +10,11 @@ while [ -n "$*" ]; do shift shift ;; + -isysroot ) + # Unsupported options with arg + shift + shift + ;; -I* | -i* | --prefix* ) # Supported options without arg options="$options $1" ================================================ FILE: ports/isal/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/spdk-isal/copyright") message(FATAL_ERROR "'${PORT}' conflicts with 'spdk-isal'. Please remove spdk-isal:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/isa-l REF v2.30.0 SHA512 d3ecfb7326097534b06a74b584100336509525ae7cadc6112d0c27e3d8704f3810e18f583d3cc33fa266bfec96db023607622b22ddbf17988ec4bf1bb3b3b9b2 HEAD_REF master PATCHES osx-asm-sysroot.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${NASM_PATH}") endif() if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(NMAKE_TARGET dll) else() set(NMAKE_TARGET static) endif() vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME Makefile.nmake TARGET ${NMAKE_TARGET} OPTIONS CFLAGS_REL= ) if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(NMAKE_BINARY_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(INSTALL "${NMAKE_BINARY_DIR}/isa-l.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${NMAKE_BINARY_DIR}/isa-l.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") else() file(INSTALL "${NMAKE_BINARY_DIR}/isa-l_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() endif() if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(NMAKE_BINARY_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(INSTALL "${NMAKE_BINARY_DIR}/isa-l.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${NMAKE_BINARY_DIR}/isa-l.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") else() file(INSTALL "${NMAKE_BINARY_DIR}/isa-l_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() endif() file(GLOB ISAL_HDRS "${SOURCE_PATH}/include/*") file(INSTALL ${ISAL_HDRS} DESTINATION "${CURRENT_PACKAGES_DIR}/include/isal") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/isa-l.def" DESTINATION "${CURRENT_PACKAGES_DIR}/include/isal") else() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_find_acquire_program(YASM) get_filename_component(YASM_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${YASM_PATH}") endif() vcpkg_list(SET options) if(VCPKG_TARGET_IS_MINGW) # There is only a .def file used by nmake, no declspec(...) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # isal forces yasm for mingw, but stumbles over feature level detection vcpkg_list(APPEND options AS=) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} # No rpl_malloc provided, and probably not depending on ‘malloc (0)’ returning a valid pointer ac_cv_func_malloc_0_nonnull=yes ) vcpkg_install_make() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-isal-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-isal/unofficial-isal-config.cmake" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/isalConfig.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/isalConfig.cmake" @ONLY) # legacy file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/isal/unofficial-isal-config.cmake ================================================ if(NOT TARGET unofficial::isal::isal) add_library(unofficial::isal::isal UNKNOWN IMPORTED) get_filename_component(z_vcpkg_isal_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_isal_prefix "${z_vcpkg_isal_prefix}" PATH) get_filename_component(z_vcpkg_isal_prefix "${z_vcpkg_isal_prefix}" PATH) find_library(Z_VCPKG_ISAL_LIBRARY_RELEASE NAMES isal isa-l_static isa-l PATHS "${z_vcpkg_isal_prefix}/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::isal::isal PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_vcpkg_isal_prefix}/include" IMPORTED_CONFIGURATIONS RELEASE IMPORTED_LOCATION_RELEASE "${Z_VCPKG_ISAL_LIBRARY_RELEASE}" ) if("@VCPKG_BUILD_TYPE@" STREQUAL "") find_library(Z_VCPKG_ISAL_LIBRARY_DEBUG NAMES isal isa-l_static isa-l PATHS "${z_vcpkg_isal_prefix}/debug/lib" NO_DEFAULT_PATH REQUIRED) set_property(TARGET unofficial::isal::isal APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(unofficial::isal::isal PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_ISAL_LIBRARY_DEBUG}") endif() unset(z_vcpkg_isal_prefix) endif() ================================================ FILE: ports/isal/usage ================================================ The package isal provides CMake targets: find_package(unofficial-isal CONFIG REQUIRED) target_link_libraries(main unofficial::isal::isal) ================================================ FILE: ports/isal/vcpkg.json ================================================ { "name": "isal", "version": "2.30.0", "description": "Intel(R) Intelligent Storage Acceleration Library", "homepage": "https://github.com/intel/isa-l", "license": "BSD-3-Clause", "supports": "!uwp & (x64 | (arm64 & linux))" } ================================================ FILE: ports/ismrmrd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ismrmrd/ismrmrd REF "v${VERSION}" SHA512 1cf7295c672b84c7ab182bdd57902572b44830e0429bfbf62a57097ee01e086e6a53b23545444ddd741f25ac19195269c2fba65a3222fa1acdc2b90e57e1ecc0 HEAD_REF master PATCHES win32_runtime_fix.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hdf5 USE_HDF5_DATASET_SUPPORT ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_UTILITIES=OFF -DBUILD_STATIC=${BUILD_STATIC} ${FEATURE_OPTIONS} ) vcpkg_cmake_build() # For some reason the install target doesn't build the library before vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ISMRMRD/) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ismrmrd/vcpkg.json ================================================ { "name": "ismrmrd", "version": "1.15.0", "description": "ISMRM Raw Data Format", "homepage": "https://github.com/ismrmrd/ismrmrd", "license": "BSD-3-Clause", "supports": "!(x86 | wasm32)", "dependencies": [ "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hdf5": { "description": "Build with support for reading and writing datasets to HDF5 files", "dependencies": [ "hdf5" ] } } } ================================================ FILE: ports/ismrmrd/win32_runtime_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f000be0..6e74ebe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -238,9 +238,6 @@ endif () # main library if (BUILD_STATIC) - if (WIN32) - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - endif() set(ISMRMRD_PUGIXML_LIBRARIES pugixml::static) add_library(ismrmrd STATIC ${ISMRMRD_TARGET_SOURCES}) else() ================================================ FILE: ports/itay-grudev-singleapplication/Config.cmake.in ================================================ if(NOT TARGET itay-grudev-singleapplication) add_library(itay-grudev-singleapplication UNKNOWN IMPORTED) set_target_properties(itay-grudev-singleapplication PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" ) find_library(SingleApplication_LIBRARY_RELEASE NAMES SingleApplication PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) if(EXISTS "${SingleApplication_LIBRARY_RELEASE}") set_property(TARGET itay-grudev-singleapplication APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(itay-grudev-singleapplication PROPERTIES IMPORTED_LOCATION_RELEASE "${SingleApplication_LIBRARY_RELEASE}") endif() find_library(SingleApplication_LIBRARY_DEBUG NAMES SingleApplication PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${SingleApplication_LIBRARY_DEBUG}") set_property(TARGET itay-grudev-singleapplication APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(itay-grudev-singleapplication PROPERTIES IMPORTED_LOCATION_DEBUG "${SingleApplication_LIBRARY_DEBUG}") endif() set_target_properties(itay-grudev-singleapplication PROPERTIES INTERFACE_COMPILE_DEFINITIONS QAPPLICATION_CLASS=@QAPPLICATION_CLASS@ ) endif() ================================================ FILE: ports/itay-grudev-singleapplication/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO itay-grudev/SingleApplication REF "v${VERSION}" SHA512 6d26f87e67cc8f95463d49bb2f1cd4a2132b909e8dcc302eac2f7c2623f4627c3467627098103f54b80aeaa0a56ff613406f526007d206b4391174e0c073566a HEAD_REF master ) set(QAPPLICATION_CLASS QGuiApplication) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQT_DEFAULT_MAJOR_VERSION=6 -DQAPPLICATION_CLASS=${QAPPLICATION_CLASS} ) vcpkg_cmake_build(TARGET SingleApplication) if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}SingleApplication${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}SingleApplication${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${SOURCE_PATH}/singleapplication.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/itay-grudev-singleapplication/vcpkg.json ================================================ { "name": "itay-grudev-singleapplication", "version": "3.5.4", "description": "Replacement of QtSingleApplication for Qt 5 and Qt 6 with support for inter-instance communication", "homepage": "https://github.com/itay-grudev/SingleApplication", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "network", "widgets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/itk/dependencies.diff ================================================ diff --git a/CMake/ITKConfig.cmake.in b/CMake/ITKConfig.cmake.in index 7a77ae3..6a565e8 100644 --- a/CMake/ITKConfig.cmake.in +++ b/CMake/ITKConfig.cmake.in @@ -1,3 +1,8 @@ +include(CMakeFindDependencyMacro) +find_dependency(double-conversion CONFIG) +find_dependency(OpenJPEG CONFIG) +find_dependency(VXL CONFIG) +include("${VXL_CMAKE_DIR}/UseVXL.cmake") #----------------------------------------------------------------------------- # # ITKConfig.cmake - ITK CMake configuration file for external projects. diff --git a/CMake/itkOpenCL.cmake b/CMake/itkOpenCL.cmake index 21aab8c..f2bf8ae 100644 --- a/CMake/itkOpenCL.cmake +++ b/CMake/itkOpenCL.cmake @@ -1,5 +1,7 @@ if(ITK_USE_GPU) find_package(OpenCL REQUIRED) + set(OPENCL_INCLUDE_DIRS "${OpenCL_INCLUDE_DIRS}") + set(OPENCL_LIBRARIES "${OpenCL_LIBRARIES}") if(NOT ${OPENCL_FOUND}) message(FATAL "Could not find OpenCL") endif() diff --git a/Modules/ThirdParty/DoubleConversion/CMakeLists.txt b/Modules/ThirdParty/DoubleConversion/CMakeLists.txt index 135c1d3..f644a32 100644 --- a/Modules/ThirdParty/DoubleConversion/CMakeLists.txt +++ b/Modules/ThirdParty/DoubleConversion/CMakeLists.txt @@ -7,9 +7,9 @@ option(ITK_USE_SYSTEM_DOUBLECONVERSION mark_as_advanced(ITK_USE_SYSTEM_DOUBLECONVERSION) if(ITK_USE_SYSTEM_DOUBLECONVERSION) - find_package(double-conversion 3.1.6 REQUIRED) + find_package(double-conversion 3.1.6 REQUIRED GLOBAL) get_target_property(ITKDoubleConversion_INCLUDE_DIRS double-conversion::double-conversion INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(ITKDoubleConversion_LIBRARIES double-conversion::double-conversion LOCATION) + set(ITKDoubleConversion_LIBRARIES double-conversion::double-conversion) else() set(ITKDoubleConversion_INCLUDE_DIRS ${ITKDoubleConversion_SOURCE_DIR}/src diff --git a/Modules/ThirdParty/Eigen3/CMakeLists.txt b/Modules/ThirdParty/Eigen3/CMakeLists.txt index 8dbbb86..a3d2efe 100644 --- a/Modules/ThirdParty/Eigen3/CMakeLists.txt +++ b/Modules/ThirdParty/Eigen3/CMakeLists.txt @@ -52,12 +52,12 @@ set(_Eigen3_min_version 3.3) if(ITK_USE_SYSTEM_EIGEN) set(_Eigen3_SYSTEM_OR_INTERNAL "Eigen3") - find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version} REQUIRED CONFIG) + find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version}...5 REQUIRED CONFIG) set(Eigen3_DIR_INSTALL ${Eigen3_DIR}) set(Eigen3_DIR_BUILD ${Eigen3_DIR}) else() set(_Eigen3_SYSTEM_OR_INTERNAL "ITKInternalEigen3") - find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version} REQUIRED CONFIG) + find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version}...5 REQUIRED CONFIG) set(Eigen3_DIR_INSTALL "\${ITK_MODULES_DIR}") set(_eigen3_build_dir "${ITK_BINARY_DIR}/ITKInternalEigen3-build") set(Eigen3_DIR_BUILD "${_eigen3_build_dir}") @@ -77,18 +77,18 @@ set(ITKEigen3_INCLUDE_DIRS set(ITKEigen3_EXPORT_CODE_INSTALL " set(ITK_USE_SYSTEM_EIGEN \"${ITK_USE_SYSTEM_EIGEN}\") set(${_Eigen3_SYSTEM_OR_INTERNAL}_DIR \"${Eigen3_DIR_INSTALL}\") -find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version} REQUIRED CONFIG) +find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version}...5 REQUIRED CONFIG) ") set(ITKEigen3_EXPORT_CODE_BUILD " set(ITK_USE_SYSTEM_EIGEN \"${ITK_USE_SYSTEM_EIGEN}\") set(${_Eigen3_SYSTEM_OR_INTERNAL}_DIR \"${Eigen3_DIR_BUILD}\") -find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version} REQUIRED CONFIG) +find_package(${_Eigen3_SYSTEM_OR_INTERNAL} ${_Eigen3_min_version}...5 REQUIRED CONFIG) ") # Eigen3 targets are not installed if ITK_USE_SYSTEM_EIGEN==True itk_module_impl() -configure_file(src/itk_eigen.h.in src/itk_eigen.h) +configure_file(src/itk_eigen.h.in src/itk_eigen.h @ONLY) install(FILES ${ITKEigen3_BINARY_DIR}/src/itk_eigen.h DESTINATION ${ITKEigen3_INSTALL_INCLUDE_DIR} COMPONENT Development diff --git a/Modules/ThirdParty/MINC/CMakeLists.txt b/Modules/ThirdParty/MINC/CMakeLists.txt index 5644257..9744d7c 100644 --- a/Modules/ThirdParty/MINC/CMakeLists.txt +++ b/Modules/ThirdParty/MINC/CMakeLists.txt @@ -5,7 +5,7 @@ set(ITKMINC_THIRD_PARTY 1) set(ITKMINC_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/src) if(ITK_USE_SYSTEM_MINC) - find_package(LIBMINC REQUIRED) + find_package(LIBMINC REQUIRED GLOBAL) set(ITKMINC_SYSTEM_INCLUDE_DIRS ${LIBMINC_INCLUDE_DIRS} ) set(ITKMINC_SYSTEM_LIBRARY_DIRS ${LIBMINC_LIBRARY_DIRS} ) diff --git a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt index 103eaa9..b59eb81 100644 --- a/Modules/ThirdParty/OpenJPEG/CMakeLists.txt +++ b/Modules/ThirdParty/OpenJPEG/CMakeLists.txt @@ -1,12 +1,19 @@ project(ITKOpenJPEG) set(ITKOpenJPEG_THIRD_PARTY 1) +if(ITK_USE_SYSTEM_OpenJPEG) + find_package(OpenJPEG CONFIG REQUIRED GLOBAL) + set(ITKOpenJPEG_INCLUDE_DIRS "") + set(ITKOpenJPEG_LIBRARIES $) + set(ITKOpenJPEG_NO_SRC 1) +else() set(ITKOpenJPEG_INCLUDE_DIRS ${ITKOpenJPEG_BINARY_DIR}/src/openjpeg ${ITKOpenJPEG_SOURCE_DIR}/src/openjpeg ) set(ITKOpenJPEG_LIBRARIES itkopenjpeg) set(ITK_LIBRARY_PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS FALSE) +endif() itk_module_impl() diff --git a/Modules/ThirdParty/VNL/CMakeLists.txt b/Modules/ThirdParty/VNL/CMakeLists.txt index c379a24..25fdb8d 100644 --- a/Modules/ThirdParty/VNL/CMakeLists.txt +++ b/Modules/ThirdParty/VNL/CMakeLists.txt @@ -5,7 +5,7 @@ option(ITK_USE_SYSTEM_VXL "Use an outside build of VXL." OFF) mark_as_advanced(ITK_USE_SYSTEM_VXL) if(ITK_USE_SYSTEM_VXL) - find_package(VXL 3.0.0 REQUIRED) + find_package(VXL 3.0.0 REQUIRED GLOBAL) # 3.0.0 is the first version of VXL that supports # the requirement of front() and back() members # in the vnl_vector and vnl_vector_fixed. @@ -17,7 +17,8 @@ if(ITK_USE_SYSTEM_VXL) ${VXL_CORE_INCLUDE_DIR} ) set(ITKVNL_LIBRARIES vnl_algo vnl v3p_netlib netlib vcl) - set(ITKVNL_SYSTEM_LIBRARY_DIRS "${VXL_LIBRARY_DIR}") + list(TRANSFORM ITKVNL_LIBRARIES REPLACE "^(.+)\$" "\$") + set(ITKVNL_SYSTEM_LIBRARY_DIRS "") set(ITKVNL_NO_SRC 1) else() ================================================ FILE: ports/itk/dont-build-gtest.patch ================================================ diff --git a/Modules/ThirdParty/GoogleTest/itk-module.cmake b/Modules/ThirdParty/GoogleTest/itk-module.cmake index 5571748129..19ebb60885 100644 --- a/Modules/ThirdParty/GoogleTest/itk-module.cmake +++ b/Modules/ThirdParty/GoogleTest/itk-module.cmake @@ -3,6 +3,7 @@ Google's C++ test framework.") itk_module(ITKGoogleTest DEPENDS + EXCLUDE_FROM_DEFAULT DESCRIPTION "${DOCUMENTATION}" ) ================================================ FILE: ports/itk/fftw.diff ================================================ diff --git a/CMake/FindFFTW.cmake b/CMake/FindFFTW.cmake index 709c0cd..64baa8e 100644 --- a/CMake/FindFFTW.cmake +++ b/CMake/FindFFTW.cmake @@ -30,7 +30,27 @@ ## to set the initial value of the CMake variable `MKLROOT` (see ## https://software.intel.com/en-us/mkl-linux-developer-guide-scripts-to-set-environment-variables). -if(ITK_USE_FFTWD OR ITK_USE_FFTWF) +set(FFTW_INCLUDE "") +if(ITK_USE_CUFFTW) + find_package(CUDAToolkit REQUIRED) + find_path(CUFFTW_INCLUDE_PATH cufftw.h PATHS ${CUDAToolkit_INCLUDE_DIRS} NO_DEFAULT_PATH REQUIRED) + set(FFTW_INCLUDE ${CUFFTW_INCLUDE_PATH}) + set(FFTWD_LIBRARIES CUDA::cufftw) + set(FFTWD_FOUND 1) + set(FFTWF_LIBRARIES CUDA::cufftw) + set(FFTWF_FOUND 1) +elseif(ITK_USE_FFTWD OR ITK_USE_FFTWF) + find_path(FFTW_INCLUDE_PATH fftw3.h REQUIRED) + set(FFTW_INCLUDE ${CUFFTW_INCLUDE_PATH}) + if(ITK_USE_FFTWD) + find_package(FFTWD NAMES FFTW3 CONFIG REQUIRED) + set(FFTWD_LIBRARIES FFTW3::fftw3) + endif() + if(ITK_USE_FFTWF) + find_package(FFTWF NAMES FFTW3f CONFIG REQUIRED) + set(FFTWF_LIBRARIES FFTW3::fftw3f) + endif() +elseif(0) if(ITK_USE_MKL) # If the user has provided the MKL include path then search nearby for library files diff --git a/CMake/ITKConfig.cmake.in b/CMake/ITKConfig.cmake.in index 9066d4f..4ec0266 100644 --- a/CMake/ITKConfig.cmake.in +++ b/CMake/ITKConfig.cmake.in @@ -3,6 +3,16 @@ include(CMakeFindDependencyMacro) find_dependency(OpenJPEG CONFIG) find_dependency(VXL CONFIG) include("${VXL_CMAKE_DIR}/UseVXL.cmake") +if("@ITK_USE_CUFFTW@") + find_dependency(CUDAToolkit) +else() + if("@ITK_USE_FFTWD@") + find_dependency(FFTW3 CONFIG) + endif() + if("@ITK_USE_FFTWF@") + find_dependency(FFTW3f CONFIG) + endif() +endif() #----------------------------------------------------------------------------- # # ITKConfig.cmake - ITK CMake configuration file for external projects. diff --git a/Modules/Filtering/FFT/src/CMakeLists.txt b/Modules/Filtering/FFT/src/CMakeLists.txt index 83b176c..b51bc48 100644 --- a/Modules/Filtering/FFT/src/CMakeLists.txt +++ b/Modules/Filtering/FFT/src/CMakeLists.txt @@ -10,6 +10,9 @@ endif() itk_module_add_library(ITKFFT ${ITKFFT_SRCS}) # this library is only needed if FFTW is used +if(ITK_USE_CUFFTW) + target_link_libraries(ITKFFT LINK_PUBLIC CUDA::cufftw) +endif() if(ITK_USE_FFTWF OR ITK_USE_FFTWD AND NOT ITK_USE_CUFFTW) ================================================ FILE: ports/itk/msvc-static-crt.diff ================================================ diff --git a/CMake/ITKConfig.cmake.in b/CMake/ITKConfig.cmake.in index 6a565e8..ebf4230 100644 --- a/CMake/ITKConfig.cmake.in +++ b/CMake/ITKConfig.cmake.in @@ -56,7 +56,7 @@ set(ITK_BUILD_SHARED "@ITK_BUILD_SHARED_LIBS@") set(ITK_LIBRARY_BUILD_TYPE "@ITK_LIBRARY_BUILD_TYPE@") # Whether ITK links to MSVC's static CRT (/MT and /MTd). -set(ITK_MSVC_STATIC_CRT "@ITK_MSVC_STATIC_RUNTIME_LIBRARY_value@") +set(ITK_MSVC_STATIC_CRT "@ITK_MSVC_STATIC_CRT@") # Whether ITK examples were built. set(ITK_BUILD_EXAMPLES "@BUILD_EXAMPLES@") diff --git a/CMakeLists.txt b/CMakeLists.txt index 1267b1a..da4bbb8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,7 +130,7 @@ if(MSVC) #-- Configure MSVC_STATIC_RUNTIME only if using MSVC environment option(ITK_MSVC_STATIC_RUNTIME_LIBRARY "Link to MSVC's static CRT (/MT and /MTd). OFF (default) means link to regular, dynamic CRT (/MD and /MDd)." OFF) mark_as_advanced(ITK_MSVC_STATIC_RUNTIME_LIBRARY) - set(ITK_MSVC_STATIC_RUNTIME_LIBRARY_value ${ITK_MSVC_STATIC_RUNTIME_LIBRARY}) + set(ITK_MSVC_STATIC_CRT ${ITK_MSVC_STATIC_RUNTIME_LIBRARY}) if(ITK_MSVC_STATIC_RUNTIME_LIBRARY) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") message(STATUS "Using MSVC's static CRT (/MT and /MTd)") ================================================ FILE: ports/itk/openjpeg.patch ================================================ diff --git a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx index 3592573..aefb8a2 100644 --- a/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx +++ b/Modules/IO/JPEG2000/src/itkJPEG2000ImageIO.cxx @@ -26,9 +26,7 @@ extern "C" { -#include "openjpeg.h" -#include "j2k.h" -#include "jp2.h" +#include } @@ -62,8 +60,7 @@ public: OPJ_UINT32 m_TileStartX; OPJ_UINT32 m_TileStartY; - OPJ_UINT32 m_NumberOfTilesInX; - OPJ_UINT32 m_NumberOfTilesInY; + OPJ_UINT32 m_NumberOfTiles; opj_dparameters_t m_DecompressionParameters; /* decompression parameters */ }; @@ -86,8 +83,7 @@ JPEG2000ImageIO::JPEG2000ImageIO() this->m_Internal->m_TileStartX = 0; this->m_Internal->m_TileStartY = 0; - this->m_Internal->m_NumberOfTilesInX = 0; - this->m_Internal->m_NumberOfTilesInY = 0; + this->m_Internal->m_NumberOfTiles = 0; const char * extensions[] = { ".j2k", ".jp2", ".jpt" }; @@ -139,22 +135,16 @@ JPEG2000ImageIO::ReadImageInformation() { itkDebugMacro("ReadImageInformation()"); - FILE * l_file = fopen(this->m_FileName.c_str(), "rb"); - - /* decompression parameters */ + /* set decoding parameters to default values */ + opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters)); - if (!l_file) + opj_stream_t * cio = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true); + if (!cio) { itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl << "Reason: " << itksys::SystemTools::GetLastSystemError()); } - - /* set decoding parameters to default values */ - opj_set_default_decoder_parameters(&(this->m_Internal->m_DecompressionParameters)); - - opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, true); - this->m_Internal->m_Dinfo = nullptr; /* handle to a decompressor */ opj_image_t * l_image = nullptr; @@ -187,14 +177,14 @@ JPEG2000ImageIO::ReadImageInformation() /* JPEG-2000 codestream */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K); if (!this->m_Internal->m_Dinfo) { opj_stream_destroy(cio); - fclose(l_file); + // fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_J2K) returns nullptr"); } break; } @@ -202,14 +192,14 @@ JPEG2000ImageIO::ReadImageInformation() { /* JPEG 2000 compressed image data */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2); if (!this->m_Internal->m_Dinfo) { opj_stream_destroy(cio); - fclose(l_file); + // fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_JP2) returns nullptr"); } break; } @@ -217,20 +207,19 @@ JPEG2000ImageIO::ReadImageInformation() { /* JPEG 2000, JPIP */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT); if (!this->m_Internal->m_Dinfo) { opj_stream_destroy(cio); - fclose(l_file); + // fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_JPT) returns nullptr"); } break; } default: opj_stream_destroy(cio); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl << "Reason: " @@ -247,27 +236,11 @@ JPEG2000ImageIO::ReadImageInformation() << "Reason: opj_setup_decoder returns false"); } - // Image parameters - first tile - OPJ_INT32 l_tile_x0; - OPJ_INT32 l_tile_y0; - // Image parameters - tile width, height and number of tiles - OPJ_UINT32 l_tile_width; - OPJ_UINT32 l_tile_height; - OPJ_UINT32 l_nb_tiles_x; - OPJ_UINT32 l_nb_tiles_y; itkDebugMacro("Trying to read header now..."); - bResult = opj_read_header(this->m_Internal->m_Dinfo, - &l_image, - &l_tile_x0, - &l_tile_y0, - &l_tile_width, - &l_tile_height, - &l_nb_tiles_x, - &l_nb_tiles_y, - cio); + bResult = opj_read_header(cio, this->m_Internal->m_Dinfo, &l_image); if (!bResult) { @@ -283,14 +256,22 @@ JPEG2000ImageIO::ReadImageInformation() << "Reason: Error whle reading image header"); } + // Image parameters - first tile + OPJ_INT32 l_tile_x0=l_image->x0; + OPJ_INT32 l_tile_y0=l_image->y0; + + // Image parameters - tile width, height and number of tiles + OPJ_UINT32 l_tile_width=l_image->x1; + OPJ_UINT32 l_tile_height=l_image->y1; + OPJ_UINT32 l_nb_tiles=l_image->numcomps; + this->m_Internal->m_TileStartX = l_tile_x0; this->m_Internal->m_TileStartY = l_tile_y0; this->m_Internal->m_TileWidth = l_tile_width; this->m_Internal->m_TileHeight = l_tile_height; - this->m_Internal->m_NumberOfTilesInX = l_nb_tiles_x; - this->m_Internal->m_NumberOfTilesInY = l_nb_tiles_y; + this->m_Internal->m_NumberOfTiles = l_nb_tiles; itkDebugMacro("Number of Components = " << l_image->numcomps); @@ -319,7 +300,7 @@ JPEG2000ImageIO::ReadImageInformation() this->SetPixelType(IOPixelEnum::SCALAR); break; case 3: - if (l_image->color_space != CLRSPC_SRGB) + if (l_image->color_space != OPJ_CLRSPC_SRGB) { itkWarningMacro("file does not specify color space, assuming sRGB"); } @@ -335,8 +316,7 @@ JPEG2000ImageIO::ReadImageInformation() itkDebugMacro("Tile Start Y = " << this->m_Internal->m_TileStartY); itkDebugMacro("Tile Width = " << this->m_Internal->m_TileWidth); itkDebugMacro("Tile Height = " << this->m_Internal->m_TileHeight); - itkDebugMacro("Number of Tiles X = " << this->m_Internal->m_NumberOfTilesInX); - itkDebugMacro("Number of Tiles Y = " << this->m_Internal->m_NumberOfTilesInY); + itkDebugMacro("Number of Tiles = " << this->m_Internal->m_NumberOfTiles); itkDebugMacro("image->x1 = " << l_image->x1); itkDebugMacro("image->y1 = " << l_image->y1); @@ -349,7 +329,6 @@ JPEG2000ImageIO::ReadImageInformation() /* close the byte stream */ opj_stream_destroy(cio); - fclose(l_file); if (this->m_Internal->m_Dinfo) { @@ -368,16 +347,7 @@ JPEG2000ImageIO::Read(void * buffer) { itkDebugMacro("JPEG2000ImageIO::Read() Begin"); - FILE * l_file = fopen(this->m_FileName.c_str(), "rb"); - - if (!l_file) - { - itkExceptionMacro("JPEG2000ImageIO failed to open file for reading: " << this->GetFileName() << std::endl - << "Reason: " - << itksys::SystemTools::GetLastSystemError()); - } - - opj_stream_t * l_stream = opj_stream_create_default_file_stream(l_file, true); + opj_stream_t * l_stream = opj_stream_create_default_file_stream(this->m_FileName.c_str(), true); if (!l_stream) { itkExceptionMacro("JPEG2000ImageIO failed to read file: " @@ -397,12 +367,13 @@ JPEG2000ImageIO::Read(void * buffer) { /* JPEG-2000 codestream */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_J2K); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_J2K); if (!this->m_Internal->m_Dinfo) { + opj_stream_destroy(l_stream); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_J2K) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_J2K) returns nullptr"); } break; } @@ -410,12 +381,13 @@ JPEG2000ImageIO::Read(void * buffer) { /* JPEG 2000 compressed image data */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JP2); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JP2); if (!this->m_Internal->m_Dinfo) { + opj_stream_destroy(l_stream); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_JP2) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_JP2) returns nullptr"); } break; } @@ -423,17 +395,18 @@ JPEG2000ImageIO::Read(void * buffer) { /* JPEG 2000, JPIP */ /* get a decoder handle */ - this->m_Internal->m_Dinfo = opj_create_decompress(CODEC_JPT); + this->m_Internal->m_Dinfo = opj_create_decompress(OPJ_CODEC_JPT); if (!this->m_Internal->m_Dinfo) { + opj_stream_destroy(l_stream); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl - << "Reason: opj_create_decompress(CODEC_JPT) returns nullptr"); + << "Reason: opj_create_decompress(OPJ_CODEC_JPT) returns nullptr"); } break; } default: - fclose(l_file); + opj_stream_destroy(l_stream); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl << "Reason: " @@ -448,29 +421,13 @@ JPEG2000ImageIO::Read(void * buffer) << "Reason: opj_setup_decoder returns false"); } - OPJ_INT32 l_tile_x0, l_tile_y0; - - OPJ_UINT32 l_tile_width; - OPJ_UINT32 l_tile_height; - OPJ_UINT32 l_nb_tiles_x; - OPJ_UINT32 l_nb_tiles_y; - - bool bResult = opj_read_header(this->m_Internal->m_Dinfo, - &l_image, - &l_tile_x0, - &l_tile_y0, - &l_tile_width, - &l_tile_height, - &l_nb_tiles_x, - &l_nb_tiles_y, - l_stream); + bool bResult = opj_read_header(l_stream, this->m_Internal->m_Dinfo,&l_image); if (!bResult) { opj_destroy_codec(this->m_Internal->m_Dinfo); this->m_Internal->m_Dinfo = nullptr; opj_stream_destroy(l_stream); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl << "Reason: opj_read_header returns false"); } @@ -499,7 +456,7 @@ JPEG2000ImageIO::Read(void * buffer) itkDebugMacro("p_end_x = " << p_end_x); itkDebugMacro("p_end_y = " << p_end_y); - bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, p_start_x, p_start_y, p_end_x, p_end_y); + bResult = opj_set_decode_area(this->m_Internal->m_Dinfo, l_image, p_start_x, p_start_y, p_end_x, p_end_y); itkDebugMacro("opj_set_decode_area() after"); @@ -508,7 +465,6 @@ JPEG2000ImageIO::Read(void * buffer) opj_destroy_codec(this->m_Internal->m_Dinfo); this->m_Internal->m_Dinfo = nullptr; opj_stream_destroy(l_stream); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl << "Reason: opj_set_decode_area returns false"); } @@ -525,13 +481,13 @@ JPEG2000ImageIO::Read(void * buffer) OPJ_UINT32 l_max_data_size = 1000; - bool l_go_on = true; + int l_go_on = true; // should be OBJ_BOOL auto * l_data = (OPJ_BYTE *)malloc(1000); while (l_go_on) { - bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo, + bool tileHeaderRead = opj_read_tile_header(this->m_Internal->m_Dinfo, l_stream, &l_tile_index, &l_data_size, &l_current_tile_x0, @@ -539,14 +495,12 @@ JPEG2000ImageIO::Read(void * buffer) &l_current_tile_x1, &l_current_tile_y1, &l_nb_comps, - &l_go_on, - l_stream); + &l_go_on); if (!tileHeaderRead) { free(l_data); opj_stream_destroy(l_stream); - fclose(l_file); opj_destroy_codec(this->m_Internal->m_Dinfo); opj_image_destroy(l_image); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl @@ -571,7 +525,6 @@ JPEG2000ImageIO::Read(void * buffer) if (!l_data) { opj_stream_destroy(l_stream); - fclose(l_file); opj_destroy_codec(this->m_Internal->m_Dinfo); opj_image_destroy(l_image); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl @@ -590,7 +543,6 @@ JPEG2000ImageIO::Read(void * buffer) { free(l_data); opj_stream_destroy(l_stream); - fclose(l_file); opj_destroy_codec(this->m_Internal->m_Dinfo); opj_image_destroy(l_image); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl @@ -654,7 +606,6 @@ JPEG2000ImageIO::Read(void * buffer) { free(l_data); opj_stream_destroy(l_stream); - fclose(l_file); opj_destroy_codec(this->m_Internal->m_Dinfo); opj_image_destroy(l_image); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl @@ -666,14 +617,12 @@ JPEG2000ImageIO::Read(void * buffer) opj_destroy_codec(this->m_Internal->m_Dinfo); this->m_Internal->m_Dinfo = nullptr; opj_stream_destroy(l_stream); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to read file: " << this->GetFileName() << std::endl << "Reason: error whle reading image"); } /* close the byte stream */ opj_stream_destroy(l_stream); - fclose(l_file); if (this->m_Internal->m_Dinfo) { @@ -842,13 +791,13 @@ JPEG2000ImageIO::Write(const void * buffer) parameters.numresolution = numberOfResolutions; - OPJ_COLOR_SPACE color_space = CLRSPC_GRAY; + OPJ_COLOR_SPACE color_space = OPJ_CLRSPC_GRAY; opj_image_cmptparm_t cmptparms[3]; if (this->GetNumberOfComponents() == 3) { - color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? CLRSPC_SRGB : CLRSPC_UNSPECIFIED; + color_space = (this->GetPixelType() == IOPixelEnum::RGB) ? OPJ_CLRSPC_SRGB : OPJ_CLRSPC_UNSPECIFIED; /* initialize image components */ memset(&cmptparms[0], 0, 3 * sizeof(opj_image_cmptparm_t)); @@ -866,7 +815,7 @@ JPEG2000ImageIO::Write(const void * buffer) if (this->GetNumberOfComponents() == 1) { - color_space = CLRSPC_GRAY; + color_space = OPJ_CLRSPC_GRAY; /* initialize image components */ memset(&cmptparms[0], 0, sizeof(opj_image_cmptparm_t)); @@ -942,32 +891,32 @@ JPEG2000ImageIO::Write(const void * buffer) opj_codec_t * cinfo = nullptr; if (extension == ".j2k") { - cinfo = opj_create_compress(CODEC_J2K); + cinfo = opj_create_compress(OPJ_CODEC_J2K); if (!cinfo) { itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl - << "Reason: opj_create_compress(CODEC_J2K) returns nullptr"); + << "Reason: opj_create_compress(OPJ_CODEC_J2K) returns nullptr"); } } else if (extension == ".jp2") { - cinfo = opj_create_compress(CODEC_JP2); + cinfo = opj_create_compress(OPJ_CODEC_JP2); if (!cinfo) { itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl - << "Reason: opj_create_compress(CODEC_JP2) returns nullptr"); + << "Reason: opj_create_compress(OPJ_CODEC_JP2) returns nullptr"); } } else if (extension == ".jpt") { - cinfo = opj_create_compress(CODEC_JPT); + cinfo = opj_create_compress(OPJ_CODEC_JPT); if (!cinfo) { itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl - << "Reason: opj_create_compress(CODEC_JPT) returns nullptr"); + << "Reason: opj_create_compress(OPJ_CODEC_JPT) returns nullptr"); } } else @@ -991,17 +940,9 @@ JPEG2000ImageIO::Write(const void * buffer) << "Reason: opj_setup_encoder returns false"); } - FILE * l_file = fopen(parameters.outfile, "wb"); - if (!l_file) - { - itkExceptionMacro("JPEG2000ImageIO failed to open file for writing: " << this->GetFileName() << std::endl - << "Reason: " - << itksys::SystemTools::GetLastSystemError()); - } - /* open a byte stream for writing */ /* allocate memory for all tiles */ - opj_stream_t * cio = opj_stream_create_default_file_stream(l_file, false); + opj_stream_t * cio = opj_stream_create_default_file_stream(parameters.outfile, false); if (!cio) { itkExceptionMacro("JPEG2000ImageIO failed to write file: " @@ -1019,8 +960,7 @@ JPEG2000ImageIO::Write(const void * buffer) if (!bSuccess) { opj_stream_destroy(cio); - fclose(l_file); - itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl + itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl << "Reason: opj_start_compress returns false"); } @@ -1028,7 +968,6 @@ JPEG2000ImageIO::Write(const void * buffer) if (!bSuccess) { opj_stream_destroy(cio); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl << "Reason: opj_encode returns false"); } @@ -1037,14 +976,12 @@ JPEG2000ImageIO::Write(const void * buffer) if (!bSuccess) { opj_stream_destroy(cio); - fclose(l_file); itkExceptionMacro("JPEG2000ImageIO failed to write file: " << this->GetFileName() << std::endl << "Reason: opj_end_compress returns false"); } /* close and free the byte stream */ opj_stream_destroy(cio); - fclose(l_file); /* free remaining compression structures */ opj_destroy_codec(cinfo); diff --git a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h index 2ad0009..77a48c5 100644 --- a/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h +++ b/Modules/ThirdParty/OpenJPEG/src/itk_openjpeg.h @@ -25,6 +25,6 @@ #ifndef itk_openjpeg_h #define itk_openjpeg_h -#include +#include #endif ================================================ FILE: ports/itk/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) vcpkg_download_distfile(PYTHON_GPU_WRAPPING_PATCH URLS https://github.com/InsightSoftwareConsortium/ITK/commit/e9b3d24f782a42f5586169e048b8d289f869d78a.diff?full_index=1 FILENAME InsightSoftwareConsortium-ITK-python-gpu-wrapping.patch SHA512 71526320547b0eb5d0c0e0088e92ff60ba06462b82c531c79784d766361805970d9cad550660c7c85b953ec546b32c181aeab5d9f6d4142764d6f765106982a0 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO InsightSoftwareConsortium/ITK REF "v${VERSION}" #[[ When updating the ITK version and SHA512, remember to update the remote module versions below. Try `vcpkg install itk[core,cuda,rtk] --only-downloads` for suggestions and verification. #]] SHA512 225de9963e8eaf93ac32ca4a75c4e7aa887c8e926483c5aca0a4c77ef0e6cc6db4561f96a9ec3b936524ea698702705e8dc2c4a2e6a155733a12c0b3098ae11c HEAD_REF master PATCHES dependencies.diff fftw.diff openjpeg.patch var_libraries.patch wrapping.patch use-the-lrintf-intrinsic.patch dont-build-gtest.patch msvc-static-crt.diff "${PYTHON_GPU_WRAPPING_PATCH}" ) file(REMOVE_RECURSE "${SOURCE_PATH}/CMake/FindOpenCL.cmake" "${SOURCE_PATH}/Modules/ThirdParty/GDCM/src" "${SOURCE_PATH}/Modules/ThirdParty/OpenJPEG/src/openjpeg" "${SOURCE_PATH}/Modules/ThirdParty/VNL/src" ) set(cuda_common_ref 0c20c4ef10d81910c8b2ac4e8446a1544fce3b60) set(cuda_common_sha 0eb1a6fe85e695345a49887cdd65103bedab72e01ae85ed03e16a8a296c6cb69a8d889a57b22dde7fcc69df4f604c274b04234c8ece306d08361fac5db029069) file(STRINGS "${SOURCE_PATH}/Modules/Remote/CudaCommon.remote.cmake" cuda_common_git_tag REGEX "GIT_TAG") if(NOT cuda_common_git_tag MATCHES "${cuda_common_ref}") message(FATAL_ERROR "cuda_common_ref/sha must be updated, new ${cuda_common_git_tag}") endif() if("cuda" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH RTK_SOURCE_PATH REPO RTKConsortium/ITKCudaCommon REF "${cuda_common_ref}" SHA512 "${cuda_common_sha}" HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/Modules/Remote/CudaCommon") file(RENAME "${RTK_SOURCE_PATH}" "${SOURCE_PATH}/Modules/Remote/CudaCommon") file(COPY_FILE "${SOURCE_PATH}/Modules/Remote/CudaCommon/LICENSE" "${SOURCE_PATH}/CudaCommon LICENSE") endif() set(rtk_ref bfdca5b6b666b4f08f2f7d8039af11a15cc3f831) set(rtk_sha 10a21fb4b82aa820e507e81a6b6a3c1aaee2ea1edf39364dc1c8d54e6b11b91f22d9993c0b56c0e8e20b6d549fcd6104de4e1c5e664f9ff59f5f93935fb5225a) file(STRINGS "${SOURCE_PATH}/Modules/Remote/RTK.remote.cmake" rtk_git_tag REGEX "GIT_TAG") if(NOT rtk_git_tag MATCHES "${rtk_ref}") message(FATAL_ERROR "rtk_ref/sha must be updated, new ${rtk_git_tag}") endif() if("rtk" IN_LIST FEATURES) # (old hint, not verified) RTK + CUDA + PYTHON + dynamic library linkage will fail and needs upstream fixes. # RTK's ITK module must be built with ITK. vcpkg_from_github( OUT_SOURCE_PATH RTK_SOURCE_PATH REPO RTKConsortium/RTK REF "${rtk_ref}" SHA512 "${rtk_sha}" HEAD_REF master PATCHES rtk/cmp0153.diff rtk/getopt-win32.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/Modules/Remote/RTK") file(RENAME "${RTK_SOURCE_PATH}" "${SOURCE_PATH}/Modules/Remote/RTK") file(COPY_FILE "${SOURCE_PATH}/Modules/Remote/RTK/COPYRIGHT.TXT" "${SOURCE_PATH}/RTK COPYRIGHT.TXT") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "vtk" Module_ITKVtkGlue "cuda" Module_CudaCommon # Requires RTK? "cuda" RTK_USE_CUDA #"cuda" CUDA_HAVE_GPU # Automatically set by FindCUDA? "cufftw" ITK_USE_CUFFTW "opencl" ITK_USE_GPU "tbb" Module_ITKTBB "rtk" Module_RTK "tools" RTK_BUILD_APPLICATIONS "opencv" Module_ITKVideoBridgeOpenCV # There are a lot of more (remote) modules and options in ITK # feel free to add those as a feature ) if("cufftw" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND ADDITIONAL_OPTIONS "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() if("fftw" IN_LIST FEATURES) # Never set these options to OFF: dual use with feature 'cufftw' list(APPEND ADDITIONAL_OPTIONS -DITK_USE_FFTWD=ON -DITK_USE_FFTWF=ON ) endif() if("opencl" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS # Wrapping options required by OpenCL if build with Python Wrappers -DITK_WRAP_unsigned_long_long=ON -DITK_WRAP_signed_long_long=ON ) endif() if("tools" IN_LIST FEATURES) if("rtk" IN_LIST FEATURES) list(APPEND TOOL_NAMES rtkadmmtotalvariation rtkadmmwavelets rtkamsterdamshroud rtkbackprojections rtkbioscangeometry rtkcheckimagequality rtkconjugategradient rtkdigisensgeometry rtkdrawgeometricphantom rtkdrawshepploganphantom rtkdualenergysimplexdecomposition rtkelektasynergygeometry rtkextractphasesignal rtkextractshroudsignal rtkfdk rtkfdktwodweights rtkfieldofview rtkforwardprojections rtkfourdconjugategradient rtkfourdfdk rtkfourdrooster rtkfourdsart rtkgaincorrection rtki0estimation rtkimagxgeometry rtkiterativefdk rtklagcorrection rtklastdimensionl0gradientdenoising rtklut rtkmaskcollimation rtkmcrooster rtkmotioncompensatedfourdconjugategradient rtkorageometry rtkosem rtkoverlayphaseandshroud rtkparkershortscanweighting rtkprojectgeometricphantom rtkprojectionmatrix rtkprojections rtkprojectshepploganphantom rtkramp rtkrayboxintersection rtkrayquadricintersection rtkregularizedconjugategradient rtksart rtkscatterglarecorrection rtksimulatedgeometry rtkspectraldenoiseprojections rtkspectralforwardmodel rtkspectralonestep rtkspectralrooster rtkspectralsimplexdecomposition rtksubselect rtktotalnuclearvariationdenoising rtktotalvariationdenoising rtktutorialapplication rtkvarianobigeometry rtkvarianprobeamgeometry rtkvectorconjugategradient rtkwangdisplaceddetectorweighting rtkwarpedbackprojectsequence rtkwarpedforwardprojectsequence rtkwaveletsdenoising rtkxradgeometry) endif() endif() if("vtk" IN_LIST FEATURES AND EXISTS "${CURRENT_INSTALLED_DIR}/share/vtk/VTKPython-targets.cmake") # 'vtk[python]' is built using the installed 'python3'. # For 'find_package(vtk)', itk needs to provide the same version of python. # Here, it is a purely *transitive* dependency via 'vtk[python]'. include("${CURRENT_INSTALLED_DIR}/share/python3/vcpkg-port-config.cmake") vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND ADDITIONAL_OPTIONS "-DPython3_EXECUTABLE:PATH=${PYTHON3}" ) endif() if("python" IN_LIST FEATURES) message(STATUS "${PORT} builds a long time (>1h) with python wrappers enabled!") vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND ADDITIONAL_OPTIONS -DITK_WRAP_PYTHON=ON -DITK_USE_SYSTEM_CASTXML=ON "-DCASTXML_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/castxml/bin/castxml${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DPython3_FIND_REGISTRY=NEVER "-DPython3_EXECUTABLE:PATH=${PYTHON3}" # Required by more than one feature ) #ITK_PYTHON_SITE_PACKAGES_SUFFIX should be set to the install dir of the site-packages within vcpkg vcpkg_find_acquire_program(SWIG) # Swig is only required for wrapping! vcpkg_execute_required_process( COMMAND "${SWIG}" -version OUTPUT_VARIABLE swig_version WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "swig-version-${TARGET_TRIPLET}" ) string(REGEX REPLACE ".*Version ([0-9.]*).*" "\\1" swig_version "${swig_version}") set(swig_expected "4.2.0") if(swig_version VERSION_GREATER_EQUAL swig_expected) vcpkg_execute_required_process( COMMAND "${SWIG}" -swiglib OUTPUT_VARIABLE swiglib OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "swiglib-${TARGET_TRIPLET}" ) list(APPEND ADDITIONAL_OPTIONS -DITK_USE_SYSTEM_SWIG=ON "-DSWIG_EXECUTABLE=${SWIG}" "-DSWIG_DIR=${swiglib}" ) else() message(WARNING "Found swig ${swig_version}, but TK needs ${swig_expected}. A binary will be downloaded.") endif() endif() if("opencv" IN_LIST FEATURES) message(STATUS "${PORT} includes the ITKVideoBridgeOpenCV") list(APPEND ADDITIONAL_OPTIONS -DModule_ITKVideoBridgeOpenCV:BOOL=ON ) endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND ADDITIONAL_OPTIONS -DITK_MSVC_STATIC_RUNTIME_LIBRARY=ON ) endif() set(USE_64BITS_IDS OFF) if (VCPKG_TARGET_ARCHITECTURE STREQUAL x64 OR VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(USE_64BITS_IDS ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON -DITK_DOXYGEN_HTML=OFF -DITK_FORBID_DOWNLOADS=ON -DDO_NOT_INSTALL_ITK_TEST_DRIVER=ON -DITK_SKIP_PATH_LENGTH_CHECKS=ON -DITK_INSTALL_DATA_DIR=share/itk/data -DITK_INSTALL_DOC_DIR=share/itk/doc -DITK_INSTALL_PACKAGE_DIR=share/itk -DITK_USE_64BITS_IDS=${USE_64BITS_IDS} -DITK_USE_CONCEPT_CHECKING=ON #-DITK_USE_SYSTEM_LIBRARIES=ON # enables USE_SYSTEM for all third party libraries, some of which do not have vcpkg ports such as CastXML, SWIG, MINC etc -DITK_USE_SYSTEM_DOUBLECONVERSION=ON -DITK_USE_SYSTEM_EXPAT=ON -DITK_USE_SYSTEM_JPEG=ON -DITK_USE_SYSTEM_PNG=ON -DITK_USE_SYSTEM_TIFF=ON -DITK_USE_SYSTEM_ZLIB=ON -DITK_USE_SYSTEM_EIGEN=ON -DITK_USE_SYSTEM_FFTW=ON -DITK_USE_SYSTEM_HDF5=ON # HDF5 was problematic in the past and still is. ITK still has not figured out how to do it correctly! -DITK_USE_SYSTEM_GDCM=ON -DITK_USE_SYSTEM_OpenJPEG=ON # Added by VCPKG -DITK_USE_SYSTEM_VXL=ON #-DITK_USE_SYSTEM_CASTXML=ON # needs to be added to vcpkg_find_acquire_program https://data.kitware.com/api/v1/file/hashsum/sha512/b8b6f0aff11fe89ab2fcd1949cc75f2c2378a7bc408827a004396deb5ff5a9976bffe8a597f8db1b74c886ea39eb905e610dce8f5bd7586a4d6c196d7349da8d/download -DITK_USE_SYSTEM_MINC=ON -DITK_USE_SYSTEM_GOOGLETEST=ON -DEXECUTABLE_OUTPUT_PATH=tools/${PORT} -DITK_MINIMUM_COMPLIANCE_LEVEL:STRING=1 # To Display all remote modules within cmake-gui #-DModule_IOSTL=ON # example how to turn on a non-default module #-DModule_MorphologicalContourInterpolation=ON # example how to turn on a remote module #-DModule_RLEImage=ON # example how to turn on a remote module # Some additional wraping options #-DITK_WRAP_double=ON #-DITK_WRAP_complex_double=ON #-DITK_WRAP_covariant_vector_double=ON #-DITK_WRAP_vector_double=ON ${FEATURE_OPTIONS} ${ADDITIONAL_OPTIONS} OPTIONS_DEBUG -DRTK_BUILD_APPLICATIONS=OFF MAYBE_UNUSED_VARIABLES EXECUTABLE_OUTPUT_PATH ITK_USE_SYSTEM_FFTW ITK_USE_SYSTEM_GOOGLETEST RTK_BUILD_APPLICATIONS RTK_USE_CUDA ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if(TOOL_NAMES) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/ITK-5.4/vcl_where_root_dir.h") if("rtk" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ITK-5.4/rtkConfiguration.h" "#define RTK_BINARY_DIR \"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Modules/Remote/RTK\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ITK-5.4/rtkConfiguration.h" "#define RTK_DATA_ROOT \"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/ExternalData/Modules/Remote/RTK/test\"" "") endif() vcpkg_list(SET file_list "${SOURCE_PATH}/NOTICE" "${SOURCE_PATH}/LICENSE" ) if("cuda" IN_LIST FEATURES) vcpkg_list(APPEND file_list "${SOURCE_PATH}/CudaCommon LICENSE" ) endif() if("rtk" IN_LIST FEATURES) vcpkg_list(APPEND file_list "${SOURCE_PATH}/RTK COPYRIGHT.TXT" ) endif() vcpkg_install_copyright(FILE_LIST ${file_list}) ================================================ FILE: ports/itk/rtk/cmp0153.diff ================================================ diff --git a/cmake/FindGengetopt.cmake b/cmake/FindGengetopt.cmake index b7bbfcc..9011e41 100644 --- a/cmake/FindGengetopt.cmake +++ b/cmake/FindGengetopt.cmake @@ -72,6 +72,7 @@ macro (WRAP_GGO GGO_SRCS) set_source_files_properties(${${GGO_SRCS}} PROPERTIES GENERATED TRUE) if(CMAKE_COMPILER_IS_GNUCXX) find_program(DEFAULT_GCC gcc) + cmake_policy(SET CMP0153 OLD) exec_program(${DEFAULT_GCC} ARGS "-dumpversion" OUTPUT_VARIABLE GCCVER) if("${GCCVER}" VERSION_GREATER "4.5.2") set_source_files_properties(${${GGO_SRCS}} PROPERTIES COMPILE_FLAGS "-Wno-unused-but-set-variable") ================================================ FILE: ports/itk/rtk/getopt-win32.diff ================================================ diff --git a/utilities/gengetopt/CMakeLists.txt b/utilities/gengetopt/CMakeLists.txt index e3f04b2..0f1f1b5 100755 --- a/utilities/gengetopt/CMakeLists.txt +++ b/utilities/gengetopt/CMakeLists.txt @@ -69,3 +69,6 @@ ADD_EXECUTABLE(gengetopt INCLUDE_DIRECTORIES(.) INCLUDE_DIRECTORIES(skels) #INCLUDE_DIRECTORIES(includes) +if(WIN32) + INCLUDE_DIRECTORIES(BEFORE .) # for local getopt.h +endif() ================================================ FILE: ports/itk/use-the-lrintf-intrinsic.patch ================================================ diff --git a/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h b/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h index e75a220d4d..4b13e1726a 100644 --- a/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h +++ b/Modules/ThirdParty/OpenJPEG/src/openjpeg/opj_includes.h @@ -87,8 +87,8 @@ Most compilers implement their own version of this keyword ... #endif #endif -/* MSVC and Borland C do not have lrintf */ -#if defined(_MSC_VER) || defined(__BORLANDC__) +/* MSVC pre 16.8 and Borland C do not have lrintf */ +#if (defined(_MSC_VER) && _MSC_VER < 1928) || defined(__BORLANDC__) /* MSVC 64bits doesn't support _asm */ #if !defined(_WIN64) ================================================ FILE: ports/itk/var_libraries.patch ================================================ diff --git a/CMake/ITKModuleMacros.cmake b/CMake/ITKModuleMacros.cmake index da9f3a902..60420bb0a 100644 --- a/CMake/ITKModuleMacros.cmake +++ b/CMake/ITKModuleMacros.cmake @@ -162,9 +162,6 @@ macro(itk_module_impl) foreach(dep IN LISTS ITK_MODULE_${itk-module}_DEPENDS) list(APPEND ${itk-module}_LIBRARIES "${${dep}_LIBRARIES}") endforeach() - if(${itk-module}_LIBRARIES) - list(REMOVE_DUPLICATES ${itk-module}_LIBRARIES) - endif() endif() if(EXISTS ${${itk-module}_SOURCE_DIR}/include) diff --git a/CMake/ITKModuleAPI.cmake b/CMake/ITKModuleAPI.cmake index af64d96dc..809335e6d 100644 --- a/CMake/ITKModuleAPI.cmake +++ b/CMake/ITKModuleAPI.cmake @@ -133,11 +133,10 @@ macro(itk_module_config ns) endforeach() unset(_${ns}_USED_MODULES) foreach( v - ${ns}_LIBRARIES - ${ns}_INCLUDE_DIRS - ${ns}_LIBRARY_DIRS + ${ns}_INCLUDE_DIRS + ${ns}_LIBRARY_DIRS ${ns}_RUNTIME_LIBRARY_DIRS ${ns}_FACTORY_NAMES ${ns}_FACTORY_LIST) ================================================ FILE: ports/itk/vcpkg.json ================================================ { "name": "itk", "version": "5.4.4", "port-version": 1, "description": "Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.", "homepage": "https://github.com/InsightSoftwareConsortium/ITK", "license": "Apache-2.0", "dependencies": [ "double-conversion", "eigen3", "expat", "gdcm", { "name": "hdf5", "default-features": false, "features": [ "cpp", "hl" ] }, "libjpeg-turbo", "libpng", "minc", { "name": "openjpeg", "default-features": false }, { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vxl", "zlib" ], "features": { "cuda": { "description": "Build CUDA module", "dependencies": [ "cuda", { "name": "itk", "default-features": false, "features": [ "opencl" ] } ] }, "cufftw": { "description": "Use CUDA FFTW", "dependencies": [ "cuda" ] }, "fftw": { "description": "Enable the FFTW backend", "dependencies": [ { "name": "fftw3", "features": [ "threads" ] } ] }, "opencl": { "description": "Use OpenCL", "dependencies": [ "opencl" ] }, "opencv": { "description": "Build ITKVideoBridgeOpenCV module.", "dependencies": [ "opencv" ] }, "python": { "description": "Python functionality for ITK", "dependencies": [ "python3", { "name": "vcpkg-tool-castxml", "host": true } ] }, "rtk": { "description": "Build RTK Module", "supports": "!x86", "license": null }, "tbb": { "description": "Build TBB Module", "dependencies": [ "tbb" ] }, "tools": { "description": "Build RTK with tools", "dependencies": [ { "name": "itk", "default-features": false, "features": [ "rtk" ] } ] }, "vtk": { "description": "Build ITKVtkGlue module.", "dependencies": [ { "name": "vtk", "default-features": false } ] } } } ================================================ FILE: ports/itk/wrapping.patch ================================================ diff --git a/Wrapping/TypedefMacros.cmake b/Wrapping/TypedefMacros.cmake index e6f8d0bf3..6c000dba8 100644 --- a/Wrapping/TypedefMacros.cmake +++ b/Wrapping/TypedefMacros.cmake @@ -62,8 +62,7 @@ macro(itk_wrap_module library_name) # WRAPPER_LIBRARY_LINK_LIBRARIES. List of other libraries that should # be linked to the wrapper library. - set(WRAPPER_LIBRARY_LINK_LIBRARIES ${ITK_LIBRARIES} ${${itk-module}_LIBRARIES}) - + set(WRAPPER_LIBRARY_LINK_LIBRARIES ${ITK_LIBRARIES} ${${library_name}_LIBRARIES}) # WRAPPER_SUBMODULE_ORDER. List of *.wrap submodules in the source dir # that should be included/wrapped before the rest in the given order. # Just the submodule group name is needed, not the full path or file name. ================================================ FILE: ports/itlib/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO iboB/itlib REF "v${VERSION}" SHA512 30137dffdbb9f708ca8e04c0d04e7af7f4d640cd9cd72ee99a40ca81d3f243c5bc1574aa4ab3cdb6eee8b1f11ada5787ac66aa08cc30e9de0d569d6d43d4cfd4 HEAD_REF master ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/include/itlib" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/itlib/vcpkg.json ================================================ { "name": "itlib", "version": "1.12.1", "description": "A collection of std-like single-header C++ libraries.", "homepage": "https://github.com/iboB/itlib", "license": "MIT" } ================================================ FILE: ports/itpp/fix-build.patch ================================================ diff --git a/itpp/base/mat.cpp b/itpp/base/mat.cpp index 9f2a20e..11b0a58 100644 --- a/itpp/base/mat.cpp +++ b/itpp/base/mat.cpp @@ -173,8 +173,7 @@ cmat operator*(const cmat &m1, const cmat &m2) template<> mat operator*(const mat &m1, const mat &m2) { - it_assert_debug(m1.rows() == m2.cols(), - "Mat<>::operator*(): Wrong sizes"); + it_assert_debug(m1.cols() == m2.rows(), "cmat::operator*(): Wrong sizes"); mat r(m1.rows(), m2.cols()); double *tr = r._data(); const double *t1; ================================================ FILE: ports/itpp/fix-linux.patch ================================================ diff --git a/itpp/base/random_dsfmt.h b/itpp/base/random_dsfmt.h index ccbf182..de819fb 100644 --- a/itpp/base/random_dsfmt.h +++ b/itpp/base/random_dsfmt.h @@ -299,7 +299,12 @@ private: */ static void do_recursion(typename Context::w128_t *r, typename Context::w128_t *a, typename Context::w128_t *b, typename Context::w128_t *lung) { #if defined(__SSE2__) + +#ifdef __linux__ +#define SSE2_SHUFF 0x1bU +#else const unsigned int SSE2_SHUFF = 0x1bU; +#endif __m128i x = a->si; __m128i z = _mm_slli_epi64(x, SL1); ================================================ FILE: ports/itpp/fix-uwp.patch ================================================ diff --git a/itpp/base/timing.cpp b/itpp/base/timing.cpp index 58178e4..6b173d0 100644 --- a/itpp/base/timing.cpp +++ b/itpp/base/timing.cpp @@ -52,6 +52,10 @@ #if defined(_WIN32) && !defined(__CYGWIN__) #include +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#include +#endif + int gettimeofday(struct timeval* p, void*) { union { ================================================ FILE: ports/itpp/msvc2013.patch ================================================ CMakeLists.txt | 2 ++ itpp/base/algebra/eigen.cpp | 1 + itpp/base/algebra/ls_solve.cpp | 2 +- itpp/base/algebra/qr.cpp | 1 + itpp/base/algebra/svd.cpp | 2 +- itpp/base/bessel/gamma.cpp | 5 +++++ itpp/base/itcompat.cpp | 11 ++++++++++- itpp/base/itcompat.h | 14 ++++++++++++-- itpp/base/matfunc.h | 1 + itpp/base/svec.h | 1 + itpp/comm/siso_dem.cpp | 6 ++++++ itpp/comm/siso_eq.cpp | 6 ++++++ itpp/comm/siso_mud.cpp | 7 +++++++ itpp/comm/siso_nsc.cpp | 6 ++++++ itpp/comm/siso_rsc.cpp | 7 +++++++ 15 files changed, 67 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f6a9a6..2360f86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,9 @@ CHECK_CXX_SYMBOL_EXISTS ( isnan "cmath" HAVE_DECL_ISNAN ) CHECK_CXX_SYMBOL_EXISTS ( signgam "cmath" HAVE_DECL_SIGNGAM ) #check for functions +if( NOT MSVC ) set(CMAKE_REQUIRED_LIBRARIES m) +endif() include (CheckFunctionExists) CHECK_FUNCTION_EXISTS ( acosh HAVE_ACOSH ) CHECK_FUNCTION_EXISTS ( asinh HAVE_ASINH ) diff --git a/itpp/base/algebra/eigen.cpp b/itpp/base/algebra/eigen.cpp index 8c0c36b..54ae3e1 100644 --- a/itpp/base/algebra/eigen.cpp +++ b/itpp/base/algebra/eigen.cpp @@ -39,6 +39,7 @@ #include #include +#include namespace itpp { diff --git a/itpp/base/algebra/ls_solve.cpp b/itpp/base/algebra/ls_solve.cpp index dae38fc..95abf0a 100644 --- a/itpp/base/algebra/ls_solve.cpp +++ b/itpp/base/algebra/ls_solve.cpp @@ -37,7 +37,7 @@ #endif #include - +#include namespace itpp { diff --git a/itpp/base/algebra/qr.cpp b/itpp/base/algebra/qr.cpp index 91dfb2b..0b47294 100644 --- a/itpp/base/algebra/qr.cpp +++ b/itpp/base/algebra/qr.cpp @@ -39,6 +39,7 @@ #include #include +#include namespace itpp { diff --git a/itpp/base/algebra/svd.cpp b/itpp/base/algebra/svd.cpp index aa21e36..b2e499c 100644 --- a/itpp/base/algebra/svd.cpp +++ b/itpp/base/algebra/svd.cpp @@ -37,7 +37,7 @@ #endif #include - +#include namespace itpp { diff --git a/itpp/base/bessel/gamma.cpp b/itpp/base/bessel/gamma.cpp index 162c4ae..9405507 100644 --- a/itpp/base/bessel/gamma.cpp +++ b/itpp/base/bessel/gamma.cpp @@ -34,6 +34,11 @@ #include #include +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#pragma warning(disable: 4756) +#endif /* * Gamma function diff --git a/itpp/base/itcompat.cpp b/itpp/base/itcompat.cpp index f99ec81..aa34b28 100644 --- a/itpp/base/itcompat.cpp +++ b/itpp/base/itcompat.cpp @@ -47,12 +47,21 @@ double tgamma(double x) } #endif -#if !defined(HAVE_LGAMMA) || (HAVE_DECL_SIGNGAM != 1) +#if !defined(HAVE_LGAMMA) && (HAVE_DECL_SIGNGAM != 1) // The sign of the Gamma function is returned in the external integer // signgam declared in . It is 1 when the Gamma function is positive // or zero, -1 when it is negative. However, MinGW definition of lgamma() // function does not use the global signgam variable. +//May 3rd 2015 (Andy Panov): +//Nonetheless, I guess it would be smarter not to break the ODR rule and not to provide our own definition of lgamma +//function when HAVE_LGAMMA is defined. If we still provide the definition, two definitions +//of the same function will exist in the program (this is undefined behaviour, as C++ standard says), +//so we can not ensure linker will choose our definition and user's code will work as expected. +//I guess, error message from linker regarding the unresolved symbol is much better option, +//since it clearly points to the math library limitations. Otherwise user can get a malfunctioning program +//with really subtle error. int signgam; + // Logarithm of an absolute value of gamma function double lgamma(double x) { diff --git a/itpp/base/itcompat.h b/itpp/base/itcompat.h index e6be223..dcf2ed7 100644 --- a/itpp/base/itcompat.h +++ b/itpp/base/itcompat.h @@ -41,8 +41,12 @@ #if defined(_MSC_VER) # include # define finite(x) _finite(x) +#ifndef HAVE_STD_ISFINITE # define isfinite(x) _finite(x) +#endif +#ifndef HAVE_STD_ISNAN # define isnan(x) _isnan(x) +#endif # define fpclass(x) _fpclass(x) # define FP_NINF _FPCLASS_NINF # define FP_PINF _FPCLASS_PINF @@ -119,13 +123,19 @@ inline bool isfinite(double x) double tgamma(double x); #endif -#if !defined(HAVE_LGAMMA) || (HAVE_DECL_SIGNGAM != 1) +#if !defined(HAVE_LGAMMA) && (HAVE_DECL_SIGNGAM != 1) +//Provide own definitions if both conditions are met: +//-lgammma is not defined +//-signgam was not found +//See ODR desicussion in itcompat.cpp + //! Lograrithm of an absolute gamma function double lgamma(double x); //! Global variable needed by \c lgamma function extern int signgam; #endif + #ifndef HAVE_CBRT //! Cubic root double cbrt(double x); @@ -141,7 +151,7 @@ inline double log1p(double x) { return std::log(1.0 + x); } //! Base-2 logarithm inline double log2(double x) { - static const double one_over_log2 = 1.0 / std::log(2.0); + const double one_over_log2 = 1.0 / std::log(2.0); return std::log(x) * one_over_log2; } #endif diff --git a/itpp/base/matfunc.h b/itpp/base/matfunc.h index 8ae683e..60cf95f 100644 --- a/itpp/base/matfunc.h +++ b/itpp/base/matfunc.h @@ -36,6 +36,7 @@ #include #include #include +#include namespace itpp { diff --git a/itpp/base/svec.h b/itpp/base/svec.h index d105b2f..3a2c15b 100644 --- a/itpp/base/svec.h +++ b/itpp/base/svec.h @@ -33,6 +33,7 @@ #include #include #include +#include namespace itpp { diff --git a/itpp/comm/siso_dem.cpp b/itpp/comm/siso_dem.cpp index 666f38c..4fa03fd 100644 --- a/itpp/comm/siso_dem.cpp +++ b/itpp/comm/siso_dem.cpp @@ -32,6 +32,12 @@ #define INFINITY std::numeric_limits::infinity() #endif +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#endif + + namespace itpp { void SISO::find_half_const(int &select_half, itpp::vec &re_part, itpp::bmat &re_bin_part, itpp::vec &im_part, itpp::bmat &im_bin_part) diff --git a/itpp/comm/siso_eq.cpp b/itpp/comm/siso_eq.cpp index 856c01a..6553b33 100644 --- a/itpp/comm/siso_eq.cpp +++ b/itpp/comm/siso_eq.cpp @@ -32,6 +32,12 @@ #define INFINITY std::numeric_limits::infinity() #endif +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#pragma warning(disable: 4756) +#endif + namespace itpp { void SISO::gen_chtrellis(void) diff --git a/itpp/comm/siso_mud.cpp b/itpp/comm/siso_mud.cpp index 60aa6d3..a7ff735 100644 --- a/itpp/comm/siso_mud.cpp +++ b/itpp/comm/siso_mud.cpp @@ -32,6 +32,13 @@ #define INFINITY std::numeric_limits::infinity() #endif +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#pragma warning(disable: 4756) +#endif + + namespace itpp { void SISO::descrambler(itpp::vec &extrinsic_coded, itpp::vec &extrinsic_data, const itpp::vec &intrinsic_coded, const itpp::vec &apriori_data) diff --git a/itpp/comm/siso_nsc.cpp b/itpp/comm/siso_nsc.cpp index ca7d19a..12ca62a 100644 --- a/itpp/comm/siso_nsc.cpp +++ b/itpp/comm/siso_nsc.cpp @@ -33,6 +33,12 @@ #define INFINITY std::numeric_limits::infinity() #endif +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#pragma warning(disable: 4756) +#endif + namespace itpp { void SISO::gen_nsctrellis(void) diff --git a/itpp/comm/siso_rsc.cpp b/itpp/comm/siso_rsc.cpp index e5003c7..9e3eea1 100644 --- a/itpp/comm/siso_rsc.cpp +++ b/itpp/comm/siso_rsc.cpp @@ -29,6 +29,13 @@ #include #include #include + +#if _MSC_VER +//suppress warnings regarding the use infinity in fp arithmetic +#pragma warning(disable: 4056) +#pragma warning(disable: 4756) +#endif + #ifndef INFINITY #define INFINITY std::numeric_limits::infinity() #endif #Remove this patch if the source has fixed these issues. ================================================ FILE: ports/itpp/portfile.cmake ================================================ set(ITPP_VERSION 4.3.1) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO itpp/itpp REF ${ITPP_VERSION} FILENAME "itpp-${ITPP_VERSION}.tar.bz2" SHA512 b46d048fa7f33e80d2291a5e38e205c159791ea200f92c70d69e8ad8447ac2f0c847fece566a99af739853a1643cb16e226b4200c8bf115417f324e6d38c66bd PATCHES msvc2013.patch fix-uwp.patch fix-linux.patch rename-version.patch fix-build.patch ) file(RENAME "${SOURCE_PATH}/VERSION" "${SOURCE_PATH}/VERSION.txt") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 # C++17 does not allow 'register' -DCMAKE_DISABLE_FIND_PACKAGE_LAPACK=ON -DCMAKE_DISABLE_FIND_PACKAGE_FFT=ON -DCMAKE_DISABLE_FIND_PACKAGE_BLAS=ON ) vcpkg_cmake_install() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/itpp/rename-version.patch ================================================ --- a/autogen.sh +++ b/autogen.sh @@ -25,6 +25,6 @@ -PV=$(cat VERSION | cut -d' ' -f1) -LV=$(cat VERSION | cut -d' ' -f2) -if test "x$(cat VERSION | cut -d' ' -f3)" = "xsvn"; then +PV=$(cat VERSION.txt | cut -d' ' -f1) +LV=$(cat VERSION.txt | cut -d' ' -f2) +if test "x$(cat VERSION.txt | cut -d' ' -f3)" = "xsvn"; then if test -d ".git/svn"; then REV=$(LC_ALL=C git svn find-rev HEAD) ================================================ FILE: ports/itpp/vcpkg.json ================================================ { "name": "itpp", "version-semver": "4.3.1", "port-version": 13, "description": "IT++ is a C++ library of mathematical, signal processing and communication classes and functions. Its main use is in simulation of communication systems and for performing research in the area of communications.", "homepage": "https://itpp.sourceforge.net", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/itsy-bitsy/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c7b2e2a..9219be1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,8 @@ project(itsy.bitsy DESCRIPTION "Standard bit utilities to supplement the C and C++ standard libraries." LANGUAGES C CXX) +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) # # Pre-dependencies # this is for all the deps we may or may not need before-hand to make things right if(ITSY_BITSY_READTHEDOCS) @@ -100,10 +102,7 @@ option(ITSY_BITSY_EXAMPLES "Enable build of examples" OFF) # # Dependencies # ztd.idk -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) +find_package(ztd.idk CONFIG REQUIRED) # # itsy.bitsy Target # Build Target @@ -136,6 +135,10 @@ export(TARGETS itsy.bitsy FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/itsy.bitsy-tar install(TARGETS itsy.bitsy EXPORT itsy.bitsy) +install(EXPORT itsy.bitsy + FILE itsy.bitsy-targets.cmake + DESTINATION lib/cmake/itsy.bitsy +) install(DIRECTORY include/itsy DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/cmake/itsy.bitsy-config.cmake.in b/cmake/itsy.bitsy-config.cmake.in index 9f87935..6e18425 100644 --- a/cmake/itsy.bitsy-config.cmake.in +++ b/cmake/itsy.bitsy-config.cmake.in @@ -9,10 +9,13 @@ # See https://github.com/ThePhD/itsy_bitsy#using-the-library for documentation. @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(ztd.idk CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/itsy.bitsy-targets.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/sol2-targets.cmake") MESSAGE(STATUS ${CMAKE_CURRENT_LIST_DIR}) +add_library(itsy::bitsy ALIAS itsy.bitsy) if (TARGET sol2) get_target_property(SOL2_INCLUDE_DIRS ================================================ FILE: ports/itsy-bitsy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ThePhD/itsy_bitsy REF d5b6bf9509bb2dff6235452d427f0b1c349d5f8b SHA512 06489e46ad55a7fa55ddf88290509b157cf53518a8d9532d5a56e9907e5efaa298cb8946807e497461d322f62b4bad9b16864ef0def527edc8503f7a7884b8e1 HEAD_REF main PATCHES fix-cmake-install.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DITSY_BITSY_SINGLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME itsy.bitsy CONFIG_PATH "lib/cmake/itsy.bitsy") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/itsy-bitsy/vcpkg.json ================================================ { "name": "itsy-bitsy", "version-date": "2022-08-02", "description": "Bit containers, sequences, and views for everyone. ", "homepage": "https://github.com/ThePhD/itsy_bitsy", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "ztd-idk" ] } ================================================ FILE: ports/ixwebsocket/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO machinezone/IXWebSocket REF "v${VERSION}" SHA512 de43c240282e34b905444f84eb5825f55e6f4d68dc9c3937318233a3916d1bb6934fb5bbbe9485c6e181e14c968189559b6837447d8f66ccd73d24634f7749d1 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl USE_OPEN_SSL mbedtls USE_MBED_TLS sectransp USE_SECURE_TRANSPORT ) string(COMPARE NOTEQUAL "${FEATURES}" "core" USE_TLS) list(REMOVE_ITEM FEATURES "ssl") list(LENGTH FEATURES num_features) if(num_features GREATER "2") message(FATAL_ERROR "Can not select multiple ssl backends at the same time. Disable default features to disable the default ssl backend.") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUSE_TLS=${USE_TLS} MAYBE_UNUSED_VARIABLES USE_SECURE_TRANSPORT USE_MBED_TLS USE_OPEN_SSL ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ixwebsocket) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/ixwebsocket/vcpkg.json ================================================ { "name": "ixwebsocket", "version-semver": "11.4.6", "description": "Lightweight WebSocket Client and Server + HTTP Client and Server", "homepage": "https://github.com/machinezone/IXWebSocket", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "ssl" ], "features": { "mbedtls": { "description": "SSL support (mbedTLS)", "dependencies": [ "mbedtls" ] }, "openssl": { "description": "SSL support (OpenSSL)", "supports": "!uwp", "dependencies": [ "openssl" ] }, "sectransp": { "description": "SSL support (sectransp)", "supports": "osx | ios" }, "ssl": { "description": "Default SSL backend", "dependencies": [ { "name": "ixwebsocket", "features": [ "mbedtls" ], "platform": "windows" }, { "name": "ixwebsocket", "features": [ "sectransp" ], "platform": "osx | ios" }, { "name": "ixwebsocket", "features": [ "mbedtls" ], "platform": "windows & uwp" }, { "name": "ixwebsocket", "features": [ "openssl" ], "platform": "!uwp & !windows & !osx & !ios" } ] } } } ================================================ FILE: ports/jack2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.1) project(jack VERSION 1.9 LANGUAGES C) include_directories(common) add_library(jack common/JackWeakAPI.c) if(WIN32 AND BUILD_SHARED_LIBS) target_sources(jack PRIVATE jack.def) endif() target_link_libraries(jack PRIVATE ${CMAKE_DL_LIBS}) include(GNUInstallDirs) install(TARGETS jack ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) set(PREFIX "${CMAKE_INSTALL_PREFIX}") set(LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") set(INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") set(JACK_VERSION "${CMAKE_PROJECT_VERSION}") # JackWeak dynamically loads the real JACK library which requires linking CMAKE_DL_LIBS if(CMAKE_DL_LIBS) set(CLIENTLIB "jack -l${CMAKE_DL_LIBS}") else() set(CLIENTLIB "jack") endif() # NOTE: the server_libs variable will be broken but this port does not build the server anyway configure_file(jack.pc.in "${CMAKE_CURRENT_BINARY_DIR}/jack.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/jack.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(DIRECTORY "common/jack" DESTINATION "include") ================================================ FILE: ports/jack2/jack.def ================================================ LIBRARY JACK EXPORTS ;FIXME these are unimplemented ;jack_port_uuid ;jack_get_cycle_times jack_get_version jack_get_version_string jack_client_open jack_client_new jack_client_close jack_client_name_size jack_get_client_name jack_get_uuid_for_client_name jack_get_client_name_by_uuid jack_internal_client_new jack_internal_client_close jack_activate jack_deactivate jack_client_thread_id jack_is_realtime jack_thread_wait jack_cycle_wait jack_cycle_signal jack_set_process_thread jack_set_thread_init_callback jack_on_shutdown jack_on_info_shutdown jack_set_process_callback jack_set_freewheel_callback jack_set_buffer_size_callback jack_set_sample_rate_callback jack_set_client_registration_callback jack_set_port_registration_callback jack_set_port_connect_callback jack_set_port_rename_callback jack_set_graph_order_callback jack_set_xrun_callback jack_set_latency_callback jack_set_freewheel jack_set_buffer_size jack_get_sample_rate jack_get_buffer_size jack_engine_takeover_timebase jack_cpu_load jack_port_register jack_port_unregister jack_port_get_buffer jack_port_name jack_port_short_name jack_port_flags jack_port_type jack_port_type_id jack_port_is_mine jack_port_connected jack_port_connected_to jack_port_get_connections jack_port_get_all_connections jack_port_tie jack_port_untie jack_port_set_name jack_port_rename jack_port_set_alias jack_port_unset_alias jack_port_get_aliases jack_port_request_monitor jack_port_request_monitor_by_name jack_port_ensure_monitor jack_port_monitoring_input jack_connect jack_disconnect jack_port_disconnect jack_port_name_size jack_port_type_size jack_port_type_get_buffer_size jack_port_set_latency jack_port_get_latency_range jack_port_set_latency_range jack_recompute_total_latencies jack_port_get_latency jack_port_get_total_latency jack_recompute_total_latency jack_get_ports jack_port_by_name jack_port_by_id jack_frames_since_cycle_start jack_frame_time jack_last_frame_time jack_frames_to_time jack_time_to_frames jack_get_time jack_set_error_function jack_set_info_function jack_free jack_midi_get_event_count jack_midi_event_get jack_midi_clear_buffer jack_midi_max_event_size jack_midi_event_reserve jack_midi_event_write jack_midi_get_lost_event_count ================================================ FILE: ports/jack2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jackaudio/jack2 REF "v${VERSION}" SHA512 d93cb2bcc57b72b6815eed143de1092d14fe22542ae9a1f8480d9ed5f44b59c50f81279d18bdd84ff6276ddd71ca1aa64a1e46d61199a5eda0d873a356194ab4 HEAD_REF master ) # Install headers and a shim library with JackWeakAPI.c file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/jack.def" DESTINATION "${SOURCE_PATH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/jack2/vcpkg.json ================================================ { "name": "jack2", "version-semver": "1.9.22", "description": "Cross-platform API that enables device sharing and inter-application audio routing", "homepage": "https://jackaudio.org/", "license": "GPL-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jaeger-client-cpp/fix-CMakeLists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 53e4598..4220910 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,7 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND endif() hunter_add_package(thrift) -find_package(thrift ${hunter_config} REQUIRED) +find_package(Thrift CONFIG REQUIRED) if(HUNTER_ENABLED) list(APPEND LIBS thrift::thrift_static) else() @@ -74,7 +74,7 @@ hunter_add_package(opentracing-cpp) # OpenTracingConfig.cmake file find_package(OpenTracing CONFIG REQUIRED) # Under Windows, link dynamically with OpenTracing -if (WIN32) +if (TARGET OpenTracing::opentracing) list(APPEND LIBS OpenTracing::opentracing) set(OPENTRACING_LIB OpenTracing::opentracing) else() @@ -273,6 +273,9 @@ if(JAEGERTRACING_PLUGIN) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/export.map "{ global: OpenTracingMakeTracerFactory; local: *; };") add_library(jaegertracing_plugin MODULE ${SRC}) + if (WIN32) + target_link_libraries(jaegertracing_plugin PUBLIC Iphlpapi Ws2_32) + endif() add_lib_deps(jaegertracing_plugin) target_link_libraries(jaegertracing_plugin PUBLIC -static-libgcc @@ -418,7 +421,7 @@ include(GNUInstallDirs) # * /lib*/cmake/ # * /lib*/ # * /include/ -set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") +set(config_install_dir "${CMAKE_INSTALL_DATAROOTDIR}/jaeger-client-cpp") set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") ================================================ FILE: ports/jaeger-client-cpp/portfile.cmake ================================================ # Get jaeger-idl from github vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jaegertracing/jaeger-idl REF b9acaab7b20fd4f984225657ffe272799ebdfefb #commit on 2021-08-04 SHA512 d136e68e54f39779a48b1c5bc61f81dc06b312120dc8d3788a9c360f89aa924ca4cc074c6515743a930982637f9fca94299000a4b2dca1f9c243d8d9d1c62de2 HEAD_REF master ) # Create target directory for proxy/stub generation file(MAKE_DIRECTORY "${SOURCE_PATH}/data") # List of input files set(THRIFT_SOURCE_FILES agent.thrift jaeger.thrift sampling.thrift zipkincore.thrift crossdock/tracetest.thrift baggage.thrift dependency.thrift aggregation_validator.thrift) # Generate proxy/stubs for the input files foreach(THRIFT_SOURCE_FILE IN LISTS THRIFT_SOURCE_FILES) vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/tools/thrift/thrift" --gen cpp:no_skeleton -o "${SOURCE_PATH}/data" ${THRIFT_SOURCE_FILE} WORKING_DIRECTORY "${SOURCE_PATH}/thrift" LOGNAME jaeger-idl-${TARGET_TRIPLET} ) endforeach() # Save generated proxy/stub target directory set(IDL_SOURCE_DIR "${SOURCE_PATH}/data/gen-cpp") # Get jaeger-client-cpp from github vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jaegertracing/jaeger-client-cpp REF 277fdd75e413c914bff04d510afafc7f0811a31a #v0.7.0 SHA512 5112bda5ec24621044bbcd5393922564de70f4d696b1d4248e889dd3d49e492155bfc88626fea214ce4e4cb50e9a49ea031ddb8efbaafc6f1753a586db534a50 HEAD_REF master PATCHES fix-CMakeLists.patch ) # Do not use hunter, not testtools and build opentracing plugin vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHUNTER_ENABLED=0 -DBUILD_TESTING=0 -DJAEGERTRACING_PLUGIN=0 -DJAEGERTRACING_BUILD_EXAMPLES=0 ) # Copy generated files over to jaeger-client-cpp file(GLOB IDL_SOURCE_FILES LIST_DIRECTORIES false "${IDL_SOURCE_DIR}/*") file(COPY ${IDL_SOURCE_FILES} DESTINATION "${SOURCE_PATH}/src/jaegertracing/thrift-gen") # Generate Jaeger client vcpkg_cmake_install() vcpkg_cmake_config_fixup() # Cleanup unused Debug files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Cleanup file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/jaegertracing/testutils") ================================================ FILE: ports/jaeger-client-cpp/vcpkg.json ================================================ { "name": "jaeger-client-cpp", "version-semver": "0.7.0", "port-version": 2, "description": "C++ OpenTracing binding for Jaeger https://jaegertracing.io/", "homepage": "https://github.com/jaegertracing/jaeger-client-cpp", "supports": "!arm64", "dependencies": [ "nlohmann-json", "opentracing", "thrift", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "yaml-cpp" ] } ================================================ FILE: ports/jansson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO akheron/jansson REF v${VERSION} SHA512 99cecde543107c5a3f602fde0bb4ac9082dc6df307f6b1ca65c38921ada02861a19d43a5a8482379f125a20a933634f458046039b15e492ea63823341091ff9a HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" JANSSON_STATIC_CRT) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" JANSSON_BUILD_SHARED_LIBS) # Jansson tries to random-seed its hash table with system-provided entropy. # This is not ported to UWP yet. if(VCPKG_TARGET_IS_UWP) set(USE_WINDOWS_CRYPTOAPI OFF) else() set(USE_WINDOWS_CRYPTOAPI ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJANSSON_STATIC_CRT=${JANSSON_STATIC_CRT} -DJANSSON_EXAMPLES=OFF -DJANSSON_WITHOUT_TESTS=ON -DJANSSON_BUILD_DOCS=OFF -DJANSSON_BUILD_SHARED_LIBS=${JANSSON_BUILD_SHARED_LIBS} -DUSE_WINDOWS_CRYPTOAPI=${USE_WINDOWS_CRYPTOAPI} -DJANSSON_INSTALL_CMAKE_DIR:STRING=share/jansson ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jansson/vcpkg.json ================================================ { "name": "jansson", "version": "2.15.0", "description": "Jansson is a C library for encoding, decoding and manipulating JSON data", "homepage": "https://github.com/akheron/jansson", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jasper/check-for-atomics-support.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d2e9f9..110c245 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -591,6 +591,7 @@ set(JAS_HAVE_WIN32_THREADS FALSE) if(JAS_ENABLE_MULTITHREADING_SUPPORT) check_c_source_compiles(" #include + #include int main() { thrd_t thread; mtx_t mutex; ================================================ FILE: ports/jasper/fix-library-name.patch ================================================ diff --git a/build/pkgconfig/jasper.pc.in b/build/pkgconfig/jasper.pc.in index a4ce38f..a9a7bc4 100644 --- a/build/pkgconfig/jasper.pc.in +++ b/build/pkgconfig/jasper.pc.in @@ -6,7 +6,7 @@ Name: JasPer Description: Image Processing/Coding Tool Kit with JPEG-2000 Support Version: @JAS_VERSION@ -Libs: -L${libdir} -ljasper +Libs: -L${libdir} -ljasper@CMAKE_DEBUG_POSTFIX@ Requires.private: @JAS_PKGCONFIG_REQUIRES@ Cflags: -I${includedir}/jasper -I${includedir} Cflags.private: -DLIBJASPER_STATIC_DEFINE ================================================ FILE: ports/jasper/no_stdc_check.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ba6f117..8d2e9f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -424,7 +424,7 @@ if((DEFINED JAS_CROSSCOMPILING AND JAS_CROSSCOMPILING) OR # (e.g., using -DJAS_STDC_VERSION=YYYYMML) or by changing the line below. if(NOT JAS_WASM) set(JAS_STDC_VERSION "0L" CACHE INTERNAL "The value of __STDC_VERSION__.") - if (JAS_STDC_VERSION STREQUAL "0L") + if (0) message(FATAL_ERROR "The value of __STDC_VERSION__ cannot be automatically determined " "when cross-compiling. Please set JAS_STDC_VERSION to the value " @@ -434,8 +434,9 @@ if(NOT JAS_WASM) endif() endif() else() - jas_get_stdc_version(status JAS_STDC_VERSION) - if(NOT status) + #jas_get_stdc_version(status JAS_STDC_VERSION) + set(JAS_STDC_VERSION 0L) + if(0) message(FATAL_ERROR "Cannot determine the value of __STDC_VERSION__.") endif() endif() ================================================ FILE: ports/jasper/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jasper-software/jasper REF "version-${VERSION}" SHA512 5c74521150f49a1055b909e01629ced3b97f222d0d81b0f5b42dcca4915fff11a11e247cc1ec37bcb669b819812892c950ec980275cbebe9897a2aec8b52ab3d HEAD_REF master PATCHES no_stdc_check.patch fix-library-name.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}") set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" JAS_ENABLE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DJAS_ENABLE_LIBHEIF=OFF # found via find_library instead of find_package -DJAS_ENABLE_LIBJPEG=ON -DJAS_ENABLE_DOC=OFF -DJAS_ENABLE_LATEX=OFF -DJAS_ENABLE_OPENGL=OFF # only used by programs, which are turned off -DJAS_ENABLE_PROGRAMS=OFF -DJAS_ENABLE_SHARED=${JAS_ENABLE_SHARED} OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d # Due to CMakes FindJasper; Default for multi config generators. ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share") vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE.txt) ================================================ FILE: ports/jasper/vcpkg.json ================================================ { "name": "jasper", "version": "4.2.9", "description": "Open source implementation of the JPEG-2000 Part-1 standard", "homepage": "https://github.com/jasper-software/jasper", "license": null, "dependencies": [ "libjpeg-turbo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jbcoe-value-types/fix-install.patch ================================================ diff --git i/CMakeLists.txt w/CMakeLists.txt index ca05777..c47bce3 100644 --- i/CMakeLists.txt +++ w/CMakeLists.txt @@ -144,10 +144,6 @@ xyz_add_object_library( if (${XYZ_VALUE_TYPES_IS_NOT_SUBPROJECT}) - add_subdirectory(benchmarks) - add_subdirectory(compile_checks) - add_subdirectory(exploration) - if (${BUILD_TESTING}) FetchContent_Declare( googletest ================================================ FILE: ports/jbcoe-value-types/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jbcoe/value_types REF 6f50aff4d406f35dd427654184ea20263712ccfe #v1.0.1 SHA512 97c200314313d2a76503fbe046d210e4402a8436abdaadb894f0d0f0207489f0347952ee9afb1fa3b82b97fce22fa67567298f956ce9ef80a56f8393fa002bfe HEAD_REF main PATCHES fix-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DENABLE_SANITIZERS=OFF -DENABLE_CODE_COVERAGE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME xyz_value_types CONFIG_PATH lib/cmake/xyz_value_types) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jbcoe-value-types/vcpkg.json ================================================ { "name": "jbcoe-value-types", "version": "1.0.1", "description": "Value-type for composite class design for C++26 (reference implementation of std::indirect and std::polymorphic from p3019r14)", "homepage": "https://github.com/jbcoe/value_types", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jbig2dec/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(jbig2dec C) set(CMAKE_DEBUG_POSTFIX d) file(GLOB SOURCES jbig2*.c) list(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/jbig2dec.c" "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_png.c" "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_pbm.c" ) add_library(jbig2dec ${SOURCES}) install(TARGETS jbig2dec RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES jbig2.h DESTINATION include) endif() ================================================ FILE: ports/jbig2dec/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArtifexSoftware/jbig2dec REF "${VERSION}" SHA512 8b8a28b93b23e4284ca229e6c8935fd161ce5c597f7470a46ec06a3241d0ac23cf921aecdd4e0c1bd3c904591409054236f2ce25b6d8ae40db742559c7f4dbe9 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=1 ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jbig2dec/vcpkg.json ================================================ { "name": "jbig2dec", "version": "0.20", "description": "a decoder library and example utility implementing the JBIG2 bi-level image compression spec. Also known as ITU T.88 and ISO IEC 14492, and included by reference in Adobe's PDF version 1.4 and later.", "homepage": "https://github.com/ArtifexSoftware/jbig2dec", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/jbigkit/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) project(libjbig C) set(SOURCES "libjbig/jbig.c" "libjbig/jbig_ar.c" "libjbig/jbig85.c") set(HEADERS "libjbig/jbig.h" "libjbig/jbig_ar.h" "libjbig/jbig85.h" ) add_library(libjbig ${SOURCES}) install( TARGETS libjbig RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( FILES ${HEADERS} DESTINATION include) ================================================ FILE: ports/jbigkit/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(JBIGKIT_VERSION 2.1) set(JBIGKIT_HASH c4127480470ef90db1ef3bd2caa444df10b50ed8df0bc9997db7612cb48b49278baf44965028f1807a21028eb965d677e015466306b44683c4ec75a23e1922cf) vcpkg_download_distfile(ARCHIVE URLS "http://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-${JBIGKIT_VERSION}.tar.gz" FILENAME "jbigkit-${JBIGKIT_VERSION}.tar.gz" SHA512 ${JBIGKIT_HASH} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jbigkit/vcpkg.json ================================================ { "name": "jbigkit", "version": "2.1", "port-version": 7, "description": "A software implementation of the JBIG1 data compression standard (ITU-T T.82)", "homepage": "https://www.cl.cam.ac.uk/~mgk25/jbigkit", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/jemalloc/fix-configure-ac.patch ================================================ diff --git a/configure.ac b/configure.ac index f6d25f334..3115504e2 100644 --- a/configure.ac +++ b/configure.ac @@ -1592,7 +1592,7 @@ fi [enable_uaf_detection="0"] ) if test "x$enable_uaf_detection" = "x1" ; then - AC_DEFINE([JEMALLOC_UAF_DETECTION], [ ]) + AC_DEFINE([JEMALLOC_UAF_DETECTION], [ ], ["enable UAF"]) fi AC_SUBST([enable_uaf_detection]) ================================================ FILE: ports/jemalloc/fix-host-use-libc.patch ================================================ diff --git a/include/jemalloc/jemalloc_macros.h.in b/include/jemalloc/jemalloc_macros.h.in index ebb3137..05d996b 100644 --- a/include/jemalloc/jemalloc_macros.h.in +++ b/include/jemalloc/jemalloc_macros.h.in @@ -142,7 +142,7 @@ # define JEMALLOC_COLD #endif -#if (defined(__APPLE__) || defined(__FreeBSD__)) && !defined(JEMALLOC_NO_RENAME) +#if (defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || (defined(__linux__) && !defined(__GLIBC__))) && !defined(JEMALLOC_NO_RENAME) # define JEMALLOC_SYS_NOTHROW #else # define JEMALLOC_SYS_NOTHROW JEMALLOC_NOTHROW ================================================ FILE: ports/jemalloc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jemalloc/jemalloc REF 54eaed1d8b56b1aa528be3bdd1877e59c56fa90c SHA512 527bfbf5db9a5c2b7b04df4785b6ae9d445cff8cb17298bf3e550c88890d2bd7953642d8efaa417580610508279b527d3a3b9e227d17394fd2013c88cb7ae75a HEAD_REF master PATCHES fix-configure-ac.patch preprocessor.patch fix-host-use-libc.patch # https://github.com/jemalloc/jemalloc/commit/45249cf5a9cfa13c2c62e68e272a391721523b4b ) if(VCPKG_TARGET_IS_WINDOWS) set(opts "ac_cv_search_log=none required" "--without-private-namespace") endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" DISABLE_MSVC_WRAPPERS DISABLE_MSVC_TRANSFORMATIONS OPTIONS ${opts} ) vcpkg_make_install() if(VCPKG_TARGET_IS_WINDOWS) file(COPY "${SOURCE_PATH}/include/msvc_compat/strings.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/jemalloc/msvc_compat") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/jemalloc/jemalloc.h" "" "\"msvc_compat/strings.h\"") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/jemalloc.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/jemalloc.dll" "${CURRENT_PACKAGES_DIR}/bin/jemalloc.dll") endif() if(NOT VCPKG_BUILD_TYPE) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/jemalloc.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/jemalloc.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/jemalloc.dll") endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/jemalloc.pc" "install_suffix=" "install_suffix=_s") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/jemalloc.pc" "install_suffix=" "install_suffix=_s") endif() endif() endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jemalloc/preprocessor.patch ================================================ diff --git a/configure.ac b/configure.ac index 3115504e2..ffb504b08 100644 --- a/configure.ac +++ b/configure.ac @@ -749,6 +749,7 @@ case "${host}" in so="dll" if test "x$je_cv_msvc" = "xyes" ; then importlib="lib" + JE_APPEND_VS(CPPFLAGS, -DJEMALLOC_NO_PRIVATE_NAMESPACE) DSO_LDFLAGS="-LD" EXTRA_LDFLAGS="-link -DEBUG" CTARGET='-Fo$@' ================================================ FILE: ports/jemalloc/vcpkg.json ================================================ { "name": "jemalloc", "version": "5.3.0", "port-version": 3, "description": "jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support", "homepage": "https://jemalloc.net/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/jhasse-poly2tri/cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a237b9..374e7e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,32 @@ cmake_minimum_required(VERSION 3.12) +if(POLICY CMP0063) + cmake_policy(SET CMP0063 NEW) +endif() + +set(CMAKE_CXX_VISIBILITY_PRESET hidden) +set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE) + project(poly2tri LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) +set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed") +set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") +set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" CACHE PATH "Path where cmake configs will be installed") + option(P2T_BUILD_TESTS "Build tests" OFF) option(P2T_BUILD_TESTBED "Build the testbed application" OFF) file(GLOB SOURCES poly2tri/common/*.cc poly2tri/sweep/*.cc) file(GLOB HEADERS poly2tri/*.h poly2tri/common/*.h poly2tri/sweep/*.h) + add_library(poly2tri ${SOURCES} ${HEADERS}) -target_include_directories(poly2tri INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $ + $ +) get_target_property(poly2tri_target_type poly2tri TYPE) if(poly2tri_target_type STREQUAL SHARED_LIBRARY) @@ -26,3 +43,17 @@ endif() if(P2T_BUILD_TESTBED) add_subdirectory(testbed) endif() + +install(DIRECTORY poly2tri DESTINATION include FILES_MATCHING PATTERN "*.h") + +install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" +) + +install (EXPORT ${PROJECT_NAME}Targets + FILE ${PROJECT_NAME}Config.cmake + NAMESPACE ${PROJECT_NAME}:: + DESTINATION "${INSTALL_CMAKE_DIR}" +) ================================================ FILE: ports/jhasse-poly2tri/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jhasse/poly2tri REF 0171f030bd3d5c6747c29d93403546eed668a1b6 SHA512 b55d543ae7f9b447d3e0e39b66cf1ce55a48ed7949819db01d8adc0972182519c4b6b533e704a282da45a4d64f510fd33cd81ccb52307dc0e63622e83bcf0192 HEAD_REF master PATCHES cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME poly2tri) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/jhasse-poly2tri/usage ================================================ jhasse-poly2tri provides CMake targets: find_package(poly2tri CONFIG REQUIRED) target_link_libraries(main PRIVATE poly2tri::poly2tri) ================================================ FILE: ports/jhasse-poly2tri/vcpkg.json ================================================ { "name": "jhasse-poly2tri", "version-date": "2023-12-27", "port-version": 2, "description": "Sweep-line algorithm for constrained Delaunay triangulation", "homepage": "https://github.com/jhasse/poly2tri", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jigson/jigson-config.cmake.in ================================================ if(NOT TARGET jigson::jigson) include(CMakeFindDependencyMacro) find_dependency(nlohmann_json CONFIG) add_library(jigson::jigson INTERFACE IMPORTED) set_target_properties(jigson::jigson PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/jigson" INTERFACE_LINK_LIBRARIES nlohmann_json::nlohmann_json ) endif() ================================================ FILE: ports/jigson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JoshuaSledden/Jigson REF "${VERSION}" SHA512 88cbd9d83d4b51b508c4d778ed5a230c6723274121e09170dff17aaaca01e1df0705f0b06e0ef395bd02aa85ad3da49fb60e1742935fb329afad713bd18b97dc HEAD_REF master ) # Copy the header files file(GLOB HEADER_FILES "${SOURCE_PATH}/src/Include/*") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/jigson") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/jigson-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/jigson-config.cmake" @ONLY) # Copy usage examples file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/jigson/usage ================================================ jigson provides CMake targets: find_package(jigson CONFIG REQUIRED) target_link_libraries(main PRIVATE jigson::jigson) ================================================ FILE: ports/jigson/vcpkg.json ================================================ { "name": "jigson", "version": "0.1.3", "description": "A simple C++ library designed to facilitate easy mapping from json content to a class model.", "homepage": "https://github.com/JoshuaSledden/Jigson", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/jinja2cpplight/portfile.cmake ================================================ if(VCPKG_TARGET_IS_UWP) message(FATAL_ERROR "jinja2cpplight doesn't support UWP.") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) else() vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hughperkins/Jinja2CppLight REF 04196b080adf6edb86184824a1cf948ace310d19 #Commits on May 8, 2018 SHA512 30415da5ebc4fb805953cc9ff7e5fcd357d6fa1818c1ff2570b795252de6215562cd0f2f0418a1fa60e9d74b88339a3fea7166b898f54cface6ab1cfe3581bb5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(GLOB_RECURSE JINJA2CPPLIGHT_EXES "${CURRENT_PACKAGES_DIR}/bin/jinja2cpplight_unittests*") file(COPY ${JINJA2CPPLIGHT_EXES} DESTINATION "${CURRENT_PACKAGES_DIR}/tools") file(REMOVE_RECURSE ${JINJA2CPPLIGHT_EXES}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jinja2cpplight/vcpkg.json ================================================ { "name": "jinja2cpplight", "version-date": "2018-05-08", "port-version": 3, "description": "(very) lightweight version of Jinja2 for C++, Lightweight templating engine for C++, based on Jinja2.", "homepage": "https://github.com/hughperkins/Jinja2CppLight", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/jkqtplotter/fix-cmake.patch ================================================ diff --git a/cmake/FindCImg.cmake b/cmake/FindCImg.cmake index 38a929e7a..3e8424a9f 100644 --- a/cmake/FindCImg.cmake +++ b/cmake/FindCImg.cmake @@ -83,10 +83,10 @@ if (CIMG_FOUND) endif (X11_Xrandr_FOUND) ### PThread is required when using X11 display engine ### - find_package (PTHREAD QUIET) - if (PTHREAD_FOUND) - set (CIMG_INCLUDE_DIRS ${CIMG_INCLUDE_DIRS} ${PTHREAD_INCLUDE_DIRS}) - set (CIMG_LIBRARIES ${CIMG_LIBRARIES} ${PTHREAD_LIBRARIES}) + find_package (Threads QUIET) + if (Threads_FOUND) + set (CIMG_INCLUDE_DIRS ${CIMG_INCLUDE_DIRS}) + set (CIMG_LIBRARIES ${CIMG_LIBRARIES} Threads::Threads) message(STATUS "FindCImg.cmake: pthread found") else (PTHREAD_FOUND) message(STATUS "!!! FindCIMG.cmake !!! pthread NOT found. pthread required by cimg for running X11.") @@ -100,15 +100,15 @@ if (CIMG_FOUND) endif (X11_FOUND) else (UNIX OR APPLE) if (WIN32) - find_package(GDI QUIET) - if (GDI_FOUND) - set (CIMG_LIBRARIES ${CIMG_LIBRARIES} ${GDI_LIBRARIES}) + find_library(GDI_LIBRARY gdi32) + if (GDI_LIBRARY) + set (CIMG_LIBRARIES ${CIMG_LIBRARIES} ${GDI_LIBRARY}) message(STATUS "FindCImg.cmake: GDI found") - else (GDI_FOUND) + else (GDI_LIBRARY) message(STATUS "!!! FindCIMG.cmake !!! GDI NOT found.") message(WARNING "FindCImg.cmake: display disabled") set (CIMG_DEFINITIONS ${CIMG_DEFINITIONS} -Dcimg_display=0) - endif (GDI_FOUND) + endif (GDI_LIBRARY) endif (WIN32) endif (UNIX OR APPLE) diff --git a/cmake/jkqtplotter_deployqt.cmake b/cmake/jkqtplotter_deployqt.cmake index 5a8574591..5dbc8a51d 100644 --- a/cmake/jkqtplotter_deployqt.cmake +++ b/cmake/jkqtplotter_deployqt.cmake @@ -1,6 +1,6 @@ function(jkqtplotter_deployqt TARGET_NAME) #use windeploy - if (WIN32) + if (WIN32 AND 0) # install system runtime lib include( InstallRequiredSystemLibraries ) if( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS ) ================================================ FILE: ports/jkqtplotter/fix-cmake2.patch ================================================ diff --git a/lib/jkqtmath/CMakeLists.txt b/lib/jkqtmath/CMakeLists.txt index 716254ac8..835b4e8cb 100644 --- a/lib/jkqtmath/CMakeLists.txt +++ b/lib/jkqtmath/CMakeLists.txt @@ -110,7 +110,7 @@ endif() if(JKQtPlotter_BUILD_STATIC_LIBS) add_library(${lib_name} STATIC ${SOURCES} ${HEADERS}) JKQtCommon_setDefaultLibOptions(${lib_name}) - target_link_libraries(${libsh_name} PUBLIC JKQTCommonLib) + target_link_libraries(${lib_name} PUBLIC JKQTCommonLib) set_property(TARGET ${lib_name} PROPERTY OUTPUT_NAME "${lib_name_decorated}") write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake VERSION ${PROJECT_VERSION} ================================================ FILE: ports/jkqtplotter/portfile.cmake ================================================ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" JKQtPlotter_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" JKQtPlotter_BUILD_STATIC_LIBS) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkriege2/JKQtPlotter REF a9bfcab4b96cd7bdeac30902f5d7a31b765c522b SHA512 04b20eb66c833eac5dcd6a50c966217380b0f3a6e70092e36b80197b94d1ea2858b2b9f09aec5e02df2effab5b9b17059436589d727060bba3601ec1342278a9 HEAD_REF master PATCHES fix-cmake.patch fix-cmake2.patch ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "add_subdirectory(doc)" "") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "examples" JKQtPlotter_BUILD_EXAMPLES "tools" JKQtPlotter_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJKQtPlotter_BUILD_SHARED_LIBS=${JKQtPlotter_BUILD_SHARED_LIBS} -DJKQtPlotter_BUILD_STATIC_LIBS=${JKQtPlotter_BUILD_STATIC_LIBS} ${FEATURE_OPTIONS} -DCMAKE_IGNORE_PATH=${CURRENT_INSTALLED_DIR}/share/cmake/Qt5 -DCIMG_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include -DCMAKE_DISABLE_FIND_PACKAGE_OpenCV:BOOL=ON # only used for some examples -DOpenCV_FOUND:BOOL=FALSE # wrong find_package call with QUITE instead of QUIET MAYBE_UNUSED_VARIABLES OpenCV_FOUND ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) vcpkg_copy_pdbs() set(tools "") if("tools" IN_LIST FEATURES) list(APPEND tools jkqtmathtext_render jkqtplotter_doc_imagegenerator ) endif() if("examples" IN_LIST FEATURES) list(APPEND tools jkqtplot_test jkqtptest_advplotstyling jkqtptest_barchart jkqtptest_boxplot jkqtptest_contourplot jkqtptest_datastore jkqtptest_datastore_groupedstat jkqtptest_datastore_iterators jkqtptest_datastore_regression jkqtptest_datastore_statistics jkqtptest_datastore_statistics_2d jkqtptest_dateaxes jkqtptest_distributionplot jkqtptest_errorbarstyles jkqtptest_evalcurve jkqtptest_filledgraphs jkqtptest_functionplot jkqtptest_geometric jkqtptest_geo_arrows jkqtptest_geo_simple jkqtptest_imageplot jkqtptest_imageplot_cimg jkqtptest_imageplot_modifier jkqtptest_imageplot_nodatastore jkqtptest_imageplot_userpal jkqtptest_impulsesplot jkqtptest_jkqtfastplotter_test jkqtptest_jkqtmathtext_simpletest jkqtptest_jkqtmathtext_test jkqtptest_logaxes jkqtptest_mandelbrot jkqtptest_parametriccurve jkqtptest_paramscatterplot jkqtptest_paramscatterplot_image jkqtptest_parsedfunctionplot jkqtptest_rgbimageplot jkqtptest_rgbimageplot_cimg jkqtptest_rgbimageplot_qt jkqtptest_simpletest jkqtptest_speed jkqtptest_stackedbars jkqtptest_stepplots jkqtptest_styledboxplot jkqtptest_styling jkqtptest_symbols_and_errors jkqtptest_symbols_and_styles jkqtptest_ui jkqtptest_user_interaction jkqtptest_violinplot jkqtptest_wiggleplots jkqtptest_barchart_customdrawfunctor jkqtptest_barchart_errorbars jkqtptest_barchart_functorfill jkqtptest_barchart_twocolor jkqtptest_filledgraphs_errors jkqtptest_geo_coordinateaxis0 jkqtptest_multiplot jkqtptest_paramscatterplot_customsymbol jkqtptest_scatter jkqtptest_scatter_customsymbol jkqtptest_second_axis ) endif() if(tools) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") 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}/doc" "${CURRENT_PACKAGES_DIR}/debug/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/lib/jkqtmathtext/resources/firaMath/LICENSE" "${SOURCE_PATH}/lib/jkqtmathtext/resources/xits/OFL.txt" ) ================================================ FILE: ports/jkqtplotter/vcpkg.json ================================================ { "name": "jkqtplotter", "version-date": "2023-10-24", "port-version": 1, "description": "A Qt Plotting Library", "license": null, "dependencies": [ "cimg", { "name": "qtbase", "default-features": false, "features": [ "gui", "jpeg", "opengl", "png", "widgets" ] }, "qtsvg", { "name": "vcpkg-cmake", "host": true, "default-features": false }, { "name": "vcpkg-cmake-config", "host": true, "default-features": false } ], "features": { "examples": { "description": "Build examples" }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/joltphysics/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jrouwe/JoltPhysics REF "v${VERSION}" SHA512 1bdf5e8a3c5d405808c2250f307a31c4a6180af5e911a8dd1560f065a84ee1500cf8a539ea0af466f484ef46f6ac34886edcdb3b5157e4dbad0db886e442087c HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_CRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES debugrenderer DEBUG_RENDERER_IN_DEBUG_AND_RELEASE profiler PROFILER_IN_DEBUG_AND_RELEASE rtti CPP_RTTI_ENABLED ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Build" OPTIONS -DTARGET_UNIT_TESTS=OFF -DTARGET_HELLO_WORLD=OFF -DTARGET_PERFORMANCE_TEST=OFF -DTARGET_SAMPLES=OFF -DTARGET_VIEWER=OFF -DCROSS_PLATFORM_DETERMINISTIC=OFF -DINTERPROCEDURAL_OPTIMIZATION=OFF -DUSE_STATIC_MSVC_RUNTIME_LIBRARY=${USE_STATIC_CRT} -DENABLE_ALL_WARNINGS=OFF -DOVERRIDE_CXX_FLAGS=OFF ${FEATURE_OPTIONS} OPTIONS_RELEASE -DGENERATE_DEBUG_SYMBOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME Jolt CONFIG_PATH "lib/cmake/Jolt") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/joltphysics/vcpkg.json ================================================ { "name": "joltphysics", "version": "5.5.0", "description": "A multi core friendly rigid body physics and collision detection library suitable for games and VR applications", "homepage": "https://github.com/jrouwe/JoltPhysics", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "debugrenderer": { "description": "Enable debug renderer in Debug and Release builds" }, "profiler": { "description": "Enable the profiler in Debug and Release builds" }, "rtti": { "description": "Enable C++ RTTI" } } } ================================================ FILE: ports/josuttis-jthread/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO josuttis/jthread REF 3e1908f3bbaba6d2195bb423840c23e107c9e8b2 SHA512 b6e4df35b364848a433eb31023a8b5b5045b2445aaf9a81406a6b3ce7cfdda08bcdb486be9201f5b1e54df38884c1763fae336fdcb9ad79f11658a92c535055d HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/source/jthread.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/source/stop_token.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/source/condition_variable_any2.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/josuttis-jthread/vcpkg.json ================================================ { "name": "josuttis-jthread", "version-date": "2020-07-21", "port-version": 3, "description": "C++ class for a joining and cooperative interruptible thread (std::jthread) with stop_token helper", "homepage": "https://github.com/josuttis/jthread" } ================================================ FILE: ports/jsmn/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zserge/jsmn REF fdcef3ebf886fa210d14956d3c068a653e76a24e SHA512 ec3a6b106b868238aa626e5b4477ace4414f385a35c695a583598975202b73a2a446143eb5f0ea73b0a84113c610ea36e64341fccecd1d1ddd9080e06f599575 HEAD_REF master ) file(COPY ${SOURCE_PATH}/jsmn.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/jsmn/vcpkg.json ================================================ { "name": "jsmn", "version-date": "2019-04-27", "port-version": 2, "description": "A minimalistic JSON parser in C." } ================================================ FILE: ports/json-c/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO json-c/json-c REF "json-c-${VERSION}" SHA512 219d8c0da9a4016b74af238cc15dbec1f369a07de160bcc548d80279028e1b5d8d928deb13fec09c96a085fc0ecf10090e309cbe72d0081aca864433c4ae01db HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" JSON_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" JSON_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_STATIC_LIBS=${JSON_BUILD_STATIC} -DBUILD_SHARED_LIBS=${JSON_BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/json-c/vcpkg.json ================================================ { "name": "json-c", "version": "0.18-20240915", "description": "A JSON implementation in C", "homepage": "https://github.com/json-c/json-c", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/json-dto/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stiffstream/json_dto REF "v.${VERSION}" SHA512 176556702dfa4092b3e1b0face065b66041346d3f9e0a96bd96fada4b8ba2a423e83d11501fc724341f831d6b3e8ce93c0fd2f4f1018b1bfb0423f70e68e8adb ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH}/dev OPTIONS -DJSON_DTO_INSTALL=ON -DJSON_DTO_TEST=OFF -DJSON_DTO_SAMPLE=OFF -DJSON_DTO_INSTALL_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/json-dto) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug) # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/json-dto/vcpkg.json ================================================ { "name": "json-dto", "version": "0.3.4", "description": "A small header-only library for converting data between json representation and c++ structs.", "homepage": "https://github.com/Stiffstream/json_dto", "license": "BSD-3-Clause", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/json-glib/portfile.cmake ================================================ string(REGEX MATCH [[^[1-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 f4ba8660b586a4e738803e4dbfdfcd34fa7ceba9189e7bf3f2b50e21f4d4886f99535ceb3453c89b1d1ae8d96bf4168a135b73b7e1a2dbc46b19e9b710ad56a1 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dintrospection=disabled -Ddocumentation=disabled -Dtests=false -Dinstalled_tests=false -Dconformance=false -Dman=false -Dnls=disabled ADDITIONAL_BINARIES "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES/LGPL-2.1-or-later.txt" "${SOURCE_PATH}/LICENSES/CC0-1.0.txt" "${SOURCE_PATH}/LICENSES/MIT.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_tools( TOOL_NAMES json-glib-format json-glib-validate AUTO_CLEAN ) ================================================ FILE: ports/json-glib/vcpkg.json ================================================ { "name": "json-glib", "version": "1.10.8", "description": "Implements a full JSON parser and generator using GLib and GObject, and integrates JSON with GLib data types.", "homepage": "https://wiki.gnome.org/Projects/JsonGlib", "license": "LGPL-2.1-or-later AND CC0-1.0 AND MIT", "dependencies": [ "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/json-rpc-cxx/fix-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a362ea4..9c23acf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,8 +10,16 @@ option(CODE_COVERAGE "Enable coverage reporting" OFF) include(GNUInstallDirs) add_library(json-rpc-cxx INTERFACE) -target_include_directories(json-rpc-cxx INTERFACE include) +target_include_directories(json-rpc-cxx INTERFACE + $ + $ + ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install (TARGETS json-rpc-cxx EXPORT unofficial-json-rpc-cxx-config) +install (EXPORT unofficial-json-rpc-cxx-config + NAMESPACE unofficial::json-rpc-cxx:: + DESTINATION share/unofficial-json-rpc-cxx + ) add_library(coverage_config INTERFACE) ================================================ FILE: ports/json-rpc-cxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jsonrpcx/json-rpc-cxx REF "v${VERSION}" SHA512 fa4ee807dd29027edd86949a8632adede77c3706406e6b78a8b6e38003f80103082ef70e0b89293a608db238d6f5662669b69cf0cb3d607bcc959c8801c5f3e0 HEAD_REF master PATCHES fix-config.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCOMPILE_TESTS=OFF -DCOMPILE_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" JSON_RPC_CXX_CONFIG) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" " include(CMakeFindDependencyMacro) find_dependency(nlohmann_json) ${JSON_RPC_CXX_CONFIG} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/json-rpc-cxx/usage ================================================ json-rpc-cxx provides CMake targets: find_package(unofficial-json-rpc-cxx CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::json-rpc-cxx::json-rpc-cxx) ================================================ FILE: ports/json-rpc-cxx/vcpkg.json ================================================ { "name": "json-rpc-cxx", "version": "0.3.2", "description": "A JSON-RPC 2.0 framework implemented in C++17 using the nlohmann's json for modern C++.", "homepage": "https://github.com/jsonrpcx/json-rpc-cxx", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/json-schema-validator/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pboettch/json-schema-validator REF "${VERSION}" SHA512 67d7ffbee7fe0761171d021d66955c760ee02161a1fb3a3eb89e15cb3f320cb4646f5ae7f9c15ddf50b9ad4312dd03af4eb5c88f7427da9426f0ce4afb67ee59 HEAD_REF master ) string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJSON_VALIDATOR_INSTALL=ON -DJSON_VALIDATOR_BUILD_TESTS=OFF -DJSON_VALIDATOR_BUILD_EXAMPLES=OFF -DJSON_VALIDATOR_SHARED_LIBS=${BUILD_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "nlohmann_json_schema_validator" CONFIG_PATH "lib/cmake/nlohmann_json_schema_validator") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/json-schema-validator/vcpkg.json ================================================ { "name": "json-schema-validator", "version": "2.4.0", "description": "C++ library for validating JSON documents based on a JSON Schema. This validator is based on the nlohmann-json library.", "homepage": "https://github.com/pboettch/json-schema-validator", "license": "MIT", "dependencies": [ { "name": "nlohmann-json", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/json-spirit/Fix-link-error-C1128.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 24b1caf..2aac0b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,9 @@ endif() message(${CMAKE_INSTALL_INCLUDEDIR}) - +if(MSVC) +add_definitions(/bigobj) +endif() set(CPACK_PACKAGE_VERSION_MAJOR 4) set(CPACK_PACKAGE_VERSION_MINOR 0) set(CPACK_PACKAGE_VERSION_PATCH 8) ================================================ FILE: ports/json-spirit/dll-wins.patch ================================================ diff --git a/.travis.yml b/.travis.yml index e5b56eb..87f2926 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,4 +14,4 @@ script: - cmake --build . --target all -- after_script: - - ctest + - ctest diff --git a/CMakeLists.txt b/CMakeLists.txt index fb24877..a10a49f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,15 +60,17 @@ endif() message(${CMAKE_INSTALL_INCLUDEDIR}) - + set(CPACK_PACKAGE_VERSION_MAJOR 4) set(CPACK_PACKAGE_VERSION_MINOR 0) set(CPACK_PACKAGE_VERSION_PATCH 8) set(CPACK_PACKAGE_DESCRIPTION "A C++ JSON Parser/Generator Implemented with Boost Spirit") include(CPack) - + +set(EXPORT_HEADERS ) INSTALL( FILES + json_spirit/json_spirit_global.h json_spirit/json_spirit.h json_spirit/json_spirit_error_position.h json_spirit/json_spirit_reader.h @@ -80,4 +82,4 @@ INSTALL( json_spirit/json_spirit_writer_template.h json_spirit/json_spirit_writer_options.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/json_spirit) - + diff --git a/json_spirit/CMakeLists.txt b/json_spirit/CMakeLists.txt index 23da64c..10d4e2b 100755 --- a/json_spirit/CMakeLists.txt +++ b/json_spirit/CMakeLists.txt @@ -15,13 +15,19 @@ SET(JSON_SPIRIT_SRCS FIND_PACKAGE(Boost 1.34 REQUIRED) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) - + OPTION(BUILD_STATIC_LIBS "Build static libraries" OFF) if(BUILD_STATIC_LIBS) ADD_LIBRARY(json_spirit STATIC ${JSON_SPIRIT_SRCS}) - install(TARGETS json_spirit ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(TARGETS json_spirit ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) else(BUILD_STATIC_LIBS) ADD_LIBRARY(json_spirit SHARED ${JSON_SPIRIT_SRCS}) - install(TARGETS json_spirit LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + if(WIN32) + install(TARGETS json_spirit RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(TARGETS json_spirit ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + else() + install(TARGETS json_spirit LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + endif() + endif(BUILD_STATIC_LIBS) diff --git a/json_spirit/json_spirit_global.h b/json_spirit/json_spirit_global.h new file mode 100644 index 0000000..07a7d2c --- /dev/null +++ b/json_spirit/json_spirit_global.h @@ -0,0 +1,18 @@ +#ifndef JSON_SPIRIT_GLOBAL_H +#define JSON_SPIRIT_GLOBAL_H + +#if (defined _WIN32) || (defined _WIN64) + #define DECL_EXPORT __declspec(dllexport) + #define DECL_IMPORT __declspec(dllimport) +#else + #define DECL_EXPORT + #define DECL_IMPORT +#endif + +#if defined(json_spirit_EXPORTS) +# define json_spirit_EXPORT DECL_EXPORT +#else +# define json_spirit_EXPORT DECL_IMPORT +#endif + +#endif \ No newline at end of file diff --git a/json_spirit/json_spirit_reader.h b/json_spirit/json_spirit_reader.h index a6cfac7..50cc6f5 100755 --- a/json_spirit/json_spirit_reader.h +++ b/json_spirit/json_spirit_reader.h @@ -11,6 +11,7 @@ # pragma once #endif +#include "json_spirit_global.h" #include "json_spirit_value.h" #include "json_spirit_error_position.h" #include @@ -20,43 +21,43 @@ namespace json_spirit // functions to reads a JSON values #ifdef JSON_SPIRIT_VALUE_ENABLED - bool read( const std::string& s, Value& value ); - bool read( std::istream& is, Value& value ); - bool read( std::string::const_iterator& begin, std::string::const_iterator end, Value& value ); + json_spirit_EXPORT bool read( const std::string& s, Value& value ); + json_spirit_EXPORT bool read( std::istream& is, Value& value ); + json_spirit_EXPORT bool read( std::string::const_iterator& begin, std::string::const_iterator end, Value& value ); - void read_or_throw( const std::string& s, Value& value ); - void read_or_throw( std::istream& is, Value& value ); - void read_or_throw( std::string::const_iterator& begin, std::string::const_iterator end, Value& value ); + json_spirit_EXPORT void read_or_throw( const std::string& s, Value& value ); + json_spirit_EXPORT void read_or_throw( std::istream& is, Value& value ); + json_spirit_EXPORT void read_or_throw( std::string::const_iterator& begin, std::string::const_iterator end, Value& value ); #endif #if defined( JSON_SPIRIT_WVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - bool read( const std::wstring& s, wValue& value ); - bool read( std::wistream& is, wValue& value ); - bool read( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wValue& value ); + json_spirit_EXPORT bool read( const std::wstring& s, wValue& value ); + json_spirit_EXPORT bool read( std::wistream& is, wValue& value ); + json_spirit_EXPORT bool read( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wValue& value ); - void read_or_throw( const std::wstring& s, wValue& value ); - void read_or_throw( std::wistream& is, wValue& value ); - void read_or_throw( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wValue& value ); + json_spirit_EXPORT void read_or_throw( const std::wstring& s, wValue& value ); + json_spirit_EXPORT void read_or_throw( std::wistream& is, wValue& value ); + json_spirit_EXPORT void read_or_throw( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wValue& value ); #endif #ifdef JSON_SPIRIT_MVALUE_ENABLED - bool read( const std::string& s, mValue& value ); - bool read( std::istream& is, mValue& value ); - bool read( std::string::const_iterator& begin, std::string::const_iterator end, mValue& value ); + json_spirit_EXPORT bool read( const std::string& s, mValue& value ); + json_spirit_EXPORT bool read( std::istream& is, mValue& value ); + json_spirit_EXPORT bool read( std::string::const_iterator& begin, std::string::const_iterator end, mValue& value ); - void read_or_throw( const std::string& s, mValue& value ); - void read_or_throw( std::istream& is, mValue& value ); - void read_or_throw( std::string::const_iterator& begin, std::string::const_iterator end, mValue& value ); + json_spirit_EXPORT void read_or_throw( const std::string& s, mValue& value ); + json_spirit_EXPORT void read_or_throw( std::istream& is, mValue& value ); + json_spirit_EXPORT void read_or_throw( std::string::const_iterator& begin, std::string::const_iterator end, mValue& value ); #endif #if defined( JSON_SPIRIT_WMVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - bool read( const std::wstring& s, wmValue& value ); - bool read( std::wistream& is, wmValue& value ); - bool read( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wmValue& value ); + json_spirit_EXPORT bool read( const std::wstring& s, wmValue& value ); + json_spirit_EXPORT bool read( std::wistream& is, wmValue& value ); + json_spirit_EXPORT bool read( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wmValue& value ); - void read_or_throw( const std::wstring& s, wmValue& value ); - void read_or_throw( std::wistream& is, wmValue& value ); - void read_or_throw( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wmValue& value ); + json_spirit_EXPORT void read_or_throw( const std::wstring& s, wmValue& value ); + json_spirit_EXPORT void read_or_throw( std::wistream& is, wmValue& value ); + json_spirit_EXPORT void read_or_throw( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wmValue& value ); #endif } diff --git a/json_spirit/json_spirit_writer.h b/json_spirit/json_spirit_writer.h index 2722780..f60dc07 100755 --- a/json_spirit/json_spirit_writer.h +++ b/json_spirit/json_spirit_writer.h @@ -11,6 +11,7 @@ # pragma once #endif +#include "json_spirit_global.h" #include "json_spirit_value.h" #include "json_spirit_writer_options.h" #include @@ -20,44 +21,44 @@ namespace json_spirit // these functions to convert JSON Values to text #ifdef JSON_SPIRIT_VALUE_ENABLED - void write( const Value& value, std::ostream& os, unsigned int options = 0 ); - std::string write( const Value& value, unsigned int options = 0 ); + json_spirit_EXPORT void write( const Value& value, std::ostream& os, unsigned int options = 0 ); + json_spirit_EXPORT std::string write( const Value& value, unsigned int options = 0 ); #endif #ifdef JSON_SPIRIT_MVALUE_ENABLED - void write( const mValue& value, std::ostream& os, unsigned int options = 0 ); - std::string write( const mValue& value, unsigned int options = 0 ); + json_spirit_EXPORT void write( const mValue& value, std::ostream& os, unsigned int options = 0 ); + json_spirit_EXPORT std::string write( const mValue& value, unsigned int options = 0 ); #endif #if defined( JSON_SPIRIT_WVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - void write( const wValue& value, std::wostream& os, unsigned int options = 0 ); - std::wstring write( const wValue& value, unsigned int options = 0 ); + json_spirit_EXPORT void write( const wValue& value, std::wostream& os, unsigned int options = 0 ); + json_spirit_EXPORT std::wstring write( const wValue& value, unsigned int options = 0 ); #endif #if defined( JSON_SPIRIT_WMVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - void write( const wmValue& value, std::wostream& os, unsigned int options = 0 ); - std::wstring write( const wmValue& value, unsigned int options = 0 ); + json_spirit_EXPORT void write( const wmValue& value, std::wostream& os, unsigned int options = 0 ); + json_spirit_EXPORT std::wstring write( const wmValue& value, unsigned int options = 0 ); #endif // these "formatted" versions of the "write" functions are the equivalent of the above functions // with option "pretty_print" #ifdef JSON_SPIRIT_VALUE_ENABLED - void write_formatted( const Value& value, std::ostream& os ); - std::string write_formatted( const Value& value ); + json_spirit_EXPORT void write_formatted( const Value& value, std::ostream& os ); + json_spirit_EXPORT std::string write_formatted( const Value& value ); #endif #ifdef JSON_SPIRIT_MVALUE_ENABLED - void write_formatted( const mValue& value, std::ostream& os ); - std::string write_formatted( const mValue& value ); + json_spirit_EXPORT void write_formatted( const mValue& value, std::ostream& os ); + json_spirit_EXPORT std::string write_formatted( const mValue& value ); #endif #if defined( JSON_SPIRIT_WVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - void write_formatted( const wValue& value, std::wostream& os ); - std::wstring write_formatted( const wValue& value ); + json_spirit_EXPORT void write_formatted( const wValue& value, std::wostream& os ); + json_spirit_EXPORT std::wstring write_formatted( const wValue& value ); #endif #if defined( JSON_SPIRIT_WMVALUE_ENABLED ) && !defined( BOOST_NO_STD_WSTRING ) - void write_formatted( const wmValue& value, std::wostream& os ); - std::wstring write_formatted( const wmValue& value ); + json_spirit_EXPORT void write_formatted( const wmValue& value, std::wostream& os ); + json_spirit_EXPORT std::wstring write_formatted( const wmValue& value ); #endif } diff --git a/json_test/json_spirit_value_test.cpp b/json_test/json_spirit_value_test.cpp index e055dae..faab022 100755 --- a/json_test/json_spirit_value_test.cpp +++ b/json_test/json_spirit_value_test.cpp @@ -381,9 +381,15 @@ namespace Container_constructor_runner() { vector< double > vd = list_of( 1.2 )( 1.3 ); test_container_constructor( vd ); + #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) + vector< int > vi = { 1 }; test_container_constructor( vi ); + vi = { 1, 2 }; test_container_constructor( vi ); + vi = { 1, 2, 3 }; test_container_constructor( vi ); + #else vector< int > vi = list_of( 1 ); test_container_constructor( vi ); vi = list_of( 1 )( 2 ); test_container_constructor( vi ); vi = list_of( 1 )( 2 )( 3 ); test_container_constructor( vi ); + #endif list< double > ld = list_of( 1.2 )( 1.3 ); test_container_constructor( ld ); list< int > li = list_of( 1 ); test_container_constructor( li ); li = list_of( 1 )( 2 ); test_container_constructor( li ); @@ -447,9 +453,15 @@ namespace } vector< double > vd = list_of( 1.2 )( 1.3 ); test_variant_array_constructor< double > ( vd ); + #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) + vector< int > vi = { 1 }; test_variant_array_constructor< int >( vi ); + vi = { 1, 2 }; test_variant_array_constructor< int >( vi ); + vi = { 1, 2, 3 }; test_variant_array_constructor< int >( vi ); + #else vector< int > vi = list_of( 1 ); test_variant_array_constructor< int >( vi ); vi = list_of( 1 )( 2 ); test_variant_array_constructor< int >( vi ); vi = list_of( 1 )( 2 )( 3 ); test_variant_array_constructor< int >( vi ); + #endif list< double > ld = list_of( 1.2 )( 1.3 ); test_variant_array_constructor< double >( ld ); list< int > li = list_of( 1 ); test_variant_array_constructor< int >( li ); li = list_of( 1 )( 2 ); test_variant_array_constructor< int >( li ); ================================================ FILE: ports/json-spirit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO png85/json_spirit REF 5e16cca59b31d8beda0f07e3917ce11dcd43b3db SHA512 6ac0f15726391c9003e516213535c8d30e98b6c33bca0b03e9bf38e7085824bfc6cfaab267b1dfccbfcc567638d26f722d7e331f4e3b60d3acd5c717cb1fafcc HEAD_REF master PATCHES dll-wins.patch Fix-link-error-C1128.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_STATIC_LIBS=OFF -DJSON_SPIRIT_DEMOS=OFF -DJSON_SPIRIT_TESTS=OFF ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() ================================================ FILE: ports/json-spirit/vcpkg.json ================================================ { "name": "json-spirit", "version": "4.1.0", "port-version": 5, "description": "A C++ JSON parser/generator implemented with Boost Spirit", "dependencies": [ "boost-config", "boost-integer", "boost-smart-ptr", "boost-spirit", "boost-variant", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/json11/destination.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 819c36f..847489e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,6 @@ if (JSON11_BUILD_TESTS) target_link_libraries(json11_test json11) endif() -install(TARGETS json11 DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}) -install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/json11.hpp" DESTINATION include/${CMAKE_LIBRARY_ARCHITECTURE}) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/json11.pc" DESTINATION lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig) +install(TARGETS json11 DESTINATION lib) +install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/json11.hpp" DESTINATION include) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/json11.pc" DESTINATION lib/pkgconfig) ================================================ FILE: ports/json11/fix-gcc15-build.patch ================================================ diff --git a/json11.cpp b/json11.cpp index 9647846..509dfdd 100644 --- a/json11.cpp +++ b/json11.cpp @@ -22,6 +22,7 @@ #include "json11.hpp" #include #include +#include #include #include #include @@ -151,7 +152,7 @@ protected: // Constructors explicit Value(const T &value) : m_value(value) {} - explicit Value(T &&value) : m_value(move(value)) {} + explicit Value(T &&value) : m_value(std::move(value)) {} // Get type tag Json::Type type() const override { @@ -198,7 +199,7 @@ class JsonString final : public Value { const string &string_value() const override { return m_value; } public: explicit JsonString(const string &value) : Value(value) {} - explicit JsonString(string &&value) : Value(move(value)) {} + explicit JsonString(string &&value) : Value(std::move(value)) {} }; class JsonArray final : public Value { @@ -206,7 +207,7 @@ class JsonArray final : public Value { const Json & operator[](size_t i) const override; public: explicit JsonArray(const Json::array &value) : Value(value) {} - explicit JsonArray(Json::array &&value) : Value(move(value)) {} + explicit JsonArray(Json::array &&value) : Value(std::move(value)) {} }; class JsonObject final : public Value { @@ -214,7 +215,7 @@ class JsonObject final : public Value { const Json & operator[](const string &key) const override; public: explicit JsonObject(const Json::object &value) : Value(value) {} - explicit JsonObject(Json::object &&value) : Value(move(value)) {} + explicit JsonObject(Json::object &&value) : Value(std::move(value)) {} }; class JsonNull final : public Value { @@ -256,12 +257,12 @@ Json::Json(double value) : m_ptr(make_shared(value)) { Json::Json(int value) : m_ptr(make_shared(value)) {} Json::Json(bool value) : m_ptr(value ? statics().t : statics().f) {} Json::Json(const string &value) : m_ptr(make_shared(value)) {} -Json::Json(string &&value) : m_ptr(make_shared(move(value))) {} +Json::Json(string &&value) : m_ptr(make_shared(std::move(value))) {} Json::Json(const char * value) : m_ptr(make_shared(value)) {} Json::Json(const Json::array &values) : m_ptr(make_shared(values)) {} -Json::Json(Json::array &&values) : m_ptr(make_shared(move(values))) {} +Json::Json(Json::array &&values) : m_ptr(make_shared(std::move(values))) {} Json::Json(const Json::object &values) : m_ptr(make_shared(values)) {} -Json::Json(Json::object &&values) : m_ptr(make_shared(move(values))) {} +Json::Json(Json::object &&values) : m_ptr(make_shared(std::move(values))) {} /* * * * * * * * * * * * * * * * * * * * * Accessors @@ -359,7 +360,7 @@ struct JsonParser final { * Mark this parse as failed. */ Json fail(string &&msg) { - return fail(move(msg), Json()); + return fail(std::move(msg), Json()); } template ================================================ FILE: ports/json11/json11-config.cmake ================================================ get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) if(NOT JSON11_FIND_COMPONENTS) set(JSON11_FIND_COMPONENTS json11 json11) if(JSON11_FIND_REQUIRED) set(JSON11_FIND_REQUIRED_json11 TRUE) endif() set(JSON11_FOUND TRUE) endif() set(JSON11_INCLUDE_DIRS ${_DIR}/../../include) set(JSON11_LIBRARIES) if (EXISTS ${_DIR}/../../lib/libjson11.a) list(APPEND JSON11_LIBRARIES optimized ${_DIR}/../../lib/libjson11.a) endif() if (EXISTS ${_DIR}/../../debug/lib/libjson11.a) list(APPEND JSON11_LIBRARIES debug ${_DIR}/../../debug/lib/libjson11.a) endif() if (EXISTS ${_DIR}/../../lib/json11.lib) list(APPEND JSON11_LIBRARIES optimized ${_DIR}/../../lib/json11.lib) endif() if (EXISTS ${_DIR}/../../debug/lib/json11.lib) list(APPEND JSON11_LIBRARIES debug ${_DIR}/../../debug/lib/json11.lib) endif() ================================================ FILE: ports/json11/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dropbox/json11 REF ec4e45219af1d7cde3d58b49ed762376fccf1ace SHA512 2129e048d8dee027dc1ba789d9901e017b7d698465e15236802ef68639161e1cc7c8665d5f50079333801717fd41ffbe2cb90fa2165b9a85629e8ced8f2b3cd8 HEAD_REF master PATCHES destination.patch fix-gcc15-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJSON11_BUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${CURRENT_PORT_DIR}/json11-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/json11/vcpkg.json ================================================ { "name": "json11", "version-date": "2017-06-20", "port-version": 7, "description": "json11 is a tiny JSON library for C++11, providing JSON parsing and serialization.", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/json5-parser/00001-fix-build.patch ================================================ diff --git a/json5_parser/CMakeLists.txt b/json5_parser/CMakeLists.txt index 3fbc6bb..e278364 100644 --- a/json5_parser/CMakeLists.txt +++ b/json5_parser/CMakeLists.txt @@ -1,3 +1,6 @@ +cmake_minimum_required(VERSION 3.5) +project(json5-parser) + SET(JSON_SPIRIT_SRCS json5_parser_reader.cpp json5_parser_reader.h json5_parser_value.cpp json5_parser_value.h @@ -15,3 +18,21 @@ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) ADD_LIBRARY(json5_parser STATIC ${JSON_SPIRIT_SRCS}) +if(MSVC) + target_compile_options(json5_parser PRIVATE "/bigobj") +endif() + +target_include_directories(json5_parser PUBLIC $) + +install(TARGETS json5_parser EXPORT json5-parser-config + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) +install(EXPORT json5-parser-config DESTINATION share/json5-parser) + +file(GLOB HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} json5_parser*.h) +foreach (HEADER ${HEADERS} ) + get_filename_component(HEADER_DIR ${HEADER} DIRECTORY) + install(FILES ${HEADER} DESTINATION include/${HEADER_DIR}) +endforeach() ================================================ FILE: ports/json5-parser/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Caltech-IPAC/json5_parser REF 580bfe30c5ee5e06a0f536d7bddb75c07a29eda6 # 1.0.0 SHA512 25cdbc02ed2e3b05f0644c3398230ab82ede093ed6f7d8f140a9810509dd05feab1187d62fc38818725a92c47029fe3dc5ecfdbe14e1e0a2ef314e925b369d59 HEAD_REF master PATCHES 00001-fix-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/json5_parser" OPTIONS -DCMAKE_CXX_STANDARD=11 # Boost v1.84.0 libraries require C++11 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/json5-parser/vcpkg.json ================================================ { "name": "json5-parser", "version": "1.0.0", "port-version": 7, "description": "An enhancement of the JSON Spirit C++ library to understand json5.", "homepage": "https://github.com/Caltech-IPAC/json5_parser", "dependencies": [ "boost-spirit", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jsoncons/portfile.cmake ================================================ # header-only library vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO danielaparker/jsoncons REF v${VERSION} SHA512 ce4ff8aaf31ad781e5caaf27172c867a8009bcc322dee5e34c6815434dbb234bf0d22ee9caa82c0ee1a9b25f3355da4363b5d663fded46a9ffc58ca802dad4ae HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJSONCONS_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/jsoncons/vcpkg.json ================================================ { "name": "jsoncons", "version": "1.5.0", "description": "A C++, header-only library for constructing JSON and JSON-like text and binary data formats, with JSON Pointer, JSON Patch, JSON Schema, JSONPath, JMESPath, CSV, MessagePack, CBOR, BSON, UBJSON", "homepage": "https://github.com/danielaparker/jsoncons", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jsoncpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-source-parsers/jsoncpp REF "${VERSION}" SHA512 006d81f9f723dcfe875ebc2147449c07c5246bf97dd7b9eee1909decc914b051d6f3f06feb5c3dfa143d28773fb310aabb04a81dc447cc61513309df8eba8b08 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" JSONCPP_STATIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJSONCPP_WITH_CMAKE_PACKAGE=ON -DBUILD_STATIC_LIBS=${JSONCPP_STATIC} -DJSONCPP_STATIC_WINDOWS_RUNTIME=${STATIC_CRT} -DJSONCPP_WITH_PKGCONFIG_SUPPORT=ON -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_EXAMPLE=OFF -DBUILD_OBJECT_LIBS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/jsoncpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/jsoncpp/vcpkg.json ================================================ { "name": "jsoncpp", "version": "1.9.6", "description": "JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings. It can also preserve existing comment in unserialization/serialization steps, making it a convenient format to store user input files.", "homepage": "https://github.com/open-source-parsers/jsoncpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jsonfusion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tucher/JsonFusion REF "v${VERSION}" SHA512 fe8cb3068fc5ce7f5bacb708eb4c9947fa241b7cf29d50b1d285f5df243a164e063701de9bf1e486d6a38be0c9d0677d0ed0450b70e3878cdad1dbbae363bc36 HEAD_REF master ) # Install JsonFusion headers, excluding experimental 3party directory # (3party is only used with JSONFUSION_FP_BACKEND=1, default is 0 with in-house implementation) file(INSTALL "${SOURCE_PATH}/include/JsonFusion" DESTINATION "${CURRENT_PACKAGES_DIR}/include" PATTERN "3party" EXCLUDE) # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/jsonfusion/vcpkg.json ================================================ { "name": "jsonfusion", "version": "0.710.0", "description": "Type-driven JSON/CBOR parser with declarative validation. Header-only C++23 library.", "homepage": "https://github.com/tucher/JsonFusion", "license": "MIT", "dependencies": [ "boost-pfr" ] } ================================================ FILE: ports/jsonifier/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO realtimechris/jsonifier REF "v${VERSION}" SHA512 d6465426218429a1597fa66b2d8cb912bce00831d663be7b8ea406267537dd6f455c1b99c3c8551dd8165a75d9dbe42fefedbad5979eb45d01e0286f08daad96 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.md") ================================================ FILE: ports/jsonifier/uninstall-head.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fc4ed65..23a9738 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,7 @@ set_target_properties( OUTPUT_NAME "jsonifier" CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF - PUBLIC_HEADER "${HEADERS}" + #PUBLIC_HEADER "${HEADERS}" ) target_include_directories( ================================================ FILE: ports/jsonifier/vcpkg.json ================================================ { "name": "jsonifier", "version": "0.9.98", "description": "A few classes for parsing and serializing json - very rapidly.", "homepage": "https://github.com/realtimechris/jsonifier", "license": "MIT", "supports": "(windows & x64 & !xbox) | (linux & x64) | (osx & x64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/jsonnet/0004-incorporate-md5.patch ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 2eb28d2..8116ac3 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -16,7 +16,8 @@ set(LIBJSONNET_HEADERS static_error.h string_utils.h unicode.h - vm.h) + vm.h + ../third_party/md5/md5.h) set(LIBJSONNET_SOURCE desugarer.cpp @@ -28,12 +29,13 @@ set(LIBJSONNET_SOURCE path_utils.cpp static_analysis.cpp string_utils.cpp - vm.cpp) + vm.cpp + ../third_party/md5/md5.cpp) if (BUILD_SHARED_BINARIES) add_library(libjsonnet ${LIBJSONNET_HEADERS} ${LIBJSONNET_SOURCE}) -add_dependencies(libjsonnet md5 stdlib) -target_link_libraries(libjsonnet md5 nlohmann_json::nlohmann_json ryml) +add_dependencies(libjsonnet stdlib) +target_link_libraries(libjsonnet nlohmann_json::nlohmann_json ryml) file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/../include/libjsonnet.h JSONNET_VERSION_DEF REGEX "[#]define[ \t]+LIB_JSONNET_VERSION[ \t]+") @@ -59,8 +61,8 @@ endif() if (BUILD_STATIC_LIBS) # Static library for jsonnet command-line tool. add_library(libjsonnet_static STATIC ${LIBJSONNET_SOURCE}) - add_dependencies(libjsonnet_static md5 stdlib) - target_link_libraries(libjsonnet_static md5 nlohmann_json::nlohmann_json ryml) + add_dependencies(libjsonnet_static stdlib) + target_link_libraries(libjsonnet_static nlohmann_json::nlohmann_json ryml) set_target_properties(libjsonnet_static PROPERTIES OUTPUT_NAME jsonnet) install(TARGETS libjsonnet_static DESTINATION "${CMAKE_INSTALL_LIBDIR}") target_include_directories(libjsonnet_static INTERFACE ================================================ FILE: ports/jsonnet/0005-use-upstream-rapidyaml.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ebf359..8562715 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ option(BUILD_STATIC_LIBS "Build a static libjsonnet." ON) option(BUILD_SHARED_BINARIES "Link binaries to the shared libjsonnet instead of the static one." OFF) option(USE_SYSTEM_GTEST "Use system-provided gtest library" OFF) option(USE_SYSTEM_JSON "Use the system-provided json library" OFF) +option(USE_SYSTEM_RYML "Use the system-provided rapidyaml library" OFF) # TODO: Support using a system Rapid YAML install. set(GLOBAL_OUTPUT_PATH_SUFFIX "" CACHE STRING "Output artifacts directory.") @@ -104,6 +105,11 @@ if(USE_SYSTEM_JSON) else() add_subdirectory(third_party/json) endif() +if(USE_SYSTEM_RYML) + find_package(ryml CONFIG REQUIRED) +else() + add_subdirectory(third_party/rapidyaml/rapidyaml ryml) +endif() # Look for libraries in global output path. link_directories(${GLOBAL_OUTPUT_PATH}) @@ -125,7 +131,6 @@ endif() add_subdirectory(include) add_subdirectory(stdlib) add_subdirectory(third_party/md5) -add_subdirectory(third_party/rapidyaml) add_subdirectory(core) add_subdirectory(cpp) add_subdirectory(cmd) diff --git a/core/vm.cpp b/core/vm.cpp index faf6d54..f14ddbe 100644 --- a/core/vm.cpp +++ b/core/vm.cpp @@ -30,7 +30,8 @@ limitations under the License. #include #include "md5.h" #include "parser.h" -#include "ryml_all.hpp" +#include "ryml/ryml.hpp" +#include "ryml/ryml_std.hpp" #include "state.h" #include "static_analysis.h" #include "string_utils.h" ================================================ FILE: ports/jsonnet/0006-use-cxx17.patch ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 8116ac3..25cebd0 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -36,6 +36,7 @@ if (BUILD_SHARED_BINARIES) add_library(libjsonnet ${LIBJSONNET_HEADERS} ${LIBJSONNET_SOURCE}) add_dependencies(libjsonnet stdlib) target_link_libraries(libjsonnet nlohmann_json::nlohmann_json ryml) +target_compile_features(libjsonnet PRIVATE cxx_std_17) file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/../include/libjsonnet.h JSONNET_VERSION_DEF REGEX "[#]define[ \t]+LIB_JSONNET_VERSION[ \t]+") @@ -63,6 +64,7 @@ if (BUILD_STATIC_LIBS) add_library(libjsonnet_static STATIC ${LIBJSONNET_SOURCE}) add_dependencies(libjsonnet_static stdlib) target_link_libraries(libjsonnet_static nlohmann_json::nlohmann_json ryml) + target_compile_features(libjsonnet_static PRIVATE cxx_std_17) set_target_properties(libjsonnet_static PROPERTIES OUTPUT_NAME jsonnet) install(TARGETS libjsonnet_static DESTINATION "${CMAKE_INSTALL_LIBDIR}") target_include_directories(libjsonnet_static INTERFACE ================================================ FILE: ports/jsonnet/001-enable-msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dd17367..3ebf359 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 2.8.7) project(jsonnet C CXX) +add_definitions(-D_CRT_SECURE_NO_WARNINGS) include(ExternalProject) include(GNUInstallDirs) @@ -33,6 +34,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${GLOBAL_OUTPUT_PATH}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${GLOBAL_OUTPUT_PATH}) # Compiler flags. +if(0) if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") set(OPT "-O3") @@ -43,6 +45,7 @@ else() message(FATAL_ERROR "Compiler ${CMAKE_CXX_COMPILER_ID} not supported") endif() +endif() set(CMAKE_CXX_STANDARD 17) diff --git a/cmd/CMakeLists.txt b/cmd/CMakeLists.txt index c032f02..d80d2a0 100644 --- a/cmd/CMakeLists.txt +++ b/cmd/CMakeLists.txt @@ -13,5 +13,5 @@ if (BUILD_JSONNETFMT OR BUILD_TESTS) add_dependencies(jsonnetfmt libjsonnet_for_binaries) target_link_libraries(jsonnetfmt libjsonnet_for_binaries) - install(TARGETS jsonnetfmt DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(TARGETS jsonnetfmt DESTINATION tools/jsonnet) endif() diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 8ab3777..9e8ffe2 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -30,7 +30,7 @@ set(LIBJSONNET_SOURCE string_utils.cpp vm.cpp) -add_library(libjsonnet SHARED ${LIBJSONNET_HEADERS} ${LIBJSONNET_SOURCE}) +add_library(libjsonnet ${LIBJSONNET_HEADERS} ${LIBJSONNET_SOURCE}) add_dependencies(libjsonnet md5 stdlib) target_link_libraries(libjsonnet md5 nlohmann_json::nlohmann_json ryml) @@ -49,7 +49,7 @@ set_target_properties(libjsonnet PROPERTIES OUTPUT_NAME jsonnet install(TARGETS libjsonnet RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_BINDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") target_include_directories(libjsonnet INTERFACE $) diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index a481d9f..002006f 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -2,6 +2,7 @@ add_executable(to_c_array to_c_array.cpp) +if(0) # Custom command that will only build stdlib when it changes. add_custom_command( OUTPUT ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h @@ -13,3 +14,6 @@ add_custom_command( # Standard library build target that libjsonnet can depend on. add_custom_target(stdlib ALL DEPENDS ${PROJECT_SOURCE_DIR}/core/std.jsonnet.h) +else() +add_custom_target(stdlib) +endif() ================================================ FILE: ports/jsonnet/002-fix-dependency-and-install.patch ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 9e8ffe2..2eb28d2 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -30,6 +30,7 @@ set(LIBJSONNET_SOURCE string_utils.cpp vm.cpp) +if (BUILD_SHARED_BINARIES) add_library(libjsonnet ${LIBJSONNET_HEADERS} ${LIBJSONNET_SOURCE}) add_dependencies(libjsonnet md5 stdlib) target_link_libraries(libjsonnet md5 nlohmann_json::nlohmann_json ryml) @@ -53,6 +54,7 @@ install(TARGETS libjsonnet PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") target_include_directories(libjsonnet INTERFACE $) +endif() if (BUILD_STATIC_LIBS) # Static library for jsonnet command-line tool. @@ -112,3 +114,4 @@ if (BUILD_TESTS) add_test(jsonnet_test_snippet ${GLOBAL_OUTPUT_PATH}/jsonnet -e ${TEST_SNIPPET}) endif() +install(FILES ${LIB_HEADER} DESTINATION include) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 153a4a1..08bba4c 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -8,8 +8,8 @@ set(LIBJSONNETPP_SOURCE libjsonnet++.cpp ) +if (BUILD_SHARED_BINARIES) add_library(libjsonnet++ SHARED ${LIBJSONNETPP_HEADERS} ${LIBJSONNETPP_SOURCE}) -add_dependencies(libjsonnet++ jsonnet) target_link_libraries(libjsonnet++ libjsonnet) # CMake prepends CMAKE_SHARED_LIBRARY_PREFIX to shared libraries, so without @@ -25,11 +25,11 @@ install(TARGETS libjsonnet++ PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") target_include_directories(libjsonnet++ INTERFACE $) +endif() if (BUILD_STATIC_LIBS) # Static library for jsonnet command-line tool. add_library(libjsonnet++_static STATIC ${LIBJSONNETPP_SOURCE}) - add_dependencies(libjsonnet++_static jsonnet) target_link_libraries(libjsonnet++_static libjsonnet_static) set_target_properties(libjsonnet++_static PROPERTIES OUTPUT_NAME jsonnet++) install(TARGETS libjsonnet++_static DESTINATION "${CMAKE_INSTALL_LIBDIR}") @@ -43,6 +43,7 @@ else() add_library(libjsonnet++_for_binaries ALIAS libjsonnet++_static) endif() +install(FILES ${LIBJSONNETPP_HEADERS} DESTINATION include) # Tests function(add_test_executablepp test_name) if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/${test_name}.cpp) ================================================ FILE: ports/jsonnet/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/jsonnet REF "v${VERSION}" SHA512 4fc39bd5e138623ba1ac7cf88594ea7957e9c3bcb952f0e9e346059a9de08eac3f60788376c31a70b34d6d522737a67ad4a122fadcd9621868722c23d9361d05 HEAD_REF master PATCHES 001-enable-msvc.patch 002-fix-dependency-and-install.patch 0004-incorporate-md5.patch 0005-use-upstream-rapidyaml.patch 0006-use-cxx17.patch ) # see https://github.com/google/jsonnet/blob/v0.18.0/Makefile#L220 if(VCPKG_TARGET_IS_WINDOWS) find_program(PWSH_PATH pwsh) vcpkg_execute_required_process( COMMAND "${PWSH_PATH}" -Command "((Get-Content -AsByteStream \"${SOURCE_PATH}/stdlib/std.jsonnet\") -join ',') + ',0' | Out-File -Encoding Ascii \"${SOURCE_PATH}/core/std.jsonnet.h\"" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "std.jsonnet" ) else() vcpkg_execute_required_process( COMMAND bash -c "((od -v -Anone -t u1 \"${SOURCE_PATH}/stdlib/std.jsonnet\" | tr ' ' '\\n' | grep -v '^$' | tr '\\n' ',' ) && echo '0') > \"${SOURCE_PATH}/core/std.jsonnet.h\"" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "std.jsonnet" ) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SHARED_BINARIES=${BUILD_SHARED} -DBUILD_STATIC_LIBS=${BUILD_STATIC} -DBUILD_JSONNET=OFF -DBUILD_JSONNETFMT=OFF -DBUILD_TESTS=OFF -DUSE_SYSTEM_JSON=ON -DUSE_SYSTEM_RYML=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/jsonnet") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jsonnet/vcpkg.json ================================================ { "name": "jsonnet", "version": "0.21.0", "port-version": 1, "description": "Jsonnet - The data templating language", "homepage": "https://github.com/google/jsonnet", "license": "Apache-2.0", "dependencies": [ "nlohmann-json", "ryml", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/juce/0001-build-allow-setting-JUCE_PLUGINHOST_LADSPA.patch ================================================ diff --git a/extras/AudioPluginHost/CMakeLists.txt b/extras/AudioPluginHost/CMakeLists.txt index 852796383..37a5306c9 100644 --- a/extras/AudioPluginHost/CMakeLists.txt +++ b/extras/AudioPluginHost/CMakeLists.txt @@ -51,7 +51,7 @@ target_compile_definitions(AudioPluginHost PRIVATE JUCE_CONTENT_SHARING=1 JUCE_DIRECTSOUND=1 JUCE_DISABLE_CAUTIOUS_PARAMETER_ID_CHECKING=1 - JUCE_PLUGINHOST_LADSPA=1 + JUCE_PLUGINHOST_LADSPA=${JUCE_PLUGINHOST_LADSPA} JUCE_PLUGINHOST_LV2=1 JUCE_PLUGINHOST_VST3=1 JUCE_PLUGINHOST_VST=0 -- 2.34.1 ================================================ FILE: ports/juce/0004-install-paths.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4262a9852..a46b51f1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,14 +167,14 @@ if(("${CMAKE_SOURCE_DIR}" STREQUAL "${JUCE_SOURCE_DIR}") AND (NOT JUCE_BUILD_HEL _juce_add_lv2_manifest_helper_target() if(TARGET juce_lv2_helper) - install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}") + install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "${JUCE_TOOL_INSTALL_DIR}") install(EXPORT LV2_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}") endif() _juce_add_vst3_manifest_helper_target() if(TARGET juce_vst3_helper) - install(TARGETS juce_vst3_helper EXPORT VST3_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}") + install(TARGETS juce_vst3_helper EXPORT VST3_HELPER DESTINATION "${JUCE_TOOL_INSTALL_DIR}") install(EXPORT VST3_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}") endif() endif() -- 2.34.1 ================================================ FILE: ports/juce/avoid-macos-15-deprecations.patch ================================================ diff --git a/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h b/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h index 4562abf..8b1883b 100644 --- a/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h +++ b/modules/juce_gui_basics/native/juce_PerScreenDisplayLinks_mac.h @@ -23,6 +23,9 @@ ============================================================================== */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + namespace juce { @@ -302,3 +305,5 @@ private: }; } // namespace juce + +#pragma clang diagnostic pop ================================================ FILE: ports/juce/devendor-oboe.diff ================================================ diff --git a/extras/Build/CMake/JUCEModuleSupport.cmake b/extras/Build/CMake/JUCEModuleSupport.cmake index afefe2d..2dd2ecf 100644 --- a/extras/Build/CMake/JUCEModuleSupport.cmake +++ b/extras/Build/CMake/JUCEModuleSupport.cmake @@ -603,8 +603,10 @@ function(juce_add_module module_path) endif() if((${module_name} STREQUAL "juce_audio_devices") AND (CMAKE_SYSTEM_NAME STREQUAL "Android")) - add_subdirectory("${module_path}/native/oboe") - target_link_libraries(${module_name} INTERFACE oboe) + find_path(JUCE_OBOE_INCLUDE_DIR NAMES oboe/Oboe.h REQUIRED) + target_include_directories(${module_name} INTERFACE "${JUCE_OBOE_INCLUDE_DIR}") + find_library(JUCE_OBOE_LIBRARY NAMES oboe REQUIRED) + target_link_libraries(${module_name} INTERFACE "${JUCE_OBOE_LIBRARY}" log OpenSLES) endif() if((${module_name} STREQUAL "juce_opengl") AND (CMAKE_SYSTEM_NAME STREQUAL "Android")) ================================================ FILE: ports/juce/gcc-has-builtin.diff ================================================ diff --git a/modules/juce_graphics/juce_graphics_Harfbuzz.cpp b/modules/juce_graphics/juce_graphics_Harfbuzz.cpp index a491af9..44e934a 100644 --- a/modules/juce_graphics/juce_graphics_Harfbuzz.cpp +++ b/modules/juce_graphics/juce_graphics_Harfbuzz.cpp @@ -84,7 +84,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations", // -Wexpansion-to-defined on gcc 7. There's no way to turn that warning off // locally, so we sidestep it. #if ! defined(__has_builtin) && defined(__GNUC__) && __GNUC__ >= 5 - #define __has_builtin(x) 1 #endif #include ================================================ FILE: ports/juce/install-extras.diff ================================================ diff --git a/extras/CMakeLists.txt b/extras/CMakeLists.txt index 7f5555e..539f1cb 100644 --- a/extras/CMakeLists.txt +++ b/extras/CMakeLists.txt @@ -35,5 +35,14 @@ add_subdirectory(AudioPerformanceTest) add_subdirectory(AudioPluginHost) add_subdirectory(BinaryBuilder) add_subdirectory(NetworkGraphicsDemo) +if(NOT ANDROID AND NOT IOS) add_subdirectory(Projucer) +endif() add_subdirectory(UnitTestRunner) + +file(GLOB tools RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/*") +foreach(tool IN LISTS tools) + if(TARGET "${tool}") + install(TARGETS "${tool}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}") + endif() +endforeach() ================================================ FILE: ports/juce/juceaide.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 49d85c6..76209f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,5 @@ +# Save cmake input for nested juceaide build +get_cmake_property(vcpkg_input_vars CACHE_VARIABLES) # ============================================================================== # # This file is part of the JUCE framework. @@ -142,7 +144,10 @@ set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules") set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}") -set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}") +set(JUCEAIDE_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/juce/${JUCE_JUCEAIDE_NAME}") +if(WITH_JUCEAIDE) + set(JUCEAIDE_PATH "${WITH_JUCEAIDE}") +endif() configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in" "${JUCE_BINARY_DIR}/JUCEConfig.cmake" PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH diff --git a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt index 17e5520974..b8cab564ec 100644 --- a/extras/Build/juceaide/CMakeLists.txt +++ b/extras/Build/juceaide/CMakeLists.txt @@ -60,6 +60,11 @@ if(JUCE_BUILD_HELPER_TOOLS) export(TARGETS juceaide NAMESPACE juce_tools:: FILE "${JUCE_BINARY_DIR}/JUCEToolsExport.cmake") + +elseif(WITH_JUCEAIDE) + add_executable(juceaide IMPORTED GLOBAL) + set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${WITH_JUCEAIDE}") + add_executable(juce::juceaide ALIAS juceaide) else() message(STATUS "Configuring juceaide") @@ -124,14 +129,25 @@ else() list(APPEND PASSTHROUGH_ARGS "-DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}") endif() + list(REMOVE_ITEM vcpkg_input_vars "JUCE_BUILD_EXTRAS") + foreach(var IN LISTS vcpkg_input_vars) + list(APPEND PASSTHROUGH_ARGS "-D${var}=$CACHE{${var}}") + endforeach() + + if (NOT DEFINED CMAKE_BUILD_TYPE) + set(JUCE_JUCEAIDE_BUILD_TYPE "Release") + else() + set(JUCE_JUCEAIDE_BUILD_TYPE "${CMAKE_BUILD_TYPE}") + endif() + # Looks like we're bootstrapping, reinvoke CMake execute_process(COMMAND "${CMAKE_COMMAND}" "." "-B${JUCE_BINARY_DIR}/tools" "-G${CMAKE_GENERATOR}" "-DCMAKE_MAKE_PROGRAM=${CMAKE_MAKE_PROGRAM}" - "-DCMAKE_CONFIGURATION_TYPES=Custom" - "-DCMAKE_BUILD_TYPE=Custom" + "-DCMAKE_CONFIGURATION_TYPES=${JUCE_JUCEAIDE_BUILD_TYPE}" + "-DCMAKE_BUILD_TYPE=${JUCE_JUCEAIDE_BUILD_TYPE}" "-DJUCE_BUILD_HELPER_TOOLS=ON" "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" ${PASSTHROUGH_ARGS} @@ -148,7 +164,8 @@ else() execute_process(COMMAND "${CMAKE_COMMAND}" --build "${JUCE_BINARY_DIR}/tools" - --config Custom + --config ${JUCE_JUCEAIDE_BUILD_TYPE} + --target juceaide OUTPUT_VARIABLE command_output ERROR_VARIABLE command_output RESULT_VARIABLE result_variable) @@ -163,7 +180,14 @@ else() include("${JUCE_BINARY_DIR}/tools/JUCEToolsExport.cmake") add_executable(juceaide IMPORTED GLOBAL) - get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_CUSTOM) + + string(TOUPPER ${JUCE_JUCEAIDE_BUILD_TYPE} JUCE_JUCEAIDE_BUILD_TYPE_UPPER) + + get_target_property(imported_location juce_tools::juceaide IMPORTED_LOCATION_${JUCE_JUCEAIDE_BUILD_TYPE_UPPER}) + if(NOT imported_location) + message(FATAL_ERROR "Failed to find imported location for juceaide") + endif() + set_target_properties(juceaide PROPERTIES IMPORTED_LOCATION "${imported_location}") add_executable(juce::juceaide ALIAS juceaide) ================================================ FILE: ports/juce/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # no libraries vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO juce-framework/JUCE REF "${VERSION}" SHA512 ca404d94f8f79d9644f391342807dde279d1d313ef597a5d7fa88760e0459f2639cb98b6523c3ae71b2641357df63353c1f32e9b33dd9f050f5651fba470ec33 HEAD_REF master PATCHES 0001-build-allow-setting-JUCE_PLUGINHOST_LADSPA.patch 0004-install-paths.patch gcc-has-builtin.diff devendor-oboe.diff install-extras.diff juceaide.diff prefer-cmake.diff vcpkg-compile-definitions.diff avoid-macos-15-deprecations.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/modules/juce_audio_devices/native/oboe") set(feature_compile_definitions "curl" JUCE_USE_CURL "fontconfig" JUCE_USE_FONTCONFIG "freetype" JUCE_USE_FREETYPE "jack" JUCE_JACK "ladspa" JUCE_PLUGINHOST_LADSPA "web-browser" JUCE_WEB_BROWSER "xcursor" JUCE_USE_XCURSOR "xinerama" JUCE_USE_XINERAMA "xrandr" JUCE_USE_XRANDR "xrender" JUCE_USE_XRENDER ) set(enforced_definitions "") while(feature_compile_definitions) list(POP_FRONT feature_compile_definitions feature compile_definition) if(NOT feature IN_LIST FEATURES) # Enforce controlled absence of dependency list(APPEND enforced_definitions "${compile_definition}=0") endif() endwhile() list(JOIN enforced_definitions "\n " enforced_definitions) file(WRITE "${SOURCE_PATH}/extras/Build/CMake/vcpkg-compile-definitions.cmake" " function(vcpkg_juce_add_compile_definitions target) target_compile_definitions(\${target} INTERFACE ${enforced_definitions} ) endfunction() ") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "extras" JUCE_BUILD_EXTRAS "ladspa" JUCE_PLUGINHOST_LADSPA ) # Based on https://github.com/juce-framework/JUCE/blob/master/docs/Linux%20Dependencies.md if(VCPKG_TARGET_IS_LINUX) message("juce currently requires the following programs from the system package manager: libx11-dev libxcomposite-dev libxext-dev On Ubuntu derivatives: sudo apt install libx11-dev libxcomposite-dev libxext-dev ") if(JUCE_OPENGL) message("juce with opengl feature requires the following packages via the system package manager: libglu1-mesa-dev mesa-common-dev On Ubuntu derivatives: sudo apt install libglu1-mesa-dev mesa-common-dev ") endif() if(${JUCE_PLUGINHOST_LADSPA}) message("juce with ladspa feature requires the following packages via the system package manager: ladspa-sdk On Ubuntu derivatives: sudo apt install ladspa-sdk ") endif() if(JUCE_USE_XCURSOR) message("juce with xcursor feature requires the following packages via the system package manager: libxcursor-dev On Ubuntu derivatives: sudo apt install libxcursor-dev ") endif() if(JUCE_USE_XINERAMA) message("juce with xinerama feature requires the following packages via the system package manager: libxinerama-dev On Ubuntu derivatives: sudo apt install libxinerama-dev ") endif() if(JUCE_USE_XRANDR) message("juce with xrandr feature requires the following packages via the system package manager: libxrandr-dev On Ubuntu derivatives: sudo apt install libxrandr-dev ") endif() if(JUCE_USE_XRENDER) message("juce with xrender feature requires the following packages via the system package manager: libxrender-dev On Ubuntu derivatives: sudo apt install libxrender-dev ") endif() if(JUCE_WEB_BROWSER) message("juce with web-browser feature requires the following packages via the system package manager: libwebkit2gtk-4.0-dev On Ubuntu derivatives: sudo apt install libwebkit2gtk-4.0-dev ") endif() endif() if(VCPKG_CROSSCOMPILING) # Constructed with CURRENT_INSTALLED_DIR, for vcpkg_cmake_config_fixup. list(APPEND FEATURE_OPTIONS "-DWITH_JUCEAIDE=${CURRENT_INSTALLED_DIR}/../${HOST_TRIPLET}/tools/${PORT}/juceaide${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DJUCE_ENABLE_MODULE_SOURCE_GROUPS=ON -DJUCE_INSTALL_DESTINATION=share/juce -DJUCE_TOOL_INSTALL_DIR=bin ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES JUCE_TOOL_INSTALL_DIR JUCE_PLUGINHOST_LADSPA ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(GLOB icons "${CURRENT_PACKAGES_DIR}/bin/*.ico") if(icons) file(REMOVE_RECURSE ${icons}) endif() set(tool_names "") file(GLOB tools "${CURRENT_PACKAGES_DIR}/bin/*") set(name_component NAME_WE) if(VCPKG_TARGET_EXECUTABLE_SUFFIX STREQUAL "") set(name_component NAME) endif() foreach(tool IN LISTS tools) get_filename_component(name "${tool}" ${name_component}) list(APPEND tool_names "${name}") endforeach() if(tool_names) vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() # Files not generated for Android or iOS file(TOUCH "${CURRENT_PACKAGES_DIR}/share/juce/LV2_HELPER.cmake") file(TOUCH "${CURRENT_PACKAGES_DIR}/share/juce/VST3_HELPER.cmake") # Catch libs which must be de-vendored, e.g. oboe. # This is to avoid ownership conflicts. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/include/oboe") if(EXISTS "${CURRENT_PACKAGES_DIR}/lib") message(${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL} "juce must not install files to ${CURRENT_PACKAGES_DIR}/lib.") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/juce/prefer-cmake.diff ================================================ diff --git a/extras/Build/CMake/JUCEModuleSupport.cmake b/extras/Build/CMake/JUCEModuleSupport.cmake index e89cc5d..afefe2d 100644 --- a/extras/Build/CMake/JUCEModuleSupport.cmake +++ b/extras/Build/CMake/JUCEModuleSupport.cmake @@ -390,10 +390,40 @@ function(_juce_create_pkgconfig_target name) return() endif() + # Prefer CMake over pkg-config + set(link_libs "") + if("alsa" IN_LIST JUCE_ARG_UNPARSED_ARGUMENTS) + list(REMOVE_ITEM JUCE_ARG_UNPARSED_ARGUMENTS "alsa") + find_package(ALSA REQUIRED) + list(APPEND link_libs ALSA::ALSA) + endif() + if("fontconfig" IN_LIST JUCE_ARG_UNPARSED_ARGUMENTS) + list(REMOVE_ITEM JUCE_ARG_UNPARSED_ARGUMENTS "fontconfig") + find_package(Fontconfig REQUIRED) + list(APPEND link_libs Fontconfig::Fontconfig) + endif() + if("freetype2" IN_LIST JUCE_ARG_UNPARSED_ARGUMENTS) + list(REMOVE_ITEM JUCE_ARG_UNPARSED_ARGUMENTS "freetype2") + find_package(Freetype REQUIRED) + list(APPEND link_libs Freetype::Freetype) + endif() + if("gl" IN_LIST JUCE_ARG_UNPARSED_ARGUMENTS) + list(REMOVE_ITEM JUCE_ARG_UNPARSED_ARGUMENTS "gl") + find_package(OpenGL REQUIRED) + list(APPEND link_libs OpenGL::GL) + endif() + if("libcurl" IN_LIST JUCE_ARG_UNPARSED_ARGUMENTS) + list(REMOVE_ITEM JUCE_ARG_UNPARSED_ARGUMENTS "libcurl") + find_package(CURL REQUIRED) + list(APPEND link_libs CURL::libcurl) + endif() + if(JUCE_ARG_UNPARSED_ARGUMENTS) find_package(PkgConfig REQUIRED) pkg_check_modules(${name} ${JUCE_ARG_UNPARSED_ARGUMENTS}) + endif() add_library(pkgconfig_${name} INTERFACE) + set_target_properties(pkgconfig_${name} PROPERTIES INTERFACE_LINK_LIBRARIES "${link_libs}") add_library(juce::pkgconfig_${name} ALIAS pkgconfig_${name}) install(TARGETS pkgconfig_${name} EXPORT JUCE) ================================================ FILE: ports/juce/usage ================================================ juce provides the following common CMake targets: find_package(JUCE CONFIG REQUIRED) target_link_libraries(main PRIVATE juce::juce_core juce::juce_audio_basics juce::juce_events juce::juce_audio_devices juce::juce_recommended_config_flags juce::juce_recommended_lto_flags juce::juce_recommended_warning_flags) See the Juce CMake API documentation and the License for details on how to create targets. Here are other available targets: juce::juce_graphics juce::juce_gui_basics juce::juce_gui_extra juce::juce_opengl juce::juce_analytics juce::juce_audio_formats juce::juce_audio_plugin_client juce::juce_audio_processors juce::juce_audio_utils juce::juce_box2d juce::juce_cryptography juce::juce_data_structures juce::juce_dsp juce::juce_osc juce::juce_product_unlocking juce::juce_video ================================================ FILE: ports/juce/vcpkg-compile-definitions.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 76209f5..69dc639 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -167,6 +167,7 @@ install(FILES "${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCECheckAtomic.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEHelperTargets.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEModuleSupport.cmake" + "${JUCE_CMAKE_UTILS_DIR}/vcpkg-compile-definitions.cmake" "${JUCE_CMAKE_UTILS_DIR}/JUCEUtils.cmake" "${JUCE_CMAKE_UTILS_DIR}/JuceLV2Defines.h.in" "${JUCE_CMAKE_UTILS_DIR}/LaunchScreen.storyboard" diff --git a/extras/Build/CMake/JUCEModuleSupport.cmake b/extras/Build/CMake/JUCEModuleSupport.cmake index 2dd2ecf..635c50e 100644 --- a/extras/Build/CMake/JUCEModuleSupport.cmake +++ b/extras/Build/CMake/JUCEModuleSupport.cmake @@ -96,8 +96,10 @@ endif() # ================================================================================================== +include("${CMAKE_CURRENT_LIST_DIR}/vcpkg-compile-definitions.cmake") function(_juce_add_interface_library target) add_library(${target} INTERFACE) + vcpkg_juce_add_compile_definitions(${target}) target_sources(${target} INTERFACE ${ARGN}) endfunction() ================================================ FILE: ports/juce/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "juce", "version": "8.0.7", "description": "Open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, AAX and LV2 audio plug-ins and plug-in hosts", "homepage": "https://juce.com", "license": null, "supports": "!uwp", "dependencies": [ { "name": "juce", "host": true, "default-features": false, "features": [ "juceaide" ] }, { "name": "oboe", "platform": "android" }, "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "alsa", "platform": "linux" }, { "name": "curl", "platform": "freebsd | linux | openbsd" }, { "name": "fontconfig", "platform": "freebsd | linux | openbsd" }, { "name": "xcursor", "platform": "linux" }, { "name": "xinerama", "platform": "linux" }, { "name": "xrandr", "platform": "linux" }, { "name": "xrender", "platform": "linux" } ], "features": { "alsa": { "description": "Enable ALSA support", "dependencies": [ "alsa" ] }, "curl": { "description": "Use CURL for network support", "supports": "freebsd | linux | openbsd", "dependencies": [ { "name": "curl", "default-features": false } ] }, "extras": { "description": "Enable JUCE extras such as Projucer, AudioPluginHost, BinaryBuilder.", "dependencies": [ { "name": "juce", "default-features": false, "features": [ "freetype" ] }, { "name": "juce", "default-features": false, "features": [ "alsa" ], "platform": "linux" }, { "name": "juce", "default-features": false, "features": [ "curl" ], "platform": "freebsd | linux | openbsd" } ] }, "fontconfig": { "description": "Enable Fontconfig support", "dependencies": [ "fontconfig", { "name": "juce", "default-features": false, "features": [ "freetype" ] } ] }, "freetype": { "description": "Enable FreeType support", "dependencies": [ "freetype" ] }, "jack": { "description": "Enable JACK audio support", "dependencies": [ "jack2" ] }, "juceaide": { "description": "Build the juceaide tool", "supports": "native", "dependencies": [ { "name": "juce", "default-features": false, "features": [ "freetype" ] } ] }, "ladspa": { "description": "Enable LADSPA plugin host support." }, "web-browser": { "description": "Enable WebBrowser support", "dependencies": [ { "name": "webview2", "platform": "windows" } ] }, "xcursor": { "description": "Enable XCursor support" }, "xinerama": { "description": "Enable Xinerama support", "dependencies": [ "libxinerama" ] }, "xrandr": { "description": "Enable XRandR support", "dependencies": [ "libxrandr" ] }, "xrender": { "description": "Enable XRender support", "dependencies": [ "libxrender" ] } } } ================================================ FILE: ports/jwsung91-unilink/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jwsung91/unilink REF v${VERSION} SHA512 7c7578fd49b6138bfcb9f7687e3271ad7497431872e26f3d0e4c9158ceac81e9c7cceaa56d7112e350e04f3c94e4544e036909518038c2407851d0a45ed92a45 ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" UNILINK_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNILINK_BUILD_SHARED=${UNILINK_BUILD_SHARED} -DUNILINK_BUILD_TESTS=OFF -DUNILINK_BUILD_EXAMPLES=OFF -DUNILINK_BUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME unilink CONFIG_PATH "lib/cmake/unilink" ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/jwsung91-unilink/vcpkg.json ================================================ { "name": "jwsung91-unilink", "version": "0.4.3", "description": "Simple, cross-platform async C++ communication library for Serial, TCP, and UDP", "homepage": "https://github.com/jwsung91/unilink", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-system", "boost-thread", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/jwt-cpp/picojson_from_vcpkg.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2520e4e..93034ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ elseif(${JWT_SSL_LIBRARY} MATCHES "wolfSSL") endif() if(NOT JWT_DISABLE_PICOJSON AND JWT_EXTERNAL_PICOJSON) - find_package(picojson 1.3.0 REQUIRED) + find_path(PICOJSON_INCLUDE_DIR "picojson/picojson.h" REQUIRED) endif() if(JWT_BUILD_EXAMPLES OR JWT_BUILD_TESTS) @@ -132,7 +132,7 @@ if(${JWT_SSL_LIBRARY} MATCHES "wolfSSL") endif() if(NOT JWT_DISABLE_PICOJSON AND JWT_EXTERNAL_PICOJSON) - target_link_libraries(jwt-cpp INTERFACE picojson::picojson) + target_include_directories(jwt-cpp INTERFACE "${PICOJSON_INCLUDE_DIR}") endif() # Hunter needs relative paths so the files are placed correctly diff --git a/cmake/jwt-cpp-config.cmake.in b/cmake/jwt-cpp-config.cmake.in index d0e7cd0..ba563a2 100644 --- a/cmake/jwt-cpp-config.cmake.in +++ b/cmake/jwt-cpp-config.cmake.in @@ -13,8 +13,4 @@ else() find_dependency(${JWT_SSL_LIBRARY} REQUIRED) endif() -if(NOT JWT_DISABLE_PICOJSON AND JWT_EXTERNAL_PICOJSON) - find_dependency(picojson REQUIRED) -endif() - include("${CMAKE_CURRENT_LIST_DIR}/jwt-cpp-targets.cmake") ================================================ FILE: ports/jwt-cpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Thalhammer/jwt-cpp REF "v${VERSION}" SHA512 9a2725228565d671e065a4647dad38f36251a4ee07c796cac35252557134a20c2dc260f62c011438c7fbde57f5c511bb0096569512c0aebdae048c7a626805b7 HEAD_REF master PATCHES picojson_from_vcpkg.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/include/picojson") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES picojson JWT_DISABLE_PICOJSON ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DJWT_EXTERNAL_PICOJSON=ON -DJWT_BUILD_EXAMPLES=OFF -DJWT_CMAKE_FILES_INSTALL_DIR=share/${PORT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/jwt-cpp/vcpkg.json ================================================ { "name": "jwt-cpp", "version-semver": "0.7.2", "description": "A header only library for creating and validating json web tokens in c++", "homepage": "https://github.com/Thalhammer/jwt-cpp", "license": "MIT", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "picojson": { "description": "Use picojson for JSON handling", "dependencies": [ "picojson" ] } } } ================================================ FILE: ports/jxrlib/CMakeLists.txt ================================================ # Copyright Mathieu Malaterre # BSD (Same as jxrlib) # Based on https://jxrlib.codeplex.com/discussions/440294 # and modified for vcpkg packaging cmake_minimum_required(VERSION 2.8) project(jxrlib C) # Need shared libs for ABI option(BUILD_SHARED_LIBS "Build shared libraries" ON) # Add a debug postfix set(CMAKE_DEBUG_POSTFIX "d") # helper macro to preserve original Makefile convention macro(JXR_MAKE_OBJ SET_NAME) foreach(src ${SRC_${SET_NAME}}) list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src}) endforeach() endmacro() if(NOT WIN32) add_definitions(-D__ANSI__) endif() if(NOT MSVC) add_compile_options( -Wno-error=implicit-function-declaration -Wno-endif-labels -Wno-incompatible-pointer-types # https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types ) endif() include(TestBigEndian) test_big_endian(ISBIGENDIAN) if(ISBIGENDIAN) set(DEF_ENDIAN _BIG__ENDIAN_) endif() set(DIR_SYS image/sys) set(DIR_DEC image/decode) set(DIR_ENC image/encode) set(DIR_GLUE jxrgluelib) set(DIR_TEST jxrtestlib) set(DIR_EXEC jxrencoderdecoder) if(NOT JXRLIB_INSTALL_BIN_DIR) set(JXRLIB_INSTALL_BIN_DIR "bin") endif() if(NOT JXRLIB_INSTALL_LIB_DIR) set(JXRLIB_INSTALL_LIB_DIR "lib") endif() if(NOT JXRLIB_INSTALL_INCLUDE_DIR) set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib") endif() include_directories( common/include ${DIR_SYS} ${DIR_GLUE} ${DIR_TEST} ) # JPEG-XR set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c) JXR_MAKE_OBJ(SYS) set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c) JXR_MAKE_OBJ(DEC) set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c) JXR_MAKE_OBJ(ENC) add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS}) set_property(TARGET jpegxr PROPERTY COMPILE_DEFINITIONS DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ) set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "") install(TARGETS jpegxr EXPORT JXRLibTargets RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR} ) # JXR-GLUE set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c) JXR_MAKE_OBJ(GLUE) set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c) JXR_MAKE_OBJ(TEST) add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST}) set_property(TARGET jxrglue PROPERTY COMPILE_DEFINITIONS DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN} ) set_property(TARGET jxrglue PROPERTY LINK_INTERFACE_LIBRARIES "") install(TARGETS jxrglue EXPORT JXRLibTargets RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} ARCHIVE DESTINATION ${JXRLIB_INSTALL_LIB_DIR} ) target_link_libraries(jxrglue jpegxr) # install rules install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h image/sys/windowsmediaphoto.h DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers ) install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} FILES_MATCHING PATTERN "*.h" ) ================================================ FILE: ports/jxrlib/FindJXR.cmake ================================================ # - Find JXR # Find the JXR library # This module defines # JXR_INCLUDE_DIRS, where to find jxrlib/JXRGlue.h # JXR_LIBRARIES, the libraries needed to use JXR # find_path(JXR_INCLUDE_DIRS NAMES JXRGlue.h PATH_SUFFIXES jxrlib ) mark_as_advanced(JXR_INCLUDE_DIRS) include(SelectLibraryConfigurations) find_library(JPEGXR_LIBRARY_RELEASE NAMES jpegxr PATH_SUFFIXES lib) find_library(JPEGXR_LIBRARY_DEBUG NAMES jpegxrd PATH_SUFFIXES lib) select_library_configurations(JPEGXR) find_library(JXRGLUE_LIBRARY_RELEASE NAMES jxrglue PATH_SUFFIXES lib) find_library(JXRGLUE_LIBRARY_DEBUG NAMES jxrglued PATH_SUFFIXES lib) select_library_configurations(JXRGLUE) set(JXR_LIBRARIES ${JXRGLUE_LIBRARY} ${JPEGXR_LIBRARY}) mark_as_advanced(JXR_LIBRARIES) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(JXR DEFAULT_MSG JXR_INCLUDE_DIRS JXR_LIBRARIES) ================================================ FILE: ports/jxrlib/fix-mingw.patch ================================================ diff --git a/common/include/wmspecstrings_adt.h b/common/include/wmspecstrings_adt.h index ca7f25f..d5eb028 100644 --- a/common/include/wmspecstrings_adt.h +++ b/common/include/wmspecstrings_adt.h @@ -36,6 +36,10 @@ __type_has_adt_prop(compname,valid_schars) \ __type_has_adt_prop(compname,correct_len) \ __nullterminated +#ifdef __MINGW32__ +#undef __$compname_props +#define __$compname_props +#endif #if defined(UNICODE) || defined(_UNICODE) #define __$TCHAR unsigned short #else diff --git a/image/sys/strcodec.h b/image/sys/strcodec.h index 695a454..9fad5b6 100644 --- a/image/sys/strcodec.h +++ b/image/sys/strcodec.h @@ -59,7 +59,7 @@ //#ifdef WIN32 #if defined(WIN32) && !defined(UNDER_CE) // WIN32 seems to be defined always in VS2005 for ARM platform #define PLATFORM_X86 -#include "..\x86\x86.h" +#include "../x86/x86.h" #endif #ifndef UNREFERENCED_PARAMETER diff --git a/jxrgluelib/JXRMeta.h b/jxrgluelib/JXRMeta.h index b7b5880..7c9d653 100644 --- a/jxrgluelib/JXRMeta.h +++ b/jxrgluelib/JXRMeta.h @@ -111,6 +111,18 @@ #define __out_win __out #endif +#ifndef __in +#define __in +#endif +#ifndef __out +#define __out +#endif +#ifndef __in_ecount +#define __in_ecount(x) +#endif +#ifndef __out_ecount +#define __out_ecount(x) +#endif //================================================================ ================================================ FILE: ports/jxrlib/guiddef.patch ================================================ diff --git a/common/include/guiddef.h b/common/include/jxrguiddef.h similarity index 100% rename from common/include/guiddef.h rename to common/include/jxrguiddef.h diff --git a/jxrgluelib/JXRGlue.h b/jxrgluelib/JXRGlue.h index d0b219c..c3e5d2b 100644 --- a/jxrgluelib/JXRGlue.h +++ b/jxrgluelib/JXRGlue.h @@ -32,7 +32,11 @@ extern "C" { #endif #include +#ifdef _WIN32 #include +#else +#include +#endif //================================================================ #define WMP_SDK_VERSION 0x0101 ================================================ FILE: ports/jxrlib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 4creators/jxrlib REF f7521879862b9085318e814c6157490dd9dbbdb4 SHA512 f5617cbe73b6b905cc6bba181e6a3efedd59584f7a8c90e0f34db580cfdad4239a2ab753df4e221f26a5c0db51475b021052e3b9e3ab3673573573b1d57f3fdb HEAD_REF master PATCHES guiddef.patch fix-mingw.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindJXR.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jxr") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jxr") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/jxrlib/usage ================================================ The package jxrlib provides CMake integration: find_package(JXR REQUIRED) target_include_directories(main PRIVATE ${JXR_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${JXR_LIBRARIES}) ================================================ FILE: ports/jxrlib/vcpkg-cmake-wrapper.cmake ================================================ set(JXR_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${JXR_PREV_MODULE_PATH}) ================================================ FILE: ports/jxrlib/vcpkg.json ================================================ { "name": "jxrlib", "version": "2019.10.9", "port-version": 7, "description": "Open source implementation of the jpegxr image format standard.", "homepage": "https://github.com/4creators/jxrlib", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/kaitai-struct-cpp-stl-runtime/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kaitai-io/kaitai_struct_cpp_stl_runtime REF "${VERSION}" SHA512 fd537c5d45d4c53de54c31b9286ff1100f74d62458fa2bbfd0d10d9cfedeb638e20c8d89a683b934310244de1de1093dbf79a06ac56a4918032ee31f0b49cbd7 HEAD_REF master PATCHES remove-werror.patch ) set(STRING_ENCODING_TYPE "NONE") if ("iconv" IN_LIST FEATURES) set(STRING_ENCODING_TYPE "ICONV") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTRING_ENCODING_TYPE=${STRING_ENCODING_TYPE} -DBUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kaitai-struct-cpp-stl-runtime/remove-werror.patch ================================================ diff --git a/Common.cmake b/Common.cmake index 31d8116..f46cbc3 100644 --- a/Common.cmake +++ b/Common.cmake @@ -12,9 +12,9 @@ endif() # # This method was taken from https://www.pragmaticlinux.com/2022/07/enable-compiler-warnings-with-cmake/ target_compile_options(${PROJECT_NAME} PRIVATE - $<$:/W4 /WX> + $<$:/W4> $<$>: - -Wall -Wextra -Wpedantic -Werror + -Wall -Wextra -Wpedantic # We're using the `long long` type intentionally. Although it's not part of C++98, in # practice it is usually supported even by ancient compilers with very limited C++11 ================================================ FILE: ports/kaitai-struct-cpp-stl-runtime/vcpkg.json ================================================ { "name": "kaitai-struct-cpp-stl-runtime", "version": "0.11", "port-version": 1, "description": "Kaitai Struct is a declarative language used for describe various binary data structures, laid out in files or in memory. This library implements Kaitai Struct API for C++ using STL", "homepage": "https://kaitai.io", "documentation": "https://doc.kaitai.io/lang_cpp_stl.html", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "iconv" ], "features": { "iconv": { "description": "Set the way strings have to be encoded to ICONV", "dependencies": [ "libiconv" ] } } } ================================================ FILE: ports/kangaru/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gracicot/kangaru REF "v${VERSION}" SHA512 03835b156d6da9239e316bfad07684b7f3197798c314f7d8f707e9e225795546887867c5af7fd8ae075b7143d2f160b0185d6be16146975c868dea99c7334129 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hashtypeid KANGARU_HASH_TYPE_ID ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKANGARU_EXPORT=OFF -DKANGARU_TEST=OFF -DKANGARU_REVERSE_DESTRUCTION=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/kangaru) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) # Put the license file where vcpkg expects it vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kangaru/vcpkg.json ================================================ { "name": "kangaru", "version": "4.3.2", "description": "A dependency injection container for C++11, C++14 and later", "homepage": "https://github.com/gracicot/kangaru", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hashtypeid": { "description": "Enable hash based type id" } } } ================================================ FILE: ports/kcp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skywind3000/kcp REF 38e0c9366e4a72c749ff0bcdf911d1fe9bdfe9f5 SHA512 1a05a692719f7f7bfa2e20df81c68af991bd01fe7236ab637a10644abfed425b9f46fd9ad399b8edca152d7bb617c37533b183bda2cf4a0cc1c3ce47031ba37f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/kcp/vcpkg.json ================================================ { "name": "kcp", "version": "1.7", "description": "A fast and reliable ARQ protocol", "homepage": "https://github.com/skywind3000/kcp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdalgorithms/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDAlgorithms REF ${VERSION} SHA512 5d877b8aa16aae870276a542554aa1b39ae2daa863e77ebaa248ca1427a92179611dd7c7cd98e88fc6a406905f404f052f9c891b8a49d64582dfc2ba857118f6 ) file(INSTALL "${SOURCE_PATH}/src/kdalgorithms.h" "${SOURCE_PATH}/src/kdalgorithms_bits" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kdalgorithms/usage ================================================ kdalgorithms is header-only and can be used from CMake via: find_path(KDALGORITHMS_INCLUDE_DIRS "kdalgorithms.h" PATH_SUFFIXES kdalgorithms) target_include_directories(main PRIVATE ${KDALGORITHMS_INCLUDE_DIRS}) ================================================ FILE: ports/kdalgorithms/vcpkg.json ================================================ { "name": "kdalgorithms", "version": "1.4", "description": "KDAB's algorithm helpers for C++14 and up", "homepage": "https://github.com/KDAB/KDAlgorithms", "license": "MIT" } ================================================ FILE: ports/kdbindings/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDBindings REF "v${VERSION}" SHA512 6316f2a8009e47d513fc85d7fa7ad135daf1495ce392aa7852601ae62a09dede022cfa05d9d990041e1abab08b577c86a5ac548128a550c0e1a4bb0a295818e9 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKDBindings_TESTS=OFF -DKDBindings_EXAMPLES=OFF -DKDBindings_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KDBindings) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/" "${CURRENT_PACKAGES_DIR}/lib/" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES/MIT.txt") ================================================ FILE: ports/kdbindings/vcpkg.json ================================================ { "name": "kdbindings", "version": "1.1.0", "description": "Reactive programming & data binding in C++", "homepage": "https://github.com/KDAB/KDBindings", "license": "MIT OR BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kddockwidgets/portfile.cmake ================================================ if("qtwidgets" IN_LIST FEATURES) list(APPEND FRONTEND_LIST "qtwidgets") endif() if("qtquick" IN_LIST FEATURES) list(APPEND FRONTEND_LIST "qtquick") endif() if(FRONTEND_LIST) list(JOIN FRONTEND_LIST ";" FRONTENDS) else() message(FATAL_ERROR "No front-ends selected for ${PORT}, cannot build package") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDDockWidgets REF "v${VERSION}" SHA512 1e220c5cf608c5bb9242b530eb1e45a15dae462b126c12d253483a1213e72374baa75943d8734c5dc79e34b03b480d1a87cd59cb945996abc0ab20b5d649a5cb HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KD_STATIC) if(VCPKG_CROSSCOMPILING) list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}" "-DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${_qarg_OPTIONS} -DKDDockWidgets_QT6=ON "-DKDDockWidgets_FRONTENDS=${FRONTENDS}" -DKDDockWidgets_STATIC=${KD_STATIC} -DKDDockWidgets_PYTHON_BINDINGS=OFF -DKDDockWidgets_TESTS=OFF -DKDDockWidgets_EXAMPLES=OFF # https://github.com/KDAB/KDDockWidgets/blob/v2.1.0/CMakeLists.txt#L301 -DCMAKE_DISABLE_FIND_PACKAGE_spdlog=ON -DCMAKE_DISABLE_FIND_PACKAGE_fmt=ON -DCMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/KDDockWidgets-qt6" PACKAGE_NAME kddockwidgets-qt6) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/LICENSES/GPL-2.0-only.txt" "${SOURCE_PATH}/LICENSES/GPL-3.0-only.txt" ) ================================================ FILE: ports/kddockwidgets/vcpkg.json ================================================ { "name": "kddockwidgets", "version": "2.4.0", "port-version": 1, "description": "KDAB's Dock Widget Framework for Qt", "homepage": "https://www.kdab.com/development-resources/qt-tools/kddockwidgets/", "license": "GPL-2.0-only OR GPL-3.0-only", "supports": "!android & !ios", "dependencies": [ "kdbindings", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "qtwidgets" ], "features": { "qtquick": { "description": "Build for Qt Quick frontend", "dependencies": [ "qtdeclarative" ] }, "qtwidgets": { "description": "Build for Qt Widgets frontend", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] } ] } } } ================================================ FILE: ports/kdgpu/portfile.cmake ================================================ vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDGpu REF v${VERSION} SHA512 ff8c0caa83b68a6507f30935d0d7cb5c64b0ba882e93e85c868d4f44415b1545d562c529656b7bc86b4ed5a1e4635d5b70c11855d347a85220f67cfae9e750cf HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES kdgpuutils KDGPU_BUILD_KDGPUUTILS kdgpukdgui KDGPU_BUILD_KDGPUKDGUI kdgpuexample KDGPU_BUILD_KDGPUEXAMPLE openxr KDGPU_BUILD_KDXR hlsl KDGPU_HLSL_SUPPORT slang KDGPU_SLANG_SUPPORT ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KDGPU_BUILD_SHARED_LIBS) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DKDGPU_BUILD_SHARED_LIBS=${KDGPU_BUILD_SHARED_LIBS} -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} -DKDGPU_BUILD_EXAMPLES=OFF -DKDGPU_BUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Fix up optional components only if they exist if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/KDGpuUtils") vcpkg_cmake_config_fixup(PACKAGE_NAME kdgputuils CONFIG_PATH lib/cmake/KDGpuUtils DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/KDGpuKDGui") vcpkg_cmake_config_fixup(PACKAGE_NAME kdgpukdgui CONFIG_PATH lib/cmake/KDGpuKDGui DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/KDXr") vcpkg_cmake_config_fixup(PACKAGE_NAME kdxr CONFIG_PATH lib/cmake/KDXr DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/KDGpuExample") vcpkg_cmake_config_fixup(PACKAGE_NAME kdgpuexample CONFIG_PATH lib/cmake/KDGpuExample DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME kdgpu CONFIG_PATH lib/cmake/KDGpu) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*.txt") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kdgpu/usage ================================================ kdgpu provides CMake targets: find_package(KDGpu REQUIRED) target_link_libraries(main PRIVATE KDGpu::KDGpu) # KDGpuKDGui (optional, feature "kdgpukdgui") find_package(KDGpuKDGui REQUIRED) target_link_libraries(main PRIVATE KDGpu::KDGpuKDGui) # KDGpuUtils (optional, feature "kdgpuutils") find_package(KDGpuUtils REQUIRED) target_link_libraries(main PRIVATE KDGpu::KDGpuUtils) # KDXr (optional, feature "openxr") find_package(KDXr REQUIRED) target_link_libraries(main PRIVATE KDXr::KDXr) # KDGpuExample (optional, feature "kdgpuexample") find_package(KDGpuExample REQUIRED) target_link_libraries(main PRIVATE KDGpu::KDGpuExample) ================================================ FILE: ports/kdgpu/vcpkg.json ================================================ { "name": "kdgpu", "version": "0.10.0", "description": "KDGPU Library - C++ Vulkan wrapper for GPU programming", "homepage": "https://github.com/KDAB/kdgpu", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "glslang", "host": true, "features": [ "tools" ] }, "kdutils", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-sdk-components" ], "features": { "hlsl": { "description": "Enable HLSL shader support", "supports": "(windows & !arm32 & !uwp & !xbox) | (linux & x64)", "dependencies": [ { "name": "directx-dxc", "host": true } ] }, "kdgpuexample": { "description": "Enable KDGpuExample", "dependencies": [ "glm", { "name": "imgui", "features": [ "vulkan-binding" ] } ] }, "kdgpukdgui": { "description": "Enable KDGui integration" }, "kdgpuutils": { "description": "Enable KDGpuUtils" }, "openxr": { "description": "Enable OpenXR support for VR/AR", "dependencies": [ "kdbindings", "openxr-loader" ] }, "slang": { "description": "Enable Slang shader support", "supports": "(windows & !arm32 & !uwp & !xbox) | (linux & x64)", "dependencies": [ { "name": "shader-slang", "host": true } ] } } } ================================================ FILE: ports/kdiagram/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kdiagram REF "v${VERSION}" SHA512 5a3b958aaf386b1cde3c840963521306ded5b1975cc293dbb36c60cacd52a62badaf64a6c5f3cd63fc65f02d0ba181d318496d665f08140299720cd022a855e7 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE ${SOURCE_PATH}/.clang-format "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME KChart CONFIG_PATH lib/cmake/KChart DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME KGantt CONFIG_PATH lib/cmake/KGantt) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.GPL.txt") ================================================ FILE: ports/kdiagram/vcpkg.json ================================================ { "name": "kdiagram", "version": "2.8.0", "description": "Powerful libraries (KChart, KGantt) for creating business diagrams", "homepage": "https://invent.kde.org/graphics/kdiagram", "license": "LGPL-2.0-or-later", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-svg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdreports/fix-cmake-config.patch ================================================ diff --git a/src/KDReportsConfig.cmake.in b/src/KDReportsConfig.cmake.in index fa26517..49b9054 100644 --- a/src/KDReportsConfig.cmake.in +++ b/src/KDReportsConfig.cmake.in @@ -9,10 +9,10 @@ include(CMakeFindDependencyMacro) -find_dependency(Qt@Qt_VERSION_MAJOR@Core @QT_MIN_VERSION@) -find_dependency(Qt@Qt_VERSION_MAJOR@Widgets @QT_MIN_VERSION@) -find_dependency(Qt@Qt_VERSION_MAJOR@PrintSupport @QT_MIN_VERSION@) -find_dependency(Qt@Qt_VERSION_MAJOR@Xml @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Core @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Widgets @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@PrintSupport @QT_MIN_VERSION@) +find_dependency(Qt@QT_VERSION_MAJOR@Xml @QT_MIN_VERSION@) if (@KDChart_FOUND@) find_dependency(KDChart) ================================================ FILE: ports/kdreports/fix-license-text.patch ================================================ diff --git a/LICENSE.txt b/LICENSE.txt index 110b884..db69306 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -3,4 +3,4 @@ License The KD Reports Software is © 2007 Klarälvdalens Datakonsult AB (KDAB), and is available under the terms of the MIT license. -See the full license text in the LICENSES folder. +See the full license text provided below in this file. ================================================ FILE: ports/kdreports/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDReports REF "kdreports-${VERSION}" SHA512 f9b3785d71c68d032a0e1420ba3adae517994d257a02df69aaffcff4a8909b24d081c91b4cc9e1cc00311768f92e63b9288a99cfaac8422ebd1cae7321b3edbb HEAD_REF master PATCHES "fix-cmake-config.patch" "fix-license-text.patch" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KDReports_STATIC) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKDReports_QT6=ON -DKDReports_STATIC=${KDReports_STATIC} -DKDReports_TESTS=OFF -DKDReports_EXAMPLES=OFF -DKDReports_DOCS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_KDChart-qt6=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME KDReports-qt6 CONFIG_PATH lib/cmake/KDReports-qt6) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/LICENSES/BSD-3-Clause.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kdreports/usage ================================================ kdreports provides CMake targets: find_package(KDReports-qt6 CONFIG REQUIRED) target_link_libraries(main PRIVATE KDReports::kdreports) ================================================ FILE: ports/kdreports/vcpkg.json ================================================ { "name": "kdreports", "version": "2.3.0", "description": "KD Reports is a Qt tool that lets you easily create printable reports by providing all of the necessary features for a variety of applications.", "homepage": "https://github.com/KDAB/KDReports", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdsingleapplication/fix-license-text.patch ================================================ diff --git a/LICENSE.txt b/LICENSE.txt index 1aab145..be6d81b 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ KDSingleApplication is © Klarälvdalens Datakonsult AB and is available under the terms of the MIT license. -See the full license text in the LICENSES folder. +See the full license text provided below in this file. Contact KDAB at to inquire about commercial licensing. ================================================ FILE: ports/kdsingleapplication/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDSingleApplication REF "v${VERSION}" SHA512 2832f53b70258af1bfe9d66d67ab1c46be720ccab632d1b76353a171414cea00a03c576ad34eeefb2648330a311867f7fde7efb96b1f16159dc206f890bc1085 HEAD_REF master PATCHES "fix-license-text.patch" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KDSingleApplication_STATIC) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKDSingleApplication_QT6=ON -DKDSingleApplication_STATIC=${KDSingleApplication_STATIC} -DKDSingleApplication_TESTS=OFF -DKDSingleApplication_EXAMPLES=OFF -DKDSingleApplication_DOCS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME KDSingleApplication-qt6 CONFIG_PATH lib/cmake/KDSingleApplication-qt6) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/LICENSES/BSD-3-Clause.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kdsingleapplication/usage ================================================ kdsingleapplication provides CMake targets: find_package(KDSingleApplication-qt6 CONFIG REQUIRED) target_link_libraries(main PRIVATE KDAB::kdsingleapplication) ================================================ FILE: ports/kdsingleapplication/vcpkg.json ================================================ { "name": "kdsingleapplication", "version": "1.2.0", "description": "KDSingleApplication is a helper class for single-instance policy applications.", "homepage": "https://github.com/KDAB/KDSingleApplication", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network", "widgets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdsoap/fix-license-text.patch ================================================ diff --git a/LICENSE.txt b/LICENSE.txt index 50ea704..bf81343 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -11,4 +11,4 @@ available under any license. Various other freely distributable files are contained in the unittests and are not used in the library code itself. -See the full license texts in the LICENSES folder. +See the full license texts provided below in this file. ================================================ FILE: ports/kdsoap/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${VERSION}/kdsoap-${VERSION}.tar.gz" FILENAME "kdsoap-${VERSION}.tar.gz" SHA512 6ed5cd6a0d02a9faf6881facbd28391c553b3671512153ecd058ab53bfbe9d3f0afa3704d580e66010ddf6a3de7e578a632339f8c1ae7529c28f9d5fd7d1eb5f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES "fix-license-text.patch" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KDSoap_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKDSoap_QT6=ON -DKDSoap_STATIC=${KDSoap_STATIC} -DKDSoap_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME KDSoap-qt6 CONFIG_PATH lib/cmake/KDSoap-qt6) vcpkg_copy_tools(TOOL_NAMES kdwsdl2cpp-qt6 AUTO_CLEAN) 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}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/LICENSES/BSD-3-Clause.txt" "${SOURCE_PATH}/LICENSES/GPL-2.0-only.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-Microsoft.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-Novell.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-OASIS.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-SportingExchange.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" "${SOURCE_PATH}/LICENSES/W3C.txt" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kdsoap/usage ================================================ kdsoap provides CMake targets: find_package(KDSoap-qt6 CONFIG REQUIRED) # kdsoap library target_link_libraries(main PRIVATE KDSoap::kdsoap) # kdsoap-server library target_link_libraries(main PRIVATE KDSoap::kdsoap-server) ================================================ FILE: ports/kdsoap/vcpkg.json ================================================ { "name": "kdsoap", "version": "2.2.0", "port-version": 1, "description": "A Qt-based client-side and server-side SOAP component", "homepage": "https://www.kdab.com/products/kd-soap", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdstatemachineeditor/fix-missing-targets.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6980eb5bd4..fdf16f5236 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,7 +125,7 @@ if(KDSME_QT6) set(QT_VERSION_MAJOR 6) set(QT_MIN_VERSION "6.1.0") find_package( - Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Quick QuickControls2 QuickWidgets Test Widgets StateMachine + Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui GuiPrivate ScxmlPrivate Quick QuickControls2 QuickWidgets Test Widgets StateMachine ) find_package(Qt6Core5Compat ${QT_MIN_VERSION} CONFIG QUIET) set_package_properties( ================================================ FILE: ports/kdstatemachineeditor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDStateMachineEditor REF v${VERSION} SHA512 dedd7166f434689cd5acf4ee3172169d3f77182269d3187f0a7a12966467dd5c7733e3ff64cd1fd03b0f3866c2aafa37cc3f2d7b8a3f4a5d8a7592da039de7af HEAD_REF master PATCHES qt6.9.patch # This is already upstream fix-missing-targets.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" VCPKG_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKDSME_QT6=ON -DKDSME_INTERNAL_GRAPHVIZ=OFF -DKDSME_DOCS=OFF -DKDSME_EXAMPLES=OFF -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=${VCPKG_BUILD_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME KDSME-qt6 CONFIG_PATH lib/cmake/KDSME-qt6) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/LICENSES/BSD-3-Clause.txt" "${SOURCE_PATH}/LICENSES/GPL-3.0-or-later.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-CISST.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-Qt-Commercial.txt" "${SOURCE_PATH}/LICENSES/GPL-3.0-only.txt" "${SOURCE_PATH}/LICENSES/LGPL-2.1-only.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-KDAB-KDStateMachineEditor.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kdstatemachineeditor/qt6.9.patch ================================================ diff --git a/src/view/quick/qopengl2pexvertexarray_p.h b/src/view/quick/qopengl2pexvertexarray_p.h index f80975ed..65058333 100644 --- a/src/view/quick/qopengl2pexvertexarray_p.h +++ b/src/view/quick/qopengl2pexvertexarray_p.h @@ -80,6 +80,8 @@ class QOpenGLPoint operator QPointF() const {return QPointF(x,y);} }; +Q_DECLARE_TYPEINFO(QOpenGLPoint, Q_PRIMITIVE_TYPE); + struct QOpenGLRect { QOpenGLRect(const QRectF &r) @@ -96,6 +98,8 @@ struct QOpenGLRect operator QRectF() const {return QRectF(left, top, right-left, bottom-top);} }; +Q_DECLARE_TYPEINFO(QOpenGLRect, Q_PRIMITIVE_TYPE); + class QOpenGL2PEXVertexArray { public: ================================================ FILE: ports/kdstatemachineeditor/usage ================================================ kdstatemachineeditor provides CMake targets: find_package(KDSME-qt6 CONFIG REQUIRED) # Core library target_link_libraries(main PRIVATE KDSME::Core) # View library target_link_libraries(main PRIVATE KDSME::View) # Debug interface client library target_link_libraries(main PRIVATE KDSME::DebugInterfaceClient) # Debug interface server library target_link_libraries(main PRIVATE KDSME::DebugInterfaceSource) ================================================ FILE: ports/kdstatemachineeditor/vcpkg.json ================================================ { "name": "kdstatemachineeditor", "version": "2.0.0", "port-version": 2, "description": "KDStateMachineEditor is a library for visualizing and editing state charts.", "homepage": "https://github.com/KDAB/KDStateMachineEditor", "license": "LGPL-2.1-only", "dependencies": [ "graphviz", "qt5compat", { "name": "qtbase", "default-features": false, "features": [ "testlib", "widgets" ] }, "qtdeclarative", "qtremoteobjects", "qtscxml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kdutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDAB/KDUtils REF f3ab82a6caedd2f80387276aee0e286fb54fdfcf SHA512 09712e6ed506d42774448aece2d34c45d6cccf2f9e6a5c8a9b7ada19b4aee79ae6ccbb460b303bfe07d590affc6d8757a5761e2b573d8a10865ffa99a1afdf4d HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES testing KDUTILS_BUILD_TESTS mqtt KDUTILS_BUILD_MQTT_SUPPORT ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKDUTILS_BUILD_EXAMPLES=OFF ${FEATURE_OPTIONS}) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Fix CMake config files - each module goes to its own subdirectory in share/ vcpkg_cmake_config_fixup(PACKAGE_NAME KDUtils CONFIG_PATH lib/cmake/KDUtils DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME KDGui CONFIG_PATH lib/cmake/KDGui DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME KDFoundation CONFIG_PATH lib/cmake/KDFoundation) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/kdutils/usage ================================================ kdutils provides CMake targets: find_package(KDUtils REQUIRED) find_package(KDFoundation REQUIRED) find_package(KDGui REQUIRED) target_link_libraries(main PRIVATE KDUtils::KDUtils KDUtils::KDFoundation KDUtils::KDGui) ================================================ FILE: ports/kdutils/vcpkg.json ================================================ { "name": "kdutils", "version": "0.1.13", "description": "KD Utilities Library - Core utilities and helper functions", "homepage": "https://github.com/KDAB/kdutils", "license": "MIT", "supports": "!uwp & (windows | linux | android | osx) & (arm | x86 | x64)", "dependencies": [ { "name": "kdbindings", "version>=": "1.1.0" }, { "name": "mio", "version>=": "2023-03-03" }, { "name": "spdlog", "version>=": "1.15.3" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "whereami", "version>=": "2024-08-26" } ], "features": { "mqtt": { "description": "Enable mqtt support", "dependencies": [ { "name": "mosquitto", "version>=": "2.0.20" } ] }, "testing": { "description": "Enable testing support", "dependencies": [ { "name": "doctest", "version>=": "2.4.12" } ] } } } ================================================ FILE: ports/kealib/no-kea-config-script.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 90f64d6..17f2929 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,9 +222,7 @@ add_test(NAME test1 COMMAND src/test1) ############################################################################### # Installation if(MSVC) - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_BINARY_DIR}/kea-config.bat" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) else() - install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_BINARY_DIR}/kea-config" DESTINATION bin PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) endif(MSVC) install (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_HEADER_DIR}/libkea/kea-config.h" DESTINATION include/libkea) ############################################################################### ================================================ FILE: ports/kealib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ubarsc/kealib REF "kealib-${VERSION}" SHA512 f7b3e602cefab661621bd1b8f18d7c5dd34f4f514a187274160afd37ec45720bf0c7d0b8053ed422ea7ad301b25c418af60dbf54b86c646afdf660d1b5e57bdd HEAD_REF master PATCHES no-kea-config-script.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBKEA_WITH_GDAL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_GDAL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libkea PACKAGE_NAME libkea DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Kealib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/kealib/usage ================================================ kealib provides CMake targets: find_package(Kealib CONFIG REQUIRED) target_link_libraries(main PRIVATE Kealib::Kealib) ================================================ FILE: ports/kealib/vcpkg.json ================================================ { "name": "kealib", "version": "1.6.2", "description": "KEALib provides an implementation of the GDAL data model using HDF5.", "homepage": "https://github.com/ubarsc/kealib", "license": "MIT", "dependencies": [ { "name": "hdf5", "features": [ "cpp" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/keccak-tiny/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) project(keccak-tiny VERSION 2014.09.08 LANGUAGES C) set(Header_Files "${PROJECT_NAME}.h") set(Source_Files "${PROJECT_NAME}-unrolled.c") add_library("${PROJECT_NAME}" "${Header_Files}" "${Source_Files}") include(GNUInstallDirs) target_include_directories( "${PROJECT_NAME}" PUBLIC "$" "$" ) target_compile_features("${PROJECT_NAME}" PRIVATE c_std_90) set_target_properties("${PROJECT_NAME}" PROPERTIES C_VISIBILITY_PRESET hidden PUBLIC_HEADER "${Header_Files}") install( TARGETS "${PROJECT_NAME}" EXPORT "unofficial-${PROJECT_NAME}Config" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}ConfigVersion.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${VERSION_FILE_PATH}" DESTINATION "share/unofficial-${PROJECT_NAME}") install(FILES ${Header_Files} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install( EXPORT "unofficial-${PROJECT_NAME}Config" FILE "unofficial-${PROJECT_NAME}Config.cmake" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") export(PACKAGE "${PROJECT_NAME}") ================================================ FILE: ports/keccak-tiny/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coruus/${PORT} REF 64b6647514212b76ae7bca0dea9b7b197d1d8186 SHA512 5cf14061efc1b3c934dfb28a08e2a478036109c449aed41d4deb975a9f0748db06f83c1de9e5d991009d04f0220a397f5f66232a4db04bbc0dea0c624522752c HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "CC0-1.0") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/keccak-tiny/usage ================================================ keccak-tiny provides CMake targets: find_package(unofficial-keccak-tiny CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::keccak-tiny::keccak-tiny) ================================================ FILE: ports/keccak-tiny/vcpkg.json ================================================ { "name": "keccak-tiny", "version-date": "2014-09-08", "port-version": 2, "description": "A tiny implementation of SHA-3, SHAKE, Keccak, and sha3sum", "homepage": "https://github.com/coruus/keccak-tiny", "license": "CC0-1.0", "supports": "!android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kedixa-coke/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kedixa/coke REF "v${VERSION}" SHA512 e8d401e5d9f0ef7a87c280ba1af65fe97578740c84af092374f334b066cc223e92ac03b31f1aac344cc5ef5fe6c567bfd2616b909eeb4fd179510ce79f10d2a5 HEAD_REF master ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(_COKE_CONFIG_OPTIONS "-DCOKE_BUILD_STATIC=ON" "-DCOKE_BUILD_SHARED=OFF") else() set(_COKE_CONFIG_OPTIONS "-DCOKE_BUILD_STATIC=OFF" "-DCOKE_BUILD_SHARED=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${_COKE_CONFIG_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/coke" PACKAGE_NAME coke) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/kedixa-coke/usage ================================================ The package coke provides CMake targets: find_package(coke CONFIG REQUIRED) target_link_libraries(main PRIVATE coke::coke) ================================================ FILE: ports/kedixa-coke/vcpkg.json ================================================ { "name": "kedixa-coke", "version": "0.7.0", "port-version": 1, "description": "Coroutine Workflow based on C++ 20", "homepage": "https://github.com/kedixa/coke", "license": "Apache-2.0", "supports": "osx | linux | freebsd", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "workflow", "platform": "!windows | mingw" }, { "name": "workflow-win", "platform": "windows & !mingw" } ] } ================================================ FILE: ports/kenlm/cmake-config.patch ================================================ diff --git a/cmake/kenlmConfig.cmake.in b/cmake/kenlmConfig.cmake.in index 592407d..86abd36 100644 --- a/cmake/kenlmConfig.cmake.in +++ b/cmake/kenlmConfig.cmake.in @@ -5,6 +5,12 @@ include(CMakeFindDependencyMacro) find_dependency(Boost) find_dependency(Threads) find_dependency(double-conversion CONFIG) +if("@ENABLE_INTERPOLATE@") + find_dependency(Eigen3) + if("@OPENMP_CXX_FOUND@") + find_dependency(OpenMP) + endif() +endif() # Compression libs if (@ZLIB_FOUND@) diff --git a/lm/interpolate/CMakeLists.txt b/lm/interpolate/CMakeLists.txt index d23e959..26b6092 100644 --- a/lm/interpolate/CMakeLists.txt +++ b/lm/interpolate/CMakeLists.txt @@ -24,6 +24,7 @@ if(ENABLE_INTERPOLATE) find_package(OpenMP) + set(OPENMP_CXX_FOUND "${OPENMP_CXX_FOUND}" CACHE INTERNAL "For exported config") if (OPENMP_CXX_FOUND) target_link_libraries(kenlm_interpolate PUBLIC OpenMP::OpenMP_CXX) endif() ================================================ FILE: ports/kenlm/devendor.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fd08a48..7439ebf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,7 +128,7 @@ install(EXPORT kenlmTargets DESTINATION share/kenlm/cmake ) -foreach(SUBDIR IN ITEMS util util/double-conversion util/stream lm lm/builder lm/common lm/filter lm/interpolate) +foreach(SUBDIR IN ITEMS util util/stream lm lm/builder lm/common lm/filter lm/interpolate) file(GLOB HEADERS ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR}/*.h ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR}/*.hh) install(FILES ${HEADERS} DESTINATION include/kenlm/${SUBDIR} COMPONENT headers) endforeach(SUBDIR) diff --git a/cmake/kenlmConfig.cmake.in b/cmake/kenlmConfig.cmake.in index 0fbf0c6..592407d 100644 --- a/cmake/kenlmConfig.cmake.in +++ b/cmake/kenlmConfig.cmake.in @@ -4,6 +4,7 @@ include(CMakeFindDependencyMacro) find_dependency(Boost) find_dependency(Threads) +find_dependency(double-conversion CONFIG) # Compression libs if (@ZLIB_FOUND@) diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index 7a96ef5..3318d73 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -32,10 +32,11 @@ if (WIN32) endif() # This directory has children that need to be processed -add_subdirectory(double-conversion) +find_package(double-conversion CONFIG REQUIRED) add_subdirectory(stream) add_library(kenlm_util ${KENLM_UTIL_DOUBLECONVERSION_SOURCE} ${KENLM_UTIL_STREAM_SOURCE} ${KENLM_UTIL_SOURCE}) +target_link_libraries(kenlm_util PRIVATE double-conversion::double-conversion) # Since headers are relative to `include/kenlm` at install time, not just `include` target_include_directories(kenlm_util PUBLIC $) ================================================ FILE: ports/kenlm/fix-boost.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c6c863..fd08a48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.1) -if (WIN32) +if (0) set(Boost_USE_STATIC_LIBS OFF) # The auto-linking feature has problems with USE_STATIC_LIBS off, so we use # BOOST_ALL_NO_LIB to turn it off. @@ -100,6 +100,12 @@ find_package(Boost 1.41.0 REQUIRED COMPONENTS thread unit_test_framework ) +set(Boost_LIBRARIES + Boost::program_options + Boost::system + Boost::thread + Boost::unit_test_framework +) # Define where include files live include_directories(${Boost_INCLUDE_DIRS}) ================================================ FILE: ports/kenlm/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kpu/kenlm REF 5bf7b46558e1c5595bf3b8c9b0b1f9d8d257040a SHA512 04b645d09e60b65cb1e5065a1623ad01737f0dd9415cf620288ace0db10b1c424d72f304b34c52fa08684f3fecdaad9db91088134f34ed374cb1eb9d58c635b5 HEAD_REF master PATCHES devendor.patch cmake-config.patch fix-boost.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/modules/FindEigen3.cmake" "${SOURCE_PATH}/util/double-conversion" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES interpolate ENABLE_INTERPOLATE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD=11 # 17 removes std::binary_function -DFORCE_STATIC=OFF # handled by vcpkg -DENABLE_PYTHON=OFF # kenlm.lib(bhiksha.cc.obj) : fatal error LNK1000: Internal error during IMAGE::Pass2 -DCOMPILE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/kenlm/cmake) set(KENLM_TOOLS count_ngrams filter fragment kenlm_benchmark lmplz phrase_table_vocab query build_binary) if (NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND KENLM_TOOLS probing_hash_table_benchmark) endif() if ("interpolate" IN_LIST FEATURES) list(APPEND KENLM_TOOLS interpolate) endif() vcpkg_copy_tools(TOOL_NAMES ${KENLM_TOOLS} AUTO_CLEAN) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kenlm/vcpkg.json ================================================ { "name": "kenlm", "version": "20230531", "port-version": 1, "description": "KenLM: Faster and Smaller Language Model Queries", "license": null, "supports": "!(arm64 & windows)", "dependencies": [ "boost-interprocess", "boost-program-options", "boost-ptr-container", "boost-system", "boost-test", "boost-thread", "bzip2", "double-conversion", "liblzma", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "interpolate": { "description": "Build interpolation program", "supports": "!windows", "dependencies": [ "eigen3" ] } } } ================================================ FILE: ports/kerbal/portfile.cmake ================================================ set(KERBAL_SHA_CORE 4ccb5a7bd7aa540e1087135882176bbda2d4ba19e5a861d4e1377b266723e371d0aa50cd2ce1d5d65be0921bd4f0204efd6c507ad02f203082688baf7ae739d3) set(KERBAL_SHA_PRETTY_PRINTER 16acd40f3a0d7f818506dc618da390bda02e45318ed1764b6d387e0a0dfa2578c3900c1233137278c23797a801a6c3a9e69e38ae30fcf8181b1ecf61f52da5e0) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO WentsingNee/Kerbal REF "v${VERSION}" SHA512 "${KERBAL_SHA_CORE}" HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "pretty-printer" WITH_PRETTY_PRINTER ) if (WITH_PRETTY_PRINTER) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_PRETTY_PRINTER REPO WentsingNee/KerbalPrettyPrinter REF "v${VERSION}" SHA512 "${KERBAL_SHA_PRETTY_PRINTER}" HEAD_REF main ) file(GLOB pretty_printer_files LIST_DIRECTORIES True "${SOURCE_PATH_PRETTY_PRINTER}/*" ) foreach (e IN LISTS pretty_printer_files) file( COPY "${e}" DESTINATION "${SOURCE_PATH}/pretty_printer" ) endforeach () endif () vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "share/cmake/Kerbal" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kerbal/vcpkg.json ================================================ { "name": "kerbal", "version": "2025.11.1", "description": "Kerbal C++ Template Library", "homepage": "https://github.com/WentsingNee/Kerbal", "license": "LGPL-3.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pretty-printer": { "description": "Pretty printer support for kerbal" } } } ================================================ FILE: ports/keystone/0001-fix-gcc15.patch ================================================ diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index 3346de93..a2adf853 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -21,6 +21,7 @@ #include // for std::all_of #include #include // for std::size_t +#include #include // for qsort #include #include ================================================ FILE: ports/keystone/0002-fix-cmake4.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ # Keystone Assembler Engine (www.keystone-engine.org) # By Nguyen Anh Quynh, 2016 -cmake_minimum_required(VERSION 2.8.7) +cmake_minimum_required(VERSION 3.5) project(keystone) set(KEYSTONE_VERSION_MAJOR 0) @@ -24,7 +24,7 @@ if (POLICY CMP0051) # stripped everywhere that access the SOURCES property, so we just # defer to the OLD behavior of not including generator expressions # in the output for now. - cmake_policy(SET CMP0051 OLD) + # cmake_policy(SET CMP0051 OLD) endif() if (POLICY CMP0063) --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1,6 +1,6 @@ # See docs/CMake.html for instructions about how to build LLVM with CMake. -cmake_minimum_required(VERSION 2.8.7) +cmake_minimum_required(VERSION 3.5) set(LLVM_INSTALL_TOOLCHAIN_ONLY ON) @@ -19,7 +19,7 @@ if (POLICY CMP0051) # stripped everywhere that access the SOURCES property, so we just # defer to the OLD behavior of not including generator expressions # in the output for now. - cmake_policy(SET CMP0051 OLD) + # cmake_policy(SET CMP0051 OLD) endif() if(CMAKE_VERSION VERSION_LESS 3.1.20141117) ================================================ FILE: ports/keystone/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO keystone-engine/keystone REF dc7932ef2b2c4a793836caec6ecab485005139d6 # 0.9.2 SHA512 ebcdb1cca6dfdf76e0ad2a42a667044806e5c083c07357908298c6ef23d15960f887efa05c1cb3dee90ebdcd5af819bcf8af0fa1aa068aa9a0c6703dee29514e HEAD_REF master PATCHES 0001-fix-gcc15.patch 0002-fix-cmake4.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_find_acquire_program(PKGCONFIG) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" KEYSTONE_BUILD_STATIC_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKEYSTONE_BUILD_STATIC_RUNTIME=${KEYSTONE_BUILD_STATIC_RUNTIME} "-DPYTHON_EXECUTABLE=${PYTHON3}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" # Add support for only a subset of architectures #-DLLVM_TARGETS_TO_BUILD="AArch64;X86" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") #For windows, do not build kstool if building DLL https://github.com/keystone-engine/keystone/blob/master/CMakeLists.txt#L74 vcpkg_copy_tools(TOOL_NAMES kstool AUTO_CLEAN) else() # Move DLLs file(GLOB DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll") file(COPY ${DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE ${DLLS}) file(GLOB DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll") file(COPY ${DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE ${DLLS}) endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright( COMMENT [[ Keystone is distributed under dual Version 2 of the GNU General Public License (GPLv2) and commercial license. For commercial usage in production environments, contact the authors of Keystone to buy a royalty-free license keystone.engine@gmail.com ]] FILE_LIST "${SOURCE_PATH}/COPYING" ) ================================================ FILE: ports/keystone/vcpkg.json ================================================ { "name": "keystone", "version-semver": "0.9.2", "port-version": 4, "description": "A Lightweight multi-platform, multi-architecture assembler framework.", "homepage": "https://github.com/keystone-engine/keystone", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/kf5archive/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/karchive REF "v${VERSION}" SHA512 2423f6f99a610cf376f14f95fe8af9f9b66a7ce95d082773442cb27046a0bde9d0b80cb5e9798bb44147e27b6749b834034321b13f109482daef60634ee97a69 HEAD_REF master PATCHES zstd.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 VCPKG_LOCK_FIND_PACKAGE_BZip2 lzma VCPKG_LOCK_FIND_PACKAGE_LibLZMA zstd VCPKG_LOCK_FIND_PACKAGE_LibZstd ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Archive) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5archive/vcpkg.json ================================================ { "name": "kf5archive", "version": "5.116.0", "port-version": 1, "description": "File compression", "homepage": "https://invent.kde.org/frameworks/karchive", "documentation": "https://api.kde.org/karchive-index.html ", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "bzip2" ], "features": { "bzip2": { "description": "Support for bzip2 compressed files and data streams", "dependencies": [ "bzip2" ] }, "lzma": { "description": "Support for xz compressed files and data streams", "dependencies": [ "liblzma" ] }, "zstd": { "description": "Support for zstd compressed files and data streams", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/kf5archive/zstd.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 03b5354..a9e04a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,8 +46,8 @@ set_package_properties(LibLZMA PROPERTIES find_package(PkgConfig) if (PkgConfig_FOUND) - pkg_check_modules(LibZstd IMPORTED_TARGET "libzstd") endif() +find_package(LibZstd NAMES zstd) add_feature_info(LibZstd LibZstd_FOUND "Support for zstd compressed files and data streams" ) diff --git a/KF5ArchiveConfig.cmake.in b/KF5ArchiveConfig.cmake.in index ea63b92..b7ddf23 100644 --- a/KF5ArchiveConfig.cmake.in +++ b/KF5ArchiveConfig.cmake.in @@ -23,8 +23,7 @@ if (NOT @BUILD_SHARED_LIBS@) find_dependency(LibLZMA) endif() if (@LibZstd_FOUND@) - find_package(PkgConfig) - pkg_check_modules(LibZstd IMPORTED_TARGET "libzstd") + find_dependency(zstd CONFIG) endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 97bb61b..334f9b6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,7 +26,7 @@ endif() if (LibZstd_FOUND) target_sources(KF5Archive PRIVATE kzstdfilter.cpp) - target_link_libraries(KF5Archive PRIVATE PkgConfig::LibZstd) + target_link_libraries(KF5Archive PRIVATE zstd::libzstd) endif() ================================================ FILE: ports/kf5attica/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/attica REF "v${VERSION}" SHA512 d63e1dab81820fc58b94d943de9aa12687089fbeaee8f5fb8048235cf8dc26a536b500711b6a04a25bf826050d369e2ba12c56bed2d88c25bdd4fd4a1038a214 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Attica) vcpkg_copy_pdbs() 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") endif() vcpkg_fixup_pkgconfig() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5attica/vcpkg.json ================================================ { "name": "kf5attica", "version": "5.116.0", "description": "A Qt library that implements the Open Collaboration Services API", "homepage": "https://api.kde.org/attica-index.html", "dependencies": [ "ecm", "qt5-base", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5auth/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kauth REF "v${VERSION}" SHA512 438d599b2410c799bd4383013dd216221efb4579b19242453fa38497d738910550eda6707f74446193c89c1958abb2d88dce07f625550040b62444dea16d6cd6 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Auth) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/kauth/kauth-policy-gen${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tools( TOOL_NAMES kauth/kauth-policy-gen DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/kauth" AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/kauth") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/kauth") vcpkg_clean_executables_in_bin(FILE_NAMES none) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5auth/vcpkg.json ================================================ { "name": "kf5auth", "version": "5.116.0", "port-version": 1, "description": "Execute actions as privileged user", "homepage": "https://invent.kde.org/frameworks/kauth", "documentation": "https://api.kde.org/kauth-index.html ", "supports": "!windows", "dependencies": [ "ecm", "kf5coreaddons", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5bookmarks/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kbookmarks REF "v${VERSION}" SHA512 ab65b741e0de8511e8bdbdca77ca00f383c90a6983cab0b43622a4067299ad7ca7feb2ea2a0b9825f603cd6049d7e7eee511680390449e6f561ee3b26c580353 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Bookmarks) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5bookmarks/vcpkg.json ================================================ { "name": "kf5bookmarks", "version": "5.116.0", "description": "Bookmarks management library", "homepage": "https://api.kde.org/kbookmarks-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5codecs", "kf5config", "kf5configwidgets", "kf5coreaddons", "kf5widgetsaddons", "kf5xmlgui", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5codecs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kcodecs REF "v${VERSION}" SHA512 aebbbe10d0a7cfdffc910cc2b2650240519aebfd0f7dbc2a014e2912b4835b46c6a5f4e1357ddde6a0ebb143587284d766d47169f11870c21938705a6fb99678 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF "-DGperf_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Codecs) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5codecs/vcpkg.json ================================================ { "name": "kf5codecs", "version": "5.116.0", "description": "String encoding library", "homepage": "https://api.kde.org/kcodecs-index.html", "dependencies": [ "ecm", { "name": "gperf", "host": true }, { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5completion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kcompletion REF "v${VERSION}" SHA512 3a886b6d0dd92b3f418197af04faa56a2e8eefb0432db4323e5d38cca351125bc102ed1a6a8128bc7297cd7caa6ad236edbecd63ea956e053b828b7692eead35 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_DESIGNERPLUGIN=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Completion) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5completion/vcpkg.json ================================================ { "name": "kf5completion", "version": "5.116.0", "description": "Text completion helpers and widgets", "homepage": "https://api.kde.org/kcompletion-index.html", "dependencies": [ "ecm", "kf5config", "kf5widgetsaddons", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5config/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kconfig REF "v${VERSION}" SHA512 dfd6e09ccaf132745f3bcba6276c6f5d0394c4aa2dd50ac234415e2fca3c5681d1c11e8f4141fdb9dc18aba806922c99dd6195d9013962e11de7c50cc2ca01a7 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Config) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kreadconfig5 kwriteconfig5 AUTO_CLEAN ) vcpkg_copy_tools( TOOL_NAMES kconf_update kconfig_compiler_kf5 AUTO_CLEAN ) file(APPEND "${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "Data = ../../share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5config/vcpkg.json ================================================ { "name": "kf5config", "version": "5.116.0", "port-version": 1, "description": "Configuration system", "homepage": "https://invent.kde.org/frameworks/kconfig", "documentation": "https://api.kde.org/kconfig-index.html ", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5configwidgets/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kconfigwidgets REF "v${VERSION}" SHA512 2fcaeb8bd1bdc6ca3cfd4a33825edb8aa9ee13fa9fab9c1ce4c010788cf974390bf5f3fa839929a7d4d64e31d43bf26445621874f7747e08fcf9e4559579c971 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES designerplugin BUILD_DESIGNERPLUGIN ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON -DKDE_INSTALL_PLUGINDIR=plugins -DKDE_INSTALL_QTPLUGINDIR=plugins ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5ConfigWidgets) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5configwidgets/vcpkg.json ================================================ { "name": "kf5configwidgets", "version": "5.116.0", "description": "Widgets for configuration dialogs", "homepage": "https://api.kde.org/kconfigwidgets-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, { "name": "kf5auth", "platform": "!(windows | android)" }, "kf5codecs", "kf5config", "kf5coreaddons", "kf5guiaddons", "kf5i18n", "kf5widgetsaddons", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "designerplugin": { "description": "Enables a Qt Designer plugin" } } } ================================================ FILE: ports/kf5coreaddons/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kcoreaddons REF "v${VERSION}" SHA512 6dcc51df771dae5de88583ceb2df03d4b9235d00047db7b05b0796c78ca16eb7fe7ecf31e6a0d3c9a08e9d76c3b90d60ee106135cf362793933ec781b465318f HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5CoreAddons) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES desktoptojson AUTO_CLEAN ) file(APPEND "${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "Data = ../../share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/data/kf5") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/data/kf5") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5coreaddons/vcpkg.json ================================================ { "name": "kf5coreaddons", "version": "5.116.0", "description": "Addons to QtCore", "homepage": "https://api.kde.org/kcoreaddons-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5crash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kcrash REF "v${VERSION}" SHA512 23897cf1b0bc02776f2fc70cc9ae3c34d17dba212b4c8866f4ed2167a9b3a4a37d33a3116c58d0084d98fab5ed6ef35a7d4527700a165d283975e714350150bf HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Crash) vcpkg_copy_pdbs() 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") endif() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5crash/vcpkg.json ================================================ { "name": "kf5crash", "version": "5.116.0", "description": "KCrash provides support for intercepting and handling application crashes.", "homepage": "https://api.kde.org/kcrash-index.html", "dependencies": [ "ecm", "kf5coreaddons", "kf5windowsystem", { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5dbusaddons/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kdbusaddons REF "v${VERSION}" SHA512 823ca3d3996be26aafb4c56f9ea588a8c8467e852d9d6f8a3ddafa9d1403a5707bcdc52df0b0834fbafe4cbe968d5482930e4d67698233cf7dd1783a5bcad2b5 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5DBusAddons) vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") elseif(VCPKG_TARGET_IS_WINDOWS) # kquitapp5 is a non-dev tool allowing to quit an arbitrary, dbus-compatible app. No need to keep it. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/kquitapp5${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/kquitapp5${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5dbusaddons/vcpkg.json ================================================ { "name": "kf5dbusaddons", "version": "5.116.0", "description": "Convenience classes for D-Bus", "homepage": "https://api.kde.org/kdbusaddons-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5declarative/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kdeclarative REF "v${VERSION}" SHA512 a78a59ceec2c89178b15a1892a54a2cb04ffc02df7c60ccf2da142492e4d37f6e4676b06d882c91532082c7647d05af10dd032792b6cc1e5f044eb8eba80c72f HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES "opengl" CMAKE_DISABLE_FIND_PACKAGE_EPOXY ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QTPLUGINDIR=plugins -DBUNDLE_INSTALL_DIR=bin -DKDE_INSTALL_QMLDIR=qml ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_EPOXY BUNDLE_INSTALL_DIR ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Declarative) vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES kpackagelauncherqml AUTO_CLEAN) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5declarative/vcpkg.json ================================================ { "name": "kf5declarative", "version": "5.116.0", "description": "Integration of QML and KDE work spaces", "homepage": "https://api.kde.org/kdeclarative-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5config", { "name": "kf5globalaccel", "platform": "!windows" }, "kf5guiaddons", "kf5i18n", "kf5iconthemes", "kf5kio", "kf5notifications", "kf5package", "kf5widgetsaddons", "kf5windowsystem", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "opengl": { "description": "Enables OpenGl support", "dependencies": [ "libepoxy" ] } } } ================================================ FILE: ports/kf5diagram/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/kf5diagram/vcpkg.json ================================================ { "name": "kf5diagram", "version-string": "deprecated", "description": "Powerful libraries (KChart, KGantt) for creating business diagrams", "homepage": "https://invent.kde.org/graphics/kdiagram", "license": "LGPL-2.0-or-later", "dependencies": [ "kdiagram" ] } ================================================ FILE: ports/kf5globalaccel/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kglobalaccel REF "v${VERSION}" SHA512 afcf4609d6e4f3182088caccbecd71e5826c19716d2f9b22f5674a37771f082691a1b3e246b59837bbada8427d027c173d46233f1f817f2951e7a96562251fc5 HEAD_REF master ) if (VCPKG_TARGET_IS_LINUX) message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev\n\nThese can be installed on Ubuntu systems via apt-get install llibxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev") endif() # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5GlobalAccel) vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES kglobalaccel5 AUTO_CLEAN) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5globalaccel/vcpkg.json ================================================ { "name": "kf5globalaccel", "version": "5.116.0", "description": "lobal desktop keyboard shortcuts", "homepage": "https://api.kde.org/kglobalaccel-index.html", "supports": "!windows", "dependencies": [ "ecm", "kf5config", "kf5coreaddons", "kf5crash", "kf5dbusaddons", "kf5windowsystem", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "xcb", "platform": "linux" } ] } ================================================ FILE: ports/kf5guiaddons/fix_cmake.patch ================================================ diff --git a/KF5GuiAddonsConfig.cmake.in b/KF5GuiAddonsConfig.cmake.in index ae17f6b..34e41bd 100644 --- a/KF5GuiAddonsConfig.cmake.in +++ b/KF5GuiAddonsConfig.cmake.in @@ -10,6 +10,7 @@ if (NOT @BUILD_SHARED_LIBS@) endif() endif() if (@WITH_WAYLAND@) + set(QtWaylandScanner_EXECUTABLE "${PACKAGE_PREFIX}/tools/qt5-wayland/bin/qtwaylandscanner" CACHE STRING "QtWaylandScanner workaround") find_dependency(Wayland REQUIRED Client) find_dependency(Qt@QT_MAJOR_VERSION@WaylandClient @REQUIRED_QT_VERSION@) find_dependency(QtWaylandScanner) ================================================ FILE: ports/kf5guiaddons/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kguiaddons REF "v${VERSION}" SHA512 3a6c15adc32fe62496b3d7d87c5c6e2465edf77407cf957789aac20199652664686d7272ae06b9b61f82b3cfbd8c515d2781b5db375ef0c0ed82bd73f33aaf70 HEAD_REF master PATCHES fix_cmake.patch # https://github.com/microsoft/vcpkg/issues/17607#issuecomment-831518812 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES wayland WITH_WAYLAND x11 WITH_X11 ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DQtWaylandScanner_EXECUTABLE=${CURRENT_INSTALLED_DIR}/tools/qt5-wayland/bin/qtwaylandscanner -DBUNDLE_INSTALL_DIR=bin ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES BUNDLE_INSTALL_DIR QtWaylandScanner_EXECUTABLE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5GuiAddons) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kde-geo-uri-handler AUTO_CLEAN ) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5guiaddons/vcpkg.json ================================================ { "name": "kf5guiaddons", "version": "5.116.0", "description": "Addons to QtGui", "homepage": "https://api.kde.org/kguiaddons-index.html", "dependencies": [ "ecm", "qt5-tools", { "name": "qt5-winextras", "platform": "windows" }, { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "defaults" ], "features": { "defaults": { "description": "Default features", "dependencies": [ { "name": "kf5guiaddons", "features": [ "wayland", "x11" ], "platform": "linux" } ] }, "wayland": { "description": "Linux-only. Build with support for KeySequenceEditor inhibiting shortcuts on Wayland", "dependencies": [ "plasma-wayland-protocols", { "name": "qt5-wayland", "platform": "linux" } ] }, "x11": { "description": "Linux-only. Build with support for KeySequenceEditor inhibiting shortcuts on X11", "dependencies": [ { "name": "qt5-x11extras", "platform": "linux" } ] } } } ================================================ FILE: ports/kf5holidays/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kholidays REF "v${VERSION}" SHA512 789a75dacc09d85d0ef9adbc672eec087d7b045be618d836957f0ba3eff2099c61367cc8d0ff0da7cb3c8cb9da40e9224a95428fd62d90eff7d89f83a71fd927 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QMLDIR=qml ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Holidays) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5holidays/vcpkg.json ================================================ { "name": "kf5holidays", "version": "5.116.0", "description": "Holiday calculation library", "homepage": "https://api.kde.org/kholidays-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5i18n/fix_static_builds.patch ================================================ diff --git a/KF5I18nConfig.cmake.in b/KF5I18nConfig.cmake.in index 364cc43..af7cd3b 100644 --- a/KF5I18nConfig.cmake.in +++ b/KF5I18nConfig.cmake.in @@ -8,3 +8,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/KF5I18nTargets.cmake") @PACKAGE_INCLUDE_QCHTARGETS@ include("${CMAKE_CURRENT_LIST_DIR}/KF5I18nMacros.cmake") +find_dependency(Iconv) diff --git a/src/i18n/CMakeLists.txt b/src/i18n/CMakeLists.txt index c6b510c..0a25eca 100644 --- a/src/i18n/CMakeLists.txt +++ b/src/i18n/CMakeLists.txt @@ -40,12 +40,16 @@ ecm_generate_export_header(KF5I18n EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT} ) +find_package(Iconv REQUIRED) + target_include_directories(KF5I18n INTERFACE "$") target_include_directories(KF5I18n PRIVATE ${LibIntl_INCLUDE_DIRS}) +target_include_directories(KF5I18n PRIVATE ${Iconv_INCLUDE_DIRS}) target_link_libraries(KF5I18n PUBLIC Qt${QT_MAJOR_VERSION}::Core) # This is only required for platforms which don't use glibc (with glibc LibIntl_LIBRARIES will be empty) target_link_libraries(KF5I18n PRIVATE ${LibIntl_LIBRARIES}) +target_link_libraries(KF5I18n PRIVATE ${Iconv_LIBRARIES}) if (ANDROID) if (QT_MAJOR_VERSION EQUAL "5") target_link_libraries(KF5I18n PRIVATE Qt5::AndroidExtras) ================================================ FILE: ports/kf5i18n/portfile.cmake ================================================ if(VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND PATCHES fix_static_builds.patch) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/ki18n REF "v${VERSION}" SHA512 418aee5a836fcdb7a8901282c256e8bdb3ff1f1f346c882feb548b9ef39951ff1709dd2ac924e281441d86c7744e086ca82178f952dbb24173aab910d336d7e4 HEAD_REF master PATCHES ${PATCHES} ) vcpkg_find_acquire_program(PYTHON3) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_PLUGINDIR=plugins -DKDE_INSTALL_QMLDIR=qml -DPYTHON_EXECUTABLE=${PYTHON3} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5I18n) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) # The following pattern has an absolute path, but is still ultimately relocatable, so skip absolute paths check: # share\KF5I18n\KF5I18nMacros.cmake # # The Python executable used for building ki18n will be used as a fallback # # solution if it cannot be found in $PATH when building applications. # set(_KI18N_PYTHON_EXECUTABLE "C:/Dev/vcpkg-downloads/tools/python/python-3.10.7-x64/python.exe") # # find_program(KI18N_PYTHON_EXECUTABLE NAMES python3 python2 python) # if(NOT KI18N_PYTHON_EXECUTABLE) # set(KI18N_PYTHON_EXECUTABLE "${_KI18N_PYTHON_EXECUTABLE}") # endif() set(VCPKG_POLICY_SKIP_ABSOLUTE_PATHS_CHECK enabled) ================================================ FILE: ports/kf5i18n/vcpkg.json ================================================ { "name": "kf5i18n", "version": "5.116.0", "description": "Advanced internationalization framework", "homepage": "https://api.kde.org/ki18n-index.html", "dependencies": [ "ecm", "gettext", { "name": "gettext", "host": true, "features": [ "tools" ] }, "libiconv", "qt5-declarative", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5iconthemes/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kiconthemes REF "v${VERSION}" SHA512 fa5a6e1b1483578d0892a99bddf2fc966c37614c49d9a9eb19feddb01e1378871495578dc19a33def06c2e71f9a245a7b00eddbadda80b32275e61539d4110a4 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES designerplugin BUILD_DESIGNERPLUGIN ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_PLUGINDIR=plugins -DKDE_INSTALL_QTPLUGINDIR=plugins ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5IconThemes) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kiconfinder5 AUTO_CLEAN ) if(VCPKG_TARGET_IS_OSX) vcpkg_copy_tools(TOOL_NAMES ksvg2icns AUTO_CLEAN) endif() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5iconthemes/vcpkg.json ================================================ { "name": "kf5iconthemes", "version": "5.116.0", "description": "Icon GUI utilities", "homepage": "https://api.kde.org/kiconthemes-index.html", "dependencies": [ "ecm", "gettext", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5archive", "kf5configwidgets", "kf5coreaddons", "kf5guiaddons", "kf5i18n", "kf5itemviews", "kf5widgetsaddons", { "name": "qt5-base", "default-features": false }, "qt5-svg", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "designerplugin": { "description": "Enables a Qt Designer plugin" } } } ================================================ FILE: ports/kf5itemmodels/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kitemmodels REF "v${VERSION}" SHA512 cf4f1530c348adbb26a3bbbdb9b2af793a824c07fe345beb1290c37ded57eafda388190420606256530f4bf5e3b91cdf18ac2cc7b2cbe20f8c005600fe90c3b0 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QMLDIR=qml ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5ItemModels) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5itemmodels/vcpkg.json ================================================ { "name": "kf5itemmodels", "version": "5.116.0", "description": "Models for Qt Model/View system", "homepage": "https://api.kde.org/kitemmodels-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5itemviews/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kitemviews REF "v${VERSION}" SHA512 8297e80dc7091ee21cc5650e4fb2768d957cb66d672dd2f7b79c015c6db665cef4488ddd9873603b0b2aeb7ca3b8e795a3c04d9c53c4a9f65b110ff0ae2f26b7 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_DESIGNERPLUGIN=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5ItemViews) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5itemviews/vcpkg.json ================================================ { "name": "kf5itemviews", "version": "5.116.0", "description": "Widget addons for Qt Model/View", "homepage": "https://api.kde.org/kitemviews-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5jobwidgets/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kjobwidgets REF "v${VERSION}" SHA512 d7c55a2e12494282d89e234ec0188fba12816554e78f20c08d269f146ff1f513db326ef2ce88961558800a4873bc2f63a732196e73740a79fc2e2aedb2277224 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5JobWidgets) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5jobwidgets/vcpkg.json ================================================ { "name": "kf5jobwidgets", "version": "5.116.0", "description": "Widgets for showing progress of asynchronous jobs", "homepage": "https://api.kde.org/kjobwidgets-index.html", "dependencies": [ "ecm", "kf5coreaddons", "kf5widgetsaddons", { "name": "qt5-base", "default-features": false }, { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5kcmutils/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kcmutils REF "v${VERSION}" SHA512 f5a22a0e662f1f3874c50b19ff770f2fa4fed53163eb7b732c8b8529424222a1b5f6908cf712c8feb6bc4984c687c51ded2cd228b01f1732d2d2c7cfba7e8f99 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5KCMUtils) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kcmdesktopfilegenerator AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5kcmutils/vcpkg.json ================================================ { "name": "kf5kcmutils", "version": "5.116.0", "port-version": 1, "description": "Utilities for KDE System Settings modules", "homepage": "https://invent.kde.org/frameworks/kcmutils", "documentation": "https://api.kde.org/kcmutils-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5configwidgets", "kf5coreaddons", "kf5declarative", "kf5guiaddons", "kf5i18n", "kf5itemviews", "kf5service", "kf5xmlgui", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5kio/libmount.patch ================================================ diff --git a/src/core/kmountpoint.cpp b/src/core/kmountpoint.cpp index dac7a68aa..7d760158a 100644 --- a/src/core/kmountpoint.cpp +++ b/src/core/kmountpoint.cpp @@ -47,7 +47,7 @@ static const Qt::CaseSensitivity cs = Qt::CaseSensitive; // Linux #if HAVE_LIB_MOUNT -#include +#include #endif static bool isNetfs(const QString &mountType) ================================================ FILE: ports/kf5kio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kio REF "v${VERSION}" SHA512 085eaf467cb70630b1a2fe5024bd45aebe47f15c397388ebd562d0c0fbfd6700c8cc50d2ec136988d9575173aa01a5a73a1550c1b7cbb93d6909941909a31db7 HEAD_REF master PATCHES libmount.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES designer-plugin BUILD_DESIGNERPLUGIN kf5notifications VCPKG_LOCK_FIND_PACKAGE_KF5Notifications kf5wallet VCPKG_LOCK_FIND_PACKAGE_KF5Wallet qml VCPKG_LOCK_FIND_PACKAGE_Qt5Qml ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON -DCMAKE_JOB_POOL_LINK=console # Serialize linking to avoid OOM -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_ACL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI=ON -DCMAKE_DISABLE_FIND_PACKAGE_KDED=ON -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON -DCMAKE_DISABLE_FIND_PACKAGE_SwitcherooControl=ON -DKF6_COMPAT_BUILD=ON ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_KF5Notifications VCPKG_LOCK_FIND_PACKAGE_KF5Wallet ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5KIO) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kcookiejar5 ktelnetservice5 ktrash5 protocoltojson kio_http_cache_cleaner kiod5 kioexec kioslave5 AUTO_CLEAN ) if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_ANDROID) vcpkg_copy_tools(TOOL_NAMES kpac_dhcp_helper AUTO_CLEAN) endif() file(APPEND "${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "Data = ../../share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5kio/vcpkg.json ================================================ { "name": "kf5kio", "version": "5.116.0", "port-version": 2, "description": "Network transparent access to files and data", "homepage": "https://invent.kde.org/frameworks/kio", "documentation": "https://api.kde.org/kio-index.html ", "license": null, "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5archive", { "name": "kf5auth", "platform": "!(windows | android)" }, "kf5bookmarks", "kf5completion", "kf5config", "kf5configwidgets", "kf5coreaddons", { "name": "kf5crash", "platform": "!android" }, { "name": "kf5dbusaddons", "platform": "!android" }, "kf5guiaddons", "kf5i18n", "kf5iconthemes", "kf5itemviews", "kf5jobwidgets", "kf5service", "kf5solid", { "name": "kf5textwidgets", "platform": "!android" }, "kf5widgetsaddons", "kf5windowsystem", { "name": "kf5xmlgui", "platform": "!android" }, { "name": "libmount", "platform": "linux" }, { "name": "qt5-base", "default-features": false }, { "name": "qt5-macextras", "platform": "osx" }, { "name": "qt5-x11extras", "platform": "!(android | ios | osx | windows)" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "designer-plugin": { "description": "Build plugin for Qt Designer" }, "kf5notifications": { "description": "Error notification support in kpac", "supports": "!(windows | android)", "dependencies": [ "kf5notifications" ] }, "kf5wallet": { "description": "Safe desktop-wide storage for passwords", "supports": "!android", "dependencies": [ "kf5wallet" ] }, "qml": { "description": "Enable QML support", "dependencies": [ { "name": "qt5-declarative", "default-features": false } ] } } } ================================================ FILE: ports/kf5newstuff/disable-macos-bundle.diff ================================================ diff --git a/src/tools/knewstuff-dialog/CMakeLists.txt b/src/tools/knewstuff-dialog/CMakeLists.txt index b987dcc..3f9349c 100644 --- a/src/tools/knewstuff-dialog/CMakeLists.txt +++ b/src/tools/knewstuff-dialog/CMakeLists.txt @@ -9,6 +9,7 @@ set(knewstuff-dialog_SRCS qt_add_resources(RESOURCES resources.qrc) add_executable(knewstuff-dialog ${knewstuff-dialog_SRCS} ${RESOURCES}) +set_target_properties(knewstuff-dialog PROPERTIES MACOSX_BUNDLE 0) # override KDECMakeSettings target_link_libraries(knewstuff-dialog Qt${QT_MAJOR_VERSION}::Core ================================================ FILE: ports/kf5newstuff/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/knewstuff REF "v${VERSION}" SHA512 7734b5403720e4031d30844361251f744364d109c60dd59e6424cf1aa2f7a5b87f5f81893c0cab5721dc0875fc5e9b6e510436e4485776ec3f30d6d36ffca476 HEAD_REF master PATCHES disable-macos-bundle.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES designer-plugin BUILD_DESIGNERPLUGIN ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=1 -DCMAKE_DISABLE_FIND_PACKAGE_KF5Kirigami2=1 -DCMAKE_DISABLE_FIND_PACKAGE_KF5Syndication=1 -DCMAKE_REQUIRE_FIND_PACKAGE_Qt5Quick=1 ${options} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5NewStuffCore PACKAGE_NAME kf5newstuffcore DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5NewStuffQuick PACKAGE_NAME kf5newstuffquick DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5NewStuff) vcpkg_copy_tools( TOOL_NAMES knewstuff-dialog AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5newstuff/vcpkg.json ================================================ { "name": "kf5newstuff", "version": "5.116.0", "port-version": 1, "description": "Framework for downloading and sharing additional application data", "homepage": "https://invent.kde.org/frameworks/knewstuff", "documentation": "https://api.kde.org/knewstuff-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5archive", "kf5attica", "kf5completion", "kf5config", "kf5coreaddons", "kf5i18n", "kf5iconthemes", "kf5itemviews", "kf5kio", "kf5package", "kf5service", "kf5textwidgets", "kf5widgetsaddons", "kf5xmlgui", { "name": "qt5-base", "default-features": false }, { "name": "qt5-declarative", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "designer-plugin": { "description": "Build plugin for Qt Designer" } } } ================================================ FILE: ports/kf5notifications/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/knotifications REF "v${VERSION}" SHA512 c4a918f58a252fbbe86af15fef177a459275537520f61d35b7dc4ac51a20c6f95302dd713eacf3b9d96a0fd8c9cdb21fff394bd152ae1f31162aeb9a5b0049ee HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QMLDIR=qml ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Notifications) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5notifications/vcpkg.json ================================================ { "name": "kf5notifications", "version": "5.116.0", "description": "Desktop notifications", "homepage": "https://api.kde.org/knotifications-index.html", "dependencies": [ "ecm", "kf5config", "kf5coreaddons", { "name": "kf5windowsystem", "platform": "!android" }, { "name": "libcanberra", "platform": "!(windows | uwp)" }, { "name": "libsnoretoast", "platform": "windows" }, { "name": "qt5-androidextras", "platform": "android" }, { "name": "qt5-base", "default-features": false }, { "name": "qt5-macextras", "platform": "osx" }, "qt5-tools", { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5package/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kpackage REF "v${VERSION}" SHA512 30ad1aa42e560d697517b55f6fa2303e55b3640718860422b8ced13241fc6efeafd8c74894e2a3b23956aa6b453c87b7240f914a4fa6fadc8534478f71c2dc69 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Package) vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES kpackagetool5 AUTO_CLEAN) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5package/vcpkg.json ================================================ { "name": "kf5package", "version": "5.116.0", "description": "Installation and loading of additional content (ex: scripts, images...) as packages", "homepage": "https://api.kde.org/kpackage-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5archive", "kf5coreaddons", "kf5i18n", "qt5-base", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5parts/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kparts REF "v${VERSION}" SHA512 c7dc3e9bbc8b03c4111d7e5cc170f4cfc295db540b7d79d279a8892e3fcab18b78389ec41ad8200692aa2deb3100c36d6256b4206e506dfbaa52522ee6acb9f7 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") # See ECM/kde-modules/KDEInstallDirs5.cmake # Relocate .desktop files for next ports if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND KDE_OPTIONS -DKDE_INSTALL_KSERVICES5DIR="share/kservices5" -DKDE_INSTALL_KSERVICETYPES5DIR="share/kservicetypes5" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ${KDE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Parts) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5parts/vcpkg.json ================================================ { "name": "kf5parts", "version": "5.116.0", "description": "Plugin framework for user interface component", "homepage": "https://api.kde.org/kparts-index.html", "license": "LGPL-2.0-or-later", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5config", "kf5coreaddons", "kf5i18n", "kf5iconthemes", "kf5jobwidgets", "kf5kio", "kf5service", "kf5textwidgets", "kf5widgetsaddons", "kf5xmlgui", { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5plotting/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kplotting REF "v${VERSION}" SHA512 c82c72b72100afabc350392e5293f80e374a98c648d707e5386d4f92917833ef1cfb7d090a415162a48517b092f51752668e63099407e267df1ac11d3c2367e2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Plotting) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5plotting/vcpkg.json ================================================ { "name": "kf5plotting", "version": "5.116.0", "port-version": 1, "description": "Lightweight plotting framework", "homepage": "https://invent.kde.org/frameworks/kplotting", "documentation": "https://api.kde.org/kplotting-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5service/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kservice REF "v${VERSION}" SHA512 8a688c48600b8fd67bc8647f9a2124369ace38a19fa9ea7b84b0d737ccd7d72aec67028d1df75a95e2fd086a44abbda7e8d2788f06a8cda191f06244d9537064 HEAD_REF master ) if(VCPKG_TARGET_IS_OSX) # On Darwin platform, the bundled version of 'bison' may be too old (< 3.0). vcpkg_find_acquire_program(BISON) execute_process( COMMAND ${BISON} --version OUTPUT_VARIABLE BISON_OUTPUT ) string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" BISON_VERSION "${BISON_OUTPUT}") set(BISON_MAJOR ${CMAKE_MATCH_1}) set(BISON_MINOR ${CMAKE_MATCH_2}) message(STATUS "Using bison: ${BISON_MAJOR}.${BISON_MINOR}.${CMAKE_MATCH_3}") if(NOT (BISON_MAJOR GREATER_EQUAL 3 AND BISON_MINOR GREATER_EQUAL 0)) message(WARNING "${PORT} requires bison version greater than one provided by macOS, please use \`brew install bison\` to install a newer bison.") endif() endif() vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY) get_filename_component(BISON_DIR "${BISON}" DIRECTORY) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_add_to_path(PREPEND "${BISON_DIR}") # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") # See ECM/kde-modules/KDEInstallDirs5.cmake # Relocate .desktop files for next ports if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND KDE_OPTIONS -DKDE_INSTALL_KSERVICES5DIR="share/kservices5" -DKDE_INSTALL_KSERVICETYPES5DIR="share/kservicetypes5" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_KF5DocTools=ON ${KDE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Service) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kbuildsycoca5 AUTO_CLEAN ) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5service/vcpkg.json ================================================ { "name": "kf5service", "version": "5.116.0", "description": "Plugin framework for desktop services", "homepage": "https://api.kde.org/kservice-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5config", "kf5coreaddons", { "name": "kf5dbusaddons", "platform": "!android" }, "kf5i18n", "libiconv", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5solid/001_fix_libmount.patch ================================================ diff --git a/KF5SolidConfig.cmake.in b/KF5SolidConfig.cmake.in index 0a23f44..7020804 100644 --- a/KF5SolidConfig.cmake.in +++ b/KF5SolidConfig.cmake.in @@ -23,6 +23,10 @@ if (NOT @BUILD_SHARED_LIBS@) find_dependency(Qt@QT_MAJOR_VERSION@Xml @REQUIRED_QT_VERSION@) find_dependency(Qt@QT_MAJOR_VERSION@Gui @REQUIRED_QT_VERSION@) + if (@HAVE_LIBMOUNT@) + find_dependency(LibMount) + endif() + if ("@Qt5DBus_FOUND@" OR "@Qt6DBus_FOUND@") find_dependency(Qt@QT_MAJOR_VERSION@DBus @REQUIRED_QT_VERSION@) endif() ================================================ FILE: ports/kf5solid/002_fix_imobile.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 60172b0d..1dfe6e8a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,13 +55,25 @@ set_package_properties(BISON PROPERTIES PURPOSE "Required for the Predicate parser" ) -find_package(IMobileDevice) +find_package(IMobileDevice NAMES unofficial-libimobiledevice) set_package_properties(IMobileDevice PROPERTIES TYPE OPTIONAL PURPOSE "Needed to build the iOS device support backend" ) +if(TARGET unofficial::libimobiledevice::libimobiledevice) + set(IMobileDevice_VERSION "1.3.0") + set(_imobile_version "0x00000") + if (IMobileDevice_VERSION VERSION_GREATER_EQUAL 1.3.0) + set(_imobile_version "0x10300") + elseif(IMobileDevice_VERSION VERSION_GREATER_EQUAL 1.2.0) + set(_imobile_version "0x10200") + endif() + set_target_properties(unofficial::libimobiledevice::libimobiledevice PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "IMOBILEDEVICE_API=${_imobile_version}" + ) +endif() -find_package(PList) +find_package(PList NAMES unofficial-libplist CONFIG) set_package_properties(PList PROPERTIES TYPE OPTIONAL PURPOSE "Needed to build the iOS device support backend" diff --git a/KF5SolidConfig.cmake.in b/KF5SolidConfig.cmake.in index 6fc15eeb..a6250ce6 100644 --- a/KF5SolidConfig.cmake.in +++ b/KF5SolidConfig.cmake.in @@ -27,6 +27,11 @@ if (NOT @BUILD_SHARED_LIBS@) find_dependency(LibMount) endif() + if ("@IMobileDevice_FOUND@" AND "@PList_FOUND@") + find_dependency(unofficial-libimobiledevice) + find_dependency(unofficial-libplist) + endif() + if ("@Qt5DBus_FOUND@" OR "@Qt6DBus_FOUND@") find_dependency(Qt@QT_MAJOR_VERSION@DBus @REQUIRED_QT_VERSION@) endif() diff --git a/src/solid/devices/backends/imobile/CMakeLists.txt b/src/solid/devices/backends/imobile/CMakeLists.txt index e1666447..3f8b982e 100644 --- a/src/solid/devices/backends/imobile/CMakeLists.txt +++ b/src/solid/devices/backends/imobile/CMakeLists.txt @@ -5,7 +5,7 @@ set(backend_sources imobiledeviceinterface.cpp imobileportablemediaplayer.cpp ) -set(backend_libs IMobileDevice::IMobileDevice PList::PList) +set(backend_libs unofficial::libimobiledevice::libimobiledevice unofficial::libplist::libplist) ecm_qt_declare_logging_category(backend_sources HEADER imobile_debug.h ================================================ FILE: ports/kf5solid/003_libmount.patch ================================================ diff --git a/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp b/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp index 1c513ab8..beb41140 100644 --- a/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp +++ b/src/solid/devices/backends/udisks2/udisksstorageaccess.cpp @@ -18,7 +18,7 @@ #include #if HAVE_LIBMOUNT -#include +#include #endif using namespace Solid::Backends::UDisks2; ================================================ FILE: ports/kf5solid/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/solid REF "v${VERSION}" SHA512 67d22f9da0646e9e98c029e9beec73705582d9bf946c1330166c168f7216113786a3a1ae81c88ad3886244147d48a655c9a938d8700ee39414c1d575c0949959 HEAD_REF master PATCHES 001_fix_libmount.patch 002_fix_imobile.patch 003_libmount.patch ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") if(VCPKG_TARGET_IS_OSX) # On Darwin platform, the bundled version of 'bison' may be too old (< 3.0). vcpkg_find_acquire_program(BISON) execute_process( COMMAND "${BISON}" --version OUTPUT_VARIABLE BISON_OUTPUT ) string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" BISON_VERSION "${BISON_OUTPUT}") set(BISON_MAJOR ${CMAKE_MATCH_1}) set(BISON_MINOR ${CMAKE_MATCH_2}) message(STATUS "Using bison: ${BISON_MAJOR}.${BISON_MINOR}.${CMAKE_MATCH_3}") if(NOT (BISON_MAJOR GREATER_EQUAL 3 AND BISON_MINOR GREATER_EQUAL 0)) message(WARNING "${PORT} requires bison version greater than one provided by macOS, please use \`brew install bison\` to install a newer bison.") endif() endif() vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY) get_filename_component(BISON_DIR "${BISON}" DIRECTORY) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_add_to_path(PREPEND "${BISON_DIR}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libmount CMAKE_REQUIRE_FIND_PACKAGE_LibMount imobile CMAKE_REQUIRE_FIND_PACKAGE_IMobileDevice imobile CMAKE_REQUIRE_FIND_PACKAGE_PList INVERTED_FEATURES libmount CMAKE_DISABLE_FIND_PACKAGE_LibMount imobile CMAKE_DISABLE_FIND_PACKAGE_IMobileDevice imobile CMAKE_DISABLE_FIND_PACKAGE_PList ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DKDE_INSTALL_QMLDIR=qml ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Solid) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES solid-hardware5 AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Until https://github.com/microsoft/vcpkg/pull/34091 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5solid/vcpkg.json ================================================ { "name": "kf5solid", "version": "5.116.0", "port-version": 1, "description": "Desktop hardware abstraction", "homepage": "https://api.kde.org/solid-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "libmount", "platform": "linux" } ], "features": { "imobile": { "description": "Used by the imobile backend", "dependencies": [ "libimobiledevice", "libplist" ] }, "libmount": { "description": "Used by the UDisks backend on Linux", "supports": "linux", "dependencies": [ "libmount" ] } } } ================================================ FILE: ports/kf5sonnet/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/sonnet REF "v${VERSION}" SHA512 1bb5043b45e31009d89253179fde0ec677d73a125c4a2db39fff212d10c311d9c12748fd3d8d555b1b078fe307ab7de0cf46841a26645256f112445270c0c9e6 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "hunspell" CMAKE_REQUIRE_FIND_PACKAGE_HUNSPELL INVERTED_FEATURES "hunspell" CMAKE_DISABLE_FIND_PACKAGE_HUNSPELL ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DKDE_INSTALL_PLUGINDIR=plugins -DKDE_INSTALL_QTPLUGINDIR=plugins -DKDE_INSTALL_QMLDIR=qml -DCMAKE_DISABLE_FIND_PACKAGE_VOIKKO=ON -DCMAKE_DISABLE_FIND_PACKAGE_ASPELL=ON -DCMAKE_DISABLE_FIND_PACKAGE_HSPELL=ON ${FEATURE_OPTIONS} ) vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Sonnet) vcpkg_copy_tools( TOOL_NAMES gentrigrams parsetrigrams AUTO_CLEAN ) file(APPEND "${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "Data = ../../share") vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/gentrigrams${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/parsetrigrams${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5sonnet/vcpkg.json ================================================ { "name": "kf5sonnet", "version": "5.116.0", "description": "Multi-language spell checker", "homepage": "https://api.kde.org/sonnet-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hunspell": { "description": "Spell checking support via Hunspell", "dependencies": [ "hunspell" ] } } } ================================================ FILE: ports/kf5syntaxhighlighting/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/syntax-highlighting REF "v${VERSION}" SHA512 e9145d74dd8cd35d18d25dd1237f7c188dcdaa3f00187833188b1a8312a595175b6d5eb40341e5014b37cfa372e2b21f351737cd4af4ac4006403a928f8f3963 HEAD_REF master ) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QMLDIR=qml ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5SyntaxHighlighting) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES kate-syntax-highlighter AUTO_CLEAN ) 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/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5syntaxhighlighting/vcpkg.json ================================================ { "name": "kf5syntaxhighlighting", "version": "5.116.0", "description": "Syntax highlighting engine for Kate syntax definitions", "homepage": "https://api.kde.org/ksyntaxhighlighting-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", "qt5-xmlpatterns", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5texteditor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/ktexteditor REF "v${VERSION}" SHA512 e860b06bf111c57d3f0c4380c87741ec8cc32e2d8dad0356520ecbd6fdfbd0ac5b323c9967a1b4a431d4186277fea1a6d335d226fb03fe2fd3f02e37b184d2ef HEAD_REF master ) # A trick for `kcoreaddons_desktop_to_json` (see KF5CoreAddonsMacros.cmake) to generate katepart.desktop # The copied *.desktop files should be removed after vcpkg_cmake_install file(COPY "${CURRENT_INSTALLED_DIR}/share/kservicetypes5" DESTINATION "${CURRENT_PACKAGES_DIR}/share") file(GLOB TEMP_DESKTOP_FILES_REL "${CURRENT_PACKAGES_DIR}/share/kservicetypes5/*") if(NOT VCPKG_BUILD_TYPE) file(COPY "${CURRENT_INSTALLED_DIR}/share/kservicetypes5" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB TEMP_DESKTOP_FILES_DBG "${CURRENT_PACKAGES_DIR}/debug/share/kservicetypes5/*") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DENABLE_KAUTH=OFF -DVCPKG_HOST_TRIPLET=${VCPKG_HOST_TRIPLET} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5TextEditor) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ${TEMP_DESKTOP_FILES_DBG} ${TEMP_DESKTOP_FILES_REL} ) file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5texteditor/vcpkg.json ================================================ { "name": "kf5texteditor", "version": "5.116.0", "port-version": 1, "description": "Full text editor component", "homepage": "https://invent.kde.org/frameworks/ktexteditor", "documentation": "https://api.kde.org/ktexteditor-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl", "kf5archive", "kf5config", "kf5guiaddons", "kf5i18n", "kf5kio", "kf5parts", "kf5sonnet", "kf5syntaxhighlighting", { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5textwidgets/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/ktextwidgets REF "v${VERSION}" SHA512 9107a070d7d12442c5aa0e0432b114d9c0b0d43e8a268b1254468e777de62f895afa1775adb79d75bd1116723f5518ea52f9a035c5cbd2930ce630805c537497 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_QTPLUGINDIR=plugins ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5TextWidgets) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5textwidgets/vcpkg.json ================================================ { "name": "kf5textwidgets", "version": "5.116.0", "description": "Text editing widgets", "homepage": "https://api.kde.org/ktextwidgets-index.html", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5completion", "kf5config", "kf5configwidgets", "kf5i18n", "kf5sonnet", "kf5widgetsaddons", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5wallet/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kwallet REF "v${VERSION}" SHA512 1655478825de202870e1cd3c2c7eb98476df3d42ea861538a4ee1c1c6e26d3aa470cc4fd865e64b957bf82654fe46d8c779d9dcd399f97bf594b9c7f375e8fa2 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_KWALLETD=OFF -DBUILD_KWALLET_QUERY=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5Wallet) vcpkg_copy_pdbs() 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") endif() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5wallet/vcpkg.json ================================================ { "name": "kf5wallet", "version": "5.116.0", "description": "Safe desktop-wide storage for passwords", "homepage": "https://api.kde.org/kwallet-index.html", "dependencies": [ "ecm", "gettext", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5config", "kf5coreaddons", "kf5i18n", "kf5windowsystem", "qt5-base", "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5widgetsaddons/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kwidgetsaddons REF "v${VERSION}" SHA512 83435073854fe3b4ea765d1bf2b58bffb13ba5ea16c2c7efc04ee7205bb8dbd88f4fa04063e3d39632fe4fefc38e689e0dce7b464a6872b987a981d52d71217c HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_DESIGNERPLUGIN=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5WidgetsAddons) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5widgetsaddons/vcpkg.json ================================================ { "name": "kf5widgetsaddons", "version": "5.116.0", "description": "Addons to QtWidgets", "homepage": "https://api.kde.org/kwidgetsaddons-index.html", "dependencies": [ "ecm", { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5windowsystem/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kwindowsystem REF "v${VERSION}" SHA512 adc7c9ea1f0cc20ccd009179c2989b9d03a1de067898769f2f1d364acdc599e7558a449f46f6c7306d00de4adda0d153e4b71395f28aaeef968591d9b96a950f HEAD_REF master ) if (VCPKG_TARGET_IS_LINUX) message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n libxcb-res0-dev\n\nThese can be installed on Ubuntu systems via apt-get install libxcb-res0-dev") endif() # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_PLUGINDIR=plugins ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5WindowSystem) vcpkg_copy_pdbs() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/KF5/KWindowSystem/config-kwindowsystem.h" "${CURRENT_PACKAGES_DIR}/" "") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5windowsystem/vcpkg.json ================================================ { "name": "kf5windowsystem", "version": "5.116.0", "description": "Access to the windowing system", "homepage": "https://api.kde.org/kwindowsystem-index.html", "dependencies": [ "ecm", "qt5-tools", { "name": "qt5-winextras", "platform": "windows" }, { "name": "qt5-x11extras", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kf5xmlgui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/kxmlgui REF "v${VERSION}" SHA512 be36d5f554ce952379518e995570121632c8e1d43d2527b37c94a3cfc6009de05c1d54a8b8e88634da08a2c5112aaab07cbf3e1f4efbd77e3e0db96a9b27a77a HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES designerplugin BUILD_DESIGNERPLUGIN ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DKDE_INSTALL_PLUGINDIR=plugins -DKDE_INSTALL_QTPLUGINDIR=plugins ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF5XmlGui) vcpkg_copy_pdbs() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools( TOOL_NAMES ksendbugmail AUTO_CLEAN ) endif() 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf5xmlgui/vcpkg.json ================================================ { "name": "kf5xmlgui", "version": "5.116.0", "description": "Framework for managing menu and toolbar actions", "homepage": "https://api.kde.org/kxmlgui-index.html", "dependencies": [ "ecm", "gettext", { "name": "gettext", "host": true, "features": [ "tools" ] }, "kf5archive", "kf5config", "kf5configwidgets", "kf5coreaddons", { "name": "kf5globalaccel", "platform": "!windows & !osx & !android" }, "kf5guiaddons", "kf5i18n", "kf5iconthemes", "kf5itemviews", "kf5widgetsaddons", "kf5windowsystem", { "name": "libiconv", "platform": "windows & static" }, { "name": "qt5-base", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "designerplugin": { "description": "Enables a Qt Designer plugin" } } } ================================================ FILE: ports/kf6archive/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/karchive REF "v${VERSION}" SHA512 d6ab327b5c42c3221348d797e575984d50790f46db6f7e92dd442f7792e88804f88054fb4bcaf6b12470f992f0a18065a2aafa67eb4d4784d5caf0082c4d4b0e HEAD_REF master PATCHES zstd.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES bzip2 WITH_BZIP2 bzip2 VCPKG_LOCK_FIND_PACKAGE_BZip2 lzma WITH_LIBLZMA lzma VCPKG_LOCK_FIND_PACKAGE_LibLZMA zstd WITH_LIBZSTD zstd VCPKG_LOCK_FIND_PACKAGE_LibZstd INVERTED_FEATURES translations KF_SKIP_PO_PROCESSING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/KF6Archive) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/kf6archive/vcpkg.json ================================================ { "name": "kf6archive", "version": "6.22.0", "description": "File compression", "homepage": "https://invent.kde.org/frameworks/karchive", "documentation": "https://api.kde.org/karchive-index.html", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ "ecm", { "name": "qtbase", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "bzip2": { "description": "Support for bzip2 compressed files and data streams", "dependencies": [ "bzip2" ] }, "lzma": { "description": "Support for xz compressed files and data streams", "dependencies": [ "liblzma" ] }, "translations": { "description": "Install translations", "dependencies": [ { "name": "qttools", "host": true, "features": [ "linguist" ] } ] }, "zstd": { "description": "Support for zstd compressed files and data streams", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/kf6archive/zstd.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 10961f8..357a13d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,10 +88,9 @@ set_package_properties(OpenSSL PROPERTIES ) -find_package(PkgConfig ${PKGCONFIG_REQUIRED_TYPE}) if (PkgConfig_FOUND) - pkg_check_modules(LibZstd ${LIBZSTD_REQUIRED_TYPE} IMPORTED_TARGET "libzstd") endif() +find_package(LibZstd NAMES zstd) add_feature_info(LibZstd LibZstd_FOUND "Support for zstd compressed files and data streams" ) diff --git a/KF6ArchiveConfig.cmake.in b/KF6ArchiveConfig.cmake.in index 0b8d98c..cd4bd78 100644 --- a/KF6ArchiveConfig.cmake.in +++ b/KF6ArchiveConfig.cmake.in @@ -28,8 +28,7 @@ if (NOT @BUILD_SHARED_LIBS@) endif() if (@LibZstd_FOUND@) - find_package(PkgConfig) - pkg_check_modules(LibZstd IMPORTED_TARGET "libzstd") + find_dependency(zstd CONFIG) endif() endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 30ba462..46d4128 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -36,7 +36,7 @@ endif() if (LibZstd_FOUND) target_sources(KF6Archive PRIVATE kzstdfilter.cpp) - target_link_libraries(KF6Archive PRIVATE PkgConfig::LibZstd) + target_link_libraries(KF6Archive PRIVATE zstd::libzstd) endif() ================================================ FILE: ports/kfr/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kfrlib/kfr REF "${VERSION}" SHA512 2bf6698efc4eb577104308bcb0477bf631f39848842129993222227fcaad7793e776c04dbe7ec66b155018a5e9f09c15fe0864576860362effc63ced8f22bba5 HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES capi KFR_ENABLE_CAPI_BUILD dft KFR_ENABLE_DFT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TESTS=OFF -DENABLE_EXAMPLES=OFF -DKFR_ENABLE_ASMTEST=OFF -DKFR_REGENERATE_TESTS=OFF -DKFR_EXTENDED_TESTS=OFF -DKFR_SKIP_TESTS=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( COMMENT [[ KFR is distributed under dual GPLv2/v3 and commercial license. https://kfrlib.com/purchase ]] FILE_LIST "${SOURCE_PATH}/LICENSE.txt" ) ================================================ FILE: ports/kfr/vcpkg.json ================================================ { "name": "kfr", "version-semver": "6.3.1", "description": "Fast, modern C++ DSP framework.", "homepage": "https://www.kfr.dev/", "license": null, "supports": "!(arm64 & windows) & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "capi": { "description": "Enable C API build.", "dependencies": [ { "name": "kfr", "default-features": false, "features": [ "dft" ] } ] }, "dft": { "description": "Enable DFT and related algorithms." } } } ================================================ FILE: ports/kinectsdk1/Config.cmake.in ================================================ get_filename_component(_kinectsdk1_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_kinectsdk1_root "${_kinectsdk1_root}" PATH) get_filename_component(_kinectsdk1_root "${_kinectsdk1_root}" PATH) set(_kinectsdk1_rel_lib "${_kinectsdk1_root}/lib/Kinect10.lib") set(_kinectsdk1_dbg_lib "${_kinectsdk1_root}/debug/lib/Kinect10.lib") if (EXISTS "${_kinectsdk1_rel_lib}" OR EXISTS "${_kinectsdk1_dbg_lib}") add_library(unofficial::kinectsdk1::kinectsdk1 INTERFACE IMPORTED) set_target_properties(unofficial::kinectsdk1::kinectsdk1 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_kinectsdk1_root}/include") if (EXISTS "${_kinectsdk1_rel_lib}") set_target_properties(unofficial::kinectsdk1::kinectsdk1 PROPERTIES IMPORTED_LOCATION_RELEASE "${_kinectsdk1_rel_lib}") set_property(TARGET unofficial::kinectsdk1::kinectsdk1 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) endif() if (EXISTS "${_kinectsdk1_dbg_lib}") set_target_properties(unofficial::kinectsdk1::kinectsdk1 PROPERTIES IMPORTED_LOCATION_DEBUG "${_kinectsdk1_dbg_lib}") set_property(TARGET unofficial::kinectsdk1::kinectsdk1 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) endif() else() set(kinectsdk1_FOUND FALSE) endif() unset(_kinectsdk1_rel_lib) unset(_kinectsdk1_dbg_lib) unset(_kinectsdk1_root) ================================================ FILE: ports/kinectsdk1/portfile.cmake ================================================ set(KINECTSDK10_VERSION "v1.8") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ARCHITECTURE x86) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCHITECTURE amd64) else() message(FATAL_ERROR "This port does not currently support architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_download_distfile(KINECTSDK10_INSTALLER URLS "https://download.microsoft.com/download/E/1/D/E1DEC243-0389-4A23-87BF-F47DE869FC1A/KinectSDK-${KINECTSDK10_VERSION}-Setup.exe" FILENAME "KinectSDK-${KINECTSDK10_VERSION}-Setup.exe" SHA512 d7e886d639b4310addc7c1350311f81289ffbcd653237882da7bf3d4074281ed35d217cb8be101579cac880c574dd89c62cd6a87772d60905c446d0be5fd1932 ) vcpkg_find_acquire_program(DARK) set(KINECTSDK10_WIX_INSTALLER "${KINECTSDK10_INSTALLER}") set(KINECTSDK10_WIX_EXTRACT_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/wix") vcpkg_execute_required_process( COMMAND "${DARK}" -x "${KINECTSDK10_WIX_EXTRACT_DIR}" "${KINECTSDK10_WIX_INSTALLER}" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME extract-wix-${TARGET_TRIPLET} ) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/src/KinectSDK-${KINECTSDK10_VERSION}-${VCPKG_TARGET_ARCHITECTURE}") set(KINECTSDK10_MSI_INSTALLER "installer\\wix\\AttachedContainer\\KinectSDK-${KINECTSDK10_VERSION}-${VCPKG_TARGET_ARCHITECTURE}.msi") vcpkg_execute_required_process( COMMAND "${LESSMSI}" x "${KINECTSDK10_MSI_INSTALLER}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src" LOGNAME extract-msi-${TARGET_TRIPLET} ) set(KINECTSDK10_DIR "${CURRENT_BUILDTREES_DIR}/src/KinectSDK-${KINECTSDK10_VERSION}-${VCPKG_TARGET_ARCHITECTURE}/SourceDir/Microsoft SDKs/Kinect/${KINECTSDK10_VERSION}") file( INSTALL "${KINECTSDK10_DIR}/inc/NuiApi.h" "${KINECTSDK10_DIR}/inc/NuiImageCamera.h" "${KINECTSDK10_DIR}/inc/NuiSensor.h" "${KINECTSDK10_DIR}/inc/NuiSkeleton.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file( INSTALL "${KINECTSDK10_DIR}/lib/${ARCHITECTURE}/Kinect10.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) file( INSTALL "${KINECTSDK10_DIR}/lib/${ARCHITECTURE}/Kinect10.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) # Handle copyright file(INSTALL "${KINECTSDK10_DIR}/SDKEula.rtf" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/kinectsdk1/vcpkg.json ================================================ { "name": "kinectsdk1", "version": "1.8", "port-version": 8, "description": "Kinect for Windows SDK for Kinect v1 sensor.", "license": null, "supports": "!arm & windows & !uwp & !xbox", "dependencies": [ { "name": "vcpkg-tool-lessmsi", "host": true, "version>=": "1.10.0#1" } ] } ================================================ FILE: ports/kinectsdk2/Config.cmake.in ================================================ get_filename_component(_kinectsdk2_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_kinectsdk2_root "${_kinectsdk2_root}" PATH) get_filename_component(_kinectsdk2_root "${_kinectsdk2_root}" PATH) set(_kinectsdk2_rel_lib "${_kinectsdk2_root}/lib/Kinect20.lib") set(_kinectsdk2_dbg_lib "${_kinectsdk2_root}/debug/lib/Kinect20.lib") if (EXISTS "${_kinectsdk2_rel_lib}" OR EXISTS "${_kinectsdk2_dbg_lib}") add_library(unofficial::kinectsdk2::kinectsdk2 INTERFACE IMPORTED) set_target_properties(unofficial::kinectsdk2::kinectsdk2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_kinectsdk2_root}/include") if (EXISTS "${_kinectsdk2_rel_lib}") set_target_properties(unofficial::kinectsdk2::kinectsdk2 PROPERTIES IMPORTED_LOCATION_RELEASE "${_kinectsdk2_rel_lib}") set_property(TARGET unofficial::kinectsdk2::kinectsdk2 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) endif() if (EXISTS "${_kinectsdk2_dbg_lib}") set_target_properties(unofficial::kinectsdk2::kinectsdk2 PROPERTIES IMPORTED_LOCATION_DEBUG "${_kinectsdk2_dbg_lib}") set_property(TARGET unofficial::kinectsdk2::kinectsdk2 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) endif() else() set(kinectsdk2_FOUND FALSE) endif() unset(_kinectsdk2_rel_lib) unset(_kinectsdk2_dbg_lib) unset(_kinectsdk2_root) ================================================ FILE: ports/kinectsdk2/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) set(KINECTSDK20_VERSION "v2.0_1409") vcpkg_download_distfile(KINECTSDK20_INSTALLER URLS "https://download.microsoft.com/download/F/2/D/F2D1012E-3BC6-49C5-B8B3-5ACFF58AF7B8/KinectSDK-${KINECTSDK20_VERSION}-Setup.exe" FILENAME "KinectSDK-${KINECTSDK20_VERSION}-Setup.exe" SHA512 ae3b00f45282ab2ed6ea36c09e42e1b274074f41546ecfbe00facf1fffa2e5a762ffeffb9ba2194f716e8122e0fbd9a8ef63c62be68d2b50a40e4f8c5a821f5f ) vcpkg_find_acquire_program(DARK) set(KINECTSDK20_WIX_INSTALLER "${KINECTSDK20_INSTALLER}") set(KINECTSDK20_WIX_EXTRACT_DIR "${CURRENT_BUILDTREES_DIR}/src/installer/wix") vcpkg_execute_required_process( COMMAND ${DARK} -x ${KINECTSDK20_WIX_EXTRACT_DIR} ${KINECTSDK20_WIX_INSTALLER} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME extract-wix-${TARGET_TRIPLET} ) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/src/KinectSDK-${KINECTSDK20_VERSION}-x64") set(KINECTSDK20_MSI_INSTALLER "installer\\wix\\AttachedContainer\\KinectSDK-${KINECTSDK20_VERSION}-x64.msi") vcpkg_execute_required_process( COMMAND "${LESSMSI}" x "${KINECTSDK20_MSI_INSTALLER}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src" LOGNAME extract-msi-${TARGET_TRIPLET} ) set(KINECTSDK20_DIR "${CURRENT_BUILDTREES_DIR}/src/KinectSDK-${KINECTSDK20_VERSION}-x64/SourceDir/Microsoft SDKs/Kinect/${KINECTSDK20_VERSION}") file( INSTALL "${KINECTSDK20_DIR}/inc/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file( INSTALL "${KINECTSDK20_DIR}/Lib/${VCPKG_TARGET_ARCHITECTURE}/Kinect20.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) file( INSTALL "${KINECTSDK20_DIR}/Lib/${VCPKG_TARGET_ARCHITECTURE}/Kinect20.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) # Handle copyright file(INSTALL "${KINECTSDK20_DIR}/SDKEula.rtf" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/kinectsdk2/vcpkg.json ================================================ { "name": "kinectsdk2", "version": "2.0", "port-version": 7, "description": "Kinect for Windows SDK for Kinect v2 sensor.", "license": null, "supports": "!arm & windows & !uwp & !xbox", "dependencies": [ { "name": "vcpkg-tool-lessmsi", "host": true, "version>=": "1.10.0#1" } ] } ================================================ FILE: ports/kissfft/fix-install-dirs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0213798..c4d7d3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,9 +105,7 @@ endif() # Add GNUInstallDirs for GNU infrastructure before target)include_directories # -if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$" AND NOT CMAKE_CROSSCOMPILING) - include(GNUInstallDirs) -endif() +include(GNUInstallDirs) # # Declare PKGINCLUDEDIR for kissfft include path ================================================ FILE: ports/kissfft/fix-linkage.patch ================================================ diff --git a/kissfft-config.cmake.in b/kissfft-config.cmake.in index cd7139a..c387fe6 100644 --- a/kissfft-config.cmake.in +++ b/kissfft-config.cmake.in @@ -28,7 +28,7 @@ cmake_minimum_required(VERSION 3.3) # Set include glob of config files using SHARED/static component, BUILD_SHARED_LIBS by default set(_kissfft_shared_detected OFF) -set(_kissfft_shared ${BUILD_SHARED_LIBS}) +set(_kissfft_shared @BUILD_SHARED_LIBS@) if("SHARED" IN_LIST kissfft_FIND_COMPONENTS) set(_kissfft_shared_detected ON) set(_kissfft_shared ON) ================================================ FILE: ports/kissfft/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mborgerding/kissfft REF "${VERSION}" SHA512 5d02802a9e191e7cb77c26e9a34659a5d47c4e85bcfdf86a7cffdda66d8b79261f7fe5795ffabd78644b6094c01b32a84841669fbc0009ac9268ae1ba521af9e HEAD_REF master PATCHES fix-install-dirs.patch fix-linkage.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KISSFFT_STATIC) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp KISSFFT_OPENMP tools KISSFFT_TOOLS ) if("tools" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) endif() set(datatypes float double int16_t int32_t) foreach(datatype IN LISTS datatypes) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKISSFFT_DATATYPE=${datatype} -DKISSFFT_PKGCONFIG=ON -DKISSFFT_TEST=OFF -DKISSFFT_STATIC=${KISSFFT_STATIC} ${FEATURE_OPTIONS} LOGFILE_BASE "config-${TARGET_TRIPLET}-${datatype}" ) vcpkg_cmake_build( LOGFILE_BASE "install-${TARGET_TRIPLET}-${datatype}" TARGET install ) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/kissfft") vcpkg_copy_pdbs() endforeach() vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) set(tool_names) foreach(datatype IN LISTS datatypes) if("openmp" IN_LIST FEATURES) list(APPEND tool_names "fastconv-${datatype}-openmp" "fastconvr-${datatype}-openmp" "fft-${datatype}-openmp" "psdpng-${datatype}-openmp" ) else() list(APPEND tool_names "fastconv-${datatype}" "fastconvr-${datatype}" "fft-${datatype}" "psdpng-${datatype}" ) endif() endforeach() vcpkg_copy_tools( TOOL_NAMES ${tool_names} AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/kissfft/kiss_fft.h" "#ifdef KISS_FFT_SHARED" "#if 1 //#ifdef KISS_FFT_SHARED" ) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/kissfft") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/kissfft/usage ================================================ kissfft provides CMake targets: # Using distinct targets find_package(kissfft CONFIG REQUIRED) target_link_libraries(main PRIVATE kissfft::kissfft-float) # Alternative targets: kissfft::kissfft-double, kissfft::int16_t, kissfft::int32_t # Using a distinct package component find_package(kissfft CONFIG REQUIRED COMPONENTS float) target_link_libraries(main PRIVATE kissfft::kissfft) # Alternative components: double, int16_t, int32_t ================================================ FILE: ports/kissfft/vcpkg.json ================================================ { "name": "kissfft", "version": "131.2.0", "description": "A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid", "homepage": "https://github.com/mborgerding/kissfft", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Build kissfft with OpenMP support", "supports": "!windows" }, "tools": { "description": "Build kissfft tools", "supports": "linux | osx", "dependencies": [ "libpng" ] } } } ================================================ FILE: ports/kissnet/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ybalrid/kissnet REF 12ea4c632cc719b608876bf1894ce96eea0a1174 # 2024-01-20 SHA512 44f169c912cfa00bcc6132dfbd62a4d3d40bb70db92ba69b21a76e32eb8b4363f17c6eb1413974af55f4fcfbafbf32cc98e6ac147e46bad8cf7c691016a30bdb HEAD_REF master ) # Install the header-only library file(INSTALL "${SOURCE_PATH}/kissnet.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/kissnet/usage ================================================ The package kissnet is header only and can be used from CMake via: find_path(KISSNET_INCLUDE_DIRS "kissnet.hpp") target_include_directories(main PRIVATE ${KISSNET_INCLUDE_DIRS}) ================================================ FILE: ports/kissnet/vcpkg.json ================================================ { "name": "kissnet", "version-date": "2024-01-20", "description": "Keep It Simple Stupid NETwork - C++17 wrapping of your OS's native socket API", "homepage": "https://github.com/Ybalrid/kissnet", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kleidiai/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ARM-software/kleidiai REF "v${VERSION}" SHA512 46de1f0cdd04ce1e8de5d1bdb2499d07eb377e616eb3a8596fbcd296b7887e413be5470f383b5790cef73dc370bead3db36ef2ed116513b95924ae71d87ef123 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" WINDOWS_USE_MSBUILD OPTIONS -DKLEIDIAI_BUILD_TESTS=OFF -DKLEIDIAI_BUILD_BENCHMARK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/KleidiAI" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Avoids empty debug folder in the zip. file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*" ) vcpkg_install_copyright( FILE_LIST ${LICENSE_FILES} ) ================================================ FILE: ports/kleidiai/vcpkg.json ================================================ { "name": "kleidiai", "version-semver": "1.19.0", "description": "Arm's KleidiAI library for efficient neural network inference.", "homepage": "https://github.com/ARM-software/kleidiai", "license": "Apache-2.0 OR BSD-3-Clause", "supports": "arm64", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/klein/find_simde_first.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c5d6f3f..a3ba161 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,16 +29,7 @@ endif() option(KLEIN_BUILD_SYM "Enable compilation of symbolic Klein utility" ON) option(KLEIN_BUILD_C_BINDINGS "Enable compilation of the Klein C bindings" ON) -include(FetchContent) -FetchContent_Declare( - simde - GIT_REPOSITORY https://github.com/simd-everywhere/simde - GIT_TAG v0.7.2 - GIT_SHALLOW ON -) -FetchContent_GetProperties(simde) -if(NOT simde_POPULATED) - FetchContent_Populate(simde) -endif() +find_path(SIMDE_INCLUDE_DIR "simde/x86/sse4.1.h" REQUIRED) +set(simde_SOURCE_DIR ${SIMDE_INCLUDE_DIR}/simde) # The default platform and instruction set is x86 SSE3 ================================================ FILE: ports/klein/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jeremyong/klein REF 92023c6a946af84e716deb1488cad22048d3e08d SHA512 5d12ae143f07173992a6f9aa90539c4cb6c895a7169e5c086a10f78a31f7b2c9d64faf5ce1db014bd3badd92d24ff612dd2d2dc2f7508baac59307e3dccb6ebe HEAD_REF master PATCHES "find_simde_first.patch" ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DKLEIN_ENABLE_PERF=OFF -DKLEIN_ENABLE_TESTS=OFF -DKLEIN_VALIDATE=OFF -DKLEIN_BUILD_SYM=OFF -DKLEIN_BUILD_C_BINDINGS=OFF -DKLEIN_INSTALL=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/klein/usage ================================================ The package klein:x64-windows provides CMake targets: find_package(klein CONFIG REQUIRED) target_link_libraries(main PRIVATE klein::klein) # Or use the C++ 11 version target_link_libraries(main PRIVATE klein::klein_cxx11) # Or use the SSE4.1 version target_link_libraries(main PRIVATE klein::klein_sse42) ================================================ FILE: ports/klein/vcpkg.json ================================================ { "name": "klein", "version-date": "2021-05-09", "description": "Klein is an implementation of P(R*_{3, 0, 1}), aka 3D Projective Geometric Algebra. It is designed for applications that demand high-throughput (animation libraries, kinematic solvers, etc).", "dependencies": [ "simde", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/knet/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kibaamor/knet REF v1.1.0 SHA512 22f46c2626c60798a99d7fe3027b675d40584df141fc1131a0d737df28f3e633ec798567defd131b08c3b3ec81069648ed45c2e37eacf37dc15ead45ab24ee55 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} DISABLE_PARALLEL_CONFIGURE OPTIONS -DKNET_ENABLE_LOG=OFF -DKNET_SOCKET_STAT=OFF -DKNET_BUILD_EXAMPLE=OFF -DKNET_BUILD_TEST=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/knet) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) ================================================ FILE: ports/knet/usage ================================================ The package knet provides CMake integration: find_package(knet CONFIG REQUIRED) target_link_libraries(main PRIVATE knet) ================================================ FILE: ports/knet/vcpkg.json ================================================ { "name": "knet", "version": "1.1.0", "port-version": 1, "description": "A cross platform lock-free and timer-supported C++11 network library.", "homepage": "https://github.com/kibaamor/knet", "license": "MIT", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/knncolle/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO knncolle/knncolle REF "v${VERSION}" SHA512 d7bb80ae5ca31896f332a932d3762ff3e39d7b131c04d006516043a98e846ae86ebf360bab1caf6232f6c8624f156a584911ef00b42bf36722671734a26e0222 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKNNCOLLE_FETCH_EXTERN=OFF -DKNNCOLLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME knncolle_knncolle CONFIG_PATH lib/cmake/knncolle_knncolle ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/knncolle/usage ================================================ knncolle is header-only and can be used from CMake via: find_package(knncolle_knncolle CONFIG REQUIRED) target_link_libraries(mylib INTERFACE knncolle::knncolle) ================================================ FILE: ports/knncolle/vcpkg.json ================================================ { "name": "knncolle", "version": "3.1.0", "description": "Collection of KNN algorithms in C++ ", "homepage": "https://github.com/knncolle/knncolle", "license": "MIT", "dependencies": [ "ltla-sanisizer", "ltla-subpar", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/knncolle-annoy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO knncolle/knncolle_annoy REF "v${VERSION}" SHA512 8fa9565fee81058819c2c1aefd17d156eec861d5d829c87c8c5b503ded101deb8b9f098281dc3805ab7f949c176a2c243527fd4207127f53e7a57037965c8c98 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKNNCOLLE_ANNOY_FETCH_EXTERN=OFF -DKNNCOLLE_ANNOY_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME knncolle_annoy CONFIG_PATH lib/cmake/knncolle_annoy ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/knncolle-annoy/usage ================================================ knncolle_annoy is header-only and can be used from CMake via: find_package(knncolle_knncolle_annoy CONFIG REQUIRED) target_link_libraries(mylib INTERFACE knncolle::knncolle_annoy) ================================================ FILE: ports/knncolle-annoy/vcpkg.json ================================================ { "name": "knncolle-annoy", "version": "0.3.0", "description": "knncolle bindings for Annoy search ", "homepage": "https://github.com/knncolle/knncolle_annoy", "license": "MIT", "dependencies": [ "annoy", "knncolle", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/knncolle-hnsw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO knncolle/knncolle_hnsw REF "v${VERSION}" SHA512 b75fdc19862d53023119b9464cd2361bd70a17b1f27e899c5f3277431d55c9f7d18a749381b10f0841deebc35d51cea0f95e579b19c671b31eb3588bbd02de1e HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKNNCOLLE_HNSW_FETCH_EXTERN=OFF -DKNNCOLLE_HNSW_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME knncolle_hnsw CONFIG_PATH lib/cmake/knncolle_hnsw ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/knncolle-hnsw/usage ================================================ knncolle_hnsw is header-only and can be used from CMake via: find_package(knncolle_knncolle_hnsw CONFIG REQUIRED) target_link_libraries(mylib INTERFACE knncolle::knncolle_hnsw) ================================================ FILE: ports/knncolle-hnsw/vcpkg.json ================================================ { "name": "knncolle-hnsw", "version": "0.3.0", "description": "knncolle bindings for HNSW search ", "homepage": "https://github.com/knncolle/knncolle_hnsw", "license": "MIT", "dependencies": [ "hnswlib", "knncolle", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/knncolle-kmknn/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO knncolle/knncolle_kmknn REF "v${VERSION}" SHA512 18779c0a03783d177072531c621a4ba8cc76097afe0d3182e32284382ac40219ee7acd746b650375b31dbb90ec4bd8c0eac5f4bdde8f0ab94a36b5870b6a69db HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKNNCOLLE_KMKNN_FETCH_EXTERN=OFF -DKNNCOLLE_KMKNN_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME knncolle_kmknn CONFIG_PATH lib/cmake/knncolle_kmknn ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/knncolle-kmknn/usage ================================================ knncolle_kmknn is header-only and can be used from CMake via: find_package(knncolle_knncolle_kmknn CONFIG REQUIRED) target_link_libraries(mylib INTERFACE knncolle::knncolle_kmknn) ================================================ FILE: ports/knncolle-kmknn/vcpkg.json ================================================ { "name": "knncolle-kmknn", "version": "0.2.0", "description": "knncolle bindings for KMKNN search ", "homepage": "https://github.com/knncolle/knncolle_kmknn", "license": "MIT", "dependencies": [ "knncolle", "ltla-cppkmeans", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/komihash/portfile.cmake ================================================ # Header-only library set(VCPKG_BUILD_TYPE "release") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO avaneev/komihash REF "${VERSION}" SHA512 c1d70748d4efd887d4f5ad1482044158322d72485e30eab387e8dc3d4a7c8ca6296035afb8003ed86991003d3550990e6fe486236c70594d1dcdcc39e77dc438 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/komihash.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/komihash/vcpkg.json ================================================ { "name": "komihash", "version": "5.28", "description": "Very fast, high-quality hash function, discrete-incremental and streamed hashing-capable", "homepage": "https://github.com/avaneev/komihash", "license": "MIT" } ================================================ FILE: ports/krabsetw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/krabsetw REF 550f5edfdb6464567d7a618702316183d31746e5 SHA512 0e02e04b79d4f856962c135023b87057898cb9a05f8056e0dc2bca7c4bb6227a660097f5251134086d1334f2a8e1541b4e963667ccd4f5c5ed6d60aa32c2c968 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/krabs/krabs/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/krabs) file(INSTALL ${SOURCE_PATH}/krabs/krabs.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/krabsetw/vcpkg.json ================================================ { "name": "krabsetw", "version": "4.3.2", "description": "krabsetw is a header-only C++ library that simplifies interacting with ETW.", "homepage": "https://github.com/microsoft/krabsetw", "supports": "windows & !uwp" } ================================================ FILE: ports/krb5/define-des-zeroblock.diff ================================================ diff --git a/src/lib/crypto/builtin/des/f_aead.c b/src/lib/crypto/builtin/des/f_aead.c index f887735..26a5474 100644 --- a/src/lib/crypto/builtin/des/f_aead.c +++ b/src/lib/crypto/builtin/des/f_aead.c @@ -28,7 +28,7 @@ #ifdef K5_BUILTIN_DES -const mit_des_cblock mit_des_zeroblock /* = all zero */; +const mit_des_cblock mit_des_zeroblock = { 0, 0, 0 }; void krb5int_des_cbc_encrypt(krb5_crypto_iov *data, unsigned long num_data, ================================================ FILE: ports/krb5/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO krb5/krb5 REF "krb5-${VERSION}-final" SHA512 ca1e22a0aced71c004a51716a3237c83d683f81ead2456752079a50cd3406c665822f69bbdfd4999d2ff73ffda0922e4e8330c6c02bdb48ca2745f0ff33a88f1 HEAD_REF master PATCHES static-deps.diff define-des-zeroblock.diff ) if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_acquire_msys(MSYS_ROOT PACKAGES) vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") vcpkg_find_acquire_program(PERL) get_filename_component(PERL_PATH "${PERL}" DIRECTORY) vcpkg_add_to_path("${PERL_PATH}") vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}/src" PROJECT_NAME Makefile.in TARGET prep-windows OPTIONS_RELEASE "NODEBUG=1" ) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_nmake( SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" PROJECT_NAME "Makefile" OPTIONS "NO_LEASH=1" OPTIONS_RELEASE "KRB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}" "NODEBUG=1" OPTIONS_DEBUG "KRB_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug" ) set(tools ccapiserver gss-client gss-server kcpytkt kdeltkt kdestroy kfwcpcc kinit klist kpasswd kswitch kvno mit2ms ms2mit ) vcpkg_copy_tools( TOOL_NAMES ${tools} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" AUTO_CLEAN ) foreach(tool_name ${tools}) list(APPEND debug_tools_to_remove "${CURRENT_PACKAGES_DIR}/debug/bin/${tool_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") endforeach() file(REMOVE ${debug_tools_to_remove}) set(WINDOWS_PC_FILES krb5-gssapi krb5 mit-krb5-gssapi mit-krb5 ) foreach (PC_FILE ${WINDOWS_PC_FILES}) configure_file("${CURRENT_PORT_DIR}/windows_pc_files/${PC_FILE}.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${PC_FILE}.pc" @ONLY) endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE) foreach (PC_FILE ${WINDOWS_PC_FILES}) configure_file("${CURRENT_PORT_DIR}/windows_pc_files/${PC_FILE}.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${PC_FILE}.pc" @ONLY) endforeach() endif() else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/src" AUTORECONF OPTIONS --disable-nls --with-tls-impl=no "CFLAGS=-fcommon \$CFLAGS" ) vcpkg_make_install() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/krb5-config" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../.."; pwd -P)]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/compile_et" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../.."; pwd -P)]]) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/krb5-config" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../../.."; pwd -P)]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/compile_et" "${CURRENT_INSTALLED_DIR}" [[$(cd "$(dirname "$0")/../../../.."; pwd -P)]]) endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/var") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat1") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat5") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat7") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/krb5/cat8") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/var") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/krb5/" "${CURRENT_PACKAGES_DIR}/lib/krb5/" ) endif() if(VCPKG_BUILD_TYPE) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/NOTICE") ================================================ FILE: ports/krb5/static-deps.diff ================================================ diff --git a/src/build-tools/mit-krb5.pc.in b/src/build-tools/mit-krb5.pc.in index fdc5577..0cea3ec 100644 --- a/src/build-tools/mit-krb5.pc.in +++ b/src/build-tools/mit-krb5.pc.in @@ -12,4 +12,4 @@ Description: An implementation of Kerberos network authentication Version: @KRB5_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lkrb5 -lk5crypto @COM_ERR_LIB@ -Libs.private: -lkrb5support +Libs.private: -lkrb5support @MACOS_FRAMEWORK@ @LIBS@ @DL_LIB@ @PTHREAD_CFLAGS@ diff --git a/src/config/pre.in b/src/config/pre.in index 1197c1f..8bba26a 100644 --- a/src/config/pre.in +++ b/src/config/pre.in @@ -377,7 +377,7 @@ SUPPORT_LIB = -l$(SUPPORT_LIBNAME) # HESIOD_LIBS is -lhesiod... HESIOD_LIBS = @HESIOD_LIBS@ -KRB5_BASE_LIBS = $(KRB5_LIB) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) $(LIBS) $(DL_LIB) +KRB5_BASE_LIBS = $(KRB5_LIB) $(K5CRYPTO_LIB) $(COM_ERR_LIB) $(SUPPORT_LIB) @MACOS_FRAMEWORK@ $(LIBS) $(DL_LIB) KDB5_LIBS = $(KDB5_LIB) $(GSSRPC_LIBS) GSS_LIBS = $(GSS_KRB5_LIB) # needs fixing if ever used on macOS! ================================================ FILE: ports/krb5/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "krb5", "version": "1.22.2", "port-version": 1, "description": [ "Kerberos is a network authentication protocol.", "It is designed to provide strong authentication for client/server applications by using secret-key cryptography.", "A free implementation of this protocol is available from the Massachusetts Institute of Technology.", "Kerberos is available in many commercial products as well." ], "homepage": "https://web.mit.edu/kerberos/", "license": "MIT", "supports": "linux | osx | (x64 & windows & !static & !uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true, "platform": "windows & !mingw" }, { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" } ] } ================================================ FILE: ports/krb5/windows_pc_files/krb5-gssapi.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include vendor=MIT Name: krb5-gssapi Description: Kerberos implementation of the GSSAPI Version: @VERSION@ Requires: mit-krb5-gssapi ================================================ FILE: ports/krb5/windows_pc_files/krb5.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include vendor=MIT defccname=FILE:/tmp/krb5cc_%{uid} defktname=FILE:/etc/krb5.keytab defcktname=FILE:${prefix}/var/krb5/user/%{euid}/client.keytab Name: krb5 Description: An implementation of Kerberos network authentication Version: @VERSION@ Requires: mit-krb5 ================================================ FILE: ports/krb5/windows_pc_files/mit-krb5-gssapi.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: mit-krb5-gssapi Description: Kerberos implementation of the GSSAPI Version: @VERSION@ Requires.private: mit-krb5 Cflags: -I${includedir} Libs: -L${libdir} -lgssapi64 ================================================ FILE: ports/krb5/windows_pc_files/mit-krb5.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include defccname=FILE:/tmp/krb5cc_%{uid} defktname=FILE:/etc/krb5.keytab defcktname=FILE:${prefix}/var/krb5/user/%{euid}/client.keytab Name: mit-krb5 Description: An implementation of Kerberos network authentication Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lkrb5_64 -lkrbcc64 -lxpprof64 -lkfwlogon -lcomerr64 -lk5sprt64 Libs.private: -lk5sprt64 ================================================ FILE: ports/ktx/0001-Use-vcpkg-zstd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5712cf8..88bad96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -389,7 +389,6 @@ set(KTX_MAIN_SRC external/basisu/transcoder/basisu_transcoder.cpp external/basisu/transcoder/basisu_transcoder.h external/basisu/transcoder/basisu.h - external/basisu/zstd/zstd.c lib/checkheader.c external/dfdutils/createdfd.c external/dfdutils/colourspaces.c @@ -608,12 +607,12 @@ macro(common_libktx_settings target enable_write library_type) ${KTX_BASISU_INCLUDE_DIRS} external - $ - $ $ $ ) + find_package(zstd CONFIG REQUIRED) + target_link_libraries(${target} PRIVATE zstd::libzstd) target_include_directories( ${target} @@ -972,10 +971,6 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") external/basisu/transcoder/basisu_transcoder.cpp "-Wno-sign-compare;-Wno-unused-function;-Wno-unused-variable" ) - set_source_files_properties( - external/basisu/zstd/zstd.c - PROPERTIES COMPILE_OPTIONS "-Wno-unused-function" - ) endif() else() message(FATAL_ERROR "${CMAKE_CXX_COMPILER_ID} not yet supported.") diff --git a/cmake/KtxConfig.cmake b/cmake/KtxConfig.cmake index 6386ba2..c932dd4 100644 --- a/cmake/KtxConfig.cmake +++ b/cmake/KtxConfig.cmake @@ -4,4 +4,8 @@ # include(CMakeFindDependencyMacro) # find_dependency() +include(CMakeFindDependencyMacro) +find_dependency(Threads) +find_dependency(zstd CONFIG) + include("${CMAKE_CURRENT_LIST_DIR}/KtxTargets.cmake") ================================================ FILE: ports/ktx/0003-mkversion.patch ================================================ diff --git a/cmake/version.cmake b/cmake/version.cmake index b349b75..667b5c3 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -180,7 +180,7 @@ function( create_version_header dest_path target ) add_custom_command( OUTPUT ${version_h_output} # On Windows this command has to be invoked by a shell in order to work - COMMAND ${BASH_EXECUTABLE} -c "\"scripts/mkversion\" \"-v\" \"${KTX_GIT_VERSION_FULL}\" \"-o\" \"version.h\" \"${dest_path}\"" + COMMAND "${BASH_EXECUTABLE}" -- ./scripts/mkversion -v "${KTX_GIT_VERSION_FULL}" -o version.h "${dest_path}" WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMENT "Generate ${version_h_output}" VERBATIM ================================================ FILE: ports/ktx/0004-quirks.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 88bad96..6ff6a84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -304,7 +304,7 @@ endif() # Global compile & link options including optimization flags if(MSVC) add_compile_options( /W4;$<$:/WX> ) - add_compile_options( $,/Gz,/O2> ) + add_compile_options( $,,/O2> ) # Enable UTF-8 support add_compile_options( $<$:/utf-8> ) add_compile_options( $<$:/utf-8> ) @@ -1130,6 +1130,7 @@ if(EMSCRIPTEN) endif() add_library( objUtil STATIC + EXCLUDE_FROM_ALL utils/argparser.cpp utils/argparser.h utils/ktxapp.h ================================================ FILE: ports/ktx/0005-no-vendored-libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ff6a84..3b928ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1308,6 +1308,8 @@ set_astc_dependencies(ktx_read) # this CMakeLists is included in another project which is unlikely # except for building the ktx library. if((KTX_FEATURE_TOOLS OR KTX_FEATURE_TESTS) AND NOT TARGET fmt::fmt) + find_package(fmt CONFIG REQUIRED) +elseif(0) # Always build fmt static set(BUILD_SHARED_LIBS OFF) set(FMT_INSTALL OFF) @@ -1316,7 +1318,7 @@ if((KTX_FEATURE_TOOLS OR KTX_FEATURE_TESTS) AND NOT TARGET fmt::fmt) set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_RESET}) endif() if(KTX_FEATURE_TOOLS AND NOT TARGET cxxopts::cxxopts) - add_subdirectory(external/cxxopts) + find_package(cxxopts CONFIG REQUIRED) endif() # Tools ================================================ FILE: ports/ktx/0006-fix-ios-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b928ca..f4ba0d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -548,7 +548,7 @@ macro(common_libktx_settings target enable_write library_type) SOVERSION ${PROJECT_VERSION_MAJOR} XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME "YES" ) - if(APPLE_LOCKED_OS) + if(0) set_target_properties(${target} PROPERTIES FRAMEWORK TRUE ) @@ -1389,7 +1389,7 @@ endif() # Use of this to install KHR/khr_df.h is due to CMake's failure to # preserve the include source folder hierarchy. # See https://gitlab.kitware.com/cmake/cmake/-/issues/16739. -if (APPLE_LOCKED_OS) +if (0) set_source_files_properties( include/KHR/khr_df.h PROPERTIES MACOSX_PACKAGE_LOCATION Headers/KHR ================================================ FILE: ports/ktx/ktxread-libtool.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f4ba0d7..1d1bccf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1289,7 +1289,7 @@ macro(set_astc_dependencies target) add_dependencies(${target} ${ASTCENC_LIB_TARGET}) add_custom_command( TARGET ${target} POST_BUILD - COMMAND libtool -static -o $ $ $ + COMMAND libtool -static -o $ $ $ ) # Don't know libtool equivalent on Windows or Emscripten. Applications ================================================ FILE: ports/ktx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/KTX-Software REF "v${VERSION}" SHA512 19514da2d5b021d7fd1e24251dfd27d0e032018bdb84c7f76328de0ad431aeff12a77e7b3c857a1933a0b258a83ffd4b77cd053672702cc6f7132afcd1fa253e HEAD_REF master PATCHES 0001-Use-vcpkg-zstd.patch 0003-mkversion.patch 0004-quirks.patch 0005-no-vendored-libs.patch 0006-fix-ios-install.patch ktxread-libtool.diff ) file(GLOB third_party "${SOURCE_PATH}/external/*" "${SOURCE_PATH}/external/basisu/zstd" "${SOURCE_PATH}/other_include/*") list(FILTER third_party EXCLUDE REGEX "/(astc-encoder|basisu|dfdutils|etcdec|imageio|glm|lodepng|SDL_gesture)\$") file(REMOVE_RECURSE ${third_party}) vcpkg_list(SET OPTIONS) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_acquire_msys(MSYS_ROOT PACKAGES bash DIRECT_PACKAGES # Required for "getopt" "https://repo.msys2.org/msys/x86_64/util-linux-2.40.2-2-x86_64.pkg.tar.zst" bf45b16cd470f8d82a9fe03842a09da2e6c60393c11f4be0bab354655072c7a461afc015b9c07f9f5c87a0e382cd867e4f079ede0d42f1589aa99ebbb3f76309 # Required for "dos2unix" "https://mirror.msys2.org/msys/x86_64/dos2unix-7.5.2-1-x86_64.pkg.tar.zst" e5e949f01b19c82630131e338a4642da75e42f84220f5af4a97a11dd618e363396567b233d2adab79e05422660a0000abcbbabcd17efcadf37f07fe7565f041e ) vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") vcpkg_list(APPEND OPTIONS "-DBASH_EXECUTABLE=${MSYS_ROOT}/usr/bin/bash.exe") endif() if(VCPKG_TARGET_IS_APPLE AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_list(APPEND OPTIONS "-DASTCENC_ISA_SSE41=ON") # use x86_64, not x64_64h endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools KTX_FEATURE_TOOLS vulkan KTX_FEATURE_VK_UPLOAD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKTX_GIT_VERSION_FULL=v${VERSION}-vcpkg -DKTX_FEATURE_TESTS=OFF -DKTX_FEATURE_LOADTEST_APPS=OFF ${FEATURE_OPTIONS} ${OPTIONS} OPTIONS_DEBUG -DKTX_FEATURE_TOOLS=OFF DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ktx) if(tools IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES ktx toktx ktxsc ktxinfo ktx2ktx2 ktx2check AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") file(COPY ${LICENSE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSES") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/ktx/vcpkg.json ================================================ { "name": "ktx", "version-semver": "4.4.2", "description": [ "The Khronos KTX library and tools.", "Functions for writing and reading KTX files, and instantiating OpenGL®, OpenGL ES™️ and Vulkan® textures from them." ], "homepage": "https://github.com/KhronosGroup/KTX-Software", "license": null, "supports": "arm64 | x64 | !windows", "dependencies": [ "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zstd" ], "features": { "tools": { "description": "Build tools", "supports": "!android & !uwp", "dependencies": [ "cxxopts", "fmt" ] }, "vulkan": { "description": "Build Vulkan support", "supports": "!emscripten" } } } ================================================ FILE: ports/kubazip/disable-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 57dea9c..97b48e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,7 +69,7 @@ if (MSVC) elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -pedantic -Wno-implicit-function-declaration") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -Wno-implicit-function-declaration") endif (MSVC) #### ================================================ FILE: ports/kubazip/fix-name-conflict.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 804df5e..d45ef96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -47,8 +47,9 @@ endif() target_include_directories(${PROJECT_NAME} PUBLIC $ - $ + $ ) +set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME kubazip) # test if (NOT CMAKE_DISABLE_TESTING) @@ -85,7 +86,7 @@ endif() ### set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") -set(INCLUDE_INSTALL_DIR "include") +set(INCLUDE_INSTALL_DIR "include/kubazip") set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") ================================================ FILE: ports/kubazip/kubazipConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(AUTHOR_WARNING "find_package(kubazip) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(zip CONFIG) if(NOT TARGET kubazip::kubazip) add_library(kubazip::kubazip ALIAS zip::zip) endif() ================================================ FILE: ports/kubazip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kuba--/zip REF "v${VERSION}" SHA512 4686b2b7e626fc68e8715559b08981823e43141f61a3814d5075dc5257c51056d2259e5358ad8477e2a73c7d4b43c6bdc2cb11111d10c86ba4d832b6bccb330d HEAD_REF master PATCHES fix-name-conflict.diff disable-werror.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_TESTING=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/zip" PACKAGE_NAME "zip-kuba--") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/kubazip/zip/zip.h" "#ifndef ZIP_SHARED" "#if 0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # legacy polyfill file(INSTALL "${CURRENT_PORT_DIR}/kubazipConfig.cmake" "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/kubazip/usage ================================================ kubazip provides CMake targets: find_package(zip CONFIG REQUIRED) target_link_libraries(main PRIVATE zip::zip) ================================================ FILE: ports/kubazip/vcpkg.json ================================================ { "name": "kubazip", "version": "0.3.6", "description": "A portable, simple zip library written in C", "homepage": "https://github.com/kuba--/zip", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kubernetes/001-fix-destination.patch ================================================ diff --git a/kubernetes/CMakeLists.txt b/kubernetes/CMakeLists.txt --- a/kubernetes/CMakeLists.txt (revision 80aff0a1c71c2cb8a1ab4b73e0592f0f88c59376) +++ b/kubernetes/CMakeLists.txt (date 1642600807646) @@ -1255,7 +1255,7 @@ install(TARGETS ${pkgName} DESTINATION lib) else() include(GNUInstallDirs) - install(TARGETS ${pkgName} DESTINATION lib EXPORT ${pkgName}Targets) + install(TARGETS ${pkgName} EXPORT ${pkgName}Targets) foreach(HDR_FILE ${HDRS}) get_filename_component(HDR_DIRECTORY ${HDR_FILE} DIRECTORY) ================================================ FILE: ports/kubernetes/002-disable-werror.patch ================================================ diff --git a/kubernetes/CMakeLists.txt b/kubernetes/CMakeLists.txt index 4615b63..104c4d6 100644 --- a/kubernetes/CMakeLists.txt +++ b/kubernetes/CMakeLists.txt @@ -6,9 +6,6 @@ cmake_policy(SET CMP0063 NEW) set(CMAKE_C_VISIBILITY_PRESET default) set(CMAKE_VISIBILITY_INLINES_HIDDEN OFF) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=missing-declarations") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=int-conversion") option(BUILD_SHARED_LIBS "Build using shared libraries" ON) ================================================ FILE: ports/kubernetes/Config.cmake.in ================================================ include(CMakeFindDependencyMacro) find_dependency(CURL) find_dependency(libwebsockets) find_dependency(OpenSSL) find_dependency(yaml) include("${CMAKE_CURRENT_LIST_DIR}/kubernetesTargets.cmake") ================================================ FILE: ports/kubernetes/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kubernetes-client/c REF "v${VERSION}" SHA512 8324049f030201e9a031556a799defcbc90fe41bc7b40e2997ed0c706f97660af39b84d679065e83adce85b66c832d406468a9c543367b64c5b702fc5896ee07 HEAD_REF master PATCHES 001-fix-destination.patch 002-disable-werror.patch ) file(COPY "${CURRENT_PORT_DIR}/Config.cmake.in" DESTINATION "${SOURCE_PATH}/kubernetes") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/kubernetes" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/kubernetes) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kubernetes/vcpkg.json ================================================ { "name": "kubernetes", "version": "0.14.0", "port-version": 1, "description": "Kubernetes C client", "homepage": "https://github.com/kubernetes-client/c/", "license": "Apache-2.0", "supports": "!windows | mingw", "dependencies": [ { "name": "curl", "default-features": false }, "libwebsockets", "libyaml", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kuku/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/Kuku REF "v${VERSION}" SHA512 4b0f0cae191c70d20337fb1581fa06a8fe363a942cf3a3b6be59fbef551b70446405fb1e4e5e7ec917d5519e8d2ad0ea59bd59c36dbf917e838fc1a1cd6a3bef HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Kuku-2.1) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/kuku/vcpkg.json ================================================ { "name": "kuku", "version": "2.1.0", "description": "Kuku is a compact and convenient cuckoo hashing library written in C++.", "homepage": "https://github.com/microsoft/Kuku", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/kvasir-mpl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kvasir-io/mpl REF a9060b46c37c769e5517e0116b060fec923b6fdb SHA512 bbe7267d288eda9ded81ce82e428d237cb5a9d686cd1b68a334b1ae53db4bf25e37fb86d991e7cf61542ee91ccae8db7498efde91a07332fd68594a229ff35ca HEAD_REF development ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test BUILD_WITH_TEST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=${BUILD_WITH_TEST} ) vcpkg_cmake_install() # Move CMake config files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/kvasir_mpl) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/kvasir-mpl/vcpkg.json ================================================ { "name": "kvasir-mpl", "version-date": "2019-08-06", "port-version": 3, "description": "This library is part of the Kvasir project. Kvasir is a collection of zero cost statically checked libraries for resource constrained systems including microcontrollers.", "homepage": "https://github.com/kvasir-io/mpl", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build with test" } } } ================================================ FILE: ports/kwsys/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.kitware.com OUT_SOURCE_PATH SOURCE_PATH REPO utils/kwsys REF dbc94f37f9821899aad441bcab525ad96a3f30dc #2021-08-06 SHA512 98441866fd51f2d4d3974d3c37d4456ce9e50c6f6c2ab0691e55b268907611ef061562fc30b1baa42aa195caf2281aa0e1e0799abc545fe6dae70efe2050ea50 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKWSYS_INSTALL_INCLUDE_DIR=${CURRENT_PACKAGES_DIR}/include OPTIONS_RELEASE -DKWSYS_INSTALL_BIN_DIR=${CURRENT_PACKAGES_DIR}/bin -DKWSYS_INSTALL_LIB_DIR=${CURRENT_PACKAGES_DIR}/lib OPTIONS_DEBUG -DKWSYS_INSTALL_BIN_DIR=${CURRENT_PACKAGES_DIR}/debug/bin -DKWSYS_INSTALL_LIB_DIR=${CURRENT_PACKAGES_DIR}/debug/lib ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/Copyright.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/kwsys/vcpkg.json ================================================ { "name": "kwsys", "version-date": "2021-08-06", "port-version": 1, "description": "Provides platform-independent APIs to many common system features", "homepage": "https://gitlab.kitware.com/utils/kwsys", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lager/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arximboldi/lager REF v${VERSION} SHA512 ac942a55c2cdc5cb8846534f772e13d9395d8762298978a0edfa84c6282fa83fa5105160ad65fff5170e6861568228ce9d20d1b44617b006ca3c4e57e1964d54 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES docs lager_BUILD_DOCS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dlager_BUILD_EXAMPLES=OFF -Dlager_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Lager) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lager/resources_path.hpp" "${CURRENT_PACKAGES_DIR}" ".") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lager/vcpkg.json ================================================ { "name": "lager", "version": "0.1.3", "description": "C++ library for value-oriented design using the unidirectional data-flow architecture", "homepage": "https://sinusoid.es/lager/", "dependencies": [ "boost-hana", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zug" ], "features": { "docs": { "description": "Build documentation" } } } ================================================ FILE: ports/lapack/lapack.pc.in ================================================ prefix=${pcfiledir}/../.. libdir=${prefix}/lib Name: LAPACK Description: Implementation of LAPACK Version: Requires: @requires@ Libs: @libs@ Cflags: @cflags@ ================================================ FILE: ports/lapack/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(BLA_STATIC ON) else() set(BLA_STATIC OFF) endif() # See explanation of which lapack implementation is chosen in portfile.cmake in the blas port set(BLA_VENDOR Generic) set(installed_wrapper "${CURRENT_INSTALLED_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake") set(installed_module "${CURRENT_INSTALLED_DIR}/share/lapack/FindLAPACK.cmake") if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) # Use Apple's accelerate framework where available set(BLA_VENDOR Apple) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" @ONLY) set(libs "-framework Accelerate") set(cflags "-framework Accelerate") configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) endif() unset(installed_module) elseif(VCPKG_TARGET_IS_UWP OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "arm") OR (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_MINGW)) configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/clapack/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY) set(libs "-llapack -llibf2c") configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) endif() else() configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/wrapper/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/vcpkg-cmake-wrapper.cmake" COPYONLY) configure_file("${CURRENT_INSTALLED_DIR}/share/lapack-reference/FindLAPACK.cmake" "${CURRENT_PACKAGES_DIR}/share/lapack/FindLAPACK.cmake" COPYONLY) set(requires "lapack-reference") configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${CMAKE_CURRENT_LIST_DIR}/lapack.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" @ONLY) endif() endif() ================================================ FILE: ports/lapack/vcpkg-cmake-wrapper.cmake.in ================================================ # BLA_VENDOR and BLA_STATIC are documented at: # * https://cmake.org/cmake/help/latest/module/FindBLAS.html # * https://cmake.org/cmake/help/latest/module/FindLAPACK.html _find_package(BLAS) # Find BLAS before setting BLA_VENDOR (Will set/unset BLA_VENDOR itself) set(BLA_VENDOR @BLA_VENDOR@) if(APPLE AND "@BLA_STATIC@" AND CMAKE_VERSION VERSION_LESS "3.17.0") # avoid `-Wl,--(start|end)-group` and wrong lib suffix set(BLA_STATIC 0) else() set(BLA_STATIC @BLA_STATIC@) endif() _find_package(${ARGS}) unset(BLA_VENDOR) unset(BLA_STATIC) ================================================ FILE: ports/lapack/vcpkg.json ================================================ { "$comment": "Keep the platform expressions in sync with the wrappers installed by the portfiles!", "name": "lapack", "version-date": "2023-06-10", "port-version": 3, "description": "Metapackage for packages which provide LAPACK", "license": null, "supports": "!android", "dependencies": [ { "name": "clapack", "platform": "!osx & !ios & (uwp | (arm & windows) | (static & windows & !mingw))" }, { "name": "lapack-reference", "platform": "!osx & !ios & (!uwp & !(arm & windows) & !(static & windows & !mingw))" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/lapack-reference/FindLAPACK.cmake ================================================ # Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. #[=======================================================================[.rst: FindLAPACK ---------- Find Linear Algebra PACKage (LAPACK) library This module finds an installed Fortran library that implements the LAPACK linear-algebra interface (see http://www.netlib.org/lapack/). The approach follows that taken for the ``autoconf`` macro file, ``acx_lapack.m4`` (distributed at http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html). Input Variables ^^^^^^^^^^^^^^^ The following variables may be set to influence this module's behavior: ``BLA_STATIC`` if ``ON`` use static linkage ``BLA_VENDOR`` If set, checks only the specified vendor, if not set checks all the possibilities. List of vendors valid in this module: * ``OpenBLAS`` * ``FLAME`` * ``Intel10_32`` (intel mkl v10 32 bit) * ``Intel10_64lp`` (intel mkl v10+ 64 bit, threaded code, lp64 model) * ``Intel10_64lp_seq`` (intel mkl v10+ 64 bit, sequential code, lp64 model) * ``Intel10_64ilp`` (intel mkl v10+ 64 bit, threaded code, ilp64 model) * ``Intel10_64ilp_seq`` (intel mkl v10+ 64 bit, sequential code, ilp64 model) * ``Intel10_64_dyn`` (intel mkl v10+ 64 bit, single dynamic library) * ``Intel`` (obsolete versions of mkl 32 and 64 bit) * ``ACML`` * ``Apple`` * ``NAS`` * ``Arm`` * ``Arm_mp`` * ``Arm_ilp64`` * ``Arm_ilp64_mp`` * ``Generic`` ``BLA_F95`` if ``ON`` tries to find the BLAS95/LAPACK95 interfaces Imported targets ^^^^^^^^^^^^^^^^ This module defines the following :prop_tgt:`IMPORTED` target: ``LAPACK::LAPACK`` The libraries to use for LAPACK, if found. Result Variables ^^^^^^^^^^^^^^^^ This module defines the following variables: ``LAPACK_FOUND`` library implementing the LAPACK interface is found ``LAPACK_LINKER_FLAGS`` uncached list of required linker flags (excluding ``-l`` and ``-L``). ``LAPACK_LIBRARIES`` uncached list of libraries (using full path name) to link against to use LAPACK ``LAPACK95_LIBRARIES`` uncached list of libraries (using full path name) to link against to use LAPACK95 ``LAPACK95_FOUND`` library implementing the LAPACK95 interface is found .. note:: C, CXX or Fortran must be enabled to detect a BLAS/LAPACK library. C or CXX must be enabled to use Intel Math Kernel Library (MKL). For example, to use Intel MKL libraries and/or Intel compiler: .. code-block:: cmake set(BLA_VENDOR Intel10_64lp) find_package(LAPACK) #]=======================================================================] enable_language(C) # Check the language being used if(NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED)) if(LAPACK_FIND_REQUIRED) message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.") else() message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)") return() endif() endif() if(CMAKE_Fortran_COMPILER_LOADED) include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake) else() include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) endif() include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake) cmake_push_check_state() set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY}) set(LAPACK_FOUND FALSE) set(LAPACK95_FOUND FALSE) # store original values for CMAKE_FIND_LIBRARY_SUFFIXES set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) if (CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES .so.3gfs .so.3 .so.4 .so.5) endif() # TODO: move this stuff to a separate module macro(CHECK_LAPACK_LIBRARIES LIBRARIES _prefix _name _flags _list _threadlibs _addlibdir _subdirs _blas) # This macro checks for the existence of the combination of fortran libraries # given by _list. If the combination is found, this macro checks (using the # Check_Fortran_Function_Exists macro) whether can link against that library # combination using the name of a routine given by _name using the linker # flags given by _flags. If the combination of libraries is found and passes # the link test, LIBRARIES is set to the list of complete library paths that # have been found. Otherwise, LIBRARIES is set to FALSE. # N.B. _prefix is the prefix applied to the names of all cached variables that # are generated internally and marked advanced by this macro. # _addlibdir is a list of additional search paths. _subdirs is a list of path # suffixes to be used by find_library(). set(_libraries_work TRUE) set(${LIBRARIES}) set(_combined_name) set(_extaddlibdir "${_addlibdir}") if(WIN32) list(APPEND _extaddlibdir ENV LIB) elseif(APPLE) list(APPEND _extaddlibdir ENV DYLD_LIBRARY_PATH) else() list(APPEND _extaddlibdir ENV LD_LIBRARY_PATH) endif() list(APPEND _extaddlibdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}") foreach(_library ${_list}) if(_library MATCHES "^-Wl,--(start|end)-group$") # Respect linker flags like --start/end-group (required by MKL) set(${LIBRARIES} ${${LIBRARIES}} "${_library}") else() set(_combined_name ${_combined_name}_${_library}) if(_libraries_work) find_library(${_prefix}_${_library}_LIBRARY NAMES ${_library} PATHS ${_extaddlibdir} PATH_SUFFIXES ${_subdirs} ) #message("DEBUG: find_library(${_library}) got ${${_prefix}_${_library}_LIBRARY}") mark_as_advanced(${_prefix}_${_library}_LIBRARY) set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY}) set(_libraries_work ${${_prefix}_${_library}_LIBRARY}) endif() endif() endforeach() if(_libraries_work) # Test this combination of libraries. set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_blas} ${_threadlibs}) #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}") if(CMAKE_Fortran_COMPILER_LOADED) check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS) else() check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS) endif() set(CMAKE_REQUIRED_LIBRARIES) set(_libraries_work ${${_prefix}${_combined_name}_WORKS}) endif() if(_libraries_work) if("${_list}${_blas}" STREQUAL "") set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES") else() set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threadlibs}) endif() else() set(${LIBRARIES} FALSE) endif() #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}") endmacro() set(LAPACK_LINKER_FLAGS) set(LAPACK_LIBRARIES) set(LAPACK95_LIBRARIES) include(CMakeFindDependencyMacro) find_dependency(BLAS) if(BLAS_FOUND) set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS}) if(NOT $ENV{BLA_VENDOR} STREQUAL "") set(BLA_VENDOR $ENV{BLA_VENDOR}) else() if(NOT BLA_VENDOR) set(BLA_VENDOR "All") endif() endif() # LAPACK in the Intel MKL 10+ library? if(BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) if(CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED) # System-specific settings if(NOT WIN32) set(LAPACK_mkl_LM "-lm") set(LAPACK_mkl_LDL "-ldl") endif() if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED) find_package(Threads) else() find_package(Threads REQUIRED) endif() if(BLA_VENDOR MATCHES "_64ilp") set(LAPACK_mkl_ILP_MODE "ilp64") else() set(LAPACK_mkl_ILP_MODE "lp64") endif() set(LAPACK_SEARCH_LIBS "") if(BLA_F95) set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95") set(_LIBRARIES LAPACK95_LIBRARIES) set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES}) # old list(APPEND LAPACK_SEARCH_LIBS "mkl_lapack95") # new >= 10.3 list(APPEND LAPACK_SEARCH_LIBS "mkl_intel_c") list(APPEND LAPACK_SEARCH_LIBS "mkl_lapack95_${LAPACK_mkl_ILP_MODE}") else() set(LAPACK_mkl_SEARCH_SYMBOL "cheev") set(_LIBRARIES LAPACK_LIBRARIES) set(_BLAS_LIBRARIES ${BLAS_LIBRARIES}) # old and new >= 10.3 list(APPEND LAPACK_SEARCH_LIBS "mkl_lapack") endif() # MKL uses a multitude of partially platform-specific subdirectories: if(BLA_VENDOR STREQUAL "Intel10_32") set(LAPACK_mkl_ARCH_NAME "ia32") else() set(LAPACK_mkl_ARCH_NAME "intel64") endif() if(WIN32) set(LAPACK_mkl_OS_NAME "win") elseif(APPLE) set(LAPACK_mkl_OS_NAME "mac") else() set(LAPACK_mkl_OS_NAME "lin") endif() if(DEFINED ENV{MKLROOT}) file(TO_CMAKE_PATH "$ENV{MKLROOT}" LAPACK_mkl_MKLROOT) # If MKLROOT points to the subdirectory 'mkl', use the parent directory instead # so we can better detect other relevant libraries in 'compiler' or 'tbb': get_filename_component(LAPACK_mkl_MKLROOT_LAST_DIR "${LAPACK_mkl_MKLROOT}" NAME) if(LAPACK_mkl_MKLROOT_LAST_DIR STREQUAL "mkl") get_filename_component(LAPACK_mkl_MKLROOT "${LAPACK_mkl_MKLROOT}" DIRECTORY) endif() endif() set(LAPACK_mkl_LIB_PATH_SUFFIXES "compiler/lib" "compiler/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}" "mkl/lib" "mkl/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}" "lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}") # First try empty lapack libs if(NOT ${_LIBRARIES}) check_lapack_libraries( ${_LIBRARIES} LAPACK ${LAPACK_mkl_SEARCH_SYMBOL} "" "" "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}" "${LAPACK_mkl_MKLROOT}" "${LAPACK_mkl_LIB_PATH_SUFFIXES}" "${_BLAS_LIBRARIES}" ) endif() # Then try the search libs foreach(IT ${LAPACK_SEARCH_LIBS}) string(REPLACE " " ";" SEARCH_LIBS ${IT}) if(NOT ${_LIBRARIES}) check_lapack_libraries( ${_LIBRARIES} LAPACK ${LAPACK_mkl_SEARCH_SYMBOL} "" "${SEARCH_LIBS}" "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}" "${LAPACK_mkl_MKLROOT}" "${LAPACK_mkl_LIB_PATH_SUFFIXES}" "${_BLAS_LIBRARIES}" ) endif() endforeach() unset(LAPACK_mkl_ILP_MODE) unset(LAPACK_mkl_SEARCH_SYMBOL) unset(LAPACK_mkl_LM) unset(LAPACK_mkl_LDL) unset(LAPACK_mkl_MKLROOT) unset(LAPACK_mkl_ARCH_NAME) unset(LAPACK_mkl_OS_NAME) unset(LAPACK_mkl_LIB_PATH_SUFFIXES) endif() endif() endif() # gotoblas? (http://www.tacc.utexas.edu/tacc-projects/gotoblas2) if(BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "goto2" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # OpenBLAS? (http://www.openblas.net) if(BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "openblas" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # ArmPL? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries) if(BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All") # Check for 64bit Integer support if(BLA_VENDOR MATCHES "_ilp64") set(LAPACK_armpl_LIB "armpl_ilp64") else() set(LAPACK_armpl_LIB "armpl_lp64") endif() # Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp if(BLA_VENDOR MATCHES "_mp") set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp") endif() if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "${LAPACK_armpl_LIB}" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # FLAME's blis library? (https://github.com/flame/blis) if(BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "flame" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # BLAS in acml library? if(BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All") if(BLAS_LIBRARIES MATCHES ".+acml.+") set(LAPACK_LIBRARIES ${BLAS_LIBRARIES}) endif() endif() # Apple LAPACK library? if(BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "Accelerate" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # Apple NAS (vecLib) library? if(BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "vecLib" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() # Generic LAPACK library? if(BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All") if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "lapack" "" "" "" "${BLAS_LIBRARIES}" ) endif() if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "lapack;m;gfortran" "" "" "" "${BLAS_LIBRARIES}" ) endif() if(NOT LAPACK_LIBRARIES) check_lapack_libraries( LAPACK_LIBRARIES LAPACK cheev "" "lapack;m;gfortran;quadmath" "" "" "" "${BLAS_LIBRARIES}" ) endif() endif() else() message(STATUS "LAPACK requires BLAS") endif() if(BLA_F95) if(LAPACK95_LIBRARIES) set(LAPACK95_FOUND TRUE) else() set(LAPACK95_FOUND FALSE) endif() if(NOT LAPACK_FIND_QUIETLY) if(LAPACK95_FOUND) message(STATUS "A library with LAPACK95 API found.") else() if(LAPACK_FIND_REQUIRED) message(FATAL_ERROR "A required library with LAPACK95 API not found. Please specify library location." ) else() message(STATUS "A library with LAPACK95 API not found. Please specify library location." ) endif() endif() endif() set(LAPACK_FOUND "${LAPACK95_FOUND}") set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}") else() if(LAPACK_LIBRARIES) set(LAPACK_FOUND TRUE) else() set(LAPACK_FOUND FALSE) endif() if(NOT LAPACK_FIND_QUIETLY) if(LAPACK_FOUND) message(STATUS "A library with LAPACK API found.") else() if(LAPACK_FIND_REQUIRED) message(FATAL_ERROR "A required library with LAPACK API not found. Please specify library location." ) else() message(STATUS "A library with LAPACK API not found. Please specify library location." ) endif() endif() endif() endif() # On compilers that implicitly link LAPACK (such as ftn, cc, and CC on Cray HPC machines) # we used a placeholder for empty LAPACK_LIBRARIES to get through our logic above. if(LAPACK_LIBRARIES STREQUAL "LAPACK_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES") set(LAPACK_LIBRARIES "") endif() if(NOT TARGET LAPACK::LAPACK) add_library(LAPACK::LAPACK INTERFACE IMPORTED) set(_lapack_libs "${LAPACK_LIBRARIES}") if(_lapack_libs AND TARGET BLAS::BLAS) # remove the ${BLAS_LIBRARIES} from the interface and replace it # with the BLAS::BLAS target list(REMOVE_ITEM _lapack_libs "${BLAS_LIBRARIES}") endif() if(_lapack_libs) set_target_properties(LAPACK::LAPACK PROPERTIES INTERFACE_LINK_LIBRARIES "${_lapack_libs}" ) endif() unset(_lapack_libs) endif() cmake_pop_check_state() # restore original values for CMAKE_FIND_LIBRARY_SUFFIXES set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) ================================================ FILE: ports/lapack-reference/cmake-config.patch ================================================ diff --git a/CMAKE/lapack-config-install.cmake.in b/CMAKE/lapack-config-install.cmake.in index 7760960..102eb92 100644 --- a/CMAKE/lapack-config-install.cmake.in +++ b/CMAKE/lapack-config-install.cmake.in @@ -12,8 +12,14 @@ unset(_LAPACK_TARGET) set(LAPACK_Fortran_COMPILER_ID "@CMAKE_Fortran_COMPILER_ID@") # Report the blas and lapack raw or imported libraries. -set(LAPACK_blas_LIBRARIES "@BLAS_LIBRARIES@") +if("@USE_OPTIMIZED_BLAS@") + include(CMakeFindDependencyMacro) + find_dependency(BLAS) # For current build type + set(LAPACK_blas_LIBRARIES "${BLAS_LIBRARIES}") +else() + set(LAPACK_blas_LIBRARIES "@BLASLIB@") # target carries link libraries +endif() set(LAPACK_lapack_LIBRARIES "@LAPACK_LIBRARIES@") -set(LAPACK_LIBRARIES ${LAPACK_blas_LIBRARIES} ${LAPACK_lapack_LIBRARIES}) +set(LAPACK_LIBRARIES ${LAPACK_lapack_LIBRARIES}) # target carries link libraries unset(_LAPACK_SELF_DIR) ================================================ FILE: ports/lapack-reference/fix_prefix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c99d71a..7333110 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,12 @@ set( ${LAPACK_MAJOR_VERSION}.${LAPACK_MINOR_VERSION}.${LAPACK_PATCH_VERSION} ) +if(WIN32) + set(CMAKE_STATIC_LIBRARY_PREFIX "") + set(CMAKE_SHARED_LIBRARY_PREFIX "lib") + set(CMAKE_IMPORT_LIBRARY_PREFIX "") +endif() + # Allow setting a prefix for the library names set(CMAKE_STATIC_LIBRARY_PREFIX "lib${LIBRARY_PREFIX}") set(CMAKE_SHARED_LIBRARY_PREFIX "lib${LIBRARY_PREFIX}") ================================================ FILE: ports/lapack-reference/implicit-link.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 58e59be8fb..572478de83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -520,6 +520,25 @@ endif() configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in ${LAPACK_BINARY_DIR}/${LAPACKLIB}-config.cmake @ONLY) +set(FORTRAN_IMPLICIT_LIBS "") +set(FORTRAN_IMPLICIT_LINK_DIRS "") +if(NOT BUILD_SHARED_LIBS) + set(FORTRAN_IMPLICIT_LIBS ${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}) + set(FORTRAN_IMPLICIT_LINK_DIRS ${CMAKE_Fortran_IMPLICIT_LINK_DIRECTORIES}) + list(REVERSE FORTRAN_IMPLICIT_LIBS) + list(REMOVE_DUPLICATES FORTRAN_IMPLICIT_LIBS) + list(REVERSE FORTRAN_IMPLICIT_LIBS) + list(REMOVE_ITEM FORTRAN_IMPLICIT_LIBS ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) + list(REMOVE_ITEM FORTRAN_IMPLICIT_LINK_DIRS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES} ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}) + list(JOIN FORTRAN_IMPLICIT_LIBS " -l" FORTRAN_IMPLICIT_LIBS) + list(JOIN FORTRAN_IMPLICIT_LINK_DIRS " -L" FORTRAN_IMPLICIT_LINK_DIRS) + if(FORTRAN_IMPLICIT_LIBS) + set(FORTRAN_IMPLICIT_LIBS "-l${FORTRAN_IMPLICIT_LIBS}") + endif() + if(FORTRAN_IMPLICIT_LINK_DIRS) + set(FORTRAN_IMPLICIT_LINK_DIRS "-L${FORTRAN_IMPLICIT_LINK_DIRS}") + endif() +endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${LAPACKLIB}.pc @ONLY) install(FILES diff --git a/lapack.pc.in b/lapack.pc.in index 316c871011..4d7f3f7b56 100644 --- a/lapack.pc.in +++ b/lapack.pc.in @@ -5,5 +5,5 @@ Name: LAPACK Description: FORTRAN reference implementation of LAPACK Linear Algebra PACKage Version: @LAPACK_VERSION@ URL: http://www.netlib.org/lapack/ -Libs: -L${libdir} -llapack +Libs: -L${libdir} -llapack @FORTRAN_IMPLICIT_LINK_DIRS@ @FORTRAN_IMPLICIT_LIBS@ Requires.private: blas ================================================ FILE: ports/lapack-reference/portfile.cmake ================================================ #TODO: Features to add: # USE_XBLAS??? extended precision blas. needs xblas # LAPACKE should be its own PORT # USE_OPTIMIZED_LAPACK (Probably not what we want. Does a find_package(LAPACK): probably for LAPACKE only builds _> own port?) # LAPACKE Builds LAPACKE # LAPACKE_WITH_TMG Build LAPACKE with tmglib routines if(EXISTS "${CURRENT_INSTALLED_DIR}/share/clapack/copyright") message(FATAL_ERROR "Can't build ${PORT} if clapack is installed. Please remove clapack:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} include(vcpkg_find_fortran) SET(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "Reference-LAPACK/lapack" REF "v${VERSION}" SHA512 9749976d773830eb635498611c7f1247af8dece23fe8c08446243aa39bdcc20dd35fdc670345643cd1ec6828e379d5c2152009817e0b486c10fd89a06602e0fb HEAD_REF master PATCHES cmake-config.patch fix_prefix.patch implicit-link.patch ) if(NOT VCPKG_TARGET_IS_WINDOWS) set(ENV{FFLAGS} "$ENV{FFLAGS} -fPIC") # should come from toolchain endif() set(CBLAS OFF) if("cblas" IN_LIST FEATURES) set(CBLAS ON) if("noblas" IN_LIST FEATURES) message(FATAL_ERROR "Cannot built feature 'cblas' together with feature 'noblas'. cblas requires blas!") endif() else() list(APPEND OPTIONS "-DBUILD_INDEX64_EXT_API=OFF") endif() set(USE_OPTIMIZED_BLAS OFF) if("noblas" IN_LIST FEATURES) set(USE_OPTIMIZED_BLAS ON) endif() set(VCPKG_CRT_LINKAGE_BACKUP ${VCPKG_CRT_LINKAGE}) vcpkg_find_fortran(FORTRAN_CMAKE) if(VCPKG_USE_INTERNAL_Fortran) if(VCPKG_CRT_LINKAGE_BACKUP STREQUAL "static") # If openblas has been built with static crt linkage we cannot use it with gfortran! set(USE_OPTIMIZED_BLAS OFF) #Cannot use openblas from vcpkg if we are building with gfortran here. if("noblas" IN_LIST FEATURES) message(FATAL_ERROR "Feature 'noblas' cannot be used without supplying an external fortran compiler") endif() endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "${OPTIONS}" "-DUSE_OPTIMIZED_BLAS=${USE_OPTIMIZED_BLAS}" "-DCMAKE_REQUIRE_FIND_PACKAGE_BLAS=${USE_OPTIMIZED_BLAS}" "-DCBLAS=${CBLAS}" "-DTEST_FORTRAN_COMPILER=OFF" ${FORTRAN_CMAKE} MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_BLAS ) vcpkg_cmake_install() # The version here is hacked due to a mistake in lapack. Should be 3.12.1 but is not vcpkg_cmake_config_fixup(PACKAGE_NAME ${PORT} CONFIG_PATH lib/cmake/lapack-3.12.0) #Should the target path be lapack and not lapack-reference? set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}\n${_contents}") endif() set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}/debug\n${_contents}") endif() if(NOT USE_OPTIMIZED_BLAS AND NOT ( VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_MINGW )) set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}\n${_contents}") endif() set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}/debug\n${_contents}") endif() endif() if("cblas" IN_LIST FEATURES) set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cblas.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}\n${_contents}") endif() set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cblas.pc") if(EXISTS "${pcfile}") file(READ "${pcfile}" _contents) file(WRITE "${pcfile}" "prefix=${CURRENT_INSTALLED_DIR}/debug\n${_contents}") endif() endif() vcpkg_fixup_pkgconfig() file(RENAME "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/lapack-reference.pc") if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/lapack-reference.pc") endif() if(NOT "noblas" IN_LIST FEATURES) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas-reference.pc") if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas-reference.pc") endif() if("cblas" IN_LIST FEATURES) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cblas.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cblas-reference.pc") if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cblas.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cblas-reference.pc") endif() endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS) if(NOT USE_OPTIMIZED_BLAS) if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/libblas.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libblas.lib" "${CURRENT_PACKAGES_DIR}/lib/blas.lib") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/libblas.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libblas.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/blas.lib") endif() endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(BLA_STATIC ON) else() set(BLA_STATIC OFF) endif() set(BLA_VENDOR Generic) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/wrapper/vcpkg-cmake-wrapper.cmake" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lapack-reference/usage ================================================ lapack-reference provides CMake targets: find_package(lapack CONFIG REQUIRED) target_link_libraries(main PRIVATE lapack) lapack-reference is compatible with built-in CMake targets: find_package(LAPACK REQUIRED) target_link_libraries(main PRIVATE LAPACK::LAPACK) ================================================ FILE: ports/lapack-reference/vcpkg-cmake-wrapper.cmake.in ================================================ message(STATUS "Using VCPKG FindLAPACK from package 'lapack-reference'") set(LAPACK_PREV_MODULE_PATH "${CMAKE_MODULE_PATH}") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") if(@USE_OPTIMIZED_BLAS@) find_package(BLAS) endif() # BLA_VENDOR and BLA_STATIC are documented at: # * https://cmake.org/cmake/help/latest/module/FindBLAS.html # * https://cmake.org/cmake/help/latest/module/FindLAPACK.html set(BLA_VENDOR @BLA_VENDOR@) set(BLA_STATIC @BLA_STATIC@) _find_package(${ARGS}) unset(BLA_VENDOR) unset(BLA_STATIC) if(@CBLAS@) include(SelectLibraryConfigurations) find_library(CBLAS_LIBRARY_RELEASE NAMES libcblas cblas PATHS "${CURRENT_PACKAGES_DIR}/lib" NO_DEFAULT_PATH) find_library(CBLAS_LIBRARY_DEBUG NAMES libcblas cblas PATHS "${CURRENT_PACKAGES_DIR}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(CBLAS) set(LAPACK_LIBRARIES ${LAPACK_LIBRARIES} ${CBLAS_LIBRARIES}) endif() set(CMAKE_MODULE_PATH "${LAPACK_PREV_MODULE_PATH}") ================================================ FILE: ports/lapack-reference/vcpkg.json ================================================ { "name": "lapack-reference", "version": "3.12.1", "port-version": 2, "description": "LAPACK - Linear Algebra PACKage", "homepage": "https://netlib.org/lapack/", "license": "BSD-3-Clause-Open-MPI", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-gfortran", "platform": "windows & !mingw" } ], "default-features": [ "blas-select" ], "features": { "blas-select": { "description": "Use external optimized BLAS", "dependencies": [ { "name": "lapack-reference", "default-features": false, "features": [ "noblas" ], "platform": "!windows | !static | mingw" } ] }, "cblas": { "description": "Builds CBLAS" }, "noblas": { "description": "Use external optimized BLAS", "supports": "!windows | !static | mingw", "dependencies": [ "blas" ] } } } ================================================ FILE: ports/lastools/build_tools.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dfaaa0e..3bc61aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ if (BUILD_SHARED_LIBS AND UNIX AND NOT APPLE) endif() add_subdirectory(LASlib/src) -if (NOT BUILD_SHARED_LIBS) +option(BUILD_TOOLS "" OFF) +if (BUILD_TOOLS AND NOT BUILD_SHARED_LIBS) add_subdirectory(src) endif() ================================================ FILE: ports/lastools/fix_include_directories_lastools.patch ================================================ diff --git a/LASlib/src/laslib-config.cmake b/LASlib/src/laslib-config.cmake index b959a64..eab3466 100644 --- a/LASlib/src/laslib-config.cmake +++ b/LASlib/src/laslib-config.cmake @@ -1,6 +1,6 @@ get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include(${SELF_DIR}/laslib-targets.cmake) -get_filename_component(LASlib_INCLUDE_DIRS "${SELF_DIR}/../../../include/LASlib" ABSOLUTE) +get_filename_component(LASlib_INCLUDE_DIRS "${SELF_DIR}/../../include/LASlib" ABSOLUTE) set_property(TARGET LASlib PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${LASlib_INCLUDE_DIRS}) set(LASlib_FOUND true) ================================================ FILE: ports/lastools/fix_install_paths_lastools.patch ================================================ diff --git a/LASlib/src/CMakeLists.txt b/LASlib/src/CMakeLists.txt index 671c38f..1d92a2d 100644 --- a/LASlib/src/CMakeLists.txt +++ b/LASlib/src/CMakeLists.txt @@ -106,15 +106,13 @@ endif() install(FILES ${LAS_INCLUDES} DESTINATION include/LASlib) -if (MSVC) +if (0) foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} ) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OUTPUTCONFIG} DESTINATION lib/LASlib) endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES ) else() install(TARGETS LASlib EXPORT laslib-targets - ARCHIVE DESTINATION lib/LASlib - LIBRARY DESTINATION lib/LASlib - RUNTIME DESTINATION lib/LASlib) + ) install(EXPORT laslib-targets DESTINATION lib/cmake/LASlib) install(FILES ${CMAKE_SOURCE_DIR}/LASlib/src/laslib-config.cmake DESTINATION lib/cmake/LASlib) -endif(MSVC) +endif(0) ================================================ FILE: ports/lastools/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LAStools/LAStools REF "v${VERSION}" SHA512 a44e6df02b8f7fe8388420fc7d454b035c38bcfb43a59d15ecb634cb30165c70730258b8ea79f335c4625b482827feb8a3d7afa8e07b369c19d5f7cc7be15001 HEAD_REF master PATCHES fix_install_paths_lastools.patch fix_include_directories_lastools.patch build_tools.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS_RELEASE FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_RELEASE ${FEATURE_OPTIONS_RELEASE} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LASlib PACKAGE_NAME laslib) if(BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES las2las64 las2txt64 lascopcindex64 lasdiff64 lasindex64 lasinfo64 lasmerge64 lasprecision64 laszip64 txt2las64 AUTO_CLEAN) # Copy CSV files that are used as lookup tables by las2las. file(COPY "${SOURCE_PATH}/bin/serf/geo" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/serf") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/COPYING.txt") ================================================ FILE: ports/lastools/vcpkg.json ================================================ { "name": "lastools", "version": "2.0.4", "description": "LAStools: award-winning software for efficient LiDAR processing (with LASzip)", "homepage": "https://github.com/LAStools/LAStools", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "static" } } } ================================================ FILE: ports/laszip/compiler-options.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 12db977..78e373f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,12 +6,6 @@ string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER) set(ROOT_DIR "${PROJECT_SOURCE_DIR}") -if (MSVC) - add_compile_options("/std:c++17") -else() - add_compile_options(-std=c++17) -endif() - if(CMAKE_GNU_COMPILER_ID OR CMAKE_Clang_COMPILER_ID) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format-security -Wno-format-truncation") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-format-security -Wno-format-truncation -std=c++17") diff --git a/cmake/macros.cmake b/cmake/macros.cmake index cd23260..a687a61 100644 --- a/cmake/macros.cmake +++ b/cmake/macros.cmake @@ -64,7 +64,7 @@ macro(LASZIP_ADD_LIBRARY _name) CLEAN_DIRECT_OUTPUT 1 FOLDER Libraries ) - set_property(TARGET ${_name} PROPERTY CXX_STANDARD 11) + set_property(TARGET ${_name} PROPERTY CXX_STANDARD 17) install(TARGETS ${_name} EXPORT LASZIPTargets diff --git a/cmake/unix_compiler_options.cmake b/cmake/unix_compiler_options.cmake index 0a6550f..65a9f4c 100644 --- a/cmake/unix_compiler_options.cmake +++ b/cmake/unix_compiler_options.cmake @@ -1,4 +1,4 @@ -set(LASZIP_COMMON_CXX_FLAGS "-Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wpointer-arith -Wcast-qual -Wredundant-decls -Wno-long-long -Wno-unknown-pragmas -isystem /usr/local/include" +set(LASZIP_COMMON_CXX_FLAGS "-Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wpointer-arith -Wcast-qual -Wredundant-decls -Wno-long-long -Wno-unknown-pragmas" ) if (${CMAKE_CXX_COMPILER_ID} MATCHES "GNU") diff --git a/cmake/win32_compiler_options.cmake b/cmake/win32_compiler_options.cmake index 95049b8..d252d83 100644 --- a/cmake/win32_compiler_options.cmake +++ b/cmake/win32_compiler_options.cmake @@ -45,8 +45,6 @@ if (MSVC) include(ProcessorCount) ProcessorCount(N) if(NOT N EQUAL 0) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP${N}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP${N}") endif() endif() @@ -77,9 +75,6 @@ add_definitions(-DWIN32_LEAN_AND_MEAN) # message(STATUS "Setting PDAL build type - ${CMAKE_BUILD_TYPE}") #endif() -set(CMAKE_INCLUDE_PATH "c:/OSGeo4W64/include;$ENV{CMAKE_INCLUDE_PATH}") -set(CMAKE_LIBRARY_PATH "c:/OSGeo4W64/lib;$ENV{CMAKE_LIBRARY_PATH}") -set(CMAKE_PREFIX_PATH "c:/OSGeo4W64/cmake;$ENV{CMAKE_LIBRARY_PATH}") #ABELL - WHY? set(PDAL_PLATFORM_WIN32 1) ================================================ FILE: ports/laszip/include-cstdint.patch ================================================ diff --git a/src/mydefs.cpp b/src/mydefs.cpp index ab9f3bf..722272d 100644 --- a/src/mydefs.cpp +++ b/src/mydefs.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include ================================================ FILE: ports/laszip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LASzip/LASzip REF ${VERSION} SHA512 6cdc38249ace8191dae454817fe5f5a3cd22b24c7065daa0e4a3eaaca4d698540c56affa06e15de88aea2912a82033d1dc93f5d3904190a896edf1204af865f5 HEAD_REF master PATCHES compiler-options.diff include-cstdint.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LASZIP_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DLASZIP_BUILD_STATIC=${LASZIP_BUILD_STATIC} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Remove laszip_api3 dll since it doesn't export functions properly during build. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/laszip_api3.dll") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/laszip_api3.dll") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt") ================================================ FILE: ports/laszip/vcpkg.json ================================================ { "name": "laszip", "version": "3.5.0", "description": "LASzip - free and lossless LiDAR compression", "homepage": "https://laszip.org/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/launch-darkly-server/FixStrictPrototypes.patch ================================================ diff --git a/c-sdk-common/src/ldvalue.c b/c-sdk-common/src/ldvalue.c index c3fbce9..53f0515 100644 --- a/c-sdk-common/src/ldvalue.c +++ b/c-sdk-common/src/ldvalue.c @@ -166,7 +166,7 @@ unsigned int LDValue_Count(struct LDValue *value) { return cJSON_GetArraySize(AS_CJSON(value)); } -struct LDObject *LDObject_New() { +struct LDObject *LDObject_New(void) { return AS_LDOBJECT(cJSON_CreateObject()); } diff --git a/src/integrations/test_data.c b/src/integrations/test_data.c index 24146c9..4a2587f 100644 --- a/src/integrations/test_data.c +++ b/src/integrations/test_data.c @@ -96,7 +96,7 @@ LDBoolean LDi_isBooleanFlag(struct LDFlagBuilder *flagBuilder) { } struct LDTestData * -LDTestDataInit() { +LDTestDataInit(void) { struct LDTestData *res; struct LDJSON *currentFlags; if(!ALLOCATE(struct LDTestData, res)) { ================================================ FILE: ports/launch-darkly-server/findPCRE.patch ================================================ diff --git a/cmake/FindPCRE.cmake b/cmake/FindPCRE.cmake index dbbd60a..68042fe 100644 --- a/cmake/FindPCRE.cmake +++ b/cmake/FindPCRE.cmake @@ -19,7 +19,11 @@ FIND_PATH(PCRE_INCLUDE_DIR NAMES pcre.h) # Look for the library. -FIND_LIBRARY(PCRE_LIBRARY NAMES pcre) +SET(pcre_DEBUG_NAME "") +IF(CMAKE_BUILD_TYPE MATCHES "Debug") + SET(pcre_DEBUG_NAME pcred) +ENDIF() +FIND_LIBRARY(PCRE_LIBRARY NAMES ${pcre_DEBUG_NAME} pcre) # Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE. INCLUDE(FindPackageHandleStandardArgs) ================================================ FILE: ports/launch-darkly-server/launch-darkly-server-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(ldserverapi CONFIG) ================================================ FILE: ports/launch-darkly-server/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO launchdarkly/c-server-sdk REF 66c24c874d623338636083f81ed258bc5101f504 # 2.9.3 SHA512 38dd411da0cae016f781efc467a9c230236160e3db737550809f5c7b799c2946deec191d6abcf2f677d6452ad0c273c864e9a78674f6c547d1fd8a88d9d73bcc HEAD_REF master PATCHES findPCRE.patch FixStrictPrototypes.patch # required with clang-15 removeWarningAsError.patch ) vcpkg_from_github( OUT_SOURCE_PATH HEXIFY_SOURCE_DIR REPO pepaslabs/hexify.c REF f823bd619f73584a75829cc1e44a532f5e09336e SHA512 fdfd3877874cb5b3e506d791c08840b156ba6905cee520adc225755f7ca768e54a2efa4d05cbef72d275ca2596e1a4d8e4fbb254f9cc4188c31a41b9904479bc HEAD_REF master PATCHES ${SOURCE_PATH}/patches/hexify.patch ) vcpkg_from_github( OUT_SOURCE_PATH SEMVER_SOURCE_DIR REPO h2non/semver.c REF bd1db234a68f305ed10268bd023df1ad672061d7 SHA512 29c7ab45e6550977bb6c74ebddfff440559a6e6494b701fc69a815912e6d683e5f4b4dfe17c98a892e8a82766f33c83edbe11e973579bd1d2175384cbaadd731 HEAD_REF master PATCHES ${SOURCE_PATH}/patches/semver.patch ) vcpkg_from_github( OUT_SOURCE_PATH SHA1_SOURCE_DIR REPO clibs/sha1 REF fa1d96ec293d2968791603548125e3274bd6b472 SHA512 fd7dfbed4ac10e2c482da1cd460dabf0a53965e6fa17fab97156becb8214e435ee3605b2748705141380e254de7c32ab42da5e42cd6e4494f7ecaafb3b9e19f0 HEAD_REF master PATCHES ${SOURCE_PATH}/patches/sha1.patch ) vcpkg_from_github( OUT_SOURCE_PATH TIMESTAMP_SOURCE_DIR REPO chansen/c-timestamp REF b205c407ae6680d23d74359ac00444b80989792f SHA512 497a1766b58e6e1c5ff2edf4fd6ff5f1065c4bdac60767988a5da03f93b0724ef582240aa015f3ab724200c249fe98072c67efbfc90e54d986a42212b43030ea HEAD_REF master PATCHES ${SOURCE_PATH}/patches/timestamp.patch ) vcpkg_download_distfile(UTHASH_COMPRESSED_FILE URLS https://github.com/troydhanson/uthash/archive/v2.3.0.tar.gz FILENAME uthash-archive-v2.3.0.tar.gz SHA512 3b01f1074790fb242900411cb16eb82c1a9afcf58e3196a0f4611d9d7ef94690ad38c0a500e7783d3efa20328aa8d6ab14f246be63b3b3d385502ba2b6b2a294 ) vcpkg_extract_source_archive(UTHASH_SOURCE_DIR ARCHIVE ${UTHASH_COMPRESSED_FILE} ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DFETCHCONTENT_SOURCE_DIR_HEXIFY=${HEXIFY_SOURCE_DIR} -DFETCHCONTENT_SOURCE_DIR_SEMVER=${SEMVER_SOURCE_DIR} -DFETCHCONTENT_SOURCE_DIR_SHA1=${SHA1_SOURCE_DIR} -DFETCHCONTENT_SOURCE_DIR_TIMESTAMP=${TIMESTAMP_SOURCE_DIR} -DFETCHCONTENT_SOURCE_DIR_UTHASH=${UTHASH_SOURCE_DIR} -DSKIP_DATABASE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/ldserverapi PACKAGE_NAME ldserverapi ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_copy_pdbs() set(shareDir "${CURRENT_PACKAGES_DIR}/share/${PORT}") # legacy vcpkg, unofficial file(COPY ${CMAKE_CURRENT_LIST_DIR}/launch-darkly-server-config.cmake DESTINATION ${shareDir}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/launch-darkly-server/removeWarningAsError.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9acff7d..12904e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,7 +184,6 @@ else() -pedantic -Wall -Wextra - -Werror -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations diff --git a/c-sdk-common/CMakeLists.txt b/c-sdk-common/CMakeLists.txt index 15340f7..091e46d 100644 --- a/c-sdk-common/CMakeLists.txt +++ b/c-sdk-common/CMakeLists.txt @@ -87,7 +87,6 @@ else() -pedantic -Wall -Wextra - -Werror -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations @@ -123,7 +122,6 @@ else() PRIVATE -fno-omit-frame-pointer -Wall -Wextra - -Werror -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations ================================================ FILE: ports/launch-darkly-server/usage ================================================ launch-darkly-server provides CMake targets: find_package(ldserverapi CONFIG REQUIRED) target_link_libraries(main PRIVATE ldserverapi::ldserverapi) ================================================ FILE: ports/launch-darkly-server/vcpkg.json ================================================ { "name": "launch-darkly-server", "version": "2.9.3", "port-version": 1, "description": "LaunchDarkly server-side SDK for C/C++", "homepage": "https://github.com/launchdarkly/c-server-sdk", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "curl", "default-features": false }, "pcre", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lazy-importer/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustasMasiulis/lazy_importer REF 4810f51d63438865e508c2784ea00811d9beb2ea SHA512 1b2f330586cb80d8ecf13dd27c5a407c778c3a12aeffa493d31b75fa9c3186ed9f67838164c48c64e2bb4a9fe804a77625dd1cd996d661545580e29d57c3494b HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/lazy_importer.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lazy-importer/vcpkg.json ================================================ { "name": "lazy-importer", "version-date": "2023-08-03", "description": "Library for importing functions from dlls in a hidden, reverse engineer unfriendly way", "homepage": "https://github.com/JustasMasiulis/lazy_importer" } ================================================ FILE: ports/lcm/disable-docs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d3a4c2..90833e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,6 @@ if(LCM_ENABLE_EXAMPLES) endif() # Documentation (Main, C/C++, .NET) -add_subdirectory(docs) # Java lcm_option( ================================================ FILE: ports/lcm/glib.link.patch ================================================ diff --git a/cmake/FindGLib2.cmake b/cmake/FindGLib2.cmake index f94f74e..2823fcf 100644 --- a/cmake/FindGLib2.cmake +++ b/cmake/FindGLib2.cmake @@ -74,15 +74,11 @@ find_package(PkgConfig) if(${PkgConfig_FOUND}) - pkg_check_modules(GLIB glib-2.0) + pkg_check_modules(GLIB IMPORTED_TARGET glib-2.0) if(${GLIB_FOUND}) - add_library(GLib2::glib UNKNOWN IMPORTED) - set_target_properties(GLib2::glib PROPERTIES - IMPORTED_LOCATION "${pkgcfg_lib_GLIB_glib-2.0}" - INTERFACE_COMPILE_OPTIONS "${GLIB_CFLAGS_OTHER}" - INTERFACE_INCLUDE_DIRECTORIES "${GLIB_INCLUDE_DIRS}" - ) + add_library(GLib2::glib INTERFACE IMPORTED) + target_link_libraries(GLib2::glib INTERFACE PkgConfig::GLIB) return() endif() ================================================ FILE: ports/lcm/only-install-one-flavor.patch ================================================ diff --git a/lcm/CMakeLists.txt b/lcm/CMakeLists.txt index a706a85..639ec12 100644 --- a/lcm/CMakeLists.txt +++ b/lcm/CMakeLists.txt @@ -76,8 +76,12 @@ endif() target_include_directories(lcm-coretypes INTERFACE $ ) - -install(TARGETS lcm-coretypes lcm-static lcm +if(BUILD_SHARED_LIBS) + set(INSTALL_TARGETS lcm) +else() + set(INSTALL_TARGETS lcm-static) +endif() +install(TARGETS lcm-coretypes ${INSTALL_TARGETS} EXPORT lcmTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ================================================ FILE: ports/lcm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lcm-proj/lcm REF "v${VERSION}" SHA512 3da9739a03769e609d44a93ae0f6790a604ca05c93639860bdc67843738452894582ca5eccabc3ade61afe519f40d3147f6bf2fe6ec5abcb03c8dd74dd22fb9c HEAD_REF master PATCHES only-install-one-flavor.patch glib.link.patch disable-docs.patch ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLCM_ENABLE_JAVA=OFF -DLCM_ENABLE_LUA=OFF -DLCM_ENABLE_PYTHON=OFF -DLCM_ENABLE_GO=OFF -DLCM_ENABLE_TESTS=OFF -DLCM_ENABLE_EXAMPLES=OFF -DLCM_INSTALL_M4MACROS=OFF -DLCM_INSTALL_PKGCONFIG=OFF ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/lcm/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/lcm" "${CURRENT_PACKAGES_DIR}/lib/lcm") endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") vcpkg_copy_tools(TOOL_NAMES lcm-gen lcm-logger lcm-logplayer AUTO_CLEAN) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/lcm/vcpkg.json ================================================ { "name": "lcm", "version": "1.5.2", "description": [ "Lightweight Communications and Marshalling (LCM)", "LCM is a set of libraries and tools for message passing and data marshalling, targeted at real-time systems where high-bandwidth and low latency are critical. It provides a publish/subscribe message passing model and automatic marshalling/unmarshalling code generation with bindings for applications in a variety of programming languages." ], "homepage": "https://github.com/lcm-proj/lcm", "license": "LGPL-2.1-or-later", "supports": "!osx & !xbox", "dependencies": [ "glib", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lcms/fix-shared-library.patch ================================================ diff --git a/include/lcms2.h b/include/lcms2.h index 7c72047..6306027 100644 --- a/include/lcms2.h +++ b/include/lcms2.h @@ -230,6 +230,7 @@ typedef int cmsBool; // Calling convention -- this is hardly platform and compiler dependent +#define CMS_DLL #if defined(CMS_IS_WINDOWS_) && !defined(__GNUC__) # if defined(CMS_DLL) || defined(CMS_DLL_BUILD) # ifdef __BORLANDC__ ================================================ FILE: ports/lcms/lcms-config.cmake ================================================ if(NOT TARGET lcms::lcms) include(CMakeFindDependencyMacro) find_dependency(lcms2 CONFIG) # Create imported target lcms::lcms add_library(lcms::lcms INTERFACE IMPORTED) set_target_properties(lcms::lcms PROPERTIES INTERFACE_LINK_LIBRARIES "lcms2::lcms2" ) endif() ================================================ FILE: ports/lcms/lcms2-config.cmake ================================================ if(NOT TARGET lcms2::lcms2) 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(lcms2::lcms2 UNKNOWN IMPORTED) set_target_properties(lcms2::lcms2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) find_library(LCMS2_LIBRARY_DEBUG NAMES lcms2 PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LCMS2_LIBRARY_DEBUG}") set_property(TARGET lcms2::lcms2 APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(lcms2::lcms2 PROPERTIES IMPORTED_LOCATION_DEBUG "${LCMS2_LIBRARY_DEBUG}") endif() find_library(LCMS2_LIBRARY_RELEASE NAMES lcms2 PATHS "${_IMPORT_PREFIX}/" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LCMS2_LIBRARY_RELEASE}") set_property(TARGET lcms2::lcms2 APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(lcms2::lcms2 PROPERTIES IMPORTED_LOCATION_RELEASE "${LCMS2_LIBRARY_RELEASE}") endif() unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/lcms/portfile.cmake ================================================ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(SHARED_LIBRARY_PATCH "fix-shared-library.patch") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mm2/Little-CMS REF "lcms${VERSION}" SHA512 1e256b6b7c06800ad21a5cd35971f39963710cc086cf22bc91a86f6f736b2bfa63cb705ada4431b6eb25714fe16a0e562acf51da742503d590fc1dd665a58b54 HEAD_REF master PATCHES ${SHARED_LIBRARY_PATCH} ) if("fastfloat" IN_LIST FEATURES) list(APPEND OPTIONS -Dfastfloat=true) else() list(APPEND OPTIONS -Dfastfloat=false) endif() if("threaded" IN_LIST FEATURES) list(APPEND OPTIONS -Dthreaded=true) else() list(APPEND OPTIONS -Dthreaded=false) endif() if("tools" IN_LIST FEATURES) list(APPEND OPTIONS -Dutils=true) else() list(APPEND OPTIONS -Dutils=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES jpgicc linkicc psicc tificc transicc AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/lcms-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/lcms2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/lcms2") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lcms/usage ================================================ The package lcms provides CMake targets: find_package(lcms2 CONFIG REQUIRED) target_link_libraries(main PRIVATE lcms2::lcms2) ================================================ FILE: ports/lcms/vcpkg.json ================================================ { "name": "lcms", "version": "2.18", "description": "Little CMS.", "homepage": "https://github.com/mm2/Little-CMS", "license": "MIT", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "fastfloat": { "description": "Build the fast float plugin", "supports": "!(x86 & windows)", "license": "GPL-3.0-or-later" }, "threaded": { "description": "Build the multi threaded plugin", "license": "GPL-3.0-or-later" }, "tools": { "description": "Build the utilities", "dependencies": [ "libjpeg-turbo", { "name": "tiff", "default-features": false } ] } } } ================================================ FILE: ports/lely-core/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("${PORT} currently requires the following tools and libraries from the system package manager:\n autoconf\n automake\n libtool\n \nThese can be installed on Ubuntu systems via apt-get install autoconf automake libtool") endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.com/ OUT_SOURCE_PATH SOURCE_PATH REPO lely_industries/lely-core REF "v${VERSION}" SHA512 0beab1b5cbc987065c230c8dd5ac2aa16971712478ecb6ad25b3018fc80016f59305e87423fedca8561af5eba782107b418162cc03c568c559417747a64f8a46 HEAD_REF master ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "--disable-cython" "--disable-python" "--disable-unit-tests" "--disable-tools" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lely-core/vcpkg.json ================================================ { "name": "lely-core", "version": "2.3.5", "port-version": 1, "description": "The Lely core libraries are a collection of C and C++ libraries and tools, providing hih-performance I/O and sensor/actuator control for robotics and IoT applications", "homepage": "https://gitlab.com/lely_industries/lely-core", "license": "Apache-2.0", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/lemon-parser-generator/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(lemon-parser-generator C) add_executable(lemon lemon.c) install(TARGETS lemon RUNTIME DESTINATION tools/lemon ) ================================================ FILE: ports/lemon-parser-generator/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(VCPKG_BUILD_TYPE release) set(SQLITE_VERSION "3.39.3") vcpkg_download_distfile(SOURCE_FILE URLS "https://github.com/sqlite/sqlite/raw/version-${SQLITE_VERSION}/tool/lemon.c" FILENAME "lemon.c" SHA512 "e9cca77d45a3be55fc958be69a30730dcbd39ba5c85c4c6c6c9eb6988c5cae9d14607be214ce57c11c73a6ffd4005784fb4d046d78f50e348ffa7ea6392ee03a" ) get_filename_component(SOURCE_PATH "${SOURCE_FILE}" DIRECTORY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_download_distfile(LEMPAR URLS "https://github.com/sqlite/sqlite/raw/version-${SQLITE_VERSION}/tool/lempar.c" FILENAME "lempar.c" SHA512 "45ef60bbfef54f6583d6f9a854aaa72c5538e791b09ad15f4094a96905974277f964f471dcd5775e76b685b54415897a32a40c09f913f61cf91b99eb2e5ff5f0" ) file(COPY "${LEMPAR}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/lemon") ================================================ FILE: ports/lemon-parser-generator/vcpkg.json ================================================ { "name": "lemon-parser-generator", "version": "3.39.3", "port-version": 1, "description": "The Lemon program is an LALR(1) parser generator. It takes a context free grammar and converts it into a subroutine that will parse a file using that grammar.", "homepage": "https://www.hwaci.com/sw/lemon/index.html", "license": "blessing", "supports": "native", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/lensfun/fix_build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 087928c..d1664ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,7 +102,7 @@ IF(BUILD_FOR_SSE2) ENDIF() ENDIF() -IF(WIN32) +IF(0) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/libs/getopt) # base path for searching for glib on windows IF(NOT GLIB2_BASE_DIR) @@ -205,7 +205,7 @@ IF(BUILD_DOC) ADD_SUBDIRECTORY(docs) ENDIF() -IF(WIN32 AND NOT BUILD_STATIC) +IF(0) FIND_FILE(GLIB2_DLL NAMES glib-2.0-0.dll glib-2.dll glib-2-vs9.dll PATHS "${GLIB2_BASE_DIR}/bin" ================================================ FILE: ports/lensfun/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lensfun/lensfun REF "v${VERSION}" SHA512 4db9a08d51ba50c7c2ff528d380bb28e34698b2bb5c40e5f3deeaa5544c888ac7e0f638bbc3f33a4f75dbb67e0425ca36ce6d8cd1d8c043a4173a2df47de08c6 HEAD_REF master PATCHES fix_build.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LENSFUN_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" LENSFUN_STATIC_CRT) set(LENSFUN_EXTRA_OPTS "") if("python" IN_LIST FEATURES) find_file(INITIAL_PYTHON3 NAMES "python3${VCPKG_HOST_EXECUTABLE_SUFFIX}" "python${VCPKG_HOST_EXECUTABLE_SUFFIX}" PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/python3" NO_DEFAULT_PATH REQUIRED ) x_vcpkg_get_python_packages(OUT_PYTHON_VAR PYTHON3 PYTHON_EXECUTABLE "${INITIAL_PYTHON3}" PYTHON_VERSION "3" PACKAGES setuptools ) else() set(PYTHON3 "false") endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND LENSFUN_EXTRA_OPTS -DPLATFORM_WINDOWS=ON) endif() if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND LENSFUN_EXTRA_OPTS -DBUILD_FOR_SSE=OFF -DBUILD_FOR_SSE2=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${LENSFUN_EXTRA_OPTS} -DBUILD_STATIC=${LENSFUN_STATIC_LIB} -DBUILD_WITH_MSVC_STATIC_RUNTIME=${LENSFUN_STATIC_CRT} -DBUILD_TESTS=OFF -DBUILD_DOC=OFF -DBUILD_LENSTOOL=OFF -DINSTALL_HELPER_SCRIPTS=OFF "-DPYTHON=${PYTHON3}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(READ "${SOURCE_PATH}/README.md" license_comment) string(REGEX REPLACE "^.*\n(LICENSE\n)---+\n(.*)" "\\1\\2" license_comment "${license_comment}") string(REGEX REPLACE "[^\n]+\n---+.*\$" "" license_comment "${license_comment}") vcpkg_install_copyright( COMMENT "${license_comment}" FILE_LIST "${SOURCE_PATH}/docs/gpl-3.0.txt" "${SOURCE_PATH}/docs/lgpl-3.0.txt" ) ================================================ FILE: ports/lensfun/vcpkg.json ================================================ { "name": "lensfun", "version": "0.3.4", "port-version": 2, "description": "Provide a open source database of photographic lenses and their characteristics", "homepage": "https://lensfun.github.io/", "license": null, "supports": "!arm", "dependencies": [ "glib", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "python": { "description": "Build python module", "supports": "native & !windows", "dependencies": [ "python3", "vcpkg-get-python-packages" ] } } } ================================================ FILE: ports/leptonica/fix-pc-and-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b99550..c79e743 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -327,9 +327,6 @@ get_target_property(leptonica_OUTPUT_NAME leptonica OUTPUT_NAME) configure_file(lept.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/lept.pc.in @ONLY) # to resolve generator expression in OUTPUT_NAME set(pkg_conf_name lept.pc) -if(WIN32) - set(pkg_conf_name lept_$.pc) -endif(WIN32) file( GENERATE diff --git a/cmake/Configure.cmake b/cmake/Configure.cmake index da41b1b..a2d163a 100644 --- a/cmake/Configure.cmake +++ b/cmake/Configure.cmake @@ -94,7 +94,7 @@ if (JPEG_FOUND) set(HAVE_LIBJPEG 1) endif() -if (OPENJPEG_SUPPORT) +if (OpenJPEG_FOUND) set(HAVE_LIBJP2K 1) endif() @@ -106,7 +106,7 @@ if (TIFF_FOUND) set(HAVE_LIBTIFF 1) endif() -if (LIBWEBP_SUPPORT) +if (WebP_FOUND) set(HAVE_LIBWEBP 1) set(HAVE_LIBWEBP_ANIM 1) endif() diff --git a/cmake/templates/LeptonicaConfig.cmake.in b/cmake/templates/LeptonicaConfig.cmake.in index cee3a0f..3bec56b 100644 --- a/cmake/templates/LeptonicaConfig.cmake.in +++ b/cmake/templates/LeptonicaConfig.cmake.in @@ -21,10 +21,10 @@ # =================================================================================== include(CMakeFindDependencyMacro) -if (@OPENJPEG_SUPPORT@) +if (@ENABLE_OPENJPEG@) find_dependency(OpenJPEG CONFIG) endif() -if (@LIBWEBP_SUPPORT@) +if (@ENABLE_WEBP@) find_dependency(WebP @MINIMUM_WEBPMUX_VERSION@ CONFIG) endif() ================================================ FILE: ports/leptonica/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DanBloomberg/leptonica REF "${VERSION}" SHA512 2a1953dd0c962a05dac9bb30eac311896f414c658d976008b0c2d1b3b85ec25c5fd811be3f98a37f2131ded134799ea609a667fb1eaacf42d1aca9cc5cf1bd92 HEAD_REF master PATCHES fix-pc-and-config.patch ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSW_BUILD=OFF "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DCMAKE_REQUIRE_FIND_PACKAGE_GIF=TRUE -DCMAKE_REQUIRE_FIND_PACKAGE_JPEG=TRUE -DCMAKE_REQUIRE_FIND_PACKAGE_PNG=TRUE -DCMAKE_REQUIRE_FIND_PACKAGE_TIFF=TRUE -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=TRUE ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/leptonica) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/leptonica-license.txt") ================================================ FILE: ports/leptonica/vcpkg.json ================================================ { "name": "leptonica", "version": "1.87.0", "description": "An open source library containing software that is broadly useful for image processing and image analysis applications", "homepage": "https://github.com/DanBloomberg/leptonica", "license": null, "dependencies": [ "giflib", "libjpeg-turbo", "libpng", { "name": "libwebp", "default-features": false }, "openjpeg", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/lerc/create_package.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ab733f5..a52dc59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,11 +38,18 @@ endif() install( TARGETS Lerc + EXPORT LercTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) +target_include_directories(Lerc PUBLIC "$") +install(EXPORT LercTargets + FILE unofficial-lerc-config.cmake + NAMESPACE unofficial::Lerc:: + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-lerc" +) # Handle both absolute paths (e.g. NixOS) and relative for a relocatable package if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") ================================================ FILE: ports/lerc/cxx-linkage-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a52dc59..caacfa8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,6 +64,16 @@ else() endif() # Configure and install pkgconfig file +set(FAKE_CXX_LINKAGE "") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() +endforeach() configure_file(Lerc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/Lerc.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Lerc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/Lerc.pc.in b/Lerc.pc.in index ab20d1a..4d2a967 100644 --- a/Lerc.pc.in +++ b/Lerc.pc.in @@ -9,4 +9,4 @@ URL: @PROJECT_HOMEPAGE_URL@ Version: @PROJECT_VERSION@ Cflags: -I${includedir} Cflags.private: -DLERC_STATIC -Libs: -L${libdir} -lLerc +Libs: -L${libdir} -lLerc @FAKE_CXX_LINKAGE@ ================================================ FILE: ports/lerc/fix-climits-include.patch ================================================ diff --git a/src/LercLib/fpl_Compression.cpp b/src/LercLib/fpl_Compression.cpp index bea9483..2e18e3e 100644 --- a/src/LercLib/fpl_Compression.cpp +++ b/src/LercLib/fpl_Compression.cpp @@ -27,6 +27,7 @@ Original coding 2021 Yuriy Yakimenko #include #include #include +#include USING_NAMESPACE_LERC ================================================ FILE: ports/lerc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Esri/lerc REF "js_v${VERSION}" SHA512 061558d3b29e2d0968d1169ac422795faa6e70dd3425945194c1c87f4522422e186878b0235a5fc42f037c47c54964bf070b7644f8d652f33dc19f692a6ba0af HEAD_REF master PATCHES create_package.patch cxx-linkage-pkgconfig.patch fix-climits-include.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-lerc) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/Lerc_c_api.h" "defined(LERC_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/NOTICE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lerc/vcpkg.json ================================================ { "name": "lerc", "version": "4.0.4", "description": "An open-source image or raster format which supports rapid encoding and decoding for any pixel type", "homepage": "https://github.com/Esri/lerc", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lest/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/lest REF "v${VERSION}" SHA512 78d06bd0bfbe64d3234d4f005c65084d3cea1ca9edd564a6006d78ebf83b1539e3436ef480cda3b48621299dc0c22732918af725a716645e4c73a308b6fe1378 ) file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/lest RENAME copyright) ================================================ FILE: ports/lest/vcpkg.json ================================================ { "name": "lest", "version": "1.37.0", "description": "A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant)", "homepage": "https://github.com/martinmoene/lest" } ================================================ FILE: ports/level-zero/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oneapi-src/level-zero REF "v${VERSION}" SHA512 fa0c9154563982a9b6bff684ce37fb29ed817e52c686081eb0da62b9630defc6006475c17d7823108023a7d50b73762875664e0a5d73c9749b11c52f4782fac6 HEAD_REF master PATCHES spdlog_include.patch ) vcpkg_list(SET options) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND options "-DBUILD_STATIC=1") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSYSTEM_SPDLOG=ON ${options} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/level-zero/spdlog_include.patch ================================================ diff --git a/source/utils/CMakeLists.txt b/source/utils/CMakeLists.txt index b77f264..de3f74d 100644 --- a/source/utils/CMakeLists.txt +++ b/source/utils/CMakeLists.txt @@ -5,7 +5,7 @@ set(logging_files logging.h logging.cpp) add_library(level_zero_utils STATIC ${logging_files}) if(SYSTEM_SPDLOG) - target_link_libraries(level_zero_utils PUBLIC spdlog::spdlog) + target_link_libraries(level_zero_utils PUBLIC spdlog::spdlog_header_only) else() target_include_directories(level_zero_utils PUBLIC $) endif() ================================================ FILE: ports/level-zero/vcpkg.json ================================================ { "name": "level-zero", "version": "1.26.3", "description": "oneAPI Level Zero Specification Headers and Loader.", "homepage": "https://github.com/oneapi-src/level-zero", "license": "MIT", "supports": "x64 & (linux | (windows & !uwp))", "dependencies": [ "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/leveldb/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f8285b8..39536fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,8 +38,14 @@ include(CheckIncludeFile) check_include_file("unistd.h" HAVE_UNISTD_H) include(CheckLibraryExists) -check_library_exists(crc32c crc32c_value "" HAVE_CRC32C) -check_library_exists(snappy snappy_compress "" HAVE_SNAPPY) +if (WITH_CRC32C) + find_package(Crc32c CONFIG REQUIRED) + set(HAVE_CRC32C 1) +endif() +if (WITH_SNAPPY) + find_package(Snappy CONFIG REQUIRED) + set(HAVE_SNAPPY 1) +endif() check_library_exists(tcmalloc malloc "" HAVE_TCMALLOC) include(CheckCXXSymbolExists) @@ -268,10 +274,10 @@ if(HAVE_CLANG_THREAD_SAFETY) endif(HAVE_CLANG_THREAD_SAFETY) if(HAVE_CRC32C) - target_link_libraries(leveldb crc32c) + target_link_libraries(leveldb Crc32c::crc32c) endif(HAVE_CRC32C) if(HAVE_SNAPPY) - target_link_libraries(leveldb snappy) + target_link_libraries(leveldb Snappy::snappy) endif(HAVE_SNAPPY) if(HAVE_TCMALLOC) target_link_libraries(leveldb tcmalloc) ================================================ FILE: ports/leveldb/fix-util-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 39536fc..648de6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -477,6 +477,11 @@ if(LEVELDB_INSTALL) DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/leveldb" ) + file(GLOB HEADER_UTIL "${PROJECT_SOURCE_DIR}/util/*.h" ) + file(GLOB HEADER_TABLE "${PROJECT_SOURCE_DIR}/table/*.h" ) + install(FILES ${HEADER_UTIL} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb/util) + install(FILES ${HEADER_TABLE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb/table) + include(CMakePackageConfigHelpers) configure_package_config_file( "cmake/${PROJECT_NAME}Config.cmake.in" ================================================ FILE: ports/leveldb/leveldbConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(Threads) if (@WITH_CRC32C@) find_dependency(Crc32c CONFIG) endif() if (@WITH_SNAPPY@) find_dependency(Snappy CONFIG) endif() include("${CMAKE_CURRENT_LIST_DIR}/leveldbTargets.cmake") ================================================ FILE: ports/leveldb/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/leveldb REF "${VERSION}" SHA512 ac15eac29387b9f702a901b6567d47a9f8c17cf5c7d8700a77ec771da25158c83b04959c33f3d4de7a3f033ef08f545d14ba823a8d527e21889c4b78065b0f84 HEAD_REF master PATCHES fix-dependencies.patch fix-util-install.patch ) file(COPY "${CURRENT_PORT_DIR}/leveldbConfig.cmake.in" DESTINATION "${SOURCE_PATH}/cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES crc32c WITH_CRC32C snappy WITH_SNAPPY ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLEVELDB_BUILD_TESTS=OFF -DLEVELDB_BUILD_BENCHMARKS=OFF -DHAVE_TCMALLOC=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/leveldb") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/leveldb/vcpkg.json ================================================ { "name": "leveldb", "version": "1.23", "port-version": 1, "description": "LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.", "homepage": "https://github.com/google/leveldb", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "crc32c": { "description": "Build with crc32c", "dependencies": [ "crc32c" ] }, "snappy": { "description": "Build with snappy", "dependencies": [ "snappy" ] } } } ================================================ FILE: ports/levmar/add-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cc6789f..d2757f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,3 +95,6 @@ IF(BUILD_DEMO) ENDIF(BUILD_DEMO) #SUBDIRS(matlab) + +install(TARGETS levmar LIBRARY DESTINATION "lib/") +install(FILES "${CMAKE_SOURCE_DIR}/levmar.h" DESTINATION "include/levmar/") ================================================ FILE: ports/levmar/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://users.ics.forth.gr/~lourakis/levmar/levmar-2.6.tgz" FILENAME "levmar-2.6.tgz" SHA512 5b4c64b63be9b29d6ad2df435af86cd2c2e3216313378561a670ac6a392a51bbf1951e96c6b1afb77c570f23dd8e194017808e46929fec2d8d9a7fe6cf37022b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES add-install.patch # patch just adding the install commands to original CMakeLists.txt ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DHAVE_LAPACK=OFF -DHAVE_PLASMA=OFF -DBUILD_DEMO=OFF ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Handle duplicated debug includes file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/levmar/vcpkg.json ================================================ { "name": "levmar", "version": "2.6", "port-version": 3, "description": "Levenberg-Marquardt nonlinear least squares optimization algorithm", "homepage": "http://users.ics.forth.gr/~lourakis/levmar/", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/lexbor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lexbor/lexbor REF v${VERSION} SHA512 ad2b333e2802b9e05fea461c017fecaec1619c67d4e165da7fb9c6d24a77584b8e1ff0348330a61a169e19025d215e7a0a6356ce1424daf14cf3caf2b2c2dbef ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES perf LEXBOR_WITH_PERF ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLEXBOR_BUILD_SHARED=${BUILD_SHARED} -DLEXBOR_BUILD_STATIC=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lexbor) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/lexbor/html/tree/insertion_mode" "${CURRENT_PACKAGES_DIR}/debug/include/lexbor/html/tree/insertion_mode" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lexbor/vcpkg.json ================================================ { "name": "lexbor", "version": "2.7.0", "description": "Lexbor is development of an open source HTML Renderer library.", "homepage": "https://github.com/lexbor/lexbor", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "perf": { "description": "Enables support for rdtsc", "supports": "!arm" } } } ================================================ FILE: ports/lexilla/0001-static-lib.patch ================================================ diff --git a/src/Lexilla.vcxproj b/src/Lexilla.vcxproj index 82aa9b7..5eac42f 100644 --- a/src/Lexilla.vcxproj +++ b/src/Lexilla.vcxproj @@ -36,7 +36,7 @@ - DynamicLibrary + StaticLibrary Unicode v143 ================================================ FILE: ports/lexilla/0002-static-crt.patch ================================================ diff --git a/src/Lexilla.vcxproj b/src/Lexilla.vcxproj index 82aa9b7..6b6f340 100644 --- a/src/Lexilla.vcxproj +++ b/src/Lexilla.vcxproj @@ -95,6 +95,7 @@ _DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebug Default @@ -103,6 +104,7 @@ _DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebug Default @@ -111,6 +113,7 @@ _DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebug Default @@ -122,6 +125,7 @@ true true NDEBUG;%(PreprocessorDefinitions) + MultiThreaded true @@ -133,6 +137,7 @@ true true NDEBUG;%(PreprocessorDefinitions) + MultiThreaded true @@ -144,6 +149,7 @@ true true NDEBUG;%(PreprocessorDefinitions) + MultiThreaded true ================================================ FILE: ports/lexilla/0003-fix-include-path.patch ================================================ diff --git a/src/Lexilla.vcxproj b/src/Lexilla.vcxproj index 5eedf5cf..c35b62e7 100644 --- a/src/Lexilla.vcxproj +++ b/src/Lexilla.vcxproj @@ -75,7 +75,7 @@ Level4 WIN32;_CRT_SECURE_NO_DEPRECATE;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - ..\include;..\..\scintilla\include;..\lexlib; + ..\include;$(VcpkgInstalledDir)\$(VcpkgTriplet)\include\scintilla;..\lexlib; false true false ================================================ FILE: ports/lexilla/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.scintilla.org/lexilla546.zip" FILENAME "lexilla546.zip" SHA512 7290de2acbe9e52cac31aa3bf89dae66faa2040b45e715a2e18d2dd5804b2486dac8ae1cec68d8dc9215fc953628d492dbf57e61751011d17c3d70899a47dec0 ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND PATCHES 0001-static-lib.patch) endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND PATCHES 0002-static-crt.patch) endif() list(APPEND PATCHES 0003-fix-include-path.patch) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE ${VERSION} PATCHES ${PATCHES} ) vcpkg_install_msbuild( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH src/Lexilla.vcxproj ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}" FILES_MATCHING PATTERN "*.*") file(INSTALL "${SOURCE_PATH}/lexlib/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/lexlib" FILES_MATCHING PATTERN "*.h") ================================================ FILE: ports/lexilla/vcpkg.json ================================================ { "name": "lexilla", "version": "5.4.6", "description": "Lexilla is a free library of language lexers that can be used with the Scintilla editing component. It comes with complete source code and a license that permits use in any free project or commercial product.", "homepage": "https://www.scintilla.org/Lexilla.html", "supports": "windows & !uwp & !mingw", "dependencies": [ "scintilla", { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/lfreist-hwinfo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lfreist/hwinfo REF fff0ffb494aa8f8cb8537a35d0032235d6d5b5cc SHA512 9100d6a5e39096d1aa36b462499e3937fd6c829887c7cab23ebb4ac8798f9abc844111df0bc781190780f164e8e2df93b1f0dbbc2d6ac824601910b03009ed3e HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" HWINFO_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" HWINFO_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DHWINFO_SHARED=${HWINFO_BUILD_SHARED} -DHWINFO_STATIC=${HWINFO_BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME lfreist-hwinfo CONFIG_PATH "lib/cmake/hwinfo" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/lfreist-hwinfo/usage ================================================ lfreist-hwinfo provides CMake targets : find_package(lfreist-hwinfo CONFIG REQUIRED) target_link_libraries(main PRIVATE lfreist-hwinfo::hwinfo) ================================================ FILE: ports/lfreist-hwinfo/vcpkg.json ================================================ { "name": "lfreist-hwinfo", "version-date": "2025-07-10", "description": "hwinfo provides an easy-to-use and modern C++ API for retrieving hardware information of your systems components such as CPU, RAM, GPU, Disks, Mainboard, ...", "homepage": "https://github.com/lfreist/hwinfo", "supports": "!(uwp | android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lib3mf/fix-lib3mf-config-root.patch ================================================ diff --git a/cmake/lib3mfConfig.cmake.in b/cmake/lib3mfConfig.cmake.in index 589422b3..2dbcbf95 100644 --- a/cmake/lib3mfConfig.cmake.in +++ b/cmake/lib3mfConfig.cmake.in @@ -23,8 +23,8 @@ if(NOT TARGET lib3mf::lib3mf) return() endif() get_filename_component(_lib3mf_package_dir "${CMAKE_CURRENT_LIST_DIR}" ABSOLUTE) -get_filename_component(LIB3MF_ROOT_DIR "${_lib3mf_package_dir}/../../.." ABSOLUTE) +get_filename_component(LIB3MF_ROOT_DIR "${_lib3mf_package_dir}/../.." ABSOLUTE) set(LIB3MF_CDYNAMIC_ADDITIONAL_SOURCE "${LIB3MF_ROOT_DIR}/include/Bindings/CDynamic/lib3mf_dynamic.cc") set(_lib3mf_library_location_definition "LIB3MF_LIBRARY_LOCATION=\"$\"") ================================================ FILE: ports/lib3mf/linkage.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ec1d7dd..c273eff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -293,7 +293,6 @@ if (USE_INCLUDED_ZLIB) else() set(_lib3mf_external_link_visibility PRIVATE) if (NOT LIB3MF_BUILD_SHARED) - set(_lib3mf_external_link_visibility PUBLIC) endif() find_package(ZLIB QUIET) ================================================ FILE: ports/lib3mf/pkgconfig.diff ================================================ diff --git a/lib3mf.pc.in b/lib3mf.pc.in index bb8030a..0117dd6 100644 --- a/lib3mf.pc.in +++ b/lib3mf.pc.in @@ -8,5 +8,6 @@ Description: @PROJECT_DESCRIPTION@ Version: @PROJECT_VERSION@ Requires: -Libs: -L${libdir} -l3mf -lzip -lz +Requires.private: libzip zlib +Libs: -L${libdir} -l3mf Cflags: -I${includedir} ================================================ FILE: ports/lib3mf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO 3MFConsortium/lib3mf REF "v${VERSION}" SHA512 acfd0e4862248c475c674f7ee7855f809965a854e62ea0cd847008be7a9ca3c5a03ac87cac889f036555229762405094ca9811817dd45dbdaae941b5b41ae356 PATCHES fix-lib3mf-config-root.patch linkage.diff pkgconfig.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/Libraries") # vendored string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" _lib3mf_build_shared) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIB3MF_BUILD_SHARED=${_lib3mf_build_shared} -DCMAKE_REQUIRE_FIND_PACKAGE_libzip=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON -DUSE_INCLUDED_ZLIB=OFF -DUSE_INCLUDED_LIBZIP=OFF -DUSE_INCLUDED_SSL=OFF -DUSE_INCLUDED_CPPBASE64=OFF -DUSE_INCLUDED_FASTFLOAT=OFF -DBUILD_FOR_CODECOVERAGE=OFF -DLIB3MF_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lib3mf) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lib3mf/usage ================================================ lib3mf provides CMake targets: find_package(lib3mf CONFIG REQUIRED) target_link_libraries(target_name PRIVATE lib3mf::lib3mf) lib3mf provides pkg-config modules: lib3mf ================================================ FILE: ports/lib3mf/vcpkg.json ================================================ { "name": "lib3mf", "version": "2.5.0", "port-version": 1, "description": "lib3mf is an implementation of the 3D Manufacturing Format file standard", "homepage": "https://github.com/3MFConsortium/lib3mf", "documentation": "https://lib3mf.readthedocs.io/", "license": "BSD-2-Clause", "supports": "(windows & (x86 | x64)) | (linux & x64) | (osx & (x64 | arm64))", "dependencies": [ "cpp-base64", "fast-float", "libzip", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libaaplus/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bb8ea3..c445c4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ cmake_minimum_required(VERSION 3.8) SET(CMAKE_CXX_STANDARD 17) SET(CMAKE_CXX_STANDARD_REQUIRED ON) +option(BUILD_TOOLS "Build libaaplus tools" OFF) #----------------------------------------------------------------------------- # Output directories. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH @@ -261,18 +262,66 @@ SET ( SRCS #----------------------------------------------------------------------------- # Executables. #----------------------------------------------------------------------------- +if(BUILD_TOOLS) ADD_EXECUTABLE(AATest ${SRCS} ) - +endif() #----------------------------------------------------------------------------- # Libraries. +if(NOT BUILD_SHARED_LIBS) ADD_LIBRARY(aaplus-static STATIC ${SRCS_LIB} ${INCS}) SET_TARGET_PROPERTIES(aaplus-static PROPERTIES OUTPUT_NAME "aaplus") - +target_include_directories(aaplus-static PUBLIC $ $) +else() ADD_LIBRARY(aaplus-shared SHARED ${SRCS_LIB} ${INCS}) SET_TARGET_PROPERTIES(aaplus-shared PROPERTIES OUTPUT_NAME "aaplus") +target_include_directories(aaplus-shared PUBLIC $ $) +endif() + +if (MSVC AND BUILD_SHARED_LIBS) +target_compile_definitions(aaplus-shared + PRIVATE + -DAAPLUS_EXT_CLASS\=__declspec\(dllexport\) +) +endif (MSVC AND BUILD_SHARED_LIBS) + +if(BUILD_SHARED_LIBS) + install( + TARGETS aaplus-shared + EXPORT aaplus + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) +else() + install( + TARGETS aaplus-static + EXPORT aaplus + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin + ) +endif() -install(TARGETS aaplus-shared aaplus-static - DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" ) +if(BUILD_TOOLS) + if(BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES(AATest aaplus-shared) + if(MSVC) + target_compile_definitions(AATest + PUBLIC + -DAAPLUS_EXT_CLASS\=__declspec\(dllimport\) + ) + endif() + + else() + TARGET_LINK_LIBRARIES(AATest aaplus-static) + endif() +endif() -TARGET_LINK_LIBRARIES(AATest aaplus-static) +install( + EXPORT aaplus + DESTINATION share/aaplus + FILE aaplusConfig.cmake + NAMESPACE aaplus:: +) +install(FILES ${INCS} DESTINATION include/aaplus) \ No newline at end of file ================================================ FILE: ports/libaaplus/portfile.cmake ================================================ set(VERSION 2.36) vcpkg_download_distfile( ARCHIVE_FILE URLS "http://www.naughter.com/download/aaplus_v${VERSION}.zip" FILENAME "aaplus_v${VERSION}.zip" SHA512 a7abf20feb49df00b95be987809a3dc8df3e9ff706dd5a873ecfdd695af125f858264e092b6b856e83685e9eb46fd46520cf09dfae892c32cbb71f925ba17b86 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE_FILE} SOURCE_BASE ${VERSION} NO_REMOVE_ONE_LEVEL PATCHES fix-cmakelists.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME aaplus CONFIG_PATH share/aaplus) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/AA+.htm" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libaaplus/vcpkg.json ================================================ { "name": "libaaplus", "version": "2.36", "port-version": 1, "description": "libaaplus is an astronomical computations library by naughter software", "homepage": "http://www.naughter.com/aa.html", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build libaaplus tools" } } } ================================================ FILE: ports/libadlmidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Wohlstand/libADLMIDI REF 809f7e0021dbb7a0e5b2f67d54da2298f30a53c3 SHA512 9b809ac96d1c1c9088073db3adc78ceb039974022a4937f32b7058bcba68fd3eaf5fb599176861f152cce9da7d079aa00dacdb3d61b66460d679c6d95a235a2f HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hw-serial USE_HW_SERIAL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUSE_NUKED_OPL2_LLE_EMULATOR=ON -DUSE_NUKED_OPL3_LLE_EMULATOR=ON -DUSE_HW_SERIAL=ON -DWITH_HQ_RESAMPLER=OFF # requires zita-resampler ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libADLMIDI) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/share/doc" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSE*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/libadlmidi/usage ================================================ libadlmidi provides CMake targets: find_package(libADLMIDI CONFIG REQUIRED) target_link_libraries(main PRIVATE libADLMIDI::ADLMIDI) ================================================ FILE: ports/libadlmidi/vcpkg.json ================================================ { "name": "libadlmidi", "version-date": "2025-04-14", "description": "libADLMIDI is a free Software MIDI synthesizer library with OPL3 emulation", "homepage": "https://github.com/Wohlstand/libADLMIDI", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libadwaita/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 eb4808592c8578c7541291d6528af688224eaa80ae543a68ab8a8d081d2751e44dc80b980673e412580d80d3fd4f2ff10c23dfcb63fa54b581151a7cce7f233d ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") set(GLIB_TOOLS_DIR "${CURRENT_HOST_INSTALLED_DIR}/tools/glib") set(SASSC_TOOLS_DIR "${CURRENT_HOST_INSTALLED_DIR}/tools/sassc") vcpkg_configure_meson( SOURCE_PATH ${SOURCE_PATH} OPTIONS -Dintrospection=disabled -Dtests=false -Dgtk_doc=false -Dexamples=false -Dvapi=false ADDITIONAL_BINARIES glib-genmarshal='${GLIB_TOOLS_DIR}/glib-genmarshal' glib-mkenums='${GLIB_TOOLS_DIR}/glib-mkenums' glib-compile-resources='${GLIB_TOOLS_DIR}/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}' glib-compile-schemas='${GLIB_TOOLS_DIR}/glib-compile-schemas${VCPKG_HOST_EXECUTABLE_SUFFIX}' sassc='${SASSC_TOOLS_DIR}/bin/sassc${VCPKG_HOST_EXECUTABLE_SUFFIX}' ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libadwaita/vcpkg.json ================================================ { "name": "libadwaita", "version": "1.8.4", "description": "Building blocks for modern GNOME applications", "homepage": "https://gnome.pages.gitlab.gnome.org/libadwaita", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ "appstream", { "name": "glib", "host": true }, "gtk", { "name": "sassc", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libaec/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://gitlab.dkrz.de REPO k202009/libaec REF "v${VERSION}" SHA512 c1023328895b5dfdd1831d9edeeaaafe2b3083cdf42a1b76358319b7afd552e1eeb389e8d2668eb2d5f43a07542ade1914a4db1b9095b3d901559826a9c91eba ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC} -Dlibaec_INSTALL_CMAKEDIR=share/${PORT} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libaec/libaec-config.cmake" "if(libaec_USE_STATIC_LIBS)" "if(\"${BUILD_STATIC}\") # forced by vcpkg" ) # Compatibility with user's CMake < 3.18 (vcpkg claims support for >= 3.16): # Make imported targets global so that libaec-config.cmake can create ALIAS targets. set(_target_file "libaec_shared-targets") if(BUILD_STATIC) set(_target_file "libaec_static-targets") endif() file(READ "${CURRENT_PACKAGES_DIR}/share/libaec/${_target_file}.cmake" libaec_targets) string(REGEX REPLACE " (SHARED|STATIC) IMPORTED" " \\1 IMPORTED \${libaec_maybe_global}" libaec_targets "${libaec_targets}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/libaec/${_target_file}.cmake" "set(libaec_maybe_global \"\") if(CMAKE_VERSION VERSION_LESS 3.18) set(libaec_maybe_global \"GLOBAL\") endif() ${libaec_targets} " ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/libaec/usage ================================================ libaec provides CMake targets: find_package(libaec CONFIG REQUIRED) # libaec API target_link_libraries(main PRIVATE libaec::aec) # szip compatible API target_link_libraries(main PRIVATE libaec::sz) ================================================ FILE: ports/libaec/vcpkg.json ================================================ { "name": "libaec", "version": "1.1.6", "description": "Adaptive Entropy Coding library", "homepage": "https://gitlab.dkrz.de/k202009/libaec", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libaes-siv/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) set(no_lib_project_name "aes_siv") project(libaes-siv LANGUAGES C) set(PROJECT_VERSION "${VERSION}") set(Header_Files "${no_lib_project_name}.h") set(Source_Files "${no_lib_project_name}.c") add_library("${PROJECT_NAME}" "${Header_Files}" "${Source_Files}") include(GNUInstallDirs) target_include_directories( "${PROJECT_NAME}" PUBLIC "$" "$" "$" ) target_compile_features("${PROJECT_NAME}" PRIVATE c_std_99) set(config_file "${CMAKE_BINARY_DIR}/include/${no_lib_project_name}_config.h") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${config_file}") if(CMAKE_C_COMPILER_ID STREQUAL "GNU") set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -Wstrict-prototypes -Wconversion -Og -ggdb3 -ftree-vectorize") set(CMAKE_C_FLAGS_RELEASE "-Wall -Wextra -Wstrict-prototypes -Wconversion -O3 -fomit-frame-pointer -funroll-loops -ftree-vectorize -DNDEBUG") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -Wstrict-prototypes -Wconversion -ggdb3 -O3 -funroll-loops -ftree-vectorize -DNDEBUG") set(CMAKE_C_FLAGS_MINSIZEREL "-Wall -Wextra -Wstrict-prototypes -Wconversion -Os -fomit-frame-pointer -ftree-vectorize -DNDEBUG") endif(CMAKE_C_COMPILER_ID STREQUAL "GNU") if(CMAKE_C_COMPILER_ID STREQUAL Clang OR CMAKE_C_COMPILER_ID STREQUAL AppleClang) set(CMAKE_C_FLAGS_DEBUG "-Wall -Wextra -Wstrict-prototypes -Wconversion -O0 -ggdb3 -ftree-vectorize") set(CMAKE_C_FLAGS_RELEASE "-Wall -Wextra -Wstrict-prototypes -Wconversion -O3 -fomit-frame-pointer -funroll-loops -ftree-vectorize -DNDEBUG") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-Wall -Wextra -Wstrict-prototypes -Wconversion -ggdb3 -O3 -funroll-loops -ftree-vectorize -DNDEBUG") set(CMAKE_C_FLAGS_MINSIZEREL "-Wall -Wextra -Wstrict-prototypes -Wconversion -Os -fomit-frame-pointer -ftree-vectorize -DNDEBUG") endif(CMAKE_C_COMPILER_ID STREQUAL Clang OR CMAKE_C_COMPILER_ID STREQUAL AppleClang) find_package(OpenSSL REQUIRED COMPONENTS Crypto) target_link_libraries("${PROJECT_NAME}" PRIVATE OpenSSL::Crypto) install( TARGETS "${PROJECT_NAME}" EXPORT "unofficial-${PROJECT_NAME}Config" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(cmake_config_file "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config.cmake") file(CONFIGURE OUTPUT "${cmake_config_file}" CONTENT [[ include(CMakeFindDependencyMacro) find_dependency(OpenSSL) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-@PROJECT_NAME@Targets.cmake") ]] @ONLY ) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}ConfigVersion.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${cmake_config_file}" "${VERSION_FILE_PATH}" DESTINATION "share/unofficial-${PROJECT_NAME}") install(FILES ${Header_Files} "${config_file}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install( EXPORT "unofficial-${PROJECT_NAME}Config" FILE "unofficial-${PROJECT_NAME}Targets.cmake" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") ================================================ FILE: ports/libaes-siv/header_rename.patch ================================================ diff --git a/aes_siv.c b/aes_siv.c index 00a510d..2b31ed3 100644 --- a/aes_siv.c +++ b/aes_siv.c @@ -5,7 +5,7 @@ #define _POSIX_C_SOURCE 200112L #define _ISOC99_SOURCE 1 -#include "config.h" +#include "aes_siv_config.h" #include "aes_siv.h" #include diff --git a/bench.c b/bench.c index ea5a29b..61cb485 100644 --- a/bench.c +++ b/bench.c @@ -2,7 +2,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -#include "config.h" +#include "aes_siv_config.h" #include "aes_siv.h" #define _POSIX_C_SOURCE 200112L diff --git a/tests.c b/tests.c index 996cc58..9ff9637 100644 --- a/tests.c +++ b/tests.c @@ -5,7 +5,7 @@ #define _POSIX_C_SOURCE 200112L #define _ISOC99_SOURCE 1 -#include "config.h" +#include "aes_siv_config.h" #include "aes_siv.h" #undef NDEBUG ================================================ FILE: ports/libaes-siv/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dfoxfranke/libaes_siv REF 9681279cfaa6e6399bb7ca3afbbc27fc2e19df4b SHA512 96441420339bd11f37f4feff29f9306afa60e5b07ac7e7b879778c0e6964f8f679ffb7c1deca43ca054b7851e4e7bf5fca548dc60c92469fe9d3235cb5a37776 HEAD_REF master PATCHES header_rename.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libaes-siv/usage ================================================ libaes-siv provides CMake targets: find_package(unofficial-libaes-siv CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libaes-siv::libaes-siv) ================================================ FILE: ports/libaes-siv/vcpkg.json ================================================ { "name": "libaes-siv", "version-date": "2020-10-15", "description": "An RFC5297-compliant C implementation of AES-SIV.", "homepage": "https://github.com/dfoxfranke/libaes_siv", "license": "Apache-2.0", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libaiff/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (libaiff) set(SRC iff.c aifx.c lpcm.c g711.c float32.c libaiff.c extended.c pascal.c ) if(MSVC) add_compile_options(/W4 -D_CRT_SECURE_NO_WARNINGS -DHAVE_INTTYPES_H -DHAVE_STDINT_H -DHAVE_STRING_H -DHAVE_STDLIB_H) endif() include_directories(.) add_library(libaiff ${SRC}) install( TARGETS libaiff RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES libaiff/libaiff.h libaiff/config.h libaiff/endian.h DESTINATION include/libaiff) endif() ================================================ FILE: ports/libaiff/allow_utf_16_filename.patch ================================================ diff --git a/libaiff.c b/libaiff.c index d0ad40d..e266802 100644 --- a/libaiff.c +++ b/libaiff.c @@ -44,6 +44,8 @@ static struct decoder* decoders[] = { static AIFF_Ref AIFF_ReadOpen (const char *, int); static AIFF_Ref AIFF_WriteOpen (const char *, int); +static AIFF_Ref AIFF_ReadOpenW (const wchar_t*, int); +static AIFF_Ref AIFF_WriteOpenW (const wchar_t*, int); static void AIFF_ReadClose (AIFF_Ref); static int AIFF_WriteClose (AIFF_Ref); static void* InitBuffer (AIFF_Ref, size_t); @@ -53,6 +55,21 @@ static int Prepare (AIFF_Ref); static void Unprepare (AIFF_Ref); static struct decoder* FindDecoder (IFFType); +#ifdef _WIN32 +AIFF_Ref +AIFF_OpenFileW(const wchar_t *file, int flags) +{ + AIFF_Ref ref = NULL; + + if (flags & F_RDONLY) { + ref = AIFF_ReadOpenW(file, flags); + } else if (flags & F_WRONLY) { + ref = AIFF_WriteOpenW(file, flags); + } + + return ref; +} +#endif AIFF_Ref AIFF_OpenFile(const char *file, int flags) { @@ -86,6 +103,76 @@ AIFF_CloseFile(AIFF_Ref ref) return r; } +#ifdef _WIN32 +static AIFF_Ref +AIFF_ReadOpenW(const wchar_t *file, int flags) +{ + AIFF_Ref r; + IFFHeader hdr; + + r = malloc(kAIFFRefSize); + if (!r) { + return NULL; + } + r->fd = _wfopen(file, L"rb"); + if (r->fd == NULL) { + free(r); + return NULL; + } + r->flags = F_RDONLY | flags; + if (fread(&hdr, 1, 4, r->fd) < 4) { + fclose(r->fd); + free(r); + return NULL; + } + switch (hdr.hid) { + case AIFF_TYPE_IFF: + /* Continue reading the IFF header */ + if (fread(&(hdr.len), 1, 8, r->fd) < 8) { + fclose(r->fd); + free(r); + return NULL; + } + if (hdr.len == 0) { + fclose(r->fd); + free(r); + return NULL; + } + /* + * Check the format type (AIFF or AIFC) + */ + r->format = hdr.fid; + switch (r->format) { + case AIFF_TYPE_AIFF: + case AIFF_TYPE_AIFC: + break; + default: + fclose(r->fd); + free(r); + return NULL; + } + + if (init_aifx(r) < 1) { + fclose(r->fd); + free(r); + return NULL; + } + break; + default: + fclose(r->fd); + free(r); + return NULL; + } + + r->stat = 0; + r->buffer = NULL; + r->buflen = 0; + + return r; +} + +#endif + static AIFF_Ref AIFF_ReadOpen(const char *file, int flags) { @@ -450,6 +537,89 @@ AIFF_ReadClose(AIFF_Ref r) return; } +#ifdef WIN32 +static AIFF_Ref +AIFF_WriteOpenW(const wchar_t *file, int flags) +{ + AIFF_Ref w; + IFFHeader hdr; + ASSERT(sizeof(IFFHeader) == 12); + + w = malloc(kAIFFRefSize); + if (!w) { +err0: + return NULL; + } + + /* + * Simultaneous open for reading & writing + */ + w->fd = _wfopen(file, L"w+b"); + if (w->fd == NULL) { +err1: + free(w); + goto err0; + } + hdr.hid = ARRANGE_BE32(AIFF_FORM); + w->len = 4; + hdr.len = ARRANGE_BE32(4); + if (flags & F_AIFC) + hdr.fid = ARRANGE_BE32(AIFF_AIFC); + else + hdr.fid = ARRANGE_BE32(AIFF_AIFF); + + if (fwrite(&hdr, 1, 12, w->fd) < 12) { +err2: + fclose(w->fd); + goto err1; + } + w->stat = 0; + w->segmentSize = 0; + w->buffer = NULL; + w->buflen = 0; + w->tics = 0; + + /* + * If writing AIFF-C, write the required FVER chunk + */ + if (flags & F_AIFC) { + IFFChunk chk; + uint32_t vers; + ASSERT(sizeof(IFFChunk) == 8); + + chk.id = ARRANGE_BE32(AIFF_FVER); + chk.len = ARRANGE_BE32(4); + vers = ARRANGE_BE32(AIFC_STD_DRAFT_082691); + + if (fwrite(&chk, 1, 8, w->fd) < 8 || + fwrite(&vers, 1, 4, w->fd) < 4) { + goto err2; + } + + w->len += 12; + + /* + * If no endianness specified for AIFF-C, + * default to big endian + */ + if (!(flags & (LPCM_LTE_ENDIAN | LPCM_BIG_ENDIAN))) { + flags |= LPCM_BIG_ENDIAN; + } + } else { + /* + * If writing regular AIFF, make sure we + * write big-endian data + */ + flags &= ~LPCM_LTE_ENDIAN; + flags |= LPCM_BIG_ENDIAN; + } + + w->flags = F_WRONLY | flags; + + return w; +} +#endif + static AIFF_Ref AIFF_WriteOpen(const char *file, int flags) { diff --git a/libaiff/libaiff.h b/libaiff/libaiff.h index 56fc77f..e1940a5 100644 --- a/libaiff/libaiff.h +++ b/libaiff/libaiff.h @@ -165,6 +165,7 @@ typedef struct s_Instrument Instrument ; /* == Function prototypes == */ AIFF_Ref AIFF_OpenFile(const char *, int) ; +AIFF_Ref AIFF_OpenFileW(const wchar_t *, int) ; int AIFF_CloseFile(AIFF_Ref) ; char* AIFF_GetAttribute(AIFF_Ref,IFFType) ; int AIFF_GetInstrumentData(AIFF_Ref,Instrument*) ; ================================================ FILE: ports/libaiff/buffer_uninitialized.patch ================================================ diff --git "a/libaiff.c" "b/libaiff.c" index e266802..21179f9 100644 --- "a/libaiff.c" +++ "b/libaiff.c" @@ -168,6 +168,9 @@ AIFF_ReadOpenW(const wchar_t *file, int flags) r->buffer = NULL; r->buflen = 0; + r->buffer2 = NULL; + r->buflen2 = 0; + return r; } @@ -237,6 +240,9 @@ AIFF_ReadOpen(const char *file, int flags) r->buffer = NULL; r->buflen = 0; + r->buffer2 = NULL; + r->buflen2 = 0; + return r; } @@ -577,6 +583,8 @@ err2: w->segmentSize = 0; w->buffer = NULL; w->buflen = 0; + w->buffer2 = NULL; + w->buflen2 = 0; w->tics = 0; /* @@ -659,6 +667,8 @@ err2: w->segmentSize = 0; w->buffer = NULL; w->buflen = 0; + w->buffer2 = NULL; + w->buflen2 = 0; w->tics = 0; /* ================================================ FILE: ports/libaiff/config.h ================================================ /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "marcotrillo@gmail.com" /* Define to the full name of this package. */ #define PACKAGE_NAME "LibAiff (MSVC)" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "LibAiff (MSVC) $Revision: 1.1 $" /* Define to the version of this package. */ #define PACKAGE_VERSION "$Revision: 1.1 $" ================================================ FILE: ports/libaiff/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO aifftools/libaiff REF LibAiff%205.0 FILENAME "libaiff-5.0-release.tar.gz" SHA512 7800f9a3fbd0c5a17b8cc6c9b60181131d159ab5f5fb8e7de54e8f88c151717a988231de664a635e61940267c854a9ce83d58b12e322dcdda3aa8080c7b15f66 PATCHES allow_utf_16_filename.patch buffer_uninitialized.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h" DESTINATION "${SOURCE_PATH}/libaiff") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/libaiff/*.h") foreach(HEADER ${HEADERS}) file(READ "${HEADER}" _contents) string(REPLACE "#ifdef HAVE_STDINT_H" "#if 1" _contents "${_contents}") string(REPLACE "#ifdef HAVE_STRING_H" "#if 1" _contents "${_contents}") string(REPLACE "#ifdef HAVE_STDLIB_H" "#if 1" _contents "${_contents}") string(REPLACE "#ifdef HAVE_INTTYPES_H" "#if 1" _contents "${_contents}") file(WRITE "${HEADER}" "${_contents}") endforeach() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libaiff/vcpkg.json ================================================ { "name": "libaiff", "version": "5.0", "port-version": 10, "description": "LibAiff is an open-source library, providing C applications transparent read & write operations for Audio Interchange File Format (AIFF) files, with the goal of supporting all of its features", "homepage": "https://aifftools.sourceforge.net", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libaio/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(libaio C) include(GNUInstallDirs) file(GLOB SRC_FILES src/*.c) add_library(aio ${SRC_FILES}) target_include_directories(aio PUBLIC "${PROJECT_SOURCE_DIR}/src") install(TARGETS aio) install(FILES src/libaio.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") set(PKG_CONFIG_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig.pc.in" "${PKG_CONFIG_FILE_NAME}" @ONLY) install(FILES "${PKG_CONFIG_FILE_NAME}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) ================================================ FILE: ports/libaio/pkgconfig.pc.in ================================================ prefix=@CMAKE_INSTALL_PREFIX@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ Name: libaio Description: The Linux-native asynchronous I/O facility Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -laio ================================================ FILE: ports/libaio/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://pagure.io/libaio/archive/libaio-${VERSION}/libaio-libaio-${VERSION}.tar.gz" FILENAME "libaio-${VERSION}.tar.gz" SHA512 8058c927de0b5f7079fc232d2be23272537694bf271488af1dc0330b58afc307931792ab138512c5e00aa3ea921935a6d862f575fb0cc2bf323de63d8df208cd ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/pkgconfig.pc.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libaio/vcpkg.json ================================================ { "name": "libaio", "version": "0.3.113", "description": "The Linux-native asynchronous I/O facility", "homepage": "https://pagure.io/libaio", "license": "LGPL-2.1", "supports": "linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libalkimia/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/alkimia REF "v${VERSION}" SHA512 ec7867e439178d6ed104c388c60bfe0bad223a9e35f4d9e05f2a7b3b2b2badac74b9a872f7922f58bb2b7a1127da742c430eff7caca71388085abdd1ad12cb1d HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS webengine BUILD_WITH_WEBENGINE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUNDLE_INSTALL_DIR=bin -DBUILD_TESTING=OFF -DBUILD_WITH_WEBKIT=OFF -DBUILD_APPLETS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=1 -DCMAKE_DISABLE_FIND_PACKAGE_MPIR=1 ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES BUNDLE_INSTALL_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LibAlkimia5-8.1 PACKAGE_NAME libalkimia5) vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES onlinequoteseditor5 AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/libalkimia/vcpkg.json ================================================ { "name": "libalkimia", "version": "8.1.72", "port-version": 1, "description": "Common functionality for finance applications.", "homepage": "https://community.kde.org/Alkimia/libalkimia", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ "ecm", { "name": "gettext", "host": true, "features": [ "tools" ] }, "gmp", "kf5completion", "kf5config", "kf5coreaddons", "kf5i18n", "kf5iconthemes", "kf5kio", "kf5newstuff", "kf5textwidgets", "kf5xmlgui", { "name": "qt5-base", "default-features": false }, { "name": "qt5-declarative", "default-features": false }, "qt5-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Enables tools, including Online Quotes Editor" }, "webengine": { "description": "Enables JavaScript support for parsing feature-rich websites", "dependencies": [ "qt5-webengine" ] } } } ================================================ FILE: ports/libao/0001-windows-build-patch.patch ================================================ From 129f8e155596199191cc005bcc257397d0d981ac Mon Sep 17 00:00:00 2001 From: xiaoyifang Date: Wed, 16 Feb 2022 21:58:40 +0800 Subject: [PATCH] patch windows --- include/ao/ao_private.h | 30 +++++++++++++++--------------- src/ao_wmm.c | 1 + src/audio_out.c | 1 - 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/ao/ao_private.h b/include/ao/ao_private.h index 44fa03e..c3c50aa 100644 --- a/include/ao/ao_private.h +++ b/include/ao/ao_private.h @@ -138,13 +138,13 @@ struct ao_functions { void ao_read_config_files (ao_config *config); -#define adebug(format, args...) {\ +#define adebug(format, ...) {\ if(!device || device->verbose==2){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s debug: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s debug: " format,device->funcs->driver_info()->short_name,__VA_ARGS__); \ }else{ \ - fprintf(stderr,"debug: " format,## args); \ + fprintf(stderr,"debug: " format,__VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -152,13 +152,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define averbose(format, args...) {\ +#define averbose(format, ...) {\ if(!device || device->verbose>0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,__VA_ARGS__); \ }else{ \ - fprintf(stderr,"info: " format,## args); \ + fprintf(stderr,"info: " format,__VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -166,13 +166,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define ainfo(format, args...) {\ +#define ainfo(format, ...) {\ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s info: " format,device->funcs->driver_info()->short_name,__VA_ARGS__); \ }else{ \ - fprintf(stderr,"info: " format,## args); \ + fprintf(stderr,"info: " format,__VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -180,13 +180,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define awarn(format, args...) {\ +#define awarn(format, ...) {\ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s WARNING: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s WARNING: " format,device->funcs->driver_info()->short_name,__VA_ARGS__); \ }else{ \ - fprintf(stderr,"WARNING: " format,## args); \ + fprintf(stderr,"WARNING: " format,__VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ @@ -194,13 +194,13 @@ void ao_read_config_files (ao_config *config); } \ } -#define aerror(format, args...) { \ +#define aerror(format, ...) { \ if(!device || device->verbose>=0){ \ if(strcmp(format,"\n")){ \ if(device && device->funcs->driver_info()->short_name){ \ - fprintf(stderr,"ao_%s ERROR: " format,device->funcs->driver_info()->short_name,## args); \ + fprintf(stderr,"ao_%s ERROR: " format,device->funcs->driver_info()->short_name,__VA_ARGS__); \ }else{ \ - fprintf(stderr,"ERROR: " format,## args); \ + fprintf(stderr,"ERROR: " format,__VA_ARGS__); \ } \ }else{ \ fprintf(stderr,"\n"); \ diff --git a/src/ao_wmm.c b/src/ao_wmm.c index eec6b83..d18d2a4 100644 --- a/src/ao_wmm.c +++ b/src/ao_wmm.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include diff --git a/src/audio_out.c b/src/audio_out.c index bd8f6fc..e3af366 100644 --- a/src/audio_out.c +++ b/src/audio_out.c @@ -49,7 +49,6 @@ static int dlclose(void *handle) { return 0; } #ifndef _MSC_VER # include #endif -#include #include "ao/ao.h" #include "ao_private.h" -- 2.30.0.windows.2 ================================================ FILE: ports/libao/portfile.cmake ================================================ set(NO_DLFCN ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND PATCHES "0001-windows-build-patch.patch") set(NO_DLFCN "ac_cv_header_dlfcn_h=no") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/libao REF 1.2.2 SHA512 d2736d25b60862e7d7469611ce31b1df40a4366ab160e2ff1b46919ae91692d1596c8468e4f016303b306fc3ac1bddc7b727f535a362f403c3fe7c6532e9045a HEAD_REF master PATCHES ${PATCHES} ) if(VCPKG_TARGET_IS_WINDOWS) set(ENV{LIBS} "-lwinmm -lksuser") endif() vcpkg_make_configure( SOURCE_PATH ${SOURCE_PATH} AUTORECONF OPTIONS --disable-binaries ${NO_DLFCN} ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libao/vcpkg.json ================================================ { "name": "libao", "version": "1.2.2", "port-version": 6, "description": "libao - A Cross-platform Audio Library", "homepage": "https://github.com/xiph/libao", "license": "GPL-2.0-only", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libarchive/fix-buildsystem.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2917839..6cf7cec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -411,6 +411,7 @@ IF(WIN32 AND NOT CMAKE_CL_64 AND NOT CYGWIN) SET(__GNUWIN32PATH "C:/Program Files/GnuWin32") ENDIF(WIN32 AND NOT CMAKE_CL_64 AND NOT CYGWIN) IF(DEFINED __GNUWIN32PATH AND EXISTS "${__GNUWIN32PATH}") +ELSEIF(0) # You have to add a path available DLL file into PATH environment variable. # Maybe DLL path is "C:/Program Files/GnuWin32/bin". # The zlib and the bzip2 Setup program have installed programs and DLLs into diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt index fd997db..415bd89 100644 --- a/libarchive/CMakeLists.txt +++ b/libarchive/CMakeLists.txt @@ -273,11 +273,12 @@ IF(ENABLE_INSTALL) RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - ENDIF(BUILD_SHARED_LIBS) + ELSE() INSTALL(TARGETS archive_static RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + ENDIF(BUILD_SHARED_LIBS) INSTALL_MAN(${libarchive_MANS}) INSTALL(FILES ${include_HEADERS} DESTINATION include) ENDIF() ================================================ FILE: ports/libarchive/fix-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 38664d2..d0882b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -439,6 +439,8 @@ IF(0) ENDIF(DEFINED __GNUWIN32PATH AND EXISTS "${__GNUWIN32PATH}") SET(ADDITIONAL_LIBS "") +SET(LIBARCHIVE_LIBS_PRIVATE "") # additional libs for which the pc module is unknown +SET(LIBSREQUIRED "") # pc modules for additonal libs # # Find ZLIB # @@ -455,6 +457,7 @@ IF(ZLIB_FOUND) SET(HAVE_ZLIB_H 1) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${ZLIB_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " zlib") IF(WIN32 AND NOT CYGWIN) # # Test if ZLIB_WINAPI macro is needed to use. @@ -494,6 +497,7 @@ IF(BZIP2_FOUND) SET(HAVE_BZLIB_H 1) INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${BZIP2_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " bzip2") # Test if a macro is needed for the library. TRY_MACRO_FOR_LIBRARY( "${BZIP2_INCLUDE_DIR}" "${BZIP2_LIBRARIES}" @@ -522,6 +526,8 @@ ENDIF() IF(LIBLZMA_FOUND) SET(HAVE_LIBLZMA 1) SET(HAVE_LZMA_H 1) + LIST(APPEND ADDITIONAL_LIBS LibLZMA::LibLZMA) + STRING(APPEND LIBSREQUIRED " liblzma") CMAKE_PUSH_CHECK_STATE() SET(CMAKE_REQUIRED_INCLUDES ${LIBLZMA_INCLUDE_DIR}) SET(CMAKE_REQUIRED_LIBRARIES ${LIBLZMA_LIBRARIES}) @@ -569,6 +575,7 @@ IF(LZO2_FOUND) SET(HAVE_LZO_LZO1X_H 1) INCLUDE_DIRECTORIES(${LZO2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${LZO2_LIBRARY}) + STRING(APPEND LIBSREQUIRED " lzo2") # # TODO: test for static library. # @@ -598,6 +605,7 @@ IF(LIBB2_FOUND) SET(ARCHIVE_BLAKE2 FALSE) LIST(APPEND ADDITIONAL_LIBS ${LIBB2_LIBRARY}) INCLUDE_DIRECTORIES(${LIBB2_INCLUDE_DIR}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${LIBB2_LIBRARY}) CMAKE_PUSH_CHECK_STATE() SET(CMAKE_REQUIRED_LIBRARIES ${LIBB2_LIBRARY}) SET(CMAKE_REQUIRED_INCLUDES ${LIBB2_INCLUDE_DIR}) @@ -615,6 +623,8 @@ ENDIF(LIBB2_FOUND) # Find LZ4 # IF(ENABLE_LZ4) + FIND_PACKAGE(LZ4 NAMES lz4 CONFIG REQUIRED) +elseif(0) IF (LZ4_INCLUDE_DIR) # Already in cache, be silent SET(LZ4_FIND_QUIETLY TRUE) @@ -630,6 +640,10 @@ ENDIF(ENABLE_LZ4) IF(LZ4_FOUND) SET(HAVE_LIBLZ4 1) SET(HAVE_LZ4_H 1) + SET(HAVE_LZ4HC_H 1) + LIST(APPEND ADDITIONAL_LIBS lz4::lz4) + STRING(APPEND LIBSREQUIRED " liblz4") +elseif(0) CMAKE_PUSH_CHECK_STATE() # Save the state of the variables SET(CMAKE_REQUIRED_INCLUDES ${LZ4_INCLUDE_DIR}) CHECK_INCLUDE_FILES("lz4hc.h" HAVE_LZ4HC_H) @@ -646,6 +660,8 @@ MARK_AS_ADVANCED(CLEAR LZ4_LIBRARY) # Find Zstd # IF(ENABLE_ZSTD) + FIND_PACKAGE(ZSTD NAMES zstd CONFIG REQUIRED) +elseif(0) IF (ZSTD_INCLUDE_DIR) # Already in cache, be silent SET(ZSTD_FIND_QUIETLY TRUE) @@ -665,6 +681,11 @@ ELSE(ENABLE_ZSTD) ENDIF(ENABLE_ZSTD) IF(ZSTD_FOUND) SET(HAVE_ZSTD_H 1) + SET(HAVE_LIBZSTD 1) + SET(HAVE_ZSTD_compressStream 1) + LIST(APPEND ADDITIONAL_LIBS zstd::libzstd) + STRING(APPEND LIBSREQUIRED " libzstd") +elseif(0) INCLUDE_DIRECTORIES(${ZSTD_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${ZSTD_LIBRARY}) CMAKE_PUSH_CHECK_STATE() @@ -774,6 +795,7 @@ IF(ENABLE_CNG) LA_CHECK_INCLUDE_FILE("bcrypt.h" HAVE_BCRYPT_H) IF(HAVE_BCRYPT_H) LIST(APPEND ADDITIONAL_LIBS "bcrypt") + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE "bcrypt") ENDIF(HAVE_BCRYPT_H) ELSE(ENABLE_CNG) UNSET(HAVE_BCRYPT_H CACHE) @@ -805,6 +827,7 @@ IF(ENABLE_MBEDTLS) IF(MBEDTLS_FOUND) SET(HAVE_LIBMBEDCRYPTO 1) LIST(APPEND ADDITIONAL_LIBS ${MBEDCRYPTO_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${MBEDCRYPTO_LIBRARY}) INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIRS}) LIST(APPEND CMAKE_REQUIRED_INCLUDES ${MBEDTLS_INCLUDE_DIRS}) @@ -825,6 +848,7 @@ IF(ENABLE_NETTLE) IF(NETTLE_FOUND) SET(HAVE_LIBNETTLE 1) LIST(APPEND ADDITIONAL_LIBS ${NETTLE_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " nettle") INCLUDE_DIRECTORIES(${NETTLE_INCLUDE_DIR}) LIST(APPEND CMAKE_REQUIRED_INCLUDES ${NETTLE_INCLUDE_DIR}) @@ -848,8 +872,8 @@ IF(ENABLE_OPENSSL AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") FIND_PACKAGE(OpenSSL) IF(OPENSSL_FOUND) SET(HAVE_LIBCRYPTO 1) - INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) - LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_CRYPTO_LIBRARY}) + LIST(APPEND ADDITIONAL_LIBS OpenSSL::Crypto) + STRING(APPEND LIBSREQUIRED " libcrypto") SET(CMAKE_REQUIRED_LIBRARIES ${OPENSSL_CRYPTO_LIBRARY}) SET(CMAKE_REQUIRED_INCLUDES ${OPENSSL_INCLUDE_DIR}) LA_CHECK_INCLUDE_FILE("openssl/evp.h" HAVE_OPENSSL_EVP_H) @@ -868,6 +892,7 @@ IF(NOT OPENSSL_FOUND) SET(CMAKE_REQUIRED_LIBRARIES "md") FIND_LIBRARY(LIBMD_LIBRARY NAMES md) LIST(APPEND ADDITIONAL_LIBS ${LIBMD_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${LIBMD_LIBRARY}) CMAKE_POP_CHECK_STATE() # Restore the state of the variables ENDIF(LIBMD_FOUND) ENDIF(NOT OPENSSL_FOUND) @@ -981,7 +1006,7 @@ main(int argc, char **argv) IF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${OPENSSL_LIBRARIES}) - LIST(REMOVE_DUPLICATES ADDITIONAL_LIBS) + STRING(APPEND LIBSREQUIRED " libssl") ENDIF ("${IMPLEMENTATION}" MATCHES "^OPENSSL$" AND OPENSSL_FOUND) ENDIF (ARCHIVE_CRYPTO_${ALGORITHM}_${IMPLEMENTATION}) ENDIF(NOT ARCHIVE_CRYPTO_${ALGORITHM}) @@ -1155,6 +1180,7 @@ IF(ENABLE_ICONV) IF (HAVE_ICONV) SET(HAVE_LIBICONV 1) LIST(APPEND ADDITIONAL_LIBS ${LIBICONV_PATH}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${LIBICONV_PATH}) ENDIF(HAVE_ICONV) ENDIF(NOT HAVE_ICONV AND LIBICONV_PATH) ENDIF(ICONV_INCLUDE_DIR) @@ -1188,6 +1214,7 @@ IF(ENABLE_ICONV) ENDIF(WIN32 AND NOT CYGWIN) IF(HAVE_LOCALE_CHARSET) LIST(APPEND ADDITIONAL_LIBS ${LIBCHARSET_PATH}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${LIBCHARSET_PATH}) ENDIF(HAVE_LOCALE_CHARSET) ENDIF(LIBCHARSET_PATH) ENDIF(LIBICONV_PATH) @@ -1222,6 +1249,7 @@ IF(LIBXML2_FOUND) CMAKE_PUSH_CHECK_STATE() # Save the state of the variables INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${LIBXML2_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " libxml-2.0") SET(HAVE_LIBXML2 1) # libxml2's include files use iconv.h SET(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR} ${LIBXML2_INCLUDE_DIR}) @@ -1252,6 +1280,7 @@ ELSE(LIBXML2_FOUND) CMAKE_PUSH_CHECK_STATE() # Save the state of the variables INCLUDE_DIRECTORIES(${EXPAT_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${EXPAT_LIBRARIES}) + STRING(APPEND LIBSREQUIRED " expat") SET(HAVE_LIBEXPAT 1) LA_CHECK_INCLUDE_FILE("expat.h" HAVE_EXPAT_H) CMAKE_POP_CHECK_STATE() # Restore the state of the variables @@ -1272,6 +1301,7 @@ ELSE(LIBXML2_FOUND) IF(HAVE_XMLLITE_H) SET(XMLLITE_FOUND TRUE) LIST(APPEND ADDITIONAL_LIBS "xmllite" "uuid") + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE xmllite uuid) ENDIF() ENDIF() ENDIF(EXPAT_FOUND) @@ -1301,6 +1331,7 @@ IF(POSIX_REGEX_LIB MATCHES "^(AUTO|LIBC|LIBREGEX)$") CHECK_FUNCTION_EXISTS_GLIBC(regcomp HAVE_REGCOMP_LIBREGEX) IF(HAVE_REGCOMP_LIBREGEX) LIST(APPEND ADDITIONAL_LIBS ${REGEX_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${REGEX_LIBRARY}) # # If regex.h is not found, retry looking for regex.h at # REGEX_INCLUDE_DIR @@ -1350,6 +1381,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" IF(PCREPOSIX_FOUND) INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIR}) LIST(APPEND ADDITIONAL_LIBS ${PCREPOSIX_LIBRARIES}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${PCREPOSIX_LIBRARIES}) # Test if a macro is needed for the library. TRY_MACRO_FOR_LIBRARY( "${PCRE_INCLUDE_DIR}" "${PCREPOSIX_LIBRARIES}" @@ -1361,6 +1393,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" ELSEIF(NOT WITHOUT_PCRE_STATIC AND NOT PCRE_STATIC AND PCRE_FOUND) # Determine if pcre static libraries are to be used. LIST(APPEND ADDITIONAL_LIBS ${PCRE_LIBRARIES}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${PCRE_LIBRARIES}) SET(TMP_LIBRARIES ${PCREPOSIX_LIBRARIES} ${PCRE_LIBRARIES}) MESSAGE(STATUS "trying again with -lpcre included") TRY_MACRO_FOR_LIBRARY( @@ -1376,6 +1409,7 @@ IF(NOT FOUND_POSIX_REGEX_LIB AND POSIX_REGEX_LIB MATCHES "^(AUTO|LIBPCREPOSIX)$" # ___chkstk_ms. MESSAGE(STATUS "Visual Studio build detected, trying again with -lgcc included") LIST(APPEND ADDITIONAL_LIBS ${LIBGCC_LIBRARIES}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${LIBGCC_LIBRARIES}) SET(TMP_LIBRARIES ${PCREPOSIX_LIBRARIES} ${PCRE_LIBRARIES} ${LIBGCC_LIBRARIES}) TRY_MACRO_FOR_LIBRARY( "${PCRE_INCLUDE_DIR}" "${TMP_LIBRARIES}" @@ -1954,6 +1988,7 @@ IF(ENABLE_ACL) SET(CMAKE_REQUIRED_LIBRARIES "acl") FIND_LIBRARY(ACL_LIBRARY NAMES acl) LIST(APPEND ADDITIONAL_LIBS ${ACL_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${ACL_LIBRARY}) pkg_check_modules(LIBACL libacl) IF(LIBACL_VERSION) SET(LIBACL_PKGCONFIG_VERSION ${LIBACL_VERSION}) @@ -2099,6 +2134,7 @@ int main(void) { return ACL_SYNCHRONIZE; }" HAVE_DECL_ACL_SYNCHRONIZE) SET(CMAKE_REQUIRED_LIBRARIES "richacl") FIND_LIBRARY(RICHACL_LIBRARY NAMES richacl) LIST(APPEND ADDITIONAL_LIBS ${RICHACL_LIBRARY}) + LIST(APPEND LIBARCHIVE_LIBS_PRIVATE ${RICHACL_LIBRARY}) pkg_check_modules(LIBRICHACL librichacl) IF(LIBRICHACL_VERSION) SET(LIBRICHACL_PKGCONFIG_VERSION ${LIBRICHACL_VERSION}) diff --git a/build/cmake/CreatePkgConfigFile.cmake b/build/cmake/CreatePkgConfigFile.cmake index bc5a43f..422b83b 100644 --- a/build/cmake/CreatePkgConfigFile.cmake +++ b/build/cmake/CreatePkgConfigFile.cmake @@ -8,7 +8,7 @@ SET(libdir \${exec_prefix}/lib) SET(includedir \${prefix}/include) # Now, this is not particularly pretty, nor is it terribly accurate... # Loop over all our additional libs -FOREACH(mylib ${ADDITIONAL_LIBS}) +FOREACH(mylib ${LIBARCHIVE_LIBS_PRIVATE}) # Extract the filename from the absolute path GET_FILENAME_COMPONENT(mylib_name ${mylib} NAME_WE) # Strip the lib prefix @@ -16,10 +16,6 @@ FOREACH(mylib ${ADDITIONAL_LIBS}) # Append it to our LIBS string SET(LIBS "${LIBS} -l${mylib_name}") ENDFOREACH() -# libxml2 is easier, since it's already using pkg-config -FOREACH(mylib ${PC_LIBXML_STATIC_LDFLAGS}) - SET(LIBS "${LIBS} ${mylib}") -ENDFOREACH() # FIXME: The order of the libraries doesn't take dependencies into account, # thus there's a good chance it'll make some binutils versions unhappy... # This only affects Libs.private (looked up for static builds) though. ================================================ FILE: ports/libarchive/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libarchive/libarchive REF "v${VERSION}" SHA512 33c8173e6a1bb28b1bd131400b64a618c8984efd9287adb54b5133927bd4268184e7e0fa23a81ada4a8de831ef9f4a35973cc4b795ee885eb927b4c73433b889 HEAD_REF master PATCHES fix-buildsystem.patch fix-deps.patch ) if("xar" IN_LIST FEATURES) # Cf. https://github.com/libarchive/libarchive/pull/2388: # xmllite is available since Windows XP, but mingw-w64 added it with delay. if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND FEATURES "xar/xmllite") else() list(APPEND FEATURES "xar/libxml2") endif() endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 ENABLE_BZip2 bzip2 CMAKE_REQUIRE_FIND_PACKAGE_BZip2 lz4 ENABLE_LZ4 lz4 CMAKE_REQUIRE_FIND_PACKAGE_lz4 lzma ENABLE_LZMA lzma CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA lzo ENABLE_LZO zstd ENABLE_ZSTD xar/libxml2 ENABLE_LIBXML2 xar/libxml2 CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 xar/xmllite ENABLE_WIN32_XMLLITE xar/xmllite HAVE_XMLLITE_H ) # Default crypto backend is OpenSSL, but it is ignored for DARWIN set(WRAPPER_ENABLE_OPENSSL OFF) if(NOT "crypto" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DLIBMD_FOUND=FALSE -DENABLE_OPENSSL=OFF ) elseif(VCPKG_TARGET_IS_OSX) list(APPEND FEATURE_OPTIONS -DENABLE_MBEDTLS=ON -DENABLE_OPENSSL=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_MbedTLS=ON ) else() set(WRAPPER_ENABLE_OPENSSL ON) list(APPEND FEATURE_OPTIONS -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_ZLIB=ON -DZLIB_WINAPI=OFF -DENABLE_PCREPOSIX=OFF -DPOSIX_REGEX_LIB=NONE -DENABLE_MBEDTLS=OFF -DENABLE_NETTLE=OFF -DENABLE_EXPAT=OFF -DENABLE_LibGCC=OFF -DENABLE_CNG=OFF -DENABLE_UNZIP=OFF -DENABLE_TAR=OFF -DENABLE_CPIO=OFF -DENABLE_CAT=OFF -DENABLE_XATTR=OFF -DENABLE_ACL=OFF -DENABLE_ICONV=OFF -DENABLE_LIBB2=OFF -DENABLE_TEST=OFF -DENABLE_WERROR=OFF MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_BZip2 CMAKE_REQUIRE_FIND_PACKAGE_LibLZMA CMAKE_REQUIRE_FIND_PACKAGE_LibXml2 CMAKE_REQUIRE_FIND_PACKAGE_lz4 ENABLE_LibGCC HAVE_XMLLITE_H ZLIB_WINAPI ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) foreach(header "include/archive.h" "include/archive_entry.h") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${header}" "(!defined LIBARCHIVE_STATIC)" "0") endforeach() file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libarchive/usage ================================================ libarchive is compatible with the CMake Find Module: find_package(LibArchive REQUIRED) target_link_libraries(main PRIVATE LibArchive::LibArchive) # since CMake 3.17 libarchive provides pkg-config modules: # library that can create and read several streaming archive formats libarchive ================================================ FILE: ports/libarchive/vcpkg-cmake-wrapper.cmake.in ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) set(z_vcpkg_libarchive_args "") if("REQUIRED" IN_LIST ARGS) list(APPEND z_vcpkg_libarchive_args "REQUIRED") endif() if("QUIET" IN_LIST ARGS) list(APPEND z_vcpkg_libarchive_args "QUIET") endif() _find_package(${ARGS}) if(LibArchive_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") set(z_vcpkg_libarchive_libs "") find_package(ZLIB ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs ZLIB::ZLIB) if("@ENABLE_BZip2@") find_package(BZip2 ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs BZip2::BZip2) endif() if("@ENABLE_LIBXML2@") find_package(LibXml2 ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs LibXml2::LibXml2) elseif("@ENABLE_WIN32_XMLLITE@") list(APPEND z_vcpkg_libarchive_libs xmllite) endif() if("@ENABLE_LZ4@") find_package(lz4 CONFIG ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs lz4::lz4) endif() if("@ENABLE_LZMA@") find_package(LibLZMA ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs LibLZMA::LibLZMA) endif() if("@ENABLE_LZO@") include(SelectLibraryConfigurations) find_library(Z_VCPKG_LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) find_library(Z_VCPKG_LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) select_library_configurations(Z_VCPKG_LZO) if(Z_VCPKG_LZO_LIBRARY) list(APPEND z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) else() set(LibArchive_FOUND FALSE) endif() endif() if("@ENABLE_ZSTD@") find_package(zstd ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs zstd::libzstd) endif() if("@WRAPPER_ENABLE_OPENSSL@") find_package(OpenSSL ${z_vcpkg_libarchive_args}) list(APPEND z_vcpkg_libarchive_libs OpenSSL::Crypto) endif() if(TARGET LibArchive::LibArchive) set(LibArchive_LIBRARIES LibArchive::LibArchive) if(Z_VCPKG_LZO_LIBRARY AND Z_VCPKG_LZO_LIBRARY_DEBUG) list(REMOVE_ITEM z_vcpkg_libarchive_libs ${Z_VCPKG_LZO_LIBRARY}) list(APPEND z_vcpkg_libarchive_libs "\$<\$>:${Z_VCPKG_LZO_LIBRARY_RELEASE}>" "\$<\$:${Z_VCPKG_LZO_LIBRARY_DEBUG}>" ) endif() set_property(TARGET LibArchive::LibArchive APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_libarchive_libs}) else() list(APPEND LibArchive_LIBRARIES ${z_vcpkg_libarchive_libs}) endif() unset(z_vcpkg_libarchive_libs) endif() unset(z_vcpkg_libarchive_args) cmake_policy(POP) ================================================ FILE: ports/libarchive/vcpkg.json ================================================ { "name": "libarchive", "version": "3.8.6", "description": "Library for reading and writing streaming archives", "homepage": "https://www.libarchive.org", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, "zlib" ], "default-features": [ "bzip2", "crypto", "lz4", "lzma", "xar", "zstd" ], "features": { "bzip2": { "description": "BZip2 support", "dependencies": [ "bzip2" ] }, "crypto": { "description": "Support for cryptographic features", "dependencies": [ { "name": "mbedtls", "platform": "osx" }, { "name": "openssl", "platform": "!osx" } ] }, "lz4": { "description": "Lz4 support", "dependencies": [ "lz4" ] }, "lzma": { "description": "Lzma support", "dependencies": [ "liblzma" ] }, "lzo": { "description": "Lzo support", "dependencies": [ "lzo" ] }, "xar": { "description": "Xar support", "dependencies": [ { "name": "libxml2", "default-features": false, "platform": "!windows | mingw" } ] }, "zstd": { "description": "Zstd support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libaribcaption/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xqq/libaribcaption REF "v${VERSION}" SHA512 3f3c802ae68734126d9b4a0525b3353af4c1a3807cd21bfa04b89f2092fe565cb2413bcdd0b762313d40b7e0ab75c7e8066bf4a1879c16637f35ee164f6ef6a4 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gdi ARIBCC_USE_GDI_FONT INVERTED_FEATURES renderer ARIBCC_NO_RENDERER ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ARIBCC_SHARED_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DARIBCC_BUILD_TESTS=OFF -DARIBCC_SHARED_LIBRARY=${ARIBCC_SHARED_LIBRARY} -DARIBCC_USE_EMBEDDED_FREETYPE=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME aribcaption CONFIG_PATH "lib/cmake/aribcaption") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libaribcaption/vcpkg.json ================================================ { "name": "libaribcaption", "version": "1.1.1", "description": "Portable ARIB STD-B24 caption decoder/renderer", "homepage": "https://github.com/xqq/libaribcaption", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "renderer" ], "features": { "gdi": { "description": "Enable Win32 GDI font provider", "supports": "windows", "dependencies": [ { "name": "libaribcaption", "default-features": false, "features": [ "renderer" ] } ] }, "renderer": { "description": "Build with renderer enabled", "dependencies": [ { "name": "fontconfig", "platform": "linux" }, { "name": "freetype", "platform": "android | linux" } ] } } } ================================================ FILE: ports/libass/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(libass C) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libass ${CMAKE_CURRENT_BINARY_DIR}) set(CONFIG_FREETYPE 1) set(CONFIG_FRIBIDI 1) set(CONFIG_HARFBUZZ 1) file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/libass/*.c) set(PKG_REQUIRES_LIBASS "harfbuzz >= 1.2.3, fribidi >= 0.19.1, freetype2 >= 9.17.3") set(PKG_LIBS_LIBASS) if(WIN32) set(CONFIG_DIRECTWRITE 1) list(FILTER SOURCES EXCLUDE REGEX ".*ass_coretext.c$") list(FILTER SOURCES EXCLUDE REGEX ".*ass_fontconfig.c$") #dependency fribidi does not support uwp builds, link gdi32 directly set(FONT_LIBRARY gdi32) set(PKG_LIBS_LIBASS -lgdi32) elseif(APPLE) set(CONFIG_CORETEXT 1) list(FILTER SOURCES EXCLUDE REGEX ".*ass_directwrite.c$") list(FILTER SOURCES EXCLUDE REGEX ".*ass_fontconfig.c$") include(CheckCSourceCompiles) check_c_source_compiles( " #include int main(void){ CTFontDescriptorCopyAttribute(NULL, kCTFontURLAttribute); return 0; } " CHECK_OLD_OSX ) if(CHECK_OLD_OSX) set(FONT_LIBRARY "-framework ApplicationServices -framework CoreFoundation") set(PKG_LIBS_LIBASS "-framework ApplicationServices -framework CoreFoundation") else() set(FONT_LIBRARY "-framework CoreText -framework CoreFoundation") set(PKG_LIBS_LIBASS "-framework CoreText -framework CoreFoundation") endif() elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") set(CONFIG_FONTCONFIG 1) list(FILTER SOURCES EXCLUDE REGEX ".*ass_coretext.c$") list(FILTER SOURCES EXCLUDE REGEX ".*ass_directwrite.c$") find_package(Fontconfig REQUIRED) set(FONT_LIBRARY Fontconfig::Fontconfig) set(PKG_REQUIRES_LIBASS "fontconfig >= 2.10.92, ${PKG_REQUIRES_LIBASS}") else() list(FILTER SOURCES EXCLUDE REGEX ".*ass_directwrite.c$") list(FILTER SOURCES EXCLUDE REGEX ".*ass_coretext.c$") list(FILTER SOURCES EXCLUDE REGEX ".*ass_fontconfig.c$") endif() if(NOT WIN32) set(PKG_LIBS_LIBASS "${PKG_LIBS_LIBASS} -lm") endif() find_package(Freetype REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(FRIBIDI REQUIRED IMPORTED_TARGET fribidi) pkg_check_modules(HARFBUZZ REQUIRED IMPORTED_TARGET harfbuzz) # libass use win32 api to open files on windows since https://github.com/libass/libass/commit/f664ced049394e2a5d4300ba526e206df73ec729 # so remove dependency dirent. configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in config.h) add_library(ass ${SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/libass.def) target_include_directories(ass PRIVATE PkgConfig::FRIBIDI PkgConfig::HARFBUZZ) target_link_libraries(ass PRIVATE Freetype::Freetype PkgConfig::FRIBIDI PkgConfig::HARFBUZZ ${FONT_LIBRARY}) install(TARGETS ass RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) # pkgconfig file set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${CMAKE_INSTALL_PREFIX}) set(libdir ${CMAKE_INSTALL_PREFIX}/lib) set(includedir ${CMAKE_INSTALL_PREFIX}/include) set(PACKAGE_VERSION ${LIBASS_VERSION}) if(BUILD_SHARED_LIBS) set(PKG_REQUIRES_PUBLIC ${PKG_REQUIRES_LIBASS}) set(PKG_LIBS_PUBLIC ${PKG_LIBS_LIBASS}) else() set(PKG_REQUIRES_PRIVATE ${PKG_REQUIRES_LIBASS}) set(PKG_LIBS_PRIVATE ${PKG_LIBS_LIBASS}) endif() configure_file(libass.pc.in libass.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libass.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ================================================ FILE: ports/libass/config.h.in ================================================ #define CONFIG_SOURCEVERSION "tarball: @LIBASS_VERSION@" #cmakedefine CONFIG_ICONV #cmakedefine CONFIG_FREETYPE #cmakedefine CONFIG_FRIBIDI #cmakedefine CONFIG_HARFBUZZ #cmakedefine CONFIG_LIBPNG #cmakedefine CONFIG_UNIBREAK #cmakedefine CONFIG_FONTCONFIG #cmakedefine CONFIG_CORETEXT #cmakedefine CONFIG_DIRECTWRITE #cmakedefine01 CONFIG_ASM #cmakedefine01 ARCH_X86 #cmakedefine01 CONFIG_LARGE_TILES ================================================ FILE: ports/libass/libass.def ================================================ EXPORTS ass_library_version ass_library_init ass_library_done ass_set_fonts_dir ass_set_extract_fonts ass_set_style_overrides ass_process_force_style ass_set_message_cb ass_renderer_init ass_renderer_done ass_set_frame_size ass_set_storage_size ass_set_shaper ass_set_margins ass_set_use_margins ass_set_pixel_aspect ass_set_aspect_ratio ass_set_font_scale ass_set_hinting ass_set_line_spacing ass_set_line_position ass_get_available_font_providers ass_set_fonts ass_set_selective_style_override_enabled ass_set_selective_style_override ass_fonts_update ass_set_cache_limits ass_render_frame ass_new_track ass_track_set_feature ass_free_track ass_alloc_style ass_alloc_event ass_free_style ass_free_event ass_process_data ass_process_codec_private ass_process_chunk ass_set_check_readorder ass_flush_events ass_read_file ass_read_memory ass_read_styles ass_add_font ass_clear_fonts ass_step_sub ================================================ FILE: ports/libass/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libass/libass REF ${VERSION} SHA512 08762623dd09e3034699ba9d11b70d1f6cc6b2e3b38aa897b07efef1364e76141df484e70ed27888cf3595b77d072cdb5e8abbbfa560e33ca21f87872e24df8d HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.in DESTINATION ${SOURCE_PATH}) file(COPY ${CMAKE_CURRENT_LIST_DIR}/libass.def DESTINATION ${SOURCE_PATH}) # Since libass uses automake, make and configure, we use a custom CMake file file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) file(COPY ${SOURCE_PATH}/libass/ass.h ${SOURCE_PATH}/libass/ass_types.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/ass) vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(PKGCONFIG_EXE_PATH ${PKGCONFIG} DIRECTORY) vcpkg_add_to_path(${PKGCONFIG_EXE_PATH}) vcpkg_cmake_configure( OPTIONS -DLIBASS_VERSION=${VERSION} SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/libass/vcpkg.json ================================================ { "name": "libass", "version": "0.17.4", "description": "libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format", "homepage": "https://github.com/libass/libass", "license": "ISC", "dependencies": [ { "name": "fontconfig", "platform": "linux" }, "freetype", "fribidi", "harfbuzz", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libassert/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jeremy-rifkin/libassert REF "v${VERSION}" SHA512 877f7ddac1b3ffa77d6c30b9aa4c6bf2a32bd3089b5348b75b4f52ef474cf6ee1f754bab5f0396e3ee3df83f9a438a5154c0fefce683c479b2f3a8adaef3c0a7 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBASSERT_USE_EXTERNAL_CPPTRACE=ON -DLIBASSERT_USE_EXTERNAL_MAGIC_ENUM=ON -DLIBASSERT_BUILD_SHARED=${BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME libassert CONFIG_PATH lib/cmake/libassert ) vcpkg_copy_pdbs() file(APPEND "${CURRENT_PACKAGES_DIR}/share/libassert/libassert-config.cmake" "find_dependency(magic_enum)") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libassert/vcpkg.json ================================================ { "name": "libassert", "version": "2.2.1", "description": "The most over-engineered C++ assertion library", "homepage": "https://github.com/jeremy-rifkin/libassert", "license": "MIT", "supports": "!uwp", "dependencies": [ "cpptrace", "magic-enum", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libassuan/cross-tools.patch ================================================ diff --git a/src/Makefile.am b/src/Makefile.am index 6b9a46d..5156865 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -19,6 +19,13 @@ # SPDX-License-Identifier: LGPL-2.1+ ## Process this file with automake to produce Makefile.in +# Building host tools for native triplet, or not at all +CPPFLAGS_FOR_BUILD = $(CPPFLAGS) +CFLAGS_FOR_BUILD = $(CFLAGS) +LDFLAGS_FOR_BUILD = $(LDFLAGS) +# Using native tools, either this build or from host triplet +HOST_TOOLS_PREFIX ?= . + pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libassuan.pc @@ -152,6 +159,6 @@ mkheader: mkheader.c Makefile $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) \ $(LDFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c -assuan.h: assuan.h.in mkheader$(EXEEXT_FOR_BUILD) $(parts_of_assuan_h) - ./mkheader$(EXEEXT_FOR_BUILD) $(host_os) $(srcdir)/assuan.h.in \ +assuan.h: assuan.h.in $(HOST_TOOLS_PREFIX)/mkheader$(EXEEXT_FOR_BUILD) $(parts_of_assuan_h) + $(HOST_TOOLS_PREFIX)/mkheader$(EXEEXT_FOR_BUILD) $(host_os) $(srcdir)/assuan.h.in \ $(PACKAGE_VERSION) $(VERSION_NUMBER) >$@ ================================================ FILE: ports/libassuan/portfile.cmake ================================================ vcpkg_download_distfile(tarball URLS "https://gnupg.org/ftp/gcrypt/libassuan/libassuan-${VERSION}.tar.bz2" "https://mirrors.dotsrc.org/gcrypt/libassuan/libassuan-${VERSION}.tar.bz2" "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/libassuan/libassuan-${VERSION}.tar.bz2" FILENAME "libassuan-${VERSION}.tar.bz2" SHA512 a591eda350ecbf4fe8568b5087f69830df31f36ec67e2a50672aacea9bee16020f374a0bface459aeac1897c048072415ab5962a97034ce6fa413100b2a427fb ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${tarball}" PATCHES cross-tools.patch ) if(VCPKG_CROSSCOMPILING) set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/libgpg-error/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-doc OPTIONS_RELEASE "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" OPTIONS_DEBUG "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() set(install_prefix "${CURRENT_INSTALLED_DIR}") if(VCPKG_HOST_IS_WINDOWS) string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" install_prefix "${install_prefix}") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/libassuan-config" "${install_prefix}" "`dirname $0`/../../..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/libassuan-config" "${install_prefix}" "`dirname $0`/../../../..") endif() if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/mkheader${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" USE_SOURCE_PERMISSIONS ) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/libassuan/vcpkg.json ================================================ { "name": "libassuan", "version": "3.0.2", "description": "A library implementing the so-called Assuan protocol", "homepage": "https://gnupg.org/software/libassuan/index.html", "license": "LGPL-2.1-or-later", "supports": "!windows | mingw", "dependencies": [ { "name": "libassuan", "host": true }, "libgpg-error", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libatomic-ops/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bdwgc/libatomic_ops REF "v${VERSION}" SHA512 3980e52faaef12fe5794389a88c985124b408e7c2051aae5966939ee1577cd0b7a9e807a373791086f38fb82a7dc2bd062ebbe8efc1124383060f78625fb99cc HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -Denable_docs=OFF OPTIONS_DEBUG -Dinstall_headers=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME atomic_ops CONFIG_PATH lib/cmake/atomic_ops) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libatomic-ops/vcpkg.json ================================================ { "name": "libatomic-ops", "version": "7.10.0", "port-version": 1, "description": "The atomic_ops project (Atomic memory update operations portable implementation)", "homepage": "https://github.com/bdwgc/libatomic_ops", "license": "MIT OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libavif/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a28e6c3..aaeb5d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -248,6 +248,7 @@ if(AVIF_LIBYUV_ENABLED) target_compile_definitions(avif_obj PRIVATE -DAVIF_LIBYUV_ENABLED=1) avif_target_link_library(yuv::yuv) set(AVIF_PKG_CONFIG_EXTRA_LIBS_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_LIBS_PRIVATE} -lyuv") + set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} libjpeg") set(AVIF_LIB_USE_CXX ON) endif(AVIF_LIBYUV_ENABLED) @@ -849,13 +850,38 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) # Enable CMake configs in VCPKG mode if(BUILD_SHARED_LIBS OR VCPKG_TARGET_TRIPLET) - install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}) + install(EXPORT ${PROJECT_NAME}-config DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} FILE ${PROJECT_NAME}-targets.cmake) + if(NOT BUILD_SHARED_LIBS) + target_include_directories(avif_static PUBLIC $) + set(avif_static_link_libs yuv) + set(avif_find_dependencies "find_dependency(libyuv CONFIG)\n") + if(AVIF_CODEC_AOM_ENABLED) + find_package(AOM CONFIG REQUIRED) + list(APPEND avif_static_link_libs AOM::aom) + string(APPEND avif_find_dependencies "find_dependency(AOM CONFIG)\n") + endif() + if(AVIF_CODEC_DAV1D_ENABLED) + list(APPEND avif_static_link_libs ${DAV1D_LIBRARIES} ${CMAKE_DL_LIBS}) + endif() + if(UNIX OR MINGW) + list(APPEND avif_static_link_libs Threads::Threads m) + string(APPEND avif_find_dependencies "set(THREADS_PREFER_PTHREAD_FLAG ON)\nfind_dependency(Threads)\n") + endif() + target_link_libraries(avif_static INTERFACE ${avif_static_link_libs}) + endif() + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" +"# Generated by vcpkg +include(CMakeFindDependencyMacro) +${avif_find_dependencies} +include(\"\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}-targets.cmake\") +") include(CMakePackageConfigHelpers) write_basic_package_version_file( ${PROJECT_NAME}-config-version.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} ) endif() ================================================ FILE: ports/libavif/disable-source-utf8.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index baf5964..a28e6c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -296,8 +296,8 @@ if(MSVC) # A C4556 warning will be generated on violation. # Commonly used /utf-8 flag assumes UTF-8 for both source and console, which is usually not the case. # Warnings can be suppressed but there will still be random characters printed to the console. - /source-charset:utf-8 - /execution-charset:us-ascii + #/source-charset:utf-8 + #/execution-charset:us-ascii > ) endif() ================================================ FILE: ports/libavif/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AOMediaCodec/libavif REF "v${VERSION}" SHA512 ca32105d2b175a315a04404df660b685653f082ebc71233f35b8b5d2d467b1b1d714e3ffc63fcf06371e8cedeabfa99c97f187466897423fb221d32648a161c4 HEAD_REF master PATCHES dependencies.diff disable-source-utf8.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party") set(FEATURE_OPTIONS "") if("aom" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DAVIF_CODEC_AOM=SYSTEM") endif() if("dav1d" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DAVIF_CODEC_DAV1D=SYSTEM") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libavif/vcpkg.json ================================================ { "name": "libavif", "version-semver": "1.4.0", "description": "Library for encoding and decoding AVIF files", "homepage": "https://github.com/AOMediaCodec/libavif", "license": "BSD-2-Clause AND Apache-2.0", "dependencies": [ "libyuv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "aom": { "description": "AV1 codec library", "dependencies": [ "aom" ] }, "dav1d": { "description": "dav1d decoder library", "dependencies": [ "dav1d" ] } } } ================================================ FILE: ports/libb2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BLAKE2/libb2 REF 2c5142f12a2cd52f3ee0a43e50a3a76f75badf85 SHA512 cf29cf9391ae37a978eb6618de6f856f3defa622b8f56c2d5a519ab34fd5e4d91f3bb868601a44e9c9164a2992e80dde188ccc4d1605dffbdf93687336226f8d HEAD_REF master ) vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-native # toolchain may supply -march=native ax_cv_check_cflags___O3=no # vcpkg provides actual flag ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libb2/vcpkg.json ================================================ { "name": "libb2", "version": "0.98.1", "port-version": 7, "description": "C library providing BLAKE2b, BLAKE2s, BLAKE2bp, BLAKE2sp", "homepage": "https://github.com/BLAKE2/libb2", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libbacktrace/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) message("libbacktrace cannot be built using MSVC on Windows due to relying on the C++ unwind API https://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ianlancetaylor/libbacktrace REF 1db85642e3fca189cf4e076f840a45d6934b2456 SHA512 a7f7a1233f551326e4ae1ba91db0fb905cf2737c20284c9aaf26cfe448b2a54efeaaa678e3abccbe0856c2a19019412208da7c1a82d319a58fe4d66d0a952aa0 ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libbacktrace/vcpkg.json ================================================ { "name": "libbacktrace", "version-date": "2024-11-30", "port-version": 1, "description": "The libbacktrace library may be linked into a program or library and used to produce symbolic backtraces.", "homepage": "https://github.com/ianlancetaylor/libbacktrace", "license": "BSD-3-Clause", "supports": "!windows", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libbluray/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://code.videolan.org OUT_SOURCE_PATH SOURCE_PATH REPO videolan/libbluray REF "${VERSION}" SHA512 8ee2014bfa0d44d046500818ad6f3795e01b77e4cc59d1b61ee56bfa4bfcb80e9e89ea4f452767eda3f14e6d9b5d305f0e7ed01ce00c570415958cae8ab692a4 ) if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND options -Dfontconfig=enabled) else() list(APPEND options -Dfontconfig=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Denable_tools=false -Dbdj_jar=disabled -Dfreetype=enabled -Dlibxml2=enabled ${options} ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libbluray/vcpkg.json ================================================ { "name": "libbluray", "version-semver": "1.4.1", "description": "Library to access Blu-Ray disks", "homepage": "https://www.videolan.org/developers/libbluray.html", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "fontconfig", "platform": "!uwp & !windows" }, "freetype", "libudfread", "libxml2", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libbson/fix-include-directory.patch ================================================ diff --git a/src/libbson/CMakeLists.txt b/src/libbson/CMakeLists.txt index 47bb0bd72f..ea76b75425 100644 --- a/src/libbson/CMakeLists.txt +++ b/src/libbson/CMakeLists.txt @@ -300,7 +300,7 @@ endif () # ENABLE_EXAMPLES # Infix directory for all libbson headers. if(NOT DEFINED BSON_INSTALL_INCLUDEDIR) - set(BSON_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/bson-${PROJECT_VERSION}") + set(BSON_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") endif() # Infix directory for all libbson CMake package files if(NOT DEFINED BSON_INSTALL_CMAKEDIR) ================================================ FILE: ports/libbson/libbson-1.0-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(libbson-static-1.0 ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG) set(BSON_DEFINITIONS "${BSON_STATIC_DEFINITIONS}") set(BSON_INCLUDE_DIRS "${BSON_STATIC_INCLUDE_DIRS}") set(BSON_LIBRARIES "${BSON_STATIC_LIBRARIES}") ================================================ FILE: ports/libbson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mongodb/mongo-c-driver REF "${VERSION}" SHA512 faa03472f646f724b10192540eaaac931f74d7c5b7f2a717b6d6f274a5ab4f2bf088b601d8d5947ae23688e225dd352f335c0234866ada080d3ad7b9190b2ac8 HEAD_REF master PATCHES fix-include-directory.patch # vcpkg legacy decision ) file(WRITE "${SOURCE_PATH}/VERSION_CURRENT" "${VERSION}") # Cannot use string(COMPARE EQUAL ...) set(ENABLE_STATIC OFF) set(ENABLE_SHARED OFF) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(ENABLE_STATIC ON) else() set(ENABLE_SHARED ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # because it writes the file VERSION_CURRENT in the source directory OPTIONS "-DBUILD_VERSION=${VERSION}" -DENABLE_BSON=ON -DENABLE_EXAMPLES=OFF -DENABLE_MONGOC=OFF -DENABLE_SASL=OFF -DENABLE_SNAPPY=OFF -DENABLE_SRV=OFF -DENABLE_SSL=OFF -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_SHARED=${ENABLE_SHARED} -DENABLE_TESTS=OFF -DBUILD_TESTING=OFF -DENABLE_UNINSTALL=OFF -DENABLE_ZLIB=SYSTEM -DENABLE_ZSTD=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME "bson-${VERSION}" CONFIG_PATH "lib/cmake/bson-${VERSION}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/bson/macros.h" "#define BSON_MACROS_H" "#define BSON_MACROS_H\n#ifndef BSON_STATIC\n#define BSON_STATIC\n#endif") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/mongo-c-driver" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/THIRD_PARTY_NOTICES" "${SOURCE_PATH}/src/libbson/THIRD_PARTY_NOTICES" ) ================================================ FILE: ports/libbson/usage ================================================ libbson provides CMake targets: find_package(bson CONFIG REQUIRED) target_link_libraries(main PRIVATE $,bson::static,bson::shared>) ================================================ FILE: ports/libbson/vcpkg.json ================================================ { "name": "libbson", "version": "2.2.3", "description": "libbson is a library providing useful routines related to building, parsing, and iterating BSON documents.", "homepage": "https://github.com/mongodb/mongo-c-driver/tree/master/src/libbson", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libcaer/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com/inivation/ OUT_SOURCE_PATH SOURCE_PATH REPO dv/libcaer REF "${VERSION}" SHA512 651e7e92730be6e10e1efab9c11a111e99b338a29239a79d61169c8130c4149eda99a624205db36c4a21da023ff1525f31c4175947f72c78bc2a8b40c9d2c2ab HEAD_REF master ) find_program(PKGCONFIG NAMES pkgconf PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf" NO_DEFAULT_PATH REQUIRED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opencv ENABLE_OPENCV ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # writes to include/libcaer/libcaer.h OPTIONS ${FEATURE_OPTIONS} -DEXAMPLES_INSTALL=OFF -DBUILD_CONFIG_VCPKG=ON "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") set(stdatomic_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/LICENSE for simple-stdatomic (x86,x64 MSVC)") file(COPY_FILE "${SOURCE_PATH}/thirdparty/simple-stdatomic/LICENSE" "${stdatomic_license}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${stdatomic_license}") ================================================ FILE: ports/libcaer/vcpkg.json ================================================ { "name": "libcaer", "version": "3.3.17", "description": "Minimal C library to access, configure and get data from neuromorphic sensors and processors.", "homepage": "https://gitlab.com/inivation/dv/libcaer", "license": "BSD-2-Clause AND Apache-2.0", "supports": "!(arm & windows & !mingw)", "dependencies": [ "libusb", { "name": "pkgconf", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "opencv": { "description": "Enable support for frame enhancements using OpenCV", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "fs", "intrinsics", "thread" ] } ] } } } ================================================ FILE: ports/libcamera/fix-absolute-paths.patch ================================================ diff --git a/src/v4l2/libcamerify.in b/src/v4l2/libcamerify.in index c4ea273f..d4e39c1b 100755 --- a/src/v4l2/libcamerify.in +++ b/src/v4l2/libcamerify.in @@ -32,14 +32,25 @@ while [ $# -gt 0 ]; do shift done +SCRIPT=$(realpath "$0") +SCRIPTPATH=$(dirname "$SCRIPT") + [ $debug -gt 0 ] && loglevel=V4L2Compat:0 [ $debug -gt 1 ] && loglevel=0 [ "$loglevel" != "" ] && export LIBCAMERA_LOG_LEVELS=$loglevel if [ "$LD_PRELOAD" = "" ] ; then - LD_PRELOAD='@LIBCAMERA_V4L2_SO@' + if [ $debug = 0 ] ; then + LD_PRELOAD="$SCRIPTPATH/../v412-compat.so" + else + LD_PRELOAD="$SCRIPTPATH/../../v412-compat.so" + fi else - LD_PRELOAD="$LD_PRELOAD "'@LIBCAMERA_V4L2_SO@' + if [ $debug = 0 ] ; then + LD_PRELOAD="$LD_PRELOAD " "$SCRIPTPATH/../v412-compat.so" + else + LD_PRELOAD="$LD_PRELOAD " "$SCRIPTPATH/../../v412-compat.so" + fi fi export LD_PRELOAD ================================================ FILE: ports/libcamera/portfile.cmake ================================================ vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://git.libcamera.org/libcamera/libcamera.git REF 058f589ae36170935e537910f2c303b1c3ea03b3 FETCH_REF "v${VERSION}" HEAD_REF master PATCHES fix-absolute-paths.patch ) vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages( PYTHON_VERSION 3 PYTHON_EXECUTABLE "${PYTHON3}" PACKAGES "jinja2" "PyYaml" "ply" ) # Scripts are invoking 'openssl' by name vcpkg_host_path_list(APPEND ENV{PATH} "${CURRENT_HOST_INSTALLED_DIR}/tools/openssl") vcpkg_list(SET options) if("tracing" IN_LIST FEATURES) list(APPEND options "-Dtracing=enabled") else() list(APPEND options "-Dtracing=disabled") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -Dcam=disabled # This is a test application -Ddocumentation=disabled -Dgstreamer=enabled -Dlc-compliance=disabled # Test appplication -Dpycamera=disabled # experimental feature, going to leave for later -Dqcam=disabled # Test application -Dtest=false # Unit tests -Dv4l2=enabled -Dudev=enabled ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.rst") ================================================ FILE: ports/libcamera/vcpkg.json ================================================ { "name": "libcamera", "version": "0.5.0", "port-version": 1, "description": "A complex camera support library for Linux, Android, and ChromeOS", "homepage": "https://git.libcamera.org/libcamera/libcamera.git/", "license": "LGPL-2.1-or-later", "supports": "linux", "dependencies": [ "elfutils", "glib", "gstreamer", "libgnutls", "libunwind", "libyaml", "libyuv", { "name": "openssl", "host": true, "features": [ "tools" ] }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "tracing": { "description": "Enable tracing", "dependencies": [ "liblttng-ust" ] } } } ================================================ FILE: ports/libcanberra/03_onlyshowin_unity.patch ================================================ Description: Play login sound in Unity too if it's enabled (it's disabled by default in Ubuntu) Author: Michael Terry Bug-Ubuntu: https://launchpad.net/bugs/803519 Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38883 Index: libcanberra/src/libcanberra-login-sound.desktop.in =================================================================== --- libcanberra.orig/src/libcanberra-login-sound.desktop.in 2011-07-01 15:02:59.870772598 +0100 +++ libcanberra/src/libcanberra-login-sound.desktop.in 2011-07-01 15:03:03.554772637 +0100 @@ -3,7 +3,7 @@ Name=GNOME Login Sound Comment=Plays a sound whenever you log in Exec=@bindir@/canberra-gtk-play --id="desktop-login" --description="GNOME Login" -OnlyShowIn=GNOME; +OnlyShowIn=GNOME;Unity; AutostartCondition=GSettings org.gnome.desktop.sound event-sounds X-GNOME-Autostart-Phase=Application X-GNOME-Provides=login-sound ================================================ FILE: ports/libcanberra/gtk_dont_assume_x11.patch ================================================ From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Fri, 9 Nov 2012 16:16:40 +0000 Subject: gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland --- src/canberra-gtk-module.c | 15 +++++++++++++++ src/canberra-gtk.c | 5 +++++ 2 files changed, 20 insertions(+) diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c index 67791f0..c1532ab 100644 --- a/src/canberra-gtk-module.c +++ b/src/canberra-gtk-module.c @@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, @@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, @@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) { gboolean ret = FALSE; Atom xembed; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return FALSE; +#endif + /* Gnome Panel applets are XEMBED windows. We need to make sure we * ignore them */ diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c index 34446f5..08cb668 100644 --- a/src/canberra-gtk.c +++ b/src/canberra-gtk.c @@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) { guchar *data = NULL; gint ret = -1; +#ifdef GDK_IS_X11_DISPLAY + if (!GDK_IS_X11_DISPLAY(d)) + return 0; +#endif + if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 0, G_MAXLONG, False, XA_CARDINAL, &type_return, -- cgit v0.12 ================================================ FILE: ports/libcanberra/lc-messages.patch ================================================ diff --git a/src/sound-theme-spec.c b/src/sound-theme-spec.c index 32affd0..371e380 100644 --- a/src/sound-theme-spec.c +++ b/src/sound-theme-spec.c @@ -28,6 +28,9 @@ #include #include +#ifndef LC_MESSAGES +#include +#endif #include "sound-theme-spec.h" #include "malloc.h" ================================================ FILE: ports/libcanberra/ltdl.patch ================================================ diff --git a/configure.ac b/configure.ac index f68602d..a4e24b3 100644 --- a/configure.ac +++ b/configure.ac @@ -140,8 +140,12 @@ dnl We don't need any special variable for this though, since the user dnl can give the proper place to find libltdl through the standard dnl variables like LDFLAGS and CPPFLAGS. +LTDL_INIT +if test -n "$LTDL_LDFLAGS"; then + LDFLAGS="$LDFLAGS $LTDL_LDFLAGS" +fi AC_CHECK_HEADER([ltdl.h], - [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])], + [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL="-lltdl $LTDL_LDFLAGS $lt_cv_dlopen_libs"], [LIBLTDL=])], [LIBLTDL=]) AS_IF([test "x$LIBLTDL" = "x"], diff --git a/libcanberra.pc.in b/libcanberra.pc.in index 0a5c7a1..a6a989b 100644 --- a/libcanberra.pc.in +++ b/libcanberra.pc.in @@ -7,5 +7,6 @@ Name: libcanberra Description: Event Sound API Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lcanberra @PTHREAD_LIBS@ +Libs.private: @LIBLTDL@ Cflags: -D_REENTRANT -I${includedir} Requires: ================================================ FILE: ports/libcanberra/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} if(VCPKG_TARGET_IS_OSX) message("${PORT} currently requires the following libraries from the system package manager:\n automake\n libtool\n\nThey can be installed with brew install automake libtool") else() message("${PORT} currently requires the following libraries from the system package manager:\n automake\n libtool\n ltdl-dev\n\nThey can be installed with apt-get install automake libtool ltdl-dev") endif() vcpkg_download_distfile(ARCHIVE URLS "http://0pointer.de/lennart/projects/${PORT}/${PORT}-${VERSION}.tar.xz" FILENAME "${PORT}-${VERSION}.tar.xz" SHA512 f7543582122256826cd01d0f5673e1e58d979941a93906400182305463d6166855cb51f35c56d807a56dc20b7a64f7ce4391368d24990c1b70782a7d0b4429c2 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ltdl.patch undefined_reference.diff # https://sources.debian.org/patches/libcanberra/0.30-7/ gtk_dont_assume_x11.patch # likewise 03_onlyshowin_unity.patch # likewise lc-messages.patch ) foreach(backend in oss pulse) if("${backend}" IN_LIST FEATURES) message(STATUS "Backend '${backend}' requires system libraries") endif() endforeach() vcpkg_list(SET OPTIONS) foreach(feature IN ITEMS alsa gstreamer gtk3 null oss pulse) if("${feature}" IN_LIST FEATURES) list(APPEND OPTIONS "--enable-${feature}") else() list(APPEND OPTIONS "--disable-${feature}") endif() endforeach() if(VCPKG_TARGET_IS_OSX) execute_process( COMMAND brew --prefix libtool OUTPUT_VARIABLE BREW_LIBTOOL_PATH OUTPUT_STRIP_TRAILING_WHITESPACE ) vcpkg_list(APPEND OPTIONS "CPPFLAGS=-I${BREW_LIBTOOL_PATH}/include" "LTDL_LDFLAGS=-L${BREW_LIBTOOL_PATH}/lib" cc_cv_LDFLAGS__Wl___as_needed=no cc_cv_LDFLAGS__Wl___gc_sections=no ) endif() set(ENV{GTKDOCIZE} true) vcpkg_configure_make( AUTOCONFIG SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-gtk --disable-gtk-doc --disable-lynx --disable-silent-rules --disable-tdb --disable-udev ${OPTIONS} ) vcpkg_install_make() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") # empty folder file(INSTALL "${SOURCE_PATH}/LGPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libcanberra/undefined_reference.diff ================================================ Description: Fix FTBFS with binutils-gold Author: Bart Martens Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=555081 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -341,6 +341,7 @@ libcanberra_gtk3_la_CFLAGS = \ $(GTK3_CFLAGS) libcanberra_gtk3_la_LIBADD = \ $(GTK3_LIBS) \ + -lX11 \ libcanberra.la libcanberra_gtk3_la_LDFLAGS = \ -export-dynamic -version-info $(LIBCANBERRA_GTK_VERSION_INFO) @@ -351,6 +352,8 @@ libcanberra_gtk3_module_la_CFLAGS = \ $(GTK3_CFLAGS) libcanberra_gtk3_module_la_LIBADD = \ $(GTK3_LIBS) \ + -lX11 \ + -lgmodule-2.0 \ libcanberra.la \ libcanberra-gtk3.la libcanberra_gtk3_module_la_LDFLAGS = \ @@ -379,6 +382,7 @@ libcanberra_gtk_la_CFLAGS = \ $(GTK_CFLAGS) libcanberra_gtk_la_LIBADD = \ $(GTK_LIBS) \ + -lX11 \ libcanberra.la libcanberra_gtk_la_LDFLAGS = \ -export-dynamic -version-info $(LIBCANBERRA_GTK_VERSION_INFO) @@ -389,6 +393,8 @@ libcanberra_gtk_module_la_CFLAGS = \ $(GTK_CFLAGS) libcanberra_gtk_module_la_LIBADD = \ $(GTK_LIBS) \ + -lX11 \ + -lgmodule-2.0 \ libcanberra.la \ libcanberra-gtk.la libcanberra_gtk_module_la_LDFLAGS = \ ================================================ FILE: ports/libcanberra/vcpkg.json ================================================ { "name": "libcanberra", "version": "0.30", "port-version": 4, "description": "An implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops", "homepage": "http://0pointer.de/lennart/projects/libcanberra/", "license": "LGPL-2.1-or-later", "supports": "!windows | mingw", "dependencies": [ "gettext", "libvorbis" ], "default-features": [ "defaults" ], "features": { "alsa": { "description": "Enable optional ALSA support", "dependencies": [ "alsa" ] }, "defaults": { "description": "Default features", "dependencies": [ { "name": "libcanberra", "features": [ "alsa" ], "platform": "linux" }, { "name": "libcanberra", "features": [ "null" ], "platform": "!linux" } ] }, "gstreamer": { "description": "Enable optional GStreamer support", "dependencies": [ { "name": "gstreamer", "default-features": false } ] }, "gtk3": { "description": "Enable optional GTK3 support", "dependencies": [ { "name": "gtk3", "default-features": false } ] }, "null": { "description": "Enable optional null output" }, "oss": { "description": "Enable optional OSS support" }, "pulse": { "description": "Enable optional PulseAudio support" } } } ================================================ FILE: ports/libcap/configure ================================================ #!/bin/sh set -e linkage=shared prefix= for OPTION; do case "${OPTION}" in --prefix=*) prefix="${OPTION#--prefix=}" ;; --enable-static) linkage=static ;; esac done cat > Makefile.vcpkg <\n" "\t- \n" "\t- \n\n" "It can be installed with your package manager" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --enable-tools=no --enable-python=no --enable-tests=no --enable-samples=no --enable-systemd=no --enable-pam=no ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libcgroup/vcpkg.json ================================================ { "name": "libcgroup", "version": "3.2.0", "port-version": 1, "description": "Library for working with cgroup", "homepage": "https://github.com/libcgroup/libcgroup", "license": "LGPL-2.1-only", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libcoap/portfile.cmake ================================================ # dllexport is not supported. if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile(DLLEXPORT_PATCH URLS https://github.com/obgm/libcoap/commit/0bd03b658ed2d75fdb7cb8f6add201b39b428298.patch?full_index=1 FILENAME obgm-remove-self-configure-file-0bd03b658ed2d75fdb7cb8f6add201b39b428298.patch SHA512 6c120dc278a5d73d0b9bd2f66468c822ccde80513262201119cdceb9ed6fdf2f84d473926373f18ef69d709d4e95212e484079072a52d5c65d09e4ccb82368e5 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO obgm/libcoap REF "v${VERSION}" SHA512 9f46f8293e0cfd2c6c3300693ffc8de1c2217f1cad4cd05e59ea6b6995f42d5d31ea02d4fadddd9b071f711cf651b711c2a26e4b826244fc80e014ed66f368a7 HEAD_REF main PATCHES "${DLLEXPORT_PATCH}" remove-hardcoded-tinydtls-path.patch) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES examples ENABLE_EXAMPLES dtls ENABLE_DTLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_DOCS=OFF -DDTLS_BACKEND=openssl) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libcoap") if("examples" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES coap-client coap-rd coap-server AUTO_CLEAN ) # Same condition in licoap/CMakeLists.txt if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_copy_tools( TOOL_NAMES etsi_iot_01 tiny oscore-interop-server AUTO_CLEAN ) endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libcoap/remove-hardcoded-tinydtls-path.patch ================================================ # A path to binary dir is hardcoded. # tinydtls is never used because openssl is forced. # Just remove the wrong line. --- v4.3.5-4285a765ed.clean/CMakeLists.old.txt 2024-09-06 12:13:56.000000000 +0200 +++ v4.3.5-4285a765ed.clean/CMakeLists.txt 2025-11-03 13:22:08.834295900 +0100 @@ -808,7 +808,7 @@ target_include_directories( $ $ $ - $<$,$>:${CMAKE_BINARY_DIR}/include/tinydtls> +# $<$,$>:${CMAKE_BINARY_DIR}/include/tinydtls> $<$:${GNUTLS_INCLUDE_DIR}> $<$:${MBEDTLS_INCLUDE_DIRS}> $<$:${WOLFSSL_INCLUDE_DIR}>) ================================================ FILE: ports/libcoap/vcpkg.json ================================================ { "name": "libcoap", "version-string": "4.3.5a", "description": "libcoap — A C implementation of the Constrained Application Protocol (RFC 7252)", "homepage": "https://libcoap.net/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "dtls" ], "features": { "dtls": { "description": "compile with dtls support", "dependencies": [ "openssl" ] }, "examples": { "description": "Build examples" } } } ================================================ FILE: ports/libconfig/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hyperrealm/libconfig REF "v${VERSION}" SHA512 c3ed6c8f500b449c4d94976745a3acba1c7176f87497d5cb0deb05e62f2ff009ca0636c7c9848601f6d92dd113d82983cbd1132735f0f2d4e40b32d257f4aaa7 HEAD_REF master PATCHES static-build.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libconfig) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libconfig.h" "defined(LIBCONFIG_STATIC)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libconfig.h++" "defined(LIBCONFIGXX_STATIC)" "1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libconfig/static-build.diff ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 0f2f550..4003e6c 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -49,7 +49,6 @@ set(libinc_cpp libconfig.hh) set(libsrc_cpp - ${libsrc} libconfigcpp.cc) if(MSVC) @@ -92,11 +91,13 @@ endif() if(BUILD_SHARED_LIBS) if(BUILD_CXX) + target_sources(${libname}++ PRIVATE ${libsrc}) target_compile_definitions(${libname}++ PRIVATE LIBCONFIG_STATIC) endif() else() target_compile_definitions(${libname} PUBLIC LIBCONFIG_STATIC) if(BUILD_CXX) + target_link_libraries(${libname}++ PRIVATE ${libname}) target_compile_definitions(${libname}++ PUBLIC LIBCONFIG_STATIC LIBCONFIGXX_STATIC) endif() endif() @@ -154,9 +155,9 @@ if(MSVC) endif() if(WIN32) - target_link_libraries(${libname} shlwapi) + target_link_libraries(${libname} PRIVATE shlwapi) if(BUILD_CXX) - target_link_libraries(${libname}++ shlwapi) + target_link_libraries(${libname}++ PRIVATE shlwapi) endif() endif() ================================================ FILE: ports/libconfig/vcpkg.json ================================================ { "name": "libconfig", "version": "1.8.2", "description": "C/C++ library for processing configuration files", "homepage": "https://github.com/hyperrealm/libconfig", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libconfuse/portfile.cmake ================================================ # Don't change to vcpkg_from_github: The raw repo lacks gettext macros. vcpkg_download_distfile(ARCHIVE URLS "https://github.com/libconfuse/libconfuse/releases/download/v${VERSION}/confuse-${VERSION}.tar.xz" FILENAME "libconfuse-confuse-${VERSION}.tar.xz" SHA512 93cc62d98166199315f65a2f6f540a9c0d33592b69a2c6a57fd17f132aecc6ece39b9813b96c9a49ae2b66a99b7eba1188a9ce9e360e1c5fb4b973619e7088a0 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY) vcpkg_add_to_path("${FLEX_DIR}") set(ENV{AUTOPOINT} true) # true, the program vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-examples --disable-nls ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/confuse.h" "ifdef BUILDING_STATIC" "if 1") endif() file(INSTALL "${CURRENT_PORT_DIR}/unofficial-libconfuse-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-libconfuse") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libconfuse/unofficial-libconfuse-config.cmake ================================================ if(NOT TARGET unofficial::libconfuse::libconfuse) add_library(unofficial::libconfuse::libconfuse UNKNOWN IMPORTED) get_filename_component(z_vcpkg_libconfuse_prefix "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(z_vcpkg_libconfuse_prefix "${z_vcpkg_libconfuse_prefix}" PATH) find_library(Z_VCPKG_libconfuse_LIBRARY_RELEASE NAMES confuse PATHS "${z_vcpkg_libconfuse_prefix}/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::libconfuse::libconfuse PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_vcpkg_libconfuse_prefix}/include" IMPORTED_CONFIGURATIONS RELEASE IMPORTED_LOCATION_RELEASE "${Z_VCPKG_libconfuse_LIBRARY_RELEASE}" IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" ) if("@VCPKG_BUILD_TYPE@" STREQUAL "") find_library(Z_VCPKG_libconfuse_LIBRARY_DEBUG NAMES libconfuse PATHS "${z_vcpkg_libconfuse_prefix}/debug/lib" NO_DEFAULT_PATH REQUIRED) set_property(TARGET unofficial::libconfuse::libconfuse APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(unofficial::libconfuse::libconfuse PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_libconfuse_LIBRARY_DEBUG}" IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" ) endif() unset(z_vcpkg_libconfuse_prefix) endif() ================================================ FILE: ports/libconfuse/vcpkg.json ================================================ { "name": "libconfuse", "version": "3.3", "port-version": 1, "description": "Small configuration file parser library for C", "homepage": "https://github.com/libconfuse/libconfuse", "license": "ISC", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libcopp/fix-x86-windows.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 085cc82..7da39f2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,11 @@ project( HOMEPAGE_URL "https://libcopp.atframe.work" LANGUAGES C CXX ASM) +# libcopp requires x86 to be called i386 +if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") + set(CMAKE_SYSTEM_PROCESSOR i386) +endif() + # ###################################################################################################################### include("${PROJECT_SOURCE_DIR}/project/cmake/ProjectBuildOption.cmake") ================================================ FILE: ports/libcopp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO owent/libcopp REF "v${VERSION}" SHA512 91cc3ff6c99b11992a9cc90ac614d5b4a69f50e1e0b108ce2b12ca13616e5daa490f9f734a519b6da4984ba095efc2b4bdfadc28ee6ca38a255e5a6ce50ca427 HEAD_REF v2 PATCHES fix-x86-windows.patch ) # atframework/cmake-toolset needed as a submodule for configure cmake vcpkg_from_github( OUT_SOURCE_PATH ATFRAMEWORK_CMAKE_TOOLSET REPO atframework/cmake-toolset REF 311fe9150d23f163d1b27e5244a779b184901ee3 # v1.14.9-12-g311fe91 SHA512 769f8c25b05f93ee31e5b73c5453488379ad6d643be2fe8de2ac953b45f1e1716e842ccbcbd3e8978bdd0ae5a2c9ed679402e0dbcc159b284ad158525d1aa23e HEAD_REF main ) vcpkg_list(SET options) if(VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND options -DCMAKE_CXX_EXTENSIONS=OFF -DCOMPILER_OPTION_CURRENT_MAX_CXX_STANDARD=20 ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${options} "-DATFRAMEWORK_CMAKE_TOOLSET_DIR=${ATFRAMEWORK_CMAKE_TOOLSET}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/BOOST_LICENSE_1_0.txt" "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libcopp) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libcopp/libcopp-config.cmake" "set(\${CMAKE_FIND_PACKAGE_NAME}_SOURCE_DIR \"${SOURCE_PATH}\")" "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libcopp/vcpkg.json ================================================ { "name": "libcopp", "version": "2.3.1", "maintainers": "owent ", "description": "A cross-platfrom coroutine library for C++", "homepage": "https://github.com/owent/libcopp", "documentation": "https://libcopp.atframe.work/", "license": "MIT", "supports": "!(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libcoro/add-experimental-library.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a27a052..1a1e113 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,11 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") link_libraries(-lc++) endif() +# for C++20 std library (ex. std::stop_token) +if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Android") + add_compile_options(-fexperimental-library) +endif() + if(UNIX AND NOT APPLE) set(LINUX TRUE) endif() ================================================ FILE: ports/libcoro/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jbaldwin/libcoro REF "v${VERSION}" SHA512 a975c75b7896cefa8ca3e07a81045ddfb29f7ba9fd069d4e8d37430428fe5ce222940c9d58fd549e53be5f92d3d30c7d0c27de1564f49fbc6fb4b866712624ec HEAD_REF master PATCHES add-experimental-library.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES networking LIBCORO_FEATURE_NETWORKING tls LIBCORO_FEATURE_TLS ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBCORO_EXTERNAL_DEPENDENCIES=ON -DLIBCORO_BUILD_TESTS=OFF -DLIBCORO_BUILD_EXAMPLES=OFF -DLIBCORO_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() ================================================ FILE: ports/libcoro/vcpkg.json ================================================ { "name": "libcoro", "version": "0.15.0", "description": "C++20 coroutine library", "homepage": "https://github.com/jbaldwin/libcoro", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "networking": { "description": "Include networking features.", "supports": "linux", "dependencies": [ "c-ares" ] }, "tls": { "description": "Include SSL features.", "dependencies": [ { "name": "libcoro", "default-features": false, "features": [ "networking" ] }, "openssl" ] } } } ================================================ FILE: ports/libcorrect/fix-ninja.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e8e07e..1e8355d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,8 +31,6 @@ else() endif() endif(MSVC) -find_library(FEC fec) -CHECK_LIBRARY_EXISTS(FEC dotprod "" HAVE_LIBFEC) if(NOT CMAKE_CROSSCOMPILING) # Check if host machine can compile with SSE 4.1 intrinsic @@ -72,12 +70,13 @@ if(HAVE_SSE) else() set(correct_obj_files $ $) endif() -add_library(correct SHARED ${correct_obj_files}) -add_library(correct_static ${correct_obj_files}) -set_target_properties(correct_static PROPERTIES OUTPUT_NAME "correct") +if (BUILD_SHARED_LIBS) + add_library(correct SHARED ${correct_obj_files}) +else() + add_library(correct ${correct_obj_files}) +endif() if(HAVE_SSE) target_compile_definitions(correct PUBLIC HAVE_SSE=1) - target_compile_definitions(correct_static PUBLIC HAVE_SSE=1) endif() add_subdirectory(util) @@ -85,18 +84,8 @@ add_subdirectory(tests) add_subdirectory(tools) # add_subdirectory(benchmarks) -install(TARGETS correct correct_static - DESTINATION lib) +install(TARGETS correct + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) install(FILES ${INSTALL_HEADERS} DESTINATION "${CMAKE_INSTALL_PREFIX}/include") - -add_library(fec_shim_static EXCLUDE_FROM_ALL src/fec_shim.c ${correct_obj_files}) -set_target_properties(fec_shim_static PROPERTIES OUTPUT_NAME "fec") -add_library(fec_shim_shared SHARED EXCLUDE_FROM_ALL src/fec_shim.c ${correct_obj_files}) -set_target_properties(fec_shim_shared PROPERTIES OUTPUT_NAME "fec") -add_custom_target(fec-shim-h COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/include/fec_shim.h ${PROJECT_BINARY_DIR}/include/fec.h) -add_custom_target(shim DEPENDS fec_shim_static fec_shim_shared fec-shim-h) - -install(TARGETS fec_shim_static fec_shim_shared - DESTINATION lib - OPTIONAL) -install(FILES ${PROJECT_BINARY_DIR}/include/fec.h DESTINATION "${CMAKE_INSTALL_PREFIX}/include" OPTIONAL) ================================================ FILE: ports/libcorrect/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO quiet/libcorrect REF f5a28c74fba7a99736fe49d3a5243eca29517ae9 SHA512 1367834c2a081e007b3eeeacb5bbe912617cce97cbd19d43193078f352fef103a54f030ef61a2def4ab7517476cf6be5d6a1736e43ae84913fe84a56340b69ce HEAD_REF master PATCHES fix-ninja.patch ) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libcorrect/vcpkg.json ================================================ { "name": "libcorrect", "version-date": "2018-10-11", "description": "libcorrect is a library for Forward Error Correction", "homepage": "https://github.com/quiet/libcorrect", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libcpplocate/fix-install-paths.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 854214c..9c4d98a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,7 +124,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/cpplocate-config.cmake b/cpplocate-config.cmake index 8693fa4..cdb2828 100644 --- a/cpplocate-config.cmake +++ b/cpplocate-config.cmake @@ -26,7 +26,7 @@ macro(find_modules PREFIX) if(TARGET ${module_name}) set(MODULE_FOUND TRUE) else() - find_module("${CMAKE_CURRENT_LIST_DIR}/${PREFIX}/${module_name}/${module_name}-export.cmake") + find_module("${CMAKE_CURRENT_LIST_DIR}/${module_name}-export.cmake") endif() endforeach(module_name) endmacro() diff --git a/liblocate-config.cmake b/liblocate-config.cmake index 3bf4823..7245353 100644 --- a/liblocate-config.cmake +++ b/liblocate-config.cmake @@ -25,7 +25,7 @@ macro(find_modules PREFIX) if(TARGET ${module_name}) set(MODULE_FOUND TRUE) else() - find_module("${CMAKE_CURRENT_LIST_DIR}/${PREFIX}/${module_name}/${module_name}-export.cmake") + find_module("${CMAKE_CURRENT_LIST_DIR}/${module_name}-export.cmake") endif() endforeach(module_name) endmacro() ================================================ FILE: ports/libcpplocate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cginternals/cpplocate REF v2.3.0 SHA512 4028d552d0c3c0161d5dd5aea27bb22f0c61297a4b461a067c082cfcf84e3a709c9895453e750d819433529089011c2512293b2064c42bb5ba11f957eebc2206 HEAD_REF master PATCHES fix-install-paths.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPTION_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME cpplocate CONFIG_PATH share/cpplocate/cmake/cpplocate DO_NOT_DELETE_PARENT_CONFIG_PATH ) vcpkg_cmake_config_fixup( PACKAGE_NAME liblocate CONFIG_PATH share/cpplocate/cmake/liblocate ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/cpplocate/cmake") # Patched liblocate config file needs moving to the correct directory file(RENAME "${CURRENT_PACKAGES_DIR}/share/cpplocate/liblocate-config.cmake" "${CURRENT_PACKAGES_DIR}/share/liblocate/liblocate-config.cmake" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libcpplocate/vcpkg.json ================================================ { "name": "libcpplocate", "version-semver": "2.3.0", "description": "Cross-platform C++ library providing tools for applications to locate themselves, their data assets as well as dependent modules.", "homepage": "https://cpplocate.org/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libcrafter/fix-build-error.patch ================================================ diff --git a/libcrafter/configure.ac b/libcrafter/configure.ac index 860d98b..b04ccce 100644 --- a/libcrafter/configure.ac +++ b/libcrafter/configure.ac @@ -35,14 +35,13 @@ AC_ARG_WITH(libpcap, PCAPINC="-I$withval -I$withval/bpf" PCAPLIB="-L$withval -lpcap" elif test -f $withval/include/pcap.h -a \ - -f $withval/include/net/bpf.h -a \ -f $withval/lib/libpcap.a; then owd=`pwd` if cd $withval; then withval=`pwd`; cd $owd; fi PCAPINC="-I$withval/include" PCAPLIB="-L$withval/lib -lpcap" else - AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval) + AC_ERROR(pcap.h, or libpcap.a not found in $withval) fi ;; esac ], ================================================ FILE: ports/libcrafter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pellegre/libcrafter REF 86f81f101b5e3051ed04563b3ad3dd7a823afb21 #version-1.0 SHA512 bd0eac06896df63f0fff0ed3cf7ca5176e56615476c8134bd26f035692ab9e583f58f1f57daa7673771a710d6921c0c6a6473ab181982ad57727584f2cde56d0 HEAD_REF master PATCHES fix-build-error.patch ) vcpkg_configure_make( AUTOCONFIG SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH libcrafter OPTIONS "--with-libpcap=${CURRENT_INSTALLED_DIR}" ) vcpkg_install_make() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/libcrafter/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libcrafter/vcpkg.json ================================================ { "name": "libcrafter", "version": "1.0", "port-version": 2, "description": "Libcrafter is a high level library for C++ designed to create and decode network packets.", "homepage": "https://github.com/pellegre/libcrafter", "supports": "!windows", "dependencies": [ "libpcap" ] } ================================================ FILE: ports/libcred/disable_tests.patch ================================================ diff --git a/meson.build b/meson.build index 4de2473..d49a42a 100644 --- a/meson.build +++ b/meson.build @@ -56,8 +56,8 @@ endif install_headers('include/libcred.hpp') -executable('ex1', ['example/ex1.cpp'], link_with: credhelperlib, include_directories: ['include']) -executable('ex2', ['example/ex2.cpp'], link_with: credhelperlib, include_directories: ['include']) +#executable('ex1', ['example/ex1.cpp'], link_with: credhelperlib, include_directories: ['include']) +#executable('ex2', ['example/ex2.cpp'], link_with: credhelperlib, include_directories: ['include']) -testexe = executable('testexe', ['test/test.cpp'], link_with: credhelperlib, include_directories: ['include']) -test('test1', testexe) +#testexe = executable('testexe', ['test/test.cpp'], link_with: credhelperlib, include_directories: ['include']) +#test('test1', testexe) ================================================ FILE: ports/libcred/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mamba-org/libcred REF ${VERSION} SHA512 77470b552cafc2506f9f1be56a2cd7aa412a4b568120037bf730273b5cc7c4dbabebb0abb6b192e3aef69912c6b5721d9e80b0cae0059f4fe814a5c0a8f3dcfb HEAD_REF main PATCHES disable_tests.patch ) vcpkg_configure_meson(SOURCE_PATH "${SOURCE_PATH}") vcpkg_install_meson() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() ================================================ FILE: ports/libcred/vcpkg.json ================================================ { "name": "libcred", "version": "1.0.0", "description": "a cross-platform credentials helper library", "homepage": "https://github.com/mamba-org/libcred", "license": "MIT", "supports": "!osx & !uwp & !arm & !(windows & staticcrt) & !android", "dependencies": [ { "name": "glib", "platform": "linux" }, { "name": "libsecret", "platform": "linux" }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libcroco/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 038a3ac9d160a8cf86a8a88c34367e154ef26ede289c93349332b7bc449a5199b51ea3611cebf3a2416ae23b9e45ecf8f9c6b24ea6d16a5519b796d3c7e272d4 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) set(OPTIONS "") if(VCPKG_TARGET_IS_OSX) list(APPEND OPTIONS "--disable-Bsymbolic") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/libcroco/bin/croco-0.6-config" "${CURRENT_PACKAGES_DIR}/libcroco/debug/bin") file(COPY "${CURRENT_PORT_DIR}/unofficial-libcroco-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-libcroco") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libcroco/unofficial-libcroco-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/../libcroco/usage" usage) message(WARNING "find_package(unofficial-libcroco) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(PkgConfig) pkg_check_modules(VCPKG_LIBCROCO libcroco-0.6 IMPORTED_TARGET) if(NOT VCPKG_LIBCROCO_FOUND) set(${CMAKE_FIND_PACKAGE_NAME}_FOUND 0) elseif(NOT TARGET unofficial::libcroco::croco-0.6) add_library(unofficial::libcroco::croco-0.6 INTERFACE IMPORTED) set_target_properties(unofficial::libcroco::croco-0.6 PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::VCPKG_LIBCROCO ) endif() ================================================ FILE: ports/libcroco/usage ================================================ libcroco can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(LIBCROCO libcroco-0.6 IMPORTED_TARGET REQUIRED) target_link_libraries(main PRIVATE PkgConfig::LIBCROCO) ================================================ FILE: ports/libcroco/vcpkg.json ================================================ { "name": "libcroco", "version": "0.6.13", "port-version": 9, "description": "A standalone css2 parsing and manipulation library", "license": "LGPL-2.0-only", "dependencies": [ "glib", { "name": "libxml2", "default-features": false }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libcsv/Makefile.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 79a3527..619a253 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ lib_LTLIBRARIES = libcsv.la libcsv_la_SOURCES = libcsv.c libcsv_la_LDFLAGS = -version-info 3:3:0 - libcsv_la_CFLAGS = -Wall -Wextra + libcsv_la_CFLAGS = -Wall libcsv_includedir = $(includedir) nobase_libcsv_include_HEADERS = csv.h dist_man_MANS = csv.3 ================================================ FILE: ports/libcsv/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rgamble/libcsv REF b1d5212831842ee5869d99bc208a21837e4037d5 # v3.0.3 SHA512 2e6ea0b68768d502e9bdb3bb801a1eb64b7fb0010a5006dec1b36a0fe705ec717560ec91f586572654c015db1f0d3a6e804dbcaa666a419192e93820b2c5e891 HEAD_REF master PATCHES Makefile.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libcsv" RENAME copyright) ================================================ FILE: ports/libcsv/vcpkg.json ================================================ { "name": "libcsv", "version": "3.0.3", "port-version": 2, "description": "CSV parser and writer library", "homepage": "https://github.com/rgamble/libcsv", "license": "GPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libcuckoo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO efficient/libcuckoo REF ea8c36c65bf9cf83aaf6b0db971248c6ae3686cf SHA512 5c36ebf6047afb3fa980049dc2e38b8e34443d40cff7ba9b7ee1fa8b78ff3dd92b2d0a346667a71eec6d0bfc917b3080c883146f97681f20f71ce618eac3f37f HEAD_REF master ) # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_STRESS_TESTS=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_UNIVERSAL_BENCHMARK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libcuckoo/vcpkg.json ================================================ { "name": "libcuckoo", "version": "0.3.1", "description": "A high-performance, concurrent hash table", "homepage": "https://github.com/efficient/libcuckoo", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libcurl-simple-https/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SamuelMarks/curl-simple-https REF 5a115053ba4d249fc1af22c3673b4d014e56bcf5 SHA512 6274bfeec5235d39c627850b1b6ef03c3f1982c74f937b604137cf3cf87e982f971c4681760b42926a3fb15bc8268f2fa48c197919516066d73f53425aa24545 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBUILD_CLI=OFF" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/cmake/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libcurl-simple-https/vcpkg.json ================================================ { "name": "libcurl-simple-https", "version-date": "2022-02-14", "description": "Very simple HTTPS interface built atop libcurl", "license": "Apache-2.0 OR MIT", "supports": "!uwp", "dependencies": [ "curl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libczi/0001-support-eigen3-5.patch ================================================ diff --git a/Src/CMakeLists.txt b/Src/CMakeLists.txt index e0173eb..898c6ac 100644 --- a/Src/CMakeLists.txt +++ b/Src/CMakeLists.txt @@ -6,7 +6,7 @@ include(utilities) include(CheckCSourceCompiles) if (LIBCZI_BUILD_PREFER_EXTERNALPACKAGE_EIGEN3) - find_package (Eigen3 3.3 REQUIRED NO_MODULE) + find_package (Eigen3 REQUIRED NO_MODULE) else() include(ExternalEIGEN3) endif() ================================================ FILE: ports/libczi/portfile.cmake ================================================ set(LIBCZI_REPO_NAME ZEISS/libczi) set(LIBCZI_REPO_REF 2d6e9ac7b320373b099d55c8ebe0ac0cf16bb0da) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ${LIBCZI_REPO_NAME} REF ${LIBCZI_REPO_REF} SHA512 58b841406fa1478499db6cbae935d1b31ebfe8ba8276e92224a08ee828f617f9f51300b128728bc96ff032889cc24be1b9e9ecc033fc663acd613e2c2c93ffa5 PATCHES 0001-support-eigen3-5.patch ) # Translate enabled vcpkg features into CMake -D flags: vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTS FEATURES azureblobstore LIBCZI_BUILD_AZURESDK_BASED_STREAM curl LIBCZI_BUILD_CURL_BASED_STREAM curl LIBCZI_BUILD_PREFER_EXTERNALPACKAGE_LIBCURL ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBCZI) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTS} -DLIBCZI_DO_NOT_SET_MSVC_RUNTIME_LIBRARY=ON # set by vcpkg -DLIBCZI_BUILD_CZICMD=OFF # could be feature -DLIBCZI_BUILD_DYNLIB=${BUILD_SHARED_LIBCZI} -DLIBCZI_BUILD_PREFER_EXTERNALPACKAGE_EIGEN3=ON -DLIBCZI_BUILD_PREFER_EXTERNALPACKAGE_ZSTD=ON -DLIBCZI_BUILD_UNITTESTS=OFF -DLIBCZI_ENABLE_INSTALL=ON # for cross-compilation scenarios, prevent execution of test-programs inside the libCZI-build-scripts -DCRASH_ON_UNALIGNED_ACCESS=FALSE -DIS_BIG_ENDIAN=FALSE -DNEON_INTRINSICS_CAN_BE_USED=TRUE # Intentionally empty: Must be defined to avoid try-run. # Override in triplet if needed. -DADDITIONAL_LIBS_REQUIRED_FOR_ATOMIC:STRING= # VCS metadata injection -DLIBCZI_REPOSITORY_HASH=${LIBCZI_REPO_REF} -DLIBCZI_REPOSITORY_BRANCH=unknown -DLIBCZI_REPOSITORY_REMOTE=https://github.com/${LIBCZI_REPO_NAME}.git MAYBE_UNUSED_VARIABLES CRASH_ON_UNALIGNED_ACCESS IS_BIG_ENDIAN NEON_INTRINSICS_CAN_BE_USED ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/libczi) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libczi/vcpkg.json ================================================ { "name": "libczi", "version": "0.67.2", "port-version": 1, "description": "library to read and write CZI files.", "homepage": "https://github.com/ZEISS/libczi", "license": null, "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zstd" ], "features": { "azureblobstore": { "description": "Azure Blob Storage support", "dependencies": [ "azure-identity-cpp", "azure-storage-blobs-cpp" ] }, "curl": { "description": "cURL support", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "ssl" ] } ] } } } ================================================ FILE: ports/libdatachannel/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a61757..b35e4b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) if(USE_SYSTEM_PLOG) - find_package(plog REQUIRED) + find_package(plog CONFIG REQUIRED) else() set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) add_subdirectory(deps/plog EXCLUDE_FROM_ALL) @@ -245,7 +245,8 @@ if(SCTP_DEBUG) endif() if(USE_SYSTEM_USRSCTP) - find_package(Usrsctp REQUIRED) + find_package(unofficial-usrsctp CONFIG REQUIRED) + add_library(Usrsctp::Usrsctp ALIAS unofficial::usrsctp::usrsctp) else() option(sctp_build_shared_lib OFF) option(sctp_build_programs OFF) @@ -331,7 +332,7 @@ else() target_compile_definitions(datachannel PUBLIC RTC_ENABLE_MEDIA=1) target_compile_definitions(datachannel-static PUBLIC RTC_ENABLE_MEDIA=1) if(USE_SYSTEM_SRTP) - find_package(libSRTP REQUIRED) + find_package(libSRTP CONFIG REQUIRED) if(NOT TARGET libSRTP::srtp2) add_library(libSRTP::srtp2 UNKNOWN IMPORTED) set_target_properties(libSRTP::srtp2 PROPERTIES diff --git a/cmake/LibDataChannelConfig.cmake b/cmake/LibDataChannelConfig.cmake index cb2b884..d0b77ca 100644 --- a/cmake/LibDataChannelConfig.cmake.in +++ b/cmake/LibDataChannelConfig.cmake.in @@ -1,3 +1,16 @@ @PACKAGE_INIT@ +if(NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_dependency(Threads) + find_dependency(plog CONFIG) + find_dependency(unofficial-usrsctp CONFIG) + if(NOT "@NO_MEDIA@") + find_dependency(libSRTP CONFIG) + endif() + find_dependency(OpenSSL) + find_dependency(LibJuice) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/LibDataChannelTargets.cmake") ================================================ FILE: ports/libdatachannel/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paullouisageneau/libdatachannel REF "v${VERSION}" SHA512 8731997a8923c96f80553fffa208204568ed7b7ed8a73d1c7dcc56ec8514809e2dafecde9c297668337efbe08e570c40d9f484d6fe3b784129ba86883efbb277 HEAD_REF master PATCHES dependencies.diff uwp-warnings.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES stdcall CAPI_STDCALL INVERTED_FEATURES ws NO_WEBSOCKET srtp NO_MEDIA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPREFER_SYSTEM_LIB=ON -DNO_EXAMPLES=ON -DNO_TESTS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LibDataChannel) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rtc/common.hpp" "#ifdef RTC_STATIC" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rtc/rtc.h" "#ifdef RTC_STATIC" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libdatachannel/uwp-warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b5190b..763b49e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -315,6 +315,10 @@ target_link_libraries(datachannel-static PRIVATE Usrsctp::Usrsctp plog::plog) if(WIN32) target_link_libraries(datachannel PUBLIC ws2_32) # winsock2 target_link_libraries(datachannel-static PUBLIC ws2_32) # winsock2 + if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + target_compile_options(datachannel PRIVATE /wd4996) + target_compile_options(datachannel-static PRIVATE /wd4996) + endif() endif() if (NO_WEBSOCKET) ================================================ FILE: ports/libdatachannel/vcpkg.json ================================================ { "name": "libdatachannel", "version-semver": "0.24.1", "description": "libdatachannel is a standalone implementation of WebRTC Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings for POSIX platforms (including GNU/Linux, Android, and Apple macOS) and Microsoft Windows.", "homepage": "https://github.com/paullouisageneau/libdatachannel", "license": "MPL-2.0", "supports": "!xbox", "dependencies": [ "libjuice", "nlohmann-json", "openssl", "plog", "usrsctp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ws" ], "features": { "srtp": { "description": "Use Cisco's libSRTP for media transport.", "dependencies": [ "libsrtp" ] }, "stdcall": { "description": "Use stdcall convention in callbacks" }, "ws": { "description": "Web Socket support" } } } ================================================ FILE: ports/libdatrie/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.22) project(libdatrie LANGUAGES C) option(SKIP_HEADERS "Skip headers" OFF) option(SKIP_TOOL "Skip tool" OFF) option(BUILD_SHARED_LIBS "Build shared libs" OFF) set(LIB_SRCS datrie/alpha-map.c datrie/darray.c datrie/dstring.c datrie/fileutils.c datrie/tail.c datrie/trie.c datrie/trie-string.c ) set(LIB_HDRS datrie/alpha-map.h datrie/trie.h datrie/triedefs.h datrie/typedefs.h ) if(WIN32) list(APPEND LIB_SRCS datrie/libdatrie.def) endif() include(CheckIncludeFile) include(CheckFunctionExists) set(STDC_HEADERS 1) check_include_file(dlfcn.h HAVE_DLFCN_H) check_include_file(inttypes.h HAVE_INTTYPES_H) check_include_file(limits.h HAVE_LIMITS_H) check_include_file(memory.h HAVE_MEMORY_H) check_include_file(stdint.h HAVE_STDINT_H) check_include_file(stdio.h HAVE_STDIO_H) check_include_file(stdlib.h HAVE_STDLIB_H) check_include_file(strings.h HAVE_STRINGS_H) check_include_file(string.h HAVE_STRING_H) check_include_file(sys/stat.h HAVE_SYS_STAT_H) check_include_file(sys/types.h HAVE_SYS_TYPES_H) check_include_file(unistd.h HAVE_UNISTD_H) check_function_exists(nl_langinfo HAVE_LANGINFO_CODESET) check_function_exists(locale_charset HAVE_LOCALE_CHARSET) check_function_exists(malloc HAVE_MALLOC) configure_file(config.h.cmake config.h) include_directories( "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" ) add_library(libdatrie ${LIB_SRCS}) set_target_properties(libdatrie PROPERTIES OUTPUT_NAME "datrie") if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) endif() if (NOT SKIP_TOOL) add_executable(trietool "tools/trietool.c" ) find_package(Iconv REQUIRED) target_link_libraries(trietool PRIVATE libdatrie Iconv::Iconv) install( TARGETS trietool RUNTIME DESTINATION bin ) endif() install( TARGETS libdatrie RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if (NOT SKIP_HEADERS) install( FILES ${LIB_HDRS} DESTINATION "include/datrie" ) endif() set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file(datrie-0.2.pc.in datrie-0.2.pc) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/datrie-0.2.pc" DESTINATION "lib/pkgconfig" ) ================================================ FILE: ports/libdatrie/config.h.cmake ================================================ /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #cmakedefine HAVE_DLFCN_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_INTTYPES_H /* Have nl_langinfo (CODESET) */ #cmakedefine HAVE_LANGINFO_CODESET /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LIMITS_H /* Have locale_charset() */ #cmakedefine HAVE_LOCALE_CHARSET /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #cmakedefine HAVE_MALLOC /* Define to 1 if you have the header file. */ #cmakedefine HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_STDINT_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_STDIO_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_STRING_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #cmakedefine HAVE_UNISTD_H /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #cmakedefine LT_OBJDIR /* Name of package */ #define PACKAGE "libdatrie" /* Define to the address where bug reports for this package should be sent. */ #cmakedefine PACKAGE_BUGREPORT /* Define to the full name of this package. */ #define PACKAGE_NAME "libdatrie" /* Define to the full name and version of this package. */ #cmakedefine PACKAGE_STRING /* Define to the one symbol short name of this package. */ #cmakedefine PACKAGE_TARNAME /* Define to the home page for this package. */ #define PACKAGE_URL "https://linux.thai.net/~thep/datrie/datrie.html" /* Define to the version of this package. */ #cmakedefine PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #cmakedefine STDC_HEADERS 1 /* Version number of package */ #cmakedefine VERSION "@VERSION@" /* Define to empty if `const' does not conform to ANSI C. */ #cmakedefine const /* Define to rpl_malloc if the replacement function should be used. */ #cmakedefine malloc /* Define to `unsigned int' if does not define. */ #cmakedefine size_t ================================================ FILE: ports/libdatrie/fix-exports.patch ================================================ diff -Naur ./a/libdatrie.def ./b/libdatrie.def --- a/datrie/libdatrie.def 2013-10-17 06:27:57.000000000 +0300 +++ b/datrie/libdatrie.def 2017-12-21 02:42:39.873879000 +0300 @@ -1,3 +1,4 @@ +EXPORTS alpha_map_new alpha_map_clone alpha_map_free ================================================ FILE: ports/libdatrie/portfile.cmake ================================================ set(LIBDATRIE_VERSION 0.2.13) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tlwg/libdatrie REF v${LIBDATRIE_VERSION} SHA512 38f5a3ee1f3ca0f0601a5fcfeec3892cb34857d4b4720b8e018ca1beb6520c4c10af3bd2f0e4d64367cb256e8e2bca4d0a59b1c81fb36782613d2c258b64df59 HEAD_REF master PATCHES fix-exports.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h.cmake" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES tool SKIP_TOOL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERSION=${LIBDATRIE_VERSION} ${FEATURE_OPTIONS} OPTIONS_DEBUG -DSKIP_TOOL=ON -DSKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(NOT SKIP_TOOL) vcpkg_copy_tools(TOOL_NAMES trietool AUTO_CLEAN) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libdatrie/usage ================================================ The package libdatrie can be used via CMake: find_path(LIBDATRIE_INCLUDE_DIR datrie/trie.h) find_library(LIBDATRIE_LIBRARY NAMES datrie) target_include_directories(main PRIVATE "${LIBDATRIE_INCLUDE_DIR}") target_link_libraries(main PRIVATE "${LIBDATRIE_LIBRARY}") The package libdatrie can be imported via CMake FindPkgConfig module: find_package(PkgConfig) pkg_check_modules(LIBDATRIE REQUIRED IMPORTED_TARGET datrie-0.2) target_link_libraries(main PRIVATE PkgConfig::LIBDATRIE) ================================================ FILE: ports/libdatrie/vcpkg.json ================================================ { "name": "libdatrie", "version": "0.2.13", "port-version": 1, "description": "Implementation of double-array structure for representing trie", "homepage": "https://linux.thai.net/pub/ThaiLinux/software/libthai", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tool": { "description": "Build the trietool application", "supports": "!uwp", "dependencies": [ "libiconv" ] } } } ================================================ FILE: ports/libdc1394/fix-macosx.patch ================================================ --- a/dc1394/macosx/Makefile.in +++ b/dc1394/macosx/Makefile.in @@ -119,7 +119,7 @@ AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I.@am__isrc@/.. -I.@am__isrc@/../.. depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f ================================================ FILE: ports/libdc1394/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO libdc1394/libdc1394-2 REF "${VERSION}" FILENAME "libdc1394-${VERSION}.tar.gz" SHA512 0d0b1861612f7c69753af7109ef226ea4e550353222e02663dfaac3fa8f456b94c2dd2579cac840047a42bac97692da436f10be3def1fa29109de05c1e871257 PATCHES fix-macosx.patch ) vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "--disable-examples" ac_cv_lib_raw1394_raw1394_channel_modify=no ac_cv_path_SDL_CONFIG=no ) vcpkg_install_make() file(APPEND "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libdc1394-2.pc" "\nRequires.private: libusb-1.0\n") if(NOT VCPKG_BUILD_TYPE) file(APPEND "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libdc1394-2.pc" "\nRequires.private: libusb-1.0\n") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libdc1394/vcpkg.json ================================================ { "name": "libdc1394", "version": "2.2.7", "description": "libdc1394 is a library that provides a complete high level application programming interface (API) for developers who wish to control IEEE 1394 based cameras that conform to the 1394-based Digital Camera Specifications (also known as the IIDC or DCAM Specifications).", "homepage": "https://damien.douxchamps.net/ieee1394/libdc1394", "supports": "!windows", "dependencies": [ "libusb" ] } ================================================ FILE: ports/libde265/fix-interface-include.patch ================================================ diff --git a/libde265/CMakeLists.txt b/libde265/CMakeLists.txt index 9fa2837..d17097c 100644 --- a/libde265/CMakeLists.txt +++ b/libde265/CMakeLists.txt @@ -123,7 +123,7 @@ endif() add_library(de265 ${libde265_sources} ${libde265_public_headers} ${ENCODER_OBJECTS} ${X86_OBJECTS}) target_link_libraries(de265 PRIVATE Threads::Threads) -target_include_directories(de265 PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories(de265 PRIVATE $ PUBLIC $) write_basic_package_version_file(libde265ConfigVersion.cmake COMPATIBILITY ExactVersion) ================================================ FILE: ports/libde265/pkgconfig-cxx-linkage.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4da9921..14cef0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,13 +44,16 @@ if(CMAKE_COMPILER_IS_GNUCXX OR ${CMAKE_CXX_COMPILER_ID} MATCHES Clang) add_definitions(-Wall) endif() -include(CheckCXXSymbolExists) -check_cxx_symbol_exists(_LIBCPP_VERSION cstdlib HAVE_LIBCPP) -if(HAVE_LIBCPP) - set(LIBS_PRIVATE "-lc++") -else() - set(LIBS_PRIVATE "-lstdc++") -endif() +set(LIBS_PRIVATE "") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() +endforeach() option(BUILD_SHARED_LIBS "Build shared library" ON) if(NOT BUILD_SHARED_LIBS) ================================================ FILE: ports/libde265/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO strukturag/libde265 REF "v${VERSION}" SHA512 bda239b4827c81552855dc540724b74c86f6b02bcd0fe556650bc16d665a8eed1ddbde76ac0972d26b3002b14575bb9b6f70b367c39eb7de45c5c9df324e3d05 HEAD_REF master PATCHES fix-interface-include.patch pkgconfig-cxx-linkage.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_SDL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libde265) vcpkg_copy_tools(TOOL_NAMES dec265 AUTO_CLEAN) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libde265/de265.h" "!defined(LIBDE265_STATIC_BUILD)" "0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libde265/de265.h" "!defined(LIBDE265_STATIC_BUILD)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libde265/vcpkg.json ================================================ { "name": "libde265", "version": "1.0.16", "port-version": 1, "description": "Open h.265 video codec implementation.", "homepage": "https://www.libde265.org/", "license": "LGPL-3.0-only", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libdeflate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ebiggers/libdeflate REF "v${VERSION}" SHA512 fa02fa0a6d241d3f71cf4238a3ac58968cbea0b66613c1647d6eea575379d60e93f4647f8b3921e8c31322e20521aa9953213d5465f7d10a27c57bdd7186d318 HEAD_REF master PATCHES remove_wrong_c_flags_modification.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES compression LIBDEFLATE_COMPRESSION_SUPPORT decompression LIBDEFLATE_DECOMPRESSION_SUPPORT gzip LIBDEFLATE_GZIP_SUPPORT zlib LIBDEFLATE_ZLIB_SUPPORT ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBDEFLATE_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBDEFLATE_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBDEFLATE_BUILD_SHARED_LIB=${LIBDEFLATE_BUILD_SHARED} -DLIBDEFLATE_BUILD_STATIC_LIB=${LIBDEFLATE_BUILD_STATIC} -DLIBDEFLATE_BUILD_GZIP=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdeflate") vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libdeflate.h" "defined(LIBDEFLATE_DLL)" "1") elseif(NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libdeflate.pc" " -ldeflate" " -ldeflatestatic") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libdeflate.pc" " -ldeflate" " -ldeflatestatic") endif() endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libdeflate/remove_wrong_c_flags_modification.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0acd26f..218c48b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,7 +61,6 @@ if(NOT LIBDEFLATE_BUILD_STATIC_LIB) endif() # Set common C compiler flags for all targets (the library and the programs). -set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG") set(CMAKE_C_STANDARD 99) if(NOT MSVC) check_c_compiler_flag(-Wdeclaration-after-statement HAVE_WDECLARATION_AFTER_STATEMENT) ================================================ FILE: ports/libdeflate/usage ================================================ libdeflate provides CMake targets: find_package(libdeflate CONFIG REQUIRED) target_link_libraries(main PRIVATE $,libdeflate::libdeflate_shared,libdeflate::libdeflate_static>) ================================================ FILE: ports/libdeflate/vcpkg.json ================================================ { "name": "libdeflate", "version": "1.25", "description": "libdeflate is a library for fast, whole-buffer DEFLATE-based compression and decompression.", "homepage": "https://github.com/ebiggers/libdeflate", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "compression", "decompression", "gzip", "zlib" ], "features": { "compression": { "description": "Support compression" }, "decompression": { "description": "Support decompression" }, "gzip": { "description": "Support the gzip format" }, "zlib": { "description": "Support the zlib format" } } } ================================================ FILE: ports/libdicom/cross-build.diff ================================================ diff --git a/meson.build b/meson.build index 07fd96f..6cfb436 100644 --- a/meson.build +++ b/meson.build @@ -148,6 +148,9 @@ install_headers( # src library_includes = include_directories('include') library_options = ['-DBUILDING_LIBDICOM'] +if meson.is_cross_build() + dict_lookup = [ 'dicom-dict-lookup.c', 'dicom-dict-lookup.h' ] +else dict_build = executable( 'dicom-dict-build', ['src/dicom-dict-build.c', 'src/dicom-dict-tables.c'], @@ -160,6 +163,7 @@ dict_lookup = custom_target( command : [dict_build, '@OUTPUT@'], output : ['dicom-dict-lookup.c', 'dicom-dict-lookup.h'], ) +endif library_sources = [ dict_lookup, 'src/getopt.c', ================================================ FILE: ports/libdicom/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ImagingDataCommons/libdicom REF "v${VERSION}" SHA512 dd3145721436eaab80e14750210c1b7528a0d23b77aa2e94acfd1bb24d22e3e3a616133f48244aa1927bf835a5d541c3ca3136518b740cd58114cd753f662917 HEAD_REF main PATCHES cross-build.diff ) if(VCPKG_CROSSCOMPILING) file(COPY "${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/${VERSION}/dicom-dict-lookup.c" "${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/${VERSION}/dicom-dict-lookup.h" DESTINATION "${SOURCE_PATH}" ) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES dcm-dump dcm-getframe AUTO_CLEAN) if(NOT VCPKG_CROSSCOMPILING) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dicom-dict-lookup.c" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dicom-dict-lookup.h" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/${VERSION}" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libdicom/vcpkg.json ================================================ { "name": "libdicom", "version": "1.2.0", "port-version": 1, "description": "libdicom is a C library and a set of command-line tools for reading DICOM WSI files", "homepage": "https://github.com/ImagingDataCommons/libdicom", "documentation": "https://libdicom.readthedocs.io/en/latest/", "license": "MIT", "dependencies": [ { "name": "libdicom", "host": true }, "uthash", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libdisasm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(libdisasm C) set(CMAKE_DEBUG_POSTFIX d) set(SRCS libdisasm/ia32_implicit.c libdisasm/ia32_implicit.h libdisasm/ia32_insn.c libdisasm/ia32_insn.h libdisasm/ia32_invariant.c libdisasm/ia32_invariant.h libdisasm/ia32_modrm.c libdisasm/ia32_modrm.h libdisasm/ia32_opcode_tables.c libdisasm/ia32_opcode_tables.h libdisasm/ia32_operand.c libdisasm/ia32_operand.h libdisasm/ia32_reg.c libdisasm/ia32_reg.h libdisasm/ia32_settings.c libdisasm/ia32_settings.h libdisasm/libdis.h libdisasm/qword.h libdisasm/x86_disasm.c libdisasm/x86_format.c libdisasm/x86_imm.c libdisasm/x86_imm.h libdisasm/x86_insn.c libdisasm/x86_misc.c libdisasm/x86_operand_list.c libdisasm/x86_operand_list.h ) include_directories(libdisasm) add_library(libdisasm ${SRCS}) if (MSVC) target_compile_definitions(libdisasm PRIVATE _CRT_SECURE_NO_WARNINGS) endif() install( TARGETS libdisasm RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES libdisasm/libdis.h DESTINATION include) endif() ================================================ FILE: ports/libdisasm/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO bastard/libdisasm REF 0.23 FILENAME "libdisasm-0.23.tar.gz" SHA512 29eecfbfd8168188242278a1a38f0c90770d0581a52d4600ae6343829dd0d6607b98329f12a3d7409d43dd56dca6a7d1eb25d58a001c2bfd3eb8474c0e7879e7 PATCHES sizeofvoid.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libdisasm/sizeofvoid.patch ================================================ --- a/libdisasm/x86_disasm.c +++ b/libdisasm/x86_disasm.c @@ -35,7 +35,7 @@ unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len, if ( offset >= buf_len ) { /* another caller screwup ;) */ - x86_report_error(report_disasm_bounds, (void*)(long)buf_rva+offset); + x86_report_error(report_disasm_bounds, (void*)(long)(buf_rva+offset)); return 0; } @@ -53,13 +53,13 @@ unsigned int x86_disasm( unsigned char *buf, unsigned int buf_len, /* check and see if we had an invalid instruction */ if (! size ) { - x86_report_error(report_invalid_insn, (void*)(long)buf_rva+offset ); + x86_report_error(report_invalid_insn, (void*)(long)(buf_rva+offset)); return 0; } /* check if we overran the end of the buffer */ if ( size > len ) { - x86_report_error( report_insn_bounds, (void*)(long)buf_rva + offset ); + x86_report_error( report_insn_bounds, (void*)(long)(buf_rva + offset)); MAKE_INVALID( insn, bytes ); return 0; } ================================================ FILE: ports/libdisasm/vcpkg.json ================================================ { "name": "libdisasm", "version": "0.23", "port-version": 12, "description": "x86 Disassembler Library.", "homepage": "https://bastard.sourceforge.net", "license": "ClArtistic", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libdivide/no-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 136400d..f54a722 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,15 +15,15 @@ include(CMakePushCheckState) # Maximum warnings level & warnings as error if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") # clang-cl - add_compile_options("/W4;/WX;") + add_compile_options("/W4") else() # clang native - add_compile_options("-Wall;-Wextra;-pedantic;-Werror") + add_compile_options("-Wall;-Wextra;-pedantic") endif() else() add_compile_options( - "$<$:/W4;/WX>" - "$<$:-Wall;-Wextra;-pedantic;-Werror>" - "$<$:-Wall;-Wextra;-pedantic;-Werror>" + "$<$:/W4>" + "$<$:-Wall;-Wextra;-pedantic>" + "$<$:-Wall;-Wextra;-pedantic>" ) endif() ================================================ FILE: ports/libdivide/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ridiculousfish/libdivide REF "v${VERSION}" SHA512 0a60d2ab750116faefc7db7a5209599d4fac5bfd74f7ad7377a525a65d4523855f395eb3e62e75a9eb9bf4d564354a40b2a056737bcf6c21cb6b7fb1f5918453 HEAD_REF master PATCHES no-werror.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test LIBDIVIDE_BUILD_TESTS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBDIVIDE_SSE2=OFF -DLIBDIVIDE_AVX2=OFF -DLIBDIVIDE_AVX512=OFF -DLIBDIVIDE_NEON=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libdivide/vcpkg.json ================================================ { "name": "libdivide", "version": "5.3.0", "description": "libdivide.h is a header-only C/C++ library for optimizing integer division.", "homepage": "https://github.com/ridiculousfish/libdivide", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build test" } } } ================================================ FILE: ports/libdjinterop/devendor_libs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ca2d6f..f317c4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -226,6 +226,9 @@ configure_file( include(GNUInstallDirs) set(DJINTEROP_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/djinterop") +find_package(date CONFIG REQUIRED) +find_path(SQLITE_MODERN_CPP_INCLUDE_DIRS "sqlite_modern_cpp.h") + target_include_directories( DjInterop PUBLIC $ @@ -234,13 +237,13 @@ target_include_directories( target_include_directories( DjInterop PRIVATE SYSTEM ${ZLIB_INCLUDE_DIRS} - ext/sqlite_modern_cpp - ext/date) + ${SQLITE_MODERN_CPP_INCLUDE_DIRS}) target_link_libraries( DjInterop PUBLIC - ${ZLIB_LIBRARIES}) - + ${ZLIB_LIBRARIES} + PRIVATE + date::date) if(SYSTEM_SQLITE) # Search for system installation of SQLite and use that. diff --git a/src/djinterop/util/chrono.cpp b/src/djinterop/util/chrono.cpp index 0d551dd..475aece 100644 --- a/src/djinterop/util/chrono.cpp +++ b/src/djinterop/util/chrono.cpp @@ -22,7 +22,7 @@ #include #include -#include +#include namespace djinterop::util { ================================================ FILE: ports/libdjinterop/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xsco/libdjinterop REF "${VERSION}" SHA512 3d10815725b4f7c9ae835609c1aaca5373d9b1ce010d0fdd64f8116847d90cbdcf50f160f73b590be95db49632e93bd82c4133be0bbdc84c34e543bc29573494 HEAD_REF master PATCHES devendor_libs.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/ext") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Boost=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME djinterop CONFIG_PATH lib/cmake/DjInterop) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libdjinterop/vcpkg.json ================================================ { "name": "libdjinterop", "version": "0.27.1", "description": "C++ library for access to DJ record libraries. Currently only supports Denon Engine Prime databases", "homepage": "https://github.com/xsco/libdjinterop", "license": "LGPL-3.0-or-later", "supports": "!xbox", "dependencies": [ "date", "sqlite-modern-cpp", "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libdmtx/001-cmake-add-install-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6420a813c1..749bd8d680 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) project(DMTX VERSION 0.7.5 LANGUAGES C) # DMTX library @@ -26,3 +26,10 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) add_subdirectory("test") endif() endif() + +# Add install rules +install(TARGETS dmtx + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) +install(FILES "dmtx.h" DESTINATION include) ================================================ FILE: ports/libdmtx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dmtx/libdmtx REF v${VERSION} SHA512 802a697669afeb74da0cc3736fe7301fcc1653c1e3bebc343a8baf76e52226cc5509231519343267a92e22ebdfcc5b2825380339991340f054f0a6685d2ffcdc PATCHES 001-cmake-add-install-target.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libdmtx/vcpkg.json ================================================ { "name": "libdmtx", "version": "0.7.7", "port-version": 1, "description": "Software library that enables programs to read and write Data Matrix barcodes of the modern ECC200 variety", "homepage": "https://github.com/dmtx/libdmtx", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libdmx/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libdmx REF "libdmx-${VERSION}" SHA512 2c634f57a7229e2d10b3ce700fe20d53a1578b9eb6d575eab9f0a9f228410dd6a17aa2a3d60503c0c0a14029d8a4ca8db6061b966108272ac8e8052bd3750300 HEAD_REF master ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --enable-malloc0returnsnull=yes ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}/") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libdmx/vcpkg.json ================================================ { "name": "libdmx", "version": "1.1.5", "port-version": 1, "description": "X Window System DMX (Distributed Multihead X) extension library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libdmx", "license": "MIT", "dependencies": [ "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libdshowcapture/fix_build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c88ff6..ee1688b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Mo option(BUILD_SHARED_LIBS "Build shared library" ON) -find_package(CXX11 REQUIRED) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX11_FLAGS}") +set(CMAKE_CXX_STANDARD 17) if(${CMAKE_C_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") diff --git a/source/dshow-formats.cpp b/source/dshow-formats.cpp index 4baf381..3f41a99 100644 --- a/source/dshow-formats.cpp +++ b/source/dshow-formats.cpp @@ -283,7 +283,7 @@ bool GetMediaTypeVFormat(const AM_MEDIA_TYPE &mt, VideoFormat &format) /* raw formats */ if (mt.subtype == MEDIASUBTYPE_RGB24) - format = VideoFormat::XRGB; + format = VideoFormat::RGB24; else if (mt.subtype == MEDIASUBTYPE_RGB32) format = VideoFormat::XRGB; else if (mt.subtype == MEDIASUBTYPE_ARGB32) ================================================ FILE: ports/libdshowcapture/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO obsproject/libdshowcapture REF 8878638324393815512f802640b0d5ce940161f1 SHA512 bbb9fa169bffce4f6405b8332524267f10b3e6e2dcaddcddf7ef73ffb7a6409ef4c6a13f599cab814cbf42c22690f9e24e988666886535ef9fdfb851fdb50a5c HEAD_REF master PATCHES fix_build.patch ) vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO elgatosf/capture-device-support REF fe9630974d47f51bf54826e72fb8b654e620aa93 SHA512 971185ffaf0c5777c060d3cf49ee8f907aebc8191e3ada9c9f3c4c0d553c257d13e2828c991985b9d47a446d003b26664ecec2c18c0e6c66dfdba904baee0ae6 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/external/capture-device-support") file(RENAME "${DEP_SOURCE_PATH}" "${SOURCE_PATH}/external/capture-device-support") file(REMOVE_RECURSE "${DEP_SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_build(TARGET libdshowcapture) # Copy files vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libdshowcapture.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdshowcapture.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libdshowcapture.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdshowcapture.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/dshowcapture.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_copy_pdbs() ================================================ FILE: ports/libdshowcapture/vcpkg.json ================================================ { "name": "libdshowcapture", "version-date": "2025-02-08", "description": "Free and Open Source C++11 Library for capturing DirectShow video/audio devices on windows.", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libdvdcss/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://code.videolan.org/ REPO videolan/libdvdcss REF "${VERSION}" SHA512 276ab26a7295bb45dd852c8d8ad262dfb6f8bc4dae347b1f83ac6949aaea4cabf4cf84f79dabf2442d207c1f9bffca07793748794aa338a4694327672326799b HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libdvdcss/vcpkg.json ================================================ { "name": "libdvdcss", "version-semver": "1.5.0", "description": "Accessing DVDs like a block device library", "homepage": "https://www.videolan.org/developers/libdvdcss.html", "license": "GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libdvdnav/msvc.diff ================================================ diff --git a/msvc/config.h b/msvc/config.h index 25f68fb..c3f00f1 100644 --- a/msvc/config.h +++ b/msvc/config.h @@ -28,7 +28,8 @@ #define inline __inline /* #undef size_t */ -#define ssize_t __int64 +#include +typedef SSIZE_T ssize_t; #ifndef PATH_MAX #define PATH_MAX MAX_PATH @@ -43,14 +44,6 @@ #define S_ISCHR(m) 0 /* Fallback types (very x86-centric, sorry) */ -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -typedef unsigned int uint32_t; -typedef signed int int32_t; -typedef unsigned __int64 uint64_t; -typedef signed __int64 int64_t; -typedef unsigned int uintptr_t; +#include #endif /* LIBDVNAV_CONFIG_H */ diff --git a/msvc/include/sys/time.h b/msvc/include/sys/time.h index 843e252..8014739 100644 --- a/msvc/include/sys/time.h +++ b/msvc/include/sys/time.h @@ -26,3 +26,4 @@ */ #include +#include diff --git a/src/dvdnav_internal.h b/src/dvdnav_internal.h index 495f032..a0aaeaf 100644 --- a/src/dvdnav_internal.h +++ b/src/dvdnav_internal.h @@ -39,6 +39,7 @@ typedef CRITICAL_SECTION pthread_mutex_t; #ifndef HAVE_GETTIMEOFDAY /* replacement gettimeofday implementation */ #include +#include static inline int _private_gettimeofday( struct timeval *tv, void *tz ) { struct timeb t; @@ -232,7 +233,7 @@ int64_t dvdnav_convert_time(dvd_time_t *time); #define printerrf(format, args...) \ do { if (this) snprintf(this->err_str, MAX_ERR_LEN, format, ## args); } while (0) #else -#ifdef _MSC_VER +#if 0 #define printerrf(str) \ do { if (this) snprintf(this->err_str, MAX_ERR_LEN, str); } while (0) #else diff --git a/src/read_cache.c b/src/read_cache.c index 1b2862d..abc786a 100644 --- a/src/read_cache.c +++ b/src/read_cache.c @@ -87,7 +87,7 @@ struct read_cache_s { # if READ_CACHE_TRACE # define dprintf(fmt, ...) fprintf(MSG_OUT, "libdvdnav: %s: "fmt, __func__ , __VA_ARGS__) # else -#ifdef _MSC_VER +#if 0 # define dprintf(fmt, str) /* Nowt */ #else # define dprintf(fmt, ...) /* Nowt */ ================================================ FILE: ports/libdvdnav/no-undefined.diff ================================================ diff --git a/configure.ac b/configure.ac index 595378b..516f26e 100644 --- a/configure.ac +++ b/configure.ac @@ -118,6 +118,7 @@ dnl dnl This should be after all checks dnl --------------------------------------------- AS_CASE([$host_os], + [*mingw32*], LDFLAGS="-no-undefined $LDFLAGS", [os2*], [LDFLAGS="$LDFLAGS -no-undefined"]) dnl --------------------------------------------- ================================================ FILE: ports/libdvdnav/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://code.videolan.org/ REPO videolan/libdvdnav REF ${VERSION} SHA512 080814c30f193176393bf6d4496a1e815b3b288cd102201ba177a13a46f733e1e0b5e05d6ca169e902c669d6f3567926c97e5a20a6712ed5620dcb10c3c3a022 HEAD_REF master PATCHES msvc.diff no-undefined.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/msvc/include/inttypes.h") vcpkg_find_acquire_program(PKGCONFIG) cmake_path(GET PKGCONFIG PARENT_PATH pkgconfig_dir) vcpkg_add_to_path("${pkgconfig_dir}") set(cppflags "") if(VCPKG_TARGET_IS_WINDOWS) # PATH_MAX from msvc/libdvdcss.vcxproj set(cppflags "CPPFLAGS=\$CPPFLAGS -DPATH_MAX=2048 -DWIN32_LEAN_AND_MEAN") if(NOT VCPKG_TARGET_IS_MINGW) cmake_path(RELATIVE_PATH SOURCE_PATH BASE_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE sources) string(APPEND cppflags " -I../${sources}/msvc/include -D_CRT_SECURE_NO_WARNINGS") endif() endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${cppflags} ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libdvdnav/vcpkg.json ================================================ { "name": "libdvdnav", "version-semver": "6.1.1", "port-version": 1, "description": "Library to navigate DVD disks", "homepage": "https://www.videolan.org/developers/libdvdnav.html", "license": "GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "libdvdread", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libdvdread/msvc.diff ================================================ diff --git a/msvc/config.h b/msvc/config.h index 4e9b60e..2f1e615 100644 --- a/msvc/config.h +++ b/msvc/config.h @@ -28,7 +28,6 @@ #define inline __inline /* #undef size_t */ -#define ssize_t __int64 #ifndef PATH_MAX #define PATH_MAX MAX_PATH @@ -43,14 +42,6 @@ #define S_ISCHR(m) 0 /* Fallback types (very x86-centric, sorry) */ -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -typedef unsigned int uint32_t; -typedef signed int int32_t; -typedef unsigned __int64 uint64_t; -typedef signed __int64 int64_t; -typedef unsigned int uintptr_t; +#include #endif /* LIBDVDREAD_CONFIG_H */ diff --git a/src/dvd_reader.c b/src/dvd_reader.c index c4d9641..b3b0158 100644 --- a/src/dvd_reader.c +++ b/src/dvd_reader.c @@ -60,6 +60,7 @@ #if defined(_WIN32) # include +# include # include "msvc/contrib/win32_cs.h" #endif diff --git a/src/dvdread/dvd_reader.h b/src/dvdread/dvd_reader.h index 5681e0e..6c1cee6 100644 --- a/src/dvdread/dvd_reader.h +++ b/src/dvdread/dvd_reader.h @@ -24,7 +24,9 @@ #define LIBDVDREAD_DVD_READER_H #ifdef _MSC_VER -#include +#include +typedef SSIZE_T ssize_t; +#include #include #include ================================================ FILE: ports/libdvdread/no-undefined.diff ================================================ diff --git a/configure.ac b/configure.ac index a60ef0c..eeb6715 100644 --- a/configure.ac +++ b/configure.ac @@ -63,6 +63,7 @@ AS_CASE([$host], [*mingw32* | *cygwin*], [AC_CHECK_FUNCS(gettimeofday)]) AS_CASE([$host], + [*mingw32*], LDFLAGS="-no-undefined $LDFLAGS", [*-os2-*], LDFLAGS="-no-undefined -Zbin-files $LDFLAGS") AS_CASE([$host], ================================================ FILE: ports/libdvdread/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://code.videolan.org/ REPO videolan/libdvdread REF ${VERSION} SHA512 9eb6d551489ab1d214c56461eebafd6ecba7de8dcc60aecb7e22f82c019fd3d045fc09af66507c2e14bc53e099aec8e87620dfd988fe047a7bfa5e5d1d2c46bd HEAD_REF master PATCHES msvc.diff no-undefined.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/msvc/include/inttypes.h") file(TOUCH "${SOURCE_PATH}/msvc/include/strings.h") file(WRITE "${SOURCE_PATH}/ChangeLog" "Cf. https://code.videolan.org/videolan/libdvdread/-/commits/${VERSION}/") # not in git vcpkg_find_acquire_program(PKGCONFIG) cmake_path(GET PKGCONFIG PARENT_PATH pkgconfig_dir) vcpkg_add_to_path("${pkgconfig_dir}") set(cppflags "") if(VCPKG_TARGET_IS_WINDOWS) # PATH_MAX from msvc/libdvdcss.vcxproj set(cppflags "CPPFLAGS=\$CPPFLAGS -DPATH_MAX=2048 -DWIN32_LEAN_AND_MEAN") if(NOT VCPKG_TARGET_IS_MINGW) cmake_path(RELATIVE_PATH SOURCE_PATH BASE_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE sources) string(APPEND cppflags " -I../${sources}/msvc/include -D_CRT_SECURE_NO_WARNINGS") endif() endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG OPTIONS --disable-apidoc --with-libdvdcss ${cppflags} ) vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libdvdread/vcpkg.json ================================================ { "name": "libdvdread", "version-semver": "6.1.3", "description": "Library to read DVD disks", "homepage": "https://www.videolan.org/developers/libdvdnav.html", "license": "GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "libdvdcss" ] } ================================================ FILE: ports/libdwarf/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 133523b4..0c754c6d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,7 +188,7 @@ if (ENABLE_DECOMPRESSION) #message(STATUS "In ENABLE_DECOMPRESSION setup: TRUE") # Zlib and ZSTD need to be found otherwise disable it if(NOT TARGET ZLIB::ZLIB) - find_package(ZLIB) + find_package(ZLIB REQUIRED) else() # Presumably in this case, the target has been found externally but set this flag just in case set(ZLIB_FOUND TRUE) @@ -203,7 +203,7 @@ if (ENABLE_DECOMPRESSION) TARGET ZSTD::ZSTD ) ) - find_package(zstd) + find_package(zstd CONFIG REQUIRED) else() # Presumably in this case, the target has been found externally but set this flag just in case set(zstd_FOUND TRUE) diff --git a/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in b/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in index 567bcf3..888b801 100644 --- a/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in +++ b/src/lib/libdwarf/cmake/libdwarfConfig.cmake.in @@ -7,7 +7,7 @@ if(LIBDWARF_BUILT_WITH_ZLIB_AND_ZSTD) find_dependency(ZLIB) set(CMAKE_MODULE_PATH_OLD "${CMAKE_MODULE_PATH}") set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_LIST_DIR}") - find_dependency(zstd) + find_dependency(zstd CONFIG) set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH_OLD}") unset(CMAKE_MODULE_PATH_OLD) endif() diff --git a/src/lib/libdwarf/libdwarf.pc.in b/src/lib/libdwarf/libdwarf.pc.in index 1d78dbb..3bb9178 100644 --- a/src/lib/libdwarf/libdwarf.pc.in +++ b/src/lib/libdwarf/libdwarf.pc.in @@ -9,4 +9,5 @@ Description: DWARF debug symbols library Version: @PROJECT_VERSION@ Libs: -L${libdir} -ldwarf Cflags: -I${includedir} +Requires.private: zlib libzstd ================================================ FILE: ports/libdwarf/dwarfdump-conf.diff ================================================ diff --git a/src/bin/dwarfdump/CMakeLists.txt b/src/bin/dwarfdump/CMakeLists.txt index 6e3761d..5124f29 100644 --- a/src/bin/dwarfdump/CMakeLists.txt +++ b/src/bin/dwarfdump/CMakeLists.txt @@ -62,7 +62,7 @@ add_executable(dwarfdump ${SOURCES} ${HEADERS} ${CONFIGURATION_FILES}) set_folder(dwarfdump src/bin/dwarfdump) target_compile_definitions(dwarfdump PRIVATE - "CONFPREFIX=${CMAKE_INSTALL_PREFIX}/lib" ${DW_LIBDWARF_STATIC} + "CONFPREFIX=${CMAKE_INSTALL_DATAROOTDIR}/libdwarf" ${DW_LIBDWARF_STATIC} _GNU_SOURCE) target_compile_options(dwarfdump PRIVATE ${DW_FWALL}) @@ -72,4 +72,4 @@ install(TARGETS dwarfdump DESTINATION LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -install(FILES dwarfdump.conf DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/dwarfdump) +install(FILES dwarfdump.conf DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/libdwarf) ================================================ FILE: ports/libdwarf/include-dir.diff ================================================ diff --git a/src/lib/libdwarf/CMakeLists.txt b/src/lib/libdwarf/CMakeLists.txt index 0278755..19f1673 100644 --- a/src/lib/libdwarf/CMakeLists.txt +++ b/src/lib/libdwarf/CMakeLists.txt @@ -103,7 +103,7 @@ msvc_posix(dwarf) target_compile_definitions(dwarf PUBLIC ${DEFS}) target_include_directories(dwarf PUBLIC $ - $ + $ ) if(ZLIB_FOUND AND zstd_FOUND) target_link_libraries(dwarf PRIVATE ZLIB::ZLIB ${ZSTD_LIB} ) @@ -114,7 +114,7 @@ install(TARGETS dwarf RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libdwarf" ) configure_file(libdwarf.pc.in libdwarf.pc @ONLY) @@ -130,7 +130,7 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libdwarfConfig.cmake" "${CMAKE_CURREN install(TARGETS dwarf EXPORT libdwarfTargets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/libdwarf") install(EXPORT libdwarfTargets FILE libdwarf-targets.cmake NAMESPACE libdwarf:: diff --git a/src/lib/libdwarf/libdwarf.pc.in b/src/lib/libdwarf/libdwarf.pc.in index 3bb9178..4a094d1 100644 --- a/src/lib/libdwarf/libdwarf.pc.in +++ b/src/lib/libdwarf/libdwarf.pc.in @@ -2,7 +2,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix="${prefix}" libdir="${prefix}/lib" -includedir="${prefix}/include" +includedir="${prefix}/include/libdwarf" Name: libdwarf Description: DWARF debug symbols library ================================================ FILE: ports/libdwarf/msvc-runtime.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 28076ee..f9795dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,7 @@ macro(msvc_posix target) endmacro() if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") +elseif(0) set(LIBDWARF_CRT "MD" CACHE STRING "Either MT or MD, specifies whether to use the static or dynamic MSVCRT.") # Use CMAKE_MSVC_RUNTIME in versions 3.15 and up ================================================ FILE: ports/libdwarf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO davea42/libdwarf-code REF "v${VERSION}" SHA512 e8eb74c622cedb512d82dff313ce9c5ac2064a7a7a0691c776213b384c1c64d0f549aaab1ef732dcba8c72d52048cea641d9909d3b2503cf96760ad8e81ae77c HEAD_REF main PATCHES include-dir.diff # avoid dwarf.h conflict with elfutils dependencies.diff msvc-runtime.diff dwarfdump-conf.diff # no absolute paths ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_NON_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_NON_SHARED=${BUILD_NON_SHARED} -DBUILD_SHARED=${BUILD_SHARED} OPTIONS_DEBUG -DBUILD_DWARFDUMP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdwarf") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES dwarfdump AUTO_CLEAN) if(BUILD_SHARED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libdwarf/libdwarf.h" "ifndef LIBDWARF_STATIC" "if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/libdwarf/Findzstd.cmake" ) file(COPY_FILE "${SOURCE_PATH}/src/lib/libdwarf/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdwarf COPYING") file(COPY_FILE "${SOURCE_PATH}/src/bin/dwarfdump/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfdump COPYING") file(COPY_FILE "${SOURCE_PATH}/src/bin/dwarfgen/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfgen COPYING") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libdwarf COPYING" "${SOURCE_PATH}/src/lib/libdwarf/LIBDWARFCOPYRIGHT" "${SOURCE_PATH}/src/lib/libdwarf/LGPL.txt" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfdump COPYING" "${SOURCE_PATH}/src/bin/dwarfdump/DWARFDUMPCOPYRIGHT" "${SOURCE_PATH}/src/bin/dwarfdump/GPL.txt" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/dwarfgen COPYING" ) ================================================ FILE: ports/libdwarf/vcpkg.json ================================================ { "name": "libdwarf", "version": "2.3.1", "description": "A library for reading DWARF2 and later DWARF.", "homepage": "https://github.com/davea42/libdwarf-code", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/libdxfrw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LibreCAD/libdxfrw REF 92d7466ed9146badcd4fb44c82d1dd8302b3c7db SHA512 2c65780dc378221489d860a4c13799e57c1d4375ac1df187a55e675d9a509896f300980b0f75d0d8dda837a6e335c19f8c23131577b962e92e04140e903e50ac HEAD_REF master PATCHES remove-werror.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dwg2dxf LIBDXFRW_BUILD_DWG2DXF ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBDXFRW_BUILD_DOC=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if("dwg2dxf" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dwg2dxf AUTO_CLEAN) endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libdxfrw") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libdxfrw/remove-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 50fae46..b33815c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,14 +8,6 @@ set(LIBDXFRW_BUILD_DOC TRUE CACHE BOOL "Build the documentation") set(LIBDXFRW_BUILD_DWG2DXF TRUE CACHE BOOL "Build the dwg2dxf application") -# set compiler warnings -if (MSVC) - add_compile_options(/W3) -else() - add_compile_options(-Wall -Wextra -pedantic -Werror) -endif() - - include(GNUInstallDirs) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) ================================================ FILE: ports/libdxfrw/vcpkg.json ================================================ { "name": "libdxfrw", "version-date": "2025-09-25", "description": "libdxfrw is a free C++ library to read and write DXF files in both formats, ascii and binary form. It also has rudimentary capabilities to read DWG files.", "license": "GPL-2.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dwg2dxf": { "description": "Build the dwg2dxf tool to convert DWG files to DXF format" } } } ================================================ FILE: ports/libe57/boost_includes.patch ================================================ diff --git a/src/refimpl/E57SimpleImpl.cpp b/src/refimpl/E57SimpleImpl.cpp index db71548..981c8e5 100644 --- a/src/refimpl/E57SimpleImpl.cpp +++ b/src/refimpl/E57SimpleImpl.cpp @@ -51,10 +51,6 @@ # include # include //#include //if you need this then remove in E57Foundation.h line 48 -#pragma warning(disable:4996) -# include -# include -# include # elif defined(__GNUC__) # define _LARGEFILE64_SOURCE # define __LARGE64_FILES ================================================ FILE: ports/libe57/e57simple.patch ================================================ diff --git a/include/E57Simple.h b/include/E57Simple.h index 6686523..5751921 100644 --- a/include/E57Simple.h +++ b/include/E57Simple.h @@ -57,6 +57,10 @@ #include "E57Foundation.h" #endif +#ifdef WIN32 +#include +#endif + using namespace std; using namespace boost; ================================================ FILE: ports/libe57/export_config.patch ================================================ diff --git a/src/refimpl/E57RefImplConfig.cmake b/src/refimpl/E57RefImplConfig.cmake index 8ba7356..84a8453 100644 --- a/src/refimpl/E57RefImplConfig.cmake +++ b/src/refimpl/E57RefImplConfig.cmake @@ -116,6 +116,17 @@ IF (E57RefImpl_LIBRARY_DEBUG AND NOT E57RefImpl_LIBRARY_RELEASE) SET(E57RefImpl_LIBRARIES ${E57RefImpl_LIBRARY_DEBUG}) ENDIF() +include(CMakeFindDependencyMacro) +find_dependency(Boost COMPONENTS crc smart_ptr uuid) +find_dependency(XercesC) + +list(APPEND E57RefImpl_LIBRARIES + Boost::crc + Boost::smart_ptr + Boost::uuid + XercesC::XercesC +) + IF (E57RefImpl_LIBRARY) set(E57RefImpl_LIBRARY ${E57RefImpl_LIBRARY} CACHE FILEPATH "The E57RefImpl library") # Remove superfluous "debug" / "optimized" keywords from @@ -134,7 +145,7 @@ ELSE(E57RefImpl_LIBRARY) ENDIF(E57RefImpl_LIBRARY) IF (E57RefImpl_FOUND) - SET(E57RefImpl_INCLUDE_DIRS ${E57RefImpl_INCLUDE_DIR} "E57RefImpl include directory") + SET(E57RefImpl_INCLUDE_DIRS ${E57RefImpl_INCLUDE_DIR}) ENDIF() ================================================ FILE: ports/libe57/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hlrs-vis/libe57 REF "v${VERSION}" SHA512 2acea522f2ac8e86414a4839d57407c7ae5473d2532b73bf2bdd72e0bd0a138c89d770de067ae1ebf488b614ab53c99e7f2a67cea31eea64e94c1ae2c539321b HEAD_REF main PATCHES boost_includes.patch e57simple.patch export_config.patch xercesc.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake PACKAGE_NAME e57refimpl) vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES e57fields e57unpack e57validate e57xmldump las2e57 AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) file(WRITE "${CURRENT_BUILDTREES_DIR}/copyright" "See the libE57 website for copyright and licensing information (http://libe57.org/license.html)." ) vcpkg_install_copyright(FILE_LIST "${CURRENT_BUILDTREES_DIR}/copyright") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libe57/usage ================================================ libe57 provides CMake integration: find_package(E57RefImpl CONFIG REQUIRED) target_link_libraries(main PRIVATE ${E57RefImpl_LIBRARIES}) target_include_directories(main PRIVATE ${E57RefImpl_INCLUDE_DIRS}) ================================================ FILE: ports/libe57/vcpkg.json ================================================ { "name": "libe57", "version-semver": "1.1.337", "description": "An open source implementation of the ASTM E2807 Standard Specification for 3D Imaging Data Exchange in the C++ language.", "homepage": "http://www.libe57.org/", "license": "BSL-1.0", "supports": "!android", "dependencies": [ "boost-crc", "boost-filesystem", "boost-format", "boost-math", "boost-program-options", "boost-system", "boost-thread", "boost-uuid", "boost-variant", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xerces-c" ] } ================================================ FILE: ports/libe57/xercesc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cfd9574..a28be3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,23 +99,13 @@ Please set the BOOST_ROOT to point to the boost distribution files." ) endif(NOT Boost_FOUND) -find_package(Xerces) -if (NOT Xerces_FOUND) - set(XERCES_ROOT CACHE PATH "Location of the xerces library") - message(FATAL_ERROR -"Unable to find xerces library. -Please set the the XERCES_ROOT to point to the root of the xerces directory." -) -endif (NOT Xerces_FOUND) +find_package(XercesC REQUIRED) -set(XML_LIBRARIES ${Xerces_LIBRARY}) -set(XML_INCLUDE_DIRS ${Xerces_INCLUDE_DIR}) +set(XML_LIBRARIES XercesC::XercesC) +set(XML_INCLUDE_DIRS "") if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") add_definitions(-DLINUX) - find_package(ICU REQUIRED) - set(XML_LIBRARIES ${XML_LIBRARIES} ${ICU_LIBRARIES}) - set(XML_INCLUDE_DIRS ${XML_INCLUDE_DIRS} ${ICU_INCLUDE_DIRS}) elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") add_definitions(-DWINDOWS) endif() ================================================ FILE: ports/libe57format/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO asmaloney/libE57Format REF "v${VERSION}" SHA512 2a224bd9ff88cdfd182267c96e4d6151a51a0ae6959c41dbe11d65e31cd1c9d5ecbf7f69c355daef6331181b454b123978036478f14cbf1cd2e51544bab16102 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" E57_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DE57_BUILD_TEST=OFF -DE57_BUILD_SHARED=${E57_BUILD_SHARED} -DE57_RELEASE_LTO=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME E57Format CONFIG_PATH "lib/cmake/E57Format") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/libe57format/usage ================================================ libe57format provides CMake targets: find_package(E57Format CONFIG REQUIRED) target_link_libraries(main PRIVATE E57Format) ================================================ FILE: ports/libe57format/vcpkg.json ================================================ { "name": "libe57format", "version": "3.3.0", "description": "A library to provide read & write support for the E57 file format.", "homepage": "https://github.com/asmaloney/libE57Format", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xerces-c" ] } ================================================ FILE: ports/libebur128/0001-remove-warning-message.patch ================================================ --- a/ebur128/ebur128.c 2021-02-14 15:31:05.000000000 +0100 +++ b/ebur128/ebur128.c 2025-01-28 10:43:26.975886500 +0100 @@ -606,7 +606,7 @@ #define TURN_OFF_FTZ _mm_setcsr(mxcsr); #define FLUSH_MANUALLY #else -#warning "manual FTZ is being used, please enable SSE2 (-msse2 -mfpmath=sse)" +//#warning "manual FTZ is being used, please enable SSE2 (-msse2 -mfpmath=sse)" #define TURN_ON_FTZ #define TURN_OFF_FTZ #define FLUSH_MANUALLY \ ================================================ FILE: ports/libebur128/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jiixyj/libebur128 REF v1.2.6 SHA512 ab188c6d32cd14613119258313a8a3fb1167b55501c9f5b6d3ba738d674bc58f24ac3034c23d9730ed8dc3e95a23619bfb81719e4c79807a9a16c1a5b3423582 PATCHES 0001-remove-warning-message.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_INTERNAL_QUEUE_H=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libebur128/vcpkg.json ================================================ { "name": "libebur128", "version": "1.2.6", "port-version": 3, "description": "A library implementing the EBU R128 audio loudness standard", "homepage": "https://github.com/jiixyj/libebur128", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libedit/portfile.cmake ================================================ message( "libedit currently requires the following programs from the system package manager: autoconf autoheader aclocal automake libtoolize On Debian and Ubuntu derivatives: sudo apt install autoconf libtool On recent Red Hat and Fedora derivatives: sudo dnf install autoconf libtool On Arch Linux and derivatives: sudo pacman -S autoconf automake libtool On Alpine: apk add autoconf automake libtool" ) string(REPLACE "-" "" REF_SHORT_VERSION_DATE ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://thrysoee.dk/editline/libedit-${REF_SHORT_VERSION_DATE}-3.1.tar.gz" FILENAME "libedit-${REF_SHORT_VERSION_DATE}-3.1.tar.gz" SHA512 b11d64947f9484bb2320b0fbcfdc94466993af1dfa0d853853b73c222e95d6c1e78d88d0c305929b95bf7a85009129475c9fef0ac8595b43d75543d85052a4ff ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libedit/vcpkg.json ================================================ { "name": "libedit", "version-date": "2024-08-08", "port-version": 1, "description": "A command line editor library that provides generic line editing, history, and tokenization functions, similar to those found in GNU Readline.", "homepage": "https://thrysoee.dk/editline/", "license": "BSD-4-Clause-UC", "supports": "(!windows | mingw) & !android", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libenvpp/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e1be3db..5fbd072 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ macro(fetch_content_from_submodule DEPNAME RELPATH) endif() endmacro() -fetch_content_from_submodule(fmt external/fmt) +find_package(fmt CONFIG REQUIRED) if(LIBENVPP_TESTS) fetch_content_from_submodule(Catch2 external/Catch2) ================================================ FILE: ports/libenvpp/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} # No DLL export(yet) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ph3at/libenvpp REF v${VERSION} SHA512 d7d11736884c4991f9d52818b306feb62c9783b69f7ee0f9aae90ff29aced297050c4140b6485e5687b0edc4cb11b58372c28039ad67fa780cc31f0da2f381f0 HEAD_REF main PATCHES fix-dependencies.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBENVPP_EXAMPLES=OFF -DLIBENVPP_TESTS=OFF -DLIBENVPP_CHECKS=OFF -DLIBENVPP_INSTALL=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libenvpp/vcpkg.json ================================================ { "name": "libenvpp", "version": "1.5.2", "description": "A modern C++ library for type-safe environment variable parsing", "homepage": "https://github.com/ph3at/libenvpp", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libepoxy/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() if (VCPKG_TARGET_IS_LINUX) message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n libx11-dev\n libgles2-mesa-dev\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libgles2-mesa-dev.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO anholt/libepoxy REF 1.5.10 SHA512 6786f31c6e2865e68a90eb912900a86bf56fd3df4d78a477356886ac3b6ef52ac887b9c7a77aa027525f868ae9e88b12e5927ba56069c2e115acd631fca3abee HEAD_REF master ) if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX) set(OPTIONS -Dglx=no -Degl=no -Dx11=false) elseif(VCPKG_TARGET_IS_ANDROID) set(OPTIONS -Dglx=no -Degl=yes -Dx11=false) else() set(OPTIONS -Dglx=yes -Degl=yes -Dx11=true) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -Dc_std=c99) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND OPTIONS "-Dc_args=-DEPOXY_PUBLIC=extern") endif() endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Dtests=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" "# if defined(_MSC_VER)" "# if defined(_WIN32)") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/epoxy/common.h" "__declspec(dllimport)" "") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libepoxy/vcpkg.json ================================================ { "name": "libepoxy", "version": "1.5.10", "port-version": 2, "description": "Epoxy is a library for handling OpenGL function pointer management for you", "homepage": "https://github.com/anholt/libepoxy", "license": "MIT", "supports": "!uwp & !(windows & staticcrt)", "dependencies": [ { "name": "egl-registry", "platform": "!osx & !windows" }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/liberasurecode/fix-build.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 6135f2a..e68974f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,7 +8,7 @@ INCLUDE = -I$(abs_top_builddir)/include \ -I$(abs_top_builddir)/include/xor_codes AM_CPPFLAGS = $(CPPFLAGS) $(INCLUDE) -AM_CPPFLAGS += -Werror -Wall +AM_CPPFLAGS += -Wall AM_CFLAGS = -fPIC $(AM_CPPFLAGS) @GCOV_FLAGS@ -L/usr/local/lib diff --git a/erasurecode.pc.in b/erasurecode.pc.in index 148c382..5a8578f 100644 --- a/erasurecode.pc.in +++ b/erasurecode.pc.in @@ -11,5 +11,6 @@ Version: @LIBERASURECODE_VERSION@ Requires: Conflicts: Libs: -L${libdir} -lerasurecode -ldl -Libs.private: @ERASURECODE_STATIC_LIBS@ -lz +Libs.private: -lXorcode -lnullcode -lerasurecode_rs_vand +Requires.private: zlib Cflags: -I${includedir}/ -I${includedir}/liberasurecode diff --git a/src/Makefile.am b/src/Makefile.am index 693809e..097954d 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,7 +32,7 @@ liberasurecode_la_SOURCES = \ backends/shss/shss.c \ backends/phazrio/libphazr.c -liberasurecode_la_CPPFLAGS = -Werror @GCOV_FLAGS@ +liberasurecode_la_CPPFLAGS = @GCOV_FLAGS@ liberasurecode_la_LIBADD = \ builtin/null_code/libnullcode.la \ builtin/xor_codes/libXorcode.la \ ================================================ FILE: ports/liberasurecode/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openstack/liberasurecode REF "${VERSION}" SHA512 52b94a0fd211721c43f1d4f3c67331aaf8670d178366eef08a1037738935764897d91453d27b9fd69e9a5235f9ed1d11585ed29278887a82907fb30f960423cd HEAD_REF master PATCHES fix-build.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "--disable-werror" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/liberasurecode/vcpkg.json ================================================ { "name": "liberasurecode", "version": "1.7.1", "port-version": 1, "description": "Erasure Code API library written in C with pluggable Erasure Code backends. Mirror of code maintained at opendev.org.", "homepage": "https://github.com/openstack/liberasurecode", "license": "BSD-2-Clause", "supports": "!android & !windows", "dependencies": [ { "name": "vcpkg-make", "host": true }, "zlib" ] } ================================================ FILE: ports/libev/0000-event-fix-undefined-struct-timeval.patch ================================================ diff --git a/event.c b/event.c index 5586cd3..a67ca54 100644 --- a/event.c +++ b/event.c @@ -40,6 +40,9 @@ #include #include #include +#ifdef _WIN32 +#include +#endif #ifdef EV_EVENT_H # include EV_EVENT_H ================================================ FILE: ports/libev/0001-use-select-with-msvc.patch ================================================ diff --git a/ev.c b/ev.c index ec212a1..b80b1e0 100644 --- a/ev.c +++ b/ev.c @@ -90,7 +90,7 @@ # define EV_USE_NANOSLEEP 0 # endif -# if HAVE_SELECT && HAVE_SYS_SELECT_H +# if HAVE_SELECT && (HAVE_SYS_SELECT_H || defined(_MSC_VER)) # ifndef EV_USE_SELECT # define EV_USE_SELECT EV_FEATURE_BACKENDS # endif ================================================ FILE: ports/libev/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://dist.schmorp.de/libev/Attic/libev-4.33.tar.gz" FILENAME "libev-4.33.tar.gz" SHA512 c662a65360115e0b2598e3e8824cf7b33360c43a96ac9233f6b6ea2873a10102551773cad0e89e738541e75af9fd4f3e3c11cd2f251c5703aa24f193128b896b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES "0000-event-fix-undefined-struct-timeval.patch" "0001-use-select-with-msvc.patch" ) set(LIBEV_LINK_FLAGS "") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND LIBEV_LINK_FLAGS "LDFLAGS=-no-undefined -lws2_32 \$LDFLAGS") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${LIBEV_LINK_FLAGS} ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include.tmp") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(RENAME "${CURRENT_PACKAGES_DIR}/include.tmp" "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-libev-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") ================================================ FILE: ports/libev/unofficial-libev-config.cmake ================================================ if(NOT TARGET unofficial::libev::libev) 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::libev::libev UNKNOWN IMPORTED) set_target_properties(unofficial::libev::libev PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) find_library(LIBEV_LIBRARY_DEBUG NAMES ev libev PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LIBEV_LIBRARY_DEBUG}") set_property(TARGET unofficial::libev::libev APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::libev::libev PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBEV_LIBRARY_DEBUG}") endif() find_library(LIBEV_LIBRARY_RELEASE NAMES ev libev PATHS "${_IMPORT_PREFIX}/" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LIBEV_LIBRARY_RELEASE}") set_property(TARGET unofficial::libev::libev APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::libev::libev PROPERTIES IMPORTED_LOCATION_RELEASE "${LIBEV_LIBRARY_RELEASE}") endif() unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/libev/vcpkg.json ================================================ { "name": "libev", "version": "4.33", "port-version": 5, "description": "libev is a high-performance event loop/event model with lots of features.", "homepage": "http://software.schmorp.de/pkg/libev.html", "license": "BSD-2-Clause OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libevdev/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO libevdev/libevdev REF "libevdev-${VERSION}" SHA512 4e3d81af35151b965410dd382482c0971b138c2432dd6c86fc843c4c5f697c36d0c30914f11575ca85d5e5f8c79cc27f2a2cdabe3ba04b8e28aa80ecf17bdfef HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddocumentation=disabled -Dtools=disabled -Dtests=disabled ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libevdev/vcpkg.json ================================================ { "name": "libevdev", "version": "1.13.6", "description": "Wrapper library for evdev devices", "homepage": "https://www.freedesktop.org/wiki/Software/libevdev", "license": "MIT", "supports": "linux", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libevent/fix-LibeventConfig_cmake_in_path.patch ================================================ diff --git a/cmake/LibeventConfig.cmake.in b/cmake/LibeventConfig.cmake.in index a12fc23c..fe108b8d 100644 --- a/cmake/LibeventConfig.cmake.in +++ b/cmake/LibeventConfig.cmake.in @@ -58,7 +58,7 @@ endif() # Get the path of the current file. get_filename_component(LIBEVENT_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -get_filename_component(_INSTALL_PREFIX "${LIBEVENT_CMAKE_DIR}/../../.." ABSOLUTE) +get_filename_component(_INSTALL_PREFIX "${LIBEVENT_CMAKE_DIR}/../.." ABSOLUTE) macro(message_if_needed _flag _msg) if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) @@ -131,12 +131,10 @@ if(CONFIG_FOR_INSTALL_TREE) unset(_event_lib_rel CACHE) find_library(_event_lib_dbg NAMES "event_${_comp}d" - PATHS "${_INSTALL_PREFIX}/lib" - NO_DEFAULT_PATH) + PATHS "${_INSTALL_PREFIX}/lib") find_library(_event_lib_rel NAMES "event_${_comp}" - PATHS "${_INSTALL_PREFIX}/lib" - NO_DEFAULT_PATH) + PATHS "${_INSTALL_PREFIX}/lib") if(_event_lib_rel OR _event_lib_dbg) list(APPEND LIBEVENT_LIBRARIES "libevent::${_comp}") set_case_insensitive_found(${_comp}) ================================================ FILE: ports/libevent/fix-file_path.patch ================================================ diff --git a/cmake/AddEventLibrary.cmake b/cmake/AddEventLibrary.cmake index 04f5837..95d9808 100644 --- a/cmake/AddEventLibrary.cmake +++ b/cmake/AddEventLibrary.cmake @@ -42,7 +42,7 @@ macro(export_install_target TYPE LIB_NAME OUTER_INCLUDES) install(TARGETS "${LIB_NAME}_${TYPE}" LIBRARY DESTINATION "lib" COMPONENT lib ARCHIVE DESTINATION "lib" COMPONENT lib - RUNTIME DESTINATION "lib" COMPONENT lib + RUNTIME DESTINATION "bin" COMPONENT bin COMPONENT dev ) else() @@ -69,7 +69,7 @@ macro(export_install_target TYPE LIB_NAME OUTER_INCLUDES) EXPORT LibeventTargets-${TYPE} LIBRARY DESTINATION "lib" COMPONENT lib ARCHIVE DESTINATION "lib" COMPONENT lib - RUNTIME DESTINATION "lib" COMPONENT lib + RUNTIME DESTINATION "bin" COMPONENT bin COMPONENT dev ) endif() ================================================ FILE: ports/libevent/fix-usage.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 676727f..c83afae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1453,7 +1453,7 @@ endif() # set(EVENT_INSTALL_CMAKE_DIR - "${CMAKE_INSTALL_PREFIX}/lib/cmake/libevent") + "lib/cmake/libevent") export(PACKAGE libevent) ================================================ FILE: ports/libevent/fix-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 07520043..7eec4059 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1022,6 +1022,9 @@ if(WIN32) add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE) + if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + add_definitions(-DWINRT) + endif() include_directories(./WIN32-Code) endif() diff --git a/evdns.c b/evdns.c index 05e515c0..912f1115 100644 --- a/evdns.c +++ b/evdns.c @@ -4501,8 +4501,12 @@ evdns_get_default_hosts_filename(void) char *path_out; size_t len_out; +#ifndef WINRT if (! SHGetSpecialFolderPathA(NULL, path, CSIDL_SYSTEM, 0)) return NULL; +#else + return NULL; +#endif len_out = strlen(path)+strlen(hostfile)+1; path_out = mm_malloc(len_out); evutil_snprintf(path_out, len_out, "%s%s", path, hostfile); diff --git a/evutil.c b/evutil.c index d46c997b..bad21ede 100644 --- a/evutil.c +++ b/evutil.c @@ -2240,6 +2240,9 @@ evutil_inet_pton_scope(int af, const char *src, void *dst, unsigned *indexp) if (cp == NULL) return evutil_inet_pton(af, src, dst); +#ifdef WINRT + return -1; +#else if_index = if_nametoindex(cp + 1); if (if_index == 0) { /* Could be numeric */ @@ -2256,6 +2259,7 @@ evutil_inet_pton_scope(int af, const char *src, void *dst, unsigned *indexp) r = evutil_inet_pton(af, tmp_src, dst); free(tmp_src); return r; +#endif } int ================================================ FILE: ports/libevent/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libevent/libevent REF 4d85d28acdbb83bb60e500e9345bab757b64d6d1 SHA512 d03daf8e2277e8b9d67e0028d05566c8972a706e53dcb6593f8f92942ff9ce814970418a10d4c37e68228ec153f8fbc7d764a7ff92e2872277a92039380cbbe9 PATCHES fix-uwp.patch fix-file_path.patch fix-LibeventConfig_cmake_in_path.patch fix-usage.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES openssl EVENT__DISABLE_OPENSSL thread EVENT__DISABLE_THREAD_SUPPORT ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(LIBEVENT_LIB_TYPE SHARED) else() set(LIBEVENT_LIB_TYPE STATIC) endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") set(LIBEVENT_STATIC_RUNTIME ON) else() set(LIBEVENT_STATIC_RUNTIME OFF) endif() if(VCPKG_TARGET_IS_UWP) list(APPEND FEATURE_OPTIONS -DEVENT__HAVE_AFUNIX_H=0) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DEVENT__LIBRARY_TYPE=${LIBEVENT_LIB_TYPE} -DEVENT__MSVC_STATIC_RUNTIME=${LIBEVENT_STATIC_RUNTIME} -DEVENT__DISABLE_BENCHMARK=ON -DEVENT__DISABLE_TESTS=ON -DEVENT__DISABLE_REGRESS=ON -DEVENT__DISABLE_SAMPLES=ON -DEVENT__DISABLE_MBEDTLS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/libevent/") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/event_rpcgen.py" "${CURRENT_PACKAGES_DIR}/tools/libevent/event_rpcgen.py") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() set(_target_suffix) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(_target_suffix static) else() set(_target_suffix shared) endif() vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/libevent/LibeventTargets-${_target_suffix}.cmake "${CURRENT_PACKAGES_DIR}" "${CURRENT_INSTALLED_DIR}" IGNORE_UNCHANGED ) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/libevent/LibeventConfig.cmake "${SOURCE_PATH}/include;${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/include" "") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() #Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libevent/vcpkg.json ================================================ { "name": "libevent", "version": "2.1.12+20230128", "port-version": 1, "description": "An event notification library", "homepage": "https://github.com/libevent/libevent", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "thread" ], "features": { "openssl": { "description": "Support for openssl", "dependencies": [ { "name": "libevent", "features": [ "thread" ] }, "openssl" ] }, "thread": { "description": "Support for thread" } } } ================================================ FILE: ports/libeventheader-decode/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "microsoft/LinuxTracepoints" REF "v${VERSION}" SHA512 baf27c967b2fa1fb8e8684951fd8e12e40fe9c23f5052a2d77c63eceab6ddfc112537422b97c37cfb0e479361fa8aedea6d8d7edfae91810f1ed696060fcb822 HEAD_REF main) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libeventheader-decode-cpp" OPTIONS ${FEATURE_OPTIONS} -DBUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if (BUILD_TOOLS) vcpkg_copy_tools( TOOL_NAMES perf-decode AUTO_CLEAN) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME eventheader-decode CONFIG_PATH lib/cmake/eventheader-decode) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libeventheader-decode/vcpkg.json ================================================ { "name": "libeventheader-decode", "version": "1.4.0", "description": "C++ classes for decoding EventHeader-encoded Linux Tracepoints", "homepage": "https://github.com/microsoft/LinuxTracepoints/", "license": "MIT", "supports": "linux | windows", "dependencies": [ { "name": "libeventheader-tracepoint", "version>=": "1.4.0" }, { "name": "libtracepoint-decode", "version>=": "1.4.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build user tools: perf-decode" } } } ================================================ FILE: ports/libeventheader-tracepoint/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_BUILD_TYPE release) # Windows port only includes headers. endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "microsoft/LinuxTracepoints" REF "v${VERSION}" SHA512 baf27c967b2fa1fb8e8684951fd8e12e40fe9c23f5052a2d77c63eceab6ddfc112537422b97c37cfb0e479361fa8aedea6d8d7edfae91810f1ed696060fcb822 HEAD_REF main) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libeventheader-tracepoint" OPTIONS -DBUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup( PACKAGE_NAME eventheader-tracepoint CONFIG_PATH lib/cmake/eventheader-tracepoint DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME eventheader-headers CONFIG_PATH lib/cmake/eventheader-headers) if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libeventheader-tracepoint/vcpkg.json ================================================ { "name": "libeventheader-tracepoint", "version": "1.4.0", "description": "C/C++ interface for generating EventHeader-encoded Linux Tracepoints", "homepage": "https://github.com/microsoft/LinuxTracepoints/", "license": "MIT", "supports": "linux | windows", "dependencies": [ { "name": "libtracepoint", "version>=": "1.4.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libevhtp/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 481ddd0e86..a1a806ce99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,10 @@ check_type_size("int" SIZEOF_INT) check_type_size("long" SIZEOF_LONG) check_type_size("short" SIZEOF_SHORT) -test_big_endian(HOST_BIG_ENDIAN) +set(HOST_BIG_ENDIAN OFF) +if(CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN") + set(HOST_BIG_ENDIAN ON) +endif() check_c_compiler_flag(-std=c99 has_c99) ================================================ FILE: ports/libevhtp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO criticalstack/libevhtp REF e200bfa85bf253e9cfe1c1a9e705fccb176b9171 SHA512 d77d6d12dcc2762c8311a04cd3d33c7dfde7b406dbbb544d683e6a3b8e5912ba37a196470bc5aca92b58bd9659fbb396e5a11234b98435534f535046d6dab6eb HEAD_REF master PATCHES fix-cmake4.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES openssl EVHTP_DISABLE_SSL thread EVHTP_DISABLE_EVTHR regex EVHTP_DISABLE_REGEX ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libevhtp/vcpkg.json ================================================ { "name": "libevhtp", "version": "1.2.18", "port-version": 6, "description": "Libevhtp was created as a replacement API for Libevent's current HTTP API.", "homepage": "https://github.com/criticalstack/libevhtp", "supports": "!windows", "dependencies": [ "libevent", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openssl": { "description": "Support SSL for libevhtp", "dependencies": [ { "name": "libevent", "features": [ "openssl" ] }, "openssl" ] }, "regex": { "description": "Support oniguruma for libevhtp", "dependencies": [ "oniguruma" ] }, "thread": { "description": "Support thread for libevhtp" } } } ================================================ FILE: ports/libexif/fix-ssize.patch ================================================ diff --git a/libexif/exif-loader.c b/libexif/exif-loader.c index ad4ae96..8a24ef6 100644 --- a/libexif/exif-loader.c +++ b/libexif/exif-loader.c @@ -19,6 +19,11 @@ */ #include +#ifdef _WIN32 +#include +#define ssize_t ptrdiff_t +#endif + #include #include ================================================ FILE: ports/libexif/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libexif/libexif REF "v${VERSION}" SHA512 6e50134eab2fcf93036ecf8a9a9f89273ab8ddc4a171523f1f88f6d90bda799ef8f6a597c1c308fe8153dcc685a2d2b473e758e2286ce4d3143dd829e07a8c80 HEAD_REF master PATCHES fix-ssize.patch ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() vcpkg_list(APPEND options "--disable-nls") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} --enable-internal-docs=no --enable-ship-binaries=no ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-libexif-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libexif/unofficial-libexif-config.cmake ================================================ if(NOT TARGET unofficial::libexif::libexif) add_library(unofficial::libexif::libexif UNKNOWN IMPORTED) get_filename_component(z_vcpkg_LIBEXIF_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_LIBEXIF_ROOT "${z_vcpkg_LIBEXIF_root}" PATH) get_filename_component(z_VCPKG_LIBEXIF_ROOT "${z_vcpkg_LIBEXIF_ROOT}" PATH) set_target_properties(unofficial::libexif::libexif PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_VCPKG_LIBEXIF_ROOT}/include" ) find_library(Z_VCPKG_LIBEXIF_LIBRARY_RELEASE NAMES exif PATHS "${z_VCPKG_LIBEXIF_ROOT}/lib" NO_DEFAULT_PATH REQUIRED) find_library(Z_VCPKG_LIBEXIF_LIBRARY_DEBUG NAMES exif PATHS "${z_VCPKG_LIBEXIF_ROOT}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${Z_VCPKG_LIBEXIF_LIBRARY_RELEASE}") set_property(TARGET unofficial::libexif::libexif APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::libexif::libexif PROPERTIES IMPORTED_LOCATION_RELEASE "${Z_VCPKG_LIBEXIF_LIBRARY_RELEASE}" ) endif() if(EXISTS "${Z_VCPKG_LIBEXIF_LIBRARY_DEBUG}") set_property(TARGET unofficial::libexif::libexif APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::libexif::libexif PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_LIBEXIF_LIBRARY_DEBUG}" ) endif() unset(z_vcpkg_LIBEXIF_root) unset(z_vcpkg_LIBEXIF_ROOT) unset(z_VCPKG_LIBEXIF_ROOT) endif() ================================================ FILE: ports/libexif/vcpkg.json ================================================ { "name": "libexif", "version": "0.6.25", "port-version": 1, "description": "a library for parsing, editing, and saving EXIF data", "homepage": "https://libexif.github.io/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "$comment": "Needs gettext m4 files and autopoint during autoreconf. No runtime dependency.", "name": "gettext", "host": true }, { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support.", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/libfabric/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ofiwg/libfabric REF v${VERSION} SHA512 8242d1eec22a066b65cb99f5b96da44ce19c1dcb3db15238495b28147e8bcee70f6c0eaf5f72e1dc9e004809114a5f96ee696b9e5fc8bd9c07177b9916e35d05 HEAD_REF master ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH libfabric.vcxproj RELEASE_CONFIGURATION Release-v142 DEBUG_CONFIGURATION Debug-v142 OPTIONS "/p:SolutionDir=${SOURCE_PATH}" ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/libfabric") else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --with-uring=no ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libfabric/vcpkg.json ================================================ { "name": "libfabric", "version-semver": "1.22.0", "port-version": 1, "description": "Libfabric, aka Open Fabrics Interfaces (OFI), defines a communication API for high-performance parallel and distributed applications.", "homepage": "https://ofiwg.github.io/libfabric/", "license": "BSD-2-Clause OR GPL-2.0-only", "supports": "freebsd | linux | osx | (windows & x64 & !mingw & !uwp & !(static & staticcrt))", "dependencies": [ { "name": "networkdirect-sdk", "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "!windows" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/libffi/dll-bindir.diff ================================================ diff --git a/configure.host b/configure.host index f23716f..78d317b 100644 --- a/configure.host +++ b/configure.host @@ -103,6 +103,7 @@ case "${host}" in else AM_LTLDFLAGS='-no-undefined -bindir "$(bindir)"'; fi + AM_LTLDFLAGS='-no-undefined'; ;; i?86-*-darwin* | x86_64-*-darwin* | i?86-*-ios | x86_64-*-ios) ================================================ FILE: ports/libffi/libffiConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(libffi) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-libffi CONFIG REQUIRED) if(NOT TARGET libffi) add_library(libffi ALIAS unofficial::libffi::libffi) endif() ================================================ FILE: ports/libffi/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/libffi/libffi/releases/download/v${VERSION}/libffi-${VERSION}.tar.gz" FILENAME "libffi-${VERSION}.tar.gz" SHA512 76974a84e3aee6bbd646a6da2e641825ae0b791ca6efdc479b2d4cbcd3ad607df59cffcf5031ad5bd30822961a8c6de164ac8ae379d1804acd388b1975cdbf4d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES dll-bindir.diff ) vcpkg_list(SET options) if(VCPKG_TARGET_IS_WINDOWS) set(linkage_flag "-DFFI_STATIC_BUILD") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(linkage_flag "-DFFI_BUILDING_DLL") endif() vcpkg_list(APPEND options "CFLAGS=\${CFLAGS} ${linkage_flag}") endif() vcpkg_cmake_get_vars(cmake_vars_file ADDITIONAL_LANGUAGES ASM) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") vcpkg_add_to_path("${SOURCE_PATH}") vcpkg_list(APPEND options "CCAS=msvcc.sh") set(ccas_options "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(APPEND ccas_options " -m32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") string(APPEND ccas_options " -m64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") string(APPEND ccas_options " -marm") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") string(APPEND ccas_options " -marm64") endif() if(ccas_options) vcpkg_list(APPEND options "CCASFLAGS=\${CCASFLAGS}${ccas_options}") endif() endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" LANGUAGES C CXX ASM OPTIONS --enable-portable-binary --disable-docs --disable-multi-os-directory ${options} ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ffi.h" "defined(FFI_STATIC_BUILD)" "1") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-libffi-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-libffi") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/libffiConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man3" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libffi/unofficial-libffi-config.cmake ================================================ if(NOT TARGET unofficial::libffi::libffi) get_filename_component(VCPKG_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) find_library(VCPKG_LIBFFI_LIBRARY_RELEASE NAMES ffi PATHS "${VCPKG_IMPORT_PREFIX}/lib" REQUIRED) find_library(VCPKG_LIBFFI_LIBRARY_DEBUG NAMES ffi PATHS "${VCPKG_IMPORT_PREFIX}/debug/lib") mark_as_advanced(VCPKG_LIBFFI_LIBRARY_RELEASE VCPKG_LIBFFI_LIBRARY_DEBUG) add_library(unofficial::libffi::libffi UNKNOWN IMPORTED) set_target_properties(unofficial::libffi::libffi PROPERTIES IMPORTED_CONFIGURATIONS "Release" INTERFACE_INCLUDE_DIRECTORIES "${VCPKG_IMPORT_PREFIX}/include" IMPORTED_LOCATION_RELEASE "${VCPKG_LIBFFI_LIBRARY_RELEASE}" IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" ) if(VCPKG_LIBFFI_LIBRARY_DEBUG) set_property(TARGET unofficial::libffi::libffi APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) set_target_properties(unofficial::libffi::libffi PROPERTIES IMPORTED_LOCATION_DEBUG "${VCPKG_LIBFFI_LIBRARY_DEBUG}" IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" ) endif() endif() ================================================ FILE: ports/libffi/usage ================================================ vcpkg provides proprietary CMake targets: find_package(unofficial-libffi CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libffi::libffi) libffi provides pkg-config modules: # Library supporting Foreign Function Interfaces libffi ================================================ FILE: ports/libffi/vcpkg.json ================================================ { "name": "libffi", "version": "3.5.2", "description": "Portable, high level programming interface to various calling conventions", "homepage": "https://github.com/libffi/libffi", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libfido2/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f8aa8b..1f5e651 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -170,7 +170,13 @@ if(UNIX) endif() -if(MSVC) +find_package(libcbor CONFIG REQUIRED) +set(CBOR_LIBRARIES libcbor::libcbor) +find_package(ZLIB REQUIRED) +set(ZLIB_LIBRARIES ZLIB::ZLIB) +find_package(OpenSSL REQUIRED) +set(CRYPTO_LIBRARIES OpenSSL::Crypto) +if(0) if((NOT CBOR_INCLUDE_DIRS) OR (NOT CBOR_LIBRARY_DIRS) OR (NOT CRYPTO_INCLUDE_DIRS) OR (NOT CRYPTO_LIBRARY_DIRS) OR (NOT ZLIB_INCLUDE_DIRS) OR (NOT ZLIB_LIBRARY_DIRS)) @@ -195,7 +201,7 @@ if(MSVC) if(NOT CRYPTO_DLL) set(CRYPTO_DLL crypto) endif() - +elseif(MSVC) set(MSVC_DISABLED_WARNINGS_LIST "C4152" # nonstandard extension used: function/data pointer # conversion in expression; @@ -221,7 +227,7 @@ if(MSVC) add_definitions(-DUSE_WINHELLO) endif() set(NFC_LINUX OFF) -else() +elseif(0) include(FindPkgConfig) pkg_search_module(CBOR libcbor) pkg_search_module(CRYPTO libcrypto) @@ -243,7 +249,7 @@ else() if(NOT CRYPTO_LIBRARIES) set(CRYPTO_LIBRARIES "crypto") endif() - +elseif(1) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") pkg_search_module(UDEV libudev REQUIRED) set(UDEV_NAME "udev") diff --git a/src/libfido2.pc.in b/src/libfido2.pc.in index 03d0606..1a299ae 100644 --- a/src/libfido2.pc.in +++ b/src/libfido2.pc.in @@ -7,6 +7,6 @@ Name: @PROJECT_NAME@ Description: A FIDO2 library URL: https://github.com/yubico/libfido2 Version: @FIDO_VERSION@ -Requires: libcrypto +Requires.private: libcrypto libcbor zlib Libs: -L${libdir} -lfido2 Cflags: -I${includedir} ================================================ FILE: ports/libfido2/flags.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c5b0f3..b8178fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,6 +219,10 @@ elseif(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MP -W4 -WX ${MSVC_DISABLED_WARNINGS_STR}") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Od /Z7 /guard:cf /sdl /RTCcsu") set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi /guard:cf /sdl") + add_definitions("-D_CRT_SECURE_NO_WARNINGS" "-D_CRT_NONSTDC_NO_DEPRECATE") + string(REPLACE " -WX" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + string(REPLACE " /sdl" "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") + string(REPLACE " /sdl" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") if(USE_WINHELLO) add_definitions(-DUSE_WINHELLO) endif() @@ -303,7 +307,6 @@ elseif(1) add_compile_options(-Wall) add_compile_options(-Wextra) - add_compile_options(-Werror) add_compile_options(-Wshadow) add_compile_options(-Wcast-qual) add_compile_options(-Wwrite-strings) @@ -311,7 +314,6 @@ elseif(1) add_compile_options(-Wbad-function-cast) add_compile_options(-Wimplicit-fallthrough) add_compile_options(-pedantic) - add_compile_options(-pedantic-errors) set(EXTRA_CFLAGS "-Wconversion -Wsign-conversion") ================================================ FILE: ports/libfido2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message( "${PORT} currently requires the following libraries from the system package manager: libudev-dev These can be installed on Ubuntu systems via: sudo apt install libudev-dev" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Yubico/libfido2 REF ${VERSION} SHA512 46ef14d9215d13608eb511ea4d63494758eb2464e75a00411e1afa2546f06e4cd142a08a59f1ee78967c962290c54889014f58608d4b58d48ba590e5805d3b04 HEAD_REF main PATCHES dependencies.diff flags.diff ) vcpkg_find_acquire_program(PKGCONFIG) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_MANPAGES=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DBUILD_TESTS=OFF -DBUILD_TOOLS=OFF "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libfido2/vcpkg.json ================================================ { "name": "libfido2", "version": "1.16.0", "description": "Provides library functionality to communicate with a FIDO device over USB, and to verify attestation and assertion signatures.", "homepage": "https://developers.yubico.com/libfido2/", "license": "BSD-2-Clause", "supports": "!android & !uwp", "dependencies": [ "libcbor", "openssl", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/libflac/android-cmake.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9396130..11ef59d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ else() endif() -if(ANDROID AND CMAKE_SYSTEM_VERSION VERSION_LESS 24 AND (CMAKE_SYSTEM_PROCESSOR MATCHES "i686" OR CMAKE_SYSTEM_PROCESSOR MATCHES "armv7-a")) +if(ANDROID AND ANDROID_NATIVE_API_LEVEL VERSION_LESS "24" AND (CMAKE_SYSTEM_PROCESSOR MATCHES "i686" OR CMAKE_SYSTEM_PROCESSOR MATCHES "armv7-a")) # fseeko/ftello may link, but it's not usable before Android API 24 on 32-bit Android # https://android.googlesource.com/platform/bionic/+/main/docs/32-bit-abi.md message(STATUS "Disabling fseeko/ftello for 32-bit Android before API 24") ================================================ FILE: ports/libflac/cmake-project-include.cmake ================================================ ================================================ FILE: ports/libflac/fix-compile-options.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c83dd83..2d1a7e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,9 +82,11 @@ if(HAVE_WERROR_FLAG) option(ENABLE_WERROR "Enable -Werror in all Makefiles" OFF) endif() +if(MSVC AND NOT WITH_ASM) + add_compile_options(/wd4267 /wd4996) +endif() + add_compile_options( - $<$:/wd4267> - $<$:/wd4996> $<$:-Werror> $<$,$>:-Weffc++> $<$,$>:-Wdeclaration-after-statement>) ================================================ FILE: ports/libflac/fix-find-threads.patch ================================================ diff --git a/flac-config.cmake.in b/flac-config.cmake.in index bcafc4c8..dcf299dd 100644 --- a/flac-config.cmake.in +++ b/flac-config.cmake.in @@ -5,6 +5,10 @@ if(NOT TARGET Ogg::ogg) find_dependency(Ogg) endif() +if (@ENABLE_MULTITHREADING@) + find_dependency(Threads) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/targets.cmake") if(TARGET FLAC::FLAC) ================================================ FILE: ports/libflac/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/flac REF "${VERSION}" SHA512 c8e119462205cfd8bbe22b0aff112625d3e51ca11de97e4de06a46fb43a0768d7ec9c245b299b09b7aa4d811c6fc7b57856eaa1c217e82cca9b3ad1c0e545cbe HEAD_REF master PATCHES android-cmake.diff fix-compile-options.patch fix-find-threads.patch ) if("asm" IN_LIST FEATURES) vcpkg_find_acquire_program(NASM) get_filename_component(NASM_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${NASM_PATH}") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES asm WITH_ASM stack-protector WITH_STACK_PROTECTOR multithreading ENABLE_MULTITHREADING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_PROGRAMS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_TESTING=OFF -DINSTALL_MANPAGES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME FLAC CONFIG_PATH lib/cmake/FLAC) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/LICENSE") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FLAC/export.h" "#if defined(FLAC__NO_DLL)" "#if 0" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FLAC++/export.h" "#if defined(FLAC__NO_DLL)" "#if 0" ) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FLAC/export.h" "#if defined(FLAC__NO_DLL)" "#if 1" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/FLAC++/export.h" "#if defined(FLAC__NO_DLL)" "#if 1" ) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/flac.pc" " -lm" "") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/flac.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/flac.pc" " -lm" "") endif() endif() vcpkg_fixup_pkgconfig() # This license (BSD) is relevant only for library - if someone would want to install # FLAC cmd line tools as well additional license (GPL) should be included vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.Xiph") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libflac/usage ================================================ The package libflac provides CMake targets: find_package(FLAC CONFIG REQUIRED) target_link_libraries(main PRIVATE FLAC::FLAC) # Or use the C++ API find_package(FLAC CONFIG REQUIRED) target_link_libraries(main PRIVATE FLAC::FLAC++) ================================================ FILE: ports/libflac/vcpkg.json ================================================ { "name": "libflac", "version": "1.5.0", "description": "Library for manipulating FLAC files", "homepage": "https://xiph.org/flac/", "license": "BSD-3-Clause", "dependencies": [ "libogg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "stack-protector", "platform": "!emscripten" } ], "features": { "asm": { "description": "Use any assembly optimization routines", "supports": "x86" }, "multithreading": { "description": "Enable multithreading if pthreads is available" }, "stack-protector": { "description": "Build with stack smashing protection", "supports": "!emscripten" } } } ================================================ FILE: ports/libfontenc/build.patch ================================================ diff --git a/src/encparse.c b/src/encparse.c index 548110ede..61952b9ce 100644 --- a/src/encparse.c +++ b/src/encparse.c @@ -28,12 +28,16 @@ THE SOFTWARE. to be pure ASCII. Bloody ``Code Set Independence''. */ #include +#ifndef _MSC_VER #include +#else +#define strcasecmp _stricmp +#endif #include #include -#include "zlib.h" +#include typedef gzFile FontFilePtr; #define FontFileGetc(f) gzgetc(f) diff --git a/src/fontenc.c b/src/fontenc.c index c4ccd5eb0..e87d1089d 100644 --- a/src/fontenc.c +++ b/src/fontenc.c @@ -23,7 +23,11 @@ THE SOFTWARE. /* Backend-independent encoding code */ #include +#ifndef _MSC_VER #include +#else +#define strcasecmp _stricmp +#endif #include #define FALSE 0 ================================================ FILE: ports/libfontenc/configure.ac.patch ================================================ diff --git a/configure.ac b/configure.ac index cadc653a0..aa645af81 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,7 @@ XORG_FONTSUBDIR([ENCODINGSDIR], [encodingsdir], [encodings]) # zlib AC_CHECK_HEADER([zlib.h], [], AC_MSG_FAILURE([zlib.h is required to compile libfontenc])) -AC_CHECK_LIB(z, gzclose, [], +AC_SEARCH_LIBS(gzclose, [z zlib zlibd], [], AC_MSG_FAILURE([zlib is required to compile libfontenc])) # Obtain compiler/linker options for depedencies ================================================ FILE: ports/libfontenc/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libfontenc REF 2baea13978759d1a011fc6d739465893b554d30a #1.1.4 SHA512 5ebef8b516a2377b004894b53d56ad960bc5179d9f9a36e18bc2228ea04e8f87e9baffd4883c21783dd1f4c57d7f521cdfa42c1e9facae60c6fc2c9f5472230e HEAD_REF master PATCHES configure.ac.patch build.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # # Handle copyright file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}/") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/" RENAME copyright) endif() ================================================ FILE: ports/libfontenc/vcpkg.json ================================================ { "name": "libfontenc", "version": "1.1.4", "port-version": 1, "description": "X font encoding library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libfontenc", "license": null, "dependencies": [ "font-util", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto", "zlib" ] } ================================================ FILE: ports/libfork/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO conorwilliams/libfork REF "v${VERSION}" SHA512 38a8a6fe0f360f1caa123b227996490f192f8b58340ecb5d91922c15d7ca9b364031716e139a3ab0d89cd7cdf3bfb22fcf75272e76a40513c55adaf00ff6454d HEAD_REF main ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "libfork") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/libfork/usage ================================================ libfork provides CMake targets: find_package(libfork CONFIG REQUIRED) target_link_libraries(main PRIVATE libfork::libfork) ================================================ FILE: ports/libfork/vcpkg.json ================================================ { "name": "libfork", "version": "3.8.0", "description": "A bleeding-edge, lock-free, wait-free, continuation-stealing fork-join library built on C++20's coroutines.", "homepage": "https://github.com/conorwilliams/libfork", "license": "MPL-2.0", "dependencies": [ "hwloc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libfort/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO seleznevae/libfort REF b1c32b67511f4612996b287a1ef4a9df012521d2 # v0.4.2 SHA512 56d3bd00b8a72a5f9deb9bca9a325e100319aed55e10321d04243d8a2a94c0fa513ada1b13bc59957af01b1f2c5f1655304a4a608e118cbeb65d2b4527f102d0 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFORT_ENABLE_TESTING=OFF -DFORT_ENABLE_ASTYLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libfort) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libfort/vcpkg.json ================================================ { "name": "libfort", "version-semver": "0.4.2", "port-version": 1, "description": "A simple crossplatform library to create formatted text tables", "homepage": "https://github.com/seleznevae/libfort", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libfreenect2/fix-dependency-libusb.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3648fb5..43c3d28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,7 +91,7 @@ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) # dependencies FIND_PACKAGE(PkgConfig) # try find PKGConfig as it will be used if found -FIND_PACKAGE(LibUSB REQUIRED) +pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) # Add includes INCLUDE_DIRECTORIES( @@ -99,7 +99,7 @@ INCLUDE_DIRECTORIES( "${MY_DIR}/include/internal" ${PROJECT_BINARY_DIR} # for generated headers ${LIBFREENECT2_THREADING_INCLUDE_DIR} - ${LibUSB_INCLUDE_DIRS} + ${libusb_INCLUDE_DIRS} ) SET(RESOURCES_INC_FILE "${PROJECT_BINARY_DIR}/resources.inc.h") @@ -157,7 +157,7 @@ SET(SOURCES ) SET(LIBRARIES - ${LibUSB_LIBRARIES} + PkgConfig::libusb ${LIBFREENECT2_THREADING_LIBRARIES} ) ================================================ FILE: ports/libfreenect2/fix-macbuild.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index aedc576..4f16abc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -165,6 +165,8 @@ SET(LIBFREENECT2_DLLS SET(HAVE_VideoToolbox "no (Apple only)") IF(APPLE) FIND_LIBRARY(VIDEOTOOLBOX_LIBRARY VideoToolbox) + FIND_LIBRARY(CF_LIBRARY CoreFoundation) + FIND_LIBRARY(IOK_LIBRARY IOKit) SET(HAVE_VideoToolbox no) IF(VIDEOTOOLBOX_LIBRARY) @@ -184,6 +186,8 @@ IF(APPLE) ${COREFOUNDATION_LIBRARY} ${COREMEDIA_LIBRARY} ${COREVIDEO_LIBRARY} + ${CF_LIBRARY} + ${IOK_LIBRARY} ) ENDIF(VIDEOTOOLBOX_LIBRARY) ENDIF(APPLE) ================================================ FILE: ports/libfreenect2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenKinect/libfreenect2 REF "v${VERSION}" SHA512 0fcee5471deb013d2b57581ef8d8838f652dfed2f457c4240d5b754674e949c59337a167ac74ad04b25ace69af470a7e014e0474a688d930a3323946feadee67 HEAD_REF master PATCHES fix-dependency-libusb.patch fix-macbuild.patch ) file(READ "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" FINDLIBUSB) string(REPLACE "(WIN32)" "(WIN32_DISABLE)" FINDLIBUSB "${FINDLIBUSB}") file(WRITE "${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake" "${FINDLIBUSB}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opengl ENABLE_OPENGL opencl ENABLE_OPENCL openni2 BUILD_OPENNI2_DRIVER ) vcpkg_find_acquire_program(PKGCONFIG) if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(path_suffix "/debug") endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(path_suffix "") endif() vcpkg_backup_env_variables(VARS PKG_CONFIG_PATH) vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}${path_suffix}/lib/pkgconfig") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DENABLE_CUDA=OFF -DBUILD_EXAMPLES=OFF ${FEATURE_OPTIONS} ) vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME freenect2 CONFIG_PATH lib/cmake/freenect2) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/GPL2") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libfreenect2/vcpkg.json ================================================ { "name": "libfreenect2", "version": "0.2.1", "port-version": 2, "description": "Open source drivers for the Kinect for Windows v2 device", "homepage": "https://github.com/OpenKinect/libfreenect2", "license": "GPL-2.0-only OR Apache-2.0", "supports": "!xbox", "dependencies": [ "libjpeg-turbo", "libusb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "opengl" ], "features": { "opencl": { "description": "OpenCL support for libfreenect2", "dependencies": [ "opencl" ] }, "opengl": { "description": "OpenGL support for libfreenect2", "dependencies": [ "glfw3", "opengl" ] }, "openni2": { "description": "OpenNI2 support for libfreenect2", "dependencies": [ "openni2" ] } } } ================================================ FILE: ports/libfs/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBFS_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libFS-${VERSION}.tar.xz" FILENAME "libFS-${VERSION}.tar.xz" SHA512 f4dc361b7e1dcc1f348ea86e96c5a60ff40c5168b6097f00d8a5db2b86d089cfca12ac13dbde5ce3b53279b7eb8773ed6dcd9c678c2e95363ffa5127ecaacee7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBFS_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libfs/vcpkg.json ================================================ { "name": "libfs", "version": "1.0.10", "port-version": 1, "description": "X Font Service client library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libfs", "license": null, "supports": "!windows", "dependencies": [ { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto", "xtrans" ] } ================================================ FILE: ports/libftdi/dont_use_lib64.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b68de29..2eda29e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ IF(CMAKE_SIZEOF_VOID_P EQUAL 4) SET(LIB_SUFFIX "") SET(PACK_ARCH "") ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) - SET(LIB_SUFFIX 64) + SET(LIB_SUFFIX "") SET(PACK_ARCH .x86_64) endif(CMAKE_SIZEOF_VOID_P EQUAL 4) ================================================ FILE: ports/libftdi/exports.def ================================================ EXPORTS ftdi_deinit ftdi_disable_bitbang ftdi_eeprom_build ftdi_eeprom_decode ftdi_eeprom_free ftdi_eeprom_initdefaults ftdi_eeprom_setsize ftdi_enable_bitbang ftdi_erase_eeprom ftdi_free ftdi_get_error_string ftdi_get_latency_timer ftdi_init ftdi_list_free ftdi_list_free2 ftdi_new ftdi_poll_modem_status ftdi_read_chipid ftdi_read_data ftdi_read_data_get_chunksize ftdi_read_data_set_chunksize ftdi_read_eeprom ftdi_read_eeprom_getsize ftdi_read_eeprom_location ftdi_read_pins ftdi_set_baudrate ftdi_set_bitmode ftdi_set_error_char ftdi_set_event_char ftdi_set_interface ftdi_set_latency_timer ftdi_set_line_property ftdi_set_line_property2 ftdi_set_usbdev ftdi_setdtr ftdi_setdtr_rts ftdi_setflowctrl ftdi_setrts ftdi_usb_close ftdi_usb_find_all ftdi_usb_get_strings ftdi_usb_open ftdi_usb_open_desc ftdi_usb_open_desc_index ftdi_usb_open_dev ftdi_usb_open_string ftdi_usb_purge_buffers ftdi_usb_purge_rx_buffer ftdi_usb_purge_tx_buffer ftdi_usb_reset ftdi_write_data ftdi_write_data_get_chunksize ftdi_write_data_set_chunksize ftdi_write_eeprom ftdi_write_eeprom_location ================================================ FILE: ports/libftdi/libusb-win32.patch ================================================ diff --git a/FindUSB.cmake b/FindUSB.cmake index 566cdd8..0710345 100644 --- a/FindUSB.cmake +++ b/FindUSB.cmake @@ -24,10 +24,10 @@ else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) pkg_check_modules(PC_LIBUSB libusb) ENDIF(NOT WIN32) - FIND_PATH(LIBUSB_INCLUDE_DIR usb.h + FIND_PATH(LIBUSB_INCLUDE_DIR lusb0_usb.h PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) - FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb + FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb0 libusb0 PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) include(FindPackageHandleStandardArgs) diff --git a/src/ftdi.c b/src/ftdi.c index 980622d..8f6ab67 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -28,7 +28,7 @@ /** \addtogroup libftdi */ /* @{ */ -#include +#include #include #include #include diff --git a/src/ftdi.h b/src/ftdi.h index 6bb7a3e..d4472c2 100644 --- a/src/ftdi.h +++ b/src/ftdi.h @@ -17,7 +17,7 @@ #ifndef __libftdi_h__ #define __libftdi_h__ -#include +#include #define FTDI_DEFAULT_EEPROM_SIZE 128 ================================================ FILE: ports/libftdi/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.intra2net.com/en/developer/libftdi/download/libftdi-0.20.tar.gz" FILENAME "libftdi-0.20.tar.gz" SHA512 540e5eb201a65936c3dbabff70c251deba1615874b11ff27c5ca16c39d71c150cf61758a68b541135a444fe32ab403b0fba0daf55c587647aaf9b3f400f1dee7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "0.20" PATCHES libusb-win32.patch shared-static.patch dont_use_lib64.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}/src") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDOCUMENTATION=OFF -DEXAMPLES=OFF -DPYTHON_BINDINGS=OFF -DFTDIPP=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON -DCMAKE_DISABLE_FIND_PACKAGE_Boost=ON "-DLIBUSB_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include" -DLIB_INSTALL_DIR=lib ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libftdi") file(RENAME "${CURRENT_PACKAGES_DIR}/share/libftdi/LICENSE" "${CURRENT_PACKAGES_DIR}/share/libftdi/copyright") vcpkg_copy_pdbs() # Delete pkgconfig files for ftdipp since we did -DFTDIPP=OFF above file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/ftdipp.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/ftdipp.pc") ================================================ FILE: ports/libftdi/shared-static.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 071ae90..f91f6f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} ) # Targets -set(c_sources ftdi.c) +set(c_sources ftdi.c exports.def) set(c_headers ftdi.h) add_library(ftdi SHARED ${c_sources}) @@ -14,7 +14,7 @@ set_target_properties(ftdi PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}. # Static library add_library(ftdi-static STATIC ${c_sources}) -set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi") +set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi-static") # Prevent clobbering each other during the build set_target_properties(ftdi PROPERTIES CLEAN_DIRECT_OUTPUT 1) @@ -24,7 +24,7 @@ set_target_properties(ftdi-static PROPERTIES CLEAN_DIRECT_OUTPUT 1) target_link_libraries(ftdi ${LIBUSB_LIBRARIES}) # Install -if(${UNIX}) +if(UNIX AND 0) install( TARGETS ftdi LIBRARY DESTINATION lib${LIB_SUFFIX} @@ -41,23 +41,29 @@ if(${UNIX}) COMPONENT headers ) -endif(${UNIX}) +endif() -if(${WIN32}) +if(WIN32 OR 1) + if(BUILD_SHARED_LIBS) install( TARGETS ftdi - DESTINATION bin + EXPORT ftdi COMPONENT sharedlibs ) + target_include_directories(ftdi PUBLIC $) + else() install( TARGETS ftdi-static - DESTINATION bin + EXPORT ftdi COMPONENT staticlibs ) + target_include_directories(ftdi-static PUBLIC $) + endif() + install(EXPORT ftdi FILE libftdi-config.cmake NAMESPACE libftdi:: DESTINATION share/libftdi) install( FILES ${c_headers} DESTINATION include COMPONENT headers ) -endif(${WIN32}) +endif() ================================================ FILE: ports/libftdi/vcpkg.json ================================================ { "name": "libftdi", "version": "0.20", "port-version": 5, "description": "FTDI USB driver with bitbang mode (v0.20)", "dependencies": [ "libusb-win32", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libftdi1/cmake-version.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5aecafc..4158267 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ # Project +cmake_minimum_required(VERSION 3.5) project(libftdi1 C) set(MAJOR_VERSION 1) set(MINOR_VERSION 5) @@ -11,8 +12,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) if("${CMAKE_BUILD_TYPE}" STREQUAL "") set(CMAKE_BUILD_TYPE RelWithDebInfo) endif("${CMAKE_BUILD_TYPE}" STREQUAL "") -set(CMAKE_COLOR_MAKEFILE ON) -cmake_minimum_required(VERSION 2.6 FATAL_ERROR) add_definitions(-Wall) ================================================ FILE: ports/libftdi1/disable-config-script.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4158267..61828d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -170,6 +170,7 @@ install(FILES ${CMAKE_BINARY_DIR}/libftdi1.pc ${CMAKE_BINARY_DIR}/libftdipp1.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig) if (UNIX OR MINGW) +elseif (0) configure_file ( libftdi1-config.in ${CMAKE_CURRENT_BINARY_DIR}/libftdi1-config @ONLY ) install ( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libftdi1-config DESTINATION bin ) ================================================ FILE: ports/libftdi1/exports.def ================================================ EXPORTS convert_baudrate_UT_export ftdi_deinit ftdi_disable_bitbang ftdi_eeprom_build ftdi_eeprom_decode ftdi_eeprom_get_strings ftdi_eeprom_initdefaults ftdi_eeprom_set_strings ftdi_erase_eeprom ftdi_free ftdi_get_eeprom_buf ftdi_get_eeprom_value ftdi_get_error_string ftdi_get_latency_timer ftdi_get_library_version ftdi_init ftdi_list_free ftdi_list_free2 ftdi_new ftdi_poll_modem_status ftdi_read_chipid ftdi_read_data ftdi_read_data_get_chunksize ftdi_read_data_set_chunksize ftdi_read_data_submit ftdi_read_eeprom ftdi_read_eeprom_location ftdi_read_pins ftdi_set_baudrate ftdi_set_bitmode ftdi_set_eeprom_buf ftdi_set_eeprom_user_data ftdi_set_eeprom_value ftdi_set_error_char ftdi_set_event_char ftdi_set_interface ftdi_set_latency_timer ftdi_set_line_property ftdi_set_line_property2 ftdi_set_usbdev ftdi_setdtr ftdi_setdtr_rts ftdi_setflowctrl ftdi_setflowctrl_xonxoff ftdi_setrts ftdi_tciflush ftdi_tcioflush ftdi_tcoflush ftdi_transfer_data_cancel ftdi_transfer_data_done ftdi_usb_close ftdi_usb_find_all ftdi_usb_get_strings ftdi_usb_get_strings2 ftdi_usb_open ftdi_usb_open_bus_addr ftdi_usb_open_desc ftdi_usb_open_desc_index ftdi_usb_open_dev ftdi_usb_open_string ftdi_usb_purge_buffers ftdi_usb_purge_rx_buffer ftdi_usb_purge_tx_buffer ftdi_usb_reset ftdi_write_data ftdi_write_data_get_chunksize ftdi_write_data_set_chunksize ftdi_write_data_submit ftdi_write_eeprom ftdi_write_eeprom_location ================================================ FILE: ports/libftdi1/libdir.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fa5b3bf..5963df0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,6 +166,7 @@ endif(${UNIX}) if(${WIN32}) set(libdir ${CMAKE_INSTALL_PREFIX}/bin) endif(${WIN32}) +set(libdir ${CMAKE_INSTALL_PREFIX}/lib) configure_file(${CMAKE_SOURCE_DIR}/libftdi1.pc.in ${CMAKE_BINARY_DIR}/libftdi1.pc @ONLY) configure_file(${CMAKE_SOURCE_DIR}/libftdipp1.pc.in ${CMAKE_BINARY_DIR}/libftdipp1.pc @ONLY) ================================================ FILE: ports/libftdi1/libftdipp1.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4158267..64ad5b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -135,7 +135,7 @@ endif () add_subdirectory(src) if ( FTDIPP ) - project(libftdipp1 C CXX) + enable_language(CXX) add_subdirectory(ftdipp) endif () if ( PYTHON_BINDINGS ) @@ -192,6 +192,7 @@ list ( APPEND LIBFTDI_STATIC_LIBRARIES ${LIBUSB_LIBRARIES} ) if ( FTDIPP ) set ( LIBFTDIPP_LIBRARY ftdipp1 ) set ( LIBFTDIPP_LIBRARIES ${LIBFTDIPP_LIBRARY} ) + list ( APPEND LIBFTDI_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ) list ( APPEND LIBFTDIPP_LIBRARIES ${LIBUSB_LIBRARIES} ) endif () set ( LIBFTDI_LIBRARY_DIRS ${libdir} ) @@ -203,6 +204,7 @@ set ( LIBFTDI_ROOT_DIR ${prefix} ) set ( LIBFTDI_VERSION_STRING ${VERSION_STRING} ) set ( LIBFTDI_VERSION_MAJOR ${MAJOR_VERSION} ) set ( LIBFTDI_VERSION_MINOR ${MINOR_VERSION} ) +set ( LIBFTDIPP_LIBRARIES ${LIBFTDIPP_LIBRARY} ${LIBFTDI_LIBRARIES}) set ( LIBFTDI_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake ) diff --git a/libftdipp1.pc.in b/libftdipp1.pc.in index 8158f38..b4fff0a 100644 --- a/libftdipp1.pc.in +++ b/libftdipp1.pc.in @@ -8,4 +8,4 @@ Description: C++ wrapper for libftdi1 Requires: libftdi1 Version: @VERSION@ Libs: -L${libdir} -lftdipp1 -Cflags: -I${includedir} +Cflags: -I${includedir} -I${prefix}/include ================================================ FILE: ports/libftdi1/libusb.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b5c812c..7fb66f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,10 @@ if(${CMAKE_BUILD_TYPE} STREQUAL Debug) endif(${CMAKE_BUILD_TYPE} STREQUAL Debug) # find libusb -find_package ( USB1 REQUIRED ) +find_package(PkgConfig REQUIRED) +pkg_check_modules(LIBUSB REQUIRED libusb-1.0) +set(LIBUSB_INCLUDE_DIR "${LIBUSB_INCLUDE_DIRS}") +set(LIBUSB_LIBRARIES "${LIBUSB_LINK_LIBRARIES}") include_directories ( ${LIBUSB_INCLUDE_DIR} ) # Find Boost ================================================ FILE: ports/libftdi1/linkage.diff ================================================ diff --git a/ftdipp/CMakeLists.txt b/ftdipp/CMakeLists.txt index fac5bcc..8a20a04 100644 --- a/ftdipp/CMakeLists.txt +++ b/ftdipp/CMakeLists.txt @@ -11,6 +11,11 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR} include_directories(${Boost_INCLUDE_DIRS}) +if(WIN32) + set(BUILD_SHARED_LIBS OFF) + set(STATICLIBS ON) +endif() +if(BUILD_SHARED_LIBS) # Shared library add_library(ftdipp1 SHARED ${cpp_sources}) @@ -28,6 +33,7 @@ install ( TARGETS ftdipp1 LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} ) +endif() # Static library if ( STATICLIBS ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 17b3617..087fba8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,8 +19,12 @@ configure_file(ftdi_version_i.h.in "${CMAKE_CURRENT_BINARY_DIR}/ftdi_version_i.h # Targets set(c_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.c ${CMAKE_CURRENT_SOURCE_DIR}/ftdi_stream.c CACHE INTERNAL "List of c sources" ) +if(WIN32) + set(c_sources ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.c ${CMAKE_CURRENT_SOURCE_DIR}/exports.def CACHE INTERNAL "List of c sources" ) +endif() set(c_headers ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.h CACHE INTERNAL "List of c headers" ) +if(BUILD_SHARED_LIBS) add_library(ftdi1 SHARED ${c_sources}) math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1") # Compatibility with previous releases @@ -37,6 +41,7 @@ install ( TARGETS ftdi1 LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX} ) +endif() if ( STATICLIBS ) add_library(ftdi1-static STATIC ${c_sources}) ================================================ FILE: ports/libftdi1/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.intra2net.com/en/developer/libftdi/download/libftdi1-1.5.tar.bz2" FILENAME "libftdi1-1.5.tar.bz2" SHA512 c525b2ab6aff9ef9254971ae7d57f3549a36a36875765c48f947d52532814a2a004de1232389d4fe824a8c8ab84277b08427308573476e1da9b7db83db802f6f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE 1.5 PATCHES cmake-version.diff disable-config-script.diff linkage.diff libdir.diff libftdipp1.diff libusb.diff ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}/src") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATICLIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES cpp FTDIPP ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DBUILD_TESTS=OFF -DCMAKE_CXX_STANDARD=11 -DDOCUMENTATION=OFF -DEXAMPLES=OFF -DFTDI_EEPROM=OFF -DLIB_SUFFIX= "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DPYTHON_BINDINGS=OFF -DSTATICLIBS=${STATICLIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/cmake/libftdi1/LibFTDI1Config.cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake/libftdi1/LibFTDI1Config-debug.cmake") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libftdi1) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config.cmake" "/lib/cmake/${PORT}/" "/share/${PORT}/") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config-debug.cmake" "/debug/lib/cmake/${PORT}/" "/share/${PORT}/") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config-debug.cmake" "{_IMPORT_PREFIX}" "{VCPKG_IMPORT_PREFIX}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config-debug.cmake" "{VCPKG_IMPORT_PREFIX}/debug/include/" "{VCPKG_IMPORT_PREFIX}/include/") file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config.cmake" release_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/LibFTDI1Config.cmake" " if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES \"^[Dd][Ee][Bb][Uu][Gg]\$\") include(\"\${CMAKE_CURRENT_LIST_DIR}/LibFTDI1Config-debug.cmake\") return() endif() ${release_config}" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(NOT "cpp" IN_LIST FEATURES) file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libftdipp1.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libftdipp1.pc") endif() set(file_list "${SOURCE_PATH}/COPYING.LIB") if("cpp" IN_LIST FEATURES) set(file_list "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/COPYING.LIB" "${SOURCE_PATH}/COPYING.GPL") endif() vcpkg_install_copyright(FILE_LIST ${file_list}) ================================================ FILE: ports/libftdi1/vcpkg.json ================================================ { "name": "libftdi1", "version": "1.5", "port-version": 5, "description": "FTDI USB driver with bitbang mode", "homepage": "https://www.intra2net.com/en/developer/libftdi/", "license": "LGPL-2.1-only AND MIT", "dependencies": [ { "name": "libusb", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cpp": { "description": "C++ bindings", "license": "GPL-2.0-only WITH eCos-exception-2.0", "dependencies": [ "boost-smart-ptr" ] } } } ================================================ FILE: ports/libfuse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libfuse/libfuse REF "fuse-${VERSION}" SHA512 a39bb630f8e57a635980e153b9209a4b804569656feddb46fe8bef02c053533a6037fcc767d03efd5f8bebffed1ff55eb5f49b323ab71e8913008f994cffca77 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dutils=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libfuse/vcpkg.json ================================================ { "name": "libfuse", "version": "3.17.3", "description": "The reference implementation of the Linux FUSE (Filesystem in Userspace) interface", "homepage": "https://github.com/libfuse/libfuse", "license": "LGPL-2.1-only AND GPL-2.0-only", "supports": "linux | freebsd", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libgcrypt/cross-tools.patch ================================================ diff --git a/cipher/Makefile.am b/cipher/Makefile.am index ea9014c..8aeedb7 100644 --- a/cipher/Makefile.am +++ b/cipher/Makefile.am @@ -19,6 +19,13 @@ # Process this file with automake to produce Makefile.in +# Building host tools for native triplet, or not at all +CPPFLAGS_FOR_BUILD = $(CPPFLAGS) +CFLAGS_FOR_BUILD = $(CFLAGS) +LDFLAGS_FOR_BUILD = $(LDFLAGS) +# Using native tools, either this build or from host triplet +HOST_TOOLS_PREFIX ?= . + # Need to include ../src in addition to top_srcdir because gcrypt.h is # a built header. AM_CPPFLAGS = -I../src -I$(top_srcdir)/src -I../mpi -I$(top_srcdir)/mpi @@ -160,8 +167,8 @@ EXTRA_libcipher_la_SOURCES = \ blake2s-amd64-avx.S blake2s-amd64-avx512.S gost28147.lo: gost-sb.h -gost-sb.h: gost-s-box$(EXEEXT_FOR_BUILD) - ./gost-s-box$(EXEEXT_FOR_BUILD) $@ +gost-sb.h: $(HOST_TOOLS_PREFIX)/gost-s-box$(EXEEXT_FOR_BUILD) + $(HOST_TOOLS_PREFIX)/gost-s-box$(EXEEXT_FOR_BUILD) $@ gost-s-box$(EXEEXT_FOR_BUILD): gost-s-box.c $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ ================================================ FILE: ports/libgcrypt/portfile.cmake ================================================ vcpkg_download_distfile(tarball URLS "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${VERSION}.tar.bz2" "https://mirrors.dotsrc.org/gcrypt/libgcrypt/libgcrypt-${VERSION}.tar.bz2" "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${VERSION}.tar.bz2" FILENAME "libgcrypt-${VERSION}.tar.bz2" SHA512 e4be1f9d32bb672663499a1203454b9c646b7f237d9acb64303b991798fe3f4c3366793b0564b94c6687885353f6e7fef6ae6e74a57ccb5eb5606e77c81b3738 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${tarball}" PATCHES cross-tools.patch ) if(VCPKG_CROSSCOMPILING) set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/libgpg-error/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF LANGUAGES C ASM OPTIONS --disable-doc OPTIONS_RELEASE "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" OPTIONS_DEBUG "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/cipher/gost-s-box${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" USE_SOURCE_PERMISSIONS ) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() set(install_prefix "${CURRENT_INSTALLED_DIR}") if(VCPKG_HOST_IS_WINDOWS) string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" install_prefix "${install_prefix}") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/libgcrypt-config" "${install_prefix}" "`dirname $0`/../../..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/libgcrypt-config" "${install_prefix}" "`dirname $0`/../../../..") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(COMMENT [[ The library is distributed under the terms of the GNU Lesser General Public License (LGPL). The helper programs as well as the documentation are distributed under the terms of the GNU General Public License (GPL). There are additonal notices about contributions that require these additional notices are distributed. ]] FILE_LIST "${SOURCE_PATH}/COPYING.LIB" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/LICENSES" ) ================================================ FILE: ports/libgcrypt/vcpkg.json ================================================ { "name": "libgcrypt", "version": "1.12.1", "description": "A general purpose cryptographic library", "homepage": "https://gnupg.org/software/libgcrypt/index.html", "license": null, "supports": "!windows | mingw", "dependencies": [ { "name": "libgcrypt", "host": true }, "libgpg-error", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libgd/cmake-project-include.cmake ================================================ if(NOT BUILD_SHARED_LIBS) add_definitions(-DNONDLL) endif() ================================================ FILE: ports/libgd/control-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b3e5b3..bab784a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,6 +182,21 @@ else (USE_EXT_GD) SET(ENABLE_GD_FORMATS ${ENABLE_GD_FORMATS}) + # The remaining code uses _FOUND, but this could be set as side effect. + # Restore explicit control. _FOUND is implied by _REQUIRED. + set(FONTCONFIG_FOUND ${ENABLE_FONTCONFIG}) + set(FREETYPE_FOUND ${ENABLE_FREETYPE}) + set(HEIF_FOUND ${ENABLE_HEIF}) + set(ICONV_FOUND ${ENABLE_ICONV}) + set(JPEG_FOUND ${ENABLE_JPEG}) + set(LIQ_FOUND ${ENABLE_LIQ}) + set(PNG_FOUND ${ENABLE_PNG}) + set(RAQM_FOUND ${ENABLE_RAQM}) + set(TIFF_FOUND ${ENABLE_TIFF}) + set(WEBP_FOUND ${ENABLE_WEBP}) + set(XPM_FOUND ${ENABLE_XPM}) + set(ZLIB_FOUND ${ENABLE_GD_FORMATS}) + if (FREETYPE_FOUND) INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS}) SET(HAVE_FT2BUILD_H 1) @@ -299,8 +299,6 @@ else (USE_EXT_GD) endif (USE_EXT_GD) add_subdirectory(tests) -add_subdirectory(examples) -add_subdirectory(docs) add_custom_target(distclean ${GD_SOURCE_DIR}/cmake/distclean.sh) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3839bc7..4cb56eb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -150,6 +150,9 @@ if (ZLIB_FOUND) set(GD_PROGRAMS ${GD_PROGRAMS} gd2copypal gd2togif giftogd2) endif() +if(NOT ENABLE_TOOLS) + set(GD_PROGRAMS "") +endif() foreach(program ${GD_PROGRAMS}) add_executable(${program} ${program}.c) if (WIN32) @@ -180,7 +183,9 @@ install(TARGETS ${GD_INSTALL_TARGETS} RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(ENABLE_TOOLS) install(PROGRAMS bdftogd DESTINATION bin) +endif() install(FILES gd.h gd_color_map.h ================================================ FILE: ports/libgd/fix-dependencies.cmake ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bab784a..76c20e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,7 +134,10 @@ else (USE_EXT_GD) endif (ENABLE_ICONV) IF (ENABLE_WEBP) - FIND_PACKAGE(WEBP REQUIRED) + find_package(WEBP NAMES WebP CONFIG REQUIRED) + set(WEBP_INCLUDE_DIR "") + set(WEBP_LIBRARIES WebP::webp) + list(APPEND PKG_REQUIRES_PRIVATES libwebp) ENDIF (ENABLE_WEBP) IF (ENABLE_HEIF) @@ -173,7 +176,9 @@ else (USE_EXT_GD) endif (ENABLE_XPM) if (ENABLE_FONTCONFIG) - FIND_PACKAGE(FontConfig REQUIRED) + FIND_PACKAGE(Fontconfig REQUIRED) + set(FONTCONFIG_INCLUDE_DIR "") + set(FONTCONFIG_LIBRARY Fontconfig::Fontconfig) endif (ENABLE_FONTCONFIG) if (ENABLE_RAQM) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4cb56eb..74fa26b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -125,7 +125,6 @@ endif() SET(LIBS_PRIVATES ${ICONV_LIBRARIES} ${LIQ_LIBRARIES} - ${WEBP_LIBRARIES} ) set(GD_PROGRAMS gdcmpgif) ================================================ FILE: ports/libgd/fix-static-usage.patch ================================================ diff --git a/src/gd.h b/src/gd.h index 3056039..8a7608a 100644 --- a/src/gd.h +++ b/src/gd.h @@ -62,6 +62,10 @@ extern "C" { # else # define BGD_EXPORT_DATA_PROT __declspec(dllimport) # endif +# ifdef NONDLL +# undef BGD_EXPORT_DATA_PROT +# define BGD_EXPORT_DATA_PROT +# endif # endif # define BGD_STDCALL __stdcall # define BGD_EXPORT_DATA_IMPL ================================================ FILE: ports/libgd/fix_msvc_build.patch ================================================ diff --git a/src/gd_webp.c b/src/gd_webp.c index e9ad802..7631f27 100644 --- a/src/gd_webp.c +++ b/src/gd_webp.c @@ -16,6 +16,7 @@ #include "gd.h" #include "gd_errors.h" #include "gdhelpers.h" +#include "gd_intern.h" # for ssize_t #ifdef HAVE_LIBWEBP #include "webp/decode.h" ================================================ FILE: ports/libgd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libgd/libgd REF b5319a41286107b53daa0e08e402aa1819764bdc # gd-2.3.3 SHA512 b4c6ca1d9575048de35a38b0db69e7380e160293133c1f72ae570f83ce614d4f2fd2615d217f7a0023e2265652c1089561b906beabca56c15e6ec0250e4394b2 HEAD_REF master PATCHES control-build.patch fix-dependencies.cmake fix_msvc_build.patch fix-static-usage.patch ) # Delete vendored Find modules file(REMOVE "${SOURCE_PATH}/cmake/modules/CMakeParseArguments.cmake" "${SOURCE_PATH}/cmake/modules/FindFontConfig.cmake" "${SOURCE_PATH}/cmake/modules/FindFreetype.cmake" "${SOURCE_PATH}/cmake/modules/FindJPEG.cmake" "${SOURCE_PATH}/cmake/modules/FindPackageHandleStandardArgs.cmake" "${SOURCE_PATH}/cmake/modules/FindPNG.cmake" "${SOURCE_PATH}/cmake/modules/FindWEBP.cmake" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fontconfig ENABLE_FONTCONFIG freetype ENABLE_FREETYPE jpeg ENABLE_JPEG tiff ENABLE_TIFF png ENABLE_PNG tools ENABLE_TOOLS webp ENABLE_WEBP ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_STATIC_LIBS=${BUILD_STATIC} "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" OPTIONS_DEBUG -DENABLE_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(BUILD_STATIC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gd.h" "ifdef NONDLL" "if 1") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) string(REPLACE "_dynamic" "" suffix "_${VCPKG_LIBRARY_LINKAGE}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gdlib.pc" " -lgd" " -llibgd${suffix}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gdlib.pc" " -lgd" " -llibgd${suffix}") endif() endif() vcpkg_fixup_pkgconfig() if(ENABLE_TOOLS) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/bdftogd" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bdftogd") vcpkg_list(SET tool_names gdcmpgif) if(ENABLE_PNG) vcpkg_list(APPEND tool_names gdtopng pngtogd) endif() if(NOT VCPKG_TARGET_IS_WINDOWS) if(ENABLE_FREETYPE AND ENABLE_JPEG) vcpkg_list(APPEND tool_names annotate) endif() if(ENABLE_PNG) vcpkg_list(APPEND tool_names webpng) endif() endif() vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libgd/usage ================================================ libgd can be imported via CMake FindPkgConfig module: find_package(PkgConfig) pkg_check_modules(LIBGD REQUIRED IMPORTED_TARGET gdlib) target_link_libraries(main PRIVATE PkgConfig::LIBGD) ================================================ FILE: ports/libgd/vcpkg.json ================================================ { "name": "libgd", "version-semver": "2.3.3", "port-version": 3, "description": "Open source code library for the dynamic creation of images by programmers.", "homepage": "https://github.com/libgd/libgd", "license": "GD", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "fontconfig", "freetype", "jpeg", "png", "tiff", "webp" ], "features": { "fontconfig": { "description": "Support for Fontconfig", "dependencies": [ "fontconfig" ] }, "freetype": { "description": "Support for FreeType", "dependencies": [ "freetype" ] }, "jpeg": { "description": "Support for JPEG", "dependencies": [ "libjpeg-turbo" ] }, "png": { "description": "Support for PNG", "dependencies": [ "libpng", "zlib" ] }, "tiff": { "description": "Support for TIFF", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "tools": { "description": "Build tools" }, "webp": { "description": "Support for WebP", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/libgeotiff/cmakelists.patch ================================================ diff --git a/libgeotiff/cmake/CMakeLists.txt b/libgeotiff/cmake/CMakeLists.txt index 47a2b00..3809ba3 100644 --- a/libgeotiff/cmake/CMakeLists.txt +++ b/libgeotiff/cmake/CMakeLists.txt @@ -6,6 +6,7 @@ # ${INSTALL_CMAKE_DIR} and @PROJECT_ROOT_DIR@ is the relative # path to the root from there. (Note that the whole install tree can # be relocated.) +if (0) if (NOT WIN32) set (INSTALL_CMAKE_DIR "share/cmake/${PROJECT_NAME}") set (PROJECT_ROOT_DIR "../../..") @@ -13,6 +14,10 @@ else () set (INSTALL_CMAKE_DIR "cmake") set (PROJECT_ROOT_DIR "..") endif () +else() + set (INSTALL_CMAKE_DIR "share/geotiff") + set (PROJECT_ROOT_DIR "../..") +endif() configure_file (project-config.cmake.in project-config.cmake @ONLY) configure_file (project-config-version.cmake.in ================================================ FILE: ports/libgeotiff/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OSGeo/libgeotiff REF ${VERSION} SHA512 03468e8eeaf97d82798bf341cf2e27753eb47af985fb08fc6176be799bd0e1e879c6d1701577f7568f269cbef0bb0a20ae460bb943f847daf49aa54601441683 HEAD_REF master PATCHES cmakelists.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools WITH_JPEG tools WITH_UTILITIES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libgeotiff" OPTIONS -DWITH_TIFF=1 -DHAVE_TIFFOPEN=1 -DHAVE_TIFFMERGEFIELDINFO=1 -DCMAKE_MACOSX_BUNDLE=0 -DCMAKE_INSTALL_MANDIR=share/unused -DCMAKE_INSTALL_DOCDIR=share/unused ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(WITH_UTILITIES) vcpkg_copy_tools(TOOL_NAMES applygeo geotifcp listgeo makegeo AUTO_CLEAN) endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME geotiff) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/unused" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/libgeotiff/LICENSE") ================================================ FILE: ports/libgeotiff/usage ================================================ libgeotiff provides a CMake config file: find_package(GeoTIFF CONFIG REQUIRED) target_include_directories(main PRIVATE ${GEOTIFF_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${GEOTIFF_LIBRARIES}) libgeotiff provides pkg-config modules: # GeoTIFF file format library libgeotiff ================================================ FILE: ports/libgeotiff/vcpkg.json ================================================ { "name": "libgeotiff", "version": "1.7.4", "description": "Libgeotiff is an open source library on top of libtiff for reading and writing GeoTIFF information tags.", "homepage": "https://github.com/OSGeo/libgeotiff", "license": "MIT", "dependencies": [ { "name": "proj", "default-features": false, "features": [ "tiff" ] }, { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Install libgeotiff utility programs", "dependencies": [ "libjpeg-turbo" ] } } } ================================================ FILE: ports/libgig/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://download.linuxsampler.org/packages/libgig-${VERSION}.tar.bz2" FILENAME "libgig-${VERSION}.tar.bz2" SHA512 df7b1146c7326306c052113dd69fe7731127104340818cf939da04eff10a42c88b629121fd15519d5efa211e73a61fb318754bff6d02175ea2b28df2567b59c3 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES replace_cpp23warning.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBGIG_BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools LIBGIG_BUILD_TOOLS tests LIBGIG_ENABLE_TESTING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBGIG_BUILD_SHARED=${LIBGIG_BUILD_SHARED} -DLIBGIG_ENABLE_TESTING=OFF ) vcpkg_cmake_install() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dlsdump gigdump gigmerge korg2gig korgdump rifftree sf2dump SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin") endif() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libgig/replace_cpp23warning.patch ================================================ diff --git "a/src/RIFF.h" "b/src/RIFF.h" index f6e7fc8..7746609 100644 --- "a/src/RIFF.h" +++ "b/src/RIFF.h" @@ -24,8 +24,8 @@ #ifndef __RIFF_H__ #define __RIFF_H__ -#if __cplusplus < 201103L -# warning C++11 or higher required for libgig +#if __cplusplus < 201103L && !defined(_MSC_VER) +# pragma message("C++11 or higher required for libgig") #endif #include ================================================ FILE: ports/libgig/vcpkg.json ================================================ { "name": "libgig", "version": "4.5.2", "description": "C++ library for loading Gigasampler files and DLS Level 1/2 files", "homepage": "https://www.linuxsampler.org/libgig/", "license": "GPL-2.0-or-later", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build extra tools", "dependencies": [ "libsndfile" ] } } } ================================================ FILE: ports/libgit2/c-standard.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5be7bef..5f9ed79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,7 @@ option(DEPRECATE_HARD "Do not include deprecated functions in the libra if("${CMAKE_SYSTEM_NAME}" STREQUAL "Android") set(CMAKE_C_STANDARD "99" CACHE STRING "The C standard to compile against") else() - set(CMAKE_C_STANDARD "90" CACHE STRING "The C standard to compile against") + set(CMAKE_C_STANDARD "99" CACHE STRING "The C standard to compile against") endif() option(CMAKE_C_EXTENSIONS "Whether compiler extensions are supported" OFF) option(ENABLE_WERROR "Enable compilation with -Werror" OFF) /tmp/bbb.patch (END)diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt index 0dddb02..af85510 100644 --- a/src/libgit2/CMakeLists.txt +++ b/src/libgit2/CMakeLists.txt @@ -60,7 +60,7 @@ target_link_libraries(libgit2package ${LIBGIT2_SYSTEM_LIBS}) target_include_directories(libgit2package SYSTEM PRIVATE ${LIBGIT2_INCLUDES}) target_include_directories(libgit2package INTERFACE $) -set_target_properties(libgit2package PROPERTIES C_STANDARD 90) +set_target_properties(libgit2package PROPERTIES C_STANDARD 99) set_target_properties(libgit2package PROPERTIES C_EXTENSIONS OFF) set_target_properties(libgit2package PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set_target_properties(libgit2package PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) ================================================ FILE: ports/libgit2/cli-include-dirs.diff ================================================ diff --git a/src/cli/CMakeLists.txt b/src/cli/CMakeLists.txt index 84b6c19..df2119c 100644 --- a/src/cli/CMakeLists.txt +++ b/src/cli/CMakeLists.txt @@ -46,6 +46,7 @@ set_target_properties(git2_cli PROPERTIES OUTPUT_NAME ${LIBGIT2_FILENAME}) ide_split_sources(git2_cli) target_include_directories(git2_cli PRIVATE ${CLI_INCLUDES}) +target_include_directories(git2_cli SYSTEM PRIVATE ${LIBGIT2_SYSTEM_INCLUDES}) if(MSVC_IDE) # Precompiled headers ================================================ FILE: ports/libgit2/dependencies.diff ================================================ diff --git a/cmake/SelectRegex.cmake b/cmake/SelectRegex.cmake index 2a3a91b..523fa72 100644 --- a/cmake/SelectRegex.cmake +++ b/cmake/SelectRegex.cmake @@ -17,7 +17,9 @@ if(REGEX_BACKEND STREQUAL "regcomp_l") add_feature_info(regex ON "using system regcomp_l") set(GIT_REGEX_REGCOMP_L 1) elseif(REGEX_BACKEND STREQUAL "pcre2") - find_package(PCRE2) + find_package(PkgConfig REQUIRED) + pkg_check_modules(PCRE2 REQUIRED libpcre2-8) + set(PCRE2_LIBRARIES "${PCRE2_LINK_LIBRARIES}") if(NOT PCRE2_FOUND) MESSAGE(FATAL_ERROR "PCRE2 support was requested but not found") @@ -33,6 +35,9 @@ elseif(REGEX_BACKEND STREQUAL "pcre") add_feature_info(regex ON "using system PCRE") set(GIT_REGEX_PCRE 1) + find_package(PkgConfig REQUIRED) + pkg_check_modules(PCRE REQUIRED libpcre) + set(PCRE_LIBRARIES "${PCRE_LINK_LIBRARIES}") list(APPEND LIBGIT2_SYSTEM_INCLUDES ${PCRE_INCLUDE_DIRS}) list(APPEND LIBGIT2_SYSTEM_LIBS ${PCRE_LIBRARIES}) list(APPEND LIBGIT2_PC_REQUIRES "libpcre") diff --git a/cmake/SelectSSH.cmake b/cmake/SelectSSH.cmake index 079857f50..a2e2bd212 100644 --- a/cmake/SelectSSH.cmake +++ b/cmake/SelectSSH.cmake @@ -4,7 +4,11 @@ if(USE_SSH STREQUAL "exec") add_feature_info(SSH ON "using OpenSSH exec support") elseif(USE_SSH STREQUAL ON OR USE_SSH STREQUAL "libssh2") - find_pkglibraries(LIBSSH2 libssh2) + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBSSH2 REQUIRED libssh2) + set(LIBSSH2_LIBRARIES "${LIBSSH2_LINK_LIBRARIES}") + set(LIBSSH2_LDFLAGS "") + list(APPEND LIBGIT2_PC_REQUIRES "libssh2") if(NOT LIBSSH2_FOUND) find_package(LibSSH2) ================================================ FILE: ports/libgit2/mingw-winhttp.diff ================================================ diff --git a/cmake/SelectHTTPSBackend.cmake b/cmake/SelectHTTPSBackend.cmake index 0316b3a..a70f6b6 100644 --- a/cmake/SelectHTTPSBackend.cmake +++ b/cmake/SelectHTTPSBackend.cmake @@ -125,7 +125,7 @@ if(USE_HTTPS) # Since MinGW does not come with headers or an import library for winhttp, # we have to include a private header and generate our own import library - if(MINGW) + if(0) add_subdirectory("${PROJECT_SOURCE_DIR}/deps/winhttp" "${PROJECT_BINARY_DIR}/deps/winhttp") list(APPEND LIBGIT2_SYSTEM_LIBS winhttp) list(APPEND LIBGIT2_DEPENDENCY_INCLUDES "${PROJECT_SOURCE_DIR}/deps/winhttp") ================================================ FILE: ports/libgit2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libgit2/libgit2 REF "v${VERSION}" SHA512 b9ac2d0a7cc92a31057fbf066e47145cdda89ebf0489d712d4452c709c3de9923a93a3c37128fdcfd8fbb5498f513a519a7f2a77ad6ef4efafe865323d481f18 HEAD_REF main PATCHES c-standard.diff # for 'inline' in system headers cli-include-dirs.diff dependencies.diff mingw-winhttp.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindPCRE.cmake" "${SOURCE_PATH}/cmake/FindPCRE2.cmake" "${SOURCE_PATH}/deps/chromium-zlib" "${SOURCE_PATH}/deps/http-parser" "${SOURCE_PATH}/deps/pcre" "${SOURCE_PATH}/deps/winhttp" "${SOURCE_PATH}/deps/zlib" ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) set(REGEX_BACKEND OFF) set(USE_HTTPS OFF) set(USE_SSH OFF) function(set_regex_backend VALUE) if(REGEX_BACKEND) message(FATAL_ERROR "Only one regex backend (pcre,pcre2) is allowed") endif() set(REGEX_BACKEND ${VALUE} PARENT_SCOPE) endfunction() function(set_tls_backend VALUE) if(USE_HTTPS) message(FATAL_ERROR "Only one TLS backend (openssl,winhttp,sectransp,mbedtls) is allowed") endif() set(USE_HTTPS ${VALUE} PARENT_SCOPE) endfunction() foreach(GIT2_FEATURE ${FEATURES}) if(GIT2_FEATURE STREQUAL "pcre") set_regex_backend("pcre") elseif(GIT2_FEATURE STREQUAL "pcre2") set_regex_backend("pcre2") elseif(GIT2_FEATURE STREQUAL "openssl") set_tls_backend("OpenSSL") elseif(GIT2_FEATURE STREQUAL "winhttp") set_tls_backend("WinHTTP") elseif(GIT2_FEATURE STREQUAL "sectransp") set_tls_backend("SecureTransport") elseif(GIT2_FEATURE STREQUAL "mbedtls") set_tls_backend("mbedTLS") elseif(GIT2_FEATURE STREQUAL "ssh") set(USE_SSH ON) message(STATUS "This version of `libgit2` uses the default (`libssh2`) backend. To use the newer backend which utilizes the `ssh` CLI from a local install of OpenSSH instead, create an overlay port of this with USE_SSH set to 'exec' and the `libssh2` dependency removed.") message(STATUS "This recipe is at ${CMAKE_CURRENT_LIST_DIR}") message(STATUS "See the overlay ports documentation at https://learn.microsoft.com/vcpkg/concepts/overlay-ports") endif() endforeach() if(NOT REGEX_BACKEND) message(FATAL_ERROR "Must choose pcre or pcre2 regex backend") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_check_features( OUT_FEATURE_OPTIONS GIT2_FEATURES FEATURES tools BUILD_CLI sha256 EXPERIMENTAL_SHA256 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DUSE_HTTP_PARSER=system -DUSE_HTTPS=${USE_HTTPS} -DREGEX_BACKEND=${REGEX_BACKEND} -DUSE_SSH=${USE_SSH} -DSTATIC_CRT=${STATIC_CRT} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI:BOOL=ON ${GIT2_FEATURES} OPTIONS_DEBUG -DBUILD_CLI=OFF MAYBE_UNUSED_VARIABLES STATIC_CRT ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") if("tools" IN_LIST FEATURES) # Since SHA256 is considered an "experimental" feature, it renames the executable. This renames it back. if("sha256" IN_LIST FEATURES) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/git2-experimental${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/bin/git2${VCPKG_TARGET_EXECUTABLE_SUFFIX}") endif() vcpkg_copy_tools(TOOL_NAMES git2 AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") set(file_list "${SOURCE_PATH}/COPYING") if(NOT VCPKG_TARGET_IS_WINDOWS) file(WRITE "${CURRENT_BUILDTREES_DIR}/Notice for ntlmclient" [[ Copyright (c) Edward Thomson. All rights reserved. These source files are part of ntlmclient, distributed under the MIT license. ]]) list(APPEND file_list "${CURRENT_BUILDTREES_DIR}/Notice for ntlmclient") endif() vcpkg_install_copyright(FILE_LIST ${file_list}) ================================================ FILE: ports/libgit2/vcpkg.json ================================================ { "name": "libgit2", "version-semver": "1.9.2", "description": "A C library implementing the Git core methods with a solid API", "homepage": "https://github.com/libgit2/libgit2", "license": null, "supports": "!uwp", "dependencies": [ "http-parser", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "pcre", "ssl" ], "features": { "mbedtls": { "description": "SSL support (mbedTLS)", "supports": "!windows", "dependencies": [ "mbedtls" ] }, "openssl": { "description": "SSL support (OpenSSL)", "dependencies": [ "openssl" ] }, "pcre": { "description": "Build against external libpcre", "dependencies": [ "pcre" ] }, "pcre2": { "description": "Build against external libpcre2", "dependencies": [ "pcre2" ] }, "sectransp": { "description": "SSL support (sectransp)", "supports": "osx" }, "sha256": { "description": "[experimental] SHA256 OID support" }, "ssh": { "description": "SSH support via libssh2", "dependencies": [ "libssh2" ] }, "ssl": { "description": "Default SSL backend", "dependencies": [ { "name": "libgit2", "default-features": false, "features": [ "sectransp" ], "platform": "osx" }, { "name": "libgit2", "default-features": false, "features": [ "winhttp" ], "platform": "windows" }, { "name": "libgit2", "default-features": false, "features": [ "openssl" ], "platform": "!windows & !osx" } ] }, "tools": { "description": "Build CLI tools" }, "winhttp": { "description": "SSL support (WinHTTP)", "supports": "windows & !uwp" } } } ================================================ FILE: ports/libgme/cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 62349bd48d..23985cdd94 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,7 +74,7 @@ option(BUILD_FRAMEWORK "Build framework instead of dylib (on macOS)" OFF) # Check for GCC/Clang "visibility" support. if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR - CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -W -Wextra") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") ================================================ FILE: ports/libgme/disable-player-and-demo.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b352102db48f265448a35b731cb712b8e112d39..62349bd48ddd3d6c44e6ee68243605781814de2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,5 +102,3 @@ endif () add_subdirectory(gme) # EXCLUDE_FROM_ALL adds build rules but keeps it out of default build -add_subdirectory(player EXCLUDE_FROM_ALL) -add_subdirectory(demo EXCLUDE_FROM_ALL) ================================================ FILE: ports/libgme/disable-static-zlib-hack.patch ================================================ diff --git a/gme/CMakeLists.txt b/gme/CMakeLists.txt index b1b2bf0aee0d79dbeb76fd46756ad9709af57ae3..aacb5a8067f77cfeac560d65cc1538dd75008c9b 100644 --- a/gme/CMakeLists.txt +++ b/gme/CMakeLists.txt @@ -17,7 +17,7 @@ set(libgme_SRCS Blip_Buffer.cpp # static builds need to find static zlib (and static forms of other needed # libraries. Ensure CMake looks only for static libs if we're doing a static # build. See https://stackoverflow.com/a/44738756 -if(NOT BUILD_SHARED_LIBS) +if(0) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") endif() ================================================ FILE: ports/libgme/portfile.cmake ================================================ vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO mpyne/game-music-emu REF "${VERSION}" SHA512 3d5e0dafb7ba239fb1c4cebf47c7e195a350bfe7a43606deff1ecff1ab21a0aac47343205004c0aba06ae249a0e186122c1b7dec06fc52272d4baaea9a480796 PATCHES disable-player-and-demo.patch disable-static-zlib-hack.patch cmake4.patch ) # This file is generated during the CMake build file(REMOVE "${SOURCE_PATH}/gme/gme_types.h") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ay USE_GME_AY gbs USE_GME_GBS gym USE_GME_GYM hes USE_GME_HES kss USE_GME_KSS nsf USE_GME_NSF nsfe USE_GME_NSFE sap USE_GME_SAP spc USE_GME_SPC vgm USE_GME_VGM spc-isolated-echo-buffer GME_SPC_ISOLATED_ECHO_BUFFER ) set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB ON) set(CMAKE_REQUIRE_FIND_PACKAGE_ZLIB OFF) if("vgm" IN_LIST FEATURES) set(CMAKE_DISABLE_FIND_PACKAGE_ZLIB OFF) set(CMAKE_REQUIRE_FIND_PACKAGE_ZLIB ON) endif() if("vgm" IN_LIST FEATURES OR "gym" IN_LIST FEATURES) set(GME_YM2612_EMU Nuked) message(STATUS "This version of libgme uses the Nuked YM2612 emulator. To use the MAME or GENS instead, create an overlay port of this with GME_YM2612_EMU set to \"MAME\" or \"GENS\" accordingly.") message(STATUS "This recipe is at ${CMAKE_CURRENT_LIST_DIR}") message(STATUS "See the overlay ports documentation at https://github.com/microsoft/vcpkg/blob/master/docs/specifications/ports-overlay.md") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DGME_YM2612_EMU=${GME_YM2612_EMU} -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=${CMAKE_DISABLE_FIND_PACKAGE_ZLIB} -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=${CMAKE_REQUIRE_FIND_PACKAGE_ZLIB} -DENABLE_UBSAN=OFF MAYBE_UNUSED_VARIABLES GME_YM2612_EMU GME_SPC_ISOLATED_ECHO_BUFFER ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) file(GLOB LICENSE_FILES "${SOURCE_PATH}/license*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/libgme/vcpkg.json ================================================ { "name": "libgme", "version": "0.6.3", "port-version": 1, "description": "Video game music file emulation/playback library", "homepage": "https://bitbucket.org/mpyne/game-music-emu/wiki/Home", "license": "LGPL-2.1-or-later OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "ay", "gbs", "gym", "hes", "kss", "nsf", "nsfe", "sap", "spc", "vgm" ], "features": { "ay": { "description": "Enable Spectrum ZX music emulation" }, "gbs": { "description": "Enable Game Boy music emulation" }, "gym": { "description": "Enable Sega MegaDrive/Genesis music emulation" }, "hes": { "description": "Enable PC Engine/TurboGrafx-16 music emulation" }, "kss": { "description": "Enable MSX or other Z80 systems music emulation" }, "nsf": { "description": "Enable NES NSF music emulation" }, "nsfe": { "description": "Enable NES NSFE and NSF music emulation" }, "sap": { "description": "Enable Atari SAP music emulation" }, "spc": { "description": "Enable SNES SPC music emulation" }, "spc-isolated-echo-buffer": { "description": "Enable isolated echo buffer on SPC emulator to allow correct playing of \"dodgy\" SPC files made for various ROM hacks ran on ZSNES" }, "vgm": { "description": "Enable Sega VGM/VGZ music emulation", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libgnutls/ccasflags.patch ================================================ diff --git a/configure.ac b/configure.ac index d6f283a..77e5a56 100644 --- a/configure.ac +++ b/configure.ac @@ -40,6 +40,8 @@ AC_PROG_CC gl_EARLY ggl_EARLY unistring_EARLY +# Override AM_PROG_AS default +test "${CCASFLAGS+set}" = set || CCASFLAGS="$CPPFLAGS $CFLAGS" AM_PROG_AS AM_PROG_AR AC_PROG_CXX @@ -243,7 +245,8 @@ if test "$hw_accel" = aarch64; then AARCH64_CCASFLAGS="-Wa,-march=all" AC_MSG_CHECKING([whether the compiler supports -Wa,-march=all]) : > conftest.s - if "$CCAS" "$AARCH64_CCASFLAGS" -c conftest.s >/dev/null 2>&1; then + # As in Makefiles + if "$CCAS" "$AARCH64_CCASFLAGS" $CCASFLAGS -c conftest.s >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) ================================================ FILE: ports/libgnutls/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]*[.][0-9]*)[.].*" "\\1" GNUTLS_BRANCH "${VERSION}") vcpkg_download_distfile(tarball URLS "https://gnupg.org/ftp/gcrypt/gnutls/v${GNUTLS_BRANCH}/gnutls-${VERSION}.tar.xz" "https://mirrors.dotsrc.org/gcrypt/gnutls/v${GNUTLS_BRANCH}/gnutls-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/gnutls/v${GNUTLS_BRANCH}/gnutls-${VERSION}.tar.xz" FILENAME "gnutls-${VERSION}.tar.xz" SHA512 332a8e5200461517c7f08515e3aaab0bec6222747422e33e9e7d25d35613e3d0695a803fce226bd6a83f723054f551328bd99dcf0573e142be777dcf358e1a3b ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${tarball}" SOURCE_BASE "v${VERSION}" PATCHES ccasflags.patch use-gmp-pkgconfig.patch ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() if ("openssl" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-openssl-compatibility") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND options "LIBS=\$LIBS -liconv -lcharset") # for libunistring endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND options "ac_cv_dlopen_soname_works=no") # ensure vcpkg libs endif() set(ENV{GTKDOCIZE} true) # true, the program set(ENV{YACC} false) # false, the program - not used here vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-dependency-tracking --disable-doc --disable-guile --disable-libdane --disable-maintainer-mode --disable-rpath --disable-tests --with-brotli=no --with-liboqs=no --with-p11-kit=no --with-tpm=no --with-tpm2=no --with-zlib=link --with-zstd=no ${options} OPTIONS_DEBUG --disable-tools ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( COMMENT [[ The main libraries (libgnutls and libdane) are released under the GNU Lesser General Public License version 2.1 or later (LGPLv2+, see COPYING.LESSERv2 for the license terms), and the gnutls-openssl extra library and the application are under the GNU General Public License version 3 or later (GPLv3+, see COPYING for the license terms), unless otherwise specified in the indivual source files. ]] FILE_LIST "${SOURCE_PATH}/COPYING.LESSERv2" "${SOURCE_PATH}/COPYING" ) ================================================ FILE: ports/libgnutls/use-gmp-pkgconfig.patch ================================================ diff --git a/m4/hooks.m4 b/m4/hooks.m4 index e026dd1..cf6064c 100644 --- a/m4/hooks.m4 +++ b/m4/hooks.m4 @@ -91,6 +91,7 @@ AC_MSG_ERROR([[ mini_nettle=$withval, mini_nettle=no) + PKG_CHECK_MODULES(GMP, [gmp], [], [AC_MSG_ERROR([[gmp is required]])]) AC_ARG_VAR(GMP_CFLAGS, [C compiler flags for gmp]) AC_ARG_VAR(GMP_LIBS, [linker flags for gmp]) if test "$mini_nettle" != no;then ================================================ FILE: ports/libgnutls/vcpkg.json ================================================ { "name": "libgnutls", "version": "3.8.12", "description": "A secure communications library implementing the SSL, TLS and DTLS protocols.", "homepage": "https://www.gnutls.org/", "license": null, "supports": "!windows | mingw", "dependencies": [ "gmp", "libidn2", "libtasn1", "libunistring", "nettle", { "name": "vcpkg-make", "host": true }, "zlib" ], "features": { "nls": { "description": "Enable native language support.", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] }, "openssl": { "description": "Enable the OpenSSL compatibility library." } } } ================================================ FILE: ports/libgo/Add-target-include-directory.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e21eee0..017cc7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,6 +176,8 @@ if (WIN32) set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4819 /wd4267") endif() +TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} INTERFACE $) + install(TARGETS ${PROJECT_NAME} EXPORT "${PROJECT_NAME}Config" LIBRARY DESTINATION lib ================================================ FILE: ports/libgo/add-stdexcept.diff ================================================ diff --git a/libgo/common/anys.h b/libgo/common/anys.h index e5b2219..80c22e3 100644 --- a/libgo/common/anys.h +++ b/libgo/common/anys.h @@ -7,6 +7,7 @@ #include #include #include +#include namespace co { diff --git a/libgo/common/spinlock.h b/libgo/common/spinlock.h index b0adeb8..30789ad 100644 --- a/libgo/common/spinlock.h +++ b/libgo/common/spinlock.h @@ -1,6 +1,7 @@ #pragma once #include "config.h" #include +#include namespace co { ================================================ FILE: ports/libgo/cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dfa9b72..e21eee0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,9 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.0) ################################################################################### project(libgo) +if(0) enable_language(C ASM) if (CMAKE_BUILD_TYPE) @@ -43,34 +44,38 @@ message("-------------- Env ---------------") message(" CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}") message(" CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") message("----------------------------------") +endif() + +enable_language(C CXX ASM) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed") +set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") +set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" CACHE PATH "Path where cmake configs will be installed") +set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) +foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + +set(ENABLE_DEBUGGER 0) +set(ENABLE_HOOK 0) configure_file(${PROJECT_SOURCE_DIR}/libgo/common/cmake_config.h.in ${PROJECT_SOURCE_DIR}/libgo/common/cmake_config.h) message("----------------------------------") if (UNIX) - set(CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall ${CMAKE_CXX_FLAGS}") - set(CMAKE_CXX_FLAGS_DEBUG "-g") - set(CMAKE_CXX_FLAGS_RELEASE "-g -O3 -DNDEBUG") - set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS S) - message("--> select asm source file, please wait about 5 seconds ...") execute_process(COMMAND "${PROJECT_SOURCE_DIR}/third_party/select_asm.sh" "${PROJECT_SOURCE_DIR}" "jump" OUTPUT_VARIABLE jump_asm_file) execute_process(COMMAND "${PROJECT_SOURCE_DIR}/third_party/select_asm.sh" "${PROJECT_SOURCE_DIR}" "make" OUTPUT_VARIABLE make_asm_file) elseif (WIN32) - # windows platform add_definitions(-D_CRT_SECURE_NO_WARNINGS) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd /EHsc") - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT /EHsc") - - #set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS asm) - #file(COPY ${PROJECT_SOURCE_DIR}/third_party/boost.context/libs/context/src/asm/make_x86_64_ms_pe_masm.asm DESTINATION ${PROJECT_SOURCE_DIR}/libgo/context) - #file(COPY ${PROJECT_SOURCE_DIR}/third_party/boost.context/libs/context/src/asm/jump_x86_64_ms_pe_masm.asm DESTINATION ${PROJECT_SOURCE_DIR}/libgo/context) endif() -message("------------ Cxx flags -------------") -message(" CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}: ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") -message("------------------------------------") - include_directories(${PROJECT_SOURCE_DIR}) aux_source_directory(${PROJECT_SOURCE_DIR}/libgo CO_SRC_LIST) aux_source_directory(${PROJECT_SOURCE_DIR}/libgo/common CO_SRC_LIST) @@ -97,6 +102,7 @@ else() aux_source_directory(${PROJECT_SOURCE_DIR}/libgo/netio/disable_hook CO_SRC_LIST) endif() +if(0) set(TARGET "libgo") set(STATIC_T "libgo_static") set(STATIC_HOOK "static_hook") @@ -136,7 +142,6 @@ if (UNIX) ) set(PROFILE_FLAGS "-pg ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}") - #message("PROFILE_FLAGS: ${PROFILE_FLAGS}") add_custom_target(profile COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=PROFILE -DCMAKE_CXX_FLAGS_PROFILE=\\'${PROFILE_FLAGS}\\' ${CMAKE_SOURCE_DIR} @@ -160,3 +165,27 @@ if (WIN32) add_subdirectory(${PROJECT_SOURCE_DIR}/tutorial) endif() endif() +endif() + +list(APPEND CO_SRC_LIST ${jump_asm_file}) +list(APPEND CO_SRC_LIST ${make_asm_file}) +add_library(${PROJECT_NAME} ${CO_SRC_LIST}) +target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS}) +if (WIN32) + target_link_libraries(${PROJECT_NAME} ws2_32) + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4819 /wd4267") +endif() + +install(TARGETS ${PROJECT_NAME} + EXPORT "${PROJECT_NAME}Config" + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin) + +install(DIRECTORY ${PROJECT_SOURCE_DIR}/libgo/ + DESTINATION ${INSTALL_INCLUDE_DIR} + FILES_MATCHING PATTERN "*.h") + +install(EXPORT "${PROJECT_NAME}Config" + NAMESPACE libgo:: + DESTINATION "${INSTALL_CMAKE_DIR}") ================================================ FILE: ports/libgo/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yyzybb537/libgo REF 5d4f36508e8eb2d5aa17cf37cd951dc91da23096 #v3.1 SHA512 0f281f58116148ba1dd3904febbc391d47190f8e148b70bed7c4b7e6cb3efa5e41e2b7be4832ceeb805996e085f4c2d89fd0cf3b0651e037b32758d6a441411b HEAD_REF master PATCHES cmake.patch Add-target-include-directory.patch add-stdexcept.diff ) vcpkg_from_github( OUT_SOURCE_PATH XHOOK_SOURCE_PATH REPO XBased/xhook REF e18c450541892212ca4f11dc91fa269fabf9646f SHA512 1bcf320f50cff13d92013a9f0ab5c818c2b6b63e9c1ac18c5dd69189e448d7a848f1678389d8b2c08c65f907afb3909e743f6c593d9cfb21e2bb67d5c294a166 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party") file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party") file(RENAME "${XHOOK_SOURCE_PATH}" "${SOURCE_PATH}/third_party/xhook") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/disable_hook") if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/unix/static_hook") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/windows") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libgo/netio/unix") endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libgo/vcpkg.json ================================================ { "name": "libgo", "version": "3.1", "port-version": 6, "description": "The best stackful coroutine by c++11.", "homepage": "https://github.com/yyzybb537/libgo", "license": "MIT", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libgossip/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f19760..1eaca89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,7 +66,7 @@ add_library(libgossip::core ALIAS libgossip) # ============================================ # Handle ASIO dependency # ============================================ -setup_bundled_asio() +find_package(asio CONFIG REQUIRED) # ============================================ # Network library @@ -82,10 +82,10 @@ add_library(libgossip::network ALIAS libgossip_net) # ============================================ # ASIO dependency # ============================================ -if(ASIO_FOUND) - target_include_directories( - libgossip_net PUBLIC $ - $) +if(1) + target_link_libraries( + libgossip_net PUBLIC $ + ) else() message(FATAL_ERROR "ASIO is required for the network library but was not found.\n" @@ -104,9 +104,8 @@ elseif(NOT LIBGOSSIP_VCPKG_MODE) "Please run: cd third_party && git clone --depth 1 --branch v3.11.2 https://github.com/nlohmann/json.git\n" "Or install nlohmann-json via your package manager.") else() - message(FATAL_ERROR - "nlohmann/json not found.\n" - "In VCPKG mode, please ensure nlohmann-json is installed via vcpkg.") + find_package(nlohmann_json CONFIG REQUIRED) + target_link_libraries(libgossip_net PUBLIC nlohmann_json::nlohmann_json) endif() target_link_libraries(libgossip_net PUBLIC libgossip) ================================================ FILE: ports/libgossip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO caomengxuan666/libgossip REF "v${VERSION}" SHA512 ae765138fac7077af09ce8ca769b5bf1bd6ca0a81e17cc4b397436309152fd8678f29ce699fc6534d56c5bead980b8b7cf0fbb7df528ef805c51d3210ab1eb24 HEAD_REF main PATCHES fix-dependencies.patch remove-export-headers.patch support-uwp.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_PYTHON_BINDINGS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libgossip) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libgossip/remove-export-headers.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dd29ed7..271b03a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,7 +112,6 @@ configure_package_config_file( install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libgossipConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/libgossipConfigVersion.cmake - ${CMAKE_CURRENT_BINARY_DIR}/libgossip_export.h DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libgossip) # Process examples if enabled ================================================ FILE: ports/libgossip/support-uwp.patch ================================================ diff --git a/src/net/tcp_transport.cpp b/src/net/tcp_transport.cpp index 4046b03..b675ed3 100644 --- a/src/net/tcp_transport.cpp +++ b/src/net/tcp_transport.cpp @@ -1,4 +1,9 @@ #include "net/tcp_transport.hpp" + +// For UWP applications +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#define ASIO_WINDOWS_APP +#endif #include "core/enum_reflection.inl" #include #include diff --git a/src/net/udp_transport.cpp b/src/net/udp_transport.cpp index a2c4bda..9720353 100644 --- a/src/net/udp_transport.cpp +++ b/src/net/udp_transport.cpp @@ -1,5 +1,10 @@ #include "net/udp_transport.hpp" #include "core/enum_reflection.inl" + +// For UWP applications +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#define ASIO_WINDOWS_APP +#endif #include #include #include ================================================ FILE: ports/libgossip/vcpkg.json ================================================ { "name": "libgossip", "version": "1.2.1.3", "description": "A C++17 implementation of the Gossip protocol, designed for decentralized distributed systems.", "homepage": "https://github.com/caomengxuan666/libgossip", "license": "MIT", "dependencies": [ "asio", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libgpg-error/android.diff ================================================ diff --git a/configure.ac b/configure.ac index ce369af..95cbba2 100644 --- a/configure.ac +++ b/configure.ac @@ -633,6 +633,7 @@ if test x"$gl_use_threads" = xno; then AC_MSG_NOTICE([generated src/lock-obj-pub.native.h for $host]) elif test x$cross_compiling = xyes; then case $host in + *-*-linux-android* | \ *-*-gnu* | *-*-linux-gnu* | *-*-linux-musl*) AC_CHECK_TOOL(OBJDUMP, [objdump]) if test -n "$OBJDUMP"; then ================================================ FILE: ports/libgpg-error/cross-tools.patch ================================================ diff --git a/src/Makefile.am b/src/Makefile.am index 9a86251..00cc2fd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -17,6 +17,12 @@ # License along with this program; if not, see . # SPDX-License-Identifier: LGPL-2.1+ +# Building host tools for native triplet, or not at all +CPPFLAGS_FOR_BUILD = $(CPPFLAGS) +CFLAGS_FOR_BUILD = $(CFLAGS) +LDFLAGS_FOR_BUILD = $(LDFLAGS) +# Using native tools, either this build or from host triplet +HOST_TOOLS_PREFIX ?= . # # We distribute the generated sources err-sources.h and err-codes.h, @@ -261,8 +267,8 @@ mkerrcodes$(EXEEXT_FOR_BUILD): mkerrcodes.c mkerrcodes.h Makefile $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \ $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c -code-from-errno.h: mkerrcodes$(EXEEXT_FOR_BUILD) Makefile - ./mkerrcodes$(EXEEXT_FOR_BUILD) | $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@ +code-from-errno.h: $(HOST_TOOLS_PREFIX)/mkerrcodes$(EXEEXT_FOR_BUILD) Makefile + $(HOST_TOOLS_PREFIX)/mkerrcodes$(EXEEXT_FOR_BUILD) | $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@ errnos-sym.h: Makefile mkstrtable.awk errnos.in $(AWK) -f $(srcdir)/mkstrtable.awk -v textidx=2 -v nogettext=1 \ @@ -306,10 +312,10 @@ endif # We also depend on versioninfo.rc because that is build by # config.status and thus has up-to-date version numbers. -gpg-error.h: Makefile mkheader$(EXEEXT_FOR_BUILD) $(parts_of_gpg_error_h) \ +gpg-error.h: Makefile $(HOST_TOOLS_PREFIX)/mkheader$(EXEEXT_FOR_BUILD) $(parts_of_gpg_error_h) \ versioninfo.rc ../config.h $(pre_mkheader_cmds) - ./mkheader$(EXEEXT_FOR_BUILD) $(mkheader_opts) \ + $(HOST_TOOLS_PREFIX)/mkheader$(EXEEXT_FOR_BUILD) $(mkheader_opts) \ $(host_triplet) $(srcdir)/gpg-error.h.in \ ../config.h $(PACKAGE_VERSION) $(VERSION_NUMBER) >$@ ================================================ FILE: ports/libgpg-error/gpgrt-config.patch ================================================ diff --git a/src/gpgrt-config.in b/src/gpgrt-config.in index bada0f2..8c03a05 100644 --- a/src/gpgrt-config.in +++ b/src/gpgrt-config.in @@ -78,7 +78,7 @@ substitute_vars () { esac done - echo "$__result" + echo "$__result" | sed -e 's,",,g' } # @@ -132,7 +132,6 @@ EOF2 *:|*:\ ) ;; *) echo "Error reading $_filename: $_line" 1>&2 - exit 1 ;; esac fi @@ -166,6 +165,7 @@ read_config_file () { fi exit 1 fi + VAR_pcfiledir="${RESULT%/*}" \ read_config_from_stdin $RESULT < $RESULT } @@ -540,6 +540,11 @@ while test $# -gt 0; do ;; esac done +vcpkg_prefix=$(echo "$0" | sed -e 's,^\([a-zA-Z]\):/,/\1/,') +case "$vcpkg_prefix" in +*/tools/libgpg-error/debug/bin/gpgrt-config) libdir="${vcpkg_prefix%/*/*/*/*/*}/debug/lib" ;; +*/tools/libgpg-error/bin/gpgrt-config) libdir="${vcpkg_prefix%/*/*/*/*}/lib" ;; +esac if env | grep '^PKG_CONFIG_LIBDIR=$' >/dev/null 2>&1; then # The variable set as empty, we use PKG_CONFIG_PATH in this case, @@ -598,7 +603,8 @@ output="" mt="no" -VAR_list=VAR_pc_sysrootdir +VAR_list="VAR_pcfiledir VAR_pc_sysrootdir" +VAR_pcfiledir="" if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then VAR_pc_sysrootdir="/" else ================================================ FILE: ports/libgpg-error/mingw.diff ================================================ diff --git a/configure.ac b/configure.ac index 4de263a..9aa0f69 100644 --- a/configure.ac +++ b/configure.ac @@ -200,6 +200,10 @@ esac AX_CC_FOR_BUILD AH_BOTTOM([ +#if defined(__MINGW32__) && !defined(_WIN32_WINNT) +#define _WIN32_WINNT 0x0600 /* for STARTUPINFOEX */ +#endif + /* Force using of NLS for W32 even if no libintl has been found. This is okay because we have our own gettext implementation for W32. */ #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS) ================================================ FILE: ports/libgpg-error/pkgconfig-libintl.patch ================================================ diff --git a/src/gpg-error.pc.in b/src/gpg-error.pc.in index 970bb6c..a51c9d3 100644 --- a/src/gpg-error.pc.in +++ b/src/gpg-error.pc.in @@ -11,5 +11,5 @@ Description: GPG Runtime Version: @PACKAGE_VERSION@ Cflags: @GPG_ERROR_CONFIG_CFLAGS@ Libs: @GPG_ERROR_CONFIG_LIBS@ -Libs.private: @GPG_ERROR_CONFIG_LIBS_PRIVATE@ +Libs.private: @GPG_ERROR_CONFIG_LIBS_PRIVATE@ @LIBINTL@ URL: https://www.gnupg.org/software/libgpg-error/index.html ================================================ FILE: ports/libgpg-error/portfile.cmake ================================================ vcpkg_download_distfile(tarball URLS "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-${VERSION}.tar.bz2" "https://mirrors.dotsrc.org/gcrypt/libgpg-error/libgpg-error-${VERSION}.tar.bz2" "https://www.mirrorservice.org/sites/ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${VERSION}.tar.bz2" FILENAME "libgpg-error-${VERSION}.tar.bz2" SHA512 86a2b4f94928e88aab23c84e0febb702453617edf3cddf45d0ed9ea817007085a6d132214fd2c855d816ec296514401157e89dab2790aea1edf5c376ea7e1f56 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${tarball}" PATCHES android.diff cross-tools.patch gpgrt-config.patch mingw.diff pkgconfig-libintl.patch win32-nls.diff ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() if(VCPKG_CROSSCOMPILING) set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND options "--disable-threads") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${options} --disable-doc --disable-tests ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/mkerrcodes${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/mkheader${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" USE_SOURCE_PERMISSIONS ) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(NOT "nls" IN_LIST FEATURES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/locale") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/libgpg-error/vcpkg.json ================================================ { "name": "libgpg-error", "version": "1.59", "description": "A runtime library for GnuPG and other software which likes to use it.", "homepage": "https://gnupg.org/software/libgpg-error/", "license": "LGPL-2.1-or-later", "supports": "!windows | mingw", "dependencies": [ { "name": "libgpg-error", "host": true }, { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/libgpg-error/win32-nls.diff ================================================ diff --git a/Makefile.am b/Makefile.am index 0f07509..65e058a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -105,6 +105,7 @@ gen-ChangeLog: if HAVE_W32_SYSTEM install-data-hook: +install-data-hook-orig: set -e; \ for i in $$(sed -e '/^#/d' -e 's/#.*//' $(top_srcdir)/po/LINGUAS); do \ $(MKDIR_P) "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES" || true; \ diff --git a/configure.ac b/configure.ac index 9aa0f69..ce369af 100644 --- a/configure.ac +++ b/configure.ac @@ -207,7 +207,7 @@ AH_BOTTOM([ /* Force using of NLS for W32 even if no libintl has been found. This is okay because we have our own gettext implementation for W32. */ #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS) -#define ENABLE_NLS 1 +/* keep NLS controlled by libgpg-error[nls] */ #endif /* Connect the generic estream-printf.c to our framework. */ ================================================ FILE: ports/libgpiod/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${VERSION}.tar.gz FILENAME libgpiod-${VERSION}.tar.gz SHA512 57ddb73faa1852c86886ec6b9b0e07c48200a8c01347bf9bc31ce5611de907140d20cabba63f33230bbfac558acae23676935ecf12b3c69ed9230a04cf252eb4 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" ) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) list(APPEND OPTIONS --enable-shared=yes) list(APPEND OPTIONS --enable-static=no) else() list(APPEND OPTIONS --enable-shared=no) list(APPEND OPTIONS --enable-static=yes) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if (VCPKG_DETECTED_CMAKE_CROSSCOMPILING STREQUAL "TRUE") list(APPEND OPTIONS "CC=${VCPKG_DETECTED_CMAKE_C_COMPILER}") if (VCPKG_TARGET_IS_LINUX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) list(APPEND OPTIONS ac_cv_func_malloc_0_nonnull=yes) list(APPEND OPTIONS ac_cv_func_realloc_0_nonnull=yes) endif() endif() if ("cxx-bindings" IN_LIST FEATURES) set(USE_CXX_BINDINGS yes) else() set(USE_CXX_BINDINGS no) endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} --enable-tools=no --enable-tests=no --enable-bindings-cxx=${USE_CXX_BINDINGS} --enable-bindings-python=no ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libgpiod/vcpkg.json ================================================ { "name": "libgpiod", "version": "2.1.3", "port-version": 1, "description": "C library and tools for interacting with the linux GPIO character device", "homepage": "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git", "license": "LGPL-2.1-or-later", "supports": "linux & (x64 | arm)", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-make", "host": true } ], "features": { "cxx-bindings": { "description": "Make available cxx bindings" } } } ================================================ FILE: ports/libgta/portfile.cmake ================================================ set(LIBGTA_VERSION 1.0.8) set(LIBGTA_HASH 99ec3d6317c9a12cf440a60bb989cc7a3fe35e0a1da3e65206e5cd52b69fb860850e61ea0f819511ef48ddc87c468c0ded710409990627096738886e1b358423) vcpkg_download_distfile(ARCHIVE URLS "http://download.savannah.nongnu.org/releases/gta/libgta-1.0.8.tar.xz" FILENAME "libgta-${LIBGTA_VERSION}.tar.xz" SHA512 ${LIBGTA_HASH}) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${LIBGTA_VERSION}" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGTA_BUILD_SHARED_LIB=${ENABLE_SHARED_LIBS} -DGTA_BUILD_STATIC_LIB=${ENABLE_STATIC_LIBS} -DGTA_BUILD_DOCUMENTATION=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libgta/vcpkg.json ================================================ { "name": "libgta", "version": "1.0.8", "port-version": 5, "description": "Libgta is a portable library that implements the Generic Tagged Array (GTA) file format.", "homepage": "https://download.savannah.nongnu.org/releases/gta", "dependencies": [ "bzip2", "liblzma", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/libguarded/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 20eaf53..b81f056 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,20 +32,7 @@ include(CheckIncludeFiles) include(CheckTypeSize) # location for install or package -if (CMAKE_SYSTEM_NAME MATCHES "Darwin") - include(GNUInstallDirs) - set(CMAKE_INSTALL_RPATH "@executable_path") - -elseif (CMAKE_SYSTEM_NAME MATCHES "(Linux|OpenBSD|FreeBSD|NetBSD|DragonFly)") - include(GNUInstallDirs) - set(CMAKE_INSTALL_RPATH "\$ORIGIN") - -elseif (CMAKE_SYSTEM_NAME MATCHES "Windows") - set(CMAKE_INSTALL_BINDIR bin) - set(CMAKE_INSTALL_LIBDIR lib) - set(CMAKE_INSTALL_INCLUDEDIR include) - -endif() +include(GNUInstallDirs) set(PACKAGE "cs_libguarded") set(PACKAGE_NAME "CsLibGuarded") @@ -98,13 +85,7 @@ else() endif() # destination for cmake export files -if (CMAKE_SYSTEM_NAME MATCHES "Windows") - set(PKG_PREFIX "cmake/CsLibGuarded") - -else() - set(PKG_PREFIX "${CMAKE_INSTALL_LIBDIR}/cmake/CsLibGuarded") - -endif() +set(PKG_PREFIX "${CMAKE_INSTALL_LIBDIR}/cmake/CsLibGuarded") # catch2 set up if(BUILD_TESTS) ================================================ FILE: ports/libguarded/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO copperspice/cs_libguarded REF libguarded-${VERSION} SHA512 0dd0b77bc373e764f88a81f0a5c74e8891c306433b9fc5ec3f5b125194d32782496527b9d59ea565a85a0d7a2fdbe510da0a7e1f868e39dc9582ad1d49513f1b HEAD_REF master PATCHES fix-install.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME CsLibGuarded CONFIG_PATH lib/cmake/CsLibGuarded) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libguarded/usage ================================================ CsLibGuarded provides CMake targets: find_package(CsLibGuarded CONFIG REQUIRED) target_link_libraries(main PRIVATE CsLibGuarded::CsLibGuarded) ================================================ FILE: ports/libguarded/vcpkg.json ================================================ { "name": "libguarded", "version": "2.0.1", "description": "Header-only library for multithreaded programming.", "homepage": "https://github.com/copperspice/libguarded", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libgwenhywfar/control-openssl.diff ================================================ diff --git a/configure.ac b/configure.ac index 4e43f5c..7ce9511 100644 --- a/configure.ac +++ b/configure.ac @@ -709,7 +709,14 @@ PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.9.8]) # # check for OpenSSL # -PKG_CHECK_MODULES([OPENSSL], [openssl], [ssl_available=yes], [ssl_available=no]) +AC_ARG_WITH(openssl, [ --with-openssl=yes enable OpenSSL in gct-tool], + [with_openssl="$withval"], + [with_openssl="no"]) +if test "x$with_openssl" = "xyes"; then + PKG_CHECK_MODULES([OPENSSL], [openssl], [ssl_available=yes], [AC_MSG_ERROR([unable to find OpenSSL (pkg-config)])]) +else + ssl_available=no +fi if test "$ssl_available" = "yes"; then AC_DEFINE_UNQUOTED(HAVE_OPENSSL, 1, [Defined if OpenSSL is available]) fi ================================================ FILE: ports/libgwenhywfar/fd_set-android.diff ================================================ diff --git a/src/os/posix/inetsocket_p.h b/src/os/posix/inetsocket_p.h index 0fb1704..03923f9 100644 --- a/src/os/posix/inetsocket_p.h +++ b/src/os/posix/inetsocket_p.h @@ -43,6 +43,9 @@ #ifdef HAVE_ARPA_INET_H # include #endif +#if defined (__ANDROID__) +#include +#endif struct GWEN_SOCKET { ================================================ FILE: ports/libgwenhywfar/pkgconfig.diff ================================================ diff --git a/gwenhywfar.pc.in b/gwenhywfar.pc.in index d4c61d8..72a4ef4 100644 --- a/gwenhywfar.pc.in +++ b/gwenhywfar.pc.in @@ -31,3 +31,6 @@ Version: @VERSION@ Libs: @gwenhywfar_ldflags@ @gwenhywfar_libs@ Cflags: -I@gwenhywfar_headerdir@ +Libs.private: @all_libraries@ +@WITH_LIBXML2_CODE_FALSE@Requires.private: libgcrypt, gnutls +@WITH_LIBXML2_CODE_TRUE@Requires.private: libgcrypt, gnutls, libxml-2.0 ================================================ FILE: ports/libgwenhywfar/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.aquamaniac.de/rdm/attachments/download/630/gwenhywfar-5.14.1.tar.gz" FILENAME "gwenhywfar-${VERSION}.tar.gz" SHA512 770a9f3aba84440526229375000b02cb938d2ccd4c75c25503e322ee717f3b738d2bdf17a1dff7f0486b37a60b0038406d336a3167c932a6336abc14d1bea6f0 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES control-openssl.diff fd_set-android.diff pkgconfig.diff static-link-order.diff ) vcpkg_list(SET options) if ("libxml2" IN_LIST FEATURES) vcpkg_list(APPEND options "--with-libxml2-code=yes") endif() if ("cpp" IN_LIST FEATURES) list(APPEND FEATURES_GUI "cpp") endif() if ("qt5" IN_LIST FEATURES) list(APPEND FEATURES_GUI "qt5") endif() list(JOIN FEATURES_GUI " " GUIS) vcpkg_list(APPEND options "--with-guis=${GUIS}") if ("openssl" IN_LIST FEATURES) vcpkg_list(APPEND options "--with-openssl=yes") endif() set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/libgpg-error/aclocal/\" -I \"${CURRENT_INSTALLED_DIR}/share/libgcrypt/aclocal/\" -I \"${CURRENT_HOST_INSTALLED_DIR}/share/gettext/aclocal/\"") set(ENV{AUTOPOINT} true) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-binreloc --disable-network-checks --disable-nls ${options} OPTIONS_RELEASE "QMAKE=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/qmake" "QT_MOC=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/moc" "QT_UIC=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin/uic" "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/bin/gpgrt-config" "LIBGCRYPT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgcrypt/bin/libgcrypt-config" OPTIONS_DEBUG "QMAKE=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/qmake" "QT_MOC=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/moc" "QT_UIC=${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/debug/bin/uic" "GPG_ERROR_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config gpg-error" "GPGRT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgpg-error/debug/bin/gpgrt-config" "LIBGCRYPT_CONFIG=${CURRENT_INSTALLED_DIR}/tools/libgcrypt/debug/bin/libgcrypt-config" ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(REGEX MATCH "^([0-9]*[.][0-9]*)" MAJOR_MINOR "${VERSION}") foreach(GUI IN LISTS FEATURES_GUI) vcpkg_cmake_config_fixup(PACKAGE_NAME gwengui-${GUI} CONFIG_PATH lib/cmake/gwengui-${GUI}-${MAJOR_MINOR} DO_NOT_DELETE_PARENT_CONFIG_PATH) endforeach() vcpkg_cmake_config_fixup(PACKAGE_NAME gwenhywfar CONFIG_PATH lib/cmake/gwenhywfar-${MAJOR_MINOR}) else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") endif() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/gwenhywfar-config" [[dir="[^"]*"]] [[dir=""]] REGEX) # unused abs path file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libgwenhywfar/static-link-order.diff ================================================ diff --git a/tools/gwenbuild/Makefile.am b/tools/gwenbuild/Makefile.am index 14aa0e2..eb60988 100644 --- a/tools/gwenbuild/Makefile.am +++ b/tools/gwenbuild/Makefile.am @@ -28,11 +28,11 @@ noinst_HEADERS=\ gwbuild_LDADD = \ - $(top_builddir)/src/$(gwenhywfar_internal_libname) \ types/libgwb_types.la \ parser/libgwb_parser.la \ tools/libgwb_tools.la \ builders/libgwb_builders.la \ buildctx/libgwb_build.la \ + $(top_builddir)/src/$(gwenhywfar_internal_libname) \ $(PROG_LIBRARIES) ================================================ FILE: ports/libgwenhywfar/vcpkg.json ================================================ { "name": "libgwenhywfar", "version-semver": "5.14.1", "description": "A helper library for networking and security applications and libraries", "homepage": "https://www.aquamaniac.de/rdm/", "license": "LGPL-2.1-or-later", "supports": "!windows | mingw", "dependencies": [ { "name": "gettext", "host": true }, "libgcrypt", "libgnutls", { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-make", "host": true } ], "default-features": [ "cpp", "libxml2" ], "features": { "cpp": { "description": "A C++ binding for the C module GWEN_GUI" }, "libxml2": { "description": "Enables libXML2-depending functionality", "dependencies": [ { "name": "libxml2", "default-features": false } ] }, "openssl": { "description": "OpenSSL support in gct-tool", "supports": "!arm64", "dependencies": [ "openssl" ] }, "qt5": { "description": "Qt bindings", "supports": "!(osx & static)", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } } } ================================================ FILE: ports/libgxps/libgxps-0.3.2_fix_meson_warnings.patch ================================================ From a18e12604d2cab13146a357c7fd3b80909b65efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Thu, 9 Sep 2021 17:59:13 +0200 Subject: [PATCH] Fix meson warnings - Deduplicate "libraries" in pkgg.generate() Fixes: libgxps/meson.build:101: WARNING: Keyword argument "libraries" defined multiple times. WARNING: This will be an error in future Meson releases. - Increase required meson_version from 0.43.0 to 0.50.0 due to usage of install arg in libgxps/meson.build:63: Fixes: WARNING: Project targeting '>= 0.43.0' but tried to use feature introduced in '0.50.0': install arg in configure_file. --- libgxps/meson.build | 5 ++--- meson.build | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libgxps/meson.build b/libgxps/meson.build index 29b044e..52d53d0 100644 --- a/libgxps/meson.build +++ b/libgxps/meson.build @@ -98,12 +98,11 @@ pkgg = import('pkgconfig') cairo_dep_str = cairo_pc_found ? ', cairo >= ' + cairo_req : '' cairo_dep_libs = cairo_pc_found ? [] : cairo_dep -pkgg.generate(libraries: gxps, +pkgg.generate(libraries: [gxps, cairo_dep_libs], version: gxps_version, name: 'libgxps', description: 'XPS Documents library', - requires: 'gobject-2.0 >= ' + glib_req + ', gio-2.0 >= ' + glib_req + ', libarchive >= ' + archive_req + cairo_dep_str, - libraries: [gxps, cairo_dep_libs]) + requires: 'gobject-2.0 >= ' + glib_req + ', gio-2.0 >= ' + glib_req + ', libarchive >= ' + archive_req + cairo_dep_str) if build_gir gir_extra_args = [ diff --git a/meson.build b/meson.build index 07c8cc2..c6780c9 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ project('libgxps', 'c', 'buildtype=debugoptimized' ], license: 'LGPL2+', - meson_version: '>= 0.43.0') + meson_version: '>= 0.50.0') gxps_version = meson.project_version() version_array = gxps_version.split('.') -- GitLab ================================================ FILE: ports/libgxps/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 d3d56e4906477b68d088bf83bde666f9ea8bf383add592772aad53dd571e727f1bc0410dd020e12212ede5ff8e26cb46150a9860a6f7af29c4d195f03e946fe9 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES libgxps-0.3.2_fix_meson_warnings.patch # https://gitlab.gnome.org/GNOME/libgxps/-/commit/a18e1260 ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Ddisable-introspection=true -Denable-test=false -Dwith-libjpeg=true -Dwith-liblcms2=true -Dwith-libtiff=true ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES xpstojpeg xpstopdf xpstopng xpstops xpstosvg AUTO_CLEAN) file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libgxps/vcpkg.json ================================================ { "name": "libgxps", "version": "0.3.2", "port-version": 5, "description": "libgxps is a GObject based library for handling and rendering XPS documents.", "homepage": "https://wiki.gnome.org/Projects/libgxps", "dependencies": [ "cairo", "glib", "lcms", "libarchive", "libjpeg-turbo", "libpng", "libxslt", { "name": "tiff", "default-features": false }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libharu/export-targets.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fd54315..873c504 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -96,9 +96,24 @@ if(UNIX AND NOT APPLE) target_link_libraries (hpdf ${M_LIB}) endif() +if(BUILD_SHARED_LIBS) + if(WIN32 AND NOT CYGWIN) + target_compile_definitions(hpdf INTERFACE HPDF_DLL) + target_compile_definitions(hpdf PRIVATE HPDF_DLL_MAKE) + endif() +endif() + +target_include_directories(hpdf PUBLIC $ $) + install( TARGETS hpdf + EXPORT unofficial-libharu-config ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) + +install(EXPORT unofficial-libharu-config + NAMESPACE unofficial::libharu:: + DESTINATION share/unofficial-libharu +) ================================================ FILE: ports/libharu/portfile.cmake ================================================ vcpkg_download_distfile( PR351 URLS "https://github.com/libharu/libharu/commit/4c87178a92097d59ecb9a3271341df4944b52225.patch?full_index=1" FILENAME "pr351.patch" SHA512 43049c3db9ab52f4550dd71218f0115c5f039caaf82e19671e295bb0e12ae6f9750cd18a944bf88819f7fc67cfecdbc8425eff1e387b2a6935847b5810d8c048 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libharu/libharu REF "v${VERSION}" SHA512 677523f927ecc925d95c91ebb1cb3d1146c2ffc86031c6fc05fc038893fd38babde2abf16683e0b76d1e2b8554c64bf2278649a0f70b08a0f187c2135fc14220 HEAD_REF master PATCHES export-targets.patch "${PR351}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libharu) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/libharu/bindings" "${CURRENT_PACKAGES_DIR}/share/libharu/README.md" "${CURRENT_PACKAGES_DIR}/share/libharu/CHANGES" "${CURRENT_PACKAGES_DIR}/share/libharu/INSTALL" ) vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libharu/usage ================================================ libharu provides CMake targets: find_package(unofficial-libharu CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libharu::hpdf) ================================================ FILE: ports/libharu/vcpkg.json ================================================ { "name": "libharu", "version": "2.4.5", "description": "libharu - free PDF library", "homepage": "https://github.com/libharu/libharu", "license": "Zlib", "dependencies": [ "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libhat/0001-CMakeLists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d04055c..ade5ce6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,12 +81,12 @@ target_compile_features(libhat PUBLIC cxx_std_20) if (MSVC) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - target_compile_options(libhat PRIVATE /clang:-Wall /clang:-Wextra /clang:-Wconversion /clang:-Werror) + target_compile_options(libhat PRIVATE /clang:-Wall /clang:-Wextra /clang:-Wconversion) else() target_compile_options(libhat PRIVATE /W3 /WX) endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang") - target_compile_options(libhat PRIVATE -Wall -Wextra -Wconversion -Werror + target_compile_options(libhat PRIVATE -Wall -Wextra -Wconversion # temp fix for macOS CI failing due to incorrect LIBHAT_COMPILER_X86_OPTIONS value -Wno-unused-command-line-argument ) @@ -155,10 +155,24 @@ if(LIBHAT_TESTING) endif() if(LIBHAT_INSTALL_TARGET) + install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/libhat" DESTINATION "include") install(TARGETS libhat EXPORT libhat-targets RUNTIME DESTINATION "bin" ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib" ) + install(EXPORT libhat-targets NAMESPACE libhat:: DESTINATION "share/libhat") + include(CMakePackageConfigHelpers) + configure_package_config_file( + "${CMAKE_CURRENT_LIST_DIR}/libhat-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/libhat-config.cmake" + INSTALL_DESTINATION "share/libhat" + ) + write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libhat-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY SameMajorVersion) + install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/libhat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/libhat-config-version.cmake" + DESTINATION "share/libhat" + ) endif() ================================================ FILE: ports/libhat/0002-fix-gcc.patch ================================================ diff --git a/include/libhat/compressed_pair.hpp b/include/libhat/compressed_pair.hpp index 39cb8ea..341f9e3 100644 --- a/include/libhat/compressed_pair.hpp +++ b/include/libhat/compressed_pair.hpp @@ -5,6 +5,7 @@ #include #endif +#include #include "defines.hpp" #include "type_traits.hpp" diff --git a/include/libhat/strconv.hpp b/include/libhat/strconv.hpp index bbd786f..ad527fb 100644 --- a/include/libhat/strconv.hpp +++ b/include/libhat/strconv.hpp @@ -1,11 +1,11 @@ #pragma once #ifndef LIBHAT_MODULE - #include #include #include #endif +#include #include "concepts.hpp" #include "export.hpp" #include "result.hpp" ================================================ FILE: ports/libhat/libhat-config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/libhat-targets.cmake") check_required_components(libhat) ================================================ FILE: ports/libhat/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BasedInc/libhat REF "v${VERSION}" SHA512 68ce4d66f92553eb0f3e0f26c0274bc048d735936a68abf2fcb2ce7766dcdab73fb5dc0d8bbf249e5b36bd7a2eb2db06878eaffcd16d4bcac839953506704c8d HEAD_REF master PATCHES 0001-CMakeLists.patch 0002-fix-gcc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/libhat-config.cmake.in" DESTINATION "${SOURCE_PATH}") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBHAT_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBHAT_BUILD_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "hint" LIBHAT_HINT_X86_64 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBHAT_DISABLE_AVX512=ON # For AVX512, author an overlay-port that removes this line -DLIBHAT_SHARED_C_LIB=${LIBHAT_BUILD_SHARED} -DLIBHAT_STATIC_C_LIB=${LIBHAT_BUILD_STATIC} -DLIBHAT_TESTING=OFF -DLIBHAT_TESTING_ASAN=OFF -DLIBHAT_TESTING_SDE=OFF -DLIBHAT_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libhat/vcpkg.json ================================================ { "name": "libhat", "version": "0.9.0", "description": "A high-performance, modern, C++20 library designed around game hacking.", "homepage": "https://github.com/BasedInc/libhat", "license": "MIT", "supports": "windows | linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hint": { "description": "Enables support for the x86_64 scan hint, requires a small (2KB) data table" } } } ================================================ FILE: ports/libhdfs3/fix_dependency_uuid.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a8b109..6ea24f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,9 @@ FIND_PACKAGE(KERBEROS REQUIRED) FIND_PACKAGE(GSasl REQUIRED) IF(OS_LINUX) - FIND_PACKAGE(LibUUID REQUIRED) + find_package(unofficial-libuuid CONFIG REQUIRED) + set(LIBUUID_LIBRARIES unofficial::UUID::uuid) + add_library(uuid ALIAS unofficial::UUID::uuid) ENDIF(OS_LINUX) ADD_SUBDIRECTORY(mock) diff --git a/hdfs_benchmark/CMakeLists.txt b/hdfs_benchmark/CMakeLists.txt index dcb4c0a..f4274b6 100644 --- a/hdfs_benchmark/CMakeLists.txt +++ b/hdfs_benchmark/CMakeLists.txt @@ -10,4 +10,4 @@ set(SOURCE_FILES main.cpp) add_executable(hdfs_benchmark ${SOURCE_FILES}) add_dependencies(hdfs_benchmark libhdfs3-shared) -target_link_libraries(hdfs_benchmark uuid pthread libhdfs3-shared) +target_link_libraries(hdfs_benchmark pthread libhdfs3-shared) ================================================ FILE: ports/libhdfs3/libhdfs3Config.cmake ================================================ FUNCTION(SET_LIBRARY_TARGET NAMESPACE LIB_NAME DEBUG_LIB_FILE_NAME RELEASE_LIB_FILE_NAME INCLUDE_DIR) ADD_LIBRARY(${NAMESPACE}::${LIB_NAME} STATIC IMPORTED) SET_TARGET_PROPERTIES(${NAMESPACE}::${LIB_NAME} PROPERTIES IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" IMPORTED_LOCATION_RELEASE "${RELEASE_LIB_FILE_NAME}" IMPORTED_LOCATION_DEBUG "${DEBUG_LIB_FILE_NAME}" INTERFACE_INCLUDE_DIRECTORIES "${INCLUDE_DIR}" ) SET(${NAMESPACE}_${LIB_NAME}_FOUND 1) ENDFUNCTION() GET_FILENAME_COMPONENT(ROOT "${CMAKE_CURRENT_LIST_FILE}" PATH) GET_FILENAME_COMPONENT(ROOT "${ROOT}" PATH) GET_FILENAME_COMPONENT(ROOT "${ROOT}" PATH) SET_LIBRARY_TARGET("HDFS" "hdfs3" "${ROOT}/debug/lib/libhdfs3.a" "${ROOT}/lib/libhdfs3.a" "${ROOT}/include/hdfs") ================================================ FILE: ports/libhdfs3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO erikmuttersbach/libhdfs3 REF 9a60d79812d6dee72455f61bff57a93c3c7d56f5 SHA512 2b635ab979230c251243f01717105872245d7948f75832e58f50a09b0b06d1b366b3c5f3a3253fa538076e9f199003f28d10b9958293144dbc301276073a0633 HEAD_REF apache-rpc-9 PATCHES fix_dependency_uuid.patch ) if(VCPKG_TARGET_IS_LINUX ) message(STATUS [[ To build libhdfs3, the following libraries are needed. libgsasl This development package can be installed on the system by apt install libgsasl-dev ]]) elseif(VCPKG_TARGET_IS_OSX) message(WARNING [[ To build libhdfs3, the following libraries are needed. libgsasl These development packages can be installed on the system via git clone https://gitlab.com/gsasl/gsasl.git]]) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) FILE(INSTALL "${CMAKE_CURRENT_LIST_DIR}/libhdfs3Config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") FILE(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libhdfs3/usage ================================================ The package libhdfs3 is compatible with built-in CMake targets: FIND_PACKAGE(libhdfs3 REQUIRED) TARGET_LINK_LIBRARIES(main PRIVATE HDFS::hdfs3) ================================================ FILE: ports/libhdfs3/vcpkg.json ================================================ { "name": "libhdfs3", "version-date": "2019-11-05", "port-version": 6, "description": "Native Hadoop RPC protocol and HDFS data transfer protocol implementation", "homepage": "https://github.com/erikmuttersbach/libhdfs3", "supports": "!windows", "dependencies": [ "boost-atomic", "boost-chrono", "boost-iostreams", "boost-system", "boost-thread", { "name": "libuuid", "platform": "!windows & !osx" }, "libxml2", "protobuf", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libheif/cmake-project-include.cmake ================================================ if(WITH_X265 AND UNIX AND NOT BUILD_SHARED_LIBS AND CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|^arm64") include(CheckLinkerFlag) check_linker_flag(C "LINKER:-Bsymbolic" supports_bsymbolic) if(supports_bsymbolic) add_link_options("LINKER:-Bsymbolic") endif() endif() ================================================ FILE: ports/libheif/cxx-linkage-pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7dfbe6f..67d31f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -479,13 +479,17 @@ endif() list(JOIN REQUIRES_PRIVATE " " REQUIRES_PRIVATE) -include(CheckCXXSymbolExists) -check_cxx_symbol_exists(_LIBCPP_VERSION cstdlib HAVE_LIBCPP) -if(HAVE_LIBCPP) - set(LIBS_PRIVATE "-lc++") -else() - set(LIBS_PRIVATE "-lstdc++") -endif() +set(FAKE_CXX_LINKAGE "") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() +endforeach() +set(LIBS_PRIVATE "${FAKE_CXX_LINKAGE}") configure_file(libheif.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libheif.pc @ONLY) ================================================ FILE: ports/libheif/find-modules.diff ================================================ diff --git a/cmake/modules/FindAOM.cmake b/cmake/modules/FindAOM.cmake index a357cf7..970630b 100644 --- a/cmake/modules/FindAOM.cmake +++ b/cmake/modules/FindAOM.cmake @@ -17,6 +17,7 @@ else() find_library(AOM_LIBRARY NAMES libaom aom + NAMES_PER_DIR HINTS ${AOM_PKGCONF_LIBRARY_DIRS} ${AOM_PKGCONF_LIBDIR} ) diff --git a/cmake/modules/FindLIBDE265.cmake b/cmake/modules/FindLIBDE265.cmake index c9a7fcb..95fc5bf 100644 --- a/cmake/modules/FindLIBDE265.cmake +++ b/cmake/modules/FindLIBDE265.cmake @@ -9,6 +9,7 @@ find_path(LIBDE265_INCLUDE_DIR find_library(LIBDE265_LIBRARY NAMES libde265 de265 + NAMES_PER_DIR HINTS ${LIBDE265_PKGCONF_LIBRARY_DIRS} ${LIBDE265_PKGCONF_LIBDIR} ) diff --git a/cmake/modules/FindX265.cmake b/cmake/modules/FindX265.cmake index ae8d8be..95898fe 100644 --- a/cmake/modules/FindX265.cmake +++ b/cmake/modules/FindX265.cmake @@ -8,7 +8,8 @@ find_path(X265_INCLUDE_DIR ) find_library(X265_LIBRARY - NAMES libx265 x265 + NAMES libx265 x265 x265-static + NAMES_PER_DIR HINTS ${X265_PKGCONF_LIBRARY_DIRS} ${X265_PKGCONF_LIBDIR} ) ================================================ FILE: ports/libheif/gdk-pixbuf.patch ================================================ diff --git "a/gdk-pixbuf/CMakeLists.txt" "b/gdk-pixbuf/CMakeLists.txt" index eeb2727..20a6b16 100644 --- "a/gdk-pixbuf/CMakeLists.txt" +++ "b/gdk-pixbuf/CMakeLists.txt" @@ -1,12 +1,9 @@ if(UNIX OR MINGW) find_package(PkgConfig) - pkg_check_modules(GDKPIXBUF2 gdk-pixbuf-2.0) + pkg_check_modules(GDKPIXBUF2 gdk-pixbuf-2.0 IMPORTED_TARGET) if(GDKPIXBUF2_FOUND) - execute_process( - COMMAND ${PKG_CONFIG_EXECUTABLE} gdk-pixbuf-2.0 --variable gdk_pixbuf_moduledir - --define-variable=prefix=${CMAKE_INSTALL_PREFIX} OUTPUT_VARIABLE GDKPIXBUF2_MODULE_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE) + pkg_get_variable(GDKPIXBUF2_MODULE_DIR gdk-pixbuf-2.0 gdk_pixbuf_moduledir) add_library(pixbufloader-heif MODULE pixbufloader-heif.c) @@ -14,7 +11,7 @@ if(UNIX OR MINGW) target_link_directories(pixbufloader-heif PRIVATE ${GDKPIXBUF2_LIBRARY_DIRS}) - target_link_libraries(pixbufloader-heif PUBLIC ${GDKPIXBUF2_LIBRARIES} heif) + target_link_libraries(pixbufloader-heif PUBLIC PkgConfig::GDKPIXBUF2 heif) install(TARGETS pixbufloader-heif DESTINATION ${GDKPIXBUF2_MODULE_DIR}) endif() ================================================ FILE: ports/libheif/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO strukturag/libheif REF "v${VERSION}" SHA512 c953cb9c3a4c0f1052f4d1e0475143cfea6c0a1ab787acb33a2fd173e0460b665717a56a99b864226dfe62bd139c92a66fe5dec75b91e2a333b77a0571e3c5a8 HEAD_REF master PATCHES cxx-linkage-pkgconfig.diff find-modules.diff gdk-pixbuf.patch symbol-exports.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES aom WITH_AOM_DECODER aom WITH_AOM_ENCODER aom VCPKG_LOCK_FIND_PACKAGE_AOM gdk-pixbuf WITH_GDK_PIXBUF hevc WITH_X265 hevc VCPKG_LOCK_FIND_PACKAGE_X265 iso23001-17 WITH_UNCOMPRESSED_CODEC iso23001-17 VCPKG_LOCK_FIND_PACKAGE_ZLIB jpeg WITH_JPEG_DECODER jpeg WITH_JPEG_ENCODER jpeg VCPKG_LOCK_FIND_PACKAGE_JPEG openjpeg WITH_OpenJPEG_DECODER openjpeg WITH_OpenJPEG_ENCODER openjpeg VCPKG_LOCK_FIND_PACKAGE_OpenJPEG h264 WITH_X264 openh264 WITH_OpenH264_DECODER ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" -DPLUGIN_DIRECTORY= # empty -DWITH_DAV1D=OFF -DWITH_EXAMPLES=OFF -DWITH_LIBSHARPYUV=OFF -DWITH_OpenH264_DECODER=OFF -DVCPKG_LOCK_FIND_PACKAGE_Brotli=OFF -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF -DVCPKG_LOCK_FIND_PACKAGE_LIBDE265=ON # feature candidate -DVCPKG_LOCK_FIND_PACKAGE_PNG=OFF -DVCPKG_LOCK_FIND_PACKAGE_TIFF=OFF ${FEATURE_OPTIONS} OPTIONS_RELEASE "-DPLUGIN_INSTALL_DIRECTORY=${CURRENT_PACKAGES_DIR}/plugins/libheif" OPTIONS_DEBUG "-DPLUGIN_INSTALL_DIRECTORY=${CURRENT_PACKAGES_DIR}/debug/plugins/libheif" MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_AOM VCPKG_LOCK_FIND_PACKAGE_Brotli VCPKG_LOCK_FIND_PACKAGE_OpenJPEG VCPKG_LOCK_FIND_PACKAGE_X265 VCPKG_LOCK_FIND_PACKAGE_ZLIB ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libheif") vcpkg_fixup_pkgconfig() if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif_library.h" "!defined(LIBHEIF_STATIC_BUILD)" "1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libheif/heif_library.h" "!defined(LIBHEIF_STATIC_BUILD)" "0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/libheif" "${CURRENT_PACKAGES_DIR}/debug/lib/libheif") file(GLOB maybe_plugins "${CURRENT_PACKAGES_DIR}/plugins/libheif/*") if(maybe_plugins STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/plugins" "${CURRENT_PACKAGES_DIR}/debug/plugins") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libheif/symbol-exports.diff ================================================ diff --git a/heifio/CMakeLists.txt b/heifio/CMakeLists.txt index 920eeca..753bda1 100644 --- a/heifio/CMakeLists.txt +++ b/heifio/CMakeLists.txt @@ -20,10 +20,7 @@ set_target_properties(heifio VERSION ${PROJECT_VERSION}) -target_compile_definitions(heifio - PUBLIC - LIBHEIF_EXPORTS - HAVE_VISIBILITY) +# static lib, not changing visibility find_package(TIFF) if (TIFF_FOUND) diff --git a/libheif/CMakeLists.txt b/libheif/CMakeLists.txt index 55d6313..2229992 100644 --- a/libheif/CMakeLists.txt +++ b/libheif/CMakeLists.txt @@ -232,10 +232,13 @@ if (BUILD_FRAMEWORK) MACOSX_RPATH TRUE) endif() -target_compile_definitions(heif - PUBLIC - LIBHEIF_EXPORTS - HAVE_VISIBILITY) +target_compile_definitions(heif PRIVATE LIBHEIF_EXPORTS) +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(heif PUBLIC LIBHEIF_STATIC_BUILD) +endif() +if(WITH_REDUCED_VISIBILITY AND NOT MSVC) + target_compile_definitions(heif PRIVATE HAVE_VISIBILITY) +endif() if (PLUGIN_LOADING_SUPPORTED_AND_ENABLED) target_compile_definitions(heif PRIVATE ENABLE_PLUGIN_LOADING=1) diff --git a/libheif/plugins/CMakeLists.txt b/libheif/plugins/CMakeLists.txt index f7379c0..c8a3245 100644 --- a/libheif/plugins/CMakeLists.txt +++ b/libheif/plugins/CMakeLists.txt @@ -13,10 +13,10 @@ macro(plugin_compilation name varName foundName optionName defineName) VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) endif () - target_compile_definitions(heif-${name} - PUBLIC - LIBHEIF_EXPORTS - HAVE_VISIBILITY) + target_compile_definitions(heif-${name} PRIVATE LIBHEIF_EXPORTS) + if(WITH_REDUCED_VISIBILITY AND NOT MSVC) + target_compile_definitions(heif-${name} PRIVATE HAVE_VISIBILITY) + endif() target_compile_definitions(heif-${name} PRIVATE PLUGIN_${defineName}=1) target_include_directories(heif-${name} PRIVATE ${PROJECT_SOURCE_DIR} ${libheif_BINARY_DIR} ${libheif_SOURCE_DIR}/libheif ${libheif_SOURCE_DIR}/libheif/api ${${varName}_INCLUDE_DIRS}) target_link_libraries(heif-${name} PRIVATE ${${varName}_LIBRARIES} heif) ================================================ FILE: ports/libheif/vcpkg.json ================================================ { "name": "libheif", "version": "1.21.2", "description": "libheif is an HEIF and AVIF file format decoder and encoder.", "homepage": "http://www.libheif.org/", "license": "LGPL-3.0-only", "supports": "!xbox", "dependencies": [ "libde265", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "hevc" ], "features": { "aom": { "description": "AVIF decoding and encoding via aom", "license": "BSD-2-Clause", "dependencies": [ "aom" ] }, "gdk-pixbuf": { "description": "Plugin for gdk-pixbuf", "supports": "!windows | mingw", "dependencies": [ "gdk-pixbuf" ] }, "h264-decoder": { "description": "OpenH264 decoder", "license": "BSD-2-Clause", "dependencies": [ "openh264" ] }, "hevc": { "description": "HEVC encoding via x265", "license": "GPL-2.0-or-later", "dependencies": [ "x265" ] }, "iso23001-17": { "description": "Support for ISO23001-17 (uncompressed) codec (experimental)", "license": "LGPL-3.0-only", "dependencies": [ "zlib" ] }, "jpeg": { "description": "JPEG decoding and encoding via libjpeg-turbo", "license": "BSD-3-Clause", "dependencies": [ "libjpeg-turbo" ] }, "openjpeg": { "description": "JPEG-2000 decoding and encoding via OpenJPEG", "license": "BSD-2-Clause", "dependencies": [ "openjpeg" ] }, "x264": { "description": "x264 AVC encoder", "license": "GPL-2.0-or-later", "dependencies": [ "x264" ] } } } ================================================ FILE: ports/libhsplasma/portfile.cmake ================================================ string(REGEX REPLACE "-" "." REF_DOT_VERSION_DATE ${VERSION}) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO H-uru/libhsplasma REF "${REF_DOT_VERSION_DATE}" SHA512 bf882347b8272a06335776454c339ccb36edcc4068978c2675700cf124f319eccc23a739427a3e2f57e1f27c3f4c5281db9ce5a914de78e97704f8b94af61d8e HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES net ENABLE_NET ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DENABLE_PHYSX=OFF -DENABLE_PYTHON=OFF -DENABLE_TOOLS=OFF # Catch2 test discovery has some odd interactions with PATH, which # appear to still be unresolved. For simplicity, just skip tests. -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME HSPlasma CONFIG_PATH share/cmake/HSPlasma) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libhsplasma/vcpkg.json ================================================ { "name": "libhsplasma", "version-date": "2025-11-04", "description": "Cross-platform Plasma data and network library", "homepage": "https://github.com/H-uru/libhsplasma", "license": "GPL-3.0-or-later", "supports": "!(arm | uwp | xbox)", "dependencies": [ "libjpeg-turbo", "libpng", "string-theory", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "net": { "description": "Network functionality", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/libhv/portfile.cmake ================================================ vcpkg_download_distfile(patch780 URLS "https://patch-diff.githubusercontent.com/raw/ithewei/libhv/pull/780.diff?full_index=1" FILENAME "ithewei-libhv-780.diff" SHA512 8915aec64d31cc94b54002d6a0b6b9f69908cde7a24b6036900b24cb8111d6ef8bbaddf707289e54b2c4e4c782cdca9c619adfd11233bf56571e805529d488e6 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ithewei/libhv REF "v${VERSION}" SHA512 5b1b1552b31331279030c5f6ea087ee9ca3bb3911938bc6ce14c90297151adeb6e30f413eea9591092783e0e745e78e6b6f957e4a26fe0e3c050fdad08d470ad HEAD_REF master PATCHES "${patch780}" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl WITH_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_UNITTEST=OFF -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_SHARED=${BUILD_SHARED} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libhv) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libhv/vcpkg.json ================================================ { "name": "libhv", "version": "1.3.4", "description": "Libhv is a C/C++ network library similar to libevent/libuv.", "homepage": "https://github.com/ithewei/libhv", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "with openssl library", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/libhydrogen/no-arch.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 91e2bf1..7333479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,11 +39,6 @@ set(arduino_files "library.properties") # Compile options -get_setting(target_arch STRING "Target system architecture (fed to the compiler's -march=XXX).") -if(NOT target_arch AND NOT CMAKE_CROSSCOMPILING) - set(target_arch native) -endif() - get_setting(target_device STRING "Target device identifier (defines HYDRO_TARGET_DEVICE_XXX).") set(compile_options @@ -52,7 +47,7 @@ set(compile_options # ---- Definitions ---- $<$:-DHYDRO_TARGET_DEVICE_${target_device}> # ---- Optimizations ---- - -Os $<$:-march=${target_arch}> -fno-exceptions + -Os -fno-exceptions # ---- Warnings ---- -Wall -Wextra ================================================ FILE: ports/libhydrogen/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jedisct1/libhydrogen REF 9f9d504bb5a97bc98ee52529726d41c027df76ad #2022-06-21 SHA512 f4dabc0b399c8850563c8a967209db537fdf787deaef46899a5484bc89bffb31581312940549784defe4c42d057309aaabd402831a7c3a94b04a00d47a07736c HEAD_REF master PATCHES remove-tests.patch no-arch.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/hydrogen) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/libhydrogen/remove-tests.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,12 +139,13 @@ # Tests set(tests_executable "${PROJECT_NAME}-tests") set(tests_run_target "${PROJECT_NAME}-run-tests") set(tests_run_file "${PROJECT_BINARY_DIR}/${tests_run_target}.done") +if(0) enable_testing() add_executable("${tests_executable}" ${test_files}) target_compile_options("${tests_executable}" PRIVATE ${compile_options}) target_link_libraries("${tests_executable}" "${PROJECT_NAME}") add_test(NAME "${tests_executable}" COMMAND "${tests_executable}") @@ -166,12 +167,13 @@ COMMAND "${CMAKE_COMMAND}" ARGS -E touch "${tests_run_file}" WORKING_DIRECTORY "${PROJECT_BINARY_DIR}" VERBATIM) add_custom_target("${tests_run_target}" ALL DEPENDS "${tests_run_file}" VERBATIM) endif() +endif() # Generate Arduino package set(arduino_package_file "${PROJECT_BINARY_DIR}/hydrogen-crypto.zip") # Use the relative versions of the file path lists or else the full paths will end up in the ================================================ FILE: ports/libhydrogen/vcpkg.json ================================================ { "name": "libhydrogen", "version-date": "2022-06-21", "description": "A lightweight, secure, easy-to-use crypto library suitable for constrained environments", "homepage": "https://github.com/jedisct1/libhydrogen", "license": "ISC", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libical/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libical/libical REF "v${VERSION}" SHA512 2506320240ba0e4287b6ef1b90b653eacd51105d392b91f8c772f3b0745fecbf55eecfe81f89413cc56106b71ccca780754df31f5190ffce6c372126e27bf1da ) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_PATH ${PERL} DIRECTORY) vcpkg_add_to_path(${PERL_PATH}) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES "rscale" CMAKE_DISABLE_FIND_PACKAGE_ICU ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND FEATURE_OPTIONS -DSTATIC_ONLY=ON) else() list(APPEND FEATURE_OPTIONS -DSHARED_ONLY=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_BerkeleyDB=ON -DUSE_BUILTIN_TZDATA=ON -DICAL_GLIB=OFF -DICAL_BUILD_DOCS=OFF -DLIBICAL_BUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME LibIcal CONFIG_PATH CONFIG_PATH lib/cmake/LibIcal) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libical/vcpkg.json ================================================ { "name": "libical", "version": "3.0.20", "description": "Reference implementation of the iCalendar data type and serialization format", "homepage": "https://github.com/libical/libical", "license": "MPL-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "rscale": { "description": "Support for RSCALE element", "supports": "!static", "dependencies": [ "icu" ] } } } ================================================ FILE: ports/libice/fix_build.patch ================================================ diff --git a/src/error.c b/src/error.c index 055452e..0ce530a 100644 --- a/src/error.c +++ b/src/error.c @@ -32,7 +32,11 @@ Author: Ralph Mor, X Consortium #include #include "ICElibint.h" #include +#ifdef HAVE_UNISTD_H #include +#elif _MSC_VER +#include +#endif #include void diff --git a/src/iceauth.c b/src/iceauth.c index 5a4d400..4549f0e 100644 --- a/src/iceauth.c +++ b/src/iceauth.c @@ -39,7 +39,12 @@ Author: Ralph Mor, X Consortium #include /* for arc4random_buf() */ #endif +#ifdef HAVE_UNISTD_H #include +#elif _MSC_VER +#include +#define ITIMER_REAL +#endif static int was_called_state; ================================================ FILE: ports/libice/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBICE_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libICE-${VERSION}.tar.xz" FILENAME "libICE-${VERSION}.tar.xz" SHA512 340f51ffa1f14ed442ab8bcea92dd63df147c48242e232e818cafe02f43de7ab6e99c5430b9cb8d0dc661295239d2b3f6bdb6a092ce51a98afa06235257e9b1f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBICE_ARCHIVE}" PATCHES fix_build.patch replace_macros.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libice/replace_macros.patch ================================================ diff --git a/include/X11/ICE/ICElib.h b/include/X11/ICE/ICElib.h index 402cbc8..506c18b 100644 --- a/include/X11/ICE/ICElib.h +++ b/include/X11/ICE/ICElib.h @@ -32,8 +32,8 @@ Author: Ralph Mor, X Consortium #include #include -#define Bool int -#define Status int +typedef int Bool; +typedef int Status; #define True 1 #define False 0 ================================================ FILE: ports/libice/vcpkg.json ================================================ { "name": "libice", "version": "1.1.2", "port-version": 2, "description": "Inter-Client Exchange Library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libice", "license": "MIT-open-group", "dependencies": [ "bzip2", "libx11", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto", "xtrans" ] } ================================================ FILE: ports/libiconv/0002-Config-for-MSVC.patch ================================================ diff --git a/srclib/fcntl.c b/srclib/fcntl.c index f9753c4..02fc8be 100644 --- a/srclib/fcntl.c +++ b/srclib/fcntl.c @@ -37,6 +37,9 @@ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include +#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) +#define HANDLE_FLAG_INHERIT 0 +#endif /* Get _get_osfhandle. */ # if GNULIB_MSVC_NOTHROW ================================================ FILE: ports/libiconv/0003-Add-export.patch ================================================ diff -uNr libiconv-1.16/libcharset/include/libcharset.h.in libiconv-1.16-work/libcharset/include/libcharset.h.in --- libiconv-1.16/libcharset/include/libcharset.h.in 2018-09-17 19:07:42.000000000 +0300 +++ libiconv-1.16-work/libcharset/include/libcharset.h.in 2019-12-04 17:15:50.000000000 +0300 @@ -33,7 +33,7 @@ by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ -extern void libcharset_set_relocation_prefix (const char *orig_prefix, +extern void LIBCHARSET_DLL_EXPORTED libcharset_set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); ================================================ FILE: ports/libiconv/0004-ModuleFileName.patch ================================================ diff --git a/srclib/relocatable.c b/srclib/relocatable.c index 365c085..4e08fdc 100644 --- a/srclib/relocatable.c +++ b/srclib/relocatable.c @@ -338,7 +338,7 @@ DllMain (HINSTANCE module_handle, DWORD event, LPVOID reserved) /* The DLL is being loaded into an application's address range. */ static char location[MAX_PATH]; - if (!GetModuleFileName (module_handle, location, sizeof (location))) + if (!GetModuleFileNameA (module_handle, location, sizeof (location))) /* Shouldn't happen. */ return FALSE; ================================================ FILE: ports/libiconv/portfile.cmake ================================================ if(NOT DEFINED X_VCPKG_BUILD_GNU_LIBICONV) set(X_VCPKG_BUILD_GNU_LIBICONV 0) if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_BSD) set(X_VCPKG_BUILD_GNU_LIBICONV 1) elseif(VCPKG_TARGET_IS_ANDROID) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_SYSTEM_VERSION VERSION_LESS "28") set(X_VCPKG_BUILD_GNU_LIBICONV 1) endif() endif() endif() if(NOT X_VCPKG_BUILD_GNU_LIBICONV) message(STATUS "Not building GNU libiconv.") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/iconv") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") return() endif() vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/libiconv/libiconv-${VERSION}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libiconv/libiconv-${VERSION}.tar.gz" FILENAME "libiconv-${VERSION}.tar.gz" SHA512 a55eb3b7b785a78ab8918db8af541c9e11deb5ff4f89d54483287711ed797d87848ce0eafffa7ce26d9a7adb4b5a9891cb484f94bd4f51d3ce97a6a47b4c719a ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "v${VERSION}" PATCHES 0002-Config-for-MSVC.patch 0003-Add-export.patch 0004-ModuleFileName.patch ) vcpkg_list(SET OPTIONS) if (NOT VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND OPTIONS --enable-relocatable) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" DETERMINE_BUILD_TRIPLET USE_WRAPPERS OPTIONS --enable-extra-encodings --without-libiconv-prefix --without-libintl-prefix ${OPTIONS} ) vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/iconv") set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}") # share contains unneeded doc files # Please keep, the default usage is broken file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB" "${SOURCE_PATH}/COPYING" COMMENT " The libiconv and libcharset libraries and their header files are under LGPL, see COPYING.LIB below. The iconv program and the documentation are under GPL, see COPYING below.") ================================================ FILE: ports/libiconv/usage ================================================ libiconv provides CMake targets: find_package(Iconv REQUIRED) target_link_libraries(main PRIVATE Iconv::Iconv) ================================================ FILE: ports/libiconv/vcpkg-cmake-wrapper.cmake ================================================ include(SelectLibraryConfigurations) _find_package(${ARGS}) if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) find_path(CHARSET_INCLUDE_DIR NAMES "libcharset.h" HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") find_library(CHARSET_LIBRARY_DEBUG NAMES charsetd libcharsetd charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug") find_library(CHARSET_LIBRARY_RELEASE NAMES charset libcharset NAMES_PER_DIR PATH_SUFFIXES lib HINTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}") select_library_configurations(CHARSET) if(NOT TARGET Iconv::Charset) add_library(Iconv::Charset INTERFACE IMPORTED) set_target_properties(Iconv::Charset PROPERTIES INTERFACE_LINK_LIBRARIES "\$<\$>:${CHARSET_LIBRARY_RELEASE}>;\$<\$:${CHARSET_LIBRARY_DEBUG}>" INTERFACE_INCLUDE_DIRECTORIES "${CHARSET_INCLUDE_DIRS}") endif() if(CHARSET_LIBRARIES) list(APPEND Iconv_LIBRARIES ${CHARSET_LIBRARIES}) if(TARGET Iconv::Iconv) set_property(TARGET Iconv::Iconv APPEND PROPERTY INTERFACE_LINK_LIBRARIES Iconv::Charset) endif() endif() endif() ================================================ FILE: ports/libiconv/vcpkg.json ================================================ { "name": "libiconv", "version": "1.18", "port-version": 3, "description": [ "iconv() text conversion.", "This port installs GNU libiconv if the system C runtime doesn't provide a suitable iconv() implementation." ], "homepage": "https://www.gnu.org/software/libiconv/", "license": null, "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true, "platform": "android" } ] } ================================================ FILE: ports/libics/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO svi-opensource/libics REF "${VERSION}" SHA512 678038870fc6badfc68848e40c2157bdd0511c205c13760c530fe521bf20d7e75d2c25de1c9506c3d109b1b7678744d3183dcd83322d11d58f3dc74739192403 HEAD_REF master PATCHES real16.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/GNU_LICENSE") ================================================ FILE: ports/libics/real16.patch ================================================ diff --git a/support/cpp_interface/libics.hpp b/support/cpp_interface/libics.hpp index abf41a2..be18d67 100644 --- a/support/cpp_interface/libics.hpp +++ b/support/cpp_interface/libics.hpp @@ -81,6 +81,7 @@ enum class DataType { SInt32, // integer, signed, 32 bpp UInt64, // integer, unsigned, 64 bpp SInt64, // integer, signed, 64 bpp + Real16, // real, signed, 16 bpp Real32, // real, signed, 32 bpp Real64, // real, signed, 64 bpp Complex32, // complex, signed, 2*32 bpp ================================================ FILE: ports/libics/vcpkg.json ================================================ { "name": "libics", "version": "1.7.0", "description": "Reference library for ICS (Image Cytometry Standard), an open standard for writing images of any dimensionality and data type to file, together with associated information regarding the recording equipment or recorded subject.", "homepage": "https://github.com/svi-opensource/libics", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libid3tag/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE URLS "https://codeberg.org/tenacityteam/libid3tag/archive/${VERSION}.tar.gz" FILENAME "${VERSION}.tar.gz" SHA512 d49bc637899e4251ed66b5b56aa4c910dcdecd6b03ed197866d74175fc4eadff40f40f336606b23e2505b0e11834c4212a1314feeeaa2c0e9713051fdb56cb45 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME id3tag CONFIG_PATH lib/cmake/id3tag) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libid3tag/vcpkg.json ================================================ { "name": "libid3tag", "version": "0.16.3", "description": "ID3 tag manipulation library", "homepage": "https://codeberg.org/tenacityteam/libid3tag", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libideviceactivation/001_fix_static_build.patch ================================================ diff --git a/src/activation.c b/src/activation.c index 4260c20..29bb2e8 100644 --- a/src/activation.c +++ b/src/activation.c @@ -90,6 +90,7 @@ struct idevice_activation_response_private { int has_errors; }; +#ifndef LIBIDEVICEACTIVATION_STATIC // disable dll constructor static void internal_libideviceactivation_init(void) { @@ -162,6 +163,8 @@ BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) #warning No compiler support for constructor/destructor attributes, some features might not be available. #endif +#endif // disable dll constructor + static int debug_level = 0; IDEVICE_ACTIVATION_API void idevice_activation_set_debug_level(int level) { ================================================ FILE: ports/libideviceactivation/002_fix_api.patch ================================================ diff --git a/src/activation.c b/src/activation.c index 29bb2e8..69ec7b4 100644 --- a/src/activation.c +++ b/src/activation.c @@ -32,15 +32,11 @@ #include #include -#ifdef WIN32 -#define IDEVICE_ACTIVATION_API __declspec( dllexport ) -#else -#ifdef HAVE_FVISIBILITY +#if !defined(_WIN32) && !defined(LIBIDEVICEACTIVATION_STATIC) #define IDEVICE_ACTIVATION_API __attribute__((visibility("default"))) #else #define IDEVICE_ACTIVATION_API #endif -#endif #ifdef WIN32 #include ================================================ FILE: ports/libideviceactivation/003_fix_tools_msvc.patch ================================================ diff --git a/tools/ideviceactivation.c b/tools/ideviceactivation.c index 757c54e..e75e9e9 100644 --- a/tools/ideviceactivation.c +++ b/tools/ideviceactivation.c @@ -28,7 +28,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #ifndef WIN32 #include ================================================ FILE: ports/libideviceactivation/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libideviceactivation C) option(BUILD_TOOLS "Build tools." OFF) include(GNUInstallDirs) file(GLOB_RECURSE LIBIDEVICEACTIVATION_HEADER include/*.h) file(GLOB_RECURSE LIBIDEVICEACTIVATION_SOURCE src/*.c) set(DEFINITIONS) if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND LIBIDEVICEACTIVATION_SOURCE exports.def) endif() else() list(APPEND DEFINITIONS -DLIBIDEVICEACTIVATION_STATIC) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32_LEAN_AND_MEAN) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libplist CONFIG REQUIRED) find_package(unofficial-libimobiledevice CONFIG REQUIRED) find_package(CURL CONFIG REQUIRED) find_package(LibXml2 CONFIG REQUIRED) add_library(libideviceactivation ${LIBIDEVICEACTIVATION_SOURCE}) target_include_directories(libideviceactivation PUBLIC "$" "$" ) target_compile_definitions(libideviceactivation PRIVATE ${DEFINITIONS}) target_link_libraries(libideviceactivation PRIVATE CURL::libcurl LibXml2::LibXml2 PUBLIC unofficial::libplist::libplist unofficial::libimobiledevice::libimobiledevice ) set_target_properties(libideviceactivation PROPERTIES OUTPUT_NAME ideviceactivation-1.0) install(TARGETS libideviceactivation EXPORT unofficial-libideviceactivation) install( EXPORT unofficial-libideviceactivation FILE unofficial-libideviceactivation-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libideviceactivation" NAMESPACE unofficial::libideviceactivation:: ) install( FILES ${LIBIDEVICEACTIVATION_HEADER} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(LIBPLIST_VERSION 2.0) set(LIBIMOBILEDEVICE_VERSION 1.0) set(LIBCURL_VERSION 7.0) set(LIBXML2_VERSION 2.0) set(PACKAGE_NAME libideviceactivation) set(PACKAGE_VERSION 1.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/libideviceactivation-1.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libideviceactivation-1.0.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/libideviceactivation-1.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) if(BUILD_TOOLS) add_executable(ideviceactivation "tools/ideviceactivation.c") target_compile_definitions(ideviceactivation PRIVATE -DPACKAGE_VERSION="1.1.1" -DPACKAGE_URL="https://github.com/libimobiledevice/libideviceactivation" -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/libideviceactivation/issues" ) if(WIN32) target_compile_definitions(ideviceactivation PRIVATE -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -DWIN32 ) endif() target_link_libraries(ideviceactivation PRIVATE libideviceactivation) install( TARGETS ideviceactivation RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/libideviceactivation/exports.def ================================================ EXPORTS idevice_activation_set_debug_level idevice_activation_request_new idevice_activation_request_new_from_lockdownd idevice_activation_drm_handshake_request_new idevice_activation_request_free idevice_activation_request_get_fields idevice_activation_request_set_fields idevice_activation_request_set_fields_from_response idevice_activation_request_set_field idevice_activation_request_get_field idevice_activation_request_get_url idevice_activation_request_set_url idevice_activation_response_new idevice_activation_response_new_from_html idevice_activation_response_to_buffer idevice_activation_response_free idevice_activation_response_get_field idevice_activation_response_get_fields idevice_activation_response_get_label idevice_activation_response_get_placeholder idevice_activation_response_get_title idevice_activation_response_get_description idevice_activation_response_get_activation_record idevice_activation_response_get_headers idevice_activation_response_is_activation_acknowledged idevice_activation_response_is_authentication_required idevice_activation_response_field_requires_input idevice_activation_response_field_secure_input idevice_activation_response_has_errors idevice_activation_send_request ================================================ FILE: ports/libideviceactivation/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libideviceactivation REF 067c439e0b18d6f1c8a37dde791f9d91191a922e # commits on 2023-05-01 SHA512 0afd74720abc6a1e47e035243879d291444b27667ce0a1908a4e66fea92185ff002e5390a1911ae95dc05d0bb0518a0043c77b531edcc5ac8b59c913aea9d487 HEAD_REF master PATCHES 001_fix_static_build.patch 002_fix_api.patch 003_fix_tools_msvc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ideviceactivation AUTO_CLEAN) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(unofficial-libplist CONFIG) find_dependency(unofficial-libimobiledevice CONFIG) find_dependency(CURL CONFIG) find_dependency(LibXml2 CONFIG) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libideviceactivation/usage ================================================ libideviceactivation provides CMake targets: find_package(unofficial-libideviceactivation CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libideviceactivation::libideviceactivation) ================================================ FILE: ports/libideviceactivation/vcpkg.json ================================================ { "name": "libideviceactivation", "version-date": "2023-05-01", "port-version": 1, "description": "A library to handle the activation process of iOS devices", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ "curl", "libimobiledevice", "libplist", "libxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox" } } } ================================================ FILE: ports/libidn2/disable-subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 3c8179c..f37158c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,7 +15,7 @@ DISTCHECK_CONFIGURE_FLAGS ?= --enable-gtk-doc --enable-gtk-doc-pdf --disable-gcc-warnings -SUBDIRS = gl unistring lib src examples fuzz po +SUBDIRS = gl unistring lib src po ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I unistring/m4 EXTRA_DIST = gl/m4/gnulib-cache.m4 @@ -23,7 +23,6 @@ if ENABLE_DOC SUBDIRS += doc endif -SUBDIRS += tests EXTRA_DIST += cfg.mk maint.mk CONTRIBUTING.md README.md EXTRA_DIST += COPYING COPYING.LESSERv3 COPYING.unicode COPYINGv2 ================================================ FILE: ports/libidn2/fix-uwp.patch ================================================ diff --git a/gl/fcntl.c b/gl/fcntl.c index f9753c4..ae71a4a 100644 --- a/gl/fcntl.c +++ b/gl/fcntl.c @@ -229,12 +229,17 @@ fcntl (int fd, int action, /* arg */...) { # if defined _WIN32 && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); +# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) DWORD flags; if (handle == INVALID_HANDLE_VALUE || GetHandleInformation (handle, &flags) == 0) errno = EBADF; else result = (flags & HANDLE_FLAG_INHERIT) ? 0 : FD_CLOEXEC; +# else + if (handle == INVALID_HANDLE_VALUE) + errno = EBADF; +# endif # else /* !W32 */ /* Use dup2 to reject invalid file descriptors. No way to access this information, so punt. */ diff --git a/gl/stat.c b/gl/stat.c index adb6123..5afefb2 100644 --- a/gl/stat.c +++ b/gl/stat.c @@ -194,6 +194,7 @@ rpl_stat (char const *name, struct stat *buf) { int ret; +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) { /* Approach based on the file. */ @@ -219,6 +220,7 @@ rpl_stat (char const *name, struct stat *buf) goto done; } } +#endif /* Test for root and UNC root directories. */ if ((rlen == drive_prefix_len + 1 && ISSLASH (rname[drive_prefix_len])) ================================================ FILE: ports/libidn2/portfile.cmake ================================================ set(IDN2_FILENAME "libidn2-${VERSION}.tar.gz") vcpkg_download_distfile(ARCHIVE URLS "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" "https://ftp.gnu.org/gnu/libidn/${IDN2_FILENAME}" FILENAME "${IDN2_FILENAME}" SHA512 eab5702bc0baed45492f8dde43a4d2ea3560ad80645e5f9e0cfa8d3b57bccd7fd782d04638e000ba07924a5d9f85e760095b55189188c4017b94705bef9b4a66 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "v${VERSION}" PATCHES disable-subdirs.patch fix-uwp.patch ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() vcpkg_list(APPEND options "--disable-nls") endif() set(ENV{AUTOPOINT} true) # true, the program if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND options "CPPFLAGS=\$CPPFLAGS -DIDN2_STATIC") endif() set(ENV{GTKDOCIZE} true) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF COPY_SOURCE # include dir order problem OPTIONS ${options} --disable-gtk-doc --disable-doc --disable-gcc-warnings OPTIONS_RELEASE "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}" "--with-libunistring-prefix=${CURRENT_INSTALLED_DIR}" OPTIONS_DEBUG "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}/debug" "--with-libunistring-prefix=${CURRENT_INSTALLED_DIR}/debug" "CFLAGS=\$CFLAGS -I${CURRENT_INSTALLED_DIR}/include" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/idn2.h" "defined IDN2_STATIC" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) vcpkg_install_copyright( COMMENT [[ The installed C library libidn2 is dual-licensed under LGPLv3+|GPLv2+, while the rest of the package is GPLv3+. ]] FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LESSERv3" "${SOURCE_PATH}/COPYINGv2" "${SOURCE_PATH}/COPYING.unicode" ) ================================================ FILE: ports/libidn2/vcpkg.json ================================================ { "name": "libidn2", "version": "2.3.7", "port-version": 3, "description": "GNU Libidn is an implementation of the Stringprep, Punycode and IDNA 2003 specifications. Libidn's purpose is to encode and decode internationalized domain names.", "homepage": "https://www.gnu.org/software/libidn/", "license": null, "dependencies": [ "libiconv", "libunistring", { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/libigl/dependencies.patch ================================================ diff --git a/cmake/igl/modules/copyleft/cgal.cmake b/cmake/igl/modules/copyleft/cgal.cmake index f6abe8c..e3aa831 100644 --- a/cmake/igl/modules/copyleft/cgal.cmake +++ b/cmake/igl/modules/copyleft/cgal.cmake @@ -14,7 +14,7 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp") igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(cgal) +find_package(CGAL CONFIG REQUIRED COMPONENTS Core) igl_include(copyleft core) target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE} igl::core diff --git a/cmake/igl/modules/core.cmake b/cmake/igl/modules/core.cmake index 2aefcd6..137d30b 100644 --- a/cmake/igl/modules/core.cmake +++ b/cmake/igl/modules/core.cmake @@ -20,7 +20,7 @@ igl_target_sources(igl_core ${INC_FILES} ${SRC_FILES}) igl_install(igl_core ${INC_FILES} ${SRC_FILES}) # 5. Dependencies -include(eigen) +find_package(Eigen3 CONFIG REQUIRED) find_package(Threads REQUIRED) target_link_libraries(igl_core ${IGL_SCOPE} Eigen3::Eigen diff --git a/cmake/igl/modules/embree.cmake b/cmake/igl/modules/embree.cmake index 6f22319..7f333b0 100644 --- a/cmake/igl/modules/embree.cmake +++ b/cmake/igl/modules/embree.cmake @@ -14,7 +14,8 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/embree/*.cpp") igl_target_sources(igl_embree ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(embree) +find_package(embree CONFIG REQUIRED) +add_library(embree::embree ALIAS embree) target_link_libraries(igl_embree ${IGL_SCOPE} igl::core embree::embree diff --git a/cmake/igl/modules/glfw.cmake b/cmake/igl/modules/glfw.cmake index 79c2126..2da8b0a 100644 --- a/cmake/igl/modules/glfw.cmake +++ b/cmake/igl/modules/glfw.cmake @@ -14,7 +14,8 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/*.cpp") igl_target_sources(igl_glfw ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(glfw) +find_package(glfw3 CONFIG REQUIRED) +add_library(glfw::glfw ALIAS glfw) igl_include(opengl) target_link_libraries(igl_glfw ${IGL_SCOPE} igl::core diff --git a/cmake/igl/modules/imgui.cmake b/cmake/igl/modules/imgui.cmake index d7ffb9d..f331854 100644 --- a/cmake/igl/modules/imgui.cmake +++ b/cmake/igl/modules/imgui.cmake @@ -14,14 +14,12 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/glfw/imgui/*.cpp") igl_target_sources(igl_imgui ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(imgui) -include(imguizmo) -include(libigl_imgui_fonts) +find_package(imgui CONFIG REQUIRED) +find_package(imguizmo CONFIG REQUIRED) igl_include(glfw) target_link_libraries(igl_imgui ${IGL_SCOPE} igl::core igl::glfw imgui::imgui imguizmo::imguizmo - igl::imgui_fonts ) diff --git a/cmake/igl/modules/opengl.cmake b/cmake/igl/modules/opengl.cmake index 4580c03..dfadb38 100644 --- a/cmake/igl/modules/opengl.cmake +++ b/cmake/igl/modules/opengl.cmake @@ -14,7 +14,7 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/opengl/*.cpp") igl_target_sources(igl_opengl ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(glad) +find_package(glad CONFIG REQUIRED) find_package(OpenGL REQUIRED OPTIONAL_COMPONENTS OpenGL) target_link_libraries(igl_opengl ${IGL_SCOPE} igl::core diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake index 20607ec..14db8cf 100644 --- a/cmake/igl/modules/stb.cmake +++ b/cmake/igl/modules/stb.cmake @@ -21,11 +21,11 @@ endif() igl_target_sources(igl_stb ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(stb) +find_package(Stb REQUIRED) target_link_libraries(igl_stb ${IGL_SCOPE} igl::core - stb::stb ) +target_include_directories(igl_stb ${IGL_SCOPE} ${Stb_INCLUDE_DIR}) if(LIBIGL_OPENGL) igl_include(opengl) diff --git a/cmake/igl/modules/xml.cmake b/cmake/igl/modules/xml.cmake index 3763b77..31ab979 100644 --- a/cmake/igl/modules/xml.cmake +++ b/cmake/igl/modules/xml.cmake @@ -14,7 +14,7 @@ file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/xml/*.cpp") igl_target_sources(igl_xml ${INC_FILES} ${SRC_FILES}) # 4. Dependencies -include(tinyxml2) +find_package(tinyxml2 CONFIG REQUIRED) target_link_libraries(igl_xml ${IGL_SCOPE} igl::core tinyxml2::tinyxml2 ================================================ FILE: ports/libigl/imgui-impl.diff ================================================ diff --git a/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp b/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp index ce5ac08..c240c57 100644 --- a/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp +++ b/include/igl/opengl/glfw/imgui/ImGuiPlugin.cpp @@ -10,8 +10,8 @@ #include "ImGuiPlugin.h" #include "ImGuiHelpers.h" #include "../../../project.h" -#include -#include +#include +#include #include #include #include diff --git a/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp b/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp index 61f15b1..ec082de 100644 --- a/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp +++ b/include/igl/opengl/glfw/imgui/ImGuizmoWidget.cpp @@ -1,7 +1,7 @@ #include "ImGuizmoWidget.h" #include -#include -#include +#include +#include #include #include diff --git a/include/igl/opengl/glfw/imgui/SelectionWidget.cpp b/include/igl/opengl/glfw/imgui/SelectionWidget.cpp index ca1261c..6a363d9 100644 --- a/include/igl/opengl/glfw/imgui/SelectionWidget.cpp +++ b/include/igl/opengl/glfw/imgui/SelectionWidget.cpp @@ -8,8 +8,8 @@ #include "SelectionWidget.h" #include -#include -#include +#include +#include #include #include #include "../../../PI.h" ================================================ FILE: ports/libigl/install-extra-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 498caee..f3ba717 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -166,7 +166,11 @@ if(LIBIGL_INSTALL) set(version_config_file "${CMAKE_CURRENT_BINARY_DIR}/LibiglConfigVersion.cmake") set(export_dest_dir "${CMAKE_INSTALL_LIBDIR}/cmake/igl") - foreach(suffix IN ITEMS "") #"_restricted" "_copyleft") + get_directory_property(targets BUILDSYSTEM_TARGETS) + foreach(suffix IN ITEMS "" "_restricted" "_copyleft") + if(NOT targets MATCHES "igl${suffix}") + continue() + endif() install(EXPORT LibiglTargets${suffix} DESTINATION ${export_dest_dir} NAMESPACE igl${suffix}:: diff --git a/cmake/igl/libigl-config.cmake.in b/cmake/igl/libigl-config.cmake.in index d3ff19f..df11bf5 100644 --- a/cmake/igl/libigl-config.cmake.in +++ b/cmake/igl/libigl-config.cmake.in @@ -3,5 +3,30 @@ include(CMakeFindDependencyMacro) find_dependency(Eigen3 REQUIRED) find_dependency(Threads REQUIRED) +if("@LIBIGL_EMBREE@") + find_dependency(embree CONFIG) +endif() +if("@LIBIGL_GLFW@") + find_dependency(glfw3) +endif() +if("@LIBIGL_IMGUI@") + find_dependency(imgui) + find_dependency(imguizmo) +endif() +if("@LIBIGL_OPENGL@") + find_dependency(OpenGL) + find_dependency(glad) +endif() +if("@LIBIGL_XML@") + find_dependency(tinyxml2) +endif() +if("@LIBIGL_COPYLEFT_CGAL@") + # cf. cmake/recipes/external/cgal.cmake + set(CGAL_CMAKE_EXACT_NT_BACKEND "BOOST_BACKEND" CACHE STRING "CGAL exact NT backend") + set(CGAL_DISABLE_GMP ON CACHE BOOL "Disable GMP") + find_dependency(CGAL CONFIG COMPONENTS Core) +endif() + include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/LibiglConfigTargets_copyleft.cmake" OPTIONAL) check_required_components(Libigl) diff --git a/cmake/igl/modules/copyleft/cgal.cmake b/cmake/igl/modules/copyleft/cgal.cmake index e3aa831..371dc7a 100644 --- a/cmake/igl/modules/copyleft/cgal.cmake +++ b/cmake/igl/modules/copyleft/cgal.cmake @@ -10,6 +10,7 @@ target_include_directories(igl_copyleft_cgal ${IGL_SCOPE} # 3. Target sources file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.h") +list(APPEND INC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/CGAL_includes.hpp") file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/copyleft/cgal/*.cpp") igl_target_sources(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) @@ -28,6 +29,9 @@ target_link_libraries(igl_copyleft_cgal ${IGL_SCOPE} CGAL::CGAL_Core ) +# n. Install target & headers +igl_install(igl_copyleft_cgal ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/copyleft/boolean/*.cpp" diff --git a/cmake/igl/modules/copyleft/core.cmake b/cmake/igl/modules/copyleft/core.cmake index 8d03a90..24eb6e5 100644 --- a/cmake/igl/modules/copyleft/core.cmake +++ b/cmake/igl/modules/copyleft/core.cmake @@ -17,3 +17,6 @@ igl_target_sources(igl_copyleft_core ${INC_FILES} ${SRC_FILES}) target_link_libraries(igl_copyleft_core ${IGL_SCOPE} igl::core ) + +# n. Install target & headers +igl_install(igl_copyleft_core ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/core.cmake b/cmake/igl/modules/core.cmake index 137d30b..187a3ec 100644 --- a/cmake/igl/modules/core.cmake +++ b/cmake/igl/modules/core.cmake @@ -12,7 +12,7 @@ target_include_directories(igl_core ${IGL_SCOPE} ) # 3. Target sources -file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h") +file(GLOB INC_FILES "${libigl_SOURCE_DIR}/include/igl/*.h" "${libigl_SOURCE_DIR}/include/igl/*.hpp") file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/include/igl/*.cpp") igl_target_sources(igl_core ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/embree.cmake b/cmake/igl/modules/embree.cmake index 7f333b0..5fbabe7 100644 --- a/cmake/igl/modules/embree.cmake +++ b/cmake/igl/modules/embree.cmake @@ -21,6 +21,9 @@ target_link_libraries(igl_embree ${IGL_SCOPE} embree::embree ) +# n. Install target & headers +igl_install(igl_embree ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/embree/*.cpp") igl_add_test(igl_embree ${SRC_FILES}) diff --git a/cmake/igl/modules/glfw.cmake b/cmake/igl/modules/glfw.cmake index 2da8b0a..853759f 100644 --- a/cmake/igl/modules/glfw.cmake +++ b/cmake/igl/modules/glfw.cmake @@ -23,6 +23,9 @@ target_link_libraries(igl_glfw ${IGL_SCOPE} glfw::glfw ) +# n. Install target & headers +igl_install(igl_glfw ${INC_FILES} ${SRC_FILES}) + # 5. Unit tests if(LIBIGL_GLFW_TESTS) file(GLOB SRC_FILES "${libigl_SOURCE_DIR}/tests/include/igl/opengl/glfw/*.cpp") diff --git a/cmake/igl/modules/imgui.cmake b/cmake/igl/modules/imgui.cmake index f331854..37fe9c3 100644 --- a/cmake/igl/modules/imgui.cmake +++ b/cmake/igl/modules/imgui.cmake @@ -23,3 +23,6 @@ target_link_libraries(igl_imgui ${IGL_SCOPE} imgui::imgui imguizmo::imguizmo ) + +# n. Install target & headers +igl_install(igl_imgui ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/opengl.cmake b/cmake/igl/modules/opengl.cmake index dfadb38..89ba687 100644 --- a/cmake/igl/modules/opengl.cmake +++ b/cmake/igl/modules/opengl.cmake @@ -22,3 +22,6 @@ target_link_libraries(igl_opengl ${IGL_SCOPE} # Link against OpenGL::OpenGL if available, or fallback to OpenGL::GL $,OpenGL::OpenGL,OpenGL::GL> ) + +# n. Install target & headers +igl_install(igl_opengl ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/stb.cmake b/cmake/igl/modules/stb.cmake index 14db8cf..23c5c66 100644 --- a/cmake/igl/modules/stb.cmake +++ b/cmake/igl/modules/stb.cmake @@ -33,3 +33,6 @@ if(LIBIGL_OPENGL) igl::opengl ) endif() + +# n. Install target & headers +igl_install(igl_stb ${INC_FILES} ${SRC_FILES}) diff --git a/cmake/igl/modules/xml.cmake b/cmake/igl/modules/xml.cmake index 31ab979..20c2139 100644 --- a/cmake/igl/modules/xml.cmake +++ b/cmake/igl/modules/xml.cmake @@ -19,3 +19,6 @@ target_link_libraries(igl_xml ${IGL_SCOPE} igl::core tinyxml2::tinyxml2 ) + +# n. Install target & headers +igl_install(igl_xml ${INC_FILES} ${SRC_FILES}) ================================================ FILE: ports/libigl/instantiations.diff ================================================ diff --git a/include/igl/copyleft/cgal/outer_edge.cpp b/include/igl/copyleft/cgal/outer_edge.cpp index 06abbea..f9043d1 100644 --- a/include/igl/copyleft/cgal/outer_edge.cpp +++ b/include/igl/copyleft/cgal/outer_edge.cpp @@ -147,11 +147,15 @@ IGL_INLINE void igl::copyleft::cgal::outer_edge( #include template void igl::copyleft::cgal::outer_edge, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); +#endif template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,std::ptrdiff_t &,std::ptrdiff_t &,Eigen::PlainObjectBase > &); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_edge,Eigen::Matrix,Eigen::Matrix,std::ptrdiff_t,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,std::ptrdiff_t&,std::ptrdiff_t&,Eigen::PlainObjectBase >&); +#endif #ifdef WIN32 template void __cdecl igl::copyleft::cgal::outer_edge,class Eigen::Matrix,class Eigen::Matrix,std::ptrdiff_t,class Eigen::Matrix >(class Eigen::MatrixBase > const &,class Eigen::MatrixBase > const &,class Eigen::MatrixBase > const &,std::ptrdiff_t &,std::ptrdiff_t &,class Eigen::PlainObjectBase > &); diff --git a/include/igl/copyleft/cgal/outer_facet.cpp b/include/igl/copyleft/cgal/outer_facet.cpp index 0de3f01..e5348a0 100644 --- a/include/igl/copyleft/cgal/outer_facet.cpp +++ b/include/igl/copyleft/cgal/outer_facet.cpp @@ -154,12 +154,18 @@ IGL_INLINE void igl::copyleft::cgal::outer_facet( // Explicit template instantiation // generated by autoexplicit.sh #include +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, bool&); +#endif // generated by autoexplicit.sh template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, Eigen::Index>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::Index &, bool&); +#endif template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, Eigen::Index>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::Index&, bool&); +#endif template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); //template void igl::copyleft::cgal::outer_facet, Eigen::Matrix, Eigen::Matrix, int>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, int&, bool&); diff --git a/include/igl/copyleft/cgal/outer_vertex.cpp b/include/igl/copyleft/cgal/outer_vertex.cpp index d6a02e9..b5d057a 100644 --- a/include/igl/copyleft/cgal/outer_vertex.cpp +++ b/include/igl/copyleft/cgal/outer_vertex.cpp @@ -87,10 +87,14 @@ IGL_INLINE void igl::copyleft::cgal::outer_vertex( #include template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); +#endif template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); +#endif // Linux template void igl::copyleft::cgal::outer_vertex, Eigen::Matrix, Eigen::Matrix, std::ptrdiff_t, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::ptrdiff_t&, Eigen::PlainObjectBase >&); #ifdef WIN32 diff --git a/include/igl/copyleft/cgal/remesh_intersections.cpp b/include/igl/copyleft/cgal/remesh_intersections.cpp index d5a73d9..e4d978a 100644 --- a/include/igl/copyleft/cgal/remesh_intersections.cpp +++ b/include/igl/copyleft/cgal/remesh_intersections.cpp @@ -551,9 +551,13 @@ template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epeck, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); +#endif template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::remesh_intersections, Eigen::Matrix, CGAL::Epick, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, std::vector, std::allocator > > const&, std::map::Index, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > >, std::less::Index>, std::allocator::Index const, std::vector::Index, CGAL::Object>, std::allocator::Index, CGAL::Object> > > > > > const&, bool, bool, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&); +#endif #ifdef WIN32 template void igl::copyleft::cgal::remesh_intersections,Eigen::Matrix,CGAL::Epick,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase >const &,Eigen::MatrixBase > const &,std::vector,std::allocator> > const &,std::map<__int64,std::vector,std::allocator > >,struct std::less<__int64>,std::allocator,std::allocator > > > > > const &,bool,bool,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &); template void igl::copyleft::cgal::remesh_intersections,Eigen::Matrix,CGAL::Epick,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase >const &,Eigen::MatrixBase > const &,std::vector,std::allocator> > const &,std::map<__int64,std::vector,std::allocator > >,struct std::less<__int64>,std::allocator,std::allocator > > > > > const &,bool,bool,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &,Eigen::PlainObjectBase > &); diff --git a/include/igl/copyleft/cgal/remesh_self_intersections.cpp b/include/igl/copyleft/cgal/remesh_self_intersections.cpp index 415544f..217b90c 100644 --- a/include/igl/copyleft/cgal/remesh_self_intersections.cpp +++ b/include/igl/copyleft/cgal/remesh_self_intersections.cpp @@ -156,7 +156,9 @@ template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); +#if PTRDIFF_MAX != INT_MAX template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); +#endif template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); template void igl::copyleft::cgal::remesh_self_intersections,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const&,Eigen::MatrixBase > const&,igl::copyleft::cgal::RemeshSelfIntersectionsParam const&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&,Eigen::PlainObjectBase >&); #endif diff --git a/include/igl/copyleft/cgal/unique.cpp b/include/igl/copyleft/cgal/unique.cpp index 9ebf98f..c3c1fa2 100644 --- a/include/igl/copyleft/cgal/unique.cpp +++ b/include/igl/copyleft/cgal/unique.cpp @@ -11,5 +11,5 @@ #ifdef IGL_STATIC_LIBRARY #undef IGL_STATIC_LIBRARY #include "../../unique.cpp" -template void igl::unique >(std::vector, std::allocator > > const&, std::vector, std::allocator > >&, std::vector >&, std::vector >&); +template void igl::unique >(std::vector, std::allocator > > const&, std::vector, std::allocator > >&, std::vector >&, std::vector >&); #endif diff --git a/include/igl/extract_non_manifold_edge_curves.cpp b/include/igl/extract_non_manifold_edge_curves.cpp index 6cc4464..87dd952 100644 --- a/include/igl/extract_non_manifold_edge_curves.cpp +++ b/include/igl/extract_non_manifold_edge_curves.cpp @@ -126,5 +126,5 @@ IGL_INLINE void igl::extract_non_manifold_edge_curves( #ifdef IGL_STATIC_LIBRARY // Explicit template instantiation // generated by autoexplicit.sh -template void igl::extract_non_manifold_edge_curves, Eigen::Matrix, int>(Eigen::MatrixBase> const &, Eigen::MatrixBase> const &, std::vector>, std::allocator>>> const &, std::vector>, std::allocator>>> &); +template void igl::extract_non_manifold_edge_curves, Eigen::Matrix, int>(Eigen::MatrixBase> const &, Eigen::MatrixBase> const &, std::vector>, std::allocator>>> const &, std::vector>, std::allocator>>> &); #endif diff --git a/include/igl/flip_edge.cpp b/include/igl/flip_edge.cpp index bda85b9..9ecc0d1 100644 --- a/include/igl/flip_edge.cpp +++ b/include/igl/flip_edge.cpp @@ -159,7 +159,7 @@ IGL_INLINE void igl::flip_edge( #ifdef IGL_STATIC_LIBRARY // Explicit template instantiation // generated by autoexplicit.sh -template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, unsigned long); +template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, const size_t); template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, const size_t); #ifdef WIN32 template void igl::flip_edge, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, int>(Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, Eigen::PlainObjectBase >&, std::vector >, std::allocator > > >&, unsigned __int64); diff --git a/include/igl/knn.cpp b/include/igl/knn.cpp index 9e0e4f8..321297b 100644 --- a/include/igl/knn.cpp +++ b/include/igl/knn.cpp @@ -138,8 +138,8 @@ namespace igl { // Explicit template instantiation // generated by autoexplicit.sh -template void igl::knn, Eigen::Matrix, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, unsigned long, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); -template void igl::knn, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, unsigned long, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); +template void igl::knn, Eigen::Matrix, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, size_t, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); +template void igl::knn, int, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix, Eigen::Matrix >(Eigen::MatrixBase > const&, size_t, std::vector >, std::allocator > > > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::PlainObjectBase >&); #ifdef WIN32 template void igl::knn,int,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const &,unsigned __int64,std::vector >,std::allocator > > > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::PlainObjectBase > &); template void igl::knn,Eigen::Matrix,int,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix,Eigen::Matrix >(Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,unsigned __int64,std::vector >,std::allocator > > > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::MatrixBase > const &,Eigen::PlainObjectBase > &); diff --git a/include/igl/slice.cpp b/include/igl/slice.cpp index 091588c..b823c75 100644 --- a/include/igl/slice.cpp +++ b/include/igl/slice.cpp @@ -217,7 +217,7 @@ template void igl::slice(class std::vector(class std::vector > const &,class std::vector > const &,class std::vector > &); template void igl::slice<__int64>(class std::vector<__int64,class std::allocator<__int64> > const &,class std::vector > const &,class std::vector<__int64,class std::allocator<__int64> > &); #endif -template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); +template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); template void igl::slice(std::vector > const&, std::vector > const&, std::vector >&); diff --git a/include/igl/sparse.cpp b/include/igl/sparse.cpp index be6b561..8eed7f9 100644 --- a/include/igl/sparse.cpp +++ b/include/igl/sparse.cpp @@ -97,11 +97,11 @@ IGL_INLINE Eigen::SparseMatrix igl::sparse( #ifdef IGL_STATIC_LIBRARY // Explicit template instantiation // generated by autoexplicit.sh -template void igl::sparse, Eigen::Matrix, Eigen::Matrix, int>(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, unsigned long, unsigned long, Eigen::SparseMatrix&); +template void igl::sparse, Eigen::Matrix, Eigen::Matrix, int>(Eigen::Matrix const&, Eigen::Matrix const&, Eigen::Matrix const&, size_t, size_t, Eigen::SparseMatrix&); // generated by autoexplicit.sh -template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseNullaryOp, Eigen::Matrix >, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseNullaryOp, Eigen::Matrix > const&, unsigned long, unsigned long, Eigen::SparseMatrix&); +template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseNullaryOp, Eigen::Matrix >, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseNullaryOp, Eigen::Matrix > const&, size_t, size_t, Eigen::SparseMatrix&); // generated by autoexplicit.sh -template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const>, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const> const&, unsigned long, unsigned long, Eigen::SparseMatrix&); +template void igl::sparse, -1, 1, true>, Eigen::Block, -1, 1, true>, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const>, int>(Eigen::Block, -1, 1, true> const&, Eigen::Block, -1, 1, true> const&, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseBinaryOp, Eigen::CwiseNullaryOp, Eigen::Array const> const, Eigen::CwiseUnaryOp, Eigen::CwiseBinaryOp, Eigen::ArrayWrapper, -1, 1, true> > const, Eigen::ArrayWrapper, -1, 1, true> > const> const> const> const> const&, size_t, size_t, Eigen::SparseMatrix&); // generated by autoexplicit.sh #ifndef WIN32 //template void igl::sparse >, Eigen::MatrixBase >, Eigen::CwiseNullaryOp, Eigen::Array >, bool>(Eigen::MatrixBase > const&, Eigen::MatrixBase > const&, Eigen::CwiseNullaryOp, Eigen::Array > const&, unsigned long, unsigned long, Eigen::SparseMatrix&); ================================================ FILE: ports/libigl/portfile.cmake ================================================ # This triplet option enables building an actual binary library. # Despite the name (which follows upstream's choice), it respects # the triplet's library linkage for non-Windows targets. # Missing symbols - i.e. explicit template instantiations - # must be added to the implementation files (and upstreamed), # cf. https://libigl.github.io/static-library/ if(NOT DEFINED LIBIGL_USE_STATIC_LIBRARY) set(LIBIGL_USE_STATIC_LIBRARY OFF) endif() if(NOT LIBIGL_USE_STATIC_LIBRARY) set(VCPKG_BUILD_TYPE release) # header-only elseif(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libigl/libigl REF "v${VERSION}" SHA512 7c6ae5b94020a01df5d6d0a358592293595d8d8bf04bf42e6acc09bcd6ed012071069373a71ed6f24ce878aa79447dd189b42bc8a3a70819ef05dccc60a2cf68 HEAD_REF master PATCHES dependencies.patch imgui-impl.diff install-extra-targets.patch instantiations.diff # Fix size_t and ptrdiff_t issues in 32 bit builds (arm32, x86) ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/recipes") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cgal LIBIGL_COPYLEFT_CGAL copyleft LIBIGL_COPYLEFT_CORE embree LIBIGL_EMBREE glfw LIBIGL_GLFW imgui LIBIGL_IMGUI opengl LIBIGL_OPENGL xml LIBIGL_XML ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DCMAKE_POLICY_DEFAULT_CMP0167=NEW # boost used by cgal -DHUNTER_ENABLED=OFF -DLIBIGL_BUILD_TESTS=OFF -DLIBIGL_BUILD_TUTORIALS=OFF -DLIBIGL_INSTALL=ON -DLIBIGL_USE_STATIC_LIBRARY=${LIBIGL_USE_STATIC_LIBRARY} # cf. cmake/recipes/external/cgal.cmake -DCGAL_CMAKE_EXACT_NT_BACKEND=BOOST_BACKEND -DCGAL_DISABLE_GMP=ON # Permissive modules -DLIBIGL_PREDICATES=OFF -DLIBIGL_SPECTRA=OFF # Copyleft modules -DLIBIGL_COPYLEFT_COMISO=OFF -DLIBIGL_COPYLEFT_TETGEN=OFF # Restricted modules -DLIBIGL_RESTRICTED_MATLAB=OFF -DLIBIGL_RESTRICTED_MOSEK=OFF -DLIBIGL_RESTRICTED_TRIANGLE=OFF MAYBE_UNUSED_VARIABLES CGAL_CMAKE_EXACT_NT_BACKEND CGAL_DISABLE_GMP ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/igl) vcpkg_copy_pdbs() if(LIBIGL_USE_STATIC_LIBRARY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() set(comment "") if(LIBIGL_COPYLEFT_CORE) set(comment "GPL-2.0 terms apply to include/igl/copyleft/marching_cubes_tables.h.") endif() vcpkg_install_copyright(COMMENT "${comment}" FILE_LIST "${SOURCE_PATH}/LICENSE.MPL2") ================================================ FILE: ports/libigl/vcpkg.json ================================================ { "name": "libigl", "version": "2.6.0", "port-version": 1, "description": "libigl is a simple C++ geometry processing library. We have a wide functionality including construction of sparse discrete differential geometry operators and finite-elements matrices such as the cotangent Laplacian and diagonalized mass matrix, simple facet and edge-based topology data structures, mesh-viewing utilities for OpenGL and GLSL, and many core functions for matrix manipulation which make Eigen feel a lot more like MATLAB.", "homepage": "https://github.com/libigl/libigl", "license": "MPL-2.0", "supports": "!uwp", "dependencies": [ "eigen3", "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cgal": { "description": "Build with cgal", "supports": "!(x86 & windows & !mingw)", "dependencies": [ { "name": "cgal", "default-features": false }, { "name": "libigl", "default-features": false, "features": [ "copyleft" ] } ] }, "copyleft": { "description": "Build copyleft core module", "license": "MPL-2.0 AND GPL-2.0" }, "embree": { "description": "Build with embree", "dependencies": [ { "name": "embree", "default-features": false } ] }, "glfw": { "description": "Build with glfw", "dependencies": [ "glfw3", { "name": "libigl", "default-features": false, "features": [ "opengl" ] } ] }, "imgui": { "description": "Build with imgui", "dependencies": [ { "name": "imgui", "default-features": false, "features": [ "glfw-binding", "libigl-imgui", "opengl3-binding" ] }, "imguizmo", { "name": "libigl", "default-features": false, "features": [ "glfw" ] } ] }, "opengl": { "description": "Build with opengl", "dependencies": [ "glad", "opengl" ] }, "xml": { "description": "Build with libxml", "dependencies": [ "tinyxml2" ] } } } ================================================ FILE: ports/libilbc/absl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 016b46d37..4caa88fce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,14 +50,12 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) set(CMAKE_CXX_STANDARD 14) -if((CMAKE_C_COMPILER_ID STREQUAL "GNU") OR - (CMAKE_C_COMPILER_ID MATCHES "Clang" AND CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "GNU")) +if(0) set(CMAKE_C_FLAGS "-Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wno-unused-parameter -fno-strict-aliasing") set(CMAKE_C_FLAGS_DEBUG "-g") set(CMAKE_C_FLAGS_RELEASE "-O2") endif() -if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR - (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU")) +if(0) set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing") set(CMAKE_CXX_FLAGS_DEBUG "-g") set(CMAKE_CXX_FLAGS_RELEASE "-O2") @@ -146,7 +144,8 @@ endif() ## Configure input files ############################################################################# -include_directories(. abseil-cpp ${CMAKE_CURRENT_BINARY_DIR}) +find_package(absl REQUIRED) +include_directories(. ${CMAKE_CURRENT_BINARY_DIR}) set(ilbc_source_files modules/audio_coding/codecs/ilbc/abs_quant.c @@ -310,6 +310,7 @@ add_library(ilbc ${ilbc_source_files}) generate_export_header(ilbc) set_target_properties(ilbc PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 3) set_target_properties(ilbc PROPERTIES CLEAN_DIRECT_OUTPUT 1) +target_link_libraries(ilbc PRIVATE absl::core_headers) add_executable(ilbc_test modules/audio_coding/codecs/ilbc/test/iLBC_test.c) target_link_libraries(ilbc_test ilbc) ================================================ FILE: ports/libilbc/do-not-build-ilbc_test.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 671ded64d1..1d01f737c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -332,7 +332,7 @@ install(FILES ilbc.h ${CMAKE_CURRENT_BINARY_DIR}/ilbc_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES CONTRIBUTING.md NEWS.md README.md DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(TARGETS ilbc ilbc_test +install(TARGETS ilbc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ================================================ FILE: ports/libilbc/portfile.cmake ================================================ set(ILBC_VERSION 3.0.4) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TimothyGu/libilbc REF cd064edf2c6c104a4e1fd87b34fd24cfa6dbe401 SHA512 323d32dbd54d5ef624940432bf19c29f5ead6f40bc84aba4261f067dfdc40cf4000e383f4dca65cd3b745a354a119a9e515949a1466af89c300cd7bf95991675 PATCHES do-not-build-ilbc_test.patch absl.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_DOCDIR=share/${PORT} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ilbc_export.h" "#ifdef ILBC_STATIC_DEFINE" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libilbc/vcpkg.json ================================================ { "name": "libilbc", "version": "3.0.4", "description": "Open source implementation of the Internet Low Bit Rate Codec (iLBC) / RFC 3951 codec from the WebRTC project.", "homepage": "https://github.com/TimothyGu/libilbc", "license": "BSD-3-Clause", "supports": "!(arm & uwp)", "dependencies": [ "abseil", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libimobiledevice/001_fix_msvc.patch ================================================ diff --git a/common/userpref.c b/common/userpref.c index b64c703..7ff325c 100644 --- a/common/userpref.c +++ b/common/userpref.c @@ -35,7 +35,9 @@ #ifndef WIN32 #include #endif +#ifndef _MSC_VER #include +#endif #include #if defined(HAVE_OPENSSL) #include @@ -65,7 +67,9 @@ #endif #include +#ifndef _MSC_VER #include +#endif #include #include diff --git a/include/libimobiledevice/libimobiledevice.h b/include/libimobiledevice/libimobiledevice.h index 6851145..55ef753 100644 --- a/include/libimobiledevice/libimobiledevice.h +++ b/include/libimobiledevice/libimobiledevice.h @@ -30,6 +30,11 @@ extern "C" { #endif +#if defined(_MSC_VER) +#include +typedef SSIZE_T ssize_t; +#endif + #include #include #include diff --git a/src/afc.c b/src/afc.c index d8c3db0..ab2c4ff 100644 --- a/src/afc.c +++ b/src/afc.c @@ -26,7 +26,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include "afc.h" diff --git a/src/house_arrest.c b/src/house_arrest.c index ac92130..e12bde5 100644 --- a/src/house_arrest.c +++ b/src/house_arrest.c @@ -24,7 +24,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include "house_arrest.h" diff --git a/src/installation_proxy.c b/src/installation_proxy.c index 9602876..2f02514 100644 --- a/src/installation_proxy.c +++ b/src/installation_proxy.c @@ -26,7 +26,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include "installation_proxy.h" diff --git a/src/lockdown-cu.c b/src/lockdown-cu.c index d8d7f42..eb11afa 100644 --- a/src/lockdown-cu.c +++ b/src/lockdown-cu.c @@ -29,7 +29,9 @@ #define __USE_GNU 1 #include #include +#ifndef _MSC_VER #include +#endif #include #include "idevice.h" diff --git a/src/lockdown.c b/src/lockdown.c index 92af186..a9b9b88 100644 --- a/src/lockdown.c +++ b/src/lockdown.c @@ -32,7 +32,9 @@ #define __USE_GNU 1 #include #include +#ifndef _MSC_VER #include +#endif #include #include diff --git a/src/misagent.c b/src/misagent.c index af925f9..5fe618e 100644 --- a/src/misagent.c +++ b/src/misagent.c @@ -24,7 +24,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include diff --git a/src/mobile_image_mounter.c b/src/mobile_image_mounter.c index 9ccfd85..c4f540c 100644 --- a/src/mobile_image_mounter.c +++ b/src/mobile_image_mounter.c @@ -24,7 +24,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include "mobile_image_mounter.h" diff --git a/src/notification_proxy.c b/src/notification_proxy.c index e17e2fe..679739c 100644 --- a/src/notification_proxy.c +++ b/src/notification_proxy.c @@ -24,7 +24,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include "notification_proxy.h" diff --git a/src/sbservices.c b/src/sbservices.c index ccb7c4b..f0b832e 100644 --- a/src/sbservices.c +++ b/src/sbservices.c @@ -24,7 +24,9 @@ #endif #include #include +#ifndef _MSC_VER #include +#endif #include #include "sbservices.h" ================================================ FILE: ports/libimobiledevice/002_fix_static_build.patch ================================================ diff --git a/src/idevice.c b/src/idevice.c index 719cd28..0ae8a1c 100644 --- a/src/idevice.c +++ b/src/idevice.c @@ -124,6 +124,8 @@ static void id_function(CRYPTO_THREADID *thread) #endif #endif /* HAVE_OPENSSL */ +#ifndef LIBIMOBILEDEVICE_STATIC // disable dll constructor + static void internal_idevice_init(void) { #if defined(HAVE_OPENSSL) @@ -219,6 +221,8 @@ BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) #warning No compiler support for constructor/destructor attributes, some features might not be available. #endif +#endif // disable dll constructor + struct idevice_subscription_context { idevice_event_cb_t callback; void *user_data; ================================================ FILE: ports/libimobiledevice/003_fix_api.patch ================================================ diff --git a/src/idevice.h b/src/idevice.h index 2509e48..384f178 100644 --- a/src/idevice.h +++ b/src/idevice.h @@ -37,15 +37,11 @@ #include #endif -#ifdef WIN32 -#define LIBIMOBILEDEVICE_API __declspec( dllexport ) -#else -#ifdef HAVE_FVISIBILITY +#if !defined(_WIN32) && !defined(LIBIMOBILEDEVICEGLUE_STATIC) #define LIBIMOBILEDEVICE_API __attribute__((visibility("default"))) #else #define LIBIMOBILEDEVICE_API #endif -#endif #include "common/userpref.h" #include "libimobiledevice/libimobiledevice.h" ================================================ FILE: ports/libimobiledevice/004_fix_tools_msvc.patch ================================================ diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c index 5694c12..77fd81f 100644 --- a/tools/idevicebackup.c +++ b/tools/idevicebackup.c @@ -50,7 +50,9 @@ #else #error No supported crypto library enabled #endif +#ifndef _MSC_VER #include +#endif #include #include @@ -68,6 +70,18 @@ #define LOCK_ATTEMPTS 50 #define LOCK_WAIT 200000 +#ifdef _MSC_VER +static void usleep(__int64 usec) { + HANDLE timer; + LARGE_INTEGER ft; + ft.QuadPart = -(10*usec); + timer = CreateWaitableTimer(NULL, TRUE, NULL); + SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0); + WaitForSingleObject(timer, INFINITE); + CloseHandle(timer); +} +#endif + #ifdef WIN32 #include #define sleep(x) Sleep(x*1000) diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index c73b269..33157c9 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c @@ -31,9 +31,13 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include +#ifndef _MSC_VER #include +#endif #include #include #include @@ -54,6 +58,62 @@ #define LOCK_ATTEMPTS 50 #define LOCK_WAIT 200000 +#ifdef _MSC_VER +static void usleep(__int64 usec) { + HANDLE timer; + LARGE_INTEGER ft; + ft.QuadPart = -(10*usec); + timer = CreateWaitableTimer(NULL, TRUE, NULL); + SetWaitableTimer(timer, &ft, 0, NULL, NULL, 0); + WaitForSingleObject(timer, INFINITE); + CloseHandle(timer); +} +#ifndef ISSLASH +#define ISSLASH(C) ((C) == '/' || (C) == '\\') +#endif +#ifndef FILESYSTEM_PREFIX_LEN +#define FILESYSTEM_PREFIX_LEN(Filename) 0 +#endif +static char *basename(char const *name) { + char const *base = name + FILESYSTEM_PREFIX_LEN(name); + char const *p; + + for (p = base; *p; p++) { + if (ISSLASH(*p)) { + do p++; + while (ISSLASH(*p)); + + if (!*p) { + if (ISSLASH(*base)) + base = p - 1; + break; + } + base = p; + } + } + + return (char *) base; +} +static size_t dirlen(char const *path) { + size_t prefix_length = FILESYSTEM_PREFIX_LEN(path); + size_t length; + for (length = basename(path) - path; prefix_length < length; length--) + if (!ISSLASH(path[length - 1])) + return length; + return prefix_length + ISSLASH(path[prefix_length]); +} +static char *dirname(char const *path) { + size_t length = dirlen(path); + int append_dot = (length == FILESYSTEM_PREFIX_LEN(path)); + char *newpath = (char *) malloc(length + append_dot + 1); + memcpy(newpath, path, length); + if (append_dot) + newpath[length++] = '.'; + newpath[length] = 0; + return newpath; +} +#endif + #ifdef WIN32 #include #include diff --git a/tools/idevicebtlogger.c b/tools/idevicebtlogger.c index 8de6b22..8fbf40d 100644 --- a/tools/idevicebtlogger.c +++ b/tools/idevicebtlogger.c @@ -31,7 +31,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #include diff --git a/tools/idevicecrashreport.c b/tools/idevicecrashreport.c index 09bd537..9f53b30 100644 --- a/tools/idevicecrashreport.c +++ b/tools/idevicecrashreport.c @@ -29,7 +29,14 @@ #include #include #include +#ifndef _MSC_VER #include +#else +#define S_IFIFO _S_IFIFO +#define S_IFBLK 0x3000 +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif #include #ifndef WIN32 #include diff --git a/tools/idevicedebug.c b/tools/idevicedebug.c index 36c594e..9c11781 100644 --- a/tools/idevicedebug.c +++ b/tools/idevicedebug.c @@ -30,8 +30,12 @@ #include #include #include +#ifndef _MSC_VER #include +#endif +#ifndef _MSC_VER #include +#endif #include #ifdef WIN32 diff --git a/tools/idevicedevmodectl.c b/tools/idevicedevmodectl.c index ba9b935..8e28e4b 100644 --- a/tools/idevicedevmodectl.c +++ b/tools/idevicedevmodectl.c @@ -30,7 +30,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #ifndef WIN32 #include diff --git a/tools/ideviceimagemounter.c b/tools/ideviceimagemounter.c index f551b6c..26bb80c 100644 --- a/tools/ideviceimagemounter.c +++ b/tools/ideviceimagemounter.c @@ -32,9 +32,13 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include +#ifndef _MSC_VER #include +#endif #include #ifndef WIN32 #include diff --git a/tools/idevicename.c b/tools/idevicename.c index 69b76f6..cb8c9a6 100644 --- a/tools/idevicename.c +++ b/tools/idevicename.c @@ -27,7 +27,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #include #include #ifndef WIN32 diff --git a/tools/idevicepair.c b/tools/idevicepair.c index 94d3f04..129c409 100644 --- a/tools/idevicepair.c +++ b/tools/idevicepair.c @@ -31,7 +31,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #ifdef WIN32 #include #include diff --git a/tools/ideviceprovision.c b/tools/ideviceprovision.c index 4080a28..f64e2c4 100644 --- a/tools/ideviceprovision.c +++ b/tools/ideviceprovision.c @@ -42,6 +42,14 @@ #include #endif +#ifdef _MSC_VER +#include +#ifndef _S_ISTYPE +#define _S_ISTYPE(mode, mask) (((mode) & _S_IFMT) == (mask)) +#define S_ISDIR(mode) _S_ISTYPE((mode), _S_IFDIR) +#endif +#endif + #include #include #include diff --git a/tools/idevicescreenshot.c b/tools/idevicescreenshot.c index 0e694c7..6f4b1c5 100644 --- a/tools/idevicescreenshot.c +++ b/tools/idevicescreenshot.c @@ -31,7 +31,11 @@ #include #include #include +#ifndef _MSC_VER #include +#else +#define F_OK 0 +#endif #ifndef WIN32 #include #endif diff --git a/tools/idevicesyslog.c b/tools/idevicesyslog.c index 5600be2..69b7b03 100644 --- a/tools/idevicesyslog.c +++ b/tools/idevicesyslog.c @@ -31,7 +31,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #ifdef WIN32 ================================================ FILE: ports/libimobiledevice/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libimobiledevice C) option(BUILD_TOOLS "Build tools." OFF) include(GNUInstallDirs) file(GLOB_RECURSE LIBIMOBILEDEVICE_SOURCE src/*.c src/*.h) file(GLOB_RECURSE LIBIMOBILEDEVICE_COMMON_SOURCE common/*.c common/*.h) set(DEFINITIONS) list(APPEND DEFINITIONS -DHAVE_OPENSSL) if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND LIBIMOBILEDEVICE_SOURCE exports.def) endif() else() list(APPEND DEFINITIONS -DLIBIMOBILEDEVICE_STATIC) endif() if(UNIX) list(APPEND DEFINITIONS -DHAVE_STPCPY) list(APPEND DEFINITIONS -DHAVE_VASPRINTF) list(APPEND DEFINITIONS -DHAVE_ASPRINTF) list(APPEND DEFINITIONS -DHAVE_GETIFADDRS) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32_LEAN_AND_MEAN) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libplist CONFIG REQUIRED) find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) find_package(unofficial-libusbmuxd CONFIG REQUIRED) find_package(OpenSSL REQUIRED) add_library(libimobiledevice ${LIBIMOBILEDEVICE_SOURCE} ${LIBIMOBILEDEVICE_COMMON_SOURCE}) target_include_directories(libimobiledevice PUBLIC "$" "$" "$" ) target_compile_definitions(libimobiledevice PRIVATE ${DEFINITIONS}) target_link_libraries(libimobiledevice PRIVATE unofficial::libimobiledevice-glue::libimobiledevice-glue unofficial::libusbmuxd::libusbmuxd OpenSSL::SSL OpenSSL::Crypto PUBLIC unofficial::libplist::libplist ) set_target_properties(libimobiledevice PROPERTIES OUTPUT_NAME imobiledevice-1.0) if(WIN32) target_link_libraries(libimobiledevice PRIVATE Ws2_32) endif() install(TARGETS libimobiledevice EXPORT unofficial-libimobiledevice) install( EXPORT unofficial-libimobiledevice FILE unofficial-libimobiledevice-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libimobiledevice" NAMESPACE unofficial::libimobiledevice:: ) install( DIRECTORY "${CMAKE_SOURCE_DIR}/include/libimobiledevice" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) install( FILES "${CMAKE_SOURCE_DIR}/include/endianness.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(LIBPLIST_VERSION 2.0) set(LIMD_GLUE_VERSION 1.0) set(LIBUSBMUXD_VERSION 2.0) set(PACKAGE_NAME libimobiledevice) set(PACKAGE_VERSION 1.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/libimobiledevice-1.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libimobiledevice-1.0.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/libimobiledevice-1.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) if(BUILD_TOOLS) if(WIN32) find_package(unofficial-getopt-win32 REQUIRED) endif() function(add_tool name source) add_executable("${name}" "${source}" ${LIBIMOBILEDEVICE_COMMON_SOURCE}) target_compile_definitions("${name}" PRIVATE -DPACKAGE_VERSION="2.0.2" -DPACKAGE_URL="https://github.com/libimobiledevice/libusbmuxd" -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/libusbmuxd/issues" -DHAVE_OPENSSL ) target_link_libraries("${name}" PRIVATE libimobiledevice unofficial::libimobiledevice-glue::libimobiledevice-glue unofficial::libusbmuxd::libusbmuxd OpenSSL::SSL OpenSSL::Crypto ) if(WIN32) target_compile_definitions("${name}" PRIVATE -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -DWIN32 ) target_link_libraries("${name}" PRIVATE unofficial::getopt-win32::getopt Ws2_32) endif() if(UNIX) target_compile_definitions("${name}" PRIVATE -DHAVE_VASPRINTF -DHAVE_ASPRINTF ) endif() endfunction(add_tool) add_tool(idevice_id "tools/idevice_id.c") add_tool(idevicebackup "tools/idevicebackup.c") add_tool(idevicebackup2 "tools/idevicebackup2.c") add_tool(idevicebtlogger "tools/idevicebtlogger.c") add_tool(idevicecrashreport "tools/idevicecrashreport.c") add_tool(idevicedate "tools/idevicedate.c") add_tool(idevicedebug "tools/idevicedebug.c") add_tool(idevicedebugserverproxy "tools/idevicedebugserverproxy.c") add_tool(idevicedevmodectl "tools/idevicedevmodectl.c") add_tool(idevicediagnostics "tools/idevicediagnostics.c") add_tool(ideviceenterrecovery "tools/ideviceenterrecovery.c") add_tool(ideviceimagemounter "tools/ideviceimagemounter.c") add_tool(ideviceinfo "tools/ideviceinfo.c") add_tool(idevicename "tools/idevicename.c") add_tool(idevicenotificationproxy "tools/idevicenotificationproxy.c") add_tool(idevicepair "tools/idevicepair.c") add_tool(ideviceprovision "tools/ideviceprovision.c") add_tool(idevicescreenshot "tools/idevicescreenshot.c") add_tool(idevicesetlocation "tools/idevicesetlocation.c") add_tool(idevicesyslog "tools/idevicesyslog.c") install( TARGETS idevice_id idevicebackup idevicebackup2 idevicebtlogger idevicecrashreport idevicedate idevicedebug idevicedebugserverproxy idevicedevmodectl idevicediagnostics ideviceenterrecovery ideviceimagemounter ideviceinfo idevicename idevicenotificationproxy idevicepair ideviceprovision idevicescreenshot idevicesetlocation idevicesyslog RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/libimobiledevice/exports.def ================================================ EXPORTS ; src/mobilebackup2.c mobilebackup2_client_new mobilebackup2_client_start_service mobilebackup2_client_free mobilebackup2_send_message mobilebackup2_receive_message mobilebackup2_send_raw mobilebackup2_receive_raw mobilebackup2_version_exchange mobilebackup2_send_request mobilebackup2_send_status_response ; src/misagent.c misagent_client_new misagent_client_start_service misagent_client_free misagent_install misagent_copy misagent_copy_all misagent_remove misagent_get_status_code ; src/mobileactivation.c mobileactivation_client_new mobileactivation_client_start_service mobileactivation_client_free mobileactivation_get_activation_state mobileactivation_create_activation_session_info mobileactivation_create_activation_info mobileactivation_create_activation_info_with_session mobileactivation_activate mobileactivation_activate_with_session mobileactivation_deactivate ; src/heartbeat.c heartbeat_client_new heartbeat_client_start_service heartbeat_client_free heartbeat_send heartbeat_receive heartbeat_receive_with_timeout ; src/lockdown-cu.c lockdownd_cu_pairing_create lockdownd_cu_send_request_and_get_reply lockdownd_get_value_cu lockdownd_pair_cu ; src/preboard.c preboard_client_new preboard_client_start_service preboard_client_free preboard_send preboard_receive_with_timeout preboard_receive preboard_create_stashbag preboard_commit_stashbag ; src/screenshotr.c screenshotr_client_new screenshotr_client_start_service screenshotr_client_free screenshotr_take_screenshot ; src/property_list_service.c property_list_service_client_new property_list_service_client_free property_list_service_send_xml_plist property_list_service_send_binary_plist property_list_service_receive_plist_with_timeout property_list_service_receive_plist property_list_service_enable_ssl property_list_service_disable_ssl property_list_service_get_service_client ; src/file_relay.c file_relay_client_new file_relay_client_start_service file_relay_client_free file_relay_request_sources_timeout file_relay_request_sources ; src/reverse_proxy.c reverse_proxy_client_start_proxy reverse_proxy_client_create_with_service reverse_proxy_client_create_with_port reverse_proxy_client_free reverse_proxy_get_type reverse_proxy_client_set_status_callback reverse_proxy_client_set_log_callback reverse_proxy_client_set_data_callback ; src/service.c service_client_new service_client_factory_start_service service_client_free service_send service_receive_with_timeout service_receive service_enable_ssl service_disable_ssl service_disable_bypass_ssl service_get_connection ; src/installation_proxy.c instproxy_client_new instproxy_client_start_service instproxy_client_free instproxy_browse_with_callback instproxy_browse instproxy_lookup instproxy_install instproxy_upgrade instproxy_uninstall instproxy_lookup_archives instproxy_archive instproxy_restore instproxy_remove_archive instproxy_check_capabilities_match instproxy_status_get_error instproxy_status_get_name instproxy_status_get_percent_complete instproxy_status_get_current_list instproxy_command_get_name instproxy_client_options_new instproxy_client_options_add instproxy_client_options_set_return_attributes instproxy_client_options_free instproxy_client_get_path_for_bundle_identifier ; src/companion_proxy.c companion_proxy_client_new companion_proxy_client_start_service companion_proxy_client_free companion_proxy_send companion_proxy_receive companion_proxy_get_device_registry companion_proxy_start_listening_for_devices companion_proxy_stop_listening_for_devices companion_proxy_get_value_from_registry companion_proxy_start_forwarding_service_port companion_proxy_stop_forwarding_service_port ; src/restore.c restored_client_free restored_client_set_label restored_receive restored_send restored_query_type restored_query_value restored_get_value restored_client_new restored_goodbye restored_start_restore restored_reboot ; src/notification_proxy.c np_client_new np_client_start_service np_client_free np_post_notification np_observe_notification np_observe_notifications np_set_notify_callback ; src/house_arrest.c house_arrest_client_new house_arrest_client_start_service house_arrest_client_free house_arrest_send_request house_arrest_send_command house_arrest_get_result afc_client_new_from_house_arrest_client ; src/mobilesync.c mobilesync_client_new mobilesync_client_start_service mobilesync_client_free mobilesync_receive mobilesync_send mobilesync_start mobilesync_finish mobilesync_get_all_records_from_device mobilesync_get_changes_from_device mobilesync_receive_changes mobilesync_clear_all_records_on_device mobilesync_acknowledge_changes_from_device mobilesync_ready_to_send_changes_from_computer mobilesync_send_changes mobilesync_remap_identifiers mobilesync_cancel mobilesync_anchors_new mobilesync_anchors_free mobilesync_actions_new mobilesync_actions_add mobilesync_actions_free ; src/idevice.c idevice_events_subscribe idevice_events_unsubscribe idevice_event_subscribe idevice_event_unsubscribe idevice_get_device_list_extended idevice_device_list_extended_free idevice_get_device_list idevice_device_list_free idevice_set_debug_level idevice_new_with_options idevice_new idevice_free idevice_connect idevice_disconnect idevice_connection_send idevice_connection_receive_timeout idevice_connection_receive idevice_connection_get_fd idevice_get_handle idevice_get_udid idevice_connection_enable_ssl idevice_connection_disable_ssl idevice_connection_disable_bypass_ssl ; src/mobilebackup.c mobilebackup_client_new mobilebackup_client_start_service mobilebackup_client_free mobilebackup_receive mobilebackup_send mobilebackup_request_backup mobilebackup_send_backup_file_received mobilebackup_request_restore mobilebackup_receive_restore_file_received mobilebackup_receive_restore_application_received mobilebackup_send_restore_complete mobilebackup_send_error ; src/diagnostics_relay.c diagnostics_relay_client_new diagnostics_relay_client_start_service diagnostics_relay_client_free diagnostics_relay_goodbye diagnostics_relay_sleep diagnostics_relay_restart diagnostics_relay_shutdown diagnostics_relay_request_diagnostics diagnostics_relay_query_mobilegestalt diagnostics_relay_query_ioregistry_entry diagnostics_relay_query_ioregistry_plane ; src/webinspector.c webinspector_client_new webinspector_client_start_service webinspector_client_free webinspector_send webinspector_receive webinspector_receive_with_timeout ; src/afc.c afc_client_new_with_service_client afc_client_new afc_client_start_service afc_client_free afc_read_directory afc_get_device_info afc_get_device_info_key afc_remove_path afc_rename_path afc_make_directory afc_get_file_info afc_file_open afc_file_read afc_file_write afc_file_close afc_file_lock afc_file_seek afc_file_tell afc_file_truncate afc_truncate afc_make_link afc_set_file_time afc_remove_path_and_contents afc_dictionary_free ; src/debugserver.c debugserver_client_new debugserver_client_start_service debugserver_client_free debugserver_client_send debugserver_client_receive_with_timeout debugserver_client_receive debugserver_command_new debugserver_command_free debugserver_encode_string debugserver_decode_string debugserver_client_set_ack_mode debugserver_client_set_receive_params debugserver_client_receive_response debugserver_client_send_command debugserver_client_set_environment_hex_encoded debugserver_client_set_argv ; src/sbservices.c sbservices_client_new sbservices_client_start_service sbservices_client_free sbservices_get_icon_state sbservices_set_icon_state sbservices_get_icon_pngdata sbservices_get_interface_orientation sbservices_get_home_screen_wallpaper_pngdata ; src/bt_packet_logger.c bt_packet_logger_client_new bt_packet_logger_client_start_service bt_packet_logger_client_free bt_packet_logger_receive_with_timeout bt_packet_logger_start_capture bt_packet_logger_stop_capture ; src/mobile_image_mounter.c mobile_image_mounter_new mobile_image_mounter_start_service mobile_image_mounter_free mobile_image_mounter_lookup_image mobile_image_mounter_upload_image mobile_image_mounter_mount_image mobile_image_mounter_hangup ; src/lockdown.c lockdownd_stop_session lockdownd_client_free lockdownd_client_set_label lockdownd_receive lockdownd_send lockdownd_query_type lockdownd_get_value lockdownd_set_value lockdownd_remove_value lockdownd_get_device_udid lockdownd_get_device_name lockdownd_client_new lockdownd_client_new_with_handshake lockdownd_pair lockdownd_pair_with_options lockdownd_validate_pair lockdownd_unpair lockdownd_enter_recovery lockdownd_goodbye lockdownd_start_session lockdownd_start_service lockdownd_start_service_with_escrow_bag lockdownd_activate lockdownd_deactivate lockdownd_get_sync_data_classes lockdownd_data_classes_free lockdownd_service_descriptor_free lockdownd_strerror ; src/syslog_relay.c syslog_relay_client_new syslog_relay_client_start_service syslog_relay_client_free syslog_relay_receive syslog_relay_receive_with_timeout syslog_relay_start_capture syslog_relay_start_capture_raw syslog_relay_stop_capture ================================================ FILE: ports/libimobiledevice/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libimobiledevice REF 6fc41f57fc607df9b07446ca45bdf754225c9bd9 # commits on 2023-07-05 SHA512 0ceae43eb5c193c173536a20a6efde44b0ff4b5e6029342f59cb6b0dcad2fd629713db922f17b331b5f359a649b5402c18637e636bcdb5eb5c53bec12ff94903 HEAD_REF master PATCHES 001_fix_msvc.patch 002_fix_static_build.patch 003_fix_api.patch 004_fix_tools_msvc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES idevice_id idevicebackup idevicebackup2 idevicebtlogger idevicecrashreport idevicedate idevicedebug idevicedebugserverproxy idevicedevmodectl idevicediagnostics ideviceenterrecovery ideviceimagemounter ideviceinfo idevicename idevicenotificationproxy idevicepair ideviceprovision idevicescreenshot idevicesetlocation idevicesyslog AUTO_CLEAN ) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(unofficial-libplist CONFIG) find_dependency(unofficial-libimobiledevice-glue CONFIG) find_dependency(unofficial-libusbmuxd CONFIG) find_dependency(OpenSSL) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libimobiledevice/usage ================================================ libimobiledevice provides CMake targets: find_package(unofficial-libimobiledevice CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libimobiledevice::libimobiledevice) ================================================ FILE: ports/libimobiledevice/vcpkg.json ================================================ { "name": "libimobiledevice", "version-date": "2023-07-05", "port-version": 1, "description": "A cross-platform protocol library to communicate with iOS devices", "homepage": "http://www.libimobiledevice.org", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ "dirent", "libimobiledevice-glue", "libplist", "libusbmuxd", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/libimobiledevice-glue/001_fix_win32_defs.patch ================================================ diff --git a/include/libimobiledevice-glue/socket.h b/include/libimobiledevice-glue/socket.h index 53f58b8..f3cc6c6 100644 --- a/include/libimobiledevice-glue/socket.h +++ b/include/libimobiledevice-glue/socket.h @@ -32,7 +32,7 @@ enum fd_mode { }; typedef enum fd_mode fd_mode; -#ifdef WIN32 +#ifdef _WIN32 #include #define SHUT_RD SD_READ #define SHUT_WR SD_WRITE @@ -41,7 +41,7 @@ typedef enum fd_mode fd_mode; #include #endif -#ifndef WIN32 +#ifndef _WIN32 int socket_create_unix(const char *filename); int socket_connect_unix(const char *filename); #endif diff --git a/include/libimobiledevice-glue/thread.h b/include/libimobiledevice-glue/thread.h index 2aadc6e..b5c2ac1 100644 --- a/include/libimobiledevice-glue/thread.h +++ b/include/libimobiledevice-glue/thread.h @@ -24,7 +24,7 @@ #include -#ifdef WIN32 +#ifdef _WIN32 #include typedef HANDLE THREAD_T; typedef CRITICAL_SECTION mutex_t; @@ -61,7 +61,7 @@ int thread_alive(THREAD_T thread); int thread_cancel(THREAD_T thread); -#ifdef WIN32 +#ifdef _WIN32 #undef HAVE_THREAD_CLEANUP #else #ifdef HAVE_PTHREAD_CANCEL diff --git a/include/libimobiledevice-glue/utils.h b/include/libimobiledevice-glue/utils.h index 1a21871..2421270 100644 --- a/include/libimobiledevice-glue/utils.h +++ b/include/libimobiledevice-glue/utils.h @@ -29,7 +29,7 @@ #include #endif -#ifdef WIN32 +#ifdef _WIN32 #include #endif ================================================ FILE: ports/libimobiledevice-glue/002_fix_msvc.patch ================================================ diff --git a/src/socket.c b/src/socket.c index 4b8b857..4cf8a92 100644 --- a/src/socket.c +++ b/src/socket.c @@ -26,10 +26,12 @@ #include #include #include -#include #include -#include #include +#ifndef _MSC_VER +#include +#include +#endif #ifdef WIN32 #include #include diff --git a/src/termcolors.c b/src/termcolors.c index 5c436f2..9a84ff2 100644 --- a/src/termcolors.c +++ b/src/termcolors.c @@ -28,7 +28,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #include #include diff --git a/src/utils.c b/src/utils.c index ad8e9c4..b9803ac 100644 --- a/src/utils.c +++ b/src/utils.c @@ -30,7 +30,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #include ================================================ FILE: ports/libimobiledevice-glue/003_fix_static_build.patch ================================================ diff --git a/src/glue.c b/src/glue.c index 7970679..bad3269 100644 --- a/src/glue.c +++ b/src/glue.c @@ -29,6 +29,8 @@ #include "common.h" #include "libimobiledevice-glue/thread.h" +#ifndef LIBIMOBILEDEVICEGLUE_STATIC // disable dll constructor + extern void term_colors_init(); static void internal_glue_init(void) @@ -78,3 +80,5 @@ BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) #else #warning No compiler support for constructor/destructor attributes, some features might not be available. #endif + +#endif // disable dll constructor ================================================ FILE: ports/libimobiledevice-glue/004_fix_api.patch ================================================ diff --git a/src/common.h b/src/common.h index bd22e3d..144a799 100644 --- a/src/common.h +++ b/src/common.h @@ -25,14 +25,10 @@ #include #endif -#ifdef WIN32 -#define LIBIMOBILEDEVICE_GLUE_API __declspec( dllexport ) -#else -#ifdef HAVE_FVISIBILITY +#if !defined(_WIN32) && !defined(LIBIMOBILEDEVICEGLUE_STATIC) #define LIBIMOBILEDEVICE_GLUE_API __attribute__((visibility("default"))) #else #define LIBIMOBILEDEVICE_GLUE_API #endif -#endif #endif ================================================ FILE: ports/libimobiledevice-glue/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libimobiledevice-glue C CXX) include(GNUInstallDirs) file(GLOB_RECURSE LIBIMOBILEDEVICEGLUE_SOURCE src/*.c) set(DEFINITIONS) if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND LIBIMOBILEDEVICEGLUE_SOURCE exports.def) endif() else() list(APPEND DEFINITIONS -DLIBIMOBILEDEVICEGLUE_STATIC) endif() if(UNIX) list(APPEND DEFINITIONS -DHAVE_GETIFADDRS) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libplist CONFIG REQUIRED) add_library(libimobiledevice-glue ${LIBIMOBILEDEVICEGLUE_SOURCE}) target_include_directories(libimobiledevice-glue PRIVATE "$" PUBLIC "$" ) target_compile_definitions(libimobiledevice-glue PRIVATE ${DEFINITIONS}) target_link_libraries(libimobiledevice-glue PUBLIC unofficial::libplist::libplist ) set_target_properties(libimobiledevice-glue PROPERTIES OUTPUT_NAME imobiledevice-glue-1.0) if(WIN32) target_link_libraries(libimobiledevice-glue PRIVATE Ws2_32 Iphlpapi) endif() install(TARGETS libimobiledevice-glue EXPORT unofficial-libimobiledevice-glue) install( EXPORT unofficial-libimobiledevice-glue FILE unofficial-libimobiledevice-glue-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libimobiledevice-glue" NAMESPACE unofficial::libimobiledevice-glue:: ) install( DIRECTORY "${CMAKE_SOURCE_DIR}/include/libimobiledevice-glue" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(LIBPLIST_VERSION 2.0) set(PACKAGE_NAME libimobiledevice-glue) set(PACKAGE_VERSION 1.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/libimobiledevice-glue-1.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libimobiledevice-glue-1.0.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/libimobiledevice-glue-1.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) ================================================ FILE: ports/libimobiledevice-glue/exports.def ================================================ EXPORTS ; src/cbuf.c char_buf_new char_buf_free char_buf_append ; src/collention.c collection_init collection_free collection_add collection_remove collection_count collection_copy ; opack.c opack_encode_from_plist opack_decode_to_plist ; src/socket.c socket_set_verbose socket_addr_to_string ;socket_create_unix ;socket_connect_unix socket_create get_primary_mac_address socket_connect_addr socket_connect socket_check_fd socket_accept socket_shutdown socket_close socket_receive socket_peek socket_receive_timeout socket_send socket_get_socket_port ; src/termcolors.c term_colors_init term_colors_set_enabled cvfprintf cfprintf cprintf ; src/thread.c thread_new thread_detach thread_free thread_join thread_alive thread_cancel mutex_init mutex_destroy mutex_lock mutex_unlock thread_once cond_init cond_destroy cond_signal cond_wait cond_wait_timeout ; src/tlv.c tlv_buf_new tlv_buf_free tlv_buf_append tlv_get_data_ptr tlv_data_get_uint tlv_data_get_uint8 tlv_data_copy_data ; src/utils.c string_concat string_append string_build_path string_format_size string_toupper generate_uuid buffer_read_from_filename buffer_write_to_filename ================================================ FILE: ports/libimobiledevice-glue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libimobiledevice-glue REF 214bafdde6a1434ead87357afe6cb41b32318495 # commits on 2023-05-13 SHA512 a12ace7690ebab0ac6372f61e1a6722d506bc20a89130f39441af4da74e8fe9cdae45d947eb3e864a5f043b621432b59418f8e4660857e25b648a9476c552ac6 HEAD_REF master PATCHES 001_fix_win32_defs.patch 002_fix_msvc.patch 003_fix_static_build.patch 004_fix_api.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(unofficial-libplist CONFIG) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libimobiledevice-glue/usage ================================================ libimobiledevice-glue provides CMake targets: find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libimobiledevice-glue::libimobiledevice-glue) ================================================ FILE: ports/libimobiledevice-glue/vcpkg.json ================================================ { "name": "libimobiledevice-glue", "version-date": "2023-05-13", "description": "Library with common code used by the libraries and tools around the libimobiledevice project.", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.1-or-later", "dependencies": [ "libplist", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libinterpolate/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 45550a8..0ebd2c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(Boost REQUIRED) -find_package(Eigen3 3.3.7 REQUIRED) # v3.3.7 adds support for cmake targets +find_package(Eigen3 3.3.7...5 REQUIRED) # v3.3.7 adds support for cmake targets add_library(Interpolate INTERFACE) add_library(libInterpolate::Interpolate ALIAS Interpolate) ================================================ FILE: ports/libinterpolate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CD3/libInterpolate REF ${VERSION} SHA512 25abb4df8ea0648cd9cdd309f2491a9fc2cdbc5af3cc786fec39302680835bb1f29281628dd89323f353d377d9702d9b9f894c85c5cb0aa7cbae5590d05d3e27 HEAD_REF master PATCHES 0001-support-eigen3-5.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DlibInterpolate_VERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libInterpolate) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/libinterpolate/usage ================================================ libinterpolate provides CMake targets: find_package(libInterpolate CONFIG REQUIRED) target_link_libraries(main PRIVATE libInterpolate::Interpolate) ================================================ FILE: ports/libinterpolate/vcpkg.json ================================================ { "name": "libinterpolate", "version": "2.7.2", "port-version": 1, "description": "Header-only C++ interpolation library.", "homepage": "https://github.com/CD3/libInterpolate", "license": "MIT", "dependencies": [ "boost-geometry", "boost-headers", "boost-lexical-cast", "boost-mpl", "boost-program-options", "boost-range", "boost-tokenizer", "boost-type-erasure", "boost-type-traits", "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libirecovery/001_fix_static_build.patch ================================================ diff --git a/src/libirecovery.c b/src/libirecovery.c index 6e7647b..45ff6f2 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c @@ -470,6 +470,8 @@ static void _irecv_deinit(void) static thread_once_t init_once = THREAD_ONCE_INIT; static thread_once_t deinit_once = THREAD_ONCE_INIT; +#ifndef IRECV_STATIC // disable dll constructor + #ifndef HAVE_ATTRIBUTE_CONSTRUCTOR #if defined(__llvm__) || defined(__GNUC__) #define HAVE_ATTRIBUTE_CONSTRUCTOR @@ -505,6 +507,8 @@ BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved) #warning No compiler support for constructor/destructor attributes, some features might not be available. #endif +#endif // disable dll constructor + #ifdef HAVE_IOKIT static int iokit_get_string_descriptor_ascii(irecv_client_t client, uint8_t desc_index, unsigned char * buffer, int size) { ================================================ FILE: ports/libirecovery/002_fix_api.patch ================================================ diff --git a/include/libirecovery.h b/include/libirecovery.h index 33879a4..41fc8bb 100644 --- a/include/libirecovery.h +++ b/include/libirecovery.h @@ -30,17 +30,13 @@ extern "C" { #ifdef IRECV_STATIC #define IRECV_API #elif defined(_WIN32) - #ifdef DLL_EXPORT + #ifdef IRECV_EXPORT #define IRECV_API __declspec(dllexport) #else #define IRECV_API __declspec(dllimport) #endif #else - #if __GNUC__ >= 4 - #define IRECV_API __attribute__((visibility("default"))) - #else - #define IRECV_API - #endif + #define IRECV_API __attribute__((visibility("default"))) #endif enum irecv_mode { ================================================ FILE: ports/libirecovery/003_fix_msvc.patch ================================================ diff --git a/src/libirecovery.c b/src/libirecovery.c index 45ff6f2..d9ff1e6 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c @@ -29,7 +29,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include @@ -59,6 +61,10 @@ #include "libirecovery.h" +#ifdef _MSC_VER +#define strcasecmp _stricmp +#endif + struct irecv_client_private { int debug; int usb_config; ================================================ FILE: ports/libirecovery/004_fix_tools_msvc.patch ================================================ diff --git a/tools/irecovery.c b/tools/irecovery.c index 34e80bf..deffe89 100644 --- a/tools/irecovery.c +++ b/tools/irecovery.c @@ -27,7 +27,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #include #include #include ================================================ FILE: ports/libirecovery/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libirecovery C) option(BUILD_TOOLS "Build tools." OFF) include(GNUInstallDirs) file(GLOB_RECURSE LIBIRECOVERY_HEADER include/*.h) file(GLOB_RECURSE LIBIRECOVERY_SOURCE src/*.c) set(DEFINITIONS) if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND DEFINITIONS -DIRECV_EXPORT) endif() else() list(APPEND DEFINITIONS -DIRECV_STATIC) endif() if(APPLE) list(APPEND DEFINITIONS -DHAVE_IOKIT) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32_LEAN_AND_MEAN) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) add_library(libirecovery ${LIBIRECOVERY_SOURCE}) target_include_directories(libirecovery PUBLIC "$" "$" ) target_compile_definitions(libirecovery PRIVATE ${DEFINITIONS}) target_link_libraries(libirecovery PRIVATE unofficial::libimobiledevice-glue::libimobiledevice-glue ) if(NOT WIN32 AND NOT APPLE) find_package(PkgConfig REQUIRED) pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) target_link_libraries(libirecovery PRIVATE PkgConfig::libusb) endif() set_target_properties(libirecovery PROPERTIES OUTPUT_NAME irecovery-1.0) if(WIN32) target_link_libraries(libirecovery PRIVATE Setupapi) endif() if(APPLE) target_link_libraries(libirecovery PRIVATE "-framework IOKit" "-framework CoreFoundation") endif() install(TARGETS libirecovery EXPORT unofficial-libirecovery) install( EXPORT unofficial-libirecovery FILE unofficial-libirecovery-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libirecovery" NAMESPACE unofficial::libirecovery:: ) install( FILES ${LIBIRECOVERY_HEADER} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(LIMD_GLUE_VERSION 1.0) set(PACKAGE_NAME libirecovery) set(PACKAGE_VERSION 1.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/libirecovery-1.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libirecovery-1.0.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/libirecovery-1.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) if(BUILD_TOOLS) add_executable(irecovery "tools/irecovery.c") target_compile_definitions(irecovery PRIVATE -DPACKAGE_VERSION="1.1.0" -DPACKAGE_URL="https://github.com/libimobiledevice/libirecovery" -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/libirecovery/issues" ) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(irecovery PRIVATE -DIRECV_STATIC) endif() if(WIN32) target_compile_definitions(irecovery PRIVATE -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -DWIN32 ) find_package(unofficial-getopt-win32 REQUIRED) target_link_libraries(irecovery PRIVATE unofficial::getopt-win32::getopt Ws2_32) endif() if(APPLE) target_compile_definitions(irecovery PRIVATE -DHAVE_IOKIT) target_link_libraries(irecovery PRIVATE "-framework IOKit" "-framework CoreFoundation") endif() if(NOT WIN32 AND NOT APPLE) find_package(PkgConfig REQUIRED) pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) target_link_libraries(irecovery PRIVATE PkgConfig::libusb) endif() find_package(PkgConfig REQUIRED) pkg_check_modules(readline REQUIRED IMPORTED_TARGET readline) target_link_libraries(irecovery PRIVATE libirecovery PkgConfig::readline) install( TARGETS irecovery RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/libirecovery/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libirecovery REF c7b488fbf2a9ab95e451df1319e68662fff7b9b7 # commits on 2023-05-13 SHA512 a8638b71789c0cedf5913a877ca42fef079c968592b6149dfa578d2dc7840f63c1d1fadd934d7cfbd5139cea2b3a4249886a88b69c3edb19dbd3f893c266f665 HEAD_REF master PATCHES 001_fix_static_build.patch 002_fix_api.patch 003_fix_msvc.patch 004_fix_tools_msvc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) if("tools" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND FEATURE_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES irecovery AUTO_CLEAN) endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libirecovery.h" "#ifdef IRECV_STATIC" "#if 1" ) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libirecovery.h" "#ifdef IRECV_STATIC" "#if 0" ) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(unofficial-libimobiledevice-glue CONFIG) if(NOT WIN32 AND NOT APPLE) find_package(PkgConfig REQUIRED) pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) endif() ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libirecovery/usage ================================================ libirecovery provides CMake targets: find_package(unofficial-libirecovery CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libirecovery::libirecovery) ================================================ FILE: ports/libirecovery/vcpkg.json ================================================ { "name": "libirecovery", "version-date": "2023-05-13", "port-version": 2, "description": "Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ "libimobiledevice-glue", { "name": "libusb", "platform": "!windows & !osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox", "dependencies": [ "getopt", "readline" ] } } } ================================================ FILE: ports/libjpeg-turbo/add-options-for-docs-headers.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c9b4281..2b7b7e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -788,9 +788,6 @@ if(WITH_TURBOJPEG) target_link_libraries(tjbench m) endif() endif() - - add_custom_target(tjdoc COMMAND doxygen -s ../doc/doxygen.config - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src) endif() if(ENABLE_STATIC) @@ -2060,35 +2057,6 @@ if(WITH_TOOLS) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin) endif() -install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg - ${CMAKE_CURRENT_SOURCE_DIR}/README.md - ${CMAKE_CURRENT_SOURCE_DIR}/src/example.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/tjcomp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/tjdecomp.c - ${CMAKE_CURRENT_SOURCE_DIR}/src/tjtran.c - ${CMAKE_CURRENT_SOURCE_DIR}/doc/libjpeg.txt - ${CMAKE_CURRENT_SOURCE_DIR}/doc/structure.txt - ${CMAKE_CURRENT_SOURCE_DIR}/doc/usage.txt - ${CMAKE_CURRENT_SOURCE_DIR}/doc/wizard.txt - ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} - COMPONENT doc) -if(WITH_JAVA) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJComp.java - ${CMAKE_CURRENT_SOURCE_DIR}/java/TJDecomp.java - ${CMAKE_CURRENT_SOURCE_DIR}/java/TJTran.java - DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc) -endif() - -if(UNIX OR MINGW) - if(WITH_TOOLS) - install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/cjpeg.1 - ${CMAKE_CURRENT_SOURCE_DIR}/doc/djpeg.1 - ${CMAKE_CURRENT_SOURCE_DIR}/doc/jpegtran.1 - ${CMAKE_CURRENT_SOURCE_DIR}/doc/rdjpgcom.1 - ${CMAKE_CURRENT_SOURCE_DIR}/doc/wrjpgcom.1 - DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT man) - endif() -endif() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib) if(WITH_TURBOJPEG) ================================================ FILE: ports/libjpeg-turbo/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/mozjpeg/copyright") message(FATAL_ERROR "Can't build ${PORT} if mozjpeg is installed. Please remove mozjpeg:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/share/ijg-libjpeg/copyright") message(FATAL_ERROR "Can't build ${PORT} if ijg-libjpeg is installed. Please remove ijg-libjpeg:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libjpeg-turbo/libjpeg-turbo REF "${VERSION}" SHA512 d95bf0689fb2862ad5ea9e902b73724098d911d9c312aa69157bec9de77f32e4d5ac7dfa105d844110cc66dbdb0336056ba7f96781fcbc848b72fd0661604d50 HEAD_REF master PATCHES add-options-for-docs-headers.patch # workaround for vcpkg bug see #5697 on github for more information workaround_cmake_system_processor.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR (VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")) set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON -DNEON_INTRINSICS=ON) else() set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON) vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}") endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(ENV{_CL_} "-DNO_GETENV -DNO_PUTENV") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES jpeg7 WITH_JPEG7 jpeg8 WITH_JPEG8 tools WITH_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_SHARED=${ENABLE_SHARED} -DWITH_CRT_DLL=${WITH_CRT_DLL} ${FEATURE_OPTIONS} ${LIBJPEGTURBO_SIMD} MAYBE_UNUSED_VARIABLES WITH_CRT_DLL ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(WITH_TOOLS) vcpkg_copy_tools( TOOL_NAMES cjpeg djpeg jpegtran rdjpgcom wrjpgcom AUTO_CLEAN ) vcpkg_clean_executables_in_bin( FILE_NAMES tjbench ) endif() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libjpeg-turbo) # Rename libraries for static builds if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/jpeg.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/turbojpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/turbojpeg.lib") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg-static.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/turbojpeg-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/turbojpeg.lib") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") if (EXISTS "${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake" "jpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "jpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake" "turbojpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "turbojpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake" "jpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "jpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake" "turbojpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "turbojpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/share/man") 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_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/libjpeg-turbo/usage ================================================ libjpeg-turbo is compatible with built-in implementation-agnostic CMake targets: find_package(JPEG REQUIRED) target_link_libraries(main PRIVATE JPEG::JPEG) libjpeg-turbo provides CMake targets for the TurboJPEG C API: find_package(libjpeg-turbo CONFIG REQUIRED) target_link_libraries(main PRIVATE $,libjpeg-turbo::turbojpeg,libjpeg-turbo::turbojpeg-static>) ================================================ FILE: ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) find_path(JPEG_INCLUDE_DIR NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) find_library(JPEG_LIBRARY_RELEASE NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(JPEG_LIBRARY_DEBUG NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(CMAKE_VERSION VERSION_LESS 3.12 AND CMAKE_BUILD_TYPE STREQUAL "Debug") set(JPEG_LIBRARY "${JPEG_LIBRARY_DEBUG}" CACHE FILEPATH "") endif() _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() cmake_policy(POP) ================================================ FILE: ports/libjpeg-turbo/vcpkg.json ================================================ { "name": "libjpeg-turbo", "version": "3.1.3", "description": "libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.", "homepage": "https://github.com/libjpeg-turbo/libjpeg-turbo", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "jpeg7": { "description": "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward-incompatible with libjpeg v6b!)" }, "jpeg8": { "description": "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward-incompatible with libjpeg v6b!)" }, "tools": { "description": "Build executables" } } } ================================================ FILE: ports/libjpeg-turbo/workaround_cmake_system_processor.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 55ff716..abad9fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -105,7 +105,7 @@ include(cmakescripts/PackageInfo.cmake) # Detect CPU type and whether we're building 64-bit or 32-bit code math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8") -string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC) +string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LC) set(COUNT 1) foreach(ARCH ${CMAKE_OSX_ARCHITECTURES}) if(COUNT GREATER 1) ================================================ FILE: ports/libjuice/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5712462..dd6c669 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,11 +120,14 @@ if(WIN32) endif() if (USE_NETTLE) - find_package(Nettle REQUIRED) + find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" REQUIRED) + find_library(NETTLE_LIBRARY_PATH NAMES nettle libnettle NAMES_PER_DIR REQUIRED) + target_include_directories(juice PRIVATE ${NETTLE_INCLUDE_PATH}) + target_include_directories(juice-static PRIVATE ${NETTLE_INCLUDE_PATH}) target_compile_definitions(juice PRIVATE USE_NETTLE=1) - target_link_libraries(juice PRIVATE Nettle::Nettle) + target_link_libraries(juice PRIVATE ${NETTLE_LIBRARY_PATH}) target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) - target_link_libraries(juice-static PRIVATE Nettle::Nettle) + target_link_libraries(juice-static PRIVATE ${NETTLE_LIBRARY_PATH}) else() target_compile_definitions(juice PRIVATE USE_NETTLE=0) target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) @@ -137,8 +140,6 @@ endif() if(APPLE) # This seems to be necessary on MacOS - target_include_directories(juice PRIVATE /usr/local/include) - target_include_directories(juice-static PRIVATE /usr/local/include) endif() set_target_properties(juice PROPERTIES EXPORT_NAME LibJuice) diff --git a/cmake/LibJuiceConfig.cmake.in b/cmake/LibJuiceConfig.cmake.in index 247e53f..f049d9a 100644 --- a/cmake/LibJuiceConfig.cmake.in +++ b/cmake/LibJuiceConfig.cmake.in @@ -1,4 +1,8 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_dependency(Threads) + include("${CMAKE_CURRENT_LIST_DIR}/LibJuiceTargets.cmake") ================================================ FILE: ports/libjuice/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paullouisageneau/libjuice REF "v${VERSION}" SHA512 20800c54231188982f75bf823e1a450c6e501247fdb7348f4dc1dfaee6c6bf1394b681cd7e576156ddf2a1936668ebda10a1e74b9778f5bdd2a46c26173b68ac HEAD_REF master PATCHES dependencies.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES nettle USE_NETTLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNO_TESTS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LibJuice) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/juice/juice.h" "#ifndef JUICE_STATIC" "#if 0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libjuice/vcpkg.json ================================================ { "name": "libjuice", "version": "1.7.0", "description": "The library is a simplified implementation of the Interactive Connectivity Establishment (ICE) protocol in C for POSIX platforms (including Linux and Apple macOS) and Microsoft Windows.", "homepage": "https://github.com/paullouisageneau/libjuice", "license": "LGPL-2.1-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "nettle": { "description": "Use nettle for HMAC computation instead of the Builtin", "dependencies": [ "nettle" ] } } } ================================================ FILE: ports/libjxl/avoid-exe-linker-flags.patch ================================================ --- a/lib/jxl.cmake +++ b/lib/jxl.cmake @@ -224,9 +224,9 @@ set_target_properties(jxl_dec PROPERTIES # Check whether the linker support excluding libs set(LINKER_EXCLUDE_LIBS_FLAG "-Wl,--exclude-libs=ALL") include(CheckCSourceCompiles) -list(APPEND CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_EXCLUDE_LIBS_FLAG}) check_c_source_compiles("int main(){return 0;}" LINKER_SUPPORT_EXCLUDE_LIBS) -list(REMOVE_ITEM CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(REMOVE_ITEM CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_EXCLUDE_LIBS_FLAG}) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(jxl PUBLIC -DJXL_STATIC_DEFINE) diff --git a/lib/jxl_cms.cmake b/lib/jxl_cms.cmake index 62d5b651fd5fcf25b8853a813f8e1c3098c2e93f..e23823c66d2b0d9c99138e52c44c7d3d02630a01 100644 --- a/lib/jxl_cms.cmake +++ b/lib/jxl_cms.cmake @@ -46,9 +46,9 @@ set_target_properties(jxl_cms PROPERTIES # Check whether the linker support excluding libs set(LINKER_EXCLUDE_LIBS_FLAG "-Wl,--exclude-libs=ALL") include(CheckCSourceCompiles) -list(APPEND CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_EXCLUDE_LIBS_FLAG}) check_c_source_compiles("int main(){return 0;}" LINKER_SUPPORT_EXCLUDE_LIBS) -list(REMOVE_ITEM CMAKE_EXE_LINKER_FLAGS ${LINKER_EXCLUDE_LIBS_FLAG}) +list(REMOVE_ITEM CMAKE_REQUIRED_LINK_OPTIONS ${LINKER_EXCLUDE_LIBS_FLAG}) if(LINKER_SUPPORT_EXCLUDE_LIBS) set_property(TARGET jxl_cms APPEND_STRING PROPERTY ================================================ FILE: ports/libjxl/disambiguate-pow-calls.patch ================================================ --- a/lib/jxl/enc_ac_strategy.cc.orig Tue Nov 26 13:02:35 2024 +++ b/lib/jxl/enc_ac_strategy.cc Tue May 20 08:17:46 2025 @@ -486,7 +486,7 @@ } float loss_scalar = pow(GetLane(SumOfLanes(df8, loss)) / (num_blocks * kDCTBlockSize), - 1.0 / 8.0) * + 1.0f / 8.0f) * (num_blocks * kDCTBlockSize) / quant_norm16; entropy *= entropy_mul; entropy += config.info_loss_multiplier * loss_scalar; @@ -569,7 +569,7 @@ tx.type == AcStrategyType::IDENTITY) && butteraugli_target < 5.0) { static const float kFavor2X2AtHighQuality = 0.4; - float weight = pow((5.0f - butteraugli_target) / 5.0f, 2.0); + float weight = pow((5.0f - butteraugli_target) / 5.0f, 2.0f); entropy_mul -= kFavor2X2AtHighQuality * weight; } if ((tx.type != AcStrategyType::DCT && tx.type != AcStrategyType::DCT2X2 && ================================================ FILE: ports/libjxl/fix-dependencies.patch ================================================ diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index ea22103e..c6dbbe9f 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -31,8 +31,9 @@ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/highway/CMakeLists.txt" AND configure_file("${CMAKE_CURRENT_SOURCE_DIR}/highway/LICENSE" ${PROJECT_BINARY_DIR}/LICENSE.highway COPYONLY) else() - find_package(HWY 1.0.7) - if (NOT HWY_FOUND) + find_package(HWY NAMES hwy REQUIRED) + add_library(hwy ALIAS hwy::hwy) + if (NOT TARGET hwy::hwy) message(FATAL_ERROR "Highway library (hwy) not found. Install libhwy-dev or download it " "to third_party/highway from https://github.com/google/highway . " @@ -48,7 +49,11 @@ endif() # brotli if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include/brotli/decode.h" OR JPEGXL_FORCE_SYSTEM_BROTLI) - find_package(Brotli) + find_package(Brotli NAMES unofficial-brotli REQUIRED) + foreach(brlib IN ITEMS brotlienc brotlidec brotlicommon) + add_library(${brlib} ALIAS unofficial::brotli::${brlib}) + add_library(${brlib}-static ALIAS unofficial::brotli::${brlib}) + endforeach() if (NOT Brotli_FOUND) message(FATAL_ERROR "Brotli not found, install brotli-dev or download brotli source code to" @@ -106,7 +111,8 @@ if (JPEGXL_ENABLE_SKCMS) endif () if (JPEGXL_ENABLE_VIEWERS OR NOT JPEGXL_ENABLE_SKCMS OR JPEGXL_ENABLE_PLUGINS) if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lcms/.git" OR JPEGXL_FORCE_SYSTEM_LCMS2 ) - find_package(LCMS2 2.12) + find_package(LCMS2 NAMES lcms2 REQUIRED) + add_library(lcms2 ALIAS lcms2::lcms2) if ( NOT LCMS2_FOUND ) message(FATAL_ERROR "Please install lcms2 or run git submodule update --init") endif () ================================================ FILE: ports/libjxl/msvc-remove-libm.patch ================================================ diff --git a/lib/jxl.cmake b/lib/jxl.cmake index 404b976..119f49e 100644 --- a/lib/jxl.cmake +++ b/lib/jxl.cmake @@ -271,10 +271,14 @@ set(JPEGXL_LIBRARY_REQUIRES if (BUILD_SHARED_LIBS) set(JPEGXL_REQUIRES_TYPE "Requires.private") + if (NOT MSVC) set(JPEGXL_PRIVATE_LIBS "-lm ${PKGCONFIG_CXX_LIB}") + endif() else() set(JPEGXL_REQUIRES_TYPE "Requires") + if (NOT MSVC) set(JPEGXL_PUBLIC_LIBS "-lm ${PKGCONFIG_CXX_LIB}") + endif() endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/jxl/libjxl.pc.in" ================================================ FILE: ports/libjxl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libjxl/libjxl REF "v${VERSION}" SHA512 a7e1f7d060b358f4382e84367d66aa2850aef3b4524a0fdfe3f22dd258fb9e35dda7540f859d8bf4c32f31c61a7a03db677f4490a9f472cd25869a9d00797336 HEAD_REF main PATCHES fix-dependencies.patch avoid-exe-linker-flags.patch # https://github.com/libjxl/libjxl/pull/4229 msvc-remove-libm.patch disambiguate-pow-calls.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools JPEGXL_ENABLE_TOOLS INVERTED_FEATURES tools CMAKE_DISABLE_FIND_PACKAGE_GIF tools CMAKE_DISABLE_FIND_PACKAGE_JPEG tools CMAKE_DISABLE_FIND_PACKAGE_PNG tools CMAKE_DISABLE_FIND_PACKAGE_ZLIB ) if(VCPKG_TARGET_IS_UWP) string(APPEND VCPKG_C_FLAGS " /wd4146") string(APPEND VCPKG_CXX_FLAGS " /wd4146") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DJPEGXL_VERSION=${JPEGXL_VERSION}" -DJPEGXL_FORCE_SYSTEM_HWY=ON -DJPEGXL_FORCE_SYSTEM_BROTLI=ON -DJPEGXL_FORCE_SYSTEM_HWY=ON -DJPEGXL_FORCE_SYSTEM_LCMS2=ON ${FEATURE_OPTIONS} -DJPEGXL_ENABLE_BENCHMARK=OFF -DJPEGXL_ENABLE_DOXYGEN=OFF -DJPEGXL_ENABLE_EXAMPLES=OFF -DJPEGXL_ENABLE_FUZZERS=OFF -DJPEGXL_ENABLE_JNI=OFF -DJPEGXL_ENABLE_MANPAGES=OFF -DJPEGXL_ENABLE_OPENEXR=OFF -DJPEGXL_ENABLE_PLUGINS=OFF -DJPEGXL_ENABLE_SJPEG=OFF -DJPEGXL_ENABLE_SKCMS=OFF -DJPEGXL_ENABLE_TCMALLOC=OFF -DBUILD_TESTING=OFF -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON -DJPEGXL_BUNDLE_LIBPNG=OFF MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_GIF CMAKE_DISABLE_FIND_PACKAGE_JPEG CMAKE_DISABLE_FIND_PACKAGE_PNG CMAKE_DISABLE_FIND_PACKAGE_ZLIB ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(JPEGXL_ENABLE_TOOLS) vcpkg_copy_tools(TOOL_NAMES cjxl djxl jxlinfo AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/jxl/jxl_export.h" "ifdef JXL_STATIC_DEFINE" "if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libjxl/vcpkg.json ================================================ { "name": "libjxl", "version-semver": "0.11.2", "description": "JPEG XL image format reference implementation", "homepage": "https://github.com/libjxl/libjxl", "license": "BSD-3-Clause", "dependencies": [ "brotli", "highway", "lcms", { "name": "vcpkg-cmake", "host": true } ], "features": { "tools": { "description": "Build user tools: cjxl and djxl", "supports": "!uwp", "dependencies": [ "giflib", "libjpeg-turbo", "libpng", "zlib" ] } } } ================================================ FILE: ports/libkeyfinder/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mixxxdj/libkeyfinder REF ${VERSION} SHA512 31d86715172b62dd72b122a8d480db4598731b87ca58522ad797116acfcbc53b8ecf8fe7eb2b129857b5044b27d32dda9e03927e0a27f8edcdc5d6ce607a76eb HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME KeyFinder CONFIG_PATH lib/cmake/KeyFinder) vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libkeyfinder/vcpkg.json ================================================ { "name": "libkeyfinder", "version": "2.2.8", "description": "Musical key detection for digital audio", "homepage": "https://github.com/mixxxdj/libkeyfinder", "license": "GPL-3.0-or-later", "dependencies": [ "fftw3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libkml/add-target-include-directories.patch ================================================ diff --git a/cmake/LibKMLHelper.cmake b/cmake/LibKMLHelper.cmake index 5cc166a..3ed3079 100644 --- a/cmake/LibKMLHelper.cmake +++ b/cmake/LibKMLHelper.cmake @@ -1,6 +1,7 @@ macro(build_target) cmake_parse_arguments(LIB "" "NAME" "SRCS;INCS;LINKS;DEPENDS" ${ARGN} ) add_library(${LIB_NAME} ${LIB_SRCS}) + target_include_directories(${LIB_NAME} INTERFACE $) foreach(LIB_DEPEND ${LIB_DEPENDS}) add_dependencies(${LIB_NAME} ${LIB_DEPEND}) ================================================ FILE: ports/libkml/fix-cmake-min-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 028f50a..bb63ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,2 +1,2 @@ cmake_minimum_required(VERSION 2.8) -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.5) project(LibKML) ================================================ FILE: ports/libkml/fix-mingw.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 028f50a..bb63ffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,9 @@ set(LIBKML_DATA_DIR ${CMAKE_SOURCE_DIR}/testdata CACHE "Directory containing te if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter -pedantic -fno-rtti") set(TEST_FLAGS "-Wall -Wextra -Wno-unused-parameter -fno-rtti -DGTEST_HAS_RTTI=0") +if(WIN32) + add_definitions(-DUNICODE -D_UNICODE) +endif() else() if(MSVC) diff --git a/src/kml/base/file_win32.cc b/src/kml/base/file_win32.cc index 28ccb36..6ba79cd 100644 --- a/src/kml/base/file_win32.cc +++ b/src/kml/base/file_win32.cc @@ -34,7 +34,9 @@ #include "kml/base/file.h" #include #include +#ifndef __MINGW32__ #include +#endif #include namespace kmlbase { diff --git a/src/kml/base/string_util.cc b/src/kml/base/string_util.cc index b3a9654..842f1cd 100644 --- a/src/kml/base/string_util.cc +++ b/src/kml/base/string_util.cc @@ -113,7 +113,7 @@ bool StringEndsWith(const string& str, const string& end) { } bool StringCaseEqual(const string& a, const string& b) { -#ifdef WIN32 +#if defined(WIN32) && !defined(__MINGW32__) # define strncasecmp(s1, s2, n) _strnicmp (s1, s2, n) #endif return a.size() == b.size() && strncasecmp(a.data(), b.data(), a.size()) == 0; ================================================ FILE: ports/libkml/fix-minizip.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9728ead..028f50a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,9 +110,9 @@ else() list(APPEND MINIZIP_DEPENDS ZLIB) endif() -find_package(MiniZip) +find_package(MINIZIP NAMES unofficial-minizip REQUIRED) if(MINIZIP_FOUND) - include_directories(${MINIZIP_INCLUDE_DIR}) + set(MINIZIP_LIBRARY unofficial::minizip::minizip) else() include(External_minizip) list(APPEND KMLBASE_DEPENDS MINIZIP) diff --git a/cmake/LibKMLConfig.cmake.in b/cmake/LibKMLConfig.cmake.in index 3e295f4..97826df 100644 --- a/cmake/LibKMLConfig.cmake.in +++ b/cmake/LibKMLConfig.cmake.in @@ -1,3 +1,6 @@ +include(CMakeFindDependencyMacro) +find_dependency(unofficial-minizip CONFIG) + # Compute paths get_filename_component(LIBKML_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) diff --git a/src/kml/base/contrib/minizip/iomem_simple.c b/src/kml/base/contrib/minizip/iomem_simple.c index be89226..6be61d5 100644 --- a/src/kml/base/contrib/minizip/iomem_simple.c +++ b/src/kml/base/contrib/minizip/iomem_simple.c @@ -219,7 +219,7 @@ int ZCALLBACK mem_error (opaque, stream) return 0; } -ZEXTERN void* ZEXPORT mem_simple_create_file(zlib_filefunc_def* api, void* buffer, size_t buf_len) +extern void* mem_simple_create_file(zlib_filefunc_def* api, void* buffer, size_t buf_len) { MEMFILE* handle = malloc(sizeof(*handle)); api->zopen_file = NULL; diff --git a/src/kml/base/contrib/minizip/iomem_simple.h b/src/kml/base/contrib/minizip/iomem_simple.h index ec11396..515e24e 100644 --- a/src/kml/base/contrib/minizip/iomem_simple.h +++ b/src/kml/base/contrib/minizip/iomem_simple.h @@ -70,7 +70,7 @@ void fill_fopen_filefunc OF((zlib_filefunc_def* pzlib_filefunc_def)); * This declaration is from the proposed iomem_simple package found at * http://code.trak.dk. See iomem_simple.c */ -extern void* ZEXPORT mem_simple_create_file(zlib_filefunc_def* pzlib_filefunc_def, void* buffer, size_t buflen); +extern void* mem_simple_create_file(zlib_filefunc_def* pzlib_filefunc_def, void* buffer, size_t buflen); #ifdef __cplusplus } diff --git a/src/kml/base/contrib/minizip/unzip.c b/src/kml/base/contrib/minizip/unzip.c index a062863..fb69189 100644 --- a/src/kml/base/contrib/minizip/unzip.c +++ b/src/kml/base/contrib/minizip/unzip.c @@ -43,6 +43,14 @@ woven in by Terry Thorsen 1/2003. #include "unzip.h" #include "iomem_simple.h" #undef NOUNCRYPT +#ifdef ZEXPORT +# undef ZEXPORT +#endif +#define ZEXPORT +#ifdef ZEXTERN +# undef ZEXTERN +#endif +#define ZEXTERN extern #ifdef STDC # include ================================================ FILE: ports/libkml/patch_empty_literal_on_vc.patch ================================================ diff --git a/src/kml/base/file_win32.cc b/src/kml/base/file_win32.cc index c46e099..28ccb36 100644 --- a/src/kml/base/file_win32.cc +++ b/src/kml/base/file_win32.cc @@ -42,7 +42,7 @@ namespace kmlbase { // Internal to the win32 file class. We need a conversion from string to // LPCWSTR. static std::wstring Str2Wstr(const string& str) { - std::wstring wstr(str.length(), L''); + std::wstring wstr(str.length(), L' '); std::copy(str.begin(), str.end(), wstr.begin()); return wstr; } ================================================ FILE: ports/libkml/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libkml/libkml REF "${VERSION}" SHA512 aa48158103d3af764bf98c1fb4cf3e1356b9cc6c8e79d80b96850916f0a8ccb1dac3a46427735dd0bf20647daa047d10e722ac3da2a214d4c1559bf6d5d7c853 HEAD_REF master PATCHES fix-cmake-min-version.patch patch_empty_literal_on_vc.patch fix-mingw.patch fix-minizip.patch add-target-include-directories.patch ) file(REMOVE "${SOURCE_PATH}/cmake/External_boost.cmake" "${SOURCE_PATH}/cmake/External_expat.cmake" "${SOURCE_PATH}/cmake/External_minizip.cmake" "${SOURCE_PATH}/cmake/External_uriparser.cmake" "${SOURCE_PATH}/cmake/External_zlib.cmake" "${SOURCE_PATH}/src/kml/base/contrib/minizip/ioapi.h" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0022=NEW # libkml uses std::unary_function that was deprecated in C++11 and removed in C++17 # compilers are starting to ship C++17 as the defualt so explicitly set C++11 -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libkml) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libkml/vcpkg.json ================================================ { "name": "libkml", "version": "1.3.0", "port-version": 14, "description": "Reference implementation of OGC KML 2.2", "homepage": "https://github.com/libkml/libkml", "license": "BSD-3-Clause", "dependencies": [ "boost-smart-ptr", "expat", "minizip", "uriparser", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/liblas/fix-boost-headers.patch ================================================ diff --git a/include/liblas/detail/binary.hpp b/include/liblas/detail/binary.hpp index d3116a1..ab20e06 100644 --- a/include/liblas/detail/binary.hpp +++ b/include/liblas/detail/binary.hpp @@ -17,6 +17,8 @@ #ifndef LIBLAS_DETAIL_BINARY_HPP_INCLUDED #define LIBLAS_DETAIL_BINARY_HPP_INCLUDED +#include + #include #include #include @@ -25,7 +27,6 @@ #include #include -#include #include #if CHAR_BIT != 8 @@ -43,7 +44,7 @@ namespace detail { namespace binary { struct big_endian_tag {}; struct little_endian_tag {}; -#ifdef BOOST_BIG_ENDIAN +#ifdef LIBLAS_BIG_ENDIAN typedef big_endian_tag native_endian_tag; #else typedef little_endian_tag native_endian_tag; diff --git a/src/c_api.cpp b/src/c_api.cpp index a70fe74..e8be785 100644 --- a/src/c_api.cpp +++ b/src/c_api.cpp @@ -96,6 +96,7 @@ using namespace liblas; #endif #include +#include bool IsReprojectionTransform(liblas::TransformPtr const& p) { diff --git a/src/header.cpp b/src/header.cpp index 9987ce1..a5c8f7d 100644 --- a/src/header.cpp +++ b/src/header.cpp @@ -54,7 +54,7 @@ // boost #include #include - +#include //std #include #include ================================================ FILE: ports/liblas/fix-cmake-config.patch ================================================ diff --git a/cmake/liblas-config.cmake.in b/cmake/liblas-config.cmake.in index 175e997..8a55804 100644 --- a/cmake/liblas-config.cmake.in +++ b/cmake/liblas-config.cmake.in @@ -19,6 +19,8 @@ set (libLAS_INCLUDE_DIRS "${PROJECT_ROOT_DIR}/include") set (libLAS_LIBRARY_DIRS "${PROJECT_ROOT_DIR}/lib") set (libLAS_BINARY_DIRS "${PROJECT_ROOT_DIR}/bin") +include(CMakeFindDependencyMacro) +find_dependency(GeoTIFF CONFIG) -include ("${_DIR}/liblas-depends.cmake") +include ("${CMAKE_CURRENT_LIST_DIR}/liblas-depends.cmake") if(WIN32) set (libLAS_LIBRARIES liblas liblas_c) ================================================ FILE: ports/liblas/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5af9ac21a5..5cc6f88939 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,9 +75,6 @@ mark_as_advanced(CMAKE_VERBOSE_MAKEFILE) # Path to additional CMake modules set(CMAKE_MODULE_PATH "${libLAS_SOURCE_DIR}/cmake/modules" ${CMAKE_MODULE_PATH}) -if (CMAKE_MAJOR_VERSION GREATER 2) - cmake_policy(SET CMP0042 OLD) -endif() if (CMAKE_SYSTEM_NAME MATCHES "Linux") set(CMAKE_SKIP_RPATH ON) ================================================ FILE: ports/liblas/fix-crosscompiling.diff ================================================ diff --git a/cmake/liblas-config-version.cmake.in b/cmake/liblas-config-version.cmake.in index f9b7c7cb..5dd2aba1 100644 --- a/cmake/liblas-config-version.cmake.in +++ b/cmake/liblas-config-version.cmake.in @@ -22,7 +22,7 @@ elseif (MSVC AND NOT MSVC_VERSION STREQUAL "@MSVC_VERSION@") # Reject if there's a mismatch in MSVC compiler versions set (REASON "_MSC_VER = @MSVC_VERSION@") set (PACKAGE_VERSION_UNSUITABLE TRUE) -elseif (NOT CMAKE_CROSSCOMPILING STREQUAL "@CMAKE_CROSSCOMPILING@") +elseif (0) # Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING} set (REASON "cross-compiling = @CMAKE_CROSSCOMPILING@") set (PACKAGE_VERSION_UNSUITABLE TRUE) ================================================ FILE: ports/liblas/force-cpp11.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9732bcb..5af9ac2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,8 @@ set(WITH_ENDIANAWARE FALSE CACHE BOOL "Choose whether or not libLAS should do ru ############################################################################### # CMake settings +set(CMAKE_CXX_STANDARD 11) # Boost v1.84.0 libraries require C++11 + set(CMAKE_COLOR_MAKEFILE ON) # Allow advanced users to generate Makefiles printing detailed commands @@ -149,12 +151,7 @@ else() " -Wextra -Wall -Wno-unused-parameter -Wno-unused-variable -Wpointer-arith -Wcast-align -Wcast-qual -Wfloat-equal -Wredundant-decls -Wno-long-long") if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBLAS_COMMON_CXX_FLAGS}") - if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -ansi") - endif() - elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR "${CMAKE_CXX_COMPILER}" MATCHES "clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBLAS_COMMON_CXX_FLAGS}") endif() ================================================ FILE: ports/liblas/misc-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d246a88..3da2106 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ # ############################################################################### # libLAS general settings +cmake_minimum_required(VERSION 3.7.0) project(libLAS) @@ -64,7 +65,6 @@ set(WITH_ENDIANAWARE FALSE CACHE BOOL "Choose whether or not libLAS should do ru ############################################################################### # CMake settings -cmake_minimum_required(VERSION 2.6.0) set(CMAKE_COLOR_MAKEFILE ON) @@ -107,7 +107,6 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBLAS_BUILD_OUTPUT_DIRECTORY}) file(READ "doc/index.txt" README ) -file(WRITE "README.txt" "${README}") ############################################################################### # Platform and compiler specific settings @@ -138,8 +137,6 @@ if(WIN32) endif() - set(CMAKE_INCLUDE_PATH c:/osgeo4w64/include;$ENV{CMAKE_INCLUDE_PATH}) - set(CMAKE_LIBRARY_PATH c:/osgeo4w64/lib;$ENV{CMAKE_LIBRARY_PATH}) else() # Recommended C++ compilation flags @@ -337,8 +334,6 @@ set(LIBLAS_DATA_DIR ${LIBLAS_DATA_SUBDIR}) ############################################################################### # Installation commands -install(FILES AUTHORS COPYING INSTALL LICENSE.txt README.txt - DESTINATION ${LIBLAS_DATA_DIR}/doc) ############################################################################### # Processing of project directories diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index beb83e2..e328c95 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -160,7 +160,7 @@ install(TARGETS ${LIBLAS_UTILITIES} ARCHIVE DESTINATION ${LIBLAS_LIB_DIR}) -if(UNIX) +if(0) set(LIBLAS_UTILS_RPATH ${CMAKE_INSTALL_PREFIX}/lib ${Boost_LIBRARY_DIRS}) if(LASZIP_FOUND) ================================================ FILE: ports/liblas/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) set(VERSION 1.8.1) vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/liblas/libLAS-${VERSION}.tar.bz2" FILENAME "libLAS-${VERSION}-src.tar.bz2" SHA512 1cb39c557af0006c54f1100d0d409977fcc1886abd155c1b144d806c47f8675a9f2125d3a9aca16bae65d2aabba84d5e5e322b42085e7db312f3d53f92342acf HEAD_REF master ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-boost-headers.patch fix-cmake-config.patch fix-crosscompiling.diff misc-fixes.patch remove_unnecessary_boost_dependency.diff force-cpp11.patch fix-cmake4.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/modules") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools WITH_UTILITIES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_OSGEO4W=OFF -DWITH_TESTS=OFF OPTIONS_DEBUG -DWITH_UTILITIES=OFF ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/libLAS) endif() vcpkg_replace_string ("${CURRENT_PACKAGES_DIR}/share/liblas/liblas-config.cmake" "_DIR}/.." "_DIR}/../..") vcpkg_replace_string ("${CURRENT_PACKAGES_DIR}/share/liblas/liblas-config.cmake" "\${PROJECT_ROOT_DIR}/lib" "\${PROJECT_ROOT_DIR}/$<$:/debug>/lib") vcpkg_replace_string ("${CURRENT_PACKAGES_DIR}/share/liblas/liblas-config.cmake" "\${PROJECT_ROOT_DIR}/bin" "\${PROJECT_ROOT_DIR}/tools/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(WITH_UTILITIES) set(tools lasinfo lasblock las2las las2txt txt2las ts2las) if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND tools las2col las2pg) endif() vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/liblas/remove_unnecessary_boost_dependency.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d246a88d..634157c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,11 +190,13 @@ if(WIN32) endif(WIN32) find_package(Threads) -find_package(Boost 1.42 COMPONENTS program_options thread system iostreams filesystem REQUIRED) +find_package(Boost 1.42 COMPONENTS iostreams program_options serialization thread REQUIRED) + +# The following header-only and their dependencies are additionally required, +# but cannot be explicitly requested via find_package, so make sure they exists: +# - foreach interprocess lambda property_tree uuid -if(Boost_FOUND AND Boost_PROGRAM_OPTIONS_FOUND) - include_directories(${Boost_INCLUDE_DIRS}) -endif() +include_directories(${Boost_INCLUDE_DIRS}) # make these available for the user to set. mark_as_advanced(CLEAR Boost_INCLUDE_DIR) ================================================ FILE: ports/liblas/usage ================================================ liblas provides CMake targets: # C API find_package(libLAS CONFIG REQUIRED) target_link_libraries(main PRIVATE $<$:lib>las_c) target_include_directories(main SYSTEM PRIVATE ${libLAS_INCLUDE_DIRS}) # C++ API find_package(libLAS CONFIG REQUIRED) target_link_libraries(main PRIVATE $<$:lib>las) target_include_directories(main SYSTEM PRIVATE ${libLAS_INCLUDE_DIRS}) ================================================ FILE: ports/liblas/vcpkg.json ================================================ { "name": "liblas", "version": "1.8.1", "port-version": 16, "description": "A C/C++ library for reading and writing the very common LAS LiDAR format.", "license": null, "supports": "!arm & !staticcrt", "dependencies": [ "boost-foreach", "boost-interprocess", "boost-iostreams", "boost-lambda", "boost-program-options", "boost-property-tree", "boost-uuid", "libgeotiff", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "jpeg": { "description": "This feature does nothing. It is retained for compatibility." }, "tools": { "description": "Build utilities." }, "zlib": { "description": "This feature does nothing. It is retained for compatibility." } } } ================================================ FILE: ports/liblbfgs/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) PROJECT(liblbfgs) file(GLOB SOURCE_FILE "lib/*.c" ) file(GLOB HEADERS_FILE "include/*.h" "lib/*.h" ) include_directories("include") add_library (lbfgs STATIC ${SOURCE_FILE} ${HEADERS_FILE}) install(TARGETS lbfgs RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(FILES ${HEADERS_FILE} DESTINATION include) ================================================ FILE: ports/liblbfgs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chokkan/liblbfgs REF v1.10 SHA512 2b08dc5d4fdd737575f58983fa7b6c143bc12edaca47b7aeadf221afe6e573fa4a53423f323f569aa93c9dbeafb9b80a6d2f755fec6da04e6b7221f0a67816f8 HEAD_REF master ) message(STATUS "source path is : ${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/liblbfgs" RENAME copyright) ================================================ FILE: ports/liblbfgs/vcpkg.json ================================================ { "name": "liblbfgs", "version": "1.10", "port-version": 2, "description": "libLBFGS: a library of Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)", "homepage": "http://www.chokkan.org/software/liblbfgs/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libleidenalg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vtraag/libleidenalg REF "${VERSION}" SHA512 f9e7b6157b2a871c4e9979245b91992b8edcd8bf2c98b5138bfa5786e227b41a9606ac18b4e4b2148e357bfabdf7b48cdf9a597e957c5fd391f2eb2f5e19f530 HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libleidenalg/vcpkg.json ================================================ { "name": "libleidenalg", "version": "0.12.0", "maintainers": "Andrew Robbins ", "description": "Leiden is a general algorithm for methods of community detection in large networks.", "homepage": "https://github.com/vtraag/libleidenalg", "license": "GPL-3.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "igraph", "version>=": "1.0.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblemon/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4406bc2..5717680 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -295,7 +295,7 @@ CONFIGURE_FILE( ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake @ONLY ) -IF(UNIX) +IF(UNIX OR TRUE) INSTALL( FILES ${PROJECT_BINARY_DIR}/cmake/LEMONConfig.cmake DESTINATION share/lemon/cmake @@ -307,6 +307,13 @@ ELSEIF(WIN32) ) ENDIF() +install( + EXPORT lemon-targets + FILE lemon-targets.cmake + NAMESPACE unofficial::lemon:: + DESTINATION share/lemon/cmake +) + CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/cmake/version.cmake.in ${PROJECT_BINARY_DIR}/cmake/version.cmake diff --git a/cmake/LEMONConfig.cmake.in b/cmake/LEMONConfig.cmake.in index b0d2d8b..6bb662a 100644 --- a/cmake/LEMONConfig.cmake.in +++ b/cmake/LEMONConfig.cmake.in @@ -1,4 +1,4 @@ -SET(LEMON_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/include" CACHE PATH "LEMON include directory") +SET(LEMON_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../include" CACHE PATH "LEMON include directory") SET(LEMON_INCLUDE_DIRS "${LEMON_INCLUDE_DIR}") IF(UNIX) @@ -7,7 +7,12 @@ ELSEIF(WIN32) SET(LEMON_LIB_NAME "lemon.lib") ENDIF(UNIX) -SET(LEMON_LIBRARY "@CMAKE_INSTALL_PREFIX@/lib/${LEMON_LIB_NAME}" CACHE FILEPATH "LEMON library") +SET(LEMON_LIBRARY + optimized "${CMAKE_CURRENT_LIST_DIR}/../../lib/${LEMON_LIB_NAME}" + debug "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/${LEMON_LIB_NAME}" + CACHE FILEPATH "LEMON library") SET(LEMON_LIBRARIES "${LEMON_LIBRARY}") MARK_AS_ADVANCED(LEMON_LIBRARY LEMON_INCLUDE_DIR) + +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/lemon-targets.cmake) diff --git a/lemon/CMakeLists.txt b/lemon/CMakeLists.txt index 4e6567e..ad6f5bf 100644 --- a/lemon/CMakeLists.txt +++ b/lemon/CMakeLists.txt @@ -56,6 +56,10 @@ ENDIF() ADD_LIBRARY(lemon ${LEMON_SOURCES}) +INCLUDE(GNUInstallDirs) + +TARGET_INCLUDE_DIRECTORIES(lemon PUBLIC $) + TARGET_LINK_LIBRARIES(lemon ${GLPK_LIBRARIES} ${COIN_LIBRARIES} ${ILOG_LIBRARIES} ${SOPLEX_LIBRARIES} ) @@ -71,6 +75,11 @@ INSTALL( COMPONENT library ) +install(TARGETS lemon EXPORT lemon-targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + INSTALL( DIRECTORY . bits concepts DESTINATION include/lemon ================================================ FILE: ports/liblemon/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5717680e51..4a3992dafa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) -IF(POLICY CMP0048) - CMAKE_POLICY(SET CMP0048 OLD) -ENDIF(POLICY CMP0048) - -IF(POLICY CMP0026) - #This is for copying the dll's needed by glpk (in lp_test and mip_test) - CMAKE_POLICY(SET CMP0026 OLD) -ENDIF(POLICY CMP0026) - SET(PROJECT_NAME "LEMON") PROJECT(${PROJECT_NAME}) ================================================ FILE: ports/liblemon/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(VERSION ed2c21cbd6ef) vcpkg_download_distfile(ARCHIVE URLS "http://lemon.cs.elte.hu/hg/lemon/archive/${VERSION}.zip" FILENAME "lemon-${VERSION}.zip" SHA512 029640e4f791a18068cb2e2b4e794d09822d9d56fb957eb3e2cceae3a30065c0041a31c465637cfcadf7b2473564070b34adc88513439cdf9046831854e2aa70 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES fix-cmake.patch fix-cmake4.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=14 -DLEMON_ENABLE_GLPK=OFF -DLEMON_ENABLE_ILOG=OFF -DLEMON_ENABLE_COIN=OFF -DLEMON_ENABLE_SOPLEX=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/lemon/cmake PACKAGE_NAME lemon) vcpkg_fixup_pkgconfig() file(GLOB EXE "${CURRENT_PACKAGES_DIR}/bin/*.exe") file(COPY ${EXE} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/liblemon/") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/liblemon") 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/liblemon/vcpkg.json ================================================ { "name": "liblemon", "version-date": "2019-06-13", "port-version": 10, "description": "Library for Efficient Modeling and Optimization in Networks", "homepage": "https://lemon.cs.elte.hu/trac/lemon", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblinear/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(liblinear) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_library(blas OBJECT blas/daxpy.c blas/ddot.c blas/dnrm2.c blas/dscal.c ) add_library(liblinear linear.cpp newton.cpp $ ) target_include_directories(liblinear PRIVATE .) if(BUILD_SHARED_LIBS) target_link_libraries(liblinear PRIVATE "-DEF:${CMAKE_CURRENT_SOURCE_DIR}/linear.def") endif() add_executable(train train.c $) target_link_libraries(train liblinear) add_executable(predict predict.c $) target_link_libraries(predict liblinear) install( TARGETS liblinear RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) install( TARGETS train predict RUNTIME DESTINATION tools/liblinear ) endif() if(NOT DISABLE_INSTALL_HEADERS) install( FILES linear.h newton.h DESTINATION include/liblinear) endif() ================================================ FILE: ports/liblinear/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cjlin1/liblinear REF v${VERSION} SHA512 fd49baf145c047b31ecbded7c02cbb3501d5c3854c53b435dadd1240e4803759215826b43fa62d36001de9f62a261c42e38b2b5647074c574eedb1eb96112b37 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT DISABLE_INSTALL_TOOLS) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/liblinear") endif() file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/README" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/liblinear/vcpkg.json ================================================ { "name": "liblinear", "version": "249", "description": "A Library for Large Linear Classification", "homepage": "https://github.com/cjlin1/liblinear", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO radarsat1/liblo REF "${VERSION}" SHA512 3757675f908f6bb7be3414c2708c4958fd1dd92f55d22f394902b51a27230524ff9dd6500f85229a53d1383b71e3bc09c74c011c1b6b988ebd777283c58b7227 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cmake" OPTIONS -DTHREADING=ON -DWITH_STATIC=ON -DWITH_TESTS=OFF ) vcpkg_cmake_install() # Install needed files into package directory vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblo) vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES oscsend oscdump oscsendfile AUTO_CLEAN) # Remove unnecessary files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/liblo/vcpkg.json ================================================ { "name": "liblo", "version": "0.34", "description": "liblo is an implementation of the Open Sound Control protocol for POSIX systems", "homepage": "https://github.com/radarsat1/liblo", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblrc/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b2175e..2aa699b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,7 @@ cmake_minimum_required(VERSION 3.2.0) project(LRCTools VERSION 1.0.0) -set(CMAKE_CXX_FLAGS - "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -Wno-missing-braces") +set(CMAKE_CXX_STANDARD 11) include_directories(${CMAKE_CURRENT_LIST_DIR}) @@ -12,7 +11,22 @@ include(CPack) enable_testing() -add_subdirectory(third_party) add_subdirectory(liblrc) -add_subdirectory(cli) -add_subdirectory(test) +# headers +install(FILES ${PROJECT_SOURCE_DIR}/liblrc/lrc_parser.h + ${PROJECT_SOURCE_DIR}/liblrc/lyrics.h + ${PROJECT_SOURCE_DIR}/liblrc/utils.h + DESTINATION include/liblrc +) +# library with unofficial config +install(TARGETS lrc + EXPORT unofficial-liblrcConfig + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +# share/liblrc will be fixed in portfile.cmake +install(EXPORT unofficial-liblrcConfig + NAMESPACE unofficial::liblrc:: + DESTINATION share/unofficial-liblrc +) ================================================ FILE: ports/liblrc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ywh233/LRC-Tools REF 1fc3872320cd449933bffefc6527928262ee0629 SHA512 5b0a52a557ffb28554b33e77efb3832944facfd4e039d8afe60c322d56872eb12cb93f3974d17f083c659dcddf9c63075d3b09ba6abd3adba7b40b2ffb615f1c PATCHES set_up_compile_error.patch fix-cmake.patch ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-liblrc) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/liblrc/set_up_compile_error.patch ================================================ diff --git a/liblrc/lyrics.cc b/liblrc/lyrics.cc index b1a8c87..4fa16fa 100644 --- a/liblrc/lyrics.cc +++ b/liblrc/lyrics.cc @@ -5,7 +5,7 @@ //****************************************** #include "lyrics.h" - +#include #include #include ================================================ FILE: ports/liblrc/vcpkg.json ================================================ { "name": "liblrc", "version": "1.0.0", "description": "Tools for parsing and playing back LRC lyrics.", "homepage": "https://github.com/ywh233/LRC-Tools", "license": "MIT", "supports": "!osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblsl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sccn/liblsl REF v${VERSION} SHA512 5b540c9b7c0b6fb5827dbb8afdc85267d8e36e3b807704af11ed89865754f1d786f28414adf1c3c7df15956143a0bfc82c449c5ff8656d18f1a6e03c4c1e89ce HEAD_REF master PATCHES use-find-package-asio.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LSL_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLSL_BUILD_STATIC=${LSL_BUILD_STATIC} -DLSL_BUNDLED_BOOST=OFF # we use the boost vcpkg packages instead -DLSL_BUNDLED_PUGIXML=OFF # we use the pugixml vcpkg package instead -DLSL_FRAMEWORK=OFF -Dlslgitrevision=v${VERSION} -Dlslgitbranch=master ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES lslver AUTO_CLEAN) vcpkg_cmake_config_fixup(PACKAGE_NAME LSL CONFIG_PATH lib/cmake/lsl) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/liblsl/use-find-package-asio.patch ================================================ diff --git a/cmake/TargetObjLib.cmake b/cmake/TargetObjLib.cmake index d974224..5e7795e 100644 --- a/cmake/TargetObjLib.cmake +++ b/cmake/TargetObjLib.cmake @@ -65,8 +65,9 @@ target_include_directories(lslobj # Note: We use `PUBLIC` because 'internal tests' import individual source files and link lslobj. SYSTEM PUBLIC $ - $ ) +find_package(asio CONFIG REQUIRED) +target_link_libraries(lslobj PUBLIC asio::asio) if(NOT LSL_OPTIMIZATIONS) # build one object file for Asio instead of once every time an Asio function is called. See # https://think-async.com/Asio/asio-1.18.2/doc/asio/using.html#asio.using.optional_separate_compilation ================================================ FILE: ports/liblsl/vcpkg.json ================================================ { "name": "liblsl", "version": "1.17.5", "description": "C++ lsl library for multi-modal time-synched data transmission over the local network", "homepage": "https://github.com/sccn/liblsl", "license": "MIT", "supports": "!uwp", "dependencies": [ "asio", "boost-atomic", "boost-bind", "boost-chrono", "boost-config", "boost-endian", "boost-functional", "boost-integer", "boost-lexical-cast", "boost-math", "boost-serialization", "boost-smart-ptr", "boost-thread", "boost-uuid", "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblsquic/disable-asan.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 65c4776..5d4086a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,12 +60,12 @@ ENDIF() IF(CMAKE_BUILD_TYPE STREQUAL "Debug") SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -O0 -g3") - IF(CMAKE_C_COMPILER MATCHES "clang" AND - NOT "$ENV{TRAVIS}" MATCHES "^true$" AND - NOT "$ENV{EXTRA_CFLAGS}" MATCHES "-fsanitize") - SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -fsanitize=address") - SET(LIBS ${LIBS} -fsanitize=address) - ENDIF() + # IF(CMAKE_C_COMPILER MATCHES "clang" AND + # NOT "$ENV{TRAVIS}" MATCHES "^true$" AND + # NOT "$ENV{EXTRA_CFLAGS}" MATCHES "-fsanitize") + # SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -fsanitize=address") + # SET(LIBS ${LIBS} -fsanitize=address) + # ENDIF() # Uncomment to enable cleartext protocol mode (no crypto): #SET (MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -DLSQUIC_ENABLE_HANDSHAKE_DISABLE=1") ELSE() ================================================ FILE: ports/liblsquic/fix-found-boringssl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d4086a..e085a83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,10 +120,12 @@ IF(CMAKE_BUILD_TYPE STREQUAL "Debug") SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -Od") #SET (MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -DFIU_ENABLE=1") #SET(LIBS ${LIBS} fiu) + SET(LIB_NAME ssld cryptod) ELSE() SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -Ox") # Comment out the following line to compile out debug messages: #SET(MY_CMAKE_FLAGS "${MY_CMAKE_FLAGS} -DLSQUIC_LOWEST_LOG_LEVEL=LSQ_LOG_INFO") + SET(LIB_NAME ssl crypto) ENDIF() ENDIF() #MSVC @@ -191,7 +193,7 @@ IF (NOT DEFINED BORINGSSL_LIB AND DEFINED BORINGSSL_DIR) ELSE() - FOREACH(LIB_NAME ssl crypto) + FOREACH(LIB ${LIB_NAME}) # If BORINGSSL_LIB is defined, try find each lib. Otherwise, user should define BORINGSSL_LIB_ssl, # BORINGSSL_LIB_crypto and so on explicitly. For example, including boringssl and lsquic both via # add_subdirectory: @@ -201,20 +203,20 @@ ELSE() # add_subdirectory(third_party/lsquic) IF (DEFINED BORINGSSL_LIB) IF (CMAKE_SYSTEM_NAME STREQUAL Windows) - FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME} - NAMES ${LIB_NAME} + FIND_LIBRARY(BORINGSSL_LIB_${LIB} + NAMES ${LIB} PATHS ${BORINGSSL_LIB} PATH_SUFFIXES Debug Release MinSizeRel RelWithDebInfo NO_DEFAULT_PATH) ELSE() - FIND_LIBRARY(BORINGSSL_LIB_${LIB_NAME} - NAMES lib${LIB_NAME}${LIB_SUFFIX} + FIND_LIBRARY(BORINGSSL_LIB_${LIB} + NAMES lib${LI}${LIB_SUFFIX} PATHS ${BORINGSSL_LIB} - PATH_SUFFIXES ${LIB_NAME} + PATH_SUFFIXES ${LIB} NO_DEFAULT_PATH) ENDIF() ENDIF() - IF(BORINGSSL_LIB_${LIB_NAME}) + IF(BORINGSSL_LIB_${LIB}) MESSAGE(STATUS "Found ${LIB_NAME} library: ${BORINGSSL_LIB_${LIB_NAME}}") ELSE() MESSAGE(FATAL_ERROR "BORINGSSL_LIB_${LIB_NAME} library not found") ================================================ FILE: ports/liblsquic/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) # The lib uses CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, at least until # https://github.com/litespeedtech/lsquic/pull/371 or similar is merged vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO litespeedtech/lsquic REF v${VERSION} SHA512 40d742779bfa2dc6fdaf0ee8e9349498d373dcffcc6dd27867c18d87309a288ea6811d693043b5d98364d816b818b49445214497475844201241193c0f37b349 HEAD_REF master PATCHES disable-asan.patch fix-found-boringssl.patch ) # Submodules vcpkg_from_github(OUT_SOURCE_PATH LSQPACK_SOURCE_PATH REPO litespeedtech/ls-qpack REF v2.5.3 HEAD_REF master SHA512 f90502c763abc84532f33d1b8f952aea7869e4e0c5f6bd344532ddd51c4a180958de4086d88b9ec96673a059c806eec9e70007651d4d4e1a73395919dee47ce0 ) if(NOT EXISTS "${SOURCE_PATH}/src/ls-hpack/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/src/liblsquic/ls-qpack") file(RENAME "${LSQPACK_SOURCE_PATH}" "${SOURCE_PATH}/src/liblsquic/ls-qpack") endif() vcpkg_from_github(OUT_SOURCE_PATH LSHPACK_SOURCE_PATH REPO litespeedtech/ls-hpack REF v2.3.2 HEAD_REF master SHA512 45d6c8296e8eee511e6a083f89460d5333fc9a49bc078dac55fdec6c46db199de9f150379f02e054571f954a5e3c79af3864dbc53dc57d10a8d2ed26a92d4278 ) if(NOT EXISTS "${SOURCE_PATH}/src/lshpack/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/src/lshpack") file(RENAME "${LSHPACK_SOURCE_PATH}" "${SOURCE_PATH}/src/lshpack") endif() # Configuration vcpkg_find_acquire_program(PERL) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LSQUIC_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPERL=${PERL}" "-DPERL_EXECUTABLE=${PERL}" "-DLSQUIC_SHARED_LIB=${LSQUIC_SHARED_LIB}" "-DBORINGSSL_INCLUDE=${CURRENT_INSTALLED_DIR}/include" -DLSQUIC_BIN=OFF -DLSQUIC_TESTS=OFF OPTIONS_RELEASE "-DBORINGSSL_LIB=${CURRENT_INSTALLED_DIR}/lib" OPTIONS_DEBUG "-DBORINGSSL_LIB=${CURRENT_INSTALLED_DIR}/debug/lib" -DLSQUIC_DEVEL=ON ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) # Upstream removed installation of this header after merging changes file(INSTALL "${SOURCE_PATH}/wincompat/vc_compat.h" DESTINATION "${CURRENT_INSTALLED_DIR}/include/lsquic") endif() vcpkg_cmake_config_fixup(PACKAGE_NAME lsquic) # Concatenate license files and install vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE.chrome" ) # Remove duplicated include directory file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/liblsquic/vcpkg.json ================================================ { "name": "liblsquic", "version": "3.3.2", "port-version": 1, "description": "An implementation of the QUIC and HTTP/3 protocols.", "homepage": "https://github.com/litespeedtech/lsquic", "license": "MIT AND BSD-3-Clause", "supports": "!x86", "dependencies": [ "boringssl", { "name": "getopt", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libltdl/libtoolize-ltdl-no-la ================================================ #!/bin/sh me=libtoolize-ltdl-no-la if test -n "$VCPKG_LIBLTDL_LIBTOOLIZE"; then libtoolize="${VCPKG_LIBLTDL_LIBTOOLIZE}" elif hash glibtoolize 2>/dev/null; then libtoolize=glibtoolize else libtoolize=libtoolize fi echo "$me: running: ${libtoolize} $*" 1>&2 "${libtoolize}" "$@" && echo "$me: disabling libltdl.la check in m4/ltdl.m4" # most distros removes the la file if test -f m4/ltdl.m4 ; then sed -e 's,test -f "\$with_ltdl_lib/libltdl.la",test -d "\$with_ltdl_lib",' m4/ltdl.m4 > m4/_ltdl.m4.tmp && cp m4/_ltdl.m4.tmp m4/ltdl.m4 && rm m4/_ltdl.m4.tmp else echo "$me: Cannot find m4/libltdl.m4" 1>&2 fi ================================================ FILE: ports/libltdl/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/libtool/libtool-${VERSION}.tar.xz" "https://ftp.gnu.org/pub/gnu/libtool/libtool-${VERSION}.tar.xz" FILENAME "gnu-libtool-${VERSION}.tar.xz" SHA512 eed207094bcc444f4bfbb13710e395e062e3f1d312ca8b186ab0cbd22dc92ddef176a0b3ecd43e02676e37bd9e328791c59a38ef15846d4eae15da4f20315724 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_list(SET OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS) string(APPEND VCPKG_C_FLAGS " -D_CRT_SECURE_NO_WARNINGS") string(APPEND VCPKG_CXX_FLAGS " -D_CRT_SECURE_NO_WARNINGS") if(NOT VCPKG_TARGET_IS_MINGW) vcpkg_list(APPEND OPTIONS ac_cv_header_dirent_h=no) # Ignore vcpkg port dirent endif() endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/libltdl" AUTORECONF OPTIONS --enable-ltdl-install ${OPTIONS} ) vcpkg_make_install() file(COPY "${CURRENT_PORT_DIR}/libtoolize-ltdl-no-la" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") file(CHMOD "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/libtoolize-ltdl-no-la" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/libltdl/COPYING.LIB") ================================================ FILE: ports/libltdl/vcpkg-port-config.cmake ================================================ # Provide variables to use lib ltldl with autoconf. # # - _LIBTOOLIZE # A libtoolize (wrapper) which disables the check for libltdl.la. # la files are removed from packages in vcpkg (and in most distros). # They add little value in modern environments, and they use absolute paths. # - _OPTIONS_RELEASE, # _OPTIONS_DEBUG: # Options to pass to vcpkg_make_configure. # # Usage: # vcpkg_libltdl_get_vars(LIBLTDL) # set(ENV{LIBTOOLIZE} "${LIBLTDL_LIBTOOLIZE}") # # vcpkg_make_configure( # SOURCE_PATH "${SOURCE_PATH}" # AUTORECONF # OPTIONS_RELEASE # ${LIBLTDL_OPTIONS_RELEASE} # OPTIONS_DEBUG # ${LIBLTDL_OPTIONS_RELEASE} # ) function(vcpkg_libltdl_get_vars prefix) # Forward libtoolize from environment to libtoolize-ltdl-no-la. if(NOT "$ENV{LIBTOOLIZE}" STREQUAL "") set(ENV{VCPKG_LIBLTDL_LIBTOOLIZE} "$ENV{LIBTOOLIZE}") endif() vcpkg_list(SET options_release "--with-included-ltdl=no" "--with-ltdl-include=${CURRENT_INSTALLED_DIR}/include" "--with-ltdl-lib=${CURRENT_INSTALLED_DIR}/lib" ) vcpkg_list(SET options_debug "--with-included-ltdl=no" "--with-ltdl-include=${CURRENT_INSTALLED_DIR}/include" "--with-ltdl-lib=${CURRENT_INSTALLED_DIR}/debug/lib" ) set("${prefix}_OPTIONS_RELEASE" "${options_release}" PARENT_SCOPE) set("${prefix}_OPTIONS_DEBUG" "${options_debug}" PARENT_SCOPE) set("${prefix}_LIBTOOLIZE" "${CURRENT_INSTALLED_DIR}/manual-tools/libltdl/libtoolize-ltdl-no-la" PARENT_SCOPE) endfunction() ================================================ FILE: ports/libltdl/vcpkg.json ================================================ { "name": "libltdl", "version": "2.5.4", "description": "A system independent dlopen wrapper for GNU libtool", "homepage": "https://www.gnu.org/software/libtool/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/liblttng-ust/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lttng/lttng-ust REF "v${VERSION}" SHA512 543c76bebc7a93368f14d427a545ecb455eba7fd4bf037a96109414362033ebae247684f2c83ef8588a12ca759fdf970f930dfdf640b4bd6a41514b40ea78b86 HEAD_REF master ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-man-pages --disable-examples --disable-numa ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/liblttng-ust/vcpkg.json ================================================ { "name": "liblttng-ust", "version": "2.14.0", "description": "LTTng-UST, the Linux Trace Toolkit Next Generation Userspace Tracer, is port of the low-overhead tracing capabilities of the LTTng kernel tracer to user-space. The library 'liblttng-ust' enables tracing of applications and libraries.", "homepage": "https://lttng.org/", "license": "LGPL-2.1-only", "supports": "linux", "dependencies": [ "liburcu", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/liblzf/0001-add-extern-c.patch ================================================ --- a/lzf.h +++ b/lzf.h @@ -48,6 +48,10 @@ #define LZF_VERSION 0x0105 /* 1.5, API version */ +#ifdef __cplusplus +extern "C" { +#endif + /* * Compress in_len bytes stored at the memory block starting at * in_data and write the result to out_data, up to a maximum length @@ -96,5 +100,9 @@ unsigned int lzf_decompress (const void *const in_data, unsigned int in_len, void *out_data, unsigned int out_len); +#ifdef __cplusplus +} +#endif + #endif ================================================ FILE: ports/liblzf/0002-fix-macro-expansion-ub.patch ================================================ --- a/lzfP.h +++ b/lzfP.h @@ -79,7 +79,11 @@ * Unconditionally aligning does not cost very much, so do it if unsure */ #ifndef STRICT_ALIGN -# define STRICT_ALIGN !(defined(__i386) || defined (__amd64)) +# if !(defined(__i386) || defined (__amd64)) +# define STRICT_ALIGN 1 +# else +# define STRICT_ALIGN 0 +# endif #endif /* ================================================ FILE: ports/liblzf/CMakeLists.txt ================================================ # Based on http://cvs.schmorp.de/liblzf/Makefile.in?view=markup cmake_minimum_required(VERSION 3.15) project(liblzf LANGUAGES C) ## Build ## add_library(liblzf lzf_c.c lzf_d.c liblzf.def ) set_target_properties(liblzf PROPERTIES OUTPUT_NAME lzf) target_include_directories(liblzf INTERFACE $) if(MINGW) target_compile_definitions(liblzf PRIVATE "_int64=long long") endif() ## Install ## include(GNUInstallDirs) install(TARGETS liblzf EXPORT unofficial-liblzf-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(FILES lzf.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ## Write config ## set(LIBLZF_SHARE_DIR share/unofficial-liblzf) install(EXPORT unofficial-liblzf-targets FILE unofficial-liblzf-config.cmake NAMESPACE unofficial::liblzf:: DESTINATION ${LIBLZF_SHARE_DIR} ) include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-liblzf-config-version.cmake" VERSION ${VERSION} COMPATIBILITY SameMajorVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-liblzf-config-version.cmake" DESTINATION ${LIBLZF_SHARE_DIR} ) ================================================ FILE: ports/liblzf/liblzf.def ================================================ EXPORTS lzf_compress lzf_decompress ================================================ FILE: ports/liblzf/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://dist.schmorp.de/liblzf/liblzf-${VERSION}.tar.gz" FILENAME "liblzf-${VERSION}.tar.gz" SHA512 701f70245a11e7cf3412b14ed26bf7b1464512d5b0cf3f913e70ebfdfe20574b8ebbae5a78f4b56ac0034d54830380309cac3057ca00a8028edbde3d091141f5 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-add-extern-c.patch 0002-fix-macro-expansion-ub.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/liblzf.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-liblzf") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/liblzf/vcpkg.json ================================================ { "name": "liblzf", "version": "3.6", "port-version": 1, "description": "LZF is an extremely fast compression algorithm. It is ideal for applications where you want to save some space but not at the cost of speed.", "homepage": "http://software.schmorp.de/pkg/liblzf.html", "license": "BSD-2-Clause OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liblzma/build-tools.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 32506cd..0fbd454 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1748,7 +1748,7 @@ function(my_install_man COMPONENT SRC_FILE LINK_NAMES) endif() endfunction() - +if(BUILD_TOOLS) ############################################################################# # libgnu (getopt_long) ############################################################################# @@ -2415,7 +2415,7 @@ xzdiff, xzgrep, xzmore, xzless, and their symlinks" ON) src/scripts/xzless.1 "${XZLESS_LINKS}") endif() endif() - +endif() ############################################################################# # Documentation ================================================ FILE: ports/liblzma/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tukaani-project/xz REF "v${VERSION}" SHA512 "a14c9d0a118c611d1156cd9a605269c706b976a752c048db7f2eea956e2bf717ce595f46186d951a6c4493e35658e08fa3fe4b256898c6ca08e3695c0ee7b0e5" HEAD_REF master PATCHES build-tools.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) if("tools" IN_LIST FEATURES) set(XZ_SANDBOX "auto") else() set(XZ_SANDBOX "no") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") set(WASM_OPTIONS -DCMAKE_C_BYTE_ORDER=LITTLE_ENDIAN -DCMAKE_CXX_BYTE_ORDER=LITTLE_ENDIAN) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${WASM_OPTIONS} -DBUILD_TESTING=OFF -DCREATE_XZ_SYMLINKS=OFF -DCREATE_LZMA_SYMLINKS=OFF -DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT= # using flags from (vcpkg) toolchain -DENABLE_NLS=OFF # nls is not supported by this port, yet -DXZ_NLS=OFF -DXZ_SANDBOX:STRING=${XZ_SANDBOX} MAYBE_UNUSED_VARIABLES CMAKE_MSVC_DEBUG_INFORMATION_FORMAT CREATE_XZ_SYMLINKS CREATE_LZMA_SYMLINKS ENABLE_NLS ) vcpkg_cmake_install() vcpkg_copy_pdbs() set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") set(PACKAGE_URL https://tukaani.org/xz/) set(PACKAGE_VERSION "${VERSION}") if(NOT VCPKG_TARGET_IS_WINDOWS) set(PTHREAD_CFLAGS -pthread) endif() set(prefix "${CURRENT_INSTALLED_DIR}") configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/liblzma.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) set(prefix "${CURRENT_INSTALLED_DIR}/debug") configure_file("${SOURCE_PATH}/src/liblzma/liblzma.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblzma.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/liblzma) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lzma.h" "defined(LZMA_API_STATIC)" "0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) set(TOOLS xz xzdec lzmadec lzmainfo) foreach(_tool IN LISTS TOOLS) if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") list(REMOVE_ITEM TOOLS ${_tool}) endif() endforeach() if(TOOLS) vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/liblzma/usage ================================================ liblzma is compatible with built-in CMake targets: find_package(LibLZMA REQUIRED) target_link_libraries(main PRIVATE LibLZMA::LibLZMA) liblzma provides CMake targets: find_package(liblzma CONFIG REQUIRED) target_link_libraries(main PRIVATE liblzma::liblzma) ================================================ FILE: ports/liblzma/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) set(z_vcpkg_liblzma_fixup_needed 0) if(NOT "CONFIG" IN_LIST ARGS AND NOT "NO_MODULE" IN_LIST ARGS AND NOT CMAKE_DISABLE_FIND_PACKAGE_LibLZMA) get_filename_component(z_vcpkg_liblzma_prefix "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) get_filename_component(z_vcpkg_liblzma_prefix "${z_vcpkg_liblzma_prefix}" DIRECTORY) find_path(LIBLZMA_INCLUDE_DIR NAMES lzma.h PATHS "${z_vcpkg_liblzma_prefix}/include" NO_DEFAULT_PATH) # liblzma doesn't use a debug postfix, but FindLibLZMA.cmake expects it find_library(LIBLZMA_LIBRARY_RELEASE NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/lib" NO_DEFAULT_PATH) find_library(LIBLZMA_LIBRARY_DEBUG NAMES lzma PATHS "${z_vcpkg_liblzma_prefix}/debug/lib" NO_DEFAULT_PATH) unset(z_vcpkg_liblzma_prefix) if(CMAKE_VERSION VERSION_LESS 3.16) # Older versions of FindLibLZMA.cmake need a single lib in LIBLZMA_LIBRARY. set(z_vcpkg_liblzma_fixup_needed 1) set(LIBLZMA_LIBRARY "${LIBLZMA_LIBRARY_RELEASE}" CACHE INTERNAL "") elseif(NOT TARGET LibLZMA::LibLZMA) set(z_vcpkg_liblzma_fixup_needed 1) endif() # Known values, and required. Skip expensive tests. set(LIBLZMA_HAS_AUTO_DECODER 1 CACHE INTERNAL "") set(LIBLZMA_HAS_EASY_ENCODER 1 CACHE INTERNAL "") set(LIBLZMA_HAS_LZMA_PRESET 1 CACHE INTERNAL "") endif() _find_package(${ARGS}) if(z_vcpkg_liblzma_fixup_needed) include(SelectLibraryConfigurations) select_library_configurations(LIBLZMA) if(NOT TARGET LibLZMA::LibLZMA) # Backfill LibLZMA::LibLZMA to versions of cmake before 3.14 add_library(LibLZMA::LibLZMA UNKNOWN IMPORTED) if(DEFINED LIBLZMA_INCLUDE_DIRS) set_target_properties(LibLZMA::LibLZMA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${LIBLZMA_INCLUDE_DIRS}") endif() set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" IMPORTED_LOCATION_RELEASE "${LIBLZMA_LIBRARY_RELEASE}") if(EXISTS "${LIBLZMA_LIBRARY}") set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C" IMPORTED_LOCATION "${LIBLZMA_LIBRARY}") endif() endif() if(LIBLZMA_LIBRARY_DEBUG) # Backfill debug variant to versions of cmake before 3.16 set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(LibLZMA::LibLZMA PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBLZMA_LIBRARY_DEBUG}") endif() endif() if(LIBLZMA_LIBRARIES AND NOT "Threads::Threads" IN_LIST LIBLZMA_LIBRARIES) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads) list(APPEND LIBLZMA_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) if(TARGET LibLZMA::LibLZMA) set_property(TARGET LibLZMA::LibLZMA APPEND PROPERTY INTERFACE_LINK_LIBRARIES Threads::Threads) endif() endif() unset(z_vcpkg_liblzma_fixup_needed) cmake_policy(POP) ================================================ FILE: ports/liblzma/vcpkg.json ================================================ { "name": "liblzma", "version": "5.8.2", "port-version": 1, "description": "Compression library with an API similar to that of zlib.", "homepage": "https://tukaani.org/xz/", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/libmad/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile( ARCHIVE URLS "https://codeberg.org/tenacityteam/libmad/releases/download/${VERSION}/libmad-${VERSION}.tar.gz" FILENAME "tenacityteam-libmad-${VERSION}.tar.gz" SHA512 5b0a826408395e8b6b8a33953401355d6c2f1b33ec5085530b4ac8a538c39ffa903ce2e6845e9dcad73936933078959960b2f3fbba11ae091fda5bc5ee310df5 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES aso ASO ) set(EXTRA_OPTIONS) # Avoid architecture-specific assembly when targeting WASM. The upstream # CMakeLists incorrectly recognizes the CPU as an Intel/64-bit CPU, therefore # we have to override these flags: # https://codeberg.org/tenacityteam/libmad/src/commit/84ba587793d61caadf6d1f6c0d94c3e165874a50/CMakeLists.txt if(VCPKG_TARGET_IS_EMSCRIPTEN) list(APPEND EXTRA_OPTIONS "-DFPM_64BIT=OFF -DFPM_INTEL=OFF -DFPM_DEFAULT=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} -DEXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "mad" CONFIG_PATH "lib/cmake/mad") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libmad/vcpkg.json ================================================ { "name": "libmad", "version": "0.16.4", "port-version": 4, "description": "high-quality MPEG audio decoder", "homepage": "https://codeberg.org/tenacityteam/libmad", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "aso", "platform": "x86 | x64 | arm" } ], "features": { "aso": { "description": "Enable CPU architecture-specific optimizations (x86, ARM and MIPS only)", "supports": "x86 | x64 | arm" } } } ================================================ FILE: ports/libmagic/0001-Use-libtre.patch ================================================ From e6e59f41c082be94c4fef007e276b1dffe7dc240 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sat, 8 May 2021 19:28:01 +0700 Subject: [PATCH 01/14] Use libtre --- configure.ac | 2 +- src/Makefile.am | 2 +- src/file.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 02eac8f..b05c334 100644 --- a/configure.ac +++ b/configure.ac @@ -185,7 +185,7 @@ if test "$enable_libseccomp" != "no"; then AC_CHECK_LIB(seccomp, seccomp_init) fi if test "$MINGW" = 1; then - AC_CHECK_LIB(gnurx,regexec,,AC_MSG_ERROR([libgnurx is required to build file(1) with MinGW])) + AC_SEARCH_LIBS(tre_regexec,tre,,AC_MSG_ERROR([libtre is required to build file(1) with MinGW])) fi dnl See if we are cross-compiling diff --git a/src/Makefile.am b/src/Makefile.am index 3f67f2c..34781b9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -13,7 +13,7 @@ libmagic_la_SOURCES = buffer.c magic.c apprentice.c softmagic.c ascmagic.c \ file_opts.h elfclass.h mygetopt.h cdf.c cdf_time.c readcdf.c cdf.h libmagic_la_LDFLAGS = -no-undefined -version-info 1:0:0 if MINGW -MINGWLIBS = -lgnurx -lshlwapi +MINGWLIBS = -lshlwapi else MINGWLIBS = endif diff --git a/src/file.h b/src/file.h index c548e97..299ac0c 100644 --- a/src/file.h +++ b/src/file.h @@ -79,7 +79,7 @@ #include /* Include that here, to make sure __P gets defined */ #include #include /* For open and flags */ -#include +#include #include #include #ifndef WIN32 -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0002-Change-zlib-lib-name-to-match-CMake-output.patch ================================================ From 2fa43ece9ec7564e1fbb9867bb5852b834643aa4 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sat, 8 May 2021 19:36:11 +0700 Subject: [PATCH 02/14] Change zlib lib name to match CMake output --- configure.ac | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index b05c334..dd4063c 100644 --- a/configure.ac +++ b/configure.ac @@ -173,7 +173,7 @@ AC_REPLACE_FUNCS(getopt_long asprintf vasprintf strlcpy strlcat getline ctime_r dnl Checks for libraries if test "$enable_zlib" != "no"; then - AC_CHECK_LIB(z, gzopen) + AC_SEARCH_LIBS(gzopen, [z zlib zlibd], have_zlib="yes", have_zlib="no") fi if test "$enable_bzlib" != "no"; then AC_CHECK_LIB(bz2, BZ2_bzCompressInit) @@ -193,11 +193,11 @@ AM_CONDITIONAL(IS_CROSS_COMPILE, test "$cross_compiling" = yes) dnl Final sanity checks if test "$enable_zlib" = "yes"; then - if test "$ac_cv_header_zlib_h$ac_cv_lib_z_gzopen" != "yesyes"; then + if test "$ac_cv_header_zlib_h$have_zlib" != "yesyes"; then AC_MSG_ERROR([zlib support requested but not found]) fi fi -if test "$ac_cv_header_zlib_h$ac_cv_lib_z_gzopen" = "yesyes"; then +if test "$ac_cv_header_zlib_h$have_zlib" = "yesyes"; then AC_DEFINE([ZLIBSUPPORT], 1, [Enable zlib compression support]) fi if test "$enable_bzlib" = "yes"; then -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0003-Fix-WIN32-macro-checks.patch ================================================ diff --git a/src/file.h b/src/file.h index a67e8ff..9115c5b 100644 --- a/src/file.h +++ b/src/file.h @@ -82,7 +82,7 @@ #include #include #include -#ifndef WIN32 +#ifndef _WIN32 #include #endif /* Do this here and now, because struct stat gets re-defined on solaris */ @@ -99,7 +99,7 @@ #define MAGIC "/etc/magic" #endif -#if defined(__EMX__) || defined (WIN32) +#if defined(__EMX__) || defined (_WIN32) #define PATHSEP ';' #else #define PATHSEP ':' @@ -108,7 +108,7 @@ #define file_private static #if HAVE_VISIBILITY -# if defined(WIN32) +# if defined(_WIN32) # define file_public __declspec(dllexport) # ifndef file_protected # define file_protected ================================================ FILE: ports/libmagic/0004-Typedef-POSIX-types-on-Windows.patch ================================================ From eb3dde2954dacd86ec7490540eb9b7e3530b917b Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sat, 8 May 2021 20:12:55 +0700 Subject: [PATCH 04/14] Typedef POSIX types on Windows --- src/file.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/file.h b/src/file.h index 2c365a6..0332506 100644 --- a/src/file.h +++ b/src/file.h @@ -425,6 +425,12 @@ struct cont { #define MAGIC_SETS 2 +#ifdef _MSC_VER +#include +typedef int mode_t; +typedef SSIZE_T ssize_t; +#endif + struct magic_set { struct mlist *mlist[MAGIC_SETS]; /* list of regular entries */ struct cont c; -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0005-Include-dirent.h-for-S_ISREG-and-S_ISDIR.patch ================================================ From a8f8fbfc2736419c65992cbf24de963c3b1f3107 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sat, 8 May 2021 22:07:55 +0700 Subject: [PATCH 05/14] Include dirent.h for S_ISREG and S_ISDIR --- src/file.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/file.h b/src/file.h index 0332506..4aa9f60 100644 --- a/src/file.h +++ b/src/file.h @@ -88,7 +88,8 @@ /* Do this here and now, because struct stat gets re-defined on solaris */ #include #include +#include #include #if defined(HAVE_XLOCALE_H) #include #endif -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0006-Remove-Wrap-POSIX-headers.patch ================================================ From b20c8e62851f3cb53083a3e7811518092f98dc26 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sat, 8 May 2021 22:47:32 +0700 Subject: [PATCH 06/14] Remove/Wrap POSIX headers --- src/buffer.c | 2 ++ src/cdf.c | 2 ++ src/dprintf.c | 2 ++ src/file.c | 1 - src/getline.c | 2 ++ src/is_csv.c | 2 ++ src/is_json.c | 2 ++ src/magic.c | 2 ++ src/memtest.c | 2 ++ src/mygetopt.h | 2 ++ src/pread.c | 2 ++ src/readcdf.c | 2 ++ 12 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/buffer.c b/src/buffer.c index 227015a..f3d8efa 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -31,7 +31,9 @@ FILE_RCSID("@(#)$File: buffer.c,v 1.8 2020/02/16 15:52:49 christos Exp $") #endif /* lint */ #include "magic.h" +#ifdef HAVE_UNISTD_H #include +#endif #include #include #include diff --git a/src/cdf.c b/src/cdf.c index bb81d63..dc9ec56 100644 --- a/src/cdf.c +++ b/src/cdf.c @@ -43,7 +43,9 @@ FILE_RCSID("@(#)$File: cdf.c,v 1.116 2019/08/26 14:31:39 christos Exp $") #include #endif #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include #include diff --git a/src/dprintf.c b/src/dprintf.c index 027a64f..873c547 100644 --- a/src/dprintf.c +++ b/src/dprintf.c @@ -32,7 +32,9 @@ FILE_RCSID("@(#)$File: dprintf.c,v 1.2 2018/09/09 20:33:28 christos Exp $") #endif /* lint */ #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include diff --git a/src/file.c b/src/file.c index 87b9ab1..2889f8a 100644 --- a/src/file.c +++ b/src/file.c @@ -38,7 +38,6 @@ FILE_RCSID("@(#)$File: file.c,v 1.189 2021/02/05 21:33:49 christos Exp $") #include "magic.h" #include -#include #include #ifdef RESTORE_TIME # if (__COHERENT__ >= 0x420) diff --git a/src/getline.c b/src/getline.c index b00de01..c2d41ca 100644 --- a/src/getline.c +++ b/src/getline.c @@ -33,7 +33,9 @@ #if !HAVE_GETLINE #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include diff --git a/src/is_csv.c b/src/is_csv.c index 937ab5f..2f704c5 100644 --- a/src/is_csv.c +++ b/src/is_csv.c @@ -166,7 +166,9 @@ file_is_csv(struct magic_set *ms, const struct buffer *b, int looks_text) #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include #include diff --git a/src/is_json.c b/src/is_json.c index 0b12438..997a276 100644 --- a/src/is_json.c +++ b/src/is_json.c @@ -436,7 +436,9 @@ file_is_json(struct magic_set *ms, const struct buffer *b) #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include #include diff --git a/src/magic.c b/src/magic.c index 81a0840..e9aeafa 100644 --- a/src/magic.c +++ b/src/magic.c @@ -39,7 +39,9 @@ FILE_RCSID("@(#)$File: magic.c,v 1.114 2021/02/05 21:33:49 christos Exp $") #include "magic.h" #include +#ifdef HAVE_UNISTD_H #include +#endif #include #ifdef QUICK #include diff --git a/src/memtest.c b/src/memtest.c index f9506f6..ea50242 100644 --- a/src/memtest.c +++ b/src/memtest.c @@ -34,7 +34,9 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include diff --git a/src/mygetopt.h b/src/mygetopt.h index d766762..b8e044c 100644 --- a/src/mygetopt.h +++ b/src/mygetopt.h @@ -39,7 +39,9 @@ #ifndef _GETOPT_H_ #define _GETOPT_H_ +#ifdef HAVE_UNISTD_H #include +#endif /* * Gnu like getopt_long() and BSD4.4 getsubopt()/optreset extensions diff --git a/src/pread.c b/src/pread.c index 3ab52d1..fc48d84 100644 --- a/src/pread.c +++ b/src/pread.c @@ -3,7 +3,9 @@ FILE_RCSID("@(#)$File: pread.c,v 1.5 2022/09/24 20:30:13 christos Exp $") #endif /* lint */ #include +#ifdef HAVE_UNISTD_H #include +#endif ssize_t pread(int fd, void *buf, size_t len, off_t off) { diff --git a/src/readcdf.c b/src/readcdf.c index 7622c7b..977cb75 100644 --- a/src/readcdf.c +++ b/src/readcdf.c @@ -31,7 +31,9 @@ FILE_RCSID("@(#)$File: readcdf.c,v 1.74 2019/09/11 15:46:30 christos Exp $") #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include #include -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0007-Substitute-unistd-macros-for-MSVC.patch ================================================ From 1106d1523ed44bcbcca90fc1fe9fa9400777d8fe Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sun, 9 May 2021 10:28:49 +0700 Subject: [PATCH 07/14] Substitute unistd macros for MSVC --- src/file.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/file.h b/src/file.h index 4aa9f60..5da838c 100644 --- a/src/file.h +++ b/src/file.h @@ -85,6 +85,13 @@ #ifndef _WIN32 #include #endif +#ifdef _MSC_VER +#include +#define R_OK 4 +#define W_OK 2 +#define X_OK R_OK +#define F_OK 0 +#endif /* Do this here and now, because struct stat gets re-defined on solaris */ #include #include -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0008-Add-FILENO-defines.patch ================================================ From e449e3fb47aee00f0d82782183cc7fd6b446d27b Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sun, 9 May 2021 13:24:42 +0700 Subject: [PATCH 08/14] Add FILENO defines --- src/file.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/file.h b/src/file.h index 5da838c..ccfe0da 100644 --- a/src/file.h +++ b/src/file.h @@ -91,6 +91,9 @@ #define W_OK 2 #define X_OK R_OK #define F_OK 0 +#define STDIN_FILENO _fileno(stdin) +#define STDOUT_FILENO _fileno(stdout) +#define STDERR_FILENO _fileno(stderr) #endif /* Do this here and now, because struct stat gets re-defined on solaris */ #include -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0010-Properly-check-for-the-presence-of-bitmasks.patch ================================================ From a6bc98ce25cd9d9dba896e93ed441ff162f6793b Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sun, 9 May 2021 17:43:20 +0700 Subject: [PATCH 10/14] Properly check for the presence of bitmasks --- src/fsmagic.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/fsmagic.c b/src/fsmagic.c index 5204f20..7244841 100644 --- a/src/fsmagic.c +++ b/src/fsmagic.c @@ -66,7 +66,7 @@ FILE_RCSID("@(#)$File: fsmagic.c,v 1.81 2019/07/16 13:30:32 christos Exp $") # define minor(dev) ((dev) & 0xff) #endif #undef HAVE_MAJOR -#ifdef S_IFLNK +#if S_IFLNK != 0 file_private int bad_link(struct magic_set *ms, int err, char *buf) { @@ -108,7 +108,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) int ret, did = 0; int mime = ms->flags & MAGIC_MIME; int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION); -#ifdef S_IFLNK +#if S_IFLNK != 0 char buf[BUFSIZ+4]; ssize_t nch; struct stat tstatbuf; @@ -122,7 +122,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) * Fstat is cheaper but fails for files you don't have read perms on. * On 4.2BSD and similar systems, use lstat() to identify symlinks. */ -#ifdef S_IFLNK +#if S_IFLNK != 0 if ((ms->flags & MAGIC_SYMLINK) == 0) ret = lstat(fn, sb); else @@ -171,17 +171,17 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) ret = 1; if (!mime && !silent) { -#ifdef S_ISUID +#if S_ISUID != 0 if (sb->st_mode & S_ISUID) if (file_printf(ms, "%ssetuid", COMMA) == -1) return -1; #endif -#ifdef S_ISGID +#if S_ISGID != 0 if (sb->st_mode & S_ISGID) if (file_printf(ms, "%ssetgid", COMMA) == -1) return -1; #endif -#ifdef S_ISVTX +#if S_ISVTX != 0 if (sb->st_mode & S_ISVTX) if (file_printf(ms, "%ssticky", COMMA) == -1) return -1; @@ -197,7 +197,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) } else if (file_printf(ms, "%sdirectory", COMMA) == -1) return -1; break; -#ifdef S_IFCHR +#if S_IFCHR != 0 case S_IFCHR: /* * If -s has been specified, treat character special files @@ -232,7 +232,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) } break; #endif -#ifdef S_IFBLK +#if S_IFBLK != 0 case S_IFBLK: /* * If -s has been specified, treat block special files @@ -268,7 +268,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) break; #endif /* TODO add code to handle V7 MUX and Blit MUX files */ -#ifdef S_IFIFO +#if S_IFIFO != 0 case S_IFIFO: if((ms->flags & MAGIC_DEVICES) != 0) break; @@ -280,7 +280,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) return -1; break; #endif -#ifdef S_IFDOOR +#if S_IFDOOR != 0 case S_IFDOOR: if (mime) { if (handle_mime(ms, mime, "door") == -1) @@ -290,7 +290,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) return -1; break; #endif -#ifdef S_IFLNK +#if S_IFLNK != 0 case S_IFLNK: if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) { if (ms->flags & MAGIC_ERROR) { @@ -378,7 +378,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) } break; #endif -#ifdef S_IFSOCK +#if S_IFSOCK != 0 #ifndef __COHERENT__ case S_IFSOCK: if (mime) { -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0011-Remove-pipe-related-functions-in-funcs.c.patch ================================================ From 15b0f505ff9eefd41b74ffdd4230355e933263ca Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Sun, 9 May 2021 17:45:50 +0700 Subject: [PATCH 11/14] Remove pipe related functions in funcs.c --- src/funcs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/funcs.c b/src/funcs.c index b926625..b585486 100644 --- a/src/funcs.c +++ b/src/funcs.c @@ -888,5 +888,6 @@ } +#ifndef _WIN32 file_protected int file_pipe_closexec(int *fds) { @@ -914,5 +915,6 @@ #endif } +#endif file_protected char * file_strtrim(char *str) -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0012-Convert-MSYS2-paths-to-Windows-paths.patch ================================================ From f0139ced57c1579450f3d09b6e3ae0159aae031b Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Mon, 10 May 2021 08:43:28 +0700 Subject: [PATCH 12/14] Convert MSYS2 paths to Windows paths --- src/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Makefile.am b/src/Makefile.am index 34781b9..26f853f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,7 @@ MAGIC = $(pkgdatadir)/magic +if MINGW +MAGIC != cygpath -m -a -l '$(MAGIC)' +endif lib_LTLIBRARIES = libmagic.la nodist_include_HEADERS = magic.h -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0013-Check-for-backslash-in-argv-0-on-Windows.patch ================================================ From 3f10c7d31627b64b068b84ba72e706991f672560 Mon Sep 17 00:00:00 2001 From: Long Nguyen Date: Fri, 14 May 2021 08:14:05 +0700 Subject: [PATCH 13/14] Check for backslash in argv[0] on Windows --- magic/Makefile.am | 2 +- src/file.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/magic/Makefile.am b/magic/Makefile.am index 0eb5865..170bbab 100644 --- a/magic/Makefile.am +++ b/magic/Makefile.am @@ -353,7 +353,7 @@ ${MAGIC}: $(EXTRA_DIST) $(FILE_COMPILE_DEP) @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ else \ - v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ + v=$$(${FILE_COMPILE} --version | sed -e s/file${EXEEXT}-// -e q); \ if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ echo "Cannot use the installed version of file ($$v) to"; \ echo "cross-compile file ${PACKAGE_VERSION}"; \ diff --git a/src/file.c b/src/file.c index 2889f8a..12a604b 100644 --- a/src/file.c +++ b/src/file.c @@ -200,6 +200,11 @@ main(int argc, char *argv[]) _wildcard(&argc, &argv); #endif +#ifdef _WIN32 + if ((progname = strrchr(argv[0], '\\')) != NULL) + progname++; + else +#endif if ((progname = strrchr(argv[0], '/')) != NULL) progname++; else -- 2.29.2.windows.2 ================================================ FILE: ports/libmagic/0015-MSYS2-Remove-ioctl-call.patch ================================================ # From https://github.com/msys2/MINGW-packages/commit/3a51faadb8bacf06c7b7fd84b2ea80775d1a8b0d # this is an advanced patch to fix building v5.38 # see for details # this patch should be removed with the next version diff --git a/src/compress.c b/src/compress.c index 33ce2bc..f172eda 100644 --- a/src/compress.c +++ b/src/compress.c @@ -407,7 +407,7 @@ sread(int fd, void *buf, size_t n, int canbepipe __attribute__((__unused__))) { ssize_t rv; -#if defined(FIONREAD) && !defined(__MINGW32__) +#if defined(FIONREAD) && !defined(__MINGW32__) && !defined(WIN32) int t = 0; #endif size_t rn = n; @@ -418,7 +418,7 @@ if (fd == STDIN_FILENO) goto nocheck; -#if defined(FIONREAD) && !defined(__MINGW32__) +#if defined(FIONREAD) && !defined(__MINGW32__) && !defined(WIN32) if (canbepipe && (ioctl(fd, FIONREAD, &t) == -1 || t == 0)) { #ifdef FD_ZERO ssize_t cnt; ================================================ FILE: ports/libmagic/0016-Fix-file_famagic-function.patch ================================================ diff --git a/src/fsmagic.c b/src/fsmagic.c index 7244841..2c553c1 100644 --- a/src/fsmagic.c +++ b/src/fsmagic.c @@ -66,7 +66,7 @@ # define major(dev) (((dev) >> 8) & 0xff) # define minor(dev) ((dev) & 0xff) #endif #undef HAVE_MAJOR -#if S_IFLNK != 0 +#if S_IFLNK != 0 && ! defined(_WIN32) file_private int bad_link(struct magic_set *ms, int err, char *buf) { @@ -108,7 +108,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) int ret, did = 0; int mime = ms->flags & MAGIC_MIME; int silent = ms->flags & (MAGIC_APPLE|MAGIC_EXTENSION); -#if S_IFLNK != 0 +#if S_IFLNK != 0 && ! defined(_WIN32) char buf[BUFSIZ+4]; ssize_t nch; struct stat tstatbuf; @@ -122,7 +122,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) * Fstat is cheaper but fails for files you don't have read perms on. * On 4.2BSD and similar systems, use lstat() to identify symlinks. */ -#if S_IFLNK != 0 +#if S_IFLNK != 0 && ! defined(_WIN32) if ((ms->flags & MAGIC_SYMLINK) == 0) ret = lstat(fn, sb); else @@ -290,7 +290,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb) return -1; break; #endif -#if S_IFLNK != 0 +#if S_IFLNK != 0 && ! defined(_WIN32) case S_IFLNK: if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) { if (ms->flags & MAGIC_ERROR) { ================================================ FILE: ports/libmagic/0017-Change-bzlib-name-to-match-CMake-output.patch ================================================ diff --git a/configure.ac b/configure.ac index 8b54efda..d043fb06 100644 --- a/configure.ac +++ b/configure.ac @@ -191,7 +191,7 @@ if test "$enable_zlib" != "no"; then AC_SEARCH_LIBS(gzopen, [z zlib zlibd], have_zlib="yes", have_zlib="no") fi if test "$enable_bzlib" != "no"; then - AC_CHECK_LIB(bz2, BZ2_bzCompressInit) + AC_SEARCH_LIBS(BZ2_bzCompressInit, [bz2 bz2d], have_bzlib="yes", have_bzlib="no") fi if test "$enable_xzlib" != "no"; then AC_CHECK_LIB(lzma, lzma_stream_decoder) @@ -222,11 +222,11 @@ if test "$ac_cv_header_zlib_h$have_zlib" = "yesyes"; then AC_DEFINE([ZLIBSUPPORT], 1, [Enable zlib compression support]) fi if test "$enable_bzlib" = "yes"; then - if test "$ac_cv_header_bzlib_h$ac_cv_lib_bz2_BZ2_bzCompressInit" != "yesyes"; then + if test "$ac_cv_header_bzlib_h$have_bzlib" != "yesyes"; then AC_MSG_ERROR([bzlib support requested but not found]) fi fi -if test "$ac_cv_header_bzlib_h$ac_cv_lib_bz2_BZ2_bzCompressInit" = "yesyes"; then +if test "$ac_cv_header_bzlib_h$have_bzlib" = "yesyes"; then AC_DEFINE([BZLIBSUPPORT], 1, [Enable bzlib compression support]) fi if test "$enable_xzlib" = "yes"; then ================================================ FILE: ports/libmagic/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) set(PATCHES "0001-Use-libtre.patch" "0002-Change-zlib-lib-name-to-match-CMake-output.patch" "0003-Fix-WIN32-macro-checks.patch" "0004-Typedef-POSIX-types-on-Windows.patch" "0005-Include-dirent.h-for-S_ISREG-and-S_ISDIR.patch" "0006-Remove-Wrap-POSIX-headers.patch" "0007-Substitute-unistd-macros-for-MSVC.patch" "0008-Add-FILENO-defines.patch" "0010-Properly-check-for-the-presence-of-bitmasks.patch" "0011-Remove-pipe-related-functions-in-funcs.c.patch" "0012-Convert-MSYS2-paths-to-Windows-paths.patch" "0013-Check-for-backslash-in-argv-0-on-Windows.patch" "0015-MSYS2-Remove-ioctl-call.patch" "0016-Fix-file_famagic-function.patch" "0017-Change-bzlib-name-to-match-CMake-output.patch" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO file/file REF FILE5_46 SHA512 fb8157ee8065feaf57412ccdeee57cd8fc853b54ac49b0ddc818eeb1ca3555a7cfd25dea08996503f7c565dcba8c57fd7e4dc5fe3452872c617f5612a94a8f0e HEAD_REF master PATCHES ${PATCHES} ) if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -DBUILD_AS_WINDOWS_STATIC_LIBARAY") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -DBUILD_AS_WINDOWS_STATIC_LIBARAY") endif() set(FEATURE_OPTIONS) macro(enable_feature feature switch) if("${feature}" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "--enable-${switch}") set(has_${feature} 1) else() list(APPEND FEATURE_OPTIONS "--disable-${switch}") set(has_${feature} 0) endif() endmacro() enable_feature("bzip2" "bzlib") enable_feature("zlib" "zlib") enable_feature("lzma" "xzlib") enable_feature("zstd" "zstdlib") vcpkg_configure_make( AUTOCONFIG SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "--disable-lzlib" "--disable-libseccomp" ) if(VCPKG_CROSSCOMPILING) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/libmagic/bin") elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(EXTRA_ARGS "ADD_BIN_TO_PATH") endif() vcpkg_install_make(${EXTRA_ARGS}) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(VCPKG_TARGET_IS_WINDOWS) if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/share/misc") file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/misc/magic.mgc" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/share/misc") endif() if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/share/misc") file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/misc/magic.mgc" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/share/misc") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/man5") include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" INSTALL_DESTINATION "share/unofficial-${PORT}" ) # Handle copyright and usage vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libmagic/unofficial-libmagic-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") if(WIN32) find_dependency(unofficial-tre) endif() if(@has_zlib@) find_dependency(ZLIB) endif() if(@has_bzip2@) find_dependency(BZip2) endif() if(@has_lzma@) find_dependency(LibLZMA) endif() if(@has_zstd@) find_dependency(zstd) endif() endif() # Compute the installation prefix relative to this file. 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") add_library(unofficial::libmagic::libmagic STATIC IMPORTED) else() add_library(unofficial::libmagic::libmagic SHARED IMPORTED) endif() set_target_properties(unofficial::libmagic::libmagic PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") set_target_properties(unofficial::libmagic::libmagic PROPERTIES INTERFACE_LINK_LIBRARIES "\$:unofficial::tre::tre;shlwapi>>" "\$>" "\$>" "\$>" "\$" ) endif() macro(add_library_config config prefix) set_property(TARGET unofficial::libmagic::libmagic APPEND PROPERTY IMPORTED_CONFIGURATIONS ${config}) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") set_target_properties(unofficial::libmagic::libmagic PROPERTIES IMPORTED_LOCATION_${config} "${_IMPORT_PREFIX}/${prefix}lib/@VCPKG_TARGET_STATIC_LIBRARY_PREFIX@magic@VCPKG_TARGET_STATIC_LIBRARY_SUFFIX@" IMPORTED_LINK_INTERFACE_LANGUAGES_${config} "C" ) else() if(WIN32) set(library_dir "${_IMPORT_PREFIX}/${prefix}bin/") set(soversion_suffix "-1") set_target_properties(unofficial::libmagic::libmagic PROPERTIES IMPORTED_IMPLIB_${config} "${_IMPORT_PREFIX}/${prefix}/lib/@VCPKG_TARGET_IMPORT_LIBRARY_PREFIX@magic@VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX@" ) else() set(library_dir "${_IMPORT_PREFIX}/${prefix}lib/") endif() set_target_properties(unofficial::libmagic::libmagic PROPERTIES IMPORTED_LOCATION_${config} "${library_dir}@VCPKG_TARGET_SHARED_LIBRARY_PREFIX@magic${soversion_suffix}@VCPKG_TARGET_SHARED_LIBRARY_SUFFIX@" ) unset(soversion_suffix) unset(library_dir) endif() endmacro() if("@VCPKG_BUILD_TYPE@" STREQUAL "" OR "@VCPKG_BUILD_TYPE@" STREQUAL "debug") add_library_config(DEBUG "debug/") endif() if("@VCPKG_BUILD_TYPE@" STREQUAL "" OR "@VCPKG_BUILD_TYPE@" STREQUAL "release") add_library_config(RELEASE "") endif() set_and_check(unofficial-libmagic_DICTIONARY "${_IMPORT_PREFIX}/share/libmagic/misc/magic.mgc") unset(_IMPORT_PREFIX) check_required_components(unofficial-libmagic) ================================================ FILE: ports/libmagic/usage ================================================ libmagic provides CMake targets: find_package(unofficial-libmagic REQUIRED) target_link_libraries(main PRIVATE unofficial::libmagic::libmagic) The magic.mgc file can be accessed from the unofficial-libmagic_DICTIONARY variable. ================================================ FILE: ports/libmagic/vcpkg.json ================================================ { "name": "libmagic", "version": "5.46", "port-version": 2, "description": "This library can be used to classify files according to magic number tests.", "homepage": "https://github.com/file/file", "license": "BSD-2-Clause", "dependencies": [ { "name": "dirent", "platform": "windows" }, { "name": "getopt", "platform": "windows" }, { "name": "libmagic", "host": true }, { "name": "tre", "platform": "windows | mingw" } ], "features": { "bzip2": { "description": "Enable bzip2 support", "dependencies": [ "bzip2" ] }, "lzma": { "description": "Enable lzma support", "dependencies": [ "liblzma" ] }, "zlib": { "description": "Enable zlib support", "dependencies": [ "zlib" ] }, "zstd": { "description": "Enable zstd support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libmariadb/cmake-export.diff ================================================ diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt index bbad89a..71662d3 100644 --- a/libmariadb/CMakeLists.txt +++ b/libmariadb/CMakeLists.txt @@ -547,3 +547,22 @@ IF(0) CONFIGURATIONS Debug RelWithDebInfo COMPONENT Development) ENDIF() + +set_target_properties(mariadbclient PROPERTIES EXPORT_NAME libmariadb) + +install(EXPORT unofficial-libmariadb-targets + NAMESPACE unofficial:: + DESTINATION share/unofficial-libmariadb +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake.in" [[ +if(NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + if("@WITH_ZSTD@") + find_dependency(zstd CONFIG) + endif() +endif() +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libmariadb-targets.cmake") +]]) +configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmariadb-config.cmake" DESTINATION share/unofficial-libmariadb) ================================================ FILE: ports/libmariadb/compiler-flags.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8994119..9ccfacb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,8 +113,6 @@ IF(MSVC) ENDIF() ENDIF() STRING(REPLACE "/Zi" "/Z7" COMPILER_FLAGS ${COMPILER_FLAGS}) - MESSAGE (STATUS "CMAKE_${COMPILER}_FLAGS_${BUILD_TYPE}= ${COMPILER_FLAGS}") - SET(CMAKE_${COMPILER}_FLAGS_${BUILD_TYPE} ${COMPILER_FLAGS}) ENDIF() ENDFOREACH() ENDFOREACH() ================================================ FILE: ports/libmariadb/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ccfacb..4e28b38 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -219,7 +219,12 @@ INCLUDE(${CC_SOURCE_DIR}/cmake/SearchLibrary.cmake) # Compression plugins: ZSTD, ZLIB -INCLUDE(${CC_SOURCE_DIR}/cmake/FindZStd.cmake) +if(WITH_ZSTD) + find_package(ZSTD NAMES zstd REQUIRED) + set(ZSTD_LIBRARIES zstd::libzstd) +else() + set(ZSTD_FOUND 0) +endif() IF(WITH_EXTERNAL_ZLIB) IF(NOT ZLIB_FOUND) @@ -250,7 +255,7 @@ IF(UNIX) SEARCH_LIBRARY(LIBNSL gethostbyname_r "nsl_r;nsl") SEARCH_LIBRARY(LIBSOCKET setsockopt socket) FIND_PACKAGE(Threads) - SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARY} + SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${ZLIB_LIBRARIES} ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD}) SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBNSL} ${LIBBIND} ${LIBICONV} ${LIBSOCKET} ${CMAKE_DL_LIBS} ${LIBM} ${LIBPTHREAD}) @@ -307,7 +312,7 @@ IF(NOT WITH_SSL STREQUAL "OFF") ADD_DEFINITIONS(-DHAVE_OPENSSL -DHAVE_TLS) SET(SSL_SOURCES "${CC_SOURCE_DIR}/libmariadb/secure/openssl.c" "${CC_SOURCE_DIR}/libmariadb/secure/openssl_crypt.c") - SET(SSL_LIBRARIES ${OPENSSL_SSL_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY}) + SET(SSL_LIBRARIES ${OPENSSL_LIBRARIES}) IF(WIN32 AND EXISTS ${OPENSSL_INCLUDE_DIR}/openssl/applink.c) SET(HAVE_OPENSSL_APPLINK_C 1) ENDIF() @@ -371,7 +376,12 @@ ENDIF() IF(WITH_ICONV) IF(NOT WIN32) - INCLUDE(${CC_SOURCE_DIR}/cmake/FindIconv.cmake) + find_package(Iconv REQUIRED) + include_directories(${Iconv_INCLUDE_DIRS}) + set(ICONV_LIBRARIES "${Iconv_LIBRARIES}") + if(NOT Iconv_IS_BUILT_IN) + set(ICONV_EXTERNAL 1) + endif() ENDIF() ENDIF() @@ -431,7 +441,7 @@ ENDIF() INCLUDE(${CC_SOURCE_DIR}/plugins/CMakeLists.txt) ADD_SUBDIRECTORY(include) ADD_SUBDIRECTORY(libmariadb) -IF((NOT WIN32) OR CYGWIN) +IF(1) ADD_SUBDIRECTORY(mariadb_config) ENDIF() diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt index 852be8d..61ad0a6 100644 --- a/libmariadb/CMakeLists.txt +++ b/libmariadb/CMakeLists.txt @@ -293,7 +293,7 @@ SET(MARIADB_NONBLOCK_SYMBOLS # handle static plugins SET(LIBMARIADB_SOURCES ${LIBMARIADB_SOURCES} ${LIBMARIADB_PLUGIN_SOURCES}) -SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBMARIADB_PLUGIN_LIBS} ${ZSTD_LIBRARY} ${ZLIB_LIBRARY}) +SET(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBMARIADB_PLUGIN_LIBS} ${ZSTD_LIBRARIES} ${ZLIB_LIBRARIES}) MESSAGE(STATUS "SYSTEM_LIBS: ${SYSTEM_LIBS}") INCLUDE_DIRECTORIES(${LIBMARIADB_PLUGIN_INCLUDES}) ADD_DEFINITIONS(${LIBMARIADB_PLUGIN_DEFS}) diff --git a/mariadb_config/CMakeLists.txt b/mariadb_config/CMakeLists.txt index 4cb0ba9..c15838a 100644 --- a/mariadb_config/CMakeLists.txt +++ b/mariadb_config/CMakeLists.txt @@ -30,6 +30,22 @@ IF(${rllength} GREATER 0) LIST(REMOVE_DUPLICATES SYSTEM_LIBS) ENDIF() +set(REQUIRES_PRIVATE "" CACHE STRING "") +list(REMOVE_ITEM SYSTEM_LIBS ${ZLIB_LIBRARIES}) +string(APPEND REQUIRES_PRIVATE " zlib") +if(LIBM) + list(REMOVE_ITEM SYSTEM_LIBS ${LIBM}) + list(APPEND SYSTEM_LIBS "m") +endif() +if(WITH_SSL STREQUAL "OPENSSL") + list(REMOVE_ITEM SYSTEM_LIBS ${SSL_LIBRARIES}) + string(APPEND REQUIRES_PRIVATE " openssl") +endif() +if(WITH_ZSTD) + list(REMOVE_ITEM SYSTEM_LIBS ${ZSTD_LIBRARIES}) + string(APPEND REQUIRES_PRIVATE " libzstd") +endif() + FOREACH (LIB_NAME ${SYSTEM_LIBS}) GET_LIB_NAME(${LIB_NAME} LIB_OUT) SET(extra_dynamic_LDFLAGS "${extra_dynamic_LDFLAGS} ${LIB_OUT}") diff --git a/mariadb_config/libmariadb.pc.in b/mariadb_config/libmariadb.pc.in index 968181a..3f0410d 100644 --- a/mariadb_config/libmariadb.pc.in +++ b/mariadb_config/libmariadb.pc.in @@ -16,5 +16,6 @@ Description: MariaDB Connector/C dynamic library Cflags: -I${includedir} Libs: -L${libdir} -lmariadb Libs.private: @extra_dynamic_LDFLAGS@ +Requires.private: @REQUIRES_PRIVATE@ ================================================ FILE: ports/libmariadb/disable-mariadb_config.diff ================================================ diff --git a/mariadb_config/CMakeLists.txt b/mariadb_config/CMakeLists.txt index 0a32343..4cb0ba9 100644 --- a/mariadb_config/CMakeLists.txt +++ b/mariadb_config/CMakeLists.txt @@ -58,9 +58,7 @@ ENDIF() # Installation # -INSTALL(TARGETS mariadb_config - DESTINATION "${INSTALL_BINDIR}" - COMPONENT Development) +set_target_properties(mariadb_config PROPERTIES EXCLUDE_FROM_ALL 1) # not portable INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmariadb.pc DESTINATION "${INSTALL_PCDIR}" ================================================ FILE: ports/libmariadb/library-linkage.diff ================================================ diff --git a/libmariadb/CMakeLists.txt b/libmariadb/CMakeLists.txt index 61ad0a6..bbad89a 100644 --- a/libmariadb/CMakeLists.txt +++ b/libmariadb/CMakeLists.txt @@ -494,7 +494,9 @@ IF(WITH_MYSQLCOMPAT) ENDIF() ENDIF() +if(NOT BUILD_SHARED_LIBS) create_symlink(libmariadb${CMAKE_STATIC_LIBRARY_SUFFIX} mariadbclient ${INSTALL_LIBDIR}) +endif() SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION ${CPACK_PACKAGE_VERSION_MAJOR} @@ -502,27 +504,44 @@ SET_TARGET_PROPERTIES(libmariadb PROPERTIES VERSION IF(NOT WIN32) SET_TARGET_PROPERTIES(mariadbclient PROPERTIES OUTPUT_NAME "${LIBMARIADB_STATIC_NAME}") +elseif(MINGW) + set_target_properties(libmariadb PROPERTIES IMPORT_PREFIX "") ENDIF() +if(NOT BUILD_SHARED_LIBS) +set_target_properties(libmariadb PROPERTIES EXCLUDE_FROM_ALL 1) +target_include_directories(mariadbclient PUBLIC $) INSTALL(TARGETS mariadbclient + EXPORT unofficial-libmariadb-targets COMPONENT Development + ARCHIVE DESTINATION ${INSTALL_LIBDIR}) +else() +set_target_properties(mariadbclient PROPERTIES EXCLUDE_FROM_ALL 1) +target_include_directories(libmariadb PUBLIC $) IF(WIN32) INSTALL(TARGETS libmariadb + EXPORT unofficial-libmariadb-targets COMPONENT SharedLibraries + RUNTIME DESTINATION ${INSTALL_BINDIR} + LIBRARY DESTINATION ${INSTALL_LIBDIR} + ARCHIVE DESTINATION ${INSTALL_LIBDIR}) ELSE() # in cmake 3.12+ we can use #INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR} # COMPONENT SharedLibraries NAMELINK_COMPONENT Development) # but as long as we build on CentOS 7 with its cmake 2.8.12.2 we have to use -INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR} +INSTALL(TARGETS libmariadb + EXPORT unofficial-libmariadb-targets + LIBRARY DESTINATION ${INSTALL_LIBDIR} COMPONENT SharedLibraries NAMELINK_SKIP) INSTALL(TARGETS libmariadb LIBRARY DESTINATION ${INSTALL_LIBDIR} COMPONENT Development NAMELINK_ONLY) ENDIF() +endif() -IF(MSVC) +IF(0) # On Windows, install PDB INSTALL(FILES $ DESTINATION "${INSTALL_LIBDIR}" CONFIGURATIONS Debug RelWithDebInfo ================================================ FILE: ports/libmariadb/no-abs-path.diff ================================================ diff --git a/include/mariadb_version.h.in b/include/mariadb_version.h.in index a82dbb7..e9005fa 100644 --- a/include/mariadb_version.h.in +++ b/include/mariadb_version.h.in @@ -30,7 +30,7 @@ #define MARIADB_PACKAGE_VERSION_ID @MARIADB_PACKAGE_VERSION_ID@ #define MARIADB_SYSTEM_TYPE "@CMAKE_SYSTEM_NAME@" #define MARIADB_MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@" -#define MARIADB_PLUGINDIR "@CMAKE_INSTALL_PREFIX@/@INSTALL_PLUGINDIR@" +#define MARIADB_PLUGINDIR "../@INSTALL_PLUGINDIR@" /* mysqld compile time options */ #ifndef MYSQL_CHARSET ================================================ FILE: ports/libmariadb/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/libmysql") message(FATAL_ERROR "FATAL ERROR: libmysql and libmariadb are incompatible.") endif() if(VCPKG_TARGET_IS_WINDOWS AND "openssl" IN_LIST FEATURES) message(WARNING "Using OpenSSL instead of schannel.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mariadb-corporation/mariadb-connector-c REF "v${VERSION}" SHA512 7283ade71a80fb577558e36405621c51caf268ea96b501c9d98c1bb40c474e037a66fccca61a274b358ee2dbb5133e2458cb12dda3a349a3390ef40eb9f3c4b1 HEAD_REF 3.4 PATCHES compiler-flags.diff dependencies.diff disable-mariadb_config.diff library-linkage.diff cmake-export.diff no-abs-path.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindIconv.cmake" "${SOURCE_PATH}/external/zlib" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES iconv WITH_ICONV zstd WITH_ZSTD ) string(TOUPPER "${VCPKG_LIBRARY_LINKAGE}" plugin_type) set(zstd_plugin_type OFF) if("zstd" IN_LIST FEATURES) set(zstd_plugin_type ${plugin_type}) endif() if("openssl" IN_LIST FEATURES) set(WITH_SSL OPENSSL) else() set(WITH_SSL SCHANNEL) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF -DINSTALL_INCLUDEDIR=include/mysql # legacy port decision -DINSTALL_LIBDIR=lib -DINSTALL_PLUGINDIR=plugins/${PORT} -DWITH_CURL=OFF -DWITH_EXTERNAL_ZLIB=ON -DWITH_SSL=${WITH_SSL} -DWITH_UNIT_TESTS=OFF # plugins/auth -DCLIENT_PLUGIN_AUTH_GSSAPI_CLIENT=OFF -DCLIENT_PLUGIN_CACHING_SHA2_PASSWORD=${plugin_type} -DCLIENT_PLUGIN_CLIENT_ED25519=DYNAMIC # want ${plugin_type}, but STATIC fails -DCLIENT_PLUGIN_DIALOG=${plugin_type} -DCLIENT_PLUGIN_PARSEC=OFF -DCLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD=${plugin_type} -DCLIENT_PLUGIN_MYSQL_OLD_PASSWORD=OFF -DCLIENT_PLUGIN_SHA256_PASSWORD=${plugin_type} # plugins/compress -DCLIENT_PLUGIN_ZSTD=${zstd_plugin_type} # don't add system include dirs -DAUTH_GSSAPI_PLUGIN_TYPE=OFF -DREMOTEIO_PLUGIN_TYPE=OFF MAYBE_UNUSED_VARIABLES AUTH_GSSAPI_PLUGIN_TYPE CLIENT_PLUGIN_AUTH_GSSAPI_CLIENT CLIENT_PLUGIN_PARSEC CLIENT_PLUGIN_ZSTD ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libmariadb) vcpkg_fixup_pkgconfig() set(link_lib " -lmariadb") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(link_lib " -llibmariadb") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(APPEND link_lib "client") endif() if(NOT link_lib STREQUAL " -lmariadb") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libmariadb.pc" " -lmariadb" "${link_lib}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libmariadb.pc" " -lmariadb" "${link_lib}") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/libmariadb/vcpkg.json ================================================ { "name": "libmariadb", "version-semver": "3.4.8", "description": "MariaDB Connector/C is used to connect C/C++ applications to MariaDB and MySQL databases", "homepage": "https://github.com/mariadb-corporation/mariadb-connector-c", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "libmariadb", "features": [ "iconv" ], "platform": "windows" }, { "name": "libmariadb", "features": [ "openssl" ], "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "iconv": { "description": "Enables character set conversion", "dependencies": [ { "name": "libiconv", "platform": "!windows" } ] }, "openssl": { "description": "Use OpenSSL", "dependencies": [ "openssl" ] }, "zstd": { "description": "Build zstd compression plugin.", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libmatio-cpp/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e61060..02c714f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,7 +91,8 @@ if(NOT CMAKE_CONFIGURATION_TYPES) endif() ## Dependencies -find_package(MATIO REQUIRED) +find_package(PkgConfig REQUIRED) +pkg_check_modules(matio REQUIRED IMPORTED_TARGET matio) find_package(Eigen3 QUIET) if (Eigen3_FOUND) @@ -100,10 +101,10 @@ endif() # Fetching visit_struct include(CMakeDependentOption) -find_package(visit_struct QUIET) -option(USE_SYSTEM_visit_struct "Use system visit_struct" ${visit_struct_FOUND}) +find_package(unofficial-visit_struct QUIET) +option(USE_SYSTEM_visit_struct "Use system visit_struct" ${unofficial-visit_struct_FOUND}) if(USE_SYSTEM_visit_struct) - find_package(visit_struct REQUIRED) + find_package(unofficial-visit_struct REQUIRED) else() include(FetchContent) FetchContent_Declare(visit_struct @@ -182,8 +183,14 @@ target_include_directories(matioCpp PUBLIC "$" "$/${CMAKE_INSTALL_INCLUDEDIR}>") -target_link_libraries(matioCpp PUBLIC MATIO::MATIO visit_struct::visit_struct) -list(APPEND MATIOCPP_DEPENDENCIES MATIO visit_struct) + +target_link_libraries(matioCpp PUBLIC unofficial::visit_struct::visit_struct) +# Avoid propagating pkg-config dependencies down the line. +get_target_property(matio_LINK_LIBRARIES PkgConfig::matio INTERFACE_LINK_LIBRARIES) +target_include_directories(matioCpp PUBLIC ${matio_INCLUDE_DIRS}) +target_link_libraries(matioCpp PUBLIC ${matio_LINK_LIBRARIES}) + +list(APPEND MATIOCPP_DEPENDENCIES PkgConfig::matio unofficial-visit_struct) if (Eigen3_FOUND) target_link_libraries(matioCpp PUBLIC Eigen3::Eigen) @@ -208,7 +215,7 @@ add_library(matioCpp::matioCpp ALIAS matioCpp) # Specify installation targets, typology and destination folders. install(TARGETS matioCpp - EXPORT matioCppTargets + EXPORT matioCppTargets DESTINATION share/matioCpp COMPONENT runtime LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib @@ -216,22 +223,15 @@ install(TARGETS matioCpp PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/matioCpp/" COMPONENT dev PRIVATE_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/matioCpp/impl" COMPONENT dev) -install(FILES "cmake/FindMATIO.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/matioCpp/cmake") -file(COPY "cmake/FindMATIO.cmake" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/share/matioCpp/cmake") - -install(FILES "cmake/Findvisit_struct.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/matioCpp/cmake") -file(COPY "cmake/Findvisit_struct.cmake" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/share/matioCpp/cmake") - -include(InstallBasicPackageFiles) +include(CMakePackageConfigHelpers) +configure_package_config_file(matioCppConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/matioCppConfig.cmake + INSTALL_DESTINATION share/matioCpp +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/matioCppConfig.cmake" DESTINATION share/matioCpp) +install(EXPORT matioCppTargets + NAMESPACE matioCpp:: + DESTINATION share/matioCpp) -install_basic_package_files(${PROJECT_NAME} - VERSION ${${PROJECT_NAME}_VERSION} - EXPORT matioCppTargets - COMPATIBILITY AnyNewerVersion - VARS_PREFIX ${PROJECT_NAME} - NO_CHECK_REQUIRED_COMPONENTS_MACRO - DEPENDENCIES ${MATIOCPP_DEPENDENCIES} - OVERRIDE_MODULE_PATH ${CMAKE_INSTALL_PREFIX}/share/matioCpp/cmake) # Add the uninstall target include(AddUninstallTarget) ================================================ FILE: ports/libmatio-cpp/matioCppConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) # matio already included with targets find_dependency(unofficial-visit_struct) find_dependency(Eigen3) include("${CMAKE_CURRENT_LIST_DIR}/matioCppTargets.cmake") ================================================ FILE: ports/libmatio-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ami-iit/matio-cpp REF "v${VERSION}" SHA512 efae9cec18b44291625f0770dabe8fd23c5b1d7cf77849cab827880ca96328430d4146014ace82d443bbc00cc313fd23cd5d67a7f1b58235efa7b5cb291a8ea4 HEAD_REF master PATCHES fix-dependencies.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/matioCppConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME matioCpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libmatio-cpp/usage ================================================ libmatio-cpp provides CMake targets: find_package(matioCpp REQUIRED) target_link_libraries(yourTarget PRIVATE matioCpp::matioCpp) ================================================ FILE: ports/libmatio-cpp/vcpkg.json ================================================ { "name": "libmatio-cpp", "version": "0.3.0", "description": "matio-cpp is a C++ wrapper for the matio library, automatically dealing with memory allocation and deallocation. It can be used for reading and writing binary MATLAB .mat files from C++, without the need to access or rely on MATLAB's own shared libraries.", "homepage": "https://github.com/ami-iit/matio-cpp", "license": "BSD-2-Clause", "dependencies": [ "eigen3", "matio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "visit-struct" ] } ================================================ FILE: ports/libmaxminddb/fix-link-thread.patch ================================================ diff --git a/bin/CMakeLists.txt b/bin/CMakeLists.txt index ea69ce3..94fc75a 100644 --- a/bin/CMakeLists.txt +++ b/bin/CMakeLists.txt @@ -13,7 +13,8 @@ if(NOT MSVC) target_compile_definitions(mmdblookup PRIVATE PACKAGE_VERSION="${PROJECT_VERSION}") - target_link_libraries(mmdblookup maxminddb pthread) + find_package(Threads) + target_link_libraries(mmdblookup maxminddb Threads::Threads) if (MAXMINDDB_INSTALL) install( ================================================ FILE: ports/libmaxminddb/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO maxmind/libmaxminddb REF "${VERSION}" SHA512 1ff3f22d40f9486089c598c0b57989879c006240f6782fe3ecd35f8bd0474323359f5ebafc000d046ec8d475da28411e632b7004bd6b3101ca2e4fed76f55af3 HEAD_REF main PATCHES fix-link-thread.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_SHARED_LIBRARY_PREFIX=lib -DCMAKE_STATIC_LIBRARY_PREFIX=lib OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/maxminddb PACKAGE_NAME maxminddb) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmaxminddb/vcpkg.json ================================================ { "name": "libmaxminddb", "version": "1.13.3", "description": "C library for the MaxMind DB file format", "homepage": "https://github.com/maxmind/libmaxminddb", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libmediainfo/dependencies.diff ================================================ diff --git a/Project/CMake/CMakeLists.txt b/Project/CMake/CMakeLists.txt index 700dce3..449a6dd 100644 --- a/Project/CMake/CMakeLists.txt +++ b/Project/CMake/CMakeLists.txt @@ -80,7 +80,7 @@ endif() set(MediaInfoLib_SOURCES_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../Source) # use bundled tinyxml only if no system -find_package(TinyXML) +find_package(TinyXML NAMES TinyXML2 REQUIRED) # use system curl if is present find_package(CURL) @@ -389,8 +389,7 @@ target_compile_definitions(mediainfo PRIVATE FMT_UNICODE=0) if(NOT CURL_FOUND) target_compile_definitions(mediainfo PRIVATE MEDIAINFO_LIBCURL_NO) else() - include_directories(${CURL_INCLUDE_DIRS}) - target_link_libraries(mediainfo ${CURL_LIBRARIES}) + target_link_libraries(mediainfo PRIVATE CURL::libcurl) set(CURL_PC " libcurl") set(CURL_LIB " -lcurl") endif() @@ -411,14 +410,14 @@ target_include_directories(mediainfo PRIVATE if(NOT TinyXML_FOUND) target_include_directories(mediainfo PRIVATE ${MediaInfoLib_SOURCES_PATH}/ThirdParty/tinyxml2/) else() - target_link_libraries(mediainfo "${TinyXML_LIBRARIES}") + target_link_libraries(mediainfo PRIVATE tinyxml2::tinyxml2) endif() if(BUILD_ZENLIB) target_include_directories(mediainfo PRIVATE ${ZLIB_INCLUDE_DIRS}) endif() -target_link_libraries(mediainfo ${ZenLib_LIBRARY} ${ZLIB_LIBRARIES}) +target_link_libraries(mediainfo PUBLIC zen PRIVATE ZLIB::ZLIB) if(MSVC AND BUILD_SHARED_LIBS) install(FILES $ DESTINATION ${BIN_INSTALL_DIR} OPTIONAL) diff --git a/Project/CMake/MediaInfoLibConfig.cmake.in b/Project/CMake/MediaInfoLibConfig.cmake.in index 76fec5d..97d8286 100644 --- a/Project/CMake/MediaInfoLibConfig.cmake.in +++ b/Project/CMake/MediaInfoLibConfig.cmake.in @@ -1,3 +1,11 @@ +include(CMakeFindDependencyMacro) +find_dependency(tinyxml2 CONFIG) +find_dependency(ZenLib CONFIG) +find_dependency(ZLIB) +if("@VCPKG_LOCK_FIND_PACKAGE_CURL@") + find_dependency(CURL) +endif() + # known at buildtime set(MediaInfoLib_VERSION "@MediaInfoLib_VERSION@") set(MediaInfoLib_VERSION_MAJOR @MediaInfoLib_MAJOR_VERSION@) diff --git a/Project/CMake/libmediainfo.pc.in b/Project/CMake/libmediainfo.pc.in index 31e53fe..2382088 100644 --- a/Project/CMake/libmediainfo.pc.in +++ b/Project/CMake/libmediainfo.pc.in @@ -8,6 +8,6 @@ Name: libmediainfo Version: @MediaInfoLib_VERSION@ Description: MediaInfoLib Requires: libzen -Requires.private:@CURL_PC@ -Libs: -L${libdir} -lmediainfo -lz +Requires.private: @CURL_PC@ tinyxml2 zlib +Libs: -L${libdir} -lmediainfo Cflags: -I${includedir} ================================================ FILE: ports/libmediainfo/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([1-9])\$" "\\1.0\\2" MEDIAINFO_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MediaArea/MediaInfoLib REF "v${MEDIAINFO_VERSION}" SHA512 fec7b3107b34b2d2235e85fb610e9f6d7f51065cc3c07eb2bd22df8a8b8476ced13ef050b0ecd5dadd7997a740b4402d97367ab06031e540ca09bece6165430d HEAD_REF master PATCHES dependencies.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/Source/ThirdParty/tinyxml2") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES curl VCPKG_LOCK_FIND_PACKAGE_CURL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Project/CMake" OPTIONS ${options} -DBUILD_ZENLIB=0 -DBUILD_ZLIB=0 -DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME mediainfolib) vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libmediainfo.pc" " -lmediainfo" " -lmediainfod") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmediainfo/vcpkg.json ================================================ { "name": "libmediainfo", "version": "26.1", "description": "Get most relevant technical and tag data from video and audio files", "homepage": "https://github.com/MediaArea/MediaInfoLib", "dependencies": [ "libzen", "tinyxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "curl": { "description": "Use curl for network access", "dependencies": [ { "name": "curl", "default-features": false } ] } } } ================================================ FILE: ports/libmem/0001-CMakeLists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 60b4da8..13141a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.22.1) -include(ExternalProject) +set(CMAKE_CXX_STANDARD 17) project(libmem LANGUAGES @@ -49,6 +49,7 @@ message(STATUS message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") +if(0) # External dependencies set(EXTERNAL_DEPENDENCIES_DIR "${PROJECT_SOURCE_DIR}/external") set(CAPSTONE_DIR "${EXTERNAL_DEPENDENCIES_DIR}/capstone") @@ -66,6 +67,7 @@ set_target_properties(capstone PROPERTIES IMPORTED_LOCATION ${CAPSTONE_IMPORT_DI add_library(keystone STATIC IMPORTED) set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX}) # End of external dependencies +endif() set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}") set(LIBMEM_INC "${LIBMEM_DIR}/include") @@ -73,7 +75,7 @@ set(INTERNAL_DIR "${LIBMEM_DIR}/internal") set(COMMON_DIR "${LIBMEM_DIR}/src/common") if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) - if(${LIBMEM_ARCH} STREQUAL AMD64 OR ${LIBMEM_ARCH} STREQUAL X86 OR ${LIBMEM_ARCH} STREQUAL x86_64 OR ${LIBMEM_ARCH} STREQUAL i686 OR ${LIBMEM_ARCH} STREQUAL i386) + if(${LIBMEM_ARCH} STREQUAL AMD64 OR ${LIBMEM_ARCH} STREQUAL x86 OR ${LIBMEM_ARCH} STREQUAL x86_64 OR ${LIBMEM_ARCH} STREQUAL i686 OR ${LIBMEM_ARCH} STREQUAL i386) set(LIBMEM_ARCH_SRC "${LIBMEM_DIR}/src/common/arch/x86.c") elseif(${LIBMEM_ARCH} STREQUAL aarch64) set(LIBMEM_ARCH_SRC "${LIBMEM_DIR}/src/common/arch/aarch64.c") @@ -108,10 +110,16 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) file(GLOB LIBMEM_SRC ${LIBMEM_ARCH_SRC} "${LIBMEM_DIR}/src/freebsd/*.c" "${LIBMEM_DIR}/src/freebsd/ptrace/*.c" "${LIBMEM_DIR}/src/common/*.c" "${LIBMEM_DIR}/src/common/*.cpp" "${INTERNAL_DIR}/posixutils/*.c" "${INTERNAL_DIR}/elfutils/*.c" "${INTERNAL_DIR}/demangler/*.cpp") endif() +find_package(PkgConfig) +pkg_check_modules(keystone REQUIRED IMPORTED_TARGET keystone) +find_package(capstone CONFIG REQUIRED) +find_package(LLVM CONFIG REQUIRED) +target_compile_definitions(LLVMDemangle INTERFACE ${LLVM_DEFINITIONS}) +target_include_directories(LLVMDemangle INTERFACE ${LLVM_INCLUDE_DIRS}) set(LIBMEM_DEPS - capstone - keystone - llvm + capstone::capstone + PkgConfig::keystone + LLVMDemangle ) if (LIBMEM_BUILD_STATIC) @@ -123,9 +131,6 @@ target_include_directories(libmem PRIVATE "${LIBMEM_DIR}/src" "${INTERNAL_DIR}" include_directories(${PROJECT_SOURCE_DIR} ${LIBMEM_INC} - ${CAPSTONE_INC} - ${KEYSTONE_INC} - ${LLVM_INC} ) if (LIBMEM_BUILD_TESTS) @@ -135,10 +140,6 @@ endif() set_target_properties(libmem PROPERTIES POSITION_INDEPENDENT_CODE True INCLUDES ${LIBMEM_INC}) target_compile_definitions(libmem PUBLIC LM_EXPORT) -add_dependencies(libmem - capstone-engine - keystone-engine -) if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) set(LIBMEM_DEPS @@ -171,7 +172,7 @@ else() endif() target_link_libraries(libmem ${LIBMEM_DEPS}) -if(LIBMEM_BUILD_STATIC) +if(0) # Create a bundled static library containing all dependencies (to mimic the shared library behavior) set_target_properties(libmem PROPERTIES OUTPUT_NAME "libmem_partial") set(libmem_bundle_files "$") @@ -212,7 +213,7 @@ if(LIBMEM_BUILD_STATIC) endif() endif() -if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) +if(0) if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN) cmake_path(SET CMAKE_INSTALL_PREFIX "$ENV{ProgramFiles}") else() @@ -221,14 +222,27 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN endif() set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmem") execute_process(COMMAND mkdir "${CMAKE_INSTALL_PREFIX}") -else() set(CMAKE_INSTALL_PREFIX "/usr") endif() -install(TARGETS libmem - LIBRARY DESTINATION lib) -install(TARGETS libmem - RUNTIME DESTINATION lib) install(DIRECTORY ${LIBMEM_INC}/libmem DESTINATION include) +install(TARGETS libmem EXPORT libmem-targets + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin +) +install(EXPORT libmem-targets NAMESPACE libmem:: DESTINATION "share/libmem") +include(CMakePackageConfigHelpers) +configure_package_config_file( + "${CMAKE_CURRENT_LIST_DIR}/libmem-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake" + INSTALL_DESTINATION "share/libmem" +) +write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY SameMajorVersion) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" + DESTINATION "share/libmem" +) ================================================ FILE: ports/libmem/libmem-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(capstone CONFIG) find_dependency(PkgConfig) pkg_check_modules(keystone REQUIRED IMPORTED_TARGET keystone) find_dependency(LLVM CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/libmem-targets.cmake") ================================================ FILE: ports/libmem/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rdbo/libmem REF "${VERSION}" SHA512 1accb68bf0af12079c273f88af451e0eebd1550ba166b2821ea63fb810bf0debb95cef406d6624605b831a7e7adb7523ae2c267a0b67c5a6bdfff45f4c6221f4 HEAD_REF master PATCHES 0001-CMakeLists.patch ) file(REMOVE "${SOURCE_PATH}/PreLoad.cmake") file(COPY "${CMAKE_CURRENT_LIST_DIR}/libmem-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_find_acquire_program(PKGCONFIG) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBMEM_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERSION=${VERSION} -DLIBMEM_BUILD_TESTS=OFF -DLIBMEM_DEEP_TESTS=OFF -DLIBMEM_BUILD_STATIC=${LIBMEM_BUILD_STATIC} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmem/vcpkg.json ================================================ { "name": "libmem", "version": "5.1.5", "description": "Advanced Game Hacking Library for C, Modern C++, Rust and Python (Windows/Linux/FreeBSD) (Process/Memory Hacking) (Hooking/Detouring) (Cross Platform) (x86/x64/ARM/ARM64) (DLL/SO Injection) (Internal/External) (Assembler/Disassembler)", "homepage": "https://github.com/rdbo/libmem", "license": "AGPL-3.0-only", "supports": "(!xbox & windows) | linux | freebsd | android", "dependencies": [ "capstone", "keystone", { "name": "llvm", "default-features": false, "features": [ "default-targets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true } ] } ================================================ FILE: ports/libmemcached-awesome/in_port_t.diff ================================================ diff --git a/include/libmemcached-1.0/struct/server.h b/include/libmemcached-1.0/struct/server.h index 9a27c9c9..69d9696d 100644 --- a/include/libmemcached-1.0/struct/server.h +++ b/include/libmemcached-1.0/struct/server.h @@ -21,6 +21,10 @@ # include #endif +#ifdef HAVE_IN_PORT_T +# include +#endif + #ifdef NI_MAXHOST # define MEMCACHED_NI_MAXHOST NI_MAXHOST #else ================================================ FILE: ports/libmemcached-awesome/no-static-exports.diff ================================================ diff --git a/include/libhashkit-1.0/visibility.h b/include/libhashkit-1.0/visibility.h index dce8c097..6eeb7314 100644 --- a/include/libhashkit-1.0/visibility.h +++ b/include/libhashkit-1.0/visibility.h @@ -23,7 +23,10 @@ * HASHKIT_LOCAL is used for non-api symbols. */ -#if defined(BUILDING_HASHKIT) +#if defined(HASHKIT_STATIC) +# define HASHKIT_API +# define HASHKIT_LOCAL +#elif defined(BUILDING_HASHKIT) # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY # define HASHKIT_API __attribute__((visibility("default"))) # define HASHKIT_LOCAL __attribute__((visibility("hidden"))) @@ -45,4 +48,4 @@ # define HASHKIT_API # define HASHKIT_LOCAL # endif /* defined(_MSC_VER) */ -#endif /* defined(BUILDING_HASHKIT) */ +#endif /* defined(HASHKIT_STATIC) */ diff --git a/include/libmemcached-1.0/visibility.h b/include/libmemcached-1.0/visibility.h index 62c4ea22..4495aa04 100644 --- a/include/libmemcached-1.0/visibility.h +++ b/include/libmemcached-1.0/visibility.h @@ -23,7 +23,10 @@ * LIBMEMCACHED_LOCAL is used for non-api symbols. */ -#if defined(BUILDING_LIBMEMCACHEDINTERNAL) +#if defined(LIBMEMCACHED_STATIC) +# define LIBMEMCACHED_API +# define LIBMEMCACHED_LOCAL +#elif defined(BUILDING_LIBMEMCACHEDINTERNAL) # if defined(HAVE_VISIBILITY) && HAVE_VISIBILITY # define LIBMEMCACHED_API __attribute__((visibility("default"))) # define LIBMEMCACHED_LOCAL __attribute__((visibility("default"))) @@ -61,4 +64,4 @@ # define LIBMEMCACHED_LOCAL # endif /* defined(_MSC_VER) */ # endif /* defined(BUILDING_LIBMEMCACHED) */ -#endif /* defined(BUILDING_LIBMEMCACHEDINTERNAL) */ +#endif /* defined(LIBMEMCACHED_STATIC) */ diff --git a/src/libhashkit/CMakeLists.txt b/src/libhashkit/CMakeLists.txt index 455570af..c0d9d743 100644 --- a/src/libhashkit/CMakeLists.txt +++ b/src/libhashkit/CMakeLists.txt @@ -30,6 +30,9 @@ set_target_properties(libhashkit PROPERTIES SOVERSION ${LIBHASHKIT_SO_SOVERSION} VERSION ${LIBHASHKIT_SO_VERSION}) target_compile_options(libhashkit PRIVATE -DBUILDING_HASHKIT) +if(NOT BUILD_SHARED_LIBS) + target_compile_options(libhashkit PUBLIC -DHASHKIT_STATIC) +endif() target_include_directories(libhashkit PRIVATE ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src diff --git a/src/libmemcached/CMakeLists.txt b/src/libmemcached/CMakeLists.txt index 05116ae8..a1a2ac00 100644 --- a/src/libmemcached/CMakeLists.txt +++ b/src/libmemcached/CMakeLists.txt @@ -94,6 +94,9 @@ set_target_properties(libmemcached PROPERTIES SOVERSION ${LIBMEMCACHED_SO_SOVERSION} VERSION ${LIBMEMCACHED_SO_VERSION}) target_compile_definitions(libmemcached PRIVATE -DBUILDING_LIBMEMCACHED) +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(libmemcached PUBLIC -DLIBMEMCACHED_STATIC) +endif() target_link_libraries(libmemcached PUBLIC libhashkit Threads::Threads ${CMAKE_DL_LIBS}) target_link_libraries(libmemcached PRIVATE p9y) if(MSVC) ================================================ FILE: ports/libmemcached-awesome/p9y-targets.diff ================================================ diff --git a/support/libmemcached-config.cmake.in b/support/libmemcached-config.cmake.in index d6fd629b..31e8c8be 100644 --- a/support/libmemcached-config.cmake.in +++ b/support/libmemcached-config.cmake.in @@ -3,6 +3,7 @@ include(CMakeFindDependencyMacro) find_dependency(Threads) +include(${CMAKE_CURRENT_LIST_DIR}/p9y-targets.cmake) include(${CMAKE_CURRENT_LIST_DIR}/libhashkit-targets.cmake) include(${CMAKE_CURRENT_LIST_DIR}/libmemcached-targets.cmake) include(${CMAKE_CURRENT_LIST_DIR}/libmemcachedprotocol-targets.cmake) ================================================ FILE: ports/libmemcached-awesome/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO awesomized/libmemcached REF ${VERSION} SHA512 0a10a2431142ec6e4547f82fdd35b55c018264e5f8c39910a65252c3f53d862fb5945e7a671951915aac076767cc995740b3e499eb584017a38eb2d1e82171fb HEAD_REF v1.x PATCHES in_port_t.diff no-static-exports.diff p9y-targets.diff ) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) # Options are initialized from env variables. Control env. foreach(var IN ITEMS BUILD_TESTING BUILD_DOCSONLY BUILD_DOCS BUILD_DOCS_HTML BUILD_DOCS_MAN BUILD_DOCS_MANGZ ENABLE_SASL ENABLE_DTRACE ENABLE_HASH_HSIEH ENABLE_OPENSSL_CRYPTO # Extra deps: pthreads, libevent ENABLE_MEMASLAP ) set(ENV{${var}} OFF) endforeach() set(ENV{ENABLE_SANITIZERS} "") set(ENV{ENABLE_HASH_FNV64} ON) set(ENV{ENABLE_HASH_MURMUR} ON) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBISON_EXECUTABLE=${BISON}" "-DFLEX_EXECUTABLE=${FLEX}" "-DVCPKG_LOCK_FIND_PACKAGE_Backtrace=OFF" "-DVCPKG_LOCK_FIND_PACKAGE_PkgConfig=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libmemcached-awesome") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES memcapable memcat memcp memdump memerror memexist memflush memparse memping memrm memslap memstat memtouch) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libmemcached-1.0/visibility.h" "#if defined(LIBMEMCACHED_STATIC)" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libhashkit-1.0/visibility.h" "#if defined(HASHKIT_STATIC)" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmemcached-awesome/vcpkg.json ================================================ { "name": "libmemcached-awesome", "version": "1.1.4", "description": "Open source C/C++ client library and tools for the memcached server", "homepage": "https://awesomized.github.io/libmemcached/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libmicrodns/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO videolabs/libmicrodns REF 0.2.0 SHA512 6389ad9edaf1af7c831e8c05e4800964b13cf0eed2063fa3675e7b87c49428ae7b68ac4ed1e742ed5d46ea3ded190e3de076e73ebf167422505257d7b1a03e25 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() configure_file("${SOURCE_PATH}/COPYING" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/libmicrodns/vcpkg.json ================================================ { "name": "libmicrodns", "version": "0.2.0", "port-version": 2, "description": "Minimal mDNS resolver (and announcer) library", "homepage": "https://github.com/videolabs/libmicrodns", "license": "LGPL-2.1-or-later", "supports": "!xbox & !uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libmicrohttpd/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-${VERSION}.tar.gz" FILENAME "libmicrohttpd-${VERSION}.tar.gz" SHA512 7092f307a00ba04b539be79a7c94ddf9b4b6e43343a66da49c6602fa860f77cf7f9017d7e40f9b7400d85a828a503248eb12dd121413aad68133003a20bb2c4a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES remove_pdb_install.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(CFG_SUFFIX "dll") else() set(CFG_SUFFIX "static") endif() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH w32/VS-Any-Version/libmicrohttpd.vcxproj RELEASE_CONFIGURATION "Release-${CFG_SUFFIX}" DEBUG_CONFIGURATION "Debug-${CFG_SUFFIX}" ) file(GLOB MICROHTTPD_HEADERS "${SOURCE_PATH}/src/include/microhttpd.h") file(COPY ${MICROHTTPD_HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include") else() vcpkg_list(SET config_args) if(VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(ENV{LIBS} "$ENV{LIBS} -framework Foundation -framework AppKit") # TODO: Get this from the extracted cmake vars somehow endif() if("https" IN_LIST FEATURES) vcpkg_list(APPEND config_args "--enable-https") else() vcpkg_list(APPEND config_args "--disable-https") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-doc --disable-examples --disable-curl --disable-tools ${config_args} OPTIONS_DEBUG --enable-asserts OPTIONS_RELEASE --disable-asserts ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libmicrohttpd/remove_pdb_install.patch ================================================ diff --git a/w32/common/libmicrohttpd-build-settings.props b/w32/common/libmicrohttpd-build-settings.props index 97d84a87f..8ffcb19c4 100644 --- a/w32/common/libmicrohttpd-build-settings.props +++ b/w32/common/libmicrohttpd-build-settings.props @@ -37,10 +37,6 @@ Ws2_32.lib - - xcopy /F /I /Y "$(IntermediateOutputPath)$(TargetName).pdb" "$(OutputPath)" - Copy .pdb to output directory - ================================================ FILE: ports/libmicrohttpd/vcpkg.json ================================================ { "name": "libmicrohttpd", "version": "1.0.2", "description": "GNU libmicrohttpd is a small C library that is supposed to make it easy to run an HTTP server as part of another application", "homepage": "https://www.gnu.org/software/libmicrohttpd/", "license": "LGPL-2.1-or-later", "supports": "!(arm & windows) & !uwp", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ], "features": { "https": { "description": "Enable HTTPS protocol support", "supports": "!windows | mingw", "dependencies": [ "libgnutls" ] } } } ================================================ FILE: ports/libmidi2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO midi2-dev/AM_MIDI2.0Lib REF "v${VERSION}" SHA512 d7a30cad1071dcd5b07f9c1aec06f2f53424b076517d47760629766652e75ac46ab75324d4bd14a7601b92e5f0a213264e36c59517f2ba12dcf4d28ba7ebf8b2 HEAD_REF main ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmidi2/vcpkg.json ================================================ { "name": "libmidi2", "version": "0.15", "description": "General purpose Midi 2 library for bytestream conversions and midi-ci", "homepage": "https://github.com/midi2-dev/AM_MIDI2.0Lib", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libmikmod/find-openal.patch ================================================ From 505d9ebf6ad31d4f28ca0fbab6cf299a88d08036 Mon Sep 17 00:00:00 2001 From: dpogue Date: Sun, 24 Nov 2024 22:37:46 -0800 Subject: [PATCH] Use find_package for OpenAL --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53a174e..0be2166 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -799,7 +799,7 @@ ELSE() ENDIF(ENABLE_SDL) IF (ENABLE_OPENAL) - include(FindOpenAL) + find_package(OpenAL CONFIG) IF (OPENAL_FOUND) SET (DRV_OPENAL 1) CHECK_MULTI_INCLUDE_FILES("AL/al.h" "AL/alc.h") -- 2.45.2.windows.1 ================================================ FILE: ports/libmikmod/fix-missing-dll.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 53a174e..b4d31d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -856,11 +856,19 @@ INSTALL( ARCHIVE DESTINATION "lib${LIB_SUFFIX}" ) -INSTALL( - FILES "${CMAKE_BINARY_DIR}/libmikmod-config" - PERMISSIONS GROUP_EXECUTE GROUP_READ OWNER_EXECUTE OWNER_READ OWNER_WRITE WORLD_EXECUTE WORLD_READ - DESTINATION "bin" -) +IF(WIN32) + SET(LIB_SUFFIX_USED ".dll") +ELSEIF(UNIX) + SET(LIB_SUFFIX_USED ".so") +ELSEIF(APPLE) + SET(LIB_SUFFIX_USED ".dylib") +ELSE() + SET(LIB_SUFFIX_USED) +ENDIF() + +IF(NOT ENABLE_STATIC) + INSTALL(FILES "${CMAKE_BINARY_DIR}/mikmod${LIB_SUFFIX_USED}" DESTINATION "bin") +ENDIF() INSTALL( FILES ================================================ FILE: ports/libmikmod/name_conflict.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 53a174e..5983882 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -404,7 +404,7 @@ IF (ENABLE_STATIC) SET_TARGET_PROPERTIES( mikmod-static - PROPERTIES OUTPUT_NAME "mikmod" + PROPERTIES OUTPUT_NAME "mikmod-static" ) SET_TARGET_PROPERTIES( ${LIBMIKMOD_LIBS} ================================================ FILE: ports/libmikmod/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO mikmod/libmikmod REF 3.3.11.1 FILENAME "libmikmod-3.3.11.1.tar.gz" SHA512 f2439e2b691613847cd0787dd4e050116683ce7b05c215b8afecde5c6add819ea6c18e678e258c0a80786bef463f406072de15127f64368f694287a5e8e1a9de PATCHES fix-missing-dll.patch name_conflict.patch find-openal.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(ENABLE_STATIC ON) else() set(ENABLE_STATIC OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_DOC=OFF -DENABLE_THREADS=ON -DDISABLE_HQMIXER=OFF -DENABLE_AF=ON -DENABLE_AIFF=ON -DENABLE_NAS=ON -DENABLE_OPENAL=ON -DENABLE_PIPE=ON -DENABLE_RAW=ON -DENABLE_STDOUT=ON -DENABLE_WAV=ON -DOPENAL_INCLUDE_DIR="${CURRENT_INSTALLED_DIR}/include" -DENABLE_STATIC=${ENABLE_STATIC} OPTIONS_RELEASE -DENABLE_SIMD=ON OPTIONS_DEBUG -DENABLE_SIMD=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${SOURCE_PATH}/COPYING.LESSER" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libmikmod/vcpkg.json ================================================ { "name": "libmikmod", "version": "3.3.11.1", "port-version": 13, "description": "Mikmod is a module player and library supporting many formats, including mod, s3m, it, and xm.", "homepage": "https://sourceforge.net/projects/mikmod/", "license": "LGPL-2.1-or-later", "supports": "!(osx | uwp | xbox)", "dependencies": [ "openal-soft", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libmodbus/cflags.diff ================================================ diff --git a/configure.ac b/configure.ac index 920612f..06d5dfa 100644 --- a/configure.ac +++ b/configure.ac @@ -147,6 +147,7 @@ AC_CHECK_DECLS([TIOCSRS485], [], [], [[#include ]]) # Check for RTS flags AC_CHECK_DECLS([TIOCM_RTS], [], [], [[#include ]]) +test -n "$WARNING_CFLAGS" || \ WARNING_CFLAGS="-Wall \ -Wmissing-declarations -Wmissing-prototypes \ -Wnested-externs -Wpointer-arith \ @@ -178,6 +179,7 @@ AC_ARG_ENABLE([debug], [enable_debug=$enableval], [enable_debug=no]) +test -n "$CFLAGS" || \ AS_IF([test "x$enable_debug" = "xyes"], [ CFLAGS="-g -O0" CXXFLAGS="-g -O0" ================================================ FILE: ports/libmodbus/libmodbusConfig.cmake ================================================ message(WARNING "find_package(modbus) is unofficial. libmodbus provides a pkg-config module: libmodbus") if(NOT TARGET modbus) get_filename_component(VCPKG_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) find_library(Z_VCPKG_MODBUS_RELEASE NAMES modbus PATHS "${VCPKG_IMPORT_PREFIX}/lib" REQUIRED) find_library(Z_VCPKG_MODBUS_DEBUG NAMES modbus PATHS "${VCPKG_IMPORT_PREFIX}/debug/lib") mark_as_advanced(Z_VCPKG_MODBUS_RELEASE Z_VCPKG_MODBUS_DEBUG) add_library(modbus UNKNOWN IMPORTED) set_target_properties(modbus PROPERTIES IMPORTED_CONFIGURATIONS "Release" INTERFACE_INCLUDE_DIRECTORIES "${VCPKG_IMPORT_PREFIX}/include/modbus" IMPORTED_LOCATION_RELEASE "${Z_VCPKG_MODBUS_RELEASE}" IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C" ) if(Z_VCPKG_MODBUS_DEBUG) set_property(TARGET modbus APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) set_target_properties(modbus PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_MODBUS_DEBUG}" IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C" ) endif() if(WIN32) set_target_properties(modbus PROPERTIES INTERFACE_LINK_LIBRARIES "ws2_32" ) endif() endif() ================================================ FILE: ports/libmodbus/library-linkage.diff ================================================ diff --git a/configure.ac b/configure.ac index 9f30d29..29737da 100644 --- a/configure.ac +++ b/configure.ac @@ -120,6 +120,14 @@ AC_C_INLINE # libtool AC_PROG_CXX +if "$os_win32" = "true"; then + if test "$enable_shared" = "yes"; then + AC_DEFINE(DLLBUILD, [], [Building a DLL]) + else + AC_DEFINE(STATIC_LIBMODBUS, [], [Building a static library]) + fi +fi + # Various types AC_TYPE_INT64_T AC_TYPE_SIZE_T diff --git a/src/modbus.h b/src/modbus.h index fa7ec4a..ae204ce 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -25,6 +25,8 @@ # if defined(DLLBUILD) /* define DLLBUILD when building the DLL */ # define MODBUS_API __declspec(dllexport) +# elif defined(STATIC_LIBMODBUS) +# define MODBUS_API # else # define MODBUS_API __declspec(dllimport) # endif ================================================ FILE: ports/libmodbus/pkgconfig.diff ================================================ diff --git a/configure.ac b/configure.ac index 06d5dfa..f3122ac 100644 --- a/configure.ac +++ b/configure.ac @@ -133,6 +133,8 @@ if test "$os_cygwin" = "false"; then AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes) if test "x$HAVE_WINSOCK2_H" = "xyes"; then LIBS="$LIBS -lws2_32" + PC_LIBS_PRIVATE="$PC_LIBS_PRIVATE -lws2_32" + AC_SUBST(PC_LIBS_PRIVATE) AC_SUBST(LIBS) fi fi diff --git a/libmodbus.pc.in b/libmodbus.pc.in index f1a9cbf..f7b4d08 100644 --- a/libmodbus.pc.in +++ b/libmodbus.pc.in @@ -7,4 +7,5 @@ Name: modbus Description: Modbus library Version: @VERSION@ Libs: -L${libdir} -lmodbus +Libs.private: @PC_LIBS_PRIVATE@ Cflags: -I${includedir}/modbus ================================================ FILE: ports/libmodbus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stephane/libmodbus REF "v${VERSION}" SHA512 63f9a4ae2096f684a0adcc1d33f1b9090d0d531934944ef506106d11da760141b27d5916d59b3e1aa0d78def5c2673984b2aa43ebe4521aaa55f439f32dd7475 HEAD_REF master PATCHES cflags.diff library-linkage.diff pkgconfig.diff ssize_t.diff ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{WARNING_CFLAGS} "-D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NONSTDC_NO_DEPRECATE=1") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --enable-tests=no ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(COPY "${CURRENT_PORT_DIR}/libmodbusConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libmodbus") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/modbus/modbus.h" "defined(STATIC_LIBMODBUS)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/libmodbus/ssize_t.diff ================================================ diff --git a/src/modbus-private.h b/src/modbus-private.h index ea83187..db5a3dc 100644 --- a/src/modbus-private.h +++ b/src/modbus-private.h @@ -14,7 +14,9 @@ #else # include "stdint.h" # include +# ifndef ssize_t typedef int ssize_t; +# endif #endif // clang-format on #include ================================================ FILE: ports/libmodbus/vcpkg.json ================================================ { "name": "libmodbus", "version": "3.1.12", "description": "libmodbus is a free software library to send/receive data with a device which respects the Modbus protocol", "homepage": "https://github.com/stephane/libmodbus", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libmodman/fix-install-path.patch ================================================ diff --git a/libmodman/CMakeLists.txt b/libmodman/CMakeLists.txt index 0aff593..9e419ce 100644 --- a/libmodman/CMakeLists.txt +++ b/libmodman/CMakeLists.txt @@ -30,15 +30,15 @@ if(NOT WIN32 AND NOT APPLE) configure_file(libmodman-2.0.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libmodman-2.0.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmodman-2.0.pc - DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) + DESTINATION lib/pkgconfig) endif() # CMake Find helper -if (NOT WIN32 AND NOT APPLE) +if (1) configure_file(Findlibmodman.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Findlibmodman.cmake @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Findlibmodman.cmake - DESTINATION ${SHARE_INSTALL_DIR}/cmake/Modules) + DESTINATION share/${PROJECT_NAME}) endif() # Define the library itself @@ -50,8 +50,13 @@ if(NOT WIN32) target_link_libraries(modman dl) endif() set_target_properties(modman PROPERTIES PREFIX "lib" VERSION 1.0.0 SOVERSION 1) -install(TARGETS modman DESTINATION ${LIB_INSTALL_DIR}) -install(FILES module_manager.hpp module.hpp DESTINATION ${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}) +install( + TARGETS modman + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +install(FILES module_manager.hpp module.hpp DESTINATION include/${PROJECT_NAME}) ### Tests add_testdirectory(test) ================================================ FILE: ports/libmodman/fix-undefined-typeid.patch ================================================ diff --git a/libmodman/test/main.hpp b/libmodman/test/main.hpp index 90ca87f..f4f8844 100644 --- a/libmodman/test/main.hpp +++ b/libmodman/test/main.hpp @@ -20,6 +20,7 @@ #ifndef MAIN_HPP_ #define MAIN_HPP_ +#include #include "../module_manager.hpp" using namespace std; ================================================ FILE: ports/libmodman/portfile.cmake ================================================ # Enable static build in UNIX if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() set(LIBMODMAN_VER 2.0.1) vcpkg_download_distfile(ARCHIVE URLS "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libmodman/libmodman-${LIBMODMAN_VER}.zip" FILENAME "libmodman-${LIBMODMAN_VER}.zip" SHA512 1fecc0fa3637c4aa86d114f5bc991605172d39183fa0f39d8c7858ef5d0d894152025bd426de4dd017a41372d800bf73f53b2328c57b77352a508e12792729fa ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tests BUILD_TESTING ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES fix-install-path.patch fix-undefined-typeid.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/libmodman) vcpkg_copy_pdbs() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libmodman/usage ================================================ The package libmodman provides CMake targets: find_package(libmodman CONFIG REQUIRED) target_include_directories(main PRIVATE ${LIBMODMAN_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${LIBMODMAN_LIBRARIES}) ================================================ FILE: ports/libmodman/vcpkg-cmake-wrapper.cmake ================================================ set(LIBMODMAN_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${LIBMODMAN_PREV_MODULE_PATH}) ================================================ FILE: ports/libmodman/vcpkg.json ================================================ { "name": "libmodman", "version": "2.0.1", "port-version": 5, "description": "a simple library for managing modules", "homepage": "https://code.google.com/p/libmodman", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tests": { "description": "Build libmodman tests", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libmodplug/002-detect_sinf.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ada51b..468f1a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ project(libmodplug) add_definitions(-DMODPLUG_BUILD) include (CheckFunctionExists) +include (CheckIncludeFile) include_directories(AFTER src @@ -11,6 +12,10 @@ include_directories(AFTER ${PROJECT_BINARY_DIR} ) +if (UNIX) + set (CMAKE_REQUIRED_LIBRARIES m) +endif() + if (WIN32) add_definitions(-D_USE_MATH_DEFINES) add_definitions(-DNOMINMAX) @@ -44,6 +49,11 @@ if (WIN32 AND NOT (MINGW OR MSYS)) "Compilation may fail if inttypes.h is not natively supported by the compiler." "You can get inttypes.h from http://code.google.com/p/msinttypes/") endif() +else() + check_include_file("stdint.h" HAVE_STDINT) + if (HAVE_STDINT) + add_definitions(-DHAVE_STDINT_H) + endif() endif() check_function_exists("setenv" HAVE_SETENV) ================================================ FILE: ports/libmodplug/003-use-static-cast-for-ctype.patch ================================================ diff --git a/src/load_abc.cpp b/src/load_abc.cpp index ee79f39..874ab8f 100644 --- a/src/load_abc.cpp +++ b/src/load_abc.cpp @@ -268,7 +268,8 @@ static void setenv(const char *name, const char *value, int overwrite) #endif static int abc_isvalidchar(char c) { - return(isalpha(c) || isdigit(c) || isspace(c) || c == '%' || c == ':'); + unsigned char u = static_cast(c); + return(isalpha(u) || isdigit(u) || isspace(u) || c == '%' || c == ':'); } #if 0 static const char *abc_skipspace(const char *p) ================================================ FILE: ports/libmodplug/004-export-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ada51b..a0a28d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8.0) +cmake_minimum_required(VERSION 3.5) project(libmodplug) add_definitions(-DMODPLUG_BUILD) @@ -131,7 +131,24 @@ if(HAVE_SINF) add_definitions(-DHAVE_SINF) endif(HAVE_SINF) -if (NOT WIN32) +if(WIN32) + set(LIBS_PRIVATE "-luser32") +else(WIN32) + set(FAKE_CXX_LINKAGE "") + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() + set(LIBS_PRIVATE " ${FAKE_CXX_LINKAGE} ") + if(NOT LIBS_PRIVATE MATCHES " -lm ") + string(APPEND LIBS_PRIVATE "-lm") + endif() +endif(WIN32) set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix "${CMAKE_INSTALL_PREFIX}") set(libdir "${CMAKE_INSTALL_PREFIX}/lib") @@ -142,4 +159,3 @@ if (NOT WIN32) install(FILES "${PROJECT_BINARY_DIR}/libmodplug.pc" DESTINATION lib/pkgconfig ) -endif (NOT WIN32) diff --git a/libmodplug.pc.in b/libmodplug.pc.in index bbf05f9..e4a43cc 100644 --- a/libmodplug.pc.in +++ b/libmodplug.pc.in @@ -8,5 +8,5 @@ Description: The ModPlug mod file playing library. Version: @VERSION@ Requires: Libs: -L${libdir} -lmodplug -Libs.private: -lstdc++ -lm +Libs.private: @LIBS_PRIVATE@ Cflags: -I${includedir} ================================================ FILE: ports/libmodplug/005-fix-install-paths.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 468f1a3..b58b11e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,10 @@ add_library(modplug ${LIB_TYPE} ) # install the library: -install(TARGETS modplug DESTINATION lib) +install(TARGETS modplug + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) # incstall the headers: install(FILES ================================================ FILE: ports/libmodplug/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Konstanty/libmodplug REF 5a39f5913d07ba3e61d8d5afdba00b70165da81d # cf. https://github.com/Konstanty/libmodplug/issues/48 SHA512 c43bb3190b62c3a4e3636bba121b5593bbf8e6577ca9f2aa04d90b03730ea7fb590e640cdadeb565758b92e81187bc456e693fe37f1f4deace9b9f37556e3ba1 PATCHES 002-detect_sinf.patch 003-use-static-cast-for-ctype.patch 004-export-pkgconfig.patch 005-fix-install-paths.patch # https://github.com/Konstanty/libmodplug/pull/61 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libmodplug/modplug.h" "defined(MODPLUG_STATIC)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libmodplug/stdafx.h" "defined(MODPLUG_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libmodplug/vcpkg.json ================================================ { "name": "libmodplug", "version": "0.8.9.0", "port-version": 15, "description": "The ModPlug mod file playing library.", "homepage": "https://github.com/Konstanty/libmodplug", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libmorton/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Forceflow/libmorton REF "v${VERSION}" SHA512 020d9ba97204b8c028a8700d7212821dd75b6dbe1b4a77776777d06ef29bcad75cdc4e830f211daf6250779cc81ed4842a0632f89a7b7017eb071869a3c938fa HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/libmorton) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libmorton/vcpkg.json ================================================ { "name": "libmorton", "version": "0.2.12", "description": "Header-only library for encoding/decoding Morton codes in/from 2D/3D coordinates", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libmount/hide-private-symbols.diff ================================================ diff --git a/include/strutils.h b/include/strutils.h index e9f8a0c..2f6d285 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -16,6 +16,10 @@ #include "c.h" +// private, and clashing with libsystemd. +#define parse_size ul__parse_size +#define parse_range ul__parse_range + /* initialize a custom exit code for all *_or_err functions */ extern void strutils_set_exitcode(int exit_code); ================================================ FILE: ports/libmount/portfile.cmake ================================================ string(REGEX MATCH "^([0-9]+\\.[0-9]+)" VERSION_SHORT "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${VERSION_SHORT}/util-linux-${VERSION}.tar.xz" FILENAME "util-linux-${VERSION}.tar.xz" SHA512 3d299f0e05a4c982a04dbcbaaeff1222152feedf51c56c5dbdeb75999c68269d652a994f5cdf4c1ee42bb7b28475dd0792192c299fd9bc3b45198c5b153dad00 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE ${VERSION} PATCHES hide-private-symbols.diff ) set(ENV{GTKDOCIZE} true) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() set(ENV{AUTOPOINT} true) # true, the program vcpkg_list(APPEND options "--disable-nls") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") vcpkg_list(APPEND options "--disable-year2038") endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} --disable-asciidoc --disable-all-programs --disable-dependency-tracking --enable-libmount --enable-libblkid "--mandir=${CURRENT_PACKAGES_DIR}/share/man" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/debug/sbin" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/sbin" "${CURRENT_PACKAGES_DIR}/share" "${CURRENT_PACKAGES_DIR}/tools" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.licensing" "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libmount/vcpkg.json ================================================ { "name": "libmount", "version": "2.41.3", "port-version": 1, "description": "Block device identification library from util-linux", "homepage": "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/about/", "license": null, "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "features": { "nls": { "description": "Enable native language support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/libmpeg2/0001-Add-naive-MSVC-support-to-sources.patch ================================================ From ed3b6e4bca1fe5211e3d7ca06bbbf9b161c8bc19 Mon Sep 17 00:00:00 2001 From: Michal Janiszewski Date: Sat, 2 Nov 2019 14:50:53 -0700 Subject: [PATCH] Add naive MSVC support to sources --- libmpeg2/convert/rgb.c | 2 +- libmpeg2/cpu_accel.c | 4 ++-- libmpeg2/cpu_state.c | 4 ++-- libmpeg2/idct.c | 2 +- libmpeg2/motion_comp.c | 2 +- libvo/video_out_dx.c | 6 +++--- vc++/config.h | 2 ++ 7 files changed, 12 insertions(+), 10 deletions(-) diff --git a/libmpeg2/convert/rgb.c b/libmpeg2/convert/rgb.c index 8863b0b..db6f4e3 100644 --- a/libmpeg2/convert/rgb.c +++ b/libmpeg2/convert/rgb.c @@ -499,7 +499,7 @@ static int rgb_internal (mpeg2convert_rgb_order_t order, unsigned int bpp, int convert420 = 0; int rgb_stride_min = ((bpp + 7) >> 3) * seq->width; -#ifdef ARCH_X86 +#if !defined(_MSC_VER) && defined(ARCH_X86) if (!copy && (accel & MPEG2_ACCEL_X86_MMXEXT)) { convert420 = 0; copy = mpeg2convert_rgb_mmxext (order, bpp, seq); diff --git a/libmpeg2/cpu_accel.c b/libmpeg2/cpu_accel.c index 9b24610..a922df1 100644 --- a/libmpeg2/cpu_accel.c +++ b/libmpeg2/cpu_accel.c @@ -29,7 +29,7 @@ #include "attributes.h" #include "mpeg2_internal.h" -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64)) static inline uint32_t arch_accel (uint32_t accel) { if (accel & (MPEG2_ACCEL_X86_3DNOW | MPEG2_ACCEL_X86_MMXEXT)) @@ -253,7 +253,7 @@ static inline uint32_t arch_accel (uint32_t accel) uint32_t mpeg2_detect_accel (uint32_t accel) { -#if defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC) +#if !defined(_MSC_VER) && (defined (ARCH_X86) || defined (ARCH_X86_64) || defined (ARCH_PPC) || defined (ARCH_ALPHA) || defined (ARCH_SPARC)) accel = arch_accel (accel); #endif return accel; diff --git a/libmpeg2/cpu_state.c b/libmpeg2/cpu_state.c index 2f2f64a..f4966c1 100644 --- a/libmpeg2/cpu_state.c +++ b/libmpeg2/cpu_state.c @@ -36,7 +36,7 @@ void (* mpeg2_cpu_state_save) (cpu_state_t * state) = NULL; void (* mpeg2_cpu_state_restore) (cpu_state_t * state) = NULL; -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64)) static void state_restore_mmx (cpu_state_t * state) { emms (); @@ -115,7 +115,7 @@ static void state_restore_altivec (cpu_state_t * state) void mpeg2_cpu_state_init (uint32_t accel) { -#if defined(ARCH_X86) || defined(ARCH_X86_64) +#if !defined(_MSC_VER) && (defined(ARCH_X86) || defined(ARCH_X86_64)) if (accel & MPEG2_ACCEL_X86_MMX) { mpeg2_cpu_state_restore = state_restore_mmx; } diff --git a/libmpeg2/idct.c b/libmpeg2/idct.c index 81c57e0..a057bf7 100644 --- a/libmpeg2/idct.c +++ b/libmpeg2/idct.c @@ -235,7 +235,7 @@ static void mpeg2_idct_add_c (const int last, int16_t * block, void mpeg2_idct_init (uint32_t accel) { -#ifdef ARCH_X86 +#if !defined(_MSC_VER) && defined(ARCH_X86) if (accel & MPEG2_ACCEL_X86_SSE2) { mpeg2_idct_copy = mpeg2_idct_copy_sse2; mpeg2_idct_add = mpeg2_idct_add_sse2; diff --git a/libmpeg2/motion_comp.c b/libmpeg2/motion_comp.c index 7aed113..b00a32d 100644 --- a/libmpeg2/motion_comp.c +++ b/libmpeg2/motion_comp.c @@ -33,7 +33,7 @@ mpeg2_mc_t mpeg2_mc; void mpeg2_mc_init (uint32_t accel) { -#ifdef ARCH_X86 +#if !defined(_MSC_VER) && defined(ARCH_X86) if (accel & MPEG2_ACCEL_X86_MMXEXT) mpeg2_mc = mpeg2_mc_mmxext; else if (accel & MPEG2_ACCEL_X86_3DNOW) diff --git a/libvo/video_out_dx.c b/libvo/video_out_dx.c index 36de68a..0797cdc 100644 --- a/libvo/video_out_dx.c +++ b/libvo/video_out_dx.c @@ -82,7 +82,7 @@ static void update_overlay (dx_instance_t * instance) dwFlags, &ddofx); } -static long FAR PASCAL event_procedure (HWND hwnd, UINT message, +static LRESULT FAR PASCAL event_procedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { RECT rect_window; @@ -92,7 +92,7 @@ static long FAR PASCAL event_procedure (HWND hwnd, UINT message, switch (message) { case WM_WINDOWPOSCHANGED: - instance = (dx_instance_t *) GetWindowLong (hwnd, GWL_USERDATA); + instance = (dx_instance_t *) GetWindowLongPtr (hwnd, GWLP_USERDATA); /* update the window position and size */ point_window.x = 0; @@ -173,7 +173,7 @@ static int create_window (dx_instance_t * instance) /* store a directx_instance pointer into the window local storage * (for later use in event_handler). * We need to use SetWindowLongPtr when it is available in mingw */ - SetWindowLong (instance->window, GWL_USERDATA, (LONG) instance); + SetWindowLongPtr (instance->window, GWLP_USERDATA, (LONG_PTR) instance); ShowWindow (instance->window, SW_SHOW); diff --git a/vc++/config.h b/vc++/config.h index 93719f0..a03cce6 100644 --- a/vc++/config.h +++ b/vc++/config.h @@ -16,7 +16,9 @@ /* #undef ARCH_SPARC */ /* x86 architecture */ +#if defined(_M_AMD64) || defined(_M_IX86) #define ARCH_X86 +#endif /* maximum supported data alignment */ /* #undef ATTRIBUTE_ALIGNED_MAX */ -- 2.25.0 ================================================ FILE: ports/libmpeg2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.2) project(libmpeg2) option(TOOLS "Build libmpeg2 tools" OFF) set(MPEG2_SOURCE_FILES libmpeg2/alloc.c libmpeg2/cpu_accel.c libmpeg2/cpu_state.c libmpeg2/decode.c libmpeg2/header.c libmpeg2/idct.c libmpeg2/idct_alpha.c libmpeg2/idct_altivec.c #libmpeg2/idct_mmx.c libmpeg2/motion_comp.c libmpeg2/motion_comp_alpha.c libmpeg2/motion_comp_altivec.c libmpeg2/motion_comp_arm.c #libmpeg2/motion_comp_mmx.c libmpeg2/motion_comp_vis.c libmpeg2/slice.c ) set(VO_SOURCE_FILES libvo/video_out.c libvo/video_out_dx.c libvo/video_out_null.c libvo/video_out_pgm.c libvo/video_out_sdl.c libvo/video_out_x11.c ) set(MPEG2_CONVERT_SOURCES libmpeg2/convert/rgb.c #libmpeg2/convert/rgb_mmx.c libmpeg2/convert/rgb_vis.c libmpeg2/convert/uyvy.c ) set(GETOPT_FILES src/getopt.c ) set(HEADERS include/mpeg2.h include/mpeg2convert.h ) add_library(mpeg2 ${MPEG2_SOURCE_FILES}) add_library(mpeg2convert ${MPEG2_CONVERT_SOURCES}) add_library(getopt STATIC ${GETOPT_FILES}) add_library(vo STATIC ${VO_SOURCE_FILES}) target_include_directories(mpeg2convert PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" ) target_include_directories(getopt PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" ) target_include_directories(vo PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" ) target_include_directories(mpeg2 PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" ) target_include_directories(mpeg2 INTERFACE "${CMAKE_SOURCE_DIR}/include" ) target_compile_definitions(getopt PUBLIC HAVE_CONFIG_H) target_link_libraries(vo mpeg2convert) if (TOOLS) add_executable(mpeg2dec src/mpeg2dec.c src/dump_state.c src/gettimeofday.c) add_executable(extract_mpeg2 src/extract_mpeg2.c) add_executable(corrupt_mpeg2 src/corrupt_mpeg2.c) target_compile_definitions(extract_mpeg2 PUBLIC HAVE_CONFIG_H) target_compile_definitions(corrupt_mpeg2 PUBLIC HAVE_CONFIG_H) target_link_libraries(mpeg2dec PRIVATE getopt vo mpeg2convert mpeg2 gdi32) target_link_libraries(extract_mpeg2 PRIVATE getopt) target_link_libraries(corrupt_mpeg2 PRIVATE getopt) target_include_directories(mpeg2dec PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src" ) target_include_directories(extract_mpeg2 PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src" ) target_include_directories(corrupt_mpeg2 PUBLIC "${CMAKE_SOURCE_DIR}/vc++" "${CMAKE_SOURCE_DIR}/include" "${CMAKE_SOURCE_DIR}/src" ) endif (TOOLS) install(TARGETS mpeg2 EXPORT libmpeg2 LIBRARY DESTINATION lib ) install(FILES ${HEADERS} DESTINATION "include/mpeg2dec") ================================================ FILE: ports/libmpeg2/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # There is archived version of releases available at https://github.com/janisozaur/libmpeg2 vcpkg_download_distfile(ARCHIVE URLS "https://download.videolan.org/contrib/libmpeg2/libmpeg2-0.5.1.tar.gz" FILENAME "libmpeg2-0.5.1.tar.gz" SHA512 3648a2b3d7e2056d5adb328acd2fb983a1fa9a05ccb6f9388cc686c819445421811f42e8439418a0491a13080977f074a0d8bf8fa6bc101ff245ddea65a46fbc ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-Add-naive-MSVC-support-to-sources.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() # # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() ================================================ FILE: ports/libmpeg2/vcpkg.json ================================================ { "name": "libmpeg2", "version": "0.5.1", "port-version": 4, "description": "a free MPEG-2 video stream decoder", "homepage": "http://libmpeg2.sourceforge.net/", "supports": "!(linux | osx | uwp | android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tools": { "description": "Build tools provided with libmpeg2" } } } ================================================ FILE: ports/libmspack/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(libmspack C) add_definitions(-DHAVE_CONFIG_H) if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) endif() # List the source files set(LIB_SRC mspack/cabc.c mspack/cabd.c mspack/chmc.c mspack/chmd.c mspack/crc32.c mspack/hlpc.c mspack/hlpd.c mspack/kwajc.c mspack/kwajd.c mspack/litc.c mspack/litd.c mspack/lzssd.c mspack/lzxc.c mspack/lzxd.c mspack/mszipc.c mspack/mszipd.c mspack/oabc.c mspack/oabd.c mspack/qtmd.c mspack/system.c mspack/szddc.c mspack/szddd.c ) if(BUILD_SHARED_LIBS) set(LIB_DEF libmspack.def) endif() add_library(libmspack ${LIB_SRC} ${LIB_DEF}) target_include_directories(libmspack PRIVATE . ./mspack) install(TARGETS libmspack RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES mspack/mspack.h DESTINATION include) ================================================ FILE: ports/libmspack/config.h ================================================ #define HAVE_LIMITS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_TOWLOWER 1 ================================================ FILE: ports/libmspack/libmspack.def ================================================ EXPORTS mspack_create_cab_compressor mspack_create_chm_compressor mspack_create_lit_compressor mspack_create_hlp_compressor mspack_create_szdd_compressor mspack_create_kwaj_compressor mspack_create_oab_compressor mspack_create_cab_decompressor mspack_create_chm_decompressor mspack_create_lit_decompressor mspack_create_hlp_decompressor mspack_create_szdd_decompressor mspack_create_kwaj_decompressor mspack_create_oab_decompressor mspack_destroy_cab_compressor mspack_destroy_cab_decompressor mspack_destroy_chm_compressor mspack_destroy_chm_decompressor mspack_destroy_lit_compressor mspack_destroy_lit_decompressor mspack_destroy_hlp_compressor mspack_destroy_hlp_decompressor mspack_destroy_szdd_compressor mspack_destroy_szdd_decompressor mspack_destroy_kwaj_compressor mspack_destroy_kwaj_decompressor mspack_destroy_oab_compressor mspack_destroy_oab_decompressor mspack_sys_selftest_internal mspack_version ================================================ FILE: ports/libmspack/portfile.cmake ================================================ set(LIB_NAME libmspack) set(LIB_VERSION 0.11alpha) set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.gz) vcpkg_download_distfile(ARCHIVE URLS "https://www.cabextract.org.uk/libmspack/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" SHA512 40c487e5b4e2f63a6cada26d29db51f605e8c29525a1cb088566d02cf2b1cc9dba263f80e2101d7f8e9d69cf7684a15bcaf791fb4891ad013a56afc7256dfa62 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/libmspack.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # License and man file(INSTALL "${SOURCE_PATH}/COPYING.LIB" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/libmspack/vcpkg.json ================================================ { "name": "libmspack", "version": "0.11", "description": "libmspack is a portable library for some loosely related Microsoft compression formats.", "homepage": "https://www.cabextract.org.uk/libmspack", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libmt32emu/portfile.cmake ================================================ string(REPLACE "." "_" VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO munt/munt REF libmt32emu_${VERSION} SHA512 9ec78d57d93bdac9ec7097b03eef7efb79bfa8837a9f04746a89f508adc6482f2da0977db3f7e5def6629cc613fa58c4bf23c752af251e417a5303cf14fe96ad HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/mt32emu" OPTIONS -Dlibmt32emu_SHARED:BOOL=${BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MT32Emu CONFIG_PATH lib/cmake/MT32Emu) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(INSTALL "${SOURCE_PATH}/mt32emu/COPYING.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libmt32emu/vcpkg.json ================================================ { "name": "libmt32emu", "version": "2.7.3", "description": "A MT-32 emulator", "homepage": "https://github.com/munt/munt", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libmtp/disable-examples.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 5a0d464..b00bcea 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS=src examples util doc +SUBDIRS=src util doc ACLOCAL_AMFLAGS=-I m4 pkgconfigdir=$(libdir)/pkgconfig ================================================ FILE: ports/libmtp/dont-install-def-file.patch ================================================ diff --git a/src/Makefile.am b/src/Makefile.am index 088050e..c28ddbb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -66,7 +66,7 @@ LT_CURRENT_MINUS_AGE=`expr $(CURRENT) - $(AGE)` if COMPILE_MINGW32 W32_LIBS=-lws2_32 W32_LDFLAGS=-export-dynamic -if MS_LIB_EXE +if FALSE noinst_DATA=libmtp.lib libmtp.def: $(srcdir)/libmtp.sym echo "LIBRARY \"@PACKAGE@\"" > libmtp.def ================================================ FILE: ports/libmtp/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO libmtp/libmtp REF ${VERSION} FILENAME "libmtp-${VERSION}.tar.gz" SHA512 97094b29073681da0c714b6c4aea2e5f35253a8d06229e60c0af46727413470e9da6be422d873449fc4dec6f9b8efce6d3edc657b9251182cc0a709859e99baa PATCHES disable-examples.patch dont-install-def-file.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/m4/iconv.m4") file(REMOVE_RECURSE "${SOURCE_PATH}/src/gphoto2-endian.h") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_HOST_INSTALLED_DIR}/share/gettext/aclocal/\"") if(VCPKG_CROSSCOMPILING AND VCPKG_TARGET_IS_ANDROID) set(cross_flags "--with-udev=${CURRENT_HOST_INSTALLED_DIR}/lib/udev/" "--enable-crossbuilddir=${CURRENT_INSTALLED_DIR}/lib/udev/" "HOST_MTP_HOTPLUG=${CURRENT_HOST_INSTALLED_DIR}/tools/libmtp/bin/mtp-hotplug${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${cross_flags} --disable-mtpz --disable-doxygen ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libmtp/vcpkg.json ================================================ { "name": "libmtp", "version-semver": "1.1.22", "port-version": 1, "description": "A library to access MTP (Media Transfer Protocol) devices", "homepage": "https://sourceforge.net/projects/libmtp/", "license": "LGPL-2.1-or-later", "supports": "(!windows | mingw) & !uwp & !android", "dependencies": [ { "name": "gettext", "host": true }, { "name": "libmtp", "host": true, "platform": "android" }, "libusb", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libmultisense/0000-platform-specific-links.patch ================================================ diff --git a/source/Legacy/CMakeLists.txt b/source/Legacy/CMakeLists.txt index 2a7367c..a0bfbd3 100644 --- a/source/Legacy/CMakeLists.txt +++ b/source/Legacy/CMakeLists.txt @@ -86,12 +86,12 @@ set_target_properties(MultiSense PROPERTIES PUBLIC_HEADER "${MULTISENSE_HEADERS} # We want to link against our child libraries. # -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") +find_package(Threads REQUIRED) +target_link_libraries(MultiSense Threads::Threads) +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") target_link_libraries(MultiSense ws2_32) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - target_link_libraries(MultiSense pthread) -else() - target_link_libraries(MultiSense pthread rt) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(MultiSense rt) endif() include(CMakePackageConfigHelpers) diff --git a/source/LibMultiSense/CMakeLists.txt b/source/LibMultiSense/CMakeLists.txt index 52d9334..17a2e3f 100644 --- a/source/LibMultiSense/CMakeLists.txt +++ b/source/LibMultiSense/CMakeLists.txt @@ -63,12 +63,12 @@ set_target_properties(MultiSense PROPERTIES PUBLIC_HEADER "${MULTISENSE_HEADERS} # We want to link against our child libraries. # -if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") +find_package(Threads REQUIRED) +target_link_libraries(MultiSense Threads::Threads) +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") target_link_libraries(MultiSense ws2_32) -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - target_link_libraries(MultiSense pthread) -else() - target_link_libraries(MultiSense pthread rt) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + target_link_libraries(MultiSense rt) endif() if (BUILD_TESTS) diff --git a/source/Utilities/Legacy/CMakeLists.txt b/source/Utilities/Legacy/CMakeLists.txt index 21c747d..2c4b8ed 100644 --- a/source/Utilities/Legacy/CMakeLists.txt +++ b/source/Utilities/Legacy/CMakeLists.txt @@ -8,32 +8,17 @@ include_directories(shared) # Common libraries that each utility needs to link with. # -if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} - MultiSense - ws2_32 -) - -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} - MultiSense - pthread -) - -else () - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} +find_package(Threads REQUIRED) +list(APPEND MULTISENSE_UTILITY_LIBS MultiSense - pthread - rt + Threads::Threads ) -endif () +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + list(APPEND MULTISENSE_UTILITY_LIBS ws2_32) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND MULTISENSE_UTILITY_LIBS rt) +endif() # # Recurse into each of these directories. diff --git a/source/Utilities/LibMultiSense/CMakeLists.txt b/source/Utilities/LibMultiSense/CMakeLists.txt index 405eaf0..41ded43 100644 --- a/source/Utilities/LibMultiSense/CMakeLists.txt +++ b/source/Utilities/LibMultiSense/CMakeLists.txt @@ -1,30 +1,15 @@ -if (${CMAKE_SYSTEM_NAME} MATCHES "Windows") - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} - MultiSense - ws2_32 -) - -elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} - MultiSense - pthread -) - -else () - -set (MULTISENSE_UTILITY_LIBS - ${MULTISENSE_UTILITY_LIBS} - MultiSense - pthread - rt +find_package(Threads REQUIRED) +list(APPEND MULTISENSE_UTILITY_LIBS + MultiSense + Threads::Threads ) -endif () +if(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + list(APPEND MULTISENSE_UTILITY_LIBS ws2_32) +elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND MULTISENSE_UTILITY_LIBS rt) +endif() add_subdirectory(ChangeIpUtility) add_subdirectory(DeviceInfoUtility) ================================================ FILE: ports/libmultisense/0001-find-public-api-dependencies.patch ================================================ diff --git a/source/LibMultiSense/MultiSenseConfig.cmake.in b/source/LibMultiSense/MultiSenseConfig.cmake.in index dbc311d..02a3948 100644 --- a/source/LibMultiSense/MultiSenseConfig.cmake.in +++ b/source/LibMultiSense/MultiSenseConfig.cmake.in @@ -3,8 +3,9 @@ include(CMakeFindDependencyMacro) find_dependency(MultiSenseWire) if (@BUILD_JSON_SERIALIZATION@) - find_dependency(nlohmann_json 3.9 REQUIRED) + find_dependency(nlohmann_json 3.9) endif () +find_dependency(Threads) include("${CMAKE_CURRENT_LIST_DIR}/MultiSenseTargets.cmake") ================================================ FILE: ports/libmultisense/0002-disable-error-on-warning.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 333d8ca..d0e6160 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ project(LibMultiSense include (CheckCXXSourceCompiles) +if(0) if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") string (REGEX REPLACE "/W3" "/W4" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") string (REGEX REPLACE "/W3" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") @@ -41,6 +42,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Ap # add_compile_options(-Wno-gnu-zero-variadic-macro-arguments) endif() +endif() option(BUILD_LEGACY_API "Build the legacy MultiSense API. Defaults to On for backwards compatibility." ON) option(MULTISENSE_BUILD_UTILITIES "Build MultiSense utility applications. Defaults to ON for backwards compatibility." ON) ================================================ FILE: ports/libmultisense/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO carnegierobotics/LibMultiSense REF ${VERSION} SHA512 ccb865c6bfaed6a415cd7acf22ca24921ef53e8ac71f2f213f89fe2cdd24893d60507cba6ea60f2d690b834d3eb3631fc80da657936738028ee5ffac986f0ae8 HEAD_REF master PATCHES 0000-platform-specific-links.patch 0001-find-public-api-dependencies.patch 0002-disable-error-on-warning.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES json-serialization BUILD_JSON_SERIALIZATION json-serialization CMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json opencv BUILD_OPENCV utilities MULTISENSE_BUILD_UTILITIES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_LEGACY_API=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "MultiSenseWire" CONFIG_PATH "lib/cmake/MultiSenseWire" DO_NOT_DELETE_PARENT_CONFIG_PATH ) vcpkg_cmake_config_fixup( PACKAGE_NAME "MultiSense" CONFIG_PATH "lib/cmake/MultiSense" ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if ("utilities" IN_LIST FEATURES) set(_tool_names ChangeIpUtility ImageCalUtility MultiChannelUtility PointCloudUtility RectifiedFocalLengthUtility SaveImageUtility VersionInfoUtility ) if ("json-serialization" IN_LIST FEATURES) list(APPEND _tool_names DeviceInfoUtility) endif () vcpkg_copy_tools( TOOL_NAMES ${_tool_names} AUTO_CLEAN ) # Python equivalents of the above tools are also installed into bin. These tools are duplicates and require that # the Python bindings be built, which we are not doing. Since they provide no additional functionality, remove # them. set(_python_tool_names change_ip_utility.py device_info_utility.py image_cal_utility.py multi_channel_utility.py point_cloud_utility.py rectified_focal_length_utility.py save_image_utility.py version_info_utility.py ) foreach (_python_tool_name IN LISTS _python_tool_names) file( REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${_python_tool_name}" "${CURRENT_PACKAGES_DIR}/bin/${_python_tool_name}" ) endforeach () # Remove the bin directory if its empty (anticipated on non-Windows platforms). foreach (_directory IN ITEMS "${CURRENT_PACKAGES_DIR}/debug/bin/${_python_tool_name}" "${CURRENT_PACKAGES_DIR}/bin/${_python_tool_name}") if (NOT IS_DIRECTORY "${_directory}") continue() endif () file(GLOB _files_in_directory "${_directory}/*") if("${_files_in_directory}" STREQUAL "") file(REMOVE_RECURSE "${_directory}") endif() endforeach() endif () vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.TXT" ) file( INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) ================================================ FILE: ports/libmultisense/usage ================================================ libmultisense provides CMake targets: find_package(MultiSense) target_link_libraries(main PRIVATE MultiSense) ================================================ FILE: ports/libmultisense/vcpkg.json ================================================ { "name": "libmultisense", "version": "7.4.0", "description": "A C++ library for interfacing with the MultiSense S family of sensors from Carnegie Robotics.", "homepage": "https://github.com/carnegierobotics/LibMultiSense", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "json-serialization": { "description": "Build JSON type serialization helpers.", "dependencies": [ { "name": "nlohmann-json", "version>=": "3.10.2" } ] }, "opencv": { "description": "Build OpenCV helpers.", "dependencies": [ "opencv" ] }, "utilities": { "description": "Build MultiSense utility applications." } } } ================================================ FILE: ports/libmupdf/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(libmupdf) # configuration set(BIN2COFF_EXECUTABLE "bin2coff" CACHE STRING "Host executable for converter (Windows only)") option(ENABLE_OCR "Build with OCR" OFF) # dependencies find_package(freetype CONFIG REQUIRED) find_package(harfbuzz CONFIG REQUIRED) find_package(JPEG REQUIRED) find_package(OpenJPEG CONFIG REQUIRED) find_package(unofficial-gumbo CONFIG REQUIRED) find_package(ZLIB REQUIRED) find_path(JBIG2DEC_INCLUDE_DIR NAMES jbig2.h REQUIRED) find_library(JBIG2DEC_LIBRARY NAMES jbig2decd jbig2dec NAMES_PER_DIR REQUIRED) if (ENABLE_OCR) find_package(Leptonica CONFIG REQUIRED) find_package(Tesseract CONFIG REQUIRED) endif() # generation of font resources if (CMAKE_HOST_WIN32 AND WIN32) if(BIN2COFF_EXECUTABLE STREQUAL "bin2coff") # cf. scripts/fontdump.nmake add_executable(bin2coff EXCLUDE_FROM_ALL scripts/bin2coff.c) install(TARGETS bin2coff DESTINATION manual-tools/libmupdf) endif() # cf. scripts/bin2coff.c if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") set(coff_arch "Win32") elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") set(coff_arch "aarch64") else() set(coff_arch "x64") endif() endif() # cf. FONT_BIN in Makefile # Legal notices should be picked by the portfile. file(GLOB fonts "${PROJECT_SOURCE_DIR}/resources/fonts/urw/*.cff" "${PROJECT_SOURCE_DIR}/resources/fonts/han/*.ttc" "${PROJECT_SOURCE_DIR}/resources/fonts/droid/DroidSansFallbackFull.ttf" "${PROJECT_SOURCE_DIR}/resources/fonts/droid/DroidSansFallback.ttf" "${PROJECT_SOURCE_DIR}/resources/fonts/noto/*.otf" "${PROJECT_SOURCE_DIR}/resources/fonts/noto/*.ttf" "${PROJECT_SOURCE_DIR}/resources/fonts/sil/*.cff" ) set(FONT_SOURCES "") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/resources") foreach(font IN LISTS fonts) cmake_path(GET font FILENAME name) if (CMAKE_HOST_WIN32 AND WIN32) string(REGEX REPLACE "[-.]" "_" identifier "_binary_${name}") set(font_object "${CMAKE_CURRENT_BINARY_DIR}/resources/${name}.obj") set_source_files_properties("${font_object}" PROPERTIES EXTERNAL_OBJECT 1) add_custom_command(OUTPUT "${font_object}" COMMAND "${BIN2COFF_EXECUTABLE}" "${font}" "${font_object}" "${identifier}" ${coff_arch} VERBATIM ) list(APPEND FONT_SOURCES "${font_object}") else() set(font_c_source "${CMAKE_CURRENT_BINARY_DIR}/resources/${name}.c") add_custom_command(OUTPUT "${font_c_source}" COMMAND bash -c "bash ${PROJECT_SOURCE_DIR}/scripts/hexdump.sh '${font}' > '${font_c_source}'" VERBATIM ) list(APPEND FONT_SOURCES "${font_c_source}") endif() endforeach() # libmupdf # cf. Makefile, libmupdf.vcxproj file(GLOB_RECURSE SOURCES "source/fitz/*.c" # omitting unused *.cpp "source/pdf/*.c" "source/xps/*.c" "source/svg/*.c" "source/html/*.c" "source/reflow/*.c" "source/cbz/*.c" ) if (ENABLE_OCR) list(APPEND SOURCES "source/fitz/tessocr.cpp") endif() add_library(libmupdf ${SOURCES} ${FONT_SOURCES}) set_target_properties(libmupdf PROPERTIES PREFIX "") target_include_directories(libmupdf PUBLIC $ $ PRIVATE ${JBIG2DEC_INCLUDE_DIR} ${Leptonica_INCLUDE_DIRS} ) target_compile_definitions(libmupdf INTERFACE $<$:FZ_DLL_CLIENT> PRIVATE $<$:FZ_DLL> FZ_ENABLE_BROTLI=0 # needs brotli FZ_ENABLE_DOCX_OUTPUT=0 # needs https://github.com/ArtifexSoftware/extract FZ_ENABLE_ICC=0 # needs lcsm2 FZ_ENABLE_JS=0 # needs mujs FZ_ENABLE_ODT_OUTPUT=0 # needs FZ_ENABLE_DOCX_OUTPUT MEMENTO_MUPDF_HACKS SHARE_JPEG $<$>:OCR_DISABLED> $<$:HAVE_TESSERACT> $<$:HAVE_LEPTONICA> ) target_link_libraries(libmupdf PRIVATE freetype harfbuzz::harfbuzz ${JBIG2DEC_LIBRARY} JPEG::JPEG openjp2 unofficial::gumbo::gumbo ZLIB::ZLIB $<$:leptonica> $<$:Tesseract::libtesseract> $<$:log> ) # installation install(DIRECTORY include/mupdf DESTINATION include ) install(TARGETS libmupdf EXPORT unofficial-libmupdf-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT unofficial-libmupdf-targets NAMESPACE unofficial::libmupdf:: DESTINATION share/unofficial-libmupdf ) configure_file(unofficial-libmupdf-config.cmake.in unofficial-libmupdf-config.cmake @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmupdf-config.cmake" DESTINATION share/unofficial-libmupdf ) ================================================ FILE: ports/libmupdf/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # incomplete DLL exports endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArtifexSoftware/mupdf REF "${VERSION}" SHA512 c0f802fd2b181587df1748a8db7163bbcd3951b943d1321afcff56fccb515dfe99061288bc691323d0854305a1d4205c99457954b10439adb122975429cbce72 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-libmupdf-config.cmake.in" DESTINATION "${SOURCE_PATH}") # 1.26.10 lacks bin2coff arm64 changes in host tool. vcpkg_download_distfile(BIN2COFF_C URLS "https://github.com/ArtifexSoftware/mupdf/raw/9c1af80cea03987b147b0dffd944075f3b3cf4cb/scripts/bin2coff.c" FILENAME "ArtifexSoftware-mupdf-bin2coff-9c1af80.c" SHA512 9f0e70cc0ade3a39c46425d968ff6493d47f36b9bfef2efbb0ae62aef29f71952690ab9716084c0161c7184cd654abc57c2b2f6a4cc3f9e184863e7bb7b64f52 ) file(COPY_FILE "${BIN2COFF_C}" "${SOURCE_PATH}/scripts/bin2coff.c") vcpkg_check_features( OUT_FEATURE_OPTIONS OPTIONS FEATURES ocr ENABLE_OCR ) if(VCPKG_CROSSCOMPILING AND VCPKG_HOST_IS_WINDOWS AND VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-DBIN2COFF_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/bin2coff.exe") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-libmupdf") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/manual-tools") set(font_licenses "") foreach(item IN ITEMS urw/OFL.txt noto/COPYING han/LICENSE.txt droid/NOTICE sil/OFL.txt) string(REPLACE "/" " " new_name "# Fonts - ${item}") set(file "${CURRENT_BUILDTREES_DIR}/${new_name}") file(COPY_FILE "${SOURCE_PATH}/resources/fonts/${item}" "${file}") list(APPEND font_licenses "${file}") endforeach() vcpkg_install_copyright( # Cf. source/fitz/noto.c COMMENT [[ This software includes Base 14 PDF fonts from URW, Noto fonts from Google. Source Han Serif from Adobe for CJK, DroidSansFallback from Android for CJK, Charis SIL from SIL. ]] FILE_LIST "${SOURCE_PATH}/COPYING" ${font_licenses} ) ================================================ FILE: ports/libmupdf/unofficial-libmupdf-config.cmake.in ================================================ if(NOT "@BUILD_SHARED_LIBS@") include(CMakeFindDependencyMacro) find_dependency(freetype CONFIG) find_dependency(harfbuzz CONFIG) find_dependency(JPEG) find_dependency(OpenJPEG CONFIG) find_dependency(unofficial-gumbo CONFIG) find_dependency(ZLIB) if("@ENABLE_OCR@") find_dependency(Leptonica CONFIG) find_dependency(Tesseract CONFIG) endif() endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libmupdf-targets.cmake") ================================================ FILE: ports/libmupdf/vcpkg.json ================================================ { "name": "libmupdf", "version": "1.26.10", "description": "A lightweight PDF, XPS, and E-book library", "homepage": "https://mupdf.com/core", "documentation": "https://mupdf.readthedocs.io/", "license": "AGPL-3.0-only", "dependencies": [ "freetype", "gumbo", "harfbuzz", "jbig2dec", "libjpeg-turbo", { "name": "libmupdf", "host": true }, "openjpeg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ocr": { "description": "Enable OCR support", "dependencies": [ "leptonica", "tesseract" ] } } } ================================================ FILE: ports/libmypaint/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/mypaint/libmypaint/releases/download/v${VERSION}/libmypaint-${VERSION}.tar.xz" FILENAME "libmypaint-${VERSION}.tar.xz" SHA512 e9413fd6a5336791ab3228a5ad9e7f06871d075c7ded236942f896a205ba44ea901a945fdc97b8be357453a1505331b59e824fe67500fbcda0cc4f11f79af608 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-i18n --disable-introspection --with-glib ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libmypaint/vcpkg.json ================================================ { "name": "libmypaint", "version": "1.6.1", "port-version": 2, "description": "Brush library used by MyPaint", "homepage": "https://github.com/mypaint/libmypaint", "license": "ISC", "supports": "!windows | mingw", "dependencies": [ "glib", "json-c", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libmysofa/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hoene/libmysofa REF "v${VERSION}" SHA512 58bd056678503491292a8a9b6b3f43451995a2c0a16735e4ae474d2d3e49bd7b3d6ef3dbfd0ce78e30d9f70887dd9cac60a8fae05ece0c167414f8ac4d3d5514 HEAD_REF main PATCHES use-vcpkg-zlib.patch ) # default.sofa is a symlink to MIT_KEMAR_normal_pinna.sofa, # which can cause problems e.g. on Windows file systems. if(EXISTS "${SOURCE_PATH}/share/default.sofa") file(REMOVE "${SOURCE_PATH}/share/default.sofa") endif() file(COPY_FILE "${SOURCE_PATH}/share/MIT_KEMAR_normal_pinna.sofa" "${SOURCE_PATH}/share/default.sofa") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME mysofa CONFIG_PATH lib/cmake/mysofa) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libmysofa/usage ================================================ libmysofa provides CMake targets: find_package(mysofa CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mysofa::mysofa-shared,mysofa::mysofa-static>) ================================================ FILE: ports/libmysofa/use-vcpkg-zlib.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 018f4ce..90ec50d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,21 +13,25 @@ use_c99() configure_file(config.h.in config.h) include_directories(${CMAKE_CURRENT_BINARY_DIR}) +find_package(ZLIB REQUIRED) + if(NOT MSVC) if(NOT WIN32) find_library(MATH m) else() set(MATH "") endif() - include(FindZLIB) + #include(FindZLIB) else() set(MATH "") + #[[ find_program(NUGET nuget) if(NUGET) execute_process(COMMAND ${NUGET} install zlib) endif() include_directories( ${PROJECT_SOURCE_DIR}/windows/third-party/zlib-1.2.11/include/) + ]]# endif() if(NOT MSVC) @@ -36,12 +40,13 @@ if(NOT MSVC) else() set(MATH "") endif() - include(FindZLIB) - include_directories(${ZLIB_INCLUDE_DIRS}) + #include(FindZLIB) + #include_directories(${ZLIB_INCLUDE_DIRS}) set(PKG_CONFIG_PRIVATELIBS "-lm ${PKG_CONFIG_PRIVATELIBS}") set(PKG_CONFIG_PRIVATELIBS "-lz ${PKG_CONFIG_PRIVATELIBS}") else() set(MATH "") + #[[ find_program(NUGET nuget) if(NOT NUGET) message( @@ -53,6 +58,7 @@ else() endif() include_directories( ${PROJECT_SOURCE_DIR}/windows/third-party/zlib-1.2.11/include/) + ]]# endif() set(libsrc @@ -81,6 +87,8 @@ set(public-headers hrtf/mysofa.h ) +install(FILES "${public-headers}" DESTINATION include) + if(BUILD_STATIC_LIBS) add_library(mysofa-static STATIC ${libsrc}) target_include_directories(mysofa-static @@ -88,7 +96,7 @@ target_include_directories(mysofa-static "$" $ ) -target_link_libraries(mysofa-static LINK_PRIVATE ${MATH} ${ZLIB_LIBRARIES}) +target_link_libraries(mysofa-static LINK_PRIVATE ${MATH} ZLIB::ZLIB) set_target_properties( mysofa-static PROPERTIES OUTPUT_NAME mysofa CLEAN_DIRECT_OUTPUT 1 POSITION_INDEPENDENT_CODE @@ -120,7 +128,7 @@ if(BUILD_SHARED_LIBS) "$" $ ) - target_link_libraries(mysofa-shared PRIVATE ${MATH} ${ZLIB_LIBRARIES}) + target_link_libraries(mysofa-shared PRIVATE ${MATH} ZLIB::ZLIB) set_target_properties(mysofa-shared PROPERTIES OUTPUT_NAME mysofa CLEAN_DIRECT_OUTPUT 1) # Rename the Windows import library (stub) of the DLL to prevent a name clash ================================================ FILE: ports/libmysofa/vcpkg.json ================================================ { "name": "libmysofa", "version": "1.3.4", "description": "Reader for AES SOFA files to get better HRTFs (Head-Relative Transfer Functions)", "homepage": "https://github.com/hoene/libmysofa", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libmysql/cross-build.patch ================================================ diff --git a/cmake/os/Darwin.cmake b/cmake/os/Darwin.cmake index 725b9bd..289bb3d 100644 --- a/cmake/os/Darwin.cmake +++ b/cmake/os/Darwin.cmake @@ -31,13 +31,9 @@ ENDIF() # We require at least XCode 10.0 IF(NOT FORCE_UNSUPPORTED_COMPILER) IF(MY_COMPILER_IS_CLANG) - CHECK_C_SOURCE_RUNS(" - int main() - { - return (__clang_major__ < 10); - }" HAVE_SUPPORTED_CLANG_VERSION) - IF(NOT HAVE_SUPPORTED_CLANG_VERSION) - MESSAGE(FATAL_ERROR "XCode 10.0 or newer is required!") + IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 10) + MESSAGE(FATAL_ERROR + "XCode 10.0 or newer is required! Compiler version was ${CMAKE_CXX_COMPILER_VERSION}") ENDIF() ELSE() MESSAGE(FATAL_ERROR "Unsupported compiler!") diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt index 8e22453..2b63413 100644 --- a/libmysql/CMakeLists.txt +++ b/libmysql/CMakeLists.txt @@ -259,6 +259,7 @@ ELSEIF(FREEBSD) MESSAGE(STATUS "BSD built in DNS SRV APIs") ELSE() FIND_LIBRARY(RESOLV_LIBRARY NAMES resolv) + FIND_LIBRARY(RESOLV_LIBRARY NAMES resolv PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES} NO_DEFAULT_PATH) IF (RESOLV_LIBRARY) LIST(APPEND LIBS_TO_LINK ${RESOLV_LIBRARY}) SET(HAVE_UNIX_DNS_SRV 1 PARENT_SCOPE) @@ -413,6 +414,7 @@ MYSQL_ADD_EXECUTABLE(libmysql_api_test ${CMAKE_CURRENT_BINARY_DIR}/api_test.c LINK_LIBRARIES libmysql ${LIBRT} SKIP_INSTALL + EXCLUDE_FROM_ALL ) # Clang/UBSAN needs this on some platforms. SET_TARGET_PROPERTIES(libmysql_api_test PROPERTIES LINKER_LANGUAGE CXX) @@ -439,6 +441,6 @@ ADD_CUSTOM_COMMAND( COMMAND libmysql_api_test > ${CMAKE_CURRENT_BINARY_DIR}/libmysql_api_test.out ) -MY_ADD_CUSTOM_TARGET(run_libmysql_api_test ALL +MY_ADD_CUSTOM_TARGET(run_libmysql_api_test DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libmysql_api_test.out ) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 8e93387..d971acb 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -69,7 +69,6 @@ ADD_CUSTOM_COMMAND( # Add target for the above to be built MY_ADD_CUSTOM_TARGET(GenFixPrivs - ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/mysql_fix_privilege_tables_sql.h ) diff --git a/scripts/sys_schema/CMakeLists.txt b/scripts/sys_schema/CMakeLists.txt index aaba357..a0e5265 100644 --- a/scripts/sys_schema/CMakeLists.txt +++ b/scripts/sys_schema/CMakeLists.txt @@ -221,7 +221,6 @@ MY_ADD_CUSTOM_TARGET(sql_commands DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/sql_commands.h) MY_ADD_CUSTOM_TARGET(GenSysSchemaC - ALL DEPENDS comp_sql sql_commands COMMENT "Generating Sys Schema C code" ) diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt index 28cde40..be916cb 100644 --- a/share/CMakeLists.txt +++ b/share/CMakeLists.txt @@ -47,8 +47,12 @@ SET(dirs ukrainian ) -FOREACH (dir ${dirs}) - INSTALL(DIRECTORY ${CMAKE_BINARY_DIR}/${INSTALL_MYSQLSHAREDIR}/${dir} + set(src_dir ${CMAKE_BINARY_DIR}/share/libmysql) + if(CMAKE_CROSSCOMPILING) + set(src_dir ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql) + endif() + FOREACH (dir ${dirs}) + INSTALL(DIRECTORY ${src_dir}/${dir} DESTINATION ${INSTALL_MYSQLSHAREDIR} COMPONENT Server ) diff --git a/strings/CMakeLists.txt b/strings/CMakeLists.txt index 665b35d..88f0743 100644 --- a/strings/CMakeLists.txt +++ b/strings/CMakeLists.txt @@ -69,6 +69,13 @@ SET(ZH_HANS_SRC_FILE ${CMAKE_SOURCE_DIR}/strings/lang_data/zh_hans.txt) SET(ZH_HANS_DST_FILE ${CMAKE_BINARY_DIR}/strings/uca900_zh_tbls.cc) SET(JA_HANS_SRC_FILE ${CMAKE_SOURCE_DIR}/strings/lang_data/ja_hans.txt) SET(JA_HANS_DST_FILE ${CMAKE_BINARY_DIR}/strings/uca900_ja_tbls.cc) +if(CMAKE_CROSSCOMPILING) + file(COPY + "${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/uca900_zh_tbls.cc" + "${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/uca900_ja_tbls.cc" + DESTINATION "${CMAKE_BINARY_DIR}/strings" + ) +else() ADD_CUSTOM_COMMAND(OUTPUT ${ZH_HANS_DST_FILE} ${JA_HANS_DST_FILE} COMMAND uca9dump zh @@ -79,6 +86,8 @@ ADD_CUSTOM_COMMAND(OUTPUT ${ZH_HANS_DST_FILE} --out_file=${JA_HANS_DST_FILE} DEPENDS uca9dump ${ZH_HANS_SRC_FILE} ${JA_HANS_SRC_FILE} ) +install(FILES "${ZH_HANS_DST_FILE}" "${JA_HANS_DST_FILE}" DESTINATION "share/libmysql/${PROJECT_VERSION}") +endif() SET_SOURCE_FILES_PROPERTIES( ${JA_HANS_DST_FILE} ${ZH_HANS_DST_FILE} diff --git a/utilities/CMakeLists.txt b/utilities/CMakeLists.txt index da34524..dc397da 100644 --- a/utilities/CMakeLists.txt +++ b/utilities/CMakeLists.txt @@ -39,6 +39,21 @@ MYSQL_ADD_EXECUTABLE(comp_client_err SKIP_INSTALL ) +if(CMAKE_CROSSCOMPILING) + file(COPY + ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/include/mysql/mysqld_error.h + ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/mysqlclient_ername.h + ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/mysqld_ername.h + ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/mysqld_errmsg.h + DESTINATION ${PROJECT_BINARY_DIR}/include + ) + file(COPY + ${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/share/libmysql/${PROJECT_VERSION}/errmsg.sys + DESTINATION ${PROJECT_BINARY_DIR}/share/libmysql/english + ) + add_custom_target(GenClientError) + add_custom_target(GenError) +else() ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BINARY_DIR}/include/mysqlclient_ername.h COMMAND comp_client_err --in_file=${PROJECT_SOURCE_DIR}/include/errmsg.h @@ -97,6 +112,16 @@ MYSQL_ADD_EXECUTABLE(range_check_err SKIP_INSTALL ) + install( + FILES + ${PROJECT_BINARY_DIR}/include/mysqlclient_ername.h + ${PROJECT_BINARY_DIR}/include/mysqld_ername.h + ${PROJECT_BINARY_DIR}/include/mysqld_errmsg.h + ${PROJECT_BINARY_DIR}/share/libmysql/english/errmsg.sys + DESTINATION share/libmysql/${PROJECT_VERSION} + ) +endif() + # Set InnoDB mutex type ADD_DEFINITIONS(-DMUTEX_EVENT) ================================================ FILE: ports/libmysql/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e17ec1d0..465e42f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -818,8 +818,12 @@ INCLUDE(fileutils) INCLUDE(zlib) INCLUDE(zstd) INCLUDE(lz4) -INCLUDE(icu) -INCLUDE(libevent) +macro(MYSQL_CHECK_ICU) +endmacro() +macro(MYSQL_CHECK_LIBEVENT) +endmacro() +macro(WARN_MISSING_SYSTEM_LIBEVENT) +endmacro() INCLUDE(ssl) INCLUDE(sasl) INCLUDE(ldap) @@ -837,7 +841,8 @@ INCLUDE(curl) INCLUDE(rapidjson) INCLUDE(fprofile) INCLUDE(gloves) -INCLUDE(fido2) +macro(MYSQL_CHECK_FIDO) +endmacro() INCLUDE(win_jemalloc) IF(UNIX) @@ -1942,7 +1947,7 @@ MYSQL_CHECK_RAPIDJSON() MYSQL_CHECK_FIDO() MYSQL_CHECK_FIDO_DLLS() -IF(APPLE) +IF(0) GET_FILENAME_COMPONENT(HOMEBREW_BASE ${HOMEBREW_HOME} DIRECTORY) IF(EXISTS ${HOMEBREW_BASE}/include/boost) FOREACH(SYSTEM_LIB ICU LIBEVENT LZ4 PROTOBUF ZSTD FIDO) diff --git a/cmake/boost.cmake b/cmake/boost.cmake index c979055c..53e55fcf 100644 --- a/cmake/boost.cmake +++ b/cmake/boost.cmake @@ -301,7 +301,7 @@ IF(NOT BOOST_MAJOR_VERSION EQUAL 10) COULD_NOT_FIND_BOOST() ENDIF() -IF(NOT BOOST_MINOR_VERSION EQUAL 77) +IF(NOT BOOST_MINOR_VERSION EQUAL 77 AND NOT IGNORE_BOOST_VERSION) MESSAGE(WARNING "Boost minor version found is ${BOOST_MINOR_VERSION} " "we need 77" ) diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index 7107f4bd..bb7f3733 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -534,7 +534,7 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES TARGET_ARG) # On Windows, ssleay32.lib/libeay32.lib or libssl.lib/libcrypto.lib # must be merged into mysqlclient.lib - IF(WIN32 AND ${TARGET} STREQUAL "mysqlclient") + IF(0) SET(LINKER_EXTRA_FLAGS "") FOREACH(LIB ${SSL_LIBRARIES}) STRING_APPEND(LINKER_EXTRA_FLAGS " ${LIB}") diff --git a/cmake/lz4.cmake b/cmake/lz4.cmake index 10e7e8c8..48772329 100644 --- a/cmake/lz4.cmake +++ b/cmake/lz4.cmake @@ -46,7 +46,7 @@ FUNCTION(FIND_SYSTEM_LZ4) FIND_PATH(LZ4_INCLUDE_DIR NAMES lz4frame.h) FIND_LIBRARY(LZ4_SYSTEM_LIBRARY - NAMES lz4) + NAMES lz4d lz4 NAMES_PER_DIR) IF (LZ4_INCLUDE_DIR AND LZ4_SYSTEM_LIBRARY) SET(SYSTEM_LZ4_FOUND 1 CACHE INTERNAL "") ADD_LIBRARY(lz4_interface INTERFACE) diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake index 04e3af87..8ae52c82 100644 --- a/cmake/ssl.cmake +++ b/cmake/ssl.cmake @@ -273,7 +273,18 @@ MACRO (MYSQL_CHECK_SSL) FIND_ALTERNATIVE_SYSTEM_SSL() ENDIF() - IF(WITH_SSL STREQUAL "system" OR WITH_SSL_PATH OR ALTERNATIVE_SYSTEM_SSL) + IF(WITH_SSL STREQUAL "system") + find_package(OpenSSL REQUIRED) + set(OPENSSL_LIBRARY OpenSSL::SSL CACHE STRING "") + set(CRYPTO_LIBRARY OpenSSL::Crypto CACHE STRING "") + find_program(OPENSSL_EXECUTABLE openssl + DOC "path to the openssl executable") + set(SSL_DEFINES "-DHAVE_OPENSSL") + add_library(ext::openssl ALIAS OpenSSL::SSL) + set(SSL_LIBRARIES ext::openssl) + set(OPENSSL_APPLINK_C "${OPENSSL_APPLINK_SOURCE}") + include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR}) + ELSEIF(WITH_SSL STREQUAL "system" OR WITH_SSL_PATH OR ALTERNATIVE_SYSTEM_SSL) IF((APPLE OR WIN32) AND WITH_SSL STREQUAL "system") # FindOpenSSL.cmake knows about # http://www.slproweb.com/products/Win32OpenSSL.html diff --git a/cmake/zlib.cmake b/cmake/zlib.cmake index 3781fe09..ac312ad0 100644 --- a/cmake/zlib.cmake +++ b/cmake/zlib.cmake @@ -124,7 +124,7 @@ MACRO (MYSQL_CHECK_ZLIB) MESSAGE(FATAL_ERROR "WITH_ZLIB must be bundled or system") ENDIF() - ADD_LIBRARY(ext::zlib ALIAS zlib_interface) + ADD_LIBRARY(ext::zlib ALIAS ZLIB::ZLIB) IF(ZLIB_VERSION VERSION_LESS MIN_ZLIB_VERSION_REQUIRED) MESSAGE(FATAL_ERROR diff --git a/cmake/zstd.cmake b/cmake/zstd.cmake index 425426d1..0ae1a907 100644 --- a/cmake/zstd.cmake +++ b/cmake/zstd.cmake @@ -90,15 +90,16 @@ MACRO (MYSQL_CHECK_ZSTD) IF(WITH_ZSTD STREQUAL "bundled") MYSQL_USE_BUNDLED_ZSTD() ELSEIF(WITH_ZSTD STREQUAL "system") - FIND_SYSTEM_ZSTD() - IF (NOT SYSTEM_ZSTD_FOUND) - MESSAGE(FATAL_ERROR "Cannot find system zstd libraries.") - ENDIF() + find_package(ZSTD NAMES zstd REQUIRED) ELSE() MESSAGE(FATAL_ERROR "WITH_ZSTD must be bundled or system") ENDIF() - ADD_LIBRARY(ext::zstd ALIAS zstd_interface) + if(TARGET zstd::libzstd_shared) + add_library(ext::zstd ALIAS zstd::libzstd_shared) + else() + add_library(ext::zstd ALIAS zstd::libzstd_static) + endif() IF(ZSTD_VERSION VERSION_LESS MIN_ZSTD_VERSION_REQUIRED) MESSAGE(FATAL_ERROR ================================================ FILE: ports/libmysql/fix-pdb-install-path.patch ================================================ diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake index c45fda7..b862597 100644 --- a/cmake/install_macros.cmake +++ b/cmake/install_macros.cmake @@ -46,7 +46,7 @@ MACRO(INSTALL_DEBUG_SYMBOLS target) # No .pdb file for static libraries. IF(NOT type MATCHES "STATIC_LIBRARY") INSTALL(FILES $ - DESTINATION ${INSTALL_LOCATION} COMPONENT ${comp}) + DESTINATION bin COMPONENT ${comp}) ENDIF() ENDIF() ENDMACRO() @@ -307,7 +307,7 @@ FUNCTION(INSTALL_DEBUG_TARGET target) ENDIF() INSTALL(FILES ${debug_pdb_target_location} - DESTINATION ${ARG_DESTINATION} + DESTINATION bin ${PDB_RENAME_PARAM} CONFIGURATIONS Release RelWithDebInfo COMPONENT ${ARG_COMPONENT} ================================================ FILE: ports/libmysql/fix_dup_symbols.patch ================================================ diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index d54f4a6f..cd2132c9 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -44,7 +44,6 @@ MYSQL_ADD_EXECUTABLE(mysql pattern_matcher.cc readline.cc client_query_attributes.cc - multi_factor_passwordopt-vars.cc ${CMAKE_CURRENT_SOURCE_DIR}/common/user_registration.cc LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY} ) @@ -232,7 +231,6 @@ SET(MYSQLBINLOG_SOURCES ${CMAKE_SOURCE_DIR}/sql/binlog_reader.cc ${CMAKE_SOURCE_DIR}/sql/stream_cipher.cc ${CMAKE_SOURCE_DIR}/sql/rpl_log_encryption.cc - ${CMAKE_SOURCE_DIR}/libbinlogevents/src/trx_boundary_parser.cpp ) # The client version of log_event.cc has false positives. ================================================ FILE: ports/libmysql/install-exports.patch ================================================ diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake index baf49cd5..c45fda71 100644 --- a/cmake/install_macros.cmake +++ b/cmake/install_macros.cmake @@ -113,8 +113,30 @@ FUNCTION(MYSQL_INSTALL_TARGET target_arg) IF(ARG_NAMELINK_SKIP) SET(LIBRARY_INSTALL_ARGS NAMELINK_SKIP) ENDIF() + if(target STREQUAL "libmysql" OR target STREQUAL "mysqlclient") + target_include_directories(${target} INTERFACE $) + if(target STREQUAL "mysqlclient") + set_target_properties(${target} PROPERTIES EXPORT_NAME libmysql) # uniform + endif() + FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmysql-config.cmake" +"include(CMakeFindDependencyMacro) +find_dependency(OpenSSL) +find_dependency(Threads) +find_dependency(ZLIB) +find_dependency(zstd CONFIG) +include(\"\${CMAKE_CURRENT_LIST_DIR}/unofficial-libmysql-targets.cmake\") +if(NOT TARGET ${target}) # legacy vcpkg + add_library(${target} INTERFACE IMPORTED) + set_target_properties(${target} PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::libmysql::libmysql) +endif() +") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libmysql-config.cmake" DESTINATION "share/unofficial-libmysql") + install(EXPORT "unofficial-libmysql-targets" NAMESPACE unofficial::libmysql:: DESTINATION "share/unofficial-libmysql") + set(LIBRARY_EXPORT_ARGS EXPORT unofficial-libmysql-targets) + endif() INSTALL(TARGETS ${target} - RUNTIME DESTINATION ${ARG_DESTINATION} ${COMP} + ${LIBRARY_EXPORT_ARGS} + RUNTIME DESTINATION bin ${COMP} ARCHIVE DESTINATION ${ARG_DESTINATION} ${COMP} LIBRARY DESTINATION ${ARG_DESTINATION} ${COMP} ${LIBRARY_INSTALL_ARGS}) SET(INSTALL_LOCATION ${ARG_DESTINATION} ) diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index a5333987..c954bfb1 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -385,8 +385,12 @@ MACRO(MERGE_LIBRARIES_SHARED TARGET_ARG) IF(ARG_NAMELINK_SKIP) SET(INSTALL_ARGS NAMELINK_SKIP) ENDIF() + if(INSTALL_STATIC_LIBRARIES) + set_target_properties(${TARGET} PROPERTIES EXCLUDE_FROM_ALL 1) + else() MYSQL_INSTALL_TARGET(${TARGET} DESTINATION "${DESTINATION}" ${COMP} ${INSTALL_ARGS}) + endif() ENDIF() IF(WIN32) @@ -563,6 +567,8 @@ MACRO(MERGE_CONVENIENCE_LIBRARIES TARGET_ARG) ENDIF() IF(INSTALL_STATIC_LIBRARIES) MYSQL_INSTALL_TARGET(${TARGET} DESTINATION "${INSTALL_LIBDIR}" ${COMP}) + else() + set_target_properties(${TARGET} PROPERTIES EXCLUDE_FROM_ALL 1) ENDIF() ENDIF() ENDMACRO(MERGE_CONVENIENCE_LIBRARIES) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index c4ef5694..8e933877 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -321,6 +321,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) FOREACH(lib ${TARGET_LIB_DEPENDS}) IF (lib MATCHES "^\\-l") SET(${var} "${${var}} ${lib} ") + elseif(lib MATCHES "^ext::(openssl|zlib|zstd)" AND NOT WIN32) + list(APPEND ext_targets "${CMAKE_MATCH_1}") ELSEIF (lib MATCHES "^ext::") STRING(REGEX MATCH "ext::([a-z]+)" MATCH_LIB "${lib}") SET(SYSTEM_LIB ${CMAKE_MATCH_1}) @@ -330,6 +332,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) ELSE() SET(${var} "${${var}} ${SYSTEM_LINK_FLAG} ") ENDIF() + elseif(TARGET "${lib}" AND NOT WIN32) + # merged or shared, not external ELSEIF (lib MATCHES "^\\-L") # Search directory. Test on FreeBSD: -L/usr/local/lib -lunwind SET(${var} "${${var}} ${lib} ") @@ -365,6 +369,7 @@ IF(MSVC) GET_TARGET_PROPERTY(LIBMYSQL_OS_SHLIB_VERSION mysqlclient VERSION) GET_TARGET_PROPERTY(LIBMYSQL_OS_OUTPUT_NAME mysqlclient OUTPUT_NAME) ELSE() + EXTRACT_LINK_LIBRARIES(libmysql CLIENT_LIBS) GET_TARGET_PROPERTY(LIBMYSQL_OS_SHLIB_VERSION libmysql VERSION) GET_TARGET_PROPERTY(LIBMYSQL_OS_OUTPUT_NAME libmysql OUTPUT_NAME) ENDIF() @@ -384,6 +389,10 @@ IF (WITH_SSL STREQUAL "system") "${CONFIG_LIBS_PRIVATE}") ENDIF() ENDIF() +list(APPEND CONFIG_REQUIRES_PRIVATE ${ext_targets}) +list(REMOVE_DUPLICATES CONFIG_REQUIRES_PRIVATE) +list(JOIN CONFIG_REQUIRES_PRIVATE " " CONFIG_REQUIRES_PRIVATE) +string(REPLACE "zstd" "libzstd" CONFIG_REQUIRES_PRIVATE "${CONFIG_REQUIRES_PRIVATE}" ) MESSAGE(STATUS "CONFIG_CLIENT_LIBS ${CONFIG_CLIENT_LIBS}") MESSAGE(STATUS "CONFIG_LIBS_PRIVATE ${CONFIG_LIBS_PRIVATE}") diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index 6e8520be..bf1a45af 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -119,6 +119,16 @@ fi # Create options libs="-L$pkglibdir@RPATH_OPTION@" libs="$libs -l@LIBMYSQL_OS_OUTPUT_NAME@ @CONFIG_CLIENT_LIBS@" +if test -z "${PKG_CONFIG}" ; then + if pkg-config --version >/dev/null 2>&1 ; then + PKG_CONFIG=pkg-config + elif pkgconf --version >/dev/null 2>&1 ; then + PKG_CONFIG=pkgconf + else + PKG_CONFIG=false + fi +fi +libs="$libs $(${PKG_CONFIG} --libs @CONFIG_REQUIRES_PRIVATE@)" cflags="-I$pkgincludedir @CFLAGS@" cxxflags="-I$pkgincludedir @CXXFLAGS@" ================================================ FILE: ports/libmysql/libmysql-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(libmysql) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-libmysql CONFIG REQUIRED) set(libmysql_FOUND 1) set(MYSQL_LIBRARIES unofficial::libmysql::libmysql) ================================================ FILE: ports/libmysql/portfile.cmake ================================================ if (EXISTS "${CURRENT_INSTALLED_DIR}/include/mysql/mysql.h") message(FATAL_ERROR "FATAL ERROR: ${PORT} and libmariadb are incompatible.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mysql/mysql-server REF "mysql-${VERSION}" SHA512 f0591d263de557877a618b04871d332dc227e26c7e9b61994093dc9af29971ea6332761de5391bb8da955bd58b3b98da90722bafdbf86f36764995a70f94ae62 HEAD_REF master PATCHES dependencies.patch install-exports.patch fix_dup_symbols.patch cross-build.patch fix-pdb-install-path.patch ) file(GLOB third_party "${SOURCE_PATH}/extra/*" "${SOURCE_PATH}/include/boost_1_*") list(REMOVE_ITEM third_party "${SOURCE_PATH}/extra/libedit") if (third_party) file(REMOVE_RECURSE ${third_party}) endif() #Skip the version check for Visual Studio set(FORCE_UNSUPPORTED_COMPILER "") if(VCPKG_TARGET_IS_WINDOWS) set(FORCE_UNSUPPORTED_COMPILER 1) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT_LINKAGE) set(cross_options "") if(VCPKG_CROSSCOMPILING) list(APPEND cross_options -DCMAKE_CROSSCOMPILING=1 -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} # required, skip try_run -DHAVE_RAPIDJSON_WITH_STD_REGEX=1 ) if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND cross_options # optimistic, skip try_run -DHAVE_CLOCK_GETTIME=1 -DHAVE_CLOCK_REALTIME=1 # pessimistic, skip try_run -DHAVE_C_FLOATING_POINT_FUSED_MADD=1 -DHAVE_CXX_FLOATING_POINT_FUSED_MADD=1 -DHAVE_SETNS=0 ) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${cross_options} -DINSTALL_INCLUDEDIR=include/mysql -DINSTALL_DOCDIR=share/${PORT}/doc -DINSTALL_MANDIR=share/${PORT}/doc -DINSTALL_INFODIR=share/${PORT}/doc -DINSTALL_DOCREADMEDIR=share/${PORT} -DINSTALL_SHAREDIR=share -DINSTALL_MYSQLSHAREDIR=share/${PORT} -DWITHOUT_SERVER=ON -DWITH_BUILD_ID=OFF -DWITH_UNIT_TESTS=OFF -DENABLED_PROFILING=OFF -DWIX_DIR=OFF -DIGNORE_BOOST_VERSION=ON -DWITH_TEST_TRACE_PLUGIN=OFF -DMYSQL_MAINTAINER_MODE=OFF -DBUNDLE_RUNTIME_LIBRARIES=OFF -DCURSES_NEED_WIDE=ON -DDOWNLOAD_BOOST=OFF -DWITH_AUTHENTICATION_KERBEROS=OFF -DWITH_AUTHENTICATION_LDAP_DEFAULT=OFF -DWITH_CURL=none -DWITH_EDITLINE=bundled # not in vcpkg -DWITH_LZ4=system -DWITH_RAPIDJSON=system -DWITH_SSL=system -DWITH_SYSTEMD=OFF -DWITH_ZLIB=system -DWITH_ZSTD=system -DFORCE_UNSUPPORTED_COMPILER=${FORCE_UNSUPPORTED_COMPILER} -DINSTALL_STATIC_LIBRARIES=${BUILD_STATIC_LIBS} -DLINK_STATIC_RUNTIME_LIBRARIES=${STATIC_CRT_LINKAGE} MAYBE_UNUSED_VARIABLES BUNDLE_RUNTIME_LIBRARIES # only on windows LINK_STATIC_RUNTIME_LIBRARIES # only on windows WIX_DIR # only on windows WITH_BUILD_ID # only on windows ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libmysql) vcpkg_fixup_pkgconfig() set(MYSQL_TOOLS my_print_defaults mysql mysql_config_editor mysql_migrate_keyring mysql_secure_installation mysql_ssl_rsa_setup mysqladmin mysqlbinlog mysqlcheck mysqldump mysqlimport mysqlpump mysqlshow mysqlslap mysqltest perror zlib_decompress ) if (NOT VCPKG_CROSSCOMPILING) list(APPEND MYSQL_TOOLS comp_err ) endif() if (VCPKG_TARGET_IS_WINDOWS) list(APPEND MYSQL_TOOLS echo ) else() list(APPEND MYSQL_TOOLS mysql_config ) endif() vcpkg_copy_tools(TOOL_NAMES ${MYSQL_TOOLS} AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/debug" ) if (NOT VCPKG_TARGET_IS_WINDOWS) set(MYSQL_CONFIG_FILE "${CURRENT_PACKAGES_DIR}/tools/libmysql/mysql_config") vcpkg_replace_string("${MYSQL_CONFIG_FILE}" "/bin/mysql_.*config" "/tools/libmysql/mysql_.*config") vcpkg_replace_string("${MYSQL_CONFIG_FILE}" "'${CURRENT_PACKAGES_DIR}" "\"\$basedir\"\'") endif() file(INSTALL "${CURRENT_PORT_DIR}/libmysql-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(libedit_copying "${SOURCE_PATH}/COPYING for libedit") file(GLOB libedit_copying_infile "${SOURCE_PATH}/extra/libedit/libedit-*/COPYING") file(COPY_FILE "${libedit_copying_infile}" "${libedit_copying}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${libedit_copying}") ================================================ FILE: ports/libmysql/usage ================================================ libmysql provides CMake targets: find_package(unofficial-libmysql REQUIRED) target_link_libraries(main PRIVATE unofficial::libmysql::libmysql) ================================================ FILE: ports/libmysql/vcpkg.json ================================================ { "name": "libmysql", "version": "8.0.40", "port-version": 1, "description": "A MySQL client library for C development", "homepage": "https://github.com/mysql/mysql-server", "license": "GPL-2.0-or-later", "supports": "!android & !mingw & !uwp & !xbox", "dependencies": [ "boost-algorithm", "boost-functional", "boost-geometry", "boost-graph", "boost-optional", { "name": "libmysql", "host": true }, "lz4", { "name": "ncurses", "platform": "!windows | mingw" }, "openssl", "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/libnice/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO libnice/libnice REF 0.1.22 SHA512 545c759a827e039d0aed262a4ec31b17610f7e67d93389c939763ed3d99530a4a6c3d13864ff05a2011fb3c3847ce3380a988e554de0f92b1348ebb76f5e3da4 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgtk_doc=disabled #Enable generating the API reference (depends on GTK-Doc) -Dintrospection=disabled #Enable GObject Introspection (depends on GObject)' -Dtests=disabled -Dexamples=disabled -Dgstreamer=disabled -Dcrypto-library=openssl ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) # Could be features: # option('gupnp', type: 'feature', value: 'auto', # description: 'Enable or disable GUPnP IGD support') # option('ignored-network-interface-prefix', type: 'array', value: ['docker', 'veth', 'virbr', 'vnet'], # description: 'Ignore network interfaces whose name starts with a string from this list in the ICE connection check algorithm. For example, "virbr" to ignore virtual bridge interfaces added by virtd, which do not help in finding connectivity.') # option('crypto-library', type: 'combo', choices : ['auto', 'gnutls', 'openssl'], value : 'auto') vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES stunbdc stund AUTO_CLEAN) vcpkg_fixup_pkgconfig() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LGPL" "${SOURCE_PATH}/COPYING.MPL" ) ================================================ FILE: ports/libnice/vcpkg.json ================================================ { "name": "libnice", "version": "0.1.22", "description": "Libnice is an implementation of the IETF's Interactive Connectivity Establishment (ICE) standard (RFC 5245) and the Session Traversal Utilities for NAT (STUN) standard (RFC 5389).", "homepage": "https://nice.freedesktop.org", "license": "LGPL-2.1-only AND MPL-1.1", "supports": "!xbox", "dependencies": [ "glib", { "name": "glib", "host": true, "default-features": false }, "openssl", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libnice-gst/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO libnice/libnice REF 0.1.22 SHA512 545c759a827e039d0aed262a4ec31b17610f7e67d93389c939763ed3d99530a4a6c3d13864ff05a2011fb3c3847ce3380a988e554de0f92b1348ebb76f5e3da4 HEAD_REF master PATCHES skip_libnice.patch ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgtk_doc=disabled #Enable generating the API reference (depends on GTK-Doc) -Dintrospection=disabled #Enable GObject Introspection (depends on GObject)' -Dtests=disabled -Dexamples=disabled -Dgstreamer=enabled -Dcrypto-library=openssl ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) # Could be features: # option('gupnp', type: 'feature', value: 'auto', # description: 'Enable or disable GUPnP IGD support') # option('ignored-network-interface-prefix', type: 'array', value: ['docker', 'veth', 'virbr', 'vnet'], # description: 'Ignore network interfaces whose name starts with a string from this list in the ICE connection check algorithm. For example, "virbr" to ignore virtual bridge interfaces added by virtd, which do not help in finding connectivity.') # option('crypto-library', type: 'combo', choices : ['auto', 'gnutls', 'openssl'], value : 'auto') vcpkg_install_meson() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Move plugin pkg-config file file(COPY "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/gstnice.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(COPY "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/gstnice.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/pkgconfig/") endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LGPL" "${SOURCE_PATH}/COPYING.MPL" ) set(USAGE_FILE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage") file(WRITE "${USAGE_FILE}" "${PORT} usage:\n\n") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(APPEND "${USAGE_FILE}" "\tMake sure one of the following paths is added to the 'GST_PLUGIN_PATH' environment variable\n") file(APPEND "${USAGE_FILE}" "\tFor more information on GStreamer environment variables see https://gstreamer.freedesktop.org/documentation/gstreamer/running.html?gi-language=c#environment-variables\n") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/plugins/gstreamer") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}gstnice${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/plugins/gstreamer/${CMAKE_SHARED_LIBRARY_PREFIX}gstnice${CMAKE_SHARED_LIBRARY_SUFFIX}") if(VCPKG_TARGET_IS_WINDOWS AND EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/gstnice.pdb") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/gstreamer-1.0/gstnice.pdb" "${CURRENT_PACKAGES_DIR}/debug/plugins/gstreamer/gstnice.pdb") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(APPEND "${USAGE_FILE}" "\t\t* '/${TARGET_TRIPLET}/debug/plugins/gstreamer/'\n") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/plugins/gstreamer") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/${CMAKE_SHARED_LIBRARY_PREFIX}gstnice${CMAKE_SHARED_LIBRARY_SUFFIX}" "${CURRENT_PACKAGES_DIR}/plugins/gstreamer/${CMAKE_SHARED_LIBRARY_PREFIX}gstnice${CMAKE_SHARED_LIBRARY_SUFFIX}") if(VCPKG_TARGET_IS_WINDOWS AND EXISTS "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/gstnice.pdb") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/gstreamer-1.0/gstnice.pdb" "${CURRENT_PACKAGES_DIR}/plugins/gstreamer/gstnice.pdb") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() file(APPEND "${USAGE_FILE}" "\t\t* '/${TARGET_TRIPLET}/plugins/gstreamer/'\n") endif() else() file(APPEND "${USAGE_FILE}" "\tRegister static plugin with gst_plugin_register_static()\n") file(APPEND "${USAGE_FILE}" "\thttps://gstreamer.freedesktop.org/documentation/application-development/appendix/compiling.html#embedding-static-elements-in-your-application\n") endif() ================================================ FILE: ports/libnice-gst/skip_libnice.patch ================================================ diff --git a/meson.build b/meson.build index badce49..5641673 100644 --- a/meson.build +++ b/meson.build @@ -283,7 +283,10 @@ libm = cc.find_library('m', required: false) nice_incs = include_directories('.', 'agent', 'random', 'socket', 'stun') -nice_deps = gio_deps + [gthread_dep, crypto_dep, gupnp_igd_dep] + syslibs +# libnice dependency using pkg-config +pkg = import('pkgconfig') +libnice_dep = dependency('nice', version: '>=0.1.18', method: 'pkg-config', required: true) +cdata.set('HAVE_LIBNICE', libnice_dep.found(), description: 'Use the libnice library') ignored_iface_prefix = get_option('ignored-network-interface-prefix') if ignored_iface_prefix != [] @@ -296,12 +299,6 @@ endif gir = find_program('g-ir-scanner', required : get_option('introspection')) -subdir('agent') -subdir('stun') -subdir('socket') -subdir('random') -subdir('nice') - if gst_dep.found() subdir('gst') endif ================================================ FILE: ports/libnice-gst/vcpkg.json ================================================ { "name": "libnice-gst", "version": "0.1.22", "description": "Gstreamer Libnice plugins.", "homepage": "https://nice.freedesktop.org", "license": "LGPL-2.1-only AND MPL-1.1", "supports": "!xbox", "dependencies": [ "gstreamer", "libnice", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libnick/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NickvisionApps/libnick REF "${VERSION}" SHA512 a658db8568e84093f5b9d22acf5ac1574d4510ea7819cbbf2a37b6ea7c73629d745adf300cbdbc86e9dedaa50a22977a631f755dff607314eadebb4e575e9467 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libnick) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libnick/usage ================================================ libnick provides CMake targets: find_package(libnick CONFIG REQUIRED) target_link_libraries(main PRIVATE libnick::libnick) libnick provides pkg-config modules: libnick ================================================ FILE: ports/libnick/vcpkg.json ================================================ { "name": "libnick", "version": "2025.10.0", "maintainers": "Nicholas Logozzo nlogozzo225@gmail.com", "description": "A cross-platform base for native Nickvision applications.", "homepage": "https://github.com/NickvisionApps/libnick", "documentation": "https://github.com/NickvisionApps/libnick/tree/main/docs", "license": "GPL-3.0-only", "supports": "windows | linux | osx", "dependencies": [ "boost-json", "cpr", "gettext-libintl", { "name": "glib", "platform": "linux | osx" }, { "name": "libsecret", "platform": "linux" }, "maddy", { "name": "sqlcipher", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libnoise/fix-build.patch ================================================ diff --git a/noiseutils/CMakeLists.txt b/noiseutils/CMakeLists.txt index 07747de..68db2a2 100644 --- a/noiseutils/CMakeLists.txt +++ b/noiseutils/CMakeLists.txt @@ -19,11 +19,14 @@ if(BUILD_SHARED_LIBS) set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) target_link_libraries(${TARGET_NAME} noise) - target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) + target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $ $) # install dynamic libraries (.dll or .so) into /bin - install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") -endif() + install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseutilsTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" + LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" + ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") +else() #---------------------------------------- # build static lib (it's good practice to include a lib file for the dll) @@ -31,11 +34,22 @@ set(TARGET_NAME "${LIB_NAME}-static") add_library(${TARGET_NAME} STATIC ${libSrcs}) set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) target_link_libraries(${TARGET_NAME} noise-static) -target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) +target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $ $) # install static libraries (.lib) into /lib -install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") +install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseutilsTargets DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") #---------------------------------------- - +endif() # install include files into /include install( FILES "${PROJECT_SOURCE_DIR}/noiseutils/noiseutils.h" - DESTINATION "${CMAKE_INSTALL_PREFIX}/include/noise" ) \ No newline at end of file + DESTINATION "${CMAKE_INSTALL_PREFIX}/include/noise" ) + +install(EXPORT unofficial-noiseutilsTargets + NAMESPACE unofficial::noiseutils:: + DESTINATION share/unofficial-noiseutils +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake.in" +[[include("${CMAKE_CURRENT_LIST_DIR}/unofficial-noiseutilsTargets.cmake")]]) +configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake" @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-noiseutils-config.cmake DESTINATION share/unofficial-noiseutils) + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2757f30..47dcc51 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -60,10 +60,13 @@ if(BUILD_SHARED_LIBS) add_library(${TARGET_NAME} SHARED ${libSrcs}) endif() set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) - target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) + target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $ $) target_compile_definitions(${TARGET_NAME} PRIVATE NOISE_BUILD_DLL) - install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/bin") -endif() + install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" + LIBRARY DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" + ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") +else() #---------------------------------------- # build static lib (it's good practice to include a lib file for the dll) @@ -71,12 +74,22 @@ set(TARGET_NAME "${LIB_NAME}-static") message(STATUS "build ${TARGET_NAME}") add_library(${TARGET_NAME} STATIC ${libSrcs}) set_target_properties(${TARGET_NAME} PROPERTIES VERSION ${LIBNOISE_VERSION}) -target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src) +target_include_directories(${TARGET_NAME} PRIVATE ${PROJECT_SOURCE_DIR}/src PUBLIC $ $) target_compile_definitions(${TARGET_NAME} PUBLIC NOISE_STATIC) # install static libraries (.lib) into /lib -install(TARGETS ${TARGET_NAME} DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") +install(TARGETS ${TARGET_NAME} EXPORT unofficial-noiseTargets DESTINATION "${CMAKE_INSTALL_PREFIX}/lib") #---------------------------------------- - +endif() # install include files into /include install( DIRECTORY "${PROJECT_SOURCE_DIR}/src/noise" - DESTINATION "${CMAKE_INSTALL_PREFIX}/include" ) \ No newline at end of file + DESTINATION "${CMAKE_INSTALL_PREFIX}/include" ) + +install(EXPORT unofficial-noiseTargets + NAMESPACE unofficial::noise:: + DESTINATION share/unofficial-noise +) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake.in" +[[include("${CMAKE_CURRENT_LIST_DIR}/unofficial-noiseTargets.cmake")]]) +configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake" @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-noise-config.cmake DESTINATION share/unofficial-noise) ================================================ FILE: ports/libnoise/portfile.cmake ================================================ set( LIBNOISE_VERSION "1.0.0" ) set( LIBNOISE_COMMIT "d7e68784a2b24c632868506780eba336ede74ecd" ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RobertHue/libnoise REF ${LIBNOISE_COMMIT} SHA512 8c4d654acb4ae3d90ee62ebdf0447f876022dcb887ebfad88f39b09d29183a58e6fc1b1f1d03edff804975c8befcc6eda33c44797495285aae338c2e869a14d7 HEAD_REF master PATCHES fix-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_WALL=ON -DBUILD_SPEED_OPTIMIZED=ON -DBUILD_LIBNOISE_DOCUMENTATION=OFF -DBUILD_LIBNOISE_UTILS=ON -DBUILD_LIBNOISE_EXAMPLES=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-noise CONFIG_PATH share/unofficial-noise) vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-noiseutils CONFIG_PATH share/unofficial-noiseutils) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/noise/module/modulebase.h "if NOISE_STATIC" "if 1" ) endif() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libnoise/vcpkg.json ================================================ { "name": "libnoise", "version": "1.0.0", "port-version": 3, "description": "A general-purpose library that generates three-dimensional coherent noise. Useful for terrain generation and procedural texture generation. Uses a broad number of techniques (Perlin noise, ridged multifractal, etc.) and combinations of those techniques.", "homepage": "https://github.com/RobertHue/libnoise", "license": "LGPL-2.1", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libnop/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/libnop REF 35e800d81f28c632956c5a592e3cbe8085ecd430 SHA512 27f62710afb41165db5ef54bb2d09f89ed9c0c0cb401bffe2c52590bb28c67ed6ba68922510cdedd6dc7cc75fc267a02a2f9cbcca4bfa85042792a121e27097e ) file(INSTALL ${SOURCE_PATH}/include/nop DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/libnop/vcpkg.json ================================================ { "name": "libnop", "version-date": "2021-11-03", "description": "libnop is a header-only library for serializing and deserializing C++ data types without external code generators or runtime support libraries", "homepage": "https://github.com/google/libnop" } ================================================ FILE: ports/libnotify/0001-fix-parameter-name-omitted-error.patch ================================================ diff --git a/libnotify/launch-context.c b/libnotify/launch-context.c index facb43c..9469042 100644 --- a/libnotify/launch-context.c +++ b/libnotify/launch-context.c @@ -49,8 +49,8 @@ notification_app_launch_context_finalize (GObject *object) static char * notification_app_launch_context_get_startup_notify_id (GAppLaunchContext *context, - GAppInfo *, - GList *) + GAppInfo *gai, + GList *gl) { NotificationAppLaunchContext *self = NOTIFICATION_APP_LAUNCH_CONTEXT (context); ================================================ FILE: ports/libnotify/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 0fedd230d3c8b9bd3c783794e690752cf6388fc178854267effe3ba26aaa9248415cdf0ab994f596ace8bef59e0c1e41196f42a225221d7f0e1efc54683c310a ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-fix-parameter-name-omitted-error.patch ) vcpkg_list(SET RELEASE_OPTIONS) if("introspection" IN_LIST FEATURES) vcpkg_list(APPEND RELEASE_OPTIONS -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() vcpkg_list(APPEND RELEASE_OPTIONS -Dintrospection=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false -Dman=false -Dgtk_doc=false -Ddocbook_docs=disabled OPTIONS_RELEASE ${RELEASE_OPTIONS} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libnotify/vcpkg.json ================================================ { "name": "libnotify", "version": "0.8.8", "description": "A library for sending desktop notifications", "homepage": "https://gitlab.gnome.org/GNOME/libnotify", "license": "LGPL-2.1-or-later", "supports": "linux", "dependencies": [ { "name": "gdk-pixbuf", "default-features": false }, "glib", { "name": "glib", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Enable GObject introspection", "supports": "!static", "dependencies": [ { "name": "gdk-pixbuf", "default-features": false, "features": [ "introspection" ] }, "gobject-introspection" ] } } } ================================================ FILE: ports/libobfuscate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO adamyaxley/Obfuscate REF a46cd5d8bd09e44afb27f97cde842e9473a4fdf6 SHA512 9be3df71cbec3819553d46a2ab7f613401f4b1ef6a2d3bff2f23fef6aec3ae6475cbfc3413d9be46b46e911f1ad8ffdb1a839b54da46ca0d152a07b6829a06c5 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/obfuscate.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libobfuscate/vcpkg.json ================================================ { "name": "libobfuscate", "version-date": "2024-07-10", "description": "Guaranteed compile-time string literal obfuscation header-only library for C++14.", "homepage": "https://github.com/adamyaxley/Obfuscate", "license": "Unlicense" } ================================================ FILE: ports/libodb/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libodb VERSION 2.4.0 LANGUAGES CXX) set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") configure_file(config.unix.h.in ${CMAKE_CURRENT_SOURCE_DIR}/odb/details/config.h COPYONLY) file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cxx) if (WIN32) list(FILTER libodb_src EXCLUDE REGEX /posix/.*) elseif (UNIX) list(FILTER libodb_src EXCLUDE REGEX /win32/.*) endif() add_library(libodb ${libodb_src}) target_include_directories(libodb PUBLIC $ $ ) if(BUILD_SHARED_LIBS) target_compile_definitions(libodb PRIVATE -DLIBODB_DYNAMIC_LIB) else() target_compile_definitions(libodb PRIVATE -DLIBODB_STATIC_LIB) endif() install(TARGETS libodb EXPORT odb_libodbConfig COMPONENT libodb ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(LIBODB_INSTALL_HEADERS) install(DIRECTORY odb DESTINATION include/ COMPONENT libodb FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.ixx" PATTERN "*.txx" ) endif() install(EXPORT odb_libodbConfig NAMESPACE odb:: COMPONENT libodb DESTINATION share/odb) export(TARGETS libodb NAMESPACE odb:: FILE odb_libodbConfig.cmake) ================================================ FILE: ports/libodb/config.unix.h.in ================================================ /* odb/details/config.h. Generated from config.h.in by configure. */ /* file : odb/details/config.h.in * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ /* This file is automatically processed by configure. */ #ifndef ODB_DETAILS_CONFIG_H #define ODB_DETAILS_CONFIG_H /* #undef ODB_THREADS_NONE */ #define ODB_THREADS_POSIX 1 /* #undef ODB_THREADS_WIN32 */ #define ODB_THREADS_TLS_KEYWORD 1 /* #undef ODB_THREADS_TLS_DECLSPEC */ /* #undef LIBODB_STATIC_LIB */ #endif /* ODB_DETAILS_CONFIG_H */ ================================================ FILE: ports/libodb/fix-linux.patch ================================================ diff --git a/odb/details/shared-ptr/base.cxx b/odb/details/shared-ptr/base.cxx index b95797b..6cf8ed7 100644 --- a/odb/details/shared-ptr/base.cxx +++ b/odb/details/shared-ptr/base.cxx @@ -54,7 +54,7 @@ namespace odb } void* -operator new (size_t n, odb::details::share s) throw (std::bad_alloc) +operator new (size_t n, odb::details::share s) { if (s == odb::details::shared) { @@ -74,7 +74,7 @@ operator new (size_t n, odb::details::share s) throw (std::bad_alloc) } void -operator delete (void* p, odb::details::share s) throw () +operator delete (void* p, odb::details::share s) { // This version of operator delete is only called when the c-tor // fails. In this case there is no object and we can just free the diff --git a/odb/details/shared-ptr/base.hxx b/odb/details/shared-ptr/base.hxx index 4a38945..1c951a8 100644 --- a/odb/details/shared-ptr/base.hxx +++ b/odb/details/shared-ptr/base.hxx @@ -35,10 +35,10 @@ namespace odb } LIBODB_EXPORT void* -operator new (std::size_t, odb::details::share) throw (std::bad_alloc); +operator new (std::size_t, odb::details::share); LIBODB_EXPORT void -operator delete (void*, odb::details::share) throw (); +operator delete (void*, odb::details::share); namespace odb { @@ -62,16 +62,16 @@ namespace odb _ref_count () const; void* - operator new (std::size_t) throw (std::bad_alloc); + operator new (std::size_t); void* - operator new (std::size_t, share) throw (std::bad_alloc); + operator new (std::size_t, share); void - operator delete (void*, share) throw (); + operator delete (void*, share); void - operator delete (void*) throw (); + operator delete (void*); struct refcount_callback { diff --git a/odb/details/shared-ptr/base.ixx b/odb/details/shared-ptr/base.ixx index 9bf7c94..e03ea86 100644 --- a/odb/details/shared-ptr/base.ixx +++ b/odb/details/shared-ptr/base.ixx @@ -64,25 +64,25 @@ namespace odb } inline void* shared_base:: - operator new (std::size_t n) throw (std::bad_alloc) + operator new (std::size_t n) { return ::operator new (n); } inline void* shared_base:: - operator new (std::size_t n, share) throw (std::bad_alloc) + operator new (std::size_t n, share) { return ::operator new (n); } inline void shared_base:: - operator delete (void* p, share) throw () + operator delete (void* p, share) { ::operator delete (p); } inline void shared_base:: - operator delete (void* p) throw () + operator delete (void* p) { ::operator delete (p); } ================================================ FILE: ports/libodb/odbConfig.cmake ================================================ set(_supported_components libodb sqlite mysql pgsql) foreach(_comp ${odb_FIND_COMPONENTS}) if(NOT ";${_supported_components};" MATCHES _comp) set(odb_FOUND False) set(odb_NOTFOUND_MESSAGE "Unsupported component: ${_comp}") endif() include("${CMAKE_CURRENT_LIST_DIR}/odb_${_comp}Config.cmake") endforeach() set(odb_FOUND True) ================================================ FILE: ports/libodb/portfile.cmake ================================================ include(CMakePackageConfigHelpers) vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-2.4.0.tar.gz" FILENAME "libodb-2.4.0.tar.gz" SHA512 f1311458634695eb6ba307ebfd492e3b260e7beb06db1c5c46df58c339756be4006322cdc4e42d055bf5b2ad14ce4656ddcafcc4e16c282034db8a77d255c3eb ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-linux.patch ) file(REMOVE "${SOURCE_PATH}/version") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_CXX_STANDARD=11 # 17 removes 'auto_ptr' OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() if(NOT VCPKG_BUILD_TYPE) file(READ "${CURRENT_PACKAGES_DIR}/debug/share/odb/odb_libodbConfig-debug.cmake" LIBODB_DEBUG_TARGETS) string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" LIBODB_DEBUG_TARGETS "${LIBODB_DEBUG_TARGETS}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/odb/odb_libodbConfig-debug.cmake" "${LIBODB_DEBUG_TARGETS}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/odbConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/odb") write_basic_package_version_file("${CURRENT_PACKAGES_DIR}/share/odb/odbConfigVersion.cmake" VERSION 2.4.0 COMPATIBILITY SameMajorVersion ) set(LIBODB_HEADER_PATH "${CURRENT_PACKAGES_DIR}/include/odb/details/export.hxx") file(READ "${LIBODB_HEADER_PATH}" LIBODB_HEADER) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) string(REPLACE "#ifdef LIBODB_STATIC_LIB" "#if 1" LIBODB_HEADER "${LIBODB_HEADER}") else() string(REPLACE "#ifdef LIBODB_STATIC_LIB" "#if 0" LIBODB_HEADER "${LIBODB_HEADER}") endif() file(WRITE "${LIBODB_HEADER_PATH}" "${LIBODB_HEADER}") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libodb/vcpkg.json ================================================ { "name": "libodb", "version": "2.4.0", "port-version": 12, "description": "ODB library, base runtime for the ODB ORM solution", "homepage": "https://www.codesynthesis.com/products/odb/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libodb-boost/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libodb-boost VERSION 2.4.0 LANGUAGES CXX) find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) # FIXME: should we require boost? which packages? # find_package(PostgreSQL REQUIRED) set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cxx) add_library(libodb-boost ${libodb_src}) target_include_directories(libodb-boost PUBLIC $ $ ) target_link_libraries(libodb-boost PRIVATE odb::libodb) if(BUILD_SHARED_LIBS) target_compile_definitions(libodb-boost PRIVATE -DLIBODB_BOOST_DYNAMIC_LIB) else() target_compile_definitions(libodb-boost PRIVATE -DLIBODB_BOOST_STATIC_LIB) endif() install(TARGETS libodb-boost EXPORT odb_boostConfig COMPONENT boost ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(LIBODB_INSTALL_HEADERS) install(DIRECTORY odb DESTINATION include/ COMPONENT sqlite FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.ixx" PATTERN "*.txx" PATTERN "*.options" ) endif() install(EXPORT odb_boostConfig NAMESPACE odb:: COMPONENT boost DESTINATION share/odb) export(TARGETS libodb-boost NAMESPACE odb:: FILE odb_boostConfig.cmake) ================================================ FILE: ports/libodb-boost/config.h ================================================ /* odb/boost/details/config.h. Generated from config.h.in by configure. */ /* file : odb/boost/details/config.h.in * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ /* This file is automatically processed by configure. */ #ifndef ODB_BOOST_DETAILS_CONFIG_H #define ODB_BOOST_DETAILS_CONFIG_H /* #undef LIBODB_BOOST_STATIC_LIB */ #endif /* ODB_BOOST_DETAILS_CONFIG_H */ ================================================ FILE: ports/libodb-boost/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-boost-2.4.0.tar.gz" FILENAME "libodb-boost-2.4.0.tar.gz" SHA512 af716b0385cf4ea18b20dcd5880c69c43cfc195eec4ff196a8e438833306489c39ab06a494e5d60cd08ba0d94caa05bd07e5f3fa836d835bad15c8a2ad7de306 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(REMOVE "${SOURCE_PATH}/version") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h" DESTINATION "${SOURCE_PATH}/odb/boost/details") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) file(READ "${CURRENT_PACKAGES_DIR}/debug/share/odb/odb_boostConfig-debug.cmake" LIBODB_DEBUG_TARGETS) string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" LIBODB_DEBUG_TARGETS "${LIBODB_DEBUG_TARGETS}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/odb/odb_boostConfig-debug.cmake" "${LIBODB_DEBUG_TARGETS}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libodb-boost/vcpkg.json ================================================ { "name": "libodb-boost", "version": "2.4.0", "port-version": 8, "description": "Description: Boost support for the ODB ORM library", "dependencies": [ "libodb", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libodb-mysql/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libodb-mysql VERSION 2.4.0 LANGUAGES CXX) find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) configure_file(config.unix.h.in ${CMAKE_CURRENT_SOURCE_DIR}/odb/mysql/details/config.h COPYONLY) INCLUDE_DIRECTORIES(${MYSQL_INCLUDE_DIR}) set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") file(GLOB_RECURSE libodb_src RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cxx) add_library(libodb-mysql ${libodb_src}) target_include_directories(libodb-mysql PUBLIC $ $ ) target_link_libraries(libodb-mysql PRIVATE odb::libodb ${MYSQL_LIB}) if(BUILD_SHARED_LIBS) target_compile_definitions(libodb-mysql PRIVATE -DLIBODB_MYSQL_DYNAMIC_LIB -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY) else() target_compile_definitions(libodb-mysql PRIVATE -DLIBODB_MYSQL_STATIC_LIB -DLIBODB_MYSQL_HAVE_UNLOCK_NOTIFY) endif() install(TARGETS libodb-mysql EXPORT odb_mysqlConfig COMPONENT mysql ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(LIBODB_INSTALL_HEADERS) install(DIRECTORY odb DESTINATION include/ COMPONENT mysql FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.ixx" PATTERN "*.txx" ) endif() install(EXPORT odb_mysqlConfig NAMESPACE odb:: COMPONENT mysql DESTINATION share/odb) export(TARGETS libodb-mysql NAMESPACE odb:: FILE odb_mysqlConfig.cmake) ================================================ FILE: ports/libodb-mysql/adapter_mysql_8.0.patch ================================================ diff --git a/odb/mysql/mysql-types.hxx b/odb/mysql/mysql-types.hxx index 1254ccd..5396791 100644 --- a/odb/mysql/mysql-types.hxx +++ b/odb/mysql/mysql-types.hxx @@ -7,7 +7,7 @@ #include -typedef char my_bool; +typedef bool my_bool; typedef struct st_mysql_bind MYSQL_BIND; #ifdef LIBODB_MYSQL_INCLUDE_SHORT ================================================ FILE: ports/libodb-mysql/config.unix.h.in ================================================ /* odb/mysql/details/config.h. Generated from config.h.in by configure. */ /* file : odb/mysql/details/config.h.in * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ /* This file is automatically processed by configure. */ #ifndef ODB_MYSQL_DETAILS_CONFIG_H #define ODB_MYSQL_DETAILS_CONFIG_H /* #undef LIBODB_MYSQL_STATIC_LIB */ /* #undef LIBODB_MYSQL_INCLUDE_SHORT */ #define LIBODB_MYSQL_INCLUDE_LONG 1 /* #undef LIBODB_MYSQL_THR_KEY_VISIBLE */ #endif /* ODB_MYSQL_DETAILS_CONFIG_H */ ================================================ FILE: ports/libodb-mysql/fix-redefinttion.patch ================================================ diff --git a/odb/mysql/mysql-types.hxx b/odb/mysql/mysql-types.hxx index 5396791..32a2a03 100644 --- a/odb/mysql/mysql-types.hxx +++ b/odb/mysql/mysql-types.hxx @@ -7,13 +7,24 @@ #include +#include + typedef bool my_bool; + +#if !defined(LIBODB_MYSQL_MARIADB) && MYSQL_VERSION_ID >= 80011 +struct MYSQL_BIND; +#else typedef struct st_mysql_bind MYSQL_BIND; +#endif -#ifdef LIBODB_MYSQL_INCLUDE_SHORT -# include +#ifdef LIBODB_MYSQL_MARIADB +# include #else -# include +# ifdef LIBODB_MYSQL_INCLUDE_SHORT +# include +# else +# include +# endif #endif #endif // ODB_MYSQL_MYSQL_TYPES_HXX ================================================ FILE: ports/libodb-mysql/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.codesynthesis.com/download/odb/2.4/libodb-mysql-2.4.0.tar.gz" FILENAME "libodb-mysql-2.4.0.tar.gz" SHA512 c27b73c3f61dccdd149c11c122185f645a00d5bc346b366ee65b738f8719c39d03fad07a0d55b62b3db9e3ad2507679c24ddda331e5d110f367ad32f7cf8b910 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES adapter_mysql_8.0.patch fix-redefinttion.patch ) file(REMOVE "${SOURCE_PATH}/version") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in" DESTINATION "${SOURCE_PATH}") set(MYSQL_INCLUDE_DIR "${CURRENT_INSTALLED_DIR}/include/mysql") find_library(MYSQL_LIB NAMES libmysql mysqlclient PATH_SUFFIXES lib PATHS "${CURRENT_INSTALLED_DIR}" NO_DEFAULT_PATH REQUIRED) find_library(MYSQL_LIB_DEBUG NAMES libmysql mysqlclient PATH_SUFFIXES lib PATHS "${CURRENT_INSTALLED_DIR}/debug" NO_DEFAULT_PATH) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DMYSQL_INCLUDE_DIR=${MYSQL_INCLUDE_DIR} OPTIONS_RELEASE -DMYSQL_LIB=${MYSQL_LIB} OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF -DMYSQL_LIB=${MYSQL_LIB_DEBUG} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/odb PACKAGE_NAME odb) vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libodb-mysql/usage ================================================ The package libodb-mysql provides CMake integration: find_package(odb CONFIG COMPONENTS libodb mysql REQUIRED) target_link_libraries(main PRIVATE odb::libodb-mysql) ================================================ FILE: ports/libodb-mysql/vcpkg.json ================================================ { "name": "libodb-mysql", "version": "2.4.0", "port-version": 11, "description": "MySQL support for the ODB ORM library", "homepage": "https://www.codesynthesis.com/products/odb/", "dependencies": [ "libmysql", "libodb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libodb-pgsql/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libodb-pgsql VERSION 2.4.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) # 17 removes 'auto_ptr' find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) find_package(PostgreSQL REQUIRED) configure_file(config.unix.h.in ${CMAKE_CURRENT_SOURCE_DIR}/odb/pgsql/details/config.h COPYONLY) set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cxx) list(FILTER libodb_src EXCLUDE REGEX /posix/.*) add_library(libodb-pgsql ${libodb_src}) target_include_directories(libodb-pgsql PUBLIC $ $ ) target_link_libraries(libodb-pgsql PRIVATE odb::libodb ${PostgreSQL_LIBRARY}) if(BUILD_SHARED_LIBS) target_compile_definitions(libodb-pgsql PRIVATE -DLIBODB_PGSQL_DYNAMIC_LIB) else() target_compile_definitions(libodb-pgsql PRIVATE -DLIBODB_PGSQL_STATIC_LIB) endif() install(TARGETS libodb-pgsql EXPORT odb_pgsqlConfig COMPONENT pgsql ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(LIBODB_INSTALL_HEADERS) install(DIRECTORY odb DESTINATION include/ COMPONENT sqlite FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.ixx" PATTERN "*.txx" ) endif() install(EXPORT odb_pgsqlConfig NAMESPACE odb:: COMPONENT pgsql DESTINATION share/odb) export(TARGETS libodb-pgsql NAMESPACE odb:: FILE odb_pgsqlConfig.cmake) ================================================ FILE: ports/libodb-pgsql/config.unix.h.in ================================================ /* odb/pgsql/details/config.h. Generated from config.h.in by configure. */ /* file : odb/pgsql/details/config.h.in * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ /* This file is automatically processed by configure. */ #ifndef ODB_PGSQL_DETAILS_CONFIG_H #define ODB_PGSQL_DETAILS_CONFIG_H /* #undef LIBODB_PGSQL_STATIC_LIB */ #endif /* ODB_PGSQL_DETAILS_CONFIG_H */ ================================================ FILE: ports/libodb-pgsql/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-pgsql-2.4.0.tar.gz" FILENAME "libodb-pgsql-2.4.0.tar.gz" SHA512 535515356233b815f144c0098940174f7a530e7fa4e930c0a9ebdc255fdb8bac8cdcceac31f25be4864105323e00bfe50808efa648e7c8ffb5a944e52f514b69 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(REMOVE "${SOURCE_PATH}/version") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME odb) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libodb-pgsql/vcpkg.json ================================================ { "name": "libodb-pgsql", "version": "2.4.0", "port-version": 8, "description": "Description: PostgreSQL support for the ODB ORM library", "homepage": "https://www.codesynthesis.com/products/odb/", "dependencies": [ "libodb", "libpq", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libodb-sqlite/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libodb-sqlite VERSION 2.4.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) # 17 removes 'auto_ptr' find_package(odb 2.4.0 REQUIRED COMPONENTS libodb) find_package(unofficial-sqlite3 CONFIG) configure_file(config.unix.h.in odb/sqlite/details/config.h COPYONLY) set(LIBODB_INSTALL_HEADERS ON CACHE BOOL "Install the header files (a debug install)") file(GLOB_RECURSE libodb_src LIST_DIRECTORIES False RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cxx) list(FILTER libodb_src EXCLUDE REGEX /posix/.*) add_library(libodb-sqlite ${libodb_src}) target_include_directories(libodb-sqlite PUBLIC $ $ $ ) target_link_libraries(libodb-sqlite PRIVATE odb::libodb unofficial::sqlite3::sqlite3) if(BUILD_SHARED_LIBS) target_compile_definitions(libodb-sqlite PRIVATE -DLIBODB_SQLITE_DYNAMIC_LIB -DLIBODB_SQLITE_HAVE_UNLOCK_NOTIFY) else() target_compile_definitions(libodb-sqlite PRIVATE -DLIBODB_SQLITE_STATIC_LIB -DLIBODB_SQLITE_HAVE_UNLOCK_NOTIFY) endif() install(TARGETS libodb-sqlite EXPORT odb_sqliteConfig COMPONENT sqlite ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(LIBODB_INSTALL_HEADERS) install( DIRECTORY odb DESTINATION include/ COMPONENT sqlite FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.ixx" PATTERN "*.txx" ) install( FILES config.unix.h.in DESTINATION include/odb/sqlite/details COMPONENT sqlite RENAME config.h ) endif() install(EXPORT odb_sqliteConfig NAMESPACE odb:: COMPONENT sqlite DESTINATION share/odb) export(TARGETS libodb-sqlite NAMESPACE odb:: FILE odb_sqliteConfig.cmake) ================================================ FILE: ports/libodb-sqlite/config.unix.h.in ================================================ /* odb/sqlite/details/config.h. Generated from config.h.in by configure. */ /* file : odb/sqlite/details/config.h.in * copyright : Copyright (c) 2009-2015 Code Synthesis Tools CC * license : GNU GPL v2; see accompanying LICENSE file */ /* This file is automatically processed by configure. */ #ifndef ODB_SQLITE_DETAILS_CONFIG_H #define ODB_SQLITE_DETAILS_CONFIG_H /* #undef LIBODB_SQLITE_STATIC_LIB */ #define LIBODB_SQLITE_HAVE_UNLOCK_NOTIFY 1 #endif /* ODB_SQLITE_DETAILS_CONFIG_H */ ================================================ FILE: ports/libodb-sqlite/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://www.codesynthesis.com/download/odb/2.4/libodb-sqlite-2.4.0.tar.gz" FILENAME "libodb-sqlite-2.4.0.tar.gz" SHA512 af16da7c82cf8845ca3b393fbd8957a92b05ebc925a5191f20d414ab558345850073cd9c46457d0ef0edfb12ebcb27f267b934c9c69ef598380242fe920c8577 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(REMOVE "${SOURCE_PATH}/version") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/config.unix.h.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DLIBODB_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() if(NOT VCPKG_BUILD_TYPE) file(READ "${CURRENT_PACKAGES_DIR}/debug/share/odb/odb_sqliteConfig-debug.cmake" LIBODB_DEBUG_TARGETS) string(REPLACE "\${_IMPORT_PREFIX}" "\${_IMPORT_PREFIX}/debug" LIBODB_DEBUG_TARGETS "${LIBODB_DEBUG_TARGETS}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/odb/odb_sqliteConfig-debug.cmake" "${LIBODB_DEBUG_TARGETS}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libodb-sqlite/vcpkg.json ================================================ { "name": "libodb-sqlite", "version": "2.4.0", "port-version": 13, "description": "Sqlite support for the ODB ORM library", "homepage": "https://www.codesynthesis.com/products/odb/", "dependencies": [ "libodb", "sqlite3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libofx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libofx/libofx REF 0.10.9 SHA512 be7b77f77a012fe04121c615b88f674bba11f79b5353b3c4594de395f9f787c3a9b6910693f5ba701421387fc13c13e7977ab73893e18c6a0b6e1292b7d1cfe2 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "iconv" ENABLE_ICONV "ofxdump" ENABLE_OFXDUMP "ofx2qif" ENABLE_OFX2QIF ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_OFXCONNECT=OFF # depends on libxml++ ABI 2.6, while vcpkg ships ABI 4.0. See https://libxmlplusplus.github.io/libxmlplusplus/#abi-versions ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME LibOFX CONFIG_PATH lib/cmake/libofx) vcpkg_copy_pdbs() list(REMOVE_ITEM FEATURES core iconv) if(FEATURES) vcpkg_copy_tools(TOOL_NAMES ${FEATURES} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libofx/vcpkg.json ================================================ { "name": "libofx", "version": "0.10.9", "port-version": 1, "description": "OFX banking protocol abstraction library", "homepage": "https://github.com/libofx/libofx", "license": "GPL-2.0-only", "supports": "!uwp & !xbox", "dependencies": [ "libopensp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "iconv" ], "features": { "iconv": { "description": "Builds with ICONV support for encoding conversion", "dependencies": [ "libiconv" ] }, "ofx2qif": { "description": "Enables OFX file to QIF (Quicken Interchange Format) file converter" }, "ofxdump": { "description": "Enables ofxdump utility which prints, in human readable form, everything the library understands about a file" } } } ================================================ FILE: ports/libogg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/ogg REF v${VERSION} SHA512 c247e1da8b12f8b33272fafb6d7c171a1a2687c3632977439fa60b96ccc2ad751d88a2931bb3e18e1ddf2eea2e82cdd0aab087b2ec5393a9228c703476fa0167 HEAD_REF master ) if(VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${SOURCE_PATH}/win32/ogg.def" "LIBRARY ogg" "LIBRARY libogg") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_VERSION_MINIMUM=3.5 #https://gitlab.xiph.org/xiph/ogg/-/issues/2304 -DINSTALL_DOCS=OFF -DINSTALL_PKG_CONFIG_MODULE=ON -DBUILD_TESTING=OFF MAYBE_UNUSED_VARIABLES CMAKE_POLICY_VERSION_MINIMUM ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Ogg PACKAGE_NAME ogg) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libogg/vcpkg.json ================================================ { "name": "libogg", "version": "1.3.6", "port-version": 1, "description": "Ogg is a multimedia container format, and the native file and stream format for the Xiph.org multimedia codecs.", "homepage": "https://www.xiph.org/ogg", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libopenmpt/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) project(libopenmpt) if(MSVC) add_compile_options( /W3 /wd4005 /wd4267 /wd4244 /wd4996 /wd4100 /wd4018 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS ) endif() find_package(ZLIB REQUIRED) find_package(mpg123 CONFIG REQUIRED) find_package(Vorbis CONFIG REQUIRED) file(GLOB HEADERS libopenmpt/*.h libopenmpt/*.hpp src/openmpt/all/*.hpp) list(FILTER HEADERS EXCLUDE REGEX "_impl\\.hpp$|_internal\\.h$") include_directories( . src build/svn_version libopenmpt common soundbase sounddsp soundlib openmpt123 ) file(GLOB_RECURSE SOURCES common/*.cpp soundbase/*.cpp sounddsp/*.cpp # Because this is a GLOB_RECURSE, soundlib/plugins/*.cpp will be included soundlib/*.cpp libopenmpt/libopenmpt_c.cpp libopenmpt/libopenmpt_cxx.cpp libopenmpt/libopenmpt_ext_impl.cpp libopenmpt/libopenmpt_impl.cpp ) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_library(libopenmpt ${SOURCES}) set_target_properties(libopenmpt PROPERTIES OUTPUT_NAME openmpt) target_compile_definitions(libopenmpt PRIVATE -DMPT_WITH_MPG123 -DMPT_WITH_OGG -DMPT_WITH_VORBIS -DMPT_WITH_VORBISFILE -DMPT_WITH_ZLIB -DMPT_BUILD_VCPKG -DLIBOPENMPT_BUILD ) if(BUILD_SHARED_LIBS) target_compile_definitions( libopenmpt PRIVATE -DLIBOPENMPT_BUILD_DLL ) endif() target_include_directories( libopenmpt PUBLIC $ ) target_link_libraries( libopenmpt PRIVATE MPG123::libmpg123 Vorbis::vorbisfile Vorbis::vorbis ZLIB::ZLIB ) set(FAKE_CXX_LINKAGE "") foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) continue() elseif(EXISTS "${lib}") string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") else() string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") endif() endforeach() set(LIBOPENMPT_LIBS_PRIVATE "${FAKE_CXX_LINKAGE}") set(LIBOPENMPT_REQUIRES_PRIVATE "zlib vorbis vorbisfile libmpg123") set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix [[${prefix}]]) set(includedir [[${prefix}/include]]) set(libdir [[${prefix}/lib]]) configure_file(libopenmpt/libopenmpt.pc.in libopenmpt.pc) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libopenmpt.pc" DESTINATION lib/pkgconfig) install(TARGETS libopenmpt EXPORT libopenmpt-targets) install(EXPORT libopenmpt-targets DESTINATION share/libopenmpt NAMESPACE libopenmpt::) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libopenmpt-config.cmake" [[ include(CMakeFindDependencyMacro) find_dependency(ZLIB) find_dependency(mpg123 CONFIG) find_dependency(Vorbis CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/libopenmpt-targets.cmake") ]]) install(FILES ${HEADERS} DESTINATION include/libopenmpt) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libopenmpt-config.cmake" DESTINATION share/libopenmpt) ================================================ FILE: ports/libopenmpt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenMPT/openmpt REF "libopenmpt-${VERSION}" SHA512 6e903b9d761e63fd8ab495cd9389ceed3100b2d0f2a5804aeff2c29cfc889cd32243c937efc2e534d883f8c032637c26e956d0bfcb93fd1d966d7cc3d6f338f4 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/libopenmpt/libopenmpt_config.h "defined(LIBOPENMPT_USE_DLL)" "0") else() vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/libopenmpt/libopenmpt_config.h "defined(LIBOPENMPT_USE_DLL)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libopenmpt/vcpkg.json ================================================ { "name": "libopenmpt", "version": "0.8.4", "description": "A cross-platform C++ and C library to decode tracked music files (modules) into a raw PCM audio stream.", "homepage": "https://openmpt.org/", "license": "BSD-3-Clause", "dependencies": [ "libogg", "libvorbis", "mpg123", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libopensp/opensp.pc.in ================================================ prefix=@PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include/OpenSP Name: opensp Description: SGML parser algorithm library Version: @VERSION@ Libs: -L${libdir} -losp Libs.private: @EXTRA_LIBS@ Cflags: -I${includedir} Cflags.private: ================================================ FILE: ports/libopensp/opensp_1.5.2-13.diff ================================================ --- opensp-1.5.2.orig/sx/XmlOutputEventHandler.cxx +++ opensp-1.5.2/sx/XmlOutputEventHandler.cxx @@ -1199,12 +1199,22 @@ // Check to make sure we haven't passed outside of the // output directory char *dirs = strdup (filePath); +#ifdef MAXPATHLEN char realDirs[MAXPATHLEN]; char realOutputDir[MAXPATHLEN]; +#else + char *realDirs; + char *realOutputDir; +#endif char *outputDir = strdup(outputDir_); +#ifdef MAXPATHLEN realpath((const char *)dirname(dirs), realDirs); realpath((const char *)dirname(outputDir), realOutputDir); +#else + realDirs = realpath((const char *)dirname(dirs), NULL); + realOutputDir = realpath((const char *)dirname(outputDir), NULL); +#endif if (strncmp(realDirs, realOutputDir, strlen (realOutputDir)) != 0) { app_->message(XmlOutputMessages::pathOutsideOutputDirectory, @@ -1214,6 +1224,11 @@ } } +#ifndef MAXPATHLEN + free(realDirs); + free(realOutputDir); +#endif + // Make the necessary directories maybeCreateDirectories(dirname(dirs)); ================================================ FILE: ports/libopensp/portfile.cmake ================================================ set(PATCHES opensp_1.5.2-13.diff # http://deb.debian.org/debian/pool/main/o/opensp/opensp_1.5.2-13.diff.gz use-cpp-using-declarations.patch ) if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) list(APPEND PATCHES windows_cmake_build.diff) # https://invent.kde.org/packaging/craft-blueprints-kde/-/tree/master/libs/libopensp endif() if (VCPKG_TARGET_IS_UWP) list(APPEND PATCHES uwp_getenv_fix.diff) endif() vcpkg_download_distfile(ARCHIVE URLS "https://downloads.sourceforge.net/project/openjade/opensp/${VERSION}/OpenSP-${VERSION}.tar.gz" FILENAME "OpenSP-${VERSION}.tar.gz" SHA512 a7dcc246ba7f58969ecd6d107c7b82dede811e65f375b7aa3e683621f2c6ff3e7dccefdd79098fcadad6cca8bb94c2933c63f4701be2c002f9a56f1bbe6b047e ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE ${VERSION} PATCHES ${PATCHES} ) if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() else() if(VCPKG_TARGET_IS_OSX) # libintl links to those set(EXTRA_LIBS "-framework CoreFoundation -lintl -liconv") endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-doc-build "LDFLAGS=${EXTRA_LIBS} \$LDFLAGS" ) vcpkg_make_install() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/opensp.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opensp.pc" @ONLY) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() 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/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libopensp/use-cpp-using-declarations.patch ================================================ diff --git a/include/IList.h b/include/IList.h index e66cd00..c94cfed 100644 --- a/include/IList.h +++ b/include/IList.h @@ -26,7 +26,9 @@ public: void swap(IList &list) { IListBase::swap(list); } T *head() const { return (T *)IListBase::head(); } T *get() { return (T *)IListBase::get(); } + using IListBase::clear; + using IListBase::empty; friend class IListIter; private: diff --git a/include/IListIter.h b/include/IListIter.h index 74e1bd6..d322bf8 100644 --- a/include/IListIter.h +++ b/include/IListIter.h @@ -17,7 +17,9 @@ public: IListIter(const IList &list) : IListIterBase(list) { } T *cur() const { return (T *)IListIterBase::cur(); } + using IListIterBase::next; + using IListIterBase::done; }; diff --git a/include/Ptr.h b/include/Ptr.h index c6b2767..5dda0ca 100644 --- a/include/Ptr.h +++ b/include/Ptr.h @@ -69,7 +69,9 @@ public: const T *operator->() const { return Ptr::pointer(); } const T &operator*() const { return *Ptr::pointer(); } void swap(ConstPtr &p) { Ptr::swap(p); } + using Ptr::isNull; + using Ptr::clear; Boolean operator==(const Ptr &p) const { return Ptr::operator==(p); } Boolean operator!=(const Ptr &p) const { return Ptr::operator!=(p); } diff --git a/lib/Parser.h b/lib/Parser.h index e721000..c6c41b2 100644 --- a/lib/Parser.h +++ b/lib/Parser.h @@ -62,15 +62,25 @@ public: Parser(const SgmlParser::Params &); Event *nextEvent(); void parseAll(EventHandler &, const volatile sig_atomic_t *cancelPtr); + using ParserState::sdPointer; + using ParserState::instanceSyntaxPointer; + using ParserState::prologSyntaxPointer; + using ParserState::activateLinkType; + using ParserState::allLinkTypesActivated; + using ParserState::entityManager; + using ParserState::entityCatalog; + using ParserState::baseDtd; + using ParserState::options; + using ParserState::instantiateDtd; friend class PiAttspecParser; private: ================================================ FILE: ports/libopensp/uwp_getenv_fix.diff ================================================ diff --git a/config.h b/config.h index 6a2b097..7db8a93 100644 --- a/config.h +++ b/config.h @@ -64,6 +64,8 @@ #pragma warning ( disable : 4251 ) // __declspec(dllexport) #pragma warning ( disable : 4275 ) #pragma warning ( disable : 4237 ) // future reserved keyword +#pragma warning ( disable : 4996 ) // 'getenv': This function or variable may be unsafe (on UWP) +#pragma warning ( disable : 4703 ) // potentially uninitialized local pointer variable 'declaredValue' #define huge verybig #if _MSC_VER == 900 #define SP_DECLARE_PLACEMENT_OPERATOR_NEW ================================================ FILE: ports/libopensp/vcpkg.json ================================================ { "name": "libopensp", "version": "1.5.2", "port-version": 5, "description": "SGML parser algorithm", "homepage": "https://openjade.sourceforge.net", "license": "MIT", "dependencies": [ { "name": "gettext", "platform": "!(windows | uwp)" }, { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake-config", "host": true, "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "!windows" } ] } ================================================ FILE: ports/libopensp/windows_cmake_build.diff ================================================ diff -Nru -x '*~' OpenSP-1.5.2.orig/CMakeLists.txt OpenSP-1.5.2/CMakeLists.txt --- OpenSP-1.5.2.orig/CMakeLists.txt 1970-01-01 02:00:00.000000000 +0200 +++ OpenSP-1.5.2/CMakeLists.txt 2014-08-24 17:23:19.941495700 +0300 @@ -0,0 +1,20 @@ +project(opensp) + +cmake_minimum_required(VERSION 2.6) + +include_directories( + . + include + generic +) + +file(GLOB SRC_SOURCES lib/*.cxx) +file(GLOB libopensp_HEADERS config.h generic/*.h include/*.h) + +add_library(opensp ${SRC_SOURCES}) +set_target_properties(opensp PROPERTIES OUTPUT_NAME "osp") +target_link_libraries(opensp) + +install(TARGETS opensp RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) +install(FILES ${libopensp_HEADERS} DESTINATION include/opensp) + diff -Nru -x '*~' OpenSP-1.5.2.orig/config.h OpenSP-1.5.2/config.h --- OpenSP-1.5.2.orig/config.h 2005-12-23 16:16:30.000000000 +0200 +++ OpenSP-1.5.2/config.h 2014-08-24 17:26:33.724698900 +0300 @@ -26,6 +26,12 @@ #endif #endif /* __GNUG__ */ +#ifdef __MINGW32__ +#define SP_HAVE_BOOL +#define SP_HAVE_TYPENAME +#define SP_DEFINE_TEMPLATES +#endif /* __MINGW32__ */ + #if defined(sun) || defined(__sun) // struct stat has st_blksize member #define SP_STAT_BLKSIZE @@ -80,6 +86,11 @@ #define SP_HAVE_TYPENAME #endif +#if _MSC_VER >=1800 +// Visual Studio 2013 +#define SP_ANSI_FOR_SCOPE +#endif + #define SP_HAVE_SETMODE #define SP_DLLEXPORT __declspec(dllexport) #define SP_DLLIMPORT __declspec(dllimport) @@ -301,12 +312,5 @@ #define PATH_SEPARATOR ':' #endif - -/* new stuff */ - -#ifndef HAVE_MUTABLE -#define mutable -#endif - // NOTE: This is processed as a Makefile, not as a header by autoconf. #define SP_PACKAGE "OpenSP" diff -Nru -x '*~' OpenSP-1.5.2.orig/generic/SGMLApplication.h OpenSP-1.5.2/generic/SGMLApplication.h --- OpenSP-1.5.2.orig/generic/SGMLApplication.h 2005-05-14 12:17:41.000000000 +0300 +++ OpenSP-1.5.2/generic/SGMLApplication.h 2014-08-24 17:23:19.957120700 +0300 @@ -269,6 +269,7 @@ unsigned count_; friend class OpenEntityPtr; }; + SGMLApplication(); virtual ~SGMLApplication(); virtual void appinfo(const AppinfoEvent &); virtual void startDtd(const StartDtdEvent &); diff -Nru -x '*~' OpenSP-1.5.2.orig/include/OutputCharStream.h OpenSP-1.5.2/include/OutputCharStream.h --- OpenSP-1.5.2.orig/include/OutputCharStream.h 2005-07-21 17:04:39.000000000 +0300 +++ OpenSP-1.5.2/include/OutputCharStream.h 2014-08-24 17:23:19.957120700 +0300 @@ -31,6 +31,7 @@ OutputCharStream &operator<<(const char *); OutputCharStream &operator<<(const StringC &); OutputCharStream &operator<<(unsigned long); + OutputCharStream &operator<<(unsigned long long); OutputCharStream &operator<<(int); OutputCharStream &operator<<(Newline); private: diff -Nru -x '*~' OpenSP-1.5.2.orig/lib/MessageReporter.cxx OpenSP-1.5.2/lib/MessageReporter.cxx --- OpenSP-1.5.2.orig/lib/MessageReporter.cxx 2005-07-21 17:05:17.000000000 +0300 +++ OpenSP-1.5.2/lib/MessageReporter.cxx 2014-08-24 17:23:19.957120700 +0300 @@ -123,7 +123,11 @@ os() << ':'; } if (options_ & messageNumbers) +#ifdef _WIN64 + os() << (unsigned long long)message.type->module() << "." +#else os() << (unsigned long)message.type->module() << "." +#endif << (unsigned long)message.type->number() << ":"; switch (message.type->severity()) { case MessageType::info: diff -Nru -x '*~' OpenSP-1.5.2.orig/lib/OutputCharStream.cxx OpenSP-1.5.2/lib/OutputCharStream.cxx --- OpenSP-1.5.2.orig/lib/OutputCharStream.cxx 2005-07-21 17:05:17.000000000 +0300 +++ OpenSP-1.5.2/lib/OutputCharStream.cxx 2014-08-24 17:23:19.957120700 +0300 @@ -61,6 +61,13 @@ return *this << buf; } +OutputCharStream &OutputCharStream::operator<<(unsigned long long n) +{ + char buf[sizeof(unsigned long long)*3 + 1]; + sprintf(buf, "%I64u", n); + return *this << buf; +} + OutputCharStream &OutputCharStream::operator<<(int n) { char buf[sizeof(int)*3 + 2]; diff -Nru -x '*~' OpenSP-1.5.2.orig/lib/SGMLApplication.cxx OpenSP-1.5.2/lib/SGMLApplication.cxx --- OpenSP-1.5.2.orig/lib/SGMLApplication.cxx 2005-07-21 17:05:18.000000000 +0300 +++ OpenSP-1.5.2/lib/SGMLApplication.cxx 2014-08-24 17:23:19.972745700 +0300 @@ -9,6 +9,10 @@ #include "Boolean.h" #include "SGMLApplication.h" +SGMLApplication::SGMLApplication() +{ +} + SGMLApplication::~SGMLApplication() { } ================================================ FILE: ports/libopnmidi/cmake-build-shared-libs-support.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4276e23..1d6ac82 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -120,8 +120,17 @@ if(NOT EMSCRIPTEN AND NOT NINTENDO_WIIU AND NOT NINTENDO_SWITCH AND NOT MSDOS) - option(libOPNMIDI_STATIC "Build static library of libOPNMIDI" ON) - option(libOPNMIDI_SHARED "Build shared library of libOPNMIDI" OFF) + set(libOPNMIDI_STATIC_ENABLED_BY_DEFAULT ON) + set(libOPNMIDI_SHARED_ENABLED_BY_DEFAULT OFF) + + # When defined, respect CMake's BUILD_SHARED_LIBS setting + if (BUILD_SHARED_LIBS) + set(libOPNMIDI_SHARED_ENABLED_BY_DEFAULT ON) + set(libOPNMIDI_STATIC_ENABLED_BY_DEFAULT OFF) + endif() + + option(libOPNMIDI_STATIC "Build static library of libOPNMIDI" ${libOPNMIDI_STATIC_ENABLED_BY_DEFAULT}) + option(libOPNMIDI_SHARED "Build shared library of libOPNMIDI" ${libOPNMIDI_SHARED_ENABLED_BY_DEFAULT}) else() set(libOPNMIDI_STATIC ON) set(libOPNMIDI_SHARED OFF) ================================================ FILE: ports/libopnmidi/cmake-package-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 66d4848..4276e23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,8 +155,6 @@ if(WIN32) option(WITH_WINMMDRV "Build a WinMM MIDI driver" OFF) endif() -set(libOPNMIDI_INSTALLS) - include_directories(${libOPNMIDI_SOURCE_DIR}/include) include_directories(${libOPNMIDI_SOURCE_DIR}/src/) link_directories(${libOPNMIDI_BINARY_DIR}/) @@ -317,10 +315,9 @@ if(libOPNMIDI_STATIC OR WITH_VLC_PLUGIN) else() set_target_properties(OPNMIDI_static PROPERTIES OUTPUT_NAME OPNMIDI) endif() - target_include_directories(OPNMIDI_static PUBLIC ${libOPNMIDI_SOURCE_DIR}/include) + target_include_directories(OPNMIDI_static PUBLIC $ $) set_legacy_standard(OPNMIDI_static) set_visibility_hidden(OPNMIDI_static) - list(APPEND libOPNMIDI_INSTALLS OPNMIDI_static) # -fPIC thing if(ENABLE_FPIC) @@ -340,10 +337,9 @@ if(libOPNMIDI_SHARED) VERSION ${libOPNMIDI_VERSION} SOVERSION ${libOPNMIDI_VERSION_MAJOR} ) - target_include_directories(OPNMIDI_shared PUBLIC ${libOPNMIDI_SOURCE_DIR}/include) + target_include_directories(OPNMIDI_shared PUBLIC $ $) set_legacy_standard(OPNMIDI_shared) set_visibility_hidden(OPNMIDI_shared) - list(APPEND libOPNMIDI_INSTALLS OPNMIDI_shared) if(WIN32) target_compile_definitions(OPNMIDI_shared PRIVATE "-DOPNMIDI_BUILD_DLL") @@ -416,17 +412,45 @@ if(WITH_HQ_RESAMPLER) endif() endif() -install(TARGETS ${libOPNMIDI_INSTALLS} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +if(libOPNMIDI_STATIC) + install(TARGETS OPNMIDI_static + EXPORT libOPNMIDIStaticTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + + install(EXPORT libOPNMIDIStaticTargets + FILE libOPNMIDI-static-targets.cmake + NAMESPACE libOPNMIDI:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/libOPNMIDI") +endif() + +if(libOPNMIDI_SHARED) + install(TARGETS OPNMIDI_shared + EXPORT libOPNMIDISharedTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + + install(EXPORT libOPNMIDISharedTargets + FILE libOPNMIDI-shared-targets.cmake + NAMESPACE libOPNMIDI:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/libOPNMIDI") +endif() install(FILES include/opnmidi.h #include/opnmidi.hpp # WIP DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +include(CMakePackageConfigHelpers) +configure_package_config_file(libOPNMIDIConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/libOPNMIDIConfig.cmake" + PATH_VARS CMAKE_INSTALL_PREFIX CMAKE_INSTALL_FULL_BINDIR CMAKE_INSTALL_FULL_INCLUDEDIR CMAKE_INSTALL_FULL_LIBDIR + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/libOPNMIDI" +) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libOPNMIDIConfig.cmake + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/libOPNMIDI") + if(WITH_EXTRA_BANKS AND NOT APPLE) file(GLOB WOPN_FILES ${libOPNMIDI_SOURCE_DIR}/fm_banks/*.wopn) install(FILES ${WOPN_FILES} diff --git a/libOPNMIDIConfig.cmake.in b/libOPNMIDIConfig.cmake.in new file mode 100644 index 0000000..f292e48 --- /dev/null +++ b/libOPNMIDIConfig.cmake.in @@ -0,0 +1,33 @@ +include(FeatureSummary) +set_package_properties(libOPNMIDI PROPERTIES + URL "https://github.com/Wohlstand/libOPNMIDI" + DESCRIPTION "libOPNMIDI is a free Software MIDI synthesizer library with OPN2 (YM2612) and OPNA (YM2608) emulation" +) + +@PACKAGE_INIT@ + +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/libOPNMIDI-shared-targets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/libOPNMIDI-shared-targets.cmake") +endif() +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/libOPNMIDI-static-targets.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/libOPNMIDI-static-targets.cmake") +endif() + +if(TARGET libOPNMIDI::OPNMIDI_shared) + if(CMAKE_VERSION VERSION_LESS "3.18") + add_library(libOPNMIDI::OPNMIDI_IF INTERFACE IMPORTED) + set_target_properties(libOPNMIDI::OPNMIDI_IF PROPERTIES INTERFACE_LINK_LIBRARIES "libOPNMIDI::OPNMIDI_shared") + else() + add_library(libOPNMIDI::OPNMIDI_IF ALIAS libOPNMIDI::OPNMIDI_shared) + endif() +else() + if(CMAKE_VERSION VERSION_LESS "3.18") + add_library(libOPNMIDI::OPNMIDI_IF INTERFACE IMPORTED) + set_target_properties(libOPNMIDI::OPNMIDI_IF PROPERTIES INTERFACE_LINK_LIBRARIES "libOPNMIDI::OPNMIDI_static") + add_library(libOPNMIDI::OPNMIDI_IF_STATIC INTERFACE IMPORTED) + set_target_properties(libOPNMIDI::OPNMIDI_IF_STATIC PROPERTIES INTERFACE_LINK_LIBRARIES "libOPNMIDI::OPNMIDI_static") + else() + add_library(libOPNMIDI::OPNMIDI_IF ALIAS libOPNMIDI::OPNMIDI_static) + add_library(libOPNMIDI::OPNMIDI_IF_STATIC ALIAS libOPNMIDI::OPNMIDI_static) + endif() +endif() ================================================ FILE: ports/libopnmidi/disable-wopn2hpp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ee71863..66d4848 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,7 @@ option(USE_VGM_FILE_DUMPER "Use VGM File Dumper (required to build the MIDI2VGM option(WITH_MIDIPLAY "Build also demo MIDI player" OFF) option(WITH_MIDI2VGM "Build also MIDI to VGM converter tool" OFF) +option(WITH_WOPN2HPP "Build also the WOPN to C++ header source converter tool" OFF) option(WITH_VLC_PLUGIN "Build also a plugin for VLC Media Player" OFF) option(VLC_PLUGIN_NOINSTALL "Don't install VLC plugin into VLC directory" OFF) option(WITH_DAC_UTIL "Build also OPN2 DAC testing utility" OFF) @@ -388,13 +389,7 @@ if(WITH_MIDI2VGM) add_subdirectory(utils/midi2vgm) endif() -if(NOT ANDROID - AND NOT EMSCRIPTEN - AND NOT VITA - AND NOT NINTENDO_3DS - AND NOT NINTENDO_WII - AND NOT NINTENDO_WIIU - AND NOT NINTENDO_SWITCH) +if(WITH_WOPN2HPP) add_subdirectory(utils/wopn2hpp) endif() @@ -493,6 +488,7 @@ message("USE_VGM_FILE_DUMPER = ${USE_VGM_FILE_DUMPER}") message("===== Utils and extras =====") message("WITH_MIDIPLAY = ${WITH_MIDIPLAY}") +message("WITH_WOPN2HPP = ${WITH_WOPN2HPP}") message("WITH_VLC_PLUGIN = ${WITH_VLC_PLUGIN}") message("WITH_DAC_UTIL = ${WITH_DAC_UTIL}") if(WIN32) ================================================ FILE: ports/libopnmidi/fix-build-without-sequencer.patch ================================================ diff --git a/src/opnmidi.cpp b/src/opnmidi.cpp index c70197f..98226dc 100644 --- a/src/opnmidi.cpp +++ b/src/opnmidi.cpp @@ -433,7 +433,7 @@ OPNMIDI_EXPORT void opn2_setLoopCount(OPN2_MIDIPlayer *device, int loopCount) OPNMIDI_EXPORT void opn2_setLoopHooksOnly(OPN2_MIDIPlayer *device, int loopHooksOnly) { -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#ifndef OPNMIDI_DISABLE_MIDI_SEQUENCER if(!device) return; MidiPlayer *play = GET_MIDI_PLAYER(device); @@ -576,7 +576,7 @@ OPNMIDI_EXPORT int opn2_openData(OPN2_MIDIPlayer *device, const void *mem, unsig OPNMIDI_EXPORT void opn2_selectSongNum(struct OPN2_MIDIPlayer *device, int songNumber) { -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#ifndef OPNMIDI_DISABLE_MIDI_SEQUENCER if(!device) return; @@ -591,7 +591,7 @@ OPNMIDI_EXPORT void opn2_selectSongNum(struct OPN2_MIDIPlayer *device, int songN OPNMIDI_EXPORT int opn2_getSongsCount(struct OPN2_MIDIPlayer *device) { -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#ifndef OPNMIDI_DISABLE_MIDI_SEQUENCER if(!device) return 0; @@ -986,7 +986,7 @@ OPNMIDI_EXPORT void opn2_setLoopStartHook(struct OPN2_MIDIPlayer *device, OPN2_L assert(play); play->hooks.onLoopStart = loopStartHook; play->hooks.onLoopStart_userData = userData; -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#ifndef OPNMIDI_DISABLE_MIDI_SEQUENCER play->m_sequencerInterface->onloopStart = loopStartHook; play->m_sequencerInterface->onloopStart_userData = userData; #endif @@ -1001,7 +1001,7 @@ OPNMIDI_EXPORT void opn2_setLoopEndHook(struct OPN2_MIDIPlayer *device, OPN2_Loo assert(play); play->hooks.onLoopEnd = loopEndHook; play->hooks.onLoopEnd_userData = userData; -#ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER +#ifndef OPNMIDI_DISABLE_MIDI_SEQUENCER play->m_sequencerInterface->onloopEnd = loopEndHook; play->m_sequencerInterface->onloopEnd_userData = userData; #endif ================================================ FILE: ports/libopnmidi/fix-c++-standard.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 20e167d..93885c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,35 @@ -cmake_minimum_required (VERSION 3.2) +cmake_minimum_required (VERSION 3.2...3.5) project(libOPNMIDI VERSION 1.5.1 LANGUAGES C CXX) include(GNUInstallDirs) +include(CheckCXXCompilerFlag) # Prefer C90 standard set(CMAKE_C_STANDARD 90) # Prefer C++98 standard set(CMAKE_CXX_STANDARD 98) +if(MSVC) + check_cxx_compiler_flag("/std:c++14" COMPILER_SUPPORTS_CXX14) + if(COMPILER_SUPPORTS_CXX14) + set(FLAG_CPP14 "/std:c++14") + endif() + if(MSVC_VERSION LESS 1910) + unset(COMPILER_SUPPORTS_CXX14) # MSVC older than 2017 fails to build YMFM + endif() +else() + check_cxx_compiler_flag("-std=c++14" COMPILER_SUPPORTS_CXX14) + if(COMPILER_SUPPORTS_CXX14) + set(FLAG_CPP14 "-std=c++14") + endif() +endif() + +if(COMPILER_SUPPORTS_CXX14) + message("== Your C++ compiler supports C++14, YMFM emulator will be ENABLED") +else() + message("== Your C++ compiler does NOT supports C++14, YMFM emulator will be DISABLED") +endif() + if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) endif() @@ -59,13 +81,24 @@ if(NOT MSVC AND NOT MSDOS) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVITA -DVITA=1 -fcompare-debug-second") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVITA -DVITA=1 -fcompare-debug-second") endif() + if(NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_SWITCH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcompare-debug-second") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcompare-debug-second") + endif() endif() -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release") +if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_C_COMPILER_ID STREQUAL "Clang") + if(NINTENDO_3DS OR NINTENDO_WII OR NINTENDO_WIIU OR NINTENDO_SWITCH) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90") + else() + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c89") + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98") endif() -string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER) +if(DEFINED CMAKE_BUILD_TYPE) + string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER) +endif() if(CMAKE_BUILD_TYPE_LOWER EQUAL "release") add_definitions(-DNDEBUG) ENDIF() @@ -88,7 +121,7 @@ function(set_legacy_standard destTarget) if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) # Turn on warnings and legacy C/C++ standards to support more compilers target_compile_options(${destTarget} PRIVATE - $<$:-Wall -pedantic -std=c90> + $<$:-Wall -pedantic -std=gnu90> $<$:-Wall -pedantic -std=gnu++98> ) endif() ================================================ FILE: ports/libopnmidi/fix-pmdwin-emulator-include.patch ================================================ diff --git a/src/chips/pmdwin/opna.c b/src/chips/pmdwin/opna.c index 3dbf164..78b88a5 100644 --- a/src/chips/pmdwin/opna.c +++ b/src/chips/pmdwin/opna.c @@ -27,7 +27,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include -#include #include #include "op.h" #include "psg.h" diff --git a/src/chips/pmdwin/psg.c b/src/chips/pmdwin/psg.c index 44a7cf0..a1b1c43 100644 --- a/src/chips/pmdwin/psg.c +++ b/src/chips/pmdwin/psg.c @@ -39,7 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include #include #include -#include #include "op.h" #include "psg.h" @@ -340,4 +339,3 @@ void PSGMix(PSG *psg, int32_t *dest, uint32_t nsamples) } } } - ================================================ FILE: ports/libopnmidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Wohlstand/libOPNMIDI REF "v${VERSION}" SHA512 735af8c65c54e1e57e9d3e8582465636c0efeb7a03c7b0f5e2ef16f5cfd14fb34e99f738bb5a5cb43fe44fc584c3241eee6ae21a0f604702f101442f42601bcd PATCHES # patches from master, they should be removed when a new version is out cmake-package-export.patch cmake-build-shared-libs-support.patch disable-wopn2hpp.patch fix-build-without-sequencer.patch fix-pmdwin-emulator-include.patch fix-c++-standard.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES midi-sequencer WITH_MIDI_SEQUENCER mame-ym2612-emulator USE_MAME_EMULATOR mame-ym2608-emulator USE_MAME_2608_EMULATOR nuked-emulator USE_NUKED_EMULATOR gens-emulator USE_GENS_EMULATOR gx-emulator USE_GX_EMULATOR np2-emulator USE_NP2_EMULATOR pmdwin-emulator USE_PMDWIN_EMULATOR mus WITH_MUS_SUPPORT xmi WITH_XMI_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUSE_VGM_FILE_DUMPER=OFF -DWITH_WOPN2HPP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libOPNMIDI) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/share/doc" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSE*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/libopnmidi/usage ================================================ libopnmidi provides CMake targets: find_package(libOPNMIDI CONFIG REQUIRED) target_link_libraries(main PRIVATE libOPNMIDI::OPNMIDI_IF) ================================================ FILE: ports/libopnmidi/vcpkg.json ================================================ { "name": "libopnmidi", "version": "1.5.1", "port-version": 2, "description": "libOPNMIDI is a free Software MIDI synthesizer library with OPN2 (YM2612) and OPNA (YM2608) emulation", "homepage": "https://github.com/Wohlstand/libOPNMIDI", "license": "LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "gens-emulator", "mame-ym2608-emulator", "mame-ym2612-emulator", "midi-sequencer", "mus", "np2-emulator", "nuked-emulator", "xmi" ], "features": { "gens-emulator": { "description": "Build with GENS 2.10 emulator (innacurate, fastest)" }, "gx-emulator": { "description": "Build with Genesis Plus GX emulator (experimental)" }, "mame-ym2608-emulator": { "description": "Build with MAME YM2608 emulator (well-accurate and fast)" }, "mame-ym2612-emulator": { "description": "Build with MAME YM2612 emulator (well-accurate and fast)" }, "midi-sequencer": { "description": "Build with embedded MIDI sequencer" }, "mus": { "description": "Support for DMX MUS files" }, "np2-emulator": { "description": "Build with Neko Project 2 YM2608 emulator (semi-accurate and fast)" }, "nuked-emulator": { "description": "Build with Nuked OPN2 emulator (very accurate, needs more CPU power)" }, "pmdwin-emulator": { "description": "Build with PMDWin emulator (experimental)" }, "xmi": { "description": "Support for AIL XMI files" } } } ================================================ FILE: ports/libopusenc/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) project(libopusenc C) if(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4267 /wd4244 /wd4996 /wd4101 /wd4018") endif() find_path(OPUS_INCLUDE_DIR opus.h PATH_SUFFIXES opus) find_library(OPUS_LIBRARY opus) add_library(opusenc src/ogg_packer.c src/opus_header.c src/opusenc.c src/picture.c src/resample.c src/unicode_support.c) get_filename_component(FOLDER ${CMAKE_CURRENT_SOURCE_DIR} NAME) string(REPLACE "libopusenc-" "" VERSION ${FOLDER}) target_compile_definitions(opusenc PRIVATE RANDOM_PREFIX=libopusenc OUTSIDE_SPEEX FLOATING_POINT PACKAGE_VERSION="${VERSION}" PACKAGE_NAME="libopusenc" OPE_BUILD) set_target_properties(opusenc PROPERTIES DEFINE_SYMBOL DLL_EXPORT) target_include_directories(opusenc PRIVATE include ${OPUS_INCLUDE_DIR}) target_link_libraries(opusenc PRIVATE ${OPUS_LIBRARY}) install(TARGETS opusenc RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) if(NOT OPUSENC_SKIP_HEADERS) install(FILES include/opusenc.h DESTINATION include/opus) endif() ================================================ FILE: ports/libopusenc/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore) message(FATAL_ERROR "UWP builds not supported") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/libopusenc REF v${VERSION} SHA512 4fd2fd7d0516bcf71511d09de8ec2f59fc150575308edc13adb0b7b05e95d63e92c03c05efba502bc5152ea5b198f394e8811edc4c1675c0429f6a00deae3f7b HEAD_REF master) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DOPUSENC_SKIP_HEADERS=ON) vcpkg_cmake_install() vcpkg_copy_pdbs() # make includes work with MSBuild integration file(READ "${CURRENT_PACKAGES_DIR}/include/opus/opusenc.h" OPUSENC_H) string(REPLACE "#include " "#include \"opus.h\"" OPUSENC_H "${OPUSENC_H}") file(WRITE "${CURRENT_PACKAGES_DIR}/include/opus/opusenc.h" "${OPUSENC_H}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libopusenc/vcpkg.json ================================================ { "name": "libopusenc", "version": "0.3", "description": "Library for encoding .opus audio files and live streams.", "homepage": "https://github.com/xiph/libopusenc", "supports": "!uwp", "dependencies": [ "opus", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/liboqs/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-quantum-safe/liboqs REF ${VERSION} SHA512 d4a48335e2848c4ea4f5615af7846b21f83a9d8ff5256ebd0d27fa52e21bae3338de138770f07a4befea35b94f20ec8fd897594d45948c86d41c95cfe07be151 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOQS_BUILD_ONLY_LIB=ON -DOQS_PERMIT_UNSUPPORTED_ARCHITECTURE=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/liboqs/vcpkg.json ================================================ { "name": "liboqs", "version": "0.15.0", "description": "open source C library for quantum-safe cryptographic algorithms.", "homepage": "https://openquantumsafe.org/", "license": "MIT", "supports": "!uwp & !(windows & static)", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liborigin/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO liborigin REF liborigin/3.0 FILENAME liborigin-${VERSION}.tar.gz SHA512 44157e1a5c71d7344e58c4702a43fd315978bff74992e1d7c568517c0685f617062777c791d6089872197d30f20cc06617aa4bd31d6a458df97b27eacf2f0f19 ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(LIB_OPTION "-DBUILD_STATIC_LIBS=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${LIB_OPTION} ) vcpkg_cmake_build() vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES opj2dat AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/liborigin/vcpkg.json ================================================ { "name": "liborigin", "version": "3.0.3", "description": "A library for reading OriginLab OPJ project files.", "homepage": "https://sourceforge.net/projects/liborigin/", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libosdp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO goToMain/libosdp REF "v${VERSION}" SHA512 ebfc2010a89eb1bca9c47c283016750805f38bd5996d478105782bc54add184d0aa7e0f1b8b2f145e6b3af9584c0635522af6191167eeade88a4d878a0552fa0 HEAD_REF master ) # Download and extract the c-utils submodule at ${SOURCE_PATH}/utils as # it would be during a recursive checkout. # # Note: During package upgrade, the submodule ref needs to be updated. vcpkg_from_github( OUT_SOURCE_PATH UTILS_SOURCE_PATH REPO goToMain/c-utils REF "d295048d0362674e2a4b489b689d029b8f1f3d01" SHA512 a0902a504fe6ffd1ce0f32d0a16decf0e113d1211d19e63f4fb539082254769f0a6484414a49f52956e45ed802b2c2f8430e87a06c24ac84205421cdffb4d3f0 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/utils") file(COPY "${UTILS_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/utils") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) # Main commands vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCONFIG_OSDP_LIB_ONLY=ON -DCONFIG_BUILD_SHARED=${BUILD_SHARED} -DCONFIG_BUILD_STATIC=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libosdp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libosdp/usage ================================================ libosdp provides CMake targets: find_package(LibOSDP CONFIG REQUIRED) target_link_libraries(main PRIVATE $,libosdp::osdp,libosdp::osdpstatic>) libosdp provides pkg-config modules: # Open Supervised Device Protocol (OSDP) Library libosdp ================================================ FILE: ports/libosdp/vcpkg.json ================================================ { "name": "libosdp", "version": "3.0.5", "description": "An cross-platform open source implementation of IEC 60839-11-5 Open Supervised Device Protocol (OSDP)", "homepage": "https://github.com/goToMain/libosdp", "documentation": "https://libosdp.sidcha.dev", "license": "Apache-2.0", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libosip2/fix-path-in-project.patch ================================================ diff --git a/platform/vsnet/osip2.vcxproj b/platform/vsnet/osip2.vcxproj index b13cbe9..40b8e23 100644 --- a/platform/vsnet/osip2.vcxproj +++ b/platform/vsnet/osip2.vcxproj @@ -79,7 +79,7 @@ Disabled - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true EnableFastChecks @@ -97,7 +97,7 @@ Disabled - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -113,7 +113,7 @@ - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) MultiThreaded @@ -129,7 +129,7 @@ - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) MultiThreaded @@ -144,37 +144,37 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - + {44f46b7e-0e51-4304-9735-330dfbab41e5} false diff --git a/platform/vsnet/osipparser2.vcxproj b/platform/vsnet/osipparser2.vcxproj index 6c73222..bda0fe5 100644 --- a/platform/vsnet/osipparser2.vcxproj +++ b/platform/vsnet/osipparser2.vcxproj @@ -79,7 +79,7 @@ Disabled - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true EnableFastChecks @@ -97,7 +97,7 @@ Disabled - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -113,7 +113,7 @@ - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) MultiThreaded @@ -129,7 +129,7 @@ - ..\..\..\osip\include;%(AdditionalIncludeDirectories) + ..\..\include;%(AdditionalIncludeDirectories) ENABLE_TRACE;SYSTEM_LOGGER_ENABLED;_CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) MultiThreaded @@ -144,83 +144,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ================================================ FILE: ports/libosip2/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/osip/libosip2-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/osip/libosip2-${VERSION}.tar.gz" FILENAME "libosip2-${VERSION}.tar.gz" SHA512 cd9db7a736cca90c6862b84c4941ef025f5affab8af9bbc02ce0dd3310a2c555e0922c1bfa72d8ac08791fa1441bbcc30b627d52ca8b51f3471573a10ac82a00 ) set(PATCHES) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND PATCHES fix-path-in-project.patch) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ${PATCHES} ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # Use /Z7 rather than /Zi to avoid "fatal error C1090: PDB API call failed, error code '23': (0x00000006)" foreach(VCXPROJ IN ITEMS "${SOURCE_PATH}/platform/vsnet/osip2.vcxproj" "${SOURCE_PATH}/platform/vsnet/osipparser2.vcxproj") vcpkg_replace_string( "${VCXPROJ}" "ProgramDatabase" "OldStyle" ) endforeach() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "platform/vsnet/osip2.vcxproj" ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" PATTERN Makefile.* EXCLUDE) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "platform/vsnet/osipparser2.vcxproj" ) else() vcpkg_make_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libosip2/vcpkg.json ================================================ { "name": "libosip2", "version": "5.3.1", "port-version": 3, "description": "oSIP is an LGPL implementation of SIP. It's stable, portable, flexible and compliant! -may be more-! It is used mostly with eXosip2 stack (GPL) which provides simpler API for User-Agent implementation.", "homepage": "https://www.gnu.org/software/osip/", "supports": "!(windows & arm) & !uwp", "dependencies": [ "pthread", { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/libosmium/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO osmcode/libosmium REF "v${VERSION}" SHA512 c06396ce5417883ca84e7bef8a8443c179d1bb6d094f484ee2640a34d048d77106642229a6afa50bdb543d9f4ecdee259575f0c279f013b3a2108bf47afb8cc6 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DCMAKE_DISABLE_FIND_PACKAGE_GDAL=ON # for transitive dependencies via pkgconf -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=1 -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} ) vcpkg_cmake_install() file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libosmium/usage ================================================ libosmium is header-only and can be used from CMake via: find_path(OSMIUM_INCLUDE_DIRS "osmium/version.hpp") target_include_directories(main PRIVATE ${OSMIUM_INCLUDE_DIRS}) ================================================ FILE: ports/libosmium/vcpkg.json ================================================ { "name": "libosmium", "version-semver": "2.23.0", "description": "A fast and flexible C++ library for working with OpenStreetMap data", "homepage": "https://osmcode.org/libosmium/", "license": "BSL-1.0", "dependencies": [ "boost-crc", "boost-variant", "bzip2", "expat", "lz4", "protozero", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/libosmscout/fix-libxml2.patch ================================================ diff --git a/libosmscout-import/src/osmscout/import/PreprocessOSM.cpp b/libosmscout-import/src/osmscout/import/PreprocessOSM.cpp index acf2ed97c4..9f006aa7ac 100644 --- a/libosmscout-import/src/osmscout/import/PreprocessOSM.cpp +++ b/libosmscout-import/src/osmscout/import/PreprocessOSM.cpp @@ -339,7 +339,7 @@ namespace osmscout { return xmlGetPredefinedEntity(name); } - static void StructuredErrorHandler(void* /*data*/, xmlErrorPtr error) + static void StructuredErrorHandler(void* /*data*/, const xmlError* error) { std::cerr << "XML error, line " << error->line << ": " << error->message << std::endl; } diff --git a/libosmscout-gpx/src/osmscout/gpx/Import.cpp b/libosmscout-gpx/src/osmscout/gpx/Import.cpp index a18648fd34..d2492324e0 100644 --- a/libosmscout-gpx/src/osmscout/gpx/Import.cpp +++ b/libosmscout-gpx/src/osmscout/gpx/Import.cpp @@ -288,7 +288,7 @@ public: return xmlGetPredefinedEntity(name); } - static void StructuredErrorHandler(void* data, xmlErrorPtr error) + static void StructuredErrorHandler(void* data, const xmlError* error) { auto* parser=static_cast(data); parser->Error("XML error, line " + std::to_string(error->line) + ": " + error->message); ================================================ FILE: ports/libosmscout/msvc-arm.diff ================================================ diff --git a/cmake/features.cmake b/cmake/features.cmake index 8b5563e..a6f0ae8 100644 --- a/cmake/features.cmake +++ b/cmake/features.cmake @@ -57,6 +57,16 @@ if(NOT MSVC) if(HAVE_SSE2) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") endif() +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM") + set(HAVE_ALTIVEC OFF) + set(HAVE_AVX OFF) + set(HAVE_MMX OFF) + set(HAVE_SSE OFF) + set(HAVE_SSE2 OFF) + set(HAVE_SSE3 OFF) + set(HAVE_SSE4_1 OFF) + set(HAVE_SSE4_2 OFF) + set(HAVE_SSSE3 OFF) else() set(HAVE_ALTIVEC OFF) set(HAVE_AVX ON) ================================================ FILE: ports/libosmscout/msvc-static.diff ================================================ diff --git a/cmake/ProjectConfig.cmake b/cmake/ProjectConfig.cmake index fb15465..107560f 100644 --- a/cmake/ProjectConfig.cmake +++ b/cmake/ProjectConfig.cmake @@ -128,7 +128,6 @@ macro(osmscout_library_project) if(BUILD_SHARED_LIBS) install(FILES $ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin CONFIGURATIONS Debug) else() - install(FILES $ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib CONFIGURATIONS Debug) endif() endif() endmacro(osmscout_library_project) ================================================ FILE: ports/libosmscout/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Framstag/libosmscout REF c81e1d9a0f69cc5b93588dbe330b2af587162c5f SHA512 d6ddbc49dd40b1f938ae2cd1ea9342cab0a52db46bf7ed6716111a91d0a38acba12ff2e273d457db51fc240d578a5b849af77b53e600482cf52c3b22306f8c45 HEAD_REF master PATCHES protobuf-linkage.patch fix-libxml2.patch msvc-arm.diff msvc-static.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cairo OSMSCOUT_BUILD_MAP_CAIRO directx OSMSCOUT_BUILD_MAP_DIRECTX gdi OSMSCOUT_BUILD_MAP_GDI qt5 OSMSCOUT_BUILD_MAP_QT svg OSMSCOUT_BUILD_MAP_SVG tools OSMSCOUT_BUILD_TOOL_IMPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOSMSCOUT_BUILD_DEMOS=OFF -DOSMSCOUT_BUILD_TOOL_DUMPDATA=OFF -DOSMSCOUT_BUILD_TOOL_OSMSCOUT2=OFF -DOSMSCOUT_BUILD_TOOL_OSMSCOUTOPENGL=OFF -DOSMSCOUT_BUILD_TOOL_PUBLICTRANSPORTMAP=OFF -DOSMSCOUT_BUILD_TOOL_STYLEEDITOR=OFF -DOSMSCOUT_BUILD_EXTERN_MATLAB=OFF -DOSMSCOUT_BUILD_TESTS=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG -DOSMSCOUT_BUILD_TOOL_IMPORT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/libosmscout) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES BasemapImport Import AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libosmscout/protobuf-linkage.patch ================================================ diff --git a/libosmscout-import/CMakeLists.txt b/libosmscout-import/CMakeLists.txt index 36fa3585c..404f61aff 100644 --- a/libosmscout-import/CMakeLists.txt +++ b/libosmscout-import/CMakeLists.txt @@ -146,8 +146,8 @@ endif() if (PROTOBUF_FOUND) target_include_directories(OSMScoutImport PRIVATE ${Protobuf_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR}) - target_link_libraries(OSMScoutImport ${Protobuf_LIBRARIES}) - if(WIN32) + target_link_libraries(OSMScoutImport protobuf::libprotobuf) + if(0) target_compile_definitions(OSMScoutImport PRIVATE -DPROTOBUF_USE_DLLS) endif() target_compile_definitions(OSMScoutImport PRIVATE -DOSMSCOUT_IMPORT_CMAKE_BUILD) ================================================ FILE: ports/libosmscout/vcpkg.json ================================================ { "name": "libosmscout", "version": "1.1.1", "port-version": 8, "description": "libosmscout offers applications simple, high-level interfaces for offline location and POI lokup, rendering and routing functionalities based on OpenStreetMap (OSM) data.", "homepage": "https://libosmscout.sourceforge.net/", "documentation": "https://libosmscout.sourceforge.net/documentation/", "supports": "!uwp", "dependencies": [ "libiconv", "liblzma", { "name": "libxml2", "default-features": false }, "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "cairo": { "description": "Cairo backend renderer", "dependencies": [ { "name": "cairo", "default-features": false }, { "name": "freetype", "default-features": false }, { "name": "harfbuzz", "default-features": false }, "libpng", "pango" ] }, "directx": { "description": "Direct2D backend renderer", "supports": "windows" }, "gdi": { "description": "GDI+ backend renderer", "supports": "windows" }, "qt5": { "description": "Enable build of Qt5 map drawing backend", "dependencies": [ "qt5-base", "qt5-svg" ] }, "svg": { "description": "SVG backend renderer", "dependencies": [ { "name": "freetype", "default-features": false }, { "name": "harfbuzz", "default-features": false }, "pango" ] }, "tools": { "description": "Install tools" } } } ================================================ FILE: ports/libp7client/CMakeLists.txt ================================================ project(P7) cmake_minimum_required(VERSION 3.18) add_library(P7 "Sources/ClBaical.cpp" "Sources/ClFile.cpp" "Sources/Client.cpp" "Sources/ClNull.cpp" "Sources/ClText.cpp" "Sources/CRC32.cpp" "Sources/Proxy.cpp" "Sources/Telemetry.cpp" "Sources/Trace.cpp") target_include_directories(P7 PRIVATE "Headers/") target_include_directories(P7 PRIVATE "Shared/") if(WIN32) target_include_directories(P7 PRIVATE "Shared/Platforms/Windows_x86/") target_link_libraries(P7 "ws2_32") else() target_include_directories(P7 PRIVATE "Shared/Platforms/Linux_x86/") endif() if(WIN32) set_target_properties(P7 PROPERTIES PREFIX "") if(CMAKE_SIZEOF_VOID_P EQUAL 8) set_target_properties(P7 PROPERTIES DEBUG_POSTFIX "x64d") set_target_properties(P7 PROPERTIES RELEASE_POSTFIX "x64") else() set_target_properties(P7 PROPERTIES DEBUG_POSTFIX "x32d") set_target_properties(P7 PROPERTIES RELEASE_POSTFIX "x32") endif() else() set_target_properties(P7 PROPERTIES PREFIX "lib") set_target_properties(P7 PROPERTIES POSTFIX "") set_target_properties(P7 PROPERTIES DEBUG_POSTFIX "d") endif() install(TARGETS P7 RUNTIME DESTINATION "bin" ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib") install(DIRECTORY Headers/ DESTINATION include/P7 FILES_MATCHING PATTERN "*.h") ================================================ FILE: ports/libp7client/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS http://baical.net/files/libP7Client_v5.6.zip FILENAME libP7Client_v5.6.zip SHA512 992256854b717a45ae9e11ed16aa27b8b054de97718f027664634597d756aa26fe10dcad765cde7695802c90def46461abbcbfde81923fdd40ea2b659e1a8240 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/libp7client/vcpkg.json ================================================ { "name": "libp7client", "version": "5.6", "port-version": 5, "description": "Open source, cross-platform, fastest library for sending logs, telemetry & trace data from your application.", "homepage": "https://baical.net/", "supports": "!(arm | uwp | osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libpcap/install.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9012ef4..88179b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -798,6 +798,7 @@ if(WIN32) cmake_pop_check_state() if(LIBWS2_32_HAS_GETADDRINFO) set(PCAP_LINK_LIBRARIES ws2_32 ${PCAP_LINK_LIBRARIES}) + set(LIBS "-lws2_32 ${LIBS}") else(LIBWS2_32_HAS_GETADDRINFO) message(FATAL_ERROR "getaddrinfo is required, but wasn't found") endif(LIBWS2_32_HAS_GETADDRINFO) @@ -3405,7 +3406,8 @@ set(MANMISC_EXPAND ) if(BUILD_SHARED_LIBS) - set(LIBRARIES_TO_INSTALL "${LIBRARY_NAME}" "${LIBRARY_NAME_STATIC}") + set(LIBRARIES_TO_INSTALL "${LIBRARY_NAME}") + set_target_properties(${LIBRARY_NAME_STATIC} PROPERTIES EXCLUDE_FROM_ALL 1) else(BUILD_SHARED_LIBS) set(LIBRARIES_TO_INSTALL "${LIBRARY_NAME_STATIC}") endif(BUILD_SHARED_LIBS) @@ -3416,7 +3418,7 @@ if(WIN32 OR CYGWIN OR MSYS) # the target is Windows; would there ever be a case where # CYGWIN or MSYS are set but WIN32 *isn't* set? # - if(MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8) + if(0) # # Install 64-bit code built with MSVC in the x64 subdirectories, # as that's where it expects it to be. @@ -3463,7 +3465,10 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/pcap-namedb.h DESTINATION ${CMAKE_INST # On UN*X, and on Windows when not using MSVC, generate libpcap.pc and # pcap-config and process man pages and arrange that they be installed. -if(NOT MSVC) +if(1) + if(MSVC AND NOT BUILD_SHARED_LIBS) + string(APPEND PACKAGE_NAME "_static") + endif() set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix "\${prefix}") set(includedir "\${prefix}/include") @@ -3533,8 +3538,8 @@ if(NOT MSVC) endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/pcap-config.in ${CMAKE_CURRENT_BINARY_DIR}/pcap-config @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpcap.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc @ONLY) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pcap-config DESTINATION bin) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpcap.pc DESTINATION lib/pkgconfig) +elseif(0) # # Man pages. ================================================ FILE: ports/libpcap/mingw-dynamic-libname.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 88179b0..51a2732 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3222,10 +3222,6 @@ if(WIN32) # For compatibility, build the shared library without the "lib" prefix on # MinGW as well. # - set_target_properties(${LIBRARY_NAME} PROPERTIES - PREFIX "" - OUTPUT_NAME "${LIBRARY_NAME}" - ) set_target_properties(${LIBRARY_NAME}_static PROPERTIES OUTPUT_NAME "${LIBRARY_NAME}" ) ================================================ FILE: ports/libpcap/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/winpcap") message(FATAL_ERROR "FATAL ERROR: winpcap and libpcap are incompatible.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO the-tcpdump-group/libpcap REF "libpcap-${VERSION}" SHA512 eb0a627cabdc4fab8f56e81065469a6fad713681d06c43e7a3080896cad3925e8b22c6957fcc0439e9229b3ebf21af55d22cd89c8494342e4188bb0ac193c7ab HEAD_REF master PATCHES install.diff mingw-dynamic-libname.diff ) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RT) SET(options "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_CMAKE_CONFIGURE_OPTIONS MATCHES "Packet_ROOT") list(APPEND options "-DPCAP_TYPE=null") message(STATUS [[Attention: This build does not include packet capture capabilities. In order to enable such capabilities, install the Npcap SDK or the WinPcap SDK, and pass '-DPacket_ROOT=' via VCPKG_CMAKE_CONFIGURE_OPTIONS in a custom triplet file. ]]) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${options} -DBUILD_WITH_LIBNL=OFF -DDISABLE_AIRPCAP=ON -DDISABLE_BLUETOOTH=ON -DDISABLE_DAG=ON -DDISABLE_DBUS=ON -DDISABLE_DPDK=ON -DDISABLE_NETMAP=ON -DDISABLE_RDMA=ON -DDISABLE_SEPTEL=ON -DDISABLE_SNF=ON -DDISABLE_TC=ON -DENABLE_REMOTE=OFF "-DLEX_EXECUTABLE=${FLEX}" "-DYACC_EXECUTABLE=${BISON}" -DUSE_STATIC_RT=${USE_STATIC_RT} MAYBE_UNUSED_VARIABLES BUILD_WITH_LIBNL # linux only CMAKE_DISABLE_FIND_PACKAGE_Packet # windows only ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libpcap/vcpkg.json ================================================ { "name": "libpcap", "version-semver": "1.10.6", "description": "A portable C/C++ library for network traffic capture", "homepage": "https://www.tcpdump.org/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libpff/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(libpff C) find_package(ZLIB REQUIRED) if(MSVC) add_compile_definitions(_CRT_SECURE_NO_DEPRECATE) add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE) endif() add_compile_definitions(HAVE_LOCAL_LIBCERROR) add_compile_definitions(HAVE_LOCAL_LIBCTHREADS) add_compile_definitions(HAVE_LOCAL_LIBCDATA) add_compile_definitions(HAVE_LOCAL_LIBCLOCALE) add_compile_definitions(HAVE_LOCAL_LIBCNOTIFY) add_compile_definitions(HAVE_LOCAL_LIBCSPLIT) add_compile_definitions(HAVE_LOCAL_LIBCFILE) add_compile_definitions(HAVE_LOCAL_LIBCPATH) add_compile_definitions(HAVE_LOCAL_LIBUNA) add_compile_definitions(HAVE_LOCAL_LIBBFIO) add_compile_definitions(HAVE_LOCAL_LIBFCACHE) add_compile_definitions(HAVE_LOCAL_LIBFDATA) add_compile_definitions(HAVE_LOCAL_LIBFDATETIME) add_compile_definitions(HAVE_LOCAL_LIBFGUID) add_compile_definitions(HAVE_LOCAL_LIBFWNT) add_compile_definitions(HAVE_LOCAL_LIBFMAPI) add_compile_definitions(HAVE_LOCAL_LIBFVALUE) add_compile_definitions(ZLIB_DLL) add_compile_definitions(LIBPFF_DLL_EXPORT) if(MSVC) set(LIB_RC libpff/libpff.rc) endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) # Add CMake find_package() integration set(PROJECT_TARGET_NAME "unofficial-${PROJECT_NAME}") set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_TARGET_NAME}Config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_TARGET_NAME}Targets") set(NAMESPACE "unofficial-libpff::") # Source files file(GLOB LIB_SRC lib*/*.c) # Headers file(GLOB LIB_INST_HEADERS include/libpff/*.h) add_library(${PROJECT_NAME} ${LIB_SRC} ${LIB_RC}) target_include_directories(${PROJECT_NAME} PRIVATE ./include ./common) target_include_directories(${PROJECT_NAME} PRIVATE ./libbfio ./libcdata ./libcerror ./libcfile ./libclocale ./libcnotify) target_include_directories(${PROJECT_NAME} PRIVATE ./libcpath ./libcsplit ./libcthreads ./libfcache ./libfdata ./libfdatetime) target_include_directories(${PROJECT_NAME} PRIVATE ./libfguid ./libfmapi ./libfvalue ./libfwnt ./libuna) target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB) install(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib INCLUDES DESTINATION include) install(FILES ${LIB_INST_HEADERS} DESTINATION include/libpff) install(FILES include/libpff.h DESTINATION include) # Generate and install unofficial-libpffConfig.cmake configure_package_config_file("Config.cmake.in" "${PROJECT_CONFIG}" INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}") install(FILES "${PROJECT_CONFIG}" DESTINATION "${CONFIG_INSTALL_DIR}") # Generate and install unofficial-libpffTargets*.cmake install(EXPORT ${TARGETS_EXPORT_NAME} NAMESPACE ${NAMESPACE} DESTINATION "${CONFIG_INSTALL_DIR}") ================================================ FILE: ports/libpff/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/libpff/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) set(LIB_VERSION 20211114) set(LIB_FILENAME libpff-alpha-${LIB_VERSION}.tar.gz) # Release distribution file contains configured sources, while the source code in the repository does not. vcpkg_download_distfile(ARCHIVE URLS "https://github.com/libyal/libpff/releases/download/${LIB_VERSION}/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" SHA512 ad2cf4b0841c448b60738cd2f340868c0f11eb34167bfe5b093645a2a080d694e199afe4fef5eeea1016487820132be33f8e51910d2142ff032320ad2dbeb59d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE ${LIB_VERSION} ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libpff PACKAGE_NAME unofficial-libpff) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libpff/vcpkg.json ================================================ { "name": "libpff", "version-date": "2021-11-14", "port-version": 2, "description": "Library and tools to access the Personal Folder File (PFF) and the Offline Folder File (OFF) format.", "homepage": "https://github.com/libyal/libpff", "license": "LGPL-3.0-or-later", "supports": "windows & !(static & windows) & !uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libpg-query/0001-use-system-deps.patch ================================================ --- a/Makefile +++ b/Makefile @@ -31,10 +31,11 @@ SOFLAG = -soname endif -SRC_FILES := $(wildcard src/*.c src/postgres/*.c) vendor/protobuf-c/protobuf-c.c vendor/xxhash/xxhash.c protobuf/pg_query.pb-c.c +SRC_FILES := $(wildcard src/*.c src/postgres/*.c) protobuf/pg_query.pb-c.c +LIBS += -lprotobuf-c -lxxhash OBJ_FILES := $(SRC_FILES:.c=.o) -override CFLAGS += -g -I. -I./vendor -I./src/include -I./src/postgres/include -Wall -Wno-unused-function -Wno-unused-value -Wno-unused-variable -fno-strict-aliasing -fwrapv -fPIC +override CFLAGS += -g -I. -I./src/include -I./src/postgres/include -Wall -Wno-unused-function -Wno-unused-value -Wno-unused-variable -fno-strict-aliasing -fwrapv -fPIC ifeq ($(OS),Windows_NT) override CFLAGS += -I./src/postgres/include/port/win32 @@ -43,7 +44,7 @@ override PG_CONFIGURE_FLAGS += -q --without-readline --without-zlib --without-icu -override TEST_CFLAGS += -g -I. -I./vendor -Wall +override TEST_CFLAGS += -g -I. -Wall override TEST_LDFLAGS += -pthread CFLAGS_OPT_LEVEL = -O3 --- a/Makefile.msvc +++ b/Makefile.msvc @@ -3,9 +3,9 @@ TARGET = pg_query ARLIB = $(TARGET).lib -SRC_FILES = src/*.c src/postgres/*.c vendor/protobuf-c/protobuf-c.c vendor/xxhash/xxhash.c protobuf/pg_query.pb-c.c +SRC_FILES = src/*.c src/postgres/*.c protobuf/pg_query.pb-c.c -CFLAGS = -I. -I./vendor -I./src/postgres/include -I./src/include -I./src/postgres/include/port/win32 -I./src/postgres/include/port/win32_msvc +CFLAGS = -I. -I./src/postgres/include -I./src/include -I./src/postgres/include/port/win32 -I./src/postgres/include/port/win32_msvc RM = del --- a/src/pg_query_fingerprint.c +++ b/src/pg_query_fingerprint.c @@ -5,7 +5,7 @@ #include "pg_query_fingerprint.h" #include "postgres.h" -#include "xxhash/xxhash.h" +#include #include "lib/ilist.h" #include "parser/parser.h" ================================================ FILE: ports/libpg-query/configure ================================================ #!/bin/sh # Intentionally empty: libpg_query has no configure script; vcpkg_make_configure expects one. exit 0 ================================================ FILE: ports/libpg-query/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pganalyze/libpg_query REF "${VERSION}" SHA512 d17652fae797b658457501dd9b5dff9c5805f001b600e3231c1c00c17c08404817aa4436a6096731cf362552470dce00470753ae622615e62f5330f32478548d HEAD_REF master PATCHES 0001-use-system-deps.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME "Makefile.msvc" CL_LANGUAGE C TARGET build ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/pg_query.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/pg_query.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) endif() else() file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure" DESTINATION "${SOURCE_PATH}") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(lib_suffix "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") set(make_target "build") else() set(lib_suffix "${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") set(make_target "build_shared") endif() vcpkg_make_install( TARGETS "${make_target}" OPTIONS "CFLAGS_OPT_LEVEL=" ) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libpg_query${lib_suffix}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libpg_query${lib_suffix}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) endif() endif() file(INSTALL "${SOURCE_PATH}/pg_query.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/postgres_deparse.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/protobuf/pg_query.pb-c.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/protobuf") file(INSTALL "${SOURCE_PATH}/protobuf/pg_query.proto" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-libpg-query-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}" RENAME "unofficial-${PORT}-config.cmake" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libpg-query/unofficial-libpg-query-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(protobuf-c CONFIG REQUIRED) find_dependency(xxHash CONFIG REQUIRED) if(NOT TARGET unofficial::libpg-query::libpg-query) 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) set(LIBPG_QUERY_PROTO_FILE "${_IMPORT_PREFIX}/share/libpg-query/pg_query.proto" CACHE FILEPATH "Path to the libpg-query protobuf schema file") add_library(unofficial::libpg-query::libpg-query UNKNOWN IMPORTED) set_target_properties(unofficial::libpg-query::libpg-query PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" INTERFACE_LINK_LIBRARIES "protobuf-c::protobuf-c;xxHash::xxhash" ) find_library(LIBPG_QUERY_LIBRARY_DEBUG NAMES pg_query PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH ) if(LIBPG_QUERY_LIBRARY_DEBUG) set_property(TARGET unofficial::libpg-query::libpg-query APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug) set_target_properties(unofficial::libpg-query::libpg-query PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBPG_QUERY_LIBRARY_DEBUG}" ) endif() find_library(LIBPG_QUERY_LIBRARY_RELEASE NAMES pg_query PATHS "${_IMPORT_PREFIX}" PATH_SUFFIXES lib NO_DEFAULT_PATH ) if(LIBPG_QUERY_LIBRARY_RELEASE) set_property(TARGET unofficial::libpg-query::libpg-query APPEND PROPERTY IMPORTED_CONFIGURATIONS Release) set_target_properties(unofficial::libpg-query::libpg-query PROPERTIES IMPORTED_LOCATION_RELEASE "${LIBPG_QUERY_LIBRARY_RELEASE}" ) endif() unset(LIBPG_QUERY_LIBRARY_RELEASE) unset(LIBPG_QUERY_LIBRARY_DEBUG) unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/libpg-query/usage ================================================ The package libpg-query provides C headers and a library for the PostgreSQL parser. Example CMake usage: find_package(unofficial-libpg-query CONFIG REQUIRED) target_link_libraries(your_target PRIVATE unofficial::libpg-query::libpg-query) ================================================ FILE: ports/libpg-query/vcpkg.json ================================================ { "name": "libpg-query", "version": "17-6.2.1", "description": "C library for accessing the PostgreSQL parser outside of the server", "homepage": "https://github.com/pganalyze/libpg_query", "license": "BSD-3-Clause", "supports": "!android", "dependencies": [ "protobuf-c", { "name": "vcpkg-make", "host": true }, "xxhash" ] } ================================================ FILE: ports/libphonenumber/disable-werror.patch ================================================ diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 27e4680..ab4c404 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -418,7 +418,7 @@ if (USE_ICU_REGEXP) endif () if (NOT WIN32) - add_definitions ("-Wall -Werror") + add_definitions ("-Wall") endif () include_directories ("src") ================================================ FILE: ports/libphonenumber/enable-cpp17.patch ================================================ diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 27e4680..88df056 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -459,11 +459,13 @@ if (BUILD_STATIC_LIB) add_library (phonenumber STATIC ${SOURCES}) target_link_libraries (phonenumber ${LIBRARY_DEPS}) target_include_directories(phonenumber PUBLIC $) + target_compile_features(phonenumber PUBLIC cxx_std_17) if (BUILD_GEOCODER) add_library (geocoding STATIC ${GEOCODING_SOURCES}) target_link_libraries (geocoding ${LIBRARY_DEPS}) target_include_directories(geocoding PUBLIC $) + target_compile_features(geocoding PUBLIC cxx_std_17) add_dependencies (geocoding generate_geocoding_data) add_dependencies (phonenumber generate_geocoding_data) endif () @@ -479,6 +481,7 @@ if (BUILD_SHARED_LIBS) add_library (phonenumber-shared SHARED ${SOURCES}) target_link_libraries (phonenumber-shared ${LIBRARY_DEPS}) target_include_directories(phonenumber-shared PUBLIC $) + target_compile_features(phonenumber-shared PUBLIC cxx_std_17) set_target_properties (phonenumber-shared PROPERTIES @@ -495,6 +498,7 @@ if (BUILD_SHARED_LIBS) add_library (geocoding-shared SHARED ${GEOCODING_SOURCES}) target_link_libraries (geocoding-shared ${LIBRARY_DEPS}) target_include_directories(geocoding-shared PUBLIC $) + target_compile_features(geocoding-shared PUBLIC cxx_std_17) add_dependencies (geocoding-shared generate_geocoding_data) add_dependencies (phonenumber-shared generate_geocoding_data) ================================================ FILE: ports/libphonenumber/fix-find-protobuf.patch ================================================ diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 10b6dce7..50f06eda 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -46,6 +46,7 @@ function (print_error DESCRIPTION FILE) "Can't find ${DESCRIPTION}: can't locate ${FILE}. Please read the README.") endfunction () +set(CMAKE_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES};lib") # Find a library. If it has not been found, stop CMake with a fatal error # message. function (find_required_library NAME HEADER LIBRARY DESCRIPTION) ================================================ FILE: ports/libphonenumber/fix-icui18n-lib-name.patch ================================================ diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index cdd7a081..10b6dce7 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -192,7 +192,11 @@ set (ICU_INCLUDE_DIR ${ICU_UC_INCLUDE_DIR}) set (ICU_LIB ${ICU_UC_LIB}) # If ICU regexp engine is used or if the geocoder is built, use icui18n as well. if (USE_ICU_REGEXP OR BUILD_GEOCODER) - find_required_library (ICU_I18N unicode/regex.h icui18n "ICU") + if (NOT WIN32) + find_required_library (ICU_I18N unicode/regex.h "icui18n" "ICU") + else () + find_required_library (ICU_I18N unicode/regex.h "icuin" "ICU") + endif () check_library_version (PC_ICU_I18N icu-i18n>=4.4) list (APPEND ICU_INCLUDE_DIR ${ICU_I18N_INCLUDE_DIR}) list (APPEND ICU_LIB ${ICU_I18N_LIB}) ================================================ FILE: ports/libphonenumber/fix-re2-identifiers.patch ================================================ diff --git a/cpp/src/phonenumbers/regexp_adapter_re2.cc b/cpp/src/phonenumbers/regexp_adapter_re2.cc index bb542234..398f369b 100644 --- a/cpp/src/phonenumbers/regexp_adapter_re2.cc +++ b/cpp/src/phonenumbers/regexp_adapter_re2.cc @@ -31,6 +31,8 @@ namespace i18n { namespace phonenumbers { +using re2::StringPiece; + // Implementation of RegExpInput abstract class. class RE2RegExpInput : public RegExpInput { public: ================================================ FILE: ports/libphonenumber/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/libphonenumber REF "v${VERSION}" SHA512 b921537064ce72ea7bcdebf312e77f3c233c56e41347583a4ad100da55823a731073f4b32677854013ec85436d6684f2220df9ce246b4d059e8f93f526976b14 HEAD_REF master PATCHES # fix compilation error due to deprecated warnings in protobuf generated files disable-werror.patch fix-re2-identifiers.patch fix-icui18n-lib-name.patch fix-find-protobuf.patch re2-2023-07-01-compat.patch # enable C++17 for re2 enable-cpp17.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cpp" OPTIONS -DREGENERATE_METADATA=OFF -DUSE_RE2=ON -DBUILD_GEOCODER=OFF -DUSE_PROTOBUF_LITE=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=OFF) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libphonenumber/re2-2023-07-01-compat.patch ================================================ diff --git a/cpp/src/phonenumbers/regexp_adapter_re2.cc b/cpp/src/phonenumbers/regexp_adapter_re2.cc index 398f369b..3dd5d854 100644 --- a/cpp/src/phonenumbers/regexp_adapter_re2.cc +++ b/cpp/src/phonenumbers/regexp_adapter_re2.cc @@ -41,7 +41,7 @@ class RE2RegExpInput : public RegExpInput { utf8_input_(string_) {} virtual string ToString() const { - return utf8_input_.ToString(); + return string(utf8_input_.data(), utf8_input_.size()); } StringPiece* Data() { ================================================ FILE: ports/libphonenumber/usage ================================================ libphonenumber provides CMake targets: find_package(libphonenumber CONFIG REQUIRED) target_link_libraries(main PRIVATE libphonenumber::phonenumber) ================================================ FILE: ports/libphonenumber/vcpkg.json ================================================ { "name": "libphonenumber", "version": "9.0.26", "description": "Google's common Java, C++ and JavaScript library for parsing, formatting, and validating international phone numbers.", "homepage": "https://github.com/google/libphonenumber", "license": "Apache-2.0", "dependencies": [ "abseil", "boost-date-time", "boost-system", "boost-thread", "icu", "protobuf", "re2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libplist/001_fix_static_build.patch ================================================ diff --git a/src/plist.c b/src/plist.c index a33a6fb..1dda4d7 100644 --- a/src/plist.c +++ b/src/plist.c @@ -132,6 +132,8 @@ static int plist_debug = 0; static void f(void) #endif +#ifndef LIBPLIST_STATIC // disable dll constructor + extern void plist_xml_init(void); extern void plist_xml_deinit(void); extern void plist_bin_init(void); @@ -158,6 +160,8 @@ INITIALIZER(internal_plist_init) atexit(internal_plist_deinit); } +#endif // disable dll constructor + #ifndef HAVE_MEMMEM // see https://sourceware.org/legacy-ml/libc-alpha/2007-12/msg00000.html ================================================ FILE: ports/libplist/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libplist C CXX) option(BUILD_TOOLS "Build tools." OFF) include(GNUInstallDirs) file(GLOB_RECURSE LIBCNARY_SOURCE libcnary/node.c libcnary/node_list.c) file(GLOB_RECURSE LIBPLIST_SOURCE src/*.c) file(GLOB_RECURSE LIBPLISTPP_SOURCE src/*.cpp) set(DEFINITIONS) list(APPEND DEFINITIONS -DPACKAGE_VERSION="${PACKAGE_VERSION}") if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND DEFINITIONS -DLIBPLIST_EXPORT) endif() else() list(APPEND DEFINITIONS -DLIBPLIST_STATIC) endif() if(UNIX) list(APPEND DEFINITIONS -DHAVE_STRNDUP) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) endif() add_library(libplist ${LIBPLIST_SOURCE} ${LIBCNARY_SOURCE}) target_include_directories(libplist PUBLIC "$" "$" "$" "$" ) target_compile_definitions(libplist PRIVATE ${DEFINITIONS}) set_target_properties(libplist PROPERTIES OUTPUT_NAME plist-2.0) if(UNIX AND NOT APPLE) target_link_libraries(libplist PRIVATE m) endif() add_library(libplist++ STATIC ${LIBPLISTPP_SOURCE} ${LIBCNARY_SOURCE}) target_include_directories(libplist++ PUBLIC "$" "$" "$" "$" ) target_compile_definitions(libplist++ PRIVATE ${DEFINITIONS}) target_link_libraries(libplist++ PUBLIC libplist) set_target_properties(libplist++ PROPERTIES OUTPUT_NAME plist++-2.0) install(TARGETS libplist libplist++ EXPORT unofficial-libplist) install( EXPORT unofficial-libplist FILE unofficial-libplist-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libplist" NAMESPACE unofficial::libplist:: ) install( DIRECTORY "${CMAKE_SOURCE_DIR}/include/plist" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(PACKAGE_NAME libplist) set(PACKAGE_VERSION 2.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") foreach(PLIST_PKGCONFIG libplist-2.0.pc libplist++-2.0.pc) configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/${PLIST_PKGCONFIG}.in" "${CMAKE_CURRENT_BINARY_DIR}/${PLIST_PKGCONFIG}" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PLIST_PKGCONFIG}" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) endforeach() if(BUILD_TOOLS) add_executable(plistutil "tools/plistutil.c") target_compile_definitions(plistutil PRIVATE -DPACKAGE_VERSION="2.3.0" -DPACKAGE_URL="https://github.com/libimobiledevice/libplist" -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/libplist/issues" ) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(plistutil PRIVATE -DLIBPLIST_STATIC) endif() target_link_libraries(plistutil PRIVATE libplist) install( TARGETS plistutil RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/libplist/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libplist REF ${VERSION} SHA512 0477202686fb2f88684af30a97d53fd023ada470dfc7c5d8b32c0d80e09a4641e679522a53c5ad32eae61b21a2d0f1f0c660acd8482ba7951d728b42e4cf5eab HEAD_REF master PATCHES 001_fix_static_build.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPACKAGE_VERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES plistutil AUTO_CLEAN) endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plist/plist.h" "#ifdef LIBPLIST_STATIC" "#if 1" ) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plist/plist.h" "#ifdef LIBPLIST_STATIC" "#if 0" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libplist/usage ================================================ libplist provides CMake targets: find_package(unofficial-libplist CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libplist::libplist unofficial::libplist::libplist++) ================================================ FILE: ports/libplist/vcpkg.json ================================================ { "name": "libplist", "version": "2.7.0", "description": "A library to handle Apple Property List format in binary or XML", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox" } } } ================================================ FILE: ports/libpmemobj-cpp/fixlibpmemobj-cpp.patch ================================================ diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index bb29b8d..839a77f 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -27,6 +27,12 @@ function(add_benchmark name) prepend(srcs ${CMAKE_CURRENT_SOURCE_DIR} ${srcs}) add_executable(benchmark-${name} ${srcs}) target_link_libraries(benchmark-${name} ${LIBPMEMOBJ_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + install( + TARGETS benchmark-${name} + RUNTIME DESTINATION tools + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endfunction() add_check_whitespace(benchmarks-cmake ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt) ================================================ FILE: ports/libpmemobj-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmem/libpmemobj-cpp REF 9599f724d4edc3a3d973bac14eeebdc1bc31d327 #v1.13.0 SHA512 ae1f8ed8aecdc35e9e78c957fcd154e43c7bcb5bf5cf3e5b23be3e95d21de754dbbd9b6549bd6c7991fad24492b08421df338c3706ab0157c31ebc88b65fa4fe HEAD_REF master PATCHES fixlibpmemobj-cpp.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES benchmark BUILD_BENCHMARKS ) vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) vcpkg_add_to_path(${PERL_EXE_PATH}) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF -DTESTS_USE_VALGRIND=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/libpmemobj++/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib/libpmemobj++") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libpmemobj-cpp/vcpkg.json ================================================ { "name": "libpmemobj-cpp", "version-semver": "1.13.0", "port-version": 1, "description": "C++ bindings for libpmemobj (https://github.com/pmem/pmdk)", "homepage": "https://github.com/pmem/libpmemobj-cpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "benchmark": { "description": "build benchmarks", "dependencies": [ "pmdk" ] } } } ================================================ FILE: ports/libpng/cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d91e3a6c3..249d04c0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,12 @@ set(PNG_LINK_LIBRARIES ZLIB::ZLIB) # Find the math library (unless we already know it's not available or # not needed). if(UNIX AND NOT (APPLE OR BEOS OR HAIKU OR EMSCRIPTEN)) + block(SCOPE_FOR VARIABLES) + if(VCPKG_CRT_LINKAGE STREQUAL "static") + list(PREPEND CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_STATIC_LIBRARY_SUFFIX}") + endif() + check_library_exists(m pow "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}" PNG_HAVE_LIBM_POW) + endblock() check_library_exists(m pow "" PNG_HAVE_LIBM_POW) endif() if(PNG_HAVE_LIBM_POW) @@ -240,9 +246,9 @@ if(PNG_HARDWARE_OPTIMIZATIONS) # Set definitions and sources for MIPS. if(PNG_TARGET_ARCHITECTURE MATCHES "^(mipsel|mips64el)") - set(PNG_MIPS_MSA_POSSIBLE_VALUES on off) + set(PNG_MIPS_MSA_POSSIBLE_VALUES on off check) set(PNG_MIPS_MSA - "on" + "check" CACHE STRING "Enable MIPS_MSA optimizations: on|off; on is default") set_property(CACHE PNG_MIPS_MSA PROPERTY STRINGS ${PNG_MIPS_MSA_POSSIBLE_VALUES}) @@ -269,6 +275,12 @@ if(PNG_HARDWARE_OPTIMIZATIONS) mips/filter_mmi_inline_assembly.c) add_definitions(-DPNG_MIPS_MSA_OPT=2) add_definitions(-DPNG_MIPS_MMI_OPT=1) + elseif(PNG_MIPS_MSA STREQUAL "check") + set(libpng_mips_sources + mips/mips_init.c + mips/filter_msa_intrinsics.c) + add_definitions(-DPNG_MIPS_MSA_CHECK_SUPPORTED) + add_definitions(-DPNG_MIPS_MMI_CHECK_SUPPORTED) elseif(PNG_MIPS_MSA STREQUAL "on") set(libpng_mips_sources mips/mips_init.c @@ -661,7 +673,7 @@ else() # We also need to use a custom suffix, in order to distinguish between the # shared import library name and the static library name. set(PNG_SHARED_OUTPUT_NAME "libpng${PNGLIB_ABI_VERSION}") - set(PNG_STATIC_OUTPUT_NAME "libpng${PNGLIB_ABI_VERSION}_static") + set(PNG_STATIC_OUTPUT_NAME "libpng${PNGLIB_ABI_VERSION}") endif() if(PNG_SHARED) @@ -939,10 +951,10 @@ if(PNG_TESTS AND PNG_SHARED) FILES ${PNGSUITE_PNGS}) endif() -if(PNG_SHARED AND PNG_TOOLS) +if(PNG_TOOLS) add_executable(pngfix ${pngfix_sources}) target_link_libraries(pngfix - PRIVATE png_shared) + PRIVATE $ $) # in vcpkg there's only one set(PNG_BIN_TARGETS pngfix) add_executable(png-fix-itxt ${png_fix_itxt_sources}) @@ -1028,12 +1040,15 @@ endif() # We use the same files like ./configure, so we have to set its vars. # Only do this on Windows for Cygwin - the files don't make much sense # outside of a UNIX look-alike. -if(NOT WIN32 OR CYGWIN OR MINGW) +if(1) set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix "${CMAKE_INSTALL_PREFIX}") set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") - set(LIBS "-lz -lm") + set(LIBS "") + if(PNG_HAVE_LIBM_POW) + string(APPEND LIBS "-lm") + endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc" @ONLY) @@ -1092,6 +1107,9 @@ if(NOT SKIP_INSTALL_PROGRAMS AND NOT SKIP_INSTALL_ALL) endif() if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${PNGLIB_ABI_VERSION}.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +elseif(0) # Install the man pages. install(FILES libpng.3 libpngpf.3 DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") ================================================ FILE: ports/libpng/libpng-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(libpng) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(PNG CONFIG) if(NOT TARGET png_shared) add_library(png_shared ALIAS PNG::PNG) endif() if(NOT TARGET png_static) add_library(png_static ALIAS PNG::PNG) endif() ================================================ FILE: ports/libpng/portfile.cmake ================================================ # Download the apng patch set(LIBPNG_APNG_PATCH_PATH "") if ("apng" IN_LIST FEATURES) if(VCPKG_HOST_IS_WINDOWS) # Get (g)awk and gzip installed vcpkg_acquire_msys(MSYS_ROOT PACKAGES gawk gzip) set(AWK_EXE_PATH "${MSYS_ROOT}/usr/bin") vcpkg_add_to_path("${AWK_EXE_PATH}") endif() set(LIBPNG_APNG_PATCH_NAME "libpng-${VERSION}-apng.patch") vcpkg_download_distfile(LIBPNG_APNG_PATCH_ARCHIVE URLS "https://downloads.sourceforge.net/project/libpng-apng/libpng16/${VERSION}/${LIBPNG_APNG_PATCH_NAME}.gz" FILENAME "${LIBPNG_APNG_PATCH_NAME}.gz" SHA512 2f85d3b7c6341245a56029f2dd8de6fd59f2950f9030ecb3f8b7c07ba753f3deb8345077aa167f3efe0628089818608e7e780415530a8ca51fa77fc256daaa74 ) set(LIBPNG_APNG_PATCH_PATH "${CURRENT_BUILDTREES_DIR}/src/${LIBPNG_APNG_PATCH_NAME}") if (NOT EXISTS "${LIBPNG_APNG_PATCH_PATH}") file(INSTALL "${LIBPNG_APNG_PATCH_ARCHIVE}" DESTINATION "${CURRENT_BUILDTREES_DIR}/src") vcpkg_execute_required_process( COMMAND gzip -d "${LIBPNG_APNG_PATCH_NAME}.gz" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src" ALLOW_IN_DOWNLOAD_MODE LOGNAME extract-patch.log ) endif() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pnggroup/libpng REF v${VERSION} SHA512 98ce4acef95ab92ec03039fa0b60b229c0ca607bf1bbe4295f92c638940ecd2d03aba63186ee837b063c09f8176de4987853df96549436c90f588d69f9061a3c HEAD_REF master PATCHES "${LIBPNG_APNG_PATCH_PATH}" cmake.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PNG_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PNG_STATIC) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools PNG_TOOLS INVERTED_FEATURES tools SKIP_INSTALL_PROGRAMS ) vcpkg_list(SET LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION) if(VCPKG_TARGET_IS_IOS) vcpkg_list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_HARDWARE_OPTIMIZATIONS=OFF") endif() vcpkg_list(SET LD_VERSION_SCRIPT_OPTION) if(VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND LD_VERSION_SCRIPT_OPTION "-Dld-version-script=OFF") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_ANDROID_ARM_NEON) vcpkg_list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_ARM_NEON=on") else() # for armeabi-v7a, check whether NEON is available vcpkg_list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_ARM_NEON=check") endif() endif() endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_TARGET_IS_LINUX) vcpkg_list(APPEND LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION "-DPNG_ARM_NEON=on") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${LIBPNG_HARDWARE_OPTIMIZATIONS_OPTION} ${LD_VERSION_SCRIPT_OPTION} -DPNG_STATIC=${PNG_STATIC} -DPNG_SHARED=${PNG_SHARED} -DPNG_FRAMEWORK=OFF -DPNG_TESTS=OFF -DSKIP_INSTALL_EXECUTABLES=ON -DSKIP_INSTALL_FILES=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON MAYBE_UNUSED_VARIABLES PNG_ARM_NEON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME png CONFIG_PATH lib/cmake/PNG) vcpkg_cmake_config_fixup(CONFIG_PATH lib/libpng) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/png") # unofficial legacy usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/libpng-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc" "-lpng16" "-llibpng16d") file(INSTALL "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" RENAME "libpng.pc") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng16.pc" "-lpng16" "-llibpng16") elseif(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc" "-lpng16" "-lpng16d") file(INSTALL "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpng16.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" RENAME "libpng.pc") endif() file(INSTALL "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpng16.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" RENAME "libpng.pc") vcpkg_copy_pdbs() if(PNG_TOOLS) vcpkg_copy_tools(TOOL_NAMES "pngfix" "png-fix-itxt" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libpng/usage ================================================ libpng provides CMake targets: find_package(PNG REQUIRED) target_link_libraries(main PRIVATE PNG::PNG) ================================================ FILE: ports/libpng/vcpkg-cmake-wrapper.cmake ================================================ find_library(PNG_LIBRARY_RELEASE NAMES png16 libpng16 NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(PNG_LIBRARY_DEBUG NAMES png16d libpng16d NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) _find_package(${ARGS}) ================================================ FILE: ports/libpng/vcpkg.json ================================================ { "name": "libpng", "version": "1.6.55", "description": "libpng is a library implementing an interface for reading and writing PNG (Portable Network Graphics) format files", "homepage": "https://github.com/pnggroup/libpng", "license": "libpng-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true, "platform": "arm & android" }, "zlib" ], "features": { "apng": { "description": "This is backward compatible with the regular libpng, both in library usage and format" }, "tools": { "description": "Build the libpng tools", "supports": "!android & !ios" } } } ================================================ FILE: ports/libpopcnt/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kimwalisch/libpopcnt REF "v${VERSION}" SHA512 b01f1446c951b848357ed01e31cb2d1014639ba854710edcc5703b69226b9ca2e65c84d78308cf345654fbfc92ce467bb5a5171158db5b94f979674efb59f6dc HEAD_REF master ) file(COPY "${SOURCE_PATH}/libpopcnt.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libpopcnt/vcpkg.json ================================================ { "name": "libpopcnt", "version": "3.1", "description": "Fast C/C++ bit population count library", "homepage": "https://github.com/kimwalisch/libpopcnt", "license": "BSD-2-Clause" } ================================================ FILE: ports/libpopt/0004-vcpkg-fixmsvc.patch ================================================ diff -Naur a/poptconfig.c b/poptconfig.c --- a/poptconfig.c 2009-05-20 16:18:07.000000000 +0300 +++ b/poptconfig.c 2017-01-21 03:10:17.116120500 +0300 @@ -141,17 +141,23 @@ int poptSaneFile(const char * fn) { struct stat sb; - uid_t uid = getuid(); +#ifndef _MSC_VER + uid_t uid = getuid(); +#endif // ! _MSC_VER if (stat(fn, &sb) == -1) return 1; +#ifndef _MSC_VER if ((uid_t)sb.st_uid != uid) return 0; +#endif // ! _MSC_VER if (!S_ISREG(sb.st_mode)) return 0; /*@-bitwisesigned@*/ - if (sb.st_mode & (S_IWGRP|S_IWOTH)) - return 0; +#ifndef _MSC_VER + if (sb.st_mode & (S_IWGRP | S_IWOTH)) + return 0; +#endif // ! _MSC_VER /*@=bitwisesigned@*/ return 1; } diff -Naur a/popthelp.c b/popthelp.c --- a/popthelp.c 2009-08-28 03:06:33.000000000 +0300 +++ b/popthelp.c 2017-01-21 02:59:26.665695800 +0300 @@ -10,7 +10,10 @@ #include "system.h" -#define POPT_USE_TIOCGWINSZ +#ifndef _MSC_VER +#define POPT_USE_TIOCGWINSZ +#endif + #ifdef POPT_USE_TIOCGWINSZ #include #endif diff -Naur a/system.h b/system.h --- a/system.h 2008-12-18 19:09:49.000000000 +0200 +++ b/system.h 2017-01-21 03:10:59.195367500 +0300 @@ -100,4 +100,13 @@ #endif #define UNUSED(x) x __attribute__((__unused__)) +#if defined(_MSC_VER) +#define X_OK 0 + +#include +typedef SSIZE_T ssize_t; + +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) +#endif + #include "popt.h" ================================================ FILE: ports/libpopt/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(popt VERSION 1.16 LANGUAGES C) set(PACKAGE "popt") set(POPT_SYSCONFDIR "C:\\\\") set(CMAKE_DEBUG_POSTFIX "d") file(GLOB SOURCES "popt.c" "poptconfig.c" "popthelp.c" "poptint.c" "poptparse.c" "popt.def" ) option(POPT_USE_CONFIG "Use configuration file" OFF) if(POPT_USE_CONFIG) include(CheckIncludeFile) include(CheckFunctionExists) if(ANDROID AND ANDROID_NATIVE_API_LEVEL LESS "28") set(HAVE_GLOB_H FALSE CACHE INTERNAL "") endif() check_include_file(float.h HAVE_FLOAT_H) check_include_file(fnmatch.h HAVE_FNMATCH_H) check_include_file(glob.h HAVE_GLOB_H) check_include_file(langinfo.h HAVE_LANGINFO_H) check_include_file(libintl.h HAVE_LIBINTL_H) check_include_file(mcheck.h HAVE_MCHECK_H) check_include_file(unistd.h HAVE_UNISTD_H) check_function_exists(gettext HAVE_GETTEXT) check_function_exists(iconv HAVE_ICONV) check_function_exists(mtrace HAVE_MTRACE) check_function_exists(srandom HAVE_SRANDOM) check_function_exists(stpcpy HAVE_STPCPY) check_function_exists(strerror HAVE_STRERROR) check_function_exists(vasprintf HAVE_VASPRINTF) check_function_exists(__secure_getenv HAVE___SECURE_GETENV) configure_file(config.h.cmake config.h @ONLY) add_definitions(-DHAVE_CONFIG_H) endif() add_definitions(-D_CRT_SECURE_NO_WARNINGS) include_directories(${CMAKE_BINARY_DIR}) add_library(popt ${SOURCES}) if (MSVC) target_compile_options(popt PRIVATE /wd4996) else() target_compile_options(popt PRIVATE -Wno-error=implicit-function-declaration) endif() install(TARGETS popt RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES "popt.h" DESTINATION "include") ================================================ FILE: ports/libpopt/config.h.cmake ================================================ #ifndef CONFIG_H #define CONFIG_H /* Define to 1 if translation of program messages to the user's native language is requested. */ #cmakedefine ENABLE_NLS 1 /* Define if the GNU dcgettext() function is already present or preinstalled. */ #cmakedefine HAVE_DCGETTEXT 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_FLOAT_H 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_FNMATCH_H 1 /* Define if the GNU gettext() function is already present or preinstalled. */ #cmakedefine HAVE_GETTEXT 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_GLOB_H 1 /* Define if you have the iconv() function and it works. */ #cmakedefine HAVE_ICONV 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LANGINFO_H 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_LIBINTL_H 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_MCHECK_H 1 /* Define to 1 if you have the `mtrace' function. */ #cmakedefine HAVE_MTRACE 1 /* Define to 1 if you have the `srandom' function. */ #cmakedefine HAVE_SRANDOM 1 /* Define to 1 if you have the `stpcpy' function. */ #cmakedefine HAVE_STPCPY 1 /* Define to 1 if you have the `strerror' function. */ #cmakedefine HAVE_STRERROR 1 /* Define to 1 if you have the header file. */ #cmakedefine HAVE_UNISTD_H 1 /* Define to 1 if you have the `vasprintf' function. */ #cmakedefine HAVE_VASPRINTF 1 /* Define to 1 if you have the `__secure_getenv' function. */ #cmakedefine HAVE___SECURE_GETENV 1 /* Name of package */ #cmakedefine PACKAGE "@PACKAGE@" /* Full path to default POPT configuration directory */ #cmakedefine POPT_SYSCONFDIR "@POPT_SYSCONFDIR@" #endif ================================================ FILE: ports/libpopt/popt.def ================================================ EXPORTS _poptArgMask _poptBitsK _poptBitsM _poptBitsN _poptGroupMask poptAddAlias poptAddItem poptAliasOptions poptBadOption poptBitsAdd poptBitsArgs poptBitsChk poptBitsClr poptBitsDel poptBitsIntersect poptBitsUnion poptConfigFileToString poptDupArgv poptFini poptFreeContext poptGetArg poptGetArgs poptGetContext poptGetInvocationName poptGetNextOpt poptGetOptArg poptHelpOptions poptInit poptParseArgvString poptPeekArg poptPrintHelp poptPrintUsage poptReadConfigFile poptReadConfigFiles poptReadDefaultConfig poptReadFile poptResetContext poptSaneFile poptSaveBits poptSaveInt poptSaveLong poptSaveLongLong poptSaveShort poptSaveString poptSetExecPath poptSetOtherOptionHelp poptStrerror poptStrippedArgv poptStuffArgs ================================================ FILE: ports/libpopt/portfile.cmake ================================================ set(LIBPOPT_VERSION 1.16) set(LIBPOPT_HASH bae2dd4e5d682ef023fdc77ae60c4aad01a3a576d45af9d78d22490c11e410e60edda37ede171920746d4ae0d5de3c060d15cecfd41ba75b727a811be828d694) vcpkg_download_distfile(ARCHIVE URLS "https://ftp.openbsd.org/pub/OpenBSD/distfiles/popt-${LIBPOPT_VERSION}.tar.gz" FILENAME "popt-${LIBPOPT_VERSION}.tar.gz" SHA512 ${LIBPOPT_HASH} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0004-vcpkg-fixmsvc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h.cmake" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/popt.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPOPT_USE_CONFIG=1 ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libpopt/vcpkg.json ================================================ { "name": "libpopt", "version": "1.16", "port-version": 18, "description": "Library for parsing command line parameters", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libpq/Makefile ================================================ subdir = . top_builddir = . include src/Makefile.global ifeq ($(LIBPQ_LIBRARY_TYPE), static) LIBPQ_INSTALL_LIBS = install-stlib endif ifeq ($(LIBPQ_LIBRARY_TYPE), shared) ifeq ($(LIBPQ_USING_MINGW), yes) # The import library name is the same as the static library name EXTRA_TARGET = install-lib-static endif endif .PHONY: all all: $(MAKE) -C src/include $(MAKE) -C src/common $(MAKE) -C src/port $(MAKE) -C src/interfaces/libpq all-$(LIBPQ_LIBRARY_TYPE)-lib $(MAKE) -C src/interfaces/ecpg/include $(MAKE) -C src/interfaces/ecpg/pgtypeslib $(MAKE) -C src/interfaces/ecpg/ecpglib $(MAKE) -C src/interfaces/ecpg/compatlib ifeq ($(LIBPQ_ENABLE_TOOLS), yes) $(MAKE) -C src/interfaces/ecpg/preproc $(MAKE) -C src/fe_utils $(MAKE) -C src/bin else $(MAKE) -C src/bin/pg_config endif .PHONY: install-stlib install-stlib: $(MAKE) -C src/common install -o all rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a' $(MAKE) -C src/port install -o all rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a' .PHONY: install install: $(LIBPQ_INSTALL_LIBS) $(MAKE) -C src/include install $(MAKE) -C src/interfaces/libpq $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib $(MAKE) -C src/interfaces/ecpg/include install $(MAKE) -C src/interfaces/ecpg/pgtypeslib install $(MAKE) -C src/interfaces/ecpg/ecpglib install $(MAKE) -C src/interfaces/ecpg/compatlib install ifeq ($(LIBPQ_ENABLE_TOOLS), yes) $(MAKE) -C src/interfaces/ecpg/preproc install $(MAKE) -C src/bin install else $(MAKE) -C src/bin/pg_config install endif ================================================ FILE: ports/libpq/android/unversioned_so.patch ================================================ diff --git a/src/Makefile.shlib b/src/Makefile.shlib index f94d59d1c597..8ca51ca03f75 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -183,6 +183,11 @@ endif ifeq ($(PORTNAME), linux) LINK.shared = $(COMPILER) -shared ifdef soname + ifneq (,$(findstring linux-android,$(host_os))) + # Android uses unversioned shared libraries + shlib = $(shlib_bare) + soname = $(shlib_bare) + endif LINK.shared += -Wl,-soname,$(soname) endif BUILD.exports = ( echo '{ global:'; $(AWK) '/^[^\#]/ {printf "%s;\n",$$1}' $<; echo ' local: *; };' ) >$@ ================================================ FILE: ports/libpq/build-msvc.cmake ================================================ function(build_msvc build_type source_path) if(build_type STREQUAL "DEBUG") set(vcpkg_configuration "Debug") set(label "${TARGET_TRIPLET}-dbg") set(packages_dir "${CURRENT_PACKAGES_DIR}/debug") else() set(vcpkg_configuration "Release") set(label "${TARGET_TRIPLET}-rel") set(packages_dir "${CURRENT_PACKAGES_DIR}") endif() set(build_path "${CURRENT_BUILDTREES_DIR}/${label}") file(REMOVE_RECURSE "${build_path}") file(COPY "${source_path}/" DESTINATION "${build_path}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${build_path}/src/include/port/win32.h" "__declspec (dllimport)" "") endif() vcpkg_replace_string("${build_path}/src/tools/msvc/MSBuildProject.pm" "perl " "\"${PERL}\" ") configure_file("${CURRENT_PORT_DIR}/libpq.props.in" "${build_path}/libpq.props" @ONLY) configure_file("${CURRENT_PORT_DIR}/vcpkg-libs.props.in" "${build_path}/vcpkg-libs.props" @ONLY) set(config "# Generated by ${CMAKE_CURRENT_LIST_FILE}\n\n") foreach(var IN ITEMS VCPKG_TARGET_ARCHITECTURE VCPKG_LIBRARY_LINKAGE VCPKG_CRT_LINKAGE) string(APPEND config "\$config->{${var}} = \"${${var}}\";\n") endforeach() foreach(option IN ITEMS icu lz4 nls openssl python tcl xml xslt zlib zstd) if(option IN_LIST FEATURES) string(APPEND config "\$config->{${option}} = \"${CURRENT_INSTALLED_DIR}\";\n") endif() endforeach() if("openssl" IN_LIST FEATURES) file(STRINGS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/openssl.pc" OPENSSL_VERSION REGEX "Version:") string(APPEND config "\$config->{openssl_version} = '${OPENSSL_VERSION}';\n") endif() string(APPEND config "\$config->{python_version} = '3.${PYTHON_VERSION_MINOR}';\n") string(APPEND config "\$config->{tcl_version} = '90';\n") file(WRITE "${build_path}/src/tools/msvc/config.pl" "${config}") set(build_in_parallel "-m") set(build_targets libpq libecpg_compat) set(install_target core) if(HAS_TOOLS AND NOT build_type STREQUAL "DEBUG") set(build_in_parallel "") # mitigate winflex races set(build_targets client) set(install_target client) endif() string(REPLACE "x86" "Win32" platform "${VCPKG_TARGET_ARCHITECTURE}") vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION) set(ENV{MSBFLAGS} "\ /p:Platform=${platform} \ /p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET} \ /p:VCPkgLocalAppDataDisabled=true \ /p:UseIntelMKL=No \ /p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION} \ /p:VcpkgConfiguration=${vcpkg_configuration} \ ${build_in_parallel} \ /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets;${build_path}/vcpkg-libs.props\" \ /p:VcpkgTriplet=${TARGET_TRIPLET} \ /p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\" \ /p:ForceImportAfterCppTargets=\"${build_path}/libpq.props\" \ ") message(STATUS "Building ${label}") foreach(target IN LISTS build_targets) string(REPLACE "client" "" target "${target}") vcpkg_execute_required_process( COMMAND "${PERL}" build.pl ${build_type} ${target} WORKING_DIRECTORY "${build_path}/src/tools/msvc" LOGNAME "build-${target}-${label}" ) endforeach() message(STATUS "Installing ${label}") vcpkg_execute_required_process( COMMAND "${PERL}" install.pl "${packages_dir}" ${install_target} WORKING_DIRECTORY "${build_path}/src/tools/msvc" LOGNAME "install-${label}" ) endfunction() ================================================ FILE: ports/libpq/libpq.props.in ================================================ %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ ================================================ FILE: ports/libpq/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftp.postgresql.org/pub/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" "https://www.mirrorservice.org/sites/ftp.postgresql.org/source/v${VERSION}/postgresql-${VERSION}.tar.bz2" FILENAME "postgresql-${VERSION}.tar.bz2" SHA512 23a3d983c5be49c3daabbbde35db2920bd2e2ba8d9baba805e7908da1f43153ff438c76c253ea8ee8ac6f8a9313fbf0348a1e9b45ef530c5e156fee0daceb814 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES unix/installdirs.patch unix/fix-configure.patch unix/single-linkage.patch unix/no-server-tools.patch unix/mingw-install.patch unix/mingw-static-importlib-fix.patch unix/python.patch windows/macro-def.patch windows/win_bison_flex.patch windows/msbuild.patch windows/spin_delay.patch windows/tcl-9.0-alpha.patch android/unversioned_so.patch ) file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") if("client" IN_LIST FEATURES) set(HAS_TOOLS TRUE) else() set(HAS_TOOLS FALSE) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") set(required_programs BISON FLEX) if(VCPKG_DETECTED_MSVC OR NOT VCPKG_HOST_IS_WINDOWS) list(APPEND required_programs PERL) endif() foreach(program_name IN LISTS required_programs) vcpkg_find_acquire_program(${program_name}) get_filename_component(program_dir ${${program_name}} DIRECTORY) vcpkg_add_to_path(PREPEND "${program_dir}") endforeach() if(VCPKG_DETECTED_MSVC) if("xml" IN_LIST FEATURES) x_vcpkg_pkgconfig_get_modules( PREFIX PC_LIBXML2 MODULES --msvc-syntax libxml-2.0 LIBS ) separate_arguments(LIBXML2_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXML2_LIBS_DEBUG}") separate_arguments(LIBXML2_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXML2_LIBS_RELEASE}") endif() if("xslt" IN_LIST FEATURES) x_vcpkg_pkgconfig_get_modules( PREFIX PC_LIBXSLT MODULES --msvc-syntax libxslt LIBS ) separate_arguments(LIBXSLT_LIBS_DEBUG NATIVE_COMMAND "${PC_LIBXSLT_LIBS_DEBUG}") separate_arguments(LIBXSLT_LIBS_RELEASE NATIVE_COMMAND "${PC_LIBXSLT_LIBS_RELEASE}") endif() include("${CMAKE_CURRENT_LIST_DIR}/build-msvc.cmake") if(NOT VCPKG_BUILD_TYPE) build_msvc(DEBUG "${SOURCE_PATH}") endif() build_msvc(RELEASE "${SOURCE_PATH}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(HAS_TOOLS) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") endif() else() file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}") vcpkg_list(SET BUILD_OPTS) foreach(option IN ITEMS icu lz4 nls openssl readline xml xslt zlib zstd) if(option IN_LIST FEATURES) list(APPEND BUILD_OPTS --with-${option}) else() list(APPEND BUILD_OPTS --without-${option}) endif() endforeach() if("nls" IN_LIST FEATURES) set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() if("python" IN_LIST FEATURES) list(APPEND BUILD_OPTS --with-python=3.${PYTHON_VERSION_MINOR}) vcpkg_find_acquire_program(PYTHON3) list(APPEND BUILD_OPTS "PYTHON=${PYTHON3}") endif() if(VCPKG_TARGET_IS_ANDROID AND (NOT VCPKG_CMAKE_SYSTEM_VERSION OR VCPKG_CMAKE_SYSTEM_VERSION LESS "26")) list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no) endif() if(VCPKG_DETECTED_CMAKE_OSX_SYSROOT) list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE AUTOCONFIG ADDITIONAL_MSYS_PACKAGES autoconf-archive DIRECT_PACKAGES "https://mirror.msys2.org/msys/x86_64/tzcode-2025b-1-x86_64.pkg.tar.zst" 824779e3ac4857bb21cbdc92fa881fa24bf89dfa8bc2f9ca816e9a9837a6d963805e8e0991499c43337a134552215fdee50010e643ddc8bd699170433a4c83de OPTIONS ${BUILD_OPTS} OPTIONS_DEBUG --enable-debug ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(ENV{LIBPQ_LIBRARY_TYPE} shared) else() set(ENV{LIBPQ_LIBRARY_TYPE} static) endif() if(VCPKG_TARGET_IS_MINGW) set(ENV{LIBPQ_USING_MINGW} yes) endif() if(HAS_TOOLS) set(ENV{LIBPQ_ENABLE_TOOLS} yes) endif() vcpkg_install_make() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS") endif() vcpkg_fixup_pkgconfig() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/symbols" "${CURRENT_PACKAGES_DIR}/debug/tools" "${CURRENT_PACKAGES_DIR}/symbols" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/libpq/unix/fix-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 7f97248..48ff1a1 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,8 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros AC_INIT([PostgreSQL], [16.9], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/]) -m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. +cross_compiling=yes # Avoid conftest loading shared objects +m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required. Untested combinations of 'autoconf' and PostgreSQL versions are not recommended. You can remove the check from 'configure.ac' but it is then your responsibility whether the result works or not.])]) @@ -1311,7 +1312,8 @@ if test "$enable_thread_safety" = yes; then fi if test "$with_readline" = yes; then - PGAC_CHECK_READLINE + PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no]) + LIBS="$READLINE_LIBS $LIBS" if test x"$pgac_cv_check_readline" = x"no"; then AC_MSG_ERROR([readline library not found If you have readline already installed, see config.log for details on the @@ -1321,7 +1323,7 @@ Use --without-readline to disable readline support.]) fi if test "$with_zlib" = yes; then - AC_CHECK_LIB(z, inflate, [], + PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"], [AC_MSG_ERROR([zlib library not found If you have zlib already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. @@ -1370,6 +1372,9 @@ if test "$with_ssl" = openssl ; then # Minimum required OpenSSL version is 1.0.1 AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L], [Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.]) + PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) + PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) + if false ; then if test "$PORTNAME" != "win32"; then AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])]) AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])]) @@ -1377,6 +1382,7 @@ if test "$with_ssl" = openssl ; then AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])]) AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])]) fi + fi # Functions introduced in OpenSSL 1.0.2. LibreSSL does not have # SSL_CTX_set_cert_cb(). AC_CHECK_FUNCS([X509_get_signature_nid SSL_CTX_set_cert_cb]) @@ -1403,19 +1409,23 @@ if test "$with_pam" = yes ; then fi if test "$with_libxml" = yes ; then - AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) + PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])]) + LIBS="$LIBXML2_LIBS $LIBS" fi if test "$with_libxslt" = yes ; then - AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) + PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])]) + LIBS="$LIBXSLT_LIBS $LIBS" fi if test "$with_lz4" = yes ; then - AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) + PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])]) + LIBS="$LZ4_LIBS $LIBS" fi if test "$with_zstd" = yes ; then - AC_CHECK_LIB(zstd, ZSTD_compress, [], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) + PKG_CHECK_MODULES([ZSTD], [libzstd], [AC_DEFINE(HAVE_LIBZSTD,1,[Define to 1 if with zstd])], [AC_MSG_ERROR([library 'zstd' is required for ZSTD support])]) + LIBS="$ZSTD_LIBS $LIBS" fi # Note: We can test for libldap_r only after we know PTHREAD_LIBS; ================================================ FILE: ports/libpq/unix/installdirs.patch ================================================ diff --git a/src/Makefile.global.in b/src/Makefile.global.in index 5dacc4d..a9a797e 100644 --- a/src/Makefile.global.in +++ b/src/Makefile.global.in @@ -100,14 +100,14 @@ datarootdir := @datarootdir@ bindir := @bindir@ -datadir := @datadir@ +datadir := @datadir@/postgresql ifeq "$(findstring pgsql, $(datadir))" "" ifeq "$(findstring postgres, $(datadir))" "" override datadir := $(datadir)/postgresql endif endif -sysconfdir := @sysconfdir@ +sysconfdir := @sysconfdir@/postgresql ifeq "$(findstring pgsql, $(sysconfdir))" "" ifeq "$(findstring postgres, $(sysconfdir))" "" override sysconfdir := $(sysconfdir)/postgresql @@ -116,7 +116,7 @@ endif libdir := @libdir@ -pkglibdir = $(libdir) +pkglibdir = $(libdir)/postgresql ifeq "$(findstring pgsql, $(pkglibdir))" "" ifeq "$(findstring postgres, $(pkglibdir))" "" override pkglibdir := $(pkglibdir)/postgresql @@ -125,7 +125,7 @@ endif includedir := @includedir@ -pkgincludedir = $(includedir) +pkgincludedir = $(includedir)/postgresql ifeq "$(findstring pgsql, $(pkgincludedir))" "" ifeq "$(findstring postgres, $(pkgincludedir))" "" override pkgincludedir := $(pkgincludedir)/postgresql @@ -134,7 +134,7 @@ endif mandir := @mandir@ -docdir := @docdir@ +docdir := @docdir@/postgresql ifeq "$(findstring pgsql, $(docdir))" "" ifeq "$(findstring postgres, $(docdir))" "" override docdir := $(docdir)/postgresql ================================================ FILE: ports/libpq/unix/mingw-install.patch ================================================ diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 16255d7..51e9ed2 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -85,7 +85,11 @@ else # Naming convention for dynamically loadable modules shlib = $(NAME)$(DLSUFFIX) endif +ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) +stlib = lib$(NAME).dll.a +else stlib = lib$(NAME).a +endif ifndef soname # additional flags for backend modules @@ -468,6 +472,9 @@ endif else # no soname $(INSTALL_SHLIB) $< '$(DESTDIR)$(pkglibdir)/$(shlib)' endif +ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) + mv '$(DESTDIR)$(libdir)/$(shlib)' '$(DESTDIR)$(libdir)/../bin/$(shlib)' +endif installdirs-lib: @@ -476,6 +483,9 @@ ifdef soname else $(MKDIR_P) '$(DESTDIR)$(pkglibdir)' endif +ifeq ($(PORTNAME)-$(LIBPQ_LIBRARY_TYPE), win32-shared) + $(MKDIR_P) '$(DESTDIR)$(libdir)/../bin' +endif ## ================================================ FILE: ports/libpq/unix/mingw-static-importlib-fix.patch ================================================ diff --git a/src/Makefile.shlib b/src/Makefile.shlib index f94d59d..77aa6bf 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -216,8 +216,10 @@ ifeq ($(PORTNAME), win32) ifdef SO_MAJOR_VERSION shlib = lib$(NAME)$(DLSUFFIX) endif +ifneq ($(LIBPQ_LIBRARY_TYPE), static) haslibarule = yes endif +endif # If the shared library doesn't have an export file, mark all symbols not @@ -323,8 +325,10 @@ else # Win32 case # See notes in src/backend/parser/Makefile about the following two rules +ifneq ($(LIBPQ_LIBRARY_TYPE), static) $(stlib): $(shlib) touch $@ +endif # XXX A backend that loads a module linked with libgcc_s_dw2-1.dll will exit # uncleanly, hence -static-libgcc. (Last verified with MinGW-w64 compilers diff --git a/src/makefiles/Makefile.win32 b/src/makefiles/Makefile.win32: index dc1aafa..1ab97a8 100644 --- a/src/makefiles/Makefile.win32 +++ b/src/makefiles/Makefile.win32 @@ -22,21 +22,32 @@ endif endif endif +ifeq (,$(filter static,$(LIBPQ_LIBRARY_TYPE))) ifneq (,$(findstring src/common,$(subdir))) override CPPFLAGS+= -DBUILDING_DLL endif +endif + +ifeq (,$(filter static,$(LIBPQ_LIBRARY_TYPE))) ifneq (,$(findstring src/port,$(subdir))) override CPPFLAGS+= -DBUILDING_DLL endif +endif + +ifeq (,$(filter static,$(LIBPQ_LIBRARY_TYPE))) ifneq (,$(findstring timezone,$(subdir))) override CPPFLAGS+= -DBUILDING_DLL endif +endif + +ifeq (,$(filter static,$(LIBPQ_LIBRARY_TYPE))) ifneq (,$(findstring ecpg/ecpglib,$(subdir))) override CPPFLAGS+= -DBUILDING_DLL endif +endif # required by Python headers ifneq (,$(findstring src/pl/plpython,$(subdir))) ================================================ FILE: ports/libpq/unix/no-server-tools.patch ================================================ diff --git a/src/bin/Makefile b/src/bin/Makefile index 7f9dde9..bc6d835 100644 --- a/src/bin/Makefile +++ b/src/bin/Makefile @@ -13,29 +13,20 @@ subdir = src/bin top_builddir = ../.. include $(top_builddir)/src/Makefile.global +.NOTPARALLEL: +# incl. https://www.postgresql.org/docs/current/reference-client.html +# excl. https://www.postgresql.org/docs/current/reference-server.html SUBDIRS = \ - initdb \ pg_amcheck \ - pg_archivecleanup \ pg_basebackup \ - pg_checksums \ pg_config \ - pg_controldata \ - pg_ctl \ pg_dump \ - pg_resetwal \ - pg_rewind \ - pg_test_fsync \ - pg_test_timing \ - pg_upgrade \ pg_verifybackup \ - pg_waldump \ pgbench \ psql \ scripts ifeq ($(PORTNAME), win32) -SUBDIRS += pgevent else ALWAYS_SUBDIRS += pgevent endif ================================================ FILE: ports/libpq/unix/python.patch ================================================ diff --git a/configure.ac b/configure.ac index 7f97248992..33b6c84fc4 100644 --- a/configure.ac +++ b/configure.ac @@ -891,7 +891,9 @@ AC_SUBST(with_perl) # Optionally build Python modules (PL/Python) # AC_MSG_CHECKING([whether to build Python modules]) -PGAC_ARG_BOOL(with, python, no, [build Python modules (PL/Python)]) +PGAC_ARG_OPTARG(with, python, [PYTHON_VERSION], [build Python modules (PL/Python)], + [], + [python_version=$withval]) AC_MSG_RESULT([$with_python]) AC_SUBST(with_python) @@ -1214,7 +1216,18 @@ fi if test "$with_python" = yes; then PGAC_PATH_PYTHON - PGAC_CHECK_PYTHON_EMBED_SETUP + python_majorversion=3 + PKG_CHECK_MODULES(PYTHON_EMBED, python-${python_version}-embed) + python_includespec="${PYTHON_EMBED_CFLAGS}" + python_libdir=[$(echo " ${PYTHON_EMBED_LIBS}" | sed -e 's/\( -L[^ ]*\).*/\1/' -e 's/^.* -L//')] + python_libspec="${PYTHON_EMBED_LIBS}" + python_additional_libs="" + AC_SUBST(python_majorversion) + AC_SUBST(python_version) + AC_SUBST(python_includespec) + AC_SUBST(python_libdir) + AC_SUBST(python_libspec) + AC_SUBST(python_additional_libs) fi if test x"$cross_compiling" = x"yes" && test -z "$with_system_tzdata"; then ================================================ FILE: ports/libpq/unix/single-linkage.patch ================================================ diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 551023c..16255d7 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -260,10 +260,14 @@ endif .PHONY: all-lib all-static-lib all-shared-lib +ifndef LIBPQ_LIBRARY_TYPE all-lib: all-shared-lib ifdef soname # no static library when building a dynamically loadable module all-lib: all-static-lib +endif +else +all-lib: all-$(LIBPQ_LIBRARY_TYPE)-lib all-lib: lib$(NAME).pc endif @@ -417,9 +421,13 @@ endif # PORTNAME == cygwin || PORTNAME == win32 ## .PHONY: install-lib install-lib-static install-lib-shared installdirs-lib +ifndef LIBPQ_LIBRARY_TYPE install-lib: install-lib-shared ifdef soname install-lib: install-lib-static +endif +else +install-lib: install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib: install-lib-pc endif diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index 8abdb09..185461e 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -115,6 +115,7 @@ backend_src = $(top_srcdir)/src/backend # Also skip the test on platforms where libpq infrastructure may be provided # by statically-linked libraries, as we can't expect them to honor this # coding rule. +ifeq ($(LIBPQ_LIBRARY_TYPE), shared) libpq-refs-stamp: $(shlib) ifneq ($(enable_coverage), yes) ifeq (,$(filter aix solaris,$(PORTNAME))) @@ -124,6 +125,10 @@ ifeq (,$(filter aix solaris,$(PORTNAME))) endif endif touch $@ +else +.PHONY: libpq-refs-stamp +libpq-refs-stamp: +endif # Make dependencies on pg_config_paths.h visible in all builds. fe-connect.o: fe-connect.c $(top_builddir)/src/port/pg_config_paths.h ================================================ FILE: ports/libpq/usage ================================================ The package libpq provides CMake integration: find_package(PostgreSQL REQUIRED) target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL) ================================================ FILE: ports/libpq/vcpkg-cmake-wrapper.cmake ================================================ find_library(PostgreSQL_LIBRARY_RELEASE NAMES pq libpq NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) find_library(PostgreSQL_LIBRARY_DEBUG NAMES pq libpq NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) _find_package(${ARGS}) if(PostgreSQL_FOUND AND NOT "@VCPKG_TARGET_IS_WINDOWS@") find_library(PostgreSQL_DL_LIBRARY NAMES dl) if(PostgreSQL_DL_LIBRARY) list(APPEND PostgreSQL_LIBRARIES "dl") if(TARGET PostgreSQL::PostgreSQL) set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") endif() endif() endif() if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") include(SelectLibraryConfigurations) foreach(LIB_ITEM pgport pgcommon) find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE NAMES ${LIB_ITEM} lib${LIB_ITEM} NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH ) if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE) set_property( TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>" ) endif() find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG NAMES ${LIB_ITEM} lib${LIB_ITEM} NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH ) if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) set_property( TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>" ) endif() if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG) select_library_configurations(PostgreSQL_${LIB_ITEM}) list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY}) endif() endforeach() if(WIN32) if(TARGET PostgreSQL::PostgreSQL) set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib") endif() list(APPEND PostgreSQL_LIBRARIES Secur32.lib) endif() cmake_policy(PUSH) cmake_policy(SET CMP0057 NEW) set(Z_VCPKG_PORT_FEATURES "@FEATURES@") if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES) find_package(OpenSSL REQUIRED) if(TARGET PostgreSQL::PostgreSQL) set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL") endif() list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL) endif() if(WIN32) if(TARGET PostgreSQL::PostgreSQL) set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Wldap32.lib") endif() list(APPEND PostgreSQL_LIBRARIES Wldap32.lib) endif() unset(Z_VCPKG_PORT_FEATURES) cmake_policy(POP) endif() ================================================ FILE: ports/libpq/vcpkg-libs.props.in ================================================ @CURRENT_INSTALLED_DIR@/debug/lib/icuind.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icuucd.lib;@CURRENT_INSTALLED_DIR@/debug/lib/icudtd.lib; @CURRENT_INSTALLED_DIR@/debug/lib/lz4d.lib @CURRENT_INSTALLED_DIR@/debug/lib/intl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/debug/lib/charset.lib @CURRENT_INSTALLED_DIR@/debug/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/debug/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib @CURRENT_INSTALLED_DIR@/debug/lib/python3@PYTHON_VERSION_MINOR@_d.lib @CURRENT_INSTALLED_DIR@/debug/lib/tcl90g.lib @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sg.lib @CURRENT_INSTALLED_DIR@/debug/lib/tcl90sgx.lib @LIBXML2_LIBS_DEBUG@ @LIBXSLT_LIBS_DEBUG@ @CURRENT_INSTALLED_DIR@/debug/lib/zlibd.lib @CURRENT_INSTALLED_DIR@/debug/lib/zstd.lib @CURRENT_INSTALLED_DIR@/lib/icuin.lib;@CURRENT_INSTALLED_DIR@/lib/icuuc.lib;@CURRENT_INSTALLED_DIR@/lib/icudt.lib; @CURRENT_INSTALLED_DIR@/lib/lz4.lib @CURRENT_INSTALLED_DIR@/lib/intl.lib;@CURRENT_INSTALLED_DIR@/lib/iconv.lib;@CURRENT_INSTALLED_DIR@/lib/charset.lib @CURRENT_INSTALLED_DIR@/lib/libssl.lib;@CURRENT_INSTALLED_DIR@/lib/libcrypto.lib;crypt32.lib;ws2_32.lib;secur32.lib @CURRENT_INSTALLED_DIR@/lib/python3@PYTHON_VERSION_MINOR@.lib @CURRENT_INSTALLED_DIR@/lib/tcl90.lib @CURRENT_INSTALLED_DIR@/lib/tcl90s.lib @CURRENT_INSTALLED_DIR@/lib/tcl90sx.lib @LIBXML2_LIBS_RELEASE@ @LIBXSLT_LIBS_RELEASE@ @CURRENT_INSTALLED_DIR@/lib/zlib.lib @CURRENT_INSTALLED_DIR@/lib/zstd.lib ================================================ FILE: ports/libpq/vcpkg.json ================================================ { "name": "libpq", "version": "16.9", "port-version": 3, "description": "The official database access API of postgresql", "homepage": "https://www.postgresql.org/", "license": "PostgreSQL", "supports": "!uwp & !emscripten", "dependencies": [ { "name": "libpq", "default-features": false, "features": [ "bonjour" ], "platform": "osx" }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true, "platform": "windows & !mingw" } ], "default-features": [ "lz4", "openssl", "zlib" ], "features": { "all": { "description": "Build all supported features", "dependencies": [ { "name": "libpq", "features": [ "client", "icu", "xml", "xslt", "zstd" ] }, { "name": "libpq", "features": [ "bonjour" ], "platform": "osx" }, { "name": "libpq", "features": [ "nls" ], "platform": "!osx" }, { "name": "libpq", "features": [ "readline" ], "platform": "!windows" }, { "name": "libpq", "features": [ "python" ], "platform": "!android & !mingw" }, { "name": "libpq", "features": [ "tcl" ], "platform": "windows & !mingw & !arm" } ] }, "bonjour": { "description": "Build with Bonjour support", "supports": "osx" }, "client": { "description": "Build all client tools and libraries" }, "icu": { "description": "Build with support for the ICU library", "dependencies": [ "icu" ] }, "lz4": { "description": "Use lz4", "dependencies": [ "lz4" ] }, "nls": { "description": "Native Language Support", "supports": "!osx", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] }, "openssl": { "description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows)", "dependencies": [ "openssl" ] }, "python": { "$supports": "!(windows & (static | mingw))", "description": "build the PL/Python server programming language", "dependencies": [ { "name": "libpq", "default-features": false, "features": [ "client" ] }, "python3" ] }, "readline": { "description": "Use readline", "supports": "!windows, mingw", "dependencies": [ "readline" ] }, "tcl": { "$supports": "!(windows & (static | mingw))", "description": "build the PL/Tcl procedural language", "supports": "windows & !mingw", "dependencies": [ { "name": "libpq", "default-features": false, "features": [ "client" ] }, "tcl" ] }, "xml": { "description": "Build with libxml", "dependencies": [ { "name": "libxml2", "default-features": false } ] }, "xslt": { "description": "Build with libxslt", "dependencies": [ { "name": "libpq", "default-features": false, "features": [ "xml" ] }, "libxslt" ] }, "zlib": { "description": "Use zlib", "dependencies": [ "zlib" ] }, "zstd": { "description": "Use zstd", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libpq/windows/macro-def.patch ================================================ diff --git a/src/include/common/checksum_helper.h b/src/include/common/checksum_helper.h index cac7570ea..d0ca1243c 100644 --- a/src/include/common/checksum_helper.h +++ b/src/include/common/checksum_helper.h @@ -33,7 +28,13 @@ */ typedef enum pg_checksum_type { +#pragma push_macro("CHECKSUM_TYPE_NONE") +#ifdef CHECKSUM_TYPE_NONE +// winioctl.h defines CHECKSUM_TYPE_NONE to 0 as a macro. +#undef CHECKSUM_TYPE_NONE +#endif CHECKSUM_TYPE_NONE, +#pragma pop_macro("CHECKSUM_TYPE_NONE") CHECKSUM_TYPE_CRC32C, CHECKSUM_TYPE_SHA224, CHECKSUM_TYPE_SHA256, ================================================ FILE: ports/libpq/windows/msbuild.patch ================================================ diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm index 05548d7..097db91 100644 --- a/src/tools/msvc/Install.pm +++ b/src/tools/msvc/Install.pm @@ -53,6 +53,11 @@ sub Install my $target = shift; $insttype = shift; $insttype = "all" unless ($insttype); + if ($insttype eq 'core') + { + $insttype = 'client'; + @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' ); + } # if called from vcregress, the config will be passed to us # so no need to re-include these @@ -89,7 +94,7 @@ sub Install my $majorver = DetermineMajorVersion(); print "Installing version $majorver for $conf in $target\n"; - my @client_dirs = ('bin', 'lib', 'share', 'symbols'); + my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq'); my @all_dirs = ( @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib', 'share/extension', 'share/timezonesets', 'share/tsearch_data'); @@ -117,11 +122,11 @@ sub Install } }, @top_dir); - CopySetOfFiles('config files', $sample_files, $target . '/share/'); + CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/'); CopyFiles( 'Import libraries', $target . '/lib/', - "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib", + "$conf\\", "libpgcommon\\libpgcommon.lib", "libpgport\\libpgport.lib"); CopyContribFiles($config, $target); CopyIncludeFiles($target); @@ -293,7 +298,16 @@ sub CopySolutionOutput { if ($1 == 1) { - push(@{ $install_list{'bin'} }, "exe"); + push(@{ $install_list{'tools\\libpq'} }, "exe"); + } + elsif ($1 == 2) + { + push(@{ $install_list{'bin'} }, "dll"); + push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins + } + elsif ($is_sharedlib) # forced to static lib by vcpkg triplet + { + push(@{ $install_list{'lib'} }, "lib"); } elsif ($1 == 2) { @@ -317,7 +331,16 @@ sub CopySolutionOutput { if ($1 eq 'Application') { - push(@{ $install_list{'bin'} }, "exe"); + push(@{ $install_list{'tools\\libpq'} }, "exe"); + } + elsif ($1 eq 'DynamicLibrary') + { + push(@{ $install_list{'bin'} }, "dll"); + push(@{ $install_list{'lib'} }, "lib") if $is_sharedlib; # not for plugins + } + elsif ($is_sharedlib) # forced to static lib by vcpkg triplet + { + push(@{ $install_list{'lib'} }, "lib"); } elsif ($1 eq 'DynamicLibrary') { @@ -350,7 +373,8 @@ sub CopySolutionOutput || croak "Could not copy $pf.$ext\n"; } } - lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb") + $1 ne 'DynamicLibrary' || + lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb") || croak "Could not copy $pf.pdb\n"; print "."; } @@ -453,7 +477,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f.control", - "$target/share/extension/$f.control") + "$target/share/libpq/extension/$f.control") || croak("Could not copy file $f.control in contrib $module"); print '.'; } @@ -471,7 +495,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f", - "$target/share/$moduledir/" . basename($f)) + "$target/share/libpq/$moduledir/" . basename($f)) || croak("Could not copy file $f in contrib $module"); print '.'; } @@ -486,7 +510,7 @@ sub CopySubdirFiles foreach my $f (split /\s+/, $flist) { lcopy("$subdir/$module/$f", - "$target/share/tsearch_data/" . basename($f)) + "$target/share/libpq/tsearch_data/" . basename($f)) || croak("Could not copy file $f in $subdir $module"); print '.'; } @@ -549,7 +573,7 @@ sub CopySubdirFiles if ($module eq 'spi'); foreach my $f (split /\s+/, $flist) { - lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f") + lcopy("$subdir/$module/$f", "$target/share/libpq/doc/$moduledir/$f") || croak("Could not copy file $f in contrib $module"); print '.'; } @@ -675,7 +699,7 @@ sub GenerateNLSFiles my $majorver = shift; print "Installing NLS files..."; - EnsureDirectories($target, "share/locale"); + EnsureDirectories($target, "share/libpq/locale"); my @flist; File::Find::find( { @@ -697,12 +721,12 @@ sub GenerateNLSFiles next unless /([^\/]+)\.po/; $lang = $1; - EnsureDirectories($target, "share/locale/$lang", - "share/locale/$lang/LC_MESSAGES"); + EnsureDirectories($target, "share/libpq/locale/$lang", + "share/libpq/locale/$lang/LC_MESSAGES"); my @args = ( - "$nlspath\\bin\\msgfmt", + "msgfmt", '-o', - "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", + "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo", $_); system(@args) && croak("Could not run msgfmt on $dir\\$_"); print "."; diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm index 62fec1f..ecb1b86 100644 --- a/src/tools/msvc/MSBuildProject.pm +++ b/src/tools/msvc/MSBuildProject.pm @@ -80,14 +80,14 @@ EOF print $f < EOF - + my $maybe_dll = $self->{solution}->{options}->{VCPKG_CRT_LINKAGE} eq 'dynamic' ? "DLL" : ''; $self->WriteItemDefinitionGroup( $f, 'Debug', { defs => "_DEBUG;DEBUG=1", opt => 'Disabled', strpool => 'false', - runtime => 'MultiThreadedDebugDLL' + runtime => 'MultiThreadedDebug' . $maybe_dll }); $self->WriteItemDefinitionGroup( $f, @@ -96,7 +96,7 @@ EOF defs => "", opt => 'Full', strpool => 'true', - runtime => 'MultiThreadedDLL' + runtime => 'MultiThreaded' . $maybe_dll }); return; } @@ -266,6 +266,8 @@ sub WriteConfigurationPropertyGroup ($self->{type} eq "exe") ? 'Application' : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary'); + if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') + { $cfgtype =~ s/DynamicLibrary/StaticLibrary/; } print $f < @@ -311,7 +313,9 @@ sub WriteItemDefinitionGroup my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';'); my $targetmachine = - $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64'; + 'Machine' . uc($self->{platform}); + $targetmachine =~ s/WIN32/X86/; + my $randomizebase = ($self->{platform} =~ /^ARM/) ? 'true' : 'false'; my $arch = $self->{platform} eq 'Win32' ? 'x86' : 'x86_64'; my $includes = join ';', @{ $self->{includes} }, ""; diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 9e05eb9..8ac0a5d 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -125,8 +125,10 @@ sub mkvcbuild if ($vsVersion >= '9.00') { + if ($solution->{platform} !~ /^ARM/) { push(@pgportfiles, 'pg_crc32c_sse42_choose.c'); push(@pgportfiles, 'pg_crc32c_sse42.c'); + } push(@pgportfiles, 'pg_crc32c_sb8.c'); } else @@ -208,6 +210,7 @@ sub mkvcbuild 'syncrep_gram.y'); $postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l', 'jsonpath_gram.y'); + ($config->{VCPKG_LIBRARY_LINKAGE} eq 'dynamic') && $postgres->AddDefine('BUILDING_DLL'); $postgres->AddLibrary('secur32.lib'); $postgres->AddLibrary('ws2_32.lib'); @@ -252,12 +255,13 @@ sub mkvcbuild $pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include'); $pltcl->AddReference($postgres); - for my $tclver (qw(86t 86 85 84)) + my $v = $solution->{options}->{tcl_version}; + for my $tclver ( ("${v}","${v}s","${v}sx") ) { my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib"; if (-e $tcllib) { - $pltcl->AddLibrary($tcllib); + $pltcl->AddLibrary("\$(VcpkgTcl${tclver}Libs)"); $found = 1; last; } @@ -512,8 +516,7 @@ sub mkvcbuild . "print(str(sys.version_info[0])+str(sys.version_info[1]))"; my $prefixcmd = qq("$solution->{options}->{python}\\python" -c "$pythonprog"); - my $pyout = `$prefixcmd`; - die "Could not query for python version!\n" if $?; + my $pyout = "$solution->{options}->{python}\n$solution->{options}->{python_version}"; my ($pyprefix, $pyver) = split(/\r?\n/, $pyout); # Sometimes (always?) if python is not present, the execution @@ -529,8 +532,8 @@ sub mkvcbuild my $plpython = $solution->AddProject('plpython' . $pymajorver, 'dll', 'PLs', 'src/pl/plpython'); - $plpython->AddIncludeDir($pyprefix . '/include'); - $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib"); + $plpython->AddIncludeDir($pyprefix . "/include/python$pyver"); + $plpython->AddLibrary('$(VcpkgPythonLibs)'); $plpython->AddReference($postgres); # Add transform modules dependent on plpython diff --git a/src/tools/msvc/Project.pm b/src/tools/msvc/Project.pm index 0507ad0..48caab9 100644 --- a/src/tools/msvc/Project.pm +++ b/src/tools/msvc/Project.pm @@ -167,6 +167,11 @@ sub AddReference } $self->AddLibrary( "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib"); + + if ($self->{solution}->{options}->{VCPKG_LIBRARY_LINKAGE} eq 'static') + { + map { $self->AddLibrary($_) } @{ $ref->{libraries} }; + } } return; } diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index b6d31c3..27d89fc 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -63,6 +63,11 @@ sub DeterminePlatform my $self = shift; if ($^O eq "MSWin32") + { + $self->{platform} = uc($self->{options}->{VCPKG_TARGET_ARCHITECTURE}); + $self->{platform} =~ s/^X86$/Win32/; + } + elsif (0) { # Examine CL help output to determine if we are in 32 or 64-bit mode. my $output = `cl /help 2>&1`; @@ -124,6 +129,9 @@ sub copyFile sub GetOpenSSLVersion { my $self = shift; + if ($self->{options}->{openssl_version} =~ /(\d+)\.(\d+)\.(\d+)/m) { + return ($1, $2, $3); + } # Attempt to get OpenSSL version and location. This assumes that # openssl.exe is in the specified directory. @@ -148,7 +156,7 @@ sub GetOpenSSLVersion sub GenerateFiles { my $self = shift; - my $bits = $self->{platform} eq 'Win32' ? 32 : 64; + my $bits = $self->{platform} =~ /64/ ? 64 : 32; my $ac_init_found = 0; my $package_name; my $package_version; @@ -440,7 +448,7 @@ sub GenerateFiles USE_PAM => undef, USE_SLICING_BY_8_CRC32C => undef, USE_SSE42_CRC32C => undef, - USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => 1, + USE_SSE42_CRC32C_WITH_RUNTIME_CHECK => $self->{platform} =~ /^ARM/ ? undef : 1, USE_SYSTEMD => undef, USE_SYSV_SEMAPHORES => undef, USE_SYSV_SHARED_MEMORY => undef, @@ -725,14 +733,14 @@ sub GenerateFiles || confess "Could not open pg_config_paths.h"; print $o <{options}->{zlib}) { $proj->AddIncludeDir($self->{options}->{zlib} . '\include'); - $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib'); + $proj->AddLibrary('$(VcpkgZlibLibs)'); } if ($self->{options}->{openssl}) { $proj->AddIncludeDir($self->{options}->{openssl} . '\include'); + $proj->AddLibrary('$(VcpkgOpensslLibs)'); + } + elsif (0) + { my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion(); # Starting at version 1.1.0 the OpenSSL installers have @@ -1032,7 +1044,7 @@ sub AddProject if ($self->{options}->{nls}) { $proj->AddIncludeDir($self->{options}->{nls} . '\include'); - $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib'); + $proj->AddLibrary('$(VcpkgNlsLibs)'); } if ($self->{options}->{gss}) { @@ -1065,6 +1077,10 @@ sub AddProject if ($self->{options}->{icu}) { $proj->AddIncludeDir($self->{options}->{icu} . '\include'); + $proj->AddLibrary('$(VcpkgIcuLibs)'); + } + elsif (0) + { if ($self->{platform} eq 'Win32') { $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); @@ -1082,22 +1098,22 @@ sub AddProject { $proj->AddIncludeDir($self->{options}->{xml} . '\include'); $proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2'); - $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); + $proj->AddLibrary('$(VcpkgXmlLibs)'); } if ($self->{options}->{xslt}) { $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); - $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); + $proj->AddLibrary('$(VcpkgXsltLibs)'); } if ($self->{options}->{lz4}) { $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); - $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); + $proj->AddLibrary('$(VcpkgLz4Libs)'); } if ($self->{options}->{zstd}) { $proj->AddIncludeDir($self->{options}->{zstd} . '\include'); - $proj->AddLibrary($self->{options}->{zstd} . '\lib\libzstd.lib'); + $proj->AddLibrary('$(VcpkgZstdLibs)'); } if ($self->{options}->{uuid}) { ================================================ FILE: ports/libpq/windows/spin_delay.patch ================================================ diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 4d3ffc7..658b1a1 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -953,12 +953,18 @@ typedef LONG slock_t; /* If using Visual C++ on Win64, inline assembly is unavailable. * Use a _mm_pause intrinsic instead of rep nop. */ -#if defined(_WIN64) +#if defined(_M_X64) && !defined(_M_ARM64EC) static __forceinline void spin_delay(void) { _mm_pause(); } +#elif defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) +static __forceinline void +spin_delay(void) +{ + __yield(); +} #else static __forceinline void spin_delay(void) ================================================ FILE: ports/libpq/windows/tcl-9.0-alpha.patch ================================================ diff -Naur postgresql-16.9/src/pl/tcl/pltcl.c postgresql-16.9-vcpkg/src/pl/tcl/pltcl.c --- postgresql-16.9/src/pl/tcl/pltcl.c 2025-05-05 22:30:08.000000000 +0200 +++ postgresql-16.9-vcpkg/src/pl/tcl/pltcl.c 2025-05-23 22:53:43.485828671 +0200 @@ -56,7 +56,7 @@ #define CONST86 #endif -#if !HAVE_TCL_VERSION(8,7) +#if !HAVE_TCL_VERSION(8,7) || (TCL_MAJOR_VERSION == 9 && TCL_MINOR_VERSION == 0 && TCL_RELEASE_LEVEL == TCL_ALPHA_RELEASE) typedef int Tcl_Size; #endif ================================================ FILE: ports/libpq/windows/win_bison_flex.patch ================================================ diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl index 25df669..373bedd 100644 --- a/src/tools/msvc/pgbison.pl +++ b/src/tools/msvc/pgbison.pl @@ -13,7 +13,7 @@ use File::Basename; do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; -my ($bisonver) = `bison -V`; # grab first line +my ($bisonver) = `win_bison -V`; # grab first line $bisonver = (split(/\s+/, $bisonver))[3]; # grab version number unless ($bisonver ge '2.3') @@ -51,5 +51,5 @@ my $headerflag = ($make =~ /^$basetarg:\s+BISONFLAGS\b.*-d/m ? '-d' : ''); my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : ""; -system("bison $nodep $headerflag $input -o $output"); +system("win_bison $nodep $headerflag $input -o $output"); exit $? >> 8; diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl index c308a08..0807ce7 100644 --- a/src/tools/msvc/pgflex.pl +++ b/src/tools/msvc/pgflex.pl @@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning'; do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; -my ($flexver) = `flex -V`; # grab first line +my ($flexver) = `win_flex -V`; # grab first line $flexver = (split(/\s+/, $flexver))[1]; $flexver =~ s/[^0-9.]//g; my @verparts = split(/\./, $flexver); @@ -52,7 +52,7 @@ close($mf); my $basetarg = basename($output); my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : ''); -system("flex $flexflags -o$output $input"); +system("win_flex $flexflags -o$output $input"); if ($? == 0) { ================================================ FILE: ports/libpqxx/fix_build_with_vs2017.patch ================================================ diff --git a/include/pqxx/internal/header-pre.hxx b/include/pqxx/internal/header-pre.hxx index 833d583..21b7400 100644 --- a/include/pqxx/internal/header-pre.hxx +++ b/include/pqxx/internal/header-pre.hxx @@ -101,6 +101,11 @@ // Workarounds for Microsoft Visual C++ # ifdef _MSC_VER +// Workarounds for deprecated attribute syntax error in Visual Studio 2017. +# if _MSC_VER < 1920 +# define PQXX_DEPRECATED(MESSAGE) __declspec(deprecated( #MESSAGE )) +# endif + // Suppress vtables on abstract classes. # define PQXX_NOVTABLE __declspec(novtable) @@ -170,6 +175,10 @@ # define PQXX_NOVTABLE /* novtable */ #endif +#ifndef PQXX_DEPRECATED +# define PQXX_DEPRECATED(MESSAGE) [[deprecated( #MESSAGE )]] +#endif + // C++20: Assume support. #if defined(PQXX_HAVE_LIKELY) # define PQXX_LIKELY [[likely]] diff --git a/include/pqxx/stream_from.hxx b/include/pqxx/stream_from.hxx index b275a7f..c63a80f 100644 --- a/include/pqxx/stream_from.hxx +++ b/include/pqxx/stream_from.hxx @@ -160,7 +160,7 @@ public: /** @deprecated Use factories @ref table or @ref raw_table instead. */ template - [[deprecated("Use transaction_base::stream instead.")]] stream_from( + PQXX_DEPRECATED("Use transaction_base::stream instead.") stream_from( transaction_base &, from_table_t, std::string_view table, Iter columns_begin, Iter columns_end); @@ -168,13 +168,13 @@ public: /** @deprecated Use factory function @ref query instead. */ template - [[deprecated("Use transaction_base::stream() instead.")]] stream_from( + PQXX_DEPRECATED("Use transaction_base::stream() instead.") stream_from( transaction_base &tx, from_table_t, std::string_view table, Columns const &columns); #include "pqxx/internal/ignore-deprecated-pre.hxx" /// @deprecated Use factories @ref table or @ref raw_table instead. - [[deprecated("Use transaction_base::stream instead.")]] stream_from( + PQXX_DEPRECATED("Use transaction_base::stream instead.") stream_from( transaction_base &tx, std::string_view table) : stream_from{tx, from_table, table} {} @@ -182,14 +182,14 @@ public: /// @deprecated Use factories @ref table or @ref raw_table instead. template - [[deprecated("Use transaction_base::stream instead.")]] stream_from( + PQXX_DEPRECATED("Use transaction_base::stream instead.") stream_from( transaction_base &tx, std::string_view table, Columns const &columns) : stream_from{tx, from_table, table, columns} {} /// @deprecated Use factories @ref table or @ref raw_table instead. template - [[deprecated("Use transaction_base::stream instead.")]] stream_from( + PQXX_DEPRECATED("Use transaction_base::stream instead.") stream_from( transaction_base &, std::string_view table, Iter columns_begin, Iter columns_end); diff --git a/include/pqxx/stream_to.hxx b/include/pqxx/stream_to.hxx index 281af28..838003d 100644 --- a/include/pqxx/stream_to.hxx +++ b/include/pqxx/stream_to.hxx @@ -248,7 +248,7 @@ public: * your data fields and the table is explicit in your code, and not hidden * in an "implicit contract" between your code and your schema. */ - [[deprecated("Use table() or raw_table() factory.")]] stream_to( + PQXX_DEPRECATED("Use table() or raw_table() factory.") stream_to( transaction_base &tx, std::string_view table_name) : stream_to{tx, table_name, ""sv} {} @@ -257,7 +257,7 @@ public: /** @deprecated Use @ref table or @ref raw_table as a factory. */ template - [[deprecated("Use table() or raw_table() factory.")]] stream_to( + PQXX_DEPRECATED("Use table() or raw_table() factory.") stream_to( transaction_base &, std::string_view table_name, Columns const &columns); private: ================================================ FILE: ports/libpqxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jtv/libpqxx REF "${VERSION}" SHA512 aedce62ca581de21afb0b5985b52b9f23f1ec467a0097c696367cd16cc158b901805387455cb010fee463e4cffe0abbd56a16cb760776161acb40b9137d30784 HEAD_REF master PATCHES fix_build_with_vs2017.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSKIP_BUILD_TEST=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libpqxx) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # Not module from libpq file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") else() vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libpqxx/vcpkg.json ================================================ { "name": "libpqxx", "version": "7.10.5", "description": [ "The official* C++ client API for PostgreSQL.", "*) NB https://pqxx.org/libpqxx/faq/" ], "homepage": "https://pqxx.org/libpqxx/", "license": "BSD-3-Clause", "dependencies": [ { "name": "libpq", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libprotobuf-mutator/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/libprotobuf-mutator REF "v${VERSION}" SHA512 2fb374ff32c52aaf15ebff26e8fe11fc3ca1ef411da74bb6212ed5acaf20ae48e388b2b26d5c6786b85058ea7cd65e5ad5c55ea18916c1a701add34c6e62ebfe HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 -DLIB_PROTO_MUTATOR_TESTING=OFF -DLIB_PROTO_MUTATOR_MSVC_STATIC_RUNTIME=${STATIC_RUNTIME} -DPKG_CONFIG_PATH=lib/pkgconfig MAYBE_UNUSED_VARIABLES LIB_PROTO_MUTATOR_MSVC_STATIC_RUNTIME ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libprotobuf-mutator/vcpkg.json ================================================ { "name": "libprotobuf-mutator", "version": "1.5", "description": "Library for structured fuzzing with protobuffers.", "dependencies": [ "liblzma", "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libproxy/fix-install-py.patch ================================================ diff --git a/bindings/perl/lib/CMakeLists.txt b/bindings/perl/lib/CMakeLists.txt index 7c36e51..ee2c5bc 100644 --- a/bindings/perl/lib/CMakeLists.txt +++ b/bindings/perl/lib/CMakeLists.txt @@ -1,2 +1 @@ add_custom_target(PMlibproxy ALL ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/Libproxy.pm ${CMAKE_BINARY_DIR}/perl/Net/Libproxy.pm) -install( FILES Libproxy.pm DESTINATION ${PX_PERL_ARCH}/Net ) diff --git a/bindings/perl/src/CMakeLists.txt b/bindings/perl/src/CMakeLists.txt index 29e656d..dec5799 100644 --- a/bindings/perl/src/CMakeLists.txt +++ b/bindings/perl/src/CMakeLists.txt @@ -20,5 +20,3 @@ endif() target_link_libraries(PLlibproxy ${PLlibproxy_LIB_DEPENDENCIES}) set_target_properties(PLlibproxy PROPERTIES OUTPUT_NAME "Libproxy") set_target_properties(PLlibproxy PROPERTIES PREFIX "") - -install( TARGETS PLlibproxy DESTINATION ${PX_PERL_ARCH}/auto/Net/Libproxy ) diff --git a/bindings/python/python2/CMakeLists.txt b/bindings/python/python2/CMakeLists.txt index f4d2b91..a79decc 100644 --- a/bindings/python/python2/CMakeLists.txt +++ b/bindings/python/python2/CMakeLists.txt @@ -21,5 +21,4 @@ if(PYTHON2INTERP_FOUND) message(STATUS "Using PYTHON2_SITEPKG_DIR=${PYTHON2_SITEPKG_DIR}") - install(FILES ../libproxy.py DESTINATION ${PYTHON2_SITEPKG_DIR}) endif() diff --git a/bindings/python/python3/CMakeLists.txt b/bindings/python/python3/CMakeLists.txt index fc3b24b..a13b6b7 100644 --- a/bindings/python/python3/CMakeLists.txt +++ b/bindings/python/python3/CMakeLists.txt @@ -21,5 +21,4 @@ if(PYTHON3INTERP_FOUND) message(STATUS "Using PYTHON3_SITEPKG_DIR=${PYTHON3_SITEPKG_DIR}") - install(FILES ../libproxy.py DESTINATION ${PYTHON3_SITEPKG_DIR}) endif() ================================================ FILE: ports/libproxy/fix-module-lib-name.patch ================================================ diff --git a/libproxy/Findlibproxy.cmake.in b/libproxy/Findlibproxy.cmake.in index ef44489..c0bd2ae 100644 --- a/libproxy/Findlibproxy.cmake.in +++ b/libproxy/Findlibproxy.cmake.in @@ -12,7 +12,7 @@ # Find proxy.h and the corresponding library (libproxy.so) FIND_PATH(LIBPROXY_INCLUDE_DIR proxy.h ) -FIND_LIBRARY(LIBPROXY_LIBRARIES NAMES proxy ) +FIND_LIBRARY(LIBPROXY_LIBRARIES NAMES proxy libproxy) # Set library version SET(LIBPROXY_VERSION @PROJECT_VERSION@) ================================================ FILE: ports/libproxy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libproxy/libproxy REF "${VERSION}" SHA512 1148d688a9f070273a1a2b110a788561789799089660292bbba59fbf0a9caf7d28cb039a9ccdcb935f752e1e34739b2d2f4c784b1bb3bbaa03d108e7b38a4754 HEAD_REF master PATCHES support-windows.patch fix-install-py.patch fix-module-lib-name.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATICCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bindings-csharp WITH_DOTNET bindings-python WITH_PYTHON2 bindings-python WITH_PYTHON3 bindings-perl WITH_PERL bindings-vala WITH_VALA tools BUILD_TOOLS tests BUILD_TESTING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWITH_WEBKIT3=OFF -DWITH_KDE=${VCPKG_TARGET_IS_LINUX} -DMSVC_STATIC=${STATICCRT} -DWITH_GNOME3=OFF MAYBE_UNUSED_VARIABLES WITH_DOTNET WITH_PERL WITH_PYTHON2 WITH_PYTHON3 WITH_VALA MSVC_STATIC BUILD_TOOLS WITH_GNOME3 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/Modules) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES proxy AUTO_CLEAN) file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libproxy/support-windows.patch ================================================ diff --git a/cmake/paths.cmk b/cmake/paths.cmk index 593ebc1..bbf8754 100644 --- a/cmake/paths.cmk +++ b/cmake/paths.cmk @@ -1,4 +1,4 @@ -if(WIN32 AND NOT MINGW) +if(0) set(CMAKE_INSTALL_PREFIX "" CACHE PATH "Install prefix") set(BIN_INSTALL_DIR . CACHE PATH "Binary install dir") set(LIB_INSTALL_DIR . CACHE PATH "Library install dir") diff --git a/libproxy/cmake/devfiles.cmk b/libproxy/cmake/devfiles.cmk index 0301dce..0eb5f83 100644 --- a/libproxy/cmake/devfiles.cmk +++ b/libproxy/cmake/devfiles.cmk @@ -1,4 +1,4 @@ -if(NOT WIN32 OR MINGW) +if(1) # PkgConfig file set (PKGCONFIG_PREFIX ${CMAKE_INSTALL_PREFIX}) diff --git a/libproxy/cmake/libproxy.cmk b/libproxy/cmake/libproxy.cmk index de68e5c..9356486 100644 --- a/libproxy/cmake/libproxy.cmk +++ b/libproxy/cmake/libproxy.cmk @@ -24,5 +24,5 @@ set_target_properties(libproxy PROPERTIES LINK_INTERFACE_LIBRARIES "") if(NOT APPLE) set_target_properties(libproxy PROPERTIES LINK_FLAGS "-Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/libproxy.map") endif() -install(TARGETS libproxy DESTINATION ${LIB_INSTALL_DIR}) +install(TARGETS libproxy RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES proxy.h DESTINATION ${INCLUDE_INSTALL_DIR}) diff --git a/libproxy/cmake/pkgconfig.cmk b/libproxy/cmake/pkgconfig.cmk index 89bfc62..ffa0897 100644 --- a/libproxy/cmake/pkgconfig.cmk +++ b/libproxy/cmake/pkgconfig.cmk @@ -1,4 +1,4 @@ -if(NOT WIN32 AND NOT APPLE) +if(NOT WIN32) find_package(PkgConfig) # Define our magical px_check_modules function ================================================ FILE: ports/libproxy/usage ================================================ The package libproxy provides CMake targets: find_package(libproxy REQUIRED) target_include_directories(main PRIVATE ${LIBPROXY_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${LIBPROXY_LIBRARIES}) ================================================ FILE: ports/libproxy/vcpkg-cmake-wrapper.cmake ================================================ set(LIBPROXY_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${LIBPROXY_PREV_MODULE_PATH}) ================================================ FILE: ports/libproxy/vcpkg.json ================================================ { "name": "libproxy", "version": "0.4.18", "port-version": 3, "description": "libproxy is a library that provides automatic proxy configuration management.", "homepage": "https://github.com/libproxy/libproxy", "license": "LGPL-2.1-only", "supports": "!(uwp | xbox | android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bindings-csharp": { "description": "Install C# bindings" }, "bindings-perl": { "description": "Install PERL bindings" }, "bindings-python": { "description": "Install Python bindings" }, "bindings-ruby": { "description": "Install Ruby bindings" }, "bindings-vala": { "description": "Install Vala bindings" }, "tests": { "description": "Build libproxy tests" }, "tools": { "description": "build tools" } } } ================================================ FILE: ports/libpsl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rockdaboot/libpsl REF "${VERSION}" SHA512 "d8e224b2ce5d9a6ac78700eb8975d09aef4e5af7db29539e5e339c5cd100f1272371fe45757ab5383ddbcd569bdf9d697a78932ea9fdf43ff48d3cea02f644cd" HEAD_REF master ) set(list_ref 0ed17ee161ed2ae551c78f3b399ac8f2724d2154) string(SUBSTRING "${list_ref}" 0 6 short_hash) vcpkg_download_distfile( PUBLIC_SUFFIX_LIST_DAT URLS https://raw.githubusercontent.com/publicsuffix/list/${list_ref}/public_suffix_list.dat FILENAME "libpsl-public_suffix_list-${short_hash}.dat" SHA512 7969c40b0600baf2786af0e6503b4282d487b6603418c41f28c3b39e9cd9320ac66c0d2e8fbfa2b794e461f26843e3479d60ec24ac5c0990fe8f0c6bfaeee69d ) vcpkg_list(SET RUNTIME_OPTIONS) if(libidn2 IN_LIST FEATURES) list(APPEND RUNTIME_OPTIONS -Druntime=libidn2) endif() if(libicu IN_LIST FEATURES) list(APPEND RUNTIME_OPTIONS -Druntime=libicu) endif() if(RUNTIME_OPTIONS STREQUAL "") message(FATAL_ERROR "At least one of libidn2 and libicu should be selected.") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${RUNTIME_OPTIONS} "-Dpsl_file=${PUBLIC_SUFFIX_LIST_DAT}" -Ddocs=false -Dtests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libpsl.h" "defined PSL_STATIC" "1") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/psl-make-dafsa" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/psl-make-dafsa") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/psl-make-dafsa") vcpkg_copy_tools(TOOL_NAMES psl AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libpsl/vcpkg.json ================================================ { "name": "libpsl", "version": "0.21.5", "port-version": 1, "description": "C library for the Public Suffix List", "homepage": "https://rockdaboot.github.io/libpsl/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "default-features": [ { "name": "libicu", "platform": "windows" }, { "name": "libidn2", "platform": "!windows" } ], "features": { "libicu": { "description": "choose libicu as runtime", "supports": "windows", "dependencies": [ "icu" ] }, "libidn2": { "description": "choose libidn2 as runtime", "supports": "!windows", "dependencies": [ "libidn2" ] } } } ================================================ FILE: ports/libqcow/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(libqcow C) find_package(OpenSSL) find_package(ZLIB REQUIRED) if(MSVC) add_compile_definitions(_CRT_SECURE_NO_DEPRECATE) add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE) endif() add_compile_definitions(HAVE_LOCAL_LIBCAES) add_compile_definitions(HAVE_LOCAL_LIBCERROR) add_compile_definitions(HAVE_LOCAL_LIBCTHREADS) add_compile_definitions(HAVE_LOCAL_LIBCDATA) add_compile_definitions(HAVE_LOCAL_LIBCLOCALE) add_compile_definitions(HAVE_LOCAL_LIBCNOTIFY) add_compile_definitions(HAVE_LOCAL_LIBCSPLIT) add_compile_definitions(HAVE_LOCAL_LIBCFILE) add_compile_definitions(HAVE_LOCAL_LIBCPATH) add_compile_definitions(HAVE_LOCAL_LIBUNA) add_compile_definitions(HAVE_LOCAL_LIBBFIO) add_compile_definitions(HAVE_LOCAL_LIBFCACHE) add_compile_definitions(HAVE_LOCAL_LIBFDATA) add_compile_definitions(ZLIB_DLL) if(UNIX) configure_file(common/config.h.in common/config.h) add_compile_definitions(HAVE_CONFIG_H) add_compile_definitions(LOCALEDIR="/usr/share/locale") endif() if(MSVC) add_compile_definitions(LIBQCOW_DLL_EXPORT) set(LIB_RC libqcow/libqcow.rc) endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) # Add CMake find_package() integration set(PROJECT_TARGET_NAME "${PROJECT_NAME}") set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_TARGET_NAME}Config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_TARGET_NAME}Targets") set(NAMESPACE "libqcow::") # Source files file(GLOB LIB_SRC lib*/*.c) # Headers file(GLOB LIB_INST_HEADERS include/libqcow/*.h) add_library(${PROJECT_NAME} ${LIB_SRC} ${LIB_RC}) target_include_directories(${PROJECT_NAME} PRIVATE ./include ./common) target_include_directories(${PROJECT_NAME} PRIVATE ./libbfio ./libcaes ./libcdata ./libcerror ./libcfile ./libclocale) target_include_directories(${PROJECT_NAME} PRIVATE ./libcnotify ./libcpath ./libcsplit ./libcthreads) target_include_directories(${PROJECT_NAME} PRIVATE ./libfcache ./libfdata ./libuna) target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB OpenSSL::Crypto) install(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib INCLUDES DESTINATION include) install(FILES ${LIB_INST_HEADERS} DESTINATION include/libqcow) install(FILES include/libqcow.h DESTINATION include) # Generate and install libqcowConfig.cmake configure_package_config_file("Config.cmake.in" "${PROJECT_CONFIG}" INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}") install(FILES "${PROJECT_CONFIG}" DESTINATION "${CONFIG_INSTALL_DIR}") # Generate and install libqcowTargets*.cmake install(EXPORT ${TARGETS_EXPORT_NAME} NAMESPACE ${NAMESPACE} DESTINATION "${CONFIG_INSTALL_DIR}") ================================================ FILE: ports/libqcow/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/libqcow/macos_fixes.patch ================================================ diff --git a/libcfile/libcfile_file.c b/libcfile/libcfile_file.c index a618083..5299c77 100644 --- a/libcfile/libcfile_file.c +++ b/libcfile/libcfile_file.c @@ -56,7 +56,7 @@ #elif defined( HAVE_CYGWIN_FS_H ) #include -#elif defined( HAVE_LINUX_FS_H ) +#elif defined( __linux__ ) && defined( HAVE_LINUX_FS_H ) /* Required for Linux platforms that use a sizeof( u64 ) * in linux/fs.h but have no typedef of it */ @@ -4128,6 +4128,11 @@ ssize_t libcfile_internal_file_io_control_read_with_error_code( #error Missing file IO control with data function #endif +// Force disable on Darwin, it can be erroneously defined +#if defined ( __APPLE__ ) +#undef HAVE_POSIX_FADVISE +#endif + /* Read data from a device file using IO control * Returns the number of bytes read if successful or -1 on error */ diff --git a/libqcow/libqcow_i18n.c b/libqcow/libqcow_i18n.c index 96d1a31..621e748 100644 --- a/libqcow/libqcow_i18n.c +++ b/libqcow/libqcow_i18n.c @@ -40,7 +40,7 @@ int libqcow_i18n_initialize( if( libqcow_i18n_initialized == 0 ) { -#if defined( HAVE_BINDTEXTDOMAIN ) +#if !defined( __APPLE__ ) && defined( HAVE_BINDTEXTDOMAIN ) if( bindtextdomain( "libqcow", LOCALEDIR ) == NULL ) ================================================ FILE: ports/libqcow/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) set(LIB_VERSION 20221124) set(LIB_FILENAME libqcow-alpha-${LIB_VERSION}.tar.gz) # Release distribution file contains configured sources, while the source code in the repository does not. vcpkg_download_distfile(ARCHIVE URLS "https://github.com/libyal/libqcow/releases/download/${LIB_VERSION}/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" SHA512 5e48491ec8951473b8791fd6058d35b2d3c00b0206d4ca4fc69b6d42c26ba0a775efe41974989a3965a6a17f4361dd01f874aadef08fe5d80be75d9e6aea6450 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE ${LIB_VERSION} PATCHES macos_fixes.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libqcow") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # License and man vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libqcow/vcpkg.json ================================================ { "name": "libqcow", "version": "20221124", "port-version": 1, "description": "Library and tools to access the QEMU Copy-On-Write (QCOW) image format.", "homepage": "https://github.com/libyal/libqcow", "license": "LGPL-3.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "gettext", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libqglviewer/Add-compile-definitions.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,9 +58,19 @@ "${PROJECT_SOURCE_DIR}/QGLViewer/quaternion.cpp" "${PROJECT_SOURCE_DIR}/QGLViewer/saveSnapshot.cpp" "${PROJECT_SOURCE_DIR}/QGLViewer/vec.cpp") -add_library(QGLViewer SHARED ${QGLViewer_SRC}) +add_library(QGLViewer ${QGLViewer_SRC}) target_include_directories(QGLViewer INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries(QGLViewer PRIVATE ${QtLibs} OpenGL::GL OpenGL::GLU) +if(MSVC) + target_compile_definitions(QGLViewer PRIVATE NOMINMAX) +endif() +if(WIN32) + if(BUILD_SHARED_LIBS) + target_compile_definitions(QGLViewer PRIVATE CREATE_QGLVIEWER_DLL) + else() + target_compile_definitions(QGLViewer PUBLIC QGLVIEWER_STATIC) + endif() +endif() # Example: animation. set(animation_SRC ================================================ FILE: ports/libqglviewer/Fix-error-c2039.patch ================================================ diff --git a/QGLViewer/VRender/NVector3.h b/QGLViewer/VRender/NVector3.h index 40b7f98..f2d8305 100644 --- a/QGLViewer/VRender/NVector3.h +++ b/QGLViewer/VRender/NVector3.h @@ -7,6 +7,8 @@ namespace vrender { class Vector3; + class NVector3; + std::ostream& operator<<(std::ostream &out,const NVector3 &u); class NVector3 { diff --git a/QGLViewer/VRender/Primitive.h b/QGLViewer/VRender/Primitive.h index 88ab11d..d38470d 100644 --- a/QGLViewer/VRender/Primitive.h +++ b/QGLViewer/VRender/Primitive.h @@ -21,6 +21,7 @@ namespace vrender { class Feedback3DColor ; class Primitive ; + std::ostream& operator<<(std::ostream&, const Feedback3DColor&) ; #define EPS_SMOOTH_LINE_FACTOR 0.06 /* Lower for better smooth lines. */ diff --git a/QGLViewer/VRender/Vector2.h b/QGLViewer/VRender/Vector2.h index f6aaaf3..7b9b82a 100644 --- a/QGLViewer/VRender/Vector2.h +++ b/QGLViewer/VRender/Vector2.h @@ -6,7 +6,9 @@ namespace vrender { + class Vector2; class Vector3; + std::ostream& operator<< (std::ostream&,const Vector2&); class Vector2 { diff --git a/QGLViewer/VRender/Vector3.h b/QGLViewer/VRender/Vector3.h index 32597e8..f6d5099 100644 --- a/QGLViewer/VRender/Vector3.h +++ b/QGLViewer/VRender/Vector3.h @@ -10,6 +10,8 @@ namespace vrender { class NVector3; + class Vector3; + std::ostream& operator<< (std::ostream&, const Vector3&); class Vector3 { ================================================ FILE: ports/libqglviewer/glu.patch ================================================ diff --git a/QGLViewer/config.h b/QGLViewer/config.h index 25f0e95ef4..010c54168f 100644 --- a/QGLViewer/config.h +++ b/QGLViewer/config.h @@ -53,6 +53,9 @@ Error : libQGLViewer requires a minimum Qt version of 5.4 Error #ifdef Q_OS_MAC # include #else +#if defined(Q_OS_WIN) +# include +#endif # include #endif ================================================ FILE: ports/libqglviewer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GillesDebunne/libQGLViewer REF "v${VERSION}" SHA512 09bfc5c0f07e51625a9af0094b83f40f84ead55a67c6e492c9702521f58c6b461bc840382fb73b64d16ad71a0a2a75d04aa12a77a78ced0a19e0e784e8d36bd7 PATCHES Add-compile-definitions.patch Fix-error-c2039.patch #https://github.com/GillesDebunne/libQGLViewer/pull/80 glu.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") ================================================ FILE: ports/libqglviewer/vcpkg.json ================================================ { "name": "libqglviewer", "version": "2.9.1", "port-version": 4, "description": [ "libQGLViewer is an open source C++ library based on Qt that eases the creation of OpenGL 3D viewers.", "Attention: Last upstream activity in December 2022." ], "homepage": "https://github.com/GillesDebunne/libQGLViewer", "license": "GPL-2.0-or-later", "supports": "!android & !xbox", "dependencies": [ "opengl", { "name": "qtbase", "default-features": false, "features": [ "gui", "opengl", "widgets" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libqrencode/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fukuchi/libqrencode REF 715e29fd4cd71b6e452ae0f4e36d917b43122ce8 # v4.1.1 SHA512 78a5464c6fd37d2b4ed6d81c5faf8d95f6f1c95bfdb55dfe89fc227cd487c1685e8080694b1c93128364337959562ea133b3bb332ae1c5a4094614b493611e9f HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool WITH_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DWITH_TEST=NO -DSKIP_INSTALL_PROGRAMS=ON -DSKIP_INSTALL_EXECUTABLES=ON -DSKIP_INSTALL_FILES=ON OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON -DWITH_TOOLS=NO ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) # Windows set(EXECUTABLE_SUFFIX ".exe") else() set(EXECUTABLE_SUFFIX "") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/qrencode.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/qrencode.dll" "${CURRENT_PACKAGES_DIR}/bin/qrencode.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/qrencoded.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/qrencoded.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/qrencoded.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/qrencode${EXECUTABLE_SUFFIX}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/qrencode") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/qrencode${EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/tools/qrencode/qrencode${EXECUTABLE_SUFFIX}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/qrencode") if (NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libqrencode/usage ================================================ To use libqrencode library in CMakeLists.txt: find_path(QRENCODE_INCLUDE_DIR NAMES qrencode.h) find_library(QRENCODE_LIBRARY_RELEASE qrencode) find_library(QRENCODE_LIBRARY_DEBUG qrencoded) set(QRENCODE_LIBRARIES optimized ${QRENCODE_LIBRARY_RELEASE} debug ${QRENCODE_LIBRARY_DEBUG}) add_executable(main main.cpp) target_include_directories(main PRIVATE ${QRENCODE_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${QRENCODE_LIBRARIES}) ================================================ FILE: ports/libqrencode/vcpkg.json ================================================ { "name": "libqrencode", "version-semver": "4.1.1", "port-version": 3, "description": "libqrencode - a fast and compact QR Code encoding library", "homepage": "https://github.com/fukuchi/libqrencode", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tool": { "description": "Build qrencode tool", "dependencies": [ { "name": "getopt", "platform": "windows" }, "libpng" ] } } } ================================================ FILE: ports/libqtrest/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qtrest/qtrest REF ${VERSION} SHA512 2bdbbdde7c4f7a27943c93a2a26abe89e087e6b7c32d0e481422a8ad3e78c66c6921ef00c1cbf17f3b61db8a678685371c819218d10576ac9ec1548262415c04 HEAD_REF master ) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(BUILD_TYPE SHARED) else() set(BUILD_TYPE STATIC) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES qml WITH_QML_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TYPE=${BUILD_TYPE} -DBUILD_EXAMPLE=0 ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/libqtrest/vcpkg.json ================================================ { "name": "libqtrest", "version": "0.4.0", "description": "Small and simple REST API (Json/Xml) client for any Qt/QML C++ application", "homepage": "https://github.com/qtrest/qtrest", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "features": { "qml": { "description": "Enable QML support to compile with required dependencies", "dependencies": [ { "name": "qt5-declarative", "default-features": false } ] } } } ================================================ FILE: ports/librabbitmq/fix-uwpwarning.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c88943f..4fc1411 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,6 +140,10 @@ if(PROJECT_IS_TOP_LEVEL) include(CTest) endif() +if(MSVC) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996") +endif() + option(BUILD_SHARED_LIBS "Build rabbitmq-c as a shared library" ON) option(BUILD_STATIC_LIBS "Build rabbitmq-c as a static library" ON) option(INSTALL_STATIC_LIBS "Install rabbitmq-c static library" ON) diff --git a/librabbitmq/CMakeLists.txt b/librabbitmq/CMakeLists.txt index 4466c9f..e8825dd 100644 --- a/librabbitmq/CMakeLists.txt +++ b/librabbitmq/CMakeLists.txt @@ -64,6 +64,8 @@ set(RMQ_SOURCES amqp_url.c ) +add_definitions(-DAMQP_BUILD -D_CRT_SECURE_NO_WARNINGS) + set(RMQ_LIBRARIES ${AMQP_SSL_LIBS} ${SOCKET_LIBRARIES} ${LIBRT} ${CMAKE_THREAD_LIBS_INIT}) if(BUILD_SHARED_LIBS) ================================================ FILE: ports/librabbitmq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alanxz/rabbitmq-c REF "v${VERSION}" SHA512 62b4e92fc270c5bdc5343cfaef5245e29a9b6d8983071a47391a93ae1b766ed7b98a6a546e8528befbc284f5ed17da4647595e94341380bfa76598569191e6c0 HEAD_REF master PATCHES fix-uwpwarning.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl ENABLE_SSL_SUPPORT ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DBUILD_TOOLS=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME rabbitmq-c CONFIG_PATH lib/cmake/rabbitmq-c) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/librabbitmq/vcpkg.json ================================================ { "name": "librabbitmq", "version": "0.15.0", "port-version": 1, "description": "A C-language AMQP client library for use with v2.0+ of the RabbitMQ broker.", "homepage": "https://github.com/alanxz/rabbitmq-c", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "Enable SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/libraqm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HOST-Oman/libraqm REF v${VERSION} SHA512 5b32753b000fa30fe6bb997b8719328c13d68e0ed74207436eff6f1d2932e02c53df424dbf9721cedb308efd355e00036dcfb2d26d7fd89f545273f0e3c24d72 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libraqm/vcpkg.json ================================================ { "name": "libraqm", "version": "0.10.4", "port-version": 1, "description": "A library for complex text layout", "homepage": "https://github.com/HOST-Oman/libraqm", "dependencies": [ "freetype", "fribidi", "harfbuzz", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libraw/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d3faf24..8833187 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,7 +130,10 @@ set(LIBRAW_PC_REQUIRES_PRIVATE "") if(NOT WIN32 AND NOT EMSCRIPTEN) FIND_LIBRARY(MATH_LIBRARY m) if(MATH_LIBRARY) + set(MATH_LIBRARY m) string(APPEND LIBRAW_PC_LIBS_PRIVATE " -l${MATH_LIBRARY}") + else() + set(MATH_LIBRARY "") endif() endif() @@ -142,7 +145,11 @@ set(LCMS_FOUND false) if(ENABLE_LCMS) message(STATUS "Check for LCMS2 availability...") - find_package(LCMS2) + find_package(lcms2 CONFIG REQUIRED) + set(LCMS2_FOUND 1) + set(LCMS2_VERSION 2.14) + set(LCMS2_INCLUDE_DIR "") + set(LCMS2_LIBRARIES lcms2::lcms2) if(LCMS2_FOUND AND (LCMS2_VERSION VERSION_EQUAL 2.1 OR LCMS2_VERSION VERSION_GREATER 2.1)) message(STATUS "Found LCMS2 : ${LCMS2_LIBRARIES} ${LCMS2_INCLUDE_DIR}") include_directories(${LCMS2_INCLUDE_DIR}) @@ -188,7 +195,7 @@ MACRO_BOOL_TO_01(ZLIB_FOUND LIBRAW_USE_DNGDEFLATECODEC) # JPEG library check find_package(JPEG) if(JPEG_FOUND) - if (${JPEG_VERSION} LESS 80) + if (${JPEG_VERSION} LESS 80 OR NOT CMAKE_REQUIRE_FIND_PACKAGE_JPEG) set(JPEG8_FOUND FALSE) else() set(JPEG8_FOUND TRUE) diff --git a/cmake/librawConfig.cmake.in b/cmake/librawConfig.cmake.in index b1b58d8..dae06cc 100644 --- a/cmake/librawConfig.cmake.in +++ b/cmake/librawConfig.cmake.in @@ -13,7 +13,7 @@ endif() if(@LCMS_SUPPORT_CAN_BE_COMPILED@) if(@LCMS2_FOUND@) - find_dependency(LCMS2) + find_dependency(lcms2 CONFIG) elseif(@LCMS_FOUND@) find_dependency(LCMS) endif() ================================================ FILE: ports/libraw/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e6a70d9..a5c70e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -629,7 +629,13 @@ if (LIBRAW_INSTALL) ) # Install Shared binary files. - install(TARGETS raw raw_r + install(TARGETS raw + EXPORT ${PROJECT_NAME}Targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/manual-link + ) + install(TARGETS raw_r EXPORT ${PROJECT_NAME}Targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -640,6 +646,7 @@ if (LIBRAW_INSTALL) if(NOT BUILD_SHARED_LIBS AND "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") message("ClangCl does not support pdb generation with static libraries") elseif(MSVC) + elseif(0) install(FILES ${PROJECT_BINARY_DIR}/raw.pdb ${PROJECT_BINARY_DIR}/raw_r.pdb DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS Debug RelWithDebInfo diff --git a/cmake/data/libraw.pc.cmake b/cmake/data/libraw.pc.cmake index 54c5af4..d182680 100644 --- a/cmake/data/libraw.pc.cmake +++ b/cmake/data/libraw.pc.cmake @@ -1,6 +1,6 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@/manual-link includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ Name: @PROJECT_NAME@ ================================================ FILE: ports/libraw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LibRaw/LibRaw REF "${VERSION}" SHA512 7d743e19f4436e2be963d4281524f60ee66534429f61eb04e4f195845adf7ea7aeac0a64e215e912558f5da36807089bce3561593e956f1ab16d05d98330b9f6 HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH LIBRAW_CMAKE_SOURCE_PATH REPO LibRaw/LibRaw-cmake REF eb98e4325aef2ce85d2eb031c2ff18640ca616d3 SHA512 63e68a4d30286ec3aa97168d46b7a1199268099ae27b61abcc92e93ec30e48d364086227983a1d724415e5f4da44d905422f30192453b95f31040e5f8469c3f9 HEAD_REF master PATCHES dependencies.patch # Move the non-thread-safe library to manual-link. This is unfortunately needed # because otherwise libraries that build on top of libraw have to choose. fix-install.patch ) file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/cmake" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp ENABLE_OPENMP openmp CMAKE_REQUIRE_FIND_PACKAGE_OpenMP dng-lossy CMAKE_REQUIRE_FIND_PACKAGE_JPEG ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_EXAMPLES=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_Jasper=1 -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=1 MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_OpenMP ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h" "#ifdef LIBRAW_NODLL" "#if 1" ) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h" "#ifdef LIBRAW_NODLL" "#if 0" ) endif() file(COPY "${CURRENT_PACKAGES_DIR}/share/cmake/libraw/FindLibRaw.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/cmake" "${CURRENT_PACKAGES_DIR}/share/doc" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT" "${SOURCE_PATH}/LICENSE.LGPL" "${SOURCE_PATH}/LICENSE.CDDL" ) ================================================ FILE: ports/libraw/usage ================================================ libraw provides CMake targets: find_package(libraw CONFIG REQUIRED) # non-thread-safe target_link_libraries(main PRIVATE libraw::raw) # thread-safe target_link_libraries(main PRIVATE libraw::raw_r) ================================================ FILE: ports/libraw/vcpkg-cmake-wrapper.cmake ================================================ find_library(LibRaw_LIBRARY_RELEASE NAMES raw PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib/manual-link" NO_DEFAULT_PATH) find_library(LibRaw_LIBRARY_DEBUG NAMES rawd raw PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib/manual-link" NO_DEFAULT_PATH) find_library(LibRaw_r_LIBRARY_RELEASE NAMES raw_r PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH) find_library(LibRaw_r_LIBRARY_DEBUG NAMES raw_rd raw_r PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH) set(LIBRAW_PREV_MODULE_PATH "${CMAKE_MODULE_PATH}") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${LIBRAW_PREV_MODULE_PATH}) if(NOT LibRaw_r_LIBRARIES STREQUAL "") if ("@ENABLE_OPENMP@") find_package(OpenMP REQUIRED) if (OpenMP_FOUND) list(APPEND LibRaw_LIBRARIES ${OpenMP_CXX_LIBRARIES}) list(APPEND LibRaw_r_LIBRARIES ${OpenMP_CXX_LIBRARIES}) endif() endif() if ("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") find_package(Jasper REQUIRED) list(APPEND LibRaw_LIBRARIES ${JASPER_LIBRARIES}) list(APPEND LibRaw_r_LIBRARIES ${JASPER_LIBRARIES}) find_package(lcms2 CONFIG REQUIRED) list(APPEND LibRaw_LIBRARIES lcms2::lcms2) list(APPEND LibRaw_r_LIBRARIES lcms2::lcms2) find_package(ZLIB REQUIRED) list(APPEND LibRaw_LIBRARIES ${ZLIB_LIBRARIES}) list(APPEND LibRaw_r_LIBRARIES ${ZLIB_LIBRARIES}) if("@CMAKE_REQUIRE_FIND_PACKAGE_JPEG@") find_package(JPEG REQUIRED) list(APPEND LibRaw_LIBRARIES ${JPEG_LIBRARIES}) list(APPEND LibRaw_r_LIBRARIES ${JPEG_LIBRARIES}) endif() if("@MATH_LIBRARY@") list(APPEND LibRaw_LIBRARIES @MATH_LIBRARY@) list(APPEND LibRaw_r_LIBRARIES @MATH_LIBRARY@) endif() endif() endif() ================================================ FILE: ports/libraw/vcpkg.json ================================================ { "name": "libraw", "version": "0.22.0", "description": "raw image decoder library", "homepage": "https://www.libraw.org", "license": "LGPL-2.1-only OR CDDL-1.0", "supports": "!uwp & !xbox", "dependencies": [ { "name": "jasper", "default-features": false }, "lcms", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "dng-lossy": { "description": "DNG lossy codec support", "dependencies": [ { "name": "libjpeg-turbo", "features": [ "jpeg8" ] } ] }, "openmp": { "description": "Build library with OpenMP support" } } } ================================================ FILE: ports/librdkafka/fix_oauthbearer_check.patch ================================================ diff --git a/src/rdkafka_conf.c b/src/rdkafka_conf.c index 92f3cb5..c11cda9 100644 --- a/src/rdkafka_conf.c +++ b/src/rdkafka_conf.c @@ -56,7 +56,7 @@ #include #endif -#ifdef WITH_OAUTHBEARER_OIDC +#if WITH_OAUTHBEARER_OIDC #include #endif ================================================ FILE: ports/librdkafka/lz4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f3dd0f..168742c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,7 +169,8 @@ endif() option(ENABLE_LZ4_EXT "Enable external LZ4 library support" ON) set(WITH_LZ4_EXT OFF) if(ENABLE_LZ4_EXT) - find_package(LZ4) + find_package(LZ4 NAMES lz4 REQUIRED) + add_library(LZ4::LZ4 ALIAS lz4::lz4) if(LZ4_FOUND) set(WITH_LZ4_EXT ON) list(APPEND BUILT_WITH "LZ4_EXT") diff --git a/packaging/cmake/Config.cmake.in b/packaging/cmake/Config.cmake.in index 8a6522b..5f0bf25 100644 --- a/packaging/cmake/Config.cmake.in +++ b/packaging/cmake/Config.cmake.in @@ -28,7 +28,7 @@ if(@WITH_SSL@) endif() if(@WITH_LZ4_EXT@) - find_dependency(LZ4) + find_dependency(LZ4 NAMES lz4) endif() find_dependency(Threads) ================================================ FILE: ports/librdkafka/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO confluentinc/librdkafka REF "v${VERSION}" SHA512 136d305bf8416f229af2d84154e19bbf59bfdb57a02c12ee39fa7078c986154debdcf5cdae2f32b2b2f4b3f081e99a67c9de96b47248e1ce761590a8dfc69530 HEAD_REF master PATCHES lz4.patch # remove it when https://github.com/confluentinc/librdkafka/pull/5136 is merged fix_oauthbearer_check.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RDKAFKA_BUILD_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES curl WITH_CURL sasl WITH_SASL sasl WITH_SASL_CYRUS ssl WITH_SSL ssl WITH_SASL_OAUTHBEARER ssl WITH_SASL_SCRAM zlib WITH_ZLIB zstd WITH_ZSTD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRDKAFKA_BUILD_STATIC=${RDKAFKA_BUILD_STATIC} -DRDKAFKA_BUILD_EXAMPLES=OFF -DRDKAFKA_BUILD_TESTS=OFF -DWITH_BUNDLED_SSL=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG -DENABLE_SHAREDPTR_DEBUG=ON -DENABLE_DEVEL=ON -DENABLE_REFCNT_DEBUG=OFF -DENABLE_SHAREDPTR_DEBUG=ON -DWITHOUT_OPTIMIZATION=ON OPTIONS_RELEASE -DENABLE_SHAREDPTR_DEBUG=OFF -DENABLE_DEVEL=OFF -DENABLE_REFCNT_DEBUG=OFF -DENABLE_SHAREDPTR_DEBUG=OFF -DWITHOUT_OPTIMIZATION=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/RdKafka" PACKAGE_NAME "rdkafka") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/rdkafka/FindLZ4.cmake" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) foreach(hdr rdkafka.h rdkafkacpp.h) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/librdkafka/${hdr}" "#ifdef LIBRDKAFKA_STATICLIB" "#if 1 // #ifdef LIBRDKAFKA_STATICLIB" ) endforeach() endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES.txt" ) # Install usage configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/librdkafka/usage ================================================ The package @PORT@:@TARGET_TRIPLET@ provides CMake targets: find_package(RdKafka CONFIG REQUIRED) target_link_libraries(main PRIVATE RdKafka::rdkafka RdKafka::rdkafka++) ================================================ FILE: ports/librdkafka/vcpkg-cmake-wrapper.cmake ================================================ include(SelectLibraryConfigurations) list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") _find_package(${ARGS} CONFIG) if(RdKafka_FOUND) if(TARGET RdKafka::rdkafka) set(TARGET_NAME RdKafka::rdkafka) else(TARGET RdKafka::rdkafka++) set(TARGET_NAME RdKafka::rdkafka++) endif() if(TARGET ${TARGET_NAME} AND NOT DEFINED RdKafka_INCLUDE_DIRS) get_target_property(_RdKafka_INCLUDE_DIRS ${TARGET_NAME} INTERFACE_INCLUDE_DIRECTORIES) get_target_property(_RdKafka_LINK_LIBRARIES ${TARGET_NAME} INTERFACE_LINK_LIBRARIES) if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_IMPLIB_DEBUG) get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_IMPLIB_RELEASE) endif() if(NOT _RdKafka_LIBRARY_DEBUG AND NOT _RdKafka_LIBRARY_RELEASE) get_target_property(_RdKafka_LIBRARY_DEBUG ${TARGET_NAME} IMPORTED_LOCATION_DEBUG) get_target_property(_RdKafka_LIBRARY_RELEASE ${TARGET_NAME} IMPORTED_LOCATION_RELEASE) endif() set(RdKafka_INCLUDE_DIR "${_RdKafka_INCLUDE_DIRS}") set(RdKafka_LIBRARY_DEBUG "${_RdKafka_LIBRARY_DEBUG}") set(RdKafka_LIBRARY_RELEASE "${_RdKafka_LIBRARY_RELEASE}") select_library_configurations(RdKafka) list(APPEND RdKafka_LIBRARIES ${_RdKafka_LINK_LIBRARIES}) list(APPEND RdKafka_LIBRARY ${_RdKafka_LINK_LIBRARIES}) unset(_RdKafka_INCLUDE_DIRS) unset(_RdKafka_LINK_LIBRARIES) unset(_RdKafka_LIBRARY_DEBUG) unset(_RdKafka_LIBRARY_DEBUG) unset(TARGET_NAME) endif() endif() ================================================ FILE: ports/librdkafka/vcpkg.json ================================================ { "name": "librdkafka", "version": "2.13.0", "description": "The Apache Kafka C/C++ library", "homepage": "https://github.com/confluentinc/librdkafka", "license": null, "supports": "!uwp", "dependencies": [ "lz4", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "curl": { "description": "Build with curl", "dependencies": [ "curl" ] }, "sasl": { "description": "Build with sasl/gssapi", "dependencies": [ "cyrus-sasl" ] }, "ssl": { "description": "Build with OpenSSL", "dependencies": [ "openssl" ] }, "zlib": { "description": "Build with zlib", "dependencies": [ "zlib" ] }, "zstd": { "description": "Build with zstd", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libredwg/fix_arm64_build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ec2ec1d..910f61c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,9 @@ if(MSVC) else() set(redwg redwg) endif() +if(MSVC AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") + add_compile_options(/Gy) +endif() if (EXISTS ".version") file(READ .version NL_PACKAGE_VERSION) ================================================ FILE: ports/libredwg/fix_dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e854f2..ec2ec1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -282,6 +282,8 @@ target_include_directories(${redwg} PUBLIC $ $) +find_path(JSMN_INCLUDE_DIRS "jsmn.h") +target_include_directories(${redwg} PRIVATE ${JSMN_INCLUDE_DIRS}) link_libraries(${redwg} ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) if(NOT LIBREDWG_LIBONLY) diff --git a/src/in_json.c b/src/in_json.c index d66f1ab..724505b 100644 --- a/src/in_json.c +++ b/src/in_json.c @@ -51,7 +51,7 @@ static unsigned int loglevel; // In strict mode an object or array can't become a key // In strict mode primitives are: numbers and booleans #undef JSMN_STRICT -#include "../jsmn/jsmn.h" +#include "jsmn.h" typedef struct jsmntokens { ================================================ FILE: ports/libredwg/fix_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cbf9341..2e854f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -279,7 +279,8 @@ target_include_directories(${redwg} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_BINARY_DIR}/src) target_include_directories(${redwg} PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include) + $ + $) link_libraries(${redwg} ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) @@ -390,6 +391,7 @@ add_custom_target( DEPENDS ${SRCS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) +if(0) if(MSVC) install(TARGETS ${redwg} RUNTIME PUBLIC_HEADER DESTINATION libredwg-${PACKAGE_VERSION}) @@ -411,6 +413,22 @@ else() endif() endif() install(TARGETS RUNTIME) +endif() + +include(GNUInstallDirs) +install( + TARGETS ${redwg} + EXPORT libredwg-core + COMPONENT libredwg + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION include/libredwg) +if(NOT LIBREDWG_LIBONLY) + install(TARGETS ${executables_TARGETS} + DESTINATION "${CMAKE_INSTALL_BINDIR}") +endif() +install(EXPORT libredwg-core FILE unofficial-libredwg-config.cmake NAMESPACE unofficial::libredwg:: DESTINATION share/unofficial-libredwg) if(WIN32) add_custom_target(dist ================================================ FILE: ports/libredwg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LibreDWG/libredwg REF "${VERSION}" SHA512 cf0baf477d053eb6ab2feaeda187f2d92211c7d28aa50318c1c8d7acf1b9c463258fa3a388dddce266bf44e0d4e4cf1bd3aa591c918f8a253515919e5c1b3f57 HEAD_REF master PATCHES fix_install.patch fix_dependency.patch fix_arm64_build.patch ) # If generate dwg manipulation tools vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES tools LIBREDWG_LIBONLY ) # libredwg will read the version file(WRITE "${SOURCE_PATH}/.version" "${VERSION}") # Fix https://github.com/LibreDWG/libredwg/issues/652#issuecomment-1454035167 vcpkg_replace_string("${SOURCE_PATH}/src/common.h" [[defined(COMMON_TEST_C)]] [[(defined COMMON_TEST_C || defined __APPLE__)]] ) vcpkg_replace_string("${SOURCE_PATH}/src/common.c" [[defined(COMMON_TEST_C)]] [[(defined COMMON_TEST_C || defined __APPLE__)]] ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DDISABLE_WERROR=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libredwg CONFIG_PATH share/unofficial-libredwg) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dwg2dxf dwg2SVG dwgbmp dwggrep dwglayers dwgread dwgrewrite dwgwrite dxf2dwg AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libredwg/usage ================================================ libredwg provides CMake targets: find_package(unofficial-libredwg CONFIG REQUIRED) target_link_libraries(main unofficial::libredwg::libredwg) ================================================ FILE: ports/libredwg/vcpkg.json ================================================ { "name": "libredwg", "version": "0.13.3", "port-version": 1, "description": "GNU LibreDWG is a free C library to handle DWG files. It aims to be a free replacement for the OpenDWG libraries. DWG is the native file format of AutoCAD.", "homepage": "https://www.gnu.org/software/libredwg/", "license": "GPL-3.0", "supports": "!xbox", "dependencies": [ "jsmn", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build dwg/dxf manipulation command-line tools" } } } ================================================ FILE: ports/libremidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jcelerier/libremidi REF "v${VERSION}" SHA512 4ba9d06a171dc29c393d5401661cbefbd5cdcc00ae8a02cb64345367b829ea49b109056167ea86c0f85e1d4f6ce9a01be89c988f03dc90f02ae4943d13b74845 HEAD_REF master ) vcpkg_list(SET options) if(VCPKG_TARGET_IS_LINUX) vcpkg_list(APPEND options -DLIBREMIDI_NO_ALSA=OFF) else() vcpkg_list(APPEND options -DLIBREMIDI_NO_ALSA=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DLIBREMIDI_NO_BOOST=ON -DLIBREMIDI_NO_JACK=ON -DLIBREMIDI_NO_PIPEWIRE=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/libremidi/vcpkg.json ================================================ { "name": "libremidi", "version": "4.5.0", "port-version": 2, "description": "A modern C++ MIDI real-time & file I/O library", "homepage": "https://github.com/jcelerier/libremidi", "license": "BSD-2-Clause", "dependencies": [ { "name": "alsa", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libressl/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c3d0d4..cc0e904 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -512,7 +512,7 @@ if(ENABLE_LIBRESSL_INSTALL) DESTINATION "${LIBRESSL_INSTALL_CMAKEDIR}" ) - if(NOT MSVC) + if(1) # Create pkgconfig files. set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix \${prefix}) ================================================ FILE: ports/libressl/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h") message(FATAL_ERROR "Can't build libressl if openssl is installed. Please remove openssl, and try install libressl again if you need it.") endif() vcpkg_download_distfile( LIBRESSL_SOURCE_ARCHIVE URLS "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/${PORT}-${VERSION}.tar.gz" "https://github.com/libressl/portable/releases/download/v${VERSION}/${PORT}-${VERSION}.tar.gz" FILENAME "${PORT}-${VERSION}.tar.gz" SHA512 988e580b137d9b847288c6a12fc09c4b24113905521aa4e938c964f7845080463e6f2ca3b58d800512ba5c790a06e4e41b31d187ef09c3018f2321b22ecab267 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBRESSL_SOURCE_ARCHIVE}" PATCHES pkgconfig.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tools" LIBRESSL_APPS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBRESSL_INSTALL_CMAKEDIR=share/${PORT} -DLIBRESSL_TESTS=OFF OPTIONS_DEBUG -DLIBRESSL_APPS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() # libressl as openssl replacement configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/openssl/vcpkg-cmake-wrapper.cmake" @ONLY) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ocspcheck openssl DESTINATION "${CURRENT_PACKAGES_DIR}/tools/openssl" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc/ssl/certs" "${CURRENT_PACKAGES_DIR}/debug/etc/ssl/certs" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libressl/vcpkg-cmake-wrapper.cmake.in ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) # opensslv.h: OPENSSL_VERSION_NUMBER 0x20000000L, "These will never change" set(OPENSSL_VERSION_MAJOR 2) set(OPENSSL_VERSION_MINOR 0) set(OPENSSL_VERSION_FIX 0) if(OPENSSL_USE_STATIC_LIBS) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "dynamic") message(WARNING "OPENSSL_USE_STATIC_LIBS is set, but vcpkg port openssl was built with dynamic linkage") endif() set(OPENSSL_USE_STATIC_LIBS_BAK "${OPENSSL_USE_STATIC_LIBS}") set(OPENSSL_USE_STATIC_LIBS FALSE) endif() if(DEFINED OPENSSL_ROOT_DIR) set(OPENSSL_ROOT_DIR_BAK "${OPENSSL_ROOT_DIR}") endif() get_filename_component(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" DIRECTORY) find_path(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH "${OPENSSL_ROOT_DIR}/include" NO_DEFAULT_PATH) if(MSVC) find_library(LIB_EAY_DEBUG NAMES crypto PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(LIB_EAY_RELEASE NAMES crypto PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH) find_library(SSL_EAY_DEBUG NAMES ssl PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(SSL_EAY_RELEASE NAMES ssl PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH) elseif(WIN32) find_library(LIB_EAY NAMES libcrypto crypto NAMES_PER_DIR) find_library(SSL_EAY NAMES libssl ssl NAMES_PER_DIR) else() find_library(OPENSSL_CRYPTO_LIBRARY NAMES crypto) find_library(OPENSSL_SSL_LIBRARY NAMES ssl) endif() _find_package(${ARGS}) unset(OPENSSL_ROOT_DIR) if(DEFINED OPENSSL_ROOT_DIR_BAK) set(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR_BAK}") unset(OPENSSL_ROOT_DIR_BAK) endif() if(DEFINED OPENSSL_USE_STATIC_LIBS_BAK) set(OPENSSL_USE_STATIC_LIBS "${OPENSSL_USE_STATIC_LIBS_BAK}") unset(OPENSSL_USE_STATIC_LIBS_BAK) endif() if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") if(WIN32) list(APPEND OPENSSL_LIBRARIES ws2_32 ntdll bcrypt) if(TARGET OpenSSL::Crypto) set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "ws2_32;ntdll;bcrypt") endif() if(TARGET OpenSSL::SSL) set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "ws2_32;ntdll;bcrypt") endif() else() if("REQUIRED" IN_LIST ARGS) find_package(Threads REQUIRED) else() find_package(Threads) endif() list(APPEND OPENSSL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) if(TARGET OpenSSL::Crypto) set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") endif() if(TARGET OpenSSL::SSL) set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") endif() endif() endif() cmake_policy(POP) ================================================ FILE: ports/libressl/vcpkg.json ================================================ { "name": "libressl", "version": "4.2.1", "description": [ "LibreSSL is a TLS/crypto stack.", "It was forked from OpenSSL in 2014 by the OpenBSD project, with goals of modernizing the codebase, improving security, and applying best practice development processes.", "LibreSSL provides much of the OpenSSL 1.1 API. Incompatibilities between the projects exist and are unavoidable since both evolve with different goals and priorities." ], "homepage": "https://www.libressl.org", "license": "ISC", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build openssl and ocspcheck executables" } } } ================================================ FILE: ports/librsvg/fix-libxml2-2.13.5.patch ================================================ diff --git a/rsvg-css.c b/rsvg-css.c index 3f3403f6f..c2bd7d757 100644 --- a/rsvg-css.c +++ b/rsvg-css.c @@ -843,7 +843,7 @@ rsvg_css_parse_overflow (const char *str, gboolean * inherit) } static void -rsvg_xml_noerror (void *data, xmlErrorPtr error) +rsvg_xml_noerror (void *data, const xmlError *error) { } diff --git a/rsvg-private.h b/rsvg-private.h index 205c0346f..87536e6db 100644 --- a/rsvg-private.h +++ b/rsvg-private.h @@ -32,6 +32,7 @@ #include "rsvg.h" #include +#include #include #include #include ================================================ FILE: ports/librsvg/meson-pkgconfig-and-def-file.patch ================================================ diff --git a/meson.build b/meson.build index 9666b692b..677721f29 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,7 @@ if not ['shared', 'static'].contains(get_option('default_library')) endif gnome = import('gnome') +fs = import('fs') cc = meson.get_compiler('c') ver_split = meson.project_version().split('.') @@ -20,6 +21,7 @@ librsvg_api_major = api_split[0] librsvg_api_minor = api_split[1] rsvg_ver = 'rsvg-@0@'.format(librsvg_api_major) +librsvg_pc = 'librsvg-@0@'.format(librsvg_api_version) glib_required = '>= 2.38.0' libxml_required = '>= 2.9.0' @@ -52,6 +54,21 @@ croco_dep = dependency('libcroco-0.6', libm = cc.find_library('m', required: false) +library_dependencies = [ + cairo_dep, + gio_dep, + glib_dep, + gdk_pixbuf_dep, +] +private_dependencies = [ + cairo_png_dep, + croco_dep, + libm, + libxml_dep, + pangocairo_dep, + pangoft2_dep, +] + config = configuration_data() config.set('HAVE_PANGOFT2', pangoft2_dep.found()) config.set('HAVE_STRINGS_H', cc.has_header('strings.h')) @@ -65,7 +82,7 @@ features.set('LIBRSVG_MAJOR_VERSION', ver_split[0]) features.set('LIBRSVG_MINOR_VERSION', ver_split[1]) features.set('LIBRSVG_MICRO_VERSION', ver_split[2]) features.set('PACKAGE_VERSION', meson.project_version()) -configure_file(input: 'librsvg-features.h.in', +features_header = configure_file(input: 'librsvg-features.h.in', output: 'librsvg-features.h', configuration: features) @@ -104,7 +121,31 @@ librsvg_src = [ 'rsvg-xml.c', ] -enums = gnome.mkenums_simple('librsvg-enum-types', sources: librsvg_headers) +enums = gnome.mkenums_simple( + 'librsvg-enum-types', + sources: librsvg_headers, + install_header: true, + install_dir: '@0@/@1@/librsvg'.format(get_option('includedir'), librsvg_pc), +) + +install_headers( + librsvg_headers + [features_header], + subdir: '@0@/librsvg'.format(librsvg_pc), +) + +# Generate librsvg.def using configure_file and rsvg.def.in +symbols_content = '' +foreach line : fs.read('rsvg.symbols').split('\n') + if not line.strip().startswith('/*') + symbols_content += line + '\n' + endif +endforeach + +librsvg_defs = configure_file( + input: 'rsvg.def.in', + output: 'librsvg.def', + configuration: {'SYMBOLS': symbols_content.strip()} +) rsvg_lib = library(rsvg_ver, librsvg_src, enums, c_args: [ @@ -127,6 +168,7 @@ rsvg_lib = library(rsvg_ver, librsvg_src, enums, libm ], install: true, + vs_module_defs: librsvg_defs, soversion: ver_split[0] ) @@ -150,6 +192,18 @@ librsvg_dep = declare_dependency( ] ) +pkg = import('pkgconfig') + +librsvg_pc = pkg.generate( + name : 'librsvg', + filebase: librsvg_pc, + description : 'library that renders svg files', + libraries : rsvg_lib, + subdirs: librsvg_pc, + requires: library_dependencies, + libraries_private: private_dependencies, +) + if get_option('tests').allowed() subdir('tests') endif diff --git a/rsvg.def.in b/rsvg.def.in new file mode 100644 index 000000000..b0a8f26cc --- /dev/null +++ b/rsvg.def.in @@ -0,0 +1,2 @@ +EXPORTS +@SYMBOLS@ ================================================ FILE: ports/librsvg/portfile.cmake ================================================ # port update requires rust/cargo string(REGEX REPLACE "^([0-9]*[.][0-9]*)[.].*" "\\1" MAJOR_MINOR "${VERSION}") # NOTE: Using GitHub mirror to avoid Anubis check failure on GNOME GitLab # https://github.com/microsoft/vcpkg/issues/48350 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GNOME/librsvg REF librsvg-gtk-${VERSION} SHA512 1fe06d7e745a53f3aee7b1942f7551c5716ec6abf328fa395006a7aede9f4ef242d604d5f8069c397d86ec3ac095daf49b18b2b34abc67fdcd4a113207fd6a96 HEAD_REF master # branch name PATCHES fix-libxml2-2.13.5.patch meson-pkgconfig-and-def-file.patch ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-Dtests=disabled" "-Drsvg-convert=disabled" "-Drsvg-view-3=disabled" ADDITIONAL_BINARIES glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(COPY "${CURRENT_PORT_DIR}/unofficial-librsvg-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-librsvg") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/librsvg/unofficial-librsvg-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/../librsvg/usage" usage) message(WARNING "find_package(unofficial-librsvg) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(PkgConfig) pkg_check_modules(VCPKG_LIBRSVG librsvg-2.0 IMPORTED_TARGET) if(NOT VCPKG_LIBRSVG_FOUND) set(${CMAKE_FIND_PACKAGE_NAME}_FOUND 0) elseif(NOT TARGET unofficial::librsvg::rsvg-2) add_library(unofficial::librsvg::rsvg-2 INTERFACE IMPORTED) set_target_properties(unofficial::librsvg::rsvg-2 PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::VCPKG_LIBRSVG ) endif() ================================================ FILE: ports/librsvg/usage ================================================ librsvg can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(LIBRSVG librsvg-2.0 IMPORTED_TARGET REQUIRED) target_link_libraries(main PRIVATE PkgConfig::LIBRSVG) ================================================ FILE: ports/librsvg/vcpkg.json ================================================ { "name": "librsvg", "version": "2.40.23", "description": "A small library to render Scalable Vector Graphics (SVG)", "homepage": "https://gitlab.gnome.org/GNOME/librsvg", "license": "LGPL-2.0-or-later", "dependencies": [ "cairo", "fontconfig", "gdk-pixbuf", "glib", { "name": "glib", "host": true }, "libcroco", { "name": "libxml2", "default-features": false }, "pango", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/librsync/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO librsync/librsync REF "v${VERSION}" SHA512 ac01413b875e774db9fec3888210a4b9a5f3d32c081f1ed5f2cf9dc29cfae6ecedf6eac42062631e6dcf188853313fce4520430549768a0f68993419b07e58d9 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_RDIFF:BOOL=OFF -DENABLE_COMPRESSION:BOOL=OFF -DENABLE_TRACE:BOOL=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/rsync.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/rsync.dll" "${CURRENT_PACKAGES_DIR}/bin/rsync.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/rsync.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/rsync.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/rsync.dll") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/librsync_export.h" "# ifdef LIBRSYNC_STATIC_DEFINE" "# if 1 /* LIBRSYNC_STATIC_DEFINE */" ) endif() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/librsync/vcpkg.json ================================================ { "name": "librsync", "version-semver": "2.3.4", "description": "librsync is a library for calculating and applying network deltas, with an interface designed to ease integration into diverse network applications.", "homepage": "http://librsync.sourcefrog.net/", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/librtmp/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(librtmp C) find_package(ZLIB REQUIRED) find_package(OpenSSL REQUIRED) include_directories(${ZLIB_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) add_definitions(-D_WINSOCK_DEPRECATED_NO_WARNINGS) endif() add_definitions(-DLIBRTMP_ONLY) # List the header files set(HEADERS librtmp/amf.h librtmp/bytes.h librtmp/dh.h librtmp/dhgroups.h librtmp/handshake.h librtmp/http.h librtmp/log.h librtmp/rtmp.h librtmp/rtmp_sys.h ) # List the source files set(SRCS librtmp/amf.c librtmp/hashswf.c librtmp/log.c librtmp/parseurl.c librtmp/rtmp.c ) if(MSVC) set(SRCS_MSVC "librtmp/librtmp.def") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996") endif() add_library(rtmp ${SRCS} ${HEADERS} ${SRCS_MSVC}) target_include_directories(rtmp PRIVATE ./librtmp) target_link_libraries(rtmp PRIVATE ${ZLIB_LIBRARIES} ${OPENSSL_LIBRARIES}) if(MSVC OR MINGW) target_link_libraries(rtmp PRIVATE Ws2_32.lib Winmm.lib) endif() set(libdir [[${prefix}/lib]]) set(VERSION 2.6) # from ChangeLog set(CRYPTO_REQ "libssl,libcrypto") if(MSVC OR MINGW) set(PRIVATE_LIBS "-lWS2_32 -lWinMM") endif() configure_file(librtmp/librtmp.pc.in librtmp.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/librtmp.pc DESTINATION lib/pkgconfig ) install(TARGETS rtmp RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(DIRECTORY ${PROJECT_SOURCE_DIR}/librtmp DESTINATION include FILES_MATCHING PATTERN "*.h") ================================================ FILE: ports/librtmp/fix_strncasecmp.patch ================================================ diff --git a/librtmp/rtmp_sys.h b/librtmp/rtmp_sys.h index 6a3f215..1b5ac2a 100644 --- a/librtmp/rtmp_sys.h +++ b/librtmp/rtmp_sys.h @@ -28,11 +28,13 @@ #include #ifdef _MSC_VER /* MSVC */ +#if _MSC_VER < 1900 #define snprintf _snprintf -#define strcasecmp stricmp -#define strncasecmp strnicmp #define vsnprintf _vsnprintf #endif +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#endif #define GetSockError() WSAGetLastError() #define SetSockError(e) WSASetLastError(e) ================================================ FILE: ports/librtmp/hide_netstackdump.patch ================================================ diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c index 0865689..b00710e 100644 --- a/librtmp/rtmp.c +++ b/librtmp/rtmp.c @@ -155,7 +155,7 @@ static int clk_tck; uint32_t RTMP_GetTime() { -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) return 0; #elif defined(_WIN32) return timeGetTime(); @@ -1381,7 +1381,7 @@ RTMP_ClientPacket(RTMP *r, RTMPPacket *packet) return bHasMediaPacket; } -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) extern FILE *netstackdump; extern FILE *netstackdump_read; #endif @@ -1469,7 +1469,7 @@ ReadN(RTMP *r, char *buffer, int n) return FALSE; } /*RTMP_Log(RTMP_LOGDEBUG, "%s: %d bytes\n", __FUNCTION__, nBytes); */ -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) fwrite(ptr, 1, nBytes, netstackdump_read); #endif @@ -3757,7 +3757,7 @@ HandShake(RTMP *r, int FP9HandShake) memset(&clientsig[4], 0, 4); -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) for (i = 8; i < RTMP_SIG_SIZE; i++) clientsig[i] = 0xff; #else @@ -3829,7 +3829,7 @@ SHandShake(RTMP *r) memcpy(serversig, &uptime, 4); memset(&serversig[4], 0, 4); -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) for (i = 8; i < RTMP_SIG_SIZE; i++) serversig[i] = 0xff; #else @@ -4298,7 +4298,7 @@ RTMPSockBuf_Send(RTMPSockBuf *sb, const char *buf, int len) { int rc; -#ifdef _DEBUG +#if defined(_DEBUG) && !defined(LIBRTMP_ONLY) fwrite(buf, 1, len, netstackdump); #endif ================================================ FILE: ports/librtmp/librtmp.def ================================================ EXPORTS AMF3_Decode AMF3CD_AddProp AMF3CD_GetProp AMF3Prop_Decode AMF3ReadInteger AMF3ReadString AMF_AddProp AMF_CountProp AMF_Decode AMF_DecodeArray AMF_DecodeBoolean AMF_DecodeInt16 AMF_DecodeInt24 AMF_DecodeInt32 AMF_DecodeLongString AMF_DecodeNumber AMF_DecodeString AMF_Dump AMF_Encode AMF_EncodeBoolean AMF_EncodeInt16 AMF_EncodeInt24 AMF_EncodeInt32 AMF_EncodeNamedBoolean AMF_EncodeNamedNumber AMF_EncodeNamedString AMF_EncodeNumber AMF_EncodeString AMF_GetProp AMF_Reset AMFProp_Decode AMFProp_Dump AMFProp_Encode AMFProp_GetBoolean AMFProp_GetName AMFProp_GetNumber AMFProp_GetObject AMFProp_GetString AMFProp_GetType AMFProp_IsValid AMFProp_Reset AMFProp_SetName RTMP_Alloc RTMP_ClientPacket RTMP_Close RTMP_Connect RTMP_Connect0 RTMP_Connect1 RTMP_ConnectStream RTMP_debuglevel RTMP_DeleteStream RTMP_DropRequest RTMP_EnableWrite RTMP_FindFirstMatchingProperty RTMP_FindPrefixProperty RTMP_Free RTMP_GetDuration RTMP_GetNextMediaPacket RTMP_GetTime RTMP_HashSWF RTMP_Init RTMP_IsConnected RTMP_IsTimedout RTMP_LibVersion RTMP_Log RTMP_LogGetLevel RTMP_LogHex RTMP_LogHexString RTMP_LogPrintf RTMP_LogSetCallback RTMP_LogSetLevel RTMP_LogSetOutput RTMP_LogStatus RTMP_ParsePlaypath RTMP_ParseURL RTMP_Pause RTMP_Read RTMP_ReadPacket RTMP_ReconnectStream RTMP_SendChunk RTMP_SendClientBW RTMP_SendCreateStream RTMP_SendCtrl RTMP_SendPacket RTMP_SendPause RTMP_SendSeek RTMP_SendServerBW RTMP_Serve RTMP_SetBufferMS RTMP_SetOpt RTMP_SetupStream RTMP_SetupURL RTMP_Socket RTMP_TLS_Init RTMP_ToggleStream RTMP_UpdateBufferMS RTMP_UserInterrupt RTMP_Write RTMPPacket_Alloc RTMPPacket_Dump RTMPPacket_Free RTMPPacket_Reset RTMPSockBuf_Close RTMPSockBuf_Fill RTMPSockBuf_Send ================================================ FILE: ports/librtmp/pkgconfig.patch ================================================ diff --git a/librtmp/librtmp.pc.in b/librtmp/librtmp.pc.in --- a/librtmp/librtmp.pc.in +++ b/librtmp/librtmp.pc.in @@ -5,9 +5,9 @@ Name: librtmp Description: RTMP implementation Version: @VERSION@ -Requires: @CRYPTO_REQ@ +Requires: zlib,@CRYPTO_REQ@ URL: http://rtmpdump.mplayerhq.hu -Libs: -L${libdir} -lrtmp -lz @PUBLIC_LIBS@ +Libs: -L${libdir} -lrtmp @PUBLIC_LIBS@ Libs.private: @PRIVATE_LIBS@ Cflags: -I${incdir} ================================================ FILE: ports/librtmp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mirror/rtmpdump REF 6f6bb1353fc84f4cc37138baa99f586750028a01 SHA512 e6c108576fdd3430d81e2f72b343864eee5d6be396c9378a2ae2bfc871e9464e20d7bd057a47ef2449a301d933b29265e7ffd3383631b24fc035f5483337bbce PATCHES fix_strncasecmp.patch hide_netstackdump.patch pkgconfig.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/librtmp.def" DESTINATION "${SOURCE_PATH}/librtmp") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # License and man file(INSTALL "${SOURCE_PATH}/librtmp/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/librtmp/librtmp.3.html" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_copy_pdbs() ================================================ FILE: ports/librtmp/usage ================================================ librtmp can be imported via CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(librtmp REQUIRED IMPORTED_TARGET librtmp) target_link_libraries(main PkgConfig::librtmp) ================================================ FILE: ports/librtmp/vcpkg.json ================================================ { "name": "librtmp", "version-date": "2024-03-01", "port-version": 1, "description": "RTMPDump Real-Time Messaging Protocol API", "homepage": "https://rtmpdump.mplayerhq.hu", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/librtpi/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://gitlab.com REPO linux-rt/librtpi REF "${VERSION}" SHA512 2665c32867f498d37daaec68a66f5d226de8c2f29bd57f784fbf33245aa5fc3dc173bb80d948b1b5c2c03798dce3fbd9638a3c0ec3816430ecfc7436cea9566e HEAD_REF main ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CURRENT_PORT_DIR}/unofficial-${PORT}-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") ================================================ FILE: ports/librtpi/unofficial-librtpi-config.cmake ================================================ if(NOT TARGET unofficial::librtpi::librtpi) 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::librtpi::librtpi UNKNOWN IMPORTED) set_target_properties(unofficial::librtpi::librtpi PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) find_library(LIBRTPI_LIBRARY_DEBUG NAMES rtpi librtpi PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LIBRTPI_LIBRARY_DEBUG}") set_property(TARGET unofficial::librtpi::librtpi APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::librtpi::librtpi PROPERTIES IMPORTED_LOCATION_DEBUG "${LIBRTPI_LIBRARY_DEBUG}") endif() find_library(LIBRTPI_LIBRARY_RELEASE NAMES rtpi librtpi PATHS "${_IMPORT_PREFIX}/" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${LIBRTPI_LIBRARY_RELEASE}") set_property(TARGET unofficial::librtpi::librtpi APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::librtpi::librtpi PROPERTIES IMPORTED_LOCATION_RELEASE "${LIBRTPI_LIBRARY_RELEASE}") endif() unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/librtpi/vcpkg.json ================================================ { "name": "librtpi", "version": "1.0.1", "port-version": 1, "description": "The Real-Time Priority Inheritance Library (librtpi) is intended to bridge the gap between the glibc pthread implementation and a functionally correct priority inheritance for pthread locking primitives, such as pthread_mutex and pthread_condvar.", "homepage": "https://gitlab.com/linux-rt/librtpi", "license": "LGPL-2.1-only", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/librttopo/constant-nan.patch ================================================ diff --git a/src/rtout_wkb.c b/src/rtout_wkb.c index 7cfeda6..4f2ff38 100644 --- a/src/rtout_wkb.c +++ b/src/rtout_wkb.c @@ -22,8 +22,7 @@ * **********************************************************************/ - - +#define _UCRT_NOISY_NAN #include "rttopo_config.h" #include ================================================ FILE: ports/librttopo/fix-makefiles.patch ================================================ diff --git a/makefile.vc b/makefile.vc index 1f790f0..f78d0c9 100644 --- a/makefile.vc +++ b/makefile.vc @@ -17,7 +17,7 @@ LIBOBJ = src\box2d.obj src\bytebuffer.obj src\g_box.obj \ src\rtout_kml.obj src\rtout_svg.obj src\rtout_twkb.obj src\rtout_wkb.obj \ src\rtout_wkt.obj src\rtout_x3d.obj src\rtpoint.obj src\rtpoly.obj src\rtprint.obj \ src\rtpsurface.obj src\rtspheroid.obj src\rtstroke.obj src\rttin.obj src\rttree.obj \ - src\rttriangle.obj src\rtutil.obj src\stringbuffer.obj src\varint.obj + src\rttriangle.obj src\rtutil.obj src\stringbuffer.obj src\varint.obj src\rtt_tpsnap.obj LIBRTTOPO_DLL = librttopo$(VERSION).dll ================================================ FILE: ports/librttopo/fix-pc-file.patch ================================================ diff --git a/rttopo.pc.in b/rttopo.pc.in index 86c71dc..4064506 100644 --- a/rttopo.pc.in +++ b/rttopo.pc.in @@ -10,3 +10,4 @@ Description: the RT Topology library Version: @VERSION@ Libs: -L${libdir} -lrttopo -lm Cflags: -I${includedir} +Requires.private: geos ================================================ FILE: ports/librttopo/geos-config.patch ================================================ diff --git a/configure.ac b/configure.ac index a956106..739ee88 100644 --- a/configure.ac +++ b/configure.ac @@ -110,7 +110,7 @@ else fi fi # Extract the linker and include flags -GEOS_LDFLAGS=`$GEOSCONFIG --ldflags` +GEOS_LDFLAGS=`$GEOSCONFIG --clibs` GEOS_CFLAGS=-I`$GEOSCONFIG --includes` AC_SUBST([GEOS_LDFLAGS]) AC_SUBST([GEOS_CFLAGS]) @@ -122,9 +122,9 @@ CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" -AC_SEARCH_LIBS(GEOSContext_setErrorMessageHandler_r,geos_c,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.5.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig])) +AC_SEARCH_LIBS(GEOSContext_setErrorMessageHandler_r,,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.5.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig])) LIBS="$LIBS_SAVE" -LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" +LIBS="$LIBS $GEOS_LDFLAGS" GEOS_MAJOR_VERSION=`$GEOSCONFIG --version | cut -d. -f1 | sed 's/[[^0-9]]//g'` GEOS_MINOR_VERSION=`$GEOSCONFIG --version | cut -d. -f2 | sed 's/[[^0-9]]//g'` RTGEOM_GEOS_VERSION="$GEOS_MAJOR_VERSION$GEOS_MINOR_VERSION" ================================================ FILE: ports/librttopo/portfile.cmake ================================================ # NOTE: update the version and checksum for new LIBRTTOPO release set(LIBRTTOPO_VERSION_STR "1.1.0") set(LIBRTTOPO_PACKAGE_SUM "d9c2f4db1261cc942152d348abb7f03e6053a63b6966e081c5381d40bbebd3c7ca1963224487355f384d7562a90287fb24d7af9e7eda4a1e230ee6441cef5de9") vcpkg_download_distfile(ARCHIVE URLS "https://download.osgeo.org/librttopo/src/librttopo-${LIBRTTOPO_VERSION_STR}.tar.gz" FILENAME "librttopo-${LIBRTTOPO_VERSION_STR}.tar.gz" SHA512 ${LIBRTTOPO_PACKAGE_SUM} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-makefiles.patch geos-config.patch fix-pc-file.patch constant-nan.patch # https://developercommunity.visualstudio.com/t/NAN-is-no-longer-compile-time-constant-i/10688907 ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) file(REMOVE "${SOURCE_PATH}/src/rttopo_config.h") configure_file("${CMAKE_CURRENT_LIST_DIR}/rttopo_config.h.in" "${SOURCE_PATH}/src/rttopo_config.h" @ONLY) set(OPTFLAGS "/nologo /fp:precise /W4 /D_CRT_SECURE_NO_WARNINGS /DDLL_EXPORT") vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" TARGET librttopo.lib CL_LANGUAGE C OPTIONS "OPTFLAGS=${OPTFLAGS}" "CFLAGS=-I. -Iheaders ${OPTFLAGS}" ) file(GLOB LIBRTTOPO_INCLUDE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/headers/*.h") file(COPY ${LIBRTTOPO_INCLUDE} DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/librttopo.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/librttopo.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() set(VERSION "${LIBRTTOPO_VERSION_STR}") set(libdir [[${prefix}/lib]]) set(exec_prefix [[${prefix}]]) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(includedir [[${prefix}/include]]) set(outfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/rttopo.pc") configure_file("${SOURCE_PATH}/rttopo.pc.in" "${outfile}" @ONLY) vcpkg_replace_string("${outfile}" " -lrttopo -lm" " -llibrttopo") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(includedir [[${prefix}/../include]]) set(outfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/rttopo.pc") configure_file("${SOURCE_PATH}/rttopo.pc.in" "${outfile}" @ONLY) vcpkg_replace_string("${outfile}" " -lrttopo -lm" " -llibrttopo") endif() else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS_DEBUG "--with-geosconfig=${CURRENT_INSTALLED_DIR}/tools/geos/debug/bin/geos-config" OPTIONS_RELEASE "--with-geosconfig=${CURRENT_INSTALLED_DIR}/tools/geos/bin/geos-config" ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/librttopo/rttopo_config.h.in ================================================ /* src/rttopo_config.h. Generated from rttopo_config.h.in by configure. */ /* src/rttopo_config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #define HAVE_ASSERT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_CTYPE_H 1 /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define to 1 if you have the header file. */ #define HAVE_ERRNO_H 1 /* Define to 1 if you have the `fdatasync' function. */ #define HAVE_FDATASYNC 1 /* Define to 1 if you have the header file. */ #define HAVE_FLOAT_H 1 /* Define to 1 if you have the `ftruncate' function. */ #define HAVE_FTRUNCATE 1 /* Define to 1 if you have the header file. */ #define HAVE_GEOS_C_H 1 /* Define to 1 if you have the `getcwd' function. */ #define HAVE_GETCWD 1 /* Define to 1 if you have the `gettimeofday' function. */ #define HAVE_GETTIMEOFDAY 1 /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define to 1 if you have the `localtime_r' function. */ #define HAVE_LOCALTIME_R 1 /* Define to 1 if `lstat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_LSTAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_MATH_H 1 /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 /* Define to 1 if you have the `sqrt' function. */ /* #undef HAVE_SQRT */ /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ /* #undef HAVE_STAT_EMPTY_STRING_BUG */ /* Define to 1 if you have the header file. */ #define HAVE_STDARG_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDIO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `strcasecmp' function. */ #define HAVE_STRCASECMP 1 /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define to 1 if you have the `strftime' function. */ #define HAVE_STRFTIME 1 /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the `strncasecmp' function. */ #define HAVE_STRNCASECMP 1 /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* rtgeom version */ #define LIBRTGEOM_VERSION "1.1.0" /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 /* Define to the sub-directory where libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Must be defined in order to disable debug mode. */ #undef NDEBUG /* Name of package */ #define PACKAGE "librttopo" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "strk@kbt.io" /* Define to the full name of this package. */ #define PACKAGE_NAME "librttopo" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "librttopo 1.1.0" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "librttopo" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "1.1.0" /* RTGEOM Debug level */ #define RTGEOM_DEBUG_LEVEL 0 /* GEOS library version */ #define RTGEOM_GEOS_VERSION 38 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define to 1 if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* Define to 1 if your declares `struct tm'. */ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ #define VERSION "1.1.0" /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ /* Define to `long int' if does not define. */ /* #undef off_t */ /* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ ================================================ FILE: ports/librttopo/vcpkg.json ================================================ { "name": "librttopo", "version": "1.1.0", "port-version": 10, "description": "The RT Topology Library exposes an API to create and manage standard (ISO 13249 aka SQL/MM) topologies using user-provided data stores.", "homepage": "https://git.osgeo.org/gitea/rttopo/librttopo", "license": "GPL-2.0-or-later", "dependencies": [ "geos", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libsamplerate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsndfile/libsamplerate REF 0.2.2 SHA512 37e0fd604907caf978659466289315befd66eec16c21a94e0b6106de18ffe803fbf2e7f3a8fb0430b33c0b784ecd6d4eaf3b9a862ed2670104647decbee913d6 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DLIBSAMPLERATE_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SampleRate PACKAGE_NAME SampleRate) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_copy_pdbs() ================================================ FILE: ports/libsamplerate/vcpkg.json ================================================ { "name": "libsamplerate", "version": "0.2.2", "port-version": 1, "description": "Sample Rate Converter for audio", "homepage": "http://libsndfile.github.io/libsamplerate/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsass/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sass/libsass REF "${VERSION}" SHA512 659828c854af391c10a16954425fbeeb5fa036189dea45555cd8046338f7469eb7f8d84134030ce644921514b8f397ef6070b56dfb116ea7ce94328d64576518 HEAD_REF master PATCHES remove_compiler_flags.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install(MAKEFILE GNUmakefile) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsass/remove_compiler_flags.patch ================================================ diff --git a/GNUmakefile.am b/GNUmakefile.am index 06a1d0c1e..6e7a15485 100644 --- a/GNUmakefile.am +++ b/GNUmakefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 -I script -AM_COPT = -Wall -O2 +AM_COPT = AM_COVLDFLAGS = if ENABLE_COVERAGE diff --git a/src/GNUmakefile.am b/src/GNUmakefile.am index 9b0e6a99b..00404a017 100644 --- a/src/GNUmakefile.am +++ b/src/GNUmakefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 -I script -AM_COPT = -Wall -O2 +AM_COPT = AM_COVLDFLAGS = if ENABLE_COVERAGE ================================================ FILE: ports/libsass/vcpkg.json ================================================ { "name": "libsass", "version": "3.6.6", "port-version": 1, "description": "LibSass - Sass compiler written in C++", "homepage": "https://github.com/sass/libsass", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libsbml/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b2e97c6..5f5418d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -435,8 +435,9 @@ set(LIBSBML_XML_LIBRARY_LIBS) if(WITH_EXPAT) if(NOT TARGET EXPAT::EXPAT) - find_package(EXPAT REQUIRED) endif() + find_package(EXPAT NAMES expat REQUIRED) + set(EXPAT_LIBRARY expat::expat) add_definitions( -DUSE_EXPAT ) list(APPEND SWIG_EXTRA_ARGS -DUSE_EXPAT) @@ -457,7 +458,8 @@ endif(WITH_EXPAT) set(USE_LIBXML OFF) if(WITH_LIBXML) - find_package(LIBXML REQUIRED) + find_package(LIBXML NAMES LibXml2 REQUIRED) + set(LIBXML_LIBRARY LibXml2::LibXml2) add_definitions( -DUSE_LIBXML ) list(APPEND SWIG_EXTRA_ARGS -DUSE_LIBXML) @@ -509,7 +511,7 @@ endif() option(WITH_BZIP2 "Enable the use of bzip2 compression." ${BZIP_INITIAL_VALUE}) set(USE_BZ2 OFF) if(WITH_BZIP2) - find_package(BZ2 REQUIRED) + find_package(BZip2 REQUIRED) set(USE_BZ2 ON) add_definitions( -DUSE_BZ2 ) list(APPEND SWIG_EXTRA_ARGS -DUSE_BZ2) @@ -535,6 +537,9 @@ Separate multiple directories using semicolons." ) # Locate zlib # +if(WITH_ZLIB) + find_package(ZLIB REQUIRED) +endif() set(ZLIB_INITIAL_VALUE) if (NOT LIBZ_LIBRARY) find_library(LIBZ_LIBRARY @@ -628,7 +633,6 @@ valid. It should contain the file zlib.h, but it does not.") endif(WITH_ZLIB) # install find scripts only for used dependencies -install(FILES ${LIBSBML_FIND_MODULES} DESTINATION share/cmake/Modules) ############################################################################### # @@ -685,7 +689,12 @@ if(WITH_CHECK) enable_testing() - find_package(CHECK REQUIRED) + find_package(CHECK NAMES check REQUIRED) + if(BUILD_SHARED_LIBS) + add_library(CHECK::CHECK ALIAS Check::checkShared) + else() + add_library(CHECK::CHECK ALIAS Check::check) + endif() if (UNIX) # setup valgrind @@ -1018,18 +1027,29 @@ install(FILES ${DOCUMENTATION_FILES} DESTINATION ${MISC_PREFIX}) # Write libsbml.pc # -set (PRIVATE_LIBS "-lstdc++ -lm") +set(FAKE_CXX_LINKAGE "") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() +endforeach() +set (PRIVATE_LIBS "${FAKE_CXX_LINKAGE}") +set (PRIVATE_REQUIRES "") if (WITH_ZLIB) -set (PRIVATE_LIBS "${LIBZ_LIBRARY} ${PRIVATE_LIBS}") + string(APPEND PRIVATE_REQUIRES " zlib") endif() if (WITH_BZIP2) -set (PRIVATE_LIBS "${LIBBZ_LIBRARY} ${PRIVATE_LIBS}") + string(APPEND PRIVATE_REQUIRES " bzip2") endif() if (WITH_LIBXML) -set (PRIVATE_LIBS "${LIBXML_LIBRARY} ${PRIVATE_LIBS}") + string(APPEND PRIVATE_REQUIRES " libxml-2.0") endif() if (WITH_EXPAT) -set (PRIVATE_LIBS "${LIBEXPAT_LIBRARY} ${PRIVATE_LIBS}") + string(APPEND PRIVATE_REQUIRES " expat") endif() if (WITH_XERCES) set (PRIVATE_LIBS "${XERCES_LIBRARY} ${PRIVATE_LIBS}") @@ -1051,9 +1071,7 @@ if (WITH_XERCES) file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pc" "Conflicts: xerces-c = 2.6.0\n") endif() -if (WITH_LIBXML) -file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pc" "Requires.private: libxml-2.0 >= 2.6.22\n") -endif() +file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pc" "Requires.private: ${PRIVATE_REQUIRES}\n") if (UNIX OR MINGW) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pc" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 79301a6..0957d29 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -311,7 +311,7 @@ if(WITH_BZIP2) sbml/compress/bzfstream.h sbml/compress/bzfstream.cpp ) - set(LIBSBML_LIBS ${LIBSBML_LIBS} BZ2::BZ2) + set(LIBSBML_LIBS ${LIBSBML_LIBS} BZip2::BZip2) endif() @@ -405,7 +405,7 @@ if(WITH_EXPAT) sbml/xml/ExpatHandler.h sbml/xml/ExpatParser.h ) - set(LIBSBML_LIBS ${LIBSBML_LIBS} EXPAT::EXPAT) + set(LIBSBML_LIBS ${LIBSBML_LIBS} expat::expat) endif(WITH_EXPAT) @@ -423,7 +423,7 @@ if(WITH_LIBXML) sbml/xml/LibXMLParser.h sbml/xml/LibXMLTranscode.h ) - set(LIBSBML_LIBS ${LIBSBML_LIBS} LIBXML::LIBXML) + set(LIBSBML_LIBS ${LIBSBML_LIBS} LibXml2::LibXml2) endif(WITH_LIBXML) ================================================ FILE: ports/libsbml/dirent.diff ================================================ diff --git a/src/sbml/validator/test/tps/dirent.c b/src/sbml/validator/test/tps/dirent.c index beafc5e..48a60ca 100644 --- a/src/sbml/validator/test/tps/dirent.c +++ b/src/sbml/validator/test/tps/dirent.c @@ -1,3 +1,4 @@ +#if 0 /* ///////////////////////////////////////////////////////////////////////////// * File: dirent.c * @@ -239,3 +240,4 @@ struct dirent *readdir(DIR *dir) } /* ////////////////////////////////////////////////////////////////////////// */ +#endif diff --git a/src/sbml/validator/test/tps/dirent.h b/src/sbml/validator/test/tps/dirent.h index 4703aa2..8e4c29c 100644 --- a/src/sbml/validator/test/tps/dirent.h +++ b/src/sbml/validator/test/tps/dirent.h @@ -46,6 +46,9 @@ #ifndef SYNSOFT_UNIXEM_INCL_H_DIRENT #define SYNSOFT_UNIXEM_INCL_H_DIRENT +#include +#endif +#if 0 #ifndef _SYNSOFT_DOCUMENTATION_SKIP_SECTION # define SYNSOFT_UNIXEM_VER_H_DIRENT_MAJOR 2 ================================================ FILE: ports/libsbml/libsbml-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(@name@ CONFIG) if(NOT TARGET libsbml) add_library(libsbml INTERFACE IMPORTED) target_link_libraries(libsbml INTERFACE $) endif() ================================================ FILE: ports/libsbml/no-docs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ad678a..f856774 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1012,7 +1012,6 @@ set(DOCUMENTATION_FILES VERSION.txt ) -install(FILES ${DOCUMENTATION_FILES} DESTINATION ${MISC_PREFIX}) ############################################################################### # ================================================ FILE: ports/libsbml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sbmlteam/libsbml REF "v${VERSION}" SHA512 d4960b2ef12d00ae93ea883f945acf435a99763a0e2e751d94a15c7ff22fd41ff31cb16c1f37aa23257b3eb0de894201420962b008a6fe43ef0511fa2612846a HEAD_REF development PATCHES dependencies.diff dirent.diff no-docs.diff test-shared.diff ) file(REMOVE "${SOURCE_PATH}/CMakeModules/FindBZ2.cmake" "${SOURCE_PATH}/CMakeModules/FindEXPAT.cmake" "${SOURCE_PATH}/CMakeModules/FindLIBXML.cmake" "${SOURCE_PATH}/CMakeModules/FindZLIB.cmake" ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_RUNTIME) if("expat" IN_LIST FEATURES AND "libxml2" IN_LIST FEATURES) message(WARNING "Feature expat conflicts with feature libxml2. Selecting libxml2.") list(REMOVE_ITEM FEATURES "expat") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES comp ENABLE_COMP fbc ENABLE_FBC groups ENABLE_GROUPS layout ENABLE_LAYOUT multi ENABLE_MULTI qual ENABLE_QUAL render ENABLE_RENDER bzip2 WITH_BZIP2 expat WITH_EXPAT libxml2 WITH_LIBXML zlib WITH_ZLIB test WITH_CHECK namespace WITH_CPP_NAMESPACE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_L3V2EXTENDEDMATH:BOOL=ON -DWITH_STATIC_RUNTIME=${STATIC_RUNTIME} -DWITH_SWIG=OFF MAYBE_UNUSED_VARIABLES WITH_STATIC_RUNTIME ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() foreach(name IN ITEMS libsbml libsbml-static sbml sbml-static) if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${name}-config.cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME "${name}" CONFIG_PATH lib/cmake) if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake") configure_file("${CURRENT_PORT_DIR}/libsbml-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) endif() break() endif() endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sbml/common/extern.h" "defined LIBSBML_STATIC" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sbml/xml/XMLExtern.h" "defined(LIBLAX_STATIC)" "1") if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsbml.pc" " -lsbml" " -lsbml-static") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libsbml.pc" " -lsbml" " -lsbml-static") endif() endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/libsbml/test-shared.diff ================================================ diff --git a/src/sbml/test/CMakeLists.txt b/src/sbml/test/CMakeLists.txt index 7a408d7..462d58a 100644 --- a/src/sbml/test/CMakeLists.txt +++ b/src/sbml/test/CMakeLists.txt @@ -49,6 +49,9 @@ if (EXTRA_INCLUDE_DIRS) include_directories(${EXTRA_INCLUDE_DIRS}) endif(EXTRA_INCLUDE_DIRS) +if(NOT TARGET ${LIBSBML_LIBRARY}-static) + add_library(${LIBSBML_LIBRARY}-static ALIAS ${LIBSBML_LIBRARY}) +endif() add_executable(test_sbml_sbml ${TEST_FILES}) target_link_libraries(test_sbml_sbml ${LIBSBML_LIBRARY}-static CHECK::CHECK) ================================================ FILE: ports/libsbml/usage ================================================ libsbml provides CMake targets: find_package(libsbml CONFIG REQUIRED) target_link_libraries(main PRIVATE libsbml) ================================================ FILE: ports/libsbml/vcpkg.json ================================================ { "name": "libsbml", "version": "5.20.4", "description": "A library for reading / writing SBML files", "homepage": "https://github.com/sbmlteam/libsbml", "license": null, "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "comp", "fbc", "groups", "layout", "libxml2", "render" ], "features": { "bzip2": { "description": "bz2 compression support for libsbml", "dependencies": [ "bzip2" ] }, "comp": { "description": "support for Hierarchical Model Composition" }, "expat": { "description": "libsbml using expat parser", "dependencies": [ "expat" ] }, "fbc": { "description": "support for Flux Balance Constrant Modeling" }, "groups": { "description": "support for Groups" }, "layout": { "description": "support for Pathway Layouts" }, "libxml2": { "description": "libsbml using libxml2 parser", "dependencies": [ { "name": "libxml2", "default-features": false } ] }, "multi": { "description": "support for Multistate Modeling" }, "namespace": { "description": "Build with the WITH_CPP_NAMESPACE option set to on" }, "qual": { "description": "support for Qualitative Modeling" }, "render": { "description": "support for Rendering information", "dependencies": [ { "name": "libsbml", "default-features": false, "features": [ "layout" ] } ] }, "test": { "description": "Unit testing of libSBMLs implementation", "supports": "!windows | mingw | (windows & static)", "dependencies": [ "check", "dirent" ] }, "zlib": { "description": "gzip compression support for libsbml", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libsbsms/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO claytonotey/libsbsms REF 2.3.0 SHA512 e5b544c2bdbaa2169236987c7a043838c8d1761b25280c476d7a32656d482c6485cb33f579ea9d1ce586ec7b2913ed8fdcf1abe5c7cc8b9e4eef9ce87de54627 HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/sbsms" PACKAGE_NAME sbsms) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libsbsms/vcpkg.json ================================================ { "name": "libsbsms", "version-semver": "2.3.0", "description": "libsbsms is a library for high quality time and pitch scale modification of digital audio. It uses octave subband sinusoidal modeling.", "homepage": "https://github.com/claytonotey/libsbsms", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libscran-umappp/0001-fix-eigen3-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d1e04b..9c40958 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ if(UMAPPP_FETCH_EXTERN) else() find_package(ltla_aarand 1.1.0 CONFIG REQUIRED) find_package(ltla_irlba 3.0.0 CONFIG REQUIRED) - find_package(Eigen3 5.0.0 CONFIG REQUIRED) + find_package(Eigen3 CONFIG REQUIRED) find_package(ltla_subpar 0.5.0 CONFIG REQUIRED) find_package(ltla_sanisizer 0.2.0 CONFIG REQUIRED) find_package(knncolle_knncolle 3.1.0 CONFIG REQUIRED) diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index 8e51dd2..e588153 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -5,7 +5,7 @@ find_dependency(ltla_aarand 1.1.0 CONFIG REQUIRED) find_dependency(ltla_sanisizer 0.2.0 CONFIG REQUIRED) find_dependency(ltla_subpar 0.5.0 CONFIG REQUIRED) find_dependency(ltla_irlba 3.0.0 CONFIG REQUIRED) -find_dependency(Eigen3 5.0.0 CONFIG REQUIRED) +find_dependency(Eigen3 CONFIG REQUIRED) find_dependency(knncolle_knncolle 3.1.0 CONFIG REQUIRED) include("${CMAKE_CURRENT_LIST_DIR}/libscran_umapppTargets.cmake") ================================================ FILE: ports/libscran-umappp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libscran/umappp REF "v${VERSION}" SHA512 a4706321d6129194520e909b7978b297cb114dffe7a3a449960cf1c3f06ca1dc1903ca8f1a23c924706d9fc44e3af7479f9fac05b3d5f710414b37b0cca9fdf6 HEAD_REF master PATCHES 0001-fix-eigen3-dependency.patch ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUMAPPP_FETCH_EXTERN=OFF -DUMAPPP_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME libscran_umappp CONFIG_PATH lib/cmake/libscran_umappp ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libscran-umappp/vcpkg.json ================================================ { "name": "libscran-umappp", "version": "3.2.1", "description": "UMAP C++ implementation", "homepage": "https://github.com/libscran/umappp", "license": "BSD-2-Clause", "dependencies": [ "knncolle", "ltla-aarand", "ltla-cppirlba", "ltla-sanisizer", "ltla-subpar", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsecret/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 f5ee1244338ba324ae403096ddd7357899f55fa9f961d2473515ac924164fe9b33f87e39eea2a30b99fc32f2300c0e626d20c98509dbbcadb2c99628a1caa0e4 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dintrospection=false -Dgtk_doc=false -Dmanpage=false -Dvapi=false ADDITIONAL_BINARIES gdbus-codegen='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gdbus-codegen' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES secret-tool AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libsecret/vcpkg.json ================================================ { "name": "libsecret", "version": "0.21.7", "description": "libsecret is a GObject-based library for accessing the Secret Service API of the freedesktop.org project, a cross-desktop effort to access passwords, tokens and other types of secrets. libsecret provides a convenient wrapper for these methods so consumers do not have to call the low-level DBus methods.", "homepage": "https://gitlab.gnome.org/GNOME/libsecret/", "license": "LGPL-2.1-or-later", "supports": "!android & !ios & !osx & !windows", "dependencies": [ "glib", { "name": "glib", "host": true }, "libgcrypt", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libsercomm/dev-SER_END_DECL-fix.patch ================================================ --- a/include/public/sercomm/dev.h +++ b/include/public/sercomm/dev.h @@ -137,6 +137,6 @@ SER_EXPORT void ser_dev_monitor_stop(ser_dev_mon_t *mon); /** @} */ -SER_BEGIN_DECL +SER_END_DECL #endif ================================================ FILE: ports/libsercomm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ingeniamc/sercomm REF 1.3.2 SHA512 f1581f2dfa262ffb1b3aec5a1e6d32493c322c94541fbacc98efff23b3b42b14c9abdcfb063a78b7c54fb1f9d8dbf59d8064099601de2175af6c6d830708324c HEAD_REF master PATCHES dev-SER_END_DECL-fix.patch # https://github.com/ingeniamc/sercomm/pull/3 ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES errdesc WITH_ERRDESC devmon WITH_DEVMON ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME sercomm CONFIG_PATH lib/cmake/sercomm ) # Remove includes in debug 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") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Copy pdb files vcpkg_copy_pdbs() ================================================ FILE: ports/libsercomm/vcpkg.json ================================================ { "name": "libsercomm", "version": "1.3.2", "port-version": 1, "description": "Multiplatform serial communications library", "homepage": "https://github.com/ingeniamc/sercomm", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "devmon", "errdesc" ], "features": { "devmon": { "description": "When enabled, device listing and monitoring will be supported" }, "errdesc": { "description": "When enabled, error details description can be obtained" } } } ================================================ FILE: ports/libserial/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO crayzeewulf/libserial REF 50e0f443666d48d7c7e181dc73a6b35700517fae SHA512 205b481b96bfd471804e3a039864221a8e08b40a9fd4681c5dd9433805eb711b782decca5aa7d121c15775646e853f6a7c6ad98d8ffd08d452123c60b3b62368 HEAD_REF master ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(LIBSERIAL_STATIC OFF) set(LIBSERIAL_SHARED ON) else() set(LIBSERIAL_STATIC ON) set(LIBSERIAL_SHARED OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBSERIAL_ENABLE_TESTING=OFF -DLIBSERIAL_BUILD_EXAMPLES=OFF -DLIBSERIAL_PYTHON_ENABLE=OFF -DLIBSERIAL_BUILD_DOCS=OFF -DINSTALL_STATIC=${LIBSERIAL_STATIC} -DINSTALL_SHARED=${LIBSERIAL_SHARED} ) vcpkg_cmake_install() file(REMOVE "${CURRENT_PACKAGES_DIR}/include/libserial/Makefile.am") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/libserial/vcpkg.json ================================================ { "name": "libserial", "version-date": "2025-09-03", "description": "Serial Port Programming in C++ ", "homepage": "https://github.com/crayzeewulf/libserial", "license": "BSD-3-Clause", "supports": "linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsersi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO crhowell3/libsersi REF "v${VERSION}" SHA512 f8cd84e12a14d6c9dc424c176b3e0536293cfa96f4cb03f7e4c9008ce6272b70284179f16dca5f5fb82c4cad9003a16ed2639bcd52f18f39b9587cd63075e188 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALL_INCLUDE_DIR=include ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libsersi) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libsersi/usage ================================================ libsersi provides CMake targets: find_package(libsersi CONFIG REQUIRED) target_link_libraries(main PRIVATE libsersi::sersi) ================================================ FILE: ports/libsersi/vcpkg.json ================================================ { "name": "libsersi", "version": "0.1.0", "description": "C++ implementation of the IEEE 1278.1a-1998 Distributed Interactive Simulation (DIS) application protocol.", "homepage": "https://github.com/crhowell3/libsersi", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsharp/portfile.cmake ================================================ # Healpix is user and effective maintainer of libsharp. # Their version 1.0.0 was first distributed with Healpix 3.60. # cf. https://repology.org/project/libsharp/information vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO healpix REF Healpix_3.83 FILENAME "Healpix_3.83_2024Nov13.tar.gz" SHA512 95d8cc4aa6075f7b129d7b117c25ba66deddc25824dbd56d2e3ac8469004452ec2c9736b3a940bd3dcd27a1db4751366068b4ca534b5b853451c43c35244ca52 ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/src/common_libraries/libsharp" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" COMMENT [[ libsharp is licensed under GNU General Public License version 2 or later. libsharp includes pocketfft source files which are licensed under a 3-clause BSD style license, Copyright (C) 2004-2019 Max-Planck-Society. ]]) ================================================ FILE: ports/libsharp/vcpkg.json ================================================ { "name": "libsharp", "version": "1.0.0", "description": "Library for fast spherical harmonic transforms, see http://arxiv.org/abs/1303.4945", "homepage": "https://healpix.sourceforge.io/", "license": null, "supports": "!windows | mingw", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libshout/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.xiph.org OUT_SOURCE_PATH SOURCE_PATH REPO xiph/icecast-libshout REF "v${VERSION}" HEAD_REF master SHA512 04dbb567f36269506becc3a50eb5fa263cbc308764c3fc1e59c3ab4833ef944479d0d35af33941214ff86899c40253a0ded095e5e217035848ce2694496720b5 ) vcpkg_from_gitlab( GITLAB_URL https://gitlab.xiph.org OUT_SOURCE_PATH SOURCE_PATH_COMMON REPO xiph/icecast-common REF 5de3e8b3b063002d8a9f52122e97f721e1742531 HEAD_REF master SHA512 f064e2b2dd686c7647ba4c5afb9ca7e85b2015643d7a185cc319f47461aacc765e7f9b3e9576e09a73a8af0724a54fafdd7c064756d3c6e97329bb5f77806933 ) vcpkg_from_gitlab( GITLAB_URL https://gitlab.xiph.org OUT_SOURCE_PATH SOURCE_PATH_M4 REPO xiph/icecast-m4 REF 57027c6cc3f8b26d59e9560b4ac72a1a06d643b9 HEAD_REF master SHA512 67fe6fad8bf86990b5da311d729b9a746849f3d920c018112b4625b5e0d37a85444be16367967cb18a871c1ca1d679f5924ad3fc8547fbb30746b7e1f4b396bc ) file(COPY ${SOURCE_PATH_COMMON}/ DESTINATION ${SOURCE_PATH}/src/common) file(COPY ${SOURCE_PATH_M4}/ DESTINATION ${SOURCE_PATH}/m4) set(FEATURE_OPTIONS "") if(NOT "speex" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "--disable-speex") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${FEATURE_OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libshout/vcpkg.json ================================================ { "name": "libshout", "version": "2.4.6", "description": "A library for communicating with and sending data to an Icecast server.", "homepage": "https://gitlab.xiph.org/xiph/icecast-libshout", "license": "LGPL-2.0-or-later", "supports": "!windows", "dependencies": [ "libogg", "libtheora", "libvorbis", "openssl", "pthread", { "name": "vcpkg-make", "host": true } ], "features": { "speex": { "description": "Enable support for Speex codec", "dependencies": [ "speex" ] } } } ================================================ FILE: ports/libsigcpp/disable_tests_enable_static_build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c4b291c..2475881 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,13 +86,13 @@ install (FILES DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") -enable_testing() +#enable_testing() add_subdirectory (sigc++) -add_subdirectory (examples) -add_subdirectory (tests) +#add_subdirectory (examples) +#add_subdirectory (tests) set (PROJECT_CMAKE_NAME "${PROJECT_NAME}-3") diff --git a/sigc++/CMakeLists.txt b/sigc++/CMakeLists.txt index dd2d339..8480a5e 100644 --- a/sigc++/CMakeLists.txt +++ b/sigc++/CMakeLists.txt @@ -24,7 +24,7 @@ set (SOURCE_FILES set (SIGCPP_LIB_NAME sigc-${SIGCXX_API_VERSION}) -add_library(${SIGCPP_LIB_NAME} SHARED ${SOURCE_FILES}) +add_library(${SIGCPP_LIB_NAME} ${SOURCE_FILES}) set_property (TARGET ${SIGCPP_LIB_NAME} PROPERTY VERSION ${PACKAGE_VERSION}) set_property(TARGET ${SIGCPP_LIB_NAME} PROPERTY SOVERSION ${LIBSIGCPP_SOVERSION}) ================================================ FILE: ports/libsigcpp/fix-shared-windows-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2475881..3828a13 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,14 @@ set (PROJECT_SOURCE_DIR "${sigc++_SOURCE_DIR}/sigc++") include_directories (${sigc++_SOURCE_DIR}) include_directories (${sigc++_BINARY_DIR}) +if (BUILD_SHARED_LIBS) + if (MSVC) + add_compile_options (-D_WINDLL) + endif() +else() + add_compile_options (-DLIBSIGCXX_STATIC) +endif() + configure_file (sigc++config.h.cmake sigc++config.h) set (prefix ${CMAKE_INSTALL_PREFIX}) ================================================ FILE: ports/libsigcpp/fix_include_path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3828a13..bc0a854 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,7 +87,7 @@ endif() install (FILES "${CMAKE_CURRENT_BINARY_DIR}/sigc++config.h" DESTINATION - "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}-${SIGCXX_API_VERSION}/include") + "${CMAKE_INSTALL_PREFIX}/include") install (FILES "${CMAKE_CURRENT_BINARY_DIR}/sigc++-${SIGCXX_API_VERSION}.pc" @@ -105,7 +105,7 @@ add_subdirectory (sigc++) set (PROJECT_CMAKE_NAME "${PROJECT_NAME}-3") set (VERSION_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CMAKE_NAME}ConfigVersion.cmake") -set (LIBSIGCXX_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/lib/${PROJECT_NAME}-${SIGCXX_API_VERSION}/include") +set (LIBSIGCXX_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include") set (PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CMAKE_NAME}Config.cmake") set (CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_CMAKE_NAME}") set (TARGETS_EXPORT_NAME "${PROJECT_CMAKE_NAME}Targets") diff --git a/sigc++.pc.in b/sigc++.pc.in index e162f2f..7e9b298 100644 --- a/sigc++.pc.in +++ b/sigc++.pc.in @@ -15,4 +15,4 @@ Description: Typesafe signal and callback system for C++ Version: @PACKAGE_VERSION@ URL: https://libsigcplusplus.github.io/libsigcplusplus/ Libs: -L${libdir} -lsigc-@SIGCXX_API_VERSION@ -Cflags: -I${includedir}/sigc++-@SIGCXX_API_VERSION@ -I${libdir}/sigc++-@SIGCXX_API_VERSION@/include @MSVC_STATIC_CXXFLAG@ +Cflags: -I${includedir} @MSVC_STATIC_CXXFLAG@ diff --git a/sigc++/CMakeLists.txt b/sigc++/CMakeLists.txt index 8480a5e..b51b023 100644 --- a/sigc++/CMakeLists.txt +++ b/sigc++/CMakeLists.txt @@ -30,7 +30,7 @@ set_property (TARGET ${SIGCPP_LIB_NAME} PROPERTY VERSION ${PACKAGE_VERSION}) set_property(TARGET ${SIGCPP_LIB_NAME} PROPERTY SOVERSION ${LIBSIGCPP_SOVERSION}) target_compile_definitions( ${SIGCPP_LIB_NAME} PRIVATE -DSIGC_BUILD ) -set (INCLUDE_INSTALL_DIR "include/${PROJECT_NAME}-${SIGCXX_API_VERSION}") +set (INCLUDE_INSTALL_DIR "include/") install ( DIRECTORY "${PROJECT_SOURCE_DIR}" ================================================ FILE: ports/libsigcpp/fix_version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,9 @@ cmake_minimum_required (VERSION 3.2) set (SIGCXX_MAJOR_VERSION 3) -set (SIGCXX_MINOR_VERSION 4) +set (SIGCXX_MINOR_VERSION 6) set (SIGCXX_MICRO_VERSION 0) set (SIGCXX_API_VERSION 3.0) set (PACKAGE_VERSION ${SIGCXX_MAJOR_VERSION}.${SIGCXX_MINOR_VERSION}.${SIGCXX_MICRO_VERSION}) ================================================ FILE: ports/libsigcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsigcplusplus/libsigcplusplus REF "${VERSION}" SHA512 0d22275995a1629ae73b0cc2b2f2598b18aa0ed6d35bd3f1735a50f54d356fb248dedc8d9b5f2794830866b04e0f58ce641048e2df7215ec2e6eac744de58a27 HEAD_REF master PATCHES disable_tests_enable_static_build.patch fix-shared-windows-build.patch fix_include_path.patch fix_version.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME sigc++-3 CONFIG_PATH lib/cmake/sigc++-3) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sigc++config.h" "ifdef BUILD_SHARED" "if 1" IGNORE_UNCHANGED) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsigcpp/vcpkg.json ================================================ { "name": "libsigcpp", "version": "3.6.0", "port-version": 2, "description": "Typesafe callback framework for C++", "homepage": "https://libsigcplusplus.github.io/libsigcplusplus/", "license": "LGPL-3.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libslirp/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO slirp/libslirp REF "v${VERSION}" SHA512 cdb66f6280a9982de3c32269aee352bdf225db918590255abaed9bcd0aee4e996d2d8c2c3f62473f57485603ec29fd35723b0649d3ec3c41cc28b22ce913f63b HEAD_REF master ) if(VCPKG_HOST_IS_WINDOWS) vcpkg_acquire_msys(MSYS_ROOT) vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/libslirp/vcpkg.json ================================================ { "name": "libslirp", "version-semver": "4.9.1", "description": "libslirp is a user-mode networking library used by virtual machines, containers or various tools.", "homepage": "https://gitlab.freedesktop.org/slirp/libslirp", "license": "BSD-3-Clause", "dependencies": [ "glib", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libsm/msvc.patch ================================================ diff --git a/src/sm_genid.c b/src/sm_genid.c index 9a52e1d..3a7d1e4 100644 --- a/src/sm_genid.c +++ b/src/sm_genid.c @@ -64,7 +64,9 @@ in this Software without prior written authorization from The Open Group. # include #endif #include -#include +#ifdef HAVE_UNISTD_H + #include +#endif #include #define Time_t time_t ================================================ FILE: ports/libsm/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBSM_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libSM-${VERSION}.tar.xz" FILENAME "libSM-${VERSION}.tar.xz" SHA512 e544a1dc49a03390f76af35837bfd01f749b806d88d3ee806f20311c47ff53d0aeea4744feb875958031b17d50b57a89dcc41d81241c09333c88b268c44653a7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBSM_ARCHIVE}" PATCHES msvc.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libsm/vcpkg.json ================================================ { "name": "libsm", "version": "1.2.6", "port-version": 1, "description": "X Session Management Library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libsm", "license": null, "dependencies": [ "libice", { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/libsmacker/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(libsmacker C) option(LIBSMACKER_BUILD_TOOLS "Build smk2avi and driver executables" OFF) add_library(libsmacker smacker.c) if(WIN32 AND BUILD_SHARED_LIBS) target_sources(libsmacker PRIVATE smacker.def) endif() if(MSVC) target_compile_definitions(libsmacker PRIVATE -D_CRT_SECURE_NO_WARNINGS) endif() target_include_directories(libsmacker PUBLIC $ $) set_target_properties(libsmacker PROPERTIES PUBLIC_HEADER "smacker.h") install(TARGETS libsmacker EXPORT libsmackerTargets PUBLIC_HEADER DESTINATION include RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT libsmackerTargets FILE unofficial-libsmacker-config.cmake NAMESPACE unofficial::libsmacker:: DESTINATION share/unofficial-libsmacker ) if(LIBSMACKER_BUILD_TOOLS) add_executable(driver driver.c) target_include_directories(driver PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries(driver libsmacker) install(TARGETS driver RUNTIME DESTINATION bin) add_executable(smk2avi smk2avi.c) target_include_directories(driver PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") target_link_libraries(smk2avi libsmacker) install(TARGETS smk2avi RUNTIME DESTINATION bin) endif() ================================================ FILE: ports/libsmacker/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO libsmacker REF libsmacker-1.2 FILENAME "libsmacker-1.2.0r43.tar.gz" SHA512 1785b000884a6f93b621c1503adef100ac9b8c6e7ed5ef4d85b9ea4819715c40f9af3d930490b33ca079f531103acc69de2a800756ed7678c820ff155f86aaeb ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/smacker.def" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools LIBSMACKER_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DLIBSMACKER_BUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libsmacker) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES driver smk2avi AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libsmacker/smacker.def ================================================ LIBRARY libsmacker EXPORTS smk_open_file smk_open_filepointer smk_open_memory smk_close smk_info_all smk_info_video smk_info_audio smk_enable_all smk_enable_video smk_enable_audio smk_get_palette smk_get_video smk_get_audio smk_get_audio_size smk_first smk_next smk_seek_keyframe ================================================ FILE: ports/libsmacker/vcpkg.json ================================================ { "name": "libsmacker", "version": "1.2.0", "description": "libsmacker is a cross-platform C library which can be used for decoding Smacker Video files produced by RAD Game Tools", "homepage": "https://libsmacker.sourceforge.net", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build driver (dump tool) and smk2avi" } } } ================================================ FILE: ports/libsmb2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sahlberg/libsmb2 REF libsmb2-${VERSION} SHA512 db3675d5b6d9242a23b2b259fd3140143edcf5aa8e203b5a4781ce8279046f7f9044a506d1323e9aa6a5ff52eaed4db93dc7a03954af735971ba933bccba6a3e HEAD_REF master ) if(VCPKG_TARGET_IS_IOS) list(TRANSFORM FEATURES REPLACE "krb5" "krb5_gssapi") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES krb5 ENABLE_LIBKRB5 krb5_gssapi ENABLE_GSSAPI INVERTED_FEATURES krb5 CMAKE_DISABLE_FIND_PACKAGE_LibKrb5 krb5_gssapi CMAKE_DISABLE_FIND_PACKAGE_GSSAPI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_GSSAPI CMAKE_DISABLE_FIND_PACKAGE_LibKrb5 ENABLE_GSSAPI ENABLE_LIBKRB5 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME smb2 CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/smb2") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libsmb2/usage ================================================ libsmb2 can be used from CMake via: find_package(SMB2 REQUIRED) target_include_directories(main PRIVATE ${SMB2_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${SMB2_LIBRARIES}) ================================================ FILE: ports/libsmb2/vcpkg-cmake-wrapper.cmake ================================================ set(SMB2_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${SMB2_PREV_MODULE_PATH}) ================================================ FILE: ports/libsmb2/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "libsmb2", "version": "6.2", "description": "SMB2/3 Userspace Client", "homepage": "https://github.com/sahlberg/libsmb2", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "krb5": { "description": "SMB2/3 with krb5 support", "supports": "linux | ios", "dependencies": [ { "name": "krb5", "platform": "linux" } ] } } } ================================================ FILE: ports/libsndfile/001-avoid-installing-find-modules.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b501f08..022864f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -855,11 +847,6 @@ if (ENABLE_PACKAGE_CONFIG) ${CMAKE_CURRENT_BINARY_DIR}/SndFileConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_PACKAGEDIR} ) - - if (NOT BUILD_SHARED_LIBS AND FIND_MODULES_INSTALL_LIST) - file(COPY ${FIND_MODULES_INSTALL_LIST} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) - install(FILES ${FIND_MODULES_INSTALL_LIST} DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) - endif () else () install (TARGETS sndfile ${sdnfile_PROGRAMS} ================================================ FILE: ports/libsndfile/mp3lame-static.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b501f08..946c321 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -236,6 +236,10 @@ if (INSTALL_PKGCONFIG_MODULE) if (ENABLE_MPEG) set (EXTERNAL_MPEG_REQUIRE "libmpg123") set (EXTERNAL_MPEG_LIBS "-lmp3lame") + get_target_property(mp3lame_binary mp3lame::mp3lame IMPORTED_LOCATION_RELEASE) + if(mp3lame_binary MATCHES "mp3lame-static") + set (EXTERNAL_MPEG_LIBS "-lmp3lame-static -lmpghip-static") + endif() endif () configure_file (sndfile.pc.in sndfile.pc @ONLY) ================================================ FILE: ports/libsndfile/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsndfile/libsndfile REF 1.2.2 SHA512 fb8b4d367240a8ac9d55be6f053cb19419890691c56a8552d1600d666257992b6e8e41a413a444c9f2d6c5d71406013222c92a3bfa67228944a26475444240a1 HEAD_REF master PATCHES 001-avoid-installing-find-modules.patch mp3lame-static.diff ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_find_acquire_program(PYTHON3) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES external-libs ENABLE_EXTERNAL_LIBS mpeg ENABLE_MPEG regtest BUILD_REGTEST ) if(VCPKG_TARGET_IS_UWP) set(VCPKG_C_FLAGS "/sdl- ${VCPKG_C_FLAGS}") set(VCPKG_CXX_FLAGS "/sdl- ${VCPKG_CXX_FLAGS}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DENABLE_BOW_DOCS=OFF -DBUILD_PROGRAMS=OFF -DBUILD_REGTEST=OFF -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON -DPYTHON_EXECUTABLE=${PYTHON3} ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES PYTHON_EXECUTABLE ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") set(CONFIG_PATH cmake) else() set(CONFIG_PATH lib/cmake/SndFile) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME SndFile CONFIG_PATH "${CONFIG_PATH}") vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsndfile/vcpkg.json ================================================ { "name": "libsndfile", "version-semver": "1.2.2", "port-version": 1, "description": "A library for reading and writing audio files", "homepage": "https://github.com/erikd/libsndfile", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "external-libs", "mpeg" ], "features": { "experimental": { "description": "Enable experimental code", "dependencies": [ "speex" ] }, "external-libs": { "description": "Enable FLAC, Vorbis, and Opus codecs", "dependencies": [ "libflac", "libvorbis", "opus" ] }, "mpeg": { "description": "Enable MPEG codecs", "dependencies": [ "mp3lame", "mpg123" ] }, "regtest": { "description": "Build regtest", "dependencies": [ "sqlite3" ] } } } ================================================ FILE: ports/libsnoretoast/include_fix.patch ================================================ From 7564823f8f0bc4d647bf3470ab7a2d8612418f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Wr=C3=B3bel?= Date: Fri, 17 Sep 2021 12:30:41 +0000 Subject: [PATCH] Use relative INTERFACE_INCLUDE location Using ${CMAKE_INSTALL_PREFIX} hardcodes the installation location, instead of having CMake use ${_IMPORT_PREFIX} --- src/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eef57f7..6c35b71 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,7 +1,7 @@ add_library(SnoreToastActions INTERFACE) target_include_directories(SnoreToastActions INTERFACE $ - $ + $ ) add_library(SnoreToast::SnoreToastActions ALIAS SnoreToastActions) -- GitLab ================================================ FILE: ports/libsnoretoast/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/snoretoast REF v0.8.0 SHA512 233751b6cc3f8099c742e4412a3c9ba8707a2f3c69b57bab93dd83b028aa0c0656cade8de1ece563843ace576fd0d8e5f3a29c254a07ed939d0a69cd2d4f6c2a HEAD_REF master PATCHES include_fix.patch # https://invent.kde.org/libraries/snoretoast/-/merge_requests/1 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_STATIC_RUNTIME=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME LibSnoreToast CONFIG_PATH "lib/cmake/libsnoretoast") vcpkg_copy_tools( TOOL_NAMES "snoretoast" AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/COPYING.LGPL-3" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsnoretoast/vcpkg.json ================================================ { "name": "libsnoretoast", "version": "0.8.0", "port-version": 2, "description": "A tool to create Windows Toast notifications and parse them on Windows 8 or later.", "homepage": "https://invent.kde.org/libraries/snoretoast", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsodium/001-mingw-i386.patch ================================================ diff --git a/src/libsodium/randombytes/internal/randombytes_internal_random.c b/src/libsodium/randombytes/internal/randombytes_internal_random.c index faf5265..e3f1a9d 100644 --- a/src/libsodium/randombytes/internal/randombytes_internal_random.c +++ b/src/libsodium/randombytes/internal/randombytes_internal_random.c @@ -104,7 +104,7 @@ BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer, ULONG RandomBufferLength); #endif #ifdef HAVE_RDRAND -# ifdef __clang__ +# if defined (__clang__) && (!defined(__MINGW32__) || !defined(__i386__)) # pragma clang attribute push(__attribute__((target("rdrnd"))), apply_to = function) # elif defined(__GNUC__) # pragma GCC target("rdrnd") @@ -642,7 +642,7 @@ struct randombytes_implementation randombytes_internal_implementation = { }; #ifdef HAVE_RDRAND -# ifdef __clang__ +# if defined (__clang__) && (!defined(__MINGW32__) || !defined(__i386__)) # pragma clang attribute pop # endif #endif ================================================ FILE: ports/libsodium/portfile.cmake ================================================ # libsodium has a special branching/tagging scheme, where regular version tags can actually be moved # as new patches are applied to that version. This means that we may get unexpected hash mismatches # when the upstream tag points to a new commit. To avoid this, we must make sure that we always # use a '-RELEASE' tag, since those seem to be fixed to a single commit. # See https://github.com/jedisct1/libsodium/issues/1373#issuecomment-2135172301 for more info. vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jedisct1/libsodium REF "${VERSION}-RELEASE" SHA512 0229d2e7def68da6b953b819203a8d9ab91366d13562d7dbad98ee36777dc6ff11df70f1cd216620d635bd2550e0c49428ffac0b8f0e0e24a325e706c4f43328 HEAD_REF master PATCHES 001-mingw-i386.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(lib_linkage "LIB") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(lib_linkage "DLL") endif() set(LIBSODIUM_PROJECT_SUBPATH "builds/msvc/vs2022/libsodium/libsodium.vcxproj" CACHE STRING "Triplet variable") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "${LIBSODIUM_PROJECT_SUBPATH}" RELEASE_CONFIGURATION "Release${lib_linkage}" DEBUG_CONFIGURATION "Debug${lib_linkage}" ) file(INSTALL "${SOURCE_PATH}/src/libsodium/include/sodium.h" "${SOURCE_PATH}/src/libsodium/include/sodium" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/libsodium/include/sodium/version.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/sodium") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/Makefile.am" "${CURRENT_PACKAGES_DIR}/include/sodium/version.h.in") block(SCOPE_FOR VARIABLES) set(PACKAGE_NAME "libsodium") set(PACKAGE_VERSION "${VERSION}") set(prefix [[unused]]) set(exec_prefix [[${prefix}]]) set(includedir [[${prefix}/include]]) set(libdir [[${prefix}/lib]]) set(PKGCONFIG_LIBS_PRIVATE "") configure_file("${SOURCE_PATH}/libsodium.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsodium.pc" @ONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libsodium.pc" " -lsodium" " -llibsodium") if(NOT VCPKG_BUILD_TYPE) set(includedir [[${prefix}/../include]]) configure_file("${SOURCE_PATH}/libsodium.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libsodium.pc" @ONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libsodium.pc" " -lsodium" " -llibsodium") endif() endblock() else() if(VCPKG_TARGET_IS_EMSCRIPTEN) list(APPEND OPTIONS "--disable-ssp" "--disable-asm") endif() if(NOT VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS --disable-pie) endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) endif() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sodium/export.h" "#ifdef SODIUM_STATIC" "#if 1") endif() # vcpkg legacy configure_file( "${CMAKE_CURRENT_LIST_DIR}/sodiumConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-sodium/unofficial-sodiumConfig.cmake" @ONLY ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libsodium/sodiumConfig.cmake.in ================================================ if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT WIN32) include(CMakeFindDependencyMacro) find_dependency(Threads) endif() if(NOT TARGET unofficial-sodium::sodium) add_library(unofficial-sodium::sodium UNKNOWN IMPORTED) set_target_properties(unofficial-sodium::sodium PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT WIN32) set_target_properties(unofficial-sodium::sodium PROPERTIES INTERFACE_LINK_LIBRARIES Threads::Threads ) endif() find_library(VCPKG_SODIUM_LIBRARY_RELEASE NAMES sodium libsodium PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) if(EXISTS "${VCPKG_SODIUM_LIBRARY_RELEASE}") set_property(TARGET unofficial-sodium::sodium APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial-sodium::sodium PROPERTIES IMPORTED_LOCATION_RELEASE "${VCPKG_SODIUM_LIBRARY_RELEASE}") endif() find_library(VCPKG_SODIUM_LIBRARY_DEBUG NAMES sodium libsodium PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${VCPKG_SODIUM_LIBRARY_DEBUG}") set_property(TARGET unofficial-sodium::sodium APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial-sodium::sodium PROPERTIES IMPORTED_LOCATION_DEBUG "${VCPKG_SODIUM_LIBRARY_DEBUG}") endif() endif() ================================================ FILE: ports/libsodium/vcpkg.json ================================================ { "name": "libsodium", "version": "1.0.21", "port-version": 1, "description": "A modern and easy-to-use crypto library", "homepage": "https://libsodium.org/", "license": "ISC", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/libsonic/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(sonic VERSION 0.2.0 LANGUAGES C ) option(BUILD_TOOL "Build sonic tool" ON) add_library(libsonic sonic.c) set_target_properties(libsonic PROPERTIES PUBLIC_HEADER "${CMAKE_SOURCE_DIR}/sonic.h" SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${CMAKE_PROJECT_VERSION} OUTPUT_NAME sonic ) install(TARGETS libsonic ARCHIVE DESTINATION lib LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include ) if (BUILD_TOOL) add_executable(sonic wave.c main.c) target_link_libraries(sonic PRIVATE libsonic ) install(TARGETS sonic RUNTIME DESTINATION bin ) endif() ================================================ FILE: ports/libsonic/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO waywardgeek/sonic REF "release-${VERSION}" SHA512 e70510c89c4f29c30f2a3443a1c4fc1aab2c99147e2ebd1dea3cbb2b89b8bdcee14dc504600ac1f04e82d32c19f17b06fbb417311853beb764c24d15687a126f HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool BUILD_TOOL ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TOOL=${BUILD_TOOL} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(BUILD_TOOL) vcpkg_copy_tools(TOOL_NAMES sonic AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libsonic/vcpkg.json ================================================ { "name": "libsonic", "version": "0.2.0", "description": "Simple library to speed up or slow down speech", "homepage": "https://github.com/waywardgeek/sonic", "license": "Apache-2.0", "supports": "linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tool": { "description": "Build tool" } } } ================================================ FILE: ports/libsoundio/fix_cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6541f1b..e81bdce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,5 @@ -cmake_minimum_required(VERSION 2.8.5) +cmake_minimum_required(VERSION 3.14) +cmake_policy(SET CMP0022 NEW) project(libsoundio C) set(CMAKE_MODULE_PATH ${libsoundio_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) @@ -233,7 +234,8 @@ if(BUILD_DYNAMIC_LIBS) LINKER_LANGUAGE C ) target_link_libraries(libsoundio_shared LINK_PUBLIC ${LIBSOUNDIO_LIBS}) - install(TARGETS libsoundio_shared DESTINATION ${CMAKE_INSTALL_LIBDIR}) + target_include_directories(libsoundio_shared PUBLIC $) + install(TARGETS libsoundio_shared EXPORT libsoundio-export) endif() if(BUILD_STATIC_LIBS) @@ -204,8 +206,7 @@ if(MSVC) set(EXAMPLE_CFLAGS "/W4") set(TEST_CFLAGS "${LIB_CFLAGS}") set(TEST_LDFLAGS " ") set(LIBM " ") else() - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Werror -pedantic") set(LIB_CFLAGS "-std=c11 -fvisibility=hidden -Wall -Werror=strict-prototypes -Werror=old-style-definition -Werror=missing-prototypes -D_REENTRANT -D_POSIX_C_SOURCE=200809L -Wno-missing-braces") set(EXAMPLE_CFLAGS "-std=c99 -Wall") @@ -243,9 +244,26 @@ if(BUILD_STATIC_LIBS) COMPILE_FLAGS ${LIB_CFLAGS} LINKER_LANGUAGE C ) - install(TARGETS libsoundio_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) + target_link_libraries(libsoundio_static PUBLIC ${LIBSOUNDIO_LIBS}) + target_include_directories(libsoundio_static PUBLIC $) + install(TARGETS libsoundio_static EXPORT libsoundio-export) endif() +add_library(libsoundio INTERFACE) +if(BUILD_DYNAMIC_LIBS) + target_link_libraries(libsoundio INTERFACE libsoundio_shared) +else() + target_link_libraries(libsoundio INTERFACE libsoundio_static) +endif() +install(TARGETS libsoundio EXPORT libsoundio-export) +install( + EXPORT libsoundio-export + FILE libsoundio-config.cmake + DESTINATION share/libsoundio/ + NAMESPACE ${PROJECT_NAME}:: + EXPORT_LINK_INTERFACE_LIBRARIES +) + install(FILES ${LIBSOUNDIO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/soundio") ================================================ FILE: ports/libsoundio/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+[.][0-9]+[.][0-9]+)[.]" "\\1-" git_tag "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andrewrk/libsoundio REF "${git_tag}" SHA512 e854f066087f72438c9f014336a611d73b55a7b932747f94464477bd9f7daf9da440bad820d9c8e3d90ae3679af62a051e9645f0e0a2ddaed9726245a81f1e66 HEAD_REF master PATCHES fix_cmakelists.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES alsa ENABLE_ALSA jack ENABLE_JACK pulseaudio ENABLE_PULSEAUDIO ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DYNAMIC_LIBS=${BUILD_DYNAMIC_LIBS} -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DBUILD_EXAMPLE_PROGRAMS=OFF -DBUILD_TESTS=OFF ${FEATURE_OPTIONS} -DENABLE_COREAUDIO=${VCPKG_TARGET_IS_OSX} -DENABLE_WASAPI=${VCPKG_TARGET_IS_WINDOWS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/soundio/soundio.h" "defined(SOUNDIO_STATIC_LIBRARY)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsoundio/vcpkg.json ================================================ { "name": "libsoundio", "version": "2.0.1.7", "description": "libsoundio is C library providing cross-platform audio input and output.", "homepage": "http://libsound.io/", "supports": "!uwp & !(arm64 & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "alsa": { "description": "ALSA backend for libsoundio" }, "jack": { "description": "JACK backend for libsoundio", "dependencies": [ "jack2" ] }, "pulseaudio": { "description": "PulseAudio backend for libsoundio" } } } ================================================ FILE: ports/libsoup/portfile.cmake ================================================ string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "GNOME-${PORT}-${VERSION}.tar.xz" SHA512 4018dc6f9823fd82cde0fecbb50cd1b5dd0ff4963f92f7ea465e67faf81e71580709eec59914ddbdff317963a88e4a8024e60e44087041175bc21e04022857d2 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgssapi=disabled -Dbrotli=disabled -Dtls_check=false -Dintrospection=disabled -Dvapi=disabled -Ddocs=disabled -Ddoc_tests=false -Dtests=false -Dautobahn=disabled -Dsysprof=disabled -Dpkcs11_tests=disabled ADDITIONAL_BINARIES "gio-querymodules = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gio-querymodules${CMAKE_EXECUTABLE_SUFFIX}'" "glib-compile-schemas = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-schemas${CMAKE_EXECUTABLE_SUFFIX}'" "glib-compile-resources = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${CMAKE_EXECUTABLE_SUFFIX}'" "gdbus-codegen = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gdbus-codegen'" "glib-genmarshal = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" "glib-mkenums = '${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libsoup/vcpkg.json ================================================ { "name": "libsoup", "version": "3.6.6", "description": "HTTP Library for GLib", "homepage": "https://libsoup.gnome.org/", "license": "LGPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "glib", { "name": "glib", "host": true }, "glib-networking", "libpsl", "nghttp2", { "name": "sqlite3", "default-features": false }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libspatialindex/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libspatialindex/libspatialindex REF "${VERSION}" SHA512 564af5b443c8d8231a026d59154cfaba939ecc1d555f4108e305645c5290c75bd4ed4286bd296dc12a7f2a0c05192b803e3f3c120538bac676e2f5bccdf034ba HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" WINDOWS_USE_MSBUILD OPTIONS -DCMAKE_DEBUG_POSTFIX=d -DSIDX_BUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() #Debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libspatialindex/vcpkg.json ================================================ { "name": "libspatialindex", "version": "2.1.0", "description": "C++ implementation of R*-tree, an MVR-tree and a TPR-tree with C API.", "homepage": "https://libspatialindex.org/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libspatialite/android-builtin-iconv.diff ================================================ diff --git a/src/gaiaaux/gg_utf8.c b/src/gaiaaux/gg_utf8.c index f11e604..620696e 100644 --- a/src/gaiaaux/gg_utf8.c +++ b/src/gaiaaux/gg_utf8.c @@ -73,7 +73,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not MINGW32 - WIN32 */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ @@ -89,7 +89,7 @@ gaiaGetLocaleCharset () #if defined(__MINGW32__) || defined(_WIN32) return locale_charset (); #else /* not MINGW32 - WIN32 */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) return locale_charset (); #else /* neither Mac OsX nor Android */ return nl_langinfo (CODESET); diff --git a/src/gaiageo/gg_shape.c b/src/gaiageo/gg_shape.c index 8917535..e5e0240 100644 --- a/src/gaiageo/gg_shape.c +++ b/src/gaiageo/gg_shape.c @@ -75,7 +75,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not MINGW32 */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ ================================================ FILE: ports/libspatialite/fix-linux-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index ead87caff..47abb90f0 100644 --- a/configure.ac +++ b/configure.ac @@ -302,6 +302,7 @@ if test x"$enable_geos" != "xno"; then #----------------------------------------------------------------------- # --with-geosconfig # + if 0; then AC_ARG_WITH([geosconfig], [AS_HELP_STRING([--with-geosconfig=FILE], [specify an alternative geos-config file])], [GEOSCONFIG="$withval"], [GEOSCONFIG=""]) @@ -327,14 +328,17 @@ if test x"$enable_geos" != "xno"; then # Ensure that we can parse geos_c.h CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$GEOS_CFLAGS" + fi AC_CHECK_HEADERS([geos_c.h],, [AC_MSG_ERROR([could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig])]) + if 0; then CPPFLAGS="$CPPFLAGS_SAVE" # Ensure we can link against libgeos_c LIBS_SAVE="$LIBS" LIBS="$GEOS_LDFLAGS" AC_SEARCH_LIBS(GEOSCoveredBy,geos_c,,AC_MSG_ERROR([could not find libgeos_c (or obsolete 'libgeos_c' < v.3.3.0 found) - you may need to specify the directory of a geos-config file using --with-geosconfig])) LIBS="$LIBS_SAVE" LIBS="$LIBS $GEOS_LDFLAGS -lgeos_c" + fi #----------------------------------------------------------------------- # --enable-controlpoints ================================================ FILE: ports/libspatialite/fix-makefiles.patch ================================================ diff --git a/makefile.vc b/makefile.vc index 9ae0b83..2a80b03 100644 --- a/makefile.vc +++ b/makefile.vc @@ -100,7 +100,8 @@ CFLAGS = /nologo -I.\src\headers -I.\src\topology \ default: all -all: spatialite.lib spatialite_i.lib +WANT_LIB = spatialite.lib +all: $(WANT_LIB) #$(EXIF_LOADER_EXE) spatialite.lib: $(LIBOBJ) @@ -112,10 +113,7 @@ $(SPATIALITE_DLL): spatialite_i.lib spatialite_i.lib: $(LIBOBJ) link /dll /out:$(SPATIALITE_DLL) \ /implib:spatialite_i.lib $(LIBOBJ) \ - C:\OSGeo4W\lib\proj_i.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4w\lib\freexl_i.lib C:\OSGeo4w\lib\iconv.lib \ - C:\OSGeo4W\lib\sqlite3_i.lib C:\OSGeo4W\lib\zlib.lib \ - C:\OSGeo4W\lib\libxml2.lib C:\OSGeo4W\lib\librttopo.lib + $(LIBS) if exist $(SPATIALITE_DLL).manifest mt -manifest \ $(SPATIALITE_DLL).manifest -outputresource:$(SPATIALITE_DLL);2 @@ -146,12 +144,14 @@ clean: install: all -mkdir $(INSTDIR) - -mkdir $(INSTDIR)\bin -mkdir $(INSTDIR)\lib -mkdir $(INSTDIR)\include -mkdir $(INSTDIR)\include\spatialite +!IF "$(WANT_LIB)" == "spatialite_i.lib" + -mkdir $(INSTDIR)\bin copy *.dll $(INSTDIR)\bin - copy *.lib $(INSTDIR)\lib +!ENDIF + copy /Y $(WANT_LIB) $(INSTDIR)\lib\spatialite.lib copy src\headers\spatialite.h $(INSTDIR)\include copy src\headers\spatialite\*.h $(INSTDIR)\include\spatialite ================================================ FILE: ports/libspatialite/fix-mingw.patch ================================================ diff --color -ur a/configure.ac b/configure.ac --- a/configure.ac 2022-07-21 17:23:50.490298108 +0200 +++ b/configure.ac 2022-07-21 17:25:45.671489524 +0200 @@ -116,7 +116,6 @@ # Checks for installed libraries # AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm) -AC_CHECK_LIB(z,inflateInit_,,AC_MSG_ERROR(['libz' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile \ src/Makefile \ ================================================ FILE: ports/libspatialite/fix-utf8-source.patch ================================================ diff --git a/src/srsinit/epsg_inlined_21.c b/src/srsinit/epsg_inlined_21.c index 94aa9d4..457b38a 100644 --- a/src/srsinit/epsg_inlined_21.c +++ b/src/srsinit/epsg_inlined_21.c @@ -619,9 +619,9 @@ initialize_epsg_21 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 27, "lic, Chad, Chile, China, Christmas Island, Cocos (Keelin"); add_srs_wkt (p, 28, - "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, C"); + "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, Cô"); add_srs_wkt (p, 29, - "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); + "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); add_srs_wkt (p, 30, "us, Czechia, Denmark, Djibouti, Dominica, Dominican Repu"); add_srs_wkt (p, 31, diff --git a/src/srsinit/epsg_inlined_25.c b/src/srsinit/epsg_inlined_25.c index 1071eb1..a09cb8c 100644 --- a/src/srsinit/epsg_inlined_25.c +++ b/src/srsinit/epsg_inlined_25.c @@ -3180,9 +3180,9 @@ initialize_epsg_25 (int filter, struct epsg_defs **first, struct epsg_defs **las add_srs_wkt (p, 26, "lic, Chad, Chile, China, Christmas Island, Cocos (Keelin"); add_srs_wkt (p, 27, - "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, C"); + "g) Islands, Comoros, Congo, Cook Islands, Costa Rica, Cô"); add_srs_wkt (p, 28, - "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); + "te d'Ivoire (Ivory Coast), Croatia, Cuba, Curacao, Cypr"); add_srs_wkt (p, 29, "us, Czechia, Denmark, Djibouti, Dominica, Dominican Repu"); add_srs_wkt (p, 30, ================================================ FILE: ports/libspatialite/gaiaconfig-msvc.patch ================================================ diff --git a/src/headers/spatialite/gaiaconfig-msvc.h b/src/headers/spatialite/gaiaconfig-msvc.h index 37f0bd1..0053258 100644 --- a/src/headers/spatialite/gaiaconfig-msvc.h +++ b/src/headers/spatialite/gaiaconfig-msvc.h @@ -2,7 +2,7 @@ /* ./src/headers/spatialite/gaiaconfig-msvc.h.in - manually maintained */ /* Should be defined in order to enable GCP support. */ -#define ENABLE_GCP 1 +// #define ENABLE_GCP 1 /* Should be defined in order to enable GeoPackage support. */ #define ENABLE_GEOPACKAGE 1 @@ -11,7 +11,7 @@ #define ENABLE_LIBXML2 1 /* Should be defined in order to enable RTTOPO support. */ -#define ENABLE_RTTOPO 1 +// #define ENABLE_RTTOPO 1 /* Should be defined in order to enable GEOS_370 support. */ #define GEOS_370 1 @@ -32,7 +32,7 @@ /* #undef OMIT_FREEXL */ /* Should be defined in order to disable GEOCALLBACKS support. */ -#define OMIT_GEOCALLBACKS 1 +// #define OMIT_GEOCALLBACKS 1 /* Should be defined in order to disable GEOS support. */ /* #undef OMIT_GEOS */ ================================================ FILE: ports/libspatialite/libxml2-no-http.diff ================================================ diff --git a/configure.ac b/configure.ac index 3a4f288..d9ba65f 100644 --- a/configure.ac +++ b/configure.ac @@ -441,6 +441,15 @@ if test x"$enable_libxml2" != "xno"; then AC_SUBST(LIBXML2_CFLAGS) AC_SUBST(LIBXML2_LIBS) AC_DEFINE(ENABLE_LIBXML2) + LIBS_SAVE="$LIBS" + LIBS="$LIBXML2_LIBS" + AC_SEARCH_LIBS(xmlNanoHTTPCleanup, [], [has_nanohttp="yes"], [has_nanohttp="no"]) + if test "x$has_nanohttp" != "xno"; then + CPPFLAGS="$CFLAGS -DLIBXML2_HAS_NANOHTTP" + else + AC_MSG_WARN([No http support found in 'libxml2']) + fi + LIBS="$LIBS_SAVE" fi #----------------------------------------------------------------------- diff --git a/src/wfs/wfs_in.c b/src/wfs/wfs_in.c index fe07a0d..93dd778 100644 --- a/src/wfs/wfs_in.c +++ b/src/wfs/wfs_in.c @@ -4637,7 +4637,9 @@ SPATIALITE_DECLARE void reset_wfs_http_connection (void) { /* Resets the libxml2 "nano HTTP": useful when changing the HTTP_PROXY settings */ +#if defined LIBXML2_HAS_NANOHTTP /* removed in 2.15.0, and optional before */ xmlNanoHTTPCleanup (); +#endif } #else /* LIBXML2 isn't enabled */ ================================================ FILE: ports/libspatialite/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${VERSION}.tar.gz" FILENAME "libspatialite-${VERSION}.tar.gz" SHA512 2745b373e31cea58623224def6090c491b58409803bb71231450dfa2cfdf3aafc3fc6f680585d55d085008f8cf362c3062ae67ffc7d80257775a22eb81ef1e57 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-makefiles.patch fix-linux-configure.patch gaiaconfig-msvc.patch fix-mingw.patch fix-utf8-source.patch android-builtin-iconv.diff # https://groups.google.com/g/spatialite-users/c/FLBqJNIDkNQ # https://groups.google.com/g/spatialite-users/c/nyT4iAJbttY libxml2-no-http.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS unused FEATURES freexl ENABLE_FREEXL gcp ENABLE_GCP rttopo ENABLE_RTTOPO ) set(pkg_config_modules geos libxml-2.0 proj sqlite3 zlib) if(ENABLE_FREEXL) list(APPEND pkg_config_modules freexl) endif() if(ENABLE_RTTOPO) list(APPEND pkg_config_modules rttopo) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) x_vcpkg_pkgconfig_get_modules( PREFIX PKGCONFIG MODULES --msvc-syntax ${pkg_config_modules} CFLAGS LIBS ) # cherry-picked from Makefile.vc (CFLAGS) and nmake.opt (OPTFLAGS) set(CFLAGS "/fp:precise /W4 /D_CRT_SECURE_NO_WARNINGS /DYY_NO_UNISTD_H -I./src/headers -I./src/topology -I.") set(WANT_LIB spatialite.lib) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(APPEND CFLAGS " /DDLL_EXPORT") set(WANT_LIB spatialite_i.lib) endif() if(NOT ENABLE_FREEXL) string(APPEND CFLAGS " /DOMIT_FREEXL") endif() if(ENABLE_GCP) string(APPEND CFLAGS " /DENABLE_GCP") endif() if(ENABLE_RTTOPO) string(APPEND CFLAGS " /DENABLE_RTTOPO") endif() set(SYSTEM_LIBS "iconv.lib charset.lib") file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR) vcpkg_install_nmake( SOURCE_PATH "${SOURCE_PATH}" CL_LANGUAGE C OPTIONS "WANT_LIB=${WANT_LIB}" OPTIONS_RELEASE "CFLAGS=${CFLAGS} ${PKGCONFIG_CFLAGS_RELEASE}" "LIBS=${PKGCONFIG_LIBS_RELEASE} ${SYSTEM_LIBS}" "INSTDIR=${INST_DIR}" OPTIONS_DEBUG "CFLAGS=${CFLAGS} ${PKGCONFIG_CFLAGS_DEBUG}" "LIBS=${PKGCONFIG_LIBS_DEBUG} ${SYSTEM_LIBS}" "INSTDIR=${INST_DIR}\\debug" ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(GLOB_RECURSE headers "${CURRENT_PACKAGES_DIR}/include/*.h") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") foreach(file IN LISTS headers) vcpkg_replace_string("${file}" "#ifdef DLL_EXPORT" "#if 0" IGNORE_UNCHANGED) endforeach() else() foreach(file IN LISTS headers) vcpkg_replace_string("${file}" "#ifdef DLL_EXPORT" "#if 1" IGNORE_UNCHANGED) vcpkg_replace_string("${file}" "__declspec(dllexport)" "__declspec(dllimport)" IGNORE_UNCHANGED) endforeach() endif() set(infile "${SOURCE_PATH}/spatialite.pc.in") set(libdir [[${prefix}/lib]]) set(exec_prefix [[${prefix}]]) list(JOIN pkg_config_modules " " requires_private) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(includedir [[${prefix}/include]]) set(outfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/spatialite.pc") configure_file("${infile}" "${outfile}" @ONLY) vcpkg_replace_string("${outfile}" "Libs:" "Requires.private: ${requires_private}\nLibs.private: -liconv -lcharset\nLibs:") vcpkg_replace_string("${outfile}" " -lm" " ") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(includedir [[${prefix}/../include]]) set(outfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/spatialite.pc") configure_file("${infile}" "${outfile}" @ONLY) vcpkg_replace_string("${outfile}" "Libs:" "Requires.private: ${requires_private}\nLibs.private: -liconv -lcharset\nLibs:") vcpkg_replace_string("${outfile}" " -lm" " ") endif() else() if(ENABLE_FREEXL) set(FREEXL_OPTION "--enable-freexl") else() set(FREEXL_OPTION "--disable-freexl") endif() if(ENABLE_GCP) set(GCP_OPTION "--enable-gcp") else() set(GCP_OPTION "--disable-gcp") endif() if(ENABLE_GEOCALLBACKS) set(GEOCALLBACKS_OPTION "--enable-geocallbacks") else() set(GEOCALLBACKS_OPTION "--disable-geocallbacks") endif() if(ENABLE_RTTOPO) set(RTTOPO_OPTION "--enable-rttopo") else() set(RTTOPO_OPTION "--disable-rttopo") endif() list(REMOVE_ITEM pkg_config_modules libxml2) # handled properly by configure x_vcpkg_pkgconfig_get_modules( PREFIX PKGCONFIG MODULES ${pkg_config_modules} LIBS ) if(VCPKG_TARGET_IS_MINGW) # Avoid system libs (as detected by cmake) in exported pc files set(SYSTEM_LIBS "") elseif(VCPKG_TARGET_IS_ANDROID) set(SYSTEM_LIBS "\$LIBS -llog") else() set(SYSTEM_LIBS "\$LIBS") endif() # libspatialite needs some targets literally if(VCPKG_TARGET_IS_ANDROID) set(TARGET_ALIAS "--target=android") elseif(VCPKG_TARGET_IS_MINGW) set(TARGET_ALIAS "--target=mingw32") elseif(VCPKG_TARGET_IS_OSX) set(TARGET_ALIAS "--target=macosx") else() set(TARGET_ALIAS "") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${TARGET_ALIAS} ${FREEXL_OPTION} ${GCP_OPTION} ${RTTOPO_OPTION} "--disable-examples" "--disable-minizip" "cross_compiling=yes" # avoid conftest rpath trouble OPTIONS_DEBUG "LIBS=${PKGCONFIG_LIBS_DEBUG} ${SYSTEM_LIBS}" OPTIONS_RELEASE "LIBS=${PKGCONFIG_LIBS_RELEASE} ${SYSTEM_LIBS}" ) # automake adds the basedir of the generated config to `DEFAULT_INCLUDES`, # but libspatialite uses `#include `. file(GLOB_RECURSE makefiles "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Makefile" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Makefile" ) foreach(makefile IN LISTS makefiles) vcpkg_replace_string("${makefile}" " -I$(top_builddir)/./src/headers/spatialite" " -I$(top_builddir)/./src/headers" IGNORE_UNCHANGED) endforeach() vcpkg_make_install() if(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/plugins/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/mod_spatialite.dll" "${CURRENT_PACKAGES_DIR}/plugins/${PORT}/mod_spatialite.dll") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/mod_spatialite.dll" "${CURRENT_PACKAGES_DIR}/debug/plugins/${PORT}/mod_spatialite.dll") endif() endif() endif() vcpkg_fixup_pkgconfig() # Handle copyright set(outfile "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") if(NOT ENABLE_GCP AND NOT ENABLE_RTTOPO) file(READ "${SOURCE_PATH}/COPYING" mpl) file(WRITE "${outfile}" "SpatiaLite[${FEATURES}] is licensed under the MPL tri-license terms;\n" "you are free to choose the best-fit license between:\n" "- the MPL 1.1\n" "- the GPL v2.0 or any subsequent version\n" "- the LGPL v2.1 or any subsequent version.\n\n" "# MPL 1.1 (from COPYING)\n\n" "${mpl}\n" ) else() file(WRITE "${outfile}" "SpatiaLite[${FEATURES}] is licensed under:\n" "the GPL v2.0 or any subsequent version.\n\n" ) endif() file(READ "${SOURCE_PATH}/src/control_points/COPYING" gpl) file(APPEND "${outfile}" "# GPL v2.0 (from src/control_points/COPYING)\n\n" "${gpl}\n" ) ================================================ FILE: ports/libspatialite/vcpkg.json ================================================ { "name": "libspatialite", "version": "5.1.0", "port-version": 6, "description": "SpatiaLite is an open source library intended to extend the SQLite core to support fully fledged Spatial SQL capabilities.", "homepage": "https://www.gaia-gis.it/fossil/libspatialite/index", "license": null, "supports": "!uwp", "dependencies": [ "geos", "libiconv", { "name": "libxml2", "default-features": false }, "proj", { "name": "sqlite3", "default-features": false, "features": [ "rtree" ] }, { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ], "default-features": [ "freexl" ], "features": { "freexl": { "description": "FreeXL spreadsheet file support.", "dependencies": [ "freexl" ] }, "gcp": { "description": "Ground control points support. This feature reduces the license options to GPLv2+." }, "rttopo": { "description": "RTTOPO support. This feature reduces the license options to GPLv2+.", "dependencies": [ "librttopo" ] } } } ================================================ FILE: ports/libspnav/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO FreeSpacenav/libspnav REF libspnav-0.2.3 # v0.2.3 seems to be outdated. libspnav-0.2.3 is the same as 0.2.3 on their sourceforge SHA512 6c06344813ddf7e2bc7981932b4a901334de2b91d8c3abb23828869070dc73ed1c19c5bf7ff9338cc673c8f0dc7394608652afd0cdae093149c0a24460f0a8fb HEAD_REF master ) vcpkg_make_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS_DEBUG "--enable-debug" OPTIONS_RELEASE "--disable-debug" ) vcpkg_make_install() macro(CLEANUP WHERE) set(WORKDIR ${CURRENT_PACKAGES_DIR}/${WHERE}) if ("${WHERE}" STREQUAL "debug") file(REMOVE_RECURSE ${WORKDIR}/include) endif () file(REMOVE ${WORKDIR}/lib/libspnav.so) file(REMOVE ${WORKDIR}/lib/libspnav.so.0) file(RENAME ${WORKDIR}/lib/libspnav.so.0.1 ${WORKDIR}/lib/libspnav.so) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE ${WORKDIR}/lib/libspnav.so) else () file(REMOVE ${WORKDIR}/lib/libspnav.a) endif () endmacro() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") cleanup("") endif () if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") cleanup("debug") endif () file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright ) ================================================ FILE: ports/libspnav/vcpkg.json ================================================ { "name": "libspnav", "version": "0.2.3", "port-version": 3, "description": "Library for communicating with spacenavd or 3dxsrv to get input from 6-dof devices.", "homepage": "https://github.com/FreeSpacenav/libspnav", "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libspng/fix-spngconfig-cmake.patch ================================================ diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index d0123db..5756179 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,5 +1,6 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) find_dependency(ZLIB REQUIRED) include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") ================================================ FILE: ports/libspng/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO randy408/libspng REF "v${VERSION}" SHA512 cd729653599ed97f80d19f3048c1b3bc2ac16f922b3465804b1913bc45d9fc8b28b56bc2121fda36e9d3dcdd12612cced5383313b722a5342b613f8781879f1a HEAD_REF master PATCHES fix-spngconfig-cmake.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SPNG_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SPNG_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPNG_STATIC=${SPNG_BUILD_STATIC} -DSPNG_SHARED=${SPNG_BUILD_SHARED} -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/spng PACKAGE_NAME spng) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libspng/usage ================================================ libspng provides CMake targets: find_package(SPNG CONFIG REQUIRED) target_link_libraries(main PRIVATE $,spng::spng,spng::spng_static>) ================================================ FILE: ports/libspng/vcpkg.json ================================================ { "name": "libspng", "version": "0.7.4", "description": "Simple, modern libpng alternative", "homepage": "https://github.com/randy408/libspng", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libsquish/cmake-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a36e574..6f137d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,9 +9,9 @@ # Unix and VS: SSE2 support is enabled by default # use BUILD_SQUISH_WITH_SSE2 and BUILD_SQUISH_WITH_ALTIVEC to override -PROJECT(squish) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) -CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3) +PROJECT(squish) OPTION(BUILD_SQUISH_WITH_OPENMP "Build with OpenMP." ON) ================================================ FILE: ports/libsquish/export-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a3ecdde..6aa9e64 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,6 +75,8 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_LIBRARY(squish ${SQUISH_SRCS} ${SQUISH_HDRS}) +TARGET_INCLUDE_DIRECTORIES(squish PUBLIC $) + INCLUDE(GenerateExportHeader) GENERATE_EXPORT_HEADER(squish EXPORT_FILE_NAME ${CMAKE_CURRENT_SOURCE_DIR}/squish_export.h @@ -120,8 +122,14 @@ INCLUDE(GNUInstallDirs) INSTALL( TARGETS squish + EXPORT unofficial-libsquishConfig LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) + +INSTALL(EXPORT unofficial-libsquishConfig + NAMESPACE unofficial::libsquish:: + DESTINATION share/unofficial-libsquish +) ================================================ FILE: ports/libsquish/fix-export-symbols.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a36e574..a3ecdde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,6 +75,13 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) ADD_LIBRARY(squish ${SQUISH_SRCS} ${SQUISH_HDRS}) +INCLUDE(GenerateExportHeader) +GENERATE_EXPORT_HEADER(squish + EXPORT_FILE_NAME ${CMAKE_CURRENT_SOURCE_DIR}/squish_export.h + ) + +list(APPEND SQUISH_HDRS "squish_export.h") + SET_TARGET_PROPERTIES( squish PROPERTIES PUBLIC_HEADER "${SQUISH_HDRS}" @@ -109,9 +116,12 @@ IF (BUILD_SQUISH_EXTRA) ENDIF (PNG_FOUND) ENDIF (BUILD_SQUISH_EXTRA) +INCLUDE(GNUInstallDirs) + INSTALL( TARGETS squish - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - PUBLIC_HEADER DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/squish.h b/squish.h index 14c9bb5..aaffbb2 100644 --- a/squish.h +++ b/squish.h @@ -26,6 +26,8 @@ #ifndef SQUISH_H #define SQUISH_H +#include "squish_export.h" + //! All squish API functions live in this namespace. namespace squish { @@ -115,5 +117,5 @@ */ -void CompressMasked( u8 const* rgba, int mask, void* block, int flags, float* metric = 0 ); +SQUISH_EXPORT void CompressMasked( u8 const* rgba, int mask, void* block, int flags, float* metric = 0 ); // ----------------------------------------------------------------------------- @@ -176,7 +178,7 @@ inline void Compress( u8 const* rgba, void* block, int flags, float* metric = 0 however, DXT1 will be used by default if none is specified. All other flags are ignored. */ -void Decompress( u8* rgba, void const* block, int flags ); +SQUISH_EXPORT void Decompress( u8* rgba, void const* block, int flags ); // ----------------------------------------------------------------------------- @@ -194,7 +196,7 @@ void Decompress( u8* rgba, void const* block, int flags ); function supports arbitrary size images by allowing the outer blocks to be only partially used. */ -int GetStorageRequirements( int width, int height, int flags ); +SQUISH_EXPORT int GetStorageRequirements( int width, int height, int flags ); // ----------------------------------------------------------------------------- @@ -249,8 +251,8 @@ int GetStorageRequirements( int width, int height, int flags ); Windows platform but for other platforms like MacOS X a different gamma value may be more suitable. */ -void CompressImage( u8 const* rgba, int width, int height, int pitch, void* blocks, int flags, float* metric = 0 ); -void CompressImage( u8 const* rgba, int width, int height, void* blocks, int flags, float* metric = 0 ); +SQUISH_EXPORT void CompressImage( u8 const* rgba, int width, int height, int pitch, void* blocks, int flags, float* metric = 0 ); +SQUISH_EXPORT void CompressImage( u8 const* rgba, int width, int height, void* blocks, int flags, float* metric = 0 ); // ----------------------------------------------------------------------------- @@ -274,8 +276,8 @@ void CompressImage( u8 const* rgba, int width, int height, void* blocks, int fla Internally this function calls squish::Decompress for each block. */ -void DecompressImage( u8* rgba, int width, int height, int pitch, void const* blocks, int flags ); -void DecompressImage( u8* rgba, int width, int height, void const* blocks, int flags ); +SQUISH_EXPORT void DecompressImage( u8* rgba, int width, int height, int pitch, void const* blocks, int flags ); +SQUISH_EXPORT void DecompressImage( u8* rgba, int width, int height, void const* blocks, int flags ); // ----------------------------------------------------------------------------- @@ -299,8 +301,8 @@ void DecompressImage( u8* rgba, int width, int height, void const* blocks, int f Internally this function calls squish::Decompress for each block. */ -void ComputeMSE(u8 const *rgba, int width, int height, int pitch, u8 const *dxt, int flags, double &colourMSE, double &alphaMSE); -void ComputeMSE(u8 const *rgba, int width, int height, u8 const *dxt, int flags, double &colourMSE, double &alphaMSE); +SQUISH_EXPORT void ComputeMSE(u8 const *rgba, int width, int height, int pitch, u8 const *dxt, int flags, double &colourMSE, double &alphaMSE); +SQUISH_EXPORT void ComputeMSE(u8 const *rgba, int width, int height, u8 const *dxt, int flags, double &colourMSE, double &alphaMSE); // ----------------------------------------------------------------------------- ================================================ FILE: ports/libsquish/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO libsquish FILENAME "libsquish-1.15.tgz" NO_REMOVE_ONE_LEVEL SHA512 5b569b7023874c7a43063107e2e428ea19e6eb00de045a4a13fafe852ed5402093db4b65d540b5971ec2be0d21cb97dfad9161ebfe6cf6e5376174ff6c6c3e7a PATCHES fix-export-symbols.patch export-target.patch cmake-version.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sse2 BUILD_SQUISH_WITH_SSE2 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DBUILD_SQUISH_WITH_OPENMP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libsquish CONFIG_PATH share/unofficial-libsquish) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsquish/vcpkg.json ================================================ { "name": "libsquish", "version": "1.15", "port-version": 15, "description": "Open source DXT compression library.", "homepage": "https://sourceforge.net/projects/libsquish/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "sse2": { "description": "Build with SSE2", "supports": "osx & x64" } } } ================================================ FILE: ports/libsrt/fix-static.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f08b6a..88e636b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1026,20 +1026,7 @@ endif() if (srt_libspec_static) add_library(${TARGET_srt}_static STATIC ${OBJECT_LIB_SUPPORT} ${VIRTUAL_srt}) - - # For Windows, leave the name to be "srt_static.lib". - # Windows generates two different library files: - # - a usual static library for static linkage - # - a shared library exposer, which allows pre-resolution and later dynamic - # linkage when running the executable - # Both having unfortunately the same names created by MSVC compiler. - # It's not the case of Cygwin/MINGW - they are named there libsrt.a and libsrt.dll.a - if (MICROSOFT) - # Keep _static suffix. By unknown reason, the name must still be set explicitly. - set_property(TARGET ${TARGET_srt}_static PROPERTY OUTPUT_NAME ${TARGET_srt}_static) - else() - set_property(TARGET ${TARGET_srt}_static PROPERTY OUTPUT_NAME ${TARGET_srt}) - endif() + set_property(TARGET ${TARGET_srt}_static PROPERTY OUTPUT_NAME ${TARGET_srt}) list (APPEND INSTALL_TARGETS ${TARGET_srt}_static) if (ENABLE_ENCRYPTION) ================================================ FILE: ports/libsrt/fix-tool.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ed11ef..794028a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1384,11 +1384,13 @@ if (ENABLE_APPS) # Applications - srt_add_application(srt-live-transmit ${VIRTUAL_srtsupport}) + srt_add_application(srt-live-transmit ${VIRTUAL_srtsupport} ${VIRTUAL_srt}) + target_link_libraries(srt-live-transmit ${SSL_LIBRARIES}) if (DEFINED EXTRA_stransmit) set_target_properties(srt-live-transmit PROPERTIES COMPILE_FLAGS "${EXTRA_stransmit}") endif() - srt_add_application(srt-file-transmit ${VIRTUAL_srtsupport}) + srt_add_application(srt-file-transmit ${VIRTUAL_srtsupport} ${VIRTUAL_srt}) + target_link_libraries(srt-file-transmit ${SSL_LIBRARIES}) if (MINGW) # FIXME: with MINGW, it fails to build apps that require C++11 @@ -1397,7 +1399,8 @@ if (ENABLE_APPS) else() # srt-multiplex temporarily blocked #srt_add_application(srt-multiplex ${VIRTUAL_srtsupport}) - srt_add_application(srt-tunnel ${VIRTUAL_srtsupport}) + srt_add_application(srt-tunnel ${VIRTUAL_srtsupport} ${VIRTUAL_srt}) + target_link_libraries(srt-tunnel ${SSL_LIBRARIES}) endif() if (ENABLE_TESTING) ================================================ FILE: ports/libsrt/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1492306..69287ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1182,7 +1182,11 @@ endif() # if your build requires it, you'd probably remove -lstdc++ from the list # obtained by `pkg-config --libs`. if(ENABLE_CXX_DEPS) + cmake_policy(SET CMP0057 NEW) foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) + if(LIB IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + endif() if((IS_ABSOLUTE ${LIB} AND EXISTS ${LIB}) OR (${LIB} MATCHES "^-l")) set(SRT_LIBS_PRIVATE ${SRT_LIBS_PRIVATE} ${LIB}) else() ================================================ FILE: ports/libsrt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Haivision/srt REF "v${VERSION}" SHA512 ec4e5923531a8a7fd7778c739cb52208d24a91c569f31f3995d6e0695dffd83492e5eca2530b2e112ca37f1fd4520061d89ef42d1ded95e2516a9acda009bcaf HEAD_REF master PATCHES fix-static.patch pkgconfig.diff fix-tool.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" KEYSTONE_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KEYSTONE_BUILD_SHARED) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool ENABLE_APPS bonding ENABLE_BONDING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_CXX11=ON -DENABLE_STATIC=${KEYSTONE_BUILD_STATIC} -DENABLE_SHARED=${KEYSTONE_BUILD_SHARED} -DENABLE_UNITTESTS=OFF -DUSE_OPENSSL_PC=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(ENABLE_APPS) if(NOT VCPKG_TARGET_IS_MINGW) vcpkg_copy_tools(TOOL_NAMES srt-tunnel AUTO_CLEAN) endif() vcpkg_copy_tools(TOOL_NAMES srt-file-transmit srt-live-transmit AUTO_CLEAN) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/srt-ffplay" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/srt-ffplay") endif() if(KEYSTONE_BUILD_STATIC OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") else() file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/srt-ffplay" "${CURRENT_PACKAGES_DIR}/debug/bin/srt-ffplay") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/srt/srt.h" "#ifdef SRT_DYNAMIC" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libsrt/vcpkg.json ================================================ { "name": "libsrt", "version": "1.5.4", "description": "Secure Reliable Transport (SRT) is an open source transport technology that optimizes streaming performance across unpredictable networks, such as the Internet.", "homepage": "https://github.com/Haivision/srt", "license": "MPL-2.0", "supports": "!uwp & !xbox", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bonding": { "description": "Enables the Connection Bonding feature" }, "tool": { "description": "Builds libsrt executable" } } } ================================================ FILE: ports/libsrtp/cmake-config.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a08247a..7ccbf85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -285,7 +285,7 @@ target_include_directories(srtp2 PUBLIC ) if(ENABLE_OPENSSL) target_include_directories(srtp2 PRIVATE ${OPENSSL_INCLUDE_DIR}) - target_link_libraries(srtp2 OpenSSL::Crypto) + target_link_libraries(srtp2 PRIVATE OpenSSL::Crypto) elseif(ENABLE_MBEDTLS) target_include_directories(srtp2 PRIVATE ${MBEDTLS_INCLUDE_DIRS}) target_link_libraries(srtp2 ${MBEDTLS_LIBRARIES}) @@ -294,7 +294,7 @@ elseif(ENABLE_NSS) target_link_libraries(srtp2 ${NSS_LIBRARIES}) endif() if(WIN32) - target_link_libraries(srtp2 ws2_32) + target_link_libraries(srtp2 PRIVATE ws2_32) target_compile_definitions(srtp2 PUBLIC _CRT_SECURE_NO_WARNINGS) endif() @@ -491,7 +491,7 @@ include(CMakePackageConfigHelpers) # Generate the config file that is includes the exports configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/libSRTPConfig.cmake" - INSTALL_DESTINATION "${CONFIG_FILE_DIR}" + INSTALL_DESTINATION lib/cmake/libSRTP NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO ) diff --git a/Config.cmake.in b/Config.cmake.in index 0ad9b17..c9ce5a7 100644 --- a/Config.cmake.in +++ b/Config.cmake.in @@ -1,3 +1,8 @@ @PACKAGE_INIT@ +if("@ENABLE_OPENSSL@") + include(CMakeFindDependencyMacro) + find_dependency(OpenSSL) +endif() + include ( "${CMAKE_CURRENT_LIST_DIR}/libSRTPTargets.cmake" ) ================================================ FILE: ports/libsrtp/cmake-project-include.cmake ================================================ if(MSVC) string(APPEND CMAKE_CFLAGS " /wd4703") endif() block(SCOPE_FOR VARIABLES) set(prefix [[${pcfiledir}/../..]]) set(libdir [[${prefix}/lib]]) set(includedir [[${prefix}/include]]) set(PACKAGE_NAME "${PROJECT_NAME}") set(PACKAGE_VERSION "${PROJECT_VERSION}") set(LIBS "") if(WIN32) set(LIBS "-lws2_32") endif() configure_file("${PROJECT_SOURCE_DIR}/libsrtp2.pc.in" "${PROJECT_BINARY_DIR}/libsrtp2.pc" @ONLY) if(ENABLE_OPENSSL) file(APPEND "${PROJECT_BINARY_DIR}/libsrtp2.pc" "Requires.private: libcrypto") endif() install(FILES "${PROJECT_BINARY_DIR}/libsrtp2.pc" DESTINATION "lib/pkgconfig") endblock() ================================================ FILE: ports/libsrtp/fix-runtime-destination.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d548e78..4a839e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -262,6 +262,7 @@ endif() install(TARGETS srtp2 DESTINATION lib EXPORT libSRTPTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) install(FILES include/srtp.h crypto/include/auth.h ================================================ FILE: ports/libsrtp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cisco/libsrtp REF "v${VERSION}" SHA512 6768f7976e5cc14a3bf2e9fc32042cab0b964f616fe5654516643a649a5d5f2b9ecb9e996467dd6d337777a9051b83a6e95f3cdc27e945062ce6da1cf8a2d462 PATCHES cmake-config.diff fix-runtime-destination.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl ENABLE_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DLIBSRTP_TEST_APPS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libSRTP) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libsrtp/vcpkg.json ================================================ { "name": "libsrtp", "version": "2.8.0", "description": "This package provides an implementation of the Secure Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel.", "homepage": "https://github.com/cisco/libsrtp/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openssl": { "description": "Enable OpenSSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/libssh/0001-export-pkgconfig-file.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9877cd7..5177904 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,8 +42,11 @@ macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source buil set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") # search for libraries +set(PC_LIBS_PRIVATE "") +set(PC_REQUIRES_PRIVATE "") if (WITH_ZLIB) find_package(ZLIB REQUIRED) + string(APPEND PC_REQUIRES_PRIVATE "zlib") endif (WITH_ZLIB) if (WITH_GCRYPT) @@ -53,6 +56,7 @@ elseif(WITH_MBEDTLS) find_package(MbedTLS REQUIRED) else() find_package(OpenSSL 1.1.1 REQUIRED) + string(APPEND PC_REQUIRES_PRIVATE " libcrypto") endif() if (UNIT_TESTING) @@ -96,7 +100,7 @@ add_subdirectory(include) add_subdirectory(src) # pkg-config file -if (UNIX OR MINGW) +if (1) configure_file(libssh.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libssh.pc @ONLY) install( FILES @@ -106,7 +110,7 @@ install( COMPONENT pkgconfig ) -endif (UNIX OR MINGW) +endif (1) # CMake config files include(CMakePackageConfigHelpers) diff --git a/libssh.pc.cmake b/libssh.pc.cmake index f288b94..759525c 100644 --- a/libssh.pc.cmake +++ b/libssh.pc.cmake @@ -7,4 +7,6 @@ Name: @PROJECT_NAME@ Description: The SSH Library Version: @PROJECT_VERSION@ Libs: -L${libdir} -lssh +Libs.private: @PC_LIBS_PRIVATE@ +Requires.private: @PC_REQUIRES_PRIVATE@ Cflags: -I${includedir} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e0243bb..b17d9e2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -54,6 +54,8 @@ if (MINGW AND Threads_FOUND) ${LIBSSH_LINK_LIBRARIES} Threads::Threads ) + string(APPEND PC_LIBS_PRIVATE " ${CMAKE_THREAD_LIBS_INIT}") + set(PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}" PARENT_SCOPE) endif() # The ws2_32 needs to be last for mingw to build @@ -64,6 +66,8 @@ if (WIN32) iphlpapi ws2_32 ) + string(APPEND PC_LIBS_PRIVATE " -liphlpapi -lws2_32 -lshell32 -ladvapi32") + set(PC_LIBS_PRIVATE "${PC_LIBS_PRIVATE}" PARENT_SCOPE) endif (WIN32) if (BUILD_STATIC_LIB) ================================================ FILE: ports/libssh/0003-no-source-write.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e97c900..0b676dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,9 +213,7 @@ add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source DEPENDS ${_S get_directory_property(hasParent PARENT_DIRECTORY) if(NOT(hasParent)) # Link compile database for clangd if we are the master project - execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink - "${CMAKE_BINARY_DIR}/compile_commands.json" - "${CMAKE_SOURCE_DIR}/compile_commands.json") + endif() message(STATUS "********************************************") ================================================ FILE: ports/libssh/0004-file-permissions-constants.patch ================================================ diff --git a/src/misc.c b/src/misc.c index 774211f..33d37b4 100644 --- a/src/misc.c +++ b/src/misc.c @@ -24,6 +24,11 @@ #include "config.h" +#ifdef __ANDROID__ +#define _S_IWRITE S_IWUSR +#define S_IWRITE S_IWUSR +#endif + #ifndef _WIN32 /* This is needed for a standard getpwuid_r on opensolaris */ #define _POSIX_PTHREAD_SEMANTICS ================================================ FILE: ports/libssh/android-glob-tilde.diff ================================================ diff --git a/src/bind_config.c b/src/bind_config.c index 27c42c9..9e9c5f0 100644 --- a/src/bind_config.c +++ b/src/bind_config.c @@ -248,6 +248,9 @@ static void local_parse_glob(ssh_bind bind, int rt; u_int i; +#if defined(__ANDROID__) && !defined(GLOB_TILDE) + const int GLOB_TILDE = 0; +#endif rt = glob(fileglob, GLOB_TILDE, NULL, &globbuf); if (rt == GLOB_NOMATCH) { globfree(&globbuf); diff --git a/src/config.c b/src/config.c index c5c4012..72a9bdd 100644 --- a/src/config.c +++ b/src/config.c @@ -249,6 +249,9 @@ static void local_parse_glob(ssh_session session, int rt; size_t i; +#if defined(__ANDROID__) && !defined(GLOB_TILDE) + const int GLOB_TILDE = 0; +#endif rt = glob(fileglob, GLOB_TILDE, NULL, &globbuf); if (rt == GLOB_NOMATCH) { globfree(&globbuf); ================================================ FILE: ports/libssh/portfile.cmake ================================================ vcpkg_download_distfile(distfile URLS https://www.libssh.org/files/0.11/libssh-${VERSION}.tar.xz FILENAME libssh-${VERSION}.tar.xz SHA512 0670bee29a7cf5507dba7dd82b82cd8a926b83a43cee441fa8a698be2523b16aacb392433f9e63887bd72e6eb817667f6ef986f292f335d1856759af4ede40c4 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${distfile}" PATCHES 0001-export-pkgconfig-file.patch 0003-no-source-write.patch 0004-file-permissions-constants.patch android-glob-tilde.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pcap WITH_PCAP server WITH_SERVER zlib WITH_ZLIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON -DWITH_EXAMPLES=OFF -DWITH_GSSAPI=OFF -DWITH_NACL=OFF -DWITH_SYMBOL_VERSIONING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libssh/libssh.h" "#ifdef LIBSSH_STATIC" "#if 1" ) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libssh) file(READ "${CURRENT_PACKAGES_DIR}/share/libssh/libssh-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/libssh/libssh-config.cmake" " include(CMakeFindDependencyMacro) if(MINGW32) set(THREADS_PREFER_PTHREAD_FLAG ON) find_dependency(Threads) endif() find_dependency(OpenSSL) if(\"${WITH_ZLIB}\") find_dependency(ZLIB) endif() ${cmake_config}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libssh/vcpkg.json ================================================ { "name": "libssh", "version": "0.11.3", "description": "libssh is a multiplatform C library implementing the SSHv2 protocol on client and server side", "homepage": "https://www.libssh.org/", "license": "LGPL-2.1-only", "supports": "!uwp & !xbox", "dependencies": [ { "name": "openssl", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "pcap", "platform": "!android" }, { "name": "server", "platform": "!android" } ], "features": { "pcap": { "description": "SSH server support" }, "server": { "description": "Pcap generation support" }, "zlib": { "description": "zlib compression support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libssh2/cmake-config.diff ================================================ diff --git a/cmake/libssh2-config.cmake.in b/cmake/libssh2-config.cmake.in index edc86d7..fd53d55 100644 --- a/cmake/libssh2-config.cmake.in +++ b/cmake/libssh2-config.cmake.in @@ -22,10 +22,22 @@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") # Alias for either shared or static library if(NOT TARGET @PROJECT_NAME@::@LIB_NAME@) + if(CMAKE_VERSION VERSION_LESS "3.18.0") + # cannot add alias to non-global imported library + add_library(@PROJECT_NAME@::@LIB_NAME@ INTERFACE IMPORTED) + set_target_properties(@PROJECT_NAME@::@LIB_NAME@ PROPERTIES INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@LIB_SELECTED@) + else() add_library(@PROJECT_NAME@::@LIB_NAME@ ALIAS @PROJECT_NAME@::@LIB_SELECTED@) + endif() endif() # Compatibility alias if(NOT TARGET Libssh2::@LIB_NAME@) + if(CMAKE_VERSION VERSION_LESS "3.18.0") + # cannot add alias to non-global imported library + add_library(Libssh2::@LIB_NAME@ INTERFACE IMPORTED) + set_target_properties(Libssh2::@LIB_NAME@ PROPERTIES INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@LIB_SELECTED@) + else() add_library(Libssh2::@LIB_NAME@ ALIAS @PROJECT_NAME@::@LIB_SELECTED@) + endif() endif() ================================================ FILE: ports/libssh2/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b51ac6..d8d5701 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -310,6 +310,8 @@ if(CRYPTO_BACKEND STREQUAL "OpenSSL" OR NOT CRYPTO_BACKEND) list(APPEND LIBSSH2_LIBS OpenSSL::Crypto) list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE "libcrypto") + endif() + if(0) # covered by OpenSSL wrapper if(WIN32) # Statically linking to OpenSSL requires crypt32 for some Windows APIs. # This should really be handled by FindOpenSSL.cmake. diff --git a/cmake/libssh2-config.cmake.in b/cmake/libssh2-config.cmake.in index edc86d7..905e4a2 100644 --- a/cmake/libssh2-config.cmake.in +++ b/cmake/libssh2-config.cmake.in @@ -14,7 +14,7 @@ elseif("@CRYPTO_BACKEND@" STREQUAL "mbedTLS") find_dependency(MbedTLS) endif() -if(@ZLIB_FOUND@) +if(@ENABLE_ZLIB_COMPRESSION@) find_dependency(ZLIB) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 512c64e..c50ce6a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,7 +63,8 @@ if(ENABLE_ZLIB_COMPRESSION) find_package(ZLIB REQUIRED) list(APPEND libssh2_INCLUDE_DIRS ${ZLIB_INCLUDE_DIRS}) - list(APPEND LIBSSH2_LIBS ${ZLIB_LIBRARIES}) + # Avoid multi-config string. Same pattern as in curl. + list(APPEND LIBSSH2_LIBS ZLIB::ZLIB) list(APPEND LIBSSH2_PC_REQUIRES_PRIVATE "zlib") if(ZLIB_FOUND) list(APPEND _libssh2_definitions "LIBSSH2_HAVE_ZLIB") @@ -229,6 +230,7 @@ foreach(_libdir IN LISTS CMAKE_SYSTEM_PREFIX_PATH) endforeach() foreach(_libdir IN LISTS LIBSSH2_LIBDIRS) + cmake_path(SET _libdir NORMALIZE "${_libdir}") list(FIND _sys_libdirs "${_libdir}" _libdir_index) if(_libdir_index LESS 0) list(APPEND _ldflags "-L${_libdir}") @@ -240,7 +242,13 @@ if(NOT MINGW AND NOT UNIX) set(_implicit_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES}) endif() -foreach(_lib IN LISTS _implicit_libs LIBSSH2_LIBS) +find_package(PkgConfig) +pkg_check_modules(LIBSSH2_PC_REQUIRED REQUIRED ${LIBSSH2_PC_REQUIRES_PRIVATE}) +# Libs which are resolved by pkg-config via Requires (LIBSSH2_PC_REQUIRES_PRIVATE) +# don't need to be written to `libssh2.pc` (LIBSSH2_PC_LIBS_PRIVATE) +list(REMOVE_ITEM LIBSSH2_LIBS ZLIB::ZLIB OpenSSL::Crypto) + +foreach(_lib IN LISTS LIBSSH2_LIBS) if(TARGET "${_lib}") set(_libname "${_lib}") get_target_property(_imported "${_libname}" IMPORTED) @@ -255,6 +263,9 @@ foreach(_lib IN LISTS _implicit_libs LIBSSH2_LIBS) continue() endif() endif() + if(_lib IN_LIST LIBSSH2_PC_REQUIRED_LINK_LIBRARIES) + continue() + endif() if(_lib MATCHES "^-") list(APPEND _ldflags "${_lib}") elseif(_lib MATCHES ".*/.*") @@ -263,12 +274,19 @@ foreach(_lib IN LISTS _implicit_libs LIBSSH2_LIBS) get_filename_component(_libdir ${_lib} DIRECTORY) get_filename_component(_libname ${_lib} NAME_WE) if(_libname MATCHES "^lib") + cmake_path(SET _libdir NORMALIZE "${_libdir}") list(FIND _sys_libdirs "${_libdir}" _libdir_index) if(_libdir_index LESS 0) list(APPEND _ldflags "-L${_libdir}") endif() string(REGEX REPLACE "^lib" "" _libname "${_libname}") list(APPEND LIBSSH2_PC_LIBS_PRIVATE "-l${_libname}") + if(TARGET "${LIB_STATIC}" AND _libdir IN_LIST CMAKE_C_IMPLICIT_LINK_DIRECTORIES) + # Avoid absolute path to system lib in exported CMake config + get_target_property(static_link_libs "${LIB_STATIC}" INTERFACE_LINK_LIBRARIES) + string(REPLACE "${_lib}" "${_libname}" static_link_libs "${static_link_libs}") + set_target_properties("${LIB_STATIC}" PROPERTIES INTERFACE_LINK_LIBRARIES "${static_link_libs}") + endif() else() list(APPEND LIBSSH2_PC_LIBS_PRIVATE "${_lib}") endif() @@ -296,8 +314,7 @@ if(BUILD_SHARED_LIBS) set(LIBSSH2_PC_REQUIRES "") set(LIBSSH2_PC_LIBS "") else() - set(LIBSSH2_PC_REQUIRES "${LIBSSH2_PC_REQUIRES_PRIVATE}") - set(LIBSSH2_PC_LIBS "${LIBSSH2_PC_LIBS_PRIVATE}") + # (processing by vcpkg_fixup_pkgconfig) endif() set(prefix "${CMAKE_INSTALL_PREFIX}") ================================================ FILE: ports/libssh2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libssh2/libssh2 REF "libssh2-${VERSION}" SHA512 616efcd7f5c1fb1046104ebce70549e4756e2a55150efa2df5bb7123051d3bf336023cedcbfe932cd7c690a0b4d1f1a93c760ea39f1dba50c2b06d0945dca958 HEAD_REF master PATCHES cmake-config.diff pkgconfig.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES zlib ENABLE_ZLIB_COMPRESSION ) if("openssl" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DCRYPTO_BACKEND=OpenSSL") elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS "-DCRYPTO_BACKEND=WinCNG") else() message(FATAL_ERROR "Port ${PORT} only supports OpenSSL and WinCNG crypto backends.") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND FEATURE_OPTIONS "-DBUILD_STATIC_LIBS:BOOL=OFF") endif() vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DENABLE_DEBUG_LOGGING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libssh2) if (VCPKG_TARGET_IS_WINDOWS) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libssh2.h" "defined(_WINDLL)" "1") endif() if(VCPKG_TARGET_STATIC_LIBRARY_PREFIX STREQUAL "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libssh2.pc" " -lssh2" " -llibssh2") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libssh2.pc" " -lssh2" " -llibssh2") endif() endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libssh2/usage ================================================ libssh2 provides CMake targets: find_package(libssh2 CONFIG REQUIRED) target_link_libraries(main PRIVATE libssh2::libssh2) libssh2 provides pkg-config modules: # Library for SSH-based communication libssh2 ================================================ FILE: ports/libssh2/vcpkg.json ================================================ { "name": "libssh2", "version": "1.11.1", "port-version": 2, "description": "libssh2 is a client-side C library implementing the SSH2 protocol.", "homepage": "https://www.libssh2.org", "license": "BSD-3-Clause", "dependencies": [ { "name": "libssh2", "default-features": false, "features": [ "openssl" ], "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "openssl", "zlib" ], "features": { "openssl": { "description": "Use the openssl crypto backend", "dependencies": [ "openssl" ] }, "zlib": { "description": "Use compression via zlib", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libstemmer/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(libstemmer) file(GLOB SNOWBALL_SOURCES src_c/*.c runtime/api.c runtime/utilities.c libstemmer/libstemmer.c ) add_library(stemmer ${SNOWBALL_SOURCES}) install( TARGETS stemmer RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES include/libstemmer.h DESTINATION include) endif() ================================================ FILE: ports/libstemmer/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(SUBSTRING "${VERSION}" 5 -1 VERSION) vcpkg_download_distfile(ARCHIVE URLS "https://snowballstem.org/dist/libstemmer_c-${VERSION}.tar.gz" FILENAME "libstemmer_c-${VERSION}.tar.gz" SHA512 a61a06a046a6a5e9ada12310653c71afb27b5833fa9e21992ba4bdf615255de991352186a8736d0156ed754248a0ffb7b7712e8d5ea16f75174d1c8ddd37ba4a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libstemmer/vcpkg.json ================================================ { "name": "libstemmer", "version": "2021.2.2.0", "description": "Snowball is a small string processing language designed for creating stemming algorithms for use in Information Retrieval", "homepage": "https://snowballstem.org/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libstk/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(libstk) set(LIBSTK_SOURCES src/ADSR.cpp src/Asymp.cpp src/BandedWG.cpp src/BeeThree.cpp src/BiQuad.cpp src/Blit.cpp src/BlitSaw.cpp src/BlitSquare.cpp src/BlowBotl.cpp src/BlowHole.cpp src/Bowed.cpp src/Brass.cpp src/Chorus.cpp src/Clarinet.cpp src/Delay.cpp src/DelayA.cpp src/DelayL.cpp src/Drummer.cpp src/Echo.cpp src/Envelope.cpp src/FileLoop.cpp src/FileRead.cpp src/FileWrite.cpp src/FileWvIn.cpp src/FileWvOut.cpp src/Fir.cpp src/Flute.cpp src/FM.cpp src/FMVoices.cpp src/FormSwep.cpp src/FreeVerb.cpp src/Granulate.cpp src/Guitar.cpp src/HevyMetl.cpp src/Iir.cpp src/JCRev.cpp src/LentPitShift.cpp src/Makefile.in src/Mandolin.cpp src/Mesh2D.cpp src/Messager.cpp src/MidiFileIn.cpp src/Modal.cpp src/ModalBar.cpp src/Modulate.cpp src/Moog.cpp src/Noise.cpp src/NRev.cpp src/OnePole.cpp src/OneZero.cpp src/PercFlut.cpp src/Phonemes.cpp src/PitShift.cpp src/Plucked.cpp src/PoleZero.cpp src/PRCRev.cpp src/Resonate.cpp src/Rhodey.cpp src/Sampler.cpp src/Saxofony.cpp src/Shakers.cpp src/Simple.cpp src/SineWave.cpp src/SingWave.cpp src/Sitar.cpp src/Skini.cpp src/Sphere.cpp src/StifKarp.cpp src/Stk.cpp src/TapDelay.cpp src/TubeBell.cpp src/Twang.cpp src/TwoPole.cpp src/TwoZero.cpp src/Voicer.cpp src/VoicForm.cpp src/Whistle.cpp src/Wurley.cpp) set(LIBSTK_REALTIME_SOURCES src/InetWvIn.cpp src/InetWvOut.cpp src/Mutex.cpp src/RtAudio.cpp src/RtMidi.cpp src/RtWvIn.cpp src/RtWvOut.cpp src/Socket.cpp src/TcpClient.cpp src/TcpServer.cpp src/Thread.cpp src/UdpSocket.cpp ) set(LIBSTK_HEADERS include/ADSR.h include/Asymp.h include/BandedWG.h include/BeeThree.h include/BiQuad.h include/Blit.h include/BlitSaw.h include/BlitSquare.h include/BlowBotl.h include/BlowHole.h include/Bowed.h include/BowTable.h include/Brass.h include/Chorus.h include/Clarinet.h include/Cubic.h include/Delay.h include/DelayA.h include/DelayL.h include/Drummer.h include/Echo.h include/Effect.h include/Envelope.h include/FileLoop.h include/FileRead.h include/FileWrite.h include/FileWvIn.h include/FileWvOut.h include/Filter.h include/Fir.h include/Flute.h include/FM.h include/FMVoices.h include/FormSwep.h include/FreeVerb.h include/Function.h include/Generator.h include/Granulate.h include/Guitar.h include/HevyMetl.h include/Iir.h include/InetWvIn.h include/InetWvOut.h include/Instrmnt.h include/JCRev.h include/JetTable.h include/LentPitShift.h include/Mandolin.h include/Mesh2D.h include/Messager.h include/MidiFileIn.h include/Modal.h include/ModalBar.h include/Modulate.h include/Moog.h include/Mutex.h include/Noise.h include/NRev.h include/OnePole.h include/OneZero.h include/PercFlut.h include/Phonemes.h include/PitShift.h include/Plucked.h include/PoleZero.h include/PRCRev.h include/ReedTable.h include/Resonate.h include/Rhodey.h include/RtAudio.h include/RtMidi.h include/RtWvIn.h include/RtWvOut.h include/Sampler.h include/Saxofony.h include/Shakers.h include/Simple.h include/SineWave.h include/SingWave.h include/Sitar.h include/Skini.h include/SKINImsg.h include/SKINItbl.h include/Socket.h include/Sphere.h include/StifKarp.h include/Stk.h include/TapDelay.h include/TcpClient.h include/TcpServer.h include/Thread.h include/TubeBell.h include/Twang.h include/TwoPole.h include/TwoZero.h include/UdpSocket.h include/Vector3D.h include/Voicer.h include/VoicForm.h include/Whistle.h include/Wurley.h include/WvIn.h include/WvOut.h ) add_library(libstk ${LIBSTK_SOURCES}) target_include_directories(libstk PRIVATE include PUBLIC $) set_target_properties(libstk PROPERTIES PUBLIC_HEADER "${LIBSTK_HEADERS}") target_compile_definitions(libstk PRIVATE __LITTLE_ENDIAN__) install(TARGETS libstk EXPORT unofficial-libstk-config LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin PUBLIC_HEADER DESTINATION include/stk) install(EXPORT unofficial-libstk-config NAMESPACE unofficial::libstk:: DESTINATION share/unofficial-libstk) ================================================ FILE: ports/libstk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thestk/stk REF 4.6.1 SHA512 61d4db7b4a45446e231dedc13e139cb488e2ce805278f0b20aa95e69ddb1fa9be549ab5f1fe24c69aa865ebc2940d5fba6e3819a1a7fb1d68e236131fcfb4cac HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libstk) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(GLOB RAWFILES "${SOURCE_PATH}/rawwaves/*.raw") file(COPY ${RAWFILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/libstk/rawwaves") ================================================ FILE: ports/libstk/vcpkg.json ================================================ { "name": "libstk", "version": "4.6.1", "port-version": 3, "description": "The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libsvm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(libsvm LANGUAGES C CXX) include(GNUInstallDirs) option(SVM_BUILD_TOOLS "Build SVM tools" OFF) set(libsvm_sources svm.cpp) if (WIN32) list(APPEND libsvm_sources svm.def) endif () add_library(libsvm ${libsvm_sources}) target_compile_definitions( libsvm PRIVATE $<$: _CRT_SECURE_NO_WARNINGS strdup=_strdup > ) target_include_directories( libsvm PUBLIC $ $ ) set_target_properties(libsvm PROPERTIES PUBLIC_HEADER svm.h) install(TARGETS libsvm EXPORT unofficial-libsvm-config) install( EXPORT unofficial-libsvm-config NAMESPACE unofficial::libsvm:: DESTINATION share/unofficial-libsvm PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) if (SVM_BUILD_TOOLS) add_executable(svm-predict svm-predict.c) target_link_libraries(svm-predict PRIVATE libsvm) add_executable(svm-scale svm-scale.c) target_link_libraries(svm-scale PRIVATE libsvm) add_executable(svm-train svm-train.c) target_link_libraries(svm-train PRIVATE libsvm) install(TARGETS svm-predict svm-scale svm-train) if (WIN32) add_executable(svm-toy svm-toy/windows/svm-toy.cpp) target_link_libraries(svm-toy PRIVATE libsvm) set_target_properties(svm-toy PROPERTIES WIN32_EXECUTABLE ON) install(TARGETS svm-toy) endif () endif () ================================================ FILE: ports/libsvm/portfile.cmake ================================================ string(REPLACE "." "" LIBSVM_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cjlin1/libsvm REF "v${LIBSVM_VERSION}" SHA512 b05d1153c17bb585495785372810807ff695afbda23dd88ecb67a282d7c752068e2a0f6fa779aca2132c6bf3396bdf10b97665849e4aae4c76de98c2f095beab HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools SVM_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DSVM_BUILD_TOOLS=OFF OPTIONS_RELEASE ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}" CONFIG_PATH "share/unofficial-${PORT}") if("tools" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES svm-predict svm-scale svm-toy svm-train AUTO_CLEAN) else() vcpkg_copy_tools(TOOL_NAMES svm-predict svm-scale svm-train AUTO_CLEAN) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libsvm/vcpkg.json ================================================ { "name": "libsvm", "version": "3.35", "description": "A library for Support Vector Machines.", "homepage": "https://www.csie.ntu.edu.tw/~cjlin/libsvm/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build libsvm CLI tools.", "supports": "!uwp" } } } ================================================ FILE: ports/libsystemd/disable-warning-nonnull.patch ================================================ diff --git a/src/basic/memory-util.h b/src/basic/memory-util.h index 1179513..fc39e06 100644 --- a/src/basic/memory-util.h +++ b/src/basic/memory-util.h @@ -41,7 +41,9 @@ static inline int memcmp_safe(const void *s1, const void *s2, size_t n) { return 0; assert(s1); assert(s2); +DISABLE_WARNING_NONNULL return memcmp(s1, s2, n); +REENABLE_WARNING } /* Compare s1 (length n1) with s2 (length n2) in lexicographic order. */ ================================================ FILE: ports/libsystemd/only-libsystemd.patch ================================================ diff --git a/meson.build b/meson.build index a4730f0..32ec825 100644 --- a/meson.build +++ b/meson.build @@ -2148,12 +2148,11 @@ libsystemd_includes = [basic_includes, include_directories( includes = [libsystemd_includes, include_directories('src/shared')] subdir('po') -subdir('catalog') +support_url='https://github.com/microsoft/vcpkg/issues' subdir('src/fundamental') subdir('src/basic') subdir('src/libsystemd') -subdir('src/shared') -subdir('src/libudev') +static_libudev='unused' libsystemd = shared_library( 'systemd', @@ -2169,7 +2168,8 @@ libsystemd = shared_library( threads, userspace], link_depends : libsystemd_sym, - install : true, + build_by_default : static_libsystemd == 'false', + install : static_libsystemd == 'false', install_tag: 'libsystemd', install_dir : libdir) @@ -2205,6 +2205,8 @@ else alias_target('libsystemd', libsystemd) endif +if false + libudev = shared_library( 'udev', version : libudev_version, @@ -2940,6 +2942,17 @@ custom_target( install_dir : testdata_dir, command : [meson_extract_unit_files, meson.project_build_root()]) +else + # headers + subdir('src/systemd') + # subdir man + want_html=false + want_man=false + # subdir shell-completion/* + bashcompletiondir='no' + zshcompletiondir='no' +endif + ##################################################################### alt_time_epoch = run_command('date', '-Is', '-u', '-d', '@@0@'.format(time_epoch), ================================================ FILE: ports/libsystemd/pkgconfig.patch ================================================ diff --git a/meson.build b/meson.build index 687450e..ee4460b 100644 --- a/meson.build +++ b/meson.build @@ -1011,6 +1011,9 @@ threads = dependency('threads') librt = cc.find_library('rt') libm = cc.find_library('m') libdl = cc.find_library('dl') +conf.set_quoted('PC_RT', librt.found() ? '-lrt' : '') +conf.set_quoted('PC_M', libm.found() ? '-lm' : '') +conf.set_quoted('PC_DL', libdl.found() ? '-ldl' : '') libcrypt = dependency('libcrypt', 'libxcrypt', required : false) if not libcrypt.found() # fallback to use find_library() if libcrypt is provided by glibc, e.g. for LibreELEC. diff --git a/src/libsystemd/libsystemd.pc.in b/src/libsystemd/libsystemd.pc.in index 3a43ef6..930f16a 100644 --- a/src/libsystemd/libsystemd.pc.in +++ b/src/libsystemd/libsystemd.pc.in @@ -17,4 +17,6 @@ Description: systemd Library URL: {{PROJECT_URL}} Version: {{PROJECT_VERSION}} Libs: -L${libdir} -lsystemd +Libs.private: {{PC_DL}} {{PC_M}} {{PC_RT}} +Requires.private: libcap libcrypt liblz4 liblzma libzstd mount Cflags: -I${includedir} ================================================ FILE: ports/libsystemd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO systemd/systemd REF "v${VERSION}" SHA512 30331df5eb7a1556da8c017a0e6c07b8b99f0cb31da055c1b86c9b9e6fd7074f7c6746efa3e69711b73af48a15d61a84f35ad6e554d32a23441ba910398f7f65 PATCHES disable-warning-nonnull.patch only-libsystemd.patch pkgconfig.patch ) set(static false) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(static pic) endif() vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages( PYTHON_VERSION 3 PYTHON_EXECUTABLE "${PYTHON3}" PACKAGES "jinja2" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dmode=release -Dstatic-libsystemd=${static} -Dtests=false # disabled capabilites -Ddns-over-tls=false -Dtranslations=false # disabled dependencies -Dacl=disabled -Dapparmor=disabled -Daudit=disabled -Dblkid=disabled -Dbpf-framework=disabled -Dbzip2=disabled -Ddbus=disabled # tests only -Delfutils=disabled -Dfdisk=disabled -Dgcrypt=disabled -Dglib=disabled # tests only -Dgnutls=disabled -Dkmod=disabled -Dlibcurl=disabled -Dlibcryptsetup=disabled -Dlibfido2=disabled -Dlibidn=disabled -Dlibidn2=disabled -Dlibiptc=disabled -Dmicrohttpd=disabled -Dopenssl=disabled -Dp11kit=disabled -Dpam=disabled -Dpcre2=disabled -Dpolkit=disabled -Dpwquality=disabled -Dpasswdqc=disabled -Dseccomp=disabled -Dselinux=disabled -Dtpm2=disabled -Dxenctrl=disabled -Dxkbcommon=disabled -Dzlib=disabled # enabled dependencies -Dlz4=enabled -Dxz=enabled -Dzstd=enabled ADDITIONAL_BINARIES "gperf = ['${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${HOST_EXECUTABLE_SUFFIX}']" ) vcpkg_install_meson() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSES/README.md" "${SOURCE_PATH}/LICENSE.LGPL2.1" COMMENT [[ This port provides libsystemd.so/.a, which is based on sources in src/basic, src/fundamental, src/systemd and src/libsystemd. ]]) ================================================ FILE: ports/libsystemd/vcpkg.json ================================================ { "name": "libsystemd", "version": "257.8", "port-version": 1, "description": "Libsystemd", "homepage": "https://github.com/systemd/systemd", "license": null, "supports": "linux", "dependencies": [ { "name": "gperf", "host": true }, "libcap", "liblzma", "libmount", "libxcrypt", "lz4", { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-tool-meson", "host": true }, "zstd" ] } ================================================ FILE: ports/libtar/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS https://repo.or.cz/libtar.git/snapshot/6d0ab4c78e7a8305c36a0c3d63fd25cd1493de65.tar.gz FILENAME libtar-6d0ab4c78e7a8305c36a0c3d63fd25cd1493de65.tar.gz SHA512 907d98ea2bd2e2a43604243fc7fd6c252aa02c3fdd79e21f2a784adf821cb18107e6e23a25ad0c64329fbe84e859da5c807272759a8bcd85a37b929c80af4a13 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}") vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_make() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/libtar/vcpkg.json ================================================ { "name": "libtar", "version": "1.2.20", "port-version": 1, "description": "libtar - C library for manipulating tar files", "homepage": "https://repo.or.cz/libtar.git", "supports": "!windows" } ================================================ FILE: ports/libtasn1/clang-fortify.patch ================================================ diff --git a/lib/gl/cdefs.h b/lib/gl/cdefs.h index 7b8ed5b..63574f9 100644 --- a/lib/gl/cdefs.h +++ b/lib/gl/cdefs.h @@ -140,6 +140,7 @@ #endif +#ifndef __GNULIB_CDEFS /* Fortify support. */ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) @@ -201,6 +202,8 @@ ? __ ## f ## _chk_warn (__VA_ARGS__, (__osz) / (__s)) \ : __ ## f ## _chk (__VA_ARGS__, (__osz) / (__s)))) \ +#endif + #if __GNUC_PREREQ (4,3) # define __warnattr(msg) __attribute__((__warning__ (msg))) # define __errordecl(name, msg) \ diff --git a/lib/gl/libc-config.h b/lib/gl/libc-config.h index a56665b..876e1a1 100644 --- a/lib/gl/libc-config.h +++ b/lib/gl/libc-config.h @@ -137,8 +137,10 @@ # undef __attribute_returns_twice__ # undef __attribute_used__ # undef __attribute_warn_unused_result__ +# ifndef __GNULIB_CDEFS # undef __bos # undef __bos0 +# endif # undef __errordecl # undef __extension__ # undef __extern_always_inline @@ -147,21 +149,27 @@ # undef __fortified_attr_access # undef __fortify_function # undef __glibc_c99_flexarr_available +# ifndef __GNULIB_CDEFS # undef __glibc_fortify # undef __glibc_fortify_n +# endif # undef __glibc_has_attribute # undef __glibc_has_builtin # undef __glibc_has_extension # undef __glibc_likely # undef __glibc_macro_warning # undef __glibc_macro_warning1 +# ifndef __GNULIB_CDEFS # undef __glibc_objsize # undef __glibc_objsize0 # undef __glibc_safe_len_cond # undef __glibc_safe_or_unknown_len +# endif # undef __glibc_unlikely +# ifndef __GNULIB_CDEFS # undef __glibc_unsafe_len # undef __glibc_unsigned_or_positive +# endif # undef __inline # undef __ptr_t # undef __restrict ================================================ FILE: ports/libtasn1/msvc_fixes.patch ================================================ diff --git a/src/asn1Coding.c b/src/asn1Coding.c index 86c1d07..6fcfc4d 100644 --- a/src/asn1Coding.c +++ b/src/asn1Coding.c @@ -23,7 +23,12 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef _MSC_VER +#include +#endif #include #include diff --git a/src/asn1Decoding.c b/src/asn1Decoding.c index c6f192e..3e4e21d 100644 --- a/src/asn1Decoding.c +++ b/src/asn1Decoding.c @@ -23,7 +23,12 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef _MSC_VER +#include +#endif #include #include #include diff --git a/src/asn1Parser.c b/src/asn1Parser.c index b6844a8..445c716 100644 --- a/src/asn1Parser.c +++ b/src/asn1Parser.c @@ -23,7 +23,12 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef _MSC_VER +#include +#endif #include #include diff --git a/src/benchmark.c b/src/benchmark.c index 010d58e..6c613df 100644 --- a/src/benchmark.c +++ b/src/benchmark.c @@ -21,9 +21,16 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef _MSC_VER +#include +#endif #include "benchmark.h" int benchmark_must_finish = 0; diff --git a/src/benchmark.h b/src/benchmark.h index 3272649..6b6bf32 100644 --- a/src/benchmark.h +++ b/src/benchmark.h @@ -21,7 +21,9 @@ #ifndef BENCHMARK_H # define BENCHMARK_H +#ifndef _MSC_VER # include +#endif # include # include # if defined _WIN32 ================================================ FILE: ports/libtasn1/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${VERSION}.tar.gz" FILENAME "libtasn1-${VERSION}.tar.gz" SHA512 287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "v${VERSION}" PATCHES msvc_fixes.patch clang-fortify.patch # ported from https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=522aea1093a598246346b3e1c426505c344fe19a ) vcpkg_find_acquire_program(BISON) set(EXTRA_OPTS "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # $LIBS is an environment variable that vcpkg already pre-populated with some libraries. # We need to re-purpose it when passing LIBS option to make to avoid overriding the vcpkg's own list. list(APPEND EXTRA_OPTS "LIBS=-lgettimeofday -lgetopt \$LIBS") else() # restore the default ac_cv_prog_cc_g flags, otherwise it fails to compile set(VCPKG_C_FLAGS "-g -O2") set(VCPKG_CXX_FLAGS "-g -O2") endif() # The upstream doesn't add this macro to the configure if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND EXTRA_OPTS "CFLAGS=\$CFLAGS -DASN1_STATIC") endif() set(ENV{GTKDOCIZE} true) # true, the program vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-doc --disable-gtk-doc --disable-gcc-warnings ${EXTRA_OPTS} "YACC=${BISON}" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/doc/COPYING.LESSER" "${SOURCE_PATH}/doc/COPYING" ) ================================================ FILE: ports/libtasn1/vcpkg.json ================================================ { "name": "libtasn1", "version": "4.19.0", "port-version": 3, "description": "A secure communications library implementing the SSL, TLS and DTLS protocols", "homepage": "https://www.gnutls.org/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "getopt", "platform": "windows & !mingw" }, { "name": "gettimeofday", "platform": "windows & !mingw" }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libtcod/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libtcod/libtcod REF ${VERSION} SHA512 e10d6d83e6057336efcc3f2a45dd7d2e287217c3c42f99f594a357668bac89dd8a235d8498d879168418c3b5fc1a3cb5ae2c9e0acadf4e3f95e247da3ab4de40 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "png" LIBTCOD_LODEPNG "png" VCPKG_LOCK_FIND_PACKAGE_lodepng-c "sdl" LIBTCOD_SDL3 "sdl" VCPKG_LOCK_FIND_PACKAGE_SDL3 "threads" LIBTCOD_THREADS "threads" VCPKG_LOCK_FIND_PACKAGE_Threads "unicode" LIBTCOD_UTF8PROC "unicode" VCPKG_LOCK_FIND_PACKAGE_utf8proc "zlib" LIBTCOD_ZLIB "zlib" VCPKG_LOCK_FIND_PACKAGE_ZLIB ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DCMAKE_INSTALL_INCLUDEDIR=${CURRENT_PACKAGES_DIR}/include -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DVCPKG_LOCK_FIND_PACKAGE_Stb=ON MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_SDL3 VCPKG_LOCK_FIND_PACKAGE_Threads VCPKG_LOCK_FIND_PACKAGE_ZLIB VCPKG_LOCK_FIND_PACKAGE_lodepng-c VCPKG_LOCK_FIND_PACKAGE_utf8proc ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libtcod/vcpkg.json ================================================ { "name": "libtcod", "version-semver": "2.2.2", "maintainers": "Kyle Benesch <4b796c65+github@gmail.com>", "description": "Common algorithms and tools for roguelikes.", "homepage": "https://github.com/libtcod/libtcod", "documentation": "https://libtcod.readthedocs.io/en/latest/", "license": "BSD-3-Clause", "dependencies": [ "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "png", "sdl", "unicode", "zlib" ], "features": { "png": { "description": "Support for reading and writing PNG files. Required to save screenshots and to load tilesets from files.", "dependencies": [ "lodepng" ] }, "sdl": { "description": "Support for SDL windows and events with the libtcod context.", "dependencies": [ "sdl3" ] }, "threads": { "description": "Support for deprecated threading functions. If in doubt then leave this disabled." }, "unicode": { "description": "Support for non-ASCII characters. Required for text printing functions", "dependencies": [ "utf8proc" ] }, "zlib": { "description": "Support for REXPaint files and TCODZip archives.", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libtess2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.21) project(libtess2) # Tesselator add_library(libtess2 STATIC) target_sources(libtess2 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/Source/bucketalloc.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/dict.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/geom.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/mesh.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/priorityq.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/sweep.c" "${CMAKE_CURRENT_SOURCE_DIR}/Source/tess.c") target_include_directories(libtess2 PUBLIC "$" "$" ) set_target_properties(libtess2 PROPERTIES LINKER_LANGUAGE CXX) install(TARGETS libtess2 EXPORT unofficial-libtess2-config) install( FILES "${CMAKE_CURRENT_SOURCE_DIR}/Include/tesselator.h" TYPE INCLUDE ) install( EXPORT unofficial-libtess2-config NAMESPACE unofficial::libtess2:: DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-libtess2" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/libtess2/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO memononen/libtess2 REF fc52516467dfa124bdd967c15c7cf9faf02a34ca SHA512 2b3efb8934d1da8c1b3f0a79139275e89d9187e1e881c699f8623993165eae04068ce5927fe2a5e21e1298b79ffc57eb3e9bbc4bc07872d757a91189bc5f1cce HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME "unofficial-${PORT}" CONFIG_PATH "lib/cmake/unofficial-${PORT}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libtess2/usage ================================================ The package libtess2 provides CMake targets: find_package(unofficial-libtess2 CONFIG REQUIRED) target_link_libraries(main PUBLIC unofficial::libtess2::libtess2) ================================================ FILE: ports/libtess2/vcpkg.json ================================================ { "name": "libtess2", "version-date": "2021-12-27", "description": "Game and tools oriented refactored version of GLU tesselator.", "homepage": "https://github.com/memononen/libtess2", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libtheora/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(theora LANGUAGES C) set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}") set(OGG_REQUIRED_VERSION 1.3.4) find_package(Ogg "${OGG_REQUIRED_VERSION}" CONFIG REQUIRED) file(GLOB HEADERS "include/theora/codec.h" "include/theora/theora.h" "include/theora/theoradec.h" "include/theora/theoraenc.h" ) if(MSVC) set(LIBTHEORA_COMMON_X86 "lib/x86_vc/mmxfrag.c" "lib/x86_vc/mmxidct.c" "lib/x86_vc/mmxstate.c" "lib/x86_vc/x86cpu.c" "lib/x86_vc/x86state.c" ) else() set(LIBTHEORA_COMMON_X86 "lib/x86/mmxfrag.c" "lib/x86/mmxidct.c" "lib/x86/mmxstate.c" "lib/x86/sse2idct.c" "lib/x86/x86cpu.c" "lib/x86/x86state.c" ) endif() set(LIBTHEORA_COMMON "lib/apiwrapper.c" "lib/bitpack.c" "lib/dequant.c" "lib/fragment.c" "lib/idct.c" "lib/info.c" "lib/internal.c" "lib/state.c" "lib/quant.c" ${LIBTHEORA_COMMON_X86} ) if(MSVC) set(LIBTHEORA_ENC_X86 "lib/x86_vc/mmxencfrag.c" "lib/x86_vc/mmxfdct.c" "lib/x86_vc/x86enc.c" ) else() set(LIBTHEORA_ENC_X86 "lib/x86/mmxencfrag.c" "lib/x86/mmxfdct.c" "lib/x86/x86enc.c" "lib/x86/x86enquant.c" "lib/x86/sse2encfrag.c" ) endif() set(LIBTHEORA_ENC "lib/analyze.c" "lib/encapiwrapper.c" "lib/encfrag.c" "lib/encinfo.c" "lib/encode.c" "lib/enquant.c" "lib/fdct.c" "lib/huffenc.c" "lib/mathops.c" "lib/mcenc.c" "lib/rate.c" "lib/tokenize.c" ${LIBTHEORA_ENC_X86} ) set(LIBTHEORA_DEC "lib/decapiwrapper.c" "lib/decinfo.c" "lib/decode.c" "lib/huffdec.c" ) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) option(USE_X86 "Use x86 optimization" OFF) if(USE_X86) add_definitions(-DOC_X86_ASM) endif() if (BUILD_SHARED_LIBS) add_definitions(-DLIBTHEORA_EXPORTS) endif() add_library(theora-common OBJECT ${LIBTHEORA_COMMON} ${HEADERS}) target_link_libraries(theora-common PUBLIC Ogg::ogg) target_include_directories(theora-common PUBLIC $ $) add_library(theora-enc OBJECT ${LIBTHEORA_ENC} ${HEADERS}) target_link_libraries(theora-enc PUBLIC Ogg::ogg) target_include_directories(theora-enc PUBLIC $ $) add_library(theora-dec OBJECT ${LIBTHEORA_DEC} ${HEADERS}) target_link_libraries(theora-dec PUBLIC Ogg::ogg) target_include_directories(theora-dec PUBLIC $ $) add_library(theora $ $ $ "libtheora.def") target_link_libraries(theora PUBLIC Ogg::ogg) target_include_directories(theora PUBLIC $ $) add_library(theoraenc $ $ "win32/xmingw32/libtheoraenc-all.def") target_link_libraries(theoraenc PUBLIC Ogg::ogg) target_include_directories(theoraenc PUBLIC $ $) add_library(theoradec $ $ "win32/xmingw32/libtheoradec-all.def") target_link_libraries(theoradec PUBLIC Ogg::ogg) target_include_directories(theoradec PUBLIC $ $) include(CMakePackageConfigHelpers) configure_package_config_file(unofficial-theora-config.cmake.in unofficial-theora-config.cmake INSTALL_DESTINATION "lib/unofficial-theora") install(FILES ${HEADERS} DESTINATION include/theora) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-theora-config.cmake" DESTINATION "lib/unofficial-theora" ) install(TARGETS theora theoraenc theoradec EXPORT unofficial-theora-targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) install(EXPORT unofficial-theora-targets NAMESPACE unofficial::theora:: DESTINATION "lib/unofficial-theora" ) block(SCOPE_FOR VARIABLES) set(prefix "${CMAKE_INSTALL_PREFIX}") set(libdir "\${prefix}/lib") set(exec_prefix "\${prefix}") set(includedir "\${prefix}/include") set(THEORA_LIBOGG_REQ_VERSION "${OGG_REQUIRED_VERSION}") configure_file(theora.pc.in theora.pc @ONLY) configure_file(theoradec.pc.in theoradec.pc @ONLY) configure_file(theoraenc.pc.in theoraenc.pc @ONLY) endblock() install( FILES "${PROJECT_BINARY_DIR}/theora.pc" "${PROJECT_BINARY_DIR}/theoradec.pc" "${PROJECT_BINARY_DIR}/theoraenc.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) ================================================ FILE: ports/libtheora/libtheora.def ================================================ EXPORTS ; Old alpha API theora_version_string theora_version_number theora_decode_header theora_decode_init theora_decode_packetin theora_decode_YUVout theora_control theora_packet_isheader theora_packet_iskeyframe theora_granule_shift theora_granule_frame theora_granule_time theora_info_init theora_info_clear theora_clear theora_comment_init theora_comment_add theora_comment_add_tag theora_comment_query theora_comment_query_count theora_comment_clear ; New theora-exp API th_version_string th_version_number th_decode_headerin th_decode_alloc th_setup_free th_decode_ctl th_decode_packetin th_decode_ycbcr_out th_decode_free th_packet_isheader th_packet_iskeyframe th_granule_frame th_granule_time th_info_init th_info_clear th_comment_init th_comment_add th_comment_add_tag th_comment_query th_comment_query_count th_comment_clear ; Old alpha API theora_encode_init theora_encode_YUVin theora_encode_packetout theora_encode_header theora_encode_comment theora_encode_tables ; New theora-exp API th_encode_alloc th_encode_ctl th_encode_flushheader th_encode_ycbcr_in th_encode_packetout th_encode_free TH_VP31_QUANT_INFO TH_VP31_HUFF_CODES ================================================ FILE: ports/libtheora/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/theora REF "v${VERSION}" SHA512 b2aac15528f0ef8258c0902e33e8211e8858c3c7e6e9eeb708cce5922de5f0e412255ddaf540a50c0ebf601df6c4376fd24a0bdd7f8de4432c4ae6e5d6ffe2b6 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/libtheora.def" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-theora-config.cmake.in" DESTINATION "${SOURCE_PATH}") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(THEORA_X86_OPT ON) else() set(THEORA_X86_OPT OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION:STRING=${VERSION}" -DUSE_X86=${THEORA_X86_OPT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/unofficial-theora" PACKAGE_NAME "unofficial-theora") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libtheora/unofficial-theora-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(Ogg CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-theora-targets.cmake") ================================================ FILE: ports/libtheora/vcpkg.json ================================================ { "name": "libtheora", "version": "1.2.0", "description": "Theora is a free and open video compression format from the Xiph.org Foundation.", "homepage": "https://github.com/xiph/theora", "license": null, "dependencies": [ "libogg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libtins/find-pcap_static.patch ================================================ diff --git a/cmake/Modules/FindPCAP.cmake b/cmake/Modules/FindPCAP.cmake index 388b30b..f5264c3 100644 --- a/cmake/Modules/FindPCAP.cmake +++ b/cmake/Modules/FindPCAP.cmake @@ -38,7 +38,7 @@ if (${CMAKE_SIZEOF_VOID_P} EQUAL 8 AND WIN32) endif () find_library(PCAP_LIBRARY - NAMES pcap wpcap + NAMES pcap wpcap pcap_static NAMES_PER_DIR HINTS ${HINT_DIR} ) ================================================ FILE: ports/libtins/fix-source-writes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e13def..eda8d68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -228,8 +228,9 @@ ENDIF(DOXYGEN_FOUND) # Configuration file CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/include/tins/config.h.in" - "${PROJECT_SOURCE_DIR}/include/tins/config.h" + "${PROJECT_BINARY_DIR}/include/tins/config.h" ) +INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/include") IF (NOT CMAKE_INSTALL_LIBDIR) SET(CMAKE_INSTALL_LIBDIR lib) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e07772e..94bc8bf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -82,7 +82,7 @@ set(HEADERS ${LIBTINS_INCLUDE_DIR}/tins/handshake_capturer.h ${LIBTINS_INCLUDE_DIR}/tins/stp.h ${LIBTINS_INCLUDE_DIR}/tins/pppoe.h - ${LIBTINS_INCLUDE_DIR}/tins/config.h + ${PROJECT_BINARY_DIR}/include/tins/config.h ${LIBTINS_INCLUDE_DIR}/tins/constants.h ${LIBTINS_INCLUDE_DIR}/tins/crypto.h ${LIBTINS_INCLUDE_DIR}/tins/cxxstd.h @@ -229,6 +229,7 @@ MACRO(INSTALL_HEADERS_WITH_DIRECTORY HEADER_LIST) FOREACH(HEADER ${HEADERS}) # Extract directory name and remove leading '../' get_filename_component(DIR ${HEADER} PATH) + string(REPLACE "${PROJECT_BINARY_DIR}/" "" DIR ${DIR}) STRING(REGEX REPLACE "^\\.\\.\\/" "" DIR ${DIR}) INSTALL(FILES ${HEADER} DESTINATION ${DIR}) ENDFOREACH(HEADER) ================================================ FILE: ports/libtins/fix_include.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 94bc8bf..14a15e9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -211,6 +211,7 @@ ADD_LIBRARY( ) TARGET_LINK_LIBRARIES(tins ${PCAP_LIBRARY} ${OPENSSL_LIBRARIES} ${LIBTINS_OS_LIBS}) +target_include_directories(tins PUBLIC $) SET_TARGET_PROPERTIES(tins PROPERTIES OUTPUT_NAME tins) SET_TARGET_PROPERTIES(tins PROPERTIES VERSION ${LIBTINS_VERSION} SOVERSION ${LIBTINS_VERSION} ) diff --git a/libtins.pc.in b/libtins.pc.in index e9a5c29..c7e3f6c 100644 --- a/libtins.pc.in +++ b/libtins.pc.in @@ -7,4 +7,4 @@ Name: libtins Description: C++ packet crafting, sniffing and interpretation library. Version: @pkgconfig_version@ Libs: -L${libdir} -ltins -Cflags: -I${includedir}/tins +Cflags: -I${includedir} ================================================ FILE: ports/libtins/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mfontanini/libtins REF "v${VERSION}" SHA512 d8887949cb545dbaf4247c8405feb5cc1032f370bb418dd5344043dc97555b1b826a8d33cfc7dd0a7a9a9af6f3a46bd6fcbed89f98d5eb23fdd10294f823fcd6 HEAD_REF master PATCHES fix-source-writes.patch find-pcap_static.patch fix_include.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBTINS_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBTINS_BUILD_SHARED=${LIBTINS_BUILD_SHARED} -DLIBTINS_ENABLE_CXX11=1 -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=1 ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libtins) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libtins/libtinsConfig.cmake" "set(LIBTINS_INCLUDE_DIRS \"${SOURCE_PATH}/include\")" [[ get_filename_component(LIBTINS_CMAKE_DIR "${LIBTINS_CMAKE_DIR}" PATH) get_filename_component(LIBTINS_CMAKE_DIR "${LIBTINS_CMAKE_DIR}" PATH) set(LIBTINS_INCLUDE_DIRS "${LIBTINS_CMAKE_DIR}/include") ]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libtins/libtinsConfig.cmake" "\${LIBTINS_CMAKE_DIR}/libtinsTargets.cmake" "\${CMAKE_CURRENT_LIST_DIR}/libtinsTargets.cmake") if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/tins/macros.h" "!defined(TINS_STATIC)" "1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/tins/macros.h" "!defined(TINS_STATIC)" "0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libtins" RENAME copyright) ================================================ FILE: ports/libtins/vcpkg.json ================================================ { "name": "libtins", "version": "4.5", "description": "High-level, multiplatform C++ network packet sniffing and crafting library", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ "boost-any", "boost-icl", "libpcap", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libtomcrypt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libtom/libtomcrypt REF v1.18.2 SHA512 53accb4f92077ff1c52102bece270e77c497e599c392aa0bf4dbc173b6789e7e4f1012d8b5f257c438764197cb7bac8ba409a9d4e3a70e69bec5863b9495329e HEAD_REF develop ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(CRTFLAG "/MD") else() set(CRTFLAG "/MT") endif() # Make sure we start from a clean slate vcpkg_execute_build_process( COMMAND nmake -f ${SOURCE_PATH}/makefile.msvc clean WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME clean-${TARGET_TRIPLET}-dbg ) #Debug Build vcpkg_execute_build_process( COMMAND nmake -f ${SOURCE_PATH}/makefile.msvc "CFLAGS=${CRTFLAG}d /DUSE_LTM /DLTM_DESC \"/I${CURRENT_INSTALLED_DIR}/include\"" WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME build-${TARGET_TRIPLET}-dbg ) file(INSTALL ${SOURCE_PATH}/tomcrypt.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib ) # Clean up necessary to rebuild without debug symbols vcpkg_execute_build_process( COMMAND nmake -f ${SOURCE_PATH}/makefile.msvc clean WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME clean-${TARGET_TRIPLET}-rel ) #Release Build vcpkg_execute_build_process( COMMAND nmake -f ${SOURCE_PATH}/makefile.msvc "CFLAGS=${CRTFLAG} /Ox /DNDEBUG /DUSE_LTM /DLTM_DESC \"/I${CURRENT_INSTALLED_DIR}/include\"" WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME build-${TARGET_TRIPLET}-rel ) file(INSTALL ${SOURCE_PATH}/tomcrypt.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib ) file(INSTALL ${SOURCE_PATH}/src/headers/ DESTINATION ${CURRENT_PACKAGES_DIR}/include ) else() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(MAKE_FILE "makefile.shared") else() set(MAKE_FILE "makefile") endif() set(ENV{CFLAGS} "-fPIC -DUSE_LTM -DLTM_DESC -I${CURRENT_INSTALLED_DIR}/include") vcpkg_execute_build_process( COMMAND make -f ${MAKE_FILE} clean WORKING_DIRECTORY ${SOURCE_PATH} ) vcpkg_execute_build_process( COMMAND make -j${VCPKG_CONCURRENCY} -f ${MAKE_FILE} PREFIX=${CURRENT_PACKAGES_DIR}/debug LTC_DEBUG=1 install WORKING_DIRECTORY ${SOURCE_PATH} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_execute_build_process( COMMAND make -f ${MAKE_FILE} clean WORKING_DIRECTORY ${SOURCE_PATH} ) vcpkg_execute_build_process( COMMAND make -j${VCPKG_CONCURRENCY} -f ${MAKE_FILE} PREFIX=${CURRENT_PACKAGES_DIR} install WORKING_DIRECTORY ${SOURCE_PATH} ) endif() #Copy license file( INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright ) ================================================ FILE: ports/libtomcrypt/vcpkg.json ================================================ { "name": "libtomcrypt", "version": "1.18.2", "port-version": 3, "description": "LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.", "homepage": "https://www.libtom.net/LibTomCrypt/", "dependencies": [ "libtommath" ] } ================================================ FILE: ports/libtommath/bcrypt.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,8 +22,10 @@ #----------------------------------------------------------------------------- include(GNUInstallDirs) include(CheckIPOSupported) include(CMakePackageConfigHelpers) +include(CMakePushCheckState) +include(CheckSymbolExists) # default is "No tests" option(BUILD_TESTING "" OFF) include(CTest) include(sources.cmake) @@ -118,8 +120,19 @@ target_link_options(${PROJECT_NAME} BEFORE PRIVATE ${LTM_LD_FLAGS} ) +if(MSVC) + cmake_push_check_state() + set(CMAKE_REQUIRED_LIBRARIES bcrypt) + check_symbol_exists(BCryptGenRandom "Windows.h;bcrypt.h" BCRYPT_AVAILABLE) + cmake_pop_check_state() + if(BCRYPT_AVAILABLE) + target_compile_definitions(${PROJECT_NAME} PRIVATE LTM_WIN32_BCRYPT) + target_link_libraries(${PROJECT_NAME} PRIVATE bcrypt) + endif() +endif() + set(PUBLIC_HEADERS tommath.h) set(C89 False CACHE BOOL "(Usually maintained automatically) Enable when the library is in c89 mode to package the correct header files on install") if(C89) list(APPEND PUBLIC_HEADERS tommath_c89.h) diff --git a/bn_s_mp_rand_platform.c b/bn_s_mp_rand_platform.c --- a/bn_s_mp_rand_platform.c +++ b/bn_s_mp_rand_platform.c @@ -28,8 +28,19 @@ #endif #define WIN32_LEAN_AND_MEAN #include + +#ifdef LTM_WIN32_BCRYPT +#include +#pragma comment(lib, "bcrypt") + +static mp_err s_read_wincsp(void *p, size_t n) +{ + return BCRYPT_SUCCESS(BCryptGenRandom(NULL, (PUCHAR)p, (ULONG)n, + BCRYPT_USE_SYSTEM_PREFERRED_RNG)) ? MP_OKAY : MP_ERR; +} +#else #include static mp_err s_read_wincsp(void *p, size_t n) { @@ -45,8 +56,9 @@ hProv = h; } return CryptGenRandom(hProv, (DWORD)n, (BYTE *)p) == TRUE ? MP_OKAY : MP_ERR; } +#endif #endif /* WIN32 */ #if !defined(BN_S_READ_WINCSP_C) && defined(__linux__) && defined(__GLIBC_PREREQ) #if __GLIBC_PREREQ(2, 25) ================================================ FILE: ports/libtommath/has-set-double.patch ================================================ diff --git a/bn_mp_set_double.c b/bn_mp_set_double.c --- a/bn_mp_set_double.c +++ b/bn_mp_set_double.c @@ -2,9 +2,9 @@ #ifdef BN_MP_SET_DOUBLE_C /* LibTomMath, multiple-precision integer library -- Tom St Denis */ /* SPDX-License-Identifier: Unlicense */ -#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) +#if defined(__STDC_IEC_559__) || defined(__GCC_IEC_559) || defined(_MSC_VER) mp_err mp_set_double(mp_int *a, double b) { uint64_t frac; int exp; ================================================ FILE: ports/libtommath/import-lib.patch ================================================ diff --git a/sources.cmake b/sources.cmake --- a/sources.cmake +++ b/sources.cmake @@ -171,4 +171,8 @@ tommath_cutoffs.h tommath_private.h tommath_superclass.h ) + +if(WIN32) + list(APPEND SOURCES tommath.def) +endif() ================================================ FILE: ports/libtommath/msvc-dce.patch ================================================ diff --git a/bn_s_mp_rand_platform.c b/bn_s_mp_rand_platform.c --- a/bn_s_mp_rand_platform.c +++ b/bn_s_mp_rand_platform.c @@ -136,13 +136,17 @@ mp_err s_mp_rand_platform(void *p, size_t n) { mp_err err = MP_ERR; + #ifndef _MSC_VER if ((err != MP_OKAY) && MP_HAS(S_READ_ARC4RANDOM)) err = s_read_arc4random(p, n); + #endif if ((err != MP_OKAY) && MP_HAS(S_READ_WINCSP)) err = s_read_wincsp(p, n); + #ifndef _MSC_VER if ((err != MP_OKAY) && MP_HAS(S_READ_GETRANDOM)) err = s_read_getrandom(p, n); if ((err != MP_OKAY) && MP_HAS(S_READ_URANDOM)) err = s_read_urandom(p, n); if ((err != MP_OKAY) && MP_HAS(S_READ_LTM_RNG)) err = s_read_ltm_rng(p, n); + #endif return err; } #endif ================================================ FILE: ports/libtommath/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libtom/libtommath REF "v${VERSION}" SHA512 3dbd7053a670afa563a069a9785f1aa4cab14a210bcd05d8fc7db25bd3dcce36b10a3f4f54ca92d75a694f891226f01bdf6ac15bacafeb93a8be6b04c579beb3 HEAD_REF develop PATCHES bcrypt.patch import-lib.patch has-set-double.patch # Remove in next release. msvc-dce.patch # This is a won't fix, see https://github.com/libtom/libtommath/blob/develop/s_mp_rand_platform.c#L120-L138 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/libtommath/usage ================================================ libtommath provides CMake targets: find_package(libtommath CONFIG REQUIRED) target_link_libraries(main PRIVATE libtommath) libtommath provides pkg-config modules: # public domain library for manipulating large integer numbers libtommath ================================================ FILE: ports/libtommath/vcpkg.json ================================================ { "name": "libtommath", "version": "1.3.0", "port-version": 2, "description": "LibTomMath is a free open source portable number theoretic multiple-precision integer library written entirely in C.", "homepage": "https://www.libtom.net/LibTomMath/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libtorch/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 07edb30..1ca26e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1247,8 +1247,7 @@ if(USE_MIMALLOC) set(MI_BUILD_OBJECT OFF) set(MI_BUILD_TESTS OFF) add_definitions(-DUSE_MIMALLOC) - add_subdirectory(third_party/mimalloc) - include_directories(third_party/mimalloc/include) + find_package(mimalloc CONFIG REQUIRED) endif() if(USE_MIMALLOC AND USE_MIMALLOC_ON_MKL) @@ -1316,10 +1315,7 @@ if(BUILD_SHARED_LIBS) DIRECTORY ${PROJECT_SOURCE_DIR}/cmake/Modules_CUDA_fix DESTINATION share/cmake/Caffe2/ COMPONENT dev) - install( - FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUDAToolkit.cmake - DESTINATION share/cmake/Caffe2/ - COMPONENT dev) + install( FILES ${PROJECT_SOURCE_DIR}/cmake/Modules/FindCUSPARSELT.cmake DESTINATION share/cmake/Caffe2/ diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt index 085af37..1c61f27 100644 --- a/aten/src/ATen/CMakeLists.txt +++ b/aten/src/ATen/CMakeLists.txt @@ -515,7 +515,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE) list(APPEND ATen_THIRD_PARTY_INCLUDE ${CMAKE_BINARY_DIR}/include) link_directories(${CMAKE_BINARY_DIR}/sleef/lib) else() - add_library(sleef SHARED IMPORTED) + add_library(sleef UNKNOWN IMPORTED) find_library(SLEEF_LIBRARY sleef) if(NOT SLEEF_LIBRARY) message(FATAL_ERROR "Cannot find sleef") @@ -523,7 +523,7 @@ if(NOT EMSCRIPTEN AND NOT INTERN_BUILD_MOBILE) message("Found sleef: ${SLEEF_LIBRARY}") set_target_properties(sleef PROPERTIES IMPORTED_LOCATION "${SLEEF_LIBRARY}") endif() - list(APPEND ATen_CPU_DEPENDENCY_LIBS sleef) + list(APPEND ATen_CPU_DEPENDENCY_LIBS ${SLEEF_LIBRARY}) if(NOT MSVC) set(CMAKE_C_FLAGS_DEBUG ${OLD_CMAKE_C_FLAGS_DEBUG}) @@ -534,8 +534,8 @@ if(USE_CUDA AND NOT USE_ROCM) add_definitions(-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1) add_definitions(-DCUTLASS_ENABLE_SM90_EXTENDED_MMA_SHAPES=1) add_definitions(-DCUTE_SM90_EXTENDED_MMA_SHAPES_ENABLED) - list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/include) - list(APPEND ATen_CUDA_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/../../../third_party/cutlass/tools/util/include) + find_package(NvidiaCutlass CONFIG REQUIRED) + list(APPEND ATen_CUDA_DEPENDENCY_LIBS nvidia::cutlass::cutlass) if($ENV{ATEN_STATIC_CUDA}) list(APPEND ATen_CUDA_DEPENDENCY_LIBS ${CUDA_LIBRARIES} diff --git a/c10/CMakeLists.txt b/c10/CMakeLists.txt index 34577ca..5462cfe 100644 --- a/c10/CMakeLists.txt +++ b/c10/CMakeLists.txt @@ -121,8 +121,7 @@ if(NOT BUILD_LIBTORCHLESS) endif() if(USE_MIMALLOC) - target_link_libraries(c10 PRIVATE "mimalloc-static") - add_dependencies(c10 mimalloc-static) + target_link_libraries(c10 PRIVATE "mimalloc") endif() if(LINUX) @@ -163,7 +162,7 @@ if(NOT BUILD_LIBTORCHLESS) # Note: for now, we will put all export path into one single Caffe2Targets group # to deal with the cmake deployment need. Inside the Caffe2Targets set, the # individual libraries like libc10.so and libcaffe2.so are still self-contained. - install(TARGETS c10 EXPORT Caffe2Targets DESTINATION lib) + install(TARGETS c10 EXPORT Caffe2Targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) endif() install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR} @@ -173,5 +172,5 @@ install(FILES ${CMAKE_BINARY_DIR}/c10/macros/cmake_macros.h DESTINATION include/c10/macros) if(MSVC AND C10_BUILD_SHARED_LIBS) - install(FILES $ DESTINATION lib OPTIONAL) + install(FILES $ DESTINATION bin OPTIONAL) endif() diff --git a/c10/cuda/CMakeLists.txt b/c10/cuda/CMakeLists.txt index 3327dab..4a0476f 100644 --- a/c10/cuda/CMakeLists.txt +++ b/c10/cuda/CMakeLists.txt @@ -82,7 +82,7 @@ if(NOT BUILD_LIBTORCHLESS) # Note: for now, we will put all export path into one single Caffe2Targets group # to deal with the cmake deployment need. Inside the Caffe2Targets set, the # individual libraries like libc10.so and libcaffe2.so are still self-contained. -install(TARGETS c10_cuda EXPORT Caffe2Targets DESTINATION lib) +install(TARGETS c10_cuda EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") endif() diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt index d2d23b7..51930dd 100644 --- a/caffe2/CMakeLists.txt +++ b/caffe2/CMakeLists.txt @@ -86,7 +86,7 @@ endif() # ---[ Caffe2 build # Note: the folders that are being commented out have not been properly # addressed yet. - +if(FALSE) if(NOT MSVC AND USE_XNNPACK) if(NOT TARGET fxdiv) set(FXDIV_BUILD_TESTS OFF CACHE BOOL "") @@ -96,6 +96,7 @@ if(NOT MSVC AND USE_XNNPACK) "${CMAKE_BINARY_DIR}/FXdiv") endif() endif() +endif() add_subdirectory(core) add_subdirectory(serialize) @@ -557,7 +558,7 @@ if(USE_CUDA) endif() target_link_libraries(caffe2_nvrtc PRIVATE caffe2::nvrtc ${DELAY_LOAD_FLAGS}) - install(TARGETS caffe2_nvrtc DESTINATION "${TORCH_INSTALL_LIB_DIR}") + install(TARGETS caffe2_nvrtc RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") if(USE_NCCL) list(APPEND Caffe2_GPU_SRCS ${TORCH_SRC_DIR}/csrc/cuda/nccl.cpp) @@ -1134,7 +1135,7 @@ if(USE_XPU) endif() endif() -if(NOT MSVC AND USE_XNNPACK) +if(FALSE) TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv) endif() @@ -1251,11 +1252,11 @@ if(USE_KINETO) ${TORCH_ROOT}/third_party/kineto/libkineto/src) endif() -target_include_directories(torch_cpu PRIVATE - ${TORCH_ROOT}/third_party/cpp-httplib) +target_link_libraries(torch_cpu PRIVATE httplib::httplib nlohmann_json::nlohmann_json) +if(APPLE) + target_link_libraries(torch_cpu PUBLIC "-framework CoreFoundation" "-framework CFNetwork") -target_include_directories(torch_cpu PRIVATE - ${TORCH_ROOT}/third_party/nlohmann/include) +endif() install(DIRECTORY "${TORCH_SRC_DIR}/csrc" DESTINATION ${TORCH_INSTALL_INCLUDE_DIR}/torch @@ -1536,17 +1537,17 @@ endif() caffe2_interface_library(torch torch_library) -install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}") +install(TARGETS torch_cpu torch_cpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") if(USE_CUDA) - install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}") + install(TARGETS torch_cuda torch_cuda_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") elseif(USE_ROCM) - install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}") + install(TARGETS torch_hip torch_hip_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") elseif(USE_XPU) - install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}") + install(TARGETS torch_xpu torch_xpu_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") endif() -install(TARGETS torch torch_library EXPORT Caffe2Targets DESTINATION "${TORCH_INSTALL_LIB_DIR}") +install(TARGETS torch torch_library EXPORT Caffe2Targets RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") target_link_libraries(torch PUBLIC torch_cpu_library) @@ -1685,7 +1686,7 @@ if(BUILD_SHARED_LIBS) target_link_libraries(torch_global_deps torch::nvtoolsext) endif() endif() - install(TARGETS torch_global_deps DESTINATION "${TORCH_INSTALL_LIB_DIR}") + install(TARGETS torch_global_deps RUNTIME DESTINATION "${TORCH_INSTALL_BIN_DIR}" LIBRARY DESTINATION "${TORCH_INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${TORCH_INSTALL_LIB_DIR}") endif() # ---[ Caffe2 HIP sources. diff --git a/cmake/Codegen.cmake b/cmake/Codegen.cmake index 724d993..f743939 100644 --- a/cmake/Codegen.cmake +++ b/cmake/Codegen.cmake @@ -36,11 +36,13 @@ endfunction() ################################################################################ # -- [ Deterine commit hash -execute_process( - COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')" - OUTPUT_VARIABLE COMMIT_SHA - WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/.. -) +if(NOT DEFINED COMMIT_SHA) + execute_process( + COMMAND "${Python_EXECUTABLE}" -c "from tools.generate_torch_version import get_sha;print(get_sha('.'), end='')" + OUTPUT_VARIABLE COMMIT_SHA + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/.. + ) +endif() # ---[ Write the macros file configure_file( diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index 5227204..9acaf75 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -46,6 +46,7 @@ if(USE_CUDA) # A helper variable recording the list of Caffe2 dependent libraries # torch::cudart is dealt with separately, due to CUDA_ADD_LIBRARY # design reason (it adds CUDA_LIBRARIES itself). + find_package(NvidiaCutlass CONFIG REQUIRED) set(Caffe2_PUBLIC_CUDA_DEPENDENCY_LIBS ) if(NOT CAFFE2_USE_NVRTC) caffe2_update_option(USE_NVRTC OFF) @@ -378,6 +379,9 @@ if(INTERN_BUILD_MOBILE OR NOT DISABLE_NNPACK_AND_FAMILY) set(USE_PTHREADPOOL ON CACHE BOOL "" FORCE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_PTHREADPOOL") + find_package(unofficial-pthreadpool CONFIG REQUIRED) + add_library(pthreadpool ALIAS unofficial::pthreadpool) + if(NOT TARGET pthreadpool) if(USE_SYSTEM_PTHREADPOOL) add_library(pthreadpool SHARED IMPORTED) @@ -412,6 +416,9 @@ endif() if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(s390x|ppc64le)$") # ---[ Caffe2 uses cpuinfo library in the thread pool # ---[ But it doesn't support s390x/powerpc and thus not used on s390x/powerpc + find_package(cpuinfo CONFIG REQUIRED) + add_library(cpuinfo ALIAS cpuinfo::cpuinfo) + add_library(clog ALIAS cpuinfo::clog) if(NOT TARGET cpuinfo AND USE_SYSTEM_CPUINFO) add_library(cpuinfo SHARED IMPORTED) find_library(CPUINFO_LIBRARY cpuinfo) @@ -476,8 +483,10 @@ endif() # ---[ NNPACK if(USE_NNPACK) - include(${CMAKE_CURRENT_LIST_DIR}/External/nnpack.cmake) - if(NNPACK_FOUND) + + find_package(unofficial-nnpack CONFIG REQUIRED) + add_library(nnpack ALIAS unofficial::nnpack::nnpack) + if(nnpack_FOUND) if(TARGET nnpack) # ---[ NNPACK is being built together with Caffe2: explicitly specify dependency list(APPEND Caffe2_DEPENDENCY_LIBS nnpack) @@ -492,6 +501,12 @@ if(USE_NNPACK) endif() # ---[ XNNPACK +if(USE_XNNPACK) + find_package(unofficial-xnnpack CONFIG REQUIRED) + add_library(XNNPACK ALIAS unofficial::xnnpack::XNNPACK) + add_library(microkernels-prod ALIAS unofficial::xnnpack::microkernels-prod) + list(APPEND Caffe2_DEPENDENCY_LIBS XNNPACK microkernels-prod) +endif() if(USE_XNNPACK AND NOT USE_SYSTEM_XNNPACK) if(NOT DEFINED XNNPACK_SOURCE_DIR) set(XNNPACK_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/XNNPACK" CACHE STRING "XNNPACK source directory") @@ -702,7 +717,7 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST) endif() # ---[ FBGEMM -if(USE_FBGEMM) +if(FALSE) set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party") if(NOT DEFINED FBGEMM_SOURCE_DIR) set(FBGEMM_SOURCE_DIR "${CAFFE2_THIRD_PARTY_ROOT}/fbgemm" CACHE STRING "FBGEMM source directory") @@ -755,6 +770,9 @@ endif() if(USE_FBGEMM) caffe2_update_option(USE_FBGEMM ON) + find_package(fbgemmLibrary REQUIRED) + list(APPEND Caffe2_DEPENDENCY_LIBS fbgemm) + else() caffe2_update_option(USE_FBGEMM OFF) message(WARNING @@ -804,6 +822,8 @@ if(USE_ITT) endif() # ---[ Caffe2 depends on FP16 library for half-precision conversions +find_package(unofficial-fp16 CONFIG REQUIRED) +add_library(fp16 ALIAS unofficial::fp16::fp16) if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16) set(CAFFE2_THIRD_PARTY_ROOT "${PROJECT_SOURCE_DIR}/third_party") # PSIMD is required by FP16 @@ -1155,6 +1175,7 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE) if(MSVC) message(WARNING "Tensorpipe cannot be used on Windows.") else() + if(FALSE) if(USE_CUDA) set(TP_USE_CUDA ON CACHE BOOL "" FORCE) set(TP_ENABLE_CUDA_IPC ON CACHE BOOL "" FORCE) @@ -1177,6 +1198,9 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE) if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0.0") unset(CMAKE_POLICY_VERSION_MINIMUM) endif() + endif() + find_package(unofficial-tensorpipe CONFIG REQUIRED) + add_library(tensorpipe ALIAS unofficial::tensorpipe::tensorpipe) list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe) list(APPEND Caffe2_DEPENDENCY_LIBS nlohmann) @@ -1329,7 +1353,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX) caffe2_interface_library(onnx onnx_library) endif() list(APPEND Caffe2_DEPENDENCY_WHOLE_LINK_LIBS onnx_library) - else() + elseif(FALSE) add_library(onnx SHARED IMPORTED) find_library(ONNX_LIBRARY onnx) if(NOT ONNX_LIBRARY) @@ -1345,6 +1369,8 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX) message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}") list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx) endif() + find_package(ONNX CONFIG REQUIRED) + list(APPEND Caffe2_DEPENDENCY_LIBS ONNX::onnx ONNX::onnx_proto) # Recover the build shared libs option. set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS}) endif() @@ -1515,6 +1541,9 @@ if(NOT INTERN_BUILD_MOBILE) endif() if(USE_KLEIDIAI) + find_package(KleidiAI CONFIG REQUIRED) + list(APPEND Caffe2_DEPENDENCY_LIBS KleidiAI::kleidiai) + elseif(FALSE) if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "11" ) message(WARNING "KleidiAI: Using non-supported Clang version. Expected 11 or newer, received ${CMAKE_C_COMPILER_VERSION}.") endif() @@ -1586,6 +1615,7 @@ endif() # set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE) +if(0) add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt) # Disable compiler feature checks for `fmt`. @@ -1596,7 +1626,8 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt) # `fmt` is compatible with a superset of the compilers that PyTorch is, it # shouldn't be too bad to just disable the checks. set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "") - +endif() +find_package(fmt REQUIRED) list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only) set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE) @@ -1745,13 +1776,10 @@ if(USE_KINETO) endif() endif() -# Include google/FlatBuffers -include(${CMAKE_CURRENT_LIST_DIR}/FlatBuffers.cmake) -# Include cpp-httplib -add_library(httplib INTERFACE IMPORTED) -target_include_directories(httplib SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/cpp-httplib) +find_package(FlatBuffers REQUIRED) +add_library(flatbuffers ALIAS flatbuffers::flatbuffers) +find_package(httplib REQUIRED) +find_package(nlohmann_json REQUIRED) +add_library(nlohmann ALIAS nlohmann_json) -# Include nlohmann-json -add_library(nlohmann INTERFACE IMPORTED) -include_directories(nlohmann SYSTEM INTERFACE ${PROJECT_SOURCE_DIR}/third_party/nlohmann/include) diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt index 8b8ebdc..1777c0e 100644 --- a/torch/CMakeLists.txt +++ b/torch/CMakeLists.txt @@ -59,18 +59,7 @@ set(TORCH_PYTHON_INCLUDE_DIRECTORIES ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}/aten/src ${CMAKE_BINARY_DIR}/caffe2/aten/src - ${CMAKE_BINARY_DIR}/third_party - ${CMAKE_BINARY_DIR}/third_party/onnx - ${TORCH_ROOT}/third_party/valgrind-headers - - ${TORCH_ROOT}/third_party/gloo - ${TORCH_ROOT}/third_party/onnx - ${TORCH_ROOT}/third_party/flatbuffers/include - ${TORCH_ROOT}/third_party/kineto/libkineto/include - ${TORCH_ROOT}/third_party/cpp-httplib - ${TORCH_ROOT}/third_party/nlohmann/include - ${TORCH_SRC_DIR}/csrc ${TORCH_SRC_DIR}/csrc/api/include ${TORCH_SRC_DIR}/lib ================================================ FILE: ports/libtorch/fix-dist-cuda.patch ================================================ diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake index 9acaf75..4f44d3e 100644 --- a/cmake/Dependencies.cmake +++ b/cmake/Dependencies.cmake @@ -1205,6 +1205,8 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE) list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe) list(APPEND Caffe2_DEPENDENCY_LIBS nlohmann) if(USE_CUDA) + add_library(tensorpipe_cuda ALIAS unofficial::tensorpipe::tensorpipe_cuda) + list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS tensorpipe_cuda) elseif(USE_ROCM) message(WARNING "TensorPipe doesn't yet support ROCm") @@ -1279,7 +1281,7 @@ if(USE_GLOO) endif() # Pick the right dependency depending on USE_CUDA list(APPEND Caffe2_DEPENDENCY_LIBS gloo) - if(USE_CUDA) + if(FALSE) list(APPEND Caffe2_CUDA_DEPENDENCY_LIBS gloo_cuda) elseif(USE_ROCM) list(APPEND Caffe2_HIP_DEPENDENCY_LIBS gloo_hip) ================================================ FILE: ports/libtorch/fix-glog.patch ================================================ diff --git a/c10/util/Logging.cpp b/c10/util/Logging.cpp index c463658..a523040 100644 --- a/c10/util/Logging.cpp +++ b/c10/util/Logging.cpp @@ -362,7 +362,7 @@ void UpdateLoggingLevelsFromFlags() { void ShowLogInfoToStderr() { FLAGS_logtostderr = 1; - FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO); + FLAGS_minloglevel = std::min(FLAGS_minloglevel, google::GLOG_INFO); } } // namespace c10 diff --git a/c10/util/Logging.cpp b/c10/util/Logging.cpp index a523040..04375b6 100644 --- a/c10/util/Logging.cpp +++ b/c10/util/Logging.cpp @@ -295,23 +295,13 @@ C10_DEFINE_int( google::GLOG_WARNING, "The minimum log level that caffe2 will output."); -// Google glog's api does not have an external function that allows one to check -// if glog is initialized or not. It does have an internal function - so we are -// declaring it here. This is a hack but has been used by a bunch of others too -// (e.g. Torch). -namespace google { -namespace glog_internal_namespace_ { -bool IsGoogleLoggingInitialized(); -} // namespace glog_internal_namespace_ -} // namespace google - namespace c10 { namespace { void initGoogleLogging(char const* name) { #if !defined(_MSC_VER) // This trick can only be used on UNIX platforms - if (!::google::glog_internal_namespace_::IsGoogleLoggingInitialized()) + if (!::google::IsGoogleLoggingInitialized()) #endif { ::google::InitGoogleLogging(name); ================================================ FILE: ports/libtorch/fix-osx.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 463788e..1ca26e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -796,7 +796,10 @@ if(NOT CMAKE_BUILD_TYPE) endif() # The below means we are cross compiling for arm64 or x86_64 on MacOSX -if(NOT IOS +if(TRUE) + message(STATUS "Using custom protoc executable: ${PROTOBUF_PROTOC_EXECUTABLE}") + message(STATUS "Using custom caffe2 protoc executable: ${CAFFE2_CUSTOM_PROTOC_EXECUTABLE}") +elseif(NOT IOS AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_OSX_ARCHITECTURES MATCHES "^(x86_64|arm64)$") set(CROSS_COMPILING_MACOSX TRUE) ================================================ FILE: ports/libtorch/fix-pytorch-pr-156630.patch ================================================ diff --git a/aten/src/ATen/native/cuda/SegmentReduce.cu b/aten/src/ATen/native/cuda/SegmentReduce.cu index 04bec04..3ea8af2 100644 --- a/aten/src/ATen/native/cuda/SegmentReduce.cu +++ b/aten/src/ATen/native/cuda/SegmentReduce.cu @@ -1,5 +1,6 @@ #define TORCH_ASSERT_ONLY_METHOD_OPERATORS #include +#include #include #include @@ -17,6 +18,10 @@ #include #endif +// SegmentReduce compilation with CUDA-12.9 causes NVCC crash on Windows +// See https://github.com/pytorch/pytorch/issues/156181 +#if !defined(_WIN32) || CUDART_VERSION < 12090 + namespace at::native { namespace { @@ -600,3 +605,5 @@ REGISTER_DISPATCH( &_segment_reduce_offsets_backward_cuda_kernel); } // namespace at::native + +#endif // !defined(_WIN32) || CUDART_VERSION < 12090 \ No newline at end of file ================================================ FILE: ports/libtorch/fix-vulkan.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ca26e3..7d3442c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1104,7 +1104,8 @@ if(NOT MSVC) else() # Define export functions for AOTI. add_compile_definitions(EXPORT_AOTI_FUNCTIONS) - + # needed for vulkan compile + add_compile_definitions(_USE_MATH_DEFINES) # math.h macros like M_PI, M_SQRT2, M_2_SQRTPI, etc. # skip unwanted includes from windows.h add_compile_definitions(WIN32_LEAN_AND_MEAN) # Windows SDK broke compatibility since version 25131, but introduced this diff --git a/aten/src/ATen/native/vulkan/api/Allocator.h b/aten/src/ATen/native/vulkan/api/Allocator.h index a89c333..a9a41ef 100644 --- a/aten/src/ATen/native/vulkan/api/Allocator.h +++ b/aten/src/ATen/native/vulkan/api/Allocator.h @@ -50,7 +50,11 @@ #pragma clang diagnostic ignored "-Winconsistent-missing-destructor-override" #endif /* __clang__ */ -#include +#if __has_include() +#include +#else +#include +#endif #ifdef __clang__ #pragma clang diagnostic pop diff --git a/aten/src/ATen/native/vulkan/api/QueryPool.cpp b/aten/src/ATen/native/vulkan/api/QueryPool.cpp index 9c0c7fb..ae4a81f 100644 --- a/aten/src/ATen/native/vulkan/api/QueryPool.cpp +++ b/aten/src/ATen/native/vulkan/api/QueryPool.cpp @@ -9,6 +9,7 @@ #include #include #include +#include namespace at { namespace native { ================================================ FILE: ports/libtorch/kineto.patch ================================================ diff --git a/libkineto/CMakeLists.txt b/libkineto/CMakeLists.txt index 7d36ffb9d4..8f97998114 100644 --- a/libkineto/CMakeLists.txt +++ b/libkineto/CMakeLists.txt @@ -111,27 +111,8 @@ endif() target_compile_options(kineto_base PRIVATE "${KINETO_COMPILE_OPTIONS}") target_compile_options(kineto_api PRIVATE "${KINETO_COMPILE_OPTIONS}") -if(NOT TARGET fmt) - if(NOT FMT_SOURCE_DIR) - set(FMT_SOURCE_DIR "${LIBKINETO_THIRDPARTY_DIR}/fmt" - CACHE STRING "fmt source directory from submodules") - endif() - - # Build FMT. - # FMT and some other libraries use BUILD_SHARED_LIBS to control - # the library type. - # Save and restore the value after configuring FMT - set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) - set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE) - set(FMT_LIBRARY_TYPE static CACHE STRING "Set lib type to static") - add_subdirectory("${FMT_SOURCE_DIR}" "${LIBKINETO_BINARY_DIR}/fmt") - set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON) - set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE) -endif() - -set(FMT_INCLUDE_DIR "${FMT_SOURCE_DIR}/include") -message(STATUS "Kineto: FMT_SOURCE_DIR = ${FMT_SOURCE_DIR}") -message(STATUS "Kineto: FMT_INCLUDE_DIR = ${FMT_INCLUDE_DIR}") +find_package(fmt REQUIRED) + if (NOT CUPTI_INCLUDE_DIR) set(CUPTI_INCLUDE_DIR "${CUDA_SOURCE_DIR}/extras/CUPTI/include") endif() ================================================ FILE: ports/libtorch/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/pytorch REF "v${VERSION}" SHA512 a9fc2252af9031c2cd46dde558c491aea8bc322fb80157a7760f300a44b759d4bfe866f030fbb974b80493057cfff4dd512498f99a100ed6d05bf620258ed37e HEAD_REF master PATCHES fix-cmake.patch fix-osx.patch fix-vulkan.patch fix-glog.patch fix-pytorch-pr-156630.patch # https://github.com/pytorch/pytorch/pull/156630 fix-dist-cuda.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/caffe2/core/macros.h") # We must use generated header files vcpkg_from_github( OUT_SOURCE_PATH src_kineto REPO pytorch/kineto REF d9753139d181b9ff42872465aac0e5d3018be415 SHA512 f037fac78e566c40108acf9eace55a8f67a2c5b71f298fd3cd17bf22cf05240c260fd89f017fa411656a7505ec9073a06a3048e191251d5cfc4b52c237b37d0b HEAD_REF main PATCHES kineto.patch ) file(COPY "${src_kineto}/" DESTINATION "${SOURCE_PATH}/third_party/kineto") vcpkg_from_github( OUT_SOURCE_PATH src_cudnn REPO NVIDIA/cudnn-frontend # new port ? REF 2533f5e5c1877fd76266133c1479ef1643ce3a8b # 1.6.1 SHA512 8caacdf9f7dbd6ce55507f5f7165db8640b681e2a7dfd6a841de8eaa3489cff5ba41d11758cc464320b2ff9a491f8234e1749580cf43cac702f07cf82611e084 HEAD_REF main ) file(COPY "${src_cudnn}/" DESTINATION "${SOURCE_PATH}/third_party/cudnn_frontend") file(REMOVE "${SOURCE_PATH}/cmake/Modules/FindBLAS.cmake" "${SOURCE_PATH}/cmake/Modules/FindLAPACK.cmake" "${SOURCE_PATH}/cmake/Modules/FindCUDA.cmake" "${SOURCE_PATH}/cmake/Modules/FindCUDAToolkit.cmake" "${SOURCE_PATH}/cmake/Modules/Findpybind11.cmake" ) find_program(FLATC NAMES flatc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH) message(STATUS "Using flatc: ${FLATC}") vcpkg_execute_required_process( COMMAND ${FLATC} --cpp --no-prefix --scoped-enums --gen-mutable mobile_bytecode.fbs LOGNAME codegen-flatc-mobile_bytecode WORKING_DIRECTORY "${SOURCE_PATH}/torch/csrc/jit/serialization" ) find_program(PROTOC NAMES protoc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH) message(STATUS "Using protoc: ${PROTOC}") x_vcpkg_get_python_packages( PYTHON_VERSION 3 PACKAGES typing-extensions pyyaml # numpy OUT_PYTHON_VAR PYTHON3 ) message(STATUS "Using Python3: ${PYTHON3}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dist USE_DISTRIBUTED # MPI, Gloo, TensorPipe zstd USE_ZSTD fbgemm USE_FBGEMM opencv USE_OPENCV opencl USE_OPENCL mkldnn USE_MKLDNN cuda USE_CUDA cuda USE_CUDNN cuda USE_NCCL cuda USE_SYSTEM_NCCL cuda USE_NVRTC cuda AT_CUDA_ENABLED cuda AT_CUDNN_ENABLED cuda USE_MAGMA vulkan USE_VULKAN vulkan USE_VULKAN_RELAXED_PRECISION rocm USE_ROCM # This is an alternative to cuda not a feature! (Not in vcpkg.json!) -> disabled llvm USE_LLVM mpi USE_MPI nnpack USE_NNPACK # todo: check use of `DISABLE_NNPACK_AND_FAMILY` # No feature in vcpkg yet so disabled. -> Requires numpy build by vcpkg itself python BUILD_PYTHON python USE_NUMPY glog USE_GLOG gflags USE_GFLAGS ) if("dist" IN_LIST FEATURES) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) list(APPEND FEATURE_OPTIONS -DUSE_TENSORPIPE=ON) endif() if(VCPKG_TARGET_IS_OSX) list(APPEND FEATURE_OPTIONS -DUSE_LIBUV=ON) endif() list(APPEND FEATURE_OPTIONS -DUSE_GLOO=${VCPKG_TARGET_IS_LINUX}) endif() if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() if("vulkan" IN_LIST FEATURES) # Vulkan::glslc in FindVulkan.cmake find_program(GLSLC NAMES glslc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/shaderc" REQUIRED) message(STATUS "Using glslc: ${GLSLC}") list(APPEND FEATURE_OPTIONS "-DVulkan_GLSLC_EXECUTABLE:FILEPATH=${GLSLC}") endif() set(TARGET_IS_MOBILE OFF) if(VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS) set(TARGET_IS_MOBILE ON) endif() set(TARGET_IS_APPLE OFF) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) set(TARGET_IS_APPLE ON) endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_STATIC_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DProtobuf_PROTOC_EXECUTABLE:FILEPATH=${PROTOC} -DCAFFE2_CUSTOM_PROTOC_EXECUTABLE:FILEPATH=${PROTOC} -DPython_EXECUTABLE:FILEPATH=${PYTHON3} -DPython3_EXECUTABLE:FILEPATH=${PYTHON3} -DBUILD_PYTHON=OFF -DUSE_NUMPY=OFF -DCAFFE2_STATIC_LINK_CUDA=ON -DCAFFE2_USE_MSVC_STATIC_RUNTIME=${USE_STATIC_RUNTIME} -DBUILD_CUSTOM_PROTOBUF=OFF -DBUILD_PYTHON=OFF -DUSE_LITE_PROTO=OFF -DBUILD_TEST=OFF -DATEN_NO_TEST=ON -DUSE_SYSTEM_LIBS=ON -DUSE_METAL=OFF -DUSE_FLASH_ATTENTION=OFF -DUSE_PYTORCH_METAL=OFF -DUSE_PYTORCH_METAL_EXPORT=OFF -DUSE_PYTORCH_QNNPACK:BOOL=OFF -DUSE_ITT=OFF -DUSE_ROCKSDB=ON -DUSE_OBSERVERS=OFF -DUSE_KINETO=OFF -DUSE_ROCM=OFF -DUSE_NUMA=OFF -DUSE_SYSTEM_LIBS=ON -DBUILD_JNI=${VCPKG_TARGET_IS_ANDROID} -DUSE_NNAPI=${VCPKG_TARGET_IS_ANDROID} ${BLAS_OPTIONS} # BLAS=MKL not supported in this port -DUSE_MKLDNN=OFF -DUSE_MKLDNN_CBLAS=OFF #-DCAFFE2_USE_MKL=ON #-DAT_MKL_ENABLED=ON -DAT_MKLDNN_ENABLED=OFF -DUSE_OPENCL=ON -DUSE_KINETO=OFF # # Should be enabled in-future along with the "python" feature (currently disabled) # OPTIONS_RELEASE # -DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/lib/python311.lib # OPTIONS_DEBUG # -DPYTHON_LIBRARY=${CURRENT_INSTALLED_DIR}/debug/lib/python311_d.lib MAYBE_UNUSED_VARIABLES USE_NUMA USE_SYSTEM_BIND11 MKLDNN_CPU_RUNTIME PYTHON_LIBRARY ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME Caffe2 CONFIG_PATH "share/cmake/Caffe2" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME torch CONFIG_PATH "share/cmake/Torch" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME ATen CONFIG_PATH "share/cmake/ATen" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/torch/TorchConfig.cmake" "/../../../" "/../../") # Traverse the folder and remove "some" empty folders function(cleanup_once folder) if(NOT IS_DIRECTORY "${folder}") return() endif() file(GLOB paths LIST_DIRECTORIES true "${folder}/*") list(LENGTH paths count) # 1. remove if the given folder is empty if(count EQUAL 0) file(REMOVE_RECURSE "${folder}") message(STATUS "Removed ${folder}") return() endif() # 2. repeat the operation for hop 1 sub-directories foreach(path ${paths}) cleanup_once(${path}) endforeach() endfunction() # Some folders may contain empty folders. They will become empty after `cleanup_once`. # Repeat given times to delete new empty folders. function(cleanup_repeat folder repeat) if(NOT IS_DIRECTORY "${folder}") return() endif() while(repeat GREATER_EQUAL 1) math(EXPR repeat "${repeat} - 1" OUTPUT_FORMAT DECIMAL) cleanup_once("${folder}") endwhile() endfunction() cleanup_repeat("${CURRENT_PACKAGES_DIR}/include" 5) cleanup_repeat("${CURRENT_PACKAGES_DIR}/lib/site-packages" 13) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") set(VCPKG_POLICY_DLLS_WITHOUT_EXPORTS enabled) # torch_global_deps.dll is empty.c and just for linking deps ================================================ FILE: ports/libtorch/vcpkg.json ================================================ { "name": "libtorch", "version": "2.7.1", "description": "Tensors and Dynamic neural networks in Python with strong GPU acceleration", "homepage": "https://pytorch.org/", "license": null, "supports": "(windows & !static) | osx | linux", "dependencies": [ "blas", "cpp-httplib", "cpuinfo", "eigen3", { "name": "fbgemm", "platform": "x64" }, "flatbuffers", { "name": "flatbuffers", "host": true }, "fmt", "foxi", "fp16", "gemmlowp", "lapack", "lmdb", "mimalloc", "nlohmann-json", "onnx", "onnx-optimizer", "opencl", "pocketfft", "protobuf", { "name": "protobuf", "host": true }, "pthreadpool", "pybind11", "sleef", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, "xnnpack" ], "default-features": [ "gflags", "glog", "opencv", "zstd" ], "features": { "cuda": { "description": "Build with CUDA GPU backend", "supports": "(windows & x64 & !staticcrt) | (linux & x64)", "dependencies": [ "cuda", "cudnn", { "name": "gloo", "features": [ "cuda" ], "platform": "linux" }, "magma", { "name": "nccl", "platform": "linux" }, "nvidia-cutlass", { "name": "tensorpipe", "features": [ "cuda" ], "platform": "linux" } ] }, "dist": { "description": "Use distributed with MPI, Gloo, libuv, TensorPipe", "supports": "linux | windows", "dependencies": [ { "name": "gloo", "platform": "linux" }, { "name": "libtorch", "default-features": false, "features": [ "mpi" ], "platform": "linux" }, { "name": "libuv", "platform": "windows | osx" }, { "name": "tensorpipe", "platform": "linux" } ] }, "gflags": { "description": "Build with gflags", "dependencies": [ "gflags" ] }, "glog": { "description": "Build with glog", "dependencies": [ "glog" ] }, "llvm": { "description": "Build with LLVM", "dependencies": [ "llvm" ] }, "mpi": { "description": "Build with MPI", "dependencies": [ "mpi" ] }, "nnpack": { "description": "Build with NNPack", "supports": "linux | osx", "dependencies": [ "nnpack" ] }, "opencv": { "description": "Build with OpenCV", "dependencies": [ "opencv" ] }, "vulkan": { "description": "Build with Vulkan GPU backend", "dependencies": [ { "name": "shaderc", "host": true }, "vulkan", "vulkan-loader", "vulkan-memory-allocator" ] }, "zstd": { "description": "Build with ZSTD", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libtorrent/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) # Building python bindings is currently broken on Windows if("python" IN_LIST FEATURES) message(FATAL_ERROR "The python feature is currently broken on Windows") endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") set(_static_runtime ON) endif() endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES deprfun deprecated-functions examples build_examples iconv iconv python python-bindings test build_tests tools build_tools ) if("python" IN_LIST FEATURES) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(${PYTHON3_PATH}) file(GLOB BOOST_PYTHON_LIB "${CURRENT_INSTALLED_DIR}/lib/*boost_python*") string(REGEX REPLACE ".*(python)([0-9])([0-9]+).*" "\\1\\2\\3" _boost-python-module-name "${BOOST_PYTHON_LIB}") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arvidn/libtorrent REF "v${VERSION}" SHA512 375fb12754ce73b34b215c1ca077b0ec58a8c91f6a6e4a48e2ae55251be38f647405d135ebeae38f8b0dfb478bcea8d5f0d6509e97f1baddbc2cd2e788948f2a HEAD_REF RC_2_0 ) vcpkg_from_github( OUT_SOURCE_PATH TRYSIGNAL_SOURCE_PATH REPO arvidn/try_signal REF 105cce59972f925a33aa6b1c3109e4cd3caf583d #2022-10-27 SHA512 4a0090755831e0e4a1930817345fa5934144421d9a9d710fe8ed3712233fa2fa037fc0e0d4f88b7cc8fb1bc05fe2d55372af1ff47d6fbf5208e03f45f2a424e4 HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH ASIO_GNUTLS_SOURCE_PATH REPO paullouisageneau/boost-asio-gnutls REF a57d4d36923c5fafa9698e14be16b8bc2913700a SHA512 1e093dd4e999cce9c6d74f1d4c2d20f73512258b83505c307c7d53b8c7ed15626a8e90c8e6a6280827aafa069bc233c0c6f4c9276f1c332e4b141c7c350c47c0 HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH LIB_SIMULATOR_SOURCE_PATH REPO arvidn/libsimulator REF 39144efe83fcd38778cf76fc609e3475694642ca #2022-10-27 SHA512 a021f769d52d127355ecaceaf912bf3e86aaa256d4768d270fbe6066793b6159eddecd0262f3f2158602f883d49b3aac39eb79be5399212cdd7711f921ffa15a HEAD_REF master ) file(COPY ${TRYSIGNAL_SOURCE_PATH}/ DESTINATION ${SOURCE_PATH}/deps/try_signal) file(COPY ${ASIO_GNUTLS_SOURCE_PATH}/ DESTINATION ${SOURCE_PATH}/deps/asio-gnutls) file(COPY ${LIB_SIMULATOR_SOURCE_PATH}/ DESTINATION ${SOURCE_PATH}/simulation/libsimulator) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dboost-python-module-name=${_boost-python-module-name} -Dstatic_runtime=${_static_runtime} -DPython3_USE_STATIC_LIBS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME LibtorrentRasterbar CONFIG_PATH lib/cmake/LibtorrentRasterbar) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Do not duplicate include files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/cmake") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/libtorrent/vcpkg.json ================================================ { "name": "libtorrent", "version": "2.0.11", "maintainers": "Arvid Norberg ", "description": "An efficient feature complete C++ BitTorrent implementation", "homepage": "https://libtorrent.org", "documentation": "https://libtorrent.org/reference.html", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-chrono", "boost-config", "boost-crc", "boost-date-time", "boost-iterator", "boost-logic", "boost-multi-index", "boost-multiprecision", "boost-pool", "boost-random", "boost-scope-exit", "boost-system", "boost-variant", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "iconv" ], "features": { "deprfun": { "description": "build with deprecated functions enabled" }, "examples": { "description": "build the examples in the examples directory" }, "iconv": { "description": "build with libiconv", "dependencies": [ "libiconv" ] }, "python": { "description": "build the python bindings in bindings/python directory", "dependencies": [ "boost-python" ] }, "test": { "description": "build the libtorrent tests" }, "tools": { "description": "build the tools in the tools directory" } } } ================================================ FILE: ports/libtracepoint/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_BUILD_TYPE release) # Windows port only includes headers. endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "microsoft/LinuxTracepoints" REF "v${VERSION}" SHA512 baf27c967b2fa1fb8e8684951fd8e12e40fe9c23f5052a2d77c63eceab6ddfc112537422b97c37cfb0e479361fa8aedea6d8d7edfae91810f1ed696060fcb822 HEAD_REF main) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libtracepoint" OPTIONS ${FEATURE_OPTIONS} -DBUILD_SAMPLES=OFF -DBUILD_TESTS=OFF) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if (BUILD_TOOLS) vcpkg_copy_tools( TOOL_NAMES tracepoint-register AUTO_CLEAN) endif() if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup( PACKAGE_NAME tracepoint CONFIG_PATH lib/cmake/tracepoint DO_NOT_DELETE_PARENT_CONFIG_PATH) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME tracepoint-headers CONFIG_PATH lib/cmake/tracepoint-headers) if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libtracepoint/vcpkg.json ================================================ { "name": "libtracepoint", "version": "1.4.0", "description": "C/C++ interface for generating Linux Tracepoints", "homepage": "https://github.com/microsoft/LinuxTracepoints/", "license": "MIT", "supports": "linux | windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build user tools: tracepoint-register", "supports": "linux" } } } ================================================ FILE: ports/libtracepoint-control/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "microsoft/LinuxTracepoints" REF "v${VERSION}" SHA512 baf27c967b2fa1fb8e8684951fd8e12e40fe9c23f5052a2d77c63eceab6ddfc112537422b97c37cfb0e479361fa8aedea6d8d7edfae91810f1ed696060fcb822 HEAD_REF main) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libtracepoint-control-cpp" OPTIONS ${FEATURE_OPTIONS} -DBUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if (BUILD_TOOLS) vcpkg_copy_tools( TOOL_NAMES perf-collect AUTO_CLEAN) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME tracepoint-control CONFIG_PATH lib/cmake/tracepoint-control) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libtracepoint-control/vcpkg.json ================================================ { "name": "libtracepoint-control", "version": "1.4.0", "description": "C++ classes for collecting Linux Tracepoints", "homepage": "https://github.com/microsoft/LinuxTracepoints/", "license": "MIT", "supports": "linux", "dependencies": [ { "name": "libtracepoint-decode", "version>=": "1.4.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build user tools: perf-collect", "supports": "linux" } } } ================================================ FILE: ports/libtracepoint-decode/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "microsoft/LinuxTracepoints" REF "v${VERSION}" SHA512 baf27c967b2fa1fb8e8684951fd8e12e40fe9c23f5052a2d77c63eceab6ddfc112537422b97c37cfb0e479361fa8aedea6d8d7edfae91810f1ed696060fcb822 HEAD_REF main) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libtracepoint-decode-cpp") vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_cmake_config_fixup( PACKAGE_NAME tracepoint-decode CONFIG_PATH lib/cmake/tracepoint-decode) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/libtracepoint-decode/vcpkg.json ================================================ { "name": "libtracepoint-decode", "version": "1.4.0", "description": "C++ classes for decoding Linux Tracepoints", "homepage": "https://github.com/microsoft/LinuxTracepoints/", "license": "MIT", "supports": "linux | windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libu2f-server/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(libu2f-server C) file(GLOB_RECURSE LIBU2F_SERVER_HEADERS u2f-server/*.h) file(GLOB_RECURSE LIBU2F_SERVER_SOURCE u2f-server/*.c) add_library(libu2f-server ${LIBU2F_SERVER_SOURCE}) target_include_directories(libu2f-server PUBLIC $ $) target_compile_definitions(libu2f-server PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996") find_package(json-c CONFIG REQUIRED) find_package(OpenSSL REQUIRED) target_link_libraries(libu2f-server PRIVATE OpenSSL::SSL OpenSSL::Crypto json-c::json-c) install(TARGETS libu2f-server EXPORT libu2f-serverConfig RUNTIME DESTINATION "bin" ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib" ) INSTALL(FILES ${LIBU2F_SERVER_HEADERS} DESTINATION "include/libu2f-server") install(EXPORT libu2f-serverConfig FILE libu2f-serverConfig.cmake NAMESPACE libu2f-server:: DESTINATION "share/libu2f-server" ) ================================================ FILE: ports/libu2f-server/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Yubico/libu2f-server REF "libu2f-server-${VERSION}" SHA512 085f8e7d74c1efb347747b8930386f18ba870f668f82e9bd479c9f8431585c5dc7f95b2f6b82bdd3a6de0c06f8cb2fbf51c363ced54255a936ab96536158ee59 HEAD_REF master PATCHES windows.patch strndup-fix.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/u2f-server-version.h" DESTINATION "${SOURCE_PATH}/u2f-server") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # The include file must be patched after the build has completed, because the source files use the wrong subdirectory name! vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libu2f-server/u2f-server.h" "#include " "#include " ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libu2f-server/strndup-fix.patch ================================================ diff --git a/u2f-server/core.c b/u2f-server/core.c index 294c94b..746932b 100644 --- a/u2f-server/core.c +++ b/u2f-server/core.c @@ -211,7 +211,7 @@ u2fs_rc u2fs_set_keyHandle(u2fs_ctx_t * ctx, const char *keyHandle) ctx->keyHandle = NULL; } - ctx->keyHandle = strndup(keyHandle, strlen(keyHandle)); + ctx->keyHandle = strdup(keyHandle); if (ctx->keyHandle == NULL) return U2FS_MEMORY_ERROR; @@ -726,7 +726,7 @@ static u2fs_rc decode_clientData(const char *clientData, char **output) fprintf(stderr, "clientData: %s\n", data); } - *output = strndup(data, strlen(data)); + *output = strdup(data); free(data); data = NULL; @@ -870,7 +870,7 @@ u2fs_rc u2fs_registration_verify(u2fs_ctx_t * ctx, const char *response, goto failure; u2fs_EC_KEY_t *key_ptr; - (*output)->keyHandle = strndup(buf, strlen(buf)); + (*output)->keyHandle = strdup(buf); rc = decode_user_key(user_public_key, &key_ptr); if (rc != U2FS_OK) ================================================ FILE: ports/libu2f-server/u2f-server-version.h ================================================ /* * Copyright (c) 2014 Yubico AB * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef U2F_SERVER_VERSION_H #define U2F_SERVER_VERSION_H #ifdef __cplusplus extern "C" { #endif /** * U2FS_VERSION_STRING * * Pre-processor symbol with a string that describe the header file * version number. Used together with u2fs_check_version() to verify * header file and run-time library consistency. */ #define U2FS_VERSION_STRING "1.1.0" /** * U2FS_VERSION_NUMBER * * Pre-processor symbol with a hexadecimal value describing the header * file version number. For example, when the header version is 1.2.3 * this symbol will have the value 0x01020300. The last two digits * are only used between public releases, and will otherwise be 00. */ #define U2FS_VERSION_NUMBER 0x01010000 /** * U2FS_VERSION_MAJOR * * Pre-processor symbol with a decimal value that describe the major * level of the header file version number. For example, when the * header version is 1.2.3 this symbol will be 1. */ #define U2FS_VERSION_MAJOR 1 /** * U2FS_VERSION_MINOR * * Pre-processor symbol with a decimal value that describe the minor * level of the header file version number. For example, when the * header version is 1.2.3 this symbol will be 2. */ #define U2FS_VERSION_MINOR 1 /** * U2FS_VERSION_PATCH * * Pre-processor symbol with a decimal value that describe the patch * level of the header file version number. For example, when the * header version is 1.2.3 this symbol will be 3. */ #define U2FS_VERSION_PATCH 0 #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #ifdef __cplusplus } #endif #endif ================================================ FILE: ports/libu2f-server/vcpkg.json ================================================ { "name": "libu2f-server", "version": "1.1.0", "port-version": 6, "description": "Yubico Universal 2nd Factor (U2F) Server C Library", "homepage": "https://github.com/Yubico/libu2f-server", "supports": "(x86 | x64) & windows", "dependencies": [ "json-c", "openssl", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libu2f-server/windows.patch ================================================ diff --git a/u2f-server/cdecode.c b/u2f-server/cdecode.c index 6fff114..dc05ca5 100644 --- a/u2f-server/cdecode.c +++ b/u2f-server/cdecode.c @@ -5,7 +5,7 @@ This is part of the libb64 project, and has been placed in the public domain. For details, see http://sourceforge.net/projects/libb64 */ -#include +#include "b64/cdecode.h" int base64_decode_value(char value_in) { diff --git a/u2f-server/cencode.c b/u2f-server/cencode.c index eebb24a..f3b7fa4 100644 --- a/u2f-server/cencode.c +++ b/u2f-server/cencode.c @@ -5,7 +5,7 @@ This is part of the libb64 project, and has been placed in the public domain. For details, see http://sourceforge.net/projects/libb64 */ -#include +#include "b64/cencode.h" const int CHARS_PER_LINE = 72; diff --git a/u2f-server/core.c b/u2f-server/core.c index da440ec..294c94b 100644 --- a/u2f-server/core.c +++ b/u2f-server/core.c @@ -30,8 +30,7 @@ #include "internal.h" #include -#include -#include +#include #include "crypto.h" #include "b64/cencode.h" #include "b64/cdecode.h" ================================================ FILE: ports/libudfread/msvc.diff ================================================ diff --git a/src/default_blockinput.c b/src/default_blockinput.c index 3926e65..1be4505 100644 --- a/src/default_blockinput.c +++ b/src/default_blockinput.c @@ -37,6 +37,9 @@ #ifdef _WIN32 #include +#if !defined(ssize_t) +#define ssize_t SSIZE_T +#endif #ifndef HAVE_UNISTD_H #include #endif diff --git a/src/udfread.h b/src/udfread.h index d6fd9ef..94b6cbb 100644 --- a/src/udfread.h +++ b/src/udfread.h @@ -35,6 +35,11 @@ extern "C" { #define UDF_PUBLIC #endif +#if defined(_WIN32) && !defined(ssize_t) +#include +#define ssize_t SSIZE_T +#endif + /** * @file udfread/udfread.h * external API header ================================================ FILE: ports/libudfread/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://code.videolan.org REPO videolan/libudfread REF ${VERSION} SHA512 63cdd8ce9b7525d17f8f685b87d1232334ebfe9ffcd48b3bb189231f4d3c88c11a19d3435be9252058d374b1cbd86eb38a045c969699730cb9729a541582f645 PATCHES msvc.diff ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Denable_examples=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libudfread/vcpkg.json ================================================ { "name": "libudfread", "version-semver": "1.2.0", "description": "UDF filesystem access library", "homepage": "https://code.videolan.org/videolan/libudfread", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libudis86/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (udis86) add_definitions(-DHAVE_STRING_H) if (MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() set( lib_sources libudis86/decode.c libudis86/itab.c libudis86/syn-att.c libudis86/syn-intel.c libudis86/syn.c libudis86/udis86.c ) set(lib_headers libudis86/decode.h libudis86/itab.h libudis86/extern.h libudis86/syn.h libudis86/types.h libudis86/udint.h ) set(cli_srcs udcli/udcli.c) include_directories(.) add_library(libudis86 ${lib_sources}) if(BUILD_SHARED_LIBS) target_compile_definitions(libudis86 PRIVATE -D_USRDLL) endif() add_executable(udcli ${cli_srcs}) target_link_libraries(udcli libudis86) install( TARGETS libudis86 RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_TOOLS) install ( TARGETS udcli RUNTIME DESTINATION tools/libudis86 ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${lib_headers} DESTINATION include/libudis86) install(FILES udis86.h DESTINATION include) endif() ================================================ FILE: ports/libudis86/fix-macbuild.patch ================================================ diff --git a/libudis86/udis86.c b/libudis86/udis86.c index e039c4e..8459012 100644 --- a/libudis86/udis86.c +++ b/libudis86/udis86.c @@ -34,6 +34,10 @@ # endif #endif /* !__UD_STANDALONE__ */ +#if defined(__APPLE__) +# include +#endif + static void ud_inp_init(struct ud *u); /* ============================================================================= diff --git a/udcli/udcli.c b/udcli/udcli.c index 9b044ca..ad1e4ab 100644 --- a/udcli/udcli.c +++ b/udcli/udcli.c @@ -27,13 +27,11 @@ #include #include #include -#ifdef _MSC_VER -#include "..\udis86.h" -#define PACKAGE_STRING "udis86 pre-1.8" -#else #include -#include -#endif +#define PACKAGE_STRING "udis86 pre-1.8" +#ifdef HAVE_CONFIG_H +# include +#endif /* HAVE_CONFIG_H */ #if defined(__APPLE__) # define FMT64 "ll" ================================================ FILE: ports/libudis86/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vmt/udis86 REF 56ff6c87c11de0ffa725b14339004820556e343d SHA512 7a98333f9310f5f0466294bd980f03f9269c118a7557832015c59a7b6349a0eeab5642e0e6598d0be76d71f5d2d566d8b8af0ec75c26bdcff45646d60ff18e3a HEAD_REF master PATCHES fix-macbuild.patch python3.patch # from https://github.com/vmt/udis86/pull/133 ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_find_acquire_program(PYTHON3) vcpkg_execute_required_process( COMMAND "${PYTHON3}" "${SOURCE_PATH}/scripts/ud_itab.py" "${SOURCE_PATH}/docs/x86/optable.xml" "${SOURCE_PATH}/libudis86/" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME python-${TARGET_TRIPLET}-generate-sources ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libudis86/python3.patch ================================================ diff --git a/scripts/ud_opcode.py b/scripts/ud_opcode.py index fe1833d..30c9f43 100644 --- a/scripts/ud_opcode.py +++ b/scripts/ud_opcode.py @@ -550,10 +550,10 @@ def printWalk(tbl, indent=""): entries = tbl.entries() for k, e in entries: if isinstance(e, UdOpcodeTable): - self.log("%s |-<%02x> %s" % (indent, k, e)) + self.log("%s |-<%02x> %s" % (indent, int(k), e)) printWalk(e, indent + " |") elif isinstance(e, UdInsnDef): - self.log("%s |-<%02x> %s" % (indent, k, e)) + self.log("%s |-<%02x> %s" % (indent, int(k), e)) printWalk(self.root) ================================================ FILE: ports/libudis86/vcpkg.json ================================================ { "name": "libudis86", "version-date": "2018-01-28", "port-version": 4, "description": "Disassembler Library for x86 and x86-64", "homepage": "https://github.com/vmt/udis86", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libudns/configure.patch ================================================ diff --git a/configure b/configure index dda98b3..5594bf3 100755 --- a/configure +++ b/configure @@ -26,7 +26,7 @@ enable() { opt=`echo "$1" | sed 's/^--[^-]*-//'` case "$opt" in ipv6) ;; - *) echo "configure: unrecognized option \`$1'" >&2; exit 1;; + *) echo "configure: unrecognized option \`$1'" >&2; opt=unused;; esac eval enable_$opt=$2 } @@ -50,11 +50,14 @@ Optional features (all enabled by default if system supports a feature): EOF exit 0 ;; - *) echo "configure: unknown option \`$1'" >&2; exit 1 ;; + *) echo "configure: unknown option \`$1'" >&2;; esac shift done +CC="$CC $CPPFLAGS" +export CC + . ./configure.lib ac_msg "configure" @@ -75,7 +78,8 @@ int main(int argc, char **argv) { EOF if ac_library_find_v 'socket and connect' "" "-lsocket -lnsl" < +int main() { socket(0,0,0); connect(0,0,0); return 0; } EOF then : else diff --git a/configure.lib b/configure.lib index 541177a..672c082 100644 --- a/configure.lib +++ b/configure.lib @@ -125,7 +125,7 @@ ac_prog_c_compiler_v() { echo 'int main(int argc, char **argv) { return 0; }' >conftest.c if [ -n "$CC" ]; then - if ac_run $CC -o conftest conftest.c && ac_run ./conftest; then + if ac_run $CC -o conftest conftest.c && true ac_run ./conftest; then ac_result "\$CC ($CC)" else ac_result no @@ -224,7 +224,7 @@ ac_library_find_v() { } ac_compile_run() { - ac_link "$@" && ac_run ./conftest + ac_link "$@" && true ac_run ./conftest } ac_grep_cpp() { ================================================ FILE: ports/libudns/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # port needs work vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ortclib/udns REF udns_0_4 SHA512 4df8def718c75872536d42a757237d6c8e0afce8a53aedd7fea73814dc5cf8b5d6c9ae8f01a8cfc76864aa8293c172f08953a6750a66749ba19a3721bb4cf2ec HEAD_REF master PATCHES configure.patch ) vcpkg_configure_make( SOURCE_PATH ${SOURCE_PATH} COPY_SOURCE ) vcpkg_build_make(BUILD_TARGET staticlib) vcpkg_fixup_pkgconfig() # Install if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libudns.a DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) endif() if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libudns.a DESTINATION ${CURRENT_PACKAGES_DIR}/lib) endif() file(INSTALL ${SOURCE_PATH}/udns.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) vcpkg_copy_pdbs() # Handle copyright file(INSTALL ${SOURCE_PATH}/COPYING.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/libudns/vcpkg.json ================================================ { "name": "libudns", "version": "0.4", "port-version": 6, "description": "The DNS library, udns, implements thread-safe stub DNS resolver functionality, which may be used both traditional, syncronous way and asyncronously, with application-supplied event loop.", "homepage": "https://github.com/ortclib/udns", "supports": "!windows & !osx" } ================================================ FILE: ports/libui/001-fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c7193fbb..50c997f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,8 +152,7 @@ add_subdirectory("common") add_subdirectory("${_OSNAME}") add_library(libui ${_LIBUI_SOURCES}) target_include_directories(libui - PUBLIC . - PRIVATE ${_LIBUI_INCLUEDIRS}) + PUBLIC $) target_compile_definitions(libui PRIVATE ${_LIBUI_DEFS}) # cmake produces this for us by default but only for shared libraries @@ -229,10 +228,30 @@ macro(_add_exec _name) # TODOfor some reason these don't propagate if(NOT WIN32) target_include_directories(${_name} - PUBLIC .) + PUBLIC $) target_compile_options(${_name} PUBLIC ${_COMMON_CFLAGS}) endif() endmacro() add_subdirectory("test") add_subdirectory("examples") + +if(BUILD_SHARED_LIBS) + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-config + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +else() + install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-config + DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() + +install(EXPORT ${PROJECT_NAME}-config + FILE unofficial-${PROJECT_NAME}-config.cmake + NAMESPACE unofficial::libui:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} +) + +install(FILES ui.h DESTINATION include) ================================================ FILE: ports/libui/002-fix-macosx-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 50c997f..a23b84d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,13 @@ cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) # TODO figure out what other variables must be set with CACHE # TODO figure out if FORCE is needed here # TODO figure out whether STRING "" is best or if something else is better; also what FORCE does because I forget and later I say it's needed -set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8" CACHE STRING "" FORCE) + +# VCPKG PATCH NOTE: Fix build on MacOS +# Due to a bug in CMake (https://gitlab.kitware.com/cmake/cmake/issues/18396) we change CMAKE_OSX_DEPLOYMENT_TARGET to "10.9". +# See the discussion here: +# * https://github.com/andlabs/libui/issues/422 +# * https://github.com/andlabs/libui/issues/457 +set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE) # we want to disable incremental linking # see also: ================================================ FILE: ports/libui/003-fix-system-link.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a23b84d..9892dfc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,6 +172,12 @@ if(BUILD_SHARED_LIBS) target_link_libraries(libui PRIVATE ${_LIBUI_LIBS}) endif() + +if (APPLE) + find_library(Foundation Foundation) + find_library(AppKit AppKit) + target_link_libraries(libui PUBLIC $<$:${Foundation};${AppKit}>) +endif() # TODO INTERFACE libs don't inherit to grandhcildren? # on Windows the linker for static libraries is different; don't give it the flags if(BUILD_SHARED_LIBS) ================================================ FILE: ports/libui/portfile.cmake ================================================ if(VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andlabs/libui REF 7138276ccfbde94873cb6e2db65642adcbd2ee19 SHA512 3a9fb27d0c376479f58ba2fc5be3579efa5f462776a7e725313b92413ce78f3ca60897e63b580c419eeaee2cd2101de2be1ee5af80a547ef433c6284a3053d45 HEAD_REF master PATCHES "001-fix-cmake.patch" "002-fix-macosx-build.patch" "003-fix-system-link.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libui PACKAGE_NAME unofficial-libui) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libui/vcpkg.json ================================================ { "name": "libui", "version-date": "2018-11-03", "port-version": 3, "description": "Simple and portable (but not inflexible) native GUI library in C.", "homepage": "https://github.com/andlabs/libui", "license": "MIT", "supports": "!android & !emscripten & !ios & !uwp", "dependencies": [ { "name": "gtk3", "platform": "!windows & !osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libunibreak/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(libunibreak) set(libunibreak_srcs src/linebreak.c src/linebreakdata.c src/linebreakdef.c src/wordbreak.c src/wordbreakdata.c src/graphemebreak.c src/graphemebreakdata.c src/emojidef.c src/eastasianwidthdef.c src/eastasianwidthdata.c src/unibreakbase.c src/unibreakdef.c ) include_directories(src) add_library(unibreak ${libunibreak_srcs}) install( TARGETS unibreak RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install( FILES src/emojidef.h src/eastasianwidthdef.h src/unibreakbase.h src/unibreakdef.h src/graphemebreak.h src/graphemebreakdef.h src/linebreak.h src/linebreakdef.h src/test_skips.h src/unibreakbase.h src/unibreakdef.h src/wordbreak.h src/wordbreakdef.h DESTINATION include ) endif() ================================================ FILE: ports/libunibreak/fix_export.patch ================================================ diff --git a/src/eastasianwidthdef.h b/src/eastasianwidthdef.h index 67a41aa..c081a02 100644 --- a/src/eastasianwidthdef.h +++ b/src/eastasianwidthdef.h @@ -26,6 +26,9 @@ #include "unibreakdef.h" +#ifdef __cplusplus +extern "C" { +#endif /** * East Asian Width (ea) class. This is defined in Unicode Standard * Annex 11. @@ -52,5 +55,8 @@ struct EastAsianWidthProperties }; enum EastAsianWidthClass ub_get_char_eaw_class(utf32_t ch); +#ifdef __cplusplus +} +#endif #endif /* EASTASIANWIDTHDEF_H */ ================================================ FILE: ports/libunibreak/libunibreak-config.cmake.in ================================================ # For old projects where the minimum CMake version is lower than 3.3. cmake_policy(SET CMP0057 NEW) include(CMakeFindDependencyMacro) if(TARGET libunibreak) return() endif() # Compute the installation prefix relative to this file. get_filename_component(_INSTALL_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_INSTALL_DIR "${_INSTALL_DIR}" PATH) get_filename_component(_INSTALL_DIR "${_INSTALL_DIR}" PATH) if(_INSTALL_DIR STREQUAL "/") set(_INSTALL_DIR "") endif() add_library(unibreak INTERFACE IMPORTED GLOBAL) add_library(libunibreak::libunibreak ALIAS unibreak) find_library(LIBUNIBREAK_LIBRARY_DEBUG NAMES unibreak PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(LIBUNIBREAK_LIBRARY_DEBUG) target_link_libraries(unibreak INTERFACE $<$:${LIBUNIBREAK_LIBRARY_DEBUG}>) endif() find_library(LIBUNIBREAK_LIBRARY_RELEASE NAMES unibreak PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH) target_link_libraries(unibreak INTERFACE $<$>:${LIBUNIBREAK_LIBRARY_RELEASE}>) set(LIBUNIBREAK_LIBRARY libunibreak::libunibreak PARENT_SCOPE) set(LIBUNIBREAK_LIBRARIES libunibreak::libunibreak PARENT_SCOPE) set(LIBUNIBREAK_INCLUDE_DIR "${_INSTALL_DIR}/include" PARENT_SCOPE) target_include_directories(unibreak INTERFACE ${_INSTALL_DIR}/include) ================================================ FILE: ports/libunibreak/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REGEX REPLACE "^([0-9]*)[.].*" "\\1" MAJOR "${VERSION}") string(REGEX REPLACE "^.*[.]([0-9]*)" "\\1" MINOR "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO adah1972/libunibreak REF "libunibreak_${MAJOR}_${MINOR}" SHA512 a85333d59c78b67b1c05d33ab99c069ba493780d6a98ad5ab00e33235c454b8b33515cac4e815de35533f235be7cf5473550b3a6389f7581ba2f6216d42d38e1 HEAD_REF master PATCHES fix_export.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() configure_file("${CMAKE_CURRENT_LIST_DIR}/libunibreak-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/libunibreak-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") ================================================ FILE: ports/libunibreak/vcpkg.json ================================================ { "name": "libunibreak", "version": "6.1", "port-version": 1, "description": "an implementation of the line breaking and word breaking algorithms as described in [Unicode Standard Annex 14] 1 and [Unicode Standard Annex 29] 2. Check the project's [home page] 3 for up-to-date information.", "homepage": "https://github.com/adah1972/libunibreak", "license": "zlib-acknowledgement", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libunifex/fix-compile-error.patch ================================================ diff --git a/cmake/unifex_env.cmake b/cmake/unifex_env.cmake index b26aed1..051a7af 100644 --- a/cmake/unifex_env.cmake +++ b/cmake/unifex_env.cmake @@ -21,8 +21,8 @@ endif() if (UNIFEX_CXX_COMPILER_MSVC) # warning level 3 and all warnings as errors - add_compile_options(/W3 /WX) + add_compile_options(/W3 /WX /Zc:externConstexpr /EHsc) else() # lots of warnings and all warnings as errors - add_compile_options(-Wall -Wextra -pedantic -Werror) + add_compile_options(-Wall -Wextra -pedantic) endif() ================================================ FILE: ports/libunifex/fix-linux-timespec.patch ================================================ diff --git a/source/linux/io_uring_context.cpp b/source/linux/io_uring_context.cpp index f869b3f..8300961 100644 --- a/source/linux/io_uring_context.cpp +++ b/source/linux/io_uring_context.cpp @@ -17,7 +17,7 @@ #include #if !UNIFEX_NO_LIBURING - +#include #include #include ================================================ FILE: ports/libunifex/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebookexperimental/libunifex REF "v${VERSION}" SHA512 9625a248b9ed43f7ac8e3da054020e7c5c71d3da253cfa587ee62eb8a1d4cfee794758b7d28896e4038c1924b204c92be7230c20cf525684e2c304ceaa4a6321 HEAD_REF main PATCHES fix-compile-error.patch fix-linux-timespec.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES coroutines CXX_COROUTINES_HAVE_COROUTINES ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD:STRING=20 -DBUILD_TESTING=OFF -DUNIFEX_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unifex CONFIG_PATH lib/cmake/unifex) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/unifex/config.hpp.in" ) if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/unifex/linux") elseif(VCPKG_TARGET_IS_LINUX) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/unifex/win32") endif() ================================================ FILE: ports/libunifex/vcpkg.json ================================================ { "name": "libunifex", "version": "0.4.0", "description": "Unified Executors", "homepage": "https://github.com/facebookexperimental/libunifex", "dependencies": [ { "name": "liburing", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "coroutines": { "description": "Support coroutine" } } } ================================================ FILE: ports/libunistring/copyright ================================================ The libunistring library and its header files are dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2". This means, you can use it under either - the terms of the GNU Lesser General Public License (LGPL) version 3 or (at your option) any later version, or - the terms of the GNU General Public License (GPL) version 2, or - the same dual license "the GNU LGPLv3+ or the GNU GPLv2". You find the GNU LGPL version 3 in the file COPYING.LIB. This license is based on the GNU GPL version 3, see file COPYING. You can find the GNU GPL version 2 at . Note: This dual license makes it possible for the libunistring library to be used by packages under GPLv2 or GPLv2+ licenses, in particular. See the table in . The documentation is under another license; see in the documentation. ================================================ FILE: ports/libunistring/disable-gnulib-fetch.patch ================================================ diff --git a/autogen.sh b/autogen.sh index 3e89ebe..8dade84 100755 --- a/autogen.sh +++ b/autogen.sh @@ -44,6 +44,7 @@ while :; do *) break ;; esac done +skip_gnulib=true TEXINFO_VERSION=6.5 ================================================ FILE: ports/libunistring/disable-subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 8c05275..f27b232 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,7 @@ AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies ACLOCAL_AMFLAGS = -I m4 -I gnulib-m4 -SUBDIRS = doc gnulib-local lib tests +SUBDIRS = gnulib-local lib EXTRA_DIST = \ version.sh BUGS DEPENDENCIES HACKING JOIN-GNU \ ================================================ FILE: ports/libunistring/msvc-use-stdint.patch ================================================ --- a/lib/Makefile.am 2025-09-18 14:31:56.883185700 +0100 +++ b/lib/Makefile.am 2025-09-18 14:32:34.860321900 +0100 @@ -101,7 +101,7 @@ rm -f $@-t $@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ echo '#include '; \ - echo '#if __GLIBC__ >= 2'; \ + echo '#if __GLIBC__ >= 2 || (defined(_MSC_VER) && _MSC_VER >= 1600)'; \ echo '#include '; \ echo '#else'; \ if test -f /usr/include/stdint.h; then \ ================================================ FILE: ports/libunistring/parallelize-symbol-collection.patch ================================================ diff --git a/lib/Makefile.am b/lib/Makefile.am index 382d2bc..d9f0144 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -274,6 +274,25 @@ endif # But don't hide symbols that start with "libintl_locale", for the reason # stated in localename-table.h. all check install: config.h +%_exported: + @d=`echo "$@" | sed -e 's,/[^/]*$$,,'`; \ + test "$$d" = "$@" || mkdir -p "$$d" ; \ + true >"$@" || exit 1 ; \ + f=`echo "$@" | sed -e 's,_exported$$,,'`; \ + case $$f in \ + *.res.lo ) ;; \ + *.c | *.$(OBJEXT) | *.lo ) \ + sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \ + test -f $$sf || sf=$(srcdir)/$$sf; \ + of=`echo "$$f" | sed -e 's,^.*/,,' -e 's,\\.[^.]*$$,,'`.$(OBJEXT); \ + echo "$(COMPILE) -c $$sf && sh ./exported.sh $$of 1>>$@" ; \ + $(COMPILE) -c $$sf || exit 1; \ + sh ./exported.sh $$of 1>>"$@"; \ + rm -f $$of `echo "$$of" | sed -e 's,\\.$(OBJEXT)$$,.lo,'`; \ + ;; \ + esac +libunistring_la_EXPORTED = $(libunistring_la_SOURCES:%=%_exported) $(libunistring_la_LIBADD:%=%_exported) +exported: $(libunistring_la_EXPORTED) config.h: $(BUILT_SOURCES) $(srcdir)/libunistring.sym { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ : "Avoid double inclusion, to avoid a warning about redefinitions."; \ @@ -285,10 +304,14 @@ config.h: $(BUILT_SOURCES) $(srcdir)/libunistring.sym echo '#endif /* UNISTRING_CONFIG_H */'; \ } > config.h && \ if test -n "$(NAMESPACING)" && test -n "$(HAVE_GLOBAL_SYMBOL_PIPE)"; then \ + echo "Collecting symbols to be renamed"; \ + $(MAKE) exported && \ { \ { \ - for f in $(libunistring_la_SOURCES) $(libunistring_la_LIBADD); do \ + for f in $(libunistring_la_EXPORTED); do \ case $$f in \ + *_exported ) cat $$f 1>&5; ;; \ + * ) ;; \ *.res.lo ) ;; \ *.c | *.$(OBJEXT) | *.lo ) \ sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \ ================================================ FILE: ports/libunistring/portfile.cmake ================================================ set(LIBUNISTRING_FILENAME "libunistring-${VERSION}.tar.xz") vcpkg_download_distfile(ARCHIVE URLS "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/libunistring/${LIBUNISTRING_FILENAME}" "https://ftp.gnu.org/gnu/libunistring/${LIBUNISTRING_FILENAME}" FILENAME "${LIBUNISTRING_FILENAME}" SHA512 5fbb5a0a864db73a6d18cdea7b31237da907fff0ef288f3a8db6ebdba8ef61ad8855e5fc780c2bbf632218d8fa59dd119734e5937ca64dc77f53f30f13b80b17 ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS # On windows during configure tests iconv is properly linked, # but iconv-2.dll missing from the directory where check program is built # causes one of the tests to fail and in result builds libunistring # without iconv support, this flag allows to bypass the test. # # The failing test is "checking for working iconv", while in previous # test "checking for iconv", configure only checks linking, in # "checking for working iconv" it also runs resulting test application. am_cv_func_iconv_works=yes ) endif() vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "v${VERSION}" PATCHES disable-gnulib-fetch.patch disable-subdirs.patch parallelize-symbol-collection.patch msvc-use-stdint.patch ) vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG USE_WRAPPERS OPTIONS ${OPTIONS} OPTIONS "--with-libiconv-prefix=${CURRENT_INSTALLED_DIR}" ) vcpkg_install_make() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( COMMENT [[ The libunistring library and its header files are dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". ]] FILE_LIST "${SOURCE_PATH}/COPYING.LIB" "${SOURCE_PATH}/COPYING" ) ================================================ FILE: ports/libunistring/vcpkg.json ================================================ { "name": "libunistring", "version": "1.2", "port-version": 3, "description": "GNU libunistring provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard.", "homepage": "https://www.gnu.org/software/libunistring/", "license": "LGPL-3.0-or-later OR GPL-2.0-or-later", "supports": "!xbox", "dependencies": [ "libiconv" ] } ================================================ FILE: ports/libunwind/liblzma.diff ================================================ diff --git a/configure.ac b/configure.ac index 82caaa7..a17b7a1 100644 --- a/configure.ac +++ b/configure.ac @@ -443,9 +443,11 @@ AC_MSG_CHECKING([whether to support LZMA-compressed symbol tables]) AC_ARG_ENABLE(minidebuginfo, AS_HELP_STRING([--enable-minidebuginfo], [Enables support for LZMA-compressed symbol tables]),, [enable_minidebuginfo=auto]) AC_MSG_RESULT([$enable_minidebuginfo]) +PKG_PROG_PKG_CONFIG if test x$enable_minidebuginfo != xno; then - AC_CHECK_LIB([lzma], [lzma_mf_is_supported], - [LIBLZMA=-llzma + PKG_CHECK_MODULES([LZMA],[liblzma], + [LIBLZMA="$LZMA_LIBS" + CFLAGS="$CFLAGS $LZMA_CFLAGS" AC_DEFINE([HAVE_LZMA], [1], [Define if you have liblzma]) enable_minidebuginfo=yes], [if test x$enable_minidebuginfo = xyes; then diff --git a/src/unwind/libunwind.pc.in b/src/unwind/libunwind.pc.in index 9a65faf..bb351f7 100644 --- a/src/unwind/libunwind.pc.in +++ b/src/unwind/libunwind.pc.in @@ -7,5 +7,6 @@ Name: libunwind Description: libunwind base library Version: @VERSION@ Libs: -L${libdir} -lunwind -Libs.private: @LIBLZMA@ @LIBZ@ +Libs.private: @LIBZ@ +Requires.private: liblzma Cflags: -I${includedir} ================================================ FILE: ports/libunwind/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "libunwind/libunwind" REF "v${VERSION}" HEAD_REF master SHA512 0619716b2385375d618d84b1e9a75c42a7fa86d452c7c3168b4aa78c6bda629c8bb5e3a984a642277e9949c1b7dc39d5e21ae9d2670437182c7b797a14544cfa PATCHES liblzma.diff ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-documentation --disable-tests --disable-zlibdebuginfo --enable-minidebuginfo ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libunwind/vcpkg.json ================================================ { "name": "libunwind", "version": "1.8.3", "port-version": 1, "description": "Unix libray for portable stack unwinding", "homepage": "https://www.nongnu.org/libunwind", "license": "MIT", "supports": "linux", "dependencies": [ "liblzma", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libupnp/fix-pthreads4w-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 45c13c195d..7eb05f7277 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -226,6 +226,8 @@ if(NOT MSVC) endif() else() find_package(PTHREADS4W CONFIG REQUIRED) + add_library(Threads::Shared ALIAS PThreads4W::PThreads4W) + add_library(Threads::Static ALIAS PThreads4W::PThreads4W) endif() # ================================================ FILE: ports/libupnp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pupnp/pupnp REF "release-${VERSION}" SHA512 a2d6ae2539f14b13c1765febee7f865c0932fb7cdf3960eaa6559a93d18158ba2eb17afa3ad2a397de33f1e9890818fc2cfa6415ec67583b80c7939d3c27d8a7 PATCHES fix-pthreads4w-targets.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBUPNP_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBUPNP_BUILD_SHARED) if(LIBUPNP_BUILD_STATIC) set(UPNP_TARGET "Static") else() set(UPNP_TARGET "Shared") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES client-api UPNP_ENABLE_CLIENT_API ipv6 UPNP_ENABLE_IPV6 ssl UPNP_ENABLE_OPEN_SSL webserver UPNP_ENABLE_WEBSERVER ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DIXML_ENABLE_SCRIPT_SUPPORT=ON -DUPNP_ENABLE_GENA=ON -DUPNP_ENABLE_SOAP=ON -DUPNP_ENABLE_SSDP=ON -DUPNP_ENABLE_BLOCKING_TCP_CONNECTIONS=OFF -DUPNP_ENABLE_DEVICE_API=${UPNP_ENABLE_WEBSERVER} -DUPNP_MINISERVER_REUSEADDR=${UPNP_ENABLE_WEBSERVER} -DUPNP_BUILD_SHARED=${LIBUPNP_BUILD_SHARED} -DUPNP_BUILD_STATIC=${LIBUPNP_BUILD_STATIC} -DUPNP_BUILD_SAMPLES=OFF -DUPNP_ENABLE_UNSPECIFIED_SERVER=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/UPNP DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/IXML) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libupnp/usage ================================================ libupnp provides pkg-config modules: # Linux SDK for UPnP Devices libupnp libupnp provides CMake targets: find_package(UPNP CONFIG REQUIRED) target_link_libraries(main PRIVATE UPNP::Shared) -- or -- target_link_libraries(main PRIVATE UPNP::Static) libixml provides CMake targets: find_package(IXML CONFIG REQUIRED) target_link_libraries(main PRIVATE IXML::Shared) -- or -- target_link_libraries(main PRIVATE IXML::Static) ================================================ FILE: ports/libupnp/vcpkg.json ================================================ { "name": "libupnp", "version": "1.18.2", "description": "libupnp: Build UPnP-compliant control points, devices, and bridges on several operating systems.", "homepage": "https://pupnp.github.io/pupnp/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "pthreads", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "client-api": { "description": "Enable control point code (client)" }, "ipv6": { "description": "Enable IPv6 support" }, "ssl": { "description": "OpenSSL support for encrypted connections", "dependencies": [ "openssl" ] }, "webserver": { "description": "Enable integrated webserver" } } } ================================================ FILE: ports/liburcu/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO urcu/userspace-rcu REF "v${VERSION}" SHA512 40649c19af80da95d4463600ae06295505ed1865dbcffce7ff201de5ec025a57530ee745184151296669cc64e99aaef16958452e6dbab7b8a655b2e911dafd72 HEAD_REF master ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.md" "${SOURCE_PATH}/LICENSES/LGPL-2.1-or-later.txt" "${SOURCE_PATH}/LICENSES/LicenseRef-Boehm-GC.txt" "${SOURCE_PATH}/LICENSES/MIT.txt" ) ================================================ FILE: ports/liburcu/vcpkg.json ================================================ { "name": "liburcu", "version": "0.15.6", "description": "liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This data synchronization library provides read-side access which scales linearly with the number of cores.", "homepage": "https://liburcu.org/", "license": null, "supports": "!windows", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/liburing/disable-tests-and-examples.patch ================================================ diff --git a/Makefile b/Makefile index 686be4f..28d0a7f 100644 --- a/Makefile +++ b/Makefile @@ -8,8 +8,6 @@ default: all all: @$(MAKE) -C src - @$(MAKE) -C test - @$(MAKE) -C examples library: @$(MAKE) -C src ================================================ FILE: ports/liburing/fix-configure.patch ================================================ diff --git a/configure b/configure index 81d5876..0c9fec2 100755 --- a/configure +++ b/configure @@ -20,7 +20,7 @@ for opt do ;; --mandir=*) mandir="$optarg" ;; - --datadir=*) datadir="$optarg" + --datarootdir=*) datadir="$optarg" ;; --cc=*) cc="$optarg" ;; @@ -32,10 +32,12 @@ for opt do ;; --enable-tsan) use_tsan=yes ;; + --enable-shared) ENABLE_SHARED=1 + ;; + --enable-static) ENABLE_SHARED=0 + ;; *) echo "ERROR: unknown option $opt" - echo "Try '$0 --help' for more information" - exit 1 ;; esac done @@ -136,6 +138,7 @@ echo "# Automatically generated by configure - do not modify" > $config_host_mak printf "# Configured with:" >> $config_host_mak printf " '%s'" "$0" "$@" >> $config_host_mak echo >> $config_host_mak +echo "ENABLE_SHARED=${ENABLE_SHARED}" >> $config_host_mak do_cxx() { # Run the compiler, capturing its output to the log. ================================================ FILE: ports/liburing/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO axboe/liburing REF "liburing-${VERSION}" SHA512 3eb8419cd6c9ae4909b9697b188f5c6a27e107694eefe9747822524c8710e0798476aa43acada578fcbcf6e46b63ebdfb59350e4ba8f928dfe7cac3614e32a48 HEAD_REF master PATCHES fix-configure.patch # ignore unsupported options, handle ENABLE_SHARED disable-tests-and-examples.patch ) # https://github.com/axboe/liburing/blob/liburing-2.8/src/Makefile#L13 set(ENV{CFLAGS} "$ENV{CFLAGS} -O3 -Wall -Wextra -fno-stack-protector") # without this calls to `realpath ${prefix}` inside the build system fail for the debug build if this is the first # library to be installed file(MAKE_DIRECTORY "${CURRENT_INSTALLED_DIR}/debug") # note: check ${SOURCE_PATH}/liburing.spec before updating configure options vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE DETERMINE_BUILD_TRIPLET OPTIONS [[--libdevdir=\${prefix}/lib]] # must match libdir ) vcpkg_install_make() vcpkg_fixup_pkgconfig() # note: {SOURCE_PATH}/src/Makefile makes liburing.so from liburing.a. # For dynamic, remove intermediate file liburing.a when install is finished. if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/liburing.a" "${CURRENT_PACKAGES_DIR}/lib/liburing.a" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/man2") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/man3") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/man7") # Cf. README vcpkg_install_copyright(COMMENT [[ All software contained from liburing is dual licensed LGPL and MIT, see COPYING and LICENSE, except for a header coming from the kernel which is dual licensed GPL with a Linux-syscall-note exception and MIT, see COPYING.GPL and . ]] FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.GPL" ) ================================================ FILE: ports/liburing/vcpkg.json ================================================ { "name": "liburing", "version": "2.14", "description": "Linux-native io_uring I/O access library", "homepage": "https://github.com/axboe/liburing", "license": "(MIT OR LGPL-2.1) AND (MIT OR GPL-2.0 WITH Linux-syscall-note)", "supports": "linux" } ================================================ FILE: ports/libusb/portfile.cmake ================================================ if("udev" IN_LIST FEATURES) message("${PORT} currently requires the following tools and libraries from the system package manager:\n libudev\n\nThese can be installed on Ubuntu systems via apt-get install libudev-dev") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libusb/libusb REF "v${VERSION}" SHA512 98c5f7940ff06b25c9aa65aa98e23de4c79a4c1067595f4c73cc145af23a1c286639e1ba11185cd91bab702081f307b973f08a4c9746576dc8d01b3620a3aeb5 HEAD_REF master ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(LIBUSB_PROJECT_TYPE dll) else() set(LIBUSB_PROJECT_TYPE static) endif() # The README.md file in the archive is a symlink to README # which causes issues with the windows MSBUILD process file(REMOVE "${SOURCE_PATH}/README.md") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH msvc/libusb_${LIBUSB_PROJECT_TYPE}.vcxproj ) file(INSTALL "${SOURCE_PATH}/libusb/libusb.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/libusb-1.0") set(prefix "") set(exec_prefix [[${prefix}]]) set(libdir [[${prefix}/lib]]) set(includedir [[${prefix}/include]]) configure_file("${SOURCE_PATH}/libusb-1.0.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libusb-1.0.pc" @ONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libusb-1.0.pc" " -lusb-1.0" " -llibusb-1.0") if(NOT VCPKG_BUILD_TYPE) set(includedir [[${prefix}/../include]]) configure_file("${SOURCE_PATH}/libusb-1.0.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libusb-1.0.pc" @ONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libusb-1.0.pc" " -lusb-1.0" " -llibusb-1.0") endif() else() vcpkg_list(SET MAKE_OPTIONS) vcpkg_list(SET LIBUSB_LINK_LIBRARIES) if("udev" IN_LIST FEATURES) vcpkg_list(APPEND MAKE_OPTIONS "--enable-udev") vcpkg_list(APPEND LIBUSB_LINK_LIBRARIES udev) else() vcpkg_list(APPEND MAKE_OPTIONS "--disable-udev") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${MAKE_OPTIONS} "--enable-examples-build=no" "--enable-tests-build=no" ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() # -Wl,-framework,... is poorly handled in CMake vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libusb-1.0.pc" " -Wl,-framework," " -framework " IGNORE_UNCHANGED) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libusb-1.0.pc" " -Wl,-framework," " -framework " IGNORE_UNCHANGED) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libusb/vcpkg.json ================================================ { "name": "libusb", "version": "1.0.29", "port-version": 1, "description": "a cross-platform library to access USB devices", "homepage": "https://github.com/libusb/libusb", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ], "default-features": [ { "name": "udev", "platform": "linux" } ], "features": { "udev": { "description": "Enable udev", "supports": "linux" } } } ================================================ FILE: ports/libusb-win32/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(libusb-win32) set(lib_headers src/lusb0_usb.h) set(lib_srcs src/descriptors.c src/error.c src/install.c src/registry.c src/usb.c src/windows.c src/resource.rc libusb0.def) add_library(libusb0 ${lib_srcs}) target_include_directories(libusb0 PRIVATE "src/driver") target_link_libraries(libusb0 setupapi) target_compile_definitions(libusb0 PRIVATE LOG_APPNAME="libusb-dll") set_target_properties(libusb0 PROPERTIES PREFIX "" IMPORT_PREFIX "") install( TARGETS libusb0 RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install( FILES ${lib_headers} DESTINATION include) ================================================ FILE: ports/libusb-win32/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mcuee/libusb-win32 REF "release_${VERSION}" SHA512 a3dd4f65e21c26892a21342b990f40a9628759a58e76f8c65131633f279ff80a09b282eb247f282af2310f8a46d545e35b435992983ef8f3eada623ff0747e76 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/libusb") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}/libusb") vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/libusb/COPYING_LGPL.txt") ================================================ FILE: ports/libusb-win32/vcpkg.json ================================================ { "name": "libusb-win32", "version": "1.4.0.0", "description": "Allows user space applications to access many USB device on Windows.", "homepage": "https://github.com/mcuee/libusb-win32", "license": "LGPL-3.0-only", "supports": "windows & !uwp & !xbox & !(static & staticcrt)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/libusbmuxd/001_fix_win32_defs.patch ================================================ diff --git a/include/usbmuxd-proto.h b/include/usbmuxd-proto.h index a2a731e..38473f5 100644 --- a/include/usbmuxd-proto.h +++ b/include/usbmuxd-proto.h @@ -26,7 +26,7 @@ #include #define USBMUXD_PROTOCOL_VERSION 0 -#if defined(WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) || defined(__CYGWIN__) #define USBMUXD_SOCKET_PORT 27015 #else #define USBMUXD_SOCKET_FILE "/var/run/usbmuxd" ================================================ FILE: ports/libusbmuxd/002_fix_struct_pack.patch ================================================ diff --git a/include/usbmuxd-proto.h b/include/usbmuxd-proto.h index 38473f5..d004232 100644 --- a/include/usbmuxd-proto.h +++ b/include/usbmuxd-proto.h @@ -57,28 +57,30 @@ enum usbmuxd_msgtype { MESSAGE_PLIST = 8, }; +#pragma pack(push, 1) + struct usbmuxd_header { uint32_t length; // length of message, including header uint32_t version; // protocol version uint32_t message; // message type uint32_t tag; // responses to this query will echo back this tag -} __attribute__((__packed__)); +}; struct usbmuxd_result_msg { struct usbmuxd_header header; uint32_t result; -} __attribute__((__packed__)); +}; struct usbmuxd_connect_request { struct usbmuxd_header header; uint32_t device_id; uint16_t port; // TCP port number uint16_t reserved; // set to zero -} __attribute__((__packed__)); +}; struct usbmuxd_listen_request { struct usbmuxd_header header; -} __attribute__((__packed__)); +}; struct usbmuxd_device_record { uint32_t device_id; @@ -86,7 +88,9 @@ struct usbmuxd_device_record { char serial_number[256]; uint16_t padding; uint32_t location; -} __attribute__((__packed__)); +}; + +#pragma pack(pop) #ifdef __cplusplus } ================================================ FILE: ports/libusbmuxd/003_fix_msvc.patch ================================================ diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c index 95e322f..c5c8f09 100644 --- a/src/libusbmuxd.c +++ b/src/libusbmuxd.c @@ -49,7 +49,9 @@ #define ECONNREFUSED 107 #endif +#ifndef _MSC_VER #include +#endif #include #ifdef WIN32 @@ -91,6 +93,10 @@ static char* stpncpy(char *dst, const char *src, size_t len) } #endif +#ifdef _MSC_VER +#define strcasecmp _stricmp +#endif + #include #define PLIST_CLIENT_VERSION_STRING PACKAGE_STRING #define PLIST_LIBUSBMUX_VERSION 3 @@ -1590,7 +1596,11 @@ USBMUXD_API int usbmuxd_send(int sfd, const char *data, uint32_t len, uint32_t * num_sent = socket_send(sfd, (void*)data, len); if (num_sent < 0) { *sent_bytes = 0; +#ifdef WIN32 + num_sent = WSAGetLastError(); +#else num_sent = errno; +#endif LIBUSBMUXD_DEBUG(1, "%s: Error %d when sending: %s\n", __func__, num_sent, strerror(num_sent)); return -num_sent; } ================================================ FILE: ports/libusbmuxd/004_fix_api.patch ================================================ diff --git a/src/libusbmuxd.c b/src/libusbmuxd.c index c5c8f09..edab706 100644 --- a/src/libusbmuxd.c +++ b/src/libusbmuxd.c @@ -29,14 +29,10 @@ #include #include -#ifdef WIN32 - #define USBMUXD_API __declspec( dllexport ) +#if !defined(_WIN32) && !defined(LIBUSBMUXD_STATIC) +#define USBMUXD_API __attribute__((visibility("default"))) #else - #ifdef HAVE_FVISIBILITY - #define USBMUXD_API __attribute__((visibility("default"))) - #else - #define USBMUXD_API - #endif +#define USBMUXD_API #endif #ifndef EPROTO ================================================ FILE: ports/libusbmuxd/005_fix_tools_msvc.patch ================================================ diff --git a/tools/inetcat.c b/tools/inetcat.c index f70215b..748db15 100644 --- a/tools/inetcat.c +++ b/tools/inetcat.c @@ -33,7 +33,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #ifdef WIN32 @@ -50,6 +52,13 @@ #include "usbmuxd.h" #include +#ifdef _MSC_VER +#include +typedef SSIZE_T ssize_t; +#define STDIN_FILENO _fileno(stdin) +#define STDOUT_FILENO _fileno(stdout) +#endif + static int debug_level = 0; static size_t read_data_socket(int fd, uint8_t* buf, size_t bufsize) diff --git a/tools/iproxy.c b/tools/iproxy.c index d5f66b6..6510cb8 100644 --- a/tools/iproxy.c +++ b/tools/iproxy.c @@ -34,7 +34,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif #include #include #ifdef WIN32 ================================================ FILE: ports/libusbmuxd/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(libusbmuxd C) option(BUILD_TOOLS "Build tools." OFF) include(GNUInstallDirs) file(GLOB_RECURSE LIBUSBMUXD_HEADER include/*.h) file(GLOB_RECURSE LIBUSBMUXD_SOURCE src/*.c) set(DEFINITIONS) list(APPEND DEFINITIONS -DPACKAGE_STRING="2.0.2") if(BUILD_SHARED_LIBS) if(WIN32) list(APPEND LIBUSBMUXD_SOURCE exports.def) endif() else() list(APPEND DEFINITIONS -DLIBUSBMUXD_STATIC) endif() if(UNIX) list(APPEND DEFINITIONS -DHAVE_GETIFADDRS) list(APPEND DEFINITIONS -DHAVE_STPNCPY) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32_LEAN_AND_MEAN) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libplist CONFIG REQUIRED) find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) add_library(libusbmuxd ${LIBUSBMUXD_SOURCE}) target_include_directories(libusbmuxd PUBLIC "$" "$" ) target_compile_definitions(libusbmuxd PRIVATE ${DEFINITIONS}) target_link_libraries(libusbmuxd PRIVATE unofficial::libplist::libplist unofficial::libimobiledevice-glue::libimobiledevice-glue ) set_target_properties(libusbmuxd PROPERTIES OUTPUT_NAME usbmuxd-2.0) if(WIN32) target_link_libraries(libusbmuxd PRIVATE Ws2_32) endif() install(TARGETS libusbmuxd EXPORT unofficial-libusbmuxd) install( EXPORT unofficial-libusbmuxd FILE unofficial-libusbmuxd-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-libusbmuxd" NAMESPACE unofficial::libusbmuxd:: ) install( FILES ${LIBUSBMUXD_HEADER} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) set(LIBPLIST_VERSION 2.0) set(LIMD_GLUE_VERSION 1.0) set(PACKAGE_NAME libusbmuxd) set(PACKAGE_VERSION 2.0) set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/libusbmuxd-2.0.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libusbmuxd-2.0.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/libusbmuxd-2.0.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) if(BUILD_TOOLS) if(WIN32) find_package(unofficial-getopt-win32 REQUIRED) endif() function(add_tool name source) add_executable("${name}" "${source}") target_compile_definitions("${name}" PRIVATE -DPACKAGE_VERSION="2.0.2" -DPACKAGE_URL="https://github.com/libimobiledevice/libusbmuxd" -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/libusbmuxd/issues" ) target_link_libraries("${name}" PRIVATE libusbmuxd unofficial::libimobiledevice-glue::libimobiledevice-glue) if(WIN32) target_compile_definitions("${name}" PRIVATE -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -DWIN32 ) target_link_libraries("${name}" PRIVATE unofficial::getopt-win32::getopt Ws2_32) endif() endfunction(add_tool) add_tool(inetcat "tools/inetcat.c") add_tool(iproxy "tools/iproxy.c") install( TARGETS inetcat iproxy RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/libusbmuxd/exports.def ================================================ EXPORTS usbmuxd_events_subscribe usbmuxd_events_unsubscribe usbmuxd_subscribe usbmuxd_unsubscribe usbmuxd_get_device_list usbmuxd_device_list_free usbmuxd_get_device_by_udid usbmuxd_get_device usbmuxd_connect usbmuxd_disconnect usbmuxd_send usbmuxd_recv_timeout usbmuxd_recv usbmuxd_read_buid usbmuxd_read_pair_record usbmuxd_save_pair_record_with_device_id usbmuxd_save_pair_record usbmuxd_delete_pair_record libusbmuxd_set_use_inotify libusbmuxd_set_debug_level ================================================ FILE: ports/libusbmuxd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/libusbmuxd REF 8d30a559cf0585625d9d05dc8ce0dd495b1de4f4 # commits on 2023-06-21 SHA512 ace920d13908c12afcc9182776a668f6876b2f037b21a151c1dca897aa24bc24cb41898471cd258487963772963753457be5efba2657571cf2c07c8225b68a5f HEAD_REF master PATCHES 001_fix_win32_defs.patch 002_fix_struct_pack.patch 003_fix_msvc.patch 004_fix_api.patch 005_fix_tools_msvc.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES inetcat iproxy AUTO_CLEAN) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(unofficial-libplist CONFIG) find_dependency(unofficial-libimobiledevice-glue CONFIG) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libusbmuxd/usage ================================================ libusbmuxd provides CMake targets: find_package(unofficial-libusbmuxd CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libusbmuxd::libusbmuxd) ================================================ FILE: ports/libusbmuxd/vcpkg.json ================================================ { "name": "libusbmuxd", "version-date": "2023-06-21", "port-version": 1, "description": "A client library to multiplex connections from and to iOS devices", "homepage": "https://libimobiledevice.org/", "license": "LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ "libimobiledevice-glue", "libplist", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/libusbp/Config.cmake.in ================================================ if(NOT TARGET unofficial::libusbp::libusbp) add_library(unofficial::libusbp::libusbp UNKNOWN IMPORTED) set_target_properties(unofficial::libusbp::libusbp PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/libusbp-1" ) find_library(libusbp_LIBRARY_RELEASE NAMES usbp-1 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) if(EXISTS "${libusbp_LIBRARY_RELEASE}") set_property(TARGET unofficial::libusbp::libusbp APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::libusbp::libusbp PROPERTIES IMPORTED_LOCATION_RELEASE "${libusbp_LIBRARY_RELEASE}") endif() find_library(libusbp_LIBRARY_DEBUG NAMES usbp-1 PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${libusbp_LIBRARY_DEBUG}") set_property(TARGET unofficial::libusbp::libusbp APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::libusbp::libusbp PROPERTIES IMPORTED_LOCATION_DEBUG "${libusbp_LIBRARY_DEBUG}") endif() endif() ================================================ FILE: ports/libusbp/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") message( "${PORT} currently requires the following libraries from the system package manager: libudev-dev These can be installed on Ubuntu systems via sudo apt install libudev-dev" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pololu/libusbp REF "${VERSION}" SHA512 3705ab40b65323eab788592b1b5e1cd94ef1d7ee55fb0f2919013a8bdb488eb83e257623a8be8c5230a74eaea1c0fd8a5926a8a399f0d2f6eebcd82ec0a01c4d HEAD_REF master ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/libusbp/usage ================================================ libusbp provides pkg-config modules: # Library for accessing USB devices. libusbp libusbp provides CMake targets: find_package(unofficial-libusbp CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libusbp::libusbp) ================================================ FILE: ports/libusbp/vcpkg.json ================================================ { "name": "libusbp", "version": "1.3.1", "description": "The Pololu USB Library (also known as libusbp) is a cross-platform C library for accessing USB devices.", "homepage": "https://github.com/pololu/libusbp", "license": "MIT", "supports": "!android & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libuuid/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.21) project(libuuid C) configure_file(config.linux.h config.h COPYONLY) include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_library(uuid STATIC clear.c compare.c copy.c gen_uuid.c isnull.c pack.c parse.c randutils.c unpack.c unparse.c uuid_time.c ) target_compile_options(uuid PRIVATE -include "${CMAKE_CURRENT_BINARY_DIR}/config.h") target_include_directories(uuid PUBLIC "$") add_executable(test_uuid test_uuid.c) target_link_libraries(test_uuid uuid) if(CMAKE_BUILD_TYPE STREQUAL "Release") install(FILES uuid.h DESTINATION include/uuid) endif() install( TARGETS uuid EXPORT uuid_targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) include(CMakePackageConfigHelpers) set(PACKAGE_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libuuid-config.cmake") set(INSTALL_CONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-libuuid") configure_package_config_file(unofficial-libuuid-config.cmake.in "${PACKAGE_CONFIG_FILE}" INSTALL_DESTINATION "${INSTALL_CONFIG_DIR}" ) export(EXPORT uuid_targets NAMESPACE unofficial::UUID:: FILE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libuuid-targets.cmake" ) install(EXPORT uuid_targets NAMESPACE unofficial::UUID:: FILE unofficial-libuuid-targets.cmake DESTINATION "${INSTALL_CONFIG_DIR}" ) install( FILES "${PACKAGE_CONFIG_FILE}" DESTINATION "${INSTALL_CONFIG_DIR}" ) ================================================ FILE: ports/libuuid/config.linux.h ================================================ #define HAVE_DECL__SC_HOST_NAME_MAX 1 #define HAVE_INTTYPES_H 1 #define HAVE_NETINET_IN_H 1 #define HAVE_SRANDOM 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_SYS_FILE_H 1 #define HAVE_SYS_IOCTL_H 1 #define HAVE_SYS_SOCKET_H 1 #define HAVE_SYS_TIME_H 1 #define HAVE_UNISTD_H 1 #define HAVE_USLEEP 1 #define PACKAGE_STRING "libuuid 1.0.3" ================================================ FILE: ports/libuuid/portfile.cmake ================================================ set(LIBUUID_VERSION 1.0.3) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO libuuid FILENAME "libuuid-${LIBUUID_VERSION}.tar.gz" SHA512 77488caccc66503f6f2ded7bdfc4d3bc2c20b24a8dc95b2051633c695e99ec27876ffbafe38269b939826e1fdb06eea328f07b796c9e0aaca12331a787175507 ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/config.linux.h" "${CMAKE_CURRENT_LIST_DIR}/unofficial-libuuid-config.cmake.in" DESTINATION "${SOURCE_PATH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() set(prefix "${CURRENT_INSTALLED_DIR}") set(exec_prefix \$\{prefix\}) set(libdir \$\{exec_prefix\}/lib) set(includedir \$\{prefix\}/include) configure_file("${SOURCE_PATH}/uuid.pc.in" "${SOURCE_PATH}/uuid.pc" @ONLY) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${SOURCE_PATH}/uuid.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${SOURCE_PATH}/uuid.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/unofficial-libuuid PACKAGE_NAME unofficial-libuuid) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_copy_pdbs() ================================================ FILE: ports/libuuid/unofficial-libuuid-config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libuuid-targets.cmake") ================================================ FILE: ports/libuuid/vcpkg.json ================================================ { "name": "libuuid", "version": "1.0.3", "port-version": 16, "description": "Universally unique id library", "homepage": "https://sourceforge.net/projects/libuuid/", "license": "BSD-3-Clause", "supports": "!osx & !windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libuv/fix-build-type.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e8e016..b3c3f18 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -465,7 +465,7 @@ if(LIBUV_BUILD_SHARED) endif() target_link_libraries(uv ${uv_libraries}) set_target_properties(uv PROPERTIES OUTPUT_NAME "uv") -endif() +else() add_library(uv_a STATIC ${uv_sources}) target_compile_definitions(uv_a PRIVATE ${uv_defines}) @@ -485,6 +485,7 @@ set_target_properties(uv_a PROPERTIES OUTPUT_NAME "uv") if(WIN32) set_target_properties(uv_a PROPERTIES PREFIX "lib") endif() +endif() if(LIBUV_BUILD_TESTS) # Small hack: use ${uv_test_sources} now to get the runner skeleton, @@ -755,10 +756,6 @@ configure_file(libuv-static.pc.in libuv-static.pc @ONLY) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR}) install(FILES LICENSE-extra DESTINATION ${CMAKE_INSTALL_DOCDIR}) -install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc - DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) -install(TARGETS uv_a EXPORT libuvConfig - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT libuvConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv NAMESPACE libuv::) @@ -775,6 +772,11 @@ if(LIBUV_BUILD_SHARED) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +else() +install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) +install(TARGETS uv_a EXPORT libuvConfig + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() if(MSVC) ================================================ FILE: ports/libuv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libuv/libuv REF "v${VERSION}" SHA512 c23bb26f8fdcf678dbf14bcee9855830927a40b8ae64dfa287ef1e910f37ad30cb868ecdeaad6f7b2bf3f3fccca1a7282a31b22c547206b672f923d0651f5b0c HEAD_REF v1.x PATCHES fix-build-type.patch ssize_t.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBUV_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBUV_BUILD_TESTS=OFF -DLIBUV_BUILD_BENCH=OFF -DLIBUV_BUILD_SHARED=${LIBUV_BUILD_SHARED} -DQEMU=OFF -DASAN=OFF -DTSAN=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libuv) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/uv.h" "defined(USING_UV_SHARED)" "1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/uv.h" "defined(USING_UV_SHARED)" "0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libuv/ssize_t.patch ================================================ diff --git a/include/uv/win.h b/include/uv/win.h index 12ac53b4..6e1abd5b 100644 --- a/include/uv/win.h +++ b/include/uv/win.h @@ -24,7 +24,9 @@ #endif #if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED) +# ifndef ssize_t typedef intptr_t ssize_t; +# endif # define SSIZE_MAX INTPTR_MAX # define _SSIZE_T_ # define _SSIZE_T_DEFINED ================================================ FILE: ports/libuv/usage ================================================ libuv provides CMake targets: find_package(libuv CONFIG REQUIRED) target_link_libraries(main PRIVATE $,libuv::uv_a,libuv::uv>) ================================================ FILE: ports/libuv/vcpkg.json ================================================ { "name": "libuv", "version-semver": "1.52.1", "description": "libuv is a multi-platform support library with a focus on asynchronous I/O.", "homepage": "https://github.com/libuv/libuv", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libuvc/build_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fbaffc9..672ebb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,6 @@ project(libuvc ) # Additional search scripts path for libusb-1.0, libjpeg, OpenCV -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) # Xcode and Visual Studio do not using CMAKE_BUILD_TYPE cache variable # so we use Release build type only with single configuration generators. @@ -39,10 +38,11 @@ set(SOURCES src/misc.c ) -find_package(LibUSB) +FIND_PACKAGE(PkgConfig REQUIRED) +pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) # JpegPkg name to differ from shipped with CMake -find_package(JpegPkg QUIET) +find_package(JPEG REQUIRED) if(JPEG_FOUND) message(STATUS "Building libuvc with JPEG support.") set(LIBUVC_HAS_JPEG TRUE) @@ -116,8 +116,11 @@ foreach(target_name IN LISTS UVC_TARGETS) ) target_link_libraries(${target_name} # libusb-1.0 used internally so we link to it privately. - PRIVATE LibUSB::LibUSB ${threads} + PRIVATE PkgConfig::libusb ${threads} ) + if(APPLE) + target_link_libraries(${target_name} PRIVATE "-framework IOKit" "-framework CoreFoundation" "-framework Security") + endif() if(JPEG_FOUND) target_link_libraries(${target_name} PRIVATE JPEG::JPEG @@ -191,12 +194,6 @@ install(EXPORT libuvcTargets DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ) -install(FILES - cmake/FindLibUSB.cmake - cmake/FindJpegPkg.cmake - DESTINATION ${CMAKE_INSTALL_CMAKEDIR} -) - include(CMakePackageConfigHelpers) write_basic_package_version_file(libuvcConfigVersion.cmake COMPATIBILITY AnyNewerVersion diff --git a/libuvcConfig.cmake b/libuvcConfig.cmake index b9887ea..c704ab5 100644 --- a/libuvcConfig.cmake +++ b/libuvcConfig.cmake @@ -10,8 +10,11 @@ if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) list(APPEND extraArgs REQUIRED) endif() -find_package(JpegPkg ${extraArgs}) -find_package(LibUSB ${extraArgs}) +include(CMakeFindDependencyMacro) +find_dependency(JPEG ${extraArgs}) +find_dependency(Threads) +find_package(PkgConfig REQUIRED) +pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) include("${CMAKE_CURRENT_LIST_DIR}/libuvcTargets.cmake") set(libuvc_FOUND TRUE) ================================================ FILE: ports/libuvc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libuvc/libuvc REF "v${VERSION}" SHA512 cf2c0a6cc04717f284f25bed17f178a4b2b2a2bb3e5937e50be144e88db2c481c5ea763c164fe0234834fea4837f96fcc13bdbdafd4610d2985943562dfcc72f HEAD_REF master PATCHES build_fix.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(BUILD_TARGET "Shared") else() set(BUILD_TARGET "Static") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPKG_CONFIG_EXECUTABLE="${PKGCONFIG}" -DCMAKE_BUILD_TARGET=${BUILD_TARGET} -DBUILD_EXAMPLE=OFF -DBUILD_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/libuvc/usage ================================================ libuvc provides CMake targets: find_package(libuvc CONFIG REQUIRED) target_link_libraries(main PRIVATE $,LibUVC::UVCStatic,LibUVC::UVCShared>) libuvc provides pkg-config modules: libuvc ================================================ FILE: ports/libuvc/vcpkg.json ================================================ { "name": "libuvc", "version": "0.0.7", "port-version": 1, "description": "a cross-platform library for USB video devices", "homepage": "https://github.com/libuvc/libuvc", "supports": "!uwp & !windows", "dependencies": [ "libjpeg-turbo", "libusb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libva/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/libva REF "${VERSION}" SHA512 03e3648b43a0c82c7840203d0b6286879317667ad9d4cf8d7813a29023ffebaf6cd5719a1a9f5fb0f2671738bd675c69a08fd27aa73b7339c8524a8f794150bc HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES x11 WITH_X11 wayland WITH_WAYLAND glx WITH_GLX ) message(WARNING "You will need to install libdrm dependencies to use this port:\nsudo apt install libdrm-dev\n") if ("x11" IN_LIST FEATURES) message(WARNING "You will need to install Xorg dependencies to use feature x11:\nsudo apt install libx11-dev libxext-dev libxfixes-dev libx11-xcb-dev libxcb-dri3-dev\n") endif() if ("wayland" IN_LIST FEATURES) message(WARNING "You will need to install Wayland dependencies to use feature wayland:\nsudo apt install libwayland-dev\n") endif() if ("glx" IN_LIST FEATURES) message(WARNING "You will need to install GLX dependencies to use feature glx:\nsudo apt install libglu1-mesa-dev\n") endif() if(WITH_X11) list(APPEND options -Dwith_x11=yes) else() list(APPEND options -Dwith_x11=no) endif() if(WITH_WAYLAND) list(APPEND options -Dwith_wayland=yes) else() list(APPEND options -Dwith_wayland=no) endif() if(WITH_GLX) list(APPEND options -Dwith_glx=yes) else() list(APPEND options -Dwith_glx=no) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libva/vcpkg.json ================================================ { "name": "libva", "version": "2.23.0", "description": "Libva is an implementation for VA-API (Video Acceleration API)", "homepage": "https://github.com/intel/libva", "license": "MIT", "supports": "linux", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "glx": { "description": "Build with GLX support", "supports": "linux", "dependencies": [ { "name": "libva", "features": [ "x11" ] } ] }, "wayland": { "description": "Build with Wayland support", "supports": "linux" }, "x11": { "description": "Build with X11 support", "supports": "linux" } } } ================================================ FILE: ports/libvault/0001-fix-dependencies.patch ================================================ diff --git a/VaultConfig.cmake.in b/VaultConfig.cmake.in index 67a40ab..82db52d 100644 --- a/VaultConfig.cmake.in +++ b/VaultConfig.cmake.in @@ -1,5 +1,8 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(CURL CONFIG) + include("${CMAKE_CURRENT_LIST_DIR}/libvaultTargets.cmake") check_required_components(vault) ================================================ FILE: ports/libvault/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO abedra/libvault REF "${VERSION}" SHA512 dc3295acafd1f9038430d8df00e96feb2252db0350716bd8a32c33d06a462a7ceb2c920458ca23bd42f5c14384fa1078ab4f69ff0817aa96b4e16ce03ddeddc2 PATCHES 0001-fix-dependencies.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TEST=OFF -DLINK_CURL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME libvault CONFIG_PATH lib/cmake/libvault) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Install usage configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/libvault/usage ================================================ libvault provides CMake targets: find_package(libvault CONFIG REQUIRED) target_link_libraries(main PRIVATE libvault::vault) ================================================ FILE: ports/libvault/vcpkg.json ================================================ { "name": "libvault", "version": "0.63.0", "description": "A C++ library for Hashicorp Vault", "homepage": "https://github.com/abedra/libvault", "license": "MIT", "supports": "!uwp", "dependencies": [ "curl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libversion/disable-test.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5309a30..f5fafa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,6 @@ cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) project(libversion VERSION 3.0.4) include(GNUInstallDirs) -enable_testing() # subdirs add_subdirectory(libversion) -add_subdirectory(tests) -add_subdirectory(utils) ================================================ FILE: ports/libversion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO repology/libversion REF ${VERSION} SHA512 5be723103f33d764ad9c426fb915144d7ab0ca0de9c2650099060a543d01184c68d0849325d964b4815372ae9d71c9dbcb114049828ccd87d6dd6ad186d91fee HEAD_REF master PATCHES disable-test.patch separate-build-type.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libversion) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libversion/separate-build-type.patch ================================================ diff --git a/libversion/CMakeLists.txt b/libversion/CMakeLists.txt index 52a6ba7..71760dc 100644 --- a/libversion/CMakeLists.txt +++ b/libversion/CMakeLists.txt @@ -89,8 +89,11 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libversion ) -install(TARGETS libversion libversion_static EXPORT libversion) - +if(BUILD_SHARED_LIBS) +install(TARGETS libversion EXPORT libversion) +else() +install(TARGETS libversion_static EXPORT libversion) +endif() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libversion.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(EXPORT libversion NAMESPACE libversion:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libversion FILE libversionConfig.cmake) ================================================ FILE: ports/libversion/vcpkg.json ================================================ { "$comment": "The supports clause avoids trying to produce version.lib which conflicts with the Windows SDK and causes other ports to fail due to missing VerQueryValue et al.", "name": "libversion", "version": "3.0.4", "port-version": 1, "description": "Advanced version string comparison library", "homepage": "https://github.com/repology/libversion", "license": "MIT", "supports": "!(windows & static)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libvhdi/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(libvhdi C) find_package(ZLIB REQUIRED) if(MSVC) add_compile_definitions(_CRT_SECURE_NO_DEPRECATE) add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE) endif() add_compile_definitions(HAVE_LOCAL_LIBCERROR) add_compile_definitions(HAVE_LOCAL_LIBCTHREADS) add_compile_definitions(HAVE_LOCAL_LIBCDATA) add_compile_definitions(HAVE_LOCAL_LIBCLOCALE) add_compile_definitions(HAVE_LOCAL_LIBCNOTIFY) add_compile_definitions(HAVE_LOCAL_LIBCSPLIT) add_compile_definitions(HAVE_LOCAL_LIBCFILE) add_compile_definitions(HAVE_LOCAL_LIBCPATH) add_compile_definitions(HAVE_LOCAL_LIBUNA) add_compile_definitions(HAVE_LOCAL_LIBBFIO) add_compile_definitions(HAVE_LOCAL_LIBFCACHE) add_compile_definitions(HAVE_LOCAL_LIBFDATA) add_compile_definitions(HAVE_LOCAL_LIBFVALUE) add_compile_definitions(HAVE_LOCAL_LIBFGUID) add_compile_definitions(ZLIB_DLL) if(UNIX) configure_file(common/config.h.in common/config.h) add_compile_definitions(HAVE_CONFIG_H) add_compile_definitions(LOCALEDIR="/usr/share/locale") endif() if(MSVC) add_compile_definitions(LIBVHDI_DLL_EXPORT) set(LIB_RC libvhdi/libvhdi.rc) endif() include(GNUInstallDirs) include(CMakePackageConfigHelpers) # Add CMake find_package() integration set(PROJECT_TARGET_NAME "${PROJECT_NAME}") set(CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") set(PROJECT_CONFIG "${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_TARGET_NAME}Config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_TARGET_NAME}Targets") set(NAMESPACE "libvhdi::") # Source files file(GLOB LIB_SRC lib*/*.c) # Headers file(GLOB LIB_INST_HEADERS include/libvhdi/*.h) add_library(${PROJECT_NAME} ${LIB_SRC} ${LIB_RC}) target_include_directories(${PROJECT_NAME} PRIVATE ./include ./common) target_include_directories(${PROJECT_NAME} PRIVATE ./libbfio ./libcdata ./libcerror ./libcfile ./libclocale) target_include_directories(${PROJECT_NAME} PRIVATE ./libcnotify ./libcpath ./libcsplit ./libcthreads) target_include_directories(${PROJECT_NAME} PRIVATE ./libfcache ./libfdata ./libfvalue ./libuna ./libfguid) target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB) install(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME} RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib INCLUDES DESTINATION include) install(FILES ${LIB_INST_HEADERS} DESTINATION include/libvhdi) install(FILES include/libvhdi.h DESTINATION include) # Generate and install libvhdiConfig.cmake configure_package_config_file("Config.cmake.in" "${PROJECT_CONFIG}" INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}") install(FILES "${PROJECT_CONFIG}" DESTINATION "${CONFIG_INSTALL_DIR}") # Generate and install libvhdiTargets*.cmake install(EXPORT ${TARGETS_EXPORT_NAME} NAMESPACE ${NAMESPACE} DESTINATION "${CONFIG_INSTALL_DIR}") ================================================ FILE: ports/libvhdi/Config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(ZLIB) include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/libvhdi/macos_fixes.patch ================================================ diff --git a/libcfile/libcfile_file.c b/libcfile/libcfile_file.c index 417417c..abf49a0 100644 --- a/libcfile/libcfile_file.c +++ b/libcfile/libcfile_file.c @@ -56,7 +56,7 @@ #elif defined( HAVE_CYGWIN_FS_H ) #include -#elif defined( HAVE_LINUX_FS_H ) +#elif defined( __linux__ ) && defined( HAVE_LINUX_FS_H ) /* Required for Linux platforms that use a sizeof( u64 ) * in linux/fs.h but have no typedef of it */ @@ -4194,6 +4194,11 @@ ssize_t libcfile_file_io_control_read( return( read_count ); } +// Force disable on Darwin, it can be erroneously defined +#if defined ( __APPLE__ ) +#undef HAVE_POSIX_FADVISE +#endif + /* Read data from a device file using IO control * Returns the number of bytes read if successful or -1 on error */ diff --git a/libclocale/libclocale_support.c b/libclocale/libclocale_support.c index b5f3d7b..d914c46 100644 --- a/libclocale/libclocale_support.c +++ b/libclocale/libclocale_support.c @@ -68,7 +68,7 @@ int libclocale_initialize( return( -1 ); } -#if defined( HAVE_BINDTEXTDOMAIN ) && defined( HAVE_TEXTDOMAIN ) && defined( LOCALEDIR ) +#if !defined( __APPLE__ ) && defined( HAVE_BINDTEXTDOMAIN ) && defined( HAVE_TEXTDOMAIN ) && defined( LOCALEDIR ) if( bindtextdomain( domain_name, LOCALEDIR ) == NULL ) diff --git a/libvhdi/libvhdi_i18n.c b/libvhdi/libvhdi_i18n.c index 66e0651..bb5a356 100644 --- a/libvhdi/libvhdi_i18n.c +++ b/libvhdi/libvhdi_i18n.c @@ -40,7 +40,7 @@ int libvhdi_i18n_initialize( if( libvhdi_i18n_initialized == 0 ) { -#if defined( HAVE_BINDTEXTDOMAIN ) && defined( LOCALEDIR ) +#if !defined( __APPLE__ ) && defined( HAVE_BINDTEXTDOMAIN ) && defined( LOCALEDIR ) if( bindtextdomain( "libvhdi", LOCALEDIR ) == NULL ) ================================================ FILE: ports/libvhdi/portfile.cmake ================================================ set(LIB_FILENAME libvhdi-alpha-${VERSION}.tar.gz) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/libyal/libvhdi/releases/download/${VERSION}/${LIB_FILENAME}" FILENAME "${LIB_FILENAME}" SHA512 982ce91da22f174285aab00c26c4b26375f4d87afb08551a9c5a4d678e15010f066c624e1a0db87ae62a26d30d692a7f1c883dcbe748ebc3cf0e5817dbaa467f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES macos_fixes.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libvhdi) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" ) vcpkg_copy_pdbs() ================================================ FILE: ports/libvhdi/vcpkg.json ================================================ { "name": "libvhdi", "version": "20251119", "description": "Library and tools to access the Virtual Hard Disk (VHD) image format ", "homepage": "https://github.com/libyal/libvhdi", "license": "LGPL-3.0-or-later", "supports": "!uwp", "dependencies": [ "gettext", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libvmaf/android-off_t.patch ================================================ --- a/libvmaf/src/meson.build +++ b/libvmaf/src/meson.build @@ -13,6 +13,13 @@ if cc.get_id() != 'msvc' '-pedantic', '-DOC_NEW_STYLE_INCLUDES', ] + # If the target is Android, define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS unconditionally + # to work around the fact that meson always defines _FILE_OFFSET_BITS=64, which + # causes issues for API levels below 24 in 32-bit architectures. + # See https://github.com/mesonbuild/meson/issues/3049 for more details. + if target_machine.system() == 'android' + vmaf_cflags_common += '-D_LIBCPP_HAS_NO_OFF_T_FUNCTIONS' + endif else vmaf_cflags_common = [ '-wd4028', # parameter different from declaration ================================================ FILE: ports/libvmaf/no-tools.patch ================================================ Skip tools subdir in libvmaf to build only the library. --- a/libvmaf/meson.build +++ b/libvmaf/meson.build @@ -51,6 +51,5 @@ endif subdir('include') subdir('src') -subdir('tools') subdir('doc') subdir('test') ================================================ FILE: ports/libvmaf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Netflix/vmaf REF "v${VERSION}" SHA512 9e356bb274ce7d5d85a64d2a1a122ea9d267809edd83bb6e663fb348a1a46355882eb9044982bf679f03df7f93c6f66c9b0d9a94661979b2c722db30b21c4f32 HEAD_REF master PATCHES no-tools.patch android-off_t.patch ) vcpkg_find_acquire_program(NASM) get_filename_component(NASM_PATH "${NASM}" DIRECTORY) vcpkg_add_to_path("${NASM_PATH}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}/libvmaf" OPTIONS -Denable_tests=false -Denable_docs=false ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libvmaf/vcpkg.json ================================================ { "name": "libvmaf", "version": "3.0.0", "description": "libvmaf is a library developed by Netflix to compute the VMAF (Video Multi-Method Assessment Fusion) metric.", "homepage": "https://github.com/Netflix/vmaf", "license": "BSD-2-Clause-Patent", "supports": "!windows", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libvorbis/0001-Dont-export-vorbisenc-functions.patch ================================================ diff --git a/win32/vorbis.def b/win32/vorbis.def index 9cca64d..a80fff7 100644 --- a/win32/vorbis.def +++ b/win32/vorbis.def @@ -49,11 +49,4 @@ vorbis_synthesis_idheader ; vorbis_window ;_analysis_output_always -vorbis_encode_init -vorbis_encode_setup_managed -vorbis_encode_setup_vbr -vorbis_encode_init_vbr -vorbis_encode_setup_init -vorbis_encode_ctl -; vorbis_version_string ================================================ FILE: ports/libvorbis/0002-Fixup-pkgconfig-libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f377c428..07530304 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,9 @@ message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}") # Find math library check_library_exists(m floor "" HAVE_LIBM) +if(HAVE_LIBM) + set(VORBIS_LIBS "-lm") +endif() # Find ogg dependency find_package(Ogg REQUIRED) ================================================ FILE: ports/libvorbis/0003-def-mingw-compat.patch ================================================ diff --git a/win32/vorbis.def b/win32/vorbis.def index 1310b6c..de14385 100644 --- a/win32/vorbis.def +++ b/win32/vorbis.def @@ -1,6 +1,5 @@ ; vorbis.def ; -LIBRARY EXPORTS _floor_P _mapping_P diff --git a/win32/vorbisenc.def b/win32/vorbisenc.def index 79af064..40a3e39 100644 --- a/win32/vorbisenc.def +++ b/win32/vorbisenc.def @@ -1,6 +1,5 @@ ; vorbisenc.def ; -LIBRARY EXPORTS vorbis_encode_init diff --git a/win32/vorbisfile.def b/win32/vorbisfile.def index 4dc5549..243795d 100644 --- a/win32/vorbisfile.def +++ b/win32/vorbisfile.def @@ -1,6 +1,5 @@ ; vorbisfile.def ; -LIBRARY EXPORTS ov_clear ov_open ================================================ FILE: ports/libvorbis/0004-ogg-find-dependency.patch ================================================ diff --git a/cmake/VorbisConfig.cmake.in b/cmake/VorbisConfig.cmake.in index 6fc07941..c762ba55 100644 --- a/cmake/VorbisConfig.cmake.in +++ b/cmake/VorbisConfig.cmake.in @@ -1,7 +1,7 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Ogg REQUIRED) +find_dependency(Ogg CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/VorbisTargets.cmake) ================================================ FILE: ports/libvorbis/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/vorbis REF v1.3.7 SHA512 bfb6f5dbfd49ed38b2b08b3667c06d02e68f649068a050f21a3cc7e1e56b27afd546aaa3199c4f6448f03f6e66a82f9a9dc2241c826d3d1d4acbd38339b9e9fb HEAD_REF master PATCHES 0001-Dont-export-vorbisenc-functions.patch 0002-Fixup-pkgconfig-libs.patch 0003-def-mingw-compat.patch 0004-ogg-find-dependency.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_VERSION_MINIMUM=3.5 # https://github.com/xiph/vorbis/issues/113 MAYBE_UNUSED_VARIABLES CMAKE_POLICY_VERSION_MINIMUM ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME Vorbis CONFIG_PATH "lib/cmake/Vorbis") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libvorbis/usage ================================================ The package libvorbis provides CMake targets: # Vorbis reference encoder and decoder, low-level API find_package(Vorbis CONFIG REQUIRED) target_link_libraries(main PRIVATE Vorbis::vorbis) # Audio stream decoding and basic manipulation, high-level API find_package(Vorbis CONFIG REQUIRED) target_link_libraries(main PRIVATE Vorbis::vorbisfile) # Convenience API for setting up an encoding environment find_package(Vorbis CONFIG REQUIRED) target_link_libraries(main PRIVATE Vorbis::vorbisenc) ================================================ FILE: ports/libvorbis/vcpkg.json ================================================ { "name": "libvorbis", "version": "1.3.7", "port-version": 4, "description": "Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format", "homepage": "https://github.com/xiph/vorbis", "license": "BSD-3-Clause", "dependencies": [ "libogg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libvpx/0003-add-uwp-v142-and-v143-support.patch ================================================ diff --git a/build/make/configure.sh b/build/make/configure.sh index ebaec96a5..c80c14984 100644 --- a/build/make/configure.sh +++ b/build/make/configure.sh @@ -1092,7 +1092,7 @@ EOF # A number of ARM-based Windows platforms are constrained by their # respective SDKs' limitations. Fortunately, these are all 32-bit ABIs # and so can be selected as 'win32'. - if [ ${tgt_os} = "win32" ]; then + if [ ${tgt_os} = "win32" ] || [ ${tgt_isa} = "armv7" ]; then asm_conversion_cmd="${source_path_mk}/build/make/ads2armasm_ms.pl" AS_SFX=.S msvs_arch_dir=arm-msvs @@ -1368,6 +1368,9 @@ EOF android) soft_enable realtime_only ;; + uwp) + enabled gcc && add_cflags -fno-common + ;; win*) enabled gcc && add_cflags -fno-common ;; @@ -1490,14 +1493,26 @@ EOF fi AS_SFX=.asm case ${tgt_os} in + uwp) + if [ ${tgt_isa} = "x86" ] || [ ${tgt_isa} = "armv7" ]; then + add_asflags -f win32 + else + add_asflags -f win64 + fi + enabled debug && [ "${AS}" = yasm ] && add_asflags -g cv8 + enabled debug && [ "${AS}" = nasm ] && add_asflags -gcv8 + EXE_SFX=.exe + ;; win32) add_asflags -f win32 - enabled debug && add_asflags -g cv8 + enabled debug && [ "${AS}" = yasm ] && add_asflags -g cv8 + enabled debug && [ "${AS}" = nasm ] && add_asflags -gcv8 EXE_SFX=.exe ;; win64) add_asflags -f win64 - enabled debug && add_asflags -g cv8 + enabled debug && [ "${AS}" = yasm ] && add_asflags -g cv8 + enabled debug && [ "${AS}" = nasm ] && add_asflags -gcv8 EXE_SFX=.exe ;; linux*|solaris*|android*) @@ -1625,6 +1640,8 @@ EOF # Almost every platform uses pthreads. if enabled multithread; then case ${toolchain} in + *-uwp-vs*) + ;; *-win*-vs*) ;; *-android-gcc) diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh index 1e1db05bb..543eb37b2 100755 --- a/build/make/gen_msvs_vcxproj.sh +++ b/build/make/gen_msvs_vcxproj.sh @@ -310,7 +310,22 @@ generate_vcxproj() { tag_content ProjectGuid "{${guid}}" tag_content RootNamespace ${name} tag_content Keyword ManagedCProj - if [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then + if [ $vs_ver -ge 16 ]; then + if [[ $target =~ [^-]*-uwp-.* ]]; then + # Universal Windows Applications + tag_content AppContainerApplication true + tag_content ApplicationType "Windows Store" + tag_content ApplicationTypeRevision 10.0 + fi + if [[ $target =~ [^-]*-uwp-.* ]] || [ "${platforms[0]}" = "ARM" ] || [ "${platforms[0]}" = "ARM64" ]; then + # Default to the latest Windows 10 SDK + tag_content WindowsTargetPlatformVersion 10.0 + else + # Minimum supported version of Windows for the desktop + tag_content WindowsTargetPlatformVersion 8.1 + fi + tag_content MinimumVisualStudioVersion 16.0 + elif [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then tag_content AppContainerApplication true # The application type can be one of "Windows Store", # "Windows Phone" or "Windows Phone Silverlight". The @@ -412,7 +427,7 @@ generate_vcxproj() { Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" if [ "$name" == "vpx" ]; then hostplat=$plat - if [ "$hostplat" == "ARM" ]; then + if [ "$hostplat" == "ARM" ] && [ $vs_ver -le 15 ]; then hostplat=Win32 fi fi diff --git a/configure b/configure index f7225f061..a372a9ae5 100755 --- a/configure +++ b/configure @@ -106,6 +106,8 @@ all_platforms="${all_platforms} arm64-darwin23-gcc" all_platforms="${all_platforms} arm64-darwin24-gcc" all_platforms="${all_platforms} arm64-darwin25-gcc" all_platforms="${all_platforms} arm64-linux-gcc" +all_platforms="${all_platforms} arm64-uwp-vs16" +all_platforms="${all_platforms} arm64-uwp-vs17" all_platforms="${all_platforms} arm64-win64-gcc" all_platforms="${all_platforms} arm64-win64-vs15" all_platforms="${all_platforms} arm64-win64-vs16" @@ -117,6 +119,8 @@ all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8 all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8 all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8 all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8 +all_platforms="${all_platforms} armv7-uwp-vs16" +all_platforms="${all_platforms} armv7-uwp-vs17" all_platforms="${all_platforms} armv7-win32-gcc" all_platforms="${all_platforms} armv7-win32-vs14" all_platforms="${all_platforms} armv7-win32-vs15" @@ -148,6 +152,8 @@ all_platforms="${all_platforms} x86-linux-gcc" all_platforms="${all_platforms} x86-linux-icc" all_platforms="${all_platforms} x86-os2-gcc" all_platforms="${all_platforms} x86-solaris-gcc" +all_platforms="${all_platforms} x86-uwp-vs16" +all_platforms="${all_platforms} x86-uwp-vs17" all_platforms="${all_platforms} x86-win32-gcc" all_platforms="${all_platforms} x86-win32-vs14" all_platforms="${all_platforms} x86-win32-vs15" @@ -175,6 +181,8 @@ all_platforms="${all_platforms} x86_64-iphonesimulator-gcc" all_platforms="${all_platforms} x86_64-linux-gcc" all_platforms="${all_platforms} x86_64-linux-icc" all_platforms="${all_platforms} x86_64-solaris-gcc" +all_platforms="${all_platforms} x86_64-uwp-vs16" +all_platforms="${all_platforms} x86_64-uwp-vs17" all_platforms="${all_platforms} x86_64-win64-gcc" all_platforms="${all_platforms} x86_64-win64-vs14" all_platforms="${all_platforms} x86_64-win64-vs15" @@ -510,11 +518,10 @@ process_targets() { ! enabled multithread && DIST_DIR="${DIST_DIR}-nomt" ! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs" DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}" - case "${tgt_os}" in - win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md" - DIST_DIR="${DIST_DIR}-${tgt_cc}" - ;; - esac + if [[ ${tgt_os} =~ win.* ]] || [ "${tgt_os}" = "uwp" ]; then + enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md" + DIST_DIR="${DIST_DIR}-${tgt_cc}" + fi if [ -f "${source_path}/build/make/version.sh" ]; then ver=`"$source_path/build/make/version.sh" --bare "$source_path"` DIST_DIR="${DIST_DIR}-${ver}" @@ -603,6 +610,10 @@ process_detect() { # Specialize windows and POSIX environments. case $toolchain in + *-uwp-*) + # Don't check for any headers in UWP builds. + false + ;; *-win*-*) # Don't check for any headers in Windows builds. false -- 2.49.0 ================================================ FILE: ports/libvpx/0004-remove-library-suffixes.patch ================================================ diff --git a/build/make/gen_msvs_vcxproj.sh b/build/make/gen_msvs_vcxproj.sh index 916851662..e60405bc9 100755 --- a/build/make/gen_msvs_vcxproj.sh +++ b/build/make/gen_msvs_vcxproj.sh @@ -394,7 +394,7 @@ generate_vcxproj() { else config_suffix="" fi - tag_content TargetName "${name}${lib_sfx}${config_suffix}" + tag_content TargetName "${name}" fi close_tag PropertyGroup done ================================================ FILE: ports/libvpx/0005-dont-expect-gnu-diff.patch ================================================ diff --git a/configure b/configure index 356bbe26f..7f8c5559b 100755 --- a/configure +++ b/configure @@ -189,7 +189,7 @@ for t in ${all_targets}; do [ -f "${source_path}/${t}.mk" ] && enable_feature ${t} done -if ! diff --version >/dev/null; then +if ! hash diff >/dev/null; then die "diff missing: Try installing diffutils via your package manager." fi ================================================ FILE: ports/libvpx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webmproject/libvpx REF "v${VERSION}" SHA512 07f5e352411d6c0be331706d1835ac89bafbeddcbbac5542b473323766e9e974f4f68b33590f2aa50a7d8d69468a642b508cbb0a7c49a82c9933b07820f9c9d9 HEAD_REF master PATCHES 0003-add-uwp-v142-and-v143-support.patch 0004-remove-library-suffixes.patch 0005-dont-expect-gnu-diff.patch ) if(CMAKE_HOST_WIN32) vcpkg_acquire_msys(MSYS_ROOT PACKAGES make perl) set(ENV{PATH} "${MSYS_ROOT}/usr/bin;$ENV{PATH}") else() vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) set(ENV{PATH} "${MSYS_ROOT}/usr/bin:$ENV{PATH}:${PERL_EXE_PATH}") endif() find_program(BASH NAME bash HINTS ${MSYS_ROOT}/usr/bin REQUIRED NO_CACHE) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_find_acquire_program(NASM) get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) vcpkg_add_to_path(${NASM_EXE_PATH}) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tmp") if(VCPKG_CRT_LINKAGE STREQUAL static) set(LIBVPX_CRT_LINKAGE --enable-static-msvcrt) set(LIBVPX_CRT_SUFFIX mt) else() set(LIBVPX_CRT_SUFFIX md) endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore AND (VCPKG_PLATFORM_TOOLSET STREQUAL v142 OR VCPKG_PLATFORM_TOOLSET STREQUAL v143)) set(LIBVPX_TARGET_OS "uwp") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86 OR VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(LIBVPX_TARGET_OS "win32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64 OR VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(LIBVPX_TARGET_OS "win64") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(LIBVPX_TARGET_ARCH "x86-${LIBVPX_TARGET_OS}") set(LIBVPX_ARCH_DIR "Win32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(LIBVPX_TARGET_ARCH "x86_64-${LIBVPX_TARGET_OS}") set(LIBVPX_ARCH_DIR "x64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(LIBVPX_TARGET_ARCH "arm64-${LIBVPX_TARGET_OS}") set(LIBVPX_ARCH_DIR "ARM64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(LIBVPX_TARGET_ARCH "armv7-${LIBVPX_TARGET_OS}") set(LIBVPX_ARCH_DIR "ARM") endif() if(VCPKG_PLATFORM_TOOLSET STREQUAL v143) set(LIBVPX_TARGET_VS "vs17") elseif(VCPKG_PLATFORM_TOOLSET STREQUAL v142) set(LIBVPX_TARGET_VS "vs16") else() set(LIBVPX_TARGET_VS "vs15") endif() set(OPTIONS "--disable-examples --disable-tools --disable-docs --enable-pic") if("realtime" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-realtime-only") endif() if("highbitdepth" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-vp9-highbitdepth") endif() message(STATUS "Generating makefile") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tmp") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc "${SOURCE_PATH}/configure" --target=${LIBVPX_TARGET_ARCH}-${LIBVPX_TARGET_VS} ${LIBVPX_CRT_LINKAGE} ${OPTIONS} --as=nasm WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tmp" LOGNAME configure-${TARGET_TRIPLET}) message(STATUS "Generating MSBuild projects") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc -c "make dist" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tmp" LOGNAME generate-${TARGET_TRIPLET}) vcpkg_msbuild_install( SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tmp" PROJECT_SUBPATH vpx.vcxproj ) if (VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vpx-vp8-vp9-nopost-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${VERSION}/include/vpx") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vpx-vp8-vp9-nopost-nomt-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${VERSION}/include/vpx") else() set(LIBVPX_INCLUDE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vpx-vp8-vp9-nodocs-${LIBVPX_TARGET_ARCH}${LIBVPX_CRT_SUFFIX}-${LIBVPX_TARGET_VS}-v${VERSION}/include/vpx") endif() file( INSTALL "${LIBVPX_INCLUDE_DIR}" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME "vpx") if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(LIBVPX_PREFIX "${CURRENT_INSTALLED_DIR}") configure_file("${CMAKE_CURRENT_LIST_DIR}/vpx.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/vpx.pc" @ONLY) endif() if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(LIBVPX_PREFIX "${CURRENT_INSTALLED_DIR}/debug") configure_file("${CMAKE_CURRENT_LIST_DIR}/vpx.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/vpx.pc" @ONLY) endif() else() set(OPTIONS "--disable-examples --disable-tools --disable-docs --disable-unit-tests --enable-pic") set(OPTIONS_DEBUG "--enable-debug-libs --enable-debug --prefix=${CURRENT_PACKAGES_DIR}/debug") set(OPTIONS_RELEASE "--prefix=${CURRENT_PACKAGES_DIR}") set(AS_NASM "--as=nasm") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPTIONS "${OPTIONS} --disable-static --enable-shared") else() set(OPTIONS "${OPTIONS} --enable-static --disable-shared") endif() if("realtime" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-realtime-only") endif() if("highbitdepth" IN_LIST FEATURES) set(OPTIONS "${OPTIONS} --enable-vp9-highbitdepth") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(LIBVPX_TARGET_ARCH "x86") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(LIBVPX_TARGET_ARCH "x86_64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(LIBVPX_TARGET_ARCH "armv7") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(LIBVPX_TARGET_ARCH "arm64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL riscv64) set(LIBVPX_TARGET_ARCH "riscv64") else() message(FATAL_ERROR "libvpx does not support architecture ${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") # Set environment variables for configure if(VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "([^\/]*-)gcc$") message(STATUS "Cross-building for ${TARGET_TRIPLET} with ${CMAKE_MATCH_1}") set(ENV{CROSS} ${CMAKE_MATCH_1}) unset(AS_NASM) else() set(ENV{CC} ${VCPKG_DETECTED_CMAKE_C_COMPILER}) set(ENV{CXX} ${VCPKG_DETECTED_CMAKE_CXX_COMPILER}) set(ENV{AR} ${VCPKG_DETECTED_CMAKE_AR}) set(ENV{LD} ${VCPKG_DETECTED_CMAKE_LINKER}) set(ENV{RANLIB} ${VCPKG_DETECTED_CMAKE_RANLIB}) set(ENV{STRIP} ${VCPKG_DETECTED_CMAKE_STRIP}) endif() if(VCPKG_TARGET_IS_MINGW) if(LIBVPX_TARGET_ARCH STREQUAL "x86") set(LIBVPX_TARGET "x86-win32-gcc") else() set(LIBVPX_TARGET "x86_64-win64-gcc") endif() elseif(VCPKG_TARGET_IS_LINUX) # RISCV64 use target generic-gnu if(LIBVPX_TARGET_ARCH STREQUAL "riscv64") set(LIBVPX_TARGET "generic-gnu") else() set(LIBVPX_TARGET "${LIBVPX_TARGET_ARCH}-linux-gcc") endif() elseif(VCPKG_TARGET_IS_ANDROID) set(LIBVPX_TARGET "generic-gnu") # Settings if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(OPTIONS "${OPTIONS} --disable-sse4_1 --disable-avx --disable-avx2 --disable-avx512") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(OPTIONS "${OPTIONS} --disable-avx --disable-avx2 --disable-avx512") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(OPTIONS "${OPTIONS} --enable-thumb --disable-neon") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(OPTIONS "${OPTIONS} --enable-thumb") endif() # Set environment variables for configure set(ENV{AS} ${VCPKG_DETECTED_CMAKE_C_COMPILER}) set(ENV{LDFLAGS} "${LDFLAGS} --target=${VCPKG_DETECTED_CMAKE_C_COMPILER_TARGET}") # Set clang target set(OPTIONS "${OPTIONS} --extra-cflags=--target=${VCPKG_DETECTED_CMAKE_C_COMPILER_TARGET} --extra-cxxflags=--target=${VCPKG_DETECTED_CMAKE_CXX_COMPILER_TARGET}") # Unset nasm and let AS do its job unset(AS_NASM) elseif(VCPKG_TARGET_IS_OSX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(LIBVPX_TARGET "arm64-darwin20-gcc") if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) set(MAC_OSX_MIN_VERSION_CFLAGS --extra-cflags=-mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET} --extra-cxxflags=-mmacosx-version-min=${VCPKG_OSX_DEPLOYMENT_TARGET}) endif() else() set(LIBVPX_TARGET "${LIBVPX_TARGET_ARCH}-darwin17-gcc") # enable latest CPU instructions for best performance and less CPU usage on MacOS endif() elseif(VCPKG_TARGET_IS_IOS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm) set(LIBVPX_TARGET "armv7-darwin-gcc") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) set(LIBVPX_TARGET "arm64-darwin-gcc") else() message(FATAL_ERROR "libvpx does not support architecture ${VCPKG_TARGET_ARCHITECTURE} on iOS") endif() else() set(LIBVPX_TARGET "generic-gnu") # use default target endif() if (VCPKG_HOST_IS_BSD) set(MAKE_BINARY "gmake") else() set(MAKE_BINARY "make") endif() message(STATUS "Build info. Target: ${LIBVPX_TARGET}; Options: ${OPTIONS}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") message(STATUS "Configuring libvpx for Release") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc "${SOURCE_PATH}/configure" --target=${LIBVPX_TARGET} ${OPTIONS} ${OPTIONS_RELEASE} ${MAC_OSX_MIN_VERSION_CFLAGS} ${AS_NASM} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" LOGNAME configure-${TARGET_TRIPLET}-rel) message(STATUS "Building libvpx for Release") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc -c "${MAKE_BINARY} -j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" LOGNAME build-${TARGET_TRIPLET}-rel ) message(STATUS "Installing libvpx for Release") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc -c "${MAKE_BINARY} install" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" LOGNAME install-${TARGET_TRIPLET}-rel ) endif() # --- --- --- if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Configuring libvpx for Debug") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc "${SOURCE_PATH}/configure" --target=${LIBVPX_TARGET} ${OPTIONS} ${OPTIONS_DEBUG} ${MAC_OSX_MIN_VERSION_CFLAGS} ${AS_NASM} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME configure-${TARGET_TRIPLET}-dbg) message(STATUS "Building libvpx for Debug") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc -c "${MAKE_BINARY} -j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME build-${TARGET_TRIPLET}-dbg ) message(STATUS "Installing libvpx for Debug") vcpkg_execute_required_process( COMMAND ${BASH} --noprofile --norc -c "${MAKE_BINARY} install" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME install-${TARGET_TRIPLET}-dbg ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libvpx_g.a") endif() endif() vcpkg_fixup_pkgconfig() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(LIBVPX_CONFIG_DEBUG ON) else() set(LIBVPX_CONFIG_DEBUG OFF) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-libvpx-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-libvpx/unofficial-libvpx-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libvpx/unofficial-libvpx-config.cmake.in ================================================ if(NOT TARGET unofficial::libvpx::libvpx) # Compute the installation prefix relative to this file. 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 target (note: vpx always has a static build in vcpkg). add_library(unofficial::libvpx::libvpx STATIC IMPORTED) # Add interface include directories and link interface languages (applies to all configurations). set_target_properties(unofficial::libvpx::libvpx PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) list(APPEND _IMPORT_CHECK_FILES "${_IMPORT_PREFIX}/include/vpx/vpx_codec.h") # Add release configuration properties. find_library(_LIBFILE_RELEASE NAMES vpx PATHS "${_IMPORT_PREFIX}/lib/" NO_DEFAULT_PATH) set_property(TARGET unofficial::libvpx::libvpx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(unofficial::libvpx::libvpx PROPERTIES IMPORTED_LOCATION_RELEASE ${_LIBFILE_RELEASE}) list(APPEND _IMPORT_CHECK_FILES ${_LIBFILE_RELEASE}) unset(_LIBFILE_RELEASE CACHE) # Add debug configuration properties. if(@LIBVPX_CONFIG_DEBUG@) find_library(_LIBFILE_DEBUG NAMES vpx PATHS "${_IMPORT_PREFIX}/debug/lib/" NO_DEFAULT_PATH) set_property(TARGET unofficial::libvpx::libvpx APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(unofficial::libvpx::libvpx PROPERTIES IMPORTED_LOCATION_DEBUG ${_LIBFILE_DEBUG}) list(APPEND _IMPORT_CHECK_FILES ${_LIBFILE_DEBUG}) unset(_LIBFILE_DEBUG CACHE) endif() # Check header and library files are present. foreach(file ${_IMPORT_CHECK_FILES} ) if(NOT EXISTS "${file}" ) message(FATAL_ERROR "unofficial::libvpx::libvpx references the file \"${file}\" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. ") endif() endforeach() unset(_IMPORT_CHECK_FILES) endif() ================================================ FILE: ports/libvpx/vcpkg.json ================================================ { "name": "libvpx", "version": "1.16.0", "description": "The reference software implementation for the video coding formats VP8 and VP9.", "homepage": "https://github.com/webmproject/libvpx", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ], "features": { "highbitdepth": { "description": "use VP9 high bit depth (10/12) profiles" }, "realtime": { "description": "enable this option while building for real-time encoding" } } } ================================================ FILE: ports/libvpx/vpx.pc.in ================================================ prefix=@LIBVPX_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: vpx Description: WebM Project VPx codec implementation Version: @VERSION@ Requires: Conflicts: Libs: -L"${libdir}" -lvpx Cflags: -I"${includedir}" ================================================ FILE: ports/libwandio/configure.lib.patch ================================================ diff --git a/configure.ac b/configure.ac index 428e66a..21e39db 100644 --- a/configure.ac +++ b/configure.ac @@ -110,10 +110,10 @@ AC_CHECK_SIZEOF([long int]) AC_CHECK_HEADERS(stddef.h inttypes.h sys/prctl.h) # Checks for various "optional" libraries -AC_CHECK_LIB(pthread, pthread_create, have_pthread=1, have_pthread=0) +AC_SEARCH_LIBS(pthread_create, [pthreadGC pthreadVC pthread], have_pthread=1, have_pthread=0) if test "$have_pthread" = 1; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lpthread" + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_pthread_create" AC_DEFINE(HAVE_LIBPTHREAD, 1, [Set to 1 if pthreads are supported]) fi @@ -126,12 +126,12 @@ AC_ARG_WITH([bzip2], AS_IF([test "x$with_bzip2" != "xno"], [ - AC_CHECK_LIB(bz2, BZ2_bzDecompressInit, have_bzip=yes, have_bzip=no) + AC_SEARCH_LIBS(BZ2_bzDecompressInit, [bz2 bz2d bzip2 bzip2d], have_bzip=yes, have_bzip=no) ], [have_bzip=no]) AS_IF([test "x$have_bzip" = "xyes"], [ - if test "$ac_cv_lib_bz2_BZ2_bzDecompressInit" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lbz2" + if test "$ac_cv_search_BZ2_bzDecompressInit" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_BZ2_bzDecompressInit" fi with_bzip2=yes AC_DEFINE(HAVE_LIBBZ2, 1, "Compiled with bzip2 support")], @@ -147,12 +147,12 @@ AC_ARG_WITH([zlib], AS_IF([test "x$with_zlib" != "xno"], [ - AC_CHECK_LIB(z, deflate, have_zlib=yes, have_zlib=no) + AC_SEARCH_LIBS(deflate, [z zlib zlibd zd], have_zlib=yes, have_zlib=no) ], [have_zlib=no]) AS_IF([test "x$have_zlib" = "xyes"], [ - if test "$ac_cv_lib_z_deflate" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lz" + if test "$ac_cv_search_deflate" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_deflate" fi AC_DEFINE(HAVE_LIBZ, 1, "Compiled with zlib support") with_zlib=yes], @@ -191,12 +191,12 @@ AC_ARG_WITH([lzma], AS_IF([test "x$with_lzma" != "xno"], [ - AC_CHECK_HEADER(lzma.h, have_lzma=yes, have_lzma=no) + AC_SEARCH_LIBS(lzma_free, [lzma], have_lzma=yes, have_lzma=no) ], [have_lzma=no]) AS_IF([test "x$have_lzma" = "xyes"], [ - if test "$ac_cv_lib_lzma_code" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -llzma" + if test "$ac_cv_search_lzma_free" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_lzma_free" fi AC_DEFINE(HAVE_LIBLZMA, 1, "Compiled with lzma support") with_lzma=yes], @@ -257,25 +257,25 @@ AC_ARG_WITH([lz4], AS_IF([test "x$with_lz4" != "xno"], [ - AC_CHECK_LIB(lz4, LZ4F_createDecompressionContext, have_lz4f=yes, have_lz4f=no) + AC_SEARCH_LIBS(LZ4F_createDecompressionContext, [lz4 lz4d], have_lz4f=yes, have_lz4f=no) ], [have_lz4f=no]) AS_IF([test "x$have_lz4f" = "xyes"], [ - if test "$ac_cv_lib_lz4_code" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -llz4" + if test "$ac_cv_search_LZ4F_createDecompressionContext" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_LZ4F_createDecompressionContext" fi AC_DEFINE(HAVE_LIBLZ4F, 1, "Compiled with lz4 frame support") - AC_CHECK_LIB(lz4, LZ4F_getVersion, have_lz4_173=yes, have_lz4_173=no) + AC_SEARCH_LIBS(LZ4F_getVersion, [lz4 lz4d], have_lz4_173=yes, have_lz4_173=no) if test "x$have_lz4_173" = "xyes"; then AC_DEFINE(HAVE_LIBLZ4_MOVABLE, 1, "If defined then liblz4 does NOT have the ERROR_srcPtr_wrong bug") fi with_lz4=frameapi], [ AC_DEFINE(HAVE_LIBLZ4F, 0, "Compiled with lz4 frame support") - AC_CHECK_LIB(lz4, LZ4_decompress_safe_continue, have_lz4s=yes, have_lz4s=no) + AC_SEARCH_LIBS(LZ4_decompress_safe_continue, [lz4 lz4d], have_lz4s=yes, have_lz4s=no) AS_IF([test "x$have_lz4s" = "xyes"], [ - if test "$ac_cv_lib_lz4_code" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -llz4" + if test "$ac_cv_search_LZ4_decompress_safe_continue" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_LZ4_decompress_safe_continue" fi AC_DEFINE(HAVE_LIBLZ4S, 1, "Compiled with lz4 stream support") with_lz4=streamapi ================================================ FILE: ports/libwandio/configure.patch ================================================ diff --git a/configure.ac b/configure.ac index e250c0c31..0465120ba 100644 --- a/configure.ac +++ b/configure.ac @@ -83,7 +83,7 @@ ADD_INCLS="" ADD_LDFLAGS="$ADD_LDFLAGS -L\$(abs_top_srcdir)/lib" LIBWANDIO_LIBS="" -CFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wextra -DLT_BUILDING_DLL=1" +CFLAGS="$CFLAGS -Wall -DLT_BUILDING_DLL=1 -DNOMINMAX" -CXXFLAGS="$CXXFLAGS -Wall -DLT_BUILDING_DLL=1" +CXXFLAGS="$CXXFLAGS -Wall -DLT_BUILDING_DLL=1 -DNOMINMAX" # Check for -fvisibility ================================================ FILE: ports/libwandio/curl.patch ================================================ diff --git a/configure.ac b/configure.ac index 4579fbb3d..f6be008c8 100644 --- a/configure.ac +++ b/configure.ac @@ -296,12 +304,14 @@ AC_ARG_WITH([http], AS_IF([test "x$with_http" != "xno"], [ # we need curl_easy_pause which was added in 7.18.0 - AC_CHECK_LIB(curl, curl_easy_pause, have_curl=yes, have_curl=no) + AC_SEARCH_LIBS(curl_easy_pause, [curl curl-d libcurl libcurl-d], have_curl=yes, have_curl=no, [-lCrypt32 -lWldap32 -lWs2_32 -ladvapi32]) + # AC_CHECK_LIB(curl, curl_easy_pause, have_curl=yes, have_curl=no) ], [have_curl=no]) AS_IF([test "x$have_curl" = "xyes"], [ - if test "$ac_cv_lib_curl_curl_easy_pause" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lcurl" + if test "$ac_cv_search_curl_easy_pause" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lCrypt32 -lWldap32 -lWs2_32 -ladvapi32 $ac_cv_search_curl_easy_pause" + LIBS="$LIBS" fi AC_DEFINE(HAVE_HTTP, 1, "Compiled with http support") with_http=yes], ================================================ FILE: ports/libwandio/openssl.patch ================================================ diff --git a/configure.ac b/configure.ac index 4579fbb3d..f6be008c8 100644 --- a/configure.ac +++ b/configure.ac @@ -296,12 +304,14 @@ AC_ARG_WITH([http], AS_IF([test "x$with_http" != "xno"], [ # we need curl_easy_pause which was added in 7.18.0 - AC_CHECK_LIB(curl, curl_easy_pause, have_curl=yes, have_curl=no) + AC_SEARCH_LIBS(curl_easy_pause, [curl curl-d], have_curl=yes, have_curl=no, [-lssl -lcrypto $ac_cv_search_pthread_create -ldl]) + # AC_CHECK_LIB(curl, curl_easy_pause, have_curl=yes, have_curl=no) ], [have_curl=no]) AS_IF([test "x$have_curl" = "xyes"], [ - if test "$ac_cv_lib_curl_curl_easy_pause" != "none required"; then - LIBWANDIO_LIBS="$LIBWANDIO_LIBS -lcurl" + if test "$ac_cv_search_curl_easy_pause" != "none required"; then + LIBWANDIO_LIBS="$LIBWANDIO_LIBS $ac_cv_search_curl_easy_pause -lssl -lcrypto $ac_cv_search_pthread_create -ldl" + LIBS="$LIBS -lssl -lcrypto $ac_cv_search_pthread_create -ldl" fi AC_DEFINE(HAVE_HTTP, 1, "Compiled with http support") with_http=yes], ================================================ FILE: ports/libwandio/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(PATCHES curl.patch) #TODO: Still does not work. Requires proper "signal" support and "unistd" else() set(PATCHES openssl.patch) # needed if curl is using openssl endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wanduow/wandio REF ${VERSION} SHA512 931bdfe91c8923de52217873d5a12568bcac97b2ab7e4e50f48cd9999d7b3887175885c3f56250b0cd822584bbf4a9262b017ab57ed599ddd288abda1fad9885 HEAD_REF master PATCHES configure.lib.patch # This is how configure.ac files with dependencies get fixed. configure.patch ${PATCHES} ) if (VCPKG_TARGET_IS_ANDROID) list(APPEND OPTIONS ac_cv_func_malloc_0_nonnull=yes) list(APPEND OPTIONS ac_cv_func_realloc_0_nonnull=yes) endif() vcpkg_make_configure( AUTORECONF SOURCE_PATH ${SOURCE_PATH} COPY_SOURCE OPTIONS ${OPTIONS} ) vcpkg_make_install() 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) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/libwandio/vcpkg.json ================================================ { "name": "libwandio", "version": "4.2.6-1", "port-version": 1, "description": "C library for simple and efficient file IO.", "homepage": "https://github.com/wanduow/wandio", "license": "LGPL-3.0-only", "supports": "!windows", "dependencies": [ "bzip2", "curl", "liblzma", "lz4", "lzo", "pthread", { "name": "vcpkg-make", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/libwebm/Fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 19852cd..8d803cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,8 @@ cmake_minimum_required(VERSION 3.16) project(LIBWEBM CXX) +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + include(GNUInstallDirs) include("${CMAKE_CURRENT_SOURCE_DIR}/build/cxx_flags.cmake") diff --git a/build/msvc_runtime.cmake b/build/msvc_runtime.cmake index 7058577..a5a18df 100644 --- a/build/msvc_runtime.cmake +++ b/build/msvc_runtime.cmake @@ -15,7 +15,6 @@ if(MSVC) CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) if(${flag_var} MATCHES "/MD") - string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") endif(${flag_var} MATCHES "/MD") endforeach(flag_var) endif() ================================================ FILE: ports/libwebm/fix-export-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ebb3333..8fd53ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -459,13 +459,19 @@ endif() # webm_parser headers are rooted at webm/. set_target_properties(webm PROPERTIES PUBLIC_HEADER "${webm_parser_public_headers}") +set_target_properties(webm PROPERTIES EXPORT_NAME libwebm) +target_include_directories(webm PUBLIC $) install( - TARGETS webm + TARGETS webm EXPORT unofficial-libwebm-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm) +install(EXPORT unofficial-libwebm-targets + FILE unofficial-libwebm-config.cmake + NAMESPACE unofficial::libwebm:: + DESTINATION share/unofficial-libwebm) # Install common headers into a subdirectory to avoid breaking nested includes. install(FILES ${libwebm_common_public_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm/common) ================================================ FILE: ports/libwebm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webmproject/libwebm REF libwebm-${VERSION} SHA512 9da60f3e7243fb78e0c02e0b6bf8e628552c5b54631960e34bacdf0349ce690984ff9432b8ffa495051858ecc2f4e4a4c1e0b290666058298abf94c3ad99670f HEAD_REF master PATCHES Fix-cmake.patch fix-export-config.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${LIBWEBM_CRT_LINKAGE} -DENABLE_SAMPLE_PROGRAMS=OFF -DENABLE_TESTS=OFF -DENABLE_WEBMTS=OFF -DENABLE_WEBMINFO=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libwebm) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT") ================================================ FILE: ports/libwebm/vcpkg.json ================================================ { "name": "libwebm", "version": "1.0.0.32", "description": "WebM File Parser", "homepage": "https://github.com/webmproject/libwebm", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libwebp/0002-cmake-config.patch ================================================ diff --git a/cmake/WebPConfig.cmake.in b/cmake/WebPConfig.cmake.in index a0d721f..8726c09 100644 --- a/cmake/WebPConfig.cmake.in +++ b/cmake/WebPConfig.cmake.in @@ -13,7 +13,14 @@ include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") set_and_check(WebP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") set(WebP_INCLUDE_DIRS ${WebP_INCLUDE_DIR}) set(WEBP_INCLUDE_DIRS ${WebP_INCLUDE_DIR}) -set(WebP_LIBRARIES "@INSTALLED_LIBRARIES@") +set(WebP_LIBRARIES "") +include(SelectLibraryConfigurations) +foreach(_vcpkg_libwebp_lib IN ITEMS @INSTALLED_LIBRARIES@ sharpyuv) + find_library(_vcpkg_${_vcpkg_libwebp_lib}_LIBRARY_RELEASE NAMES ${_vcpkg_libwebp_lib} lib${_vcpkg_libwebp_lib} NAMES_PER_DIR PATHS "${VCPKG_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) + find_library(_vcpkg_${_vcpkg_libwebp_lib}_LIBRARY_DEBUG NAMES ${_vcpkg_libwebp_lib}d lib${_vcpkg_libwebp_lib}d ${_vcpkg_libwebp_lib} lib${_vcpkg_libwebp_lib} NAMES_PER_DIR PATHS "${VCPKG_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH) + select_library_configurations(_vcpkg_${_vcpkg_libwebp_lib}) + list(APPEND WebP_LIBRARIES ${_vcpkg_${_vcpkg_libwebp_lib}_LIBRARIES}) +endforeach() set(WEBP_LIBRARIES "${WebP_LIBRARIES}") check_required_components(WebP) ================================================ FILE: ports/libwebp/0003-simd.patch ================================================ diff --git a/cmake/cpu.cmake b/cmake/cpu.cmake index 3b0b2d37..a376b87b 100644 --- a/cmake/cpu.cmake +++ b/cmake/cpu.cmake @@ -50,7 +50,7 @@ if(MSVC AND CMAKE_C_COMPILER_ID STREQUAL "MSVC") if(MSVC_VERSION GREATER_EQUAL 1800 AND NOT CMAKE_C_FLAGS MATCHES "/arch:") set(SIMD_ENABLE_FLAGS) else() - set(SIMD_ENABLE_FLAGS "/arch:AVX2;/arch:AVX;/arch:SSE2;;;;") + set(SIMD_ENABLE_FLAGS ";;/arch:SSE2;;;;") # /arch:AVX2;/arch:AVX is too much for SSE4 endif() set(SIMD_DISABLE_FLAGS) else() @@ -111,6 +111,9 @@ foreach(I_SIMD RANGE ${WEBP_SIMD_FLAGS_RANGE}) "${CMAKE_CURRENT_LIST_DIR}/../src/dsp/*${WEBP_SIMD_FILE_EXTENSION}") if(WEBP_HAVE_${WEBP_SIMD_FLAG}) # Memorize the file and flags. + if("${SIMD_COMPILE_FLAG}" STREQUAL "") + set(SIMD_COMPILE_FLAG " ") + endif() foreach(FILE ${SIMD_FILES}) list(APPEND WEBP_SIMD_FILES_TO_INCLUDE ${FILE}) list(APPEND WEBP_SIMD_FLAGS_TO_INCLUDE ${SIMD_COMPILE_FLAG}) ================================================ FILE: ports/libwebp/0008-sdl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b785a8e..f214a32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -665,6 +665,10 @@ if(WEBP_BUILD_EXTRAS) ${CMAKE_CURRENT_BINARY_DIR}/src ${SDL2_INCLUDE_DIRS}) set(WEBP_HAVE_SDL 1) target_compile_definitions(vwebp_sdl PUBLIC WEBP_HAVE_SDL) + target_compile_definitions(vwebp_sdl PRIVATE WEBP_HAVE_JUST_SDL_H) + if(WIN32) + target_link_libraries(vwebp_sdl dxguid winmm) + endif() set(CMAKE_REQUIRED_INCLUDES "${SDL2_INCLUDE_DIRS}") check_c_source_compiles( @@ -699,8 +703,9 @@ if(WEBP_BUILD_WEBP_JS) if(NOT WEBP_ENABLE_SIMD) # JavaScript version add_executable(webp_js ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) - target_link_libraries(webp_js webpdecoder SDL2) + target_link_libraries(webp_js webpdecoder ${SDL_LIBRARY}) target_include_directories(webp_js PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + target_include_directories(webp_js PRIVATE ${SDL_INCLUDE_DIR}) set(WEBP_HAVE_SDL 1) set_target_properties( webp_js @@ -715,12 +720,15 @@ if(WEBP_BUILD_WEBP_JS) -sALLOW_MEMORY_GROWTH") set_target_properties(webp_js PROPERTIES OUTPUT_NAME webp) target_compile_definitions(webp_js PUBLIC EMSCRIPTEN WEBP_HAVE_SDL) + target_compile_definitions(webp_js PUBLIC EMSCRIPTEN WEBP_HAVE_JUST_SDL_H) endif() # WASM version add_executable(webp_wasm ${CMAKE_CURRENT_SOURCE_DIR}/extras/webp_to_sdl.c) - target_link_libraries(webp_wasm webpdecoder SDL2) + target_link_libraries(webp_wasm webpdecoder ${SDL_LIBRARY}) target_include_directories(webp_wasm PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + target_include_directories(webp_wasm PRIVATE ${SDL_INCLUDE_DIR}) + target_compile_definitions(webp_wasm PUBLIC EMSCRIPTEN WEBP_HAVE_JUST_SDL_H) set_target_properties( webp_wasm PROPERTIES ================================================ FILE: ports/libwebp/0009-cpufeatures-android.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 39d3d8f6..6169be39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,24 +185,8 @@ if(WEBP_ENABLE_WUNUSED_RESULT) endif() # ############################################################################## -# Android only. -if(ANDROID) - include_directories(${ANDROID_NDK}/sources/android/cpufeatures) - add_library(cpufeatures-webp STATIC - ${ANDROID_NDK}/sources/android/cpufeatures/cpu-features.c) - list(APPEND INSTALLED_LIBRARIES cpufeatures-webp) - target_link_libraries(cpufeatures-webp dl) - set(SHARPYUV_DEP_LIBRARIES ${SHARPYUV_DEP_LIBRARIES} cpufeatures-webp) - set(WEBP_DEP_LIBRARIES ${WEBP_DEP_LIBRARIES} cpufeatures-webp) - set(cpufeatures_include_dir ${ANDROID_NDK}/sources/android/cpufeatures) - set(SHARPYUV_DEP_INCLUDE_DIRS ${SHARPYUV_DEP_INCLUDE_DIRS} - ${cpufeatures_include_dir}) - set(WEBP_DEP_INCLUDE_DIRS ${WEBP_DEP_INCLUDE_DIRS} ${cpufeatures_include_dir}) - add_definitions(-DHAVE_CPU_FEATURES_H=1) - set(HAVE_CPU_FEATURES_H 1) -else() - set(HAVE_CPU_FEATURES_H 0) -endif() +# To streamline dependency management, remove usage of the NDK-bundled cpufeatures. +set(HAVE_CPU_FEATURES_H 0) function(configure_pkg_config FILE) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${FILE}.in" ================================================ FILE: ports/libwebp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webmproject/libwebp REF "v${VERSION}" SHA512 298e0ad4c09392213baf5abb69d330c6203b618800073fe2df91d01d35034197c5d3e29a74573b06971473c52c74514f0e6e0f6c8162f923e2dd15cb1a692aef HEAD_REF master PATCHES 0002-cmake-config.patch 0003-simd.patch 0008-sdl.patch 0009-cpufeatures-android.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES anim WEBP_BUILD_ANIM_UTILS cwebp WEBP_BUILD_CWEBP dwebp WEBP_BUILD_DWEBP extras WEBP_BUILD_EXTRAS gif2webp WEBP_BUILD_GIF2WEBP img2webp WEBP_BUILD_IMG2WEBP info WEBP_BUILD_WEBPINFO libwebpmux WEBP_BUILD_LIBWEBPMUX mux WEBP_BUILD_WEBPMUX nearlossless WEBP_NEAR_LOSSLESS simd WEBP_ENABLE_SIMD swap16bitcsp WEBP_ENABLE_SWAP_16BIT_CSP unicode WEBP_UNICODE vwebp WEBP_BUILD_VWEBP vwebp-sdl CMAKE_REQUIRE_FIND_PACKAGE_SDL INVERTED_FEATURES vwebp-sdl CMAKE_DISABLE_FIND_PACKAGE_SDL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_EXTRAS=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF -DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_SDL CMAKE_REQUIRE_FIND_PACKAGE_SDL ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME WebP CONFIG_PATH share/WebP/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_list(SET BIN_NAMES) foreach(tool IN ITEMS get_disto gif2webp img2webp vwebp vwebp_sdl webpinfo webpmux webp_quality cwebp dwebp) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_list(APPEND BIN_NAMES "${tool}") endif() endforeach() if(NOT BIN_NAMES STREQUAL "") vcpkg_copy_tools(TOOL_NAMES ${BIN_NAMES} AUTO_CLEAN) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/COPYING ${SOURCE_PATH}/PATENTS) ================================================ FILE: ports/libwebp/usage ================================================ libwebp provides CMake targets: find_package(WebP CONFIG REQUIRED) # basic usage target_link_libraries(main PRIVATE WebP::webp WebP::webpdecoder WebP::webpdemux) # for manipulating the WebP graphics format container (port feature libwebpmux) target_link_libraries(main PRIVATE WebP::libwebpmux) # for sharp RGB to YUV conversion target_link_libraries(main PRIVATE WebP::sharpyuv) ================================================ FILE: ports/libwebp/vcpkg.json ================================================ { "name": "libwebp", "version": "1.6.0", "port-version": 2, "description": "WebP codec: library to encode and decode images in WebP format", "homepage": "https://github.com/webmproject/libwebp", "license": "BSD-3-Clause", "dependencies": [ { "name": "libwebp", "default-features": false, "features": [ "unicode" ], "platform": "windows" }, { "name": "libwebp", "default-features": false, "features": [ "simd" ], "platform": "osx & x64" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "libwebpmux", "nearlossless", { "name": "simd", "platform": "!emscripten" } ], "features": { "all": { "description": "enable all features except for swap16bitcsp", "dependencies": [ { "name": "libwebp", "features": [ "anim", "cwebp", "dwebp", "extras", "gif2webp", "img2webp", "info", "libwebpmux", "mux", "nearlossless", "simd" ] }, { "name": "libwebp", "features": [ "vwebp" ], "platform": "!osx & !static" }, { "name": "libwebp", "features": [ "vwebp-sdl" ], "platform": "!android & !osx & !uwp & !(windows & static)" } ] }, "anim": { "description": "Build animation utilities.", "dependencies": [ "giflib", "libjpeg-turbo", "libpng", { "name": "libwebp", "default-features": false, "features": [ "img2webp", "mux" ] }, { "name": "tiff", "default-features": false } ] }, "cwebp": { "description": "Build the cwebp command line tool.", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "tiff", "default-features": false } ] }, "dwebp": { "description": "Build the dwebp command line tool.", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "tiff", "default-features": false } ] }, "extras": { "description": "Build extras. (Doesn't include vwebp-sdl.)", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "tiff", "default-features": false } ] }, "gif2webp": { "description": "Build the gif2webp conversion tool.", "dependencies": [ "giflib", { "name": "libwebp", "default-features": false, "features": [ "libwebpmux" ] } ] }, "img2webp": { "description": "Build the img2webp animation tool.", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "libwebp", "default-features": false, "features": [ "libwebpmux" ] }, { "name": "tiff", "default-features": false } ] }, "info": { "description": "Build the webpinfo command line tool." }, "libwebpmux": { "description": "Build the libwebpmux library" }, "mux": { "description": "Build the webpmux command line tool.", "dependencies": [ { "name": "libwebp", "default-features": false, "features": [ "libwebpmux" ] } ] }, "nearlossless": { "description": "Enable near-lossless encoding" }, "simd": { "description": "Enable any SIMD optimization." }, "swap16bitcsp": { "description": "Enable byte swap for 16 bit colorspaces." }, "unicode": { "description": "Build Unicode executables. (Adds definition UNICODE and _UNICODE)" }, "vwebp": { "description": "Build the vwebp viewer tool.", "supports": "!osx & !(windows & static)", "dependencies": [ "freeglut", "opengl" ] }, "vwebp-sdl": { "description": "Build the vwebp viewer tool for SDL.", "dependencies": [ { "name": "libwebp", "default-features": false, "features": [ "extras", "vwebp" ] }, "sdl1" ] } } } ================================================ FILE: ports/libwebsockets/export-include-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e067e99..35dbddd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1230,8 +1230,8 @@ file(RELATIVE_PATH "${LWS_ABSOLUTE_INSTALL_CMAKE_DIR}" "${LWS_ABSOLUTE_INSTALL_INCLUDE_DIR}") # Calculate the relative directory from the cmake dir. -if (DEFINED REL_INCLUDE_DIR) - set(LWS__INCLUDE_DIRS "\${LWS_CMAKE_DIR}/${REL_INCLUDE_DIR}") +if (1) + set(LWS__INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../include") endif() if (DEFINED OPENSSL_INCLUDE_DIRS) set(LWS__INCLUDE_DIRS "${LWS__INCLUDE_DIRS};${OPENSSL_INCLUDE_DIRS}") ================================================ FILE: ports/libwebsockets/fix-build-error.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision b0a749c8e7a8294b68581ce4feac0e55045eb00b) +++ b/CMakeLists.txt (date 1669850509296) @@ -494,6 +494,11 @@ set(LWS_EXT_PTHREAD_INCLUDE_DIR CACHE PATH "Path to an external pthreads include directory") set(LWS_EXT_PTHREAD_LIBRARIES CACHE PATH "Path to an external pthreads library") +if(WIN32) + find_package(pthreads_windows REQUIRED) + set(LWS_EXT_PTHREAD_INCLUDE_DIR ${PThreads4W_INCLUDE_DIR}) + set(LWS_EXT_PTHREAD_LIBRARIES ${PThreads4W_LIBRARY}) +endif() if (LWS_WITH_HTTP_STREAM_COMPRESSION) set(LWS_WITH_ZLIB 1) @@ -850,7 +855,7 @@ # Turn off pointless microsoft security warnings. add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) # Fail the build if any warnings - add_compile_options(/W3 /WX) + add_compile_options(/W3 /WX /wd4142 /wd4267 /wd4996) # Unbreak MSVC broken preprocessor __VA_ARGS__ behaviour if (MSVC_VERSION GREATER 1925) add_compile_options(/Zc:preprocessor /wd5105) ================================================ FILE: ports/libwebsockets/fix-dependency-libuv.patch ================================================ diff --git a/lib/event-libs/libuv/CMakeLists.txt b/lib/event-libs/libuv/CMakeLists.txt index fb810a8..2258ade 100644 --- a/lib/event-libs/libuv/CMakeLists.txt +++ b/lib/event-libs/libuv/CMakeLists.txt @@ -36,7 +36,7 @@ set(LWS_LIBUV_INCLUDE_DIRS CACHE PATH "Path to the libuv include directory") if ("${LWS_LIBUV_LIBRARIES}" STREQUAL "" OR "${LWS_LIBUV_INCLUDE_DIRS}" STREQUAL "") if (NOT LIBUV_FOUND) find_path(LIBUV_INCLUDE_DIRS NAMES uv.h) - find_library(LIBUV_LIBRARIES NAMES uv) + find_library(LIBUV_LIBRARIES NAMES uv libuv) endif() else() set(LIBUV_LIBRARIES ${LWS_LIBUV_LIBRARIES}) ================================================ FILE: ports/libwebsockets/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO warmcat/libwebsockets REF "v${VERSION}" SHA512 bfb9bfd67cbf7aa146bd9905634aecadb3467f9ba67f8dd284e660a054a5d8d5b0ae4d6a62a86c7b750662abf4a02029ea812185afee7a5868421fb61923bca0 HEAD_REF master PATCHES fix-dependency-libuv.patch fix-build-error.patch export-include-path.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LWS_WITH_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LWS_WITH_SHARED) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) ## All LWS options could be possible features: # # # # Major individual features # # # option(LWS_WITH_NETWORK "Compile with network-related code" ON) # option(LWS_ROLE_H1 "Compile with support for http/1 (needed for ws)" ON) # option(LWS_ROLE_WS "Compile with support for websockets" ON) # option(LWS_ROLE_DBUS "Compile with support for DBUS" OFF) # option(LWS_ROLE_RAW_PROXY "Raw packet proxy" OFF) # option(LWS_WITH_HTTP2 "Compile with server support for HTTP/2" ON) # option(LWS_WITH_LWSWS "Libwebsockets Webserver" OFF) # option(LWS_WITH_CGI "Include CGI (spawn process with network-connected stdin/out/err) APIs" OFF) # option(LWS_IPV6 "Compile with support for ipv6" OFF) # option(LWS_UNIX_SOCK "Compile with support for UNIX domain socket" OFF) # option(LWS_WITH_PLUGINS "Support plugins for protocols and extensions" OFF) # option(LWS_WITH_HTTP_PROXY "Support for HTTP proxying" OFF) # option(LWS_WITH_ZIP_FOPS "Support serving pre-zipped files" OFF) # option(LWS_WITH_SOCKS5 "Allow use of SOCKS5 proxy on client connections" OFF) # option(LWS_WITH_GENERIC_SESSIONS "With the Generic Sessions plugin" OFF) # option(LWS_WITH_PEER_LIMITS "Track peers and restrict resources a single peer can allocate" OFF) # option(LWS_WITH_ACCESS_LOG "Support generating Apache-compatible access logs" OFF) # option(LWS_WITH_RANGES "Support http ranges (RFC7233)" OFF) # option(LWS_WITH_SERVER_STATUS "Support json + jscript server monitoring" OFF) # option(LWS_WITH_THREADPOOL "Managed worker thread pool support (relies on pthreads)" OFF) # option(LWS_WITH_HTTP_STREAM_COMPRESSION "Support HTTP stream compression" OFF) # option(LWS_WITH_HTTP_BROTLI "Also offer brotli http stream compression (requires LWS_WITH_HTTP_STREAM_COMPRESSION)" OFF) # option(LWS_WITH_ACME "Enable support for ACME automatic cert acquisition + maintenance (letsencrypt etc)" OFF) # option(LWS_WITH_HUBBUB "Enable libhubbub rewriting support" OFF) # option(LWS_WITH_FTS "Full Text Search support" OFF) # # # # TLS library options... all except mbedTLS are basically OpenSSL variants. # # # option(LWS_WITH_SSL "Include SSL support (defaults to OpenSSL or similar, mbedTLS if LWS_WITH_MBEDTLS is set)" ON) # option(LWS_WITH_MBEDTLS "Use mbedTLS (>=2.0) replacement for OpenSSL. When setting this, you also may need to specify LWS_MBEDTLS_LIBRARIES and LWS_MBEDTLS_INCLUDE_DIRS" OFF) # option(LWS_WITH_BORINGSSL "Use BoringSSL replacement for OpenSSL" OFF) # option(LWS_WITH_CYASSL "Use CyaSSL replacement for OpenSSL. When setting this, you also need to specify LWS_CYASSL_LIBRARIES and LWS_CYASSL_INCLUDE_DIRS" OFF) # option(LWS_WITH_WOLFSSL "Use wolfSSL replacement for OpenSSL. When setting this, you also need to specify LWS_WOLFSSL_LIBRARIES and LWS_WOLFSSL_INCLUDE_DIRS" OFF) # option(LWS_SSL_CLIENT_USE_OS_CA_CERTS "SSL support should make use of the OS-installed CA root certs" ON) # # # # Event library options (may select multiple, or none for default poll() # # # option(LWS_WITH_LIBEV "Compile with support for libev" OFF) # option(LWS_WITH_LIBUV "Compile with support for libuv" OFF) # option(LWS_WITH_LIBEVENT "Compile with support for libevent" OFF) # # # # Static / Dynamic build options # # # option(LWS_WITH_STATIC "Build the static version of the library" ON) # option(LWS_WITH_SHARED "Build the shared version of the library" ON) # option(LWS_LINK_TESTAPPS_DYNAMIC "Link the test apps to the shared version of the library. Default is to link statically" OFF) # option(LWS_STATIC_PIC "Build the static version of the library with position-independent code" OFF) # # # # Specific platforms # # # option(LWS_WITH_ESP32 "Build for ESP32" OFF) # option(LWS_WITH_ESP32_HELPER "Build ESP32 helper" OFF) # option(LWS_PLAT_OPTEE "Build for OPTEE" OFF) # # # # Client / Server / Test Apps build control # # # option(LWS_WITHOUT_CLIENT "Don't build the client part of the library" OFF) # option(LWS_WITHOUT_SERVER "Don't build the server part of the library" OFF) # option(LWS_WITHOUT_TESTAPPS "Don't build the libwebsocket-test-apps" OFF) # option(LWS_WITHOUT_TEST_SERVER "Don't build the test server" OFF) # option(LWS_WITHOUT_TEST_SERVER_EXTPOLL "Don't build the test server version that uses external poll" OFF) # option(LWS_WITHOUT_TEST_PING "Don't build the ping test application" OFF) # option(LWS_WITHOUT_TEST_CLIENT "Don't build the client test application" OFF) # # # # Extensions (permessage-deflate) # # # option(LWS_WITHOUT_EXTENSIONS "Don't compile with extensions" ON) # # # # Helpers + misc # # # option(LWS_WITHOUT_BUILTIN_GETIFADDRS "Don't use the BSD getifaddrs implementation from libwebsockets if it is missing (this will result in a compilation error) ... The default is to assume that your libc provides it. On some systems such as uclibc it doesn't exist." OFF) # option(LWS_FALLBACK_GETHOSTBYNAME "Also try to do dns resolution using gethostbyname if getaddrinfo fails" OFF) # option(LWS_WITHOUT_BUILTIN_SHA1 "Don't build the lws sha-1 (eg, because openssl will provide it" OFF) # option(LWS_WITH_LATENCY "Build latency measuring code into the library" OFF) # option(LWS_WITHOUT_DAEMONIZE "Don't build the daemonization api" ON) # option(LWS_SSL_SERVER_WITH_ECDH_CERT "Include SSL server use ECDH certificate" OFF) # option(LWS_WITH_LEJP "With the Lightweight JSON Parser" ON) # option(LWS_WITH_SQLITE3 "Require SQLITE3 support" OFF) # option(LWS_WITH_STRUCT_JSON "Generic struct serialization to and from JSON" ON) # option(LWS_WITH_STRUCT_SQLITE3 "Generic struct serialization to and from SQLITE3" OFF) # option(LWS_WITH_SMTP "Provide SMTP support" OFF) # if (WIN32 OR LWS_WITH_ESP32) # option(LWS_WITH_DIR "Directory scanning api support" OFF) # option(LWS_WITH_LEJP_CONF "With LEJP configuration parser as used by lwsws" OFF) # else() # option(LWS_WITH_DIR "Directory scanning api support" ON) # option(LWS_WITH_LEJP_CONF "With LEJP configuration parser as used by lwsws" ON) # endif() # option(LWS_WITH_NO_LOGS "Disable all logging from being compiled in" OFF) # option(LWS_AVOID_SIGPIPE_IGN "Android 7+ reportedly needs this" OFF) # option(LWS_WITH_STATS "Keep statistics of lws internal operations" OFF) # option(LWS_WITH_JOSE "JSON Web Signature / Encryption / Keys (RFC7515/6/) API" OFF) # option(LWS_WITH_GENCRYPTO "Enable support for Generic Crypto apis independent of TLS backend" OFF) # option(LWS_WITH_SELFTESTS "Selftests run at context creation" OFF) # option(LWS_WITH_GCOV "Build with gcc gcov coverage instrumentation" OFF) # option(LWS_WITH_EXPORT_LWSTARGETS "Export libwebsockets CMake targets. Disable if they conflict with an outer cmake project." ON) # option(LWS_REPRODUCIBLE "Build libwebsockets reproducible. It removes the build user and hostname from the build" ON) # option(LWS_WITH_MINIMAL_EXAMPLES "Also build the normally standalone minimal examples, for QA" OFF) # option(LWS_WITH_LWSAC "lwsac Chunk Allocation api" ON) # option(LWS_WITH_CUSTOM_HEADERS "Store and allow querying custom HTTP headers (H1 only)" ON) # option(LWS_WITH_DISKCACHE "Hashed cache directory with lazy LRU deletion to size limit" OFF) # option(LWS_WITH_ASAN "Build with gcc runtime sanitizer options enabled (needs libasan)" OFF) # option(LWS_WITH_DIR "Directory scanning api support" OFF) # option(LWS_WITH_LEJP_CONF "With LEJP configuration parser as used by lwsws" OFF) # option(LWS_WITH_ZLIB "Include zlib support (required for extensions)" OFF) # option(LWS_WITH_BUNDLED_ZLIB "Use bundled zlib version (Windows only)" ${LWS_WITH_BUNDLED_ZLIB_DEFAULT}) # option(LWS_WITH_MINIZ "Use miniz instead of zlib" OFF) # option(LWS_WITH_DEPRECATED_LWS_DLL "Migrate to lws_dll2 instead ASAP" OFF) # option(LWS_WITH_SEQUENCER "lws_seq_t support" ON) # option(LWS_WITH_EXTERNAL_POLL "Support external POLL integration using callback messages (not recommended)" OFF) # option(LWS_WITH_LWS_DSH "Support lws_dsh_t Disordered Shared Heap" OFF) ## set(EXTRA_ARGS) if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") set(EXTRA_ARGS "-DLWS_WITH_LIBUV=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${EXTRA_ARGS} -DLWS_WITH_STATIC=${LWS_WITH_STATIC} -DLWS_WITH_SHARED=${LWS_WITH_SHARED} -DLWS_MSVC_STATIC_RUNTIME=${STATIC_CRT} -DLWS_WITH_GENCRYPTO=ON -DLWS_WITH_TLS=ON -DLWS_WITH_BUNDLED_ZLIB=OFF -DLWS_WITHOUT_TESTAPPS=ON -DLWS_IPV6=ON -DLWS_WITH_HTTP2=ON -DLWS_WITH_HTTP_STREAM_COMPRESSION=ON # Since zlib is already a dependency -DLWS_WITH_EXTERNAL_POLL=ON # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libwebsockets) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/libwebsockets-test-server") file(READ "${CURRENT_PACKAGES_DIR}/share/libwebsockets/libwebsockets-config.cmake" LIBWEBSOCKETSCONFIG_CMAKE) string(REPLACE "/../include" "/../../include" LIBWEBSOCKETSCONFIG_CMAKE "${LIBWEBSOCKETSCONFIG_CMAKE}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/libwebsockets/libwebsockets-config.cmake" "${LIBWEBSOCKETSCONFIG_CMAKE}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-debug.cmake" "websockets_static.lib" "websockets.lib" IGNORE_UNCHANGED) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/libwebsockets/LibwebsocketsTargets-release.cmake" "websockets_static.lib" "websockets.lib" IGNORE_UNCHANGED) endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL static) if (VCPKG_TARGET_IS_WINDOWS) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/websockets_static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/websockets.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/websockets_static.lib" "${CURRENT_PACKAGES_DIR}/lib/websockets.lib") endif() endif () vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lws_config.h" "${CURRENT_PACKAGES_DIR}" "") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/libwebsockets/vcpkg.json ================================================ { "name": "libwebsockets", "version-semver": "4.5.7", "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.", "homepage": "https://libwebsockets.org/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "libuv", "platform": "!emscripten" }, "openssl", "pthreads", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/libx11/add_dl_pc.patch ================================================ diff --git a/configure.ac b/configure.ac index 92b740b88..083e37ee5 100644 --- a/configure.ac +++ b/configure.ac @@ -106,8 +106,12 @@ if test "x$ac_cv_search_dlopen" = xno; then AC_DEFINE(HAVE_SHL_LOAD,1, [Use shl_load to load shared libraries]) AC_CHECK_HEADERS([dl.h]) + XLDLIB="$ac_cv_search_shl_load" fi else + if test "x$ac_cv_search_dlopen" != 'xnone required'; then + XLDLIB="$ac_cv_search_dlopen" + fi AC_DEFINE(HAVE_DLOPEN,1,[Use dlopen to load shared libraries]) AC_CHECK_HEADERS([dlfcn.h]) fi @@ -116,6 +120,7 @@ if test "x$ac_cv_header_dlfcn_h" = xyes -o "x$ac_cv_header_dl_h" = xyes; then else HAVE_LOADABLE_MODULES=no fi +AC_SUBST(XLDLIB) AC_MSG_RESULT($HAVE_LOADABLE_MODULES) AC_MSG_CHECKING([if loadable i18n module support should be enabled]) diff --git a/x11.pc.in b/x11.pc.in index 25c7e7cd0..4ecf23e8d 100644 --- a/x11.pc.in +++ b/x11.pc.in @@ -11,5 +11,5 @@ Version: @PACKAGE_VERSION@ Requires: xproto @XKBPROTO_REQUIRES@ Requires.private: @X11_EXTRA_DEPS@ Cflags: -I${includedir} @XTHREAD_CFLAGS@ -Libs: -L${libdir} -lX11 +Libs: -L${libdir} -lX11 @XLDLIB@ Libs.private: @XTHREADLIB@ ================================================ FILE: ports/libx11/cl.build.patch ================================================ diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 844571688..e46c4ec5d 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -1351,11 +1351,14 @@ extern int _XOpenFile( int /* flags */ ); +#if defined(_MSC_VER) && !defined(mode_t) +typedef int mode_t; +#endif extern int _XOpenFileMode( _Xconst char* /* path */, int /* flags */, mode_t /* mode */ ); extern void* _XFopenFile( _Xconst char* /* path */, diff --git a/modules/im/ximcp/imLcLkup.c b/modules/im/ximcp/imLcLkup.c index 56dba9673..d10de825e 100644 --- a/modules/im/ximcp/imLcLkup.c +++ b/modules/im/ximcp/imLcLkup.c @@ -61,27 +61,37 @@ _XimLocalMbLookupString(XIC xic, XKeyEvent *ev, char *buffer, int bytes, ||(ic->private.local.brl_committed != 0))) { if (ic->private.local.brl_committed != 0) { /* Braille Event */ unsigned char pattern = ic->private.local.brl_committed; +#ifndef _MSC_VER char mb2[XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)]; +#else + char *mb2 = (char*)malloc(XLC_PUBLIC(ic->core.im->core.lcd, mb_cur_max)*sizeof(char)); +#endif ret = _Xlcwctomb(ic->core.im->core.lcd, mb2, BRL_UC_ROW | pattern); if(ret > bytes) { if(status) *status = XBufferOverflow; +#ifdef _MSC_VER + free(mb2); +#endif return(ret); } if(keysym) *keysym = XK_braille_blank | pattern; if(ret > 0) { if (keysym) { if(status) *status = XLookupBoth; } else { if(status) *status = XLookupChars; } memcpy(buffer, mb2, ret); } else { if(keysym) { if(status) *status = XLookupKeySym; } else { if(status) *status = XLookupNone; } } +#ifdef _MSC_VER + free(mb2); +#endif } else { /* Composed Event */ ret = strlen(&mb[b[ic->private.local.composed].mb]); if(ret > bytes) { diff --git a/src/XlibInt.c b/src/XlibInt.c index e4fb4e5f2..4cfa1aeab 100644 --- a/src/XlibInt.c +++ b/src/XlibInt.c @@ -60,6 +60,8 @@ from The Open Group. /* Needed for ioctl() on Solaris */ #ifdef HAVE_UNISTD_H #include +#else + #define F_OK 0 #endif #ifdef XTHREADS @@ -985,7 +987,7 @@ _XWireToEvent( case KeymapNotify: { register XKeymapEvent *ev = (XKeymapEvent *) re; - ev->window = None; + ev->window = 0; memcpy(&ev->key_vector[1], (char *)((xKeymapEvent *) event)->map, sizeof (((xKeymapEvent *) event)->map)); @@ -1919,7 +1925,11 @@ int _XOpenFileMode(path, flags, mode) UINT olderror = SetErrorMode (SEM_FAILCRITICALERRORS); if (AccessFile (path, buf, MAX_PATH, &bufp)) +#ifndef _MSC_VER ret = open (bufp, flags, mode); +#else + ret = _open (bufp, flags, mode); +#endif (void) SetErrorMode (olderror); diff --git a/src/xlibi18n/XDefaultOMIF.c b/src/xlibi18n/XDefaultOMIF.c index 9345547c3..77d914fe1 100644 --- a/src/xlibi18n/XDefaultOMIF.c +++ b/src/xlibi18n/XDefaultOMIF.c @@ -70,6 +70,14 @@ Sun Microsystems, Inc. or its licensors is granted. #include #include +#if !defined(ssize_t) + #ifdef _WIN64 + #define ssize_t long long + #else + #define ssize_t long + #endif +#endif + #define MAXFONTS 100 #define XOM_GENERIC(om) (&((XOMGeneric) om)->gen) diff --git a/src/xlibi18n/lcDB.c b/src/xlibi18n/lcDB.c index e04a5d89f..fa46f8ecc 100644 --- a/src/xlibi18n/lcDB.c +++ b/src/xlibi18n/lcDB.c @@ -65,6 +65,14 @@ #include +#if !defined(ssize_t) + #ifdef _WIN64 + #define ssize_t long long + #else + #define ssize_t long + #endif +#endif + typedef struct _DatabaseRec { char *category; char *name; diff --git a/src/xlibi18n/lcFile.c b/src/xlibi18n/lcFile.c index e43ac2c0e..d9f49b725 100644 --- a/src/xlibi18n/lcFile.c +++ b/src/xlibi18n/lcFile.c @@ -32,7 +32,9 @@ #include "Xlibint.h" #include "XlcPubI.h" #include +#ifdef HAVE_UNISTD_H #include +#endif /************************************************************************/ ================================================ FILE: ports/libx11/dllimport.patch ================================================ diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index 603d05669..8596cb434 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -389,23 +389,26 @@ struct _XLockPtrs { #define _XLockMutex_fn (*_XLockMutex_fn_p) #define _XUnlockMutex_fn (*_XUnlockMutex_fn_p) #define _Xglobal_lock (*_Xglobal_lock_p) +#define X_LOCK_EXTERN __declspec(dllimport) extern +#else +#define X_LOCK_EXTERN extern #endif /* in XlibInt.c */ -extern void (*_XCreateMutex_fn)( +X_LOCK_EXTERN void (*_XCreateMutex_fn)( LockInfoPtr /* lock */ ); -extern void (*_XFreeMutex_fn)( +X_LOCK_EXTERN void (*_XFreeMutex_fn)( LockInfoPtr /* lock */ ); -extern void (*_XLockMutex_fn)( +X_LOCK_EXTERN void (*_XLockMutex_fn)( LockInfoPtr /* lock */ #if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE) , char * /* file */ , int /* line */ #endif ); -extern void (*_XUnlockMutex_fn)( +X_LOCK_EXTERN void (*_XUnlockMutex_fn)( LockInfoPtr /* lock */ #if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE) , char * /* file */ @@ -413,7 +416,7 @@ extern void (*_XUnlockMutex_fn)( #endif ); -extern LockInfoPtr _Xglobal_lock; +X_LOCK_EXTERN LockInfoPtr _Xglobal_lock; #if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE) #define LockDisplay(d) if ((d)->lock_fns) (*(d)->lock_fns->lock_display)((d),__FILE__,__LINE__) ================================================ FILE: ports/libx11/io_include.patch ================================================ diff --git a/src/XlibInt.c b/src/XlibInt.c index bab39bc00..31b6511cb 100644 --- a/src/XlibInt.c +++ b/src/XlibInt.c @@ -45,6 +45,7 @@ from The Open Group. #include #ifdef WIN32 #include +#include #endif /* Needed for FIONREAD on Solaris */ ================================================ FILE: ports/libx11/optimize-configure.patch ================================================ diff --git a/Makefile.am b/Makefile.am index b14f9d78..2df82fe3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,7 +4,7 @@ else ORDER=modules src endif # Order: nls before specs -SUBDIRS=include $(ORDER) nls man specs +SUBDIRS=include $(ORDER) nls ACLOCAL_AMFLAGS = -I m4 ================================================ FILE: ports/libx11/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(PATCHES dllimport.patch) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libx11 REF 3a30ada60c5217ada37b143b541c8e6f6284c7fa SHA512 441f86ff8293d27459feaa93f85bcd4d02c6bd64fdb4d95199e5ee8a75340c2ce9b0fccd0b05840ce0de30ff3af3d21e6f37c81840e82b37dbddf082911b585d HEAD_REF master PATCHES optimize-configure.patch cl.build.patch io_include.patch ${PATCHES} vcxserver.patch add_dl_pc.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{CPP} "cl_cpp_wrapper") list(APPEND OPTIONS --enable-loadable-i18n=no #Pointer conversion errors --enable-unix-transport=no --disable-thread-safety-constructor ac_cv_search_dlopen=no ) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS --enable-malloc0returnsnull=yes #Configure fails to run the test for some reason --enable-ipv6 --enable-hyperv --enable-tcp-transport --with-launchd=no --with-lint=no --disable-selective-werror ) endif() if(VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull=yes ) endif() if(NOT XLSTPROC) find_program(XLSTPROC NAMES "xsltproc${VCPKG_HOST_EXECUTABLE_SUFFIX}" PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/libxslt" PATH_SUFFIXES "bin") endif() if(NOT XLSTPROC) message(FATAL_ERROR "${PORT} requires xlstproc for the host system. Please install libxslt within vcpkg or your system package manager!") endif() get_filename_component(XLSTPROC_DIR "${XLSTPROC}" DIRECTORY) file(TO_NATIVE_PATH "${XLSTPROC_DIR}" XLSTPROC_DIR_NATIVE) vcpkg_add_to_path("${XLSTPROC_DIR}") set(ENV{XLSTPROC} "${XLSTPROC}") if(VCPKG_TARGET_IS_OSX) set(ENV{LC_ALL} C) endif() vcpkg_find_acquire_program(PERL) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) if(VCPKG_CROSSCOMPILING) file(GLOB FOR_BUILD_FILES "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/*") file(COPY ${FOR_BUILD_FILES} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/util") if(NOT VCPKG_BUILD_TYPE) file(COPY ${FOR_BUILD_FILES} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/util") endif() endif() vcpkg_make_install() vcpkg_fixup_pkgconfig() if(EXISTS "${CURRENT_INSTALLED_DIR}/include/X11/extensions/XKBgeom.h") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/X11/extensions/") #XKBgeom.h should be the only file in there endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) if(NOT VCPKG_CROSSCOMPILING) file(READ "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log" config_contents) string(REGEX MATCH "ac_cv_objext=[^\n]+" objsuffix "${config_contents}") string(REPLACE "ac_cv_objext=" "." objsuffix "${objsuffix}") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/util/makekeys${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/util/makekeys${objsuffix}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/x11/vcpkg-cmake-wrapper.cmake" @ONLY) ================================================ FILE: ports/libx11/vcpkg-cmake-wrapper.cmake ================================================ set(Z_VCPKG_FIRST_X11_SEARCH OFF) if(NOT X11_FOUND) set(Z_VCPKG_FIRST_X11_SEARCH ON) endif() _find_package(${ARGS}) if(TARGET X11::X11 AND Z_VCPKG_FIRST_X11_SEARCH) target_link_libraries(X11::X11 INTERFACE ${CMAKE_DL_LIBS}) if(TARGET X11::xcb) target_link_libraries(X11::X11 INTERFACE X11::xcb) endif() endif() if(TARGET X11::xcb AND Z_VCPKG_FIRST_X11_SEARCH) if(TARGET X11::Xdmcp) set_property(TARGET X11::xcb APPEND PROPERTY INTERFACE_LINK_LIBRARIES X11::Xdmcp) endif() if(TARGET X11::Xau) set_property(TARGET X11::xcb APPEND PROPERTY INTERFACE_LINK_LIBRARIES X11::Xau) endif() endif() unset(Z_VCPKG_FIRST_X11_SEARCH) ================================================ FILE: ports/libx11/vcpkg.json ================================================ { "name": "libx11", "version": "1.8.1", "port-version": 5, "description": "The X Window System is a network-transparent window system that was designed at MIT.", "homepage": "https://www.x.org/wiki/", "license": "MIT", "dependencies": [ "bzip2", { "name": "libx11", "host": true }, { "name": "libxslt", "host": true }, { "name": "vcpkg-make", "host": true }, "xcb", "xproto", "xtrans" ] } ================================================ FILE: ports/libx11/vcxserver.patch ================================================ diff --git a/include/X11/Xlib.h b/include/X11/Xlib.h index 5faf83b..c6c63a3 100644 --- a/include/X11/Xlib.h +++ b/include/X11/Xlib.h @@ -79,7 +79,7 @@ _Xmblen( typedef char *XPointer; -#define Bool int -#define Status int +typedef int Bool; +typedef int Status; #define True 1 #define False 0 diff --git a/src/CrGlCur.c b/src/CrGlCur.c index 460660f..510ff5d 100644 --- a/src/CrGlCur.c +++ b/src/CrGlCur.c @@ -51,8 +51,14 @@ in this Software without prior written authorization from The Open Group. #if defined(hpux) typedef shl_t XModuleType; #else +#ifdef _MSC_VER +#include +typedef HANDLE XModuleType; +#define dlsym GetProcAddress +#else typedef void *XModuleType; #endif +#endif #ifndef LIBXCURSOR #define LIBXCURSOR "libXcursor.so.1" @@ -70,8 +76,12 @@ open_library (void) { #if defined(hpux) module = shl_load(library, BIND_DEFERRED, 0L); +#else +#ifdef _MSC_VER + module = LoadLibrary(library); #else module = dlopen(library, RTLD_LAZY); +#endif #endif if (module) return module; diff --git a/src/GetDflt.c b/src/GetDflt.c index c9222a2..c6e1b25 100644 --- a/src/GetDflt.c +++ b/src/GetDflt.c @@ -137,9 +138,13 @@ InitDefaults( * ~/.Xdefaults. Next, if there is an XENVIRONMENT environment variable, * then load that file. */ - + if (dpy->xdefaults == NULL) { + #ifdef _MSC_VER + const char *slashDotXdefaults = ".Xdefaults"; + #else const char *slashDotXdefaults = "/.Xdefaults"; + #endif (void) GetHomeDir (fname, (int) (PATH_MAX - strlen (slashDotXdefaults) - 1)); (void) strcat (fname, slashDotXdefaults); @@ -149,7 +154,11 @@ InitDefaults( } if (!(xenv = getenv ("XENVIRONMENT"))) { + #ifdef _MSC_VER + const char *slashDotXdefaultsDash = ".Xdefaults-"; + #else const char *slashDotXdefaultsDash = "/.Xdefaults-"; + #endif int len; (void) GetHomeDir (fname, (int) (PATH_MAX - strlen (slashDotXdefaultsDash) - 1)); diff --git a/src/SetLocale.c b/src/SetLocale.c index 81f4a7c..cb52f11 100644 --- a/src/SetLocale.c +++ b/src/SetLocale.c @@ -63,11 +63,11 @@ from The Open Group. #include #include #include "XlcPubI.h" #define MAXLOCALE 64 /* buffer size of locale name */ -#if defined(__APPLE__) || defined(__CYGWIN__) +#if defined(__APPLE__) || defined(__CYGWIN__) || defined(_MSC_VER) char * _Xsetlocale( int category, diff --git a/src/StrKeysym.c b/src/StrKeysym.c index be77a93..6967bcc 100644 --- a/src/StrKeysym.c +++ b/src/StrKeysym.c @@ -39,12 +39,12 @@ in this Software without prior written authorization from The Open Group. #ifndef KEYSYMDB #ifndef XKEYSYMDB -#define KEYSYMDB "/usr/lib/X11/XKeysymDB" +#define KEYSYMDB "XKeysymDB" #else #define KEYSYMDB XKEYSYMDB #endif #endif static Bool initialized; static XrmDatabase keysymdb; static XrmQuark Qkeysym[2]; diff --git a/src/xlibi18n/lcDynamic.c b/src/xlibi18n/lcDynamic.c index 3821bff..a50aa70 100644 --- a/src/xlibi18n/lcDynamic.c +++ b/src/xlibi18n/lcDynamic.c @@ -51,7 +51,7 @@ from The Open Group. #include "Xlcint.h" #ifndef XLOCALEDIR -#define XLOCALEDIR "/usr/lib/X11/locale" +#define XLOCALEDIR "locale" #endif #define LCLIBNAME "xi18n.so" diff --git a/src/xlibi18n/lcFile.c b/src/xlibi18n/lcFile.c index 25cabd5..819ac89 100644 --- a/src/xlibi18n/lcFile.c +++ b/src/xlibi18n/lcFile.c @@ -195,7 +192,7 @@ _XlcParsePath( } #ifndef XLOCALEDIR -#define XLOCALEDIR "/usr/lib/X11/locale" +#define XLOCALEDIR "locale" #endif void ================================================ FILE: ports/libxau/fix-configure-ac.patch ================================================ diff --git a/Makefile.am b/Makefile.am index cb3adbe..dd17d48 100644 --- a/Makefile.am +++ b/Makefile.am @@ -62,6 +62,5 @@ ChangeLog: dist-hook: ChangeLog INSTALL -ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = meson.build meson_options.txt \ No newline at end of file +EXTRA_DIST = meson.build meson_options.txt diff --git a/configure.ac b/configure.ac index e1182b6..97b9d41 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,6 @@ AC_INIT([libXau], [1.0.12], [https://gitlab.freedesktop.org/xorg/lib/libxau/-/issues], [libXau]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) AC_USE_SYSTEM_EXTENSIONS # Initialize Automake ================================================ FILE: ports/libxau/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxau" REF "libXau-${VERSION}" SHA512 d76ea5a7d5f70159b3d40242cee66b4a763b98ce57b0b5660ce47cac9bc240d51fb20eec969f8fffdfd79fa46ec8e1b9bf2aa4ca9d39d1f45d515e75afb23a7d HEAD_REF master PATCHES fix-configure-ac.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "${OPTIONS}" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxau/vcpkg.json ================================================ { "name": "libxau", "version": "1.0.12", "port-version": 1, "description": "Functions for handling Xauthority files and entries.", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxau", "license": "MIT-open-group", "dependencies": [ "bzip2", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxaw/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) if(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS lt_cv_deplibs_check_method=pass_all) # since libxt will always be static endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxaw REF 9cfeba9db7f3ac4e0b351969c9ff5ab8f58ec7ef SHA512 52c6e390aa90190ca528716eaa164ae2d79dd3345372ccc263ad1cfd2f1f49edc67df6ac34f2b9847bc099a3188d7d7161d7038565aae008cc12da373b0fc3b2 HEAD_REF master PATCHES win.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS lt_cv_deplibs_check_method=pass_all ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(makefile "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Makefile") if(EXISTS "${makefile}") vcpkg_replace_string("${makefile}" ".dll.a" ".lib") endif() set(makefile "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Makefile") if(EXISTS "${makefile}") vcpkg_replace_string("${makefile}" ".dll.a" ".lib") endif() endif() vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libxaw/vcpkg.json ================================================ { "name": "libxaw", "version": "1.0.13", "port-version": 2, "description": "X Athena Widget Set, based on the X Toolkit Intrinsics (Xt) Library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxaw", "license": null, "supports": "!windows | !staticcrt", "dependencies": [ "bzip2", "libx11", "libxext", "libxmu", "libxpm", "libxt", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxaw/win.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 8e039a07f..e99d5d6d2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,8 +9,12 @@ pkgconfig_DATA += xaw6.pc if PLATFORM_DARWIN DEFAULT_LIB = libXaw.6.@LIBEXT@ else +if PLATFORM_WIN32 +DEFAULT_LIB = Xaw6.@LIBEXT@ +else DEFAULT_LIB = libXaw6.@LIBEXT@ endif +endif endif @@ -20,8 +24,12 @@ pkgconfig_DATA += xaw7.pc if PLATFORM_DARWIN DEFAULT_LIB = libXaw.7.@LIBEXT@ else +if PLATFORM_WIN32 +DEFAULT_LIB = Xaw7.@LIBEXT@ +else DEFAULT_LIB = libXaw7.@LIBEXT@ endif +endif endif @@ -33,7 +41,7 @@ EXTRA_DIST = \ old-doc/CHANGES install-exec-hook: - cd $(DESTDIR)$(libdir) && rm -f libXaw.@LIBEXT@ && $(LN_S) $(DEFAULT_LIB) libXaw.@LIBEXT@ + cd $(DESTDIR)$(libdir) && rm -f libXaw.@LIBEXT@ && $(LN_S) $(DEFAULT_LIB) Xaw.@LIBEXT@ uninstall-local: -rm -f $(DESTDIR)$(libdir)/libXaw.@LIBEXT@ diff --git a/src/AsciiSrc.c b/src/AsciiSrc.c index 875b97c6c..8223e3bf4 100644 --- a/src/AsciiSrc.c +++ b/src/AsciiSrc.c @@ -54,6 +54,10 @@ in this Software without prior written authorization from The Open Group. #include #include #include +#ifdef _WIN32 +#include +typedef int mode_t; +#endif #if (defined(ASCII_STRING) || defined(ASCII_DISK)) #include /* for Widget Classes */ diff --git a/src/MultiSrc.c b/src/MultiSrc.c index b4a123c14..dc2146913 100644 --- a/src/MultiSrc.c +++ b/src/MultiSrc.c @@ -74,6 +74,10 @@ in this Software without prior written authorization from The Open Group. #include #include #include +#ifdef _WIN32 +#include +typedef int mode_t; +#endif #define MAGIC_VALUE ((XawTextPosition)-1) #define streq(a, b) (strcmp((a), (b)) == 0) diff --git a/src/TextAction.c b/src/TextAction.c index 43d1d3258..e083c908f 100644 --- a/src/TextAction.c +++ b/src/TextAction.c @@ -29,7 +29,12 @@ in this Software without prior written authorization from The Open Group. #endif #include #include +#ifdef HAVE_UNISTD_H #include +#endif +#ifdef _WIN32 +#define _WILLWINSOCK_ +#endif #include /* for select() and struct timeval */ #include #include @@ -3186,7 +3191,11 @@ InsertChar(Widget w, XEvent *event, String *p _X_UNUSED, Cardinal *n _X_UNUSED) FD_SET(ConnectionNumber(XtDisplay(w)), &fds); (void)select(FD_SETSIZE, &fds, NULL, NULL, &tmval); if (tmval.tv_usec != 500000) + #ifndef _WIN32 usleep(40000); + #else + Sleep(40); + #endif StartAction(ctx, NULL); #ifndef OLDXAW ================================================ FILE: ports/libxcomposite/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXCOMPOSITE_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXcomposite-${VERSION}.tar.xz" FILENAME "libXcomposite-${VERSION}.tar.xz" SHA512 24a03e3242f22b113aa6a3f9341858c072730f0f0073a1a7b9d36b982cd5b77223151aad32b61d1a38bbcb9f8ffedaf67b882dcb95f197d80ece9dbc99332c36 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXCOMPOSITE_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxcomposite/vcpkg.json ================================================ { "name": "libxcomposite", "version": "0.4.7", "port-version": 1, "description": "Xlib-based client library for the Composite extension to the X11 protocol", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxcomposite", "license": null, "dependencies": [ "libx11", "libxfixes", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxcrypt/portfile.cmake ================================================ set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) vcpkg_find_acquire_program(PERL) set(ENV{PERL} "${PERL}") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO besser82/libxcrypt REF "v${VERSION}" SHA512 00ea73f2546ddbc191e30be4db897fffb5c9da1be03781c3b3b00514c621ec0d10cee7bbfc2a53a0d79ded62e372d6b7ad93289e5f44475ddfc43816b1a31651 ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "--disable-werror" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSING" "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/libxcrypt/vcpkg.json ================================================ { "name": "libxcrypt", "version": "4.5.2", "description": "libxcrypt is a modern library for one-way hashing of passwords. On Linux-based systems, by default libxcrypt will be binary backward compatible with the libcrypt.so.1 shipped as part of the GNU C Library.", "homepage": "https://github.com/besser82/libxcrypt", "license": null, "supports": "linux | osx", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libxcvt/portfile.cmake ================================================ vcpkg_download_distfile( LIBXCVT_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libxcvt-${VERSION}.tar.xz" FILENAME "libxcvt-${VERSION}.tar.xz" SHA512 2fecc784375e69b6e8e46608618a5f5a8ad20ecd5229fd093883fe401dd6ea231d8b77c6753756fff01f3040bef2db60a042d40fc349769ef5348e5cd9ed1f28 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXCVT_ARCHIVE}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES cvt AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxcvt/vcpkg.json ================================================ { "name": "libxcvt", "version": "0.1.3", "description": "A library providing a standalone version of the X server implementation of the VESA CVT standard timing modelines generator.", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxcvt", "license": null, "supports": "!windows", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libxdamage/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXDAMAGE_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXdamage-${VERSION}.tar.xz" FILENAME "libXdamage-${VERSION}.tar.xz" SHA512 9406e39cbc426d7fa3c66bf1eec202fdb5af5db99a0ff49c2be995b1ff7326a6c1fb395c46391e1c32f5a6569a5d6e02bdd5b79fc79dd468fc3ebd698496bbc2 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXDAMAGE_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxdamage/vcpkg.json ================================================ { "name": "libxdamage", "version": "1.1.7", "port-version": 1, "description": "X Damage Extension library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxdamage", "license": null, "dependencies": [ "libx11", "libxfixes", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxdf/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xdf-modules/libxdf REF "v${VERSION}" SHA512 17b68a307118a1a1375ad1a4717d5bd83515daea51623f617d0c5673435fb79df2bbc7445504b274495481b089f93b10bec025a05ef641478eff77e36d420e4c HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DXDF_NO_SYSTEM_PUGIXML=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/libxdf/vcpkg.json ================================================ { "name": "libxdf", "version": "0.99.9", "description": "C++ library for loading multimodal, multi-rate signals stored in XDF files.", "homepage": "https://xdf-modules.github.io/libxdf/", "license": "BSD-2-Clause", "dependencies": [ "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libxdiff/fix-usage-error.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 33c34c2..1d93cde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,8 +87,9 @@ INSTALL ( EXPORT XDiffTargets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib - RUNTIME DESTINATION lib + RUNTIME DESTINATION bin ) +target_include_directories(xdiff INTERFACE "$" "$") WRITE_BASIC_PACKAGE_VERSION_FILE ( "${CMAKE_CURRENT_BINARY_DIR}/XDiff/XDiffConfigVersion.cmake" ================================================ FILE: ports/libxdiff/portfile.cmake ================================================ set(LIBXDIFF_REF 77e30f3190685efd87cce2c9c5d688cbaa1b0134) set(LIBXDIFF_SHA512 c559b575e6d6f06f3b3064f3e077a15d8f57422340199215a4cbd7beab527bc250347c8779a8d6f8c4e41799a032431e83c7336f86569527ab754444455b8c87) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" KEYSTONE_BUILD_SHARED) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Drako/libxdiff REF ${LIBXDIFF_REF} SHA512 ${LIBXDIFF_SHA512} HEAD_REF master PATCHES fix-usage-error.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SHARED=${KEYSTONE_BUILD_SHARED} ) vcpkg_cmake_install() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/xdiff.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/xdiff.dll") endif() endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/xdiff.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/xdiff.dll") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/XDiff PACKAGE_NAME XDiff) ================================================ FILE: ports/libxdiff/vcpkg.json ================================================ { "name": "libxdiff", "version": "0.23", "port-version": 4, "description": "The LibXDiff library implements basic and yet complete functionalities to create file differences/patches to both binary and text files. The library uses memory files as file abstraction to achieve both performance and portability.", "homepage": "https://github.com/Drako/libxdiff", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libxdmcp/configure.ac.patch ================================================ diff --git a/configure.ac b/configure.ac index 61df441..3fc6d53 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,6 @@ AC_INIT([libXdmcp], [1.1.5], [https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/issues], [libXdmcp]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) # Set common system defines for POSIX extensions, such as _GNU_SOURCE # Must be called before any macros that run the compiler (like LT_INIT) @@ -60,7 +59,7 @@ AC_CHECK_HEADERS([sys/random.h]) AC_SEARCH_LIBS([recvfrom],[socket]) case $host_os in - *mingw*) + *mingw* | *msys* ) AC_CHECK_LIB([ws2_32],[main]) ;; *) ================================================ FILE: ports/libxdmcp/portfile.cmake ================================================ #SET(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) # this is a lie but the lib has a different name than the dll if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxdmcp" REF libXdmcp-${VERSION} SHA512 e56baff7e7556954e10d1702b469c42fccae218692a9379306b08b513a7453d504dcbd39d03acdfe23f8f9f3f7b0fec5ae517ce17f3aa0fd5f1947d04cb73663 HEAD_REF master PATCHES configure.ac.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS --disable-dependency-tracking) string(APPEND VCPKG_C_FLAGS "/showIncludes ") string(APPEND VCPKG_CXX_FLAGS "/showIncludes ") endif() vcpkg_make_configure( SOURCE_PATH ${SOURCE_PATH} AUTORECONF OPTIONS ${OPTIONS} --enable-unit-tests=no ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxdmcp/vcpkg.json ================================================ { "name": "libxdmcp", "version": "1.1.5", "port-version": 1, "description": "X Display Manager Control Protocol library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxdmcp", "license": "MIT-open-group", "dependencies": [ "liblzma", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxext/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxext" REF "libXext-${VERSION}" SHA512 0318c3bf5b6cc00d65c810986fcc8c1458dce370ec9a4d6fda4a6fe9d57d865feb4197b571cd4a12a51118106819b848c0bca7265737d96dd0081261632646a3 HEAD_REF master ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS xorg_cv_malloc0_returns_null=yes ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxext/vcpkg.json ================================================ { "name": "libxext", "version": "1.3.7", "port-version": 1, "description": "Xlib-based library for common extensions to the X11 protocol", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxext", "license": null, "dependencies": [ "libx11", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxfixes/fix-configure.patch ================================================ diff --git a/Makefile.am b/Makefile.am index c626eaa..54252e7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,4 +37,3 @@ ChangeLog: dist-hook: ChangeLog INSTALL EXTRA_DIST = README.md meson.build -ACLOCAL_AMFLAGS = -I m4 diff --git a/configure.ac b/configure.ac index f70529a..8e3be3f 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,6 @@ AC_INIT(libXfixes, [6.0.2], [libXfixes]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) ================================================ FILE: ports/libxfixes/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxfixes" REF "libXfixes-${VERSION}" SHA512 262fd84eebd663969a30e765fd78b7a1f39731c17797edfb8795ac63a5fa323ba54b0ff8182f999a6d219df754d09bd980ed531e264b13ef35943a4f71327d1d HEAD_REF master PATCHES fix-configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxfixes/vcpkg.json ================================================ { "name": "libxfixes", "version": "6.0.2", "port-version": 1, "description": "Xlib-based library for the XFIXES Extension", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxfixes", "license": null, "dependencies": [ "libx11", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxfont/build.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 5af2e237a..e75fd1755 100644 --- a/Makefile.am +++ b/Makefile.am @@ -159,14 +159,14 @@ endif EXTRA_DIST = src/builtins/buildfont README.md # Test utilities -EXTRA_DIST += test/utils/README +# EXTRA_DIST += test/utils/README -TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h +# TEST_UTIL_SRCS = test/utils/font-test-utils.c test/utils/font-test-utils.h -noinst_PROGRAMS = lsfontdir +# noinst_PROGRAMS = lsfontdir -lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS) -lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS) +# lsfontdir_SOURCES = test/utils/lsfontdir.c $(TEST_UTIL_SRCS) +# lsfontdir_LDADD = libXfont2.la $(LTLIBOBJS) MAINTAINERCLEANFILES = ChangeLog INSTALL diff --git a/include/X11/fonts/fontmisc.h b/include/X11/fonts/fontmisc.h index 06e49f5f0..6b68dfcb8 100644 --- a/include/X11/fonts/fontmisc.h +++ b/include/X11/fonts/fontmisc.h @@ -34,7 +34,9 @@ in this Software without prior written authorization from The Open Group. #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include ================================================ FILE: ports/libxfont/build2.patch ================================================ diff --git a/src/FreeType/ftenc.c b/src/FreeType/ftenc.c index 5b0299345..5abffb6e0 100644 --- a/src/FreeType/ftenc.c +++ b/src/FreeType/ftenc.c @@ -41,6 +41,10 @@ THE SOFTWARE. #include FT_XFREE86_H #include "ft.h" +#if (defined(WIN32) || defined(WIN64) || defined(_WIN32) || defined(_WIN64)) && !defined(HAVE_STRCASECMP) +#define strcasecmp _stricmp +#endif + static int find_cmap(int, int, int, FT_Face, FT_CharMap *); static int diff --git a/src/FreeType/xttcap.c b/src/FreeType/xttcap.c index f54f76c85..a5a047ee6 100644 --- a/src/FreeType/xttcap.c +++ b/src/FreeType/xttcap.c @@ -56,6 +56,10 @@ static char const * const releaseID = #include "xttcap.h" +#if (defined(WIN32) || defined(WIN64) || defined(_WIN32) || defined(_WIN64)) && !defined(HAVE_STRCASECMP) +#define strcasecmp _stricmp +#endif + /************************************************************************** Private Data Types diff --git a/src/fontfile/renderers.c b/src/fontfile/renderers.c index a457fb7bb..c44591f13 100644 --- a/src/fontfile/renderers.c +++ b/src/fontfile/renderers.c @@ -31,10 +31,13 @@ in this Software without prior written authorization from The Open Group. #ifdef HAVE_CONFIG_H #include #endif +#include #include "libxfontint.h" #include "src/util/replace.h" #include - +#if (defined(WIN32) || defined(WIN64) || defined(_WIN32) || defined(_WIN64)) && !defined(HAVE_STRCASECMP) +#define strcasecmp _stricmp +#endif static FontRenderersRec renderers; /* ================================================ FILE: ports/libxfont/configure.patch ================================================ diff --git a/configure.ac b/configure.ac index f507c285a..a821e7311 100644 --- a/configure.ac +++ b/configure.ac @@ -122,14 +122,14 @@ AC_SUBST(FREETYPE_REQUIRES) AC_DEFINE(X_GZIP_FONT_COMPRESSION,1,[Support gzip for bitmap fonts]) X_GZIP_FONT_COMPRESSION=1 AC_SUBST(X_GZIP_FONT_COMPRESSION) -AC_CHECK_LIB(z, gzopen, [Z_LIBS=-lz], AC_MSG_ERROR([*** zlib is required])) +AC_SEARCH_LIBS(gzopen, [z zlib zlibd] , [Z_LIBS="$ac_cv_search_gzopen"], AC_MSG_ERROR([*** zlib is required])) AC_ARG_WITH(bzip2, AS_HELP_STRING([--with-bzip2], [Use libbz2 to support bzip2 compressed bitmap fonts (default: no)]), [], [with_bzip2=no]) if test "x$with_bzip2" = xyes; then - AC_CHECK_LIB(bz2, BZ2_bzopen, [Z_LIBS="$Z_LIBS -lbz2"], + AC_SEARCH_LIBS(BZ2_bzopen, [bz2 bz2d], [Z_LIBS="$Z_LIBS $ac_cv_search_BZ2_bzopen"], AC_MSG_ERROR([*** libbz2 is required for bzip2 support])) AC_DEFINE(X_BZIP2_FONT_COMPRESSION,1,[Support bzip2 for bitmap fonts]) fi @@ -204,8 +204,13 @@ if test "x$XFONT_FC" = xyes; then fi -AC_CHECK_LIB(m, hypot, [MATH_LIBS=-lm -AC_SUBST(MATH_LIBS)], AC_MSG_ERROR([*** libm is required])) +AC_SEARCH_LIBS([hypot], [m], [MATH_LIBS=-lm AC_SUBST(MATH_LIBS)], +[if test "x$ac_cv_search_hypot" != "xnone required"; then + AC_MSG_ERROR([*** libm is required]) +else + AC_MSG_ERROR([*** libm is not required]) +fi] +) PKG_CHECK_MODULES(XFONT, [xproto xtrans fontsproto >= 2.1.3 fontenc]) ================================================ FILE: ports/libxfont/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxfont REF 3a4f68284c5aeea77789af1fe395cac35efc8562 # 2.0.5 SHA512 d9731b50a55c3bceadb0abb4530a673940432467402829559229cfa946105270970db0b7663b72e64279b4b6f8a82b594549d8987205e581de19e55710fec15f HEAD_REF master PATCHES build.patch build2.patch configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if(VCPKG_TARGET_IS_WINDOWS) string(APPEND VCPKG_CXX_FLAGS " /D_WILLWINSOCK_") # /showIncludes are not passed on so I cannot figure out which header is responsible for this string(APPEND VCPKG_C_FLAGS " /D_WILLWINSOCK_") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} --with-bzip2=yes OPTIONS_DEBUG ${DEPS_DEBUG} OPTIONS_RELEASE ${DEPS_RELEASE} ) vcpkg_make_install() if(VCPKG_TARGET_IS_WINDOWS) set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xfont2.pc") file(READ "${_file}" _contents) string(REPLACE "-lm" "" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") if(NOT VCPKG_BUILD_TYPE) set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xfont2.pc") file(READ "${_file}" _contents) string(REPLACE "-lm" "" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libxfont/vcpkg.json ================================================ { "name": "libxfont", "version": "2.0.5", "port-version": 2, "description": "X font handling library for server & utilities", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxfont", "license": null, "dependencies": [ "bzip2", "freetype", "libfontenc", "libx11", "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto", "xtrans", "zlib" ] } ================================================ FILE: ports/libxft/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXFT_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXft-${VERSION}.tar.xz" FILENAME "libXft-${VERSION}.tar.xz" SHA512 493e4475c0eeab04a510819446eaa871ba9e1695e42d05bb7791d2ed59f7faff31e910dae95efa4b0ac4a7a2da38614b5740a4ca9388134bea80d348e9ad57e5 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXFT_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxft/vcpkg.json ================================================ { "name": "libxft", "version": "2.3.9", "port-version": 1, "description": "X FreeType library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxft", "license": null, "dependencies": [ "fontconfig", "freetype", "libx11", "libxrender", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxi/fix-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 3351124..1fb3977 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,6 @@ AC_INIT([libXi], [1.8.2], [https://gitlab.freedesktop.org/xorg/lib/libXi/issues], [libXi]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([src/config.h]) -AC_CONFIG_MACRO_DIRS([m4]) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) ================================================ FILE: ports/libxi/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxi" REF "libXi-${VERSION}" SHA512 3928777184c89f93182d5d6b0d8e37e0ec797c37c0e73305ac843a8c874c3c1261e37338d61edf526e9ca74120bf6dcc1832760ebe9af2550e9f8279dd2f6f6f HEAD_REF master PATCHES fix-configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if (VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxi/vcpkg.json ================================================ { "name": "libxi", "version": "1.8.2", "port-version": 1, "description": "Xlib library for the X Input Extension", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxi", "license": null, "dependencies": [ "libxext", "libxfixes", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/libxinerama/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXINERAMA_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXinerama-${VERSION}.tar.xz" FILENAME "libXinerama-${VERSION}.tar.xz" SHA512 64bff837941625120da43b8876db4204bc5740bcf3147997fc4df1475f90d6d9e3f9caa8748c7ebbf69d681be8e5ab4bc40f82c56c367dddcec3ab27d1c71573 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXINERAMA_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxinerama/vcpkg.json ================================================ { "name": "libxinerama", "version": "1.1.6", "port-version": 1, "description": "Xlib API for Xinerama extension to X11 Protocol", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxinerama", "license": null, "dependencies": [ "libx11", "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/libxkbcommon/build.patch ================================================ diff --git a/tools/how-to-type.c b/tools/how-to-type.c index 72aea1b..783373a 100644 --- a/tools/how-to-type.c +++ b/tools/how-to-type.c @@ -26,7 +26,9 @@ #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #include #include "xkbcommon/xkbcommon.h" diff --git a/tools/tools-common.c b/tools/tools-common.c index 8eb3f4b..8b22307 100644 --- a/tools/tools-common.c +++ b/tools/tools-common.c @@ -42,6 +42,7 @@ #ifdef _WIN32 #include #include +#include #else #include #include ================================================ FILE: ports/libxkbcommon/disable-test.patch ================================================ diff --git a/meson.build b/meson.build index 2de4ee9..bb53561 100644 --- a/meson.build +++ b/meson.build @@ -601,6 +601,7 @@ configure_file(input: 'test/xkeyboard-config-test.py.in', configuration: xkct_config) # Tests +if false test_env = environment() test_env.set('XKB_LOG_LEVEL', 'debug') test_env.set('XKB_LOG_VERBOSITY', '10') @@ -873,6 +874,7 @@ if get_option('enable-x11') env: bench_env, ) endif +endif # Documentation. ================================================ FILE: ports/libxkbcommon/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() set(PATCHES "") if(VCPKG_TARGET_IS_WINDOWS) #vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Meson is not able to automatically export symbols for DLLs set(PATCHES build.patch) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xkbcommon/libxkbcommon REF "xkbcommon-${VERSION}" SHA512 454fbb2861405ca957d64035e924c1bbb7d43db7867903963fc053b7ecb64a8fba89a21cc8ac18ebeec9b61ae0789fb88c52521a850dc371857f28b08e80167b HEAD_REF master PATCHES disable-test.patch ${PATCHES} ) vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_find_acquire_program(BISON) get_filename_component(BISON_DIR "${BISON}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${BISON_DIR}") set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS -Denable-xkbregistry=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Denable-wayland=false -Denable-docs=false -Denable-tools=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() 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") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") endif() ================================================ FILE: ports/libxkbcommon/vcpkg.json ================================================ { "name": "libxkbcommon", "version": "1.7.0", "description": "keymap handling library for toolkits and window systems", "homepage": "https://xkbcommon.org/", "license": null, "dependencies": [ "getopt", "libx11", { "name": "vcpkg-tool-meson", "host": true }, { "name": "wayland", "platform": "linux" }, "xcb", "xcb-render-util" ] } ================================================ FILE: ports/libxkbfile/fix_u_char.patch ================================================ diff --git a/src/xkbmisc.c b/src/xkbmisc.c index 2f9b532e6..8be8dd508 100644 --- a/src/xkbmisc.c +++ b/src/xkbmisc.c @@ -688,7 +688,9 @@ XkbNameMatchesPattern(char *name, char *ptrn) _X_HIDDEN int _XkbStrCaseCmp(char *str1, char *str2) { - const u_char *us1 = (const u_char *) str1, *us2 = (const u_char *) str2; + typedef unsigned char u_char; + const u_char *us1 = (const u_char *) str1; + const u_char *us2 = (const u_char *) str2; while (tolower(*us1) == tolower(*us2)) { if (*us1++ == '\0') ================================================ FILE: ports/libxkbfile/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() set(PATCHES "") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(PATCHES symbol_visibility.patch) list(APPEND VCPKG_C_FLAGS "/DXKBFILE_BUILD") list(APPEND VCPKG_CXX_FLAGS "/DXKBFILE_BUILD") endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxkbfile REF "libxkbfile-${VERSION}" SHA512 e4b0fc6d9525669fe85cd8ebb096ce4a9355de00e7356dbe6c3cb194f6aa2449ef345811ce4934bb8c09edb94eee08227f7f20ee1df4a8a49697a3dc85cd704e HEAD_REF master PATCHES fix_u_char.patch ${PATCHES} ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxkbfile/symbol_visibility.patch ================================================ diff --git a/include/X11/extensions/XKBfile.h b/include/X11/extensions/XKBfile.h index 1455463..d883bda 100644 --- a/include/X11/extensions/XKBfile.h +++ b/include/X11/extensions/XKBfile.h @@ -83,10 +83,19 @@ typedef void (*XkbFileAddOnFunc)( #define _XkbErrXReqFailure 25 #define _XkbErrBadImplementation 26 -extern const char * _XkbErrMessages[]; -extern unsigned _XkbErrCode; -extern const char * _XkbErrLocation; -extern unsigned _XkbErrData; +#ifdef _MSC_VER +# ifdef XKBFILE_BUILD +# define XKBFILE_EXTERN __declspec(dllexport) +# else +# define XKBFILE_EXTERN __declspec(dllimport) +# endif +#else +# define XKBFILE_EXTERN extern +#endif +XKBFILE_EXTERN const char * _XkbErrMessages[]; +XKBFILE_EXTERN unsigned _XkbErrCode; +XKBFILE_EXTERN const char * _XkbErrLocation; +XKBFILE_EXTERN unsigned _XkbErrData; /***====================================================================***/ ================================================ FILE: ports/libxkbfile/vcpkg.json ================================================ { "name": "libxkbfile", "version": "1.1.3", "description": "XKB file handling routines", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxkbfile", "license": null, "dependencies": [ "libx11", { "name": "vcpkg-tool-meson", "host": true }, "xproto" ] } ================================================ FILE: ports/libxlsxwriter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jmcnamara/libxlsxwriter REF "v${VERSION}" SHA512 a961a6d8094cc9f9996c9cf6c143e0382422eb4b63ec68d4ee1cce76afef562656855ed08c630974b67d33a4af9706df602c4ababad0767466b43a3e0563f2cf HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/minizip") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "dtoa" USE_DTOA_LIBRARY "openssl-md5" USE_OPENSSL_MD5 "mem-file" USE_MEM_FILE ) set(USE_WINDOWSSTORE OFF) if (VCPKG_TARGET_IS_UWP) set(USE_WINDOWSSTORE ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_SYSTEM_MINIZIP=1 -DWINDOWSSTORE=${USE_WINDOWSSTORE} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/libxlsxwriter/vcpkg.json ================================================ { "name": "libxlsxwriter", "version": "1.2.4", "description": "Libxlsxwriter is a C library that can be used to write text, numbers, formulas and hyperlinks to multiple worksheets in an Excel 2007+ XLSX file.", "homepage": "https://github.com/jmcnamara/libxlsxwriter", "documentation": "https://libxlsxwriter.github.io", "license": "BSD-2-Clause", "dependencies": [ "minizip", { "name": "vcpkg-cmake", "host": true }, "zlib" ], "features": { "dtoa": { "description": "Use the Milo Yip DTOA library" }, "mem-file": { "description": "Use memory files instead of temp files", "supports": "!windows" }, "openssl-md5": { "description": "Use Openssl MD5", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/libxml2/cxx-for-icu.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b952d7bf..6d43569b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ if(${VERSION} MATCHES [[([0-9]+)\.([0-9]+)\.([0-9]+)]]) set(LIBXML_MICRO_VERSION ${CMAKE_MATCH_3}) endif() -project(libxml2 VERSION ${VERSION} LANGUAGES C) +project(libxml2 VERSION ${VERSION} LANGUAGES C CXX) set(CMAKE_C_STANDARD 11) ================================================ FILE: ports/libxml2/disable-xml2-config.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3850f6b..8beb11e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -669,7 +669,6 @@ if(1) set(prefix "\$(cd \"\$(dirname \"\$0\")\"; pwd -P)/..") endif() configure_file(xml2-config.in xml2-config @ONLY) -install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/xml2-config DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT development) set(XML_INCLUDEDIR "-I${CMAKE_INSTALL_FULL_INCLUDEDIR}/libxml2") set(XML_LIBDIR "-L${CMAKE_INSTALL_FULL_LIBDIR}") ================================================ FILE: ports/libxml2/fix_cmakelist.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b952d7bf..9196ebe4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -425,7 +425,7 @@ set_target_properties( MACHO_CURRENT_VERSION "${LIBXML_MACHO_COMPAT}.${LIBXML_MICRO_VERSION}" ) -if(MSVC) +if(0) if(BUILD_SHARED_LIBS) set_target_properties( LibXml2 @@ -634,7 +634,11 @@ list(JOIN XML_PRIVATE_LIBS " " XML_PRIVATE_LIBS) set(XML_INCLUDEDIR "-I\${includedir}/libxml2") set(XML_LIBDIR "-L\${libdir}") +if(NOT MSVC) set(XML_LIBS "-lxml2") +else() +set(XML_LIBS "-llibxml2") +endif() if(BUILD_SHARED_LIBS) set(XML_PC_PRIVATE ".private") @@ -669,7 +673,7 @@ set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") configure_file(libxml-2.0.pc.in libxml-2.0.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxml-2.0.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT development) -if(WIN32) +if(1) set(prefix "\$(cd \"\$(dirname \"\$0\")\"; pwd -P)/..") endif() configure_file(xml2-config.in xml2-config @ONLY) ================================================ FILE: ports/libxml2/fix_ios_compilation.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b952d7bf..d555d25a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,7 +134,12 @@ check_c_source_compiles(" f(void) {} int main(void) { return 0; } " HAVE_FUNC_ATTRIBUTE_DESTRUCTOR) -check_symbol_exists(getentropy "sys/random.h" HAVE_DECL_GETENTROPY) +if (APPLE) + # In old macOS SDKs (ex: 10.15), sys/random.h fails to include header files it needs, so add them here. + check_symbol_exists(getentropy "Availability.h;stddef.h;sys/random.h" HAVE_GETENTROPY) +else() + check_symbol_exists(getentropy sys/random.h HAVE_GETENTROPY) +endif() check_symbol_exists(glob "glob.h" HAVE_DECL_GLOB) check_symbol_exists(mmap "sys/mman.h" HAVE_DECL_MMAP) check_include_files(stdint.h HAVE_STDINT_H) ================================================ FILE: ports/libxml2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GNOME/libxml2 REF "v${VERSION}" SHA512 2a5034a90050c24bc8b9423456e80f85fd329eaaff2e9e729e71e373fc86c1f0c46b2572838d5550532f9849338f9be818f83cba3da67cffa09509aa614e3eee HEAD_REF master PATCHES cxx-for-icu.diff disable-xml2-config.diff fix_cmakelist.patch fix_ios_compilation.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "iconv" LIBXML2_WITH_ICONV "icu" LIBXML2_WITH_ICU "legacy" LIBXML2_WITH_LEGACY "tools" LIBXML2_WITH_PROGRAMS "zlib" LIBXML2_WITH_ZLIB ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBXML2_WITH_TESTS=OFF -DLIBXML2_WITH_HTML=ON -DLIBXML2_WITH_C14N=ON -DLIBXML2_WITH_CATALOG=ON -DLIBXML2_WITH_DEBUG=ON -DLIBXML2_WITH_ISO8859X=ON -DLIBXML2_WITH_MODULES=ON -DLIBXML2_WITH_OUTPUT=ON -DLIBXML2_WITH_PATTERN=ON -DLIBXML2_WITH_PUSH=ON -DLIBXML2_WITH_READER=ON -DLIBXML2_WITH_REGEXPS=ON -DLIBXML2_WITH_SAX1=ON -DLIBXML2_WITH_SCHEMAS=ON -DLIBXML2_WITH_THREADS=ON -DLIBXML2_WITH_THREAD_ALLOC=OFF -DLIBXML2_WITH_VALID=ON -DLIBXML2_WITH_WRITER=ON -DLIBXML2_WITH_XINCLUDE=ON -DLIBXML2_WITH_XPATH=ON -DLIBXML2_WITH_XPTR=ON "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" OPTIONS_DEBUG -DLIBXML2_WITH_PROGRAMS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libxml2") vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES xmllint xmlcatalog AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libxml2/libxml/xmlexports.h" "!defined(LIBXML_STATIC)" "0 /* LIBXML_STATIC */") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright") ================================================ FILE: ports/libxml2/usage ================================================ The package libxml2 is compatible with built-in CMake targets: find_package(LibXml2 REQUIRED) target_link_libraries(main PRIVATE LibXml2::LibXml2) ================================================ FILE: ports/libxml2/vcpkg-cmake-wrapper.cmake ================================================ list(REMOVE_ITEM ARGS "NO_MODULE" "CONFIG" "MODULE") _find_package(${ARGS} CONFIG) set(LIBXML2_FOUND "${LibXml2_FOUND}") # fphsa compatibility ================================================ FILE: ports/libxml2/vcpkg.json ================================================ { "name": "libxml2", "version": "2.15.2", "description": "Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform).", "homepage": "https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "iconv", "zlib" ], "features": { "iconv": { "description": "Add ICONV support", "dependencies": [ "libiconv" ] }, "icu": { "description": "Add ICU support", "dependencies": [ "icu" ] }, "legacy": { "description": "Add deprecated APIs for compatibility", "dependencies": [ { "name": "libxml2", "default-features": false, "features": [ "zlib" ] } ] }, "tools": { "description": "Build tools" }, "zlib": { "description": "Use ZLib", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/libxmlb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hughsie/libxmlb REF "${VERSION}" SHA512 88f884c47d091335d5867936eca1160e6553950ce4bf54052bccb2a4a95725d446d23a13d747b3a919506342de16c0d90d6dfe313eb3cd49886488fad8e938a5 HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgtkdoc=false -Dintrospection=false -Dtests=false -Dstemmer=false -Dcli=false -Dlzma=disabled -Dzstd=disabled ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libxmlb/vcpkg.json ================================================ { "name": "libxmlb", "version": "0.3.25", "description": "The libxmlb library takes XML source, and converts it to a structured binary representation with a deduplicated string table where the strings have the NULs included", "homepage": "https://github.com/hughsie/libxmlb/", "license": "LGPL-2.1-only", "supports": "!windows | mingw", "dependencies": [ "glib", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libxmlmm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(libxmlmm CXX) find_package(LibXml2 REQUIRED) set(HEADERS_LIBXMLMM libxmlmm/Attribute.h libxmlmm/CData.h libxmlmm/Comment.h libxmlmm/Content.h libxmlmm/defines.h libxmlmm/Document.h libxmlmm/Element.h libxmlmm/exceptions.h libxmlmm/libxmlmm.h libxmlmm/LibXmlSentry.h libxmlmm/Node.h libxmlmm/ProcessingInstruction.h libxmlmm/Text.h libxmlmm/utils.h ) set(SOURCES_LIBXMLMM libxmlmm/Attribute.cpp libxmlmm/CData.cpp libxmlmm/Comment.cpp libxmlmm/Content.cpp libxmlmm/Document.cpp libxmlmm/Element.cpp libxmlmm/LibXmlSentry.cpp libxmlmm/Node.cpp libxmlmm/ProcessingInstruction.cpp libxmlmm/Text.cpp libxmlmm/utils.cpp ) add_library(libxmlmm ${SOURCES_LIBXMLMM}) target_link_libraries (libxmlmm PUBLIC LibXml2::LibXml2) set_target_properties(libxmlmm PROPERTIES CXX_STANDARD 17 PUBLIC_HEADER "${HEADERS_LIBXMLMM}" OUTPUT_NAME xmlmm ) target_include_directories(libxmlmm PUBLIC $ $) install(TARGETS libxmlmm EXPORT unofficial-libxmlmm-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include/libxmlmm ) install(EXPORT unofficial-libxmlmm-targets NAMESPACE unofficial::libxmlmm:: DESTINATION share/unofficial-libxmlmm ) configure_file(libxmlmm.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libxmlmm.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxmlmm.pc DESTINATION lib/pkgconfig) ================================================ FILE: ports/libxmlmm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rioki/libxmlmm REF r0.6 SHA512 4f619e730de2f88b891ef31dd7ced2e6be75fff7f3852ec178843bf8d099d2e1ea84e0fcde35ff7fefc201b026f63e4b5d55f88e48334c49a0333be0327894df HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-libxmlmm-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-libxmlmm") vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libxmlmm) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${SOURCE_PATH}/README.md" readme) string(REGEX REPLACE "^.*## Copying\n" "" copyright "${readme}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${copyright}") ================================================ FILE: ports/libxmlmm/unofficial-libxmlmm-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(LibXml2) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libxmlmm-targets.cmake") ================================================ FILE: ports/libxmlmm/vcpkg.json ================================================ { "name": "libxmlmm", "version": "0.6.0", "port-version": 4, "description": "Libxmlmm is a C++ wrapper for libxml 2.0 that only relies on standard C++ and libxml2.", "homepage": "https://github.com/rioki/libxmlmm", "license": "MIT", "dependencies": [ { "name": "libxml2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libxmlpp/portfile.cmake ================================================ string(REGEX MATCH "^([0-9]*[.][0-9]*)" MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnome.org/pub/GNOME/sources/libxml++/${MAJOR_MINOR}/libxml++-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/libxml++/${MAJOR_MINOR}/libxml++-${VERSION}.tar.xz" FILENAME "libxml++-${VERSION}.tar.xz" SHA512 bba28edf40c60ac186ff1b704d9f4f41f73c1be3126cfb345005283b32bb5c9a596b8def64be8ad8e295e1e169bed91d120d5105cbbb6cecc4675d10b897dfe6 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbuild-documentation=false -Dbuild-manual=false -Dvalidation=false # Validate the tutorial XML file -Dbuild-examples=false -Dbuild-tests=false -Dbuild-deprecated-api=true # Build deprecated API and include it in the library ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxmlpp/vcpkg.json ================================================ { "name": "libxmlpp", "version": "5.4.0", "port-version": 1, "description": "A C++ wrapper for the libxml XML parser library.", "homepage": "https://libxmlplusplus.github.io/libxmlplusplus/", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "libxml2", "default-features": false }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/libxmp/fix-cmake-config-dir.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1794cb2c1534d53d502785e0446d302e5439216a..c960405632c0d1b4797470424fce4ff8a7ec1aef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -170,7 +170,7 @@ add_subdirectory(docs) include(CMakePackageConfigHelpers) -if(WIN32) +if(0) set(cmake_install_cmakdir "cmake") else() set(cmake_install_cmakdir "${CMAKE_INSTALL_LIBDIR}/cmake/libxmp") ================================================ FILE: ports/libxmp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libxmp/libxmp REF libxmp-${VERSION} SHA512 5f7690e274f3857bd6889cd2ba637473f4a85359a6ef87c76313f87d0c725e3880ba6e428b542dbbf0c8a7725a87b5019289b3f19d2c5bb49527b380f1b4f7e4 PATCHES fix-cmake-config-dir.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES depackers LIBXMP_DISABLE_DEPACKERS prowizard LIBXMP_DISABLE_PROWIZARD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_SHARED=${BUILD_SHARED} -DLIBXMP_DOCS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME "libxmp" CONFIG_PATH "lib/cmake/libxmp" ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/COPYING.LIB") ================================================ FILE: ports/libxmp/usage ================================================ libxmp provides CMake targets: find_package(libxmp CONFIG REQUIRED) target_link_libraries(main PRIVATE $,libxmp::xmp_shared,libxmp::xmp_static>) ================================================ FILE: ports/libxmp/vcpkg.json ================================================ { "name": "libxmp", "version": "4.6.0", "port-version": 1, "description": "Libxmp is a library that renders module files to PCM data.", "homepage": "https://sourceforge.net/projects/xmp/", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "depackers", "prowizard" ], "features": { "depackers": { "description": "Enable archive depackers." }, "prowizard": { "description": "Enable ProWizard format loaders." } } } ================================================ FILE: ports/libxmu/cl-build.patch ================================================ diff --git a/src/EditresCom.c b/src/EditresCom.c index 716a2b3c6..d570e19e4 100644 --- a/src/EditresCom.c +++ b/src/EditresCom.c @@ -34,6 +34,9 @@ in this Software without prior written authorization from The Open Group. #include /* To get into the composite and core widget structures. */ #include /* For XtIs macros. */ +#ifdef _MSC_VER +#define XTSTRINGDEFINES // Otherwise XtRImmediate is not a constant expression +#endif #include /* for XtRString. */ #include /* for Application Shell Widget class. */ ================================================ FILE: ports/libxmu/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxmu REF e9efe2d027b4c46cf6834cc532222f8ad1d1d3c3 # 1.1.3 SHA512 9d3ab7534afbb3d220ce846ecfc209536def28e707e68f393673bda6f92054e7a14212ae2400092afdc06bbb61d8315d460feaf5b551dc447390d6d952a5aa1f HEAD_REF master # branch name PATCHES cl-build.patch unistd.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS lt_cv_deplibs_check_method=pass_all ) vcpkg_make_install() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/Xmu/Atoms.h" "extern" "__declspec(dllimport) extern") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libxmu/unistd.patch ================================================ diff --git a/src/GetHost.c b/src/GetHost.c index 2f0bccded..2d698f664 100644 --- a/src/GetHost.c +++ b/src/GetHost.c @@ -35,7 +35,10 @@ in this Software without prior written authorization from The Open Group. #endif #include #include + +#ifdef HAVE_UNISTD_H #include +#endif #ifdef WIN32 #include ================================================ FILE: ports/libxmu/vcpkg.json ================================================ { "name": "libxmu", "version": "1.1.3", "port-version": 2, "description": "X miscellaneous utility routines library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxmu", "license": null, "dependencies": [ "bzip2", "libxext", "libxt", { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/libxpm/fix-dependency-gettext.patch ================================================ diff --git a/configure.ac b/configure.ac index 365544b..51bc0f2 100644 --- a/configure.ac +++ b/configure.ac @@ -30,7 +30,9 @@ PKG_CHECK_MODULES(SXPM, [x11 xt xext xextproto xproto >= 7.0.17], AM_CONDITIONAL(BUILD_SXPM, test x$build_sxpm = xtrue) # Internationalization & localization support -AC_SEARCH_LIBS([gettext], [intl], [USE_GETTEXT="yes"], [USE_GETTEXT="no"]) +AC_ARG_WITH([gettext], AC_HELP_STRING([--with-gettext], + [Use gettext, default is no]), + [USE_GETTEXT=${withval}]) AC_MSG_CHECKING([where to install localized messages]) AC_ARG_WITH([localedir], AS_HELP_STRING([--with-localedir=], [Path to install message files in (default: datadir/locale)]), ================================================ FILE: ports/libxpm/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxpm REF "libXpm-${VERSION}" SHA512 30d473b6184d56643114ab1f7719f033ac5ecfd9fd46ebefc03db171a82a809d996046a039c922c184046310fc12a088467ca73740386b3e73b1e699bde78db7 PATCHES remove_strings_h.patch fix-dependency-gettext.patch strcasecmp.patch subdirs.diff tools.patch # will look for libxt otherwise ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if ("gettext" IN_LIST FEATURES) set(EXTRA_OPTIONS --with-gettext=yes) else() set(EXTRA_OPTIONS --with-gettext=no) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${EXTRA_OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxpm/remove_strings_h.patch ================================================ diff --git a/src/XpmI.h b/src/XpmI.h index 4360ad3b9..a8d78b0ba 100644 --- a/src/XpmI.h +++ b/src/XpmI.h @@ -332,7 +332,9 @@ FUNC(xpmstrcasecmp, int, (char *s1, char *s2)); #else #undef xpmstrcasecmp #define xpmstrcasecmp strcasecmp +# if !defined(_MSC_VER) #include +# endif #endif HFUNC(xpmatoui, unsigned int, ================================================ FILE: ports/libxpm/strcasecmp.patch ================================================ diff --git a/include/X11/xpm.h b/include/X11/xpm.h index f108f1f6e..143b6657d 100644 --- a/include/X11/xpm.h +++ b/include/X11/xpm.h @@ -69,6 +69,10 @@ # include # include "simx.h" /* defines some X stuff using MSW types */ #define NEED_STRCASECMP /* at least for MSVC++ */ +#elif _MSC_VER +#define strcasecmp _stricmp +# include +# include #else /* FOR_MSW */ # ifdef AMIGA # include "amigax.h" ================================================ FILE: ports/libxpm/subdirs.diff ================================================ diff --git a/Makefile.am b/Makefile.am index 235ee1f..d8d0f66 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Daniel Stone disowns all copyright on this file; no warranty is given as to its # suitability or otherwise. -SUBDIRS = doc include man src sxpm cxpm test +SUBDIRS = include src ACLOCAL_AMFLAGS = -I m4 ================================================ FILE: ports/libxpm/tools.patch ================================================ diff --git a/configure.ac b/configure.ac index 51bc0f2bc..e35dc6e17 100644 --- a/configure.ac +++ b/configure.ac @@ -25,9 +25,9 @@ AC_CHECK_FUNC([fork],[], AC_DEFINE(NO_ZPIPE)) # Obtain compiler/linker options for dependencies PKG_CHECK_MODULES(XPM, xproto x11) -PKG_CHECK_MODULES(SXPM, [x11 xt xext xextproto xproto >= 7.0.17], - [build_sxpm=true], [build_sxpm=false]) +# PKG_CHECK_MODULES(SXPM, [x11 xt xext xextproto xproto >= 7.0.17], +# [build_sxpm=true], [build_sxpm=false]) AM_CONDITIONAL(BUILD_SXPM, test x$build_sxpm = xtrue) # Internationalization & localization support AC_ARG_WITH([gettext], AC_HELP_STRING([--with-gettext], ================================================ FILE: ports/libxpm/vcpkg.json ================================================ { "name": "libxpm", "version": "3.5.17", "port-version": 1, "description": "XPM format pixmap library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxpm", "license": "MIT", "supports": "windows | linux", "dependencies": [ "libx11", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ], "features": { "gettext": { "description": "use xgettext to build source", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/libxpresent/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXPRESENT_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXpresent-${VERSION}.tar.xz" FILENAME "libXpresent-${VERSION}.tar.xz" SHA512 7e12c386e5d1404db359f8004a141223b4c08a138a5589d087537ca667e9dd5cdc190f170a5fa991c1f8dd022896bb07bff540e262a0d30d542a3faea06d8c93 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXPRESENT_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxpresent/vcpkg.json ================================================ { "name": "libxpresent", "version": "1.0.2", "port-version": 1, "description": "Xlib-based library for the X Present Extension", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxpresent", "license": null, "dependencies": [ "libx11", "libxext", "libxfixes", "libxrandr", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxrandr/fix-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 99e3944..d6e6159 100644 --- a/configure.ac +++ b/configure.ac @@ -34,7 +34,6 @@ AC_INIT([libXrandr], [1.5.4], [libXrandr]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) ================================================ FILE: ports/libxrandr/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in the triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxrandr" REF "libXrandr-${VERSION}" SHA512 32983bbc173923f016bed8b6920319a6df6583d1a1cb37013e54413244b46501828c9b3136dd37bf46fd95d889045c1e68868f6a9e692356f54bc5db221005f3 HEAD_REF master PATCHES fix-configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if (VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxrandr/vcpkg.json ================================================ { "name": "libxrandr", "version": "1.5.5", "port-version": 1, "description": "Xlib Resize, Rotate and Reflection (RandR) extension library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxrandr", "license": null, "dependencies": [ "bzip2", "libx11", "libxext", "libxrender", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxrender/fix-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 6bc1c90..28e1ac5 100644 --- a/configure.ac +++ b/configure.ac @@ -34,7 +34,6 @@ AC_INIT(libXrender, [0.9.12], [libXrender]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) PACKAGE_BRIEF="Library for the Render Extension to the X11 protocol" AC_SUBST(PACKAGE_BRIEF) ================================================ FILE: ports/libxrender/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxrender" REF "libXrender-${VERSION}" SHA512 681ddad409bf9a16810a43cca9fde22a352310acb7262a5d634b05f235e51ca8e6023a8874110eb97b5f00c87a7a2466f4d8a6afcf0321fc3c4f3c0676d516a6 HEAD_REF master PATCHES fix-configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if (VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxrender/vcpkg.json ================================================ { "name": "libxrender", "version": "0.9.12", "port-version": 1, "description": "library for the Render Extension to the X11 protocol", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxrender", "license": null, "dependencies": [ "libx11", { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/libxres/build.patch ================================================ diff --git a/include/X11/extensions/XRes.h b/include/X11/extensions/XRes.h index 1c816165e..8da68aa23 100644 --- a/include/X11/extensions/XRes.h +++ b/include/X11/extensions/XRes.h @@ -6,7 +6,10 @@ #define _XRES_H #include - +#if defined(_MSC_VER) + #include + typedef int pid_t; +#endif /* v1.0 */ typedef struct { ================================================ FILE: ports/libxres/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxres REF c05c6d918b0e2011d4bfa370c321482e34630b17 # 1.2.1 SHA512 c2eabf65b03393991b56b84bea4d770e9c0295d685e8b22bb7dabbd37dd6c7c6f5e519cefa790b05c0f124bb739a5abe03249b89e2ce6d5276014e9752c11251 HEAD_REF master PATCHES build.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if (VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libxres/vcpkg.json ================================================ { "name": "libxres", "version": "1.2.1", "port-version": 1, "description": "Xlib-based X-Resource extension client library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxres", "license": null, "dependencies": [ "bzip2", "libx11", "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxscrnsaver/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXSCRNSAVER_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXScrnSaver-${VERSION}.tar.xz" FILENAME "libXScrnSaver-${VERSION}.tar.xz" SHA512 1c0be0d15c5e7b50a3eb4a239e2c833c44b693b111c7f64c409f9abf8051356572acadebc8b295555683ff6bd4895acdbe32b15a538c971f15d8aa4e6b7fd51b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXSCRNSAVER_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if (VCPKG_CROSSCOMPILING) list(APPEND OPTIONS --enable-malloc0returnsnull) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxscrnsaver/vcpkg.json ================================================ { "name": "libxscrnsaver", "version": "1.2.5", "port-version": 1, "description": "Xlib-based X11 Screen Saver extension client library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxscrnsaver", "license": null, "dependencies": [ "libx11", "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxslt/cxx-for-libxml2-icu.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 310f720..3e7d906 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ set(LIBEXSLT_VERSION_EXTRA "") set(VERSION ${LIBXSLT_DOTTED_VERSION}) set(LIBEXSLT_VERSION ${LIBEXSLT_DOTTED_VERSION}) -project(libxslt1 VERSION ${VERSION} LANGUAGES C) +project(libxslt1 VERSION ${VERSION} LANGUAGES C CXX) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) ================================================ FILE: ports/libxslt/fix-gcrypt-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fb352475..4113fbff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -319,7 +319,9 @@ target_include_directories( if(LIBXSLT_WITH_CRYPTO AND NOT WIN32) target_link_libraries(LibExslt PRIVATE Gcrypt::Gcrypt) - set(LIBGCRYPT_LIBS "-lgcrypt") + # For libexslt.pc + set(LIBGCRYPT_LIBS "") + string(APPEND EXSLT_PRIVATE_REQUIRES " libgcrypt") endif() if(UNIX) diff --git a/FindGcrypt.cmake b/FindGcrypt.cmake index 781113d5..6f680beb 100644 --- a/FindGcrypt.cmake +++ b/FindGcrypt.cmake @@ -1,3 +1,20 @@ +cmake_policy(PUSH) +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +find_package(PkgConfig) +if("REQUIRED" IN_LIST ${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED) + pkg_check_modules(libxslt_gcrypt REQUIRED IMPORTED_TARGET libgcrypt) +else() + pkg_check_modules(libxslt_gcrypt IMPORTED_TARGET libgcrypt) +endif() +set(Gcrypt_FOUND "${libxslt_gcrypt_FOUND}") # CMake standard, needed for find_dependency +set(GCRYPT_FOUND "${libxslt_gcrypt_FOUND}") # libxslt usage +if(libxslt_gcrypt_FOUND AND NOT TARGET Gcrypt::Gcrypt) + add_library(Gcrypt::Gcrypt INTERFACE IMPORTED) + set_target_properties(Gcrypt::Gcrypt PROPERTIES INTERFACE_LINK_LIBRARIES PkgConfig::libxslt_gcrypt) +endif() +cmake_policy(POP) +if(0) include(FindPackageHandleStandardArgs) include(SelectLibraryConfigurations) @@ -38,3 +55,4 @@ if(GCRYPT_FOUND AND NOT TARGET Gcrypt::Gcrypt) INTERFACE_INCLUDE_DIRECTORIES "${GCRYPT_INCLUDE_DIRS}" ) endif() +endif() ================================================ FILE: ports/libxslt/libexslt-pkgconfig.patch ================================================ diff --git a/libexslt.pc.in b/libexslt.pc.in index f448bb83..791bcdda 100644 --- a/libexslt.pc.in +++ b/libexslt.pc.in @@ -7,7 +7,8 @@ includedir=@includedir@ Name: libexslt Version: @LIBEXSLT_VERSION@ Description: EXSLT Extension library -Requires: libxml-2.0, libxslt +Requires: libxslt +Requires.private: @EXSLT_PRIVATE_REQUIRES@ Cflags: @EXSLT_INCLUDEDIR@ @LIBEXSLT_CFLAGS@ Libs: @EXSLT_LIBDIR@ -lexslt Libs.private: @EXSLT_PRIVATE_LIBS@ ================================================ FILE: ports/libxslt/msvc-no-suffix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fb352475..a4bb094e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,7 +247,7 @@ set_target_properties( SOVERSION ${LIBXSLT_MAJOR_VERSION} ) -if(MSVC) +if(0) # Never add suffixes which are not added by the autotools build or the nmake makefiles if(BUILD_SHARED_LIBS) set_target_properties( LibXslt @@ -340,7 +340,7 @@ set_target_properties( SOVERSION ${LIBEXSLT_MAJOR_VERSION} ) -if(MSVC) +if(0) # same reason as above if(BUILD_SHARED_LIBS) set_target_properties( LibExslt ================================================ FILE: ports/libxslt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GNOME/libxslt REF "v${VERSION}" SHA512 8b824fc1ecbcfbf6e3eb29e6fef30b7e20a19181869dd3f3b6cbbd6d796789b167d8ed76a6f727236f34ffaab0f8b2a531765fee63feb9ed61e689bc9e21c9dd HEAD_REF master PATCHES cxx-for-libxml2-icu.diff python3.patch msvc-no-suffix.patch libexslt-pkgconfig.patch fix-gcrypt-deps.patch skip-install-docs.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "python" LIBXSLT_WITH_PYTHON "crypto" LIBXSLT_WITH_CRYPTO "plugins" LIBXSLT_WITH_MODULES "profiler" LIBXSLT_WITH_PROFILER "thread" LIBXSLT_WITH_THREADS "tools" LIBXSLT_WITH_PROGRAMS ) if("python" IN_LIST FEATURES) vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND FEATURE_OPTIONS "-DPython_EXECUTABLE=${PYTHON3}") list(APPEND FEATURE_OPTIONS_RELEASE "-DLIBXSLT_PYTHON_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/lib/site-packages") list(APPEND FEATURE_OPTIONS_DEBUG "-DLIBXSLT_PYTHON_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/lib/site-packages") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBXSLT_WITH_TESTS:BOOL=OFF OPTIONS_RELEASE ${FEATURE_OPTIONS_RELEASE} -DLIBXSLT_WITH_XSLT_DEBUG:BOOL=OFF -DLIBXSLT_WITH_DEBUGGER:BOOL=OFF OPTIONS_DEBUG ${FEATURE_OPTIONS_DEBUG} -DLIBXSLT_WITH_XSLT_DEBUG:BOOL=ON -DLIBXSLT_WITH_DEBUGGER:BOOL=ON ) vcpkg_cmake_install() file(GLOB config_path RELATIVE "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}/lib/cmake/libxslt-*") vcpkg_cmake_config_fixup(CONFIG_PATH "${config_path}") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/xsltConf.sh" "${CURRENT_PACKAGES_DIR}/debug/lib/xsltConf.sh") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/libxslt") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/xslt-config" "${CURRENT_PACKAGES_DIR}/tools/libxslt/xslt-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/libxslt/xslt-config" [[$(cd "$(dirname "$0")"; pwd -P)/..]] [[$(cd "$(dirname "$0")/../.."; pwd -P)]]) if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/libxslt/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/xslt-config" "${CURRENT_PACKAGES_DIR}/tools/libxslt/debug/xslt-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/libxslt/debug/xslt-config" [[$(cd "$(dirname "$0")"; pwd -P)/..]] [[$(cd "$(dirname "$0")/../../../debug"; pwd -P)]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/libxslt/debug/xslt-config" [[${prefix}/include]] [[${prefix}/../include]]) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libxslt/xsltconfig.h" "#define LIBXSLT_DEFAULT_PLUGINS_PATH() \"${CURRENT_INSTALLED_DIR}/lib/libxslt-plugins\"" "" IGNORE_UNCHANGED) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES xsltproc AUTO_CLEAN) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libxslt/xsltexports.h" "ifdef LIBXSLT_STATIC" "if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libexslt/exsltexports.h" "ifdef LIBEXSLT_STATIC" "if 1") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libxslt.pc" " -lxslt" " -llibxslt") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libexslt.pc" " -lexslt" " -llibexslt") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libxslt.pc" " -lxslt" " -llibxslt") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libexslt.pc" " -lexslt" " -llibexslt") endif() endif() 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) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libxslt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright") ================================================ FILE: ports/libxslt/python3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fb352475..75bd44a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,6 +63,11 @@ if(LIBXSLT_WITH_PYTHON) check_symbol_exists(F_GETFL fcntl.h HAVE_F_GETFL) if(WIN32 OR (HAVE_UNISTD_H AND HAVE_F_GETFL)) find_package(Python COMPONENTS Interpreter Development REQUIRED) + elseif(1) + find_package(Python3 COMPONENTS Interpreter Development REQUIRED) + add_library(Python::Python ALIAS Python3::Python) + set(Python_EXECUTABLE ${Python3_EXECUTABLE}) + set(Python_SITEARCH ${Python3_SITEARCH}) else() find_package(Python2 COMPONENTS Interpreter Development REQUIRED) add_library(Python::Python ALIAS Python2::Python) ================================================ FILE: ports/libxslt/skip-install-docs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fb352475..23fe90f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -474,12 +474,14 @@ if(LIBXSLT_WITH_PYTHON) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxslt.py DESTINATION ${LIBXSLT_PYTHON_INSTALL_DIR} COMPONENT runtime) endif() +if(VCPKG_INSTALL_DOCS) install(FILES libexslt/libexslt.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 COMPONENT documentation) install(FILES libxslt/libxslt.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 COMPONENT documentation) if(LIBXSLT_WITH_PROGRAMS) install(FILES doc/xsltproc.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT documentation) endif() install(DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/libxslt COMPONENT documentation PATTERN Makefile.* EXCLUDE) +endif() if(LIBXSLT_WITH_CRYPTO AND NOT WIN32) install(FILES FindGcrypt.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libxslt-${PROJECT_VERSION} COMPONENT development) ================================================ FILE: ports/libxslt/usage ================================================ The package libxslt is compatible with built-in CMake targets: # xslt library find_package(LibXslt REQUIRED) target_link_libraries(main PRIVATE LibXslt::LibXslt) # exslt library find_package(LibXslt REQUIRED) target_link_libraries(main PRIVATE LibXslt::LibExslt) In order to use modules, you must set environment variable LIBXSLT_PLUGINS_PATH at runtime. ================================================ FILE: ports/libxslt/vcpkg-cmake-wrapper.cmake ================================================ list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") _find_package(${ARGS} CONFIG) ================================================ FILE: ports/libxslt/vcpkg.json ================================================ { "name": "libxslt", "version": "1.1.45", "description": "Libxslt is a XSLT library implemented in C for XSLT 1.0 and most of EXSLT", "homepage": "https://github.com/GNOME/libxslt", "license": null, "supports": "!uwp", "dependencies": [ { "name": "libxml2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "profiler", "thread" ], "features": { "crypto": { "description": "Build with crypto support", "supports": "!windows", "dependencies": [ "libgcrypt" ] }, "plugins": { "description": "(deprecated)", "supports": "!static" }, "profiler": { "description": "Build with profiling support" }, "python": { "description": "Builds with python support", "supports": "!windows", "dependencies": [ { "name": "libxslt", "default-features": false, "features": [ "profiler" ] }, "python3" ] }, "thread": { "description": "Enable multi-threading support" }, "tools": { "description": "Build the utilities" } } } ================================================ FILE: ports/libxt/add-missing-process-h.patch ================================================ diff --git a/src/Shell.c b/src/Shell.c index fcf10a5..67e24bf 100644 --- a/src/Shell.c +++ b/src/Shell.c @@ -90,6 +90,9 @@ in this Software without prior written authorization from The Open Group. #ifdef HAVE_UNISTD_H #include #endif +#ifdef _WIN32 +#include +#endif // _WIN32 #ifdef EDITRES #include ================================================ FILE: ports/libxt/cc_for_build.patch ================================================ diff --git a/Makefile.am b/Makefile.am index f8d5a6b72..47f847bbd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,7 +19,7 @@ # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -SUBDIRS = util src include man specs test +SUBDIRS = src include man specs test ACLOCAL_AMFLAGS = -I m4 diff --git a/src/Makefile.am b/src/Makefile.am index a26e10d7a..e8a520a2f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -104,5 +104,5 @@ $(BUILT_SOURCE): $(top_builddir)/util/makestrs$(EXEEXT) $(AM_V_at)cp Shell.h $(top_builddir)/include/X11 $(AM_V_at)rm StringDefs.h Shell.h -$(top_builddir)/util/makestrs$(EXEEXT) : - $(am__cd) $(@D) && $(MAKE) $(AM_MAKEFLAGS) $(@F) +# $(top_builddir)/util/makestrs$(EXEEXT) : +# $(am__cd) $(@D) && $(MAKE) $(AM_MAKEFLAGS) $(@F) ================================================ FILE: ports/libxt/getcwd.patch ================================================ diff --git a/src/Converters.c b/src/Converters.c index 4c2762356..5376a34fb 100644 --- a/src/Converters.c +++ b/src/Converters.c @@ -82,6 +82,9 @@ in this Software without prior written authorization from The Open Group. #include #include /* for StringToDirectoryString */ +#ifdef _MSC_VER +#include +#endif #define IsNewline(str) ((str) == '\n') #define IsWhitespace(str) ((str)== ' ' || (str) == '\t') ================================================ FILE: ports/libxt/globals.patch ================================================ diff --git a/util/StrDefs.ct b/util/StrDefs.ct index b597b2051..b682255ad 100644 --- a/util/StrDefs.ct +++ b/util/StrDefs.ct @@ -46,6 +46,8 @@ SOFTWARE. ******************************************************************/ #define Const const +#include "StringDefs.h" +#include "Shell.h" <<>> diff --git a/util/StrDefs.ht b/util/StrDefs.ht index 2ce20562f..ceab2610f 100644 --- a/util/StrDefs.ht +++ b/util/StrDefs.ht @@ -52,6 +52,18 @@ SOFTWARE. #define _XtStringDefs_h_Const const #endif +#ifndef XT_EXTERN_API +# if defined(_MSC_VER) && defined(XT_DLL_EXPORTS) +# ifdef XT_BUILD +# define XT_EXTERN_API extern __declspec(dllexport) +# else +# define XT_EXTERN_API extern __declspec(dllimport) +# endif +# else +# define XT_EXTERN_API extern +# endif +#endif + <<>> #ifndef XTSTRINGDEFINES diff --git a/util/string.list b/util/string.list index 49ba7476e..753c592b3 100644 --- a/util/string.list +++ b/util/string.list @@ -6,7 +6,7 @@ #prefix Xt #feature XTSTRINGDEFINES -#externref extern +#externref XT_EXTERN_API #externdef ! note that the trailing space is required in the #externdef line. #ctmpl util/StrDefs.ct diff --git a/util/Shell.ht b/util/Shell.ht index 500e0fd75..ac8fc2a2e 100644 --- a/util/Shell.ht +++ b/util/Shell.ht @@ -64,6 +64,18 @@ SOFTWARE. #define _XtShell_h_Const const #endif +#ifndef XT_EXTERN_API +# if defined(_MSC_VER) && defined(XT_DLL_EXPORTS) +# ifdef XT_BUILD +# define XT_EXTERN_API extern __declspec(dllexport) +# else +# define XT_EXTERN_API extern __declspec(dllimport) +# endif +# else +# define XT_EXTERN_API extern +# endif +#endif + <<>> #ifndef XTSTRINGDEFINES diff --git a/include/X11/Intrinsic.h b/include/X11/Intrinsic.h index 559697aa0..d11eb0955 100644 --- a/include/X11/Intrinsic.h +++ b/include/X11/Intrinsic.h @@ -106,7 +106,18 @@ typedef char *String; #define externalref globalref #define externaldef(psect) globaldef {"psect"} noshare #else -#define externalref extern +#ifndef XT_EXTERN_API +# if defined(_MSC_VER) && defined(XT_DLL_EXPORTS) +# ifdef XT_BUILD +# define XT_EXTERN_API extern __declspec(dllexport) +# else +# define XT_EXTERN_API extern __declspec(dllimport) +# endif +# else +# define XT_EXTERN_API extern +# endif +#endif +#define externalref XT_EXTERN_API #define externaldef(psect) #endif /* VMS */ ================================================ FILE: ports/libxt/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Downstream uses &widgetClassRec in a const context which doesn't work # if this is a dynamic library since the memory adress is only known at runtime endif() if(VCPKG_CROSSCOMPILING) set(PATCHES cc_for_build.patch) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxt REF "libXt-${VERSION}" SHA512 7cb22be9706bd7d089e84c09a99597f730ca858a9f8134d2741916b28cd4786e236beaad568c8b7ab8cdcfdea1c49140cefac528244bab8c94d48dc4729267e8 HEAD_REF master PATCHES windows_build.patch globals.patch getcwd.patch add-missing-process-h.patch ${PATCHES} ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") string(APPEND VCPKG_C_FLAGS " -DXT_BUILD") string(APPEND VCPKG_CXX_FLAGS " -DXT_BUILD") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) string(APPEND VCPKG_C_FLAGS " -DXT_DLL_EXPORTS") string(APPEND VCPKG_CXX_FLAGS " -DXT_DLL_EXPORTS") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) z_vcpkg_get_cmake_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") vcpkg_find_acquire_program(CLANG) cmake_path(GET CLANG PARENT_PATH CLANG_PARENT_PATH) set(CLANG_CL "${CLANG_PARENT_PATH}/clang-cl.exe") file(READ "${cmake_vars_file}" contents) string(APPEND contents "\nset(VCPKG_DETECTED_CMAKE_C_COMPILER \"${CLANG_CL}\")") string(APPEND contents "\nset(VCPKG_DETECTED_CMAKE_CXX_COMPILER \"${CLANG_CL}\")") if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) string(APPEND contents "\nstring(APPEND VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG \" -m32\")") string(APPEND contents "\nstring(APPEND VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE \" -m32\")") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) string(APPEND contents "\nstring(PREPEND VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG \"--target=arm64-pc-win32 \")") string(APPEND contents "\nstring(PREPEND VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE \"--target=arm64-pc-win32 \")") endif() file(WRITE "${cmake_vars_file}" "${contents}") endif() set(cmake_vars_file "${cmake_vars_file}" CACHE INTERNAL "") # Don't run z_vcpkg_get_cmake_vars twice set(OPTIONS --disable-selective-werror) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG OPTIONS --with-xfile-search-path=X11 --with-appdefaultdir=share/X11/app-defaults --enable-malloc0returnsnull=yes xorg_cv_malloc0_returns_null=yes ${OPTIONS} ) if(VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/makestrs${VCPKG_HOST_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/util/") if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/makestrs${VCPKG_HOST_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/util/") endif() endif() vcpkg_install_make() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/StringDefs.h" "defined(XT_DLL_EXPORTS)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/Shell.h" "defined(XT_DLL_EXPORTS)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/Intrinsic.h" "defined(XT_DLL_EXPORTS)" "1") # XTSTRINGDEFINES is required since the "strings" are often used in a const context which doesn't work if they are adresses of a global array in another dll vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/StringDefs.h" "#define _XtStringDefs_h_" "#define _XtStringDefs_h_\n#define XTSTRINGDEFINES") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/X11/Shell.h" "#define _XtShell_h" "#define _XtShell_h\n#define XTSTRINGDEFINES") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xt.pc" " -lXt" " -lXt -lws2_32") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xt.pc" " -lXt" " -lXt -lws2_32") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/util/makestrs${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/libxt/vcpkg.json ================================================ { "name": "libxt", "version": "1.3.0", "description": "X Toolkit Intrinsics library", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxt", "license": null, "dependencies": [ "bzip2", "glib", "libice", "libsm", "libx11", { "name": "libxt", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libxt/windows_build.patch ================================================ diff --git a/include/X11/Intrinsic.h b/include/X11/Intrinsic.h index cf8d3fe41..559697aa0 100644 --- a/include/X11/Intrinsic.h +++ b/include/X11/Intrinsic.h @@ -50,6 +50,10 @@ in this Software without prior written authorization from The Open Group. #ifndef _XtIntrinsic_h #define _XtIntrinsic_h +#ifdef WIN32 +#define _WILLWINSOCK_ +#endif + #include #include #include diff --git a/include/X11/IntrinsicI.h b/include/X11/IntrinsicI.h index a8b7f48cf..99c5349e7 100644 --- a/include/X11/IntrinsicI.h +++ b/include/X11/IntrinsicI.h @@ -48,11 +48,12 @@ SOFTWARE. #ifndef _XtintrinsicI_h #define _XtintrinsicI_h -#include "Xtos.h" -#include "IntrinsicP.h" #ifdef WIN32 #define _WILLWINSOCK_ #endif + +#include "Xtos.h" +#include "IntrinsicP.h" #include #include "Object.h" diff --git a/src/Convert.c b/src/Convert.c index 9b2d465b3..5c89850f1 100644 --- a/src/Convert.c +++ b/src/Convert.c @@ -71,6 +71,9 @@ in this Software without prior written authorization from The Open Group. #ifdef HAVE_CONFIG_H #include #endif +#ifdef _MSC_VER +#include +#endif #include "IntrinsicI.h" #include "StringDefs.h" #include "Intrinsic.h" diff --git a/src/Core.c b/src/Core.c index d728a9286..5ee0d2fe8 100644 --- a/src/Core.c +++ b/src/Core.c @@ -80,6 +80,9 @@ in this Software without prior written authorization from The Open Group. #include "RectObjP.h" #include "ThreadsI.h" #include "StringDefs.h" +#ifndef None +#define None 0L +#endif /****************************************************************** * diff --git a/src/Error.c b/src/Error.c index 4bf4713e5..a64784a6f 100644 --- a/src/Error.c +++ b/src/Error.c @@ -74,7 +74,9 @@ in this Software without prior written authorization from The Open Group. #include "IntrinsicI.h" #include #include - +#ifndef None +#define None 0L +#endif /* The error handlers in the application context aren't used since we can't come up with a uniform way of using them. If you can, define GLOBALERRORS to be FALSE (or 0). */ diff --git a/src/Event.c b/src/Event.c index dadcedeb8..1eafc0143 100644 --- a/src/Event.c +++ b/src/Event.c @@ -74,7 +74,9 @@ in this Software without prior written authorization from The Open Group. #include "IntrinsicI.h" #include "Shell.h" #include "StringDefs.h" - +#ifndef None +#define None 0L +#endif typedef struct _XtEventRecExt { int type; XtPointer select_data[1]; /* actual dimension is [mask] */ diff --git a/src/GCManager.c b/src/GCManager.c index 6031248e5..205f1cbe3 100644 --- a/src/GCManager.c +++ b/src/GCManager.c @@ -72,7 +72,9 @@ in this Software without prior written authorization from The Open Group. #include #endif #include "IntrinsicI.h" - +#ifndef None +#define None 0L +#endif typedef struct _GCrec { unsigned char screen; /* Screen for GC */ unsigned char depth; /* Depth for GC */ diff --git a/src/Geometry.c b/src/Geometry.c index 3704cb63d..2f00cdcca 100644 --- a/src/Geometry.c +++ b/src/Geometry.c @@ -75,6 +75,10 @@ in this Software without prior written authorization from The Open Group. #include "ShellP.h" #include "ShellI.h" +#ifndef None +#define None 0L +#endif + static void ClearRectObjAreas(RectObj r, XWindowChanges *old) { diff --git a/src/Keyboard.c b/src/Keyboard.c index da6fa11aa..7d9271f45 100644 --- a/src/Keyboard.c +++ b/src/Keyboard.c @@ -80,6 +80,10 @@ in this Software without prior written authorization from The Open Group. #include "PassivGraI.h" #include "EventI.h" +#ifndef None +#define None 0L +#endif + #define _GetWindowedAncestor(w) (XtIsWidget(w) ? w : _XtWindowedAncestor(w)) /* InActiveSubtree cache of the current focus source and its ancestors */ diff --git a/util/makestrs.c b/util/makestrs.c index 4d5c0a6b7..b64e42eea 100644 --- a/util/makestrs.c +++ b/util/makestrs.c @@ -29,7 +29,9 @@ in this Software without prior written authorization from The Open Group. #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif typedef struct _TableEnt { struct _TableEnt *next; diff --git a/src/Initialize.c b/src/Initialize.c index 8ae54b47c..765479603 100644 --- a/src/Initialize.c +++ b/src/Initialize.c @@ -246,7 +246,7 @@ _XtInherit(void) * cygwin-xfree: http://www.cygwin.com/ml/cygwin-xfree/2003-10/msg00000.html */ -#ifdef __x86_64__ +#if defined(__x86_64__) || defined(_M_X64) asm(".section .trampoline, \"dwx\" \n\ .globl _XtInherit \n\ _XtInherit: \n\ diff --git a/src/Shell.c b/src/Shell.c index 07713cc25..fcf10a5e2 100644 --- a/src/Shell.c +++ b/src/Shell.c @@ -87,7 +87,9 @@ in this Software without prior written authorization from The Open Group. #include #include #include +#ifdef HAVE_UNISTD_H #include +#endif #ifdef EDITRES #include ================================================ FILE: ports/libxtst/fix-configure.patch ================================================ diff --git a/configure.ac b/configure.ac index e0d2256..6113dfd 100644 --- a/configure.ac +++ b/configure.ac @@ -26,7 +26,6 @@ AC_INIT([libXtst], [1.2.5], [https://gitlab.freedesktop.org/xorg/lib/libxtst/-/issues], [libXtst]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIRS([m4]) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) ================================================ FILE: ports/libxtst/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxtst" REF "libXtst-${VERSION}" SHA512 d48df671f212a1784ef1aefe69b16bc42395ff4ae083b7087dc55827fa6f8635b17adb5e26d976c8f8c7f02aeeb51f66c9808a037ef783c44139483c1c76ce3e HEAD_REF master PATCHES fix-configure.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/libxtst/vcpkg.json ================================================ { "name": "libxtst", "version": "1.2.5", "port-version": 1, "description": "Xlib-based library for XTEST & RECORD extensions", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxtst", "license": null, "dependencies": [ "libx11", "libxext", "libxi", { "name": "vcpkg-make", "host": true }, "xproto" ] } ================================================ FILE: ports/libxv/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXV_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXv-${VERSION}.tar.xz" FILENAME "libXv-${VERSION}.tar.xz" SHA512 80d7a11e6415fbe0fc50c3c2a1abf8f0f2ec38446c9c8d88ff48875cd94b8949cb1028f2ab37476c4b25cbd7eac34dde9132dd998c4e04ea576b95ae411ba946 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXV_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxv/vcpkg.json ================================================ { "name": "libxv", "version": "1.0.13", "port-version": 1, "description": "Xlib-based library for the X Video (Xv) extension to the X Window System", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxv", "license": null, "dependencies": [ "libx11", "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/libxxf86vm/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_download_distfile( LIBXXF86VM_ARCHIVE URLS "https://www.x.org/releases/individual/lib/libXxf86vm-${VERSION}.tar.xz" FILENAME "libXxf86vm-${VERSION}.tar.xz" SHA512 d1051c9698a884d86e5beb00d5ee148d2b5ded7fd05168861f722b89643ad9b7f7d220f0cbb64b290a69faf9a6630181533aaddb01c9c68b46f1e5625030f094 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${LIBXXF86VM_ARCHIVE}" ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if(VCPKG_CROSSCOMPILING) set(OPTIONS --enable-malloc0returnsnull=yes xorg_cv_malloc0_returns_null=yes) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libxxf86vm/vcpkg.json ================================================ { "name": "libxxf86vm", "version": "1.1.7", "port-version": 1, "description": "Xlib-based library for the XFree86-VidMode X extension", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxxf86vm", "license": null, "dependencies": [ "libxext", { "name": "vcpkg-make", "host": true }, "xorg-macros", "xproto" ] } ================================================ FILE: ports/libyaml/export-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f81148..8006536 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,3 +158,11 @@ install( FILES ${config_version_file} DESTINATION ${INSTALL_CMAKE_DIR} COMPONENT Development ) + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix ${CMAKE_INSTALL_PREFIX}) +set(includedir ${CMAKE_INSTALL_PREFIX}/include) +set(libdir ${CMAKE_INSTALL_PREFIX}/lib) +set(PACKAGE_VERSION 0.1) +configure_file(yaml-0.1.pc.in ${PROJECT_BINARY_DIR}/yaml-0.1.pc @ONLY) +install(FILES ${PROJECT_BINARY_DIR}/yaml-0.1.pc DESTINATION lib/pkgconfig) ================================================ FILE: ports/libyaml/fix-POSIX_name.patch ================================================ diff --git a/src/api.c b/src/api.c index e793b08..6f16fc5 100644 --- a/src/api.c +++ b/src/api.c @@ -63,7 +63,7 @@ yaml_strdup(const yaml_char_t *str) if (!str) return NULL; - return (yaml_char_t *)strdup((char *)str); + return (yaml_char_t *)_strdup((char *)str); } /* ================================================ FILE: ports/libyaml/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) set(PATCHES fix-POSIX_name.patch) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yaml/libyaml REF 2c891fc7a770e8ba2fec34fc6b545c672beb37e6 # 0.2.5 SHA512 7cdde7b48c937777b851747f7e0b9a74cb7da30173e09305dad931ef83c3fcee3e125e721166690fe6a0987ba897564500530e5518e4b66b1c9b1db8900bf320 HEAD_REF master PATCHES ${PATCHES} export-pkgconfig.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DINSTALL_CMAKE_DIR=share/yaml ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME yaml CONFIG_PATH share/yaml) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/config.h" "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/License" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/libyaml/vcpkg.json ================================================ { "name": "libyaml", "version": "0.2.5", "port-version": 5, "description": "A C library for parsing and emitting YAML.", "homepage": "https://github.com/yaml/libyaml", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libyuv/cmake.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c6cce8a6..799cabde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ cmake_minimum_required( VERSION 3.16 ) project ( YUV C CXX ) # "C" is required even for C++ projects +option( BUILD_TOOLS "Build tools" OFF ) option( UNIT_TEST "Built unit tests" OFF ) include(CheckCSourceCompiles) @@ -184,6 +185,8 @@ if(WIN32) set_target_properties( ${ly_lib_shared} PROPERTIES IMPORT_PREFIX "lib" ) endif() +if (BUILD_TOOLS) + # this creates the cpuid tool add_executable ( cpuid ${ly_base_dir}/util/cpuid.c ) target_link_libraries ( cpuid ${ly_lib_static} ) @@ -196,10 +199,13 @@ target_link_libraries ( yuvconvert ${ly_lib_static} ) add_executable ( yuvconstants ${ly_base_dir}/util/yuvconstants.c ) target_link_libraries ( yuvconstants ${ly_lib_static} ) +endif() + find_package ( JPEG ) if (JPEG_FOUND) include_directories( ${JPEG_INCLUDE_DIR} ) - target_link_libraries( ${ly_lib_shared} ${JPEG_LIBRARY} ) + target_link_libraries( ${ly_lib_static} PRIVATE JPEG::JPEG ) + target_link_libraries( ${ly_lib_shared} PRIVATE JPEG::JPEG ) add_definitions( -DHAVE_JPEG ) endif() @@ -246,9 +252,20 @@ endif() # install the conversion tool, .so, .a, and all the header files -install ( TARGETS yuvconvert DESTINATION bin ) -install ( TARGETS ${ly_lib_static} DESTINATION lib ) -install ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib ) +if (BUILD_TOOLS) + install(TARGETS yuvconvert yuvconstants) +endif() +if(BUILD_SHARED_LIBS) + target_include_directories(${ly_lib_shared} PUBLIC $) + install(TARGETS ${ly_lib_shared} EXPORT libyuv-targets) + set_target_properties(${ly_lib_shared} PROPERTIES EXPORT_NAME "${ly_lib_static}") # vcpkg legacy + add_definitions(-DLIBYUV_BUILDING_SHARED_LIBRARY) +else() + target_include_directories(${ly_lib_static} PUBLIC $) + install(TARGETS ${ly_lib_static} EXPORT libyuv-targets) + set_target_properties(${ly_lib_shared} PROPERTIES EXCLUDE_FROM_ALL 1) +endif() +install(EXPORT libyuv-targets DESTINATION share/libyuv) install ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include ) # create the .deb and .rpm packages using cpack ================================================ FILE: ports/libyuv/libyuv-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(JPEG) set(libyuv_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include") include("${CMAKE_CURRENT_LIST_DIR}/libyuv-targets.cmake") ================================================ FILE: ports/libyuv/portfile.cmake ================================================ vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://chromium.googlesource.com/libyuv/libyuv REF d98915a654d3564e4802a0004add46221c4e4348 # Check https://chromium.googlesource.com/libyuv/libyuv/+/refs/heads/main/include/libyuv/version.h for a version! PATCHES cmake.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES yuvconvert yuvconstants AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libyuv/basic_types.h" "defined(LIBYUV_USING_SHARED_LIBRARY)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/libyuv-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" [[ Attention: You are using MSVC to compile libyuv. This build won't compile any of the acceleration codes, which results in a very slow library. See workarounds: https://github.com/microsoft/vcpkg/issues/28446 ]]) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libyuv/usage ================================================ libyuv provides CMake targets: # Unofficial config package and target from vcpkg find_package(libyuv CONFIG REQUIRED) target_link_libraries(main PRIVATE yuv) ================================================ FILE: ports/libyuv/vcpkg.json ================================================ { "name": "libyuv", "version": "1916", "description": "libyuv is an open source project that includes YUV scaling and conversion functionality", "homepage": "https://chromium.googlesource.com/libyuv/libyuv", "license": null, "dependencies": [ "libjpeg-turbo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "tools": { "description": "build command line tool", "supports": "!android & !ios & !xbox & !wasm32" } } } ================================================ FILE: ports/libzen/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MediaArea/ZenLib REF "v${VERSION}" SHA512 4232eb6e73e9b380f6fe2ce3cfeb9fe343936362a35ca8d088c783dc6277332df762d689efe023e3f1418c2e6d2629e0b82ac93df9cce3ae0ab346c2ed1911f1 HEAD_REF master ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Project/CMake" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME zenlib) vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE AND VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libzen.pc" " -lzen" " -lzend") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/libzen/vcpkg.json ================================================ { "name": "libzen", "version": "0.4.41", "description": "ZenLib is a C++ utility library for easiest cross-platform development", "homepage": "https://github.com/MediaArea/ZenLib", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/libzim/cross-builds.diff ================================================ diff --git a/meson.build b/meson.build index 92bb537..7183df3 100644 --- a/meson.build +++ b/meson.build @@ -1,9 +1,9 @@ project('libzim', ['c', 'cpp'], version : '9.4.1', license : 'GPL2', - default_options : ['c_std=c11', 'cpp_std=c++17', 'werror=true']) + default_options : ['c_std=c11', 'cpp_std=c++17']) -if build_machine.system() != 'windows' +if host_machine.system() != 'windows' or meson.get_compiler('cpp').get_id() == 'gcc' add_project_arguments('-D_LARGEFILE64_SOURCE=1', '-D_FILE_OFFSET_BITS=64', language: 'cpp') endif @@ -68,7 +68,7 @@ else endif compiler = meson.get_compiler('cpp') -if (compiler.get_id() == 'gcc' and build_machine.system() == 'linux') or host_machine.system() == 'freebsd' +if (compiler.get_id() == 'gcc' and host_machine.system() == 'linux') or host_machine.system() == 'freebsd' # C++ std::thread is implemented using pthread on linux by gcc thread_dep = dependency('threads') else ================================================ FILE: ports/libzim/dllexport.diff ================================================ diff --git a/include/zim/zim.h b/include/zim/zim.h index 80e8596..631cfab 100644 --- a/include/zim/zim.h +++ b/include/zim/zim.h @@ -35,8 +35,10 @@ #include -#if defined(_MSC_VER) && defined(LIBZIM_EXPORT_DLL) +#if defined(_WIN32) && defined(LIBZIM_EXPORT_DLL) #define LIBZIM_API __declspec(dllexport) +#elif defined(_WIN32) && defined(LIBZIM_IMPORT_DLL) + #define LIBZIM_API __declspec(dllimport) #else #define LIBZIM_API #endif ================================================ FILE: ports/libzim/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openzim/libzim REF "${VERSION}" SHA512 acf11e4fe980adc1c0be760dab4d0f5a8d3da20579d918f627d439acc3266f12bae3f033c2f3f98009f6e1a20fc35190ca625b46fc581cb801594a8943e83d9d HEAD_REF main PATCHES cross-builds.diff dllexport.diff subdirs.diff ) set(EXTRA_OPTIONS "") if(NOT "xapian" IN_LIST FEATURES) list(APPEND EXTRA_OPTIONS "-Dwith_xapian=false") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dexamples=false ${EXTRA_OPTIONS} ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zim/zim.h" "defined(LIBZIM_IMPORT_DLL)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/libzim/subdirs.diff ================================================ diff --git a/meson.build b/meson.build index d946c49..eded01d 100644 --- a/meson.build +++ b/meson.build @@ -90,6 +90,7 @@ subdir('include') subdir('scripts') subdir('static') subdir('src') +if false if get_option('examples') subdir('examples') endif @@ -97,6 +98,7 @@ subdir('test') if get_option('doc') subdir('docs') endif +endif pkg_mod = import('pkgconfig') pkg_mod.generate(libraries : libzim, ================================================ FILE: ports/libzim/vcpkg.json ================================================ { "name": "libzim", "version": "9.4.1", "description": "The Libzim is the reference implementation for the ZIM file format. It's a software library to read and write ZIM files on many systems and architectures. More information about the ZIM format and the openZIM project at https://openzim.org/.", "homepage": "https://github.com/openzim/libzim", "license": "GPL-2.0-or-later", "supports": "!android & !uwp & !xbox", "dependencies": [ "icu", "liblzma", { "name": "vcpkg-tool-meson", "host": true }, "zstd" ], "features": { "xapian": { "description": "Enable xapian support", "dependencies": [ "xapian" ] } } } ================================================ FILE: ports/libzip/config-vars.diff ================================================ diff --git a/libzip-config.cmake.in b/libzip-config.cmake.in index 80615303..d3c73cc4 100644 --- a/libzip-config.cmake.in +++ b/libzip-config.cmake.in @@ -1,17 +1,17 @@ @PACKAGE_INIT@ # We need to supply transitive dependencies if this config is for a static library -set(IS_SHARED @BUILD_SHARED_LIBS@) +set(IS_SHARED "@BUILD_SHARED_LIBS@") if (NOT IS_SHARED) include(CMakeFindDependencyMacro) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/modules") - set(ENABLE_BZIP2 @BZIP2_FOUND@) - set(ENABLE_LZMA @LIBLZMA_FOUND@) - set(ENABLE_ZSTD @ZSTD_FOUND@) - set(ENABLE_GNUTLS @GNUTLS_FOUND@) - set(ENABLE_MBEDTLS @MBEDTLS_FOUND@) - set(ENABLE_OPENSSL @OPENSSL_FOUND@) + set(ENABLE_BZIP2 "@BZIP2_FOUND@") + set(ENABLE_LZMA "@LIBLZMA_FOUND@") + set(ENABLE_ZSTD "@ZSTD_FOUND@") + set(ENABLE_GNUTLS "@GNUTLS_FOUND@") + set(ENABLE_MBEDTLS "@MBEDTLS_FOUND@") + set(ENABLE_OPENSSL "@OPENSSL_FOUND@") find_dependency(ZLIB 1.1.2) if(ENABLE_BZIP2) ================================================ FILE: ports/libzip/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b79873b0..2e787bbb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,7 @@ if(ENABLE_GNUTLS) find_package(GnuTLS) endif() if(ENABLE_MBEDTLS) - find_package(MbedTLS 1.0) + find_package(MbedTLS CONFIG) endif() if(ENABLE_OPENSSL) find_package(OpenSSL) @@ -477,8 +477,6 @@ if(LIBZIP_DO_INSTALL) # Install Find* modules, they are required by libzip-config.cmake to resolve dependencies install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindNettle.cmake - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Findzstd.cmake - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindMbedTLS.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libzip/modules ) diff --git a/libzip-config.cmake.in b/libzip-config.cmake.in index d3c73cc4..aa150916 100644 --- a/libzip-config.cmake.in +++ b/libzip-config.cmake.in @@ -31,7 +31,7 @@ if (NOT IS_SHARED) find_dependency(GnuTLS) endif() if(ENABLE_MBEDTLS) - find_dependency(MbedTLS 1.0) + find_dependency(MbedTLS CONFIG) endif() if(ENABLE_OPENSSL) find_dependency(OpenSSL) ================================================ FILE: ports/libzip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nih-at/libzip REF "v${VERSION}" SHA512 940a6e1145d6e0f2bd40577b4fa13f9c8e2115b267fb632dfb2443998a67d3e5de9a2026df5380c9b1b2fb181967d2f4dfd0929a9970d8bb196079a153a17bcc HEAD_REF master PATCHES config-vars.diff # https://github.com/nih-at/libzip/pull/497 dependencies.diff use-requires.patch ) file(REMOVE "${SOURCE_PATH}/cmake/Findzstd.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindMbedTLS.cmake") # By default options, find_package is called and capabilities are subject to the result. # However, AES support backends are alternatives, and tried in order. The port shouldn't # offer dependendencies, but now they are here. Let opt-in features override defaults. if("mbedtls" IN_LIST FEATURES) message(STATUS "Selecting the mbedtls AES backend.") list(REMOVE_ITEM FEATURES default-aes openssl) elseif("openssl" IN_LIST FEATURES) message(STATUS "Selecting the openssl AES backend.") list(REMOVE_ITEM FEATURES default-aes) elseif("default-aes" IN_LIST FEATURES) message(STATUS "Selecting the system AES backend.") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES # compression bzip2 VCPKG_LOCK_FIND_PACKAGE_BZip2 liblzma VCPKG_LOCK_FIND_PACKAGE_LibLZMA zstd VCPKG_LOCK_FIND_PACKAGE_zstd # AES default-aes ENABLE_COMMONCRYPTO default-aes ENABLE_WINDOWS_CRYPTO openssl ENABLE_OPENSSL openssl VCPKG_LOCK_FIND_PACKAGE_OpenSSL mbedtls ENABLE_MBEDTLS mbedtls VCPKG_LOCK_FIND_PACKAGE_MbedTLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_DOC=OFF -DBUILD_EXAMPLES=OFF -DBUILD_REGRESS=OFF -DBUILD_TOOLS=OFF -DENABLE_GNUTLS=OFF MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_MbedTLS VCPKG_LOCK_FIND_PACKAGE_OpenSSL ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libzip") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/libzip/use-requires.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e787bbb..de4159d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -355,6 +355,8 @@ foreach(LIB ${LIBS_PRIVATE}) endif() set(LIBS "${LIBS} -l${LIB}") endforeach() +list(FILTER LIBS EXCLUDE REGEX "::") +if(0) STRING(CONCAT zlib_link_name "-l" ${ZLIB_LINK_LIBRARY_NAME}) string(REGEX REPLACE "-lBZip2::BZip2" "-lbz2" LIBS ${LIBS}) string(REGEX REPLACE "-lLibLZMA::LibLZMA" "-llzma" LIBS ${LIBS}) @@ -365,6 +367,8 @@ string(REGEX REPLACE "-lOpenSSL::Crypto" "-lssl -lcrypto" LIBS ${LIBS}) string(REGEX REPLACE "-lZLIB::ZLIB" ${zlib_link_name} LIBS ${LIBS}) string(REGEX REPLACE "-lGnuTLS::GnuTLS" "-lgnutls" LIBS ${LIBS}) string(REGEX REPLACE "-lNettle::Nettle" "-lnettle" LIBS ${LIBS}) +endif() +list(JOIN REQUIRES " " REQUIRES) configure_file(libzip.pc.in libzip.pc @ONLY) if(LIBZIP_DO_INSTALL) install(FILES ${PROJECT_BINARY_DIR}/libzip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 556b82af..b1fc3b36 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -142,16 +142,19 @@ endif(WIN32) if(HAVE_LIBBZ2) target_sources(zip PRIVATE zip_algorithm_bzip2.c) target_link_libraries(zip PRIVATE BZip2::BZip2) + list(APPEND REQUIRES bzip2) endif() if(HAVE_LIBLZMA) target_sources(zip PRIVATE zip_algorithm_xz.c) target_link_libraries(zip PRIVATE LibLZMA::LibLZMA) + list(APPEND REQUIRES liblzma) endif() if(HAVE_LIBZSTD) target_sources(zip PRIVATE zip_algorithm_zstd.c) target_link_libraries(zip PRIVATE ${zstd_TARGET}) + list(APPEND REQUIRES libzstd) endif() if(HAVE_COMMONCRYPTO) @@ -165,9 +168,11 @@ elseif(HAVE_GNUTLS) elseif(HAVE_OPENSSL) target_sources(zip PRIVATE zip_crypto_openssl.c) target_link_libraries(zip PRIVATE OpenSSL::Crypto) + list(APPEND REQUIRES openssl) elseif(HAVE_MBEDTLS) target_sources(zip PRIVATE zip_crypto_mbedtls.c) target_link_libraries(zip PRIVATE MbedTLS::MbedTLS) + list(APPEND REQUIRES mbedtls) endif() if(HAVE_CRYPTO) @@ -180,6 +185,8 @@ if(SHARED_LIB_VERSIONNING) endif() target_link_libraries(zip PRIVATE ZLIB::ZLIB) +list(APPEND REQUIRES zlib) +set(REQUIRES "${REQUIRES}" PARENT_SCOPE) target_include_directories(zip PUBLIC $ diff --git a/libzip.pc.in b/libzip.pc.in index d51b0ab6..07b3b505 100644 --- a/libzip.pc.in +++ b/libzip.pc.in @@ -9,6 +9,7 @@ zipcmp=${bindir}/zipcmp Name: libzip Description: library for handling zip archives Version: @PROJECT_VERSION@ +Requires.private: @REQUIRES@ Libs: @PKG_CONFIG_RPATH@ -L${libdir} -lzip Libs.private: @LIBS@ Cflags: -I${includedir} ================================================ FILE: ports/libzip/vcpkg.json ================================================ { "name": "libzip", "version": "1.11.4", "description": "A C library for reading, creating, and modifying zip archives.", "homepage": "https://github.com/nih-at/libzip", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "bzip2", "default-aes" ], "features": { "bzip2": { "description": "Support bzip2-compressed zip archives", "dependencies": [ "bzip2" ] }, "default-aes": { "description": "AES (encryption) support using a default backend", "dependencies": [ { "name": "libzip", "default-features": false, "features": [ "openssl" ], "platform": "!(windows | osx)" } ] }, "liblzma": { "description": "Support XZ compressed zip archives using liblzma", "dependencies": [ "liblzma" ] }, "mbedtls": { "description": "AES (encryption) support using mbedtls", "dependencies": [ "mbedtls" ] }, "openssl": { "description": "AES (encryption) support using OpenSSL", "dependencies": [ "openssl" ] }, "zstd": { "description": "Support Zstandard-compressed zip archives", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/libzippp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ctabin/libzippp REF 7e65f6cd173da8f20393d331ceb697482b206edf #v7.1-1.10.1 with CXX std version c++11 SHA512 0076e39f6c1375d61e70dedc5132c48a8191534f2e6aeb042fe0f80c2aa068112e709446b29f84e513bf40ad532816c07155c2bc8ff86114e9c2f45b3f514fc0 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES encryption LIBZIPPP_ENABLE_ENCRYPTION) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIBZIPPP_BUILD_TESTS=OFF OPTIONS_DEBUG -DLIBZIPPP_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH "cmake/libzippp") else() vcpkg_cmake_config_fixup(CONFIG_PATH "share/libzippp") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/libzippp/vcpkg.json ================================================ { "name": "libzippp", "version": "7.1-1.10.1", "description": "Simple basic C++ wrapper around the libzip library. It is meant to be a portable and easy-to-use library for ZIP handling", "homepage": "https://github.com/ctabin/libzippp", "license": "BSD-3-Clause", "dependencies": [ { "name": "libzip", "default-features": false, "features": [ "bzip2" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "encryption": { "description": "Support encryption" } } } ================================================ FILE: ports/licensepp/FindCryptoPP.cmake ================================================ find_path(CRYPTOPP_INCLUDE_DIRS NAMES cryptopp/cryptlib.h) get_filename_component(_prefix_path ${CRYPTOPP_INCLUDE_DIRS} PATH) find_library( CRYPTOPP_LIBRARY_DEBUG NAMES cryptopp-static cryptopp PATHS ${_prefix_path}/debug/lib NO_DEFAULT_PATH ) find_library( CRYPTOPP_LIBRARY_RELEASE NAMES cryptopp-static cryptopp PATHS ${_prefix_path}/lib NO_DEFAULT_PATH ) unset(_prefix_path) include(SelectLibraryConfigurations) select_library_configurations(CRYPTOPP) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( CryptoPP REQUIRED_VARS CRYPTOPP_LIBRARIES CRYPTOPP_INCLUDE_DIRS ) ================================================ FILE: ports/licensepp/add-stdint.diff ================================================ diff --git a/include/license++/license.h b/include/license++/license.h index eab392d..67b405e 100644 --- a/include/license++/license.h +++ b/include/license++/license.h @@ -9,7 +9,7 @@ #ifndef LICENSEPP_License_h #define LICENSEPP_License_h - +#include #include namespace licensepp { ================================================ FILE: ports/licensepp/devendoring.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8581813..46e1565 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,7 @@ include_directories (${CRYPTOPP_INCLUDE_DIRS}) # Ripe (static) set(RIPE_USE_STATIC_LIBS OFF) -find_package(Ripe REQUIRED) +find_package(unofficial-ripe REQUIRED) include_directories (${EXTERNAL_INCLUDE_DIR}) @@ -87,7 +87,7 @@ target_include_directories (licensepp-lib PUBLIC target_link_libraries (licensepp-lib ${CRYPTOPP_LIBRARIES} - ${RIPE_LIBRARY} + unofficial::ripe::ripe ) set_target_properties (licensepp-lib PROPERTIES OUTPUT_NAME "licensepp") ================================================ FILE: ports/licensepp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO amrayn/licensepp REF v${VERSION} SHA512 a27b8e669cff2ce06dfb0b2b6f961406e4c488f4a55fc086754274c719632d53942d88192010b6af8cc46784aee6a7b5c40780792e9d6f0d51ec3da76576f259 HEAD_REF master PATCHES add-stdint.diff remove-werror.diff devendoring.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/FindCryptoPP.cmake" DESTINATION "${SOURCE_PATH}/cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtest=OFF -Dtravis=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/licensepp/remove-werror.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8581813..52b147f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ if (APPLE) endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3 -Wall -Werror -Wno-return-stack-address") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O3 -Wall -Wno-return-stack-address") endif() # Check for cryptopp (static) ================================================ FILE: ports/licensepp/vcpkg.json ================================================ { "name": "licensepp", "version": "1.2.0", "description": "Cross platform software licensing library", "homepage": "https://github.com/amrayn/licensepp", "supports": "!uwp", "dependencies": [ "abumq-ripe", { "name": "cryptopp", "features": [ "pem-pack" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lief/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b9d3701..dc7557fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -313,7 +313,9 @@ else() ${CMAKE_CURRENT_BINARY_DIR}/include/LIEF/third-party/internal/span.hpp) endif() -target_link_libraries(LIB_LIEF PRIVATE lief_spdlog) +find_package(fmt CONFIG REQUIRED) +find_package(spdlog CONFIG REQUIRED) +target_link_libraries(LIB_LIEF PRIVATE fmt::fmt spdlog::spdlog) if(ANDROID AND LIEF_LOGGING) target_link_libraries(LIB_LIEF PUBLIC log) @@ -503,11 +505,11 @@ if(LIEF_INSTALL) endif() install( - TARGETS LIB_LIEF lief_spdlog + TARGETS LIB_LIEF EXPORT LIEFExport ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT libraries INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install( ================================================ FILE: ports/lief/fix-liefconfig-cmake-in.patch ================================================ diff --git a/cmake/LIEFConfig.cmake.in b/cmake/LIEFConfig.cmake.in index 562fda16..220208c7 100644 --- a/cmake/LIEFConfig.cmake.in +++ b/cmake/LIEFConfig.cmake.in @@ -76,7 +76,7 @@ macro(LIEF_load_targets lib_type) return() endif () - if("${lib_type}" STREQUAL "static") + if(1) # Need to find all dependencies even if they're private when LIEF is # compiled statically include(CMakeFindDependencyMacro) @@ -105,6 +105,8 @@ macro(LIEF_load_targets lib_type) find_dependency(tl-expected) endif() + find_dependency(fmt) + check_required_components(lief) endif() # Include the respective targets file ================================================ FILE: ports/lief/fix-vcpkg-includes.patch ================================================ diff --git a/src/BinaryStream/BinaryStream.cpp b/src/BinaryStream/BinaryStream.cpp index 655948f6..cea9ffcd 100644 --- a/src/BinaryStream/BinaryStream.cpp +++ b/src/BinaryStream/BinaryStream.cpp @@ -15,7 +15,7 @@ */ #include "LIEF/BinaryStream/BinaryStream.hpp" #include "LIEF/DWARF/enums.hpp" -#include "third-party/utfcpp.hpp" +#include #include #include diff --git a/src/utils.cpp b/src/utils.cpp index dc3dda28..356d4ad3 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -23,7 +23,7 @@ #include "LIEF/errors.hpp" #include "LIEF/version.h" -#include "third-party/utfcpp.hpp" +#include #include "LIEF/config.h" ================================================ FILE: ports/lief/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lief-project/LIEF REF ${VERSION} SHA512 bd2561c96e85c78835f1c60309a2a57fb526d4828dbd9f3367193bb8605f5c7c4b3f0c995eabf38df3e43586527547cc92700dbe58b46862d52effabf0c41bac HEAD_REF master PATCHES fix-cmakelists.patch fix-liefconfig-cmake-in.patch fix-vcpkg-includes.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/third-party") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "c-api" LIEF_C_API # C API "enable-json" LIEF_ENABLE_JSON # Enable JSON-related APIs "extra-warnings" LIEF_EXTRA_WARNINGS # Enable extra warning from the compiler "logging" LIEF_LOGGING # Enable logging "logging-debug" LIEF_LOGGING_DEBUG # Enable debug logging "use-ccache" LIEF_USE_CCACHE # Use ccache to speed up compilation "oat" LIEF_OAT # Build LIEF with OAT module "dex" LIEF_DEX # Build LIEF with DEX module "vdex" LIEF_VDEX # Build LIEF with VDEX module "art" LIEF_ART # Build LIEF with ART module ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLIEF_EXAMPLES=OFF # Build with external vcpkg dependencies -DLIEF_OPT_MBEDTLS_EXTERNAL=ON -DLIEF_EXTERNAL_SPDLOG=ON -DLIEF_OPT_NLOHMANN_JSON_EXTERNAL=ON -DLIEF_OPT_FROZEN_EXTERNAL=ON -DLIEF_OPT_EXTERNAL_SPAN=ON -DLIEF_OPT_UTFCPP_EXTERNAL=ON -DLIEF_OPT_EXTERNAL_EXPECTED=ON -DLIEF_DISABLE_FROZEN=OFF -DLIEF_DISABLE_EXCEPTIONS=OFF # https://github.com/lief-project/LIEF/blob/0.16.6/src/paging.cpp requires ELF/PE/MACHO in any case -DLIEF_ELF=ON -DLIEF_PE=ON -DLIEF_MACHO=ON "-DLIEF_EXTERNAL_SPAN_DIR=${_VCPKG_INSTALLED_DIR}/${TARGET_TRIPLET}/include/tcb" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/LIEF") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/lief/LIEFConfig.cmake" [[include("${LIEF_${lib_type}_export}")]] [[include("${CMAKE_CURRENT_LIST_DIR}/LIEFExport-${lib_type}.cmake")]] ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lief/vcpkg.json ================================================ { "name": "lief", "version-semver": "0.17.5", "description": "LIEF - Library to Instrument Executable Formats", "homepage": "https://lief.quarkslab.com", "license": "Apache-2.0", "dependencies": [ "fmt", "frozen", "mbedtls", "spdlog", "tcb-span", "tl-expected", "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "art", "dex", "enable-json", "logging", "oat", "vdex" ], "features": { "art": { "description": "Build LIEF with ART module" }, "c-api": { "description": "C API" }, "dex": { "description": "Build LIEF with DEX module" }, "enable-json": { "description": "Enable JSON-related APIs", "dependencies": [ "nlohmann-json" ] }, "extra-warnings": { "description": "Enable extra warning from the compiler" }, "logging": { "description": "Enable logging" }, "logging-debug": { "description": "Enable debug logging" }, "oat": { "description": "Build LIEF with OAT module" }, "use-ccache": { "description": "Use ccache to speed up compilation" }, "vdex": { "description": "Build LIEF with VDEX module" } } } ================================================ FILE: ports/lightgbm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/LightGBM REF v${VERSION} SHA512 f968f984a0881a5eadd898dded367b799b619e3cc80415dec8b623897e84d7e1e1034f20179125354b93759ea1b8a3e334cfa506427442810ef098bc93fd4634 PATCHES vcpkg_lightgbm_use_vcpkg_libs.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gpu USE_GPU openmp USE_OPENMP ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(BUILD_STATIC_LIB "OFF") else() set(BUILD_STATIC_LIB "ON") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_STATIC_LIB=${BUILD_STATIC_LIB} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES lightgbm AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lightgbm/vcpkg.json ================================================ { "name": "lightgbm", "version": "4.5.0", "description": [ "A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms.", "Designed to be distributed and efficient and comes with faster training speeds, higher efficiency, lower memory usage and support of parallel, distributed, and GPU learning." ], "homepage": "https://github.com/microsoft/LightGBM", "license": "Apache-2.0", "supports": "!android & !osx & !uwp", "dependencies": [ "eigen3", "fast-double-parser", "fmt", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "openmp" ], "features": { "gpu": { "description": "GPU support using Boost.Compute", "dependencies": [ "boost-compute", "opencl" ] }, "openmp": { "description": "Support for multi-threading using OpenMP" } } } ================================================ FILE: ports/lightgbm/vcpkg_lightgbm_use_vcpkg_libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3492289b..6284b6e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -115,18 +115,17 @@ if(USE_SWIG) endif() endif() -set(EIGEN_DIR "${PROJECT_SOURCE_DIR}/external_libs/eigen") -include_directories(${EIGEN_DIR}) +find_package(Eigen3 CONFIG REQUIRED) # See https://gitlab.com/libeigen/eigen/-/blob/master/COPYING.README add_definitions(-DEIGEN_MPL2_ONLY) add_definitions(-DEIGEN_DONT_PARALLELIZE) -set(FAST_DOUBLE_PARSER_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/external_libs/fast_double_parser/include") -include_directories(${FAST_DOUBLE_PARSER_INCLUDE_DIR}) +find_package(fmt CONFIG REQUIRED) +get_target_property(VCPKG_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES) +set(FMT_INCLUDE_DIR ${VCPKG_INCLUDE_DIR}/fmt) -set(FMT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/external_libs/fmt/include") -include_directories(${FMT_INCLUDE_DIR}) +find_path(FAST_DOUBLE_PARSER_INCLUDE_DIR fast_double_parser.h) if(__BUILD_FOR_R) find_package(LibR REQUIRED) @@ -181,15 +180,13 @@ if(USE_OPENMP) endif() if(USE_GPU) - set(BOOST_COMPUTE_HEADER_DIR ${PROJECT_SOURCE_DIR}/external_libs/compute/include) - include_directories(${BOOST_COMPUTE_HEADER_DIR}) find_package(OpenCL REQUIRED) include_directories(${OpenCL_INCLUDE_DIRS}) message(STATUS "OpenCL include directory: " ${OpenCL_INCLUDE_DIRS}) if(WIN32) set(Boost_USE_STATIC_LIBS ON) endif() - find_package(Boost 1.56.0 COMPONENTS filesystem system REQUIRED) + find_package(Boost 1.56.0 COMPONENTS filesystem system compute REQUIRED) if(WIN32) # disable autolinking in boost add_definitions(-DBOOST_ALL_NO_LIB) @@ -458,9 +455,11 @@ endif() add_library(lightgbm_objs OBJECT ${SOURCES}) +target_link_libraries(lightgbm_objs PUBLIC Eigen3::Eigen fmt::fmt) + if(BUILD_CLI) add_executable(lightgbm src/main.cpp src/application/application.cpp) - target_link_libraries(lightgbm PRIVATE lightgbm_objs) + target_link_libraries(lightgbm PRIVATE lightgbm_objs Eigen3::Eigen fmt::fmt) endif() set(API_SOURCES "src/c_api.cpp") @@ -471,6 +470,7 @@ if(__BUILD_FOR_R) endif() add_library(lightgbm_capi_objs OBJECT ${API_SOURCES}) +target_link_libraries(lightgbm_capi_objs PUBLIC Eigen3::Eigen fmt::fmt) if(BUILD_STATIC_LIB) add_library(_lightgbm STATIC) ================================================ FILE: ports/lightningscanner/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO localcc/LightningScanner REF v${VERSION} SHA512 fa2aefb6a6097544f578a96592b7b2ff58d5bccac7b10a0ab45fbe87e1204b3cbde5c16c64974e7434ea385727fb150b39080bf809f9698d944f75a6c110fe3c ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIGHTNING_SCANNER_INSTALL=ON -DLIGHTNING_SCANNER_BUILD_BENCH=OFF -DLIGHTNING_SCANNER_BUILD_DOCS=OFF -DLIGHTNING_SCANNER_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/LightningScanner) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/lightningscanner/usage ================================================ The package lightningscanner is compatible with built-in CMake targets: find_package(LightningScanner REQUIRED) target_link_libraries(main PRIVATE LightningScanner::LightningScanner) ================================================ FILE: ports/lightningscanner/vcpkg.json ================================================ { "name": "lightningscanner", "version": "1.0.1", "description": "A lightning-fast memory signature/pattern scanner, capable of scanning gigabytes of data per second.", "homepage": "https://localcc.github.io/LightningScanner/", "license": "MIT", "supports": "!arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lilv/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO lv2/lilv REF "v${VERSION}" SHA512 4b39766a3340e545e2d30af19fcd5916a3231f9144c8da76bf47eda4d1c73bbdbb23f15a7f52610096daa54ef752d034b4fab340014a54fb5ab9057f592ed278 HEAD_REF master ) set(options "") if("tools" IN_LIST FEATURES) list(APPEND options -Dtools=enabled) else() list(APPEND options -Dtools=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -Dbindings_cpp=enabled -Dbindings_py=disabled -Ddocs=disabled -Dtests=disabled ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) if(VCPKG_TARGET_IS_OSX) # Since 0.26.2 lv2bench only builds if the POSIX realtime scheduler 'sched.h' is available, which is not the case on macOS vcpkg_copy_tools(TOOL_NAMES lv2apply lv2info lv2ls AUTO_CLEAN) else() vcpkg_copy_tools(TOOL_NAMES lv2apply lv2bench lv2info lv2ls AUTO_CLEAN) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/lilv/vcpkg.json ================================================ { "name": "lilv", "version": "0.26.4", "description": "Lilv is a C library for simple use of LV2 plugins in applications.", "homepage": "https://drobilla.net/software/lilv", "license": "ISC", "supports": "!uwp", "dependencies": [ "lv2", "serd", "sord", "sratom", { "name": "vcpkg-tool-meson", "host": true }, "zix" ], "features": { "tools": { "description": "Build tools", "supports": "!windows", "dependencies": [ "libsndfile" ] } } } ================================================ FILE: ports/linalg/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sgorsten/linalg REF "v${VERSION}" SHA512 736f6ff83fcc4a772ef5ab8e574b0e56aca9fcf2318d92f56f94684ffbd7283540b6496381d52834545b4902147bc67a3afa21ab877bc44bba84471c2eff6862 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/linalg.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/UNLICENSE") ================================================ FILE: ports/linalg/vcpkg.json ================================================ { "name": "linalg", "version": "2.2", "description": "linalg.h is a single header public domain linear algebra library for C++11", "homepage": "https://github.com/sgorsten/linalg", "license": "Unlicense" } ================================================ FILE: ports/linmath/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO datenwolf/linmath.h REF 3eef82841046507e16a0f6194a61cee2eadd34b3 SHA512 cd8bc9c29b984cbb2fb1a1e743566e8f099d243c294658e84980cdbd83c881122f1abee68c50139ee9fddaa96f22f52eeae8e26dc86caa114cd11ebe5644a4db HEAD_REF master ) # This is a header only library file(INSTALL "${SOURCE_PATH}/linmath.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/linmath.h") file(INSTALL "${SOURCE_PATH}/LICENCE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/linmath/vcpkg.json ================================================ { "name": "linmath", "version-date": "2022-07-30", "description": "linmath.h -- A small library for linear math as required for computer graphics", "homepage": "https://github.com/datenwolf/linmath.h", "license": "WTFPL" } ================================================ FILE: ports/lionkor-commandline/add-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 36c7356..d30bde0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,3 +64,5 @@ if (BUILD_EXAMPLES) set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT commandline_test) endif () +set_target_properties(commandline PROPERTIES PUBLIC_HEADER "src/commandline.h") +install(TARGETS commandline RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include) ================================================ FILE: ports/lionkor-commandline/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lionkor/commandline REF v${VERSION} SHA512 c7b4cdafae55d5916e527e39a9186a4d15cbb7f65f39a23b149c5f9466dbf55ee947541c4abeabf6949425b8823076d540209112ec2509cd1e6ab583ce6fcfba HEAD_REF master PATCHES add-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lionkor-commandline/vcpkg.json ================================================ { "name": "lionkor-commandline", "version-semver": "2.4.2", "description": "A C++ commandline for use in servers and chat software. Provides very simple asynchronous input/output.", "homepage": "https://github.com/lionkor/commandline/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/liquid-dsp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jgaeddert/liquid-dsp REF "v${VERSION}" SHA512 04988cfc68ea562a47f16f5232e5eafada29d37e517ccfadd8dac9d83270c2cc2c1b5e9725e92b7cf6fed6d954aaa89b254038a2d7481e87202048a9521e4e22 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_AUTOTESTS=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_SANDBOX=OFF -DBUILD_DOC=OFF -DCOVERAGE=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/liquid-dsp/vcpkg.json ================================================ { "name": "liquid-dsp", "version": "1.7.0", "description": "Digital signal processing library for software-defined radios.", "homepage": "https://liquidsdr.org/", "license": "MIT", "supports": "linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/litehtml/fix-relative-includes.patch ================================================ diff --git a/include/litehtml.h b/include/litehtml.h index 98a24e0..d20addd 100644 --- a/include/litehtml.h +++ b/include/litehtml.h @@ -1,11 +1,11 @@ #ifndef LITEHTML_H #define LITEHTML_H -#include -#include -#include -#include -#include -#include +#include "html.h" +#include "document.h" +#include "html_tag.h" +#include "stylesheet.h" +#include "element.h" +#include "utf8_strings.h" #endif // LITEHTML_H ================================================ FILE: ports/litehtml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO litehtml/litehtml REF v0.9 SHA512 2a156671b770a6a20ab00184d9869af779248dd1fb898930b3b479ee88d8b7d84f51fdbd689ae4124530ab70c8697b6641cf06b220631ce4fec4622e63845ea3 PATCHES use-vcpkg-gumbo.patch fix-relative-includes.patch ) if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLITEHTML_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME litehtml CONFIG_PATH lib/cmake/litehtml) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/litehtml/use-vcpkg-gumbo.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fe71729..21e77c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,11 +10,7 @@ enable_testing() set(PROJECT_MAJOR 0) set(PROJECT_MINOR 0) -option(EXTERNAL_GUMBO "Link against external gumbo instead of shipping a bundled copy" OFF) - -if(NOT EXTERNAL_GUMBO) - add_subdirectory(src/gumbo) -endif() +find_package(unofficial-gumbo CONFIG REQUIRED) set(SOURCE_LITEHTML src/codepoint.cpp @@ -153,7 +149,7 @@ if (LITEHTML_UTF8) target_include_directories(${PROJECT_NAME} PRIVATE include/${PROJECT_NAME}) # Gumbo -target_link_libraries(${PROJECT_NAME} PUBLIC gumbo) +target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::gumbo::gumbo) # install and export install(TARGETS ${PROJECT_NAME} diff --git a/cmake/litehtmlConfig.cmake b/cmake/litehtmlConfig.cmake index 5eedcf4..1027913 100644 --- a/cmake/litehtmlConfig.cmake +++ b/cmake/litehtmlConfig.cmake @@ -1,3 +1,3 @@ include(CMakeFindDependencyMacro) -find_dependency(gumbo) +find_dependency(unofficial-gumbo) include(${CMAKE_CURRENT_LIST_DIR}/litehtmlTargets.cmake) diff --git a/src/document.cpp b/src/document.cpp index 8bd1ea8..51a9d42 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -26,7 +26,7 @@ #include #include #include -#include "gumbo.h" +#include #include "utf8_strings.h" #include "render_item.h" #include "render_table.h" ================================================ FILE: ports/litehtml/vcpkg.json ================================================ { "name": "litehtml", "version": "0.9.0", "description": "litehtml is the lightweight HTML rendering engine with CSS2/CSS3 support.", "homepage": "https://github.com/litehtml/litehtml", "license": "BSD-3-Clause", "dependencies": [ "gumbo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/live555/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(live555 C CXX) set(CMAKE_CXX_STANDARD 20) include_directories( BasicUsageEnvironment/include groupsock/include liveMedia/include UsageEnvironment/include ) if (WIN32) add_definitions(-DNO_GETIFADDRS) endif(WIN32) if (NOT MSVC) add_compile_options(-DSOCKLEN_T=socklen_t) endif() if (CMAKE_SYSTEM_NAME MATCHES "Darwin") add_compile_options(-DBSD=1) add_compile_options(-DHAVE_SOCKADDR_LEN=1) add_compile_options(-DTIME_BASE=int) add_compile_options(-DNEED_XLOCALE_H=1) endif() file(GLOB BASIC_USAGE_ENVIRONMENT_SRCS BasicUsageEnvironment/*.c BasicUsageEnvironment/*.cpp) add_library(BasicUsageEnvironment ${BASIC_USAGE_ENVIRONMENT_SRCS}) target_include_directories(BasicUsageEnvironment PUBLIC $) file(GLOB GROUPSOCK_SRCS groupsock/*.c groupsock/*.cpp) add_library(groupsock ${GROUPSOCK_SRCS}) target_include_directories(groupsock PUBLIC $) file(GLOB LIVEMEDIA_SRCS liveMedia/*.c liveMedia/*.cpp) add_library(liveMedia ${LIVEMEDIA_SRCS}) find_package(OpenSSL REQUIRED) target_include_directories(liveMedia PRIVATE "${OPENSSL_INCLUDE_DIR}" PUBLIC $) file(GLOB USAGE_ENVIRONMENT_SRCS UsageEnvironment/*.c UsageEnvironment/*.cpp) add_library(UsageEnvironment ${USAGE_ENVIRONMENT_SRCS}) target_include_directories(UsageEnvironment PUBLIC $) file(WRITE "${CMAKE_BINARY_DIR}/unofficial-live555-config.cmake" [[ include(CMakeFindDependencyMacro) find_dependency(OpenSSL) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-live555-targets.cmake") ]] ) install(FILES "${CMAKE_BINARY_DIR}/unofficial-live555-config.cmake" DESTINATION share/unofficial-live555) install(TARGETS groupsock BasicUsageEnvironment liveMedia UsageEnvironment EXPORT unofficial-live555-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT unofficial-live555-targets FILE unofficial-live555-targets.cmake NAMESPACE unofficial:: DESTINATION share/unofficial-live555 ) ================================================ FILE: ports/live555/fix-RTSPClient.patch ================================================ diff --git a/liveMedia/RTSPClient.cpp b/liveMedia/RTSPClient.cpp index 66e0c79..13255af 100644 --- a/liveMedia/RTSPClient.cpp +++ b/liveMedia/RTSPClient.cpp @@ -2029,7 +2029,7 @@ int RTSPClient::write(const char* data, unsigned count) { if (fOutputTLS->isNeeded) { return fOutputTLS->write(data, count); } else { - return send(fOutputSocketNum, data, count, MSG_NOSIGNAL); + return send(fOutputSocketNum, (const char *)data, count, MSG_NOSIGNAL); } } ================================================ FILE: ports/live555/fix_operator_overload.patch ================================================ diff --git a/liveMedia/MPEGVideoStreamFramer.cpp b/liveMedia/MPEGVideoStreamFramer.cpp index 59c4656..a705e68 100644 --- a/liveMedia/MPEGVideoStreamFramer.cpp +++ b/liveMedia/MPEGVideoStreamFramer.cpp @@ -129,7 +129,7 @@ void MPEGVideoStreamFramer fPictureTimeBase = fFrameRate == 0.0 ? 0.0 : tc.pictures/fFrameRate; fTcSecsBase = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds; fHaveSeenFirstTimeCode = True; - } else if (fCurGOPTimeCode == fPrevGOPTimeCode) { + } else if (fCurGOPTimeCode.TimeCode::operator==(fPrevGOPTimeCode)) { // The time code has not changed since last time. Adjust for this: fPicturesAdjustment += picturesSinceLastGOP; } else { ================================================ FILE: ports/live555/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REPLACE "-" "." format_version ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://download.live555.com/live.${format_version}.tar.gz" FILENAME "live.${format_version}.tar.gz" SHA512 59adac68e7906e784a19b2d0c90bfa665a5094e8ef17691bc7f6b0b385c02201d017e6a92e3cc2140ed8496928647cb1186298d2c7ff718a2b0572f1b79a50a2 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-live555) file(GLOB HEADERS "${SOURCE_PATH}/BasicUsageEnvironment/include/*.h*" "${SOURCE_PATH}/groupsock/include/*.h*" "${SOURCE_PATH}/liveMedia/include/*.h*" "${SOURCE_PATH}/UsageEnvironment/include/*.h*" ) file(COPY ${HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/live555/vcpkg.json ================================================ { "name": "live555", "version-date": "2026-01-12", "description": "A complete RTSP server application", "homepage": "http://www.live555.com/liveMedia", "license": "GPL-3.0-or-later", "supports": "!xbox", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/livepp/global_preferences.json ================================================ { "HotReload": { "clearLog": false, "deletePatchFiles": true, "hotReloadShortcutModifiers": 3, "hotReloadShortcutVirtualKeyCode": 122, "loadIncompleteCompilands ": false, "loadIncompleteModules": false, "timeout": 3000 }, "HotRestart": { "hotRestartShortcutModifiers": 3, "hotRestartShortcutVirtualKeyCode": 82, "timeout": 10000 }, "IDE": { "keepBreakpointsEnabled": false, "showModalDialog": false, "toggleOptimizationsShortcutModifiers": 3, "toggleOptimizationsShortcutVirtualKeyCode": 79 }, "Licensing": { "enableLicenseExpirationWarning": true, "licenseExpirationWarningDays": 14 }, "Logging": { "colorError": -65536, "colorInfo": -1, "colorPanic": -11141121, "colorPlatform": -88543, "colorSuccess": -16711936, "colorTimeAndDate": -6250336, "colorWarning": -256, "enableWordWrap": false, "font": "Courier New,10,-1,2,400,0,0,0,0,0,0,0,0,0,0,1", "printTimestamps": true, "verbosity": 0 }, "Network": { "hostOrIP": "127.0.0.1", "port": 12216, "timeout": 2000 }, "Notifications": { "areEnabled": true, "focusType": 0, "playSoundOnError": false, "playSoundOnSuccess": false, "soundOnError": "", "soundOnSuccess": "" }, "UI": { "initialState": 0, "language": 65535, "showAnimatedIcon": true, "showColorizedIcon": true, "showErrorOnVersionMismatch": true, "showTaskBarProgress": true, "style": 1 } } ================================================ FILE: ports/livepp/portfile.cmake ================================================ string(REPLACE "." "_" VERSION_NAME ${VERSION}) set(LIVEPP_FILE LPP_${VERSION_NAME}.zip) vcpkg_download_distfile( ARCHIVE URLS https://liveplusplus.tech/downloads/${LIVEPP_FILE} FILENAME "${LIVEPP_FILE}" SHA512 1b75d9922a46dc6e4176c6581a5c457e3f7f00d5a1a26e3976cab619c45c834730088169fe8dfd5f95d543851db7467f3dd0d92733d4bc00f8da5bfdef55af3d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(INSTALL "${SOURCE_PATH}/API" DESTINATION "${CURRENT_PACKAGES_DIR}/include/LivePP" PATTERN "*.txt" EXCLUDE) file(INSTALL "${SOURCE_PATH}/Agent" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${SOURCE_PATH}/Broker" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${SOURCE_PATH}/CLI" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}Config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/global_preferences.json" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/Broker") if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/global_preferences_default.json") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/global_preferences_default.json" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/Broker") endif() if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/global_preferences_override.json") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/global_preferences_override.json" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/Broker") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" [[As of 2025-06-14, this software is bound by the "END USER LICENSE AGREEMENT" PDF located at https://liveplusplus.tech/downloads/LPP_EULA.pdf ]]) ================================================ FILE: ports/livepp/unofficial-liveppConfig.cmake ================================================ if(NOT TARGET unofficial::livepp::livepp) 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() add_library(unofficial::livepp::livepp INTERFACE IMPORTED) set_target_properties(unofficial::livepp::livepp PROPERTIES INTERFACE_COMPILE_DEFINITIONS VCPKG_LIVEPP_PATH="${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/livepp" INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/livepp/usage ================================================ livepp provides CMake targets: find_package(unofficial-livepp CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::livepp::livepp) The macro LIVEPP_PATH is also set to point to the livepp installation folder and can be used to create agents: lpp::LppDefaultAgent lppAgent = lpp::LppCreateDefaultAgent(nullptr, L"" VCPKG_LIVEPP_PATH); ================================================ FILE: ports/livepp/vcpkg.json ================================================ { "name": "livepp", "version-semver": "2.11.2", "description": "Hot-reload for C & C++ transforms workflows and decreases iteration times.", "homepage": "https://liveplusplus.tech/", "documentation": "https://liveplusplus.tech/docs/documentation.html", "license": null, "supports": "windows" } ================================================ FILE: ports/llama-cpp/cmake-config.diff ================================================ diff --git a/cmake/llama-config.cmake.in b/cmake/llama-config.cmake.in index 90cbec5..884938f 100644 --- a/cmake/llama-config.cmake.in +++ b/cmake/llama-config.cmake.in @@ -6,10 +6,10 @@ set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@) @PACKAGE_INIT@ set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@") -set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@") -set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@") +#set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@") +#set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@") -find_package(ggml REQUIRED HINTS ${LLAMA_LIB_DIR}/cmake) +find_package(ggml REQUIRED CONFIG) find_library(llama_LIBRARY llama REQUIRED @@ -17,6 +17,7 @@ find_library(llama_LIBRARY llama NO_CMAKE_FIND_ROOT_PATH ) +if(NOT TARGET llama) add_library(llama UNKNOWN IMPORTED) set_target_properties(llama PROPERTIES @@ -26,5 +27,6 @@ set_target_properties(llama IMPORTED_LOCATION "${llama_LIBRARY}" INTERFACE_COMPILE_FEATURES c_std_90 POSITION_INDEPENDENT_CODE ON) +endif() check_required_components(Llama) ================================================ FILE: ports/llama-cpp/pkgconfig.diff ================================================ diff --git a/cmake/llama.pc.in b/cmake/llama.pc.in index 6fb58b5..8a283e7 100644 --- a/cmake/llama.pc.in +++ b/cmake/llama.pc.in @@ -6,5 +6,6 @@ includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: llama Description: Port of Facebook's LLaMA model in C/C++ Version: @LLAMA_INSTALL_VERSION@ -Libs: -L${libdir} -lggml -lggml-base -lllama +Requires: ggml +Libs: -L${libdir} -lllama Cflags: -I${includedir} ================================================ FILE: ports/llama-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ggml-org/llama.cpp REF b${VERSION} SHA512 879490cdeeef9397b9843730399bd55c7ef57de7e421cfcbaa15bd95416e028e4a0864f237218895a8a1244b7a4dbef9eacda49aa9697628e29774d0fc90d04b HEAD_REF master PATCHES cmake-config.diff pkgconfig.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/ggml/include" "${SOURCE_PATH}/ggml/src") vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES download LLAMA_CURL tools LLAMA_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DGGML_CCACHE=OFF -DLLAMA_ALL_WARNINGS=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_SERVER=OFF -DLLAMA_USE_SYSTEM_GGML=ON -DVCPKG_LOCK_FIND_PACKAGE_Git=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/llama") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/gguf-py/gguf" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gguf-py") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/convert_hf_to_gguf.py" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/convert-hf-to-gguf.py") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/convert_hf_to_gguf.py") if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES llama-batched-bench llama-bench llama-cli llama-cvector-generator llama-export-lora llama-gguf-split llama-imatrix llama-mtmd-cli llama-perplexity llama-quantize llama-run llama-tokenize llama-tts AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_clean_executables_in_bin(FILE_NAMES none) set(gguf-py-license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gguf-py LICENSE") file(COPY_FILE "${SOURCE_PATH}/gguf-py/LICENSE" "${gguf-py-license}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${gguf-py-license}") ================================================ FILE: ports/llama-cpp/vcpkg.json ================================================ { "name": "llama-cpp", "version": "7146", "description": "LLM inference in C/C++", "homepage": "https://github.com/ggml-org/llama.cpp", "license": "MIT", "dependencies": [ "ggml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "download": { "description": "Support downloading a model from an URL", "dependencies": [ { "name": "curl", "default-features": false } ] }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/llfio/portfile.cmake ================================================ if ("polyfill-cxx20" IN_LIST FEATURES) message(WARNING [=[ LLFIO depends on Outcome which depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's, Outcome's and LLFIO's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against. ]=]) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ned14/llfio REF 52560148e7e199675a38ab5669d172a3db6a5c94 SHA512 a13c8c3340b871f492b1a9eab087ff0ff16d7bee2e3fb3b6539d34efdc3e286920f89283f4df48a79f716803b58abf389ab379bc08838b65d6f5f05455505492 HEAD_REF develop ) vcpkg_from_github( OUT_SOURCE_PATH NTKEC_SOURCE_PATH REPO ned14/ntkernel-error-category REF 5e50ff9af36a029c8ead9e0a833aa78304e95f28 SHA512 a3b8bfba8b22c79913ced23358c4a5ec56d2f2f8ca8da3ebd2e7cfaa783363d92d9de1b49766756c7b008114eee31c1509195232adcc364446eae724489be930 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS LLFIO_FEATURE_OPTIONS FEATURES status-code LLFIO_USE_EXPERIMENTAL_SG14_STATUS_CODE ) # LLFIO expects ntkernel-error-category to live inside its include directory file(REMOVE_RECURSE "${SOURCE_PATH}/include/llfio/ntkernel-error-category") file(RENAME "${NTKEC_SOURCE_PATH}" "${SOURCE_PATH}/include/llfio/ntkernel-error-category") set(extra_config) # cmake does not correctly set CMAKE_SYSTEM_PROCESSOR when targeting ARM on Windows if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) list(APPEND extra_config -DLLFIO_ASSUME_CROSS_COMPILING=ON) endif() # setting CMAKE_CXX_STANDARD here to prevent llfio from messing with compiler flags # the cmake package config requires said C++ standard target transitively via quickcpplib if ("cxx20" IN_LIST FEATURES) list(APPEND extra_config -DCMAKE_CXX_STANDARD=20) elseif("cxx17" IN_LIST FEATURES) list(APPEND extra_config -DCMAKE_CXX_STANDARD=17) endif() # quickcpplib parses CMAKE_MSVC_RUNTIME_LIBRARY and cannot support the default crt linkage generator expression from vcpkg if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") list(APPEND extra_config -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>DLL) else() list(APPEND extra_config -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dllfio_IS_DEPENDENCY=On "-DCMAKE_PREFIX_PATH=${CURRENT_INSTALLED_DIR}" ${LLFIO_FEATURE_OPTIONS} -DLLFIO_FORCE_OPENSSL_OFF=ON -DLLFIO_ENABLE_DEPENDENCY_SMOKE_TEST=ON # Leave this always on to test everything compiles -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCXX_CONCEPTS_FLAGS= -DCXX_COROUTINES_FLAGS= -DCMAKE_POLICY_DEFAULT_CMP0091=NEW # MSVC detection fails without this ${extra_config} ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_cmake_build(TARGET install.dl) elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_cmake_build(TARGET install.sl) endif() if("run-tests" IN_LIST FEATURES) vcpkg_cmake_build(TARGET test) endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/llfio) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if("status-code" IN_LIST FEATURES) set(_USAGE_FEATURE "status-code") else() set(_USAGE_FEATURE "error-code") endif() file(INSTALL "${CURRENT_PORT_DIR}/usage-${_USAGE_FEATURE}-${VCPKG_LIBRARY_LINKAGE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME usage) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") ================================================ FILE: ports/llfio/usage-error-code-dynamic ================================================ The package llfio provides two CMake targets: find_package(llfio CONFIG REQUIRED) - If you want the header-only form of LLFIO: find_package(Threads REQUIRED) target_link_libraries(main PUBLIC llfio::hl) - If you want the shared library form of LLFIO with shared NT kernel error code category: target_link_libraries(main PUBLIC llfio::dl llfio::ntkernel-error-category::dl) ================================================ FILE: ports/llfio/usage-error-code-static ================================================ The package llfio provides two CMake targets: find_package(llfio CONFIG REQUIRED) - If you want the header-only form of LLFIO: find_package(Threads REQUIRED) target_link_libraries(main PUBLIC llfio::hl) - If you want the static library form of LLFIO with static NT kernel error code category: target_link_libraries(main PUBLIC llfio::sl llfio::ntkernel-error-category::sl) ================================================ FILE: ports/llfio/usage-status-code-dynamic ================================================ The package llfio provides two CMake targets: find_package(llfio CONFIG REQUIRED) - If you want the header-only form of LLFIO: find_package(Threads REQUIRED) target_link_libraries(main PUBLIC llfio::hl) - If you want the shared library form of LLFIO: target_link_libraries(main PUBLIC llfio::dl) ================================================ FILE: ports/llfio/usage-status-code-static ================================================ The package llfio provides two CMake targets: find_package(llfio CONFIG REQUIRED) - If you want the header-only form of LLFIO: find_package(Threads REQUIRED) target_link_libraries(main PUBLIC llfio::hl) - If you want the static library form of LLFIO: target_link_libraries(main PUBLIC llfio::sl) ================================================ FILE: ports/llfio/vcpkg.json ================================================ { "name": "llfio", "version-date": "2025-01-13", "maintainers": [ "Niall Douglas ", "Henrik Gaßmann " ], "description": "P1031 low level file i/o and filesystem library for the C++ standard", "homepage": "https://github.com/ned14/llfio", "license": "Apache-2.0 OR BSL-1.0", "supports": "!uwp", "dependencies": [ "outcome", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "polyfill-cxx17": { "description": "Polyfill C++17 entities", "dependencies": [ { "name": "llfio", "default-features": false, "features": [ "polyfill-cxx20" ] }, { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ "polyfill-cxx17" ] }, { "name": "outcome", "default-features": false, "features": [ "polyfill-cxx17" ] } ] }, "polyfill-cxx20": { "description": "Polyfill C++20 entities", "dependencies": [ { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ "polyfill-cxx20" ] }, { "name": "outcome", "default-features": false, "features": [ "polyfill-cxx20" ] } ] }, "run-tests": { "description": "Build and run the dependency validation tests" }, "status-code": { "description": "Have LLFIO use SG14 `status_code` (proposed `std::error`) instead of `std::error_code`." } } } ================================================ FILE: ports/llgi/fix-cmake-use-vcpkg.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fd2ce0..202bcfe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,10 +27,6 @@ option(SPIRVCROSS_WITHOUT_INSTALL "Compile with spirv-cross without install" OFF) option(USE_CREATE_COMPILER_FUNCTION "Whether LLGI::CreateCompiler is used." ON) -if(LINUX) - set(BUILD_VULKAN TRUE) -endif() - option(USE_MSVC_RUNTIME_LIBRARY_DLL "compile as multithreaded DLL" ON) include(cmake/ClangFormat.cmake) @@ -234,8 +230,13 @@ if(BUILD_VULKAN_COMPILER OR BUILD_TOOL) spirv-cross-util) else() - list(APPEND LLGI_THIRDPARTY_INCLUDES ${GLSLANG_INCLUDE_DIR} - ${SPIRVCROSS_INCLUDE_DIR}) + # from vcpkg + find_package(glslang CONFIG REQUIRED) + find_package(spirv_cross_core CONFIG REQUIRED) + find_package(spirv_cross_glsl CONFIG REQUIRED) + find_package(spirv_cross_hlsl CONFIG REQUIRED) + find_package(spirv_cross_msl CONFIG REQUIRED) + find_package(spirv_cross_cpp CONFIG REQUIRED) endif() diff --git a/tools/ShaderTranspilerCore/CMakeLists.txt b/tools/ShaderTranspilerCore/CMakeLists.txt index bf34437..09e428d 100644 --- a/tools/ShaderTranspilerCore/CMakeLists.txt +++ b/tools/ShaderTranspilerCore/CMakeLists.txt @@ -24,6 +24,10 @@ else() endif() +target_link_libraries(ShaderTranspilerCore PUBLIC + glslang::glslang glslang::glslang-default-resource-limits glslang::SPIRV glslang::SPVRemapper spirv-cross-cpp spirv-cross-glsl spirv-cross-msl spirv-cross-hlsl +) + if(USE_THIRDPARTY_DIRECTORY) add_dependencies(ShaderTranspilerCore EP_glslang EP_SPIRV-Cross) endif() ================================================ FILE: ports/llgi/fix-sources.patch ================================================ diff --git a/tools/ShaderTranspilerCore/ShaderTranspilerCore.h b/tools/ShaderTranspilerCore/ShaderTranspilerCore.h index 269afa6..1d1015f 100644 --- a/tools/ShaderTranspilerCore/ShaderTranspilerCore.h +++ b/tools/ShaderTranspilerCore/ShaderTranspilerCore.h @@ -1,7 +1,7 @@ #pragma once - -#include +#include +#include #include "../../src/LLGI.Base.h" #include ================================================ FILE: ports/llgi/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO altseed/LLGI REF 8f8510e2dffa1d747ff6ebb0da341198e75291ec SHA512 d521b47f293b90faed28f9648facdfae327c6122ea6391683a08e48558fdf62ce0d3977f78aef3bc276d77ab19fc40ab3cc4d27311dd5a292e0884635fe7c9d3 HEAD_REF master PATCHES fix-cmake-use-vcpkg.patch fix-sources.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES vulkan BUILD_VULKAN vulkan BUILD_VULKAN_COMPILER tool BUILD_TOOL ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" USE_DYNAMIC_RUNTIME) # linux build requires x11-xcb vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TEST=OFF -DBUILD_EXAMPLE=OFF -DUSE_CREATE_COMPILER_FUNCTION=ON -DUSE_THIRDPARTY_DIRECTORY=OFF # prevent ExternalProject_Add -DUSE_MSVC_RUNTIME_LIBRARY_DLL:BOOL=${USE_DYNAMIC_RUNTIME} -DGLSLANG_WITHOUT_INSTALL=OFF -DSPIRVCROSS_WITHOUT_INSTALL=OFF MAYBE_UNUSED_VARIABLES USE_MSVC_RUNTIME_LIBRARY_DLL ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake") if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ShaderTranspiler AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/llgi/vcpkg.json ================================================ { "name": "llgi", "version-date": "2023-12-19", "port-version": 1, "homepage": "https://github.com/altseed/LLGI", "license": null, "supports": "!(uwp | android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Build ShaderTranspiler", "dependencies": [ "glslang", "spirv-cross" ] }, "vulkan": { "description": "Build vulkan modules", "supports": "windows | linux", "dependencies": [ "glslang", "spirv-cross", "vulkan" ] } } } ================================================ FILE: ports/llgl/portfile.cmake ================================================ vcpkg_download_distfile(INSTALL_PATCH URLS https://github.com/LukasBanana/LLGL/commit/7eea7e5aa7008f0549a03d322a567566d9282b62.diff?full_index=1 FILENAME llgl-install-7eea7e5aa7008f0549a03d322a567566d9282b62.diff SHA512 c627f4c0e7239c38e81d6c691b2c12bbb0ff8b8faf390c0832d5dea177b3034e1e2ddd232c0189b1bd0785bf0ac006e15983a712d871d021a124d583134a7212 ) vcpkg_download_distfile(ADD_CSTDINT_PATCH URLS https://github.com/LukasBanana/LLGL/commit/95a613400fb7001306edbdb0c49cb32f8a284989.diff?full_index=1 FILENAME llgl-add-cstdint-95a613400fb7001306edbdb0c49cb32f8a284989.diff SHA512 fa1b9f6a3199cecc9effd86171b1b4f12ae9e8b162e8638a63fa4d12cdfd20e93804b663f190b2a91d712f9387580f381d66f384b1f9fb4d1d959943bc39c44f ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LukasBanana/LLGL REF df46af8974ac6d4f955e76d01b80a8c7e00f1fc8 SHA512 a6e11573759ced048cc9b9b97dd6abbfb70cbc29770e040b0472d529a1cff14e529b7ed62e647d9b318f6633a41918a29d66762da08e4b093582e1a45284e6d3 HEAD_REF master PATCHES "${INSTALL_PATCH}" "${ADD_CSTDINT_PATCH}" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opengl LLGL_BUILD_RENDERER_OPENGL opengl LLGL_BUILD_RENDERER_OPENGL_ES3 direct3d11 LLGL_BUILD_RENDERER_DIRECT3D11 direct3d12 LLGL_BUILD_RENDERER_DIRECT3D12 metal LLGL_BUILD_RENDERER_METAL vulkan LLGL_BUILD_RENDERER_VULKAN ) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_ANDROID) set(maybe_unused "LLGL_BUILD_RENDERER_OPENGL") else() set(maybe_unused "LLGL_BUILD_RENDERER_OPENGL_ES3") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LLGL_BUILD_STATIC_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" MAYBE_UNUSED_VARIABLES ${maybe_unused} OPTIONS ${FEATURE_OPTIONS} -DLLGL_BUILD_STATIC_LIB=${LLGL_BUILD_STATIC_LIB} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/LLGL) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/llgl/vcpkg.json ================================================ { "name": "llgl", "version-date": "2023-03-05", "port-version": 1, "description": "Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal.", "homepage": "https://github.com/LukasBanana/LLGL", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "direct3d11": { "description": "Support for direct3d11", "supports": "windows" }, "direct3d12": { "description": "Support for direct3d12", "supports": "windows" }, "metal": { "description": "Support for metal", "supports": "osx | ios" }, "opengl": { "description": "Support for opengl" }, "vulkan": { "description": "Support for vulkan", "supports": "!osx", "dependencies": [ "vulkan" ] } } } ================================================ FILE: ports/llhttp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nodejs/llhttp REF refs/tags/release/v${VERSION} SHA512 725332e20aace7215c3cb7a4973e6fe72e6ed80c451c513c4caade0f8e5a276e0725733637fe30c6e3312a68fba3dcdad50ab2f17f52d4120dbecef970fa4e70 PATCHES ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LLHTTP_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LLHTTP_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DLLHTTP_BUILD_SHARED_LIBS=${LLHTTP_BUILD_SHARED} -DLLHTTP_BUILD_STATIC_LIBS=${LLHTTP_BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( CONFIG_PATH "/lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-MIT") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/llhttp/vcpkg.json ================================================ { "name": "llhttp", "version": "9.3.1", "description": "Port of http_parser to llparse.", "homepage": "https://github.com/nodejs/llhttp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/llnl-units/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LLNL/units REF "v${VERSION}" SHA512 4b847cbf0d09ad39185058f95286dd4db95a123b399af707440cc22b5d8d7efd67741e610170e14aa744935a9ec9b58aa782ffd32fbf7366df473e40f2c318cd HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools UNITS_BUILD_CONVERTER_APP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUNITS_CMAKE_PROJECT_NAME=LLNL-UNITS -DUNITS_ENABLE_TESTS=OFF -DUNITS_BUILD_FUZZ_TARGETS=OFF -DLLNL-UNITS_ENABLE_ERROR_ON_WARNINGS=OFF -DLLNL-UNITS_ENABLE_EXTRA_COMPILER_WARNINGS=OFF OPTIONS_DEBUG -DUNITS_BUILD_CONVERTER_APP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/llnl-units) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES units_convert AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/llnl-units/usage ================================================ llnl-units provides CMake targets: find_package(llnl-units CONFIG REQUIRED) target_link_libraries(main PRIVATE llnl-units::units) ================================================ FILE: ports/llnl-units/vcpkg.json ================================================ { "name": "llnl-units", "version": "0.13.1", "port-version": 1, "description": "A run-time C++ library for working with units of measurement and conversions between them and with string representations of units and measurements", "homepage": "https://github.com/LLNL/units", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build the command line tool", "supports": "!uwp" } } } ================================================ FILE: ports/lloyal-ai-inlined-vector/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lloyal-ai/inlined-vector REF "v${VERSION}" SHA512 619777f8dd930813e5be96cdfa5171485356fb8ac6ed3f32fca3ad68565a48c269a38a022d734b118c0e397f5f84ad591a27c42b7080616af5d7d0575e6a7a9b HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINLINED_VECTOR_BUILD_TESTS=OFF -DINLINED_VECTOR_BUILD_BENCHMARKS=OFF -DINLINED_VECTOR_BUILD_FUZZ_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/inlined-vector/cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/lloyal-ai-inlined-vector/usage ================================================ lloyal-ai-inlined-vector provides CMake targets: find_package(inlined-vector CONFIG REQUIRED) target_link_libraries(main PRIVATE inlined-vector::inlined-vector) ================================================ FILE: ports/lloyal-ai-inlined-vector/vcpkg.json ================================================ { "name": "lloyal-ai-inlined-vector", "version": "5.7.1", "description": "A C++17/20 header-only vector-like container with Small Buffer Optimization (SBO) and full allocator support. Zero external dependencies.", "homepage": "https://github.com/lloyal-ai/inlined-vector", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/llvm/0001-fix-install-package-dir.patch ================================================ openmp/tools/Modules/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmp/tools/Modules/CMakeLists.txt b/openmp/tools/Modules/CMakeLists.txt index 22d818eea72d..75aacc4468d4 100644 --- a/openmp/tools/Modules/CMakeLists.txt +++ b/openmp/tools/Modules/CMakeLists.txt @@ -12,4 +12,4 @@ install(FILES "FindOpenMPTarget.cmake" - DESTINATION "${OPENMP_INSTALL_LIBDIR}/cmake/openmp") + DESTINATION "share/openmp") ================================================ FILE: ports/llvm/0002-fix-tools-install-dir.patch ================================================ bolt/cmake/modules/AddBOLT.cmake | 2 +- clang-tools-extra/clang-tidy/tool/CMakeLists.txt | 2 +- clang-tools-extra/modularize/CMakeLists.txt | 2 +- clang/cmake/modules/AddClang.cmake | 2 +- clang/tools/c-index-test/CMakeLists.txt | 2 +- clang/tools/clang-format/CMakeLists.txt | 2 +- clang/tools/scan-build-py/CMakeLists.txt | 4 ++-- clang/tools/scan-build/CMakeLists.txt | 2 +- clang/tools/scan-view/CMakeLists.txt | 2 +- flang/cmake/modules/AddFlang.cmake | 2 +- flang/tools/f18/CMakeLists.txt | 2 +- flang/tools/flang-driver/CMakeLists.txt | 2 +- lld/cmake/modules/AddLLD.cmake | 2 +- lldb/cmake/modules/AddLLDB.cmake | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) diff --git a/bolt/cmake/modules/AddBOLT.cmake b/bolt/cmake/modules/AddBOLT.cmake index 1f69b9046320..b0de5186dde4 100644 --- a/bolt/cmake/modules/AddBOLT.cmake +++ b/bolt/cmake/modules/AddBOLT.cmake @@ -17,7 +17,7 @@ macro(add_bolt_tool name) get_target_export_arg(${name} BOLT export_to_bolttargets) install(TARGETS ${name} ${export_to_bolttargets} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${BOLT_TOOLS_INSTALL_DIR}" COMPONENT bolt) if(NOT LLVM_ENABLE_IDE) diff --git a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt index b220cbea80f1..b94501ec82ab 100644 --- a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt @@ -65,6 +65,6 @@ install(PROGRAMS clang-tidy-diff.py DESTINATION "${CMAKE_INSTALL_DATADIR}/clang" COMPONENT clang-tidy) install(PROGRAMS run-clang-tidy.py - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT clang-tidy RENAME run-clang-tidy) diff --git a/clang-tools-extra/modularize/CMakeLists.txt b/clang-tools-extra/modularize/CMakeLists.txt index eb5383c3ad44..39a34dfe8c71 100644 --- a/clang-tools-extra/modularize/CMakeLists.txt +++ b/clang-tools-extra/modularize/CMakeLists.txt @@ -27,5 +27,5 @@ clang_target_link_libraries(modularize ) install(TARGETS modularize - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT clang-extras) diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake index 75b0080f6715..46e32ddbe0cd 100644 --- a/clang/cmake/modules/AddClang.cmake +++ b/clang/cmake/modules/AddClang.cmake @@ -169,7 +169,7 @@ macro(add_clang_tool name) get_target_export_arg(${name} Clang export_to_clangtargets) install(TARGETS ${name} ${export_to_clangtargets} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT ${name}) if(NOT LLVM_ENABLE_IDE) diff --git a/clang/tools/c-index-test/CMakeLists.txt b/clang/tools/c-index-test/CMakeLists.txt index 0ae1b4e55244..7774cd27afcd 100644 --- a/clang/tools/c-index-test/CMakeLists.txt +++ b/clang/tools/c-index-test/CMakeLists.txt @@ -49,7 +49,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) set_property(TARGET c-index-test APPEND PROPERTY INSTALL_RPATH "@executable_path/../../lib") else() - set(INSTALL_DESTINATION "${CMAKE_INSTALL_BINDIR}") + set(INSTALL_DESTINATION "${CLANG_TOOLS_INSTALL_DIR}") endif() install(TARGETS c-index-test diff --git a/clang/tools/clang-format/CMakeLists.txt b/clang/tools/clang-format/CMakeLists.txt index 1c61a3c8fb80..4220d90274bd 100644 --- a/clang/tools/clang-format/CMakeLists.txt +++ b/clang/tools/clang-format/CMakeLists.txt @@ -36,7 +36,7 @@ install(FILES clang-format.py DESTINATION "${CMAKE_INSTALL_DATADIR}/clang" COMPONENT clang-format) install(PROGRAMS git-clang-format - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT clang-format) if (WIN32 AND NOT CYGWIN) diff --git a/clang/tools/scan-build-py/CMakeLists.txt b/clang/tools/scan-build-py/CMakeLists.txt index 3aca22c0b0a8..a8283219c99f 100644 --- a/clang/tools/scan-build-py/CMakeLists.txt +++ b/clang/tools/scan-build-py/CMakeLists.txt @@ -43,7 +43,7 @@ foreach(BinFile ${BinFiles}) ${CMAKE_BINARY_DIR}/bin/scan-build-py DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/scan-build) install (PROGRAMS "bin/scan-build" - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" RENAME scan-build-py COMPONENT scan-build-py) list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/scan-build-py) @@ -56,7 +56,7 @@ foreach(BinFile ${BinFiles}) ${CMAKE_BINARY_DIR}/bin/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) install(PROGRAMS bin/${BinFile} - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT scan-build-py) list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) endif() diff --git a/clang/tools/scan-build/CMakeLists.txt b/clang/tools/scan-build/CMakeLists.txt index ef687b0e90a1..47f31efc9174 100644 --- a/clang/tools/scan-build/CMakeLists.txt +++ b/clang/tools/scan-build/CMakeLists.txt @@ -47,7 +47,7 @@ if(CLANG_INSTALL_SCANBUILD) DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) install(PROGRAMS bin/${BinFile} - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT scan-build) endforeach() diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt index 07aec76ee66f..55a945bb278d 100644 --- a/clang/tools/scan-view/CMakeLists.txt +++ b/clang/tools/scan-view/CMakeLists.txt @@ -20,7 +20,7 @@ if(CLANG_INSTALL_SCANVIEW) DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) install(PROGRAMS bin/${BinFile} - DESTINATION "${CMAKE_INSTALL_BINDIR}" + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" COMPONENT scan-view) endforeach() diff --git a/flang/cmake/modules/AddFlang.cmake b/flang/cmake/modules/AddFlang.cmake index 41ce8738e7bf..d9659c4cf53a 100644 --- a/flang/cmake/modules/AddFlang.cmake +++ b/flang/cmake/modules/AddFlang.cmake @@ -115,7 +115,7 @@ macro(add_flang_tool name) get_target_export_arg(${name} Flang export_to_flangtargets) install(TARGETS ${name} ${export_to_flangtargets} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${FLANG_TOOLS_INSTALL_DIR}" COMPONENT ${name}) if(NOT LLVM_ENABLE_IDE) diff --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt index ba6c6642c0b6..ab2802aeeaaa 100644 --- a/flang/tools/f18/CMakeLists.txt +++ b/flang/tools/f18/CMakeLists.txt @@ -83,7 +83,7 @@ if (NOT WIN32) @ONLY ) add_custom_target(flang-to-external-fc ALL DEPENDS ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc) - install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc DESTINATION "${CMAKE_INSTALL_BINDIR}") + install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/flang-to-external-fc DESTINATION "${FLANG_TOOLS_INSTALL_DIR}") endif() # TODO Move this to a more suitable location diff --git a/flang/tools/flang-driver/CMakeLists.txt b/flang/tools/flang-driver/CMakeLists.txt index 3ce8b407450d..6b2e2b0dc33a 100644 --- a/flang/tools/flang-driver/CMakeLists.txt +++ b/flang/tools/flang-driver/CMakeLists.txt @@ -43,4 +43,4 @@ if(FLANG_PLUGIN_SUPPORT) export_executable_symbols_for_plugins(flang-new) endif() -install(TARGETS flang-new DESTINATION "${CMAKE_INSTALL_BINDIR}") +install(TARGETS flang-new DESTINATION "${FLANG_TOOLS_INSTALL_DIR}") diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake index 2ee066b41535..c6a4740ab9eb 100644 --- a/lld/cmake/modules/AddLLD.cmake +++ b/lld/cmake/modules/AddLLD.cmake @@ -56,7 +56,7 @@ macro(add_lld_tool name) get_target_export_arg(${name} LLD export_to_lldtargets) install(TARGETS ${name} ${export_to_lldtargets} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION "${LLD_TOOLS_INSTALL_DIR}" COMPONENT ${name}) if(NOT CMAKE_CONFIGURATION_TYPES) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/lldb/cmake/modules/AddLLDB.cmake index 328e883ddbe5..86eebba45e01 100644 --- a/lldb/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -221,7 +221,7 @@ function(add_lldb_executable name) endif() if(ARG_GENERATE_INSTALL) - set(install_dest bin) + set(install_dest "${LLVM_TOOLS_INSTALL_DIR}") if(ARG_INSTALL_PREFIX) set(install_dest ${ARG_INSTALL_PREFIX}) endif() ================================================ FILE: ports/llvm/0003-fix-llvm-config.patch ================================================ llvm/tools/llvm-config/llvm-config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp index d5b76b1bb6c1..9fedcb2ab75f 100644 --- a/llvm/tools/llvm-config/llvm-config.cpp +++ b/llvm/tools/llvm-config/llvm-config.cpp @@ -304,7 +304,7 @@ int main(int argc, char **argv) { // bin dir). sys::fs::make_absolute(CurrentPath); CurrentExecPrefix = - sys::path::parent_path(sys::path::parent_path(CurrentPath)).str(); + sys::path::parent_path(sys::path::parent_path(sys::path::parent_path(CurrentPath))).str(); // Check to see if we are inside a development tree by comparing to possible // locations (prefix style or CMake style). ================================================ FILE: ports/llvm/0004-disable-libomp-aliases.patch ================================================ openmp/runtime/src/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt index bb5822264514..340cef14df89 100644 --- a/openmp/runtime/src/CMakeLists.txt +++ b/openmp/runtime/src/CMakeLists.txt @@ -215,7 +215,7 @@ endif() set(LIBOMP_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE) # Add symbolic links to libomp -if(NOT WIN32) +if(0) add_custom_command(TARGET omp POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink ${LIBOMP_LIB_FILE} libgomp${LIBOMP_LIBRARY_SUFFIX} @@ -367,6 +367,7 @@ if(WIN32) install(TARGETS omp ${export_to_llvmexports} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") install(TARGETS ${LIBOMP_IMP_LIB_TARGET} ARCHIVE DESTINATION "${OPENMP_INSTALL_LIBDIR}") # Create aliases (regular copies) of the library for backwards compatibility + if(0) set(LIBOMP_ALIASES "libiomp5md") foreach(alias IN LISTS LIBOMP_ALIASES) install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy \"${LIBOMP_LIB_FILE}\" @@ -375,6 +376,7 @@ if(WIN32) install(CODE "execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E copy \"${LIBOMP_IMP_LIB_FILE}\" \"${alias}${CMAKE_STATIC_LIBRARY_SUFFIX}\" WORKING_DIRECTORY \"${outdir}\")") endforeach() + endif() else() install(TARGETS omp ${export_to_llvmexports} ${LIBOMP_INSTALL_KIND} DESTINATION "${OPENMP_INSTALL_LIBDIR}") ================================================ FILE: ports/llvm/0005-remove-numpy.patch ================================================ mlir/cmake/modules/MLIRDetectPythonEnv.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/cmake/modules/MLIRDetectPythonEnv.cmake b/mlir/cmake/modules/MLIRDetectPythonEnv.cmake index 0a486c1bbb54..c07c55b1e17a 100644 --- a/mlir/cmake/modules/MLIRDetectPythonEnv.cmake +++ b/mlir/cmake/modules/MLIRDetectPythonEnv.cmake @@ -19,7 +19,7 @@ macro(mlir_configure_python_dev_packages) set(_python_development_component Development.Module) find_package(Python3 ${LLVM_MINIMUM_PYTHON_VERSION} - COMPONENTS Interpreter ${_python_development_component} NumPy REQUIRED) + COMPONENTS Interpreter ${_python_development_component} REQUIRED) unset(_python_development_component) message(STATUS "Found python include dirs: ${Python3_INCLUDE_DIRS}") message(STATUS "Found python libraries: ${Python3_LIBRARIES}") ================================================ FILE: ports/llvm/0006-create-destination-mlir-directory.patch ================================================ mlir/python/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mlir/python/CMakeLists.txt b/mlir/python/CMakeLists.txt index 50fbca38a08f..957a6722c21c 100644 --- a/mlir/python/CMakeLists.txt +++ b/mlir/python/CMakeLists.txt @@ -527,6 +527,8 @@ add_mlir_python_common_capi_library(MLIRPythonCAPI ${_ADDL_TEST_SOURCES} ) +file(MAKE_DIRECTORY "${MLIR_BINARY_DIR}/python_packages/mlir_core/mlir/_mlir_libs") + ################################################################################ # Custom targets. ################################################################################ ================================================ FILE: ports/llvm/75711.patch ================================================ From afec08ef9f1015ea3fe8d67b92acfbb7837c6e9f Mon Sep 17 00:00:00 2001 From: Max Winkler Date: Tue, 19 Mar 2024 08:30:54 -0400 Subject: [PATCH] [clang] Add `intrin0.h` header to mimic `intrin0.h` used by MSVC STL for clang-cl (#75711) Fixes https://github.com/llvm/llvm-project/issues/53520. #### Description #### Provide `intrin0.h` to be the minimal set of intrinsics that the MSVC STL requires. The `intrin0.h` header matches the latest header provided by MSVC 1939 which does include some extra intrinsics that the MSVC STL does not use. Inside `BuiltinHeaders.def` I kept the header description as `intrin.h`. If you want me to change those to `intrin0.h` for the moved intrinsics let me know. This should now allow `immintrin.h` to be used with function targets for runtime cpu detection of simd instruction sets without worrying about the compile-time overhead from MSVC STL including `intrin.h` on clang. I still need to figure out how to best update MSVC STL to detect for the presence of `intrin0.h` from clang and to use this header over `intrin.h`. #### Testing #### Built clang locally and ran the test suite. I still need to do a pass over the existing unit tests for the ms intrinsics to make sure there aren't any gaps. Wanted to get this PR up for discussion first. Modified latest MSVC STL from github to point to `intrin0.h` for clang. Wrote some test files that included MSVC STL headers that rely on intrinsics such as `atomic`, `bit` and `vector`. Built the unit tests against x86, arm, aarch64, and x64. #### Benchmarks #### The following include times are based on the x64 target with the modified headers in this PR. These timings were done by using `clang-cl.exe -ftime-trace` and taking the wall time for parsing `intrin.h` and `intrin0.h`. `intrin.h` takes ~897ms to parse. `intrin0.h` takes ~1ms to parse. If there is anything required or a different approach is preferred let me know. I would very much like to move this over the finish line so we can use function targets with clang-cl. --- clang/lib/Headers/CMakeLists.txt | 2 + clang/lib/Headers/bmiintrin.h | 6 +- clang/lib/Headers/immintrin.h | 240 ++++++++++----------------- clang/lib/Headers/intrin.h | 217 +----------------------- clang/lib/Headers/intrin0.h | 247 ++++++++++++++++++++++++++++ clang/lib/Headers/keylockerintrin.h | 13 +- clang/lib/Headers/x86gprintrin.h | 21 +-- clang/lib/Headers/x86intrin.h | 30 ++-- clang/lib/Headers/yvals_core.h | 25 +++ 10 files changed, 408 insertions(+), 413 deletions(-) create mode 100644 clang/lib/Headers/intrin0.h create mode 100644 clang/lib/Headers/yvals_core.h diff --git a/clang/lib/Headers/CMakeLists.txt b/clang/lib/Headers/CMakeLists.txt index 902e33bb95897c..97104ccd8db59c 100644 --- a/clang/lib/Headers/CMakeLists.txt +++ b/clang/lib/Headers/CMakeLists.txt @@ -254,8 +254,10 @@ set(x86_files ) set(windows_only_files + intrin0.h intrin.h vadefs.h + yvals_core.h ) set(utility_files diff --git a/clang/lib/Headers/bmiintrin.h b/clang/lib/Headers/bmiintrin.h index d8e57c0cb49404..78bffe68e221a9 100644 --- a/clang/lib/Headers/bmiintrin.h +++ b/clang/lib/Headers/bmiintrin.h @@ -161,8 +161,7 @@ _mm_tzcnt_64(unsigned long long __X) #undef __RELAXED_FN_ATTRS -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__BMI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__BMI__) /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("bmi"))) @@ -610,7 +609,6 @@ __blsr_u64(unsigned long long __X) #undef __DEFAULT_FN_ATTRS -#endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \ - || defined(__BMI__) */ +#endif /* !defined(__SCE__) || __has_feature(modules) || defined(__BMI__) */ #endif /* __BMIINTRIN_H */ diff --git a/clang/lib/Headers/immintrin.h b/clang/lib/Headers/immintrin.h index 27800f7a8202c1..508696d3725b9a 100644 --- a/clang/lib/Headers/immintrin.h +++ b/clang/lib/Headers/immintrin.h @@ -16,281 +16,239 @@ #include -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__MMX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__MMX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SSE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SSE__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SSE2__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SSE2__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SSE3__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SSE3__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SSSE3__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SSSE3__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__SSE4_2__) || defined(__SSE4_1__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AES__) || defined(__PCLMUL__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CLFLUSHOPT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CLFLUSHOPT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CLWB__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CLWB__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX2__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX2__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__F16C__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__F16C__) #include #endif /* No feature check desired due to internal checks */ #include -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__BMI2__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__BMI2__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__LZCNT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__LZCNT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__POPCNT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__POPCNT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__FMA__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__FMA__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512F__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512F__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512VL__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512VL__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512BW__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512BW__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512BITALG__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512BITALG__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512CD__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512CD__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512VPOPCNTDQ__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512VPOPCNTDQ__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512VNNI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512VNNI__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VNNI__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVXVNNI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVXVNNI__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512DQ__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512DQ__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BITALG__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BW__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512CD__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512DQ__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512ER__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512ER__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512IFMA__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512IFMA__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512IFMA__) && defined(__AVX512VL__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVXIFMA__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVXIFMA__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512VBMI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512VBMI__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VBMI__) && defined(__AVX512VL__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512VBMI2__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512VBMI2__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VBMI2__) && defined(__AVX512VL__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512PF__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512PF__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512FP16__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512FP16__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512FP16__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVX512BF16__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVX512BF16__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BF16__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__PKU__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__PKU__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__VPCLMULQDQ__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__VPCLMULQDQ__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__VAES__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__VAES__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__GFNI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__GFNI__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVXVNNIINT8__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVXVNNIINT8__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVXNECONVERT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVXNECONVERT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SHA512__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SHA512__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SM3__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SM3__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SM4__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SM4__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AVXVNNIINT16__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AVXVNNIINT16__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RDPID__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RDPID__) /// Reads the value of the IA32_TSC_AUX MSR (0xc0000103). /// /// \headerfile @@ -304,8 +262,7 @@ _rdpid_u32(void) { } #endif // __RDPID__ -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RDRND__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RDRND__) /// Returns a 16-bit hardware-generated random value. /// /// \headerfile @@ -367,8 +324,7 @@ _rdrand64_step(unsigned long long *__p) } #endif /* __RDRND__ */ -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__FSGSBASE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__FSGSBASE__) #ifdef __x86_64__ /// Reads the FS base register. /// @@ -481,8 +437,7 @@ _writegsbase_u64(unsigned long long __V) #endif #endif /* __FSGSBASE__ */ -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__MOVBE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__MOVBE__) /* The structs used below are to force the load/store to be unaligned. This * is accomplished with the __packed__ attribute. The __may_alias__ prevents @@ -598,139 +553,118 @@ _storebe_i64(void * __P, long long __D) { #endif #endif /* __MOVBE */ -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RTM__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RTM__) #include #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SHA__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SHA__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__FXSR__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__FXSR__) #include #endif /* No feature check desired due to internal MSC_VER checks */ #include -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__XSAVEOPT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__XSAVEOPT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__XSAVEC__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__XSAVEC__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__XSAVES__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__XSAVES__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SHSTK__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SHSTK__) #include #endif /* Intrinsics inside adcintrin.h are available at all times. */ #include -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__ADX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__ADX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RDSEED__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RDSEED__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__WBNOINVD__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__WBNOINVD__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CLDEMOTE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CLDEMOTE__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__WAITPKG__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__WAITPKG__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__MOVDIRI__) || defined(__MOVDIR64B__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__MOVDIRI__) || \ + defined(__MOVDIR64B__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__PCONFIG__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__PCONFIG__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SGX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SGX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__PTWRITE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__PTWRITE__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__INVPCID__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__INVPCID__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AMX_FP16__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AMX_FP16__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__KL__) || defined(__WIDEKL__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__KL__) || \ + defined(__WIDEKL__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AMX_TILE__) || defined(__AMX_INT8__) || defined(__AMX_BF16__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AMX_TILE__) || \ + defined(__AMX_INT8__) || defined(__AMX_BF16__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__AMX_COMPLEX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__AMX_COMPLEX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ defined(__AVX512VP2INTERSECT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ +#if !defined(__SCE__) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VP2INTERSECT__)) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__ENQCMD__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__ENQCMD__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SERIALIZE__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SERIALIZE__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__TSXLDTRK__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__TSXLDTRK__) #include #endif diff --git a/clang/lib/Headers/intrin.h b/clang/lib/Headers/intrin.h index a6395143db54c2..fd27955fbe002d 100644 --- a/clang/lib/Headers/intrin.h +++ b/clang/lib/Headers/intrin.h @@ -15,6 +15,8 @@ #ifndef __INTRIN_H #define __INTRIN_H +#include + /* First include the standard intrinsics. */ #if defined(__i386__) || defined(__x86_64__) #include @@ -131,8 +133,6 @@ void __writefsqword(unsigned long, unsigned __int64); void __writefsword(unsigned long, unsigned short); void __writemsr(unsigned long, unsigned __int64); void *_AddressOfReturnAddress(void); -unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask); -unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask); unsigned char _bittest(long const *, long); unsigned char _bittestandcomplement(long *, long); unsigned char _bittestandreset(long *, long); @@ -151,7 +151,6 @@ long _InterlockedExchangeAdd_HLERelease(long volatile *, long); __int64 _InterlockedExchangeAdd64_HLEAcquire(__int64 volatile *, __int64); __int64 _InterlockedExchangeAdd64_HLERelease(__int64 volatile *, __int64); void _ReadBarrier(void); -void _ReadWriteBarrier(void); unsigned int _rorx_u32(unsigned int, const unsigned int); int _sarx_i32(int, unsigned int); #if __STDC_HOSTED__ @@ -182,12 +181,6 @@ unsigned char __readgsbyte(unsigned long); unsigned long __readgsdword(unsigned long); unsigned __int64 __readgsqword(unsigned long); unsigned short __readgsword(unsigned long); -unsigned __int64 __shiftleft128(unsigned __int64 _LowPart, - unsigned __int64 _HighPart, - unsigned char _Shift); -unsigned __int64 __shiftright128(unsigned __int64 _LowPart, - unsigned __int64 _HighPart, - unsigned char _Shift); void __stosq(unsigned __int64 *, unsigned __int64, size_t); unsigned char __vmx_on(unsigned __int64 *); unsigned char __vmx_vmclear(unsigned __int64 *); @@ -236,212 +229,10 @@ unsigned __int64 _shlx_u64(unsigned __int64, unsigned int); unsigned __int64 _shrx_u64(unsigned __int64, unsigned int); __int64 __mulh(__int64, __int64); unsigned __int64 __umulh(unsigned __int64, unsigned __int64); -__int64 _mul128(__int64, __int64, __int64*); -unsigned __int64 _umul128(unsigned __int64, - unsigned __int64, - unsigned __int64*); +__int64 _mul128(__int64, __int64, __int64 *); #endif /* __x86_64__ */ -#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) - -unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask); -unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask); - -#endif - -#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) -__int64 _InterlockedDecrement64(__int64 volatile *_Addend); -__int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value); -__int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value); -__int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value); -__int64 _InterlockedIncrement64(__int64 volatile *_Addend); -__int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask); - -#endif - -/*----------------------------------------------------------------------------*\ -|* Interlocked Exchange Add -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value); -char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value); -char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value); -short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value); -short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value); -short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value); -long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value); -long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value); -long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value); -__int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, __int64 _Value); -__int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value); -__int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, __int64 _Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Increment -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -short _InterlockedIncrement16_acq(short volatile *_Value); -short _InterlockedIncrement16_nf(short volatile *_Value); -short _InterlockedIncrement16_rel(short volatile *_Value); -long _InterlockedIncrement_acq(long volatile *_Value); -long _InterlockedIncrement_nf(long volatile *_Value); -long _InterlockedIncrement_rel(long volatile *_Value); -__int64 _InterlockedIncrement64_acq(__int64 volatile *_Value); -__int64 _InterlockedIncrement64_nf(__int64 volatile *_Value); -__int64 _InterlockedIncrement64_rel(__int64 volatile *_Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Decrement -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -short _InterlockedDecrement16_acq(short volatile *_Value); -short _InterlockedDecrement16_nf(short volatile *_Value); -short _InterlockedDecrement16_rel(short volatile *_Value); -long _InterlockedDecrement_acq(long volatile *_Value); -long _InterlockedDecrement_nf(long volatile *_Value); -long _InterlockedDecrement_rel(long volatile *_Value); -__int64 _InterlockedDecrement64_acq(__int64 volatile *_Value); -__int64 _InterlockedDecrement64_nf(__int64 volatile *_Value); -__int64 _InterlockedDecrement64_rel(__int64 volatile *_Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked And -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedAnd8_acq(char volatile *_Value, char _Mask); -char _InterlockedAnd8_nf(char volatile *_Value, char _Mask); -char _InterlockedAnd8_rel(char volatile *_Value, char _Mask); -short _InterlockedAnd16_acq(short volatile *_Value, short _Mask); -short _InterlockedAnd16_nf(short volatile *_Value, short _Mask); -short _InterlockedAnd16_rel(short volatile *_Value, short _Mask); -long _InterlockedAnd_acq(long volatile *_Value, long _Mask); -long _InterlockedAnd_nf(long volatile *_Value, long _Mask); -long _InterlockedAnd_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Bit Counting and Testing -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -unsigned char _interlockedbittestandset_acq(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandset_nf(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandset_rel(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase, - long _BitPos); -unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase, - long _BitPos); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Or -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedOr8_acq(char volatile *_Value, char _Mask); -char _InterlockedOr8_nf(char volatile *_Value, char _Mask); -char _InterlockedOr8_rel(char volatile *_Value, char _Mask); -short _InterlockedOr16_acq(short volatile *_Value, short _Mask); -short _InterlockedOr16_nf(short volatile *_Value, short _Mask); -short _InterlockedOr16_rel(short volatile *_Value, short _Mask); -long _InterlockedOr_acq(long volatile *_Value, long _Mask); -long _InterlockedOr_nf(long volatile *_Value, long _Mask); -long _InterlockedOr_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Xor -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedXor8_acq(char volatile *_Value, char _Mask); -char _InterlockedXor8_nf(char volatile *_Value, char _Mask); -char _InterlockedXor8_rel(char volatile *_Value, char _Mask); -short _InterlockedXor16_acq(short volatile *_Value, short _Mask); -short _InterlockedXor16_nf(short volatile *_Value, short _Mask); -short _InterlockedXor16_rel(short volatile *_Value, short _Mask); -long _InterlockedXor_acq(long volatile *_Value, long _Mask); -long _InterlockedXor_nf(long volatile *_Value, long _Mask); -long _InterlockedXor_rel(long volatile *_Value, long _Mask); -__int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask); -__int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Exchange -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedExchange8_acq(char volatile *_Target, char _Value); -char _InterlockedExchange8_nf(char volatile *_Target, char _Value); -char _InterlockedExchange8_rel(char volatile *_Target, char _Value); -short _InterlockedExchange16_acq(short volatile *_Target, short _Value); -short _InterlockedExchange16_nf(short volatile *_Target, short _Value); -short _InterlockedExchange16_rel(short volatile *_Target, short _Value); -long _InterlockedExchange_acq(long volatile *_Target, long _Value); -long _InterlockedExchange_nf(long volatile *_Target, long _Value); -long _InterlockedExchange_rel(long volatile *_Target, long _Value); -__int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value); -__int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value); -__int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value); -#endif -/*----------------------------------------------------------------------------*\ -|* Interlocked Compare Exchange -\*----------------------------------------------------------------------------*/ -#if defined(__arm__) || defined(__aarch64__) -char _InterlockedCompareExchange8_acq(char volatile *_Destination, - char _Exchange, char _Comparand); -char _InterlockedCompareExchange8_nf(char volatile *_Destination, - char _Exchange, char _Comparand); -char _InterlockedCompareExchange8_rel(char volatile *_Destination, - char _Exchange, char _Comparand); -short _InterlockedCompareExchange16_acq(short volatile *_Destination, - short _Exchange, short _Comparand); -short _InterlockedCompareExchange16_nf(short volatile *_Destination, - short _Exchange, short _Comparand); -short _InterlockedCompareExchange16_rel(short volatile *_Destination, - short _Exchange, short _Comparand); -long _InterlockedCompareExchange_acq(long volatile *_Destination, - long _Exchange, long _Comparand); -long _InterlockedCompareExchange_nf(long volatile *_Destination, - long _Exchange, long _Comparand); -long _InterlockedCompareExchange_rel(long volatile *_Destination, - long _Exchange, long _Comparand); -__int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -__int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -__int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination, - __int64 _Exchange, __int64 _Comparand); -#endif -#if defined(__x86_64__) || defined(__aarch64__) -unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_ComparandResult); -#endif -#if defined(__aarch64__) -unsigned char _InterlockedCompareExchange128_acq(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_ComparandResult); -unsigned char _InterlockedCompareExchange128_nf(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_ComparandResult); -unsigned char _InterlockedCompareExchange128_rel(__int64 volatile *_Destination, - __int64 _ExchangeHigh, - __int64 _ExchangeLow, - __int64 *_ComparandResult); -#endif - /*----------------------------------------------------------------------------*\ |* movs, stos \*----------------------------------------------------------------------------*/ @@ -583,8 +374,6 @@ unsigned int _CountLeadingOnes(unsigned long); unsigned int _CountLeadingOnes64(unsigned __int64); unsigned int _CountLeadingSigns(long); unsigned int _CountLeadingSigns64(__int64); -unsigned int _CountLeadingZeros(unsigned long); -unsigned int _CountLeadingZeros64(unsigned _int64); unsigned int _CountOneBits(unsigned long); unsigned int _CountOneBits64(unsigned __int64); diff --git a/clang/lib/Headers/intrin0.h b/clang/lib/Headers/intrin0.h new file mode 100644 index 00000000000000..31f362ec84d5c5 --- /dev/null +++ b/clang/lib/Headers/intrin0.h @@ -0,0 +1,247 @@ +/* ===-------- intrin.h ---------------------------------------------------=== + * + * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. + * See https://llvm.org/LICENSE.txt for license information. + * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + * + *===-----------------------------------------------------------------------=== + */ + +/* Only include this if we're compiling for the windows platform. */ +#ifndef _MSC_VER +#include_next +#else + +#ifndef __INTRIN0_H +#define __INTRIN0_H + +#ifdef __x86_64__ +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned char _BitScanForward(unsigned long *_Index, unsigned long _Mask); +unsigned char _BitScanReverse(unsigned long *_Index, unsigned long _Mask); +void _ReadWriteBarrier(void); + +#if defined(__aarch64__) +unsigned int _CountLeadingZeros(unsigned long); +unsigned int _CountLeadingZeros64(unsigned _int64); +unsigned char _InterlockedCompareExchange128_acq(__int64 volatile *_Destination, + __int64 _ExchangeHigh, + __int64 _ExchangeLow, + __int64 *_ComparandResult); +unsigned char _InterlockedCompareExchange128_nf(__int64 volatile *_Destination, + __int64 _ExchangeHigh, + __int64 _ExchangeLow, + __int64 *_ComparandResult); +unsigned char _InterlockedCompareExchange128_rel(__int64 volatile *_Destination, + __int64 _ExchangeHigh, + __int64 _ExchangeLow, + __int64 *_ComparandResult); +#endif + +#ifdef __x86_64__ +unsigned __int64 _umul128(unsigned __int64, unsigned __int64, + unsigned __int64 *); +unsigned __int64 __shiftleft128(unsigned __int64 _LowPart, + unsigned __int64 _HighPart, + unsigned char _Shift); +unsigned __int64 __shiftright128(unsigned __int64 _LowPart, + unsigned __int64 _HighPart, + unsigned char _Shift); +#endif + +#if defined(__x86_64__) || defined(__i386__) +void _mm_pause(void); +#endif + +#if defined(__x86_64__) || defined(__aarch64__) +unsigned char _InterlockedCompareExchange128(__int64 volatile *_Destination, + __int64 _ExchangeHigh, + __int64 _ExchangeLow, + __int64 *_ComparandResult); +#endif + +#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__) +unsigned char _BitScanForward64(unsigned long *_Index, unsigned __int64 _Mask); +unsigned char _BitScanReverse64(unsigned long *_Index, unsigned __int64 _Mask); +#endif + +#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \ + defined(__aarch64__) +__int64 _InterlockedDecrement64(__int64 volatile *_Addend); +__int64 _InterlockedExchange64(__int64 volatile *_Target, __int64 _Value); +__int64 _InterlockedExchangeAdd64(__int64 volatile *_Addend, __int64 _Value); +__int64 _InterlockedExchangeSub64(__int64 volatile *_Subend, __int64 _Value); +__int64 _InterlockedIncrement64(__int64 volatile *_Addend); +__int64 _InterlockedOr64(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedXor64(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedAnd64(__int64 volatile *_Value, __int64 _Mask); +#endif + +#if defined(__arm__) || defined(__aarch64__) +/*----------------------------------------------------------------------------*\ +|* Interlocked Exchange Add +\*----------------------------------------------------------------------------*/ +char _InterlockedExchangeAdd8_acq(char volatile *_Addend, char _Value); +char _InterlockedExchangeAdd8_nf(char volatile *_Addend, char _Value); +char _InterlockedExchangeAdd8_rel(char volatile *_Addend, char _Value); +short _InterlockedExchangeAdd16_acq(short volatile *_Addend, short _Value); +short _InterlockedExchangeAdd16_nf(short volatile *_Addend, short _Value); +short _InterlockedExchangeAdd16_rel(short volatile *_Addend, short _Value); +long _InterlockedExchangeAdd_acq(long volatile *_Addend, long _Value); +long _InterlockedExchangeAdd_nf(long volatile *_Addend, long _Value); +long _InterlockedExchangeAdd_rel(long volatile *_Addend, long _Value); +__int64 _InterlockedExchangeAdd64_acq(__int64 volatile *_Addend, + __int64 _Value); +__int64 _InterlockedExchangeAdd64_nf(__int64 volatile *_Addend, __int64 _Value); +__int64 _InterlockedExchangeAdd64_rel(__int64 volatile *_Addend, + __int64 _Value); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Increment +\*----------------------------------------------------------------------------*/ +short _InterlockedIncrement16_acq(short volatile *_Value); +short _InterlockedIncrement16_nf(short volatile *_Value); +short _InterlockedIncrement16_rel(short volatile *_Value); +long _InterlockedIncrement_acq(long volatile *_Value); +long _InterlockedIncrement_nf(long volatile *_Value); +long _InterlockedIncrement_rel(long volatile *_Value); +__int64 _InterlockedIncrement64_acq(__int64 volatile *_Value); +__int64 _InterlockedIncrement64_nf(__int64 volatile *_Value); +__int64 _InterlockedIncrement64_rel(__int64 volatile *_Value); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Decrement +\*----------------------------------------------------------------------------*/ +short _InterlockedDecrement16_acq(short volatile *_Value); +short _InterlockedDecrement16_nf(short volatile *_Value); +short _InterlockedDecrement16_rel(short volatile *_Value); +long _InterlockedDecrement_acq(long volatile *_Value); +long _InterlockedDecrement_nf(long volatile *_Value); +long _InterlockedDecrement_rel(long volatile *_Value); +__int64 _InterlockedDecrement64_acq(__int64 volatile *_Value); +__int64 _InterlockedDecrement64_nf(__int64 volatile *_Value); +__int64 _InterlockedDecrement64_rel(__int64 volatile *_Value); + +/*----------------------------------------------------------------------------*\ +|* Interlocked And +\*----------------------------------------------------------------------------*/ +char _InterlockedAnd8_acq(char volatile *_Value, char _Mask); +char _InterlockedAnd8_nf(char volatile *_Value, char _Mask); +char _InterlockedAnd8_rel(char volatile *_Value, char _Mask); +short _InterlockedAnd16_acq(short volatile *_Value, short _Mask); +short _InterlockedAnd16_nf(short volatile *_Value, short _Mask); +short _InterlockedAnd16_rel(short volatile *_Value, short _Mask); +long _InterlockedAnd_acq(long volatile *_Value, long _Mask); +long _InterlockedAnd_nf(long volatile *_Value, long _Mask); +long _InterlockedAnd_rel(long volatile *_Value, long _Mask); +__int64 _InterlockedAnd64_acq(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedAnd64_nf(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedAnd64_rel(__int64 volatile *_Value, __int64 _Mask); + +/*----------------------------------------------------------------------------*\ +|* Bit Counting and Testing +\*----------------------------------------------------------------------------*/ +unsigned char _interlockedbittestandset_acq(long volatile *_BitBase, + long _BitPos); +unsigned char _interlockedbittestandset_nf(long volatile *_BitBase, + long _BitPos); +unsigned char _interlockedbittestandset_rel(long volatile *_BitBase, + long _BitPos); +unsigned char _interlockedbittestandreset_acq(long volatile *_BitBase, + long _BitPos); +unsigned char _interlockedbittestandreset_nf(long volatile *_BitBase, + long _BitPos); +unsigned char _interlockedbittestandreset_rel(long volatile *_BitBase, + long _BitPos); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Or +\*----------------------------------------------------------------------------*/ +char _InterlockedOr8_acq(char volatile *_Value, char _Mask); +char _InterlockedOr8_nf(char volatile *_Value, char _Mask); +char _InterlockedOr8_rel(char volatile *_Value, char _Mask); +short _InterlockedOr16_acq(short volatile *_Value, short _Mask); +short _InterlockedOr16_nf(short volatile *_Value, short _Mask); +short _InterlockedOr16_rel(short volatile *_Value, short _Mask); +long _InterlockedOr_acq(long volatile *_Value, long _Mask); +long _InterlockedOr_nf(long volatile *_Value, long _Mask); +long _InterlockedOr_rel(long volatile *_Value, long _Mask); +__int64 _InterlockedOr64_acq(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedOr64_nf(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedOr64_rel(__int64 volatile *_Value, __int64 _Mask); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Xor +\*----------------------------------------------------------------------------*/ +char _InterlockedXor8_acq(char volatile *_Value, char _Mask); +char _InterlockedXor8_nf(char volatile *_Value, char _Mask); +char _InterlockedXor8_rel(char volatile *_Value, char _Mask); +short _InterlockedXor16_acq(short volatile *_Value, short _Mask); +short _InterlockedXor16_nf(short volatile *_Value, short _Mask); +short _InterlockedXor16_rel(short volatile *_Value, short _Mask); +long _InterlockedXor_acq(long volatile *_Value, long _Mask); +long _InterlockedXor_nf(long volatile *_Value, long _Mask); +long _InterlockedXor_rel(long volatile *_Value, long _Mask); +__int64 _InterlockedXor64_acq(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedXor64_nf(__int64 volatile *_Value, __int64 _Mask); +__int64 _InterlockedXor64_rel(__int64 volatile *_Value, __int64 _Mask); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Exchange +\*----------------------------------------------------------------------------*/ +char _InterlockedExchange8_acq(char volatile *_Target, char _Value); +char _InterlockedExchange8_nf(char volatile *_Target, char _Value); +char _InterlockedExchange8_rel(char volatile *_Target, char _Value); +short _InterlockedExchange16_acq(short volatile *_Target, short _Value); +short _InterlockedExchange16_nf(short volatile *_Target, short _Value); +short _InterlockedExchange16_rel(short volatile *_Target, short _Value); +long _InterlockedExchange_acq(long volatile *_Target, long _Value); +long _InterlockedExchange_nf(long volatile *_Target, long _Value); +long _InterlockedExchange_rel(long volatile *_Target, long _Value); +__int64 _InterlockedExchange64_acq(__int64 volatile *_Target, __int64 _Value); +__int64 _InterlockedExchange64_nf(__int64 volatile *_Target, __int64 _Value); +__int64 _InterlockedExchange64_rel(__int64 volatile *_Target, __int64 _Value); + +/*----------------------------------------------------------------------------*\ +|* Interlocked Compare Exchange +\*----------------------------------------------------------------------------*/ +char _InterlockedCompareExchange8_acq(char volatile *_Destination, + char _Exchange, char _Comparand); +char _InterlockedCompareExchange8_nf(char volatile *_Destination, + char _Exchange, char _Comparand); +char _InterlockedCompareExchange8_rel(char volatile *_Destination, + char _Exchange, char _Comparand); +short _InterlockedCompareExchange16_acq(short volatile *_Destination, + short _Exchange, short _Comparand); +short _InterlockedCompareExchange16_nf(short volatile *_Destination, + short _Exchange, short _Comparand); +short _InterlockedCompareExchange16_rel(short volatile *_Destination, + short _Exchange, short _Comparand); +long _InterlockedCompareExchange_acq(long volatile *_Destination, + long _Exchange, long _Comparand); +long _InterlockedCompareExchange_nf(long volatile *_Destination, long _Exchange, + long _Comparand); +long _InterlockedCompareExchange_rel(long volatile *_Destination, + long _Exchange, long _Comparand); +__int64 _InterlockedCompareExchange64_acq(__int64 volatile *_Destination, + __int64 _Exchange, + __int64 _Comparand); +__int64 _InterlockedCompareExchange64_nf(__int64 volatile *_Destination, + __int64 _Exchange, __int64 _Comparand); +__int64 _InterlockedCompareExchange64_rel(__int64 volatile *_Destination, + __int64 _Exchange, + __int64 _Comparand); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __INTRIN0_H */ +#endif /* _MSC_VER */ diff --git a/clang/lib/Headers/keylockerintrin.h b/clang/lib/Headers/keylockerintrin.h index 1994ac42070ad3..f76e91b4d4b306 100644 --- a/clang/lib/Headers/keylockerintrin.h +++ b/clang/lib/Headers/keylockerintrin.h @@ -28,8 +28,7 @@ #ifndef _KEYLOCKERINTRIN_H #define _KEYLOCKERINTRIN_H -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__KL__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__KL__) /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS \ @@ -327,11 +326,9 @@ _mm_aesdec256kl_u8(__m128i* __odata, __m128i __idata, const void *__h) { #undef __DEFAULT_FN_ATTRS -#endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \ - || defined(__KL__) */ +#endif /* !defined(__SCE__ || __has_feature(modules) || defined(__KL__) */ -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__WIDEKL__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__WIDEKL__) /* Define the default attributes for the functions in this file. */ #define __DEFAULT_FN_ATTRS \ @@ -524,7 +521,7 @@ _mm_aesdecwide256kl_u8(__m128i __odata[8], const __m128i __idata[8], const void* #undef __DEFAULT_FN_ATTRS -#endif /* !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) \ - || defined(__WIDEKL__) */ +#endif /* !defined(__SCE__) || __has_feature(modules) || defined(__WIDEKL__) \ + */ #endif /* _KEYLOCKERINTRIN_H */ diff --git a/clang/lib/Headers/x86gprintrin.h b/clang/lib/Headers/x86gprintrin.h index ed141879fbc744..3d5cc606d7e63d 100644 --- a/clang/lib/Headers/x86gprintrin.h +++ b/clang/lib/Headers/x86gprintrin.h @@ -10,38 +10,31 @@ #ifndef __X86GPRINTRIN_H #define __X86GPRINTRIN_H -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__HRESET__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__HRESET__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__UINTR__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__UINTR__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__USERMSR__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__USERMSR__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CRC32__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CRC32__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__PRFCHI__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__PRFCHI__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RAOINT__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RAOINT__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CMPCCXADD__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CMPCCXADD__) #include #endif diff --git a/clang/lib/Headers/x86intrin.h b/clang/lib/Headers/x86intrin.h index 450fd008dab95b..c20bfbb8fe46e2 100644 --- a/clang/lib/Headers/x86intrin.h +++ b/clang/lib/Headers/x86intrin.h @@ -14,53 +14,43 @@ #include -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__3dNOW__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__3dNOW__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__PRFCHW__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__PRFCHW__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__SSE4A__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__SSE4A__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__FMA4__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__FMA4__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__XOP__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__XOP__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__TBM__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__TBM__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__LWP__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__LWP__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__MWAITX__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__MWAITX__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__CLZERO__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__CLZERO__) #include #endif -#if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) || \ - defined(__RDPRU__) +#if !defined(__SCE__) || __has_feature(modules) || defined(__RDPRU__) #include #endif diff --git a/clang/lib/Headers/yvals_core.h b/clang/lib/Headers/yvals_core.h new file mode 100644 index 00000000000000..5ee194a3e5f5f6 --- /dev/null +++ b/clang/lib/Headers/yvals_core.h @@ -0,0 +1,25 @@ +//===----- yvals_core.h - Internal MSVC STL core header -------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// Only include this if we are aiming for MSVC compatibility. +#ifndef _MSC_VER +#include_next +#else + +#ifndef __clang_yvals_core_h +#define __clang_yvals_core_h + +#include_next + +#ifdef _STL_INTRIN_HEADER +#undef _STL_INTRIN_HEADER +#define _STL_INTRIN_HEADER +#endif + +#endif +#endif ================================================ FILE: ports/llvm/79694.patch ================================================ From 48908fb6d5387082018fb1d8b2f0ddb65e2e2baa Mon Sep 17 00:00:00 2001 From: Phoebe Wang Date: Sat, 27 Jan 2024 22:03:06 +0800 Subject: [PATCH 1/2] [SEH] Ignore EH pad check for internal intrinsics Intrinsics like @llvm.seh.scope.begin and @llvm.seh.scope.end which do not throw do not need funclets in catchpads or cleanuppads. Fixes #69428 Co-authored-by: Robert Cox --- llvm/lib/IR/Verifier.cpp | 5 +++ llvm/test/Verifier/pr69428.ll | 80 +++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 llvm/test/Verifier/pr69428.ll diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 91cf91fbc788bd..0f1e9fa40c9b03 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -4280,6 +4280,11 @@ void Verifier::visitEHPadPredecessors(Instruction &I) { if (auto *II = dyn_cast(TI)) { Check(II->getUnwindDest() == BB && II->getNormalDest() != BB, "EH pad must be jumped to via an unwind edge", ToPad, II); + auto *CalledFn = + dyn_cast(II->getCalledOperand()->stripPointerCasts()); + if (CalledFn && CalledFn->isIntrinsic() && II->doesNotThrow() && + !IntrinsicInst::mayLowerToFunctionCall(CalledFn->getIntrinsicID())) + continue; if (auto Bundle = II->getOperandBundle(LLVMContext::OB_funclet)) FromPad = Bundle->Inputs[0]; else diff --git a/llvm/test/Verifier/pr69428.ll b/llvm/test/Verifier/pr69428.ll new file mode 100644 index 00000000000000..22d732076e3af7 --- /dev/null +++ b/llvm/test/Verifier/pr69428.ll @@ -0,0 +1,80 @@ +; RUN: llvm-as -disable-output %s + +%struct._List_node_emplace_op2 = type { i8 } + +$"??1?$_List_node_emplace_op2@H@@QEAA@XZ" = comdat any + +@"?_List@@3HA" = dso_local local_unnamed_addr global i32 0, align 4 + +; Function Attrs: mustprogress noreturn +define dso_local void @"?ExecutionEngineaddExecutableDependency@@YAXXZ"() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 { +entry: + %agg.tmp.ensured.i = alloca %struct._List_node_emplace_op2, align 1 + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %agg.tmp.ensured.i) + %0 = load i32, ptr @"?_List@@3HA", align 4 + %call.i = call noundef ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i, i32 noundef %0) + invoke void @llvm.seh.scope.begin() + to label %invoke.cont.i unwind label %ehcleanup.i + +invoke.cont.i: ; preds = %entry + invoke void @llvm.seh.scope.end() + to label %invoke.cont2.i unwind label %ehcleanup.i + +invoke.cont2.i: ; preds = %invoke.cont.i + call void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 + unreachable + +ehcleanup.i: ; preds = %invoke.cont.i, %entry + %1 = cleanuppad within none [] + invoke void @llvm.seh.scope.begin() + to label %invoke.cont.i.i unwind label %ehcleanup.i.i + +invoke.cont.i.i: ; preds = %ehcleanup.i + invoke void @llvm.seh.scope.end() + to label %"??1?$_List_node_emplace_op2@H@@QEAA@XZ.exit.i" unwind label %ehcleanup.i.i + +ehcleanup.i.i: ; preds = %invoke.cont.i.i, %ehcleanup.i + %2 = cleanuppad within %1 [] + call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 [ "funclet"(token %2) ] + cleanupret from %2 unwind to caller + +"??1?$_List_node_emplace_op2@H@@QEAA@XZ.exit.i": ; preds = %invoke.cont.i.i + call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 [ "funclet"(token %1) ] + cleanupret from %1 unwind to caller +} + +declare dso_local noundef ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr noundef nonnull returned align 1 dereferenceable(1), i32 noundef) unnamed_addr #1 + +declare dso_local i32 @__CxxFrameHandler3(...) + +; Function Attrs: nofree nosync nounwind memory(none) +declare dso_local void @llvm.seh.scope.begin() #2 + +; Function Attrs: nofree nosync nounwind memory(none) +declare dso_local void @llvm.seh.scope.end() #2 + +; Function Attrs: mustprogress nounwind +define linkonce_odr dso_local void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 comdat align 2 personality ptr @__CxxFrameHandler3 { +entry: + invoke void @llvm.seh.scope.begin() + to label %invoke.cont unwind label %ehcleanup + +invoke.cont: ; preds = %entry + invoke void @llvm.seh.scope.end() + to label %invoke.cont2 unwind label %ehcleanup + +invoke.cont2: ; preds = %invoke.cont + tail call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) #6 + ret void + +ehcleanup: ; preds = %invoke.cont, %entry + %0 = cleanuppad within none [] + call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) #6 [ "funclet"(token %0) ] + cleanupret from %0 unwind to caller +} + +; Function Attrs: nounwind +declare dso_local void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 + +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #5 From a9ea5c30d2fe81ed8774812bf13700c6a81e4900 Mon Sep 17 00:00:00 2001 From: Phoebe Wang Date: Fri, 2 Feb 2024 20:19:50 +0800 Subject: [PATCH 2/2] Simplify test case --- llvm/test/Verifier/pr69428.ll | 56 ++++++++--------------------------- 1 file changed, 12 insertions(+), 44 deletions(-) diff --git a/llvm/test/Verifier/pr69428.ll b/llvm/test/Verifier/pr69428.ll index 22d732076e3af7..be8733bea1ab39 100644 --- a/llvm/test/Verifier/pr69428.ll +++ b/llvm/test/Verifier/pr69428.ll @@ -2,17 +2,13 @@ %struct._List_node_emplace_op2 = type { i8 } -$"??1?$_List_node_emplace_op2@H@@QEAA@XZ" = comdat any +@"?_List@@3HA" = global i32 0, align 4 -@"?_List@@3HA" = dso_local local_unnamed_addr global i32 0, align 4 - -; Function Attrs: mustprogress noreturn -define dso_local void @"?ExecutionEngineaddExecutableDependency@@YAXXZ"() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 { +define void @"?ExecutionEngineaddExecutableDependency@@YAXXZ"() personality ptr @__CxxFrameHandler3 { entry: %agg.tmp.ensured.i = alloca %struct._List_node_emplace_op2, align 1 - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %agg.tmp.ensured.i) %0 = load i32, ptr @"?_List@@3HA", align 4 - %call.i = call noundef ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i, i32 noundef %0) + %call.i = call noundef ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr %agg.tmp.ensured.i, i32 %0) invoke void @llvm.seh.scope.begin() to label %invoke.cont.i unwind label %ehcleanup.i @@ -21,7 +17,7 @@ invoke.cont.i: ; preds = %entry to label %invoke.cont2.i unwind label %ehcleanup.i invoke.cont2.i: ; preds = %invoke.cont.i - call void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 + call void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr %agg.tmp.ensured.i) #6 unreachable ehcleanup.i: ; preds = %invoke.cont.i, %entry @@ -35,46 +31,18 @@ invoke.cont.i.i: ; preds = %ehcleanup.i ehcleanup.i.i: ; preds = %invoke.cont.i.i, %ehcleanup.i %2 = cleanuppad within %1 [] - call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 [ "funclet"(token %2) ] + call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr %agg.tmp.ensured.i) #6 [ "funclet"(token %2) ] cleanupret from %2 unwind to caller "??1?$_List_node_emplace_op2@H@@QEAA@XZ.exit.i": ; preds = %invoke.cont.i.i - call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %agg.tmp.ensured.i) #6 [ "funclet"(token %1) ] + call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr %agg.tmp.ensured.i) #6 [ "funclet"(token %1) ] cleanupret from %1 unwind to caller } -declare dso_local noundef ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr noundef nonnull returned align 1 dereferenceable(1), i32 noundef) unnamed_addr #1 - -declare dso_local i32 @__CxxFrameHandler3(...) - -; Function Attrs: nofree nosync nounwind memory(none) -declare dso_local void @llvm.seh.scope.begin() #2 - -; Function Attrs: nofree nosync nounwind memory(none) -declare dso_local void @llvm.seh.scope.end() #2 - -; Function Attrs: mustprogress nounwind -define linkonce_odr dso_local void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) unnamed_addr #3 comdat align 2 personality ptr @__CxxFrameHandler3 { -entry: - invoke void @llvm.seh.scope.begin() - to label %invoke.cont unwind label %ehcleanup - -invoke.cont: ; preds = %entry - invoke void @llvm.seh.scope.end() - to label %invoke.cont2 unwind label %ehcleanup - -invoke.cont2: ; preds = %invoke.cont - tail call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) #6 - ret void - -ehcleanup: ; preds = %invoke.cont, %entry - %0 = cleanuppad within none [] - call void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1) %this) #6 [ "funclet"(token %0) ] - cleanupret from %0 unwind to caller -} - -; Function Attrs: nounwind -declare dso_local void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 +declare i32 @__CxxFrameHandler3(...) +declare void @llvm.seh.scope.begin() +declare void @llvm.seh.scope.end() -; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #5 +declare void @"??1?$_List_node_emplace_op2@H@@QEAA@XZ"(ptr) +declare void @"??1_Alloc_construct_ptr@@QEAA@XZ"(ptr) +declare ptr @"??0?$_List_node_emplace_op2@H@@QEAA@H@Z"(ptr, i32) ================================================ FILE: ports/llvm/82407.patch ================================================ From 5fcaeaddccc0f7e370bf7bebce113d8d52e1b1bd Mon Sep 17 00:00:00 2001 From: Shafik Yaghmour Date: Tue, 20 Feb 2024 11:22:39 -0800 Subject: [PATCH] [Clang][Sema] Fix incorrect rejection default construction of union with nontrivial member In 765d8a192180f8f33618087b15c022fe758044af we impelemented a fix for incorrect deletion of default constructors in unions. This fix missed a case and so this PR will extend the fix to cover the additional case. Fixes: https://github.com/llvm/llvm-project/issues/81774 --- clang/lib/Sema/SemaDeclCXX.cpp | 18 +++++++++++++++--- .../test/CodeGen/union-non-trivial-member.cpp | 17 +++++++++++++++++ clang/test/SemaCXX/cxx0x-nontrivial-union.cpp | 11 +++++++++++ 4 files changed, 46 insertions(+), 3 deletions(-) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 79263bc3ff671..25a4b4381ca25 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -9442,9 +9442,21 @@ bool SpecialMemberDeletionInfo::shouldDeleteForSubobjectCall( int DiagKind = -1; - if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted) - DiagKind = !Decl ? 0 : 1; - else if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous) + if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted) { + if (CSM == Sema::CXXDefaultConstructor && Field && + Field->getParent()->isUnion()) { + // [class.default.ctor]p2: + // A defaulted default constructor for class X is defined as deleted if + // - X is a union that has a variant member with a non-trivial default + // constructor and no variant member of X has a default member + // initializer + const auto *RD = cast(Field->getParent()); + if (!RD->hasInClassInitializer()) + DiagKind = !Decl ? 0 : 1; + } else { + DiagKind = !Decl ? 0 : 1; + } + } else if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous) DiagKind = 2; else if (!isAccessible(Subobj, Decl)) DiagKind = 3; diff --git a/clang/test/CodeGen/union-non-trivial-member.cpp b/clang/test/CodeGen/union-non-trivial-member.cpp index fdc9fd16911e1..8b055a9970fc7 100644 --- a/clang/test/CodeGen/union-non-trivial-member.cpp +++ b/clang/test/CodeGen/union-non-trivial-member.cpp @@ -15,14 +15,25 @@ union UnionNonTrivial { non_trivial_constructor b{}; }; +struct Handle { + Handle(int) {} +}; + +union UnionNonTrivialEqualInit { + int NoState = 0; + Handle CustomState; +}; + void f() { UnionInt u1; UnionNonTrivial u2; + UnionNonTrivialEqualInit u3; } // CHECK: define dso_local void @_Z1fv() // CHECK: call void @_ZN8UnionIntC1Ev // CHECK-NEXT: call void @_ZN15UnionNonTrivialC1Ev +// CHECK-NEXT: call void @_ZN24UnionNonTrivialEqualInitC1Ev // CHECK: define {{.*}}void @_ZN8UnionIntC1Ev // CHECK: call void @_ZN8UnionIntC2Ev @@ -30,8 +41,14 @@ void f() { // CHECK: define {{.*}}void @_ZN15UnionNonTrivialC1Ev // CHECK: call void @_ZN15UnionNonTrivialC2Ev +// CHECK: define {{.*}}void @_ZN24UnionNonTrivialEqualInitC1Ev +// CHECK: call void @_ZN24UnionNonTrivialEqualInitC2Ev + // CHECK: define {{.*}}void @_ZN8UnionIntC2Ev // CHECK: store i32 1000 // CHECK: define {{.*}}void @_ZN15UnionNonTrivialC2Ev // CHECK: call void @_ZN23non_trivial_constructorC1Ev + +// CHECK: define {{.*}}void @_ZN24UnionNonTrivialEqualInitC2Ev +// CHECK: store i32 0 diff --git a/clang/test/SemaCXX/cxx0x-nontrivial-union.cpp b/clang/test/SemaCXX/cxx0x-nontrivial-union.cpp index c7cdf76d850db..833642b3d739a 100644 --- a/clang/test/SemaCXX/cxx0x-nontrivial-union.cpp +++ b/clang/test/SemaCXX/cxx0x-nontrivial-union.cpp @@ -188,3 +188,14 @@ static_assert(U2().b.x == 100, ""); static_assert(U3().b.x == 100, ""); } // namespace GH48416 + +namespace GH81774 { +struct Handle { + Handle(int) {} +}; +// Should be well-formed because NoState has a brace-or-equal-initializer. +union a { + int NoState = 0; + Handle CustomState; +} b; +} // namespace GH81774 ================================================ FILE: ports/llvm/add-include-chrono.patch ================================================ diff --git a/lldb/tools/lldb-dap/ProgressEvent.h b/lldb/tools/lldb-dap/ProgressEvent.h index dac2197..72317b8 100644 --- a/lldb/tools/lldb-dap/ProgressEvent.h +++ b/lldb/tools/lldb-dap/ProgressEvent.h @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include +#include #include #include #include ================================================ FILE: ports/llvm/clang_usage ================================================ The package clang provides CMake targets: find_package(Clang CONFIG REQUIRED) target_include_directories(main PRIVATE ${CLANG_INCLUDE_DIRS}) target_link_libraries(main PRIVATE clangBasic clangLex clangParse clangAST ...) ================================================ FILE: ports/llvm/cmake4.patch ================================================ diff --git a/cmake/Modules/HandleCompilerRT.cmake b/cmake/Modules/HandleCompilerRT.cmake index 6865f45175..33dda44d18 100644 --- a/cmake/Modules/HandleCompilerRT.cmake +++ b/cmake/Modules/HandleCompilerRT.cmake @@ -20,25 +20,25 @@ function(get_component_name name variable) if(NOT name MATCHES "builtins.*") set(component_name "${name}_") endif() - if (CMAKE_OSX_SYSROOT MATCHES ".+MacOSX.+") + if (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+MacOSX.+") set(component_name "${component_name}osx") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+iPhoneOS.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+iPhoneOS.+") set(component_name "${component_name}ios") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+iPhoneSimulator.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+iPhoneSimulator.+") set(component_name "${component_name}iossim") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+AppleTVOS.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+AppleTVOS.+") set(component_name "${component_name}tvos") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+AppleTVSimulator.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+AppleTVSimulator.+") set(component_name "${component_name}tvossim") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+WatchOS.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+WatchOS.+") set(component_name "${component_name}watchos") - elseif (CMAKE_OSX_SYSROOT MATCHES ".+WatchSimulator.+") + elseif (_CMAKE_OSX_SYSROOT_PATH MATCHES ".+WatchSimulator.+") set(component_name "${component_name}watchossim") else() - message(WARNING "Unknown Apple SDK ${CMAKE_OSX_SYSROOT}, we don't know which compiler-rt library suffix to use.") + message(WARNING "Unknown Apple SDK ${_CMAKE_OSX_SYSROOT_PATH}, we don't know which compiler-rt library suffix to use.") endif() else() set(component_name "${name}") diff --git a/libcxxabi/src/CMakeLists.txt b/libcxxabi/src/CMakeLists.txt index f4722c3b35..a553615ebc 100644 --- a/libcxxabi/src/CMakeLists.txt +++ b/libcxxabi/src/CMakeLists.txt @@ -134,7 +134,7 @@ if ( APPLE ) # Make sure we link in CrashReporterClient if we find it -- it's used by # abort() on Apple platforms when building the system dylib. find_library(CrashReporterClient NAMES libCrashReporterClient.a - PATHS "${CMAKE_OSX_SYSROOT}/usr/local/lib") + PATHS "${_CMAKE_OSX_SYSROOT_PATH}/usr/local/lib") if (CrashReporterClient) message(STATUS "Linking with CrashReporterClient at ${CrashReporterClient}") add_library_flags("${CrashReporterClient}") diff --git a/lldb/tools/debugserver/source/CMakeLists.txt b/lldb/tools/debugserver/source/CMakeLists.txt index f0b9756bec..0c784545c4 100644 --- a/lldb/tools/debugserver/source/CMakeLists.txt +++ b/lldb/tools/debugserver/source/CMakeLists.txt @@ -125,17 +125,17 @@ if(APPLE) set(LIBCOMPRESSION compression) if(APPLE_EMBEDDED) find_library(BACKBOARD_LIBRARY BackBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + PATHS ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks) find_library(FRONTBOARD_LIBRARY FrontBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + PATHS ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks) find_library(SPRINGBOARD_LIBRARY SpringBoardServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + PATHS ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks) find_library(MOBILESERVICES_LIBRARY MobileCoreServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + PATHS ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks) find_library(LOCKDOWN_LIBRARY lockdown) if (APPLE_EMBEDDED STREQUAL "watchos") find_library(CAROUSELSERVICES_LIBRARY CarouselServices - PATHS ${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks) + PATHS ${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks) endif() if(NOT BACKBOARD_LIBRARY) @@ -158,7 +158,7 @@ endif() add_definitions(-DLLDB_USE_OS_LOG) -if(${CMAKE_OSX_SYSROOT} MATCHES ".Internal.sdk$") +if(${_CMAKE_OSX_SYSROOT_PATH} MATCHES ".Internal.sdk$") message(STATUS "LLDB debugserver energy support is enabled") add_definitions(-DLLDB_ENERGY) set(ENERGY_LIBRARY -lpmenergy -lpmsample) @@ -181,7 +181,7 @@ endif() separate_arguments(MIG_ARCH_FLAGS_SEPARTED NATIVE_COMMAND "${MIG_ARCH_FLAGS}") add_custom_command(OUTPUT ${generated_mach_interfaces} - VERBATIM COMMAND mig ${MIG_ARCH_FLAGS_SEPARTED} -isysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs + VERBATIM COMMAND mig ${MIG_ARCH_FLAGS_SEPARTED} -isysroot ${_CMAKE_OSX_SYSROOT_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/MacOSX/dbgnub-mig.defs ) @@ -305,7 +305,7 @@ if(APPLE_EMBEDDED) WITH_BKS ) set_property(TARGET lldbDebugserverCommon APPEND PROPERTY COMPILE_FLAGS - -F${CMAKE_OSX_SYSROOT}/System/Library/PrivateFrameworks + -F${_CMAKE_OSX_SYSROOT_PATH}/System/Library/PrivateFrameworks ) add_lldb_library(lldbDebugserverCommon_NonUI ${lldbDebugserverCommonSources}) diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index 6127b76db0..0a810db531 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -33,6 +33,7 @@ configure_lit_site_cfg( MAIN_CONFIG ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py PATHS + "_CMAKE_OSX_SYSROOT_PATH" "CMAKE_OSX_SYSROOT" "LLVM_SOURCE_DIR" "LLVM_BINARY_DIR" ================================================ FILE: ports/llvm/flang_usage ================================================ The package flang provides CMake targets: find_package(Flang CONFIG REQUIRED) target_include_directories(main PRIVATE ${FLANG_INCLUDE_DIRS}) target_link_libraries(main PRIVATE flangFrontend flangFrontendTool ...) ================================================ FILE: ports/llvm/lld_usage ================================================ The package lld provides CMake targets: find_package(LLD CONFIG REQUIRED) target_include_directories(main PRIVATE ${LLD_INCLUDE_DIRS}) target_link_libraries(main PRIVATE lldCommon lldCore lldDriver ...) ================================================ FILE: ports/llvm/llvm_usage ================================================ The package llvm provides CMake targets: find_package(LLVM CONFIG REQUIRED) list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}") include(HandleLLVMOptions) add_definitions(${LLVM_DEFINITIONS}) target_include_directories(main PRIVATE ${LLVM_INCLUDE_DIRS}) # Find the libraries that correspond to the LLVM components that we wish to use llvm_map_components_to_libnames(llvm_libs Support Core IRReader ...) # Link against LLVM libraries target_link_libraries(main PRIVATE ${llvm_libs}) ================================================ FILE: ports/llvm/mlir_usage ================================================ The package lld provides CMake targets: find_package(MLIR CONFIG REQUIRED) target_include_directories(main PRIVATE ${MLIR_INCLUDE_DIRS}) target_link_libraries(main PRIVATE MLIRIR MLIRParser MLIRPass MLIRSupport ...) ================================================ FILE: ports/llvm/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO llvm/llvm-project REF "llvmorg-${VERSION}" SHA512 9e9ec501336127339347c01ffd47768d501a84ef415c6a72fe56d31e867f982baeb3c4659be8e9b8475848a460357f33a6b2aa0ee9f81150e363963b98387bc0 HEAD_REF main PATCHES 0001-fix-install-package-dir.patch 0002-fix-tools-install-dir.patch 0003-fix-llvm-config.patch 0004-disable-libomp-aliases.patch 0005-remove-numpy.patch 0006-create-destination-mlir-directory.patch 75711.patch # [clang] Add intrin0.h header to mimic intrin0.h used by MSVC STL for clang-cl #75711 79694.patch # [SEH] Ignore EH pad check for internal intrinsics #79694 82407.patch # [Clang][Sema] Fix incorrect rejection default construction of union with nontrivial member #82407 add-include-chrono.patch # https://github.com/llvm/llvm-project/pull/118059 cmake4.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools LLVM_BUILD_TOOLS tools LLVM_INCLUDE_TOOLS utils LLVM_BUILD_UTILS utils LLVM_INCLUDE_UTILS utils LLVM_INSTALL_UTILS enable-assertions LLVM_ENABLE_ASSERTIONS enable-rtti LLVM_ENABLE_RTTI enable-ffi LLVM_ENABLE_FFI enable-terminfo LLVM_ENABLE_TERMINFO enable-ios COMPILER_RT_ENABLE_IOS enable-eh LLVM_ENABLE_EH enable-bindings LLVM_ENABLE_BINDINGS export-symbols LLVM_EXPORT_SYMBOLS_FOR_PLUGINS ) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") # LLVM generates CMake error due to Visual Studio version 16.4 is known to miscompile part of LLVM. # LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON disables this error. # See https://developercommunity.visualstudio.com/content/problem/845933/miscompile-boolean-condition-deduced-to-be-always.html # and thread "[llvm-dev] Longstanding failing tests - clang-tidy, MachO, Polly" on llvm-dev Jan 21-23 2020. if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND VCPKG_DETECTED_MSVC_VERSION LESS "1925") list(APPEND FEATURE_OPTIONS -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON ) endif() # Force enable or disable external libraries set(llvm_external_libraries zlib libxml2 zstd ) foreach(external_library IN LISTS llvm_external_libraries) string(TOLOWER "enable-${external_library}" feature_name) string(TOUPPER "LLVM_ENABLE_${external_library}" define_name) if(feature_name IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -D${define_name}=FORCE_ON ) else() list(APPEND FEATURE_OPTIONS -D${define_name}=OFF ) endif() endforeach() # LLVM_ABI_BREAKING_CHECKS can be WITH_ASSERTS (default), FORCE_ON or FORCE_OFF. # By default in LLVM, abi-breaking checks are enabled if assertions are enabled. # however, this breaks linking with the debug versions, since the option is # baked into the header files; thus, we always turn off LLVM_ABI_BREAKING_CHECKS # unless the user asks for it if("enable-abi-breaking-checks" IN_LIST FEATURES) # Force enable abi-breaking checks. list(APPEND FEATURE_OPTIONS -DLLVM_ABI_BREAKING_CHECKS=FORCE_ON ) else() # Force disable abi-breaking checks. list(APPEND FEATURE_OPTIONS -DLLVM_ABI_BREAKING_CHECKS=FORCE_OFF ) endif() set(LLVM_ENABLE_PROJECTS) if("bolt" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "bolt") list(APPEND FEATURE_OPTIONS -DBOLT_TOOLS_INSTALL_DIR:PATH=tools/llvm ) endif() if("clang" IN_LIST FEATURES OR "clang-tools-extra" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "clang") list(APPEND FEATURE_OPTIONS -DCLANG_INSTALL_PACKAGE_DIR:PATH=share/clang -DCLANG_TOOLS_INSTALL_DIR:PATH=tools/llvm # Disable ARCMT -DCLANG_ENABLE_ARCMT=OFF # Disable static analyzer -DCLANG_ENABLE_STATIC_ANALYZER=OFF ) # 1) LLVM/Clang tools are relocated from ./bin/ to ./tools/llvm/ (CLANG_TOOLS_INSTALL_DIR=tools/llvm) # 2) Clang resource files should be relocated from lib/clang/ to ../tools/llvm/lib/clang/ string(REGEX MATCH "^[0-9]+" CLANG_VERSION_MAJOR ${VERSION}) list(APPEND FEATURE_OPTIONS -DCLANG_RESOURCE_DIR=lib/clang/${CLANG_VERSION_MAJOR}) endif() if("clang-tools-extra" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "clang-tools-extra") endif() if("compiler-rt" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "compiler-rt") endif() if("flang" IN_LIST FEATURES) if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") message(FATAL_ERROR "Building Flang with MSVC is not supported on x86. Disable it until issues are fixed.") endif() list(APPEND LLVM_ENABLE_PROJECTS "flang") list(APPEND FEATURE_OPTIONS -DFLANG_INSTALL_PACKAGE_DIR:PATH=share/flang -DFLANG_TOOLS_INSTALL_DIR:PATH=tools/llvm ) list(APPEND FEATURE_OPTIONS # Flang requires C++17 -DCMAKE_CXX_STANDARD=17 ) endif() if("libclc" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "libclc") endif() if("lld" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "lld") list(APPEND FEATURE_OPTIONS -DLLD_INSTALL_PACKAGE_DIR:PATH=share/lld -DLLD_TOOLS_INSTALL_DIR:PATH=tools/llvm ) endif() if("lldb" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "lldb") list(APPEND FEATURE_OPTIONS -DLLDB_ENABLE_CURSES=OFF ) endif() if("mlir" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "mlir") list(APPEND FEATURE_OPTIONS -DMLIR_INSTALL_PACKAGE_DIR:PATH=share/mlir -DMLIR_TOOLS_INSTALL_DIR:PATH=tools/llvm -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF # Disables installation of object files in lib/objects-{CMAKE_BUILD_TYPE}. ) if("enable-mlir-python-bindings" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DMLIR_ENABLE_BINDINGS_PYTHON=ON "-Dpybind11_DIR=${CURRENT_INSTALLED_DIR}/share/pybind11" ) endif() endif() if("openmp" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "openmp") # Perl is required for the OpenMP run-time vcpkg_find_acquire_program(PERL) list(APPEND FEATURE_OPTIONS -DLIBOMP_INSTALL_ALIASES=OFF -DOPENMP_ENABLE_LIBOMPTARGET=OFF # Currently libomptarget cannot be compiled on Windows or MacOS X. -DOPENMP_ENABLE_OMPT_TOOLS=OFF # Currently tools are not tested well on Windows or MacOS X. -DPERL_EXECUTABLE=${PERL} ) endif() if("polly" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_PROJECTS "polly") list(APPEND FEATURE_OPTIONS -DPOLLY_INSTALL_PACKAGE_DIR:PATH=share/polly ) endif() set(LLVM_ENABLE_RUNTIMES) if("libc" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_RUNTIMES "libc") endif() if("libcxx" IN_LIST FEATURES) if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND VCPKG_DETECTED_MSVC_VERSION LESS "1914") # libcxx supports being built with clang-cl, but not with MSVC’s cl.exe, as cl doesn’t support the #include_next extension. # Furthermore, VS 2017 or newer (19.14) is required. # More info: https://releases.llvm.org/17.0.1/projects/libcxx/docs/BuildingLibcxx.html#support-for-windows message(FATAL_ERROR "libcxx requiries MSVC 19.14 or newer.") endif() list(APPEND LLVM_ENABLE_RUNTIMES "libcxx") endif() if("libcxxabi" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_RUNTIMES "libcxxabi") endif() if("libunwind" IN_LIST FEATURES) list(APPEND LLVM_ENABLE_RUNTIMES "libunwind") list(APPEND FEATURE_OPTIONS -DLIBCXXABI_USE_LLVM_UNWINDER=ON ) else() list(APPEND FEATURE_OPTIONS -DLIBCXXABI_USE_LLVM_UNWINDER=OFF ) endif() if("pstl" IN_LIST FEATURES) if(VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") message(FATAL_ERROR "Building pstl with MSVC is not supported.") endif() list(APPEND LLVM_ENABLE_RUNTIMES "pstl") endif() # this is for normal targets set(known_llvm_targets AArch64 AMDGPU ARM AVR BPF Hexagon Lanai LoongArch Mips MSP430 NVPTX PowerPC RISCV Sparc SystemZ VE WebAssembly X86 XCore ) set(LLVM_TARGETS_TO_BUILD) foreach(llvm_target IN LISTS known_llvm_targets) string(TOLOWER "target-${llvm_target}" feature_name) if(feature_name IN_LIST FEATURES) list(APPEND LLVM_TARGETS_TO_BUILD "${llvm_target}") endif() endforeach() # this is for experimental targets set(known_llvm_experimental_targets ARC CSKY DirectX M68k SPIRV Xtensa ) set(LLVM_EXPERIMENTAL_TARGETS_TO_BUILD) foreach(llvm_target IN LISTS known_llvm_experimental_targets) string(TOLOWER "target-${llvm_target}" feature_name) if(feature_name IN_LIST FEATURES) list(APPEND LLVM_EXPERIMENTAL_TARGETS_TO_BUILD "${llvm_target}") endif() endforeach() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR ${PYTHON3} DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") file(REMOVE "${SOURCE_PATH}/llvm/cmake/modules/Findzstd.cmake") if("${LLVM_ENABLE_RUNTIMES}" STREQUAL "") list(APPEND FEATURE_OPTIONS -DLLVM_INCLUDE_RUNTIMES=OFF -DLLVM_BUILD_RUNTIMES=OFF -DLLVM_BUILD_RUNTIME=OFF ) endif() # At least one target must be specified, otherwise default to "all". if("${LLVM_TARGETS_TO_BUILD}" STREQUAL "") set(LLVM_TARGETS_TO_BUILD "all") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/llvm" OPTIONS -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_BUILD_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_BENCHMARKS=OFF # Force TableGen to be built with optimization. This will significantly improve build time. -DLLVM_OPTIMIZED_TABLEGEN=ON -DPACKAGE_VERSION=${VERSION} # Limit the maximum number of concurrent link jobs to 1. This should fix low amount of memory issue for link. -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_INSTALL_PACKAGE_DIR:PATH=share/llvm -DLLVM_TOOLS_INSTALL_DIR:PATH=tools/llvm "-DLLVM_ENABLE_PROJECTS=${LLVM_ENABLE_PROJECTS}" "-DLLVM_ENABLE_RUNTIMES=${LLVM_ENABLE_RUNTIMES}" "-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS_TO_BUILD}" "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}" ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES COMPILER_RT_ENABLE_IOS ) vcpkg_cmake_install(ADD_BIN_TO_PATH) function(llvm_cmake_package_config_fixup package_name) cmake_parse_arguments("arg" "DO_NOT_DELETE_PARENT_CONFIG_PATH" "FEATURE_NAME;CONFIG_PATH" "" ${ARGN}) if(NOT DEFINED arg_FEATURE_NAME) set(arg_FEATURE_NAME ${package_name}) endif() if("${arg_FEATURE_NAME}" STREQUAL "${PORT}" OR "${arg_FEATURE_NAME}" IN_LIST FEATURES) set(args) list(APPEND args PACKAGE_NAME "${package_name}") if(arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) list(APPEND args "DO_NOT_DELETE_PARENT_CONFIG_PATH") endif() if(arg_CONFIG_PATH) list(APPEND args "CONFIG_PATH" "${arg_CONFIG_PATH}") endif() vcpkg_cmake_config_fixup(${args}) file(INSTALL "${SOURCE_PATH}/${arg_FEATURE_NAME}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${package_name}" RENAME copyright) if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/${package_name}_usage") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/${package_name}_usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${package_name}" RENAME usage) endif() endif() endfunction() llvm_cmake_package_config_fixup("clang" DO_NOT_DELETE_PARENT_CONFIG_PATH) llvm_cmake_package_config_fixup("flang" DO_NOT_DELETE_PARENT_CONFIG_PATH) llvm_cmake_package_config_fixup("lld" DO_NOT_DELETE_PARENT_CONFIG_PATH) llvm_cmake_package_config_fixup("mlir" DO_NOT_DELETE_PARENT_CONFIG_PATH) llvm_cmake_package_config_fixup("polly" DO_NOT_DELETE_PARENT_CONFIG_PATH) llvm_cmake_package_config_fixup("ParallelSTL" FEATURE_NAME "pstl" DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH "lib/cmake/ParallelSTL") llvm_cmake_package_config_fixup("llvm") if("mlir" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mlir/MLIRConfig.cmake" "set(MLIR_MAIN_SRC_DIR \"${SOURCE_PATH}/mlir\")" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/mlir/MLIRConfig.cmake" "${CURRENT_BUILDTREES_DIR}" "\${MLIR_INCLUDE_DIRS}") endif() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") # Move Clang's runtime libraries from bin/lib to tools/${PORT}/lib if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/lib" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/lib") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/lib") endif() # Remove empty directories to avoid vcpkg warning set(empty_dirs) if("clang-tools-extra" IN_LIST FEATURES) list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/clang-tidy/plugin") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/clang-tidy/misc/ConfusableTable") endif() if("pstl" IN_LIST FEATURES) list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/lib/cmake") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") endif() endif() if("flang" IN_LIST FEATURES) list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/CMakeFiles") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Config") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/CMakeFiles") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/CodeGen/CMakeFiles") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/Dialect/CMakeFiles") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/HLFIR/CMakeFiles") list(APPEND empty_dirs "${CURRENT_PACKAGES_DIR}/include/flang/Optimizer/Transforms/CMakeFiles") endif() if(empty_dirs) foreach(empty_dir IN LISTS empty_dirs) if(NOT EXISTS "${empty_dir}") message(WARNING "Directory '${empty_dir}' does not exist. Please remove it from the list of empty directories.") else() file(GLOB_RECURSE files_in_dir "${empty_dir}/*") if(files_in_dir) message(WARNING "Directory '${empty_dir}' is not empty. Please remove it from the list of empty directories.") else() file(REMOVE_RECURSE "${empty_dir}") endif() endif() endforeach() endif() # Remove debug headers and tools if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/tools" ) endif() # LLVM generates shared libraries in a static build (LLVM-C.dll, libclang.dll, LTO.dll, Remarks.dll, ...) # for the corresponding export targets (used in LLVMExports-.cmake files on the Windows platform) if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() ================================================ FILE: ports/llvm/vcpkg.json ================================================ { "name": "llvm", "version": "18.1.6", "port-version": 5, "description": "The LLVM Compiler Infrastructure.", "homepage": "https://llvm.org", "license": "Apache-2.0 WITH LLVM-exception", "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "atl", "platform": "windows & !mingw" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "default-features": [ "clang", "default-targets", "enable-bindings", "enable-terminfo", "enable-zlib", "enable-zstd", "lld", "tools" ], "features": { "bolt": { "description": "BOLT is a post-link optimizer developed to speed up large applications.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] }, "clang": { "description": "Include C Language Family Front-end.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] }, "clang-tools-extra": { "description": "Include Clang tools.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang" ] } ] }, "compiler-rt": { "description": "Include compiler's runtime libraries.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang" ] } ] }, "default-targets": { "description": "Build with platform-specific default targets.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-aarch64" ], "platform": "arm64" }, { "name": "llvm", "default-features": false, "features": [ "target-x86" ], "platform": "x86 | x64" }, { "name": "llvm", "default-features": false, "features": [ "target-arm" ], "platform": "arm & !arm64" } ] }, "enable-abi-breaking-checks": { "description": "Build LLVM with LLVM_ABI_BREAKING_CHECKS=FORCE_ON." }, "enable-assertions": { "description": "Build LLVM with assertions." }, "enable-bindings": { "description": "Build bindings." }, "enable-eh": { "description": "Build LLVM with exception handler.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "enable-rtti" ] } ] }, "enable-ffi": { "description": "Build LLVM with FFI.", "dependencies": [ "libffi" ] }, "enable-ios": { "description": "Build compiler-rt for iOS SDK.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-arm" ] } ] }, "enable-libxml2": { "description": "Build with LibXml2.", "dependencies": [ "libxml2" ] }, "enable-mlir-python-bindings": { "description": "Build MLIR Python bindings.", "supports": "!(windows & static)", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "mlir" ] }, "pybind11", "python3" ] }, "enable-rtti": { "description": "Build LLVM with run-time type information." }, "enable-terminfo": { "description": "Use terminfo database if available." }, "enable-zlib": { "description": "Build with ZLib.", "dependencies": [ "zlib" ] }, "enable-zstd": { "description": "Build with zstd.", "dependencies": [ "zstd" ] }, "export-symbols": { "description": "Export symbols for plugins." }, "flang": { "description": "Include Fortran front end.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "mlir", "tools" ] } ] }, "libc": { "description": "Include libc library.", "supports": "linux", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "tools" ] } ] }, "libclc": { "description": "Include OpenCL library." }, "libcxx": { "description": "Include libcxx library.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "libcxxabi", "tools" ] } ] }, "libcxxabi": { "description": "Include libcxxabi library.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "libcxx", "tools" ] } ] }, "libunwind": { "description": "Include libunwind library.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] }, "lld": { "description": "Include LLVM linker.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] }, "lldb": { "description": "Include LLVM debugger.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "enable-terminfo", "tools" ] } ] }, "mlir": { "description": "Include MLIR (Multi-Level IR Compiler Framework) project.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools", "utils" ] } ] }, "openmp": { "description": "Include LLVM OpenMP libraries.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "utils" ] } ] }, "polly": { "description": "Include Polly (Polyhedral optimizations for LLVM) project.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools", "utils" ] } ] }, "pstl": { "description": "Include pstl (Parallel STL) library.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] }, "target-aarch64": { "description": "Build with AArch64 backend." }, "target-all": { "description": "Build with all backends.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "target-aarch64", "target-amdgpu", "target-arc", "target-arm", "target-avr", "target-bpf", "target-csky", "target-directx", "target-hexagon", "target-lanai", "target-loongarch", "target-m68k", "target-mips", "target-msp430", "target-nvptx", "target-powerpc", "target-riscv", "target-sparc", "target-spirv", "target-systemz", "target-ve", "target-webassembly", "target-x86", "target-xcore", "target-xtensa" ] } ] }, "target-amdgpu": { "description": "Build with AMDGPU backend." }, "target-arc": { "description": "Build with ARC backend (experimental)." }, "target-arm": { "description": "Build with ARM backend." }, "target-avr": { "description": "Build with AVR backend." }, "target-bpf": { "description": "Build with BPF backend." }, "target-csky": { "description": "Build with CSKY backend (experimental)." }, "target-directx": { "description": "Build with DirectX backend (experimental)." }, "target-hexagon": { "description": "Build with Hexagon backend." }, "target-lanai": { "description": "Build with Lanai backend." }, "target-loongarch": { "description": "Build with LoongArch backend." }, "target-m68k": { "description": "Build with M68k backend (experimental)." }, "target-mips": { "description": "Build with Mips backend." }, "target-msp430": { "description": "Build with MSP430 backend." }, "target-nvptx": { "description": "Build with NVPTX backend." }, "target-powerpc": { "description": "Build with PowerPC backend." }, "target-riscv": { "description": "Build with RISC-V backend." }, "target-sparc": { "description": "Build with Sparc backend." }, "target-spirv": { "description": "Build with SPIRV backend (experimental)." }, "target-systemz": { "description": "Build with SystemZ backend." }, "target-ve": { "description": "Build with VE backend." }, "target-webassembly": { "description": "Build with WebAssembly backend." }, "target-x86": { "description": "Build with X86 backend." }, "target-xcore": { "description": "Build with XCore backend." }, "target-xtensa": { "description": "Build with Xtensa backend (experimental)." }, "tools": { "description": "Build LLVM tools." }, "utils": { "description": "Build LLVM utils.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "tools" ] } ] } } } ================================================ FILE: ports/lmdb/cmake/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.27) project(lmdb) option(LMDB_BUILD_TOOLS "Build lmdb tools" OFF) option(LMDB_BUILD_TESTS "Build lmdb tests" OFF) option(LMDB_INSTALL_HEADERS "Install LMDB header files" ON) include(GNUInstallDirs) add_library(lmdb mdb.c lmdb.h midl.c midl.h) if(WIN32 AND BUILD_SHARED_LIBS) target_sources(lmdb PRIVATE lmdb.def) endif() set(THREADS_PREFER_PTHREAD_FLAG 1) find_package(Threads REQUIRED) target_link_libraries(lmdb PRIVATE Threads::Threads) install(TARGETS lmdb EXPORT unofficial-lmdb-targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) if(LMDB_INSTALL_HEADERS) install(FILES lmdb.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") endif() target_include_directories(lmdb INTERFACE "$") include(CMakePackageConfigHelpers) configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/package-config.cmakein" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-lmdb-config.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/lmdb" ) write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-lmdb-config-version.cmake" VERSION "${LMDB_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-lmdb-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-lmdb-config-version.cmake" DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-lmdb" ) install(EXPORT unofficial-lmdb-targets NAMESPACE unofficial::lmdb:: DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-lmdb" ) if(LMDB_BUILD_TOOLS) set(getopt_libs "") if(WIN32 AND NOT MINGW) find_package(unofficial-getopt-win32 REQUIRED) set(getopt_libs "unofficial::getopt-win32::getopt") endif() foreach(tool IN ITEMS mdb_copy mdb_dump mdb_load mdb_stat) add_executable(${tool} ${tool}.c) target_link_libraries(${tool} lmdb ${getopt_libs}) install(TARGETS ${tool} RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endforeach() endif() if(LMDB_BUILD_TESTS) enable_testing() # mtest6 needs more symbols than provided by some builds of lmdb foreach(test IN ITEMS mtest mtest2 mtest3 mtest4 mtest5) add_executable(${test} ${test}.c) target_link_libraries(${test} lmdb) add_test(NAME ${test} COMMAND "${CMAKE_COMMAND}" "-DTEST=$ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #include "lmdb.h" diff --git a/libraries/liblmdb/mdb_load.c b/libraries/liblmdb/mdb_load.c index d2a3cec..f050286 100644 --- a/libraries/liblmdb/mdb_load.c +++ b/libraries/liblmdb/mdb_load.c @@ -16,7 +16,11 @@ #include #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #include "lmdb.h" #define PRINT 1 diff --git a/libraries/liblmdb/mdb_stat.c b/libraries/liblmdb/mdb_stat.c index 3a81175..f1f4a75 100644 --- a/libraries/liblmdb/mdb_stat.c +++ b/libraries/liblmdb/mdb_stat.c @@ -14,7 +14,13 @@ #include #include #include +#ifdef _MSC_VER +#include +#include +typedef SSIZE_T ssize_t; +#else #include +#endif #include "lmdb.h" #ifdef _WIN32 ================================================ FILE: ports/lmdb/lmdb-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/../lmdb/usage" usage) message(WARNING "find_package(lmdb) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-lmdb ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION}) set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}") set(${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES lmdb) string(TOUPPER "${CMAKE_FIND_PACKAGE_NAME}" UPPER_PACKAGE_NAME) set(${UPPER_PACKAGE_NAME}_INCLUDE_DIR "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}") set(${UPPER_PACKAGE_NAME}_INCLUDE_DIRS "${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR}") set(${UPPER_PACKAGE_NAME}_LIBRARIES lmdb) ================================================ FILE: ports/lmdb/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://git.openldap.org REPO openldap/openldap REF "LMDB_${VERSION}" SHA512 57404b35adb5136fcdf60552c2dd2626b9753868f2707d3279725e08145cee3be0d311189b2c6ef6879f25cf09962e6b423c70c8a2e09ef1b368948e873d92b5 HEAD_REF master PATCHES getopt-win32.diff ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/cmake/" DESTINATION "${SOURCE_PATH}/libraries/liblmdb") vcpkg_check_features(OUT_FEATURE_OPTIONS options_release FEATURES tools LMDB_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/libraries/liblmdb" OPTIONS "-DLMDB_VERSION=${VERSION}" OPTIONS_RELEASE ${options_release} OPTIONS_DEBUG -DLMDB_INSTALL_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-lmdb) if(LMDB_BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES mdb_copy mdb_dump mdb_load mdb_stat AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CURRENT_PORT_DIR}/lmdb-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/libraries/liblmdb/COPYRIGHT" "${SOURCE_PATH}/libraries/liblmdb/LICENSE" ) ================================================ FILE: ports/lmdb/usage ================================================ lmdb provides CMake targets: find_package(unofficial-lmdb CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::lmdb::lmdb) ================================================ FILE: ports/lmdb/vcpkg.json ================================================ { "name": "lmdb", "version": "0.9.33", "description": "LMDB is an extraordinarily fast, memory-efficient database", "homepage": "https://github.com/LMDB/lmdb", "license": "OLDAP-2.8", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "!uwp", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/lockpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/lockpp REF "v${VERSION}" SHA512 0581718dc2451d3cc62f2d0443f52a1adc95fe7a8ee859bd9cca78d68aa029ce7bc9e5387eca24f1b5fe44fc4af3ec662426c471b16e5ad0f29aa83ae0d2c4c1 HEAD_REF master PATCHES remove-cpm.patch ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.13.0" SHA512 3cf0523bddc213f206ed0ca57803550cb7db9e293392d3741138be47f49d9027ef517e1656235a349a62b492d35c3fc677714dc00afe59e2d36144a9689cfa8f HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/lockpp-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lockpp/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d811dda..dc28e2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,13 +39,7 @@ endif() # Install Targets # -------------------------------------------------------------------------------------------------------- -include("cmake/cpm.cmake") - -CPMFindPackage( - NAME PackageProject - VERSION 1.13.0 - GIT_REPOSITORY "https://github.com/TheLartians/PackageProject.cmake" -) +add_subdirectory(cmake/packageproject.cmake) packageProject( NAMESPACE cr ================================================ FILE: ports/lockpp/vcpkg.json ================================================ { "name": "lockpp", "version": "3.2.0", "description": "A C++17 Library that provides mutex protected objects", "homepage": "https://github.com/Curve/lockpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lodepng/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(lodepng) add_library(lodepng lodepng.cpp) target_include_directories(lodepng PUBLIC $ ) file(WRITE "${CMAKE_BINARY_DIR}/lodepng-config.cmake" "include(\"\${CMAKE_CURRENT_LIST_DIR}/lodepng-targets.cmake\")") install(FILES "${CMAKE_BINARY_DIR}/lodepng-config.cmake" DESTINATION "share/lodepng/") install(TARGETS lodepng EXPORT lodepng-targets) install(EXPORT lodepng-targets DESTINATION share/lodepng/) add_library(lodepng-c lodepng.c) target_include_directories(lodepng-c PUBLIC $ ) file(WRITE "${CMAKE_BINARY_DIR}/lodepng-c-config.cmake" "include(\"\${CMAKE_CURRENT_LIST_DIR}/lodepng-c-targets.cmake\")") install(FILES "${CMAKE_BINARY_DIR}/lodepng-c-config.cmake" DESTINATION "share/lodepng-c/") install(TARGETS lodepng-c EXPORT lodepng-c-targets) install(EXPORT lodepng-c-targets DESTINATION share/lodepng-c/) if(NOT DISABLE_INSTALL_HEADERS) install(FILES lodepng.h DESTINATION include) endif() ================================================ FILE: ports/lodepng/portfile.cmake ================================================ if (EXISTS ${CURRENT_INSTALLED_DIR}/share/lodepng-c/copyright) message(FATAL_ERROR "${PORT} conflict with lodepng-c, please remove lodepng-c before install ${PORT}.") endif() vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lvandeve/lodepng REF 8c6a9e30576f07bf470ad6f09458a2dcd7a6a84a SHA512 2e0abc063be45dc04a070656260e9a2b9fa1172433cdd7d4988f0afc11751ad28aa802350598ef0e2b27c2c011fd9d9f7ab7f267b0bfcdf28f9f708b888c4411 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") configure_file("${SOURCE_PATH}/lodepng.cpp" "${SOURCE_PATH}/lodepng.c" COPYONLY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_cmake_config_fixup(PACKAGE_NAME lodepng-c) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lodepng/usage ================================================ The package lodepng provides CMake targets: # C API find_package(lodepng-c CONFIG REQUIRED) target_link_libraries(main PRIVATE lodepng-c) # C++ API find_package(lodepng CONFIG REQUIRED) target_link_libraries(main PRIVATE lodepng) ================================================ FILE: ports/lodepng/vcpkg.json ================================================ { "name": "lodepng", "version-date": "2021-12-04", "port-version": 1, "description": "PNG encoder and decoder in C++", "homepage": "https://github.com/lvandeve/lodepng", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/log4cplus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO log4cplus/log4cplus REF REL_2_1_2 SHA512 37d37107f327cf343784d68ea4a18ee7eaa0a943e56075ebd14318b8905954649501f0228c6086058d89f97a332e73cabfc64ea7290ae79578fd583590661b94 HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH THREADPOOL_SOURCE_PATH REPO log4cplus/ThreadPool REF 251db61ff3e3c7b16436c9936c53e6f68ff07720 SHA512 41452423720762246380ec7e8c3a8e4f5bd1e8e0467a66126419d50a30ffead1c87a5af6f322275e188870a3e5d4abc9802967ab4453dc29c65ec0add0b5ae31 HEAD_REF master ) file( COPY "${THREADPOOL_SOURCE_PATH}/COPYING" "${THREADPOOL_SOURCE_PATH}/example.cpp" "${THREADPOOL_SOURCE_PATH}/README.md" "${THREADPOOL_SOURCE_PATH}/ThreadPool.h" DESTINATION "${SOURCE_PATH}/threadpool" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES unicode UNICODE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLOG4CPLUS_BUILD_TESTING=OFF -DLOG4CPLUS_BUILD_LOGGINGSERVER=OFF -DWITH_UNIT_TESTS=OFF -DLOG4CPLUS_ENABLE_DECORATED_LIBRARY_NAME=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/log4cplus) vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/log4cplus.pc" "-llog4cplus" "-llog4cplusD") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/${PORT}/ChangeLog" "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/README.md") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/log4cplus/vcpkg.json ================================================ { "name": "log4cplus", "version": "2.1.2", "description": "A simple to use C++ logging API providing thread--safe, flexible, and arbitrarily granular control over log management and configuration", "homepage": "https://github.com/log4cplus/log4cplus", "license": "Apache-2.0 AND BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "unicode": { "description": "Unicode logger" } } } ================================================ FILE: ports/log4cpp-log4cpp/cmake_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1075142..f6f44db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,16 +102,19 @@ ENDIF() MESSAGE("LOG4CPP_BUILD_SHARED is ${LOG4CPP_BUILD_SHARED}; LOG4CPP_BUILD_STATIC is ${LOG4CPP_BUILD_STATIC}") +set(LOG4CPP_INSTALL_TARGETS) IF (LOG4CPP_BUILD_STATIC) ADD_LIBRARY ( LOG4CPP_STATIC STATIC ${LOG4CPP_LIBRARY_SOURCES} ) IF (WIN32) # win will also build small .lib even when shared library is requested, this is to avoid name clash SET_TARGET_PROPERTIES( LOG4CPP_STATIC PROPERTIES OUTPUT_NAME ${LOG4CPP_LIBRARY_NAME}_static ) + TARGET_LINK_LIBRARIES ( LOG4CPP_STATIC PRIVATE kernel32 user32 ws2_32 advapi32 msvcrt${WIN_DEBUG_POSTFIX} ) ELSE() SET_TARGET_PROPERTIES( LOG4CPP_STATIC PROPERTIES OUTPUT_NAME ${LOG4CPP_LIBRARY_NAME} ) ENDIF() TARGET_COMPILE_DEFINITIONS ( LOG4CPP_STATIC PRIVATE $<$:_DEBUG DEBUG LOG4CPP_FIX_ERROR_COLLISION> ) TARGET_COMPILE_DEFINITIONS ( LOG4CPP_STATIC PRIVATE $<$:NDEBUG> ) + LIST(APPEND LOG4CPP_INSTALL_TARGETS LOG4CPP_STATIC) ENDIF (LOG4CPP_BUILD_STATIC) IF (LOG4CPP_BUILD_SHARED) @@ -121,24 +124,11 @@ IF (LOG4CPP_BUILD_SHARED) TARGET_COMPILE_DEFINITIONS ( LOG4CPP_SHARED PRIVATE $<$:NDEBUG> ) IF (WIN32) TARGET_COMPILE_DEFINITIONS ( LOG4CPP_SHARED PRIVATE -D_CRT_SECURE_NO_WARNINGS -DLOG4CPP_HAS_DLL -DLOG4CPP_BUILD_DLL ) + TARGET_LINK_LIBRARIES ( LOG4CPP_SHARED PRIVATE kernel32 user32 ws2_32 advapi32 msvcrt${WIN_DEBUG_POSTFIX} ) ENDIF (WIN32) + LIST(APPEND LOG4CPP_INSTALL_TARGETS LOG4CPP_SHARED) ENDIF (LOG4CPP_BUILD_SHARED) -IF (WIN32) - # RAD Studio specifics - IF (CMAKE_CXX_COMPILER MATCHES ".*bcc32c.*" OR CMAKE_CXX_COMPILER MATCHES ".*bcc64x.*") - MESSAGE(STATUS "Embarcadero C++Builder detected") - SET ( WIN_DEBUG_POSTFIX "" ) - SET_EMBT_TARGET( LOG4CPP_STATIC RTL ) - SET_EMBT_TARGET( LOG4CPP_SHARED RTL ) - ENDIF() - - TARGET_LINK_LIBRARIES ( LOG4CPP_STATIC PRIVATE kernel32 user32 ws2_32 advapi32 msvcrt${WIN_DEBUG_POSTFIX} ) - #SET_TARGET_PROPERTIES ( LOG4CPP_STATIC PROPERTIES LINK_FLAGS /NODEFAULTLIB:msvcrt${WIN_DEBUG_POSTFIX} ) - TARGET_LINK_LIBRARIES ( LOG4CPP_SHARED PRIVATE kernel32 user32 ws2_32 advapi32 msvcrt${WIN_DEBUG_POSTFIX} ) - #SET_TARGET_PROPERTIES ( LOG4CPP_SHARED PROPERTIES LINK_FLAGS /NODEFAULTLIB:msvcrt${WIN_DEBUG_POSTFIX} ) -ENDIF (WIN32) - INSTALL ( DIRECTORY include/log4cpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} @@ -147,11 +137,12 @@ INSTALL ( PATTERN ".svn" EXCLUDE PATTERN "*.am" EXCLUDE PATTERN "*.in" EXCLUDE + PATTERN ".cvsignore" EXCLUDE ) INSTALL ( - TARGETS ${LOG4CPP_STATIC} ${LOG4CPP_SHARED} + TARGETS ${LOG4CPP_INSTALL_TARGETS} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) ================================================ FILE: ports/log4cpp-log4cpp/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO log4cpp/log4cpp-1.1.x%20%28new%29 REF log4cpp-1.1 FILENAME "log4cpp-${VERSION}.tar.gz" SHA512 c12d9128499bc8b2ab39d3c7979b81ac5c2f033ddfb942bdcd70e5d06f8a78da0258f2295e716417d0dd7680fde983720ffb55851755297ff03cbf5ca7acdff8 PATCHES cmake_fix.patch ) if(VCPKG_TARGET_IS_WINDOWS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLOG4CPP_BUILD_SHARED=${BUILD_SHARED} -DLOG4CPP_BUILD_STATIC=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") elseif(VCPKG_TARGET_IS_LINUX) # The CMake build does not work under Linux because it depends on a config.h # file that is currently only derived from config.h.in via configure.h. if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(SHARED_STATIC --enable-static --disable-shared) else() set(SHARED_STATIC --disable-static --enable-shared) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${SHARED_STATIC} "--prefix=${CURRENT_PACKAGES_DIR}" "--with-sysroot=${CURRENT_INSTALLED_DIR}" ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools" "${CURRENT_PACKAGES_DIR}/debug/share" ) endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/log4cpp-log4cpp/vcpkg.json ================================================ { "name": "log4cpp-log4cpp", "version": "1.1.5", "description": "A library of C++ classes for flexible logging to files (rolling), syslog, IDSA and other destinations. It is modeled after the Log for Java library (http://www.log4j.org), staying as close to their API as is reasonable.", "homepage": "https://sourceforge.net/projects/log4cpp/", "license": "LGPL-2.1-only", "supports": "(linux | windows) & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-make", "host": true, "platform": "linux" } ] } ================================================ FILE: ports/log4cxx/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/logging/log4cxx/${VERSION}/apache-log4cxx-${VERSION}.tar.gz" FILENAME "apache-log4cxx-${VERSION}.tar.gz" SHA512 6ee406314bd7ab02a46c98cc8a0d5ad5aec8928a23716a81a152775ca315cd3b950d600b2e221d5b4a88416ae9bbda1215fae43626107feea4df2f3e074303ad ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES qt LOG4CXX_QT_SUPPORT fmt ENABLE_FMT_LAYOUT fmt ENABLE_FMT_ASYNC fmt VCPKG_LOCK_FIND_PACKAGE_fmt mprfa LOG4CXX_MULTIPROCESS_ROLLING_FILE_APPENDER ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLOG4CXX_INSTALL_PDB=OFF # Installing pdbs failed on debug static. So, disable it and let vcpkg_copy_pdbs() do it -DBUILD_TESTING=OFF -DVCPKG_LOCK_FIND_PACKAGE_fmt=${VCPKG_LOCK_FIND_PACKAGE_fmt} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/log4cxx) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX) vcpkg_fixup_pkgconfig() endif() file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/log4cxxConfig.cmake" _contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/log4cxxConfig.cmake" "include(CMakeFindDependencyMacro) find_dependency(expat CONFIG) ${_contents}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/log4cxx/vcpkg.json ================================================ { "name": "log4cxx", "version": "1.6.1", "port-version": 1, "description": "Apache log4cxx is a logging framework for C++ patterned after Apache log4j, which uses Apache Portable Runtime for most platform-specific code and should be usable on any platform supported by APR", "homepage": "https://logging.apache.org/log4cxx", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "apr", "apr-util", "expat", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fmt": { "description": "Include the log4cxx::FMTLayout class that uses libfmt to layout messages", "dependencies": [ "fmt" ] }, "mprfa": { "description": "Synchronizes rollover when multiple process log to the same file" }, "qt": { "description": "Allow QString values in the LOG4CXX_WARN, LOG4CXX_INFO, LOG4CXX_DEBUG etc. macros", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } } } ================================================ FILE: ports/logme/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO efmsoft/logme REF "v${VERSION}" SHA512 7afb4452cc1c7a38cca0b2b951d2828f16d6fdacb456284d5896281f915bd9170f1667df443f9ce49c7f4f5dc790498215a14cc8196085ac3254378c12a924c5 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" _logme_static_opt) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" _logme_dynamic_opt) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLOGME_BUILD_STATIC=${_logme_static_opt} -DLOGME_BUILD_DYNAMIC=${_logme_dynamic_opt} -DLOGME_BUILD_TESTS=OFF -DLOGME_BUILD_EXAMPLES=OFF -DLOGME_BUILD_TOOLS=OFF -DUSE_JSONCPP=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/logme) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/logme/vcpkg.json ================================================ { "name": "logme", "version": "2.4.13", "description": "Cross-platform C/C++ logging framework: channels and routing, multiple backends, colored output, and runtime dynamic control.", "homepage": "https://github.com/efmsoft/logme", "license": "Apache-2.0", "dependencies": [ "jsoncpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/loguru/copyright ================================================ This software is in the public domain. Where that dedication is not recognized, you are granted a perpetual, irrevocable license to copy, modify and distribute it as you see fit. That being said, I would appreciate credit! If you find Loguru useful, tweet me at @ernerfeldt mail me at emil.ernerfeldt@gmail.com. ================================================ FILE: ports/loguru/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emilk/loguru REF 4adaa185883e3c04da25913579c451d3c32cfac1 #v2.1.0 SHA512 813c9f9171a828a40270a3ad9f98124586eb56d37f263d55cd1ea6ac997d64431e2ae846f3dc0b477f8bf30873270c53b4bd7e6b6fc52259d2fd36126b24bbe6 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fmt LOGURU_USE_FMTLIB stream LOGURU_WITH_STREAMS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/loguru") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/copyright") ================================================ FILE: ports/loguru/vcpkg.json ================================================ { "name": "loguru", "version": "2.1.0", "port-version": 6, "description": "A lightweight and flexible C++ logging library", "homepage": "https://github.com/emilk/loguru", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fmt": { "description": "Build with fmt support in non-header-only mode", "dependencies": [ "fmt" ] }, "stream": { "description": "Build with support for stream style logging" } } } ================================================ FILE: ports/lpeg/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(lpeg) find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) find_library(LUA_LIBRARY lua) set(LPEG_INCLUDES ${LUA_INCLUDE_DIR}) set(LPEG_LIBRARIES ${LUA_LIBRARY}) add_library(lpeg lpvm.c lptree.c lpprint.c lpcap.c lpcode.c lpcset.c lpeg.def) target_include_directories(lpeg PRIVATE ${LPEG_INCLUDES}) target_link_libraries(lpeg PRIVATE ${LPEG_LIBRARIES}) install(TARGETS lpeg EXPORT unofficial-lpeg-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES re.lua DESTINATION share/lua) include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-${PROJECT_NAME}-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config.cmake" INSTALL_DESTINATION "share/unofficial-${PROJECT_NAME}" ) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config-version.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${LPEG_VERSION}" COMPATIBILITY SameMajorVersion ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config.cmake" DESTINATION "share/unofficial-${PROJECT_NAME}" ) install( EXPORT "unofficial-${PROJECT_NAME}-targets" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") ================================================ FILE: ports/lpeg/lpeg.def ================================================ LIBRARY lpeg EXPORTS luaopen_lpeg ================================================ FILE: ports/lpeg/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.inf.puc-rio.br/~roberto/lpeg/lpeg-${VERSION}.tar.gz" FILENAME "lpeg-${VERSION}.tar.gz" SHA512 01b2a4ceb2d110e143603bc63c84a59736ea735dd0ed9866286ba115d41be48d09c9ff21c8e2327974d2296944f6508d50a5c3a18f26ac1d81b8b2fc41f61222 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/lpeg.def" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-lpeg-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DLPEG_VERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-lpeg") # Remove debug share file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/lpeg.html" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/lpeg/unofficial-lpeg-config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/unofficial-lpeg-targets.cmake") set(UNOFFICIAL_LPEG_LUA_FILES "${PACKAGE_PREFIX_DIR}/share/lua/re.lua") check_required_components(lpeg) ================================================ FILE: ports/lpeg/usage ================================================ lpeg provides CMake targets: find_package(unofficial-lpeg CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::lpeg::lpeg) UNOFFICIAL_LPEG_LUA_FILES will be set to the path of re.lua add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${UNOFFICIAL_LPEG_LUA_FILES} $) install(FILES ${UNOFFICIAL_LPEG_LUA_FILES} DESTINATION my_lua_path) ================================================ FILE: ports/lpeg/vcpkg.json ================================================ { "name": "lpeg", "version": "1.1.0", "port-version": 1, "description": "LPeg is a pattern-matching library for Lua, based on Parsing Expression Grammars (PEGs).", "homepage": "https://www.inf.puc-rio.br/~roberto/lpeg", "license": "MIT", "dependencies": [ "lua", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ls-qpack/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO litespeedtech/ls-qpack REF "v${VERSION}" SHA512 9b38ba1b4b12d921385a285e8c833a0ae9cdcc153cff4f1857f88ceb82174304decb5fccbdf9267d08a21c5a26c71fdd884dcacd12afd19256a347a8306b9b90 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/deps") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLSQPACK_TESTS=OFF -DLSQPACK_BIN=OFF -DLSQPACK_XXH=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ls-qpack) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ls-qpack/vcpkg.json ================================================ { "name": "ls-qpack", "version": "2.6.2", "description": "QPACK compression library for use with HTTP/3", "homepage": "https://github.com/litespeedtech/ls-qpack", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xxhash" ] } ================================================ FILE: ports/ltla-aarand/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/aarand REF "v${VERSION}" SHA512 d14845b57e5dc6cfb62ba7354e76b53b5b06669fde6d5a740a5c41ee9802b67c2b11c80f677e51641e1915d8026e0bb1b7c83bedac73e0c8a2e24251b25a2022 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DAARAND_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_aarand CONFIG_PATH lib/cmake/ltla_aarand ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-aarand/vcpkg.json ================================================ { "name": "ltla-aarand", "version": "1.1.0", "description": "Aaron's random distributions for C++", "homepage": "https://github.com/LTLA/aarand", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ltla-cppirlba/0001-fix-eigen3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d96d6d7..ca9b4e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ option(IRLBA_FETCH_EXTERN "Automatically fetch CppIrlba's dependencies." ON) if(IRLBA_FETCH_EXTERN) add_subdirectory(extern) else() - find_package(Eigen3 5.0.0 CONFIG REQUIRED) + find_package(Eigen3 CONFIG REQUIRED) find_package(ltla_aarand 1.0.0 CONFIG REQUIRED) find_package(ltla_subpar 0.3.1 CONFIG REQUIRED) find_package(ltla_sanisizer 0.1.0 CONFIG REQUIRED) diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index dad2907..72ea776 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,7 +1,7 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Eigen3 5.0.0 CONFIG REQUIRED) +find_dependency(Eigen3 CONFIG REQUIRED) find_dependency(ltla_aarand 1.0.0 CONFIG REQUIRED) find_dependency(ltla_subpar 0.3.1 CONFIG REQUIRED) find_dependency(ltla_sanisizer 0.1.0 CONFIG REQUIRED) ================================================ FILE: ports/ltla-cppirlba/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/CppIrlba REF "v${VERSION}" SHA512 17e84cf3d5de06dc9c599695a9d2b5b6d48f9ec1c3f04b6c1f875ab809d42dfddc7a97e400d02e7fd55e88e708df6162ba4e7aadf0a47f8eea6004e3efbb4dd3 HEAD_REF master PATCHES 0001-fix-eigen3.patch ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIRLBA_FETCH_EXTERN=OFF -DIRLBA_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_irlba CONFIG_PATH lib/cmake/ltla_irlba ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-cppirlba/vcpkg.json ================================================ { "name": "ltla-cppirlba", "version": "3.0.1", "port-version": 1, "description": "A C++ port of the IRLBA algorithm, based on the C code in the R package.", "homepage": "https://github.com/LTLA/CppIrlba", "license": "MIT", "dependencies": [ "eigen3", "ltla-aarand", "ltla-sanisizer", "ltla-subpar", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ltla-cppkmeans/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/CppKmeans REF "v${VERSION}" SHA512 d9ea94ee5e1d2e124828f6c123f0136477cc78f1652aac24df2d90b06cd164e708557aab10b638ec8b1df8080d40980b416084719545dc47bcfc96a8a45d18b3 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DKMEANS_FETCH_EXTERN=OFF -DKMEANS_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_kmeans CONFIG_PATH lib/cmake/ltla_kmeans ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-cppkmeans/vcpkg.json ================================================ { "name": "ltla-cppkmeans", "version": "4.0.6", "description": "C++ port of R's Hartigan-Wong implementation", "homepage": "https://github.com/LTLA/CppKmeans", "license": "MIT", "dependencies": [ "ltla-aarand", "ltla-sanisizer", "ltla-subpar", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ltla-powerit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/powerit REF "v${VERSION}" SHA512 86d42254a3ef0364ade61d902144750ac3b86e218cef565201a92044a05b39f53e99c25426e864a3bf15b24bbf0e26c6a807beb092cbdbdf962192ba9fd35f82 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPOWERIT_FETCH_EXTERN=OFF -DPOWERIT_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_powerit CONFIG_PATH lib/cmake/ltla_powerit ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-powerit/vcpkg.json ================================================ { "name": "ltla-powerit", "version": "2.0.1", "description": "Lightweight C++ library for power iterations", "homepage": "https://github.com/LTLA/powerit", "license": "MIT", "dependencies": [ "ltla-aarand", "ltla-subpar", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ltla-sanisizer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/sanisizer REF "v${VERSION}" SHA512 f797d30a9cca159466d0fd72ea32651e256122f0a171be6c57aff1f67f01174088878d80d3492d23c1b39d9f29aabc1ffc6af885868025aecc408be2bc32387a HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSANISIZER_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_sanisizer CONFIG_PATH lib/cmake/ltla_sanisizer ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-sanisizer/vcpkg.json ================================================ { "name": "ltla-sanisizer", "version": "0.2.0", "description": "Library that provides a few methods for sanitizing size values so that any overflow results in an error", "homepage": "https://github.com/LTLA/sanisizer", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ltla-subpar/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LTLA/subpar REF "v${VERSION}" SHA512 00630123dc805d6be7626a8ee7ef87f8e54e37245a6eebc9e5b7af72a50a0d2df130c218e6f77216a169ea6933ba75cd7b87b55673063d3698886aa4c120a143 HEAD_REF master ) set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSUBPAR_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ltla_subpar CONFIG_PATH lib/cmake/ltla_subpar ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ltla-subpar/vcpkg.json ================================================ { "name": "ltla-subpar", "version": "0.5.0", "description": "Substitutable parallelization for C++ libraries", "homepage": "https://github.com/LTLA/subpar", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lua/CMakeLists.txt ================================================ # Lua can be compiled as either C or C++. # The vcpkg port always builds the lua C library. # Option COMPILE_AS_CPP enables building a lua-c++ library. # See http://stackoverflow.com/questions/13560945/c-and-c-library-using-longjmp for why would you want to do that. # Primary differences: # - Exceptions will be used instead of setjmp/longjmp # - The name mangling for functions will be C++ instead of C. # The use of headers must match the selected library. # 'lua.hpp' can be used by C++ apps with the lua C library. # The other headers can be used # - by C apps with the lua C library # - by C++ apps with the lua C++ library # - by C++ apps with the lua C library only with explicit 'extern "C" ...' cmake_minimum_required(VERSION 3.31) option(COMPILE_AS_CPP "Enable the lua C++ library") option(INSTALL_TOOLS "Install compiler and interpreter") project(lua) set(CMAKE_C_STANDARD 99) if(WIN32) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) endif() if(UNIX) add_compile_definitions(LUA_USE_POSIX LUA_USE_DLOPEN) find_library(HAVE_LIBM NAMES m) endif() set(SRC_LUAI "${PROJECT_SOURCE_DIR}/src/lua.c") set(SRC_LUAC "${PROJECT_SOURCE_DIR}/src/luac.c") file(GLOB SRC_LIBLUA "${PROJECT_SOURCE_DIR}/src/*.c") list(REMOVE_ITEM SRC_LIBLUA "${SRC_LUAI}" "${SRC_LUAC}") # C library add_library(lua ${SRC_LIBLUA}) target_include_directories(lua PUBLIC "$" $ ) if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(lua PUBLIC LUA_BUILD_AS_DLL) endif() if(UNIX) target_link_libraries(lua PRIVATE ${CMAKE_DL_LIBS}) if(HAVE_LIBM) target_link_libraries(lua PRIVATE m) endif() endif() install(FILES src/lualib.h src/lua.h src/luaconf.h src/lauxlib.h src/lua.hpp DESTINATION include ) install(TARGETS lua EXPORT unofficial-lua-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) # CXX library if(COMPILE_AS_CPP) # creating distinct source files with LANGUAGE CXX file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/cpp") file(COPY ${SRC_LIBLUA} DESTINATION "${PROJECT_BINARY_DIR}/cpp") file(GLOB SRC_LIBLUACPP "${PROJECT_BINARY_DIR}/cpp/*.c") set_source_files_properties(${SRC_LIBLUACPP} PROPERTIES LANGUAGE CXX) add_library(lua-cpp ${SRC_LIBLUACPP}) set_target_properties(lua-cpp PROPERTIES OUTPUT_NAME "lua-c++") target_include_directories(lua-cpp PUBLIC "$" $ ) if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(lua-cpp PUBLIC LUA_BUILD_AS_DLL) endif() if(UNIX) target_compile_definitions(lua-cpp PUBLIC LUA_USE_DLOPEN) target_link_libraries(lua-cpp PRIVATE ${CMAKE_DL_LIBS}) if(HAVE_LIBM) target_link_libraries(lua-cpp PRIVATE m) endif() endif() install(TARGETS lua-cpp EXPORT unofficial-lua-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() # tools if(INSTALL_TOOLS) # The compiler uses non-exported APIs, so it cannot use the shared library add_executable(luac "${SRC_LUAC}" $) target_include_directories(luac PRIVATE "${PROJECT_SOURCE_DIR}/src") if(UNIX AND HAVE_LIBM) target_link_libraries(luac PRIVATE m) endif() # The Interpreter add_executable(luai "${SRC_LUAI}") set_target_properties(luai PROPERTIES OUTPUT_NAME "lua" PDB_NAME "luai") target_link_libraries(luai PRIVATE lua) if(UNIX) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_READLINE readline REQUIRED) target_compile_definitions(luai PRIVATE LUA_USE_READLINE) target_include_directories(luai PRIVATE ${PC_READLINE_INCLUDE_DIRS}) target_link_libraries(luai PRIVATE ${PC_READLINE_LINK_LIBRARIES}) endif() install(TARGETS luai luac DESTINATION bin ) endif() # unofficial config include(CMakePackageConfigHelpers) write_basic_package_version_file("${PROJECT_BINARY_DIR}/unofficial-lua-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY "SameMajorVersion" ) install(FILES "${PROJECT_BINARY_DIR}/unofficial-lua-config-version.cmake" DESTINATION share/unofficial-lua ) install(EXPORT unofficial-lua-config NAMESPACE unofficial::lua:: DESTINATION share/unofficial-lua ) ================================================ FILE: ports/lua/fix-ios-system.patch ================================================ diff --git a/src/loslib.c b/src/loslib.c index ad5a927..7812011 100644 --- a/src/loslib.c +++ b/src/loslib.c @@ -4,6 +4,10 @@ ** See Copyright Notice in lua.h */ +#if defined(__APPLE__) +#include +#endif + #define loslib_c #define LUA_LIB @@ -143,7 +147,12 @@ static int os_execute (lua_State *L) { const char *cmd = luaL_optstring(L, 1, NULL); int stat; errno = 0; - stat = l_system(cmd); +#if defined(__APPLE__) && !TARGET_OS_OSX + // system() is __IOS_PROHIBITED, __WATCHOS_PROHIBITED, and __TVOS_PROHIBITED. + stat = 127; // error: shell execution failed +#else + stat = system(cmd); +#endif if (cmd != NULL) return luaL_execresult(L, stat); else { ================================================ FILE: ports/lua/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.lua.org/ftp/lua-${VERSION}.tar.gz" FILENAME "lua-${VERSION}.tar.gz" SHA512 3253d2cdc929da6438095a30d66ef16a1abdbb0ada8fee238705b3b38492f14be9553640fdca6b25661e01155ba5582032e0a2ef064e4c283e85efc0a128cabe ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES vs2015-impl-c99.patch fix-ios-system.patch uwp-no-popen.diff ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cpp COMPILE_AS_CPP tools INSTALL_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DVERSION=${VERSION} OPTIONS_DEBUG -DINSTALL_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-lua CONFIG_PATH share/unofficial-lua) if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES lua luac AUTO_CLEAN) endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/luaconf.h" "defined(LUA_BUILD_AS_DLL)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(READ "${SOURCE_PATH}/doc/readme.html" readme) string(REGEX REPLACE "^.*

License

" "" license "${readme}") string(REGEX REPLACE [[([^<]*)]] "\\2 [\\1]" license "${license}") string(REGEX REPLACE "<[^>]*>" "" license "${license}") string(REGEX REPLACE "\n\n+" "\n\n" license "${license}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${license}") ================================================ FILE: ports/lua/usage ================================================ lua provides CMake integration for the C library: find_package(Lua REQUIRED) target_include_directories(main PRIVATE ${LUA_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${LUA_LIBRARIES}) lua[cpp] provides a C++ library with exception handling: find_package(unofficial-lua) target_link_libraries(main PRIVATE unofficial::lua::lua-cpp) ================================================ FILE: ports/lua/uwp-no-popen.diff ================================================ diff --git a/src/liolib.c b/src/liolib.c index 57615e6..70e5899 100644 --- a/src/liolib.c +++ b/src/liolib.c @@ -23,6 +23,9 @@ #include "lualib.h" #include "llimits.h" +#if defined(_WIN32) +#include +#endif /* ** Change this macro to accept other modes for 'fopen' besides @@ -58,7 +61,8 @@ static int l_checkmode (const char *mode) { #define l_popen(L,c,m) (fflush(NULL), popen(c,m)) #define l_pclose(L,file) (pclose(file)) -#elif defined(LUA_USE_WINDOWS) /* }{ */ +#elif defined(LUA_USE_WINDOWS) /* }{ */ \ + && !(defined(WINAPI_FAMILY_PARTITION) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) #define l_popen(L,c,m) (_popen(c,m)) #define l_pclose(L,file) (_pclose(file)) ================================================ FILE: ports/lua/vcpkg-cmake-wrapper.cmake ================================================ # Not using/wrapping FindLua.cmake because # it poorly handles new Lua versions and multi-config. _find_package(${ARGS} NAMES unofficial-lua) if(Lua_FOUND) get_filename_component(LUA_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(LUA_INCLUDE_DIR "${LUA_INCLUDE_DIR}" PATH) set(LUA_INCLUDE_DIR ${LUA_INCLUDE_DIR}/include) set(LUA_LIBRARIES unofficial::lua::lua) # deprecated vars set(LUA_FOUND 1) set(LUA_VERSION_STRING "${Lua_VERSION}") set(LUA_VERSION_MAJOR "${Lua_VERSION_MAJOR}") set(LUA_VERSION_MINOR "${Lua_VERSION_MINOR}") set(LUA_VERSION_PATCH "${Lua_VERSION_PATCH}") endif() ================================================ FILE: ports/lua/vcpkg.json ================================================ { "name": "lua", "version": "5.5.0", "port-version": 1, "description": "A powerful, fast, lightweight, embeddable scripting language", "homepage": "https://www.lua.org", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cpp": { "description": "Builds Lua for C++ linkage" }, "tools": { "description": "Builds Lua compiler and interpreter", "supports": "!ios", "dependencies": [ { "name": "readline-unix", "platform": "!windows" } ] } } } ================================================ FILE: ports/lua/vs2015-impl-c99.patch ================================================ --- a/src/luaconf.h +++ b/src/luaconf.h @@ -54,7 +54,7 @@ #if defined(LUA_USE_WINDOWS) #define LUA_DL_DLL /* enable support for DLL */ -#define LUA_USE_C89 /* broadly, Windows is C89 */ +//#define LUA_USE_C89 /* broadly, Windows is C89 */ #endif ================================================ FILE: ports/lua-compat53/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lunarmodules/lua-compat-5.3 REF "v${VERSION}" SHA512 0e6bd10513cab6053df7a911ba117c2dd5b5409e75bfe0890ee2ec0122893aa70fc1dc88b10a65553dd1069a038e3c7295dccc2de5c10338eccc718029d3f7b5 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/c-api/compat-5.3.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/c-api/compat-5.3.c" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lua-compat53/usage ================================================ The package lua-compat53 provides a header only C-API and can be used from CMake via: find_path(LUA_COMPAT53_INCLUDE_DIRS "compat-5.3.h") target_include_directories(main PRIVATE ${LUA_COMPAT53_INCLUDE_DIRS}) ================================================ FILE: ports/lua-compat53/vcpkg.json ================================================ { "name": "lua-compat53", "version": "0.14.4", "description": "provide Lua-5.3-style C APIs for Lua 5.2 and 5.1", "homepage": "https://github.com/lunarmodules/lua-compat-5.3", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/luabridge/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vinniefalco/LuaBridge REF ${VERSION} SHA512 d159bbe3411bf71f3737733e207daef1b583d5efa005d4f6917b4f81e1b03ee0085e1998d797c4149815d0376f0ee6ef03d56a3c314e099ef28f24921b3480f4 HEAD_REF master ) file(COPY "${SOURCE_PATH}/Source/LuaBridge" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/luabridge/vcpkg.json ================================================ { "name": "luabridge", "version": "2.10", "description": "A lightweight, dependency-free library for binding Lua to C++", "homepage": "https://github.com/vinniefalco/LuaBridge", "license": "MIT" } ================================================ FILE: ports/luabridge3/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kunitoki/LuaBridge3 REF 0e17140276d215e98764813078f48731125e4784 # 3.0-rc3 SHA512 b0cafc817abf6408bb26ba76ca05641cc311e2defa3a78481af7dbd56be49f3d28c81d2b2a152aa5f0ea18721578eb9e36515614dca40f813603af5abe45d0ce HEAD_REF master ) # Copy the header files file(COPY "${SOURCE_PATH}/Source/LuaBridge" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/luabridge3/vcpkg.json ================================================ { "name": "luabridge3", "version": "3.0-rc3", "description": "A lightweight, dependency-free, suitable for game development library for binding Lua to C++17", "homepage": "https://github.com/kunitoki/LuaBridge3", "license": "MIT" } ================================================ FILE: ports/luafilesystem/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(luafilesystem) find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) find_library(LUA_LIBRARY lua) set(LFS_INCLUDES ${LUA_INCLUDE_DIR}) set(LFS_LIBRARIES ${LUA_LIBRARY}) add_library(lfs src/lfs.h src/lfs.c src/lfs.def) target_include_directories(lfs PRIVATE ${LFS_INCLUDES}) target_link_libraries(lfs PRIVATE ${LFS_LIBRARIES}) target_include_directories(lfs INTERFACE $) install(TARGETS lfs EXPORT "unofficial-${PROJECT_NAME}-targets" RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-${PROJECT_NAME}-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config.cmake" INSTALL_DESTINATION "share/unofficial-${PROJECT_NAME}" ) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config-version.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${LFS_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/lfs.h" DESTINATION "include/luafilesystem") install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}-config.cmake" DESTINATION "share/unofficial-${PROJECT_NAME}" ) install( EXPORT "unofficial-${PROJECT_NAME}-targets" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") ================================================ FILE: ports/luafilesystem/portfile.cmake ================================================ set(LUAFILESYSTEM_VERSION 1.9.0) set(LUAFILESYSTEM_REVISION v1_9_0) set(LUAFILESYSTEM_HASH 753ae633966364835b9c81a020cf0b7674da443adeafee70b7a9637571a8180c7f1526d3b7f4bea4f85ec201e8609ebd93e82e309b54cff1e7b7dcb5e6481b39) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO keplerproject/luafilesystem REF ${LUAFILESYSTEM_REVISION} SHA512 ${LUAFILESYSTEM_HASH} HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-luafilesystem-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLFS_VERSION="${VERSION}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-luafilesystem") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/luafilesystem/unofficial-luafilesystem-config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/unofficial-luafilesystem-targets.cmake") check_required_components(luafilesystem) ================================================ FILE: ports/luafilesystem/usage ================================================ luafilesystem provides CMake targets: find_package(unofficial-luafilesystem CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::luafilesystem::lfs) ================================================ FILE: ports/luafilesystem/vcpkg.json ================================================ { "name": "luafilesystem", "version": "1.9.0", "description": "LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution.", "homepage": "https://github.com/keplerproject/luafilesystem", "supports": "!uwp", "dependencies": [ "lua", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/luajit/003-do-not-set-macosx-deployment-target.patch ================================================ diff --git a/src/Makefile b/src/Makefile index bac0341e..b867326f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -319,7 +319,7 @@ ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector endif ifeq (Darwin,$(TARGET_SYS)) ifeq (,$(MACOSX_DEPLOYMENT_TARGET)) - $(error missing: export MACOSX_DEPLOYMENT_TARGET=XX.YY) + # relying on vcpkg toolchain flags endif TARGET_STRIP+= -x TARGET_XCFLAGS+= -DLUAJIT_UNWIND_EXTERNAL ================================================ FILE: ports/luajit/Makefile.nmake ================================================ all: @echo _CL_ = $(_CL_) @echo _LINK_ = $(_LINK_) cd src && .\msvcbuild.bat $(MSVCBUILD_OPTIONS) install: src\luajit.exe -mkdir "$(INSTALLDIR)" -mkdir "$(INSTALLDIR)\bin" copy src\luajit.exe "$(INSTALLDIR)\bin\" if exist src\lua51.dll copy src\lua51.dll "$(INSTALLDIR)\bin\" -mkdir "$(INSTALLDIR)\lib" copy src\lua51.lib "$(INSTALLDIR)\lib\" -mkdir "$(INSTALLDIR)\include" -mkdir "$(INSTALLDIR)\include\luajit" copy src\lua.h "$(INSTALLDIR)\include\luajit\" copy src\luajit.h "$(INSTALLDIR)\include\luajit\" copy src\luaconf.h "$(INSTALLDIR)\include\luajit\" copy src\lualib.h "$(INSTALLDIR)\include\luajit\" copy src\lauxlib.h "$(INSTALLDIR)\include\luajit\" copy src\lua.hpp "$(INSTALLDIR)\include\luajit\" ================================================ FILE: ports/luajit/configure ================================================ #!/bin/sh set -e LJARCH= LUAJIT_BUILDMODE= LUAJIT_BUILDVM_X= LUAJIT_DASM_ARCHS= LUAJIT_PREFIX= LUAJIT_HOST_LUA= for OPTION; do case "${OPTION}" in --prefix=*) LUAJIT_PREFIX="${OPTION#--prefix=}" ;; BUILDMODE=*) LUAJIT_BUILDMODE="${OPTION#BUILDMODE=}" ;; BUILDVM_X=*) LUAJIT_BUILDVM_X="${OPTION#BUILDVM_X=}" ;; DASM_ARCHS=*) LUAJIT_DASM_ARCHS="${OPTION#DASM_ARCHS=}" ;; HOST_LUA=*) LUAJIT_HOST_LUA="${OPTION#HOST_LUA=}" ;; LJARCH=*) LJARCH="${OPTION#LJARCH=}" ;; esac done cat > Makefile.vcpkg < [-m32] -E src/lj_arch.h -dM' TARGET_TESTARCH_COMMON += 'LJ_LE 1' 'LJ_HASJIT 1' 'LJ_HASFFI 1' 'LJ_ARCH_HASFPU 1' 'LJ_ABI_SOFTFP 0' TARGET_TESTARCH_COMMON_32 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 32' TARGET_TESTARCH_COMMON_64 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 64' 'LJ_TARGET_GC64 1' TARGET_TESTARCH_arm = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_ARM TARGET_TESTARCH_arm64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_ARM64 'LJ_ARCH_VERSION 80' TARGET_TESTARCH_x86 = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_X86 TARGET_TESTARCH_x64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_X64 'LJ_FR2 1' all: \$(MAKE) clean \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) \$(MAKE) all \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) for DA in \$(DASM_ARCHS); do \\ rm -f src/host/buildvm_arch.h src/host/*.o; \\ case "\$\$DA" in \\ arm) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm)" ;; \\ arm64) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm64)" ;; \\ x86) TARGET_TESTARCH="\$(TARGET_TESTARCH_x86)" ;; \\ x64) TARGET_TESTARCH="\$(TARGET_TESTARCH_x64)" ;; \\ esac ; \\ \$(MAKE) -C src host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) \\ BUILDVM_T=host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) "TARGET_TESTARCH=\$\${TARGET_TESTARCH}" \\ || exit 1; \\ done install: \$(MAKE) install \$(COMMON_OPTIONS) ifeq (${LJARCH},) mkdir -p "\$\${DESTDIR}\$(BUILDVM_PREFIX)" install -m 0755 "src/host/minilua\$(EXECUTABLE_SUFFIX)" "\$\${DESTDIR}\$(BUILDVM_PREFIX)/minilua\$(EXECUTABLE_SUFFIX)" for DA in \$(DASM_ARCHS); do \\ install -m 0755 "src/host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" "\$\${DESTDIR}\$(BUILDVM_PREFIX)/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" || exit 1 ; \\ done endif END_MAKEFILE ================================================ FILE: ports/luajit/luajit.pc ================================================ # Package information for LuaJIT to be used by pkg-config. majver=2 minver=1 relver=0 version=${majver}.${minver}.${relver}-beta3 abiver=51 prefix=handled-by-fixup multilib=lib exec_prefix=${prefix} libdir=${exec_prefix}/${multilib} libname=lua${abiver} includedir=${prefix}/include/luajit INSTALL_LMOD=${prefix}/share/lua/${abiver} INSTALL_CMOD=${prefix}/${multilib}/lua/${abiver} Name: LuaJIT Description: Just-in-time compiler for Lua URL: https://luajit.org Version: ${version} Requires: Libs: -L${libdir} -l${libname} Cflags: -I${includedir} ================================================ FILE: ports/luajit/msvcbuild.patch ================================================ diff --git a/src/msvcbuild.bat b/src/msvcbuild.bat index e0df88bc..0ccf4d04 100644 --- a/src/msvcbuild.bat +++ b/src/msvcbuild.bat @@ -18,12 +18,14 @@ @rem Add more debug flags here, e.g. DEBUGCFLAGS=/DLUA_USE_ASSERT @set DEBUGCFLAGS= @set LJCOMPILE=cl /nologo /c /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /D_CRT_STDIO_INLINE=__declspec(dllexport)__inline -@set LJDYNBUILD=/DLUA_BUILD_AS_DLL /MD -@set LJDYNBUILD_DEBUG=/DLUA_BUILD_AS_DLL /MDd -@set LJCOMPILETARGET=/Zi -@set LJLINKTYPE=/DEBUG /RELEASE -@set LJLINKTYPE_DEBUG=/DEBUG -@set LJLINKTARGET=/OPT:REF /OPT:ICF /INCREMENTAL:NO +@rem vvv vcpkg flags via env +@set LJDYNBUILD=/DLUA_BUILD_AS_DLL +@set LJDYNBUILD_DEBUG=/DLUA_BUILD_AS_DLL +@set LJCOMPILETARGET= +@set LJLINKTYPE= +@set LJLINKTYPE_DEBUG= +@set LJLINKTARGET= +@rem ^^^ vcpkg flags via env @set LJLINK=link /nologo @set LJMT=mt /nologo @set LJLIB=lib /nologo /nodefaultlib @@ -141,7 +143,7 @@ buildvm -m folddef -o lj_folddef.h lj_opt_fold.c if exist %LJDLLNAME%.manifest^ %LJMT% -manifest %LJDLLNAME%.manifest -outputresource:%LJDLLNAME%;2 -%LJCOMPILE% luajit.c +%LJCOMPILE% luajit.c /Fdluajit.pdb @if errorlevel 1 goto :BAD %LJLINK% /OUT:luajit.exe luajit.obj %LJLIBNAME% @if errorlevel 1 goto :BAD @@ -157,6 +159,9 @@ if exist luajit.exe.manifest^ @goto :END :SETHOSTVARS @if "%VSCMD_ARG_HOST_ARCH%_%VSCMD_ARG_TGT_ARCH%" equ "x64_arm64" ( + @echo Temporarily configuring MSVC for x64 host tools while building for arm64 + set _CL_= + set _LINK_= call "%VSINSTALLDIR%Common7\Tools\VsDevCmd.bat" -arch=%VSCMD_ARG_HOST_ARCH% -no_logo echo on ) @@ -169,4 +174,5 @@ if exist luajit.exe.manifest^ @goto :END :FAIL @echo You must open a "Visual Studio Command Prompt" to run this script +@exit 1 :END ================================================ FILE: ports/luajit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LuaJIT/LuaJIT REF 659a61693aa3b87661864ad0f12eee14c865cd7f # 2026-03-04 SHA512 b222ee14789e0017b613ff3edaccd547b30027609fbd721a1185c7f38b0cde7d83ecb7d222f0f68159a1a39ab293ce5dcfc0c66c5678e02adc31d59721472444 HEAD_REF master PATCHES msvcbuild.patch 003-do-not-set-macosx-deployment-target.patch ) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_MSVC) set(VSCMD_ARG_TGT_ARCH "${VCPKG_TARGET_ARCHITECTURE}") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_arch $ENV{PROCESSOR_ARCHITEW6432}) else() set(host_arch $ENV{PROCESSOR_ARCHITECTURE}) endif() if(host_arch MATCHES "(amd|AMD)64") set(ENV{VSCMD_ARG_HOST_ARCH} "x64") endif() endif() vcpkg_list(SET options) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND options "MSVCBUILD_OPTIONS=static") endif() vcpkg_install_nmake(SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME "${CMAKE_CURRENT_LIST_DIR}/Makefile.nmake" OPTIONS ${options} ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/luajit/luaconf.h" "defined(LUA_BUILD_AS_DLL)" "1") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/luajit.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/luajit.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_copy_pdbs() # jit including the specific vmdef.lua generated during the build file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/jit" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/luajit/lua") else() vcpkg_list(SET options) if(VCPKG_CROSSCOMPILING) list(APPEND options "LJARCH=${VCPKG_TARGET_ARCHITECTURE}" "BUILDVM_X=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/buildvm-${VCPKG_TARGET_ARCHITECTURE}${VCPKG_HOST_EXECUTABLE_SUFFIX}" "HOST_LUA=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/minilua${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() vcpkg_list(SET make_options "EXECUTABLE_SUFFIX=${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(strip_options "") # cf. src/Makefile if(VCPKG_TARGET_IS_OSX) vcpkg_list(APPEND make_options "TARGET_SYS=Darwin") set(strip_options " -x") elseif(VCPKG_TARGET_IS_IOS) vcpkg_list(APPEND make_options "TARGET_SYS=iOS") set(strip_options " -x") elseif(VCPKG_TARGET_IS_LINUX) vcpkg_list(APPEND make_options "TARGET_SYS=Linux") elseif(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND make_options "TARGET_SYS=Windows") set(strip_options " --strip-unneeded") endif() set(dasm_archs "") if("buildvm-32" IN_LIST FEATURES) string(APPEND dasm_archs " arm x86") endif() if("buildvm-64" IN_LIST FEATURES) string(APPEND dasm_archs " arm64 x64") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure" DESTINATION "${SOURCE_PATH}") vcpkg_configure_make(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE OPTIONS "BUILDMODE=${VCPKG_LIBRARY_LINKAGE}" ${options} OPTIONS_RELEASE "DASM_ARCHS=${dasm_archs}" ) vcpkg_install_make( MAKEFILE "Makefile.vcpkg" OPTIONS ${make_options} "TARGET_AR=${VCPKG_DETECTED_CMAKE_AR} rcus" "TARGET_STRIP=${VCPKG_DETECTED_CMAKE_STRIP}${strip_options}" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/lua" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/lua" "${CURRENT_PACKAGES_DIR}/share/lua" "${CURRENT_PACKAGES_DIR}/share/man" ) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/luajit-symlink" "${CURRENT_PACKAGES_DIR}/debug/bin/luajit-symlink") vcpkg_copy_tools(TOOL_NAMES luajit AUTO_CLEAN) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/luajit/vcpkg.json ================================================ { "name": "luajit", "version-date": "2026-03-04", "description": "LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language.", "homepage": "https://github.com/LuaJIT/LuaJIT", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "luajit", "host": true, "features": [ "buildvm-32" ], "platform": "!native & (arm32 | x86) & (!windows | mingw)" }, { "name": "luajit", "host": true, "features": [ "buildvm-64" ], "platform": "!native & (arm64 | x64) & (!windows | mingw)" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "buildvm-32": { "description": "Install host tools for 32 bit targets", "supports": "native & (arm32 | x86) & (!windows | mingw)" }, "buildvm-64": { "description": "Install host tools for 64 bit targets", "supports": "native & (arm64 | x64) & (!windows | mingw)" } } } ================================================ FILE: ports/luasec/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20.0) project(luasec) find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) find_library(LUA_LIBRARY lua) find_package(OpenSSL) set(LUASEC_INCLUDES ${LUA_INCLUDE_DIR} src) set(LUASEC_LIBRARIES ${LUA_LIBRARY} OpenSSL::SSL OpenSSL::Crypto OpenSSL::applink) if(WIN32) set(PLATFORM_LIBRARIES ws2_32) endif() add_library(lua-ssl src/config.c src/ssl.c src/context.c src/x509.c src/ec.c src/options.c src/luasocket/buffer.c src/luasocket/io.c src/luasocket/timeout.c) if(WIN32) target_sources(lua-ssl PRIVATE src/luasocket/wsocket.c) else() target_sources(lua-ssl PRIVATE src/luasocket/usocket.c) endif() target_include_directories(lua-ssl PRIVATE ${LUASEC_INCLUDES}) target_link_libraries(lua-ssl PRIVATE ${LUASEC_LIBRARIES} ${PLATFORM_LIBRARIES}) set_target_properties(lua-ssl PROPERTIES PREFIX "") install(TARGETS lua-ssl RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) install(FILES src/ssl.lua DESTINATION share/lua) install(FILES src/https.lua DESTINATION share/lua/ssl) ================================================ FILE: ports/luasec/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lunarmodules/luasec REF "v${VERSION}" SHA512 8f0c4b5ff87c024685b23770e1d342467554b8dc19a1704076e184d9e84b966f171091c31d1da135ab009e850275adc2bf2720fc9f32c83ac23f0a42f13d311f HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Remove debug share file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) # Handle copyright vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE) # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/luasec/vcpkg.json ================================================ { "name": "luasec", "version": "1.3.2", "port-version": 2, "maintainers": "Stephen Baker ", "description": "LuaSec depends on OpenSSL, and integrates with LuaSocket to make it easy to add secure connections to any Lua applications or scripts.", "homepage": "https://github.com/lunarmodules/luasec", "license": "MIT", "supports": "!staticcrt", "dependencies": [ "lua", "luasocket", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/luasocket/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(luasocket) if(WIN32) set(PLATFORM_LIBRARIES ws2_32) endif() find_path(LUA_INCLUDE_DIR lua.h PATH_SUFFIXES lua) find_library(LUA_LIBRARY lua) set(LUASOCKET_INCLUDES ${LUA_INCLUDE_DIR} src) set(LUASOCKET_LIBRARIES ${LUA_LIBRARY} ${PLATFORM_LIBRARIES}) add_library(socket.core src/luasocket.c src/timeout.c src/buffer.c src/io.c src/auxiliar.c src/options.c src/inet.c src/except.c src/select.c src/tcp.c src/udp.c src/compat.c) if(WIN32) target_sources(socket.core PRIVATE src/wsocket.c) elseif (UNIX) target_sources(socket.core PRIVATE src/usocket.c) endif() set_target_properties(socket.core PROPERTIES RUNTIME_OUTPUT_DIRECTORY "socket" LIBRARY_OUTPUT_DIRECTORY "socket" PREFIX "" RUNTIME_OUTPUT_NAME "core" LIBRARY_OUTPUT_NAME "core") target_include_directories(socket.core PRIVATE ${LUASOCKET_INCLUDES}) target_link_libraries(socket.core PRIVATE ${LUASOCKET_LIBRARIES}) add_library(mime.core src/mime.c src/compat.c) set_target_properties(mime.core PROPERTIES RUNTIME_OUTPUT_DIRECTORY "mime" LIBRARY_OUTPUT_DIRECTORY "mime" PREFIX "" RUNTIME_OUTPUT_NAME "core" LIBRARY_OUTPUT_NAME "core") target_include_directories(mime.core PRIVATE ${LUASOCKET_INCLUDES}) target_link_libraries(mime.core PRIVATE ${LUASOCKET_LIBRARIES}) if(UNIX) add_library(socket.unix src/buffer.c src/compat.c src/auxiliar.c src/options.c src/timeout.c src/io.c src/usocket.c src/unix.c src/unixdgram.c src/unixstream.c) set_target_properties(socket.unix PROPERTIES RUNTIME_OUTPUT_DIRECTORY "socket" LIBRARY_OUTPUT_DIRECTORY "socket" PREFIX "" RUNTIME_OUTPUT_NAME "unix" LIBRARY_OUTPUT_NAME "unix") target_include_directories(socket.unix PRIVATE ${LUASOCKET_INCLUDES}) target_link_libraries(socket.unix PRIVATE ${LUASOCKET_LIBRARIES}) add_library(socket.serial src/buffer.c src/compat.c src/auxiliar.c src/options.c src/timeout.c src/io.c src/usocket.c src/serial.c) set_target_properties(socket.serial PROPERTIES RUNTIME_OUTPUT_DIRECTORY "socket" LIBRARY_OUTPUT_DIRECTORY "socket" PREFIX "" RUNTIME_OUTPUT_NAME "serial" LIBRARY_OUTPUT_NAME "serial") target_include_directories(socket.serial PRIVATE ${LUASOCKET_INCLUDES}) target_link_libraries(socket.serial PRIVATE ${LUASOCKET_LIBRARIES}) endif() if(WIN32) if("${BUILD_TYPE}" STREQUAL "STATIC") add_definitions( "-DLUASOCKET_API=") else() add_definitions( "-DLUASOCKET_API=__declspec(dllexport)") endif() endif() install(TARGETS socket.core RUNTIME DESTINATION bin/socket LIBRARY DESTINATION lib/socket ARCHIVE DESTINATION lib) install(TARGETS mime.core RUNTIME DESTINATION bin/mime LIBRARY DESTINATION lib/mime ARCHIVE DESTINATION lib) if(UNIX) install(TARGETS socket.unix RUNTIME DESTINATION bin/socket LIBRARY DESTINATION lib/socket ARCHIVE DESTINATION lib) install(TARGETS socket.serial RUNTIME DESTINATION bin/socket LIBRARY DESTINATION lib/socket ARCHIVE DESTINATION lib) endif() install(FILES src/ltn12.lua src/socket.lua src/mime.lua DESTINATION share/lua) install(FILES src/http.lua src/url.lua src/tp.lua src/ftp.lua src/headers.lua src/smtp.lua DESTINATION share/lua/socket) ================================================ FILE: ports/luasocket/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lunarmodules/luasocket REF "v${VERSION}" SHA512 1e9e98484740ec6538fe3d2b0dab74d31f052956ecf9ee3b60e229f2d0b13fcc6d4aaf74cd2a3e2ee330333dabb316fe6a43c60baaea26f0cc01069b6aa4519b HEAD_REF master) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(BUILD_TYPE SHARED) else() set(BUILD_TYPE STATIC) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TYPE=${BUILD_TYPE} ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Remove debug share file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE) # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/luasocket/vcpkg.json ================================================ { "name": "luasocket", "version": "3.1.0", "port-version": 1, "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.", "homepage": "https://lunarmodules.github.io/luasocket/", "license": "MIT", "dependencies": [ "lua", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/luau/cmake-config-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1bf58ae..d4419df 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,41 +66,41 @@ add_library(Luau.VM.Internals INTERFACE) include(Sources.cmake) target_compile_features(Luau.Common PUBLIC cxx_std_17) -target_include_directories(Luau.Common PUBLIC Common/include) +target_include_directories(Luau.Common PUBLIC $ $) target_compile_features(Luau.CLI.lib PUBLIC cxx_std_17) -target_include_directories(Luau.CLI.lib PUBLIC CLI/include) +target_include_directories(Luau.CLI.lib PUBLIC $ $) target_link_libraries(Luau.CLI.lib PRIVATE Luau.Common Luau.Config) target_compile_features(Luau.Ast PUBLIC cxx_std_17) -target_include_directories(Luau.Ast PUBLIC Ast/include) +target_include_directories(Luau.Ast PUBLIC $ $) target_link_libraries(Luau.Ast PUBLIC Luau.Common) target_compile_features(Luau.Compiler PUBLIC cxx_std_17) -target_include_directories(Luau.Compiler PUBLIC Compiler/include) +target_include_directories(Luau.Compiler PUBLIC $ $) target_link_libraries(Luau.Compiler PUBLIC Luau.Ast) target_compile_features(Luau.Config PUBLIC cxx_std_17) -target_include_directories(Luau.Config PUBLIC Config/include) +target_include_directories(Luau.Config PUBLIC $ $) target_link_libraries(Luau.Config PUBLIC Luau.Ast) target_link_libraries(Luau.Config PRIVATE Luau.Compiler Luau.VM) target_compile_features(Luau.Analysis PUBLIC cxx_std_17) -target_include_directories(Luau.Analysis PUBLIC Analysis/include) +target_include_directories(Luau.Analysis PUBLIC $ $) target_link_libraries(Luau.Analysis PUBLIC Luau.Ast Luau.Config) target_link_libraries(Luau.Analysis PRIVATE Luau.Compiler Luau.VM) target_compile_features(Luau.CodeGen PRIVATE cxx_std_17) -target_include_directories(Luau.CodeGen PUBLIC CodeGen/include) -target_link_libraries(Luau.CodeGen PRIVATE Luau.VM Luau.VM.Internals) # Code generation needs VM internals +target_include_directories(Luau.CodeGen PUBLIC $ $) +target_link_libraries(Luau.CodeGen PRIVATE Luau.VM $) # Code generation needs VM internals target_link_libraries(Luau.CodeGen PUBLIC Luau.Common) target_compile_features(Luau.VM PRIVATE cxx_std_11) -target_include_directories(Luau.VM PUBLIC VM/include) +target_include_directories(Luau.VM PUBLIC $ $) target_link_libraries(Luau.VM PUBLIC Luau.Common) target_compile_features(Luau.Require PUBLIC cxx_std_17) -target_include_directories(Luau.Require PUBLIC Require/include) +target_include_directories(Luau.Require PUBLIC $ $) target_link_libraries(Luau.Require PUBLIC Luau.Config Luau.VM) target_include_directories(isocline PUBLIC extern/isocline/include) @@ -189,22 +189,6 @@ if(MSVC AND LUAU_BUILD_TESTS) set_target_properties(Luau.CLI.Test PROPERTIES LINK_FLAGS_DEBUG /STACK:2097152) endif() -# embed .natvis inside the library debug information -if(MSVC) - target_link_options(Luau.Ast INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/Ast.natvis) - target_link_options(Luau.Analysis INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/Analysis.natvis) - target_link_options(Luau.CodeGen INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/CodeGen.natvis) - target_link_options(Luau.VM INTERFACE /NATVIS:${CMAKE_CURRENT_SOURCE_DIR}/tools/natvis/VM.natvis) -endif() - -# make .natvis visible inside the solution -if(MSVC_IDE) - target_sources(Luau.Ast PRIVATE tools/natvis/Ast.natvis) - target_sources(Luau.Analysis PRIVATE tools/natvis/Analysis.natvis) - target_sources(Luau.CodeGen PRIVATE tools/natvis/CodeGen.natvis) - target_sources(Luau.VM PRIVATE tools/natvis/VM.natvis) -endif() - # On Windows and Android threads are provided, on Linux/Mac/iOS we use pthreads add_library(osthreads INTERFACE) if(CMAKE_SYSTEM_NAME MATCHES "Linux|Darwin|iOS") @@ -297,3 +281,56 @@ foreach(LIB Luau.Ast Luau.Compiler Luau.Config Luau.Analysis Luau.CodeGen Luau.V endif() endif() endforeach() + +# luau package +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +write_basic_package_version_file( + ${CMAKE_CURRENT_BINARY_DIR}/unofficial-luau-config-version.cmake + VERSION "${VERSION}" + COMPATIBILITY AnyNewerVersion +) + +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/unofficial-luau-config-version.cmake + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/unofficial-luau-config.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-luau +) + +install( + TARGETS Luau.Common Luau.Ast Luau.Compiler Luau.Config Luau.Analysis Luau.VM Luau.CLI.lib Luau.Require + EXPORT unofficial-luau-targets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) + +if (LUAU_BUILD_CLI) + install( + TARGETS Luau.Repl.CLI + EXPORT unofficial-luau-targets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ) +endif() + +install( + DIRECTORY "${CMAKE_SOURCE_DIR}/Common/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/Ast/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/Compiler/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/Config/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/Analysis/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/CodeGen/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/VM/include/" + DIRECTORY "${CMAKE_SOURCE_DIR}/VM/src/" + DIRECTORY "${CMAKE_SOURCE_DIR}/Require/include/" + DESTINATION "include/luau" + FILES_MATCHING + PATTERN "*.h" +) + +install( + EXPORT unofficial-luau-targets + NAMESPACE unofficial::luau:: + DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-luau" +) diff --git b/cmake/unofficial-luau-config.cmake b/cmake/unofficial-luau-config.cmake new file mode 100644 index 0000000..13fd463 --- /dev/null +++ b/cmake/unofficial-luau-config.cmake @@ -0,0 +1 @@ +include(${CMAKE_CURRENT_LIST_DIR}/unofficial-luau-targets.cmake) ================================================ FILE: ports/luau/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO luau-lang/luau REF ${VERSION} SHA512 a45170981345b92abf07881394a4e0a60489a34825eba1e2e90da0e9101aa8a5243d2efe971520987a800dc3b981e31f8972a52aa0eb6833909e66e87f53d8e7 HEAD_REF master PATCHES cmake-config-export.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool LUAU_BUILD_CLI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLUAU_BUILD_TESTS=OFF -DVERSION=${VERSION} ${FEATURE_OPTIONS} OPTIONS_DEBUG -DLUAU_BUILD_CLI=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-luau") if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES luau AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/luau/vcpkg.json ================================================ { "name": "luau", "version": "0.712", "description": "A fast, small, safe, gradually typed embeddable scripting language derived from Lua", "homepage": "https://github.com/luau-lang/luau", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Builds luau executable", "supports": "!uwp" } } } ================================================ FILE: ports/luminoengine/fix-cmake-config.patch ================================================ diff --git a/cmake/LuminoConfig.cmake.in b/cmake/LuminoConfig.cmake.in index 283ad47..aa9bfd8 100644 --- a/cmake/LuminoConfig.cmake.in +++ b/cmake/LuminoConfig.cmake.in @@ -13,5 +13,9 @@ include("${CMAKE_CURRENT_LIST_DIR}/LuminoTargets.cmake") # Combination target #------------------------------------------------------------------------------- add_library(lumino::Lumino INTERFACE IMPORTED) -target_link_libraries(lumino::Lumino INTERFACE lumino::LuminoEngine lumino::LuminoCore) +if(LUMINO_BUILD_ENGINE) + target_link_libraries(lumino::Lumino INTERFACE lumino::LuminoEngine lumino::LuminoCore) +else() + target_link_libraries(lumino::Lumino INTERFACE lumino::LuminoCore) +endif() ================================================ FILE: ports/luminoengine/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LuminoEngine/Lumino REF "v${VERSION}" SHA512 f43e48b36a48b5fcce4767de087f9953c905ac0af5522042a93c39ec75e4c9489b8910bc5b2f6fd129ce197309377a14b6eb9177a6ea9db4f5c2e7d1b13a137d HEAD_REF main PATCHES fix-cmake-config.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES engine LUMINO_BUILD_ENGINE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DLUMINO_BUILD_EXAMPLES=OFF -DLN_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lumino) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/luminoengine/usage ================================================ luminoengine provides CMake targets: find_package(Lumino CONFIG REQUIRED) target_link_libraries(main PRIVATE lumino::Lumino) ================================================ FILE: ports/luminoengine/vcpkg.json ================================================ { "name": "luminoengine", "version": "0.10.1", "port-version": 1, "description": "C++17 games and visualization toolkit.", "homepage": "https://github.com/LuminoEngine/Lumino", "license": "MIT", "supports": "x64 & windows & !uwp", "dependencies": [ "gtest", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "engine": { "description": "Make engine module.", "dependencies": [ "box2d", "bullet3", { "name": "freetype", "features": [ "png", "zlib" ] }, "glad", "glfw3", "glslang", { "name": "imgui", "features": [ "docking-experimental" ] }, "libogg", "libpng", "libvorbis", "nanovg", "openal-soft", "pcre2", "spirv-cross", "stb", "tinygltf", "tinyobjloader", "toml11", "vulkan-headers", "yaml-cpp", "zlib" ] } } } ================================================ FILE: ports/lunarg-vulkantools/disable-qtdeploy.patch ================================================ diff --git a/vkconfig_gui/CMakeLists.txt b/vkconfig_gui/CMakeLists.txt index 2dbaabead..b9d836139 100644 --- a/vkconfig_gui/CMakeLists.txt +++ b/vkconfig_gui/CMakeLists.txt @@ -59,8 +59,8 @@ endif() get_filename_component(QT_BIN_DIR "${QMAKE_EXE}" DIRECTORY) find_program(WINDEPLOYQT_EXE windeployqt HINTS "${QT_BIN_DIR}") - message(STATUS "Will run ${WINDEPLOYQT_EXE} at ${CMAKE_INSTALL_FULL_BINDIR}/vkconfig-gui.exe") - install(CODE "execute_process(COMMAND ${WINDEPLOYQT_EXE} ${CMAKE_INSTALL_FULL_BINDIR}/vkconfig-gui.exe)") + # message(STATUS "Will run ${WINDEPLOYQT_EXE} at ${CMAKE_INSTALL_FULL_BINDIR}/vkconfig-gui.exe") + # install(CODE "execute_process(COMMAND ${WINDEPLOYQT_EXE} ${CMAKE_INSTALL_FULL_BINDIR}/vkconfig-gui.exe)") endif() else() include(macOS/vkconfig.cmake) ================================================ FILE: ports/lunarg-vulkantools/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LunarG/VulkanTools REF "vulkan-sdk-${VERSION}" SHA512 96aefd30febf411d84204864cb84bd782efc88c4ee109beedb28b252e25f5f8e321c77d8788622f200514cdad461a99a0e886dd95a4d786339ca05718c712212 HEAD_REF main PATCHES disable-qtdeploy.patch static-linkage.patch ) x_vcpkg_get_python_packages(PYTHON_VERSION "3" PACKAGES jsonschema OUT_PYTHON_VAR PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Qt6=ON "-DPython3_EXECUTABLE=${PYTHON3}" "-DVULKAN_HEADERS_INSTALL_DIR=${CURRENT_INSTALLED_DIR}" OPTIONS_RELEASE "-DVULKAN_LOADER_INSTALL_DIR=${CURRENT_INSTALLED_DIR}" OPTIONS_DEBUG "-DVULKAN_LOADER_INSTALL_DIR=${CURRENT_INSTALLED_DIR}/debug" ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES vkconfig vkconfig-gui AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/lunarg-vulkantools/static-linkage.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 669fdf3a6..81ba38f12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,10 +152,5 @@ if(BUILD_LAYERMGR) add_subdirectory(vkconfig_cmd) add_subdirectory(vkconfig_gui) - if(WIN32 AND (QT_TARGET_TYPE STREQUAL STATIC_LIBRARY)) - set_property(TARGET vkconfig-gui vkconfig-cmd vkconfig-core PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - message(STATUS "INFO: vkconfig will link against static runtime") - endif() - endif() endif() ================================================ FILE: ports/lunarg-vulkantools/vcpkg.json ================================================ { "name": "lunarg-vulkantools", "version": "1.4.341.0", "description": "Tools to aid in Vulkan development", "homepage": "https://github.com/LunarG/VulkanTools", "license": null, "supports": "!osx & !(static & staticcrt)", "dependencies": [ "jsoncpp", { "name": "qtbase", "default-features": false, "features": [ "gui", "network", "thread", "vulkan", "widgets" ] }, "valijson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, "vulkan-loader", "vulkan-utility-libraries" ] } ================================================ FILE: ports/lunasvg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sammycage/lunasvg REF "v${VERSION}" SHA512 62cf1433f4d158008ab07c9b6a83dca2322e1adf97a7f30a2021be5610af7b28e2ed54c75292fb382a3dcc6205f0e7b8d815b8a59aa11843a059883203d191c1 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_REQUIRE_FIND_PACKAGE_plutovg=1 -DUSE_SYSTEM_PLUTOVG=ON -DLUNASVG_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/lunasvg) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/lunasvg/lunasvg.h" "defined(LUNASVG_BUILD_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lunasvg/vcpkg.json ================================================ { "name": "lunasvg", "version": "3.5.0", "description": "lunasvg is a standalone SVG rendering library in C++", "homepage": "https://github.com/sammycage/lunasvg", "license": "MIT", "dependencies": [ "plutovg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/luv/fix-find-libuv.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e63a431..163bada 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,8 +65,8 @@ endif () set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") if (WITH_SHARED_LIBUV) - find_package(Libuv REQUIRED) - include_directories(${LIBUV_INCLUDE_DIR}) + find_package(libuv CONFIG REQUIRED) + set(LIBUV_LIBRARIES $,libuv::uv_a,libuv::uv>) else (WITH_SHARED_LIBUV) include_directories(deps/libuv/include) add_subdirectory(deps/libuv EXCLUDE_FROM_ALL) ================================================ FILE: ports/luv/fix-find-lua-compat53.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e63a431..1f144c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,13 +231,7 @@ if(APPLE) # ) endif() -if(NOT LUA_COMPAT53_DIR) - set(LUA_COMPAT53_DIR deps/lua-compat-5.3) -endif() -if(DEFINED ENV{LUA_COMPAT53_DIR}) - set(LUA_COMPAT53_DIR $ENV{LUA_COMPAT53_DIR}) -endif() -include_directories(${LUA_COMPAT53_DIR}/c-api) +find_path(LUA_COMPAT53_INCLUDE_DIRS "compat-5.3.h") if(WIN32) add_definitions(-DLUA_BUILD_AS_DLL -DLUA_LIB) @@ -263,6 +257,7 @@ foreach(TARGET_NAME ${ACTIVE_TARGETS}) else() target_link_libraries(${TARGET_NAME} ${LIBUV_LIBRARIES}) endif() + target_include_directories(${TARGET_NAME} PRIVATE ${LUA_COMPAT53_INCLUDE_DIRS}) endforeach() if (NOT LUA) ================================================ FILE: ports/luv/fix-find-luajit.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e63a431..841db78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,7 +125,7 @@ else (LUA) # We only link the libs on Windows, so find_package fully succeeding # is only required on Windows if (WIN32 OR CYGWIN) - find_package(LuaJIT REQUIRED) + find_package(LUAJIT REQUIRED) link_directories(${LUAJIT_LIBRARIES}) else() find_package(LuaJIT) diff --git a/cmake/Modules/FindLuaJIT.cmake b/cmake/Modules/FindLuaJIT.cmake index 0d0786e..7121e06 100644 --- a/cmake/Modules/FindLuaJIT.cmake +++ b/cmake/Modules/FindLuaJIT.cmake @@ -23,8 +23,12 @@ # LUA_VERSION_MINOR - the minor version of Lua # LUA_VERSION_PATCH - the patch version of Lua -FIND_PATH(LUAJIT_INCLUDE_DIR NAMES lua.h PATH_SUFFIXES luajit-2.0 luajit-2.1) -FIND_LIBRARY(LUAJIT_LIBRARIES NAMES luajit-5.1 luajit) +FIND_PATH(LUAJIT_INCLUDE_DIR NAMES luajit.h PATH_SUFFIXES luajit-2.0 luajit-2.1 luajit) +set(LUAJIT_LIB_NAMES luajit-5.1 luajit) +if(MSVC) + list(APPEND LUAJIT_LIB_NAMES lua51) +endif() +FIND_LIBRARY(LUAJIT_LIBRARIES NAMES ${LUAJIT_LIB_NAMES}) if (LUAJIT_INCLUDE_DIR AND EXISTS "${LUAJIT_INCLUDE_DIR}/lua.h") # At least 5.[012] have different ways to express the version ================================================ FILE: ports/luv/fix-msvc-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e63a431..aa46c07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,20 +25,6 @@ if (MINGW) add_definitions(-D_WIN32_WINNT=0x0600) endif (MINGW) -if (WIN32) - # replace /MD to /MT to avoid link msvcr*.dll - # this needs to be before add_subdirectory calls so that they inherit the modified flags - set(CompilerFlags - CMAKE_C_FLAGS - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_MINSIZEREL - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_C_FLAGS_RELEASE) - foreach(CompilerFlag ${CompilerFlags}) - string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}") - endforeach() -endif () - if (NOT WITH_LUA_ENGINE) set(WITH_LUA_ENGINE "LuaJIT" CACHE STRING "Link to LuaJIT or PUC Lua" FORCE) ================================================ FILE: ports/luv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO luvit/luv REF 1f255a7d87cef4a7eb10bd13bbd1e213980e8da2 #v1.44.2 SHA512 e9ee9ee6ca8f810c375f3310a119b518da8d15f6e3093aaa6069217f4e3d29a45426cc5e2233b6a8d90876867d9097c938a5b961fb6e46479c62145297f5bb82 HEAD_REF master PATCHES fix-find-libuv.patch fix-find-luajit.patch fix-find-lua-compat53.patch fix-msvc-build.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWITH_SHARED_LIBUV=ON -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DLUA_BUILD_TYPE=System -DWITH_LUA_ENGINE=LuaJIT -DUSE_LUAJIT=ON -DBUILD_MODULE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/luv/vcpkg.json ================================================ { "name": "luv", "version-semver": "1.44.2", "port-version": 1, "description": "Bare libuv bindings for lua", "homepage": "https://github.com/luvit/luv", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "libuv", "version>=": "1.44.2" }, "lua-compat53", "luajit", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lv2/lv2-config.cmake ================================================ if(NOT TARGET lv2::lv2) 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(lv2::lv2 INTERFACE IMPORTED) set_target_properties(lv2::lv2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/lv2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lv2/lv2 REF "v${VERSION}" SHA512 d63a223b1e1ab9282392637ea2878cfca5dc466553dcea45fb6d8bc5fe657d0705f01db45affcda29344166fba2738a33da5c15ef44ceec58989e406131e1ded HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddocs=disabled -Dplugins=disabled -Dtests=disabled ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/lv2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/lv2/vcpkg.json ================================================ { "name": "lv2", "version": "1.18.10", "port-version": 1, "description": "LV2 is a plugin standard for audio systems. It defines a minimal yet extensible C API for plugin code and a format for plugin \"bundles\".", "homepage": "https://lv2plug.in", "license": "ISC", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/lwlog/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ChristianPanov/lwlog REF "v${VERSION}" SHA512 46615bb9680d847614955c5c371fc1b7f0e2741e240469fb220a62eb64b4caad5161fc741e4ebe3af4c37bb7db413702203c3fa5e4365a5b69aee24401873de4 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME lwlog_lib CONFIG_PATH lib/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lwlog/vcpkg.json ================================================ { "name": "lwlog", "version": "1.4.0", "description": "Very fast synchronous and asynchronous C++17 logging library", "homepage": "https://github.com/ChristianPanov/lwlog", "license": "MIT", "supports": "!android & !(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/lz4/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lz4/lz4 REF v${VERSION} SHA512 8c4ceb217e6dc8e7e0beba99adc736aca8963867bcf9f970d621978ba11ce92855912f8b66138037a1d2ae171e8e17beb7be99281fea840106aa60373c455b28 HEAD_REF dev PATCHES target-lz4-lz4.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools LZ4_BUILD_CLI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/build/cmake" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d ) vcpkg_cmake_install() vcpkg_copy_pdbs() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES lz4 AUTO_CLEAN ) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(DLL_IMPORT "1 && defined(_MSC_VER)") else() set(DLL_IMPORT "0") endif() foreach(FILE lz4.h lz4frame.h) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${FILE}" "defined(LZ4_DLL_IMPORT) && (LZ4_DLL_IMPORT==1)" "${DLL_IMPORT}" ) endforeach() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/lz4") vcpkg_fixup_pkgconfig() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/liblz4.pc" " -llz4" " -llz4d") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(LICENSE_FILES "${SOURCE_PATH}/lib/LICENSE") if("tools" IN_LIST FEATURES) list(APPEND LICENSE_FILES "${SOURCE_PATH}/programs/COPYING") endif() vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/lz4/target-lz4-lz4.diff ================================================ diff --git a/build/cmake/lz4Config.cmake.in b/build/cmake/lz4Config.cmake.in index e9c9473..4b48032 100644 --- a/build/cmake/lz4Config.cmake.in +++ b/build/cmake/lz4Config.cmake.in @@ -1,2 +1,10 @@ @PACKAGE_INIT@ -include( "${CMAKE_CURRENT_LIST_DIR}/lz4Targets.cmake" ) \ No newline at end of file +include( "${CMAKE_CURRENT_LIST_DIR}/lz4Targets.cmake" ) +if(NOT TARGET lz4::lz4) + add_library(lz4::lz4 INTERFACE IMPORTED) + if("@BUILD_SHARED_LIBS@") + set_target_properties(lz4::lz4 PROPERTIES INTERFACE_LINK_LIBRARIES LZ4::lz4_shared) + else() + set_target_properties(lz4::lz4 PROPERTIES INTERFACE_LINK_LIBRARIES LZ4::lz4_static) + endif() +endif() ================================================ FILE: ports/lz4/usage ================================================ lz4 provides CMake targets: find_package(lz4 CONFIG REQUIRED) target_link_libraries(main PRIVATE lz4::lz4) lz4 provides pkg-config modules: liblz4 ================================================ FILE: ports/lz4/vcpkg.json ================================================ { "name": "lz4", "version": "1.10.0", "description": "Lossless compression algorithm, providing compression speed at 400 MB/s per core.", "homepage": "https://github.com/lz4/lz4", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build lz4 binary", "license": "GPL-2.0-or-later" } } } ================================================ FILE: ports/lzav/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO avaneev/lzav REF ${VERSION} SHA512 844e916bc427a0be585aa4c8020141132b242770e028b36b7f8e445f045add3e9334b7b5c2d12de5c84775eb47842bd4bed1f39d59867500c80258091d9b7466 HEAD_REF master ) file(COPY "${SOURCE_PATH}/lzav.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/lzav/vcpkg.json ================================================ { "name": "lzav", "version": "5.8", "description": "Fast In-Memory Data Compression Algorithm (inline C/C++)", "homepage": "https://github.com/avaneev/lzav", "license": "MIT" } ================================================ FILE: ports/lzfse/disable-cli-option.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 336a68d..96a2a74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -67,18 +67,20 @@ add_library(lzfse src/lzvn_encode_base.c) lzfse_add_compiler_flags(lzfse -Wall -Wno-unknown-pragmas -Wno-unused-variable) -add_executable(lzfse_cli - src/lzfse_main.c) -target_link_libraries(lzfse_cli lzfse) -set_target_properties(lzfse_cli PROPERTIES OUTPUT_NAME lzfse) -lzfse_add_compiler_flags(lzfse_cli -Wall -Wno-unknown-pragmas -Wno-unused-variable) - -if(CMAKE_VERSION VERSION_LESS 3.1 OR CMAKE_C_COMPLIER_ID STREQUAL "Intel") - lzfse_add_compiler_flags(lzfse -std=c99) - lzfse_add_compiler_flags(lzfse_cli -std=c99) -else() - set_property(TARGET lzfse PROPERTY C_STANDARD 99) - set_property(TARGET lzfse_cli PROPERTY C_STANDARD 99) +if(NOT LZFSE_DISABLE_CLI) + add_executable(lzfse_cli + src/lzfse_main.c) + target_link_libraries(lzfse_cli lzfse) + set_target_properties(lzfse_cli PROPERTIES OUTPUT_NAME lzfse) + lzfse_add_compiler_flags(lzfse_cli -Wall -Wno-unknown-pragmas -Wno-unused-variable) + + if(CMAKE_VERSION VERSION_LESS 3.1 OR CMAKE_C_COMPLIER_ID STREQUAL "Intel") + lzfse_add_compiler_flags(lzfse -std=c99) + lzfse_add_compiler_flags(lzfse_cli -std=c99) + else() + set_property(TARGET lzfse PROPERTY C_STANDARD 99) + set_property(TARGET lzfse_cli PROPERTY C_STANDARD 99) + endif() endif() set_target_properties(lzfse PROPERTIES @@ -95,7 +97,12 @@ endif() if(NOT LZFSE_BUNDLE_MODE) include(GNUInstallDirs) - install(TARGETS lzfse lzfse_cli + if(NOT LZFSE_DISABLE_CLI) + install(TARGETS lzfse_cli + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + endif() + + install(TARGETS lzfse RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") ================================================ FILE: ports/lzfse/portfile.cmake ================================================ if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") message(FATAL_ERROR "ARM build not supported") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lzfse/lzfse REF lzfse-1.0 SHA512 9d7ca44e6d3d2bdf4b82b0eb66c14922369b8b6fe2cf891187a77c6708b8d26c2c1b2ccddec6059e85dbbbb37c497419549f02812b5f34d06238ac246a8cf912 HEAD_REF master PATCHES disable-cli-option.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLZFSE_DISABLE_TESTS=ON -DLZFSE_DISABLE_CLI=ON) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${CURRENT_PACKAGES_DIR}/include/lzfse.h" LZFSE_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(REPLACE "defined(LZFSE_DLL)" "1" LZFSE_H "${LZFSE_H}") else() string(REPLACE "defined(LZFSE_DLL)" "0" LZFSE_H "${LZFSE_H}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/lzfse.h" "${LZFSE_H}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lzfse/vcpkg.json ================================================ { "name": "lzfse", "version": "1.0", "port-version": 5, "description": "Lempel-Ziv style data compressor using Finite State Entropy coding.", "homepage": "https://github.com/lzfse/lzfse", "supports": "!arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/lzo/always_install_pc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 98c0a1ad0..85690209c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,7 +290,7 @@ if(1) install(TARGETS ${f} DESTINATION "${CMAKE_INSTALL_FULL_LIBEXECDIR}/lzo/examples") endif() -if(PKG_CONFIG_FOUND) +if(1) configure_file(lzo2.pc.cmakein lzo2.pc @ONLY) #if(EXISTS "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/lzo2.pc" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") ================================================ FILE: ports/lzo/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz" FILENAME "lzo-2.10.tar.gz" SHA512 a3dae5e4a6b93b1f5bf7435e8ab114a9be57252e9efc5dd444947d7a2d031b0819f34bcaeb35f60b5629a01b1238d738735a64db8f672be9690d3c80094511a4 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES always_install_pc.patch ) set(LZO_STATIC OFF) set(LZO_SHARED OFF) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(LZO_STATIC ON) else() set(LZO_SHARED ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_STATIC=${LZO_STATIC} -DENABLE_SHARED=${LZO_SHARED} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/libexec") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/libexec") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(READ "${CURRENT_PACKAGES_DIR}/include/lzo/lzoconf.h" LZO_CONFIG) string(REPLACE "# define __LZO_EXPORT1 /*empty*/" "# define __LZO_EXPORT1 __declspec(dllimport)" LZO_CONFIG "${LZO_CONFIG}") file(WRITE "${CURRENT_PACKAGES_DIR}/include/lzo/lzoconf.h" "${LZO_CONFIG}") endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lzo/vcpkg.json ================================================ { "name": "lzo", "version": "2.10", "port-version": 9, "description": "Lossless data compression library", "homepage": "https://www.oberhumer.com/opensource/lzo/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/lzokay/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AxioDL/lzokay REF db2df1fcbebc2ed06c10f727f72567d40f06a2be SHA512 0e0c597cb74985ef2fc3329392dadf87c0ffc84287cdb2f04e6a70d2e74dcc79732de18872ff05d0906fac2d53749c3db6f2ccd32b906f5a8b81310810eae8eb HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/lzokay/vcpkg.json ================================================ { "name": "lzokay", "version-date": "2023-10-22", "description": "lzokay – MIT licensed C++ implementation of LZO compression/decompression algorithm", "homepage": "https://github.com/AxioDL/lzokay", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/maddy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO progsource/maddy REF "${VERSION}" SHA512 f494dc83f6adc181666e8b77280fa341176128f4d66bf43b34dbfda07a2f6d5dcacd0772a730a0ceeaa766b5e3ea8850a758217377c0793da6636bd55a27de51 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/maddy) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/maddy/usage ================================================ maddy provides CMake targets: find_package(maddy CONFIG REQUIRED) target_link_libraries(main PRIVATE maddy::maddy) ================================================ FILE: ports/maddy/vcpkg.json ================================================ { "name": "maddy", "version": "1.6.0", "description": "C++ Markdown to HTML header-only parser library", "homepage": "https://github.com/progsource/maddy", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/magic-args/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fredemmott/magic_args REF "v${VERSION}" SHA512 ed89bf1d834ed5c053c436387604cbd27387cf014fc2de969bf557522fb47da8b6b599c9607694f9b99d5f829133683e524ae23ac909c9064e509e7b8b0056c2 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME magic_args CONFIG_PATH lib/cmake/magic_args) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/magic-args/vcpkg.json ================================================ { "name": "magic-args", "version": "0.2.1", "description": "Ease-of-use-first argument parsing for C++23", "homepage": "https://github.com/fredemmott/magic_args", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/magic-enum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Neargye/magic_enum REF "v${VERSION}" SHA512 8b61c621ff2a6981b4ff89f7df577091ffc9382d443c061db612fb61822dbf6ef8aba69ea35d1c435dcffbd7434cb4ccc5d12bbe2deba1cf0a5316c979ee6a4b HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF -DMAGIC_ENUM_OPT_BUILD_TESTS=OFF -DMAGIC_ENUM_OPT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/magic_enum PACKAGE_NAME magic_enum) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/magic-enum/usage ================================================ magic-enum provides CMake targets: find_package(magic_enum CONFIG REQUIRED) target_link_libraries(main PRIVATE magic_enum::magic_enum) ================================================ FILE: ports/magic-enum/vcpkg.json ================================================ { "name": "magic-enum", "version": "0.9.7", "port-version": 1, "description": "Header-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code.", "homepage": "https://github.com/Neargye/magic_enum", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/magma/clang-cuda.patch ================================================ diff --git a/control/magma_internal.h b/control/magma_internal.h index 7af16a5..0133e44 100644 --- a/control/magma_internal.h +++ b/control/magma_internal.h @@ -33,7 +33,7 @@ // functions where Microsoft fails to provide C99 standard // (only with Microsoft, not with nvcc on Windows) // in both magma_internal.h and testings.h - #ifndef __NVCC__ + #if !defined(__NVCC__) && !defined(__clang__) #include #define copysign(x,y) _copysign(x,y) @@ -43,6 +43,9 @@ // note _snprintf has slightly different semantics than snprintf #define snprintf _snprintf + #elif !defined(__NVCC__) + // make sure this actually uses the C version and not the C++ overloads + #define copysign(x,y) copysign((double)x,(double)y) #endif #else ================================================ FILE: ports/magma/disable-openmp-msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 828911d05f..a4f5b35ef3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,6 +103,10 @@ endif() # ---------------------------------------- # locate OpenMP +if(MSVC AND CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + set(CMAKE_DISBLE_FIND_PACKAGE_OpenMP ON) + # MSVC OpenMP is not enough to compile +endif() find_package( OpenMP ) if (OPENMP_FOUND) message( STATUS "Found OpenMP" ) ================================================ FILE: ports/magma/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fc61af7..a3c9606 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -654,7 +654,7 @@ endif() set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${SPARSE_TEST_DIR}" ) -cmake_policy( SET CMP0037 OLD) +cmake_policy( SET CMP0037 NEW) foreach( TEST ${sparse_testing_all} ) string( REGEX REPLACE "\\.(cpp|f90|F90)" "" EXE ${TEST} ) string( REGEX REPLACE "${SPARSE_TEST_DIR}/" "" EXE ${EXE} ) ================================================ FILE: ports/magma/no-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a3c9606..a783c57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -569,6 +569,7 @@ target_link_libraries( lapacktest # ---------------------------------------- # compile tester library +if(FALSE) add_library( tester ${libtest_all} ) target_link_libraries( tester magma @@ -576,8 +577,7 @@ target_link_libraries( tester ${blas_fix} ${LAPACK_LIBRARIES} ) - - +endif() # ---------------------------------------- # compile MAGMA sparse library @@ -619,7 +619,7 @@ add_custom_target( sparse-lib DEPENDS magma_sparse ) # ---------------------------------------- # compile each tester - +if(FALSE) # save testers to testing/ # save tester lib files to testing_lib/ to avoid cluttering lib/ set( CMAKE_RUNTIME_OUTPUT_DIRECTORY testing ) @@ -664,7 +664,7 @@ foreach( TEST ${sparse_testing_all} ) list( APPEND sparse-testing ${EXE} ) endforeach() add_custom_target( sparse-testing DEPENDS ${sparse-testing} ) - +endif() # ---------------------------------------- # what to install ================================================ FILE: ports/magma/portfile.cmake ================================================ set(opts "") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(opts -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON -DCMAKE_CUDA_SEPARABLE_COMPILATION:BOOL=OFF ) endif() vcpkg_download_distfile( dist_file URLS https://icl.utk.edu/projectsfiles/magma/downloads/magma-${VERSION}.tar.gz FILENAME magma-${VERSION}.tar.gz SHA512 233beb3d2809c12a27a9b7a6a0eb0bec0ade91fa6bf1a63e1ca4d491491ed5a8729996ac8fbf68ab8d678acab6ed56b7728689358a7b76b20b101227a9851c16 ) vcpkg_extract_source_archive( src_path ARCHIVE "${dist_file}" PATCHES disable-openmp-msvc.patch no-tests.patch clang-cuda.patch fix-cmake4.patch ) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) vcpkg_cmake_configure( SOURCE_PATH "${src_path}" OPTIONS -DMAGMA_ENABLE_CUDA=ON -DMAGMA_ENABLE_HIP=OFF # HIP is backend and seems additive?! -DUSE_FORTRAN=OFF "-DCMAKE_CUDA_COMPILER:FILEPATH=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ${opts} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(READ "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/magma.pc" contents) string(REGEX REPLACE "Cflags: [^\n]+" "Cflags: -I\${includedir}" contents "${contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/magma.pc" "${contents}") if(NOT VCPKG_BUILD_TYPE) file(READ "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/magma.pc" contents) string(REGEX REPLACE "Cflags: [^\n]+" "Cflags: -I\${includedir}" contents "${contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/magma.pc" "${contents}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${src_path}/COPYRIGHT") ================================================ FILE: ports/magma/vcpkg.json ================================================ { "name": "magma", "version": "2.9.0", "description": "Matrix Algebra on GPU and Multi-core Architectures (MAGMA) is a collection of next-generation linear algebra libraries for heterogeneous computing", "homepage": "https://icl.utk.edu/magma/", "license": "BSD-3-Clause", "dependencies": [ "blas", "cuda", "lapack", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/magnum/002-sdl-includes.patch ================================================ diff --git a/src/Magnum/Platform/Sdl2Application.cpp b/src/Magnum/Platform/Sdl2Application.cpp index 276c7ee55..90c52f3cb 100644 --- a/src/Magnum/Platform/Sdl2Application.cpp +++ b/src/Magnum/Platform/Sdl2Application.cpp @@ -34,7 +34,7 @@ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wpragma-pack" #endif -#include +#include #ifdef CORRADE_TARGET_CLANG_CL #pragma clang diagnostic pop #endif diff --git a/src/Magnum/Platform/Sdl2Application.h b/src/Magnum/Platform/Sdl2Application.h index b2426d513..176729fdb 100644 --- a/src/Magnum/Platform/Sdl2Application.h +++ b/src/Magnum/Platform/Sdl2Application.h @@ -57,11 +57,11 @@ #pragma clang diagnostic ignored "-Wpragma-pack" #endif /* SDL.h includes the world, adding 50k LOC. We don't want that either. */ -#include -#include -#include /* huh, why is this not pulled in implicitly?! */ -#include -#include +#include +#include +#include /* huh, why is this not pulled in implicitly?! */ +#include +#include #ifdef CORRADE_TARGET_IOS /* Including SDL_main.h unconditionally would mean it'd override Corrade::Main @@ -74,7 +74,7 @@ #endif #ifdef CORRADE_TARGET_WINDOWS_RT -#include /* For SDL_WinRTRunApp */ +#include /* For SDL_WinRTRunApp */ #include /* For the WinMain entrypoint */ #endif #ifdef CORRADE_TARGET_CLANG_CL ================================================ FILE: ports/magnum/003-fix-FindGLFW.patch ================================================ diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 8761448..17321af 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -647,9 +647,9 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) # GLFW application dependencies elseif(_component STREQUAL GlfwApplication) - find_package(GLFW) + find_package(glfw3 CONFIG REQUIRED) set_property(TARGET Magnum::${_component} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES GLFW::GLFW) + INTERFACE_LINK_LIBRARIES glfw) # Use the Foundation framework on Apple to query the DPI awareness if(CORRADE_TARGET_APPLE) find_library(_MAGNUM_APPLE_FOUNDATION_FRAMEWORK_LIBRARY Foundation) ================================================ FILE: ports/magnum/004-fix-FindOpenAL.patch ================================================ diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index 64371a4..375ca58 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -24,6 +24,7 @@ # find_package(Corrade REQUIRED PluginManager) +find_package(OpenAL CONFIG REQUIRED) if(BUILD_PLUGINS_STATIC) set(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC 1) diff --git a/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt b/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt index f4172d4..bdfd9da 100644 --- a/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt @@ -24,6 +24,8 @@ # find_package(Corrade REQUIRED PluginManager) +include(CMakeFindDependencyMacro) +find_dependency(OpenAL) if(BUILD_PLUGINS_STATIC) set(MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC 1) ================================================ FILE: ports/magnum/005-fix-find-sdl2.patch ================================================ diff --git a/src/Magnum/Platform/CMakeLists.txt b/src/Magnum/Platform/CMakeLists.txt index f1b404f..19babf4 100644 --- a/src/Magnum/Platform/CMakeLists.txt +++ b/src/Magnum/Platform/CMakeLists.txt @@ -292,7 +292,7 @@ endif() # SDL2 application if(WITH_SDL2APPLICATION) - find_package(SDL2) + find_package(SDL2 CONFIG REQUIRED) if(NOT SDL2_FOUND) message(FATAL_ERROR "SDL2 library, required by Sdl2Application, was not found. Set WITH_SDL2APPLICATION to OFF to skip building it.") endif() ================================================ FILE: ports/magnum/006-fix-build.patch ================================================ diff --git a/src/Magnum/Vk/Enums.cpp b/src/Magnum/Vk/Enums.cpp index ad8b6d063..b7dffb74f 100644 --- a/src/Magnum/Vk/Enums.cpp +++ b/src/Magnum/Vk/Enums.cpp @@ -36,17 +36,17 @@ namespace Magnum { namespace Vk { namespace { -constexpr VkPrimitiveTopology PrimitiveTopologyMapping[]{ +constexpr UnsignedInt PrimitiveTopologyMapping[]{ VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, - VkPrimitiveTopology(~UnsignedInt{}), + ~UnsignedInt{}, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, - VkPrimitiveTopology(~UnsignedInt{}), /* Instances */ - VkPrimitiveTopology(~UnsignedInt{}), /* Faces */ - VkPrimitiveTopology(~UnsignedInt{}) /* Edges */ + ~UnsignedInt{}, /* Instances */ + ~UnsignedInt{}, /* Faces */ + ~UnsignedInt{} /* Edges */ }; constexpr VkIndexType IndexTypeMapping[]{ @@ -94,12 +94,12 @@ constexpr VkSamplerMipmapMode SamplerMipmapModeMapping[]{ VK_SAMPLER_MIPMAP_MODE_LINEAR }; -constexpr VkSamplerAddressMode SamplerAddressModeMapping[]{ +constexpr UnsignedInt SamplerAddressModeMapping[]{ VK_SAMPLER_ADDRESS_MODE_REPEAT, VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - VkSamplerAddressMode(~UnsignedInt{}), + ~UnsignedInt{}, }; } @@ -119,10 +119,10 @@ VkPrimitiveTopology vkPrimitiveTopology(const Magnum::MeshPrimitive primitive) { CORRADE_ASSERT(UnsignedInt(primitive) - 1 < Containers::arraySize(PrimitiveTopologyMapping), "Vk::vkPrimitiveTopology(): invalid primitive" << primitive, {}); - const VkPrimitiveTopology out = PrimitiveTopologyMapping[UnsignedInt(primitive) - 1]; - CORRADE_ASSERT(out != VkPrimitiveTopology(~UnsignedInt{}), + const UnsignedInt out = PrimitiveTopologyMapping[UnsignedInt(primitive) - 1]; + CORRADE_ASSERT(out != ~UnsignedInt{}, "Vk::vkPrimitiveTopology(): unsupported primitive" << primitive, {}); - return out; + return VkPrimitiveTopology(out); } bool hasVkIndexType(const Magnum::MeshIndexType type) { @@ -224,10 +224,10 @@ bool hasVkSamplerAddressMode(const Magnum::SamplerWrapping wrapping) { VkSamplerAddressMode vkSamplerAddressMode(const Magnum::SamplerWrapping wrapping) { CORRADE_ASSERT(UnsignedInt(wrapping) < Containers::arraySize(SamplerAddressModeMapping), "Vk::vkSamplerAddressMode(): invalid wrapping" << wrapping, {}); - const VkSamplerAddressMode out = SamplerAddressModeMapping[UnsignedInt(wrapping)]; - CORRADE_ASSERT(out != VkSamplerAddressMode(~UnsignedInt{}), + const UnsignedInt out = SamplerAddressModeMapping[UnsignedInt(wrapping)]; + CORRADE_ASSERT(out != ~UnsignedInt{}, "Vk::vkSamplerAddressMode(): unsupported wrapping" << wrapping, {}); - return out; + return VkSamplerAddressMode(out); } }} ================================================ FILE: ports/magnum/007-missing-headers.diff ================================================ diff --git a/src/Magnum/Math/Vector.h b/src/Magnum/Math/Vector.h index 861a496..2d0436b 100644 --- a/src/Magnum/Math/Vector.h +++ b/src/Magnum/Math/Vector.h @@ -29,6 +29,8 @@ * @brief Class @ref Magnum::Math::Vector, function @ref Magnum::Math::dot(), @ref Magnum::Math::angle() */ +#include +#include #include #include #ifndef CORRADE_NO_DEBUG diff --git a/src/Magnum/MeshTools/CompressIndices.h b/src/Magnum/MeshTools/CompressIndices.h index 7223bd7..aae88c6 100644 --- a/src/Magnum/MeshTools/CompressIndices.h +++ b/src/Magnum/MeshTools/CompressIndices.h @@ -29,6 +29,8 @@ * @brief Function @ref Magnum::MeshTools::compressIndices() */ +#include +#include #include #include diff --git a/src/Magnum/MeshTools/GenerateNormals.h b/src/Magnum/MeshTools/GenerateNormals.h index 3dbf88b..71eadd0 100644 --- a/src/Magnum/MeshTools/GenerateNormals.h +++ b/src/Magnum/MeshTools/GenerateNormals.h @@ -29,6 +29,9 @@ * @brief Function @ref Magnum::MeshTools::generateFlatNormals(), @ref Magnum::MeshTools::generateFlatNormalsInto(), @ref Magnum::MeshTools::generateSmoothNormals(), @ref Magnum::MeshTools::generateSmoothNormalsInto() */ +#include +#include +#include #include "Magnum/Magnum.h" #include "Magnum/MeshTools/visibility.h" ================================================ FILE: ports/magnum/magnumdeploy.ps1 ================================================ # Magnum's plugin deployment strategy is that each Magnum module has a hardcoded # set of plugin directories. Each of these directories is deployed in # full if that Module is referenced. # # Note: this function signature and behavior is depended upon by applocal.ps1 function deployPluginsIfMagnum([string]$targetBinaryDir, [string]$MagnumPluginsDir, [string]$targetBinaryName) { Write-Verbose "Deploying magnum plugins" $baseDir = Split-Path $MagnumPluginsDir -parent $pluginsBase = Split-Path $MagnumPluginsDir -Leaf $binDir = "$baseDir\bin" function deployPlugins([string]$pluginSubdirName) { if (Test-Path "$MagnumPluginsDir\$pluginSubdirName") { Write-Verbose " Deploying plugins directory '$pluginSubdirName'" New-Item "$targetBinaryDir\$pluginsBase\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null Get-ChildItem -Path "$MagnumPluginsDir\$pluginSubdirName\*" -Include "*.dll", "*.conf", "*.pdb" | % { deployBinary "$targetBinaryDir\$pluginsBase\$pluginSubdirName" "$MagnumPluginsDir\$pluginSubdirName" $_.Name resolve $_ } } else { Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist" } } # We detect Magnum modules in use via the DLLs that contain their # plugin interfaces. if ($targetBinaryName -like "MagnumAudio.dll" -or $targetBinaryName -like "MagnumAudio-d.dll") { deployPlugins "audioimporters" } elseif ($targetBinaryName -like "MagnumText.dll" -or $targetBinaryName -like "MagnumText-d.dll") { deployPlugins "fonts" deployPlugins "fontconverters" } elseif ($targetBinaryName -like "MagnumTrade.dll" -or $targetBinaryName -like "MagnumTrade-d.dll") { deployPlugins "importers" deployPlugins "imageconverters" deployPlugins "sceneconverters" } elseif ($targetBinaryName -like "MagnumShaderTools.dll" -or $targetBinaryName -like "MagnumShaderTools-d.dll") { deployPlugins "shaderconverters" } } ================================================ FILE: ports/magnum/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum REF v2020.06 SHA512 65b0c8a4520d1d282420c30ecd7c8525525d4dbb6e562e1e2e93d110f4eb686af43f098bf02460727fab1e1f9446dd00a99051e150c05ea40b1486a44fea1042 HEAD_REF master PATCHES 002-sdl-includes.patch 003-fix-FindGLFW.patch 004-fix-FindOpenAL.patch 005-fix-find-sdl2.patch 006-fix-build.patch # From https://github.com/mosra/magnum/issues/642#issuecomment-2217261862 007-missing-headers.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_PLUGINS_STATIC) set(ALL_SUPPORTED_FEATURES ${ALL_FEATURES}) # Head only features if(NOT VCPKG_USE_HEAD_VERSION) foreach(_feature anyshaderconverter shadertools shaderconverter vk-info) if("${_feature}" IN_LIST FEATURES) message(FATAL_ERROR "Features anyshaderconverter, shadertools, shaderconverter and vk-info are not avaliable when building non-head version.") endif() endforeach() list(REMOVE_ITEM ALL_SUPPORTED_FEATURES anyshaderconverter shadertools shaderconverter vk-info) endif() set(_COMPONENTS "") # Generate cmake parameters from feature names foreach(_feature IN LISTS ALL_SUPPORTED_FEATURES) # Uppercase the feature name and replace "-" with "_" string(TOUPPER "${_feature}" _FEATURE) string(REPLACE "-" "_" _FEATURE "${_FEATURE}") # Final feature is empty, ignore it if(_feature) list(APPEND _COMPONENTS ${_feature} WITH_${_FEATURE}) endif() endforeach() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ${_COMPONENTS}) if(VCPKG_CROSSCOMPILING) set(CORRADE_RC_EXECUTABLE "-DCORRADE_RC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/corrade/corrade-rc${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${CORRADE_RC_EXECUTABLE} -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_PLUGINS_STATIC=${BUILD_PLUGINS_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Copy tools into vcpkg's tools directory set(_TOOL_EXEC_NAMES "") set(_TOOLS al-info distancefieldconverter fontconverter gl-info imageconverter sceneconverter) if(VCPKG_USE_HEAD_VERSION) list(APPEND _TOOLS shaderconverter vk-info) endif() foreach(_tool IN LISTS _TOOLS) if("${_tool}" IN_LIST FEATURES) list(APPEND _TOOL_EXEC_NAMES magnum-${_tool}) endif() endforeach() message(STATUS ${_TOOL_EXEC_NAMES}) if(_TOOL_EXEC_NAMES) vcpkg_copy_tools(TOOL_NAMES ${_TOOL_EXEC_NAMES} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Special handling for plugins. # # For static plugins, in order to make MSBuild auto-linking magic work, where # the linker implicitly takes everything from the root lib/ folder, the # static libraries have to be moved out of lib/magnum/blah/ directly to lib/. # Possibly would be enough to do this just for Windows, doing it also on other # platforms for consistency. # # For dynamic plugins, auto-linking is not desirable as those are meant to be # loaded dynamically at runtime instead. In order to prevent that, on Windows # the *.lib files corresponding to the plugin *.dlls are removed. However, we # cannot remove the *.lib files entirely here, as plugins from magnum-plugins # are linked to them on Windows (e.g. AssimpImporter depends on # AnyImageImporter). Thus the Any* plugin lib files are kept, but also not # moved to the root lib/ folder, to prevent autolinking. A consequence of the # *.lib file removal is that downstream projects can't implement Magnum plugins # that would depend on (and thus link to) these, but that's considered a very # rare use case and so it's fine. # # See https://github.com/microsoft/vcpkg/pull/1235#issuecomment-308805989 for # futher info. if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") # move plugin libs to conventional place file(GLOB_RECURSE LIB_TO_MOVE "${CURRENT_PACKAGES_DIR}/lib/magnum/*") file(COPY ${LIB_TO_MOVE} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/magnum") file(GLOB_RECURSE LIB_TO_MOVE_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/magnum/*") file(COPY ${LIB_TO_MOVE_DBG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/magnum") else() if(VCPKG_TARGET_IS_WINDOWS) file(GLOB_RECURSE LIB_TO_REMOVE "${CURRENT_PACKAGES_DIR}/lib/magnum/*") file(GLOB_RECURSE LIB_TO_KEEP "${CURRENT_PACKAGES_DIR}/lib/magnum/*Any*") if(LIB_TO_KEEP) list(REMOVE_ITEM LIB_TO_REMOVE ${LIB_TO_KEEP}) endif() if(LIB_TO_REMOVE) file(REMOVE ${LIB_TO_REMOVE}) endif() if (VCPKG_TARGET_IS_UWP) set(debug_dir "magnum") else() set(debug_dir "magnum-d") endif() file(GLOB_RECURSE LIB_TO_REMOVE_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/${debug_dir}/*") file(GLOB_RECURSE LIB_TO_KEEP_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/${debug_dir}/*Any*") if(LIB_TO_KEEP_DBG) list(REMOVE_ITEM LIB_TO_REMOVE_DBG ${LIB_TO_KEEP_DBG}) endif() if(LIB_TO_REMOVE_DBG) file(REMOVE ${LIB_TO_REMOVE_DBG}) endif() # remove maybe empty dirs foreach(subdir "fonts" "importers" "fontconverters" "imageconverters" "audioimporters") file(GLOB maybe_empty "${CURRENT_PACKAGES_DIR}/lib/magnum/${subdir}/*") if(maybe_empty STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/magnum/${subdir}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/${debug_dir}/${subdir}") endif() endforeach() file(GLOB maybe_empty "${CURRENT_PACKAGES_DIR}/lib/magnum/*") if(maybe_empty STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/magnum") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/${debug_dir}") endif() endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/magnumdeploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/magnum") file(COPY "${CMAKE_CURRENT_LIST_DIR}/magnumdeploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/${debug_dir}") endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/magnum/vcpkg.json ================================================ { "name": "magnum", "version-string": "2020.06", "port-version": 20, "description": "C++11/C++14 graphics middleware for games and data visualization", "homepage": "https://magnum.graphics/", "license": null, "dependencies": [ { "name": "corrade", "host": true, "features": [ "utility" ] }, { "name": "corrade", "features": [ "utility" ] }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "anyaudioimporter", "anyimageconverter", "anyimageimporter", "anysceneconverter", "anysceneimporter", "debugtools", "gl", "meshtools", "primitives", "scenegraph", "sdl2application", "shaders", "text", "texturetools", "trade" ], "features": { "al-info": { "description": "magnum-al-info utility", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "anyaudioimporter": { "description": "AnyAudioImporter plugin", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "pluginmanager" ] }, { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "anyimageconverter": { "description": "AnyImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "anyimageimporter": { "description": "AnyImageImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "anysceneconverter": { "description": "AnySceneConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "anysceneimporter": { "description": "AnySceneImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "anyshaderconverter": { "description": "AnyShaderConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "shadertools" ] } ] }, "audio": { "description": "Audio library", "dependencies": [ "openal-soft" ] }, "cglcontext": { "description": "CglContext library", "supports": "osx", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "debugtools": { "description": "DebugTools library" }, "distancefieldconverter": { "description": "magnum-distancefieldconverter utility", "supports": "!ios & !android", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl", "texturetools", "trade" ] } ] }, "eglcontext": { "description": "EglContext library", "supports": "!windows & !osx", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "fontconverter": { "description": "magnum-fontconverter utility", "supports": "!ios & !android", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl", "text", "trade" ] } ] }, "gl": { "description": "GL library", "supports": "!uwp" }, "gl-info": { "description": "gl-info utility", "supports": "!ios", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "glfwapplication": { "description": "GlfwApplication library", "dependencies": [ "glfw3" ] }, "glxcontext": { "description": "GlxContext library", "supports": "!windows & !osx", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "imageconverter": { "description": "magnum-imageconverter utility", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "dynamic-pluginmanager" ] }, { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "magnumfont": { "description": "MagnumFont plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "text" ] } ] }, "magnumfontconverter": { "description": "MagnumFontConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "text" ] }, { "name": "magnum", "default-features": false, "features": [ "tgaimageconverter" ] } ] }, "meshtools": { "description": "MeshTools library", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "objimporter": { "description": "ObjImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "opengltester": { "description": "OpenGLTester library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "testsuite" ] }, { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "primitives": { "description": "Primitives library", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "meshtools", "trade" ] } ] }, "sceneconverter": { "description": "magnum-sceneconverter utility", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "dynamic-pluginmanager" ] }, { "name": "magnum", "default-features": false, "features": [ "anysceneconverter" ] } ] }, "scenegraph": { "description": "SceneGraph library" }, "sdl2application": { "description": "Sdl2Application library", "dependencies": [ "sdl2" ] }, "shaderconverter": { "description": "magnum-shaderconverter utility", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "anyshaderconverter", "shadertools" ] } ] }, "shaders": { "description": "Shaders library", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "shadertools": { "description": "ShaderTools library" }, "text": { "description": "Text library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "pluginmanager" ] }, { "name": "magnum", "default-features": false, "features": [ "gl" ] }, { "name": "magnum", "default-features": false, "features": [ "texturetools" ] } ] }, "texturetools": { "description": "TextureTools library" }, "tgaimageconverter": { "description": "TgaImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "tgaimporter": { "description": "TgaImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "trade": { "description": "Trade library", "dependencies": [ { "name": "corrade", "default-features": false, "features": [ "pluginmanager" ] } ] }, "vk": { "description": "Vk library", "dependencies": [ "vulkan" ] }, "vk-info": { "description": "vk-info utility", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "vk" ] } ] }, "wavaudioimporter": { "description": "WavAudioImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "wglcontext": { "description": "WglContext library", "supports": "windows & !uwp", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "windowlesscglapplication": { "description": "WindowlessCglApplication library", "supports": "osx", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "windowlesseglapplication": { "description": "WindowlessEglApplication library", "supports": "!windows & !osx & !ios", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "windowlessglxapplication": { "description": "WindowlessGlxApplication library", "supports": "!windows & !osx & !ios", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] }, "windowlesswglapplication": { "description": "WindowlessWglApplication library", "supports": "windows & !uwp", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "gl" ] } ] } } } ================================================ FILE: ports/magnum-extras/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum-extras REF v2020.06 SHA512 7419af84a6de72f666a9bd12a325c4b40f9e2a25fec3d0b22c348faab0a402b62fa782231b9b12180d84f4ab2508b02df25a97713948bdd2f21c9e8cb831fa25 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ui WITH_UI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_STATIC=${BUILD_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MagnumExtras CONFIG_PATH share/cmake/MagnumExtras) # Messages to the user if(WITH_UI) message(WARNING "It is recommended to install one of magnum-plugins[freetypefont,harfbuzzfont,stbtruetypefont] to have the UI library working out of the box") endif() # Debug includes and share are the same as release file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Clean up empty directories if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/magnum-extras/vcpkg.json ================================================ { "name": "magnum-extras", "version-string": "2020.06", "port-version": 2, "description": "Extras for magnum, C++11/C++14 graphics middleware for games and data visualization", "homepage": "https://magnum.graphics/", "license": null, "dependencies": [ { "name": "magnum", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ui": { "description": "Ui library", "dependencies": [ { "name": "corrade", "features": [ "interconnect" ] }, { "name": "magnum", "features": [ "text" ] } ] } } } ================================================ FILE: ports/magnum-integration/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum-integration REF v2020.06 SHA512 0b615acdb49ed55bd678a5fb019b1a8ccf522084f3114b2b8dd7e121c27d39ae2aab2879a2e2fa8b083163be711a86f64202fcf380413dec0c705fffd7d649c5 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bullet WITH_BULLET eigen WITH_EIGEN glm WITH_GLM imgui WITH_IMGUI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_STATIC=${BUILD_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MagnumIntegration CONFIG_PATH share/cmake/MagnumIntegration) # Debug includes and share are the same as release file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Clean up empty directories if("${FEATURES}" STREQUAL "core") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug" ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) else() file(GLOB FILES "${CURRENT_PACKAGES_DIR}/debug/*") list(LENGTH FILES COUNT) if(COUNT EQUAL 0) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/magnum-integration/vcpkg.json ================================================ { "name": "magnum-integration", "version-string": "2020.06", "port-version": 3, "description": "Integrations for magnum, C++11/C++14 graphics middleware for games and data visualization", "homepage": "https://magnum.graphics/", "license": null, "dependencies": [ { "name": "magnum", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "bullet": { "description": "BulletIntegration library", "dependencies": [ "bullet3" ] }, "eigen": { "description": "EigenIntegration library", "dependencies": [ "eigen3" ] }, "glm": { "description": "GlmIntegration library", "dependencies": [ "glm" ] }, "imgui": { "description": "ImGuiIntegration library", "dependencies": [ "imgui" ] } } } ================================================ FILE: ports/magnum-plugins/002-fix-stb-conflict.patch ================================================ diff --git a/src/MagnumPlugins/StbImageImporter/StbImageImporter.cpp b/src/MagnumPlugins/StbImageImporter/StbImageImporter.cpp index c24a968..1a38162 100644 --- a/src/MagnumPlugins/StbImageImporter/StbImageImporter.cpp +++ b/src/MagnumPlugins/StbImageImporter/StbImageImporter.cpp @@ -45,7 +45,7 @@ #endif /* Not defining malloc/free, because there's no equivalent for realloc in C++ */ -#include "stb_image.h" +#include "external/stb/stb_image.h" namespace Magnum { namespace Trade { ================================================ FILE: ports/magnum-plugins/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mosra/magnum-plugins REF v2020.06 SHA512 3c11c2928bfc9d04c1ad64f72b6ffac6cf80a1ef3aacc5d0486b9ad955cf4f6ea6d5dcb3846dc5d73f64ec522a015eafb997f62c79ad7ff91169702341f23af0 HEAD_REF master PATCHES 002-fix-stb-conflict.patch ) if("basisimporter" IN_LIST FEATURES OR "basisimageconverter" IN_LIST FEATURES) # Bundle Basis Universal. The repo has big unrequired files in its # history, so we're downloading just a snapshot instead of a git clone. if(VCPKG_USE_HEAD_VERSION) # v1_15_update2 set(_BASIS_VERSION "v1_15_update2") set(_BASIS_SHA512 "a898a057b57ac64f6c0bf5fce0b599e23421ccdd015ea7bb668bce8b9292ef55b098f3d05854a2fb5363959932b75cd0a842664ae7d4f71f3537dc11301c1b32") else() # A commit that's before the UASTC support (which is not implemented yet) vcpkg_download_distfile( _BASIS_UNIVERSAL_PATCHES URLS "https://github.com/BinomialLLC/basis_universal/commit/e9c55faac7745ebf38d08cd3b4f71aaf542f8191.diff?full_index=1" FILENAME "e9c55faac7745ebf38d08cd3b4f71aaf542f8191.patch" SHA512 1121d5fa6cce617cfc393b48ac13f21e7f977522746702b3968f5fc86c58de6a3b91e4371692e8566747a975cb46de5421ab1cf635d3904fd74c07bbdfcaa78e ) set(_BASIS_VERSION "8565af680d1bd2ad56ab227ca7d96c56dfbe93ed") set(_BASIS_SHA512 "65062ab3ba675c46760f56475a7528189ed4097fb9bab8316e25d9e23ffec2a9560eb9a6897468baf2a6ab2bd698b5907283e96deaeaef178085a47f9d371bb2") endif() vcpkg_download_distfile( _BASIS_UNIVERSAL_ARCHIVE URLS "https://github.com/BinomialLLC/basis_universal/archive/${_BASIS_VERSION}.tar.gz" FILENAME "basis-universal-${_BASIS_VERSION}.tar.gz" SHA512 ${_BASIS_SHA512} ) vcpkg_extract_source_archive( _BASIS_UNIVERSAL_SOURCE ARCHIVE ${_BASIS_UNIVERSAL_ARCHIVE} WORKING_DIRECTORY "${SOURCE_PATH}/src/external" PATCHES ${_BASIS_UNIVERSAL_PATCHES}) # Remove potentially cached directory which would cause renaming to fail file(REMOVE_RECURSE "${SOURCE_PATH}/src/external/basis-universal") # Rename the output folder so that magnum auto-detects it file(RENAME ${_BASIS_UNIVERSAL_SOURCE} "${SOURCE_PATH}/src/external/basis-universal") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(BUILD_PLUGINS_STATIC 1) else() set(BUILD_PLUGINS_STATIC 0) endif() # Head only features set(ALL_SUPPORTED_FEATURES ${ALL_FEATURES}) if(NOT VCPKG_USE_HEAD_VERSION) set(head_only cgltfimporter glslangshaderconverter ktximageconverter ktximporter openexrimageconverter openexrimporter spirvtoolsshaderconverter stbdxtimageconverter) foreach(_feature ${head_only}) if("${_feature}" IN_LIST FEATURES) list(JOIN head_only ", " features_list) message(FATAL_ERROR "Features ${features_list} are not avaliable when building non-head version.") endif() endforeach() list(REMOVE_ITEM ALL_SUPPORTED_FEATURES ${head_only}) endif() set(_COMPONENTS "") # Generate cmake parameters from feature names foreach(_feature IN LISTS ALL_SUPPORTED_FEATURES) # Uppercase the feature name and replace "-" with "_" string(TOUPPER "${_feature}" _FEATURE) string(REPLACE "-" "_" _FEATURE "${_FEATURE}") # Final feature is empty, ignore it if(_feature) list(APPEND _COMPONENTS ${_feature} WITH_${_FEATURE}) endif() endforeach() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ${_COMPONENTS}) if(VCPKG_CROSSCOMPILING) set(CORRADE_RC_EXECUTABLE "-DCORRADE_RC_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/corrade/corrade-rc${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${CORRADE_RC_EXECUTABLE} -DBUILD_STATIC=${BUILD_PLUGINS_STATIC} -DBUILD_PLUGINS_STATIC=${BUILD_PLUGINS_STATIC} -DMAGNUM_PLUGINS_DEBUG_DIR=${CURRENT_INSTALLED_DIR}/debug/bin/magnum-d -DMAGNUM_PLUGINS_RELEASE_DIR=${CURRENT_INSTALLED_DIR}/bin/magnum ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MagnumPlugins CONFIG_PATH share/cmake/MagnumPlugins) # Debug includes and share are the same as release file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Clean up empty directories, if not building anything. # FEATURES may only contain "core", but that does not build anything. if(NOT FEATURES OR FEATURES STREQUAL "core") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") # move plugin libs to conventional place file(GLOB_RECURSE LIB_TO_MOVE "${CURRENT_PACKAGES_DIR}/lib/magnum/*") file(COPY ${LIB_TO_MOVE} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/magnum") file(GLOB_RECURSE LIB_TO_MOVE_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/magnum/*") file(COPY ${LIB_TO_MOVE_DBG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/magnum") else() set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # On windows, plugins are "Modules" that cannot be linked as shared # libraries, but are meant to be loaded at runtime. # While this is handled adequately through the CMake project, the auto-magic # linking with visual studio might try to link the import libs anyway. # # We delete the import libraries here to avoid the auto-magic linking # for plugins which are loaded at runtime. if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/magnum") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/magnum-d") file(GLOB maybe_empty "${CURRENT_PACKAGES_DIR}/lib/*") if(maybe_empty STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/") endif() endif() endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") vcpkg_copy_pdbs() ================================================ FILE: ports/magnum-plugins/vcpkg.json ================================================ { "name": "magnum-plugins", "version-string": "2020.06", "port-version": 13, "description": "Plugins for magnum, C++11/C++14 graphics middleware for games and data visualization", "homepage": "https://magnum.graphics/", "license": null, "dependencies": [ { "name": "magnum", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ddsimporter", "icoimporter", "miniexrimageconverter", "opengeximporter", "stanfordimporter", "stanfordsceneconverter", "stbimageconverter", "stbimageimporter", "stlimporter" ], "features": { "assimpimporter": { "description": "AssimpImporter plugin", "dependencies": [ "assimp", { "name": "magnum", "default-features": false, "features": [ "anyimageimporter" ] }, { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "basisimageconverter": { "description": "BasisImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] }, "zstd" ] }, "basisimporter": { "description": "BasisImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] }, "zstd" ] }, "cgltfimporter": { "description": "CgltfImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "anyimageimporter" ] }, { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "ddsimporter": { "description": "DdsImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "devilimageimporter": { "description": "DevIlImageImporter plugin", "dependencies": [ "devil", { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "drflacaudioimporter": { "description": "DrFlacAudioImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "drmp3audioimporter": { "description": "DrMp3AudioImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "drwavaudioimporter": { "description": "DrWavAudioImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "freetypefont": { "description": "FreeTypeFont plugin", "dependencies": [ "freetype", { "name": "magnum", "default-features": false, "features": [ "text" ] } ] }, "glslangshaderconverter": { "description": "GlslangShaderConverter plugin", "dependencies": [ "glslang", { "name": "magnum", "default-features": false, "features": [ "shadertools" ] } ] }, "harfbuzzfont": { "description": "HarfBuzzFont plugin", "dependencies": [ "harfbuzz", { "name": "magnum-plugins", "default-features": false, "features": [ "freetypefont" ] } ] }, "icoimporter": { "description": "IcoImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "jpegimageconverter": { "description": "JpegImageConverter plugin", "dependencies": [ "libjpeg-turbo", { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "jpegimporter": { "description": "JpegImporter plugin", "dependencies": [ "libjpeg-turbo", { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "ktximageconverter": { "description": "KtxImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "ktximporter": { "description": "KtxImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "meshoptimizersceneconverter": { "description": "MeshOptimizerSceneConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] }, "meshoptimizer" ] }, "miniexrimageconverter": { "description": "MiniExrImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "openddl": { "description": "OpenDdl library" }, "openexrimageconverter": { "description": "OpenExrImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] }, "openexr" ] }, "openexrimporter": { "description": "OpenExrImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] }, "openexr" ] }, "opengeximporter": { "description": "OpenGexImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "anyimageimporter" ] }, { "name": "magnum", "default-features": false, "features": [ "trade" ] }, { "name": "magnum-plugins", "default-features": false, "features": [ "openddl" ] } ] }, "pngimageconverter": { "description": "PngImageConverter plugin", "dependencies": [ "libpng", { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "pngimporter": { "description": "PngImporter plugin", "dependencies": [ "libpng", { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "spirvtoolsshaderconverter": { "description": "SpirvToolsShaderConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "shadertools" ] }, "spirv-tools" ] }, "stanfordimporter": { "description": "StanfordImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "stanfordsceneconverter": { "description": "StanfordSceneConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "stbdxtimageconverter": { "description": "StbDxtImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "stbimageconverter": { "description": "StbImageConverter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "stbimageimporter": { "description": "StbImageImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "stbtruetypefont": { "description": "StbTrueTypeFont plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "text" ] } ] }, "stbvorbisaudioimporter": { "description": "StbVorbisAudioImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "audio" ] } ] }, "stlimporter": { "description": "StlImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] }, "tinygltfimporter": { "description": "TinyGltfImporter plugin", "dependencies": [ { "name": "magnum", "default-features": false, "features": [ "anyimageimporter" ] }, { "name": "magnum", "default-features": false, "features": [ "trade" ] } ] } } } ================================================ FILE: ports/mailio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO karastojko/mailio REF "${VERSION}" SHA512 550ab52400e3085d9dfeb1405ad34a5d26c65f9d0a9321933300da78e56e0469d2b79d1dd67559e3bdbf1f73899370d8feb7a9e9996bd309cbf4f8f9fd645605 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMAILIO_BUILD_DOCUMENTATION=OFF -DMAILIO_BUILD_EXAMPLES=OFF -DMAILIO_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/mailio ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mailio/vcpkg.json ================================================ { "name": "mailio", "version": "0.25.3", "maintainers": "Tomislav Karastojković ", "description": "mailio is a cross platform C++ library for MIME format and SMTP, POP3 and IMAP protocols. It is based on the standard C++ 17 and Boost library.", "homepage": "https://github.com/karastojko/mailio", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ "boost-asio", "boost-date-time", "boost-regex", "boost-system", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/makeid/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.humus.name/3D/MakeID.h" FILENAME "MakeID.h-${VERSION}" SHA512 fd4222d2cc0b0e16b0cfbac048cb64ac59d53ede10ab7f88f710e4b866cb67ffb0ec139821c181f1804a813cc9ab20cf33282c8b73e9ef0fdba414be474c2b64 ) file(INSTALL "${ARCHIVE}" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME "MakeID.h") set(license_text "Public Domain This file is released in the hopes that it will be useful. Use in whatever way you like, but no guarantees that it actually works or fits any particular purpose. It has been unit-tested and benchmarked though, and seems to do what it was designed to do, and seems pretty quick at it too." ) file(WRITE "${CURRENT_PACKAGES_DIR}/share/makeid/copyright" "${license_text}") ================================================ FILE: ports/makeid/vcpkg.json ================================================ { "name": "makeid", "version": "1.0.3", "description": "MakeID is a cross platform C++ library for IDs allocation/deallocation", "homepage": "http://www.humus.name/index.php?page=3D", "license": null } ================================================ FILE: ports/manif/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b042ff..d7b707e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,31 +25,7 @@ endif() # First we look for the Eigen3 cmake module # provided by the libeigen3-dev on newer Ubuntu. If that fails, then we # fall-back to the version provided in the cmake/modules. -find_package(Eigen3 QUIET) - -if(NOT EIGEN3_FOUND) - list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) - find_package(Eigen3 REQUIRED) -endif() - -# Note that eigen 3.2 (on Ubuntu Wily) only provides EIGEN3_INCLUDE_DIR, -# not EIGEN3_INCLUDE_DIRS, so we have to set the latter from the former. -if(NOT EIGEN3_INCLUDE_DIRS) - set(EIGEN3_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR}) -endif() - -# Necessary for Ubuntu 16.04's god-awful FindEigen3.cmake. -if((NOT (DEFINED EIGEN3_VERSION)) AND (DEFINED EIGEN3_VERSION_STRING)) - set(EIGEN3_VERSION ${EIGEN3_VERSION_STRING}) -endif() - -if(${EIGEN3_VERSION} VERSION_EQUAL "3.3.6") - message(WARNING "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIRS}," - "but this version has a [bug](http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1643)") -elseif(${EIGEN3_VERSION} VERSION_LESS "3.3.8") - message(WARNING "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIRS}. " - "Beware that the move semantic has a bug and resolves to a simple copy.") -endif() +find_package(Eigen3 3.3.8...5 CONFIG REQUIRED) # Options. Turn on with 'cmake -DBUILD_TESTING=ON'. # catkin build manif --cmake-args -DBUILD_TESTING=ON -DBUILD_EXAMPLES=ON @@ -103,12 +79,8 @@ target_include_directories(${PROJECT_NAME} INTERFACE target_link_libraries(${PROJECT_NAME} INTERFACE "$<$:tl::optional>") # Add Eigen interface dependency, depending on available cmake info -if(TARGET Eigen3::Eigen) - target_link_libraries(${PROJECT_NAME} INTERFACE Eigen3::Eigen) - set(Eigen3_DEPENDENCY "find_dependency(Eigen3 ${Eigen3_VERSION})") -else(TARGET Eigen3::Eigen) - target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE ${EIGEN3_INCLUDE_DIRS}) -endif(TARGET Eigen3::Eigen) +target_link_libraries(${PROJECT_NAME} INTERFACE Eigen3::Eigen) +set(Eigen3_DEPENDENCY "find_dependency(Eigen3 ${Eigen3_VERSION})") # Add tl-optional interface dependency if enabled if(tl-optional_FOUND) ================================================ FILE: ports/manif/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO artivis/manif REF "${VERSION}" SHA512 ab74e6c67641a9bb33bf779fb70d4f79d0758840f28750448c0a26714cd3941376f128cd3936d7329f9c74becc18440fca2a1ff52759f99019fb430287a3a52f HEAD_REF devel PATCHES 0001-support-eigen3-5.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/manif/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/manif/usage ================================================ manif provides CMake targets: find_package(manif CONFIG REQUIRED) target_link_libraries(main PRIVATE MANIF::manif) ================================================ FILE: ports/manif/vcpkg.json ================================================ { "name": "manif", "version": "0.0.5", "port-version": 1, "description": "A small C++11 header-only library for Lie theory.", "homepage": "https://github.com/artivis/manif", "documentation": "https://artivis.github.io/manif/", "license": "MIT", "dependencies": [ "eigen3", "tl-optional", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/manifold/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO elalish/manifold REF "v${VERSION}" SHA512 d81acaffb164dbf66304aea55ba14159d7aa68b2e9a6c2267ec6b72b414a2ee334085c44eeb7d502275320177be58ff4c5cdad21d3ce23e03fc21eac59605a5a ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMANIFOLD_TEST=OFF -DMANIFOLD_CROSS_SECTION=ON -DMANIFOLD_CBIND=ON -DMANIFOLD_PYBIND=OFF -DMANIFOLD_JSBIND=OFF -DMANIFOLD_STRICT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/manifold) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/manifold/usage ================================================ manifold provides CMake targets: find_package(manifold CONFIG REQUIRED) target_link_libraries(main PRIVATE manifold::manifold) ================================================ FILE: ports/manifold/vcpkg.json ================================================ { "name": "manifold", "version": "3.4.0", "description": "Geometry library for topological robustness.", "homepage": "https://github.com/elalish/manifold", "license": "Apache-2.0", "dependencies": [ "clipper2", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mapbox-geojson-cpp/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/geojson-cpp REF v0.5.1 SHA512 1282bd4a21773c8b300149abc95c4baea7c36facf283d05d18db246a40614625fab1a71e51190c1cdfc80852ea60b2727af9a679661bfede860d822306467037 HEAD_REF master ) # Copy header files file(COPY ${SOURCE_PATH}/include/mapbox/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/mapbox FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/mapbox-geojson-cpp/vcpkg.json ================================================ { "name": "mapbox-geojson-cpp", "version-semver": "0.5.1", "port-version": 1, "description": "A C++14 library for converting GeoJSON into geometry.hpp representation", "homepage": "https://github.com/mapbox/geojson-cpp", "dependencies": [ "mapbox-geometry", "mapbox-variant" ] } ================================================ FILE: ports/mapbox-geojson-vt-cpp/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/geojson-vt-cpp REF v6.6.5 SHA512 4989522c19f35ba13096958ad1041ec09745020955fad99ee02116393885a9d0a835911a42167a76d5efb2a5dd167077bcd451c9a77444f2eaa26893a1bff062 HEAD_REF master ) # Copy header files file(COPY "${SOURCE_PATH}/include/mapbox/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mapbox" FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mapbox-geojson-vt-cpp/vcpkg.json ================================================ { "name": "mapbox-geojson-vt-cpp", "version-semver": "6.6.5", "description": "Port to C++ of JS GeoJSON-VT for slicing GeoJSON into vector tiles on the fly", "homepage": "https://github.com/mapbox/geojson-vt-cpp", "dependencies": [ "mapbox-geometry" ] } ================================================ FILE: ports/mapbox-geometry/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/geometry.hpp REF v2.0.3 SHA512 76c10578e1fba44430786fb5e043dbc063aa251f62396701a509f7fa1e2e5c351fa0fe041d16be84bda9816ec5df3342cd9890da6fe99d78d6fb26e0a3b2485b HEAD_REF master ) # Copy header files file(COPY ${SOURCE_PATH}/include/mapbox/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/mapbox FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/mapbox-geometry/vcpkg.json ================================================ { "name": "mapbox-geometry", "version-semver": "2.0.3", "description": "C++ geometry types", "homepage": "https://github.com/mapbox/geometry.hpp" } ================================================ FILE: ports/mapbox-polylabel/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/polylabel REF "v${VERSION}" SHA512 e739b0f9c293fd1fd50de56be0804b638ad4ca5ca2c6ee6272907cffc99e133f183f62dd75ca415983ebf9a03da07910b2fa5e8d18b606a6faf7b14baa930622 HEAD_REF master ) # Copy header files file(COPY "${SOURCE_PATH}/include/mapbox/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mapbox" FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mapbox-polylabel/vcpkg.json ================================================ { "name": "mapbox-polylabel", "version-semver": "2.0.1", "description": "A fast algorithm for finding the pole of inaccessibility of a polygon (in JavaScript and C++)", "homepage": "https://github.com/mapbox/polylabel", "license": "ISC", "dependencies": [ "mapbox-geometry", "mapbox-variant" ] } ================================================ FILE: ports/mapbox-variant/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(variant-library VERSION 1.1.3 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) include(GNUInstallDirs) include(CMakePackageConfigHelpers) add_library(variant INTERFACE) target_include_directories(variant INTERFACE $ $ ) target_compile_features(variant INTERFACE cxx_std_11) find_package(Threads) if(TARGET Threads::Threads) target_link_libraries(variant INTERFACE Threads::Threads) endif() install(DIRECTORY "include/mapbox" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(TARGETS variant EXPORT unofficial-mapbox-variant-targets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(EXPORT unofficial-mapbox-variant-targets FILE unofficial-mapbox-variant-targets.cmake NAMESPACE unofficial::mapbox-variant:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-mapbox-variant ) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-mapbox-variant-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mapbox-variant-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-mapbox-variant PATH_VARS CMAKE_INSTALL_INCLUDEDIR ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mapbox-variant-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mapbox-variant-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mapbox-variant-config-version.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-mapbox-variant ) ================================================ FILE: ports/mapbox-variant/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/variant REF a2a4858345423a760eca300ec42acad1ad123aa3 # v1.2.0 SHA512 6d1ad2f37e137c42592dbd618a3871008d4f83b3cb0d6f05a9c469a6a987ed3fc7f0416ae341646d73e69426903a5a4f64b9f41ae739fd940bbd304dfcae289e HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-mapbox-variant-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/unofficial-mapbox-variant" PACKAGE_NAME "unofficial-mapbox-variant") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/mapbox-variant/unofficial-mapbox-variant-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(Threads) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-mapbox-variant-targets.cmake") check_required_components(unofficial-mapbox-variant) ================================================ FILE: ports/mapbox-variant/vcpkg.json ================================================ { "name": "mapbox-variant", "version": "1.2.0", "port-version": 3, "description": "C++11/C++14 Variant", "homepage": "https://github.com/mapbox/variant", "license": "BSD-3-Clause AND BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mapbox-wagyu/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/wagyu REF 0.5.0 SHA512 d2ef6c056b25e60677da4f53154790558ddb43c56aa117a4d5108f8c7686cceff9e5d54d71138e2eb504f053315d28f7cb8190ff45833c5606d511b685acf40d HEAD_REF master ) # Copy header files file(COPY ${SOURCE_PATH}/include/mapbox/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/mapbox FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/mapbox-wagyu/vcpkg.json ================================================ { "name": "mapbox-wagyu", "version-semver": "0.5.0", "description": "A general library for geometry operations of union, intersections, difference, and xor", "homepage": "https://github.com/mapbox/wagyu" } ================================================ FILE: ports/mapnik/portfile.cmake ================================================ # test application for this port: https://github.com/mathisloge/mapnik-vcpkg-test vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapnik/mapnik REF v${VERSION} SHA512 ac3cda35240eca404fedc77e6c36d9b3d0596a077857fb7c41e8d4d5dce2a292f425ce0c134ac6e8577b50c6a126ba56e5de1103e63c752ebe9f6fa3db62dd3d HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "jpeg" USE_JPEG "png" USE_PNG "tiff" USE_TIFF "webp" USE_WEBP "libxml2" USE_LIBXML2 "cairo" USE_CAIRO "proj" USE_PROJ "grid-renderer" USE_GRID_RENDERER "svg-renderer" USE_SVG_RENDERER "input-csv" USE_PLUGIN_INPUT_CSV "input-gdal" USE_PLUGIN_INPUT_GDAL "input-geobuf" USE_PLUGIN_INPUT_GEOBUF "input-geojson" USE_PLUGIN_INPUT_GEOJSON "input-ogr" USE_PLUGIN_INPUT_OGR "input-pgraster" USE_PLUGIN_INPUT_PGRASTER "input-postgis" USE_PLUGIN_INPUT_POSTGIS "input-raster" USE_PLUGIN_INPUT_RASTER "input-shape" USE_PLUGIN_INPUT_SHAPE "input-sqlite" USE_PLUGIN_INPUT_SQLITE "input-topojson" USE_PLUGIN_INPUT_TOPOJSON "viewer" BUILD_DEMO_VIEWER "utility-geometry-to-wkb" BUILD_UTILITY_GEOMETRY_TO_WKB "utility-mapnik-index" BUILD_UTILITY_MAPNIK_INDEX "utility-mapnik-render" BUILD_UTILITY_MAPNIK_RENDER "utility-ogrindex" BUILD_UTILITY_OGRINDEX "utility-pgsql2sqlite" BUILD_UTILITY_PGSQL2SQLITE "utility-shapeindex" BUILD_UTILITY_SHAPEINDEX "utility-svg2png" BUILD_UTILITY_SVG2PNG ) if (VCPKG_CRT_LINKAGE STREQUAL dynamic) set(BUILD_SHARED_CRT ON) else() set(BUILD_SHARED_CRT OFF) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_SHARED_CRT=${BUILD_SHARED_CRT} -DINSTALL_DEPENDENCIES=OFF -DBUILD_TESTING=OFF -DBUILD_BENCHMARK=OFF -DBUILD_DEMO_CPP=OFF -DUSE_EXTERNAL_MAPBOX_GEOMETRY=ON -DUSE_EXTERNAL_MAPBOX_POLYLABEL=ON -DUSE_EXTERNAL_MAPBOX_PROTOZERO=ON -DUSE_EXTERNAL_MAPBOX_VARIANT=ON -DBOOST_REGEX_HAS_ICU=ON -DMAPNIK_CMAKE_DIR=share/mapnik/cmake -DFONTS_INSTALL_DIR=share/mapnik/fonts -DMAPNIK_PKGCONF_DIR=lib/pkgconfig -DPKG_CONFIG_EXECUTABLE="${PKGCONFIG}" ) vcpkg_cmake_install() # copy plugins into tool path, if any plugin is installed if(IS_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin/plugins") file(COPY "${CURRENT_PACKAGES_DIR}/bin/plugins" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() vcpkg_copy_pdbs() set(_tool_names "") if("viewer" IN_LIST FEATURES) # copy the ini file to reference the plugins correctly file(COPY "${CURRENT_PACKAGES_DIR}/bin/viewer.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") list(APPEND _tool_names mapnik-viewer) endif() if("utility-geometry-to-wkb" IN_LIST FEATURES) list(APPEND _tool_names geometry_to_wkb) endif() if("utility-mapnik-index" IN_LIST FEATURES) list(APPEND _tool_names mapnik-index) endif() if("utility-mapnik-render" IN_LIST FEATURES) list(APPEND _tool_names mapnik-render) endif() if("utility-ogrindex" IN_LIST FEATURES) # build is currently not supported # vcpkg_copy_tools(TOOL_NAMES ogrindex AUTO_CLEAN) endif() if("utility-pgsql2sqlite" IN_LIST FEATURES) list(APPEND _tool_names pgsql2sqlite) endif() if("utility-shapeindex" IN_LIST FEATURES) list(APPEND _tool_names shapeindex) endif() if("utility-svg2png" IN_LIST FEATURES) list(APPEND _tool_names svg2png) endif() if(_tool_names) vcpkg_copy_tools(TOOL_NAMES ${_tool_names} AUTO_CLEAN) endif() vcpkg_cmake_config_fixup(CONFIG_PATH share/mapnik/cmake) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(WRITE "${CURRENT_PACKAGES_DIR}/share/mapnik/mapnikPlugins-debug.cmake" "set(MAPNIK_PLUGINS_DIR_DEBUG \"\${PACKAGE_PREFIX_DIR}/debug/bin/mapnik/input\" CACHE STRING \"\")") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/fonts/unifont_license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME fonts_copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/mapnik/usage ================================================ The package mapnik provides CMake targets: find_package(mapnik CONFIG REQUIRED) target_link_libraries(main PRIVATE mapnik::mapnik mapnik::json mapnik::wkt) If you only need the compile definitions without any sources, use target mapnik::core. If any plugins were installed, call the function `mapnik_find_plugin_dir(MAPNIK_PLUGIN_DIR)` to get the plugin installation folder for the currently used configuration. See the docs for more information. ================================================ FILE: ports/mapnik/vcpkg.json ================================================ { "name": "mapnik", "version": "4.0.7", "description": "Mapnik is an open source toolkit for developing mapping applications.", "homepage": "https://github.com/mapnik/mapnik", "license": "LGPL-2.1-only", "supports": "!xbox", "dependencies": [ "boost-assign", "boost-bimap", "boost-filesystem", "boost-format", "boost-geometry", "boost-gil", "boost-interprocess", { "name": "boost-locale", "features": [ "icu" ] }, "boost-msm", "boost-property-tree", { "name": "boost-regex", "features": [ "icu" ] }, "boost-spirit", "boost-system", { "name": "freetype", "features": [ "bzip2", "png" ] }, { "name": "harfbuzz", "features": [ "icu" ] }, { "name": "harfbuzz", "features": [ "coretext" ], "platform": "osx" }, "icu", "mapbox-geometry", "mapbox-polylabel", "mapbox-variant", "protozero", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "grid-renderer", "jpeg", "png", "proj", "svg-renderer", "tiff", "webp" ], "features": { "cairo": { "description": "Cairo renderer", "dependencies": [ "cairo", "cairomm" ] }, "grid-renderer": { "description": "Grid renderer" }, "input-csv": { "description": "CSV input plugin", "dependencies": [ "boost-algorithm" ] }, "input-gdal": { "description": "GDAL input plugin", "dependencies": [ "gdal" ] }, "input-geobuf": { "description": "GEOBUF input plugin", "dependencies": [ "protozero" ] }, "input-geojson": { "description": "GEOJSON input plugin" }, "input-ogr": { "description": "OGR input plugin", "dependencies": [ "gdal" ] }, "input-pgraster": { "description": "PGRASTER input plugin", "dependencies": [ "libpq" ] }, "input-postgis": { "description": "POSTGIS input plugin", "dependencies": [ "libpq" ] }, "input-raster": { "description": "RASTER input plugin", "dependencies": [ "boost-format" ] }, "input-shape": { "description": "SHAPE input plugin" }, "input-sqlite": { "description": "SQLITE input plugin", "dependencies": [ "sqlite3" ] }, "input-topojson": { "description": "TOPOJSON input plugin" }, "jpeg": { "description": "add jpeg support", "dependencies": [ "libjpeg-turbo" ] }, "libxml2": { "description": "use libxml2 instead of rapidxml", "dependencies": [ "libxml2" ] }, "png": { "description": "add png support", "dependencies": [ "libpng" ] }, "proj": { "description": "PROJ Functionalities", "dependencies": [ "proj" ] }, "svg-renderer": { "description": "SVG renderer" }, "tiff": { "description": "add tiff support", "dependencies": [ "tiff" ] }, "utility-geometry-to-wkb": { "description": "utility application geometry-to-wkb", "dependencies": [ "boost-program-options" ] }, "utility-mapnik-index": { "description": "utility application mapnik-index", "dependencies": [ "boost-program-options" ] }, "utility-mapnik-render": { "description": "utility application mapnik-render", "dependencies": [ "boost-program-options" ] }, "utility-ogrindex": { "description": "utility application ogrindex" }, "utility-pgsql2sqlite": { "description": "utility application pgsql2sqlite", "dependencies": [ "boost-program-options", "libpq", "sqlite3" ] }, "utility-shapeindex": { "description": "utility application shapeindex", "dependencies": [ "boost-program-options" ] }, "utility-svg2png": { "description": "utility application svg2png", "dependencies": [ "boost-program-options" ] }, "viewer": { "description": "Make demo viewer application", "dependencies": [ "qtbase" ] }, "webp": { "description": "add webp support", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/marble/cpack.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 307735839..bfdb50d2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,7 +356,6 @@ add_subdirectory(doc) add_subdirectory(src) add_subdirectory(data) -include(DistTarget) add_subdirectory(tests) ================================================ FILE: ports/marble/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/marble REF "v${VERSION}" SHA512 06d2c9f4c85a5ab66825701fa949f35756ff2f09acc65c2ac5c367bd245ee1b674214070a01f828124d8add3f9cdd06e68e0e93091e47501210c5686ae68f29f HEAD_REF master PATCHES qtfix.patch protobuf.patch cpack.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_I18n=ON -DWITH_KF5=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) # Install plugins and data files file(GLOB_RECURSE PLUGINS "${CURRENT_PACKAGES_DIR}/plugins/*") file(GLOB_RECURSE PLUGINS_DESIGNER "${CURRENT_PACKAGES_DIR}/lib/plugins/*") file(GLOB_RECURSE PLUGINS_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/plugins/*") file(GLOB_RECURSE MKSPECS "${CURRENT_PACKAGES_DIR}/mkspecs/*") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(COPY ${PLUGINS} ${PLUGINS_DESIGNER} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/plugins") file(COPY ${PLUGINS_DEBUG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}/plugins") file(COPY "${CURRENT_PACKAGES_DIR}/data" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") # have to keep folder structure here file(COPY ${MKSPECS} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/mkspecs") # remove plugin folder file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/plugins" "${CURRENT_PACKAGES_DIR}/debug/plugins" "${CURRENT_PACKAGES_DIR}/data" "${CURRENT_PACKAGES_DIR}/debug/data" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/mkspecs" "${CURRENT_PACKAGES_DIR}/debug/mkspecs" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/lib/plugins" "${CURRENT_PACKAGES_DIR}/lib/plugins" "${CURRENT_PACKAGES_DIR}/debug/marble-qt.exe" ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/astro.dll" "${CURRENT_PACKAGES_DIR}/bin/astro.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/marbledeclarative.dll" "${CURRENT_PACKAGES_DIR}/bin/marbledeclarative.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/marblewidget-qt5.dll" "${CURRENT_PACKAGES_DIR}/bin/marblewidget-qt5.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/marble-qt.exe" "${CURRENT_PACKAGES_DIR}/tools/marble/marble-qt.exe") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/astrod.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/astrod.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/marbledeclaratived.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/marbledeclaratived.dll") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/marblewidget-qt5d.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/marblewidget-qt5d.dll") endif() vcpkg_copy_pdbs() file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/marble/protobuf.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a8f024c2a..307735839 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,7 @@ endif() # Find Qt dependencies find_package(Protobuf) +set(Protobuf_FOUND 0) set_package_properties(Protobuf PROPERTIES TYPE OPTIONAL PURPOSE "Parsing of OSM PBF files.") if(ANDROID) ================================================ FILE: ports/marble/qtfix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 65b58c4..a8f024c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,7 +184,7 @@ set (PEDANTIC FALSE CACHE BOOL "Determines if we should compile with -Wall -Werr set (WITH_DESIGNER_PLUGIN TRUE CACHE BOOL "Build plugins for Qt Designer") add_feature_info("Qt Designer plugins" WITH_DESIGNER_PLUGIN "Marble widget support in Qt Designer. Toggle with WITH_DESIGNER_PLUGIN=YES/NO") -set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Base directory for executables and libraries" FORCE) +set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/bin CACHE PATH "Base directory for executables and libraries" FORCE) if (NOT QT_PLUGINS_DIR) set(QT_PLUGINS_DIR ${CMAKE_INSTALL_LIBDIR}/plugins) endif() diff --git a/src/plugins/positionprovider/CMakeLists.txt b/src/plugins/positionprovider/CMakeLists.txt index ec2ba1a..cc8e52e 100644 --- a/src/plugins/positionprovider/CMakeLists.txt +++ b/src/plugins/positionprovider/CMakeLists.txt @@ -12,12 +12,12 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} OPTIONAL_COMPONENTS Positioning ) -marble_set_package_properties( Qt5Positioning PROPERTIES DESCRIPTION "a collection of APIs and frameworks" ) -marble_set_package_properties( Qt5Positioning PROPERTIES URL "https://www.qt.io/developers/" ) -marble_set_package_properties( Qt5Positioning PROPERTIES TYPE OPTIONAL PURPOSE "position information via Qt5Positioning" ) -if(Qt5Positioning_FOUND) - ADD_SUBDIRECTORY( qtpositioning ) -endif() +#marble_set_package_properties( Qt5Positioning PROPERTIES DESCRIPTION "a collection of APIs and frameworks" ) +#marble_set_package_properties( Qt5Positioning PROPERTIES URL "https://www.qt.io/developers/" ) +#marble_set_package_properties( Qt5Positioning PROPERTIES TYPE OPTIONAL PURPOSE "position information via Qt5Positioning" ) +#if(Qt5Positioning_FOUND) +# ADD_SUBDIRECTORY( qtpositioning ) +#endif() macro_optional_find_package(libwlocate) ================================================ FILE: ports/marble/vcpkg.json ================================================ { "name": "marble", "version-string": "24.08.2", "port-version": 1, "description": "Marble KDE library", "homepage": "https://marble.kde.org", "license": "LGPL-2.1-or-later", "supports": "windows & x64 & !static & !xbox", "dependencies": [ "qt5-base", "qt5-quickcontrols", "qt5-svg", "qt5-webchannel", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/marchingcubecpp/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aparis69/MarchingCubeCpp REF f03a1b3ec29b1d7d865691ca8aea4f1eb2c2873d SHA512 879204bbfe6a9ad6a6b050b2ba5126884e0b7d01c883d7319dc1deed0c3f6d1658493ba4b39bfcce8c9643739e812d2d69cdbd9be92cd728e0fcccfeb64f898e ) # Install source files file(INSTALL "${SOURCE_PATH}/MC.h" "${SOURCE_PATH}/noise.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}" ) # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md") ================================================ FILE: ports/marchingcubecpp/vcpkg.json ================================================ { "name": "marchingcubecpp", "version-date": "2023-09-11", "description": "Marching cube implementation.", "homepage": "https://github.com/aparis69/MarchingCubeCpp", "license": "MIT" } ================================================ FILE: ports/mariadb-connector-cpp/fix-carray.diff ================================================ diff --git a/include/conncpp/CArray.hpp b/include/conncpp/CArray.hpp index f3e4634..e0f62eb 100644 --- a/include/conncpp/CArray.hpp +++ b/include/conncpp/CArray.hpp @@ -24,6 +24,7 @@ #include "buildconf.hpp" #include #include +#include namespace sql ================================================ FILE: ports/mariadb-connector-cpp/install.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a10e1e..4a4732b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -690,14 +690,16 @@ IF(MINGW) ENDIF() INCLUDE(symlink) +if(NOT BUILD_SHARED_LIBS) CREATE_SYMLINK(lib${LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} ${STATIC_LIBRARY_NAME} ${INSTALL_LIBDIR}) +endif() ADD_DEPENDENCIES(${LIBRARY_NAME} DEPENDENCIES_FOR_PACKAGE) ########## Packaging ########## # MSI -IF(WIN32) +IF(0) IF(WITH_MSI) ADD_CUSTOM_COMMAND(TARGET ${LIBRARY_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -DDRIVER_LIB_DIR=$ @@ -714,13 +716,30 @@ ELSE() #MESSAGE(STATUS "Configuring to generate PKG package") #ADD_SUBDIRECTORY(osxinstall) ENDIF() + if(BUILD_SHARED_LIBS) + set_target_properties(${STATIC_LIBRARY_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) + target_include_directories(${LIBRARY_NAME} INTERFACE $) INSTALL(TARGETS ${LIBRARY_NAME} + EXPORT unofficial-mariadb-connector-cpp + RUNTIME DESTINATION ${INSTALL_BINDIR} LIBRARY DESTINATION ${INSTALL_LIBDIR} + ARCHIVE DESTINATION ${INSTALL_LIBDIR} COMPONENT SharedLibraries) + else() + set_target_properties(${LIBRARY_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) + set_target_properties(${STATIC_LIBRARY_NAME} PROPERTIES EXPORT_NAME ${LIBRARY_NAME}) + target_include_directories(${STATIC_LIBRARY_NAME} INTERFACE $) INSTALL(TARGETS ${STATIC_LIBRARY_NAME} + EXPORT unofficial-mariadb-connector-cpp ARCHIVE DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) + endif() + install(EXPORT unofficial-mariadb-connector-cpp + DESTINATION share/unofficial-mariadb-connector-cpp + NAMESPACE unofficial::mariadb-connector-cpp:: + FILE unofficial-mariadb-connector-cpp-targets.cmake + ) MESSAGE(STATUS "Documentation installed to ${INSTALL_DOCDIR}") MESSAGE(STATUS "License file installed to ${INSTALL_LICENSEDIR}") ================================================ FILE: ports/mariadb-connector-cpp/libmariadb.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index db28fd9..1692f72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -545,7 +545,11 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/maconncpp.def.in ${CMAKE_CURRENT_SOURCE_DIR}/src/maconncpp.def) # Dynamic linking is default on non-Windows -IF(MARIADB_LINK_DYNAMIC) +IF(1) + FIND_PACKAGE(unofficial-libmariadb CONFIG REQUIRED) + SET(MARIADB_CLIENT_TARGET_NAME unofficial::libmariadb) + ADD_LIBRARY(mariadbclient ALIAS unofficial::libmariadb) +ELSEIF(MARIADB_LINK_DYNAMIC) IF(USE_SYSTEM_INSTALLED_LIB) IF(MINGW) # I guess -l can be removed here. Also, for build with c/c as submodule this will have to me moved on top level out of this IF's @@ -601,6 +605,7 @@ ENDIF() ADD_LIBRARY(${LIBRARY_NAME}_obj OBJECT ${MACPP_SOURCES}) +TARGET_LINK_LIBRARIES(${LIBRARY_NAME}_obj PRIVATE unofficial::libmariadb) IF(UNIX) SET_TARGET_PROPERTIES(${LIBRARY_NAME}_obj PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_C_FLAGS}") ENDIF() ================================================ FILE: ports/mariadb-connector-cpp/mingw.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ffa175a..82be8d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -428,7 +428,7 @@ IF(WIN32) ENDIF() ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN) SET(INSTALL_PLUGINDIR "${MARIADB_DEFAULT_PLUGINS_SUBDIR}") - SET(PLATFORM_DEPENDENCIES ${PLATFORM_DEPENDENCIES} version.lib) + SET(PLATFORM_DEPENDENCIES ${PLATFORM_DEPENDENCIES} version) ENDIF() ### Build options, initial settings and platform defaults ================================================ FILE: ports/mariadb-connector-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mariadb-corporation/mariadb-connector-cpp REF ${VERSION} HEAD_REF master SHA512 90ce780e19babda02608134c99e8c0e7601a41ee5531097735beb54ec94c2dd38ecf4f457e9cac04831d7e886fe7c7b7a6d9fe799bf71d52ba168158ec36dc67 PATCHES fix-carray.diff libmariadb.diff mingw.diff install.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DINSTALL_LIBDIR=lib -DUSE_SYSTEM_INSTALLED_LIB=ON -DWITH_MSI=OFF -DWITH_UNIT_TESTS=OFF ) vcpkg_cmake_install() file(INSTALL "${CURRENT_PORT_DIR}/unofficial-${PORT}-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mariadb-connector-cpp/unofficial-mariadb-connector-cpp-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(unofficial-libmariadb CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-mariadb-connector-cpp-targets.cmake") ================================================ FILE: ports/mariadb-connector-cpp/vcpkg.json ================================================ { "name": "mariadb-connector-cpp", "version": "1.1.5", "description": "Connector/c++ for MariaDB.", "homepage": "https://mariadb.com/docs/appdev/connector-cpp/", "license": "LGPL-2.1-or-later", "dependencies": [ { "name": "libmariadb", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/marisa-trie/enable-debug.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a00be40..1fce4fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -256,7 +256,6 @@ endif() install( TARGETS marisa EXPORT MarisaTargets - CONFIGURATIONS Release DESTINATION ${LIB_INSTALL_DIR} COMPONENT Library ) @@ -270,7 +269,6 @@ install( if(ENABLE_TOOLS) install( TARGETS ${MARISA_TOOLS} - CONFIGURATIONS Release COMPONENT Binaries ) endif() ================================================ FILE: ports/marisa-trie/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1fce4fb..e56f0a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -256,20 +256,21 @@ endif() install( TARGETS marisa EXPORT MarisaTargets - DESTINATION ${LIB_INSTALL_DIR} - COMPONENT Library + RUNTIME DESTINATION bin + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ) install( DIRECTORY include/ DESTINATION include COMPONENT Library FILES_MATCHING PATTERN "*.h" ) if(ENABLE_TOOLS) install( TARGETS ${MARISA_TOOLS} COMPONENT Binaries ) endif() ================================================ FILE: ports/marisa-trie/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO s-yata/marisa-trie REF v${VERSION} SHA512 60757e354e4f0ff47662930af5c32a762c5f348c60019abb2d502c6c21ec220731edd9be8ea36e3ec68df90a6584eb311fe1e3d4258b3392609a87b0ef427121 HEAD_REF master PATCHES enable-debug.patch fix-install.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES tools ENABLE_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Marisa) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) set(TOOL_NAMES marisa-benchmark marisa-build marisa-common-prefix-search marisa-dump marisa-lookup marisa-predictive-search marisa-reverse-lookup) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.md") ================================================ FILE: ports/marisa-trie/vcpkg.json ================================================ { "name": "marisa-trie", "version": "0.3.1", "description": "Matching Algorithm with Recursively Implemented StorAge (MARISA) is a space-efficient trie data structure. This is a C++ library for an implementation of MARISA.", "homepage": "https://github.com/s-yata/marisa-trie", "license": "BSD-2-Clause OR LGPL-2.1-or-later", "supports": "!windows | mingw | (windows & static)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Enables command-line tools" } } } ================================================ FILE: ports/marl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/marl REF aa9e85b2189d6f5dbba6909275661b37dfb5de69 #2023-06-28 SHA512 fc4869d791608fa9198da896b6687fcc79e830766f3192ca6d7b28ba3156a06618901677e66f0b08a472a602a62d88f09ff49917a6749f410d92c2911f14d736 HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MARL_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMARL_BUILD_SHARED=${MARL_BUILD_SHARED} -DMARL_INSTALL=ON ) vcpkg_cmake_install() if(MARL_BUILD_SHARED) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/marl/export.h" "#ifdef MARL_DLL" "#if 1 // #ifdef MARL_DLL" ) endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/marl/vcpkg.json ================================================ { "name": "marl", "version-date": "2023-06-28", "description": "A hybrid thread/fiber task scheduler written in modern C++", "homepage": "https://github.com/google/marl", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/marzbanpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO andrascii/marzbanpp REF "${VERSION}" SHA512 b53bc56f30599e530a911f367a6e5e2fbde6311898a84cae3ed08b78cbd142226f4d5e0f49a0dabc558243835226fb1d9c89faf3d20d3022027a4446f5404b62 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/marzbanpp/usage ================================================ marzbanpp provides CMake targets: find_package(marzbanpp CONFIG REQUIRED) target_link_libraries(main PRIVATE marzbanpp::marzbanpp) ================================================ FILE: ports/marzbanpp/vcpkg.json ================================================ { "name": "marzbanpp", "version": "1.0.5", "description": "marzbanpp is the C++ library for interaction with Marzban through its REST API.", "homepage": "https://github.com/andrascii/marzbanpp", "license": "MIT", "dependencies": [ { "name": "curl", "default-features": false }, "fmt", "glaze", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/matajoh-libnpy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO matajoh/libnpy REF "v${VERSION}" SHA512 5959f7a27efdc25d463aff12ff3858772f628c703a5f99d6842aa26b4f6cc15e394b2fe2dc7b7a5277692c67a3bfe42c5749ed1a98b86ecb416a7b6bffac0029 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/miniz") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBNPY_BUILD_TESTS=OFF -DLIBNPY_BUILD_DOCUMENTATION=OFF -DLIBNPY_USE_SYSTEM_MINIZ=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME npy) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/matajoh-libnpy/usage ================================================ The package matajoh-libnpy provides CMake targets: find_package(npy CONFIG REQUIRED) target_link_libraries(main PRIVATE npy::npy) ================================================ FILE: ports/matajoh-libnpy/vcpkg.json ================================================ { "name": "matajoh-libnpy", "version": "2.1.2", "description": "A C++17 library for reading and writing NumPy NPY and NPZ array files", "homepage": "https://github.com/matajoh/libnpy", "license": "MIT", "dependencies": [ "miniz", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/matchit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BowenFu/matchit.cpp REF v1.0.1 SHA512 60edc6a392f5629391fa9e3ff09b7b98a0a782919a066ad2999eabb58e60f38bd50e080037b1276c5bca986f81ca0dfff2914816d46458b7b4e1c947a6134169 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/matchit") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/matchit/usage ================================================ The package matchit provides CMake targets: find_package(matchit CONFIG REQUIRED) target_link_libraries(main PRIVATE matchit::matchit) ================================================ FILE: ports/matchit/vcpkg.json ================================================ { "name": "matchit", "version": "1.0.1", "description": "matchit is a pattern matching library for C++17 with macro-free APIs", "homepage": "https://github.com/BowenFu/matchit.cpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/materialx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/MaterialX REF "v${VERSION}" SHA512 ca743e619f51bddd67419c79a31e9fb92dd7883e8c182897c1d8cea2e5dc51cddf13ac8cc798cfa0f022dacf4fd77881aefc24f3184f8b7273651ba55c7df400 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES glsl-generator MATERIALX_BUILD_GEN_GLSL mdl-generator MATERIALX_BUILD_GEN_MDL osl-generator MATERIALX_BUILD_GEN_OSL render MATERIALX_BUILD_RENDER ) if ((VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_LINUX) AND MATERIALX_BUILD_RENDER) message(WARNING "${PORT} currently requires the following libraries from the system package manager:\n libx11-dev\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev.") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OPTION_BUILD_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DMATERIALX_BUILD_SHARED_LIBS:BOOL=${OPTION_BUILD_SHARED_LIB}" "-DMATERIALX_BUILD_JS:BOOL=NO" "-DMATERIALX_BUILD_PYTHON:BOOL=NO" "-DMATERIALX_BUILD_VIEWER:BOOL=NO" "-DMATERIALX_BUILD_DOCS:BOOL=NO" "-DMATERIALX_BUILD_OIIO:BOOL=NO" "-DMATERIALX_BUILD_TESTS:BOOL=NO" "-DMATERIALX_PYTHON_LTO:BOOL=NO" "-DMATERIALX_INSTALL_PYTHON:BOOL=NO" "-DMATERIALX_TEST_RENDER:BOOL=NO" "-DMATERIALX_WARNINGS_AS_ERRORS:BOOL=NO" MAYBE_UNUSED_VARIABLES MATERIALX_PYTHON_LTO # Used when MATERIALX_BUILD_PYTHON=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME MaterialX CONFIG_PATH lib/cmake/MaterialX) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/CHANGELOG.md" "${CURRENT_PACKAGES_DIR}/LICENSE" "${CURRENT_PACKAGES_DIR}/README.md" "${CURRENT_PACKAGES_DIR}/THIRD-PARTY.md" "${CURRENT_PACKAGES_DIR}/debug/CHANGELOG.md" "${CURRENT_PACKAGES_DIR}/debug/LICENSE" "${CURRENT_PACKAGES_DIR}/debug/README.md" "${CURRENT_PACKAGES_DIR}/debug/THIRD-PARTY.md" "${CURRENT_PACKAGES_DIR}/debug/include" # MaterialXGenShader explicitely install resources "${CURRENT_PACKAGES_DIR}/include/MaterialXRender/External/OpenImageIO" # Based on how OSL does it, it could be that those `.mdl` source would be better located inside `libraries/pbrlib/genmdl/**` # But it seems that they are instead installed into `libraries/mdl` "${CURRENT_PACKAGES_DIR}/include/MaterialXGenMdl/mdl" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/materialx/vcpkg.json ================================================ { "name": "materialx", "version": "1.39.1", "port-version": 2, "description": "MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.", "homepage": "https://www.materialx.org/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "glsl-generator": { "description": "Build the GLSL shader generator back-end." }, "mdl-generator": { "description": "Build the MDL shader generator back-end." }, "osl-generator": { "description": "Build the OSL shader generator back-end." }, "render": { "description": "Build the MaterialX Render library." } } } ================================================ FILE: ports/mathc/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(mathc LANGUAGES C) include(GNUInstallDirs) add_library(mathc mathc.c) target_include_directories( mathc PUBLIC $ ) set_target_properties(mathc PROPERTIES PUBLIC_HEADER mathc.h) install(TARGETS mathc EXPORT unofficial-mathc-config) install( EXPORT unofficial-mathc-config NAMESPACE unofficial::mathc:: DESTINATION share/unofficial-mathc PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/mathc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO felselva/mathc REF d672725203fc80f6f79fba64533b87d51c32d714 SHA512 6db96b7ca9b26745b6ead774b547f6cccdecaef0b55cb766d4f26ae7149bbb72e2bd877cb7994455bd19cae129d014efaf40b50395b1114b7ac95dc6ed53bf34 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/mathc/vcpkg.json ================================================ { "name": "mathc", "version-date": "2019-09-29", "port-version": 3, "description": "Pure C math library for 2D and 3D programming", "homepage": "https://github.com/felselva/mathc", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mathgl/cmake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a73d0f..fda5ba1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,7 @@ endif() set(MathGL_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) + break() # Absolute paths break config fixup for tools set(var MathGL_INSTALL_${p}_DIR) if(NOT IS_ABSOLUTE "${${var}}") set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") diff --git a/scripts/MathGLConfig.cmake.in b/scripts/MathGLConfig.cmake.in index f219126..2a9f58b 100644 --- a/scripts/MathGLConfig.cmake.in +++ b/scripts/MathGLConfig.cmake.in @@ -1,15 +1,19 @@ # - Config file for the MathGL package # It defines the following variables -set(MathGL2_INCLUDE_DIRS "@MathGL_INSTALL_INCLUDE_DIR@") -set(MathGL2_LIBRARIES_DIRS "@MathGL_INSTALL_LIB_DIR@") +set(MathGL2_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/@MathGL_INSTALL_INCLUDE_DIR@") +if(CMAKE_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]") + set(MathGL2_LIBRARIES_DIRS "@CMAKE_INSTALL_PREFIX@/debug/@MathGL_INSTALL_LIB_DIR@") +else() + set(MathGL2_LIBRARIES_DIRS "@CMAKE_INSTALL_PREFIX@/@MathGL_INSTALL_LIB_DIR@") +endif() set(MathGL2_HAVE_QT5 "@enable-qt5@") set(MathGL2_HAVE_QT4 "@enable-qt4@") set(MathGL2_HAVE_WX "@enable-wx@") set(MathGL2_HAVE_FLTK "@enable-fltk@") set(MathGL2_HAVE_GLUT "@enable-glut@") set(MathGL2_HAVE_PTHREAD "@CMAKE_USE_PTHREADS_INIT@") -set(MathGL2_HAVE_OPENMP "@OPENMP_FOUND@") +set(MathGL2_HAVE_OPENMP "@enable-openmp@") include(CMakeFindDependencyMacro) # Adding dependency for Threads imported target ================================================ FILE: ports/mathgl/cmake-project-include.cmake ================================================ if(WIN32 AND NOT MINGW) find_package(unofficial-getopt-win32 REQUIRED) set(getopt_lib-static unofficial::getopt-win32::getopt) set(MGL_HAVE_GETOPT 1 CACHE INTERNAL "From vcpkg") endif() ================================================ FILE: ports/mathgl/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 466e9bc..d99c1e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -441,9 +441,10 @@ else(enable-pthr-widget OR enable-pthread) endif(enable-pthr-widget OR enable-pthread) if(enable-arma) - find_package(Armadillo) + find_package(Armadillo CONFIG REQUIRED) if(ARMADILLO_FOUND) set(MGL_HAVE_ARMA 1) + list(APPEND MGL_DEP_LIBS armadillo) else(ARMADILLO_FOUND) set(MGL_HAVE_ARMA 0) endif(ARMADILLO_FOUND) @@ -548,7 +549,7 @@ endif(enable-hdf5) if(enable-jpeg) set(MGL_HAVE_JPEG 1) - include(FindJPEG) + find_package(JPEG) if(NOT JPEG_FOUND) message(SEND_ERROR "Couldn't find JPEG library.") endif(NOT JPEG_FOUND) @@ -561,7 +562,7 @@ endif(enable-jpeg) if(enable-zlib) set(MGL_HAVE_ZLIB 1) - include(FindZLIB) + find_package(ZLIB) if(NOT ZLIB_FOUND) message(SEND_ERROR "Couldn't find ZLib library.") endif(NOT ZLIB_FOUND) @@ -573,7 +574,7 @@ endif(enable-zlib) if(enable-freetype) set(MGL_HAVE_FREETYPE 1) - include(FindFreetype) + find_package(Freetype) if(NOT FREETYPE_FOUND) message(SEND_ERROR "Couldn't find FreeType library.") endif(NOT FREETYPE_FOUND) @@ -588,7 +589,7 @@ if(enable-png) if(NOT MGL_HAVE_ZLIB) message(SEND_ERROR "You have to enable ZLib if you plan to use PNG export.") endif(NOT MGL_HAVE_ZLIB) - include(FindPNG) + find_package(PNG) if(NOT PNG_FOUND) message(SEND_ERROR "Couldn't find PNG library.") endif(NOT PNG_FOUND) @@ -620,7 +621,7 @@ endif(enable-pdf) if(enable-gif) set(MGL_HAVE_GIF 1) - include(FindGIF) + find_package(GIF) if(NOT GIF_FOUND) message(SEND_ERROR "Couldn't find GIF library.") endif(NOT GIF_FOUND) @@ -633,7 +634,7 @@ endif(enable-gif) if(enable-opengl) set(MGL_HAVE_OPENGL 1) set(OpenGL_GL_PREFERENCE LEGACY) - include(FindOpenGL) + find_package(OpenGL) if(NOT OPENGL_FOUND) message(SEND_ERROR "Couldn't find OpenGL libraries.") endif(NOT OPENGL_FOUND) @@ -648,7 +649,7 @@ if(enable-glut) if(NOT MGL_HAVE_OPENGL) message(SEND_ERROR "You have to enable OpenGL if you plan to use GLUT.") endif(NOT MGL_HAVE_OPENGL) - include(FindGLUT) + find_package(GLUT REQUIRED) if(NOT GLUT_FOUND) message(SEND_ERROR "Couldn't find GLUT library.") endif(NOT GLUT_FOUND) @@ -658,14 +659,19 @@ endif(enable-glut) if(enable-fltk) set(MGL_HAVE_FLTK 1) - FIND_PACKAGE(FLTK) + find_package(FLTK CONFIG) + set(FLTK_LIBRARIES fltk) if(NOT FLTK_FOUND) message(SEND_ERROR "Couldn't find FLTK library.") else(NOT FLTK_FOUND) - include_directories(${FLTK_INCLUDE_DIR}) + set(FLTK_LIBRARIES fltk) + include(CMakePushCheckState) + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_LIBRARIES ${FLTK_LIBRARIES}) CHECK_CXX_SOURCE_COMPILES( "#include int main(){return 0;}" MGL_HAVE_FL_COPY) + cmake_pop_check_state() endif(NOT FLTK_FOUND) if(NOT MGL_HAVE_FL_COPY) set(MGL_HAVE_FL_COPY 0) diff --git a/scripts/MathGLConfig.cmake.in b/scripts/MathGLConfig.cmake.in index 78bad89..0c2e5ed 100644 --- a/scripts/MathGLConfig.cmake.in +++ b/scripts/MathGLConfig.cmake.in @@ -25,6 +25,12 @@ endif() if (MathGL2_HAVE_OPENMP STRGREATER "") find_dependency(OpenMP) endif() +if("@enable-arma@") + find_dependency(Armadillo CONFIG) +endif() +if(MathGL2_HAVE_FLTK) + find_dependency(FLTK CONFIG) +endif() # Compute paths get_filename_component(MathGL2_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) ================================================ FILE: ports/mathgl/enable-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b393fa7..8a1ce4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -838,7 +838,9 @@ if(NOT enable-lgpl) add_subdirectory( lang ) endif(enable-python OR enable-lua OR enable-octave) add_subdirectory( utils ) +if(enable-examples) add_subdirectory( examples ) +endif() if(NOT WIN32) add_subdirectory( fonts ) endif(NOT WIN32) ================================================ FILE: ports/mathgl/fix-cross-builds.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8a1ce4b..71d07bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -842,8 +842,9 @@ if(enable-examples) add_subdirectory( examples ) endif() if(NOT WIN32) - add_subdirectory( fonts ) + set(INSTALL_FONTS 1) endif(NOT WIN32) +add_subdirectory( fonts ) add_subdirectory( mgllab ) endif(NOT enable-lgpl) diff --git a/fonts/CMakeLists.txt b/fonts/CMakeLists.txt index f529c18..aba1bc3 100644 --- a/fonts/CMakeLists.txt +++ b/fonts/CMakeLists.txt @@ -1,8 +1,20 @@ +if(MAKE_BIN_EXECUTABLE) + add_executable(make_bin IMPORTED) + set_target_properties(make_bin PROPERTIES IMPORTED_LOCATION "${MAKE_BIN_EXECUTABLE}") +else() + add_executable(make_bin make_bin.cpp) + target_link_libraries(make_bin mgl${link_type} ${getopt_lib-static}) + install(TARGETS make_bin RUNTIME DESTINATION bin) +endif() +if(NOT INSTALL_FONTS) + return() +elseif(0) include_directories( ${MathGL2_SOURCE_DIR}/include ${MathGL2_BINARY_DIR}/include) set(hdrF ../include/mgl2/font.h ../include/mgl2/define.h ${MathGL2_BINARY_DIR}/include/mgl2/config.h) add_executable(make_bin make_bin.cpp ../src/font.cpp ${hdrF}) #target_link_libraries(make_bin mgl-static ${getopt_lib-static}) target_link_libraries(make_bin ${MGL_DEP_LIBS}) +endif() set(MGL_FONTS STIX adventor bonum cursor heroscn heros pagella schola termes) set(MGL_FONTS_BIN ) diff --git a/fonts/make_bin.cpp b/fonts/make_bin.cpp index 73d0adb..e0158be 100644 --- a/fonts/make_bin.cpp +++ b/fonts/make_bin.cpp @@ -20,6 +20,7 @@ #include #include "mgl2/font.h" //----------------------------------------------------------------------------- +#if 0 // vcpkg links to mgl lib extern mglFont *mglDefFont; void mgl_init() // TODO try to add ld option: "-init mgl_init" { @@ -30,6 +31,7 @@ void mgl_init() // TODO try to add ld option: "-init mgl_init" mglDefFont = new mglFont(MGL_DEF_FONT_NAME); } } +#endif int main(int argc, char *argv[]) { mglFont fnt; ================================================ FILE: ports/mathgl/fix-examples.patch ================================================ diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index cd389bd..56ad515 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -26,7 +26,7 @@ endif(MGL_HAVE_GLUT) if(MGL_HAVE_WX) include(${wxWidgets_USE_FILE}) - add_executable(mgl_wx_example wnd_samples.cpp wx_example.cpp) + add_executable(mgl_wx_example WIN32 wnd_samples.cpp wx_example.cpp) target_link_libraries(mgl_wx_example mgl-wx${link_type}) endif(MGL_HAVE_WX) diff --git a/examples/full_test.cpp b/examples/full_test.cpp index 50fb6ae..6f3ef26 100644 --- a/examples/full_test.cpp +++ b/examples/full_test.cpp @@ -21,6 +21,14 @@ #include #include #include +#if defined(_UNICODE) && defined(getopt_long_only) +#undef getopt_long_only +#undef option +#undef optarg +#define getopt_long_only getopt_long_only_a +#define option option_a +#define optarg optarg_a +#endif #ifdef WIN32 #include #include ================================================ FILE: ports/mathgl/fix-format-specifiers.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a560278..3184d2c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -239,6 +239,11 @@ if(MSVC AND MSVC_VERSION GREATER 1899) SET(CMAKE_CXX_FLAGS "/EHsc -D_CRT_STDIO_ISO_WIDE_SPECIFIERS ${CMAKE_CXX_FLAGS}") SET(CMAKE_C_FLAGS "-D_CRT_STDIO_ISO_WIDE_SPECIFIERS ${CMAKE_C_FLAGS}") endif(MSVC AND MSVC_VERSION GREATER 1899) +# _CRT_STDIO_ISO_WIDE_SPECIFIERS was never officially supported +# and breaks link mathgl widget libs against their GUI libs: +# error LNK2038: mismatch detected for '_CRT_STDIO_ISO_WIDE_SPECIFIERS': value '0' doesn't match value '1' in fltk.cpp.obj +string(REPLACE "-D_CRT_STDIO_ISO_WIDE_SPECIFIERS" "-DVCPKG_MSVC_WPRINTF" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +string(REPLACE "-D_CRT_STDIO_ISO_WIDE_SPECIFIERS" "-DVCPKG_MSVC_WPRINTF" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") include(CheckCXXSourceCompiles) diff --git a/src/export_2d.cpp b/src/export_2d.cpp index bd07404..65f5fdf 100644 --- a/src/export_2d.cpp +++ b/src/export_2d.cpp @@ -17,6 +17,13 @@ * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +// wprintf format specifier for char*. +// Inject by replacing (wprintf.*?[^"])" PERCENT_S " with $1" PERCENT_S " +#ifdef VCPKG_MSVC_WPRINTF +#define PERCENT_S "%S" +#else +#define PERCENT_S "%s" +#endif #include "mgl2/canvas.h" #include "mgl2/canvas_cf.h" #include "mgl2/font.h" @@ -661,7 +668,7 @@ void MGL_EXPORT mgl_write_tex(HMGL gr, const char *fname,const char *descr) FILE *fp = fopen(fname,"w"); if(!fp) { gr->SetWarn(mglWarnOpen,fname); return; } const std::string loc = setlocale(LC_NUMERIC, "C"); fwide(fp,1); - fwprintf(fp, L"%% Created by MathGL library\n%% Title: %s\n\n",descr?descr:fname); + fwprintf(fp, L"%% Created by MathGL library\n%% Title: " PERCENT_S "\n\n",descr?descr:fname); // provide marks fwprintf(fp, L"\\providecommand{\\mglp}[4]{\\draw[#3] (#1-#4, #2) -- (#1+#4,#2) (#1,#2-#4) -- (#1,#2+#4);}\n"); fwprintf(fp, L"\\providecommand{\\mglx}[4]{\\draw[#3] (#1-#4, #2-#4) -- (#1+#4,#2+#4) (#1+#4,#2-#4) -- (#1-#4,#2+#4);}\n"); @@ -707,47 +714,47 @@ void MGL_EXPORT mgl_write_tex(HMGL gr, const char *fname,const char *descr) switch(q.n4) // NOTE: no thickness for marks in TeX { case 'P': - fwprintf(fp, L"\\mglp{%.4g}{%.4g}{%s}{%.4g} \\mgls{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; + fwprintf(fp, L"\\mglp{%.4g}{%.4g}{" PERCENT_S "}{%.4g} \\mgls{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; case 'X': - fwprintf(fp, L"\\mglx{%.4g}{%.4g}{%s}{%.4g} \\mgls{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; + fwprintf(fp, L"\\mglx{%.4g}{%.4g}{" PERCENT_S "}{%.4g} \\mgls{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; case 'C': - fwprintf(fp, L"\\mglc{%.4g}{%.4g}{%s}{%.4g} \\mglo{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; - case '+': fwprintf(fp, L"\\mglp{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'x': fwprintf(fp, L"\\mglx{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 's': fwprintf(fp, L"\\mgls{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'S': fwprintf(fp, L"\\mglS{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'd': fwprintf(fp, L"\\mgld{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'D': fwprintf(fp, L"\\mglD{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case '^': fwprintf(fp, L"\\mglt{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'T': fwprintf(fp, L"\\mglT{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'v': fwprintf(fp, L"\\mglv{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'V': fwprintf(fp, L"\\mglV{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case '<': fwprintf(fp, L"\\mgll{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'L': fwprintf(fp, L"\\mglL{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case '>': fwprintf(fp, L"\\mglr{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'R': fwprintf(fp, L"\\mglR{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'Y': fwprintf(fp, L"\\mglY{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'o': fwprintf(fp, L"\\mglo{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case 'O': fwprintf(fp, L"\\mglO{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - case '*': fwprintf(fp, L"\\mgla{%.4g}{%.4g}{%s}{%.4g}\n", x,y,cname,s); break; - default: fwprintf(fp, L"\\mglc{%.4g}{%.4g}{%s}\n", x,y,cname); break; + fwprintf(fp, L"\\mglc{%.4g}{%.4g}{" PERCENT_S "}{%.4g} \\mglo{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s,x,y,cname,s); break; + case '+': fwprintf(fp, L"\\mglp{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'x': fwprintf(fp, L"\\mglx{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 's': fwprintf(fp, L"\\mgls{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'S': fwprintf(fp, L"\\mglS{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'd': fwprintf(fp, L"\\mgld{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'D': fwprintf(fp, L"\\mglD{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case '^': fwprintf(fp, L"\\mglt{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'T': fwprintf(fp, L"\\mglT{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'v': fwprintf(fp, L"\\mglv{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'V': fwprintf(fp, L"\\mglV{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case '<': fwprintf(fp, L"\\mgll{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'L': fwprintf(fp, L"\\mglL{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case '>': fwprintf(fp, L"\\mglr{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'R': fwprintf(fp, L"\\mglR{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'Y': fwprintf(fp, L"\\mglY{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'o': fwprintf(fp, L"\\mglo{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case 'O': fwprintf(fp, L"\\mglO{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + case '*': fwprintf(fp, L"\\mgla{%.4g}{%.4g}{" PERCENT_S "}{%.4g}\n", x,y,cname,s); break; + default: fwprintf(fp, L"\\mglc{%.4g}{%.4g}{" PERCENT_S "}\n", x,y,cname); break; } } else if(q.type==2 && cp.r[3]) { const mglPnt &p2=gr->GetPnt(q.n2), &p3=gr->GetPnt(q.n3); if(cp.r[3]<255) - fwprintf(fp, L"\\fill[%s, fill opacity=%.4g] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname,cp.r[3]/255., x,y, p2.x/100,p2.y/100, p3.x/100,p3.y/100); + fwprintf(fp, L"\\fill[" PERCENT_S ", fill opacity=%.4g] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname,cp.r[3]/255., x,y, p2.x/100,p2.y/100, p3.x/100,p3.y/100); else - fwprintf(fp, L"\\fill[%s, fill] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname, x,y, p2.x/100,p2.y/100, p3.x/100,p3.y/100); + fwprintf(fp, L"\\fill[" PERCENT_S ", fill] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname, x,y, p2.x/100,p2.y/100, p3.x/100,p3.y/100); } else if(q.type==3 && cp.r[3]) { const mglPnt &p2=gr->GetPnt(q.n2), &p3=gr->GetPnt(q.n3), &p4=gr->GetPnt(q.n4); if(cp.r[3]<255) - fwprintf(fp, L"\\fill[%s, fill opacity=%.4g] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname,cp.r[3]/255., x,y, p2.x/100,p2.y/100, p4.x/100,p4.y/100, p3.x/100,p3.y/100); + fwprintf(fp, L"\\fill[" PERCENT_S ", fill opacity=%.4g] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname,cp.r[3]/255., x,y, p2.x/100,p2.y/100, p4.x/100,p4.y/100, p3.x/100,p3.y/100); else - fwprintf(fp, L"\\fill[%s, fill] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname, x,y, p2.x/100,p2.y/100, p4.x/100,p4.y/100, p3.x/100,p3.y/100); + fwprintf(fp, L"\\fill[" PERCENT_S ", fill] (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- (%.4g,%.4g) -- cycle;\n", cname, x,y, p2.x/100,p2.y/100, p4.x/100,p4.y/100, p3.x/100,p3.y/100); } else if(q.type==1) // lines @@ -755,8 +762,8 @@ void MGL_EXPORT mgl_write_tex(HMGL gr, const char *fname,const char *descr) //const char *dash[]={"", "8 8","4 4","1 3","7 4 1 4","3 2 1 2"}; const char *w[]={"semithick","thick","very thick","ultra thick"}; int iw=int(q.w-0.5); if(iw>3) iw=3; - if(iw<0) fwprintf(fp,L"\\draw[%s] ",cname); - else fwprintf(fp,L"\\draw[%s,%s] ",cname,w[iw]); + if(iw<0) fwprintf(fp,L"\\draw[" PERCENT_S "] ",cname); + else fwprintf(fp,L"\\draw[" PERCENT_S "," PERCENT_S "] ",cname,w[iw]); // TODO: add line dashing wp = q.w>1 ? q.w:1; st = q.n3; std::vector ids = put_line(gr,i,wp,cp.c,st); @@ -780,9 +787,9 @@ void MGL_EXPORT mgl_write_tex(HMGL gr, const char *fname,const char *descr) // if(f&MGL_FONT_ITAL) ss.append(",font=\\itshape"); // if(f&MGL_FONT_BOLD) ss.append(",font=\\bfshape"); if(t.text.find('\\')!=std::string::npos || t.text.find('{')!=std::string::npos || t.text.find('_')!=std::string::npos || t.text.find('^')!=std::string::npos) - fwprintf(fp,L"\\draw[%s] (%.4g,%.4g) node[rotate=%.2g]{$%ls$};\n", ss.c_str(),x-dx,y-dy, -q.p, t.text.c_str()); + fwprintf(fp,L"\\draw[" PERCENT_S "] (%.4g,%.4g) node[rotate=%.2g]{$%ls$};\n", ss.c_str(),x-dx,y-dy, -q.p, t.text.c_str()); else - fwprintf(fp,L"\\draw[%s] (%.4g,%.4g) node[rotate=%.2g]{%ls};\n", ss.c_str(),x-dx,y-dy, -q.p, t.text.c_str()); + fwprintf(fp,L"\\draw[" PERCENT_S "] (%.4g,%.4g) node[rotate=%.2g]{%ls};\n", ss.c_str(),x-dx,y-dy, -q.p, t.text.c_str()); } } fwprintf(fp, L"\\end{tikzpicture}\n"); ================================================ FILE: ports/mathgl/fix-glut.patch ================================================ diff --git a/widgets/glut.cpp b/widgets/glut.cpp index eca65db..6a4641d 100644 --- a/widgets/glut.cpp +++ b/widgets/glut.cpp @@ -27,7 +27,7 @@ #if defined(_MSC_VER) || defined(__BORLANDC__) #include #include - #include "glut.h" + #include #else #include #include ================================================ FILE: ports/mathgl/fix-include-property.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d44125c..1ad17a1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -53,6 +53,9 @@ generate_export_header(mgl EXPORT_FILE_NAME ../include/mgl2/dllexport.h) target_link_libraries(mgl ${MGL_DEP_LIBS}) target_link_libraries(mgl-static ${MGL_DEP_LIBS}) +target_include_directories(mgl PUBLIC $) +target_include_directories(mgl-static PUBLIC $) + mgl_po_src(${mgl_src} ${mgl_hdr}) if(MGL_HAVE_MPI) ================================================ FILE: ports/mathgl/fix-mgllab.patch ================================================ diff --git a/mgllab/mgllab.cpp b/mgllab/mgllab.cpp index ef2d556..36fbfc4 100644 --- a/mgllab/mgllab.cpp +++ b/mgllab/mgllab.cpp @@ -344,7 +344,7 @@ Fl_Menu_Item menuitems[] = { void mem_upd_cb(Fl_Widget *, void *v) { ((ScriptWindow*)v)->mem_init(); } //----------------------------------------------------------------------------- -extern Fl_RGB_Image img_udav; +extern MGL_EXPORT Fl_RGB_Image img_udav; ScriptWindow *new_view() { Fl_Group *gg; ================================================ FILE: ports/mathgl/fix_link_gsl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1c931e2..4987f2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -485,25 +485,13 @@ endif(enable-openmp) if(enable-gsl) set(MGL_HAVE_GSL 1) - find_library(GSL_LIB gsl) - find_library(GSL_CBLAS_LIB gslcblas) - find_path(GSL_INCLUDE_DIR gsl/gsl_fft_complex.h) - if(NOT GSL_LIB OR NOT GSL_CBLAS_LIB OR NOT GSL_INCLUDE_DIR) - message(SEND_ERROR "${GSL_LIB}") - message(SEND_ERROR "${GSL_CBLAS_LIB}") - message(SEND_ERROR "${GSL_INCLUDE_DIR}") - message(SEND_ERROR "Couldn't find GSL libraries.") - else(NOT GSL_LIB OR NOT GSL_CBLAS_LIB OR NOT GSL_INCLUDE_DIR) - set(CMAKE_REQUIRED_INCLUDES ${GSL_INCLUDE_DIR}) - set(CMAKE_REQUIRED_LIBRARIES ${GSL_LIB} ${GSL_CBLAS_LIB}) - CHECK_CXX_SOURCE_COMPILES("#include - int main(){gsl_multifit_fdfsolver *s=0;gsl_matrix *J = 0; - gsl_multifit_fdfsolver_jac(s, J);}" MGL_HAVE_GSL2) - unset(CMAKE_REQUIRED_INCLUDES) - unset(CMAKE_REQUIRED_LIBRARIES) - endif(NOT GSL_LIB OR NOT GSL_CBLAS_LIB OR NOT GSL_INCLUDE_DIR) - set(MGL_DEP_LIBS ${GSL_LIB} ${GSL_CBLAS_LIB} ${MGL_DEP_LIBS}) - include_directories(${GSL_INCLUDE_DIR}) + find_package(GSL REQUIRED) + set(MGL_DEP_LIBS GSL::gsl GSL::gslcblas ${MGL_DEP_LIBS}) + set(CMAKE_REQUIRED_LIBRARIES GSL::gsl GSL::gslcblas) + CHECK_CXX_SOURCE_COMPILES("#include + int main(){gsl_multifit_fdfsolver *s=0;gsl_matrix *J = 0; + gsl_multifit_fdfsolver_jac(s, J);}" MGL_HAVE_GSL2) + unset(CMAKE_REQUIRED_LIBRARIES) else(enable-gsl) set(MGL_HAVE_GSL 0) endif(enable-gsl) ================================================ FILE: ports/mathgl/include_functional.patch ================================================ diff --git a/src/prc/writePRC.h b/src/prc/writePRC.h index d0b4e0e..3bc68ea 100644 --- a/src/prc/writePRC.h +++ b/src/prc/writePRC.h @@ -31,6 +31,7 @@ #include "PRC.h" #include #include +#include static const uint32_t m1=(uint32_t)-1; static const double pi=acos(-1.0); ================================================ FILE: ports/mathgl/linkage.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a316984..920a099 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,6 +71,14 @@ macro(mgl_po_src) set(po_files ${po_files} ${l_files} PARENT_SCOPE) endmacro(mgl_po_src) +if(BUILD_SHARED_LIBS) + set(link_type "") + set(excluded_type "-static") +else() + set(link_type "-static") + set(excluded_type "") +endif() + function(mgl_add_lib mgl_tmp_lib) if(${mgl_tmp_lib} MATCHES mgl) set(mgllib mgl) @@ -113,8 +121,10 @@ function(mgl_add_lib mgl_tmp_lib) set_target_properties(${mgllib}-static PROPERTIES OUTPUT_NAME "${mgllib}${mgl_lib_static}${mgl_lib_end}") endif(enable-mgl2) + target_compile_definitions(${mgllib} PRIVATE BUILDING_${mgllib}_LIB) + set_target_properties(${mgllib}${excluded_type} PROPERTIES EXCLUDE_FROM_ALL 1) install( - TARGETS ${mgllib} ${mgllib}-static + TARGETS ${mgllib}${link_type} EXPORT MathGLTargets RUNTIME DESTINATION ${MathGL_INSTALL_BIN_DIR} ARCHIVE DESTINATION ${MathGL_INSTALL_LIB_DIR} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 0263910..186d95b 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -4,7 +4,7 @@ file(COPY ${CMAKE_SOURCE_DIR}/examples/Equirectangular-projection.jpg DESTINATIO file(COPY ${CMAKE_SOURCE_DIR}/examples/samples.cpp DESTINATION ${CMAKE_BINARY_DIR}/examples) file(COPY ${CMAKE_SOURCE_DIR}/examples/wnd_samples.cpp DESTINATION ${CMAKE_BINARY_DIR}/examples) add_executable(mgl_example wnd_samples.cpp full_test.cpp samples.cpp) -target_link_libraries(mgl_example mgl-static ${getopt_lib-static}) +target_link_libraries(mgl_example mgl${link_type} ${getopt_lib-static}) if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_COMPILER_IS_GNUCXX AND enable-lcov) setup_target_for_coverage( NAME mgl_coverage @@ -16,25 +16,25 @@ endif(CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_COMPILER_IS_GNUCXX AND enable- if(MGL_HAVE_FLTK) include_directories(${FLTK_INCLUDE_DIR}) add_executable(mgl_fltk_example wnd_samples.cpp fltk_example.cpp) - target_link_libraries(mgl_fltk_example mgl-fltk) + target_link_libraries(mgl_fltk_example mgl-fltk${link_type}) endif(MGL_HAVE_FLTK) if(MGL_HAVE_GLUT) add_executable(mgl_glut_example wnd_samples.cpp glut_example.cpp) - target_link_libraries(mgl_glut_example mgl-glut) + target_link_libraries(mgl_glut_example mgl-glut${link_type}) endif(MGL_HAVE_GLUT) if(MGL_HAVE_WX) include(${wxWidgets_USE_FILE}) add_executable(mgl_wx_example wnd_samples.cpp wx_example.cpp) - target_link_libraries(mgl_wx_example mgl-wx) + target_link_libraries(mgl_wx_example mgl-wx${link_type}) endif(MGL_HAVE_WX) if(QT_ENABLED) add_executable(mgl_qt_example wnd_samples.cpp qt_example.cpp) if(enable-qt5) include(../scripts/qt5.cmake) - target_link_libraries(mgl_qt_example mgl-qt5) + target_link_libraries(mgl_qt_example mgl-qt5${link_type}) else(enable-qt5) include(../scripts/qt4.cmake) target_link_libraries(mgl_qt_example mgl-qt4) @@ -43,7 +43,7 @@ if(QT_ENABLED) if(MGL_HAVE_OPENGL) add_executable(mgl_qgl_example wnd_samples.cpp qgl_example.cpp) if(enable-qt5) - target_link_libraries(mgl_qgl_example mgl ${MGL_QT5_LIBS}) + target_link_libraries(mgl_qgl_example mgl${link_type} ${MGL_QT5_LIBS}) else(enable-qt5) target_link_libraries(mgl_qgl_example mgl ${MGL_QT4_LIBS}) endif(enable-qt5) @@ -52,11 +52,11 @@ endif(QT_ENABLED) if(MGL_HAVE_LTDL) add_library(mgl_module MODULE mgl_module.cpp) - target_link_libraries(mgl_module mgl) # for compatibility with win32 + target_link_libraries(mgl_module mgl${link_type}) # for compatibility with win32 endif(MGL_HAVE_LTDL) if(MGL_HAVE_MPI) add_executable(mgl_mpi_example mpi_test.cpp) - target_link_libraries(mgl_mpi_example mgl-mpi mgl ${MPI_LIBRARIES}) + target_link_libraries(mgl_mpi_example mgl-mpi${link_type} mgl${link_type} ${MPI_LIBRARIES}) target_include_directories(mgl_mpi_example SYSTEM PUBLIC ${MPI_CXX_INCLUDE_PATH}) endif(MGL_HAVE_MPI) diff --git a/include/mgl2/abstract.h b/include/mgl2/abstract.h index da27869..b1e6761 100644 --- a/include/mgl2/abstract.h +++ b/include/mgl2/abstract.h @@ -20,6 +20,15 @@ #ifndef _MGL_ABSTRACT_H_ #define _MGL_ABSTRACT_H_ +#include "mgl2/dllexport.h" +#if defined(BUILDING_mgl_LIB) || !defined mgl_EXPORTS +#define MGL_CORE_EXPORT MGL_EXPORT +#elif defined(_WIN32) && !defined(MGL_STATIC_DEFINE) +#define MGL_CORE_EXPORT __declspec(dllimport) +#else +#define MGL_CORE_EXPORT +#endif + #include "mgl2/define.h" //----------------------------------------------------------------------------- #ifdef __cplusplus @@ -209,11 +218,11 @@ cmdual MGL_EXPORT mgl_cexpr_eval_v(HAEX ex, mdual *vars); //----------------------------------------------------------------------------- /// Callback function for asking user a question. Result shouldn't exceed 1024. -extern MGL_EXPORT void (*mgl_ask_func)(const wchar_t *quest, wchar_t *res); +extern MGL_CORE_EXPORT void (*mgl_ask_func)(const wchar_t *quest, wchar_t *res); /// Console function for asking user a question. Result shouldn't exceed 1024. void MGL_EXPORT mgl_ask_gets(const wchar_t *quest, wchar_t *res); /// Callback function for displaying progress of something. -extern MGL_EXPORT void (*mgl_progress_func)(int value, int maximal, HMGL gr); +extern MGL_CORE_EXPORT void (*mgl_progress_func)(int value, int maximal, HMGL gr); /// Console function for displaying progress of something. void MGL_EXPORT mgl_progress_txt(int value, int maximal, HMGL gr); /// Display progress of something. @@ -404,7 +413,7 @@ struct MGL_EXPORT mglColorID char id; mglColor col; }; -MGL_EXPORT extern mglColorID mglColorIds[31]; +MGL_CORE_EXPORT extern mglColorID mglColorIds[31]; // MGL_EXPORT extern std::string mglGlobalMess; ///< Buffer for receiving global messages //----------------------------------------------------------------------------- #endif diff --git a/mgllab/CMakeLists.txt b/mgllab/CMakeLists.txt index 1649104..41c2e6a 100644 --- a/mgllab/CMakeLists.txt +++ b/mgllab/CMakeLists.txt @@ -38,7 +38,7 @@ if(MGL_HAVE_FLTK) set(mgllab_src ${mgllab_src} mgllab.rc) endif(WIN32) add_executable(mgllab ${mgllab_src} ${mgllab_hdr}) - target_link_libraries(mgllab mgl mgl-fltk ${FLTK_LIBRARIES}) + target_link_libraries(mgllab mgl${link_type} mgl-fltk${link_type} ${getopt_lib-static} ${FLTK_LIBRARIES}) install( TARGETS mgllab RUNTIME DESTINATION bin ) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 3e10fa7..0281859 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -1,11 +1,5 @@ add_executable(make_pas make_pas.cpp) -if(MSVC) -set(link_type -static) -else(MSVC) -set(link_type) -endif(MSVC) - add_executable(mgltask mgltask.cpp) target_link_libraries(mgltask mgl${link_type} ${getopt_lib-static}) install( @@ -23,7 +17,7 @@ install( ) add_executable(mgl.cgi mglcgi.cpp) -target_link_libraries(mgl.cgi mgl-static) +target_link_libraries(mgl.cgi mgl${link_type}) install( TARGETS mgl.cgi EXPORT MathGLTargets @@ -36,7 +30,7 @@ mgl_po_src(mglconv.cpp mglview.cpp mglcgi.cpp mgltask.cpp) if(MGL_HAVE_FLTK) add_definitions(-DUSE_FLTK) add_executable(mglview mglview.cpp) - target_link_libraries(mglview mgl-fltk ${getopt_lib-static} ${FLTK_LIBRARIES}) + target_link_libraries(mglview mgl-fltk${link_type} ${getopt_lib-static} ${FLTK_LIBRARIES}) install( TARGETS mglview EXPORT MathGLTargets ================================================ FILE: ports/mathgl/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO mathgl/mathgl REF "mathgl%208.0" FILENAME "mathgl-${VERSION}.tar.gz" SHA512 1ff3023f1bbd7bfd84202777a0166a8d4255a020a07f3650b9858929345bc8a2ceea4db155d2c93ba32b762d2304474276290a9edac99fda70fb4b5bc12982c2 PATCHES cmake-config.patch dependencies.patch linkage.patch enable-examples.patch fix-examples.patch fix-cross-builds.patch fix-format-specifiers.patch fix-glut.patch fix-mgllab.patch include_functional.patch fix-include-property.patch fix_link_gsl.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/addons/getopt") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES arma enable-arma examples enable-examples fltk enable-fltk gif enable-gif glut enable-glut gsl enable-gsl hdf5 enable-hdf5 jpeg enable-jpeg opengl enable-opengl png enable-png qt5 enable-qt5 wx enable-wx zlib enable-zlib ) if(VCPKG_TARGET_IS_OSX) list(APPEND FEATURE_OPTIONS -Denable-openmp=OFF -Denable-pthread=ON ) endif() if(VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DMAKE_BIN_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/make_bin${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DMathGL_INSTALL_CMAKE_DIR:STRING=share/mathgl2 -DCMAKE_CXX_STANDARD=11 # minimum for armadillo on osx -DCMAKE_DISABLE_FIND_PACKAGE_Intl=1 -DCMAKE_POLICY_DEFAULT_CMP0127=NEW # cmake_dependent_option condition syntax ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mgl2/dllexport.h" "#ifdef MGL_STATIC_DEFINE" "#if 1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mgl2/dllexport.h" "#ifdef MGL_STATIC_DEFINE" "#if 0") endif() # MathGL exports proper CMake config under the MathGL2Config.cmake filename, and # a find_path/find_library based package under the mathgl2-config.cmake filename. # The latter doesn't support multi-config or static linkage requirements, and # the variable names don't match the package names, i.e. it is unusable. if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE "${CURRENT_PACKAGES_DIR}/mathgl2-config.cmake") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/mathgl2-config.cmake") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") endif() vcpkg_cmake_config_fixup(PACKAGE_NAME mathgl2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/share/applications" "${CURRENT_PACKAGES_DIR}/share/mime" "${CURRENT_PACKAGES_DIR}/share/pixmaps" ) set(tools mglconv mgltask) if(NOT VCPKG_CROSSCOMPILING) list(APPEND tools make_bin) endif() if(enable-fltk) list(APPEND tools mglview mgllab) endif() if(enable-qt5) list(APPEND tools mglview udav) endif() list(REMOVE_DUPLICATES tools) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mgl2/config.h" "#define MGL_INSTALL_DIR \"${CURRENT_PACKAGES_DIR}\"" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mgl2/config.h" "#define MGL_FONT_PATH\t\"${CURRENT_PACKAGES_DIR}/fonts\"" "" IGNORE_UNCHANGED) # there is no fonts folder vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mgl2/config.h" "#define MGL_FONT_PATH\t\"${CURRENT_PACKAGES_DIR}/share/mathgl/fonts\"" "" IGNORE_UNCHANGED) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mathgl/usage ================================================ mathgl provides CMake targets: find_package(MathGL2 CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mgl,mgl-static>) ================================================ FILE: ports/mathgl/vcpkg.json ================================================ { "name": "mathgl", "version": "8.0.1", "port-version": 7, "description": "MathGL is a free library of fast C++ routines for the plotting of the data varied in one or more dimensions", "license": "GPL-3.0-only", "supports": "!uwp & !xbox & !android", "dependencies": [ "getopt", { "$comment": "Non-windows targets need host `make_bin`.", "name": "mathgl", "host": true, "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "jpeg", "opengl", "png", "zlib" ], "features": { "arma": { "description": "Armadillo support", "dependencies": [ "armadillo" ] }, "examples": { "description": "Build example programs (not installed)" }, "fltk": { "description": "fltk module", "dependencies": [ { "name": "fltk", "default-features": false } ] }, "gif": { "description": "gif module", "dependencies": [ "giflib" ] }, "glut": { "description": "glut module", "dependencies": [ { "name": "freeglut", "platform": "!osx" }, { "name": "mathgl", "default-features": false, "features": [ "opengl" ] } ] }, "gsl": { "description": "gsl module", "dependencies": [ "gsl" ] }, "hdf5": { "description": "hdf5 module", "dependencies": [ { "name": "hdf5", "default-features": false } ] }, "jpeg": { "description": "jpeg module", "dependencies": [ "libjpeg-turbo" ] }, "opengl": { "description": "opengl module", "dependencies": [ "opengl" ] }, "png": { "description": "png module", "dependencies": [ "libpng", { "name": "mathgl", "default-features": false, "features": [ "zlib" ] } ] }, "qt5": { "description": "qt5 module", "dependencies": [ { "name": "qt5-base", "default-features": false } ] }, "wx": { "description": "wx module", "dependencies": [ { "name": "wxwidgets", "default-features": false } ] }, "zlib": { "description": "zlib module", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/mathter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO petiaccja/Mathter REF "v${VERSION}" SHA512 f03578f816703c436baa052fe074a9c752b94b24ffece97a43148c9b8a680b4f89f513b79c58e9e68f9e76720d237b1eae91ea19405ff522a7e374282f4a7828 HEAD_REF master PATCHES support-xsimd-14.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMATHTER_BUILD_TESTS:BOOL=OFF -DMATHTER_BUILD_BENCHMARKS:BOOL=OFF -DMATHTER_VERSION:STRING=${VERSION} -DMATHTER_CMAKE_INSTALL_DIR:STRING=share/${PORT} -DMATHTER_ENABLE_SIMD:BOOL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE.md") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/mathter/support-xsimd-14.patch ================================================ diff --git a/MathterConfig.cmake.in b/MathterConfig.cmake.in index 1e294ee..ee0580c 100644 --- a/MathterConfig.cmake.in +++ b/MathterConfig.cmake.in @@ -7,7 +7,7 @@ set_and_check(Mathter_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") include(CMakeFindDependencyMacro) if (${MATHTER_ENABLE_SIMD}) - find_dependency(xsimd 13) + find_dependency(xsimd) endif() include("${CMAKE_CURRENT_LIST_DIR}/MathterTargets.cmake") diff --git a/include/Mathter/CMakeLists.txt b/include/Mathter/CMakeLists.txt index a34f8ff..7ee4d43 100644 --- a/include/Mathter/CMakeLists.txt +++ b/include/Mathter/CMakeLists.txt @@ -88,7 +88,7 @@ endif() if (${MATHTER_ENABLE_SIMD}) message("Vectorization: ON (using XSimd).") - find_package(xsimd 13 REQUIRED) + find_package(xsimd REQUIRED) target_link_libraries(Mathter INTERFACE xsimd) target_compile_definitions(Mathter INTERFACE MATHTER_ENABLE_SIMD=1) else() ================================================ FILE: ports/mathter/usage ================================================ mathter provides CMake targets: find_package(Mathter CONFIG REQUIRED) target_link_libraries(TestMathter PRIVATE Mathter::Mathter) ================================================ FILE: ports/mathter/vcpkg.json ================================================ { "name": "mathter", "version": "2.0.1", "description": "A flexible and fast matrix, transform, and geometry library.", "homepage": "https://github.com/petiaccja/Mathter", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "xsimd", "version>=": "13.0.0" } ] } ================================================ FILE: ports/matio/cmake-config.diff ================================================ diff --git a/cmake/src.cmake b/cmake/src.cmake index 8f60bcf..0dc5c53 100644 --- a/cmake/src.cmake +++ b/cmake/src.cmake @@ -60,8 +60,9 @@ endif() add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} - INTERFACE ${PROJECT_SOURCE_DIR}/src - PUBLIC ${PROJECT_BINARY_DIR}/src + INTERFACE $ + $ + PUBLIC $ ) if(STDINT_MSVC) target_include_directories(${PROJECT_NAME} PUBLIC ${PROJECT_SOURCE_DIR}/visual_studio) @@ -117,3 +118,23 @@ install(TARGETS ${PROJECT_NAME} EXPORT lib${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) +install(EXPORT lib${PROJECT_NAME} + FILE matio-targets.cmake + NAMESPACE ${PROJECT_NAME}:: + DESTINATION share/matio +) +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/matio-config.cmake" " +include(CMakeFindDependencyMacro) +if(\"${MATIO_WITH_HDF5}\" AND NOT TARGET MATIO::HDF5) + find_dependency(HDF5) + add_library(MATIO::HDF5 ALIAS HDF5::HDF5) +endif() +if(\"${MATIO_WITH_ZLIB}\" AND NOT TARGET MATIO::ZLIB) + find_dependency(ZLIB) + add_library(MATIO::ZLIB ALIAS ZLIB::ZLIB) +endif() +include(\"\${CMAKE_CURRENT_LIST_DIR}/matio-targets.cmake\") +") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/matio-config.cmake" + DESTINATION share/matio +) ================================================ FILE: ports/matio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tbeu/matio REF "v${VERSION}" SHA512 170a97fa639f16f1290c1fa7b15f4b10296db216a35d901ebd75141c462db9cf4243b4fffa6aa823eed0a33aa8c5a927f562487a1558867c53f11f343d673f10 HEAD_REF master PATCHES cmake-config.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES extended-sparse MATIO_EXTENDED_SPARSE mat73 MATIO_WITH_HDF5 mat73 MATIO_MAT73 mat73 VCPKG_LOCK_FIND_PACKAGE_HDF5 zlib MATIO_WITH_ZLIB zlib VCPKG_LOCK_FIND_PACKAGE_ZLIB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DMATIO_BUILD_TESTING=OFF -DMATIO_PIC=OFF # Flags provided by the toolchain -DMATIO_SHARED=${BUILD_SHARED} -DMATIO_USE_CONAN=OFF MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_HDF5 VCPKG_LOCK_FIND_PACKAGE_ZLIB ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() set(prefix "${CURRENT_INSTALLED_DIR}") set(exec_prefix [[${prefix}]]) set(libdir [[${prefix}/lib]]) set(includedir [[${prefix}/include]]) configure_file("${SOURCE_PATH}/matio.pc.in" "${SOURCE_PATH}/matio.pc" @ONLY) file(INSTALL "${SOURCE_PATH}/matio.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") if(NOT VCPKG_BUILD_TYPE) set(includedir [[${prefix}/../include]]) file(INSTALL "${SOURCE_PATH}/matio.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES matdump AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/matio/vcpkg.json ================================================ { "name": "matio", "version": "1.5.29", "description": "MATLAB MAT File I/O Library", "homepage": "https://github.com/tbeu/matio", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "mat73", "zlib" ], "features": { "extended-sparse": { "description": "Enable extended sparse matrix data types not supported in MATLAB" }, "mat73": { "description": "Enable support for version 7.3 MAT files using the HDF5 library", "dependencies": [ { "name": "hdf5", "default-features": false }, { "name": "matio", "default-features": false, "features": [ "zlib" ] } ] }, "zlib": { "description": "Check for zlib library", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/matplotlib-cpp/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lava/matplotlib-cpp REF 70d508fcb7febc66535ba923eac1b1a4e571e4d1 SHA512 4da452fc38b6c349a1b08b97775ef2d90354fabd3c8c3a0383f08609b22dea222b7f3e091efc1b833755f6b5c1e8564e675d2ed54cdc21f8b07b1b7bb44a82f4 HEAD_REF master ) file(COPY ${SOURCE_PATH}/matplotlibcpp.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/matplotlib-cpp/vcpkg.json ================================================ { "name": "matplotlib-cpp", "version-date": "2020-08-27", "port-version": 2, "description": "Extremely simple yet powerful header-only C++ plotting library built on the popular matplotlib", "homepage": "https://github.com/lava/matplotlib-cpp" } ================================================ FILE: ports/matplotplusplus/fix-dependencies.patch ================================================ diff --git a/Matplot++Config.cmake.in b/Matplot++Config.cmake.in index 5c402ad..1601015 100644 --- a/Matplot++Config.cmake.in +++ b/Matplot++Config.cmake.in @@ -1,4 +1,5 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) # How this Matplot++ installation was built set(MATPLOT_BUILT_SHARED "@MATPLOTPP_BUILD_SHARED_LIBS@") @@ -10,16 +11,44 @@ if (NOT CMAKE_CXX_COMPILER_ID STREQUAL MATPLOT_BUILT_CXX_COMPILER_ID) message(WARNING "This installation of Matplot++ was built with ${MATPLOT_BUILT_CXX_COMPILER_ID}.") endif() +if ("@MATPLOTPP_BUILD_EXPERIMENTAL_OPENGL_BACKEND@") + find_dependency(glad CONFIG) + find_dependency(glfw3 CONFIG) +endif() +find_dependency(nodesoup CONFIG ) +if ("@WITH_JPEG@") +find_dependency(JPEG) +endif() + +if ("@WITH_TIFF@") +find_dependency(TIFF) +endif() + +if ("@WITH_ZLIB@") +find_dependency(ZLIB) +find_dependency(libpng CONFIG) +endif() + +if ("@WITH_LAPACK@") +find_dependency(LAPACK) +endif() + +if ("@WITH_BLAS@") +find_dependency(BLAS) +endif() + +if ("@WITH_FFTW3@") +find_dependency(FFTW3 CONFIG) +endif() + +if ("@WITH_OPENCV@") +find_dependency(OpenCV CONFIG) +endif() + # Find dependencies if(NOT ${MATPLOT_BUILT_SHARED}) - include(CMakeFindDependencyMacro) list(APPEND CMAKE_MODULE_PATH ${MATPLOT_CONFIG_INSTALL_DIR}) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") - # OpenGL backend - if (@MATPLOTPP_BUILD_EXPERIMENTAL_OPENGL_BACKEND@) - find_dependency(glad) - find_dependency(glfw3) - endif() list(POP_BACK CMAKE_MODULE_PATH) endif() diff --git a/source/3rd_party/CMakeLists.txt b/source/3rd_party/CMakeLists.txt index b5656e1..7c2d1f3 100644 --- a/source/3rd_party/CMakeLists.txt +++ b/source/3rd_party/CMakeLists.txt @@ -1,6 +1,7 @@ ####################################################### ### NodeSoup ### ####################################################### +if(0) if(WITH_SYSTEM_NODESOUP) find_path(NODESOUP_INCLUDE_DIR nodesoup.hpp REQUIRED) find_library(NODESOUP_LIB nodesoup REQUIRED) @@ -46,7 +47,7 @@ if(MASTER_PROJECT AND NOT BUILD_SHARED_LIBS) EXPORT Matplot++Targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/Matplot++) endif() - +endif() ####################################################### ### CImg ### @@ -69,57 +70,52 @@ find_package(PkgConfig) # Lots of optional packages are not a good idea in general. # It makes the library much less "packagable" (https://youtu.be/sBP17HQAQjk) # and much more difficult to make sure it works on multiple OSs -find_package(JPEG) -if(JPEG_FOUND) +if(WITH_JPEG) + find_package(JPEG REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_jpeg) target_link_libraries(cimg INTERFACE ${JPEG_LIBRARIES}) target_include_directories(cimg INTERFACE ${JPEG_INCLUDE_DIRS}) endif() -find_package(TIFF) -if(TIFF_FOUND) +if(WITH_TIFF) + find_package(TIFF REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_tiff) target_link_libraries(cimg INTERFACE ${TIFF_LIBRARIES}) target_include_directories(cimg INTERFACE ${TIFF_INCLUDE_DIRS}) endif() -find_package(ZLIB) -if(ZLIB_FOUND) - find_package(PNG) - if (PNG_FOUND) - target_compile_definitions(cimg INTERFACE cimg_use_zlib cimg_use_png) - target_include_directories(cimg INTERFACE ${ZLIB_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS}) - target_link_libraries(cimg INTERFACE ${ZLIB_LIBRARIES} ${PNG_LIBRARIES}) - endif () +if(WITH_ZLIB) + find_package(ZLIB REQUIRED) + find_package(libpng CONFIG REQUIRED) + target_compile_definitions(cimg INTERFACE cimg_use_zlib cimg_use_png) + target_link_libraries(cimg INTERFACE ZLIB::ZLIB png) endif() -find_package(LAPACK) -if(LAPACK_FOUND) +if(WITH_LAPACK) + find_package(LAPACK REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_lapack) target_link_libraries(cimg INTERFACE ${LAPACK_LIBRARIES}) target_include_directories(cimg INTERFACE ${LAPACK_INCLUDE_DIRS}) endif() -find_package(BLAS) -if(BLAS_FOUND) +if(WITH_BLAS) + find_package(BLAS REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_blas) target_link_libraries(cimg INTERFACE ${BLAS_LIBRARIES}) target_include_directories(cimg INTERFACE ${BLAS_INCLUDE_DIRS}) endif() -find_package(FFTW) -if(FFTW_FOUND) +if(WITH_FFTW3) + find_package(FFTW3 CONFIG REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_fftw3) - target_link_libraries(cimg INTERFACE ${FFTW_LIBRARIES}) - target_include_directories(cimg INTERFACE ${FFTW_INCLUDE_DIRS}) + target_link_libraries(cimg INTERFACE FFTW3::fftw3) endif() if (CMAKE_MODULE_PATH) - find_package(OpenCV QUIET) - if (OpenCV_FOUND) + if (WITH_OPENCV) + find_package(OpenCV CONFIG REQUIRED) target_compile_definitions(cimg INTERFACE cimg_use_opencv) - target_link_libraries(cimg INTERFACE ${OpenCV_LIBRARIES}) - target_include_directories(cimg INTERFACE ${OpenCV_INCLUDE_DIRS}) + target_link_libraries(cimg INTERFACE opencv_core) endif() else() message("No CMAKE_MODULE_PATH path for OpenCV configured") diff --git a/source/matplot/CMakeLists.txt b/source/matplot/CMakeLists.txt index a0428ac..b6abc8e 100644 --- a/source/matplot/CMakeLists.txt +++ b/source/matplot/CMakeLists.txt @@ -112,7 +112,8 @@ target_include_directories(matplot install(FILES ${CMAKE_CURRENT_BINARY_DIR}/matplot/detail/exports.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/matplot/detail) # Dependencies -target_link_libraries_system(matplot PRIVATE cimg nodesoup) +find_package(nodesoup CONFIG REQUIRED) +target_link_libraries_system(matplot PRIVATE cimg nodesoup::nodesoup) # Required compiler features required # https://cmake.org/cmake/help/v3.14/manual/cmake-compile-features.7.html#requiring-language-standards @@ -215,7 +216,7 @@ if (MATPLOTPP_BUILD_EXPERIMENTAL_OPENGL_BACKEND) find_package(OpenGL) # https://github.com/Dav1dde/glad - find_package(glad CONFIG) + find_package(GLAD NAMES glad CONFIG REQUIRED) if (NOT glad_FOUND) find_package(GLAD QUIET) endif() @@ -238,7 +239,7 @@ if (MATPLOTPP_BUILD_EXPERIMENTAL_OPENGL_BACKEND) endif() # https://github.com/glfw/glfw - find_package(glfw3 QUIET) + find_package(GLFW3 NAMES glfw3 CONFIG REQUIRED) if ((NOT glfw3_FOUND AND NOT GLFW3_FOUND) OR NOT TARGET glfw) # Use CPM only if not found, to avoid ODR violations # find_package(glfw3 REQUIRE) would suffice if it worked well ================================================ FILE: ports/matplotplusplus/portfile.cmake ================================================ message(STATUS " ${PORT}'s gnuplot backend currently requires Gnuplot 5.2.6+. Windows users may get a pre-built binary installer from http://www.gnuplot.info/download.html. Linux and MacOS users may install it from the system package manager. Please visit https://alandefreitas.github.io/matplotplusplus/ for more information." ) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alandefreitas/matplotplusplus REF "v${VERSION}" SHA512 8ecb13fa206ff6762dec74c4de0778bf275e1ebf11ec1b48e8c0e544cf2990220e1be2b3bc9c658f06cb6714c9cc103fa81f10c079a32128218ebdaf265514d5 HEAD_REF master PATCHES fix-dependencies.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opengl MATPLOTPP_BUILD_EXPERIMENTAL_OPENGL_BACKEND jpeg WITH_JPEG tiff WITH_TIFF zlib WITH_ZLIB lapack WITH_LAPACK blas WITH_BLAS fftw3 WITH_FFTW3 opencv WITH_OPENCV ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DMATPLOTPP_BUILD_EXAMPLES=OFF -DMATPLOTPP_BUILD_TESTS=OFF -DMATPLOTPP_BUILD_INSTALLER=ON -DMATPLOTPP_BUILD_PACKAGE=OFF -DMATPLOTPP_BUILD_WITH_PEDANTIC_WARNINGS=OFF -DWITH_SYSTEM_CIMG=ON -DMATPLOTPP_BUILD_HIGH_RESOLUTION_WORLD_MAP=${BUILD_WORLD_MAP} -DMATPLOTPP_BUILD_WITH_SANITIZERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME matplot++ CONFIG_PATH lib/cmake/Matplot++) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/matplotplusplus/") ================================================ FILE: ports/matplotplusplus/usage ================================================ The package matplotplusplus provides CMake targets: find_package(Matplot++ CONFIG REQUIRED) target_link_libraries(main PRIVATE Matplot++::cimg Matplot++::matplot) ================================================ FILE: ports/matplotplusplus/vcpkg.json ================================================ { "name": "matplotplusplus", "version": "1.2.1", "description": "A C++ graphics library for data visualization", "homepage": "https://alandefreitas.github.io/matplotplusplus/", "license": "MIT", "supports": "!uwp & !(windows & arm)", "dependencies": [ "cimg", "nodesoup", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "blas": { "description": "BLAS support for Matplot++", "dependencies": [ "blas" ] }, "fftw": { "description": "fftw3 support for Matplot++", "dependencies": [ "fftw3" ] }, "jpeg": { "description": "JPEG support for Matplot++", "dependencies": [ "libjpeg-turbo" ] }, "lapack": { "description": "LAPACK support for Matplot++", "dependencies": [ "lapack" ] }, "opencv": { "description": "opencv support for Matplot++", "dependencies": [ "opencv" ] }, "opengl": { "description": "OpenGL backend for Matplot++", "dependencies": [ "glad", "glfw3", "opengl" ] }, "zlib": { "description": "ZLIB and libpng support for Matplot++", "dependencies": [ "libpng", "zlib" ] } } } ================================================ FILE: ports/matroska/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Matroska-Org/libmatroska REF release-1.7.1 SHA512 abb4fb4b527266944b1a59516866462498675c5e71bb679758894dff6156169d7132dddaa2e2ef6187a6dbce4a4aa377eeb75dd869268fd44933c769b34be5b9 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Matroska) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.LGPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/matroska/vcpkg.json ================================================ { "name": "matroska", "version": "1.7.1", "port-version": 3, "description": "a C++ library to parse Matroska files (.mkv and .mka)", "homepage": "https://github.com/Matroska-Org/libmatroska", "dependencies": [ { "name": "ebml", "version>=": "1.4.4" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mbedtls/enable-pthread.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2eba16d..a46cb3d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,7 +123,17 @@ endif() # We now potentially need to link all executables against PThreads, if available set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(THREADS_PREFER_PTHREAD_FLAG TRUE) -find_package(Threads) +if(NOT LINK_WITH_PTHREAD) + set(CMAKE_DISABLE_FIND_PACKAGE_Threads ON) +elseif(WIN32 AND NOT MINGW) + find_package(PThreads4W REQUIRED) + set(CMAKE_THREAD_LIBS_INIT PThreads4W::PThreads4W) + add_definitions(-DLINK_WITH_PTHREAD) +else() + find_package(Threads REQUIRED) + set(CMAKE_THREAD_LIBS_INIT Threads::Threads) + add_definitions(-DLINK_WITH_PTHREAD) +endif() # If this is the root project add longer list of available CMAKE_BUILD_TYPE values if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) diff --git a/cmake/MbedTLSConfig.cmake.in b/cmake/MbedTLSConfig.cmake.in index b65bbab..5919c37 100644 --- a/cmake/MbedTLSConfig.cmake.in +++ b/cmake/MbedTLSConfig.cmake.in @@ -1,3 +1,11 @@ @PACKAGE_INIT@ +if("@LINK_WITH_PTHREAD@") + include(CMakeFindDependencyMacro) + if(WIN32 AND NOT MINGW) + find_dependency(PThreads4W) + else() + find_dependency(Threads) + endif() +endif() include("${CMAKE_CURRENT_LIST_DIR}/MbedTLSTargets.cmake") diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 3592141..174cabc 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2091,6 +2091,10 @@ * Uncomment this to enable pthread mutexes. */ //#define MBEDTLS_THREADING_PTHREAD +#ifdef LINK_WITH_PTHREAD +#define MBEDTLS_THREADING_C +#define MBEDTLS_THREADING_PTHREAD +#endif /** * \def MBEDTLS_USE_PSA_CRYPTO ================================================ FILE: ports/mbedtls/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # https://github.com/Mbed-TLS/mbedtls/issues/470 endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Mbed-TLS/mbedtls REF "v${VERSION}" SHA512 d7a1e0098fed7b000ac2e4de31d43f427e8a046aeace91719f58222e1289470e15af5ed2a5390cf3693cf93a1efd79f34de9a6a960dc63cc0fd135072809e6e4 HEAD_REF development PATCHES enable-pthread.patch ) file(WRITE "${SOURCE_PATH}/framework/CMakeLists.txt" "# empty placeholder") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pthreads LINK_WITH_PTHREAD ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" USE_SHARED_MBEDTLS_LIBRARY) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" USE_STATIC_MBEDTLS_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF -DMBEDTLS_FATAL_WARNINGS=FALSE -DUSE_SHARED_MBEDTLS_LIBRARY=${USE_SHARED_MBEDTLS_LIBRARY} -DUSE_STATIC_MBEDTLS_LIBRARY=${USE_STATIC_MBEDTLS_LIBRARY} OPTIONS_DEBUG -DINSTALL_MBEDTLS_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/MbedTLS") if(LINK_WITH_PTHREAD) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mbedtls/mbedtls_config.h" "#ifdef LINK_WITH_PTHREAD" "#if 1") file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mbedtls/usage ================================================ mbedtls provides CMake targets: find_package(MbedTLS CONFIG REQUIRED) # everything target_link_libraries(main PRIVATE MbedTLS::mbedtls) # X.509 certificate manipulation target_link_libraries(main PRIVATE MbedTLS::mbedx509) # cryptographic primitives target_link_libraries(main PRIVATE MbedTLS::mbedcrypto) mbedtls provides pkg-config modules: # everything mbedtls # X.509 certificate manipulation mbedx509 # cryptographic primitives mbedcrypto ================================================ FILE: ports/mbedtls/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(WIN32 AND NOT MINGW) find_package(PThreads4W) string(FIND "${MBEDTLS_CRYPTO_LIBRARY}" "${PThreads4W_LIBRARY}" pthreads_in_mbedtls) if(pthreads_in_mbedtls EQUAL "-1") list(APPEND MBEDTLS_CRYPTO_LIBRARY ${PThreads4W_LIBRARY}) endif() string(FIND "${MBEDTLS_LIBRARIES}" "${PThreads4W_LIBRARY}" pthreads_in_mbedtls) if(pthreads_in_mbedtls EQUAL "-1") list(APPEND MBEDTLS_LIBRARIES ${PThreads4W_LIBRARY}) endif() else() set(THREADS_PREFER_PTHREAD_FLAG 1) find_package(Threads) string(FIND "${MBEDTLS_CRYPTO_LIBRARY}" "${CMAKE_THREAD_LIBS_INIT}" pthreads_in_mbedtls) if(pthreads_in_mbedtls EQUAL "-1") list(APPEND MBEDTLS_CRYPTO_LIBRARY ${CMAKE_THREAD_LIBS_INIT}) endif() string(FIND "${MBEDTLS_LIBRARIES}" "${CMAKE_THREAD_LIBS_INIT}" pthreads_in_mbedtls) if(pthreads_in_mbedtls EQUAL "-1") list(APPEND MBEDTLS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) endif() endif() ================================================ FILE: ports/mbedtls/vcpkg.json ================================================ { "name": "mbedtls", "version": "3.6.5", "description": "An open source, portable, easy to use, readable and flexible SSL library", "homepage": "https://www.trustedfirmware.org/projects/mbed-tls/", "license": "Apache-2.0 OR GPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pthreads": { "description": "Multi-threading support", "dependencies": [ { "name": "pthreads", "platform": "windows" } ] } } } ================================================ FILE: ports/mcap/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO foxglove/mcap REF "releases/cpp/v${VERSION}" SHA512 5f0c87174c940277212f8e4935f8f60faab37a3679d685a7c7a5b90579733970277f07c69326e1140e362f7d0187f43b2a920ed19e33ff99a1a300e22cf6eafe HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/cpp/mcap/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) # Set compile definitions, dependencies, and link libraries based on the configured features set(MCAP_COMPILE_DEFINITIONS "") set(MCAP_FIND_DEPENDENCIES "") set(MCAP_LINK_LIBRARIES "") if("lz4" IN_LIST FEATURES) list(APPEND MCAP_LINK_LIBRARIES lz4::lz4) list(APPEND MCAP_FIND_DEPENDENCIES lz4) else() list(APPEND MCAP_COMPILE_DEFINITIONS MCAP_COMPRESSION_NO_LZ4) endif() if("zstd" IN_LIST FEATURES) list(APPEND MCAP_LINK_LIBRARIES zstd::libzstd) list(APPEND MCAP_FIND_DEPENDENCIES zstd) else() list(APPEND MCAP_COMPILE_DEFINITIONS MCAP_COMPRESSION_NO_ZSTD) endif() list(JOIN MCAP_COMPILE_DEFINITIONS " " MCAP_COMPILE_DEFINITIONS) list(JOIN MCAP_FIND_DEPENDENCIES " " MCAP_FIND_DEPENDENCIES) list(JOIN MCAP_LINK_LIBRARIES " " MCAP_LINK_LIBRARIES) set(_LIB_NAME unofficial-mcap) set(_LIB_TARGET unofficial::mcap::mcap) set(_PACKAGE_CONFIG_DIR "${CURRENT_PACKAGES_DIR}/share/${_LIB_NAME}") configure_file( ${CMAKE_CURRENT_LIST_DIR}/${_LIB_NAME}Config.cmake.in ${_PACKAGE_CONFIG_DIR}/${_LIB_NAME}Config.cmake @ONLY ) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/cpp/mcap/LICENSE" ) ================================================ FILE: ports/mcap/unofficial-mcapConfig.cmake.in ================================================ # Template for unofficial-mcapConfig.cmake include(CMakeFindDependencyMacro) foreach(_DEPENDENCY IN ITEMS @MCAP_FIND_DEPENDENCIES@) find_dependency(${_DEPENDENCY}) endforeach() # Protect against multiple inclusion if (TARGET @_LIB_TARGET@) return () endif () # Compute the installation prefix relative to this file, which is located in ${_IMPORT_PREFIX}/share/@_LIB_NAME@ get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) # Create imported mcap target add_library(@_LIB_TARGET@ INTERFACE IMPORTED) target_include_directories(@_LIB_TARGET@ INTERFACE "${_IMPORT_PREFIX}/include") if (NOT "@MCAP_LINK_LIBRARIES@" STREQUAL "") target_link_libraries(@_LIB_TARGET@ INTERFACE @MCAP_LINK_LIBRARIES@) endif () if (NOT "@MCAP_COMPILE_DEFINITIONS@" STREQUAL "") target_compile_definitions(@_LIB_TARGET@ INTERFACE @MCAP_COMPILE_DEFINITIONS@) endif () ================================================ FILE: ports/mcap/vcpkg.json ================================================ { "name": "mcap", "version": "2.1.3", "description": "MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.", "homepage": "https://mcap.dev/", "documentation": "https://mcap.dev/", "license": "MIT", "features": { "lz4": { "description": "Enable LZ4 compression support.", "dependencies": [ "lz4" ] }, "zstd": { "description": "Enable ZSTD compression support.", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/mchehab-zbar/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mchehab/zbar REF "${VERSION}" SHA512 2dd607afbb1e52346bfb740f916c8616112d14153f071f82458b7c653f647b332290a5089543abebfe1c7679eae98b349a84777185d61cfb9ff275bfecc6e08f HEAD_REF master PATCHES windows.patch x64.patch ) vcpkg_list(SET options) if("nls" IN_LIST FEATURES) vcpkg_list(APPEND options "--enable-nls") else() vcpkg_list(APPEND options "--disable-nls") set(ENV{AUTOPOINT} true) # true, the program set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_HOST_INSTALLED_DIR}/share/gettext/aclocal/\"") # Simulate the relevant effects of (interactive) `gettextize`. file(TOUCH "${SOURCE_PATH}/po/Makefile.in.in") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG ADD_BIN_TO_PATH # checking for working iconv OPTIONS ${options} --without-dbus --without-gtk --without-imagemagick --without-java --without-jpeg --without-python --without-qt --disable-video --without-xv OPTIONS_RELEASE --disable-assert ) vcpkg_install_make() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/tools" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mchehab-zbar/vcpkg.json ================================================ { "name": "mchehab-zbar", "version": "0.23.93", "description": "ZBar is an open source software suite for reading bar codes from various sources, including webcams. This fork is actively maintained.", "homepage": "https://github.com/mchehab/zbar", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "gettext", "host": true }, "libiconv" ], "features": { "nls": { "description": "Native Language Support", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, "gettext-libintl" ] } } } ================================================ FILE: ports/mchehab-zbar/windows.patch ================================================ diff --git a/configure.ac b/configure.ac index f0f9723..9e79db9 100644 --- a/configure.ac +++ b/configure.ac @@ -55,7 +55,7 @@ AC_DEFINE_UNQUOTED([LIB_VERSION_REVISION], [Library revision]) AM_CPPFLAGS="-I\$(top_srcdir)/include" -AM_CFLAGS="-Wall -Wno-parentheses" +AM_CFLAGS="-Wall" AM_CXXFLAGS="$AM_CFLAGS" AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_CFLAGS]) diff --git a/zbar/processor.h b/zbar/processor.h index a8289e0..8a7e33c 100644 --- a/zbar/processor.h +++ b/zbar/processor.h @@ -29,7 +29,9 @@ #endif #include #include +#ifndef WIN32 #include +#endif #include #include "error.h" ================================================ FILE: ports/mchehab-zbar/x64.patch ================================================ diff --git a/zbar/decoder.c b/zbar/decoder.c index 6c41b7f..cbf0bb7 100644 --- a/zbar/decoder.c +++ b/zbar/decoder.c @@ -25,6 +25,7 @@ #include /* snprintf */ #include /* malloc, calloc, free */ #include /* memset, strlen */ +#include /* offsetof */ #include @@ -113,7 +114,7 @@ void zbar_decoder_destroy(zbar_decoder_t *dcode) void zbar_decoder_reset(zbar_decoder_t *dcode) { - memset(dcode, 0, (long)&dcode->buf_alloc - (long)dcode); + memset(dcode, 0, offsetof(zbar_decoder_t, buf_alloc)); #if ENABLE_EAN == 1 ean_reset(&dcode->ean); #endif ================================================ FILE: ports/mcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeroc-ice/mcpp REF "v${VERSION}" SHA512 06a2ccf461c09aec6916e623a1ae59da7db1509a0ba5ceedcfeec2d32a71986bd8ce249cbf99232eaa8f347ee035dd5da5868e7d96ab7ae6270ebdac1b06b498 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file( INSTALL "${SOURCE_PATH}/mcpp_lib.h" "${SOURCE_PATH}/mcpp_out.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mcpp/vcpkg.json ================================================ { "name": "mcpp", "version": "2.7.2.20", "description": "Fork of mcpp, a C/C++ preprocessor", "homepage": "https://github.com/zeroc-ice/mcpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/md4c/cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index aec8293..600d51b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,16 +51,6 @@ elseif(MSVC) # Disable warnings about the so-called unsecured functions: add_definitions(/D_CRT_SECURE_NO_WARNINGS) add_compile_options(/W3) - - # Specify proper C runtime library: - string(REGEX REPLACE "/M[DT]d?" "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}") - string(REGEX REPLACE "/M[DT]d?" "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}") - string(REGEX REPLACE "/M[DT]d?" "" CMAKE_C_FLAGS_RELWITHDEBINFO "{$CMAKE_C_FLAGS_RELWITHDEBINFO}") - string(REGEX REPLACE "/M[DT]d?" "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}") - set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /MT") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} /MT") - set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_RELEASE} /MT") endif() include(GNUInstallDirs) ================================================ FILE: ports/md4c/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mity/md4c REF "release-${VERSION}" SHA512 30607ba39d6c59329f5a56a90cd816ff60b82ea752ac2b9df356d756529cfc49170019fae5df32fa94afc0e2a186c66eaf56fa6373d18436c06ace670675ba85 HEAD_REF master PATCHES "cmake.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_MD2HTML_EXECUTABLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/md4c") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/md4c/usage ================================================ md4c provides CMake targets: find_package(md4c CONFIG REQUIRED) target_link_libraries(main PRIVATE md4c::md4c) ================================================ FILE: ports/md4c/vcpkg.json ================================================ { "name": "md4c", "version": "0.5.2", "description": "MD4C is a C library providing a Markdown parser.", "homepage": "https://github.com/mity/md4c", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mdl-sdk/fix_find_materialx.diff ================================================ diff --git a/cmake/find/find_materialx.cmake b/cmake/find/find_materialx.cmake --- a/cmake/find/find_materialx.cmake +++ b/cmake/find/find_materialx.cmake @@ -29,6 +29,15 @@ set(_MX_LIBS ${_MX_LIBS} PARENT_SCOPE) endfunction() +# Try IMPLIB first for DLLs on DLL platforms. Otherwise, use LOCATION. +function(GET_IMPLIB_OR_LOCATION_PROPERTY LIB_NAME _CONFIG) + get_target_property(_TMP ${LIB_NAME} IMPORTED_IMPLIB_${_CONFIG}) + if(NOT _TMP) + get_target_property(_TMP ${LIB_NAME} IMPORTED_LOCATION_${_CONFIG}) + endif() + set(${LIB_NAME}_${_CONFIG} ${_TMP} PARENT_SCOPE) +endfunction() + function(FIND_MATERIALX) set(MATERIALX_DIR "NOT-SPECIFIED" CACHE PATH "Path to a downloaded and extracted MaterialX pre-built package.") @@ -66,14 +75,15 @@ # collect information required for the build from imported targets get_target_property(_MX_INCLUDE MaterialXCore INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(MaterialXCore_DEBUG MaterialXCore IMPORTED_LOCATION_DEBUG) - get_target_property(MaterialXCore_RELEASE MaterialXCore IMPORTED_LOCATION_RELEASE) - get_target_property(MaterialXFormat_DEBUG MaterialXFormat IMPORTED_LOCATION_DEBUG) - get_target_property(MaterialXFormat_RELEASE MaterialXFormat IMPORTED_LOCATION_RELEASE) - get_target_property(MaterialXGenShader_DEBUG MaterialXGenShader IMPORTED_LOCATION_DEBUG) - get_target_property(MaterialXGenShader_RELEASE MaterialXGenShader IMPORTED_LOCATION_RELEASE) - get_target_property(MaterialXGenMdl_DEBUG MaterialXGenMdl IMPORTED_LOCATION_DEBUG) - get_target_property(MaterialXGenMdl_RELEASE MaterialXGenMdl IMPORTED_LOCATION_RELEASE) + # need CMake >= 3.28.0 on non-DLL platforms + get_implib_or_location_property(MaterialXCore DEBUG) + get_implib_or_location_property(MaterialXCore RELEASE) + get_implib_or_location_property(MaterialXFormat DEBUG) + get_implib_or_location_property(MaterialXFormat RELEASE) + get_implib_or_location_property(MaterialXGenShader DEBUG) + get_implib_or_location_property(MaterialXGenShader RELEASE) + get_implib_or_location_property(MaterialXGenMdl DEBUG) + get_implib_or_location_property(MaterialXGenMdl RELEASE) set(_MX_LIBS $,${MaterialXGenMdl_DEBUG},${MaterialXGenMdl_RELEASE}> ================================================ FILE: ports/mdl-sdk/portfile.cmake ================================================ # Clang # # The MDL SDK includes a vendored copy of a specific LLVM version, to generate # JIT code at runtime for various backends. This code needs to be linked with # parts that are precompiled at build time. This precompilation step needs a # matching clang compiler. # # This port provides CMake instructions to fetch clang and use it to build this # port. It will not be installed, and is not usable by other ports. # There are no MacOS binaries for 12.0.1, use 12.0.0 instead. if(VCPKG_HOST_IS_OSX) set(LLVM_VERSION 12.0.0) else() set(LLVM_VERSION 12.0.1) endif() set(LLVM_BASE_URL "https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VERSION}") if(VCPKG_HOST_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) set(LLVM_FILENAME "LLVM-${LLVM_VERSION}-win64.exe") set(LLVM_HASH 733bfb425af2e7e4f187fca6d9cfdf7ecc9aa846ef2c227d57fad7cc67d114bde27e49385df362cb399c4aa0e2d481890e2148756a18925b0229ad516a9f8bb4) elseif(VCPKG_HOST_IS_LINUX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) set(LLVM_FILENAME "clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-16.04.tar.xz") set(LLVM_HASH 6f1eb4ef9885ea7ce56581000e42595f72be37901c213377c8716d160b84441fd017a0a062b188e574a6873b320d3bf2c850beb9822cf4c0025c543effb37a00) elseif(VCPKG_HOST_IS_LINUX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) set(LLVM_FILENAME "clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz") set(LLVM_HASH 7a979641def7d575bf5c9dbc0343212b31d840e65b06b89fcdf37e7835c56ba8d695a6508f13516eecc3a0ea87409e548993c64265a700e83789c9c5c8d1f88b) elseif(VCPKG_HOST_IS_OSX AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) set(LLVM_FILENAME "clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz") set(LLVM_HASH 2e74791425c12dacc201c5cfc38be7abe0ac670ddb079e75d477bf3f78d1dad442d1b4c819d67e0ba51c4474d8b7a726d4c50b7ad69d536e30edc38d1dce78b8) else() message(FATAL_ERROR "Pre-built binaries for Clang ${LLVM_VERSION} not available, aborting install.") endif() vcpkg_download_distfile(LLVM_ARCHIVE_PATH URLS "${LLVM_BASE_URL}/${LLVM_FILENAME}" SHA512 ${LLVM_HASH} FILENAME "${LLVM_FILENAME}" ) if(VCPKG_TARGET_IS_WINDOWS) get_filename_component(LLVM_BASENAME "${LLVM_FILENAME}" NAME_WE) set(LLVM_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/${LLVM_BASENAME}") file(REMOVE_RECURSE "${LLVM_DIRECTORY}") file(MAKE_DIRECTORY "${LLVM_DIRECTORY}") vcpkg_find_acquire_program(7Z) vcpkg_execute_in_download_mode( COMMAND ${7Z} x "${LLVM_ARCHIVE_PATH}" "-o${LLVM_DIRECTORY}" -y -bso0 -bsp0 WORKING_DIRECTORY "${LLVM_DIRECTORY}" ) else() vcpkg_extract_source_archive(LLVM_DIRECTORY ARCHIVE "${LLVM_ARCHIVE_PATH}" SOURCE_BASE "clang+llvm-${LLVM_VERSION}" ) endif() set(LLVM_CLANG "${LLVM_DIRECTORY}/bin/clang${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(NOT EXISTS "${LLVM_CLANG}") message(FATAL_ERROR "Missing required build tool clang ${LLVM_VERSION}, please check your setup.") endif() # MDL-SDK # # Note about "supports:" in vcpkg.json: # !x86, !(windows & (arm | uwp)), !android: not supported by the MDL SDK # !(osx & arm): no precompiled clang 12 binaries available # Required for plugins. set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # The libraries are supposed to be loaded at runtime, not linked. set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIA/MDL-SDK REF 2025.0.5 SHA512 aa7c41c51195630c0cd7c119d448c1aea69b5110fd4f065617d7452061c21b341831d3afc21d4d03656633b495ec213fbf86730b1815715792dfba264ec3cf1d HEAD_REF master PATCHES fix_find_materialx.diff ) vcpkg_find_acquire_program(PYTHON3) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dds MDL_BUILD_DDS_PLUGIN df-vulkan MDL_BUILD_SDK_EXAMPLES df-vulkan MDL_ENABLE_VULKAN_EXAMPLES materialx MDL_ENABLE_MATERIALX openimageio MDL_BUILD_OPENIMAGEIO_PLUGIN ) if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "static") set(MSVC_RUNTIME_OPTION "-DMDL_MSVC_DYNAMIC_RUNTIME:BOOL=OFF") else() set(MSVC_RUNTIME_OPTION "-DMDL_MSVC_DYNAMIC_RUNTIME:BOOL=ON") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMDL_LOG_DEPENDENCIES:BOOL=ON -DMDL_BUILD_SDK:BOOL=ON -DMDL_BUILD_CORE_EXAMPLES:BOOL=OFF -DMDL_BUILD_DOCUMENTATION:BOOL=OFF -DMDL_BUILD_ARNOLD_PLUGIN:BOOL=OFF -DMDL_ENABLE_CUDA_EXAMPLES:BOOL=OFF -DMDL_ENABLE_D3D12_EXAMPLES:BOOL=OFF -DMDL_ENABLE_OPENGL_EXAMPLES:BOOL=OFF -DMDL_ENABLE_QT_EXAMPLES:BOOL=OFF -DMDL_ENABLE_UNIT_TESTS:BOOL=OFF -DMDL_ENABLE_PYTHON_BINDINGS:BOOL=OFF -DMDL_TREAT_RUNTIME_DEPS_AS_BUILD_DEPS:BOOL=OFF ${FEATURE_OPTIONS} ${MSVC_RUNTIME_OPTION} -Dpython_PATH:PATH=${PYTHON3} -Dclang_PATH:PATH=${LLVM_CLANG} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools( TOOL_NAMES i18n mdl_distiller_cli mdlc mdlm mdltlc AUTO_CLEAN ) if (MDL_ENABLE_VULKAN_EXAMPLES) # Install df_vulkan binary into tools/mdl-sdk vcpkg_copy_tools( TOOL_NAMES df_vulkan SEARCH_DIR "${CURRENT_PACKAGES_DIR}/examples/mdl_sdk/df_vulkan" AUTO_CLEAN ) # Install df_vulkan shaders into share/mdl-sdk/examples/mdl_sdk/df_vulkan file(COPY "${CURRENT_PACKAGES_DIR}/examples/mdl_sdk/df_vulkan" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/examples/mdl_sdk") # Install general example resources into share/mdl-sdk/examples/mdl file(COPY "${CURRENT_PACKAGES_DIR}/examples/mdl" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/examples") endif() vcpkg_cmake_config_fixup(PACKAGE_NAME "mdl") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc" "${CURRENT_PACKAGES_DIR}/debug/examples" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/doc" "${CURRENT_PACKAGES_DIR}/examples" ) # Install usage file file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Merge all license files into copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(READ "${SOURCE_PATH}/LICENSE_IMAGES.md" _images) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "\n\n${_images}") file(READ "${SOURCE_PATH}/LICENSE_THIRD_PARTY.md" _third_party) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "\n\n${_third_party}") ================================================ FILE: ports/mdl-sdk/usage ================================================ mdl-sdk provides CMake targets: find_package(mdl CONFIG REQUIRED) target_link_libraries(main PRIVATE $ ${CMAKE_DL_LIBS}) # Or if you want to use only the MDL Core library: find_package(mdl CONFIG REQUIRED) target_link_libraries(main PRIVATE $ ${CMAKE_DL_LIBS}) ================================================ FILE: ports/mdl-sdk/vcpkg.json ================================================ { "name": "mdl-sdk", "version": "2025.0.5", "port-version": 1, "description": "NVIDIA Material Definition Language SDK", "homepage": "https://github.com/NVIDIA/MDL-SDK", "license": "BSD-3-Clause", "supports": "!x86 & !(windows & (arm | uwp)) & !(osx & arm) & !android", "dependencies": [ "boost-algorithm", "boost-core", "boost-dynamic-bitset", "boost-functional", "boost-intrusive", "boost-tokenizer", "boost-unordered", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dds": { "description": "Build image plugin for DDS" }, "df-vulkan": { "description": "Build the MDL SDK df_vulkan example", "dependencies": [ "glfw3", "glslang", "volk", "vulkan-validationlayers" ] }, "materialx": { "description": "Enables MaterialX support", "dependencies": [ { "name": "materialx", "features": [ "mdl-generator" ] } ] }, "openimageio": { "description": "Build image plugin for various image formats using OpenImageIO", "dependencies": [ { "name": "openimageio", "features": [ "gif", "openjpeg", "webp" ] } ] } } } ================================================ FILE: ports/mdns/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mjansson/mdns REF "${VERSION}" SHA512 0bbfeefdd3f324a8e5aa85227bfa45c2b5cd88c12a9f77df2a1c48cb2661ba8b283dd53541e39d20ed2705646dc8d8724a0287c58f9efa91d2b1b796a0ca9a7a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMDNS_BUILD_EXAMPLE=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mdns/vcpkg.json ================================================ { "name": "mdns", "version": "1.4.3", "description": "Public domain mDNS/DNS-SD library in C", "homepage": "https://github.com/mjansson/mdns", "license": "Unlicense", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/mdnsresponder/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apple-oss-distributions/mDNSResponder REF f783506af3836b39b83fc14115bc2728a49db4b2 #mDNSResponder-1557.140.5.0.1 SHA512 f5954d3f8ef40790e14d17de4cd861fc7df6900e54affefb8282f080a0bfc8b4ac9d238f2faaea6bb3849b342836e45f3b2cb9361402f89fcdce3c627a2b9b4d HEAD_REF main ) IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") SET(BUILD_ARCH "Win32") ELSE() SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) ENDIF() function(FIX_VCXPROJ VCXPROJ_PATH) file(READ ${VCXPROJ_PATH} ORIG) if(${VCPKG_LIBRARY_LINKAGE} STREQUAL "dynamic") string(REPLACE "StaticLibrary" "DynamicLibrary" ORIG "${ORIG}") else() string(REPLACE "DynamicLibrary" "StaticLibrary" ORIG "${ORIG}") endif() file(WRITE ${VCXPROJ_PATH} "${ORIG}") endfunction() FIX_VCXPROJ("${SOURCE_PATH}/mDNSWindows/DLL/dnssd.vcxproj") if(${VCPKG_CRT_LINKAGE} STREQUAL "dynamic" AND ${VCPKG_LIBRARY_LINKAGE} STREQUAL "static") FIX_VCXPROJ("${SOURCE_PATH}/mDNSWindows/DLLStub/DLLStub.vcxproj") endif() FIX_VCXPROJ("${SOURCE_PATH}/Clients/DNS-SD.VisualStudio/dns-sd.vcxproj") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH mDNSWindows/mDNSResponder.sln PLATFORM ${BUILD_ARCH} TARGET dns-sd ) file(INSTALL "${SOURCE_PATH}/mDNSShared/dns_sd.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mdnsresponder/vcpkg.json ================================================ { "name": "mdnsresponder", "version": "1557.140.5.0.1", "port-version": 1, "description": "The mDNSResponder project is a component of Bonjour, Apple's ease-of-use IP networking initiative.", "homepage": "https://github.com/apple-oss-distributions/mDNSResponder", "license": "Apache-2.0", "supports": "windows & !uwp & !arm", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/mdspan/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kokkos/mdspan REF "mdspan-${VERSION}" SHA512 d0e247b5ed5765f3ddd04634462c428b19beceb81b0b7d8221443b3f6ab122e232e85c15d56c208b244be2f6667d7e1db571848b61190b64ec110f7d31c3e0c9 HEAD_REF stable ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mdspan) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mdspan/vcpkg.json ================================================ { "name": "mdspan", "version": "0.6.0", "description": "A non-owning multi-dimensional array reference type.", "homepage": "https://github.com/kokkos/mdspan", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mecab/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) PROJECT(mecab VERSION 1.0) file(GLOB SOURCE_FILE "*.cpp" "*.c" ) file(GLOB HEADERS_FILE "*.h" ) message(STATUS "current cmake path: ${CMAKE_CURRENT_SOURCE_DIR}") list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-cost-train.cpp) list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-gen.cpp) list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-dict-index.cpp) list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-system-eval.cpp) list(REMOVE_ITEM SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/mecab-test-gen.cpp) #list(REMOVE_ITEM SOURCE_FILE "mecab-cost-train.cpp" "mecab-dict-gen.cpp" "mecab-dict-index.cpp" "mecab-system-eval.cpp" "mecab-test-gen.cpp") add_library (mecab ${SOURCE_FILE}) target_include_directories(mecab PUBLIC $ $) if(UNIX) target_compile_definitions(mecab PUBLIC -DHAVE_UNISTD_H -DHAVE_FCNTL_H -DHAVE_STDINT_H -DHAVE_SYS_TYPES_H -DHAVE_SYS_STAT_H -DHAVE_DIRENT_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DMECAB_DEFAULT_RC="./mecabrc") endif(UNIX) if(WIN32) target_compile_definitions(mecab PUBLIC -D_CRT_SECURE_NO_DEPRECATE -DMECAB_USE_THREAD -DDLL_EXPORT -DHAVE_GETENV -DHAVE_WINDOWS_H -DDIC_VERSION=102 -DVERSION="@VERSION@" -DPACKAGE="mecab" -DUNICODE -D_UNICODE -DMECAB_DEFAULT_RC="mecabrc") endif(WIN32) include (GNUInstallDirs) include(CMakePackageConfigHelpers) set (mecab_CMAKE_DIR share/mecab CACHE STRING "Installation dir") set (targets_export_name mecabTargets CACHE INTERNAL "") install(TARGETS mecab EXPORT ${targets_export_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(FILES ${HEADERS_FILE} DESTINATION include/mecab CONFIGURATIONS Release) install(EXPORT ${targets_export_name} NAMESPACE mecab:: DESTINATION ${mecab_CMAKE_DIR}) configure_package_config_file( "${PROJECT_SOURCE_DIR}/Config.cmake.in" "${PROJECT_BINARY_DIR}/mecabConfig.cmake" INSTALL_DESTINATION ${mecab_CMAKE_DIR}) write_basic_package_version_file( ${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${PROJECT_BINARY_DIR}/mecabConfig.cmake ${PROJECT_BINARY_DIR}/mecabConfigVersion.cmake DESTINATION ${mecab_CMAKE_DIR}) ================================================ FILE: ports/mecab/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") check_required_components(mecab) ================================================ FILE: ports/mecab/fix-missing-functional.patch ================================================ diff --git a/mecab/src/dictionary.h b/mecab/src/dictionary.h index 7046023..32ad358 100644 --- a/mecab/src/dictionary.h +++ b/mecab/src/dictionary.h @@ -10,6 +10,7 @@ #include "mmap.h" #include "darts.h" #include "char_property.h" +#include namespace MeCab { ================================================ FILE: ports/mecab/fix_wpath_unsigned.patch ================================================ diff --git a/mecab/src/common.h b/mecab/src/common.h index d1fc459..2951d5a 100644 --- a/mecab/src/common.h +++ b/mecab/src/common.h @@ -86,7 +86,8 @@ #define WPATH_FORCE(path) (MeCab::Utf8ToWide(path).c_str()) #define WPATH(path) (path) #else -#define WPATH(path) WPATH_FORCE(path) +#define WPATH_FORCE(path) (MeCab::Utf8ToWide(path).c_str()) +#define WPATH(path) (path) #endif #else #define WPATH_FORCE(path) (path) diff --git a/mecab/src/feature_index.cpp b/mecab/src/feature_index.cpp index 051bdf8..fdd0145 100644 --- a/mecab/src/feature_index.cpp +++ b/mecab/src/feature_index.cpp @@ -353,7 +353,7 @@ bool FeatureIndex::buildUnigramFeature(LearnerPath *path, if (!r) goto NEXT; os_ << r; } break; - case 't': os_ << (size_t)path->rnode->char_type; break; + case 't': os_ << (int)(size_t)path->rnode->char_type; break; case 'u': os_ << ufeature; break; case 'w': if (path->rnode->stat == MECAB_NOR_NODE) { diff --git a/mecab/src/writer.cpp b/mecab/src/writer.cpp index 0ef6975..f068fa3 100644 --- a/mecab/src/writer.cpp +++ b/mecab/src/writer.cpp @@ -257,7 +257,7 @@ bool Writer::writeNode(Lattice *lattice, // input sentence case 'S': os->write(lattice->sentence(), lattice->size()); break; // sentence length - case 'L': *os << lattice->size(); break; + case 'L': *os << (int)lattice->size(); break; // morph case 'm': os->write(node->surface, node->length); break; case 'M': os->write(reinterpret_cast ================================================ FILE: ports/mecab/portfile.cmake ================================================ if (VCPKG_TARGET_TRIPLET STREQUAL "x64-uwp" OR VCPKG_TARGET_TRIPLET STREQUAL "arm64-windows" OR VCPKG_TARGET_TRIPLET STREQUAL "arm-uwp") message(FATAL_ERROR "mecab does not support on this platform") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taku910/mecab REF 3a07c4eefaffb4e7a0690a7f4e5e0263d3ddb8a3 SHA512 d3288cca7207daf66df4349819b64fc9cc069c775512cf0607ca855e9e5512509c36b0e2bb0e955478acae13ff0c35df7442f18a8458fab0ed664d62854c0b25 HEAD_REF master PATCHES fix_wpath_unsigned.patch fix-missing-functional.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/mecab/src") file(COPY "${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" DESTINATION "${SOURCE_PATH}/mecab/src") file(COPY "${SOURCE_PATH}/mecab/COPYING" DESTINATION "${SOURCE_PATH}/mecab/src") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/mecab/src" WINDOWS_USE_MSBUILD OPTIONS -DCMAKE_CXX_STANDARD=11 # 17 does not allow 'register' ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/mecab/COPYING") ================================================ FILE: ports/mecab/vcpkg.json ================================================ { "name": "mecab", "version-date": "2019-09-25", "port-version": 6, "description": "A morphological analysis engine based on CRF", "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/meekrosoft-fff/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO meekrosoft/fff REF "v${VERSION}" SHA512 92890152f37e9e8b3961be2b8d2633f374ce1a16f4d78d8c6ea070a5ca35c08a75b71227465133b6ffd5bfb481246a73df4109f8b141fa83c7e22b0d31e6f903 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/fff.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/meekrosoft-fff/vcpkg.json ================================================ { "name": "meekrosoft-fff", "version": "1.1", "description": "A testing micro framework for creating function test doubles", "homepage": "https://github.com/meekrosoft/fff", "license": "MIT" } ================================================ FILE: ports/memorymodule/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fancycode/MemoryModule REF 5f83e41c3a3e7c6e8284a5c1afa5a38790809461 SHA512 6d42bd80dfeaf7bc662adafe7d6a7d7301eff5ea53bb59fce7e9c1a6ee22d31d2ab5696afc0a92c1501aa4161a60366418bfc3bed7ed2dcb6cae24243f4fa6d4 HEAD_REF master ) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES unicode UNICODE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DTESTSUITE=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_build(TARGET MemoryModule) file(INSTALL "${SOURCE_PATH}/MemoryModule.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/MemoryModule.lib") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/MemoryModule.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) endif() if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/MemoryModule.lib") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/MemoryModule.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) endif() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/memorymodule/vcpkg.json ================================================ { "name": "memorymodule", "version-date": "2019-12-31", "port-version": 3, "description": "Library to load a DLL from memory", "homepage": "https://github.com/fancycode/MemoryModule", "supports": "!linux & !osx & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "unicode" ], "features": { "unicode": { "description": "Compile with UNICODE support" } } } ================================================ FILE: ports/meojson/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MistEO/meojson REF v${VERSION} SHA512 5f30b52e3e9619bac7e0f3b40cd6ce3c4330538d63a221cdbf4f20a29e282774cf26ba4fc9fefa6f8ab9dcbe1358b60cbd39440d1ab97b43d663de21db715dce HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SAMPLE=OFF -DBUILD_TESTING=OFF -DBUILD_BENCHMARK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/meojson) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/meojson/vcpkg.json ================================================ { "name": "meojson", "version": "5.0.0", "description": "Next-gen C++ JSON/JSON5 Serialization Engine | Zero Dependency | Header-Only | Unleash JSON Potential", "homepage": "https://github.com/MistEO/meojson", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mesa/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_CRT) if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # some parts of this port can only build as a shared library. endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO mesa/mesa REF mesa-${VERSION} SHA512 202b2b20ffe7d357570a0d0bf0b53dc246b3e903738e8c8a000c5f61109ab5233d62de217444f49fd62927f8c418d929e5a2a5a800d1e39e334d50eb090e850c FILE_DISAMBIGUATOR 1 HEAD_REF master ) x_vcpkg_get_python_packages(PYTHON_VERSION "3" OUT_PYTHON_VAR "PYTHON3" PACKAGES setuptools mako) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}") vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_find_acquire_program(BISON) get_filename_component(BISON_DIR "${BISON}" DIRECTORY) vcpkg_add_to_path(PREPEND "${BISON_DIR}") if(CMAKE_HOST_WIN32) # WIN32 HOST probably has win_flex and win_bison! if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(FLEX_DIR MATCHES "${DOWNLOADS}") file(CREATE_LINK "${FLEX}" "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") else() message(FATAL_ERROR "${PORT} requires flex being named flex on windows and not win_flex!\n(Can be solved by creating a simple link from win_flex to flex)") endif() endif() if(NOT EXISTS "${BISON_DIR}/BISON${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(BISON_DIR MATCHES "${DOWNLOADS}") file(CREATE_LINK "${BISON}" "${BISON_DIR}/bison${VCPKG_HOST_EXECUTABLE_SUFFIX}") else() message(FATAL_ERROR "${PORT} requires bison being named bison on windows and not win_bison!\n(Can be solved by creating a simple link from win_bison to bison)") endif() endif() endif() # For features https://github.com/pal1000/mesa-dist-win should be probably studied a bit more. list(APPEND MESA_OPTIONS -Dzstd=enabled) list(APPEND MESA_OPTIONS -Dvalgrind=disabled) list(APPEND MESA_OPTIONS -Dshared-llvm=disabled) list(APPEND MESA_OPTIONS -Dcpp_rtti=true) if("offscreen" IN_LIST FEATURES) list(APPEND MESA_OPTIONS -Dosmesa=true) else() list(APPEND MESA_OPTIONS -Dosmesa=false) endif() if("llvm" IN_LIST FEATURES) list(APPEND MESA_OPTIONS -Dllvm=enabled) else() list(APPEND MESA_OPTIONS -Dllvm=disabled) endif() set(use_gles OFF) if("gles1" IN_LIST FEATURES) list(APPEND MESA_OPTIONS -Dgles1=enabled) set(use_gles ON) else() list(APPEND MESA_OPTIONS -Dgles1=disabled) endif() if("gles2" IN_LIST FEATURES) list(APPEND MESA_OPTIONS -Dgles2=enabled) set(use_gles ON) else() list(APPEND MESA_OPTIONS -Dgles2=disabled) endif() if(use_gles) list(APPEND MESA_OPTIONS -Dshared-glapi=enabled) # shared GLAPI required when building two or more of the following APIs - gles1 gles2 else() list(APPEND MESA_OPTIONS -Dshared-glapi=auto) endif() if("egl" IN_LIST FEATURES) list(APPEND MESA_OPTIONS -Degl=enabled) else() list(APPEND MESA_OPTIONS -Degl=disabled) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND MESA_OPTIONS -Dplatforms=['windows']) list(APPEND MESA_OPTIONS -Dmicrosoft-clc=disabled) if(NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}") set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}") endif() endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dgles-lib-suffix=_mesa -Dbuild-tests=false ${MESA_OPTIONS} ADDITIONAL_BINARIES python=['${PYTHON3}','-I'] python3=['${PYTHON3}','-I'] ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" # installed by egl-registry "${CURRENT_PACKAGES_DIR}/include/KHR" "${CURRENT_PACKAGES_DIR}/include/EGL" # installed by opengl-registry "${CURRENT_PACKAGES_DIR}/include/GL" "${CURRENT_PACKAGES_DIR}/include/GLES" "${CURRENT_PACKAGES_DIR}/include/GLES2" "${CURRENT_PACKAGES_DIR}/include/GLES3" ) file(GLOB remaining "${CURRENT_PACKAGES_DIR}/include/*") if(NOT remaining) # All headers to be provided by egl-registry and/or opengl-registry set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include") endif() if(VCPKG_TARGET_IS_WINDOWS) # opengl32.lib is already installed by port opengl. # Mesa claims to provide a drop-in replacement of opengl32.dll. file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/opengl32.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/opengl32.lib") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/opengl32.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/opengl32.lib") endif() endif() if(FEATURES STREQUAL "core") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/license.rst") ================================================ FILE: ports/mesa/vcpkg.json ================================================ { "name": "mesa", "version": "24.0.7", "port-version": 3, "description": "Mesa - The 3D Graphics Library", "homepage": "https://www.mesa3d.org/", "license": "MIT AND BSL-1.0 AND SGI-B-2.0", "supports": "!(windows & arm) & !staticcrt & !uwp", "dependencies": [ { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-tool-meson", "host": true }, "zlib", "zstd" ], "default-features": [ "gles1", "gles2", { "name": "llvm", "platform": "x64" } ], "features": { "egl": { "description": "Build support for EGL platform", "dependencies": [ "egl-registry" ] }, "gles1": { "description": "Build support for OpenGL ES 1.x", "dependencies": [ "opengl" ] }, "gles2": { "description": "Build support for OpenGL ES 2.x and 3.x", "dependencies": [ "opengl" ] }, "llvm": { "description": "Build with llvmpipe", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "enable-rtti", "libclc" ] }, { "name": "llvm", "default-features": false, "features": [ "target-arm" ], "platform": "arm32" }, { "name": "llvm", "default-features": false, "features": [ "target-aarch64" ], "platform": "arm64" }, { "name": "llvm", "default-features": false, "features": [ "target-x86" ], "platform": "x64 | x86" } ] }, "offscreen": { "description": "Build with support for offscreen rendering (OSMesa)", "dependencies": [ "opengl" ] } } } ================================================ FILE: ports/meschach/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(meschach) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() set(meschach_srcs bdfactor.c bkpfacto.c chfactor.c copy.c err.c extras.c fft.c givens.c hessen.c hsehldr.c init.c iter0.c iternsym.c itersym.c ivecop.c lufactor.c machine.c matlab.c matop.c matrixio.c meminfo.c memory.c memstat.c mfunc.c norm.c otherio.c pxop.c qrfactor.c schur.c solve.c sparse.c sparseio.c spbkp.c spchfctr.c splufctr.c sprow.c spswap.c submat.c svd.c symmeig.c update.c vecop.c version.c zcopy.c zfunc.c zgivens.c zhessen.c zhsehldr.c zlufctr.c zmachine.c zmatio.c zmatlab.c zmatop.c zmemory.c znorm.c zqrfctr.c zschur.c zsolve.c ztorture.c zvecop.c ) file(GLOB meschach_headers "*.h") include_directories(".") add_library(meschach ${meschach_srcs}) target_compile_definitions(meschach PRIVATE -DHAVE_MEMORY_H -DHAVE_COMPLEX_H) install( TARGETS meschach RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${meschach_headers} DESTINATION include/meschach) endif() ================================================ FILE: ports/meschach/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://homepage.math.uiowa.edu/~dstewart/meschach/mesch12b.tar.gz" FILENAME "mesch12b.tar.gz" SHA512 9051e1502b8c9741400c61fd6038e514887f305f267ba4e97d747423de3da1270f835f65b2d1f538f8938677060bc0fcfd7a94022d74fbfd31a0450116e9d79e ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/meschach/vcpkg.json ================================================ { "name": "meschach", "version-string": "1.2b", "port-version": 6, "description": "Matrix computations in C", "homepage": "https://homepage.math.uiowa.edu/~dstewart/meschach", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/meshoptimizer/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ca03ab..af7eb9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,6 +147,11 @@ if(MESHOPT_BUILD_GLTFPACK) target_compile_definitions(gltfpack PRIVATE WITH_BASISU) target_link_libraries(gltfpack basisu_encoder) set_source_files_properties(gltf/encodebasis.cpp PROPERTIES INCLUDE_DIRECTORIES ${BASISU_PATH}) # necessary because basisu_encoder doesn't export include directories + else() + find_package(basisu CONFIG REQUIRED) + find_package(Threads REQUIRED) # cf. further down + target_compile_definitions(gltfpack PRIVATE WITH_BASISU) + target_link_libraries(gltfpack basisu::basisu_encoder Threads::Threads) endif() if(NOT MESHOPT_GLTFPACK_LIBWEBP_PATH STREQUAL "") diff --git a/gltf/encodebasis.cpp b/gltf/encodebasis.cpp index 73cd962..74abf1b 100644 --- a/gltf/encodebasis.cpp +++ b/gltf/encodebasis.cpp @@ -22,7 +22,7 @@ #pragma GCC diagnostic ignored "-Wc++17-extensions" #endif -#include "encoder/basisu_comp.h" +#include "basisu/encoder/basisu_comp.h" struct BasisSettings { ================================================ FILE: ports/meshoptimizer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeux/meshoptimizer REF "v${VERSION}" SHA512 8083df3cf41b90a472aaede06bcc316ec4c1c2f34775fd1f436dcea11d241087ae9e18aad115d46e7b2aaca2d754dd672872cddb6910db22770c064097b31254 HEAD_REF master PATCHES dependencies.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gltfpack MESHOPT_BUILD_GLTFPACK ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DMESHOPT_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} OPTIONS_DEBUG -DMESHOPT_BUILD_GLTFPACK=OFF # tool ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/meshoptimizer) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if ("gltfpack" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES gltfpack AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/meshoptimizer/vcpkg.json ================================================ { "name": "meshoptimizer", "version": "1.0.1", "description": "Mesh optimization library that makes meshes smaller and faster to render", "homepage": "https://github.com/zeux/meshoptimizer", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gltfpack": { "description": "Build gltfpack tool", "supports": "!uwp", "dependencies": [ "basisu" ] } } } ================================================ FILE: ports/metis/build-fixes-gkregex.patch ================================================ --- 3b0b581ab2-3f513bfb0c.clean/conf/gkbuild.cmake.old 2026-02-07 18:50:18.944623000 +0100 +++ 3b0b581ab2-3f513bfb0c.clean/conf/gkbuild.cmake 2026-02-07 18:51:19.086997000 +0100 @@ -16,9 +16,9 @@ option(GKRAND "enable GKRAND support" OF # Add compiler flags. if(MSVC) - set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") + set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE") elseif(MINGW) - set(GK_COPTS "-DUSE_GKREGEX") +# set(GK_COPTS "-DUSE_GKREGEX") else() set(GK_COPTIONS "-DLINUX -D_FILE_OFFSET_BITS=64") endif(MSVC) ================================================ FILE: ports/metis/build-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ef34603..0168a4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,12 @@ cmake_minimum_required(VERSION 3.10) project(METIS C) -set(SHARED FALSE CACHE BOOL "build a shared library") +set(SHARED "${BUILD_SHARED_LIBS}" CACHE BOOL "build a shared library") +if(WIN32 AND SHARED) + add_compile_definitions(-D_WINDLL) +endif() -if(MSVC) +if(0) set(METIS_INSTALL FALSE) else() set(METIS_INSTALL TRUE) @@ -38,15 +41,12 @@ include(./conf/gkbuild.cmake) # Add include directories. # i.e., the -I equivalent include_directories(build/xinclude) -include_directories(${GKLIB_PATH}/include) -include_directories(${CMAKE_INSTALL_PREFIX}/include) # List of paths that the compiler will search for library files. # i.e., the -L equivalent -link_directories(${GKLIB_PATH}/lib) -link_directories(${CMAKE_INSTALL_PREFIX}/lib) # Recursively look for CMakeLists.txt in subdirs. add_subdirectory("build/xinclude") add_subdirectory("libmetis") -add_subdirectory("programs") + +include(install_config.cmake) diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake index 591ece4..3719093 100644 --- a/conf/gkbuild.cmake +++ b/conf/gkbuild.cmake @@ -16,7 +16,6 @@ option(GKRAND "enable GKRAND support" OFF) # Add compiler flags. if(MSVC) - set(GK_COPTS "/Ox") set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") elseif(MINGW) set(GK_COPTS "-DUSE_GKREGEX") @@ -31,6 +30,8 @@ if(CMAKE_COMPILER_IS_GNUCC) set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing") if(VALGRIND) set(GK_COPTIONS "${GK_COPTIONS} -march=x86-64 -mtune=generic") +elseif(1) + # Use flags from toolchain and triplet else() # -march=native is not a valid flag on PPC: if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64")) @@ -44,6 +45,7 @@ endif(VALGRIND) endif(NOT MINGW) # GCC warnings. set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label") + string(REPLACE " -Werror " " " GK_COPTIONS "${GK_COPTIONS}") elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun") # Sun insists on -xc99. set(GK_COPTIONS "${GK_COPTIONS} -xc99") @@ -74,6 +76,8 @@ endif(OPENMP) if(GDB) set(GK_COPTS "${GK_COPTS} -g") set(GK_COPTIONS "${GK_COPTIONS} -Werror") +elseif(1) + # Use flags from toolchain and triplet else() set(GK_COPTS "-O3") endif(GDB) diff --git a/include/metis.h b/include/metis.h index ab475fe..8033858 100644 --- a/include/metis.h +++ b/include/metis.h @@ -30,7 +30,7 @@ GCC does provides these definitions in stdint.h, but it may require some modifications on other architectures. --------------------------------------------------------------------------*/ -//#define IDXTYPEWIDTH 32 +#define IDXTYPEWIDTH 32 /*-------------------------------------------------------------------------- @@ -40,7 +40,7 @@ 32 : single precision floating point (float) 64 : double precision floating point (double) --------------------------------------------------------------------------*/ -//#define REALTYPEWIDTH 32 +#define REALTYPEWIDTH 32 @@ -72,10 +72,14 @@ typedef __int64 int64_t; #define PRId64 "I64d" #define SCNd32 "ld" #define SCNd64 "I64d" +#ifdef _WIN32 +#include +#else #define INT32_MIN ((int32_t)_I32_MIN) #define INT32_MAX _I32_MAX #define INT64_MIN ((int64_t)_I64_MIN) #define INT64_MAX _I64_MAX +#endif // ^^^ !_WIN32 #else #include #endif diff --git a/libmetis/CMakeLists.txt b/libmetis/CMakeLists.txt index fc6cec6..a56f6ca 100644 --- a/libmetis/CMakeLists.txt +++ b/libmetis/CMakeLists.txt @@ -6,10 +6,15 @@ file(GLOB metis_sources *.c) # Build libmetis. add_library(metis ${METIS_LIBRARY_TYPE} ${metis_sources}) +target_include_directories(metis INTERFACE $) + +find_package(GKlib CONFIG REQUIRED) +target_link_libraries(metis PRIVATE GKlib::GKlib) if(METIS_INSTALL) install(TARGETS metis + EXPORT metisTargets LIBRARY DESTINATION lib - RUNTIME DESTINATION lib + RUNTIME DESTINATION bin ARCHIVE DESTINATION lib) endif() diff --git a/libmetis/metislib.h b/libmetis/metislib.h index dc224f4..1efccda 100644 --- a/libmetis/metislib.h +++ b/libmetis/metislib.h @@ -31,7 +31,7 @@ #include "proto.h" -#if defined(COMPILER_MSC) +#if defined(COMPILER_MSC) && (_MSC_VER < 1900) #if defined(rint) #undef rint #endif ================================================ FILE: ports/metis/install_config.cmake ================================================ install(EXPORT metisTargets FILE metisTargets.cmake DESTINATION share/metis ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/metisConfig.cmake" "include(CMakeFindDependencyMacro) find_dependency(GKlib CONFIG) include(\"\${CMAKE_CURRENT_LIST_DIR}/metisTargets.cmake\") ") # Copied from https://github.com/ceres-solver/ceres-solver/blob/2.2.0/cmake/FindMETIS.cmake#L69-L77 file(READ "${PROJECT_SOURCE_DIR}/include/metis.h" _METIS_VERSION_CONTENTS) string(REGEX REPLACE ".*#define METIS_VER_MAJOR[ \t]+([0-9]+).*" "\\1" METIS_VERSION_MAJOR "${_METIS_VERSION_CONTENTS}") string(REGEX REPLACE ".*#define METIS_VER_MINOR[ \t]+([0-9]+).*" "\\1" METIS_VERSION_MINOR "${_METIS_VERSION_CONTENTS}") string(REGEX REPLACE ".*#define METIS_VER_SUBMINOR[ \t]+([0-9]+).*" "\\1" METIS_VERSION_PATCH "${_METIS_VERSION_CONTENTS}") set(METIS_VERSION "${METIS_VERSION_MAJOR}.${METIS_VERSION_MINOR}.${METIS_VERSION_PATCH}") include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/metisConfigVersion.cmake" VERSION ${METIS_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/metisConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/metisConfigVersion.cmake" DESTINATION "share/metis" ) ================================================ FILE: ports/metis/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO KarypisLab/METIS REF a6e6a2cfa92f93a3ee2971ebc9ddfc3b0b581ab2 SHA512 c41168788c287ed9baea3c43c1ea8ef7d0bbdaa340a03cbbb5d0ba2d928d8a6dd83e2b77e7d3fabc58ac6d2b59a4be0492940e31460fe5e1807849cb98e80d2e PATCHES build-fixes.patch build-fixes-gkregex.patch ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${SOURCE_PATH}/build/xinclude") file(COPY "${CMAKE_CURRENT_LIST_DIR}/install_config.cmake" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/metis.h" "#ifdef _WINDLL" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/metis.h" "__declspec(dllexport)" "__declspec(dllimport)") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/metis/vcpkg.json ================================================ { "name": "metis", "version-date": "2025-07-04", "port-version": 1, "description": "Serial Graph Partitioning and Fill-reducing Matrix Ordering", "homepage": "https://github.com/KarypisLab/METIS", "license": "Apache-2.0", "dependencies": [ "gklib", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/metrohash/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(metrohash LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) add_library(metrohash src/metrohash64.cpp src/metrohash128.cpp ) list(APPEND metro_headers src/metrohash.h src/metrohash64.h src/metrohash128.h) include(CheckCXXSourceCompiles) include(CheckCXXCompilerFlag) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") check_cxx_compiler_flag("-msse4.2" HAS_MSSE42) if(HAS_MSSE42) target_compile_options(metrohash PRIVATE -msse4.2) string(APPEND CMAKE_REQUIRED_FLAGS " -msse4.2") endif() endif() check_cxx_source_compiles( "#include int main() { _mm_crc32_u64(0, 0); return 0; }" HAS_mm_crc32_u64) if(HAS_mm_crc32_u64) list(APPEND metro_headers src/metrohash128crc.h) target_sources(metrohash PRIVATE src/metrohash128crc.cpp) endif() if(CMAKE_CXX_COMPILER_ID MATCHES GNU) target_compile_options(metrohash PRIVATE -march=native) endif() set_target_properties(metrohash PROPERTIES PUBLIC_HEADER "${metro_headers}" ) include(CMakePackageConfigHelpers) set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") set(config_install_dir "lib/cmake/${PROJECT_NAME}") set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") set(namespace "${PROJECT_NAME}::") configure_package_config_file( "${CMAKE_SOURCE_DIR}/cmake/Config.cmake.in" "${project_config}" INSTALL_DESTINATION "${config_install_dir}" ) #Installation install(TARGETS metrohash EXPORT "${TARGETS_EXPORT_NAME}" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib" PUBLIC_HEADER DESTINATION "include") install( FILES "${project_config}" DESTINATION "${config_install_dir}" ) install(EXPORT "${TARGETS_EXPORT_NAME}" NAMESPACE "${namespace}" DESTINATION "${config_install_dir}" ) ================================================ FILE: ports/metrohash/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/metrohash/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jandrewrogers/MetroHash REF v1.1.3 SHA512 02b6316e5ebf3d81465eea8a068565452be642394ddf5a53350affbbc9b9bfe1c3d182f7e8f7d49895351c48e11929e465777535e4354e01b6d0ba459e583ac5 HEAD_REF master ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") configure_file("${CURRENT_PORT_DIR}/Config.cmake.in" "${SOURCE_PATH}/cmake/Config.cmake.in" COPYONLY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/include/metrohash128crc.h") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/metrohash.h" "#include \"metrohash128crc.h\"" "//#include \"metrohash128crc.h\" // The target platform does not support _mm_crc32_u64") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/metrohash/vcpkg.json ================================================ { "name": "metrohash", "version": "1.1.3", "port-version": 5, "description": "MetroHash is a set of state-of-the-art hash functions for non-cryptographic use cases", "homepage": "https://github.com/jandrewrogers/MetroHash", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mexce/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO imakris/mexce REF "v${VERSION}" SHA512 9ca7cc69a4fff5735c66c5976c4ce40b441110212928fa2a768d351f60278e2ad3f6e8e116a1c1a07b028742d8059ab8a5193494404f66e75319d9d82ca972bc HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/mexce.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/mexce/vcpkg.json ================================================ { "name": "mexce", "version": "1.0.1", "description": "Header-only JIT compiler for scalar mathematical expressions.", "homepage": "https://github.com/imakris/mexce", "license": "BSD-2-Clause", "supports": "(windows | linux) & (x86 | x64)" } ================================================ FILE: ports/mfl/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c411d11..9336e1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,17 +18,6 @@ include(cmake/StaticAnalyzers.cmake) add_subdirectory(src) -add_subdirectory(tests/fonts_for_tests) -add_subdirectory(tests/unit_tests) - -# Building approval tests causes ICE on msvc -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - add_subdirectory(tests/approval_tests) -endif() - -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - add_subdirectory(tests/fuzz_tests) -endif() include(GNUInstallDirs) ================================================ FILE: ports/mfl/fix-clang-detection.patch ================================================ diff --git a/cmake/CompilerWarnings.cmake b/cmake/CompilerWarnings.cmake index 34f1cc8..bda884d 100644 --- a/cmake/CompilerWarnings.cmake +++ b/cmake/CompilerWarnings.cmake @@ -79,7 +79,7 @@ function(set_project_warnings project_name) if(MSVC) set(PROJECT_WARNINGS ${MSVC_WARNINGS}) - elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(PROJECT_WARNINGS ${CLANG_WARNINGS}) else() set(PROJECT_WARNINGS ${GCC_WARNINGS}) ================================================ FILE: ports/mfl/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() message(WARNING "${PORT} is a C++20 library and requires a corresponding compiler. GCC 10, Clang 10 and MSVC 2019 16.8 are known to work.") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpp-niel/mfl REF v0.0.1 SHA512 a609b4ff23a01e9f9d9bf60bfa6e0b2346b054cf0c27e74e6da574dcfd2a6ead30dcb8464cf03cae2bb9995f15f01ffda5f862c0ec2744a9ad38b856ff27f073 HEAD_REF master PATCHES disable-tests.patch fix-clang-detection.patch ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWARNINGS_AS_ERRORS=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mfl) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mfl/vcpkg.json ================================================ { "name": "mfl", "version": "0.0.1", "port-version": 3, "description": "Computes the layout information for mathematical formulas provided in TeX-like syntax.", "homepage": "https://github.com/cpp-niel/mfl", "license": "MIT", "dependencies": [ "cairo", "doctest", "fmt", "freetype", "harfbuzz", "range-v3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mfx-dispatch/fix-pkgconf.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9446bc4..a8a3288 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,16 +3,7 @@ cmake_minimum_required(VERSION 2.6) project( libmfx ) # FIXME Adds support for using system/other install of intel media sdk -find_path ( INTELMEDIASDK_PATH mfx/mfxvideo.h - HINTS "${CMAKE_SOURCE_DIR}" -) - -if (INTELMEDIASDK_PATH_NOTFOUND) - message( FATAL_ERROR "Intel MEDIA SDK include not found" ) -else (INTELMEDIASDK_PATH_NOTFOUND) - message(STATUS "Intel Media SDK is here: ${INTELMEDIASDK_PATH}") -endif (INTELMEDIASDK_PATH_NOTFOUND) - +set(INTELMEDIASDK_PATH "${CMAKE_CURRENT_LIST_DIR}") set(SOURCES src/main.cpp diff --git a/libmfx.pc.cmake b/libmfx.pc.cmake index fabb541..5d248fe 100644 --- a/libmfx.pc.cmake +++ b/libmfx.pc.cmake @@ -6,9 +6,9 @@ Requires.private: Name: libmfx Description: Intel Media SDK Dispatched static library -Version: 2013 +Version: 1.35 Requires: Requires.private: Conflicts: -Libs: -L${libdir} -lsupc++ ${libdir}/libmfx.lib +Libs: -L${libdir} -llibmfx Libs.private: -Cflags: -I${includedir} -I@INTELMEDIASDK_PATH@ +Cflags: -I${includedir} ================================================ FILE: ports/mfx-dispatch/fix-unresolved-symbol.patch ================================================ Subject: [PATCH] fix for vcpkg fix missing mfx_driver_store_loader related symbols --- Index: CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision 7e4d221c36c630c1250b23a5dfa15657bc04c10c) +++ b/CMakeLists.txt (revision 5ebef171699530ca01594a5cef10a68811f4d105) @@ -40,6 +39,7 @@ src/mfx_load_plugin.cpp src/mfx_plugin_hive.cpp src/mfx_win_reg_key.cpp + src/mfx_driver_store_loader.cpp ) endif (CMAKE_SYSTEM_NAME MATCHES "Windows") @@ -56,6 +56,12 @@ configure_file (${CMAKE_SOURCE_DIR}/libmfx.pc.cmake ${CMAKE_BINARY_DIR}/libmfx.pc @ONLY) add_library( mfx STATIC ${SOURCES} ) + +if (CMAKE_SYSTEM_NAME MATCHES "Windows") + set_target_properties(mfx + PROPERTIES PREFIX lib) +endif (CMAKE_SYSTEM_NAME MATCHES "Windows") + install (DIRECTORY ${CMAKE_SOURCE_DIR}/mfx DESTINATION ${CMAKE_INSTALL_PREFIX}/include FILES_MATCHING PATTERN "*.h") install (FILES ${CMAKE_BINARY_DIR}/libmfx.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) install (TARGETS mfx ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) Index: libmfx.pc.cmake IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/libmfx.pc.cmake b/libmfx.pc.cmake --- a/libmfx.pc.cmake (revision 7e4d221c36c630c1250b23a5dfa15657bc04c10c) +++ b/libmfx.pc.cmake (revision 388559e9e8234eb0989e1598a9beea4035a04132) @@ -9,6 +9,6 @@ Requires: Requires.private: Conflicts: -Libs: -L${libdir} -lsupc++ ${libdir}/libmfx.a +Libs: -L${libdir} -lsupc++ ${libdir}/libmfx.lib Libs.private: Cflags: -I${includedir} -I@INTELMEDIASDK_PATH@ Index: src/mfx_driver_store_loader.cpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/src/mfx_driver_store_loader.cpp b/src/mfx_driver_store_loader.cpp --- a/src/mfx_driver_store_loader.cpp (revision 388559e9e8234eb0989e1598a9beea4035a04132) +++ b/src/mfx_driver_store_loader.cpp (revision 5ebef171699530ca01594a5cef10a68811f4d105) @@ -24,6 +24,9 @@ #include "mfx_dispatcher_log.h" #include "mfx_load_dll.h" +#pragma comment(lib, "Ole32.lib") +#pragma comment(lib, "Advapi32.lib") + namespace MFX { ================================================ FILE: ports/mfx-dispatch/portfile.cmake ================================================ vcpkg_download_distfile( MISSING_CSTDINT_IMPORT_PATCH URLS https://github.com/lu-zero/mfx_dispatch/commit/d6241243f85a0d947bdfe813006686a930edef24.patch?full_index=1 FILENAME fix-missing-cstdint-import-d6241243f85a0d947bdfe813006686a930edef24.patch SHA512 5d2ffc4ec2ba0e5859d01d2e072f75436ebc3e62e0f6580b5bb8b9f82fe588e7558a46a1fdfa0297a782c0eeb8f50322258d0dd9e41d927cc9be496727b61e44 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lu-zero/mfx_dispatch REF "${VERSION}" SHA512 12517338342d3e653043a57e290eb9cffd190aede0c3a3948956f1c7f12f0ea859361cf3e534ab066b96b1c211f68409c67ef21fd6d76b68cc31daef541941b0 HEAD_REF master PATCHES fix-unresolved-symbol.patch fix-pkgconf.patch ${MISSING_CSTDINT_IMPORT_PATCH} ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() else() if(VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mfx-dispatch/vcpkg.json ================================================ { "name": "mfx-dispatch", "version": "1.35.1", "port-version": 6, "description": "Open source Intel media sdk dispatcher", "homepage": "https://github.com/lu-zero/mfx_dispatch", "license": "BSD-3-Clause", "supports": "((x86 | x64) & (android | linux)) | (windows & !uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true, "platform": "windows & !mingw" }, { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" } ] } ================================================ FILE: ports/mgclient/export-cmake.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 92426e9..f96152a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -16,6 +16,8 @@ add_library(project_options INTERFACE) include(../cmake/Sanitizers.cmake) enable_sanitizers(project_options) +include(GNUInstallDirs) + set(mgclient_src_files mgallocator.c mgclient.c @@ -50,6 +52,7 @@ else() find_package(OpenSSL REQUIRED) include(GenerateExportHeader) + if(NOT BUILD_SHARED_LIBS) add_library(mgclient-static STATIC ${mgclient_src_files}) generate_export_header(mgclient-static @@ -62,18 +65,22 @@ else() target_include_directories(mgclient-static PRIVATE "${PROJECT_SOURCE_DIR}/src" - PUBLIC - "${PROJECT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}" - "${OPENSSL_INCLUDE_DIR}") + "${OPENSSL_INCLUDE_DIR}" + PUBLIC + $ + $ + ) target_link_libraries(mgclient-static PRIVATE - ${OPENSSL_LIBRARIES} project_options project_c_warnings) - + ${OPENSSL_LIBRARIES}) + target_compile_options(mgclient-static PRIVATE + $ + $) if(MGCLIENT_ON_WINDOWS) target_link_libraries(mgclient-static PUBLIC ws2_32 crypt32 gdi32) endif() - + else() add_library(mgclient-shared SHARED ${mgclient_src_files}) generate_export_header(mgclient-shared @@ -87,32 +94,44 @@ else() target_include_directories(mgclient-shared PRIVATE "${PROJECT_SOURCE_DIR}/src" - PUBLIC - "${PROJECT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}" - "${OPENSSL_INCLUDE_DIR}") + "${OPENSSL_INCLUDE_DIR}" + PUBLIC + $ + $ + ) target_link_libraries(mgclient-shared PRIVATE - ${OPENSSL_LIBRARIES} project_options project_c_warnings) - + ${OPENSSL_LIBRARIES}) + target_compile_options(mgclient-shared PRIVATE + $ + $) if(MGCLIENT_ON_WINDOWS) target_link_libraries(mgclient-shared PUBLIC ws2_32 crypt32 gdi32) endif() + endif() - generate_export_header(mgclient-shared - BASE_NAME "mgclient" - EXPORT_FILE_NAME "mgclient-export.h") - - include(GNUInstallDirs) - - install(TARGETS mgclient-static mgclient-shared + if(BUILD_SHARED_LIBS) + install(TARGETS mgclient-shared + EXPORT unofficial-mgclient-export + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + else() + install(TARGETS mgclient-static + EXPORT unofficial-mgclient-export ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() install(DIRECTORY "${PROJECT_SOURCE_DIR}/include/" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mgclient-export.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(EXPORT unofficial-mgclient-export + FILE unofficial-mgclient-config.cmake + NAMESPACE unofficial::mgclient:: + DESTINATION share/unofficial-mgclient) endif() ================================================ FILE: ports/mgclient/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO memgraph/mgclient REF "v${VERSION}" SHA512 870b15691f394fad894ea5b38f138eb6ae8788d3a3c19eb89d12a86ffb36546f99b24ded88a65e44e479d22220e8dc3262a4121d5a4d88be8ef6a481282d28a9 HEAD_REF master PATCHES export-cmake.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES cpp BUILD_CPP_BINDINGS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DBUILD_TESTING=OFF -DBUILD_TESTING_INTEGRATION=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mgclient) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mgclient/vcpkg.json ================================================ { "name": "mgclient", "version": "1.5.0", "description": "C/C++ Memgraph Client ", "homepage": "https://github.com/memgraph/mgclient", "license": "Apache-2.0", "supports": "!android", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cpp": { "description": "build header only cpp bindings" } } } ================================================ FILE: ports/mgnlibs/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattiasgustavsson/libs REF 9a6e7205caecbe336e41aebdc9c79a5c47daa5ec SHA512 87493f883f0752a334bbcec69228e325d9e1f36a99d313be9243f4e6e14876bcd5a976682d3fd7e3e285e426ac69587d35ba3378b2124450b9a8ed6127f110a5 HEAD_REF master ) # Copy the header files file(GLOB HEADER_FILES ${SOURCE_PATH}/*.h) file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/mgnlibs) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mgnlibs/vcpkg.json ================================================ { "name": "mgnlibs", "version-date": "2019-09-29", "port-version": 2, "description": "Single-file public domain libraries for C/C++", "homepage": "https://github.com/mattiasgustavsson/libs", "license": "MIT" } ================================================ FILE: ports/mhook/fix-windows-packing-mismatch.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e1df9f..e1e6ced 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(mhook) set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake") -add_definitions(-DNO_SANITY_CHECKS -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN) +add_definitions(-DNO_SANITY_CHECKS -DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN -DWINDOWS_IGNORE_PACKING_MISMATCH) file(GLOB DisasmSrc disasm-lib/*.c disasm-lib/*.h) file(GLOB MhookSrc mhook-lib/*.cpp mhook-lib/*.h) ================================================ FILE: ports/mhook/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apriorit/mhook REF 2.5.1 SHA512 914f198417b1e30301a42463af5cfbf9269dc64bcf1be87d3d6d2943fd72b3536f48eb4bfb25a51dd0bbe0f8f099777b2d49c9d58cb2e2eeb517d998917ae976 HEAD_REF master PATCHES fix-windows-packing-mismatch.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/mhook" RENAME copyright) ================================================ FILE: ports/mhook/vcpkg.json ================================================ { "name": "mhook", "version": "2.5.1", "port-version": 3, "description": "A Windows API hooking library.", "supports": "windows & !uwp & !arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/michaelmiller-sec21/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MichaelMiller-/sec21 REF "v${VERSION}" SHA512 b9aab9d305e435db066f413a8e49d5622e83dc02d8e0ff0150a0edabf1b1dfd286f7aa5a3593b34c6f616fdd79caa3edbfeb09ff3b66aab80c0138aa2ca5950c HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "sec21" CONFIG_PATH lib/cmake/sec21) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/michaelmiller-sec21/usage ================================================ michaelmiller-sec21 provides CMake targets: find_package(sec21 CONFIG REQUIRED) target_link_libraries(main PRIVATE sec21::sec21) ================================================ FILE: ports/michaelmiller-sec21/vcpkg.json ================================================ { "name": "michaelmiller-sec21", "version": "1.0.1", "description": "sec21 is a collection of useful functions and classes.", "homepage": "https://github.com/MichaelMiller-/sec21", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/micro-gl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO micro-gl/micro-gl REF b3c293f461763f68a664efbe1b9c2de8fb19e073 SHA512 8b56b1d9a429ad0e429e0cfd0ca82615a0cb9634f5c56a112c6186bd1fb21853bc6f903292d9924bdfc869602b6e0610d0cfb9c4f2d0369c7606f581074b03d3 HEAD_REF master ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "add_subdirectory(examples)" "") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME microgl CONFIG_PATH "share/microgl/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MD") ================================================ FILE: ports/micro-gl/vcpkg.json ================================================ { "name": "micro-gl", "version-date": "2025-07-11", "description": "Fast, Super Slim, Embeddable, Headers only C++11 vector graphics library, that can run on any 32/64 bits computer without FPU or GPU. No standard library required.", "homepage": "https://micro-gl.github.io/docs/microgl", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/microlog/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO an-dr/microlog REF "v7.0.2" SHA512 0a5714ed47724fde3784a8857a3ffcec41edcb22898ed178af0f37ccf86c3256275adb308d5ac393e01fcd10e7c0b3b597fc1dd91050d7ca5daebac6cf25983b ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/microlog") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/microlog/vcpkg.json ================================================ { "name": "microlog", "version": "7.0.2", "description": "Extensible and configurable logging library for embedded and desktop applications with multi-output and logging topics", "homepage": "https://github.com/an-dr/microlog", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/microsoft-windows-devices-midi2/microsoft-windows-devices-midi2-config.cmake ================================================ set(MIDI2_WINDOWS_SDK_VERSION "@WINDOWS_SDK_VERSION@") set(MIDI2_SDK_VERSION "@MIDI_SDK_VERSION@") get_filename_component(_MIDI2_ROOT "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) get_filename_component(_MIDI2_ROOT "${_MIDI2_ROOT}" DIRECTORY) add_library(Microsoft::Windows::Devices::Midi2 INTERFACE IMPORTED) set_target_properties(Microsoft::Windows::Devices::Midi2 PROPERTIES INTERFACE_COMPILE_FEATURES cxx_std_17 INTERFACE_INCLUDE_DIRECTORIES "${_MIDI2_ROOT}/include" ) unset(_MIDI2_ROOT) ================================================ FILE: ports/microsoft-windows-devices-midi2/portfile.cmake ================================================ set(MINIMUM_WINDOWS_SDK_VERSION "10.0.26100.0") set(MIDI_SDK_VERSION "${VERSION}") set(MIDI_SDK_NUGET_URL "https://github.com/microsoft/MIDI/releases/download/preview-13/Microsoft.Windows.Devices.Midi2.${MIDI_SDK_VERSION}.nupkg") set(MIDI_SDK_SHA512 e950cf87ec74df7b8fb8d06c1c09646f5a9f390fa1d19b9906cc79874f52310bd90a80371f9bb089f953794b05d013d602780a5905ba77aa8d8a1a6205d341d8) message("MIDI2: MIDI SDK Version: ${MIDI_SDK_VERSION}") message("MIDI2: MIDI SDK NuGet URL: ${MIDI_SDK_NUGET_URL}") # Get the MIDI SDK --------------------------------------------------------------------------- # Grab the NuGet package from the official release location vcpkg_download_distfile( MIDISDK_ARCHIVE URLS "${MIDI_SDK_NUGET_URL}" FILENAME "Microsoft.Windows.Devices.Midi2.${MIDI_SDK_VERSION}.zip" SHA512 ${MIDI_SDK_SHA512} ) # NuGet files are just zip files, so we extract it here vcpkg_extract_source_archive( MIDI_SDK_EXTRACTED_FILES ARCHIVE "${MIDISDK_ARCHIVE}" NO_REMOVE_ONE_LEVEL ) set(MIDI2_WINRT_WINMD_SOURCE "${MIDI_SDK_EXTRACTED_FILES}/ref/native/Microsoft.Windows.Devices.Midi2.winmd") file(INSTALL "${MIDI2_WINRT_WINMD_SOURCE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) set(MIDI2_WINRT_WINMD "${CURRENT_PACKAGES_DIR}/share/${PORT}/Microsoft.Windows.Devices.Midi2.winmd") set(_MIDI2_HEADERS_ROOT_FOLDER "${CURRENT_PACKAGES_DIR}/include") # these two bootstrapper files are included in the NuGet package, and are not generated by cppwinrt # the sub path they are placed in is consistent with the NuGet package folder structure set(_MIDI2_HEADERS_INIT_FOLDER "${_MIDI2_HEADERS_ROOT_FOLDER}/winmidi/init/") set(_MIDI2_HEADERS_WINRT_FOLDER "${_MIDI2_HEADERS_ROOT_FOLDER}/winrt/") file(INSTALL FILES "${MIDI_SDK_EXTRACTED_FILES}/build/native/include/winmidi/init/Microsoft.Windows.Devices.Midi2.Initialization.hpp" "${MIDI_SDK_EXTRACTED_FILES}/build/native/include/winmidi/init/WindowsMidiServicesVersion.h" DESTINATION "${_MIDI2_HEADERS_INIT_FOLDER}" ) # Find and use the latest SDK, but needs to be a minimum version as defined above. vcpkg_get_windows_sdk(WINDOWS_SDK_VERSION) if (WINDOWS_SDK_VERSION VERSION_GREATER_EQUAL "${MINIMUM_WINDOWS_SDK_VERSION}") message(STATUS "MIDI2: found Windows SDK: ${WINDOWS_SDK_VERSION}") else() message(FATAL_ERROR "MIDI2: Need a Windows SDK version that is at least ${MINIMUM_WINDOWS_SDK_VERSION}") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/microsoft-windows-devices-midi2-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_download_distfile( LICENSE_FILE URLS "https://github.com/microsoft/MIDI/raw/30f42326e4ec0072cb6fd846a9b1230149fd4888/LICENSE" FILENAME microsoft-windows-devices-midi2-LICENSE.txt SHA512 1d0688424f69c0e7322aeb720e4e28d9af3b5a7a2dc18b8b198156e377a61a6e05bc824528fca0f8e61ac39b137a028029ff82e5229ad400a3cc22e2bdb687ad ) vcpkg_install_copyright( FILE_LIST "${LICENSE_FILE}" ) # run the cppwinrt tool against the winmd in our extracted archive # this requires that it was installed and configured before MIDI was configured # We need to use the latest version that is available, from a dependency port message(STATUS "MIDI2: Generating Microsoft.Windows.Devices.Midi2 headers.") message(STATUS "MIDI2: Using cppwinrt.exe: ${CURRENT_HOST_INSTALLED_DIR}/tools/cppwinrt/cppwinrt.exe") message(STATUS "MIDI2: Including MIDI winmd: ${MIDI2_WINRT_WINMD}") message(STATUS "MIDI2: Using Windows SDK: ${WINDOWS_SDK_VERSION}") set(MIDI2_TEMP_HEADER_FOLDER "${CURRENT_PACKAGES_DIR}/midi2_temp") # this will generate projection headers to the "winrt" subfolder of the provided output folder vcpkg_execute_required_process( COMMAND "${CURRENT_HOST_INSTALLED_DIR}/tools/cppwinrt/cppwinrt.exe" -include "Microsoft.Windows.Devices.Midi2" -exclude "Windows." -reference "${WINDOWS_SDK_VERSION}" -reference "${MIDI2_WINRT_WINMD}" -output "${MIDI2_TEMP_HEADER_FOLDER}" -overwrite -optimize -verbose WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" LOGNAME "Microsoft.Windows.Devices.Midi2.cppwinrt" ) # the cppwinrt tool always generates Windows.* headers even when you ask to exclude them. So we need # to copy only the Midi2 headers to ${CURRENT_PACKAGES_DIR}/include # Consuming projects expect all winrt headers, system and external, to be in the same include folder # and installing and configuring cppwinrt package automatically generates the projection headers # for the system Windows.* types. file(INSTALL "${MIDI2_TEMP_HEADER_FOLDER}/winrt" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "Microsoft.Windows.Devices.Midi2*.h" ) file(REMOVE_RECURSE "${MIDI2_TEMP_HEADER_FOLDER}") ================================================ FILE: ports/microsoft-windows-devices-midi2/usage ================================================ microsoft-windows-devices-midi2 provides CMake integration: find_package(microsoft-windows-devices-midi2 CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::Windows::Devices::Midi2) It also sets the following: MIDI2_WINDOWS_SDK_VERSION to the version of the Windows SDK used to generate the projections MIDI2_SDK_VERSION to the projected version of the Windows MIDI Services SDK ================================================ FILE: ports/microsoft-windows-devices-midi2/vcpkg.json ================================================ { "name": "microsoft-windows-devices-midi2", "version": "1.0.13-preview.13.192", "maintainers": "Pete Brown pmbrown@microsoft.com", "description": "Application SDK for using Windows MIDI Services (MIDI 1.0 and MIDI 2.0) from C++ apps. Microsoft.Windows.Devices.Midi2", "homepage": "https://aka.ms/midi", "license": "MIT", "supports": "windows & (arm64 | arm64ec | x64)", "dependencies": [ { "name": "cppwinrt", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mikktspace/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(mikktspace C) set(CMAKE_DEBUG_POSTFIX d) add_library(${PROJECT_NAME} "") add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories( ${PROJECT_NAME} PUBLIC $ $ ) target_sources( ${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/mikktspace.c ) install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}_target ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) if(NOT MIKKTSPACE_SKIP_HEADERS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mikktspace.h DESTINATION include ) endif() install( EXPORT ${PROJECT_NAME}_target NAMESPACE ${PROJECT_NAME}:: FILE ${PROJECT_NAME}-config.cmake DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/mikktspace/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mmikk/MikkTSpace REF 3e895b49d05ea07e4c2133156cfa94369e19e409 SHA512 3ca433bd4efd0e048138f9efc5ba9021e4f3f78a535ea48733088ba5f43e60aad7f840f00e0597a0c053cda4776177bf6deb14cecf4d172b9b68acf00d5a1ca7 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DMIKKTSPACE_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(INSTALL "${SOURCE_PATH}/mikktspace.h" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mikktspace/vcpkg.json ================================================ { "name": "mikktspace", "version-date": "2020-10-06", "port-version": 3, "description": "A common standard for tangent space used in baking tools to produce normal maps", "homepage": "https://github.com/mmikk/MikkTSpace", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mimalloc/pkgconfig-cxx.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cc7ec5..578d235 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -680,8 +680,13 @@ endif() # pkg-config file support +set(mi_cxx_libraries "") +if(MI_USE_CXX) + set(mi_cxx_libraries ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) + list(REMOVE_ITEM mi_cxx_libraries ${CMAKE_C_IMPLICIT_LINK_LIBRARIES}) +endif() set(mi_pc_libraries "") -foreach(item IN LISTS mi_libraries) +foreach(item IN LISTS mi_libraries mi_cxx_libraries) if(item MATCHES " *[-].*") set(mi_pc_libraries "${mi_pc_libraries} ${item}") else() ================================================ FILE: ports/mimalloc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/mimalloc REF "v${VERSION}" SHA512 5830ceb1bf0d02f50fe586caaad87624ba8eba1bb66e68e8201894221cf6f51854f5a9667fc98358c3b430dae6f9bf529bfcb74d42debe6f40a487265053371c HEAD_REF dev3 PATCHES pkgconfig-cxx.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES override MI_OVERRIDE secure MI_SECURE ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MI_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MI_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DMI_USE_CXX=ON -DMI_BUILD_OBJECT=OFF -DMI_BUILD_TESTS=OFF -DMI_BUILD_STATIC=${MI_BUILD_STATIC} -DMI_BUILD_SHARED=${MI_BUILD_SHARED} -DMI_INSTALL_TOPLEVEL=ON OPTIONS_DEBUG -DMI_DEBUG_FULL=ON OPTIONS_RELEASE -DMI_DEBUG_FULL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mimalloc) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/mimalloc.h" "!defined(MI_SHARED_LIB)" "0 // !defined(MI_SHARED_LIB)" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mimalloc/usage ================================================ mimalloc provides CMake targets: find_package(mimalloc CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mimalloc-static,mimalloc>) To ensure the mimalloc-override.dll is loaded at runtime on Windows with dynamic linkage, it is suggested to insert some call to the mimalloc API in the main function, eg. `mi_version()`. Cf. https://github.com/microsoft/mimalloc/blob/dev/readme.md#dynamic-override-on-windows ================================================ FILE: ports/mimalloc/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(CMAKE_CURRENT_LIST_DIR STREQUAL "${MIMALLOC_CMAKE_DIR}/${MIMALLOC_VERSION_DIR}") set(MIMALLOC_INCLUDE_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") # As in vcpkg.cmake if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") set(MIMALLOC_LIBRARY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib") else() set(MIMALLOC_LIBRARY_DIR "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib") endif() set(MIMALLOC_OBJECT_DIR "MIMALLOC_OBJECT_DIR-NOTFOUND") # not installed set(MIMALLOC_TARGET_DIR "${MIMALLOC_LIBRARY_DIR}") endif() if(TARGET mimalloc AND NOT TARGET mimalloc-static) add_library(mimalloc-static INTERFACE IMPORTED) set_target_properties(mimalloc-static PROPERTIES INTERFACE_LINK_LIBRARIES mimalloc) elseif(TARGET mimalloc-static AND NOT TARGET mimalloc) add_library(mimalloc INTERFACE IMPORTED) set_target_properties(mimalloc PROPERTIES INTERFACE_LINK_LIBRARIES mimalloc-static) endif() ================================================ FILE: ports/mimalloc/vcpkg.json ================================================ { "name": "mimalloc", "version": "3.2.8", "description": "Compact general purpose allocator with excellent performance", "homepage": "https://github.com/microsoft/mimalloc", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "override": { "description": "Override the standard malloc interface (i.e. define entry points for 'malloc', 'free', etc)", "supports": "!windows | !static" }, "secure": { "description": "Use full security mitigations (like guard pages, allocation randomization, double-free mitigation, and free-list corruption detection)" } } } ================================================ FILE: ports/mimicpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DNKpp/mimicpp REF "v${VERSION}" SHA512 823d8b00b48fb42c358888583e3c841eac1f0c6cb1775ecfe1e1cf009b3361406b4af329e356a4ff686e07311486a0738509c620ceb2ec6641937d32455f6560 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMIMICPP_BUILD_TESTS=OFF -DMIMICPP_BUILD_EXAMPLES=OFF -DMIMICPP_CONFIGURE_DOXYGEN=OFF -DMIMICPP_ENABLE_AMALGAMATE_HEADERS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake/mimicpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/mimicpp/vcpkg.json ================================================ { "name": "mimicpp", "version": "9.2.1", "description": "mimic++, a modern and (mostly) macro free mocking framework.", "homepage": "https://github.com/DNKpp/mimicpp", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/minc/avoid-try-run.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dcd594b..a357b90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,6 +174,12 @@ ELSE(HAVE_CLOCK_GETTIME_RT) CHECK_SYMBOL_EXISTS(clock_gettime "time.h" HAVE_CLOCK_GETTIME_SYMBOL) # then check that it's available IF(HAVE_CLOCK_GETTIME_SYMBOL) + if(CMAKE_CROSSCOMPILING) + # Seed try_run results. Override in triplet if needed. + set(HAVE_CLOCK_GETTIME_RUN 0 CACHE STRING "") + set(CMAKE_TRY_COMPILE_TARGET_TYPE EXECUTABLE) + try_compile(HAVE_CLOCK_GETTIME_COMP SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/check_clock_gettime.c) + endif() TRY_RUN(HAVE_CLOCK_GETTIME_RUN HAVE_CLOCK_GETTIME_COMP ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/check_clock_gettime.c ================================================ FILE: ports/minc/build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index caf681a..58b7648 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,8 @@ # Andrew Janke - a.janke@gmail.com # Vladimir S. FONOV - vladimir.fonov@gmail.com +CMAKE_MINIMUM_REQUIRED(VERSION 3.6...3.10) + PROJECT(LIBMINC) SET(LIBMINC_PACKAGE_VERSION_MAJOR 2) @@ -22,8 +24,6 @@ INCLUDE(CTest) ENABLE_TESTING() -CMAKE_MINIMUM_REQUIRED(VERSION 3.6) - IF( POLICY CMP0063 ) CMAKE_POLICY(SET CMP0063 NEW) ENDIF() @@ -445,6 +445,11 @@ IF(UNIX) SET(LIBMINC_STATIC_LIBRARIES_CONFIG ${LIBMINC_STATIC_LIBRARIES_CONFIG} m dl ${RT_LIBRARY_NAME}) ENDIF(UNIX) +if(WIN32) + add_definitions(-DMNCAPI=) + list(APPEND LIBMINC_LIBRARIES_CONFIG ws2_32) +endif() + SET(minc_LIB_SRCS ${minc2_LIB_SRCS} ${minc_common_SRCS}) SET(minc_HEADERS ${minc2_HEADERS} ${minc_common_HEADERS}) @@ -513,7 +518,7 @@ IF( LIBMINC_INSTALL_LIB_DIR ) ${LIBMINC_EXPORTED_TARGETS} LIBRARY DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries ARCHIVE DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries - RUNTIME DESTINATION ${LIBMINC_INSTALL_LIB_DIR} COMPONENT libraries + RUNTIME DESTINATION ${LIBMINC_INSTALL_BIN_DIR} COMPONENT libraries ) ENDIF( LIBMINC_INSTALL_LIB_DIR ) ================================================ FILE: ports/minc/cmake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a80e172..dcd594b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,13 +63,19 @@ IF(NOT LIBMINC_EXTERNALLY_CONFIGURED) SET (LIBMINC_INSTALL_DATA_DIR share) IF(LIBMINC_MINC1_SUPPORT) - FIND_PACKAGE(NETCDF REQUIRED) + find_package(netCDF CONFIG REQUIRED) + set(NETCDF_LIBRARY netCDF::netcdf) ENDIF(LIBMINC_MINC1_SUPPORT) # external packages FIND_PACKAGE(ZLIB REQUIRED) - SET(HDF5_NO_FIND_PACKAGE_CONFIG_FILE ON) - FIND_PACKAGE(HDF5 REQUIRED COMPONENTS C ) + set(ZLIB_LIBRARY ZLIB::ZLIB) + find_package(hdf5 CONFIG REQUIRED) + if (TARGET hdf5::hdf5-shared) + SET(HDF5_LIBRARIES hdf5::hdf5-shared) + elseif (TARGET hdf5::hdf5-static) + SET(HDF5_LIBRARIES hdf5::hdf5-static) + endif() IF(LIBMINC_USE_NIFTI) IF (LIBMINC_USE_SYSTEM_NIFTI) @@ -533,7 +539,7 @@ ENDIF() # config for install dir -SET(LIBMINC_USE_FILE_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib/cmake/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake" ) +SET(LIBMINC_USE_FILE_CONFIG "\${CMAKE_CURRENT_LIST_DIR}/Use${LIBMINC_EXTERNAL_LIB_PREFIX}LIBMINC.cmake" ) SET(LIBMINC_INCLUDE_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/include" ) SET(LIBMINC_LIBRARY_DIRS_CONFIG "\${LIBMINC_INSTALL_PREFIX}/lib" ) SET(LIBMINC_STATIC_LIBRARIES_CONFIG "" ) diff --git a/LIBMINCConfig.cmake.in b/LIBMINCConfig.cmake.in index f8f7eb6..131f54f 100644 --- a/LIBMINCConfig.cmake.in +++ b/LIBMINCConfig.cmake.in @@ -1,5 +1,11 @@ # LIBMINC CMake configuration file +include(CMakeFindDependencyMacro) +find_dependency(ZLIB) +find_dependency(hdf5 CONFIG) +if("@LIBMINC_MINC1_SUPPORT@") + find_dependency(netCDF CONFIG) +endif() get_filename_component(LIBMINC_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) get_filename_component(LIBMINC_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH ) @@ -21,7 +27,8 @@ set(LIBMINC_NIFTI_SUPPORT @LIBMINC_NIFTI_SUPPORT@) #set(NIFTI_LIBRARIES "@NIFTI_LIBRARIES@") set(LIBMINC_INCLUDE_DIRS "@LIBMINC_INCLUDE_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/include -set(LIBMINC_LIBRARY_DIRS "@LIBMINC_LIBRARY_DIRS_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib +find_library(Z_VCPKG_LIBMINC_LIBRARY NAMES minc2 REQUIRED) # pick from vcpkg search paths +get_filename_component(LIBMINC_LIBRARY_DIRS "${Z_VCPKG_LIBMINC_LIBRARY}" PATH) set(LIBMINC_USE_FILE "@LIBMINC_USE_FILE_CONFIG@") # ${LIBMINC_INSTALL_PREFIX}/lib/UseLIBMINC.cmake set(LIBMINC_LIBRARIES "@LIBMINC_LIBRARIES_CONFIG@") ================================================ FILE: ports/minc/portfile.cmake ================================================ string(REGEX REPLACE "(release-[0-9][.][0-9])[.]([0-9])\$" "\\1.0\\2" git_tag "release-${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BIC-MNI/libminc REF ${git_tag} SHA512 78d5c14b82c8da5de7651de22fe47ae934925b27a626b8685b19554b7a35240eb5ab6d4da6232ce046e9e0f25619bbfae1d7c0fc34994d935986dc151d7b93a0 HEAD_REF master PATCHES avoid-try-run.diff build.patch cmake-config.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "minc1" LIBMINC_MINC1_SUPPORT ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Symbols are not properly exported endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" LIBMINC_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DLIBMINC_BUILD_SHARED_LIBS=${LIBMINC_BUILD_SHARED_LIBS} -DLIBMINC_USE_SYSTEM_NIFTI=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake PACKAGE_NAME libminc) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/minc/usage ================================================ minc provides CMake integration: find_package(LIBMINC CONFIG REQUIRED) target_include_directories(main PRIVATE ${LIBMINC_INCLUDE_DIRS}) target_link_directories(main PRIVATE ${LIBMINC_LIBRARY_DIRS}) target_link_libraries(main PRIVATE ${LIBMINC_LIBRARIES}) LIBMINC_LIBRARIES may include imported targets. Downstream CMake config may need to add: include(CMakeFindDependencyMacro) find_dependency(LIBMINC CONFIG) ================================================ FILE: ports/minc/vcpkg.json ================================================ { "name": "minc", "version": "2.4.6", "description": "MINC - Medical Image NetCDF or MINC isn't netCDF", "homepage": "https://github.com/BIC-MNI/libminc", "license": null, "dependencies": [ { "name": "hdf5", "default-features": false }, "nifticlib", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "minc1": { "description": "Support minc1 file format, requires NETCDF", "dependencies": [ { "name": "netcdf-c", "default-features": false } ] } } } ================================================ FILE: ports/minhook/fix-usage.patch ================================================ diff --git a/cmake/minhook-config.cmake.in b/cmake/minhook-config.cmake.in index 14e6463..28fa17c 100644 --- a/cmake/minhook-config.cmake.in +++ b/cmake/minhook-config.cmake.in @@ -36,4 +36,4 @@ set(MINHOOK_FOUND ON) set_and_check(MINHOOK_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/") set_and_check(MINHOOK_LIBRARY_DIRS "${PACKAGE_PREFIX_DIR}/lib") -include("${PACKAGE_PREFIX_DIR}/lib/minhook/minhook-targets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/minhook-targets.cmake") ================================================ FILE: ports/minhook/portfile.cmake ================================================ if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(BUILD_ARCH "Win32") set(OUTPUT_DIR "Win32") elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(BUILD_ARCH "x64") set(OUTPUT_DIR "Win64") else() message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TsudaKageyu/minhook REF "v${VERSION}" SHA512 8a33233598b56ad9da44d22d470c2432f68364dac31bc719fcd6b085e681fa10ddd41865fbde056ee7f4e7a075cc135344b6bf444eadbd7e7314ee1bedfd89b5 HEAD_REF master PATCHES fix-usage.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/minhook) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/minhook/vcpkg.json ================================================ { "name": "minhook", "version": "1.3.4", "description": "The Minimalistic x86/x64 API Hooking Library for Windows.", "homepage": "https://github.com/TsudaKageyu/minhook", "license": "BSD-2-Clause", "supports": "windows & !uwp & !arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/miniaudio/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mackron/miniaudio REF "${VERSION}" SHA512 8cdfe5cd66dd84628430a24026b307c21158b4776492eec234c2ce3cf0da3ae26fe8162f3ed285502f6002fdf252ccb660f7c216e044e3c306b75b0997700b45 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/miniaudio.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/miniaudio/vcpkg.json ================================================ { "name": "miniaudio", "version": "0.11.25", "description": "Audio playback and capture library written in C, in a single source file", "homepage": "https://github.com/mackron/miniaudio", "license": "Unlicense OR MIT-0" } ================================================ FILE: ports/minifb/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emoon/minifb REF 2ce2449b1bc8d7c6d20c31b86244f1e540f2e788 # 2023-09-21 SHA512 cbadc06df99f833fedcd9eb9d5afab4572272a9dfd0f4084a2b79a64dc98f19bcddbb6f43992b16f005d26054c454e3cfc34e3e210cdd93ad1adb89e19463a4d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMINIFB_BUILD_EXAMPLES=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/minifb/usage ================================================ minifb provides CMake targets: find_package(minifb CONFIG REQUIRED) target_link_libraries(main PRIVATE minifb::minifb) ================================================ FILE: ports/minifb/vcpkg.json ================================================ { "name": "minifb", "version-date": "2023-09-21", "description": "MiniFB (Mini FrameBuffer) is a small cross platform library that makes it easy to render (32-bit) pixels in a window.", "homepage": "https://github.com/emoon/minifb", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/minimp3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lieff/minimp3 REF afb604c06bc8beb145fecd42c0ceb5bda8795144 # committed on 2021-11-30 SHA512 633da0b20982f6f22c87d872c69626b2939ffb4519339cd0c090d7538308007cf633c07af57020cd2332a75c6e7b9bf3ebd5bda1af59dc96a4f0e85ce1b3f751 HEAD_REF master ) file(COPY "${SOURCE_PATH}/minimp3.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(COPY "${SOURCE_PATH}/minimp3_ex.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/minimp3/vcpkg.json ================================================ { "name": "minimp3", "version-date": "2021-11-30", "description": "Minimalistic, single-header library for decoding MP3. minimp3 is designed to be small, fast (with SSE and NEON support), and accurate (ISO conformant).", "homepage": "https://github.com/lieff/minimp3", "license": "CC0-1.0" } ================================================ FILE: ports/minio-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO minio/minio-cpp REF "v${VERSION}" SHA512 c0748e757513aea394f76a0286294e668421096bfa64892d66aef69d611bcbda7c4ccf9d4df2502a9a92206b613c7d27011f4c9948e25b286feff8b64c952b1e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME miniocpp CONFIG_PATH "lib/cmake/miniocpp") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/minio-cpp/vcpkg.json ================================================ { "name": "minio-cpp", "version": "0.3.0", "description": "The MinIO C++ Client SDK provides simple APIs to access any Amazon S3 compatible object storage", "homepage": "https://github.com/minio/minio-cpp", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "curlpp", { "name": "inih", "features": [ "cpp" ] }, "nlohmann-json", "openssl", "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/miniply/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bde25da..e1129db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,19 +2,29 @@ cmake_minimum_required(VERSION 3.5) project(miniply LANGUAGES CXX) +include(GNUInstallDirs) + set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -include_directories(.) +add_library(miniply miniply.cpp) + +target_include_directories(miniply + PUBLIC + $ + $) + +install(FILES ${CMAKE_SOURCE_DIR}/miniply.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +install(TARGETS miniply EXPORT miniply-config + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + INCLUDES DESTINATION include) -add_executable(miniply-perf - miniply.cpp - miniply.h - extra/miniply-perf.cpp -) +install(EXPORT miniply-config + FILE unofficial-miniply-config.cmake + NAMESPACE unofficial::miniply:: + DESTINATION share/unofficial-miniply) -add_executable(miniply-info - miniply.cpp - miniply.h - extra/miniply-info.cpp -) ================================================ FILE: ports/miniply/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vilya/miniply REF 1a235c70390fadf789695c9ccbf285ae712416b3 SHA512 856bb39bd36dab588026b9ee886a996bd697df5c1a24de2abff822e037a0fb7af0be19dca5e2f6ccc524453b0b9ee6e225510565ca78f6b965dd7406ba67dac1 HEAD_REF master PATCHES fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-miniply) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/miniply/vcpkg.json ================================================ { "name": "miniply", "version-date": "2022-09-15", "port-version": 1, "description": "A fast and easy-to-use PLY parsing library in a single c++11 header and cpp file", "homepage": "https://github.com/vilya/miniply", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/minisat-master-keying/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile( ADD_MISSING_HEADERS URLS https://github.com/master-keying/minisat/commit/dde8a20c9c5ab0d2333ba7a338a7f4a769632b75.patch?full_index=1 SHA512 14b1ea9e72d969b0931a6ee571e4d7a591b6bdadd6b9c1e3696d902ab85caf22e0a65e4aadff3c16e55b2d5b04fa9f007bc015b6e914425c9932ca731f8445f2 FILENAME dde8a20c9c5ab0d2333ba7a338a7f4a769632b75.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO master-keying/minisat REF v2.3.6 SHA512 48E7AC1C97EA58070EAB9310F977404295E881B1403D527A33E059A0BB5A16CAA9AF2FA9E5230AD7E53E008B83077E300B3BAEEB0C220BE4E52B6B85887A05E1 HEAD_REF master PATCHES "${ADD_MISSING_HEADERS}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MiniSat CONFIG_PATH lib/cmake/MiniSat) 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") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/minisat-master-keying/vcpkg.json ================================================ { "name": "minisat-master-keying", "version": "2.3.6", "port-version": 1, "description": [ "A minimalistic high-performance SAT solver", "This is a modernized, cross-platform, CMake-enabled fork of the original MiniSat." ], "homepage": "https://github.com/master-keying/minisat", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/minitrace/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hrydgard/minitrace REF a45ca4f58c8af2fc4d4d6042e68aa68bfea422c9 SHA512 5ea6fb58a1f2397444e58e449fd32b4b45f5a15afe8f8694115a0025f5444cf493ba8228a58f0772ca1dc149fd1633fc897b0a264b8927cfd6cc15eefa40c336 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/minitrace" RENAME copyright) ================================================ FILE: ports/minitrace/vcpkg.json ================================================ { "name": "minitrace", "version-date": "2023-04-23", "description": "Simple C/C++ library for producing JSON traces suitable for Chrome's built-in trace viewer.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/miniupnpc/portfile.cmake ================================================ string(REPLACE "." "_" MINIUPNPC_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO miniupnp/miniupnp REF "miniupnpc_${MINIUPNPC_VERSION}" SHA512 f8c79d2fb19de0ec3d053200320abf2ce3f7552b04f8f3f0b175577ee93e6c0bfb5c18a863197216436ebe9d44dd429fba407e0da83a1270dd3d46b380ac6ee1 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MINIUPNPC_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MINIUPNPC_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/miniupnpc" OPTIONS -DUPNPC_BUILD_STATIC=${MINIUPNPC_BUILD_STATIC} -DUPNPC_BUILD_SHARED=${MINIUPNPC_BUILD_SHARED} -DUPNPC_BUILD_TESTS=OFF -DUPNPC_BUILD_SAMPLE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "/lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") else() file(GLOB RELEASE_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe") if(${RELEASE_TOOLS}) vcpkg_copy_tools(TOOL_NAMES ${RELEASE_TOOLS} AUTO_CLEAN) endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/miniupnpc/vcpkg.json ================================================ { "name": "miniupnpc", "version": "2.3.2", "description": "UPnP client library/tool to access Internet Gateway Devices", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/miniz/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO richgel999/miniz REF "${VERSION}" SHA512 b2116d01161e6ba978541da3b1040338158a2da0d4559ae2817c1bd19a56472476b6984d438e7b8451aa0142d0405858342d719a76bd3bd6fd2df3ff6edc0700 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_FUZZERS=OFF -DBUILD_TESTS=OFF -DINSTALL_PROJECT=ON -DCMAKE_POLICY_DEFAULT_CMP0057=NEW ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/miniz) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/miniz/vcpkg.json ================================================ { "name": "miniz", "version": "3.1.1", "description": "Single C source file zlib-replacement library", "homepage": "https://github.com/richgel999/miniz", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/minizip/0001-remove-ifndef-NOUNCRYPT.patch ================================================ From a6fd3992d44053a523a67aa16f5ae88fecfb20e1 Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Tue, 22 Sep 2020 14:09:53 -0700 Subject: [PATCH 1/2] remove `#ifndef NOUNCRYPT` enable decrypt support for password-encrypted ZIP files --- contrib/minizip/unzip.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/contrib/minizip/unzip.c b/contrib/minizip/unzip.c index bcfb941..1895a0f 100644 --- a/contrib/minizip/unzip.c +++ b/contrib/minizip/unzip.c @@ -68,10 +68,6 @@ #include #include -#ifndef NOUNCRYPT - #define NOUNCRYPT -#endif - #include "zlib.h" #include "unzip.h" -- 2.24.3 (Apple Git-128) ================================================ FILE: ports/minizip/0002-add-declaration-for-mkdir.patch ================================================ From 6c38b6f544b55f9fc554f0fe22e2cbaddfaed7f8 Mon Sep 17 00:00:00 2001 From: Nicole Mazzuca Date: Tue, 22 Sep 2020 14:15:04 -0700 Subject: [PATCH 2/2] add declaration for mkdir It's invalid in C99 to implicitly declare mkdir --- contrib/minizip/miniunz.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contrib/minizip/miniunz.c b/contrib/minizip/miniunz.c index 3d65401..5341af2 100644 --- a/contrib/minizip/miniunz.c +++ b/contrib/minizip/miniunz.c @@ -12,6 +12,10 @@ Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) */ +#if !defined(_WIN32) +#include +#endif + #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) #ifndef __USE_FILE_OFFSET64 #define __USE_FILE_OFFSET64 -- 2.24.3 (Apple Git-128) ================================================ FILE: ports/minizip/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(minizip LANGUAGES C) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() set(SRC ioapi.c unzip.c zip.c mztools.c ) set(HEADERS crypt.h ioapi.h unzip.h zip.h mztools.h ) if(WIN32) list(APPEND SRC iowin32.c minizip-win32.def) list(APPEND HEADERS iowin32.h) endif() add_library(minizip ${SRC}) target_include_directories(minizip PUBLIC $) find_package(ZLIB REQUIRED) target_compile_definitions(minizip PRIVATE -D_ZLIB_H) target_link_libraries(minizip PUBLIC ZLIB::ZLIB) set(MINIZIP_REQUIRES zlib) if(ENABLE_BZIP2) message(STATUS "Building with bzip2 support") find_package(BZip2 REQUIRED) target_compile_definitions(minizip PRIVATE -DHAVE_BZIP2=1) target_link_libraries(minizip PUBLIC BZip2::BZip2) list(APPEND MINIZIP_REQUIRES bzip2) else() message(STATUS "Building without bzip2 support") endif() if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") target_compile_definitions(minizip PRIVATE -DIOWIN32_USING_WINRT_API) endif() if(NOT DISABLE_INSTALL_TOOLS) add_executable(minizip_bin minizip.c) add_executable(miniunz_bin miniunz.c) target_link_libraries(minizip_bin minizip) target_link_libraries(miniunz_bin minizip) set_target_properties(minizip_bin PROPERTIES OUTPUT_NAME minizip) set_target_properties(miniunz_bin PROPERTIES OUTPUT_NAME miniunz) install ( TARGETS minizip_bin miniunz_bin RUNTIME DESTINATION bin ) endif() install( TARGETS minizip EXPORT unofficial-minizipTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) include(CMakePackageConfigHelpers) write_basic_package_version_file("${PROJECT_BINARY_DIR}/unofficial-minizipConfigVersion.cmake" VERSION "${PACKAGE_VERSION}" COMPATIBILITY SameMajorVersion ) configure_package_config_file(unofficial-minizipConfig.cmake.in unofficial-minizipConfig.cmake INSTALL_DESTINATION share/unofficial-minizip ) install(FILES "${PROJECT_BINARY_DIR}/unofficial-minizipConfig.cmake" "${PROJECT_BINARY_DIR}/unofficial-minizipConfigVersion.cmake" DESTINATION share/unofficial-minizip ) install(EXPORT unofficial-minizipTargets NAMESPACE unofficial::minizip:: DESTINATION share/unofficial-minizip ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/minizip) endif() list(JOIN MINIZIP_REQUIRES " " MINIZIP_REQUIRES) set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/minizip.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/minizip.pc" @ONLY ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/minizip.pc" DESTINATION lib/pkgconfig ) ================================================ FILE: ports/minizip/android-fileapi.patch ================================================ diff --git a/contrib/minizip/ioapi.h b/contrib/minizip/ioapi.h index c588a18..b5395e2 100644 --- a/contrib/minizip/ioapi.h +++ b/contrib/minizip/ioapi.h @@ -21,6 +21,12 @@ #ifndef _ZLIBIOAPI64_H #define _ZLIBIOAPI64_H +#if defined(__ANDROID_API__) && __ANDROID_API__ < 24 + // Cf. https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md#32_bit-and + // stdio functions for off_t are incomplete. + #define USE_FILE32API +#endif + #if (!defined(_WIN32)) && (!defined(WIN32)) && (!defined(__APPLE__)) // Linux needs this to support file operation on files larger then 4+GB ================================================ FILE: ports/minizip/lib-to-def.cmake ================================================ function(lib_to_def) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW OR NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") return() endif() cmake_parse_arguments(PARSE_ARGV 0 arg "" "BASENAME;REGEX" "") if(NOT arg_BASENAME) message(FATAL_ERROR "BASENAME is a required argument.") endif() if(NOT arg_REGEX) set(arg_REGEX "[^ ]+") endif() set(logfile "${CURRENT_BUILDTREES_DIR}/dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}-symbols.log") vcpkg_execute_required_process( COMMAND dumpbin /symbols "/OUT:${logfile}" "${CURRENT_PACKAGES_DIR}/lib/${arg_BASENAME}.lib" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}" ) file(STRINGS "${logfile}" symbols REGEX "^... ........ SECT.. notype .. External [|] ${arg_REGEX}") list(TRANSFORM symbols REPLACE "^[^|]+[|] " " ") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(REPLACE " _" " " symbols "${symbols}") endif() list(JOIN symbols "\n" symbols) set(symbols "EXPORTS\n${symbols}\n") set(def_file "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def") if(NOT EXISTS "${def_file}") set(def_file "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-win32.def") endif() if(EXISTS "${def_file}") file(READ "${def_file}" original_symbols) else() set(original_symbols "") endif() if(NOT symbols STREQUAL original_symbols) file(WRITE "${CURRENT_BUILDTREES_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def.log" "${symbols}") message(SEND_ERROR "${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def has changed.") endif() endfunction() ================================================ FILE: ports/minizip/minizip-win32.def ================================================ EXPORTS fill_win32_filefunc fill_win32_filefunc64 fill_win32_filefunc64A fill_win32_filefunc64W win32_open64_file_func win32_open64_file_funcA win32_open64_file_funcW win32_open_file_func win32_read_file_func win32_write_file_func win32_tell_file_func win32_tell64_file_func win32_seek_file_func win32_seek64_file_func win32_close_file_func win32_error_file_func unzRepair zip_copyright zipOpen zipOpen64 zipOpen2 zipOpen2_64 zipOpen3 zipOpenNewFileInZip zipOpenNewFileInZip64 zipOpenNewFileInZip2 zipOpenNewFileInZip2_64 zipOpenNewFileInZip3 zipOpenNewFileInZip3_64 zipOpenNewFileInZip4 zipOpenNewFileInZip4_64 zipWriteInFileInZip zipCloseFileInZip zipCloseFileInZipRaw zipCloseFileInZipRaw64 zipClose zipRemoveExtraInfoBlock unz_copyright unzStringFileNameCompare unzOpen unzOpen64 unzOpen2 unzOpen2_64 unzClose unzGetGlobalInfo unzGetGlobalInfo64 unzGetGlobalComment unzGoToFirstFile unzGoToNextFile unzLocateFile unzGetFilePos unzGoToFilePos unzGetFilePos64 unzGoToFilePos64 unzGetCurrentFileInfo64 unzGetCurrentFileInfo unzGetCurrentFileZStreamPos64 unzOpenCurrentFile unzOpenCurrentFilePassword unzOpenCurrentFile2 unzOpenCurrentFile3 unzCloseCurrentFile unzReadCurrentFile unztell unztell64 unzeof unzGetLocalExtrafield unzGetOffset64 unzGetOffset unzSetOffset64 unzSetOffset fill_fopen64_filefunc fill_fopen_filefunc call_zopen64 call_zseek64 call_ztell64 fill_zlib_filefunc64_32_def_from_filefunc32 ================================================ FILE: ports/minizip/minizipConfig.cmake.in ================================================ message(WARNING "'find_package(minizip CONFIG)' is deprecated. Please use 'find_package(unofficial-minizip CONFIG)' instead.") include(CMakeFindDependencyMacro) find_dependency(unofficial-minizip ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG) if(NOT TARGET unofficial::minizip::minizip) set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE) elseif(NOT TARGET minizip::minizip) add_library(minizip::minizip INTERFACE IMPORTED) set_target_properties(minizip::minizip PROPERTIES INTERFACE_LINK_LIBRARIES unofficial::minizip::minizip) endif() ================================================ FILE: ports/minizip/pkgconfig.patch ================================================ diff --git a/contrib/minizip/minizip.pc.in b/contrib/minizip/minizip.pc.in index 69b5b7f..9e43084 100644 --- a/contrib/minizip/minizip.pc.in +++ b/contrib/minizip/minizip.pc.in @@ -8,5 +8,5 @@ Description: Minizip zip file manipulation library Requires: Version: @PACKAGE_VERSION@ Libs: -L${libdir} -lminizip -Libs.private: -lz +Requires.private: @MINIZIP_REQUIRES@ Cflags: -I${includedir} ================================================ FILE: ports/minizip/portfile.cmake ================================================ # When zlib updated, the minizip port should be updated at the same time vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO madler/zlib REF "v${VERSION}" SHA512 8c9642495bafd6fad4ab9fb67f09b268c69ff9af0f4f20cf15dfc18852ff1f312bd8ca41de761b3f8d8e90e77d79f2ccacd3d4c5b19e475ecf09d021fdfe9088 HEAD_REF master PATCHES 0001-remove-ifndef-NOUNCRYPT.patch 0002-add-declaration-for-mkdir.patch pkgconfig.patch android-fileapi.patch ) # Maintainer switch: Temporarily set this to 1 to re-generate the lists # of exported symbols. This is needed when the version is bumped. set(GENERATE_SYMBOLS 0) if(GENERATE_SYMBOLS) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) else() set(GENERATE_SYMBOLS 0) endif() endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 ENABLE_BZIP2 INVERTED_FEATURES tools DISABLE_INSTALL_TOOLS ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/minizip-win32.def" "${CMAKE_CURRENT_LIST_DIR}/unofficial-minizipConfig.cmake.in" DESTINATION "${SOURCE_PATH}/contrib/minizip" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/contrib/minizip" OPTIONS ${FEATURE_OPTIONS} -DPACKAGE_VERSION=${VERSION} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-minizip) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES minizip miniunz AUTO_CLEAN) endif() if ("bzip2" IN_LIST FEATURES) file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/minizip/*.h") foreach(HEADER ${HEADERS}) vcpkg_replace_string("${HEADER}" "#ifdef HAVE_BZIP2" "#if 1" IGNORE_UNCHANGED) endforeach() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/minizipConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/minizipConfig.cmake" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/contrib/minizip/MiniZip64_info.txt") if(GENERATE_SYMBOLS) include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake") lib_to_def(BASENAME minizip REGEX "(call|fill|unz|win32|zip)") endif() ================================================ FILE: ports/minizip/unofficial-minizipConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(ZLIB) if ("@ENABLE_BZIP2@") find_dependency(BZip2) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-minizipTargets.cmake") check_required_components(unofficial-minizip) ================================================ FILE: ports/minizip/usage ================================================ minizip provides CMake targets: find_package(unofficial-minizip CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::minizip::minizip) ================================================ FILE: ports/minizip/vcpkg.json ================================================ { "name": "minizip", "version": "1.3.1", "port-version": 1, "description": "Minizip zip file manipulation library", "homepage": "https://github.com/madler/zlib", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true }, "zlib" ], "features": { "bzip2": { "description": "Support compression using bzip2 library", "dependencies": [ "bzip2" ] }, "tools": { "description": "Install tools", "supports": "!ios" } } } ================================================ FILE: ports/minizip-ng/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c684e3e..c3b6fff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -254,7 +254,7 @@ if(MZ_BZIP2) list(APPEND MINIZIP_LIB ${BZIP2_LIBRARIES}) list(APPEND MINIZIP_LBD ${BZIP2_LIBRARY_DIRS}) - set(PC_PRIVATE_LIBS "${PC_PRIVATE_LIBS} -lbz2") + set(PC_PRIVATE_DEPS "${PC_PRIVATE_DEPS} bzip2") elseif(MZ_FETCH_LIBS) clone_repo(bzip2 https://sourceware.org/git/bzip2.git master) @@ -298,7 +298,6 @@ if(MZ_LZMA) if(NOT MZ_FORCE_FETCH_LIBS) find_package(PkgConfig QUIET) if(PKGCONFIG_FOUND) - pkg_check_modules(LIBLZMA liblzma) endif() if(NOT LIBLZMA_FOUND) find_package(LibLZMA QUIET) @@ -313,7 +312,7 @@ if(MZ_LZMA) list(APPEND MINIZIP_LIB ${LIBLZMA_LIBRARIES}) list(APPEND MINIZIP_LBD ${LIBLZMA_LIBRARY_DIRS}) - set(PC_PRIVATE_LIBS "${PC_PRIVATE_LIBS} -llzma") + set(PC_PRIVATE_DEPS "${PC_PRIVATE_DEPS} liblzma") elseif(MZ_FETCH_LIBS) set(BUILD_TESTING OFF CACHE BOOL "Build lzma tests" FORCE) @@ -344,10 +343,9 @@ if(MZ_ZSTD) if(NOT MZ_FORCE_FETCH_LIBS) find_package(PkgConfig QUIET) if(PKGCONFIG_FOUND) - pkg_check_modules(ZSTD libzstd) endif() if(NOT ZSTD_FOUND) - find_package(ZSTD QUIET) + find_package(ZSTD NAMES zstd REQUIRED) if(ZSTD_FOUND) if(TARGET zstd::libzstd_static) list(APPEND ZSTD_LIBRARIES zstd::libzstd_static) @@ -365,7 +363,7 @@ if(MZ_ZSTD) list(APPEND MINIZIP_LIB ${ZSTD_LIBRARIES}) list(APPEND MINIZIP_LBD ${ZSTD_LIBRARY_DIRS}) - set(PC_PRIVATE_LIBS "${PC_PRIVATE_LIBS} -lzstd") + set(PC_PRIVATE_DEPS "${PC_PRIVATE_DEPS} libzstd") elseif(MZ_FETCH_LIBS) set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "Build zstd programs") @@ -405,7 +403,6 @@ if(MZ_OPENSSL) # Check to see if openssl installation is present find_package(PkgConfig) if(PKGCONFIG_FOUND) - pkg_check_modules(OPENSSL openssl) endif() if(NOT OPENSSL_FOUND) find_package(OpenSSL) @@ -426,8 +423,8 @@ if(MZ_OPENSSL) endif() foreach(i ${OPENSSL_LIBRARIES}) - set(PC_PRIVATE_LIBS "${PC_PRIVATE_LIBS} -l${i}") endforeach() + set(PC_PRIVATE_DEPS "${PC_PRIVATE_DEPS} openssl") else() message(STATUS "OpenSSL library not found") ================================================ FILE: ports/minizip-ng/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zlib-ng/minizip-ng REF "${VERSION}" SHA512 9ea5dde14acd2f7d1efd0e38b11017b679d3aaabac61552f9c5f4c7f45f2563543e0fbb2d74429c6b1b9c37d8728ebc4f1cf0efad5f71807c11bb8a2a681a556 HEAD_REF master PATCHES dependencies.diff ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pkcrypt MZ_PKCRYPT wzaes MZ_WZAES openssl MZ_OPENSSL bzip2 MZ_BZIP2 lzma MZ_LZMA zlib MZ_ZLIB zstd MZ_ZSTD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DMZ_FETCH_LIBS=OFF -DMZ_LIB_SUFFIX=-ng -DMZ_ICONV=OFF -DCMAKE_DISABLE_FIND_PACKAGE_ZLIBNG=ON # minizip-ng 4.0.10 searches for zlib-ng first before zlib - we provide zlib ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/minizip-ng) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/minizip-ng/vcpkg.json ================================================ { "name": "minizip-ng", "version": "4.1.0", "description": "minizip-ng is a zip manipulation library written in C that is supported on Windows, macOS, and Linux.", "homepage": "https://github.com/zlib-ng/minizip-ng", "license": "Zlib", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "bzip2", "lzma", "pkcrypt", "wzaes", "zlib", "zstd" ], "features": { "bzip2": { "description": "Enables BZIP2 compression", "dependencies": [ "bzip2" ] }, "lzma": { "description": "Enables LZMA compression", "dependencies": [ "liblzma" ] }, "openssl": { "description": "Enables OpenSSL for encryption", "dependencies": [ "openssl" ] }, "pkcrypt": { "description": "Enables PKWARE traditional encryption" }, "wzaes": { "description": "Enables WinZIP AES encryption", "dependencies": [ { "name": "minizip-ng", "default-features": false, "features": [ "openssl" ], "platform": "!windows & !osx" } ] }, "zlib": { "description": "Enables ZLIB compression", "dependencies": [ "zlib" ] }, "zstd": { "description": "Enables ZSTD compression", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/mio/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mandreyel/mio REF 8b6b7d878c89e81614d05edca7936de41ccdd2da SHA512 444131d4839f2244dd88722f5bfad2cfa47336e2a4405518a2ff8f0d80f2755321d7d627f8d5b890864a5dc3f3f810a1c7dd6588ff3e9039a6ef7d010e0f2f06 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dmio.tests=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/mio) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mio/vcpkg.json ================================================ { "name": "mio", "version-date": "2023-03-03", "description": "Cross-platform header-only C++11 library for memory mapped file IO.", "homepage": "https://github.com/mandreyel/mio", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mlpack/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mlpack/mlpack REF "${VERSION}" SHA512 3ca6a621f14c99202e18eb61defd90420e230791a057ee9d9f8299630904a052da91208bd30ebbb080fd9bc49296a8a9f9fdb023b0408c0d4859792b8929f970 HEAD_REF master ) # Copy the header files file(GLOB HEADERS_SRC "${SOURCE_PATH}/src/*.hpp") file(GLOB HEADERS_MLPACK "${SOURCE_PATH}/src/mlpack/*.hpp") file(COPY ${HEADERS_SRC} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY ${HEADERS_MLPACK} DESTINATION "${CURRENT_PACKAGES_DIR}/include/mlpack") file(COPY "${SOURCE_PATH}/src/mlpack/methods/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mlpack/methods") file(COPY "${SOURCE_PATH}/src/mlpack/core/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mlpack/core") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/mlpack/usage ================================================ The package mlpack is header only and can be used from CMake via: find_path(MLPACK_INCLUDE_DIRS "mlpack.hpp") target_include_directories(main PRIVATE ${MLPACK_INCLUDE_DIRS}) ================================================ FILE: ports/mlpack/vcpkg.json ================================================ { "name": "mlpack", "version": "4.7.0", "description": "mlpack is an intuitive, fast, and flexible header-only C++ machine learning library with bindings to other languages.", "homepage": "https://github.com/mlpack/mlpack", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "armadillo", "cereal", "ensmallen", "stb" ] } ================================================ FILE: ports/mman/mman-static.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4696ad4..a72bbce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,10 @@ option (BUILD_TESTS "tests?" OFF) set (headers mman.h) set (sources mman.c) +if(NOT BUILD_SHARED_LIBS) + add_definitions(-DMMANSHARED_EXPORT=) +endif() + add_library (mman ${sources}) install (TARGETS mman RUNTIME DESTINATION bin diff --git a/mman.h b/mman.h index 4065bc6..435ea26 100644 --- a/mman.h +++ b/mman.h @@ -15,11 +15,13 @@ #include <_mingw.h> #endif +#if !defined(MMANSHARED_EXPORT) #if defined(MMAN_LIBRARY) #define MMANSHARED_EXPORT __declspec(dllexport) #else #define MMANSHARED_EXPORT __declspec(dllimport) #endif +#endif /* Determine offset type */ #include ================================================ FILE: ports/mman/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO witwall/mman-win32 REF f5ff813c53935c3078f48e1f03a6944c4e7b459c SHA512 49c9a63a0a3c6fa585a76e65425f6fb1fdaa23cc87e53d5afb7a1298bcd4956298c076ee78f24dd5df5f5a0c5f6244c6abb63b40818e4d2546185fa37a73bf0d HEAD_REF master PATCHES mman-static.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/include/mman) file(RENAME ${CURRENT_PACKAGES_DIR}/include/sys ${CURRENT_PACKAGES_DIR}/include/mman/sys) file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/mman) file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/mman RENAME copyright) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mman/sys/mman.h" "__declspec(dllimport)" "") endif() vcpkg_copy_pdbs() ================================================ FILE: ports/mman/usage ================================================ The mman.h header deployed by mman is placed in mman/sys/mman.h to avoid accidental inclusion. find_path(MMAN_DIR NAMES sys/mman.h PATH_SUFFIXES mman) target_include_directories(main PRIVATE ${MMAN_DIR}) ================================================ FILE: ports/mman/vcpkg.json ================================================ { "name": "mman", "version-string": "git-f5ff813", "port-version": 5, "description": "A light implementation of the mmap functions for MinGW.", "homepage": "https://github.com/witwall/mman-win32", "supports": "windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/mmloader/fix-platform-name.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b672037..f9a6a15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,6 +14,13 @@ if ((NOT DEFINED CMAKE_VS_PLATFORM_NAME) OR (CMAKE_VS_PLATFORM_NAME STREQUAL "") message(STATUS "CMAKE_VS_PLATFORM_NAME is empty, use default: Win32") set(CMAKE_VS_PLATFORM_NAME Win32) endif() + +if(VCPKG_TARGET_ARCHITECTURE MATCHES "x86") + set(CMAKE_VS_PLATFORM_NAME "Win32") +else() + set(CMAKE_VS_PLATFORM_NAME "${VCPKG_TARGET_ARCHITECTURE}") +endif() + message(STATUS "CMAKE_VS_PLATFORM_NAME=" ${CMAKE_VS_PLATFORM_NAME}) string(COMPARE EQUAL "${CMAKE_VS_PLATFORM_NAME}" Win32 BUILD_ARC_X8632) string(COMPARE EQUAL "${CMAKE_VS_PLATFORM_NAME}" x64 BUILD_ARC_X8664) ================================================ FILE: ports/mmloader/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tishion/mmLoader REF 1.0.1 SHA512 a41749e1b62d5549b821429a03e456a0cb41fbc1ea3fe5e8067f80994fb4645c3145dd1e2a3ccaed13b091ec24338d4e542849628d346f26d2275b0cbff8f4c6 HEAD_REF master PATCHES fix-platform-name.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES shellcode BUILD_SHELLCODE_GEN ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install(DISABLE_PARALLEL) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License") ================================================ FILE: ports/mmloader/vcpkg.json ================================================ { "name": "mmloader", "version": "1.0.1", "port-version": 3, "description": "A library for loading dll module bypassing windows PE loader from memory (x86/x64)", "homepage": "http://tishion.github.io/mmLoader/", "license": "MIT", "supports": "(x86 | x64) & windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "shellcode": { "description": "Generate mmLoader shell code headers" } } } ================================================ FILE: ports/mmx/copyright ================================================ Licenses are stated in each header file. json.h - public domain - Micha Mettke sched.h - zlib LICENSE LICENSE: (zlib) Copyright (c) 2016 Doug Binks This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. sdefl.h - MIT License or Public Domain (www.unlicense.org) Copyright (c) 2020-2023 Micha Mettke sinfl.h - MIT License or Public Domain (www.unlicense.org) Copyright (c) 2020-2023 Micha Mettke web.h - BSD LICENSE - Andreas Fredriksson LICENSE: (BSD) Copyright (c) 2016, Andreas Fredriksson, Micha Mettke All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: ports/mmx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vurtun/mmx REF 5a3f3aba052e63ffae8eb0214c6bb8ffffedea3c SHA512 5010f3e8c049a670e65bf8a83ffcd27ef7382a2cfaeac1caf59760b4e43a3351e7d46dd1688ad0ae8e383e32875f74805b9fb7a09cf29d419b5634176afaa233 HEAD_REF master ) file(GLOB_RECURSE MMX_HEADERS "${SOURCE_PATH}/*.h") file(INSTALL ${MMX_HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include/mmx") vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/copyright") ================================================ FILE: ports/mmx/vcpkg.json ================================================ { "name": "mmx", "version-date": "2025-03-19", "description": "Single header libraries for C/C++", "homepage": "https://github.com/vurtun/mmx", "license": null } ================================================ FILE: ports/mnn/fix-linux.patch ================================================ diff --git a/source/backend/cpu/CPUFixedPoint.hpp b/source/backend/cpu/CPUFixedPoint.hpp index a5c44f9..fd2e979 100644 --- a/source/backend/cpu/CPUFixedPoint.hpp +++ b/source/backend/cpu/CPUFixedPoint.hpp @@ -17,7 +17,7 @@ limitations under the License. #define CPUFixedPoint_HPP #include -#include +#include #include #include #include diff --git a/source/backend/opencl/schema/current/CLCache_generated.h b/source/backend/opencl/schema/current/CLCache_generated.h index 434a666..fc972b5 100644 --- a/source/backend/opencl/schema/current/CLCache_generated.h +++ b/source/backend/opencl/schema/current/CLCache_generated.h @@ -403,7 +403,7 @@ inline const flatbuffers::TypeTable *ShaderTypeTable() { "buildInfo" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names + flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } @@ -420,7 +420,7 @@ inline const flatbuffers::TypeTable *AutotuningTypeTable() { "localSize" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names + flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names }; return &tt; } @@ -439,7 +439,7 @@ inline const flatbuffers::TypeTable *CacheTypeTable() { "tunings" }; static const flatbuffers::TypeTable tt = { - flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names + flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } ================================================ FILE: ports/mnn/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alibaba/MNN REF 1.1.0 SHA512 3e31eec9a876be571cb2d29e0a2bcdb8209a43a43a5eeae19b295fadfb1252dd5bd4ed5b7c584706171e1b531710248193bc04520a796963e2b21546acbedae0 HEAD_REF master PATCHES use-package-and-install.patch fix-linux.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test MNN_BUILD_TEST test MNN_BUILD_BENCHMARK cuda MNN_CUDA vulkan MNN_VULKAN opencl MNN_OPENCL metal MNN_METAL tools MNN_BUILD_TOOLS tools MNN_BUILD_QUANTOOLS tools MNN_BUILD_TRAIN tools MNN_EVALUATION tools MNN_BUILD_CONVERTER gpu MNN_GPU_TRACE system MNN_USE_SYSTEM_LIB ) # 'cuda' feature in Windows failes with Ninja because of parallel PDB access. Make it optional set(NINJA_OPTION WINDOWS_USE_MSBUILD) if(NOT "cuda" IN_LIST FEATURES) unset(NINJA_OPTION) endif() set(FLATC_EXEC "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers/flatc${VCPKG_HOST_EXECUTABLE_SUFFIX}") if (NOT EXISTS "${FLATC_EXEC}") message(FATAL_ERROR "Expected ${FLATC_EXEC} to exist.") endif() # regenerate some code files by schemes and flatbuffers vcpkg_execute_build_process( COMMAND "${FLATC_EXEC}" "-c" "-b" "--gen-object-api" "--reflect-names" "../default/BasicOptimizer.fbs" "../default/CaffeOp.fbs" "../default/GpuLibrary.fbs" "../default/MNN.fbs" "../default/Tensor.fbs" "../default/TensorflowOp.fbs" "../default/TFQuantizeOp.fbs" "../default/Type.fbs" "../default/UserDefine.fbs" WORKING_DIRECTORY "${SOURCE_PATH}/schema/current/" LOGNAME flatc-${TARGET_TRIPLET} ) if(VCPKG_TARGET_IS_WINDOWS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" USE_RUNTIME_MT) list(APPEND PLATFORM_OPTIONS -DMNN_WIN_RUNTIME_MT=${USE_RUNTIME_MT}) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${NINJA_OPTION} OPTIONS ${FEATURE_OPTIONS} ${PLATFORM_OPTIONS} -DMNN_BUILD_SHARED_LIBS=${BUILD_SHARED} # 1.1.0.0-${commit} -DMNN_VERSION_MAJOR=1 -DMNN_VERSION_MINOR=1 -DMNN_VERSION_PATCH=0 -DMNN_VERSION_BUILD=0 -DMNN_VERSION_SUFFIX=-d6795ad OPTIONS_DEBUG -DMNN_DEBUG_MEMORY=ON -DMNN_DEBUG_TENSOR_SIZE=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_download_distfile(COPYRIGHT_PATH URLS "https://apache.org/licenses/LICENSE-2.0.txt" FILENAME 98f6b79b778f7b0a1541.txt SHA512 98f6b79b778f7b0a15415bd750c3a8a097d650511cb4ec8115188e115c47053fe700f578895c097051c9bc3dfb6197c2b13a15de203273e1a3218884f86e90e8 ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${COPYRIGHT_PATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) if("metal" IN_LIST FEATURES) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/mnn.metallib" "${CURRENT_PACKAGES_DIR}/share/${PORT}/mnn.metallib") endif() else() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if("test" IN_LIST FEATURES) # no install(TARGETS) for the following binaries. check the buildtrees... # vcpkg_copy_tools( # TOOL_NAMES run_test.out benchmark.out benchmarkExprModels.out # test/ # AUTO_CLEAN # ) endif() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES MNNV2Basic.out mobilenetTest.out backendTest.out testModel.out testModelWithDescrisbe.out getPerformance.out checkInvalidValue.out timeProfile.out # tools/cpp quantized.out # tools/quantization classficationTopkEval.out # tools/evaluation MNNDump2Json MNNConvert # tools/converter transformer.out train.out dataTransformer.out runTrainDemo.out # tools/train AUTO_CLEAN ) if(BUILD_SHARED) vcpkg_copy_tools(TOOL_NAMES TestConvertResult AUTO_CLEAN) # tools/converter endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # remove the others. ex) mnn.metallib file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) endif() ================================================ FILE: ports/mnn/use-package-and-install.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -270,18 +270,24 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "^Linux") include_directories(${aarch64_linux_include}) endif() endif() + +if(MNN_OPENCL) + find_package(OpenCL REQUIRED) +endif() +find_package(RapidJSON CONFIG REQUIRED) +find_path(STB_INCLUDE_DIRS stb_image.h) +find_package(Flatbuffers CONFIG REQUIRED) include_directories(${CMAKE_CURRENT_LIST_DIR}/include/ ${CMAKE_CURRENT_LIST_DIR}/source/ ${CMAKE_CURRENT_LIST_DIR}/express/ ${CMAKE_CURRENT_LIST_DIR}/tools/ ${CMAKE_CURRENT_LIST_DIR}/schema/current/ - ${CMAKE_CURRENT_LIST_DIR}/3rd_party/ - ${CMAKE_CURRENT_LIST_DIR}/3rd_party/flatbuffers/include ${CMAKE_CURRENT_LIST_DIR}/3rd_party/half - ${CMAKE_CURRENT_LIST_DIR}/3rd_party/imageHelper - ${CMAKE_CURRENT_LIST_DIR}/3rd_party/OpenCLHeaders/ + ${RAPIDJSON_INCLUDE_DIRS} + ${STB_INCLUDE_DIRS} + ${OpenCL_INCLUDE_DIRS} ) - +link_libraries(flatbuffers::flatbuffers ${OpenCL_LIBRARIES}) set(MNN_OBJECTS_TO_LINK "") set(MNN_TARGETS "") @@ -631,10 +637,14 @@ ELSEIF(NOT APPLE) INSTALL(FILES ${MNN_PUB_HDRS} DESTINATION include/MNN/) INSTALL(FILES ${MNN_EXPR_PUB_HDRS} DESTINATION include/MNN/expr/) install(TARGETS MNN + RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) + ELSE() + INSTALL(FILES ${MNN_PUB_HDRS} DESTINATION include/MNN/) + INSTALL(FILES ${MNN_EXPR_PUB_HDRS} DESTINATION include/MNN/expr/) install(TARGETS MNN LIBRARY DESTINATION lib ARCHIVE DESTINATION lib @@ -648,5 +658,6 @@ ELSE() ENDFOREACH() IF(MNN_METAL) SET_SOURCE_FILES_PROPERTIES(${CMAKE_CURRENT_BINARY_DIR}/mnn.metallib PROPERTIES MACOSX_PACKAGE_LOCATION Resources/) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnn.metallib DESTINATION bin) ENDIF() ENDIF() diff --git a/source/backend/cuda/CMakeLists.txt b/source/backend/cuda/CMakeLists.txt index f9a24cc..8b1f96f 100644 --- a/source/backend/cuda/CMakeLists.txt +++ b/source/backend/cuda/CMakeLists.txt @@ -16,9 +16,26 @@ endif() file(GLOB_RECURSE MNN_CUDA_SRC ${CMAKE_CURRENT_LIST_DIR}/core/* ${CMAKE_CURRENT_SOURCE_DIR}/execution/*) message(STATUS "message ${CUDA_NVCC_FLAGS} !!!!!!!!!!!") +# see https://github.com/microsoft/vcpkg/blob/master/ports/cudnn/FindCUDNN.cmake +find_package(CUDNN REQUIRED) +message(STATUS "using cudnn: ${CUDNN_LIBRARIES}") + +if(WIN32) + find_library(CUBLAS_LIB NAMES cublas PATHS $ENV{CUDA_PATH}/lib/x64) +else() + find_library(CUBLAS_LIB cublas) +endif() +if(NOT CUBLAS_LIB) + message(FATAL_ERROR "cublas not found") +else() + message(STATUS "using cublas: ${CUBLAS_LIB}") +endif() + # add_library(MNN_Cuda SHARED ${MNN_CUDA_SRC} ) -cuda_add_library(MNN_Cuda_Main SHARED ${MNN_CUDA_SRC} ) -set(MNN_CUDA_LIBS MNN_Cuda_Main cudnn cublas PARENT_SCOPE) +cuda_add_library(MNN_Cuda_Main STATIC ${MNN_CUDA_SRC} ) +target_link_libraries(MNN_Cuda_Main CuDNN::CuDNN ${CUBLAS_LIB}) + +set(MNN_CUDA_LIBS MNN_Cuda_Main ${CUDNN_LIB} PARENT_SCOPE) add_library(MNN_CUDA OBJECT Register.cpp) include_directories( diff --git a/source/backend/tensorrt/CMakeLists.txt b/source/backend/tensorrt/CMakeLists.txt index aadabd6..3a0d81e 100644 --- a/source/backend/tensorrt/CMakeLists.txt +++ b/source/backend/tensorrt/CMakeLists.txt @@ -7,7 +7,7 @@ FIND_PACKAGE(CUDA REQUIRED) add_library( MNN_TRT OBJECT ${MNN_TRT_SRCS}) -include_directories(/usr/local/cuda/include/) +include_directories(${CUDA_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_LIST_DIR}/backend/) include_directories(${CMAKE_CURRENT_LIST_DIR}/execution/) include_directories(${CMAKE_CURRENT_LIST_DIR}/execution/plugin/) diff --git a/tools/converter/CMakeLists.txt b/tools/converter/CMakeLists.txt index 2d5133a..d39977a 100644 --- a/tools/converter/CMakeLists.txt +++ b/tools/converter/CMakeLists.txt @@ -38,11 +38,12 @@ IF(MNN_BUILD_CONVERTER) ${CMAKE_CURRENT_LIST_DIR}/source/cli.cpp ${CMAKE_CURRENT_LIST_DIR}/source/config.cpp ) - IF(MNN_BUILD_SHARED_LIBS) - add_library(MNNConvertDeps SHARED ${COMMON_SRC} ${MNN_CONVERTER_BACKENDS_OBJECTS} ${CMAKE_CURRENT_LIST_DIR}/../../3rd_party/flatbuffers/src/util.cpp $) + # if Windows, meld MNNConvertDeps(lib) into MNNConvert(exe) + IF(MNN_BUILD_SHARED_LIBS AND NOT WIN32) + add_library(MNNConvertDeps SHARED ${COMMON_SRC} ${MNN_CONVERTER_BACKENDS_OBJECTS} $) add_dependencies(MNNConvertDeps MNN) ELSE() - add_library(MNNConvertDeps STATIC ${COMMON_SRC} ${MNN_CONVERTER_BACKENDS_OBJECTS} ${CMAKE_CURRENT_LIST_DIR}/../../3rd_party/flatbuffers/src/util.cpp) + add_library(MNNConvertDeps STATIC ${COMMON_SRC} ${MNN_CONVERTER_BACKENDS_OBJECTS}) ENDIF() @@ -68,5 +69,7 @@ IF(MNN_BUILD_CONVERTER) add_executable(TestConvertResult ${CMAKE_CURRENT_LIST_DIR}/source/TestConvertResult.cpp) target_link_libraries(TestConvertResult MNNConvertDeps) target_link_libraries(MNNConvert MNNConvertDeps) + install(TARGETS TestConvertResult RUNTIME DESTINATION bin) ENDIF() + install(TARGETS MNNDump2Json MNNConvert RUNTIME DESTINATION bin) ENDIF() diff --git a/tools/cpp/CMakeLists.txt b/tools/cpp/CMakeLists.txt index def574c..f4e48c6 100644 --- a/tools/cpp/CMakeLists.txt +++ b/tools/cpp/CMakeLists.txt @@ -53,3 +53,5 @@ if (MSVC) endif() endforeach() endif() + +install(TARGETS ${MNN_CPP_TOOLS} RUNTIME DESTINATION bin) diff --git a/tools/evaluation/CMakeLists.txt b/tools/evaluation/CMakeLists.txt index 8773372..e40b66d 100644 --- a/tools/evaluation/CMakeLists.txt +++ b/tools/evaluation/CMakeLists.txt @@ -7,4 +7,5 @@ IF(MNN_EVALUATION) target_link_options(classficationTopkEval.out PRIVATE /WHOLEARCHIVE:$) endforeach () endif() + install(TARGETS classficationTopkEval.out RUNTIME DESTINATION bin) ENDIF() diff --git a/tools/quantization/CMakeLists.txt b/tools/quantization/CMakeLists.txt index 1e84ee0..86f3cbc 100644 --- a/tools/quantization/CMakeLists.txt +++ b/tools/quantization/CMakeLists.txt @@ -1,3 +1,5 @@ file(GLOB QUANFILES ${CMAKE_CURRENT_LIST_DIR}/*.cpp) add_executable(quantized.out ${QUANFILES}) target_link_libraries(quantized.out ${MNN_DEPS}) + +install(TARGETS quantized.out RUNTIME DESTINATION bin) diff --git a/tools/train/CMakeLists.txt b/tools/train/CMakeLists.txt index 48f355b..026dc24 100644 --- a/tools/train/CMakeLists.txt +++ b/tools/train/CMakeLists.txt @@ -27,6 +27,10 @@ if (MNN_BUILD_TRAIN_MINI) else() add_library(MNNTrain ${MNN_LIBARY_TYPE} ${GRAD} ${BASIC_INCLUDE} ${OPTIMIZER} ${DATALOADER} ${TRANSFORMER} ${MODELS} ${DATASETS}) endif() +IF(MNN_BUILD_SHARED_LIBS) + target_compile_definitions(MNNTrain PRIVATE BUILDING_MNN_DLL) +ENDIF() + target_link_libraries(MNNTrain ${MNN_DEPS}) add_executable(transformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/transformerExecution.cpp) @@ -38,7 +42,7 @@ target_link_libraries(train.out MNN) add_executable(rawDataTransform.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/rawDataTransform.cpp ${SCHEMA} ${BASIC_INCLUDE}) -include_directories(../../3rd_party/imageHelper/) +# include_directories(../../3rd_party/imageHelper/) add_executable(dataTransformer.out ${CMAKE_CURRENT_LIST_DIR}/source/exec/dataTransformer.cpp ${SCHEMA} ${BASIC_INCLUDE}) target_link_libraries(dataTransformer.out MNN) @@ -59,3 +63,9 @@ if (MNN_USE_OPENCV) add_definitions(-D MNN_USE_OPENCV) target_link_libraries(runTrainDemo.out ${OpenCV_LIBS}) endif() + +install(TARGETS MNNTrain transformer.out train.out dataTransformer.out runTrainDemo.out + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) ================================================ FILE: ports/mnn/vcpkg.json ================================================ { "name": "mnn", "version": "1.1.0", "port-version": 7, "description": "MNN is a blazing fast, lightweight deep learning framework, battle-tested by business-critical use cases in Alibaba", "homepage": "https://www.mnn.zone/", "license": "Apache-2.0", "supports": "!(arm | uwp | ios | android)", "dependencies": [ "flatbuffers", { "name": "flatbuffers", "host": true }, "rapidjson", "stb", { "name": "vcpkg-cmake", "host": true } ], "features": { "cuda": { "description": "Enable CUDA API backend", "dependencies": [ "cuda", "cudnn", { "name": "mnn", "features": [ "gpu" ] } ] }, "gpu": { "description": "Enable MNN Gpu Debug" }, "metal": { "description": "Enable Metal API backend for Apple platforms", "dependencies": [ { "name": "mnn", "features": [ "gpu" ] } ] }, "opencl": { "description": "Enable OpenCL API backend", "dependencies": [ { "name": "mnn", "features": [ "system" ] }, "opencl" ] }, "system": { "description": "For opencl and vulkan, use system lib or use dlopen" }, "test": { "description": "Build MNN test programs" }, "tools": { "description": "Build MNN tools", "dependencies": [ "protobuf" ] }, "vulkan": { "description": "Enable Vulkan API backend", "dependencies": [ { "name": "mnn", "features": [ "gpu", "system" ] }, "vulkan" ] } } } ================================================ FILE: ports/modern-cpp-kafka/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(modern-cpp-kafka LANGUAGES CXX) include(GNUInstallDirs) find_package(RdKafka CONFIG REQUIRED) find_package(Boost REQUIRED) find_package(RapidJSON CONFIG REQUIRED) add_library(modern-cpp-kafka INTERFACE) target_include_directories(modern-cpp-kafka INTERFACE $) target_link_libraries(modern-cpp-kafka INTERFACE RdKafka::rdkafka Boost::boost rapidjson) install(TARGETS modern-cpp-kafka EXPORT unofficial-modern-cpp-kafka) install( EXPORT unofficial-modern-cpp-kafka FILE unofficial-modern-cpp-kafka-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-modern-cpp-kafka" NAMESPACE unofficial::modern-cpp-kafka:: ) install( DIRECTORY "${CMAKE_SOURCE_DIR}/include/kafka" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) ================================================ FILE: ports/modern-cpp-kafka/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO morganstanley/modern-cpp-kafka REF "v${VERSION}" SHA512 a6a921cc5037baaa0632fed350b4b5a3d5d47116397ae2638f9121997dbf7842d6406a889833ae551d738cd1bb189c5cec152b14f59644aec38ac9b6b5883a0b HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-modern-cpp-kafka/unofficial-modern-cpp-kafka-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-modern-cpp-kafka/unofficial-modern-cpp-kafka-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(RdKafka CONFIG) find_dependency(Boost) find_dependency(RapidJSON CONFIG) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/modern-cpp-kafka/usage ================================================ modern-cpp-kafka provides CMake targets: find_package(unofficial-modern-cpp-kafka CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::modern-cpp-kafka::modern-cpp-kafka) ================================================ FILE: ports/modern-cpp-kafka/vcpkg.json ================================================ { "name": "modern-cpp-kafka", "version-string": "2024.07.03", "description": "A C++ API for Kafka clients (i.e. KafkaProducer, KafkaConsumer, AdminClient)", "homepage": "https://github.com/morganstanley/modern-cpp-kafka", "license": "Apache-2.0", "dependencies": [ "boost-optional", "librdkafka", "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/modp-base64/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(libmodpbase64 C) if(MSVC) add_compile_options(/wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() configure_file(config.h.cmake config.h @ONLY) include_directories(. ${SOURCE_PATH}/src ${CMAKE_CURRENT_BINARY_DIR}) add_library(libmodpbase64 ${SOURCE_PATH}/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 "${SOURCE_PATH}/src/extern_c_begin.h" "${SOURCE_PATH}/src/extern_c_end.h" "${SOURCE_PATH}/src/modp_b64.h" "${SOURCE_PATH}/src/modp_stdint.h" DESTINATION include ) endif() ================================================ FILE: ports/modp-base64/config.h.cmake ================================================ #ifndef MODP_CONFIG_H #define MODP_CONFIG_H #endif ================================================ FILE: ports/modp-base64/libmodpbase64.def ================================================ LIBRARY libmodpbase64 EXPORTS modp_b64_encode @1 modp_b64_decode @2 ================================================ FILE: ports/modp-base64/modp_b64_data.h ================================================ #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 ================================================ FILE: ports/modp-base64/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO client9/stringencoders REF e1448a9415f4ebf6f559c86718193ba067cbb99d SHA512 68c9b9a9eb09075c792cfc0a8ce1959c60a86e5256de8568b0cb6934f748fd9e95c5f1801a8982fecac65850a8f2d633a64dc98e4505ee8e6914bd0b0fb996cf HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" OPTIONS -DSOURCE_PATH=${SOURCE_PATH} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/modp-base64/vcpkg.json ================================================ { "name": "modp-base64", "version-date": "2020-09-26", "port-version": 2, "description": "High performance base64 encoder/decoder", "homepage": "https://github.com/client9/stringencoders", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/mongo-c-driver/disable-dynamic-when-static.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 773f1ebb92..56fc94794f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -321,10 +321,10 @@ if (USE_SYSTEM_LIBBSON) set (USING_SYSTEM_BSON TRUE) if (NOT TARGET bson::shared) - message (FATAL_ERROR "System libbson built without shared library target") + endif () if (NOT TARGET bson::static) - message (FATAL_ERROR "System libbson built without static library target") + endif () endif () diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt index 9b2c2f845d..65617c1736 100644 --- a/src/libmongoc/CMakeLists.txt +++ b/src/libmongoc/CMakeLists.txt @@ -862,7 +862,7 @@ set ( "${mongo-c-driver_SOURCE_DIR}/src/uthash" ) -if (ENABLE_SHARED) +if (NOT MONGOC_ENABLE_STATIC_BUILD) add_library (mongoc_shared SHARED ${SOURCES} ${HEADERS}) add_library(mongoc::shared ALIAS mongoc_shared) set_property(TARGET mongoc_shared PROPERTY EXPORT_NAME mongoc::shared) @@ -929,7 +929,7 @@ if (ENABLE_SHARED) RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") endif () # ENABLE_SHM_COUNTERS -endif () # ENABLE_SHARED +endif () # NOT MONGOC_ENABLE_STATIC_BUILD if (MONGOC_ENABLE_STATIC_BUILD) add_library (mongoc_static STATIC ${SOURCES} ${HEADERS}) @@ -1338,7 +1338,7 @@ if (MONGOC_ENABLE_STATIC_INSTALL) list (APPEND TARGETS_TO_INSTALL mongoc_static) endif () -if (ENABLE_SHARED) +if (NOT MONGOC_ENABLE_STATIC_BUILD) list (APPEND TARGETS_TO_INSTALL mongoc_shared) endif () ================================================ FILE: ports/mongo-c-driver/fix-dependencies.patch ================================================ diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt index 9b2c2f845d..9cb6397d2e 100644 --- a/src/libmongoc/CMakeLists.txt +++ b/src/libmongoc/CMakeLists.txt @@ -52,7 +52,7 @@ endif () set (ZLIB_INCLUDE_DIRS "") if (ENABLE_ZLIB MATCHES "SYSTEM|AUTO") message (STATUS "Searching for zlib CMake packages") - include (FindZLIB) + find_package(ZLIB REQUIRED) if (ZLIB_FOUND) message (STATUS " zlib found version \"${ZLIB_VERSION_STRING}\"") message (STATUS " zlib include path \"${ZLIB_INCLUDE_DIRS}\"") @@ -460,10 +460,10 @@ else () endif () # Sets SNAPPY_LIBRARIES and SNAPPY_INCLUDE_DIRS. -include (FindSnappy) -if (SNAPPY_INCLUDE_DIRS) +if (ENABLE_SNAPPY) + find_package(Snappy CONFIG REQUIRED) + set(SNAPPY_LIBRARIES Snappy::snappy) set (MONGOC_ENABLE_COMPRESSION 1) - include_directories ("${SNAPPY_INCLUDE_DIRS}") endif () mongo_bool01 (MONGOC_ENABLE_SHM_COUNTERS ENABLE_SHM_COUNTERS) @@ -780,7 +780,7 @@ set (STATIC_LIBRARIES ) # utf8proc configuration -find_package(Utf8Proc REQUIRED) +find_package(unofficial-utf8proc CONFIG REQUIRED) set(UTF8PROC_INCLUDE_DIRS, "") if (USE_BUNDLED_UTF8PROC) set ( @@ -913,7 +913,7 @@ if (ENABLE_SHARED) OUTPUT_NAME "${MONGOC_OUTPUT_BASENAME}${PROJECT_VERSION_MAJOR}" VERSION "${PROJECT_VERSION}" SOVERSION "${PROJECT_VERSION_MAJOR}" - pkg_config_REQUIRES "bson${PROJECT_VERSION_MAJOR}" + pkg_config_REQUIRES "bson${PROJECT_VERSION_MAJOR} libutf8proc" ) mongo_generate_pkg_config(mongoc_shared INSTALL RENAME mongoc${PROJECT_VERSION_MAJOR}.pc) diff --git a/src/libmongoc/etc/mongocConfig.cmake.in b/src/libmongoc/etc/mongocConfig.cmake.in index 14d7e4c7ed..1597473cee 100644 --- a/src/libmongoc/etc/mongocConfig.cmake.in +++ b/src/libmongoc/etc/mongocConfig.cmake.in @@ -48,6 +48,9 @@ include(CMakeFindDependencyMacro) get_filename_component(__parent_dir "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) # Also import the `bson` package, to ensure its targets are also available find_dependency(bson "${__mongoc_package_version}" HINTS ${__parent_dir}) +if("@ENABLE_SNAPPY@") + find_dependency(Snappy CONFIG) +endif() # QUIET arg for finding dependencies: unset(__quiet) @@ -60,16 +63,8 @@ if(NOT __mongoc_uses_bundled_utf8proc AND NOT TARGET PkgConfig::PC_UTF8PROC) # libmongoc was compiled against an external utf8proc and links against a # FindPkgConfig-generated IMPORTED target. Find that package and generate that # imported target here: - find_dependency(PkgConfig) - pkg_check_modules(PC_UTF8PROC ${__quiet} libutf8proc IMPORTED_TARGET GLOBAL) - if(NOT PC_UTF8PROC_FOUND) - # Handle if it wasn't found (find_dependency would usually do this for us, - # but pkg_check_modules() does not) - set(mongoc_FOUND FALSE) - set(mongoc_NOT_FOUND_MESSAGE "We were unable to find the required libutf8proc package with pkg-config") - return() - endif() endif() +find_dependency(unofficial-utf8proc CONFIG) # If we need to import a TLS package for our imported targets, do that now: if(__mongoc_tls_package) @@ -110,3 +105,5 @@ if(NOT TARGET mongoc::mongoc) # Don't redefine the target if we were already in add_library(mongoc::mongoc IMPORTED INTERFACE) set_property(TARGET mongoc::mongoc APPEND PROPERTY INTERFACE_LINK_LIBRARIES mongoc::${__type}) endif() + +include("${CMAKE_CURRENT_LIST_DIR}/mongoc-targets.cmake") ================================================ FILE: ports/mongo-c-driver/fix-include-directory.patch ================================================ diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt index 9b2c2f845d..2231d76edc 100644 --- a/src/libmongoc/CMakeLists.txt +++ b/src/libmongoc/CMakeLists.txt @@ -28,7 +28,7 @@ set (MONGOC_ENABLE_COMPRESSION_ZLIB 0) set (MONGOC_ENABLE_COMPRESSION_ZSTD 0) if(NOT DEFINED MONGOC_INSTALL_INCLUDEDIR) - set(MONGOC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/mongoc-${PROJECT_VERSION}") + set(MONGOC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") endif() if(NOT DEFINED MONGOC_INSTALL_CMAKEDIR) set(MONGOC_INSTALL_CMAKEDIR "${MONGO_C_DRIVER_INSTALL_CMAKEDIR}/mongoc-${PROJECT_VERSION}") ================================================ FILE: ports/mongo-c-driver/fix-mingw.patch ================================================ diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt index 9b2c2f845d..64bdc251bb 100644 --- a/src/libmongoc/CMakeLists.txt +++ b/src/libmongoc/CMakeLists.txt @@ -204,7 +204,7 @@ endfunction() # Per-backend link libs/options: set(SecureTransport/LINK_LIBRARIES "-framework CoreFoundation" "-framework Security") set(SecureTransport/pkg_config_LIBS -framework Corefoundation -framework Security) -set(SecureChannel/LINK_LIBRARIES secur32.lib crypt32.lib Bcrypt.lib ncrypt.lib) +set(SecureChannel/LINK_LIBRARIES secur32.lib crypt32.lib bcrypt.lib ncrypt.lib) set(SecureChannel/pkg_config_LIBS ${SecureChannel/LINK_LIBRARIES}) set(OpenSSL/LINK_LIBRARIES OpenSSL::SSL OpenSSL::Crypto $<$:crypt32.lib>) set(OpenSSL/pkg_config_LIBS -lssl -lcrypto $<$:crypt32.lib>) @@ -338,7 +338,7 @@ function(_use_sasl libname) target_link_libraries(_mongoc-dependencies INTERFACE _mongoc-sasl_backend) install(TARGETS _mongoc-sasl_backend EXPORT mongoc-targets) if(libname STREQUAL "SSPI") - target_link_libraries(_mongoc-sasl_backend INTERFACE secur32.lib crypt32.lib Shlwapi.lib) + target_link_libraries(_mongoc-sasl_backend INTERFACE secur32.lib crypt32.lib shlwapi.lib) set(backend "SSPI") elseif(libname STREQUAL "CYRUS") find_package(SASL2 2.0 REQUIRED) diff --git a/src/libmongoc/src/mongoc/mongoc-client.c b/src/libmongoc/src/mongoc/mongoc-client.c index f4322798c0..cf01aa86c2 100644 --- a/src/libmongoc/src/mongoc/mongoc-client.c +++ b/src/libmongoc/src/mongoc/mongoc-client.c @@ -20,8 +20,8 @@ #ifdef MONGOC_HAVE_DNSAPI /* for DnsQuery_UTF8 */ -#include -#include +#include +#include #include #else #if defined(MONGOC_HAVE_RES_NSEARCH) || defined(MONGOC_HAVE_RES_SEARCH) diff --git a/src/libmongoc/src/mongoc/mongoc-socket.c b/src/libmongoc/src/mongoc/mongoc-socket.c index 9231df1a12..440c109af2 100644 --- a/src/libmongoc/src/mongoc/mongoc-socket.c +++ b/src/libmongoc/src/mongoc/mongoc-socket.c @@ -23,7 +23,7 @@ #include #ifdef _WIN32 -#include +#include #include #endif #include diff --git a/src/libmongoc/src/mongoc/mongoc-sspi-private.h b/src/libmongoc/src/mongoc/mongoc-sspi-private.h index e5c8c970bd..83185cc50d 100644 --- a/src/libmongoc/src/mongoc/mongoc-sspi-private.h +++ b/src/libmongoc/src/mongoc/mongoc-sspi-private.h @@ -29,8 +29,8 @@ BSON_BEGIN_DECLS #define SECURITY_WIN32 1 /* Required for SSPI */ -#include #include +#include #include #include ================================================ FILE: ports/mongo-c-driver/portfile.cmake ================================================ # This port needs to be updated at the same time as libbson vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mongodb/mongo-c-driver REF "${VERSION}" SHA512 faa03472f646f724b10192540eaaac931f74d7c5b7f2a717b6d6f274a5ab4f2bf088b601d8d5947ae23688e225dd352f335c0234866ada080d3ad7b9190b2ac8 HEAD_REF master PATCHES disable-dynamic-when-static.patch fix-dependencies.patch fix-include-directory.patch fix-mingw.patch remove_abs_patch.cmake ) file(WRITE "${SOURCE_PATH}/VERSION_CURRENT" "${VERSION}") file(TOUCH "${SOURCE_PATH}/src/utf8proc-editable") file(GLOB vendored_libs "${SOURCE_PATH}/src/utf8proc-*" "${SOURCE_PATH}/src/zlib-*/*.h") file(REMOVE_RECURSE ${vendored_libs}) # Cannot use string(COMPARE EQUAL ...) set(ENABLE_STATIC OFF) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(ENABLE_STATIC ON) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES snappy ENABLE_SNAPPY zstd ENABLE_ZSTD ) if("openssl" IN_LIST FEATURES) list(APPEND OPTIONS -DENABLE_SSL=OPENSSL) elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -DENABLE_SSL=WINDOWS) elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) list(APPEND OPTIONS -DENABLE_SSL=DARWIN) else() list(APPEND OPTIONS -DENABLE_SSL=OFF) endif() if(VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND OPTIONS -DENABLE_SRV=OFF) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${OPTIONS} "-DBUILD_VERSION=${VERSION}" -DUSE_BUNDLED_UTF8PROC=OFF -DUSE_SYSTEM_LIBBSON=ON -DENABLE_CLIENT_SIDE_ENCRYPTION=OFF -DENABLE_EXAMPLES=OFF -DENABLE_SASL=OFF -DENABLE_SHM_COUNTERS=OFF -DENABLE_STATIC=${ENABLE_STATIC} -DENABLE_TESTS=OFF -DBUILD_TESTING=OFF -DENABLE_UNINSTALL=OFF -DENABLE_ZLIB=SYSTEM "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() if("snappy" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/mongoc2-static.pc" " -lSnappy::snappy" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/mongoc2-static.pc" "Requires: " "Requires: snappy ") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/mongoc2-static.pc" " -lSnappy::snappy" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/mongoc2-static.pc" "Requires: " "Requires: snappy ") endif() endif() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME "mongoc-${VERSION}" CONFIG_PATH "lib/cmake/mongoc-${VERSION}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mongoc/mongoc-macros.h" "#define MONGOC_MACROS_H" "#define MONGOC_MACROS_H\n#ifndef MONGOC_STATIC\n#define MONGOC_STATIC\n#endif") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/THIRD_PARTY_NOTICES" "${SOURCE_PATH}/src/libmongoc/THIRD_PARTY_NOTICES" ) ================================================ FILE: ports/mongo-c-driver/remove_abs_patch.cmake ================================================ diff --git a/src/libmongoc/CMakeLists.txt b/src/libmongoc/CMakeLists.txt index 9b2c2f845d..e4357d98a2 100644 --- a/src/libmongoc/CMakeLists.txt +++ b/src/libmongoc/CMakeLists.txt @@ -449,7 +449,7 @@ if (NOT WIN32) mongoc_get_accept_args (MONGOC_SOCKET_ARG2 MONGOC_SOCKET_ARG3) endif () -set (MONGOC_CC ${CMAKE_C_COMPILER}) +cmake_path(GET CMAKE_C_COMPILER FILENAME MONGOC_CC) set (MONGOC_USER_SET_CFLAGS ${CMAKE_C_FLAGS}) set (MONGOC_USER_SET_LDFLAGS ${CMAKE_EXE_LINKER_FLAGS}) ================================================ FILE: ports/mongo-c-driver/usage ================================================ mongo-c-driver provides CMake targets: find_package(mongoc CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mongo::shared,mongo::static>) ================================================ FILE: ports/mongo-c-driver/vcpkg.json ================================================ { "name": "mongo-c-driver", "version": "2.2.3", "description": "Client library written in C for MongoDB.", "homepage": "https://github.com/mongodb/mongo-c-driver", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "libbson", { "name": "mongo-c-driver", "features": [ "openssl" ], "platform": "!windows & !osx & !ios" }, "utf8proc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "openssl": { "description": "Use OpenSSL (even on Windows or Apple systems)", "dependencies": [ "openssl" ] }, "snappy": { "description": "Enables snappy compressor support", "dependencies": [ "snappy" ] }, "zstd": { "description": "Enables zstd compressor support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/mongo-cxx-driver/cmake-project-include.cmake ================================================ if(BSONCXX_POLY_USE_STD AND NOT CMAKE_CXX_STANDARD VERSION_GREATER_EQUAL "17") message(WARNING "Enabling C++17 compiler support.") set(CMAKE_CXX_STANDARD 17) endif() ================================================ FILE: ports/mongo-cxx-driver/fix-dependencies.patch ================================================ diff --git a/src/bsoncxx/CMakeLists.txt b/src/bsoncxx/CMakeLists.txt index 10e090c1d1..0759b8af2a 100644 --- a/src/bsoncxx/CMakeLists.txt +++ b/src/bsoncxx/CMakeLists.txt @@ -65,7 +65,7 @@ if(TARGET bson_shared OR TARGET bson_static) set(bson_target bson::shared) endif() else() - find_package(bson ${BSON_REQUIRED_VERSION} REQUIRED) + find_package(bson REQUIRED) message(STATUS "Found bson: ${bson_DIR} (found version \"${bson_VERSION}\")") diff --git a/src/mongocxx/CMakeLists.txt b/src/mongocxx/CMakeLists.txt index 8b40ce7b72..4c75fb114f 100644 --- a/src/mongocxx/CMakeLists.txt +++ b/src/mongocxx/CMakeLists.txt @@ -40,7 +40,7 @@ if(TARGET mongoc_shared OR TARGET mongoc_static) set(mongoc_target mongoc::shared) endif() else() - find_package(mongoc ${MONGOC_REQUIRED_VERSION} REQUIRED) + find_package(mongoc REQUIRED) message(STATUS "Found mongoc: ${mongoc_DIR} (found version \"${mongoc_VERSION}\")") ================================================ FILE: ports/mongo-cxx-driver/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mongodb/mongo-cxx-driver REF "r${VERSION}" SHA512 8a7c7d37120e97a8aafca5fea986b4e98e062466df7006ee311bb79bf0b16016a3d6070e18beffc236b145dfa86d5968aa66f5c4b8e6f0ba5683d960c695006f HEAD_REF master PATCHES fix-dependencies.patch ) file(WRITE "${SOURCE_PATH}/build/VERSION_CURRENT" "${VERSION}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_MONGO_CXX_DRIVER_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DBSONCXX_HEADER_INSTALL_DIR=include -DENABLE_TESTS=OFF -DENABLE_UNINSTALL=OFF -DMONGOCXX_HEADER_INSTALL_DIR=include -DNEED_DOWNLOAD_C_DRIVER=OFF MAYBE_UNUSED_VARIABLES BSONCXX_HEADER_INSTALL_DIR MONGOCXX_HEADER_INSTALL_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME "bsoncxx" CONFIG_PATH "lib/cmake/bsoncxx-${VERSION}" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME "mongocxx" CONFIG_PATH "lib/cmake/mongocxx-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) function(auto_clean dir) file(GLOB entries "${dir}/*") file(GLOB files LIST_DIRECTORIES false "${dir}/*") foreach(entry IN LISTS entries) if(entry IN_LIST files) continue() endif() file(GLOB_RECURSE children "${entry}/*") if(children) auto_clean("${entry}") else() file(REMOVE_RECURSE "${entry}") endif() endforeach() endfunction() auto_clean("${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mongo-cxx-driver/usage ================================================ mongo-cxx-driver provides CMake targets: find_package(bsoncxx CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mongo::bsoncxx_static,mongo::bsoncxx_shared>) find_package(mongocxx CONFIG REQUIRED) target_link_libraries(main PRIVATE $,mongo::mongocxx_static,mongo::mongocxx_shared>) ================================================ FILE: ports/mongo-cxx-driver/vcpkg.json ================================================ { "name": "mongo-cxx-driver", "version": "4.1.4", "description": "MongoDB C++ Driver.", "homepage": "https://github.com/mongodb/mongo-cxx-driver", "license": "Apache-2.0", "dependencies": [ "libbson", "mongo-c-driver", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mongoose/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(mongoose C) include(GNUInstallDirs) option(ENABLE_SSL "Build with openssl support" OFF) option(ENABLE_PACK "Build pack for embedding read-only filesystems" OFF) set(CMAKE_INCLUDE_CURRENT_DIR ON) add_library(mongoose mongoose.c) target_include_directories(mongoose PUBLIC $) set_target_properties(mongoose PROPERTIES PUBLIC_HEADER mongoose.h) set(INSTALL_TARGETS mongoose) if (ENABLE_PACK) add_executable(pack test/pack.c) list(APPEND INSTALL_TARGETS pack) target_compile_definitions(mongoose PRIVATE MG_ENABLE_PACKED_FS=1) endif() if (ENABLE_SSL) find_package(OpenSSL REQUIRED) target_compile_options(mongoose PRIVATE -DMG_ENABLE_SSL) target_link_libraries(mongoose PRIVATE OpenSSL::SSL OpenSSL::Crypto) endif() install(TARGETS ${INSTALL_TARGETS} EXPORT unofficial-mongoose-config) install( EXPORT unofficial-mongoose-config NAMESPACE unofficial::mongoose:: DESTINATION share/unofficial-mongoose PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/mongoose/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cesanta/mongoose REF "${VERSION}" SHA512 e62bfff0ba2665b15ab9613497192c2d76fc2b7addcb722e7711465d54cf3e3013671b7639a7d98d116787d0b87e0781e616f1d959766f92377a4bc4f155a2b9 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl ENABLE_SSL pack ENABLE_PACK ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT}) if ("pack" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES pack) endif() if("ssl" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" [[# Generated by CMake]] [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(OpenSSL)]]) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mongoose/vcpkg.json ================================================ { "name": "mongoose", "version": "7.20", "port-version": 1, "description": "Embedded web server / embedded networking library", "homepage": "https://cesanta.com/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pack": { "description": "Build pack for embedding read-only filesystems" }, "ssl": { "description": "Build with openssl", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/monkeys-audio/fix-outdir.patch ================================================ diff --git a/Source/Projects/VS2022/MACDll/MACDll.vcxproj b/Source/Projects/VS2022/MACDll/MACDll.vcxproj index f5b20e8eb..d9fd63c20 100644 --- a/Source/Projects/VS2022/MACDll/MACDll.vcxproj +++ b/Source/Projects/VS2022/MACDll/MACDll.vcxproj @@ -150,10 +150,10 @@ <_ProjectFileVersion>11.0.50727.1 - C:\Applications\Winamp\plugins\ - $(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ false - in_APE + MACDll .dll true -clang-diagnostic-c++98-compat,-clang-diagnostic-zero-as-null-pointer-constant,-clang-diagnostic-language-extension-token,-clang-diagnostic-global-constructors,-clang-diagnostic-exit-time-destructors ================================================ FILE: ports/monkeys-audio/license ================================================ Monkey's Audio Program License Agreement ======================================== 1. Monkey's Audio is completely free for personal, educational, or commercial use. 2. Although the software has been tested thoroughly, the author is in no way responsible for damages due to bugs or misuse. 3. The redistribution of Monkey's Audio is only allowed in cases where the original installer and components therein have not been modified. 4. The use of Monkey's Audio or any component thereof from another program requires compliance with the 'Monkey's Audio SDK and Source Code License Agreement'. 5. Installing and using Monkey's Audio signifies the acceptance of these terms. If you do not agree with any of the above terms, you must cease using Monkey's Audio and remove it from your storage device. Monkey's Audio SDK and Source Code License Agreement ==================================================== 1. The Monkey's Audio SDK and source code can be freely used to add APE format playback, encoding, or tagging support to any product, free or commercial. 2. Monkey's Audio source can be included in GPL and open-source software, although Monkey's Audio itself will not be subjected to external licensing requirements or other viral source restrictions. 3. Code changes and improvements must be contributed back to the Monkey's Audio project or made freely available, unless exempted by written consent of the author. 4. Any source code, ideas, or libraries used must be plainly acknowledged in the software using the code. 5. Although the software has been tested thoroughly, the author is in no way responsible for damages due to bugs or misuse. 6. If you do not completely agree with all of the previous stipulations, you must cease using this source code and remove it from your storage device. All materials and programs copyrighted ©2000-2018 by Matt Ashland ================================================ FILE: ports/monkeys-audio/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) set(MA_VERSION 1008) vcpkg_download_distfile(ARCHIVE URLS "https://monkeysaudio.com/files/MAC_${MA_VERSION}_SDK.zip" FILENAME "MAC_${MA_VERSION}_SDK.zip" SHA512 0c96b6fa8da9d412679e8c9b43e98d475a650899694a9d085c3b0272775cf229bb09c7c4f24a18ab7ee5516d2d34f7acd59e4216aca8fe08ed04f75e33e29322 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL PATCHES remove-certificate-step.patch fix-outdir.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/Shared/32" "${SOURCE_PATH}/Shared/64" ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(PLATFORM Win32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(PLATFORM x64) else() message(FATAL_ERROR "Unsupported architecture") endif() # Use /Z7 rather than /Zi to avoid "fatal error C1090: PDB API call failed, error code '23': (0x00000006)" foreach(VCXPROJ IN ITEMS "${SOURCE_PATH}/Source/Projects/VS2022/Console/Console.vcxproj" "${SOURCE_PATH}/Source/Projects/VS2022/DirectShow Filter/APE Decoder.vcxproj" "${SOURCE_PATH}/Source/Projects/VS2022/MAC/MAC.vcxproj" "${SOURCE_PATH}/Source/Projects/VS2022/MACDll/MACDll.vcxproj" "${SOURCE_PATH}/Source/Projects/VS2022/MACLib/MACLib.vcxproj") vcpkg_replace_string( "${VCXPROJ}" "ProgramDatabase" "OldStyle" IGNORE_UNCHANGED ) vcpkg_replace_string( "${VCXPROJ}" "EditAndContinue" "OldStyle" IGNORE_UNCHANGED ) endforeach() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) list(APPEND VCPKG_C_FLAGS "-D_AFXDLL") list(APPEND VCPKG_CXX_FLAGS "-D_AFXDLL") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "Source/Projects/VS2022/MACDll/MACDll.vcxproj" PLATFORM ${PLATFORM} ) else() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "Source/Projects/VS2022/MACLib/MACLib.vcxproj" PLATFORM ${PLATFORM} ) endif() if ("tools" IN_LIST FEATURES) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "Source/Projects/VS2022/Console/Console.vcxproj" PLATFORM ${PLATFORM} ) file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/Console.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/Console.lib") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/monkeys-audio/Console.exe" "${CURRENT_PACKAGES_DIR}/tools/monkeys-audio/mac.exe") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/MACLib.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/MACLib.lib") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/Shared/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/monkeys-audio" FILES_MATCHING PATTERN "*.h") vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/license") ================================================ FILE: ports/monkeys-audio/remove-certificate-step.patch ================================================ diff --git a/Source/Projects/VS2022/Console/Console.vcxproj b/Source/Projects/VS2022/Console/Console.vcxproj index e7eea4d..754e209 100644 --- a/Source/Projects/VS2022/Console/Console.vcxproj +++ b/Source/Projects/VS2022/Console/Console.vcxproj @@ -273,9 +273,6 @@ Console - - ..\..\..\Certificate\signtool.exe sign /f ..\..\..\Certificate\MAC.pfx /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /fd sha256 /a /as /p password "$(TargetPath)" -
@@ -299,9 +296,6 @@ Console - - ..\..\..\Certificate\signtool.exe sign /f ..\..\..\Certificate\MAC.pfx /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /fd sha256 /a /as /p password "$(TargetPath)" - @@ -388,9 +382,6 @@ Console - - ..\..\..\Certificate\signtool.exe sign /f ..\..\..\Certificate\MAC.pfx /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /fd sha256 /a /as /p password "$(TargetPath)" - @@ -414,9 +405,6 @@ Console - - ..\..\..\Certificate\signtool.exe sign /f ..\..\..\Certificate\MAC.pfx /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /fd sha256 /a /as /p password "$(TargetPath)" - @@ -440,9 +428,6 @@ Console - - ..\..\..\Certificate\signtool.exe sign /f ..\..\..\Certificate\MAC.pfx /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /fd sha256 /a /as /p password "$(TargetPath)" - ================================================ FILE: ports/monkeys-audio/vcpkg.json ================================================ { "name": "monkeys-audio", "version-string": "10.08", "port-version": 2, "description": [ "Monkey's Audio is an excellent audio compression tool which has multiple advantages over traditional methods.", "Audio files compressed with it end with .ape extension." ], "homepage": "https://monkeysaudio.com", "license": null, "supports": "!(uwp | osx | linux)", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ], "features": { "tools": { "description": "Build monkeys-audio tools" } } } ================================================ FILE: ports/moos-core/cmake_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 75f367f..6ef3dc2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,7 +190,7 @@ add_subdirectory(Core) export( TARGETS MOOS NAMESPACE MOOS:: - FILE UseMOOS.cmake + FILE UseMOOSTargets.cmake ) # Support existing projects that expect to find MOOS_LIBRARIES and @@ -222,7 +222,7 @@ set(PROJECT_CONFIG_PATH "lib/cmake/MOOS") install( EXPORT MOOS NAMESPACE MOOS:: - FILE UseMOOS.cmake + FILE UseMOOSTargets.cmake DESTINATION ${PROJECT_CONFIG_PATH} ) diff --git a/Core/libMOOS/CMakeLists.txt b/Core/libMOOS/CMakeLists.txt index b74a30f..492df50 100644 --- a/Core/libMOOS/CMakeLists.txt +++ b/Core/libMOOS/CMakeLists.txt @@ -196,7 +196,7 @@ mark_as_advanced(TIME_WARP_AGGLOMERATION_CONSTANT) install( DIRECTORY ${INCLUDE_ROOTS} DESTINATION . - FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" + FILES_MATCHING PATTERN "*.h" PATTERN "*.hxx" PATTERN "*.hpp" ) # install libraries diff --git a/MOOSConfig.cmake.in b/MOOSConfig.cmake.in index 10af599..dff769a 100644 --- a/MOOSConfig.cmake.in +++ b/MOOSConfig.cmake.in @@ -2,7 +2,7 @@ # Pick up the auto-generated file which knows how to add the imported library # targets for the libraries that MOOS exports. -set(exports_file "${CMAKE_CURRENT_LIST_DIR}/UseMOOS.cmake") +set(exports_file "${CMAKE_CURRENT_LIST_DIR}/UseMOOSTargets.cmake") include(${exports_file}) include(FindPackageHandleStandardArgs) ================================================ FILE: ports/moos-core/include_functional.patch ================================================ diff --git a/Core/libMOOS/Utils/MOOSUtilityFunctions.cpp b/Core/libMOOS/Utils/MOOSUtilityFunctions.cpp index 9d4473f..3f91018 100644 --- a/Core/libMOOS/Utils/MOOSUtilityFunctions.cpp +++ b/Core/libMOOS/Utils/MOOSUtilityFunctions.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #ifndef _WIN32 #include ================================================ FILE: ports/moos-core/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO themoos/core-moos REF "v${VERSION}" SHA512 8a82074bd219bbedbe56c2187afe74a55a252b0654a675c64d1f75e62353b0874e7b405d9f677fadb297e955d11aea50a07e8f5f3546be3c4ddab76fe356a51e HEAD_REF master PATCHES cmake_fix.patch include_functional.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/MOOS) # Stage tools file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Core/GPLCore.txt") ================================================ FILE: ports/moos-core/vcpkg.json ================================================ { "name": "moos-core", "version": "10.4.0", "port-version": 10, "description": "A very light weight, easy to use middleware.", "homepage": "https://sites.google.com/site/moossoftware/", "license": "GPL-2.0-or-later", "supports": "!xbox & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/moos-essential/fix.patch ================================================ diff --git a/Essentials/pShare/CMakeLists.txt b/Essentials/pShare/CMakeLists.txt index 5128a50..7fee919 100644 --- a/Essentials/pShare/CMakeLists.txt +++ b/Essentials/pShare/CMakeLists.txt @@ -20,4 +20,4 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/pshare_test_scripts DESTINATION ${CMAKE_RU add_custom_command(TARGET pShare POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_SOURCE_DIR}/pshare_test_scripts ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + ${CMAKE_SOURCE_DIR}/Essentials/pShare/pshare_test_scripts ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) diff --git a/Essentials/pShare/Share.cpp b/Essentials/pShare/Share.cpp index 7825e00..756a760 100644 --- a/Essentials/pShare/Share.cpp +++ b/Essentials/pShare/Share.cpp @@ -17,7 +17,7 @@ #include "MOOS/libMOOS/Utils/MOOSUtilityFunctions.h" #include "MOOS/libMOOS/Utils/IPV4Address.h" -#include "MOOS/libMOOS/Thirdparty/getpot/GetPot" +#include "MOOS/libMOOS/Thirdparty/getpot/GetPot.hpp" #include "MOOS/libMOOS/Utils/SafeList.h" #include "MOOS/libMOOS/Utils/ConsoleColours.h" #include "MOOS/libMOOS/Utils/KeyboardCapture.h" ================================================ FILE: ports/moos-essential/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO themoos/essential-moos REF b897ea86dba8b61412dc48ac0cfb5ff34cdaf5f6 SHA512 7284744d211dcdcb0cd321eec96f3632ccda690e8894261f4f09a06bc8faefb2de68f4f2f755f4eeef5bb586044e98ac65cdd18c15193a1a4632bd2f4208c52f HEAD_REF master PATCHES fix.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/MOOS") if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/pAntler") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pAntler" "${CURRENT_PACKAGES_DIR}/tools/MOOS/pAntler") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pLogger" "${CURRENT_PACKAGES_DIR}/tools/MOOS/pLoggers") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pMOOSBridge" "${CURRENT_PACKAGES_DIR}/tools/MOOS/pMOOSBridge") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pScheduler" "${CURRENT_PACKAGES_DIR}/tools/MOOS/pScheduler") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pShare" "${CURRENT_PACKAGES_DIR}/tools/MOOS/pShare") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/fake_header.h" "// fake header to pass vcpkg post install check \n") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "see moos-core for copyright\n" ) ================================================ FILE: ports/moos-essential/vcpkg.json ================================================ { "name": "moos-essential", "version": "10.0.1", "port-version": 5, "description": "a set of useful applications that leverage the core-moos communications layer.", "homepage": "https://sites.google.com/site/moossoftware/", "dependencies": [ "moos-core", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/moos-ui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO themoos/ui-moos REF ba7dd1db7db1848acb3e68b9e54d3da9d7014684 SHA512 96225216973656a9029d4e8ac8a8b69df15db5c160bcbd02755cd291bfe5817dbde3a6a5f46b71a138ddf4a389c3c702d4d502ade91ad88554042d7b9d75f843 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_CONSOLE_TOOLS=ON -DBUILD_GRAPHICAL_TOOLS=OFF #${BUILD_GRAPHICAL_TOOLS} ) vcpkg_cmake_install() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/MOOS") if (VCPKG_TARGET_IS_WINDOWS) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/uPoke.exe" "${CURRENT_PACKAGES_DIR}/tools/MOOS/uPoke.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/iRemoteLite.exe" "${CURRENT_PACKAGES_DIR}/tools/MOOS/iRemoteLite.exe") else() file(RENAME "${CURRENT_PACKAGES_DIR}/bin/uPoke" "${CURRENT_PACKAGES_DIR}/tools/MOOS/uPoke") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/iRemoteLite" "${CURRENT_PACKAGES_DIR}/tools/MOOS/iRemoteLite") endif() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/MOOS") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug") file(WRITE "${CURRENT_PACKAGES_DIR}/include/fake_header_ui.h" "// fake header to pass vcpkg post install check \n") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "see moos-core for copyright\n" ) ================================================ FILE: ports/moos-ui/vcpkg.json ================================================ { "name": "moos-ui", "version": "10.0.1", "port-version": 5, "description": "set of user interface tools to use and leverage the MOOS project.", "homepage": "https://sites.google.com/site/moossoftware/", "dependencies": [ "moos-core", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/morcules-swiftnet/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO morcules/SwiftNet REF "${VERSION}" SHA512 086166fe976e52ae78a1b9a33db4cb5ef95efca022c9198585e7cf1c2129134050ceba8b4ef6c9234ac29535568e20e8d775f6811b772b68301c2e231b8b7987 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS -DSANITIZER=none ) vcpkg_cmake_install() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/morcules-swiftnet/usage ================================================ morcules-swiftnet provides CMake targets: find_package(morcules-swiftnet REQUIRED) target_link_libraries(main PRIVATE swiftnet::swiftnet) ================================================ FILE: ports/morcules-swiftnet/vcpkg.json ================================================ { "name": "morcules-swiftnet", "version": "0.4.0", "description": "SwiftNet is a C networking library built using pcap, providing a clean and readable API.", "homepage": "https://github.com/morcules/SwiftNet", "license": "Apache-2.0", "supports": "(osx & arm64) | (linux & arm64)", "dependencies": [ "libpcap", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/morphologica/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ABRG-Models/morphologica REF "v${VERSION}" SHA512 db22a6fcd16acea11d15d9d2253839f90c9684c22d02fcd0d22ba20f944b101300752e05fa600662d9676ad091b5cf52e9d18cfe37918841881fb1282ab6f6b9 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/morphologica/vcpkg.json ================================================ { "name": "morphologica", "version": "4.0", "description": "C++ header-only graphing and data visualization with Modern OpenGL", "homepage": "https://github.com/ABRG-Models/morphologica", "license": "Apache-2.0", "dependencies": [ "armadillo", { "name": "egl", "platform": "linux" }, { "name": "freeglut", "platform": "linux" }, "freetype", "glfw3", "hdf5", "nlohmann-json", "opengl", "rapidxml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/morton-nd/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kevinhartman/morton-nd REF v4.0.0 SHA512 19dc51ae5d7fc868625a9c9f0dddec95a77fdeac714300033008f096bc3a83f146738e525e8a0ec541903263355a7fec84b1873d8eacfca4b93d3cd8945653da HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/morton-nd/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/share/doc" ) # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) file(COPY "${SOURCE_PATH}/NOTICE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/morton-nd/vcpkg.json ================================================ { "name": "morton-nd", "version": "4.0.0", "port-version": 3, "description": "header-only constexpr library for fast Morton encoding/decoding in N dimensions.", "homepage": "https://github.com/kevinhartman/morton-nd", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mosquitto/linkage-and-export.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e1c58d..6fa9392 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ option(WITH_PIC "Build the static library with PIC (Position Independent Code) e option(WITH_THREADING "Include client library threading support?" ON) if (WITH_THREADING) add_definitions("-DWITH_THREADING") - if(WIN32) + if(WIN32 AND NOT MINGW) find_package(Pthreads4W REQUIRED) endif() endif (WITH_THREADING) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 21b6149..051dffe 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -60,7 +60,7 @@ set(C_SRC util_mosq.c util_topic.c util_mosq.h will_mosq.c will_mosq.h) -set (LIBRARIES OpenSSL::SSL) +set (LIBRARIES PRIVATE OpenSSL::SSL) if (UNIX AND NOT APPLE AND NOT ANDROID) find_library(LIBRT rt) @@ -90,7 +90,7 @@ set_target_properties(libmosquitto PROPERTIES ) if (WITH_THREADING) - if(WIN32) + if(WIN32 AND NOT MINGW) set (LIBRARIES ${LIBRARIES} PThreads4W::PThreads4W) else() set(THREADS_PREFER_PTHREAD_FLAG ON) @@ -115,11 +115,6 @@ if(UNIX AND NOT APPLE) ) endif() -install(TARGETS libmosquitto - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") - if (WITH_STATIC_LIBRARIES) add_library(libmosquitto_static STATIC ${C_SRC}) if (WITH_PIC) @@ -136,8 +131,28 @@ if (WITH_STATIC_LIBRARIES) ) target_compile_definitions(libmosquitto_static PUBLIC "LIBMOSQUITTO_STATIC") - install(TARGETS libmosquitto_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + + set(install_target libmosquitto_static) + set_target_properties(libmosquitto PROPERTIES EXCLUDE_FROM_ALL 1) +else () + set(install_target libmosquitto) endif (WITH_STATIC_LIBRARIES) +target_include_directories(${install_target} PUBLIC $) +set_target_properties(${install_target} PROPERTIES EXPORT_NAME mosquitto) +install(TARGETS ${install_target} + EXPORT mosquitto + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) +install(EXPORT mosquitto + NAMESPACE unofficial::mosquitto:: + FILE unofficial-mosquitto-targets.cmake + DESTINATION "share/unofficial-mosquitto" +) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/unofficial-mosquitto-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mosquitto-config.cmake" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mosquitto-config.cmake" DESTINATION "share/unofficial-mosquitto") + install(FILES ../include/mosquitto.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install(FILES ../include/mqtt_protocol.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt index 882b662..5959a96 100644 --- a/lib/cpp/CMakeLists.txt +++ b/lib/cpp/CMakeLists.txt @@ -9,15 +9,11 @@ add_library(mosquittopp SHARED ${CPP_SRC}) set_target_properties(mosquittopp PROPERTIES POSITION_INDEPENDENT_CODE 1 ) -target_link_libraries(mosquittopp libmosquitto) +target_link_libraries(mosquittopp PUBLIC libmosquitto) set_target_properties(mosquittopp PROPERTIES VERSION ${VERSION} SOVERSION 1 ) -install(TARGETS mosquittopp - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") if (WITH_STATIC_LIBRARIES) add_library(mosquittopp_static STATIC @@ -30,7 +26,7 @@ if (WITH_STATIC_LIBRARIES) ) endif (WITH_PIC) - target_link_libraries(mosquittopp_static ${LIBRARIES}) + target_link_libraries(mosquittopp_static PUBLIC libmosquitto_static) set_target_properties(mosquittopp_static PROPERTIES OUTPUT_NAME mosquittopp_static @@ -38,7 +34,19 @@ if (WITH_STATIC_LIBRARIES) ) target_compile_definitions(mosquittopp_static PUBLIC "LIBMOSQUITTO_STATIC") - install(TARGETS mosquittopp_static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + + set(install_target mosquittopp_static) + set_target_properties(mosquittopp PROPERTIES EXCLUDE_FROM_ALL 1) +else () + set(install_target mosquittopp) endif (WITH_STATIC_LIBRARIES) +set_target_properties(${install_target} PROPERTIES EXPORT_NAME mosquittopp) +install(TARGETS ${install_target} + EXPORT mosquitto + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) + install(FILES mosquittopp.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/libmosquitto.pc.in b/libmosquitto.pc.in index 101a125..0747b43 100644 --- a/libmosquitto.pc.in +++ b/libmosquitto.pc.in @@ -8,3 +8,5 @@ Description: mosquitto MQTT library (C bindings) Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lmosquitto +Libs.private: @CMAKE_THREAD_LIBS_INIT@ +Requires.private: libssl diff --git a/libmosquittopp.pc.in b/libmosquittopp.pc.in index 6070f44..4edde61 100644 --- a/libmosquittopp.pc.in +++ b/libmosquittopp.pc.in @@ -8,3 +8,4 @@ Description: mosquitto MQTT library (C++ bindings) Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lmosquittopp +Requires.private: libmosquitto ================================================ FILE: ports/mosquitto/mosquitto-config.cmake ================================================ message(AUTHOR_WARNING "find_package(${PACKAGE_NAME}) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-mosquitto CONFIG) # legacy, ported from wrapper find_path(MOSQUITTO_INCLUDE_DIR mosquitto.h) set(MOSQUITTO_INCLUDE_DIRS ${MOSQUITTO_INCLUDE_DIR}) # legacy, both vars included the C++ target set(MOSQUITTO_LIBRARIES unofficial::mosquitto::mosquittopp) set(MOSQUITTOPP_LIBRARIES unofficial::mosquitto::mosquittopp) ================================================ FILE: ports/mosquitto/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse/mosquitto HEAD_REF master REF "v${VERSION}" SHA512 ca8bdcb10fea751e655e2de393479b2f863287b396b13e441de46c32918229c1f80a386fdd6d0daf3b0161f640702b6d8a87f2278c9baf2150e2c533cb59e57a PATCHES linkage-and-export.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/deps") file(COPY "${CURRENT_PORT_DIR}/unofficial-mosquitto-config.cmake" DESTINATION "${SOURCE_PATH}/lib") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATIC_LINKAGE) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWITH_STATIC_LIBRARIES=${STATIC_LINKAGE} -DWITH_SRV=OFF -DWITH_TLS=ON -DWITH_TLS_PSK=ON -DWITH_THREADING=ON -DDOCUMENTATION=OFF -DWITH_PLUGINS=OFF -DWITH_CJSON=OFF -DWITH_CLIENTS=OFF -DWITH_APPS=OFF -DWITH_BROKER=OFF -DWITH_BUNDLED_DEPS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mosquitto) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/mosquitto-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/mosquitto/unofficial-mosquitto-config.cmake ================================================ if("@WITH_STATIC_LIBRARIES@") include(CMakeFindDependencyMacro) find_dependency(OpenSSL) if(WIN32 AND NOT MINGW) find_dependency(Pthreads4W) else() find_dependency(Threads) endif() endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-mosquitto-targets.cmake") ================================================ FILE: ports/mosquitto/usage ================================================ mosquitto provides CMake targets: find_package(unofficial-mosquitto CONFIG REQUIRED) # C bindings target_link_libraries(main PRIVATE unofficial::mosquitto::mosquitto) # C++ bindings target_link_libraries(main PRIVATE unofficial::mosquitto::mosquittopp) mosquitto provides pkg-config modules: # mosquitto MQTT library (C bindings) libmosquitto # mosquitto MQTT library (C++ bindings) libmosquittopp ================================================ FILE: ports/mosquitto/vcpkg.json ================================================ { "name": "mosquitto", "version": "2.0.22", "port-version": 1, "description": "Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1, MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model, This makes it suitable for machine to machine messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino", "homepage": "https://mosquitto.org/", "license": "EPL-2.0", "supports": "!uwp", "dependencies": [ "openssl", "pthreads", "uthash", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mp-units/config.patch ================================================ diff --git a/src/mp-unitsConfig.cmake.in b/src/mp-unitsConfig.cmake.in index 1f4f268..f94f05d 100644 --- a/src/mp-unitsConfig.cmake.in +++ b/src/mp-unitsConfig.cmake.in @@ -27,14 +27,10 @@ set(MP_UNITS_API_STD_FORMAT @MP_UNITS_API_STD_FORMAT@) set(MP_UNITS_API_CONTRACTS @MP_UNITS_API_CONTRACTS@) if(NOT MP_UNITS_API_FREESTANDING AND NOT MP_UNITS_API_STD_FORMAT) - find_dependency(fmt) + find_dependency(fmt CONFIG) endif() -if(MP_UNITS_API_CONTRACTS STREQUAL "GSL-LITE") - find_dependency(gsl-lite) -elseif(MP_UNITS_API_CONTRACTS STREQUAL "MS-GSL") - find_dependency(Microsoft.GSL) -endif() +find_dependency(gsl-lite CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/mp-unitsTargets.cmake") ================================================ FILE: ports/mp-units/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message("Note: `mp-units` requires Clang16+ or GCC11+") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mpusz/mp-units REF "v${VERSION}" SHA512 949aa8e7382dc91cfc30dc3f3617b10fcd1ff7d30ba70bfe29ddcdad0309c12e08b74d0fe86686cd56579ca6ebbaa20cc5a5dede206dd9a977a6b9759495052d PATCHES config.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") # Handle copyright/readme/package files vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Header only ================================================ FILE: ports/mp-units/vcpkg.json ================================================ { "name": "mp-units", "version": "2.5.0", "description": "The quantities and units library for C++", "homepage": "https://mpusz.github.io/mp-units", "license": "MIT", "dependencies": [ "fmt", "gsl-lite", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mp3lame/00001-msvc-upgrade-solution-up-to-vc11.patch ================================================ diff --git a/vc_solution/arch_nasm.props b/vc_solution/arch_nasm.props new file mode 100644 index 0000000..13174c9 --- /dev/null +++ b/vc_solution/arch_nasm.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + TAKEHIRO_IEEE754_HACK;HAVE_NASM;MMX_choose_table;%(PreprocessorDefinitions) + + + + \ No newline at end of file diff --git a/vc_solution/arch_sse2.props b/vc_solution/arch_sse2.props new file mode 100644 index 0000000..1f97d57 --- /dev/null +++ b/vc_solution/arch_sse2.props @@ -0,0 +1,17 @@ + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + HAVE_XMMINTRIN_H;MIN_ARCH_SSE;%(PreprocessorDefinitions) + StreamingSIMDExtensions2 + Fast + + + + \ No newline at end of file diff --git a/vc_solution/arch_x87.props b/vc_solution/arch_x87.props new file mode 100644 index 0000000..3268c6b --- /dev/null +++ b/vc_solution/arch_x87.props @@ -0,0 +1,15 @@ + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + TAKEHIRO_IEEE754_HACK;%(PreprocessorDefinitions) + + + + \ No newline at end of file diff --git a/vc_solution/vc11_lame.sln b/vc_solution/vc11_lame.sln new file mode 100644 index 0000000..9453bb0 --- /dev/null +++ b/vc_solution/vc11_lame.sln @@ -0,0 +1,41 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lame", "vc11_lame_lame.vcxproj", "{EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38}" + ProjectSection(ProjectDependencies) = postProject + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2} = {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame-static", "vc11_libmp3lame.vcxproj", "{20536101-3B0E-43EF-94F9-080D595DAC57}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp3lame", "vc11_libmp3lame_dll.vcxproj", "{92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmpghip-static", "vc11_mpglib.vcxproj", "{E2DAB91A-8248-4625-8A85-2C2C2A390DD8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38}.Debug|Win32.ActiveCfg = Debug|Win32 + {EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38}.Debug|Win32.Build.0 = Debug|Win32 + {EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38}.Release|Win32.ActiveCfg = Release|Win32 + {EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38}.Release|Win32.Build.0 = Release|Win32 + {20536101-3B0E-43EF-94F9-080D595DAC57}.Debug|Win32.ActiveCfg = Debug|Win32 + {20536101-3B0E-43EF-94F9-080D595DAC57}.Debug|Win32.Build.0 = Debug|Win32 + {20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.ActiveCfg = Release|Win32 + {20536101-3B0E-43EF-94F9-080D595DAC57}.Release|Win32.Build.0 = Release|Win32 + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}.Debug|Win32.ActiveCfg = Debug|Win32 + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}.Debug|Win32.Build.0 = Debug|Win32 + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}.Release|Win32.ActiveCfg = Release|Win32 + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2}.Release|Win32.Build.0 = Release|Win32 + {E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Debug|Win32.ActiveCfg = Debug|Win32 + {E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Debug|Win32.Build.0 = Debug|Win32 + {E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.ActiveCfg = Release|Win32 + {E2DAB91A-8248-4625-8A85-2C2C2A390DD8}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vc_solution/vc11_lame_config.props b/vc_solution/vc11_lame_config.props new file mode 100644 index 0000000..fd60017 --- /dev/null +++ b/vc_solution/vc11_lame_config.props @@ -0,0 +1,32 @@ + + + + + + + <_ProjectFileVersion>11.0.61030.0 + $(SolutionDir)..\output\$(Configuration)\ + $(SolutionDir)..\obj\$(Configuration)\$(ProjectName)\ + false + + + + $(IntDir)$(ProjectName).bsc + + + _CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATED;%(PreprocessorDefinitions) + true + true + $(IntDir) + true + Level4 + 4995;4996;%(DisableSpecificWarnings) + + + $(OutDir);%(AdditionalLibraryDirectories) + $(OutDir)$(TargetName).pdb + true + + + + \ No newline at end of file diff --git a/vc_solution/vc11_lame_lame.vcxproj b/vc_solution/vc11_lame_lame.vcxproj new file mode 100644 index 0000000..faf101a --- /dev/null +++ b/vc_solution/vc11_lame_lame.vcxproj @@ -0,0 +1,128 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + lame + {EEF5B49E-DBD1-4E1B-8B86-C5D64FCBAD38} + lame + + + + Application + v110 + false + + + Application + v110 + false + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + ..\output\Debug/lame.tlb + + + + Disabled + ../;../mpglib;../libmp3lame;../include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WIN32;_CONSOLE;_WINDOWS;HAVE_MPGLIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + ProgramDatabase + + + _DEBUG;_APP=$(TargetFileName);%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)lame.exe + true + Console + false + /APPCONTAINER /machine:x86 %(AdditionalOptions) + NotSet + + + + + ..\output\Release/lame.tlb + + + + Full + AnySuitable + true + Speed + ..;../mpglib;../libmp3lame;../include;../;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WIN32;_CONSOLE;_WINDOWS;HAVE_MPGLIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + NDEBUG;_APP=$(TargetFileName);%(PreprocessorDefinitions) + 0x0409 + + + $(OutDir)lame.exe + Console + false + /APPCONTAINER /machine:x86 %(AdditionalOptions) + NotSet + + + + + + + + + + + + + + + + + + + + + + + + + + + {20536101-3b0e-43ef-94f9-080d595dac57} + false + + + + + + \ No newline at end of file diff --git a/vc_solution/vc11_libmp3lame.vcxproj b/vc_solution/vc11_libmp3lame.vcxproj new file mode 100644 index 0000000..d4636b0 --- /dev/null +++ b/vc_solution/vc11_libmp3lame.vcxproj @@ -0,0 +1,188 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + libmp3lame-static + {20536101-3B0E-43EF-94F9-080D595DAC57} + libmp3lame + + + + StaticLibrary + v110 + false + + + StaticLibrary + v110 + false + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + Full + AnySuitable + true + Speed + ../mpglib;../include;..;%(AdditionalIncludeDirectories) + NDEBUG;_WINDOWS;HAVE_MPGLIB;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + 0x0409 + + + $(OutDir)libmp3lame-static.lib + + + + + Disabled + ../mpglib;../include;..;%(AdditionalIncludeDirectories) + _DEBUG;_WINDOWS;HAVE_MPGLIB;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(OutDir)$(TargetName).pdb + OldStyle + + + 0x0409 + + + $(OutDir)libmp3lame-static.lib + + + + + + + + + + + + + + + + + + + Level1 + Level1 + + + + + + + + ../libmp3lame;%(AdditionalIncludeDirectories) + ../libmp3lame;%(AdditionalIncludeDirectories) + + + + + + Performing Custom Build Step on %(Filename) + copy ..\configMS.h ..\config.h + + ..\config.h;%(Outputs) + Performing Custom Build Step on %(Filename) + copy ..\configMS.h ..\config.h + + ..\config.h;%(Outputs) + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + true + true + + + + + {e2dab91a-8248-4625-8a85-2c2c2a390dd8} + false + + + + + + + \ No newline at end of file diff --git a/vc_solution/vc11_libmp3lame_dll.vcxproj b/vc_solution/vc11_libmp3lame_dll.vcxproj new file mode 100644 index 0000000..9dad9d5 --- /dev/null +++ b/vc_solution/vc11_libmp3lame_dll.vcxproj @@ -0,0 +1,125 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + libmp3lame + {92BD50AA-04D6-4FBF-ACE1-468FAF6778F2} + libmp3lameDLL + + + + DynamicLibrary + v110 + false + + + DynamicLibrary + v110 + false + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + ..\output\Release/libmp3lame_dll.tlb + + + + Full + AnySuitable + true + Speed + ../libmp3lame;../;../mpglib;../include;..;%(AdditionalIncludeDirectories) + NDEBUG;_WINDOWS;HAVE_MPGLIB;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + _VC80_UPGRADE=0x0600;_DLL=$(TargetFileName);%(PreprocessorDefinitions) + 0x0409 + + + false + + + $(OutDir)libmp3lame.dll + ..\include\lame.def + $(OutDir)libmp3lame.lib + /APPCONTAINER /machine:x86 %(AdditionalOptions) + false + NotSet + + + + + ..\output\Debug/libmp3lame_dll.tlb + + + + Disabled + ../libmp3lame;../;../mpglib;../include;..;%(AdditionalIncludeDirectories) + _DEBUG;_WINDOWS;HAVE_MPGLIB;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + ProgramDatabase + + + _VC80_UPGRADE=0x0600;_DLL=$(TargetFileName);_DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + false + + + $(OutDir)libmp3lame.dll + ..\include\lame.def + true + $(OutDir)libmp3lame.lib + /APPCONTAINER /machine:x86 %(AdditionalOptions) + false + NotSet + + + + + true + true + + + + + + + + {20536101-3b0e-43ef-94f9-080d595dac57} + false + + + + + + + \ No newline at end of file diff --git a/vc_solution/vc11_mpglib.vcxproj b/vc_solution/vc11_mpglib.vcxproj new file mode 100644 index 0000000..a455bca --- /dev/null +++ b/vc_solution/vc11_mpglib.vcxproj @@ -0,0 +1,116 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + libmpghip-static + {E2DAB91A-8248-4625-8A85-2C2C2A390DD8} + libmpghip + + + + StaticLibrary + v110 + false + + + StaticLibrary + v110 + false + + + + + + + + + + + + + + + + + <_ProjectFileVersion>11.0.61030.0 + + + + Full + AnySuitable + true + Speed + ../libmp3lame;../include;..;%(AdditionalIncludeDirectories) + NDEBUG;HAVE_MPGLIB;_WINDOWS;USE_LAYER_2;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDLL + + + 0x0409 + + + $(OutDir)libmpghip-static.lib + + + + + Disabled + ../libmp3lame;../include;..;%(AdditionalIncludeDirectories) + _DEBUG;_WINDOWS;USE_LAYER_2;HAVE_MPGLIB;WIN32;HAVE_CONFIG_H;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + $(OutDir)$(TargetName).pdb + OldStyle + + + 0x0409 + + + $(OutDir)libmpghip-static.lib + + + + + + + + + + + + + + + + Performing Custom Build Step on %(Filename) + copy ..\configMS.h ..\config.h + + ..\config.h;%(Outputs) + Performing Custom Build Step on %(Filename) + copy ..\configMS.h ..\config.h + + ..\config.h;%(Outputs) + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vc_solution/vc11_nasm.props b/vc_solution/vc11_nasm.props new file mode 100644 index 0000000..0f8542f --- /dev/null +++ b/vc_solution/vc11_nasm.props @@ -0,0 +1,24 @@ + + + + Midl + CustomBuild + + + _SelectedFiles;$(NASMDependsOn) + + + + $(IntDir)%(Filename).obj + win32 + %(RootDir)%(Directory) + WIN32 + nasmw [BinFormat] [IncludeDir] [Defines] -o [OutFile] %(FullPath) + [OutFile] + Assembling %(Filename)... + false + + + \ No newline at end of file diff --git a/vc_solution/vc11_nasm.targets b/vc_solution/vc11_nasm.targets new file mode 100644 index 0000000..3158d8d --- /dev/null +++ b/vc_solution/vc11_nasm.targets @@ -0,0 +1,85 @@ + + + + + + _NASM + + + + $(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml + + + + + + + + @(NASM, '|') + + + + + + + + + $(ComputeLinkInputsTargets); + ComputeNASMOutput; + + + $(ComputeLibInputsTargets); + ComputeNASMOutput; + + + + + + + + + + + + \ No newline at end of file diff --git a/vc_solution/vc11_nasm.xml b/vc_solution/vc11_nasm.xml new file mode 100644 index 0000000..390d570 --- /dev/null +++ b/vc_solution/vc11_nasm.xml @@ -0,0 +1,149 @@ + + + + + + + + + + General + + + + + Command Line + + + + + + + + + + + + + + + + Execute Before + + + Specifies the targets for the build customization to run before. + + + + + + + + + + + Execute After + + + Specifies the targets for the build customization to run after. + + + + + + + + + + + + + + Additional Options + + + Additional Options + + + + + + + \ No newline at end of file ================================================ FILE: ports/mp3lame/Config.cmake.in ================================================ get_filename_component(_mp3lame_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_mp3lame_root "${_mp3lame_root}" PATH) get_filename_component(_mp3lame_root "${_mp3lame_root}" PATH) set(_mp3lame_rel_lib "${_mp3lame_root}/lib/@MP3LAME_LIB@") set(_mp3lame_dbg_lib "${_mp3lame_root}/debug/lib/@MP3LAME_LIB@") set(mp3lame_FOUND FALSE) if (EXISTS "${_mp3lame_rel_lib}" OR EXISTS "${_mp3lame_dbg_lib}" AND NOT TARGET mp3lame::mp3lame) add_library(mp3lame::mp3lame UNKNOWN IMPORTED) set_target_properties(mp3lame::mp3lame PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_mp3lame_root}/include") if (EXISTS "${_mp3lame_rel_lib}") set_target_properties(mp3lame::mp3lame PROPERTIES IMPORTED_LOCATION_RELEASE "${_mp3lame_rel_lib}") set_property(TARGET mp3lame::mp3lame APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) endif() if (EXISTS "${_mp3lame_dbg_lib}") set_target_properties(mp3lame::mp3lame PROPERTIES IMPORTED_LOCATION_DEBUG "${_mp3lame_dbg_lib}") set_property(TARGET mp3lame::mp3lame APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) endif() set(_mp3lame_mpghip_rel_lib "${_mp3lame_root}/lib/libmpghip-static.lib") set(_mp3lame_mpghip_dbg_lib "${_mp3lame_root}/debug/lib/libmpghip-static.lib") if (EXISTS "${_mp3lame_mpghip_rel_lib}" OR EXISTS "${_mp3lame_mpghip_dbg_lib}") add_library(mp3lame::mpghip UNKNOWN IMPORTED) if (EXISTS "${_mp3lame_rel_lib}") set_target_properties(mp3lame::mpghip PROPERTIES IMPORTED_LOCATION_RELEASE "${_mp3lame_mpghip_rel_lib}") set_property(TARGET mp3lame::mpghip APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) endif() if (EXISTS "${_mp3lame_dbg_lib}") set_target_properties(mp3lame::mpghip PROPERTIES IMPORTED_LOCATION_DEBUG "${_mp3lame_mpghip_dbg_lib}") set_property(TARGET mp3lame::mpghip APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) endif() set_target_properties(mp3lame::mp3lame PROPERTIES INTERFACE_LINK_LIBRARIES mp3lame::mpghip) endif() unset(_mp3lame_mpghip_rel_lib) unset(_mp3lame_mpghip_dbg_lib) endif() if(TARGET mp3lame::mp3lame) set(mp3lame_FOUND TRUE) endif() unset(_mp3lame_rel_lib) unset(_mp3lame_dbg_lib) unset(_mp3lame_root) ================================================ FILE: ports/mp3lame/add-macos-universal-config.patch ================================================ diff --git a/config.sub b/config.sub index 3580aaf..bf099fc 100755 --- a/config.sub +++ b/config.sub @@ -439,6 +439,7 @@ case $basic_machine in | tile*-* \ | tron-* \ | ubicom32-* \ + | universal-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ ================================================ FILE: ports/mp3lame/fix-mingw-w64-compatibility.patch ================================================ diff --git a/configure.in b/configure.in index 3f9fddb..0695f42 100644 --- a/configure.in +++ b/configure.in @@ -421,6 +421,7 @@ AC_CHECK_HEADERS(ncurses/termcap.h) AC_CHECK_LIB(termcap, initscr, HAVE_TERMCAP="termcap") AC_CHECK_LIB(curses, initscr, HAVE_TERMCAP="curses") AC_CHECK_LIB(ncurses, initscr, HAVE_TERMCAP="ncurses") +AC_CHECK_HEADERS(langinfo.h, AC_CHECK_FUNCS(nl_langinfo)) AM_ICONV diff --git a/frontend/parse.c b/frontend/parse.c index 752613f..99dc032 100644 --- a/frontend/parse.c +++ b/frontend/parse.c @@ -70,9 +70,11 @@ char *strchr(), *strrchr(); #ifdef HAVE_ICONV #include #include +#ifdef HAVE_LANGINFO_H #include #include #endif +#endif #if defined _ALLOW_INTERNAL_OPTIONS #define INTERNAL_OPTS 1 @@ -146,6 +148,18 @@ strlenMultiByte(char const* str, size_t w) return n; } +static char* +currentCharacterEncoding() +{ +#ifdef HAVE_LANGINFO_H + char* cur_code = nl_langinfo(CODESET); +#else + char* env_lang = getenv("LANG"); + char* xxx_code = env_lang == NULL ? NULL : strrchr(env_lang, '.'); + char* cur_code = xxx_code == NULL ? "" : xxx_code+1; +#endif + return cur_code; +} static size_t currCharCodeSize(void) @@ -153,7 +167,7 @@ currCharCodeSize(void) size_t n = 1; char dst[32]; char* src = "A"; - char* cur_code = nl_langinfo(CODESET); + char* cur_code = currentCharacterEncoding(); iconv_t xiconv = iconv_open(cur_code, "ISO_8859-1"); if (xiconv != (iconv_t)-1) { for (n = 0; n < 32; ++n) { @@ -181,7 +195,7 @@ char* fromLatin1( char* src ) size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* cur_code = currentCharacterEncoding(); iconv_t xiconv = iconv_open(cur_code, "ISO_8859-1"); if (xiconv != (iconv_t)-1) { char* i_ptr = src; @@ -205,7 +219,7 @@ char* fromUtf16( char* src ) size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* cur_code = currentCharacterEncoding(); iconv_t xiconv = iconv_open(cur_code, "UTF-16LE"); if (xiconv != (iconv_t)-1) { char* i_ptr = (char*)src; @@ -231,7 +245,7 @@ char* toLatin1( char* src ) size_t const n = l*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* cur_code = currentCharacterEncoding(); iconv_t xiconv = iconv_open("ISO_8859-1//TRANSLIT", cur_code); if (xiconv != (iconv_t)-1) { char* i_ptr = (char*)src; @@ -257,7 +271,7 @@ char* toUtf16( char* src ) size_t const n = (l+1)*4; dst = calloc(n+4, 4); if (dst != 0) { - char* cur_code = nl_langinfo(CODESET); + char* cur_code = currentCharacterEncoding(); iconv_t xiconv = iconv_open("UTF-16LE//TRANSLIT", cur_code); dst[0] = 0xff; dst[1] = 0xfe; @@ -1513,7 +1527,7 @@ parse_args_(lame_global_flags * gfp, int argc, char **argv, enum TextEncoding id3_tenc = TENC_LATIN1; #endif -#ifdef HAVE_ICONV +#ifdef HAVE_LANGINFO_H setlocale(LC_CTYPE, ""); #endif inPath[0] = '\0'; ================================================ FILE: ports/mp3lame/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO lame/lame REF ${VERSION} FILENAME "lame-${VERSION}.tar.gz" SHA512 0844b9eadb4aacf8000444621451277de365041cc1d97b7f7a589da0b7a23899310afd4e4d81114b9912aa97832621d20588034715573d417b2923948c08634b PATCHES 00001-msvc-upgrade-solution-up-to-vc11.patch remove_lame_init_old_from_symbol_list.patch # deprecated https://github.com/zlargon/lame/blob/master/include/lame.h#L169 add-macos-universal-config.patch fix-mingw-w64-compatibility.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(platform "ARM64") set(machine "ARM64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(platform "ARM") set(machine "ARM") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(platform "x64") set(machine "x64") else() set(platform "Win32") set(machine "x86") endif() file(READ "${SOURCE_PATH}/vc_solution/vc11_lame.sln" sln_con) string(REPLACE "|Win32" "|${platform}" sln_con "${sln_con}") string(REPLACE "\"vc11_" "\"${machine}_vc11_" sln_con "${sln_con}") file(WRITE "${SOURCE_PATH}/vc_solution/${machine}_vc11_lame.sln" "${sln_con}") file(GLOB vcxprojs RELATIVE "${SOURCE_PATH}/vc_solution" "${SOURCE_PATH}/vc_solution/vc11_*.vcxproj") foreach(vcxproj ${vcxprojs}) file(READ "${SOURCE_PATH}/vc_solution/${vcxproj}" vcxproj_con) if(NOT VCPKG_CRT_LINKAGE STREQUAL dynamic) string(REPLACE "DLL" "" vcxproj_con "${vcxproj_con}") endif() string(REPLACE "/machine:x86" "/machine:${machine}" vcxproj_con "${vcxproj_con}") string(REPLACE "Win32" "${platform}" vcxproj_con "${vcxproj_con}") string(REPLACE "|Win32" "|${platform}" vcxproj_con "${vcxproj_con}") string(REPLACE "Include=\"vc11_" "Include=\"${machine}_vc11_" vcxproj_con "${vcxproj_con}") if(NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") string(REPLACE "/APPCONTAINER" "" vcxproj_con "${vcxproj_con}") endif() file(WRITE "${SOURCE_PATH}/vc_solution/${machine}_${vcxproj}" "${vcxproj_con}") endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "vc_solution/${machine}_vc11_lame.sln" TARGET "libmp3lame-static" PLATFORM "${platform}" ) else() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "vc_solution/${machine}_vc11_lame.sln" TARGET "libmp3lame" PLATFORM "${platform}" ) endif() if("frontend" IN_LIST FEATURES) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "vc_solution/${machine}_vc11_lame.sln" TARGET "lame" PLATFORM "${platform}" ) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libmp3lame.lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libmp3lame.lib") endif() set(MP3LAME_LIB "libmp3lame-static.lib") else() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libmp3lame-static.lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libmpghip-static.lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libmp3lame-static.lib") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libmpghip-static.lib") endif() set(MP3LAME_LIB "libmp3lame.lib") endif() else() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(OPTIONS --enable-static=yes --enable-shared=no) set(MP3LAME_LIB "libmp3lame${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") else() set(OPTIONS --enable-shared=yes --enable-static=no) if(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX) set(MP3LAME_LIB "libmp3lame${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}") else() set(MP3LAME_LIB "libmp3lame${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") endif() endif() if("frontend" IN_LIST FEATURES) list(APPEND OPTIONS --enable-frontend) else() list(APPEND OPTIONS --disable-frontend) endif() if(NOT VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS --with-pic=yes) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" DETERMINE_BUILD_TRIPLET OPTIONS ${OPTIONS} ) vcpkg_install_make() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/doc" "${CURRENT_PACKAGES_DIR}/share/${PORT}/man1") file(COPY "${SOURCE_PATH}/include/lame.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/lame") configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/mp3lame-config.cmake" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mp3lame/remove_lame_init_old_from_symbol_list.patch ================================================ diff --color -Naur src_old/include/libmp3lame.sym src/include/libmp3lame.sym --- src_old/include/libmp3lame.sym 2017-09-07 02:33:35.000000000 +0700 +++ src/include/libmp3lame.sym 2020-11-12 17:45:59.946448300 +0700 @@ -1,5 +1,4 @@ lame_init -lame_init_old lame_set_num_samples lame_get_num_samples lame_set_in_samplerate ================================================ FILE: ports/mp3lame/usage ================================================ The package mp3lame provides CMake targets: find_package(mp3lame CONFIG REQUIRED) target_link_libraries(main PRIVATE mp3lame::mp3lame) ================================================ FILE: ports/mp3lame/vcpkg.json ================================================ { "name": "mp3lame", "version": "3.100", "port-version": 16, "description": "LAME is a high quality MPEG Audio Layer III (MP3) encoder licensed under the LGPL.", "homepage": "https://lame.sourceforge.io", "license": "LGPL-2.0-only", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ], "features": { "frontend": { "description": "Build the lame frontend", "dependencies": [ { "name": "ncurses", "platform": "!windows | mingw" } ] } } } ================================================ FILE: ports/mpark-patterns/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mpark/patterns REF b3270e0dd7b6312f7a4fe8647e2333dbb86e355e SHA512 ca8062b92cf0d5874aba7067615ff8cb089c22cb921d6131762a8dcb2f50d4f47d80c59b62b1c9b7e70dae2dfb68a44c2a4feeb78ab5e5473e0fbdd089538314 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) #header-only library vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME mpark_patterns CONFIG_PATH "lib/cmake/mpark_patterns") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/mpark-patterns/usage ================================================ The package mpark-patterns provides CMake targets: find_package(mpark_patterns CONFIG REQUIRED) target_link_libraries(main PRIVATE mpark_patterns) ================================================ FILE: ports/mpark-patterns/vcpkg.json ================================================ { "name": "mpark-patterns", "version-date": "2019-10-03", "description": "MPark.Patterns is an experimental pattern matching library for C++17.", "homepage": "https://github.com/mpark/patterns", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mpark-variant/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mpark/variant REF v1.4.0 SHA512 598ef21824f9cd7586f88de5a51bfe24dde4c492e8e6b8288d2912920812c48fd01c54d9683e1620cb034563c4eac737a382620e6b4af473808a2e77017a89e3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mpark_variant PACKAGE_NAME mpark_variant) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mpark-variant/vcpkg.json ================================================ { "name": "mpark-variant", "version": "1.4.0", "port-version": 3, "description": "an implementation of C++17 std::variant for C++11/14/17.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mpc/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/mpc/mpc-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/mpc/mpc-${VERSION}.tar.gz" FILENAME "mpc-${VERSION}.tar.gz" SHA512 4bab4ef6076f8c5dfdc99d810b51108ced61ea2942ba0c1c932d624360a5473df20d32b300fc76f2ba4aa2a97e1f275c9fd494a1ba9f07c4cb2ad7ceaeb1ae97 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/mpc/vcpkg.json ================================================ { "name": "mpc", "version": "1.3.1", "port-version": 3, "description": "GNU MPC is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result.", "homepage": "https://www.multiprecision.org/mpc/", "license": "LGPL-3.0-or-later", "dependencies": [ "gmp", "mpfr", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/mpfr/dll.patch ================================================ diff --git a/configure.ac b/configure.ac index fdee5978d..0791b2528 100644 --- a/configure.ac +++ b/configure.ac @@ -593,7 +593,7 @@ case $host in AC_MSG_CHECKING(for DLL/static GMP) if test "$enable_shared" = yes; then MPFR_LDFLAGS="$MPFR_LDFLAGS -no-undefined" - LIBMPFR_LDFLAGS="$LIBMPFR_LDFLAGS -Wl,--output-def,.libs/libmpfr-6.dll.def" + LIBMPFR_LDFLAGS="$LIBMPFR_LDFLAGS -W1,--no-undefined" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include "gmp.h" #if !__GMP_LIBGMP_DLL ================================================ FILE: ports/mpfr/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_download_distfile(ARCHIVE URLS "http://www.mpfr.org/mpfr-${VERSION}/mpfr-${VERSION}.tar.xz" "https://ftp.gnu.org/gnu/mpfr/mpfr-${VERSION}.tar.xz" FILENAME "mpfr-${VERSION}.tar.xz" SHA512 eb9e7f51b5385fb349cc4fba3a45ffdf0dd53be6dfc74932dc01258158a10514667960c530c47dd9dfc5aa18be2bd94859d80499844c5713710581e6ac6259a9 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES dll.patch src-only.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/${PORT}/AUTHORS" "${CURRENT_PACKAGES_DIR}/share/${PORT}/BUGS" "${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING" "${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING.LESSER" "${CURRENT_PACKAGES_DIR}/share/${PORT}/NEWS" "${CURRENT_PACKAGES_DIR}/share/${PORT}/TODO" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/mpfr/src-only.patch ================================================ diff --git a/Makefile.am b/Makefile.am index 89242c6..662ce24 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,12 +24,14 @@ AUTOMAKE_OPTIONS = gnu # old Automake version. ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = doc src tests tune tools/bench +SUBDIRS = src # Skipping: doc tests tune tools/bench pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = mpfr.pc nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LESSER NEWS TODO \ + # BREAK +VCPKG_SKIP_EXAMPLES = \ examples/ReadMe examples/can_round.c examples/divworst.c \ examples/rndo-add.c examples/sample.c examples/threads.c \ examples/version.c ================================================ FILE: ports/mpfr/usage ================================================ The package mpfr can be imported via CMake FindPkgConfig module: find_package(PkgConfig) pkg_check_modules(mpfr REQUIRED IMPORTED_TARGET mpfr) target_link_libraries(main PRIVATE PkgConfig::mpfr) ================================================ FILE: ports/mpfr/vcpkg.json ================================================ { "name": "mpfr", "version": "4.2.2", "port-version": 1, "description": "The MPFR library is a C library for multiple-precision floating-point computations with correct rounding", "homepage": "https://www.mpfr.org", "license": "LGPL-3.0-or-later", "supports": "!xbox", "dependencies": [ "gmp", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/mpg123/have-fpu.diff ================================================ diff --git a/ports/cmake/src/CMakeLists.txt b/ports/cmake/src/CMakeLists.txt index f6a77b9..0867669 100644 --- a/ports/cmake/src/CMakeLists.txt +++ b/ports/cmake/src/CMakeLists.txt @@ -198,6 +198,8 @@ check_cpu_arch_arm64(ARCH_IS_ARM64) if(WIN32 OR (ARCH_IS_ARM64 AND APPLE)) set(HAVE_FPU 1) +elseif(CMAKE_CROSSCOMPILING OR DEFINED HAVE_FPU) + set(HAVE_FPU 1 CACHE STRING "Override in triplet if needed") else() cmake_host_system_information(RESULT HAVE_FPU QUERY HAS_FPU) endif() ================================================ FILE: ports/mpg123/pkgconfig.diff ================================================ diff --git a/ports/cmake/src/libsyn123/CMakeLists.txt b/ports/cmake/src/libsyn123/CMakeLists.txt index 22051ab..70d5be3 100644 --- a/ports/cmake/src/libsyn123/CMakeLists.txt +++ b/ports/cmake/src/libsyn123/CMakeLists.txt @@ -22,6 +22,9 @@ target_include_directories(${TARGET} INTERFACE if(HAVE_M) string(APPEND LIBSYN123_LIBS " -lm") endif() +if(WANT_WIN32_UNICODE) + string(APPEND LIBSYN123_LIBS " -lshlwapi") +endif() set(LIBSYN123_LIBS "${LIBSYN123_LIBS}" PARENT_SCOPE) target_link_libraries(${TARGET} PRIVATE $<$:m>) ================================================ FILE: ports/mpg123/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO mpg123/mpg123 REF "${VERSION}" FILENAME "mpg123-${VERSION}.tar.bz2" SHA512 9b7aa93b692132da7eb8dcfef12ce91bf66bf8475af50e9c57d7b80225f96c0e74264e518e558371af1f4cf6d2afda5b3dfc844949fd747db7ac7c44d0e9f6ad PATCHES have-fpu.diff pkgconfig.diff ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) yasm_tool_helper(APPEND_TO_PATH) endif() vcpkg_list(SET options) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND options "-DLIBMPG123_LIBS=-lshlwapi") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/ports/cmake" OPTIONS -DUSE_MODULES=OFF -DBUILD_PROGRAMS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_ALSA=ON -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON ${options} MAYBE_UNUSED_VARIABLES BUILD_PROGRAMS CMAKE_DISABLE_FIND_PACKAGE_ALSA CMAKE_DISABLE_FIND_PACKAGE_PkgConfig ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mpg123/vcpkg.json ================================================ { "name": "mpg123", "version": "1.33.4", "description": "mpg123 is a real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3 (MPEG 1.0 layer 3 also known as MP3).", "homepage": "https://sourceforge.net/projects/mpg123/", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "yasm", "host": true, "features": [ "tools" ], "platform": "windows & !mingw" } ] } ================================================ FILE: ports/mpi/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${CURRENT_INSTALLED_DIR}/share/msmpi/mpi-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME vcpkg-cmake-wrapper.cmake) else() file(INSTALL "${CURRENT_INSTALLED_DIR}/share/openmpi/mpi-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME vcpkg-cmake-wrapper.cmake) # FindMPI.cmake wants mpi pc modules without the 'o' prefix. foreach(module IN ITEMS mpi-c.pc mpi-cxx.pc mpi-fort.pc) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(COPY_FILE "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/o${module}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${module}") if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig/o${module}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(COPY_FILE "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig/o${module}" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${module}") endif() endforeach() endif() ================================================ FILE: ports/mpi/vcpkg.json ================================================ { "name": "mpi", "version": "1", "port-version": 6, "description": "Message Passing Interface (MPI) is a standardized and portable message-passing standard designed by a group of researchers from academia and industry to function on a wide variety of parallel computing architectures. The standard defines the syntax and semantics of a core of library routines useful to a wide range of users writing portable message-passing programs in C, C++, and Fortran. There are several well-tested and efficient implementations of MPI, many of which are open-source or in the public domain.", "license": null, "supports": "!uwp", "dependencies": [ { "name": "msmpi", "platform": "windows" }, { "name": "openmpi", "platform": "!windows" } ] } ================================================ FILE: ports/mpir/enable-runtimelibrary-toggle.patch ================================================ diff --git a/build.vc/mpir_debug_lib.props b/build.vc/mpir_debug_lib.props index b2fd57b..3937570 100644 --- a/build.vc/mpir_debug_lib.props +++ b/build.vc/mpir_debug_lib.props @@ -9,7 +9,8 @@ $(IntDir)dum\my\%(RelativeDir) - MultiThreadedDebug + $(RuntimeLibrary) + OldStyle $(TargetDir)$(TargetName).pdb diff --git a/build.vc/mpir_release_lib.props b/build.vc/mpir_release_lib.props index 6cdff3e..3937570 100644 --- a/build.vc/mpir_release_lib.props +++ b/build.vc/mpir_release_lib.props @@ -9,7 +9,7 @@ $(IntDir)dum\my\%(RelativeDir) - MultiThreaded + $(RuntimeLibrary) $(TargetDir)$(TargetName).pdb ================================================ FILE: ports/mpir/fix-static-include-files.patch ================================================ diff --git a/build.vc/postbuild.bat b/build.vc/postbuild.bat index de1ed08..e4ecceb 100644 --- a/build.vc/postbuild.bat +++ b/build.vc/postbuild.bat @@ -37,12 +37,10 @@ set bin_dir="..\%extn%\%plat%\%conf%\" set hdr_dir="..\%extn%\%plat%\%conf%\" rem output parametrers for the MPIR tests -if /i "%filename%" EQU "mpirxx" goto skip echo (set ldir=%loc%) > output_params.bat echo (set libr=%extn%) >> output_params.bat echo (set plat=%plat%) >> output_params.bat echo (set conf=%conf%) >> output_params.bat -:skip echo copying outputs from %tgt_dir% to %bin_dir% if not exist %bin_dir% md %bin_dir% diff --git a/build.vc15/lib_mpir_cxx/lib_mpir_cxx.vcxproj b/build.vc15/lib_mpir_cxx/lib_mpir_cxx.vcxproj index 3a23f01..1f44b22 100644 --- a/build.vc15/lib_mpir_cxx/lib_mpir_cxx.vcxproj +++ b/build.vc15/lib_mpir_cxx/lib_mpir_cxx.vcxproj @@ -70,6 +70,11 @@ mpirxx + + cd ..\..\build.vc +prebuild gc Win32 15 + + ..\..\ NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) @@ -82,6 +87,11 @@ postbuild "$(TargetPath)" 15 + + cd ..\..\build.vc +prebuild gc Win32 15 + + ..\..\ _DEBUG;WIN32;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions) @@ -94,6 +104,11 @@ postbuild "$(TargetPath)" 15 + + cd ..\..\build.vc +prebuild gc Win32 15 + + ..\..\ NDEBUG;WIN32;_LIB;HAVE_CONFIG_H;_WIN64;%(PreprocessorDefinitions) @@ -106,6 +121,11 @@ postbuild "$(TargetPath)" 15 + + cd ..\..\build.vc +prebuild gc Win32 15 + + ..\..\ _DEBUG;WIN32;_LIB;HAVE_CONFIG_H;_WIN64;%(PreprocessorDefinitions) ================================================ FILE: ports/mpir/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/include/gmp.h" OR EXISTS "${CURRENT_INSTALLED_DIR}/include/gmpxx.h") message(FATAL_ERROR "Can't build ${PORT} if gmp is installed. Please remove gmp, and try to install ${PORT} again if you need it.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wbhart/mpir REF cdd444aedfcbb190f00328526ef278428702d56e # tag: mpir-3.0.0 SHA512 f46e45bdba27c9f89953ba23186b694486fd3010bd370ea2de71a4649a2816e716a6520c9baa96936f1884437ef03f92b21c0b1fb5b757beba5a05fed30b2bfc HEAD_REF master PATCHES enable-runtimelibrary-toggle.patch fix-static-include-files.patch subdirs.diff vcpkg-cross-builds.diff ) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) vcpkg_find_acquire_program(YASM) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --enable-cxx --enable-gmpcompat --with-pic "--with-yasm=${YASM}" "CFLAGS=\$CFLAGS -Wno-implicit-function-declaration" "CCAS=" # use default $CC -c ) vcpkg_make_install() else() set(MSVC_VERSION 14) if(VCPKG_PLATFORM_TOOLSET MATCHES "v14(1|2|3)") set(MSVC_VERSION 15) endif() set(DLL_OR_LIB dll) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(DLL_OR_LIB lib) endif() # Note: Could probably be moved to use vcpkg_configure_make on windows vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "build.vc${MSVC_VERSION}/${DLL_OR_LIB}_mpir_gc/${DLL_OR_LIB}_mpir_gc.vcxproj" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "build.vc${MSVC_VERSION}/${DLL_OR_LIB}_mpir_cxx/${DLL_OR_LIB}_mpir_cxx.vcxproj" ) endif() file(GLOB HEADERS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/*/Release/gmp.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/*/Release/gmpxx.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/*/Release/mpir.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*/*/Release/mpirxx.h" ) file(INSTALL ${HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/COPYING.LIB" "${CURRENT_PACKAGES_DIR}/debug/lib/COPYING.LIB") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LIB") ================================================ FILE: ports/mpir/subdirs.diff ================================================ diff --git a/Makefile.am b/Makefile.am index 6565654..554ed17 100644 --- a/Makefile.am +++ b/Makefile.am @@ -100,9 +100,8 @@ LIBGMPXX_LT_CURRENT = 12 LIBGMPXX_LT_REVISION = 3 LIBGMPXX_LT_AGE = 4 -SUBDIRS = tests -SUBDIRS += mpn fft mpz mpq mpf printf scanf cxx tune doc +SUBDIRS = mpn fft mpz mpq mpf printf scanf cxx tune EXTRA_DIST = configfsf.guess configfsf.sub .gdbinit INSTALL.autoconf ================================================ FILE: ports/mpir/vcpkg-cross-builds.diff ================================================ diff --git a/configure.ac b/configure.ac index 5b363fb..cf8fdc5 100644 --- a/configure.ac +++ b/configure.ac @@ -1718,11 +1718,21 @@ GMP_H_ANSI # The C compiler on the build system, and associated tests. +if test "$cross_compiling" == "no" ; then +# native build, native tools GMP_PROG_CC_FOR_BUILD GMP_PROG_CPP_FOR_BUILD GMP_PROG_EXEEXT_FOR_BUILD GMP_C_FOR_BUILD_ANSI GMP_CHECK_LIBM_FOR_BUILD +else +# cross build, _FOR_BUILD disabled by vcpkg +AC_SUBST(CC_FOR_BUILD,"false") +AC_SUBST(CPP_FOR_BUILD,"false") +AC_SUBST(EXEEXT_FOR_BUILD,"") +AC_SUBST(U_FOR_BUILD,"") +AC_SUBST(LIBM_FOR_BUILD,"") +fi # How to assemble, used with CFLAGS etc, see mpn/Makeasm.am. # Using the compiler is a lot easier than figuring out how to invoke the ================================================ FILE: ports/mpir/vcpkg.json ================================================ { "name": "mpir", "version": "3.0.0", "port-version": 12, "description": "Multiple Precision Integers and Rationals", "homepage": "https://github.com/wbhart/mpir", "license": null, "supports": "!(uwp | arm)", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/mpmcqueue/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rigtorp/MPMCQueue REF 28d05c021d68fc5280b593329d1982ed02f9d7b3 SHA512 e3305ecac05d48814d75adcb85fa165eec3a439a17dd99f8b0d2c095e40b2f98bd4bcf167cf8268f84d09aa172ab66b30573d9d3ad4908c10dc5bec632529b8a HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/MPMCQueue) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/mpmcqueue/vcpkg.json ================================================ { "name": "mpmcqueue", "version-date": "2021-12-01", "description": "A bounded multi-producer multi-consumer lock-free queue written in C++11", "homepage": "https://github.com/rigtorp/MPMCQueue", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mqtt-cpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO redboltz/mqtt_cpp REF "v${VERSION}" SHA512 81e2b6a1d070bb57a212fb95abe3f36f8b41131058675528b67e41a2076a19f30f488619b9e3a5dbc0fe53db4efa5c9959111f06c241ebe616b78a70f9dfcad1 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMQTT_BUILD_EXAMPLES=OFF -DMQTT_BUILD_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME mqtt_cpp_iface CONFIG_PATH lib/cmake/mqtt_cpp_iface) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/mqtt-cpp/vcpkg.json ================================================ { "name": "mqtt-cpp", "version-semver": "13.2.3", "description": "Header-only MQTT client/server for C++14 based on Boost.Asio.", "homepage": "https://github.com/redboltz/mqtt_cpp", "license": "BSL-1.0", "dependencies": [ "boost-any", "boost-asio", "boost-multi-index", "boost-program-options", "boost-type-erasure", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ms-gdk/gdk-config.cmake.in ================================================ get_filename_component(_msgdk_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_msgdk_root "${_msgdk_root}" PATH) # GameRuntime Library add_library(Xbox::GameRuntime STATIC IMPORTED) set_target_properties(Xbox::GameRuntime PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/lib/xgameruntime.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include" INTERFACE_COMPILE_FEATURES "cxx_std_11" IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") if (EXISTS "${_msgdk_root}/lib/XCurl.lib") # XCurl add_library(Xbox::XCurl SHARED IMPORTED) set_target_properties(Xbox::XCurl PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/XCurl.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/XCurl.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") # Xbox.Services.API.C (requires XCurl) add_library(Xbox::XSAPI STATIC IMPORTED) set_target_properties(Xbox::XSAPI PROPERTIES IMPORTED_LOCATION_RELEASE "${_msgdk_root}/lib/Microsoft.Xbox.Services.@EXT_TOOLSET@.C.lib" IMPORTED_LOCATION_DEBUG "${_msgdk_root}/debug/lib/Microsoft.Xbox.Services.@EXT_TOOLSET@.C.Debug.lib" IMPORTED_CONFIGURATIONS "RELEASE;DEBUG" MAP_IMPORTED_CONFIG_MINSIZEREL Release MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") # Xbox::HTTPClient add_library(Xbox::HTTPClient SHARED IMPORTED) set_target_properties(Xbox::HTTPClient PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/libHttpClient.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/libHttpClient.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") target_link_libraries(Xbox::XSAPI INTERFACE Xbox::HTTPClient Xbox::XCurl appnotify.lib winhttp.lib crypt32.lib) # GameChat2 add_library(Xbox::GameChat2 SHARED IMPORTED) set_target_properties(Xbox::GameChat2 PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/GameChat2.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/GameChat2.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") endif() if (@BUILD_PLAYFAB_SERVICES@ AND (EXISTS "${_msgdk_root}/lib/PlayFabCore.lib")) # PlayFab Multiplayer (requires XCurl) add_library(Xbox::PlayFabMultiplayer SHARED IMPORTED) set_target_properties(Xbox::PlayFabMultiplayer PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/PlayFabMultiplayer.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/PlayFabMultiplayer.lib" IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::XCurl MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") target_link_libraries(Xbox::PlayFabMultiplayer INTERFACE Xbox::XCurl) # PlayFab Services (requires XCurl) add_library(Xbox::PlayFabServices SHARED IMPORTED) set_target_properties(Xbox::PlayFabServices PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/PlayFabServices.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/PlayFabServices.lib" IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::XCurl MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") add_library(Xbox::PlayFabCore SHARED IMPORTED) set_target_properties(Xbox::PlayFabCore PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/PlayFabCore.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/PlayFabCore.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") target_link_libraries(Xbox::PlayFabServices INTERFACE Xbox::PlayFabCore Xbox::XCurl) # PlayFab Party add_library(Xbox::PlayFabParty SHARED IMPORTED) set_target_properties(Xbox::PlayFabParty PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/Party.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/Party.lib" MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") # PlayFab Party Xbox LIVE (requires PlayFab Party) add_library(Xbox::PlayFabPartyLIVE SHARED IMPORTED) set_target_properties(Xbox::PlayFabPartyLIVE PROPERTIES IMPORTED_LOCATION "${_msgdk_root}/bin/PartyXboxLive.dll" IMPORTED_IMPLIB "${_msgdk_root}/lib/PartyXboxLive.lib" IMPORTED_LINK_DEPENDENT_LIBRARIES Xbox::PlayFabParty MAP_IMPORTED_CONFIG_MINSIZEREL "" MAP_IMPORTED_CONFIG_RELWITHDEBINFO "" INTERFACE_INCLUDE_DIRECTORIES "${_msgdk_root}/include") target_link_libraries(Xbox::PlayFabPartyLIVE INTERFACE Xbox::PlayFabParty) endif() unset(_msgdk_root) ================================================ FILE: ports/ms-gdk/pfusage ================================================ target_link_libraries(main PRIVATE Xbox::PlayFabServices) target_link_libraries(main PRIVATE Xbox::PlayFabMultiplayer) target_link_libraries(main PRIVATE Xbox::PlayFabParty) target_link_libraries(main PRIVATE Xbox::PlayFabPartyLIVE) ================================================ FILE: ports/ms-gdk/portfile.cmake ================================================ set(GDK_EDITION_NUMBER 251002) # The GDK contains a combination of static C++ libraries and DLL-based extension libraries. vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(ARCHIVE_CORE URLS "https://www.nuget.org/api/v2/package/Microsoft.GDK.Core/${VERSION}" FILENAME "ms-gdk-core.${VERSION}.zip" SHA512 f2d11d52d929852864ecf3fbf8103073bef88c314213fabb8c1aa7abe0a6ce82dd0b803aa145e6767dcfe4dcf9bd75d0264830b17ec5985e0adb0066c210e3b9 ) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.GDK.Windows/${VERSION}" FILENAME "ms-gdk-windows.${VERSION}.zip" SHA512 f0691df92289a78fad64f604e0eb46a29527419320525c3a875880b78f115697cd77a6b4115eb4f40766f548d5a482ed5d3b5af46aa4cd7e1141f0ea7ec816c3 ) vcpkg_extract_source_archive( PACKAGE_PATH_CORE ARCHIVE "${ARCHIVE_CORE}" NO_REMOVE_ONE_LEVEL ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES playfab BUILD_PLAYFAB_SERVICES ) # Install core tools if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") file(INSTALL "${PACKAGE_PATH_CORE}/native/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools") file(INSTALL "${PACKAGE_PATH_CORE}/native/bin/GameConfigEditorDependencies" DESTINATION "${CURRENT_PACKAGES_DIR}/tools") endif() set(WINDOWS_PATH "${PACKAGE_PATH}/native/${GDK_EDITION_NUMBER}/windows") # We use the gameinput port instead file(REMOVE "${WINDOWS_PATH}/include/GameInput.h") file(REMOVE "${WINDOWS_PATH}/lib/arm64/GameInput.lib") file(REMOVE "${WINDOWS_PATH}/lib/x64/GameInput.lib") # We use the cpprestsdk port instead file(REMOVE_RECURSE "${WINDOWS_PATH}/include/cpprest") file(REMOVE_RECURSE "${WINDOWS_PATH}/include/pplx") # Install core content set(CORE_BINS xgameruntime.dll xgameruntime.pdb) set(CORE_INCLUDES grdk.h) set(CORE_LIBS xgameruntime.lib) file(GLOB HEADERS "${WINDOWS_PATH}/include/X*.*") foreach(t IN LISTS HEADERS) get_filename_component(h ${t} NAME) list(APPEND CORE_INCLUDES ${h}) endforeach() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") list(APPEND CORE_BINS xgameruntime.thunks.dll GameChat2.dll GameChat2.pdb libHttpClient.dll libHttpClient.pdb XCurl.dll XCurl.pdb) list(APPEND CORE_LIBS GameChat2.lib libHttpClient.lib XCurl.lib xgameruntime.thunks.lib) file(INSTALL "${WINDOWS_PATH}/bin/x64/Microsoft.Xbox.Services.C.Thunks.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${WINDOWS_PATH}/bin/x64/Microsoft.Xbox.Services.C.Thunks.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.C.Thunks.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.142.C.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.142.C.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${WINDOWS_PATH}/bin/x64/Microsoft.Xbox.Services.C.Thunks.Debug.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${WINDOWS_PATH}/bin/x64/Microsoft.Xbox.Services.C.Thunks.Debug.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.C.Thunks.Debug.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.142.C.Debug.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${WINDOWS_PATH}/lib/x64/Microsoft.Xbox.Services.142.C.Debug.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") list(APPEND CORE_INCLUDES cpprestsdk_impl.h XCurl.h GameChat2.h GameChat2Impl.h GameChat2_c.h) set(INCLUDE_DIRS httpClient Xal xsapi-c xsapi-cpp) endif() foreach(t IN LISTS CORE_BINS) file(INSTALL "${WINDOWS_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${WINDOWS_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endforeach() foreach(t IN LISTS CORE_INCLUDES) file(INSTALL "${WINDOWS_PATH}/include/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endforeach() foreach(t IN LISTS INCLUDE_DIRS) file(INSTALL "${WINDOWS_PATH}/include/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endforeach() foreach(t IN LISTS CORE_LIBS) file(INSTALL "${WINDOWS_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${WINDOWS_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endforeach() # Build license file. set(LICENSE_FILES "${PACKAGE_PATH}/LICENSE.md") list(APPEND LICENSE_FILES "${WINDOWS_PATH}/include/httpClient/ThirdPartyNotices.txt" "${WINDOWS_PATH}/include/ThirdPartyNotices.txt" "${WINDOWS_PATH}/include/xsapi-c/ThirdPartyNotices.txt" "${WINDOWS_PATH}/include/xsapi-cpp/ThirdPartyNotices.txt" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Optional PlayFab components if("playfab" IN_LIST FEATURES) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(PF_BINS PlayFabCore.dll PlayFabCore.pdb PlayFabServices.dll PlayFabServices.pdb PlayFabMultiplayer.dll PlayFabMultiplayer.pdb Party.dll Party.pdb PartyXboxLive.dll PartyXboxLive.pdb PlayFabGameSave.dll PlayFabGameSave.pdb) set(PF_LIBS PlayFabCore.lib PlayFabServices.lib PlayFabMultiplayer.lib Party.lib PartyXboxLive.lib PlayFabGameSave.lib) file(INSTALL "${WINDOWS_PATH}/include/playfab" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${WINDOWS_PATH}/include/PFXGameSave.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endif() foreach(t IN LISTS PF_BINS) file(INSTALL "${WINDOWS_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${WINDOWS_PATH}/bin/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endforeach() foreach(t IN LISTS PF_LIBS) file(INSTALL "${WINDOWS_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${WINDOWS_PATH}/lib/${VCPKG_TARGET_ARCHITECTURE}/${t}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endforeach() list(APPEND LICENSE_FILES "${WINDOWS_PATH}/include/playfab/multiplayer/NOTICE.txt") file(READ "${CMAKE_CURRENT_LIST_DIR}/pfusage" USAGE_CONTENT) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" ${USAGE_CONTENT}) endif() set(EXT_TOOLSET 142) configure_file("${CMAKE_CURRENT_LIST_DIR}/gdk-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) #file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) message(STATUS "BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS: https://www.nuget.org/packages/Microsoft.GDK.Windows/${VERSION}/License") ================================================ FILE: ports/ms-gdk/usage ================================================ The Microsoft GDK package provides CMake targets: find_package(ms-gdk CONFIG REQUIRED) target_link_libraries(main PRIVATE Xbox::GameRuntime) target_link_libraries(main PRIVATE Xbox::HTTPClient) target_link_libraries(main PRIVATE Xbox::XCurl) target_link_libraries(main PRIVATE Xbox::XSAPI) target_link_libraries(main PRIVATE Xbox::GameChat2) ================================================ FILE: ports/ms-gdk/vcpkg.json ================================================ { "name": "ms-gdk", "version": "2510.2.6247", "description": "Microsoft Game Development Kit (GDK)", "homepage": "https://aka.ms/gdkx", "documentation": "https://aka.ms/gamedevdocs", "license": null, "supports": "windows & (x64 | arm64) & !uwp & !xbox & !staticcrt", "dependencies": [ { "name": "cpprestsdk", "default-features": false } ], "features": { "playfab": { "description": "Include PlayFab Extension Libraries", "supports": "windows & x64 & !uwp & !xbox & !staticcrt" } } } ================================================ FILE: ports/ms-gdkx/portfile.cmake ================================================ # April 2025 or earlier cmake_path(SET GRDKLatest "$ENV{GRDKLatest}") cmake_path(SET GXDKLatest "$ENV{GXDKLatest}") # October 2025 or later cmake_path(SET GameDKCoreLatest "$ENV{GameDKCoreLatest}") cmake_path(SET GameDKXboxLatest "$ENV{GameDKXboxLatest}") find_path(GRDK_H NAMES grdk.h PATHS "${GRDKLatest}/gameKit/Include" "${GameDKXboxLatest}/windows/include" "${GameDKCoreLatest}/windows/include" ) find_path(GXDK_H NAMES gxdk.h PATHS "${GXDKLatest}/gameKit/Include" "${GameDKXboxLatest}/xbox/include" ) if(NOT (GRDK_H AND GXDK_H)) message(FATAL_ERROR "Ensure you have installed the Microsoft GDK with Xbox Extensions installed. See https://aka.ms/gdkx.") endif() # Output user-friendly status message for installed edition. if(${GXDKLatest} MATCHES ".*/([0-9][0-9])([0-9][0-9])([0-9][0-9])/.*") set(_months "null" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December") list(GET _months ${CMAKE_MATCH_2} month) set(update "") if(${CMAKE_MATCH_3} GREATER 0) set(update " Update ${CMAKE_MATCH_3}") endif() message(STATUS "Found the Microsoft GDK with Xbox Extensions (${month} 20${CMAKE_MATCH_1}${update})") endif() SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/ms-gdkx/vcpkg.json ================================================ { "name": "ms-gdkx", "version": "1.0.0", "port-version": 2, "description": "Stub port that ensures the Microsoft GDK with Xbox Extensions is installed.", "homepage": "https://aka.ms/gdkx", "documentation": "https://aka.ms/gamedevdocs", "license": null, "supports": "windows & x64 & !uwp" } ================================================ FILE: ports/ms-gltf/fix-install.patch ================================================ diff --git a/Build/CMake/Modules/GLTFPlatform.cmake b/Build/CMake/Modules/GLTFPlatform.cmake index 3d940f5..322f029 100644 --- a/Build/CMake/Modules/GLTFPlatform.cmake +++ b/Build/CMake/Modules/GLTFPlatform.cmake @@ -55,14 +55,14 @@ endfunction(GetGLTFPlatform) function(CreateGLTFInstallTargets target platform) install(TARGETS ${target} - ARCHIVE DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$/${PROJECT_NAME} - LIBRARY DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$/${PROJECT_NAME} - RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$/${PROJECT_NAME} - BUNDLE DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$/${PROJECT_NAME} + ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin + BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/bin ) if (MSVC) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$/${PROJECT_NAME}.pdb DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$/${PROJECT_NAME}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$/${PROJECT_NAME}.pdb DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() endfunction(CreateGLTFInstallTargets) diff --git a/GLTFSDK.Test/CMakeLists.txt b/GLTFSDK.Test/CMakeLists.txt index 5c8eca7..a0752a3 100644 --- a/GLTFSDK.Test/CMakeLists.txt +++ b/GLTFSDK.Test/CMakeLists.txt @@ -46,4 +46,4 @@ add_custom_command(TARGET GLTFSDK.Test AddGLTFIOSAppProperties(GLTFSDK.Test) CreateGLTFInstallTargets(GLTFSDK.Test ${Platform}) -install(FILES ${PROJECT_BINARY_DIR}/$/Resources/ DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${Platform}/$/${PROJECT_NAME}/Resources) +install(FILES ${PROJECT_BINARY_DIR}/$/Resources/ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) diff --git a/GLTFSDK/CMakeLists.txt b/GLTFSDK/CMakeLists.txt index 3c53c74..1e8d223 100644 --- a/GLTFSDK/CMakeLists.txt +++ b/GLTFSDK/CMakeLists.txt @@ -46,4 +46,5 @@ target_include_directories(GLTFSDK PRIVATE "${CMAKE_BINARY_DIR}/GeneratedFiles" ) +install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/Inc/GLTFSDK DESTINATION ${CMAKE_INSTALL_PREFIX}/include) CreateGLTFInstallTargets(GLTFSDK ${Platform}) ================================================ FILE: ports/ms-gltf/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/glTF-SDK REF 4888f0a386e174af6170c3c53b3396945f4a65a0 # 05-09-2024 SHA512 5bee9c056d3d6eb809d8336cedc0fad58bc5b33128d4094cccfca5d0180b78e237d63c2c7c7beb08dd09f49a613a35bc0c08642b150ae8482ef9643165d7822b HEAD_REF master PATCHES fix-install.patch ) # note: Test/Sample executables won't be installed vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test ENABLE_UNIT_TESTS samples ENABLE_SAMPLES ) # note: Platform-native buildsystem will be more helpful to launch/debug the tests/samples. # note: The PDB file path is making Ninja fails to install. # For Windows, we rely on /MP. The other platforms should be able to build with PREFER_NINJA. vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" WINDOWS_USE_MSBUILD OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() 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") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ms-gltf/vcpkg.json ================================================ { "name": "ms-gltf", "version-date": "2024-09-05", "description": "glTF-SDK is a C++ Software Development Kit for glTF", "homepage": "https://github.com/microsoft/glTF-SDK", "license": "MIT", "supports": "!linux", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "test" ], "features": { "samples": { "description": "Build with GLTF samples", "supports": "!osx & !ios & !android" }, "test": { "description": "Build test programs", "dependencies": [ "gtest" ] } } } ================================================ FILE: ports/ms-gsl/portfile.cmake ================================================ #header-only library with an install target vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/GSL REF v${VERSION} SHA512 c613937d225a72cd6fb66d68019ffe70bb16e99a8b9c13664dbaebf3c5bfde4888b2299174b3d668cb234f74821e20d9de3fa19febdee8fb733cb30a50089cd4 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DGSL_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME Microsoft.GSL CONFIG_PATH share/cmake/Microsoft.GSL ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ms-gsl/vcpkg.json ================================================ { "name": "ms-gsl", "version": "4.2.1", "description": "Microsoft implementation of the Guidelines Support Library", "homepage": "https://github.com/Microsoft/GSL", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ms-ifc-sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/ifc REF "${VERSION}" SHA512 9d6361bdb1ec78480b2be36fcff8197bc2be5fcd162b0bf31705fb69f63ba016750a9c57c264354a9c844701e04805f5d165d9a2ae37e2e6fd2b82986d59ad84 HEAD_REF main ) set(config_path share/cmake/Microsoft.IFC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DIFC_INSTALL_CMAKEDIR:PATH=${config_path}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME Microsoft.IFC CONFIG_PATH "${config_path}" ) vcpkg_copy_tools( TOOL_NAMES ifc ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ms-ifc-sdk/usage ================================================ The package Microsoft.IFC provides CMake targets: find_package(Microsoft.IFC CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft.IFC::SDK) # Or use the individual components of Microsoft.IFC::SDK for advanced use find_package(Microsoft.IFC CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft.IFC::Core Microsoft.IFC::DOM) ================================================ FILE: ports/ms-ifc-sdk/vcpkg.json ================================================ { "name": "ms-ifc-sdk", "version": "0.43.5", "description": "SDK for the IFC specification at https://github.com/microsoft/ifc-spec", "homepage": "https://github.com/microsoft/ifc", "license": "Apache-2.0 WITH LLVM-exception", "dependencies": [ "ms-gsl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/msdfgen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Chlumsky/msdfgen REF "v${VERSION}" SHA512 5a136996de6ae013d223cd246548613d2928adcd6c3357333447086817351816c1b49e3eb119f3fe299745a50684d312db9410adf7671120b9e38fee8b96ff29 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp MSDFGEN_USE_OPENMP geometry-preprocessing MSDFGEN_USE_SKIA tools MSDFGEN_BUILD_STANDALONE INVERTED_FEATURES extensions MSDFGEN_CORE_ONLY ) if (VCPKG_CRT_LINKAGE STREQUAL dynamic) set(MSDFGEN_DYNAMIC_RUNTIME ON) else() set(MSDFGEN_DYNAMIC_RUNTIME OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSDFGEN_USE_VCPKG=ON -DMSDFGEN_VCPKG_FEATURES_SET=ON -DMSDFGEN_INSTALL=ON -DMSDFGEN_DYNAMIC_RUNTIME="${MSDFGEN_DYNAMIC_RUNTIME}" ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES MSDFGEN_VCPKG_FEATURES_SET ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/msdfgen) # move exe to tools if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES msdfgen AUTO_CLEAN) endif() # cleanup file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/msdfgen/vcpkg.json ================================================ { "name": "msdfgen", "version": "1.13+new-skia-api", "description": "Multi-channel signed distance field generator", "homepage": "https://github.com/Chlumsky/msdfgen", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "extensions", "geometry-preprocessing" ], "features": { "extensions": { "description": "Extended functionality that depends on external libraries - loading fonts and SVG files, generating PNG images.", "dependencies": [ "freetype", "libpng", "tinyxml2" ] }, "geometry-preprocessing": { "description": "Preprocessing of non-compliant vector geometry via the Skia library.", "dependencies": [ { "name": "msdfgen", "default-features": false, "features": [ "extensions" ] }, { "name": "skia", "default-features": false } ] }, "openmp": { "description": "Build with OpenMP support for multi-threaded code." }, "tools": { "description": "Generates an executable inside the tools folder.", "supports": "!uwp", "dependencies": [ { "name": "msdfgen", "default-features": false, "features": [ "extensions" ] } ] } } } ================================================ FILE: ports/msgpack/portfile.cmake ================================================ if (EXISTS ${CURRENT_INSTALLED_DIR}/include/msgpack/pack.h) message(FATAL_ERROR "Cannot install ${PORT} when rest-rpc is already installed, please remove rest-rpc using \"./vcpkg remove rest-rpc:${TARGET_TRIPLET}\"") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO msgpack/msgpack-c REF cpp-${VERSION} SHA512 3b64605974b64384619c07a4895f8ceb56243046b5c941345594d70baf3ad7749573b83c5b20e83505204fc1905ddb0a7dde1c5109ef8a34b5c848d1bb073946 HEAD_REF cpp_master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES boost MSGPACK_USE_BOOST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_DOCS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME msgpack-cxx CONFIG_PATH lib/cmake/msgpack-cxx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/msgpack/vcpkg.json ================================================ { "name": "msgpack", "version": "7.0.0", "description": "MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller.", "homepage": "https://github.com/msgpack/msgpack-c", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost": { "description": "Build msgpack using Boost", "dependencies": [ "boost-assert", "boost-fusion", "boost-numeric-conversion", "boost-optional", "boost-predef", "boost-preprocessor", "boost-utility", "boost-variant" ] } } } ================================================ FILE: ports/msgpack-c/portfile.cmake ================================================ if (EXISTS ${CURRENT_INSTALLED_DIR}/include/msgpack/pack.h) message(FATAL_ERROR "Cannot install ${PORT} when rest-rpc is already installed, please remove rest-rpc using \"./vcpkg remove rest-rpc:${TARGET_TRIPLET}\"") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO msgpack/msgpack-c REF "c-${VERSION}" SHA512 b211af122e894bc0c32fa02ebcc0130ac797d99b7c60688df26247bc020d51b7322b4858fd12a749d28812c5efb66b5dc687cdfe20f4bc68a21eb484d531230a HEAD_REF c_master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSGPACK_BUILD_EXAMPLES=OFF -DMSGPACK_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME msgpack-c CONFIG_PATH lib/cmake/msgpack-c) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/msgpack-c/vcpkg.json ================================================ { "name": "msgpack-c", "version": "6.1.0", "description": "MessagePack is an efficient binary serialization format, which lets you exchange data among multiple languages like JSON, except that it's faster and smaller.", "homepage": "https://github.com/msgpack/msgpack-c", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/msgpack11/disable-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 080cefa..b73072a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,9 +9,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) add_library(msgpack11 STATIC msgpack11.cpp) target_include_directories(msgpack11 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_options(msgpack11 PRIVATE -fno-rtti) -if(NOT MSVC) - target_compile_options(msgpack11 PRIVATE -Wall -Wextra -Werror) -endif() configure_file("msgpack11.pc.in" "msgpack11.pc" @ONLY) if (MSGPACK11_BUILD_TESTS) ================================================ FILE: ports/msgpack11/fix-additerator.patch ================================================ diff --git a/msgpack11.cpp b/msgpack11.cpp index fa572fa..640ba9a 100644 --- a/msgpack11.cpp +++ b/msgpack11.cpp @@ -10,6 +10,7 @@ #include #include #include +#include namespace msgpack11 { ================================================ FILE: ports/msgpack11/msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9424838..080cefa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,9 +6,12 @@ option(MSGPACK11_BUILD_TESTS "Build unit tests" ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_library(msgpack11 msgpack11.cpp) +add_library(msgpack11 STATIC msgpack11.cpp) target_include_directories(msgpack11 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) -target_compile_options(msgpack11 PRIVATE -fno-rtti -Wall -Wextra -Werror) +target_compile_options(msgpack11 PRIVATE -fno-rtti) +if(NOT MSVC) + target_compile_options(msgpack11 PRIVATE -Wall -Wextra -Werror) +endif() configure_file("msgpack11.pc.in" "msgpack11.pc" @ONLY) if (MSGPACK11_BUILD_TESTS) ================================================ FILE: ports/msgpack11/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ar90n/msgpack11 REF v0.0.10 SHA512 7b90893f9cdec529789f6e75703f5945c6fc5c946b8708a7a2cb295faf4af111c8cc61265b636f385641031b85181929205be9c5d155f405909445dce85b4ce8 HEAD_REF master PATCHES msvc.patch fix-additerator.patch disable-werror.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSGPACK11_BUILD_TESTS=OFF -DMSGPACK11_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/msgpack11/vcpkg.json ================================================ { "name": "msgpack11", "version": "0.0.10", "port-version": 4, "description": "msgpack11 is a tiny MsgPack library for C++11, providing MsgPack parsing and serialization.This library is inspired by json11.The API of msgpack11 is designed to be similar with json11.", "homepage": "https://msgpack.org", "dependencies": [ "gtest", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/msh3/dependencies_fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c4c0814..f400566 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,9 +36,6 @@ set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) if (WIN32) - # Statically link the OS included part of the runtime. - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:libucrt.lib /DEFAULTLIB:ucrt.lib") add_compile_definitions(WIN32_LEAN_AND_MEAN) if(HAS_SPECTRE) @@ -76,6 +73,7 @@ endif() option(MSH3_USE_EXTERNAL_MSQUIC "Use an external msquic installation") if(MSH3_USE_EXTERNAL_MSQUIC) find_package(msquic CONFIG REQUIRED) + add_library(msquic_platform ALIAS msquic) # with ports/msquic/exports-for-msh3.diff else() # Configure and build if (WIN32) ================================================ FILE: ports/msh3/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nibanks/msh3 REF v${VERSION} SHA512 0573647b2bea669b34343379319702513da884949b45b2e678aa6c9677ed8e5947ef85e6dcf47f5e5b798c9bfff62b41df53f65848a465b4b37596f5fefebbe6 HEAD_REF main PATCHES dependencies_fix.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSH3_INSTALL_PKGCONFIG=ON -DMSH3_USE_EXTERNAL_LSQPACK=ON -DMSH3_USE_EXTERNAL_MSQUIC=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/msh3/vcpkg.json ================================================ { "name": "msh3", "version": "0.8.0", "description": "Minimal HTTP/3 library", "homepage": "https://github.com/nibanks/msh3", "license": "MIT", "supports": "!(static & staticcrt)", "dependencies": [ "ls-qpack", "msquic", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/msinttypes/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chemeris/msinttypes REF f9e7c5758ed9e3b9f4b2394de1881c704dd79de0 SHA512 943ccb1245e41ad554908fd7664725f2aac929222bd823b375fbd2e8a4c4ffc42c268543c43a817b65dca047c3253d04527378ec3902e5e7df7f6ba5a736d6f3 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/inttypes.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/msinttypes) file(INSTALL ${SOURCE_PATH}/stdint.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/msinttypes) file(INSTALL ${SOURCE_PATH}/stdint.h DESTINATION ${CURRENT_PACKAGES_DIR}/share/msinttypes RENAME copyright) ================================================ FILE: ports/msinttypes/vcpkg.json ================================================ { "name": "msinttypes", "version-date": "2018-02-25", "port-version": 2, "description": "msinttypes is a package to provide missing ISO C9x compliant headers for Microsoft Visual Studio", "homepage": "https://github.com/chemeris/msinttypes" } ================================================ FILE: ports/msix/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) add_custom_target(LIBS) find_package(XercesC CONFIG REQUIRED) add_library(xerces-c INTERFACE IMPORTED GLOBAL) target_link_libraries(xerces-c INTERFACE XercesC::XercesC) find_package(ZLIB REQUIRED) add_library(zlib INTERFACE IMPORTED GLOBAL) add_library(zlibstatic INTERFACE IMPORTED GLOBAL) target_link_libraries(zlib INTERFACE ZLIB::ZLIB) target_link_libraries(zlibstatic INTERFACE ZLIB::ZLIB) ================================================ FILE: ports/msix/fix-dependency-catch2.patch ================================================ diff --git a/src/test/msixtest/CMakeLists.txt b/src/test/msixtest/CMakeLists.txt index e991231..e5c43ed 100644 --- a/src/test/msixtest/CMakeLists.txt +++ b/src/test/msixtest/CMakeLists.txt @@ -5,6 +5,8 @@ cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR) project (msixtest) +find_package(Catch2 CONFIG REQUIRED) + if(WIN32) set(DESCRIPTION "msixtest manifest") configure_file(${MSIX_PROJECT_ROOT}/manifest.cmakein ${MSIX_TEST_OUTPUT_DIRECTORY}/${PROJECT_NAME}.exe.manifest CRLF) @@ -91,7 +93,7 @@ set_target_properties(${PROJECT_NAME} PROPERTIES ) add_dependencies(${PROJECT_NAME} msix) -target_link_libraries(${PROJECT_NAME} msix) +target_link_libraries(${PROJECT_NAME} msix Catch2::Catch2) # For windows copy the library if(WIN32) ================================================ FILE: ports/msix/install-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 20098bf..38c3c95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -190,3 +190,5 @@ message(STATUS "src processed") add_subdirectory(sample) message(STATUS "sample processed") message(STATUS "DONE!") + +install(TARGETS msix) \ No newline at end of file diff --git a/src/msix/CMakeLists.txt b/src/msix/CMakeLists.txt index 296eda4..cf87993 100644 --- a/src/msix/CMakeLists.txt +++ b/src/msix/CMakeLists.txt @@ -87,9 +87,9 @@ endif() include(msix_resources) # Handles all the certificates and schemas we are going to use. set(LIB_PUBLIC_HEADERS - ../inc/AppxPackaging.hpp - ../inc/MSIXWindows.hpp - ../inc/MsixErrors.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../inc/AppxPackaging.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../inc/MSIXWindows.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../inc/MsixErrors.hpp ) set(MsixSrc) # list with all the files we are going to use @@ -260,7 +260,7 @@ if(WIN32) "/DELAYLOAD:api-ms-win-core-winrt-l1-1-0.dll") string(REPLACE ";" " " DELAYFLAGS "${DELAYFLAGS}") set_property(TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS "${DELAYFLAGS} /LTCG") - set_property(TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS " /DEF:windowsexports.def") + set_property(TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS " /DEF:${CMAKE_CURRENT_BINARY_DIR}/windowsexports.def") if(USE_STATIC_MSVC) if(CMAKE_BUILD_TYPE MATCHES Debug) set_property(TARGET ${PROJECT_NAME} APPEND_STRING PROPERTY LINK_FLAGS " /NODEFAULTLIB:MSVCRTD") ================================================ FILE: ports/msix/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/msix-packaging REF ab322965d64baf1448548cbe18139e8872d686f2 # v1.7 SHA512 d64767c84d5933bf3d1e0e62e9dc21fa13e02b8cf31776ccbe2e7066e514798d8ff758dc2b6fd64f6eabcf3deb83ef0eaa03e1a7d407307f347a045e8a75d3dd HEAD_REF master PATCHES install-cmake.patch fix-dependency-catch2.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/lib") file(MAKE_DIRECTORY "${SOURCE_PATH}/lib") configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${SOURCE_PATH}/lib/CMakeLists.txt") if(VCPKG_TARGET_IS_WINDOWS) set(PLATFORM WIN32) set(CRYPTO_LIB crypt32) elseif(VCPKG_TARGET_IS_LINUX) set(PLATFORM LINUX) set(CRYPTO_LIB openssl) elseif(VCPKG_TARGET_IS_OSX) set(PLATFORM MACOS) set(CRYPTO_LIB openssl) else() message(FATAL_ERROR "Unknown system: ${VCPKG_CMAKE_SYSTEM_NAME}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" NO_CHARSET_FLAG DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DINSTALL_LIBMSIX=ON -DUSE_SHARED_ZLIB=ON -D${PLATFORM}=ON -DXML_PARSER=xerces -DCRYPTO_LIB=${CRYPTO_LIB} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/msix/vcpkg.json ================================================ { "name": "msix", "version": "1.7", "port-version": 5, "description": "The MSIX Packaging SDK project is an effort to enable developers on a variety of platforms to pack and unpack packages for the purposes of distribution from either the Microsoft Store, or their own content distribution networks.The MSIX Packaging APIs that a client app would use to interact with .msix/.appx packages are a subset of those documented here. See sample/ExtractContentsSample/ExtractContentsSample.cpp for additional details.", "homepage": "https://github.com/microsoft/msix-packaging", "license": "MIT", "supports": "!static", "dependencies": [ "catch2", { "name": "openssl", "platform": "!uwp & !windows" }, { "name": "vcpkg-cmake", "host": true }, "xerces-c", "zlib" ] } ================================================ FILE: ports/msmpi/mpi-wrapper.cmake ================================================ 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) # Suitable for FindMPI.cmake line 937 set(ENV{MSMPI_INC} "${_IMPORT_PREFIX}/include") unset(_IMPORT_PREFIX) _find_package(${ARGS}) ================================================ FILE: ports/msmpi/portfile.cmake ================================================ set(MSMPI_VERSION "10.1.12498.52") set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/msmpi-${MSMPI_VERSION}") vcpkg_download_distfile(SDK_ARCHIVE URLS "https://download.microsoft.com/download/7/2/7/72731ebb-b63c-4170-ade7-836966263a8f/msmpisdk.msi" FILENAME "msmpisdk-${MSMPI_VERSION}-5083f186.msi" SHA512 5083f186b463895e804ae73bb36a16f7d5706340a6dc929c0c511b510ad80bd89d97bdde58d2dd836ebab032258c262f0601a9950f9f26f7c05f9b9ea0073cd0 ) #to enable CI, you should modify the following URL also in ${VCPKG_ROOT}/scripts/azure-pipelines/windows/provision-image.ps1 macro(download_msmpi_redistributable_package) vcpkg_download_distfile(REDIST_ARCHIVE URLS "https://download.microsoft.com/download/7/2/7/72731ebb-b63c-4170-ade7-836966263a8f/msmpisetup.exe" FILENAME "msmpisetup-${MSMPI_VERSION}-d09862be.exe" SHA512 d09862be9fec0fe5377e2c472dd8c9aff9fbc2db7f2c1f4880a59ed64d51339bdfe3cd70af0f3443ba864bfedf42d684c943ba8c805774816c7760f70749d0f0 ) endmacro() ### Check for correct version of installed redistributable package # We always want the ProgramFiles folder even on a 64-bit machine (not the ProgramFilesx86 folder) vcpkg_get_program_files_platform_bitness(PROGRAM_FILES_PLATFORM_BITNESS) set(SYSTEM_MPIEXEC_FILEPATH "${PROGRAM_FILES_PLATFORM_BITNESS}/Microsoft MPI/Bin/mpiexec.exe") if(EXISTS "${SYSTEM_MPIEXEC_FILEPATH}") set(MPIEXEC_VERSION_LOGNAME "mpiexec-version") vcpkg_execute_required_process( COMMAND ${SYSTEM_MPIEXEC_FILEPATH} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME ${MPIEXEC_VERSION_LOGNAME} ) file(READ "${CURRENT_BUILDTREES_DIR}/${MPIEXEC_VERSION_LOGNAME}-out.log" MPIEXEC_OUTPUT) if(MPIEXEC_OUTPUT MATCHES "\\[Version ([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)\\]") if(NOT CMAKE_MATCH_1 STREQUAL MSMPI_VERSION) download_msmpi_redistributable_package() message(FATAL_ERROR " The version of the installed MSMPI redistributable packages does not match the version to be installed\n" " Expected version: ${MSMPI_VERSION}\n" " Found version: ${CMAKE_MATCH_1}\n" " Please upgrade the installed version on your system.\n" " You may need to remove the already installed version before installing a new one.\n" " The appropriate installer for the expected version has been downloaded to:\n" " ${REDIST_ARCHIVE}\n") endif() else() message(FATAL_ERROR " Could not determine installed MSMPI redistributable package version.\n" " See logs for more information:\n" " ${CURRENT_BUILDTREES_DIR}\\${MPIEXEC_VERSION_LOGNAME}-out.log\n" " ${CURRENT_BUILDTREES_DIR}\\${MPIEXEC_VERSION_LOGNAME}-err.log\n") endif() else() download_msmpi_redistributable_package() message(FATAL_ERROR " Could not find:\n" " ${SYSTEM_MPIEXEC_FILEPATH}\n" " Please install the MSMPI redistributable package before trying to install this port.\n" " The appropriate installer has been downloaded to:\n" " ${REDIST_ARCHIVE}\n") endif() file(TO_NATIVE_PATH "${SDK_ARCHIVE}" SDK_ARCHIVE) file(TO_NATIVE_PATH "${SOURCE_PATH}/sdk" SDK_SOURCE_DIR) file(TO_NATIVE_PATH "${CURRENT_BUILDTREES_DIR}/msiexec-${TARGET_TRIPLET}.log" MSIEXEC_LOG_PATH) set(PARAM_MSI "/a \"${SDK_ARCHIVE}\"") set(PARAM_LOG "/log \"${MSIEXEC_LOG_PATH}\"") set(PARAM_TARGET_DIR "TARGETDIR=\"${SDK_SOURCE_DIR}\"") set(SCRIPT_FILE "${CURRENT_BUILDTREES_DIR}/msiextract-msmpi.bat") # Write the command out to a script file and run that to avoid weird escaping behavior when spaces are present file(WRITE ${SCRIPT_FILE} "msiexec ${PARAM_MSI} /qn ${PARAM_LOG} ${PARAM_TARGET_DIR}") vcpkg_execute_required_process( COMMAND ${SCRIPT_FILE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME extract-sdk ) set(SOURCE_INCLUDE_PATH "${SOURCE_PATH}/sdk/PFiles/Microsoft SDKs/MPI/Include") set(SOURCE_LIB_PATH "${SOURCE_PATH}/sdk/PFiles/Microsoft SDKs/MPI/Lib") # Install include files file(INSTALL "${SOURCE_INCLUDE_PATH}/mpi.h" "${SOURCE_INCLUDE_PATH}/mpif.h" "${SOURCE_INCLUDE_PATH}/mpi.f90" "${SOURCE_INCLUDE_PATH}/mpio.h" "${SOURCE_INCLUDE_PATH}/mspms.h" "${SOURCE_INCLUDE_PATH}/pmidbg.h" "${SOURCE_INCLUDE_PATH}/${TRIPLET_SYSTEM_ARCH}/mpifptr.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) # NOTE: since the binary distribution does not include any debug libraries we always install the release libraries SET(VCPKG_POLICY_ONLY_RELEASE_CRT enabled) file(GLOB STATIC_LIBS "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifec.lib" "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifmc.lib" "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifes.lib" "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpifms.lib" ) file(INSTALL "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpi.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_LIB_PATH}/${TRIPLET_SYSTEM_ARCH}/msmpi.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) if(VCPKG_CRT_LINKAGE STREQUAL "static") file(INSTALL ${STATIC_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL ${STATIC_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/mpi-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Handle copyright file(COPY "${SOURCE_PATH}/sdk/PFiles/Microsoft SDKs/MPI/License/MicrosoftMPI-SDK-EULA.rtf" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/sdk/PFiles/Microsoft SDKs/MPI/License/MPI-SDK-TPN.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "See the accompanying MicrosoftMPI-SDK-EULA.rtf and MPI-SDK-TPN.txt") ================================================ FILE: ports/msmpi/vcpkg.json ================================================ { "name": "msmpi", "version": "10.1.12498.52", "description": "Microsoft MPI (MS-MPI) is a Microsoft implementation of the Message Passing Interface standard for developing and running parallel applications on the Windows platform.", "homepage": "https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi", "license": "MIT", "supports": "windows & !uwp & (x64 | x86)" } ================================================ FILE: ports/msolve/fix-android.patch ================================================ diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -73,11 +73,9 @@ AX_GCC_BUILTIN([__builtin_clzll]) AX_GCC_BUILTIN([__builtin_clzl]) # Checks for library functions. -AC_FUNC_MALLOC -AC_FUNC_REALLOC -AC_CHECK_FUNCS([floor getdelim gettimeofday memmove memset pow sqrt strchr strstr strtol]) +AC_CHECK_FUNCS([floor getdelim gettimeofday memmove memset malloc realloc pow sqrt strchr strstr strtol]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ Makefile ================================================ FILE: ports/msolve/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO algebraic-solving/msolve REF "v${VERSION}" SHA512 db6fdae0fafe785618e457c6db787e5b835b5487359fd72fc39ebfa7f64fcae63ea131a2e6fe9f832c64d549c454688306e25ba52a9f2c3fa14a50fabd31b0de HEAD_REF master PATCHES fix-android.patch ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/msolve/vcpkg.json ================================================ { "name": "msolve", "version": "0.9.4", "description": "Computer algebra algorithms for solving polynomial systems", "homepage": "https://msolve.lip6.fr/", "license": "GPL-2.0-only", "supports": "!windows", "dependencies": [ "flint", "gmp", "mpfr", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/msquic/avoid-w-invalid-unevaluated-string.patch ================================================ diff --git a/src/core/mtu_discovery.c b/src/core/mtu_discovery.c index a40c05c..8891efc 100644 --- a/src/core/mtu_discovery.c +++ b/src/core/mtu_discovery.c @@ -34,8 +34,8 @@ Abstract: #include "mtu_discovery.c.clog.h" #endif -CXPLAT_STATIC_ASSERT(CXPLAT_MAX_MTU >= QUIC_DPLPMTUD_DEFAULT_MAX_MTU, L"Default max must not be more than max"); -CXPLAT_STATIC_ASSERT(QUIC_DPLPMTUD_MIN_MTU <= QUIC_DPLPMTUD_DEFAULT_MIN_MTU, L"Default min must not be less than min"); +CXPLAT_STATIC_ASSERT(CXPLAT_MAX_MTU >= QUIC_DPLPMTUD_DEFAULT_MAX_MTU, "Default max must not be more than max"); +CXPLAT_STATIC_ASSERT(QUIC_DPLPMTUD_MIN_MTU <= QUIC_DPLPMTUD_DEFAULT_MIN_MTU, "Default min must not be less than min"); _IRQL_requires_max_(PASSIVE_LEVEL) static diff --git a/src/core/packet_builder.h b/src/core/packet_builder.h index 97d6079..912ce89 100644 --- a/src/core/packet_builder.h +++ b/src/core/packet_builder.h @@ -158,7 +158,7 @@ typedef struct QUIC_PACKET_BUILDER { CXPLAT_STATIC_ASSERT( sizeof(QUIC_PACKET_BUILDER) < 1024, - L"Packet builder should be small enough to fit on the stack."); + "Packet builder should be small enough to fit on the stack."); // // Initializes the packet builder for general use. diff --git a/src/core/quicdef.h b/src/core/quicdef.h index 219ef33..07956b5 100644 --- a/src/core/quicdef.h +++ b/src/core/quicdef.h @@ -240,10 +240,10 @@ typedef struct QUIC_RX_PACKET QUIC_RX_PACKET; #define QUIC_MAX_RANGE_ACK_PACKETS 0x800 // 2048 #define QUIC_MAX_RANGE_DECODE_ACKS 0x1000 // 4096 -CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_ALLOC_SIZE), L"Must be power of two"); -CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_DUPLICATE_PACKETS), L"Must be power of two"); -CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_ACK_PACKETS), L"Must be power of two"); -CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_DECODE_ACKS), L"Must be power of two"); +CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_ALLOC_SIZE), "Must be power of two"); +CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_DUPLICATE_PACKETS), "Must be power of two"); +CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_ACK_PACKETS), "Must be power of two"); +CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(QUIC_MAX_RANGE_DECODE_ACKS), "Must be power of two"); // // Minimum MTU allowed to be configured. Must be able to fit a @@ -300,7 +300,7 @@ CXPLAT_STATIC_ASSERT(QUIC_INITIAL_PACKET_LENGTH >= QUIC_MIN_INITIAL_PACKET_LENGT CXPLAT_STATIC_ASSERT( QUIC_DEFAULT_DISCONNECT_TIMEOUT <= QUIC_MAX_DISCONNECT_TIMEOUT, - L"Default disconnect timeout should always be less than max"); + "Default disconnect timeout should always be less than max"); // // The default connection idle timeout (in milliseconds). diff --git a/src/core/range.h b/src/core/range.h index b6d2cc0..ca6d3cd 100644 --- a/src/core/range.h +++ b/src/core/range.h @@ -21,7 +21,7 @@ typedef struct QUIC_SUBRANGE { } QUIC_SUBRANGE; -CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(sizeof(QUIC_SUBRANGE)), L"Must be power of two"); +CXPLAT_STATIC_ASSERT(IS_POWER_OF_TWO(sizeof(QUIC_SUBRANGE)), "Must be power of two"); typedef struct QUIC_RANGE_SEARCH_KEY { ================================================ FILE: ports/msquic/cmake4.patch ================================================ diff --git a/submodules/CMakeLists.txt b/submodules/CMakeLists.txt index b0f0e2d1ee..1fa98fa430 100644 --- a/submodules/CMakeLists.txt +++ b/submodules/CMakeLists.txt @@ -257,7 +257,6 @@ else() message(ERROR "WTF ${CX_PLATFORM} ${CMAKE_TARGET_ARCHITECTURE}") set(OPENSSL_CONFIG_CMD ${CMAKE_CURRENT_SOURCE_DIR}/${QUIC_OPENSSL}/config) endif() - list(APPEND OPENSSL_CONFIG_FLAGS -isysroot ${CMAKE_OSX_SYSROOT}) if(SDK_NAME) list(APPEND OPENSSL_CONFIG_FLAGS "-m${SDK_NAME}-version-min=${DEPLOYMENT_TARGET}") elseif(CMAKE_OSX_DEPLOYMENT_TARGET) ================================================ FILE: ports/msquic/exports-for-msh3.diff ================================================ diff --git a/src/bin/darwin/exports.txt b/src/bin/darwin/exports.txt index e90b06e..c221d2c 100644 --- a/src/bin/darwin/exports.txt +++ b/src/bin/darwin/exports.txt @@ -1,2 +1,6 @@ _MsQuicOpenVersion _MsQuicClose +_CxPlatGetSelfSignedCert +_CxPlatFreeSelfSignedCert +_CxPlatLogAssert +_quic_bugcheck diff --git a/src/bin/linux/exports.txt b/src/bin/linux/exports.txt index e11806a..424c443 100644 --- a/src/bin/linux/exports.txt +++ b/src/bin/linux/exports.txt @@ -1,5 +1,9 @@ msquic { global: MsQuicOpenVersion; MsQuicClose; + CxPlatGetSelfSignedCert; + CxPlatFreeSelfSignedCert; + CxPlatLogAssert; + quic_bugcheck; local: *; }; diff --git a/src/bin/linux/init.c b/src/bin/linux/init.c index 29bfa14..61bbc48 100644 --- a/src/bin/linux/init.c +++ b/src/bin/linux/init.c @@ -9,8 +9,15 @@ Abstract: --*/ +#define QUIC_TEST_APIS 1 #include "quic_platform.h" +void MsQuickChainLoadPlatformSymbolsNoOp() +{ + QUIC_CREDENTIAL_CONFIG* SelfSignedCertParams = (QUIC_CREDENTIAL_CONFIG*)CxPlatGetSelfSignedCert(CXPLAT_SELF_SIGN_CERT_USER, FALSE, NULL); + CxPlatFreeSelfSignedCert(SelfSignedCertParams); +} + void MsQuicLibraryLoad( void diff --git a/src/bin/winuser/msquic.def.in b/src/bin/winuser/msquic.def.in index afaed5d..fa7d19a 100644 --- a/src/bin/winuser/msquic.def.in +++ b/src/bin/winuser/msquic.def.in @@ -3,3 +3,6 @@ LIBRARY @QUIC_LIBRARY_NAME@ EXPORTS MsQuicOpenVersion MsQuicClose + CxPlatGetSelfSignedCert + CxPlatFreeSelfSignedCert + CxPlatLogAssert ================================================ FILE: ports/msquic/fix-comparing-system-processor-with-win32.patch ================================================ diff --git a/submodules/CMakeLists.txt b/submodules/CMakeLists.txt index a6c592951..0a0ddf0f8 100644 --- a/submodules/CMakeLists.txt +++ b/submodules/CMakeLists.txt @@ -62,7 +62,7 @@ if (WIN32) set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM") elseif (${SYSTEM_PROCESSOR} STREQUAL "arm") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM") - elseif (${SYSTEM_PROCESSOR} STREQUAL "win32") + elseif (${SYSTEM_PROCESSOR} STREQUAL "x86") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ONECORE") elseif (${SYSTEM_PROCESSOR} STREQUAL "x64" OR ${SYSTEM_PROCESSOR} STREQUAL "amd64") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A-ONECORE") @@ -75,7 +75,7 @@ if (WIN32) set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM") elseif (${SYSTEM_PROCESSOR} STREQUAL "arm") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM") - elseif (${SYSTEM_PROCESSOR} STREQUAL "win32") + elseif (${SYSTEM_PROCESSOR} STREQUAL "x86") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32") elseif (${SYSTEM_PROCESSOR} STREQUAL "x64" OR ${SYSTEM_PROCESSOR} STREQUAL "amd64") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A") ================================================ FILE: ports/msquic/fix-install.patch ================================================ diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt index 18048e3..4fcd161 100644 --- a/src/bin/CMakeLists.txt +++ b/src/bin/CMakeLists.txt @@ -11,6 +11,7 @@ endif() if(BUILD_SHARED_LIBS) add_library(msquic SHARED ${SOURCES}) + target_include_directories(msquic PUBLIC $) target_link_libraries(msquic PRIVATE core msquic_platform inc warnings logging base_link main_binary_link_args) set_target_properties(msquic PROPERTIES OUTPUT_NAME ${QUIC_LIBRARY_NAME}) if (NOT WIN32) @@ -261,7 +262,10 @@ if(WIN32) endif() if(BUILD_SHARED_LIBS) - install(TARGETS msquic msquic_platform inc logging_inc warnings main_binary_link_args ${OTHER_TARGETS} EXPORT msquic DESTINATION lib) + install(TARGETS msquic EXPORT msquic + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) else() install(FILES ${QUIC_STATIC_LIBRARY} DESTINATION lib) endif() ================================================ FILE: ports/msquic/fix-uwp-crt.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f8f4d58f..df689627c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -598,9 +598,9 @@ if(WIN32) endif() if (NOT QUIC_STATIC_LINK_CRT AND NOT QUIC_STATIC_LINK_PARTIAL_CRT) - # We are using dynamic linking. Ensure that only the release version of CRT is used. - message(STATUS "Configuring for release version of dynamically linked CRT") - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL") + # We are using dynamic linking. Ensure that only the dynamic CRT is used. + message(STATUS "Configuring for dynamically linked CRT") + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") endif() else() #!WIN32 ================================================ FILE: ports/msquic/no-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1010458..cc7ac39 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -201,7 +201,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${QUIC_OUTPUT_DIR}) set(QUIC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/inc) if (WIN32) - set(QUIC_WARNING_FLAGS /WX /W4 /sdl /wd4206 CACHE INTERNAL "") + set(QUIC_WARNING_FLAGS /W4 /sdl /wd4206 CACHE INTERNAL "") set(QUIC_COMMON_FLAGS "") include(CheckCCompilerFlag) @@ -305,7 +305,7 @@ else() if (HAS_SYSCTL) list(APPEND QUIC_COMMON_DEFINES HAS_SYSCTL) endif() - set(QUIC_WARNING_FLAGS -Werror -Wall -Wextra -Wformat=2 -Wno-type-limits + set(QUIC_WARNING_FLAGS -Wall -Wextra -Wformat=2 -Wno-type-limits -Wno-unknown-pragmas -Wno-multichar -Wno-missing-field-initializers CACHE INTERNAL "") if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0) ================================================ FILE: ports/msquic/portfile.cmake ================================================ # Upstream supports static linkage, but the port doesn't: # - There is a vendored fork of OpenSSL, needed for QUIC. # - Exported config needs fixes. vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH QUIC_SOURCE_PATH REPO microsoft/msquic REF "v${VERSION}" SHA512 1dca477f62484988c4f74d80a671560a48e8ed60602189a4066f337b13786528f38a86437881538089bf47b5db3d228cb006cae298f27b574850612181ee00d9 HEAD_REF master PATCHES fix-install.patch # Adjust install path of build outputs fix-uwp-crt.patch # https://github.com/microsoft/msquic/pull/4373 fix-comparing-system-processor-with-win32.patch # https://github.com/microsoft/msquic/pull/4374 uwp-link-libs.diff exports-for-msh3.diff no-werror.patch avoid-w-invalid-unevaluated-string.patch cmake4.patch ) set(QUIC_TLS "schannel") if("0-rtt" IN_LIST FEATURES) set(QUIC_TLS "openssl3") vcpkg_from_github( OUT_SOURCE_PATH OPENSSL_SOURCE_PATH REPO quictls/openssl REF openssl-3.1.7-quic1 SHA512 230f48a4ef20bfd492b512bd53816a7129d70849afc1426e9ce813273c01884d5474552ecaede05231ca354403f25e2325c972c9c7950ae66dae310800bd19e7 HEAD_REF openssl-3.1.7+quic ) if(NOT EXISTS "${QUIC_SOURCE_PATH}/submodules/openssl3/Configure") file(REMOVE_RECURSE "${QUIC_SOURCE_PATH}/submodules/openssl3") file(RENAME "${OPENSSL_SOURCE_PATH}" "${QUIC_SOURCE_PATH}/submodules/openssl3") endif() endif() vcpkg_from_github( OUT_SOURCE_PATH XDP_WINDOWS REPO microsoft/xdp-for-windows REF v1.0.2 SHA512 1b26487fa79c8796d4b0d5e09f4fc9acb003d8e079189ec57a36ff03c9c2620829106fdbc4780e298872826f3a97f034d40e04d00a77ded97122874d13bfb145 HEAD_REF main ) if(NOT EXISTS "${QUIC_SOURCE_PATH}/submodules/xdp-for-windows/published/external") # headers only file(REMOVE_RECURSE "${QUIC_SOURCE_PATH}/submodules/xdp-for-windows") file(COPY "${XDP_WINDOWS}/published/external" DESTINATION "${QUIC_SOURCE_PATH}/submodules/xdp-for-windows/published") endif() vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH "${PERL}" DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") if(VCPKG_HOST_IS_WINDOWS) vcpkg_find_acquire_program(JOM) cmake_path(GET JOM PARENT_PATH jom_dir) vcpkg_add_to_path("${jom_dir}") else() find_program(MAKE make) cmake_path(GET MAKE PARENT_PATH make_dir) vcpkg_add_to_path("${make_dir}") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(NASM) cmake_path(GET NASM PARENT_PATH nasm_dir) vcpkg_add_to_path("${nasm_dir}") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" QUIC_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${QUIC_SOURCE_PATH}" OPTIONS -DQUIC_SOURCE_LINK=OFF -DQUIC_TLS=${QUIC_TLS} -DQUIC_USE_SYSTEM_LIBCRYPTO=OFF -DQUIC_BUILD_PERF=OFF -DQUIC_BUILD_TEST=OFF "-DQUIC_BUILD_SHARED=${QUIC_BUILD_SHARED}" "-DQUIC_STATIC_LINK_CRT=${STATIC_CRT}" "-DQUIC_STATIC_LINK_PARTIAL_CRT=${STATIC_CRT}" "-DQUIC_UWP_BUILD=${VCPKG_TARGET_IS_UWP}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() set(platform "") if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(platform "CX_PLATFORM_DARWIN") elseif(NOT VCPKG_TARGET_IS_WINDOWS) set(platform "CX_PLATFORM_LINUX") endif() if(platform) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quic_platform.h" "#elif ${platform}" "#elif 1 #ifndef ${platform} #define ${platform} #endif") elseif(VCPKG_TARGET_IS_UWP) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/quic_platform.h" "#elif _WIN32" "#elif 1 #ifndef QUIC_UWP_BUILD #define QUIC_UWP_BUILD #endif #ifndef QUIC_RESTRICTED_BUILD #define QUIC_RESTRICTED_BUILD #endif") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${QUIC_SOURCE_PATH}/LICENSE" "${QUIC_SOURCE_PATH}/THIRD-PARTY-NOTICES") ================================================ FILE: ports/msquic/uwp-link-libs.diff ================================================ diff --git a/src/inc/CMakeLists.txt b/src/inc/CMakeLists.txt index 48edebd..0a59ee6 100644 --- a/src/inc/CMakeLists.txt +++ b/src/inc/CMakeLists.txt @@ -40,7 +40,7 @@ endif() if(WIN32) if(QUIC_UWP_BUILD) - target_link_libraries(base_link INTERFACE OneCore ws2_32 ntdll) + target_link_libraries(base_link INTERFACE OneCoreUap ws2_32 ntdll) elseif(QUIC_GAMECORE_BUILD) target_link_libraries(base_link INTERFACE ntdll advapi32) if(NOT QUIC_EXTERNAL_TOOLCHAIN) diff --git a/src/platform/CMakeLists.txt b/src/platform/CMakeLists.txt index 4a573ae..6fb5887 100644 --- a/src/platform/CMakeLists.txt +++ b/src/platform/CMakeLists.txt @@ -60,7 +60,9 @@ if("${CX_PLATFORM}" STREQUAL "windows") msquic_platform PUBLIC wbemuuid) + if(NOT QUIC_UWP_BUILD) target_link_libraries(msquic_platform PUBLIC winmm) + endif() elseif(QUIC_LINUX_XDP_ENABLED) find_library(NL_LIB nl-3) find_library(NL_ROUTE_LIB nl-route-3) diff --git a/submodules/CMakeLists.txt b/submodules/CMakeLists.txt index 4bf8117..4468b19 100644 --- a/submodules/CMakeLists.txt +++ b/submodules/CMakeLists.txt @@ -59,13 +59,13 @@ if (WIN32) if (QUIC_UWP_BUILD) # Translate target architecture into corresponding OpenSSL build flag if (${SYSTEM_PROCESSOR} STREQUAL "arm64") - set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM") + set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64-ARM-UWP") elseif (${SYSTEM_PROCESSOR} STREQUAL "arm") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ARM") elseif (${SYSTEM_PROCESSOR} STREQUAL "x86") set(QUIC_OPENSSL_WIN_ARCH "VC-WIN32-ONECORE") elseif (${SYSTEM_PROCESSOR} STREQUAL "x64" OR ${SYSTEM_PROCESSOR} STREQUAL "amd64") - set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A-ONECORE") + set(QUIC_OPENSSL_WIN_ARCH "VC-WIN64A-UWP") else() message(FATAL_ERROR "Unknown Generator Platform ${SYSTEM_PROCESSOR}") endif() ================================================ FILE: ports/msquic/vcpkg.json ================================================ { "name": "msquic", "version": "2.4.8", "port-version": 1, "description": "Cross-platform, C implementation of the IETF QUIC protocol", "homepage": "https://github.com/microsoft/msquic", "license": "MIT", "supports": "!mingw & !(static & staticcrt)", "dependencies": [ { "name": "msquic", "features": [ "0-rtt" ], "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "0-rtt": { "description": [ "Enable 0-RTT connection support.", "This feature requires the use of (a fork of) OpenSSL 3 also on Windows." ], "license": "Apache-2.0" } } } ================================================ FILE: ports/mstch/do-not-force-release.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d8e0c7..4304ad7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,17 +5,17 @@ option(WITH_UNIT_TESTS "enable building unit test executable" OFF) option(WITH_BENCHMARK "enable building benchmark executable" OFF) set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) -set(CMAKE_BUILD_TYPE Release) set(mstch_VERSION 1.0.1) if(NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -O3") + set(CMAKE_CXX_STANDARD 11) endif() add_subdirectory(src) +target_include_directories(mstch PUBLIC $) + if(WITH_UNIT_TESTS) enable_testing() add_subdirectory(vendor/headerize) ================================================ FILE: ports/mstch/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO no1msd/mstch REF ff459067bd02e80dc399006bb610238223d41c50 #1.0.2 SHA512 b01f4c3e39a40fc9a6accc81ecbfac4b8a9ce1c2ec3df441a16039f4bf126dfeef83f87d3a5e9ec03dc133a1c5f54f5bc931479915e8a92bbfc8ebbc87c8e4dd HEAD_REF master PATCHES do-not-force-release.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mstch) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mstch/vcpkg.json ================================================ { "name": "mstch", "version": "1.0.2", "port-version": 5, "description": "Mstch is a complete implementation of {{mustache}} templates using modern C++", "homepage": "https://github.com/no1msd/mstch", "dependencies": [ "boost-variant", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mtlt/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tonitaga/MTLT REF 8e30e6636b06ad008082e22f37e0d79873142e1b SHA512 2addaa4f84037a14431b20734fe5ca1ea11c4d9d1a0ddf82a16b9efaacbbac3873038bd16f93ba94288559585ae76d12884166931c91a214a3e3ed0cecea6b3b HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "mtlt" CONFIG_PATH "lib/cmake/mtlt") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mtlt/usage ================================================ The package mtlt provides CMake targets: find_package(mtlt REQUIRED) target_link_libraries(${PROJECT_NAME} PRIVATE mtlt::mtlt) ================================================ FILE: ports/mtlt/vcpkg.json ================================================ { "name": "mtlt", "version": "1.0.0", "description": "Tonitaga 2024. MTLT is a header-only math matrix library that allows you to do compile-time calculations, perform atomic operations, and contains all the basic operations on matrices. The library is written in STL style, supports joint work with STL algorithms. Since C++11", "homepage": "https://github.com/tonitaga/MTLT", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/muda/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "MuGdxy/muda" REF "${VERSION}" SHA512 36ca58a8a01c3a6e8ef84138846ade2346ea73e9160ff47b280ae44ecc0ccfa9471f2a0cf8707d80c193e211c664203002889549534db7943e20487a960d9068 HEAD_REF mini20 ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES compute-graph MUDA_WITH_COMPUTE_GRAPH ) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" "-DMUDA_BUILD_EXAMPLE=OFF" "-DMUDA_BUILD_TEST=OFF" "-DMUDA_WITH_CHECK=ON" "-DMUDA_WITH_NVTX3=OFF" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/muda/usage ================================================ muda provides CMake targets: find_package(muda CONFIG REQUIRED) target_link_libraries(main PRIVATE muda::muda) set_target_properties(main PROPERTIES CUDA_SEPARABLE_COMPILATION ON CUDA_RESOLVE_DEVICE_SYMBOLS ON CUDA_STANDARD_REQUIRED ON CUDA_STANDARD 20 # OR 17 ) ================================================ FILE: ports/muda/vcpkg.json ================================================ { "name": "muda", "version": "2025.10.9", "description": "μ-Cuda, COVER THE LAST MILE OF CUDA. With features: intellisense-friendly, structured launch, automatic cuda graph generation and updating.", "license": "Apache-2.0", "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)", "dependencies": [ "cuda", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "compute-graph": { "description": "Enable compute graph feature" } } } ================================================ FILE: ports/mujoco/disable-werror.patch ================================================ diff --git a/cmake/MujocoOptions.cmake b/cmake/MujocoOptions.cmake index de146d8..7657fa5 100644 --- a/cmake/MujocoOptions.cmake +++ b/cmake/MujocoOptions.cmake @@ -86,7 +86,6 @@ get_mujoco_extra_link_options(EXTRA_LINK_OPTIONS) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC)) set(EXTRA_COMPILE_OPTIONS - -Werror -Wall -Wpedantic -Wimplicit-fallthrough diff --git a/simulate/cmake/SimulateOptions.cmake b/simulate/cmake/SimulateOptions.cmake index de146d8..7657fa5 100644 --- a/simulate/cmake/SimulateOptions.cmake +++ b/simulate/cmake/SimulateOptions.cmake @@ -86,7 +86,6 @@ get_mujoco_extra_link_options(EXTRA_LINK_OPTIONS) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC)) set(EXTRA_COMPILE_OPTIONS - -Werror -Wall -Wpedantic -Wimplicit-fallthrough ================================================ FILE: ports/mujoco/fix_dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e06fde4..e9c97475 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,7 +151,7 @@ if(EMSCRIPTEN) endif() -target_compile_definitions(mujoco PRIVATE _GNU_SOURCE CCD_STATIC_DEFINE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE) +target_compile_definitions(mujoco PRIVATE _GNU_SOURCE MUJOCO_DLL_EXPORTS -DMC_IMPLEM_ENABLE) if(MUJOCO_ENABLE_AVX_INTRINSICS) target_compile_definitions(mujoco PUBLIC mjUSEPLATFORMSIMD) endif() @@ -174,9 +174,9 @@ target_link_libraries( mujoco PRIVATE ccd lodepng - qhullstatic_r - tinyobjloader - tinyxml2 + Qhull::qhull_r + tinyobjloader::tinyobjloader + tinyxml2::tinyxml2 ) set_target_properties( diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake index 34be423f..1106d7ed 100644 --- a/cmake/MujocoDependencies.cmake +++ b/cmake/MujocoDependencies.cmake @@ -90,7 +90,7 @@ set(BUILD_SHARED_LIBS CACHE INTERNAL "Build SHARED libraries" ) -if(NOT TARGET lodepng) +if(0) FetchContent_Declare( lodepng GIT_REPOSITORY https://github.com/lvandeve/lodepng.git @@ -114,6 +114,7 @@ if(NOT TARGET lodepng) endif() endif() +if(0) if(NOT TARGET marchingcubecpp) FetchContent_Declare( marchingcubecpp @@ -127,6 +128,23 @@ if(NOT TARGET marchingcubecpp) include_directories(${marchingcubecpp_SOURCE_DIR}) endif() endif() +endif() + +findorfetch( + USE_SYSTEM_PACKAGE + ON + PACKAGE_NAME + lodepng + LIBRARY_NAME + lodepng + GIT_REPO + https://github.com/lvandeve/lodepng.git + GIT_TAG + ${MUJOCO_DEP_VERSION_lodepng} + TARGETS + lodepng + EXCLUDE_FROM_ALL +) set(QHULL_ENABLE_TESTING OFF) # Patch changes in https://github.com/qhull/qhull/pull/173.patch @@ -136,32 +154,40 @@ set(QHULL_PATCH_COMMAND findorfetch( USE_SYSTEM_PACKAGE - OFF + ON PACKAGE_NAME - qhull + Qhull LIBRARY_NAME - qhull + Qhull GIT_REPO https://github.com/qhull/qhull.git GIT_TAG ${MUJOCO_DEP_VERSION_qhull} TARGETS - qhull + Qhull EXCLUDE_FROM_ALL PATCH_COMMAND ${QHULL_PATCH_COMMAND} ) # MuJoCo includes a file from libqhull_r which is not exported by the qhull include directories. # Add it to the target. +if(0) target_include_directories( qhullstatic_r INTERFACE $ ) target_compile_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS}) target_link_options(qhullstatic_r PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS}) +endif() + +include_directories( + ${Qhull_DIR}/../../include + ${Qhull_DIR}/../../include/libqhull_r + ${Qhull_DIR}/../../include/marchingcubecpp +) set(tinyxml2_BUILD_TESTING OFF) findorfetch( USE_SYSTEM_PACKAGE - OFF + ON PACKAGE_NAME tinyxml2 LIBRARY_NAME @@ -174,8 +200,10 @@ findorfetch( tinyxml2 EXCLUDE_FROM_ALL ) +if(0) target_compile_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS}) target_link_options(tinyxml2 PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS}) +endif() # update cmake_minimum_required version for compatibility with newer version of cmake if(NOT DEFINED CMAKE_POLICY_VERSION_MINIMUM) @@ -184,7 +212,7 @@ if(NOT DEFINED CMAKE_POLICY_VERSION_MINIMUM) endif() findorfetch( USE_SYSTEM_PACKAGE - OFF + ON PACKAGE_NAME tinyobjloader LIBRARY_NAME @@ -202,7 +230,7 @@ if(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED) unset(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED) endif() -if(NOT TARGET trianglemeshdistance) +if(0) FetchContent_Declare( trianglemeshdistance GIT_REPOSITORY https://github.com/InteractiveComputerGraphics/TriangleMeshDistance.git @@ -226,6 +254,18 @@ if(NOT TARGET trianglemeshdistance) endif() endif() +findorfetch( + USE_SYSTEM_PACKAGE + ON + PACKAGE_NAME + trianglemeshdistance + LIBRARY_NAME + trianglemeshdistance + TARGETS + trianglemeshdistance + EXCLUDE_FROM_ALL +) + set(ENABLE_DOUBLE_PRECISION ON) set(CCD_HIDE_ALL_SYMBOLS ON) @@ -241,7 +281,7 @@ if(NOT DEFINED CMAKE_POLICY_VERSION_MINIMUM) endif() findorfetch( USE_SYSTEM_PACKAGE - OFF + ON PACKAGE_NAME ccd LIBRARY_NAME @@ -259,11 +299,14 @@ if(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED) unset(CMAKE_POLICY_VERSION_MINIMUM) unset(CMAKE_POLICY_VERSION_MINIMUM_LOCALLY_DEFINED) endif() +if(0) target_compile_options(ccd PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS}) target_link_options(ccd PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS}) +endif() # libCCD has an unconditional `#define _CRT_SECURE_NO_WARNINGS` on Windows. # TODO(stunya): Remove this after https://github.com/danfis/libccd/pull/77 is merged. +if(0) if(WIN32) if(MSVC) # C4005 is the MSVC equivalent of -Wmacro-redefined. @@ -272,6 +315,7 @@ if(WIN32) target_compile_options(ccd PRIVATE -Wno-macro-redefined) endif() endif() +endif() if(MUJOCO_BUILD_TESTS OR MUJOCO_BUILD_STUDIO OR MUJOCO_USE_FILAMENT) set(ABSL_PROPAGATE_CXX_STD ON) diff --git a/simulate/cmake/SimulateDependencies.cmake b/simulate/cmake/SimulateDependencies.cmake index 7885f5f9..01db1dbc 100644 --- a/simulate/cmake/SimulateDependencies.cmake +++ b/simulate/cmake/SimulateDependencies.cmake @@ -86,7 +86,7 @@ findorfetch( GIT_TAG ${MUJOCO_DEP_VERSION_glfw3} TARGETS - glfw + glfw3 EXCLUDE_FROM_ALL ) @@ -98,7 +98,7 @@ if(MUJOCO_EXTRAS_STATIC_GLFW) unset(BUILD_SHARED_LIBS_OLD) endif() -if(NOT SIMULATE_STANDALONE AND NOT MUJOCO_SIMULATE_USE_SYSTEM_GLFW) +if(0) target_compile_options(glfw PRIVATE ${MUJOCO_MACOS_COMPILE_OPTIONS}) target_link_options(glfw PRIVATE ${MUJOCO_MACOS_LINK_OPTIONS}) endif() diff --git a/src/user/user_mesh.cc b/src/user/user_mesh.cc index 8c46840b..27711d66 100644 --- a/src/user/user_mesh.cc +++ b/src/user/user_mesh.cc @@ -34,7 +34,7 @@ #include #include "user/user_api.h" -#include +#include #ifdef MUJOCO_TINYOBJLOADER_IMPL #define TINYOBJLOADER_IMPLEMENTATION ================================================ FILE: ports/mujoco/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO deepmind/mujoco REF ${VERSION} SHA512 08ee155459069dcebcbf833256238461fbcc99c973740484d3d140038c294fcf24674eda32e3cbb9f2e6a8c93e1887fd25518c4adc8b7a8d3850cd9ef5fa9bbf PATCHES fix_dependencies.patch disable-werror.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMUJOCO_BUILD_EXAMPLES=OFF -DMUJOCO_BUILD_TESTS=OFF -DMUJOCO_TEST_PYTHON_UTIL=OFF -DSIMULATE_BUILD_EXECUTABLE=OFF -DMUJOCO_SIMULATE_USE_SYSTEM_GLFW=ON -DMUJOCO_SIMULATE_USE_SYSTEM_MUJOCO=ON ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/${PORT} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/mujoco/usage ================================================ mujoco provides CMake targets: find_package(mujoco CONFIG REQUIRED) target_link_libraries(main PRIVATE mujoco::mujoco) ================================================ FILE: ports/mujoco/vcpkg.json ================================================ { "name": "mujoco", "version": "3.5.0", "description": "Multi-Joint dynamics with Contact.", "homepage": "https://mujoco.org", "license": "Apache-2.0", "supports": "!(windows & static)", "dependencies": [ { "name": "ccd", "features": [ "double-precision" ] }, "glfw3", "lodepng", "marchingcubecpp", "qhull", "tinyobjloader", "tinyxml2", "trianglemeshdistance", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mujs/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(mujs C) set(LINK_LIBRARIES "") set(PC_LIBS_PRIVATE "") if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) else() find_library(HAVE_LIBM NAMES m) if(HAVE_LIBM) list(APPEND LINK_LIBRARIES m) string(APPEND PC_LIBS_PRIVATE " -lm") endif() endif() file(GLOB mujs_sources js*.c utf*.c regexp.c) add_library(mujs ${mujs_sources}) target_include_directories(mujs PUBLIC "$" "$" ) target_link_libraries(mujs PRIVATE ${LINK_LIBRARIES}) install( TARGETS mujs EXPORT unofficial-mujs-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT unofficial-mujs-targets FILE unofficial-mujs-config.cmake NAMESPACE unofficial::mujs:: DESTINATION "share/unofficial-mujs" ) include(CMakePackageConfigHelpers) write_basic_package_version_file(unofficial-mujs-config-version.cmake VERSION ${PACKAGE_VERSION} COMPATIBILITY AnyNewerVersion ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mujs-config-version.cmake" DESTINATION "share/unofficial-mujs" ) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mujs.pc" "${CMAKE_CURRENT_BINARY_DIR}/mujs.pc" @ONLY) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/mujs.pc" DESTINATION "lib/pkgconfig" ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES mujs.h DESTINATION include) endif() ================================================ FILE: ports/mujs/mujs.pc ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: mujs Description: MuJS embeddable Javascript interpreter Version: @PACKAGE_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lmujs Libs.private: @PC_LIBS_PRIVATE@ ================================================ FILE: ports/mujs/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH GITHUB_HOST https://codeberg.org REPO ccxvii/mujs REF "${VERSION}" SHA512 b553c09f2994b54ef6aa48ece3e6f8355ea69c6ec9ee2ea101fd33b3054dd6b57482c923c063929b3f108a5244ab51ffbd807d5a1d0f3f4ed4f40896ac97ab87 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/mujs.pc" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPACKAGE_VERSION=${VERSION}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mujs) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mujs/vcpkg.json ================================================ { "name": "mujs", "version": "1.3.8", "description": "An embeddable Javascript interpreter in C", "homepage": "https://codeberg.org/ccxvii/mujs", "license": "ISC", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/munit/fix-install.patch ================================================ diff --git a/meson.build b/meson.build index c15b405..44ee737 100644 --- a/meson.build +++ b/meson.build @@ -11,7 +11,7 @@ root_include = include_directories('.') munit = library('munit', ['munit.c'], - install: meson.is_subproject()) + install: not meson.is_subproject()) if meson.is_subproject() munit_dep = declare_dependency( ================================================ FILE: ports/munit/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nemequ/munit REF da8f73412998e4f1adf1100dc187533a51af77fd SHA512 cd08c1291a73487f15fdba7bf8675fea9177f0ec9766900f65efb5f00c662532a16499447e9087d304de34ff9138f47d04ebf18713f5aa8aacede22c5e23b98b HEAD_REF master PATCHES fix-install.patch ) vcpkg_configure_meson( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_install_meson() vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/munit/vcpkg.json ================================================ { "name": "munit", "version-date": "2019-04-06", "port-version": 5, "description": "A small but full-featured unit testing framework for C", "homepage": "https://github.com/nemequ/munit", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/muparser/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO beltoforion/muparser REF "v${VERSION}" SHA512 48610dd112b5c8e1ea7615e29c9f9ca185091392b651794de039c14edfad4c62a6ae1d087393fdfd8d03a99f94a6e71275b86ddc8027234d322030bc7c25223e HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp ENABLE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_SAMPLES=OFF -DENABLE_WIDE_CHAR=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/muparser") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/muParserFixes.h" "#ifndef MUPARSER_STATIC" "#if 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/muParserFixes.h" "#ifndef MUPARSER_STATIC" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/muparser/vcpkg.json ================================================ { "name": "muparser", "version": "2.3.5", "description": "Fast math parser library", "homepage": "https://github.com/beltoforion/muparser", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP for multithreading" } } } ================================================ FILE: ports/murmur3/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) project(murmur3 LANGUAGES C) set(PROJECT_VERSION "${VERSION}") set(Header_Files "${PROJECT_NAME}.h") set(Source_Files "${PROJECT_NAME}.c") add_library("${PROJECT_NAME}" "${Header_Files}" "${Source_Files}") include(GNUInstallDirs) target_include_directories( "${PROJECT_NAME}" PUBLIC "$" "$" ) target_compile_features("${PROJECT_NAME}" PRIVATE c_std_90) set_target_properties("${PROJECT_NAME}" PROPERTIES C_VISIBILITY_PRESET hidden PUBLIC_HEADER "${Header_Files}") install( TARGETS "${PROJECT_NAME}" EXPORT "unofficial-${PROJECT_NAME}Config" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-${PROJECT_NAME}ConfigVersion.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION "${PROJECT_VERSION}" COMPATIBILITY SameMajorVersion ) install(FILES "${VERSION_FILE_PATH}" DESTINATION "share/unofficial-${PROJECT_NAME}") install(FILES ${Header_Files} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install( EXPORT "unofficial-${PROJECT_NAME}Config" FILE "unofficial-${PROJECT_NAME}Config.cmake" NAMESPACE "unofficial::${PROJECT_NAME}::" DESTINATION "share/unofficial-${PROJECT_NAME}") export(PACKAGE "${PROJECT_NAME}") ================================================ FILE: ports/murmur3/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PeterScott/murmur3 REF dae94be0c0f54a399d23ea6cbe54bca5a4e93ce4 SHA512 1bc01eefc04f06704800a7448231db9f82fc809079bd3f43ef24d7dd3d8deaec2143f252a8e556dafe366401f898b676922b0c93ac181aaf38ae69ad638adbba HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DVERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "CC0-1.0") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/murmur3/usage ================================================ murmur3 provides CMake targets: find_package(unofficial-murmur3 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::murmur3::murmur3) ================================================ FILE: ports/murmur3/vcpkg.json ================================================ { "name": "murmur3", "version-date": "2015-05-02", "description": "Murmur3 hash in C", "homepage": "https://github.com/PeterScott/murmur3", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/murmurhash/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) set(VERSION "1.0.0") project(murmurhash LANGUAGES CXX VERSION ${VERSION}) set(CMAKE_CXX_STANDARD 17) add_library(murmurhash src/MurmurHash2.cpp src/MurmurHash3.cpp ) set(MURMUR_HEADERS src/MurmurHash2.h src/MurmurHash3.h ) set_target_properties(murmurhash PROPERTIES PUBLIC_HEADER "${MURMUR_HEADERS}" ) #Configuration set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") set(config_install_dir "lib/cmake/${PROJECT_NAME}") set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake") set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake") set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") set(namespace "${PROJECT_NAME}::") include(CMakePackageConfigHelpers) write_basic_package_version_file( "${version_config}" COMPATIBILITY SameMajorVersion ) configure_package_config_file( "${CMAKE_SOURCE_DIR}/Config.cmake.in" "${project_config}" INSTALL_DESTINATION "${config_install_dir}" ) #Installation install(TARGETS murmurhash EXPORT "${TARGETS_EXPORT_NAME}" LIBRARY DESTINATION "lib" ARCHIVE DESTINATION "lib" PUBLIC_HEADER DESTINATION "include") install(FILES "${project_config}" "${version_config}" DESTINATION "${config_install_dir}" ) install(EXPORT "${TARGETS_EXPORT_NAME}" NAMESPACE "${namespace}" DESTINATION "${config_install_dir}" ) ================================================ FILE: ports/murmurhash/Config.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/murmurhash/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aappleby/smhasher REF 61a0530f28277f2e850bfc39600ce61d02b518de SHA512 36877b53386153c20421ccd32d544c28ee72f6f13ea37c14ab1a1db378f6463db28339b2149671c12611384497bf595b798e99c34ea0ebceb6f9ef2f8908a2b6 HEAD_REF master ) configure_file("${CURRENT_PORT_DIR}/CMakeLists.txt" "${SOURCE_PATH}/CMakeLists.txt" COPYONLY) configure_file("${CURRENT_PORT_DIR}/Config.cmake.in" "${SOURCE_PATH}/Config.cmake.in" COPYONLY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "MurmurHash3 was written by Austin Appleby, and is placed in the public domain. The author hereby disclaims copyright to this source code.") ================================================ FILE: ports/murmurhash/vcpkg.json ================================================ { "name": "murmurhash", "version-date": "2016-01-09", "port-version": 7, "description": "MurmurHash a family of hash functions.", "homepage": "https://github.com/aappleby/smhasher", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mvfst/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/mvfst REF "v${VERSION}" SHA512 6669e5b3163f422b3b5b11f298ff16f4f6f196aef765fa4a3da7a4caa69b7675e4ab8a9f9eac0e2f07e5fa30e723af7ab2310d67ec5d1357723da15444333dea HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/mvfst) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mvfst/vcpkg.json ================================================ { "name": "mvfst", "version-string": "2026.02.23.00", "description": "mvfst (Pronounced move fast) is a client and server implementation of IETF QUIC protocol in C++ by Facebook.", "homepage": "https://github.com/facebook/mvfst", "license": "MIT", "supports": "!windows | static", "dependencies": [ "boost-context", "boost-date-time", "boost-filesystem", "boost-iostreams", "boost-program-options", "boost-regex", "boost-system", "boost-thread", "fizz", "fmt", "folly", "glog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mxml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO michaelrsweet/mxml REF "v${VERSION}" SHA512 11ef51b7e8abe8f5b1728ee072217605456e11e56bd0abc5375820c1a0e30ea1a6f0a306e65a40c1cdda3394486b51e2d67cc9081113dbc570b6d9d835f5890f HEAD_REF master ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # Force Z7 debug information format for MSVC builds vcpkg_replace_string("${SOURCE_PATH}/vcnet/mxml4.vcxproj" "ProgramDatabase" "OldStyle" ) vcpkg_replace_string("${SOURCE_PATH}/vcnet/mxml4.vcxproj" "EditAndContinue" "OldStyle" ) vcpkg_replace_string("${SOURCE_PATH}/vcnet/mxml4.vcxproj" "true" "false" ) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "vcnet/mxml4.vcxproj" TARGET Build ) file(INSTALL "${SOURCE_PATH}/mxml.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE ) vcpkg_make_install() vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mxml/vcpkg.json ================================================ { "name": "mxml", "version": "4.0.4", "port-version": 1, "description": "A tiny xml parsing library", "homepage": "https://github.com/michaelrsweet/mxml", "license": "Apache-2.0", "supports": "!(windows & (uwp | static | arm))", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/mygui/Install-tools.patch ================================================ diff --git a/CMake/Utils/MyGUIConfigTargets.cmake b/CMake/Utils/MyGUIConfigTargets.cmake index 6483339..0b35148 100644 --- a/CMake/Utils/MyGUIConfigTargets.cmake +++ b/CMake/Utils/MyGUIConfigTargets.cmake @@ -170,6 +170,11 @@ function(mygui_app PROJECTNAME SOLUTIONFOLDER) set(MYGUI_EXEC_TYPE WIN32) endif () add_executable(${PROJECTNAME} ${MYGUI_EXEC_TYPE} ${HEADER_FILES} ${SOURCE_FILES}) + if (APPLE) + install(TARGETS ${PROJECTNAME} BUNDLE DESTINATION bin) + else () + install(TARGETS ${PROJECTNAME} RUNTIME DESTINATION bin) + endif () endif () set_target_properties(${PROJECTNAME} PROPERTIES FOLDER ${SOLUTIONFOLDER}) ================================================ FILE: ports/mygui/fix-generation.patch ================================================ diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt index a0ef573..b77566e 100644 --- a/CMake/CMakeLists.txt +++ b/CMake/CMakeLists.txt @@ -5,7 +5,7 @@ ############################################################# if(WIN32) - set(MYGUI_CMAKE_DIR "CMake") + set(MYGUI_CMAKE_DIR "share") else(WIN32) set(MYGUI_CMAKE_DIR "lib/MYGUI/cmake") endif(WIN32) diff --git a/CMake/Utils/MyGUIConfigTargets.cmake b/CMake/Utils/MyGUIConfigTargets.cmake index 8fb1ce4..6483339 100644 --- a/CMake/Utils/MyGUIConfigTargets.cmake +++ b/CMake/Utils/MyGUIConfigTargets.cmake @@ -7,10 +7,10 @@ if (WIN32) set(MYGUI_RELWDBG_PATH "/RelWithDebInfo") set(MYGUI_MINSIZE_PATH "/MinSizeRel") set(MYGUI_DEBUG_PATH "/Debug") - set(MYGUI_LIB_RELEASE_PATH "/Release") + set(MYGUI_LIB_RELEASE_PATH "") set(MYGUI_LIB_RELWDBG_PATH "/RelWithDebInfo") set(MYGUI_LIB_MINSIZE_PATH "/MinSizeRel") - set(MYGUI_LIB_DEBUG_PATH "/Debug") + set(MYGUI_LIB_DEBUG_PATH "") set(MYGUI_PLUGIN_PATH "/opt") elseif (UNIX) set(MYGUI_RELEASE_PATH "") ================================================ FILE: ports/mygui/fix-tools-lnk2005.patch ================================================ diff --git a/Tools/EditorFramework/ComponentFactory.cpp b/Tools/EditorFramework/ComponentFactory.cpp index 3311936..701af6d 100644 --- a/Tools/EditorFramework/ComponentFactory.cpp +++ b/Tools/EditorFramework/ComponentFactory.cpp @@ -46,7 +46,7 @@ namespace tools FACTORY_ITEM(FocusInfoControl) FACTORY_ITEM(DataListBaseControl) FACTORY_ITEM(ColourPanel) - FACTORY_ITEM(BackgroundControl) +// FACTORY_ITEM(BackgroundControl) FACTORY_ITEM(TextureBrowseControl) FACTORY_ITEM(TextFieldControl) FACTORY_ITEM(SettingsWindow) ================================================ FILE: ports/mygui/opengl.patch ================================================ diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index db7d6610c..eb9190e07 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -41,12 +41,9 @@ elseif(MYGUI_RENDERSYSTEM EQUAL 3) elseif(MYGUI_RENDERSYSTEM EQUAL 4) add_definitions("-DMYGUI_OPENGL_PLATFORM") include_directories(SYSTEM - ${OPENGL_INCLUDE_DIR} ${SDL2_IMAGE_INCLUDE_DIRS} ${MYGUI_SOURCE_DIR}/Platforms/${MYGUI_PLATFORM_NAME}/${MYGUI_PLATFORM_NAME}Platform/include ) - include_directories(SYSTEM include/GL) - link_directories(${OPENGL_LIB_DIR}) link_directories(${SDL2_IMAGE_LIB_DIR}) elseif(MYGUI_RENDERSYSTEM EQUAL 5) add_definitions("-DMYGUI_DIRECTX_PLATFORM") @@ -106,3 +103,8 @@ if (MYGUI_INSTALL_TOOLS OR MYGUI_INSTALL_DEMOS) endif() add_dependencies(${PROJECTNAME} MyGUIEngine) + +if(MYGUI_RENDERSYSTEM EQUAL 4) + find_package(OpenGL REQUIRED) + target_link_libraries(${PROJECTNAME} OpenGL::GL) +endif() ================================================ FILE: ports/mygui/platform-lib-static.patch ================================================ diff --git a/Platforms/DirectX/DirectXPlatform/CMakeLists.txt b/Platforms/DirectX/DirectXPlatform/CMakeLists.txt index 169a2afe4..2ea45af2b 100644 --- a/Platforms/DirectX/DirectXPlatform/CMakeLists.txt +++ b/Platforms/DirectX/DirectXPlatform/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories( include(${PROJECTNAME}.list) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/DirectX11/DirectX11Platform/CMakeLists.txt b/Platforms/DirectX11/DirectX11Platform/CMakeLists.txt index 251fcdbe3..16d4f33a5 100644 --- a/Platforms/DirectX11/DirectX11Platform/CMakeLists.txt +++ b/Platforms/DirectX11/DirectX11Platform/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories( include(${PROJECTNAME}.list) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/Dummy/DummyPlatform/CMakeLists.txt b/Platforms/Dummy/DummyPlatform/CMakeLists.txt index 1055694f2..625391132 100644 --- a/Platforms/Dummy/DummyPlatform/CMakeLists.txt +++ b/Platforms/Dummy/DummyPlatform/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories( include(${PROJECTNAME}.list) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/Ogre/OgrePlatform/CMakeLists.txt b/Platforms/Ogre/OgrePlatform/CMakeLists.txt index a151abcf8..23f8a2373 100644 --- a/Platforms/Ogre/OgrePlatform/CMakeLists.txt +++ b/Platforms/Ogre/OgrePlatform/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories( include(${PROJECTNAME}.list) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt b/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt index 0d58d3d71..78eaf0267 100644 --- a/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt +++ b/Platforms/OpenGL/OpenGLPlatform/CMakeLists.txt @@ -19,7 +19,7 @@ if (NOT MYGUI_USE_SYSTEM_GLEW) endif () add_definitions(-DGL_GLEXT_PROTOTYPES) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/OpenGL3/OpenGL3Platform/CMakeLists.txt b/Platforms/OpenGL3/OpenGL3Platform/CMakeLists.txt index 27d96da3e..4dcee1601 100644 --- a/Platforms/OpenGL3/OpenGL3Platform/CMakeLists.txt +++ b/Platforms/OpenGL3/OpenGL3Platform/CMakeLists.txt @@ -19,7 +19,7 @@ if (NOT MYGUI_USE_SYSTEM_GLEW) endif () add_definitions(-DGL_GLEXT_PROTOTYPES) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) diff --git a/Platforms/OpenGLES/OpenGLESPlatform/CMakeLists.txt b/Platforms/OpenGLES/OpenGLESPlatform/CMakeLists.txt index bd6d9657b..ad31fc158 100644 --- a/Platforms/OpenGLES/OpenGLESPlatform/CMakeLists.txt +++ b/Platforms/OpenGLES/OpenGLESPlatform/CMakeLists.txt @@ -9,7 +9,7 @@ include_directories( include(${PROJECTNAME}.list) add_definitions(-DGL_GLEXT_PROTOTYPES) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) add_dependencies(${PROJECTNAME} MyGUIEngine) From 32e39f8de4b750ed5d2332ee18846f23b7e98df5 Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Tue, 29 Oct 2024 14:53:52 +0000 Subject: [PATCH] Explicitly mark another library as static I've also figured out why this problem wasn't obvious. It only happens when someone's used the CMake-standard BUILD_SHARED_LIBS option, which controls the default behaviour for add_library. When MyGUI is built as a standalone project, this won't be set (unless someone's done it manually) so it's fine. When MyGUI is built as part of a larger project (e.g. package manager like vcpkg or CPM, or as a nested project with FetchContent), it's likely to have been set by something else. It might be a good idea to pick the default value of MYGUI_STATIC to match BUILD_SHARED_LIBS if it's set, but I've not done that in this PR. --- Common/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt index e97507019..87a16290f 100644 --- a/Common/CMakeLists.txt +++ b/Common/CMakeLists.txt @@ -99,7 +99,7 @@ SOURCE_GROUP("Base" FILES Input/SDL/ResourceSDLPointer.cpp ) -add_library(${PROJECTNAME} ${HEADER_FILES} ${SOURCE_FILES}) +add_library(${PROJECTNAME} STATIC ${HEADER_FILES} ${SOURCE_FILES}) mygui_set_platform_name(${MYGUI_RENDERSYSTEM}) add_dependencies(${PROJECTNAME} MyGUI.${MYGUI_PLATFORM_NAME}Platform) ================================================ FILE: ports/mygui/portfile.cmake ================================================ vcpkg_download_distfile( basic_string_patch URLS "https://github.com/MyGUI/mygui/commit/0731785d83431bd17a0854f19bea9a7d687de5a7.diff?full_index=1" FILENAME "MyGUI-mygui-basic-string-0731785.diff" SHA512 4ca252b8d37d9b98b9a1295c181325a33c30534757f8adbbcceceafacd97ff6987fb7a5d1f087b960519c923007e6adff2e8b1d873d75e7faff05b9a20b9cd79 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MyGUI/mygui REF MyGUI${VERSION} SHA512 88c69ca2e706af364b72d425f95013eb285501881d8094f8d67e31a54c45ca11b0eb5b62c382af0d4c43f69aa8197648259ac306b72efa7ef3e25eecb9b039cb HEAD_REF master PATCHES fix-generation.patch Install-tools.patch opengl.patch sdl2-static.patch fix-tools-lnk2005.patch platform-lib-static.patch ${basic_string_patch} ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") message(STATUS "Setting MYGUI_RENDERSYSTEM to 8 (GLES) - officially supported MyGUI render system for wasm32") set(MYGUI_RENDERSYSTEM 8) elseif("opengl" IN_LIST FEATURES) set(MYGUI_RENDERSYSTEM 4) else() set(MYGUI_RENDERSYSTEM 1) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES plugins MYGUI_BUILD_PLUGINS tools MYGUI_BUILD_TOOLS INVERTED_FEATURES obsolete MYGUI_DONT_USE_OBSOLETE plugins MYGUI_DISABLE_PLUGINS ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MYGUI_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMYGUI_STATIC=${MYGUI_STATIC} -DMYGUI_BUILD_DEMOS=FALSE -DMYGUI_BUILD_UNITTESTS=FALSE -DMYGUI_BUILD_TEST_APP=FALSE -DMYGUI_BUILD_WRAPPER=FALSE -DMYGUI_BUILD_DOCS=FALSE -DMYGUI_RENDERSYSTEM=${MYGUI_RENDERSYSTEM} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES FontEditor ImageEditor LayoutEditor SkinEditor AUTO_CLEAN) endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING.MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/mygui/sdl2-static.patch ================================================ diff --git a/CMake/Packages/FindSDL2.cmake b/CMake/Packages/FindSDL2.cmake index 4dd33abe4..3911acef3 100644 --- a/CMake/Packages/FindSDL2.cmake +++ b/CMake/Packages/FindSDL2.cmake @@ -49,7 +49,7 @@ IF(NOT SDL2_FOUND) ) find_library(SDL2_LIBRARY - NAMES SDL2 + NAMES SDL2 SDL2-static HINTS ${PC_SDL2_LIBDIR} ${PC_SDL2_LIBRARY_DIRS} @@ -87,7 +87,7 @@ IF(NOT SDL2_FOUND) set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR}) set(SDL2_LIBRARIES ${SDL2MAIN_LIBRARY} ${SDL2_LIBRARY}) if (WIN32) - set(SDL2_LIBRARIES ${SDL2_LIBRARIES} winmm imm32 version) + set(SDL2_LIBRARIES ${SDL2_LIBRARIES} winmm imm32 version setupapi) endif() include(FindPackageHandleStandardArgs) diff --git a/CMake/Packages/FindSDL2_image.cmake b/CMake/Packages/FindSDL2_image.cmake index 4f0bc5f17..857806b1f 100644 --- a/CMake/Packages/FindSDL2_image.cmake +++ b/CMake/Packages/FindSDL2_image.cmake @@ -41,7 +41,7 @@ IF(NOT SDL2_IMAGE_FOUND) ) find_library(SDL2_IMAGE_LIBRARY - NAMES SDL2_image + NAMES SDL2_image SDL2_image-static HINTS ${PC_SDL2_IMAGE_LIBDIR} ${PC_SDL2_IMAGE_LIBRARY_DIRS} ================================================ FILE: ports/mygui/vcpkg.json ================================================ { "name": "mygui", "version": "3.4.3", "port-version": 4, "description": "Fast, flexible and simple GUI", "homepage": "http://mygui.info", "license": "MIT", "supports": "!uwp", "dependencies": [ "freetype", "sdl2-image", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "obsolete": { "description": "Keep obsolete functions." }, "opengl": { "description": "Use OpenGL render system.", "supports": "!android", "dependencies": [ "opengl" ] }, "plugins": { "description": "Build MyGUI plugins." }, "tools": { "description": "Install MyGUI tools.", "supports": "!android" } } } ================================================ FILE: ports/mypaint-brushes/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/mypaint/mypaint-brushes/releases/download/v${VERSION}/mypaint-brushes-${VERSION}.tar.xz" FILENAME "mypaint-brushes-${VERSION}.tar.xz" SHA512 bae870e930381b818165e5e39d38b25782d5744c9a507a71dab37ae7ca2d4502896057f919a16eb9305d803a01db3a948a735d5c5b850893997a9afd6403144b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ) vcpkg_make_install() vcpkg_copy_pdbs() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/share/mypaint-brushes/pkgconfig/mypaint-brushes-2.0.pc" "${CURRENT_PACKAGES_DIR}/share/pkgconfig/mypaint-brushes-2.0.pc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/" "${CURRENT_PACKAGES_DIR}/share/mypaint-brushes/pkgconfig") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/mypaint-brushes/vcpkg.json ================================================ { "name": "mypaint-brushes", "version": "2.0.2", "description": "Data package. Brushes used by MyPaint and other software using libmypaint.", "homepage": "https://github.com/mypaint/mypaint-brushes", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/mysql-connector-cpp/cmake-project-include.cmake ================================================ #[[ vcpkg overloads find_package(). mysql-connector-cpp overloads find_dependency(). To force a strict order of desired effects and to prevent undesired effects, without heavy patching: 1. All pristine find_package() must be done here first. This is with pristine vcpkg toolchain find_package()/find_dependency(). 2. After that, find_package is overloaded to prevent loading of CMakeFindDependenyMacro. 3. mysql-connector-cpp installs and uses its custom find_dependency(). #]] set(THREADS_PREFER_PTHREAD_FLAG 1) find_package(Threads) find_package(OpenSSL REQUIRED) find_package(Protobuf CONFIG REQUIRED) #add_library(ext::protobuf ALIAS protobuf::libprotobuf) add_library(ext::protobuf-lite ALIAS protobuf::libprotobuf-lite) if(NOT TARGET ext::protoc) add_executable(ext::protoc IMPORTED) set_target_properties(ext::protoc PROPERTIES IMPORTED_LOCATION "${WITH_PROTOC}") endif() find_package(RapidJSON CONFIG REQUIRED) add_library(RapidJSON::rapidjson ALIAS RapidJSON) find_package(ZLIB REQUIRED) add_library(ext::z ALIAS ZLIB::ZLIB) find_package(lz4 REQUIRED) add_library(ext::lz4 ALIAS lz4::lz4) find_package(zstd REQUIRED) add_library(ext::zstd ALIAS zstd::libzstd) if(WITH_JDBC) find_package(unofficial-libmysql REQUIRED) find_path(errmsg_include_dir NAMES errmsg.h PATH_SUFFIXES mysql) set_property(TARGET unofficial::libmysql::libmysql APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${errmsg_include_dir}") add_library(MySQL::client ALIAS unofficial::libmysql::libmysql) file(READ "${errmsg_include_dir}/mysql_version.h" version_h) if(NOT version_h MATCHES "#define +MYSQL_SERVER_VERSION +\"([^\"]+)\"") message(FATAL_ERROR "Failed to detect libmysql version") endif() set(MYSQL_VERSION "${CMAKE_MATCH_1}") if(NOT version_h MATCHES "#define +MYSQL_VERSION_ID +([0-9]+)") message(FATAL_ERROR "Failed to detect libmysql version ID") endif() set(MYSQL_NUM_VERSION "${CMAKE_MATCH_1}") endif() set(known_packages Threads OpenSSL Protobuf RapidJSON ZLIB lz4 zstd unofficial-libmysql) cmake_policy(SET CMP0057 NEW) macro(find_package NAME) if(NOT "${NAME}" IN_LIST known_packages) message(SEND_ERROR "find_package(${NAME}) not handled in ${CMAKE_CURRENT_LIST_FILE}") endif() endmacro() ================================================ FILE: ports/mysql-connector-cpp/depfindprotobuf.diff ================================================ diff --git a/cdk/cmake/DepFindProtobuf.cmake b/cdk/cmake/DepFindProtobuf.cmake index 1fc785e..2ba7e99 100644 --- a/cdk/cmake/DepFindProtobuf.cmake +++ b/cdk/cmake/DepFindProtobuf.cmake @@ -44,9 +44,9 @@ # # -if(TARGET ext::protobuf) +if(COMMAND mysqlx_protobuf_generate_cpp) return() -endif() +elseif(0) message(STATUS "Setting up Protobuf.") @@ -66,6 +66,7 @@ add_ext_targets(protobuf ) +endif() # Standard PROTOBUF_GENERATE_CPP modified to our usage function(mysqlx_protobuf_generate_cpp SRCS HDRS) IF(NOT ARGN) ================================================ FILE: ports/mysql-connector-cpp/disable-telemetry.diff ================================================ diff --git a/jdbc/extra/otel/CMakeLists.txt b/jdbc/extra/otel/CMakeLists.txt index bbed9bd..d03e2ef 100644 --- a/jdbc/extra/otel/CMakeLists.txt +++ b/jdbc/extra/otel/CMakeLists.txt @@ -9,7 +9,9 @@ if(NOT (WIN32 OR APPLE OR CMAKE_SYSTEM_NAME MATCHES "SunOS")) message(STATUS "Adding OTel support") set(TELEMETRY ON CACHE INTERNAL "Whether connector is built with OTel support") +endif() +if(TELEMETRY) target_include_directories(otel_api INTERFACE "${PROJECT_SOURCE_DIR}/extra/otel/${OPENTELEMETRY_CPP_TAG}/api/include" ) ================================================ FILE: ports/mysql-connector-cpp/dont-preload-cache.diff ================================================ diff --git a/cdk/cmake/bootstrap.cmake b/cdk/cmake/bootstrap.cmake index dd597dd..3d9a41f 100644 --- a/cdk/cmake/bootstrap.cmake +++ b/cdk/cmake/bootstrap.cmake @@ -93,14 +93,7 @@ function(bootstrap) message("-- ----") - execute_process( - COMMAND ${CMAKE_COMMAND} - -G ${CMAKE_GENERATOR} - ${cmake_opts} - ${src_dir} - WORKING_DIRECTORY ${bin_dir} - RESULT_VARIABLE res - ) + set(res "Cache breaks vcpkg toolchain") #message(FATAL_ERROR "!!! STOP") ================================================ FILE: ports/mysql-connector-cpp/export-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 341ed2d..686b859 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -356,9 +356,11 @@ if(WITH_JDBC) # we use a copy of them placed inside the build tree. target_include_directories(connector-jdbc - PUBLIC "${PROJECT_BINARY_DIR}/include/jdbc" - PUBLIC "${PROJECT_BINARY_DIR}/include/jdbc/cppconn" - PUBLIC "${PROJECT_SOURCE_DIR}/include" + PUBLIC + "$" + "$" + "$" + "$" ) endif() @@ -417,7 +419,8 @@ add_version_info(connector ) target_include_directories(connector PUBLIC - "${PROJECT_SOURCE_DIR}/include" + $ + $ # Note: This is needed when using connector directly from the build tree to # find headers generated by the build process. $ @@ -537,23 +540,18 @@ set_target_properties(connector PROPERTIES install(TARGETS connector - CONFIGURATIONS Release RelWithDebInfo + EXPORT unofficial-mysql-connector-cpp-targets ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT XDevAPIDev - RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll + RUNTIME DESTINATION "bin" COMPONENT XDevAPIDll LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT XDevAPIDll ) -install(TARGETS connector - CONFIGURATIONS Debug - ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC_DEBUG}" COMPONENT XDevAPIDev - RUNTIME DESTINATION "${INSTALL_LIB_DIR_DEBUG}" COMPONENT XDevAPIDll - LIBRARY DESTINATION "${INSTALL_LIB_DIR_DEBUG}" COMPONENT XDevAPIDll -) if(MSVC AND NOT BUILD_STATIC) install(FILES $ CONFIGURATIONS RelWithDebInfo + Release DESTINATION "${INSTALL_LIB_DIR}" COMPONENT Debuginfo ) @@ -667,3 +665,15 @@ endif() show_config_options() + +include(CMakePackageConfigHelpers) +configure_package_config_file( + "${CMAKE_SOURCE_DIR}/mysql-connector-cpp-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mysql-connector-cpp-config.cmake" + INSTALL_DESTINATION "share/unofficial-mysql-connector-cpp" +) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-mysql-connector-cpp-config.cmake" DESTINATION "share/unofficial-mysql-connector-cpp") +install(EXPORT unofficial-mysql-connector-cpp-targets + NAMESPACE unofficial::mysql-connector-cpp:: + DESTINATION share/unofficial-mysql-connector-cpp +) diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index 159145f..4d4f7fe 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -164,7 +164,11 @@ function(merge_libraries TARGET) set_property(SOURCE "${LIBUTILS_SCRIPT_DIR}/empty.cc" PROPERTY LANGUAGE CXX) add_library(${TARGET} ${TYPE} "${LIBUTILS_SCRIPT_DIR}/empty.cc") + if(TYPE STREQUAL "SHARED") target_link_libraries(${TARGET} PRIVATE ${ARGN}) + else() # merged into whole archive + add_dependencies(${TARGET} ${ARGN}) + endif() # # Arrange for marge_archives.cmake script to be executed in a POST_BUILD diff --git a/jdbc/CMakeLists.txt b/jdbc/CMakeLists.txt index 60e36e4..7117213 100644 --- a/jdbc/CMakeLists.txt +++ b/jdbc/CMakeLists.txt @@ -341,24 +341,19 @@ endif() install(TARGETS connector-jdbc - CONFIGURATIONS Release RelWithDebInfo + EXPORT unofficial-mysql-connector-cpp-targets ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC}" COMPONENT JDBCDev - RUNTIME DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll + RUNTIME DESTINATION "bin" COMPONENT JDBCDll LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT JDBCDll ) -install(TARGETS connector-jdbc - CONFIGURATIONS Debug - ARCHIVE DESTINATION "${INSTALL_LIB_DIR_STATIC_DEBUG}" COMPONENT JDBCDev - RUNTIME DESTINATION "${INSTALL_LIB_DIR_DEBUG}" COMPONENT JDBCDll - LIBRARY DESTINATION "${INSTALL_LIB_DIR_DEBUG}" COMPONENT JDBCDll -) if(MSVC AND NOT BUILD_STATIC) install(FILES $ CONFIGURATIONS RelWithDebInfo + Release DESTINATION "${INSTALL_LIB_DIR}" COMPONENT Debuginfo ) ================================================ FILE: ports/mysql-connector-cpp/lib-name-static.diff ================================================ diff --git a/install_layout.cmake b/install_layout.cmake index 4a8a511..ee091da 100644 --- a/install_layout.cmake +++ b/install_layout.cmake @@ -219,7 +219,7 @@ set(LIB_NAME_BASE "mysqlcppconnx") set(LIB_NAME_STATIC "${LIB_NAME_BASE}-static") if(WIN32 AND STATIC_MSVCRT) - set(LIB_NAME_STATIC "${LIB_NAME}-mt") + set(LIB_NAME_STATIC "${LIB_NAME_STATIC}-mt") endif() if(BUILD_STATIC) diff --git a/jdbc/install_layout.cmake b/jdbc/install_layout.cmake index e9e15a5..a4f7dc0 100644 --- a/jdbc/install_layout.cmake +++ b/jdbc/install_layout.cmake @@ -91,7 +91,7 @@ set(LIB_NAME_BASE "mysqlcppconn") set(LIB_NAME_STATIC "${LIB_NAME_BASE}-static") if(WIN32 AND STATIC_MSVCRT) - set(LIB_NAME_STATIC "${LIB_NAME}-mt") + set(LIB_NAME_STATIC "${LIB_NAME_STATIC}-mt") endif() if(BUILD_STATIC) ================================================ FILE: ports/mysql-connector-cpp/merge-archives.diff ================================================ diff --git a/cmake/libutils/merge_archives.cmake.in b/cmake/libutils/merge_archives.cmake.in index 33094a6..5b256c6 100644 --- a/cmake/libutils/merge_archives.cmake.in +++ b/cmake/libutils/merge_archives.cmake.in @@ -299,7 +299,7 @@ function(merge_libraries_gcc) get_filename_component(name "${lib}" NAME_WE) # Make sure path is absolute - get_filename_component(lib "${lib}" ABSOLUTE) + get_filename_component(lib "${lib}" ABSOLUTE BASE_DIR "@PROJECT_BINARY_DIR@") #message("-- processing lib: ${name} (${lib})") @@ -564,6 +564,11 @@ function(process_deps) # ninja, for example. get_filename_component(libpath "${lib}" ABSOLUTE BASE_DIR "${BUILD_DIR}") + string(FIND "${libpath}/" "@PROJECT_BINARY_DIR@/" index) + if(NOT index STREQUAL "0") + message( "! Omitting ${lib}") + continue() + endif() if( lib MATCHES "${libext}$" ================================================ FILE: ports/mysql-connector-cpp/mysql-concpp-config.cmake ================================================ # Partial reimplementation of official interface include(CMakeFindDependencyMacro) find_dependency(unofficial-mysql-connector-cpp) set(suffix "") if("@BUILD_STATIC@") set(suffix "-static") endif() if(NOT TARGET mysql::concpp-xdevapi${suffix}) add_library(mysql::concpp${suffix} ALIAS unofficial::mysql-connector-cpp::connector) add_library(mysql::concpp-xdevapi${suffix} ALIAS unofficial::mysql-connector-cpp::connector) if(TARGET unofficial::mysql-connector-cpp::connector-jdbc) add_library(mysql::concpp-jdbc${suffix} ALIAS unofficial::mysql-connector-cpp::connector-jdbc) endif() endif() set(MYSQL_CONCPP_FOUND 1) set(MYSQL_CONCPP_VERSION "@VERSION@") set(mysql-concpp_VERSION "@VERSION@") ================================================ FILE: ports/mysql-connector-cpp/mysql-connector-cpp-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(Protobuf CONFIG) if(NOT "@BUILD_SHARED_LIBS@") find_dependency(Threads) find_dependency(OpenSSL) find_dependency(RapidJSON CONFIG) find_dependency(ZLIB) find_dependency(lz4) find_dependency(zstd) if("@WITH_JDBC@") find_dependency(unofficial-libmysql) endif() endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-mysql-connector-cpp-targets.cmake") if(NOT UNOFFICIAL_MYSQL_CONNECTOR_CPP_INITIALIZED) if(NOT "@BUILD_SHARED_LIBS@") set_target_properties(unofficial::mysql-connector-cpp::connector PROPERTIES INTERFACE_LINK_LIBRARIES "$;$;$;$;$;$;$" ) # Cf. mysql-concpp-config.cmake.in if(WIN32) set_property(TARGET unofficial::mysql-connector-cpp::connector APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dnsapi") elseif(NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set_property(TARGET unofficial::mysql-connector-cpp::connector APPEND PROPERTY INTERFACE_LINK_LIBRARIES "resolv;dl") endif() if("@WITH_JDBC@") set_target_properties(unofficial::mysql-connector-cpp::connector-jdbc PROPERTIES INTERFACE_LINK_LIBRARIES "$" ) # Cf. jdbc/driver/CMakeLists.txt if(WIN32) set_property(TARGET unofficial::mysql-connector-cpp::connector-jdbc APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dnsapi") elseif(NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD") set_property(TARGET unofficial::mysql-connector-cpp::connector-jdbc APPEND PROPERTY INTERFACE_LINK_LIBRARIES "resolv;dl") endif() endif() endif() set_property(TARGET unofficial::mysql-connector-cpp::connector APPEND PROPERTY INTERFACE_LINK_LIBRARIES "$" ) set(UNOFFICIAL_MYSQL_CONNECTOR_CPP_INITIALIZED 1 CACHE INTERNAL "") endif() check_required_components(mysql-connector-cpp) ================================================ FILE: ports/mysql-connector-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mysql/mysql-connector-cpp REF "${VERSION}" SHA512 aa432822d4c9d7f1328bf59e261c362570f6b2237a5a9f730f96f079aba14bdc689f400ab2857c4cdd1dca025eb09eaaf2b26328f3b42d117f24b9182dc2cc0a HEAD_REF master PATCHES depfindprotobuf.diff disable-telemetry.diff dont-preload-cache.diff lib-name-static.diff merge-archives.diff save-linker-opts.diff export-targets.patch protobuf-source.patch # Disables upstream log event handling! ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/mysql-connector-cpp-config.cmake.in" DESTINATION "${SOURCE_PATH}") file(REMOVE_RECURSE "${SOURCE_PATH}/cdk/extra/common" "${SOURCE_PATH}/cdk/extra/exprtest" "${SOURCE_PATH}/cdk/extra/lz4" "${SOURCE_PATH}/cdk/extra/ngs_mockup" "${SOURCE_PATH}/cdk/extra/process_launcher" "${SOURCE_PATH}/cdk/extra/protobuf" "${SOURCE_PATH}/cdk/extra/rapidjson" "${SOURCE_PATH}/cdk/extra/zlib" "${SOURCE_PATH}/cdk/extra/zstd" "${SOURCE_PATH}/jdbc/extra/otel/opentelemetry-cpp-1.12.0" ) vcpkg_check_features( OUT_FEATURE_OPTIONS options FEATURES jdbc WITH_JDBC ) if(VCPKG_CROSSCOMPILING AND EXISTS "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/save_linker_opts${VCPKG_HOST_EXECUTABLE_SUFFIX}") vcpkg_list(APPEND options "-DWITH_SAVE_LINKER_OPTS=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/save_linker_opts${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_MSVCRT) # Preparing to merge STATIC library: connector (xapi;devapi) # CMake Error at cmake/libutils.cmake:297 (message): # Sorry but building static connector on Windows using MSVC toolset works # only with msbuild at the moment. # Call Stack (most recent call first): # CMakeLists.txt:413 (merge_libraries) set(USE_MSBUILD_ARG) if(BUILD_STATIC) set(USE_MSBUILD_ARG WINDOWS_USE_MSBUILD) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${USE_MSBUILD_ARG} OPTIONS ${options} "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" "-DWITH_PROTOC=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DBUILD_STATIC=${BUILD_STATIC} -DMYSQLCLIENT_STATIC_LINKING=${BUILD_STATIC} -DSTATIC_MSVCRT=${STATIC_MSVCRT} -DINSTALL_LIB_DIR=lib -DINSTALL_LIB_DIR_DEBUG=lib -DINSTALL_LIB_DIR_STATIC=lib -DINSTALL_LIB_DIR_STATIC_DEBUG=lib -DTELEMETRY=OFF -DWITH_DOC=OFF -DWITH_HEADER_CHECKS=OFF -DWITH_SSL=system -DWITH_TESTS=OFF MAYBE_UNUSED_VARIABLES TELEMETRY ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-mysql-connector-cpp) configure_file("${CURRENT_PORT_DIR}/mysql-concpp-config.cmake" "${CURRENT_PACKAGES_DIR}/share/mysql-concpp/mysql-concpp-config.cmake" @ONLY) if(NOT VCPKG_CROSSCOMPILING AND EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libutils/save_linker_opts${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tools(TOOL_NAMES save_linker_opts SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libutils" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" ) endif() if(BUILD_STATIC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/mysqlx/common/api.h" "defined STATIC_CONCPP" "(1)") if(WITH_JDBC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/jdbc/cppconn/build_config.h" "ifdef STATIC_CONCPP" "if 1") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/INFO_BIN" "${CURRENT_PACKAGES_DIR}/INFO_SRC" "${CURRENT_PACKAGES_DIR}/debug/INFO_BIN" "${CURRENT_PACKAGES_DIR}/debug/INFO_SRC" "${CURRENT_PACKAGES_DIR}/mysql-concpp-config.cmake" "${CURRENT_PACKAGES_DIR}/mysql-concpp-config-version.cmake" "${CURRENT_PACKAGES_DIR}/debug/mysql-concpp-config.cmake" "${CURRENT_PACKAGES_DIR}/debug/mysql-concpp-config-version.cmake" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/mysql-connector-cpp/protobuf-source.patch ================================================ diff --git a/cdk/protocol/mysqlx/protocol.cc b/cdk/protocol/mysqlx/protocol.cc index d4589c27..c61deca4 100644 --- a/cdk/protocol/mysqlx/protocol.cc +++ b/cdk/protocol/mysqlx/protocol.cc @@ -117,18 +117,15 @@ namespace mysqlx { Protobuf log handler initialization. */ -static void log_handler(LogLevel level, const char* filename, int line, const std::string& message); #ifdef _WIN32 BOOL CALLBACK log_handler_init(PINIT_ONCE, PVOID, PVOID*) { - SetLogHandler(&log_handler); return TRUE; } #else static void log_handler_init() { - SetLogHandler(log_handler); } #endif @@ -289,37 +286,6 @@ Message* mk_message(Protocol_side side, msg_type_t msg_type) situation occurs in Protobuf (such as parsing error etc). */ -static void log_handler( - LogLevel level, const char* /*filename*/, int /*line*/, - const std::string& message -) -{ - switch(level) - { - case LOGLEVEL_FATAL: - case LOGLEVEL_ERROR: - /* - With this code the error description is: - - MMM: Protobuf error (cdk:NNN) - - where MMM is the message and NNN is the protbuf error code. - - TODO: Change description to: - - Protobuf error: MMM (cdk:NNN) - */ - throw_error(cdkerrc::protobuf_error, message); - - case LOGLEVEL_WARNING: - case LOGLEVEL_INFO: - default: - { - // just ignore for now - // TODO: this could be used for logging in the future - } - } -} /* Implementation of protobuf's ZeroCopyOutputStream which stores ================================================ FILE: ports/mysql-connector-cpp/save-linker-opts.diff ================================================ diff --git a/cmake/libutils.cmake b/cmake/libutils.cmake index 848b7cf..159145f 100644 --- a/cmake/libutils.cmake +++ b/cmake/libutils.cmake @@ -236,8 +236,9 @@ function(merge_libraries TARGET) # add_dependencies(${TARGET}-deps save_linker_opts) + set(WITH_SAVE_LINKER_OPTS "${LIBUTILS_BIN_DIR}/save_linker_opts" CACHE FILEPATH "") set_target_properties(${TARGET}-deps PROPERTIES - RULE_LAUNCH_LINK "${LIBUTILS_BIN_DIR}/save_linker_opts ${log_file}.STATIC " + RULE_LAUNCH_LINK "${WITH_SAVE_LINKER_OPTS} ${log_file}.STATIC " ) # Arrange for ${TARGET}-deps to be built before ${TARGET} @@ -255,7 +256,7 @@ function(merge_libraries TARGET) # set_target_properties(${TARGET} PROPERTIES - RULE_LAUNCH_LINK "${LIBUTILS_BIN_DIR}/save_linker_opts ${log_file}.SHARED " + RULE_LAUNCH_LINK "${WITH_SAVE_LINKER_OPTS} ${log_file}.SHARED " ) else(NOT MSVC) ================================================ FILE: ports/mysql-connector-cpp/vcpkg.json ================================================ { "name": "mysql-connector-cpp", "version": "9.1.0", "port-version": 4, "description": "This is a release of MySQL Connector/C++, the C++ interface for communicating with MySQL servers.", "homepage": "https://github.com/mysql/mysql-connector-cpp", "license": null, "supports": "!android & !uwp", "dependencies": [ "lz4", { "name": "mysql-connector-cpp", "host": true, "platform": "!windows | mingw" }, "openssl", "protobuf", { "name": "protobuf", "host": true }, "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ], "features": { "jdbc": { "description": "Legacy C++ API based on the JDBC4 specification.", "supports": "static", "dependencies": [ "libmysql" ] } } } ================================================ FILE: ports/mysvac-jsonlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Mysvac/cpp-jsonlib REF "v${VERSION}" SHA512 8bc16ec0085a88922e24595fa2311f0b8acf95a1e9eb33fa09ab871acb457d6aa0b2073b0f7f73adb14b26eadd5112f3427fc34d691027dd0d2fee43d187d401 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/mysvac-jsonlib/usage ================================================ mysvac-jsonlib provides CMake targets: find_package(mysvac-jsonlib CONFIG REQUIRED) target_link_mysvac_jsonlib(main PRIVATE) ================================================ FILE: ports/mysvac-jsonlib/vcpkg.json ================================================ { "name": "mysvac-jsonlib", "version": "3.0.0", "description": "A lightweight and efficient C++20 JSON library.", "homepage": "https://github.com/Mysvac/cpp-jsonlib", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/mzying2001-sw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Mzying2001/sw REF ${VERSION} SHA512 e454d29ef8f6c7fb966a50288abd71e9ad5c0f3a50348b2bda177c77497101324f3c42007802fce053426ae4262991319c1cfbda84d3ba5c36a2db5819922e0f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH}/sw ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME sw CONFIG_PATH share/mzying2001-sw ) vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) ================================================ FILE: ports/mzying2001-sw/vcpkg.json ================================================ { "name": "mzying2001-sw", "version": "0.1.0", "description": "A C++ GUI framework for building Windows desktop applications.", "homepage": "https://github.com/Mzying2001/sw", "license": "MIT", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nameof/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Neargye/nameof REF "v${VERSION}" SHA512 88eff4fb9a137c388b39d67eb9e213ed93e6a553dd1295d5db04c6fbc254f6df3da8800de2e0675f574bb3f83ae05141f71efe30ccdd4601a42cf19adaea6e79 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNAMEOF_OPT_BUILD_EXAMPLES=OFF -DNAMEOF_OPT_BUILD_TESTS=OFF -DNAMEOF_OPT_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nameof/usage ================================================ nameof provides CMake targets: find_package(nameof CONFIG REQUIRED) target_link_libraries(main PRIVATE nameof::nameof) ================================================ FILE: ports/nameof/vcpkg.json ================================================ { "name": "nameof", "version": "0.10.4", "description": "Nameof operator for modern C++, simply obtain the name of a variable, type, function, macro, and enum.", "homepage": "https://github.com/Neargye/nameof", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nana/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR) project(nana VERSION 1.7.4 LANGUAGES CXX) option(NANA_ENABLE_PNG "Enable PNG support" OFF) option(NANA_ENABLE_JPEG "Enable JPEG support" OFF) option(NANA_INSTALL_HEADERS "Install headers" ON) if(APPLE) add_definitions(-DAPPLE) elseif(UNIX) add_definitions(-Dlinux) endif() file(GLOB_RECURSE headers include/*.hpp) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/include PREFIX "include" FILES ${headers}) file(GLOB sources source/*.hpp source/*.cpp) foreach(subdir detail filesystem gui paint system threads) file(GLOB_RECURSE sources_subdir source/${subdir}/*.hpp source/${subdir}/*.cpp) list(APPEND sources ${sources_subdir}) endforeach() source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR}/source PREFIX "source" FILES ${sources}) add_library(nana ${headers} ${sources}) target_include_directories(nana PUBLIC $ $) target_compile_features(nana PUBLIC cxx_std_17) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") target_link_libraries(nana PUBLIC c++experimental) endif() if(CMAKE_CXX_COMPILER_ID MATCHES "GCC") target_link_libraries(nana PUBLIC stdc++fs) endif() if(UNIX) find_package(Threads REQUIRED) target_link_libraries(nana PUBLIC Threads::Threads) find_package(Freetype REQUIRED) target_link_libraries(nana PUBLIC Freetype::Freetype) find_package(X11 REQUIRED) target_include_directories(nana PUBLIC ${X11_INCLUDE_DIR}) target_link_libraries(nana PUBLIC ${X11_LIBRARIES} ${X11_Xft_LIB}) find_package(Fontconfig REQUIRED) target_link_libraries(nana PUBLIC Fontconfig::Fontconfig) endif() if(NANA_ENABLE_PNG) find_package(PNG REQUIRED) target_link_libraries(nana PUBLIC PNG::PNG) target_compile_definitions(nana PUBLIC NANA_ENABLE_PNG=1 USE_LIBPNG_FROM_OS=1) endif() if(NANA_ENABLE_JPEG) find_package(JPEG REQUIRED) target_include_directories(nana PUBLIC ${JPEG_INCLUDE_DIR}) target_link_libraries(nana PUBLIC $) target_compile_definitions(nana PUBLIC NANA_ENABLE_JPEG=1 USE_LIBJPEG_FROM_OS=1) endif() install(TARGETS nana EXPORT nana RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) if(NANA_INSTALL_HEADERS) install(DIRECTORY include/nana DESTINATION include) endif() include(CMakePackageConfigHelpers) configure_package_config_file(config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake INSTALL_DESTINATION share/unofficial-nana) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config.cmake DESTINATION share/unofficial-nana) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nana-config-version.cmake DESTINATION share/unofficial-nana) install(EXPORT nana FILE unofficial-nana-targets.cmake NAMESPACE unofficial::nana:: DESTINATION share/unofficial-nana) ================================================ FILE: ports/nana/config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) if(UNIX) find_dependency(Threads) find_dependency(Freetype) find_dependency(X11) find_dependency(Fontconfig) endif() option(NANA_ENABLE_PNG "Enable PNG support" @NANA_ENABLE_PNG@) option(NANA_ENABLE_JPEG "Enable JPEG support" @NANA_ENABLE_JPEG@) if(NANA_ENABLE_PNG) find_dependency(PNG) endif() if(NANA_ENABLE_JPEG) find_dependency(JPEG) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-nana-targets.cmake") if(UNIX) target_link_libraries(unofficial::nana::nana INTERFACE Fontconfig::Fontconfig ${X11_LIBRARIES} ${X11_Xft_LIB}) endif() if(NANA_ENABLE_JPEG) target_link_libraries(unofficial::nana::nana INTERFACE ${JPEG_LIBRARIES}) endif() ================================================ FILE: ports/nana/fix-build-error.patch ================================================ diff --git a/source/system/split_string.cpp b/source/system/split_string.cpp index 8269db6..c40016b 100644 --- a/source/system/split_string.cpp +++ b/source/system/split_string.cpp @@ -18,7 +18,7 @@ std::vector split_string (const split_string_type& text, char sep_pos = text.find(sep, sep_pos); sep_pos = (text.npos == sep_pos ? text.size() : sep_pos); const std::size_t end = sep_pos; - while (sep_pos < text.size() and sep == text[sep_pos]) { + while (sep_pos < text.size() && sep == text[sep_pos]) { ++sep_pos; } ================================================ FILE: ports/nana/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(NOT VCPKG_TARGET_IS_WINDOWS) message(WARNING "You will need to install Xorg dependencies to use nana:\napt install libx11-dev libxft-dev libxcursor-dev\n") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cnjinhao/nana REF 554c4fe87fc31b8ee104228e9117d545d34855b5 # v1.7.4 SHA512 d9db8ea1bd47fe663b8e2443a1a3e279760dbd11ef6bc78d9dc8f6fd12f9736b8c8315dfc84d21325e02ad6b2dc3a429593ac80e7610097ddc7253668c383178 HEAD_REF develop PATCHES fix-build-error.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNANA_ENABLE_PNG=ON -DNANA_ENABLE_JPEG=ON OPTIONS_DEBUG -DNANA_INSTALL_HEADERS=OFF) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-nana) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nana/vcpkg.json ================================================ { "name": "nana", "version": "1.7.4", "port-version": 5, "description": "Cross-platform library for GUI programming in modern C++ style.", "homepage": "https://github.com/cnjinhao/nana", "supports": "!uwp", "dependencies": [ { "name": "fontconfig", "platform": "!uwp & !windows & !mingw" }, { "name": "freetype", "platform": "!uwp & !windows & !mingw" }, "libjpeg-turbo", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nano-signal-slot/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NoAvailableAlias/nano-signal-slot REF 7e237d75e72501109d1276d7c0c97b33e9d7caf1 SHA512 a998e59bfded36d9fe2c88d8f3c5229db4fa3c02062f218267f070f4809f63d0bad07300d3cf1f60141ab84bb1802402ac11de06159df6af460f0be4c47f8b9a HEAD_REF master ) file(GLOB INCLUDES ${SOURCE_PATH}/*.hpp) file(INSTALL ${INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/nano-signal-slot/vcpkg.json ================================================ { "name": "nano-signal-slot", "version": "2.0.1", "port-version": 2, "description": "Pure C++17 Signals and Slots", "homepage": "https://github.com/NoAvailableAlias/nano-signal-slot", "supports": "!uwp" } ================================================ FILE: ports/nanoarrow/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/arrow/apache-arrow-nanoarrow-${VERSION}/apache-arrow-nanoarrow-${VERSION}.tar.gz" FILENAME "apache-arrow-nanoarrow-${VERSION}.tar.gz" SHA512 98f9f4c8dada0175e39e02d2baa01d0f63ad94636925cd289cbffa423de26bf0ede437aaa1ec10ff91e7d375e72cfddd950d040602520ab7891ab4c6337ce4f7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(REMOVE_RECURSE "${SOURCE_PATH}/thirdparty") string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} "dynamic" NANOARROW_INSTALL_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNANOARROW_INSTALL_SHARED=${NANOARROW_INSTALL_SHARED} -DNANOARROW_DEBUG_EXTRA_WARNINGS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME nanoarrow CONFIG_PATH lib/cmake/nanoarrow DO_NOT_DELETE_PARENT_CONFIG_PATH ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake" "${CURRENT_PACKAGES_DIR}/lib/cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nanoarrow/vcpkg.json ================================================ { "name": "nanoarrow", "version": "0.8.0", "port-version": 1, "description": "Helpers for Arrow C Data & Arrow C Stream interfaces", "homepage": "https://arrow.apache.org/nanoarrow", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanobench/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(nanobench LANGUAGES CXX) include(GNUInstallDirs) add_library(nanobench STATIC "${CMAKE_SOURCE_DIR}/src/test/app/nanobench.cpp") add_library(nanobench::nanobench ALIAS nanobench) set_property(TARGET nanobench PROPERTY CXX_STANDARD 17) target_include_directories(nanobench PUBLIC "$" "$") install(TARGETS nanobench EXPORT nanobench) install( EXPORT nanobench FILE nanobench-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/nanobench" NAMESPACE nanobench:: ) install(FILES "${CMAKE_SOURCE_DIR}/src/include/nanobench.h" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") ================================================ FILE: ports/nanobench/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinus/nanobench REF "v${VERSION}" SHA512 88697cc87e99b8c17f004dbd39efee664145b86d9feec02f5dba0d84be88e9bd272e537f392e670445d849f0d3c852b9870aea650d84968ee6fbc23a56bcff64 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nanobench/usage ================================================ nanobench provides CMake targets: find_package(nanobench CONFIG REQUIRED) target_link_libraries(main PRIVATE nanobench::nanobench) ================================================ FILE: ports/nanobench/vcpkg.json ================================================ { "name": "nanobench", "version": "4.3.11", "description": "Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20", "homepage": "https://nanobench.ankerl.com", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanobind/portfile.cmake ================================================ # nanobind distributes source code to build on-demand. # The source code is installed into the 'share/${PORT}' directory with # subdirectories for source `src` and header `include` files set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wjakob/nanobind REF "v${VERSION}" SHA512 a187f0efae1833b2caeaff41074a3d8fbd866ee1874aac088ffd5daf026aeaa6a73a8943b682bd39ef59b755e36b73a221eaf71343a28351dce0c8f284debdd9 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNB_USE_SUBMODULE_DEPS:BOOL=OFF -DNB_TEST:BOOL=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nanobind/usage ================================================ The package nanobind provides CMake functions and source code rather than libraries: find_package(nanobind REQUIRED) nanobind_add_module(my_ext source.cpp) # See docs for more configuration options # https://nanobind.readthedocs.io/en/latest/api_cmake.html ================================================ FILE: ports/nanobind/vcpkg.json ================================================ { "name": "nanobind", "version-semver": "2.12.0", "description": "Tiny and efficient C++/Python bindings", "homepage": "https://nanobind.readthedocs.io/en/latest/", "license": "BSD-3-Clause", "dependencies": [ "python3", "robin-map", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/nanodbc/add-missing-include.patch ================================================ diff --git a/nanodbc/nanodbc.cpp b/nanodbc/nanodbc.cpp index e6ca73f..3ad724a 100644 --- a/nanodbc/nanodbc.cpp +++ b/nanodbc/nanodbc.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include #include ================================================ FILE: ports/nanodbc/find-unixodbc.patch ================================================ --- "a/CMakeLists.txt" +++ "b/CMakeLists.txt" @@ -110,6 +110,13 @@ message(STATUS "nanodbc feature: Enable SQL_NO_DATA bug workaround - ${NANODBC_E ## find unixODBC or iODBC config binary ######################################## if(UNIX) + # Try to find unixodbc package first + find_package(unixodbc) + if(unixodbc_FOUND) + message(STATUS "nanodbc build: unixODBC package found") + set(ODBCLIB UNIX::odbc) + set(ODBC_CONFIG true) + else() # Try to find unixODBC first via odbc_config program. find_program(ODBC_CONFIG odbc_config PATHS $ENV{ODBC_PATH}/bin /usr/bin /usr/local/bin) @@ -158,6 +165,7 @@ if(UNIX) endif() endif() endif() + endif() if(NOT ODBC_CONFIG) message(FATAL_ERROR "can not find a suitable odbc driver manager") ================================================ FILE: ports/nanodbc/no-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ce7232..57836fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ set(CMAKE_CXX_EXTENSIONS OFF) message(STATUS "nanodbc compile: C++${CMAKE_CXX_STANDARD}") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") include(CheckCXXCompilerFlag) if (NANODBC_ENABLE_COVERAGE) ================================================ FILE: ports/nanodbc/portfile.cmake ================================================ # Only static libraries are supported. # See https://github.com/nanodbc/nanodbc/issues/13 vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nanodbc/nanodbc REF 7404a4dd7697e188df5724ab95a7553d2fc404eb # v2.13.0 SHA512 35ca098e783d771f3df611bce84e9b8207a6a5b72c492d2f3909977bc91a7c22bb262c34768b0d97ebfbdf12eeda0214064a8ea171e7bdda7b759f93ff346f45 HEAD_REF master PATCHES rename-version.patch add-missing-include.patch find-unixodbc.patch no-werror.patch ) file(RENAME "${SOURCE_PATH}/VERSION" "${SOURCE_PATH}/VERSION.txt") if(DEFINED NANODBC_ODBC_VERSION) set(NANODBC_ODBC_VERSION -DNANODBC_ODBC_VERSION=${NANODBC_ODBC_VERSION}) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNANODBC_DISABLE_EXAMPLES=ON -DNANODBC_DISABLE_TESTS=ON -DNANODBC_ENABLE_UNICODE=OFF ${NANODBC_ODBC_VERSION} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nanodbc/rename-version.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ ######################################## ## nanodbc version ######################################## -file(STRINGS VERSION NANODBC_VERSION REGEX "[0-9]+\\.[0-9]+\\.[0-9]+") +file(STRINGS "VERSION.txt" NANODBC_VERSION REGEX "[0-9]+\\.[0-9]+\\.[0-9]+") string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+" "\\1" NANODBC_VERSION_MAJOR "${NANODBC_VERSION}") string(REGEX REPLACE "^[0-9]+\\.([0-9])+\\.[0-9]+" "\\1" NANODBC_VERSION_MINOR "${NANODBC_VERSION}") string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+)" "\\1" NANODBC_VERSION_PATCH "${NANODBC_VERSION}") message(STATUS "nanodbc version: ${NANODBC_VERSION}") ================================================ FILE: ports/nanodbc/vcpkg.json ================================================ { "name": "nanodbc", "version": "2.13.0", "port-version": 8, "description": "A small C++ wrapper for the native C ODBC API.", "homepage": "https://github.com/nanodbc/nanodbc", "supports": "!uwp", "dependencies": [ { "name": "unixodbc", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanoflann/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jlblancoc/nanoflann REF "v${VERSION}" SHA512 414da00a553f473fe8c541178a60cecb2b27039e31d434ebb7059f8337f3e4fb9fdacf312444692a9a48a9cd1efd129a0aa2e7b80409e053d529aae7e736a840 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNANOFLANN_BUILD_EXAMPLES=OFF -DNANOFLANN_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${CURRENT_PACKAGES_DIR}/share/nanoflann/nanoflannConfig.cmake" _contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/nanoflann/nanoflannConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(Threads) ${_contents}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/nanoflann/vcpkg.json ================================================ { "name": "nanoflann", "version": "1.9.0", "description": "nanoflann is a C++11 header-only library for building KD-Trees of datasets with different topologies: R2, R3 (point clouds), SO(2) and SO(3) (2D and 3D rotation groups).", "homepage": "https://github.com/jlblancoc/nanoflann", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanogui/cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 22dc16fc59..894fcce2ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,7 +116,7 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES " set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra") endif() -if (CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|Intel)$") +if (CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang|Intel)$") CHECK_CXX_COMPILER_FLAG("-std=c++14" HAS_CPP14_FLAG) CHECK_CXX_COMPILER_FLAG("-std=c++11" HAS_CPP11_FLAG) @@ -131,7 +131,7 @@ endif() # Various optimizations for shared library release builds if (NANOGUI_BUILD_SHARED) - if (U_CMAKE_BUILD_TYPE MATCHES REL AND CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang)$") + if (U_CMAKE_BUILD_TYPE MATCHES REL AND CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$") # Set the default symbol visibility to hidden if (NOT CMAKE_CXX_FLAGS MATCHES "-fvisibility") set(CMAKE_CXX_FLAGS "-fvisibility=hidden ${CMAKE_CXX_FLAGS}") ================================================ FILE: ports/nanogui/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c59277..3fe6f5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,11 +11,7 @@ if (POLICY CMP0058) cmake_policy(SET CMP0058 NEW) endif() -if (NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/ext/glfw/src") - message(FATAL_ERROR "The NanoGUI dependency repositories (GLFW, etc.) are missing! " - "You probably did not clone the project with --recursive. It is possible to recover " - "by calling \"git submodule update --init --recursive\"") -endif() + if (WIN32) set(NANOGUI_USE_GLAD_DEFAULT ON) @@ -78,13 +74,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations") endif() -add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/ext/glfw" "ext_build/glfw") # Two targets have now been defined: `glfw_objects`, which will be merged into # NanoGUI at the end, and `glfw`. The `glfw` target is the library itself # (e.g., libglfw.so), but can be skipped as we do not need to link against it # (because we merge `glfw_objects` into NanoGUI). Skipping is required for # XCode, but preferable for all build systems (reduces build artifacts). -set_target_properties(glfw PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1) # Python support: add NANOGUI_PYTHON flag to all targets if (NANOGUI_BUILD_PYTHON) @@ -310,7 +304,6 @@ add_definitions(${NANOGUI_EXTRA_DEFS}) # Compile main NanoGUI library add_library(nanogui-obj OBJECT # Merge NanoVG into the NanoGUI library - ext/nanovg/src/nanovg.c # Merge GLAD into the NanoGUI library (only if needed) ${LIBNANOGUI_EXTRA_SOURCE} # Fonts etc. @@ -352,6 +345,11 @@ add_library(nanogui-obj OBJECT src/serializer.cpp ) +find_path(EIGEN_INCLUDE_DIR Eigen/Core) +target_include_directories(nanogui-obj PRIVATE ${EIGEN_INCLUDE_DIR}) +find_path(STB_INCLUDE_DIR stb_image.h) +target_include_directories(nanogui-obj PRIVATE ${STB_INCLUDE_DIR}) + # XCode has a serious bug where the XCode project produces an invalid target # that will not get linked if it consists only of objects from object libraries, # it will not generate any products (executables, libraries). The only work @@ -363,15 +361,18 @@ if (CMAKE_GENERATOR STREQUAL Xcode) add_library(nanogui ${NANOGUI_LIBRARY_TYPE} ${XCODE_DUMMY} $ - $ ) else() add_library(nanogui ${NANOGUI_LIBRARY_TYPE} $ - $ ) endif() +find_package(nanovg CONFIG REQUIRED) +find_package(Eigen3 CONFIG REQUIRED) +find_package(glfw3 CONFIG REQUIRED) +target_link_libraries(nanogui glfw nanovg::nanovg Eigen3::Eigen) + if (NANOGUI_BUILD_SHARED) set_property(TARGET nanogui-obj PROPERTY POSITION_INDEPENDENT_CODE ON) endif() ================================================ FILE: ports/nanogui/fix-glad-dependence.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fe6f5d..22dc16f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,7 +87,7 @@ endif() # Shared library mode: add dllimport/dllexport flags to all symbols if (NANOGUI_BUILD_SHARED) - list(APPEND NANOGUI_EXTRA_DEFS -DNANOGUI_SHARED -DNVG_SHARED -DGLAD_GLAPI_EXPORT) + list(APPEND NANOGUI_EXTRA_DEFS -DNANOGUI_SHARED -DNVG_SHARED) endif() if (MSVC) @@ -196,21 +196,6 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() endif() -if (NANOGUI_USE_GLAD) - # Build and include GLAD on Windows - list(APPEND LIBNANOGUI_EXTRA_SOURCE - "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c" - "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include/glad/glad.h" - "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include/KHR/khrplatform.h") - if (MSVC) - set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c" - PROPERTIES COMPILE_FLAGS "/wd4055 ") - endif() - include_directories(ext/glad/include) - list(APPEND NANOGUI_EXTRA_DEFS -DNANOGUI_GLAD) - list(APPEND NANOGUI_EXTRA_INCS "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include") -endif() - list(APPEND NANOGUI_EXTRA_INCS "${CMAKE_CURRENT_SOURCE_DIR}/ext/glfw/include" "${CMAKE_CURRENT_SOURCE_DIR}/ext/nanovg/src" @@ -299,8 +284,6 @@ if (APPLE) add_compile_options(-fobjc-arc) endif() -add_definitions(${NANOGUI_EXTRA_DEFS}) - # Compile main NanoGUI library add_library(nanogui-obj OBJECT # Merge NanoVG into the NanoGUI library @@ -373,6 +356,14 @@ find_package(Eigen3 CONFIG REQUIRED) find_package(glfw3 CONFIG REQUIRED) target_link_libraries(nanogui glfw nanovg::nanovg Eigen3::Eigen) +if (NANOGUI_USE_GLAD) + find_package(glad CONFIG REQUIRED) + target_link_libraries(nanogui glad::glad) + list(APPEND NANOGUI_EXTRA_DEFS -DNANOGUI_GLAD) +endif() + +add_definitions(${NANOGUI_EXTRA_DEFS}) + if (NANOGUI_BUILD_SHARED) set_property(TARGET nanogui-obj PROPERTY POSITION_INDEPENDENT_CODE ON) endif() @@ -380,11 +371,6 @@ endif() # Compile/link flags for NanoGUI set_property(TARGET nanogui-obj APPEND PROPERTY COMPILE_DEFINITIONS "NANOGUI_BUILD;NVG_BUILD") -if (NANOGUI_USE_GLAD AND NANOGUI_BUILD_SHARED) - set_property(TARGET nanogui-obj APPEND PROPERTY COMPILE_DEFINITIONS - "GLAD_GLAPI_EXPORT;GLAD_GLAPI_EXPORT_BUILD") -endif() - if (NANOGUI_BUILD_SHARED) target_link_libraries(nanogui ${NANOGUI_EXTRA_LIBS}) endif() diff --git a/include/nanogui/opengl.h b/include/nanogui/opengl.h index f5abcb2..1c20653 100644 --- a/include/nanogui/opengl.h +++ b/include/nanogui/opengl.h @@ -17,10 +17,6 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS #if defined(NANOGUI_GLAD) - #if defined(NANOGUI_SHARED) && !defined(GLAD_GLAPI_EXPORT) - #define GLAD_GLAPI_EXPORT - #endif - #include #else #if defined(__APPLE__) diff --git a/src/example3.cpp b/src/example3.cpp index 3d2ecfa..72deaa8 100644 --- a/src/example3.cpp +++ b/src/example3.cpp @@ -14,10 +14,6 @@ // GLFW // #if defined(NANOGUI_GLAD) - #if defined(NANOGUI_SHARED) && !defined(GLAD_GLAPI_EXPORT) - #define GLAD_GLAPI_EXPORT - #endif - #include #else #if defined(__APPLE__) ================================================ FILE: ports/nanogui/fix-release-build.patch ================================================ diff --git a/src/glcanvas.cpp b/src/glcanvas.cpp index ec1ca4f..6ebf5a9 100644 --- a/src/glcanvas.cpp +++ b/src/glcanvas.cpp @@ -18,6 +18,7 @@ #include #include #include +#include NAMESPACE_BEGIN(nanogui) diff --git a/src/imageview.cpp b/src/imageview.cpp index 80cdf9b..f0ebbaf 100644 --- a/src/imageview.cpp +++ b/src/imageview.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include NAMESPACE_BEGIN(nanogui) diff --git a/src/stackedwidget.cpp b/src/stackedwidget.cpp index 0b56b31..16b07cc 100644 --- a/src/stackedwidget.cpp +++ b/src/stackedwidget.cpp @@ -13,6 +13,7 @@ */ #include +#include NAMESPACE_BEGIN(nanogui) diff --git a/src/tabheader.cpp b/src/tabheader.cpp index e3a24ff..86e1493 100644 --- a/src/tabheader.cpp +++ b/src/tabheader.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include NAMESPACE_BEGIN(nanogui) diff --git a/src/tabwidget.cpp b/src/tabwidget.cpp index e01b5c3..0a3f76c 100644 --- a/src/tabwidget.cpp +++ b/src/tabwidget.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include NAMESPACE_BEGIN(nanogui) diff --git a/src/widget.cpp b/src/widget.cpp index 03af6b1..68318a8 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -16,6 +16,7 @@ #include #include #include +#include NAMESPACE_BEGIN(nanogui) ================================================ FILE: ports/nanogui/portfile.cmake ================================================ if(VCPKG_HOST_IS_WINDOWS) set(USE_GLAD -DNANOGUI_USE_GLAD=ON) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) else() set(USE_GLAD -DNANOGUI_USE_GLAD=OFF) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wjakob/nanogui REF e9ec8a1a9861cf578d9c6e85a6420080aa715c03 # Commits on Sep 23, 2019 SHA512 36c93bf977862ced2df4030211e2b83625e60a11fc9fdb6c1f2996bb234758331d3f41a7fbafd25a5bca0239ed9bac9c93446a4a7fac4c5e6d7943af2be3e14a HEAD_REF master PATCHES fix-cmakelists.patch fix-glad-dependence.patch fix-release-build.patch cmake4.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "example" NANOGUI_BUILD_EXAMPLE ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNANOGUI_EIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3 -DEIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3 -DNANOGUI_BUILD_SHARED=${BUILD_SHARED} ${USE_GLAD} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nanogui/vcpkg.json ================================================ { "name": "nanogui", "version-date": "2019-09-23", "port-version": 7, "description": "NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher.", "homepage": "https://github.com/wjakob/nanogui", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "eigen3", "glad", "glfw3", "nanovg", { "name": "vcpkg-cmake", "host": true } ], "features": { "example": { "description": "Build NanoGUI example application" } } } ================================================ FILE: ports/nanojsonc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-source-patterns/nanojsonc REF "${VERSION}" SHA512 cee89262ae3403ae110aeddeb15d839033fb9ab698d5315df693b7abd05ce893b3dbd603237afdd6cb2d8a46a0a8794043f680343720a834969357e89e64929f HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF) vcpkg_cmake_install() vcpkg_cmake_config_fixup() # removes /debug/share file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # removes debug/include vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Install License file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Install Usage ================================================ FILE: ports/nanojsonc/usage ================================================ The package nanojsonc provides CMake targets: find_package(nanojsonc CONFIG REQUIRED) target_link_libraries(main PRIVATE nanojsonc::nanojsonc) ================================================ FILE: ports/nanojsonc/vcpkg.json ================================================ { "name": "nanojsonc", "version": "1.3.0", "maintainers": "Saad Shams", "description": "Event-Driven JSON Parser for C", "homepage": "https://github.com/open-source-patterns/nanojsonc", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanomsg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nanomsg/nanomsg REF "${VERSION}" SHA512 76162319588d7ba7668f373147629ec2a178d247ac0518b24d129ea579f9c19cc45c544744ed9fe89ab7e74750da7c644d9565731d22f1199bf0ccfc5c734e56 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" NN_STATIC_LIB) if("tool" IN_LIST FEATURES) set(NN_ENABLE_NANOCAT ON) else() set(NN_ENABLE_NANOCAT OFF) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE -DNN_STATIC_LIB=${NN_STATIC_LIB} -DNN_TESTS=OFF -DNN_TOOLS=OFF -DNN_ENABLE_DOC=OFF -DNN_ENABLE_NANOCAT=${NN_ENABLE_NANOCAT} ) vcpkg_cmake_install() file(STRINGS ${SOURCE_PATH}/.version NN_PACKAGE_VERSION) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nanomsg-${NN_PACKAGE_VERSION}) vcpkg_replace_string( ${CURRENT_PACKAGES_DIR}/share/${PORT}/nanomsg-config.cmake "lib/cmake/nanomsg-${NN_PACKAGE_VERSION}" "share/nanomsg" ) if(NN_ENABLE_NANOCAT) vcpkg_copy_tools(TOOL_NAMES nanocat AUTO_CLEAN) endif() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string( ${CURRENT_PACKAGES_DIR}/include/nanomsg/nn.h "defined(NN_STATIC_LIB)" "1 // defined(NN_STATIC_LIB)" ) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string( ${CURRENT_PACKAGES_DIR}/share/${PORT}/nanomsg-config.cmake "set_and_check(nanomsg_BINDIR \${VCPKG_IMPORT_PREFIX}/bin)" "" IGNORE_UNCHANGED ) endif() configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/nanomsg/vcpkg.json ================================================ { "name": "nanomsg", "version-semver": "1.2.2", "description": [ "A simple high-performance implementation of several \"scalability protocols\".", "These scalability protocols are light-weight messaging protocols which can be used to solve a number of very common messaging patterns, such as request/reply, publish/subscribe, surveyor/respondent, and so forth. These protocols can run over a variety of transports such as TCP, UNIX sockets, and even WebSocket." ], "homepage": "https://nanomsg.org/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "nanomsg tool (nanocat)" } } } ================================================ FILE: ports/nanopb/fix-cmakelist.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 301501d..c7e8e42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,12 +16,6 @@ option(nanopb_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON) set(nanopb_PYTHON_INSTDIR_OVERRIDE "" CACHE PATH "Override the default python installation directory with the given path") -find_program(nanopb_PROTOC_PATH protoc PATHS generator-bin generator NO_DEFAULT_PATH) -find_program(nanopb_PROTOC_PATH protoc) -if(NOT EXISTS ${nanopb_PROTOC_PATH}) - message(FATAL_ERROR "protoc compiler not found") -endif() - if(NOT DEFINED CMAKE_DEBUG_POSTFIX) set(CMAKE_DEBUG_POSTFIX "d") endif() @@ -44,7 +38,6 @@ endif() # Determine Python module installation path if (NOT nanopb_PYTHON_INSTDIR_OVERRIDE) - find_package(Python REQUIRED COMPONENTS Interpreter) file(TO_CMAKE_PATH "${Python_SITELIB}" PYTHON_INSTDIR) else() set(PYTHON_INSTDIR ${nanopb_PYTHON_INSTDIR_OVERRIDE}) @@ -54,6 +47,10 @@ message(STATUS "Python install dir: ${PYTHON_INSTDIR}") # Package nanopb generator as Python module 'nanopb' if(nanopb_BUILD_GENERATOR) # Copy Python code files related to the generator + if(NOT EXISTS ${nanopb_PROTOC_PATH}) + message(FATAL_ERROR "protoc compiler not found") + endif() + add_custom_target(nanopb_generator ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/nanopb/generator/proto @@ -83,24 +80,14 @@ if(nanopb_BUILD_GENERATOR) # Install Python module files install( - DIRECTORY ${PROJECT_BINARY_DIR}/nanopb - DESTINATION ${PYTHON_INSTDIR} + DIRECTORY ${PROJECT_BINARY_DIR}/nanopb/generator + DESTINATION ${CMAKE_INSTALL_BINDIR} FILES_MATCHING PATTERN *.py PATTERN *.proto PATTERN __pycache__ EXCLUDE ) - # Generate a wrapper script that calls nanopb.generator Python module when invoked - configure_file( - extra/script_wrappers/nanopb_generator.py.in - ${PROJECT_BINARY_DIR}/nanopb_generator.py - ) - install( - PROGRAMS ${PROJECT_BINARY_DIR}/nanopb_generator.py - DESTINATION ${CMAKE_INSTALL_BINDIR} - ) - # Install shell/bat script wrappers for invoking nanopb_generator.py. # protoc-gen-nanopb is automatically used by protoc when --nanopb_out= option is used. if(WIN32) ================================================ FILE: ports/nanopb/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nanopb/nanopb REF ${VERSION} SHA512 1580c94d558f707c88d8d2ddf4aa3bf4ef244ddc07b13e02de7124da8d156fb30a6999bb3c54ff0497abb033e498fb85ea671774f2fb817f55fa64937f537c77 HEAD_REF master PATCHES fix-cmakelist.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" nanopb_BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" nanopb_STATIC_LINKING) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES generator nanopb_BUILD_GENERATOR ) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPython_EXECUTABLE=${PYTHON3} -Dnanopb_BUILD_RUNTIME=ON -DBUILD_STATIC_LIBS=${nanopb_BUILD_STATIC_LIBS} -Dnanopb_MSVC_STATIC_RUNTIME=${nanopb_STATIC_LINKING} "-Dnanopb_PROTOC_PATH=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" ${FEATURE_OPTIONS} -DCMAKE_INSTALL_DATADIR=share/${PORT} MAYBE_UNUSED_VARIABLES Python_EXECUTABLE nanopb_PROTOC_PATH ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") if(nanopb_BUILD_GENERATOR) file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/generator/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/nanopb_generator.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") else() file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/nanopb_generator" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/protoc-gen-nanopb" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(nanopb_BUILD_STATIC_LIBS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nanopb/vcpkg.json ================================================ { "name": "nanopb", "version": "0.4.9.1", "description": "A small code-size Protocol Buffers implementation in ANSI C.", "homepage": "https://jpa.kapsi.fi/nanopb/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "generator": { "description": "build the generator", "dependencies": [ { "name": "protobuf", "host": true } ] } } } ================================================ FILE: ports/nanoprintf/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO charlesnicholson/nanoprintf REF "v${VERSION}" SHA512 08762cc2737304262e3489c2bd88750693a7bec027cdabadf00f96caa68a100d8a0069fa0fc4806cfcdf27b3849c40a3388869eb342442301851a001827971c1 HEAD_REF master ) file(COPY "${SOURCE_PATH}/nanoprintf.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nanoprintf/vcpkg.json ================================================ { "name": "nanoprintf", "version": "0.5.6", "description": "A tiny embeddable printf replacement written in C99", "homepage": "https://github.com/charlesnicholson/nanoprintf" } ================================================ FILE: ports/nanorange/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tcbrindle/NanoRange REF bf32251d65673fe170d602777c087786c529ead8 SHA512 74dc8497fd20f56de39e54a104007840450466648f7b216f83265294e24582b486392ad6bf0cc85ca9877655640f08f833bc5d82ebee991b8a57d4fa44f0934f HEAD_REF master ) file(COPY "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}" FILES_MATCHING PATTERN "*.hpp") file(INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nanorange/vcpkg.json ================================================ { "name": "nanorange", "version-date": "2020-07-06", "description": "NanoRange is a C++14 implementation of the C++20 Ranges proposals.", "homepage": "https://github.com/tcbrindle/NanoRange", "license": "BSL-1.0" } ================================================ FILE: ports/nanort/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lighttransport/nanort REF c85fe7a10be5baf8242c81288718c244f25d0183 SHA512 0917ffdc51db9d5f936fc79d5b3d1886c5163470e650a2613200417a9e7a344b75c76c115f64160877d6a3480f7eda7884f3097927eb371267cc6d3c30afed37 HEAD_REF master ) file(COPY ${SOURCE_PATH}/nanort.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/nanort/vcpkg.json ================================================ { "name": "nanort", "version-date": "2019-08-20", "port-version": 3, "description": "Single header only modern ray tracing kernel", "homepage": "https://github.com/lighttransport/nanort" } ================================================ FILE: ports/nanosvg/fltk.patch ================================================ diff --git a/src/nanosvgrast.h b/src/nanosvgrast.h index 17ba3b0..a83db27 100644 --- a/src/nanosvgrast.h +++ b/src/nanosvgrast.h @@ -22,6 +22,12 @@ * */ +/* Modified by FLTK to support non-square X,Y axes scaling. + * + * Added: nsvgRasterizeXY() +*/ + + #ifndef NANOSVGRAST_H #define NANOSVGRAST_H @@ -46,6 +52,9 @@ typedef struct NSVGrasterizer NSVGrasterizer; unsigned char* img = malloc(w*h*4); // Rasterize nsvgRasterize(rast, image, 0,0,1, img, w, h, w*4); + + // For non-square X,Y scaling, use + nsvgRasterizeXY(rast, image, 0,0,1,1, img, w, h, w*4); */ // Allocated rasterizer context. @@ -55,7 +64,7 @@ NSVGrasterizer* nsvgCreateRasterizer(void); // r - pointer to rasterizer context // image - pointer to image to rasterize // tx,ty - image offset (applied after scaling) -// scale - image scale +// scale - image scale (assumes square aspect ratio) // dst - pointer to destination image data, 4 bytes per pixel (RGBA) // w - width of the image to render // h - height of the image to render @@ -64,6 +73,12 @@ void nsvgRasterize(NSVGrasterizer* r, NSVGimage* image, float tx, float ty, float scale, unsigned char* dst, int w, int h, int stride); +// As above, but allow X and Y axes to scale independently for non-square aspects +void nsvgRasterizeXY(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, + float sx, float sy, + unsigned char* dst, int w, int h, int stride); + // Deletes rasterizer context. void nsvgDeleteRasterizer(NSVGrasterizer*); @@ -370,7 +385,7 @@ static void nsvg__flattenCubicBez(NSVGrasterizer* r, nsvg__flattenCubicBez(r, x1234,y1234, x234,y234, x34,y34, x4,y4, level+1, type); } -static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) +static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) { int i, j; NSVGpath* path; @@ -378,13 +393,13 @@ static void nsvg__flattenShape(NSVGrasterizer* r, NSVGshape* shape, float scale) for (path = shape->paths; path != NULL; path = path->next) { r->npoints = 0; // Flatten path - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); + nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); for (i = 0; i < path->npts-1; i += 3) { float* p = &path->pts[i*2]; - nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, 0); + nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, 0); } // Close path - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, 0); + nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, 0); // Build edges for (i = 0, j = r->npoints-1; i < r->npoints; j = i++) nsvg__addEdge(r, r->points[j].x, r->points[j].y, r->points[i].x, r->points[i].y); @@ -734,7 +749,7 @@ static void nsvg__prepareStroke(NSVGrasterizer* r, float miterLimit, int lineJoi } } -static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float scale) +static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float sx, float sy) { int i, j, closed; NSVGpath* path; @@ -742,15 +757,16 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float float miterLimit = shape->miterLimit; int lineJoin = shape->strokeLineJoin; int lineCap = shape->strokeLineCap; - float lineWidth = shape->strokeWidth * scale; + const float sw = (sx + sy) / 2; // average scaling factor + const float lineWidth = shape->strokeWidth * sw; // FIXME (?) for (path = shape->paths; path != NULL; path = path->next) { // Flatten path r->npoints = 0; - nsvg__addPathPoint(r, path->pts[0]*scale, path->pts[1]*scale, NSVG_PT_CORNER); + nsvg__addPathPoint(r, path->pts[0]*sx, path->pts[1]*sy, NSVG_PT_CORNER); for (i = 0; i < path->npts-1; i += 3) { float* p = &path->pts[i*2]; - nsvg__flattenCubicBez(r, p[0]*scale,p[1]*scale, p[2]*scale,p[3]*scale, p[4]*scale,p[5]*scale, p[6]*scale,p[7]*scale, 0, NSVG_PT_CORNER); + nsvg__flattenCubicBez(r, p[0]*sx,p[1]*sy, p[2]*sx,p[3]*sy, p[4]*sx,p[5]*sy, p[6]*sx,p[7]*sy, 0, NSVG_PT_CORNER); } if (r->npoints < 2) continue; @@ -796,7 +812,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float dashOffset -= shape->strokeDashArray[idash]; idash = (idash + 1) % shape->strokeDashCount; } - dashLen = (shape->strokeDashArray[idash] - dashOffset) * scale; + dashLen = (shape->strokeDashArray[idash] - dashOffset) * sw; for (j = 1; j < r->npoints2; ) { float dx = r->points2[j].x - cur.x; @@ -818,7 +834,7 @@ static void nsvg__flattenShapeStroke(NSVGrasterizer* r, NSVGshape* shape, float // Advance dash pattern dashState = !dashState; idash = (idash+1) % shape->strokeDashCount; - dashLen = shape->strokeDashArray[idash] * scale; + dashLen = shape->strokeDashArray[idash] * sw; // Restart cur.x = x; cur.y = y; @@ -987,7 +1003,7 @@ static inline int nsvg__div255(int x) } static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* cover, int x, int y, - float tx, float ty, float scale, NSVGcachedPaint* cache) + float tx, float ty, float sx, float sy, NSVGcachedPaint* cache) { if (cache->type == NSVG_PAINT_COLOR) { @@ -1028,9 +1044,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co int i, cr, cg, cb, ca; unsigned int c; - fx = ((float)x - tx) / scale; - fy = ((float)y - ty) / scale; - dx = 1.0f / scale; + fx = ((float)x - tx) / sx; + fy = ((float)y - ty) / sy; + dx = 1.0f / sx; for (i = 0; i < count; i++) { int r,g,b,a,ia; @@ -1073,9 +1089,9 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co int i, cr, cg, cb, ca; unsigned int c; - fx = ((float)x - tx) / scale; - fy = ((float)y - ty) / scale; - dx = 1.0f / scale; + fx = ((float)x - tx) / sx; + fy = ((float)y - ty) / sy; + dx = 1.0f / sx; for (i = 0; i < count; i++) { int r,g,b,a,ia; @@ -1114,7 +1130,7 @@ static void nsvg__scanlineSolid(unsigned char* dst, int count, unsigned char* co } } -static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float scale, NSVGcachedPaint* cache, char fillRule) +static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, float sx, float sy, NSVGcachedPaint* cache, char fillRule) { NSVGactiveEdge *active = NULL; int y, s; @@ -1196,7 +1212,7 @@ static void nsvg__rasterizeSortedEdges(NSVGrasterizer *r, float tx, float ty, fl if (xmin < 0) xmin = 0; if (xmax > r->width-1) xmax = r->width-1; if (xmin <= xmax) { - nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, scale, cache); + nsvg__scanlineSolid(&r->bitmap[y * r->stride] + xmin*4, xmax-xmin+1, &r->scanline[xmin], xmin, y, tx,ty, sx, sy, cache); } } @@ -1364,8 +1380,9 @@ static void dumpEdges(NSVGrasterizer* r, const char* name) } */ -void nsvgRasterize(NSVGrasterizer* r, - NSVGimage* image, float tx, float ty, float scale, +void nsvgRasterizeXY(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, + float sx, float sy, unsigned char* dst, int w, int h, int stride) { NSVGshape *shape = NULL; @@ -1396,7 +1413,7 @@ void nsvgRasterize(NSVGrasterizer* r, r->freelist = NULL; r->nedges = 0; - nsvg__flattenShape(r, shape, scale); + nsvg__flattenShape(r, shape, sx, sy); // Scale and translate edges for (i = 0; i < r->nedges; i++) { @@ -1414,14 +1431,14 @@ void nsvgRasterize(NSVGrasterizer* r, // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule nsvg__initPaint(&cache, &shape->fill, shape->opacity); - nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, shape->fillRule); + nsvg__rasterizeSortedEdges(r, tx,ty, sx, sy, &cache, shape->fillRule); } - if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * scale) > 0.01f) { + if (shape->stroke.type != NSVG_PAINT_NONE && (shape->strokeWidth * sx) > 0.01f) { nsvg__resetPool(r); r->freelist = NULL; r->nedges = 0; - nsvg__flattenShapeStroke(r, shape, scale); + nsvg__flattenShapeStroke(r, shape, sx, sy); // dumpEdges(r, "edge.svg"); @@ -1441,7 +1458,7 @@ void nsvgRasterize(NSVGrasterizer* r, // now, traverse the scanlines and find the intersections on each scanline, use non-zero rule nsvg__initPaint(&cache, &shape->stroke, shape->opacity); - nsvg__rasterizeSortedEdges(r, tx,ty,scale, &cache, NSVG_FILLRULE_NONZERO); + nsvg__rasterizeSortedEdges(r, tx,ty,sx, sy, &cache, NSVG_FILLRULE_NONZERO); } } @@ -1453,6 +1470,13 @@ void nsvgRasterize(NSVGrasterizer* r, r->stride = 0; } +void nsvgRasterize(NSVGrasterizer* r, + NSVGimage* image, float tx, float ty, float scale, + unsigned char* dst, int w, int h, int stride) +{ + nsvgRasterizeXY(r,image, tx, ty, scale, scale, dst, w, h, stride); +} + #endif // NANOSVGRAST_IMPLEMENTATION #endif // NANOSVGRAST_H ================================================ FILE: ports/nanosvg/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO memononen/nanosvg REF 93ce879dc4c04a3ef1758428ec80083c38610b1f SHA512 14ecaf11efd2f0b983847ded557557a2919cc04fc5e9748118cc0bd33fccae2688afc0dc182ebb8c0deb4b599c697f140185644a087c702fba1e6368f5a5b89c HEAD_REF master PATCHES fltk.patch # from fltk/nanosvg ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NanoSVG) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nanosvg/vcpkg.json ================================================ { "name": "nanosvg", "version-date": "2023-12-29", "description": "NanoSVG is a simple stupid single-header-file SVG parser. It is accompanied by a simple SVG rasterizer.", "homepage": "https://github.com/memononen/nanosvg", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nanovg/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(nanovg C) find_path(STB_INCLUDES stb_image.h include) set(NANOVG_SOURCES src/nanovg.c) set(NANOVG_HEADERS src/nanovg.h src/nanovg_gl.h src/nanovg_gl_utils.h) add_library(nanovg STATIC ${NANOVG_SOURCES} ${NANOVG_HEADERS}) set_target_properties(nanovg PROPERTIES PUBLIC_HEADER "${NANOVG_HEADERS}") target_include_directories(nanovg PRIVATE ${STB_INCLUDES}) if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_definitions(nanovg PRIVATE DEBUG) else() target_compile_definitions(nanovg PRIVATE NDEBUG) endif() install(TARGETS nanovg EXPORT nanovgTargets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include) install(EXPORT nanovgTargets FILE nanovgTargets.cmake NAMESPACE nanovg:: DESTINATION share/nanovg) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/nanovgConfig.cmake DESTINATION share/nanovg) ================================================ FILE: ports/nanovg/nanovgConfig.cmake ================================================ include(${CMAKE_CURRENT_LIST_DIR}/nanovgTargets.cmake) ================================================ FILE: ports/nanovg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO memononen/nanovg REF f93799c078fa11ed61c078c65a53914c8782c00b SHA512 06f55e574ac3f73f2abe6cc614e13f29d27f2e05b2a035a19084fbf69f73cc0571d808a323cd07d25f0f1cb3097bef83d10d4315999ff21d6d3c8eee494dd7fb HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/nanovgConfig.cmake" DESTINATION "${SOURCE_PATH}") file(GLOB STB_SRCS "${SOURCE_PATH}/src/stb_*") if(STB_SRCS) file(REMOVE_RECURSE ${STB_SRCS}) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nanovg/vcpkg.json ================================================ { "name": "nanovg", "version-date": "2023-08-26", "description": "NanoVG is small antialiased vector graphics rendering library for OpenGL.", "homepage": "https://github.com/memononen/nanovg", "supports": "!uwp", "dependencies": [ "stb", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/nativefiledialog-extended/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO btzy/nativefiledialog-extended REF v${VERSION} SHA512 1f2e17dd9ee5b416dfe1362b6eac6499c83c527a83478361769420f1d29bf21e0a81e4b6d45255703aba9be61c8379f7745fe182d74687a9c4f3309bd4fdf09e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNFD_BUILD_TESTS=OFF -DNFD_PORTAL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME nfd CONFIG_PATH lib/cmake/nfd) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nativefiledialog-extended/vcpkg.json ================================================ { "name": "nativefiledialog-extended", "version": "1.3.0", "description": "Native File Dialog Extended", "homepage": "https://github.com/btzy/nativefiledialog-extended", "license": "Zlib", "supports": "!android & !ios & !uwp", "dependencies": [ { "name": "dbus", "platform": "!osx & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nayuki-qr-code-generator/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(nayuki-qr-code-generator LANGUAGES CXX) include(GNUInstallDirs) add_library(nayuki-qr-code-generator qrcodegen.cpp) target_compile_features(nayuki-qr-code-generator PUBLIC cxx_std_11) target_include_directories( nayuki-qr-code-generator PUBLIC $ ) install(FILES qrcodegen.hpp DESTINATION include) install(TARGETS nayuki-qr-code-generator EXPORT unofficial-nayuki-qr-code-generator-config) install( EXPORT unofficial-nayuki-qr-code-generator-config NAMESPACE unofficial::nayuki-qr-code-generator:: DESTINATION share/unofficial-nayuki-qr-code-generator PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/nayuki-qr-code-generator/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nayuki/QR-Code-generator REF v1.8.0 SHA512 0cdf0873e71aed124fc7357da86fb26f23fd26432f94c9752fa5a044085b26e5aece2115134d0e50213ff24be7c55818e7dec31205a68751065bc82ab0c2c6ac HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/cpp") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cpp" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/unofficial-nayuki-qr-code-generator PACKAGE_NAME unofficial-nayuki-qr-code-generator) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright configure_file("${SOURCE_PATH}/Readme.markdown" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/nayuki-qr-code-generator/vcpkg.json ================================================ { "name": "nayuki-qr-code-generator", "version": "1.8.0", "port-version": 1, "description": "High-quality QR Code generator library in C++", "homepage": "https://github.com/nayuki/QR-Code-generator", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nccl/FindNCCL.cmake ================================================ # Find the nccl libraries # # The following variables are optionally searched for defaults # NCCL_ROOT: Base directory where all NCCL components are found # NCCL_INCLUDE_DIR: Directory where NCCL header is found # NCCL_LIB_DIR: Directory where NCCL library is found # # The following are set after configuration is done: # NCCL_FOUND # NCCL_INCLUDE_DIRS # NCCL_LIBRARIES # # Adapted from https://github.com/pytorch/pytorch/blob/master/cmake/Modules/FindNCCL.cmake set(NCCL_INCLUDE_DIR $ENV{NCCL_INCLUDE_DIR} CACHE PATH "Folder contains NVIDIA NCCL headers") set(NCCL_LIB_DIR $ENV{NCCL_LIB_DIR} CACHE PATH "Folder contains NVIDIA NCCL libraries") set(_NCCL_VERSION $ENV{NCCL_VERSION} CACHE STRING "Version of NCCL to build with") list(APPEND NCCL_ROOT $ENV{NCCL_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}) # Compatible layer for CMake <3.12. NCCL_ROOT will be accounted in for searching paths and libraries for CMake >=3.12. list(APPEND CMAKE_PREFIX_PATH ${NCCL_ROOT}) find_path(NCCL_INCLUDE_DIRS NAMES nccl.h HINTS ${NCCL_INCLUDE_DIR} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_PATH} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{NCCL} /usr/include PATH_SUFFIXES include ) if (USE_STATIC_NCCL) MESSAGE(STATUS "USE_STATIC_NCCL is set. Linking with static NCCL library.") SET(NCCL_LIBNAME "nccl_static") if (_NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified set(CMAKE_FIND_LIBRARY_SUFFIXES ".a.${_NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) endif() else() SET(NCCL_LIBNAME "nccl") if (_NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified set(CMAKE_FIND_LIBRARY_SUFFIXES ".so.${_NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) endif() endif() # Read version from header if(EXISTS "${NCCL_INCLUDE_DIRS}/nccl.h") file(READ ${NCCL_INCLUDE_DIRS}/nccl.h NCCL_HEADER_CONTENTS) endif() if(NCCL_HEADER_CONTENTS) string(REGEX MATCH "define NCCL_MAJOR * +([0-9]+)" _NCCL_VERSION_MAJOR "${NCCL_HEADER_CONTENTS}") string(REGEX REPLACE "define NCCL_MAJOR * +([0-9]+)" "\\1" _NCCL_VERSION_MAJOR "${_NCCL_VERSION_MAJOR}") string(REGEX MATCH "define NCCL_MINOR * +([0-9]+)" _NCCL_VERSION_MINOR "${NCCL_HEADER_CONTENTS}") string(REGEX REPLACE "define NCCL_MINOR * +([0-9]+)" "\\1" _NCCL_VERSION_MINOR "${_NCCL_VERSION_MINOR}") string(REGEX MATCH "define NCCL_PATCH * +([0-9]+)" _NCCL_VERSION_PATCH "${NCCL_HEADER_CONTENTS}") string(REGEX REPLACE "define NCCL_PATCH * +([0-9]+)" "\\1" _NCCL_VERSION_PATCH "${_NCCL_VERSION_PATCH}") if(NOT _NCCL_VERSION_MAJOR) set(_NCCL_VERSION "?") else() set(_NCCL_VERSION "${_NCCL_VERSION_MAJOR}.${_NCCL_VERSION_MINOR}.${_NCCL_VERSION_PATCH}") endif() endif() find_library(NCCL_LIBRARIES NAMES ${NCCL_LIBNAME} HINTS ${NCCL_LIB_DIR} ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{NCCL} /usr/lib/x86_64-linux-gnu/ PATH_SUFFIXES lib lib64 ) include(FindPackageHandleStandardArgs) find_package_handle_standard_args(NCCL REQUIRED_VARS NCCL_INCLUDE_DIRS NCCL_LIBRARIES VERSION_VAR _NCCL_VERSION) if(NCCL_FOUND) # obtaining NCCL version and some sanity checks message(STATUS "Found NCCL ${_NCCL_VERSION} (include: ${NCCL_INCLUDE_DIRS}, library: ${NCCL_LIBRARIES})") mark_as_advanced(NCCL_ROOT_DIR NCCL_INCLUDE_DIRS NCCL_LIBRARIES NCCL_VERSION) endif() ================================================ FILE: ports/nccl/portfile.cmake ================================================ # Find NCCL. We can use FindNCCL directly since it doesn't call any functions # that are disallowed in CMake script mode set(MINIMUM_NCCL_VERSION "2.4.6.1") set(NCCL_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) find_package(NCCL ${MINIMUM_NCCL_VERSION}) set(CMAKE_MODULE_PATH ${NCCL_PREV_MODULE_PATH}) # Download or return if(NCCL_FOUND) message(STATUS "Using NCCL ${_NCCL_VERSION} located on system.") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() message(FATAL_ERROR "Please install NCCL using your system package manager (the same way you installed CUDA). For example: apt install libnccl2 libnccl-dev.") endif() file(INSTALL "${CURRENT_PORT_DIR}/FindNCCL.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) ================================================ FILE: ports/nccl/usage ================================================ The package nccl provides CMake variables: find_package(NCCL REQUIRED) target_link_libraries(main PRIVATE ${NCCL_LIBRARIES}) target_include_directories(main PRIVATE ${NCCL_INCLUDE_DIRS}) ================================================ FILE: ports/nccl/vcpkg-cmake-wrapper.cmake ================================================ set(NCCL_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${NCCL_PREV_MODULE_PATH}) ================================================ FILE: ports/nccl/vcpkg.json ================================================ { "name": "nccl", "version": "2.4.6", "port-version": 2, "description": "Optimized primitives for collective multi-GPU communication.", "supports": "linux & x64", "dependencies": [ "cuda" ] } ================================================ FILE: ports/ncnn/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tencent/ncnn REF "${VERSION}" SHA512 53de1d8c7b6ea3bdc01eeb1c742fecbf53ba1ec975087814197a270c8a2c104c3f48c81849631ca4460f9d875c45bba7e5e52ff572d0a86131c792867ee0a1f3 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES vulkan NCNN_VULKAN vulkan NCNN_SYSTEM_GLSLANG ) if(vulkan IN_LIST FEATURES AND VCPKG_TARGET_IS_OSX) list(APPEND FEATURE_OPTIONS -DNCNN_SIMPLEVK=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_BUILD_BENCHMARK=OFF -DNCNN_SHARED_LIB=${BUILD_SHARED} -DNCNN_VERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ncnn) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/ncnn/vcpkg.json ================================================ { "name": "ncnn", "version": "20260113", "description": "ncnn is a high-performance neural network inference computing framework.", "homepage": "https://github.com/Tencent/ncnn", "license": "BSD-3-Clause", "supports": "!(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "vulkan": { "description": "Enable Vulkan support", "dependencies": [ "glslang", "vulkan" ] } } } ================================================ FILE: ports/ncurses/portfile.cmake ================================================ vcpkg_download_distfile( ARCHIVE_PATH URLS "https://invisible-mirror.net/archives/ncurses/ncurses-${VERSION}.tar.gz" "ftp://ftp.invisible-island.net/ncurses/ncurses-${VERSION}.tar.gz" "https://ftp.gnu.org/gnu/ncurses/ncurses-${VERSION}.tar.gz" FILENAME "ncurses-${VERSION}.tgz" SHA512 fc5a13409d2a530a1325776dcce3a99127ddc2c03999cfeb0065d0eee2d68456274fb1c7b3cc99c1937bc657d0e7fca97016e147f93c7821b5a4a6837db821e8 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE_PATH}" ) vcpkg_list(SET OPTIONS) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS --with-cxx-shared --with-shared # "lib model" --without-normal # "lib model" ) endif() if(NOT VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS --enable-mixed-case ) endif() if(VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS --disable-home-terminfo --enable-term-driver --disable-termcap ) endif() if("check-size" IN_LIST FEATURES) list(APPEND OPTIONS --enable-check-size ) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") # There are compilation errors on gcc 15. adding `-std=c17` to CFLAGS for workaround. # ref: https://gitlab.archlinux.org/archlinux/packaging/packages/ncurses/-/issues/3 list(APPEND OPTIONS "CFLAGS=\$CFLAGS -std=c17") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" DEFAULT_OPTIONS_EXCLUDE "^--docdir" OPTIONS ${OPTIONS} --disable-db-install --disable-pkg-ldflags --disable-rpath-hack --enable-pc-files --without-ada --without-debug # "lib model" --without-manpages --without-progs --without-tack --without-tests --with-pkg-config-libdir=libdir ) vcpkg_make_install() vcpkg_fixup_pkgconfig() # Prefer local files over search path file(GLOB headers "${CURRENT_PACKAGES_DIR}/include/ncursesw/*.h") foreach(file IN LISTS headers) vcpkg_replace_string("${file}" [[#include ]*)>]] [[#include "\1"]] REGEX IGNORE_UNCHANGED) endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/ncurses/bin/ncursesw6-config" "${CURRENT_INSTALLED_DIR}" "\${prefix}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/ncurses/bin/ncursesw6-config" "\nprefix=\"\${prefix}\"" [=[prefix=$(CDPATH= cd -- "$(dirname -- "$0")"/../../.. && pwd -P)]=]) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/ncurses/debug/bin/ncursesw6-config" "${CURRENT_INSTALLED_DIR}" "\${prefix}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/ncurses/debug/bin/ncursesw6-config" "\nprefix=\"\${prefix}/debug\"" [=[prefix=$(CDPATH= cd -- "$(dirname -- "$0")"/../../../.. && pwd -P)/debug]=]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/ncurses/debug/bin/ncursesw6-config" "\${prefix}/share" "\${prefix}/../share") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/ncurses/usage ================================================ The package ncurses is compatible with built-in CMake variables: set(CURSES_NEED_NCURSES TRUE) find_package(Curses REQUIRED) target_include_directories(main PRIVATE ${CURSES_INCLUDE_DIRS}) target_compile_options(main PRIVATE ${CURSES_CFLAGS}) target_link_libraries(main PRIVATE ${CURSES_LIBRARIES}) ================================================ FILE: ports/ncurses/vcpkg.json ================================================ { "name": "ncurses", "version": "6.5", "port-version": 3, "description": [ "Free software emulation of curses in System V Release 4.0, and more.", "This port installs a wide character configuration (ncursesw)." ], "homepage": "https://invisible-island.net/ncurses/announce.html", "license": "MIT", "supports": "!windows | mingw", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-make", "host": true } ], "features": { "check-size": { "description": "Detect screensize of serial terminals" } } } ================================================ FILE: ports/ndis-driver-library/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/ndis-driver-library REF "release/v${VERSION}" SHA512 4f96c8769c9363e8e2abc89090d1342dc6b9f868c72434cd1943c3d6d52bc89195463eb7bb5aa6d128b31f1ae61a1fd5131e2fe859c1b591ef3a54de764661a3 HEAD_REF main ) file(COPY "${SOURCE_PATH}/src/include/ndis" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ndis-driver-library/vcpkg.json ================================================ { "name": "ndis-driver-library", "version": "1.2.0", "description": "Code to make it easier to write an NDIS network driver on Windows", "homepage": "https://github.com/microsoft/ndis-driver-library", "license": "MIT" } ================================================ FILE: ports/neargye-semver/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Neargye/semver REF v${VERSION} SHA512 194f679224a371a4434bc32f14717ef0f83c796e878a3ada4aa2e8c925e5e64aaa63f703d891a8ae6b15452e16cf714983e3b0a15e37185275e82e5120393f44 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSEMVER_OPT_INSTALL=ON -DSEMVER_OPT_BUILD_EXAMPLES=OFF -DSEMVER_OPT_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME semver CONFIG_PATH "lib/cmake/semver") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # empty; rm for vcpkg validity checks ================================================ FILE: ports/neargye-semver/vcpkg.json ================================================ { "name": "neargye-semver", "version": "1.0.0-rc", "description": "C++17 header-only dependency-free versioning library complying with Semantic Versioning 2.0.0", "homepage": "https://github.com/Neargye/semver", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ned14-internal-quickcpplib/portfile.cmake ================================================ # QuickCppLib is composed of other third party libraries: # <= quickcpplib # <= byte-lite # <= gsl-lite # <= Optional # # byte-lite and gsl-lite are in vcpkg, but may not be versions # known to be compatible with QuickCppLib. It has occurred in the # past that newer versions were severely broken with QuickCppLib. include("${CURRENT_PORT_DIR}/sha_manifest.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES INVERTED_FEATURES polyfill-cxx17 QUICKCPPLIB_REQUIRE_CXX17 polyfill-cxx20 QUICKCPPLIB_REQUIRE_CXX20 ) if (NOT QUICKCPPLIB_REQUIRE_CXX20) message(WARNING [=[ QuickCppLib and its downstream dependencies Outcome and LLFIO were tested against span-lite version 0.10.3 and byte-lite version 0.3.0. They are not guaranteed to work with newer versions, with failures experienced in the past up-to-and-including runtime crashes. You can pin the versions as verified to work in QuickCppLib's CI in your manifest file by adding: "overrides": [ { "name": "span-lite", "version": "0.10.3" }, { "name": "byte-lite", "version": "0.3.0" } ] Do not report issues to upstream without first pinning these previous versions. ]=]) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ned14/quickcpplib REF ${QUICKCPPLIB_REF} SHA512 ${QUICKCPPLIB_SHA512} HEAD_REF master PATCHES quicklib-depheaders.patch ) vcpkg_from_github( OUT_SOURCE_PATH OPT_SOURCE_PATH REPO akrzemi1/Optional REF ${OPTIONAL_REF} SHA512 ${OPTIONAL_SHA512} HEAD_REF master ) file(COPY "${OPT_SOURCE_PATH}/." DESTINATION "${SOURCE_PATH}/include/quickcpplib/optional") # Because quickcpplib's deployed files are header-only, the debug build it not necessary set(VCPKG_BUILD_TYPE release) # Use QuickCppLib's own build process, skipping examples and tests. vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dquickcpplib_IS_DEPENDENCY=ON -DQUICKCPPLIB_USE_SYSTEM_BYTE_LITE=ON -DQUICKCPPLIB_USE_SYSTEM_SPAN_LITE=ON -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON "-DCMAKE_INSTALL_DATADIR=${CURRENT_PACKAGES_DIR}/share/ned14-internal-quickcpplib" ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_Doxygen ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME quickcpplib CONFIG_PATH lib/cmake/quickcpplib ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") ================================================ FILE: ports/ned14-internal-quickcpplib/quicklib-depheaders.patch ================================================ diff --git a/cmake/headers.cmake b/cmake/headers.cmake index 3924a2a..f1e32d9 100644 --- a/cmake/headers.cmake +++ b/cmake/headers.cmake @@ -15,8 +15,6 @@ set(quickcpplib_HEADERS "include/quickcpplib/boost/test/unit_test.hpp" "include/quickcpplib/byte.hpp" "include/quickcpplib/byte/include/nonstd/byte.hpp" - "include/quickcpplib/byte/test/byte-main.t.hpp" - "include/quickcpplib/byte/test/lest/lest_cpp03.hpp" "include/quickcpplib/config.hpp" "include/quickcpplib/console_colours.hpp" "include/quickcpplib/cpp_feature.h" @@ -40,11 +38,7 @@ set(quickcpplib_HEADERS "include/quickcpplib/ringbuffer_log.hpp" "include/quickcpplib/scope.hpp" "include/quickcpplib/signal_guard.hpp" - "include/quickcpplib/span-lite/example/nonstd/span.tweak.hpp" "include/quickcpplib/span-lite/include/nonstd/span.hpp" - "include/quickcpplib/span-lite/test/lest/lest_cpp03.hpp" - "include/quickcpplib/span-lite/test/nonstd/span.tweak.hpp" - "include/quickcpplib/span-lite/test/span-main.t.hpp" "include/quickcpplib/span.hpp" "include/quickcpplib/spinlock.hpp" "include/quickcpplib/spinlock.natvis" ================================================ FILE: ports/ned14-internal-quickcpplib/sha_manifest.cmake ================================================ set(QUICKCPPLIB_REF 40b0964df509e90a4b527243a8fd4dbf6b704ff2) set(QUICKCPPLIB_SHA512 ccec956a7d9a911678fe6ef3be05a41bbdc70ce88fd04724417af86fc7b5785eeeb5301a3276914e0f49a364c1747b5cbcb3bf58871f224660155c0debc20481) set(OPTIONAL_REF 2b43315458a99fc5de1da6e7bc0ddd364b26d643) set(OPTIONAL_SHA512 1952386cd3c7b963861f9634055e1baa4181d398d6f1b068a8a3f411368432bdcd42e47aadfa856584ed9a7c724a1c83369243ccb653e650af5c9155b42a84f4) ================================================ FILE: ports/ned14-internal-quickcpplib/usage ================================================ You should NOT DIRECTLY USE quickcpplib in your own libraries! It is intended for internal use by ned14's vcpkg libraries only. ================================================ FILE: ports/ned14-internal-quickcpplib/vcpkg.json ================================================ { "name": "ned14-internal-quickcpplib", "version-date": "2025-12-16", "maintainers": [ "Niall Douglas ", "Henrik Gaßmann " ], "description": "NOT FOR EXTERNAL CONSUMPTION, a set of internal scripts used by ned14's libraries.", "homepage": "https://github.com/ned14/quickcpplib", "license": "Apache-2.0 OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "polyfill-cxx17": { "description": "Polyfill std::byte with byte-lite", "dependencies": [ "byte-lite", { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ "polyfill-cxx20" ] } ] }, "polyfill-cxx20": { "description": "Polyfill std::span with span-lite", "dependencies": [ "span-lite" ] } } } ================================================ FILE: ports/neko-event/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoEvent REF v1.0.1 SHA512 2c9579def648a0feaaf0763d11801b70260d8f56bd477fcafc9d45cb7c2c5c8ab365f77c925aad46a75aa85c5c0730efee9ace0b6a5f3025a3166a776908a8e7 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEKO_EVENT_BUILD_TESTS=OFF -DNEKO_EVENT_AUTO_FETCH_DEPS=OFF -DNEKO_EVENT_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoEvent PACKAGE_NAME nekoevent) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-event/usage ================================================ NekoEvent provides CMake targets: find_package(NekoEvent CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::Event) ================================================ FILE: ports/neko-event/vcpkg.json ================================================ { "name": "neko-event", "version": "1.0.1", "description": "A modern easy to use type-safe and high-performance event handling system for C++ ", "homepage": "https://github.com/moehoshio/NekoEvent", "license": "MIT OR Apache-2.0", "dependencies": [ "neko-schema", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neko-function/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoFunction REF v1.0.11 SHA512 3fbdba19085d76fe747ec38a2a4ad1e41c5d67f0e5ae320982bde35f796c9d89cbd304e6b11ef1bb4fa7101698f3b6737c6ddf94bd7f46f8f4e4061ef132c6ce HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES archive NEKO_FUNCTION_ENABLE_ARCHIVE hash NEKO_FUNCTION_ENABLE_HASH ) if("archive" IN_LIST FEATURES) set(NEKO_FUNCTION_IS_HEADER_ONLY FALSE) else() set(NEKO_FUNCTION_IS_HEADER_ONLY TRUE) endif() if(NEKO_FUNCTION_IS_HEADER_ONLY) set(VCPKG_BUILD_TYPE release) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNEKO_FUNCTION_BUILD_TESTS=OFF -DNEKO_FUNCTION_AUTO_FETCH_DEPS=OFF -DNEKO_FUNCTION_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoFunction PACKAGE_NAME nekofunction) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(NEKO_FUNCTION_IS_HEADER_ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-function/usage ================================================ NekoFunction provides CMake targets: find_package(NekoFunction CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::Function) ================================================ FILE: ports/neko-function/vcpkg.json ================================================ { "name": "neko-function", "version": "1.0.11", "description": "A comprehensive modern C++ utility library that provides practical functions for common programming tasks.", "homepage": "https://github.com/moehoshio/NekoFunction", "license": "MIT OR Apache-2.0", "dependencies": [ "neko-schema", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "archive": { "description": "Enable archive support", "dependencies": [ "minizip-ng" ] }, "hash": { "description": "Enable hash support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/neko-log/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoLog REF "v${VERSION}" SHA512 e64e01511dd77da3cfd648ac31911bd3ddda189817b818880568b80726d4ef2c7d118807164c4b18671e5d301a5c38f99209b66c030347d7d9c731497ff6c9a4 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEKO_LOG_BUILD_TESTS=OFF -DNEKO_LOG_AUTO_FETCH_DEPS=OFF -DNEKO_LOG_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoLog PACKAGE_NAME nekolog) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-log/usage ================================================ NekoLog provides CMake targets: find_package(NekoLog CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::Log) ================================================ FILE: ports/neko-log/vcpkg.json ================================================ { "name": "neko-log", "version": "1.0.7", "description": "An easy-to-use, modern, lightweight, and efficient C++20 logging library", "homepage": "https://github.com/moehoshio/NekoLog", "license": "MIT OR Apache-2.0", "supports": "!uwp", "dependencies": [ "neko-schema", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neko-network/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoNetwork REF v1.0.3 SHA512 394bcd82743c25c1954dcce6699bc0c13a2ac8f00b06d082659aface2d6efeccb736feaa5c94a4eef2789194f2d7adefae0c476bf27866547be48602c90226b5 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEKO_NETWORK_BUILD_TESTS=OFF -DNEKO_NETWORK_AUTO_FETCH_DEPS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoNetwork PACKAGE_NAME nekonetwork) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-network/usage ================================================ NekoNetwork provides CMake targets: find_package(NekoNetwork CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::Network) ================================================ FILE: ports/neko-network/vcpkg.json ================================================ { "name": "neko-network", "version": "1.0.3", "description": "Neko Network is a modern, easy-to-use, and efficient C++20 network library built on top of libcurl.", "homepage": "https://github.com/moehoshio/NekoNetwork", "license": "MIT OR Apache-2.0", "dependencies": [ "curl", "neko-function", "neko-schema", "neko-system", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "nlog" ], "features": { "nlog": { "description": "Use nlog as the default logger.", "dependencies": [ "neko-log" ] } } } ================================================ FILE: ports/neko-schema/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoSchema REF v1.1.5 SHA512 a4383927168a06fc50623e8a0cdb4c1d9dabfa8a6f2ae6408aff5b468cd9a3bdca57262187c231231ad70eb2a6b65d5574a824cc0d4be6a43e62c4ecf342ef0b HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEKO_SCHEMA_BUILD_TESTS=OFF -DNEKO_SCHEMA_AUTO_FETCH_DEPS=OFF -DNEKO_SCHEMA_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoSchema PACKAGE_NAME nekoschema) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-schema/usage ================================================ NekoSchema provides CMake targets: find_package(NekoSchema CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::Schema) ================================================ FILE: ports/neko-schema/vcpkg.json ================================================ { "name": "neko-schema", "version": "1.1.5", "description": "A lightweight C++20 header-only library providing fundamental type definitions and utilities for the Neko ecosystem", "homepage": "https://github.com/moehoshio/NekoSchema", "license": "MIT OR Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neko-system/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoSystem REF v1.0.1 SHA512 6ae5af6be464c7e0cfada4a87ac349537d0083dfaa8c02f421917525ceb62331632c3c203baedadaff44a7129817311cf5c72045e6b99e97b7bc17efeb2f475e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNEKO_SYSTEM_BUILD_TESTS=OFF -DNEKO_SYSTEM_AUTO_FETCH_DEPS=OFF -DNEKO_SYSTEM_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoSystem PACKAGE_NAME nekosystem) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-system/usage ================================================ NekoSystem provides CMake targets: find_package(NekoSystem CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::System) ================================================ FILE: ports/neko-system/vcpkg.json ================================================ { "name": "neko-system", "version": "1.0.1", "description": "A cross-platform C++20 system information library providing memory information, platform detection, and system utilities.", "homepage": "https://github.com/moehoshio/NekoSystem", "license": "MIT OR Apache-2.0", "supports": "windows | linux | osx", "dependencies": [ "neko-function", "neko-schema", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neko-threadpool/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO moehoshio/NekoThreadPool REF "v${VERSION}" SHA512 143e4bd8ca900a6a1680e62144ce39c8426057ed2b7f8b53267eb388fa54c2f7cca7e1e587b866e7f7e22759102765224217ecd083e406497d49f4a8600acccb HEAD_REF main ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNEKO_THREAD_POOL_BUILD_TESTS=OFF -DNEKO_THREAD_POOL_AUTO_FETCH_DEPS=OFF -DNEKO_THREAD_POOL_ENABLE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NekoThreadPool PACKAGE_NAME nekothreadpool) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/neko-threadpool/usage ================================================ NekoThreadPool provides CMake targets: find_package(NekoThreadPool CONFIG REQUIRED) target_link_libraries(main PRIVATE Neko::ThreadPool) ================================================ FILE: ports/neko-threadpool/vcpkg.json ================================================ { "name": "neko-threadpool", "version": "1.0.2", "description": "An easy-to-use and efficient C++ 20 thread pool that supports task priorities and task submission to specific threads.", "homepage": "https://github.com/moehoshio/NekoThreadPool", "license": "MIT OR Apache-2.0", "dependencies": [ "neko-schema", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neon2sse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/ARM_NEON_2_x86_SSE REF eb8b80b28f956275e291ea04a7beb5ed8289e872 SHA512 56aa1c886993b8ab0f5939acd53081e4d23373bab19858397a1a668e130a68423b521c4613f2db4e0f108fd2c9133a529575dba14e5e0046a3bb9f11f96ce2bf HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME NEON_2_SSE CONFIG_PATH lib/cmake/NEON_2_SSE) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) ================================================ FILE: ports/neon2sse/vcpkg.json ================================================ { "name": "neon2sse", "version-date": "2024-11-24", "description": "The platform independent header allowing to compile any C/C++ code containing ARM NEON intrinsic functions for x86 target systems using SIMD up to AVX2 intrinsic functions", "homepage": "https://github.com/intel/ARM_NEON_2_x86_SSE", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/neoslippi/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO neoslippi FILENAME "NeoSlippi-${VERSION}.zip" SHA512 a1fdd19c0de2e59d3de778be98216702a9c1de05a87b6d7126a6d1ef96c270624f4890ae8d6199498d91e89d2b8219381cb1bf15d29730a402d5152f05c7ea6c NO_REMOVE_ONE_LEVEL ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TESTING=False ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NeoSlippi) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/neoslippi/usage ================================================ neoslippi provides CMake targets: find_package(NeoSlippi CONFIG REQUIRED) target_link_libraries(main PRIVATE NeoSlippi::NeoSlippi) ================================================ FILE: ports/neoslippi/vcpkg.json ================================================ { "name": "neoslippi", "version": "1.0.3.18", "description": "C++ Slippi replay file parser.", "homepage": "https://sourceforge.net/projects/neoslippi/", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/netcdf-c/backport-d7895f6.diff ================================================ diff --git a/libhdf5/H5FDhttp.c b/libhdf5/H5FDhttp.c index 917c73a..23e96a1 100644 --- a/libhdf5/H5FDhttp.c +++ b/libhdf5/H5FDhttp.c @@ -45,18 +45,6 @@ #include #endif -/* -Define a simple #ifdef test for the version of H5FD_class_t we are using -*/ - -#if H5_VERS_MAJOR == 1 -#if H5_VERS_MINOR < 10 -#define H5FDCLASS1 1 -#endif -#else -#error "Cannot determine version of H5FD_class_t" -#endif - #ifdef H5_HAVE_WIN32_API /* The following two defines must be before any windows headers are included */ #define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */ @@ -145,33 +133,24 @@ static herr_t H5FD_http_read(H5FD_t *lf, H5FD_mem_t type, hid_t fapl_id, haddr_t size_t size, void *buf); static herr_t H5FD_http_write(H5FD_t *lf, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, size_t size, const void *buf); +static herr_t H5FD_http_term(void); /* The H5FD_class_t structure has different versions */ -#ifdef H5FDCLASS1 -static haddr_t H5FD_http_get_eof(const H5FD_t *_file); -static herr_t H5FD_http_flush(H5FD_t *_file, hid_t dxpl_id, unsigned closing); -static herr_t H5FD_http_lock(H5FD_t *_file, unsigned char* old, unsigned lock_type, hbool_t last); -static herr_t H5FD_http_unlock(H5FD_t *file, unsigned char *oid, hbool_t last); -#else -static herr_t H5FD_http_term(void); static haddr_t H5FD_http_get_eof(const H5FD_t *_file, H5FD_mem_t type); static herr_t H5FD_http_flush(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static herr_t H5FD_http_lock(H5FD_t *_file, hbool_t rw); static herr_t H5FD_http_unlock(H5FD_t *_file); -#endif /* Beware, not same as H5FD_HTTP_g */ static const H5FD_class_t H5FD_http_g = { -#if H5_VERSION_GE(1,13,2) +#if H5FD_CLASS_VERSION > 0 H5FD_CLASS_VERSION, /* struct version */ H5_VFD_HTTP, /* value */ #endif "http", /* name */ MAXADDR, /* maxaddr */ H5F_CLOSE_WEAK, /* fc_degree */ -#ifndef H5FDCLASS1 H5FD_http_term, /* terminate */ -#endif NULL, /* sb_size */ NULL, /* sb_encode */ NULL, /* sb_decode */ @@ -195,7 +174,7 @@ static const H5FD_class_t H5FD_http_g = { H5FD_http_get_handle, /* get_handle */ H5FD_http_read, /* read */ H5FD_http_write, /* write */ -#if H5_VERSION_GE(1,13,2) +#if H5FD_CLASS_VERSION > 0 NULL, /* read_vector */ NULL, /* write_vector */ NULL, /* read_selection */ @@ -205,7 +184,7 @@ static const H5FD_class_t H5FD_http_g = { NULL, /* truncate */ H5FD_http_lock, /* lock */ H5FD_http_unlock, /* unlock */ -#if H5_VERSION_GE(1,13,2) +#if H5FD_CLASS_VERSION > 0 NULL, /* del */ NULL, /* ctl */ #endif @@ -277,13 +256,11 @@ H5FD_http_finalize(void) * *--------------------------------------------------------------------------- */ -#ifndef H5FDCLASS1 static herr_t H5FD_http_term(void) { return 0; } /* end H5FD_http_term() */ -#endif /*------------------------------------------------------------------------- @@ -497,7 +474,7 @@ H5FD_http_query(const H5FD_t *_f, unsigned long /*OUT*/ *flags) *flags |= H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */ *flags |= H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */ *flags |= H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */ -#ifndef H5FDCLASS1 +#if H5FD_CLASS_VERSION > 0 *flags |= H5FD_FEAT_DEFAULT_VFD_COMPATIBLE; /* VFD creates a file which can be opened with the default VFD */ #endif } @@ -630,19 +607,10 @@ H5FD_http_set_eoa(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, haddr_t addr) */ static haddr_t -#ifdef H5FDCLASS1 -H5FD_http_get_eof(const H5FD_t *_file) -#else -H5FD_http_get_eof(const H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type) -#endif +H5FD_http_get_eof(const H5FD_t *_file, H5FD_mem_t type) { const H5FD_http_t *file = (const H5FD_http_t *)_file; -#ifndef H5FDCLASS1 - /* Quiet the compiler */ - type = type; -#endif - /* Clear the error stack */ H5Eclear2(H5E_DEFAULT); @@ -830,18 +798,9 @@ H5FD_http_write(H5FD_t *_file, H5FD_mem_t /*UNUSED*/ type, hid_t /*UNUSED*/ dxpl *------------------------------------------------------------------------- */ static herr_t -#ifdef H5FDCLASS1 -H5FD_http_flush(H5FD_t *_file, hid_t dxpl_id, unsigned closing) -#else -H5FD_http_flush(H5FD_t *_file, hid_t /*UNUSED*/ dxpl_id, hbool_t closing) -#endif +H5FD_http_flush(H5FD_t *_file, hid_t dxpl_id, hbool_t closing) { -#ifndef H5FDCLASS1 - /* Quiet the compiler */ - dxpl_id = dxpl_id; -#endif - /* Clear the error stack */ H5Eclear2(H5E_DEFAULT); @@ -865,23 +824,11 @@ H5FD_http_flush(H5FD_t *_file, hid_t /*UNUSED*/ dxpl_id, hbool_t closing) *------------------------------------------------------------------------- */ static herr_t -#ifdef H5FDCLASS1 -H5FD_http_lock(H5FD_t *_file, unsigned char* old, unsigned lock_type, hbool_t last) -#else H5FD_http_lock(H5FD_t *_file, hbool_t rw) -#endif { /* Clear the error stack */ H5Eclear2(H5E_DEFAULT); -#ifdef H5FDCLASS1 - /* Quiet the compiler */ - lock_type = lock_type; - last = last; -#else - rw = rw; -#endif - return 0; } /* end H5FD_http_lock() */ @@ -901,21 +848,11 @@ H5FD_http_lock(H5FD_t *_file, hbool_t rw) *------------------------------------------------------------------------- */ static herr_t -#ifdef H5FDCLASS1 -H5FD_http_unlock(H5FD_t *file, /*UNUSED*/unsigned char *oid, /*UNUSED*/ hbool_t last) -#else -H5FD_http_unlock(H5FD_t *_file) -#endif +H5FD_http_unlock(H5FD_t *file) { /* Clear the error stack */ H5Eclear2(H5E_DEFAULT); - /* Quiet the compiler */ -#ifdef H5FDCLASS1 - oid = oid; - last = last; -#endif - return 0; } /* end H5FD_http_unlock() */ diff --git a/libhdf5/H5FDhttp.h b/libhdf5/H5FDhttp.h index 376609e..5fd0c9e 100644 --- a/libhdf5/H5FDhttp.h +++ b/libhdf5/H5FDhttp.h @@ -29,10 +29,26 @@ #include "H5Ipublic.h" -#if H5_VERSION_GE(1,13,2) +/** +The big issue to be addressed: H5FD_CLASS_VERSION defined? +Apparently this first occurs in HDF5 version 1.13.2. +This affects the H5FD_class_t structure. +*/ +#if H5_VERSION_GE(1, 13, 2) +# ifndef H5FD_CLASS_VERSION +/* If not defined then fake it */ +# define H5FD_CLASS_VERSION 0x00 +# endif +#endif + +/* Class Version field changes. */ +#if H5FD_CLASS_VERSION > 0 +/* see https://support.hdfgroup.org/documentation/hdf5-docs/registered_virtual_file_drivers_vfds.html */ #define H5_VFD_HTTP ((H5FD_class_value_t)(514)) -#define H5FD_HTTP (H5FDperform_init(H5FD_http_init)) +#define H5FD_HTTP (H5FD_http_init()) #else +#define H5_VFD_HTTP ((H5FD_class_value_t)(514)) +//#define H5FD_HTTP (H5FDperform_init(H5FD_http_init)) #define H5FD_HTTP (H5FD_http_init()) #endif @@ -40,15 +56,9 @@ extern "C" { #endif -#if 0 -H5_DLL hid_t H5FD_http_init(void); -H5_DLL hid_t H5FD_http_finalize(void); -H5_DLL herr_t H5Pset_fapl_http(hid_t fapl_id); -#else EXTERNL hid_t H5FD_http_init(void); EXTERNL hid_t H5FD_http_finalize(void); EXTERNL herr_t H5Pset_fapl_http(hid_t fapl_id); -#endif #ifdef __cplusplus } ================================================ FILE: ports/netcdf-c/dependencies.diff ================================================ diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index d06a276..5d97fd3 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -134,7 +134,22 @@ if(USE_HDF5) ##### # First, find the C and HL libraries. ##### - find_package(HDF5 COMPONENTS C HL REQUIRED) + find_package(HDF5 NAMES hdf5 CONFIG COMPONENTS C HL REQUIRED) + if(TARGET HDF5::HDF5) + # pass + elseif(TARGET hdf5::hdf5-shared) + add_library(HDF5::HDF5 ALIAS hdf5::hdf5-shared) + elseif(TARGET hdf5::hdf5-static) + add_library(HDF5::HDF5 ALIAS hdf5::hdf5-static) + endif() + if(TARGET hdf5::hdf5_hl) + # pass + elseif(TARGET hdf5::hdf5_hl-shared) + add_library(hdf5::hdf5_hl ALIAS hdf5::hdf5_hl-shared) + elseif(TARGET hdf5::hdf5_hl-static) + add_library(hdf5::hdf5_hl ALIAS hdf5::hdf5_hl-static) + endif() + set(HDF5_IS_PARALLEL "${HDF5_ENABLE_PARALLEL}") message(STATUS "Found HDF5 version: ${HDF5_VERSION}") if(${HDF5_VERSION} VERSION_LESS ${HDF5_VERSION_REQUIRED}) @@ -144,7 +159,6 @@ if(USE_HDF5) message(STATUS "Using HDF5 include dir: ${HDF5_INCLUDE_DIRS}") target_link_libraries(netcdf PRIVATE - HDF5::HDF5 ) find_package(Threads) @@ -244,10 +258,10 @@ if( NETCDF_ENABLE_DAP2 OR NETCDF_ENABLE_DAP4 OR NETCDF_ENABLE_BYTERANGE_SUPPORT # ${CURL_INCLUDE_DIRS} #) if(CURL_FOUND) + set(CURL_LIBRARIES "") set(FOUND_CURL TRUE) target_link_libraries(netcdf PRIVATE - CURL::libcurl ) else() set(FOUND_CURL FALSE) @@ -345,6 +359,10 @@ if(NOT WIN32) set(HAVE_LIBM "") endif() else(NOT HAVE_LIBM) + find_library(HAVE_LIBM_M NAMES m) + if(HAVE_LIBM STREQUAL HAVE_LIBM_M) + set(HAVE_LIBM m) + endif() message(STATUS "Found Math library: ${HAVE_LIBM}") endif() endif() @@ -354,6 +372,7 @@ endif() ################################ # See if we have zlib find_package(ZLIB) +set(ZLIB_LIBRARY ZLIB::ZLIB) # Define a test flag for have zlib library if(ZLIB_FOUND) @@ -371,18 +390,25 @@ endif() ################################ MESSAGE(STATUS "Checking for filter libraries") IF (NETCDF_ENABLE_FILTER_SZIP) - find_package(Szip) + find_package(libaec CONFIG REQUIRED) + set(Szip_FOUND 1) + set(Szip_LIBRARY libaec::sz) + set(Szip_LIBRARIES "${Szip_LIBRARY}") elseif(NETCDF_ENABLE_NCZARR) - find_package(Szip) + # purely transitive endif() IF (NETCDF_ENABLE_FILTER_BZ2) - find_package(Bz2) + find_package(BZip2 REQUIRED) + set(Bz2_FOUND 1) + set(Bz2_LIBRARIES BZip2::BZip2) + set(Bzip2_LIBRARIES "${Bz2_LIBRARIES}") endif() IF (NETCDF_ENABLE_FILTER_BLOSC) find_package(Blosc) endif() IF (NETCDF_ENABLE_FILTER_ZSTD) - find_package(Zstd) + find_package(Zstd NAMES zstd REQUIRED) + set(Zstd_LIBRARIES zstd::libzstd) endif() # Accumulate standard filters @@ -412,7 +438,8 @@ endif() set(STD_FILTERS "${STD_FILTERS}${FOUND_STD_FILTERS}") IF (NETCDF_ENABLE_NCZARR_ZIP) - find_package(Zip) + find_package(Zip NAMES libzip REQUIRED) + set(Zip_LIBRARIES libzip::zip) if(Zip_FOUND) target_include_directories(netcdf PRIVATE diff --git a/libdispatch/CMakeLists.txt b/libdispatch/CMakeLists.txt index 0f5d66d..13ef7ca 100644 --- a/libdispatch/CMakeLists.txt +++ b/libdispatch/CMakeLists.txt @@ -14,6 +14,10 @@ target_sources(dispatch ncproplist.c ) +if(NETCDF_ENABLE_DAP2 OR NETCDF_ENABLE_DAP4 OR NETCDF_ENABLE_BYTERANGE) + target_link_libraries(dispatch PRIVATE CURL::libcurl) +endif() + if (NETCDF_ENABLE_DLL) target_compile_definitions(dispatch PRIVATE DLL_NETCDF DLL_EXPORT) endif() diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt index cc482d5..5f263c5 100644 --- a/liblib/CMakeLists.txt +++ b/liblib/CMakeLists.txt @@ -43,7 +43,6 @@ if(USE_HDF4) endif() if(FOUND_CURL) - target_link_libraries(netcdf PRIVATE CURL::libcurl) endif() if(NETCDF_ENABLE_DAP2) @@ -60,6 +59,7 @@ if(NETCDF_ENABLE_DAP4) $ $ ) + list(APPEND EXTRA_DEPS tinyxml2::tinyxml2) endif() if(NETCDF_ENABLE_NCZARR) @@ -74,6 +74,7 @@ if(NETCDF_ENABLE_S3_INTERNAL) PRIVATE $ ) + list(APPEND EXTRA_DEPS tinyxml2::tinyxml2) endif() if(NETCDF_ENABLE_PLUGINS) @@ -185,6 +186,14 @@ endif() if(TLL_LIBS) list(REMOVE_DUPLICATES TLL_LIBS) + # Plugins only + list(REMOVE_ITEM TLL_LIBS + ${Blosc_LIBRARIES} + ${Bz2_LIBRARIES} + ${Szip_LIBRARIES} + ${ZLIB_LIBRARY} + ${Zstd_LIBRARIES} + ) endif() target_link_libraries(netcdf PRIVATE ${TLL_LIBS}) diff --git a/libncxml/CMakeLists.txt b/libncxml/CMakeLists.txt index b8fa4b2..65f1c18 100644 --- a/libncxml/CMakeLists.txt +++ b/libncxml/CMakeLists.txt @@ -1,7 +1,7 @@ if(HAVE_LIBXML2) set(libncxml_SOURCES ncxml_xml2.c) else() - set(libncxml_SOURCES ncxml_tinyxml2.cpp tinyxml2.cpp tinyxml2.h) + set(libncxml_SOURCES ncxml_tinyxml2.cpp) endif() add_library(ncxml OBJECT ${libncxml_SOURCES}) @@ -13,6 +13,8 @@ if(HAVE_LIBXML2) ${LIBXML2_INCLUDE_DIRS} ) else() + find_package(tinyxml2 CONFIG REQUIRED GLOBAL) + target_link_libraries(ncxml PRIVATE $) target_include_directories(ncxml PUBLIC ./include diff --git a/netCDFConfig.cmake.in b/netCDFConfig.cmake.in index 987b2ad..0dfda8e 100644 --- a/netCDFConfig.cmake.in +++ b/netCDFConfig.cmake.in @@ -4,6 +4,17 @@ # @PACKAGE_INIT@ +if(NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + find_dependency(tinyxml2 CONFIG) + if("@FOUND_CURL@") + find_dependency(CURL) + endif() + if("@NETCDF_ENABLE_NCZARR_ZIP@") + find_dependency(libzip CONFIG) + endif() +endif() + set(NetCDFVersion "@PACKAGE_VERSION@") set_and_check(netCDF_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@") set_and_check(netCDF_INCLUDE_DIR "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@") @@ -42,7 +53,7 @@ set(netCDF_HAS_DISKLESS @HAS_DISKLESS@) set(netCDF_HAS_MMAP @HAS_MMAP@) if (netCDF_HAS_HDF4 OR netCDF_HAS_HDF5) include(CMakeFindDependencyMacro) - find_dependency(HDF5) + find_dependency(hdf5 CONFIG) endif () if (@HAS_PARALLEL@) diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index fbaeb21..8cdb5d4 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -4,7 +4,7 @@ # University Corporation for Atmospheric Research/Unidata. # See netcdf-c/COPYRIGHT file for more info. -set(CMAKE_BUILD_TYPE "") +set(ALL_TLL_LIBS ${HAVE_LIBM}) if(WIN32) set(PLUGINEXT "dll") @@ -86,10 +86,13 @@ buildplugin(h5unknown "h5unknown") buildplugin(h5shuffle "h5shuffle") buildplugin(h5fletcher32 "h5fletcher32") -buildplugin(h5deflate "h5deflate") +buildplugin(h5deflate "h5deflate" ZLIB::ZLIB) buildplugin(nczmisc "zmisc") buildplugin(nczhdf5filters "zhdf5filters" netcdf) +if(HAVE_SZ) + target_link_libraries(nczhdf5filters PRIVATE ${Szip_LIBRARIES}) +endif() if(NETCDF_ENABLE_BLOSC) set(h5blosc_SOURCES H5Zblosc.c) ================================================ FILE: ports/netcdf-c/fix-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bbb647c..a04ae6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1628,6 +1628,20 @@ list(REMOVE_DUPLICATES LINKFLAGS) set(LIBS ${NC_LIBS}) set(NC_LIBS "-lnetcdf") +set(NC_LIBS_PRIVATE " ${LIBS} ") +set(NC_REQUIRES_PRIVATE "") +macro(replace_pkgconfig_module PATTERN MODULE) + if(NC_LIBS_PRIVATE MATCHES " ${PATTERN} ") + string(REPLACE "${CMAKE_MATCH_0}" " " NC_LIBS_PRIVATE "${NC_LIBS_PRIVATE}") + string(APPEND NC_REQUIRES_PRIVATE " ${MODULE}") + endif() +endmacro() +replace_pkgconfig_module("-lCURL[^ ]*" "libcurl") +replace_pkgconfig_module("-lHDF5::HDF5" "hdf5") +replace_pkgconfig_module("-lhdf5::hdf5_hl" "hdf5_hl") +replace_pkgconfig_module("-ltinyxml2::tinyxml2" "tinyxml2") +replace_pkgconfig_module("-lzip::zip" "libzip") + configure_file( ${netCDF_SOURCE_DIR}/netcdf.pc.in ${netCDF_BINARY_DIR}/netcdf.pc @ONLY) diff --git a/netcdf.pc.in b/netcdf.pc.in index 238e113..5593c16 100644 --- a/netcdf.pc.in +++ b/netcdf.pc.in @@ -2,12 +2,13 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ -ccompiler=@CC@ +ccompiler=false #redacted# Name: @PACKAGE@ Description: NetCDF Client Library for C URL: https://www.unidata.ucar.edu/netcdf Version: @PACKAGE_VERSION@ Libs: -L${libdir} @NC_LIBS@ -Libs.private: @LIBS@ +Libs.private: @NC_LIBS_PRIVATE@ Cflags: -I${includedir} +Requires.private: @NC_REQUIRES_PRIVATE@ ================================================ FILE: ports/netcdf-c/fstat.patch ================================================ diff --git a/config.h.cmake.in b/config.h.cmake.in index 26a5b4773b..1a569ab8a3 100644 --- a/config.h.cmake.in +++ b/config.h.cmake.in @@ -46,7 +46,7 @@ are set when opening a binary file on Windows. */ #define read _read #define lseek _lseeki64 - #ifndef __clang__ + #if 0 #define fstat _fstat64 #endif ================================================ FILE: ports/netcdf-c/mremap.diff ================================================ diff --git a/libsrc/mmapio.c b/libsrc/mmapio.c index 98b9ddb..8a27946 100644 --- a/libsrc/mmapio.c +++ b/libsrc/mmapio.c @@ -44,7 +44,7 @@ #ifdef HAVE_MREMAP /* This is conditionalized by __USE_GNU ; why? */ - extern void *mremap(void*,size_t,size_t,int); + extern void *mremap(void*,size_t,size_t,int,...); # ifndef MREMAP_MAYMOVE # define MREMAP_MAYMOVE 1 # endif ================================================ FILE: ports/netcdf-c/no-install-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 588a2ce..bbb647c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1557,6 +1557,7 @@ endif() # in the libdir. ## if(MSVC) +elseif(0) foreach(CPP ${CMAKE_PREFIX_PATH}) file(GLOB COPY_FILES ${CPP}/lib/*.lib) endforeach() ================================================ FILE: ports/netcdf-c/plugin-install-dir.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bbb647c..34927c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -667,6 +667,9 @@ endif() if (DEFINED NETCDF_WITH_PLUGIN_DIR) # Table row 3 set(DEFAULT_PLUGIN_INSTALL_DIR "${NETCDF_WITH_PLUGIN_DIR}") set(DEFAULT_PLUGIN_SEARCH_PATH "${NETCDF_WITH_PLUGIN_DIR}${PLATFORMSEP}${PLATFORMDEFAULT}") +elseif (DEFINED CMAKE_INSTALL_PREFIX) # vcpkg: install, don't change search path + set(DEFAULT_PLUGIN_INSTALL_DIR "plugins/netcdf-c") + set(DEFAULT_PLUGIN_SEARCH_PATH "${PLATFORMDEFAULT}") elseif (DEFINED CMAKE_INSTALL_PREFIX) # Table row 2 set(DEFAULT_PLUGIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/hdf5/lib/plugin") set(DEFAULT_PLUGIN_SEARCH_PATH "${DEFAULT_PLUGIN_INSTALL_DIR}${PLATFORMSEP}${PLATFORMDEFAULT}") ================================================ FILE: ports/netcdf-c/portfile.cmake ================================================ vcpkg_download_distfile(WINDOWS_STAT1_PATCH URLS https://github.com/Unidata/netcdf-c/commit/02ba4e90a8b7683277e353c92a6b1627bb8e3dfd.patch?full_index=1 FILENAME windows-stat1-02ba4e90a8b7683277e353c92a6b1627bb8e3dfd.patch SHA512 a4b74b3f93c12696aaeb500ed27e65676f06cc14f0e1cd43664af344ce5b294409e26d68190a1c6ce9050f231902901d7afba2a5718b9759beaf069cb3d91bf0 ) vcpkg_download_distfile(WINDOWS_STAT2_PATCH URLS https://github.com/Unidata/netcdf-c/commit/d97667994ecc8ac30d4f5ea59b440b4187ab5328.patch?full_index=1 FILENAME windows-stat2-d97667994ecc8ac30d4f5ea59b440b4187ab5328.patch SHA512 dc1f4370ea65a35a2e99bdeed721b584fca9440733fed4b7a618e12b8338422bbd1fe586acd44623da7b686de17b7c2103735cc14be38ae332a13187f6855474 ) vcpkg_download_distfile(WINDOWS_STAT3_PATCH URLS https://github.com/Unidata/netcdf-c/commit/22a370fcf1332674f718395c889524b50ddb836a.patch?full_index=1 FILENAME windows-stat3-22a370fcf1332674f718395c889524b50ddb836a.patch SHA512 de289c0d7afd2c0463d6719b2fadb2ecaddbcea4b94ea0d255d4c41cc3efc9cd30af92a56ae693a65465a9e98b59ca830d51994e30f71179ef50f61c61efd41d ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Unidata/netcdf-c REF "v${VERSION}" SHA512 c82d77572a10e8d84f5c2db205f3b486add97195c1c29ee4747a6e435fbfb03e111ddb652e137086db04d820eb7542ffbac310e48fae01474f0892abad099ed6 HEAD_REF master PATCHES no-install-deps.patch dependencies.diff fix-pkgconfig.patch mremap.diff plugin-install-dir.diff fstat.patch backport-d7895f6.diff # cf. https://github.com/Unidata/netcdf-c/pull/3237 "${WINDOWS_STAT1_PATCH}" "${WINDOWS_STAT2_PATCH}" "${WINDOWS_STAT3_PATCH}" ) file(GLOB_RECURSE modules "${SOURCE_PATH}/cmake/modules/Find*.cmake") set(vendored_bzip2 blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c bzlib.h bzlib_private.h) list(TRANSFORM vendored_bzip2 PREPEND "${SOURCE_PATH}/plugins/") file(GLOB vendored_tinyxml2 "${SOURCE_PATH}/libncxml/tinyxml2.*") file(REMOVE ${modules} ${vendored_bzip2} ${vendored_tinyxml2}) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dap NETCDF_ENABLE_DAP nczarr NETCDF_ENABLE_NCZARR nczarr-zip NETCDF_ENABLE_NCZARR_ZIP netcdf-4 NETCDF_ENABLE_HDF5 plugins NETCDF_ENABLE_PLUGINS plugins NETCDF_ENABLE_FILTER_BZ2 szip NETCDF_ENABLE_FILTER_SZIP tools NETCDF_BUILD_UTILITIES zstd NETCDF_ENABLE_FILTER_ZSTD ) if(NETCDF_ENABLE_DAP OR NETCDF_ENABLE_NCZARR) list(APPEND FEATURE_OPTIONS "-DVCPKG_LOCK_FIND_PACKAGE_CURL=ON") else() list(APPEND FEATURE_OPTIONS "-DVCPKG_LOCK_FIND_PACKAGE_CURL=OFF") endif() if(VCPKG_TARGET_IS_UWP) string(APPEND VCPKG_C_FLAGS " /wd4996 /wd4703") string(APPEND VCPKG_CXX_FLAGS " /wd4996 /wd4703") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND FEATURE_OPTIONS "-DHAVE_DIRENT_H=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # netcdf-c configures in the source! OPTIONS -DBUILD_TESTING=OFF -DENABLE_PLUGIN_INSTALL=ON -DNETCDF_ENABLE_DAP_REMOTE_TESTS=OFF -DNETCDF_ENABLE_EXAMPLES=OFF -DNETCDF_ENABLE_FILTER_BLOSC=OFF -DNETCDF_ENABLE_FILTER_TESTING=OFF -DNETCDF_ENABLE_LIBXML2=OFF -DNETCDF_ENABLE_S3=OFF -DNETCDF_ENABLE_TESTS=OFF -DVCPKG_LOCK_FIND_PACKAGE_MakeDist=OFF -DVCPKG_LOCK_FIND_PACKAGE_PkgConfig=OFF -DVCPKG_LOCK_FIND_PACKAGE_ZLIB=ON ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES ENABLE_PLUGIN_INSTALL VCPKG_LOCK_FIND_PACKAGE_CURL ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/netCDF") vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/netcdf.h" "defined(DLL_NETCDF)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/nc-config" "${CURRENT_PACKAGES_DIR}/bin/nc-config") # invalid if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES nccopy ncdump ncgen ncgen3 AUTO_CLEAN ) else() vcpkg_clean_executables_in_bin(FILE_NAMES none) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/lib/libnetcdf.settings" "${CURRENT_PACKAGES_DIR}/lib/libnetcdf.settings" ) set(ncpoco_copyright "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libncpoco COPYRIGHT") file(COPY_FILE "${SOURCE_PATH}/libncpoco/COPYRIGHT" "${ncpoco_copyright}") set(ncpoco_source_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libncpoco SourceLicence") file(COPY_FILE "${SOURCE_PATH}/libncpoco/SourceLicence" "${ncpoco_source_license}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT" "${ncpoco_copyright}" "${ncpoco_source_license}") ================================================ FILE: ports/netcdf-c/use_targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dac5992..09910b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -484,7 +484,6 @@ IF(NC_EXTRA_DEPS) ENDIF() SET(EXTRA_DEPS ${EXTRA_DEPS} "${${_LIB}_DEP}") ENDFOREACH() - MESSAGE("Extra deps: ${EXTRA_DEPS}") LIST(REMOVE_DUPLICATES EXTRA_DEPS) SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${EXTRA_DEPS}) ENDIF() @@ -721,15 +720,6 @@ IF(USE_HDF5) # we will use a static library. This can be toggled # by explicitly modifying NC_FIND_SHARED_LIBS. ## - IF(NC_FIND_SHARED_LIBS) - SET(NC_HDF5_LINK_TYPE "shared") - SET(NC_HDF5_LINK_TYPE_UPPER "SHARED") - ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB) - ELSE(NC_FIND_SHARED_LIBS) - SET(NC_HDF5_LINK_TYPE "static") - SET(NC_HDF5_LINK_TYPE_UPPER "STATIC") - ADD_DEFINITIONS(-DH5_BUILT_AS_STATIC_LIB) - ENDIF(NC_FIND_SHARED_LIBS) ##### # First, find the C and HL libraries. @@ -742,7 +732,7 @@ IF(USE_HDF5) SET(SEARCH_PACKAGE_NAME ${HDF5_PACKAGE_NAME}) FIND_PACKAGE(HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS C HL CONFIG REQUIRED ${NC_HDF5_LINK_TYPE}) ELSE(MSVC) - FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) + FIND_PACKAGE(HDF5 COMPONENTS C HL CONFIG REQUIRED) ENDIF(MSVC) ## @@ -857,6 +847,19 @@ IF(USE_HDF5) ENDIF(HDF5_C_LIBRARY AND HDF5_HL_LIBRARY AND HDF5_INCLUDE_DIR) + if(TARGET hdf5::hdf5-shared) + set(HDF5_C_LIBRARY hdf5::hdf5-shared) + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-shared) + set(HDF5_HL_LIBRARIES hdf5::hdf5_hl-shared) + ADD_DEFINITIONS(-DH5_BUILT_AS_DYNAMIC_LIB) + else() + set(HDF5_C_LIBRARY hdf5::hdf5-static) + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-static) + set(HDF5_HL_LIBRARIES hdf5::hdf5_hl-static) + ADD_DEFINITIONS(-DH5_BUILT_AS_STATIC_LIB) + endif() + list(APPEND CMAKE_REQUIRED_LIBRARIES ${HDF5_C_LIBRARY}) + FIND_PACKAGE(Threads) # There is a missing case in the above code so default it @@ -985,11 +988,14 @@ ENDIF(USE_HDF5) # See if we have libcurl FIND_PACKAGE(CURL) -ADD_DEFINITIONS(-DCURL_STATICLIB=1) INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS}) # Define a test flag for have curl library -IF(CURL_LIBRARIES OR CURL_LIBRARY) +IF(CURL_FOUND) + SET(CURL_LIBRARY CURL::libcurl) + if(CURL_VERSION VERSION_GREATER_EQUAL "7.66") + set(HAVE_LIBCURL_766 TRUE CACHE INTERNAL "vcpkg") + endif() SET(FOUND_CURL TRUE) ELSE() SET(FOUND_CURL FALSE) @@ -2464,10 +2470,9 @@ IF(NC_LIBS) STRING(REPLACE "-lhdf5::hdf5_hl-static" "-lhdf5_hl" NC_LIBS ${NC_LIBS}) ENDIF() -STRING(REPLACE ";" " " LINKFLAGS "${LINKFLAGS}") - -LIST(REMOVE_DUPLICATES NC_LIBS) +LIST(REMOVE_ITEM LINKFLAGS "-L") LIST(REMOVE_DUPLICATES LINKFLAGS) +STRING(REPLACE ";" " " LINKFLAGS "${LINKFLAGS}") SET(LIBS ${NC_LIBS}) SET(NC_LIBS "-lnetcdf") diff --git a/liblib/CMakeLists.txt b/liblib/CMakeLists.txt index 5e1692f..882f1dd 100644 --- a/liblib/CMakeLists.txt +++ b/liblib/CMakeLists.txt @@ -77,6 +77,12 @@ IF(HAVE_LIBDL) ENDIF() IF(USE_HDF5) + if(TARGET hdf5::hdf5-shared) + SET(TLL_LIBS ${TLL_LIBS} hdf5::hdf5-shared hdf5::hdf5_hl-shared) + else() + SET(TLL_LIBS ${TLL_LIBS} hdf5::hdf5-static hdf5::hdf5_hl-static) + endif() +elseif(0) IF(NOT MSVC) # Some version of cmake define HDF5_hdf5_LIBRARY instead of # HDF5_LIBRARY. Same with HDF5_HL_LIBRARIES @@ -118,7 +124,6 @@ IF(ENABLE_S3_SDK) ENDIF() IF(TLL_LIBS) - LIST(REMOVE_DUPLICATES TLL_LIBS) ENDIF() TARGET_LINK_LIBRARIES(netcdf ${TLL_LIBS}) diff --git a/netCDFConfig.cmake.in b/netCDFConfig.cmake.in index 9d68eec..715e33e 100644 --- a/netCDFConfig.cmake.in +++ b/netCDFConfig.cmake.in @@ -12,6 +12,13 @@ set_and_check(netCDF_LIB_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") set(netCDF_LIBRARIES netCDF::netcdf) # include target information +include(CMakeFindDependencyMacro) +if("@USE_HDF5@") + find_dependency(HDF5 CONFIG) +endif() +if("@FOUND_CURL@") + find_dependency(CURL CONFIG) +endif() include("${CMAKE_CURRENT_LIST_DIR}/netCDFTargets.cmake") # Compiling Options ================================================ FILE: ports/netcdf-c/vcpkg.json ================================================ { "name": "netcdf-c", "version": "4.9.3", "port-version": 3, "description": "A set of self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.", "homepage": "https://github.com/Unidata/netcdf-c", "license": null, "dependencies": [ "tinyxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "dap", { "name": "nczarr", "platform": "!uwp" }, { "name": "netcdf-4", "platform": "!uwp" } ], "features": { "dap": { "description": "DAP remote access client support", "dependencies": [ { "name": "curl", "default-features": false } ] }, "nczarr": { "description": "NCZarr cloud storage access support", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "netcdf-c", "default-features": false, "features": [ "netcdf-4" ] } ] }, "nczarr-zip": { "description": "NCZarr ZIP support", "dependencies": [ { "name": "libzip", "default-features": false }, { "name": "netcdf-c", "default-features": false, "features": [ "nczarr" ] } ] }, "netcdf-4": { "description": "netCDF-4 support", "dependencies": [ { "name": "hdf5", "default-features": false, "features": [ "hl", "zlib" ] } ] }, "plugins": { "description": "Enable plugin support", "supports": "!static & !uwp", "dependencies": [ { "name": "bzip2", "default-features": false }, "zlib" ] }, "szip": { "description": "Szip compression plugin", "dependencies": [ "libaec", { "name": "netcdf-c", "default-features": false, "features": [ "plugins" ] } ] }, "tools": { "description": "Build utilities" }, "zstd": { "description": "Zstandard compression plugin", "dependencies": [ { "name": "netcdf-c", "default-features": false, "features": [ "plugins" ] }, "zstd" ] } } } ================================================ FILE: ports/netcdf-cxx4/export-cmake-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f06fcc0..a19ab28 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -622,9 +622,23 @@ write_basic_package_version_file( VERSION ${NCXX_VERSION} COMPATIBILITY SameMajorVersion ) + +install( + EXPORT netcdf-cxx4Targets + FILE netcdf-cxx4Targets.cmake + NAMESPACE netCDF:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/netCDFCxx + ) +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/netCDFCxxConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/netCDFCxxConfig.cmake" + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/netCDFCxx" + ) + install( FILES + "${CMAKE_CURRENT_BINARY_DIR}/netCDFCxxConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/netCDF/netCDFCxxConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/netCDFCxx COMPONENT headers diff --git a/cxx4/CMakeLists.txt b/cxx4/CMakeLists.txt index b433786..5ef4bed 100644 --- a/cxx4/CMakeLists.txt +++ b/cxx4/CMakeLists.txt @@ -32,7 +32,7 @@ SET(ALL_TLL_LIBS ${ALL_TLL_LIBS} ${HDF5_C_LIBRARY_hdf5}) SET(ALL_TLL_LIBS ${ALL_TLL_LIBS} ${EXTRA_DEPS} PARENT_SCOPE) ADD_LIBRARY(netcdf-cxx4 ${CXX_SOURCES}) -TARGET_INCLUDE_DIRECTORIES(netcdf-cxx4 PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") +TARGET_INCLUDE_DIRECTORIES(netcdf-cxx4 PUBLIC $ $) TARGET_LINK_LIBRARIES(netcdf-cxx4 ${ALL_TLL_LIBS}) SET_TARGET_PROPERTIES(netcdf-cxx4 PROPERTIES VERSION ${NCXX_LIB_VERSION} @@ -49,6 +49,7 @@ INSTALL( ) INSTALL( TARGETS netcdf-cxx4 + EXPORT netcdf-cxx4Targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ================================================ FILE: ports/netcdf-cxx4/fix-dependecy-hdf5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 60c699d..f06fcc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -395,14 +395,20 @@ ENDIF(NC_HAS_DEF_VAR_FILTER) ### # Find HDF5 ### -IF(MSVC) +IF(0) SET(SEARCH_PACKAGE_NAME ${HDF5_PACKAGE_NAME}) FIND_PACKAGE(HDF5 NAMES ${SEARCH_PACKAGE_NAME} COMPONENTS C HL NO_MODULES REQUIRED ${NC_HDF5_LINK_TYPE}) ELSE(MSVC) - FIND_PACKAGE(HDF5 COMPONENTS C HL REQUIRED) + FIND_PACKAGE(hdf5 CONFIG REQUIRED) + set(HDF5_FOUND ${hdf5_FOUND}) + if (NOT HDF5_USE_STATIC_LIBRARIES) + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-shared hdf5::hdf5_hl-shared) + else() + set(HDF5_C_LIBRARY_hdf5 hdf5::hdf5-static hdf5::hdf5_hl-static) + endif() ENDIF(MSVC) -CHECK_LIBRARY_EXISTS(${HDF5_C_LIBRARY_hdf5} H5free_memory "" HAVE_H5FREE_MEMORY) +set(HAVE_H5FREE_MEMORY ON) IF(NOT HAVE_H5FREE_MEMORY) MESSAGE(STATUS "Plugin support requires libhdf5 with H5Free support. Your libhdf5 install does not provide H5Free. Please install a newer version of libhdf5 if you require plugin compression support.") SET(NC_HAS_DEF_VAR_FILTER "") diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt index 30a4a96..1809d29 100644 --- a/plugins/CMakeLists.txt +++ b/plugins/CMakeLists.txt @@ -23,7 +23,7 @@ SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES OUTPUT_NAME "bzip2") SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES LIBRARY_OUTPUT_NAME "h5bzip2") SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES ARCHIVE_OUTPUT_NAME "h5bzip2") SET_TARGET_PROPERTIES(test_bzip2 PROPERTIES RUNTIME_OUTPUT_NAME "h5bzip2") -TARGET_LINK_LIBRARIES(test_bzip2 ${ALL_TLL_LIBS}) +TARGET_LINK_LIBRARIES(test_bzip2 ${ALL_TLL_LIBS} ${HDF5_C_LIBRARY_hdf5}) ADD_LIBRARY(misc MODULE ${libmisc_SOURCES}) SET_TARGET_PROPERTIES(misc PROPERTIES LIBRARY_OUTPUT_NAME "misc") ================================================ FILE: ports/netcdf-cxx4/netCDFCxxConfig.cmake.in ================================================ # NetCDF CXX Configuration Summary @PACKAGE_INIT@ include(CMakeFindDependencyMacro) if (@netCDF_FOUND@) if(EXISTS "@netCDF_ROOT@") set(netCDF_ROOT "@netCDF_ROOT@") endif() if(EXISTS "@netCDF_DIR@") set(netCDF_DIR "@netCDF_DIR@") endif() find_dependency(netCDF) set(NETCDF_C_LIBRARY ${netCDF_LIBRARIES}) set(NETCDF_C_INCLUDE_DIR ${netCDF_INCLUDE_DIR}) else() set(NETCDF_C_LIBRARY "@NETCDF_C_LIBRARY@") set(NETCDF_C_INCLUDE_DIR "@NETCDF_C_INCLUDE_DIR@") endif() if (NOT TARGET netCDF::netcdf) add_library(netCDF::netcdf UNKNOWN IMPORTED) set_target_properties(netCDF::netcdf PROPERTIES IMPORTED_LOCATION "${NETCDF_C_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${NETCDF_C_INCLUDE_DIR}" ) endif() include("${CMAKE_CURRENT_LIST_DIR}/netcdf-cxx4Targets.cmake") ================================================ FILE: ports/netcdf-cxx4/portfile.cmake ================================================ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" HDF5_USE_STATIC_LIBRARIES) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Unidata/netcdf-cxx4 REF f8882188267488ef801691e69ad072e3eb217ad8 # v4.3.1 SHA512 9816acf221d196e21af19d4c3d85484934916e7c018e9b2c96aab9f5660b2f08c5db9cd8254ba3fa5f0aa5f5c5ad7bd3a3aaba559e5e640c5349d44e07a20ed3 HEAD_REF master PATCHES fix-dependecy-hdf5.patch export-cmake-targets.patch ) #Provided by upstream https://github.com/Unidata/netcdf-cxx4/blob/master/netCDFCxxConfig.cmake.in file(COPY "${CMAKE_CURRENT_LIST_DIR}/netCDFCxxConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNCXX_ENABLE_TESTS=OFF -DCMAKE_INSTALL_CMAKECONFIGDIR=share/netCDFCxx -DHDF5_USE_STATIC_LIBRARIES=${HDF5_USE_STATIC_LIBRARIES} # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/netCDFCxx PACKAGE_NAME netCDFCxx) vcpkg_copy_pdbs() 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") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/netcdf-cxx4/vcpkg.json ================================================ { "name": "netcdf-cxx4", "version": "4.3.1", "port-version": 5, "description": "a set of machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data.", "homepage": "https://github.com/Unidata/netcdf-cxx4", "dependencies": [ "hdf5", "netcdf-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/netcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO index1207/netcpp REF "v${VERSION}" SHA512 5f0c7a9ad414b868c23cde4c16a605c2029631935b252b3faa4e485ec1efa3dbfe64fd0b068db8e018481b6ac83f819facc1db371470be42c6919fcf69005e17 HEAD_REF release ) set(options -DNETCPP_TEST=OFF) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND options "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic") list(APPEND options -DNETCPP_BUILD_SHARED=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/netcpp PACKAGE_NAME netcpp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/netcpp/usage ================================================ netcpp provides CMake targets: find_package(netcpp CONFIG REQUIRED) target_link_libraries(main PRIVATE netcpp::netcpp) ================================================ FILE: ports/netcpp/vcpkg.json ================================================ { "name": "netcpp", "version": "0.5.0", "description": "A simple asynchronous network library", "homepage": "https://github.com/index1207/netcpp", "license": "MIT", "supports": "windows | linux", "dependencies": [ { "name": "liburing", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/netgen/142.diff ================================================ diff --git a/cmake/generate_version_file.cmake b/cmake/generate_version_file.cmake index c4a579d1..c47b6039 100644 --- a/cmake/generate_version_file.cmake +++ b/cmake/generate_version_file.cmake @@ -39,7 +39,7 @@ string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-([0-9a-z]+).*" "\\1" set(NETGEN_VERSION_SHORT ${NETGEN_VERSION_MAJOR}.${NETGEN_VERSION_MINOR}.${NETGEN_VERSION_PATCH}) set(NETGEN_VERSION_LONG ${NETGEN_VERSION_SHORT}-${NETGEN_VERSION_TWEAK}-${NETGEN_VERSION_HASH}) -if(NETGEN_VERSION_TWEAK) +if(NETGEN_VERSION_TWEAK AND NOT NETGEN_VERSION_TWEAK STREQUAL git_version_string) # no release version - nightly build set(NETGEN_VERSION ${NETGEN_VERSION_LONG}) else() ================================================ FILE: ports/netgen/add_filesystem.patch ================================================ diff --git a/libsrc/core/logging.hpp b/libsrc/core/logging.hpp index adfed7e..d34d3e9 100644 --- a/libsrc/core/logging.hpp +++ b/libsrc/core/logging.hpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "exception.hpp" #include "ngcore_api.hpp" ================================================ FILE: ports/netgen/cgns-scoped-enum.patch ================================================ diff --git a/libsrc/interface/rw_cgns.cpp b/libsrc/interface/rw_cgns.cpp index 096fbfdca..edf199cfd 100644 --- a/libsrc/interface/rw_cgns.cpp +++ b/libsrc/interface/rw_cgns.cpp @@ -6,6 +6,37 @@ #include +//vcpkg builds cgns with scoped enumes. So the associcated types and values need to be correctly scoped. +#define ElementType_t CGNS_ENUMT(ElementType_t) +#define GridLocation_t CGNS_ENUMT(GridLocation_t) +#define PointSetType_t CGNS_ENUMT(PointSetType_t) +#define DataType_t CGNS_ENUMT(DataType_t) +#define ZoneType_t CGNS_ENUMT(ZoneType_t) +#define Unstructured CGNS_ENUMV(Unstructured) +#define RealDouble CGNS_ENUMV(RealDouble) +#define MIXED CGNS_ENUMV(MIXED) +#define EdgeCenter CGNS_ENUMV(EdgeCenter) +#define KFaceCenter CGNS_ENUMV(KFaceCenter) +#define JFaceCenter CGNS_ENUMV(JFaceCenter) +#define IFaceCenter CGNS_ENUMV(IFaceCenter) +#define FaceCenter CGNS_ENUMV(FaceCenter) +#define CellCenter CGNS_ENUMV(CellCenter) +#define Vertex CGNS_ENUMV(Vertex) +#define BAR_2 CGNS_ENUMV(BAR_2) +#define BAR_3 CGNS_ENUMV(BAR_3) +#define TRI_3 CGNS_ENUMV(TRI_3) +#define TRI_6 CGNS_ENUMV(TRI_6) +#define QUAD_4 CGNS_ENUMV(QUAD_4) +#define QUAD_8 CGNS_ENUMV(QUAD_8) +#define TETRA_4 CGNS_ENUMV(TETRA_4) +#define TETRA_10 CGNS_ENUMV(TETRA_10) +#define PYRA_5 CGNS_ENUMV(PYRA_5) +#define PYRA_13 CGNS_ENUMV(PYRA_13) +#define HEXA_8 CGNS_ENUMV(HEXA_8) +#define HEXA_20 CGNS_ENUMV(HEXA_20) +#define PENTA_6 CGNS_ENUMV(PENTA_6) +#define PENTA_15 CGNS_ENUMV(PENTA_15) + namespace netgen::cg { typedef ngcore::ClosedHashTable, size_t> PointTable; @@ -215,7 +246,7 @@ namespace netgen::cg if(codim==2) name += mesh.GetCD2Name(index); int ne = 0; - Array data; + Array data; if(dim==3) for(const auto el : mesh.VolumeElements()) @@ -333,7 +364,7 @@ namespace netgen::cg ZoneType_t zone_type; int fn, base, zone; int first_index_1d, first_index_2d, first_index_3d; - int nv=0, ne_1d=0, ne_2d=0, ne_3d=0; + cgsize_t nv=0, ne_1d=0, ne_2d=0, ne_3d=0; Array names_1d, names_2d, names_3d; @@ -643,7 +674,7 @@ namespace netgen int n_vertices = 0; for (auto zi : Range(1, nzones+1)) { - int size[3]; + cgsize_t size[3]; char name[100]; cg_zone_read(fn,base,zi, name, size); n_vertices += size[0]; ================================================ FILE: ports/netgen/cmake-adjustments.patch ================================================ diff --git a/libsrc/core/CMakeLists.txt b/libsrc/core/CMakeLists.txt index c4f4795..cd5ad50 100644 --- a/libsrc/core/CMakeLists.txt +++ b/libsrc/core/CMakeLists.txt @@ -28,8 +28,7 @@ endif(USE_PYTHON) if(WIN32) target_compile_options(ngcore PUBLIC /bigobj /MP /W1 /wd4068) - get_WIN32_WINNT(ver) - target_compile_definitions(ngcore PUBLIC _WIN32_WINNT=${ver} WNT WNT_WINDOW NOMINMAX MSVC_EXPRESS _CRT_SECURE_NO_WARNINGS HAVE_STRUCT_TIMESPEC WIN32) + target_compile_definitions(ngcore PUBLIC WNT WNT_WINDOW NOMINMAX MSVC_EXPRESS _CRT_SECURE_NO_WARNINGS HAVE_STRUCT_TIMESPEC WIN32) target_link_options(ngcore PUBLIC /ignore:4273 /ignore:4217 /ignore:4049) endif(WIN32) ================================================ FILE: ports/netgen/cross-build.patch ================================================ diff --git a/libsrc/core/exception.cpp b/libsrc/core/exception.cpp index 9c99a138..2d5a1ede 100644 --- a/libsrc/core/exception.cpp +++ b/libsrc/core/exception.cpp @@ -36,7 +36,7 @@ namespace ngcore // ********* STUFF FOR GETBACKTRACE *************************** -#if defined __GNUC__ && !defined __EMSCRIPTEN__ +#if defined __GNUC__ && !defined __EMSCRIPTEN__ && !defined __ANDROID__ #include #include diff --git a/libsrc/core/simd.hpp b/libsrc/core/simd.hpp index d5a6341f..5f07a6d3 100644 --- a/libsrc/core/simd.hpp +++ b/libsrc/core/simd.hpp @@ -28,7 +28,7 @@ #include "simd_avx512.hpp" #endif -#ifdef __aarch64__ +#if defined __aarch64__ && !defined __ANDROID__ #include "simd_arm64.hpp" #endif diff --git a/libsrc/core/utils.hpp b/libsrc/core/utils.hpp index 79d919c0..1318debf 100644 --- a/libsrc/core/utils.hpp +++ b/libsrc/core/utils.hpp @@ -74,7 +74,7 @@ namespace ngcore #elif defined(__EMSCRIPTEN__) return std::chrono::high_resolution_clock::now().time_since_epoch().count(); #else -#warning "Unsupported CPU architecture" +#pragma message ( "Unsupported CPU architecture" ) return 0; #endif } diff --git a/rules/CMakeLists.txt b/rules/CMakeLists.txt index 2c281ca3..e2982f28 100644 --- a/rules/CMakeLists.txt +++ b/rules/CMakeLists.txt @@ -1,14 +1,14 @@ # this file is included from the parent directory (otherwise generated source files are not recognized properly by cmake) # generate .cpp files containing the string of the .rls meshing rule files -if(EMSCRIPTEN) - add_custom_command(OUTPUT makerls - COMMAND g++ ${CMAKE_CURRENT_SOURCE_DIR}/rules/makerlsfile.cpp -o ${CMAKE_CURRENT_BINARY_DIR}/makerls - ) - set(rules_command ${CMAKE_BINARY_DIR}/makerls) -else(EMSCRIPTEN) +if(MAKERLS_EXECUTABLE) + add_executable(makerls IMPORTED) + set_target_properties(makerls PROPERTIES IMPORTED_LOCATION "${MAKERLS_EXECUTABLE}") + set(rules_command makerls) +else() add_executable(makerls rules/makerlsfile.cpp) set(rules_command makerls) + install(TARGETS makerls DESTINATION ${NG_INSTALL_DIR} COMPONENT netgen) endif() set(rules ================================================ FILE: ports/netgen/downstream-fixes.patch ================================================ diff --git a/libsrc/stlgeom/stltopology.hpp b/libsrc/stlgeom/stltopology.hpp index 2a3822f70..a14dc5bda 100644 --- a/libsrc/stlgeom/stltopology.hpp +++ b/libsrc/stlgeom/stltopology.hpp @@ -350,7 +350,7 @@ public: int GetNP() const { return points.Size(); } int AddPoint(const Point<3> & p) { points.Append(p); return points.Size(); } const Point<3> & GetPoint(STLPointId nr) const { return points[nr]; } // .Get(nr); } + DLL_HEADER int GetPointNum (const Point<3> & p); - int GetPointNum (const Point<3> & p); void SetPoint(STLPointId nr, const Point<3> & p) { points[nr] = p; } // { points.Elem(nr) = p; } auto & GetPoints() const { return points; } diff --git a/nglib/nglib.cpp b/nglib/nglib.cpp index ee25f3814..c8fe35cb2 100644 --- a/nglib/nglib.cpp +++ b/nglib/nglib.cpp @@ -619,6 +619,7 @@ namespace nglib } */ geo->AddEdges(readedges); + readedges.SetSize(0); } if (geo->GetStatus() == STLTopology::STL_GOOD || geo->GetStatus() == STLTopology::STL_WARNING) return NG_OK; ================================================ FILE: ports/netgen/git-ver.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e9f4cc..bf92061 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -430,7 +430,8 @@ endif (USE_MPEG) ####################################################################### add_custom_target(ng_generate_version_file ${CMAKE_COMMAND} - -DBDIR=${CMAKE_CURRENT_BINARY_DIR} + -DBDIR=${CMAKE_CURRENT_BINARY_DIR} + -DNETGEN_VERSION_GIT=${NETGEN_VERSION_GIT} -P ${CMAKE_CURRENT_LIST_DIR}/cmake/generate_version_file.cmake ) ####################################################################### ================================================ FILE: ports/netgen/occ-78.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0846f39bd..f7516afa4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -372,25 +372,20 @@ if (USE_OCC) TKGeomAlgo TKGeomBase TKHLR - TKIGES TKLCAF TKMath TKMesh TKOffset TKPrim - TKSTEP - TKSTEP209 - TKSTEPAttr - TKSTEPBase - TKSTL + TKDESTL TKService TKShHealing TKTopAlgo TKV3d TKVCAF TKXCAF - TKXDEIGES - TKXDESTEP + TKDEIGES + TKDESTEP TKXSBase TKernel ) diff --git a/libsrc/occ/Partition_Loop3d.hxx b/libsrc/occ/Partition_Loop3d.hxx index e1716691c..e8a434911 100644 --- a/libsrc/occ/Partition_Loop3d.hxx +++ b/libsrc/occ/Partition_Loop3d.hxx @@ -10,27 +10,16 @@ #ifndef _Partition_Loop3d_HeaderFile #define _Partition_Loop3d_HeaderFile -#ifndef _TopTools_ListOfShape_HeaderFile -#include -#endif -#ifndef _TopTools_IndexedDataMapOfShapeListOfShape_HeaderFile -#include -#endif -#ifndef _Standard_Boolean_HeaderFile +#include #include -#endif -#ifndef _Standard_Real_HeaderFile #include -#endif -#ifndef _Standard_Version_HeaderFile -#include -#endif +#include +#include -#if OCC_VERSION_HEX < 0x070000 +#if OCC_VERSION_HEX < 0x070000 || OCC_VERSION_HEX > 0x070799 #else #include #include - #include #endif class TopoDS_Shape; @@ -38,6 +27,8 @@ class TopoDS_Shape; #if OCC_VERSION_HEX < 0x070000 class TopTools_ListOfShape; class TopTools_MapOfOrientedShape; +#else +#include #endif class TopoDS_Edge; diff --git a/libsrc/occ/occ_edge.cpp b/libsrc/occ/occ_edge.cpp index 0c907d78b..fd64c9a42 100644 --- a/libsrc/occ/occ_edge.cpp +++ b/libsrc/occ/occ_edge.cpp @@ -55,7 +55,11 @@ namespace netgen size_t OCCEdge::GetHash() const { +#if OCC_VERSION_HEX < 0x070800 return edge.HashCode(std::numeric_limits::max()); +#else + return std::hash{}(edge); +#endif } void OCCEdge::ProjectPoint(Point<3>& p, EdgePointGeomInfo* gi) const diff --git a/libsrc/occ/occ_face.cpp b/libsrc/occ/occ_face.cpp index 239982aa8..ea4dd15b4 100644 --- a/libsrc/occ/occ_face.cpp +++ b/libsrc/occ/occ_face.cpp @@ -32,7 +32,11 @@ namespace netgen size_t OCCFace::GetHash() const { +#if OCC_VERSION_HEX < 0x070800 return face.HashCode(std::numeric_limits::max()); +#else + return std::hash{}(face); +#endif } Point<3> OCCFace::GetCenter() const diff --git a/libsrc/occ/occ_solid.hpp b/libsrc/occ/occ_solid.hpp index d598de4a2..66f28d73a 100644 --- a/libsrc/occ/occ_solid.hpp +++ b/libsrc/occ/occ_solid.hpp @@ -16,8 +16,11 @@ namespace netgen OCCSolid(TopoDS_Shape dshape) : solid(TopoDS::Solid(dshape)) { } - +#if OCC_VERSION_HEX < 0x070800 size_t GetHash() const override { return solid.HashCode(std::numeric_limits::max()); } +#else + size_t GetHash() const override { return std::hash{}(solid); } +#endif }; } diff --git a/libsrc/occ/occ_vertex.cpp b/libsrc/occ/occ_vertex.cpp index 6e83c8944..be8e38732 100644 --- a/libsrc/occ/occ_vertex.cpp +++ b/libsrc/occ/occ_vertex.cpp @@ -19,6 +19,10 @@ namespace netgen size_t OCCVertex::GetHash() const { +#if OCC_VERSION_HEX < 0x070800 return vertex.HashCode(std::numeric_limits::max()); +#else + return std::hash{}(vertex); +#endif } } diff --git a/libsrc/occ/occgeom.cpp b/libsrc/occ/occgeom.cpp index bc0383f99..826134ba0 100644 --- a/libsrc/occ/occgeom.cpp +++ b/libsrc/occ/occgeom.cpp @@ -1716,9 +1716,13 @@ namespace netgen /* // enumerate shapes and archive only integers auto my_hash = [](const TopoDS_Shape & key) { +#if OCC_VERSION_HEX < 0x070800 auto occ_hash = key.HashCode(1<<31UL); return std::hash()(occ_hash); +#else + return std::hash{}(key); +#endif }; */ TopTools_IndexedMapOfShape shape_map; Array shape_list; ================================================ FILE: ports/netgen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NGSolve/netgen REF v${VERSION} SHA512 82095c51f2486d9f2a59d8fd696e305096ef63df5c40fef1fd95a8e8c3eb3735f7be29929105e588b8c1b6d6941d1e4c05f7f09e0d1c866c1105d5c1c064f932 HEAD_REF master PATCHES git-ver.patch static-exports.patch cmake-adjustments.patch vcpkg-fix-cgns-link.patch cgns-scoped-enum.patch downstream-fixes.patch add_filesystem.patch occ-78.patch 142.diff cross-build.patch ) set(OPTIONS "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND OPTIONS "-DNGLIB_LIBRARY_TYPE=STATIC" "-DNGCORE_LIBRARY_TYPE=STATIC" "-DNGGUI_LIBRARY_TYPE=STATIC" ) string(APPEND VCPKG_C_FLAGS " -DNGSTATIC_BUILD") string(APPEND VCPKG_CXX_FLAGS " -DNGSTATIC_BUILD") endif() if(VCPKG_CROSSCOMPILING) list(APPEND OPTIONS "-DMAKERLS_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/makerls${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES python USE_PYTHON cgns USE_CGNS mpeg USE_MPEG jpeg USE_JPEG occ USE_OCC ) vcpkg_cmake_configure( DISABLE_PARALLEL_CONFIGURE SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} ${FEATURE_OPTIONS} -DUSE_SPDLOG=OFF # will be vendored otherwise -DUSE_GUI=OFF -DPREFER_SYSTEM_PYBIND11=ON -DENABLE_UNIT_TESTS=OFF -DUSE_NATIVE_ARCH=OFF -DUSE_MPI=OFF -DUSE_SUPERBUILD=OFF -DNETGEN_VERSION_GIT=v${VERSION} # this variable is patched in via git-ver.patch -DNG_INSTALL_DIR_CMAKE=lib/cmake/netgen -DNG_INSTALL_DIR_BIN=bin -DNG_INSTALL_DIR_LIB=lib -DNG_INSTALL_DIR_RES=share -DNG_INSTALL_DIR_INCLUDE=include -DNG_INSTALL_DIR_PYTHON=${PYTHON3_SITE} -DSKBUILD=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/netgen) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") if(NOT VCPKG_CROSSCOMPILING) vcpkg_copy_tools(TOOL_NAMES makerls AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(USE_OCC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/nglib.h" "define NGLIB\n" "define NGLIB\n#define OCCGEOMETRY\n") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/nglib.h" "defined(NGSTATIC_BUILD)" "1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/core/ngcore_api.hpp" "!defined(NGSTATIC_BUILD)" "0") endif() set(config_file "${CURRENT_PACKAGES_DIR}/share/netgen/NetgenConfig.cmake") file(READ "${config_file}" contents) string(REPLACE "${SOURCE_PATH}" "NOT-USABLE" contents "${contents}") string(REPLACE [[${NETGEN_CMAKE_DIR}/../../..]] [[${NETGEN_CMAKE_DIR}/../..]] contents "${contents}") string(REPLACE [[lib/cmake/netgen]] [[share/netgen]] contents "${contents}") string(REPLACE [[$:]] [[$<$>:]] contents "${contents}") if(NOT VCPKG_BUILD_TYPE) string(REPLACE [[/lib/]] [[$<$:/debug>/lib/]] contents "${contents}") string(REPLACE [[optimized;${VCPKG_IMPORT_PREFIX}$<$:/debug>/lib/]] [[optimized;${VCPKG_IMPORT_PREFIX}/lib/]] contents "${contents}") string(REPLACE [[debug;${VCPKG_IMPORT_PREFIX}/debug$<$:/debug>/lib/]] [[debug;${VCPKG_IMPORT_PREFIX}/debug/lib/]] contents "${contents}") endif() file(WRITE "${config_file}" "${contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("python" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/netgen/config.py" "CMAKE_INSTALL_PREFIX = \"${CURRENT_PACKAGES_DIR}" "CMAKE_INSTALL_PREFIX_NOT_USABLE = \"") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/netgen/config.py" "CMAKE_INSTALL_PREFIX = \"${CURRENT_PACKAGES_DIR}" "CMAKE_INSTALL_PREFIX_NOT_USABLE = \"") endif() endif() ================================================ FILE: ports/netgen/static-exports.patch ================================================ diff --git a/libsrc/core/ngcore_api.hpp b/libsrc/core/ngcore_api.hpp index e66e9b8..4ecaa05 100644 --- a/libsrc/core/ngcore_api.hpp +++ b/libsrc/core/ngcore_api.hpp @@ -35,8 +35,13 @@ #ifdef WIN32 +#if !defined(NGSTATIC_BUILD) #define NGCORE_API_EXPORT __declspec(dllexport) #define NGCORE_API_IMPORT __declspec(dllimport) +#else + #define NGCORE_API_EXPORT + #define NGCORE_API_IMPORT +#endif #else #define NGCORE_API_EXPORT __attribute__((visibility("default"))) #define NGCORE_API_IMPORT __attribute__((visibility("default"))) diff --git a/nglib/nglib.h b/nglib/nglib.h index f8c745a..e4587d2 100644 --- a/nglib/nglib.h +++ b/nglib/nglib.h @@ -26,11 +26,15 @@ // Philippose - 14.02.2009 // Modifications for creating a DLL in Windows #ifdef WIN32 + #if defined(NGSTATIC_BUILD) + #define NGLIB_API + #else #ifdef nglib_EXPORTS #define NGLIB_API __declspec(dllexport) #else #define NGLIB_API __declspec(dllimport) #endif + #endif #else #define NGLIB_API __attribute__((visibility("default"))) #endif ================================================ FILE: ports/netgen/vcpkg-fix-cgns-link.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bf92061..933505d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -500,7 +500,7 @@ endif(ENABLE_CPP_CORE_GUIDELINES_CHECK) add_library(netgen_cgns INTERFACE) if(USE_CGNS) - find_library( CGNS_LIBRARY NAMES cgns cgnsdll ) + find_library( CGNS_LIBRARY NAMES cgnsdll cgns) find_path( CGNS_INCLUDE_DIR cgnslib.h ) target_compile_definitions(netgen_cgns INTERFACE NG_CGNS) target_include_directories(netgen_cgns INTERFACE ${CGNS_INCLUDE_DIR}) ================================================ FILE: ports/netgen/vcpkg.json ================================================ { "name": "netgen", "version": "6.2.2401", "port-version": 2, "description": "NETGEN is an automatic 3d tetrahedral mesh generator. It accepts input from constructive solid geometry (CSG) or boundary representation (BRep) from STL file format. The connection to a geometry kernel allows the handling of IGES and STEP files. NETGEN contains modules for mesh optimization and hierarchical mesh refinement.", "homepage": "https://ngsolve.org/", "license": "LGPL-2.1-or-later", "supports": "arm64 | x64", "dependencies": [ { "name": "netgen", "host": true, "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "cgns": { "description": "CGNS file read/write support", "dependencies": [ { "name": "cgns", "default-features": false } ] }, "jpeg": { "description": "enable snapshots using library libjpeg", "dependencies": [ "libjpeg-turbo" ] }, "mpeg": { "description": "enable video recording with FFmpeg", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec" ] } ] }, "occ": { "description": "build with OpenCascade geometry kernel interface", "dependencies": [ { "name": "opencascade", "default-features": false } ] }, "python": { "description": "Build python bindings", "dependencies": [ "pybind11", "python3" ] } } } ================================================ FILE: ports/nethost/0001-nethost-cmakelists.patch ================================================ diff --git a/src/native/corehost/nethost/CMakeLists.txt b/src/native/corehost/nethost/CMakeLists.txt index 5ae3f76e8fe..9c0209ba9bc 100644 --- a/src/native/corehost/nethost/CMakeLists.txt +++ b/src/native/corehost/nethost/CMakeLists.txt @@ -1,11 +1,14 @@ # Licensed to the .NET Foundation under one or more agreements. # The .NET Foundation licenses this file to you under the MIT license. +cmake_minimum_required (VERSION 3.14.5) project(nethost) set(DOTNET_PROJECT_NAME "nethost") # Include directories +include(../../../../eng/native/configurepaths.cmake) +include("${CLR_ENG_NATIVE_DIR}/configurecompiler.cmake") include_directories(../fxr) # CMake does not recommend using globbing since it messes with the freshness checks @@ -19,12 +22,23 @@ if(CLR_CMAKE_TARGET_WIN32) Exports.def) endif() +if(BUILD_SHARED_LIBS) include(../lib.cmake) +set(targets nethost) +else() +include(../hostmisc/hostmisc.cmake) include(../lib_static.cmake) +add_library(nethost INTERFACE) +target_link_libraries(nethost INTERFACE libnethost) +set(targets libnethost nethost) +target_include_directories(libnethost INTERFACE $) +endif() +target_include_directories(nethost INTERFACE $) add_definitions(-DFEATURE_LIBHOST=1) add_definitions(-DNETHOST_EXPORT) +if(NOT BUILD_SHARED_LIBS) # Copy static lib PDB to the project output directory if (WIN32) set_target_properties(libnethost PROPERTIES @@ -32,12 +46,17 @@ if (WIN32) COMPILE_PDB_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}" ) endif(WIN32) +endif() -install(FILES ../coreclr_delegates.h DESTINATION corehost) -install(FILES ../hostfxr.h DESTINATION corehost) -install(FILES nethost.h DESTINATION corehost) -install_with_stripped_symbols(nethost TARGETS corehost) +set(NETHOST_HEADERS nethost.h ../coreclr_delegates.h ../hostfxr.h) +install(FILES ${NETHOST_HEADERS} DESTINATION include) +install(TARGETS ${targets} EXPORT unofficial-nethost-config + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) +if(NOT BUILD_SHARED_LIBS) if (MSVC) # We ship libnethost.lib as a static library for external consumption, so # LTCG must be disabled to ensure that non-MSVC toolchains can work with it. @@ -47,10 +66,10 @@ if (MSVC) string(REPLACE "/LTCG" "" CMAKE_STATIC_LINKER_FLAGS_RELEASE ${CMAKE_STATIC_LINKER_FLAGS_RELEASE}) string(REPLACE "/LTCG" "" CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO ${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO}) endif() +endif() -# Only Windows creates a symbols file for static libs. -if (WIN32) - install_with_stripped_symbols(libnethost TARGETS corehost) -else() - install(TARGETS libnethost DESTINATION corehost) -endif(WIN32) +install(EXPORT unofficial-nethost-config + DESTINATION share/unofficial-nethost + FILE unofficial-nethost-config.cmake + NAMESPACE unofficial::nethost:: +) ================================================ FILE: ports/nethost/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dotnet/runtime REF "v${VERSION}" SHA512 b37918299f0e8723c41052b86479f91df76c54bcade97305aeef8034b8ebab7768dcac4517bdf6e6173102baf60764f23ce89ae681f1514049ee421a563f713e HEAD_REF master PATCHES 0001-nethost-cmakelists.patch ) file(MAKE_DIRECTORY "${SOURCE_PATH}/artifacts/obj") set(copy_version_files sh -c "${SOURCE_PATH}/eng/native/version/copy_version_files.sh") if(VCPKG_HOST_IS_WINDOWS) set(copy_version_files cmd /C "eng\\native\\version\\copy_version_files.cmd") endif() vcpkg_execute_required_process( COMMAND ${copy_version_files} WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "copy_version_files-${TARGET_TRIPLET}" ) if(VCPKG_TARGET_IS_WINDOWS) set(RID_PLAT "win") elseif(VCPKG_TARGET_IS_OSX) set(RID_PLAT "osx") elseif(VCPKG_TARGET_IS_LINUX) set(RID_PLAT "linux") else() message(FATAL_ERROR "Unsupported platform") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(RID_ARCH "x86") set(ARCH_NAME "I386") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(RID_ARCH "x64") set(ARCH_NAME "AMD64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(RID_ARCH "arm") set(ARCH_NAME "ARM") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(RID_ARCH "arm64") set(ARCH_NAME "ARM64") else() message(FATAL_ERROR "Unsupported architecture") endif() set(BASE_RID "${RID_PLAT}-${RID_ARCH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src/native/corehost/nethost/" # vcpkg's /utf-8 is incompatible with dotnet's own /source-charset:utf-8 NO_CHARSET_FLAG OPTIONS "-DSKIP_VERSIONING=1" "-DCLI_CMAKE_PKG_RID:STRING=${BASE_RID}" "-DCLI_CMAKE_FALLBACK_OS:STRING=${RID_PLAT}" "-DCLI_CMAKE_COMMIT_HASH:STRING=v${VERSION}" "-DCLR_CMAKE_TARGET_ARCH_${ARCH_NAME}=1" "-DCLR_CMAKE_TARGET_ARCH=${RID_ARCH}" "-DCLR_CMAKE_HOST_ARCH=${RID_ARCH}" MAYBE_UNUSED_VARIABLES SKIP_VERSIONING # only used on WIN32 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-nethost) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/nethost.h" "#ifdef NETHOST_USE_AS_STATIC" "#if 1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/nethost.h" "#ifdef NETHOST_USE_AS_STATIC" "#if 0") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.TXT") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nethost/usage ================================================ The package nethost can be used via CMake: find_package(unofficial-nethost CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::nethost::nethost) ================================================ FILE: ports/nethost/vcpkg.json ================================================ { "name": "nethost", "version": "8.0.3", "description": "Provides a set of APIs that can be used to host .NET Core (dotnet)", "homepage": "https://github.com/dotnet/runtime/tree/main/src/native/corehost/nethost", "license": "MIT", "supports": "(windows & !uwp), (linux, osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nettle/ccas.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 2bf7f1e8..c9607468 100644 --- a/Makefile.in +++ b/Makefile.in @@ -303,7 +303,7 @@ libhogweed.a: $(hogweed_OBJS) %.$(OBJEXT): %.asm $(srcdir)/m4-utils.m4 $(srcdir)/asm.m4 config.m4 machine.m4 $(M4) $(srcdir)/m4-utils.m4 $(srcdir)/asm.m4 config.m4 machine.m4 $< >$*.s - $(COMPILE) $(ASM_FLAGS) -c $*.s + $(COMPILE_AS) -c $*.s -o $@ %.$(OBJEXT): %.c $(COMPILE) -c $< \ diff --git a/aclocal.m4 b/aclocal.m4 index 629db8a7..04ff4d31 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -268,7 +268,7 @@ AC_DEFUN([GMP_TRY_ASSEMBLE], [cat >conftest.s <&AS_MESSAGE_LOG_FD ifelse([$2],,:,[$2]) diff --git a/config.make.in b/config.make.in index 6aec7c73..8bc5599f 100644 --- a/config.make.in +++ b/config.make.in @@ -74,6 +74,8 @@ TEST_SHLIB_DIR = ${abs_top_builddir}/.lib # flags before CPPFLAGS and LDFLAGS. While EXTRA_CFLAGS are added at the end. COMPILE = $(CC) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(EXTRA_CFLAGS) $(DEP_FLAGS) +CCAS = @CCAS@ +COMPILE_AS = $(CCAS) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(ASM_FLAGS) $(DEP_FLAGS) COMPILE_CXX = $(CXX) $(PRE_CPPFLAGS) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(DEP_FLAGS) LINK = $(CC) $(CFLAGS) $(PRE_LDFLAGS) $(LDFLAGS) LINK_CXX = $(CXX) $(CXXFLAGS) $(PRE_LDFLAGS) $(LDFLAGS) diff --git a/configure.ac b/configure.ac index 4f27e663..324e4706 100644 --- a/configure.ac +++ b/configure.ac @@ -148,6 +148,9 @@ LSH_RPATH_INIT([`echo $with_lib_path | sed 's/:/ /g'` \ # Checks for programs. AC_PROG_CC +# Copied from gmp +test -n "$CCAS" || CCAS='$(CC)' +AC_SUBST(CCAS) NETTLE_CHECK_IFUNC @@ -318,7 +321,7 @@ W64_ABI=no # For x86_64 windows case "$host_cpu" in [x86_64 | amd64]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#if defined(__x86_64__) || defined(__arch64__) +#if defined(__x86_64__) || defined(__arch64__) || defined(_M_AMD64) #error 64-bit x86 #endif ]], [[]])], [ @@ -371,7 +374,7 @@ case "$host_cpu" in ;; aarch64*) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -#if defined(__aarch64__) +#if defined(__aarch64__) || defined(_M_ARM64) #error 64-bit arm #endif ]], [[]])], [ ================================================ FILE: ports/nettle/compile.patch ================================================ diff --git a/streebog.c b/streebog.c index 7ad619d5e..85609a473 100644 --- a/streebog.c +++ b/streebog.c @@ -1233,7 +1233,7 @@ streebog512_compress (struct streebog512_ctx *ctx, const uint8_t *input, uint64_ static void streebog_final (struct streebog512_ctx *ctx) { - uint64_t Z[8] = {}; + uint64_t Z[8] = {0,0,0,0,0,0,0,0}; unsigned int i; /* PAD. It does not count towards message length */ diff --git a/Makefile.in b/Makefile.in index b65ff4960..3887d0c8f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -322,7 +322,7 @@ $(LIBHOGWEED_FORLINK): $(hogweed_OBJS) $(LIBNETTLE_FORLINK) # For building the various *data.c programs. -lm needed for shadata. %$(EXEEXT_FOR_BUILD): %.c - $(CC_FOR_BUILD) $< -lm -o $@ + $(COMPILE) $(PRE_LDFLAGS) $(LDFLAGS) $(LIBS) $< -o $@ # Explicit dependency. eccdata$(EXEEXT_FOR_BUILD): mini-gmp.c mini-gmp.h ================================================ FILE: ports/nettle/fix-libdir.patch ================================================ diff --git a/configure.ac b/configure.ac index f4d9e90..1012718 100644 --- a/configure.ac +++ b/configure.ac @@ -351,6 +351,7 @@ if test "x$ABI" != xstandard ; then if test "$libdir" = '${exec_prefix}/lib' ; then # Try setting a better default case "$host_cpu:$host_os:$ABI" in + *) ;; # $libdir is okay for vcpkg *:solaris*:32|*:sunos*:32) libdir='${exec_prefix}/lib' ;; ================================================ FILE: ports/nettle/hogweed-arm.def ================================================ EXPORTS nettle_ed448_shake256_verify nettle_ed448_shake256_sign nettle_ed448_shake256_public_key _nettle_ed448_shake256 nettle_ed25519_sha512_verify nettle_ed25519_sha512_sign nettle_ed25519_sha512_public_key _nettle_ed25519_sha512 _nettle_eddsa_verify_itch _nettle_eddsa_verify _nettle_eddsa_sign_itch _nettle_eddsa_sign _nettle_eddsa_public_key_itch _nettle_eddsa_public_key _nettle_eddsa_hash _nettle_eddsa_expand_key _nettle_eddsa_decompress_itch _nettle_eddsa_decompress _nettle_eddsa_compress_itch _nettle_eddsa_compress _nettle_curve448_eh_to_x nettle_curve448_mul nettle_curve448_mul_g _nettle_curve25519_eh_to_x nettle_curve25519_mul nettle_curve25519_mul_g nettle_gostdsa_vko nettle_gostdsa_verify nettle_ecc_gostdsa_verify_itch nettle_ecc_gostdsa_verify nettle_gostdsa_sign nettle_ecc_gostdsa_sign_itch nettle_ecc_gostdsa_sign nettle_ecdsa_generate_keypair nettle_ecdsa_verify nettle_ecc_ecdsa_verify_itch nettle_ecc_ecdsa_verify nettle_ecdsa_sign nettle_ecc_ecdsa_sign_itch nettle_ecc_ecdsa_sign nettle_ecc_point_mul_g nettle_ecc_point_mul nettle_ecc_scalar_init nettle_ecc_scalar_clear nettle_ecc_scalar_set nettle_ecc_scalar_get nettle_ecc_point_init nettle_ecc_point_clear nettle_ecc_point_set nettle_ecc_point_get nettle_ecc_scalar_random _nettle_ecc_mod_random _nettle_ecc_mul_a _nettle_ecc_mul_g _nettle_ecc_mul_m _nettle_ecc_mul_a_eh _nettle_ecc_mul_g_eh _nettle_ecc_add_thh _nettle_ecc_add_th _nettle_ecc_dup_th _nettle_ecc_add_ehh _nettle_ecc_add_eh _nettle_ecc_dup_eh _nettle_ecc_eh_to_a _nettle_ecc_nonsec_add_jjj _nettle_ecc_add_jjj _nettle_ecc_add_jja _nettle_ecc_dup_jj _nettle_ecc_a_to_j _nettle_ecc_j_to_a nettle_ecc_bit_size nettle_ecc_size nettle_ecc_size_a nettle_ecc_size_j _nettle_secp_521r1 nettle_get_secp_521r1 _nettle_secp_384r1 nettle_get_secp_384r1 _nettle_secp_256r1 nettle_get_secp_256r1 _nettle_secp_224r1 nettle_get_secp_224r1 _nettle_secp_192r1 nettle_get_secp_192r1 _nettle_gost_gc512a nettle_get_gost_gc512a _nettle_gost_gc256b nettle_get_gost_gc256b _nettle_curve448 _nettle_curve25519 _nettle_ecc_pm1_redc _nettle_ecc_pp1_redc _nettle_ecc_mod_zero_p _nettle_ecc_mod_equal_p _nettle_ecc_mod_add _nettle_ecc_mod_sub _nettle_ecc_mod_mul_1 _nettle_ecc_mod_addmul_1 _nettle_ecc_mod_submul_1 _nettle_ecc_mod_mul _nettle_ecc_mod_sqr _nettle_ecc_mod_mul_canonical _nettle_ecc_mod_sqr_canonical _nettle_ecc_mod_pow_2k _nettle_ecc_mod_pow_2k_mul _nettle_ecc_mod_inv _nettle_ecc_mod _nettle_cnd_copy _nettle_sec_zero_p _nettle_mpz_limbs_copy _nettle_mpz_set_n _nettle_mpn_set_base256 _nettle_mpn_set_base256_le _nettle_mpn_get_base256 _nettle_mpn_get_base256_le _nettle_gmp_alloc_limbs _nettle_gmp_free_limbs _nettle_gmp_alloc _nettle_gmp_free _nettle_sec_sub_1 _nettle_sec_add_1 nettle_dsa_params_from_der_iterator nettle_dsa_public_key_from_der_iterator nettle_dsa_openssl_private_key_from_der_iterator nettle_openssl_provate_key_from_der nettle_rsa_public_key_from_der_iterator nettle_rsa_private_key_from_der_iterator nettle_rsa_keypair_from_der nettle_asn1_der_get_bignum nettle_asn1_der_iterator_first nettle_asn1_der_iterator_next nettle_asn1_der_decode_constructed nettle_asn1_der_decode_constructed_last nettle_asn1_der_decode_bitstring nettle_asn1_der_decode_bitstring_last nettle_asn1_der_get_uint32 nettle_rsa_keypair_to_openpgp nettle_pgp_put_uint32 nettle_pgp_put_uint16 nettle_pgp_put_mpi nettle_pgp_put_string nettle_pgp_put_length nettle_pgp_put_header nettle_pgp_put_header_length nettle_pgp_sub_packet_start nettle_pgp_put_sub_packet nettle_pgp_sub_packet_end nettle_pgp_put_public_rsa_key nettle_pgp_put_rsa_sha1_signature nettle_pgp_put_userid nettle_pgp_crc24 nettle_pgp_armor nettle_dsa_signature_from_sexp nettle_dsa_keypair_from_sexp_alist nettle_dsa_sha1_keypair_from_sexp nettle_dsa_sha256_keypair_from_sexp nettle_dsa_keypair_to_sexp nettle_dsa_sha256_verify nettle_dsa_sha256_verify_digest nettle_dsa_sha256_sign nettle_dsa_sha256_sign_digest nettle_dsa_sha1_verify nettle_dsa_sha1_verify_digest nettle_dsa_sha1_sign nettle_dsa_sha1_sign_digest _nettle_dsa_hash nettle_dsa_generate_keypair nettle_dsa_verify nettle_dsa_sign nettle_dsa_generate_params nettle_dsa_compat_generate_keypair nettle_dsa_public_key_init nettle_dsa_public_key_clear nettle_dsa_private_key_init nettle_dsa_private_key_clear nettle_dsa_params_init nettle_dsa_params_clear nettle_dsa_signature_init nettle_dsa_signature_clear nettle_rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp nettle_rsa_keypair_to_sexp _nettle_rsa_blind _nettle_rsa_unblind nettle_rsa_generate_keypair nettle_rsa_decrypt_tr nettle_rsa_sec_decrypt nettle_rsa_decrypt nettle_rsa_encrypt nettle_rsa_pss_sha384_verify_digest nettle_rsa_pss_sha512_verify_digest nettle_rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_sign_digest_tr nettle_rsa_sha512_verify nettle_rsa_sha512_verify_digest nettle_rsa_sha512_sign_tr nettle_rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign nettle_rsa_sha512_sign_digest nettle_rsa_sha256_verify nettle_rsa_sha256_verify_digest nettle_rsa_sha256_sign_tr nettle_rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign nettle_rsa_sha256_sign_digest nettle_rsa_sha1_verify nettle_rsa_sha1_verify_digest nettle_rsa_sha1_sign_tr nettle_rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign nettle_rsa_sha1_sign_digest nettle_rsa_md5_verify nettle_rsa_md5_verify_digest nettle_rsa_md5_sign_tr nettle_rsa_md5_sign_digest_tr nettle_rsa_md5_sign nettle_rsa_md5_sign_digest nettle_rsa_pkcs1_verify nettle_rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign _nettle_rsa_sec_compute_root_itch _nettle_rsa_sec_compute_root _nettle_rsa_verify _nettle_rsa_verify_recover nettle_rsa_compute_root_tr _nettle_rsa_sec_compute_root_tr nettle_rsa_private_key_init nettle_rsa_private_key_clear nettle_rsa_private_key_prepare nettle_rsa_compute_root nettle_rsa_public_key_init nettle_rsa_public_key_clear nettle_rsa_public_key_prepare _nettle_rsa_check_size nettle_pss_mgf1 nettle_pss_encode_mgf1 nettle_pss_verify_mgf1 nettle_pkcs1_rsa_sha512_encode nettle_pkcs1_rsa_sha512_encode_digest nettle_pkcs1_rsa_sha256_encode nettle_pkcs1_rsa_sha256_encode_digest nettle_pkcs1_rsa_sha1_encode nettle_pkcs1_rsa_sha1_encode_digest nettle_pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_digest_encode _nettle_pkcs1_sec_decrypt _nettle_pkcs1_sec_decrypt_variable nettle_pkcs1_decrypt nettle_pkcs1_encrypt _nettle_pkcs1_signature_prefix nettle_mpz_set_sexp nettle_random_prime _nettle_generate_pocklington_prime nettle_mpz_random_size nettle_mpz_random nettle_mpz_sizeinbase_256_s nettle_mpz_sizeinbase_256_u nettle_mpz_get_str_256 nettle_mpz_set_str_256_s nettle_mpz_init_set_str_256_s nettle_mpz_set_str_256_u nettle_mpz_init_set_str_256_u nettle_sexp_transport_format nettle_sexp_transport_vformat nettle_sexp_transport_iterator_first nettle_sexp_format nettle_sexp_vformat nettle_sexp_iterator_first nettle_sexp_iterator_next nettle_sexp_iterator_enter_list nettle_sexp_iterator_exit_list nettle_sexp_iterator_subexpr nettle_sexp_iterator_get_uint32 nettle_sexp_iterator_check_type nettle_sexp_iterator_check_types nettle_sexp_iterator_assoc _nettle_rsa_oaep_decrypt _nettle_rsa_oaep_encrypt nettle_rsa_oaep_sha256_decrypt nettle_rsa_oaep_sha384_decrypt nettle_rsa_oaep_sha512_decrypt nettle_rsa_oaep_sha256_encrypt nettle_rsa_oaep_sha384_encrypt nettle_rsa_oaep_sha512_encrypt _nettle_oaep_decode_mgf1 _nettle_oaep_encode_mgf1 ================================================ FILE: ports/nettle/hogweed-arm64.def ================================================ EXPORTS nettle_ed448_shake256_verify nettle_ed448_shake256_sign nettle_ed448_shake256_public_key _nettle_ed448_shake256 nettle_ed25519_sha512_verify nettle_ed25519_sha512_sign nettle_ed25519_sha512_public_key _nettle_ed25519_sha512 _nettle_eddsa_verify_itch _nettle_eddsa_verify _nettle_eddsa_sign_itch _nettle_eddsa_sign _nettle_eddsa_public_key_itch _nettle_eddsa_public_key _nettle_eddsa_hash _nettle_eddsa_expand_key _nettle_eddsa_decompress_itch _nettle_eddsa_decompress _nettle_eddsa_compress_itch _nettle_eddsa_compress _nettle_curve448_eh_to_x nettle_curve448_mul nettle_curve448_mul_g _nettle_curve25519_eh_to_x nettle_curve25519_mul nettle_curve25519_mul_g nettle_gostdsa_vko nettle_gostdsa_verify nettle_ecc_gostdsa_verify_itch nettle_ecc_gostdsa_verify nettle_gostdsa_sign nettle_ecc_gostdsa_sign_itch nettle_ecc_gostdsa_sign nettle_ecdsa_generate_keypair nettle_ecdsa_verify nettle_ecc_ecdsa_verify_itch nettle_ecc_ecdsa_verify nettle_ecdsa_sign nettle_ecc_ecdsa_sign_itch nettle_ecc_ecdsa_sign nettle_ecc_point_mul_g nettle_ecc_point_mul nettle_ecc_scalar_init nettle_ecc_scalar_clear nettle_ecc_scalar_set nettle_ecc_scalar_get nettle_ecc_point_init nettle_ecc_point_clear nettle_ecc_point_set nettle_ecc_point_get nettle_ecc_scalar_random _nettle_ecc_mod_random _nettle_ecc_mul_a _nettle_ecc_mul_g _nettle_ecc_mul_m _nettle_ecc_mul_a_eh _nettle_ecc_mul_g_eh _nettle_ecc_add_thh _nettle_ecc_add_th _nettle_ecc_dup_th _nettle_ecc_add_ehh _nettle_ecc_add_eh _nettle_ecc_dup_eh _nettle_ecc_eh_to_a _nettle_ecc_nonsec_add_jjj _nettle_ecc_add_jjj _nettle_ecc_add_jja _nettle_ecc_dup_jj _nettle_ecc_a_to_j _nettle_ecc_j_to_a nettle_ecc_bit_size nettle_ecc_size nettle_ecc_size_a nettle_ecc_size_j _nettle_secp_521r1 nettle_get_secp_521r1 _nettle_secp_384r1 nettle_get_secp_384r1 _nettle_secp_256r1 nettle_get_secp_256r1 _nettle_secp_224r1 nettle_get_secp_224r1 _nettle_secp_192r1 nettle_get_secp_192r1 _nettle_gost_gc512a nettle_get_gost_gc512a _nettle_gost_gc256b nettle_get_gost_gc256b _nettle_curve448 _nettle_curve25519 _nettle_ecc_pm1_redc _nettle_ecc_pp1_redc _nettle_ecc_mod_zero_p _nettle_ecc_mod_equal_p _nettle_ecc_mod_add _nettle_ecc_mod_sub _nettle_ecc_mod_mul_1 _nettle_ecc_mod_addmul_1 _nettle_ecc_mod_submul_1 _nettle_ecc_mod_mul _nettle_ecc_mod_sqr _nettle_ecc_mod_mul_canonical _nettle_ecc_mod_sqr_canonical _nettle_ecc_mod_pow_2k _nettle_ecc_mod_pow_2k_mul _nettle_ecc_mod_inv _nettle_ecc_mod _nettle_cnd_copy _nettle_sec_zero_p _nettle_mpz_limbs_copy _nettle_mpz_set_n _nettle_mpn_set_base256 _nettle_mpn_set_base256_le _nettle_mpn_get_base256 _nettle_mpn_get_base256_le _nettle_gmp_alloc_limbs _nettle_gmp_free_limbs _nettle_gmp_alloc _nettle_gmp_free _nettle_sec_sub_1 _nettle_sec_add_1 nettle_dsa_params_from_der_iterator nettle_dsa_public_key_from_der_iterator nettle_dsa_openssl_private_key_from_der_iterator nettle_openssl_provate_key_from_der nettle_rsa_public_key_from_der_iterator nettle_rsa_private_key_from_der_iterator nettle_rsa_keypair_from_der nettle_asn1_der_get_bignum nettle_asn1_der_iterator_first nettle_asn1_der_iterator_next nettle_asn1_der_decode_constructed nettle_asn1_der_decode_constructed_last nettle_asn1_der_decode_bitstring nettle_asn1_der_decode_bitstring_last nettle_asn1_der_get_uint32 nettle_rsa_keypair_to_openpgp nettle_pgp_put_uint32 nettle_pgp_put_uint16 nettle_pgp_put_mpi nettle_pgp_put_string nettle_pgp_put_length nettle_pgp_put_header nettle_pgp_put_header_length nettle_pgp_sub_packet_start nettle_pgp_put_sub_packet nettle_pgp_sub_packet_end nettle_pgp_put_public_rsa_key nettle_pgp_put_rsa_sha1_signature nettle_pgp_put_userid nettle_pgp_crc24 nettle_pgp_armor nettle_dsa_signature_from_sexp nettle_dsa_keypair_from_sexp_alist nettle_dsa_sha1_keypair_from_sexp nettle_dsa_sha256_keypair_from_sexp nettle_dsa_keypair_to_sexp nettle_dsa_sha256_verify nettle_dsa_sha256_verify_digest nettle_dsa_sha256_sign nettle_dsa_sha256_sign_digest nettle_dsa_sha1_verify nettle_dsa_sha1_verify_digest nettle_dsa_sha1_sign nettle_dsa_sha1_sign_digest _nettle_dsa_hash nettle_dsa_generate_keypair nettle_dsa_verify nettle_dsa_sign nettle_dsa_generate_params nettle_dsa_compat_generate_keypair nettle_dsa_public_key_init nettle_dsa_public_key_clear nettle_dsa_private_key_init nettle_dsa_private_key_clear nettle_dsa_params_init nettle_dsa_params_clear nettle_dsa_signature_init nettle_dsa_signature_clear nettle_rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp nettle_rsa_keypair_to_sexp _nettle_rsa_blind _nettle_rsa_unblind nettle_rsa_generate_keypair nettle_rsa_decrypt_tr nettle_rsa_sec_decrypt nettle_rsa_decrypt nettle_rsa_encrypt nettle_rsa_pss_sha384_verify_digest nettle_rsa_pss_sha512_verify_digest nettle_rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_sign_digest_tr nettle_rsa_sha512_verify nettle_rsa_sha512_verify_digest nettle_rsa_sha512_sign_tr nettle_rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign nettle_rsa_sha512_sign_digest nettle_rsa_sha256_verify nettle_rsa_sha256_verify_digest nettle_rsa_sha256_sign_tr nettle_rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign nettle_rsa_sha256_sign_digest nettle_rsa_sha1_verify nettle_rsa_sha1_verify_digest nettle_rsa_sha1_sign_tr nettle_rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign nettle_rsa_sha1_sign_digest nettle_rsa_md5_verify nettle_rsa_md5_verify_digest nettle_rsa_md5_sign_tr nettle_rsa_md5_sign_digest_tr nettle_rsa_md5_sign nettle_rsa_md5_sign_digest nettle_rsa_pkcs1_verify nettle_rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign _nettle_rsa_sec_compute_root_itch _nettle_rsa_sec_compute_root _nettle_rsa_verify _nettle_rsa_verify_recover nettle_rsa_compute_root_tr _nettle_rsa_sec_compute_root_tr nettle_rsa_private_key_init nettle_rsa_private_key_clear nettle_rsa_private_key_prepare nettle_rsa_compute_root nettle_rsa_public_key_init nettle_rsa_public_key_clear nettle_rsa_public_key_prepare _nettle_rsa_check_size nettle_pss_mgf1 nettle_pss_encode_mgf1 nettle_pss_verify_mgf1 nettle_pkcs1_rsa_sha512_encode nettle_pkcs1_rsa_sha512_encode_digest nettle_pkcs1_rsa_sha256_encode nettle_pkcs1_rsa_sha256_encode_digest nettle_pkcs1_rsa_sha1_encode nettle_pkcs1_rsa_sha1_encode_digest nettle_pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_digest_encode _nettle_pkcs1_sec_decrypt _nettle_pkcs1_sec_decrypt_variable nettle_pkcs1_decrypt nettle_pkcs1_encrypt _nettle_pkcs1_signature_prefix nettle_mpz_set_sexp nettle_random_prime _nettle_generate_pocklington_prime nettle_mpz_random_size nettle_mpz_random nettle_mpz_sizeinbase_256_s nettle_mpz_sizeinbase_256_u nettle_mpz_get_str_256 nettle_mpz_set_str_256_s nettle_mpz_init_set_str_256_s nettle_mpz_set_str_256_u nettle_mpz_init_set_str_256_u nettle_sexp_transport_format nettle_sexp_transport_vformat nettle_sexp_transport_iterator_first nettle_sexp_format nettle_sexp_vformat nettle_sexp_iterator_first nettle_sexp_iterator_next nettle_sexp_iterator_enter_list nettle_sexp_iterator_exit_list nettle_sexp_iterator_subexpr nettle_sexp_iterator_get_uint32 nettle_sexp_iterator_check_type nettle_sexp_iterator_check_types nettle_sexp_iterator_assoc _nettle_rsa_oaep_decrypt _nettle_rsa_oaep_encrypt nettle_rsa_oaep_sha256_decrypt nettle_rsa_oaep_sha384_decrypt nettle_rsa_oaep_sha512_decrypt nettle_rsa_oaep_sha256_encrypt nettle_rsa_oaep_sha384_encrypt nettle_rsa_oaep_sha512_encrypt _nettle_oaep_decode_mgf1 _nettle_oaep_encode_mgf1 ================================================ FILE: ports/nettle/hogweed-x64.def ================================================ EXPORTS _nettle_ecc_curve448_modp _nettle_ecc_curve25519_modp _nettle_ecc_secp521r1_modp _nettle_ecc_secp384r1_modp _nettle_ecc_secp256r1_redc _nettle_ecc_secp224r1_modp _nettle_ecc_secp192r1_modp nettle_ed448_shake256_verify nettle_ed448_shake256_sign nettle_ed448_shake256_public_key _nettle_ed448_shake256 nettle_ed25519_sha512_verify nettle_ed25519_sha512_sign nettle_ed25519_sha512_public_key _nettle_ed25519_sha512 _nettle_eddsa_verify_itch _nettle_eddsa_verify _nettle_eddsa_sign_itch _nettle_eddsa_sign _nettle_eddsa_public_key_itch _nettle_eddsa_public_key _nettle_eddsa_hash _nettle_eddsa_expand_key _nettle_eddsa_decompress_itch _nettle_eddsa_decompress _nettle_eddsa_compress_itch _nettle_eddsa_compress _nettle_curve448_eh_to_x nettle_curve448_mul nettle_curve448_mul_g _nettle_curve25519_eh_to_x nettle_curve25519_mul nettle_curve25519_mul_g nettle_gostdsa_vko nettle_gostdsa_verify nettle_ecc_gostdsa_verify_itch nettle_ecc_gostdsa_verify nettle_gostdsa_sign nettle_ecc_gostdsa_sign_itch nettle_ecc_gostdsa_sign nettle_ecdsa_generate_keypair nettle_ecdsa_verify nettle_ecc_ecdsa_verify_itch nettle_ecc_ecdsa_verify nettle_ecdsa_sign nettle_ecc_ecdsa_sign_itch nettle_ecc_ecdsa_sign nettle_ecc_point_mul_g nettle_ecc_point_mul nettle_ecc_scalar_init nettle_ecc_scalar_clear nettle_ecc_scalar_set nettle_ecc_scalar_get nettle_ecc_point_init nettle_ecc_point_clear nettle_ecc_point_set nettle_ecc_point_get nettle_ecc_scalar_random _nettle_ecc_mod_random _nettle_ecc_mul_a _nettle_ecc_mul_g _nettle_ecc_mul_m _nettle_ecc_mul_a_eh _nettle_ecc_mul_g_eh _nettle_ecc_add_thh _nettle_ecc_add_th _nettle_ecc_dup_th _nettle_ecc_add_ehh _nettle_ecc_add_eh _nettle_ecc_dup_eh _nettle_ecc_eh_to_a _nettle_ecc_nonsec_add_jjj _nettle_ecc_add_jjj _nettle_ecc_add_jja _nettle_ecc_dup_jj _nettle_ecc_a_to_j _nettle_ecc_j_to_a nettle_ecc_bit_size nettle_ecc_size nettle_ecc_size_a nettle_ecc_size_j _nettle_secp_521r1 nettle_get_secp_521r1 _nettle_secp_384r1 nettle_get_secp_384r1 _nettle_secp_256r1 nettle_get_secp_256r1 _nettle_secp_224r1 nettle_get_secp_224r1 _nettle_secp_192r1 nettle_get_secp_192r1 _nettle_gost_gc512a nettle_get_gost_gc512a _nettle_gost_gc256b nettle_get_gost_gc256b _nettle_curve448 _nettle_curve25519 _nettle_ecc_pm1_redc _nettle_ecc_pp1_redc _nettle_ecc_mod_zero_p _nettle_ecc_mod_equal_p _nettle_ecc_mod_add _nettle_ecc_mod_sub _nettle_ecc_mod_mul_1 _nettle_ecc_mod_addmul_1 _nettle_ecc_mod_submul_1 _nettle_ecc_mod_mul _nettle_ecc_mod_sqr _nettle_ecc_mod_mul_canonical _nettle_ecc_mod_sqr_canonical _nettle_ecc_mod_pow_2k _nettle_ecc_mod_pow_2k_mul _nettle_ecc_mod_inv _nettle_ecc_mod _nettle_cnd_copy _nettle_sec_zero_p _nettle_mpz_limbs_copy _nettle_mpz_set_n _nettle_mpn_set_base256 _nettle_mpn_set_base256_le _nettle_mpn_get_base256 _nettle_mpn_get_base256_le _nettle_gmp_alloc_limbs _nettle_gmp_free_limbs _nettle_gmp_alloc _nettle_gmp_free _nettle_sec_sub_1 _nettle_sec_add_1 nettle_dsa_params_from_der_iterator nettle_dsa_public_key_from_der_iterator nettle_dsa_openssl_private_key_from_der_iterator nettle_openssl_provate_key_from_der nettle_rsa_public_key_from_der_iterator nettle_rsa_private_key_from_der_iterator nettle_rsa_keypair_from_der nettle_asn1_der_get_bignum nettle_asn1_der_iterator_first nettle_asn1_der_iterator_next nettle_asn1_der_decode_constructed nettle_asn1_der_decode_constructed_last nettle_asn1_der_decode_bitstring nettle_asn1_der_decode_bitstring_last nettle_asn1_der_get_uint32 nettle_rsa_keypair_to_openpgp nettle_pgp_put_uint32 nettle_pgp_put_uint16 nettle_pgp_put_mpi nettle_pgp_put_string nettle_pgp_put_length nettle_pgp_put_header nettle_pgp_put_header_length nettle_pgp_sub_packet_start nettle_pgp_put_sub_packet nettle_pgp_sub_packet_end nettle_pgp_put_public_rsa_key nettle_pgp_put_rsa_sha1_signature nettle_pgp_put_userid nettle_pgp_crc24 nettle_pgp_armor nettle_dsa_signature_from_sexp nettle_dsa_keypair_from_sexp_alist nettle_dsa_sha1_keypair_from_sexp nettle_dsa_sha256_keypair_from_sexp nettle_dsa_keypair_to_sexp nettle_dsa_sha256_verify nettle_dsa_sha256_verify_digest nettle_dsa_sha256_sign nettle_dsa_sha256_sign_digest nettle_dsa_sha1_verify nettle_dsa_sha1_verify_digest nettle_dsa_sha1_sign nettle_dsa_sha1_sign_digest _nettle_dsa_hash nettle_dsa_generate_keypair nettle_dsa_verify nettle_dsa_sign nettle_dsa_generate_params nettle_dsa_compat_generate_keypair nettle_dsa_public_key_init nettle_dsa_public_key_clear nettle_dsa_private_key_init nettle_dsa_private_key_clear nettle_dsa_params_init nettle_dsa_params_clear nettle_dsa_signature_init nettle_dsa_signature_clear nettle_rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp nettle_rsa_keypair_to_sexp _nettle_rsa_blind _nettle_rsa_unblind nettle_rsa_generate_keypair nettle_rsa_decrypt_tr nettle_rsa_sec_decrypt nettle_rsa_decrypt nettle_rsa_encrypt nettle_rsa_pss_sha384_verify_digest nettle_rsa_pss_sha512_verify_digest nettle_rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_sign_digest_tr nettle_rsa_sha512_verify nettle_rsa_sha512_verify_digest nettle_rsa_sha512_sign_tr nettle_rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign nettle_rsa_sha512_sign_digest nettle_rsa_sha256_verify nettle_rsa_sha256_verify_digest nettle_rsa_sha256_sign_tr nettle_rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign nettle_rsa_sha256_sign_digest nettle_rsa_sha1_verify nettle_rsa_sha1_verify_digest nettle_rsa_sha1_sign_tr nettle_rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign nettle_rsa_sha1_sign_digest nettle_rsa_md5_verify nettle_rsa_md5_verify_digest nettle_rsa_md5_sign_tr nettle_rsa_md5_sign_digest_tr nettle_rsa_md5_sign nettle_rsa_md5_sign_digest nettle_rsa_pkcs1_verify nettle_rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign _nettle_rsa_sec_compute_root_itch _nettle_rsa_sec_compute_root _nettle_rsa_verify _nettle_rsa_verify_recover nettle_rsa_compute_root_tr _nettle_rsa_sec_compute_root_tr nettle_rsa_private_key_init nettle_rsa_private_key_clear nettle_rsa_private_key_prepare nettle_rsa_compute_root nettle_rsa_public_key_init nettle_rsa_public_key_clear nettle_rsa_public_key_prepare _nettle_rsa_check_size nettle_pss_mgf1 nettle_pss_encode_mgf1 nettle_pss_verify_mgf1 nettle_pkcs1_rsa_sha512_encode nettle_pkcs1_rsa_sha512_encode_digest nettle_pkcs1_rsa_sha256_encode nettle_pkcs1_rsa_sha256_encode_digest nettle_pkcs1_rsa_sha1_encode nettle_pkcs1_rsa_sha1_encode_digest nettle_pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_digest_encode _nettle_pkcs1_sec_decrypt _nettle_pkcs1_sec_decrypt_variable nettle_pkcs1_decrypt nettle_pkcs1_encrypt _nettle_pkcs1_signature_prefix nettle_mpz_set_sexp nettle_random_prime _nettle_generate_pocklington_prime nettle_mpz_random_size nettle_mpz_random nettle_mpz_sizeinbase_256_s nettle_mpz_sizeinbase_256_u nettle_mpz_get_str_256 nettle_mpz_set_str_256_s nettle_mpz_init_set_str_256_s nettle_mpz_set_str_256_u nettle_mpz_init_set_str_256_u nettle_sexp_transport_format nettle_sexp_transport_vformat nettle_sexp_transport_iterator_first nettle_sexp_format nettle_sexp_vformat nettle_sexp_iterator_first nettle_sexp_iterator_next nettle_sexp_iterator_enter_list nettle_sexp_iterator_exit_list nettle_sexp_iterator_subexpr nettle_sexp_iterator_get_uint32 nettle_sexp_iterator_check_type nettle_sexp_iterator_check_types nettle_sexp_iterator_assoc _nettle_rsa_oaep_decrypt _nettle_rsa_oaep_encrypt nettle_rsa_oaep_sha256_decrypt nettle_rsa_oaep_sha384_decrypt nettle_rsa_oaep_sha512_decrypt nettle_rsa_oaep_sha256_encrypt nettle_rsa_oaep_sha384_encrypt nettle_rsa_oaep_sha512_encrypt _nettle_oaep_decode_mgf1 _nettle_oaep_encode_mgf1 ================================================ FILE: ports/nettle/hogweed-x86.def ================================================ EXPORTS nettle_ed448_shake256_verify nettle_ed448_shake256_sign nettle_ed448_shake256_public_key _nettle_ed448_shake256 nettle_ed25519_sha512_verify nettle_ed25519_sha512_sign nettle_ed25519_sha512_public_key _nettle_ed25519_sha512 _nettle_eddsa_verify_itch _nettle_eddsa_verify _nettle_eddsa_sign_itch _nettle_eddsa_sign _nettle_eddsa_public_key_itch _nettle_eddsa_public_key _nettle_eddsa_hash _nettle_eddsa_expand_key _nettle_eddsa_decompress_itch _nettle_eddsa_decompress _nettle_eddsa_compress_itch _nettle_eddsa_compress _nettle_curve448_eh_to_x nettle_curve448_mul nettle_curve448_mul_g _nettle_curve25519_eh_to_x nettle_curve25519_mul nettle_curve25519_mul_g nettle_gostdsa_vko nettle_gostdsa_verify nettle_ecc_gostdsa_verify_itch nettle_ecc_gostdsa_verify nettle_gostdsa_sign nettle_ecc_gostdsa_sign_itch nettle_ecc_gostdsa_sign nettle_ecdsa_generate_keypair nettle_ecdsa_verify nettle_ecc_ecdsa_verify_itch nettle_ecc_ecdsa_verify nettle_ecdsa_sign nettle_ecc_ecdsa_sign_itch nettle_ecc_ecdsa_sign nettle_ecc_point_mul_g nettle_ecc_point_mul nettle_ecc_scalar_init nettle_ecc_scalar_clear nettle_ecc_scalar_set nettle_ecc_scalar_get nettle_ecc_point_init nettle_ecc_point_clear nettle_ecc_point_set nettle_ecc_point_get nettle_ecc_scalar_random _nettle_ecc_mod_random _nettle_ecc_mul_a _nettle_ecc_mul_g _nettle_ecc_mul_m _nettle_ecc_mul_a_eh _nettle_ecc_mul_g_eh _nettle_ecc_add_thh _nettle_ecc_add_th _nettle_ecc_dup_th _nettle_ecc_add_ehh _nettle_ecc_add_eh _nettle_ecc_dup_eh _nettle_ecc_eh_to_a _nettle_ecc_nonsec_add_jjj _nettle_ecc_add_jjj _nettle_ecc_add_jja _nettle_ecc_dup_jj _nettle_ecc_a_to_j _nettle_ecc_j_to_a nettle_ecc_bit_size nettle_ecc_size nettle_ecc_size_a nettle_ecc_size_j _nettle_secp_521r1 nettle_get_secp_521r1 _nettle_secp_384r1 nettle_get_secp_384r1 _nettle_secp_256r1 nettle_get_secp_256r1 _nettle_secp_224r1 nettle_get_secp_224r1 _nettle_secp_192r1 nettle_get_secp_192r1 _nettle_gost_gc512a nettle_get_gost_gc512a _nettle_gost_gc256b nettle_get_gost_gc256b _nettle_curve448 _nettle_curve25519 _nettle_ecc_pm1_redc _nettle_ecc_pp1_redc _nettle_ecc_mod_zero_p _nettle_ecc_mod_equal_p _nettle_ecc_mod_add _nettle_ecc_mod_sub _nettle_ecc_mod_mul_1 _nettle_ecc_mod_addmul_1 _nettle_ecc_mod_submul_1 _nettle_ecc_mod_mul _nettle_ecc_mod_sqr _nettle_ecc_mod_mul_canonical _nettle_ecc_mod_sqr_canonical _nettle_ecc_mod_pow_2k _nettle_ecc_mod_pow_2k_mul _nettle_ecc_mod_inv _nettle_ecc_mod _nettle_cnd_copy _nettle_sec_zero_p _nettle_mpz_limbs_copy _nettle_mpz_set_n _nettle_mpn_set_base256 _nettle_mpn_set_base256_le _nettle_mpn_get_base256 _nettle_mpn_get_base256_le _nettle_gmp_alloc_limbs _nettle_gmp_free_limbs _nettle_gmp_alloc _nettle_gmp_free _nettle_sec_sub_1 _nettle_sec_add_1 nettle_dsa_params_from_der_iterator nettle_dsa_public_key_from_der_iterator nettle_dsa_openssl_private_key_from_der_iterator nettle_openssl_provate_key_from_der nettle_rsa_public_key_from_der_iterator nettle_rsa_private_key_from_der_iterator nettle_rsa_keypair_from_der nettle_asn1_der_get_bignum nettle_asn1_der_iterator_first nettle_asn1_der_iterator_next nettle_asn1_der_decode_constructed nettle_asn1_der_decode_constructed_last nettle_asn1_der_decode_bitstring nettle_asn1_der_decode_bitstring_last nettle_asn1_der_get_uint32 nettle_rsa_keypair_to_openpgp nettle_pgp_put_uint32 nettle_pgp_put_uint16 nettle_pgp_put_mpi nettle_pgp_put_string nettle_pgp_put_length nettle_pgp_put_header nettle_pgp_put_header_length nettle_pgp_sub_packet_start nettle_pgp_put_sub_packet nettle_pgp_sub_packet_end nettle_pgp_put_public_rsa_key nettle_pgp_put_rsa_sha1_signature nettle_pgp_put_userid nettle_pgp_crc24 nettle_pgp_armor nettle_dsa_signature_from_sexp nettle_dsa_keypair_from_sexp_alist nettle_dsa_sha1_keypair_from_sexp nettle_dsa_sha256_keypair_from_sexp nettle_dsa_keypair_to_sexp nettle_dsa_sha256_verify nettle_dsa_sha256_verify_digest nettle_dsa_sha256_sign nettle_dsa_sha256_sign_digest nettle_dsa_sha1_verify nettle_dsa_sha1_verify_digest nettle_dsa_sha1_sign nettle_dsa_sha1_sign_digest _nettle_dsa_hash nettle_dsa_generate_keypair nettle_dsa_verify nettle_dsa_sign nettle_dsa_generate_params nettle_dsa_compat_generate_keypair nettle_dsa_public_key_init nettle_dsa_public_key_clear nettle_dsa_private_key_init nettle_dsa_private_key_clear nettle_dsa_params_init nettle_dsa_params_clear nettle_dsa_signature_init nettle_dsa_signature_clear nettle_rsa_keypair_from_sexp_alist nettle_rsa_keypair_from_sexp nettle_rsa_keypair_to_sexp _nettle_rsa_blind _nettle_rsa_unblind nettle_rsa_generate_keypair nettle_rsa_decrypt_tr nettle_rsa_sec_decrypt nettle_rsa_decrypt nettle_rsa_encrypt nettle_rsa_pss_sha384_verify_digest nettle_rsa_pss_sha512_verify_digest nettle_rsa_pss_sha384_sign_digest_tr nettle_rsa_pss_sha512_sign_digest_tr nettle_rsa_pss_sha256_verify_digest nettle_rsa_pss_sha256_sign_digest_tr nettle_rsa_sha512_verify nettle_rsa_sha512_verify_digest nettle_rsa_sha512_sign_tr nettle_rsa_sha512_sign_digest_tr nettle_rsa_sha512_sign nettle_rsa_sha512_sign_digest nettle_rsa_sha256_verify nettle_rsa_sha256_verify_digest nettle_rsa_sha256_sign_tr nettle_rsa_sha256_sign_digest_tr nettle_rsa_sha256_sign nettle_rsa_sha256_sign_digest nettle_rsa_sha1_verify nettle_rsa_sha1_verify_digest nettle_rsa_sha1_sign_tr nettle_rsa_sha1_sign_digest_tr nettle_rsa_sha1_sign nettle_rsa_sha1_sign_digest nettle_rsa_md5_verify nettle_rsa_md5_verify_digest nettle_rsa_md5_sign_tr nettle_rsa_md5_sign_digest_tr nettle_rsa_md5_sign nettle_rsa_md5_sign_digest nettle_rsa_pkcs1_verify nettle_rsa_pkcs1_sign_tr nettle_rsa_pkcs1_sign _nettle_rsa_sec_compute_root_itch _nettle_rsa_sec_compute_root _nettle_rsa_verify _nettle_rsa_verify_recover nettle_rsa_compute_root_tr _nettle_rsa_sec_compute_root_tr nettle_rsa_private_key_init nettle_rsa_private_key_clear nettle_rsa_private_key_prepare nettle_rsa_compute_root nettle_rsa_public_key_init nettle_rsa_public_key_clear nettle_rsa_public_key_prepare _nettle_rsa_check_size nettle_pss_mgf1 nettle_pss_encode_mgf1 nettle_pss_verify_mgf1 nettle_pkcs1_rsa_sha512_encode nettle_pkcs1_rsa_sha512_encode_digest nettle_pkcs1_rsa_sha256_encode nettle_pkcs1_rsa_sha256_encode_digest nettle_pkcs1_rsa_sha1_encode nettle_pkcs1_rsa_sha1_encode_digest nettle_pkcs1_rsa_md5_encode nettle_pkcs1_rsa_md5_encode_digest nettle_pkcs1_rsa_digest_encode _nettle_pkcs1_sec_decrypt _nettle_pkcs1_sec_decrypt_variable nettle_pkcs1_decrypt nettle_pkcs1_encrypt _nettle_pkcs1_signature_prefix nettle_mpz_set_sexp nettle_random_prime _nettle_generate_pocklington_prime nettle_mpz_random_size nettle_mpz_random nettle_mpz_sizeinbase_256_s nettle_mpz_sizeinbase_256_u nettle_mpz_get_str_256 nettle_mpz_set_str_256_s nettle_mpz_init_set_str_256_s nettle_mpz_set_str_256_u nettle_mpz_init_set_str_256_u nettle_sexp_transport_format nettle_sexp_transport_vformat nettle_sexp_transport_iterator_first nettle_sexp_format nettle_sexp_vformat nettle_sexp_iterator_first nettle_sexp_iterator_next nettle_sexp_iterator_enter_list nettle_sexp_iterator_exit_list nettle_sexp_iterator_subexpr nettle_sexp_iterator_get_uint32 nettle_sexp_iterator_check_type nettle_sexp_iterator_check_types nettle_sexp_iterator_assoc _nettle_rsa_oaep_decrypt _nettle_rsa_oaep_encrypt nettle_rsa_oaep_sha256_decrypt nettle_rsa_oaep_sha384_decrypt nettle_rsa_oaep_sha512_decrypt nettle_rsa_oaep_sha256_encrypt nettle_rsa_oaep_sha384_encrypt nettle_rsa_oaep_sha512_encrypt _nettle_oaep_decode_mgf1 _nettle_oaep_encode_mgf1 ================================================ FILE: ports/nettle/host-tools.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 2bf7f1e8..4b80c8df 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,3 +1,6 @@ +# Using native tools, either this build or from host triplet +HOST_TOOLS_PREFIX ?= . + # Nettle Makefile @SET_MAKE@ @@ -347,11 +350,11 @@ des_headers = rotors.h keymap.h # Generate DES headers. $(des_headers): desdata.stamp f="$(srcdir)/`basename $@`"; \ - ./desdata$(EXEEXT_FOR_BUILD) $(@F) > $${f}T; \ + $(HOST_TOOLS_PREFIX)/desdata$(EXEEXT_FOR_BUILD) $(@F) > $${f}T; \ test -s $${f}T && mv -f $${f}T $$f -desdata.stamp: desdata.c - $(MAKE) desdata$(EXEEXT_FOR_BUILD) +./desdata$(EXEEXT_FOR_BUILD): desdata.c +desdata.stamp: $(HOST_TOOLS_PREFIX)/desdata$(EXEEXT_FOR_BUILD) echo stamp > desdata.stamp des.$(OBJEXT): des.c des.h $(des_headers) @@ -364,7 +367,7 @@ des.$(OBJEXT): des.c des.h $(des_headers) # k = 11, c = 6, S = 192, T = 44 ( 33 A + 11 D) 9 KB # k = 16, c = 6, S = 128, T = 48 ( 32 A + 16 D) 6 KB ecc-secp192r1.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) secp192r1 8 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp192r1 8 6 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 224: # k = 16, c = 7, S = 256, T = 48 ( 32 A + 16 D) ~16 KB @@ -372,7 +375,7 @@ ecc-secp192r1.h: eccdata.stamp # k = 13, c = 6, S = 192, T = 52 ( 39 A + 13 D) ~12 KB # k = 9, c = 5, S = 160, T = 54 ( 45 A + 9 D) ~10 KB ecc-secp224r1.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) secp224r1 16 7 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp224r1 16 7 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 256: # k = 9, c = 6, S = 320, T = 54 ( 45 A + 9 D) 20 KB @@ -380,7 +383,7 @@ ecc-secp224r1.h: eccdata.stamp # k = 19, c = 7, S = 256, T = 57 ( 38 A + 19 D) 16 KB # k = 15, c = 6, S = 192, T = 60 ( 45 A + 15 D) 12 KB ecc-secp256r1.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) secp256r1 11 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp256r1 11 6 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 384: # k = 16, c = 6, S = 256, T = 80 ( 64 A + 16 D) 24 KB @@ -391,7 +394,7 @@ ecc-secp256r1.h: eccdata.stamp # k = 16, c = 5, S = 160, T = 96 ( 80 A + 16 D) 15 KB # k = 32, c = 6, S = 128, T = 96 ( 64 A + 32 D) 12 KB ecc-secp384r1.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) secp384r1 32 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp384r1 32 6 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 521: # k = 29, c = 6, S = 192, T = 116 ( 87 A + 29 D) ~27 KB @@ -399,14 +402,14 @@ ecc-secp384r1.h: eccdata.stamp # k = 44, c = 6, S = 128, T = 132 ( 88 A + 44 D) ~18 KB # k = 35, c = 5, S = 96, T = 140 (105 A + 35 D) ~14 KB ecc-secp521r1.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) secp521r1 44 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) secp521r1 44 6 $(NUMB_BITS) > $@T && mv $@T $@ # Parameter choices mostly the same as for ecc-secp256r1.h. ecc-curve25519.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) curve25519 11 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) curve25519 11 6 $(NUMB_BITS) > $@T && mv $@T $@ ecc-curve448.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) curve448 38 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) curve448 38 6 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 256: # k = 9, c = 6, S = 320, T = 54 ( 45 A + 9 D) 20 KB @@ -414,7 +417,7 @@ ecc-curve448.h: eccdata.stamp # k = 19, c = 7, S = 256, T = 57 ( 38 A + 19 D) 16 KB # k = 15, c = 6, S = 192, T = 60 ( 45 A + 15 D) 12 KB ecc-gost-gc256b.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) gost_gc256b 11 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) gost_gc256b 11 6 $(NUMB_BITS) > $@T && mv $@T $@ # Some reasonable choices for 512: # k = 22, c = 6, S = 256, T = 110 ( 88 A + 22 D) 32 KB @@ -423,10 +426,10 @@ ecc-gost-gc256b.h: eccdata.stamp # k = 43, c = 6, S = 128, T = 129 ( 86 A + 43 D) 16 KB # k = 35, c = 5, S = 96, T = 140 (105 A + 35 D) 12 KB ecc-gost-gc512a.h: eccdata.stamp - ./eccdata$(EXEEXT_FOR_BUILD) gost_gc512a 43 6 $(NUMB_BITS) > $@T && mv $@T $@ + $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) gost_gc512a 43 6 $(NUMB_BITS) > $@T && mv $@T $@ -eccdata.stamp: eccdata.c - $(MAKE) eccdata$(EXEEXT_FOR_BUILD) +./eccdata$(EXEEXT_FOR_BUILD): eccdata.c +eccdata.stamp: $(HOST_TOOLS_PREFIX)/eccdata$(EXEEXT_FOR_BUILD) echo stamp > eccdata.stamp ecc-curve25519.$(OBJEXT): ecc-curve25519.h diff --git a/aclocal.m4 b/aclocal.m4 index 629db8a7..0cf32544 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -345,6 +345,7 @@ if AC_TRY_EVAL(gmp_compile); then if (./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest) >&AS_MESSAGE_LOG_FD 2>&1; then cc_for_build_works=yes fi + cc_for_build_works=yes # forced fi rm -f conftest* a.out b.out a.exe a_out.exe AC_MSG_RESULT($cc_for_build_works) ================================================ FILE: ports/nettle/lib-to-def.cmake ================================================ function(lib_to_def) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW OR NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") return() endif() cmake_parse_arguments(PARSE_ARGV 0 arg "" "BASENAME;REGEX" "") if(NOT arg_BASENAME) message(FATAL_ERROR "BASENAME is a required argument.") endif() if(NOT arg_REGEX) set(arg_REGEX "[^ ]+") endif() set(logfile "${CURRENT_BUILDTREES_DIR}/dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}-symbols.log") vcpkg_execute_required_process( COMMAND dumpbin /symbols "/OUT:${logfile}" "${CURRENT_PACKAGES_DIR}/lib/${arg_BASENAME}.lib" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "dumpbin-${arg_BASENAME}-${TARGET_TRIPLET}" ) file(STRINGS "${logfile}" symbols REGEX "^... ........ SECT.. notype .. External [|] ${arg_REGEX}") list(TRANSFORM symbols REPLACE "^[^|]+[|] " " ") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(REPLACE " _" " " symbols "${symbols}") endif() list(JOIN symbols "\n" symbols) set(symbols "EXPORTS\n${symbols}\n") file(READ "${CMAKE_CURRENT_LIST_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def" original_symbols) if(NOT symbols STREQUAL original_symbols) file(WRITE "${CURRENT_BUILDTREES_DIR}/${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def.log" "${symbols}") message(SEND_ERROR "${arg_BASENAME}-${VCPKG_TARGET_ARCHITECTURE}.def has changed.") endif() endfunction() ================================================ FILE: ports/nettle/libname-windows.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 2f05c29..16a150c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -26,7 +26,7 @@ include config.make PRE_CPPFLAGS = -I. EXTRA_CFLAGS = $(CCPIC) -LIBTARGETS = @IF_STATIC@ libnettle.a @IF_HOGWEED@ libhogweed.a +LIBTARGETS = @IF_STATIC@ $(LIBNETTLE_FILE) @IF_HOGWEED@ $(LIBHOGWEED_FILE) SHLIBTARGETS = @IF_SHARED@ $(LIBNETTLE_FORLINK) @IF_HOGWEED@ $(LIBHOGWEED_FORLINK) getopt_SOURCES = getopt.c getopt1.c @@ -276,13 +276,13 @@ nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) \ hogweed_OBJS = $(hogweed_SOURCES:.c=.$(OBJEXT)) \ $(OPT_HOGWEED_OBJS) @IF_MINI_GMP@ mini-gmp.$(OBJEXT) -libnettle.a: $(nettle_OBJS) +$(LIBNETTLE_FILE): $(nettle_OBJS) -rm -f $@ $(AR) $(ARFLAGS) $@ $(nettle_OBJS) $(RANLIB) $@ echo nettle > libnettle.stamp -libhogweed.a: $(hogweed_OBJS) +$(LIBHOGWEED_FILE): $(hogweed_OBJS) -rm -f $@ $(AR) $(ARFLAGS) $@ $(hogweed_OBJS) $(RANLIB) $@ diff --git a/configure.ac b/configure.ac index c020afd..0fb201b 100644 --- a/configure.ac +++ b/configure.ac @@ -786,8 +786,8 @@ case "$host_os" in # linking to the DLL, is installed into the lib dir. case "$host_os" in mingw32*) - LIBNETTLE_FORLINK='libnettle-$(LIBNETTLE_MAJOR).dll' - LIBHOGWEED_FORLINK='libhogweed-$(LIBHOGWEED_MAJOR).dll' + LIBNETTLE_FORLINK='nettle-$(LIBNETTLE_MAJOR).dll' + LIBHOGWEED_FORLINK='hogweed-$(LIBHOGWEED_MAJOR).dll' ;; cygwin*) LIBNETTLE_FORLINK='cygnettle-$(LIBNETTLE_MAJOR).dll' @@ -808,16 +808,16 @@ case "$host_os" in W64_ABI=yes fi LIBNETTLE_SONAME='' - LIBNETTLE_FILE='libnettle.dll.a' + LIBNETTLE_FILE='nettle.lib' LIBNETTLE_FILE_SRC='$(LIBNETTLE_FILE)' - LIBNETTLE_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive' - LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)' + LIBNETTLE_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBNETTLE_FILE) -Wl,-DEF:nettle.def' + LIBNETTLE_LIBS='$(LIBS)' LIBHOGWEED_SONAME='' - LIBHOGWEED_FILE='libhogweed.dll.a' + LIBHOGWEED_FILE='hogweed.lib' LIBHOGWEED_FILE_SRC='$(LIBHOGWEED_FILE)' - LIBHOGWEED_LINK='$(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_FILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive' - LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS) libnettle.dll.a' + LIBHOGWEED_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBHOGWEED_FILE) -Wl,-DEF:hogweed.def' + LIBHOGWEED_LIBS='$(LIBS) $(LIBNETTLE_FILE)' IF_DLL='' ;; darwin*) ================================================ FILE: ports/nettle/msvc-support.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 3194735..669bdfe 100644 --- a/Makefile.in +++ b/Makefile.in @@ -29,8 +29,9 @@ include config.make PRE_CPPFLAGS = -I. EXTRA_CFLAGS = $(CCPIC) -LIBTARGETS = @IF_STATIC@ libnettle.a @IF_HOGWEED@ libhogweed.a +LIBTARGETS = @IF_STATIC@ @LIBNETTLE_ARCHIVE@ @IF_HOGWEED@ @LIBHOGWEED_ARCHIVE@ SHLIBTARGETS = @IF_SHARED@ $(LIBNETTLE_FORLINK) @IF_HOGWEED@ $(LIBHOGWEED_FORLINK) +MSVC_TARGET = @MSVC_TARGET@ getopt_SOURCES = getopt.c getopt1.c getopt_TARGETS = $(getopt_SOURCES:.c=.$(OBJEXT)) @@ -288,13 +289,13 @@ nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) \ hogweed_OBJS = $(hogweed_SOURCES:.c=.$(OBJEXT)) \ $(OPT_HOGWEED_OBJS) @IF_MINI_GMP@ mini-gmp.$(OBJEXT) -libnettle.a: $(nettle_OBJS) +@LIBNETTLE_ARCHIVE@: $(nettle_OBJS) -rm -f $@ $(AR) $(ARFLAGS) $@ $(nettle_OBJS) $(RANLIB) $@ echo nettle > libnettle.stamp -libhogweed.a: $(hogweed_OBJS) +@LIBHOGWEED_ARCHIVE@: $(hogweed_OBJS) -rm -f $@ $(AR) $(ARFLAGS) $@ $(hogweed_OBJS) $(RANLIB) $@ @@ -500,8 +501,8 @@ install-static: $(LIBTARGETS) done install-dll-nettle: - $(MKDIR_P) $(DESTDIR)$(bindir) - $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(bindir)/$(LIBNETTLE_FORLINK) + $(MKDIR_P) $(DESTDIR)$(libdir)/../bin + $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBNETTLE_FORLINK) install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle $(MKDIR_P) $(DESTDIR)$(libdir) @@ -513,8 +514,8 @@ install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle && $(LN_S) $(LIBNETTLE_FILE) $(LIBNETTLE_FORLINK)) install-dll-hogweed: - $(MKDIR_P) $(DESTDIR)$(bindir) - $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(bindir)/$(LIBHOGWEED_FORLINK) + $(MKDIR_P) $(DESTDIR)$(libdir)/../bin + $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBHOGWEED_FORLINK) install-shared-hogweed: $(LIBHOGWEED_FORLINK) @IF_DLL@ install-dll-hogweed $(MKDIR_P) $(DESTDIR)$(libdir) diff --git a/configure.ac b/configure.ac index 7a17853..c854679 100644 --- a/configure.ac +++ b/configure.ac @@ -907,6 +907,27 @@ case "$host_os" in LIBHOGWEED_LIBS='libnettle.so $(LIBS)' ;; esac +AC_ARG_VAR(MSVC_TARGET,[Enable msvc and set target architecture]) +case "$MSVC_TARGET" in +x86|x64|arm|arm64) + LIBNETTLE_ARCHIVE='nettle.lib' + LIBNETTLE_FORLINK='nettle-$(LIBNETTLE_MAJOR).dll' + LIBNETTLE_FILE='nettle.lib' + LIBNETTLE_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBNETTLE_FILE) -Wl,-DEF:$(srcdir)/nettle-$(MSVC_TARGET).def' + LIBNETTLE_LIBS='$(LIBS)' + LIBHOGWEED_FILE='hogweed.lib' + LIBHOGWEED_ARCHIVE='hogweed.lib' + LIBHOGWEED_FORLINK='hogweed-$(LIBHOGWEED_MAJOR).dll' + LIBHOGWEED_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBHOGWEED_FILE) -Wl,-DEF:$(srcdir)/hogweed-$(MSVC_TARGET).def' + LIBHOGWEED_LIBS='$(LIBNETTLE_FILE) $(LIBS)' + ;; +*) + LIBNETTLE_ARCHIVE='libnettle.a' + LIBHOGWEED_ARCHIVE='libhogweed.a' + ;; +esac +AC_SUBST(LIBNETTLE_ARCHIVE) +AC_SUBST(LIBHOGWEED_ARCHIVE) ASM_SYMBOL_PREFIX='' ASM_ELF_STYLE='no' diff --git a/getopt.c b/getopt.c index 9d29de7..42df5a6 100644 --- a/getopt.c +++ b/getopt.c @@ -32,7 +32,9 @@ #include #include #include +#ifndef _MSC_VER #include +#endif /* Comment out all this code if we are using the GNU C Library, and are not ================================================ FILE: ports/nettle/nettle-arm.def ================================================ EXPORTS nettle_xts_aes256_set_encrypt_key nettle_xts_aes256_set_decrypt_key nettle_xts_aes256_encrypt_message nettle_xts_aes256_decrypt_message nettle_xts_aes128_set_encrypt_key nettle_xts_aes128_set_decrypt_key nettle_xts_aes128_encrypt_message nettle_xts_aes128_decrypt_message nettle_xts_encrypt_message nettle_xts_decrypt_message nettle_yarrow_key_event_init nettle_yarrow_key_event_estimate nettle_yarrow256_init nettle_yarrow256_seed nettle_yarrow256_update nettle_yarrow256_random nettle_yarrow256_is_seeded nettle_yarrow256_needed_sources nettle_yarrow256_fast_reseed nettle_yarrow256_slow_reseed _nettle_write_le64 _nettle_write_le32 _nettle_write_be32 nettle_version_major nettle_version_minor nettle_umac128_set_key nettle_umac128_set_nonce nettle_umac128_update nettle_umac128_digest nettle_umac96_set_key nettle_umac96_set_nonce nettle_umac96_update nettle_umac96_digest nettle_umac64_set_key nettle_umac64_set_nonce nettle_umac64_update nettle_umac64_digest nettle_umac32_set_key nettle_umac32_set_nonce nettle_umac32_update nettle_umac32_digest _nettle_umac_set_key _nettle_umac_poly128 _nettle_umac_poly64 _nettle_umac_l3_init _nettle_umac_l3 _nettle_umac_l2_init _nettle_umac_l2 _nettle_umac_l2_final _nettle_umac_nh_n _nettle_umac_nh nettle_sm4 nettle_sm4_set_encrypt_key nettle_sm4_set_decrypt_key nettle_sm4_crypt nettle_twofish128 nettle_twofish192 nettle_twofish256 nettle_twofish_set_key nettle_twofish128_set_key nettle_twofish192_set_key nettle_twofish256_set_key nettle_twofish_encrypt nettle_twofish_decrypt nettle_streebog256 nettle_streebog512 nettle_streebog512_init nettle_streebog512_update nettle_streebog512_digest nettle_streebog256_init nettle_streebog256_digest nettle_serpent128 nettle_serpent192 nettle_serpent256 nettle_serpent_decrypt nettle_serpent_encrypt nettle_serpent_set_key nettle_serpent128_set_key nettle_serpent192_set_key nettle_serpent256_set_key nettle_sm3 nettle_sm3_init nettle_sm3_update nettle_sm3_digest nettle_sha3_256_shake nettle_sha3_512 nettle_sha3_512_init nettle_sha3_512_update nettle_sha3_512_digest nettle_sha3_384 nettle_sha3_384_init nettle_sha3_384_update nettle_sha3_384_digest nettle_sha3_256 nettle_sha3_256_init nettle_sha3_256_update nettle_sha3_256_digest nettle_sha3_224 nettle_sha3_224_init nettle_sha3_224_update nettle_sha3_224_digest nettle_sha3_permute _nettle_sha3_update _nettle_sha3_pad nettle_sha512_256 nettle_sha512_224 nettle_sha512 nettle_sha384 _nettle_sha512_compress nettle_sha512_init nettle_sha512_update nettle_sha512_digest nettle_sha512_compress nettle_sha384_init nettle_sha384_digest nettle_sha512_224_init nettle_sha512_224_digest nettle_sha512_256_init nettle_sha512_256_digest nettle_sha256 nettle_sha224 _nettle_sha256_compress_n nettle_sha256_init nettle_sha256_update nettle_sha256_digest nettle_sha256_compress nettle_sha224_init nettle_sha224_digest nettle_sha1 nettle_sha1_compress nettle_sha1_init nettle_sha1_update nettle_sha1_digest nettle_salsa20_256_set_key nettle_salsa20_128_set_key nettle_salsa20_set_nonce nettle_salsa20_set_key nettle_salsa20r12_crypt nettle_salsa20_crypt _nettle_salsa20_crypt _nettle_salsa20_core nettle_ripemd160 _nettle_ripemd160_compress nettle_ripemd160_init nettle_ripemd160_update nettle_ripemd160_digest nettle_realloc nettle_xrealloc _nettle_poly1305_update _nettle_poly1305_set_key _nettle_poly1305_digest _nettle_poly1305_block nettle_poly1305_aes_set_key nettle_poly1305_aes_set_nonce nettle_poly1305_aes_update nettle_poly1305_aes_digest nettle_pbkdf2_hmac_sha512 nettle_pbkdf2_hmac_sha384 nettle_pbkdf2_hmac_sha256 nettle_pbkdf2_hmac_sha1 nettle_pbkdf2_hmac_gosthash94cp nettle_pbkdf2 nettle_ocb_aes128_set_encrypt_key nettle_ocb_aes128_set_decrypt_key nettle_ocb_aes128_set_nonce nettle_ocb_aes128_update nettle_ocb_aes128_encrypt nettle_ocb_aes128_decrypt nettle_ocb_aes128_digest nettle_ocb_aes128_encrypt_message nettle_ocb_aes128_decrypt_message nettle_ocb_set_key nettle_ocb_set_nonce nettle_ocb_update nettle_ocb_encrypt nettle_ocb_decrypt nettle_ocb_digest nettle_ocb_encrypt_message nettle_ocb_decrypt_message _nettle_macs nettle_get_macs _nettle_hashes nettle_get_hashes _nettle_ciphers nettle_get_ciphers _nettle_armors nettle_get_armors _nettle_aeads nettle_get_aeads nettle_lookup_hash nettle_memxor3 nettle_memxor nettle_memeql_sec nettle_md5 nettle_MD5Init nettle_MD5Update nettle_MD5Final nettle_md5_compress nettle_md5_init nettle_md5_update nettle_md5_digest nettle_md4 nettle_md4_init nettle_md4_update nettle_md4_digest nettle_md2 nettle_md2_init nettle_md2_update nettle_md2_digest nettle_hkdf_extract nettle_hkdf_expand nettle_knuth_lfib_init nettle_knuth_lfib_get nettle_knuth_lfib_get_array nettle_knuth_lfib_random nettle_hmac_sm3 nettle_hmac_streebog256 nettle_hmac_streebog512 nettle_hmac_sha512 nettle_hmac_sha384 nettle_hmac_sha256 nettle_hmac_sha224 nettle_hmac_sha1 nettle_hmac_ripemd160 nettle_hmac_md5 nettle_hmac_sm3_set_key nettle_hmac_sm3_update nettle_hmac_sm3_digest nettle_hmac_streebog512_set_key nettle_hmac_streebog512_update nettle_hmac_streebog512_digest nettle_hmac_streebog256_set_key nettle_hmac_streebog256_digest nettle_hmac_sha512_set_key nettle_hmac_sha512_update nettle_hmac_sha512_digest nettle_hmac_sha384_set_key nettle_hmac_sha384_digest nettle_hmac_sha256_set_key nettle_hmac_sha256_update nettle_hmac_sha256_digest nettle_hmac_sha224_set_key nettle_hmac_sha224_digest nettle_hmac_sha1_set_key nettle_hmac_sha1_update nettle_hmac_sha1_digest nettle_hmac_ripemd160_set_key nettle_hmac_ripemd160_update nettle_hmac_ripemd160_digest nettle_hmac_md5_set_key nettle_hmac_md5_update nettle_hmac_md5_digest nettle_hmac_gosthash94_set_key nettle_hmac_gosthash94_update nettle_hmac_gosthash94_digest nettle_hmac_gosthash94cp_set_key nettle_hmac_gosthash94cp_update nettle_hmac_gosthash94cp_digest nettle_hmac_set_key nettle_hmac_update nettle_hmac_digest nettle_gosthash94 nettle_gosthash94cp nettle_gosthash94_init nettle_gosthash94_update nettle_gosthash94_digest nettle_gosthash94cp_update nettle_gosthash94cp_digest _nettle_gost28147_param_test_3411 _nettle_gost28147_param_CryptoPro_3411 _nettle_gost28147_encrypt_block nettle_cmac_des3 nettle_cmac_aes256 nettle_cmac_aes128 nettle_cmac_des3_set_key nettle_cmac_des3_update nettle_cmac_des3_digest nettle_cmac_aes256_set_key nettle_cmac_aes256_update nettle_cmac_aes256_digest nettle_cmac_aes128_set_key nettle_cmac_aes128_update nettle_cmac_aes128_digest nettle_cmac64_set_key nettle_cmac64_init nettle_cmac64_update nettle_cmac64_digest nettle_cmac128_set_key nettle_cmac128_init nettle_cmac128_update nettle_cmac128_digest nettle_gcm_sm4 nettle_gcm_sm4_set_key nettle_gcm_sm4_set_iv nettle_gcm_sm4_update nettle_gcm_sm4_encrypt nettle_gcm_sm4_decrypt nettle_gcm_sm4_digest nettle_gcm_camellia256 nettle_gcm_camellia256_set_key nettle_gcm_camellia256_set_iv nettle_gcm_camellia256_update nettle_gcm_camellia256_encrypt nettle_gcm_camellia256_decrypt nettle_gcm_camellia256_digest nettle_gcm_camellia128 nettle_gcm_camellia128_set_key nettle_gcm_camellia128_set_iv nettle_gcm_camellia128_update nettle_gcm_camellia128_encrypt nettle_gcm_camellia128_decrypt nettle_gcm_camellia128_digest nettle_gcm_aes256 nettle_gcm_aes256_set_key nettle_gcm_aes256_update nettle_gcm_aes256_set_iv nettle_gcm_aes256_encrypt nettle_gcm_aes256_decrypt nettle_gcm_aes256_digest nettle_gcm_aes192 nettle_gcm_aes192_set_key nettle_gcm_aes192_update nettle_gcm_aes192_set_iv nettle_gcm_aes192_encrypt nettle_gcm_aes192_decrypt nettle_gcm_aes192_digest nettle_gcm_aes128 nettle_gcm_aes128_set_key nettle_gcm_aes128_update nettle_gcm_aes128_set_iv nettle_gcm_aes128_encrypt nettle_gcm_aes128_decrypt nettle_gcm_aes128_digest nettle_gcm_aes_set_key nettle_gcm_aes_set_iv nettle_gcm_aes_update nettle_gcm_aes_encrypt nettle_gcm_aes_decrypt nettle_gcm_aes_digest nettle_gcm_set_key nettle_gcm_set_iv nettle_gcm_update nettle_gcm_encrypt nettle_gcm_decrypt nettle_gcm_digest _nettle_siv_ghash_update _nettle_siv_ghash_set_key _nettle_ghash_update _nettle_ghash_set_key nettle_eax_aes128 nettle_eax_aes128_set_key nettle_eax_aes128_set_nonce nettle_eax_aes128_update nettle_eax_aes128_encrypt nettle_eax_aes128_decrypt nettle_eax_aes128_digest nettle_eax_set_key nettle_eax_set_nonce nettle_eax_update nettle_eax_encrypt nettle_eax_decrypt nettle_eax_digest nettle_des3_set_key nettle_des3_encrypt nettle_des3_decrypt nettle_des_set_key nettle_des_encrypt nettle_des_decrypt nettle_des_check_parity nettle_des_fix_parity _nettle_ctr_crypt16 nettle_ctr_crypt nettle_chacha_set_nonce nettle_chacha_set_nonce96 nettle_chacha_set_counter nettle_chacha_set_counter32 nettle_chacha_set_key nettle_chacha_poly1305 nettle_chacha_poly1305_set_key nettle_chacha_poly1305_set_nonce nettle_chacha_poly1305_update nettle_chacha_poly1305_encrypt nettle_chacha_poly1305_decrypt nettle_chacha_poly1305_digest _nettle_chacha_core nettle_chacha_crypt nettle_chacha_crypt32 nettle_cnd_memcpy nettle_siv_gcm_aes256_encrypt_message nettle_siv_gcm_aes256_decrypt_message nettle_siv_gcm_aes128_encrypt_message nettle_siv_gcm_aes128_decrypt_message nettle_siv_gcm_encrypt_message nettle_siv_gcm_decrypt_message nettle_siv_cmac_aes256_set_key nettle_siv_cmac_aes256_encrypt_message nettle_siv_cmac_aes256_decrypt_message nettle_siv_cmac_aes128_set_key nettle_siv_cmac_aes128_encrypt_message nettle_siv_cmac_aes128_decrypt_message nettle_siv_cmac_set_key nettle_siv_cmac_encrypt_message nettle_siv_cmac_decrypt_message nettle_cfb_encrypt nettle_cfb_decrypt nettle_cfb8_encrypt nettle_cfb8_decrypt nettle_ccm_aes256_set_key nettle_ccm_aes256_set_nonce nettle_ccm_aes256_update nettle_ccm_aes256_encrypt nettle_ccm_aes256_decrypt nettle_ccm_aes256_digest nettle_ccm_aes256_encrypt_message nettle_ccm_aes256_decrypt_message nettle_ccm_aes192_set_key nettle_ccm_aes192_set_nonce nettle_ccm_aes192_update nettle_ccm_aes192_encrypt nettle_ccm_aes192_decrypt nettle_ccm_aes192_digest nettle_ccm_aes192_encrypt_message nettle_ccm_aes192_decrypt_message nettle_ccm_aes128_set_key nettle_ccm_aes128_set_nonce nettle_ccm_aes128_update nettle_ccm_aes128_encrypt nettle_ccm_aes128_decrypt nettle_ccm_aes128_digest nettle_ccm_aes128_encrypt_message nettle_ccm_aes128_decrypt_message nettle_ccm_set_nonce nettle_ccm_update nettle_ccm_encrypt nettle_ccm_decrypt nettle_ccm_digest nettle_ccm_encrypt_message nettle_ccm_decrypt_message nettle_cbc_aes256_encrypt nettle_cbc_aes192_encrypt nettle_cbc_aes128_encrypt nettle_cbc_encrypt nettle_cbc_decrypt nettle_cast128 nettle_cast5_set_key nettle_cast128_set_key nettle_cast128_encrypt nettle_cast128_decrypt nettle_camellia256 nettle_camellia256_set_decrypt_key nettle_camellia256_invert_key nettle_camellia192_set_decrypt_key nettle_camellia256_crypt nettle_camellia256_set_encrypt_key nettle_camellia192_set_encrypt_key nettle_camellia192 nettle_camellia128 nettle_camellia_set_decrypt_key nettle_camellia128_invert_key nettle_camellia128_crypt nettle_camellia128_set_encrypt_key _nettle_camellia_invert_key _nettle_camellia_absorb _nettle_camellia_table _nettle_camellia_crypt nettle_buffer_init nettle_buffer_init_realloc nettle_buffer_init_size nettle_buffer_clear nettle_buffer_reset nettle_buffer_grow nettle_buffer_write nettle_buffer_space nettle_buffer_copy nettle_base64url nettle_base64url_decode_init nettle_base64url_encode_init nettle_base64 nettle_base64_decode_init nettle_base64_decode_single nettle_base64_decode_update nettle_base64_decode_final nettle_base64_encode_init nettle_base64_encode_single nettle_base64_encode_update nettle_base64_encode_final nettle_base64_encode_raw nettle_base64_encode_group nettle_base16 nettle_base16_decode_init nettle_base16_decode_single nettle_base16_decode_update nettle_base16_decode_final nettle_base16_encode_single nettle_base16_encode_update nettle_balloon_sha512 nettle_balloon_sha384 nettle_balloon_sha256 nettle_balloon_sha1 nettle_balloon nettle_balloon_itch nettle_blowfish_bcrypt_hash nettle_blowfish_bcrypt_verify _nettle_blowfish_initial_ctx nettle_blowfish_set_key nettle_blowfish128_set_key nettle_blowfish_encrypt nettle_blowfish_decrypt _nettle_blowfish_encround nettle_arctwo40 nettle_arctwo64 nettle_arctwo128 nettle_arctwo_gutmann128 nettle_arctwo_set_key_ekb nettle_arctwo_set_key nettle_arctwo40_set_key nettle_arctwo64_set_key nettle_arctwo128_set_key nettle_arctwo_set_key_gutmann nettle_arctwo128_set_key_gutmann nettle_arctwo_encrypt nettle_arctwo_decrypt nettle_arcfour_set_key nettle_arcfour128_set_key nettle_arcfour_crypt nettle_nist_keywrap16 nettle_nist_keyunwrap16 nettle_aes128_keywrap nettle_aes192_keywrap nettle_aes256_keywrap nettle_aes128_keyunwrap nettle_aes192_keyunwrap nettle_aes256_keyunwrap nettle_aes256 nettle_aes256_set_decrypt_key nettle_aes256_invert_key nettle_aes256_set_encrypt_key nettle_aes192 nettle_aes192_set_decrypt_key nettle_aes192_invert_key nettle_aes192_set_encrypt_key nettle_aes128 nettle_aes128_set_decrypt_key nettle_aes128_invert_key nettle_aes128_set_encrypt_key nettle_aes_set_decrypt_key nettle_aes_invert_key nettle_aes_set_encrypt_key _nettle_aes_set_key _nettle_aes_invert nettle_aes256_encrypt nettle_aes192_encrypt nettle_aes128_encrypt _nettle_aes_encrypt_table nettle_aes_encrypt _nettle_aes_encrypt nettle_aes256_decrypt nettle_aes192_decrypt nettle_aes128_decrypt _nettle_aes_decrypt_table nettle_aes_decrypt _nettle_aes_decrypt nettle_sha3_256_shake_output nettle_sha3_128_init nettle_sha3_128_update nettle_sha3_128_shake_output ================================================ FILE: ports/nettle/nettle-arm64.def ================================================ EXPORTS _nettle_sha256_compress_n_arm64 _nettle_sha1_compress_arm64 _nettle_ghash_update_arm64 _nettle_ghash_set_key_arm64 _nettle_chacha_4core _nettle_chacha_4core32 _nettle_chacha_2core _nettle_chacha_2core32 _nettle_aes256_decrypt_arm64 _nettle_aes256_encrypt_arm64 _nettle_aes192_decrypt_arm64 _nettle_aes192_encrypt_arm64 _nettle_aes128_decrypt_arm64 _nettle_aes128_encrypt_arm64 nettle_aes128_encrypt nettle_aes128_decrypt nettle_aes192_encrypt nettle_aes192_decrypt nettle_aes256_encrypt nettle_aes256_decrypt _nettle_ghash_set_key _nettle_ghash_update nettle_sha1_compress _nettle_sha256_compress_n nettle_xts_aes256_set_encrypt_key nettle_xts_aes256_set_decrypt_key nettle_xts_aes256_encrypt_message nettle_xts_aes256_decrypt_message nettle_xts_aes128_set_encrypt_key nettle_xts_aes128_set_decrypt_key nettle_xts_aes128_encrypt_message nettle_xts_aes128_decrypt_message nettle_xts_encrypt_message nettle_xts_decrypt_message nettle_yarrow_key_event_init nettle_yarrow_key_event_estimate nettle_yarrow256_init nettle_yarrow256_seed nettle_yarrow256_update nettle_yarrow256_random nettle_yarrow256_is_seeded nettle_yarrow256_needed_sources nettle_yarrow256_fast_reseed nettle_yarrow256_slow_reseed _nettle_write_le64 _nettle_write_le32 _nettle_write_be32 nettle_version_major nettle_version_minor nettle_umac128_set_key nettle_umac128_set_nonce nettle_umac128_update nettle_umac128_digest nettle_umac96_set_key nettle_umac96_set_nonce nettle_umac96_update nettle_umac96_digest nettle_umac64_set_key nettle_umac64_set_nonce nettle_umac64_update nettle_umac64_digest nettle_umac32_set_key nettle_umac32_set_nonce nettle_umac32_update nettle_umac32_digest _nettle_umac_set_key _nettle_umac_poly128 _nettle_umac_poly64 _nettle_umac_l3_init _nettle_umac_l3 _nettle_umac_l2_init _nettle_umac_l2 _nettle_umac_l2_final _nettle_umac_nh_n _nettle_umac_nh nettle_sm4 nettle_sm4_set_encrypt_key nettle_sm4_set_decrypt_key nettle_sm4_crypt nettle_twofish128 nettle_twofish192 nettle_twofish256 nettle_twofish_set_key nettle_twofish128_set_key nettle_twofish192_set_key nettle_twofish256_set_key nettle_twofish_encrypt nettle_twofish_decrypt nettle_streebog256 nettle_streebog512 nettle_streebog512_init nettle_streebog512_update nettle_streebog512_digest nettle_streebog256_init nettle_streebog256_digest nettle_serpent128 nettle_serpent192 nettle_serpent256 nettle_serpent_decrypt nettle_serpent_encrypt nettle_serpent_set_key nettle_serpent128_set_key nettle_serpent192_set_key nettle_serpent256_set_key nettle_sm3 nettle_sm3_init nettle_sm3_update nettle_sm3_digest nettle_sha3_256_shake nettle_sha3_512 nettle_sha3_512_init nettle_sha3_512_update nettle_sha3_512_digest nettle_sha3_384 nettle_sha3_384_init nettle_sha3_384_update nettle_sha3_384_digest nettle_sha3_256 nettle_sha3_256_init nettle_sha3_256_update nettle_sha3_256_digest nettle_sha3_224 nettle_sha3_224_init nettle_sha3_224_update nettle_sha3_224_digest nettle_sha3_permute _nettle_sha3_update _nettle_sha3_pad nettle_sha512_256 nettle_sha512_224 nettle_sha512 nettle_sha384 _nettle_sha512_compress nettle_sha512_init nettle_sha512_update nettle_sha512_digest nettle_sha512_compress nettle_sha384_init nettle_sha384_digest nettle_sha512_224_init nettle_sha512_224_digest nettle_sha512_256_init nettle_sha512_256_digest nettle_sha256 nettle_sha224 _nettle_sha256_compress_n_c nettle_sha256_init nettle_sha256_update nettle_sha256_digest nettle_sha256_compress nettle_sha224_init nettle_sha224_digest nettle_sha1 _nettle_sha1_compress_c nettle_sha1_init nettle_sha1_update nettle_sha1_digest nettle_salsa20_256_set_key nettle_salsa20_128_set_key nettle_salsa20_set_nonce nettle_salsa20_set_key nettle_salsa20r12_crypt nettle_salsa20_crypt _nettle_salsa20_crypt _nettle_salsa20_core nettle_ripemd160 _nettle_ripemd160_compress nettle_ripemd160_init nettle_ripemd160_update nettle_ripemd160_digest nettle_realloc nettle_xrealloc _nettle_poly1305_update _nettle_poly1305_set_key _nettle_poly1305_digest _nettle_poly1305_block nettle_poly1305_aes_set_key nettle_poly1305_aes_set_nonce nettle_poly1305_aes_update nettle_poly1305_aes_digest nettle_pbkdf2_hmac_sha512 nettle_pbkdf2_hmac_sha384 nettle_pbkdf2_hmac_sha256 nettle_pbkdf2_hmac_sha1 nettle_pbkdf2_hmac_gosthash94cp nettle_pbkdf2 nettle_ocb_aes128_set_encrypt_key nettle_ocb_aes128_set_decrypt_key nettle_ocb_aes128_set_nonce nettle_ocb_aes128_update nettle_ocb_aes128_encrypt nettle_ocb_aes128_decrypt nettle_ocb_aes128_digest nettle_ocb_aes128_encrypt_message nettle_ocb_aes128_decrypt_message nettle_ocb_set_key nettle_ocb_set_nonce nettle_ocb_update nettle_ocb_encrypt nettle_ocb_decrypt nettle_ocb_digest nettle_ocb_encrypt_message nettle_ocb_decrypt_message _nettle_macs nettle_get_macs _nettle_hashes nettle_get_hashes _nettle_ciphers nettle_get_ciphers _nettle_armors nettle_get_armors _nettle_aeads nettle_get_aeads nettle_lookup_hash nettle_memxor3 nettle_memxor nettle_memeql_sec nettle_md5 nettle_MD5Init nettle_MD5Update nettle_MD5Final nettle_md5_compress nettle_md5_init nettle_md5_update nettle_md5_digest nettle_md4 nettle_md4_init nettle_md4_update nettle_md4_digest nettle_md2 nettle_md2_init nettle_md2_update nettle_md2_digest nettle_hkdf_extract nettle_hkdf_expand nettle_knuth_lfib_init nettle_knuth_lfib_get nettle_knuth_lfib_get_array nettle_knuth_lfib_random nettle_hmac_sm3 nettle_hmac_streebog256 nettle_hmac_streebog512 nettle_hmac_sha512 nettle_hmac_sha384 nettle_hmac_sha256 nettle_hmac_sha224 nettle_hmac_sha1 nettle_hmac_ripemd160 nettle_hmac_md5 nettle_hmac_sm3_set_key nettle_hmac_sm3_update nettle_hmac_sm3_digest nettle_hmac_streebog512_set_key nettle_hmac_streebog512_update nettle_hmac_streebog512_digest nettle_hmac_streebog256_set_key nettle_hmac_streebog256_digest nettle_hmac_sha512_set_key nettle_hmac_sha512_update nettle_hmac_sha512_digest nettle_hmac_sha384_set_key nettle_hmac_sha384_digest nettle_hmac_sha256_set_key nettle_hmac_sha256_update nettle_hmac_sha256_digest nettle_hmac_sha224_set_key nettle_hmac_sha224_digest nettle_hmac_sha1_set_key nettle_hmac_sha1_update nettle_hmac_sha1_digest nettle_hmac_ripemd160_set_key nettle_hmac_ripemd160_update nettle_hmac_ripemd160_digest nettle_hmac_md5_set_key nettle_hmac_md5_update nettle_hmac_md5_digest nettle_hmac_gosthash94_set_key nettle_hmac_gosthash94_update nettle_hmac_gosthash94_digest nettle_hmac_gosthash94cp_set_key nettle_hmac_gosthash94cp_update nettle_hmac_gosthash94cp_digest nettle_hmac_set_key nettle_hmac_update nettle_hmac_digest nettle_gosthash94 nettle_gosthash94cp nettle_gosthash94_init nettle_gosthash94_update nettle_gosthash94_digest nettle_gosthash94cp_update nettle_gosthash94cp_digest _nettle_gost28147_param_test_3411 _nettle_gost28147_param_CryptoPro_3411 _nettle_gost28147_encrypt_block nettle_cmac_des3 nettle_cmac_aes256 nettle_cmac_aes128 nettle_cmac_des3_set_key nettle_cmac_des3_update nettle_cmac_des3_digest nettle_cmac_aes256_set_key nettle_cmac_aes256_update nettle_cmac_aes256_digest nettle_cmac_aes128_set_key nettle_cmac_aes128_update nettle_cmac_aes128_digest nettle_cmac64_set_key nettle_cmac64_init nettle_cmac64_update nettle_cmac64_digest nettle_cmac128_set_key nettle_cmac128_init nettle_cmac128_update nettle_cmac128_digest nettle_gcm_sm4 nettle_gcm_sm4_set_key nettle_gcm_sm4_set_iv nettle_gcm_sm4_update nettle_gcm_sm4_encrypt nettle_gcm_sm4_decrypt nettle_gcm_sm4_digest nettle_gcm_camellia256 nettle_gcm_camellia256_set_key nettle_gcm_camellia256_set_iv nettle_gcm_camellia256_update nettle_gcm_camellia256_encrypt nettle_gcm_camellia256_decrypt nettle_gcm_camellia256_digest nettle_gcm_camellia128 nettle_gcm_camellia128_set_key nettle_gcm_camellia128_set_iv nettle_gcm_camellia128_update nettle_gcm_camellia128_encrypt nettle_gcm_camellia128_decrypt nettle_gcm_camellia128_digest nettle_gcm_aes256 nettle_gcm_aes256_set_key nettle_gcm_aes256_update nettle_gcm_aes256_set_iv nettle_gcm_aes256_encrypt nettle_gcm_aes256_decrypt nettle_gcm_aes256_digest nettle_gcm_aes192 nettle_gcm_aes192_set_key nettle_gcm_aes192_update nettle_gcm_aes192_set_iv nettle_gcm_aes192_encrypt nettle_gcm_aes192_decrypt nettle_gcm_aes192_digest nettle_gcm_aes128 nettle_gcm_aes128_set_key nettle_gcm_aes128_update nettle_gcm_aes128_set_iv nettle_gcm_aes128_encrypt nettle_gcm_aes128_decrypt nettle_gcm_aes128_digest nettle_gcm_aes_set_key nettle_gcm_aes_set_iv nettle_gcm_aes_update nettle_gcm_aes_encrypt nettle_gcm_aes_decrypt nettle_gcm_aes_digest nettle_gcm_set_key nettle_gcm_set_iv nettle_gcm_update nettle_gcm_encrypt nettle_gcm_decrypt nettle_gcm_digest _nettle_siv_ghash_update _nettle_siv_ghash_set_key _nettle_ghash_update_c _nettle_ghash_set_key_c nettle_eax_aes128 nettle_eax_aes128_set_key nettle_eax_aes128_set_nonce nettle_eax_aes128_update nettle_eax_aes128_encrypt nettle_eax_aes128_decrypt nettle_eax_aes128_digest nettle_eax_set_key nettle_eax_set_nonce nettle_eax_update nettle_eax_encrypt nettle_eax_decrypt nettle_eax_digest nettle_des3_set_key nettle_des3_encrypt nettle_des3_decrypt nettle_des_set_key nettle_des_encrypt nettle_des_decrypt nettle_des_check_parity nettle_des_fix_parity _nettle_ctr_crypt16 nettle_ctr_crypt nettle_chacha_set_nonce nettle_chacha_set_nonce96 nettle_chacha_set_counter nettle_chacha_set_counter32 nettle_chacha_set_key nettle_chacha_poly1305 nettle_chacha_poly1305_set_key nettle_chacha_poly1305_set_nonce nettle_chacha_poly1305_update nettle_chacha_poly1305_encrypt nettle_chacha_poly1305_decrypt nettle_chacha_poly1305_digest _nettle_chacha_core nettle_chacha_crypt nettle_chacha_crypt32 nettle_cnd_memcpy nettle_siv_gcm_aes256_encrypt_message nettle_siv_gcm_aes256_decrypt_message nettle_siv_gcm_aes128_encrypt_message nettle_siv_gcm_aes128_decrypt_message nettle_siv_gcm_encrypt_message nettle_siv_gcm_decrypt_message nettle_siv_cmac_aes256_set_key nettle_siv_cmac_aes256_encrypt_message nettle_siv_cmac_aes256_decrypt_message nettle_siv_cmac_aes128_set_key nettle_siv_cmac_aes128_encrypt_message nettle_siv_cmac_aes128_decrypt_message nettle_siv_cmac_set_key nettle_siv_cmac_encrypt_message nettle_siv_cmac_decrypt_message nettle_cfb_encrypt nettle_cfb_decrypt nettle_cfb8_encrypt nettle_cfb8_decrypt nettle_ccm_aes256_set_key nettle_ccm_aes256_set_nonce nettle_ccm_aes256_update nettle_ccm_aes256_encrypt nettle_ccm_aes256_decrypt nettle_ccm_aes256_digest nettle_ccm_aes256_encrypt_message nettle_ccm_aes256_decrypt_message nettle_ccm_aes192_set_key nettle_ccm_aes192_set_nonce nettle_ccm_aes192_update nettle_ccm_aes192_encrypt nettle_ccm_aes192_decrypt nettle_ccm_aes192_digest nettle_ccm_aes192_encrypt_message nettle_ccm_aes192_decrypt_message nettle_ccm_aes128_set_key nettle_ccm_aes128_set_nonce nettle_ccm_aes128_update nettle_ccm_aes128_encrypt nettle_ccm_aes128_decrypt nettle_ccm_aes128_digest nettle_ccm_aes128_encrypt_message nettle_ccm_aes128_decrypt_message nettle_ccm_set_nonce nettle_ccm_update nettle_ccm_encrypt nettle_ccm_decrypt nettle_ccm_digest nettle_ccm_encrypt_message nettle_ccm_decrypt_message nettle_cbc_aes256_encrypt nettle_cbc_aes192_encrypt nettle_cbc_aes128_encrypt nettle_cbc_encrypt nettle_cbc_decrypt nettle_cast128 nettle_cast5_set_key nettle_cast128_set_key nettle_cast128_encrypt nettle_cast128_decrypt nettle_camellia256 nettle_camellia256_set_decrypt_key nettle_camellia256_invert_key nettle_camellia192_set_decrypt_key nettle_camellia256_crypt nettle_camellia256_set_encrypt_key nettle_camellia192_set_encrypt_key nettle_camellia192 nettle_camellia128 nettle_camellia_set_decrypt_key nettle_camellia128_invert_key nettle_camellia128_crypt nettle_camellia128_set_encrypt_key _nettle_camellia_invert_key _nettle_camellia_absorb _nettle_camellia_table _nettle_camellia_crypt nettle_buffer_init nettle_buffer_init_realloc nettle_buffer_init_size nettle_buffer_clear nettle_buffer_reset nettle_buffer_grow nettle_buffer_write nettle_buffer_space nettle_buffer_copy nettle_base64url nettle_base64url_decode_init nettle_base64url_encode_init nettle_base64 nettle_base64_decode_init nettle_base64_decode_single nettle_base64_decode_update nettle_base64_decode_final nettle_base64_encode_init nettle_base64_encode_single nettle_base64_encode_update nettle_base64_encode_final nettle_base64_encode_raw nettle_base64_encode_group nettle_base16 nettle_base16_decode_init nettle_base16_decode_single nettle_base16_decode_update nettle_base16_decode_final nettle_base16_encode_single nettle_base16_encode_update nettle_balloon_sha512 nettle_balloon_sha384 nettle_balloon_sha256 nettle_balloon_sha1 nettle_balloon nettle_balloon_itch nettle_blowfish_bcrypt_hash nettle_blowfish_bcrypt_verify _nettle_blowfish_initial_ctx nettle_blowfish_set_key nettle_blowfish128_set_key nettle_blowfish_encrypt nettle_blowfish_decrypt _nettle_blowfish_encround nettle_arctwo40 nettle_arctwo64 nettle_arctwo128 nettle_arctwo_gutmann128 nettle_arctwo_set_key_ekb nettle_arctwo_set_key nettle_arctwo40_set_key nettle_arctwo64_set_key nettle_arctwo128_set_key nettle_arctwo_set_key_gutmann nettle_arctwo128_set_key_gutmann nettle_arctwo_encrypt nettle_arctwo_decrypt nettle_arcfour_set_key nettle_arcfour128_set_key nettle_arcfour_crypt nettle_nist_keywrap16 nettle_nist_keyunwrap16 nettle_aes128_keywrap nettle_aes192_keywrap nettle_aes256_keywrap nettle_aes128_keyunwrap nettle_aes192_keyunwrap nettle_aes256_keyunwrap nettle_aes256 nettle_aes256_set_decrypt_key nettle_aes256_invert_key nettle_aes256_set_encrypt_key nettle_aes192 nettle_aes192_set_decrypt_key nettle_aes192_invert_key nettle_aes192_set_encrypt_key nettle_aes128 nettle_aes128_set_decrypt_key nettle_aes128_invert_key nettle_aes128_set_encrypt_key nettle_aes_set_decrypt_key nettle_aes_invert_key nettle_aes_set_encrypt_key _nettle_aes_set_key _nettle_aes_invert _nettle_aes256_encrypt_c _nettle_aes192_encrypt_c _nettle_aes128_encrypt_c _nettle_aes_encrypt_table nettle_aes_encrypt _nettle_aes_encrypt _nettle_aes256_decrypt_c _nettle_aes192_decrypt_c _nettle_aes128_decrypt_c _nettle_aes_decrypt_table nettle_aes_decrypt _nettle_aes_decrypt nettle_sha3_256_shake_output nettle_sha3_128_init nettle_sha3_128_update nettle_sha3_128_shake_output ================================================ FILE: ports/nettle/nettle-x64.def ================================================ EXPORTS _nettle_sha256_compress_n_sha_ni _nettle_sha1_compress_sha_ni _nettle_salsa20_2core _nettle_ghash_update_pclmul _nettle_ghash_set_key_pclmul _nettle_poly1305_blocks _nettle_cbc_aes256_encrypt_aesni _nettle_cbc_aes192_encrypt_aesni _nettle_cbc_aes128_encrypt_aesni _nettle_aes256_decrypt_aesni _nettle_aes256_encrypt_aesni _nettle_aes192_decrypt_aesni _nettle_aes192_encrypt_aesni _nettle_aes128_decrypt_aesni _nettle_aes128_encrypt_aesni _nettle_memxor_sse2 _nettle_cpuid nettle_aes128_encrypt nettle_aes128_decrypt nettle_aes192_encrypt nettle_aes192_decrypt nettle_aes256_encrypt nettle_aes256_decrypt _nettle_ghash_set_key _nettle_ghash_update nettle_memxor nettle_cbc_aes128_encrypt nettle_cbc_aes192_encrypt nettle_cbc_aes256_encrypt nettle_sha1_compress _nettle_sha256_compress_n nettle_xts_aes256_set_encrypt_key nettle_xts_aes256_set_decrypt_key nettle_xts_aes256_encrypt_message nettle_xts_aes256_decrypt_message nettle_xts_aes128_set_encrypt_key nettle_xts_aes128_set_decrypt_key nettle_xts_aes128_encrypt_message nettle_xts_aes128_decrypt_message nettle_xts_encrypt_message nettle_xts_decrypt_message nettle_yarrow_key_event_init nettle_yarrow_key_event_estimate nettle_yarrow256_init nettle_yarrow256_seed nettle_yarrow256_update nettle_yarrow256_random nettle_yarrow256_is_seeded nettle_yarrow256_needed_sources nettle_yarrow256_fast_reseed nettle_yarrow256_slow_reseed _nettle_write_le64 _nettle_write_le32 _nettle_write_be32 nettle_version_major nettle_version_minor nettle_umac128_set_key nettle_umac128_set_nonce nettle_umac128_update nettle_umac128_digest nettle_umac96_set_key nettle_umac96_set_nonce nettle_umac96_update nettle_umac96_digest nettle_umac64_set_key nettle_umac64_set_nonce nettle_umac64_update nettle_umac64_digest nettle_umac32_set_key nettle_umac32_set_nonce nettle_umac32_update nettle_umac32_digest _nettle_umac_set_key _nettle_umac_poly128 _nettle_umac_poly64 _nettle_umac_l3_init _nettle_umac_l3 _nettle_umac_l2_init _nettle_umac_l2 _nettle_umac_l2_final _nettle_umac_nh_n _nettle_umac_nh nettle_sm4 nettle_sm4_set_encrypt_key nettle_sm4_set_decrypt_key nettle_sm4_crypt nettle_twofish128 nettle_twofish192 nettle_twofish256 nettle_twofish_set_key nettle_twofish128_set_key nettle_twofish192_set_key nettle_twofish256_set_key nettle_twofish_encrypt nettle_twofish_decrypt nettle_streebog256 nettle_streebog512 nettle_streebog512_init nettle_streebog512_update nettle_streebog512_digest nettle_streebog256_init nettle_streebog256_digest nettle_serpent128 nettle_serpent192 nettle_serpent256 nettle_serpent_decrypt nettle_serpent_encrypt nettle_serpent_set_key nettle_serpent128_set_key nettle_serpent192_set_key nettle_serpent256_set_key nettle_sm3 nettle_sm3_init nettle_sm3_update nettle_sm3_digest nettle_sha3_256_shake nettle_sha3_512 nettle_sha3_512_init nettle_sha3_512_update nettle_sha3_512_digest nettle_sha3_384 nettle_sha3_384_init nettle_sha3_384_update nettle_sha3_384_digest nettle_sha3_256 nettle_sha3_256_init nettle_sha3_256_update nettle_sha3_256_digest nettle_sha3_224 nettle_sha3_224_init nettle_sha3_224_update nettle_sha3_224_digest nettle_sha3_permute _nettle_sha3_update _nettle_sha3_pad nettle_sha512_256 nettle_sha512_224 nettle_sha512 nettle_sha384 _nettle_sha512_compress nettle_sha512_init nettle_sha512_update nettle_sha512_digest nettle_sha512_compress nettle_sha384_init nettle_sha384_digest nettle_sha512_224_init nettle_sha512_224_digest nettle_sha512_256_init nettle_sha512_256_digest nettle_sha256 nettle_sha224 _nettle_sha256_compress_n_x86_64 nettle_sha256_init nettle_sha256_update nettle_sha256_digest nettle_sha256_compress nettle_sha224_init nettle_sha224_digest nettle_sha1 _nettle_sha1_compress_x86_64 nettle_sha1_init nettle_sha1_update nettle_sha1_digest nettle_salsa20_256_set_key nettle_salsa20_128_set_key nettle_salsa20_set_nonce nettle_salsa20_set_key nettle_salsa20r12_crypt nettle_salsa20_crypt _nettle_salsa20_crypt _nettle_salsa20_core nettle_ripemd160 _nettle_ripemd160_compress nettle_ripemd160_init nettle_ripemd160_update nettle_ripemd160_digest nettle_realloc nettle_xrealloc _nettle_poly1305_update _nettle_poly1305_set_key _nettle_poly1305_block _nettle_poly1305_digest nettle_poly1305_aes_set_key nettle_poly1305_aes_set_nonce nettle_poly1305_aes_update nettle_poly1305_aes_digest nettle_pbkdf2_hmac_sha512 nettle_pbkdf2_hmac_sha384 nettle_pbkdf2_hmac_sha256 nettle_pbkdf2_hmac_sha1 nettle_pbkdf2_hmac_gosthash94cp nettle_pbkdf2 nettle_ocb_aes128_set_encrypt_key nettle_ocb_aes128_set_decrypt_key nettle_ocb_aes128_set_nonce nettle_ocb_aes128_update nettle_ocb_aes128_encrypt nettle_ocb_aes128_decrypt nettle_ocb_aes128_digest nettle_ocb_aes128_encrypt_message nettle_ocb_aes128_decrypt_message nettle_ocb_set_key nettle_ocb_set_nonce nettle_ocb_update nettle_ocb_encrypt nettle_ocb_decrypt nettle_ocb_digest nettle_ocb_encrypt_message nettle_ocb_decrypt_message _nettle_macs nettle_get_macs _nettle_hashes nettle_get_hashes _nettle_ciphers nettle_get_ciphers _nettle_armors nettle_get_armors _nettle_aeads nettle_get_aeads nettle_lookup_hash nettle_memxor3 _nettle_memxor_x86_64 nettle_memeql_sec nettle_md5 nettle_MD5Init nettle_MD5Update nettle_MD5Final nettle_md5_compress nettle_md5_init nettle_md5_update nettle_md5_digest nettle_md4 nettle_md4_init nettle_md4_update nettle_md4_digest nettle_md2 nettle_md2_init nettle_md2_update nettle_md2_digest nettle_hkdf_extract nettle_hkdf_expand nettle_knuth_lfib_init nettle_knuth_lfib_get nettle_knuth_lfib_get_array nettle_knuth_lfib_random nettle_hmac_sm3 nettle_hmac_streebog256 nettle_hmac_streebog512 nettle_hmac_sha512 nettle_hmac_sha384 nettle_hmac_sha256 nettle_hmac_sha224 nettle_hmac_sha1 nettle_hmac_ripemd160 nettle_hmac_md5 nettle_hmac_sm3_set_key nettle_hmac_sm3_update nettle_hmac_sm3_digest nettle_hmac_streebog512_set_key nettle_hmac_streebog512_update nettle_hmac_streebog512_digest nettle_hmac_streebog256_set_key nettle_hmac_streebog256_digest nettle_hmac_sha512_set_key nettle_hmac_sha512_update nettle_hmac_sha512_digest nettle_hmac_sha384_set_key nettle_hmac_sha384_digest nettle_hmac_sha256_set_key nettle_hmac_sha256_update nettle_hmac_sha256_digest nettle_hmac_sha224_set_key nettle_hmac_sha224_digest nettle_hmac_sha1_set_key nettle_hmac_sha1_update nettle_hmac_sha1_digest nettle_hmac_ripemd160_set_key nettle_hmac_ripemd160_update nettle_hmac_ripemd160_digest nettle_hmac_md5_set_key nettle_hmac_md5_update nettle_hmac_md5_digest nettle_hmac_gosthash94_set_key nettle_hmac_gosthash94_update nettle_hmac_gosthash94_digest nettle_hmac_gosthash94cp_set_key nettle_hmac_gosthash94cp_update nettle_hmac_gosthash94cp_digest nettle_hmac_set_key nettle_hmac_update nettle_hmac_digest nettle_gosthash94 nettle_gosthash94cp nettle_gosthash94_init nettle_gosthash94_update nettle_gosthash94_digest nettle_gosthash94cp_update nettle_gosthash94cp_digest _nettle_gost28147_param_test_3411 _nettle_gost28147_param_CryptoPro_3411 _nettle_gost28147_encrypt_block nettle_cmac_des3 nettle_cmac_aes256 nettle_cmac_aes128 nettle_cmac_des3_set_key nettle_cmac_des3_update nettle_cmac_des3_digest nettle_cmac_aes256_set_key nettle_cmac_aes256_update nettle_cmac_aes256_digest nettle_cmac_aes128_set_key nettle_cmac_aes128_update nettle_cmac_aes128_digest nettle_cmac64_set_key nettle_cmac64_init nettle_cmac64_update nettle_cmac64_digest nettle_cmac128_set_key nettle_cmac128_init nettle_cmac128_update nettle_cmac128_digest nettle_gcm_sm4 nettle_gcm_sm4_set_key nettle_gcm_sm4_set_iv nettle_gcm_sm4_update nettle_gcm_sm4_encrypt nettle_gcm_sm4_decrypt nettle_gcm_sm4_digest nettle_gcm_camellia256 nettle_gcm_camellia256_set_key nettle_gcm_camellia256_set_iv nettle_gcm_camellia256_update nettle_gcm_camellia256_encrypt nettle_gcm_camellia256_decrypt nettle_gcm_camellia256_digest nettle_gcm_camellia128 nettle_gcm_camellia128_set_key nettle_gcm_camellia128_set_iv nettle_gcm_camellia128_update nettle_gcm_camellia128_encrypt nettle_gcm_camellia128_decrypt nettle_gcm_camellia128_digest nettle_gcm_aes256 nettle_gcm_aes256_set_key nettle_gcm_aes256_update nettle_gcm_aes256_set_iv nettle_gcm_aes256_encrypt nettle_gcm_aes256_decrypt nettle_gcm_aes256_digest nettle_gcm_aes192 nettle_gcm_aes192_set_key nettle_gcm_aes192_update nettle_gcm_aes192_set_iv nettle_gcm_aes192_encrypt nettle_gcm_aes192_decrypt nettle_gcm_aes192_digest nettle_gcm_aes128 nettle_gcm_aes128_set_key nettle_gcm_aes128_update nettle_gcm_aes128_set_iv nettle_gcm_aes128_encrypt nettle_gcm_aes128_decrypt nettle_gcm_aes128_digest nettle_gcm_aes_set_key nettle_gcm_aes_set_iv nettle_gcm_aes_update nettle_gcm_aes_encrypt nettle_gcm_aes_decrypt nettle_gcm_aes_digest nettle_gcm_set_key nettle_gcm_set_iv nettle_gcm_update nettle_gcm_encrypt nettle_gcm_decrypt nettle_gcm_digest _nettle_siv_ghash_update _nettle_siv_ghash_set_key _nettle_ghash_update_table _nettle_ghash_set_key_c nettle_eax_aes128 nettle_eax_aes128_set_key nettle_eax_aes128_set_nonce nettle_eax_aes128_update nettle_eax_aes128_encrypt nettle_eax_aes128_decrypt nettle_eax_aes128_digest nettle_eax_set_key nettle_eax_set_nonce nettle_eax_update nettle_eax_encrypt nettle_eax_decrypt nettle_eax_digest nettle_des3_set_key nettle_des3_encrypt nettle_des3_decrypt nettle_des_set_key nettle_des_encrypt nettle_des_decrypt nettle_des_check_parity nettle_des_fix_parity _nettle_ctr_crypt16 nettle_ctr_crypt nettle_chacha_set_nonce nettle_chacha_set_nonce96 nettle_chacha_set_counter nettle_chacha_set_counter32 nettle_chacha_set_key nettle_chacha_poly1305 nettle_chacha_poly1305_set_key nettle_chacha_poly1305_set_nonce nettle_chacha_poly1305_update nettle_chacha_poly1305_encrypt nettle_chacha_poly1305_decrypt nettle_chacha_poly1305_digest _nettle_chacha_core nettle_chacha_crypt nettle_chacha_crypt32 nettle_cnd_memcpy nettle_siv_gcm_aes256_encrypt_message nettle_siv_gcm_aes256_decrypt_message nettle_siv_gcm_aes128_encrypt_message nettle_siv_gcm_aes128_decrypt_message nettle_siv_gcm_encrypt_message nettle_siv_gcm_decrypt_message nettle_siv_cmac_aes256_set_key nettle_siv_cmac_aes256_encrypt_message nettle_siv_cmac_aes256_decrypt_message nettle_siv_cmac_aes128_set_key nettle_siv_cmac_aes128_encrypt_message nettle_siv_cmac_aes128_decrypt_message nettle_siv_cmac_set_key nettle_siv_cmac_encrypt_message nettle_siv_cmac_decrypt_message nettle_cfb_encrypt nettle_cfb_decrypt nettle_cfb8_encrypt nettle_cfb8_decrypt nettle_ccm_aes256_set_key nettle_ccm_aes256_set_nonce nettle_ccm_aes256_update nettle_ccm_aes256_encrypt nettle_ccm_aes256_decrypt nettle_ccm_aes256_digest nettle_ccm_aes256_encrypt_message nettle_ccm_aes256_decrypt_message nettle_ccm_aes192_set_key nettle_ccm_aes192_set_nonce nettle_ccm_aes192_update nettle_ccm_aes192_encrypt nettle_ccm_aes192_decrypt nettle_ccm_aes192_digest nettle_ccm_aes192_encrypt_message nettle_ccm_aes192_decrypt_message nettle_ccm_aes128_set_key nettle_ccm_aes128_set_nonce nettle_ccm_aes128_update nettle_ccm_aes128_encrypt nettle_ccm_aes128_decrypt nettle_ccm_aes128_digest nettle_ccm_aes128_encrypt_message nettle_ccm_aes128_decrypt_message nettle_ccm_set_nonce nettle_ccm_update nettle_ccm_encrypt nettle_ccm_decrypt nettle_ccm_digest nettle_ccm_encrypt_message nettle_ccm_decrypt_message _nettle_cbc_aes256_encrypt_c _nettle_cbc_aes192_encrypt_c _nettle_cbc_aes128_encrypt_c nettle_cbc_encrypt nettle_cbc_decrypt nettle_cast128 nettle_cast5_set_key nettle_cast128_set_key nettle_cast128_encrypt nettle_cast128_decrypt nettle_camellia256 nettle_camellia256_set_decrypt_key nettle_camellia256_invert_key nettle_camellia192_set_decrypt_key nettle_camellia256_crypt nettle_camellia256_set_encrypt_key nettle_camellia192_set_encrypt_key nettle_camellia192 nettle_camellia128 nettle_camellia_set_decrypt_key nettle_camellia128_invert_key nettle_camellia128_crypt nettle_camellia128_set_encrypt_key _nettle_camellia_invert_key _nettle_camellia_absorb _nettle_camellia_table _nettle_camellia_crypt nettle_buffer_init nettle_buffer_init_realloc nettle_buffer_init_size nettle_buffer_clear nettle_buffer_reset nettle_buffer_grow nettle_buffer_write nettle_buffer_space nettle_buffer_copy nettle_base64url nettle_base64url_decode_init nettle_base64url_encode_init nettle_base64 nettle_base64_decode_init nettle_base64_decode_single nettle_base64_decode_update nettle_base64_decode_final nettle_base64_encode_init nettle_base64_encode_single nettle_base64_encode_update nettle_base64_encode_final nettle_base64_encode_raw nettle_base64_encode_group nettle_base16 nettle_base16_decode_init nettle_base16_decode_single nettle_base16_decode_update nettle_base16_decode_final nettle_base16_encode_single nettle_base16_encode_update nettle_balloon_sha512 nettle_balloon_sha384 nettle_balloon_sha256 nettle_balloon_sha1 nettle_balloon nettle_balloon_itch nettle_blowfish_bcrypt_hash nettle_blowfish_bcrypt_verify _nettle_blowfish_initial_ctx nettle_blowfish_set_key nettle_blowfish128_set_key nettle_blowfish_encrypt nettle_blowfish_decrypt _nettle_blowfish_encround nettle_arctwo40 nettle_arctwo64 nettle_arctwo128 nettle_arctwo_gutmann128 nettle_arctwo_set_key_ekb nettle_arctwo_set_key nettle_arctwo40_set_key nettle_arctwo64_set_key nettle_arctwo128_set_key nettle_arctwo_set_key_gutmann nettle_arctwo128_set_key_gutmann nettle_arctwo_encrypt nettle_arctwo_decrypt nettle_arcfour_set_key nettle_arcfour128_set_key nettle_arcfour_crypt nettle_nist_keywrap16 nettle_nist_keyunwrap16 nettle_aes128_keywrap nettle_aes192_keywrap nettle_aes256_keywrap nettle_aes128_keyunwrap nettle_aes192_keyunwrap nettle_aes256_keyunwrap nettle_aes256 nettle_aes256_set_decrypt_key nettle_aes256_invert_key nettle_aes256_set_encrypt_key nettle_aes192 nettle_aes192_set_decrypt_key nettle_aes192_invert_key nettle_aes192_set_encrypt_key nettle_aes128 nettle_aes128_set_decrypt_key nettle_aes128_invert_key nettle_aes128_set_encrypt_key nettle_aes_set_decrypt_key nettle_aes_invert_key nettle_aes_set_encrypt_key _nettle_aes_set_key _nettle_aes_invert _nettle_aes256_encrypt_c _nettle_aes192_encrypt_c _nettle_aes128_encrypt_c _nettle_aes_encrypt_table nettle_aes_encrypt _nettle_aes_encrypt _nettle_aes256_decrypt_c _nettle_aes192_decrypt_c _nettle_aes128_decrypt_c _nettle_aes_decrypt_table nettle_aes_decrypt _nettle_aes_decrypt nettle_sha3_256_shake_output nettle_sha3_128_init nettle_sha3_128_update nettle_sha3_128_shake_output ================================================ FILE: ports/nettle/nettle-x86.def ================================================ EXPORTS nettle_xts_aes256_set_encrypt_key nettle_xts_aes256_set_decrypt_key nettle_xts_aes256_encrypt_message nettle_xts_aes256_decrypt_message nettle_xts_aes128_set_encrypt_key nettle_xts_aes128_set_decrypt_key nettle_xts_aes128_encrypt_message nettle_xts_aes128_decrypt_message nettle_xts_encrypt_message nettle_xts_decrypt_message nettle_yarrow_key_event_init nettle_yarrow_key_event_estimate nettle_yarrow256_init nettle_yarrow256_seed nettle_yarrow256_update nettle_yarrow256_random nettle_yarrow256_is_seeded nettle_yarrow256_needed_sources nettle_yarrow256_fast_reseed nettle_yarrow256_slow_reseed _nettle_write_le64 _nettle_write_le32 _nettle_write_be32 nettle_version_major nettle_version_minor nettle_umac128_set_key nettle_umac128_set_nonce nettle_umac128_update nettle_umac128_digest nettle_umac96_set_key nettle_umac96_set_nonce nettle_umac96_update nettle_umac96_digest nettle_umac64_set_key nettle_umac64_set_nonce nettle_umac64_update nettle_umac64_digest nettle_umac32_set_key nettle_umac32_set_nonce nettle_umac32_update nettle_umac32_digest _nettle_umac_set_key _nettle_umac_poly128 _nettle_umac_poly64 _nettle_umac_l3_init _nettle_umac_l3 _nettle_umac_l2_init _nettle_umac_l2 _nettle_umac_l2_final _nettle_umac_nh_n _nettle_umac_nh nettle_sm4 nettle_sm4_set_encrypt_key nettle_sm4_set_decrypt_key nettle_sm4_crypt nettle_twofish128 nettle_twofish192 nettle_twofish256 nettle_twofish_set_key nettle_twofish128_set_key nettle_twofish192_set_key nettle_twofish256_set_key nettle_twofish_encrypt nettle_twofish_decrypt nettle_streebog256 nettle_streebog512 nettle_streebog512_init nettle_streebog512_update nettle_streebog512_digest nettle_streebog256_init nettle_streebog256_digest nettle_serpent128 nettle_serpent192 nettle_serpent256 nettle_serpent_decrypt nettle_serpent_encrypt nettle_serpent_set_key nettle_serpent128_set_key nettle_serpent192_set_key nettle_serpent256_set_key nettle_sm3 nettle_sm3_init nettle_sm3_update nettle_sm3_digest nettle_sha3_256_shake nettle_sha3_512 nettle_sha3_512_init nettle_sha3_512_update nettle_sha3_512_digest nettle_sha3_384 nettle_sha3_384_init nettle_sha3_384_update nettle_sha3_384_digest nettle_sha3_256 nettle_sha3_256_init nettle_sha3_256_update nettle_sha3_256_digest nettle_sha3_224 nettle_sha3_224_init nettle_sha3_224_update nettle_sha3_224_digest nettle_sha3_permute _nettle_sha3_update _nettle_sha3_pad nettle_sha512_256 nettle_sha512_224 nettle_sha512 nettle_sha384 _nettle_sha512_compress nettle_sha512_init nettle_sha512_update nettle_sha512_digest nettle_sha512_compress nettle_sha384_init nettle_sha384_digest nettle_sha512_224_init nettle_sha512_224_digest nettle_sha512_256_init nettle_sha512_256_digest nettle_sha256 nettle_sha224 _nettle_sha256_compress_n nettle_sha256_init nettle_sha256_update nettle_sha256_digest nettle_sha256_compress nettle_sha224_init nettle_sha224_digest nettle_sha1 nettle_sha1_compress nettle_sha1_init nettle_sha1_update nettle_sha1_digest nettle_salsa20_256_set_key nettle_salsa20_128_set_key nettle_salsa20_set_nonce nettle_salsa20_set_key nettle_salsa20r12_crypt nettle_salsa20_crypt _nettle_salsa20_crypt _nettle_salsa20_core nettle_ripemd160 _nettle_ripemd160_compress nettle_ripemd160_init nettle_ripemd160_update nettle_ripemd160_digest nettle_realloc nettle_xrealloc _nettle_poly1305_update _nettle_poly1305_set_key _nettle_poly1305_digest _nettle_poly1305_block nettle_poly1305_aes_set_key nettle_poly1305_aes_set_nonce nettle_poly1305_aes_update nettle_poly1305_aes_digest nettle_pbkdf2_hmac_sha512 nettle_pbkdf2_hmac_sha384 nettle_pbkdf2_hmac_sha256 nettle_pbkdf2_hmac_sha1 nettle_pbkdf2_hmac_gosthash94cp nettle_pbkdf2 nettle_ocb_aes128_set_encrypt_key nettle_ocb_aes128_set_decrypt_key nettle_ocb_aes128_set_nonce nettle_ocb_aes128_update nettle_ocb_aes128_encrypt nettle_ocb_aes128_decrypt nettle_ocb_aes128_digest nettle_ocb_aes128_encrypt_message nettle_ocb_aes128_decrypt_message nettle_ocb_set_key nettle_ocb_set_nonce nettle_ocb_update nettle_ocb_encrypt nettle_ocb_decrypt nettle_ocb_digest nettle_ocb_encrypt_message nettle_ocb_decrypt_message _nettle_macs nettle_get_macs _nettle_hashes nettle_get_hashes _nettle_ciphers nettle_get_ciphers _nettle_armors nettle_get_armors _nettle_aeads nettle_get_aeads nettle_lookup_hash nettle_memxor3 nettle_memxor nettle_memeql_sec nettle_md5 nettle_MD5Init nettle_MD5Update nettle_MD5Final nettle_md5_compress nettle_md5_init nettle_md5_update nettle_md5_digest nettle_md4 nettle_md4_init nettle_md4_update nettle_md4_digest nettle_md2 nettle_md2_init nettle_md2_update nettle_md2_digest nettle_hkdf_extract nettle_hkdf_expand nettle_knuth_lfib_init nettle_knuth_lfib_get nettle_knuth_lfib_get_array nettle_knuth_lfib_random nettle_hmac_sm3 nettle_hmac_streebog256 nettle_hmac_streebog512 nettle_hmac_sha512 nettle_hmac_sha384 nettle_hmac_sha256 nettle_hmac_sha224 nettle_hmac_sha1 nettle_hmac_ripemd160 nettle_hmac_md5 nettle_hmac_sm3_set_key nettle_hmac_sm3_update nettle_hmac_sm3_digest nettle_hmac_streebog512_set_key nettle_hmac_streebog512_update nettle_hmac_streebog512_digest nettle_hmac_streebog256_set_key nettle_hmac_streebog256_digest nettle_hmac_sha512_set_key nettle_hmac_sha512_update nettle_hmac_sha512_digest nettle_hmac_sha384_set_key nettle_hmac_sha384_digest nettle_hmac_sha256_set_key nettle_hmac_sha256_update nettle_hmac_sha256_digest nettle_hmac_sha224_set_key nettle_hmac_sha224_digest nettle_hmac_sha1_set_key nettle_hmac_sha1_update nettle_hmac_sha1_digest nettle_hmac_ripemd160_set_key nettle_hmac_ripemd160_update nettle_hmac_ripemd160_digest nettle_hmac_md5_set_key nettle_hmac_md5_update nettle_hmac_md5_digest nettle_hmac_gosthash94_set_key nettle_hmac_gosthash94_update nettle_hmac_gosthash94_digest nettle_hmac_gosthash94cp_set_key nettle_hmac_gosthash94cp_update nettle_hmac_gosthash94cp_digest nettle_hmac_set_key nettle_hmac_update nettle_hmac_digest nettle_gosthash94 nettle_gosthash94cp nettle_gosthash94_init nettle_gosthash94_update nettle_gosthash94_digest nettle_gosthash94cp_update nettle_gosthash94cp_digest _nettle_gost28147_param_test_3411 _nettle_gost28147_param_CryptoPro_3411 _nettle_gost28147_encrypt_block nettle_cmac_des3 nettle_cmac_aes256 nettle_cmac_aes128 nettle_cmac_des3_set_key nettle_cmac_des3_update nettle_cmac_des3_digest nettle_cmac_aes256_set_key nettle_cmac_aes256_update nettle_cmac_aes256_digest nettle_cmac_aes128_set_key nettle_cmac_aes128_update nettle_cmac_aes128_digest nettle_cmac64_set_key nettle_cmac64_init nettle_cmac64_update nettle_cmac64_digest nettle_cmac128_set_key nettle_cmac128_init nettle_cmac128_update nettle_cmac128_digest nettle_gcm_sm4 nettle_gcm_sm4_set_key nettle_gcm_sm4_set_iv nettle_gcm_sm4_update nettle_gcm_sm4_encrypt nettle_gcm_sm4_decrypt nettle_gcm_sm4_digest nettle_gcm_camellia256 nettle_gcm_camellia256_set_key nettle_gcm_camellia256_set_iv nettle_gcm_camellia256_update nettle_gcm_camellia256_encrypt nettle_gcm_camellia256_decrypt nettle_gcm_camellia256_digest nettle_gcm_camellia128 nettle_gcm_camellia128_set_key nettle_gcm_camellia128_set_iv nettle_gcm_camellia128_update nettle_gcm_camellia128_encrypt nettle_gcm_camellia128_decrypt nettle_gcm_camellia128_digest nettle_gcm_aes256 nettle_gcm_aes256_set_key nettle_gcm_aes256_update nettle_gcm_aes256_set_iv nettle_gcm_aes256_encrypt nettle_gcm_aes256_decrypt nettle_gcm_aes256_digest nettle_gcm_aes192 nettle_gcm_aes192_set_key nettle_gcm_aes192_update nettle_gcm_aes192_set_iv nettle_gcm_aes192_encrypt nettle_gcm_aes192_decrypt nettle_gcm_aes192_digest nettle_gcm_aes128 nettle_gcm_aes128_set_key nettle_gcm_aes128_update nettle_gcm_aes128_set_iv nettle_gcm_aes128_encrypt nettle_gcm_aes128_decrypt nettle_gcm_aes128_digest nettle_gcm_aes_set_key nettle_gcm_aes_set_iv nettle_gcm_aes_update nettle_gcm_aes_encrypt nettle_gcm_aes_decrypt nettle_gcm_aes_digest nettle_gcm_set_key nettle_gcm_set_iv nettle_gcm_update nettle_gcm_encrypt nettle_gcm_decrypt nettle_gcm_digest _nettle_siv_ghash_update _nettle_siv_ghash_set_key _nettle_ghash_update _nettle_ghash_set_key nettle_eax_aes128 nettle_eax_aes128_set_key nettle_eax_aes128_set_nonce nettle_eax_aes128_update nettle_eax_aes128_encrypt nettle_eax_aes128_decrypt nettle_eax_aes128_digest nettle_eax_set_key nettle_eax_set_nonce nettle_eax_update nettle_eax_encrypt nettle_eax_decrypt nettle_eax_digest nettle_des3_set_key nettle_des3_encrypt nettle_des3_decrypt nettle_des_set_key nettle_des_encrypt nettle_des_decrypt nettle_des_check_parity nettle_des_fix_parity _nettle_ctr_crypt16 nettle_ctr_crypt nettle_chacha_set_nonce nettle_chacha_set_nonce96 nettle_chacha_set_counter nettle_chacha_set_counter32 nettle_chacha_set_key nettle_chacha_poly1305 nettle_chacha_poly1305_set_key nettle_chacha_poly1305_set_nonce nettle_chacha_poly1305_update nettle_chacha_poly1305_encrypt nettle_chacha_poly1305_decrypt nettle_chacha_poly1305_digest _nettle_chacha_core nettle_chacha_crypt nettle_chacha_crypt32 nettle_cnd_memcpy nettle_siv_gcm_aes256_encrypt_message nettle_siv_gcm_aes256_decrypt_message nettle_siv_gcm_aes128_encrypt_message nettle_siv_gcm_aes128_decrypt_message nettle_siv_gcm_encrypt_message nettle_siv_gcm_decrypt_message nettle_siv_cmac_aes256_set_key nettle_siv_cmac_aes256_encrypt_message nettle_siv_cmac_aes256_decrypt_message nettle_siv_cmac_aes128_set_key nettle_siv_cmac_aes128_encrypt_message nettle_siv_cmac_aes128_decrypt_message nettle_siv_cmac_set_key nettle_siv_cmac_encrypt_message nettle_siv_cmac_decrypt_message nettle_cfb_encrypt nettle_cfb_decrypt nettle_cfb8_encrypt nettle_cfb8_decrypt nettle_ccm_aes256_set_key nettle_ccm_aes256_set_nonce nettle_ccm_aes256_update nettle_ccm_aes256_encrypt nettle_ccm_aes256_decrypt nettle_ccm_aes256_digest nettle_ccm_aes256_encrypt_message nettle_ccm_aes256_decrypt_message nettle_ccm_aes192_set_key nettle_ccm_aes192_set_nonce nettle_ccm_aes192_update nettle_ccm_aes192_encrypt nettle_ccm_aes192_decrypt nettle_ccm_aes192_digest nettle_ccm_aes192_encrypt_message nettle_ccm_aes192_decrypt_message nettle_ccm_aes128_set_key nettle_ccm_aes128_set_nonce nettle_ccm_aes128_update nettle_ccm_aes128_encrypt nettle_ccm_aes128_decrypt nettle_ccm_aes128_digest nettle_ccm_aes128_encrypt_message nettle_ccm_aes128_decrypt_message nettle_ccm_set_nonce nettle_ccm_update nettle_ccm_encrypt nettle_ccm_decrypt nettle_ccm_digest nettle_ccm_encrypt_message nettle_ccm_decrypt_message nettle_cbc_aes256_encrypt nettle_cbc_aes192_encrypt nettle_cbc_aes128_encrypt nettle_cbc_encrypt nettle_cbc_decrypt nettle_cast128 nettle_cast5_set_key nettle_cast128_set_key nettle_cast128_encrypt nettle_cast128_decrypt nettle_camellia256 nettle_camellia256_set_decrypt_key nettle_camellia256_invert_key nettle_camellia192_set_decrypt_key nettle_camellia256_crypt nettle_camellia256_set_encrypt_key nettle_camellia192_set_encrypt_key nettle_camellia192 nettle_camellia128 nettle_camellia_set_decrypt_key nettle_camellia128_invert_key nettle_camellia128_crypt nettle_camellia128_set_encrypt_key _nettle_camellia_invert_key _nettle_camellia_absorb _nettle_camellia_table _nettle_camellia_crypt nettle_buffer_init nettle_buffer_init_realloc nettle_buffer_init_size nettle_buffer_clear nettle_buffer_reset nettle_buffer_grow nettle_buffer_write nettle_buffer_space nettle_buffer_copy nettle_base64url nettle_base64url_decode_init nettle_base64url_encode_init nettle_base64 nettle_base64_decode_init nettle_base64_decode_single nettle_base64_decode_update nettle_base64_decode_final nettle_base64_encode_init nettle_base64_encode_single nettle_base64_encode_update nettle_base64_encode_final nettle_base64_encode_raw nettle_base64_encode_group nettle_base16 nettle_base16_decode_init nettle_base16_decode_single nettle_base16_decode_update nettle_base16_decode_final nettle_base16_encode_single nettle_base16_encode_update nettle_balloon_sha512 nettle_balloon_sha384 nettle_balloon_sha256 nettle_balloon_sha1 nettle_balloon nettle_balloon_itch nettle_blowfish_bcrypt_hash nettle_blowfish_bcrypt_verify _nettle_blowfish_initial_ctx nettle_blowfish_set_key nettle_blowfish128_set_key nettle_blowfish_encrypt nettle_blowfish_decrypt _nettle_blowfish_encround nettle_arctwo40 nettle_arctwo64 nettle_arctwo128 nettle_arctwo_gutmann128 nettle_arctwo_set_key_ekb nettle_arctwo_set_key nettle_arctwo40_set_key nettle_arctwo64_set_key nettle_arctwo128_set_key nettle_arctwo_set_key_gutmann nettle_arctwo128_set_key_gutmann nettle_arctwo_encrypt nettle_arctwo_decrypt nettle_arcfour_set_key nettle_arcfour128_set_key nettle_arcfour_crypt nettle_nist_keywrap16 nettle_nist_keyunwrap16 nettle_aes128_keywrap nettle_aes192_keywrap nettle_aes256_keywrap nettle_aes128_keyunwrap nettle_aes192_keyunwrap nettle_aes256_keyunwrap nettle_aes256 nettle_aes256_set_decrypt_key nettle_aes256_invert_key nettle_aes256_set_encrypt_key nettle_aes192 nettle_aes192_set_decrypt_key nettle_aes192_invert_key nettle_aes192_set_encrypt_key nettle_aes128 nettle_aes128_set_decrypt_key nettle_aes128_invert_key nettle_aes128_set_encrypt_key nettle_aes_set_decrypt_key nettle_aes_invert_key nettle_aes_set_encrypt_key _nettle_aes_set_key _nettle_aes_invert nettle_aes256_encrypt nettle_aes192_encrypt nettle_aes128_encrypt _nettle_aes_encrypt_table nettle_aes_encrypt _nettle_aes_encrypt nettle_aes256_decrypt nettle_aes192_decrypt nettle_aes128_decrypt _nettle_aes_decrypt_table nettle_aes_decrypt _nettle_aes_decrypt nettle_sha3_256_shake_output nettle_sha3_128_init nettle_sha3_128_update nettle_sha3_128_shake_output ================================================ FILE: ports/nettle/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://git.lysator.liu.se/ OUT_SOURCE_PATH SOURCE_PATH REPO nettle/nettle REF nettle_3.10_release_20240616 SHA512 8767e4f0c34ce76ead5d66f06f97e6b184d439fa94f848ee440196fafde3da2ea7cfc54f9bd8f9ab6a99929b0d14b3d5a28857e05d954551e94b619598c17659 HEAD_REF master PATCHES subdirs.patch fix-libdir.patch compile.patch host-tools.patch ccas.patch msvc-support.patch ) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") # Maintainer switch: Temporarily set this to 1 to re-generate the lists # of exported symbols. This is needed when the version is bumped. set(GENERATE_SYMBOLS 0) if(GENERATE_SYMBOLS) if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) else() set(GENERATE_SYMBOLS 0) endif() endif() vcpkg_list(SET OPTIONS) if("tools" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS --enable-tools) endif() # As in gmp set(disable_assembly OFF) set(ccas "") set(asmflags "") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") vcpkg_list(APPEND OPTIONS ac_cv_func_memset=yes) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(APPEND asmflags " --target=i686-pc-windows-msvc -m32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") string(APPEND asmflags " --target=x86_64-pc-windows-msvc") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") string(APPEND asmflags " --target=arm64-pc-windows-msvc") else() set(disable_assembly ON) endif() if(NOT disable_assembly) vcpkg_find_acquire_program(CLANG) set(ccas "${CLANG}") endif() else() set(ccas "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() if(disable_assembly) vcpkg_list(APPEND OPTIONS "--enable-assembler=no") elseif(ccas) cmake_path(GET ccas PARENT_PATH ccas_dir) vcpkg_add_to_path("${ccas_dir}") cmake_path(GET ccas FILENAME ccas_command) vcpkg_list(APPEND OPTIONS "CCAS=${ccas_command}" "ASM_FLAGS=${asmflags}") endif() if(VCPKG_CROSSCOMPILING) set(ENV{HOST_TOOLS_PREFIX} "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(GLOB def_files "${CMAKE_CURRENT_LIST_DIR}/*.def") file(COPY ${def_files} DESTINATION "${SOURCE_PATH}") vcpkg_list(APPEND OPTIONS "MSVC_TARGET=${VCPKG_TARGET_ARCHITECTURE}") else() vcpkg_list(APPEND OPTIONS "MSVC_TARGET=no") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG OPTIONS ${OPTIONS} --disable-documentation --disable-openssl "gmp_cv_prog_exeext_for_build=${VCPKG_HOST_EXECUTABLE_SUFFIX}" OPTIONS_DEBUG --disable-tools ) vcpkg_install_make() vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) set(tool_names desdata eccdata) # aes gcm sha twofish? list(TRANSFORM tool_names PREPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/") list(TRANSFORM tool_names APPEND "${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(COPY ${tool_names} DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() if("tools" IN_LIST FEATURES) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYINGv3") if(GENERATE_SYMBOLS) include("${CMAKE_CURRENT_LIST_DIR}/lib-to-def.cmake") lib_to_def(BASENAME nettle REGEX "_*nettle_") lib_to_def(BASENAME hogweed REGEX "_*nettle_") endif() ================================================ FILE: ports/nettle/subdirs.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 2bf7f1e8..3e0ba565 100644 --- a/Makefile.in +++ b/Makefile.in @@ -19,7 +19,7 @@ OPT_NETTLE_SOURCES = @OPT_NETTLE_SOURCES@ FAT_TEST_LIST = @FAT_TEST_LIST@ -SUBDIRS = tools testsuite examples +SUBDIRS = @IF_TOOLS@ tools include config.make diff --git a/configure.ac b/configure.ac index 4f27e663..a72b732b 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,14 @@ AC_SUBST([MINOR_VERSION]) AC_CANONICAL_HOST +AC_ARG_ENABLE(tools,[]) +if test "x$enable_tools" = xyes ; then + IF_TOOLS='' +else + IF_TOOLS='#' +fi +AC_SUBST([IF_TOOLS]) + # Command line options AC_ARG_WITH(include-path, AS_HELP_STRING([--with-include-path], [A colon-separated list of directories to search for include files]),, ================================================ FILE: ports/nettle/vcpkg.json ================================================ { "name": "nettle", "version": "3.10", "port-version": 1, "description": "Nettle is a low-level cryptographic library that is designed to fit easily in more or less any context: In crypto toolkits for object-oriented languages (C++, Python, Pike, ...), in applications like LSH or GNUPG, or even in kernel space.", "homepage": "https://git.lysator.liu.se/nettle/nettle", "license": null, "dependencies": [ "gmp", { "name": "nettle", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/nettle/yasm.patch ================================================ diff --git a/configure.ac b/configure.ac index e95f1c825..1d7ef36bb 100644 --- a/configure.ac +++ b/configure.ac @@ -302,7 +302,7 @@ ABI=standard case "$host_cpu" in [x86_64 | amd64]) AC_TRY_COMPILE([ -#if defined(__x86_64__) || defined(__arch64__) +#if defined(__x86_64__) || defined(__arch64__) || defined(_M_AMD64) #error 64-bit x86 #endif ], [], [ diff --git a/x86_64/aes.m4 b/x86_64/aes.m4 index 3bec9eae2..85cafc046 100644 --- a/x86_64/aes.m4 +++ b/x86_64/aes.m4 @@ -77,9 +77,9 @@ define(`AES_STORE', ` dnl AES_ROUND(table,a,b,c,d,out,ptr) dnl Computes one word of the AES round. Leaves result in $6. define(`AES_ROUND', ` - movzb LREG($2), $7 + movzbq LREG($2), $7 movl AES_TABLE0 ($1, $7, 4),$6 - movzb HREG($3), XREG($7) + movzbq HREG($3), XREG($7) xorl AES_TABLE1 ($1, $7, 4),$6 movl $4,XREG($7) shr `$'16,$7 @@ -94,7 +94,7 @@ dnl Computes one word of the final round. Leaves result in $6. Also dnl performs the first substitution step, on the least significant dnl byte, and rotates 8 bits. define(`AES_FINAL_ROUND', ` - movzb LREG($1),$7 + movzbq LREG($1),$7 movzbl ($5, $7), $6 movl $2,XREG($7) andl `$'0x0000ff00,XREG($7) @@ -113,18 +113,18 @@ dnl each of eax, ebx, ecx and edx, and also rotates dnl the words one byte to the left. dnl Uses that AES_SBOX == 0 define(`AES_SUBST_BYTE', ` - movzb LREG($1),$6 + movzbq LREG($1),$6 movb ($5, $6),LREG($1) roll `$'8,$1 - movzb LREG($2),$6 + movzbq LREG($2),$6 movb ($5, $6),LREG($2) roll `$'8,$2 - movzb LREG($3),$6 + movzbq LREG($3),$6 movb ($5, $6),LREG($3) roll `$'8,$3 - movzb LREG($4),$6 + movzbq LREG($4),$6 movb ($5, $6),LREG($4) roll `$'8,$4')dnl ================================================ FILE: ports/networkdirect-sdk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/NetworkDirect/2.0.1" FILENAME "networkDirect-2.0.1.zip" SHA512 97e48ab293c164a80a3ed9e51f1f9f5ae85c07ee91c49950a76b486567d2e50346a2379b8284ffcb9d7d2fe70f76eff9455dce740cf9d3e0c1b83100e25168a8 ) vcpkg_download_distfile(LICENSE URLS "https://raw.githubusercontent.com/microsoft/NetworkDirect/master/LICENSE.txt" FILENAME "networkingDirect_license.txt" SHA512 7d79aae4c9beb85811a3e122a2b12aad231f519dd12a461ac49d52864a735a6b05a263d433c11ede1406d2e49b6dc62dd38487eb7bd8c079d7198a20cf85fc4d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) file(COPY ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/ ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") file(COPY ${SOURCE_PATH}/lib/x64/ndutil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) file(COPY ${SOURCE_PATH}/lib/x64/ndutil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") file(COPY ${SOURCE_PATH}/lib/Win32/ndutil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/) file(COPY ${SOURCE_PATH}/lib/Win32/ndutil.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/) endif() file(INSTALL ${LICENSE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/networkdirect-sdk/vcpkg.json ================================================ { "name": "networkdirect-sdk", "version": "2.0.1", "port-version": 4, "description": "The Network Direct architecture allows hardware vendors to expose the advanced capabilities of their networking devices.", "homepage": "https://www.nuget.org/packages/NetworkDirect", "supports": "windows & (x64 | x86) & !uwp" } ================================================ FILE: ports/ng-log/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ng-log/ng-log REF "v${VERSION}" SHA512 0685e92f5d147d162be71e666cfaae52aaf23b7f3e3d5bc1384345ac05dfd16e7163ff7c1c7d83a70fb00fb56a5c9be6a246c0690d9fb01ba2b5c1576ee8787b HEAD_REF master ) set(CROSSCOMP_OPTIONS "") if(VCPKG_CROSSCOMPILING) set(CROSSCOMP_OPTIONS -DHAVE_SYMBOLIZE_EXITCODE=0) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_COMPAT=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DPRINT_UNSYMBOLIZED_STACK_TRACES=OFF -DWITH_GFLAGS=ON -DWITH_GTEST=OFF -DWITH_PKGCONFIG=ON -DWITH_SYMBOLIZE=ON -DWITH_TLS=ON ${CROSSCOMP_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/ng-log/vcpkg.json ================================================ { "name": "ng-log", "version": "0.8.2", "description": "C++ library for application-level logging", "homepage": "https://ng-log.github.io/ng-log/", "license": "BSD-3-Clause", "dependencies": [ "gflags", { "name": "libunwind", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nghttp2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nghttp2/nghttp2 REF "v${VERSION}" SHA512 4cd3af02fca86d53c35227e39817b37af4361d0d5c1aa5f3191f1821ff21535c64a1dcf62061a95e21f3cf2ad6192278fdb94190a43ceb8b4814a19a344f5b10 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" ENABLE_STATIC_CRT) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_LIB_ONLY=ON -DENABLE_DOC=OFF -DBUILD_TESTING=OFF "-DENABLE_STATIC_CRT=${ENABLE_STATIC_CRT}" "-DBUILD_STATIC_LIBS=${ENABLE_STATIC_LIB}" -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libngtcp2=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libngtcp2_crypto_quictls=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libnghttp3=ON -DCMAKE_DISABLE_FIND_PACKAGE_Systemd=ON -DCMAKE_DISABLE_FIND_PACKAGE_Jansson=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libevent=ON -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=ON -DCMAKE_DISABLE_FIND_PACKAGE_Jemalloc=ON MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_Libngtcp2_crypto_quictls ENABLE_STATIC_CRT ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake" "${CURRENT_PACKAGES_DIR}/lib/cmake" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(APPEND "${CURRENT_PACKAGES_DIR}/include/nghttp2/nghttp2ver.h" [[ #ifndef NGHTTP2_STATICLIB # define NGHTTP2_STATICLIB #endif ]]) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/nghttp2/vcpkg.json ================================================ { "name": "nghttp2", "version": "1.68.1", "description": "Implementation of the Hypertext Transfer Protocol version 2 in C", "homepage": "https://github.com/nghttp2/nghttp2", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/nghttp3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ngtcp2/nghttp3 REF v${VERSION} SHA512 278182f31f9bbfc9e00ae01c730394859855da37a17f78917c43352bf793cb31d685833c5e38ef908559e0f8ae032d420cc5af8b0b87bbf19b2ca51e0c90e60f HEAD_REF main PATCHES ) vcpkg_from_github( OUT_SOURCE_PATH SFPARSE_SOURCE_PATH REPO ngtcp2/sfparse REF ff7f230e7df2844afef7dc49631cda03a30455f3 SHA512 da9bbfd800636373e8ab8a6f073ca045abbd8baeeb6e2b6d469ddb3bc7a78958fc0b2c8fbcd50a757292862ef832d257863ab17b74d27c51c1b7fdbf004e833c HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/lib/sfparse") file(MAKE_DIRECTORY "${SOURCE_PATH}/lib") file(RENAME "${SFPARSE_SOURCE_PATH}" "${SOURCE_PATH}/lib/sfparse") string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" ENABLE_STATIC_CRT) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_LIB_ONLY=ON -DBUILD_TESTING=OFF "-DENABLE_STATIC_CRT=${ENABLE_STATIC_CRT}" "-DENABLE_STATIC_LIB=${ENABLE_STATIC_LIB}" "-DENABLE_SHARED_LIB=${ENABLE_SHARED_LIB}" MAYBE_UNUSED_VARIABLES BUILD_TESTING ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/nghttp3") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" "${CURRENT_PACKAGES_DIR}/share/doc" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) file(APPEND "${CURRENT_PACKAGES_DIR}/include/nghttp3/version.h" [[ ]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/nghttp3/nghttp3.h" "#ifdef NGHTTP3_STATICLIB" "#if 1" ) endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nghttp3/usage ================================================ nghttp3 provides CMake targets: find_package(nghttp3 CONFIG REQUIRED) target_link_libraries(main PRIVATE $,nghttp3::nghttp3,nghttp3::nghttp3_static>) ================================================ FILE: ports/nghttp3/vcpkg.json ================================================ { "name": "nghttp3", "version": "1.15.0", "description": "Implementation of RFC 9114 HTTP/3 mapping over QUIC and RFC 9204 QPACK in C", "homepage": "https://github.com/ngtcp2/nghttp3", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ngspice/Fix-C2065.patch ================================================ diff --git a/visualc/sharedspice.vcxproj b/visualc/sharedspice.vcxproj index ba979bd..ce9d4df 100644 --- a/visualc/sharedspice.vcxproj +++ b/visualc/sharedspice.vcxproj @@ -113,7 +113,7 @@ Disabled ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) false false false @@ -157,7 +157,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) false MultiThreaded @@ -199,7 +199,7 @@ Disabled ..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) false false false @@ -249,7 +249,7 @@ Speed true ..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) false @@ -294,7 +294,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;SHARED_MODULE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) false MultiThreaded @@ -339,7 +339,7 @@ Speed true ..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;..\src\spicelib\parser;src\include;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;SHARED_MODULE;CONFIG64;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) false diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj index 0df1dd5..67d2029 100644 --- a/visualc/vngspice.vcxproj +++ b/visualc/vngspice.vcxproj @@ -212,7 +212,7 @@ Disabled ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;%(PreprocessorDefinitions) false @@ -259,7 +259,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);%(PreprocessorDefinitions) false @@ -310,7 +310,7 @@ Disabled ..\src\maths\poly;..\src\osdi;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONFIG64;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONFIG64;%(PreprocessorDefinitions) false @@ -362,7 +362,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONFIG64;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONFIG64;%(PreprocessorDefinitions) false @@ -413,7 +413,7 @@ Disabled ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;%(PreprocessorDefinitions) false @@ -460,7 +460,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;%(PreprocessorDefinitions) false @@ -510,7 +510,7 @@ Disabled ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;CONFIG64;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);NGDEBUG;CONSOLE;CONFIG64;%(PreprocessorDefinitions) false @@ -562,7 +562,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;%(PreprocessorDefinitions) false @@ -614,7 +614,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;%(PreprocessorDefinitions) false @@ -668,7 +668,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;CONFIG64;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);USE_OMP;CONFIG64;%(PreprocessorDefinitions) false @@ -724,7 +724,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;USE_OMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;USE_OMP;%(PreprocessorDefinitions) false @@ -778,7 +778,7 @@ Speed true ..\src\maths\poly;..\src\frontend;..\src\spicelib\devices;tmp-bison;src\include;..\src\spicelib\parser;..\src\include;..\src\include\cppduals;.;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_DEPRECATE;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;USE_OMP;%(PreprocessorDefinitions) + _CRT_SECURE_NO_DEPRECATE;__STDC_LIMIT_MACROS;SIMULATOR;XSPICE;_MSC_PLATFORM_TOOLSET=$(PlatformToolsetVersion);CONSOLE;CONFIG64;USE_OMP;%(PreprocessorDefinitions) false ================================================ FILE: ports/ngspice/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # ngspice produces self-contained DLLs set(VCPKG_CRT_LINKAGE static) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO ngspice/ng-spice-rework REF ${VERSION} FILENAME "ngspice-${VERSION}.tar.gz" SHA512 fb0960cc9fcde1871fad82571cacebb1f5cce09ee3297cc938a24b88173ed102a2cb3f246599cdfbde7275e45e3d551edd0368e3ba6e79c592937c4cc466325e PATCHES use-winbison-sharedspice.patch use-winbison-vngspice.patch remove-post-build.patch remove-64-in-codemodel-name.patch Fix-C2065.patch ) vcpkg_find_acquire_program(BISON) get_filename_component(BISON_DIR "${BISON}" DIRECTORY) vcpkg_add_to_path(PREPEND "${BISON_DIR}") # Sadly, vcpkg globs .libs inside install_msbuild and whines that the 47 year old SPICE format isn't a MSVC lib ;) # We need to kill them off first before the source tree is copied to a tmp location by install_msbuild file(REMOVE_RECURSE "${SOURCE_PATH}/contrib") file(REMOVE_RECURSE "${SOURCE_PATH}/examples") file(REMOVE_RECURSE "${SOURCE_PATH}/man") file(REMOVE_RECURSE "${SOURCE_PATH}/tests") # this builds the main dll vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" # install_msbuild swaps x86 for win32(bad) if we dont force our own setting PLATFORM ${TRIPLET_SYSTEM_ARCH} PROJECT_SUBPATH visualc/sharedspice.sln TARGET Build ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(COPY "${SOURCE_PATH}/src/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if("codemodels" IN_LIST FEATURES) # vngspice generates "codemodels" to enhance simulation capabilities # we cannot use install_msbuild as they output with ".cm" extensions on purpose vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH visualc/vngspice.sln # build_msbuild swaps x86 for win32(bad) if we dont force our own setting PLATFORM ${TRIPLET_SYSTEM_ARCH} TARGET Build ) # ngspice oddly has solution configs of x64 and x86 but # output folders of x64 and win32 if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(OUT_ARCH x64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(OUT_ARCH Win32) else() message(FATAL_ERROR "Unsupported target architecture") endif() #put the code models in the intended location if(NOT VCPKG_BUILD_TYPE) file(GLOB NGSPICE_CODEMODELS_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/visualc/codemodels/${OUT_ARCH}/Debug/*.cm" ) file(COPY ${NGSPICE_CODEMODELS_DEBUG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/ngspice") endif() file(GLOB NGSPICE_CODEMODELS_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/visualc/codemodels/${OUT_ARCH}/Release/*.cm" ) file(COPY ${NGSPICE_CODEMODELS_RELEASE} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/ngspice") # copy over spinit (spice init) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/visualc/spinit_all" DESTINATION "${CURRENT_PACKAGES_DIR}/share/ngspice") file(RENAME "${CURRENT_PACKAGES_DIR}/share/ngspice/spinit_all" "${CURRENT_PACKAGES_DIR}/share/ngspice/spinit") endif() # Unforunately install_msbuild isn't able to dual include directories that effectively layer file(GLOB NGSPICE_INCLUDES "${SOURCE_PATH}/visualc/src/include/ngspice/*") file(COPY ${NGSPICE_INCLUDES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/ngspice") # This gets copied by install_msbuild but should not be shared file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/cppduals") ================================================ FILE: ports/ngspice/remove-64-in-codemodel-name.patch ================================================ From dc6b6c0aa4205047e9fd052c401f3f357d83ef57 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Thu, 12 Aug 2021 22:26:43 -0400 Subject: [PATCH] Remove 64 in filename output of codemodels --- visualc/xspice/analog.vcxproj | 4 ++-- visualc/xspice/digital.vcxproj | 4 ++-- visualc/xspice/spice2poly.vcxproj | 4 ++-- visualc/xspice/table.vcxproj | 4 ++-- visualc/xspice/xtradev.vcxproj | 4 ++-- visualc/xspice/xtraevt.vcxproj | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/visualc/xspice/analog.vcxproj b/visualc/xspice/analog.vcxproj index cf65a37..8b320ce 100644 --- a/visualc/xspice/analog.vcxproj +++ b/visualc/xspice/analog.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false diff --git a/visualc/xspice/digital.vcxproj b/visualc/xspice/digital.vcxproj index 87f4802..7722ce6 100644 --- a/visualc/xspice/digital.vcxproj +++ b/visualc/xspice/digital.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false diff --git a/visualc/xspice/spice2poly.vcxproj b/visualc/xspice/spice2poly.vcxproj index c92471b..786ff7e 100644 --- a/visualc/xspice/spice2poly.vcxproj +++ b/visualc/xspice/spice2poly.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false diff --git a/visualc/xspice/table.vcxproj b/visualc/xspice/table.vcxproj index fb4791c..ad3ee03 100644 --- a/visualc/xspice/table.vcxproj +++ b/visualc/xspice/table.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false diff --git a/visualc/xspice/xtradev.vcxproj b/visualc/xspice/xtradev.vcxproj index 6f0197f..53975b0 100644 --- a/visualc/xspice/xtradev.vcxproj +++ b/visualc/xspice/xtradev.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false diff --git a/visualc/xspice/xtraevt.vcxproj b/visualc/xspice/xtraevt.vcxproj index d5741e7..3177a91 100644 --- a/visualc/xspice/xtraevt.vcxproj +++ b/visualc/xspice/xtraevt.vcxproj @@ -77,12 +77,12 @@ false - $(ProjectName)64 + $(ProjectName) true false - $(ProjectName)64 + $(ProjectName) false -- 2.32.0.windows.2 ================================================ FILE: ports/ngspice/remove-post-build.patch ================================================ From 363737b9e0e5c2f9de85a0caf641204e638115e3 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Thu, 12 Aug 2021 22:09:34 -0400 Subject: [PATCH] Remove post build events that copy files out of the tree --- visualc/vngspice-fftw.vcxproj | 24 ------------------------ visualc/vngspice.vcxproj | 17 +++++------------ 2 files changed, 5 insertions(+), 36 deletions(-) diff --git a/visualc/vngspice-fftw.vcxproj b/visualc/vngspice-fftw.vcxproj index 14773c8..178aa73 100644 --- a/visualc/vngspice-fftw.vcxproj +++ b/visualc/vngspice-fftw.vcxproj @@ -238,8 +238,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspiced.bat $(OutDir) fftw @@ -289,8 +287,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw @@ -337,8 +333,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspiced.bat $(OutDir) fftw 64 @@ -393,8 +387,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw 64 @@ -438,8 +430,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspiced.bat $(OutDir) fftw @@ -489,8 +479,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw @@ -537,8 +525,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspiced.bat $(OutDir) fftw 64 @@ -591,8 +577,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw 64 @@ -643,8 +627,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw @@ -700,8 +682,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw 64
@@ -752,8 +732,6 @@ lib /machine:x86 /def:..\..\fftw-3.3-dll32\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll32\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw
@@ -807,8 +785,6 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3 - copy /y "..\..\fftw-3.3-dll64\libfftw3-3.dll" "$(OutDir)" - make-install-vngspice.bat $(OutDir) fftw 64
diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj index 7b6ac0b..7190c1e 100644 --- a/visualc/vngspice.vcxproj +++ b/visualc/vngspice.vcxproj @@ -242,7 +242,7 @@ true - make-install-vngspiced.bat $(OutDir) + $(ProjectDir)ngspice-x86.exe.manifest @@ -293,7 +293,6 @@ - make-install-vngspice.bat $(OutDir) @@ -342,7 +341,6 @@ - make-install-vngspiced.bat $(OutDir) 64 @@ -399,7 +397,6 @@ - make-install-vngspice.bat $(OutDir) 64 @@ -444,7 +441,7 @@ true - make-install-vngspiced.bat $(OutDir) + $(ProjectDir)ngspice-x86.exe.manifest @@ -494,7 +491,7 @@ true - make-install-vngspice.bat $(OutDir) + $(ProjectDir)ngspice-x86.exe.manifest @@ -542,7 +539,6 @@ - make-install-vngspiced.bat $(OutDir) 64 @@ -597,7 +593,6 @@ - make-install-vngspice.bat $(OutDir) 64 @@ -649,7 +644,7 @@ true - make-install-vngspice.bat $(OutDir) + $(ProjectDir)ngspice-x86.exe.manifest @@ -706,7 +701,6 @@ - make-install-vngspice.bat $(OutDir) 64 @@ -758,7 +752,7 @@ true - make-install-vngspice.bat $(OutDir) + $(ProjectDir)ngspice-x86.exe.manifest @@ -813,7 +807,6 @@ - make-install-vngspice.bat $(OutDir) 64 -- 2.32.0.windows.2 ================================================ FILE: ports/ngspice/use-winbison-sharedspice.patch ================================================ diff --git a/visualc/sharedspice.vcxproj b/visualc/sharedspice.vcxproj index 4ff0dfc..57b0c35 100644 --- a/visualc/sharedspice.vcxproj +++ b/visualc/sharedspice.vcxproj @@ -2223,12 +2223,12 @@ invoke win_bison.exe for %(Identity) - ..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h invoke win_bison.exe for %(Identity) - ..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h ================================================ FILE: ports/ngspice/use-winbison-vngspice.patch ================================================ diff --git a/visualc/vngspice.vcxproj b/visualc/vngspice.vcxproj index 2d1aa81..cf0f0c7 100644 --- a/visualc/vngspice.vcxproj +++ b/visualc/vngspice.vcxproj @@ -2681,12 +2681,12 @@ invoke win_bison.exe for %(Identity) - ..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h invoke win_bison.exe for %(Identity) - ..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h diff --git a/visualc/xspice/cmpp/cmpp.vcxproj b/visualc/xspice/cmpp/cmpp.vcxproj index 78607a3..7bcc1a4 100644 --- a/visualc/xspice/cmpp/cmpp.vcxproj +++ b/visualc/xspice/cmpp/cmpp.vcxproj @@ -157,22 +157,22 @@ invoke win_flex.exe for %(Identity) - ..\..\..\..\flex-bison\win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h invoke win_bison.exe for %(Identity) - ..\..\..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h invoke win_flex.exe for %(Identity) - ..\..\..\..\flex-bison\win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_flex.exe --outfile=.\tmp-bison\%(Filename).c --header-file=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h invoke win_bison.exe for %(Identity) - ..\..\..\..\flex-bison\win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 + win_bison.exe --output=.\tmp-bison\%(Filename).c --defines=.\tmp-bison\%(Filename).h %(Identity) || exit 1 .\tmp-bison\%(Filename).c;.\tmp-bison\%(Filename).h ================================================ FILE: ports/ngspice/vcpkg.json ================================================ { "name": "ngspice", "version": "41", "description": "Ngspice is a mixed-level/mixed-signal electronic circuit simulator. It is a successor of the latest stable release of Berkeley SPICE", "homepage": "http://ngspice.sourceforge.net/", "license": "CC-BY-SA-4.0", "supports": "!(linux | osx | arm | uwp)", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ], "default-features": [ "codemodels" ], "features": { "codemodels": { "description": "Adds optional code models for XSPICE, ADMS (verilog integration) and B-/E-/G- sources." } } } ================================================ FILE: ports/ngtcp2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ngtcp2/ngtcp2 REF "v${VERSION}" SHA512 3115773b80fda6b6c3d4ad6a5132015dfdfa863da8826db835a8cc478270886f89345d4bdb951abc373acc79b984592880ed174e5799fd77706f70298d07ce0e HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED_LIB) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES wolfssl ENABLE_WOLFSSL gnutls ENABLE_GNUTLS openssl ENABLE_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DENABLE_STATIC_LIB=${ENABLE_STATIC_LIB}" "-DENABLE_SHARED_LIB=${ENABLE_SHARED_LIB}" -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Libev=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libnghttp3=ON -DCMAKE_INSTALL_DOCDIR=share/ngtcp2 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ngtcp2") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ngtcp2/ngtcp2.h" "#ifdef NGTCP2_STATICLIB" "#if 1" ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/ngtcp2/vcpkg.json ================================================ { "name": "ngtcp2", "version": "1.21.0", "description": "ngtcp2 project is an effort to implement RFC9000 QUIC protocol.", "homepage": "https://github.com/ngtcp2/ngtcp2", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gnutls": { "description": "Compile with gnutls", "dependencies": [ { "name": "libgnutls", "platform": "!windows | mingw" }, { "name": "shiftmedia-libgnutls", "platform": "windows & !mingw" } ] }, "openssl": { "description": "Compile with openssl", "dependencies": [ "openssl" ] }, "wolfssl": { "description": "Compile with wolfssl", "dependencies": [ { "name": "wolfssl", "features": [ "quic" ] } ] } } } ================================================ FILE: ports/nifly/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile( MISSING_STDINT_H URLS https://github.com/ousnius/nifly/commit/a16057e349b9cbee53d9618b22d3e235505f0df0.patch?full_index=1 SHA512 45147c85384deba257e52eda5c2ff0c8dee559edc10b00d6e9964d5cc675669587ef941cea0228816c39846de58e33197e953506b9b73267397c4b36cd1f1374 FILENAME a16057e349b9cbee53d9618b22d3e235505f0df0.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ousnius/nifly REF 680a3c0435ff78f8189c46de410d0c8aa9c18a06 SHA512 b1bb4a194f95e7bcd66280e1b796d0813cd0b4dc292dae5b168092c2d529f89c966a0f11b364787dfa906556181326b30517b7f734fe85246cde4016e3a1d55b HEAD_REF main PATCHES "${MISSING_STDINT_H}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "cmake/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nifly/vcpkg.json ================================================ { "name": "nifly", "version": "1.0.0", "port-version": 1, "description": "A C++ library for working with the NIF file format", "homepage": "https://github.com/ousnius/nifly", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nifticlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NIFTI-Imaging/nifti_clib REF 5a8016be2161058f116b39ca476734bd81bb83c5 SHA512 782cb4e494d73b054f8e3ab5f059b952fa461ceb3a0e12989ef1485675d1009d107c496abe6a495fbc30214d92859faad2c58a3edb10899114b440476b613315 HEAD_REF master PATCHES zlib_include.patch ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "cifti" USE_CIFTI_CODE "fsl" USE_FSL_CODE "nifti2" USE_NIFTI2_CODE "nifticdf" USE_NIFTICDF_CODE "tools" NIFTI_BUILD_APPLICATIONS "tests" BUILD_TESTING ) set(TOOL_NAMES) if("tools" IN_LIST FEATURES) list(APPEND TOOL_NAMES nifti1_tool) if("nifti2" IN_LIST FEATURES) list(APPEND TOOL_NAMES nifti_tool) endif() if("nifticdf" IN_LIST FEATURES) list(APPEND TOOL_NAMES nifti_stats) endif() if("cifti" IN_LIST FEATURES AND "nifti2" IN_LIST FEATURES) list(APPEND TOOL_NAMES cifti_tool afni_xml_tool) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/NIFTI PACKAGE_NAME nifti) if(TOOL_NAMES) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nifticlib/vcpkg.json ================================================ { "name": "nifticlib", "version-date": "2022-07-04", "description": "Nifticlib is a C I/O library for reading and writing files in the nifti-1 data format.", "homepage": "https://github.com/NIFTI-Imaging/nifti_clib", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "nifti2", "nifticdf" ], "features": { "cifti": { "description": "Build cifti libraries" }, "fsl": { "description": "Build fsl libraries" }, "nifti2": { "description": "Build nifti2 libraries" }, "nifticdf": { "description": "Build nifticdf libraries" }, "tools": { "description": "Builds the core tool and the tools for 'nifti2' and 'nifticdf' if selected" } } } ================================================ FILE: ports/nifticlib/zlib_include.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 54150d739..c3ca8fe50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,7 @@ set_if_not_defined(ZNZ_COMPILE_DEF "") if(NOT NIFTI_ZLIB_LIBRARIES) # If using a custom zlib library, skip the find package ### USE AS STAND ALONE PACKAGE find_package(ZLIB REQUIRED) + include_directories(${ZLIB_INCLUDE_DIRS}) set(NIFTI_ZLIB_LIBRARIES ${ZLIB_LIBRARIES}) endif() #message(STATUS "---------------------ZLIB -${NIFTI_ZLIB_LIBRARIES}--") ================================================ FILE: ports/nlohmann-fifo-map/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.1) project(nlohmann-fifo-map LANGUAGES CXX) include(GNUInstallDirs) set(NLOHMANN_FIFO_MAP_TARGET_NAME ${PROJECT_NAME}) set(NLOHMANN_FIFO_MAP_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/nlohmann") set(NLOHMANN_FIFO_MAP_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/nlohmann-fifo-map") set(NLOHMANN_FIFO_MAP_CONFIG_EXPORT_NAME "${PROJECT_NAME}-config") set(NLOHMANN_FIFO_MAP_INCLUDE_BUILD_DIR "${CMAKE_SOURCE_DIR}/src/") add_library(${NLOHMANN_FIFO_MAP_TARGET_NAME} INTERFACE) add_library(${PROJECT_NAME}::${NLOHMANN_FIFO_MAP_TARGET_NAME} ALIAS ${NLOHMANN_FIFO_MAP_TARGET_NAME}) install( DIRECTORY ${NLOHMANN_FIFO_MAP_INCLUDE_BUILD_DIR} DESTINATION ${NLOHMANN_FIFO_MAP_INCLUDE_INSTALL_DIR} ) install( TARGETS ${NLOHMANN_FIFO_MAP_TARGET_NAME} EXPORT ${NLOHMANN_FIFO_MAP_CONFIG_EXPORT_NAME} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install( EXPORT ${NLOHMANN_FIFO_MAP_CONFIG_EXPORT_NAME} DESTINATION ${NLOHMANN_FIFO_MAP_CONFIG_INSTALL_DIR} NAMESPACE ${PROJECT_NAME}:: ) ================================================ FILE: ports/nlohmann-fifo-map/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nlohmann/fifo_map REF v${VERSION} SHA512 4f99e6dac74b3c390e9a03b9fea8521d4facd244f85f37206ebd8aa244295c21c9c145e22f80ad45d88325fd1b440d44bd654c829074e0c20b5ed8a62b88c9a7 HEAD_REF master ) #make sure we don't use any integrated pre-built library nor any unnecessary CMake module file(REMOVE_RECURSE "${SOURCE_PATH}/test") file(REMOVE "${SOURCE_PATH}/CMakeLists.txt") file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nlohmann-fifo-map/vcpkg.json ================================================ { "name": "nlohmann-fifo-map", "version": "1.0.0", "description": "a FIFO-ordered associative container for C++", "homepage": "https://github.com/nlohmann/fifo_map", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nlohmann-json/fix-4736_char8_t.patch ================================================ diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp index d647d74239..e161a4282f 100644 --- a/include/nlohmann/detail/conversions/from_json.hpp +++ b/include/nlohmann/detail/conversions/from_json.hpp @@ -540,7 +540,10 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p) JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j)); } const auto& s = *j.template get_ptr(); -#ifdef JSON_HAS_CPP_20 + // Checking for C++20 standard or later can be insufficient in case the + // library support for char8_t is either incomplete or was disabled + // altogether. Use the __cpp_lib_char8_t feature test instead. +#if defined(__cpp_lib_char8_t) && (__cpp_lib_char8_t >= 201907L) p = std_fs::path(std::u8string_view(reinterpret_cast(s.data()), s.size())); #else p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20 diff --git a/include/nlohmann/detail/conversions/to_json.hpp b/include/nlohmann/detail/conversions/to_json.hpp index ead45665f1..b17e8af437 100644 --- a/include/nlohmann/detail/conversions/to_json.hpp +++ b/include/nlohmann/detail/conversions/to_json.hpp @@ -15,7 +15,8 @@ #include // copy #include // begin, end -#include // string +#include // allocator_traits +#include // basic_string, char_traits #include // tuple, get #include // is_same, is_constructible, is_floating_point, is_enum, underlying_type #include // move, forward, declval, pair @@ -440,15 +441,21 @@ inline void to_json(BasicJsonType& j, const T& t) } #if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM +#if defined(__cpp_lib_char8_t) +template +inline void to_json(BasicJsonType& j, const std::basic_string& s) +{ + using OtherAllocator = typename std::allocator_traits::template rebind_alloc; + j = std::basic_string, OtherAllocator>(s.begin(), s.end(), s.get_allocator()); +} +#endif + template inline void to_json(BasicJsonType& j, const std_fs::path& p) { -#ifdef JSON_HAS_CPP_20 - const std::u8string s = p.u8string(); - j = std::string(s.begin(), s.end()); -#else - j = p.u8string(); // returns std::string in C++17 -#endif + // Returns either a std::string or a std::u8string depending whether library + // support for char8_t is enabled. + j = p.u8string(); } #endif diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 82d69f7c5d..be3493efa8 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -5325,7 +5325,10 @@ inline void from_json(const BasicJsonType& j, std_fs::path& p) JSON_THROW(type_error::create(302, concat("type must be string, but is ", j.type_name()), &j)); } const auto& s = *j.template get_ptr(); -#ifdef JSON_HAS_CPP_20 + // Checking for C++20 standard or later can be insufficient in case the + // library support for char8_t is either incomplete or was disabled + // altogether. Use the __cpp_lib_char8_t feature test instead. +#if defined(__cpp_lib_char8_t) && (__cpp_lib_char8_t >= 201907L) p = std_fs::path(std::u8string_view(reinterpret_cast(s.data()), s.size())); #else p = std_fs::u8path(s); // accepts UTF-8 encoded std::string in C++17, deprecated in C++20 @@ -5380,7 +5383,8 @@ NLOHMANN_JSON_NAMESPACE_END #include // copy #include // begin, end -#include // string +#include // allocator_traits +#include // basic_string, char_traits #include // tuple, get #include // is_same, is_constructible, is_floating_point, is_enum, underlying_type #include // move, forward, declval, pair @@ -6087,15 +6091,21 @@ inline void to_json(BasicJsonType& j, const T& t) } #if JSON_HAS_FILESYSTEM || JSON_HAS_EXPERIMENTAL_FILESYSTEM +#if defined(__cpp_lib_char8_t) +template +inline void to_json(BasicJsonType& j, const std::basic_string& s) +{ + using OtherAllocator = typename std::allocator_traits::template rebind_alloc; + j = std::basic_string, OtherAllocator>(s.begin(), s.end(), s.get_allocator()); +} +#endif + template inline void to_json(BasicJsonType& j, const std_fs::path& p) { -#ifdef JSON_HAS_CPP_20 - const std::u8string s = p.u8string(); - j = std::string(s.begin(), s.end()); -#else - j = p.u8string(); // returns std::string in C++17 -#endif + // Returns either a std::string or a std::u8string depending whether library + // support for char8_t is enabled. + j = p.u8string(); } #endif diff --git a/tests/src/unit-deserialization.cpp b/tests/src/unit-deserialization.cpp index 84a970a183..5c450c23d3 100644 --- a/tests/src/unit-deserialization.cpp +++ b/tests/src/unit-deserialization.cpp @@ -1134,9 +1134,10 @@ TEST_CASE("deserialization") } } -// select the types to test - char8_t is only available in C++20 +// select the types to test - char8_t is only available since C++20 if and only +// if __cpp_char8_t is defined. #define TYPE_LIST(...) __VA_ARGS__ -#ifdef JSON_HAS_CPP_20 +#if defined(__cpp_char8_t) && (__cpp_char8_t >= 201811L) #define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t, char8_t) #else #define ASCII_TYPES TYPE_LIST(char, wchar_t, char16_t, char32_t) ================================================ FILE: ports/nlohmann-json/fix-4742_std_optional.patch ================================================ diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp index d647d742..797f714d 100644 --- a/include/nlohmann/detail/conversions/from_json.hpp +++ b/include/nlohmann/detail/conversions/from_json.hpp @@ -13,9 +13,6 @@ #include // forward_list #include // inserter, front_inserter, end #include // map -#ifdef JSON_HAS_CPP_17 - #include // optional -#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -32,6 +29,11 @@ #include #include +// include after macro_scope.hpp +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -47,7 +49,6 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) } #ifdef JSON_HAS_CPP_17 -#ifndef JSON_USE_IMPLICIT_CONVERSIONS template void from_json(const BasicJsonType& j, std::optional& opt) { @@ -60,8 +61,6 @@ void from_json(const BasicJsonType& j, std::optional& opt) opt.emplace(j.template get()); } } - -#endif // JSON_USE_IMPLICIT_CONVERSIONS #endif // JSON_HAS_CPP_17 // overloads for basic_json template parameters diff --git a/include/nlohmann/detail/conversions/to_json.hpp b/include/nlohmann/detail/conversions/to_json.hpp index ead45665..f8413850 100644 --- a/include/nlohmann/detail/conversions/to_json.hpp +++ b/include/nlohmann/detail/conversions/to_json.hpp @@ -267,7 +267,7 @@ struct external_constructor #ifdef JSON_HAS_CPP_17 template::value, int> = 0> -void to_json(BasicJsonType& j, const std::optional& opt) +void to_json(BasicJsonType& j, const std::optional& opt) noexcept { if (opt.has_value()) { diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 82d69f7c..53a9ea70 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -173,9 +173,6 @@ #include // forward_list #include // inserter, front_inserter, end #include // map -#ifdef JSON_HAS_CPP_17 - #include // optional -#endif #include // string #include // tuple, make_tuple #include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible @@ -4817,6 +4814,11 @@ NLOHMANN_JSON_NAMESPACE_END // #include +// include after macro_scope.hpp +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif + NLOHMANN_JSON_NAMESPACE_BEGIN namespace detail { @@ -4832,7 +4834,6 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) } #ifdef JSON_HAS_CPP_17 -#ifndef JSON_USE_IMPLICIT_CONVERSIONS template void from_json(const BasicJsonType& j, std::optional& opt) { @@ -4845,8 +4846,6 @@ void from_json(const BasicJsonType& j, std::optional& opt) opt.emplace(j.template get()); } } - -#endif // JSON_USE_IMPLICIT_CONVERSIONS #endif // JSON_HAS_CPP_17 // overloads for basic_json template parameters @@ -5914,7 +5913,7 @@ struct external_constructor #ifdef JSON_HAS_CPP_17 template::value, int> = 0> -void to_json(BasicJsonType& j, const std::optional& opt) +void to_json(BasicJsonType& j, const std::optional& opt) noexcept { if (opt.has_value()) { ================================================ FILE: ports/nlohmann-json/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nlohmann/json REF "v${VERSION}" SHA512 6cc1e86261f8fac21cc17a33da3b6b3c3cd5c116755651642af3c9e99bb3538fd42c1bd50397a77c8fb6821bc62d90e6b91bcdde77a78f58f2416c62fc53b97d HEAD_REF master PATCHES fix-4736_char8_t.patch fix-4742_std_optional.patch ) if(NOT DEFINED nlohmann-json_IMPLICIT_CONVERSIONS) set(nlohmann-json_IMPLICIT_CONVERSIONS ON) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "diagnostics" JSON_Diagnostics ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DJSON_Install=ON -DJSON_MultipleHeaders=ON -DJSON_BuildTests=OFF -DJSON_ImplicitConversions=${nlohmann-json_IMPLICIT_CONVERSIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "nlohmann_json" CONFIG_PATH "share/cmake/nlohmann_json") vcpkg_fixup_pkgconfig() vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/nlohmann_json/nlohmann_jsonTargets.cmake" "{_IMPORT_PREFIX}/nlohmann_json.natvis" "{_IMPORT_PREFIX}/share/nlohmann_json/nlohmann_json.natvis" IGNORE_UNCHANGED ) if(EXISTS "${CURRENT_PACKAGES_DIR}/nlohmann_json.natvis") file(RENAME "${CURRENT_PACKAGES_DIR}/nlohmann_json.natvis" "${CURRENT_PACKAGES_DIR}/share/nlohmann_json/nlohmann_json.natvis" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Handle usage file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nlohmann-json/usage ================================================ The package nlohmann-json provides CMake targets: find_package(nlohmann_json CONFIG REQUIRED) target_link_libraries(main PRIVATE nlohmann_json::nlohmann_json) The package nlohmann-json can be configured to not provide implicit conversions via a custom triplet file: set(nlohmann-json_IMPLICIT_CONVERSIONS OFF) For more information, see the docs here: https://json.nlohmann.me/api/macros/json_use_implicit_conversions/ ================================================ FILE: ports/nlohmann-json/vcpkg.json ================================================ { "name": "nlohmann-json", "version-semver": "3.12.0", "port-version": 2, "description": "JSON for Modern C++", "homepage": "https://github.com/nlohmann/json", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "diagnostics": { "description": "Build json_diagnostics" } } } ================================================ FILE: ports/nlopt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stevengj/nlopt REF "v${VERSION}" SHA512 c7bc34c3fc00cb714473f5612329291dd3b7f2748a08c83ac0ab1fc719e9ce88c730eeeac88367273dd6e5f78e7afa0bed818374ae50b326fcd25f370abc1909 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES luksan NLOPT_LUKSAN ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNLOPT_JAVA=OFF -DNLOPT_FORTRAN=OFF -DNLOPT_GUILE=OFF -DNLOPT_MATLAB=OFF -DNLOPT_OCTAVE=OFF -DNLOPT_PYTHON=OFF -DNLOPT_SWIG=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nlopt) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("NLOPT_LUKSAN" IN_LIST FEATURES) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/src/algs/luksan/COPYRIGHT") else() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/nlopt/NLoptConfig.cmake" "/../../" "/../") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/nlopt/vcpkg.json ================================================ { "name": "nlopt", "version": "2.10.1", "port-version": 1, "description": "Library for nonlinear local and global optimization, for functions with and without gradient information.", "homepage": "https://github.com/stevengj/nlopt", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "luksan": { "description": "Enable Luksan algorithms (LGPL)", "license": "LGPL-2.1-or-later" } } } ================================================ FILE: ports/nmslib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(APPLE_CLANG_FIX URLS https://github.com/nmslib/nmslib/commit/91a6095e7843ccd51e5ac6a85622256224118535.diff?full_index=1 FILENAME nmslib-apple-clang-fix-91a6095e7843ccd51e5ac6a85622256224118535.diff SHA512 d1a19f456b01e56178d68dd6539759c0ecc39f248992a441ac46257014200c066527d096e60fb386913a13125044683b773e107602c969e9e2cfdd446b012143 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nmslib/nmslib REF v2.1.1 SHA512 62BBB965EA4BF1D416ED78231B1BA4B41C0F46327D7BE16D1F98095DB63EF0E0D893B70040009711BC9C68555B1B8C4038F5032ABD66B759E955E2CBB0553EC3 HEAD_REF master PATCHES "${APPLE_CLANG_FIX}" ) # TODO: check SSE and AVX availability and set corresponding tags vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/similarity_search" ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Move headers into separate folder set(SUBFOLDERS factory method space) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include/nmslib") foreach(SUBFOLDER ${SUBFOLDERS}) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include/nmslib/${SUBFOLDER}") endforeach() file(GLOB HEADERS "${CURRENT_PACKAGES_DIR}/include/*.h" "${CURRENT_PACKAGES_DIR}/include/*/*.h") foreach(HEADER ${HEADERS}) string(REPLACE "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/include/nmslib" MOVED_HEADER "${HEADER}") file(RENAME "${HEADER}" "${MOVED_HEADER}") endforeach(HEADER ${HEADERS}) foreach(SUBFOLDER ${SUBFOLDERS}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/${SUBFOLDER}/") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Put the license file where vcpkg expects it file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nmslib/vcpkg.json ================================================ { "name": "nmslib", "version": "2.1.1", "port-version": 3, "description": "Non-Metric Space Library (NMSLIB) is an efficient similarity search library and a toolkit for evaluation of k-NN methods for generic non-metric spaces.", "homepage": "https://github.com/nmslib/nmslib", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/nng/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nanomsg/nng REF "v${VERSION}" SHA512 cceedb16ecc3849f49b76a2ebfee4ba46a6d22b429aa9a5a94354c92aa643c5dcffd325f854ecba8ebe341c514f8288576a7be392f3a03a69152873fdd277fe3 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES mbedtls NNG_ENABLE_TLS tools NNG_ENABLE_NNGCAT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNNG_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nng) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/nng/nng.h" "defined(NNG_SHARED_LIB)" "0 /* defined(NNG_SHARED_LIB) */" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/nng/nng.h" "!defined(NNG_STATIC_LIB)" "1 /* !defined(NNG_STATIC_LIB) */" ) else() vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/nng/nng.h" "!defined(NNG_STATIC_LIB)" "0 /* !defined(NNG_STATIC_LIB) */" ) endif() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES nngcat AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") vcpkg_copy_pdbs() ================================================ FILE: ports/nng/vcpkg.json ================================================ { "name": "nng", "version": "1.11", "description": "nanomsg-next-gen, lightweight messaging library", "homepage": "https://nng.nanomsg.org", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "mbedtls": { "description": "nng TLS support", "dependencies": [ "mbedtls" ] }, "tools": { "description": "nng tools (nngcat, for example)" } } } ================================================ FILE: ports/nngpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cwzx/nngpp REF cc5d2641babab165d8a9943817c46d36c6dc17c2 #v1.3.0 SHA512 76b78f5b39b24fae3820924abb5c2f8f51f1683c08211366668745196b184ee4b4c9b1fd2fc68e8f234a56b802a4a79249d173d1562af46046d19a4498222405 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNNGPP_BUILD_DEMOS=OFF -DNNGPP_BUILD_TESTS=OFF ) vcpkg_cmake_install() # Move CMake config files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nngpp/vcpkg.json ================================================ { "name": "nngpp", "version": "1.3.0", "port-version": 3, "description": "C++ wrapper around the nanomsg NNG API.", "homepage": "https://github.com/cwzx/nngpp", "dependencies": [ "nng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nnpack/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ecd2df..d26aa34 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,8 +12,6 @@ SET_PROPERTY(CACHE NNPACK_BACKEND PROPERTY STRINGS auto psimd scalar) OPTION(NNPACK_CONVOLUTION_ONLY "Build only NNPACK functions for convolutional layer" OFF) OPTION(NNPACK_INFERENCE_ONLY "Build only NNPACK functions for inference" OFF) OPTION(NNPACK_CUSTOM_THREADPOOL "Build NNPACK for custom thread pool" OFF) -SET(NNPACK_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build") -SET_PROPERTY(CACHE NNPACK_LIBRARY_TYPE PROPERTY STRINGS default static shared) OPTION(NNPACK_BUILD_TESTS "Build NNPACK unit tests" ON) # ---[ CMake options @@ -176,7 +174,7 @@ IF(NNPACK_BACKEND STREQUAL "x86-64") SET(PEACHPY_PYTHONPATH "${PYTHON_SIX_SOURCE_DIR}:${PYTHON_PEACHPY_SOURCE_DIR}") ENDIF() ENDIF() - +IF(FALSE) IF(NOT DEFINED CPUINFO_SOURCE_DIR) MESSAGE(STATUS "Downloading cpuinfo to ${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo (define CPUINFO_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo-download/CMakeLists.txt") @@ -226,7 +224,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR) WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool-download") SET(PTHREADPOOL_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool" CACHE STRING "pthreadpool source directory") ENDIF() - +ENDIF() IF(NNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") @@ -442,15 +440,7 @@ ELSE() SET(NNPACK_BACKEND_C_SRCS ${NNPACK_BACKEND_SRCS}) ENDIF() -IF(NNPACK_LIBRARY_TYPE STREQUAL "default") - ADD_LIBRARY(nnpack ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS}) -ELSEIF(NNPACK_LIBRARY_TYPE STREQUAL "shared") - ADD_LIBRARY(nnpack SHARED ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS}) -ELSEIF(NNPACK_LIBRARY_TYPE STREQUAL "static") - ADD_LIBRARY(nnpack STATIC ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS}) -ELSE() - MESSAGE(FATAL_ERROR "Unsupported NNPACK library type \"${NNPACK_LIBRARY_TYPE}\". Must be \"static\", \"shared\", or \"default\"") -ENDIF() +ADD_LIBRARY(nnpack ${NNPACK_INIT_SRCS} ${NNPACK_LAYER_SRCS} ${NNPACK_BACKEND_C_SRCS} ${NNPACK_BACKEND_PEACHPY_OBJS}) NNPACK_TARGET_ENABLE_C99(nnpack) IF(IOS OR CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv5te|armv7-a|armv7l)$") IF(IOS AND NNPACK_BACKEND STREQUAL "neon") @@ -472,7 +462,7 @@ ENDIF() IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") SET_PROPERTY(SOURCE ${NNPACK_BACKEND_SRCS} APPEND_STRING PROPERTY COMPILE_FLAGS " -O3 ") ENDIF() -TARGET_INCLUDE_DIRECTORIES(nnpack PUBLIC include) +TARGET_INCLUDE_DIRECTORIES(nnpack PUBLIC $ $) TARGET_INCLUDE_DIRECTORIES(nnpack PRIVATE src) IF(NNPACK_BACKEND STREQUAL "psimd") TARGET_COMPILE_DEFINITIONS(nnpack PRIVATE NNP_BACKEND_PSIMD=1) @@ -496,6 +486,8 @@ NNPACK_TARGET_ENABLE_C99(nnpack_reference_layers) TARGET_INCLUDE_DIRECTORIES(nnpack_reference_layers PUBLIC include) # ---[ Configure cpuinfo +find_package(cpuinfo CONFIG REQUIRED) +add_library(cpuinfo ALIAS cpuinfo::cpuinfo) IF(NOT TARGET cpuinfo) SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "") SET(CPUINFO_BUILD_UNIT_TESTS OFF CACHE BOOL "") @@ -506,8 +498,10 @@ IF(NOT TARGET cpuinfo) "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo") ENDIF() TARGET_LINK_LIBRARIES(nnpack PRIVATE cpuinfo) - + # ---[ Configure pthreadpool +find_package(unofficial-pthreadpool CONFIG REQUIRED) +add_library(pthreadpool ALIAS unofficial::pthreadpool) IF(NOT TARGET pthreadpool) SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "") SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -525,6 +519,8 @@ ENDIF() TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC pthreadpool) # ---[ Configure FXdiv +find_package(unofficial-fxdiv CONFIG REQUIRED) +add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv) IF(NOT TARGET fxdiv) SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -535,6 +531,8 @@ ENDIF() TARGET_LINK_LIBRARIES(nnpack PRIVATE fxdiv) # ---[ Configure psimd +find_package(unofficial-psimd CONFIG REQUIRED) +add_library(psimd ALIAS unofficial::psimd::psimd) IF(NOT TARGET psimd) ADD_SUBDIRECTORY( "${PSIMD_SOURCE_DIR}" @@ -543,6 +541,8 @@ ENDIF() TARGET_LINK_LIBRARIES(nnpack PRIVATE psimd) # ---[ Configure FP16 +find_package(unofficial-fp16 CONFIG REQUIRED) +add_library(fp16 ALIAS unofficial::fp16::fp16) IF(NOT TARGET fp16) SET(FP16_BUILD_TESTS OFF CACHE BOOL "") SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -554,10 +554,24 @@ TARGET_LINK_LIBRARIES(nnpack PRIVATE fp16) TARGET_LINK_LIBRARIES(nnpack_reference_layers PUBLIC fp16) INSTALL(TARGETS nnpack + EXPORT unofficial-nnpack-config-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(EXPORT unofficial-nnpack-config-targets NAMESPACE unofficial::nnpack:: + FILE unofficial-nnpack-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack) # share/nnpack + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-nnpack-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-nnpack-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-nnpack) + + + + + IF(NNPACK_BUILD_TESTS) # ---[ Build google test IF(NOT TARGET gtest) diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..1724d5a --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(unofficial-fp16) +find_dependency(unofficial-fxdiv) +find_dependency(cpuinfo) +find_dependency(unofficial-pthreadpool) + + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-nnpack-config-targets.cmake" ) ================================================ FILE: ports/nnpack/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Maratyszcza/nnpack REF c07e3a0400713d546e0dea2d5466dd22ea389c73 SHA512 f0b261e8698b412d12dd739e5d0cf71c284965ae28da735ae22814a004358ba3ecaea6cd26fa17b594c0245966b7dd2561c1e05c6cbf0592fd7b85ea0f21eb37 PATCHES fix-cmakelists.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DNNPACK_BACKEND=psimd -DNNPACK_BUILD_TESTS=OFF -DNNPACK_BUILD_BENCHMARKS=OFF -DNNPACK_CUSTOM_THREADPOOL=OFF MAYBE_UNUSED_VARIABLES NNPACK_BUILD_BENCHMARKS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) ================================================ FILE: ports/nnpack/vcpkg.json ================================================ { "name": "nnpack", "version-date": "2021-02-21", "port-version": 4, "description": "Acceleration package for neural networks on multi-core CPUs", "homepage": "https://github.com/Maratyszcza/NNPACK", "license": "BSD-2-Clause", "supports": "linux | osx", "dependencies": [ "cpuinfo", "fp16", "fxdiv", "psimd", "pthreadpool", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/node-addon-api/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nodejs/node-addon-api REF "v${VERSION}" SHA512 25f15e061a4d771873bb6faff2ae020f2f3cdc37246b2a45340bf235837abd654bf671e2a78d0815a2529e5cd3b11723057aabe15324389dc17f486c7dbc6107 HEAD_REF main ) file(COPY "${SOURCE_PATH}/napi.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/napi-inl.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/napi-inl.deprecated.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-node-addon-api-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/node-addon-api/unofficial-node-addon-api-config.cmake ================================================ if(NOT TARGET unofficial::node-addon-api::node-addon-api) include(CMakeFindDependencyMacro) find_dependency(unofficial-node-api-headers CONFIG) add_library(unofficial::node-addon-api::node-addon-api IMPORTED INTERFACE) target_link_libraries(unofficial::node-addon-api::node-addon-api INTERFACE unofficial::node-api-headers::node-api-headers) set_target_properties(unofficial::node-addon-api::node-addon-api PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../include/" ) endif() ================================================ FILE: ports/node-addon-api/usage ================================================ node-addon-api provides CMake targets: find_package(unofficial-node-addon-api CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::node-addon-api::node-addon-api) ================================================ FILE: ports/node-addon-api/vcpkg.json ================================================ { "name": "node-addon-api", "version": "8.6.0", "description": "Module for using Node-API from C++", "homepage": "https://github.com/nodejs/node-addon-api", "license": "MIT", "supports": "((windows & !arm) | linux | osx) & !uwp", "dependencies": [ "node-api-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/node-api-headers/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16.3) # See https://learn.microsoft.com/en-us/vcpkg/concepts/supported-hosts#linux-1 project(nodelib C) if (MINGW) add_custom_target(nodelib ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libnode.a) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libnode.a COMMAND ${CMAKE_DLLTOOL} -d "${CMAKE_CURRENT_SOURCE_DIR}/def/node_api.def" -l "${CMAKE_CURRENT_BINARY_DIR}/libnode.a" ${CMAKE_MODULE_LINKER_FLAGS} $<$:${CMAKE_MODULE_LINKER_FLAGS_DEBUG}> $<$:${CMAKE_MODULE_LINKER_FLAGS_RELEASE}> COMMENT "Building import library for NodeJS" ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnode.a DESTINATION lib) else() add_custom_target(nodelib ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/node.lib) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/node.lib COMMAND ${CMAKE_AR} /def:${CMAKE_CURRENT_SOURCE_DIR}/def/node_api.def /out:${CMAKE_CURRENT_BINARY_DIR}/node.lib ${CMAKE_STATIC_LINKER_FLAGS} $<$:${CMAKE_STATIC_LINKER_FLAGS_DEBUG}> $<$:${CMAKE_STATIC_LINKER_FLAGS_RELEASE}> COMMENT "Building import library for NodeJS" ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/node.lib DESTINATION lib) endif() ================================================ FILE: ports/node-api-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nodejs/node-api-headers REF "v${VERSION}" SHA512 b7d87edcb1f1badc5c6ca2821698acb01732078297cbe138e2936a3db426a5caaf651908015ddb28bdb00fb8a442e8af24491d48e02ccc5668eb3e95a83fc1f8 HEAD_REF main ) if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() endif() file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME "node") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) ================================================ FILE: ports/node-api-headers/unofficial-node-api-headers-config.cmake.in ================================================ if(NOT TARGET unofficial::node-api-headers::node-api-headers) if(WIN32) add_library(unofficial::node-api-headers::node-api-headers UNKNOWN IMPORTED) else() add_library(unofficial::node-api-headers::node-api-headers INTERFACE IMPORTED) endif() set(node-api-headers_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/../../include/node) set_target_properties(unofficial::node-api-headers::node-api-headers PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${node-api-headers_INCLUDE_DIR}" ) if(APPLE) # setting those properties like cmake-js does # https://github.com/cmake-js/cmake-js/blob/272ec1883bc1207205abae948022eecdea02e225/lib/toolset.js#L126 set_target_properties(unofficial::node-api-headers::node-api-headers PROPERTIES INTERFACE_LINK_OPTIONS "LINKER:SHELL:-undefined dynamic_lookup" ) set_target_properties(unofficial::node-api-headers::node-api-headers PROPERTIES INTERFACE_COMPILE_DEFINITIONS "_DARWIN_USE_64_BIT_INODE=1;_LARGEFILE_SOURCE;_FILE_OFFSET_BITS=64" ) endif() set_property(TARGET unofficial::node-api-headers::node-api-headers APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "BUILDING_NODE_EXTENSION") if(WIN32) find_library(node-api-headers_LIBRARY_RELEASE NAMES node PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::node-api-headers::node-api-headers PROPERTIES IMPORTED_LOCATION_RELEASE "${node-api-headers_LIBRARY_RELEASE}" IMPORTED_CONFIGURATIONS RELEASE ) if("@VCPKG_BUILD_TYPE@" STREQUAL "") find_library(node-api-headers_LIBRARY_DEBUG NAMES node PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::node-api-headers::node-api-headers PROPERTIES IMPORTED_LOCATION_DEBUG "${node-api-headers_LIBRARY_DEBUG}" ) set_property(TARGET unofficial::node-api-headers::node-api-headers APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) endif() endif() endif() ================================================ FILE: ports/node-api-headers/usage ================================================ node-api-headers provides CMake targets: find_package(unofficial-node-api-headers CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::node-api-headers::node-api-headers) Add this to your CMakeLists.txt to build a Node.js addon: add_library(addon SHARED main.cpp ...) set_target_properties(addon PROPERTIES OUTPUT_NAME "my-addon" PREFIX "" SUFFIX ".node") find_package(unofficial-node-api-headers CONFIG REQUIRED) target_link_libraries(addon PRIVATE unofficial::node-api-headers::node-api-headers) You will be able to load your addon in JavaScript code: const addon = require("/path/to/addon/my-addon.node"); Make sure that your Node.js OS/architecture matches vcpkg triplet you use. Also, make sure to register a module in your C/C++ code like official example does: https://github.com/nodejs/node-addon-examples/blob/main/1_hello_world/napi/hello.c This port doesn't have specific functionality for publishing npm packages. See https://nodejs.org/api/n-api.html ================================================ FILE: ports/node-api-headers/vcpkg.json ================================================ { "name": "node-api-headers", "version": "1.6.0", "description": "NodeJS API for writing modules in C++", "homepage": "https://nodejs.org/api/addons.html", "license": "MIT", "supports": "(windows & !arm & !uwp) | linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake-config", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/nodesoup/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index be6aa9d..26e59f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ install( ARCHIVE DESTINATION lib INCLUDES DESTINATION include - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/nodesoup) + PUBLIC_HEADER DESTINATION include) include(CMakePackageConfigHelpers) write_basic_package_version_file( diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index dbd43b9..44164c9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,7 +5,9 @@ add_library(nodesoup::nodesoup ALIAS nodesoup) target_include_directories( nodesoup PUBLIC $ - PRIVATE $) + $ + PRIVATE $ +) target_compile_features(nodesoup PUBLIC cxx_std_14) ================================================ FILE: ports/nodesoup/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO olvb/nodesoup REF 3158ad082bb0cd1abee75418b12b35522dbca74f SHA512 be98cd5a1106fb1b6e6cb6b880229f590c2d4c4cc176dcceb2e2226ff3f2344ccb4510fb3a0911e9329701af50f076ee2efb9a3afc9e985b4d9c3fb92c12102d HEAD_REF master PATCHES fix-cmakelists.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DEMO=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_cmake_config_fixup(PACKAGE_NAME nodesoup CONFIG_PATH lib/cmake/nodesoup) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/nodesoup/" RENAME copyright) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/nodesoup/") ================================================ FILE: ports/nodesoup/usage ================================================ The package nodesoup provides CMake targets: find_package(nodesoup CONFIG REQUIRED) target_link_libraries(main PRIVATE nodesoup::nodesoup) ================================================ FILE: ports/nodesoup/vcpkg.json ================================================ { "name": "nodesoup", "version-date": "2023-06-12", "description": "Force-directed graph layout with Fruchterman-Reingold", "license": "Unlicense", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nonius/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) cmake_policy(VERSION ${CMAKE_VERSION}) # use default policies of current cmake version project(nonius) add_library(nonius INTERFACE) target_include_directories(nonius INTERFACE $ $ ) if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include ) endif() install(TARGETS nonius EXPORT noniusExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT noniusExport FILE noniusConfig.cmake NAMESPACE Nonius:: DESTINATION share/nonius ) ================================================ FILE: ports/nonius/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libnonius/nonius REF 6396b7ad6685843eea63754ffa567dd66353c1a8 SHA512 3b824a6011f1dbe116271dd76e8214ed98d73dfc215d7c9242bf298eb0e7ee3a3e3198f477b49fdbe098ac6e3e4edd8ca7bd2e03cc2036189bf3630ef3fcdca2 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/COPYING.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/nonius/vcpkg.json ================================================ { "name": "nonius", "version-date": "2019-04-20", "port-version": 4, "description": "A C++ micro-benchmarking framework", "dependencies": [ "boost-algorithm", "boost-lexical-cast", "boost-math", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nonstd-bit-lite/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nonstd-lite/bit-lite REF "v${VERSION}" SHA512 a0b9f5786e72ffa1dcd77f7bd62ad08160a845c4fb05ff0b6fe7233c80aed89b7df6e698eed9ff633dd9e7ffaf19fa866d93d5d541d0a5af0d79afd5f76425e3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBIT_LITE_OPT_BUILD_TESTS=OFF -DBIT_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME bit-lite CONFIG_PATH lib/cmake/bit-lite ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nonstd-bit-lite/vcpkg.json ================================================ { "name": "nonstd-bit-lite", "version": "2.0.0", "description": "C++20/C++23 bit operations for C++98 and later in a single-file header-only library", "homepage": "https://github.com/nonstd-lite/bit-lite", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nonstd-scope-lite/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nonstd-lite/scope-lite REF "v${VERSION}" SHA512 e159d7e31e0b9690b38ad9ee22368e9b230dd89419ac4198b0f64923b42acce24c1a6ebf3fcc4e7fed8a3942bb9b2d666d8098ae1a5f35f6f099343b22f646fe HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSCOPE_LITE_OPT_BUILD_TESTS=OFF -DSCOPE_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME scope-lite CONFIG_PATH lib/cmake/scope-lite ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nonstd-scope-lite/vcpkg.json ================================================ { "name": "nonstd-scope-lite", "version": "0.3.0", "description": "C++ standard libraries extensions (version 3) scope_exit, scope_fail, scope_success, unique_resource for C++98 and later in a single-file header-only library", "homepage": "https://github.com/nonstd-lite/scope-lite", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nowide/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/boostorg/nowide/releases/download/v${VERSION}/nowide_standalone_v${VERSION}.tar.gz" FILENAME "nowide_standalone_v${VERSION}.tar.gz" SHA512 81bd088024a4682f4caf7524358982cdbdd4657b7533f4bb5135a88d228a74c4c3afee7ca2e13af8ead291450b6ef5f6849685875ef0f2aabe8eb9f0cab20688 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nowide) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nowide/vcpkg.json ================================================ { "name": "nowide", "version": "11.3.1", "description": "Boost nowide module (standalone)", "homepage": "https://github.com/boostorg/nowide", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nrf-ble-driver/001-arm64-support.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 99daa24..9a18ee5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -259,6 +259,9 @@ endforeach(SD_API_VER) # Additional special linkage libraries foreach(SD_API_VER ${SD_API_VERS}) if(WIN32) + # arm64-windows support + target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "advapi32") + target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "advapi32") elseif(APPLE) target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_STATIC_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") target_link_libraries(${NRF_BLE_DRIVER_${SD_API_VER}_SHARED_LIB} PRIVATE "-framework CoreFoundation" "-framework IOKit") ================================================ FILE: ports/nrf-ble-driver/add-include-chrono.patch ================================================ diff --git a/src/common/transport/serialization_transport.cpp b/src/common/transport/serialization_transport.cpp index f916961..5ab0f3a 100644 --- a/src/common/transport/serialization_transport.cpp +++ b/src/common/transport/serialization_transport.cpp @@ -43,6 +43,7 @@ #include "ble_common.h" +#include #include #include #include ================================================ FILE: ports/nrf-ble-driver/gcc-11.2.0-compilation.patch ================================================ From 00791acc7c23ac2421102edd42a7fa562cc98bfd Mon Sep 17 00:00:00 2001 From: Krzysztof Rosinski Date: Wed, 29 Dec 2021 09:47:40 +0100 Subject: [PATCH] fix compilation issue (gcc-11.2.0) error: 'sleep_for' is not a member of 'std::this_thread' --- src/common/transport/uart_transport.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/common/transport/uart_transport.cpp b/src/common/transport/uart_transport.cpp index 1f063ff2..96e045fb 100644 --- a/src/common/transport/uart_transport.cpp +++ b/src/common/transport/uart_transport.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #if defined(__APPLE__) #include ================================================ FILE: ports/nrf-ble-driver/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") message( "${PORT} currently requires the following libraries from the system package manager: libudev-dev These can be installed on Ubuntu systems via sudo apt install libudev-dev" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NordicSemiconductor/pc-ble-driver REF v${VERSION}-hex SHA512 1e8b5882aa3754a29a8f0ec11b8e70390db7ddf7bc50e1318adaaf4cd1ba2b787129d8003f8076ad39c35ec887ef3aeadbcb23fa5100b2be24956d118370cb84 HEAD_REF master PATCHES 001-arm64-support.patch support-arm64-osx.diff # from https://github.com/NordicSemiconductor/pc-ble-driver/pull/271 gcc-11.2.0-compilation.patch # from https://github.com/NordicSemiconductor/pc-ble-driver/pull/272 add-include-chrono.patch ) # Ensure that git is found within CMakeLists.txt by appending vcpkg's git executable dirpath to $PATH. # Git should always be available as it is downloaded during the bootstrap phase. # Append instead of prepend to $PATH to honor the user's git executable as a general rule. vcpkg_find_acquire_program(GIT) get_filename_component(GIT_EXE_PATH "${GIT}" DIRECTORY) vcpkg_add_to_path("${GIT_EXE_PATH}") set(OPTIONS) if (VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(OPTIONS "-DARCH=${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDISABLE_EXAMPLES=ON -DDISABLE_TESTS=ON -DNRF_BLE_DRIVER_VERSION=${VERSION} -DCONNECTIVITY_VERSION=${VERSION} ${OPTIONS} MAYBE_UNUSED_VARIABLES DISABLE_EXAMPLES DISABLE_TESTS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() # Copy hex files into shared folder for package foreach(HEX_DIR IN ITEMS "sd_api_v2" "sd_api_v3" "sd_api_v5" "sd_api_v6") set(TARGET_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}/hex/${HEX_DIR}") file(MAKE_DIRECTORY "${TARGET_DIRECTORY}") file(INSTALL "${SOURCE_PATH}/hex/${HEX_DIR}" DESTINATION "${TARGET_DIRECTORY}/..") endforeach() 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") endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nrf-ble-driver/support-arm64-osx.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ec7b4d2d7..16c136958 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -298,7 +298,17 @@ include (cmake/clang-dev-tools.cmake) set(ARCH_SUFFIX "unknown") if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(ARCH_SUFFIX "x86_64") + if(APPLE) + if(${ARCH} STREQUAL not_set OR ${ARCH} STREQUAL x86_64) + set(ARCH_SUFFIX "x86_64") + elseif(${ARCH} STREQUAL arm64) + set(ARCH_SUFFIX "arm64") + else() + message(FATAL_ERROR "Invalid ARCH_SUFFIX: ARCH=${ARCH}.") + endif() + else() + set(ARCH_SUFFIX "x86_64") + endif() else() set(ARCH_SUFFIX "x86_32") endif() diff --git a/cmake/apple.cmake b/cmake/apple.cmake index c413cfa7e..cef762cf1 100644 --- a/cmake/apple.cmake +++ b/cmake/apple.cmake @@ -1,4 +1,13 @@ -set(CMAKE_OSX_ARCHITECTURES "x86_64") +if(${ARCH} STREQUAL not_set) + message(STATUS "macOS Architecture not set, using x86_64 as default.") + SET(CMAKE_OSX_ARCHITECTURES "x86_64") +else() + if(${ARCH} STREQUAL x86_64 OR ${ARCH} STREQUAL arm64) + set(CMAKE_OSX_ARCHITECTURES "${ARCH}") + else() + message(FATAL_ERROR "Invalid CMAKE_OSX_ARCHITECTURES: ARCH=${ARCH}.") + endif() +endif() set(CMAKE_SKIP_BUILD_RPATH TRUE) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) diff --git a/cmake/nrf-ble-driver.cmake b/cmake/nrf-ble-driver.cmake index d81608c72..467afd0e9 100644 --- a/cmake/nrf-ble-driver.cmake +++ b/cmake/nrf-ble-driver.cmake @@ -8,7 +8,7 @@ math(EXPR COMPILER_ARCH_BITS "8*${CMAKE_SIZEOF_VOID_P}") # Default to compiler architecture set(ARCH_BITS ${COMPILER_ARCH_BITS}) -SET(ARCH not_set CACHE STRING "Architecture (x86_32 or x86_64)") +SET(ARCH not_set CACHE STRING "Architecture (x86_32, x86_64, arm or arm64)") string(TOLOWER "${ARCH}" ARCH) if(${ARCH} STREQUAL not_set) @@ -16,17 +16,19 @@ if(${ARCH} STREQUAL not_set) else() if(MSVC) message(FATAL_ERROR "ARCH not available with MSVC. Use -G \"Visual Studio XX \" instead.") - elseif(APPLE) - message(FATAL_ERROR "ARCH not available on macOS / OS X. Universal 32 and 64-bit binaries will be built.") endif() if(${ARCH} STREQUAL x86_32) set(ARCH_BITS 32) elseif(${ARCH} STREQUAL x86_64) set(ARCH_BITS 64) + elseif(${ARCH} STREQUAL arm) + set(ARCH_BITS 32) + elseif(${ARCH} STREQUAL arm64) + set(ARCH_BITS 64) else() message(FATAL_ERROR "Invalid architecture: ARCH=${ARCH}.") endif() - message(STATUS "Building ${ARCH_BITS}-bit targets with ${COMPILER_ARCH_BITS}-bit toolchain.") + message(STATUS "Building ${ARCH} ${ARCH_BITS}-bit targets with ${COMPILER_ARCH_BITS}-bit toolchain.") endif() if(NOT MSVC) ================================================ FILE: ports/nrf-ble-driver/vcpkg.json ================================================ { "name": "nrf-ble-driver", "version": "4.1.4", "port-version": 2, "description": "BLE driver is a library for Bluetooth Low Energy communication using Nordic Semiconductor development kits.", "homepage": "https://github.com/NordicSemiconductor/pc-ble-driver", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "asio", "cli11", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nspr/android.diff ================================================ diff --git a/nspr/configure.in b/nspr/configure.in index 1a3e489..59e6347 100644 --- a/nspr/configure.in +++ b/nspr/configure.in @@ -153,6 +153,9 @@ mipsel-*android*) esac case "$target" in +*-android*) + AC_DEFINE(ANDROID) + ;; *-android*|*-linuxandroid*) if test -z "$android_ndk" ; then AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.]) ================================================ FILE: ports/nspr/library-linkage.diff ================================================ diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk index 8f3f926..1ddfffd 100644 --- a/nspr/config/rules.mk +++ b/nspr/config/rules.mk @@ -113,7 +113,8 @@ endif ifndef TARGETS ifeq (,$(filter-out WINNT WINCE,$(OS_ARCH))) -TARGETS = $(LIBRARY) $(SHARED_LIBRARY) $(IMPORT_LIBRARY) +ifdef BUILD_SHARED_LIBS +TARGETS = $(SHARED_LIBRARY) $(IMPORT_LIBRARY) ifdef MOZ_DEBUG_SYMBOLS ifdef MSC_VER ifneq (,$(filter-out 1100 1200,$(MSC_VER))) @@ -122,7 +123,14 @@ endif endif endif else -TARGETS = $(LIBRARY) $(SHARED_LIBRARY) +TARGETS = $(LIBRARY) +endif +else +ifdef BUILD_SHARED_LIBS +TARGETS = $(SHARED_LIBRARY) +else +TARGETS = $(LIBRARY) +endif endif endif diff --git a/nspr/lib/ds/Makefile.in b/nspr/lib/ds/Makefile.in index fa8c783..b102b04 100644 --- a/nspr/lib/ds/Makefile.in +++ b/nspr/lib/ds/Makefile.in @@ -131,7 +131,7 @@ endif export:: $(TARGETS) $(INSTALL) -m 444 $(HEADERS) $(dist_includedir) $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) -ifdef SHARED_LIBRARY +ifdef BUILD_SHARED_LIBS ifeq ($(OS_ARCH),HP-UX) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) diff --git a/nspr/lib/libc/src/Makefile.in b/nspr/lib/libc/src/Makefile.in index 9ef2007..4f5ddbe 100644 --- a/nspr/lib/libc/src/Makefile.in +++ b/nspr/lib/libc/src/Makefile.in @@ -132,7 +132,7 @@ endif export:: $(TARGETS) $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) -ifdef SHARED_LIBRARY +ifdef BUILD_SHARED_LIBS ifeq ($(OS_ARCH),HP-UX) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) diff --git a/nspr/pr/src/Makefile.in b/nspr/pr/src/Makefile.in index a9e86f5..88e626e 100644 --- a/nspr/pr/src/Makefile.in +++ b/nspr/pr/src/Makefile.in @@ -325,7 +325,7 @@ export:: build:: $(TARGETS) $(INSTALL) -m 444 $(TARGETS) $(dist_libdir) -ifdef SHARED_LIBRARY +ifdef BUILD_SHARED_LIBS ifeq ($(OS_ARCH),HP-UX) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_libdir) $(INSTALL) -m 755 $(SHARED_LIBRARY) $(dist_bindir) ================================================ FILE: ports/nspr/nsinstall-windows.diff ================================================ diff --git a/nspr/config/Makefile.in b/nspr/config/Makefile.in index 54357b7..fd59e1a 100644 --- a/nspr/config/Makefile.in +++ b/nspr/config/Makefile.in @@ -54,10 +54,10 @@ include $(topsrcdir)/config/rules.mk PROGS = $(OBJDIR)/now$(PROG_SUFFIX) -ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH))) +ifneq (,$(CROSS_COMPILE)) TARGETS = $(PROGS) else -ifeq (,$(filter-out WINCE,$(OS_ARCH))) +ifeq (,$(filter-out WIN95 WINCE WINMO,$(OS_TARGET))) TARGETS = $(PROGS) else PROGS += $(OBJDIR)/nsinstall$(PROG_SUFFIX) ================================================ FILE: ports/nspr/parallel.diff ================================================ diff --git a/nspr/config/rules.mk b/nspr/config/rules.mk index 37bd49a..d6c6f6d 100644 --- a/nspr/config/rules.mk +++ b/nspr/config/rules.mk @@ -495,7 +495,6 @@ $(filter $(OBJDIR)/%.$(OBJ_SUFFIX),$(OBJS)): $(OBJDIR)/%.$(OBJ_SUFFIX): $(DUMMY_ # parallel. # ifeq (,$(filter-out 1200 1300 1310,$(MSC_VER))) -.NOTPARALLEL: endif # ================================================ FILE: ports/nspr/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_download_distfile(ARCHIVE URLS "https://releases.mozilla.org/pub/nspr/releases/v${VERSION}/src/nspr-${VERSION}.tar.gz" FILENAME "nspr-${VERSION}.tar.gz" SHA512 55d21e196508ad29a179639fc8006f44b04dc2c0b5a85895e727f0a4f0ea37aeeceb936e37ac6b271b882a18e9f06d96133a60f19cee6345f8424c1c66e270ee ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES android.diff library-linkage.diff nsinstall-windows.diff parallel.diff unexport-ldflags.diff ) set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS) # https://firefox-source-docs.mozilla.org/nspr/nspr_build_instructions.html#enable-win32-target-win95 list(APPEND OPTIONS "--enable-win32-target=WIN95") if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND OPTIONS "--enable-static-rtl") else() list(APPEND OPTIONS "--disable-static-rtl") endif() endif() if(VCPKG_TARGET_ARCHITECTURE MATCHES "64") list(APPEND OPTIONS "--enable-64bit") else() list(APPEND OPTIONS "--disable-64bit") endif() set(MAKE_OPTIONS "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND MAKE_OPTIONS BUILD_SHARED_LIBS=1) endif() if(VCPKG_CROSSCOMPILING) list(APPEND MAKE_OPTIONS "NOW=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/now${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(NOT CMAKE_HOST_WIN32) list(APPEND MAKE_OPTIONS "NSINSTALL=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() endif() if(CMAKE_HOST_WIN32) vcpkg_acquire_msys(MSYS_NSINSTALL NO_DEFAULT_PACKAGES DIRECT_PACKAGES "https://mirror.msys2.org/msys/x86_64/nsinstall-4.36-1-x86_64.pkg.tar.zst" 36ceaf44db4368ef6319397cef1d82a752c68f3f7a16ca00e753ee7ae825058f22c38ccd750b53ea773212dffae838700be0d09288353db33d2f5197df9091df ) list(APPEND MAKE_OPTIONS "NSINSTALL=${MSYS_NSINSTALL}/usr/bin/nsinstall${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}/nspr" AUTORECONF OPTIONS ${OPTIONS} OPTIONS_DEBUG --enable-debug-rtl OPTIONS_RELEASE --disable-debug-rtl ) vcpkg_make_install(OPTIONS ${MAKE_OPTIONS}) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() set(install_dir_pattern "${CURRENT_INSTALLED_DIR}") if(CMAKE_HOST_WIN32) string(REGEX REPLACE [[^([a-zA-Z]):/]] [[/\1/]] install_dir_pattern "${install_dir_pattern}") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/nspr-config" "${install_dir_pattern}" "`dirname $0`/../../..") file(GLOB BIN_RELEASE "${CURRENT_PACKAGES_DIR}/lib/*.dll" "${CURRENT_PACKAGES_DIR}/lib/*.pdb") if(NOT BIN_RELEASE STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") foreach(path ${BIN_RELEASE}) get_filename_component(name "${path}" NAME) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/${name}" "${CURRENT_PACKAGES_DIR}/bin/${name}") endforeach() endif() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/nspr-config" "${install_dir_pattern}/debug" "`dirname $0`/../../../..") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(GLOB BIN_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/*.pdb") if(NOT BIN_DEBUG STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") foreach(path IN LISTS BIN_DEBUG) get_filename_component(name "${path}" NAME) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/${name}" "${CURRENT_PACKAGES_DIR}/debug/bin/${name}") endforeach() endif() endif() if(NOT VCPKG_CROSSCOMPILING) set(tool_names now nsinstall) if(CMAKE_HOST_WIN32) list(REMOVE_ITEM tool_names nsinstall) endif() vcpkg_copy_tools( TOOL_NAMES ${tool_names} SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nspr/LICENSE") ================================================ FILE: ports/nspr/unexport-ldflags.diff ================================================ diff --git a/nspr/config/nspr-config.in b/nspr/config/nspr-config.in index 2cb62a0..6db7aa3 100755 --- a/nspr/config/nspr-config.in +++ b/nspr/config/nspr-config.in @@ -136,7 +136,7 @@ if test "$echo_libs" = "yes"; then if test -n "$lib_nspr"; then libdirs="$libdirs -lnspr${major_version}" fi - os_ldflags="@LDFLAGS@" + os_ldflags="" for i in $os_ldflags ; do if echo $i | grep \^-L >/dev/null; then libdirs="$libdirs $i" ================================================ FILE: ports/nspr/vcpkg.json ================================================ { "name": "nspr", "version": "4.36", "port-version": 1, "description": "Netscape portable runtime", "homepage": "https://releases.mozilla.org/pub/nspr/", "license": "MPL-2.0", "supports": "!uwp & !xbox & !(windows & static & staticcrt)", "dependencies": [ { "name": "nspr", "host": true }, { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/nss/02-gen-debug-info-for-release.patch ================================================ diff -ur --- a/nss/coreconf/config.gypi 2021-11-09 22:46:52.555246500 -0800 +++ b/nss/coreconf/config.gypi 2021-11-10 00:49:48.044560100 -0800 @@ -638,9 +638,11 @@ 'VCCLCompilerTool': { 'Optimization': '<(release_optimization_level)', 'RuntimeLibrary': '2', # /MD + 'DebugInformationFormat': '3', }, 'VCLinkerTool': { 'LinkIncremental': '1', + 'GenerateDebugInformation' : 'true', }, }, }, ================================================ FILE: ports/nss/03-use-debug-crt-for-debug.patch ================================================ diff --git a/nss/coreconf/config.gypi b/nss/coreconf/config.gypi index ae4c708..42633fc 100644 --- a/nss/coreconf/config.gypi +++ b/nss/coreconf/config.gypi @@ -622,7 +622,7 @@ 'VCCLCompilerTool': { 'Optimization': '<(debug_optimization_level)', 'BasicRuntimeChecks': '3', - 'RuntimeLibrary': '2', # /MD + 'RuntimeLibrary': '3', # /MDd 'DebugInformationFormat': '3', }, 'VCLinkerTool': { ================================================ FILE: ports/nss/configure ================================================ #!/bin/bash filtered_options=() for option do accept=yes case "${option}" in --host=* | --build=*) accept=no ;; esac if test "${accept}" = "yes"; then filtered_options+=("${option}"); fi done echo Invoking nss/build.sh "${filtered_options[@]}" exec nss/build.sh "${filtered_options[@]}" ================================================ FILE: ports/nss/include-dirs.diff ================================================ diff --git a/nss/lib/sqlite/exports.gyp b/nss/lib/sqlite/exports.gyp index 0a424ba..935b223 100644 --- a/nss/lib/sqlite/exports.gyp +++ b/nss/lib/sqlite/exports.gyp @@ -12,7 +12,6 @@ 'copies': [ { 'files': [ - 'sqlite3.h' ], 'destination': '<(nss_private_dist_dir)/<(module)' } diff --git a/nss/lib/sqlite/sqlite.gyp b/nss/lib/sqlite/sqlite.gyp index 6a9ab3a..b98ab00 100644 --- a/nss/lib/sqlite/sqlite.gyp +++ b/nss/lib/sqlite/sqlite.gyp @@ -10,8 +10,14 @@ 'targets': [{ 'target_name': 'sqlite3', 'type': 'none', + 'direct_dependent_settings': { + 'variables': { + 'sqlite_include_dirs%': [], + }, + 'include_dirs': ['<@(sqlite_include_dirs)'], + }, 'link_settings': { - 'libraries': ['<(sqlite_libs)'], + 'libraries': ['<@(sqlite_libs)'], }, }], }, { diff --git a/nss/lib/zlib/zlib.gyp b/nss/lib/zlib/zlib.gyp index 07df9a8..215732d 100644 --- a/nss/lib/zlib/zlib.gyp +++ b/nss/lib/zlib/zlib.gyp @@ -13,6 +13,12 @@ 'targets': [{ 'target_name': 'nss_zlib', 'type': 'none', + 'direct_dependent_settings': { + 'variables': { + 'zlib_include_dirs%': [], + }, + 'include_dirs': ['<@(zlib_include_dirs)'], + }, 'link_settings': { 'libraries': ['<@(zlib_libs)'], }, ================================================ FILE: ports/nss/macos-cross-compile.patch ================================================ --- a/nss/build.sh +++ b/nss/build.sh @@ -66,6 +66,7 @@ sslkeylogfile=1 gyp_params=(--depth="$cwd" --generator-output=".") +gyp_flavor= ninja_params=() # Assume that MSVC is wanted if this is running on windows. @@ -134,6 +135,7 @@ --mozilla-central) gyp_params+=(-Dmozilla_central=1) ;; --python) python="$2"; shift ;; --python=*) python="${1#*=}" ;; + -DOS=*) gyp_params+=("$1"); gyp_flavor="${1#-DOS=}" ;; -D*) gyp_params+=("$1") ;; *) show_help; exit 2 ;; esac @@ -275,7 +277,14 @@ set_nspr_path "$obj_dir/include/nspr:$obj_dir/lib" fi - run_verbose run_scanbuild ${GYP} -f ninja "${gyp_params[@]}" "$cwd/nss.gyp" + # On macOS, gyp defaults to "mac" flavor which emits Xcode-specific flags + # and tools (libtool, -arch, etc.) incompatible with cross-compilation targets. + gyp_format=ninja + if [ "$(uname -s)" = "Darwin" ] && [ -n "$gyp_flavor" ] && [ "$gyp_flavor" != "mac" ]; then + gyp_format="ninja-${gyp_flavor}" + export GYP_CROSSCOMPILE=1 + fi + run_verbose run_scanbuild ${GYP} -f "$gyp_format" "${gyp_params[@]}" "$cwd/nss.gyp" mv -f "$gyp_config.new" "$gyp_config" fi ================================================ FILE: ports/nss/portfile.cmake ================================================ # - The static lib is named "ssl", conflicting with the "ssl" lib from openssl. # - The tools use the shared libs. # - The pkgconfig file refers to "ssl3" # - Linux distros don't install the static lib. # (Renaming the static lib to "ssl3" might be an alternative solution.) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(REPLACE "." "_" V_URL ${VERSION}) vcpkg_download_distfile(ARCHIVE URLS "https://ftp.mozilla.org/pub/security/nss/releases/NSS_${V_URL}_RTM/src/nss-${VERSION}.tar.gz" FILENAME "nss-${VERSION}.tar.gz" SHA512 5ffb1182e7d65f8895c09656d20bc7146d1616cd4f09046469b2f79f60b57083094c78da39a3f3faa5087742a19f706ce9e7928a662f9f0d3c410514cba2028f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES "02-gen-debug-info-for-release.patch" "03-use-debug-crt-for-debug.patch" # See https://learn.microsoft.com/dotnet/api/microsoft.visualstudio.vcprojectengine.runtimelibraryoption include-dirs.diff macos-cross-compile.patch ) file(GLOB devendor "${SOURCE_PATH}/nss/lib/sqlite/*.?" "${SOURCE_PATH}/nss/lib/zlib/*.?") file(REMOVE ${devendor}) file(COPY "${CURRENT_PORT_DIR}/configure" DESTINATION "${SOURCE_PATH}") function(download_distfile var url sha512) string(REGEX REPLACE ".*/" "" filename "${url}") vcpkg_download_distfile(archive URLS "${url}" FILENAME "${filename}" SHA512 "${sha512}" ) set("${var}" "${archive}" PARENT_SCOPE) endfunction() download_distfile(gyp_next "https://files.pythonhosted.org/packages/37/3e/d920a254ad927c942a541388c84dd1af0db1af6f6c2b96e99d9ec3f3a148/gyp_next-0.20.2-py3-none-any.whl" 53feff516d0de8738910e04e4e5664af27947c0a2bca856c290f9082d18678b03e917403e2c842edb62b6dd5412c625f34edb52d6d9b295c07ef34b3c18981f8 ) download_distfile(packaging "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl" a726fb46cce24f781fc8b55a3e6dea0a884ebc3b2b400ea74aa02333699f4955a5dc1e2ec5927ac72f35a624401f3f3b442882ba1cc4cadaf9c88558b5b8bdae ) download_distfile(setuptools "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl" 2a0420f7faaa33d2132b82895a8282688030e939db0225ad8abb95a47bdb87b45318f10985fc3cee271a9121441c1526caa363d7f2e4a4b18b1a674068766e87 ) x_vcpkg_get_python_packages( OUT_PYTHON_VAR PYTHON3 PYTHON_VERSION 3 PACKAGES "${gyp_next}" "${packaging}" "${setuptools}" ) cmake_path(GET PYTHON3 PARENT_PATH GYP_NEXT_ROOT) # Prepend to PATH in controlled order vcpkg_find_acquire_program(NINJA) get_filename_component(NINJA_ROOT "${NINJA}" DIRECTORY) vcpkg_add_to_path(PREPEND "${NINJA_ROOT}") find_program(GYP_NEXT NAMES gyp PATHS "${GYP_NEXT_ROOT}" NO_DEFAULT_PATH REQUIRED) message(STATUS "Using ${GYP_NEXT}") vcpkg_add_to_path(PREPEND "${GYP_NEXT_ROOT}") # setup build.sh options -- see help.txt in nss root set(OPTIONS "") if(VCPKG_TARGET_IS_ANDROID) list(APPEND OPTIONS "-DOS=android") elseif(VCPKG_TARGET_IS_FREEBSD) list(APPEND OPTIONS "-DOS=freebsd") elseif(VCPKG_TARGET_IS_IOS) list(APPEND OPTIONS "-DOS=ios") elseif(VCPKG_TARGET_IS_LINUX) list(APPEND OPTIONS "-DOS=linux") elseif(VCPKG_TARGET_IS_OSX) list(APPEND OPTIONS "-DOS=mac") elseif(VCPKG_TARGET_IS_OPENBSD) list(APPEND OPTIONS "-DOS=openbsd") elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-DOS=win") elseif(VCPKG_CROSSCOMPILING) message(WARNING "Cannot determine OS setting for ${TARGET_TRIPLET}") endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") list(APPEND OPTIONS "--target=ia32") else() list(APPEND OPTIONS "--target=${VCPKG_TARGET_ARCHITECTURE}") endif() function(cygpath_u out_var input) # equivalent to cygpath -u string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" input "${input}") set("${out_var}" "${input}" PARENT_SCOPE) endfunction() if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_MSVC) list(APPEND OPTIONS "--msvc") set(ENV{PYTHONUTF8} 1) # vswhere needed in PATH cmake_path(SET vswhere "$ENV{ProgramFiles\(x86\)}/Microsoft Visual Studio/Installer/vswhere.exe") if(NOT EXISTS "${vswhere}") vcpkg_execute_in_download_mode( COMMAND "$ENV{VCPKG_COMMAND}" fetch vswhere --x-stderr-status OUTPUT_VARIABLE vswhere RESULT_VARIABLE error_code OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${DOWNLOADS}" ) if(NOT error_code STREQUAL "0") message(FATAL_ERROR "Failed to fetch vswhere.") endif() string(REGEX REPLACE "^.*\n *" "" vswhere "${vswhere}") endif() message(STATUS "Using ${vswhere}") cmake_path(GET vswhere PARENT_PATH vswhere_dir) vcpkg_host_path_list(APPEND ENV{PATH} "${vswhere_dir}") # Set GYP_MSVS_OVERRIDE_PATH and GYP_MSVS_VERSION for actual cl.exe if("$ENV{GYP_MSVS_OVERRIDE_PATH}" STREQUAL "" OR "$ENV{GYP_MSVS_VERSION}" STREQUAL "") execute_process( COMMAND "${vswhere}" -nologo -property resolvedInstallationPath -path "${VCPKG_DETECTED_CMAKE_C_COMPILER}" OUTPUT_VARIABLE msvs_installdir OUTPUT_STRIP_TRAILING_WHITESPACE ) message(STATUS "MSVS resolvedInstallationPath: ${msvs_installdir}") if(NOT EXISTS "${msvs_installdir}") message(FATAL_ERROR "Failed to determine MSVS dir for ${VCPKG_DETECTED_CMAKE_C_COMPILER}.") endif() cygpath_u(vspath "${msvs_installdir}") set(ENV{VSPATH} "${vspath}") set(ENV{GYP_MSVS_OVERRIDE_PATH} "${vspath}") execute_process( COMMAND "${vswhere}" -nologo -property catalog_productLineVersion -path "${VCPKG_DETECTED_CMAKE_C_COMPILER}" OUTPUT_VARIABLE msvs_version OUTPUT_STRIP_TRAILING_WHITESPACE ) message(STATUS "MSVS catalog_productLineVersion: ${msvs_version}") if(NOT msvs_version MATCHES "^20..e?\$") message(FATAL_ERROR "Failed to determine MSVS version for ${VCPKG_DETECTED_CMAKE_C_COMPILER}.") endif() set(ENV{GYP_MSVS_VERSION} "${msvs_version}") endif() endif() endif() x_vcpkg_pkgconfig_get_modules(PREFIX PC_NSPR MODULES nspr CFLAGS LIBS) x_vcpkg_pkgconfig_get_modules(PREFIX PC_SQLITE MODULES sqlite3 CFLAGS LIBS) x_vcpkg_pkgconfig_get_modules(PREFIX PC_ZLIB MODULES zlib CFLAGS LIBS) # Produce absolute include dirs and library dirs filepaths. # Manually managing MSVC syntax because gyp converts foo.lib as if it were a relative path. foreach(key IN ITEMS NSPR_CFLAGS_RELEASE SQLITE_CFLAGS_RELEASE ZLIB_CFLAGS_RELEASE) separate_arguments(cflags UNIX_COMMAND "${PC_${key}}") string(REPLACE "CFLAGS_RELEASE" "INCLUDE_DIRS" out_var "${key}") set(${out_var} "") foreach(item IN LISTS cflags) if(item MATCHES "^-I(.*)") cmake_path(SET dir NORMALIZE "${CMAKE_MATCH_1}") if(CMAKE_HOST_WIN32) cygpath_u(dir "${dir}") else() endif() list(APPEND ${out_var} "${dir}") endif() endforeach() list(JOIN ${key}_INCLUDE_DIRS ":" ${key}_INCLUDE_DIRS) endforeach() foreach(out_var IN ITEMS NSPR_LIBS_RELEASE NSPR_LIBS_DEBUG SQLITE_LIBS_RELEASE SQLITE_LIBS_DEBUG ZLIB_LIBS_RELEASE ZLIB_LIBS_DEBUG) separate_arguments(libs UNIX_COMMAND "${PC_${out_var}}") set(${out_var} "") foreach(item IN LISTS libs) if(item MATCHES "^-L(.*)") cmake_path(SET dir NORMALIZE "${CMAKE_MATCH_1}") if(CMAKE_HOST_WIN32) cygpath_u(dir "${dir}") endif() if(VCPKG_DETECTED_MSVC) list(APPEND ${out_var} "-LIBPATH:${dir}") else() list(APPEND ${out_var} "-L${dir}") endif() elseif(item MATCHES "^-l(.*)") list(APPEND ${out_var} "${item}") endif() endforeach() endforeach() # configuring and building in an autotools-like environment, but using gyp-next and ninja vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE DISABLE_DEFAULT_OPTIONS DISABLE_MSVC_WRAPPERS DISABLE_MSVC_TRANSFORMATIONS OPTIONS -g -v -j "${VCPKG_CONCURRENCY}" ${OPTIONS} -Ddisable_tests=1 -Ddisable_werror=1 -Dsign_libs=0 -Duse_system_sqlite=1 -Duse_system_zlib=1 "--with-nspr=${NSPR_INCLUDE_DIRS}:" "-Dsqlite_include_dirs=${SQLITE_INCLUDE_DIRS}" "-Dzlib_include_dirs=${ZLIB_INCLUDE_DIRS}" OPTIONS_DEBUG "-Dnspr_libs=${NSPR_LIBS_DEBUG}" "-Dsqlite_libs=${SQLITE_LIBS_DEBUG}" "-Dzlib_libs=${ZLIB_LIBS_DEBUG}" OPTIONS_RELEASE --opt "-Dnspr_libs=${NSPR_LIBS_RELEASE}" "-Dsqlite_libs=${SQLITE_LIBS_RELEASE}" "-Dzlib_libs=${ZLIB_LIBS_RELEASE}" ) if(NOT VCPKG_BUILD_TYPE) set(label "${TARGET_TRIPLET}-dbg") set(binary_dir "${CURRENT_BUILDTREES_DIR}/${label}") message(STATUS "Installing ${label} ...") file(COPY "${binary_dir}/dist/Debug/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug" FILES_MATCHING REGEX "[.](a|dylib|lib|so([.][0-9]+)*)\$" ) file(GLOB runtime_debug "${binary_dir}/dist/Debug/lib/*.dll" "${binary_dir}/dist/Debug/lib/*.pdb") if(NOT runtime_debug STREQUAL "") file(COPY ${runtime_debug} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() set(label "${TARGET_TRIPLET}-rel") set(binary_dir "${CURRENT_BUILDTREES_DIR}/${label}") message(STATUS "Installing ${label} ...") file(COPY "${binary_dir}/dist/Release/lib" DESTINATION "${CURRENT_PACKAGES_DIR}" FILES_MATCHING REGEX "[.](a|dylib|lib|so([.][0-9]+)*)\$" ) file(GLOB runtime_release "${binary_dir}/dist/Release/lib/*.dll" "${binary_dir}/dist/Release/lib/*.pdb") if(NOT runtime_release STREQUAL "") file(COPY ${runtime_release} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() file(COPY "${binary_dir}/dist/public/nss" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${binary_dir}/dist/private/nss/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/nss/private") file(READ "${SOURCE_PATH}/nss/pkg/pkg-config/nss.pc.in" pkgconfig) string(REPLACE "%exec_prefix%" "\${prefix}" pkgconfig "${pkgconfig}") string(REPLACE "%libdir%" "\${prefix}/lib" pkgconfig "${pkgconfig}") string(REPLACE "%includedir%" "\${prefix}/include/nss" pkgconfig "${pkgconfig}") string(REPLACE "%NSS_VERSION%" "${VERSION}" pkgconfig "${pkgconfig}") string(REPLACE "%NSPR_VERSION%" "4.36" pkgconfig "${pkgconfig}") string(APPEND pkgconfig "Requires.private: sqlite3\n") file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/nss.pc" "${pkgconfig}") if(NOT VCPKG_BUILD_TYPE) file(WRITE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/nss.pc" "${pkgconfig}") endif() vcpkg_fixup_pkgconfig() vcpkg_copy_tools( TOOL_NAMES "certutil" "cmsutil" "crlutil" "hw-support" "modutil" "nss" "pk12util" "pwdecrypt" "shlibsign" "signtool" "signver" "ssltap" "symkeyutil" "validation" SEARCH_DIR "${binary_dir}/dist/Release/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/nss/COPYING") ================================================ FILE: ports/nss/vcpkg.json ================================================ { "name": "nss", "version": "3.113.1", "port-version": 1, "description": "Network Security Services from Mozilla", "homepage": "https://ftp.mozilla.org/pub/security/nss/releases/", "license": "MPL-2.0", "supports": "!arm32 & !(arm & windows)", "dependencies": [ "nspr", { "name": "sqlite3", "default-features": false }, { "name": "vcpkg-cmake-get-vars", "host": true, "platform": "windows & !mingw" }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-make", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ] } ================================================ FILE: ports/nsync/add-include-chrono.patch ================================================ diff --git a/platform/c++11/platform.h b/platform/c++11/platform.h index 2c80e0b..1468fab 100644 --- a/platform/c++11/platform.h +++ b/platform/c++11/platform.h @@ -16,6 +16,7 @@ #define NSYNC_PLATFORM_CPP11_PLATFORM_H_ /* These C header files are in "C compatibility headers" in C++11. */ +#include #include #include #include ================================================ FILE: ports/nsync/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fcc3f41..18859e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,9 @@ function (set_cpp_target tgtname files) "${PROJECT_SOURCE_DIR}/platform/c++11.futex" ) endif () + + target_include_directories("${tgtname}" PUBLIC $) + target_compile_definitions ("${tgtname}" PRIVATE "${NSYNC_CPP_DEFINITIONS}") @@ -88,7 +91,7 @@ if ("${CMAKE_C_COMPILER_ID}X" STREQUAL "MSVCX") endif () # Pick the include directory for the operating system. -if ("${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsX") +if ("${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsX" OR "${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsStoreX") include_directories ("${PROJECT_SOURCE_DIR}/platform/win32") set (NSYNC_CPP_FLAGS "/TP") @@ -232,7 +235,7 @@ elseif (("${CMAKE_SYSTEM_PROCESSOR}X" STREQUAL "ppc64X")) endif () # Windows uses some include files from the posix directory also. -if ("${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsX") +if ("${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsX" OR "${CMAKE_SYSTEM_NAME}X" STREQUAL "WindowsStoreX") include_directories ("${PROJECT_SOURCE_DIR}/platform/posix") endif () ================================================ FILE: ports/nsync/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/nsync REF "${VERSION}" SHA512 fdcd61eb686ca6d6804d82837fcd33ddee54d6b2aeb7bc20cdff8c5bd2a75f87b724f72c7e835459a1a82ee8bed3d6da5e4c111b3bca22545c6e037f129839f2 HEAD_REF master PATCHES fix-install.patch add-include-chrono.patch # https://github.com/google/nsync/pull/25 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNSYNC_ENABLE_TESTS=OFF ) vcpkg_cmake_build() vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nsync_cpp PACKAGE_NAME nsync_cpp DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nsync) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nsync/vcpkg.json ================================================ { "name": "nsync", "version": "1.30.0", "description": "nsync is a C library that exports various synchronization primitives, such as mutexes", "homepage": "https://github.com/google/nsync", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nt-wrapper/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustasMasiulis/nt_wrapper REF 6a150292a43f6aea35918a5c5e93a66c334ea301 SHA512 fb8a1c4c934d3cb48a76a935ba69fd51ec2e6b66f5c265a8da9456691f933c6080057fec9a714f252c39d02525603b993cecd905452598058254ac9318655c4f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/nt-wrapper/vcpkg.json ================================================ { "name": "nt-wrapper", "version-date": "2019-08-10", "port-version": 3, "description": "A header only wrapper library around native windows system APIs", "homepage": "https://github.com/JustasMasiulis/nt_wrapper", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ntf-core/dont-use-lib64.patch ================================================ diff --git a/repository.cmake b/repository.cmake index f02ba90..4dbd81f 100644 --- a/repository.cmake +++ b/repository.cmake @@ -3151,11 +3151,7 @@ function (ntf_adapter_end) set(target_output_name "${target}") endif() - if (${is_64_bit} AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") - set(lib_name "lib64" CACHE INTERNAL "") - else() - set(lib_name "lib" CACHE INTERNAL "") - endif() + set(lib_name "lib" CACHE INTERNAL "") # Set the relative path to the library directory under the prefix. For # example: lib64 @@ -4028,11 +4024,7 @@ function (ntf_group_end) set(target_output_name "${target}") endif() - if (${is_64_bit} AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") - set(lib_name "lib64" CACHE INTERNAL "") - else() - set(lib_name "lib" CACHE INTERNAL "") - endif() + set(lib_name "lib" CACHE INTERNAL "") # Set the relative path to the library directory under the prefix. For # example: lib64 ================================================ FILE: ports/ntf-core/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bloomberg/ntf-core REF "${VERSION}" SHA512 f30ffc438c656e5bbababa87c8dfe40ac35ffd0962b6fba26c41246aeedc883a4949a3c19ee941cf9d7a54c504d8feb3dcd46b2eb9f4078dcb91e8cb4c60d614 HEAD_REF main PATCHES dont-use-lib64.patch ) # ntf-core requires debugger information to for dev tooling purposes, so we just fake it vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DNTF_BUILD_WITH_USAGE_EXAMPLES=0" "-DNTF_TOOLCHAIN_DEBUGGER_PATH=NOT-FOUND" -DNTF_BUILD_SYSTEM=ON ) vcpkg_cmake_build() vcpkg_cmake_install() function(fix_pkgconfig_ufid lib_dir ufid pc_name) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${lib_dir}/pkgconfig/${pc_name}.pc" "/${ufid}" "") if ("${ufid}" MATCHES opt) set(build_mode "release") else() set(build_mode "debug") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/${lib_dir}/cmake/${pc_name}/${pc_name}-Targets-${build_mode}.cmake" "/${ufid}" "") endfunction() function(fix_install_dir lib_dir ufid) message(STATUS "Fixing ufid layout for ${CURRENT_PACKAGES_DIR}/${lib_dir}/${ufid}") file(RENAME "${CURRENT_PACKAGES_DIR}/${lib_dir}/${ufid}" "${CURRENT_PACKAGES_DIR}/tmp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/${lib_dir}") file(RENAME "${CURRENT_PACKAGES_DIR}/tmp" "${CURRENT_PACKAGES_DIR}/${lib_dir}") fix_pkgconfig_ufid("${lib_dir}" "${ufid}" "nts") fix_pkgconfig_ufid("${lib_dir}" "${ufid}" "ntc") endfunction() fix_install_dir("lib" "opt_exc_mt") fix_install_dir("debug/lib" "dbg_exc_mt") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake" PACKAGE_NAME nts) file(RENAME "${CURRENT_PACKAGES_DIR}/share/nts" "${CURRENT_PACKAGES_DIR}/share/nts_original") file(RENAME "${CURRENT_PACKAGES_DIR}/share/nts_original/ntc" "${CURRENT_PACKAGES_DIR}/share/ntc") file(RENAME "${CURRENT_PACKAGES_DIR}/share/nts_original/nts" "${CURRENT_PACKAGES_DIR}/share/nts") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/nts_original") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() # Usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/ntf-core/usage ================================================ The package ntf-core provides the CMake targets: # Blocking and non-blocking sockets for network programming find_package(nts CONFIG REQUIRED) target_link_libraries(main PRIVATE nts) # Asynchronous sockets, timers, event loops, and thread pools for network programming find_package(ntc CONFIG REQUIRED) target_link_libraries(main PRIVATE ntc) ================================================ FILE: ports/ntf-core/vcpkg.json ================================================ { "name": "ntf-core", "version": "2.5.4", "description": "The Network Transport Framework: Core Libraries", "license": "Apache-2.0", "dependencies": [ "bde", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nu-book-zxing-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zxing-cpp/zxing-cpp REF "v${VERSION}" SHA512 be1c60a6b433c18f8dab56619553023370bfd3eddf49b0e16548466e1ebc2f1f37b48e0b36c2e74296a7274c4f0117d7052f1ffd7d1223d23e493451a11b4a80 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/ZXing PACKAGE_NAME ZXing ) file(READ "${CURRENT_PACKAGES_DIR}/share/ZXing/ZXingConfig.cmake" _contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/ZXing/ZXingConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(Threads) ${_contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/nu-book-zxing-cpp/vcpkg.json ================================================ { "name": "nu-book-zxing-cpp", "version": "2.3.0", "description": "Barcode detection and decoding library.", "homepage": "https://github.com/zxing-cpp/zxing-cpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nuklear/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(Nuklear LANGUAGES C) option(INSTALL_EXAMPLE "Install the example code" OFF) option(INSTALL_DEMO "Install the demo code" OFF) add_library(nuklear INTERFACE) target_include_directories(nuklear INTERFACE $) target_compile_definitions(nuklear INTERFACE NK_IMPLEMENTATION) # Installation install( TARGETS nuklear EXPORT unofficial-nuklear RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES "${CMAKE_CURRENT_LIST_DIR}/nuklear.h" DESTINATION "include/nuklear") install(EXPORT unofficial-nuklear FILE unofficial-nuklear-config.cmake DESTINATION share/unofficial-nuklear) if (INSTALL_EXAMPLE) install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/example" DESTINATION share/nuklear) endif() if (INSTALL_DEMO) install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/demo" DESTINATION share/nuklear) endif() ================================================ FILE: ports/nuklear/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Immediate-Mode-UI/Nuklear REF "${VERSION}" SHA512 d35fb45ad8e940773f402cc6e5a5cb7bd70b61125a5ab057db554d02eeba4c80cdc205fd1a63f3143a9a0c0db55376feb05ada32253e6de6e9559b7f0f6bce34 HEAD_REF master ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES example INSTALL_EXAMPLE demo INSTALL_DEMO ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-nuklear) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/src/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nuklear/vcpkg.json ================================================ { "name": "nuklear", "version": "4.13.2", "description": "This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain", "homepage": "https://github.com/Immediate-Mode-UI/Nuklear", "license": "Unlicense OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "demo": { "description": "Install demo files" }, "example": { "description": "Install example files" } } } ================================================ FILE: ports/numactl/pkgconfig.diff ================================================ diff --git a/numa.pc.in b/numa.pc.in index cc04d50..78f319d 100644 --- a/numa.pc.in +++ b/numa.pc.in @@ -8,4 +8,4 @@ Description: NUMA policy library Version: @VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lnuma -Libs.Private: @LIBS@ +Libs.private: @LIBS@ ================================================ FILE: ports/numactl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO numactl/numactl REF "v${VERSION}" SHA512 a9aa93bdc6333b620c10ff3573d6ff645ab54beece75e67be8cdddb27d062cc56cea34db342005a171877f85f05eb1d24e43f8466be907ba3b7c8b1f897cd954 HEAD_REF master PATCHES pkgconfig.diff ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md" "${SOURCE_PATH}/LICENSE.LGPL2.1" "${SOURCE_PATH}/LICENSE.GPL2") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" ".*# License" "# License" REGEX) ================================================ FILE: ports/numactl/vcpkg.json ================================================ { "name": "numactl", "version": "2.0.19", "port-version": 1, "description": "NUMA support for Linux", "homepage": "https://github.com/numactl/numactl", "license": null, "supports": "linux", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/numcpp/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dpilger26/NumCpp REF "Version_${VERSION}" SHA512 eb964cc31e8abb32021bd5c55b2a5e3957d375de5d23ce471304a242040f3f9dddc9014d5fc23a6dea45b3701a287e280e3b2db95cfcf1e2b2a707636d0ee9b5 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES boost NUMCPP_NO_USE_BOOST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME NumCpp CONFIG_PATH share/NumCpp/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/numcpp/vcpkg.json ================================================ { "name": "numcpp", "version": "2.16.0", "description": "C++ implementation of the Python Numpy library", "homepage": "https://dpilger26.github.io/NumCpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost": { "description": "Enable use boost", "dependencies": [ "boost-algorithm", "boost-date-time", "boost-endian", "boost-integer", "boost-log", "boost-math", "boost-predef", "boost-python", "boost-random", "boost-type-traits" ] }, "python": { "description": "Interacting with Python with pybind11 interface", "dependencies": [ "boost-python", "pybind11" ] } } } ================================================ FILE: ports/nuraft/fix-build-compatibility-issues.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e5ac72..0fb7c75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,9 +177,7 @@ endif(WITH_CONAN) set(LIBRARIES ${LIBSSL} ${LIBCRYPTO} - ${LIBBOOST_SYSTEM} - ${LIBDL} - ${LIBZ}) + ${LIBBOOST_SYSTEM}) # === Compiler flags === option(USE_PTHREAD_EXIT "Call pthread_exit on server threads" OFF) @@ -335,10 +333,6 @@ add_library(static_lib ${STATIC_LIB_SRC}) add_library(NuRaft::static_lib ALIAS static_lib) set_target_properties(static_lib PROPERTIES OUTPUT_NAME ${LIBRARY_NAME} CLEAN_DIRECT_OUTPUT 1) -add_library(shared_lib SHARED ${STATIC_LIB_SRC}) -add_library(NuRaft::shared_lib ALIAS shared_lib) -set_target_properties(shared_lib PROPERTIES OUTPUT_NAME ${LIBRARY_NAME} CLEAN_DIRECT_OUTPUT 1) - # Include directories are necessary for dependents to use the targets. target_include_directories(static_lib PUBLIC @@ -346,17 +340,25 @@ target_include_directories(static_lib $ ) -target_include_directories(shared_lib - PUBLIC - $ - $ -) - # if (APPLE) # There is no harm in adding libraries; this is required when building with Conan -target_link_libraries(shared_lib ${LIBRARIES}) target_link_libraries(static_lib ${LIBRARIES}) +if(NOT WIN32) + set(TARGET_LIST "shared_lib;static_lib") + add_library(shared_lib SHARED ${STATIC_LIB_SRC}) + add_library(NuRaft::shared_lib ALIAS shared_lib) + set_target_properties(shared_lib PROPERTIES OUTPUT_NAME ${LIBRARY_NAME} CLEAN_DIRECT_OUTPUT 1) + target_include_directories(shared_lib + PUBLIC + $ + $ + ) + target_link_libraries(shared_lib ${LIBRARIES}) +else() + set(TARGET_LIST "static_lib") +endif() + # endif () if(WIN32) set(LIBRARY_OUTPUT_NAME "${LIBRARY_NAME}.lib") @@ -404,7 +406,7 @@ if(CODE_COVERAGE GREATER 0) endif() # === Install Targets === -install(TARGETS shared_lib static_lib +install(TARGETS ${TARGET_LIST} EXPORT nuraft-targets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib diff --git a/src/tracer.hxx b/src/tracer.hxx index ac5f100..e10b30a 100644 --- a/src/tracer.hxx +++ b/src/tracer.hxx @@ -53,7 +53,7 @@ static inline std::string msg_if_given(const char* format, ...) { } // Get rid of newline at the end. - if ((not msg.empty()) && (msg.back() == '\n')) { + if ((!msg.empty()) && (msg.back() == '\n')) { msg.pop_back(); } return msg; ================================================ FILE: ports/nuraft/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eBay/NuRaft REF "v${VERSION}" SHA512 16baaa9921228c48bfee2aa795b0c644228ceeae32430d2782593dd8087978359edcf47e17e551fbf475df22b127097d8d149fc0996c9ade7b5ae7bafd183f62 HEAD_REF master PATCHES fix-build-compatibility-issues.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/NuRaft) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/nuraft/usage ================================================ nuraft provides CMake targets: find_package(NuRaft CONFIG REQUIRED) target_link_libraries(main PRIVATE NuRaft::static_lib) ================================================ FILE: ports/nuraft/vcpkg.json ================================================ { "name": "nuraft", "version": "3.0.0", "description": "C++ implementation of Raft core logic as a replication library.", "homepage": "https://github.com/eBay/NuRaft", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "asio", { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nuspell/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nuspell/nuspell REF "v${VERSION}" SHA512 ab6d9394a55d9a2a347ccae47aeef6a96af70f421ad6ea8f7ac7fde2052790f37fb1c7ec3112daac7600d193430a560cb1915ab6557c9353717f65cb32f13ab8 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DBUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/nuspell) vcpkg_fixup_pkgconfig( # nuspell.pc depends on icu-uc.pc which has -lm specified as private # library. Ignore this -lm, otherwise this function shows error # because it can't find this. -lm is part of glibc on Linux. SYSTEM_LIBRARIES m ) if (BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES nuspell AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/COPYING.LESSER" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nuspell/vcpkg.json ================================================ { "name": "nuspell", "version-semver": "5.1.6", "description": [ "Nuspell is a fast and safe spelling checker software program.", "It is designed for languages with rich morphology and complex word compounding.", "Nuspell is written in modern C++ and it supports Hunspell dictionaries." ], "homepage": "https://nuspell.github.io/", "license": "LGPL-3.0-or-later", "supports": "!xbox", "dependencies": [ "icu", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/nvidia-cutlass/fix-cudnn-path.patch ================================================ diff --git a/cuDNN.cmake b/cuDNN.cmake index 30b58581..fdbc8314 100644 --- a/cuDNN.cmake +++ b/cuDNN.cmake @@ -43,7 +43,8 @@ find_path( $ENV{CUDNN_PATH}/include $ENV{CUDA_PATH}/include ${CUDNN_PATH}/include - /usr/include) + /usr/include + $ENV{CUDNN_PATH}) find_library( _CUDNN_LIBRARY cudnn @@ -61,7 +62,8 @@ find_library( ${CUDNN_PATH}/lib/x64 ${CUDNN_PATH}/lib /usr/lib/x86_64-linux-gnu - /usr/lib) + /usr/lib + $ENV{CUDNN_PATH}) if(_CUDNN_INCLUDE_DIR AND _CUDNN_LIBRARY) ================================================ FILE: ports/nvidia-cutlass/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIA/cutlass REF "v${VERSION}" SHA512 2383901c0118db4d93c6b0618cd2585bf5fc3558ae47801e13bc1916ab1fc106cf2627bd6b8c654334c013a2b45eea9450feadf42156cf23237a0b0d1045395a HEAD_REF main PATCHES fix-cudnn-path.patch ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON_PATH "${PYTHON3}" PATH) vcpkg_add_to_path(PREPEND "${PYTHON_PATH}") vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) list(APPEND CMAKE_MODULE_PATH "${CURRENT_INSTALLED_DIR}/share/cudnn") find_package(CUDNN REQUIRED) get_filename_component(CUDNN_LIBRARY_DIR "${CUDNN_LIBRARIES}" DIRECTORY) set(ENV{CUDNN_PATH} "${CUDNN_LIBRARY_DIR};${CUDNN_INCLUDE_DIRS}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_SUPPRESS_REGENERATION=ON # for some reason it keeps regenerating in Windows "-DCUTLASS_REVISION:STRING=v${VERSION}" -DCUTLASS_NATIVE_CUDA=OFF -DCUTLASS_ENABLE_HEADERS_ONLY=ON -DCUTLASS_ENABLE_TOOLS=ON -DCUTLASS_ENABLE_LIBRARY=OFF -DCUTLASS_ENABLE_PROFILER=OFF -DCUTLASS_ENABLE_PERFORMANCE=OFF -DCUTLASS_ENABLE_TESTS=OFF -DCUTLASS_ENABLE_GTEST_UNIT_TESTS=OFF -DCUTLASS_ENABLE_CUBLAS=ON -DCUTLASS_ENABLE_CUDNN=ON "-DPython3_EXECUTABLE:FILEPATH=${PYTHON3}" ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CUTLASS_NATIVE_CUDA ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/NvidiaCutlass" PACKAGE_NAME "NvidiaCutlass") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/test" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/nvidia-cutlass/vcpkg.json ================================================ { "name": "nvidia-cutlass", "version": "4.3.5", "description": "CUDA Templates for Linear Algebra Subroutines", "homepage": "https://github.com/NVIDIA/cutlass", "license": "BSD-3-Clause", "dependencies": [ "cuda", "cudnn", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/nvtt/001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch ================================================ diff --git a/src/nvconfig.h.in b/src/nvconfig.h.in index 16da646..ada6be0 100644 --- a/src/nvconfig.h.in +++ b/src/nvconfig.h.in @@ -1,7 +1,11 @@ #ifndef NV_CONFIG #define NV_CONFIG +#if NV_OS_DARWIN & !NV_OS_IOS +#cmakedefine01 HAVE_UNISTD_H +#else #cmakedefine HAVE_UNISTD_H +#endif #cmakedefine HAVE_STDARG_H #cmakedefine HAVE_SIGNAL_H #cmakedefine HAVE_EXECINFO_H ================================================ FILE: ports/nvtt/add-compile-options-for-osx.patch ================================================ diff --git a/src/nvtt/CMakeLists.txt b/src/nvtt/CMakeLists.txt index 9688c9c..42942c0 100644 --- a/src/nvtt/CMakeLists.txt +++ b/src/nvtt/CMakeLists.txt @@ -47,6 +47,10 @@ ADD_DEFINITIONS(-DNVTT_EXPORTS) #ADD_DEFINITIONS(-DHAVE_RGETC) #ADD_DEFINITIONS(-DHAVE_ETCPACK) +if(APPLE) + add_compile_options(-mbmi2 -mfma) +endif() + IF(NVTT_SHARED) ADD_LIBRARY(nvtt SHARED ${NVTT_SRCS}) ELSE(NVTT_SHARED) ================================================ FILE: ports/nvtt/bc6h.patch ================================================ diff --git a/src/bc6h/CMakeLists.txt b/src/bc6h/CMakeLists.txt index fd75e74..b392d90 100644 --- a/src/bc6h/CMakeLists.txt +++ b/src/bc6h/CMakeLists.txt @@ -15,3 +15,8 @@ SET(BC6H_SRCS ADD_LIBRARY(bc6h STATIC ${BC6H_SRCS}) TARGET_LINK_LIBRARIES(bc6h nvcore nvmath) + +INSTALL(TARGETS bc6h + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib/static) ================================================ FILE: ports/nvtt/bc7.patch ================================================ diff --git a/src/bc7/CMakeLists.txt b/src/bc7/CMakeLists.txt index 566fe1f..d0d4e8a 100644 --- a/src/bc7/CMakeLists.txt +++ b/src/bc7/CMakeLists.txt @@ -23,3 +23,8 @@ SET(BC7_SRCS ADD_LIBRARY(bc7 STATIC ${BC7_SRCS}) TARGET_LINK_LIBRARIES(bc7 nvcore nvmath) + +INSTALL(TARGETS bc7 + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib/static) \ No newline at end of file ================================================ FILE: ports/nvtt/fix-build-error.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 668cd7e..72d6e61 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,9 +7,17 @@ SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${NV_CMAKE_DIR}") # Compiler check (needs -std:c++11 flag) include(CheckCXXCompilerFlag) +if(MSVC) +CHECK_CXX_COMPILER_FLAG("/std:c++14" COMPILER_SUPPORTS_CXX14) +else() CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) -if(COMPILER_SUPPORTS_CXX11) +endif() +if(COMPILER_SUPPORTS_CXX11 OR COMPILER_SUPPORTS_CXX14) + if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_STANDARD 11) + else() + set(CMAKE_CXX_STANDARD 14) + endif() set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) else() diff --git a/extern/CMP_Core/source/cmp_math_func.h b/extern/CMP_Core/source/cmp_math_func.h index c2f8908..b652497 100644 --- a/extern/CMP_Core/source/cmp_math_func.h +++ b/extern/CMP_Core/source/cmp_math_func.h @@ -32,6 +32,7 @@ // Core API which have have GPU equivalents, defined here for HPC_CPU usage //============================================================================ +#include #include using namespace std; diff --git a/src/nvtt/CMakeLists.txt b/src/nvtt/CMakeLists.txt index 8285f99..9688c9c 100644 --- a/src/nvtt/CMakeLists.txt +++ b/src/nvtt/CMakeLists.txt @@ -63,5 +63,5 @@ INSTALL(TARGETS nvtt INSTALL(FILES nvtt.h nvtt_wrapper.h DESTINATION include/nvtt) -ADD_SUBDIRECTORY(tools) -ADD_SUBDIRECTORY(tests) +#ADD_SUBDIRECTORY(tools) +#ADD_SUBDIRECTORY(tests) ================================================ FILE: ports/nvtt/fix-intrinsic-function.patch ================================================ diff --git a/src/nvmath/nvmath.h b/src/nvmath/nvmath.h index 38532eb..e68d8f8 100644 --- a/src/nvmath/nvmath.h +++ b/src/nvmath/nvmath.h @@ -118,12 +118,12 @@ inline float asinf_assert(const float f) #endif #if NV_CC_MSVC -NV_FORCEINLINE float log2f(float x) +NV_FORCEINLINE float nv_log2f(float x) { nvCheck(x >= 0); return logf(x) / logf(2.0f); } -NV_FORCEINLINE float exp2f(float x) +NV_FORCEINLINE float nv_exp2f(float x) { return powf(2.0f, x); } ================================================ FILE: ports/nvtt/fix-release-flags.patch ================================================ diff --git a/cmake/OptimalOptions.cmake b/cmake/OptimalOptions.cmake index e4d5c56..eba8624 100644 --- a/cmake/OptimalOptions.cmake +++ b/cmake/OptimalOptions.cmake @@ -11,8 +11,8 @@ IF(MSVC) # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2 /fp:fast") # Optimization flags. - SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} /O2 /Ob2 /Oi /Ot /Oy /GL") - SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} /O2 /Ob2 /Oi /Ot /Oy /GL") + SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /O2 /Ob2 /Oi /Ot /Oy /GL") + SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /Ob2 /Oi /Ot /Oy /GL") SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG") SET(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG") ================================================ FILE: ports/nvtt/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO castano/nvidia-texture-tools REF b1a90f36013522b9e5a3a2197859b72188752e3f # 2.1.2 SHA512 13cf04a9856f150f7569c8c256c42fc6a5bc40586c9ca2b3ae553edf5bfcbccbba5b8538924079ed35effdd07b9e3ef4bfdb9733a2ec51f5a95f958885cc6cca HEAD_REF master PATCHES 001-define-value-for-HAVE_UNISTD_H-in-mac-os.patch bc6h.patch bc7.patch squish.patch fix-build-error.patch add-compile-options-for-osx.patch skip-building-libsquish.patch fix-intrinsic-function.patch fix-release-flags.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda CMAKE_REQUIRE_FIND_PACKAGE_CUDA INVERTED_FEATURES cuda CMAKE_DISABLE_FIND_PACKAGE_CUDA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNVTT_SHARED=0 ${FEATURE_OPTIONS} OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=_d # required by OSG ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(REMOVE "${CURRENT_PACKAGES_DIR}/share/doc/nvtt/LICENSE") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/nvtt/skip-building-libsquish.patch ================================================ diff --git a/extern/CMakeLists.txt b/extern/CMakeLists.txt index 911c19e..6f13de4 100644 --- a/extern/CMakeLists.txt +++ b/extern/CMakeLists.txt @@ -5,7 +5,6 @@ ADD_SUBDIRECTORY(EtcLib) ADD_SUBDIRECTORY(rg_etc1_v104) #ADD_SUBDIRECTORY(etcpack) -ADD_SUBDIRECTORY(libsquish-1.15) +#ADD_SUBDIRECTORY(libsquish-1.15) ADD_SUBDIRECTORY(CMP_Core) - ================================================ FILE: ports/nvtt/squish.patch ================================================ diff --git a/src/nvtt/squish/CMakeLists.txt b/src/nvtt/squish/CMakeLists.txt index 65a5dd3..d093ce5 100644 --- a/src/nvtt/squish/CMakeLists.txt +++ b/src/nvtt/squish/CMakeLists.txt @@ -21,3 +21,8 @@ SET(SQUISH_SRCS simd_ve.h) ADD_LIBRARY(nvsquish STATIC ${SQUISH_SRCS}) + +INSTALL(TARGETS nvsquish + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib/static) \ No newline at end of file ================================================ FILE: ports/nvtt/vcpkg.json ================================================ { "name": "nvtt", "version": "2.1.2", "port-version": 9, "description": "Texture processing tools with support for Direct3D 10 and 11 formats.", "homepage": "https://github.com/castano/nvidia-texture-tools", "license": "MIT", "supports": "!android & !uwp & !arm", "dependencies": [ "libsquish", { "name": "vcpkg-cmake", "host": true } ], "features": { "cuda": { "description": "Enable CUDA support", "dependencies": [ "cuda" ] } } } ================================================ FILE: ports/nyan-lang/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SFTtech/nyan REF "v${VERSION}" SHA512 2549e69f88f42b00bc9618c24031d5ff9588eb9249c973bc5eedb51634be619ad0e7118f1fb7f3abb31553763c0c95ce222e0f95f8e628e7b453b5c862b6bb7c HEAD_REF master ) vcpkg_find_acquire_program(FLEX) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DFLEX_EXECUTABLE=${FLEX}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) vcpkg_copy_tools(TOOL_NAMES nyancat AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/copying.md" "${SOURCE_PATH}/legal/LGPLv3" "${SOURCE_PATH}/legal/GPLv3" ) ================================================ FILE: ports/nyan-lang/vcpkg.json ================================================ { "name": "nyan-lang", "version": "0.3.1", "description": "nyan is a data description language, It is a mixture of python, json, patch, wml, yaml and some new ideas.", "homepage": "https://github.com/SFTtech/nyan", "license": "LGPL-3.0-or-later", "supports": "!osx & !static & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp/fix-target.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 13cccc2c..c4a3fe44 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -301,6 +301,7 @@ set_target_properties(oatpp PROPERTIES CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON ) +target_compile_features(oatpp PUBLIC cxx_std_11) if (MSVC) target_compile_options(oatpp PRIVATE /permissive-) endif() ================================================ FILE: ports/oatpp/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp REF "1.3.1" SHA512 2d6aec0a7f298fef19ce77517643388af4f127abe710b619aa17301b1c869b05f05758323370abdcc2eca9c675045f86b185af00b1689e469fc8aa4e02971f92 HEAD_REF master PATCHES fix-target.patch ) if (VCPKG_CRT_LINKAGE STREQUAL "static") set(OATPP_MSVC_LINK_STATIC_RUNTIME TRUE) else() set(OATPP_MSVC_LINK_STATIC_RUNTIME FALSE) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" "-DOATPP_MSVC_LINK_STATIC_RUNTIME=${OATPP_MSVC_LINK_STATIC_RUNTIME}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp CONFIG_PATH lib/cmake/oatpp-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp/vcpkg.json ================================================ { "name": "oatpp", "version": "1.3.1", "description": "Modern web framework.", "homepage": "https://github.com/oatpp/oatpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-consul/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-consul REF ${OATPP_VERSION} SHA512 b7bfff564e70fe94f99e959e8bc095b6cda704764c54e3837fc5f808b610c9197fbd0d601cb481a9cbf0d17fc1dece8d7cce6881a604fccbe63bd9b1c2b871f0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-consul CONFIG_PATH lib/cmake/oatpp-consul-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-consul/vcpkg.json ================================================ { "name": "oatpp-consul", "version": "1.3.0", "port-version": 1, "description": "OAT++ Modern web framework consul module.", "homepage": "https://github.com/oatpp/oatpp-consul", "license": "Apache-2.0", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-curl/fix-find-curl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 85edfe7..a8aa02b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,7 @@ message("## ${OATPP_THIS_MODULE_NAME} module. Resolving dependencies...\n") ############################## ## Find libcurl dependency - +if(0) include(FindPkgConfig) pkg_check_modules(PKG_CURL REQUIRED libcurl) @@ -103,9 +103,10 @@ message("[libcurl] LIBRARIES=${PKG_CURL_LIBRARIES}") message("[libcurl] LIBRARY_DIRS=${PKG_CURL_LIBRARY_DIRS}") message("[libcurl] INCLUDE_DIRS=${PKG_CURL_INCLUDE_DIRS}") message("[libcurl] VERSION=${PKG_CURL_VERSION}\n") - +endif() +find_package(CURL CONFIG REQUIRED) link_directories( - ${PKG_CURL_LIBRARY_DIRS} + CURL::libcurl ) message("\n############################################################################\n") diff --git a/cmake/module-config.cmake.in b/cmake/module-config.cmake.in index 5cc12b0..4ff34bc 100644 --- a/cmake/module-config.cmake.in +++ b/cmake/module-config.cmake.in @@ -1,5 +1,6 @@ @PACKAGE_INIT@ - +include(CMakeFindDependencyMacro) +find_dependency(CURL) if(NOT TARGET oatpp::@OATPP_MODULE_NAME@) include("${CMAKE_CURRENT_LIST_DIR}/@OATPP_MODULE_NAME@Targets.cmake") endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8c2087f..1da41c6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -43,7 +43,7 @@ target_include_directories(${OATPP_THIS_MODULE_NAME} #) target_link_libraries(${OATPP_THIS_MODULE_NAME} - PRIVATE ${PKG_CURL_LIBRARIES} + PRIVATE CURL::libcurl ) ####################################################################################################### ================================================ FILE: ports/oatpp-curl/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-curl REF ${OATPP_VERSION} SHA512 d9437a6b3a214bf0f17561e905709d741cd7d5fcad30ec0cdddeaacb3a72142bf8b24034d13201cd416898ffd0ab07ca50ec66d4025406acee1518ae65dac45e HEAD_REF master PATCHES "fix-find-curl.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-curl CONFIG_PATH lib/cmake/oatpp-curl-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-curl/vcpkg.json ================================================ { "name": "oatpp-curl", "version": "1.3.0", "port-version": 1, "description": "Oat++ Modern web framework curl module to use libcurl as a RequestExecutor on the oatpp's ApiClient.", "homepage": "https://github.com/oatpp/oatpp-curl", "license": "Apache-2.0", "dependencies": [ "curl", "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-libressl/libress-submodule-downgrade-required-libressl-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4663a65..b91077a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,19 +95,25 @@ message("## ${OATPP_THIS_MODULE_NAME} module. Resolving dependencies...\n") ############################## ## Find Libressl dependency -include(FindPkgConfig) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/module") - -find_package(LibreSSL 3.0.0 REQUIRED) - -message("LIBRESSL_INCLUDE_DIR=${LIBRESSL_INCLUDE_DIR}") -message("LIBRESSL_TLS_LIBRARY=${LIBRESSL_TLS_LIBRARY}") -message("LIBRESSL_SSL_LIBRARY=${LIBRESSL_SSL_LIBRARY}") -message("LIBRESSL_CRYPTO_LIBRARY=${LIBRESSL_CRYPTO_LIBRARY}") -message("LIBRESSL_LIBRARIES=${LIBRESSL_LIBRARIES}") -message("LIBRESSL_VERSION=${LIBRESSL_VERSION}") - -message("\n############################################################################\n") +find_file(LIBRESSL_INCLUDE_DIR tls.h) +if (NOT LIBRESSL_INCLUDE_DIR) + find_file(_OPENSSL_SSL_INCLUDE_FILE openssl/ssl.h) + if (NOT _OPENSSL_SSL_INCLUDE_FILE) + message(FATAL_ERROR "LibreSSL and OpenSSL not found. LibreSSL must be installed.") + else() + message(FATAL_ERROR "OpenSSL installed instead of LibreSSL. oatpp-libressl requires LibreSSL.") + endif() +endif() +get_filename_component(LIBRESSL_INCLUDE_DIR ${LIBRESSL_INCLUDE_DIR} DIRECTORY) +find_library(LIBRESSL_TLS_LIBRARY NAMES tls tls-21 tls-20 tls-19) +find_library(LIBRESSL_SSL_LIBRARY NAMES ssl ssl-49 ssl-48 ssl-47) +find_library(LIBRESSL_CRYPTO_LIBRARY NAMES crypto crypto-47 crypto-46 crypto-45) +find_library(LIBRESSL_LIBRARIES "${LIBRESSL_CRYPTO_LIBRARY};${LIBRESSL_SSL_LIBRARY};${LIBRESSL_TLS_LIBRARY}") +message(STATUS "LIBRESSL_INCLUDE_DIR=${LIBRESSL_INCLUDE_DIR}") +message(STATUS "LIBRESSL_TLS_LIBRARY=${LIBRESSL_TLS_LIBRARY}") +message(STATUS "LIBRESSL_SSL_LIBRARY=${LIBRESSL_SSL_LIBRARY}") +message(STATUS "LIBRESSL_CRYPTO_LIBRARY=${LIBRESSL_CRYPTO_LIBRARY}") +message(STATUS "LIBRESSL_LIBRARIES=${LIBRESSL_LIBRARIES}") ################################################################################################### ## define targets diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ace3b13..489fbb1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -30,10 +30,12 @@ target_include_directories(${OATPP_THIS_MODULE_NAME} PUBLIC $ ) +target_include_directories(${OATPP_THIS_MODULE_NAME} + SYSTEM PRIVATE "${LIBRESSL_INCLUDE_DIR}" +) + target_link_libraries(${OATPP_THIS_MODULE_NAME} - PUBLIC LibreSSL::TLS - PUBLIC LibreSSL::SSL - PUBLIC LibreSSL::Crypto + PUBLIC "${LIBRESSL_TLS_LIBRARY}" "${LIBRESSL_SSL_LIBRARY}" "${LIBRESSL_CRYPTO_LIBRARY}" ) ####################################################################################################### ================================================ FILE: ports/oatpp-libressl/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # get the source vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-libressl REF ${OATPP_VERSION} SHA512 8f16c4e0341dc20e4a8a5fcdcf8e58bac1cfbef51b8cac6f5ca4894acf296333fcc2b8f34c6353cbd31a1f2f2be021550ce859489a45f388f4b5ccec4c67eee9 HEAD_REF master PATCHES "libress-submodule-downgrade-required-libressl-version.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" "-DLIBRESSL_ROOT_DIR=${CURRENT_INSTALLED_DIR}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-libressl CONFIG_PATH lib/cmake/oatpp-libressl-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-libressl/vcpkg.json ================================================ { "name": "oatpp-libressl", "version": "1.3.0", "port-version": 1, "description": "Oat++ libressl module providing secure server and client connection providers.", "homepage": "https://github.com/oatpp/oatpp-libressl", "license": "Apache-2.0", "dependencies": [ "libressl", "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-mbedtls/find-mbedtls.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7e81ed9..39b95a9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,9 +31,9 @@ target_include_directories(${OATPP_THIS_MODULE_NAME} ) target_link_libraries(${OATPP_THIS_MODULE_NAME} - PRIVATE mbedtls::TLS - PRIVATE mbedtls::X509 - PRIVATE mbedtls::Crypto + PRIVATE ${MBEDTLS_TLS_LIBRARY} + PRIVATE ${MBEDTLS_X509_LIBRARY} + PRIVATE ${MBEDTLS_CRYPTO_LIBRARY} ) if(${OATPP_MBEDTLS_DEBUG} GREATER 0) ================================================ FILE: ports/oatpp-mbedtls/mbedtls-3.patch ================================================ diff --git a/cmake/module/Findmbedtls.cmake b/cmake/module/Findmbedtls.cmake index 8c76d0a..f0ed1e2 100644 --- a/cmake/module/Findmbedtls.cmake +++ b/cmake/module/Findmbedtls.cmake @@ -160,6 +160,9 @@ if(MBEDTLS_INCLUDE_DIR AND EXISTS "${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h") # Get Version From File file(STRINGS "${MBEDTLS_INCLUDE_DIR}/mbedtls/version.h" VERSIONH REGEX "#define MBEDTLS_VERSION_STRING[ ]+\".*\"") + if(VERSIONH STREQUAL "") + file(STRINGS "${MBEDTLS_INCLUDE_DIR}/mbedtls/build_info.h" VERSIONH REGEX "#define MBEDTLS_VERSION_STRING[ ]+\".*\"") + endif() # Match Version String string(REGEX REPLACE ".*\".*([0-9]+)\\.([0-9]+)\\.([0-9]+)\"" "\\1;\\2;\\3" MBEDTLS_VERSION_LIST "${VERSIONH}") diff --git a/src/oatpp-mbedtls/Config.cpp b/src/oatpp-mbedtls/Config.cpp index 63fe9d4..8d3c9ce 100644 --- a/src/oatpp-mbedtls/Config.cpp +++ b/src/oatpp-mbedtls/Config.cpp @@ -90,7 +90,11 @@ std::shared_ptr Config::createDefaultServerConfigShared(const char* serv throw std::runtime_error("[oatpp::mbedtls::Config::createDefaultServerConfigShared()]: Error. Can't parse serverCertFile"); } +#if MBEDTLS_VERSION_MAJOR < 3 res = mbedtls_pk_parse_keyfile(&result->m_privateKey, privateKeyFile, pkPassword); +#else + res = mbedtls_pk_parse_keyfile(&result->m_privateKey, privateKeyFile, pkPassword, mbedtls_ctr_drbg_random, &result->m_ctr_drbg); +#endif if(res != 0) { OATPP_LOGD("[oatpp::mbedtls::Config::createDefaultServerConfigShared()]", "Error. Can't parse privateKeyFile path='%s', return value=%d", privateKeyFile, res); throw std::runtime_error("[oatpp::mbedtls::Config::createDefaultServerConfigShared()]: Error. Can't parse privateKeyFile"); diff --git a/src/oatpp-mbedtls/Config.hpp b/src/oatpp-mbedtls/Config.hpp index d4d6072..47c1c2d 100644 --- a/src/oatpp-mbedtls/Config.hpp +++ b/src/oatpp-mbedtls/Config.hpp @@ -28,7 +28,9 @@ #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" +#if MBEDTLS_VERSION_MAJOR < 3 #include "mbedtls/certs.h" +#endif #include "mbedtls/x509.h" #include "mbedtls/ssl.h" #include "mbedtls/net_sockets.h" ================================================ FILE: ports/oatpp-mbedtls/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-mbedtls REF ${VERSION} SHA512 3eea805f2a02110daec25b7455543c59d8e72acd37d412fa98cb1c90f58e4edcd9cc62c16331efcca36a524834fa0f314f2f69a7a4d0d1108a758f811a68e021 HEAD_REF master PATCHES find-mbedtls.patch mbedtls-3.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/oatpp-mbedtls-${VERSION}") vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(READ "${CURRENT_PACKAGES_DIR}/share/oatpp-mbedtls/oatpp-mbedtlsConfig.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/oatpp-mbedtls/oatpp-mbedtlsConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(oatpp CONFIG) ${cmake_config}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/oatpp-mbedtls/vcpkg.json ================================================ { "name": "oatpp-mbedtls", "version": "1.3.0", "port-version": 1, "description": "Oat++ Mbed TLS submodule providing secure server and client connection providers.", "homepage": "https://oatpp.io/docs/modules/oatpp-mbedtls/", "license": "Apache-2.0", "dependencies": [ "mbedtls", "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-mongo/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-mongo REF ${OATPP_VERSION} SHA512 11f4164948feb63ed3f5e8554a54348e29cd4d90333761f98c37f4eb49f129c6589955755e8e052c5c29e6b2980f1bb899657415d6480c3ae7a50fc2445afbfe HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-mongo CONFIG_PATH lib/cmake/oatpp-mongo-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-mongo/vcpkg.json ================================================ { "name": "oatpp-mongo", "version": "1.3.0", "port-version": 1, "description": "Oat++ MongoDB adapter for Oat++ ORM (native client). It contains DTO to BSON mapper plus database driver.", "homepage": "https://github.com/oatpp/oatpp-mongo", "license": "Apache-2.0", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-openssl/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # get the source vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-openssl REF ${OATPP_VERSION} SHA512 a358a98e4c7e779c4c799e55667af67530fea537103500bf07b62ee434e87241c8ce3899bd19945a942b81ae9df86e318f0a725a56f4cb7cfceb0f98e3c0378b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-openssl CONFIG_PATH "lib/cmake/oatpp-openssl-${OATPP_VERSION}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-openssl/vcpkg.json ================================================ { "name": "oatpp-openssl", "version-semver": "1.3.0", "description": "Oat++ openssl module providing secure server and client connection providers.", "homepage": "https://github.com/oatpp/oatpp-openssl", "dependencies": [ "oatpp", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-postgresql/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-postgresql REF ${OATPP_VERSION} SHA512 6926194ae7d77db2a071fcb805ce048954908cf18d59f3095e1bf779748d9e5b9ceb657d97b1fc8a6ebfcf71936b211e2b10e68a62983e847c68ab58e1f3f2ba HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-postgresql CONFIG_PATH lib/cmake/oatpp-postgresql-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-postgresql/vcpkg.json ================================================ { "name": "oatpp-postgresql", "version": "1.3.0", "port-version": 1, "description": "Oat++ PostgreSQL adapter for Oat++ ORM (alpha - not all datatypes are supported).", "homepage": "https://github.com/oatpp/oatpp-postgresql", "license": "Apache-2.0", "dependencies": [ "libpq", "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-sqlite/fix-usage.patch ================================================ diff --git a/cmake/module-config.cmake.in b/cmake/module-config.cmake.in index 5cc12b0..5d94df8 100644 --- a/cmake/module-config.cmake.in +++ b/cmake/module-config.cmake.in @@ -1,5 +1,9 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(oatpp CONFIG) +find_dependency(unofficial-sqlite3 CONFIG) + if(NOT TARGET oatpp::@OATPP_MODULE_NAME@) include("${CMAKE_CURRENT_LIST_DIR}/@OATPP_MODULE_NAME@Targets.cmake") endif() ================================================ FILE: ports/oatpp-sqlite/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-sqlite REF ${OATPP_VERSION} SHA512 8a208145ee10ed858767b4b56c220b6befd83e6858759128103ce679b889e6218a95ed6627af5098e4d26367be8add82de26e1f1f8ef581b1913b8386f9d56de HEAD_REF master PATCHES fix-usage.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" "-DOATPP_SQLITE_AMALGAMATION:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-sqlite CONFIG_PATH lib/cmake/oatpp-sqlite-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/oatpp-sqlite/vcpkg.json ================================================ { "name": "oatpp-sqlite", "version": "1.3.0", "port-version": 2, "description": "Oat++ SQLite adapter for Oat++ ORM.", "homepage": "https://github.com/oatpp/oatpp-sqlite", "license": "Apache-2.0", "dependencies": [ "oatpp", "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-ssdp/fix_String_to_string.patch ================================================ diff --git i/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp w/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp index d351c1e..7c430e9 100644 --- i/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp +++ w/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp @@ -106,7 +106,7 @@ v_io_handle SimpleUdpStreamProvider::instantiateServer() { hints.ai_flags = AI_PASSIVE; auto portStr = oatpp::utils::conversion::int32ToStr(m_port); - ret = getaddrinfo(NULL, (const char*)portStr->getData(), &hints, &result); + ret = getaddrinfo(NULL, (const char*)portStr->c_str(), &hints, &result); if (ret != 0) { OATPP_LOGE("[oatpp::ssdp::SimpleUdpStreamProvider::instantiateServer()]", "Error. Call to getaddrinfo() failed with result=%d: %s", ret, strerror(errno)); throw std::runtime_error("[oatpp::ssdp::SimpleUdpStreamProvider::instantiateServer()]: Error. Call to getaddrinfo() failed."); @@ -233,4 +233,4 @@ provider::ResourceHandle SimpleUdpStreamProvider::get() ); } -}} \ No newline at end of file +}} ================================================ FILE: ports/oatpp-ssdp/fix_win_close.patch ================================================ diff --git i/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp w/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp index d351c1e..f5774bd 100644 --- i/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp +++ w/src/oatpp-ssdp/SimpleUdpStreamProvider.cpp @@ -129,7 +129,7 @@ v_io_handle SimpleUdpStreamProvider::instantiateServer() { ret = bind(serverHandle, result->ai_addr, (int)result->ai_addrlen); if (ret != 0) { - ::close(serverHandle); + ::_close(serverHandle); OATPP_LOGE("[oatpp::ssdp::SimpleUdpStreamProvider::instantiateServer()]", "Error. Failed to bind port %d: %s", m_port, strerror(errno)); throw std::runtime_error("[oatpp::ssdp::SimpleUdpStreamProvider::instantiateServer()]: Error. Can't bind to address: %s"); } @@ -233,4 +233,4 @@ provider::ResourceHandle SimpleUdpStreamProvider::get() ); } -}} \ No newline at end of file +}} ================================================ FILE: ports/oatpp-ssdp/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-ssdp REF ${OATPP_VERSION} SHA512 ab6f10bb79cb058eb7ce4115327e2f2d85133753d02dc2b4339505cc2ed4ef8b6284b5e832d0e190de17b8ae70e0b9a99b1b074d0691ca9a613873e8d4e1ace8 HEAD_REF master PATCHES fix_String_to_string.patch fix_win_close.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-ssdp CONFIG_PATH lib/cmake/oatpp-ssdp-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-ssdp/vcpkg.json ================================================ { "name": "oatpp-ssdp", "version": "1.3.0", "port-version": 1, "description": "Oat++ SSDP (Simple Service Discovery Protocol) submodule.", "homepage": "https://github.com/oatpp/oatpp-ssdp", "license": "Apache-2.0", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-swagger/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-swagger REF "${VERSION}" SHA512 ba4668e3cc90163219a29d61ef5fba2f3565d9f35c2d050723b00706f2ac5bb721d020f1a49a7c9025694ff7c93c3ff7e4318ef4be5bd1438c02a54df72ba1e3 HEAD_REF master ) if (VCPKG_CRT_LINKAGE STREQUAL "static") set(OATPP_MSVC_LINK_STATIC_RUNTIME TRUE) else() set(OATPP_MSVC_LINK_STATIC_RUNTIME FALSE) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" "-DOATPP_MSVC_LINK_STATIC_RUNTIME=${OATPP_MSVC_LINK_STATIC_RUNTIME}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-swagger CONFIG_PATH lib/cmake/oatpp-swagger-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-swagger/vcpkg.json ================================================ { "name": "oatpp-swagger", "version": "1.3.1", "description": "Oat++ OpenApi (Swagger) UI submodule.", "homepage": "https://github.com/oatpp/oatpp-swagger", "license": "Apache-2.0", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-websocket/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-websocket REF ${OATPP_VERSION} SHA512 e5d5f974da4fd95599352d04d18422c74b274be50a803cdb0b65674ebde8dfe8587c44ddb8b376ad866de06841935687be4294ac5954f33f0a087b009da23177 HEAD_REF master ) if (VCPKG_CRT_LINKAGE STREQUAL "static") set(OATPP_MSVC_LINK_STATIC_RUNTIME TRUE) else() set(OATPP_MSVC_LINK_STATIC_RUNTIME FALSE) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" "-DOATPP_MSVC_LINK_STATIC_RUNTIME=${OATPP_MSVC_LINK_STATIC_RUNTIME}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-websocket CONFIG_PATH lib/cmake/oatpp-websocket-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-websocket/vcpkg.json ================================================ { "name": "oatpp-websocket", "version": "1.3.0", "description": "Oat++ websocket module.", "homepage": "https://github.com/oatpp/oatpp-websocket", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oatpp-zlib/fix-usage.patch ================================================ diff --git a/cmake/module-utils.cmake b/cmake/module-utils.cmake index 8f1d35a..cade49d 100644 --- a/cmake/module-utils.cmake +++ b/cmake/module-utils.cmake @@ -5,7 +5,7 @@ macro(target_link_oatpp target) message("target_link_oatpp(${target}) to installed oatpp lib") target_link_libraries(${target} - PRIVATE oatpp::oatpp + PUBLIC oatpp::oatpp PRIVATE oatpp::oatpp-test ) ================================================ FILE: ports/oatpp-zlib/missing-find_dependency.patch ================================================ diff --git a/cmake/module-config.cmake.in b/cmake/module-config.cmake.in index 5cc12b0..71f8f10 100644 --- a/cmake/module-config.cmake.in +++ b/cmake/module-config.cmake.in @@ -1,5 +1,9 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(oatpp) +find_dependency(ZLIB) + if(NOT TARGET oatpp::@OATPP_MODULE_NAME@) include("${CMAKE_CURRENT_LIST_DIR}/@OATPP_MODULE_NAME@Targets.cmake") endif() ================================================ FILE: ports/oatpp-zlib/portfile.cmake ================================================ set(OATPP_VERSION "1.3.0") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oatpp/oatpp-zlib REF ${OATPP_VERSION} SHA512 574f0440cbb2cd2bc14ad89e33538a1a300ad23ecc941629b74aa8ccb9aeae5158b1b57e2f1af09d7a6b9b97430a5685354677002dab2261120afa9c6ea74381 HEAD_REF master PATCHES missing-find_dependency.patch fix-usage.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOATPP_BUILD_TESTS:BOOL=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME oatpp-zlib CONFIG_PATH lib/cmake/oatpp-zlib-${OATPP_VERSION}) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oatpp-zlib/vcpkg.json ================================================ { "name": "oatpp-zlib", "version": "1.3.0", "port-version": 2, "description": "Oat++ functionality for automatically compressing/decompressing content with deflate and gzip.", "homepage": "https://github.com/oatpp/oatpp-zlib", "license": "Apache-2.0", "dependencies": [ "oatpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/obfuscxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nevergiveupcpp/obfuscxx REF v${VERSION} SHA512 78f12676dce516847650fd06a4f5e745cb02c0877285ec135890c295978726741ba658e4bf543779384b6fa88bd1003b4be3f8290f69dd5cb554da715e6e4972 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/obfuscxx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/obfuscxx/vcpkg.json ================================================ { "name": "obfuscxx", "version": "1.3.1", "description": "Header-only compile-time variables obfuscation library for C++20", "homepage": "https://github.com/nevergiveupcpp/obfuscxx", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oboe/fix_install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3e3af59..aeac85d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,8 +94,8 @@ target_link_libraries(oboe PRIVATE log OpenSLES) # When installing oboe put the libraries in the lib/ folder e.g. lib/arm64-v8a install(TARGETS oboe - LIBRARY DESTINATION lib/${ANDROID_ABI} - ARCHIVE DESTINATION lib/${ANDROID_ABI}) + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) # Also install the headers install(DIRECTORY include/oboe DESTINATION include) ================================================ FILE: ports/oboe/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/oboe REF ${VERSION} SHA512 ce4011afe7345370d4ead3b891cd69a5ef224b129535783586c0ca75051d303ed446e6c7f10bde8da31fff58d6e307f1732a3ffd03b249f9ef1fd48fd4132715 HEAD_REF master PATCHES fix_install.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/oboe/vcpkg.json ================================================ { "name": "oboe", "version": "1.10.0", "description": "Oboe is a C++ library which makes it easy to build high-performance audio apps on Android", "homepage": "https://developer.android.com/games/sdk/oboe", "license": "Apache-2.0", "supports": "android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/observer-ptr-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/observer-ptr-lite REF v0.4.0 SHA512 4e53d8e0ce595604880bda423440071e7c207dd63e7b6bfa09cc7a870a010f09c51c31e640142c565ce261c4911acab13c6e9f5970853ad8fc2da3e4034ab7d7 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNSOP_OPT_BUILD_TESTS=OFF -DNSOP_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/${PORT} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/observer-ptr-lite/vcpkg.json ================================================ { "name": "observer-ptr-lite", "version": "0.4.0", "port-version": 3, "description": "A C++17-like observer_ptr for C++98 and later in a single-file header-only library", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ocilib/fix-DisableWC4191.patch ================================================ diff --git a/proj/dll/ocilib_dll.vcxproj b/proj/dll/ocilib_dll.vcxproj index 1caf1d3..b7d36ea 100644 --- a/proj/dll/ocilib_dll.vcxproj +++ b/proj/dll/ocilib_dll.vcxproj @@ -116,7 +116,7 @@ EnableAllWarnings - true + false CompileAsC @@ -173,7 +173,7 @@ CompileAsC 4255;4668;4996;4710;4711;4738;4774;4820;5045 - true + false OCI_CHARSET_ANSI;%(PreprocessorDefinitions) @@ -223,7 +223,7 @@ CompileAsC 4255;4668;4996;4710;4711;4738;4774;4820;5045 - true + false OCI_CHARSET_WIDE;%(PreprocessorDefinitions) @@ -276,7 +276,7 @@ CompileAsC 4255;4668;4996;4710;4711;4738;4774;4820;5045 - true + false OCI_CHARSET_WIDE;%(PreprocessorDefinitions) ================================================ FILE: ports/ocilib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vrogier/ocilib REF "v${VERSION}" SHA512 1205f333fa7fa6c813dfbb93fefcec5203110ee0dc1c5d52b4f67df9e8fd5894b94e1f0f87cff79f6ad1d33dffbc9faa6535b7bf81ab36bb742cb4fd2dc5d966 HEAD_REF master PATCHES fix-DisableWC4191.patch ) if(VCPKG_TARGET_IS_WINDOWS) # There is no debug configuration # As it is a C library, build the release configuration and copy its output to the debug folder set(VCPKG_BUILD_TYPE release) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH proj/dll/ocilib_dll.sln RELEASE_CONFIGURATION "Release - ANSI" PLATFORM ${VCPKG_TARGET_ARCHITECTURE} ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug") file(COPY "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") endif() else() vcpkg_make_configure( COPY_SOURCE AUTORECONF SOURCE_PATH "${SOURCE_PATH}" OPTIONS --with-oracle-import=runtime ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(RENAME "${CURRENT_PACKAGES_DIR}/share/doc/${PORT}" "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ocilib/vcpkg.json ================================================ { "name": "ocilib", "version": "4.8.0", "port-version": 1, "description": "OCILIB is an open source and cross platform Oracle Driver that delivers efficient access to Oracle databases.", "homepage": "https://vrogier.github.io/ocilib/", "license": "Apache-2.0", "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "vcpkg-make", "host": true, "platform": "!windows" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/octave/add_other_linkage_flags.patch ================================================ diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 index 0f5042422d..05ac0178ea 100644 --- a/m4/acinclude.m4 +++ b/m4/acinclude.m4 @@ -963,7 +963,7 @@ AC_DEFUN([OCTAVE_CHECK_LIB], [ if test -z "$m4_toupper([$1])_LDFLAGS"; then m4_toupper([$1])_LDFLAGS="$($PKG_CONFIG --libs-only-L m4_default([$9], [$1]) | $SED -e 's/^ *$//')" fi - m4_toupper([$1])_LIBS="$($PKG_CONFIG --libs-only-l m4_default([$9], [$1]) | $SED -e 's/^ *$//')" + m4_toupper([$1])_LIBS="$($PKG_CONFIG --libs-only-l --libs-only-other m4_default([$9], [$1]) | $SED -e 's/^ *$//')" ]) fi @@ -2194,7 +2194,7 @@ AC_DEFUN([OCTAVE_CHECK_QT_VERSION], [AC_MSG_CHECKING([Qt version $1]) ## Retrieve Qt compilation and linker flags QT_CPPFLAGS="$($PKG_CONFIG --cflags-only-I $QT_MODULES | $SED -e 's/^ *$//')" QT_LDFLAGS="$($PKG_CONFIG --libs-only-L $QT_MODULES | $SED -e 's/^ *$//')" - QT_LIBS="$($PKG_CONFIG --libs-only-l $QT_MODULES | $SED -e 's/^ *$//')" + QT_LIBS="$($PKG_CONFIG --libs-only-l --libs-only-other $QT_MODULES | $SED -e 's/^ *$//')" case $host_os in *darwin*) ================================================ FILE: ports/octave/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/octave/octave-${VERSION}.tar.xz" "https://ftp.gnu.org/gnu/octave/octave-${VERSION}.tar.xz" FILENAME "octave-${VERSION}.tar.xz" SHA512 4ba4d65e326ab85ffcf8864b073910b8ec5ecaba96d18cffa2b13e8f38e5382e7a200bd9bc8838c47b947edcf8388ad3dd749e2d4f529f1f110946d99adf188f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES add_other_linkage_flags.patch qhull.patch ) include(vcpkg_find_fortran) vcpkg_find_fortran(FORTRAN) vcpkg_find_acquire_program(BISON) get_filename_component(BISON_EXE_PATH "${BISON}" DIRECTORY) vcpkg_add_to_path("${BISON_EXE_PATH}") vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_EXE_PATH "${FLEX}" DIRECTORY) vcpkg_add_to_path("${FLEX_EXE_PATH}") vcpkg_find_acquire_program(GPERF) get_filename_component(GPERF_EXE_PATH "${GPERF}" DIRECTORY) vcpkg_add_to_path("${GPERF_EXE_PATH}") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") if(VCPKG_HOST_IS_OSX) message("${PORT} currently requires the following programs from the system package manager:\n gsed\n\nIt can be installed with brew gnu-sed") endif() if("arpack" IN_LIST FEATURES) set(ARPACK_OPTION "yes") else() set(ARPACK_OPTION "no") endif() if("bz2" IN_LIST FEATURES) set(BZ2_OPTION "yes") else() set(BZ2_OPTION "no") endif() set(SUITESPARSECONFIG_OPTION "no") if("amd" IN_LIST FEATURES) set(AMD_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(AMD_OPTION "no") endif() if("camd" IN_LIST FEATURES) set(CAMD_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(CAMD_OPTION "no") endif() if("ccolamd" IN_LIST FEATURES) set(CCOLAMD_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(CCOLAMD_OPTION "no") endif() if("cholmod" IN_LIST FEATURES) set(CHOLMOD_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(CHOLMOD_OPTION "no") endif() if("colamd" IN_LIST FEATURES) set(COLAMD_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(COLAMD_OPTION "no") endif() if("cxsparse" IN_LIST FEATURES) set(CXSPARSE_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(CXSPARSE_OPTION "no") endif() if("klu" IN_LIST FEATURES) set(KLU_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(KLU_OPTION "no") endif() if("umfpack" IN_LIST FEATURES) set(UMFPACK_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(UMFPACK_OPTION "no") endif() if("spqr" IN_LIST FEATURES) set(SPQR_OPTION "yes") set(SUITESPARSECONFIG_OPTION "yes") else() set(SPQR_OPTION "no") endif() if("hdf5" IN_LIST FEATURES) set(HDF5_OPTION "yes") else() set(HDF5_OPTION "no") endif() if("fltk" IN_LIST FEATURES) set(FLTK_OPTION "yes") else() set(FLTK_OPTION "no") endif() if("fontconfig" IN_LIST FEATURES) set(FONTCONFIG_OPTION "yes") else() set(FONTCONFIG_OPTION "no") endif() if("freetype" IN_LIST FEATURES) set(FREETYPE_OPTION "yes") else() set(FREETYPE_OPTION "no") endif() if("portaudio" IN_LIST FEATURES) set(PORTAUDIO_OPTION "yes") else() set(PORTAUDIO_OPTION "no") endif() if("gui" IN_LIST FEATURES) set(GUI_OPTION "yes") else() set(GUI_OPTION "no") endif() if("qhull" IN_LIST FEATURES) set(QHULL_OPTION "yes") set(QHULL_PKG_OPTION "qhullstatic_r") else() set(QHULL_OPTION "no") endif() if("curl" IN_LIST FEATURES) set(CURL_OPTION "yes") else() set(CURL_OPTION "no") endif() if("graphicsmagick" IN_LIST FEATURES) set(GRAPHICSMAGICK_OPTION "GraphicsMagick++") else() set(GRAPHICSMAGICK_OPTION "no") endif() vcpkg_add_to_path("${CURRENT_INSTALLED_DIR}/tools/fltk") vcpkg_add_to_path("${CURRENT_INSTALLED_DIR}/tools/qt5/bin") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-docs --disable-java --disable-hg-id --enable-lib-visibility-flags --enable-relocate-all --with-amd=${AMD_OPTION} --with-arpack=${ARPACK_OPTION} --with-bz2=${BZ2_OPTION} --with-camd=${CAMD_OPTION} --with-ccolamd=${CCOLAMD_OPTION} --with-cholmod=${CHOLMOD_OPTION} --with-colamd=${COLAMD_OPTION} --with-cxsparse=${CXSPARSE_OPTION} --with-curl=${CURL_OPTION} --with-fftw3 # yes --with-fftw3f # yes --with-fltk=${FLTK_OPTION} --with-fontconfig=${FONTCONFIG_OPTION} --with-freetype=${FREETYPE_OPTION} --with-glpk # yes --with-hdf5=${HDF5_OPTION} --with-klu=${KLU_OPTION} --with-magick=${GRAPHICSMAGICK_OPTION} --with-opengl # yes --with-portaudio=${PORTAUDIO_OPTION} --with-pcre2 # yes --with-qhull_r=${QHULL_OPTION} --with-qhull_r-pkg-config=${QHULL_PKG_OPTION} --with-qrupdate=no --with-qscintilla=no --with-qt=${GUI_OPTION} --with-sndfile # yes --with-spqr=${SPQR_OPTION} --with-suitesparseconfig=${SUITESPARSECONFIG_OPTION} --with-sundials_ida=no --with-sundials_nvecserial=no --with-umfpack=${UMFPACK_OPTION} --with-z # yes ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") foreach(subdir IN ITEMS libexec lib/octave/site lib/octave/${VERSION}/site share/octave/octave/${VERSION}/site share/octave/octave/site/api-v59) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/${subdir}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/${subdir}") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/octave/octave/site/") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/octave/qhull.patch ================================================ diff --git a/configure.ac b/configure.ac --- configure.ac +++ configure.ac @@ -1429,8 +1429,25 @@ AC_MSG_ERROR([to build Octave, you must have the PCRE or PCRE2 library and header files installed]) fi ### Check for Qhull library. +AC_ARG_WITH([qhull_r-pkg-config], + [AS_HELP_STRING([--with-qhull_r-pkg-config=LIB], + [search the qhull library with pkg-config (options: qhull_r (default) or qhullstatic_r)]) +dnl Second help string must not be indented for correct alignment +AS_HELP_STRING([--without-qhull_r-pkg-config], [don't search qhull_r library with pkg-config])], + [case $withval in + yes | "") + qhull_pc_name="qhull_r" + ;; + no) + qhull_pc_name="" + ;; + *) + qhull_pc_name="$withval" + ;; + esac], + [qhull_pc_name="qhull_r"]) QHULL_CPPFLAGS= QHULL_LDFLAGS= QHULL_LIBS= @@ -1444,9 +1461,10 @@ [AC_DEFINE(HAVE_QHULL, 1, [Define to 1 if Qhull is available.]) QHULL_CPPFLAGS="$QHULL_R_CPPFLAGS" QHULL_LDFLAGS="$QHULL_R_LDFLAGS" QHULL_LIBS="$QHULL_R_LIBS"], - [warn_qhull_r="Qhull library found, but does not seem to work properly. This will result in loss of functionality for some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])]) + [warn_qhull_r="Qhull library found, but does not seem to work properly. This will result in loss of functionality for some geometry functions. Please try recompiling the library with -fno-strict-aliasing."])], + [$qhull_pc_name]) AC_SUBST(QHULL_CPPFLAGS) AC_SUBST(QHULL_LDFLAGS) AC_SUBST(QHULL_LIBS) ================================================ FILE: ports/octave/vcpkg.json ================================================ { "name": "octave", "version": "10.2.0", "port-version": 2, "description": "High-level interpreted language, primarily intended for numerical computations.", "homepage": "https://octave.org/", "documentation": "https://docs.octave.org/latest/", "license": "GPL-3.0-or-later", "supports": "!windows | mingw", "dependencies": [ "blas", "fftw3", "glpk", "lapack", "libsndfile", "opengl", "pcre2", "readline", { "name": "vcpkg-make", "host": true }, "zlib" ], "features": { "amd": { "description": "suitesparse-amd support", "dependencies": [ { "name": "suitesparse-amd", "default-features": false } ] }, "arpack": { "description": "arpack support", "dependencies": [ { "name": "arpack-ng", "default-features": false } ] }, "bz2": { "description": "bzip2 support", "dependencies": [ { "name": "bzip2", "default-features": false } ] }, "camd": { "description": "suitesparse-camd support", "dependencies": [ { "name": "suitesparse-camd", "default-features": false } ] }, "ccolamd": { "description": "suitesparse-ccolamd support", "dependencies": [ { "name": "suitesparse-ccolamd", "default-features": false } ] }, "cholmod": { "description": "suitesparse-cholmod support", "dependencies": [ { "name": "suitesparse-cholmod", "default-features": false } ] }, "colamd": { "description": "suitesparse-colamd support", "dependencies": [ { "name": "suitesparse-colamd", "default-features": false } ] }, "curl": { "description": "curl support", "dependencies": [ { "name": "curl", "default-features": false } ] }, "cxsparse": { "description": "suitesparse-cxsparse support", "dependencies": [ { "name": "suitesparse-cxsparse", "default-features": false } ] }, "fltk": { "description": "fltk support", "dependencies": [ { "name": "fltk", "default-features": false } ] }, "fontconfig": { "description": "fontconfig support", "dependencies": [ { "name": "fontconfig", "default-features": false } ] }, "freetype": { "description": "freetype support", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "graphicsmagick": { "description": "graphicsmagick support", "dependencies": [ { "name": "graphicsmagick", "default-features": false } ] }, "gui": { "description": "build with gui support", "dependencies": [ { "name": "freeglut", "platform": "linux" }, { "name": "octave", "default-features": false, "features": [ "fontconfig", "freetype" ] }, { "name": "qt5-base", "default-features": false }, { "name": "qt5-tools", "default-features": false } ] }, "hdf5": { "description": "hdf5 support", "dependencies": [ { "name": "hdf5", "default-features": false } ] }, "klu": { "description": "suitesparse-klu support", "dependencies": [ { "name": "suitesparse-klu", "default-features": false } ] }, "portaudio": { "description": "portaudio support", "dependencies": [ { "name": "portaudio", "default-features": false } ] }, "qhull": { "description": "qhull support", "dependencies": [ "qhull" ] }, "spqr": { "description": "suitesparse-spqr support", "dependencies": [ { "name": "suitesparse-spqr", "default-features": false } ] }, "umfpack": { "description": "suitesparse-umfpack support", "dependencies": [ { "name": "suitesparse-umfpack", "default-features": false } ] } } } ================================================ FILE: ports/octomap/001-fix-exported-targets.patch ================================================ diff --git a/octomap/src/CMakeLists.txt b/octomap/src/CMakeLists.txt index 45b384f..ab1b6b1 100644 --- a/octomap/src/CMakeLists.txt +++ b/octomap/src/CMakeLists.txt @@ -8,17 +8,16 @@ SET (octomap_SRCS OcTreeNode.cpp OcTreeStamped.cpp ColorOcTree.cpp - ) +) + -# dynamic and static libs, see CMake FAQ: -ADD_LIBRARY( octomap SHARED ${octomap_SRCS}) -set_target_properties( octomap PROPERTIES +ADD_LIBRARY(octomap ${octomap_SRCS}) +set_target_properties(octomap PROPERTIES VERSION ${OCTOMAP_VERSION} SOVERSION ${OCTOMAP_SOVERSION} + OUTPUT_NAME "octomap" ) -ADD_LIBRARY( octomap-static STATIC ${octomap_SRCS}) -SET_TARGET_PROPERTIES(octomap-static PROPERTIES OUTPUT_NAME "octomap") -add_dependencies(octomap-static octomath-static) + TARGET_LINK_LIBRARIES(octomap octomath) @@ -26,7 +25,7 @@ if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") file(MAKE_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") endif() -export(TARGETS octomap octomap-static +export(TARGETS octomap APPEND FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-targets.cmake") ADD_SUBDIRECTORY( testing ) @@ -67,7 +66,7 @@ TARGET_LINK_LIBRARIES(intersection_example octomap) ADD_EXECUTABLE(octree2pointcloud octree2pointcloud.cpp) TARGET_LINK_LIBRARIES(octree2pointcloud octomap) -install(TARGETS octomap octomap-static +install(TARGETS octomap EXPORT octomap-targets INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ${INSTALL_TARGETS_DEFAULT_ARGS} diff --git a/octomap/src/math/CMakeLists.txt b/octomap/src/math/CMakeLists.txt index 3b47ec4..6a75170 100644 --- a/octomap/src/math/CMakeLists.txt +++ b/octomap/src/math/CMakeLists.txt @@ -5,24 +5,22 @@ SET (octomath_SRCS ) -ADD_LIBRARY( octomath SHARED ${octomath_SRCS}) +ADD_LIBRARY(octomath ${octomath_SRCS}) SET_TARGET_PROPERTIES( octomath PROPERTIES VERSION ${OCTOMAP_VERSION} SOVERSION ${OCTOMAP_SOVERSION} ) -ADD_LIBRARY( octomath-static STATIC ${octomath_SRCS}) -SET_TARGET_PROPERTIES(octomath-static PROPERTIES OUTPUT_NAME "octomath") if(NOT EXISTS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") file(MAKE_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap") endif() -export(TARGETS octomath octomath-static +export(TARGETS octomath APPEND FILE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-targets.cmake") -install(TARGETS octomath octomath-static +install(TARGETS octomath EXPORT octomap-targets INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ${INSTALL_TARGETS_DEFAULT_ARGS} ================================================ FILE: ports/octomap/fix-isnan.patch ================================================ diff --git a/octomap/src/compare_octrees.cpp b/octomap/src/compare_octrees.cpp index c02ceea8..e6890f59 100644 --- a/octomap/src/compare_octrees.cpp +++ b/octomap/src/compare_octrees.cpp @@ -39,7 +39,7 @@ #include #include -#ifdef _MSC_VER // fix missing isnan for VC++ +#if defined(_MSC_VER) && !((defined(_MSVC_LANG) && _MSVC_LANG >= 201103L) || __cplusplus >= 201103L) #define isnan(x) _isnan(x) #endif @@ -132,11 +132,7 @@ int main(int argc, char** argv) { else kld +=log(p1/p2)*p1 + log((1-p1)/(1-p2))*(1-p1); -#if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201103L) || __cplusplus >= 201103L) - if (std::isnan(kld)){ -#else if (isnan(kld)){ -#endif OCTOMAP_ERROR("KLD is nan! KLD(%f,%f)=%f; sum = %f", p1, p2, kld, kld_sum); exit(-1); } ================================================ FILE: ports/octomap/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OctoMap/octomap REF "v${VERSION}" SHA512 1cbee4f6b3569587986774447ad9ec4190f597310c4d6865ffa7cd8865ece2492e4a42fa369b633d9d7a9da782560d49deaa62a18601ea4f56396bdf1a6a5f52 HEAD_REF devel PATCHES 001-fix-exported-targets.patch fix-isnan.patch # Remove this patch in the next update ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTING=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_tools( TOOL_NAMES binvox2bt bt2vrml compare_octrees convert_octree edit_octree eval_octree_accuracy graph2tree log2graph AUTO_CLEAN) vcpkg_cmake_config_fixup() 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") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/octomap") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/octomap/LICENSE.txt") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/octomap/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET octomap AND NOT TARGET octomap-static) add_library(octomap-static INTERFACE IMPORTED) set_target_properties(octomap-static PROPERTIES INTERFACE_LINK_LIBRARIES "octomap") add_library(octomath-static INTERFACE IMPORTED) set_target_properties(octomath-static PROPERTIES INTERFACE_LINK_LIBRARIES "octomath") elseif(TARGET octomap-static AND NOT TARGET octomap) add_library(octomap INTERFACE IMPORTED) set_target_properties(octomap PROPERTIES INTERFACE_LINK_LIBRARIES "octomap-static") add_library(octomath INTERFACE IMPORTED) set_target_properties(octomath PROPERTIES INTERFACE_LINK_LIBRARIES "octomath-static") endif() ================================================ FILE: ports/octomap/vcpkg.json ================================================ { "name": "octomap", "version": "1.10.0", "description": "An Efficient Probabilistic 3D Mapping Framework Based on Octrees", "homepage": "https://octomap.github.io/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ode/arm64-msvc.diff ================================================ diff --git a/include/ode/odeconfig.h b/include/ode/odeconfig.h index 5ac58e7..21481b3 100644 --- a/include/ode/odeconfig.h +++ b/include/ode/odeconfig.h @@ -142,10 +142,17 @@ typedef unsigned long duint64; typedef signed char dint8; typedef unsigned char duint8; +# if defined(_M_ARM64) + typedef dint64 dintptr; + typedef duint64 duintptr; + typedef dint64 ddiffint; + typedef duint64 dsizeint; +# else typedef dint32 dintptr; typedef duint32 duintptr; typedef dint32 ddiffint; typedef duint32 dsizeint; +# endif #endif ================================================ FILE: ports/ode/portfile.cmake ================================================ vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO odedevs/ode REF ${VERSION} SHA512 c9160d9b7419c74c700d9efe5cdb82e70cab867a10f03fe8b99c32ed946ee4ecb50e055a6c11495dd9ed4754110ef0d071fbcfbf4cc6b67841607ed90b1ce35b HEAD_REF master PATCHES arm64-msvc.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DODE_WITH_DEMOS=OFF -DODE_WITH_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ode-${VERSION}) vcpkg_fixup_pkgconfig() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/ode-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/ode-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/ode-config" [[$(cd "$(dirname "$0")"; pwd -P)/..]] [[$(cd "$(dirname "$0")/../../.."; pwd -P)]]) if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/ode-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/ode-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/ode-config" [[$(cd "$(dirname "$0")"; pwd -P)/..]] [[$(cd "$(dirname "$0")/../../../.."; pwd -P)]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/ode-config" [[exec_prefix=${prefix}]] [[exec_prefix=${prefix}/debug]]) endif() vcpkg_clean_executables_in_bin(FILE_NAMES none) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/ode/vcpkg.json ================================================ { "name": "ode", "version": "0.16.6", "description": "Open Dynamics Engine", "homepage": "https://bitbucket.org/odedevs/ode/src/master/", "license": "BSD-3-Clause OR LGPL-2.1-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/offscale-libetcd-cpp/fix-dependency-grpc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d9aad9..d68c5f7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ endif() target_include_directories(etcdcpp PRIVATE "generated/") target_include_directories(etcdcpp INTERFACE "${CMAKE_INSTALL_PREFIX}/include") -target_link_libraries(etcdcpp PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc_cronet) +target_link_libraries(etcdcpp PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc++_alts) target_link_libraries(etcdcpp PRIVATE protobuf::libprotoc protobuf::libprotobuf) install(TARGETS etcdcpp EXPORT etcdcpp DESTINATION lib) ================================================ FILE: ports/offscale-libetcd-cpp/install-debug.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d9aad9..7bdde1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,5 +77,5 @@ install(TARGETS etcdcpp EXPORT etcdcpp DESTINATION lib) if (${CMAKE_BUILD_TYPE} STREQUAL "Release") install(FILES ${proto_hs} DESTINATION include/libetcd/) - install(EXPORT etcdcpp DESTINATION share/etcdcpp/ FILE etcdcppConfig.cmake) endif() +install(EXPORT etcdcpp DESTINATION share/etcdcpp/ FILE etcdcppConfig.cmake) ================================================ FILE: ports/offscale-libetcd-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO offscale/libetcd-cpp REF 8607d8d7080c6eb447bc41b799a24bfdb87cf638 SHA512 9bf4bf14fd52f4f6bbf8cf68de61e6a19eeffbdc501f05c8f614b5f13f206410884afd7fe226a077448e58e02990c65a6b27ee895ed34ba5ee701abe0500b875 HEAD_REF master PATCHES fix-dependency-grpc.patch install-debug.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # see https://github.com/microsoft/vcpkg/pull/21168#issuecomment-961588989 why ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME etcdcpp) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE-MIT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/offscale-libetcd-cpp/vcpkg.json ================================================ { "name": "offscale-libetcd-cpp", "version-date": "2019-07-10", "port-version": 3, "description": "A C++ client library for etcd. etcd is a distributed, reliable key-value store.", "homepage": "https://github.com/offscale/libetcd-cpp", "dependencies": [ "grpc", "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ogre/cfg-rel-paths.patch ================================================ diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake index 09789ce..3d918e4 100644 --- a/CMake/InstallResources.cmake +++ b/CMake/InstallResources.cmake @@ -61,7 +61,6 @@ elseif (APPLE) endif() # these are resolved relative to the app bundle set(OGRE_SAMPLES_DIR_REL "Contents/Plugins/") - set(OGRE_CFG_INSTALL_PATH "bin") elseif (UNIX) set(OGRE_TEST_MEDIA_DIR_REL "${CMAKE_INSTALL_PREFIX}/Tests/Media") set(OGRE_SAMPLES_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_LIB_DIRECTORY}/OGRE/Samples") @@ -155,6 +154,10 @@ endif() set(OGRE_SAMPLE_RESOURCES "") +set(OGRE_PLUGIN_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_PLUGINS_PATH}") +cmake_path(RELATIVE_PATH OGRE_PLUGIN_DIR_REL BASE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${OGRE_CFG_INSTALL_PATH}") +set(OGRE_MEDIA_DIR_REL "${CMAKE_INSTALL_PREFIX}/${OGRE_MEDIA_PATH}") +cmake_path(RELATIVE_PATH OGRE_MEDIA_DIR_REL BASE_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${OGRE_CFG_INSTALL_PATH}") set(OGRE_CORE_MEDIA_DIR "${OGRE_MEDIA_DIR_REL}") # CREATE CONFIG FILES - INSTALL VERSIONS ================================================ FILE: ports/ogre/cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 15edbe3917..206d532ddb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,11 +46,6 @@ endif() if (APPLE AND NOT ANDROID AND NOT EMSCRIPTEN AND NOT ANDROID_PLATFORM) SET(CMAKE_SIZEOF_VOID_P 4) - if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") - enable_language(OBJC) - enable_language(OBJCXX) - endif() - if(POLICY CMP0068) cmake_policy(SET CMP0068 NEW) # CMake 3.9+: `RPATH` settings on macOS do not affect `install_name`. endif() @@ -65,6 +60,13 @@ endif () project(OGRE VERSION 14.5.0) +if (APPLE AND NOT ANDROID AND NOT EMSCRIPTEN AND NOT ANDROID_PLATFORM) + if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0") + enable_language(OBJC) + enable_language(OBJCXX) + endif() +endif() + # extra version info set(OGRE_VERSION_SUFFIX "") set(OGRE_VERSION_NAME "Tsathoggua") ================================================ FILE: ports/ogre/fix-dependencies.patch ================================================ diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index 21590f4..4b46a29 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -210,11 +210,14 @@ endif() ####################################################################### # Find FreeImage -find_package(FreeImage) +find_package(FreeImage NAMES freeimage) +set(FreeImage_LIBRARIES freeimage::FreeImage) +set(FreeImage_LIBRARY_DBG "-lFreeImaged") +set(FreeImage_LIBRARY_REL "-lFreeImage") macro_log_feature(FreeImage_FOUND "freeimage" "Support for commonly used graphics image formats" "http://freeimage.sourceforge.net") # Find FreeType -find_package(Freetype) +find_package(FREETYPE NAMES freetype) macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org") # Find X11 @@ -281,13 +284,17 @@ endif () macro_log_feature(ENV{VULKAN_SDK} "Vulkan SDK" "Vulkan RenderSystem, glslang Plugin. Alternatively use system packages" "https://vulkan.lunarg.com/") # OpenEXR -find_package(OpenEXR) +find_package(IMath CONFIG) +find_package(OPENEXR NAMES OpenEXR) +set(OPENEXR_LIBRARIES OpenEXR::OpenEXR Imath::Imath) macro_log_feature(OPENEXR_FOUND "OpenEXR" "Load High dynamic range images" "http://www.openexr.com/") # Python set(Python_ADDITIONAL_VERSIONS 3.4) # allows using python3 on Ubuntu 14.04 -find_package(PythonInterp) -find_package(PythonLibs) +find_package(Python3 COMPONENTS Development Interpreter) # Interpreter is needed for Python3_FOUND +set(PYTHONLIBS_FOUND "${Python3_FOUND}") +set(PYTHON_INCLUDE_PATH "${Python3_INCLUDE_DIRS}") +set(PYTHON_LIBRARIES "${Python3_LIBRARIES}") macro_log_feature(PYTHONLIBS_FOUND "Python" "Language bindings to use OGRE from Python" "http://www.python.org/") # SWIG @@ -295,7 +302,7 @@ find_package(SWIG 3.0.8 QUIET) macro_log_feature(SWIG_FOUND "SWIG" "Language bindings (Python, Java, C#) for OGRE" "http://www.swig.org/") # pugixml -find_package(pugixml QUIET) +find_package(pugixml CONFIG REQUIRED) macro_log_feature(pugixml_FOUND "pugixml" "Needed for XMLConverter and DotScene Plugin" "https://pugixml.org/") # Find zlib @@ -303,7 +310,7 @@ find_package(ZLIB) macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://www.zlib.net") # Assimp -find_package(assimp QUIET) +find_package(assimp CONFIG) macro_log_feature(assimp_FOUND "Assimp" "Needed for the AssimpLoader Plugin" "https://www.assimp.org/") # Bullet @@ -311,6 +318,8 @@ find_package(Bullet QUIET) macro_log_feature(BULLET_FOUND "Bullet" "Bullet physics" "https://pybullet.org") if(assimp_FOUND) + add_library(fix::assimp ALIAS assimp::assimp) +elseif(0) # workaround horribly broken assimp cmake, fixed with assimp 5.1 add_library(fix::assimp INTERFACE IMPORTED) set_target_properties(fix::assimp PROPERTIES @@ -329,7 +338,7 @@ endif() # Find sdl2 if(NOT ANDROID AND NOT EMSCRIPTEN) # find script does not work in cross compilation environment - find_package(SDL2 QUIET) + find_package(SDL2 CONFIG REQUIRED) macro_log_feature(SDL2_FOUND "SDL2" "Simple DirectMedia Library needed for input handling in samples" "https://www.libsdl.org/") if(SDL2_FOUND AND NOT TARGET SDL2::SDL2) add_library(SDL2::SDL2 INTERFACE IMPORTED) diff --git a/CMake/Templates/OGREConfig.cmake.in b/CMake/Templates/OGREConfig.cmake.in index 2047f66..a5c7cd0 100644 --- a/CMake/Templates/OGREConfig.cmake.in +++ b/CMake/Templates/OGREConfig.cmake.in @@ -35,6 +35,25 @@ set(OGRE_LIBRARIES) cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) +include(CMakeFindDependencyMacro) +find_dependency(pugixml CONFIG) +find_dependency(SDL2 CONFIG) +find_dependency(ZLIB) +find_dependency(freetype CONFIG) +if (@OGRE_BUILD_COMPONENT_OVERLAY_IMGUI@) + find_dependency(imgui CONFIG) +endif() +if(@OGRE_BUILD_PLUGIN_ASSIMP@) + find_dependency(assimp CONFIG) +endif() +if(@OGRE_BUILD_PLUGIN_FREEIMAGE@) + find_dependency(freeimage CONFIG) +endif() +if(@OGRE_BUILD_PLUGIN_EXRCODEC@) + find_dependency(Imath CONFIG) + find_dependency(OpenEXR CONFIG) +endif() + if(@OGRE_THREAD_PROVIDER@ EQUAL 1) list(APPEND OGRE_INCLUDE_DIRS @Boost_INCLUDE_DIRS@) endif() diff --git a/Components/Bites/CMakeLists.txt b/Components/Bites/CMakeLists.txt index 9e990b8..16c0ae4 100644 --- a/Components/Bites/CMakeLists.txt +++ b/Components/Bites/CMakeLists.txt @@ -185,6 +185,12 @@ elseif(NOT EMSCRIPTEN) message(WARNING "SDL2 not found - no input handling and reduced window creation capabilites") endif() +if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) + find_package(imgui CONFIG REQUIRED) + find_path(IMGUI_DIR NAMES imgui.h) + target_link_libraries(OgreBites PRIVATE imgui::imgui) +endif() + generate_export_header(OgreBites EXPORT_MACRO_NAME _OgreBitesExport EXPORT_FILE_NAME ${PROJECT_BINARY_DIR}/include/OgreBitesPrerequisites.h) diff --git a/Components/Bites/src/OgreImGuiInputListener.cpp b/Components/Bites/src/OgreImGuiInputListener.cpp index 3cb2379..5629bb5 100644 --- a/Components/Bites/src/OgreImGuiInputListener.cpp +++ b/Components/Bites/src/OgreImGuiInputListener.cpp @@ -116,7 +116,7 @@ static bool keyEvent(const KeyboardEvent& arg) if (key == ImGuiKey_None) return io.WantCaptureKeyboard; - io.AddKeyEvent(ImGuiKey(key), arg.type == OgreBites::KEYDOWN); + io.AddKeyEvent(static_cast(key), arg.type == OgreBites::KEYDOWN); return io.WantCaptureKeyboard; } diff --git a/Components/Overlay/CMakeLists.txt b/Components/Overlay/CMakeLists.txt index 41bd634..87f1406 100644 --- a/Components/Overlay/CMakeLists.txt +++ b/Components/Overlay/CMakeLists.txt @@ -19,6 +19,8 @@ list(APPEND HEADER_FILES file(GLOB SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) + find_package(imgui CONFIG REQUIRED) +elseif(0) set(IMGUI_DIR "${PROJECT_BINARY_DIR}/imgui-1.91.9b" CACHE PATH "") if(NOT EXISTS ${IMGUI_DIR}) message(STATUS "Downloading imgui") @@ -63,6 +65,8 @@ elseif(UNIX) endif() if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) + target_link_libraries(OgreOverlay PUBLIC OgreMain PRIVATE imgui::imgui) +elseif(0) target_include_directories(OgreOverlay PUBLIC PUBLIC "$" PRIVATE "$") diff --git a/PlugIns/EXRCodec/src/OgreEXRCodec.cpp b/PlugIns/EXRCodec/src/OgreEXRCodec.cpp index efd4b32..1e3ea23 100644 --- a/PlugIns/EXRCodec/src/OgreEXRCodec.cpp +++ b/PlugIns/EXRCodec/src/OgreEXRCodec.cpp @@ -36,6 +36,9 @@ THE SOFTWARE. #include "O_IStream.h" #include +#include +#include +#include #include #include #include diff --git a/PlugIns/STBICodec/CMakeLists.txt b/PlugIns/STBICodec/CMakeLists.txt index 10283f5..e7edfd3 100644 --- a/PlugIns/STBICodec/CMakeLists.txt +++ b/PlugIns/STBICodec/CMakeLists.txt @@ -19,8 +19,10 @@ endif() add_library(Codec_STBI ${OGRE_LIB_TYPE} ${HEADER_FILES} ${SOURCES}) target_link_libraries(Codec_STBI PUBLIC OgreMain) +find_path(STB_INCLUDE_DIRS "stb_image.h") target_include_directories(Codec_STBI PUBLIC "$" + "$" $) if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/PlugIns/STBICodec/src/OgreSTBICodec.cpp b/PlugIns/STBICodec/src/OgreSTBICodec.cpp index c5a4d4b..df648d7 100644 --- a/PlugIns/STBICodec/src/OgreSTBICodec.cpp +++ b/PlugIns/STBICodec/src/OgreSTBICodec.cpp @@ -40,7 +40,7 @@ THE SOFTWARE. #define STBI_NO_STDIO #define STB_IMAGE_IMPLEMENTATION #define STB_IMAGE_STATIC -#include "stbi/stb_image.h" +#include "stb_image.h" #ifdef HAVE_ZLIB #include @@ -63,7 +63,7 @@ static Ogre::uchar* custom_zlib_compress(Ogre::uchar* data, int data_len, int* o #define STB_IMAGE_WRITE_IMPLEMENTATION #define STBI_WRITE_NO_STDIO -#include "stbi/stb_image_write.h" +#include "stb_image_write.h" namespace Ogre { @@ -74,7 +74,7 @@ namespace Ogre { stbi_convert_iphone_png_to_rgb(1); stbi_set_unpremultiply_on_load(1); - LogManager::getSingleton().logMessage("stb_image - v2.30 - public domain image loader"); + LogManager::getSingleton().logMessage("stb_image - public domain image loader"); // Register codecs String exts = "jpeg,jpg,png,bmp,psd,tga,gif,pic,ppm,pgm,hdr"; ================================================ FILE: ports/ogre/pkgconfig.patch ================================================ diff --git a/CMake/InstallResources.cmake b/CMake/InstallResources.cmake index cc8b28b..1d68c09 100644 --- a/CMake/InstallResources.cmake +++ b/CMake/InstallResources.cmake @@ -299,6 +299,13 @@ if (UNIX OR MINGW) else() set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} ${FreeImage_LIBRARY_REL}") endif() + set(PC_REQUIRES_STATIC "") + if(OGRE_BUILD_COMPONENT_OVERLAY) + string(APPEND PC_REQUIRES_STATIC " freetype2") + endif() + if(X11_X11_LIB) + string(APPEND PC_REQUIRES_STATIC " x11 xt xaw7 gl") + endif() configure_file(${OGRE_TEMPLATES_DIR}/OGREStatic.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE.pc @ONLY) else () configure_file(${OGRE_TEMPLATES_DIR}/OGRE.pc.in ${PROJECT_BINARY_DIR}/pkgconfig/OGRE.pc @ONLY) diff --git a/CMake/Templates/OGREStatic.pc.in b/CMake/Templates/OGREStatic.pc.in index ff3c7c8..b3024c1 100644 --- a/CMake/Templates/OGREStatic.pc.in +++ b/CMake/Templates/OGREStatic.pc.in @@ -8,6 +8,6 @@ Name: OGRE (static lib) Description: Object-Oriented Graphics Rendering Engine Version: @OGRE_VERSION@ URL: http://www.ogre3d.org -Requires: freetype2, zziplib, gl, x11, xt, xaw7, wayland +Requires: @PC_REQUIRES_STATIC@ Libs: -L${libdir} -L${plugindir} -lOgreMain@OGRE_LIB_SUFFIX@ @OGRE_ADDITIONAL_LIBS@ Cflags: -I${includedir} -I${includedir}/OGRE @OGRE_CFLAGS@ ================================================ FILE: ports/ogre/portfile.cmake ================================================ if (EXISTS "${CURRENT_INSTALLED_DIR}/Media/HLMS/Blendfunctions_piece_fs.glslt") message(FATAL_ERROR "FATAL ERROR: ogre-next and ogre are incompatible.") endif() if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_OSX) message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") endif() if(VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OGRECave/ogre REF "v${VERSION}" SHA512 25ccda2278bd6a82d84fbad183e04efc33b42b43cf18e05fdfd6a3579f90673e11f5ae474e497f8ddffd54a5c58931abb1cb34dac607e85548909d4defe8a59a HEAD_REF master PATCHES fix-dependencies.patch cfg-rel-paths.patch swig-python-polyfill.patch pkgconfig.patch same-install-rules-all-platforms.patch cmake4.patch ) file(REMOVE "${SOURCE_PATH}/CMake/Packages/FindOpenEXR.cmake") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OGRE_STATIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" OGRE_CONFIG_STATIC_LINK_CRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES assimp OGRE_BUILD_PLUGIN_ASSIMP assimp CMAKE_REQUIRE_FIND_PACKAGE_assimp bullet OGRE_BUILD_COMPONENT_BULLET bullet CMAKE_REQUIRE_FIND_PACKAGE_Bullet d3d9 OGRE_BUILD_RENDERSYSTEM_D3D9 freeimage OGRE_BUILD_PLUGIN_FREEIMAGE freeimage CMAKE_REQUIRE_FIND_PACKAGE_FreeImage java OGRE_BUILD_COMPONENT_JAVA openexr OGRE_BUILD_PLUGIN_EXRCODEC openexr CMAKE_REQUIRE_FIND_PACKAGE_OpenEXR python OGRE_BUILD_COMPONENT_PYTHON python CMAKE_REQUIRE_FIND_PACKAGE_Python3 csharp OGRE_BUILD_COMPONENT_CSHARP overlay OGRE_BUILD_COMPONENT_OVERLAY zip OGRE_CONFIG_ENABLE_ZIP strict OGRE_RESOURCEMANAGER_STRICT tools OGRE_BUILD_TOOLS tools OGRE_INSTALL_TOOLS INVERTED_FEATURES assimp CMAKE_DISABLE_FIND_PACKAGE_assimp bullet CMAKE_DISABLE_FIND_PACKAGE_Bullet python CMAKE_DISABLE_FIND_PACKAGE_Python3 ) if("java" IN_LIST FEATURES OR "python" IN_LIST FEATURES OR "csharp" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DCMAKE_REQUIRE_FIND_PACKAGE_SWIG=ON") vcpkg_find_acquire_program(SWIG) vcpkg_list(APPEND FEATURE_OPTIONS "-DSWIG_EXECUTABLE=${SWIG}") endif() # OGRE_RESOURCEMANAGER_STRICT need to be 0 for OFF and 1 for ON, because it is used 'as is' in sources string(REPLACE "OGRE_RESOURCEMANAGER_STRICT=ON" "OGRE_RESOURCEMANAGER_STRICT=1" FEATURE_OPTIONS "${FEATURE_OPTIONS}") string(REPLACE "OGRE_RESOURCEMANAGER_STRICT=OFF" "OGRE_RESOURCEMANAGER_STRICT=0" FEATURE_OPTIONS "${FEATURE_OPTIONS}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DOGRE_CFG_INSTALL_PATH=etc/${PORT} -DOGRE_CMAKE_DIR=share/${PORT} -DOGRE_MEDIA_PATH=share/${PORT}/Media -DOGRE_PLUGINS_PATH=plugins/${PORT} -DOGRE_BUILD_DEPENDENCIES=OFF -DOGRE_BUILD_LIBS_AS_FRAMEWORKS=OFF -DOGRE_BUILD_SAMPLES=OFF -DOGRE_BUILD_TESTS=OFF -DOGRE_BUILD_MSVC_MP=ON -DOGRE_BUILD_MSVC_ZM=ON -DOGRE_COPY_DEPENDENCIES=OFF -DOGRE_ENABLE_PRECOMPILED_HEADERS=OFF -DOGRE_INSTALL_DEPENDENCIES=OFF -DOGRE_INSTALL_DOCS=OFF -DOGRE_INSTALL_PDB=OFF -DOGRE_INSTALL_SAMPLES=OFF -DOGRE_INSTALL_VSPROPS=OFF -DOGRE_STATIC=${OGRE_STATIC} -DOGRE_CONFIG_STATIC_LINK_CRT=${OGRE_CONFIG_STATIC_LINK_CRT} -DOGRE_CONFIG_THREAD_PROVIDER=std -DOGRE_BUILD_RENDERSYSTEM_D3D11=ON -DOGRE_BUILD_RENDERSYSTEM_GL=ON -DOGRE_BUILD_RENDERSYSTEM_GL3PLUS=ON -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_FREETYPE=ON -DCMAKE_REQUIRE_FIND_PACKAGE_pugixml=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON -DCMAKE_DISABLE_FIND_PACKAGE_QT=ON -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=ON -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON OPTIONS_DEBUG -DOGRE_BUILD_TOOLS=OFF -DOGRE_INSTALL_TOOLS=OFF MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_Qt5 CMAKE_DISABLE_FIND_PACKAGE_Qt6 CMAKE_REQUIRE_FIND_PACKAGE_OpenEXR OGRE_COPY_DEPENDENCIES OGRE_BUILD_MSVC_MP OGRE_BUILD_MSVC_ZM OGRE_BUILD_RENDERSYSTEM_GLES OGRE_INSTALL_DEPENDENCIES OGRE_INSTALL_VSPROPS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/etc/${PORT}/resources.cfg" "=../../share" "=../../../share") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/etc/${PORT}/resources.cfg" "[Tests]\nFileSystem=${CURRENT_PACKAGES_DIR}/debug/Tests/Media" "" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/OgreTargets-debug.cmake" "${_IMPORT_PREFIX}/plugins" "${_IMPORT_PREFIX}/debug/plugins" IGNORE_UNCHANGED) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/etc/${PORT}/resources.cfg" "[Tests]\nFileSystem=${CURRENT_PACKAGES_DIR}/Tests/Media" "" IGNORE_UNCHANGED) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc/ogre/samples.cfg" "${CURRENT_PACKAGES_DIR}/debug/etc/ogre/samples.cfg" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) set(tools OgreMeshUpgrader OgreXMLConverter VRMLConverter) if(OGRE_BUILD_PLUGIN_ASSIMP) list(APPEND tools OgreAssimpConverter) endif() if(OGRE_BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() #Remove OgreMain*.lib from lib/ folder, because autolink would complain, since it defines a main symbol #manual-link subfolder is here to the rescue! if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/OgreMain.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMain.lib") else() file(RENAME "${CURRENT_PACKAGES_DIR}/lib/OgreMainStatic.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/OgreMainStatic.lib") endif() if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/OgreMain_d.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMain_d.lib") else() file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/OgreMainStatic_d.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/OgreMainStatic_d.lib") endif() endif() file(GLOB SHARE_FILES "${CURRENT_PACKAGES_DIR}/share/ogre/*.cmake") foreach(SHARE_FILE ${SHARE_FILES}) file(READ "${SHARE_FILE}" _contents) string(REPLACE "lib/OgreMain" "lib/manual-link/OgreMain" _contents "${_contents}") file(WRITE "${SHARE_FILE}" "${_contents}") endforeach() endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ogre/same-install-rules-all-platforms.patch ================================================ diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake index c4e6de8..e92da59 100644 --- a/CMake/Utils/OgreConfigTargets.cmake +++ b/CMake/Utils/OgreConfigTargets.cmake @@ -56,9 +56,6 @@ elseif (UNIX) set(OGRE_LIB_RELEASE_PATH "") set(OGRE_LIB_RELWDBG_PATH "") set(OGRE_LIB_DEBUG_PATH "") - if(APPLE AND NOT APPLE_IOS) - set(OGRE_RELEASE_PATH "/${PLATFORM_NAME}") - endif() if(APPLE AND APPLE_IOS) set(OGRE_LIB_RELEASE_PATH "/Release") endif(APPLE AND APPLE_IOS) ================================================ FILE: ports/ogre/swig-python-polyfill.patch ================================================ diff --git a/Components/Python/CMakeLists.txt b/Components/Python/CMakeLists.txt index b6062c6..df955e3 100644 --- a/Components/Python/CMakeLists.txt +++ b/Components/Python/CMakeLists.txt @@ -22,7 +22,14 @@ if(OGRE_BUILD_COMPONENT_OVERLAY_IMGUI) list(APPEND CMAKE_SWIG_FLAGS -DHAVE_IMGUI -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS) endif() +# cf. https://github.com/swig/swig/pull/1587 +file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pyobject_gc_polyfill.h" CONTENT [[ +#define _PyObject_GC_UNTRACK(x) PyObject_GC_UnTrack(x) +]]) macro(ogre_python_module target) + if(SWIG_FOUND AND SWIG_VERSION VERSION_LESS "4.0.1" AND Python3_VERSION VERSION_GREATER_EQUAL "3.8") + target_precompile_headers(${SWIG_MODULE_${target}_REAL_NAME} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/pyobject_gc_polyfill.h") + endif() set_target_properties(${target} PROPERTIES DEBUG_POSTFIX "") install(TARGETS ${target} LIBRARY DESTINATION ${PYTHON_SITE_PACKAGES}) install(FILES ${PROJECT_BINARY_DIR}/Components/Python/${target}.py DESTINATION ${PYTHON_SITE_PACKAGES}) ================================================ FILE: ports/ogre/vcpkg.json ================================================ { "name": "ogre", "version": "14.5.0", "description": "3D Object-Oriented Graphics Rendering Engine", "homepage": "https://github.com/OGRECave/ogre", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "freetype", "default-features": false }, "pugixml", { "name": "sdl2", "platform": "!android" }, "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "assimp", "freeimage", "overlay", "zip" ], "features": { "assimp": { "description": "Build with assimp support", "dependencies": [ "assimp" ] }, "bullet": { "description": "Build with bullet physics support", "dependencies": [ "bullet3" ] }, "csharp": { "description": "Build csharp bindings", "supports": "!static & !android & !ios & !emscripten" }, "d3d9": { "description": "Build Direct3D9 RenderSystem", "supports": "windows" }, "freeimage": { "description": "Build with FreeImage support (no effect for Emscripten)", "dependencies": [ { "name": "freeimage", "platform": "!emscripten" } ] }, "java": { "description": "Build Java (JNI) bindings", "supports": "!static & !android & !ios & !emscripten" }, "openexr": { "description": "Build with OpenEXR support", "dependencies": [ "openexr" ] }, "overlay": { "description": "Build overlay component", "dependencies": [ { "name": "imgui", "features": [ "freetype" ] } ] }, "python": { "description": "Build Python bindings", "supports": "!static & !android & !ios & !emscripten", "dependencies": [ "python3" ] }, "strict": { "description": "Force Ogre resource manager to be strict with group names and resource names" }, "tools": { "description": "Build tools", "supports": "!android & !emscripten" }, "zip": { "description": "Build ZIP archive support" }, "zziplib": { "description": "Obsolete, use zip feature instead", "dependencies": [ { "name": "ogre", "default-features": false, "features": [ "zip" ] } ] } } } ================================================ FILE: ports/ogre-next/fix-dependencies.patch ================================================ diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt index b0ca7c12f8..7e52ca668a 100644 --- a/CMake/CMakeLists.txt +++ b/CMake/CMakeLists.txt @@ -21,9 +21,7 @@ endif() set(OGRE_CMAKE_DIR "share/ogre-next") set(INST_FILES - Packages/FindRapidjson.cmake Packages/FindRemotery.cmake - Packages/FindSDL2.cmake Packages/FindOGRE.cmake Utils/FindPkgMacros.cmake Utils/MacroLogFeature.cmake @@ -44,11 +42,7 @@ if (OGRE_CONFIG_THREAD_PROVIDER STREQUAL "tbb") endif () set(STATIC_INST_FILES - Packages/FindFreeImage.cmake - Packages/FindFreetype.cmake Packages/FindOpenGLES2.cmake - Packages/FindZLIB.cmake - Packages/FindZZip.cmake Packages/FindSoftimage.cmake ) if (WIN32) diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index 7dd36f2ab2..e83d040e83 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -74,26 +74,32 @@ set(CMAKE_FRAMEWORK_PATH ${OGRE_DEP_SEARCH_PATH} ${CMAKE_FRAMEWORK_PATH}) ####################################################################### # Find zlib -find_package(ZLIB) +find_package(ZLIB REQUIRED) macro_log_feature(ZLIB_FOUND "zlib" "Simple data compression library" "http://www.zlib.net" FALSE "" "") if (ZLIB_FOUND) # Find zziplib - find_package(ZZip) + find_package(ZZip NAMES zziplib CONFIG REQUIRED) + set(ZZip_LIBRARIES zziplib::libzzip) macro_log_feature(ZZip_FOUND "zziplib" "Extract data from zip archives" "http://zziplib.sourceforge.net" FALSE "" "") endif () # Find FreeImage -find_package(FreeImage) +find_package(FreeImage NAMES freeimage REQUIRED) +set(FreeImage_LIBRARIES freeimage::FreeImage) macro_log_feature(FreeImage_FOUND "freeimage" "Support for commonly used graphics image formats" "http://freeimage.sourceforge.net" FALSE "" "") # Find FreeType -find_package(Freetype) +find_package(FREETYPE NAMES freetype REQUIRED) +set(FREETYPE_LIBRARIES freetype) macro_log_feature(FREETYPE_FOUND "freetype" "Portable font engine" "http://www.freetype.org" FALSE "" "") find_package(Vulkan) macro_log_feature(Vulkan_FOUND "vulkan-sdk" "Vulkan SDK" "https://vulkan.lunarg.com/" FALSE "" "") +find_package(glslang CONFIG) +macro_log_feature(glslang_FOUND "glslang" "glslang" "https://github.com/KhronosGroup/glslang" FALSE "" "") + # Find X11 if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN) find_package(X11) @@ -105,7 +111,7 @@ if (UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN) endif () # Find rapidjson -find_package(Rapidjson) +find_package(Rapidjson NAMES RapidJSON CONFIG REQUIRED) macro_log_feature(Rapidjson_FOUND "rapidjson" "C++ JSON parser" "https://rapidjson.org/" FALSE "" "") find_package(RenderDoc) diff --git a/RenderSystems/Vulkan/CMakeLists.txt b/RenderSystems/Vulkan/CMakeLists.txt index 2fc1859d86..ae8e4e29df 100644 --- a/RenderSystems/Vulkan/CMakeLists.txt +++ b/RenderSystems/Vulkan/CMakeLists.txt @@ -35,7 +35,7 @@ include_directories( include_directories( ${Vulkan_INCLUDE_DIRS} ) ogre_add_library(RenderSystem_Vulkan ${OGRE_LIB_TYPE} ${HEADER_FILES} ${SOURCE_FILES}) -target_link_libraries(RenderSystem_Vulkan ${OGRE_NEXT}Main ${Vulkan_LIBRARIES}) +target_link_libraries(RenderSystem_Vulkan ${OGRE_NEXT}Main ${Vulkan_LIBRARIES} glslang::glslang) if( OGRE_VULKAN_WINDOW_XCB ) target_link_libraries(RenderSystem_Vulkan xcb-randr X11-xcb) ================================================ FILE: ports/ogre-next/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_IOS AND NOT VCPKG_TARGET_IS_OSX AND NOT VCPKG_TARGET_IS_WINDOWS) message("${PORT} currently requires the following library from the system package manager:\n Xaw\n\nIt can be installed on Ubuntu systems via apt-get install libxaw7-dev") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OGRECave/ogre-next REF v${VERSION} SHA512 2ef8f16517c96cc7ddb31986857e4d0002e33c2eeff845b4af0b8e5848c3e92289dc3b10ededbe66fb63ef6234cbee88ed513466182bd4e70d710d0507f98418 HEAD_REF master PATCHES toolchain_fixes.patch fix-dependencies.patch ) file(REMOVE "${SOURCE_PATH}/CMake/Packages/FindFreeImage.cmake" "${SOURCE_PATH}/CMake/Packages/FindFreetype.cmake" "${SOURCE_PATH}/CMake/Packages/FindRapidjson.cmake" "${SOURCE_PATH}/CMake/Packages/FindVulkan.cmake" "${SOURCE_PATH}/CMake/Packages/FindZLIB.cmake" "${SOURCE_PATH}/CMake/Packages/FindZZip.cmake" ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES d3d11 OGRE_BUILD_RENDERSYSTEM_DirectX11 d3d11 CMAKE_REQUIRE_FIND_PACKAGE_DirectX11 gl3plus OGRE_BUILD_RENDERSYSTEM_GL3PLUS gl3plus CMAKE_REQUIRE_FIND_PACKAGE_OpenGL metal OGRE_BUILD_RENDERSYSTEM_METAL planar-reflections OGRE_BUILD_COMPONENT_PLANAR_REFLECTIONS vulkan OGRE_BUILD_RENDERSYSTEM_VULKAN vulkan CMAKE_REQUIRE_FIND_PACKAGE_Vulkan ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OGRE_STATIC) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_CXX_STANDARD=11 -DCMAKE_DISABLE_FIND_PACKAGE_AMDAGS=ON -DCMAKE_DISABLE_FIND_PACKAGE_CppUnit=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON -DCMAKE_DISABLE_FIND_PACKAGE_GLSLOptimizer=ON -DCMAKE_DISABLE_FIND_PACKAGE_HLSL2GLSL=ON -DCMAKE_DISABLE_FIND_PACKAGE_OpenVR=ON -DCMAKE_DISABLE_FIND_PACKAGE_POCO=ON -DCMAKE_DISABLE_FIND_PACKAGE_Remotery=ON -DCMAKE_DISABLE_FIND_PACKAGE_RenderDoc=ON -DCMAKE_DISABLE_FIND_PACKAGE_SDL2=ON -DCMAKE_DISABLE_FIND_PACKAGE_Softimage=ON -DCMAKE_DISABLE_FIND_PACKAGE_TBB=ON -DCMAKE_POLICY_DEFAULT_CMP0072=NEW # Prefer GLVND -DOGRE_ARCHIVE_OUTPUT=lib -DOGRE_LIBRARY_OUTPUT=lib -DOGRE_BUILD_LIBS_AS_FRAMEWORKS=OFF -DOGRE_BUILD_MSVC_MP=ON -DOGRE_BUILD_MSVC_ZM=ON -DOGRE_BUILD_RENDERSYSTEM_GLES=OFF -DOGRE_BUILD_RENDERSYSTEM_GLES2=OFF -DOGRE_BUILD_SAMPLES2=OFF -DOGRE_BUILD_TESTS=OFF -DOGRE_BUILD_TOOLS=OFF -DOGRE_COPY_DEPENDENCIES=OFF -DOGRE_INSTALL_DEPENDENCIES=OFF -DOGRE_INSTALL_DOCS=OFF -DOGRE_INSTALL_PDB=OFF -DOGRE_INSTALL_SAMPLES=OFF -DOGRE_INSTALL_TOOLS=OFF -DOGRE_INSTALL_VSPROPS=OFF -DOGRE_STATIC=${OGRE_STATIC} -DOGRE_USE_NEW_PROJECT_NAME=ON "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_AMDAGS CMAKE_REQUIRE_FIND_PACKAGE_DirectX11 OGRE_BUILD_MSVC_MP OGRE_BUILD_MSVC_ZM OGRE_BUILD_RENDERSYSTEM_DirectX11 OGRE_COPY_DEPENDENCIES OGRE_INSTALL_DEPENDENCIES OGRE_INSTALL_VSPROPS ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/ogre-next/toolchain_fixes.patch ================================================ diff --git a/CMake/CMakeLists.txt b/CMake/CMakeLists.txt index bcd74ff..b0ca7c1 100644 --- a/CMake/CMakeLists.txt +++ b/CMake/CMakeLists.txt @@ -18,6 +18,7 @@ if(WIN32 OR APPLE) else() set(OGRE_CMAKE_DIR "${OGRE_LIB_DIRECTORY}/${OGRE_NEXT_PREFIX}/cmake") endif() +set(OGRE_CMAKE_DIR "share/ogre-next") set(INST_FILES Packages/FindRapidjson.cmake diff --git a/CMake/ConfigureBuild.cmake b/CMake/ConfigureBuild.cmake index cd32ae3..171fe8f 100644 --- a/CMake/ConfigureBuild.cmake +++ b/CMake/ConfigureBuild.cmake @@ -261,6 +261,11 @@ if (UNIX) # there is no pkgconfig file for freeimage, so we need to add that lib manually set(OGRE_ADDITIONAL_LIBS "${OGRE_ADDITIONAL_LIBS} -lfreeimage") configure_file(${OGRE_TEMPLATES_DIR}/OGREStatic.pc.in ${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc @ONLY) + if(NOT X11_FOUND) + file(READ "${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc" ogre_pc) + string(REPLACE ", x11, xt, xaw7, gl" "" ogre_pc "${ogre_pc}") + file(WRITE "${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc" "${ogre_pc}") + endif() else () configure_file(${OGRE_TEMPLATES_DIR}/OGRE.pc.in ${OGRE_BINARY_DIR}/pkgconfig/${OGRE_NEXT_PREFIX}.pc @ONLY) endif () diff --git a/CMake/Utils/FindPkgMacros.cmake b/CMake/Utils/FindPkgMacros.cmake index 8365f58..d82de5e 100644 --- a/CMake/Utils/FindPkgMacros.cmake +++ b/CMake/Utils/FindPkgMacros.cmake @@ -81,6 +81,12 @@ endmacro (use_pkgconfig) macro(make_library_set PREFIX) if (${PREFIX}_FWK) set(${PREFIX} ${${PREFIX}_FWK}) + elseif (${PREFIX}_REL OR ${PREFIX}_DBG) + include("${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake") + set(${PREFIX}_RELEASE "${${PREFIX}_REL}") + set(${PREFIX}_DEBUG "${${PREFIX}_DBG}") + string(REPLACE "_LIBRARY" "" PREFIX_BASENAME "${PREFIX}") + select_library_configurations(${PREFIX_BASENAME}) elseif (${PREFIX}_REL AND ${PREFIX}_DBG) set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG}) elseif (${PREFIX}_REL) diff --git a/CMake/Utils/OgreConfigTargets.cmake b/CMake/Utils/OgreConfigTargets.cmake index 930dd36..3e4c335 100644 --- a/CMake/Utils/OgreConfigTargets.cmake +++ b/CMake/Utils/OgreConfigTargets.cmake @@ -41,7 +41,7 @@ if (NOT OGRE_RUNTIME_OUTPUT) set(OGRE_RUNTIME_OUTPUT ${OGRE_BINARY_DIR}/bin) endif () -if (WIN32) +if (0) set(OGRE_RELEASE_PATH "/Release") set(OGRE_RELWDBG_PATH "/RelWithDebInfo") set(OGRE_MINSIZE_PATH "/MinSizeRel") @@ -52,7 +52,7 @@ if (WIN32) set(OGRE_LIB_DEBUG_PATH "/Debug") set(OGRE_PLUGIN_PATH "/opt") set(OGRE_SAMPLE_PATH "/opt/samples") -elseif (UNIX) +elseif (1) set(OGRE_RELEASE_PATH "") set(OGRE_RELWDBG_PATH "") set(OGRE_MINSIZE_PATH "") diff --git a/CMakeLists.txt b/CMakeLists.txt index 93ec6f4..6380b15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -328,7 +328,6 @@ if (OGRE_BUILD_PLATFORM_APPLE_IOS) execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") else() - set(CMAKE_OSX_SYSROOT iphoneos) endif() set(CMAKE_EXE_LINKER_FLAGS "-framework Foundation -framework CoreGraphics -framework QuartzCore -framework UIKit") @@ -391,7 +390,6 @@ elseif (APPLE AND NOT OGRE_BUILD_PLATFORM_APPLE_IOS) execute_process(COMMAND xcodebuild -version -sdk "${XCODE_ATTRIBUTE_SDKROOT}" Path | head -n 1 OUTPUT_VARIABLE CMAKE_OSX_SYSROOT) string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}") else() - set(CMAKE_OSX_SYSROOT macosx) endif() set( CMAKE_XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES ) diff --git a/OgreMain/CMakeLists.txt b/OgreMain/CMakeLists.txt index d4ad520..0df005b 100644 --- a/OgreMain/CMakeLists.txt +++ b/OgreMain/CMakeLists.txt @@ -424,7 +424,7 @@ if (APPLE) LINK_FLAGS "-framework IOKit -framework Cocoa -framework Carbon -framework OpenGL -framework CoreVideo" ) - set(OGRE_OSX_BUILD_CONFIGURATION "$(PLATFORM_NAME)/$(CONFIGURATION)") + set(OGRE_OSX_BUILD_CONFIGURATION ".") add_custom_command(TARGET ${OGRE_NEXT}Main POST_BUILD COMMAND mkdir ARGS -p ${OGRE_BINARY_DIR}/lib/${OGRE_OSX_BUILD_CONFIGURATION}/Ogre.framework/Headers/Threading @@ -479,6 +479,9 @@ use_precompiled_header(${OGRE_NEXT}Main ) # install ${OGRE_NEXT}Main +if(MSVC) + set(OGRE_LIB_DIRECTORY lib/manual-link) +endif() ogre_config_lib(${OGRE_NEXT}Main TRUE) foreach(HEADER_FILE ${HEADER_FILES}) string(REGEX REPLACE "((${CMAKE_CURRENT_SOURCE_DIR}|${OGRE_BINARY_DIR})/)?(include|src)/" "" RELATIVE_HEADER_FILE ${HEADER_FILE}) diff --git a/OgreMain/include/OgrePlatform.h b/OgreMain/include/OgrePlatform.h index b5445ef..60fab21 100644 --- a/OgreMain/include/OgrePlatform.h +++ b/OgreMain/include/OgrePlatform.h @@ -508,7 +508,7 @@ THE SOFTWARE. // Define whether or not Ogre compiled with NEON support. # if OGRE_DOUBLE_PRECISION == 0 && OGRE_CPU == OGRE_CPU_ARM && \ - ( defined( __aarch64__ ) || defined( __ARM_NEON__ ) || \ + ( defined( __aarch64__ ) || defined( __ARM_NEON__ ) || defined(_M_ARM64) || \ defined( _WIN32_WINNT_WIN8 ) && _WIN32_WINNT >= _WIN32_WINNT_WIN8 ) # define __OGRE_HAVE_NEON 1 # endif ================================================ FILE: ports/ogre-next/vcpkg.json ================================================ { "name": "ogre-next", "version": "3.0.0", "description": "Ogre Next - scene-oriented, flexible 3D engine written in C++", "homepage": "https://github.com/OGRECave/ogre-next", "license": "MIT", "supports": "!emscripten & !uwp & !xbox", "dependencies": [ "freeimage", { "name": "freetype", "default-features": false }, "rapidjson", "tinyxml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zziplib" ], "default-features": [ { "name": "d3d11", "platform": "windows" }, { "name": "gl3plus", "platform": "!android & !ios & !osx & !windows" }, { "name": "metal", "platform": "ios | osx" }, { "name": "vulkan", "platform": "android" } ], "features": { "d3d11": { "description": "Direct3D 11 render system", "supports": "windows" }, "gl3plus": { "description": "OpenGL 3+ render system", "supports": "!android & !(arm & windows)" }, "metal": { "description": "Metal render system", "supports": "osx | ios" }, "planar-reflections": { "description": "Component to use planar reflections, can be used by both HlmsPbs and HlmsUnlit" }, "vulkan": { "description": "Vulkan render system", "supports": "!osx", "dependencies": [ "glslang", "vulkan" ] } } } ================================================ FILE: ports/ois/0001_install_pkgconfig_win32.patch ================================================ diff -Naur a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2021-05-14 03:09:42.000000000 +0800 +++ b/CMakeLists.txt 2022-03-08 12:48:17.012589000 +0800 @@ -255,7 +255,12 @@ install(FILES $ DESTINATION bin OPTIONAL) endif(MSVC AND BUILD_SHARED_LIBS) -if(UNIX) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/OIS.pc.in ${CMAKE_BINARY_DIR}/OIS.pc @ONLY) - install(FILES ${CMAKE_BINARY_DIR}/OIS.pc DESTINATION ${OIS_LIB_DIRECTORY}/pkgconfig) +if (CMAKE_DEBUG_POSTFIX AND CMAKE_BUILD_TYPE STREQUAL "Debug") + set(OIS_POSTFIX ${CMAKE_DEBUG_POSTFIX}) +else() + set(OIS_POSTFIX "") endif() + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/OIS.pc.in ${CMAKE_BINARY_DIR}/OIS.pc @ONLY) +install(FILES ${CMAKE_BINARY_DIR}/OIS.pc DESTINATION ${OIS_LIB_DIRECTORY}/pkgconfig) + diff -Naur a/OIS.pc.in b/OIS.pc.in --- a/OIS.pc.in 2021-05-14 03:09:42.000000000 +0800 +++ b/OIS.pc.in 2022-03-08 12:48:33.599696300 +0800 @@ -6,5 +6,5 @@ Name: OIS Description: Cross platform C++ Input Framework Version: @OIS_VERSION@ -Libs: -L${libdir} -lOIS +Libs: -L${libdir} -lOIS@OIS_POSTFIX@ Cflags: -I${includedir} -I${includedir}/ois ================================================ FILE: ports/ois/0002-fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e7f8716..45ef818 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,7 +218,7 @@ endif() if(UNIX) if (NOT APPLE) - target_link_libraries(OIS X11) + target_link_libraries(OIS X11::X11) endif() set_target_properties(OIS PROPERTIES ================================================ FILE: ports/ois/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wgois/OIS REF v${VERSION} SHA512 f9145d632d4cb0f23199be803aa0847d7d339c739e4a0c8f733e121c51a28e72254285416810271bf164b3447097a26ca55a05e1547b30078d19669c7e84445f HEAD_REF master PATCHES 0001_install_pkgconfig_win32.patch 0002-fix-cmake4.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Include files should not be duplicated into the /debug/include directory file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ois/vcpkg.json ================================================ { "name": "ois", "version": "1.6.0", "description": "Cross Platform Object Oriented Input Lib System. Meant to be very robust and compatible with many systems and operating systems.", "homepage": "https://wgois.github.io/OIS/", "license": "Zlib", "supports": "!(arm | arm64 | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/omniorb/add_win_into_autotools.patch ================================================ diff --git a/configure.ac b/configure.ac index d485463..2ba9c82 100644 --- a/configure.ac +++ b/configure.ac @@ -231,6 +231,7 @@ case "$host" in *-*-openbsd*) plat_name="OpenBSD"; plat_def="__openbsd__"; os_v="3";; *-*-sco*) plat_name="OSR5"; plat_def="__osr5__"; os_v="5";; *-*-gnu*) plat_name="GNU"; plat_def="__hurd__" ; os_v="0";; + *-*-mingw*) plat_name="Win32Platform"; plat_def="__WIN32__" ; os_v="4";; esac AC_SUBST(PLATFORM_NAME, $plat_name) diff --git a/mk/beforeauto.mk.in b/mk/beforeauto.mk.in index f078912..9aef646 100644 --- a/mk/beforeauto.mk.in +++ b/mk/beforeauto.mk.in @@ -1311,3 +1314,7 @@ endif lib_depend := $(patsubst %,$(LibPattern),omnithread) OMNITHREAD_LIB_DEPEND := $(GENERATE_LIB_DEPEND) + +ifdef Win32Platform +include $(THIS_IMPORT_TREE)/mk/platforms/vcpkg.mk +endif \ No newline at end of file diff --git a/mk/win32.mk b/mk/win32.mk index 94c9aad..f788d41 100644 --- a/mk/win32.mk +++ b/mk/win32.mk @@ -81,7 +81,6 @@ endif ifndef WINVER -WINVER = 0x0400 endif IMPORT_CPPFLAGS += -D__WIN32__ -D_WIN32_WINNT=$(WINVER) @@ -179,7 +179,7 @@ define CXXExecutable $(RM) $@; \ $(CXXLINK) -out:$@ $(CXXLINKOPTIONS) -PDB:$@.pdb $(IMPORT_LIBRARY_FLAGS) \ $(filter-out $(LibPattern),$^) $$libs; \ - $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest $@.manifest; \ + $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest $@.manifest; \ ) endef @@ -187,7 +187,7 @@ define CExecutable (set -x; \ $(RM) $@; \ $(CLINK) -out:$@ $(CLINKOPTIONS) -PDB:$@.pdb $(IMPORT_LIBRARY_FLAGS) $(filter-out $(LibPattern),$^) $$libs; \ - $(MANIFESTTOOL) /outputresource:"$@;#1" /manifest $@.manifest; \ + $(MANIFESTTOOL) -outputresource:"$@;#1" -manifest $@.manifest; \ ) endef @@ -356,18 +356,18 @@ extralinkoption="$(MSVC_DLL_CXXLINKDEBUGOPTIONS)"; \ else \ extralinkoption="$(MSVC_DLL_CXXLINKNODEBUGOPTIONS)"; \ fi; \ if [ -z "$$nodeffile" ]; then \ $(MakeCXXExportSymbolDefinitionFile) \ defflag="-def:$$defname"; \ fi; \ $(MakeResourceDefinitionFile) \ set -x; \ $(RM) $@; \ $(CXXLINK) -out:$$dllname -DLL $$extralinkoption \ $$defflag -IMPLIB:$@ $(IMPORT_LIBRARY_FLAGS) \ $^ $$extralibs $$resname; \ -$(MANIFESTTOOL) /outputresource:"$$dllname;#2" /manifest $$dllname.manifest; \ +$(MANIFESTTOOL) -outputresource:"$$dllname;#2" -manifest $$dllname.manifest; \ $(CP) $@ $$slibname; endef # Export SharedLibrary diff --git a/acinclude.m4 b/acinclude.m4 index cef87f8bd..cf61556bd 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -433,8 +433,8 @@ AC_SUBST(ENABLE_LONGDOUBLE, $omni_cv_enable_longdouble) dnl Enable ZIOP AC_DEFUN([OMNI_ENABLE_ZIOP], -[AC_CHECK_LIB(z,compressBound,omni_cv_enable_ziop_zlib=yes,omni_cv_enable_ziop_zlib=no) -AC_CHECK_LIB(zstd,ZSTD_compress,omni_cv_enable_ziop_zstd=yes,omni_cv_enable_ziop_zstd=no) +[AC_SEARCH_LIBS(compressBound,[z zlib zlibd],omni_cv_enable_ziop_zlib=yes,omni_cv_enable_ziop_zlib=no) +AC_SEARCH_LIBS(ZSTD_compress,[zstd zstdd],omni_cv_enable_ziop_zstd=yes,omni_cv_enable_ziop_zstd=no) omni_cv_enable_ziop="no" if test "$omni_cv_enable_ziop_zlib" = "yes"; then omni_cv_enable_ziop="yes" diff --git a/mk/win32.mk b/mk/win32.mk index 741835b4b..7a5bff934 100644 --- a/mk/win32.mk +++ b/mk/win32.mk @@ -580,8 +580,7 @@ OMNIORB_IDL = $(OMNIORB_IDL_ONLY) $(OMNIORB_IDL_ANY_FLAGS) OMNIORB_CPPFLAGS = -D__OMNIORB4__ -I$(CORBA_STUB_DIR) $(OMNITHREAD_CPPFLAGS) OMNIORB_IDL_OUTPUTDIR_PATTERN = -C% -msvc_work_around_stub = $(patsubst %,$(LibPattern),msvcstub) \ - -NODEFAULTLIB:libcmt.lib -NODEFAULTLIB:libcmtd.lib +msvc_work_around_stub = $(patsubst %,$(LibPattern),msvcstub) OMNIORB_LIB = $(omniorb_dll_name) \ $(omnidynamic_dll_name) \ diff --git a/src/tool/dir.mk b/src/tool/dir.mk index c6cb127d9..d75ba288a 100644 --- a/src/tool/dir.mk +++ b/src/tool/dir.mk @@ -11,7 +11,7 @@ SUBDIRS = omkdepend omniidl endif ifdef Win32Platform -SUBDIRS = omniidl +SUBDIRS = omkdepend omniidl endif diff --git a/mk/win32.mk b/mk/win32.mk index 6d320a2bd..3983eba5c 100644 --- a/mk/win32.mk +++ b/mk/win32.mk @@ -40,12 +40,7 @@ SORT = sort endif -AR = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/libwrapper $(XLN) -CXX = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN) -CXXLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN) CXXMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D__cplusplus -D_MSC_VER -CC = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/clwrapper $(XLN) -CLINK = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/linkwrapper $(XLN) CMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D_MSC_VER RCTOOL = rc.exe @@ -83,7 +83,7 @@ endif ifndef WINVER endif -IMPORT_CPPFLAGS += -D__WIN32__ -D_WIN32_WINNT=$(WINVER) +IMPORT_CPPFLAGS += -D__WIN32__ SOCKET_LIB = ws2_32.lib mswsock.lib diff --git a/mk/beforeauto.mk.in b/mk/beforeauto.mk.in index b7087ea36..d7a826fa9 100644 --- a/mk/beforeauto.mk.in +++ b/mk/beforeauto.mk.in @@ -36,6 +36,8 @@ BINDIR = bin prefix := @prefix@ exec_prefix := @exec_prefix@ +includedir := @includedir@ +libdir := @libdir@ INSTALLTARGET := 1 INSTALLINCDIR := $(DESTDIR)@includedir@ INSTALLBINDIR := $(DESTDIR)@bindir@ @@ -362,6 +364,9 @@ endef # # Patterns for various file types # + +ifndef Win32Platform + LibPathPattern = -L% LibNoDebugPattern = lib%.a LibDebugPattern = lib%.a @@ -371,6 +376,37 @@ LibSearchPattern = -l% BinPattern = % TclScriptPattern = % +else + +LibPathPattern = -libpath:% +LibNoDebugPattern = %.lib +LibDebugPattern = %d.lib +DLLNoDebugPattern = %_rt.lib +DLLDebugPattern = %_rtd.lib +LibNoDebugSearchPattern = %.lib +LibDebugSearchPattern = %d.lib +DLLNoDebugSearchPattern = %_rt.lib +DLLDebugSearchPattern = %_rtd.lib + + +ifndef BuildDebugBinary + +LibPattern = $(LibNoDebugPattern) +DLLPattern = $(DLLNoDebugPattern) +LibSearchPattern = $(LibNoDebugSearchPattern) +DLLSearchPattern = $(DLLNoDebugSearchPattern) + +else + +LibPattern = $(LibDebugPattern) +DLLPattern = $(DLLDebugPattern) +LibSearchPattern = $(LibDebugSearchPattern) +DLLSearchPattern = $(DLLDebugSearchPattern) +endif + +endif + + # # Stuff to generate statically-linked libraries. diff --git a/src/services/mklib/dynstublib/dir.mk b/src/services/mklib/dynstublib/dir.mk index e128aa87a..f2e1448b3 100644 --- a/src/services/mklib/dynstublib/dir.mk +++ b/src/services/mklib/dynstublib/dir.mk @@ -17,6 +17,14 @@ ifdef Win32Platform MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC endif +ifdef Win32Platform +# in case of Win32 lossage: +dynimps := COS$(OMNIORB_MAJOR_VERSION)$(OMNIORB_MINOR_VERSION)$(OMNIORB_MICRO_VERSION)_rt.lib \ + $(patsubst $(DLLDebugSearchPattern),$(DLLNoDebugSearchPattern), $(OMNIORB_LIB)) +else +dynimps := $(OMNIORB_COS_LIB) $(OMNIORB_LIB) +endif + ifndef NoReleaseBuild all:: mkstatic mkshared @@ -75,14 +83,6 @@ dynskshared = shared/$(shell $(SharedLibraryFullName) $(dynsknamespec)) MDFLAGS += -p shared/ -ifdef Win32Platform -# in case of Win32 lossage: -dynimps := COS$(OMNIORB_MAJOR_VERSION)$(OMNIORB_MINOR_VERSION)$(OMNIORB_MICRO_VERSION)_rt.lib \ - $(patsubst $(DLLDebugSearchPattern),$(DLLNoDebugSearchPattern), $(OMNIORB_LIB)) -else -dynimps := $(OMNIORB_COS_LIB) $(OMNIORB_LIB) -endif - mkshared:: @(dir=shared; $(CreateDir)) diff --git a/mk/win32.mk b/mk/win32.mk index 83f1b1687..741835b4b 100644 --- a/mk/win32.mk +++ b/mk/win32.mk @@ -43,5 +43,5 @@ endif -CXXMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D__cplusplus -D_MSC_VER +CXXMAKEDEPEND = $(OMKDEPEND) -D__cplusplus -D_MSC_VER -CMAKEDEPEND = $(BASE_OMNI_TREE)/$(WRAPPER_FPATH)/omkdepend $(MKDEPOPT) -D_MSC_VER +CMAKEDEPEND = $(OMKDEPEND) $(MKDEPOPT) -D_MSC_VER RCTOOL = rc.exe MANIFESTTOOL = true @@ -145,7 +145,7 @@ BinPattern = %.exe define StaticLinkLibrary (set -x; \ $(RM) $@; \ - $(AR) $@ $^; \ + $(AR) -OUT:$@ $^; \ ) endef @@ -439,12 +444,11 @@ endef # The pattern rules below ensured that the right compiler flags are used # to compile the source for the library. +ifndef NoReleaseBuild + static/%.o: %.cc $(CXX) -c $(CXXDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $< -debug/%.o: %.cc - $(CXX) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fddebug\\$(LIB_NAME)$(major)d.pdb $< - shared/%DynSK.o: %DynSK.cc $(CXX) -c $(CXXDEBUGFLAGS) -DUSE_core_stub_in_nt_dll $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshared\\ $< @@ -454,6 +458,18 @@ shared/%SK.o: %SK.cc shared/%.o: %.cc $(CXX) -c $(CXXDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshared\\ $< +static/%.o: %.c + $(CC) -c $(CDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $< + +shared/%.o: %.c + $(CC) -c $(CDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ $< + +endif + +ifndef NoDebugBuild + +debug/%.o: %.cc + $(CXX) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fddebug\\$(LIB_NAME)$(major)d.pdb $< shareddebug/%DynSK.o: %DynSK.cc $(CXX) -c -DUSE_core_stub_in_nt_dll $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshareddebug\\ $< @@ -464,19 +480,14 @@ shareddebug/%SK.o: %SK.cc shareddebug/%.o: %.cc $(CXX) -c $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdshareddebug\\ $< -static/%.o: %.c - $(CC) -c $(CDEBUGFLAGS) $(MSVC_STATICLIB_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major).pdb $< - debug/%.o: %.c $(CC) -c $(MSVC_STATICLIB_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ -Fdstatic\\$(LIB_NAME)$(major)d.pdb $< -shared/%.o: %.c - $(CC) -c $(CDEBUGFLAGS) $(MSVC_DLL_CXXNODEBUGFLAGS) $(CPPFLAGS) -Fo$@ $< - - shareddebug/%.o: %.c $(CC) -c $(MSVC_DLL_CXXDEBUGFLAGS) $(CPPFLAGS) -Fo$@ $< +endif + # # Replacements for implicit rules ================================================ FILE: ports/omniorb/def_gen_fix.patch ================================================ diff --git a/mk/win32.mk b/mk/win32.mk index fc179563e..15903919a 100644 --- a/mk/win32.mk +++ b/mk/win32.mk @@ -264,12 +264,12 @@ endef define MakeCXXExportSymbolDefinitionFile symrefdir=$${debug:+debug}; \ symreflib=$(SharedLibrarySymbolRefLibraryTemplate); \ if [ ! -f $$symreflib ]; then echo "Cannot find reference static library $$symreflib"; return 1; fi; \ set -x; \ echo "LIBRARY $$dllbase" > $$defname; \ echo "VERSION $$version" >> $$defname; \ echo "EXPORTS" >> $$defname; \ -DUMPBIN.EXE /SYMBOLS $$symreflib | \ +DUMPBIN.EXE $$symreflib -SYMBOLS | \ egrep '^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +\(\) +External +\| +\?[^ ]*|^[^ ]+ +[^ ]+ +SECT[^ ]+ +[^ ]+ +External +\| +\?[^?][^ ]*'|\ egrep -v 'deleting destructor[^(]+\(unsigned int\)' | \ egrep -v 'anonymous namespace' | \ ================================================ FILE: ports/omniorb/fix_dependency.patch ================================================ diff --git a/mk/mklib.mk b/mk/mklib.mk index fb83cf391..9b28a314b 100644 --- a/mk/mklib.mk +++ b/mk/mklib.mk @@ -100,6 +100,10 @@ $(shlib): $(patsubst %, shared/%, $(LIB_OBJS) $(LIB_SHARED_ONLY_OBJS)) @(namespec="$(namespec)" extralibs="$(imps) $(extralibs)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(shlib): | $(staticlib) +endif + export:: $(shlib) @(namespec="$(namespec)"; \ $(ExportSharedLibrary)) @@ -209,6 +211,10 @@ $(dbugshlib): $(patsubst %, shareddebug/%, $(LIB_OBJS) $(LIB_SHARED_ONLY_OBJS)) (namespec="$(namespec)" debug=1 extralibs="$(dbugimps) $(extralibs)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(dbugshlib): | $(dbuglib) +endif + export:: $(dbugshlib) @(namespec="$(namespec)" debug=1; \ $(ExportSharedLibrary)) diff --git a/src/services/mklib/stublib/dir.mk b/src/services/mklib/stublib/dir.mk index ce46f6c5f..eb619e5c5 100644 --- a/src/services/mklib/stublib/dir.mk +++ b/src/services/mklib/stublib/dir.mk @@ -92,6 +92,10 @@ $(skshared): $(patsubst %, shared/%, $(COS_SK_OBJS)) @(namespec="$(sknamespec)"; extralibs="$(imps) $(extralibs)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(skshared): | $(sk) +endif + export:: $(skshared) @(namespec="$(sknamespec)"; \ $(ExportSharedLibrary)) @@ -168,6 +170,10 @@ $(skshareddbug): $(patsubst %, shareddebug/%, $(COS_SK_OBJS)) (namespec="$(sknamespec)"; debug=1; extralibs="$(dbugimps) $(extralibs)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(skshareddbug): | $(skdbug) +endif + export:: $(skshareddbug) @(namespec="$(sknamespec)" debug=1; \ $(ExportSharedLibrary)) diff --git a/src/services/mklib/dynstublib/dir.mk b/src/services/mklib/dynstublib/dir.mk index f2e1448b3..9134e8aba 100644 --- a/src/services/mklib/dynstublib/dir.mk +++ b/src/services/mklib/dynstublib/dir.mk @@ -92,6 +92,10 @@ $(dynskshared): $(skshared) $(patsubst %, shared/%, $(COS_DYNSK_OBJS)) @(namespec="$(dynsknamespec)"; extralibs="$(dynimps)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(dynskshared): | $(dynsk) +endif + export:: $(dynskshared) @(namespec="$(dynsknamespec)"; \ $(ExportSharedLibrary)) @@ -169,6 +171,10 @@ $(dynskshareddbug): $(patsubst %, shareddebug/%, $(COS_DYNSK_OBJS)) @(namespec="$(dynsknamespec)"; debug=1; extralibs="$(skshareddbug) $(dbugimps) $(extralibs)"; \ $(MakeCXXSharedLibrary)) +ifdef Win32Platform +$(dynskshareddbug): | $(dynskdbug) +endif + export:: $(dynskshareddbug) @(namespec="$(dynsknamespec)" debug=1; \ $(ExportSharedLibrary)) ================================================ FILE: ports/omniorb/hardcode_vaargs_for_msvc.patch ================================================ diff --git a/src/tool/omniidl/cxx/cccp/cccp.c b/src/tool/omniidl/cxx/cccp/cccp.c index 507c330..5651b3e 100644 --- a/src/tool/omniidl/cxx/cccp/cccp.c +++ b/src/tool/omniidl/cxx/cccp/cccp.c @@ -182,15 +182,20 @@ my_bzero (b, length) # endif #endif +#if defined(_MSC_VER) +#define OMNI_HAVE_VPRINTF +#define __STDC__ +#endif + #if defined (__STDC__) && defined (OMNI_HAVE_VPRINTF) # include # define VA_START(va_list, var) va_start (va_list, var) # define PRINTF_ALIST(msg) char *msg, ... # define PRINTF_DCL(msg) # define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n))) #else # include # define VA_START(va_list, var) va_start (va_list) # define PRINTF_ALIST(msg) msg, va_alist # define PRINTF_DCL(msg) char *msg; va_dcl # define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n))) diff --git a/src/tool/omniidl/cxx/cccp/cexp.c b/src/tool/omniidl/cxx/cccp/cexp.c index 4b4679c..b534fb3 100644 --- a/src/tool/omniidl/cxx/cccp/cexp.c +++ b/src/tool/omniidl/cxx/cccp/cexp.c @@ -152,15 +152,20 @@ struct arglist { # endif #endif +#if defined(_MSC_VER) +#define OMNI_HAVE_VPRINTF +#define __STDC__ +#endif + #if defined (__STDC__) && defined (OMNI_HAVE_VPRINTF) # include # define VA_START(va_list, var) va_start (va_list, var) # define PRINTF_ALIST(msg) char *msg, ... # define PRINTF_DCL(msg) # define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n))) #else # include # define VA_START(va_list, var) va_start (va_list) # define PRINTF_ALIST(msg) msg, va_alist # define PRINTF_DCL(msg) char *msg; va_dcl # define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n))) diff --git a/src/tool/omniidl/cxx/cccp/cexp.y.source b/src/tool/omniidl/cxx/cccp/cexp.y.source index 6fc69f5..6f59873 100644 --- a/src/tool/omniidl/cxx/cccp/cexp.y.source +++ b/src/tool/omniidl/cxx/cccp/cexp.y.source @@ -111,15 +111,20 @@ struct arglist { # endif #endif +#if defined(_MSC_VER) +#define OMNI_HAVE_VPRINTF +#define __STDC__ +#endif + -#if defined (__STDC__) && defined (HAVE_VPRINTF) +#if defined (__STDC__) && defined (OMNI_HAVE_VPRINTF) # include # define VA_START(va_list, var) va_start (va_list, var) # define PRINTF_ALIST(msg) char *msg, ... # define PRINTF_DCL(msg) # define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n))) #else # include # define VA_START(va_list, var) va_start (va_list) # define PRINTF_ALIST(msg) msg, va_alist # define PRINTF_DCL(msg) char *msg; va_dcl # define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n))) ================================================ FILE: ports/omniorb/msvc-src-build-fixes.patch ================================================ diff --git a/include/omnithread/atomic.h b/include/omnithread/atomic.h index 3fed8df..e1b6a71 100644 --- a/include/omnithread/atomic.h +++ b/include/omnithread/atomic.h @@ -27,7 +27,7 @@ #define __omnithread_atomic_h_ -#ifdef OMNI_HAVE_SYNC_ADD_AND_FETCH +#if defined(OMNI_HAVE_SYNC_ADD_AND_FETCH) && !defined(_MSC_VER) # define OMNI_REFCOUNT_DEFINED ================================================ FILE: ports/omniorb/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://netcologne.dl.sourceforge.net/project/omniorb/omniORB/omniORB-${VERSION}/omniORB-${VERSION}.tar.bz2" FILENAME "omniORB-${VERSION}.tar.bz2" SHA512 b081c1acbea3c7bee619a288fec209a0705b7d436f8e5fd4743675046356ef271a8c75882334fcbde4ff77d15f54d2da55f6cfcd117b01e42919d04fd29bfe2f ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set (PATCHES hardcode_vaargs_for_msvc.patch ) set (OPTIONS ac_cv_prog_cc_g=yes ac_cv_prog_cxx_11=no ac_cv_prog_cxx_g=yes omni_cv_sync_add_and_fetch=no ) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix_dependency.patch def_gen_fix.patch msvc-src-build-fixes.patch release-debug-static.patch add_win_into_autotools.patch python-fixes.patch ${PATCHES} ) vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/python3") # port ask python distutils for info. if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{PYTHONPATH} "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/Lib${VCPKG_HOST_PATH_SEPARATOR}${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/python${VCPKG_HOST_PATH_SEPARATOR}${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/python") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) file(GLOB _py3_include_path "${CURRENT_HOST_INSTALLED_DIR}/include/python3*") string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp "${_py3_include_path}") set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") list(APPEND OPTIONS "PYTHON=${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python3.${PYTHON_VERSION_MINOR}") endif() vcpkg_find_acquire_program(FLEX) cmake_path(GET FLEX PARENT_PATH FLEX_DIR) vcpkg_add_to_path("${FLEX_DIR}") vcpkg_find_acquire_program(BISON) cmake_path(GET BISON PARENT_PATH BISON_DIR) vcpkg_add_to_path("${BISON_DIR}") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(z_vcpkg_org_linkage "${VCPKG_LIBRARY_LINKAGE}") # convoluted build system; shared builds requires # static library to create def file for symbol export # tools seem to only dynamically link on windows due to make rules! # zlib/zstd deps for ZIOP seem to not work on windows. At least configure # won't run the required checks for some reasons. set(VCPKG_LIBRARY_LINKAGE dynamic) z_vcpkg_get_cmake_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_BUILD_TYPE) string(APPEND build_info "NoDebugBuild=1\n") endif() string(APPEND build_info "replace-with-per-config-text\n") set(progs C_COMPILER CXX_COMPILER AR LINKER RANLIB OBJDUMP MT STRIP NM DLLTOOL RC_COMPILER) list(TRANSFORM progs PREPEND "VCPKG_DETECTED_CMAKE_") foreach(prog IN LISTS progs) if(${prog}) set(path "${${prog}}") unset(prog_found CACHE) get_filename_component(${prog} "${${prog}}" NAME) find_program(prog_found ${${prog}} PATHS ENV PATH NO_DEFAULT_PATH) if(NOT path STREQUAL prog_found) get_filename_component(path "${path}" DIRECTORY) vcpkg_add_to_path(PREPEND ${path}) endif() endif() endforeach() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg.mk" "${SOURCE_PATH}/mk/platforms/vcpkg.mk" @ONLY NEWLINE_STYLE UNIX) file(GLOB_RECURSE wrappers "${SOURCE_PATH}/bin/x86_win32/*") file(COPY ${wrappers} DESTINATION "${SOURCE_PATH}/bin") endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG NO_WRAPPERS COPY_SOURCE OPTIONS ${OPTIONS} ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel//mk/platforms/vcpkg.mk" "replace-with-per-config-text" "NoDebugBuild=1") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/mk/platforms/vcpkg.mk" "replace-with-per-config-text" "NoReleaseBuild=1\nBuildDebugBinary=1") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/tool/omniidl/cxx/dir.mk" "python$(subst .,,$(PYVERSION)).lib" "python$(subst .,,$(PYVERSION))_d.lib") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/tool/omniidl/cxx/dir.mk" "zlib.lib" "zlibd.lib") endif() endif() vcpkg_install_make( MAKEFILE "GNUmakefile" ADD_BIN_TO_PATH ) vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/msvcstub.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(GLOB all_libs "${CURRENT_PACKAGES_DIR}/lib/*.lib") set(import_libs "${all_libs}") list(FILTER import_libs INCLUDE REGEX "(_rt.lib$|msvcstub)") if(z_vcpkg_org_linkage STREQUAL "static") file(REMOVE ${import_libs}) else() list(REMOVE_ITEM all_libs ${import_libs}) file(REMOVE ${all_libs}) # remove installed static libs set(to_copy_and_rename "${import_libs}") list(FILTER to_copy_and_rename INCLUDE REGEX "3(0)?_rt.lib") foreach(cp IN LISTS to_copy_and_rename) string(REGEX REPLACE "3(0)?_rt" "" new_name "${cp}") string(REGEX REPLACE "thread4" "thread" new_name "${new_name}") file(COPY_FILE "${cp}" "${new_name}") endforeach() file(GLOB dll_files "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/*.dll") file(COPY ${dll_files} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") foreach(pc_file IN LISTS pc_files) get_filename_component(filename "${pc_file}" NAME_WE) if(filename STREQUAL "omnithread3") vcpkg_replace_string("${pc_file}" "-lomnithread" "-lomnithread_rt") else() vcpkg_replace_string("${pc_file}" "-l${filename}" "-l${filename}_rt" IGNORE_UNCHANGED) endif() endforeach() endif() if(NOT VCPKG_BUILD_TYPE) # dbg libs have no install rules so manually copy them. file(GLOB all_libs "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/*.lib") set(install_libs "${all_libs}") if(z_vcpkg_org_linkage STREQUAL "static") list(FILTER install_libs EXCLUDE REGEX "(_rtd.lib$|msvcstub)") else() # dynamic lib list(FILTER install_libs INCLUDE REGEX "(_rtd.lib$|msvcstub)") set(to_copy_and_rename "${install_libs}") list(FILTER to_copy_and_rename INCLUDE REGEX "3(0)?_rtd.lib") foreach(cp IN LISTS to_copy_and_rename) string(REGEX REPLACE "3(0)?_rt" "" new_name "${cp}") string(REGEX REPLACE "thread4" "thread" new_name "${new_name}") file(COPY_FILE "${cp}" "${new_name}") list(APPEND install_libs "${new_name}") endforeach() file(GLOB dll_files "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/*.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY ${dll_files} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(pc_file IN LISTS pc_files) get_filename_component(filename "${pc_file}" NAME_WE) if(filename STREQUAL "omnithread3") vcpkg_replace_string("${pc_file}" "-lomnithread" "-lomnithread_rtd") else() vcpkg_replace_string("${pc_file}" "-l${filename}" "-l${filename}_rtd" IGNORE_UNCHANGED) endif() endforeach() endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(COPY ${install_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LIB") # Lib is LGPL file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" RENAME copyright) # Tools etc are GPL vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/omnicpp${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" ) endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/omniidl${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin" ) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") # Restore old linkage info. if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_LIBRARY_LINKAGE "${z_vcpkg_org_linkage}") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/omniidl" "${CURRENT_INSTALLED_DIR}" "\"os.path.dirname(__file__)+\"/../../../") endif() set(del_files "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB del_files "${CURRENT_PACKAGES_DIR}/lib/*.a" "${CURRENT_PACKAGES_DIR}/debug/lib/*.a") if(del_files) file(REMOVE ${del_files}) endif() else() file(GLOB del_files "${CURRENT_PACKAGES_DIR}/lib/*.so*" "${CURRENT_PACKAGES_DIR}/debug/lib/*.so*") if(del_files) file(REMOVE ${del_files}) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/omniorb/python-fixes.patch ================================================ diff --git a/mk/python.mk b/mk/python.mk index 1380018..fb321a5 100644 --- a/mk/python.mk +++ b/mk/python.mk @@ -3,10 +3,10 @@ ############################################################################# PYVERSION := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(".".join(sys.version.split(".")[:2]))') -PYPREFIX := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(sys.exec_prefix.replace("\\","/"))') -PYINCDIR := $(shell $(PYTHON) -c 'import sys, distutils.sysconfig; sys.stdout.write(distutils.sysconfig.get_python_inc().replace("\\","/"))') +PYPREFIX := $(shell $(PYTHON) -c 'import sys; sys.stdout.write(sys.exec_prefix.replace("\\","/").replace(" ","\\ "))') +PYINCDIR := $(includedir)/python$(PYVERSION) -PythonSHAREDLIB_SUFFIX = $(shell $(PYTHON) -c 'import sys, distutils.sysconfig; sys.stdout.write((distutils.sysconfig.get_config_var("SO") or ".so").lstrip("."))') +PythonSHAREDLIB_SUFFIX = $(shell $(PYTHON) -c 'import sys, sysconfig; sys.stdout.write((sysconfig.get_config_var("SO") or ".so").lstrip("."))') PY_MODULE_SUFFIX := $(shell $(PYTHON) -c 'import sys; sys.stdout.write((sys.hexversion < 0x3000000 and not hasattr(sys, "pypy_version_info")) and "module" or "")') diff --git a/src/tool/omniidl/cxx/idlpython.cc b/src/tool/omniidl/cxx/idlpython.cc index 639515105..27ad3ee0e 100644 --- a/src/tool/omniidl/cxx/idlpython.cc +++ b/src/tool/omniidl/cxx/idlpython.cc @@ -27,8 +27,6 @@ // On Windows, if _DEBUG is defined, some Python versions try to force // use of _d.lib libraries that are not actually present. -#undef _DEBUG - #include #include diff --git a/src/tool/omniidl/cxx/dir.mk b/src/tool/omniidl/cxx/dir.mk index 84f10ac03..3b5a60b87 100644 --- a/src/tool/omniidl/cxx/dir.mk +++ b/src/tool/omniidl/cxx/dir.mk @@ -190,13 +190,13 @@ ifdef Win32Platform DIR_CPPFLAGS += -DMSDOS -DOMNIIDL_EXECUTABLE -PYLIBDIR := $(PYPREFIX)/libs $(PYPREFIX)/lib/x86_win32 +PYLIBDIR := $(libdir) ifdef MinGW32Build PYLIB := -lpython$(subst .,,$(PYVERSION)) CXXLINKOPTIONS += $(patsubst %,-L%,$(PYLIBDIR)) else -PYLIB := python$(subst .,,$(PYVERSION)).lib +PYLIB = python$(subst .,,$(PYVERSION)).lib zlib.lib Advapi32.lib CXXLINKOPTIONS += $(patsubst %,-libpath:%,$(PYLIBDIR)) endif ================================================ FILE: ports/omniorb/release-debug-static.patch ================================================ diff --git a/mk/mklib.mk b/mk/mklib.mk index 8f64b14dd..1d73cfdbe 100644 --- a/mk/mklib.mk +++ b/mk/mklib.mk @@ -16,6 +16,8 @@ # are called libfoo.a and libfoo.so.1.3 etc. # +ifndef NoReleaseBuild + all:: mkstatic mkshared export:: mkstatic mkshared @@ -147,9 +149,13 @@ mkshared:: endif +endif + ############################################################################## # Build debug libraries for Win32 ############################################################################## +ifndef NoDebugBuild + ifdef Win32Platform ifdef BuildSharedLibrary @@ -231,3 +237,4 @@ veryclean:: endif endif +endif \ No newline at end of file diff --git a/src/lib/dir.mk b/src/lib/dir.mk index 732f8457c..bff3144f8 100644 --- a/src/lib/dir.mk +++ b/src/lib/dir.mk @@ -17,9 +17,14 @@ ciao:: ifndef EmbeddedSystem ifdef Win32Platform ifndef MinGW32Build +ifndef NoReleaseBuild export:: (cd $(EXPORT_TREE)/$(BINDIR); editbin /REBASE:BASE=0x68000000,DOWN *_rt.dll; ) +endif +ifndef NoDebugBuild +export:: (cd $(EXPORT_TREE)/$(BINDIR); editbin /REBASE:BASE=0x68000000,DOWN *_rtd.dll; ) endif endif endif +endif diff --git a/src/lib/omnithread/dir.mk b/src/lib/omnithread/dir.mk index ed2194c98..adb87adba 100644 --- a/src/lib/omnithread/dir.mk +++ b/src/lib/omnithread/dir.mk @@ -32,14 +32,6 @@ LIB_VERSION := $(OMNITHREAD_VERSION) LIB_OBJS := $(CXXSRCS:.cc=.o) LIB_IMPORTS := $(OMNITHREAD_PLATFORM_LIB) -all:: mkstatic mkshared - -export:: mkstatic mkshared - -ifdef INSTALLTARGET -install:: mkstatic mkshared -endif - vers := $(subst ., ,$(LIB_VERSION)) ifeq ($(words $(vers)), 2) vers := _ $(vers) @@ -50,6 +42,16 @@ endif namespec := $(LIB_NAME) $(vers) +ifndef NoReleaseBuild + +all:: mkstatic mkshared + +export:: mkstatic mkshared + +ifdef INSTALLTARGET +install:: mkstatic mkshared +endif + ############################################################################## # Build Static library ############################################################################## @@ -158,9 +160,12 @@ mkshared:: endif +endif ############################################################################## # Build debug libraries for Win32 ############################################################################## +ifndef NoDebugBuild + ifdef Win32Platform ifdef BuildSharedLibrary @@ -239,4 +244,4 @@ veryclean:: endif endif - +endif diff --git a/src/services/mklib/dynstublib/dir.mk b/src/services/mklib/dynstublib/dir.mk index 23573345d..e128aa87a 100644 --- a/src/services/mklib/dynstublib/dir.mk +++ b/src/services/mklib/dynstublib/dir.mk @@ -12,15 +12,18 @@ COS_DYNSK_SRCS = $(COS_INTERFACES:%=%DynSK.cc) CXXSRCS = $(COS_DYNSK_SRCS) -all:: mkstatic mkshared - -export:: mkstatic mkshared - ifdef Win32Platform MSVC_STATICLIB_CXXNODEBUGFLAGS += -D_WINSTATIC MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC endif +ifndef NoReleaseBuild +all:: mkstatic mkshared + +export:: mkstatic mkshared + + + ############################################################################## # Build Static library @@ -108,10 +111,11 @@ else mkshared:: endif - +endif ############################################################################## # Build debug libraries for Win32 ############################################################################## +ifndef NoDebugBuild ifdef Win32Platform all:: mkstaticdbug mkshareddbug @@ -145,6 +149,7 @@ clean:: ##################################################### # DLL debug libraries ##################################################### + shareddbugversion = $(OMNIORB_VERSION) dynsknamespec = $(subst ., ,$(COS_DYNSKLIB_NAME).$(shareddbugversion)) @@ -173,3 +178,4 @@ clean:: @(dir=shareddebug; $(CleanSharedLibrary)) endif +endif \ No newline at end of file diff --git a/src/services/mklib/mkBOAlib/dir.mk b/src/services/mklib/mkBOAlib/dir.mk index 1869d083d..18cc38764 100644 --- a/src/services/mklib/mkBOAlib/dir.mk +++ b/src/services/mklib/mkBOAlib/dir.mk @@ -16,6 +16,8 @@ COS_SK_OBJS = $(COS_INTERFACES:%=%SK.o) COS_SK_SRCS = $(COS_INTERFACES:%=%SK.cc) CXXSRCS = $(COS_SK_SRCS) +ifndef NoReleaseBuild + all:: mkstatic mkshared export:: mkstatic mkshared @@ -124,10 +126,11 @@ else mkshared:: endif - +endif ############################################################################## # Build debug libraries for Win32 ############################################################################## +ifndef NoDebugBuild ifdef Win32Platform all:: mkstaticdbug mkshareddbug @@ -190,4 +193,4 @@ clean:: endif - +endif diff --git a/src/services/mklib/stublib/dir.mk b/src/services/mklib/stublib/dir.mk index d58027d84..87f7ec22b 100644 --- a/src/services/mklib/stublib/dir.mk +++ b/src/services/mklib/stublib/dir.mk @@ -12,15 +12,18 @@ COS_SK_SRCS = $(COS_INTERFACES:%=%SK.cc) CXXSRCS = $(COS_SK_SRCS) -all:: mkstatic mkshared - -export:: mkstatic mkshared - ifdef Win32Platform MSVC_STATICLIB_CXXNODEBUGFLAGS += -D_WINSTATIC MSVC_STATICLIB_CXXDEBUGFLAGS += -D_WINSTATIC endif +ifndef NoReleaseBuild + +all:: mkstatic mkshared + +export:: mkstatic mkshared + + ############################################################################## # Build Static library @@ -108,10 +111,11 @@ else mkshared:: endif - +endif ############################################################################## # Build debug libraries for Win32 ############################################################################## +ifdef NoDebugBuild ifdef Win32Platform all:: mkstaticdbug mkshareddbug @@ -173,3 +177,4 @@ clean:: @(dir=shareddebug; $(CleanSharedLibrary)) endif +endif diff --git a/src/lib/omniORB/orbcore/dir.mk b/src/lib/omniORB/orbcore/dir.mk index 634e6b1e2..4370fed07 100644 --- a/src/lib/omniORB/orbcore/dir.mk +++ b/src/lib/omniORB/orbcore/dir.mk @@ -220,6 +220,7 @@ include $(BASE_OMNI_TREE)/mk/mklib.mk ######################################################################### ifdef Win32Platform +ifndef NoReleaseBuild stublib = static/$(patsubst %,$(LibNoDebugPattern),msvcstub) @@ -236,6 +237,8 @@ clean:: veryclean:: $(RM) $(stublib) +endif +ifndef NoDebugBuild stubdblib = debug/$(patsubst %,$(LibDebugPattern),msvcstub) @@ -254,6 +257,7 @@ veryclean:: $(RM) $(stubdblib) endif +endif ######################################################################### ifdef OPEN_SSL_ROOT diff --git a/src/services/mklib/stublib/dir.mk b/src/services/mklib/stublib/dir.mk index 87f7ec22b..ce46f6c5f 100644 --- a/src/services/mklib/stublib/dir.mk +++ b/src/services/mklib/stublib/dir.mk @@ -115,7 +115,7 @@ endif ############################################################################## # Build debug libraries for Win32 ############################################################################## -ifdef NoDebugBuild +ifndef NoDebugBuild ifdef Win32Platform all:: mkstaticdbug mkshareddbug diff --git a/mk/mklib.mk b/mk/mklib.mk index 1d73cfdbe..e6e8d65fe 100644 --- a/mk/mklib.mk +++ b/mk/mklib.mk @@ -16,16 +16,6 @@ # are called libfoo.a and libfoo.so.1.3 etc. # -ifndef NoReleaseBuild - -all:: mkstatic mkshared - -export:: mkstatic mkshared - -ifdef INSTALLTARGET -install:: mkstatic mkshared -endif - vers := $(subst ., ,$(LIB_VERSION)) ifeq ($(words $(vers)), 2) vers := _ $(vers) @@ -36,6 +26,16 @@ endif namespec := $(LIB_NAME) $(vers) +ifndef NoReleaseBuild + +all:: mkstatic mkshared + +export:: mkstatic mkshared + +ifdef INSTALLTARGET +install:: mkstatic mkshared +endif + ############################################################################## # Build Static library ############################################################################## ================================================ FILE: ports/omniorb/vcpkg.json ================================================ { "name": "omniorb", "version": "4.3.0", "port-version": 4, "description": "omniORB is a robust high performance CORBA ORB for C++", "homepage": "https://omniorb.sourceforge.io/", "license": "LGPL-2.1-or-later", "supports": "!uwp & !xbox & !((arm | x86) & windows) & !osx", "dependencies": [ "openssl", "python3", { "name": "python3", "host": true }, { "name": "vcpkg-cmake", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/omniorb/vcpkg.mk ================================================ # # vcpkg.mk - make variables and rules specific to Visual Studio # WindowsNT=1 x86Processor=1 BINDIR = bin LIBDIR = lib ABSTOP = $(shell cd $(TOP); pwd) # Windows builds require a shared library build BuildSharedLibrary=1 # This will be replaced ThreadSystem=NT undefine UnixPlatform # Windows build requires static lib to generate symbol def file undefine NoStaticLibrary platform = Win32Platform @build_info@ # Use the following set of flags to build and use multithreaded DLLs # MSVC_DLL_CXXNODEBUGFLAGS = @VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE@ MSVC_DLL_CXXLINKNODEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_RELEASE@ -manifest MSVC_DLL_CNODEBUGFLAGS = @VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE@ MSVC_DLL_CLINKNODEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_RELEASE@ -manifest # MSVC_DLL_CXXDEBUGFLAGS = @VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG@ -D_DEBUG MSVC_DLL_CXXLINKDEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_DEBUG@ -manifest MSVC_DLL_CDEBUGFLAGS = @VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG@ -D_DEBUG MSVC_DLL_CLINKDEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_DEBUG@ -manifest # # Or # # Use the following set of flags to build and use multithread static libraries # MSVC_STATICLIB_CXXNODEBUGFLAGS = @VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE@ MSVC_STATICLIB_CXXLINKNODEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_RELEASE@ -manifest MSVC_STATICLIB_CNODEBUGFLAGS = @VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE@ MSVC_STATICLIB_CLINKNODEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_RELEASE@ -manifest MSVC_STATICLIB_CXXDEBUGFLAGS = @VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG@ -D_DEBUG MSVC_STATICLIB_CXXLINKDEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_DEBUG@ -manifest MSVC_STATICLIB_CDEBUGFLAGS = @VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG@ -D_DEBUG MSVC_STATICLIB_CLINKDEBUGOPTIONS = @VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_DEBUG@ -manifest # # Include general win32 things # include $(THIS_IMPORT_TREE)/mk/win32.mk MANIFESTTOOL = @VCPKG_DETECTED_CMAKE_MT@ RCTOOL = @VCPKG_DETECTED_CMAKE_RC_COMPILER@ CLINK = @VCPKG_DETECTED_CMAKE_LINKER@ CXXLINK = @VCPKG_DETECTED_CMAKE_LINKER@ AR = @VCPKG_DETECTED_CMAKE_AR@ RANLIB = true # To build ZIOP support, EnableZIOP must be defined and one or both of # the zlib and zstd sections must be defined. #EnableZIOP = 1 #EnableZIOPZLib = 1 #ZLIB_ROOT = /cygdrive/c/zlib-1.2.11 #ZLIB_CPPFLAGS = -DOMNI_ENABLE_ZIOP_ZLIB -I$(ZLIB_ROOT) #ZLIB_LIB = $(patsubst %,$(LibPathPattern),$(ZLIB_ROOT)) zdll.lib #EnableZIOPZStd = 1 #ZSTD_ROOT = /cygdrive/c/zstd #ZSTD_CPPFLAGS = -DOMNI_ENABLE_ZIOP_ZSTD -I$(ZSTD_ROOT)/include #ZSTD_LIB = $(patsubst %,$(LibPathPattern),$(ZSTD_ROOT)/lib) zstd.lib LN_S=cp -pR define ExportSharedLibraryToDir $(ExportLibraryToDir); \ $(ParseNameSpec); \ soname=$(SharedLibraryShortLibName); \ libname=$(SharedLibraryLibNameTemplate); \ set -x; \ cd $$dir; \ $(RM) $$soname; \ $(LN_S) $( $ diff --git a/cmake/utils.cmake b/cmake/utils.cmake index 6cca9f3..9d79f1a 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -1,5 +1,3 @@ -include(${PROJECT_SOURCE_DIR}/third_party/onnx/cmake/Utils.cmake) - # Poor man's FetchContent function(add_subdirectory_if_no_target dir target) if (NOT TARGET ${target}) diff --git a/cmake/ONNXOptimizerConfig.cmake.in b/cmake/ONNXOptimizerConfig.cmake.in index 72dcc88..c5639c8 100644 --- a/cmake/ONNXOptimizerConfig.cmake.in +++ b/cmake/ONNXOptimizerConfig.cmake.in @@ -3,6 +3,9 @@ # ONNX_OPTIMIZER_INCLUDE_DIRS - include directories for onnx optimizer # as well as ONNX Optimizer targets for other cmake libraries to use. +include(CMakeFindDependencyMacro) +find_dependency(protobuf CONFIG) +find_dependency(ONNX CONFIG) # library version information set(ONNX_OPTIMIZER_VERSION "@ONNX_OPTIMIZER_VERSION@") ================================================ FILE: ports/onnx-optimizer/fix-pr-201.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f2b5d6..0db568b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ find_package(ONNX CONFIG REQUIRED) file(READ "${PROJECT_SOURCE_DIR}/VERSION_NUMBER" ONNX_OPTIMIZER_VERSION) string(STRIP "${ONNX_OPTIMIZER_VERSION}" ONNX_OPTIMIZER_VERSION) -file(GLOB onnx_opt_srcs "onnxoptimizer/*.cc" +file(GLOB onnx_opt_srcs CONFIGURE_DEPENDS "onnxoptimizer/*.cc" "onnxoptimizer/*.h" "onnxoptimizer/passes/*.cc" "onnxoptimizer/passes/*.h" @@ -58,7 +58,7 @@ onnxopt_add_executable(onnx_optimizer_exec examples/onnx_optimizer_exec.cpp) target_link_libraries(onnx_optimizer_exec onnx_optimizer) -file(GLOB onnx_opt_c_api_srcs "onnxoptimizer/c_api/*.cc" +file(GLOB onnx_opt_c_api_srcs CONFIGURE_DEPENDS "onnxoptimizer/c_api/*.cc" "onnxoptimizer/c_api/*.h" ) diff --git a/onnxoptimizer/pass_registry.h b/onnxoptimizer/pass_registry.h index b8dc26f..e8f0faa 100644 --- a/onnxoptimizer/pass_registry.h +++ b/onnxoptimizer/pass_registry.h @@ -9,6 +9,7 @@ #include #include +#include #include "onnx/common/ir.h" #include "onnx/common/ir_pb_converter.h" diff --git a/onnxoptimizer/passes/fuse_add_bias_into_conv.h b/onnxoptimizer/passes/fuse_add_bias_into_conv.h index b4696b5..dea0369 100644 --- a/onnxoptimizer/passes/fuse_add_bias_into_conv.h +++ b/onnxoptimizer/passes/fuse_add_bias_into_conv.h @@ -134,7 +134,7 @@ struct FuseAddBiasIntoConv final : public PredicateBasedPass { t.elem_type() = TensorProto_DataType_INT64; Symbol sym = Symbol("value"); constant->t_(sym, t); - std::vector s = {1}; + std::vector s{Dimension{1}}; constant->output()->setSizes(s); constant->output()->setElemType(TensorProto_DataType_INT64); constant->insertBefore(orig_conv->node()); ================================================ FILE: ports/onnx-optimizer/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO onnx/optimizer REF "v${VERSION}" SHA512 552d6fa261c3ce2db2e0938a5b5261676335bce9bd828b46a1e2631f3b362c748ae9a6cfe7d62072fc3774b3f506bc54aa5827b52241e6f48d78a08dea1d9316 HEAD_REF master PATCHES fix-pr-201.patch # https://github.com/onnx/optimizer/pull/201 fix-cmakelists.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DONNX_OPT_USE_SYSTEM_PROTOBUF=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ONNXOptimizer CONFIG_PATH lib/cmake/ONNXOptimizer) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/onnxoptimizer/test" ) ================================================ FILE: ports/onnx-optimizer/vcpkg.json ================================================ { "name": "onnx-optimizer", "version-semver": "0.3.19", "port-version": 2, "description": "Actively maintained ONNX Optimizer", "homepage": "https://github.com/onnx/optimizer", "license": "Apache-2.0", "dependencies": [ "onnx", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/onnxruntime/fix-cmake-cuda.patch ================================================ diff --git a/cmake/external/cuDNN.cmake b/cmake/external/cuDNN.cmake index b428ccb..9b73acb 100644 --- a/cmake/external/cuDNN.cmake +++ b/cmake/external/cuDNN.cmake @@ -1,3 +1,5 @@ +find_package(CUDNN REQUIRED) # vcpkg port 'cudnn' +get_filename_component(cudnn_LIBRARY "${CUDNN_LIBRARY}" ABSOLUTE) add_library(CUDNN::cudnn_all INTERFACE IMPORTED) find_path( diff --git a/cmake/external/cudnn_frontend.cmake b/cmake/external/cudnn_frontend.cmake index d89ab0f..c28568f 100644 --- a/cmake/external/cudnn_frontend.cmake +++ b/cmake/external/cudnn_frontend.cmake @@ -1,4 +1,5 @@ - +find_package(cudnn_frontend CONFIG REQUIRED) # cudnn-frontend 1.13.0+ +return() onnxruntime_fetchcontent_declare( cudnn_frontend URL ${DEP_URL_cudnn_frontend} diff --git a/cmake/onnxruntime_providers_cuda.cmake b/cmake/onnxruntime_providers_cuda.cmake index 91707c4..243783b 100644 --- a/cmake/onnxruntime_providers_cuda.cmake +++ b/cmake/onnxruntime_providers_cuda.cmake @@ -149,6 +149,9 @@ onnxruntime_add_shared_library_module(onnxruntime_providers_cuda ${onnxruntime_providers_cuda_all_srcs}) endif() + if(MSVC) + target_compile_options(onnxruntime_providers_cuda PRIVATE $<$:/bigobj>) + endif() if(WIN32) # FILE_NAME preprocessor definition is used in onnxruntime_providers_cuda.rc target_compile_definitions(onnxruntime_providers_cuda PRIVATE FILE_NAME=\"onnxruntime_providers_cuda.dll\") @@ -241,8 +244,8 @@ ${ABSEIL_LIBS} ${ONNXRUNTIME_PROVIDERS_SHARED} Boost::mp11 safeint_interface) endif() - include(cutlass) - target_include_directories(${target} PRIVATE ${cutlass_SOURCE_DIR}/include ${cutlass_SOURCE_DIR}/examples ${cutlass_SOURCE_DIR}/tools/util/include) + find_package(NvidiaCutlass REQUIRED) + target_link_libraries(${target} PRIVATE nvidia::cutlass::cutlass nvidia::cutlass::tools::util) target_link_libraries(${target} PRIVATE Eigen3::Eigen) target_include_directories(${target} PRIVATE ${ONNXRUNTIME_ROOT} ${CMAKE_CURRENT_BINARY_DIR} PUBLIC ${CUDAToolkit_INCLUDE_DIRS}) # ${CMAKE_CURRENT_BINARY_DIR} is so that #include "onnxruntime_config.h" inside tensor_shape.h is found ================================================ FILE: ports/onnxruntime/fix-cmake.patch ================================================ diff --git a/cmake/onnxruntime_framework.cmake b/cmake/onnxruntime_framework.cmake index 15f3105..af6609b 100644 --- a/cmake/onnxruntime_framework.cmake +++ b/cmake/onnxruntime_framework.cmake @@ -122,5 +122,5 @@ else() ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - FRAMEWORK DESTINATION ${CMAKE_INSTALL_BINDIR}) + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() diff --git a/cmake/external/abseil-cpp.cmake b/cmake/external/abseil-cpp.cmake index eede60a..07f5f77 100644 --- a/cmake/external/abseil-cpp.cmake +++ b/cmake/external/abseil-cpp.cmake @@ -122,7 +122,7 @@ absl::absl_check absl::hash_function_defaults absl::function_ref absl::city -absl::low_level_hash +# absl::low_level_hash # abseil 20250814.1+ absl::fixed_array absl::variant absl::meta diff --git a/cmake/onnxruntime_webassembly.cmake b/cmake/onnxruntime_webassembly.cmake index ffe8661..a3e9b4f 100644 --- a/cmake/onnxruntime_webassembly.cmake +++ b/cmake/onnxruntime_webassembly.cmake @@ -94,7 +94,7 @@ if (NOT onnxruntime_ENABLE_WEBASSEMBLY_THREADS) ) # Override re2 compiler options to remove -pthread - set_property(TARGET re2 PROPERTY COMPILE_OPTIONS ) + # set_property(TARGET re2 PROPERTY COMPILE_OPTIONS ) endif() if (NOT onnxruntime_USE_VCPKG) ================================================ FILE: ports/onnxruntime/portfile.cmake ================================================ # https://github.com/microsoft/onnxruntime/blob/v1.22.1/tools/python/util/vcpkg_helpers.py message(WARNING "The port requires 'onnx' port build with CMake option ONNX_DISABLE_STATIC_REGISTRATION=ON") if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) if("framework" IN_LIST FEATURES) # The Objective-C API requires onnxruntime_BUILD_SHARED_LIB vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/onnxruntime REF "v${VERSION}" SHA512 373c51575ada457b8aead5d195a5f3eba62fb747b6370a2a9889fff875c40ea30af8fd49104d58cc86f79247410e829086b0979f37ca8635c6dd34960e9cc424 PATCHES fix-cmake.patch # .framework install, external library workarounds(abseil-cpp, eigen3) fix-cmake-cuda.patch ) find_program(PROTOC NAMES protoc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH) message(STATUS "Using protoc: ${PROTOC}") find_program(FLATC NAMES flatc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers" REQUIRED NO_DEFAULT_PATH NO_CMAKE_PATH) message(STATUS "Using flatc: ${FLATC}") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON_PATH "${PYTHON3}" PATH) message(STATUS "Using python3: ${PYTHON3}") vcpkg_execute_required_process( COMMAND "${PYTHON3}" onnxruntime/core/flatbuffers/schema/compile_schema.py --flatc "${FLATC}" LOGNAME compile_schema_core WORKING_DIRECTORY "${SOURCE_PATH}" ) vcpkg_execute_required_process( COMMAND "${PYTHON3}" onnxruntime/lora/adapter_format/compile_schema.py --flatc "${FLATC}" LOGNAME compile_schema_lora WORKING_DIRECTORY "${SOURCE_PATH}" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES python onnxruntime_ENABLE_PYTHON training onnxruntime_ENABLE_TRAINING training onnxruntime_ENABLE_TRAINING_APIS cuda onnxruntime_USE_CUDA cuda onnxruntime_USE_CUDA_NHWC_OPS openvino onnxruntime_USE_OPENVINO tensorrt onnxruntime_USE_TENSORRT tensorrt onnxruntime_USE_TENSORRT_BUILTIN_PARSER directml onnxruntime_USE_DML directml onnxruntime_USE_CUSTOM_DIRECTML winml onnxruntime_USE_WINML coreml onnxruntime_USE_COREML mimalloc onnxruntime_USE_MIMALLOC valgrind onnxruntime_USE_VALGRIND xnnpack onnxruntime_USE_XNNPACK nnapi onnxruntime_USE_NNAPI_BUILTIN azure onnxruntime_USE_AZURE test onnxruntime_BUILD_UNIT_TESTS test onnxruntime_BUILD_BENCHMARKS test onnxruntime_RUN_ONNX_TESTS framework onnxruntime_BUILD_APPLE_FRAMEWORK framework onnxruntime_BUILD_OBJC nccl onnxruntime_USE_NCCL INVERTED_FEATURES cuda onnxruntime_USE_MEMORY_EFFICIENT_ATTENTION ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" # "-DCMAKE_CUDA_ARCHITECTURES=native" # too much warnings about attribute "-DCMAKE_CUDA_FLAGS=-Xcudafe --diag_suppress=2803 -Wno-deprecated-gpu-targets" ) endif() if("tensorrt" IN_LIST FEATURES) if(DEFINED ENV{TENSORRT_HOME}) set(TENSORRT_HOME "$ENV{TENSORRT_HOME}") endif() if(DEFINED TENSORRT_HOME) message(STATUS "Using TensorRT: ${TENSORRT_HOME}") list(APPEND FEATURE_OPTIONS "-Donnxruntime_TENSORRT_HOME:PATH=${TENSORRT_HOME}") else() message(WARNING "Define TENSORRT_HOME for onnxruntime_TENSORRT_HOME") endif() endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) # see tools/ci_build/build.py vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cmake" OPTIONS ${FEATURE_OPTIONS} "-DPython_EXECUTABLE:FILEPATH=${PYTHON3}" "-DProtobuf_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}" "-DONNX_CUSTOM_PROTOC_EXECUTABLE:FILEPATH=${PROTOC}" -DBUILD_PKGCONFIG_FILES=ON -Donnxruntime_BUILD_SHARED_LIB=${BUILD_SHARED} -Donnxruntime_CROSS_COMPILING=${VCPKG_CROSSCOMPILING} -Donnxruntime_USE_EXTENSIONS=OFF -Donnxruntime_USE_NNAPI_BUILTIN=${VCPKG_TARGET_IS_ANDROID} -Donnxruntime_USE_VCPKG=ON -Donnxruntime_ENABLE_CPUINFO=ON -Donnxruntime_ENABLE_MICROSOFT_INTERNAL=OFF -Donnxruntime_ENABLE_BITCODE=OFF -Donnxruntime_ENABLE_PYTHON=OFF -Donnxruntime_ENABLE_EXTERNAL_CUSTOM_OP_SCHEMAS=OFF -Donnxruntime_ENABLE_MEMORY_PROFILE=OFF -Donnxruntime_ENABLE_LAZY_TENSOR=OFF -Donnxruntime_DISABLE_RTTI=OFF -Donnxruntime_DISABLE_ABSEIL=OFF # some other customizations ... --compile-no-warning-as-error OPTIONS_DEBUG -Donnxruntime_ENABLE_MEMLEAK_CHECKER=OFF -Donnxruntime_DEBUG_NODE_INPUTS_OUTPUTS=1 MAYBE_UNUSED_VARIABLES Python_EXECUTABLE onnxruntime_TENSORRT_PLACEHOLDER_BUILDER onnxruntime_NVCC_THREADS CMAKE_CUDA_FLAGS onnxruntime_USE_CUSTOM_DIRECTML ) if("cuda" IN_LIST FEATURES) vcpkg_cmake_build(TARGET onnxruntime_providers_cuda LOGFILE_BASE build-cuda) endif() if("tensorrt" IN_LIST FEATURES) vcpkg_cmake_build(TARGET onnxruntime_providers_tensorrt LOGFILE_BASE build-tensorrt) endif() vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/onnxruntime) vcpkg_fixup_pkgconfig() # pkg_check_modules(libonnxruntime) # relocates the onnxruntime_providers_* binaries before vcpkg_copy_pdbs() function(reolocate_ort_providers) if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")) # the target is expected to be used without the .lib files file(GLOB PROVIDE_BINS_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/onnxruntime_providers_*.dll") file(COPY ${PROVIDE_BINS_DBG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(GLOB PROVIDE_BINS_REL "${CURRENT_PACKAGES_DIR}/lib/onnxruntime_providers_*.dll") file(COPY ${PROVIDE_BINS_REL} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE ${PROVIDE_BINS_DBG} ${PROVIDE_BINS_REL}) endif() endfunction() reolocate_ort_providers() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/onnxruntime/vcpkg.json ================================================ { "name": "onnxruntime", "version-semver": "1.23.2", "description": "ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator", "homepage": "https://github.com/microsoft/onnxruntime", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "abseil", "version>=": "20250512.1" }, { "name": "boost-config", "version>=": "1.82.0" }, { "name": "boost-mp11", "version>=": "1.82.0" }, "cpuinfo", "cxxopts", "date", "dlpack", "eigen3", { "name": "flatbuffers", "host": true, "version>=": "23.5.26" }, { "name": "flatbuffers", "version>=": "23.5.26" }, "ms-gsl", "nlohmann-json", { "name": "onnx", "version>=": "1.19.0" }, "optional-lite", { "name": "protobuf", "version>=": "3.21.12" }, { "name": "protobuf", "host": true, "version>=": "3.21.12" }, "re2", "safeint", "utf8-range", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "wil", "platform": "windows" } ], "features": { "cuda": { "description": "Build with CUDA support", "supports": "(x64 & windows & !static) | (x64 & linux)", "dependencies": [ "cuda", "cudnn", "cudnn-frontend", "nvidia-cutlass" ] }, "framework": { "description": "Build a macOS/iOS framework, Objective-C library", "supports": "osx | ios" }, "openvino": { "description": "Build with OpenVINO support", "supports": "!(osx | ios | android | emscripten)", "dependencies": [ { "name": "openvino", "default-features": false, "features": [ "cpu", "gpu", "onnx" ] } ] }, "tensorrt": { "description": "Build with TensorRT support", "dependencies": [ { "name": "onnxruntime", "default-features": false, "features": [ "cuda" ] } ] } } } ================================================ FILE: ports/onnxruntime-gpu/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) message(WARNING "${PORT} is deprecated. Please use port onnxruntime instead.") ================================================ FILE: ports/onnxruntime-gpu/vcpkg.json ================================================ { "name": "onnxruntime-gpu", "version": "1.23.2", "description": "onnxruntime (GPU)", "homepage": "https://github.com/microsoft/onnxruntime", "license": "MIT", "dependencies": [ { "name": "onnxruntime", "features": [ "cuda", "tensorrt" ] } ] } ================================================ FILE: ports/oof/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO s9w/oof REF a0c3e8e0dceec391bd38861ab108b932a2513bcb SHA512 4d5650c8fa1e21e7fe71dbe615a6e3bdbe3781be28811e895ac335261de24b3ed26c4842cdd133df897cdb7181c3ea11c051607fbda5a7a1b9a4d8580323181d HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/oof.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/oof/vcpkg.json ================================================ { "name": "oof", "version-date": "2021-11-23", "description": "Convenient, high-performance RGB color and position control for console output.", "homepage": "https://github.com/s9w/oof", "license": "MIT" } ================================================ FILE: ports/open-dis-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-dis/open-dis-cpp REF "v${VERSION}" SHA512 e6d38f55beabf85d0319be21d9cec07f818b833dfa14dcb649cacbc8ea86779c29ac2717579239378ace1ae62054864851ecb55402e82fe4d083ab483218260e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME OpenDIS CONFIG_PATH lib/cmake/OpenDIS) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/open-dis-cpp/usage ================================================ The package open-dis-cpp provides CMake targets: find_package(OpenDIS CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenDIS::OpenDIS6) target_link_libraries(main PRIVATE OpenDIS::OpenDIS7) ================================================ FILE: ports/open-dis-cpp/vcpkg.json ================================================ { "name": "open-dis-cpp", "version": "1.0.1", "description": [ "DIS v6/v7 Library", "C++ implementation of the IEEE-1278.1 Distributed Interactive Simulation (DIS) application protocol v6 and v7" ], "homepage": "https://open-dis.org", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/open62541/android.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index acbd6b4971..1ed8cb72ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -495,10 +495,10 @@ set(open62541_LIBRARIES "") set(open62541_PUBLIC_LIBRARIES "") if("${UA_ARCHITECTURE}" STREQUAL "posix") list(APPEND open62541_LIBRARIES "m") - if(UA_MULTITHREADING GREATER_EQUAL 100 OR UA_BUILD_UNIT_TESTS) + if(UA_MULTITHREADING GREATER_EQUAL 100 OR UA_BUILD_UNIT_TESTS AND NOT ANDROID) list(APPEND open62541_PUBLIC_LIBRARIES "pthread") endif() - if(NOT APPLE AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")) + if(NOT APPLE AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD") AND NOT ANDROID) list(APPEND open62541_LIBRARIES "rt") endif() elseif("${UA_ARCHITECTURE}" STREQUAL "win32") ================================================ FILE: ports/open62541/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open62541/open62541 REF v${VERSION} SHA512 521e29921d7aed6ee9766a1781c28071447ec0046f02a23376798ac35c18feba37cc0f4c217df41abb1c4470b7bf7aae26cf88da0ec8136f64a969be9ff56426 HEAD_REF master PATCHES android.patch ) # disable docs vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "add_subdirectory(doc)" "") vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "include(linting_target)" "") # do not enable LTO by default vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)" "") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES diagnostics UA_ENABLE_DIAGNOSTICS discovery UA_ENABLE_DISCOVERY historizing UA_ENABLE_HISTORIZING methodcalls UA_ENABLE_METHODCALLS subscriptions UA_ENABLE_SUBSCRIPTIONS subscriptions-events UA_ENABLE_SUBSCRIPTIONS_EVENTS ) if("openssl" IN_LIST FEATURES) set(OPEN62541_ENCRYPTION_OPTIONS -DUA_ENABLE_ENCRYPTION=OPENSSL) if("mbedtls" IN_LIST FEATURES) message(WARNING "Only one encryption method can be used. When both [openssl] and [mbedtls] " "are on, openssl is used. To use [mbedtls], don't enable [openssl]. To suppress this " "message, don't enable [mbedtls]") endif() elseif("mbedtls" IN_LIST FEATURES) set(OPEN62541_ENCRYPTION_OPTIONS -DUA_ENABLE_ENCRYPTION=MBEDTLS) endif() if("multithreading" IN_LIST FEATURES) set(OPEN62541_MULTITHREADING_OPTIONS -DUA_MULTITHREADING=100) endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") if(VCPKG_TARGET_IS_ANDROID) list(APPEND FEATURE_OPTIONS "-DUA_ARCHITECTURE=posix") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${OPEN62541_ENCRYPTION_OPTIONS} ${OPEN62541_MULTITHREADING_OPTIONS} "-DOPEN62541_VERSION=v${VERSION}" -DUA_ENABLE_DEBUG_SANITIZER=OFF -DUA_MSVC_FORCE_STATIC_CRT=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/open62541") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/open62541/tools") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/open62541/vcpkg.json ================================================ { "name": "open62541", "version": "1.4.14", "description": "open62541 is an open source C (C99) implementation of OPC UA licensed under the Mozilla Public License v2.0.", "homepage": "https://open62541.org", "license": "MPL-2.0", "supports": "!xbox", "dependencies": [ { "name": "open62541", "default-features": false, "features": [ "methodcalls" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "methodcalls", "subscriptions", "subscriptions-events" ], "features": { "diagnostics": { "description": "Enable diagnostics information exposed by the server", "dependencies": [ { "name": "open62541", "features": [ "subscriptions-events" ] } ] }, "discovery": { "description": "Enable Discovery Service (LDS)", "dependencies": [ { "name": "open62541", "features": [ "methodcalls" ] } ] }, "historizing": { "description": "Enable basic support for historical access (client and server)", "dependencies": [ { "name": "open62541", "features": [ "subscriptions-events" ] } ] }, "mbedtls": { "description": "Enable encryption support (uses MbedTLS)", "dependencies": [ "mbedtls", { "name": "open62541", "default-features": false, "features": [ "methodcalls" ] } ] }, "methodcalls": { "description": "Enable the Method service set" }, "multithreading": { "description": "Enable multi threading support", "dependencies": [ { "name": "open62541", "default-features": false, "features": [ "methodcalls" ] } ] }, "openssl": { "description": "Enable encryption support (uses OpenSSL)", "dependencies": [ { "name": "open62541", "default-features": false, "features": [ "methodcalls" ] }, "openssl" ] }, "subscriptions": { "description": "Enable subscriptions support" }, "subscriptions-events": { "description": "Enable event monitoring", "dependencies": [ { "name": "open62541", "features": [ "subscriptions" ] } ] } } } ================================================ FILE: ports/open62541pp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open62541pp/open62541pp REF "v${VERSION}" SHA512 6d70eb27b6178816db26ee7fe6cb0ab16ec15ec9c9d2e9283672ced67693a5a48207d2a31ffdd09cf2c46dc4c1d0997d676f18d7554540939f321d4a3e5e6504 HEAD_REF master ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUAPP_INTERNAL_OPEN62541=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/open62541pp/vcpkg.json ================================================ { "name": "open62541pp", "version": "0.21.0", "description": "C++ wrapper of the open62541 OPC UA library", "homepage": "https://open62541pp.github.io", "license": "MPL-2.0", "dependencies": [ "open62541", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openal-soft/devendor-fmt.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b65e924..814d59e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -256,7 +256,8 @@ if(ALSOFT_ENABLE_MODULES) endif() -add_subdirectory(fmt-11.2.0 EXCLUDE_FROM_ALL) +find_package(fmt CONFIG REQUIRED) +add_library(alsoft::fmt ALIAS fmt::fmt) set(CPP_DEFS ) # C pre-processor, not C++ @@ -1614,7 +1615,7 @@ if(LIBTYPE STREQUAL "STATIC") target_compile_definitions(${IMPL_TARGET} PUBLIC AL_LIBTYPE_STATIC) target_include_directories(${IMPL_TARGET} PRIVATE ${OpenAL_SOURCE_DIR}/gsl/include) target_link_libraries(${IMPL_TARGET} PRIVATE ${LINKER_FLAGS} ${EXTRA_LIBS} ${MATH_LIB} - $) + alsoft::fmt) if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED CMAKE_OSX_DEPLOYMENT_TARGET AND CMAKE_OSX_DEPLOYMENT_TARGET VERSION_LESS "10.13") diff --git a/OpenALConfig.cmake.in b/OpenALConfig.cmake.in index 4c1ad05..f462df5 100644 --- a/OpenALConfig.cmake.in +++ b/OpenALConfig.cmake.in @@ -2,6 +2,9 @@ if((NOT DEFINED CMAKE_VERSION) OR (CMAKE_VERSION VERSION_LESS "3.1")) message(FATAL_ERROR "CMake >= 3.1 required") endif() +include(CMakeFindDependencyMacro) +find_dependency(fmt CONFIG) + include("${CMAKE_CURRENT_LIST_DIR}/OpenALTargets.cmake") set(OPENAL_FOUND ON) diff --git a/openal.pc.in b/openal.pc.in index dfa6f57..e04e807 100644 --- a/openal.pc.in +++ b/openal.pc.in @@ -6,6 +6,7 @@ includedir=@includedir@ Name: OpenAL Description: OpenAL is a cross-platform 3D audio API Requires: @PKG_CONFIG_REQUIRES@ +Requires.private: fmt Version: @PACKAGE_VERSION@ Libs: -L${libdir} -l@LIBNAME@ @PKG_CONFIG_LIBS@ Libs.private:@PKG_CONFIG_PRIVATE_LIBS@ ================================================ FILE: ports/openal-soft/pkgconfig-cxx.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c0f59f2..b65e924 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1493,6 +1493,15 @@ if(LIBTYPE STREQUAL "STATIC") set(PKG_CONFIG_PRIVATE_LIBS "${PKG_CONFIG_PRIVATE_LIBS} -l${FLAG}") endif() endforeach() + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND PKG_CONFIG_PRIVATE_LIBS " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND PKG_CONFIG_PRIVATE_LIBS " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() endif() if(UNIX_ELF) ================================================ FILE: ports/openal-soft/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kcat/openal-soft REF ${VERSION} SHA512 47eccb317ed6040c549f2b51d2d45afcdcd03d56d8cb0ea9ef8a98d2c61c9629ffad39596cffa2ad848dd3b65a227a6591406dc483ebd3a3e03bb0a4d0f112b1 HEAD_REF master PATCHES pkgconfig-cxx.diff devendor-fmt.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pipewire ALSOFT_BACKEND_PIPEWIRE pipewire ALSOFT_REQUIRE_PIPEWIRE pulseaudio ALSOFT_BACKEND_PULSEAUDIO pulseaudio ALSOFT_REQUIRE_PULSEAUDIO ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPENAL_LIBTYPE "SHARED") else() set(OPENAL_LIBTYPE "STATIC") endif() set(ALSOFT_REQUIRE_LINUX OFF) set(ALSOFT_REQUIRE_WINDOWS OFF) set(ALSOFT_REQUIRE_WINDOWS_NOT_UWP OFF) set(ALSOFT_REQUIRE_APPLE OFF) set(ALSOFT_CPUEXT_NEON OFF) if(VCPKG_TARGET_IS_LINUX) set(ALSOFT_REQUIRE_LINUX ON) endif() if(VCPKG_TARGET_IS_WINDOWS) set(ALSOFT_REQUIRE_WINDOWS ON) if(NOT VCPKG_TARGET_IS_UWP) set(ALSOFT_REQUIRE_WINDOWS_NOT_UWP ON) endif() endif() if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(ALSOFT_REQUIRE_APPLE ON) endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ALSOFT_CPUEXT_NEON ON) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DALSOFT_CPUEXT_NEON=${ALSOFT_CPUEXT_NEON} -DALSOFT_EXAMPLES=OFF -DALSOFT_INSTALL_AMBDEC_PRESETS=OFF -DALSOFT_INSTALL_CONFIG=OFF -DALSOFT_INSTALL_HRTF_DATA=OFF -DALSOFT_NO_CONFIG_UTIL=ON -DALSOFT_UPDATE_BUILD_VERSION=OFF -DALSOFT_UTILS=OFF -DLIBTYPE=${OPENAL_LIBTYPE} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" # order by CMakeLists.txt -DALSOFT_BACKEND_ALSA=${ALSOFT_REQUIRE_LINUX} -DALSOFT_REQUIRE_ALSA=${ALSOFT_REQUIRE_LINUX} -DALSOFT_BACKEND_OSS=OFF -DALSOFT_BACKEND_SOLARIS=OFF -DALSOFT_BACKEND_SNDIO=OFF -DALSOFT_BACKEND_WINMM=OFF -DALSOFT_BACKEND_DSOUND=${ALSOFT_REQUIRE_WINDOWS_NOT_UWP} -DALSOFT_REQUIRE_DSOUND=${ALSOFT_REQUIRE_WINDOWS_NOT_UWP} -DALSOFT_BACKEND_WASAPI=${ALSOFT_REQUIRE_WINDOWS} -DALSOFT_REQUIRE_WASAPI=${ALSOFT_REQUIRE_WINDOWS} -DALSOFT_BACKEND_JACK=OFF -DALSOFT_BACKEND_COREAUDIO=${ALSOFT_REQUIRE_APPLE} -DALSOFT_REQUIRE_COREAUDIO=${ALSOFT_REQUIRE_APPLE} -DALSOFT_BACKEND_OBOE=OFF -DALSOFT_BACKEND_OPENSL=${VCPKG_TARGET_IS_ANDROID} -DALSOFT_REQUIRE_OPENSL=${VCPKG_TARGET_IS_ANDROID} -DALSOFT_BACKEND_PORTAUDIO=OFF -DALSOFT_BACKEND_WAVE=ON MAYBE_UNUSED_VARIABLES # NOT WIN32 ALSOFT_BACKEND_ALSA ALSOFT_REQUIRE_ALSA ALSOFT_BACKEND_OSS ALSOFT_BACKEND_SOLARIS ALSOFT_BACKEND_SNDIO # WIN32 ALSOFT_BACKEND_WINMM ALSOFT_BACKEND_DSOUND ALSOFT_REQUIRE_DSOUND ALSOFT_BACKEND_WASAPI ALSOFT_REQUIRE_WASAPI ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/OpenAL") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") foreach(HEADER IN ITEMS al.h alc.h) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/AL/${HEADER}" "defined(AL_LIBTYPE_STATIC)" "1") endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(READ "${SOURCE_PATH}/common/pffft.cpp" pffft_license) string(REGEX REPLACE "[*]/.*" "*/\n" pffft_license "${pffft_license}") file(WRITE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/pffft Notice" "${pffft_license}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/pffft Notice") ================================================ FILE: ports/openal-soft/vcpkg.json ================================================ { "name": "openal-soft", "version": "1.25.1", "description": "OpenAL Soft is an LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API.", "homepage": "https://github.com/kcat/openal-soft", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "alsa", "platform": "linux" }, { "name": "cppwinrt", "platform": "uwp" }, "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "pipewire": { "description": "Enable PipeWire backend", "dependencies": [ "pipewire" ] }, "pulseaudio": { "description": "Enable PulseAudio backend", "dependencies": [ "pulseaudio" ] } } } ================================================ FILE: ports/openblas/cmake-project-include.cmake ================================================ # TARGET: The target architecture # # Originally, OpenBLAS tries to optimize for the host CPU unless # - being given an explixit TARGET, and # - CMAKE_CROSSCOMPILING, and # - not building for uwp (aka WINDOWSSTORE) # For this optimization, it runs 'getarch' and 'getarch_2nd' which it builds # from source. The getarch executables are not built when not optimizing. # # Consequences: # - The port must ensure that TARGET is set when cross compiling for a different CPU or OS. # - The port must install getarch executables when possible. # # DYNAMIC_ARCH enables support "for multiple targets with runtime detection". # (But not for MSVC, https://github.com/OpenMathLib/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio#cmake-and-visual-studio.) # The OpenBLAS README.md suggests that this shall be used with TARGET being # set "to the oldest model you expect to encounter". This affects "all the # common code in the library". set(need_target 0) if(NOT "${TARGET}" STREQUAL "") message(STATUS "TARGET: ${TARGET} (user-defined)") elseif(DYNAMIC_ARCH) message(STATUS "DYNAMIC_ARCH: ${DYNAMIC_ARCH}") set(need_target 1) # for C elseif(CMAKE_CROSSCOMPILING AND NOT GETARCH_BINARY_DIR) set(need_target 1) # for C and for optimized kernel else() message(STATUS "TARGET: (OpenBLAS getarch/getarch_2nd)") endif() if(need_target) set(target_default "GENERIC") if(MSVC) # "does not support the dialect of assembly used in the cpu-specific optimized files" # https://github.com/OpenMathLib/OpenBLAS/wiki/How-to-use-OpenBLAS-in-Microsoft-Visual-Studio#cmake-and-visual-studio elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^x64|^x86") set(target_default "ATOM") elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^arm64") set(target_default "ARMV8") elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^arm") set(target_default "ARMV7") endif() set(TARGET "${target_default}" CACHE STRING "") message(STATUS "TARGET: ${TARGET}") endif() # NUM_THREADS: The number of threads expected to be used. # # This setting affects both the configuration with USE_THREAD enabled # (multithreaded OpenBLAS) and disabled (multithreaded access to OpenBLAS). # This shouldn't be set too low for generic packages. But it comes with a # memory footprint. if(DEFINED NUM_THREADS) message(STATUS "NUM_THREADS: ${NUM_THREADS} (user-defined)") elseif(EMSCRIPTEN) message(STATUS "NUM_THREADS: (for EMSCRIPTEN)") elseif(need_target) set(num_threads_default 24) if(ANDROID OR IOS) set(num_threads_default 8) endif() set(NUM_THREADS "${num_threads_default}" CACHE STRING "") message(STATUS "NUM_THREADS: ${NUM_THREADS}") endif() ================================================ FILE: ports/openblas/disable-testing.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2006604..c9fedb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -323,6 +323,7 @@ if (USE_THREAD) endif() endif() +if(BUILD_TESTING) #if (MSVC OR NOT NOFORTRAN) if (NOT NO_CBLAS) if (NOT ONLY_CBLAS) @@ -348,6 +349,7 @@ endif() if (CPP_THREAD_SAFETY_TEST OR CPP_THREAD_SAFETY_GEMV) add_subdirectory(cpp_thread_test) endif() +endif() if (NOT FIXED_LIBNAME) set_target_properties(${OpenBLAS_LIBS} PROPERTIES ================================================ FILE: ports/openblas/getarch.diff ================================================ diff --git a/cmake/prebuild.cmake b/cmake/prebuild.cmake index 609fbe2..daeb25c 100644 --- a/cmake/prebuild.cmake +++ b/cmake/prebuild.cmake @@ -95,7 +95,7 @@ else () endif () # Cannot run getarch on target if we are cross-compiling -if (DEFINED CORE AND CMAKE_CROSSCOMPILING AND NOT (${HOST_OS} STREQUAL "WINDOWSSTORE")) +if(CMAKE_CROSSCOMPILING AND NOT DEFINED GETARCH_BINARY_DIR) # Write to config as getarch would if (DEFINED TARGET_CORE) set(TCORE ${TARGET_CORE}) @@ -1373,7 +1373,11 @@ endif () file(MAKE_DIRECTORY ${TARGET_CONF_DIR}) file(RENAME ${TARGET_CONF_TEMP} "${TARGET_CONF_DIR}/${TARGET_CONF}") -else(NOT CMAKE_CROSSCOMPILING) +else() + if(NOT CMAKE_CROSSCOMPILING) + set(GETARCH_BINARY_DIR "${PROJECT_BINARY_DIR}") + endif() + # compile getarch set(GETARCH_SRC ${PROJECT_SOURCE_DIR}/getarch.c @@ -1420,6 +1424,7 @@ else(NOT CMAKE_CROSSCOMPILING) if (NOT ${GETARCH_RESULT}) MESSAGE(FATAL_ERROR "Compiling getarch failed ${GETARCH_LOG}") endif () + install(PROGRAMS "${PROJECT_BINARY_DIR}/${GETARCH_BIN}" DESTINATION bin) endif () unset (HAVE_AVX2) unset (HAVE_AVX) @@ -1439,8 +1444,8 @@ else(NOT CMAKE_CROSSCOMPILING) message(STATUS "Running getarch") # use the cmake binary w/ the -E param to run a shell command in a cross-platform way -execute_process(COMMAND "${PROJECT_BINARY_DIR}/${GETARCH_BIN}" 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) -execute_process(COMMAND "${PROJECT_BINARY_DIR}/${GETARCH_BIN}" 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) +execute_process(COMMAND "${GETARCH_BINARY_DIR}/${GETARCH_BIN}" 0 OUTPUT_VARIABLE GETARCH_MAKE_OUT) +execute_process(COMMAND "${GETARCH_BINARY_DIR}/${GETARCH_BIN}" 1 OUTPUT_VARIABLE GETARCH_CONF_OUT) message(STATUS "GETARCH results:\n${GETARCH_MAKE_OUT}") @@ -1463,11 +1468,12 @@ execute_process(COMMAND "${PROJECT_BINARY_DIR}/${GETARCH_BIN}" 1 OUTPUT_VARIABLE if (NOT ${GETARCH2_RESULT}) MESSAGE(FATAL_ERROR "Compiling getarch_2nd failed ${GETARCH2_LOG}") endif () + install(PROGRAMS "${PROJECT_BINARY_DIR}/${GETARCH2_BIN}" DESTINATION bin) endif () # use the cmake binary w/ the -E param to run a shell command in a cross-platform way -execute_process(COMMAND "${PROJECT_BINARY_DIR}/${GETARCH2_BIN}" 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) -execute_process(COMMAND "${PROJECT_BINARY_DIR}/${GETARCH2_BIN}" 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) +execute_process(COMMAND "${GETARCH_BINARY_DIR}/${GETARCH2_BIN}" 0 OUTPUT_VARIABLE GETARCH2_MAKE_OUT) +execute_process(COMMAND "${GETARCH_BINARY_DIR}/${GETARCH2_BIN}" 1 OUTPUT_VARIABLE GETARCH2_CONF_OUT) # append config data from getarch_2nd to the TARGET file and read in CMake vars file(APPEND "${TARGET_CONF_TEMP}" ${GETARCH2_CONF_OUT}) diff --git a/cmake/system.cmake b/cmake/system.cmake index eae7436..b2a6da7 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -13,7 +13,7 @@ if(CMAKE_CROSSCOMPILING AND NOT DEFINED TARGET) set(TARGET "ARMV8") elseif(ARM) set(TARGET "ARMV7") # TODO: Ask compiler which arch this is - else() + elseif(NOT DEFINED GETARCH_BINARY_DIR) message(FATAL_ERROR "When cross compiling, a TARGET is required.") endif() endif() ================================================ FILE: ports/openblas/openblas_common.h ================================================ #pragma once #include "openblas/openblas_config.h" #if defined(OPENBLAS_OS_WINNT) || defined(OPENBLAS_OS_CYGWIN_NT) || defined(OPENBLAS_OS_INTERIX) #define OPENBLAS_WINDOWS_ABI #define OPENBLAS_OS_WINDOWS #ifdef DOUBLE #define DOUBLE_DEFINED DOUBLE #undef DOUBLE #endif #endif #ifdef NEEDBUNDERSCORE #define BLASFUNC(FUNC) FUNC##_ #else #define BLASFUNC(FUNC) FUNC #endif #ifdef OPENBLAS_QUAD_PRECISION typedef struct { unsigned long x[2]; } xdouble; #elif defined OPENBLAS_EXPRECISION #define xdouble long double #else #define xdouble double #endif #if defined(OS_WINNT) && defined(__64BIT__) typedef long long BLASLONG; typedef unsigned long long BLASULONG; #else typedef long BLASLONG; typedef unsigned long BLASULONG; #endif #ifdef OPENBLAS_USE64BITINT typedef BLASLONG blasint; #else typedef int blasint; #endif #if defined(XDOUBLE) || defined(DOUBLE) #define FLOATRET FLOAT #else #ifdef NEED_F2CCONV #define FLOATRET double #else #define FLOATRET float #endif #endif /* Inclusion of a standard header file is needed for definition of __STDC_* predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs as a side effect of including either or . */ #include ================================================ FILE: ports/openblas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenMathLib/OpenBLAS REF "v${VERSION}" SHA512 046316b4297460bffca09c890ecad17ea39d8b3db92ff445d03b547dd551663d37e40f38bce8ae11e2994374ff01e622b408da27aa8e40f4140185ee8f001a60 HEAD_REF develop PATCHES disable-testing.diff getarch.diff system-check-msvc.diff win32-uwp.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES threads USE_THREAD simplethread USE_SIMPLE_THREADED_LEVEL3 dynamic-arch DYNAMIC_ARCH ) # If not explicitly configured for a cross build, OpenBLAS wants to run # getarch executables in order to optimize for the target. # Adapting this to vcpkg triplets: # - install-getarch.diff introduces and uses GETARCH_BINARY_DIR, # - architecture and system name are required to match for GETARCH_BINARY_DIR, but # - uwp (aka WindowsStore) may run windows getarch. string(REPLACE "WindowsStore_" "_" SYSTEM_KEY "${VCPKG_CMAKE_SYSTEM_NAME}_${VCPKG_TARGET_ARCHITECTURE}") set(GETARCH_BINARY_DIR "${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/${SYSTEM_KEY}") if(EXISTS "${GETARCH_BINARY_DIR}") message(STATUS "OpenBLAS cross build, but may use ${PORT}:${HOST_TRIPLET} getarch") list(APPEND OPTIONS "-DGETARCH_BINARY_DIR=${GETARCH_BINARY_DIR}") elseif(VCPKG_CROSSCOMPILING) message(STATUS "OpenBLAS cross build, may not be able to use getarch") else() message(STATUS "OpenBLAS native build") endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) # Only the riscv64 kernel with riscv64_generic target is supported. # Cf. https://github.com/OpenMathLib/OpenBLAS/issues/3640#issuecomment-1144029630 et al. list(APPEND OPTIONS -DEMSCRIPTEN_SYSTEM_PROCESSOR=riscv64 -DTARGET=RISCV64_GENERIC ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" -DBUILD_TESTING=OFF -DBUILD_WITHOUT_LAPACK=ON -DNOFORTRAN=ON MAYBE_UNUSED_VARIABLES GETARCH_BINARY_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenBLAS) vcpkg_fixup_pkgconfig() # Required from native builds, optional from cross builds. if(NOT VCPKG_CROSSCOMPILING OR EXISTS "${CURRENT_PACKAGES_DIR}/bin/getarch${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tools( TOOL_NAMES getarch getarch_2nd DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/${SYSTEM_KEY}" AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openblas/system-check-msvc.diff ================================================ diff --git a/cmake/system_check.cmake b/cmake/system_check.cmake index e94497a..d884727 100644 --- a/cmake/system_check.cmake +++ b/cmake/system_check.cmake @@ -36,6 +36,16 @@ if(CMAKE_CL_64 OR MINGW64) else() set(X86_64 1) endif() +elseif(MSVC) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") + set(X86_64 1) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM") + set(ARM 1) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") + set(ARM64 1) + else() + set(X86 1) + endif() elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING)) set(X86 1) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc.*|power.*|Power.*" OR (CMAKE_SYSTEM_NAME MATCHES "Darwin" AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc.*")) ================================================ FILE: ports/openblas/vcpkg.json ================================================ { "name": "openblas", "version": "0.3.29", "description": "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.", "homepage": "https://github.com/OpenMathLib/OpenBLAS", "license": "BSD-3-Clause", "dependencies": [ { "name": "openblas", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dynamic-arch": { "description": "Support for multiple targets in a single library", "supports": "!windows | mingw" }, "simplethread": { "description": [ "Use simple thread safety for level3 functions", "Alternative to serialization of concurrent access to parallelized level3 functions." ], "dependencies": [ { "name": "openblas", "features": [ "threads" ] } ] }, "threads": { "description": "Enable multi-threading", "dependencies": [ { "name": "pthreads", "platform": "!windows" } ] } } } ================================================ FILE: ports/openblas/win32-uwp.diff ================================================ diff --git a/cmake/os.cmake b/cmake/os.cmake index 2effbe0..538ede2 100644 --- a/cmake/os.cmake +++ b/cmake/os.cmake @@ -18,7 +18,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "AIX") endif () # TODO: this is probably meant for mingw, not other windows compilers -if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (WIN32) set(NEED_PIC 0) set(NO_EXPRECISION 1) @@ -69,7 +69,7 @@ if (CYGWIN) set(NO_EXPRECISION 1) endif () -if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Interix" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Android") +if (NOT WIN32 AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Interix" AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Android") if (USE_THREAD) set(EXTRALIB "${EXTRALIB} -lpthread") endif () diff --git a/cmake/system.cmake b/cmake/system.cmake index 683c318..eae7436 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -507,7 +507,7 @@ if (USE_SIMPLE_THREADED_LEVEL3) set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_SIMPLE_THREADED_LEVEL3") endif () -if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (NOT WIN32) if (DEFINED MAX_STACK_ALLOC) if (NOT ${MAX_STACK_ALLOC} EQUAL 0) set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=${MAX_STACK_ALLOC}") @@ -516,7 +516,7 @@ else () set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=2048") endif () endif () -if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (NOT WIN32) if (DEFINED BLAS3_MEM_ALLOC_THRESHOLD) if (NOT ${BLAS3_MEM_ALLOC_THRESHOLD} EQUAL 32) set(CCOMMON_OPT "${CCOMMON_OPT} -DBLAS3_MEM_ALLOC_THRESHOLD=${BLAS3_MEM_ALLOC_THRESHOLD}") @@ -633,7 +633,7 @@ endif() set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}") #Disable -fopenmp for LAPACK Fortran codes on Windows. -if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (WIN32) set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel") foreach (FILTER_FLAG ${FILTER_FLAGS}) string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS}) @@ -665,11 +665,11 @@ if (INTERFACE64) set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_ILP64") endif () -if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (WIN32) set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DOPENBLAS_OS_WINDOWS") endif () -if (${CMAKE_C_COMPILER} STREQUAL "LSB" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +if (${CMAKE_C_COMPILER} STREQUAL "LSB" OR WIN32) set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_COMPLEX_STRUCTURE") endif () if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND ${CMAKE_SYSTEM_NAME} STREQUAL "Windows") ================================================ FILE: ports/opencascade/dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f8d62e06..1cf4a902 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -521,8 +521,8 @@ endif() if (CAN_USE_FREETYPE AND USE_FREETYPE) message (STATUS "Info: FreeType is used by OCCT") add_definitions (-DHAVE_FREETYPE) - OCCT_ADD_VCPKG_FEATURE ("freetype") - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/freetype") + find_package(Freetype MODULE REQUIRED) + set(CSF_FREETYPE Freetype::Freetype) else() if (NOT CAN_USE_FREETYPE) OCCT_CHECK_AND_UNSET ("USE_FREETYPE") @@ -537,9 +537,10 @@ endif() # VTK if (USE_VTK) add_definitions (-DHAVE_VTK) - OCCT_ADD_VCPKG_FEATURE ("vtk") set (OCCT_VTK_USED_TARGETS "" CACHE INTERNAL "" FORCE) - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/vtk") + find_package(VTK REQUIRED) + set(CSF_VTK VTK::CommonCore) + set(IS_VTK_9XX 1) else() OCCT_CHECK_AND_UNSET_GROUP ("3RDPARTY_VTK") OCCT_UNSET_VCPKG_FEATURE ("vtk") @@ -554,8 +555,8 @@ endif() # FREEIMAGE if (CAN_USE_FREEIMAGE AND USE_FREEIMAGE) add_definitions (-DHAVE_FREEIMAGE) - OCCT_ADD_VCPKG_FEATURE ("freeimage") - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/freeimage") + find_package(freeimage CONFIG REQUIRED) + set(CSF_FreeImagePlus freeimage::FreeImagePlus) elseif (NOT CAN_USE_FREEIMAGE) OCCT_CHECK_AND_UNSET ("USE_FREEIMAGE") OCCT_UNSET_VCPKG_FEATURE ("freeimage") @@ -650,8 +651,8 @@ endif() # TBB if (CAN_USE_TBB AND USE_TBB) add_definitions (-DHAVE_TBB) - OCCT_ADD_VCPKG_FEATURE ("tbb") - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/tbb") + find_package(TBB CONFIG REQUIRED) + set(CSF_TBB TBB::tbb TBB::tbbmalloc) elseif (NOT CAN_USE_TBB) OCCT_CHECK_AND_UNSET ("USE_TBB") OCCT_UNSET_VCPKG_FEATURE ("tbb") @@ -667,8 +668,8 @@ endif() OCCT_IS_PRODUCT_REQUIRED (CSF_RapidJSON CAN_USE_RAPIDJSON) if (CAN_USE_RAPIDJSON AND USE_RAPIDJSON) add_definitions (-DHAVE_RAPIDJSON) - OCCT_ADD_VCPKG_FEATURE ("rapidjson") - list (APPEND OCCT_3RDPARTY_CMAKE_LIST "adm/cmake/rapidjson") + find_package(RapidJSON CONFIG REQUIRED) + set(CSF_RapidJSON rapidjson) elseif (NOT CAN_USE_RAPIDJSON) OCCT_CHECK_AND_UNSET ("USE_RAPIDJSON") OCCT_UNSET_VCPKG_FEATURE ("rapidjson") diff --git a/adm/cmake/occt_csf.cmake b/adm/cmake/occt_csf.cmake index 49e35d44..124eb4d6 100644 --- a/adm/cmake/occt_csf.cmake +++ b/adm/cmake/occt_csf.cmake @@ -163,7 +163,9 @@ else() set (CSF_OpenGlesLibs "EGL GLESv2") set (CSF_dl "dl") if (USE_FREETYPE) - set (CSF_fontconfig "fontconfig") + find_package(Fontconfig REQUIRED) + set(USE_FONTCONFIG "ON" CACHE INTERNAL "") + set (CSF_fontconfig "Fontconfig::Fontconfig") endif() endif() endif() diff --git a/adm/templates/OpenCASCADEConfig.cmake.in b/adm/templates/OpenCASCADEConfig.cmake.in index 5079ba63..137206bb 100644 --- a/adm/templates/OpenCASCADEConfig.cmake.in +++ b/adm/templates/OpenCASCADEConfig.cmake.in @@ -70,6 +70,26 @@ set (OpenCASCADE_WITH_GLES2 @USE_GLES2@) @SET_OpenCASCADE_WITH_D3D@ @SET_OpenCASCADE_WITH_GLX@ +include(CMakeFindDependencyMacro) +if("@USE_FREEIMAGE@") + find_dependency(freeimage CONFIG) +endif() +if("@USE_FREETYPE@") + find_dependency(Freetype MODULE) + if("@USE_FONTCONFIG@") + find_dependency(Fontconfig) + endif() +endif() +if("@USE_RAPIDJSON@") + find_dependency(RapidJSON CONFIG) +endif() +if("@USE_TBB@") + find_dependency(TBB CONFIG) +endif() +if("@USE_VTK@") + find_dependency(VTK) +endif() + # Import OpenCASCADE compile definitions, C and C++ flags for each installed configuration. file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenCASCADECompileDefinitionsAndFlags-*.cmake") foreach(f ${CONFIG_FILES}) diff --git a/src/Image/Image_AlienPixMap.cxx b/src/Image/Image_AlienPixMap.cxx index 7e14e9e6..e6c23d78 100644 --- a/src/Image/Image_AlienPixMap.cxx +++ b/src/Image/Image_AlienPixMap.cxx @@ -19,10 +19,6 @@ #ifdef HAVE_FREEIMAGE #include - - #ifdef _MSC_VER - #pragma comment(lib, "FreeImage.lib") - #endif #elif defined(HAVE_WINCODEC) #include // prevent warnings on MSVC10 ================================================ FILE: ports/opencascade/drop-bin-letter-d.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d051f5ccce..91517a5936 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -317,7 +317,6 @@ set (CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "" FORCE) set (BIN_LETTER "") if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - set (BIN_LETTER "d") elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") set (BIN_LETTER "i") endif() @@ -1002,6 +1001,7 @@ if (WIN32) set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin") set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bini") set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bind") + set (CMAKE_PDB_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin") endif() string(TIMESTAMP CURRENT_TIME "%H:%M:%S") diff --git a/adm/cmake/occt_macros.cmake b/adm/cmake/occt_macros.cmake index 92a8db33dc..3d4c95b584 100644 --- a/adm/cmake/occt_macros.cmake +++ b/adm/cmake/occt_macros.cmake @@ -779,7 +779,7 @@ macro (OCCT_INSERT_CODE_FOR_TARGET) elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Rr][Ee][Ll][Ww][Ii][Tt][Hh][Dd][Ee][Bb][Ii][Nn][Ff][Oo])$\") set (OCCT_INSTALL_BIN_LETTER \"i\") elseif (\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\") - set (OCCT_INSTALL_BIN_LETTER \"d\") + set (OCCT_INSTALL_BIN_LETTER \"\") endif()") endmacro() diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index beb934f7..95cec74a 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -172,7 +172,6 @@ set (CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "" FORCE) set (BIN_LETTER "") if ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - set (BIN_LETTER "d") elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo") set (BIN_LETTER "i") endif() ================================================ FILE: ports/opencascade/fix-install-prefix-path.patch ================================================ diff --git a/adm/templates/OpenCASCADEConfig.cmake.in b/adm/templates/OpenCASCADEConfig.cmake.in index e391ddfe8e..c926c499ac 100644 --- a/adm/templates/OpenCASCADEConfig.cmake.in +++ b/adm/templates/OpenCASCADEConfig.cmake.in @@ -24,6 +24,7 @@ set (OpenCASCADE_DEVELOPMENT_VERSION "@OCC_VERSION_DEVELOPMENT@") # - in Android style: $INSTALL_DIR/libs/$CMAKE_ANDROID_ARCH_ABI/cmake/opencascade- get_filename_component (OpenCASCADE_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) +get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) if (OpenCASCADE_INSTALL_PREFIX MATCHES "/cmake$") get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH) endif() ================================================ FILE: ports/opencascade/install-include-dir.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 715adb7c2e..a06f8a8c88 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1375,6 +1375,11 @@ foreach (OCCT_MODULE ${OCCT_MODULES}) endforeach() set (OCCT_MODULES_ENABLED ${OCCT_MODULES_ENABLED_SORTED}) +foreach (OCCT_LIBRARY IN LISTS OCCT_LIBRARIES) + target_include_directories(${OCCT_LIBRARY} INTERFACE $) # OpenCASCADE_INCLUDE_DIR + target_include_directories(${OCCT_LIBRARY} INTERFACE $) # vcpkg lock-in +endforeach() + # Add all targets to the build-tree export set export (TARGETS ${OCCT_LIBRARIES} FILE "${CMAKE_BINARY_DIR}/OpenCASCADETargets.cmake") ================================================ FILE: ports/opencascade/portfile.cmake ================================================ string(REPLACE "." "_" VERSION_STR "V${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Open-Cascade-SAS/OCCT REF "${VERSION_STR}" SHA512 65935a2f46021e2b9a7dd2a218515c06925454855a8cc952fcbd1cccbfd5c8d605ed8f1d930d2aec87ef172ded551d0a237fad128319fb9cbcabdc755aa0aa67 HEAD_REF master PATCHES fix-install-prefix-path.patch drop-bin-letter-d.patch dependencies.patch install-include-dir.patch remove-vcpkg-enabling.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(BUILD_TYPE "Shared") else() set(BUILD_TYPE "Static") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES freeimage USE_FREEIMAGE freetype USE_FREETYPE rapidjson USE_RAPIDJSON samples INSTALL_SAMPLES tbb USE_TBB vtk USE_VTK ) # We turn off BUILD_MODULE_Draw as it requires TCL 8.6 and TK 8.6 specifically which conflicts with vcpkg only having TCL 9.0 # And pre-built ActiveTCL binaries are behind a marketing wall :( # We use the Unix install layout for Windows as it matches vcpkg vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_LIBRARY_TYPE=${BUILD_TYPE} -DBUILD_MODULE_Draw=OFF -DBUILD_DOC_Overview=OFF -DBUILD_MODULE_DETools=OFF -DINSTALL_DIR_LAYOUT=Unix -DINSTALL_DIR_DOC=share/trash -DINSTALL_DIR_SCRIPT=share/trash # not relocatable -DINSTALL_TEST_CASES=OFF -DUSE_TK=OFF OPTIONS_DEBUG -DINSTALL_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/opencascade) #make occt includes relative to source_file file(GLOB extra_headers LIST_DIRECTORIES false RELATIVE "${CURRENT_PACKAGES_DIR}/include/opencascade" "${CURRENT_PACKAGES_DIR}/include/opencascade/*.h" ) list(JOIN extra_headers "|" extra_headers) file(GLOB files "${CURRENT_PACKAGES_DIR}/include/opencascade/*.[hgl]xx") foreach(file_name IN LISTS files) vcpkg_replace_string("${file_name}" "(# *include) <([a-zA-Z0-9_]*[.][hgl]xx|${extra_headers})>" [[\1 "\2"]] REGEX IGNORE_UNCHANGED) endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/opencascade/Standard_Macro.hxx" "defined(OCCT_STATIC_BUILD)" "(1)") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencascade/samples/qt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/trash") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE_LGPL_21.txt" "${SOURCE_PATH}/OCCT_LGPL_EXCEPTION.txt" ) ================================================ FILE: ports/opencascade/remove-vcpkg-enabling.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a06f8a8c88..de45605c62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,9 +2,6 @@ cmake_minimum_required (VERSION 3.10 FATAL_ERROR) if (NOT DEFINED BUILD_USE_VCPKG) set (BUILD_USE_VCPKG OFF CACHE BOOL "Use vcpkg for 3rdparty libraries.") - if (CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg.cmake") - set (BUILD_USE_VCPKG ON) - endif() endif() if (BUILD_USE_VCPKG) ================================================ FILE: ports/opencascade/vcpkg.json ================================================ { "name": "opencascade", "version": "7.9.3", "description": "Open CASCADE Technology (OCCT) is an open-source software development platform for 3D CAD, CAM, CAE.", "homepage": "https://github.com/Open-Cascade-SAS/OCCT", "license": "LGPL-2.1-only", "supports": "!xbox", "dependencies": [ { "name": "angle", "platform": "uwp" }, { "name": "opengl", "platform": "!(android | ios | uwp | wasm32)" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "freetype", "platform": "!uwp" } ], "features": { "freeimage": { "description": "Enable optional usage of freeimage", "dependencies": [ "freeimage" ] }, "freetype": { "description": "Use of freetype", "supports": "!uwp", "dependencies": [ { "name": "fontconfig", "platform": "!android & !emscripten & !ios & !osx & !windows" }, { "name": "freetype", "default-features": false } ] }, "rapidjson": { "description": "Enable optional usage of rapidjson", "dependencies": [ "rapidjson" ] }, "samples": { "description": "Enable optional samples" }, "tbb": { "description": "Enable optional usage of tbb", "dependencies": [ "tbb" ] }, "vtk": { "description": "Enable optional usage of vtk", "dependencies": [ { "name": "vtk", "default-features": false, "features": [ "opengl" ] } ] } } } ================================================ FILE: ports/opencc/enable-cpp17.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d8c8e6..8979a5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,7 +72,7 @@ include(CPack) if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CMAKE_MACOSX_RPATH 1) - set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) endif() @@ -154,7 +154,7 @@ add_definitions( if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") add_definitions( - -std=c++14 + -std=c++17 -Wall ) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") @@ -163,7 +163,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") endif () elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") add_definitions( - -std=c++14 + -std=c++17 -Wall ) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") @@ -174,6 +174,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") add_definitions( /W4 /D "_CRT_SECURE_NO_WARNINGS" + /std:c++17 ) endif() ================================================ FILE: ports/opencc/fix-dependencies.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7768c89..70292d6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -115,7 +115,7 @@ add_library(libopencc ${LIBOPENCC_SOURCES} ${LIBOPENCC_HEADERS}) add_library(OpenCC::OpenCC ALIAS libopencc) set_target_properties(libopencc PROPERTIES POSITION_INDEPENDENT_CODE ON) source_group(libopencc FILES ${LIBOPENCC_SOURCES} ${LIBOPENCC_HEADERS}) -target_link_libraries(libopencc marisa) +target_link_libraries(libopencc ${LIBMARISA}) target_include_directories(libopencc PUBLIC $ $ @@ -144,6 +144,21 @@ set_target_properties( ${OPENCC_VERSION_MAJOR}.${OPENCC_VERSION_MINOR} ) +if(USE_SYSTEM_RAPIDJSON) + find_package(RapidJSON CONFIG REQUIRED) + target_link_libraries(libopencc rapidjson) +endif() + +if(USE_SYSTEM_TCLAP) + find_path(TCLAP_INCLUDE_DIRS "tclap/Arg.h") + target_include_directories(libopencc PUBLIC ${TCLAP_INCLUDE_DIRS}) +endif() + +if(USE_SYSTEM_DARTS) + find_path(DARTS_INCLUDE_DIRS "darts.h") + target_include_directories(libopencc PUBLIC ${DARTS_INCLUDE_DIRS}) +endif() + # Installation if (USE_SYSTEM_MARISA) ================================================ FILE: ports/opencc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BYVoid/OpenCC REF "ver.${VERSION}" SHA512 713cf00931d7616994eb455eef3bc893096b5cd6d42b346aa1130591752d9612891ea3ed035bd7bd4ec7df1c90425e86375f5b3337fac11663c656c79a8f33e9 HEAD_REF master PATCHES fix-dependencies.patch # marisa-trie/0.3.0 requires C++17, so we need to enable it enable-cpp17.patch ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DOCUMENTATION=OFF -DENABLE_GTEST=OFF -DUSE_SYSTEM_RAPIDJSON=ON -DUSE_SYSTEM_TCLAP=ON -DUSE_SYSTEM_DARTS=ON -DUSE_SYSTEM_MARISA=ON -DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf ) vcpkg_cmake_install( DISABLE_PARALLEL ) vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/opencc) vcpkg_fixup_pkgconfig() set(tool_names "opencc" "opencc_dict" "opencc_phrase_extract") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() foreach(opencc_tool IN LISTS tool_names) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${opencc_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/${opencc_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" ) endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/opencc/vcpkg.json ================================================ { "name": "opencc", "version": "1.1.9", "port-version": 1, "description": "A project for conversions between Traditional Chinese, Simplified Chinese and Japanese Kanji (Shinjitai)", "homepage": "https://github.com/BYVoid/OpenCC", "license": "Apache-2.0", "supports": "!(arm | uwp)", "dependencies": [ "darts-clone", "marisa-trie", { "name": "pkgconf", "host": true }, "rapidjson", "tclap", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build OpenCC command-line tools" } } } ================================================ FILE: ports/opencensus-cpp/fix-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ecec53..45d994c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,13 @@ enable_testing() list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) -include(OpenCensusDeps) +find_package(absl CONFIG REQUIRED) +find_package(prometheus-cpp CONFIG REQUIRED) + +if(BUILD_TESTING) + find_package(GTest CONFIG REQUIRED) + find_package(benchmark CONFIG REQUIRED) +endif() include(OpenCensusHelpers) diff --git a/cmake/OpenCensusHelpers.cmake b/cmake/OpenCensusHelpers.cmake index 8fdfe96..6667085 100644 --- a/cmake/OpenCensusHelpers.cmake +++ b/cmake/OpenCensusHelpers.cmake @@ -35,8 +35,15 @@ function(opencensus_test NAME SRC) set(_NAME "opencensus_${NAME}") add_executable(${_NAME} ${SRC}) prepend_opencensus(DEPS "${ARGN}") - target_link_libraries(${_NAME} "${DEPS}" gmock gtest_main) + target_link_libraries(${_NAME} "${DEPS}" GTest::gmock GTest::gtest_main) add_test(NAME ${_NAME} COMMAND ${_NAME}) + + install( + TARGETS ${_NAME} + RUNTIME DESTINATION tools + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif() endfunction() @@ -49,7 +56,14 @@ function(opencensus_benchmark NAME SRC) set(_NAME "opencensus_${NAME}") add_executable(${_NAME} ${SRC}) prepend_opencensus(DEPS "${ARGN}") - target_link_libraries(${_NAME} "${DEPS}" benchmark) + target_link_libraries(${_NAME} "${DEPS}" benchmark::benchmark) + + install( + TARGETS ${_NAME} + RUNTIME DESTINATION tools + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif() endfunction() @@ -71,6 +85,12 @@ function(opencensus_lib NAME) if(ARG_PUBLIC) add_library(${PROJECT_NAME}::${NAME} ALIAS ${_NAME}) endif() + install( + TARGETS ${_NAME} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endfunction() # Helper function for fuzzing. Usage: @@ -83,5 +103,12 @@ function(opencensus_fuzzer NAME SRC) prepend_opencensus(DEPS "${ARGN}") target_link_libraries(${_NAME} "${DEPS}" ${FUZZER}) target_compile_options(${_NAME} PRIVATE ${FUZZER}) + + install( + TARGETS ${_NAME} + RUNTIME DESTINATION tools + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif() endfunction() diff --git a/examples/helloworld/CMakeLists.txt b/examples/helloworld/CMakeLists.txt index 86cc1f4..cbbcb29 100644 --- a/examples/helloworld/CMakeLists.txt +++ b/examples/helloworld/CMakeLists.txt @@ -23,3 +23,10 @@ target_link_libraries( opencensus-cpp::stats opencensus-cpp::trace Threads::Threads) + +install( + TARGETS opencensus_examples_helloworld + RUNTIME DESTINATION tools + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/opencensus/common/internal/CMakeLists.txt b/opencensus/common/internal/CMakeLists.txt index a9dbd87..810a8c8 100644 --- a/opencensus/common/internal/CMakeLists.txt +++ b/opencensus/common/internal/CMakeLists.txt @@ -23,6 +23,12 @@ opencensus_lib( absl::synchronization absl::time) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/common/internal) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/grpc/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/common/internal/grpc) + opencensus_lib(common_stats_object DEPS absl::time) # Define NOMINMAX to fix build errors when compiling with MSVC. diff --git a/opencensus/context/CMakeLists.txt b/opencensus/context/CMakeLists.txt index 149958c..2474a66 100644 --- a/opencensus/context/CMakeLists.txt +++ b/opencensus/context/CMakeLists.txt @@ -22,6 +22,9 @@ opencensus_lib( tags trace) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/context) + opencensus_test( context_context_test internal/context_test.cc diff --git a/opencensus/exporters/stats/prometheus/CMakeLists.txt b/opencensus/exporters/stats/prometheus/CMakeLists.txt index 01038cc..0ad712b 100644 --- a/opencensus/exporters/stats/prometheus/CMakeLists.txt +++ b/opencensus/exporters/stats/prometheus/CMakeLists.txt @@ -21,6 +21,12 @@ opencensus_lib( exporters_stats_prometheus_utils stats) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/exporters/stats/prometheus) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/internal/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/exporters/stats/prometheus/internal) + opencensus_lib( exporters_stats_prometheus_utils SRCS diff --git a/opencensus/exporters/stats/stdout/CMakeLists.txt b/opencensus/exporters/stats/stdout/CMakeLists.txt index 5278e65..2930817 100644 --- a/opencensus/exporters/stats/stdout/CMakeLists.txt +++ b/opencensus/exporters/stats/stdout/CMakeLists.txt @@ -23,5 +23,8 @@ opencensus_lib( absl::strings absl::time) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/exporters/stats/stdout) + opencensus_test(exporters_stats_stdout_test internal/stdout_exporter_test.cc exporters_stats_stdout stats stats_test_utils absl::time) diff --git a/opencensus/exporters/trace/stdout/CMakeLists.txt b/opencensus/exporters/trace/stdout/CMakeLists.txt index c7c580f..d9befa1 100644 --- a/opencensus/exporters/trace/stdout/CMakeLists.txt +++ b/opencensus/exporters/trace/stdout/CMakeLists.txt @@ -22,5 +22,8 @@ opencensus_lib( absl::base absl::memory) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/exporters/trace/stdout) + opencensus_test(exporters_trace_stdout_test internal/stdout_exporter_test.cc exporters_trace_stdout trace absl::time) diff --git a/opencensus/stats/CMakeLists.txt b/opencensus/stats/CMakeLists.txt index 9b0d7af..a8a9d50 100644 --- a/opencensus/stats/CMakeLists.txt +++ b/opencensus/stats/CMakeLists.txt @@ -71,6 +71,12 @@ opencensus_lib( absl::strings absl::time) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/stats) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/internal/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/stats/internal) + # ---------------------------------------------------------------------- # Tests # ---------------------------------------------------------------------- diff --git a/opencensus/tags/CMakeLists.txt b/opencensus/tags/CMakeLists.txt index 7219a2a..97a0de1 100644 --- a/opencensus/tags/CMakeLists.txt +++ b/opencensus/tags/CMakeLists.txt @@ -53,6 +53,12 @@ opencensus_lib( context absl::strings) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/tags) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/propagation/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/tags/propagation) + opencensus_test(tags_context_util_test internal/context_util_test.cc tags tags_context_util tags_with_tag_map context) diff --git a/opencensus/trace/CMakeLists.txt b/opencensus/trace/CMakeLists.txt index 2c4e656..25d7241 100644 --- a/opencensus/trace/CMakeLists.txt +++ b/opencensus/trace/CMakeLists.txt @@ -122,6 +122,18 @@ opencensus_lib( trace context) +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/trace) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/exporter/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/trace/exporter) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/internal/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/trace/internal) + +file(GLOB HDRS ${CMAKE_CURRENT_LIST_DIR}/propagation/*.h) +install(FILES ${HDRS} DESTINATION include/opencensus-cpp/opencensus/trace/propagation) + # ---------------------------------------------------------------------- # Tests # ---------------------------------------------------------------------- ================================================ FILE: ports/opencensus-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO census-instrumentation/opencensus-cpp REF 62d8281899a1cfd1084793f64295329a6b5d22b3 # 2021-08-26 SHA512 35df40d7e5ce933384fe6ba4ac2d704e0801ac47765fca97ea3f8d787886abe5c588855c3aac5745f047c1c8f2047e1f69b62340dd702042a61c3dc430ca36b4 HEAD_REF master PATCHES fix-install.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test BUILD_TESTING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/opencensus-cpp/vcpkg.json ================================================ { "name": "opencensus-cpp", "version-date": "2021-08-26", "port-version": 2, "description": "OpenCensus is a toolkit for collecting application performance and behavior data. It currently includes an API for tracing and stats.", "homepage": "https://github.com/census-instrumentation/opencensus-cpp", "license": "Apache-2.0", "supports": "!windows", "dependencies": [ "abseil", "prometheus-cpp", { "name": "vcpkg-cmake", "host": true } ], "features": { "test": { "description": "Build test", "dependencies": [ "benchmark", "gtest" ] } } } ================================================ FILE: ports/opencl/001-remove-extra-install-rules.patch ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index dfb336d..ef97f82 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -114,13 +114,6 @@ foreach(UTIL_LIB_NAME IN ITEMS Utils UtilsCpp) DESTINATION ${config_package_location} COMPONENT binary ) - - # For packaging the utils libraries - install( - TARGETS ${UTIL_LIB_TARGET} - DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT binary - ) endforeach() if(OPENCL_SDK_BUILD_SAMPLES) diff --git a/lib/src/Extensions/CMakeLists.txt b/lib/src/Extensions/CMakeLists.txt index e05d4e7..017f7ad 100644 --- a/lib/src/Extensions/CMakeLists.txt +++ b/lib/src/Extensions/CMakeLists.txt @@ -151,13 +151,6 @@ if (OPENCL_EXTENSION_LOADER_INSTALL) DESTINATION ${OPENCL_EXTENSION_LOADER_CONFIG_PATH} COMPONENT binary ) - - # For packaging the extensions library - install( - TARGETS OpenCLExt - DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT binary - ) endif() if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) ================================================ FILE: ports/opencl/icd-loader-pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a1617d0..1bbcafb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,6 +125,7 @@ set_target_properties (OpenCL PROPERTIES VERSION 1\.0\.0 SOVERSION "1") if (WIN32) target_link_libraries (OpenCL PRIVATE cfgmgr32.lib runtimeobject.lib) + string(APPEND OPENCL_LIBS_PRIVATE_PC " -lcfgmgr32 -lruntimeobject") # Generate a DLL without a "lib" prefix for mingw. if (MINGW OR MSYS OR CYGWIN) @@ -133,6 +134,7 @@ if (WIN32) endif() else() target_link_libraries (OpenCL PRIVATE ${CMAKE_THREAD_LIBS_INIT}) + string(APPEND OPENCL_LIBS_PRIVATE_PC " ${CMAKE_THREAD_LIBS_INIT}") if (NOT APPLE) set_target_properties (OpenCL PROPERTIES LINK_FLAGS "-Wl,--version-script -Wl,${CMAKE_CURRENT_SOURCE_DIR}/loader/linux/icd_exports.map") if (OPENCL_ICD_LOADER_PIC) @@ -174,6 +176,9 @@ target_include_directories (OpenCL loader ) target_link_libraries (OpenCL PUBLIC ${CMAKE_DL_LIBS}) +if(CMAKE_DL_LIBS STREQUAL "dl") + string(APPEND OPENCL_LIBS_PRIVATE_PC " -ldl") +endif() if (ENABLE_OPENCL_LAYERINFO) @@ -294,3 +299,4 @@ install (TARGETS OpenCL DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT dev NAMELINK_ONLY) +install_opencl_pc() diff --git a/OpenCL.pc.in b/OpenCL.pc.in index ef35333..b86da22 100644 --- a/OpenCL.pc.in +++ b/OpenCL.pc.in @@ -7,3 +7,4 @@ Description: Khronos OpenCL ICD Loader Requires: OpenCL-Headers Version: 3.0 Libs: -L${libdir} -lOpenCL +Libs.private:@OPENCL_LIBS_PRIVATE_PC@ diff --git a/cmake/Package.cmake b/cmake/Package.cmake index adfa505..e1d0e1f 100644 --- a/cmake/Package.cmake +++ b/cmake/Package.cmake @@ -12,6 +12,7 @@ join_paths(OPENCL_LIBDIR_PC "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}") set(pkg_config_location ${CMAKE_INSTALL_LIBDIR}/pkgconfig) set(PKGCONFIG_PREFIX "${CMAKE_INSTALL_PREFIX}") +function(install_opencl_pc) # Configure and install OpenCL.pc for installing the project configure_file( OpenCL.pc.in @@ -34,6 +35,7 @@ install( DESTINATION ${pkg_config_location} COMPONENT dev EXCLUDE_FROM_ALL) +endfunction() set(CPACK_DEBIAN_PACKAGE_DEBUG ON) ================================================ FILE: ports/opencl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenCL-SDK REF "v${VERSION}" SHA512 be396a7aad6251d9d1f1af265ecf20f3428d87610d680c14d92fb5b060a59ce8b8522135a0dd29eaf20e75683e45c1c8ea55035a7c3ec3eddc4bc7680d68b66e HEAD_REF main PATCHES # see https://github.com/KhronosGroup/OpenCL-SDK/pull/88/files#r1905072265 001-remove-extra-install-rules.patch ) vcpkg_from_github( OUT_SOURCE_PATH OPENCL_HEADERS REPO KhronosGroup/OpenCL-Headers REF "v${VERSION}" SHA512 9d2ed2a8346bc3f967989091d8cc36148ffe5ff13fe30e12354cc8321c09328bbe23e74817526b99002729c884438a3b1834e175a271f6d36e8341fd86fc1ad5 HEAD_REF main ) if(NOT EXISTS "${SOURCE_PATH}/external/OpenCL-Headers/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/external/OpenCL-Headers") file(RENAME "${OPENCL_HEADERS}" "${SOURCE_PATH}/external/OpenCL-Headers") endif() vcpkg_from_github( OUT_SOURCE_PATH OPENCL_CLHPP REPO KhronosGroup/OpenCL-CLHPP REF "v${VERSION}" SHA512 7cdadc8ef182d1556346bd34b5a9ffe6e239ab61ec527e5609d69e1bcaf81a88f3fc534f5bdeed037236e1b0e61f1544d2a95c06df55f9cd8e03e13baf4143ba HEAD_REF main ) if(NOT EXISTS "${SOURCE_PATH}/external/OpenCL-CLHPP/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/external/OpenCL-CLHPP") file(RENAME "${OPENCL_CLHPP}" "${SOURCE_PATH}/external/OpenCL-CLHPP") endif() vcpkg_from_github( OUT_SOURCE_PATH OPENCL_ICD_LOADER REPO KhronosGroup/OpenCL-ICD-Loader REF "v${VERSION}" SHA512 29043eff21076440046314edf62bb488b7e4e17d9fbdac4c3727d8e2523c0c8fbf89ee7fcf762528af761ddbcb4be24e5f062ffa82f778401d6365faa35344a8 HEAD_REF main PATCHES icd-loader-pkgconfig.diff ) if(NOT EXISTS "${SOURCE_PATH}/external/OpenCL-ICD-Loader/CMakeLists.txt") file(REMOVE_RECURSE "${SOURCE_PATH}/external/OpenCL-ICD-Loader") file(RENAME "${OPENCL_ICD_LOADER}" "${SOURCE_PATH}/external/OpenCL-ICD-Loader") endif() vcpkg_from_github( OUT_SOURCE_PATH WHEREAMI REPO gpakosz/whereami REF f5e3eac441acbb4ec1fe3e2c32646248ae463398 # 2024-06-09 SHA512 d6fa8b6788cabdbb185a6ffba79c994762924a1c60595b769a7d3bb4a3ddf0f80cdeac7bd915cffa720f9123a720a1b7f0023fd7f2cf58906d15758529a99e2d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DFETCHCONTENT_SOURCE_DIR_WHEREAMI-EXTERNAL=${WHEREAMI}" -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DOPENCL_HEADERS_BUILD_CXX_TESTS=OFF -DOPENCL_SDK_BUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLHeaders" PACKAGE_NAME "OpenCLHeaders" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLICDLoader" PACKAGE_NAME "OpenCLICDLoader" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLHeadersCpp" PACKAGE_NAME "OpenCLHeadersCpp" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLUtils" PACKAGE_NAME "OpenCLUtils" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCLUtilsCpp" PACKAGE_NAME "OpenCLUtilsCpp" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/OpenCL" PACKAGE_NAME "opencl") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES cllayerinfo AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${WHEREAMI}/LICENSE.MIT" COMMENT [[ The OpenCL SDK is licensed under the terms of the Apache-2.0 license. The OpenCL Utility Library uses code from https://github.com/gpakosz/whereami which is dual licensed under both the WTFPLv2 and MIT licenses. ]]) ================================================ FILE: ports/opencl/usage ================================================ opencl provides CMake targets: find_package(OpenCL CONFIG REQUIRED) # Khronos OpenCL ICD Loader target_link_libraries(main PRIVATE OpenCL::OpenCL) # Khronos OpenCL Headers and C++ bindings target_link_libraries(main PRIVATE OpenCL::Headers) target_link_libraries(main PRIVATE OpenCL::HeadersCpp) # OpenCL Utility Library and C++ bindings target_link_libraries(main PRIVATE OpenCL::Utils) target_link_libraries(main PRIVATE OpenCL::UtilsCpp) opencl provides pkg-config modules: # Khronos OpenCL ICD Loader OpenCL # Khronos OpenCL Headers and C++ bindings OpenCL-Headers OpenCL-CLHPP This package is only an OpenCL SDK. To actually run OpenCL code you also need to install an implementation. Windows: Implementations typically ship with the drivers of you CPU/GPU vendors. Linux: Implementations may be installed from your distro's repo or manually. Apple: Consult your distribution vendor on the state of OpenCL support: https://support.apple.com/en-us/HT202823 ================================================ FILE: ports/opencl/vcpkg-cmake-wrapper.cmake ================================================ string(FIND ";${ARGS};" ";CONFIG;" z_vcpkg_opencl_config) _find_package(${ARGS}) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND (NOT CMAKE_SYSTEM_NAME MATCHES "Darwin") AND z_vcpkg_opencl_config EQUAL "-1") find_package(Threads REQUIRED) set(OpenCL_Extra_Libs ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}) if(CMAKE_SYSTEM_NAME MATCHES "Windows") list(APPEND OpenCL_Extra_Libs cfgmgr32) if("$ENV{WindowsSDKVersion}" MATCHES "^10") list(APPEND OpenCL_Extra_Libs OneCoreUAP) endif() endif() if(TARGET OpenCL::OpenCL) set_property(TARGET OpenCL::OpenCL APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${OpenCL_Extra_Libs}) endif() if(OpenCL_LIBRARIES) list(APPEND OpenCL_LIBRARIES ${OpenCL_Extra_Libs}) endif() unset(OpenCL_Extra_Libs) endif() unset(z_vcpkg_opencl_config) ================================================ FILE: ports/opencl/vcpkg.json ================================================ { "name": "opencl", "version": "2024.10.24", "port-version": 1, "description": "OpenCL SDK", "homepage": "https://github.com/KhronosGroup/OpenCL-SDK", "license": "Apache-2.0 AND (MIT OR WTFPL)", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/opencolorio/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7689975..2a559ff 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -517,7 +517,7 @@ install( FILE ${OCIO_TARGETS_EXPORT_NAME} ) -if (NOT BUILD_SHARED_LIBS) +if (0) # Install custom macros used in the find modules. install(FILES ${CMAKE_CURRENT_LIST_DIR}/share/cmake/macros/VersionUtils.cmake diff --git a/share/cmake/modules/FindExtPackages.cmake b/share/cmake/modules/FindExtPackages.cmake index 9bf17cf..8376ac5 100644 --- a/share/cmake/modules/FindExtPackages.cmake +++ b/share/cmake/modules/FindExtPackages.cmake @@ -55,6 +55,7 @@ message(STATUS "Checking for mandatory dependencies...") # expat # https://github.com/libexpat/libexpat ocio_handle_dependency( expat REQUIRED ALLOW_INSTALL + CONFIG MIN_VERSION 2.6.0 RECOMMENDED_VERSION 2.7.2 RECOMMENDED_VERSION_REASON "CVE fixes and Latest version tested with OCIO") @@ -62,6 +63,7 @@ ocio_handle_dependency( expat REQUIRED ALLOW_INSTALL # yaml-cpp # https://github.com/jbeder/yaml-cpp ocio_handle_dependency( yaml-cpp REQUIRED ALLOW_INSTALL + CONFIG MIN_VERSION 0.8.0 RECOMMENDED_VERSION 0.8.0 RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") @@ -69,13 +71,13 @@ ocio_handle_dependency( yaml-cpp REQUIRED ALLOW_INSTALL # pystring # https://github.com/imageworks/pystring ocio_handle_dependency( pystring REQUIRED ALLOW_INSTALL - MIN_VERSION 1.1.3 - RECOMMENDED_VERSION 1.1.4 + CONFIG RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") # Imath # https://github.com/AcademySoftwareFoundation/Imath ocio_handle_dependency( Imath REQUIRED ALLOW_INSTALL + CONFIG MIN_VERSION 3.1.1 RECOMMENDED_VERSION 3.2.1 RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") @@ -111,6 +113,7 @@ ocio_handle_dependency( ZLIB REQUIRED ALLOW_INSTALL # minizip-ng # https://github.com/zlib-ng/minizip-ng ocio_handle_dependency( minizip-ng REQUIRED ALLOW_INSTALL + CONFIG MIN_VERSION 4.0.0 RECOMMENDED_VERSION 4.0.10 RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") @@ -132,8 +135,7 @@ if(OCIO_BUILD_APPS) # lcms2 # https://github.com/mm2/Little-CMS ocio_handle_dependency( lcms2 REQUIRED ALLOW_INSTALL - MIN_VERSION 2.2 - RECOMMENDED_VERSION 2.17 + CONFIG RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") endif() @@ -218,6 +220,7 @@ if((OCIO_BUILD_APPS AND OCIO_USE_OIIO_FOR_APPS) OR OCIO_BUILD_TESTS) # Calling find_package in CONFIG mode using PREFER_CONFIG option as OIIO support # config file since 2.1+ and OCIO minimum version is over that. ocio_handle_dependency( OpenImageIO PREFER_CONFIG + CONFIG MIN_VERSION ${OIIO_VERSION} RECOMMENDED_VERSION ${OIIO_RECOMMENDED_VERSION} PROMOTE_TARGET OpenImageIO::OpenImageIO) diff --git a/src/cmake/Config.cmake.in b/src/cmake/Config.cmake.in index 4e2367b..fc0e483 100644 --- a/src/cmake/Config.cmake.in +++ b/src/cmake/Config.cmake.in @@ -23,19 +23,19 @@ if (NOT @BUILD_SHARED_LIBS@) # NOT @BUILD_SHARED_LIBS@ ######################## if (NOT TARGET expat::expat) - find_dependency(expat @expat_VERSION@) + find_dependency(expat @expat_VERSION@ CONFIG) endif() if (NOT TARGET Imath::Imath) - find_dependency(Imath @Imath_VERSION@) + find_dependency(Imath @Imath_VERSION@ CONFIG) endif() if (NOT TARGET pystring::pystring) - find_dependency(pystring @pystring_VERSION@) + find_dependency(pystring @pystring_VERSION@ CONFIG) endif() if (NOT TARGET yaml-cpp::yaml-cpp) - find_dependency(yaml-cpp @yaml-cpp_VERSION@) + find_dependency(yaml-cpp @yaml-cpp_VERSION@ CONFIG) if (TARGET yaml-cpp AND NOT TARGET yaml-cpp::yaml-cpp) add_library(yaml-cpp::yaml-cpp ALIAS yaml-cpp) endif() @@ -54,7 +54,7 @@ if (NOT @BUILD_SHARED_LIBS@) # NOT @BUILD_SHARED_LIBS@ endif() if (NOT TARGET MINIZIP::minizip-ng) - find_dependency(minizip-ng @minizip-ng_VERSION@) + find_dependency(minizip-ng @minizip-ng_VERSION@ CONFIG) endif() # Remove OCIO custom find module path. ================================================ FILE: ports/opencolorio/glew-no-glu.diff ================================================ diff --git a/src/libutils/oglapphelpers/glsl.cpp b/src/libutils/oglapphelpers/glsl.cpp index 0154eff..6ad4356 100644 --- a/src/libutils/oglapphelpers/glsl.cpp +++ b/src/libutils/oglapphelpers/glsl.cpp @@ -41,7 +41,7 @@ bool GetGLError(std::string & error) // Unfortunately no gluErrorString equivalent on Mac. error = "OpenGL Error"; #else - error = (const char*)gluErrorString(glErr); + error = "OpenGL Error"; #endif return true; } ================================================ FILE: ports/opencolorio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/OpenColorIO REF "v${VERSION}" SHA512 93d370a96882523defbaeb3c546860bf08cb152e430ff28cf02a976d265f0785d92aed1ab69a44db9ae4fc220ab1adaf0c5c1ecd2426d6b192a48add4c479364 HEAD_REF master PATCHES dependencies.diff glew-no-glu.diff pystring.diff ) file(GLOB modules "${SOURCE_PATH}/share/cmake/modules/Find*.cmake") list(REMOVE_ITEM modules "${SOURCE_PATH}/share/cmake/modules/FindExtPackages.cmake") file(REMOVE_RECURSE "${SOURCE_PATH}/share/cmake/modules/install" ${modules}) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools OCIO_BUILD_APPS tools VCPKG_LOCK_FIND_PACKAGE_OpenGL ) if(NOT VCPKG_TARGET_ARCHITECTURE MATCHES "^arm") list(APPEND FEATURE_OPTIONS -DOCIO_USE_SSE2NEON=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOCIO_BUILD_DOCS:BOOL=OFF -DOCIO_BUILD_GPU_TESTS:BOOL=OFF -DOCIO_BUILD_JAVA:BOOL=OFF -DOCIO_BUILD_NUKE:BOOL=OFF -DOCIO_BUILD_OPENFX:BOOL=OFF -DOCIO_BUILD_PYTHON:BOOL=OFF -DOCIO_BUILD_TESTS:BOOL=OFF -DOCIO_INSTALL_EXT_PACKAGES=NONE -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON -DCMAKE_DISABLE_FIND_PACKAGE_OpenImageIO=ON ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES # only used for OCIO_BUILD_APPS CMAKE_DISABLE_FIND_PACKAGE_GLUT CMAKE_DISABLE_FIND_PACKAGE_OpenImageIO VCPKG_LOCK_FIND_PACKAGE_OpenGL ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/OpenColorIO") vcpkg_fixup_pkgconfig() set(dll_import 0) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(dll_import 1) endif() vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/OpenColorIO/OpenColorABI.h" "ifndef OpenColorIO_SKIP_IMPORTS" "if ${dll_import}" ) if(OCIO_BUILD_APPS) vcpkg_copy_tools( TOOL_NAMES ociomergeconfigs ocioarchive ociobakelut ociocheck ociochecklut ocioconvert ociocpuinfo ociolutimage ociomakeclf ocioperf ociowrite AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/ocio" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/opencolorio/pystring.diff ================================================ diff --git a/src/OpenColorIO/Config.cpp b/src/OpenColorIO/Config.cpp index 7072c50..e2908b6 100644 --- a/src/OpenColorIO/Config.cpp +++ b/src/OpenColorIO/Config.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/ConfigUtils.cpp b/src/OpenColorIO/ConfigUtils.cpp index 9a5ecfc..d07ef7d 100644 --- a/src/OpenColorIO/ConfigUtils.cpp +++ b/src/OpenColorIO/ConfigUtils.cpp @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BSD-3-Clause // Copyright Contributors to the OpenColorIO Project. -#include +#include #include "ConfigUtils.h" #include "MathUtils.h" diff --git a/src/OpenColorIO/Context.cpp b/src/OpenColorIO/Context.cpp index b7e71ae..a5a9627 100644 --- a/src/OpenColorIO/Context.cpp +++ b/src/OpenColorIO/Context.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/OCIOYaml.cpp b/src/OpenColorIO/OCIOYaml.cpp index c936157..21e3e0c 100644 --- a/src/OpenColorIO/OCIOYaml.cpp +++ b/src/OpenColorIO/OCIOYaml.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/OCIOZArchive.cpp b/src/OpenColorIO/OCIOZArchive.cpp index 982fce6..43cb147 100644 --- a/src/OpenColorIO/OCIOZArchive.cpp +++ b/src/OpenColorIO/OCIOZArchive.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/Op.cpp b/src/OpenColorIO/Op.cpp index 7e95bae..c6c1993 100755 --- a/src/OpenColorIO/Op.cpp +++ b/src/OpenColorIO/Op.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/PathUtils.cpp b/src/OpenColorIO/PathUtils.cpp index 3a68d36..ea6c036 100644 --- a/src/OpenColorIO/PathUtils.cpp +++ b/src/OpenColorIO/PathUtils.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/apphelpers/mergeconfigs/MergeConfigsHelpers.cpp b/src/OpenColorIO/apphelpers/mergeconfigs/MergeConfigsHelpers.cpp index ab74ed9..1692451 100644 --- a/src/OpenColorIO/apphelpers/mergeconfigs/MergeConfigsHelpers.cpp +++ b/src/OpenColorIO/apphelpers/mergeconfigs/MergeConfigsHelpers.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/apphelpers/mergeconfigs/OCIOMYaml.cpp b/src/OpenColorIO/apphelpers/mergeconfigs/OCIOMYaml.cpp index 3afddf3..8be58de 100644 --- a/src/OpenColorIO/apphelpers/mergeconfigs/OCIOMYaml.cpp +++ b/src/OpenColorIO/apphelpers/mergeconfigs/OCIOMYaml.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/apphelpers/mergeconfigs/SectionMerger.cpp b/src/OpenColorIO/apphelpers/mergeconfigs/SectionMerger.cpp index 33c41f2..a98c66b 100644 --- a/src/OpenColorIO/apphelpers/mergeconfigs/SectionMerger.cpp +++ b/src/OpenColorIO/apphelpers/mergeconfigs/SectionMerger.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/fileformats/FileFormatCTF.cpp b/src/OpenColorIO/fileformats/FileFormatCTF.cpp index b1f0393..9efb98f 100644 --- a/src/OpenColorIO/fileformats/FileFormatCTF.cpp +++ b/src/OpenColorIO/fileformats/FileFormatCTF.cpp @@ -6,7 +6,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/fileformats/FileFormatDiscreet1DL.cpp b/src/OpenColorIO/fileformats/FileFormatDiscreet1DL.cpp index 6a76d96..63613dc 100755 --- a/src/OpenColorIO/fileformats/FileFormatDiscreet1DL.cpp +++ b/src/OpenColorIO/fileformats/FileFormatDiscreet1DL.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/fileformats/FileFormatICC.cpp b/src/OpenColorIO/fileformats/FileFormatICC.cpp index 4768101..16cc9ec 100755 --- a/src/OpenColorIO/fileformats/FileFormatICC.cpp +++ b/src/OpenColorIO/fileformats/FileFormatICC.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/fileformats/FileFormatIridasLook.cpp b/src/OpenColorIO/fileformats/FileFormatIridasLook.cpp index 0ba209a..c7ec254 100755 --- a/src/OpenColorIO/fileformats/FileFormatIridasLook.cpp +++ b/src/OpenColorIO/fileformats/FileFormatIridasLook.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include diff --git a/src/OpenColorIO/transforms/FileTransform.cpp b/src/OpenColorIO/transforms/FileTransform.cpp index 33da5f3..7609dda 100755 --- a/src/OpenColorIO/transforms/FileTransform.cpp +++ b/src/OpenColorIO/transforms/FileTransform.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include diff --git a/src/apps/ociomergeconfigs/main.cpp b/src/apps/ociomergeconfigs/main.cpp index 7069e15..3e5deb8 100644 --- a/src/apps/ociomergeconfigs/main.cpp +++ b/src/apps/ociomergeconfigs/main.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include #include "utils/StringUtils.h" ================================================ FILE: ports/opencolorio/vcpkg.json ================================================ { "name": "opencolorio", "version-semver": "2.5.1", "description": "OpenColorIO (OCIO) is a complete color management solution geared towards motion picture production with an emphasis on visual effects and computer animation. OCIO provides a straightforward and consistent user experience across all supporting applications while allowing for sophisticated back-end configuration options suitable for high-end production usage. OCIO is compatible with the Academy Color Encoding Specification (ACES) and is LUT-format agnostic, supporting many popular formats.", "homepage": "https://opencolorio.org/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "expat", "imath", { "name": "minizip-ng", "default-features": false, "features": [ "zlib" ] }, "pystring", { "name": "sse2neon", "platform": "arm" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "yaml-cpp" ], "features": { "tools": { "description": "Installs tools", "dependencies": [ { "name": "glew", "platform": "!ios & !osx" }, "lcms", "openexr", "opengl" ] } } } ================================================ FILE: ports/opencsg/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.4) project (opencsg) set(HEADERS include/opencsg.h ) set(SRCS src/area.cpp src/batch.cpp src/context.cpp src/channelManager.cpp src/frameBufferObject.cpp src/frameBufferObjectExt.cpp src/occlusionQuery.cpp src/opencsgRender.cpp src/openglHelper.cpp src/primitive.cpp src/primitiveHelper.cpp src/renderGoldfeather.cpp src/renderSCS.cpp src/scissorMemo.cpp src/settings.cpp ) add_library(opencsg ${SRCS} ${HEADERS}) include_directories(src include RenderTexture ".") find_package(GLEW REQUIRED) include_directories(${GLEW_INCLUDE_DIRS}) target_link_libraries(opencsg PRIVATE GLEW::GLEW) install( TARGETS opencsg RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/opencsg) endif() ================================================ FILE: ports/opencsg/illegal_char.patch ================================================ diff --git a/include/opencsg.h b/include/opencsg.h index d753a0e..b482c40 100644 --- a/include/opencsg.h +++ b/include/opencsg.h @@ -156,7 +156,7 @@ namespace OpenCSG { /// The DepthComplexityAlgorithm specifies the strategy for profiting /// from depth complexity when performing the CSG rendering. /// - NoDepthComplexitySampling: Does not employ the depth complexity. - /// This essentially makes the algorithm O(n), but with + /// This essentially makes the algorithm O(n²), but with /// low constant costs. /// - DepthComplexitySampling: Calculates the depth complexity k using /// the stencil buffer. This makes algorithm O(n*k), but ================================================ FILE: ports/opencsg/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REPLACE "." "-" VERSION_CSG "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO floriankirsch/OpenCSG REF "opencsg-${VERSION_CSG}-release" SHA512 03b33dc1f2b04e94490fdcac2d1dc25ecd8608706f0510dc0c6c3b5e51f031c4f8dae5f29ee72e47c15b67cf13f3f2dd82777686260179b95d83086db44f6aea HEAD_REF master PATCHES illegal_char.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/license/gpl-2.0.txt" "${SOURCE_PATH}/doc/license/gpl-3.0.txt") ================================================ FILE: ports/opencsg/vcpkg.json ================================================ { "name": "opencsg", "version": "1.8.2", "description": "OpenCSG is a library that does image-based CSG rendering using OpenGL. OpenCSG is written in C++ and supports most modern graphics hardware using Microsoft Windows or the Linux operating system.", "homepage": "https://github.com/floriankirsch/OpenCSG", "license": "GPL-2.0-or-later", "dependencies": [ "glew", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/openctm/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19...3.23) project( openctm VERSION 1.0.3 LANGUAGES C) find_package(7zip CONFIG REQUIRED) set(PUBLIC_HEADERS lib/openctm.h lib/openctmpp.h) add_library( openctm lib/compressMG1.c lib/compressMG2.c lib/compressRAW.c lib/openctm.c lib/stream.c) target_include_directories( openctm PUBLIC $ $) target_link_libraries(openctm PRIVATE 7zip::7zip) target_compile_definitions(openctm PRIVATE OPENCTM_BUILD) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(openctm PUBLIC OPENCTM_STATIC) endif() target_compile_features(openctm PRIVATE c_std_99) set_target_properties(openctm PROPERTIES C_VISIBILITY_PRESET hidden PUBLIC_HEADER "${PUBLIC_HEADERS}") include(GNUInstallDirs) install( TARGETS openctm EXPORT unofficial-openctmConfig RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" COMPONENT dev) include(CMakePackageConfigHelpers) set(VERSION_FILE_PATH "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openctmConfigVersion.cmake") write_basic_package_version_file( "${VERSION_FILE_PATH}" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion) install(FILES "${VERSION_FILE_PATH}" DESTINATION share/unofficial-openctm) install(FILES ${PUBLIC_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") install( EXPORT unofficial-openctmConfig FILE unofficial-openctmConfig.cmake NAMESPACE unofficial::openctm:: DESTINATION share/unofficial-openctm) export(PACKAGE openctm) ================================================ FILE: ports/openctm/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO openctm REF OpenCTM-1.0.3 SHA512 fdfa08d19ecbfea99ba01aa2032e941ed6313394a96bd69f8984c2d2d079d836c616471d2bdf6f40175e75659f3ad0ba41502bc3d8224091472f40893ea8746e FILENAME "OpenCTM-1.0.3-src.tar.bz2" PATCHES use-7zip.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/lib/liblzma") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openctm) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/unofficial-openctm/unofficial-openctmConfig.cmake" "# Generated by CMake" [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(7zip CONFIG)]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/openctm/use-7zip.patch ================================================ diff --git a/lib/stream.c b/lib/stream.c index 53b1b72..bb47c3b 100644 --- a/lib/stream.c +++ b/lib/stream.c @@ -310,8 +310,7 @@ int _ctmStreamWritePackedInts(_CTMcontext * self, CTMint * aData, outProps, &outPropsSize, self->mCompressionLevel, // Level (0-9) - 0, -1, -1, -1, -1, -1, // Default values (set by level) - lzmaAlgo // Algorithm (0 = fast, 1 = normal) + 0, -1, -1, -1, -1, -1 // Default values (set by level) ); // Free temporary array @@ -477,8 +476,7 @@ int _ctmStreamWritePackedFloats(_CTMcontext * self, CTMfloat * aData, outProps, &outPropsSize, self->mCompressionLevel, // Level (0-9) - 0, -1, -1, -1, -1, -1, // Default values (set by level) - lzmaAlgo // Algorithm (0 = fast, 1 = normal) + 0, -1, -1, -1, -1, -1 // Default values (set by level) ); // Free temporary array ================================================ FILE: ports/openctm/vcpkg.json ================================================ { "name": "openctm", "version": "1.0.3", "port-version": 3, "description": "OpenCTM — the Open Compressed Triangle Mesh file format — is a file format, a software library and a tool set for compression of 3D triangle meshes.", "homepage": "https://openctm.sourceforge.net/", "license": "Zlib", "dependencies": [ "7zip", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/opencv/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(USE_OPENCV_VERSION "4") configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/opencv/vcpkg-cmake-wrapper.cmake" @ONLY) ================================================ FILE: ports/opencv/vcpkg-cmake-wrapper.cmake.in ================================================ set(OpenCV_DIR "${CMAKE_CURRENT_LIST_DIR}/../opencv@USE_OPENCV_VERSION@/" CACHE PATH "Path to OpenCVConfig.cmake" FORCE) set(OpenCV_ROOT "${CMAKE_CURRENT_LIST_DIR}/../opencv@USE_OPENCV_VERSION@/") _find_package(${ARGS}) ================================================ FILE: ports/opencv/vcpkg.json ================================================ { "name": "opencv", "version": "4.12.0", "description": "Open Source Computer Vision Library", "homepage": "https://opencv.org/", "documentation": "https://docs.opencv.org/4.12.0/", "license": null, "dependencies": [ { "name": "opencv4", "default-features": false } ], "features": { "ade": { "description": "graph api", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "ade" ] } ] }, "aravis": { "description": "aravis", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "aravis" ] } ] }, "calib3d": { "description": "calib3d module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "calib3d" ] } ] }, "contrib": { "description": "opencv_contrib module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "cuda": { "description": "CUDA support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "cuda" ] } ] }, "cudnn": { "description": "cuDNN support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "cudnn" ] } ] }, "dc1394": { "description": "Dc1394 support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dc1394" ] } ] }, "directml": { "description": "Build with DirectML support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "directml" ] } ] }, "dnn": { "description": "Enable dnn module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dnn" ] } ] }, "dnn-cuda": { "description": "Build dnn module with CUDA support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dnn-cuda" ] } ] }, "dshow": { "description": "enable DirectShow", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dshow" ] } ] }, "eigen": { "description": "Eigen support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "eigen" ] } ] }, "ffmpeg": { "description": "ffmpeg support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "ffmpeg" ] } ] }, "freetype": { "description": "Freetype support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "freetype" ] } ] }, "fs": { "description": "Enable filesystem support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "fs" ] } ] }, "gapi": { "description": "Enable gapi module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "gapi" ] } ] }, "gdcm": { "description": "GDCM support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "gdcm" ] } ] }, "gstreamer": { "description": "gstreamer support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "gstreamer" ] } ] }, "gtk": { "description": "GTK support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "gtk" ] } ] }, "halide": { "description": "Halide support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "halide" ] } ] }, "hdf": { "description": "Enable Hierarchical Data Format (hdf) I/O", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "hdf" ] } ] }, "highgui": { "description": "highgui module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "highgui" ] } ] }, "intrinsics": { "description": "enable intrinsics", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "intrinsics" ] } ] }, "ipp": { "description": "Enable Intel Integrated Performance Primitives", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "ipp" ] } ] }, "jpeg": { "description": "JPEG support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "jpeg" ] } ] }, "jpegxl": { "description": "JPEGXL support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "jpegxl" ] } ] }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "msmf" ] } ] }, "nonfree": { "description": "Allow nonfree and unredistributable libraries", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "nonfree" ] } ] }, "opencl": { "description": "Enable OpenCL support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "opencl" ] } ] }, "openexr": { "description": "OpenEXR support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "openexr" ] } ] }, "opengl": { "description": "opengl support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "opengl" ] } ] }, "openjpeg": { "description": "JPEG 2000 support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "openjpeg" ] } ] }, "openmp": { "description": "Enable openmp support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "openmp" ] } ] }, "openvino": { "description": "OpenVINO support for OpenCV DNN", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "openvino" ] } ] }, "ovis": { "description": "opencv_ovis module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "ovis" ] } ] }, "png": { "description": "PNG support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "png" ] } ] }, "python": { "description": "Python wrapper support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "python" ] } ] }, "qt": { "description": "Qt GUI support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "qt" ] } ] }, "quality": { "description": "Build opencv_quality module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "quality" ] } ] }, "quirc": { "description": "Enable QR code module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "quirc" ] } ] }, "rgbd": { "description": "Build opencv_rgbd module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "rgbd" ] } ] }, "sfm": { "description": "opencv_sfm module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "sfm" ] } ] }, "tbb": { "description": "Enable Intel Threading Building Blocks", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "tbb" ] } ] }, "text": { "description": "Enable Scene Text Detection and Recognition", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "text" ] } ] }, "thread": { "description": "Enable thread support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "thread" ] } ] }, "tiff": { "description": "TIFF support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "tiff" ] } ] }, "vtk": { "description": "vtk support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "vtk" ] } ] }, "vulkan": { "description": "Vulkan support for opencv dnn", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "vulkan" ] } ] }, "webp": { "description": "WebP support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "webp" ] } ] }, "win32ui": { "description": "Enable win32ui", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "win32ui" ] } ] }, "world": { "description": "Compile to a single package support for opencv", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "world" ] } ] } } } ================================================ FILE: ports/opencv2/0001-install-options.patch ================================================ --- a/3rdparty/libtiff/CMakeLists.txt +++ b/3rdparty/libtiff/CMakeLists.txt @@ -102,7 +102,7 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)) endif() add_library(${TIFF_LIBRARY} STATIC ${lib_srcs}) -target_link_libraries(${TIFF_LIBRARY} ${ZLIB_LIBRARIES}) +target_link_libraries(${TIFF_LIBRARY} ZLIB::ZLIB) set_target_properties(${TIFF_LIBRARY} PROPERTIES --- a/3rdparty/openexr/CMakeLists.txt +++ b/3rdparty/openexr/CMakeLists.txt @@ -55,7 +55,7 @@ if(MSVC AND CV_ICC) endif() add_library(IlmImf STATIC ${lib_hdrs} ${lib_srcs}) -target_link_libraries(IlmImf ${ZLIB_LIBRARIES}) +target_link_libraries(IlmImf ZLIB::ZLIB) set_target_properties(IlmImf PROPERTIES --- a/3rdparty/tbb/CMakeLists.txt +++ b/3rdparty/tbb/CMakeLists.txt @@ -116,7 +116,7 @@ endif() if(NOT EXISTS "${tbb_tarball}") message(STATUS "Downloading ${tbb_ver}_src.tgz") - file(DOWNLOAD "${tbb_url}" "${tbb_tarball}" TIMEOUT 600 STATUS __statvar) + message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${tbb_url}\"\n FILENAME \"${tbb_tarball}\"\n SHA512 0\n )") if(NOT __statvar EQUAL 0) message(FATAL_ERROR "Failed to download TBB sources (${__statvar}): ${tbb_url}") endif() --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,23 +275,10 @@ if (ANDROID) endif() if(NOT DEFINED OPENCV_DOC_INSTALL_PATH) - if(ANDROID OR WIN32) - set(OPENCV_DOC_INSTALL_PATH doc) - elseif(INSTALL_TO_MANGLED_PATHS) - set(OPENCV_DOC_INSTALL_PATH share/OpenCV-${OPENCV_VERSION}/doc) - else() - set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc) - endif() + set(OPENCV_DOC_INSTALL_PATH share/opencv/doc) endif() -if(WIN32) - if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH) - set(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/") - else() - message(STATUS "Can't detect runtime and/or arch") - set(OpenCV_INSTALL_BINARIES_PREFIX "") - endif() -elseif(ANDROID) +if(ANDROID) set(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/") else() set(OpenCV_INSTALL_BINARIES_PREFIX "") @@ -322,29 +309,13 @@ if(ANDROID) set(OPENCV_INCLUDE_INSTALL_PATH sdk/native/jni/include) set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native) else() - set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") - set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}") - if(WIN32) - if(OpenCV_STATIC) - set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") - else() - set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}") - endif() - set(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}") - set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native) - else() - set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX}) - set(OPENCV_3P_LIB_INSTALL_PATH share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}) - set(OPENCV_SAMPLES_SRC_INSTALL_PATH share/OpenCV/samples) - endif() - set(OPENCV_INCLUDE_INSTALL_PATH "include") - - math(EXPR SIZEOF_VOID_P_BITS "8 * ${CMAKE_SIZEOF_VOID_P}") - if(LIB_SUFFIX AND NOT SIZEOF_VOID_P_BITS EQUAL LIB_SUFFIX) - set(OPENCV_CONFIG_INSTALL_PATH lib${LIB_SUFFIX}/cmake/opencv) - else() - set(OPENCV_CONFIG_INSTALL_PATH share/OpenCV) - endif() + set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib") + set(3P_LIBRARY_OUTPUT_PATH "${LIBRARY_OUTPUT_PATH}") + set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib") + set(OPENCV_3P_LIB_INSTALL_PATH "${OPENCV_LIB_INSTALL_PATH}") + set(OPENCV_SAMPLES_SRC_INSTALL_PATH "share/opencv2/samples") + set(OPENCV_INCLUDE_INSTALL_PATH "include/opencv2.4") + set(OPENCV_CONFIG_INSTALL_PATH "share/opencv2") endif() set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}") @@ -354,15 +325,8 @@ if(INSTALL_TO_MANGLED_PATHS) set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION}) endif() -if(WIN32) - # Postfix of DLLs: - set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}") + set(OPENCV_DLLVERSION 2) set(OPENCV_DEBUG_POSTFIX d) -else() - # Postfix of so's: - set(OPENCV_DLLVERSION "") - set(OPENCV_DEBUG_POSTFIX "") -endif() if(DEFINED CMAKE_DEBUG_POSTFIX) set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") @@ -397,8 +361,6 @@ if(CMAKE_HOST_WIN32) endif() endif() -find_host_program(GIT_EXECUTABLE NAMES ${git_names} PATH_SUFFIXES Git/cmd Git/bin DOC "git command line client") -mark_as_advanced(GIT_EXECUTABLE) if(GIT_EXECUTABLE) execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --always --dirty --match "2.[0-9].[0-9]*" @@ -501,7 +463,9 @@ if(BUILD_DOCS) endif(BUILD_DOCS) # --- Python Support --- -include(cmake/OpenCVDetectPython.cmake) +if(WITH_PYTHON) + include(cmake/OpenCVDetectPython.cmake) +endif() # --- Java Support --- include(cmake/OpenCVDetectApacheAnt.cmake) @@ -885,11 +849,7 @@ if(ANDROID) endif() if(DEFINED WITH_FFMPEG OR HAVE_FFMPEG) - if(WIN32) - status(" FFMPEG:" WITH_FFMPEG THEN "YES (prebuilt binaries)" ELSE NO) - else() status(" FFMPEG:" HAVE_FFMPEG THEN YES ELSE NO) - endif() status(" avcodec:" FFMPEG_libavcodec_FOUND THEN "YES (ver ${FFMPEG_libavcodec_VERSION})" ELSE NO) status(" avformat:" FFMPEG_libavformat_FOUND THEN "YES (ver ${FFMPEG_libavformat_VERSION})" ELSE NO) status(" avutil:" FFMPEG_libavutil_FOUND THEN "YES (ver ${FFMPEG_libavutil_VERSION})" ELSE NO) --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -269,7 +269,6 @@ if(MSVC) set(OPENCV_EXTRA_FLAGS "${OPENCV_EXTRA_FLAGS} /bigobj") endif() if(BUILD_WITH_DEBUG_INFO) - set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") endif() if(ENABLE_SSE4_1 AND CV_ICC AND NOT OPENCV_EXTRA_FLAGS MATCHES "/arch:") --- a/cmake/OpenCVFindLibsVideo.cmake +++ b/cmake/OpenCVFindLibsVideo.cmake @@ -185,12 +185,8 @@ endif(WITH_XIMEA) # --- FFMPEG --- ocv_clear_vars(HAVE_FFMPEG) if(WITH_FFMPEG) - if(WIN32 AND NOT ARM) - include("${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/ffmpeg_version.cmake") + find_package(FFMPEG REQUIRED) set(HAVE_FFMPEG TRUE) - elseif(PKG_CONFIG_FOUND) - ocv_check_modules(FFMPEG libavcodec libavformat libavutil libswscale) - ocv_check_modules(FFMPEG_libavresample libavresample) if(FFMPEG_libavresample_FOUND) ocv_append_build_options(FFMPEG FFMPEG_libavresample) endif() @@ -211,9 +207,6 @@ if(WITH_FFMPEG) ocv_append_build_options(HIGHGUI FFMPEG) endif() endif() - else() - message(STATUS "Can't find ffmpeg - 'pkg-config' utility is missing") - endif() endif(WITH_FFMPEG) # --- VideoInput/DirectShow --- --- a/cmake/OpenCVGenConfig.cmake +++ b/cmake/OpenCVGenConfig.cmake @@ -101,7 +101,7 @@ endif() configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig.cmake" @ONLY) configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/unix-install/OpenCVConfig-version.cmake" @ONLY) -if(UNIX) # ANDROID configuration is created here also +if(1) # ANDROID configuration is created here also #http://www.vtk.org/Wiki/CMake/Tutorials/Packaging reference # For a command "find_package( [major[.minor]] [EXACT] [REQUIRED|QUIET])" # cmake will look in the following dir on unix: @@ -126,7 +126,7 @@ endif() # -------------------------------------------------------------------------------------------- # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages # -------------------------------------------------------------------------------------------- -if(WIN32) +if(0) set(OpenCV_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/include\" \"\${OpenCV_CONFIG_PATH}/include/opencv\"") set(OpenCV2_INCLUDE_DIRS_CONFIGCMAKE "\"\"") --- a/cmake/OpenCVGenPkgconfig.cmake +++ b/cmake/OpenCVGenPkgconfig.cmake @@ -95,7 +95,7 @@ set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}") if(INSTALL_TO_MANGLED_PATHS) set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc") else() - set(OPENCV_PC_FILE_NAME opencv.pc) + set(OPENCV_PC_FILE_NAME opencv2.pc) endif() configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/opencv-XXX.pc.in" "${CMAKE_BINARY_DIR}/unix-install/${OPENCV_PC_FILE_NAME}" --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -86,10 +86,10 @@ macro(ocv_add_dependencies full_modname) endforeach() unset(__depsvar) - ocv_list_unique(OPENCV_MODULE_${full_modname}_REQ_DEPS) - ocv_list_unique(OPENCV_MODULE_${full_modname}_OPT_DEPS) - ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS) - ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS) + #ocv_list_unique(OPENCV_MODULE_${full_modname}_REQ_DEPS) + #ocv_list_unique(OPENCV_MODULE_${full_modname}_OPT_DEPS) + #ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_REQ_DEPS) + #ocv_list_unique(OPENCV_MODULE_${full_modname}_PRIVATE_OPT_DEPS) set(OPENCV_MODULE_${full_modname}_REQ_DEPS ${OPENCV_MODULE_${full_modname}_REQ_DEPS} CACHE INTERNAL "Required dependencies of ${full_modname} module") @@ -277,7 +277,7 @@ endfunction() # sort modules by dependencies function(__ocv_sort_modules_by_deps __lst) - ocv_list_sort(${__lst}) + #ocv_list_sort(${__lst}) set(${__lst}_ORDERED ${${__lst}} CACHE INTERNAL "") set(__result "") foreach (m ${${__lst}}) @@ -382,7 +382,7 @@ function(__ocv_resolve_dependencies) endforeach() endforeach() - ocv_list_sort(OPENCV_MODULES_BUILD) + #ocv_list_sort(OPENCV_MODULES_BUILD) foreach(m ${OPENCV_MODULES_BUILD}) # message(STATUS "FULL deps of ${m}: ${deps_${m}}") @@ -397,7 +397,7 @@ function(__ocv_resolve_dependencies) # reorder dependencies foreach(m ${OPENCV_MODULES_BUILD}) __ocv_sort_modules_by_deps(OPENCV_MODULE_${m}_DEPS) - ocv_list_sort(OPENCV_MODULE_${m}_DEPS_EXT) + #ocv_list_sort(OPENCV_MODULE_${m}_DEPS_EXT) set(OPENCV_MODULE_${m}_DEPS ${OPENCV_MODULE_${m}_DEPS} CACHE INTERNAL "Flattened dependencies of ${m} module") set(OPENCV_MODULE_${m}_DEPS_EXT ${OPENCV_MODULE_${m}_DEPS_EXT} CACHE INTERNAL "Extra dependencies of ${m} module") @@ -581,8 +581,6 @@ macro(ocv_create_module) target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) target_link_libraries(${the_module} LINK_PUBLIC ${OPENCV_MODULE_${the_module}_DEPS}) set(extra_deps ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN}) - ocv_extract_simple_libs(extra_deps _simple_deps _other_deps) - target_link_libraries(${the_module} LINK_PRIVATE ${_simple_deps}) # this list goes to "export" target_link_libraries(${the_module} LINK_PRIVATE ${extra_deps}) endif() --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -5,8 +5,6 @@ if(ANDROID) install(FILES ${HAAR_CASCADES} DESTINATION sdk/etc/haarcascades COMPONENT libs) install(FILES ${LBP_CASCADES} DESTINATION sdk/etc/lbpcascades COMPONENT libs) else() - install(FILES ${HAAR_CASCADES} DESTINATION share/OpenCV/haarcascades COMPONENT libs) - install(FILES ${LBP_CASCADES} DESTINATION share/OpenCV/lbpcascades COMPONENT libs) endif() if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) @@ -51,4 +49,4 @@ if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) install(FILES ${DATAFILES_CASCADES} DESTINATION share/OpenCV/testdata/data/haarcascades COMPONENT tests) endif() endif() -endif() \ No newline at end of file +endif() --- a/modules/core/CMakeLists.txt +++ b/modules/core/CMakeLists.txt @@ -1,9 +1,9 @@ set(the_description "The Core Functionality") if (NOT HAVE_CUDA OR ENABLE_DYNAMIC_CUDA) - ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES}) + ocv_add_module(core PRIVATE_REQUIRED ZLIB::ZLIB) else() - ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) + ocv_add_module(core PRIVATE_REQUIRED ZLIB::ZLIB ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) endif() ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR}) --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -15,23 +15,23 @@ endif() if(HAVE_PNG OR HAVE_TIFF OR HAVE_OPENEXR) ocv_include_directories(${ZLIB_INCLUDE_DIR}) - list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES}) + list(APPEND GRFMT_LIBS ZLIB::ZLIB) endif() if(HAVE_JPEG) ocv_include_directories(${JPEG_INCLUDE_DIR}) - list(APPEND GRFMT_LIBS ${JPEG_LIBRARIES}) + list(APPEND GRFMT_LIBS JPEG::JPEG) endif() if(HAVE_PNG) add_definitions(${PNG_DEFINITIONS}) ocv_include_directories(${PNG_INCLUDE_DIR}) - list(APPEND GRFMT_LIBS ${PNG_LIBRARIES}) + list(APPEND GRFMT_LIBS PNG::PNG) endif() if(HAVE_TIFF) ocv_include_directories(${TIFF_INCLUDE_DIR}) - list(APPEND GRFMT_LIBS ${TIFF_LIBRARIES}) + list(APPEND GRFMT_LIBS TIFF::TIFF) endif() if(HAVE_JASPER) @@ -296,38 +296,5 @@ endif() ocv_add_precompiled_headers(${the_module}) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations -Wno-clobbered) -if(WIN32 AND WITH_FFMPEG) - #copy ffmpeg dll to the output folder - if(MSVC64 OR MINGW64) - set(FFMPEG_SUFFIX _64) - endif() - - set(ffmpeg_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll") - set(ffmpeg_bare_name_ver "opencv_ffmpeg${OPENCV_DLLVERSION}${FFMPEG_SUFFIX}.dll") - set(ffmpeg_path "${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/${ffmpeg_bare_name}") - - #if(MSVC AND CMAKE_VERSION VERSION_GREATER "2.8.2") - # add_custom_command(TARGET ${the_module} POST_BUILD - # COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/$/${ffmpeg_bare_name_ver}" - # COMMENT "Copying ${ffmpeg_path} to the output directory") - #else - if(MSVC_IDE) - add_custom_command(TARGET ${the_module} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name_ver}" - COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name_ver}" - COMMENT "Copying ${ffmpeg_path} to the output directory") - elseif(MSVC AND (CMAKE_GENERATOR MATCHES "Visual")) - add_custom_command(TARGET ${the_module} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name_ver}" - COMMENT "Copying ${ffmpeg_path} to the output directory") - else() - add_custom_command(TARGET ${the_module} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name_ver}" - COMMENT "Copying ${ffmpeg_path} to the output directory") - endif() - - install(FILES "${ffmpeg_path}" DESTINATION ${OPENCV_BIN_INSTALL_PATH} COMPONENT libs RENAME "${ffmpeg_bare_name_ver}") -endif() - ocv_add_accuracy_tests() ocv_add_perf_tests() ================================================ FILE: ports/opencv2/0002-fix-paths-containing-symbols.patch ================================================ --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -82,12 +82,42 @@ macro(ocv_check_environment_variables) endforeach() endmacro() +# check if "sub" (file or dir) is below "dir" +function(is_subdir res dir sub ) + get_filename_component(dir "${dir}" ABSOLUTE) + get_filename_component(sub "${sub}" ABSOLUTE) + file(TO_CMAKE_PATH "${dir}" dir) + file(TO_CMAKE_PATH "${sub}" sub) + set(dir "${dir}/") + string(LENGTH "${dir}" len) + string(LENGTH "${sub}" len_sub) + if(NOT len GREATER len_sub) + string(SUBSTRING "${sub}" 0 ${len} prefix) + endif() + if(prefix AND prefix STREQUAL dir) + set(${res} TRUE PARENT_SCOPE) + else() + set(${res} FALSE PARENT_SCOPE) + endif() +endfunction() + +function(ocv_is_opencv_directory result_var dir) + set(result FALSE) + foreach(parent ${OpenCV_SOURCE_DIR} ${OpenCV_BINARY_DIR} ${OPENCV_EXTRA_MODULES_PATH}) + is_subdir(result "${parent}" "${dir}") + if(result) + break() + endif() + endforeach() + set(${result_var} ${result} PARENT_SCOPE) +endfunction() + # adds include directories in such a way that directories from the OpenCV source tree go first function(ocv_include_directories) set(__add_before "") foreach(dir ${ARGN}) - get_filename_component(__abs_dir "${dir}" ABSOLUTE) - if("${__abs_dir}" MATCHES "^${OpenCV_SOURCE_DIR}" OR "${__abs_dir}" MATCHES "^${OpenCV_BINARY_DIR}") + ocv_is_opencv_directory(__is_opencv_dir "${dir}") + if(__is_opencv_dir) list(APPEND __add_before "${dir}") elseif(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0" AND dir MATCHES "/usr/include$") ================================================ FILE: ports/opencv2/0003-force-package-requirements.patch ================================================ --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -6,7 +6,7 @@ if(BUILD_ZLIB) ocv_clear_vars(ZLIB_FOUND) else() - include(FindZLIB) + find_package(ZLIB REQUIRED) if(ZLIB_FOUND AND ANDROID) if(ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib/libz.so" OR ZLIB_LIBRARIES STREQUAL "${ANDROID_SYSROOT}/usr/lib64/libz.so") @@ -32,7 +32,7 @@ if(WITH_TIFF) if(BUILD_TIFF) ocv_clear_vars(TIFF_FOUND) else() - include(FindTIFF) + find_package(TIFF REQUIRED) if(TIFF_FOUND) ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) endif() @@ -74,7 +74,7 @@ if(WITH_JPEG) if(BUILD_JPEG) ocv_clear_vars(JPEG_FOUND) else() - include(FindJPEG) + find_package(JPEG REQUIRED) endif() if(NOT JPEG_FOUND) @@ -95,7 +95,7 @@ if(WITH_JASPER) if(BUILD_JASPER) ocv_clear_vars(JASPER_FOUND) else() - include(FindJasper) + find_package(Jasper REQUIRED) endif() if(NOT JASPER_FOUND) @@ -119,7 +119,7 @@ if(WITH_PNG) if(BUILD_PNG) ocv_clear_vars(PNG_FOUND) else() - include(FindPNG) + find_package(PNG REQUIRED) if(PNG_FOUND) include(CheckIncludeFile) check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) ================================================ FILE: ports/opencv2/0004-enable-pkgconf.patch ================================================ --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -1,9 +1,7 @@ include(CheckFunctionExists) include(CheckIncludeFile) -if(UNIX) - find_package(PkgConfig) + find_package(PkgConfig REQUIRED) -endif() # Search packages for the host system instead of packages for target system # in case of cross compilation these macros should be defined by the toolchain file ================================================ FILE: ports/opencv2/0005-fix-config.patch ================================================ --- a/cmake/templates/OpenCVConfig.cmake.in +++ b/cmake/templates/OpenCVConfig.cmake.in @@ -97,7 +97,6 @@ set(OpenCV_USE_MANGLED_PATHS @OpenCV_USE_MANGLED_PATHS_CONFIGCMAKE@) # Extract the directory where *this* file has been installed (determined at cmake run-time) get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH CACHE) -if(NOT WIN32 OR ANDROID) if(ANDROID) set(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../../..") else() @@ -109,7 +108,6 @@ if(NOT WIN32 OR ANDROID) else() get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_INSTALL_PATH}" REALPATH) endif() -endif() # Presence of Android native camera wrappers set(OpenCV_HAVE_ANDROID_CAMERA @HAVE_opencv_androidcamera@) ================================================ FILE: ports/opencv2/0006-fix-jasper.patch ================================================ --- a/modules/highgui/src/grfmt_jpeg2000.cpp +++ b/modules/highgui/src/grfmt_jpeg2000.cpp @@ -377,7 +377,7 @@ bool Jpeg2KDecoder::readComponent8u( uchar *data, void *_buffer, for( y = 0; y < yend - ystart; ) { - jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 ); + jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 ); uchar* dst = data + (y - yoffset) * step - xoffset; if( xstep == 1 ) @@ -443,7 +443,7 @@ bool Jpeg2KDecoder::readComponent16u( unsigned short *data, void *_buffer, for( y = 0; y < yend - ystart; ) { - jas_seqent_t* pix_row = &jas_matrix_get( buffer, y / ystep, 0 ); + jas_seqent_t* pix_row = jas_matrix_getref( buffer, y / ystep, 0 ); ushort* dst = data + (y - yoffset) * step - xoffset; if( xstep == 1 ) ================================================ FILE: ports/opencv2/0007-fix-openexr.patch ================================================ --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -151,7 +151,12 @@ if(WITH_OPENEXR) if(BUILD_OPENEXR) ocv_clear_vars(OPENEXR_FOUND) else() - include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") + find_package(Imath CONFIG REQUIRED) + find_package(OpenEXR CONFIG REQUIRED) + set(OPENEXR_LIBRARIES Imath::Imath OpenEXR::OpenEXR) + set(OPENEXR_INCLUDE_PATHS "") + set(OPENEXR_VERSION "${OpenEXR_VERSION}") + set(OPENEXR_FOUND 1) endif() if(NOT OPENEXR_FOUND) --- a/modules/highgui/src/grfmt_exr.cpp +++ b/modules/highgui/src/grfmt_exr.cpp @@ -57,6 +57,7 @@ #include #include #include +#include #include #include "grfmt_exr.hpp" ================================================ FILE: ports/opencv2/0008-missing-include.patch ================================================ --- a/modules/ts/src/gpu_test.cpp +++ b/modules/ts/src/gpu_test.cpp @@ -42,6 +42,7 @@ #include "opencv2/ts/gpu_test.hpp" #include +#include using namespace cv; using namespace cv::gpu; ================================================ FILE: ports/opencv2/0009-pkgconfig-suffix.patch ================================================ --- a/cmake/OpenCVGenPkgconfig.cmake +++ b/cmake/OpenCVGenPkgconfig.cmake @@ -54,6 +54,12 @@ foreach(CVLib ${OpenCV_LIB_COMPONENTS}) set(libname "${CVLib}") endif() + string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type) + get_target_property(libsuffix ${CVLib} ${build_type}_POSTFIX) + if(libsuffix) + string(APPEND libname "${libsuffix}") + endif() + set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}") list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}") list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}") ================================================ FILE: ports/opencv2/0010-fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 940a018373..0e84287be9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,11 +48,6 @@ if(POLICY CMP0026) cmake_policy(SET CMP0026 NEW) endif() -if (POLICY CMP0042) - # silence cmake 3.0+ warnings about MACOSX_RPATH - cmake_policy(SET CMP0042 OLD) -endif() - # must go before the project command set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE) if(DEFINED CMAKE_BUILD_TYPE AND CMAKE_VERSION VERSION_GREATER "2.8") diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake index 23d493dd13..090ad4e362 100644 --- a/cmake/OpenCVDetectCXXCompiler.cmake +++ b/cmake/OpenCVDetectCXXCompiler.cmake @@ -5,11 +5,11 @@ if(CMAKE_CL_64) set(MSVC64 1) endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC) set(CMAKE_COMPILER_IS_GNUCXX 1) set(CMAKE_COMPILER_IS_CLANGCXX 1) endif() -if(CMAKE_C_COMPILER_ID STREQUAL "Clang") +if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT MSVC) set(CMAKE_COMPILER_IS_GNUCC 1) set(CMAKE_COMPILER_IS_CLANGCC 1) endif() ================================================ FILE: ports/opencv2/0011-msvc-compile-fix.patch ================================================ diff --git a/modules/highgui/src/cap_msmf.hpp b/modules/highgui/src/cap_msmf.hpp index 9ce2a9c..b72c7f4 100644 --- a/modules/highgui/src/cap_msmf.hpp +++ b/modules/highgui/src/cap_msmf.hpp @@ -2312,6 +2312,7 @@ public: } protected: + using Node = typename List::Node; HRESULT InsertAfter(Ptr item, Node *pBefore) { // Do not allow nullptr item pointers unless NULLABLE is true. ================================================ FILE: ports/opencv2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/opencv REF "${VERSION}" SHA512 de7d24ac7ed78ac14673011cbecc477cae688b74222a972e553c95a557b5cb8e5913f97db525421d6a72af30998ca300112fa0b285daed65f65832eb2cf7241a HEAD_REF master PATCHES 0001-install-options.patch 0002-fix-paths-containing-symbols.patch 0003-force-package-requirements.patch 0004-enable-pkgconf.patch 0005-fix-config.patch 0006-fix-jasper.patch 0007-fix-openexr.patch 0008-missing-include.patch 0009-pkgconfig-suffix.patch 0010-fix-cmake4.patch 0011-msvc-compile-fix.patch ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") # Disallow accidental build of vendored copies file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") file(REMOVE "${SOURCE_PATH}/cmake/FindCUDA.cmake") file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/FindCUDA") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "eigen" WITH_EIGEN "jasper" WITH_JASPER "jpeg" WITH_JPEG "msmf" WITH_MSMF "openexr" WITH_OPENEXR "opengl" WITH_OPENGL "png" WITH_PNG "qt" WITH_QT "tiff" WITH_TIFF "world" BUILD_opencv_world "dc1394" WITH_1394 ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT_LNK) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ###### ocv_options -DCMAKE_DEBUG_POSTFIX=d -DBUILD_WITH_STATIC_CRT=${STATIC_CRT_LNK} -DINSTALL_TO_MANGLED_PATHS=OFF # Do not build docs/examples -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF ###### Disable build 3rd party libs -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_PNG=OFF -DBUILD_TIFF=OFF -DBUILD_TBB=OFF -DBUILD_ZLIB=OFF ###### OpenCV Build components -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_WITH_DEBUG_INFO=ON # CMAKE -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON ###### customized properties ## Options from vcpkg_check_features() ${FEATURE_OPTIONS} -DWITH_1394=OFF -DWITH_IPP=OFF -DWITH_LAPACK=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENMP=OFF -DWITH_PYTHON=OFF -DWITH_FFMPEG=OFF -DWITH_ZLIB=ON -DWITH_CUBLAS=OFF -DWITH_CUDA=OFF -DWITH_GTK=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(READ "${CURRENT_PACKAGES_DIR}/share/opencv2/OpenCVModules.cmake" OPENCV_MODULES) set(DEPS_STRING "include(CMakeFindDependencyMacro) find_dependency(Threads)") if("tiff" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(TIFF)") endif() if("openexr" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Imath CONFIG)\nfind_dependency(OpenEXR CONFIG)") endif() if("png" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(PNG)") endif() if("qt" IN_LIST FEATURES) string(APPEND DEPS_STRING " set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_dependency(Qt5 COMPONENTS Core Gui Widgets Test Concurrent)") if("opengl" IN_LIST FEATURES) string(APPEND DEPS_STRING " find_dependency(Qt5 COMPONENTS OpenGL)") endif() endif() string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" "set(CMAKE_IMPORT_FILE_VERSION 1)\n${DEPS_STRING}" OPENCV_MODULES "${OPENCV_MODULES}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/opencv2/OpenCVModules.cmake" "${OPENCV_MODULES}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") vcpkg_fixup_pkgconfig() configure_file("${CURRENT_PORT_DIR}/usage.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) file(GLOB extra_license_files "${CURRENT_PACKAGES_DIR}/share/licenses/opencv2/*") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${extra_license_files}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") ================================================ FILE: ports/opencv2/usage.in ================================================ @PORT@ is compatible with built-in CMake variables. In case of multiple OpenCV version installed, set OpenCV_ROOT *before* the find_package call: set(OpenCV_ROOT "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/share/@PORT@") find_package(OpenCV REQUIRED) ================================================ FILE: ports/opencv2/vcpkg.json ================================================ { "name": "opencv2", "version": "2.4.13.7", "port-version": 25, "description": "Open Source Computer Vision Library", "homepage": "https://github.com/opencv/opencv", "license": "BSD-3-Clause", "supports": "!uwp & !(arm & windows) & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "eigen", "jpeg", { "name": "msmf", "platform": "windows & !mingw" }, "png", "tiff" ], "features": { "dc1394": { "description": "Dc1394 support for opencv", "dependencies": [ "libdc1394" ] }, "eigen": { "description": "Eigen support for opencv", "dependencies": [ "eigen3" ] }, "jasper": { "description": "JPEG 2000 support for opencv", "dependencies": [ "jasper" ] }, "jpeg": { "description": "JPEG support for opencv", "dependencies": [ "libjpeg-turbo" ] }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "supports": "windows & !mingw" }, "openexr": { "description": "OpenEXR support for opencv", "dependencies": [ "imath", "openexr" ] }, "opengl": { "description": "opengl support for opencv", "dependencies": [ "opengl" ] }, "png": { "description": "PNG support for opencv", "dependencies": [ "libpng" ] }, "qt": { "description": "Qt GUI support for opencv", "dependencies": [ { "name": "qt5-base", "default-features": false } ] }, "tiff": { "description": "TIFF support for opencv", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "world": { "description": "Compile to a single package support for opencv" } } } ================================================ FILE: ports/opencv3/0001-disable-downloading.patch ================================================ --- a/cmake/OpenCVDownload.cmake +++ b/cmake/OpenCVDownload.cmake @@ -157,6 +157,9 @@ function(ocv_download) # Download if(NOT EXISTS "${CACHE_CANDIDATE}") ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") + string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}") + message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )") + foreach(try ${OPENCV_DOWNLOAD_TRIES_LIST}) ocv_download_log("#try ${try}") file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" ================================================ FILE: ports/opencv3/0002-install-options.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -607,7 +607,7 @@ endif() ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS) # --- Python Support --- -if(NOT IOS) +if(WITH_PYTHON) include(cmake/OpenCVDetectPython.cmake) endif() --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -284,7 +284,6 @@ if(MSVC) #endif() if(BUILD_WITH_DEBUG_INFO) - set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug") set(OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE} /debug") set(OPENCV_EXTRA_MODULE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_MODULE_LINKER_FLAGS_RELEASE} /debug") --- a/cmake/OpenCVGenConfig.cmake +++ b/cmake/OpenCVGenConfig.cmake @@ -109,11 +109,11 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) endif() endfunction() -if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) +if(TRUE) ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") endif() -if(ANDROID) +if(FALSE) ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in") install(FILES "${OpenCV_SOURCE_DIR}/platforms/android/android.toolchain.cmake" DESTINATION "${OPENCV_CONFIG_INSTALL_PATH}" COMPONENT dev) endif() @@ -121,7 +121,7 @@ endif() # -------------------------------------------------------------------------------------------- # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages # -------------------------------------------------------------------------------------------- -if(WIN32) +if(FALSE) if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows AND NOT OPENCV_SKIP_CMAKE_ROOT_CONFIG) ocv_gen_config("${CMAKE_BINARY_DIR}/win-install" "${OPENCV_INSTALL_BINARIES_PREFIX}${OPENCV_INSTALL_BINARIES_SUFFIX}" diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 1f0d720..0bb1ff7 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,8 +1,6 @@ file(GLOB HAAR_CASCADES haarcascades/*.xml) file(GLOB LBP_CASCADES lbpcascades/*.xml) -install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) -install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") ================================================ FILE: ports/opencv3/0003-force-package-requirements.patch ================================================ --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -11,7 +11,7 @@ else() set(_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES .so) endif() - find_package(ZLIB "${MIN_VER_ZLIB}") + find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) if(ANDROID) set(CMAKE_FIND_LIBRARY_SUFFIXES ${_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) unset(_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES) @@ -41,7 +41,7 @@ if(WITH_JPEG) ocv_clear_vars(JPEG_FOUND) else() ocv_clear_internal_cache_vars(JPEG_LIBRARY JPEG_INCLUDE_DIR) - include(FindJPEG) + find_package(JPEG REQUIRED) endif() if(NOT JPEG_FOUND) @@ -87,7 +87,7 @@ if(WITH_TIFF) ocv_clear_vars(TIFF_FOUND) else() ocv_clear_internal_cache_vars(TIFF_LIBRARY TIFF_INCLUDE_DIR) - include(FindTIFF) + find_package(TIFF REQUIRED) if(TIFF_FOUND) ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) endif() @@ -131,7 +131,7 @@ if(WITH_WEBP) ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR) else() ocv_clear_internal_cache_vars(WEBP_LIBRARY WEBP_INCLUDE_DIR) - include(cmake/OpenCVFindWebP.cmake) + find_package(WEBP NAMES WebP REQUIRED) if(WEBP_FOUND) set(HAVE_WEBP 1) endif() @@ -172,7 +172,7 @@ if(WITH_JASPER) if(BUILD_JASPER) ocv_clear_vars(JASPER_FOUND) else() - include(FindJasper) + find_package(Jasper REQUIRED) endif() if(NOT JASPER_FOUND) @@ -197,7 +197,7 @@ if(WITH_PNG) ocv_clear_vars(PNG_FOUND) else() ocv_clear_internal_cache_vars(PNG_LIBRARY PNG_INCLUDE_DIR) - include(FindPNG) + find_package(PNG REQUIRED) if(PNG_FOUND) include(CheckIncludeFile) check_include_file("${PNG_PNG_INCLUDE_DIR}/libpng/png.h" HAVE_LIBPNG_PNG_H) @@ -249,7 +249,7 @@ endif() # --- GDAL (optional) --- if(WITH_GDAL) - find_package(GDAL QUIET) + find_package(GDAL REQUIRED) if(NOT GDAL_FOUND) set(HAVE_GDAL NO) @@ -261,7 +261,7 @@ if(WITH_GDAL) endif() if(WITH_GDCM) - find_package(GDCM QUIET) + find_package(GDCM REQUIRED) if(NOT GDCM_FOUND) set(HAVE_GDCM NO) ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt @@ -20,7 +20,7 @@ endif() if(HAVE_WEBP) add_definitions(-DHAVE_WEBP) - ocv_include_directories(${WEBP_INCLUDE_DIR}) + ocv_include_directories(${WEBP_INCLUDE_DIRS}) list(APPEND GRFMT_LIBS ${WEBP_LIBRARIES}) endif() ================================================ FILE: ports/opencv3/0004-fix-eigen.patch ================================================ --- a/cmake/OpenCVFindLibsPerf.cmake +++ b/cmake/OpenCVFindLibsPerf.cmake @@ -55,7 +55,7 @@ if(WITH_EIGEN AND NOT HAVE_EIGEN) OR NOT (CMAKE_VERSION VERSION_LESS "3.0.0") # Eigen3Targets.cmake required CMake 3.0.0+ ) AND NOT OPENCV_SKIP_EIGEN_FIND_PACKAGE_CONFIG ) - find_package(Eigen3 CONFIG QUIET) # Ceres 2.0.0 CMake scripts doesn't work with CMake's FindEigen3.cmake module (due to missing EIGEN3_VERSION_STRING) + find_package(Eigen3 CONFIG REQUIRED) # Ceres 2.0.0 CMake scripts doesn't work with CMake's FindEigen3.cmake module (due to missing EIGEN3_VERSION_STRING) endif() if(NOT Eigen3_FOUND) find_package(Eigen3 QUIET) ================================================ FILE: ports/opencv3/0005-fix-vtk9.patch ================================================ --- a/cmake/OpenCVDetectVTK.cmake +++ b/cmake/OpenCVDetectVTK.cmake @@ -1,12 +1,30 @@ +# VTK 9.0 +if(NOT VTK_FOUND) + find_package(VTK 9 QUIET NAMES vtk COMPONENTS + FiltersExtraction + FiltersSources + FiltersTexture + IOExport + IOGeometry + IOPLY + InteractionStyle + RenderingCore + RenderingLOD + RenderingOpenGL2 + NO_MODULE) +endif() + # VTK 6.x components -find_package(VTK QUIET COMPONENTS vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE) -IF(VTK_FOUND) - IF(VTK_RENDERING_BACKEND) #in vtk 7, the rendering backend is exported as a var. +if(NOT VTK_FOUND) + find_package(VTK QUIET COMPONENTS vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE) + IF(VTK_FOUND) + IF(VTK_RENDERING_BACKEND) #in vtk 7, the rendering backend is exported as a var. find_package(VTK QUIET COMPONENTS vtkRendering${VTK_RENDERING_BACKEND} vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport vtkIOGeometry NO_MODULE) - ELSE(VTK_RENDERING_BACKEND) + ELSE(VTK_RENDERING_BACKEND) find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE) - ENDIF(VTK_RENDERING_BACKEND) -ENDIF(VTK_FOUND) + ENDIF(VTK_RENDERING_BACKEND) + ENDIF(VTK_FOUND) +endif() # VTK 5.x components if(NOT VTK_FOUND) --- a/modules/viz/CMakeLists.txt +++ b/modules/viz/CMakeLists.txt @@ -3,7 +3,6 @@ if(NOT HAVE_VTK) endif() set(the_description "Viz") -include(${VTK_USE_FILE}) if(NOT BUILD_SHARED_LIBS) # We observed conflict between builtin 3rdparty libraries and @@ -27,7 +26,14 @@ endif() ocv_warnings_disable(CMAKE_CXX_FLAGS -Winconsistent-missing-override -Wsuggest-override) ocv_define_module(viz opencv_core WRAP python) -ocv_target_link_libraries(${the_module} PRIVATE ${VTK_LIBRARIES}) + +if (VTK_VERSION VERSION_LESS "8.90.0") + include(${VTK_USE_FILE}) + ocv_target_link_libraries(${the_module} PRIVATE ${VTK_LIBRARIES}) +else () + ocv_target_link_libraries(${the_module} PRIVATE ${VTK_LIBRARIES}) + vtk_module_autoinit(TARGETS ${the_module} MODULES ${VTK_LIBRARIES}) +endif() if(APPLE AND BUILD_opencv_viz) ocv_target_link_libraries(${the_module} PRIVATE "-framework Cocoa") --- a/modules/viz/src/precomp.hpp +++ b/modules/viz/src/precomp.hpp @@ -133,7 +133,8 @@ #include #include #include -#include "vtkCallbackCommand.h" +#include +#include #if !defined(_WIN32) || defined(__CYGWIN__) # include /* unlink */ @@ -149,6 +150,11 @@ #include "vtk/vtkTrajectorySource.h" #include "vtk/vtkImageMatSource.h" +#if VTK_MAJOR_VERSION >= 9 +typedef vtkIdType const * CellIterT; +#else +typedef vtkIdType * CellIterT; +#endif #include #include --- a/modules/viz/src/types.cpp +++ b/modules/viz/src/types.cpp @@ -97,10 +97,12 @@ cv::viz::Mesh cv::viz::Mesh::load(const String& file, int type) // Now handle the polygons vtkSmartPointer polygons = polydata->GetPolys(); mesh.polygons.create(1, polygons->GetSize(), CV_32SC1); + mesh.polygons = 0; int* poly_ptr = mesh.polygons.ptr(); polygons->InitTraversal(); - vtkIdType nr_cell_points, *cell_points; + vtkIdType nr_cell_points; + CellIterT cell_points; while (polygons->GetNextCell(nr_cell_points, cell_points)) { *poly_ptr++ = nr_cell_points; --- a/modules/viz/src/vizimpl.cpp +++ b/modules/viz/src/vizimpl.cpp @@ -55,8 +55,17 @@ cv::viz::Viz3d::VizImpl::VizImpl(const String &name) : spin_once_state_(false), // Create render window window_ = vtkSmartPointer::New(); - cv::Vec2i window_size = cv::Vec2i(window_->GetScreenSize()) / 2; - window_->SetSize(window_size.val); + int * sz = window_->GetScreenSize(); + if (sz) + { + cv::Vec2i window_size = cv::Vec2i(sz) / 2; + window_->SetSize(window_size.val); + } + else + { + int new_sz[2] = { 640, 480 }; + window_->SetSize(new_sz); + } window_->AddRenderer(renderer_); // Create the interactor style --- a/modules/viz/src/vtk/vtkCocoaInteractorFix.mm +++ b/modules/viz/src/vtk/vtkCocoaInteractorFix.mm @@ -49,6 +49,7 @@ #include #include #include +#include namespace cv { namespace viz { vtkSmartPointer vtkCocoaRenderWindowInteractorNew(); --- a/modules/viz/src/vtk/vtkOBJWriter.cpp +++ b/modules/viz/src/vtk/vtkOBJWriter.cpp @@ -72,7 +72,7 @@ void cv::viz::vtkOBJWriter::WriteData() } vtkDebugMacro(<<"Opening vtk file for writing..."); - ostream *outfilep = new ofstream(this->FileName, ios::out); + std::ostream *outfilep = new std::ofstream(this->FileName, ios::out); if (outfilep->fail()) { vtkErrorMacro(<< "Unable to open file: "<< this->FileName); @@ -127,7 +127,8 @@ void cv::viz::vtkOBJWriter::WriteData() // write out verts if any if (input->GetNumberOfVerts() > 0) { - vtkIdType npts = 0, *index = 0; + vtkIdType npts = 0; + CellIterT index = 0; vtkCellArray *cells = input->GetVerts(); for (cells->InitTraversal(); cells->GetNextCell(npts, index); ) { @@ -141,7 +142,8 @@ void cv::viz::vtkOBJWriter::WriteData() // write out lines if any if (input->GetNumberOfLines() > 0) { - vtkIdType npts = 0, *index = 0; + vtkIdType npts = 0; + CellIterT index = 0; vtkCellArray *cells = input->GetLines(); for (cells->InitTraversal(); cells->GetNextCell(npts, index); ) { @@ -162,7 +164,8 @@ void cv::viz::vtkOBJWriter::WriteData() // write out polys if any if (input->GetNumberOfPolys() > 0) { - vtkIdType npts = 0, *index = 0; + vtkIdType npts = 0; + CellIterT index = 0; vtkCellArray *cells = input->GetPolys(); for (cells->InitTraversal(); cells->GetNextCell(npts, index); ) { @@ -191,7 +194,8 @@ void cv::viz::vtkOBJWriter::WriteData() // write out tstrips if any if (input->GetNumberOfStrips() > 0) { - vtkIdType npts = 0, *index = 0; + vtkIdType npts = 0; + CellIterT index = 0; vtkCellArray *cells = input->GetStrips(); for (cells->InitTraversal(); cells->GetNextCell(npts, index); ) { --- a/modules/viz/src/vtk/vtkXYZReader.cpp +++ b/modules/viz/src/vtk/vtkXYZReader.cpp @@ -77,7 +77,7 @@ int cv::viz::vtkXYZReader::RequestData(vtkInformation*, vtkInformationVector**, } // Open the input file. - ifstream fin(this->FileName); + std::ifstream fin(this->FileName); if(!fin) { vtkErrorMacro("Error opening file " << this->FileName); --- a/modules/viz/src/vtk/vtkXYZWriter.cpp +++ b/modules/viz/src/vtk/vtkXYZWriter.cpp @@ -69,7 +69,7 @@ void cv::viz::vtkXYZWriter::WriteData() } vtkDebugMacro(<<"Opening vtk file for writing..."); - ostream *outfilep = new ofstream(this->FileName, ios::out); + std::ostream *outfilep = new std::ofstream(this->FileName, ios::out); if (outfilep->fail()) { vtkErrorMacro(<< "Unable to open file: "<< this->FileName); --- a/modules/viz/test/test_tutorial2.cpp +++ b/modules/viz/test/test_tutorial2.cpp @@ -28,7 +28,7 @@ static void tutorial2() /// Rodrigues vector Vec3d rot_vec = Vec3d::all(0); double translation_phase = 0.0, translation = 0.0; - while(!myWindow.wasStopped()) + for(unsigned num = 0; num < 50; ++num) { /* Rotation using rodrigues */ /// Rotate around (1,1,1) @@ -45,7 +45,7 @@ static void tutorial2() myWindow.setWidgetPose("Cube Widget", pose); - myWindow.spinOnce(1, true); + myWindow.spinOnce(100, true); } } --- a/modules/viz/test/test_tutorial3.cpp +++ b/modules/viz/test/test_tutorial3.cpp @@ -48,7 +48,7 @@ static void tutorial3(bool camera_pov) myWindow.setViewerPose(camera_pose); /// Start event loop. - myWindow.spin(); + myWindow.spinOnce(500, true); } TEST(Viz, tutorial3_global_view) --- a/modules/viz/test/test_viz3d.cpp +++ b/modules/viz/test/test_viz3d.cpp @@ -59,7 +59,7 @@ TEST(Viz_viz3d, DISABLED_develop) //cv::Mat cloud = cv::viz::readCloud(get_dragon_ply_file_path()); //---->>>>> - viz.spin(); + viz.spinOnce(500, true); } }} // namespace --- a/modules/viz/test/tests_simple.cpp +++ b/modules/viz/test/tests_simple.cpp @@ -56,7 +56,7 @@ TEST(Viz, show_cloud_bluberry) viz.showWidget("dragon", WCloud(dragon_cloud, Color::bluberry()), pose); viz.showWidget("text2d", WText("Bluberry cloud", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_cloud_random_color) @@ -73,7 +73,7 @@ TEST(Viz, show_cloud_random_color) viz.showWidget("coosys", WCoordinateSystem()); viz.showWidget("dragon", WCloud(dragon_cloud, colors), pose); viz.showWidget("text2d", WText("Random color cloud", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_cloud_masked) @@ -91,7 +91,7 @@ TEST(Viz, show_cloud_masked) viz.showWidget("coosys", WCoordinateSystem()); viz.showWidget("dragon", WCloud(dragon_cloud), pose); viz.showWidget("text2d", WText("Nan masked cloud", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_cloud_collection) @@ -109,7 +109,7 @@ TEST(Viz, show_cloud_collection) viz.showWidget("coosys", WCoordinateSystem()); viz.showWidget("ccol", ccol); viz.showWidget("text2d", WText("Cloud collection", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_painted_clouds) @@ -124,7 +124,7 @@ TEST(Viz, show_painted_clouds) viz.showWidget("cloud3", WPaintedCloud(cloud, Vec3d(0.0, 0.0, -1.0), Vec3d(0.0, 0.0, 1.0), Color::blue(), Color::red())); viz.showWidget("arrow", WArrow(Vec3d(0.0, 1.0, -1.0), Vec3d(0.0, 1.0, 1.0), 0.009, Color::raspberry())); viz.showWidget("text2d", WText("Painted clouds", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_mesh) @@ -137,7 +137,7 @@ TEST(Viz, show_mesh) viz.showWidget("coosys", WCoordinateSystem()); viz.showWidget("mesh", WMesh(mesh), pose); viz.showWidget("text2d", WText("Just mesh", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_mesh_random_colors) @@ -152,7 +152,7 @@ TEST(Viz, show_mesh_random_colors) viz.showWidget("mesh", WMesh(mesh), pose); viz.setRenderingProperty("mesh", SHADING, SHADING_PHONG); viz.showWidget("text2d", WText("Random color mesh", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_widget_merger) @@ -173,7 +173,7 @@ TEST(Viz, show_widget_merger) viz.showWidget("coo", WCoordinateSystem()); viz.showWidget("merger", merger); viz.showWidget("text2d", WText("Widget merger", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_textured_mesh) @@ -210,7 +210,7 @@ TEST(Viz, show_textured_mesh) viz.showWidget("mesh", WMesh(mesh)); viz.setRenderingProperty("mesh", SHADING, SHADING_PHONG); viz.showWidget("text2d", WText("Textured mesh", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_polyline) @@ -229,7 +229,7 @@ TEST(Viz, show_polyline) viz.showWidget("polyline", WPolyLine(polyline, colors)); viz.showWidget("coosys", WCoordinateSystem()); viz.showWidget("text2d", WText("Polyline", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_sampled_normals) @@ -244,7 +244,7 @@ TEST(Viz, show_sampled_normals) viz.showWidget("normals", WCloudNormals(mesh.cloud, mesh.normals, 30, 0.1f, Color::green()), pose); viz.setRenderingProperty("normals", LINE_WIDTH, 2.0); viz.showWidget("text2d", WText("Cloud or mesh normals", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_cloud_shaded_by_normals) @@ -260,7 +260,7 @@ TEST(Viz, show_cloud_shaded_by_normals) Viz3d viz("show_cloud_shaded_by_normals"); viz.showWidget("cloud", cloud, pose); viz.showWidget("text2d", WText("Cloud shaded by normals", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_trajectories) @@ -287,15 +287,15 @@ TEST(Viz, show_trajectories) viz.showWidget("text2d", WText("Different kinds of supported trajectories", Point(20, 20), 20, Color::green())); int i = 0; - while(!viz.wasStopped()) + for(unsigned num = 0; num < 50; ++num) { double a = --i % 360; Vec3d pose(sin(a * CV_PI/180), 0.7, cos(a * CV_PI/180)); viz.setViewerPose(makeCameraPose(pose * 7.5, Vec3d(0.0, 0.5, 0.0), Vec3d(0.0, 0.1, 0.0))); - viz.spinOnce(20, true); + viz.spinOnce(100, true); } viz.resetCamera(); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_trajectory_reposition) @@ -306,7 +306,7 @@ TEST(Viz, show_trajectory_reposition) viz.showWidget("coos", WCoordinateSystem()); viz.showWidget("sub3", WTrajectory(Mat(path).rowRange(0, (int)path.size()/3), WTrajectory::BOTH, 0.2, Color::brown()), path.front().inv()); viz.showWidget("text2d", WText("Trajectory resposition to origin", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_camera_positions) @@ -330,7 +330,7 @@ TEST(Viz, show_camera_positions) viz.showWidget("pos3", WCameraPosition(0.75), poses[1]); viz.showWidget("pos4", WCameraPosition(K, gray, 3, Color::indigo()), poses[1]); viz.showWidget("text2d", WText("Camera positions with images", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_overlay_image) @@ -353,16 +353,16 @@ TEST(Viz, show_overlay_image) viz.showWidget("text2d", WText("Overlay images", Point(20, 20), 20, Color::green())); int i = 0; - while(!viz.wasStopped()) + for(unsigned num = 0; num < 50; ++num) { double a = ++i % 360; Vec3d pose(sin(a * CV_PI/180), 0.7, cos(a * CV_PI/180)); viz.setViewerPose(makeCameraPose(pose * 3, Vec3d(0.0, 0.5, 0.0), Vec3d(0.0, 0.1, 0.0))); viz.getWidget("img1").cast().setImage(lena * pow(sin(i*10*CV_PI/180) * 0.5 + 0.5, 1.0)); - viz.spinOnce(1, true); + viz.spinOnce(100, true); } viz.showWidget("text2d", WText("Overlay images (stopped)", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } @@ -376,7 +376,7 @@ TEST(Viz, show_image_method) viz.showImage(lena, lena.size()); viz.spinOnce(1500, true); - cv::viz::imshow("show_image_method", make_gray(lena)).spin(); + cv::viz::imshow("show_image_method", make_gray(lena)).spinOnce(500, true); } TEST(Viz, show_image_3d) @@ -398,13 +398,13 @@ TEST(Viz, show_image_3d) viz.showWidget("text2d", WText("Images in 3D", Point(20, 20), 20, Color::green())); int i = 0; - while(!viz.wasStopped()) + for(unsigned num = 0; num < 50; ++num) { viz.getWidget("img0").cast().setImage(lena * pow(sin(i++*7.5*CV_PI/180) * 0.5 + 0.5, 1.0)); - viz.spinOnce(1, true); + viz.spinOnce(100, true); } viz.showWidget("text2d", WText("Images in 3D (stopped)", Point(20, 20), 20, Color::green())); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_simple_widgets) @@ -431,10 +431,10 @@ TEST(Viz, show_simple_widgets) viz.showWidget("grid1", WGrid(Vec2i(7,7), Vec2d::all(0.75), Color::gray()), Affine3d().translate(Vec3d(0.0, 0.0, -1.0))); - viz.spin(); + viz.spinOnce(500, true); viz.getWidget("text2d").cast().setText("Different simple widgets (updated)"); viz.getWidget("text3d").cast().setText("Updated text 3D"); - viz.spin(); + viz.spinOnce(500, true); } TEST(Viz, show_follower) @@ -446,9 +446,9 @@ TEST(Viz, show_follower) viz.showWidget("t3d_2", WText3D("Simple 3D follower", Point3d(-0.5, -0.5, 0.5), 0.125, true, Color::green())); viz.showWidget("text2d", WText("Follower: text always facing camera", Point(20, 20), 20, Color::green())); viz.setBackgroundMeshLab(); - viz.spin(); + viz.spinOnce(500, true); viz.getWidget("t3d_2").cast().setText("Updated follower 3D"); - viz.spin(); + viz.spinOnce(500, true); } }} // namespace ================================================ FILE: ports/opencv3/0006-fix-uwp.patch ================================================ --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -1188,7 +1188,7 @@ function(ocv_add_perf_tests) set_target_properties(${the_target} PROPERTIES FOLDER "tests performance") endif() - if(WINRT) + if(WINRT AND BUILD_TESTS) # removing APPCONTAINER from tests to run from console # look for detailed description inside of ocv_create_module macro above add_custom_command(TARGET "opencv_perf_${name}" ================================================ FILE: ports/opencv3/0007-contrib-fix-hdf5.patch ================================================ --- a/modules/hdf/CMakeLists.txt +++ b/modules/hdf/CMakeLists.txt @@ -1,25 +1,8 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}) -if(WIN32) - # windows cmake internal lookups are broken for now - # will lookup for headers and shared libs given HDF_DIR env - find_path(HDF5_INCLUDE_DIRS hdf5.h HINTS "$ENV{HDF5_DIR}\\..\\include") - find_library(HDF5_C_LIBRARY NAMES hdf5 HINTS "$ENV{HDF5_DIR}\\..\\lib") - if(HDF5_INCLUDE_DIRS AND HDF5_C_LIBRARY) - set(HDF5_FOUND "YES") - set(HDF5_LIBRARIES ${HDF5_C_LIBRARY}) - mark_as_advanced(HDF5_LIBRARIES) - mark_as_advanced(HDF5_C_LIBRARY) - mark_as_advanced(HDF5_INCLUDE_DIRS) - add_definitions(-DH5_BUILT_AS_DYNAMIC_LIB -D_HDF5USEDLL_) - else() - set(HDF5_FOUND "NO") - endif() -else() if(NOT CMAKE_CROSSCOMPILING) # iOS build should not reuse OSX package find_package(HDF5) endif() -endif() if(NOT HDF5_FOUND) ocv_module_disable(hdf) # no return ================================================ FILE: ports/opencv3/0008-devendor-quirc.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -780,7 +780,7 @@ if(WITH_OPENVX) endif() if(WITH_QUIRC) - add_subdirectory(3rdparty/quirc) + find_package(quirc CONFIG REQUIRED) set(HAVE_QUIRC TRUE) endif() # ---------------------------------------------------------------------------- --- a/modules/objdetect/CMakeLists.txt +++ b/modules/objdetect/CMakeLists.txt @@ -2,7 +2,5 @@ set(the_description "Object Detection") ocv_define_module(objdetect opencv_core opencv_imgproc opencv_calib3d WRAP java python js) if(HAVE_QUIRC) - get_property(QUIRC_INCLUDE GLOBAL PROPERTY QUIRC_INCLUDE_DIR) - ocv_include_directories(${QUIRC_INCLUDE}) - ocv_target_link_libraries(${the_module} quirc) + ocv_target_link_libraries(${the_module} quirc::quirc) endif() ================================================ FILE: ports/opencv3/0009-fix-protobuf.patch ================================================ --- a/cmake/OpenCVFindProtobuf.cmake +++ b/cmake/OpenCVFindProtobuf.cmake @@ -31,7 +31,7 @@ if(BUILD_PROTOBUF) set(HAVE_PROTOBUF TRUE) else() unset(Protobuf_VERSION CACHE) - find_package(Protobuf QUIET) + find_package(Protobuf CONFIG REQUIRED) # Backwards compatibility # Define camel case versions of input variables @@ -76,6 +76,7 @@ if(HAVE_PROTOBUF) if(NOT BUILD_PROTOBUF) if(TARGET "${Protobuf_LIBRARIES}") get_target_property(__location "${Protobuf_LIBRARIES}" IMPORTED_LOCATION_RELEASE) + get_target_property(__location_debug "${Protobuf_LIBRARIES}" IMPORTED_LOCATION_DEBUG) if(NOT __location) get_target_property(__location "${Protobuf_LIBRARIES}" IMPORTED_LOCATION) endif() @@ -87,5 +88,5 @@ if(HAVE_PROTOBUF) endif() list(APPEND CUSTOM_STATUS_protobuf " Protobuf:" BUILD_PROTOBUF THEN "build (${Protobuf_VERSION})" - ELSE "${__location} (${Protobuf_VERSION})") + ELSE "optimized ${__location} debug ${__location_debug} ; version (${Protobuf_VERSION})") endif() ================================================ FILE: ports/opencv3/0010-fix-uwp-tiff-imgcodecs.patch ================================================ --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt @@ -9,6 +9,10 @@ ocv_add_module(imgcodecs opencv_imgproc WRAP java python) ocv_clear_vars(GRFMT_LIBS) +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996") +endif() + if(HAVE_WINRT_CX AND NOT WINRT) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW") endif() ================================================ FILE: ports/opencv3/0011-remove-python2.patch ================================================ --- a/cmake/OpenCVDetectPython.cmake +++ b/cmake/OpenCVDetectPython.cmake @@ -268,15 +268,6 @@ if(OPENCV_PYTHON_SKIP_DETECTION) return() endif() -find_python("" "${MIN_VER_PYTHON2}" PYTHON2_LIBRARY PYTHON2_INCLUDE_DIR - PYTHON2INTERP_FOUND PYTHON2_EXECUTABLE PYTHON2_VERSION_STRING - PYTHON2_VERSION_MAJOR PYTHON2_VERSION_MINOR PYTHON2LIBS_FOUND - PYTHON2LIBS_VERSION_STRING PYTHON2_LIBRARIES PYTHON2_LIBRARY - PYTHON2_DEBUG_LIBRARIES PYTHON2_LIBRARY_DEBUG PYTHON2_INCLUDE_PATH - PYTHON2_INCLUDE_DIR PYTHON2_INCLUDE_DIR2 PYTHON2_PACKAGES_PATH - PYTHON2_NUMPY_INCLUDE_DIRS PYTHON2_NUMPY_VERSION) - -option(OPENCV_PYTHON3_VERSION "Python3 version" "") find_python("${OPENCV_PYTHON3_VERSION}" "${MIN_VER_PYTHON3}" PYTHON3_LIBRARY PYTHON3_INCLUDE_DIR PYTHON3INTERP_FOUND PYTHON3_EXECUTABLE PYTHON3_VERSION_STRING PYTHON3_VERSION_MAJOR PYTHON3_VERSION_MINOR PYTHON3LIBS_FOUND ================================================ FILE: ports/opencv3/0012-fix-zlib.patch ================================================ --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -5,6 +5,9 @@ # --- zlib (required) --- if(BUILD_ZLIB) ocv_clear_vars(ZLIB_FOUND) +elseif(1) + ocv_clear_internal_cache_vars(ZLIB_LIBRARY ZLIB_INCLUDE_DIR) + find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) else() ocv_clear_internal_cache_vars(ZLIB_LIBRARY ZLIB_INCLUDE_DIR) if(ANDROID) ================================================ FILE: ports/opencv3/0013-contrib-fix-tesseract.patch ================================================ --- a/modules/text/cmake/init.cmake +++ b/modules/text/cmake/init.cmake @@ -4,6 +4,8 @@ OCV_OPTION(WITH_TESSERACT "Include Tesseract OCR library support" (NOT CMAKE_CRO if(NOT HAVE_TESSERACT AND (WITH_TESSERACT OR OPENCV_FIND_TESSERACT) ) + find_package(Tesseract CONFIG REQUIRED) + set(Tesseract_LIBRARIES Tesseract::libtesseract) if(NOT Tesseract_FOUND) find_package(Tesseract QUIET) # Prefer CMake's standard locations (including Tesseract_DIR) endif() ================================================ FILE: ports/opencv3/0014-fix-pkgconf-name.patch ================================================ --- a/cmake/OpenCVGenPkgconfig.cmake +++ b/cmake/OpenCVGenPkgconfig.cmake @@ -45,7 +45,7 @@ if(NOT DEFINED CMAKE_HELPER_SCRIPT) if(INSTALL_TO_MANGLED_PATHS) set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc") else() - set(OPENCV_PC_FILE_NAME opencv.pc) + set(OPENCV_PC_FILE_NAME opencv3.pc) endif() # build the list of opencv libs and dependencies for all modules ================================================ FILE: ports/opencv3/0015-fix-supportqnx.patch ================================================ --- a/modules/core/src/system.cpp +++ b/modules/core/src/system.cpp @@ -129,11 +129,15 @@ void* allocSingletonNewBuffer(size_t size) { return malloc(size); } #include // std::abort #endif -#if defined __ANDROID__ || defined __unix__ || defined __FreeBSD__ || defined __OpenBSD__ || defined __HAIKU__ +#if defined __ANDROID__ || defined __unix__ || defined __FreeBSD__ || defined __OpenBSD__ || defined __HAIKU__ || defined __QNX__ # include # include #if defined __QNX__ # include +# include +using Elf64_auxv_t = auxv64_t; +# include +constexpr decltype(auto) AT_HWCAP = NT_GNU_HWCAP; #else # include #endif ================================================ FILE: ports/opencv3/0016-contrib-fix-freetype.patch ================================================ --- a/modules/freetype/CMakeLists.txt +++ b/modules/freetype/CMakeLists.txt @@ -3,8 +3,10 @@ if(APPLE_FRAMEWORK) ocv_module_disable(freetype) endif() -ocv_check_modules(FREETYPE freetype2) -ocv_check_modules(HARFBUZZ harfbuzz) +if(WITH_FREETYPE) +find_package(freetype CONFIG REQUIRED) +find_package(harfbuzz CONFIG REQUIRED) +endif() if(OPENCV_INITIAL_PASS) if(NOT FREETYPE_FOUND) ================================================ FILE: ports/opencv3/0017-enable-gtk.patch ================================================ --- a/cmake/OpenCVFindLibsGUI.cmake +++ b/cmake/OpenCVFindLibsGUI.cmake @@ -61,7 +61,7 @@ endif() # --- GTK --- ocv_clear_vars(HAVE_GTK HAVE_GTK3 HAVE_GTHREAD HAVE_GTKGLEXT) -if(WITH_GTK AND NOT HAVE_QT) +if(WITH_GTK) if(NOT WITH_GTK_2_X) ocv_check_modules(GTK3 gtk+-3.0) if(HAVE_GTK3) ================================================ FILE: ports/opencv3/0019-enable-pkgconf.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -618,6 +618,7 @@ ocv_cmake_hook(POST_COMPILER_OPTIONS) # ---------------------------------------------------------------------------- # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. # ---------------------------------------------------------------------------- +find_package(PkgConfig REQUIRED) if(UNIX) if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG) if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR} ================================================ FILE: ports/opencv3/0020-contrib-add-cassert.patch ================================================ diff --git a/modules/sfm/src/libmv_light/libmv/numeric/numeric.h b/modules/sfm/src/libmv_light/libmv/numeric/numeric.h index dde7e81..063b16a 100644 --- a/modules/sfm/src/libmv_light/libmv/numeric/numeric.h +++ b/modules/sfm/src/libmv_light/libmv/numeric/numeric.h @@ -33,6 +33,8 @@ #include #include +#include + #if !defined(__MINGW64__) # if defined(_WIN32) || defined(__APPLE__) || \ defined(__FreeBSD__) || defined(__NetBSD__) ================================================ FILE: ports/opencv3/0021-protobuf-6.patch ================================================ diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp index 03dff96464..ffd35ec7fc 100644 --- a/modules/dnn/src/caffe/caffe_importer.cpp +++ b/modules/dnn/src/caffe/caffe_importer.cpp @@ -125,8 +125,8 @@ public: { const google::protobuf::UnknownField& field = unknownFields.field(i); CV_Assert(field.type() == google::protobuf::UnknownField::TYPE_GROUP); - std::string fieldName = field.group().field(0).length_delimited(); - std::string fieldValue = field.group().field(1).length_delimited(); + std::string fieldName(field.group().field(0).length_delimited()); + std::string fieldValue(field.group().field(1).length_delimited()); params.set(fieldName, fieldValue); } } @@ -136,7 +136,7 @@ public: const Reflection *refl = msg.GetReflection(); int type = field->cpp_type(); bool isRepeated = field->is_repeated(); - const std::string &name = field->name(); + const std::string name(field->name()); #define SET_UP_FILED(getter, arrayConstr, gtype) \ if (isRepeated) { \ @@ -184,15 +184,15 @@ public: int size = refl->FieldSize(msg, field); std::vector buf(size); for (int i = 0; i < size; i++) - buf[i] = refl->GetRepeatedEnum(msg, field, i)->name(); + buf[i] = std::string(refl->GetRepeatedEnum(msg, field, i)->name()); params.set(name, DictValue::arrayString(buf.begin(), size)); } else { - params.set(name, refl->GetEnum(msg, field)->name()); + params.set(name, std::string(refl->GetEnum(msg, field)->name())); } break; default: - CV_Error(Error::StsError, "Unknown type \"" + String(field->type_name()) + "\" in prototxt"); + CV_Error(Error::StsError, "Unknown type \"" + String(std::string(field->type_name())) + "\" in prototxt"); break; } } @@ -212,7 +212,7 @@ public: { const FieldDescriptor *fd = msgDesc->field(fieldId); - if (!isInternal && !ends_with_param(fd->name())) + if (!isInternal && !ends_with_param(std::string(fd->name()))) continue; const google::protobuf::UnknownFieldSet& unknownFields = msgRefl->GetUnknownFields(msg); ================================================ FILE: ports/opencv3/0022-include-thread.patch ================================================ diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index b4fa8933c3..224debea7a 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -60,6 +60,10 @@ #include #include +#ifdef HAVE_HALIDE +#include +#endif + namespace cv { namespace dnn { CV__DNN_EXPERIMENTAL_NS_BEGIN ================================================ FILE: ports/opencv3/portfile.cmake ================================================ set(USE_QT_VERSION "5") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/opencv REF af32659937b6a23af04954a23a4a31ea520ceabc #3.4.20 SHA512 e7efc912113f27428fb85f033e8b18146c9a5899bf10e687f8c279ed736ee3006ac330e843979df7572f046f41cb8820e291b4303dcfdc4f12deb6df0e0be27b HEAD_REF master PATCHES 0001-disable-downloading.patch 0002-install-options.patch 0003-force-package-requirements.patch 0004-fix-eigen.patch 0005-fix-vtk9.patch 0006-fix-uwp.patch 0008-devendor-quirc.patch 0009-fix-protobuf.patch 0010-fix-uwp-tiff-imgcodecs.patch 0011-remove-python2.patch 0012-fix-zlib.patch 0014-fix-pkgconf-name.patch 0015-fix-supportqnx.patch 0017-enable-gtk.patch 0019-enable-pkgconf.patch 0021-protobuf-6.patch # 1db93911aeb65599f22db47d5d39f75bc94a821d 0022-include-thread.patch ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") # Disallow accidental build of vendored copies file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/openexr") file(REMOVE "${SOURCE_PATH}/cmake/FindCUDNN.cmake") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(TARGET_IS_AARCH64 1) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(TARGET_IS_ARM 1) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(TARGET_IS_X86_64 1) else() set(TARGET_IS_X86 1) endif() if (USE_QT_VERSION STREQUAL "6") set(QT_CORE5COMPAT "Core5Compat") set(QT_OPENGLWIDGETS "OpenGLWidgets") endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) # Cannot use vcpkg_check_features() for "qt" because it requires the QT version number passed, not just a boolean vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "bgsegm" BUILD_opencv_bgsegm "contrib" WITH_CONTRIB "dc1394" WITH_1394 "dnn" BUILD_opencv_dnn "eigen" WITH_EIGEN "flann" BUILD_opencv_flann "flann" PROTOBUF_UPDATE_FILES "flann" UPDATE_PROTO_FILES "flann" WITH_PROTOBUF "freetype" WITH_FREETYPE "gdcm" WITH_GDCM "gstreamer" WITH_GSTREAMER "gtk" WITH_GTK "halide" WITH_HALIDE "ipp" WITH_IPP "ipp" BUILD_IPP_IW "jasper" WITH_JASPER "jpeg" WITH_JPEG "line-descriptor" BUILD_opencv_line_descriptor "msmf" WITH_MSMF "nonfree" OPENCV_ENABLE_NONFREE "openexr" WITH_OPENEXR "opengl" WITH_OPENGL "openmp" WITH_OPENMP "ovis" BUILD_opencv_ovis "png" WITH_PNG "python" BUILD_opencv_python3 "python" WITH_PYTHON "quality" BUILD_opencv_quality "quirc" WITH_QUIRC "saliency" BUILD_opencv_saliency "sfm" BUILD_opencv_sfm "tbb" WITH_TBB "tiff" WITH_TIFF "vtk" WITH_VTK "webp" WITH_WEBP "world" BUILD_opencv_world ) # Cannot use vcpkg_check_features() for "python", "qt" set(WITH_QT OFF) if("qt" IN_LIST FEATURES) set(WITH_QT ${USE_QT_VERSION}) endif() if("python" IN_LIST FEATURES) x_vcpkg_get_python_packages(PYTHON_VERSION "3" PACKAGES numpy OUT_PYTHON_VAR "PYTHON3") set(ENV{PYTHON} "${PYTHON3}") file(GLOB _py3_include_path "${CURRENT_INSTALLED_DIR}/include/python3*") string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp ${_py3_include_path}) set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") set(python_ver "3.${PYTHON_VERSION_MINOR}") list(APPEND PYTHON_EXTRA_DEFINES_RELEASE "-D__INSTALL_PATH_PYTHON3=${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2" "-DOPENCV_PYTHON_INSTALL_PATH=${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}" ) list(APPEND PYTHON_EXTRA_DEFINES_DEBUG "-D__INSTALL_PATH_PYTHON3=${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2" "-DOPENCV_PYTHON_INSTALL_PATH=${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}" ) if(EXISTS "${CURRENT_INSTALLED_DIR}/${PYTHON3_SITE}/cv2") message(FATAL_ERROR "You cannot install opencv3[python] if opencv4[python] is already present.") endif() endif() if("dnn" IN_LIST FEATURES) vcpkg_download_distfile(TINYDNN_ARCHIVE URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b ) endif() if("contrib" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH CONTRIB_SOURCE_PATH REPO opencv/opencv_contrib REF ae9a95ecdd8b4014a45b38c5576adf73c5d96f35 SHA512 98f4e3113fb65b6d52d39388ae616d3107969040dc70248be194566904cf8a4f165a61fd5e88b1d799d7bc8107f1a3c3951365de45f3b19cb8b888a63c6d8f2d HEAD_REF master PATCHES 0007-contrib-fix-hdf5.patch 0013-contrib-fix-tesseract.patch 0016-contrib-fix-freetype.patch 0020-contrib-add-cassert.patch ) set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 ) function(download_opencv_3rdparty ID COMMIT HASH) if(NOT EXISTS "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://github.com/opencv/opencv_3rdparty/archive/${COMMIT}.zip" FILENAME "opencv_3rdparty-${COMMIT}.zip" SHA512 ${HASH} ) vcpkg_extract_source_archive(extracted_ocv ARCHIVE "${OCV_DOWNLOAD}") file(MAKE_DIRECTORY "${DOWNLOADS}/opencv-cache/${ID}") file(GLOB XFEATURES2D_I "${extracted_ocv}/*") foreach(FILE ${XFEATURES2D_I}) file(COPY ${FILE} DESTINATION "${DOWNLOADS}/opencv-cache/${ID}") get_filename_component(XFEATURES2D_I_NAME "${FILE}" NAME) file(MD5 "${FILE}" FILE_HASH) file(RENAME "${DOWNLOADS}/opencv-cache/${ID}/${XFEATURES2D_I_NAME}" "${DOWNLOADS}/opencv-cache/${ID}/${FILE_HASH}-${XFEATURES2D_I_NAME}") endforeach() file(WRITE "${DOWNLOADS}/opencv-cache/${ID}/${COMMIT}.stamp") endif() endfunction() # Used for opencv's xfeature2d module download_opencv_3rdparty( xfeatures2d/boostdesc 34e4206aef44d50e6bbcd0ab06354b52e7466d26 2ccdc8fb59da55eabc73309a80a4d3b1e73e2341027cdcdd2d714e0f519e60f243f38f79b13ed3de32f595aa23e4f86418eed42e741f32a81b1e6e0879190601 ) # Used for opencv's xfeature2d module download_opencv_3rdparty( xfeatures2d/vgg fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d 7051f5d6ccb938d296b919dd6d5dcddc5afb527aed456639c9984276a8f64565c084d96a72499a7756f127f8d2b1ce9ab70e4cbb3f89c4e16f82296c2a15daed ) endif() if("ipp" IN_LIST FEATURES) if(VCPKG_TARGET_IS_OSX) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a/ippicv/ippicv_2021.9.1_mac_intel64_20230919_general.tgz" FILENAME "opencv-cache/ippicv/14f01c5a4780bfae9dde9b0aaf5e56fc-ippicv_2021.9.1_mac_intel64_20230919_general.tgz" SHA512 e53aa1bf4336a94554bf40c29a74c85f595c0aec8d9102a158db7ae075db048c1ff7f50ed81eda3ac8e07b1460862970abc820073a53c0f237e584708c5295da ) elseif(VCPKG_TARGET_IS_LINUX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_lnx_intel64_20240201_general.tgz" FILENAME "opencv-cache/ippicv/0f2745ff705ecae31176dad437608f6f-ippicv_2021.11.0_lnx_intel64_20240201_general.tgz" SHA512 74cba99a1d2c40a125b23d42de555548fecd22c8fea5ed68ab7f887b1f208bd7f2906a64d40bac71ea82190e5389fb92d3c72b6d47c8c05a2e9b9b909a82ce47 ) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_lnx_ia32_20240201_general.tgz" FILENAME "opencv-cache/ippicv/63e381bf08076ca34fd5264203043a45-ippicv_2021.11.0_lnx_ia32_20240201_general.tgz" SHA512 37484704754f9553b04c8da23864af3217919a11a9dbc92427e6326d6104bab7f1983c98c78ec52cda2d3eb93dc1fd98d0b780e3b7a98e703010c5ee1b421426 ) endif() elseif(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_win_intel64_20240201_general.zip" FILENAME "opencv-cache/ippicv/59d154bf54a1e3eea20d7248f81a2a8e-ippicv_2021.11.0_win_intel64_20240201_general.zip" SHA512 686ddbafa3f24c598d94589fca6937f90a4fb25e3dabea3b276709e55cbc2636aba8d73fadd336775f8514ff8e2e1b20e749264a7f11243190d54467f9a3f895 ) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fd27188235d85e552de31425e7ea0f53ba73ba53/ippicv/ippicv_2021.11.0_win_ia32_20240201_general.zip" FILENAME "opencv-cache/ippicv/7a6d8ac5825c02fea6cbfc1201b521b5-ippicv_2021.11.0_win_ia32_20240201_general.zip" SHA512 0e151e34cee01a3684d3be3c2c75b0fac5f303bfd8c08685981a3d4a25a19a9bb454da26d2965aab915adc209accca17b6a4b6d7726c004cd7841daf180bbd3a ) endif() endif() endif() if("halide" IN_LIST FEATURES) list(APPEND ADDITIONAL_BUILD_FLAGS # Halide 13 requires C++17 "-DCMAKE_CXX_STANDARD_REQUIRED=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_Halide=ON" "-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR}" ) endif() if("qt" IN_LIST FEATURES) list(APPEND ADDITIONAL_BUILD_FLAGS "-DCMAKE_AUTOMOC=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ###### Verify that required components and only those are enabled -DENABLE_CONFIG_VERIFICATION=ON ###### opencv cpu recognition is broken, always using host and not target: here we bypass that -DOPENCV_SKIP_SYSTEM_PROCESSOR_DETECTION=TRUE -DAARCH64=${TARGET_IS_AARCH64} -DX86_64=${TARGET_IS_X86_64} -DX86=${TARGET_IS_X86} -DARM=${TARGET_IS_ARM} ###### use c++17 to enable features that fail with c++11 (halide, protobuf, etc.) -DCMAKE_CXX_STANDARD=17 ###### ocv_options -DINSTALL_TO_MANGLED_PATHS=OFF -DOpenCV_INSTALL_BINARIES_PREFIX= -DOPENCV_BIN_INSTALL_PATH=bin -DOPENCV_INCLUDE_INSTALL_PATH=include/opencv3 -DOPENCV_LIB_INSTALL_PATH=lib -DOPENCV_3P_LIB_INSTALL_PATH=lib/manual-link/opencv3_thirdparty -DOPENCV_CONFIG_INSTALL_PATH=share/opencv3 -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG -DOPENCV_FFMPEG_SKIP_BUILD_CHECK=TRUE -DCMAKE_DEBUG_POSTFIX=d -DOPENCV_DLLVERSION=3 -DOPENCV_DEBUG_POSTFIX=d -DOPENCV_GENERATE_SETUPVARS=OFF -DOPENCV_GENERATE_PKGCONFIG=ON # Do not build docs/examples -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF ###### Disable build 3rd party libs -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_OPENJPEG=OFF -DBUILD_PNG=OFF -DBUILD_PROTOBUF=OFF -DBUILD_TBB=OFF -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF ###### OpenCV Build components -DBUILD_opencv_apps=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_js=OFF -DBUILD_JAVA=OFF -DBUILD_ANDROID_PROJECT=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_PACKAGE=OFF -DBUILD_WITH_DEBUG_INFO=ON -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} ###### PROTOBUF ###### PYLINT/FLAKE8 -DENABLE_PYLINT=OFF -DENABLE_FLAKE8=OFF # CMAKE -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON # ENABLE -DENABLE_CXX11=ON ###### OPENCV vars "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" ${BUILD_WITH_CONTRIB_FLAG} -DOPENCV_OTHER_INSTALL_PATH=share/opencv3 ###### customized properties ## Options from vcpkg_check_features() ${FEATURE_OPTIONS} -DWITH_QT=${WITH_QT} -DWITH_MATLAB=OFF -DWITH_OPENJPEG=OFF -DWITH_CPUFEATURES=OFF -DWITH_SPNG=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCL_D3D11_NV=OFF -DWITH_ITT=OFF -DWITH_NVCUVID=OFF -DWITH_NVCUVENC=OFF -DWITH_AVIF=OFF -DWITH_VA=OFF -DWITH_VA_INTEL=OFF -DWITH_FFMPEG=OFF -DWITH_CUDA=OFF -DWITH_CUBLAS=OFF -DWITH_LAPACK=OFF ###### Additional build flags ${ADDITIONAL_BUILD_FLAGS} OPTIONS_RELEASE ###### Python install path ${PYTHON_EXTRA_DEFINES_RELEASE} OPTIONS_DEBUG ###### Python install path ${PYTHON_EXTRA_DEFINES_DEBUG} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if (NOT VCPKG_BUILD_TYPE) # Update debug paths for libs in Android builds (e.g. sdk/native/staticlibs/armeabi-v7a) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/opencv3/OpenCVModules-debug.cmake" "\${_IMPORT_PREFIX}/sdk" "\${_IMPORT_PREFIX}/debug/sdk" IGNORE_UNCHANGED ) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/opencv3/OpenCVModules.cmake" OPENCV_MODULES) set(DEPS_STRING "include(CMakeFindDependencyMacro) if(${BUILD_opencv_flann} AND NOT TARGET libprotobuf) #Check if the CMake target libprotobuf is already defined find_dependency(Protobuf CONFIG REQUIRED) if(TARGET protobuf::libprotobuf) add_library (libprotobuf INTERFACE IMPORTED) set_target_properties(libprotobuf PROPERTIES INTERFACE_LINK_LIBRARIES protobuf::libprotobuf ) else() add_library (libprotobuf UNKNOWN IMPORTED) set_target_properties(libprotobuf PROPERTIES IMPORTED_LOCATION \"${Protobuf_LIBRARY}\" INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" ) endif() endif() find_dependency(Threads)") if("tiff" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(TIFF)") endif() if("cuda" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(CUDA)") endif() if("ffmpeg" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(FFMPEG)") endif() if("contrib" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_UWP AND NOT VCPKG_TARGET_IS_IOS AND NOT (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")) string(APPEND DEPS_STRING " # C language is required for try_compile tests in FindHDF5 enable_language(C) find_dependency(HDF5) find_dependency(Tesseract)") endif() if("freetype" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(harfbuzz)") endif() if("tbb" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(TBB)") endif() if("vtk" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(VTK)") endif() if("sfm" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(gflags CONFIG)\nfind_dependency(Ceres CONFIG)") endif() if("eigen" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Eigen3 CONFIG)") endif() if("openvino" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenVINO CONFIG)") endif() if("openexr" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenEXR CONFIG)") endif() if("omp" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenMP)") endif() if("ovis" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OGRE)") endif() if("quirc" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(quirc)") endif() if("qt" IN_LIST FEATURES) string(APPEND DEPS_STRING " set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON)") if("opengl" IN_LIST FEATURES) string(APPEND DEPS_STRING " find_dependency(Qt${USE_QT_VERSION} COMPONENTS Core Gui Widgets Test Concurrent ${QT_CORE5COMPAT} OpenGL ${QT_OPENGLWIDGETS})") else() string(APPEND DEPS_STRING " find_dependency(Qt${USE_QT_VERSION} COMPONENTS Core Gui Widgets Test Concurrent ${QT_CORE5COMPAT})") endif() endif() if("ade" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(ade)") endif() if("gdcm" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(GDCM)") endif() string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" "set(CMAKE_IMPORT_FILE_VERSION 1)\n${DEPS_STRING}" OPENCV_MODULES "${OPENCV_MODULES}") if("openmp" IN_LIST FEATURES) string(REPLACE "set_target_properties(opencv_core PROPERTIES INTERFACE_LINK_LIBRARIES \"" "set_target_properties(opencv_core PROPERTIES INTERFACE_LINK_LIBRARIES \"\$;" OPENCV_MODULES "${OPENCV_MODULES}") endif() if("ovis" IN_LIST FEATURES) string(REPLACE "OgreGLSupportStatic" "OgreGLSupport" OPENCV_MODULES "${OPENCV_MODULES}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/opencv3/OpenCVModules.cmake" "${OPENCV_MODULES}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(VCPKG_TARGET_IS_ANDROID) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/README.android") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/README.android") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2/typing") file(GLOB PYTHON3_SITE_FILES "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2/*.py") foreach(PYTHON3_SITE_FILE ${PYTHON3_SITE_FILES}) vcpkg_replace_string("${PYTHON3_SITE_FILE}" "os.path.join('${CURRENT_PACKAGES_DIR}'" "os.path.join('.'" IGNORE_UNCHANGED ) vcpkg_replace_string("${PYTHON3_SITE_FILE}" "os.path.join('${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2'" "os.path.join('.'" IGNORE_UNCHANGED ) endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2/typing") file(GLOB PYTHON3_SITE_FILES_DEBUG "${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2/*.py") foreach(PYTHON3_SITE_FILE_DEBUG ${PYTHON3_SITE_FILES_DEBUG}) vcpkg_replace_string("${PYTHON3_SITE_FILE_DEBUG}" "os.path.join('${CURRENT_PACKAGES_DIR}/debug'" "os.path.join('.'" IGNORE_UNCHANGED ) vcpkg_replace_string("${PYTHON3_SITE_FILE_DEBUG}" "os.path.join('${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2'" "os.path.join('.'" IGNORE_UNCHANGED ) endforeach() if (EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "-lQt6::Core5Compat" "-lQt6Core5Compat" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "-lhdf5::hdf5-static" "-lhdf5" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "-lglog::glog" "-lglog" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "-lgflags::gflags_static" "-lgflags" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "-lTesseract::libtesseract" "-ltesseract" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv3.pc" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/" "\${prefix}" IGNORE_UNCHANGED ) endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "-lQt6::Core5Compat" "-lQt6Core5Compat" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "-lhdf5::hdf5-static" "-lhdf5" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "-lglog::glog" "-lglog" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "-lgflags::gflags_static" "-lgflags" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "-lTesseract::libtesseract" "-ltesseract" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv3.pc" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/" "\${prefix}" IGNORE_UNCHANGED ) endif() vcpkg_fixup_pkgconfig() configure_file("${CURRENT_PORT_DIR}/usage.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") file(GLOB_RECURSE extra1_license_files "${CURRENT_PACKAGES_DIR}/share/licenses/*") file(GLOB_RECURSE extra2_license_files "${CURRENT_PACKAGES_DIR}/share/opencv3/licenses/*") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${extra1_license_files} ${extra2_license_files}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencv3/licenses") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencv") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/opencv3/usage.in ================================================ @PORT@ is compatible with built-in CMake variables. In case of multiple OpenCV version installed, set OpenCV_ROOT *before* the find_package call: set(OpenCV_ROOT "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/share/@PORT@") find_package(OpenCV REQUIRED) ================================================ FILE: ports/opencv3/vcpkg.json ================================================ { "name": "opencv3", "version": "3.4.20", "port-version": 2, "description": "Open Source Computer Vision Library", "homepage": "https://github.com/opencv/opencv", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, "zlib" ], "default-features": [ { "name": "dnn", "platform": "!android" }, { "name": "gapi", "platform": "!uwp" }, { "name": "gtk", "platform": "linux" }, "jpeg", { "name": "msmf", "platform": "windows & !uwp & !mingw" }, "png", "quirc", "tiff", "webp" ], "features": { "bgsegm": { "description": "opencv_bgsegm module", "supports": "!arm" }, "contrib": { "description": "opencv_contrib module", "dependencies": [ { "name": "hdf5", "platform": "!uwp & !(windows & arm)" }, { "name": "opencv3", "features": [ "dnn" ], "platform": "!android" }, { "name": "tesseract", "platform": "!uwp & !(windows & arm)" } ] }, "dc1394": { "description": "Dc1394 support for opencv", "dependencies": [ "libdc1394" ] }, "dnn": { "description": "Enable dnn module", "supports": "!android", "dependencies": [ { "name": "opencv3", "features": [ "flann" ] } ] }, "eigen": { "description": "Eigen support for opencv", "dependencies": [ "eigen3" ] }, "flann": { "description": "opencv_flann module", "dependencies": [ "protobuf" ] }, "freetype": { "description": "Freetype support for opencv", "dependencies": [ "freetype", "harfbuzz" ] }, "gapi": { "description": "Enable gapi module", "supports": "!uwp" }, "gdcm": { "description": "GDCM support for opencv", "dependencies": [ "gdcm" ] }, "gstreamer": { "description": "gstreamer support for opencv", "dependencies": [ "gstreamer" ] }, "gtk": { "description": "GTK support for opencv", "supports": "linux", "dependencies": [ "gtk3" ] }, "halide": { "description": "Halide support for opencv", "supports": "!(windows & static)", "dependencies": [ "halide", { "name": "opencv3", "default-features": false, "features": [ "dnn" ] } ] }, "ipp": { "description": "Enable Intel Integrated Performance Primitives", "supports": "(osx & x64) | (windows & (x64 | x86)) | (linux & (x64 | x86))" }, "jasper": { "description": "JPEG 2000 support for opencv", "dependencies": [ "jasper" ] }, "jpeg": { "description": "JPEG support for opencv", "dependencies": [ "libjpeg-turbo" ] }, "line-descriptor": { "description": "opencv_line_descriptor module", "supports": "!arm" }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "supports": "windows & !uwp & !mingw" }, "nonfree": { "description": "allow nonfree and unredistributable libraries" }, "openexr": { "description": "OpenEXR support for opencv", "dependencies": [ "openexr" ] }, "opengl": { "description": "opengl support for opencv", "supports": "!uwp & !android", "dependencies": [ "opengl" ] }, "openmp": { "description": "Enable openmp support for opencv", "supports": "!osx" }, "ovis": { "description": "opencv_ovis module", "supports": "!(windows & static) & !android", "dependencies": [ "ogre", { "name": "opencv3", "default-features": false, "features": [ "contrib" ] } ] }, "png": { "description": "PNG support for opencv", "dependencies": [ "libpng" ] }, "python": { "description": "Python wrapper support for opencv", "dependencies": [ { "name": "opencv3", "default-features": false, "features": [ "flann" ] }, { "name": "python3", "default-features": false, "features": [ "extensions" ] } ] }, "qt": { "description": "Qt GUI support for opencv", "dependencies": [ { "name": "qt5-base", "default-features": false } ] }, "quality": { "description": "Build opencv_quality module", "supports": "!uwp", "dependencies": [ { "name": "opencv3", "default-features": false, "features": [ "contrib" ] } ] }, "quirc": { "description": "Enable QR code module", "dependencies": [ "quirc" ] }, "salicency": { "description": "opencv_salicency module", "supports": "!arm" }, "sfm": { "description": "opencv_sfm module", "dependencies": [ "ceres", "gflags", "glog", { "name": "opencv3", "default-features": false, "features": [ "contrib", "eigen", "flann" ] } ] }, "tbb": { "description": "Enable Intel Threading Building Blocks", "supports": "!static", "dependencies": [ "tbb" ] }, "tiff": { "description": "TIFF support for opencv", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "vtk": { "description": "vtk support for opencv", "supports": "!android & !uwp & !(windows & arm)", "dependencies": [ { "name": "opencv3", "features": [ "contrib" ] }, { "name": "vtk", "default-features": false } ] }, "webp": { "description": "WebP support for opencv", "dependencies": [ "libwebp" ] }, "world": { "description": "Compile to a single package support for opencv" } } } ================================================ FILE: ports/opencv4/0001-disable-downloading.patch ================================================ --- a/cmake/OpenCVDownload.cmake +++ b/cmake/OpenCVDownload.cmake @@ -206,6 +206,9 @@ function(ocv_download) # Download if(NOT EXISTS "${CACHE_CANDIDATE}") ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"") + string(REPLACE "${OPENCV_DOWNLOAD_PATH}/" "opencv-cache/" CACHE_SUBPATH "${CACHE_CANDIDATE}") + message(FATAL_ERROR " Downloads are not permitted during configure. Please pre-download the file \"${CACHE_CANDIDATE}\":\n \n vcpkg_download_distfile(OCV_DOWNLOAD\n URLS \"${DL_URL}\"\n FILENAME \"${CACHE_SUBPATH}\"\n SHA512 0\n )") + foreach(try ${OPENCV_DOWNLOAD_TRIES_LIST}) ocv_download_log("#try ${try}") file(DOWNLOAD "${DL_URL}" "${CACHE_CANDIDATE}" ================================================ FILE: ports/opencv4/0002-install-options.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -638,7 +638,7 @@ set(OPENCV_EXTRA_MODULES_PATH "" CACHE PATH "Where to look for additional OpenCV ocv_cmake_hook(POST_CMAKE_BUILD_OPTIONS) # --- Python Support --- -if(NOT IOS AND NOT XROS) +if(WITH_PYTHON) include(cmake/OpenCVDetectPython.cmake) endif() @@ -730,6 +730,7 @@ endif() # ---------------------------------------------------------------------------- # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. # ---------------------------------------------------------------------------- +find_package(PkgConfig REQUIRED) if(UNIX OR MINGW) if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG) if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR} --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -306,7 +306,6 @@ if(MSVC) #endif() if(BUILD_WITH_DEBUG_INFO) - set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} /Zi") set(OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_EXE_LINKER_FLAGS_RELEASE} /debug") set(OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_SHARED_LINKER_FLAGS_RELEASE} /debug") set(OPENCV_EXTRA_MODULE_LINKER_FLAGS_RELEASE "${OPENCV_EXTRA_MODULE_LINKER_FLAGS_RELEASE} /debug") --- a/cmake/OpenCVGenConfig.cmake +++ b/cmake/OpenCVGenConfig.cmake @@ -118,18 +118,18 @@ function(ocv_gen_config TMP_DIR NESTED_PATH ROOT_NAME) endif() endfunction() -if((CMAKE_HOST_SYSTEM_NAME MATCHES "Linux" OR UNIX) AND NOT ANDROID) +if(TRUE) ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "" "") endif() -if(ANDROID) +if(FALSE) ocv_gen_config("${CMAKE_BINARY_DIR}/unix-install" "abi-${ANDROID_NDK_ABI_NAME}" "OpenCVConfig.root-ANDROID.cmake.in") endif() # -------------------------------------------------------------------------------------------- # Part 3/3: ${BIN_DIR}/win-install/OpenCVConfig.cmake -> For use within binary installers/packages # -------------------------------------------------------------------------------------------- -if(WIN32) +if(FALSE) if(CMAKE_HOST_SYSTEM_NAME MATCHES Windows AND NOT OPENCV_SKIP_CMAKE_ROOT_CONFIG) ocv_gen_config("${CMAKE_BINARY_DIR}/win-install" "${OPENCV_INSTALL_BINARIES_PREFIX}${OPENCV_INSTALL_BINARIES_SUFFIX}" --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -1,8 +1,6 @@ file(GLOB HAAR_CASCADES haarcascades/*.xml) file(GLOB LBP_CASCADES lbpcascades/*.xml) -install(FILES ${HAAR_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/haarcascades COMPONENT libs) -install(FILES ${LBP_CASCADES} DESTINATION ${OPENCV_OTHER_INSTALL_PATH}/lbpcascades COMPONENT libs) if(INSTALL_TESTS AND OPENCV_TEST_DATA_PATH) install(DIRECTORY "${OPENCV_TEST_DATA_PATH}/" DESTINATION "${OPENCV_TEST_DATA_INSTALL_PATH}" COMPONENT "tests") ================================================ FILE: ports/opencv4/0003-force-package-requirements.patch ================================================ --- a/cmake/OpenCVFindLibsGrfmt.cmake +++ b/cmake/OpenCVFindLibsGrfmt.cmake @@ -16,6 +16,7 @@ if(WITH_ZLIB_NG) set(HAVE_ZLIB_NG YES) else() + find_package(ZLIB "${MIN_VER_ZLIB}" REQUIRED) if(BUILD_ZLIB) ocv_clear_vars(ZLIB_FOUND) else() @@ -28,8 +29,6 @@ else() set(ZLIB_FOUND TRUE) set(ZLIB_LIBRARY z) set(ZLIB_LIBRARIES z) - else() - find_package(ZLIB "${MIN_VER_ZLIB}") endif() if(ANDROID) set(CMAKE_FIND_LIBRARY_SUFFIXES ${_zlib_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) @@ -61,7 +60,7 @@ endif() if(WITH_AVIF) ocv_clear_internal_cache_vars(AVIF_LIBRARY AVIF_INCLUDE_DIR) - include(cmake/OpenCVFindAVIF.cmake) + find_package(libavif REQUIRED) if(AVIF_FOUND) set(HAVE_AVIF 1) endif() @@ -78,7 +77,7 @@ if(WITH_JPEG) set(JPEG_LIBRARIES jpeg) set(JPEG_FOUND TRUE) else() - include(FindJPEG) + find_package(JPEG REQUIRED) endif() endif() @@ -130,7 +129,7 @@ if(WITH_TIFF) set(TIFF_LIBRARIES tiff) set(TIFF_FOUND TRUE) else() - include(FindTIFF) + find_package(TIFF REQUIRED) endif() if(TIFF_FOUND) ocv_parse_header("${TIFF_INCLUDE_DIR}/tiff.h" TIFF_VERSION_LINES TIFF_VERSION_CLASSIC TIFF_VERSION_BIG TIFF_VERSION TIFF_BIGTIFF_VERSION) @@ -175,7 +174,7 @@ if(WITH_WEBP) ocv_clear_vars(WEBP_FOUND WEBP_LIBRARY WEBP_LIBRARIES WEBP_INCLUDE_DIR) else() ocv_clear_internal_cache_vars(WEBP_LIBRARY WEBP_INCLUDE_DIR) - include(cmake/OpenCVFindWebP.cmake) + find_package(WEBP NAMES WebP REQUIRED) if(WEBP_FOUND) set(HAVE_WEBP 1) endif() @@ -234,6 +233,8 @@ if(WITH_JPEGXL) if(JPEGXL_FOUND) set(HAVE_JPEGXL YES) message(STATUS "Found system JPEG-XL: ver ${JPEGXL_VERSION}") + else() + message(FATAL_ERROR "JPEG-XL is required but not found. Please install it.") endif() endif() @@ -242,7 +243,7 @@ if(WITH_OPENJPEG) if(BUILD_OPENJPEG) ocv_clear_vars(OpenJPEG_FOUND) else() - find_package(OpenJPEG QUIET) + find_package(OpenJPEG REQUIRED) endif() if(NOT OpenJPEG_FOUND OR OPENJPEG_MAJOR_VERSION LESS 2) @@ -271,7 +272,7 @@ if(WITH_JASPER AND NOT HAVE_OPENJPEG) if(BUILD_JASPER) ocv_clear_vars(JASPER_FOUND) else() - include(FindJasper) + find_package(Jasper REQUIRED) endif() if(NOT JASPER_FOUND) @@ -297,9 +298,9 @@ if(WITH_SPNG) # CMakeConfig bug in SPNG, include is missing there in version 0.7.4 and older # See https://github.com/randy408/libspng/pull/264 include(CMakeFindDependencyMacro) - find_package(SPNG QUIET) + find_package(SPNG REQUIRED) if(SPNG_FOUND) - set(SPNG_LIBRARY "spng::spng" CACHE INTERNAL "") + set(SPNG_LIBRARY "$,spng::spng,spng::spng_static>" CACHE INTERNAL "") set(SPNG_LIBRARIES ${SPNG_LIBRARY}) else() if(PkgConfig_FOUND) @@ -331,7 +332,7 @@ if(NOT HAVE_SPNG AND WITH_PNG) ocv_clear_vars(PNG_FOUND) else() ocv_clear_internal_cache_vars(PNG_LIBRARY PNG_INCLUDE_DIR) - find_package(PNG QUIET) + find_package(PNG REQUIRED) endif() if(NOT PNG_FOUND) @@ -354,7 +355,8 @@ if(WITH_OPENEXR) ocv_clear_vars(HAVE_OPENEXR) if(NOT BUILD_OPENEXR) ocv_clear_internal_cache_vars(OPENEXR_INCLUDE_PATHS OPENEXR_LIBRARIES OPENEXR_ILMIMF_LIBRARY OPENEXR_VERSION) - include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindOpenEXR.cmake") + find_package(OpenEXR CONFIG REQUIRED) + set(OPENEXR_FOUND TRUE) endif() if(OPENEXR_FOUND) @@ -374,7 +376,7 @@ endif() # --- GDAL (optional) --- if(WITH_GDAL) - find_package(GDAL QUIET) + find_package(GDAL REQUIRED) if(NOT GDAL_FOUND) set(HAVE_GDAL NO) @@ -386,7 +388,7 @@ if(WITH_GDAL) endif() if(WITH_GDCM) - find_package(GDCM QUIET) + find_package(GDCM REQUIRED) if(NOT GDCM_FOUND) set(HAVE_GDCM NO) ocv_clear_vars(GDCM_VERSION GDCM_LIBRARIES) --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt @@ -30,7 +30,7 @@ endif() if(HAVE_WEBP) add_definitions(-DHAVE_WEBP) - ocv_include_directories(${WEBP_INCLUDE_DIR}) + ocv_include_directories(${WEBP_INCLUDE_DIRS}) list(APPEND GRFMT_LIBS ${WEBP_LIBRARIES}) endif() ================================================ FILE: ports/opencv4/0004-opencl.diff ================================================ diff --git a/cmake/OpenCVDetectOpenCL.cmake b/cmake/OpenCVDetectOpenCL.cmake index 6ab2cae..8429551 100644 --- a/cmake/OpenCVDetectOpenCL.cmake +++ b/cmake/OpenCVDetectOpenCL.cmake @@ -1,13 +1,5 @@ -set(OPENCL_FOUND ON CACHE BOOL "OpenCL library is found") -if(APPLE) - set(OPENCL_LIBRARY "-framework OpenCL" CACHE STRING "OpenCL library") - set(OPENCL_INCLUDE_DIR "" CACHE PATH "OpenCL include directory") -else() - set(OPENCL_LIBRARY "" CACHE STRING "OpenCL library") - set(OPENCL_INCLUDE_DIR "${OpenCV_SOURCE_DIR}/3rdparty/include/opencl/1.2" CACHE PATH "OpenCL include directory") - ocv_install_3rdparty_licenses(opencl-headers "${OpenCV_SOURCE_DIR}/3rdparty/include/opencl/LICENSE.txt") -endif() -mark_as_advanced(OPENCL_INCLUDE_DIR OPENCL_LIBRARY) +find_package(OPENCL NAMES OpenCL) +set(OPENCL_LIBRARY OpenCL::OpenCL) if(OPENCL_FOUND) diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index 5742177..5e9633b 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -869,6 +869,7 @@ macro(ocv_glob_module_sources) set(OCL_NAME opencl_kernels_${name}) add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${OCL_NAME}.cpp" # don't add .hpp file here to optimize build process + "${CMAKE_CURRENT_BINARY_DIR}/${OCL_NAME}.hpp" # in reality vcpkg needs them COMMAND ${CMAKE_COMMAND} "-DMODULE_NAME=${name}" "-DCL_DIR=${CMAKE_CURRENT_LIST_DIR}/src/opencl" "-DOUTPUT=${CMAKE_CURRENT_BINARY_DIR}/${OCL_NAME}.cpp" -P "${OpenCV_SOURCE_DIR}/cmake/cl2cpp.cmake" DEPENDS ${cl_kernels} "${OpenCV_SOURCE_DIR}/cmake/cl2cpp.cmake" COMMENT "Processing OpenCL kernels (${name})" ================================================ FILE: ports/opencv4/0005-vulkan.diff ================================================ diff --git a/cmake/OpenCVDetectVulkan.cmake b/cmake/OpenCVDetectVulkan.cmake index b6ef0f2..2350dad 100644 --- a/cmake/OpenCVDetectVulkan.cmake +++ b/cmake/OpenCVDetectVulkan.cmake @@ -1,9 +1,11 @@ -set(VULKAN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/include" CACHE PATH "Vulkan include directory") +find_package(VulkanHeaders CONFIG) +set(VULKAN_INCLUDE_DIRS "") set(VULKAN_LIBRARIES "" CACHE PATH "Path to Vulkan Libraries.") try_compile(VALID_VULKAN "${OpenCV_BINARY_DIR}" "${OpenCV_SOURCE_DIR}/cmake/checks/vulkan.cpp" + LINK_LIBRARIES Vulkan::Headers CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:STRING=${VULKAN_INCLUDE_DIRS}" OUTPUT_VARIABLE TRY_OUT ) diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt index 382379c..6341731 100644 --- a/modules/dnn/CMakeLists.txt +++ b/modules/dnn/CMakeLists.txt @@ -110,6 +110,10 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS set(include_dirs "") set(libs "") +if(HAVE_VULKAN) + list(APPEND libs "$") +endif() + if(HAVE_PROTOBUF) ocv_target_compile_definitions(${the_module} PRIVATE "HAVE_PROTOBUF=1") ================================================ FILE: ports/opencv4/0007-contrib-fix-hdf5.patch ================================================ --- a/modules/hdf/CMakeLists.txt +++ b/modules/hdf/CMakeLists.txt @@ -1,25 +1,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}) -if(WIN32) - # windows cmake internal lookups are broken for now - # will lookup for headers and shared libs given HDF_DIR env - find_path(HDF5_INCLUDE_DIRS hdf5.h HINTS "$ENV{HDF5_DIR}\\..\\include") - find_library(HDF5_C_LIBRARY NAMES hdf5 HINTS "$ENV{HDF5_DIR}\\..\\lib") - if(HDF5_INCLUDE_DIRS AND HDF5_C_LIBRARY) - set(HDF5_FOUND "YES") - set(HDF5_LIBRARIES ${HDF5_C_LIBRARY}) - mark_as_advanced(HDF5_LIBRARIES) - mark_as_advanced(HDF5_C_LIBRARY) - mark_as_advanced(HDF5_INCLUDE_DIRS) - add_definitions(-DH5_BUILT_AS_DYNAMIC_LIB -D_HDF5USEDLL_) - else() - set(HDF5_FOUND "NO") - endif() -else() - if(NOT CMAKE_CROSSCOMPILING) # iOS build should not reuse OSX package find_package(HDF5) + set(HDF5_INCLUDE_DIRS "${HDF5_INCLUDE_DIR}") - endif() -endif() if(NOT HDF5_FOUND) ocv_module_disable(hdf) # no return ================================================ FILE: ports/opencv4/0008-devendor-quirc.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -905,7 +905,7 @@ if(WITH_OPENVX) endif() if(WITH_QUIRC) - add_subdirectory(3rdparty/quirc) + find_package(quirc CONFIG REQUIRED) set(HAVE_QUIRC TRUE) endif() --- a/modules/objdetect/CMakeLists.txt +++ b/modules/objdetect/CMakeLists.txt @@ -13,7 +13,5 @@ ocv_define_module(objdetect ) if(HAVE_QUIRC) - get_property(QUIRC_INCLUDE GLOBAL PROPERTY QUIRC_INCLUDE_DIR) - ocv_include_directories(${QUIRC_INCLUDE}) - ocv_target_link_libraries(${the_module} quirc) + ocv_target_link_libraries(${the_module} quirc::quirc) endif() ================================================ FILE: ports/opencv4/0009-fix-protobuf.patch ================================================ --- a/cmake/OpenCVFindProtobuf.cmake +++ b/cmake/OpenCVFindProtobuf.cmake @@ -34,7 +34,7 @@ else() set(protobuf_MODULE_COMPATIBLE ON) unset(Protobuf_VERSION CACHE) - find_package(Protobuf QUIET CONFIG) + find_package(Protobuf CONFIG REQUIRED) if(NOT Protobuf_FOUND) find_package(Protobuf QUIET) endif() @@ -97,6 +97,7 @@ if(HAVE_PROTOBUF) unset( __location) if(TARGET "${Protobuf_LIBRARIES}") get_target_property(__location "${Protobuf_LIBRARIES}" IMPORTED_LOCATION_RELEASE) + get_target_property(__location_debug "${Protobuf_LIBRARIES}" IMPORTED_LOCATION_DEBUG) if(NOT __location) get_target_property(__location "${Protobuf_LIBRARIES}" IMPORTED_LOCATION) endif() @@ -112,5 +113,5 @@ if(HAVE_PROTOBUF) endif() list(APPEND CUSTOM_STATUS_protobuf " Protobuf:" BUILD_PROTOBUF THEN "build (${Protobuf_VERSION})" - ELSE "${__location} (${Protobuf_VERSION})") + ELSE "optimized ${__location} debug ${__location_debug} ; version (${Protobuf_VERSION})") endif() ================================================ FILE: ports/opencv4/0010-fix-uwp-tiff-imgcodecs.patch ================================================ --- a/modules/imgcodecs/CMakeLists.txt +++ b/modules/imgcodecs/CMakeLists.txt @@ -9,6 +9,10 @@ ocv_add_module(imgcodecs opencv_imgproc WRAP java objc python) ocv_clear_vars(GRFMT_LIBS) +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4996") +endif() + if(HAVE_WINRT_CX AND NOT WINRT) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW") endif() ================================================ FILE: ports/opencv4/0012-miss-openexr.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -801,6 +801,9 @@ include(cmake/OpenCVFindLibsPerf.cmake) include(cmake/OpenCVFindLAPACK.cmake) include(cmake/OpenCVFindProtobuf.cmake) include(cmake/OpenCVDetectFlatbuffers.cmake) +if(WITH_OPENEXR) + include(cmake/OpenCVFindOpenEXR.cmake) +endif() if(WITH_TIMVX) include(cmake/OpenCVFindTIMVX.cmake) endif() ================================================ FILE: ports/opencv4/0013-contrib-fix-ogre.patch ================================================ --- a/modules/ovis/CMakeLists.txt +++ b/modules/ovis/CMakeLists.txt @@ -27,4 +27,5 @@ ocv_create_module() ocv_add_samples(opencv_objdetect opencv_aruco) ocv_warnings_disable(CMAKE_CXX_FLAGS -Wunused-parameter) +string(REPLACE "OgreGLSupportStatic" "OgreGLSupport" OGRE_LIBRARIES "${OGRE_LIBRARIES}") ocv_target_link_libraries(${the_module} ${OGRE_LIBRARIES}) ================================================ FILE: ports/opencv4/0015-fix-freetype.patch ================================================ --- a/modules/gapi/cmake/init.cmake +++ b/modules/gapi/cmake/init.cmake @@ -21,7 +21,7 @@ if(NOT TARGET ade) endif() if(WITH_FREETYPE) - ocv_check_modules(FREETYPE freetype2) + find_package(Freetype REQUIRED) if (FREETYPE_FOUND) set(HAVE_FREETYPE TRUE) endif() ================================================ FILE: ports/opencv4/0016-contrib-fix-freetype.patch ================================================ --- a/modules/freetype/CMakeLists.txt +++ b/modules/freetype/CMakeLists.txt @@ -3,8 +3,11 @@ if(APPLE_FRAMEWORK) ocv_module_disable(freetype) endif() -ocv_check_modules(FREETYPE freetype2) -ocv_check_modules(HARFBUZZ harfbuzz) +if(WITH_FREETYPE) + find_package(Freetype REQUIRED) + find_package(HARFBUZZ NAMES harfbuzz REQUIRED) + set(HARFBUZZ_LIBRARIES harfbuzz::harfbuzz) +endif() if(OPENCV_INITIAL_PASS) if(NOT FREETYPE_FOUND) ================================================ FILE: ports/opencv4/0017-fix-flatbuffers.patch ================================================ --- a/cmake/OpenCVDetectFlatbuffers.cmake +++ b/cmake/OpenCVDetectFlatbuffers.cmake @@ -1,5 +1,8 @@ if(WITH_FLATBUFFERS) set(HAVE_FLATBUFFERS 1) + find_package(flatbuffers CONFIG REQUIRED) + ocv_add_external_target(flatbuffers "" "flatbuffers::flatbuffers" "HAVE_FLATBUFFERS=1") +elseif(0) set(flatbuffers_VERSION "23.5.9") ocv_install_3rdparty_licenses(flatbuffers "${OpenCV_SOURCE_DIR}/3rdparty/flatbuffers/LICENSE.txt") ocv_add_external_target(flatbuffers "${OpenCV_SOURCE_DIR}/3rdparty/flatbuffers/include" "" "HAVE_FLATBUFFERS=1") ================================================ FILE: ports/opencv4/0018-contrib-fix-tesseract.patch ================================================ --- a/modules/text/cmake/init.cmake +++ b/modules/text/cmake/init.cmake @@ -4,6 +4,8 @@ OCV_OPTION(WITH_TESSERACT "Include Tesseract OCR library support" (NOT CMAKE_CRO if(NOT HAVE_TESSERACT AND (WITH_TESSERACT OR OPENCV_FIND_TESSERACT) ) + find_package(Tesseract CONFIG REQUIRED) + set(Tesseract_LIBRARIES Tesseract::libtesseract) if(NOT Tesseract_FOUND) find_package(Tesseract QUIET) # Prefer CMake's standard locations (including Tesseract_DIR) endif() ================================================ FILE: ports/opencv4/0020-fix-narrow-filesystem.diff ================================================ diff --git a/modules/core/src/utils/filesystem.cpp b/modules/core/src/utils/filesystem.cpp index 0a44d48..2d609fd 100644 --- a/modules/core/src/utils/filesystem.cpp +++ b/modules/core/src/utils/filesystem.cpp @@ -439,7 +439,7 @@ cv::String getCacheDirectory(const char* sub_directory_name, const char* configu cv::String default_cache_path; #ifdef _WIN32 char tmp_path_buf[MAX_PATH+1] = {0}; - DWORD res = GetTempPath(MAX_PATH, tmp_path_buf); + DWORD res = GetTempPathA(MAX_PATH, tmp_path_buf); if (res > 0 && res <= MAX_PATH) { default_cache_path = tmp_path_buf; ================================================ FILE: ports/opencv4/0021-fix-qt-gen-def.patch ================================================ diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index f0a668e..6fafa33 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -125,8 +125,6 @@ elseif(HAVE_QT) endif() foreach(dt_dep ${qt_deps}) - add_definitions(${Qt${QT_VERSION_MAJOR}${dt_dep}_DEFINITIONS}) - include_directories(${Qt${QT_VERSION_MAJOR}${dt_dep}_INCLUDE_DIRS}) list(APPEND HIGHGUI_LIBRARIES ${Qt${QT_VERSION_MAJOR}${dt_dep}_LIBRARIES}) endforeach() else() ================================================ FILE: ports/opencv4/0022-android-use-vcpkg-cpu-features.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 79a0c96270..e6b1aefb9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -789,7 +789,9 @@ endif() # ---------------------------------------------------------------------------- if(ANDROID AND WITH_CPUFEATURES) - add_subdirectory(3rdparty/cpufeatures) + find_package(CpuFeaturesNdkCompat CONFIG REQUIRED) + set(CPUFEATURES_INCLUDE_DIRS "") + set(CPUFEATURES_LIBRARIES CpuFeatures::ndk_compat) set(HAVE_CPUFEATURES 1) endif() ================================================ FILE: ports/opencv4/0023-ffmpeg8-support.patch ================================================ diff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp index d2359b0..bf5832f 100644 --- a/modules/videoio/src/cap_ffmpeg_impl.hpp +++ b/modules/videoio/src/cap_ffmpeg_impl.hpp @@ -685,7 +685,10 @@ void CvCapture_FFMPEG::close() if( video_st ) { #ifdef CV_FFMPEG_CODECPAR +// avcodec_close removed in FFmpeg release 8.0 +# if (LIBAVCODEC_BUILD < CALC_FFMPEG_VERSION(62, 11, 100)) avcodec_close( context ); +# endif #endif video_st = NULL; } @@ -2005,7 +2008,21 @@ void CvCapture_FFMPEG::get_rotation_angle() rotation_angle = 0; #if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(57, 68, 100) const uint8_t *data = 0; + // av_stream_get_side_data removed in FFmpeg release 8.0 +# if (LIBAVCODEC_BUILD < CALC_FFMPEG_VERSION(62, 11, 100)) data = av_stream_get_side_data(video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); +# else + AVPacketSideData* sd = video_st->codecpar->coded_side_data; + int nb_sd = video_st->codecpar->nb_coded_side_data; + if (sd && nb_sd > 0) + { + const AVPacketSideData* mtx = av_packet_side_data_get(sd, nb_sd, AV_PKT_DATA_DISPLAYMATRIX); + if (mtx) + { + data = mtx->data; + } + } +# endif if (data) { rotation_angle = -cvRound(av_display_rotation_get((const int32_t*)data)); ================================================ FILE: ports/opencv4/portfile.cmake ================================================ set(USE_QT_VERSION "6") # fix to get version from eigen after v3.4.0 vcpkg_download_distfile( PATCH1_FILE URLS https://github.com/opencv/opencv/commit/468de9b36740b3355f0d5cd8be2ce28b340df120.patch?full_index=1 SHA512 09ee552fcd9a96359230104d7bf8610a63e05d743a3b51d58c6469331729a6440444e05c616464380dbebaefdd7ee6fb06cac5fc70694af85f9c8d40201aad10 FILENAME 468de9b36740b3355f0d5cd8be2ce28b340df120.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opencv/opencv REF "${VERSION}" SHA512 8ac63ddd61e22cc0eaeafee4f30ae6e1cab05fc4929e2cea29070203b9ca8dfead12cc0fd7c4a87b65c1e20ec6b9ab4865a1b83fad33d114fc0708fdf107c51b HEAD_REF master PATCHES 0001-disable-downloading.patch 0002-install-options.patch 0003-force-package-requirements.patch 0004-opencl.diff 0005-vulkan.diff 0008-devendor-quirc.patch 0009-fix-protobuf.patch 0010-fix-uwp-tiff-imgcodecs.patch 0012-miss-openexr.patch 0015-fix-freetype.patch 0017-fix-flatbuffers.patch 0020-fix-narrow-filesystem.diff 0021-fix-qt-gen-def.patch 0022-android-use-vcpkg-cpu-features.patch 0023-ffmpeg8-support.patch "${PATCH1_FILE}" ) # Disallow accidental build of vendored copies file(GLOB third_party "${SOURCE_PATH}/3rdparty/*") list(FILTER third_party EXCLUDE REGEX "/ippicv\$") file(REMOVE_RECURSE ${third_party}) file(REMOVE "${SOURCE_PATH}/cmake/FindCUDNN.cmake") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(TARGET_IS_AARCH64 1) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) # cf. https://github.com/opencv/opencv/issues/25052, https://github.com/opencv/opencv/pull/27897 list(APPEND ADDITIONAL_BUILD_FLAGS -DHAVE_CPU_NEON_FP16_SUPPORT=0 -DHAVE_CPU_NEON_DOTPROD_SUPPORT=0) endif() elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(TARGET_IS_ARM 1) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(TARGET_IS_X86_64 1) else() set(TARGET_IS_X86 1) endif() if (USE_QT_VERSION STREQUAL "6") set(QT_CORE5COMPAT "Core5Compat") set(QT_OPENGLWIDGETS "OpenGLWidgets") endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) set(ADE_DIR ${CURRENT_INSTALLED_DIR}/share/ade CACHE PATH "Path to existing ADE CMake Config file") set(WITH_CPUFEATURES OFF) if (VCPKG_TARGET_IS_ANDROID) set(WITH_CPUFEATURES ON) endif() # Cannot use vcpkg_check_features() for "qt" because it requires the QT version number passed, not just a boolean vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "ade" WITH_ADE "aravis" WITH_ARAVIS "calib3d" BUILD_opencv_calib3d "carotene" WITH_CAROTENE "contrib" WITH_CONTRIB "cuda" WITH_CUBLAS "cuda" WITH_CUDA "cuda" ENABLE_CUDA_FIRST_CLASS_LANGUAGE "cudnn" WITH_CUDNN "dc1394" WITH_1394 "directml" WITH_DIRECTML "dnn" BUILD_opencv_dnn "dnn" PROTOBUF_UPDATE_FILES "dnn" UPDATE_PROTO_FILES "dnn" WITH_FLATBUFFERS "dnn" WITH_PROTOBUF "dnn-cuda" OPENCV_DNN_CUDA "dshow" WITH_DSHOW "eigen" WITH_EIGEN "eigen" VCPKG_LOCK_FIND_PACKAGE_Eigen3 "ffmpeg" WITH_FFMPEG "freetype" WITH_FREETYPE "gapi" BUILD_opencv_gapi "gdcm" WITH_GDCM "gstreamer" WITH_GSTREAMER "gtk" WITH_GTK "halide" WITH_HALIDE "hdf" BUILD_opencv_hdf "highgui" BUILD_opencv_highgui "intrinsics" CV_ENABLE_INTRINSICS "ipp" WITH_IPP "ipp" BUILD_IPP_IW "openjpeg" WITH_OPENJPEG "openmp" WITH_OPENMP "jpeg" WITH_JPEG "jpegxl" WITH_JPEGXL "msmf" WITH_MSMF "nonfree" OPENCV_ENABLE_NONFREE "thread" OPENCV_ENABLE_THREAD_SUPPORT "opencl" WITH_OPENCL "openvino" WITH_OPENVINO "openexr" WITH_OPENEXR "opengl" WITH_OPENGL "ovis" CMAKE_REQUIRE_FIND_PACKAGE_OGRE "ovis" BUILD_opencv_ovis "png" WITH_PNG "python" BUILD_opencv_python3 "python" WITH_PYTHON "quality" BUILD_opencv_quality "quirc" WITH_QUIRC "rgbd" BUILD_opencv_rgbd "sfm" BUILD_opencv_sfm "tbb" WITH_TBB "text" BUILD_opencv_text "text" WITH_TESSERACT "tiff" WITH_TIFF "vtk" WITH_VTK "vulkan" WITH_VULKAN "webp" WITH_WEBP "win32ui" WITH_WIN32UI "world" BUILD_opencv_world INVERTED_FEATURES "fs" OPENCV_DISABLE_FILESYSTEM_SUPPORT ) if("dnn" IN_LIST FEATURES) set(FLATC "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers/flatc${VCPKG_HOST_EXECUTABLE_SUFFIX}") vcpkg_execute_required_process( COMMAND "${FLATC}" --cpp -o "${SOURCE_PATH}/modules/dnn/misc/tflite" "${SOURCE_PATH}/modules/dnn/src/tflite/schema.fbs" WORKING_DIRECTORY "${SOURCE_PATH}/modules/dnn/misc/tflite" LOGNAME flatc-${TARGET_TRIPLET} ) endif() set(WITH_QT OFF) if("qt" IN_LIST FEATURES) set(WITH_QT ${USE_QT_VERSION}) endif() if("python" IN_LIST FEATURES) if(EXISTS "${CURRENT_INSTALLED_DIR}/${PYTHON3_SITE}/cv2") message(FATAL_ERROR "You cannot install opencv4[python] if opencv3[python] is already present.") endif() x_vcpkg_get_python_packages(PYTHON_VERSION "3" PACKAGES numpy OUT_PYTHON_VAR "PYTHON3") set(ENV{PYTHON} "${PYTHON3}") file(GLOB _py3_include_path "${CURRENT_INSTALLED_DIR}/include/python3*") string(REGEX MATCH "python3\\.([0-9]+)" _python_version_tmp ${_py3_include_path}) set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_1}") set(python_ver "3.${PYTHON_VERSION_MINOR}") list(APPEND PYTHON_EXTRA_DEFINES_RELEASE "-D__INSTALL_PATH_PYTHON3=${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2" "-DOPENCV_PYTHON_INSTALL_PATH=${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}" ) list(APPEND PYTHON_EXTRA_DEFINES_DEBUG "-D__INSTALL_PATH_PYTHON3=${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2" "-DOPENCV_PYTHON_INSTALL_PATH=${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}" ) endif() if("dnn" IN_LIST FEATURES) vcpkg_download_distfile(TINYDNN_ARCHIVE URLS "https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz" FILENAME "opencv-cache/tiny_dnn/adb1c512e09ca2c7a6faef36f9c53e59-v1.0.0a3.tar.gz" SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b ) endif() if("cuda" IN_LIST FEATURES) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://github.com/NVIDIA/NVIDIAOpticalFlowSDK/archive/edb50da3cf849840d680249aa6dbef248ebce2ca.zip" FILENAME "opencv-cache/nvidia_optical_flow/a73cd48b18dcc0cc8933b30796074191-edb50da3cf849840d680249aa6dbef248ebce2ca.zip" SHA512 12d655ac9fcfc6df0186daa62f7185dadd489f0eeea25567d78c2b47a9840dcce2bd03a3e9b3b42f125dbaf3150f52590ea7597dc1dc8acee852dc0aed56651e ) endif() if(VCPKG_TARGET_IS_ANDROID AND (VCPKG_TARGET_ARCHITECTURE MATCHES "^arm")) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://gitlab.arm.com/kleidi/kleidicv/-/archive/0.5.0/kleidicv-0.5.0.tar.gz" FILENAME "opencv-cache/kleidicv/ba5648f8df678548f337d19d8ac607d6-kleidicv-0.5.0.tar.gz" SHA512 81b3bd441dae10407ce2646b7bc2f099cdfb72600429040d78d1b53fae44d527b37c5191a29a0e29985717d52a27e8d1e6d2fbc559e616aa612ace30ec82fe6e ) endif() if("contrib" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH CONTRIB_SOURCE_PATH REPO opencv/opencv_contrib REF "${VERSION}" SHA512 574121ca57328671741413df91fbf600cc04bb9a9beeacfb7bc20c15b2b4e8c9e031df30aafbcc34f82d85edfb098e5d008a744f4e6d833d6e47537a042045c6 HEAD_REF master PATCHES 0007-contrib-fix-hdf5.patch 0013-contrib-fix-ogre.patch 0016-contrib-fix-freetype.patch 0018-contrib-fix-tesseract.patch ) set(BUILD_WITH_CONTRIB_FLAG "-DOPENCV_EXTRA_MODULES_PATH=${CONTRIB_SOURCE_PATH}/modules") vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/detect.caffemodel" FILENAME "opencv-cache/wechat_qrcode/238e2b2d6f3c18d6c3a30de0c31e23cf-detect.caffemodel" SHA512 58d62faf8679d3f568a26a1d9f7c2e88060426a440315ca8bce7b3b5a8efa34be670afd0abfd0dd5d89f89a042a2408ea602f937080abc6910c2e497b7f5a4b8 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/sr.caffemodel" FILENAME "opencv-cache/wechat_qrcode/cbfcd60361a73beb8c583eea7e8e6664-sr.caffemodel" SHA512 917c6f6b84a898b8c8c85c79359e48a779c8a600de563dac2e1c5d013401e9ac9dbcd435013a4ed7a69fc936839fb189aaa3038c127d04ceb6fd3b8fd9dd67bd ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/detect.prototxt" FILENAME "opencv-cache/wechat_qrcode/6fb4976b32695f9f5c6305c19f12537d-detect.prototxt" SHA512 2239d31a597049f358f09dbb4c0a7af0b384d9b67cfa3224f8c7e44329647cf19ee7929ac06199cca23bbbf431de0481b74ab51eace6aa20bb2e2fd19b536e49 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/WeChatCV/opencv_3rdparty/a8b69ccc738421293254aec5ddb38bd523503252/sr.prototxt" FILENAME "opencv-cache/wechat_qrcode/69db99927a70df953b471daaba03fbef-sr.prototxt" SHA512 6b715ec45c3fd081e7e113e351edcef0f3d32a75f8b5a9ca2273cb5da9a1116a1b78cba45582a9acf67a7ab76dc4fcdf123f7b3a0d3de2f5c39b26ef450058b7 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i" SHA512 5c8702a60314fac4ebb6dafb62a603948ec034058d1a582fcb89a063b51511802c02e192eadfc0b233b1f711f4c74cabab6d9ebe8a50c3554ea0ccdbef87dc5c ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i" SHA512 b28ba2b615e0755ff0f6733b567682800fb9e7d522250aa498075cc1b8927f4177cacdcb0cfdf712539a29c4773232dc714931b6d292292b091b5cf170b203a6 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i" SHA512 c214045c3730a1d9dfc594f70895edf82d2fd3058a3928908627014371e02460d052cbaedf41bb96cf76460c0a8b4b01b7b0ac7d269ec5d3f17f2a46c9f0091b ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i" SHA512 f32240a7b975233d2bbad02fdb74c6e29ed71ed6f0c08172ca33eb1e69a7a7f6d6964adf41422213a0452121a9c4bb2effe3d7b9d6743c9bf58d4bc8c9b1db36 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i" SHA512 f58e2bebfaa690d324691a6c2067d9a1e5267037ea0f2b397966289253b9efd27d8238aff6206e95262086e1fcddf01ae1a1c49f066a8bbac3aa7908214b9a8f ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i" SHA512 351ee07b9714a379c311f293d96e99f001c894393c911a421b4c536345d43c02ba2d867e9f657eac104841563045ab8c8edab878e5ffeb1e1a7494375ef58987 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i" FILENAME "opencv-cache/xfeatures2d/boostdesc/0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i" SHA512 7fa12e2207ff154acf2433bbb4f3f47aa71d1fa8789493b688d635d20586b7ead30ee8dcd3b3753992ebbe98062cbde44d02683db1c563d52e35aefd7912a4f2 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i" FILENAME "opencv-cache/xfeatures2d/vgg/e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i" SHA512 2403e9119738261a05a3116ca7e5c9e11da452c422f8670cd96ad2cb5bf970f76172e23b9913a3172adf06f2b31bee956f605b66dbccf3d706c4334aff713774 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i" FILENAME "opencv-cache/xfeatures2d/vgg/7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i" SHA512 2c954223677905f489b01988389ac80a8caa33bdb57adb3cb9409075012b5e2f472f14966d8be75d75c90c9330f66d59c69539dc6b5a5e265a4d98ff5041f0ea ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i" FILENAME "opencv-cache/xfeatures2d/vgg/7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i" SHA512 9931ad1d1bd6d11951ca5357ab0a524f6ff9b33f936ceeafebc0dafb379ec7e2105e467443e9f424f60a0f2f445bdff821ed9e42330abed883227183ebad4a9e ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i" FILENAME "opencv-cache/xfeatures2d/vgg/151805e03568c9f490a5e3a872777b75-vgg_generated_120.i" SHA512 ad7c1d2b159ab5790c898815663bb90549f1cf7ade3c82d939d381608b26d26c5b2af01eb1ba21f4d114ced74586ab3fc83f14e2d8cfe4e6faac538aa0e7e255 ) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat" FILENAME "opencv-cache/data/7505c44ca4eb54b4ab1e4777cb96ac05-face_landmark_model.dat" SHA512 c16e60a6c4bb4de3ab39b876ae3c3f320ea56f69c93e9303bd2dff8760841dcd71be4161fff8bc71e8fe4fe8747fa8465d49d6bd8f5ebcdaea161f4bc2da7c93 ) endif() if("ipp" IN_LIST FEATURES) # cf. /3rdparty/ippicv/ippicv.cmake set(key NOTFOUND) if(VCPKG_TARGET_IS_WINDOWS) elseif(VCPKG_TARGET_IS_OSX) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/767426b2a40a011eb2fa7f44c677c13e60e205ad/ippicv/ippicv_2022.1.0_win_intel64_20250130_general.zip" FILENAME "opencv-cache/ippicv/67a611ab22410f392239bddff6f91df7-ippicv_2022.1.0_win_intel64_20250130_general.zip" SHA512 3a3d8a0aa4279dcbede489039eee3effea5263575fdd0a2d79dd14c0af48f90680fa7ce8567cbc47e9fec88e21d3d674a53c5939ded2d065b07e25fdefa690aa ) elseif(VCPKG_TARGET_IS_LINUX) set(key "linux-${VCPKG_TARGET_ARCHITECTURE}") endif() # For convenient updates, use # vcpkg install opencv4[core,ipp] --cmake-args=-DVCPKG_OPENCV4_UPDATE=1 if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_OPENCV4_UPDATE) if(VCPKG_TARGET_IS_APPLE OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a/ippicv/ippicv_2021.9.1_mac_intel64_20230919_general.tgz" FILENAME "opencv-cache/ippicv/67a611ab22410f392239bddff6f91df7-ippicv_2021.9.1_mac_intel64_20230919_general.tgz" SHA512 e53aa1bf4336a94554bf40c29a74c85f595c0aec8d9102a158db7ae075db048c1ff7f50ed81eda3ac8e07b1460862970abc820073a53c0f237e584708c5295da ) endif() if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/767426b2a40a011eb2fa7f44c677c13e60e205ad/ippicv/ippicv_2022.1.0_win_intel64_20250130_general.zip" FILENAME "opencv-cache/ippicv/67a611ab22410f392239bddff6f91df7-ippicv_2022.1.0_win_intel64_20250130_general.zip" SHA512 3a3d8a0aa4279dcbede489039eee3effea5263575fdd0a2d79dd14c0af48f90680fa7ce8567cbc47e9fec88e21d3d674a53c5939ded2d065b07e25fdefa690aa ) endif() if(NOT (VCPKG_TARGET_IS_APPLE OR VCPKG_TARGET_IS_WINDOWS) OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/767426b2a40a011eb2fa7f44c677c13e60e205ad/ippicv/ippicv_2022.1.0_lnx_intel64_20250130_general.tgz" FILENAME "opencv-cache/ippicv/98ff71fc242d52db9cc538388e502f57-ippicv_2022.1.0_lnx_intel64_20250130_general.tgz" SHA512 4fe385d3b589ebac7f319c48d05214fad8f3c52fb5c8cf1fc40807a2ad7a7e9019949ad8832dd8b84f9200a5c51071175a873358eab2cb8f75ef00fbd162ad73 ) endif() endif() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_OPENCV4_UPDATE) if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/7f55c0c26be418d494615afca15218566775c725/ippicv/ippicv_2021.12.0_win_ia32_20240425_general.zip" FILENAME "opencv-cache/ippicv/8b1d2a23957d57624d0de8f2a5cae5f1-ippicv_2021.12.0_win_ia32_20240425_general.zip" SHA512 494f66af4eec3030fe6d2b58b89267d566fcb31f445d15cc69818d423c41fd950dc55d10694bdf91e3204ae6b13b68cc2375a2ad396b2008596c53aa0d39f4dd ) endif() if(VCPKG_TARGET_IS_ANDROID OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/c7c6d527dde5fee7cb914ee9e4e20f7436aab3a1/ippicv/ippicv_2021.10.1_lnx_ia32_20231206_general.tgz" FILENAME "opencv-cache/ippicv/d9510f3ce08f6074aac472a5c19a3b53-ippicv_2021.10.1_lnx_ia32_20231206_general.tgz" SHA512 2e709926dfb2f31bf7759ced2db83a5f966bc44b95faedabeb05623529249ccbd689746821870c0b300de834a688cf1767d1fb653aeb06ca0973c6217d2cf94d ) endif() if(NOT (VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_APPLE OR VCPKG_TARGET_IS_WINDOWS) OR VCPKG_OPENCV4_UPDATE) vcpkg_download_distfile(OCV_DOWNLOAD URLS "https://raw.githubusercontent.com/opencv/opencv_3rdparty/7f55c0c26be418d494615afca15218566775c725/ippicv/ippicv_2021.12.0_lnx_ia32_20240425_general.tgz" FILENAME "opencv-cache/ippicv/85ffa2b9ed7802b93c23fa27b0097d36-ippicv_2021.12.0_lnx_ia32_20240425_general.tgz" SHA512 e3391ca0e8ed2235e32816cee55293ddd7c312a8c8ba42b1301cbb8752c6b7d47139ab3fe2aa8dd3e1670221e911cc96614bbc066e2bf9a653607413126b5ff1 ) endif() endif() if(VCPKG_OPENCV4_UPDATE) message(STATUS "All downloads are up-to-date.") message(FATAL_ERROR "Stopping due to VCPKG_OPENCV4_UPDATE being enabled.") endif() endif() if("ffmpeg" IN_LIST FEATURES) if(VCPKG_TARGET_IS_UWP) set(VCPKG_C_FLAGS "/sdl- ${VCPKG_C_FLAGS}") set(VCPKG_CXX_FLAGS "/sdl- ${VCPKG_CXX_FLAGS}") endif() endif() if("halide" IN_LIST FEATURES) list(APPEND ADDITIONAL_BUILD_FLAGS # Halide 13 requires C++17 "-DCMAKE_CXX_STANDARD_REQUIRED=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_Halide=ON" "-DHALIDE_ROOT_DIR=${CURRENT_INSTALLED_DIR}" ) endif() if("qt" IN_LIST FEATURES) list(APPEND ADDITIONAL_BUILD_FLAGS "-DCMAKE_AUTOMOC=ON") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ###### Verify that required components and only those are enabled -DENABLE_CONFIG_VERIFICATION=ON ###### opencv cpu recognition is broken, always using host and not target: here we bypass that -DOPENCV_SKIP_SYSTEM_PROCESSOR_DETECTION=TRUE -DAARCH64=${TARGET_IS_AARCH64} -DX86_64=${TARGET_IS_X86_64} -DX86=${TARGET_IS_X86} -DARM=${TARGET_IS_ARM} ###### use c++17 to enable features that fail with c++11 (halide, protobuf, etc.) -DCMAKE_CXX_STANDARD=17 ###### ocv installation dir options -DINSTALL_TO_MANGLED_PATHS=OFF -DOpenCV_INSTALL_BINARIES_PREFIX= -DOPENCV_BIN_INSTALL_PATH=bin -DOPENCV_CONFIG_INSTALL_PATH=share/opencv4 -DOPENCV_INCLUDE_INSTALL_PATH=include/opencv4 -DOPENCV_LIB_INSTALL_PATH=lib -DOPENCV_3P_LIB_INSTALL_PATH=lib/manual-link/opencv4_thirdparty ###### ocv_options -DCV_TRACE=OFF -DCMAKE_DEBUG_POSTFIX=d -DOPENCV_DEBUG_POSTFIX=d -DOPENCV_DLLVERSION=4 -DOPENCV_FFMPEG_USE_FIND_PACKAGE=FFMPEG -DOPENCV_FFMPEG_SKIP_BUILD_CHECK=TRUE -DOPENCV_FORCE_EIGEN_FIND_PACKAGE_CONFIG=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DOPENCV_GENERATE_SETUPVARS=OFF -DOPENCV_PYTHON2_SKIP_DETECTION=ON # Do not build docs/examples/tests -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF ###### Disable build 3rd party libs -DBUILD_IPP_IW=OFF -DBUILD_ITT=OFF -DBUILD_JASPER=OFF -DBUILD_JPEG=OFF -DBUILD_OPENEXR=OFF -DBUILD_OPENJPEG=OFF -DBUILD_PNG=OFF -DBUILD_PROTOBUF=OFF -DBUILD_TBB=OFF -DBUILD_TIFF=OFF -DBUILD_WEBP=OFF -DBUILD_ZLIB=OFF ###### OpenCV Build components -DBUILD_opencv_apps=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_js=OFF -DBUILD_JAVA=OFF -DBUILD_ANDROID_PROJECT=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_PACKAGE=OFF -DBUILD_WITH_DEBUG_INFO=ON -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} -DCURRENT_INSTALLED_DIR=${CURRENT_INSTALLED_DIR} ###### PYLINT/FLAKE8 -DENABLE_PYLINT=OFF -DENABLE_FLAKE8=OFF # CMAKE/VCPKG -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCMAKE_DISABLE_FIND_PACKAGE_JNI=ON -DVCPKG_LOCK_FIND_PACKAGE_Iconv=OFF # optional for contrib/wechat_qrcode ###### OPENCV vars "-DOPENCV_DOWNLOAD_PATH=${DOWNLOADS}/opencv-cache" ${BUILD_WITH_CONTRIB_FLAG} -DOPENCV_OTHER_INSTALL_PATH=share/opencv4 ###### customized properties ${FEATURE_OPTIONS} -Dade_DIR=${ADE_DIR} -DWITH_AVIF=OFF -DWITH_CPUFEATURES=${WITH_CPUFEATURES} -DWITH_ITT=OFF -DWITH_JASPER=OFF #Jasper is deprecated and will be removed in a future release, and is mutually exclusive with openjpeg that is preferred -DWITH_LAPACK=OFF -DWITH_MATLAB=OFF -DWITH_NVCUVID=OFF -DWITH_NVCUVENC=OFF -DWITH_OBSENSOR=OFF -DWITH_OPENCL_D3D11_NV=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_QT=${WITH_QT} -DWITH_SPNG=OFF #spng is mutually exclusive with png, which has been chosen since it's more widely used -DWITH_VA=OFF -DWITH_VA_INTEL=OFF -DWITH_ZLIB_NG=OFF ###### Additional build flags ${ADDITIONAL_BUILD_FLAGS} OPTIONS_RELEASE ${PYTHON_EXTRA_DEFINES_RELEASE} OPTIONS_DEBUG ${PYTHON_EXTRA_DEFINES_DEBUG} MAYBE_UNUSED_VARIABLES OPENCV_FORCE_EIGEN_FIND_PACKAGE_CONFIG OPENCV_PYTHON2_SKIP_DETECTION VCPKG_LOCK_FIND_PACKAGE_Eigen3 VCPKG_LOCK_FIND_PACKAGE_Iconv ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if (NOT VCPKG_BUILD_TYPE) # Update debug paths for libs in Android builds (e.g. sdk/native/staticlibs/armeabi-v7a) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/opencv4/OpenCVModules-debug.cmake" "\${_IMPORT_PREFIX}/sdk" "\${_IMPORT_PREFIX}/debug/sdk" IGNORE_UNCHANGED ) endif() file(READ "${CURRENT_PACKAGES_DIR}/share/opencv4/OpenCVModules.cmake" OPENCV_MODULES) set(DEPS_STRING "include(CMakeFindDependencyMacro) if(${BUILD_opencv_dnn} AND NOT TARGET libprotobuf) #Check if the CMake target libprotobuf is already defined find_dependency(Protobuf CONFIG REQUIRED) if(TARGET protobuf::libprotobuf) add_library (libprotobuf INTERFACE IMPORTED) set_target_properties(libprotobuf PROPERTIES INTERFACE_LINK_LIBRARIES protobuf::libprotobuf ) else() add_library (libprotobuf UNKNOWN IMPORTED) set_target_properties(libprotobuf PROPERTIES IMPORTED_LOCATION \"${Protobuf_LIBRARY}\" INTERFACE_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" INTERFACE_SYSTEM_INCLUDE_DIRECTORIES \"${Protobuf_INCLUDE_DIR}\" ) endif() endif() find_dependency(Threads) if(ANDROID) find_dependency(CpuFeaturesNdkCompat CONFIG) endif()") if("ade" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(ade)") endif() if("dnn" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(flatbuffers CONFIG)") endif() if("eigen" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Eigen3 CONFIG)") endif() if("ffmpeg" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(FFMPEG)") endif() if("freetype" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(harfbuzz)") endif() if("gdcm" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(GDCM)") endif() if("hdf" IN_LIST FEATURES) string(APPEND DEPS_STRING "\n # C language is required for try_compile tests in FindHDF5 enable_language(C) find_dependency(HDF5)") endif() if("omp" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenMP)") endif() if("opencl" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenCL CONFIG)") endif() if("openexr" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenEXR CONFIG)") endif() if("openjpeg" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenJPEG)") endif() if("openvino" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OpenVINO CONFIG)") endif() if("ovis" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(OGRE)") endif() if("qt" IN_LIST FEATURES) string(APPEND DEPS_STRING " set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON)") if("opengl" IN_LIST FEATURES) string(APPEND DEPS_STRING " find_dependency(Qt${USE_QT_VERSION} COMPONENTS Core Gui Widgets Test Concurrent ${QT_CORE5COMPAT} OpenGL ${QT_OPENGLWIDGETS})") else() string(APPEND DEPS_STRING " find_dependency(Qt${USE_QT_VERSION} COMPONENTS Core Gui Widgets Test Concurrent ${QT_CORE5COMPAT})") endif() endif() if("quirc" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(quirc)") endif() if("sfm" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(gflags CONFIG)\nfind_dependency(Ceres CONFIG)") endif() if("tbb" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(TBB)") endif() if("text" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(Tesseract)") endif() if("tiff" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(TIFF)") endif() if("vtk" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(VTK)") endif() if("vulkan" IN_LIST FEATURES) string(APPEND DEPS_STRING "\nfind_dependency(VulkanHeaders CONFIG)") endif() string(REPLACE "set(CMAKE_IMPORT_FILE_VERSION 1)" "set(CMAKE_IMPORT_FILE_VERSION 1)\n${DEPS_STRING}" OPENCV_MODULES "${OPENCV_MODULES}") if("openmp" IN_LIST FEATURES) string(REPLACE "set_target_properties(opencv_core PROPERTIES INTERFACE_LINK_LIBRARIES \"" "set_target_properties(opencv_core PROPERTIES INTERFACE_LINK_LIBRARIES \"\$;" OPENCV_MODULES "${OPENCV_MODULES}") endif() if("ovis" IN_LIST FEATURES) string(REPLACE "OgreGLSupportStatic" "OgreGLSupport" OPENCV_MODULES "${OPENCV_MODULES}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/opencv4/OpenCVModules.cmake" "${OPENCV_MODULES}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() if(VCPKG_TARGET_IS_ANDROID) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/README.android") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/README.android") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2/typing") file(GLOB PYTHON3_SITE_FILES "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2/*.py") foreach(PYTHON3_SITE_FILE ${PYTHON3_SITE_FILES}) vcpkg_replace_string("${PYTHON3_SITE_FILE}" "os.path.join('${CURRENT_PACKAGES_DIR}'" "os.path.join('.'" IGNORE_UNCHANGED ) vcpkg_replace_string("${PYTHON3_SITE_FILE}" "os.path.join('${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/cv2'" "os.path.join('.'" IGNORE_UNCHANGED ) endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2/typing") file(GLOB PYTHON3_SITE_FILES_DEBUG "${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2/*.py") foreach(PYTHON3_SITE_FILE_DEBUG ${PYTHON3_SITE_FILES_DEBUG}) vcpkg_replace_string("${PYTHON3_SITE_FILE_DEBUG}" "os.path.join('${CURRENT_PACKAGES_DIR}/debug'" "os.path.join('.'" IGNORE_UNCHANGED ) vcpkg_replace_string("${PYTHON3_SITE_FILE_DEBUG}" "os.path.join('${CURRENT_PACKAGES_DIR}/debug/${PYTHON3_SITE}/cv2'" "os.path.join('.'" IGNORE_UNCHANGED ) endforeach() if (EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lQt6::Core5Compat" "-lQt6Core5Compat" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lhdf5::hdf5-static" "-lhdf5" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lglog::glog" "-lglog" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lgflags::gflags_static" "-lgflags" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lTesseract::libtesseract" "-ltesseract" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "-lharfbuzz::harfbuzz" "-lharfbuzz" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opencv4.pc" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/" "\${prefix}" IGNORE_UNCHANGED ) endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lQt6::Core5Compat" "-lQt6Core5Compat" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lhdf5::hdf5-static" "-lhdf5" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lglog::glog" "-lglog" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lgflags::gflags_static" "-lgflags" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lTesseract::libtesseract" "-ltesseract" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "-lharfbuzz::harfbuzz" "-lharfbuzz" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opencv4.pc" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/" "\${prefix}" IGNORE_UNCHANGED ) endif() vcpkg_fixup_pkgconfig() configure_file("${CURRENT_PORT_DIR}/usage.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") file(GLOB_RECURSE extra1_license_files "${CURRENT_PACKAGES_DIR}/share/licenses/*") file(GLOB_RECURSE extra2_license_files "${CURRENT_PACKAGES_DIR}/share/opencv4/licenses/*") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${extra1_license_files} ${extra2_license_files}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencv4/licenses") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/opencv") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/opencv4/usage.in ================================================ @PORT@ is compatible with built-in CMake variables. In case of multiple OpenCV version installed, set OpenCV_ROOT *before* the find_package call: set(OpenCV_ROOT "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/share/@PORT@") find_package(OpenCV REQUIRED) ================================================ FILE: ports/opencv4/vcpkg.json ================================================ { "name": "opencv4", "version": "4.12.0", "port-version": 1, "description": "Open Source Computer Vision Library", "homepage": "https://opencv.org/", "documentation": "https://docs.opencv.org/4.12.0/", "license": null, "dependencies": [ { "name": "cpu-features", "platform": "android" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, "zlib" ], "default-features": [ "calib3d", { "name": "directml", "platform": "windows & !uwp & !mingw" }, "dnn", { "name": "dshow", "platform": "windows & !uwp" }, "fs", { "name": "gapi", "platform": "!uwp" }, { "name": "gtk", "platform": "linux" }, "highgui", "intrinsics", "jpeg", { "name": "msmf", "platform": "windows & !uwp & !mingw" }, "png", "quirc", "thread", "tiff", "webp", { "name": "win32ui", "platform": "windows & !uwp" } ], "features": { "ade": { "description": "graph api", "dependencies": [ "ade" ] }, "aravis": { "description": "aravis", "dependencies": [ { "name": "aravis", "default-features": false } ] }, "calib3d": { "description": "calib3d module" }, "carotene": { "description": "carotene module" }, "contrib": { "description": "opencv_contrib module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "calib3d" ] } ] }, "cuda": { "description": "CUDA support for opencv", "dependencies": [ "cuda", { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "cudnn": { "description": "cuDNN support for opencv", "dependencies": [ "cudnn", { "name": "opencv4", "default-features": false, "features": [ "cuda" ] } ] }, "dc1394": { "description": "Dc1394 support for opencv", "dependencies": [ "libdc1394" ] }, "directml": { "description": "Build with DirectML support", "supports": "windows & !uwp & !mingw" }, "dnn": { "description": "Enable dnn module", "dependencies": [ "flatbuffers", { "name": "flatbuffers", "host": true, "default-features": false }, { "name": "opencv4", "default-features": false, "features": [ "intrinsics" ], "platform": "arm64" }, "protobuf" ] }, "dnn-cuda": { "description": "Build dnn module with CUDA support", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "cudnn", "dnn" ] } ] }, "dshow": { "description": "Enable DirectShow", "supports": "windows & !uwp" }, "eigen": { "description": "Eigen support for opencv", "dependencies": [ "eigen3" ] }, "ffmpeg": { "description": "ffmpeg support for opencv", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat", "swresample", "swscale" ] } ] }, "freetype": { "description": "Freetype support for opencv", "dependencies": [ { "name": "freetype", "default-features": false }, { "name": "harfbuzz", "default-features": false } ] }, "fs": { "description": "Enable filesystem support" }, "gapi": { "description": "Enable gapi module", "supports": "!uwp" }, "gdcm": { "description": "GDCM support for opencv", "dependencies": [ "gdcm" ] }, "gstreamer": { "description": "gstreamer support for opencv", "dependencies": [ { "name": "gstreamer", "default-features": false, "features": [ "plugins-base" ] } ] }, "gtk": { "description": "GTK support for opencv", "supports": "!windows & !osx & !ios & !android", "dependencies": [ { "name": "gtk3", "default-features": false } ] }, "halide": { "description": "Halide support for opencv", "dependencies": [ "halide", { "name": "opencv4", "default-features": false }, { "name": "opencv4", "features": [ "dnn" ] } ] }, "hdf": { "description": "Enable Hierarchical Data Format (hdf) I/O", "dependencies": [ "hdf5", { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "highgui": { "description": "highgui module" }, "intrinsics": { "description": "Enable intrinsics" }, "ipp": { "description": "Enable Intel Integrated Performance Primitives", "supports": "(osx & x64) | (windows & (x64 | x86)) | (linux & (x64 | x86))" }, "jpeg": { "description": "JPEG support for opencv", "dependencies": [ "libjpeg-turbo" ] }, "jpegxl": { "description": "JPEGXL support for opencv", "dependencies": [ "libjxl" ] }, "msmf": { "description": "Microsoft Media Foundation support for opencv", "supports": "windows & !uwp & !mingw" }, "nonfree": { "description": "allow nonfree and unredistributable libraries" }, "opencl": { "description": "Enable opencl support", "dependencies": [ "opencl" ] }, "openexr": { "description": "OpenEXR support for opencv", "dependencies": [ "openexr" ] }, "opengl": { "description": "opengl support for opencv", "supports": "!osx", "dependencies": [ "opengl" ] }, "openjpeg": { "description": "JPEG 2000 support for opencv", "dependencies": [ "openjpeg" ] }, "openmp": { "description": "Enable OpenMP support", "supports": "!osx" }, "openvino": { "description": "OpenVINO support for OpenCV DNN", "supports": "!uwp & !x86", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dnn" ] }, { "name": "openvino", "default-features": false, "features": [ "auto", "cpu", "hetero" ] }, { "name": "openvino", "default-features": false, "features": [ "gpu" ], "platform": "x64 & !(osx | uwp)" } ] }, "ovis": { "description": "opencv_ovis module", "supports": "!(windows & static)", "dependencies": [ "ogre", { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "png": { "description": "PNG support for opencv", "dependencies": [ "libpng" ] }, "python": { "description": "Python wrapper support for opencv", "dependencies": [ { "name": "python3", "default-features": false, "features": [ "extensions" ] } ] }, "qt": { "description": "Qt GUI support for opencv", "dependencies": [ "qt5compat", { "name": "qtbase", "default-features": false, "features": [ "concurrent", "gui", "testlib", "widgets" ] } ] }, "quality": { "description": "Build opencv_quality module", "supports": "!uwp", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "quirc": { "description": "Enable QR code module", "dependencies": [ "quirc" ] }, "rgbd": { "description": "Build opencv_rgbd module", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "contrib" ] } ] }, "sfm": { "description": "opencv_sfm module", "dependencies": [ "ceres", "gflags", "glog", { "name": "opencv4", "default-features": false, "features": [ "contrib" ] }, { "name": "opencv4", "default-features": false, "features": [ "eigen" ] } ] }, "tbb": { "description": "Enable Intel Threading Building Blocks", "supports": "!static", "dependencies": [ "tbb" ] }, "text": { "description": "Enable Scene Text Detection and Recognition", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "contrib" ] }, "tesseract" ] }, "thread": { "description": "Enable thread support" }, "tiff": { "description": "TIFF support for opencv", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "vtk": { "description": "vtk support for opencv", "dependencies": [ { "name": "opencv4", "features": [ "contrib" ] }, { "name": "vtk", "default-features": false } ] }, "vulkan": { "description": "Vulkan support for opencv dnn", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "dnn" ] }, "vulkan-headers" ] }, "webp": { "description": "WebP support for opencv", "dependencies": [ "libwebp" ] }, "win32ui": { "description": "Enable win32ui", "supports": "windows & !uwp" }, "world": { "description": "Compile to a single package support for opencv" } } } ================================================ FILE: ports/opendnp3/deps/asio.cmake ================================================ find_package(asio CONFIG REQUIRED) ================================================ FILE: ports/opendnp3/opendnp3-config.cmake.in ================================================ # Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima). # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set(@PROJECT_NAME@_VERSION @PROJECT_VERSION@) @PACKAGE_INIT@ include(CMakeFindDependencyMacro) @FIND_DEPENDS@ include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake) ================================================ FILE: ports/opendnp3/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dnp3/opendnp3 REF "${VERSION}" SHA512 b0fe4774f8a2eea73eacbc98033a5dff673d29500ee585350aa550557242d71ac4d4f6acc1a2b378f6292edabd31c58e0b3b18938f3c1bb2efa39b33ffaa556f ) file(READ "${SOURCE_PATH}/deps/ser4cpp.cmake" ser4cpp_cmake) if(ser4cpp_cmake MATCHES "https://github\\.com/automatak/ser4cpp/archive/([0-9a-f]*)\\.zip") vcpkg_from_github( OUT_SOURCE_PATH ser4cpp_src REPO automatak/ser4cpp REF "${CMAKE_MATCH_1}" SHA512 cd8d634c0e9fadda357bdd832c382189461f4707ced4834604668df0aa4e396333cce8d676d4f98ba1b414664228518e9a24c6456204b9d96a5f2df078bada2c ) else() message(FATAL_ERROR "Unable to determine version of ser4cpp") endif() file(READ "${SOURCE_PATH}/deps/exe4cpp.cmake" exe4cpp_cmake) if(exe4cpp_cmake MATCHES "https://github\\.com/automatak/exe4cpp/archive/([0-9a-f]*)\\.zip") vcpkg_from_github( OUT_SOURCE_PATH exe4cpp_src REPO automatak/exe4cpp REF "${CMAKE_MATCH_1}" SHA512 c8946db752c0f8499d21c2da96b84676b8768954bcb1964f4c444c731d9871d8978cb96fe89b1125e91b861aef0984bdd943a4dccb91d17ba43f22c57673b7b2 ) else() message(FATAL_ERROR "Unable to determine version of exe4cpp") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/opendnp3-config.cmake.in" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/deps/" DESTINATION "${SOURCE_PATH}/deps/") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" STATICLIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tls DNP3_TLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDNP3_STATIC_LIBS=${STATICLIBS} -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DFETCHCONTENT_SOURCE_DIR_SER4CPP=${ser4cpp_src} -DFETCHCONTENT_SOURCE_DIR_EXE4CPP=${exe4cpp_src} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/opendnp3/vcpkg.json ================================================ { "name": "opendnp3", "version": "3.1.2", "description": "DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java.", "homepage": "https://github.com/dnp3/opendnp3/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tls": { "description": "Build TLS client/server support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/openexr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/openexr REF "v${VERSION}" SHA512 f81fcda206d9a7f602eb3a189369aa28ea4a1e2ad001dadc890c4e918f0db153626ed3e15c267007fabd16b6ccc234aa5b55376b40e65a98588a26f39dc9749a HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES tools OPENEXR_BUILD_TOOLS tools OPENEXR_INSTALL_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DBUILD_TESTING=OFF -DBUILD_WEBSITE=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_libdeflate=ON -DOPENEXR_BUILD_EXAMPLES=OFF -DOPENEXR_INSTALL_PKG_CONFIG=ON OPTIONS_DEBUG -DOPENEXR_BUILD_TOOLS=OFF -DOPENEXR_INSTALL_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenEXR) vcpkg_fixup_pkgconfig() if(OPENEXR_INSTALL_TOOLS) vcpkg_copy_tools( TOOL_NAMES exr2aces # not installed: exrcheck exrenvmap exrheader exrinfo exrmakepreview exrmaketiled exrmanifest exrmetrics exrmultipart exrmultiview exrstdattr AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/openexr/usage ================================================ openexr provides CMake targets: find_package(OpenEXR CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenEXR::OpenEXR) ================================================ FILE: ports/openexr/vcpkg.json ================================================ { "name": "openexr", "version": "3.4.7", "description": "OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications", "homepage": "https://www.openexr.com/", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "imath", "libdeflate", "openjph", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/openfbx/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(OpenFBX LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) include(GNUInstallDirs) find_package(libdeflate REQUIRED) add_library(openfbx src/ofbx.cpp) target_link_libraries(openfbx PRIVATE $,libdeflate::libdeflate_shared,libdeflate::libdeflate_static>) target_include_directories(openfbx PUBLIC $ $) target_compile_definitions(openfbx PRIVATE _LARGEFILE64_SOURCE) install(TARGETS openfbx EXPORT unofficial-openfbxTargets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include INCLUDES DESTINATION include) include(CMakePackageConfigHelpers) configure_package_config_file( unofficial-openfbxConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfbxConfig.cmake" INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-openfbx" ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfbxConfig.cmake" DESTINATION "${CMAKE_INSTALL_DATADIR}/unofficial-openfbx" ) install(FILES ${CMAKE_SOURCE_DIR}/src/ofbx.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install( EXPORT unofficial-openfbxTargets NAMESPACE unoffical::openfbx:: DESTINATION ${CMAKE_INSTALL_DATADIR}/unofficial-openfbx ) ================================================ FILE: ports/openfbx/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nem0/OpenFBX REF 82a43d9191f2250145fddc219b4083667c33f2a5 SHA512 bc5997187019353953d5a602a74480d1ac7042210e0e4406a46e46593d514aaf936bad579d5000625db5229e3ce95d94021da037ebf212925cff16f658299412 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-openfbxConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openfbx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/openfbx/unofficial-openfbxConfig.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(libdeflate) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-openfbxTargets.cmake") check_required_components(libdeflate) ================================================ FILE: ports/openfbx/vcpkg.json ================================================ { "name": "openfbx", "version-date": "2024-12-28", "description": "Lightweight open source FBX importer", "homepage": "https://github.com/nem0/OpenFBX", "license": "MIT", "dependencies": [ "libdeflate", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openfx/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(openfx VERSION 1.4.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(WIN32) add_compile_definitions(WINDOWS NOMINMAX WIN64) set(OS_VAR "windows") set(OFX_ARCH_NAME "Win64") endif() set(OFX_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) add_library(OpenFx INTERFACE) target_include_directories(OpenFx INTERFACE $ $ ) set(OFX_SUPPORT_HEADERS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Support/include) add_library(OfxSupport STATIC Support/Library/ofxsCore.cpp Support/Library/ofxsImageEffect.cpp Support/Library/ofxsInteract.cpp Support/Library/ofxsLog.cpp Support/Library/ofxsMultiThread.cpp Support/Library/ofxsParams.cpp Support/Library/ofxsProperty.cpp Support/Library/ofxsPropertyValidation.cpp ) target_include_directories(OfxSupport PUBLIC $ $ $ ) target_link_libraries(OfxSupport INTERFACE OpenFx) target_compile_features(OfxSupport PUBLIC cxx_std_11) install( TARGETS OpenFx OfxSupport EXPORT openfx-export LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT openfx-export FILE unofficial-openfxConfig.cmake NAMESPACE unofficial::openfx:: DESTINATION "share/unofficial-openfx" ) file(GLOB OFX_HEADERS "${OFX_HEADERS_DIR}/*.h" "${OFX_SUPPORT_HEADERS_DIR}/*.h") install(FILES ${OFX_HEADERS} DESTINATION include/openfx ) include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfxConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openfxConfigVersion.cmake" DESTINATION "share/unofficial-openfx" ) ================================================ FILE: ports/openfx/portfile.cmake ================================================ string(REPLACE "." "_" UNDERSCORE_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/openfx REF "OFX_Release_${UNDERSCORE_VERSION}_TAG" SHA512 b20512ea38823167f191b72f1592548df85fbda6cefe47673972874c139641ee91277e78c1e0d57a457b9f864385e6fa0e4a7edcdbf0c7b2eda956c03a3e1e13 HEAD_REF main ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openfx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/DocSrc") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Support/LICENSE") ================================================ FILE: ports/openfx/usage ================================================ The package OpenFX provides CMake targets: find_package(unofficial-openfx CONFIG REQUIRED) # C-based API target_link_libraries(main PRIVATE unofficial::openfx::OpenFx) # C++ wrapper target_link_libraries(main PRIVATE unofficial::openfx::OfxSupport) ================================================ FILE: ports/openfx/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "openfx", "version": "1.4", "maintainers": "Reza Alizadeh Majd , Behnam Binesh ", "summary": "OpenFX - An open-source plugin API for visual effects", "homepage": "https://github.com/AcademySoftwareFoundation/openfx", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/opengl/glu.pc.in ================================================ prefix=${pcfiledir}/../.. libdir=${prefix}/lib includedir=${prefix}/include Name: glu Description: Windows OpenGL Utility library Version: @WINDOWS_SDK_SEMVER@ Requires: opengl Libs: -L${libdir} -lglu32 Cflags: @WINDOWS_GL_CFLAGS@ ================================================ FILE: ports/opengl/opengl.pc.in ================================================ prefix=${pcfiledir}/../.. libdir=${prefix}/lib includedir=${prefix}/include Name: OpenGL Description: Windows OpenGL library Version: @WINDOWS_SDK_SEMVER@ Libs: -L${libdir} -lopengl32 Cflags: @WINDOWS_GL_CFLAGS@ ================================================ FILE: ports/opengl/portfile.cmake ================================================ function(copy_from_windows_sdk WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBGLFILEPATH "$ENV{WindowsSdkDir}Lib/${WINDOWS_SDK}/um/${TRIPLET_SYSTEM_ARCH}/OpenGL32.Lib") set(LIBGLUFILEPATH "$ENV{WindowsSdkDir}Lib/${WINDOWS_SDK}/um/${TRIPLET_SYSTEM_ARCH}/GlU32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include/${WINDOWS_SDK}/um") set(COPYRIGHT "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license.") elseif(WINDOWS_SDK MATCHES "8.") set(LIBGLFILEPATH "$ENV{WindowsSdkDir}Lib/winv6.3/um/${TRIPLET_SYSTEM_ARCH}/OpenGL32.Lib") set(LIBGLUFILEPATH "$ENV{WindowsSdkDir}Lib/winv6.3/um/${TRIPLET_SYSTEM_ARCH}/GlU32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include/um") set(COPYRIGHT "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license.") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() if (NOT EXISTS "${LIBGLFILEPATH}") file(TO_NATIVE_PATH "${LIBGLFILEPATH}" DISPLAY) message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${DISPLAY}") endif() if (NOT EXISTS "${LIBGLUFILEPATH}") file(TO_NATIVE_PATH "${LIBGLUFILEPATH}" DISPLAY) message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${DISPLAY}") endif() file(INSTALL "${HEADERSPATH}/GL/gl.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/GL") file(INSTALL "${HEADERSPATH}/GL/glu.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/GL") file(INSTALL "${LIBGLFILEPATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${LIBGLUFILEPATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if (NOT VCPKG_BUILD_TYPE) file(INSTALL "${LIBGLFILEPATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${LIBGLUFILEPATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${COPYRIGHT}") endfunction() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_IS_MINGW) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(WINDOWS_SDK_SEMVER "10.0.0") set(WINDOWS_GL_CFLAGS "") else() vcpkg_get_windows_sdk(WINDOWS_SDK) copy_from_windows_sdk("${WINDOWS_SDK}") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" WINDOWS_SDK_SEMVER "${WINDOWS_SDK}") set(WINDOWS_GL_CFLAGS "-I\${includedir}") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/opengl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opengl.pc" @ONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/glu.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glu.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) file(COPY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opengl.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(COPY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glu.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() else() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/opengl/usage ================================================ The package opengl is compatible with built-in CMake targets via CMake v3.7 and prior syntax find_package(OpenGL REQUIRED) target_link_libraries(main PRIVATE ${OPENGL_LIBRARIES}) target_include_directories(main PRIVATE ${OPENGL_INCLUDE_DIR}) and the CMake v3.8 and beyond imported target syntax find_package(OpenGL REQUIRED) target_link_libraries(main PRIVATE OpenGL::GL) introduction of various components find_package(OpenGL REQUIRED COMPONENTS GL # v3.8 GLU # v3.8 GLX # v3.10 EGL # v3.10 OpenGL) # v3.10 The OpenGL SDK is highly platform dependent and is usually an OS component. It's not realistic to build from source for every platform. WINDOWS: is part of the Windows SDK which this package installs. LINUX: the SDK may be installed from your distro's repo or from 3rd parties manually. There are too many to count. APPLE: consult your distribution vendor on the state of OpenGL support: https://support.apple.com/en-us/HT202823 ================================================ FILE: ports/opengl/vcpkg.json ================================================ { "name": "opengl", "version-date": "2022-12-04", "port-version": 3, "description": "Open Graphics Library (OpenGL)[3][4][5] is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics.", "license": null, "supports": "!uwp & !xbox", "dependencies": [ "opengl-registry" ] } ================================================ FILE: ports/opengl-registry/copyright ================================================ The files installed by the `opengl-registry` port are using different licenses. Each file defines its license in a comment at the top of the file. ================================================ FILE: ports/opengl-registry/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenGL-Registry REF 0b449b97cdf1043eef5e1f0e235cbbab6ec10c86 SHA512 148e1bfe4cc199bcc2c23b22d0b3e4988a29389d7f510ba4a6340672dbb7ab99bb836d2c08587499484df704d51a1adf4f0dc3a30d5ad8977ee0ad339163b17e HEAD_REF master ) file(COPY "${SOURCE_PATH}/api/GL" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/api/GLES" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/api/GLES2" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/api/GLES3" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/api/GLSC" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/api/GLSC2" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(GLOB reg_files "${SOURCE_PATH}/xml/*.xml" "${SOURCE_PATH}/xml/readme.pdf" "${SOURCE_PATH}/xml/*.rnc" "${SOURCE_PATH}/xml/reg.py") file(COPY ${reg_files} DESTINATION "${CURRENT_PACKAGES_DIR}/share/opengl" ) vcpkg_install_copyright(FILE_LIST "${CURRENT_PORT_DIR}/copyright") # pc layout from cygwin (consumed in xserver!) file(WRITE "${CURRENT_PACKAGES_DIR}/share/pkgconfig/khronos-opengl-registry.pc" [=[ prefix=${pcfiledir}/../.. datadir=${prefix}/share specdir=${datadir}/opengl Name: khronos-opengl-registry Description: Khronos OpenGL registry Version: git3530768138c5ba3dfbb2c43c830493f632f7ea33 ]=]) ================================================ FILE: ports/opengl-registry/vcpkg.json ================================================ { "name": "opengl-registry", "version-date": "2026-01-26", "description": "OpenGL, OpenGL ES, and OpenGL ES-SC API and Extension Registry", "homepage": "https://github.com/KhronosGroup/OpenGL-Registry", "supports": "!xbox", "dependencies": [ "egl-registry" ] } ================================================ FILE: ports/openh264/001-add-bsds-to-meson.patch ================================================ diff --git a/meson.build b/meson.build index 573f6c6..b9519b3 100644 --- a/meson.build +++ b/meson.build @@ -57,7 +57,7 @@ cpp_lib = '-lstdc++' libm_dep = cpp.find_library('m', required : false) deps += [libm_dep] -if ['linux', 'android', 'ios', 'darwin'].contains(system) +if ['linux', 'android', 'ios', 'darwin', 'freebsd', 'netbsd', 'openbsd'].contains(system) asm_format32 = 'elf' asm_format64 = 'elf64' if ['ios', 'darwin'].contains(system) @@ -109,7 +109,7 @@ if ['linux', 'android', 'ios', 'darwin'].contains(system) error('FIXME: unhandled CPU family @0@ for @1@'.format(cpu_family, system)) endif - if ['ios', 'darwin', 'android'].contains(system) + if ['ios', 'darwin', 'android', 'freebsd', 'openbsd'].contains(system) cpp_lib = '-lc++' endif elif system == 'windows' ================================================ FILE: ports/openh264/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cisco/openh264 REF v${VERSION} SHA512 26a03acde7153a6b40b99f00641772433a244c72a3cc4bca6d903cf3b770174d028369a2fb73b2f0774e1124db0e269758eed6d88975347a815e0366c820d247 PATCHES 001-add-bsds-to-meson.patch ) set(cxx_link_libraries "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") block(PROPAGATE cxx_link_libraries) vcpkg_list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_DEFAULT_VARS_TO_CHECK=CMAKE_C_IMPLICIT_LINK_LIBRARIES;CMAKE_CXX_IMPLICIT_LINK_LIBRARIES") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") list(REMOVE_ITEM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES ${VCPKG_DETECTED_CMAKE_C_IMPLICIT_LINK_LIBRARIES}) list(TRANSFORM VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES REPLACE "^([^/].*)" "-l\\1") string(JOIN " " cxx_link_libraries ${VCPKG_DETECTED_CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}) endblock() endif() vcpkg_list(SET additional_binaries) if((VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) vcpkg_find_acquire_program(NASM) vcpkg_list(APPEND additional_binaries "nasm = ['${NASM}']") elseif(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(GASPREPROCESSOR) list(JOIN GASPREPROCESSOR "','" gaspreprocessor) vcpkg_list(APPEND additional_binaries "gas-preprocessor.pl = ['${gaspreprocessor}']") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=disabled ADDITIONAL_BINARIES ${additional_binaries} ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(cxx_link_libraries) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openh264.pc" "(Libs:[^\r\n]*)" "\\1 ${cxx_link_libraries}" REGEX ) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openh264.pc" "(Libs:[^\r\n]*)" "\\1 ${cxx_link_libraries}" REGEX ) endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openh264/vcpkg.json ================================================ { "name": "openh264", "version": "2.6.0", "port-version": 4, "description": "OpenH264 is a codec library which supports H.264 encoding and decoding. It is suitable for use in real time applications such as WebRTC.", "homepage": "https://www.openh264.org/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/openigtlink/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openigtlink/OpenIGTLink REF v3.0 SHA512 3f62ef1c4ca349f653712cecd43af8b5afce642cc3950256498905999861d68143ba3003f6b0899f5f5c3c5c755eb282c63488ac59b4793b3622a47571452739 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DOpenIGTLink_INSTALL_PACKAGE_DIR=share/${PORT} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/openigtlink/vcpkg.json ================================================ { "name": "openigtlink", "version": "3.0", "port-version": 4, "description": "OpenIGTLink is an open-source network communication interface specifically designed for image-guided interventions.", "homepage": "https://github.com/openigtlink/OpenIGTLink", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/openimageio/fix-dependencies.patch ================================================ diff --git a/src/cmake/Config.cmake.in b/src/cmake/Config.cmake.in index 2620994..6e5f0a1 100644 --- a/src/cmake/Config.cmake.in +++ b/src/cmake/Config.cmake.in @@ -6,6 +6,32 @@ include(CMakeFindDependencyMacro) +if(@USE_GIF@) + find_dependency(GIF) +endif() +if(@USE_LIBHEIF@) + find_dependency(libheif CONFIG) +endif() +if(@USE_FREETYPE@) + find_dependency(freetype CONFIG) +endif() +find_dependency(PNG) +if(@USE_OPENCV@) + find_dependency(OpenCV CONFIG) +endif() +if(@USE_OPENCOLORIO@) + find_dependency(OpenColorIO CONFIG) +endif() +if(@USE_OPENJPEG@) + find_dependency(OpenJPEG CONFIG) +endif() +if(@USE_WEBP@) + find_dependency(WebP CONFIG) +endif() +if(@USE_LIBRAW@) + find_dependency(LibRaw) +endif() + # add here all the find_dependency() whenever switching to config based dependencies if (NOT @OPENIMAGEIO_CONFIG_DO_NOT_FIND_IMATH@ AND NOT OPENIMAGEIO_CONFIG_DO_NOT_FIND_IMATH) find_dependency(Imath @Imath_VERSION@ diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake index f8670a8..816ba08 100644 --- a/src/cmake/externalpackages.cmake +++ b/src/cmake/externalpackages.cmake @@ -125,16 +125,18 @@ checked_find_package (Freetype VERSION_MIN 2.10.0 DEFINITIONS USE_FREETYPE=1 ) -checked_find_package (OpenColorIO REQUIRED - VERSION_MIN 2.2 - VERSION_MAX 2.9 - ) +find_package(OpenColorIO CONFIG REQUIRED) +set(OPENCOLORIO_INCLUDES "") +set(OPENCOLORIO_LIBRARIES OpenColorIO::OpenColorIO) +checked_find_package (OpenColorIO CONFIG) if (NOT OPENCOLORIO_INCLUDES) get_target_property(OPENCOLORIO_INCLUDES OpenColorIO::OpenColorIO INTERFACE_INCLUDE_DIRECTORIES) endif () include_directories(BEFORE ${OPENCOLORIO_INCLUDES}) -checked_find_package (OpenCV 4.0 +set(OPENCV_INCLUDES "") +set(OPENCV_LIBRARIES opencv_core) +checked_find_package (OpenCV CONFIG DEFINITIONS USE_OPENCV=1) # Intel TBB @@ -146,11 +148,15 @@ checked_find_package (TBB 2017 # DCMTK is used to read DICOM images checked_find_package (DCMTK CONFIG VERSION_MIN 3.6.1) -checked_find_package (FFmpeg VERSION_MIN 4.0) +checked_find_package (FFmpeg) +set(FFmpeg_FOUND "${FFMPEG_FOUND}") +set(FFMPEG_INCLUDES "${FFMPEG_INCLUDE_DIRS}") checked_find_package (GIF VERSION_MIN 5.0) # For HEIF/HEIC/AVIF formats +set(LIBHEIF_INCLUDES "") +set(LIBHEIF_LIBRARIES heif) checked_find_package (Libheif VERSION_MIN 1.11 RECOMMEND_MIN 1.16 RECOMMEND_MIN_REASON "for orientation support") @@ -159,9 +165,8 @@ checked_find_package (LibRaw VERSION_MIN 0.20.0 PRINT LibRaw_r_LIBRARIES) -checked_find_package (OpenJPEG VERSION_MIN 2.0 - RECOMMEND_MIN 2.2 - RECOMMEND_MIN_REASON "for multithreading support") +set(CMAKE_REQUIRE_FIND_PACKAGE_OpenJPEG ${USE_OPENJPEG}) +checked_find_package (OpenJPEG CONFIG) # Note: Recent OpenJPEG versions have exported cmake configs, but we don't # find them reliable at all, so we stick to our FindOpenJPEG.cmake module. @@ -178,6 +183,8 @@ if (NOT Ptex_FOUND OR NOT Ptex_VERSION) checked_find_package (Ptex) endif () +set(WEBP_INCLUDES "") +set(WEBP_LIBRARIES WebP::webp WebP::webpdemux) checked_find_package (WebP VERSION_MIN 1.1) option (USE_R3DSDK "Enable R3DSDK (RED camera) support" OFF) ================================================ FILE: ports/openimageio/fix-openexr-target-missing.patch ================================================ diff --git a/src/cmake/Config.cmake.in b/src/cmake/Config.cmake.in index 2620994b3..c9cbe7290 100644 --- a/src/cmake/Config.cmake.in +++ b/src/cmake/Config.cmake.in @@ -10,6 +10,8 @@ include(CMakeFindDependencyMacro) if (NOT @OPENIMAGEIO_CONFIG_DO_NOT_FIND_IMATH@ AND NOT OPENIMAGEIO_CONFIG_DO_NOT_FIND_IMATH) find_dependency(Imath @Imath_VERSION@ HINTS @Imath_DIR@) + find_dependency(OpenEXR @OpenEXR_VERSION@ + HINTS @OpenEXR_DIR@) endif () if (NOT @fmt_LOCAL_BUILD@ AND NOT @OIIO_INTERNALIZE_FMT@) ================================================ FILE: ports/openimageio/fix-openimageio_include_dir.patch ================================================ diff --git a/src/cmake/Config.cmake.in b/src/cmake/Config.cmake.in index 2a67ee3..11a5d67 100644 --- a/src/cmake/Config.cmake.in +++ b/src/cmake/Config.cmake.in @@ -53,7 +53,7 @@ endif () # Compute the installation prefix relative to this file. Note that cmake files are installed # to ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} (see OIIO_CONFIG_INSTALL_DIR) -get_filename_component(_CURR_INSTALL_LIBDIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) +get_filename_component(_CURR_INSTALL_LIBDIR "${CMAKE_CURRENT_LIST_DIR}/../" ABSOLUTE) get_filename_component(_ABS_CMAKE_INSTALL_LIBDIR "@CMAKE_INSTALL_FULL_LIBDIR@" ABSOLUTE) get_filename_component(_ABS_CMAKE_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" ABSOLUTE) file(RELATIVE_PATH _INCLUDEDIR_RELATIVE_TO_LIBDIR ================================================ FILE: ports/openimageio/fix-static-ffmpeg.patch ================================================ diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt index 94b2a3e..0c7ab40 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt @@ -2,6 +2,14 @@ # SPDX-License-Identifier: Apache-2.0 # https://github.com/AcademySoftwareFoundation/OpenImageIO +if(USE_FFMPEG AND UNIX AND NOT BUILD_SHARED_LIBS AND VCPKG_CRT_LINKAGE STREQUAL "dynamic") + include(CheckLinkerFlag) + check_linker_flag(C "LINKER:-Bsymbolic" supports_bsymbolic) + if(supports_bsymbolic) + add_link_options("LINKER:-Bsymbolic") + endif() +endif() + add_subdirectory (stubs) file (GLOB python_srcs *.cpp) ================================================ FILE: ports/openimageio/imath-version-guard.patch ================================================ diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake index 816ba08..7fe6a14 100644 --- a/src/cmake/externalpackages.cmake +++ b/src/cmake/externalpackages.cmake @@ -133,6 +133,11 @@ if (NOT OPENCOLORIO_INCLUDES) get_target_property(OPENCOLORIO_INCLUDES OpenColorIO::OpenColorIO INTERFACE_INCLUDE_DIRECTORIES) endif () include_directories(BEFORE ${OPENCOLORIO_INCLUDES}) +if(USE_OPENCOLORIO AND TARGET Imath::Imath AND OIIO_USING_IMATH STREQUAL "2") + message(FATAL_ERROR + "OpenColorIO and OpenEXR use incompatible versions of Imath. " + "You cannot use openimageio[opencolorio] for this configuration.") +endif() set(OPENCV_INCLUDES "") set(OPENCV_LIBRARIES opencv_core) ================================================ FILE: ports/openimageio/portfile.cmake ================================================ set(PATCHES fix-dependencies.patch fix-static-ffmpeg.patch imath-version-guard.patch fix-openimageio_include_dir.patch fix-openexr-target-missing.patch ) if(VCPKG_TARGET_IS_OSX) execute_process(COMMAND xcrun --show-sdk-version OUTPUT_VARIABLE OSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) # macOS 26 Tahoe has removed AGL APIs https://bugreports.qt.io/browse/QTBUG-137687 # # macOS 26.2 fails to query this with the following error, so we conservatively apply the patch in that case # xcodebuild: error: SDK "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" cannot be located. # xcrun: error: unable to lookup item 'SDKVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' if(NOT OSX_SDK_VERSION OR OSX_SDK_VERSION VERSION_GREATER_EQUAL 26) list(APPEND PATCHES remove-agl-framework.patch) endif() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/OpenImageIO REF "v${VERSION}" SHA512 cee6ddfbd825022a45a46b041c894a18718a474a32da8715fe08f918c7387505e81f3220c0ad79d3ec160b9c224bdeafbbb8a2b67a47cd845dca492582607c22 HEAD_REF master PATCHES ${PATCHES} ) file(REMOVE_RECURSE "${SOURCE_PATH}/ext") file(REMOVE "${SOURCE_PATH}/src/cmake/modules/FindFFmpeg.cmake" "${SOURCE_PATH}/src/cmake/modules/FindLibheif.cmake" "${SOURCE_PATH}/src/cmake/modules/FindLibRaw.cmake" "${SOURCE_PATH}/src/cmake/modules/FindLibsquish.cmake" "${SOURCE_PATH}/src/cmake/modules/FindOpenCV.cmake" "${SOURCE_PATH}/src/cmake/modules/FindOpenJPEG.cmake" "${SOURCE_PATH}/src/cmake/modules/FindWebP.cmake" "${SOURCE_PATH}/src/cmake/modules/Findfmt.cmake" "${SOURCE_PATH}/src/cmake/modules/FindTBB.cmake" "${SOURCE_PATH}/src/cmake/modules/FindJXL.cmake" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libraw USE_LIBRAW opencolorio USE_OPENCOLORIO ffmpeg USE_FFMPEG freetype USE_FREETYPE gif USE_GIF jpegxl USE_JXL opencv USE_OPENCV openjpeg USE_OPENJPEG webp USE_WEBP libheif USE_LIBHEIF pybind11 USE_PYTHON tools OIIO_BUILD_TOOLS viewer ENABLE_IV ) if("pybind11" IN_LIST FEATURES) vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND FEATURE_OPTIONS "-DPython3_EXECUTABLE=${PYTHON3}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DOIIO_BUILD_TESTS=OFF -DUSE_DCMTK=OFF -DUSE_NUKE=OFF -DUSE_OpenVDB=OFF -DUSE_PTEX=OFF -DUSE_TBB=OFF -DLINKSTATIC=OFF # LINKSTATIC breaks library lookup -DBUILD_MISSING_FMT=OFF -DOIIO_INTERNALIZE_FMT=OFF # carry fmt's msvc utf8 usage requirements -DBUILD_MISSING_ROBINMAP=OFF -DBUILD_MISSING_DEPS=OFF -DSTOP_ON_WARNING=OFF -DVERBOSE=ON -DBUILD_DOCS=OFF -DINSTALL_DOCS=OFF -DENABLE_INSTALL_testtex=OFF "-DFMT_INCLUDES=${CURRENT_INSTALLED_DIR}/include" "-DREQUIRED_DEPS=fmt;JPEG;PNG;Robinmap" MAYBE_UNUSED_VARIABLES ENABLE_INSTALL_testtex ENABLE_IV BUILD_MISSING_DEPS BUILD_MISSING_FMT BUILD_MISSING_ROBINMAP REQUIRED_DEPS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenImageIO) if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES iconvert idiff igrep iinfo maketx oiiotool AUTO_CLEAN ) endif() if("viewer" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES iv AUTO_CLEAN ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/OpenImageIO/export.h" "ifdef OIIO_STATIC_DEFINE" "if 1") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(READ "${SOURCE_PATH}/THIRD-PARTY.md" third_party) string(REGEX REPLACE "^.*The remainder of this file" "\n-------------------------------------------------------------------------\n\nThe remainder of this file" third_party "${third_party}" ) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${third_party}") ================================================ FILE: ports/openimageio/remove-agl-framework.patch ================================================ diff --git a/src/nuke/txReader/CMakeLists.txt b/src/nuke/txReader/CMakeLists.txt index 6f81e2600..d575a2b4b 100644 --- a/src/nuke/txReader/CMakeLists.txt +++ b/src/nuke/txReader/CMakeLists.txt @@ -21,7 +21,7 @@ elseif (APPLE) set_target_properties (txReader PROPERTIES PREFIX "" COMPILE_OPTIONS -arch x86_64 - LINK_FLAGS "-arch x86_64 -bundle -framework QuartzCore -framework IOKit -framework CoreFoundation -framework Carbon -framework ApplicationServices -framework OpenGL -framework AGL") + LINK_FLAGS "-arch x86_64 -bundle -framework QuartzCore -framework IOKit -framework CoreFoundation -framework Carbon -framework ApplicationServices -framework OpenGL") else () target_compile_definitions (txReader PRIVATE USE_GLEW) set_target_properties (txReader PROPERTIES diff --git a/src/nuke/txWriter/CMakeLists.txt b/src/nuke/txWriter/CMakeLists.txt index eb090af64..a34d6e6dd 100644 --- a/src/nuke/txWriter/CMakeLists.txt +++ b/src/nuke/txWriter/CMakeLists.txt @@ -20,7 +20,7 @@ elseif (APPLE) set_target_properties (txWriter PROPERTIES PREFIX "" COMPILE_OPTIONS -arch x86_64 - LINK_FLAGS "-arch x86_64 -bundle -framework QuartzCore -framework IOKit -framework CoreFoundation -framework Carbon -framework ApplicationServices -framework OpenGL -framework AGL") + LINK_FLAGS "-arch x86_64 -bundle -framework QuartzCore -framework IOKit -framework CoreFoundation -framework Carbon -framework ApplicationServices -framework OpenGL") # N.B. After CMake 3.13, use LINK_OPTIONS (list, not string) else () target_compile_definitions (txWriter PRIVATE USE_GLEW) ================================================ FILE: ports/openimageio/usage ================================================ The package openimageio provides CMake targets: find_package(OpenImageIO CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenImageIO::OpenImageIO) ================================================ FILE: ports/openimageio/vcpkg.json ================================================ { "name": "openimageio", "version": "3.0.9.1", "port-version": 3, "description": "A library for reading and writing images, and a bunch of related classes, utilities, and application.", "homepage": "https://github.com/OpenImageIO/oiio", "license": "BSD-3-Clause", "dependencies": [ "fmt", "libjpeg-turbo", "libpng", "opencolorio", "openexr", "robin-map", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ffmpeg": { "description": "Enable ffmpeg support for openimageio", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avresample" ] } ] }, "freetype": { "description": "Enable freetype support for openimageio", "dependencies": [ "freetype" ] }, "gif": { "description": "Enable giflib support for openimageio", "dependencies": [ "giflib" ] }, "jpegxl": { "description": "Enable JPEG XL codec", "dependencies": [ "libjxl" ] }, "libheif": { "description": "Enable heif support for openimageio", "dependencies": [ "libheif" ] }, "libraw": { "description": "Enable RAW image files support", "dependencies": [ "libraw" ] }, "opencolorio": { "description": [ "Enable opencolorio support for openimageio.", "This feature can only be used when openexr and opencolorio use the same version of Imath." ], "dependencies": [ "opencolorio" ] }, "opencv": { "description": "Enable opencv support for openimageio", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "fs", "intrinsics", "thread" ] } ] }, "openjpeg": { "description": "Enable openjpeg support for openimageio", "dependencies": [ "openjpeg" ] }, "pybind11": { "description": "Enable Python bindings support for openimageio", "dependencies": [ "pybind11", "python3" ] }, "tools": { "description": "Build openimageio tools" }, "viewer": { "description": "Build openimageio viewer", "supports": "!android", "dependencies": [ "opengl", { "name": "openimageio", "features": [ "tools" ] }, { "name": "qtbase", "default-features": false } ] }, "webp": { "description": "Enable libwebp support for openimageio", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/openjpeg/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 29a89939..5c5f4e5c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -332,10 +332,14 @@ set_variable_from_rel_or_absolute_path("includedir" "\\\${prefix}" "${CMAKE_INST function(get_pkgconfig_deps NAME OUT) get_target_property(link_libs ${NAME} LINK_LIBRARIES) if(NOT link_libs STREQUAL "link_libs-NOTFOUND") - foreach(lib ${link_libs}) - # omit -lopenjp2 from Libs.private because libopenjp2 is in Requires - if(NOT ${lib} STREQUAL ${OPENJPEG_LIBRARY_NAME}) - string(APPEND deps "-l${lib} ") + # omit openjp2 from Libs.private because libopenjp2 is in Requires + list(REMOVE_ITEM link_libs "${OPENJPEG_LIBRARY_NAME}") + set(deps "") + foreach(item IN LISTS link_libs) + if(item STREQUAL "-pthread" OR item STREQUAL "-lpthread") + string(APPEND deps " ${item}") + else() + string(APPEND deps " -l${item}") endif() endforeach() endif() ================================================ FILE: ports/openjpeg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uclouvain/openjpeg REF "v${VERSION}" SHA512 702a10e20caaf8209684ded7c9fcf32f5ba6a972cf2d9fcf2611cdc6a446d2c3bb60324205758e6b6f92278c8cf4ef0fbae511e6ffb45ed6e8df514db0c6ab25 HEAD_REF master PATCHES pkgconfig.diff third-party.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "jpip" BUILD_JPIP "tools" BUILD_CODEC "tools" BUILD_LUTS_GENERATOR ) if(NOT VCPKG_TARGET_IS_WINDOWS AND "tools" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DBUILD_JPIP_SERVER=ON "-DFCGI_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/fastcgi" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DOC:BOOL=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DCMAKE_DISABLE_FIND_PACKAGE_Java=ON -DOPENJPEG_INSTALL_SUBDIR=. -DOPENJPEG_INSTALL_PACKAGE_DIR=share/openjpeg ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_Java ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() set(TOOL_NAMES "") if("tools" IN_LIST FEATURES) list(APPEND TOOL_NAMES opj_compress opj_decompress opj_dump opj_dec_server opj_jpip_addxml opj_jpip_test opj_jpip_transcode) endif() if(TOOL_NAMES) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(WRITE "${CURRENT_PACKAGES_DIR}/include/openjpeg\.h" [[ /* vcpkg VS legacy compatibility */ #include "openjpeg-2.5/openjpeg.h" ]]) file(WRITE "${CURRENT_PACKAGES_DIR}/include/opj_config\.h" [[ /* vcpkg VS legacy compatibility */ #include "openjpeg-2.5/opj_config.h" ]]) endif() file(READ "${CURRENT_PACKAGES_DIR}/include/openjpeg-2.5/openjpeg\.h" OPENJPEG_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "defined(OPJ_STATIC)" "1" OPENJPEG_H "${OPENJPEG_H}") else() string(REPLACE "defined(OPJ_STATIC)" "0" OPENJPEG_H "${OPENJPEG_H}") endif() string(REPLACE "defined(DLL_EXPORT)" "0" OPENJPEG_H "${OPENJPEG_H}") file(WRITE "${CURRENT_PACKAGES_DIR}/include/openjpeg-2.5/openjpeg\.h" "${OPENJPEG_H}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openjpeg/third-party.diff ================================================ diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index b136fff..05ca64a 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -89,7 +89,7 @@ else(BUILD_THIRDPARTY) message(STATUS "Your system seems to have a TIFF lib available, we will use it") set(OPJ_HAVE_TIFF_H 1 PARENT_SCOPE) set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE) - if(BUILD_STATIC_LIBS AND NOT BUILD_SHARED_LIBS) + if("${not_using_vcpkg}") # Probably incorrect as PC_TIFF_STATIC_LIBRARIES will lack the path to the libraries # and will only work if they are in system directories set(TIFF_LIBNAME ${PC_TIFF_STATIC_LIBRARIES} PARENT_SCOPE) @@ -131,7 +131,7 @@ else(BUILD_THIRDPARTY) message(STATUS "Your system seems to have a LCMS2 lib available, we will use it") set(OPJ_HAVE_LCMS2_H 1 PARENT_SCOPE) set(OPJ_HAVE_LIBLCMS2 1 PARENT_SCOPE) - if(BUILD_STATIC_LIBS AND NOT BUILD_SHARED_LIBS) + if("${not_using_vcpkg}") # Probably incorrect as PC_LCMS2_STATIC_LIBRARIES will lack the path to the libraries # and will only work if they are in system directories set(LCMS_LIBNAME ${PC_LCMS2_STATIC_LIBRARIES} PARENT_SCOPE) ================================================ FILE: ports/openjpeg/usage ================================================ openjpeg provides CMake targets: find_package(OpenJPEG CONFIG REQUIRED) target_link_libraries(main PRIVATE openjp2) openjpeg provides pkg-config modules: # JPEG2000 library libopenjp2 ================================================ FILE: ports/openjpeg/vcpkg.json ================================================ { "name": "openjpeg", "version": "2.5.4", "description": "OpenJPEG is an open-source JPEG 2000 codec written in C language. It has been developed in order to promote the use of JPEG 2000, a still-image compression standard from the Joint Photographic Experts Group (JPEG). Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a JPEG 2000 Reference Software.", "homepage": "https://github.com/uclouvain/openjpeg", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "jpip": { "description": "Build optional component jpip", "supports": "!uwp" }, "tools": { "description": "(deprecated)", "dependencies": [ { "name": "curl", "platform": "!windows" }, { "name": "fastcgi", "platform": "!windows" }, "lcms", "libpng", { "name": "tiff", "default-features": false }, "zlib" ] } } } ================================================ FILE: ports/openjph/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aous72/OpenJPH REF "${VERSION}" SHA512 eb43bc4e4fa741ef24514f49a6b09049eafdfde8f22275721f4a8fd53d6360e2a047e7f7799c3ab3e0c434ab8c377ec65471498b42dc9911f1d1ad29b98602a3 HEAD_REF master PATCHES xsi-strerror_r.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools OJPH_BUILD_EXECUTABLES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOJPH_ENABLE_TIFF_SUPPORT=ON -DOJPH_BUILD_TESTS=OFF -DOJPH_BUILD_STREAM_EXPAND=ON ${FEATURE_OPTIONS} OPTIONS_DEBUG -DOJPH_BUILD_EXECUTABLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/openjph) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ojph_expand ojph_compress ojph_stream_expand AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openjph/vcpkg.json ================================================ { "name": "openjph", "version": "0.26.3", "description": "Open-source implementation of JPEG2000 Part-15 (or JPH or HTJ2K)", "homepage": "https://github.com/aous72/OpenJPH", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Enables building command line executables", "supports": "!uwp", "dependencies": [ { "name": "tiff", "default-features": false } ] } } } ================================================ FILE: ports/openjph/xsi-strerror_r.patch ================================================ diff --git a/src/apps/others/ojph_sockets.cpp b/src/apps/others/ojph_sockets.cpp index 43b2105..106d9de 100644 --- a/src/apps/others/ojph_sockets.cpp +++ b/src/apps/others/ojph_sockets.cpp @@ -165,8 +165,8 @@ namespace ojph MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, max_buf_size, NULL); buf[max_buf_size - 1] = 0; - #elif (defined __GLIBC__) && \ - ((defined _GNU_SOURCE) || (_POSIX_C_SOURCE < 200112L)) + #elif (defined __ANDROID__) || ((defined __GLIBC__) && \ + ((defined _GNU_SOURCE) || (_POSIX_C_SOURCE < 200112L))) v = strerror_r(errnum, (char*)buf, max_buf_size); #else // it is not clear if the returned value is in buf or in v ================================================ FILE: ports/openldap/android.diff ================================================ diff --git a/libraries/libldap/utf-8-conv.c b/libraries/libldap/utf-8-conv.c index 98ed58d..4bd5459 100644 --- a/libraries/libldap/utf-8-conv.c +++ b/libraries/libldap/utf-8-conv.c @@ -328,7 +328,7 @@ ldap_x_wcs_to_utf8s ( char *utf8str, const wchar_t *wcstr, size_t count ) return (p - utf8str); } -#ifdef ANDROID +#if 0 int wctomb(char *s, wchar_t wc) { return wcrtomb(s,wc,NULL); } int mbtowc(wchar_t *pwc, const char *s, size_t n) { return mbrtowc(pwc, s, n, NULL); } #endif ================================================ FILE: ports/openldap/cyrus-sasl.diff ================================================ diff --git a/configure.ac b/configure.ac index f01b7e6..c4a6faa 100644 --- a/configure.ac +++ b/configure.ac @@ -2008,14 +2008,13 @@ WITH_SASL=no ol_link_sasl=no ol_link_spasswd=no if test $ol_with_cyrus_sasl != no ; then + PKG_CHECK_MODULES(SASL, libsasl2, [have_openssl=yes], [AC_MSG_FAILURE([OpenSSL is required])]) + CFLAGS="$CFLAGS $SASL_CFLAGS" AC_CHECK_HEADERS(sasl/sasl.h sasl.h) if test $ac_cv_header_sasl_sasl_h = yes || test $ac_cv_header_sasl_h = yes; then - AC_CHECK_LIB(sasl2, sasl_client_init, - [ol_link_sasl="-lsasl2"], - [AC_CHECK_LIB(sasl, sasl_client_init, - [ol_link_sasl="-lsasl"])]) + ol_link_sasl="$SASL_LIBS" fi if test $ol_link_sasl = no ; then ================================================ FILE: ports/openldap/openssl.patch ================================================ diff --git a/configure.ac b/configure.ac index d231e0e..c994103 100644 --- a/configure.ac +++ b/configure.ac @@ -1239,6 +1239,8 @@ fi ol_link_tls=no if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then + PKG_CHECK_MODULES(OPENSSL, openssl >= 1.1.1, [have_openssl=yes], [AC_MSG_FAILURE([OpenSSL is required])]) + CFLAGS="${OPENSSL_CFLAGS} ${CFLAGS}" AC_CHECK_HEADERS(openssl/ssl.h) if test $ac_cv_header_openssl_ssl_h = yes ; then @@ -1249,6 +1251,7 @@ if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then [#endif]])], , [AC_MSG_FAILURE([OpenSSL 1.1.1 or newer required])]) + ac_cv_lib_ssl_SSL_CTX_set_ciphersuites=yes AC_CHECK_LIB(ssl, SSL_CTX_set_ciphersuites, [have_openssl=yes], [have_openssl=no], [-lcrypto]) @@ -1261,7 +1264,8 @@ if test $ol_with_tls = openssl || test $ol_with_tls = auto ; then AC_DEFINE(HAVE_OPENSSL, 1, [define if you have OpenSSL]) - TLS_LIBS="-lssl -lcrypto" + TLS_LIBS="${OPENSSL_LIBS}" + AC_SUBST(TLS_MODULE, openssl, [TLS pkg-config module]) fi fi fi diff --git a/libraries/libldap/ldap.pc.in b/libraries/libldap/ldap.pc.in index 3f7dd46..43b2e52 100644 --- a/libraries/libldap/ldap.pc.in +++ b/libraries/libldap/ldap.pc.in @@ -10,4 +10,5 @@ Version: @VERSION@ Requires: lber Cflags: -I${includedir} Libs: -L${libdir} -lldap -Libs.private: @LIBS@ @SASL_LIBS@ @TLS_LIBS@ @AUTH_LIBS@ +Libs.private: @LIBS@ @SASL_LIBS@ @AUTH_LIBS@ +Requires.private: @TLS_MODULE@ ================================================ FILE: ports/openldap/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-${VERSION}.tgz" "https://mirror.eu.oneandone.net/software/openldap/openldap-release/openldap-${VERSION}.tgz" FILENAME "openldap-${VERSION}.tgz" SHA512 951b510393433114939f386d43e202a62803724f395e4e400a556ca451f90ff1e179fe580b3db51f275859257b32814e66a13145d46f68bded4ff61c1fa37f36 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES android.diff cyrus-sasl.diff openssl.patch subdirs.patch ) vcpkg_list(SET FEATURE_OPTIONS) if("tools" IN_LIST FEATURES) vcpkg_list(APPEND FEATURE_OPTIONS --enable-tools) endif() if("cyrus-sasl" IN_LIST FEATURES) vcpkg_list(APPEND FEATURE_OPTIONS --with-cyrus-sasl) else() vcpkg_list(APPEND FEATURE_OPTIONS --without-cyrus-sasl) endif() if(VCPKG_TARGET_IS_ANDROID) vcpkg_list(APPEND FEATURE_OPTIONS -with-yielding_select=yes) elseif(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_list(APPEND FEATURE_OPTIONS --with-yielding_select=no) endif() # Disable build environment details in binaries set(ENV{SOURCE_DATE_EPOCH} "1659614616") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${FEATURE_OPTIONS} --disable-cleartext --disable-mdb --disable-relay --disable-slapd --disable-syncprov --with-tls=openssl --without-systemd --without-fetch --without-argon2 ac_cv_lib_iodbc_SQLDriverConnect=no ac_cv_lib_odbc_SQLDriverConnect=no ac_cv_lib_odbc32_SQLDriverConnect=no ) vcpkg_make_install(TARGETS depend install) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openldap/subdirs.patch ================================================ diff --git a/Makefile.in b/Makefile.in index 5c6bec0..c654210 100644 --- a/Makefile.in +++ b/Makefile.in @@ -13,7 +13,11 @@ ## top-level directory of the distribution or, alternatively, at ## . -SUBDIRS= include libraries clients servers tests doc +ifeq ($(patsubst %/debug,DEBUG,$(prefix)),DEBUG) +SUBDIRS= include libraries +else +SUBDIRS= include libraries @TOOLS_SUBDIRS@ +endif CLEANDIRS= INSTALLDIRS= diff --git a/configure.ac b/configure.ac index e97f548..71dd7a6 100644 --- a/configure.ac +++ b/configure.ac @@ -235,6 +235,12 @@ dnl OL_ARG_ENABLE(referrals,[AS_HELP_STRING([--enable-referrals], [enable LDAPv2 ol_enable_referrals=${ol_enable_referrals-no} OL_ARG_ENABLE(ipv6, [AS_HELP_STRING([--enable-ipv6], [enable IPv6 support])], auto)dnl OL_ARG_ENABLE(local, [AS_HELP_STRING([--enable-local], [enable AF_LOCAL (AF_UNIX) socket support])], auto)dnl +OL_ARG_ENABLE(tools, [AS_HELP_STRING([--enable-tools], [Build client tools])],no,[no yes]) +TOOLS_SUBDIRS="" +if test "$ol_enable_tools" = "yes" ; then + TOOLS_SUBDIRS="clients" +fi +AC_SUBST(TOOLS_SUBDIRS) dnl ---------------------------------------------------------------- dnl General "with" options ================================================ FILE: ports/openldap/vcpkg.json ================================================ { "name": "openldap", "version": "2.6.12", "description": "OpenLDAP Software is an open source implementation of the Lightweight Directory Access Protocol.", "homepage": "https://www.openldap.org/software/", "license": "OLDAP-2.8", "supports": "!windows, (mingw & !x86)", "dependencies": [ "openssl", { "name": "vcpkg-make", "host": true } ], "features": { "cyrus-sasl": { "description": "Enable Cyrus SASL support", "dependencies": [ "cyrus-sasl" ] }, "tools": { "description": "Enable client tools" } } } ================================================ FILE: ports/openmama/fix-dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1332a55..2ed3770 100755 @@ -123,7 +125,8 @@ find_package(Threads REQUIRED) find_package(APR REQUIRED) if (WITH_PROTON) - find_package(Proton REQUIRED) + find_package(PROTON NAMES Proton REQUIRED) + set(PROTON_LIBRARIES Proton::qpid-proton) endif() if (WITH_UNITTEST) diff --git a/cmake/FindUUID.cmake b/cmake/FindUUID.cmake index 7a11c70..07f21ed 100644 --- a/cmake/FindUUID.cmake +++ b/cmake/FindUUID.cmake @@ -90,6 +90,9 @@ else (UUID_LIBRARIES AND UUID_INCLUDE_DIRS) if (UUID_INCLUDE_DIRS AND UUID_LIBRARIES) set(UUID_FOUND TRUE) + elseif(UUID_INCLUDE_DIRS AND APPLE) + set(UUID_LIBRARIES "") + set(UUID_FOUND TRUE) endif (UUID_INCLUDE_DIRS AND UUID_LIBRARIES) if (UUID_FOUND) ================================================ FILE: ports/openmama/git-no-tags.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1332a55..2ed3770 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,8 @@ if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) COMMAND "${GIT_BIN}" diff-index --quiet HEAD -- WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" RESULT_VARIABLE is_current_source_dir_dirty) +endif() +if(OPENMAMA_VERSION_GIT) # Strip out unwanted part of version from git message(STATUS "OPENMAMA_VERSION_GIT: ${OPENMAMA_VERSION_GIT}") STRING(REGEX REPLACE "^OpenMAMA-" "" OPENMAMA_VERSION ${OPENMAMA_VERSION_GIT}) ================================================ FILE: ports/openmama/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO finos/OpenMAMA REF "OpenMAMA-${VERSION}-release" SHA512 bf6a9343546ace80b8a72072f97aa85988a3d0d047e2a60d05de638afce89b4e4f2bcae28b8e93ca808e8c0e4a83de9035ff785f69f9b4ac4ccd2616e792fa08 HEAD_REF next PATCHES git-no-tags.diff fix-dependencies.diff ) vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(GIT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DOPENMAMA_DEPENDENCY_ROOT=${CURRENT_INSTALLED_DIR}" -DINSTALL_RUNTIME_DEPENDENCIES=OFF "-DFLEX_EXECUTABLE=${FLEX}" "-DGIT_BIN=${GIT}" "-DOPENMAMA_VERSION=${VERSION}" -DWITH_EXAMPLES=OFF -DWITH_TESTTOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenMAMA) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/debug/LICENSE.md" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/config" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/openmama/vcpkg.json ================================================ { "name": "openmama", "version-semver": "6.3.2", "port-version": 3, "description": "OpenMAMA is a high performance vendor neutral lightweight wrapper that provides a common API interface to different middleware and messaging solutions across a variety of platforms and languages", "homepage": "https://github.com/finos/OpenMAMA", "license": "LGPL-2.1", "supports": "!xbox", "dependencies": [ "apr", "apr-util", "libevent", { "name": "libuuid", "platform": "!windows & !osx" }, { "name": "qpid-proton", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openmesh/fix-library-install-path.patch ================================================ diff --git a/cmake-library/VCI/VCICommon.cmake b/cmake-library/VCI/VCICommon.cmake index 7a5269c..e3f87ff 100644 --- a/cmake-library/VCI/VCICommon.cmake +++ b/cmake-library/VCI/VCICommon.cmake @@ -242,7 +242,8 @@ set (_and_static 0) endif () - add_library (${_target} ${_type} ${ARGN} ) + set(_and_static 0) + add_library (${_target} ${ARGN} ) # set common target properties defined in common.cmake vci_set_target_props (${_target}) index 7a5269c..e3f87ff 100644 --- a/src/OpenMesh/Core/CMakeLists.txt +++ b/src/OpenMesh/Core/CMakeLists.txt @@ -156,9 +156,9 @@ $ $) - target_include_directories(OpenMeshCoreStatic PUBLIC - $ - $) + #target_include_directories(OpenMeshCoreStatic PUBLIC + # $ + # $) set_target_properties (OpenMeshCore PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) @@ -180,7 +180,7 @@ endif() # if we build debug and release in the same dir, we want to install both! if ( ${CMAKE_PROJECT_NAME} MATCHES "OpenMesh") - if ( WIN32 ) + if ( 0 ) FILE(GLOB files_install_libs "${CMAKE_BINARY_DIR}/Build/lib/*.lib" ) FILE(GLOB files_install_dlls "${CMAKE_BINARY_DIR}/Build/*.dll" ) INSTALL(FILES ${files_install_libs} DESTINATION lib ) @@ -240,7 +240,8 @@ target_include_directories(OpenMeshCore PUBLIC endif () install(TARGETS OpenMeshCore EXPORT OpenMeshConfig - ARCHIVE DESTINATION ${VCI_PROJECT_LIBDIR} - LIBRARY DESTINATION ${VCI_PROJECT_LIBDIR} - RUNTIME DESTINATION ${VCI_PROJECT_BINDIR}) + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) + target_compile_features(OpenMeshCore PUBLIC cxx_std_11) diff --git a/src/OpenMesh/Tools/CMakeLists.txt b/src/OpenMesh/Tools/CMakeLists.txt index 0170e2b..e40dfa1 100644 --- a/src/OpenMesh/Tools/CMakeLists.txt +++ b/src/OpenMesh/Tools/CMakeLists.txt @@ -122,9 +122,9 @@ $ $) - target_include_directories(OpenMeshToolsStatic PUBLIC - $ - $) + #target_include_directories(OpenMeshToolsStatic PUBLIC + # $ + # $) set_target_properties (OpenMeshTools PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) @@ -132,7 +132,7 @@ target_link_libraries (OpenMeshTools OpenMeshCore) -IF( NOT WIN32 ) +IF( 0 ) target_link_libraries (OpenMeshToolsStatic OpenMeshCoreStatic) ENDIF(NOT WIN32) @@ -126,7 +126,8 @@ target_include_directories(OpenMeshTools PUBLIC endif () install(TARGETS OpenMeshTools EXPORT OpenMeshConfig - ARCHIVE DESTINATION ${VCI_PROJECT_LIBDIR} - LIBRARY DESTINATION ${VCI_PROJECT_LIBDIR} - RUNTIME DESTINATION ${VCI_PROJECT_BINDIR}) + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) ================================================ FILE: ports/openmesh/fix-pkgconfig.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a5269c..e3f87ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -188,12 +188,15 @@ # Generate openmesh.pc file +if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") + set(_debug_postfix "${CMAKE_DEBUG_POSTFIX}") +endif() set(DEST_DIR "${CMAKE_INSTALL_PREFIX}") -set(PRIVATE_LIBS "-lOpenMeshCore -lOpenMeshTools") +set(PRIVATE_LIBS "-lOpenMeshCore${_debug_postfix} -lOpenMeshTools${_debug_postfix}") configure_file("openmesh.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc" @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc DESTINATION libdata/pkgconfig) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/openmesh.pc DESTINATION lib/pkgconfig) # generate target file ================================================ FILE: ports/openmesh/portfile.cmake ================================================ # 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}.0.tar.gz" FILENAME "OpenMesh-${VERSION}.tar.gz" SHA512 b895e5eaabdf5d3671625df5314e1f95921ac672e9d9d945a5cf0973e20b4e395aac6517d86269a2e8c103f32bc9c8c2ecf57d811a260bbc69f592043e1307ba ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-library-install-path.patch fix-pkgconfig.patch # This patch is a combination of these two: # https://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/commit/1d4a866282ace376c8e3ba05c21ce3bcc6643040 # https://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/commit/a7f30b6f70447932444f5b518840ca26e9461fa9 restore-c++11-compatibility.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPENMESH_BUILD_SHARED ON) else() set(OPENMESH_BUILD_SHARED OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_APPS=OFF -DVCI_COMMON_DO_NOT_COPY_POST_BUILD=ON -DVCI_NO_LIBRARY_INSTALL=ON -DOPENMESH_BUILD_SHARED=${OPENMESH_BUILD_SHARED} MAYBE_UNUSED_VARIABLES OPENMESH_BUILD_SHARED # [TODO]: add apps as feature, requires qt5 and freeglut ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME OpenMesh CONFIG_PATH "share/OpenMesh/cmake") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/OpenMesh/Tools/VDPM/xpm") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openmesh/restore-c++11-compatibility.patch ================================================ From 1d4a866282ace376c8e3ba05c21ce3bcc6643040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20M=C3=B6bius?= Date: Tue, 9 Jan 2024 12:59:45 +0100 Subject: [PATCH] Small patch to keep backward compatibility with c++11 --- src/OpenMesh/Core/Utils/Property.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/OpenMesh/Core/Utils/Property.hh b/src/OpenMesh/Core/Utils/Property.hh index 485d3072..6ba66584 100644 --- a/src/OpenMesh/Core/Utils/Property.hh +++ b/src/OpenMesh/Core/Utils/Property.hh @@ -250,7 +250,7 @@ public: // inherited from BaseProperty virtual void reserve(size_t _n) override { data_.reserve(_n); } virtual void resize(size_t _n) override { data_.resize(_n); } virtual void clear() override { data_.clear(); vector_type().swap(data_); } - virtual void push_back() override { data_.emplace_back(); } + virtual void push_back() override { data_.push_back(bool()); } virtual void swap(size_t _i0, size_t _i1) override { bool t(data_[_i0]); data_[_i0]=data_[_i1]; data_[_i1]=t; } virtual void copy(size_t _i0, size_t _i1) override -- GitLab ================================================ FILE: ports/openmesh/vcpkg.json ================================================ { "name": "openmesh", "version": "10.0", "description": "A generic and efficient polygon mesh data structure", "homepage": "https://www.graphics.rwth-aachen.de/media/openmesh_static/Daily-Builds/Doc/index.html", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openmpi/keep_isystem.patch ================================================ diff --git a/configure b/configure index b2451c4..a7fb4da 100755 --- a/configure +++ b/configure @@ -19562,6 +19562,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -19653,6 +19657,10 @@ $as_echo "$as_me: WARNING: This usually indicates an error in configure." >&2;} opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -19759,6 +19767,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -19946,6 +19958,10 @@ $as_echo "$opal_cv_cc_wno_long_double" >&6; } opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -20127,6 +20143,10 @@ $as_echo "$opal_cv_cc_fno_strict_aliasing" >&6; } opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -20267,6 +20287,10 @@ $as_echo "$opal_cv_cc_restrict_cflags" >&6; } opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -26120,6 +26144,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -26297,6 +26325,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -26441,6 +26473,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -27799,6 +27835,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -27973,6 +28013,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -28117,6 +28161,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -44127,6 +44175,10 @@ fi opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -60612,6 +60664,10 @@ $as_echo_n "checking if intel compiler _Quad == REAL*16... " >&6; } opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` @@ -60842,6 +60898,10 @@ $as_echo_n "checking if gnu compiler __float128 == REAL*16... " >&6; } opal_found=0 opal_i=`expr $opal_count + 1` ;; + -isystem) + opal_found=0 + opal_i=`expr $opal_count + 1` + ;; --param) opal_found=0 opal_i=`expr $opal_count + 1` diff --git a/opal/mca/pmix/pmix3x/pmix/configure b/opal/mca/pmix/pmix3x/pmix/configure index 0326a68..07df146 100755 --- a/opal/mca/pmix/pmix3x/pmix/configure +++ b/opal/mca/pmix/pmix3x/pmix/configure @@ -19386,6 +19386,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -19477,6 +19481,10 @@ $as_echo "$pmix_cv_cc_coverage" >&6; } pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -19583,6 +19591,10 @@ $as_echo "$as_me: WARNING: Code coverage functionality is currently available on pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -19770,6 +19782,10 @@ $as_echo "$pmix_cv_cc_wno_long_double" >&6; } pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -19951,6 +19967,10 @@ $as_echo "$pmix_cv_cc_fno_strict_aliasing" >&6; } pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -20091,6 +20111,10 @@ $as_echo "$pmix_cv_cc_restrict_cflags" >&6; } pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -53914,6 +53938,10 @@ fi pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -54005,6 +54033,10 @@ fi pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -54096,6 +54128,10 @@ fi pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` @@ -54187,6 +54223,10 @@ fi pmix_found=0 pmix_i=`expr $pmix_count + 1` ;; + -isystem) + pmix_found=0 + pmix_i=`expr $pmix_count + 1` + ;; --param) pmix_found=0 pmix_i=`expr $pmix_count + 1` ================================================ FILE: ports/openmpi/mpi-wrapper.cmake ================================================ if(NOT DEFINED MPI_HOME) set(MPI_HOME "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@" CACHE INTERNAL "vcpkg") set(z_vcpkg_mpiexec_directories "${MPI_HOME}/tools/openmpi/bin" "${MPI_HOME}/tools/openmpi/debug/bin" ) if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") list(REVERSE z_vcpkg_mpiexec_directories) endif() find_program(MPIEXEC_EXECUTABLE NAMES mpiexec PATHS ${z_vcpkg_mpiexec_directories} NO_DEFAULT_PATH) unset(z_vcpkg_mpiexec_directories) endif() # pkg-config in FindMPI.cmake works also in cross builds (when providing # the pc files without the 'o' prefix, which is handled in port mpi.) # Skip everything else. set(MPI_ASSUME_NO_BUILTIN_MPI TRUE) set(MPI_SKIP_COMPILER_WRAPPER TRUE) set(MPI_SKIP_GUESSING TRUE) find_package(PkgConfig) find_program(PKG_CONFIG_EXECUTABLE PATHS "${VCPKG_INSTALLED_DIR}/@HOST_TRIPLET@/tools/bin") set(z_vcpkg_mpiexec_pkg_config_path "$ENV{PKG_CONFIG_PATH}") if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") set(ENV{PKG_CONFIG_PATH} "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/debug/lib/pkgconfig") else() set(ENV{PKG_CONFIG_PATH} "${VCPKG_INSTALLED_DIR}/@TARGET_TRIPLET@/lib/pkgconfig") endif() if(z_vcpkg_mpiexec_pkg_config_path) string(APPEND ENV{PKG_CONFIG_PATH} ":${z_vcpkg_mpiexec_pkg_config_path}") endif() _find_package(${ARGS}) set(ENV{PKG_CONFIG_PATH} "${z_vcpkg_mpiexec_pkg_config_path}") unset(z_vcpkg_mpiexec_pkg_config_path) ================================================ FILE: ports/openmpi/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(REGEX REPLACE [[^([0-9]+[.][0-9]+).*$]] [[\1]] OpenMPI_SHORT_VERSION "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://download.open-mpi.org/release/open-mpi/v${OpenMPI_SHORT_VERSION}/openmpi-${VERSION}.tar.gz" FILENAME "openmpi-${VERSION}.tar.gz" SHA512 25eb96116126641cd1c8fdccbd3c4b40cbdd7b1e8709ff629c6fca9ee58b566983e00e829c724952fca685a8d321b4dddf8691df08693a2ffee5f05b30e08058 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES keep_isystem.patch ) vcpkg_find_acquire_program(PERL) cmake_path(GET PERL PARENT_PATH PERL_PATH) vcpkg_add_to_path("${PERL_PATH}") # Put wrapper data dir side-by-side to wrapper executables dir instead of loosing debug data. # VCPKG_CONFIGURE_MAKE_OPTIONS overwrites vcpkg_configure_make overwrites OPTIONS. vcpkg_list(PREPEND VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG [[--datadir=\${prefix}/../tools/openmpi/debug/share]]) vcpkg_list(PREPEND VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE [[--datadir=\${prefix}/tools/openmpi/share]]) if(VCPKG_TARGET_IS_OSX) # This ensures that vcpkg-fixup-macho-rpath succeeds string(APPEND VCPKG_LINKER_FLAGS " -headerpad_max_install_names") endif() vcpkg_make_configure( COPY_SOURCE SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-dependency-tracking --with-hwloc=internal --with-libevent=internal --with-pmix=internal --disable-mpi-fortran OPTIONS_DEBUG --enable-debug ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${CURRENT_PORT_DIR}/mpi-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/mpi-wrapper.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openmpi/vcpkg.json ================================================ { "name": "openmpi", "version": "4.1.8", "description": "The Open MPI Project is an open source Message Passing Interface implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI is therefore able to combine the expertise, technologies, and resources from all across the High Performance Computing community in order to build the best MPI library available. Open MPI offers advantages for system and software vendors, application developers and computer science researchers.", "homepage": "https://www.open-mpi.org/", "supports": "!windows", "dependencies": [ { "name": "pkgconf", "host": true }, { "name": "vcpkg-make", "host": true }, "zlib" ] } ================================================ FILE: ports/openmvg/0001-fix-build.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6879c4c..aa4167a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -324,13 +324,18 @@ else() if (TARGET flann::flann) set(FLANN_LIBRARIES "flann::flann;flann::flann_cpp") else() - find_package(Flann QUIET) + set(FLANN_LIBRARIES "flann::flann_s;flann::flann_cpp_s") endif() + set(FLANN_FOUND TRUE) endif() if (NOT FLANN_FOUND OR OpenMVG_USE_INTERNAL_FLANN) set(FLANN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp) endif() +# Used together in openMVG/LinearProgramming +find_package(PkgConfig REQUIRED) +pkg_check_modules(OSI_CLP_COIN osi-clp clp osi coinutils REQUIRED) +if(0) # ============================================================================== # CoinUtils # ============================================================================== @@ -391,6 +396,7 @@ if (OpenMVG_USE_INTERNAL_OSI AND OpenMVG_USE_INTERNAL_CLP AND OpenMVG_USE_INTERN set_property(TARGET lib_Osi PROPERTY FOLDER OpenMVG/3rdParty/lib_Osi) set_property(TARGET lib_OsiClpSolver PROPERTY FOLDER OpenMVG/3rdParty/lib_OsiClpSolver) endif() +endif() # ============================================================================== # Lemon @@ -402,7 +408,7 @@ if (NOT DEFINED LEMON_INCLUDE_DIR_HINTS) set(LEMON_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon) set(OpenMVG_USE_INTERNAL_LEMON ON) endif() -find_package(Lemon QUIET) +find_package(LEMON REQUIRED) if (NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON) set(LEMON_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in index 5a788b5..7a0afdb 100644 --- a/src/cmakeFindModules/OpenMVGConfig.cmake.in +++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in @@ -61,7 +61,7 @@ set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR}) # Build the absolute root install directory as a relative path get_filename_component(CURRENT_ROOT_INSTALL_DIR - ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE) + "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR}) OPENMVG_REPORT_NOT_FOUND( "OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, " @@ -88,11 +88,14 @@ set(OpenMVG_USE_OPENMP "@OpenMVG_USE_OPENMP@") # Find transitive dependencies if required include(CMakeFindDependencyMacro) +find_dependency(flann CONFIG) +find_dependency(Ceres CONFIG) +find_dependency(vlfeat CONFIG) if (OpenMVG_USE_OPENMP) - find_dependency(OpenMP REQUIRED) + find_dependency(OpenMP) endif() if (NOT OpenMVG_USE_INTERNAL_CEREAL) - find_dependency(cereal REQUIRED) + find_dependency(cereal CONFIG) endif() # Import exported OpenMVG targets diff --git a/src/nonFree/sift/CMakeLists.txt b/src/nonFree/sift/CMakeLists.txt index 402a2d8..b2912ea 100644 --- a/src/nonFree/sift/CMakeLists.txt +++ b/src/nonFree/sift/CMakeLists.txt @@ -25,7 +25,9 @@ set(FEATS vl/mathop.c vl/random.c) set_source_files_properties(${FEATS} PROPERTIES LANGUAGE C) -add_library(vlsift ${FEATS}) +find_package(vlfeat CONFIG REQUIRED) +add_library(vlsift INTERFACE) +target_link_libraries(vlsift INTERFACE unofficial::vlfeat::vl) install(TARGETS vlsift DESTINATION lib EXPORT openMVG-targets) set_property(TARGET vlsift PROPERTY FOLDER OpenMVG/nonFree) install( diff --git a/src/nonFree/sift/SIFT_describer.hpp b/src/nonFree/sift/SIFT_describer.hpp index cd800b0..9586d9b 100644 --- a/src/nonFree/sift/SIFT_describer.hpp +++ b/src/nonFree/sift/SIFT_describer.hpp @@ -18,7 +18,7 @@ #include extern "C" { -#include "nonFree/sift/vl/sift.h" +#include } namespace openMVG { diff --git a/src/openMVG/exif/sensor_width_database/CMakeLists.txt b/src/openMVG/exif/sensor_width_database/CMakeLists.txt index 33d9f16..58b4761 100644 --- a/src/openMVG/exif/sensor_width_database/CMakeLists.txt +++ b/src/openMVG/exif/sensor_width_database/CMakeLists.txt @@ -2,4 +2,4 @@ UNIT_TEST(openMVG ParseDatabase "openMVG_testing;${STLPLUS_LIBRARY}") # Installation rules -install(FILES sensor_width_camera_database.txt DESTINATION ${CMAKE_INSTALL_LIBDIR}/openMVG) +install(FILES sensor_width_camera_database.txt DESTINATION share/openmvg) diff --git a/src/openMVG/features/CMakeLists.txt b/src/openMVG/features/CMakeLists.txt index 7100ab0..2af4528 100644 --- a/src/openMVG/features/CMakeLists.txt +++ b/src/openMVG/features/CMakeLists.txt @@ -24,14 +24,13 @@ if (CMAKE_CXX_FLAGS) endif() target_include_directories(openMVG_features PUBLIC - $ $ $ $ ) target_link_libraries(openMVG_features PRIVATE openMVG_fast ${STLPLUS_LIBRARY} - PUBLIC ${OPENMVG_LIBRARY_DEPENDENCIES} ${cereal_TARGET}) + PUBLIC ${OPENMVG_LIBRARY_DEPENDENCIES} ${cereal_TARGET} Eigen3::Eigen) if (MSVC) set_target_properties(openMVG_features PROPERTIES COMPILE_FLAGS "/bigobj") target_compile_options(openMVG_features PUBLIC "-D_USE_MATH_DEFINES") diff --git a/src/openMVG/image/image_converter.hpp b/src/openMVG/image/image_converter.hpp index 94b4000..750708e 100644 --- a/src/openMVG/image/image_converter.hpp +++ b/src/openMVG/image/image_converter.hpp @@ -9,6 +9,8 @@ #ifndef OPENMVG_IMAGE_IMAGE_CONVERTER_HPP #define OPENMVG_IMAGE_IMAGE_CONVERTER_HPP +#include + #include "openMVG/image/image_container.hpp" #include "openMVG/image/pixel_types.hpp" diff --git a/src/openMVG/linearProgramming/CMakeLists.txt b/src/openMVG/linearProgramming/CMakeLists.txt index 4532161..20b9331 100644 --- a/src/openMVG/linearProgramming/CMakeLists.txt +++ b/src/openMVG/linearProgramming/CMakeLists.txt @@ -15,16 +15,12 @@ target_link_libraries(openMVG_linearProgramming PUBLIC openMVG_numeric PRIVATE - ${CLP_LIBRARIES} # clp + solver wrapper - ${COINUTILS_LIBRARY} # container tools - ${OSI_LIBRARY} # generic LP + ${OSI_CLP_COIN_LINK_LIBRARIES} ) target_include_directories(openMVG_linearProgramming PRIVATE - ${CLP_INCLUDE_DIRS} - ${COINUTILS_INCLUDE_DIRS} - ${OSI_INCLUDE_DIRS} + ${OSI_CLP_COIN_INCLUDE_DIRS} PUBLIC $ ) diff --git a/src/openMVG/matching/kvld/algorithm.h b/src/openMVG/matching/kvld/algorithm.h index c3fc3c6..765e5a4 100644 --- a/src/openMVG/matching/kvld/algorithm.h +++ b/src/openMVG/matching/kvld/algorithm.h @@ -10,6 +10,7 @@ #define OPENMVG_MATCHING_KVLD_ALGORITHM_H #include +#include #include #include #include "openMVG/image/image_container.hpp" diff --git a/src/openMVG/multiview/rotation_averaging_l1.cpp b/src/openMVG/multiview/rotation_averaging_l1.cpp index 7151bd5..dc738e7 100644 --- a/src/openMVG/multiview/rotation_averaging_l1.cpp +++ b/src/openMVG/multiview/rotation_averaging_l1.cpp @@ -191,7 +191,7 @@ unsigned int FilterRelativeRotations( const Matrix3x3& Rj = Rs[relR.j]; const Matrix3x3& Rij = relR.Rij; const Mat3 eRij(Rj.transpose()*Rij*Ri); - const openMVG::Vec3 erij; + const openMVG::Vec3 erij{}; ceres::RotationMatrixToAngleAxis((const double*)eRij.data(), (double*)erij.data()); errors[r] = (float)erij.norm(); } @@ -371,7 +371,7 @@ inline void FillErrorMatrix( const Matrix3x3& Rj = Rs[relR.j]; const Matrix3x3& Rij = relR.Rij; const Mat3 eRij(Rj.transpose()*Rij*Ri); - const openMVG::Vec3 erij; + const openMVG::Vec3 erij{}; ceres::RotationMatrixToAngleAxis((const double*)eRij.data(), (double*)erij.data()); b.block<3,1>(3*r,0) = erij; } @@ -389,7 +389,7 @@ inline void CorrectMatrix( Matrix3x3& Ri = Rs[r]; const uint32_t i = (r(3*i,0)); - const Mat3 eRi; + const Mat3 eRi{}; ceres::AngleAxisToRotationMatrix((const double*)eRid.data(), (double*)eRi.data()); Ri = Ri*eRi; } diff --git a/src/openMVG/multiview/solver_fundamental_kernel.cpp b/src/openMVG/multiview/solver_fundamental_kernel.cpp index 2ffd45a..bbf74b4 100644 --- a/src/openMVG/multiview/solver_fundamental_kernel.cpp +++ b/src/openMVG/multiview/solver_fundamental_kernel.cpp @@ -110,7 +110,7 @@ void EightPointSolver::Solve x2.colwise().homogeneous(), &epipolar_constraint); // Find the F matrice in the nullspace of epipolar_constraint. - Eigen::SelfAdjointEigenSolver solver + Eigen::SelfAdjointEigenSolver> solver (epipolar_constraint.transpose() * epipolar_constraint); f = solver.eigenvectors().leftCols<1>(); diff --git a/src/openMVG/numeric/CMakeLists.txt b/src/openMVG/numeric/CMakeLists.txt index 1407bdd..a754a46 100644 --- a/src/openMVG/numeric/CMakeLists.txt +++ b/src/openMVG/numeric/CMakeLists.txt @@ -22,7 +22,6 @@ if (CMAKE_CXX_FLAGS) endif() target_include_directories(openMVG_numeric PUBLIC - $ $ $ ) @@ -30,8 +29,7 @@ if (DEFINED OpenMVG_USE_INTERNAL_EIGEN) target_include_directories(openMVG_numeric PUBLIC $) else() - target_include_directories(openMVG_numeric PUBLIC - $) + target_link_libraries(openMVG_numeric PUBLIC Eigen3::Eigen) endif() if (MSVC) diff --git a/src/openMVG/numeric/eigen_alias_definition.hpp b/src/openMVG/numeric/eigen_alias_definition.hpp index cd8e398..7470272 100644 --- a/src/openMVG/numeric/eigen_alias_definition.hpp +++ b/src/openMVG/numeric/eigen_alias_definition.hpp @@ -21,6 +21,7 @@ #include #include #include +#include // Extend EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION with initializer list support. #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION_INITIALIZER_LIST(...) \ diff --git a/src/openMVG/system/CMakeLists.txt b/src/openMVG/system/CMakeLists.txt index 5ed532b..a7b5d07 100644 --- a/src/openMVG/system/CMakeLists.txt +++ b/src/openMVG/system/CMakeLists.txt @@ -9,7 +9,6 @@ set_property(TARGET openMVG_system PROPERTY FOLDER OpenMVG/OpenMVG) install(TARGETS openMVG_system DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT openMVG-targets) add_library(openMVG_progress_test INTERFACE) -target_link_libraries(openMVG_progress_test INTERFACE ${OPENMVG_LIBRARY_DEPENDENCIES}) -target_include_directories(openMVG_progress_test INTERFACE ${EIGEN_INCLUDE_DIRS}) +target_link_libraries(openMVG_progress_test INTERFACE ${OPENMVG_LIBRARY_DEPENDENCIES} Eigen3::Eigen) UNIT_TEST(openMVG progress "openMVG_system;openMVG_progress_test;openMVG_testing") diff --git a/src/software/SfM/CMakeLists.txt b/src/software/SfM/CMakeLists.txt index 893abd3..430d8a4 100644 --- a/src/software/SfM/CMakeLists.txt +++ b/src/software/SfM/CMakeLists.txt @@ -222,8 +222,8 @@ target_link_libraries(openMVG_main_PointsFiltering openMVG_system openMVG_sfm ${STLPLUS_LIBRARY} + Eigen3::Eigen ) -target_include_directories(openMVG_main_PointsFiltering PRIVATE ${EIGEN_INCLUDE_DIRS}) add_executable(openMVG_main_ChangeLocalOrigin main_ChangeLocalOrigin.cpp) target_link_libraries(openMVG_main_ChangeLocalOrigin diff --git a/src/software/SfM/clustering/domSetLibrary/CMakeLists.txt b/src/software/SfM/clustering/domSetLibrary/CMakeLists.txt index 41e8e06..013f9c7 100644 --- a/src/software/SfM/clustering/domSetLibrary/CMakeLists.txt +++ b/src/software/SfM/clustering/domSetLibrary/CMakeLists.txt @@ -1,4 +1,4 @@ add_library( domset STATIC domset.cc domset.h types.h ) -target_include_directories(domset PUBLIC ${EIGEN_INCLUDE_DIRS}) +target_link_libraries(domset PUBLIC Eigen3::Eigen) target_link_libraries(domset PRIVATE openMVG_matching) set_property(TARGET domset PROPERTY FOLDER OpenMVG/software/clustering) diff --git a/src/testing/CMakeLists.txt b/src/testing/CMakeLists.txt index b4fe7ae..efbf7cc 100644 --- a/src/testing/CMakeLists.txt +++ b/src/testing/CMakeLists.txt @@ -1,3 +1,3 @@ add_library(openMVG_testing INTERFACE) -target_include_directories(openMVG_testing INTERFACE ${CMAKE_SOURCE_DIR};${EIGEN_INCLUDE_DIRS}) -target_link_libraries(openMVG_testing INTERFACE openMVG_numeric) +target_include_directories(openMVG_testing INTERFACE ${CMAKE_SOURCE_DIR}) +target_link_libraries(openMVG_testing INTERFACE openMVG_numeric Eigen3::Eigen) ================================================ FILE: ports/openmvg/0002-fast-c-language.patch ================================================ diff --git a/src/openMVG/features/fast/fast_detector.cpp b/src/openMVG/features/fast/fast_detector.cpp index 7223149..0daa5db 100644 --- a/src/openMVG/features/fast/fast_detector.cpp +++ b/src/openMVG/features/fast/fast_detector.cpp @@ -9,7 +9,9 @@ #include "openMVG/features/fast/fast_detector.hpp" #include "openMVG/image/image_container.hpp" +extern "C" { #include "third_party/fast/fast.h" +} #include // diff --git a/src/third_party/fast/CMakeLists.txt b/src/third_party/fast/CMakeLists.txt index dc0aba6..7361dc0 100644 --- a/src/third_party/fast/CMakeLists.txt +++ b/src/third_party/fast/CMakeLists.txt @@ -1,6 +1,5 @@ file(GLOB_RECURSE C_FILES ${CMAKE_CURRENT_SOURCE_DIR} *.c) -set_source_files_properties(${C_FILES} PROPERTIES LANGUAGE CXX) add_library(openMVG_fast STATIC ${C_FILES}) set_property(TARGET openMVG_fast PROPERTY FOLDER OpenMVG/3rdParty) ================================================ FILE: ports/openmvg/0003-no-absolute-paths.patch ================================================ diff --git a/src/software/SfM/SfM_GlobalPipeline.py.in b/src/software/SfM/SfM_GlobalPipeline.py.in index 42b41cc..b1dc361 100644 --- a/src/software/SfM/SfM_GlobalPipeline.py.in +++ b/src/software/SfM/SfM_GlobalPipeline.py.in @@ -17,13 +17,13 @@ # if output_dir is not present script will create it # +import os # Indicate the openMVG binary directory -OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@" +OPENMVG_SFM_BIN = os.path.dirname(__file__) # Indicate the openMVG camera sensor width directory -CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database" +CAMERA_SENSOR_WIDTH_DIRECTORY = OPENMVG_SFM_BIN -import os import subprocess import sys diff --git a/src/software/SfM/SfM_SequentialPipeline.py.in b/src/software/SfM/SfM_SequentialPipeline.py.in index 423c85c..5335680 100644 --- a/src/software/SfM/SfM_SequentialPipeline.py.in +++ b/src/software/SfM/SfM_SequentialPipeline.py.in @@ -17,13 +17,13 @@ # if output_dir is not present script will create it # +import os # Indicate the openMVG binary directory -OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@" +OPENMVG_SFM_BIN = os.path.dirname(__file__) # Indicate the openMVG camera sensor width directory -CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database" +CAMERA_SENSOR_WIDTH_DIRECTORY = OPENMVG_SFM_BIN -import os import subprocess import sys diff --git a/src/software/SfM/import/SfM_StructurePipeline.py.in b/src/software/SfM/import/SfM_StructurePipeline.py.in index 3489eca..6d8b3d2 100644 --- a/src/software/SfM/import/SfM_StructurePipeline.py.in +++ b/src/software/SfM/import/SfM_StructurePipeline.py.in @@ -18,13 +18,13 @@ # if output_dir is not present script will create it # +import os # Indicate the openMVG binary directory -OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@" +OPENMVG_SFM_BIN = os.path.dirname(__file__) # Indicate the openMVG camera sensor width directory -CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database" +CAMERA_SENSOR_WIDTH_DIRECTORY = OPENMVG_SFM_BIN -import os import subprocess import sys diff --git a/src/software/SfM/tutorial_demo.py.in b/src/software/SfM/tutorial_demo.py.in index c7361f3..82f3378 100644 --- a/src/software/SfM/tutorial_demo.py.in +++ b/src/software/SfM/tutorial_demo.py.in @@ -8,13 +8,13 @@ # usage : python tutorial_demo.py # +import os # Indicate the openMVG binary directory -OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@" +OPENMVG_SFM_BIN = os.path.dirname(__file__) # Indicate the openMVG camera sensor width directory -CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database" +CAMERA_SENSOR_WIDTH_DIRECTORY = OPENMVG_SFM_BIN -import os import subprocess import sys ================================================ FILE: ports/openmvg/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) #the port produces some empty dlls when building shared libraries, since some components do not export anything, breaking the internal build itself if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openMVG/openMVG REF 01193a245ee3c36458e650b1cf4402caad8983ef # v2.1 SHA512 ee98ca26426e7129917c920cd59817cb5d4faf1f5aa12f4085f9ac431875e9ec23ffee7792d65286bad4b922c474c56d5c2f2008b38fddf1ede096644f13ad47 PATCHES 0001-fix-build.patch 0002-fast-c-language.patch 0003-no-absolute-paths.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/cmakeFindModules/FindEigen.cmake" "${SOURCE_PATH}/src/cmakeFindModules/FindFlann.cmake" "${SOURCE_PATH}/src/cmakeFindModules/FindLemon.cmake" "${SOURCE_PATH}/src/cmakeFindModules/FindClp.cmake" "${SOURCE_PATH}/src/cmakeFindModules/FindCoinUtils.cmake" "${SOURCE_PATH}/src/cmakeFindModules/FindOsi.cmake" "${SOURCE_PATH}/src/nonFree/sift/vl" "${SOURCE_PATH}/src/third_party/CppUnitLite" "${SOURCE_PATH}/src/third_party/ceres-solver" "${SOURCE_PATH}/src/third_party/cxsparse" "${SOURCE_PATH}/src/third_party/eigen" "${SOURCE_PATH}/src/third_party/flann" "${SOURCE_PATH}/src/third_party/jpeg" "${SOURCE_PATH}/src/third_party/lemon" "${SOURCE_PATH}/src/third_party/png" "${SOURCE_PATH}/src/third_party/tiff" "${SOURCE_PATH}/src/third_party/zlib" ) file(MAKE_DIRECTORY "${SOURCE_PATH}/src/dependencies/cereal/include/_placeholder") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES opencv OpenMVG_USE_OPENCV opencv OpenMVG_USE_OCVSIFT opencv VCPKG_LOCK_FIND_PACKAGE_OpenCV openmp OpenMVG_USE_OPENMP software OpenMVG_BUILD_SOFTWARES software OpenMVG_BUILD_GUI_SOFTWARES ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OpenMVG_BUILD_SHARED) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS ${FEATURE_OPTIONS} -DOpenMVG_BUILD_SHARED=${OpenMVG_BUILD_SHARED} -DOpenMVG_BUILD_COVERAGE=OFF -DOpenMVG_BUILD_DOC=OFF -DOpenMVG_BUILD_EXAMPLES=OFF -DOpenMVG_BUILD_OPENGL_EXAMPLES=OFF -DOpenMVG_BUILD_TESTS=OFF -DOpenMVG_USE_LIGT=OFF "-DFLANN_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include" "-DLEMON_INCLUDE_DIR_HINTS=${CURRENT_INSTALLED_DIR}/include" -DVCPKG_LOCK_FIND_PACKAGE_cereal=ON -DVCPKG_LOCK_FIND_PACKAGE_Ceres=ON -DVCPKG_LOCK_FIND_PACKAGE_Eigen3=ON -DVCPKG_LOCK_FIND_PACKAGE_Flann=ON -DVCPKG_LOCK_FIND_PACKAGE_JPEG=ON -DVCPKG_LOCK_FIND_PACKAGE_PNG=ON -DVCPKG_LOCK_FIND_PACKAGE_TIFF=ON OPTIONS_DEBUG -DOpenMVG_USE_OPENCV=OFF -DOpenMVG_BUILD_SOFTWARES=OFF -DOpenMVG_BUILD_GUI_SOFTWARES=OFF MAYBE_UNUSED_VARIABLES FLANN_INCLUDE_DIR_HINTS # Must be "defined" LEMON_INCLUDE_DIR_HINTS # Must be "defined" VCPKG_LOCK_FIND_PACKAGE_OpenCV ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/openMVG") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/cereal" "${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/glfw" "${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/osi_clp" "${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test" "${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data" ) if("software" IN_LIST FEATURES) if(VCPKG_TARGET_IS_OSX) vcpkg_copy_tools(TOOL_NAMES openMVG_main_AlternativeVO.app ui_openMVG_MatchesViewer.app ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/openMVG_main_AlternativeVO.app") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/ui_openMVG_MatchesViewer.app") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/openMVG_main_AlternativeVO.app") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/ui_openMVG_MatchesViewer.app") else() vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES openMVG_main_AlternativeVO ui_openMVG_MatchesViewer ) endif() vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES openMVG_main_ChangeLocalOrigin openMVG_main_ColHarmonize openMVG_main_ComputeClusters openMVG_main_ComputeFeatures openMVG_main_ComputeMatches openMVG_main_ComputeSfM_DataColor openMVG_main_ComputeStructureFromKnownPoses openMVG_main_ComputeVLAD openMVG_main_ConvertList openMVG_main_ConvertSfM_DataFormat openMVG_main_evalQuality openMVG_main_ExportCameraFrustums openMVG_main_exportKeypoints openMVG_main_exportMatches openMVG_main_exportTracks openMVG_main_ExportUndistortedImages openMVG_main_FrustumFiltering openMVG_main_geodesy_registration_to_gps_position openMVG_main_ListMatchingPairs openMVG_main_MatchesToTracks openMVG_main_openMVG2Agisoft openMVG_main_openMVG2CMPMVS openMVG_main_openMVG2Colmap openMVG_main_openMVG2MESHLAB openMVG_main_openMVG2MVE2 openMVG_main_openMVG2MVSTEXTURING openMVG_main_openMVG2NVM openMVG_main_openMVG2openMVS openMVG_main_openMVG2PMVS openMVG_main_openMVG2WebGL openMVG_main_openMVGSpherical2Cubic openMVG_main_PointsFiltering openMVG_main_SfMInit_ImageListing openMVG_main_SfMInit_ImageListingFromKnownPoses openMVG_main_SfM_Localization openMVG_main_SplitMatchFileIntoMatchFiles ui_openMVG_control_points_registration openMVG_main_GeometricFilter openMVG_main_PairGenerator openMVG_main_SfM ) if("opencv" IN_LIST FEATURES) vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES openMVG_main_ComputeFeatures_OpenCV) endif() file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/sensor_width_camera_database.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/tutorial_demo.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tutorial_demo.py") file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/SfM_GlobalPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_GlobalPipeline.py") file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/SfM_SequentialPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_SequentialPipeline.py") file(COPY_FILE "${SOURCE_PATH}/src/software/SfM/import/SfM_StructurePipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_StructurePipeline.py") endif() set(third_party_notices "") file(GLOB files "${SOURCE_PATH}/src/third_party/*/README.openMVG") foreach(file IN LISTS files) cmake_path(GET file PARENT_PATH parent_path) cmake_path(GET parent_path FILENAME component) set(extra_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${component}") file(COPY_FILE "${file}" "${extra_file}") list(APPEND third_party_notices "${extra_file}") endforeach() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${third_party_notices}) ================================================ FILE: ports/openmvg/vcpkg.json ================================================ { "name": "openmvg", "version": "2.1", "port-version": 4, "description": "open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.", "homepage": "https://github.com/openMVG/openMVG", "license": null, "supports": "(x86 | x64 | arm64) & !xbox", "dependencies": [ "cereal", { "name": "ceres", "features": [ "suitesparse" ] }, "coin-or-clp", "coin-or-osi", "coinutils", "eigen3", "flann", "libjpeg-turbo", "liblemon", "libpng", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vlfeat", "zlib" ], "features": { "opencv": { "description": "Build opencv+openMVG samples programs", "dependencies": [ { "name": "opencv", "features": [ "contrib" ] } ] }, "openmp": { "description": "OpenMP support" }, "software": { "description": "Build openMVG tools", "dependencies": [ "qt5-base", "qt5-svg" ] } } } ================================================ FILE: ports/openmvs/ambiguous-uint_t.diff ================================================ diff --git a/libs/Common/EventQueue.cpp b/libs/Common/EventQueue.cpp index 82f835b..fccfa41 100644 --- a/libs/Common/EventQueue.cpp +++ b/libs/Common/EventQueue.cpp @@ -80,7 +80,7 @@ bool EventQueue::IsEmpty() const return m_events.IsEmpty(); } -uint_t EventQueue::GetSize() const +SEACAVE::uint_t EventQueue::GetSize() const { Lock l(m_cs); return m_events.GetSize(); ================================================ FILE: ports/openmvs/cmake.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 920e4c3..5f7e936 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,8 +87,8 @@ if(OpenMVS_USE_OPENMP) #https://github.com/Kitware/CMake/blob/42212f7539040139ecec092547b7d58ef12a4d72/Modules/FindOpenMP.cmake#L252 if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang" AND (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.0")) SET(OpenMP_LIBS ${OpenMP_libomp_LIBRARY}) - LIST(APPEND OpenMVS_EXTRA_LIBS ${OpenMP_LIBS}) endif() + LIST(APPEND OpenMVS_EXTRA_LIBS OpenMP::OpenMP_CXX) else() MESSAGE("-- Can't find OpenMP. Continuing without it.") endif() @@ -109,7 +109,10 @@ if(OpenMVS_USE_OPENGL) endif() if(OpenMVS_USE_CUDA) - FIND_PACKAGE(CUDA) + FIND_PACKAGE(CUDAToolkit REQUIRED) + set(CUDA_FOUND 1) + set(CUDA_INCLUDE_DIRS "${CUDAToolkit_INCLUDE_DIRS}") + set(CUDA_CUDA_LIBRARY CUDA::cuda_driver) if(CUDA_FOUND) ENABLE_LANGUAGE(CUDA) # CUDA-11.x can not be compiled using C++14 standard on Windows @@ -190,15 +193,10 @@ if(OpenMVS_USE_PYTHON) endif() endif() -FIND_PACKAGE(Boost REQUIRED COMPONENTS iostreams program_options system serialization OPTIONAL_COMPONENTS ${Boost_EXTRA_COMPONENTS}) +FIND_PACKAGE(Boost REQUIRED COMPONENTS assert graph iostreams pool serialization throw_exception OPTIONAL_COMPONENTS ${Boost_EXTRA_COMPONENTS}) if(Boost_FOUND) LIST(APPEND OpenMVS_EXTRA_INCLUDES ${Boost_INCLUDE_DIRS}) - INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) - ADD_DEFINITIONS(${Boost_DEFINITIONS}) - LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) if(NOT MSVC AND DEFINED CMAKE_TOOLCHAIN_FILE) - # work around this missing library link in vcpkg - LIST(APPEND Boost_LIBRARIES zstd) endif() SET(_USE_BOOST TRUE) if(OpenMVS_USE_PYTHON AND Boost_${Boost_EXTRA_COMPONENTS}_FOUND) @@ -206,11 +204,9 @@ if(Boost_FOUND) endif() endif() -FIND_PACKAGE(Eigen3 3.4 REQUIRED) +FIND_PACKAGE(Eigen3 3.4...5 CONFIG REQUIRED) +set(EIGEN3_FOUND 1) if(EIGEN3_FOUND) - LIST(APPEND OpenMVS_EXTRA_INCLUDES ${EIGEN3_INCLUDE_DIR}) - INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR}) - ADD_DEFINITIONS(${EIGEN3_DEFINITIONS}) SET(_USE_EIGEN TRUE) MESSAGE(STATUS "Eigen ${EIGEN3_VERSION} found (include: ${EIGEN3_INCLUDE_DIR})") endif() @@ -282,11 +278,11 @@ INCLUDE(CMakePackageConfigHelpers) write_basic_package_version_file("${PROJECT_BINARY_DIR}/OpenMVSConfigVersion.cmake" VERSION ${OpenMVS_VERSION} COMPATIBILITY AnyNewerVersion) -SET(INSTALL_INCLUDE_DIR_IN ${INSTALL_INCLUDE_DIR_PREFIX} ${OpenMVS_EXTRA_INCLUDES}) -SET(INSTALL_CMAKE_DIR_IN ${INSTALL_CMAKE_DIR_PREFIX}) +SET(INSTALL_INCLUDE_DIR_IN "${CMAKE_INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR}" ${OpenMVS_EXTRA_INCLUDES}) +SET(INSTALL_CMAKE_DIR_IN "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}") configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/build/Templates/OpenMVSConfig.cmake.in" "${PROJECT_BINARY_DIR}/OpenMVSConfig.cmake" - INSTALL_DESTINATION ${PROJECT_BINARY_DIR} + INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}" NO_SET_AND_CHECK_MACRO) # Install the OpenMVSConfig.cmake and OpenMVSConfigVersion.cmake INSTALL(FILES diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 3bb00c6..e54c840 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -1,3 +1,5 @@ +find_package(Boost COMPONENTS program_options) +list(APPEND OpenMVS_EXTRA_LIBS Boost::program_options) # Add applications ADD_SUBDIRECTORY(InterfaceCOLMAP) ADD_SUBDIRECTORY(InterfaceMetashape) diff --git a/build/Templates/OpenMVSConfig.cmake.in b/build/Templates/OpenMVSConfig.cmake.in index 9747b3e..514f5a0 100644 --- a/build/Templates/OpenMVSConfig.cmake.in +++ b/build/Templates/OpenMVSConfig.cmake.in @@ -15,8 +15,27 @@ set(OpenMVS_INCLUDE_DIRS "@INSTALL_INCLUDE_DIR_IN@") set(OpenMVS_DEFINITIONS "@OpenMVS_DEFINITIONS@") +include(CMakeFindDependencyMacro) +find_dependency(Boost COMPONENTS iostreams pool serialization throw_exception) +find_dependency(Eigen3 CONFIG) +find_dependency(OpenCV) +find_dependency(CGAL) +if("@OpenMVS_USE_CERES@") + find_dependency(Ceres) +endif() +if("@OpenMVS_USE_CUDA@") + find_dependency(CUDAToolkit) + list(APPEND OpenMVS_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIRS}) +endif() +if("@OpenMVS_USE_OPENGL@") + find_dependency(OpenGL) +endif() +if("@OpenMVS_USE_OPENMP@") + find_dependency(OpenMP COMPONENTS CXX) +endif() + # These are IMPORTED targets created by OpenMVSTargets.cmake -set(OpenMVS_LIBRARIES MVS) +set(OpenMVS_LIBRARIES OpenMVS::MVS) set(OpenMVS_BINARIES InterfaceCOLMAP DensifyPointCloud ReconstructMesh RefineMesh TextureMesh) include("${CMAKE_CURRENT_LIST_DIR}/OpenMVSTargets.cmake") diff --git a/build/Utils.cmake b/build/Utils.cmake index 86d3430..b69fe50 100644 --- a/build/Utils.cmake +++ b/build/Utils.cmake @@ -119,6 +119,7 @@ macro(GetOperatingSystemArchitectureBitness) # Detect GNU version: set(CMAKE_FLG_GCC_VERSION_NUM 0) if(CMAKE_COMPILER_IS_GNUCXX) + if(0) # informational, breaking for Android execute_process(COMMAND ${CMAKE_CXX_COMPILER} --version OUTPUT_VARIABLE CMAKE_FLG_GCC_VERSION_FULL OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -144,6 +145,7 @@ macro(GetOperatingSystemArchitectureBitness) set(CMAKE_FLG_GCC_VERSION ${CMAKE_FLG_GCC_VERSION_MAJOR}${CMAKE_FLG_GCC_VERSION_MINOR}) math(EXPR CMAKE_FLG_GCC_VERSION_NUM "${CMAKE_FLG_GCC_VERSION_MAJOR}*100 + ${CMAKE_FLG_GCC_VERSION_MINOR}") message(STATUS "Detected version of GNU GCC: ${CMAKE_FLG_GCC_VERSION} (${CMAKE_FLG_GCC_VERSION_NUM})") + endif() if(WIN32) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine @@ -174,6 +176,7 @@ macro(ComposePackageLibSuffix) set(PACKAGE_LIB_SUFFIX_DBG "") set(PACKAGE_LIB_SUFFIX_REL "") if(MSVC) + elseif(0) # do not use subdirs per vc version/config if("${MSVC_VERSION}" STRGREATER "1929") set(PACKAGE_LIB_SUFFIX "/vc17") elseif("${MSVC_VERSION}" STRGREATER "1916") @@ -422,6 +425,7 @@ macro(optimize_default_compiler_settings) endif() else() list(FIND CMAKE_CXX_COMPILE_FEATURES "cxx_std_20" CXX_STD_INDEX) + set(CXX_STD_INDEX -1) # std::shared_ptr<>::unique() in libs/Common/FastDelegateCPP11.h if(${CXX_STD_INDEX} GREATER -1) set(CMAKE_CXX_STANDARD 20) else() @@ -624,7 +628,7 @@ macro(optimize_default_compiler_settings) if(NOT MSVC64) # 64-bit MSVC compiler uses SSE/SSE2 by default - if(ENABLE_SSE) + if(ENABLE_SSE AND NOT ENABLE_SSE2) set(BUILD_EXTRA_FLAGS "${BUILD_EXTRA_FLAGS} /arch:SSE") endif() if(ENABLE_SSE2) @@ -819,6 +823,7 @@ macro(ConfigLibrary) set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files") # Make relative paths absolute (needed later on) foreach(p LIB BIN INCLUDE CMAKE) + break() # keep relative paths set(var INSTALL_${p}_DIR) set(varp INSTALL_${p}_DIR_PREFIX) if(IS_ABSOLUTE "${${varp}}") @@ -847,6 +852,10 @@ function(cxx_library_with_type name folder type cxx_flags) if(BUILD_SHARED_LIBS OR PARTIAL_BUILD_SHARED_LIBS) set_target_properties("${name}" PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() + set(ambiguous_names Common IO Math) + if(name IN_LIST ambiguous_names) + set_target_properties("${name}" PROPERTIES OUTPUT_NAME "MVS_${name}") + endif() endfunction() # cxx_executable_with_flags(name cxx_flags libs srcs...) diff --git a/libs/Common/CMakeLists.txt b/libs/Common/CMakeLists.txt index 18899af..258ada0 100644 --- a/libs/Common/CMakeLists.txt +++ b/libs/Common/CMakeLists.txt @@ -12,7 +12,18 @@ IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.16.0) endif() # Link its dependencies -TARGET_LINK_LIBRARIES(Common ${Boost_LIBRARIES} ${OpenCV_LIBS}) +TARGET_LINK_LIBRARIES(Common + $ + Boost::iostreams + Boost::pool + Boost::serialization + Boost::throw_exception + ${OpenCV_LIBS} + Eigen3::Eigen +) +if(BUILD_EXTRA_FLAGS MATCHES "/Zc:__cplusplus") + target_compile_options(Common PUBLIC "$<$:-Zc:__cplusplus>") +endif() # Install SET_TARGET_PROPERTIES(Common PROPERTIES diff --git a/libs/MVS/CMakeLists.txt b/libs/MVS/CMakeLists.txt index 8533865..2a13923 100644 --- a/libs/MVS/CMakeLists.txt +++ b/libs/MVS/CMakeLists.txt @@ -48,7 +48,13 @@ endif() if(_USE_CUDA) SET_TARGET_PROPERTIES(MVS PROPERTIES CUDA_ARCHITECTURES "50;72;75") endif() -TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO CGAL::CGAL ${CERES_LIBRARIES} ${CUDA_CUDA_LIBRARY}) +TARGET_LINK_LIBRARIES(MVS PRIVATE Math IO CGAL::CGAL ${CERES_LIBRARIES} ${CUDA_CUDA_LIBRARY}) +TARGET_LINK_LIBRARIES(MVS PUBLIC Common) +TARGET_LINK_LIBRARIES(MVS PRIVATE $) +if(OpenMVS_USE_OPENMP) + target_link_libraries(MVS PRIVATE "$") +endif() +TARGET_INCLUDE_DIRECTORIES(MVS PUBLIC "$") if(OpenMVS_USE_PYTHON) # Create the Python wrapper ================================================ FILE: ports/openmvs/common-log.diff ================================================ diff --git a/libs/Common/Log.cpp b/libs/Common/Log.cpp index da19bd1..d92ae9b 100644 --- a/libs/Common/Log.cpp +++ b/libs/Common/Log.cpp @@ -417,7 +417,9 @@ void LogConsole::Open() { if (IsOpen()) return; + #ifndef _USE_COSOLEFILEHANDLES ++m_fileIn; + #endif // register with our log system GET_LOG().RegisterListener(DELEGATEBINDCLASS(Log::ClbkRecordMsg, &LogConsole::Record, this)); } @@ -428,7 +430,9 @@ void LogConsole::Close() return; // unregister with our log system GET_LOG().UnregisterListener(DELEGATEBINDCLASS(Log::ClbkRecordMsg, &LogConsole::Record, this)); + #ifndef _USE_COSOLEFILEHANDLES --m_fileIn; + #endif } void LogConsole::Record(const String& msg) ================================================ FILE: ports/openmvs/devendor.diff ================================================ diff --git a/build/Templates/OpenMVSConfig.cmake.in b/build/Templates/OpenMVSConfig.cmake.in index 514f5a0..4906fc5 100644 --- a/build/Templates/OpenMVSConfig.cmake.in +++ b/build/Templates/OpenMVSConfig.cmake.in @@ -20,6 +20,7 @@ find_dependency(Boost COMPONENTS iostreams pool serialization throw_exception) find_dependency(Eigen3 CONFIG) find_dependency(OpenCV) find_dependency(CGAL) +find_dependency(tinyxml2 CONFIG) if("@OpenMVS_USE_CERES@") find_dependency(Ceres) endif() diff --git a/libs/IO/CMakeLists.txt b/libs/IO/CMakeLists.txt index 0f05951..64c674f 100644 --- a/libs/IO/CMakeLists.txt +++ b/libs/IO/CMakeLists.txt @@ -27,6 +27,7 @@ endif() # List sources files FILE(GLOB LIBRARY_FILES_C "*.cpp") FILE(GLOB LIBRARY_FILES_H "*.h" "*.inl") +list(FILTER LIBRARY_FILES_C EXCLUDE REGEX "TinyXML2") cxx_library_with_type(IO "Libs" "" "${cxx_default}" ${LIBRARY_FILES_C} ${LIBRARY_FILES_H} @@ -39,6 +40,12 @@ endif() # Link its dependencies TARGET_LINK_LIBRARIES(IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS}) +find_package(nlohmann_json CONFIG REQUIRED) +target_link_libraries(IO $) +find_path(TINYGLTF_INCLUDE_DIR "tiny_gltf.h") +target_include_directories(IO PRIVATE "${TINYGLTF_INCLUDE_DIR}") +find_package(tinyxml2 CONFIG REQUIRED) +target_link_libraries(IO tinyxml2::tinyxml2) # Install SET_TARGET_PROPERTIES(IO PROPERTIES diff --git a/libs/IO/TinyXML2.h b/libs/IO/TinyXML2.h index ae237ad..00162df 100644 --- a/libs/IO/TinyXML2.h +++ b/libs/IO/TinyXML2.h @@ -21,8 +21,10 @@ must not be misrepresented as being the original software. distribution. */ -#ifndef TINYXML2_INCLUDED -#define TINYXML2_INCLUDED +#ifndef TINYXML2_INCLUDED_OPENMVS +#define TINYXML2_INCLUDED_OPENMVS +#include +#elif 0 #if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__) # include diff --git a/libs/IO/json.hpp b/libs/IO/json.hpp index b6d30f8..c5380e8 100644 --- a/libs/IO/json.hpp +++ b/libs/IO/json.hpp @@ -27,8 +27,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef NLOHMANN_JSON_HPP -#define NLOHMANN_JSON_HPP +#ifndef NLOHMANN_JSON_HPP_OPENMVS +#define NLOHMANN_JSON_HPP_OPENMVS +#include +#elif 0 #define NLOHMANN_JSON_VERSION_MAJOR 3 #define NLOHMANN_JSON_VERSION_MINOR 5 diff --git a/libs/IO/tiny_gltf.h b/libs/IO/tiny_gltf.h index 4718b6c..4cd2e1a 100644 --- a/libs/IO/tiny_gltf.h +++ b/libs/IO/tiny_gltf.h @@ -50,8 +50,13 @@ // - base64: base64 decode/encode library. // - stb_image: Image loading library. // -#ifndef TINY_GLTF_H_ -#define TINY_GLTF_H_ +#ifndef TINY_GLTF_H_OPENMVS +#define TINY_GLTF_H_OPENMVS +#include +#ifdef TINYGLTF_IMPLEMENTATION +#undef TINYGLTF_IMPLEMENTATION +#endif +#elif 0 #include #include diff --git a/libs/MVS/Mesh.cpp b/libs/MVS/Mesh.cpp index 589ad88..74a7e9e 100644 --- a/libs/MVS/Mesh.cpp +++ b/libs/MVS/Mesh.cpp @@ -1763,14 +1763,17 @@ bool Mesh::SaveGLTF(const String& fileName, bool bBinary) const // setup GLTF struct Tools { static bool WriteImageData(const std::string *basepath, const std::string *filename, - tinygltf::Image *image, bool embedImages, void *) { + // tinygltf 2.5...2.9: const image + out_uri, fs/uri callbacks. + const tinygltf::Image *image, bool embedImages, + const tinygltf::FsCallbacks *, const tinygltf::URICallbacks *, + std::string *out_uri, void *) { ASSERT(!embedImages); - image->uri = Util::isFullPath(filename->c_str()) ? + *out_uri = Util::isFullPath(filename->c_str()) ? Util::getRelativePath(*basepath, *filename) : String(*filename); String basePath(*basepath); return cv::imwrite( - Util::ensureFolderSlash(basePath) + image->uri, - cv::Mat(image->height, image->width, CV_8UC3, image->image.data())); + Util::ensureFolderSlash(basePath) + *out_uri, + cv::Mat(image->height, image->width, CV_8UC3, const_cast(image)->image.data())); } }; tinygltf::TinyGLTF gltf; ================================================ FILE: ports/openmvs/interface-metashape.diff ================================================ diff --git a/apps/InterfaceMetashape/InterfaceMetashape.cpp b/apps/InterfaceMetashape/InterfaceMetashape.cpp index 03a80ce..5df6a21 100644 --- a/apps/InterfaceMetashape/InterfaceMetashape.cpp +++ b/apps/InterfaceMetashape/InterfaceMetashape.cpp @@ -625,7 +625,7 @@ bool ParseSceneXML(Scene& scene, PlatformDistCoeffs& pltDistCoeffs, size_t& nCam } const size_t nLen(pStream->getSize()); String str; str.resize(nLen); - pStream->read(&str[0], nLen); + pStream->read(str.data(), nLen); doc.Parse(str.c_str(), nLen); } if (doc.ErrorID() != tinyxml2::XML_SUCCESS) { ================================================ FILE: ports/openmvs/missing-include.diff ================================================ diff --git a/libs/Common/Types.h b/libs/Common/Types.h index 1ae23ce..38bd9f7 100644 --- a/libs/Common/Types.h +++ b/libs/Common/Types.h @@ -33,6 +33,7 @@ #else #include #endif +#include #include #include #include ================================================ FILE: ports/openmvs/no-absolute-paths.patch ================================================ diff --git a/scripts/python/MvgMvsPipeline.py b/scripts/python/MvgMvsPipeline.py index fd380eb..1b8fcbc 100644 --- a/scripts/python/MvgMvsPipeline.py +++ b/scripts/python/MvgMvsPipeline.py @@ -118,14 +118,15 @@ def find(afile): return None +current_dir = os.path.dirname(os.path.abspath(__file__)) # Try to find openMVG, COLMAP, and openMVS binaries in PATH -OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing") -COLMAP_BIN = whereis("colmap") -OPENMVS_BIN = whereis("ReconstructMesh") +OPENMVG_BIN = os.path.join(current_dir, '..', 'openmvg') +COLMAP_BIN = os.path.join(current_dir, '..', 'colmap') +OPENMVS_BIN = current_dir # Try to find openMVG camera sensor database -CAMERA_SENSOR_DB_FILE = "sensor_width_camera_database.txt" -CAMERA_SENSOR_DB_DIRECTORY = find(CAMERA_SENSOR_DB_FILE) +CAMERA_SENSOR_DB_FILE = os.path.join(OPENMVG_BIN, 'sensor_width_camera_database.txt') +CAMERA_SENSOR_DB_DIRECTORY = OPENMVS_BIN # Ask user for openMVG, COLMAP, and openMVS directories if not found if not OPENMVG_BIN: diff --git a/scripts/python/MvgOptimizeSfM.py b/scripts/python/MvgOptimizeSfM.py index 930d680..6eb672c 100644 --- a/scripts/python/MvgOptimizeSfM.py +++ b/scripts/python/MvgOptimizeSfM.py @@ -56,9 +56,10 @@ def launch(cmdline): sys.exit('\r\nProcess canceled by user, all files remains') +current_dir = os.path.dirname(os.path.abspath(__file__)) # Try to find openMVG and openMVS binaries in PATH -OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing") -OPENMVS_BIN = whereis("ReconstructMesh") +OPENMVG_BIN = os.path.join(current_dir, '..', 'openmvg') +OPENMVS_BIN = current_dir # Ask user for openMVG and openMVS directories if not found if not OPENMVG_BIN: ================================================ FILE: ports/openmvs/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # needs fixes endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cdcseacave/openMVS REF "v${VERSION}" SHA512 c8af808393836d0ac508cf4f1d123cf297b451927fe4ad95dd27e041099818cd6d077f95b03e34cd9fe92bf0277cce8e9386311531093d6469b8e07f08b15aba HEAD_REF master PATCHES ambiguous-uint_t.diff cmake.diff common-log.diff devendor.diff interface-metashape.diff missing-include.diff no-absolute-paths.patch ) file(REMOVE "${SOURCE_PATH}/build/Modules/FindEigen3.cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ceres OpenMVS_USE_CERES ceres VCPKG_LOCK_FIND_PACKAGE_Ceres cuda OpenMVS_USE_CUDA cuda VCPKG_LOCK_FIND_PACKAGE_CUDA opengl OpenMVS_USE_OPENGL opengl VCPKG_LOCK_FIND_PACKAGE_OpenGL openmp OpenMVS_USE_OPENMP openmp VCPKG_LOCK_FIND_PACKAGE_OpenMP tools OpenMVS_BUILD_TOOLS viewer VCPKG_LOCK_FIND_PACKAGE_GLEW viewer VCPKG_LOCK_FIND_PACKAGE_GLFW ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() set(USE_SSE OFF) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(USE_SSE ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_POLICY_DEFAULT_CMP0091=NEW # MSVC runtime, needed for CUDA -DCMAKE_POLICY_DEFAULT_CMP0167=NEW # Boost -DCMAKE_POLICY_DEFAULT_CMP0177=NEW # install() DESTINATION -DINSTALL_CMAKE_DIR:STRING=share/openmvs -DINSTALL_INCLUDE_DIR:STRING=include/openmvs -DOpenMVS_ENABLE_TESTS=OFF -DOpenMVS_USE_BREAKPAD=OFF -DOpenMVS_USE_FAST_CBRT=ON -DOpenMVS_USE_FAST_FLOAT2INT=ON -DOpenMVS_USE_FAST_INVSQRT=OFF -DOpenMVS_USE_PYTHON=OFF -DOpenMVS_USE_SSE=${USE_SSE} -DVCPKG_LOCK_FIND_PACKAGE_JPEG=ON -DVCPKG_LOCK_FIND_PACKAGE_OpenGL=ON -DVCPKG_LOCK_FIND_PACKAGE_PNG=ON -DVCPKG_LOCK_FIND_PACKAGE_TIFF=ON OPTIONS_DEBUG -DOpenMVS_BUILD_TOOLS=OFF MAYBE_UNUSED_VARIABLES # subject to features VCPKG_LOCK_FIND_PACKAGE_Ceres VCPKG_LOCK_FIND_PACKAGE_CUDA VCPKG_LOCK_FIND_PACKAGE_GLEW VCPKG_LOCK_FIND_PACKAGE_GLFW VCPKG_LOCK_FIND_PACKAGE_OpenGL VCPKG_LOCK_FIND_PACKAGE_OpenMP VCPKG_LOCK_FIND_PACKAGE_OpenMVG ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES DensifyPointCloud InterfaceCOLMAP InterfaceMetashape InterfaceMVSNet InterfacePolycam ReconstructMesh RefineMesh TextureMesh TransformScene ) if("viewer" IN_LIST FEATURES) vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES Viewer) endif() file(INSTALL "${SOURCE_PATH}/scripts/python/MvgMvsPipeline.py" "${SOURCE_PATH}/scripts/python/MvgOptimizeSfM.py" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}" ) endif() file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openmvs/usage ================================================ openmvs provides CMake targets: find_package(OpenMVS CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenMVS::MVS) ================================================ FILE: ports/openmvs/vcpkg.json ================================================ { "name": "openmvs", "version": "2.3.0", "description": "OpenMVS: open Multi-View Stereo reconstruction library", "homepage": "https://cdcseacave.github.io/", "license": "AGPL-3.0-only", "supports": "!xbox", "dependencies": [ "boost-assert", "boost-graph", "boost-iostreams", "boost-pool", "boost-serialization", "boost-system", "boost-throw-exception", { "name": "cgal", "default-features": false }, "eigen3", "libjpeg-turbo", "libpng", "nlohmann-json", { "name": "opencv", "default-features": false, "features": [ "highgui" ] }, { "name": "tiff", "default-features": false }, "tinygltf", "tinyxml2", "vcglib", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ceres": { "description": "CERES support for openmvs", "dependencies": [ "ceres" ] }, "cuda": { "description": "CUDA support for openmvs", "dependencies": [ "cuda" ] }, "opengl": { "description": "OpenGL support for openmvs", "dependencies": [ "opengl" ] }, "openmp": { "description": "OpenMP support for openmvs" }, "tools": { "description": "Install tools", "dependencies": [ "boost-program-options" ] }, "viewer": { "description": "Install Viewer tool", "dependencies": [ "glew", "glfw3", { "name": "openmvs", "features": [ "opengl", "tools" ] } ] } } } ================================================ FILE: ports/openni2/inherit_from_parent_or_project_defaults.patch ================================================ diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj index 7f54d04..08a49fe 100644 --- a/Source/Drivers/Kinect/Kinect.vcxproj +++ b/Source/Drivers/Kinect/Kinect.vcxproj @@ -72,28 +72,29 @@ $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include - $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib; + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) + $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath) true $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; - $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64; + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) + $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath) true $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include; - $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib; + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) + $(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib;$(LibraryPath) false $(SolutionDir)Bin\$(Platform)-$(Configuration)\OpenNI2\Drivers\ $(SolutionDir)Bin\Intermediate\$(Platform)-$(Configuration)\$(ProjectName)\ - $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include + $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;$(IncludePath) + $(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;$(LibraryPath) false ================================================ FILE: ports/openni2/openni2deploy.ps1 ================================================ # Note: This function signature and behavior is depended upon by applocal.ps1 function deployOpenNI2([string]$targetBinaryDir, [string]$installedDir, [string]$targetBinaryName) { if ($targetBinaryName -like "OpenNI2.dll") { if(Test-Path "$installedDir\bin\OpenNI2\OpenNI.ini") { Write-Verbose " Deploying OpenNI2 Initialization" deployBinary "$targetBinaryDir" "$installedDir\bin\OpenNI2" "OpenNI.ini" } if(Test-Path "$installedDir\bin\OpenNI2\Drivers") { Write-Verbose " Deploying OpenNI2 Drivers" New-Item "$targetBinaryDir\OpenNI2\Drivers" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null Get-ChildItem "$installedDir\bin\OpenNI2\Drivers\*.*" -include "*.dll","*.ini" | % { deployBinary "$targetBinaryDir\OpenNI2\Drivers" "$installedDir\bin\OpenNI2\Drivers" $_.Name } } } } ================================================ FILE: ports/openni2/portfile.cmake ================================================ find_path(COR_H_PATH cor.h) if(COR_H_PATH MATCHES "NOTFOUND") message(FATAL_ERROR "Could not find . Ensure the NETFXSDK is installed.") endif() get_filename_component(NETFXSDK_PATH "${COR_H_PATH}/../.." ABSOLUTE) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenNI/OpenNI2 REF 2.2-beta2 SHA512 60a3a3043679f3069aea869e92dc5881328ce4393d4140ea8d089027321ac501ae27d283657214e2834d216d0d49bf4f29a4b3d3e43df27a6ed21f889cd0083f HEAD_REF master PATCHES upgrade_projects.patch inherit_from_parent_or_project_defaults.patch replace_environment_variable.patch ) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR) configure_file("${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" "${SOURCE_PATH}/Source/Drivers/Kinect/Kinect.vcxproj" @ONLY) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(additional_options PLATFORM "x86") endif() # Build OpenNI2 vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH OpenNI.sln OPTIONS "/p:DotNetSdkRoot=${NETFXSDK_PATH}/" NO_TOOLCHAIN_PROPS # Port uses /clr which conflicts with /EHs(a) from the toolchain NO_INSTALL # Port seems to have its own layout regarding bin/lib ${additional_options} ) # Install OpenNI2 if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(PLATFORM Win32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(PLATFORM x64) endif() set(SOURCE_INCLUDE_PATH "${SOURCE_PATH}/Include") set(SOURCE_BIN_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Bin/${PLATFORM}-Release") set(SOURCE_BIN_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Bin/${PLATFORM}-Debug") set(SOURCE_CONFIG_PATH "${SOURCE_PATH}/Config") set(SOURCE_THIRDPARTY_PATH "${SOURCE_PATH}/ThirdParty") file( INSTALL "${SOURCE_INCLUDE_PATH}/Android-Arm/OniPlatformAndroid-Arm.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/Android-Arm" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/Driver/OniDriverAPI.h" "${SOURCE_INCLUDE_PATH}/Driver/OniDriverTypes.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/Driver" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/Linux-Arm/OniPlatformLinux-Arm.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/Linux-Arm" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/Linux-x86/OniPlatformLinux-x86.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/Linux-x86" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/MacOSX/OniPlatformMacOSX.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/MacOSX" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/Win32/OniPlatformWin32.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2/Win32" ) file( INSTALL "${SOURCE_INCLUDE_PATH}/OniCAPI.h" "${SOURCE_INCLUDE_PATH}/OniCEnums.h" "${SOURCE_INCLUDE_PATH}/OniCProperties.h" "${SOURCE_INCLUDE_PATH}/OniCTypes.h" "${SOURCE_INCLUDE_PATH}/OniEnums.h" "${SOURCE_INCLUDE_PATH}/OniPlatform.h" "${SOURCE_INCLUDE_PATH}/OniProperties.h" "${SOURCE_INCLUDE_PATH}/OniVersion.h" "${SOURCE_INCLUDE_PATH}/OpenNI.h" "${SOURCE_INCLUDE_PATH}/PrimeSense.h" "${SOURCE_INCLUDE_PATH}/PS1080.h" "${SOURCE_INCLUDE_PATH}/PSLink.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openni2" ) file( INSTALL "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib" ) if(NOT VCPKG_BUILD_TYPE) file( INSTALL "${SOURCE_BIN_PATH_DEBUG}/OpenNI2.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib" ) endif() file( INSTALL "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/OniFile.dll" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PS1080.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PSLink.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/OpenNI2/Drivers" ) file( INSTALL "${SOURCE_CONFIG_PATH}/OpenNI.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/OpenNI2" ) file( INSTALL "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin" ) if(NOT VCPKG_BUILD_TYPE) file( INSTALL "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/Kinect.dll" "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/OniFile.dll" "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/PS1080.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini" "${SOURCE_BIN_PATH_DEBUG}/OpenNI2/Drivers/PSLink.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2/Drivers" ) endif() file( INSTALL "${SOURCE_CONFIG_PATH}/OpenNI.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2" ) if(NOT VCPKG_BUILD_TYPE) file( INSTALL "${SOURCE_BIN_PATH_DEBUG}/OpenNI2.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() file( INSTALL "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/Kinect.dll" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/OniFile.dll" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PS1080.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PS1080.ini" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2/Drivers/PSLink.dll" "${SOURCE_CONFIG_PATH}/OpenNI2/Drivers/PSLink.ini" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/openni2/OpenNI2/Drivers" ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(NUMBEROFBIT 32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(NUMBEROFBIT 64) endif() file( INSTALL "${SOURCE_THIRDPARTY_PATH}/GL/glut${NUMBEROFBIT}.dll" "${SOURCE_BIN_PATH_RELEASE}/NiViewer.exe" "${SOURCE_CONFIG_PATH}/OpenNI.ini" "${SOURCE_BIN_PATH_RELEASE}/OpenNI2.dll" "${SOURCE_BIN_PATH_RELEASE}/PS1080Console.exe" "${SOURCE_BIN_PATH_RELEASE}/PSLinkConsole.exe" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/openni2" ) # Deploy Script file(COPY "${CMAKE_CURRENT_LIST_DIR}/openni2deploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/OpenNI2") if(NOT VCPKG_BUILD_TYPE) file(COPY "${CMAKE_CURRENT_LIST_DIR}/openni2deploy.ps1" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/OpenNI2") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/openni2/replace_environment_variable.patch ================================================ diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj index 08a49fe..7fd8620 100644 --- a/Source/Drivers/Kinect/Kinect.vcxproj +++ b/Source/Drivers/Kinect/Kinect.vcxproj @@ -101,7 +101,7 @@ Level3 Disabled - ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; + ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include _WINDLL;%(PreprocessorDefinitions);_WINDOWS false false @@ -109,7 +109,7 @@ true Kinect10.lib;XnLib.lib;%(AdditionalDependencies) - $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86; + $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\debug\lib true @@ -117,7 +117,7 @@ Level3 Disabled - ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; + ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include _WINDLL;%(PreprocessorDefinitions);_WINDOWS false false @@ -125,7 +125,7 @@ true Kinect10.lib;XnLib.lib;%(AdditionalDependencies) - $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64; + $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\debug\lib @@ -139,7 +139,7 @@ MaxSpeed true true - ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; + ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include false @@ -147,7 +147,7 @@ true true Kinect10.lib;XnLib.lib;%(AdditionalDependencies) - $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\x86; + $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\lib true
@@ -157,7 +157,7 @@ MaxSpeed true true - ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; + ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;@NATIVE_INSTALLED_DIR@\include false @@ -165,7 +165,7 @@ true true Kinect10.lib;XnLib.lib;%(AdditionalDependencies) - $(SolutionDir)Bin\$(Platform)-$(Configuration)\;$(KINECTSDK10_DIR)\lib\amd64; + $(SolutionDir)Bin\$(Platform)-$(Configuration)\;@NATIVE_INSTALLED_DIR@\lib true ================================================ FILE: ports/openni2/upgrade_projects.patch ================================================ diff --git a/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj b/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj index fe63dbf..6050e8f 100644 --- a/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj +++ b/Samples/ClosestPointViewer/ClosestPointViewer.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -105,7 +109,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -133,7 +137,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -142,6 +146,7 @@ glut32.lib;OpenNI2.lib;MWClosestPoint.lib $(OutDir);..\..\ThirdParty\GL true + false ..\..\Include @@ -161,7 +166,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/Samples/EventBasedRead/EventBasedRead.vcxproj b/Samples/EventBasedRead/EventBasedRead.vcxproj index f67db7a..ffe19ac 100644 --- a/Samples/EventBasedRead/EventBasedRead.vcxproj +++ b/Samples/EventBasedRead/EventBasedRead.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -83,7 +87,7 @@ ..\..\Include;..\Common;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -101,7 +105,7 @@ ..\..\Include;..\Common;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -119,7 +123,7 @@ MaxSpeed true ..\..\Include;..\Common;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed @@ -144,7 +148,7 @@ MaxSpeed true ..\..\Include;..\Common;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed diff --git a/Samples/MWClosestPoint/MWClosestPoint.vcxproj b/Samples/MWClosestPoint/MWClosestPoint.vcxproj index 74cafe7..5844506 100644 --- a/Samples/MWClosestPoint/MWClosestPoint.vcxproj +++ b/Samples/MWClosestPoint/MWClosestPoint.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ DynamicLibrary true MultiByte + v141 DynamicLibrary true MultiByte + v141 DynamicLibrary false true MultiByte + v141 DynamicLibrary false true MultiByte + v141 @@ -84,7 +88,7 @@ ..\..\Include _CLOSEST_POINT;%(PreprocessorDefinitions) true - true + false @@ -105,7 +109,7 @@ ..\..\Include _CLOSEST_POINT;%(PreprocessorDefinitions) true - true + false @@ -134,7 +138,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -163,7 +167,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj b/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj index 063ec37..deb7c17 100644 --- a/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj +++ b/Samples/MWClosestPointApp/MWClosestPointApp.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -83,7 +87,7 @@ Disabled ..\MWClosestPoint;..\..\Include true - true + false @@ -103,7 +107,7 @@ Disabled ..\MWClosestPoint;..\..\Include true - true + false @@ -131,7 +135,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -159,7 +163,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj b/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj index d021c0d..85a0d4f 100644 --- a/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj +++ b/Samples/MultiDepthViewer/MultiDepthViewer.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -102,7 +106,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -127,7 +131,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -136,6 +140,7 @@ glut32.lib;OpenNI2.lib $(OutDir);..\..\ThirdParty\GL true + false @@ -152,7 +157,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj b/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj index 15887ec..5fa8202 100644 --- a/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj +++ b/Samples/MultipleStreamRead/MultipleStreamRead.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -83,7 +87,7 @@ ..\..\Include;..\Common;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -101,7 +105,7 @@ ..\..\Include;..\Common;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -119,7 +123,7 @@ MaxSpeed true ..\..\Include;..\Common;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed @@ -144,7 +148,7 @@ MaxSpeed true ..\..\Include;..\Common;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed diff --git a/Samples/SimpleRead/SimpleRead.vcxproj b/Samples/SimpleRead/SimpleRead.vcxproj index de3942f..6ce41e3 100644 --- a/Samples/SimpleRead/SimpleRead.vcxproj +++ b/Samples/SimpleRead/SimpleRead.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -83,7 +87,7 @@ ..\Common;..\..\Include;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -101,7 +105,7 @@ ..\Common;..\..\Include;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions) Level4 - true + false true @@ -119,7 +123,7 @@ MaxSpeed true ..\Common;..\..\Include;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed @@ -144,7 +148,7 @@ MaxSpeed true ..\Common;..\..\Include;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed diff --git a/Samples/SimpleViewer/SimpleViewer.vcxproj b/Samples/SimpleViewer/SimpleViewer.vcxproj index d693a1d..40621e1 100644 --- a/Samples/SimpleViewer/SimpleViewer.vcxproj +++ b/Samples/SimpleViewer/SimpleViewer.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -102,7 +106,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -127,7 +131,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -136,6 +140,7 @@ glut32.lib;OpenNI2.lib $(OutDir);..\..\ThirdParty\GL true + false @@ -152,7 +157,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/Source/Core/OpenNI.vcxproj b/Source/Core/OpenNI.vcxproj index 12189de..f176682 100644 --- a/Source/Core/OpenNI.vcxproj +++ b/Source/Core/OpenNI.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ DynamicLibrary true MultiByte + v141 DynamicLibrary true MultiByte + v141 DynamicLibrary false true MultiByte + v141 DynamicLibrary false true MultiByte + v141 @@ -88,7 +92,7 @@ _WINDLL;%(PreprocessorDefinitions);OPENNI2_EXPORT ProgramDatabase Level4 - true + false true @@ -110,7 +114,7 @@ _WINDLL;%(PreprocessorDefinitions);OPENNI2_EXPORT ProgramDatabase Level4 - true + false true @@ -132,7 +136,7 @@ true _MBCS;%(PreprocessorDefinitions);OPENNI2_EXPORT ..\..\Include;..\Drivers\OniFile\Formats;..\..\ThirdParty\PSCommon\XnLib\Include;..\..\ThirdParty\LibJPEG;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed @@ -161,7 +165,7 @@ true _MBCS;%(PreprocessorDefinitions);OPENNI2_EXPORT ..\..\Include;..\Drivers\OniFile\Formats;..\..\ThirdParty\PSCommon\XnLib\Include;..\..\ThirdParty\LibJPEG;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed diff --git a/Source/DepthUtils/DepthUtils.vcxproj b/Source/DepthUtils/DepthUtils.vcxproj index dcab0b7..e474661 100644 --- a/Source/DepthUtils/DepthUtils.vcxproj +++ b/Source/DepthUtils/DepthUtils.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -35,23 +35,27 @@ StaticLibrary true MultiByte + v141 StaticLibrary true MultiByte + v141 StaticLibrary false true MultiByte + v141 StaticLibrary false true MultiByte + v141 @@ -94,7 +98,7 @@ Disabled _WINDLL;%(PreprocessorDefinitions);DepthUtils_EXPORT Level4 - true + false true @@ -114,7 +118,7 @@ Disabled _WINDLL;%(PreprocessorDefinitions);DepthUtils_EXPORT Level4 - true + false true @@ -134,7 +138,7 @@ MaxSpeed true _MBCS;%(PreprocessorDefinitions);DepthUtils_EXPORT - true + false true true AnySuitable @@ -160,7 +164,7 @@ MaxSpeed true _MBCS;%(PreprocessorDefinitions);DepthUtils_EXPORT - true + false true AnySuitable Speed diff --git a/Source/Drivers/DummyDevice/DummyDevice.vcxproj b/Source/Drivers/DummyDevice/DummyDevice.vcxproj index 56c5944..0401f3d 100644 --- a/Source/Drivers/DummyDevice/DummyDevice.vcxproj +++ b/Source/Drivers/DummyDevice/DummyDevice.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ DynamicLibrary true MultiByte + v141 DynamicLibrary true MultiByte + v141 DynamicLibrary false true MultiByte + v141 DynamicLibrary false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions);DummyDevice2_EXPORT ProgramDatabase Level4 - true + false true @@ -104,7 +108,7 @@ _WINDLL;%(PreprocessorDefinitions);DummyDevice2_EXPORT ProgramDatabase Level4 - true + false true @@ -124,7 +128,7 @@ true _MBCS;%(PreprocessorDefinitions);DummyDevice2_EXPORT ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include - true + false true AnySuitable Speed @@ -153,7 +157,7 @@ true _MBCS;%(PreprocessorDefinitions);DummyDevice2_EXPORT ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include - true + false true AnySuitable Speed diff --git a/Source/Drivers/Kinect/Kinect.vcxproj b/Source/Drivers/Kinect/Kinect.vcxproj index f54e8b2..6ea2656 100644 --- a/Source/Drivers/Kinect/Kinect.vcxproj +++ b/Source/Drivers/Kinect/Kinect.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,12 +28,14 @@ true Unicode true + v141 DynamicLibrary true Unicode true + v141 DynamicLibrary @@ -41,6 +43,7 @@ true MultiByte true + v141 DynamicLibrary @@ -48,6 +51,7 @@ true MultiByte true + v141 @@ -99,7 +103,7 @@ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; _WINDLL;%(PreprocessorDefinitions);_WINDOWS false - true + false true @@ -115,7 +119,7 @@ ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; _WINDLL;%(PreprocessorDefinitions);_WINDOWS false - true + false true @@ -125,7 +129,7 @@ - true + false @@ -135,7 +139,7 @@ true true ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; - true + false true @@ -153,7 +157,7 @@ true true ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;$(KINECTSDK10_DIR)\inc; - true + false true diff --git a/Source/Drivers/OniFile/OniFile.vcxproj b/Source/Drivers/OniFile/OniFile.vcxproj index 9b173f7..e2f4391 100644 --- a/Source/Drivers/OniFile/OniFile.vcxproj +++ b/Source/Drivers/OniFile/OniFile.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,23 +28,27 @@ DynamicLibrary true MultiByte + v141 DynamicLibrary true MultiByte + v141 DynamicLibrary false true MultiByte + v141 DynamicLibrary false true MultiByte + v141 @@ -98,7 +102,7 @@ Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions) ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG - true + false true @@ -133,7 +137,7 @@ Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions) ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG - true + false true @@ -169,7 +173,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions) ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG - true + false true AnySuitable Speed @@ -212,7 +216,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;ONIFILESPLAYER_EXPORTS;%(PreprocessorDefinitions) ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG - true + false true AnySuitable Speed diff --git a/Source/Drivers/PS1080/PS1080.vcxproj b/Source/Drivers/PS1080/PS1080.vcxproj index 2a1154d..8495c28 100644 --- a/Source/Drivers/PS1080/PS1080.vcxproj +++ b/Source/Drivers/PS1080/PS1080.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -525,23 +525,27 @@ DynamicLibrary true Unicode + v141 DynamicLibrary true Unicode + v141 DynamicLibrary false true Unicode + v141 DynamicLibrary false true Unicode + v141 @@ -587,7 +591,7 @@ Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions) .\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils - true + false StreamingSIMDExtensions2 true @@ -612,7 +616,7 @@ Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions) .\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils - true + false StreamingSIMDExtensions2 true @@ -638,7 +642,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions) .\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils - true + false StreamingSIMDExtensions2 true AnySuitable @@ -670,7 +674,7 @@ true WIN32;NDEBUG;_WINDOWS;_USRDLL;PS1080_EXPORTS;%(PreprocessorDefinitions) .\Include;.\;..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include;..\..\..\ThirdParty\LibJPEG;..\..\DepthUtils - true + false StreamingSIMDExtensions2 true AnySuitable diff --git a/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj b/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj index b9adfea..7446d5a 100644 --- a/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj +++ b/Source/Drivers/PS1080/PS1080Console/PS1080Console.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,19 +28,23 @@ Application MultiByte true + v141 Application MultiByte + v141 Application MultiByte true + v141 Application MultiByte + v141 @@ -87,7 +91,7 @@ EditAndContinue 4250;4127;%(DisableSpecificWarnings) true - true + false XnLib.lib;OpenNI2.lib;%(AdditionalDependencies) @@ -95,7 +99,7 @@ true Console MachineX86 - true + false @@ -114,7 +118,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;OpenNI2.lib;%(AdditionalDependencies) @@ -139,7 +143,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;OpenNI2.lib;%(AdditionalDependencies) @@ -169,7 +173,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;OpenNI2.lib;%(AdditionalDependencies) diff --git a/Source/Drivers/PSLink/PSLink.vcxproj b/Source/Drivers/PSLink/PSLink.vcxproj index 8915163..68a7e96 100644 --- a/Source/Drivers/PSLink/PSLink.vcxproj +++ b/Source/Drivers/PSLink/PSLink.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,19 +28,23 @@ DynamicLibrary Unicode true + v141 DynamicLibrary Unicode + v141 DynamicLibrary Unicode true + v141 DynamicLibrary Unicode + v141 @@ -87,7 +91,7 @@ EditAndContinue 4250;4127;%(DisableSpecificWarnings) true - true + false XnLib.lib;%(AdditionalDependencies) @@ -95,7 +99,7 @@ true Windows MachineX86 - true + false @@ -115,7 +119,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;%(AdditionalDependencies) @@ -140,7 +144,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;%(AdditionalDependencies) @@ -170,7 +174,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false XnLib.lib;%(AdditionalDependencies) diff --git a/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj b/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj index e6c7c8c..26ff9c8 100644 --- a/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj +++ b/Source/Drivers/PSLink/PSLinkConsole/PSLinkConsole.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,19 +28,23 @@ Application MultiByte true + v141 Application MultiByte + v141 Application MultiByte true + v141 Application MultiByte + v141 @@ -87,7 +91,7 @@ EditAndContinue 4250;4127;%(DisableSpecificWarnings) true - true + false OpenNI2.lib;XnLib.lib;%(AdditionalDependencies) @@ -95,7 +99,7 @@ true Console MachineX86 - true + false @@ -114,7 +118,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false OpenNI2.lib;XnLib.lib;%(AdditionalDependencies) @@ -139,7 +143,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false OpenNI2.lib;XnLib.lib;%(AdditionalDependencies) @@ -169,7 +173,7 @@ Level4 ProgramDatabase 4250;4127;%(DisableSpecificWarnings) - true + false OpenNI2.lib;XnLib.lib;%(AdditionalDependencies) diff --git a/Source/Drivers/TestDevice/TestDevice.vcxproj b/Source/Drivers/TestDevice/TestDevice.vcxproj index e20a074..3777b2e 100644 --- a/Source/Drivers/TestDevice/TestDevice.vcxproj +++ b/Source/Drivers/TestDevice/TestDevice.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ DynamicLibrary true MultiByte + v141 DynamicLibrary true MultiByte + v141 DynamicLibrary false true MultiByte + v141 DynamicLibrary false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions);TestDevice2_EXPORT ProgramDatabase Level4 - true + false true @@ -101,7 +105,7 @@ _WINDLL;%(PreprocessorDefinitions);TestDevice2_EXPORT ProgramDatabase Level4 - true + false true @@ -118,7 +122,7 @@ true _MBCS;%(PreprocessorDefinitions);TestDevice2_EXPORT ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include - true + false true AnySuitable Speed @@ -144,7 +148,7 @@ true _MBCS;%(PreprocessorDefinitions);TestDevice2_EXPORT ..\..\..\Include;..\..\..\ThirdParty\PSCommon\XnLib\Include - true + false true AnySuitable Speed diff --git a/Source/Tools/NiViewer/NiViewer.vcxproj b/Source/Tools/NiViewer/NiViewer.vcxproj index 0a4c392..e331009 100644 --- a/Source/Tools/NiViewer/NiViewer.vcxproj +++ b/Source/Tools/NiViewer/NiViewer.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -27,23 +27,27 @@ Application true MultiByte + v141 Application true MultiByte + v141 Application false true MultiByte + v141 Application false true MultiByte + v141 @@ -84,7 +88,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -105,7 +109,7 @@ _WINDLL;%(PreprocessorDefinitions) Level4 true - true + false @@ -133,7 +137,7 @@ false StreamingSIMDExtensions2 Fast - true + false true @@ -142,6 +146,7 @@ Comdlg32.lib;OpenNI2.lib;XnLib.lib;glut32.lib $(OutDir);..\..\..\ThirdParty\GL true + false ..\..\..\Include @@ -161,7 +166,7 @@ false StreamingSIMDExtensions2 Fast - true + false true diff --git a/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj b/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj index 2761222..f2094b3 100644 --- a/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj +++ b/ThirdParty/PSCommon/XnLib/Source/XnLib.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -116,23 +116,27 @@ StaticLibrary true MultiByte + v141 StaticLibrary true MultiByte + v141 StaticLibrary false true MultiByte + v141 StaticLibrary false true MultiByte + v141 @@ -176,7 +180,7 @@ ..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions);XnLib_EXPORT Level4 - true + false true @@ -198,7 +202,7 @@ ..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories) _WINDLL;%(PreprocessorDefinitions);XnLib_EXPORT Level4 - true + false true @@ -220,7 +224,7 @@ true _MBCS;%(PreprocessorDefinitions);XnLib_EXPORT ..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories) - true + false true true AnySuitable @@ -248,7 +252,7 @@ true _MBCS;%(PreprocessorDefinitions);XnLib_EXPORT ..\Include;..\Driver\Win32\Build\sys;%(AdditionalIncludeDirectories) - true + false true AnySuitable Speed diff --git a/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj b/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj index b95c484..bfd0503 100644 --- a/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj +++ b/Wrappers/java/OpenNI.jni/OpenNI.jni.vcxproj @@ -2,4 +2,4 @@ - + Debug @@ -28,18 +28,22 @@ true Unicode true + v141 DynamicLibrary false true Unicode + v141 DynamicLibrary + v141 DynamicLibrary + v141 ================================================ FILE: ports/openni2/vcpkg.json ================================================ { "name": "openni2", "version": "2.2.0.33", "port-version": 15, "description": "OpenNI is open source library for access to Natural Interaction (NI) devices such as RGB-D camera.", "homepage": "https://github.com/OpenNI/OpenNI2", "license": "Apache-2.0", "supports": "!uwp & !staticcrt", "dependencies": [ "kinectsdk1", { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/openscap/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c0b074..8893e1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,8 +85,12 @@ include(FindPythonModule) find_package(ACL) if(ACL_FOUND) check_library_exists("${ACL_LIBRARY}" acl_extended_file "" HAVE_ACL_EXTENDED_FILE) - check_include_file(acl/libacl.h HAVE_ACL_LIBACL_H) - check_include_file(sys/acl.h HAVE_SYS_ACL_H) + if(EXISTS "${ACL_INCLUDE_DIR}/acl/libacl.h") + set(HAVE_ACL_LIBACL_H 1) + endif() + if(EXISTS "${ACL_INCLUDE_DIR}/sys/acl.h") + set(HAVE_SYS_ACL_H 1) + endif() endif() find_package(Blkid) diff --git a/cmake/FindACL.cmake b/cmake/FindACL.cmake index a41f2c1..9675498 100644 --- a/cmake/FindACL.cmake +++ b/cmake/FindACL.cmake @@ -12,7 +12,7 @@ libfind_pkg_check_modules(ACL_PKGCONF libacl) # Include dir find_path(ACL_INCLUDE_DIR - NAMES "acl/libacl.h" "sys/libacl.h" + NAMES "acl/libacl.h" "sys/acl.h" PATHS ${ACL_PKGCONF_INCLUDE_DIRS} ) diff --git a/cmake/FindGCrypt.cmake b/cmake/FindGCrypt.cmake index 00fc4b3..d7997f6 100644 --- a/cmake/FindGCrypt.cmake +++ b/cmake/FindGCrypt.cmake @@ -18,6 +18,10 @@ #============================================================================= # +find_package(PkgConfig) +pkg_check_modules(GCRYPT libgcrypt) +set(GCRYPT_LIBRARIES "${GCRYPT_LINK_LIBRARIES}") + if (GCRYPT_LIBRARIES AND GCRYPT_INCLUDE_DIRS) # in cache already # set(GCRYPT_FOUND TRUE) ================================================ FILE: ports/openscap/install-dirs.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f01a91..4c0b074 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -503,6 +503,9 @@ else() set(OSCAP_DEFAULT_XSLT_PATH "${CMAKE_INSTALL_FULL_DATADIR}/openscap/xsl") set(OSCAP_DEFAULT_CPE_PATH "${CMAKE_INSTALL_FULL_DATADIR}/openscap/cpe") endif() +set(OSCAP_DEFAULT_SCHEMA_PATH share/openscap/schemas) +set(OSCAP_DEFAULT_XSLT_PATH share/openscap/xsl) +set(OSCAP_DEFAULT_CPE_PATH share/openscap/cpe) set(OSCAP_TEMP_DIR "/tmp" CACHE STRING "use different temporary directory to execute sce scripts (default=/tmp)") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5d59bf3..d6919d0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -125,4 +125,8 @@ else() set(OPENSCAP_INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -install(TARGETS openscap DESTINATION ${OPENSCAP_INSTALL_DESTINATION}) +install(TARGETS openscap + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index c372663..e0c8cc1 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -24,18 +24,11 @@ if(ENABLE_OSCAP_UTIL) target_link_libraries(oscap ${GETOPT_LIBRARY}) endif() - set(OSCAP_UTIL_DESTINATION ".") + set(OSCAP_UTIL_DESTINATION bin) # Install the 'oscap' utility install(TARGETS "oscap" DESTINATION ${OSCAP_UTIL_DESTINATION} ) - # Install all recursively dependent DLLs for oscap.exe - set(APPS "\${CMAKE_INSTALL_PREFIX}/oscap.exe") # the \ before $ is required by BundleUtilities - set(VCPKG_DLL_DIR "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin") - install(CODE " - include(BundleUtilities) - fixup_bundle(\"${APPS}\" \"\" \"${VCPKG_DLL_DIR}\") - ") else() set(OSCAP_UTIL_DESTINATION ${CMAKE_INSTALL_BINDIR}) # Install the 'oscap' utility ================================================ FILE: ports/openscap/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenSCAP/openscap REF ${VERSION} SHA512 7d94ad18d456d8fcbe9f46e88d797cdd749b72cd3afd20087dc6d46aad16dfb380f667586343e7334e4d1e59d0d10cee7b5f1fac7a03598a1dd49629514cfc75 HEAD_REF main PATCHES dependencies.diff install-dirs.diff python-win32.diff ) file(REMOVE "${SOURCE_PATH}/cmake/FindThreads.cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES crypto VCPKG_LOCK_FIND_PACKAGE_GCrypt python ENABLE_PYTHON3 util ENABLE_OSCAP_UTIL ) if("python" IN_LIST FEATURES) vcpkg_get_vcpkg_installed_python(PYTHON3) vcpkg_find_acquire_program(SWIG) list(APPEND FEATURE_OPTIONS "-DPYTHON_EXECUTABLE=${PYTHON3}" -DVCPKG_LOCK_FIND_PACKAGE_PythonInterp=ON -DVCPKG_LOCK_FIND_PACKAGE_PythonLibs=ON "-DSWIG_EXECUTABLE=${SWIG}" -DVCPKG_LOCK_FIND_PACKAGE_SWIG=ON ) endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DCMAKE_POLICY_DEFAULT_CMP0148=OLD -DENABLE_DOCS=OFF -DENABLE_MITRE=OFF -DENABLE_OSCAP_UTIL_DOCKER=OFF -DENABLE_OSCAP_UTIL_AS_RPM=OFF -DENABLE_OSCAP_UTIL_SSH=OFF -DENABLE_OSCAP_UTIL_VM=OFF -DENABLE_OSCAP_UTIL_PODMAN=OFF -DENABLE_OSCAP_UTIL_CHROOT=OFF -DENABLE_PERL=OFF -DENABLE_TESTS=OFF -DENABLE_VALGRIND=OFF "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON -DVCPKG_LOCK_FIND_PACKAGE_ACL=${VCPKG_TARGET_IS_LINUX} -DVCPKG_LOCK_FIND_PACKAGE_Blkid=OFF -DVCPKG_LOCK_FIND_PACKAGE_BZip2=OFF -DVCPKG_LOCK_FIND_PACKAGE_Cap=OFF -DVCPKG_LOCK_FIND_PACKAGE_CURL=ON -DVCPKG_LOCK_FIND_PACKAGE_DBUS=OFF -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF -DVCPKG_LOCK_FIND_PACKAGE_GConf=OFF -DVCPKG_LOCK_FIND_PACKAGE_Ldap=OFF -DVCPKG_LOCK_FIND_PACKAGE_Libyaml=ON -DVCPKG_LOCK_FIND_PACKAGE_OpenDbx=OFF -DVCPKG_LOCK_FIND_PACKAGE_PerlLibs=OFF -DVCPKG_LOCK_FIND_PACKAGE_Popt=OFF -DVCPKG_LOCK_FIND_PACKAGE_Procps=OFF -DVCPKG_LOCK_FIND_PACKAGE_Systemd=OFF -DVCPKG_LOCK_FIND_PACKAGE_SELinux=OFF -DVCPKG_LOCK_FIND_PACKAGE_RPM=OFF -DVCPKG_LOCK_FIND_PACKAGE_Popt=OFF -DWANT_BASE64=OFF # clash with base64 in gsasl (transitive dep of curl) OPTIONS_RELEASE "-DPYTHON_SITE_PACKAGES_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/lib/site-packages" OPTIONS_DEBUG "-DPYTHON_SITE_PACKAGES_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/debug/lib/site-packages" MAYBE_UNUSED_VARIABLES PYTHON_SITE_PACKAGES_INSTALL_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() set(scripts autotailor oscap-run-sce-script) if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND scripts oscap-im) endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") foreach(script IN LISTS scripts) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endforeach() if(ENABLE_OSCAP_UTIL) vcpkg_copy_tools(TOOL_NAMES oscap AUTO_CLEAN) else() vcpkg_clean_executables_in_bin(FILE_NAMES none) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/openscap/python-win32.diff ================================================ diff --git a/swig/python3/CMakeLists.txt b/swig/python3/CMakeLists.txt index cbad9f9..1aba788 100644 --- a/swig/python3/CMakeLists.txt +++ b/swig/python3/CMakeLists.txt @@ -6,6 +6,9 @@ include_directories(${PYTHON_INCLUDE_PATH}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) set(CMAKE_SWIG_FLAGS "-module" "openscap_py") +if (WIN32) + list(APPEND CMAKE_SWIG_FLAGS "-D_WIN32") +endif() if (${CMAKE_VERSION} VERSION_LESS "3.8.0") swig_add_module(openscap_py python ../openscap.i) else() @@ -17,7 +20,7 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Cl endif() add_custom_command(OUTPUT ${PYTHON_COMPILED_FILES} - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../openscap_api.py ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/../openscap_api.py ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PYTHON_EXECUTABLE} -m compileall ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${PYTHON_EXECUTABLE} -O -m compileall ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${SWIG_MODULE_openscap_py_REAL_NAME} ================================================ FILE: ports/openscap/vcpkg.json ================================================ { "name": "openscap", "version": "1.4.2", "description": "OpenSCAP represents both a library and a command line tool which can be used to parse and evaluate each component of the SCAP standard.", "homepage": "https://www.open-scap.org/tools/openscap-base/", "license": "LGPL-2.1-or-later", "supports": "(linux | windows) & !(static & staticcrt)", "dependencies": [ { "name": "acl", "platform": "linux" }, { "name": "curl", "default-features": false }, "glib", "libpopt", { "name": "libxml2", "default-features": false }, { "name": "libxslt", "default-features": false }, "libyaml", "libzip", "openssl", "pcre", "pthreads", { "name": "vcpkg-cmake", "host": true }, "xmlsec", { "name": "zlib", "platform": "windows" } ], "features": { "crypto": { "description": "Build with crypto support", "dependencies": [ { "name": "libgcrypt", "platform": "!windows | mingw" }, { "name": "shiftmedia-libgcrypt", "platform": "windows & !mingw" } ] }, "python": { "description": "Build Python SWIG bindings", "dependencies": [ { "name": "openscap", "features": [ "crypto" ] }, "python3" ] }, "util": { "description": "Build the oscap utility", "dependencies": [ { "name": "getopt-win32", "platform": "windows" }, { "name": "openscap", "features": [ "crypto" ] } ] } } } ================================================ FILE: ports/openslide/cross-build.diff ================================================ diff --git a/meson.build b/meson.build index 0b4d7d4..de8773c 100644 --- a/meson.build +++ b/meson.build @@ -45,7 +45,7 @@ versions = { # Compiler flags cc = meson.get_compiler('c') -cc_native = meson.get_compiler('c', native : true) +cc_native = meson.get_compiler('c') add_project_arguments( cc.get_supported_arguments( '-Wstrict-prototypes', diff --git a/src/meson.build b/src/meson.build index e886eea..97309e5 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,3 +1,6 @@ +if meson.is_cross_build() + openslide_tables_c = [ '../openslide-tables.c' ] +else # generate openslide-tables.c make_tables = executable( 'make-tables', 'make-tables.c', @@ -9,6 +12,7 @@ openslide_tables_c = custom_target( output : 'openslide-tables.c', command : [make_tables, '@OUTPUT@'], ) +endif # Windows resources openslide_dll_manifest = configure_file( ================================================ FILE: ports/openslide/fix-win-build.patch ================================================ diff --git a/common/openslide-common-fd.c b/common/openslide-common-fd.c index 3d3ce955f3c1..20127ce4bdd9 100644 --- a/common/openslide-common-fd.c +++ b/common/openslide-common-fd.c @@ -27,10 +27,13 @@ #include #include -#include #include #include +#ifndef _WIN32 +#include +#endif + #ifdef __APPLE__ #include // MAXPATHLEN #include diff --git a/meson.build b/meson.build index 0b4d7d47b695..ac106fb1001f 100644 --- a/meson.build +++ b/meson.build @@ -59,6 +59,17 @@ add_project_arguments( '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_MIN_REQUIRED', language : 'c' ) +if host_machine.system() == 'windows' + # Windows likes to warn about C and POSIX functions + foreach native : [false, true] + add_project_arguments( + '-D_CRT_NONSTDC_NO_DEPRECATE', + '-D_CRT_SECURE_NO_WARNINGS', + language : 'c', + native : native, + ) + endforeach +endif add_project_link_arguments( cc.get_supported_link_arguments( '-Wl,--no-undefined', @@ -66,6 +77,13 @@ add_project_link_arguments( language : 'c' ) +# Functions +foreach f : ['fseeko', 'ftello'] + if cc.has_function(f) + conf.set('HAVE_' + f.to_upper(), 1) + endif +endforeach + # fopen cloexec flag if host_machine.system() in ['dragonfly', 'freebsd', 'linux', 'netbsd', 'openbsd'] message('Using "e" flag for close-on-exec') diff --git a/src/meson.build b/src/meson.build index e886eea4b5c4..4be22f64aef7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -24,6 +24,8 @@ openslide_dll_rc = configure_file( if host_machine.system() == 'windows' openslide_dll_o = import('windows').compile_resources( openslide_dll_rc, + # https://github.com/llvm/llvm-project/issues/63426 + args : [cc.get_argument_syntax() == 'msvc' ? '/c' : '-c', '65001'], depend_files : [openslide_dll_manifest], ) else diff --git a/src/openslide-decode-dicom.c b/src/openslide-decode-dicom.c index 24dcfbfe4568..d5fa053e94ef 100644 --- a/src/openslide-decode-dicom.c +++ b/src/openslide-decode-dicom.c @@ -88,7 +88,7 @@ static int64_t vfs_seek(DcmError **dcm_error, DcmIO *io, // libdicom uses lseek(2) semantics, so it must always return the new file // pointer - off_t new_position = _openslide_ftell(dio->file, &err); + int64_t new_position = _openslide_ftell(dio->file, &err); if (new_position < 0) { propagate_gerror(dcm_error, err); } diff --git a/src/openslide-decode-tifflike.c b/src/openslide-decode-tifflike.c index 626cd4039110..3ca3e374f208 100644 --- a/src/openslide-decode-tifflike.c +++ b/src/openslide-decode-tifflike.c @@ -470,8 +470,9 @@ static struct tiff_directory *read_directory(struct _openslide_file *f, return NULL; } - // check for overflow - if (count > SSIZE_MAX / value_size) { + // compute total size + size_t value_len; + if (!g_size_checked_mul(&value_len, value_size, count)) { g_set_error(err, OPENSLIDE_ERROR, OPENSLIDE_ERROR_FAILED, "Value count too large"); return NULL; @@ -486,7 +487,7 @@ static struct tiff_directory *read_directory(struct _openslide_file *f, } // does value/offset contain the value? - if (value_size * count <= sizeof(value)) { + if (value_len <= sizeof(value)) { // yes fix_byte_order(value, value_size, count, big_endian); if (!set_item_values(item, value, err)) { diff --git a/src/openslide-dll.rc.in b/src/openslide-dll.rc.in index 0670ee539e02..47e4d729e2bd 100644 --- a/src/openslide-dll.rc.in +++ b/src/openslide-dll.rc.in @@ -10,16 +10,16 @@ FILETYPE VFT_DLL BEGIN BLOCK "StringFileInfo" BEGIN - BLOCK "040904e4" + BLOCK "040904b0" BEGIN VALUE "FileDescription", "OpenSlide library" VALUE "FileVersion", "@SUFFIXED_VERSION@" VALUE "InternalName", "OpenSlide" - VALUE "LegalCopyright", "Copyright \251 2007-2023 Carnegie Mellon University and others. OpenSlide is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1." + VALUE "LegalCopyright", "Copyright © 2007-2023 Carnegie Mellon University and others. OpenSlide is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1." END END BLOCK "VarFileInfo" BEGIN - VALUE "Translation", 0x0409, 0x04e4 + VALUE "Translation", 0x0409, 0x04b0 END END diff --git a/src/openslide-file.c b/src/openslide-file.c index 2763f38071dc..11b568913cfe 100644 --- a/src/openslide-file.c +++ b/src/openslide-file.c @@ -36,6 +36,13 @@ #include #endif +#if !defined(HAVE_FSEEKO) && defined(_WIN32) +#define fseeko _fseeki64 +#endif +#if !defined(HAVE_FTELLO) && defined(_WIN32) +#define ftello _ftelli64 +#endif + struct _openslide_file { FILE *fp; }; @@ -141,7 +148,7 @@ size_t _openslide_fread(struct _openslide_file *file, void *buf, size_t size) { return total; } -bool _openslide_fseek(struct _openslide_file *file, off_t offset, int whence, +bool _openslide_fseek(struct _openslide_file *file, int64_t offset, int whence, GError **err) { if (fseeko(file->fp, offset, whence)) { g_set_error(err, G_FILE_ERROR, g_file_error_from_errno(errno), @@ -151,8 +158,8 @@ bool _openslide_fseek(struct _openslide_file *file, off_t offset, int whence, return true; } -off_t _openslide_ftell(struct _openslide_file *file, GError **err) { - off_t ret = ftello(file->fp); +int64_t _openslide_ftell(struct _openslide_file *file, GError **err) { + int64_t ret = ftello(file->fp); if (ret == -1) { g_set_error(err, G_FILE_ERROR, g_file_error_from_errno(errno), "%s", g_strerror(errno)); @@ -160,15 +167,15 @@ off_t _openslide_ftell(struct _openslide_file *file, GError **err) { return ret; } -off_t _openslide_fsize(struct _openslide_file *file, GError **err) { - off_t orig = _openslide_ftell(file, err); +int64_t _openslide_fsize(struct _openslide_file *file, GError **err) { + int64_t orig = _openslide_ftell(file, err); if (orig == -1) { return -1; } if (!_openslide_fseek(file, 0, SEEK_END, err)) { return -1; } - off_t ret = _openslide_ftell(file, err); + int64_t ret = _openslide_ftell(file, err); if (ret == -1) { return -1; } diff --git a/src/openslide-private.h b/src/openslide-private.h index 5ae36939b048..eb670427f6e4 100644 --- a/src/openslide-private.h +++ b/src/openslide-private.h @@ -186,10 +186,10 @@ struct _openslide_file; struct _openslide_file *_openslide_fopen(const char *path, GError **err); size_t _openslide_fread(struct _openslide_file *file, void *buf, size_t size); -bool _openslide_fseek(struct _openslide_file *file, off_t offset, int whence, +bool _openslide_fseek(struct _openslide_file *file, int64_t offset, int whence, GError **err); -off_t _openslide_ftell(struct _openslide_file *file, GError **err); -off_t _openslide_fsize(struct _openslide_file *file, GError **err); +int64_t _openslide_ftell(struct _openslide_file *file, GError **err); +int64_t _openslide_fsize(struct _openslide_file *file, GError **err); void _openslide_fclose(struct _openslide_file *file); bool _openslide_fexists(const char *path, GError **err); diff --git a/src/openslide-vendor-synthetic.c b/src/openslide-vendor-synthetic.c index e3a44056900a..2966803ae6e8 100644 --- a/src/openslide-vendor-synthetic.c +++ b/src/openslide-vendor-synthetic.c @@ -156,13 +156,13 @@ static bool decode_png(const void *data, uint32_t len, struct mem_tiff { const uint8_t *data; - ssize_t offset; - ssize_t size; + int64_t offset; + int64_t size; }; static tsize_t mem_tiff_read(thandle_t th, tdata_t buf, tsize_t size) { struct mem_tiff *mem = th; - ssize_t count = MIN(mem->size - mem->offset, size); + int64_t count = MIN(mem->size - mem->offset, size); memcpy(buf, mem->data + mem->offset, count); mem->offset += count; return count; diff --git a/tools/slidetool-util.c b/tools/slidetool-util.c index 28901eda611c..7a0de731245f 100644 --- a/tools/slidetool-util.c +++ b/tools/slidetool-util.c @@ -20,11 +20,16 @@ */ #include -#include #include #include "openslide-common.h" #include "slidetool.h" +#ifdef _WIN32 +#include +#else +#include +#endif + struct output open_output(const char *filename) { struct output out; if (filename) { ================================================ FILE: ports/openslide/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openslide/openslide REF "v${VERSION}" SHA512 98822994dd437f5a7d40e0a769fc9c63eda46823ede0547f530390b78b256631a50f66ac0d63d32a8875fc38283f96bc2f624f1023fe98772e9a89a8d6afb514 HEAD_REF main PATCHES cross-build.diff fix-win-build.patch slidetool-unicode.patch windows-dll-name.patch ) if(VCPKG_CROSSCOMPILING) file(COPY "${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/${VERSION}/openslide-tables.c" DESTINATION "${SOURCE_PATH}" ) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") message(FATAL_ERROR "MSVC is not supported; use clang-cl") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-Dtest=disabled" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_tools( TOOL_NAMES openslide-quickhash1sum openslide-show-properties openslide-write-png slidetool AUTO_CLEAN ) if(NOT VCPKG_CROSSCOMPILING) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/openslide-tables.c" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/${VERSION}" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") ================================================ FILE: ports/openslide/slidetool-unicode.patch ================================================ commit 93c479edf1b12accd3291ad7cddd064f85c3a522 Author: Benjamin Gilbert Date: Fri Jul 4 06:58:21 2025 -0700 tools: open output files using Unicode paths on Windows We receive filename arguments in Unicode. Don't open them in the ANSI code page, mangling the filenames. Signed-off-by: Benjamin Gilbert diff --git a/tools/slidetool-util.c b/tools/slidetool-util.c index 7a0de731245f..041df9c29163 100644 --- a/tools/slidetool-util.c +++ b/tools/slidetool-util.c @@ -33,7 +33,17 @@ struct output open_output(const char *filename) { struct output out; if (filename) { +#ifdef _WIN32 + GError *tmp_err = NULL; + g_autofree wchar_t *filename16 = + (wchar_t *) g_utf8_to_utf16(filename, -1, NULL, NULL, &tmp_err); + if (filename16 == NULL) { + common_fail("Couldn't open %s: %s", filename, tmp_err->message); + } + FILE *fp = _wfopen(filename16, L"wb"); +#else FILE *fp = fopen(filename, "wb"); +#endif if (!fp) { common_fail("Can't open %s for writing: %s", filename, strerror(errno)); } ================================================ FILE: ports/openslide/vcpkg.json ================================================ { "name": "openslide", "version": "4.0.0", "port-version": 4, "description": "OpenSlide is a C library for reading whole slide image files (also known as virtual slides). It provides a consistent and simple API for reading files from multiple vendors.", "homepage": "https://openslide.org/", "license": "LGPL-2.1-only", "supports": "!xbox", "dependencies": [ { "name": "cairo", "default-features": false }, { "name": "gdk-pixbuf", "default-features": false, "features": [ "others" ] }, "glib", "libdicom", "libjpeg-turbo", "libpng", { "name": "libxml2", "default-features": false }, "openjpeg", { "name": "openslide", "host": true }, { "name": "sqlite3", "default-features": false }, { "name": "tiff", "default-features": false, "features": [ "jpeg" ] }, { "name": "vcpkg-tool-meson", "host": true }, "zlib" ] } ================================================ FILE: ports/openslide/windows-dll-name.patch ================================================ commit 6d80b9db41810eb316d81cd2149265b89f5dc35f Author: Benjamin Gilbert Date: Mon Aug 4 21:32:06 2025 -0600 meson: use `lib` library prefix when building on Windows Meson defaults to omitting the `lib` library prefix on Windows except when building with MinGW, producing openslide-1.dll. OpenSlide Java, OpenSlide Python, and other bindings assume the library is libopenslide-1.dll, since that's what openslide-bin ships. Ensure we use that name. Signed-off-by: Benjamin Gilbert diff --git a/src/meson.build b/src/meson.build index 676e5feb3f56..821fc3b938fc 100644 --- a/src/meson.build +++ b/src/meson.build @@ -81,6 +81,9 @@ libopenslide = library( openslide_sources, version : soversion, c_args : ['-D_OPENSLIDE_BUILDING_DLL', '-DG_LOG_DOMAIN="OpenSlide"'], + # Meson omits 'lib' by default on Windows except on MinGW. Maintain + # compatibility with the MinGW build, since it was here first. + name_prefix : host_machine.system() == 'windows' ? 'lib' : [], gnu_symbol_visibility : visibility, include_directories : config_h_include, dependencies : [ ================================================ FILE: ports/openssl/cmake-config.patch ================================================ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 09303c4..487ff68 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -338,7 +338,7 @@ bindir={- file_name_is_absolute($bindir) ? $bindir : '$(INSTALLTOP)/$(BINDIR)' -} PKGCONFIGDIR=$(libdir)/pkgconfig -CMAKECONFIGDIR=$(libdir)/cmake/OpenSSL +CMAKECONFIGDIR=$(INSTALLTOP)/share/openssl MANDIR=$(INSTALLTOP)/share/man DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME) diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 894834c..d6d3c41 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -254,7 +254,7 @@ MODULESDIR=$(MODULESDIR_dev)$(MODULESDIR_dir) libdir={- file_name_is_absolute($libdir) ? $libdir : '$(INSTALLTOP)\$(LIBDIR)' -} -CMAKECONFIGDIR=$(libdir)\cmake\OpenSSL +CMAKECONFIGDIR=$(INSTALLTOP)\share\openssl ##### User defined commands and flags ################################ diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in index 766aebe..026680a 100644 --- a/exporters/cmake/OpenSSLConfig.cmake.in +++ b/exporters/cmake/OpenSSLConfig.cmake.in @@ -91,8 +91,7 @@ get_filename_component(_ossl_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) {- # For each component in $OpenSSL::safe::installdata::CMAKECONFIGDIR[0] relative to # $OpenSSL::safe::installdata::PREFIX[0], have CMake figure out the parent directory. - my $d = join('/', unixify(catdir($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], - $OpenSSL::safe::installdata::CMAKECONFIGDIR_REL_LIBDIR[0]), 1)); + my $d = 'share/openssl'; $OUT = ''; if ($d ne '.') { $OUT .= 'get_filename_component(_ossl_prefix "${_ossl_prefix}" PATH)' . "\n" @@ -141,6 +140,14 @@ set(OPENSSL_APPLINK_SOURCE "${_ossl_prefix}/{- unixify($OpenSSL::safe::installda {- output_on() if $disabled{uplink}; "" -} set(OPENSSL_PROGRAM "${OPENSSL_RUNTIME_DIR}/{- platform->bin('openssl') -}") +if(NOT Z_VCPKG_OPENSSL_USE_SINGLE_CONFIG) + # Prevent loop + set(Z_VCPKG_OPENSSL_USE_SINGLE_CONFIG "prevent-loop") + # Chainload vcpkg's module-based multi-config target setup + find_package(OpenSSL MODULE) + set(Z_VCPKG_OPENSSL_USE_SINGLE_CONFIG 0) +else() + # Use official single-config target setup # Set up the imported targets if(_ossl_use_static_libs) {- output_off() unless $no_static; "" -} @@ -240,5 +247,6 @@ set_property(TARGET OpenSSL::applink PROPERTY INTERFACE_SOURCES "${OPENSSL_APPLINK_SOURCE}") {- output_on() if $disabled{uplink}; "" -} +endif() unset(_ossl_prefix) unset(_ossl_use_static_libs) ================================================ FILE: ports/openssl/command-line-length.patch ================================================ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 8ddb128..52b9ad6 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -1961,7 +1961,7 @@ EOF my @objs = map { platform->obj($_) } @{$args{objs}}; my $deps = join(" \\\n" . ' ' x (length($lib) + 2), fill_lines(' ', $COLUMNS - length($lib) - 2, @objs)); - my $max_per_call = 500; + my $max_per_call = ($^O eq 'msys' || $^O eq 'cygwin') ? 80 : 500; my @objs_grouped; push @objs_grouped, join(" ", splice @objs, 0, $max_per_call) while @objs; my $fill_lib = ================================================ FILE: ports/openssl/fix-mingw-build.patch ================================================ diff --git a/ssl/quic/quic_reactor.c b/ssl/quic/quic_reactor.c index a754f285bbe2b..d8ac969d02a69 100644 --- a/ssl/quic/quic_reactor.c +++ b/ssl/quic/quic_reactor.c @@ -76,6 +76,12 @@ void ossl_quic_reactor_cleanup(QUIC_REACTOR *rtor) } #if defined(OPENSSL_SYS_WINDOWS) + +/* Work around for MinGW builds. */ +#if defined(__MINGW32__) && !defined(SIO_UDP_NETRESET) +# define SIO_UDP_NETRESET _WSAIOW(IOC_VENDOR, 15) +#endif + /* * On Windows recvfrom() may return WSAECONNRESET when destination port * used in preceding call to sendto() is no longer reachable. The reset ================================================ FILE: ports/openssl/install-pc-files.cmake ================================================ function(install_pc_file name pc_data) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") configure_file("${CMAKE_CURRENT_LIST_DIR}/openssl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${name}.pc" @ONLY) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") configure_file("${CMAKE_CURRENT_LIST_DIR}/openssl.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${name}.pc" @ONLY) endif() endfunction() install_pc_file(openssl [[ Name: OpenSSL Description: Secure Sockets Layer and cryptography libraries and tools Requires: libssl libcrypto ]]) install_pc_file(libssl [[ Name: OpenSSL-libssl Description: Secure Sockets Layer and cryptography libraries Libs: -L"${libdir}" -llibssl Requires: libcrypto Cflags: -I"${includedir}" ]]) install_pc_file(libcrypto [[ Name: OpenSSL-libcrypto Description: OpenSSL cryptography library Libs: -L"${libdir}" -llibcrypto Libs.private: -lcrypt32 -lws2_32 -ladvapi32 -luser32 Cflags: -I"${includedir}" ]]) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/openssl/openssl.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Version: @VERSION@ @pc_data@ ================================================ FILE: ports/openssl/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/libressl/copyright" OR EXISTS "${CURRENT_INSTALLED_DIR}/share/boringssl/copyright") message(FATAL_ERROR "Can't build openssl if libressl/boringssl is installed. Please remove libressl/boringssl, and try install openssl again if you need it.") endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openssl/openssl REF "openssl-${VERSION}" SHA512 07cfcc71336ece71e713aab8be4a05e2b474bfab175d4c7a4ebcf378f4b1478bcf0e4a46ec88fc6163454fdf7fdf375ab856a5de1c444a41420a02510ae1ac7b PATCHES cmake-config.patch command-line-length.patch script-prefix.patch windows/install-layout.patch windows/install-pdbs.patch windows/install-programs.diff # https://github.com/openssl/openssl/issues/28744 unix/android-cc.patch unix/move-openssldir.patch unix/no-empty-dirs.patch unix/no-static-libs-for-shared.patch fix-mingw-build.patch ) vcpkg_list(SET CONFIGURE_OPTIONS enable-static-engine enable-capieng no-tests no-docs ) # https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-ec_nistp_64_gcc_128 vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$" AND VCPKG_TARGET_ARCHITECTURE MATCHES "^(x64|arm64|riscv64|ppc64le)$") vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ec_nistp_64_gcc_128) endif() set(INSTALL_FIPS "") if("fips" IN_LIST FEATURES) vcpkg_list(APPEND INSTALL_FIPS install_fips) vcpkg_list(APPEND CONFIGURE_OPTIONS enable-fips) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_list(APPEND CONFIGURE_OPTIONS shared) else() vcpkg_list(APPEND CONFIGURE_OPTIONS no-shared no-module) endif() if(NOT "tools" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS no-apps) endif() if("weak-ssl-ciphers" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS enable-weak-ssl-ciphers) endif() if("ssl3" IN_LIST FEATURES) vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ssl3) vcpkg_list(APPEND CONFIGURE_OPTIONS enable-ssl3-method) endif() if(DEFINED OPENSSL_USE_NOPINSHARED) vcpkg_list(APPEND CONFIGURE_OPTIONS no-pinshared) endif() if(OPENSSL_NO_AUTOLOAD_CONFIG) vcpkg_list(APPEND CONFIGURE_OPTIONS no-autoload-config) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) include("${CMAKE_CURRENT_LIST_DIR}/windows/portfile.cmake") include("${CMAKE_CURRENT_LIST_DIR}/install-pc-files.cmake") else() include("${CMAKE_CURRENT_LIST_DIR}/unix/portfile.cmake") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if (NOT "${VERSION}" MATCHES [[^([0-9]+)\.([0-9]+)\.([0-9]+)$]]) message(FATAL_ERROR "Version regex did not match.") endif() set(OPENSSL_VERSION_MAJOR "${CMAKE_MATCH_1}") set(OPENSSL_VERSION_MINOR "${CMAKE_MATCH_2}") set(OPENSSL_VERSION_FIX "${CMAKE_MATCH_3}") configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/openssl/script-prefix.patch ================================================ diff --git a/tools/c_rehash.in b/tools/c_rehash.in index 343cdc1..e48038e 100644 --- a/tools/c_rehash.in +++ b/tools/c_rehash.in @@ -12,7 +12,7 @@ # and add symbolic links to their hash values. my $dir = {- quotify1($config{openssldir}) -}; -my $prefix = {- quotify1($config{prefix}) -}; +use FindBin; my $errorcount = 0; my $openssl = $ENV{OPENSSL} || "openssl"; @@ -61,7 +61,7 @@ if (defined(&Cwd::getcwd)) { # DOS/Win32 or Unix delimiter? Prefix our installdir, then search. my $path_delim = ($pwd =~ /^[a-z]\:/i) ? ';' : ':'; -$ENV{PATH} = "$prefix/bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); +$ENV{PATH} = "$FindBin::Bin" . ($ENV{PATH} ? $path_delim . $ENV{PATH} : ""); if (!(-f $openssl && -x $openssl)) { my $found = 0; ================================================ FILE: ports/openssl/unix/android-cc.patch ================================================ diff --git a/Configurations/15-android.conf b/Configurations/15-android.conf index 41ad922..d15e34c 100644 --- a/Configurations/15-android.conf +++ b/Configurations/15-android.conf @@ -102,6 +102,7 @@ my $cflags; my $cppflags; +if (0) { # see if there is NDK clang on $PATH, "universal" or "standalone" if (which("clang") =~ m|^$ndk/.*/prebuilt/([^/]+)/|) { my $host=$1; @@ -158,6 +159,7 @@ $sysroot =~ s|^$ndk/||; $sysroot = " --sysroot=\$($ndk_var)/$sysroot"; } +} $android_ndk = { cflags => $cflags . $sysroot, cppflags => $cppflags, ================================================ FILE: ports/openssl/unix/configure ================================================ #!/usr/bin/env bash set -e declare -a OUT_OPTIONS INTERPRETER=perl LAST_SEEN= COPY_OPTIONS=no for OPTION; do case "${OPTION},${COPY_OPTIONS}" in */Configure,no) OUT_OPTIONS+=("${OPTION}") INTERPRETER="${LAST_SEEN}" COPY_OPTIONS=yes ;; --prefix=*|--openssldir=*|--libdir=*|--cross-compile-prefix=*|--debug,*) OUT_OPTIONS+=("${OPTION}") ;; -*|*=*) ;; *,yes) OUT_OPTIONS+=("${OPTION}") ;; esac LAST_SEEN="${OPTION}" done set -x "${INTERPRETER}" ${OUT_OPTIONS[@]} ================================================ FILE: ports/openssl/unix/move-openssldir.patch ================================================ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index c82c086..6c5402d 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -690,6 +690,11 @@ install_ssldirs: chmod 644 "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \ fi + $(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)$(OPENSSLDIR) + for I in $(DESTDIR)$(OPENSSLDIR)/*; do \ + mv $$I $(DESTDIR)$(INSTALLTOP)$(OPENSSLDIR)/; \ + done + install_dev: install_runtime_libs @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) @$(ECHO) "*** Installing development files" ================================================ FILE: ports/openssl/unix/no-empty-dirs.patch ================================================ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 6c5402d..fc982df 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -823,7 +823,7 @@ _install_modules_deps: install_runtime_libs build_modules install_engines: _install_modules_deps @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(ENGINESDIR)/" + @[ -z "$(INSTALL_ENGINES)" ] || $(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(ENGINESDIR)/ @$(ECHO) "*** Installing engines" @set -e; for e in dummy $(INSTALL_ENGINES); do \ if [ "$$e" = "dummy" ]; then continue; fi; \ @@ -847,7 +847,7 @@ uninstall_engines: install_modules: _install_modules_deps @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1) - @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)/" + @[ -z "$(INSTALL_MODULES)" ] || $(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MODULESDIR)/ @$(ECHO) "*** Installing modules" @set -e; for e in dummy $(INSTALL_MODULES); do \ if [ "$$e" = "dummy" ]; then continue; fi; \ ================================================ FILE: ports/openssl/unix/no-static-libs-for-shared.patch ================================================ diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index fc982df..10f1c54 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -713,6 +713,7 @@ install_dev: install_runtime_libs done @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)" @set -e; for l in $(INSTALL_LIBS); do \ + if [ -n "$(INSTALL_SHLIBS)" ] ; then continue ; fi ; \ fn=`basename $$l`; \ $(ECHO) "install $$l -> $(DESTDIR)$(libdir)/$$fn"; \ cp $$l "$(DESTDIR)$(libdir)/$$fn.new"; \ ================================================ FILE: ports/openssl/unix/portfile.cmake ================================================ if (VCPKG_TARGET_IS_LINUX) message(NOTICE [[ openssl requires Linux kernel headers from the system package manager. They can be installed on Alpine systems via `apk add linux-headers`. They can be installed on Ubuntu systems via `apt install linux-libc-dev`. ]]) endif() if(VCPKG_HOST_IS_WINDOWS) vcpkg_acquire_msys(MSYS_ROOT PACKAGES make perl) set(MAKE "${MSYS_ROOT}/usr/bin/make.exe") set(PERL "${MSYS_ROOT}/usr/bin/perl.exe") else() find_program(MAKE make) if(NOT MAKE) message(FATAL_ERROR "Could not find make. Please install it through your package manager.") endif() vcpkg_find_acquire_program(PERL) endif() set(INTERPRETER "${PERL}") execute_process( COMMAND "${PERL}" -e "use IPC::Cmd;" RESULT_VARIABLE perl_ipc_cmd_result ) if(NOT perl_ipc_cmd_result STREQUAL "0") message(FATAL_ERROR "\nPerl cannot find IPC::Cmd. Please install it through your system package manager.\n") endif() # Ideally, OpenSSL should use `CC` from vcpkg as is (absolute path). # But in reality, OpenSSL expects to locate the compiler via `PATH`, # and it makes its own choices e.g. for Android. vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") cmake_path(GET VCPKG_DETECTED_CMAKE_C_COMPILER PARENT_PATH compiler_path) cmake_path(GET VCPKG_DETECTED_CMAKE_C_COMPILER FILENAME compiler_name) find_program(compiler_in_path NAMES "${compiler_name}" PATHS ENV PATH NO_DEFAULT_PATH) if(NOT compiler_in_path) vcpkg_host_path_list(APPEND ENV{PATH} "${compiler_path}") elseif(NOT compiler_in_path STREQUAL VCPKG_DETECTED_CMAKE_C_COMPILER) vcpkg_host_path_list(PREPEND ENV{PATH} "${compiler_path}") endif() vcpkg_list(SET MAKEFILE_OPTIONS) if(VCPKG_TARGET_IS_ANDROID) set(ENV{ANDROID_NDK_ROOT} "${VCPKG_DETECTED_CMAKE_ANDROID_NDK}") set(OPENSSL_ARCH "android-${VCPKG_DETECTED_CMAKE_ANDROID_ARCH}") if(VCPKG_DETECTED_CMAKE_ANDROID_ARCH STREQUAL "arm" AND NOT VCPKG_DETECTED_CMAKE_ANDROID_ARM_NEON) vcpkg_list(APPEND CONFIGURE_OPTIONS no-asm) endif() elseif(VCPKG_TARGET_IS_LINUX) if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") set(OPENSSL_ARCH linux-aarch64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") set(OPENSSL_ARCH linux-armv4) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(OPENSSL_ARCH linux-x86_64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(OPENSSL_ARCH linux-x86) else() set(OPENSSL_ARCH linux-generic32) endif() elseif(VCPKG_TARGET_IS_IOS) if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") set(OPENSSL_ARCH ios64-xcrun) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") set(OPENSSL_ARCH ios-xcrun) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" OR VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(OPENSSL_ARCH iossimulator-xcrun) else() message(FATAL_ERROR "Unknown iOS target architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() # disable that makes linkage error (e.g. require stderr usage) list(APPEND CONFIGURE_OPTIONS no-ui no-asm) elseif(VCPKG_TARGET_IS_TVOS OR VCPKG_TARGET_IS_WATCHOS) set(OPENSSL_ARCH iphoneos-cross) # disable that makes linkage error (e.g. require stderr usage) list(APPEND CONFIGURE_OPTIONS no-ui no-asm) elseif(VCPKG_TARGET_IS_OSX) # Universal builds don't support ASM if(VCPKG_OSX_ARCHITECTURES MATCHES "arm64" AND VCPKG_OSX_ARCHITECTURES MATCHES "x86_64") list(APPEND CONFIGURE_OPTIONS no-asm) endif() if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") set(OPENSSL_ARCH darwin64-arm64) else() set(OPENSSL_ARCH darwin64-x86_64) endif() elseif(VCPKG_TARGET_IS_BSD) set(OPENSSL_ARCH BSD-nodef-generic64) elseif(VCPKG_TARGET_IS_SOLARIS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(OPENSSL_ARCH solaris64-x86_64-gcc) else() set(OPENSSL_ARCH solaris-x86-gcc) endif() elseif(VCPKG_TARGET_IS_MINGW) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(OPENSSL_ARCH mingw64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(OPENSSL_ARCH mingwarm64) else() set(OPENSSL_ARCH mingw) endif() elseif(VCPKG_TARGET_IS_EMSCRIPTEN) set(OPENSSL_ARCH linux-x32) vcpkg_list(APPEND CONFIGURE_OPTIONS no-engine no-asm no-sse2 no-srtp --cross-compile-prefix= ) # Cf. https://emscripten.org/docs/porting/pthreads.html: # For Pthreads support, not just openssl but everything # must be compiled and linked with `-pthread`. # This makes it a triplet/toolchain-wide setting. if(NOT " ${VCPKG_DETECTED_CMAKE_C_FLAGS} " MATCHES " -pthread ") vcpkg_list(APPEND CONFIGURE_OPTIONS no-threads) endif() else() message(FATAL_ERROR "Unknown platform") endif() file(MAKE_DIRECTORY "${SOURCE_PATH}/vcpkg") file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure" DESTINATION "${SOURCE_PATH}/vcpkg") vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "vcpkg" NO_ADDITIONAL_PATHS OPTIONS "${INTERPRETER}" "${SOURCE_PATH}/Configure" ${OPENSSL_ARCH} ${CONFIGURE_OPTIONS} "--openssldir=/etc/ssl" "--libdir=lib" OPTIONS_DEBUG --debug ) vcpkg_install_make( ${MAKEFILE_OPTIONS} BUILD_TARGET build_inst_sw ) vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/c_rehash" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/c_rehash") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/c_rehash") vcpkg_copy_tools(TOOL_NAMES openssl AUTO_CLEAN) elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/etc/ssl/misc") endif() file(TOUCH "${CURRENT_PACKAGES_DIR}/etc/ssl/certs/.keep") file(TOUCH "${CURRENT_PACKAGES_DIR}/etc/ssl/private/.keep") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # For consistency of mingw build with nmake build file(GLOB engines "${CURRENT_PACKAGES_DIR}/lib/ossl-modules/*.dll") if(NOT engines STREQUAL "") file(COPY ${engines} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/ossl-modules") endif() file(GLOB engines "${CURRENT_PACKAGES_DIR}/debug/lib/ossl-modules/*.dll") if(NOT engines STREQUAL "") file(COPY ${engines} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/ossl-modules") endif() ================================================ FILE: ports/openssl/unix/remove-deps.cmake ================================================ file(GLOB_RECURSE MAKEFILES ${DIR}/*/Makefile) foreach(MAKEFILE ${MAKEFILES}) message("removing deps from ${MAKEFILE}") file(READ "${MAKEFILE}" _contents) string(REGEX REPLACE "\n# DO NOT DELETE THIS LINE.*" "" _contents "${_contents}") file(WRITE "${MAKEFILE}" "${_contents}") endforeach() ================================================ FILE: ports/openssl/usage ================================================ openssl is compatible with built-in CMake targets: find_package(OpenSSL REQUIRED) target_link_libraries(main PRIVATE OpenSSL::SSL) target_link_libraries(main PRIVATE OpenSSL::Crypto) ================================================ FILE: ports/openssl/vcpkg-cmake-wrapper.cmake.in ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) set(OPENSSL_VERSION_MAJOR @OPENSSL_VERSION_MAJOR@) set(OPENSSL_VERSION_MINOR @OPENSSL_VERSION_MINOR@) set(OPENSSL_VERSION_FIX @OPENSSL_VERSION_FIX@) if(OPENSSL_USE_STATIC_LIBS) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "dynamic") message(WARNING "OPENSSL_USE_STATIC_LIBS is set, but vcpkg port openssl was built with dynamic linkage") endif() set(OPENSSL_USE_STATIC_LIBS_BAK "${OPENSSL_USE_STATIC_LIBS}") set(OPENSSL_USE_STATIC_LIBS FALSE) endif() if(DEFINED OPENSSL_ROOT_DIR) set(OPENSSL_ROOT_DIR_BAK "${OPENSSL_ROOT_DIR}") endif() get_filename_component(OPENSSL_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) get_filename_component(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR}" DIRECTORY) find_path(OPENSSL_INCLUDE_DIR NAMES openssl/ssl.h PATH "${OPENSSL_ROOT_DIR}/include" NO_DEFAULT_PATH) if(MSVC) find_library(LIB_EAY_DEBUG NAMES libcrypto PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(LIB_EAY_RELEASE NAMES libcrypto PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH) find_library(SSL_EAY_DEBUG NAMES libssl PATHS "${OPENSSL_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(SSL_EAY_RELEASE NAMES libssl PATHS "${OPENSSL_ROOT_DIR}/lib" NO_DEFAULT_PATH) elseif(WIN32) find_library(LIB_EAY NAMES libcrypto crypto NAMES_PER_DIR) find_library(SSL_EAY NAMES libssl ssl NAMES_PER_DIR) else() find_library(OPENSSL_CRYPTO_LIBRARY NAMES crypto) find_library(OPENSSL_SSL_LIBRARY NAMES ssl) endif() _find_package(${ARGS}) unset(OPENSSL_ROOT_DIR) if(DEFINED OPENSSL_ROOT_DIR_BAK) set(OPENSSL_ROOT_DIR "${OPENSSL_ROOT_DIR_BAK}") unset(OPENSSL_ROOT_DIR_BAK) endif() if(DEFINED OPENSSL_USE_STATIC_LIBS_BAK) set(OPENSSL_USE_STATIC_LIBS "${OPENSSL_USE_STATIC_LIBS_BAK}") unset(OPENSSL_USE_STATIC_LIBS_BAK) endif() if(OPENSSL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") if(WIN32) list(APPEND OPENSSL_LIBRARIES crypt32 ws2_32) if(TARGET OpenSSL::Crypto) set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "crypt32;ws2_32") endif() if(TARGET OpenSSL::SSL) set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "crypt32;ws2_32") endif() else() find_library(OPENSSL_DL_LIBRARY NAMES dl) if(OPENSSL_DL_LIBRARY) list(APPEND OPENSSL_LIBRARIES "dl") if(TARGET OpenSSL::Crypto) set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl") endif() endif() if("REQUIRED" IN_LIST ARGS) find_package(Threads REQUIRED) else() find_package(Threads) endif() list(APPEND OPENSSL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) if(TARGET OpenSSL::Crypto) set_property(TARGET OpenSSL::Crypto APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") endif() if(TARGET OpenSSL::SSL) set_property(TARGET OpenSSL::SSL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Threads::Threads") endif() endif() endif() cmake_policy(POP) ================================================ FILE: ports/openssl/vcpkg.json ================================================ { "name": "openssl", "version": "3.6.1", "port-version": 3, "description": "OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.", "homepage": "https://www.openssl.org", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "fips": { "description": "Enable fips", "supports": "!static" }, "ssl3": { "description": "Enable SSL3" }, "tools": { "description": "Install openssl executable and scripts", "supports": "!uwp" }, "weak-ssl-ciphers": { "description": "Enable weak-ssl-ciphers" } } } ================================================ FILE: ports/openssl/windows/install-layout.patch ================================================ diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index f71f3bf..116954f 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -223,7 +223,7 @@ MODULESDIR_dev={- use File::Spec::Functions qw(:DEFAULT splitpath catpath); splitpath($modulesprefix, 1); our $modulesdir_dev = $modulesprefix_dev; our $modulesdir_dir = - catdir($modulesprefix_dir, "ossl-modules"); + catdir($modulesprefix_dir, "../bin"); # change lib/ossl-modules to bin our $modulesdir = catpath($modulesdir_dev, $modulesdir_dir); our $enginesdir_dev = $modulesprefix_dev; our $enginesdir_dir = ================================================ FILE: ports/openssl/windows/install-pdbs.patch ================================================ diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 5946c89..f71f3bf 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -564,8 +564,9 @@ "$(INSTALLTOP)\include\openssl" @"$(PERL)" "$(SRCDIR)\util\mkdir-p.pl" "$(libdir)" @"$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_LIBS) "$(libdir)" @if "$(SHLIBS)"=="" \ + @if "$(INSTALL_PDBS)"=="ON" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" ossl_static.pdb "$(libdir)" @"$(PERL)" "$(SRCDIR)\util\mkdir-p.pl" "$(CMAKECONFIGDIR)" @"$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_EXPORTERS_CMAKE) "$(CMAKECONFIGDIR)" @@ -569,6 +570,7 @@ install_engines: _install_modules_deps @if not "$(INSTALL_ENGINES)"=="" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_ENGINES) "$(ENGINESDIR)" @if not "$(INSTALL_ENGINES)"=="" \ + @if "$(INSTALL_PDBS)"=="ON" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_ENGINEPDBS) "$(ENGINESDIR)" uninstall_engines: @@ -580,6 +582,7 @@ install_modules: _install_modules_deps @if not "$(INSTALL_MODULES)"=="" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_MODULES) "$(MODULESDIR)" @if not "$(INSTALL_MODULES)"=="" \ + @if "$(INSTALL_PDBS)"=="ON" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_MODULEPDBS) "$(MODULESDIR)" uninstall_modules: @@ -593,6 +596,7 @@ install_runtime_libs: build_libs @if not "$(SHLIBS)"=="" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_SHLIBS) "$(INSTALLTOP)\bin" @if not "$(SHLIBS)"=="" \ + @if "$(INSTALL_PDBS)"=="ON" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_SHLIBPDBS) \ "$(INSTALLTOP)\bin" @@ -605,6 +609,7 @@ install_programs: install_runtime_libs build_programs "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_PROGRAMS) \ "$(INSTALLTOP)\bin" @if not "$(INSTALL_PROGRAMS)"=="" \ + @if "$(INSTALL_PDBS)"=="ON" \ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_PROGRAMPDBS) \ "$(INSTALLTOP)\bin" @if not "$(INSTALL_PROGRAMS)"=="" \ ================================================ FILE: ports/openssl/windows/install-programs.diff ================================================ diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index b587212..c031cfb 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -134,7 +134,7 @@ INSTALL_FIPSMODULE={- -} INSTALL_FIPSMODULECONF=providers\fipsmodule.cnf INSTALL_PROGRAMS={- - join(" ", map { quotify1(platform->bin($_)) } + join(" ", map { platform->bin($_) } grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} } @{$unified_info{programs}}) -} ================================================ FILE: ports/openssl/windows/portfile.cmake ================================================ # Need cmd to pass quoted CC from nmake to mkbuildinf.pl, GH-37134 find_program(CMD_EXECUTABLE cmd HINTS ENV PATH NO_DEFAULT_PATH REQUIRED) cmake_path(NATIVE_PATH CMD_EXECUTABLE cmd) set(ENV{COMSPEC} "${cmd}") vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH "${PERL}" DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(OPENSSL_ARCH VC-WIN32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(OPENSSL_ARCH VC-WIN64A) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(OPENSSL_ARCH VC-WIN32-ARM) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") if(VCPKG_TARGET_IS_UWP) set(OPENSSL_ARCH VC-WIN64-ARM) elseif(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang") set(OPENSSL_ARCH VC-CLANG-WIN64-CLANGASM-ARM) else() set(OPENSSL_ARCH VC-WIN64-CLANGASM-ARM) endif() else() message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() if(VCPKG_TARGET_IS_UWP) vcpkg_list(APPEND CONFIGURE_OPTIONS no-unit-test no-asm no-uplink ) string(APPEND OPENSSL_ARCH "-UWP") endif() if(VCPKG_CONCURRENCY GREATER "1") vcpkg_list(APPEND CONFIGURE_OPTIONS no-makedepend) endif() cmake_path(NATIVE_PATH CURRENT_PACKAGES_DIR NORMALIZE current_packages_dir_native) # Clang always uses /Z7; Patching /Zi /Fd out of openssl requires more work. set(OPENSSL_BUILD_MAKES_PDBS ON) if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang" OR VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(OPENSSL_BUILD_MAKES_PDBS OFF) endif() cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_C_COMPILER NORMALIZE cc) if(OPENSSL_ARCH MATCHES "CLANG") vcpkg_find_acquire_program(CLANG) cmake_path(GET CLANG PARENT_PATH clang_path) vcpkg_add_to_path("${clang_path}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang") string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " --target=aarch64-win32-msvc") string(APPEND VCPKG_COMBINED_C_FLAGS_RELEASE " --target=aarch64-win32-msvc") endif() endif() if(OPENSSL_ARCH MATCHES "CLANGASM") vcpkg_list(APPEND CONFIGURE_OPTIONS "ASFLAGS=--target=aarch64-win32-msvc") else() vcpkg_find_acquire_program(NASM) cmake_path(NATIVE_PATH NASM NORMALIZE as) cmake_path(GET NASM PARENT_PATH nasm_path) vcpkg_add_to_path("${nasm_path}") # Needed by Configure endif() cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_AR NORMALIZE ar) cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_LINKER NORMALIZE ld) # We can't set openssldir because that would leak build machine information into the built binaries, # and introduce vulnerabilities where OpenSSL would search those locations at runtime, potentially # unexpectedly loading code from there. For example CVE-2019-12572 # # Put the built bits in subdirectories with DESTDIR then move them where they go after the fact # instead. vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}" PREFER_JOM CL_LANGUAGE NONE PRERUN_SHELL_RELEASE "${PERL}" Configure ${CONFIGURE_OPTIONS} ${OPENSSL_ARCH} "AS=${as}" "CC=${cc}" "CFLAGS=${VCPKG_COMBINED_C_FLAGS_RELEASE}" "AR=${ar}" "ARFLAGS=${VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE}" "LD=${ld}" "LDFLAGS=${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE}" PRERUN_SHELL_DEBUG "${PERL}" Configure ${CONFIGURE_OPTIONS} ${OPENSSL_ARCH} --debug "AS=${as}" "CC=${cc}" "CFLAGS=${VCPKG_COMBINED_C_FLAGS_DEBUG}" "AR=${ar}" "ARFLAGS=${VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG}" "LD=${ld}" "LDFLAGS=${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}" PROJECT_NAME "makefile" TARGET install_dev install_modules ${INSTALL_FIPS} LOGFILE_ROOT install OPTIONS "INSTALL_PDBS=${OPENSSL_BUILD_MAKES_PDBS}" # install-pdbs.patch OPTIONS_RELEASE "DESTDIR=${current_packages_dir_native}" install_runtime install_ssldirs # extra targets OPTIONS_DEBUG "DESTDIR=${current_packages_dir_native}/debug" ) function(z_rearrange_openssl_dirs) cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_PROGRAM_FILES_DIR;FLAVOR_PREFIX" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "z_rearrange_openssl_dirs was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() # The resulting directory will contain something like "Program Files" or "Program Files (x86)"; # globbing here to be architecture agnostic set(prefix_packages_dir "${CURRENT_PACKAGES_DIR}${arg_FLAVOR_PREFIX}") file(GLOB flavor_programfiles_dir LIST_DIRECTORIES true "${prefix_packages_dir}/Program*") if(NOT flavor_programfiles_dir) message(FATAL_ERROR "${flavor_programfiles_dir}: error: couldn't find program files dir") endif() if(DEFINED arg_OUT_PROGRAM_FILES_DIR) set("${arg_OUT_PROGRAM_FILES_DIR}" "${flavor_programfiles_dir}" PARENT_SCOPE) endif() set(flavor_openssl_dir "${flavor_programfiles_dir}/OpenSSL") if(NOT EXISTS "${flavor_openssl_dir}") message(FATAL_ERROR "${flavor_openssl_dir}: should exist and be OpenSSLDir") endif() # ideally we would use RENAME rather than COPY and REMOVE_RECURSE but CMake doesn't have an out # of the box way to do that correctly merging directories file(GLOB flavor_openssl_dirs LIST_DIRECTORIES true "${flavor_openssl_dir}/*") file(COPY ${flavor_openssl_dirs} DESTINATION "${prefix_packages_dir}") file(REMOVE_RECURSE "${flavor_openssl_dir}") endfunction() z_rearrange_openssl_dirs(FLAVOR_PREFIX "" OUT_PROGRAM_FILES_DIR release_programfiles) if(NOT VCPKG_BUILD_TYPE) z_rearrange_openssl_dirs(FLAVOR_PREFIX "/debug" OUT_PROGRAM_FILES_DIR debug_programfiles) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${debug_programfiles}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/c_rehash.pl") endif() set(scripts "bin/c_rehash.pl" "misc/CA.pl" "misc/tsget.pl") if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(COPY_FILE "${release_programfiles}/Common Files/SSL/openssl.cnf" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/openssl.cnf") if("fips" IN_LIST FEATURES) file(COPY_FILE "${release_programfiles}/Common Files/SSL/fipsmodule.cnf" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fipsmodule.cnf") endif() file(RENAME "${CURRENT_PACKAGES_DIR}/bin/c_rehash.pl" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/c_rehash.pl") file(RENAME "${release_programfiles}/Common Files/SSL/misc/CA.pl" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/CA.pl") file(RENAME "${release_programfiles}/Common Files/SSL/misc/tsget.pl" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tsget.pl") vcpkg_copy_tools(TOOL_NAMES openssl AUTO_CLEAN) else() file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/c_rehash.pl" "${release_programfiles}/Common Files/SSL/misc/CA.pl" "${release_programfiles}/Common Files/SSL/misc/tsget.pl" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE # to pass empty directories check "${release_programfiles}/Common Files/SSL/certs" "${release_programfiles}/Common Files/SSL/misc" "${release_programfiles}/Common Files/SSL/private" ) ================================================ FILE: ports/opensubdiv/fix-build-type.patch ================================================ diff --git a/opensubdiv/CMakeLists.txt b/opensubdiv/CMakeLists.txt index f01a8a0..e1c24eb 100644 --- a/opensubdiv/CMakeLists.txt +++ b/opensubdiv/CMakeLists.txt @@ -122,6 +122,7 @@ if (NOT NO_LIB) #--------------------------------------------------------------------------- + if(NOT BUILD_SHARED_LIBS) # Build static libs ------------------------------------ add_library(osd_static_cpu STATIC @@ -169,6 +170,7 @@ if (NOT NO_LIB) install( TARGETS osd_static_gpu EXPORT opensubdiv-targets DESTINATION "${CMAKE_LIBDIR_BASE}" ) endif() + endif() # Build dynamic libs ---------------------------------- @@ -284,6 +286,7 @@ if (NOT NO_LIB) list(APPEND PUBLIC_HEADER_FILES "version.h") #static framework + if(NOT BUILD_SHARED_LIBS) add_library(osd_static_framework STATIC version.cpp @@ -330,6 +333,7 @@ if (NOT NO_LIB) "Versions/Current/Headers" "$/../../Headers" ) + endif() #shared framework if (BUILD_SHARED_LIBS) ================================================ FILE: ports/opensubdiv/fix-dependencies.patch ================================================ diff --git a/cmake/FindDXSDK.cmake b/cmake/FindDXSDK.cmake index a396d97..edd06db 100644 --- a/cmake/FindDXSDK.cmake +++ b/cmake/FindDXSDK.cmake @@ -48,15 +48,8 @@ if (WIN32) "C:/Program Files/Microsoft DirectX SDK*/Include" ) - if ("${CMAKE_GENERATOR}" MATCHES "[Ww]in64" OR - "${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64") - set(ARCH x64) - else() - set(ARCH x86) - endif() - find_path(LIBRARY_DIR - d3d11.lib + d3dx11.lib PATHS "${DXSDK_LOCATION}/Lib/${ARCH}" "$ENV{DXSDK_LOCATION}/Lib/${ARCH}" @@ -70,7 +63,7 @@ if (WIN32) set(DXSDK_LIBRARY_DIR ${LIBRARY_DIR}) - foreach(DX_LIB d3d11 d3dcompiler) + foreach(DX_LIB d3dx11 d3dcompiler) find_library(DXSDK_${DX_LIB}_LIBRARY NAMES diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake index 2f4efd3..5f4f85b 100644 --- a/cmake/FindTBB.cmake +++ b/cmake/FindTBB.cmake @@ -30,6 +30,10 @@ # TBB_LIBRARIES - The libraries needed to use TBB # Obtain include directory +find_package(TBB CONFIG REQUIRED) +set(TBB_FOUND 1) +set(TBB_LIBRARIES TBB::tbb) +if (0) if (WIN32) find_path(TBB_INCLUDE_DIR NAMES @@ -180,4 +184,4 @@ mark_as_advanced( TBB_INCLUDE_DIR TBB_LIBRARIES ) - +endif() diff --git a/examples/dxPtexViewer/CMakeLists.txt b/examples/dxPtexViewer/CMakeLists.txt index 2743423..81c8806 100644 --- a/examples/dxPtexViewer/CMakeLists.txt +++ b/examples/dxPtexViewer/CMakeLists.txt @@ -36,6 +36,19 @@ set(PLATFORM_LIBRARIES "${ZLIB_LIBRARY}" ) +if (OPENCL_FOUND) + list(APPEND PLATFORM_LIBRARIES + Opengl32 + Cfgmgr32 + ) +endif() + +if (DXSDK_FOUND) + list(APPEND PLATFORM_LIBRARIES + D3D11 + ) +endif() + include_directories( "${OPENSUBDIV_INCLUDE_DIR}" "${DXSDK_INCLUDE_DIR}" diff --git a/examples/dxViewer/CMakeLists.txt b/examples/dxViewer/CMakeLists.txt index 245ecbd..83b39b8 100644 --- a/examples/dxViewer/CMakeLists.txt +++ b/examples/dxViewer/CMakeLists.txt @@ -33,6 +33,19 @@ set(PLATFORM_LIBRARIES "${DXSDK_LIBRARIES}" ) +if (OPENCL_FOUND) + list(APPEND PLATFORM_LIBRARIES + Opengl32 + Cfgmgr32 + ) +endif() + +if (DXSDK_FOUND) + list(APPEND PLATFORM_LIBRARIES + D3D11 + ) +endif() + include_directories( "${OPENSUBDIV_INCLUDE_DIR}" "${DXSDK_INCLUDE_DIR}" diff --git a/examples/glEvalLimit/CMakeLists.txt b/examples/glEvalLimit/CMakeLists.txt index 1a71f72..8eaaccb 100644 --- a/examples/glEvalLimit/CMakeLists.txt +++ b/examples/glEvalLimit/CMakeLists.txt @@ -41,7 +41,6 @@ if( OPENCL_FOUND ) endif() if( TBB_FOUND ) - include_directories("${TBB_INCLUDE_DIR}") list(APPEND PLATFORM_LIBRARIES "${TBB_LIBRARIES}" ) diff --git a/opensubdiv/CMakeLists.txt b/opensubdiv/CMakeLists.txt index adb0191..0f90a37 100644 --- a/opensubdiv/CMakeLists.txt +++ b/opensubdiv/CMakeLists.txt @@ -49,7 +49,6 @@ if (NOT NO_LIB) endif() if( TBB_FOUND ) - include_directories("${TBB_INCLUDE_DIR}") list(APPEND PLATFORM_CPU_LIBRARIES ${TBB_LIBRARIES} ) diff --git a/opensubdiv/osd/CMakeLists.txt b/opensubdiv/osd/CMakeLists.txt index 75f64b6..90d5ea2 100644 --- a/opensubdiv/osd/CMakeLists.txt +++ b/opensubdiv/osd/CMakeLists.txt @@ -88,7 +88,6 @@ set(TBB_PUBLIC_HEADERS ) if( TBB_FOUND ) - include_directories("${TBB_INCLUDE_DIR}") list(APPEND CPU_SOURCE_FILES tbbEvaluator.cpp @@ -379,6 +378,10 @@ add_library(osd_cpu_obj ${PUBLIC_HEADER_FILES} ) +if (TBB_FOUND) + target_link_libraries(osd_cpu_obj ${TBB_LIBRARIES}) +endif() + set_target_properties(osd_cpu_obj PROPERTIES FOLDER "opensubdiv" ================================================ FILE: ports/opensubdiv/fix-feature-cuda.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 098df7d..9314d03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -730,7 +730,7 @@ endmacro() # use when cross compiling or building multi-architecture binaries. # We also provide a C++ binary implementation so that Python is not # required (for backward compatibility). -if (OPENGL_FOUND OR OPENCL_FOUND OR DXSDK_FOUND OR METAL_FOUND) +if (OPENGL_FOUND OR OPENCL_FOUND OR DXSDK_FOUND OR METAL_FOUND OR CUDA_FOUND) if(Python_Interpreter_FOUND) set(OSD_STRINGIFY_TOOL ${CMAKE_CURRENT_SOURCE_DIR}/tools/stringify/stringify.py) set(OSD_STRINGIFY ${Python_EXECUTABLE} ${OSD_STRINGIFY_TOOL}) ================================================ FILE: ports/opensubdiv/fix-notfind-header.patch ================================================ diff --git a/opensubdiv/osd/tbbEvaluator.cpp b/opensubdiv/osd/tbbEvaluator.cpp index c98db9f..5a4bc98 100644 --- a/opensubdiv/osd/tbbEvaluator.cpp +++ b/opensubdiv/osd/tbbEvaluator.cpp @@ -25,7 +25,10 @@ #include "../osd/tbbEvaluator.h" #include "../osd/tbbKernel.h" +#if defined(TBB_INTERFACE_VERSION_MAJOR) && (TBB_INTERFACE_VERSION_MAJOR < 12) +// This is deprecated functionality. #include +#endif namespace OpenSubdiv { namespace OPENSUBDIV_VERSION { @@ -215,11 +218,15 @@ TbbEvaluator::Synchronize(void *) { /* static */ void TbbEvaluator::SetNumThreads(int numThreads) { +#if defined(TBB_INTERFACE_VERSION_MAJOR) && (TBB_INTERFACE_VERSION_MAJOR < 12) + // This is deprecated functionality. We preserve the existing behavior + // for consistency (when using older versions of tbb). if (numThreads == -1) { tbb::task_scheduler_init init; } else { tbb::task_scheduler_init init(numThreads); } +#endif } } // end namespace Osd ================================================ FILE: ports/opensubdiv/fix-version-search.patch ================================================ diff --git a/cmake/FindOpenCL.cmake b/cmake/FindOpenCL.cmake index 485e55e..1c98b91 100644 --- a/cmake/FindOpenCL.cmake +++ b/cmake/FindOpenCL.cmake @@ -177,7 +177,7 @@ if(_OPENCL_CPP_INCLUDE_DIRS) if(EXISTS "${OPENCL_INCLUDE_DIRS}/CL/cl.h") - file(STRINGS "${OPENCL_INCLUDE_DIRS}/CL/cl.h" LINES REGEX "^#define CL_VERSION_.*$") + file(STRINGS "${OPENCL_INCLUDE_DIRS}/CL/cl.h" LINES REGEX "^#define CL_VERSION_[0-9]+_[0-9]+.*$") foreach(LINE ${LINES}) ================================================ FILE: ports/opensubdiv/fix_compile-option.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b69912ae..dcde4297 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,7 +218,7 @@ elseif(MSVC) list(APPEND OSD_COMPILER_FLAGS /W3 # Use warning level recommended for production purposes. - /WX # Treat all compiler warnings as errors. + # /WX # Treat all compiler warnings as errors. # warning C4005: macro redefinition /wd4005 ================================================ FILE: ports/opensubdiv/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_IOS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PixarAnimationStudios/OpenSubdiv REF 8ffa2b6566be10209529d7a0d1db02a0796b160c # v3.5.0 SHA512 cb48470f044ca4e9fcdfb3ff05d710fd710212d5a2f539f3f90ebb33cc6a6b1530fd9deb7d3eb25b275133dbdf5c1a5d4777b289d13b15006a59db12e8b28398 HEAD_REF release PATCHES fix_compile-option.patch fix-version-search.patch fix-build-type.patch fix-dependencies.patch fix-feature-cuda.patch fix-notfind-header.patch ) if(VCPKG_TARGET_IS_LINUX) message( "OpenSubdiv currently requires the following libraries from the system package manager: xinerama xxf86vm These can be installed on Ubuntu systems via sudo apt install libxinerama-dev libxxf86vm-dev") endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") if (VCPKG_CRT_LINKAGE STREQUAL static) set(STATIC_CRT_LNK ON) else() set(STATIC_CRT_LNK OFF) endif() if ("cuda" IN_LIST FEATURES AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") message(FATAL_ERROR "Feature 'cuda' can only build on x64 arch.") endif() if (("dx" IN_LIST FEATURES OR "omp" IN_LIST FEATURES) AND NOT VCPKG_TARGET_IS_WINDOWS) message(FATAL_ERROR "Feature 'dx' and 'omp' only support Windows.") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "true-deriv-eval" OPENSUBDIV_GREGORY_EVAL_TRUE_DERIVATIVES INVERTED_FEATURES "cuda" NO_CUDA "dx" NO_DX "examples" NO_EXAMPLES "glew" NO_GLEW "glfw" NO_GLFW "glfw" NO_GLFW_X11 "omp" NO_OMP "opencl" NO_OPENCL "opengl" NO_OPENGL "ptex" NO_PTEX "tbb" NO_TBB "tutorials" NO_TUTORIALS ) set(OSD_EXTRA_OPTS) if ("ptex" IN_LIST FEATURES) list(APPEND OSD_EXTRA_OPTS -DPTEX_LOCATION=${CURRENT_INSTALLED_DIR}) endif() if ("glew" IN_LIST FEATURES) list(APPEND OSD_EXTRA_OPTS -DGLEW_LOCATION=${CURRENT_INSTALLED_DIR}) endif() if ("glfw" IN_LIST FEATURES) list(APPEND OSD_EXTRA_OPTS -DGLFW_LOCATION=${CURRENT_INSTALLED_DIR}) endif() if ("dx" IN_LIST FEATURES) list(APPEND OSD_EXTRA_OPTS -DDXSDK_LOCATION=${CURRENT_INSTALLED_DIR}) endif() if (VCPKG_TARGET_IS_OSX) list(APPEND OSD_EXTRA_OPTS -DNO_METAL=OFF) else() list(APPEND OSD_EXTRA_OPTS -DNO_METAL=ON) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DMSVC_STATIC_CRT=${STATIC_CRT_LNK} -DNO_LIB=OFF -DNO_REGRESSION=ON -DNO_DOC=ON -DNO_TESTS=ON -DNO_GLTESTS=ON -DNO_CLEW=ON ${FEATURE_OPTIONS} ${OSD_EXTRA_OPTS} MAYBE_UNUSED_VARIABLES MSVC_STATIC_CRT ) vcpkg_cmake_install() if ("examples" IN_LIST FEATURES) if ("dx" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dxViewer AUTO_CLEAN) if ("ptex" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dxPtexViewer AUTO_CLEAN) endif() endif() endif() if ("tutorials" IN_LIST FEATURES) file(GLOB TUTORIALS_TOOLS "${CURRENT_PACKAGES_DIR}/bin/tutorials/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(TUTORIALS_TOOL_NAMES ) foreach(TUTORIALS_TOOL IN LISTS TUTORIALS_TOOLS) get_filename_component(TUTORIALS_TOOL_NAME "${TUTORIALS_TOOL}" NAME_WE) list(APPEND TUTORIALS_TOOL_NAMES "${TUTORIALS_TOOL_NAME}") endforeach() if (TUTORIALS_TOOL_NAMES) vcpkg_copy_tools(TOOL_NAMES ${TUTORIALS_TOOL_NAMES} SEARCH_DIR "${CURRENT_PACKAGES_DIR}/bin/tutorials/" AUTO_CLEAN) endif() endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME OpenSubdiv CONFIG_PATH lib/cmake/OpenSubdiv) vcpkg_fixup_pkgconfig() # The header files are read only and can't remove when remove this port file(GLOB_RECURSE OSD_HDRS "${CURRENT_PACKAGES_DIR}/include/*.h") file(CHMOD_RECURSE ${OSD_HDRS} PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ WORLD_WRITE ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/opensubdiv/vcpkg.json ================================================ { "name": "opensubdiv", "version-semver": "3.5.0", "port-version": 3, "description": "An Open-Source subdivision surface library.", "homepage": "https://github.com/PixarAnimationStudios/OpenSubdiv", "license": "Apache-2.0", "supports": "!(arm & android) & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Enable CUDA backend", "dependencies": [ "cuda" ] }, "dx": { "description": "Enable DirectX support", "dependencies": [ { "name": "directxsdk", "features": [ "xp" ] } ] }, "examples": { "description": "Build examples" }, "glew": { "description": "Enable GLEW wrapper library", "dependencies": [ "glew" ] }, "glfw": { "description": "Build components depending on GLFW", "dependencies": [ "glfw3" ] }, "omp": { "description": "Enable OpenMP backend" }, "opencl": { "description": "Enable OpenCL backend", "dependencies": [ "opencl" ] }, "opengl": { "description": "Enable OpenGL backend", "dependencies": [ "opengl" ] }, "ptex": { "description": "Enable Ptex support", "dependencies": [ "ptex" ] }, "tbb": { "description": "Enable TBB backend", "dependencies": [ "tbb" ] }, "true-deriv-eval": { "description": "Enable true derivative evaluation for Gregory basis patches" }, "tutorials": { "description": "Enable tutorials build" } } } ================================================ FILE: ports/opentelemetry-cpp/fix-target_link.patch ================================================ diff --git a/cmake/opentracing-cpp.cmake b/cmake/opentracing-cpp.cmake index f014ecd..fd8898a 100644 --- a/cmake/opentracing-cpp.cmake +++ b/cmake/opentracing-cpp.cmake @@ -1,7 +1,11 @@ # Copyright The OpenTelemetry Authors # SPDX-License-Identifier: Apache-2.0 -find_package(OpenTracing CONFIG QUIET) +find_package(OpenTracing CONFIG REQUIRED) +if(NOT TARGET OpenTracing::opentracing AND TARGET OpenTracing::opentracing-static) + add_library(OpenTracing::opentracing ALIAS OpenTracing::opentracing-static) +endif() + set(OpenTracing_PROVIDER "find_package") if(NOT OpenTracing_FOUND) ================================================ FILE: ports/opentelemetry-cpp/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-telemetry/opentelemetry-cpp REF "v${VERSION}" SHA512 d39565e6f42c601d8d84b14f678b44b52cd8712d2ee23f02aca56c345ae5407dcebbdbcd484ef54ed0e85faec9bfd3c3f0f80ac490af9d9a54ebaf503534add7 HEAD_REF main PATCHES fix-target_link.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES etw WITH_ETW zipkin WITH_ZIPKIN prometheus WITH_PROMETHEUS elasticsearch WITH_ELASTICSEARCH otlp-file WITH_OTLP_FILE otlp-http WITH_OTLP_HTTP otlp-grpc WITH_OTLP_GRPC geneva WITH_GENEVA user-events WITH_USER_EVENTS opentracing WITH_OPENTRACING INVERTED_FEATURES user-events BUILD_TRACEPOINTS ) # opentelemetry-proto is a third party submodule and opentelemetry-cpp release did not pack it. if(WITH_OTLP_FILE OR WITH_OTLP_GRPC OR WITH_OTLP_HTTP) set(OTEL_PROTO_VERSION "1.8.0") vcpkg_download_distfile(ARCHIVE URLS "https://github.com/open-telemetry/opentelemetry-proto/archive/v${OTEL_PROTO_VERSION}.tar.gz" FILENAME "opentelemetry-proto-${OTEL_PROTO_VERSION}.tar.gz" SHA512 43e320c365f73e1302951cf69e4f395c8dec9fe3efba802dea10637b61721a64868fb0a45c33d2ac15f99a7ba0b865c268d268a543a4efeff10f5c59407e7ba9 ) vcpkg_extract_source_archive(src ARCHIVE "${ARCHIVE}") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/opentelemetry-proto") file(COPY "${src}/." DESTINATION "${SOURCE_PATH}/third_party/opentelemetry-proto") # Create empty .git directory to prevent opentelemetry from cloning it during build time file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party/opentelemetry-proto/.git") list(APPEND FEATURE_OPTIONS "-DgRPC_CPP_PLUGIN_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/grpc/grpc_cpp_plugin${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() list(APPEND FEATURE_OPTIONS -DCMAKE_CXX_STANDARD=14) set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "OFF") if(WITH_GENEVA OR WITH_USER_EVENTS) # Geneva and user events exporters from opentelemetry-cpp-contrib are tightly coupled with opentelemetry-cpp repo, # so they should be ported as a feature under opentelemetry-cpp. clone_opentelemetry_cpp_contrib(CONTRIB_SOURCE_PATH) if(WITH_GENEVA) set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "${CONTRIB_SOURCE_PATH}/exporters/geneva") if(VCPKG_TARGET_IS_WINDOWS) set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "${OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS}\;${CONTRIB_SOURCE_PATH}/exporters/geneva-trace") else() set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "${OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS}\;${CONTRIB_SOURCE_PATH}/exporters/fluentd") endif() endif() if(WITH_USER_EVENTS) if(WITH_GENEVA) set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "${OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS}\;${CONTRIB_SOURCE_PATH}/exporters/user_events") else() set(OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS "${CONTRIB_SOURCE_PATH}/exporters/user_events") endif() endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DWITH_EXAMPLES=OFF -DOPENTELEMETRY_INSTALL=ON -DWITH_BENCHMARK=OFF -DOPENTELEMETRY_EXTERNAL_COMPONENT_PATH=${OPENTELEMETRY_CPP_EXTERNAL_COMPONENTS} ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES WITH_GENEVA WITH_USER_EVENTS BUILD_TRACEPOINTS gRPC_CPP_PLUGIN_EXECUTABLE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/opentelemetry/sdk/configuration") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/opentelemetry-cpp/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "opentelemetry-cpp", "version-semver": "1.25.0", "description": [ "OpenTelemetry is a collection of tools, APIs, and SDKs.", "You use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) for analysis in order to understand your software's performance and behavior." ], "homepage": "https://github.com/open-telemetry/opentelemetry-cpp", "license": "Apache-2.0", "dependencies": [ "abseil", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "elasticsearch": { "description": "Whether to include the Elasticsearch Client in the SDK", "dependencies": [ { "name": "curl", "default-features": false } ] }, "etw": { "description": "Whether to include the ETW Exporter in the SDK", "supports": "windows" }, "geneva": { "description": "Whether to include the Geneva Exporter from the opentelemetry-cpp-contrib repository", "dependencies": [ { "name": "opentelemetry-cpp", "features": [ "etw" ], "platform": "windows" }, "opentelemetry-cpp-contrib-version" ] }, "opentracing": { "description": "Whether to include the Opentracing shim", "dependencies": [ "opentracing" ] }, "otlp-file": { "description": "Whether to include the OpenTelemetry Protocol to File exporter in the SDK", "supports": "!uwp", "dependencies": [ "protobuf" ] }, "otlp-grpc": { "description": "Whether to include the OTLP gRPC exporter in the SDK", "dependencies": [ "grpc", { "name": "grpc", "host": true } ] }, "otlp-http": { "description": "Whether to include the OpenTelemetry Protocol over HTTP in the SDK", "dependencies": [ "curl", "protobuf" ] }, "prometheus": { "description": "Whether to include the Prometheus Client in the SDK", "dependencies": [ "prometheus-cpp" ] }, "user-events": { "description": "Whether to include the User Events Exporter from the opentelemetry-cpp-contrib repository", "supports": "linux", "dependencies": [ "libeventheader-tracepoint", "libtracepoint", { "name": "opentelemetry-cpp", "features": [ "otlp-http" ] }, "opentelemetry-cpp-contrib-version" ] }, "zipkin": { "description": "Whether to include the Zipkin exporter in the SDK", "dependencies": [ "curl" ] } } } ================================================ FILE: ports/opentelemetry-cpp-contrib-version/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/opentelemetry-cpp-contrib-version/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) function(clone_opentelemetry_cpp_contrib CONTRIB_SOURCE_PATH) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-telemetry/opentelemetry-cpp-contrib REF 36fd15952da761312b7d75d9a934e09584249257 HEAD_REF main SHA512 4b60086d25c61efe9b5713a561ecc4a0d8fed8629dbbaee07578a6af5e785c1bd69edce230cf709c82dbd7a3e9740f3fe5831dbbd4326e3090af2832b210359c ) set(${CONTRIB_SOURCE_PATH} ${SOURCE_PATH} CACHE INTERNAL "") endfunction() ================================================ FILE: ports/opentelemetry-cpp-contrib-version/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "opentelemetry-cpp-contrib-version", "version-date": "2025-11-24", "description": "This port manages the opentelemetry-cpp-version that will be used for opentelemetry-cpp", "homepage": "https://github.com/open-telemetry/opentelemetry-cpp-contrib", "license": "Apache-2.0" } ================================================ FILE: ports/opentracing/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a451844..5966aa3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,11 +39,13 @@ set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) set(CPACK_GENERATOR "RPM") set(CPACK_COMPONENTS_IGNORE_GROUPS 1) +if(0) include(CPack) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output) +endif() # ============================================================================== # Configure compilers @@ -165,7 +167,7 @@ if (BUILD_SHARED_LIBS) target_compile_definitions(opentracing PRIVATE OPENTRACING_EXPORTS) install(TARGETS opentracing EXPORT OpenTracingTargets COMPONENT DIST - RUNTIME DESTINATION ${LIB_INSTALL_DIR} + RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ) diff --git a/mocktracer/CMakeLists.txt b/mocktracer/CMakeLists.txt index 9835fe3..147179b 100644 --- a/mocktracer/CMakeLists.txt +++ b/mocktracer/CMakeLists.txt @@ -21,6 +21,7 @@ if (BUILD_SHARED_LIBS) install(TARGETS opentracing_mocktracer COMPONENT DIST EXPORT OpenTracingTargets + RUNTIME DESTINATION bin LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) ================================================ FILE: ports/opentracing/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO opentracing/opentracing-cpp REF 4bb431f7728eaf383a07e86f9754a5b67575dab0 # v1.6.0 SHA512 1c69ff4cfd5f6037a48815367d3026c1bf06c3c49ebf232a64c43167385fb62e444c3b3224fc38f68ef0fdb378e3736db6ee6ba57160e6e578c87c09e92e527e PATCHES fix-cmake.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_LINTING=OFF -DBUILD_TESTING=OFF -DBUILD_DYNAMIC_LOADING=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenTracing) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/opentracing/vcpkg.json ================================================ { "name": "opentracing", "version": "1.6.0", "port-version": 4, "description": "C++ implementation of the OpenTracing API", "homepage": "https://opentracing.io", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openturns/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e2f0f5b..61cc8b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,12 @@ if (NOT DEFINED LAPACK_LIBRARIES) endif () list (APPEND OPENTURNS_PRIVATE_LIBRARIES ${LAPACK_LIBRARIES}) +find_package(kissfft CONFIG REQUIRED) +list(APPEND OPENTURNS_PRIVATE_LIBRARIES kissfft::kissfft-double) + +find_path(RAPIDCSV_INCLUDE_DIRS "rapidcsv.h" REQUIRED) +list(APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${RAPIDCSV_INCLUDE_DIRS}) + if (USE_SPECTRA) find_package (Spectra 1.0 CONFIG) endif () @@ -183,7 +189,8 @@ if (TBB_FOUND) endif () if (USE_MUPARSER) - find_package (muParser 2.2.3 QUIET) + find_package (MUPARSER NAMES muparser REQUIRED) + set(MUPARSER_LIBRARIES muparser::muparser) endif () if (MUPARSER_FOUND) set (OPENTURNS_HAVE_MUPARSER TRUE) @@ -194,6 +201,8 @@ if (MUPARSER_FOUND) set (SYMBOLICPARSER_DEFAULT_BACKEND MuParser) endif () if (USE_EXPRTK) + find_path(EXPRTK_INCLUDE_DIRS "exprtk.hpp" REQUIRED) + list(APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${EXPRTK_INCLUDE_DIRS}) set (OPENTURNS_HAVE_EXPRTK TRUE) set (OPENTURNS_HAVE_ANALYTICAL_PARSER TRUE) set (SYMBOLICPARSER_DEFAULT_BACKEND ExprTk) @@ -262,7 +271,9 @@ if (USE_BOOST) endif () endif () if (USE_MPFR) - find_package (MPFR) + find_package(PkgConfig REQUIRED) + pkg_check_modules(MPFR mpfr REQUIRED) + set(MPFR_LIBRARIES "${MPFR_LINK_LIBRARIES}") if (MPFR_FOUND) set (OPENTURNS_HAVE_MPFR TRUE) list (APPEND OPENTURNS_PRIVATE_INCLUDE_DIRS ${MPFR_INCLUDE_DIRS}) @@ -435,9 +446,8 @@ check_include_file (dlfcn.h OPENTURNS_HAVE_DLFCN_H ) include (CheckFunctionExists) if (OPENTURNS_HAVE_DLFCN_H AND UNIX) - find_library (LIBDL_LIBRARIES NAMES dl) - mark_as_advanced (LIBDL_LIBRARIES) - if (LIBDL_LIBRARIES) + set(LIBDL_LIBRARIES "${CMAKE_DL_LIBS}") + if(1) set (CMAKE_REQUIRED_LIBRARIES ${LIBDL_LIBRARIES}) check_function_exists (dladdr OPENTURNS_HAVE_DLADDR) set (CMAKE_REQUIRED_LIBRARIES) diff --git a/LICENSE b/LICENSE index 2bd2cde..3148f78 100644 --- a/LICENSE +++ b/LICENSE @@ -4,11 +4,8 @@ This library bundles several third-party codes with various licenses compatible - COBYLA optimization solver (lib/src/Base/Optim/algocobyla.*) under Expat license, see COPYING.cobyla - Mersenne twister RNG (lib/src/Base/Stat/dsfmt.*) under BSD license, see COPYING.dsfmt - Ev3 symbolic library (lib/src/Base/Diff/Ev3/*) under LGPL license, see COPYING.ev3 -- ExprTk symbolic parser (lib/src/Base/Func/openturns/exprtk.hpp) under Expat license, see COPYING.exprtk - Faddeeva function (lib/src/Base/Func/SpecFunc/Faddeeva.*) under Expat license, see COPYING.faddeeva - Kendall Tau (lib/src/Base/Stat/kendall.c) under BSL license, see COPYING.kendall -- KissFFT (lib/src/Base/Algo/kissfft.hh), under BSD license, see COPYING.kissfft - KS distribution from Cephes library (lib/src/Uncertainty/Distribution/cephes/*) under BSD license, see COPYING.cephes - TNC optimization solver (lib/src/Base/Optim/algotnc.*) under Expat license, see COPYING.tnc - Gauss Legendre quadrature from FastGL library (lib/src/Base/Algo/fastgl*) under BSD license, see COPYING.fastGL -- Rapidcsv parser library (lib/src/Base/Stat/rapidcsv.h) under BSD license, see COPYING.rapidcsv diff --git a/lib/OpenTURNSConfig.cmake.in b/lib/OpenTURNSConfig.cmake.in index 096490b..307faaa 100644 --- a/lib/OpenTURNSConfig.cmake.in +++ b/lib/OpenTURNSConfig.cmake.in @@ -47,7 +47,7 @@ set_and_check ( OPENTURNS_INCLUDE_DIR "@PACKAGE_OPENTURNS_INCLUDE_DIR@" ) set ( OPENTURNS_INCLUDE_DIRS "@PACKAGE_OPENTURNS_INCLUDE_DIRS@" ) set ( OPENTURNS_LIBRARY "@OPENTURNS_LIBRARY@" ) set ( OPENTURNS_LIBRARIES "@OPENTURNS_LIBRARIES@" ) -set ( OPENTURNS_LIBRARY_DIRS "@PACKAGE_OPENTURNS_LIBRARY_DIRS@" ) +set ( OPENTURNS_LIBRARY_DIRS "" ) set_and_check ( OPENTURNS_ROOT_DIR "@PACKAGE_OPENTURNS_ROOT_DIR@" ) set ( OPENTURNS_VERSION_STRING "@OPENTURNS_VERSION_STRING@" ) @@ -62,6 +62,11 @@ set (OPENTURNS_PYTHON_MODULE_PATH "@PACKAGE_PYTHON_MODULE_PATH@") # static libraries dependencies are transitive so imported targets must be defined if (NOT @BUILD_SHARED_LIBS@) include(CMakeFindDependencyMacro) + find_dependency(kissfft CONFIG) + find_dependency(nanoflann CONFIG) + if("@MUPARSER_FOUND@") + find_dependency(muparser CONFIG) + endif() if ("1" STREQUAL "@Ceres_FOUND@") find_dependency(Ceres CONFIG) diff --git a/lib/src/Base/Func/SymbolicParserExprTk.cxx b/lib/src/Base/Func/SymbolicParserExprTk.cxx index 38e818b..8f926da 100644 --- a/lib/src/Base/Func/SymbolicParserExprTk.cxx +++ b/lib/src/Base/Func/SymbolicParserExprTk.cxx @@ -27,7 +27,7 @@ #include "openturns/OTwindows.h" // exprtk includes windows.h #define exprtk_disable_caseinsensitivity -#include "openturns/exprtk.hpp" +#include BEGIN_NAMESPACE_OPENTURNS ================================================ FILE: ports/openturns/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openturns/openturns REF v${VERSION} SHA512 d73c294ce8fafb99da0769791cee09a6da76d3839489dd32227a7569c1fbbfc06c2a918d3951ea5b9d7a7efb1f30d11e04a52bb8d906e37411bc372235a9832b HEAD_REF master PATCHES dependencies.diff ) file(REMOVE "${SOURCE_PATH}/lib/src/Base/Algo/kissfft.hh") file(REMOVE "${SOURCE_PATH}/lib/src/Base/Func/openturns/exprtk.hpp") file(REMOVE "${SOURCE_PATH}/lib/src/Base/Stat/rapidcsv.h") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "muparser" USE_MUPARSER "tbb" USE_TBB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_PYTHON:BOOL=OFF # Requires additional python modules -DUSE_BONMIN=OFF -DUSE_CUBA:BOOL=OFF -DUSE_DOXYGEN:BOOL=OFF -DUSE_HMAT=OFF -DUSE_IPOPT=OFF -DUSE_OPENMP:BOOL=OFF -DUSE_PRIMESIEVE=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_Spectra:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Eigen3:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_TBB:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_LibXml2:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_HDF5:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_MPC:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_NLopt:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_dlib:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Ceres:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_CMinpack:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Pagmo:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_nanoflann:BOOL=ON OPTIONS_RELEASE "-DOPENTURNS_CONFIG_CMAKE_PATH=${CURRENT_PACKAGES_DIR}/share/${PORT}" OPTIONS_DEBUG "-DOPENTURNS_CONFIG_CMAKE_PATH=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/openturns/OTdebug.h" "#ifndef OT_STATIC" "#if 0") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.LESSER" "${SOURCE_PATH}/COPYING.cobyla" "${SOURCE_PATH}/COPYING.dsfmt" "${SOURCE_PATH}/COPYING.ev3" "${SOURCE_PATH}/COPYING.faddeeva" "${SOURCE_PATH}/COPYING.fastgl" "${SOURCE_PATH}/COPYING.kendall" "${SOURCE_PATH}/COPYING.cephes" "${SOURCE_PATH}/COPYING.tnc" ) ================================================ FILE: ports/openturns/usage ================================================ openturns provides CMake targets: find_package(OpenTURNS CONFIG REQUIRED) target_link_libraries(main PRIVATE OT) ================================================ FILE: ports/openturns/vcpkg.json ================================================ { "name": "openturns", "version": "1.25.1", "description": "OpenTURNS is a scientific C++ and Python library featuring an internal data model and algorithms dedicated to the treatment of uncertainties.", "homepage": "https://openturns.github.io/", "license": null, "dependencies": [ "blas", "boost-geometry", "boost-math", "boost-multiprecision", "boost-random", "ceres", "cminpack", "dlib", "exprtk", { "name": "hdf5", "default-features": false, "features": [ "cpp" ] }, "kissfft", "lapack", { "name": "libxml2", "default-features": false }, "mpc", "mpfr", "nanoflann", "nlopt", "pagmo2", "rapidcsv", "spectra", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "muparser": { "description": "Legacy analytical parser", "dependencies": [ "muparser" ] }, "tbb": { "description": "Use TBB multithreading", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/openvdb/fix_cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 34df130..70351ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -311,12 +311,9 @@ endif() if(OPENVDB_INSTALL_CMAKE_MODULES) set(OPENVDB_CMAKE_MODULES - cmake/FindBlosc.cmake cmake/FindJemalloc.cmake cmake/FindLog4cplus.cmake - cmake/FindOpenEXR.cmake cmake/FindOpenVDB.cmake - cmake/FindTBB.cmake cmake/OpenVDBGLFW3Setup.cmake cmake/OpenVDBHoudiniSetup.cmake cmake/OpenVDBMayaSetup.cmake diff --git a/cmake/FindOpenVDB.cmake b/cmake/FindOpenVDB.cmake index 33b0838..c1e9d00 100644 --- a/cmake/FindOpenVDB.cmake +++ b/cmake/FindOpenVDB.cmake @@ -488,7 +488,7 @@ endif() # Add standard dependencies -find_package(TBB REQUIRED COMPONENTS tbb) +find_package(TBB CONFIG REQUIRED) # Add deps for pyopenvdb @@ -613,7 +613,7 @@ elseif(NOT OPENVDB_USE_STATIC_LIBS) endif() if(OpenVDB_USES_BLOSC) - find_package(Blosc REQUIRED) + find_package(blosc CONFIG REQUIRED) endif() if(OpenVDB_USES_ZLIB) @@ -670,7 +670,7 @@ set(_OPENVDB_HIDDEN_DEPENDENCIES) if(NOT OPENVDB_USE_STATIC_LIBS) if(OpenVDB_USES_BLOSC) - list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES Blosc::blosc) + list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES blosc) endif() if(OpenVDB_USES_ZLIB) list(APPEND _OPENVDB_HIDDEN_DEPENDENCIES ZLIB::ZLIB) diff --git a/nanovdb/nanovdb/CMakeLists.txt b/nanovdb/nanovdb/CMakeLists.txt index 4e0284e..ca3449b 100644 --- a/nanovdb/nanovdb/CMakeLists.txt +++ b/nanovdb/nanovdb/CMakeLists.txt @@ -122,15 +122,15 @@ if(NANOVDB_USE_OPENVDB) endif() if(NANOVDB_USE_TBB AND NOT TARGET TBB::tbb) - find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED) + find_package(TBB CONFIG REQUIRED) endif() if(NANOVDB_USE_BLOSC AND NOT TARGET Blosc::blosc) - find_package(Blosc ${MINIMUM_BLOSC_VERSION} REQUIRED) + find_package(blosc CONFIG REQUIRED) endif() if(NANOVDB_USE_ZLIB AND NOT TARGET ZLIB::ZLIB) - find_package(ZLIB ${MINIMUM_ZLIB_VERSION} REQUIRED) + find_package(ZLIB REQUIRED) endif() if(NANOVDB_USE_MAGICAVOXEL) @@ -290,7 +290,7 @@ if(NANOVDB_USE_TBB) endif() if(NANOVDB_USE_BLOSC) - target_link_libraries(nanovdb INTERFACE Blosc::blosc) + target_link_libraries(nanovdb INTERFACE $,blosc_shared,blosc_static>) target_compile_definitions(nanovdb INTERFACE -DNANOVDB_USE_BLOSC) endif() diff --git a/openvdb/openvdb/CMakeLists.txt b/openvdb/openvdb/CMakeLists.txt index 3db0e4e..9475709 100644 --- a/openvdb/openvdb/CMakeLists.txt +++ b/openvdb/openvdb/CMakeLists.txt @@ -121,7 +121,7 @@ if(OPENVDB_USE_DELAYED_LOADING) endif() endif() -find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbb) +find_package(TBB CONFIG REQUIRED) if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_TBB_VERSION) if(${TBB_VERSION} VERSION_LESS FUTURE_MINIMUM_TBB_VERSION) message(DEPRECATION "Support for TBB versions < ${FUTURE_MINIMUM_TBB_VERSION} " @@ -150,6 +150,7 @@ endif() if(USE_BLOSC) # Find Blosc libraries + if(0) find_package(Blosc ${MINIMUM_BLOSC_VERSION} REQUIRED) if(Blosc_VERSION) if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_BLOSC_VERSION) @@ -170,6 +171,8 @@ if(USE_BLOSC) "strongly recommend using the new future minimum version '${FUTURE_MINIMUM_BLOSC_VERSION}'") endif() endif() + endif() + find_package(blosc CONFIG REQUIRED) else() message(WARNING "Blosc support is disabled. It is strongly recommended to " "enable blosc for optimal builds of OpenVDB and to support compatible " @@ -226,7 +229,11 @@ endif() # /usr/local if(USE_BLOSC) - list(APPEND OPENVDB_CORE_DEPENDENT_LIBS Blosc::blosc) + if(BUILD_SHARED_LIBS) + list(APPEND OPENVDB_CORE_DEPENDENT_LIBS blosc_shared) + else() + list(APPEND OPENVDB_CORE_DEPENDENT_LIBS blosc_static) + endif() endif() if(USE_BLOSC OR USE_ZLIB) diff --git a/openvdb_cmd/CMakeLists.txt b/openvdb_cmd/CMakeLists.txt index edbb1a4..463d3ed 100644 --- a/openvdb_cmd/CMakeLists.txt +++ b/openvdb_cmd/CMakeLists.txt @@ -53,7 +53,7 @@ if(CONCURRENT_MALLOC STREQUAL "Jemalloc") find_package(Jemalloc REQUIRED) list(APPEND OPENVDB_BINARIES_DEPENDENT_LIBS Jemalloc::jemalloc) elseif(CONCURRENT_MALLOC STREQUAL "Tbbmalloc") - find_package(TBB ${MINIMUM_TBB_VERSION} REQUIRED COMPONENTS tbbmalloc) + find_package(TBB CONFIG REQUIRED) list(APPEND OPENVDB_BINARIES_DEPENDENT_LIBS TBB::tbbmalloc) endif() ================================================ FILE: ports/openvdb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AcademySoftwareFoundation/openvdb REF "v${VERSION}" SHA512 67b859bf77c53e68116faa7915bb6a5a50a8cff10435762890e13348625e8aebdb6661b722017632471648afe31e2f9d4cd2e18456c728192bfd0accd70a40ef PATCHES fix_cmake.patch ) file(REMOVE "${SOURCE_PATH}/cmake/FindTBB.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindIlmBase.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindBlosc.cmake") file(REMOVE "${SOURCE_PATH}/cmake/FindOpenEXR.cmake") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OPENVDB_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OPENVDB_SHARED) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tools" OPENVDB_BUILD_TOOLS "ax" OPENVDB_BUILD_AX "nanovdb" OPENVDB_BUILD_NANOVDB "nanovdb-tools" NANOVDB_BUILD_TOOLS ) if (OPENVDB_BUILD_NANOVDB) set(NANOVDB_OPTIONS -DNANOVDB_USE_INTRINSICS=ON -DNANOVDB_USE_CUDA=ON -DNANOVDB_CUDA_KEEP_PTX=ON -DNANOVDB_USE_OPENVDB=ON ) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND FEATURE_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" "-DCUDAToolkit_ROOT=${cuda_toolkit_root}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPENVDB_BUILD_UNITTESTS=OFF -DOPENVDB_BUILD_PYTHON_MODULE=OFF -DOPENVDB_3_ABI_COMPATIBLE=OFF -DUSE_EXR=ON -DUSE_IMATH_HALF=ON -DOPENVDB_CORE_STATIC=${OPENVDB_STATIC} -DOPENVDB_CORE_SHARED=${OPENVDB_SHARED} -DOPENVDB_BUILD_VDB_PRINT=${OPENVDB_BUILD_TOOLS} -DOPENVDB_BUILD_VDB_VIEW=${OPENVDB_BUILD_TOOLS} -DOPENVDB_BUILD_VDB_RENDER=${OPENVDB_BUILD_TOOLS} -DOPENVDB_BUILD_VDB_LOD=${OPENVDB_BUILD_TOOLS} -DUSE_PKGCONFIG=OFF ${FEATURE_OPTIONS} -DUSE_EXPLICIT_INSTANTIATION=OFF ${NANOVDB_OPTIONS} MAYBE_UNUSED_VARIABLES OPENVDB_3_ABI_COMPATIBLE OPENVDB_BUILD_TOOLS NANOVDB_BUILD_TOOLS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/OpenVDB) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if (OPENVDB_BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES vdb_print vdb_render vdb_view vdb_lod AUTO_CLEAN) endif() if (NANOVDB_BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES nanovdb_convert nanovdb_print nanovdb_validate AUTO_CLEAN) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openvdb/usage ================================================ The package openvdb provides CMake targets: find_package(OpenVDB CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenVDB::openvdb) ================================================ FILE: ports/openvdb/vcpkg-cmake-wrapper.cmake.in ================================================ set(OPENVDB_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") set(OPENVDB_USE_STATIC_LIBS @OPENVDB_STATIC@) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${OPENVDB_PREV_MODULE_PATH}) ================================================ FILE: ports/openvdb/vcpkg.json ================================================ { "name": "openvdb", "version": "12.0.1", "description": "Sparse volume data structure and tools", "homepage": "https://www.openvdb.org", "license": "Apache-2.0", "supports": "!xbox", "dependencies": [ "blosc", "boost-any", "boost-date-time", "boost-interprocess", "boost-iostreams", "boost-ptr-container", "boost-system", "boost-thread", "boost-uuid", "imath", "openexr", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ax": { "description": "Provides a powerful and easy way of interacting with OpenVDB volume and point data.", "supports": "!windows", "dependencies": [ { "name": "llvm", "default-features": false } ] }, "nanovdb": { "description": "A lightweight GPU friendly version of VDB initially targeting rendering applications", "dependencies": [ "cuda" ] }, "nanovdb-tools": { "description": "NanoVDB tools: print, validate, and convert.", "dependencies": [ { "name": "openvdb", "features": [ "nanovdb" ] } ] }, "tools": { "description": "OpenVDB utilities: view, print and render", "dependencies": [ "glew", "glfw3" ] } } } ================================================ FILE: ports/openvino/msvc_debug_info_only_in_pdb.patch ================================================ diff --git a/cmake/developer_package/compile_flags/os_flags.cmake b/cmake/developer_package/compile_flags/os_flags.cmake index 3ce87023ad..a2c5b2dda1 100644 --- a/cmake/developer_package/compile_flags/os_flags.cmake +++ b/cmake/developer_package/compile_flags/os_flags.cmake @@ -134,6 +134,11 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG") endif() + if(CMAKE_BUILD_TYPE STREQUAL "Debug") + string(REPLACE "/Z7" "/Zi" CMAKE_C_FLAGS_DEBUG $CMAKE_C_FLAGS_DEBUG) + string(REPLACE "/Z7" "/Zi" CMAKE_CXX_FLAGS_DEBUG $CMAKE_CXX_FLAGS_DEBUG) + endif() + # need to set extra flags after /DEBUG to ensure that binary size is not bloated set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF") set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /OPT:REF /OPT:ICF") ================================================ FILE: ports/openvino/npu_deps.patch ================================================ diff --git a/cmake/features.cmake b/cmake/features.cmake index 098f5b752b..bd55827203 100644 --- a/cmake/features.cmake +++ b/cmake/features.cmake @@ -190,7 +190,7 @@ ov_dependent_option (ENABLE_SYSTEM_TBB "Enables use of system TBB" ${ENABLE_SYS ov_option (ENABLE_SYSTEM_PUGIXML "Enables use of system PugiXML" OFF) # the option is on by default, because we use only flatc compiler and don't use any libraries ov_dependent_option(ENABLE_SYSTEM_FLATBUFFERS "Enables use of system flatbuffers" ${ENABLE_SYSTEM_FLATBUFFERS_DEFAULT} - "ENABLE_OV_TF_LITE_FRONTEND" OFF) + "ENABLE_OV_TF_LITE_FRONTEND OR ENABLE_INTEL_NPU" OFF) ov_dependent_option (ENABLE_SYSTEM_OPENCL "Enables use of system OpenCL" ${ENABLE_SYSTEM_LIBS_DEFAULT} "ENABLE_INTEL_GPU" OFF) # the option is turned off by default, because we compile our own static version of protobuf diff --git a/src/plugins/intel_npu/cmake/download_compiler_libs.cmake b/src/plugins/intel_npu/cmake/download_compiler_libs.cmake index 89009aa84e..69824f6986 100644 --- a/src/plugins/intel_npu/cmake/download_compiler_libs.cmake +++ b/src/plugins/intel_npu/cmake/download_compiler_libs.cmake @@ -104,7 +104,7 @@ if(ENABLE_INTEL_NPU_COMPILER) set(NPU_COMPILER_LIB_DESTINATION "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_BUILD_TYPE}") endif() if(WIN32) - set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/temp/plugin_compiler_lib/win") + set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_BINARY_DIR}/temp/plugin_compiler_lib/win") set(PLUGIN_COMPILER_LIBS_URL "https://storage.openvinotoolkit.org/dependencies/thirdparty/windows/npu_compiler_vcl_windows_2022-7_5_0-a1ae54e9.zip") set(PLUGIN_COMPILER_LIBS_ZIP "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_windows_2022-${PLUGIN_COMPILER_VERSION}-a1ae54e9.zip") set(PLUGIN_COMPILER_LIBS_DIR_UNZIPPED "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_windows_2022-${PLUGIN_COMPILER_VERSION}-a1ae54e9") @@ -131,7 +131,7 @@ if(ENABLE_INTEL_NPU_COMPILER) if(OS_NAME STREQUAL "Ubuntu") if(OS_VERSION STREQUAL "22.04") # Ubuntu 22.04-specific settings or actions - set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/temp/compiler_libs/ubuntu22.04") + set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_BINARY_DIR}/temp/compiler_libs/ubuntu22.04") set(PLUGIN_COMPILER_LIBS_URL "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/npu_compiler_vcl_ubuntu_22_04-7_5_0-a1ae54e9.tar.gz") set(PLUGIN_COMPILER_LIBS_TAR "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_ubuntu_22_04-${PLUGIN_COMPILER_VERSION}-a1ae54e9.tar.gz") set(PLUGIN_COMPILER_LIBS_DIR_EXTRACTED "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_ubuntu_22_04-${PLUGIN_COMPILER_VERSION}-a1ae54e9") @@ -149,7 +149,7 @@ if(ENABLE_INTEL_NPU_COMPILER) message(STATUS "Copying prebuilt Plugin compiler libraries libopenvino_intel_npu_compiler.so to ${NPU_COMPILER_LIB_DESTINATION} for Ubuntu 22.04") elseif(OS_VERSION STREQUAL "24.04") message(STATUS "This is Ubuntu 24.04") - set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/temp/compiler_libs/ubuntu24.04") + set(PLUGIN_COMPILER_LIBS_DIR "${CMAKE_CURRENT_BINARY_DIR}/temp/compiler_libs/ubuntu24.04") set(PLUGIN_COMPILER_LIBS_URL "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/npu_compiler_vcl_ubuntu_24_04-7_5_0-a1ae54e9.tar.gz") set(PLUGIN_COMPILER_LIBS_TAR "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_ubuntu_24_04-${PLUGIN_COMPILER_VERSION}-a1ae54e9.tar.gz") set(PLUGIN_COMPILER_LIBS_DIR_EXTRACTED "${PLUGIN_COMPILER_LIBS_DIR}/npu_compiler_vcl_ubuntu_24_04-${PLUGIN_COMPILER_VERSION}-a1ae54e9") ================================================ FILE: ports/openvino/onednn_gpu_includes.patch ================================================ diff --git a/src/plugins/intel_gpu/src/graph/CMakeLists.txt b/src/plugins/intel_gpu/src/graph/CMakeLists.txt index b3ee51e242..31477ec128 100644 --- a/src/plugins/intel_gpu/src/graph/CMakeLists.txt +++ b/src/plugins/intel_gpu/src/graph/CMakeLists.txt @@ -82,7 +82,7 @@ macro(ov_gpu_add_backend_target) # We use onednn headers all over the graph module, so we have to append includes to all backends and add a dependency between targets if (ENABLE_ONEDNN_FOR_GPU) - target_include_directories(${ARG_NAME} SYSTEM BEFORE PRIVATE $) + target_include_directories(${ARG_NAME} BEFORE PRIVATE $) add_dependencies(openvino_intel_gpu_${IMPL_TYPE}_obj onednn_gpu_tgt) endif() endmacro() diff --git a/src/plugins/intel_gpu/src/runtime/CMakeLists.txt b/src/plugins/intel_gpu/src/runtime/CMakeLists.txt index 85dfec05c4..3f72a41949 100644 --- a/src/plugins/intel_gpu/src/runtime/CMakeLists.txt +++ b/src/plugins/intel_gpu/src/runtime/CMakeLists.txt @@ -56,7 +56,7 @@ if(OV_COMPILER_IS_INTEL_LLVM) endif() if(ENABLE_ONEDNN_FOR_GPU) - ov_target_link_libraries_as_system(${TARGET_NAME} PUBLIC onednn_gpu_tgt) + target_link_libraries(${TARGET_NAME} PUBLIC onednn_gpu_tgt) endif() ov_set_threading_interface_for(${TARGET_NAME}) diff --git a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt index e47b2b1ffd..e03c95fdeb 100644 --- a/src/plugins/intel_gpu/thirdparty/CMakeLists.txt +++ b/src/plugins/intel_gpu/thirdparty/CMakeLists.txt @@ -173,7 +173,6 @@ if(ENABLE_ONEDNN_FOR_GPU) set_target_properties(onednn_gpu_tgt PROPERTIES INTERFACE_LINK_LIBRARIES $ INTERFACE_INCLUDE_DIRECTORIES "$" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${LIB_INCLUDE_DIRS}" INTERFACE_COMPILE_DEFINITIONS "${LIB_DEFINITIONS}" ) add_dependencies(onednn_gpu_tgt onednn_gpu_build) ================================================ FILE: ports/openvino/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openvinotoolkit/openvino REF "${VERSION}" SHA512 77259f2211aa27c70c4930795ab6a7f7a0eade6fa8cda9b38caafdb3fa8081dba7c6bb5c2fa75adbdb224e4d84c80c48f19eef463500cd58316aa55183e6d660 HEAD_REF master PATCHES msvc_debug_info_only_in_pdb.patch onednn_gpu_includes.patch protobuf-6.patch npu_deps.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cpu ENABLE_INTEL_CPU gpu ENABLE_INTEL_GPU npu ENABLE_INTEL_NPU auto ENABLE_AUTO hetero ENABLE_HETERO auto-batch ENABLE_AUTO_BATCH ir ENABLE_OV_IR_FRONTEND onnx ENABLE_OV_ONNX_FRONTEND paddle ENABLE_OV_PADDLE_FRONTEND pytorch ENABLE_OV_PYTORCH_FRONTEND tensorflow ENABLE_OV_TF_FRONTEND tensorflow-lite ENABLE_OV_TF_LITE_FRONTEND ) if(ENABLE_INTEL_GPU) # python is required for conversion of OpenCL source files into .cpp. vcpkg_find_acquire_program(PYTHON3) # remove 'rapidjson' directory and use vcpkg's one to comply with ODR file(REMOVE_RECURSE "${SOURCE_PATH}/src/plugins/intel_gpu/thirdparty/rapidjson") vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO oneapi-src/oneDNN REF v3.11 SHA512 de60ecd881b97e9942441e0eb5c53e2caa2a0a1a1c78ab9211ab103244b66b62c0f3dfa5b322bb2c39dfe13f85a9aebf82b899dde1ccdc01ba8ff9deed832787 ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_gpu/thirdparty/onednn_gpu") list(APPEND FEATURE_OPTIONS "-DENABLE_SYSTEM_OPENCL=ON" "-DPython3_EXECUTABLE=${PYTHON3}") endif() if(ENABLE_INTEL_CPU) vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO openvinotoolkit/oneDNN REF c6b79c1207bd5f20b9395536dab1d71a47cfcb1d SHA512 2ed3444c60771229f051688964ee51b7cd229f75dfdbc6e59390d64223bb5d98074dd30cd4cd2458725bfba147bdf985bcc1d7ba8291f097ff4f291859b35ce3 ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_cpu/thirdparty/onednn") vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO openvinotoolkit/mlas REF d1bc25ec4660cddd87804fcf03b2411b5dfb2e94 SHA512 8d6dd319924135b7b22940d623305bf200b812ae64cde79000709de4fad429fbd43794301ef16e6f10ed7132777b7a73e9f30ecae7c030aea80d57d7c0ce4500 ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_cpu/thirdparty/mlas") if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") # scons (python tool) is required for ARM Compute Library building vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages( PYTHON_VERSION 3 PYTHON_EXECUTABLE ${PYTHON3} PACKAGES scons OUT_PYTHON_VAR OV_PYTHON_WITH_SCONS ) list(APPEND FEATURE_OPTIONS "-DPython3_EXECUTABLE=${OV_PYTHON_WITH_SCONS}") vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO ARM-software/ComputeLibrary REF v52.6.0 SHA512 b7f0c5b33466a064e87fbc549fbb78f49c03ef10d50d5e84a9e8dca66094e469cff5d6c5ec01e26873e957e74e8b8a8472c369ab8aeea74c7c36ad0dfe1ad152 ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_cpu/thirdparty/ComputeLibrary") vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO ARM-software/kleidiai REF v1.19.0 SHA512 46de1f0cdd04ce1e8de5d1bdb2499d07eb377e616eb3a8596fbcd296b7887e413be5470f383b5790cef73dc370bead3db36ef2ed116513b95924ae71d87ef123 ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_cpu/thirdparty/kleidiai") endif() endif() if(ENABLE_INTEL_NPU) list(APPEND FEATURE_OPTIONS "-DENABLE_INTEL_NPU_INTERNAL=OFF" "-DENABLE_SYSTEM_LEVEL_ZERO=ON") vcpkg_from_github( OUT_SOURCE_PATH DEP_SOURCE_PATH REPO intel/level-zero-npu-extensions REF 8404c63a88d182726038d2b07c219731dada9c21 SHA512 701c3dbb3fc016a5b2fd70b68375a8191013299b8824bdd2a2830efd69cadc3d4b104b6479c37a46164d1a1a9781e8cc50eebb96c0ada64743e5e2b9456bb1af ) file(COPY "${DEP_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/plugins/intel_npu/thirdparty/level-zero-ext") endif() if(ENABLE_OV_TF_FRONTEND OR ENABLE_OV_ONNX_FRONTEND OR ENABLE_OV_PADDLE_FRONTEND) list(APPEND FEATURE_OPTIONS "-DENABLE_SYSTEM_PROTOBUF=ON") endif() if(ENABLE_OV_TF_FRONTEND) list(APPEND FEATURE_OPTIONS "-DENABLE_SYSTEM_SNAPPY=ON") endif() if(ENABLE_OV_TF_LITE_FRONTEND OR ENABLE_INTEL_NPU) list(APPEND FEATURE_OPTIONS "-DENABLE_SYSTEM_FLATBUFFERS=ON") endif() if(CMAKE_HOST_WIN32) list(APPEND FEATURE_OPTIONS "-DENABLE_API_VALIDATOR=OFF") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DCMAKE_DISABLE_FIND_PACKAGE_OpenCV=ON" "-DCPACK_GENERATOR=VCPKG" "-DENABLE_CLANG_FORMAT=OFF" "-DENABLE_JS=OFF" "-DENABLE_NCC_STYLE=OFF" "-DENABLE_PYTHON=OFF" "-DENABLE_SAMPLES=OFF" "-DENABLE_SYSTEM_PUGIXML=ON" "-DENABLE_SYSTEM_TBB=ON" "-DENABLE_TBBBIND_2_5=OFF" "-DENABLE_TEMPLATE=OFF" "-DENABLE_PROFILING_ITT=OFF" "-DENABLE_OV_JAX_FRONTEND=OFF" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/licensing/third-party-programs.txt" "${SOURCE_PATH}/licensing/onednn_third-party-programs.txt" "${SOURCE_PATH}/licensing/runtime-third-party-programs.txt" COMMENT "OpenVINO License") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/openvino/protobuf-6.patch ================================================ diff --git a/thirdparty/dependencies.cmake b/thirdparty/dependencies.cmake index 3d7f137ec9..39114b4b2f 100644 --- a/thirdparty/dependencies.cmake +++ b/thirdparty/dependencies.cmake @@ -359,7 +359,7 @@ if(ENABLE_OV_PADDLE_FRONTEND OR ENABLE_OV_ONNX_FRONTEND OR ENABLE_OV_TF_FRONTEND # try to find newer version first (major is changed) # see https://protobuf.dev/support/version-support/ and # https://github.com/protocolbuffers/protobuf/commit/d61f75ff6db36b4f9c0765f131f8edc2f86310fa - find_package(Protobuf 5.26.0 QUIET CONFIG) + find_package(Protobuf QUIET CONFIG) if(NOT Protobuf_FOUND) find_package(Protobuf 4.22.0 QUIET CONFIG) endif() ================================================ FILE: ports/openvino/usage ================================================ openvino provides CMake targets: find_package(OpenVINO REQUIRED) target_link_libraries(main PRIVATE openvino::runtime) ================================================ FILE: ports/openvino/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "openvino", "version": "2026.0.0", "port-version": 1, "maintainers": "OpenVINO Developers ", "summary": "This is a port for Open Visual Inference And Optimization toolkit for AI inference", "description": [ "Intel® Distribution of OpenVINO™ toolkit is an open-source toolkit for optimizing ", "and deploying AI inference. It can be used to develop applications and solutions based ", "on deep learning tasks, such as: emulation of human vision, automatic speech recognition, ", "natural language processing, recommendation systems, etc. It provides high-performance ", "and rich deployment options, from edge to cloud" ], "homepage": "https://github.com/openvinotoolkit/openvino", "documentation": "https://docs.openvino.ai/latest/index.html", "license": "Apache-2.0", "supports": "!uwp & !x86 & !(android & arm32)", "dependencies": [ "nlohmann-json", "pugixml", { "name": "tbb", "version>=": "2021.10.0#2" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "xbyak", "platform": "!(arm | uwp)", "version>=": "6.73" } ], "default-features": [ "auto", "auto-batch", { "name": "cpu", "platform": "!(windows & arm)" }, { "name": "gpu", "platform": "x64 & !(osx | uwp)" }, "hetero", "ir", { "name": "npu", "platform": "x64 & !(osx | uwp)" }, "onnx", "paddle", "pytorch", "tensorflow", "tensorflow-lite" ], "features": { "auto": { "description": "Enables Auto plugin for inference" }, "auto-batch": { "description": "Enables Auto Batch plugin for inference, useful for throughput mode" }, "cpu": { "description": "Enables CPU plugin for inference", "supports": "!(windows & arm)" }, "gpu": { "description": "Enables GPU plugin for inference", "supports": "x64 & !(osx | uwp)", "dependencies": [ "opencl", "rapidjson" ] }, "hetero": { "description": "Enables Hetero plugin for inference" }, "ir": { "description": "Enables IR frontend for reading models in OpenVINO IR format" }, "npu": { "description": "Enables NPU plugin for inference", "supports": "x64 & !(osx | uwp)", "dependencies": [ { "name": "flatbuffers", "version>=": "2.0.6" }, { "name": "flatbuffers", "host": true, "version>=": "2.0.6" }, "level-zero" ] }, "onnx": { "description": "Enables ONNX frontend for reading models in ONNX format", "dependencies": [ { "name": "onnx", "version>=": "1.16.2" }, { "name": "protobuf", "version>=": "3.21.2" }, { "name": "protobuf", "host": true, "version>=": "3.21.2" } ] }, "paddle": { "description": "Enables PaddlePaddle frontend for reading models in PaddlePaddle format", "dependencies": [ { "name": "protobuf", "version>=": "3.21.2" }, { "name": "protobuf", "host": true, "version>=": "3.21.2" } ] }, "pytorch": { "description": "Enables PyTorch frontend to convert models in PyTorch format" }, "tensorflow": { "description": "Enables TensorFlow frontend for reading models in TensorFlow format", "dependencies": [ { "$comment": "to workaround a linking issue for 2026.0.0 openvino[core,tensorflow]", "name": "openvino", "default-features": false, "features": [ "pytorch" ], "platform": "linux & static" }, { "name": "protobuf", "version>=": "3.21.2" }, { "name": "protobuf", "host": true, "version>=": "3.21.2" }, "snappy" ] }, "tensorflow-lite": { "description": "Enables TensorFlow Lite frontend for reading models in TensorFlow Lite format", "dependencies": [ { "name": "flatbuffers", "version>=": "2.0.6" }, { "name": "flatbuffers", "host": true, "version>=": "2.0.6" }, { "$comment": "to workaround a linking issue for 2026.0.0 openvino[core,tensorflow]", "name": "openvino", "default-features": false, "features": [ "pytorch" ], "platform": "linux & static" } ] } } } ================================================ FILE: ports/openvpn3/dependencies.diff ================================================ diff --git a/cmake/findcoredeps.cmake b/cmake/findcoredeps.cmake index b7d00d4..e180dc1 100644 --- a/cmake/findcoredeps.cmake +++ b/cmake/findcoredeps.cmake @@ -29,8 +29,10 @@ endif () function(add_ssl_library target) if (${USE_MBEDTLS}) + # Works with mbedtls 2.x and 3.x + set(CMAKE_FIND_PACKAGE_PREFER_CONFIG OFF) find_package(mbedTLS REQUIRED) - set(SSL_LIBRARY mbedTLS::mbedTLS) + set(SSL_LIBRARY "${MBEDTLS_LIBRARIES}") target_compile_definitions(${target} PRIVATE -DUSE_MBEDTLS) else () find_package(OpenSSL REQUIRED) @@ -38,7 +40,7 @@ function(add_ssl_library target) target_compile_definitions(${target} PRIVATE -DUSE_OPENSSL) endif () - target_link_libraries(${target} ${SSL_LIBRARY}) + target_link_libraries(${target} PUBLIC ${SSL_LIBRARY}) endfunction() @@ -93,10 +95,10 @@ function(add_core_dependencies target) # a patched version. So we want to prefer its include # directories. find_package(asio REQUIRED) - target_link_libraries(${target} asio::asio) + target_link_libraries(${target} PUBLIC asio::asio) find_package(lz4 REQUIRED) - target_link_libraries(${target} lz4::lz4) + target_link_libraries(${target} PUBLIC lz4::lz4) add_ssl_library(${target}) @@ -105,14 +107,16 @@ function(add_core_dependencies target) find_library(iokit IOKit) find_library(coreServices CoreServices) find_library(systemConfiguration SystemConfiguration) - target_link_libraries(${target} ${coreFoundation} ${iokit} ${coreServices} ${systemConfiguration} ${lz4}) + target_link_libraries(${target} PUBLIC ${coreFoundation} ${iokit} ${coreServices} ${systemConfiguration} ${lz4}) endif() if(UNIX) - target_link_libraries(${target} pthread) + set(THREADS_PREFER_PTHREAD_FLAG 1) + find_package(Threads REQUIRED) + target_link_libraries(${target} PUBLIC Threads::Threads) endif() - target_link_libraries(${target} ${EXTRA_LIBS}) + target_link_libraries(${target} PUBLIC ${EXTRA_LIBS}) if (USE_WERROR) if (MSVC) ================================================ FILE: ports/openvpn3/mbedtls-compat.diff ================================================ diff --git a/openvpn/mbedtls/mbedtls_compat.hpp b/openvpn/mbedtls/mbedtls_compat.hpp index 19e6f25..9db4e01 100644 --- a/openvpn/mbedtls/mbedtls_compat.hpp +++ b/openvpn/mbedtls/mbedtls_compat.hpp @@ -27,11 +27,11 @@ #include #include -#if not defined(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION) +#if !defined(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION) #define MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION #endif -#if not defined(MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE) +#if !defined(MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE) #define MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE MBEDTLS_X509_EXT_KEY_USAGE #endif diff --git a/openvpn/mbedtls/ssl/sslctx.hpp b/openvpn/mbedtls/ssl/sslctx.hpp index f6c3d28..83763e4 100644 --- a/openvpn/mbedtls/ssl/sslctx.hpp +++ b/openvpn/mbedtls/ssl/sslctx.hpp @@ -1589,10 +1589,13 @@ class MbedTLSContext : public SSLFactoryAPI digest_prefix_len = sizeof(PKCS1::DigestPrefix::SHA512); break; default: +# if MBEDTLS_VERSION_NUMBER < 0x03000000 +# define MAYBE_LOG_MODE << "mode=" << mode +# else +# define MAYBE_LOG_MODE +# endif OVPN_LOG_INFO("MbedTLSContext::epki_sign unrecognized hash_id" -#if MBEDTLS_VERSION_NUMBER < 0x03000000 - << "mode=" << mode -#endif + MAYBE_LOG_MODE << " md_alg=" << md_alg << " hashlen=" << hashlen); return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } @@ -1627,9 +1630,7 @@ class MbedTLSContext : public SSLFactoryAPI else { OVPN_LOG_INFO("MbedTLSContext::epki_sign unrecognized parameters" -#if MBEDTLS_VERSION_NUMBER < 0x03000000 - << "mode=" << mode -#endif + MAYBE_LOG_MODE << " md_alg=" << md_alg << " hashlen=" << hashlen); return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } ================================================ FILE: ports/openvpn3/only-library.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cf519d..d07321c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,11 +32,13 @@ include(ovpn-doxygen) add_subdirectory(client) add_subdirectory(test/unittests) +if(BUILD_TOOLS) add_subdirectory(test/ovpncli) add_subdirectory(openvpn/omi) add_subdirectory(openvpn/ovpnagent/win) add_subdirectory(openvpn/ovpnagent/mac) +endif() if (ENABLE_DOXYGEN) # Exclude some project specific directories diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index e1ecf8f..5afe6ec 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -1,5 +1,29 @@ include(findcoredeps) include(findswigdeps) +add_library(ovpnclilib ovpncli.cpp) +add_core_dependencies(ovpnclilib) +target_compile_features(ovpnclilib PUBLIC cxx_std_17) +target_include_directories(ovpnclilib PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" PUBLIC "$") +set_target_properties(ovpnclilib PROPERTIES + OUTPUT_NAME ovpncli + EXPORT_NAME ovpncli +) +install(TARGETS ovpnclilib EXPORT unofficial-openvpn3-targets) +install(EXPORT unofficial-openvpn3-targets + NAMESPACE unofficial::openvpn3:: + DESTINATION share/unofficial-openvpn3 +) +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openvpn3-config.cmake" "\ +include(CMakeFindDependencyMacro) +find_dependency(asio CONFIG) +find_dependency(lz4 CONFIG) +if(UNIX) + set(THREADS_PREFER_PTHREAD_FLAG 1) + find_dependency(Threads) +endif() +include(\"\${CMAKE_CURRENT_LIST_DIR}/unofficial-openvpn3-targets.cmake\") +") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-openvpn3-config.cmake" DESTINATION share/unofficial-openvpn3) if (BUILD_SWIG_LIB) set_property(SOURCE ovpncli.i PROPERTY CPLUSPLUS ON) ================================================ FILE: ports/openvpn3/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenVPN/openvpn3 REF "release/${VERSION}" SHA512 f096644078c10022685c1a8f7e0afddf352b4a5c229a772d24adbc6ec3f44e27501beabd28c4da1b6b182ae9d220b80865757693d52d085817d42f2322b71213 HEAD_REF master PATCHES dependencies.diff mbedtls-compat.diff only-library.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/deps") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SWIG_LIB=OFF -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Python3=ON -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON -DUSE_MBEDTLS=1 # vcpkg legacy choice ) vcpkg_cmake_install() file(COPY "${SOURCE_PATH}/client/ovpncli.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/openvpn") file(COPY "${SOURCE_PATH}/openvpn" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(GLOB_RECURSE HEADERS "${CURRENT_PACKAGES_DIR}/include/openvpn/*") foreach(HEADER IN LISTS HEADERS) file(READ "${HEADER}" _contents) string(REPLACE "defined(USE_ASIO)" "1" _contents "${_contents}") string(REPLACE "#ifdef USE_ASIO\n" "#if 1\n" _contents "${_contents}") string(REPLACE "defined(USE_MBEDTLS)" "1" _contents "${_contents}") string(REPLACE "#ifdef USE_MBEDTLS\n" "#if 1\n" _contents "${_contents}") file(WRITE "${HEADER}" "${_contents}") endforeach() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-openvpn3) # Transitional file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-openvpnConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-openvpn") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.rst" "${SOURCE_PATH}/COPYRIGHT.AGPLV3") ================================================ FILE: ports/openvpn3/unofficial-openvpnConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(${CMAKE_FIND_PACKAGE_NAME}) is deprecated. Use find_package(unofficial-openvpn3) instead.") include(CMakeFindDependencyMacro) find_dependency(unofficial-openvpn3 CONFIG) ================================================ FILE: ports/openvpn3/vcpkg.json ================================================ { "name": "openvpn3", "version": "3.10", "port-version": 1, "description": "a C++ class library that implements the functionality of an OpenVPN client, and is protocol-compatible with the OpenVPN 2.x branch.", "homepage": "https://openvpn.net", "license": "AGPL-3.0-only", "supports": "!uwp & !xbox", "dependencies": [ "asio", "lz4", "mbedtls", { "name": "tap-windows6", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openvr/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ValveSoftware/openvr REF "v${VERSION}" SHA512 95e7263e4a03a58c9f6b7efc586a963578fd6c468ce9cd73d2e4caa9fff3a0f63f94e6e69234bc220a49e8a9341c19b8144449116466f9476e0e9cc1ca36e403 HEAD_REF master ) if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCH_PATH "win64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ARCH_PATH "win32") else() message(FATAL_ERROR "Package only supports x64 and x86 Windows.") endif() elseif(VCPKG_TARGET_IS_LINUX) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCH_PATH "linux64") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ARCH_PATH "linux32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ARCH_PATH "linuxarm64") else() message(FATAL_ERROR "Package only supports x64, x86 and arm64 Linux.") endif() else() message(FATAL_ERROR "Package only supports Windows and Linux.") endif() file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${SOURCE_PATH}/lib/${ARCH_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) file(COPY ${SOURCE_PATH}/bin/${ARCH_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(COPY ${SOURCE_PATH}/bin/${ARCH_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) file(INSTALL ${SOURCE_PATH}/headers DESTINATION ${CURRENT_PACKAGES_DIR} RENAME include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/openvr/vcpkg.json ================================================ { "name": "openvr", "version": "2.12.14", "description": "An API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting.", "homepage": "https://github.com/ValveSoftware/openvr", "license": "BSD-3-Clause", "supports": "(windows & !uwp & (x64 | x86)) | (linux & (x64 | x86 | arm64))" } ================================================ FILE: ports/openxlsx/fix-dependencies.patch ================================================ --- a/OpenXLSX/CMakeLists.txt.old 2025-07-14 15:07:03.000000000 +0200 +++ a/OpenXLSX/CMakeLists.txt 2025-07-29 10:04:55.753385000 +0200 @@ -41,8 +41,7 @@ set(OPENXLSX_LIBRARY_TYPE "STATIC" CACHE #======================================================================================================================= if (OPENXLSX_ENABLE_NOWIDE) - add_library(NoWide INTERFACE IMPORTED) - target_include_directories(NoWide SYSTEM INTERFACE $) + find_package(nowide CONFIG REQUIRED) endif() add_library(Zippy INTERFACE IMPORTED) @@ -51,8 +50,7 @@ if (OPENXLSX_ENABLE_NOWIDE) target_compile_definitions(Zippy INTERFACE ENABLE_NOWIDE) endif () -add_library(PugiXML INTERFACE IMPORTED) -target_include_directories(PugiXML SYSTEM INTERFACE $) +find_package(PugiXML CONFIG REQUIRED) if (${OPENXLSX_COMPACT_MODE}) target_compile_definitions(PugiXML INTERFACE PUGIXML_COMPACT) @@ -143,12 +141,13 @@ if ("${OPENXLSX_LIBRARY_TYPE}" STREQUAL target_link_libraries(OpenXLSX PRIVATE $ - $) + PUBLIC + pugixml::pugixml) if (OPENXLSX_ENABLE_NOWIDE) target_link_libraries(OpenXLSX - PRIVATE - $) + PUBLIC + nowide::nowide) endif () target_compile_definitions(OpenXLSX PUBLIC OPENXLSX_STATIC_DEFINE) @@ -171,12 +170,13 @@ if ("${OPENXLSX_LIBRARY_TYPE}" STREQUAL target_link_libraries(OpenXLSX PRIVATE $ - $) + PUBLIC + pugixml::pugixml) if (OPENXLSX_ENABLE_NOWIDE) target_link_libraries(OpenXLSX - PRIVATE - $) + PUBLIC + nowide::nowide) endif () # Enable Link-Time Optimization (LTO) @@ -334,9 +334,16 @@ install( # Package configuration configure_file(OpenXLSXConfig.cmake "${CMAKE_CURRENT_BINARY_DIR}/OpenXLSX/OpenXLSXConfig.cmake" - COPYONLY + @ONLY ) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/OpenXLSX/OpenXLSXConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/OpenXLSX/OpenXLSXConfigVersion.cmake" + DESTINATION ${ConfigPackageLocation} +) + # Package export targets export( EXPORT OpenXLSXTargets --- a/OpenXLSX/OpenXLSXConfig.cmake.old 2025-07-29 10:01:35.707328300 +0200 +++ a/OpenXLSX/OpenXLSXConfig.cmake 2025-07-29 10:01:39.321206200 +0200 @@ -1 +1,7 @@ -include("${CMAKE_CURRENT_LIST_DIR}/OpenXLSXTargets.cmake") \ No newline at end of file +include(CMakeFindDependencyMacro) +find_dependency(pugixml CONFIG) +if(@OPENXLSX_ENABLE_NOWIDE@) + find_dependency(nowide CONFIG) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/OpenXLSXTargets.cmake") ================================================ FILE: ports/openxlsx/missing-header.patch ================================================ --- a8cd841f13-8d82ae298d.clean/OpenXLSX/sources/XLSheet.cpp.old 2025-07-29 11:44:11.357978300 +0200 +++ a8cd841f13-8d82ae298d.clean/OpenXLSX/sources/XLSheet.cpp 2025-07-29 11:44:20.384836500 +0200 @@ -46,6 +46,7 @@ YM M9 MM MM MM MM MM // ===== External Includes ===== // #include // std::max #include // std::isdigit (issue #330) +#include #include // std::numeric_limits #include // std::multimap #include ================================================ FILE: ports/openxlsx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO troldal/OpenXLSX REF 5723411d47643ce3b5b9994064c26ca8cd841f13 SHA512 edc7abe4da26699ea91c2ef84279a4f224af11c8ed298bea514c5992cd2c9a046ecdcd37c306f2b65cfb5ae398aaa98d027ad5b53a71c5119c3fafd7c7d60337 HEAD_REF master PATCHES pugixml.patch fix-dependencies.patch use-public-pugixml.patch missing-header.patch) file(REMOVE_RECURSE "${SOURCE_PATH}/external/nowide") file(REMOVE_RECURSE "${SOURCE_PATH}/external/pugixml") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(OPENXLSX_LIBRARY_TYPE "STATIC") else() set(OPENXLSX_LIBRARY_TYPE "SHARED") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DOPENXLSX_CREATE_DOCS=OFF -DOPENXLSX_BUILD_BENCHMARKS:BOOL=OFF -DOPENXLSX_BUILD_SAMPLES:BOOL=OFF -DOPENXLSX_BUILD_TESTS:BOOL=OFF -DOPENXLSX_COMPACT_MODE:BOOL=OFF -DOPENXLSX_CREATE_DOCS:BOOL=OFF -DOPENXLSX_LIBRARY_TYPE:STRING=${OPENXLSX_LIBRARY_TYPE}) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/OpenXLSX") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/license") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/license") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/openxlsx/pugixml.patch ================================================ diff --git a/OpenXLSX/headers/XLXmlParser.hpp b/OpenXLSX/headers/XLXmlParser.hpp index 6c81b2c..6fa1bda 100644 --- a/OpenXLSX/headers/XLXmlParser.hpp +++ b/OpenXLSX/headers/XLXmlParser.hpp @@ -49,7 +49,7 @@ YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. #include // shared_ptr // ===== pugixml.hpp needed for pugi::impl::xml_memory_page_type_mask, pugi::xml_node_type, pugi::char_t, pugi::node_element, pugi::xml_node, pugi::xml_attribute, pugi::xml_document -#include // not sure why the full include path is needed within the header file +#include #include "XLException.hpp" namespace { // anonymous namespace to define constants / functions that shall not be exported from this module ================================================ FILE: ports/openxlsx/use-public-pugixml.patch ================================================ diff -u a/OpenXLSX/sources/XLXmlParser.cpp a/OpenXLSX/sources/XLXmlParser.cpp --- a/OpenXLSX/sources/XLXmlParser.cpp 2025-07-29 11:15:46.597045900 +0200 +++ a/OpenXLSX/sources/XLXmlParser.cpp 2025-07-29 11:22:20.936601800 +0200 @@ -188,9 +188,9 @@ XMLNode XMLNode::next_sibling_of_type(pugi::xml_node_type type_) const { if (_root) { - pugi::xml_node_struct* next = _root->next_sibling; - while (next && (PUGI_IMPL_NODETYPE(next) != type_)) next = next->next_sibling; - if (next) + pugi::xml_node next = next_sibling(); + while (!next.empty() && (next.type() != type_)) next = next.next_sibling(); + if (!next.empty()) return XMLNode(next); } return XMLNode(); // if no node matching type_ was found: return an empty node @@ -203,9 +203,9 @@ XMLNode XMLNode::previous_sibling_of_type(pugi::xml_node_type type_) const { if (_root) { - pugi::xml_node_struct* prev = _root->prev_sibling_c; - while (prev->next_sibling && (PUGI_IMPL_NODETYPE(prev) != type_)) prev = prev->prev_sibling_c; - if (prev->next_sibling) + pugi::xml_node prev = previous_sibling(); + while (!prev.next_sibling().empty() && (prev.type() != type_)) prev = prev.previous_sibling(); + if (!prev.next_sibling().empty()) return XMLNode(prev); } return XMLNode(); // if no node matching type_ was found: return an empty node @@ -218,10 +218,9 @@ XMLNode XMLNode::next_sibling_of_type(const pugi::char_t* name_, pugi::xml_node_type type_) const { if (_root) { - for (pugi::xml_node_struct* i = _root->next_sibling; i; i = i->next_sibling) + for (pugi::xml_node i = next_sibling(name_); !i.empty(); i = i.next_sibling(name_)) { - const pugi::char_t* iname = i->name; - if (iname && pugi::impl::strequal(name_, iname) && (PUGI_IMPL_NODETYPE(i) == type_)) + if (i.type() == type_) return XMLNode(i); } } @@ -235,10 +234,9 @@ XMLNode XMLNode::previous_sibling_of_type(const pugi::char_t* name_, pugi::xml_node_type type_) const { if (_root) { - for (pugi::xml_node_struct* i = _root->prev_sibling_c; i->next_sibling; i = i->prev_sibling_c) + for (pugi::xml_node i = previous_sibling(name_); !i.next_sibling().empty(); i = i.previous_sibling(name_)) { - const pugi::char_t* iname = i->name; - if (iname && pugi::impl::strequal(name_, iname) && (PUGI_IMPL_NODETYPE(i) == type_)) + if (i.type() == type_) return XMLNode(i); } } ================================================ FILE: ports/openxlsx/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "openxlsx", "version-date": "2025-07-14", "description": "OpenXLSX is a C++ library for reading, writing, creating and modifying Microsoft Excel® files, with the .xlsx format.", "homepage": "https://github.com/troldal/OpenXLSX", "license": "BSD-3-Clause", "dependencies": [ { "name": "nowide", "platform": "windows" }, "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e618325..21d977f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -107,7 +107,7 @@ if(NOT VULKAN_INCOMPATIBLE) endif() find_package(Threads REQUIRED) -find_package(JsonCpp) +find_package(JSONCPP NAMES jsoncpp REQUIRED) ### All options defined here option(BUILD_LOADER "Build loader" ON) diff --git a/src/loader/OpenXRConfig.cmake.in b/src/loader/OpenXRConfig.cmake.in index 81b12e7..4c24771 100644 --- a/src/loader/OpenXRConfig.cmake.in +++ b/src/loader/OpenXRConfig.cmake.in @@ -6,6 +6,7 @@ include(CMakeFindDependencyMacro) find_dependency(Threads) +find_dependency(jsoncpp CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/OpenXRTargets.cmake") ================================================ FILE: ports/openxr-loader/msvc-crt.diff ================================================ diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 326f74e..3192e69 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -212,7 +212,8 @@ elseif(WIN32) ) endif() - if(DYNAMIC_LOADER AND NOT (CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")) + if(1) # CRT linkage from vcpkg + elseif(0) # If building DLLs, force static CRT linkage set_target_properties( openxr_loader ================================================ FILE: ports/openxr-loader/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenXR-SDK-Source REF "release-${VERSION}" SHA512 be99658ff3d27bd8674dceb8b5d50bfbbfaf2f3667a8c38d6afb0cdb2701881c945a4c423ce68e4591cc468a9a499803ffb05a9a610f52a1c47fca97d73e13d8 HEAD_REF master PATCHES fix-openxr-sdk-jsoncpp.patch msvc-crt.diff ) vcpkg_from_github( OUT_SOURCE_PATH HPP_SOURCE_PATH REPO KhronosGroup/OpenXR-hpp REF af6f069aa1e003041311090237bb41471c776ff6 SHA512 986d214a7f725c9b8000a61d8614ecaa0495173a1683a5e1bec636be22f6617551ae43e3e0fd2b0cba6e427f6ed6014daa56deed8497b32cb1236cd35ed8788c HEAD_REF master PATCHES python3_8_compatibility.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES vulkan VCPKG_LOCK_FIND_PACKAGE_Vulkan ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DYNAMIC_LOADER) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_API_LAYERS=OFF -DBUILD_CONFORMANCE_TESTS=OFF -DBUILD_TESTS=OFF -DCMAKE_INSTALL_INCLUDEDIR=include -DDYNAMIC_LOADER=${DYNAMIC_LOADER} "-DPython3_EXECUTABLE=${PYTHON3}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # "openxr-loader" matches "*" for "OpenXR", so use the default. if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/openxr) endif() # Generate the OpenXR C++ bindings set(ENV{OPENXR_REPO} "${SOURCE_PATH}") vcpkg_execute_required_process( COMMAND "${PYTHON3}" "${HPP_SOURCE_PATH}/scripts/hpp_genxr.py" -quiet -registry "${SOURCE_PATH}/specification/registry/xr.xml" -o "${CURRENT_PACKAGES_DIR}/include/openxr" WORKING_DIRECTORY "${HPP_SOURCE_PATH}" LOGNAME "openxr-hpp" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/openxr-loader/python3_8_compatibility.patch ================================================ diff --git a/scripts/hpp_genxr.py b/scripts/hpp_genxr.py index ce419b0..23e1d3d 100644 --- a/scripts/hpp_genxr.py +++ b/scripts/hpp_genxr.py @@ -36,7 +36,7 @@ from xrconventions import OpenXRConventions from data import EXCLUDED_EXTENSIONS -def makeREstring(strings: Iterable[str], default: typing.Optional[str] = None) -> str: +def makeREstring(strings, default: typing.Optional[str] = None) -> str: """Turn a list of strings into a regexp string matching exactly those strings.""" if strings or default is None: return f"^({'|'.join(re.escape(s) for s in strings)})$" ================================================ FILE: ports/openxr-loader/vcpkg.json ================================================ { "name": "openxr-loader", "version": "1.1.54", "description": "A royalty-free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR)—collectively known as XR—platforms and devices", "homepage": "https://github.com/KhronosGroup/OpenXR-SDK", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "egl", "platform": "android" }, "jsoncpp", { "name": "opengl", "platform": "!android & !ios & !osx & !(arm & windows) & !uwp" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "vulkan": { "description": "Vulkan functionality for OpenXR", "supports": "!(arm & windows) & !uwp", "dependencies": [ "vulkan" ] } } } ================================================ FILE: ports/openzl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/openzl REF v${VERSION} SHA512 620ddbef22ba80266ad6f8655982a48d578bb0528bbeddc291e079a42883ec9bdeeb239cf5584eda0de4c7c493ced0a9c300e4cd4cd73f4c4a9449b54b3a477e HEAD_REF main PATCHES use-system-zstd.patch ) file(REMOVE "${SOURCE_PATH}/src/openzl/shared/xxhash.h") file(COPY "${CMAKE_CURRENT_LIST_DIR}/xxhash-wrapper.h" DESTINATION "${SOURCE_PATH}/src/openzl/shared") file(RENAME "${SOURCE_PATH}/src/openzl/shared/xxhash-wrapper.h" "${SOURCE_PATH}/src/openzl/shared/xxhash.h") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") message(FATAL_ERROR "MSVC is not supported; use clang-cl") endif() set(OPENZL_BUILD_SHARED_LIBS OFF) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(OPENZL_BUILD_SHARED_LIBS ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SHARED_LIBS=${OPENZL_BUILD_SHARED_LIBS} -DOPENZL_BUILD_SHARED_LIBS=${OPENZL_BUILD_SHARED_LIBS} -DOPENZL_BUILD_ALL=OFF -DOPENZL_BUILD_CPP=ON -DOPENZL_BUILD_CUSTOM_PARSERS=OFF -DOPENZL_BUILD_TOOLS=OFF -DOPENZL_BUILD_CLI=OFF -DOPENZL_BUILD_EXAMPLES=OFF -DOPENZL_BUILD_TESTS=OFF -DOPENZL_BUILD_BENCHMARKS=OFF -DOPENZL_BUILD_PARQUET_TOOLS=OFF -DOPENZL_BUILD_PYTHON_EXT=OFF -DOPENZL_BUILD_PYTHON_EXT_TESTS=OFF -DOPENZL_ALLOW_INTROSPECTION=ON -DOPENZL_INSTALL=ON -DOPENZL_CPP_INSTALL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/openzl) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/openzl/usage ================================================ OpenZL provides CMake targets: find_package(OpenZL CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenZL::openzl) Optional C++ bindings are available as: target_link_libraries(main PRIVATE OpenZL::openzl_cpp) ================================================ FILE: ports/openzl/use-system-zstd.patch ================================================ diff --git a/build/cmake/openzl-config.cmake.in b/build/cmake/openzl-config.cmake.in index 60a354f..c5f3d96 100644 --- a/build/cmake/openzl-config.cmake.in +++ b/build/cmake/openzl-config.cmake.in @@ -21,6 +21,8 @@ set_and_check(OPENZL_CMAKE_DIR "@PACKAGE_CMAKE_INSTALL_DIR@") # openzl's prefix directory in the OPENZL_PREFIX_DIR variable set(OPENZL_PREFIX_DIR "${PACKAGE_PREFIX_DIR}") +find_dependency(zstd CONFIG) + # Include the openzl-targets.cmake file, which is generated from our CMake rules if (NOT TARGET OpenZL::openzl) include("${OPENZL_CMAKE_DIR}/openzl-targets.cmake") diff --git a/build/cmake/openzl-deps.cmake b/build/cmake/openzl-deps.cmake index 59b691a..c16d969 100644 --- a/build/cmake/openzl-deps.cmake +++ b/build/cmake/openzl-deps.cmake @@ -40,7 +40,8 @@ endif() message(STATUS "Attempting zstd dependency resolution...") -# Check if zstd is already available -check_zstd_available(ZSTD_AVAILABLE) +find_package(zstd CONFIG REQUIRED) +set(ZSTD_AVAILABLE TRUE) +add_library(libzstd ALIAS zstd::libzstd) if(ZSTD_AVAILABLE) message(STATUS "zstd dependency already present") else() --- a/build/cmake/openzl-deps.cmake +++ b/build/cmake/openzl-deps.cmake @@ -91,7 +91,6 @@ endif() set(ZSTD_BUILD_TESTS OFF CACHE BOOL "") # Add zstd subdirectory directly instead of using FetchContent -add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/deps/zstd/build/cmake" zstd_build) # Note: find_package not needed when using add_subdirectory - targets are directly available list(APPEND OPENZL_LINK_LIBRARIES libzstd) ================================================ FILE: ports/openzl/vcpkg.json ================================================ { "name": "openzl", "version": "0.1.0", "description": "Format-aware compression framework delivering high ratios while preserving speed.", "homepage": "https://github.com/facebook/openzl", "license": "BSD-3-Clause AND Apache-2.0", "supports": "!uwp & !x86 & !arm32", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true }, "xxhash", "zstd" ] } ================================================ FILE: ports/openzl/xxhash-wrapper.h ================================================ /* * openzl wrapper around xxHash distributed via vcpkg. * * This header preserves the local configuration tweaks provided by * zs_xxhash.h and then includes the xxhash header from the external * dependency. */ #pragma once #include "openzl/shared/zs_xxhash.h" #include ================================================ FILE: ports/optimus-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kafeg/optimus-cpp REF 0.3.0 SHA512 93abd13d4552a896f61e32dfebcc9037e7255f3fa86b230c03905df3148b9cc91cec772ec733e83fbcad574fd93fa4dadca9ec88b5836c5a4137d01e16580d6f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/optimus-cpp/vcpkg.json ================================================ { "name": "optimus-cpp", "version": "0.3.0", "description": "ID hashing and Obfuscation using Knuth's Algorithm for C++", "homepage": "https://github.com/kafeg/optimus-cpp", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/optional-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/optional-lite REF "v${VERSION}" SHA512 6ec7dbd11947376cc46502cdab866e171fca7123b317887889022d22b003e4fd96d26816046e8e24b1b83fb5190ae6232cbbacfcb20fcb78200878bd73d7adc4 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPTIONAL_LITE_OPT_BUILD_TESTS=OFF -DOPTIONAL_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/optional-lite/vcpkg.json ================================================ { "name": "optional-lite", "version": "3.6.0", "description": "A C++17-like optional, a nullable object for C++98, C++11 and later in a single-file header-only library", "homepage": "https://github.com/martinmoene/optional-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/opus/fix-pkgconfig-version.patch ================================================ diff --git a/cmake/OpusPackageVersion.cmake b/cmake/OpusPackageVersion.cmake index 447ce3b..15ebd8e 100644 --- a/cmake/OpusPackageVersion.cmake +++ b/cmake/OpusPackageVersion.cmake @@ -4,7 +4,9 @@ endif() set(__opus_version INCLUDED) function(get_package_version PACKAGE_VERSION PROJECT_VERSION) - + set(PACKAGE_VERSION "0" CACHE STRING "opus package version") + set(PROJECT_VERSION "0" CACHE STRING "opus project version") + return() find_package(Git) if(GIT_FOUND AND EXISTS "${CMAKE_CURRENT_LIST_DIR}/.git") execute_process(COMMAND ${GIT_EXECUTABLE} ================================================ FILE: ports/opus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/opus REF "v${VERSION}" SHA512 4ffefd9c035671024f9720c5129bfe395dea04f0d6b730041c2804e89b1db6e4d19633ad1ae58855afc355034233537361e707f26dc53adac916554830038fab HEAD_REF main PATCHES fix-pkgconfig-version.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES avx2 AVX2_SUPPORTED ) set(STACK_PROTECTOR ON) set(ADDITIONAL_OPUS_OPTIONS "") if(VCPKG_TARGET_IS_MINGW) set(STACK_PROTECTOR OFF) string(APPEND VCPKG_C_FLAGS "-D_FORTIFY_SOURCE=0") string(APPEND VCPKG_CXX_FLAGS "-D_FORTIFY_SOURCE=0") if(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$") list(APPEND ADDITIONAL_OPUS_OPTIONS "-DOPUS_USE_NEON=OFF") # for version 1.3.1 (remove for future Opus release) list(APPEND ADDITIONAL_OPUS_OPTIONS "-DOPUS_DISABLE_INTRINSICS=ON") # for HEAD (and future Opus release) endif() elseif(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND ADDITIONAL_OPUS_OPTIONS "-DOPUS_STATIC_RUNTIME=ON") endif() elseif(VCPKG_TARGET_IS_EMSCRIPTEN) set(STACK_PROTECTOR OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPACKAGE_VERSION=${VERSION} -DOPUS_STACK_PROTECTOR=${STACK_PROTECTOR} -DOPUS_INSTALL_PKG_CONFIG_MODULE=ON -DOPUS_INSTALL_CMAKE_CONFIG_MODULE=ON -DOPUS_BUILD_PROGRAMS=OFF -DOPUS_BUILD_TESTING=OFF ${ADDITIONAL_OPUS_OPTIONS} MAYBE_UNUSED_VARIABLES OPUS_USE_NEON OPUS_DISABLE_INTRINSICS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Opus) vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake" "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/opus/vcpkg.json ================================================ { "name": "opus", "version": "1.5.2", "port-version": 1, "description": "Totally open, royalty-free, highly versatile audio codec", "homepage": "https://github.com/xiph/opus", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "avx2": { "description": "Builds the library with avx2 instruction set" } } } ================================================ FILE: ports/opusfile/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/opusfile REF "9d718345ce03b2fad5d7d28e0bcd1cc69ab2b166" # https://github.com/xiph/opusfile/compare/v0.12...9d71834 SHA512 17e323d6c031330f10b045a1438cd7ba44e2ac313ec7b3d69a8041dfa927c3f501d04246d974109fbd68dfa1a8d7b63584d96caed69ad5e38b68358aa35af65a HEAD_REF master) file(WRITE "${SOURCE_PATH}/package_version" "PACKAGE_VERSION=${VERSION}") vcpkg_replace_string("${SOURCE_PATH}/cmake/OpusFileConfig.cmake.in" "opusfileTargets.cmake" "OpusFileTargets.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES opusurl OP_DISABLE_HTTP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DOP_DISABLE_DOCS=ON -DOP_DISABLE_EXAMPLES=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/opusfile") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Create the pkg-config files set(prefix "") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") set(PACKAGE_VERSION "${VERSION}") set(lrintf_lib "") configure_file("${SOURCE_PATH}/opusfile.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opusfile.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${SOURCE_PATH}/opusfile.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opusfile.pc" @ONLY) endif() if(opusurl IN_LIST FEATURES) set(openssl "openssl") configure_file("${SOURCE_PATH}/opusurl.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/opusurl.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) configure_file("${SOURCE_PATH}/opusurl.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/opusurl.pc" @ONLY) endif() endif() vcpkg_fixup_pkgconfig() # make includes work with MSBuild integration vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/opus/opusfile.h" "# include " "# include \"opus_multistream.h\"") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/opusfile/usage ================================================ The package opusfile provides CMake targets: find_package(OpusFile CONFIG REQUIRED) target_link_libraries(main PRIVATE OpusFile::opusfile) # To use the opusurl API target_link_libraries(main PRIVATE OpusFile::opusurl) ================================================ FILE: ports/opusfile/vcpkg.json ================================================ { "name": "opusfile", "version": "0.12+20221121", "port-version": 1, "description": "Stand-alone decoder library for .opus streams", "homepage": "https://github.com/xiph/opusfile", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "libogg", "opus", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "opusurl": { "description": "Support decoding of http(s) streams", "supports": "!windows", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/orange-math/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orange-cpp/omath REF "v${VERSION}" SHA512 bd9e3ebe993267b035a5659cb3984f7254c46ea7893475a871d80853726cf053587d0b6008a24a423c8bae89d23fb18d3498f03b89b601f22128deed1a442cb4 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OMATH_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "avx2" OMATH_USE_AVX2 "imgui" OMATH_IMGUI_INTEGRATION "inline" OMATH_ENABLE_FORCE_INLINE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DOMATH_USE_UNITY_BUILD=OFF -DOMATH_THREAT_WARNING_AS_ERROR=OFF -DOMATH_BUILD_AS_SHARED_LIBRARY=${OMATH_SHARED} -DOMATH_BUILD_TESTS=OFF -DOMATH_BUILD_BENCHMARK=OFF -DOMATH_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/omath" PACKAGE_NAME "omath") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/orange-math/vcpkg.json ================================================ { "name": "orange-math", "version": "5.0.0", "description": "General purpose math library", "homepage": "https://github.com/orange-cpp/omath", "documentation": "https://libomath.org", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "avx2": { "description": "Omath will use AVX2 to boost performance", "supports": "!arm" }, "imgui": { "description": "Omath will define method to convert omath types to imgui types", "dependencies": [ "imgui" ] }, "inline": { "description": "Omath will define some methods as inline" } } } ================================================ FILE: ports/orange-vmprotect-sdk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orange-cpp/vmprotect-sdk REF "${VERSION}" SHA512 bddadc22c1be77d581f9a47952c174f25b52a5d5a39850f07fb0116e57dfee4df1180403e91ef0843fceb921863674cb03c2b0746fa783a559355fa7f7ecb3dc HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vmprotect_sdk" PACKAGE_NAME "vmprotect_sdk") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/orange-vmprotect-sdk/vcpkg.json ================================================ { "name": "orange-vmprotect-sdk", "version": "1.0.2", "description": "Unofficial VMProtect SDK package port for C/C++ development.", "homepage": "https://vmpsoft.com", "license": "Zlib", "supports": "(windows | linux | osx | android) & !(static & staticcrt)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/orc/external-project.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 341a4c3..1aaff3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,13 @@ SET(CPACK_PACKAGE_CONTACT "Apache ORC ") INCLUDE(CPack) INCLUDE(ExternalProject) +function(ExternalProject_Add name) + z_vcpkg_function_arguments(args 1) + if(NOT "${name}" MATCHES "^orc-format") + message(FATAL_ERROR "Unexpected external project: ${name}") + endif() + _ExternalProject_Add(${name} "${args}") +endfunction() if (BUILD_POSITION_INDEPENDENT_LIB) set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake index 851cdc4..a23115e 100644 --- a/cmake_modules/ThirdpartyToolchain.cmake +++ b/cmake_modules/ThirdpartyToolchain.cmake @@ -397,7 +397,7 @@ add_library (orc::lz4 ALIAS orc_lz4) # ---------------------------------------------------------------------- # IANA - Time Zone Database -if (WIN32) +if (WIN32 AND BUILD_CPP_TESTS) SET(CURRENT_TZDATA_FILE "") SET(CURRENT_TZDATA_SHA512 "") File(DOWNLOAD "https://ftp.osuosl.org/pub/cygwin/noarch/release/tzdata/sha512.sum" ${CMAKE_CURRENT_BINARY_DIR}/sha512.sum) ================================================ FILE: ports/orc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/orc/orc-${VERSION}/orc-${VERSION}.tar.gz" FILENAME "orc-${VERSION}.tar.gz" SHA512 6be97bf80ca89765bfecdb7d24b7f2967af79f2cbf659ce835ab9345e2a356400942143f4c6b3c25e6ded1f5df811bd6be6d1005e8b99716d842b43072f61786 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES external-project.diff tools-build.diff ) file(GLOB modules "${SOURCE_PATH}/cmake_modules/Find*.cmake") file(REMOVE ${modules} "${SOURCE_PATH}/c++/libs/libhdfspp/libhdfspp.tar.gz") set(orc_format_version 1.1.1) vcpkg_download_distfile(ORC_FORMAT_ARCHIVE URLS "https://dlcdn.apache.org/orc/orc-format-${orc_format_version}/orc-format-${orc_format_version}.tar.gz" FILENAME "apache-orc-format-${orc_format_version}.tar.gz" SHA512 8aa0bcd3345ed8be836995d4347175526f4b0fc91f41e27f29279fad39b94ff157f5cd597bc2d9f3dc403f5ba405807675a283abe822f8a83758b7c3b8292c1c ) set(ENV{ORC_FORMAT_URL} "file://${ORC_FORMAT_ARCHIVE}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS "-DHAS_PRE_1970=OFF" "-DHAS_POST_2038=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_CPP_TESTS=OFF -DBUILD_JAVA=OFF -DINSTALL_VENDORED_LIBS=OFF -DORC_PACKAGE_KIND=vcpkg -DSTOP_BUILD_ON_WARNING=OFF OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES csv-import orc-contents orc-memory orc-metadata orc-scan orc-statistics timezone-dump AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/NOTICE" "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/orc/tools-build.diff ================================================ diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt index d247f90..498d369 100644 --- a/tools/src/CMakeLists.txt +++ b/tools/src/CMakeLists.txt @@ -36,8 +36,12 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ${CXX17_FLAGS} ${WARN_FLAGS}") -add_library (orc-tools-common INTERFACE) -target_include_directories (orc-tools-common INTERFACE +add_library (orc-tools-common STATIC ToolsHelper.cc) +if(WIN32 AND NOT MINGW) + find_package(getopt CONFIG REQUIRED) + target_link_libraries(orc-tools-common PUBLIC $,getopt::getopt_shared,getopt::getopt_static>) +endif() +target_include_directories (orc-tools-common PUBLIC ${PROJECT_BINARY_DIR}/c++/include ${PROJECT_BINARY_DIR}/c++/src ${PROJECT_SOURCE_DIR}/c++/include @@ -50,7 +54,6 @@ target_link_libraries (orc-tools-common INTERFACE add_executable (orc-contents FileContents.cc - ToolsHelper.cc ) target_link_libraries (orc-contents @@ -59,7 +62,6 @@ target_link_libraries (orc-contents add_executable (orc-scan FileScan.cc - ToolsHelper.cc ) target_link_libraries (orc-scan @@ -68,7 +70,6 @@ target_link_libraries (orc-scan add_executable (orc-metadata FileMetadata.cc - ToolsHelper.cc ) target_link_libraries (orc-metadata @@ -86,7 +87,6 @@ target_link_libraries (orc-statistics add_executable (orc-memory FileMemory.cc - ToolsHelper.cc ) target_link_libraries (orc-memory @@ -108,6 +108,14 @@ add_executable (csv-import target_link_libraries (csv-import orc-tools-common ) +if(WIN32 AND NOT MINGW) + find_path(GETTIMEOFDAY_INCLUDE_DIR gettimeofday.h REQUIRED) + target_include_directories(csv-import PRIVATE "${GETTIMEOFDAY_INCLUDE_DIR}") + file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/c++/include/sys") + file(WRITE "${PROJECT_BINARY_DIR}/c++/include/sys/time.h" "extern \"C\" {\n#include \n}\n") + find_library(GETTIMEOFDAY_LIBRARY gettimeofday PATH_SUFFIXES manual-link REQUIRED) + target_link_libraries(csv-import "${GETTIMEOFDAY_LIBRARY}") +endif() set(CPP_TOOL_NAMES orc-contents ================================================ FILE: ports/orc/vcpkg.json ================================================ { "name": "orc", "version": "2.2.2", "port-version": 1, "description": "The smallest, fastest columnar storage for Hadoop workloads.", "homepage": "https://orc.apache.org/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "lz4", "protobuf", { "name": "protobuf", "host": true }, "snappy", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ], "features": { "tools": { "description": "Build tools", "dependencies": [ { "name": "getopt-win32", "platform": "windows & !mingw" }, { "name": "gettimeofday", "platform": "windows & !mingw" } ] } } } ================================================ FILE: ports/orefkov-simstr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orefkov/simstr SHA512 08ad3c17f693b248fcf97719ed1a65de55ab108b543508727305d00f2f9d349320822940d0f94904a3f71a7198e6fd4a42990269f38f0ee2d4d3768a66a2da6d REF "rel${VERSION}" HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSIMSTR_BUILD_TESTS=OFF -DSIMSTR_BENCHMARKS=OFF -DSIMSTR_LINK_NATVIS=OFF -DUSE_SYSTEM_DEPS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/simstr) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/orefkov-simstr/usage ================================================ orefkov-simstr provides CMake targets: find_package(simstr CONFIG REQUIRED) target_link_libraries(main PRIVATE simstr::simstr) ================================================ FILE: ports/orefkov-simstr/vcpkg.json ================================================ { "name": "orefkov-simstr", "version-semver": "1.7.3", "description": "Yet another C++ strings library implementation", "homepage": "https://github.com/orefkov/simstr", "license": "MIT", "dependencies": [ "simdutf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ormpp/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qicosmos/ormpp REF "0.2.0" SHA512 69b41091653341a158b929004bb00b1aed909ddd12593a8dc7a2a7dc0f1b8d1a3b5716db17ffefe7134452cf997502750e1fc86ffd185f43ceb5e2d99e8ddcc5 HEAD_REF master ) # Copy header files (iguana and frozen are provided as dependencies) file(INSTALL "${SOURCE_PATH}/ormpp/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/ormpp") # Handle license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ormpp/vcpkg.json ================================================ { "name": "ormpp", "version": "0.2.0", "description": "A modern C++ ORM library for MySQL, PostgreSQL, and SQLite", "homepage": "https://github.com/qicosmos/ormpp", "license": "Apache-2.0", "supports": "linux | osx | (windows & !uwp)", "dependencies": [ "frozen", "iguana" ] } ================================================ FILE: ports/orocos-kdl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orocos/orocos_kinematics_dynamics REF "${VERSION}" SHA512 5d2b3329c1015c1ed2f91860cc95f933f3fd42405e42dfe06f6c117c0c64bde8f8b1f49b2399555ee70782dfbf1da4d4a7a92a1860aee10e5bceff95a892b4a2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/orocos_kdl" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/orocos_kdl/cmake PACKAGE_NAME orocos_kdl) file(READ "${CURRENT_PACKAGES_DIR}/share/orocos_kdl/orocos_kdl-config.cmake" _contents) string(REPLACE "\${CMAKE_CURRENT_LIST_DIR}/../../.." "\${CMAKE_CURRENT_LIST_DIR}/../.." _contents "${_contents}") string(REPLACE "\${_IMPORT_PREFIX}" "\${CMAKE_CURRENT_LIST_DIR}/../.." _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/orocos_kdl/orocos_kdl-config.cmake" "${_contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/doc/liborocos-kdl") file(INSTALL "${SOURCE_PATH}/orocos_kdl/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/orocos-kdl/vcpkg.json ================================================ { "name": "orocos-kdl", "version": "1.5.3", "description": "Kinematics and Dynamics Library.", "homepage": "https://github.com/orocos/orocos_kinematics_dynamics", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/oscpack/add-cmake-install-target.patch ================================================ From 3a7ee65ecf43b97cc4a8c7cea5493de0d2b992fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 15 Jan 2025 07:58:23 +0100 Subject: [PATCH] Add cmake install target --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8bef70..4f200b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,34 @@ osc/OscOutboundPacketStream.cpp ) +set(IP_HEADERS + ip/IpEndpointName.h + ip/NetworkingUtils.h + ip/PacketListener.h + ip/TimerListener.h + ip/UdpSocket.h +) + + +set(OSC_HEADERS + osc/MessageMappingOscPacketListener.h + osc/OscException.h + osc/OscHostEndianness.h + osc/OscOutboundPacketStream.h + osc/OscPacketListener.h + osc/OscPrintReceivedElements.h + osc/OscReceivedElements.h + osc/OscTypes.h +) + +INSTALL(TARGETS oscpack + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +INSTALL(FILES ${IP_HEADERS} DESTINATION include/ip) +INSTALL(FILES ${OSC_HEADERS} DESTINATION include/osc) ADD_EXECUTABLE(OscUnitTests tests/OscUnitTests.cpp) TARGET_LINK_LIBRARIES(OscUnitTests oscpack ${LIBS}) -- 2.34.1 ================================================ FILE: ports/oscpack/link-ws2_32-and-winmm.patch ================================================ From d2a920a78f3b29df26d8e1e8ca6a0e93260999db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 15 Jan 2025 21:56:46 +0100 Subject: [PATCH] link Ws2_32 and winmm --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1fc1fbe..1b3c4aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,6 +43,8 @@ osc/OscOutboundPacketStream.cpp ) +TARGET_LINK_LIBRARIES(oscpack PRIVATE ${LIBS}) + set(IP_HEADERS ip/IpEndpointName.h ip/NetworkingUtils.h -- 2.34.1 ================================================ FILE: ports/oscpack/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) # This can (and should) be removed if oscpack ever supports dynamically linking on Windows vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RossBencina/oscpack REF release_1_1_0 SHA512 7a61a364cab4914c81e113d7aeee2b4accf5e560f500df6634232e0093f564ed4bb0ef8e87d2c8a18f245b0c7ec25f41e64f42f20a6654c22bb5c02aa253bbd0 PATCHES add-cmake-install-target.patch link-ws2_32-and-winmm.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_build() vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/oscpack/usage ================================================ oscpack can be used from CMake via: find_path(OSCPACK_INCLUDE_DIRS "osc" PATH_SUFFIXES "oscpack") find_library(OSCPACK_LIBRARY oscpack REQUIRED) target_include_directories(main PRIVATE ${OSCPACK_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${OSCPACK_LIBRARY}) In case of Windows static link in addition: target_link_libraries(main PRIVATE ws2_32 winmm) ================================================ FILE: ports/oscpack/vcpkg.json ================================================ { "name": "oscpack", "version": "1.1.0", "description": "A simple C++ Open Sound Control (OSC) packet manipulation library", "homepage": "http://www.rossbencina.com/code/oscpack", "license": null, "supports": "!(windows & !static)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/osg/android.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d0acf8..d5ebe90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -734,7 +734,7 @@ OPTION(OSG_USE_LOCAL_LUA_SOURCE "Enable to use local Lua source when building th # you can use the following style of command line option when invoking Cmake (here illustrating ignoring PythonLibs) : # cmake -DCMAKE_DISABLE_FIND_PACKAGE_PythonLibs=1 . # -IF(ANDROID) +IF(0) ANDROID_3RD_PARTY() ELSE() # Common to all platforms except android: @@ -815,7 +815,7 @@ ENDIF(BUILD_OSG_EXAMPLES AND NOT ANDROID) # Image readers/writers depend on 3rd party libraries except for OS X which # can use Quicktime. -IF(NOT ANDROID) +IF(1) IF(NOT APPLE) FIND_PACKAGE(GIFLIB) FIND_PACKAGE(JPEG) ================================================ FILE: ports/osg/collada.patch ================================================ diff --git a/CMakeModules/FindCOLLADA.cmake b/CMakeModules/FindCOLLADA.cmake index 7c7d290..5b456d7 100644 --- a/CMakeModules/FindCOLLADA.cmake +++ b/CMakeModules/FindCOLLADA.cmake @@ -29,10 +29,7 @@ IF(APPLE) ELSEIF(MINGW) SET(COLLADA_BUILDNAME "mingw") SET(COLLADA_BOOST_BUILDNAME ${COLLADA_BUILDNAME}) -ELSEIF((MSVC_VERSION GREATER 1910) OR (MSVC_VERSION EQUAL 1910)) - SET(COLLADA_BUILDNAME "vc14") - SET(COLLADA_BOOST_BUILDNAME "vc141") -ELSEIF(MSVC_VERSION EQUAL 1900) +ELSEIF(MSVC_VERSION GREATER_EQUAL 1900) SET(COLLADA_BUILDNAME "vc14") SET(COLLADA_BOOST_BUILDNAME "vc140") ELSEIF(MSVC_VERSION EQUAL 1800) @@ -61,6 +58,7 @@ ENDIF() FIND_PATH(COLLADA_INCLUDE_DIR dae.h + PATHS ${COLLADA_DOM_ROOT}/include $ENV{COLLADA_DIR}/include $ENV{COLLADA_DIR} @@ -68,27 +66,19 @@ FIND_PATH(COLLADA_INCLUDE_DIR dae.h /Library/Frameworks /opt/local/Library/Frameworks #macports /usr/local/include - /usr/local/include/colladadom - /usr/local/include/collada-dom - /usr/local/include/collada-dom2.5 - /usr/local/include/collada-dom2.4 - /usr/local/include/collada-dom2.2 - /opt/local/include/collada-dom - /opt/local/include/collada-dom2.5 - /opt/local/include/collada-dom2.4 - /opt/local/include/collada-dom2.2 /usr/include/ - /usr/include/colladadom - /usr/include/collada-dom - /usr/include/collada-dom2.5 - /usr/include/collada-dom2.4 - /usr/include/collada-dom2.2 /sw/include # Fink /opt/local/include # DarwinPorts /opt/csw/include # Blastwave /opt/include /usr/freeware/include ${ACTUAL_3DPARTY_DIR}/include + PATH_SUFFIXES + colladadom + collada-dom + collada-dom2.5 + collada-dom2.4 + collada-dom2.2 ) FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY @@ -116,7 +106,7 @@ FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY ) FIND_LIBRARY(COLLADA_DYNAMIC_LIBRARY_DEBUG - NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d + NAMES collada_dom-d collada14dom-d Collada14Dom-d libcollada14dom21-d libcollada14dom22-d collada-dom2.5-dp-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.4-dp-d collada-dom2.4-dp-${COLLADA_BOOST_BUILDNAME}-mt-d collada-dom2.5-dp-${COLLADA_BOOST_BUILDNAME}-mt PATHS ${COLLADA_DOM_ROOT}/build/${COLLADA_BUILDNAME}-1.4-d ${COLLADA_DOM_ROOT} @@ -279,7 +269,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG ) FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY - NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 + NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt PATHS ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw @@ -287,7 +277,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG ) FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG - NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 + NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_filesystem-${COLLADA_BOOST_BUILDNAME}-mt-gd PATHS ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw @@ -295,7 +285,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG ) FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY - NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 + NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt PATHS ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw @@ -303,7 +293,7 @@ FIND_LIBRARY(COLLADA_STATIC_LIBRARY_DEBUG ) FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG - NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 + NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_54 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_55 libboost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_58 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_62 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd-1_63 boost_system-${COLLADA_BOOST_BUILDNAME}-mt-gd PATHS ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME} ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw @@ -329,5 +319,3 @@ IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY) ENDIF() ENDIF() - - diff --git a/src/osgPlugins/dae/CMakeLists.txt b/src/osgPlugins/dae/CMakeLists.txt index af03fb866..7eadfc2f3 100644 --- a/src/osgPlugins/dae/CMakeLists.txt +++ b/src/osgPlugins/dae/CMakeLists.txt @@ -49,7 +49,9 @@ ELSE() ENDIF() ADD_DEFINITIONS(-DNO_BOOST) -ADD_DEFINITIONS(-DCOLLADA_DOM_SUPPORT141) +ADD_DEFINITIONS(-DCOLLADA_DOM_USING_141 + -DCOLLADA_DOM_SUPPORT141 + -DCOLLADA_DOM_SUPPORT150) IF (COLLADA_DOM_2_4_OR_LATER) ADD_DEFINITIONS(-DCOLLADA_DOM_2_4_OR_LATER) ================================================ FILE: ports/osg/fix-error-c3861.patch ================================================ diff --git a/src/osgPlugins/osga/OSGA_Archive.cpp b/src/osgPlugins/osga/OSGA_Archive.cpp index b9f518a..19186a7 100644 --- a/src/osgPlugins/osga/OSGA_Archive.cpp +++ b/src/osgPlugins/osga/OSGA_Archive.cpp @@ -77,7 +77,7 @@ inline OSGA_Archive::pos_type ARCHIVE_POS( const std::streampos & pos ) #else // older Dinkumware (eg: one included in Win Server 2003 Platform SDK ) fpos_t position = pos.get_fpos_t(); #endif - std::streamoff offset = pos.operator std::streamoff( ) - _FPOSOFF( position ); + std::streamoff offset = 0; return OSGA_Archive::pos_type( position + offset ); } ================================================ FILE: ports/osg/fix-min-max-macro.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a58f19..7d0acf8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -375,7 +375,7 @@ IF(WIN32 AND NOT ANDROID) #needed for net plugin SET (OSG_SOCKET_LIBS wsock32) # Both Cygwin and Msys need -DNOMINMAX ??? - IF(UNIX) + IF(UNIX OR WIN32) ADD_DEFINITIONS(-DNOMINMAX) ENDIF() ================================================ FILE: ports/osg/fix-nvtt-squish.patch ================================================ diff --git a/CMakeModules/FindNVTT.cmake b/CMakeModules/FindNVTT.cmake index d0e7414..f6fb761 100644 --- a/CMakeModules/FindNVTT.cmake +++ b/CMakeModules/FindNVTT.cmake @@ -120,7 +120,7 @@ FIND_LIBRARY(NVTHREAD_LIBRARY_DEBUG # SQUISH FIND_LIBRARY(NVSQUISH_LIBRARY_RELEASE - NAMES squish + NAMES nvsquish NAMES_PER_DIR PATHS /usr/local /usr @@ -129,7 +129,7 @@ FIND_LIBRARY(NVSQUISH_LIBRARY_RELEASE PATH_SUFFIXES lib64 lib lib/shared lib/static lib64/static ) FIND_LIBRARY(NVSQUISH_LIBRARY_DEBUG - NAMES squish_d + NAMES nvsquish_d NAMES_PER_DIR PATHS /usr/local /usr ================================================ FILE: ports/osg/fix-sdl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 81328ea..c735419 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -755,7 +755,8 @@ ELSE() FIND_PACKAGE(GStreamer COMPONENTS app pbutils) FIND_PACKAGE(GLIB COMPONENTS gobject) FIND_PACKAGE(DirectShow) - FIND_PACKAGE(SDL2) + find_package(SDL2 CONFIG) + set(SDL2_LIBRARY SDL2::SDL2 SDL2::SDL2main) FIND_PACKAGE(SDL) FIND_PACKAGE(Poppler-glib) FIND_PACKAGE(RSVG) ================================================ FILE: ports/osg/link-libraries.patch ================================================ diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index ce55be0..9b7107c 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -37,6 +37,16 @@ SET(VALID_BUILDER_VERSION OFF) MACRO(LINK_WITH_VARIABLES TRGTNAME) FOREACH(varname ${ARGN}) + string(REPLACE "_LIBRARY" "_LINK_LIBRARIES" lwv_link_libraries "${varname}") + if(DEFINED ${lwv_link_libraries}) + TARGET_LINK_LIBRARIES(${TRGTNAME} ${${lwv_link_libraries}}) + continue() + endif() + string(REPLACE "_LIBRARY" "_LIBRARIES" lwv_libraries "${varname}") + if(DEFINED ${lwv_libraries}) + TARGET_LINK_LIBRARIES(${TRGTNAME} ${${lwv_libraries}}) + continue() + endif() IF(${varname}_DEBUG) IF(${varname}_RELEASE) TARGET_LINK_LIBRARIES(${TRGTNAME} optimized "${${varname}_RELEASE}" debug "${${varname}_DEBUG}") ================================================ FILE: ports/osg/openexr3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c7de889..2a58f19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -743,6 +743,9 @@ ELSE() FIND_PACKAGE(Inventor) FIND_PACKAGE(Jasper) FIND_PACKAGE(OpenEXR) + set(OPENEXR_FOUND "${OpenEXR_FOUND}") + set(OPENEXR_LIBRARIES OpenEXR::OpenEXR) + set(OPENEXR_LIBRARIES_VARS OPENEXR_LIBRARIES) FIND_PACKAGE(OpenCascade) FIND_PACKAGE(COLLADA) FIND_PACKAGE(FBX) diff --git a/src/osgPlugins/exr/ReaderWriterEXR.cpp b/src/osgPlugins/exr/ReaderWriterEXR.cpp index 7132e97..bea1483 100644 --- a/src/osgPlugins/exr/ReaderWriterEXR.cpp +++ b/src/osgPlugins/exr/ReaderWriterEXR.cpp @@ -41,11 +41,11 @@ public: { return _inStream->read(c,n).good(); }; - virtual Int64 tellg () + virtual uint64_t tellg () { return _inStream->tellg(); }; - virtual void seekg (Int64 pos) + virtual void seekg (uint64_t pos) { _inStream->seekg(pos); }; @@ -69,11 +69,11 @@ public: { _outStream->write(c,n); }; - virtual Int64 tellp () + virtual uint64_t tellp () { return _outStream->tellp(); }; - virtual void seekp (Int64 pos) + virtual void seekp (uint64_t pos) { _outStream->seekp(pos); }; ================================================ FILE: ports/osg/osgdb_zip_nozip.patch ================================================ From bee432e701c541f9a86bd051b795c3e056e36646 Mon Sep 17 00:00:00 2001 From: Ankur Verma Date: Sun, 16 Aug 2020 14:36:31 -0700 Subject: [PATCH] osg --- src/osgPlugins/zip/unzip.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osgPlugins/zip/unzip.cpp b/src/osgPlugins/zip/unzip.cpp index 0bec28f0c..74e7b2413 100644 --- a/src/osgPlugins/zip/unzip.cpp +++ b/src/osgPlugins/zip/unzip.cpp @@ -1742,8 +1742,8 @@ int inflate_blocks_free(inflate_blocks_statef *s, z_streamp z) -extern const char inflate_copyright[] = - " inflate 1.1.3 Copyright 1995-1998 Mark Adler "; +//extern const char inflate_copyright[] = +// " inflate 1.1.3 Copyright 1995-1998 Mark Adler "; // If you use the zlib library in a product, an acknowledgment is welcome // in the documentation of your product. If for some reason you cannot // include such an acknowledgment, I would appreciate that you keep this -- 2.26.2 From 24d4036036884b350bd6c519b64626faa2c7e660 Mon Sep 17 00:00:00 2001 From: Ankur Verma Date: Thu, 20 Aug 2020 23:16:12 -0700 Subject: [PATCH] Symbol clashes --- src/osgPlugins/zip/unzip.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osgPlugins/zip/unzip.cpp b/src/osgPlugins/zip/unzip.cpp index 74e7b2413..f5169c6f4 100644 --- a/src/osgPlugins/zip/unzip.cpp +++ b/src/osgPlugins/zip/unzip.cpp @@ -213,7 +213,7 @@ DWORD GetFilePosU(HANDLE hfout) return ftell(hfout); } -bool FileExists(const TCHAR *fn) +static bool FileExists(const TCHAR *fn) { struct stat st; int res=stat(fn,&st); return (res==0); -- 2.26.2 ================================================ FILE: ports/osg/plugin-pdb-install.patch ================================================ diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index a12fcf1..ce55be0 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -351,7 +351,7 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME) LIBRARY DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) IF(MSVC AND DYNAMIC_OPENSCENEGRAPH) INSTALL(FILES ${OUTPUT_BINDIR}/${OSG_PLUGINS}/${TARGET_TARGETNAME}${CMAKE_RELWITHDEBINFO_POSTFIX}.pdb DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS RelWithDebInfo) - INSTALL(FILES ${OUTPUT_BINDIR}/${OSG_PLUGINS}/${TARGET_TARGETNAME}${CMAKE_DEBUG_POSTFIX}.pdb DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS Debug) + INSTALL(FILES $ DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS Debug) ENDIF(MSVC AND DYNAMIC_OPENSCENEGRAPH) ELSE(WIN32) INSTALL(TARGETS ${TARGET_TARGETNAME} ================================================ FILE: ports/osg/portfile.cmake ================================================ set(OSG_VER 3.6.5) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openscenegraph/OpenSceneGraph REF OpenSceneGraph-${OSG_VER} SHA512 7002fa30a3bcf6551d2e1050b4ca75a3736013fd190e4f50953717406864da1952deb09f530bc8c5ddf6e4b90204baec7dbc283f497829846d46d561f66feb4b HEAD_REF master PATCHES link-libraries.patch collada.patch fix-sdl.patch fix-nvtt-squish.patch plugin-pdb-install.patch osgdb_zip_nozip.patch # This is fix symbol clashes with other libs when built in static-lib mode openexr3.patch unofficial-export.patch fix-min-max-macro.patch fix-error-c3861.patch android.diff ) file(REMOVE "${SOURCE_PATH}/CMakeModules/FindFontconfig.cmake" "${SOURCE_PATH}/CMakeModules/FindFreetype.cmake" "${SOURCE_PATH}/CMakeModules/Findilmbase.cmake" "${SOURCE_PATH}/CMakeModules/FindOpenEXR.cmake" "${SOURCE_PATH}/CMakeModules/FindSDL2.cmake" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OSG_DYNAMIC) set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -DOSG_USE_UTF8_FILENAME=ON) endif() # Skip try_run checks if(VCPKG_TARGET_IS_MINGW) list(APPEND OPTIONS -D_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED=0 -D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS=1) elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -D_OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED=1 -D_OPENTHREADS_ATOMIC_USE_GCC_BUILTINS=0) elseif(VCPKG_TARGET_IS_IOS) # handled by osg elseif(VCPKG_CROSSCOMPILING) message(WARNING "Atomics detection may fail for cross builds. You can set osg cmake variables in a custom triplet.") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_OSG_APPLICATIONS examples BUILD_OSG_EXAMPLES plugins BUILD_OSG_PLUGINS_BY_DEFAULT plugins CMAKE_REQUIRE_FIND_PACKAGE_CURL plugins CMAKE_REQUIRE_FIND_PACKAGE_Jasper plugins CMAKE_REQUIRE_FIND_PACKAGE_GDAL plugins CMAKE_REQUIRE_FIND_PACKAGE_GTA packages BUILD_OSG_PACKAGES docs BUILD_DOCUMENTATION docs BUILD_REF_DOCS_SEARCHENGINE docs BUILD_REF_DOCS_TAGFILE fontconfig OSG_TEXT_USE_FONTCONFIG freetype BUILD_OSG_PLUGIN_FREETYPE freetype CMAKE_REQUIRE_FIND_PACKAGE_Freetype collada BUILD_OSG_PLUGIN_DAE collada CMAKE_REQUIRE_FIND_PACKAGE_COLLADA nvtt BUILD_OSG_PLUGIN_NVTT nvtt CMAKE_REQUIRE_FIND_PACKAGE_NVTT openexr BUILD_OSG_PLUGIN_EXR openexr CMAKE_REQUIRE_FIND_PACKAGE_OpenEXR sdl1 BUILD_OSG_PLUGIN_SDL sdl1 VCPKG_LOCK_FIND_PACKAGE_SDL ) # The package osg can be configured to use different OpenGL profiles via a custom triplet file: # Possible values are GLCORE, GL2, GL3, GLES1, GLES2, GLES3, and GLES2+GLES3 if(NOT DEFINED osg_OPENGL_PROFILE) set(osg_OPENGL_PROFILE "GL2") if(VCPKG_TARGET_IS_ANDROID) set(osg_OPENGL_PROFILE "GLES2") endif() endif() # Plugin control variables are used only if prerequisites are satisfied. set(plugin_vars "") file(STRINGS "${SOURCE_PATH}/src/osgPlugins/CMakeLists.txt" plugin_lines REGEX "ADD_PLUGIN_DIRECTORY") foreach(line IN LISTS plugin_lines) if(NOT line MATCHES "ADD_PLUGIN_DIRECTORY\\(([^)]*)" OR NOT EXISTS "${SOURCE_PATH}/src/osgPlugins/${CMAKE_MATCH_1}/CMakeLists.txt") continue() endif() string(TOUPPER "${CMAKE_MATCH_1}" plugin_upper) list(APPEND plugin_vars "BUILD_OSG_PLUGIN_${plugin_upper}") endforeach() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_DASHBOARD_REPORTS=OFF -DCMAKE_CXX_STANDARD=11 -DCMAKE_POLICY_DEFAULT_CMP0057=NEW -DDYNAMIC_OPENSCENEGRAPH=${OSG_DYNAMIC} -DDYNAMIC_OPENTHREADS=${OSG_DYNAMIC} -DOPENGL_PROFILE=${osg_OPENGL_PROFILE} -DOSG_MSVC_VERSIONED_DLL=OFF -DOSG_DETERMINE_WIN_VERSION=OFF -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON -DUSE_3RDPARTY_BIN=OFF # Plugins -DBUILD_OSG_PLUGIN_DICOM=OFF -DBUILD_OSG_PLUGIN_DIRECTSHOW=OFF -DBUILD_OSG_PLUGIN_FBX=OFF -DBUILD_OSG_PLUGIN_INVENTOR=OFF -DBUILD_OSG_PLUGIN_LAS=OFF -DBUILD_OSG_PLUGIN_LUA=OFF -DBUILD_OSG_PLUGIN_OPENCASCADE=OFF -DBUILD_OSG_PLUGIN_QTKIT=OFF -DBUILD_OSG_PLUGIN_RESTHTTPDEVICE=OFF -DBUILD_OSG_PLUGIN_SVG=OFF -DBUILD_OSG_PLUGIN_VNC=OFF -DBUILD_OSG_PLUGIN_ZEROCONFDEVICE=OFF -DCMAKE_DISABLE_FIND_PACKAGE_FFmpeg=ON -DCMAKE_DISABLE_FIND_PACKAGE_DCMTK=ON -DCMAKE_DISABLE_FIND_PACKAGE_GStreamer=ON -DCMAKE_DISABLE_FIND_PACKAGE_GLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_Inventor=ON ${OPTIONS} OPTIONS_DEBUG -DBUILD_OSG_APPLICATIONS=OFF -DBUILD_OSG_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF MAYBE_UNUSED_VARIABLES BUILD_REF_DOCS_SEARCHENGINE BUILD_REF_DOCS_TAGFILE OSG_DETERMINE_WIN_VERSION USE_3RDPARTY_BIN ${plugin_vars} ) vcpkg_cmake_install() vcpkg_copy_pdbs() configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-osg-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-osg/unofficial-osg-config.cmake" @ONLY) vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-osg) # Add debug folder prefix for plugin targets. vcpkg_cmake_config_fixup only handles this for targets in bin/ and lib/. set(osg_plugins_debug_targets "${CURRENT_PACKAGES_DIR}/share/unofficial-osg/osg-plugins-debug.cmake") if(EXISTS "${osg_plugins_debug_targets}") file(READ "${osg_plugins_debug_targets}" contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" contents "${contents}") string(REPLACE "\${_IMPORT_PREFIX}/plugins" "\${_IMPORT_PREFIX}/debug/plugins" contents "${contents}") file(WRITE "${osg_plugins_debug_targets}" "${contents}") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(APPEND "${CURRENT_PACKAGES_DIR}/include/osg/Config" "#ifndef OSG_LIBRARY_STATIC\n#define OSG_LIBRARY_STATIC 1\n#endif\n") endif() set(osg_plugins_subdir "osgPlugins-${OSG_VER}") vcpkg_list(SET tools) if("examples" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND tools osg2cpp osgshaderpipeline) endif() if("tools" IN_LIST FEATURES) list(APPEND tools osgversion present3D) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND tools osgviewer osgarchive osgconv osgfilecache) endif() endif() if(tools) set(osg_plugin_pattern "${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}osgdb*${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") file(GLOB osg_plugins "${CURRENT_PACKAGES_DIR}/plugins/${osg_plugins_subdir}/${osg_plugin_pattern}") if(NOT osg_plugins STREQUAL "") file(INSTALL ${osg_plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${osg_plugins_subdir}") endif() vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openscenegraph.pc" "\\\n" " ") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openscenegraph.pc" "\\\n" " ") endif() vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/osg/unofficial-export.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c975d78..cc53332 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1374,3 +1374,6 @@ ADD_CUSTOM_TARGET(uninstall # include(FeatureSummary) feature_summary(WHAT ALL) + +INSTALL(EXPORT osg-targets NAMESPACE unofficial::osg:: DESTINATION share/unofficial-osg) +INSTALL(EXPORT osg-plugins NAMESPACE unofficial::osg:: DESTINATION share/unofficial-osg) diff --git a/CMakeModules/ModuleInstall.cmake b/CMakeModules/ModuleInstall.cmake index f6714c5..d58f6fd 100644 --- a/CMakeModules/ModuleInstall.cmake +++ b/CMakeModules/ModuleInstall.cmake @@ -27,6 +27,7 @@ ENDIF() INSTALL( TARGETS ${LIB_NAME} + EXPORT osg-targets RUNTIME DESTINATION ${INSTALL_BINDIR} COMPONENT libopenscenegraph LIBRARY DESTINATION ${INSTALL_LIBDIR} COMPONENT libopenscenegraph ARCHIVE DESTINATION ${INSTALL_ARCHIVEDIR} COMPONENT libopenscenegraph-dev diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index dcc1fe37d..76429b85a 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -345,18 +350,20 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME) #the installation path are differentiated for win32 that install in bib versus other architecture that install in lib${LIB_POSTFIX}/${OSG_PLUGINS} IF(WIN32) INSTALL(TARGETS ${TARGET_TARGETNAME} + EXPORT osg-plugins RUNTIME DESTINATION bin COMPONENT ${PACKAGE_COMPONENT} ARCHIVE DESTINATION lib/${OSG_PLUGINS} COMPONENT libopenscenegraph-dev - LIBRARY DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) + LIBRARY DESTINATION plugins/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) IF(MSVC AND DYNAMIC_OPENSCENEGRAPH) - INSTALL(FILES ${OUTPUT_BINDIR}/${OSG_PLUGINS}/${TARGET_TARGETNAME}${CMAKE_RELWITHDEBINFO_POSTFIX}.pdb DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS RelWithDebInfo) - INSTALL(FILES $ DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS Debug) + INSTALL(FILES ${OUTPUT_BINDIR}/${OSG_PLUGINS}/${TARGET_TARGETNAME}${CMAKE_RELWITHDEBINFO_POSTFIX}.pdb DESTINATION plugins/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS RelWithDebInfo) + INSTALL(FILES $ DESTINATION plugins/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT} CONFIGURATIONS Debug) ENDIF(MSVC AND DYNAMIC_OPENSCENEGRAPH) ELSE(WIN32) INSTALL(TARGETS ${TARGET_TARGETNAME} + EXPORT osg-plugins RUNTIME DESTINATION bin COMPONENT ${PACKAGE_COMPONENT} ARCHIVE DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} COMPONENT libopenscenegraph-dev - LIBRARY DESTINATION lib${LIB_POSTFIX}/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) + LIBRARY DESTINATION plugins${LIB_POSTFIX}/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) ENDIF(WIN32) ENDMACRO(SETUP_PLUGIN) diff --git a/src/OpenThreads/pthreads/CMakeLists.txt b/src/OpenThreads/pthreads/CMakeLists.txt index e18969c..5a8ad62 100644 --- a/src/OpenThreads/pthreads/CMakeLists.txt +++ b/src/OpenThreads/pthreads/CMakeLists.txt @@ -157,6 +157,7 @@ ELSE() INSTALL( TARGETS OpenThreads + EXPORT osg-targets ARCHIVE DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads-dev LIBRARY DESTINATION lib${LIB_POSTFIX} COMPONENT libopenthreads RUNTIME DESTINATION bin COMPONENT libopenthreads diff --git a/src/OpenThreads/win32/CMakeLists.txt b/src/OpenThreads/win32/CMakeLists.txt index 0e816f7..0c083fd 100644 --- a/src/OpenThreads/win32/CMakeLists.txt +++ b/src/OpenThreads/win32/CMakeLists.txt @@ -45,6 +45,7 @@ ENDIF() INSTALL( TARGETS OpenThreads + EXPORT osg-targets ARCHIVE DESTINATION lib COMPONENT libopenthreads-dev LIBRARY DESTINATION lib COMPONENT libopenthreads RUNTIME DESTINATION bin COMPONENT libopenthreads ================================================ FILE: ports/osg/unofficial-osg-config.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) include("${CMAKE_CURRENT_LIST_DIR}/osg-targets.cmake") include(CMakeFindDependencyMacro) if("@OSG_TEXT_USE_FONTCONFIG@") find_dependency(Fontconfig) # CMake 3.14 endif() if("plugins" IN_LIST ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS) include("${CMAKE_CURRENT_LIST_DIR}/osg-plugins.cmake") if(TARGET unofficial::osg::osgdb_curl) find_dependency(CURL) endif() if(TARGET unofficial::osg::osgdb_exr) find_dependency(OpenEXR CONFIG) endif() if(TARGET unofficial::osg::osgdb_gdal OR TARGET unofficial::osg::osgdb_ogr) find_dependency(GDAL) endif() endif() set(${CMAKE_FIND_PACKAGE_NAME}_VERSION "@OSG_VER@") cmake_policy(POP) ================================================ FILE: ports/osg/usage ================================================ The package osg can be configured to use different OpenGL profiles via a custom triplet file. Possible values are GLCORE, GL2, GL3, GLES1, GLES2, GLES3 and GLES2+GLES3. The default value is GL2. If you want use other profiles, please add the following code to a custom triplet file. set(osg_OPENGL_PROFILE GL3) ================================================ FILE: ports/osg/vcpkg.json ================================================ { "name": "osg", "version": "3.6.5", "port-version": 27, "description": "The OpenSceneGraph is an open source high performance 3D graphics toolkit.", "homepage": "https://www.openscenegraph.com/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "expat", "platform": "windows" }, "opengl-registry", { "name": "openimageio", "default-features": false, "platform": "osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ { "name": "fontconfig", "platform": "!android & !ios & !uwp" }, "freetype", { "name": "nvtt", "platform": "x64 & (linux | osx | windows) & !uwp" }, { "name": "openexr", "platform": "!uwp" }, "plugins" ], "features": { "collada": { "description": "Support for Collada (.dae) files", "dependencies": [ "collada-dom" ] }, "docs": { "description": "Build OpenSceneGraph reference documentation using doxygen (use: make doc_openscenegraph doc_openthreads" }, "examples": { "description": "Enable to build OSG Examples", "supports": "!android", "dependencies": [ { "name": "libiconv", "platform": "windows" }, { "name": "osg", "default-features": false, "features": [ "freetype", "plugins" ] }, "sdl2" ] }, "fontconfig": { "description": "Enable Fontconfig support for osgText", "dependencies": [ "fontconfig", { "name": "osg", "default-features": false, "features": [ "freetype" ] } ] }, "freetype": { "description": "Enable Freetype support", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "nvtt": { "description": "Build texture processing tools plugin", "dependencies": [ "nvtt" ] }, "openexr": { "description": "Build the exr plugin", "dependencies": [ "openexr" ] }, "packages": { "description": "Set to ON to generate CPack configuration files and packaging targets" }, "plugins": { "description": "Build most OSG plugins", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "gdal", "default-features": false }, { "name": "giflib", "platform": "windows" }, { "name": "jasper", "default-features": false }, "libgta", { "name": "libiconv", "platform": "windows" }, "libjpeg-turbo", "libpng", { "name": "libxml2", "platform": "windows" }, { "name": "tiff", "default-features": false } ] }, "sdl1": { "description": "Build SDL 1 plugin, and enable SDL 1 app features", "dependencies": [ "sdl1" ] }, "tools": { "description": "Enable to build OSG Applications (e.g. osgviewer)", "supports": "!android", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "libiconv", "platform": "windows" }, "libjpeg-turbo", "libpng", { "name": "osg", "default-features": false, "features": [ "freetype", "plugins" ] } ] } } } ================================================ FILE: ports/osg-qt/CMakeLists.patch ================================================ diff --git a/src/osgQOpenGL/CMakeLists.txt b/src/osgQOpenGL/CMakeLists.txt --- a/src/osgQOpenGL/CMakeLists.txt +++ b/src/osgQOpenGL/CMakeLists.txt @@ -14,7 +14,11 @@ ${HEADER_PATH}/OSGRenderer ) - qt5_wrap_cpp(SOURCES_H_MOC ${SOURCE_H} #[[OPTIONS ${MOC_OPTIONS}]]) + FOREACH(HEADER_FILE ${SOURCE_H}) + get_filename_component(HEADER_FILE_NAME "${CMAKE_CURRENT_LIST_DIR}/${HEADER_FILE}" NAME) + qt5_wrap_cpp(HEADER_FILE_MOC ${HEADER_FILE} OPTIONS "-f") + LIST(APPEND SOURCES_H_MOC ${HEADER_FILE_MOC}) + ENDFOREACH() SET(TARGET_H ${SOURCE_H} ================================================ FILE: ports/osg-qt/OsgMacroUtils.patch ================================================ --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -92,7 +92,7 @@ MACRO(LINK_CORELIB_DEFAULT CORELIB_NAME) ENDIF() LINK_EXTERNAL(${CORELIB_NAME} ${ALL_GL_LIBRARIES}) - LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) + #LINK_WITH_VARIABLES(${CORELIB_NAME} OPENTHREADS_LIBRARY) IF(OPENSCENEGRAPH_SONAMES) SET_TARGET_PROPERTIES(${CORELIB_NAME} PROPERTIES VERSION ${OPENSCENEGRAPH_VERSION} SOVERSION ${OPENSCENEGRAPH_SOVERSION}) ENDIF(OPENSCENEGRAPH_SONAMES) ================================================ FILE: ports/osg-qt/fix-static-install.patch ================================================ diff --git a/CMakeModules/ModuleInstall.cmake b/CMakeModules/ModuleInstall.cmake index eb26ba2..14b8bca 100644 --- a/CMakeModules/ModuleInstall.cmake +++ b/CMakeModules/ModuleInstall.cmake @@ -40,10 +40,10 @@ ARCHIVE DESTINATION ${INSTALL_ARCHIVEDIR} COMPONENT libopenscenegraph-dev ) -IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") +IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) GET_TARGET_PROPERTY(PREFIX ${LIB_NAME} PREFIX) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PREFIX}${LIB_NAME}${CMAKE_BUILD_POSTFIX}.pdb DESTINATION ${INSTALL_BINDIR} COMPONENT libopenscenegraph) -ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") +ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) IF(NOT OSG_COMPILE_FRAMEWORKS) INSTALL ( diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index 5688f8f..329f862 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -333,9 +333,9 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME) RUNTIME DESTINATION bin COMPONENT ${PACKAGE_COMPONENT} ARCHIVE DESTINATION lib/${OSG_PLUGINS} COMPONENT libopenscenegraph-dev LIBRARY DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) - IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_TARGETNAME}${CMAKE_BUILD_POSTFIX}.pdb DESTINATION bin/${OSG_PLUGINS} COMPONENT ${PACKAGE_COMPONENT}) - ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) ELSE(WIN32) INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin COMPONENT ${PACKAGE_COMPONENT} @@ -436,9 +436,9 @@ MACRO(SETUP_APPLICATION APPLICATION_NAME) INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin BUNDLE DESTINATION bin) ELSE(APPLE) INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin COMPONENT openscenegraph ) - IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) INSTALL(FILES ${CMAKE_BINARY_DIR}/bin/${TARGET_NAME}${CMAKE_BUILD_POSTFIX}.pdb DESTINATION bin COMPONENT openscenegraph) - ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) ENDIF(APPLE) ENDMACRO(SETUP_APPLICATION) @@ -468,9 +468,9 @@ MACRO(SETUP_EXAMPLE EXAMPLE_NAME) INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin BUNDLE DESTINATION share/OpenSceneGraph/bin ) ELSE(APPLE) INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples ) - IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + IF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_TARGETNAME}${CMAKE_BUILD_POSTFIX}.pdb DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples) - ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release") + ENDIF(MSVC AND NOT CMAKE_BUILD_TYPE STREQUAL "Release" AND DYNAMIC_OPENSCENEGRAPH) ENDIF(APPLE) ENDMACRO(SETUP_EXAMPLE) ================================================ FILE: ports/osg-qt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO openscenegraph/osgQt REF 2cb70673a4e83a618290e7ee66d52402a94ec3f6 SHA512 29aeb5b31e70d5b12e69de7970b36ab7d1541c984873384a46c6468394e8562688c46ef39179820990817c94f283c7836c2c6ff207eefe385086d850ba3f8306 HEAD_REF master PATCHES OsgMacroUtils.patch fix-static-install.patch CMakeLists.patch use-lib.patch ) if(VCPKG_TARGET_IS_OSX) string(APPEND VCPKG_CXX_FLAGS " -stdlib=libc++") string(APPEND VCPKG_C_FLAGS "") # both must be set endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(OPTIONS -DDYNAMIC_OPENSCENEGRAPH=ON) else() set(OPTIONS -DDYNAMIC_OPENSCENEGRAPH=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DBUILD_OSG_EXAMPLES=OFF -DOSG_BUILD_APPLICATION_BUNDLES=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/osg-qt/use-lib.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 66e989a..3569cec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -467,7 +467,7 @@ ENDIF() IF(UNIX AND NOT WIN32 AND NOT APPLE) IF(CMAKE_SIZEOF_VOID_P MATCHES "8") - SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement") + SET(LIB_POSTFIX "" CACHE STRING "suffix for 32/64 dir placement") MARK_AS_ADVANCED(LIB_POSTFIX) ENDIF() ENDIF() ================================================ FILE: ports/osg-qt/vcpkg.json ================================================ { "name": "osg-qt", "version-string": "Qt5", "port-version": 3, "description": "osgQt - Qt project for making use of OpenSceneGraph(OSG)", "dependencies": [ "osg", { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/osgearth/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pelicanmapping/osgearth REF c980ad2ad6e9fb25c5a7f5b8c94b1cbf0e98a617 SHA512 4e3fe4f7c11d3fb3962cefb98400c6a0c0a491a3d57642da2040b6e0fd8f2cd27a4f58074b077a61151fde2d0b41ce97aa7fd0cf9901ddb6677f8f31392711e0 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES controls OSGEARTH_BUILD_LEGACY_CONTROLS_API tools OSGEARTH_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DOSGEARTH_BUILD_SHARED_LIBS=${BUILD_SHARED} -DOSGEARTH_BUILD_EXAMPLES=OFF -DOSGEARTH_BUILD_TESTS=OFF -DOSGEARTH_BUILD_DOCS=OFF -DOSGEARTH_BUILD_PROCEDURAL_NODEKIT=OFF -DOSGEARTH_BUILD_TRITON_NODEKIT=OFF -DOSGEARTH_BUILD_SILVERLINING_NODEKIT=OFF -DOSGEARTH_BUILD_ZIP_PLUGIN=OFF -DBUILDING_VCPKG_PORT=ON -DCMAKE_JOB_POOL_LINK=console # Serialize linking to avoid OOM OPTIONS_DEBUG -DOSGEARTH_BUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/osgEarth/Export" "defined( OSGEARTH_LIBRARY_STATIC )" "1") endif() set(osg_plugin_pattern "${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}osgdb*${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") if("tools" IN_LIST FEATURES) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB osg_plugins "${CURRENT_PACKAGES_DIR}/plugins/${osg_plugins_subdir}/${osg_plugin_pattern}") file(INSTALL ${osg_plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${osg_plugins_subdir}") if(NOT VCPKG_BUILD_TYPE) file(GLOB osg_plugins "${CURRENT_PACKAGES_DIR}/debug/plugins/${osg_plugins_subdir}/${osg_plugin_pattern}") file(INSTALL ${osg_plugins} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/${osg_plugins_subdir}") endif() endif() vcpkg_copy_tools(TOOL_NAMES osgearth_3pv osgearth_atlas osgearth_bakefeaturetiles osgearth_boundarygen osgearth_clamp osgearth_tfs osgearth_server osgearth_conv osgearth_imgui osgearth_version osgearth_viewer AUTO_CLEAN ) if(OSGEARTH_BUILD_LEGACY_CONTROLS_API) vcpkg_copy_tools(TOOL_NAMES osgearth_createtile AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/osgearth/vcpkg.json ================================================ { "name": "osgearth", "version": "3.8", "description": "osgEarth - 3D Maps for OpenSceneGraph", "homepage": "https://github.com/pelicanmapping/osgearth", "license": "MIT", "supports": "!(arm | x86 | wasm32 | android)", "dependencies": [ { "name": "aws-sdk-cpp", "features": [ "s3" ] }, "blend2d", "draco", "gdal", "geos", "libwebp", "meshoptimizer", "opengl", "osg", "protobuf", "spdlog", "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "controls": { "description": "Support for the old Controls API (superceded by imgui)" }, "tools": { "description": "Build command-line tools" } } } ================================================ FILE: ports/osmanip/portfile.cmake ================================================ # Github config vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustWhit3/osmanip REF "v${VERSION}" SHA512 ac5435ce5d39440851a01ee1576b7a543979efbf374a27ec32d63716361ef91662c353c2e39fecbd7e01059e8676f952f6851111643a55f941695dbbc6f03da4 HEAD_REF main ) # Main commands vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOSMANIP_TESTS=OFF ) vcpkg_cmake_install() # Move cmake configs vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/osmanip) # Remove duplicate files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/osmanip/vcpkg.json ================================================ { "name": "osmanip", "version": "4.6.1", "description": "A cross-platform library for output stream manipulation using ANSI escape sequences.", "homepage": "https://github.com/JustWhit3/osmanip", "license": "MIT", "dependencies": [ "arsenalgear", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/osp-collection/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO open-source-patterns/collection REF "${VERSION}" SHA512 fe05b09d70fccf40829aff9136630eea49990a54af7062fe7228d2c9bf43fa08b6b7ce2dddbcc63e3bffd91849b43f5fab6499dd87de5f0d2031ecf87c3b637b HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "collection" CONFIG_PATH "lib/cmake/collection") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # usage vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/osp-collection/usage ================================================ The package collection provides CMake targets: find_package(collection CONFIG REQUIRED) target_link_libraries(main PRIVATE collection::collection) ================================================ FILE: ports/osp-collection/vcpkg.json ================================================ { "name": "osp-collection", "version": "1.0.1", "maintainers": "Saad Shams", "description": "A C library providing data structures for efficient collection management.", "homepage": "https://github.com/open-source-patterns/collection", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/osqp/osqp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d2346fe..270f93d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,8 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") set(IS_MAC ON) elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set(IS_WINDOWS ON) +elseif(${CMAKE_SYSTEM_NAME} STREQUAL "WindowsStore") + set(IS_WINDOWS ON) endif() # OSQP Versioning diff --git a/algebra/_common/lin_sys/qdldl/qdldl.cmake b/algebra/_common/lin_sys/qdldl/qdldl.cmake index ac777bd..79a813c 100644 --- a/algebra/_common/lin_sys/qdldl/qdldl.cmake +++ b/algebra/_common/lin_sys/qdldl/qdldl.cmake @@ -17,8 +17,8 @@ set(QDLDL_LONG ${OSQP_USE_LONG} CACHE BOOL "QDLDL Integer type") set(QDLDL_BUILD_STATIC_LIB OFF CACHE BOOL "Build QDLDL static library") set(QDLDL_BUILD_SHARED_LIB OFF CACHE BOOL "Build QDLDL shared library") -FetchContent_MakeAvailable(qdldl) -FetchContent_GetProperties(qdldl) +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/empty.c" "/* replaced by external qdldl lib */") +add_library(qdldlobject OBJECT "${CMAKE_CURRENT_BINARY_DIR}/empty.c") list(POP_BACK CMAKE_MESSAGE_INDENT) diff --git a/algebra/builtin/CMakeLists.txt b/algebra/builtin/CMakeLists.txt index e542897..1c23ab3 100644 --- a/algebra/builtin/CMakeLists.txt +++ b/algebra/builtin/CMakeLists.txt @@ -42,9 +42,13 @@ if( OSQP_CODEGEN ) ${OSQP_ALGEBRA_ROOT}/_common/kkt.c ${OSQP_ALGEBRA_ROOT}/_common/lin_sys/qdldl/qdldl_interface.h ${OSQP_ALGEBRA_ROOT}/_common/lin_sys/qdldl/qdldl_interface.c - ${qdldl_SOURCE_DIR}/src/qdldl.c - ${qdldl_SOURCE_DIR}/include/qdldl.h - ${qdldl_BINARY_DIR}/include/qdldl_version.h ) + ) + find_package(qdldl CONFIG REQUIRED GLOBAL) + target_link_libraries(OSQPLIB PRIVATE $,qdldl::qdldl,qdldl::qdldlstatic>) + file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/../../osqp-findAlgebraDependency.cmake" [[ +include(CMakeFindDependencyMacro) +find_dependency(qdldl CONFIG) +]]) foreach( f ${EMBEDDED_LINALG} ) get_filename_component( fname ${f} NAME ) ================================================ FILE: ports/osqp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "osqp/osqp" REF "v${VERSION}" SHA512 00ead2c476aca935202c2a02e5a0309efee6db65ec4e7c56f3597324a2f224a16502a34e7552cd5600c085d327c308317894718f9ac825ec669895ac19a45c41 PATCHES osqp.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" OSQP_BUILD_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" OSQP_BUILD_SHARED_LIB) vcpkg_list(SET options) if(NOT (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS)) list(APPEND options "-DOSQP_ENABLE_INTERRUPT=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DOSQP_BUILD_SHARED_LIB=${OSQP_BUILD_SHARED_LIB} -DOSQP_BUILD_STATIC_LIB=${OSQP_BUILD_STATIC_LIB} -DOSQP_BUILD_DEMO_EXE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/osqp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/osqp/usage ================================================ osqp provides CMake targets: find_package(osqp CONFIG REQUIRED) target_link_libraries(main PRIVATE $,osqp::osqp,osqp::osqpstatic>) ================================================ FILE: ports/osqp/vcpkg.json ================================================ { "name": "osqp", "version": "1.0.0", "port-version": 1, "description": "The Operator Splitting QP Solver", "homepage": "https://osqp.org/", "license": "Apache-2.0", "dependencies": [ { "name": "qdldl", "version>=": "0.1.9" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/osqp-eigen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "gbionics/osqp-eigen" REF "v${VERSION}" SHA512 89f3e83dbaf925f7690c11a553c402c3cadda2d33c3f94f25096b11708f9f8753a3f4ef64d632c553399e95467e887fc37972be94fcad74c63de989ad3a1dde4 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/OsqpEigen" PACKAGE_NAME "osqpeigen") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/osqp-eigen/vcpkg.json ================================================ { "name": "osqp-eigen", "version": "0.11.0", "port-version": 1, "description": "Simple Eigen-C++ wrapper for OSQP library", "homepage": "https://gbionics.github.io/osqp-eigen/", "license": "BSD-3-Clause-Clear", "dependencies": [ "eigen3", { "name": "osqp", "version>=": "1.0.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/otl/portfile.cmake ================================================ set(OTL_VERSION 40497) vcpkg_download_distfile(ARCHIVE URLS "http://otl.sourceforge.net/otlv4_${OTL_VERSION}.zip" FILENAME "otlv4_${OTL_VERSION}.zip" SHA512 1771ff05900c6034ef9d9c30463b9b2490a0510731b79424624f4821631fac93c65545c6a6cfb46fe844d6023c89af4391bd340411ca52c11e5bac081914577f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) file(INSTALL "${SOURCE_PATH}/otlv${OTL_VERSION}.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}" RENAME otlv4.h) file(READ "${SOURCE_PATH}/otlv${OTL_VERSION}.h" copyright_contents) string(FIND "${copyright_contents}" "#ifndef OTL_H" start_of_source) if(start_of_source EQUAL "-1") message(FATAL_ERROR "Could not find start of source; the header file has changed in a way that we cannot get the license text.") endif() string(SUBSTRING "${copyright_contents}" 0 "${start_of_source}" copyright_contents) string(REGEX REPLACE "// ?" "" copyright_contents "${copyright_contents}") string(REGEX REPLACE "=+\n" "" copyright_contents "${copyright_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${copyright_contents}" ) ================================================ FILE: ports/otl/vcpkg.json ================================================ { "name": "otl", "version": "4.0.497", "description": "Oracle, Odbc and DB2-CLI Template Library", "homepage": "https://otl.sourceforge.net/", "license": "ISC" } ================================================ FILE: ports/outcome/files-do-not-exist.patch ================================================ diff --git a/cmake/headers.cmake b/cmake/headers.cmake index 734e7d0..5d0f646 100644 --- a/cmake/headers.cmake +++ b/cmake/headers.cmake @@ -25,32 +25,6 @@ set(outcome_HEADERS "include/outcome/detail/version.hpp" "include/outcome/experimental/coroutine_support.hpp" "include/outcome/experimental/result.h" - "include/outcome/experimental/status-code/include/status-code/boost_error_code.hpp" - "include/outcome/experimental/status-code/include/status-code/com_code.hpp" - "include/outcome/experimental/status-code/include/status-code/config.hpp" - "include/outcome/experimental/status-code/include/status-code/detail/nt_code_to_generic_code.ipp" - "include/outcome/experimental/status-code/include/status-code/detail/nt_code_to_win32_code.ipp" - "include/outcome/experimental/status-code/include/status-code/detail/win32_code_to_generic_code.ipp" - "include/outcome/experimental/status-code/include/status-code/error.hpp" - "include/outcome/experimental/status-code/include/status-code/errored_status_code.hpp" - "include/outcome/experimental/status-code/include/status-code/generic_code.hpp" - "include/outcome/experimental/status-code/include/status-code/getaddrinfo_code.hpp" - "include/outcome/experimental/status-code/include/status-code/http_status_code.hpp" - "include/outcome/experimental/status-code/include/status-code/iostream_support.hpp" - "include/outcome/experimental/status-code/include/status-code/nested_status_code.hpp" - "include/outcome/experimental/status-code/include/status-code/nt_code.hpp" - "include/outcome/experimental/status-code/include/status-code/posix_code.hpp" - "include/outcome/experimental/status-code/include/status-code/quick_status_code_from_enum.hpp" - "include/outcome/experimental/status-code/include/status-code/result.hpp" - "include/outcome/experimental/status-code/include/status-code/status_code.hpp" - "include/outcome/experimental/status-code/include/status-code/status_code_domain.hpp" - "include/outcome/experimental/status-code/include/status-code/status_error.hpp" - "include/outcome/experimental/status-code/include/status-code/std_error_code.hpp" - "include/outcome/experimental/status-code/include/status-code/system_code.hpp" - "include/outcome/experimental/status-code/include/status-code/system_code_from_exception.hpp" - "include/outcome/experimental/status-code/include/status-code/system_error2.hpp" - "include/outcome/experimental/status-code/include/status-code/win32_code.hpp" - "include/outcome/experimental/status-code/single-header/system_error2.hpp" "include/outcome/experimental/status_outcome.hpp" "include/outcome/experimental/status_result.hpp" "include/outcome/iostream_support.hpp" ================================================ FILE: ports/outcome/fix-status-code-path.patch ================================================ diff --git a/include/outcome/experimental/result.h b/include/outcome/experimental/result.h index b912a55..1370e9e 100644 --- a/include/outcome/experimental/result.h +++ b/include/outcome/experimental/result.h @@ -278,14 +278,14 @@ extern "C" } #include "../config.hpp" -#include "status-code/include/status-code/config.hpp" -#include "status-code/include/status-code/system_code.hpp" +#include +#include #include "status_result.hpp" -#include "status-code/include/status-code/posix_code.hpp" +#include #ifdef _WIN32 -#include "status-code/include/status-code/win32_code.hpp" +#include #endif #include ================================================ FILE: ports/outcome/portfile.cmake ================================================ # Outcome is composed of other third party libraries: # Outcome # <= status-code # <= quickcpplib # <= byte-lite # <= gsl-lite # <= Optional # # byte-lite and gsl-lite are in vcpkg, but may not be versions # known to be compatible with Outcome. It has occurred in the # past that newer versions were severely broken with Outcome. # # One can fetch an 'all sources' tarball from # https://github.com/ned14/outcome/releases which contains # the exact copy of those third party libraries known to # have passed Outcome's CI process. if ("polyfill-cxx20" IN_LIST FEATURES) message(WARNING [=[ Outcome depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's and Outcome's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against. ]=]) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ned14/outcome REF v${VERSION} SHA512 41d169d625ff9374e7eef228384cd80b6881fc46ed580b259995fa1c70d1add260afc6cf409d1e43b9ab30583781dcd833a21186a3d7f1fe42fa7211ab1c2375 HEAD_REF develop PATCHES fix-status-code-path.patch files-do-not-exist.patch ) # Because outcome's deployed files are header-only, the debug build is not necessary set(VCPKG_BUILD_TYPE release) # Use Outcome's own build process, skipping examples and tests. vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Doutcome_IS_DEPENDENCY=ON "-DCMAKE_PREFIX_PATH=${CURRENT_INSTALLED_DIR}" -DOUTCOME_BUNDLE_EMBEDDED_STATUS_CODE=OFF -DOUTCOME_ENABLE_DEPENDENCY_SMOKE_TEST=ON # Leave this always on to test everything compiles -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DCXX_CONCEPTS_FLAGS= ) if("run-tests" IN_LIST FEATURES) vcpkg_cmake_build(TARGET test) endif() vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/outcome) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") ================================================ FILE: ports/outcome/usage ================================================ The package outcome provides CMake targets: find_package(outcome CONFIG REQUIRED) target_link_libraries(main PUBLIC outcome::hl) ================================================ FILE: ports/outcome/vcpkg.json ================================================ { "name": "outcome", "version": "2.2.14", "maintainers": [ "Niall Douglas ", "Henrik Gaßmann " ], "description": "Provides very lightweight outcome and result (non-Boost edition)", "homepage": "https://github.com/ned14/outcome", "license": "Apache-2.0 OR BSL-1.0", "supports": "!uwp", "dependencies": [ "ned14-internal-quickcpplib", "status-code", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "polyfill-cxx17": { "description": "Polyfill C++17 entities", "dependencies": [ { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ "polyfill-cxx17" ] }, { "name": "outcome", "default-features": false, "features": [ "polyfill-cxx20" ] } ] }, "polyfill-cxx20": { "description": "Polyfill C++20 entities", "dependencies": [ { "name": "ned14-internal-quickcpplib", "default-features": false, "features": [ "polyfill-cxx20" ] } ] }, "run-tests": { "description": "Build and run the dependency validation tests" } } } ================================================ FILE: ports/p-ranav-csv/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/csv REF 13e04e5b31b585855c7d7e7f3c65e47ae863569b SHA512 ddcdc7af68a0dabb2b7e15822f5900461b9f424ff5e0ac6cafd2454c2f21ca97785ef09ddb805a92e2452fe14c14167c762a822a8af6c5b86446f67e7f3f71bd HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCSV_BUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/p-ranav-csv/vcpkg.json ================================================ { "name": "p-ranav-csv", "version-date": "2019-07-11", "port-version": 3, "description": "[deprecated] CSV for modern C++", "homepage": "https://github.com/p-ranav/csv", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/p-ranav-csv2/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/csv2 REF a20992f7a1b75215609037c4cc66f690e8691aab SHA512 4459f34d3d3d2c256743d93dd9c66ac584366120e3c8829173e6f047bf7dce2b08284c82af360a274dea0d43f5d6e1c84bcae51bf4de97751cf41a2fd48cb62b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCSV2_BUILD_TESTS=OFF -DCSV2_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/licenses") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/LICENSE.mio" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/p-ranav-csv2/vcpkg.json ================================================ { "name": "p-ranav-csv2", "version-date": "2020-12-14", "port-version": 4, "description": "CSV for modern C++", "homepage": "https://github.com/p-ranav/csv2", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/p-ranav-glob/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/glob REF "v${VERSION}" SHA512 2213c416d40dcd3a9e03c64a8d24d24d3d3c78847481efe4f10b26cd63b983a03e5ec5ea77dc0a0461a832793927e0bf237b7a47088fe99dafbb83aa482d2fe8 HEAD_REF master PATCHES remove_cpm.patch ) vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF v1.3 SHA512 a33ffd902d8e66f3a5a8304fd52fa4af1f74094877141b067c16ed022c8f40306ad7d334e1e1f9c4ca266a80468e107eb4198c78bafd3481a3e81aa178a3b723 HEAD_REF master ) configure_file( "${PACKAGE_PROJECT_PATH}/CMakeLists.txt" "${SOURCE_PATH}/PackageProject.cmake" COPYONLY ) configure_file( "${PACKAGE_PROJECT_PATH}/Config.cmake.in" "${SOURCE_PATH}/Config.cmake.in" COPYONLY ) configure_file( "${PACKAGE_PROJECT_PATH}/version.h.in" "${SOURCE_PATH}/version.h.in" COPYONLY ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Glob-1.0" PACKAGE_NAME "Glob") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/p-ranav-glob/remove_cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2549fb6..7de93f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,14 +21,9 @@ endif() # ---- Add dependencies via CPM ---- # see https://github.com/TheLartians/CPM.cmake for more info -include(cmake/CPM.cmake) # PackageProject.cmake will be used to make our target installable -CPMAddPackage( - NAME PackageProject.cmake - GITHUB_REPOSITORY TheLartians/PackageProject.cmake - VERSION 1.3 -) +include(PackageProject.cmake) # ---- Add source files ---- ================================================ FILE: ports/p-ranav-glob/usage ================================================ The package glob provides CMake targets: find_package(Glob CONFIG REQUIRED) target_link_libraries(main PRIVATE Glob) ================================================ FILE: ports/p-ranav-glob/vcpkg.json ================================================ { "name": "p-ranav-glob", "version": "0.0.1", "description": "Glob for C++17 ", "homepage": "https://github.com/p-ranav/glob", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pagmo2/0001-doxygen.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 34bad69..dfb942d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -398,8 +398,8 @@ endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.hpp.in" "${CMAKE_CURRENT_BINARY_DIR}/include/pagmo/config.hpp" @ONLY) # Configure the doc files. -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py" @ONLY) +# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/doxygen/Doxyfile" @ONLY) +# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py.in" "${CMAKE_CURRENT_SOURCE_DIR}/doc/sphinx/conf.py" @ONLY) # This is just a simple counter variable, internal use only. set(_PAGMO_TEST_NUM "0") ================================================ FILE: ports/pagmo2/0002-find-tbb.patch ================================================ diff --git a/pagmo-config.cmake.in b/pagmo-config.cmake.in index 9553fc8..cb5e90b 100644 --- a/pagmo-config.cmake.in +++ b/pagmo-config.cmake.in @@ -8,6 +8,8 @@ set(THREADS_PREFER_PTHREAD_FLAG YES) find_package(Threads REQUIRED) unset(THREADS_PREFER_PTHREAD_FLAG) include(PagmoFindBoost) +include(CMakeFindDependencyMacro) +find_dependency(TBB CONFIG) @_PAGMO_CONFIG_OPTIONAL_DEPS@ # Restore original module path. set(CMAKE_MODULE_PATH "${_PAGMO_CONFIG_OLD_MODULE_PATH}") ================================================ FILE: ports/pagmo2/0003-disable-werror.patch ================================================ diff --git a/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake b/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake index 7d7aa1b..81c8bf6 100644 --- a/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake +++ b/cmake_modules/yacma/YACMACompilerLinkerSettings.cmake @@ -95,7 +95,6 @@ if(NOT _YACMACompilerLinkerSettingsRun) # NOTE: enable unconditionally, as it seems like the CMake # machinery for detecting this fails. Perhaps the source code # used for checking the flag emits warnings? - list(APPEND _YACMA_CXX_FLAGS_DEBUG "-Werror") # New warnings in clang 8. # NOTE: a few issues with macros here, let's disable for now. # _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(-Wextra-semi-stmt) @@ -180,7 +179,6 @@ if(NOT _YACMACompilerLinkerSettingsRun) # Enable higher warning level than usual. _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(/W4) # Treat warnings as errors. - _YACMA_CHECK_ENABLE_DEBUG_CXX_FLAG(/WX) endif() # Set the cache variables. ================================================ FILE: ports/pagmo2/0004-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e422554..984ae24 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,7 +163,7 @@ endif() # Eigen3 if(PAGMO_WITH_EIGEN3) - find_package(Eigen3 3.3 REQUIRED NO_MODULE) + find_package(Eigen3 3.3...5 REQUIRED NO_MODULE) endif() # NLopt @@ -456,7 +456,7 @@ install(TARGETS pagmo # Setup of the optional deps. set(_PAGMO_CONFIG_OPTIONAL_DEPS) if(PAGMO_WITH_EIGEN3) - set(_PAGMO_CONFIG_OPTIONAL_DEPS "${_PAGMO_CONFIG_OPTIONAL_DEPS}find_package(Eigen3 3.3 REQUIRED NO_MODULE)\n") + set(_PAGMO_CONFIG_OPTIONAL_DEPS "${_PAGMO_CONFIG_OPTIONAL_DEPS}find_package(Eigen3 3.3...5 REQUIRED NO_MODULE)\n") endif() if(PAGMO_WITH_NLOPT) set(_PAGMO_CONFIG_OPTIONAL_DEPS "${_PAGMO_CONFIG_OPTIONAL_DEPS}find_package(NLopt 2.6 REQUIRED NO_MODULE)\n") ================================================ FILE: ports/pagmo2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO esa/pagmo2 REF "v${VERSION}" SHA512 9ebe7f63b907607ea5762e56a884be62630efaca3f45d9ba9ad85ca1818d60d09864422bd075c2653aea1a14609fe9ad6520297aee5a00e07fa88df45872cef9 HEAD_REF master PATCHES 0001-doxygen.patch 0002-find-tbb.patch 0003-disable-werror.patch 0004-support-eigen3-5.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES nlopt PAGMO_WITH_NLOPT ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAGMO_BUILD_STATIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPAGMO_BUILD_TESTS=OFF -DPAGMO_BUILD_BENCHMARKS=OFF -DPAGMO_BUILD_TUTORIALS=OFF -DPAGMO_WITH_EIGEN3=ON -DPAGMO_BUILD_STATIC_LIBRARY=${PAGMO_BUILD_STATIC_LIBRARY} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/pagmo") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.lgpl3" "${SOURCE_PATH}/COPYING.gpl3") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/pagmo2/usage ================================================ pagmo2 provides CMake targets: find_package(pagmo CONFIG REQUIRED) target_link_libraries(main PRIVATE Pagmo::pagmo) ================================================ FILE: ports/pagmo2/vcpkg.json ================================================ { "name": "pagmo2", "version": "2.19.1", "port-version": 1, "description": "A C++ platform to perform parallel computations of optimization tasks (global and local) via the asynchronous generalized island model.", "homepage": "https://esa.github.io/pagmo2/", "license": "GPL-3.0-or-later OR LGPL-3.0-or-later", "supports": "!xbox", "dependencies": [ "boost-any", "boost-graph", "boost-safe-numerics", "boost-serialization", "eigen3", "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "nlopt": { "description": "Enable the NLopt wrappers", "dependencies": [ "nlopt" ] } } } ================================================ FILE: ports/paho-mqtt/fix-ODR-libuuid-linux.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 16382c1..7e14ab3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -98,6 +98,12 @@ endif() if(PAHO_BUILD_STATIC) add_library(common_obj_static OBJECT ${common_src}) set_target_properties(common_obj_static PROPERTIES POSITION_INDEPENDENT_CODE ON) + IF(WIN32 OR APPLE) + ELSE() + find_package(unofficial-libuuid CONFIG REQUIRED) + target_link_libraries(common_obj_static PRIVATE unofficial::UUID::uuid) + target_compile_definitions(common_obj_static PUBLIC LIBUUID) + ENDIF() target_compile_definitions(common_obj_static PRIVATE PAHO_MQTT_STATIC=1) endif() @@ -317,6 +323,12 @@ if(PAHO_WITH_SSL OR PAHO_WITH_LIBRESSL) target_include_directories(common_ssl_obj_static PUBLIC ${SSL_INCLUDE_DIR}) set_property(TARGET common_ssl_obj_static PROPERTY POSITION_INDEPENDENT_CODE ON) + IF(WIN32 OR APPLE) + ELSE() + find_package(unofficial-libuuid CONFIG REQUIRED) + target_link_libraries(common_ssl_obj_static PRIVATE unofficial::UUID::uuid) + target_compile_definitions(common_ssl_obj_static PUBLIC LIBUUID) + ENDIF() target_compile_definitions(common_ssl_obj_static PRIVATE OPENSSL=1 PAHO_MQTT_STATIC=1) add_library(paho-mqtt3cs-static STATIC ================================================ FILE: ports/paho-mqtt/fix-unresolvedsymbol-arm.patch ================================================ diff --git a/src/SHA1.c b/src/SHA1.c index 5c4c349..59fd5c2 100644 --- a/src/SHA1.c +++ b/src/SHA1.c @@ -18,7 +18,7 @@ #if !defined(OPENSSL) #if defined(_WIN32) -#pragma comment(lib, "crypt32.lib") +#pragma comment(lib, "Advapi32.lib") int SHA1_Init(SHA_CTX *c) { ================================================ FILE: ports/paho-mqtt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse/paho.mqtt.c REF "v${VERSION}" SHA512 a69cb4fdd9c56d7ed7b2275610b680bd9830d9e5b5d5151edf30db052da234b0ccce93e6b9e687be3f515699b79721d9282b5a77bf7a00e1719e5264e0ad9a4a HEAD_REF master PATCHES fix-unresolvedsymbol-arm.patch fix-ODR-libuuid-linux.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAHO_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PAHO_BUILD_DYNAMIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPAHO_WITH_SSL=TRUE -DPAHO_HIGH_PERFORMANCE=TRUE -DPAHO_BUILD_SHARED=${PAHO_BUILD_DYNAMIC} -DPAHO_BUILD_STATIC=${PAHO_BUILD_STATIC} -DPAHO_ENABLE_TESTING=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME eclipse-paho-mqtt-c CONFIG_PATH lib/cmake/eclipse-paho-mqtt-c) vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_copy_tools(TOOL_NAMES MQTTVersion AUTO_CLEAN) endif() if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/eclipse-paho-mqtt-c/eclipse-paho-mqtt-cConfig.cmake" [[# Generated by CMake]] [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(OpenSSL)]] ) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/eclipse-paho-mqtt-c/eclipse-paho-mqtt-cConfig.cmake" [[# Generated by CMake]] [[# Generated by CMake include(CMakeFindDependencyMacro) find_dependency(OpenSSL) find_dependency(unofficial-libuuid CONFIG)]] ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/paho-mqtt/vcpkg.json ================================================ { "name": "paho-mqtt", "version": "1.3.16", "description": "Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existing, and emerging applications for the Internet of Things", "homepage": "https://github.com/eclipse/paho.mqtt.c", "license": "EPL-2.0", "dependencies": [ { "name": "libuuid", "platform": "!osx & !windows" }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/paho-mqttpp3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse/paho.mqtt.cpp REF "v${VERSION}" SHA512 045416f65c056aad3a03a960a92702c8a5d180667cce6f68b366395547b5f913471b1a41ffcd5750f21ebf5da1ae8addaec7803192f66b75d89f1d627e27aea5 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PAHO_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PAHO_BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "ssl" PAHO_WITH_SSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPAHO_BUILD_STATIC=${PAHO_BUILD_STATIC} -DPAHO_BUILD_SHARED=${PAHO_BUILD_SHARED} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME pahomqttcpp CONFIG_PATH "lib/cmake/PahoMqttCpp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/about.html") ================================================ FILE: ports/paho-mqttpp3/vcpkg.json ================================================ { "name": "paho-mqttpp3", "version": "1.6.0", "description": "Paho project provides open-source C++ wrapper for Paho C library", "homepage": "https://github.com/eclipse/paho.mqtt.cpp", "license": "EPL-1.0", "dependencies": [ "paho-mqtt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ssl" ], "features": { "ssl": { "description": "Build with SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/palsigslot/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO palacaze/sigslot REF "v${VERSION}" SHA512 fb08cec33cc126e0973179068ce2d1c45f36ab85339849c1a5cac746147f7cee244702fad5fe5f38fc8e73f0fce62f81b7642fba0ff3edfd8c22089bc9ddb1db HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSIGSLOT_COMPILE_EXAMPLES=OFF -DSIGSLOT_COMPILE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME PalSigslot CONFIG_PATH lib/cmake/PalSigslot) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/palsigslot/vcpkg.json ================================================ { "name": "palsigslot", "version": "1.2.3", "description": "A header-only, thread safe implementation of signal-slots for C++.", "homepage": "https://github.com/palacaze/sigslot", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pango/portfile.cmake ================================================ string(REGEX MATCH "^([0-9]*[.][0-9]*)" VERSION_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(SOURCE_ARCHIVE URLS "https://download.gnome.org/sources/pango/${VERSION_MAJOR_MINOR}/pango-${VERSION}.tar.xz" "https://www.mirrorservice.org/sites/ftp.gnome.org/pub/GNOME/sources/${PORT}/${VERSION_MAJOR_MINOR}/${PORT}-${VERSION}.tar.xz" FILENAME "pango-${VERSION}.tar.xz" SHA512 e3d251e0c2d5cb7f2e9d26e675aa2fae0c3cedce9e73b77f92a4abbeff55eaa819811e4c064ca036d3964a3ee4592f596ebfa7c0a760189b9d8c38a5f3a4ea3a ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${SOURCE_ARCHIVE}" PATCHES relax-gi-requirement.diff ) if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Ddocumentation=false -Dman-pages=false -Dbuild-testsuite=false -Dbuild-examples=false -Dfontconfig=enabled # Build with FontConfig support. -Dsysprof=disabled # include tracing support for sysprof -Dlibthai=disabled # Build with libthai support -Dcairo=enabled # Build with cairo support -Dxft=disabled # Build with xft support -Dfreetype=enabled # Build with freetype support ${OPTIONS} OPTIONS_RELEASE ${OPTIONS_RELEASE} OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES "glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" "g-ir-compiler='${GIR_COMPILER}'" "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES pango-view pango-list pango-segmentation AUTO_CLEAN) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/pango/relax-gi-requirement.diff ================================================ diff --git a/meson.build b/meson.build index b8098c1..10033c8 100644 --- a/meson.build +++ b/meson.build @@ -209,7 +209,7 @@ glib_major_req = 2 glib_minor_req = 82 glib_req = '>= @0@.@1@'.format(glib_major_req, glib_minor_req) -gi_req = '>= 1.83.2' +gi_req = '>= 1.82.0' fribidi_req = '>= 1.0.6' libthai_req = '>= 0.1.9' harfbuzz_req = '>= 8.4.0' diff --git a/pango/meson.build b/pango/meson.build index f3c6d70..674b702 100644 --- a/pango/meson.build +++ b/pango/meson.build @@ -132,7 +132,6 @@ pango_dep_sources = [pango_enum_h] if build_gir gir_args = [ '--quiet', - '--doc-format=gi-docgen', ] harfbuzz_gobject_dep = dependency('harfbuzz-gobject', version: harfbuzz_req, ================================================ FILE: ports/pango/vcpkg.json ================================================ { "name": "pango", "version": "1.57.0", "description": "Text and font handling library.", "homepage": "https://ftp.gnome.org/pub/GNOME/sources/pango/", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "cairo", "features": [ "gobject" ] }, "fontconfig", "freetype", "fribidi", { "name": "gettext", "host": true, "default-features": false, "features": [ "tools" ] }, "gettext-libintl", "glib", { "name": "glib", "host": true }, "harfbuzz", { "name": "harfbuzz", "features": [ "coretext" ], "platform": "osx" }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "introspection": { "description": "Build with introspection", "supports": "!static", "dependencies": [ "gobject-introspection", { "name": "harfbuzz", "default-features": false, "features": [ "introspection" ] } ] } } } ================================================ FILE: ports/pangolin/devendor-palsigslot.patch ================================================ diff --git a/cmake/PangolinConfig.cmake.in b/cmake/PangolinConfig.cmake.in index 3ceea9d..e5bf9f0 100644 --- a/cmake/PangolinConfig.cmake.in +++ b/cmake/PangolinConfig.cmake.in @@ -12,6 +12,7 @@ SET( Pangolin_LIBRARY "${Pangolin_LIBRARIES}" ) include(CMakeFindDependencyMacro) find_dependency(Eigen3) +find_dependency(PalSigslot CONFIG) if (UNIX) find_dependency(Threads) diff --git a/components/pango_core/CMakeLists.txt b/components/pango_core/CMakeLists.txt index e1d931b..6c6ad4d 100644 --- a/components/pango_core/CMakeLists.txt +++ b/components/pango_core/CMakeLists.txt @@ -49,6 +49,9 @@ install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/include" DESTINATION ${CMAKE_INSTALL_PREFIX} ) +find_package(PalSigslot CONFIG REQUIRED) +target_link_libraries(${COMPONENT} PUBLIC Pal::Sigslot) + find_package(Threads QUIET) if(Threads_FOUND) target_link_libraries(${COMPONENT} PUBLIC Threads::Threads) ================================================ FILE: ports/pangolin/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stevenlovegrove/Pangolin REF "v${VERSION}" SHA512 d303f0d9f02492e4fe0eb844db4fda563404ba73d1350a5b3ed45745c40022726b27cbd92cd1d0990186d1438ba0d2710fc614028b725f054486741ae30fd490 HEAD_REF master PATCHES devendor-palsigslot.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS examples BUILD_EXAMPLES pybind11 BUILD_PANGOLIN_PYTHON ffmpeg BUILD_PANGOLIN_FFMPEG realsense BUILD_PANGOLIN_REALSENSE2 openni2 BUILD_PANGOLIN_OPENNI2 uvc BUILD_PANGOLIN_LIBUVC png BUILD_PANGOLIN_LIBPNG jpeg BUILD_PANGOLIN_LIBJPEG tiff BUILD_PANGOLIN_LIBTIFF openexr BUILD_PANGOLIN_LIBOPENEXR zstd BUILD_PANGOLIN_ZSTD lz4 BUILD_PANGOLIN_LZ4 ) file(REMOVE "${SOURCE_PATH}/CMakeModules/FindGLEW.cmake") file(REMOVE "${SOURCE_PATH}/CMakeModules/FindFFMPEG.cmake") file(REMOVE_RECURSE "${SOURCE_PATH}/components/pango_core/include/sigslot") string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" MSVC_USE_STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_PANGOLIN_PLEORA=OFF -DBUILD_PANGOLIN_TELICAM=OFF -DBUILD_PANGOLIN_DEPTHSENSE=OFF -DBUILD_PANGOLIN_OPENNI=OFF -DBUILD_PANGOLIN_UVC_MEDIAFOUNDATION=OFF -DBUILD_PANGOLIN_REALSENSE=OFF -DBUILD_PANGOLIN_V4L=OFF -DBUILD_PANGOLIN_LIBDC1394=OFF -DBUILD_FOR_GLES_2=OFF -DBUILD_PANGOLIN_LIBRAW=OFF -DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT} MAYBE_UNUSED_VARIABLES MSVC_USE_STATIC_CRT BUILD_FOR_GLES_2 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Pangolin) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinConfig.cmake" "Pangolin_CMAKEMODULES ${SOURCE_PATH}/" "Pangolin_CMAKEMODULES \${CMAKE_CURRENT_LIST_DIR}/") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES Plotter VideoConvert VideoJsonPrint VideoJsonTransform VideoViewer AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Put the license file where vcpkg expects it file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") ================================================ FILE: ports/pangolin/usage ================================================ pangolin provides CMake targets: find_package(Pangolin CONFIG REQUIRED) target_link_libraries(main PRIVATE ${Pangolin_LIBRARIES}) ================================================ FILE: ports/pangolin/vcpkg.json ================================================ { "name": "pangolin", "version": "0.9.4", "description": "Lightweight GUI Library", "homepage": "https://github.com/stevenlovegrove/Pangolin", "license": "MIT", "supports": "!uwp", "dependencies": [ "eigen3", "glew", "libepoxy", "palsigslot", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ffmpeg", "jpeg", "png" ], "features": { "eigen": { "description": "Unused option left for backwards compatibility with older versions" }, "examples": { "description": "Build Examples" }, "ffmpeg": { "description": "Build support for ffmpeg video input", "dependencies": [ { "name": "ffmpeg", "features": [ "avformat" ] } ] }, "gui": { "description": "Unused option left for backwards compatibility with older versions" }, "jpeg": { "description": "Build support for libjpeg image input", "dependencies": [ "libjpeg-turbo" ] }, "lz4": { "description": "Build support for liblz4 compression", "dependencies": [ "lz4" ] }, "module": { "description": "Unused option left for backwards compatibility with older versions" }, "openexr": { "description": "Build support for libopenexr image input", "dependencies": [ "openexr" ] }, "openni2": { "description": "Build support for OpenNI2 video input", "dependencies": [ "openni2" ] }, "png": { "description": "Build support for libpng image input", "dependencies": [ "libpng" ] }, "pybind11": { "description": "Python wrapper for Pangolin", "dependencies": [ "pybind11", "python3" ] }, "realsense": { "description": "Build support for LibRealSense2 video input", "dependencies": [ "realsense2" ] }, "tiff": { "description": "Build support for libtiff image input", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "tools": { "description": "Build Tools", "dependencies": [ { "name": "pangolin", "default-features": false } ] }, "uvc": { "description": "Build support for MediaFoundation UVC input", "dependencies": [ "libuvc" ] }, "vars": { "description": "Unused option left for backwards compatibility with older versions" }, "video": { "description": "Unused option left for backwards compatibility with older versions" }, "zstd": { "description": "Build support for libzstd compression", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/pangomm/portfile.cmake ================================================ string(REGEX REPLACE "\\.[0-9]+$" "" MAJOR_MINOR ${VERSION}) # Keep distfile, don't use GitLab! vcpkg_download_distfile(ARCHIVE URLS "https://ftp.gnome.org/pub/GNOME/sources/pangomm/${MAJOR_MINOR}/pangomm-${VERSION}.tar.xz" FILENAME "pangomm-${VERSION}.tar.xz" SHA512 3000126cdf538f43c131a186999fd39d81ec471f5770d8dfd721ff84cb3f5ad44d17cdcc732299ee9d9f34f2dd1279959cf6e1b863c3a0afc32e49b453db782b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dmsvc14x-parallel-installable=false -Dbuild-documentation=false ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/pangomm/vcpkg.json ================================================ { "name": "pangomm", "version": "2.56.1", "port-version": 1, "description": "pangomm is the official C++ interface for the Pango font layout library. See, for instance, the Pango::Layout class.", "homepage": "https://gitlab.gnome.org/GNOME/pangomm", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ "cairo", "cairomm", "fontconfig", "freetype", "gettext", "glib", { "name": "glib", "host": true }, "glibmm", "harfbuzz", "pango", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/parallel-hashmap/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO greg7mdp/parallel-hashmap REF "v${VERSION}" SHA512 edd5ff6eb492bf0b34fcbb6594d3d07256c9498b677a3d8b41fd14329d7149f0fc11c697591447e4ea14e83268d98e129c34dfb11c87401c3cee35aaa016fc6e HEAD_REF master ) # Use greg7mdp/parallel-hashmap's own build process, skipping examples and tests vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPHMAP_BUILD_TESTS=OFF -DPHMAP_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() # Delete redundant directories file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/share/doc) file(COPY ${SOURCE_PATH}/phmap.natvis DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Put the licence file where vcpkg expects it file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/parallel-hashmap/vcpkg.json ================================================ { "name": "parallel-hashmap", "version": "2.0.0", "description": "A header-only, very fast and memory-friendly family of C++ hash map & btree containers.", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/parallelstl/fix-cmakelist.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 878b212..caa3cba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ add_library(pstl::ParallelSTL ALIAS ParallelSTL) if (PARALLELSTL_USE_PARALLEL_POLICIES) message(STATUS "Using Parallel Policies") if (PARALLELSTL_BACKEND STREQUAL "tbb") - find_package(TBB 2018 REQUIRED tbb OPTIONAL_COMPONENTS tbbmalloc) + find_package(TBB CONFIG REQUIRED tbb OPTIONAL_COMPONENTS tbbmalloc) message(STATUS "Parallel STL uses TBB ${TBB_VERSION} (interface version: ${TBB_INTERFACE_VERSION})") target_link_libraries(ParallelSTL INTERFACE TBB::tbb) else() @@ -64,8 +64,7 @@ target_include_directories(ParallelSTL INTERFACE $ $ - $ - $) + $) target_compile_features(ParallelSTL INTERFACE @@ -100,6 +99,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ParallelSTLConfig.cmake" DESTINATION lib/cmake/ParallelSTL) install(DIRECTORY include/pstl DESTINATION include) +file(GLOB STDLIB_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/stdlib/pstl/*) +install(FILES ${STDLIB_HEADERS} DESTINATION include/pstl) add_custom_target(install-pstl COMMAND "${CMAKE_COMMAND}" -P "${PROJECT_BINARY_DIR}/cmake_install.cmake" -DCOMPONENT=ParallelSTL) ================================================ FILE: ports/parallelstl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/parallelstl REF 0241743d73bb405b16d9c4a24b693e4533dc34a7 # 20200330 SHA512 cd2f1b60639e9da35a722bdef0bc6420ddca064e3bff979d8a6ea591fb43865b7614c811bced642fd5ff1fab659da1dfaa248dc2b321db7f27d0e74544a2f21e HEAD_REF master PATCHES fix-cmakelist.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPARALLELSTL_USE_PARALLEL_POLICIES=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ParallelSTL) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/parallelstl/vcpkg.json ================================================ { "name": "parallelstl", "version": "20200330", "port-version": 3, "description": "Parallel STL is an implementation of the C++ standard library algorithms with support for execution policies, as specified in ISO/IEC 14882:2017 standard, commonly called C++17.", "homepage": "https://github.com/intel/parallelstl", "dependencies": [ "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/paraview/add-tools-option.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b33b25..10cadda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -730,7 +730,10 @@ if (PARAVIEW_ENABLE_WEB) @ONLY) endif () +option(PARAVIEW_BUILD_TOOLS "Build paraview tools" OFF) +if (PARAVIEW_BUILD_TOOLS) add_subdirectory(Clients) +endif() if (PARAVIEW_USE_PYTHON) add_subdirectory(Wrapping/Python) ================================================ FILE: ports/paraview/explicit_int_cast.patch ================================================ diff --git a/pqAbstractItemViewEventTranslator.cxx b/pqAbstractItemViewEventTranslator.cxx index 07f7b42071..859a94fd2a 100644 --- a/pqAbstractItemViewEventTranslator.cxx +++ b/pqAbstractItemViewEventTranslator.cxx @@ -118,8 +118,8 @@ bool pqAbstractItemViewEventTranslator::translateEvent(QObject* Object, QEvent* QString info = QString("%1,%2,%3,%4,%5,%6") .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers()) + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers())) .arg(relPt.x()) .arg(relPt.y()) .arg(idxStr); diff --git a/pqBasicWidgetEventTranslator.cxx b/pqBasicWidgetEventTranslator.cxx index 0421853f4e..d58db24546 100644 --- a/pqBasicWidgetEventTranslator.cxx +++ b/pqBasicWidgetEventTranslator.cxx @@ -78,8 +78,8 @@ bool pqBasicWidgetEventTranslator::translateEvent( QMouseEvent* mouseEvent = static_cast(event); QString info = QString("%1,%2,%3,%4,%5") .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers()) + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers())) .arg(mouseEvent->x()) .arg(mouseEvent->y()); ================================================ FILE: ports/paraview/explicit_int_cast_2.patch ================================================ diff --git a/Qt/Core/pqFlatTreeViewEventTranslator.cxx b/Qt/Core/pqFlatTreeViewEventTranslator.cxx index 52775c6f0f..3a62c534b9 100644 --- a/Qt/Core/pqFlatTreeViewEventTranslator.cxx +++ b/Qt/Core/pqFlatTreeViewEventTranslator.cxx @@ -73,8 +73,8 @@ bool pqFlatTreeViewEventTranslator::translateEvent(QObject* Object, QEvent* Even QString info = QString("%1,%2,%3,%4,%5,%6") .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers()) + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers())) .arg(relPt.x()) .arg(relPt.y()) .arg(idxStr); diff --git a/Qt/Core/pqQVTKWidgetEventTranslator.cxx b/Qt/Core/pqQVTKWidgetEventTranslator.cxx index e6fffabb12..74a25bd3da 100644 --- a/Qt/Core/pqQVTKWidgetEventTranslator.cxx +++ b/Qt/Core/pqQVTKWidgetEventTranslator.cxx @@ -85,8 +85,8 @@ bool pqQVTKWidgetEventTranslator::translateEvent( .arg(normalized_x) .arg(normalized_y) .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers())); + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers()))); } return true; break; @@ -108,15 +108,15 @@ bool pqQVTKWidgetEventTranslator::translateEvent( .arg(normalized_x) .arg(normalized_y) .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers())); + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers()))); Q_EMIT recordEvent(widget, "mouseRelease", QString("(%1,%2,%3,%4,%5)") .arg(normalized_x) .arg(normalized_y) .arg(mouseEvent->button()) - .arg(mouseEvent->buttons()) - .arg(mouseEvent->modifiers())); + .arg(static_cast(mouseEvent->buttons())) + .arg(static_cast(mouseEvent->modifiers()))); } return true; break; ================================================ FILE: ports/paraview/fix-build.patch ================================================ diff --git a/CMake/vtkModuleWrapClientServer.cmake b/CMake/vtkModuleWrapClientServer.cmake index cba0380cd9..9c8bbc5084 100644 --- a/CMake/vtkModuleWrapClientServer.cmake +++ b/CMake/vtkModuleWrapClientServer.cmake @@ -72,8 +72,8 @@ function (_vtk_module_wrap_client_server_sources module sources classes) "guarantee intended behavior.") endif () endif () - file(GENERATE OUTPUT "compile_definitions_${_vtk_client_server_target_name}" CONTENT "${_vtk_client_server_genex_compile_definitions_all}") - file(GENERATE OUTPUT "include_directories_${_vtk_client_server_target_name}" CONTENT "${_vtk_client_server_genex_include_directories_all}") + file(GENERATE OUTPUT "compile_definitions_${_vtk_client_server_library_name}" CONTENT "${_vtk_client_server_genex_compile_definitions_all}") + file(GENERATE OUTPUT "include_directories_${_vtk_client_server_library_name}" CONTENT "${_vtk_client_server_genex_include_directories_all}") file(GENERATE OUTPUT "${_vtk_client_server_args_file}" CONTENT "$<$:\n-D\'$\'>\n diff --git a/CMakeLists.txt b/CMakeLists.txt index 1be00fb71a..c47cf20d55 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ if (PARAVIEW_USE_EXTERNAL_VTK) "External VTK not found but ParaView requires VTK to function") endif () if (NOT PARAVIEW_BUILD_SHARED_LIBS) - message(FATAL_ERROR + message(WARNING "Static build with external VTK does not currently work.") endif() get_filename_component(vtk_cmake_dir "${VTK_CONFIG}" DIRECTORY) diff --git a/Utilities/PythonInterpreterPath/vtkPVPythonInterpreterPath.cxx b/Utilities/PythonInterpreterPath/vtkPVPythonInterpreterPath.cxx index 06e517964b..fbf9f5c2df 100644 --- a/Utilities/PythonInterpreterPath/vtkPVPythonInterpreterPath.cxx +++ b/Utilities/PythonInterpreterPath/vtkPVPythonInterpreterPath.cxx @@ -13,8 +13,9 @@ extern "C" void vtkPVInitializePythonModules(); void VTKUTILITIESPYTHONINTERPRETERPATH_EXPORT vtkPVPythonInterpreterPath() { - std::string libraryPath = vtkGetLibraryPathForSymbol(vtkPVInitializePythonModules); - vtkPythonInterpreter::SetUserPythonPath( - libraryPath.c_str(), "paraview/__init__.py" /*landmark*/); + // Ignore this for now. Requires a slightly newer VTK version than PV 5.12 uses. + //std::string libraryPath = vtkGetLibraryPathForSymbol(vtkPVInitializePythonModules); + //vtkPythonInterpreter::SetUserPythonPath( + // libraryPath.c_str(), "paraview/__init__.py" /*landmark*/); } } diff --git a/VTKExtensions/Core/vtkCLIOptions.cxx b/VTKExtensions/Core/vtkCLIOptions.cxx --- a/VTKExtensions/Core/vtkCLIOptions.cxx +++ b/VTKExtensions/Core/vtkCLIOptions.cxx @@ -52,9 +52,9 @@ public: // overridden to add a new line before each group. - std::string make_expanded(const CLI::App* sub) const override + std::string make_expanded(const CLI::App* sub, CLI::AppFormatMode mode) const override { - return "\n" + Superclass::make_expanded(sub); + return "\n" + Superclass::make_expanded(sub, mode); } // overridden to ensure good word wrapping for description text. ================================================ FILE: ports/paraview/fix-configure.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b9fd80..94ad133 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -557,7 +557,16 @@ if (PARAVIEW_USE_EXTERNAL_VTK) endforeach() endmacro() search_dependent_targets(${vtk_modules}) - find_package(VTK CONFIG REQUIRED COMPONENTS "${vtk_components}") + + if (PARAVIEW_USE_PYTHON) + get_target_property(vtk_python_modules VTK::vtkpythonmodules "INTERFACE_LINK_LIBRARIES") + list(TRANSFORM vtk_python_modules REPLACE "Python$" "" OUTPUT_VARIABLE vtk_modules_wrapped) + list(TRANSFORM vtk_modules_wrapped REPLACE "^VTK::vtk" "" OUTPUT_VARIABLE vtk_components_wrapped) + list(APPEND vtk_components ${vtk_components_wrapped}) + list(REMOVE_DUPLICATES vtk_components) + endif() + + find_package(VTK CONFIG REQUIRED COMPONENTS "${vtk_components}") if (PARAVIEW_USE_PYTHON) find_package(Python3 3.3 QUIET REQUIRED COMPONENTS Interpreter) set(PYTHON_VERSION_MAJOR "${Python3_VERSION_MAJOR}") diff --git a/Qt/Python/vtk.module b/Qt/Python/vtk.module index f82f076..86dbafd 100644 --- a/Qt/Python/vtk.module +++ b/Qt/Python/vtk.module @@ -12,7 +12,7 @@ GROUPS PARAVIEW_CANONICAL DEPENDS ParaView::pqCore - ParaView::PythonInitializer + #ParaView::PythonInitializer <- Creates a cycle VTK::PythonInterpreter VTK::WrappingPythonCore TEST_LABELS ================================================ FILE: ports/paraview/plugin.patch ================================================ diff --git a/CMake/paraview_plugin.cxx.in b/CMake/paraview_plugin.cxx.in index 26242fd2d3..9ac0038462 100644 --- a/CMake/paraview_plugin.cxx.in +++ b/CMake/paraview_plugin.cxx.in @@ -145,11 +145,12 @@ static void initialize_@_paraview_build_plugin@_plugin_qt_resources() // For static builds, initialize the Qt resources. @_paraview_add_plugin_resources_init@ #endif +} + #if !_paraview_add_plugin_built_shared && _paraview_add_plugin_with_ui // For static builds, initialize the Qt plugin. Q_IMPORT_PLUGIN(@_paraview_build_plugin@Plugin) #endif -} //----------------------------------------------------------------------------- @_paraview_build_plugin@Plugin::@_paraview_build_plugin@Plugin() ================================================ FILE: ports/paraview/portfile.cmake ================================================ set(VERSION_MAJOR_MINOR 5.12) set(plat_feat "") if(VCPKG_TARGET_IS_LINUX) set(plat_feat "tools" VTK_USE_X) # required to build the client endif() if(VCPKG_TARGET_IS_LINUX) set(plat_feat "tools" VTK_USE_COCOA) # required to build the client endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "cuda" PARAVIEW_USE_CUDA #untested; probably only affects internal VTK build so it does nothing here "all_modules" PARAVIEW_BUILD_ALL_MODULES #untested "mpi" PARAVIEW_USE_MPI #untested "vtkm" PARAVIEW_USE_VTKM "python" PARAVIEW_USE_PYTHON "tools" PARAVIEW_BUILD_TOOLS ${plat_feat} ) vcpkg_download_distfile( external_vtk_patch URLS https://gitlab.kitware.com/paraview/paraview/-/merge_requests/6375.diff?full_index=1 FILENAME paraview_external_vtk_pr.diff SHA512 c7760599239334817e9cad33ab7019c2dd0ce6740891e10ec15e1d63605ad73095fd7d48aed5ca8d002d25db356a7a5cf2a37188f0b43a7a9fa4c339e8f42adb ) set(ext_vtk_patch_copy "${CURRENT_BUILDTREES_DIR}/paraview_external_vtk_pr.diff") file(COPY "${external_vtk_patch}" DESTINATION "${CURRENT_BUILDTREES_DIR}" ) # Remove stuff which cannot be patched since it does not exist vcpkg_replace_string("${ext_vtk_patch_copy}" [[ diff --git a/.gitlab/ci/sccache.sh b/.gitlab/ci/sccache.sh index f1897d6f719c3b61b6d4fa317966c007dab2fc23..e88d7c89198696832e5645bfb0e758fd5d92e6af 100755 --- a/.gitlab/ci/sccache.sh +++ b/.gitlab/ci/sccache.sh @@ -37,6 +37,6 @@ $shatool --check sccache.sha256sum mv "$filename" sccache chmod +x sccache -mkdir shortcuts +mkdir -p shortcuts cp ./sccache shortcuts/gcc cp ./sccache shortcuts/g++ ]] "" IGNORE_UNCHANGED ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Kitware/ParaView REF 8751c670e2aac949f17dd701a5a2f13849afafb2 # v5.12.1 SHA512 ed7b7e183c9d1350d8d2feadf7b76bef939bc657f49e5160e2e96e2329642d8ba1c0a8ab7cb58ff068ba21b7adc3f52676b38779e1ecec31b4714184c2364072 HEAD_REF master PATCHES ${ext_vtk_patch_copy} add-tools-option.patch fix-build.patch fix-configure.patch protobuf-version.patch plugin.patch explicit_int_cast_2.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND VisItPatches removedoublesymbols.patch) endif() #The following two dependencies should probably be their own port #but require additional patching in paraview to make it work. #Get VisItBridge Plugin vcpkg_from_gitlab( OUT_SOURCE_PATH VISITIT_SOURCE_PATH GITLAB_URL https://gitlab.kitware.com/ REPO paraview/visitbridge REF 093ea1dfddbb3266554ece823ae8d7dedc66eb3f SHA512 0fd5dd3fbc8e61123dedb8e30b3150109ef855bc398d01ed0defe0c560692c91231ff72568ee6a1840edc21d6ea3c9c164dbeb29b8590315ee5c153a3d77d568 PATCHES ${VisItPatches} ) #VTK_MODULE_USE_EXTERNAL_ParaView_protobuf #NVPipe? #Get QtTesting Plugin vcpkg_from_gitlab( OUT_SOURCE_PATH QTTESTING_SOURCE_PATH GITLAB_URL https://gitlab.kitware.com/ REPO paraview/qttesting REF 375c33053704e2d99dda4d2e1dfc9f6f85b3e73f SHA512 4d42352394017f4a07ed96dea6b5c0caf3bc6b22bbe0c8f5df6d2740cb7b2946e0b04ac7b79b88bc7c4281bb8d48071878f42c41c042de8ef6979818d26490e5 PATCHES explicit_int_cast.patch ) vcpkg_from_gitlab( OUT_SOURCE_PATH ICET_SOURCE_PATH GITLAB_URL https://gitlab.kitware.com/ REPO paraview/IceT REF 32816fe5592de3be664da6f8466a546f221d8532 SHA512 33d5e8f2ecdc20d305d04c23fc3a3121d3c5305ddff7f5b71cee1a2c2183c4b36c9d0bd91e9dba5f2369e237782d7dbcf635d2e1814ccde88570647c890edc9d ) file(COPY "${VISITIT_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/Utilities/VisItBridge") file(COPY "${QTTESTING_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/ThirdParty/QtTesting/vtkqttesting") file(COPY "${ICET_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/ThirdParty/IceT/vtkicet") if("python" IN_LIST FEATURES) # This sections relies on target package python3. set(python_ver "") if(NOT VCPKG_TARGET_IS_WINDOWS) set(python_ver "3") endif() list(APPEND ADDITIONAL_OPTIONS -DPython3_FIND_REGISTRY=NEVER "-DPython3_EXECUTABLE:PATH=${CURRENT_INSTALLED_DIR}/tools/python3/python${python_ver}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "-DPARAVIEW_PYTHON_SITE_PACKAGES_SUFFIX=${PYTHON3_SITE}" # from vcpkg-port-config.cmake -DVTK_MODULE_ENABLE_ParaView_PythonCatalyst:STRING=YES ) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PARAVIEW_BUILD_SHARED_LIBS) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Hitting pdb size limits when building debug paraview so increase it string(APPEND VCPKG_LINKER_FLAGS_DEBUG " /PDBPAGESIZE:8192") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPARAVIEW_USE_FORTRAN=OFF -DPARAVIEW_BUILD_SHARED_LIBS=${PARAVIEW_BUILD_SHARED_LIBS} -DPARAVIEW_PLUGIN_DISABLE_XML_DOCUMENTATION:BOOL=ON -DPARAVIEW_BUILD_WITH_EXTERNAL:BOOL=ON -DPARAVIEW_USE_EXTERNAL_VTK:BOOL=ON -DPARAVIEW_ENABLE_VISITBRIDGE:BOOL=ON -DVTK_MODULE_ENABLE_ParaView_qttesting=YES -DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION:BOOL=OFF -DPARAVIEW_USE_QTHELP:BOOL=OFF # A little bit of help in finding the boost headers "-DBoost_INCLUDE_DIR:PATH=${CURRENT_INSTALLED_DIR}/include" # Workarounds for CMake issues -DHAVE_SYS_TYPES_H=0 ## For some strange reason the test first succeeds and then fails the second time around -DWORDS_BIGENDIAN=0 ## Tests fails in VisItCommon.cmake for some unknown reason this is just a workaround since most systems are little endian. ${ADDITIONAL_OPTIONS} #-DPARAVIEW_ENABLE_FFMPEG:BOOL=OFF ) if(CMAKE_HOST_UNIX) # ParaView runs Qt tools so LD_LIBRARY_PATH must be set correctly for them to find *.so files set(BACKUP_LD_LIBRARY_PATH $ENV{LD_LIBRARY_PATH}) set(ENV{LD_LIBRARY_PATH} "${BACKUP_LD_LIBRARY_PATH}:${CURRENT_INSTALLED_DIR}/lib") endif() vcpkg_cmake_install(ADD_BIN_TO_PATH) # Bin to path required since paraview will use some self build tools if(CMAKE_HOST_UNIX) set(ENV{LD_LIBRARY_PATH} "${BACKUP_LD_LIBRARY_PATH}") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/paraview-${VERSION_MAJOR_MINOR}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # see https://gitlab.kitware.com/paraview/paraview/-/issues/21328 file(REMOVE "${CURRENT_PACKAGES_DIR}/include/paraview-${VERSION_MAJOR_MINOR}/vtkCPConfig.h") set(TOOLVER pv${VERSION_MAJOR_MINOR}) set(TOOLS paraview pvbatch pvdataserver pvpython pvrenderserver pvserver smTestDriver vtkProcessXML vtkWrapClientServer) foreach(tool ${TOOLS}) # Remove debug tools set(filename ${CURRENT_PACKAGES_DIR}/debug/bin/${tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(EXISTS ${filename}) file(REMOVE "${filename}") endif() set(filename ${CURRENT_PACKAGES_DIR}/debug/bin/${tool}-${TOOLVER}${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(EXISTS ${filename}) file(REMOVE "${filename}") endif() set(filename ${CURRENT_PACKAGES_DIR}/debug/bin/${tool}-${TOOLVER}d${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(EXISTS ${filename}) file(REMOVE "${filename}") endif() # Move release tools set(filename ${CURRENT_PACKAGES_DIR}/bin/${tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(EXISTS ${filename}) file(INSTALL "${filename}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${filename}") endif() set(filename ${CURRENT_PACKAGES_DIR}/bin/${tool}-${TOOLVER}${VCPKG_TARGET_EXECUTABLE_SUFFIX}) if(EXISTS ${filename}) file(INSTALL "${filename}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${filename}") endif() endforeach() vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") macro(move_bin_to_lib name) if(EXISTS ${CURRENT_PACKAGES_DIR}/bin/${name}) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${name}" "${CURRENT_PACKAGES_DIR}/lib/${name}") endif() if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin/${name}) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/${name}" "${CURRENT_PACKAGES_DIR}/debug/lib/${name}") endif() endmacro() set(to_move Lib paraview-${VERSION_MAJOR_MINOR} paraview-config) foreach(name ${to_move}) move_bin_to_lib(${name}) endforeach() file(GLOB_RECURSE cmake_files ${CURRENT_PACKAGES_DIR}/share/${PORT}/*.cmake) foreach(cmake_file ${cmake_files}) file(READ "${cmake_file}" _contents) STRING(REPLACE "bin/" "lib/" _contents "${_contents}") file(WRITE "${cmake_file}" "${_contents}") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(GLOB cmake_files "${CURRENT_PACKAGES_DIR}/share/${PORT}/*.cmake") foreach(file IN LISTS cmake_files) vcpkg_replace_string("${file}" "pv${VERSION_MAJOR_MINOR}d.exe" "pv${VERSION_MAJOR_MINOR}.exe" IGNORE_UNCHANGED) endforeach() # The plugins also work without these files file(REMOVE "${CURRENT_PACKAGES_DIR}/Applications/paraview.app/Contents/Resources/paraview.conf") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/Applications/paraview.app/Contents/Resources/paraview.conf") ================================================ FILE: ports/paraview/protobuf-version.patch ================================================ diff --git a/ThirdParty/protobuf/CMakeLists.txt b/ThirdParty/protobuf/CMakeLists.txt index 811dc3721b..02f26ae757 100644 --- a/ThirdParty/protobuf/CMakeLists.txt +++ b/ThirdParty/protobuf/CMakeLists.txt @@ -40,7 +40,7 @@ vtk_module_third_party( STANDARD_INCLUDE_DIRS EXTERNAL PACKAGE Protobuf - VERSION "3.4" + CONFIG_MODE TARGETS protobuf::libprotobuf STANDARD_INCLUDE_DIRS) ================================================ FILE: ports/paraview/removedoublesymbols.patch ================================================ diff --git a/Library/VisItLib/visit_vtk/lightweight/vtkUnstructuredGridFacelistFilter.C b/Library/VisItLib/visit_vtk/lightweight/vtkUnstructuredGridFacelistFilter.C index db64a0534..0d987d8e7 100644 --- a/Library/VisItLib/visit_vtk/lightweight/vtkUnstructuredGridFacelistFilter.C +++ b/Library/VisItLib/visit_vtk/lightweight/vtkUnstructuredGridFacelistFilter.C @@ -69,7 +69,10 @@ // // Forward declare some of types used to hash faces. // -class Quad; +namespace hidden { + class Quad; +} +using hidden::Quad; class QuadMemoryManager; class Tri; class TriMemoryManager; @@ -322,43 +325,43 @@ class HashEntryList // Creation: October 21, 2002 // // **************************************************************************** +namespace hidden { + class Quad + { + friend class Tri; -class Quad -{ - friend class Tri; - - public: - Quad() { ordering_case = 255; }; - - vtkIdType AssignNodes(const vtkIdType *); - bool Equals(Quad *); - bool Equals(Tri *); - void AddInRemainingTriangle(Tri *, int); - inline void ReRegisterMemory(void) - { - hashEntryList->qmm.ReRegisterQuad(this); - } + public: + Quad() { ordering_case = 255; }; - inline void SetOriginalZone(const int &oz) { orig_zone = oz; }; - inline int GetOriginalZone(void) { return orig_zone; }; + vtkIdType AssignNodes(const vtkIdType *); + bool Equals(Quad *); + bool Equals(Tri *); + void AddInRemainingTriangle(Tri *, int); + inline void ReRegisterMemory(void) + { + hashEntryList->qmm.ReRegisterQuad(this); + } - void OutputCell(int,vtkPolyData *, vtkCellData *, vtkCellData *); + inline void SetOriginalZone(const int &oz) { orig_zone = oz; }; + inline int GetOriginalZone(void) { return orig_zone; }; - inline void RegisterHashEntryList(HashEntryList *hel) - { hashEntryList = hel; }; - inline void SetNumberOfPoints(int np) { npts = np; }; + void OutputCell(int,vtkPolyData *, vtkCellData *, vtkCellData *); - protected: - unsigned char ordering_case; - vtkIdType nodes[3]; - vtkIdType orig_zone; + inline void RegisterHashEntryList(HashEntryList *hel) + { hashEntryList = hel; }; + inline void SetNumberOfPoints(int np) { npts = np; }; - HashEntryList *hashEntryList; - int npts; + protected: + unsigned char ordering_case; + vtkIdType nodes[3]; + vtkIdType orig_zone; - void AddInRemainingTriangle(int, int); -}; + HashEntryList *hashEntryList; + int npts; + void AddInRemainingTriangle(int, int); + }; +} // // We will be re-ordering the nodes into numerical order. This enumerated // type will allow the ordering to be preserved. ================================================ FILE: ports/paraview/vcpkg.json ================================================ { "name": "paraview", "version": "5.12.1", "port-version": 6, "description": "VTK-based Data Analysis and Visualization Application", "homepage": "https://www.paraview.org/", "license": "BSD-3-Clause", "dependencies": [ "boost-algorithm", "boost-core", "boost-format", "cgns", "protobuf", "qt5compat", "qtsvg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vtk", "default-features": false, "features": [ "paraview" ] } ], "features": { "all-modules": { "description": "enables the build of all paraview modules", "dependencies": [ "ffmpeg", "gdal", "laszip", "pdal" ] }, "cuda": { "description": "enables cuda within paraview", "dependencies": [ "cuda", { "name": "vtk", "default-features": false, "features": [ "cuda" ] } ] }, "mpi": { "description": "enables cuda within paraview", "dependencies": [ { "name": "hdf5", "default-features": false, "features": [ "parallel" ] }, { "name": "vtk", "default-features": false, "features": [ "mpi" ] } ] }, "python": { "description": "enables the build of python wrappers", "dependencies": [ { "name": "vtk", "default-features": false, "features": [ "python" ] } ] }, "tools": { "description": "Build paraview tools" }, "vtkm": { "description": "enables vtkm for the build of paraview", "dependencies": [ { "name": "vtk", "default-features": false, "features": [ "vtkm" ] } ] } } } ================================================ FILE: ports/parmetis/build-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 146bc5f..f5c5d48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.22) project(ParMETIS C) @@ -24,20 +24,20 @@ include(./conf/gkbuild.cmake) # i.e., the -I equivalent include_directories(include) include_directories(${MPI_INCLUDE_PATH}) -include_directories(${GKLIB_PATH}/include) -include_directories(${METIS_PATH}/include) -include_directories(${CMAKE_INSTALL_PREFIX}/include) # List of paths that the compiler will search for library files. # i.e., the -L equivalent -link_directories(${GKLIB_PATH}/lib) -link_directories(${METIS_PATH}/lib) -link_directories(${CMAKE_INSTALL_PREFIX}/lib) - # List of directories that cmake will look for CMakeLists.txt add_subdirectory(include) add_subdirectory(libparmetis) -add_subdirectory(programs) # This is for testing during development and is not being distributed #add_subdirectory(test) + +install(EXPORT parmetisTargets FILE "parmetisTargets.cmake" DESTINATION "share/parmetis") +file(WRITE "${CMAKE_INSTALL_PREFIX}/share/parmetis/parmetisConfig.cmake" [=[ +include(CMakeFindDependencyMacro) +find_dependency(GKlib CONFIG) +find_dependency(metis CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/parmetisTargets.cmake") +]=]) diff --git a/conf/gkbuild.cmake b/conf/gkbuild.cmake index ec91224..c4161fa 100644 --- a/conf/gkbuild.cmake +++ b/conf/gkbuild.cmake @@ -15,7 +15,6 @@ option(GKRAND "enable GKRAND support" OFF) # Add compiler flags. if(MSVC) - set(GK_COPTS "/Ox") set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX") elseif(MINGW) set(GK_COPTS "-DUSE_GKREGEX") @@ -31,6 +30,8 @@ if(CMAKE_COMPILER_IS_GNUCC) # -march=native is not a valid flag on PPC: if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64")) set(GK_COPTIONS "${GK_COPTIONS} -mtune=native") +elseif(1) + # Use flags from toolchain and triplet else() set(GK_COPTIONS "${GK_COPTIONS} -march=native") endif() @@ -39,6 +40,7 @@ endif() endif(NOT MINGW) # GCC warnings. set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label") + string(REPLACE " -Werror " " " GK_COPTIONS "${GK_COPTIONS}") elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun") # Sun insists on -xc99. set(GK_COPTIONS "${GK_COPTIONS} -xc99") @@ -69,6 +71,8 @@ endif(OPENMP) if(GDB) set(GK_COPTS "${GK_COPTS} -g") set(GK_COPTIONS "${GK_COPTIONS} -Werror") +elseif(1) + # Use flags from toolchain and triplet else() set(GK_COPTS "-O3") endif(GDB) diff --git a/libparmetis/CMakeLists.txt b/libparmetis/CMakeLists.txt index b9d6d84..d8fb19b 100644 --- a/libparmetis/CMakeLists.txt +++ b/libparmetis/CMakeLists.txt @@ -7,11 +7,17 @@ file(GLOB parmetis_sources *.c) # Create libparmetis add_library(parmetis ${ParMETIS_LIBRARY_TYPE} ${parmetis_sources}) -if(SHARED) - target_link_libraries(parmetis metis GKlib) -endif() - +find_package(GKlib CONFIG REQUIRED) +find_package(metis CONFIG REQUIRED) +find_package(MPI REQUIRED) + +target_link_libraries(parmetis PRIVATE GKlib::GKlib metis ${MPI_C_LIBRARIES}) +target_include_directories(parmetis PRIVATE ${MPI_C_INCLUDE_DIRS}) +target_include_directories(parmetis PRIVATE "../include") + install(TARGETS parmetis + EXPORT parmetisTargets + INCLUDES DESTINATION include LIBRARY DESTINATION lib - RUNTIME DESTINATION lib + RUNTIME DESTINATION bin ARCHIVE DESTINATION lib) ================================================ FILE: ports/parmetis/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KarypisLab/ParMETIS REF 8ee6a372ca703836f593e3c450ca903f04be14df SHA512 a71d212a1c8682eb662ef6bb8bdcb124bc13c353e76ac236b01e544bddb975740c36be54c05305e1114e4daf20fec56642ffa319a6426c87c5538ea2225c156b PATCHES build-fixes.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSHARED=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/parmetis/use_stdint.patch ================================================ diff --git a/metis/GKlib/ms_stdint.h b/metis/GKlib/ms_stdint.h index 7e200dc..0d07a7a 100644 --- a/metis/GKlib/ms_stdint.h +++ b/metis/GKlib/ms_stdint.h @@ -42,6 +42,10 @@ #include +#if(_MSC_VER >= 1900) + #include +#else + // For Visual Studio 6 in C++ mode wrap include with 'extern "C++" {}' // or compiler give many errors like this: // error C2733: second C linkage of overloaded function 'wmemchr' not allowed @@ -218,5 +222,6 @@ typedef uint64_t uintmax_t; #endif // __STDC_CONSTANT_MACROS ] +#endif #endif // _MSC_STDINT_H_ ] ================================================ FILE: ports/parmetis/vcpkg.json ================================================ { "name": "parmetis", "version-date": "2023-03-26", "description": "Parallel Graph Partitioning and Fill-reducing Matrix Ordering", "homepage": "https://github.com/KarypisLab/ParMETIS", "license": null, "dependencies": [ "metis", "mpi", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/parsi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cthulhu-irl/parsi REF "v${VERSION}" SHA512 193927b3b2e50d358752c6b58798d4050101d634d5231bf3e5c354edaca846a4e05f8b862c8fc461116f8ddecda0b0ebac7ee936579868a816e6404cedf964ec HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPARSI_MAIN_PROJECT=OFF -DPARSI_INSTALL=ON) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/parsi/usage ================================================ parsi provides CMake targets: find_package(parsi CONFIG REQUIRED) target_link_libraries(main PRIVATE parsi::parsi) ================================================ FILE: ports/parsi/vcpkg.json ================================================ { "name": "parsi", "version": "0.1.0", "description": "A declarative parser combinator library.", "homepage": "https://github.com/cthulhu-irl/parsi", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/parson/fix-cmake-files-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d656fa..993e859 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,6 @@ install( EXPORT parsonTargets FILE parsonConfig.cmake NAMESPACE parson:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} + DESTINATION share/${PROJECT_NAME} ) ================================================ FILE: ports/parson/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kgabis/parson REF ba29f4eda9ea7703a9f6a9cf2b0532a2605723c3 # See commit message for version number SHA512 fdb8c66e9b8966488a22db2e6437d0bfa521c73abc043c7bd18227247fd52de9dd1856dec0d5ebd88f1dacce2493b2c68707b5e16ca4e3032ff6342933f16030 HEAD_REF master PATCHES fix-cmake-files-path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/parson/vcpkg.json ================================================ { "name": "parson", "version": "1.5.3", "description": "a lightweight json library written in C", "homepage": "https://github.com/kgabis/parson", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/patternia/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SentoMK/patternia REF "v${VERSION}" SHA512 482f20b7664ff4cb3931e95c57e582f615063e092c734b6d02c32a97f56250dd8fd41611f2773c6d2c8d10fd924fb9700dcbdbeaa222f98ba2e35638733ed736 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPTN_BUILD_TESTS=OFF -DPTN_BUILD_BENCHMARKS=OFF -DPTN_BUILD_SAMPLES=OFF -DPTN_DEV_INDEX=OFF -DPTN_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME patternia CONFIG_PATH lib/cmake/patternia) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/patternia/vcpkg.json ================================================ { "name": "patternia", "version": "0.9.1", "description": "Header-only pattern matching library for modern C++", "homepage": "https://github.com/SentoMK/patternia", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pbc/linux.patch ================================================ --- configure.ac 2018-11-29 13:51:14.495012138 +0100 +++ configure.ac 2018-11-29 13:51:45.308095312 +0100 @@ -10,7 +10,6 @@ LT_INIT #AC_CANONICAL_HOST -CFLAGS= default_fink_path=/sw case $host_os in darwin*) @@ -78,20 +77,7 @@ AC_PROG_MAKE_SET AC_PROG_LEX -if test "x$LEX" != xflex; then - echo "************************" - echo "flex not found" - echo "************************" - exit -1 -fi - AC_PROG_YACC -if test "x$YACC" != "xbison -y"; then - echo "************************" - echo "bison not found" - echo "************************" - exit -1 -fi # Checks for libraries. lib_err_msg="add its path to LDFLAGS\nsee ./configure --help" @@ -121,13 +134,6 @@ CFLAGS="$CFLAGS -Wall -W -Wfloat-equal -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wredundant-decls \ -Wendif-labels -Wshadow -pipe -ffast-math -U__STRICT_ANSI__ -std=gnu99" -if test "$with_debug" == "y"; then - CFLAGS="$CFLAGS -g3 -O0" -elif test "$with_enable_optimized" != "no"; then - CFLAGS="$CFLAGS -g -O2" -else - CFLAGS="$CFLAGS -fomit-frame-pointer -O3" -fi if test "$with_safe_clean" != "n"; then CFLAGS="$CFLAGS -DSAFE_CLEAN" ================================================ FILE: ports/pbc/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile( ARCHIVE URLS "https://crypto.stanford.edu/pbc/files/pbc-${VERSION}.tar.gz" FILENAME pbc-${VERSION}.tar.gz SHA512 d75d4ceb3f67ee62c7ca41e2a91ee914fbffaeb70256675aed6734d586950ea8e64e2f16dc069d71481eddb703624df8d46497005fb58e75cf098dd7e7961333 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE "${VERSION}" PATCHES linux.patch ) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(SHARED_STATIC --enable-static --disable-shared) else() set(SHARED_STATIC --disable-static --enable-shared) endif() set(OPTIONS ${SHARED_STATIC} LEX=${FLEX} YACC=${BISON}\ -y) vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG COPY_SOURCE OPTIONS ${OPTIONS} ) vcpkg_install_make() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/info") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") else() vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO blynn/pbc REF fbf4589036ce4f662e2d06905862c9e816cf9d08 SHA512 9348afd3866090b9fca189ae3a6bbb86c842b5f6ee7e1972f1a579993e589952c5926cb0795d4db1e647e3af263827e22c7602314c39bd97e03ffe9ad0fb48ab HEAD_REF master PATCHES windows.patch ) find_path(MPIR_INCLUDE_DIR "gmp.h" HINTS "${CURRENT_INSTALLED_DIR}" PATH_SUFFIXES include) if(NOT MPIR_INCLUDE_DIR) message(FATAL_ERROR "GMP includes not found") endif() find_library(MPIR_LIBRARIES_REL NAMES "mpir.lib" HINTS "${CURRENT_INSTALLED_DIR}" PATH_SUFFIXES lib) if(NOT MPIR_LIBRARIES_REL) message(FATAL_ERROR "mpir library not found") endif() find_library(MPIR_LIBRARIES_DBG NAMES "mpir.lib" HINTS "${CURRENT_INSTALLED_DIR}" PATH_SUFFIXES debug/lib) if(NOT MPIR_LIBRARIES_DBG) message(FATAL_ERROR "mpir debug library not found") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(LibrarySuffix "lib") set(ConfigurationSuffix "") else() set(LibrarySuffix "dll") set(ConfigurationSuffix " DLL") endif() if(TRIPLET_SYSTEM_ARCH STREQUAL "x86") set(Platform "Win32") else() set(Platform ${TRIPLET_SYSTEM_ARCH}) endif() # PBC expects mpir directory in build root get_filename_component(SOURCE_PATH_PARENT "${SOURCE_PATH}" DIRECTORY) file(REMOVE_RECURSE "${SOURCE_PATH_PARENT}/mpir") file(MAKE_DIRECTORY "${SOURCE_PATH_PARENT}/mpir") file(GLOB FILES ${MPIR_INCLUDE_DIR}/gmp*.h) file(COPY ${FILES} ${MPIR_LIBRARIES_REL} DESTINATION "${SOURCE_PATH_PARENT}/mpir/${LibrarySuffix}/${Platform}/Release") file(COPY ${FILES} ${MPIR_LIBRARIES_DBG} DESTINATION "${SOURCE_PATH_PARENT}/mpir/${LibrarySuffix}/${Platform}/Debug") get_filename_component(SOURCE_PATH_SUFFIX "${SOURCE_PATH}" NAME) vcpkg_msbuild_install(SOURCE_PATH "${SOURCE_PATH_PARENT}" PROJECT_SUBPATH "${SOURCE_PATH_SUFFIX}/pbcwin/projects/pbclib.vcxproj" RELEASE_CONFIGURATION "Release${ConfigurationSuffix}" DEBUG_CONFIGURATION "Debug${ConfigurationSuffix}" OPTIONS /p:SolutionDir=../ ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # clean up mpir stuff file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/mpir.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/mpir.lib") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-pbc-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") endif() ================================================ FILE: ports/pbc/unofficial-pbc-config.cmake ================================================ if(NOT TARGET unofficial::pbc::pbc) 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::pbc::pbc UNKNOWN IMPORTED) set_target_properties(unofficial::pbc::pbc PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" ) find_library(PBC_LIBRARY_DEBUG NAMES pbclib libpbc PATHS "${_IMPORT_PREFIX}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${PBC_LIBRARY_DEBUG}") set_property(TARGET unofficial::pbc::pbc APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::pbc::pbc PROPERTIES IMPORTED_LOCATION_DEBUG "${PBC_LIBRARY_DEBUG}") endif() find_library(PBC_LIBRARY_RELEASE NAMES pbclib libpbc PATHS "${_IMPORT_PREFIX}/" PATH_SUFFIXES lib NO_DEFAULT_PATH) if(EXISTS "${PBC_LIBRARY_RELEASE}") set_property(TARGET unofficial::pbc::pbc APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::pbc::pbc PROPERTIES IMPORTED_LOCATION_RELEASE "${PBC_LIBRARY_RELEASE}") endif() unset(_IMPORT_PREFIX) endif() ================================================ FILE: ports/pbc/vcpkg.json ================================================ { "name": "pbc", "version": "0.5.14", "port-version": 9, "description": "Pairing-Based Crypto library provides low-level routines for pairing-based cryptosystems.", "homepage": "https://crypto.stanford.edu/pbc", "license": "LGPL-3.0", "supports": "!uwp & !arm", "dependencies": [ { "name": "gmp", "platform": "!windows" }, { "name": "mpir", "platform": "windows" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/pbc/windows.patch ================================================ diff --git "a/include/pbc_curve.h" "b/include/pbc_curve.h" --- "a/include/pbc_curve.h" +++ "b/include/pbc_curve.h" @@ -60,7 +60,9 @@ void field_curve_set_quotient_cmp(field_ptr c, mpz_t quotient_cmp); +#ifdef __GNUC__ #pragma GCC visibility push(hidden) +#endif // Internal: element_ptr curve_x_coord(element_t e); @@ -74,6 +76,8 @@ void curve_set_si(element_t R, long int x, long int y); void curve_set_gen_no_cofac(element_ptr a); +#ifdef __GNUC__ #pragma GCC visibility pop +#endif #endif //__PBC_CURVE_H__ diff --git "a/include/pbc_vc_compat.win32.h" "b/include/pbc_vc_compat.win32.h" index 27d3bba..7f772d4 100644 --- "a/include/pbc_vc_compat.win32.h" +++ "b/include/pbc_vc_compat.win32.h" @@ -3,7 +3,3 @@ #define __attribute__(X) #define inline #define __func__ __FUNCTION__ - -#define NULL 0 - -#define snprintf _snprintf \ No newline at end of file diff --git "a/pbcwin/projects/pbclib.vcxproj" "b/pbcwin/projects/pbclib.vcxproj" index f0a9b3f..507c24d 100644 --- "a/pbcwin/projects/pbclib.vcxproj" +++ "b/pbcwin/projects/pbclib.vcxproj" @@ -214,13 +214,13 @@  $(SolutionDir)..\include;$(SolutionDir)..;$(SolutionDir)..\..\mpir\lib\$(Platform)\Release;$(IncludePath) - $(SolutionDir)..\..\mpir\lib\x64\Release;$(LibraryPath) + $(SolutionDir)..\..\mpir\lib\$(Platform)\Release;$(LibraryPath) $(SolutionDir)lib\$(Platform)\Release\ $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ - $(SolutionDir)..\include;$(SolutionDir)..;$(SolutionDir)..\..\mpir\lib\x64\Release;$(IncludePath) - $(SolutionDir)..\..\mpir\lib\x64\Release;$(LibraryPath) + $(SolutionDir)..\include;$(SolutionDir)..;$(SolutionDir)..\..\mpir\lib\$(Platform)\Release;$(IncludePath) + $(SolutionDir)..\..\mpir\lib\$(Platform)\Release;$(LibraryPath) $(SolutionDir)lib\$(Platform)\Release\ $(SolutionDir)obj\$(Platform)\$(Configuration)\$(ProjectName)\ @@ -245,7 +245,8 @@  _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDebug + $(RuntimeLibrary) + OldStyle true @@ -275,7 +276,8 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDebug + $(RuntimeLibrary) + OldStyle true @@ -305,7 +307,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDebugDLL + $(RuntimeLibrary) true @@ -332,7 +334,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDebugDLL + $(RuntimeLibrary) true @@ -361,7 +363,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreaded + $(RuntimeLibrary) true @@ -395,7 +397,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreaded + $(RuntimeLibrary) true @@ -429,7 +431,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDLL + $(RuntimeLibrary) true @@ -460,7 +462,7 @@ echo *************************************************************************** _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) pbc_vc_compat.win32.h 4068 - MultiThreadedDLL + $(RuntimeLibrary) true ================================================ FILE: ports/pcapplusplus/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() # Convert PcapPlusPlus to add leading zero 23.9 => 23.09 string(REGEX REPLACE "^([0-9]+)[.]([0-9])\$" "\\1.0\\2" PCAPPLUSPLUS_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO seladb/PcapPlusPlus REF "v${PCAPPLUSPLUS_VERSION}" SHA512 83f95e82cbbd10a88b6d333d2b6c6f1e4fef8b0b86f8ad6202cf77d50bf7a1c6afdcb0254962c37cc1c4b55e2e9700b97cc6222129990ff86fcefc7b06621cd0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPCAPPP_BUILD_EXAMPLES=OFF -DPCAPPP_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/pcapplusplus) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pcapplusplus/vcpkg.json ================================================ { "name": "pcapplusplus", "version": "25.5", "port-version": 1, "description": "PcapPlusPlus is a multi-platform C++ library for capturing, parsing and crafting of network packets", "homepage": "https://github.com/seladb/PcapPlusPlus", "documentation": "https://pcapplusplus.github.io", "license": null, "dependencies": [ { "name": "libpcap", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "winpcap", "platform": "windows" } ] } ================================================ FILE: ports/pcg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO imneme/pcg-cpp REF 428802d1a5634f96bcd0705fab379ff0113bcf13 SHA512 6d952737f61778f1d5c7f6bba0ebc3164e84fc0b1369186cd9c9aa880ec7ab3ea2a7066012c9094bc697a0093fe24d316bf83bd2842eb9433f4533782bb50a39 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/pcg_extras.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/include/pcg_random.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/include/pcg_uint128.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE-MIT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/pcg/vcpkg.json ================================================ { "name": "pcg", "version-date": "2022-04-09", "description": "Permuted Congruential Generator" } ================================================ FILE: ports/pciids/acquire_pciids.cmake ================================================ function(acquire_pciids out_var) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pciutils/pciids REF 4e3f51b4b7ba7ffd3cca463d6a19daf0f4270252 SHA512 952b56affffdf9ecf78f6125cf4216bd01d85c55e49ec4b2dfb3a77bae2258dec6b4e2d28824d6408f072667480ef7e5f7279fd69bae65c071b7b3816fe9f504 ) set(${out_var} "${SOURCE_PATH}/pci.ids" PARENT_SCOPE) endfunction() ================================================ FILE: ports/pciids/portfile.cmake ================================================ # This package doesn't "install" the pciids data file but # provides a maintainer function which does the download. set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) include("${CMAKE_CURRENT_LIST_DIR}/acquire_pciids.cmake") acquire_pciids(pciids_path) cmake_path(GET pciids_path PARENT_PATH pciids_dir) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CMAKE_CURRENT_LIST_DIR}/acquire_pciids.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_install_copyright(FILE_LIST "${pciids_dir}/README") ================================================ FILE: ports/pciids/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/acquire_pciids.cmake") ================================================ FILE: ports/pciids/vcpkg.json ================================================ { "name": "pciids", "version-date": "2023-04-11", "description": "Maintainer function to acquire a PCI ID Repository database snapshot", "homepage": "https://pci-ids.ucw.cz/", "license": "GPL-2.0-or-later OR BSD-3-Clause", "supports": "native" } ================================================ FILE: ports/pcl/fix-check-sse.patch ================================================ From c65e034afb538932f4ff55a93332f875ae43a578 Mon Sep 17 00:00:00 2001 From: raahilsha-z Date: Wed, 7 Jul 2021 15:54:33 -0400 Subject: [PATCH] fix check sse --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 29f79d31b..a1d9bb58f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,7 @@ endif() # check for SSE flags include("${PCL_SOURCE_DIR}/cmake/pcl_find_sse.cmake") -if(PCL_ENABLE_SSE AND "${CMAKE_CXX_FLAGS}" STREQUAL "${CMAKE_CXX_FLAGS_DEFAULT}") +if(PCL_ENABLE_SSE) PCL_CHECK_FOR_SSE() endif() -- 2.32.0.windows.1 ================================================ FILE: ports/pcl/fix-clang-cl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fad95c9..b4ca305 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING # Compiler identification # Define a variable CMAKE_COMPILER_IS_X where X is the compiler short name. # Note: CMake automatically defines one for GNUCXX, nothing to do in this case. -if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC) set(CMAKE_COMPILER_IS_CLANG 1) elseif(__COMPILER_PATHSCALE) set(CMAKE_COMPILER_IS_PATHSCALE 1) ================================================ FILE: ports/pcl/fix-numeric-literals-flag.patch ================================================ From 3ea8aa5ded2782cfb10577348fc9f56144c72d7b Mon Sep 17 00:00:00 2001 From: raahilsha-z Date: Wed, 7 Jul 2021 15:57:46 -0400 Subject: [PATCH] fix numeric literals flag --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7cf86f74b..e07fd430a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,6 +420,9 @@ endif() # Boost (required) include("${PCL_SOURCE_DIR}/cmake/pcl_find_boost.cmake") +if (NOT APPLE AND NOT WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + add_definitions(-fext-numeric-literals) +endif() # System zlib (for nurbs on surface) option(WITH_SYSTEM_ZLIB "Use system zlib" TRUE) -- 2.32.0.windows.1 ================================================ FILE: ports/pcl/install-examples.patch ================================================ diff --git a/cmake/pcl_targets.cmake b/cmake/pcl_targets.cmake index 91f2404..18f5a24 100644 --- a/cmake/pcl_targets.cmake +++ b/cmake/pcl_targets.cmake @@ -473,6 +473,8 @@ macro(PCL_ADD_EXAMPLE _name) # add target to list of example targets created at the parent scope list(APPEND PCL_EXAMPLES_ALL_TARGETS ${_name}) set(PCL_EXAMPLES_ALL_TARGETS "${PCL_EXAMPLES_ALL_TARGETS}" PARENT_SCOPE) + + install(TARGETS ${_name} RUNTIME DESTINATION ${BIN_INSTALL_DIR}) endmacro() ############################################################################### ================================================ FILE: ports/pcl/install-layout.patch ================================================ diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in index cf21c44..1463514 100644 --- a/PCLConfig.cmake.in +++ b/PCLConfig.cmake.in @@ -403,7 +403,7 @@ endif() find_package(PkgConfig QUIET) file(TO_CMAKE_PATH "${PCL_DIR}" PCL_DIR) -if(WIN32 AND NOT MINGW) +if(0) # PCLConfig.cmake is installed to PCL_ROOT/cmake get_filename_component(PCL_ROOT "${PCL_DIR}" PATH) if(EXISTS "${PCL_ROOT}/3rdParty") @@ -425,6 +425,10 @@ elseif(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h") # pcl_message("Found a PCL installation") set(PCL_CONF_INCLUDE_DIR "${PCL_ROOT}/include") set(PCL_LIBRARY_DIRS "${PCL_ROOT}/lib") + list(APPEND PCL_LIBRARY_DIRS "${PCL_ROOT}/debug/lib") + if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") + list(REVERSE PCL_LIBRARY_DIRS) + endif() elseif(EXISTS "${PCL_DIR}/include/pcl/pcl_config.h") # Found PCLConfig.cmake in a build tree of PCL # pcl_message("PCL found into a build tree.") diff --git a/cmake/Modules/FindFLANN.cmake b/cmake/Modules/FindFLANN.cmake index f42bca3..faca969 100644 --- a/cmake/Modules/FindFLANN.cmake +++ b/cmake/Modules/FindFLANN.cmake @@ -85,7 +85,7 @@ if(flann_FOUND) # Determine FLANN installation root based on the path to the processed Config file get_filename_component(_config_dir "${flann_CONFIG}" DIRECTORY) - get_filename_component(FLANN_ROOT "${_config_dir}/../../.." ABSOLUTE) + get_filename_component(FLANN_ROOT "${_config_dir}/../.." ABSOLUTE) unset(_config_dir) message(STATUS "Found flann version ${flann_VERSION}") return() diff --git a/cmake/pcl_utils.cmake b/cmake/pcl_utils.cmake index d87d02d..9c0ede1 100644 --- a/cmake/pcl_utils.cmake +++ b/cmake/pcl_utils.cmake @@ -100,6 +100,7 @@ macro(SET_INSTALL_DIRS) else() set(INCLUDE_INSTALL_ROOT "include") # Android, don't put into subdir endif() + set(INCLUDE_INSTALL_ROOT "include") set(INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_ROOT}/pcl") set(DOC_INSTALL_DIR "share/doc/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}") set(BIN_INSTALL_DIR "bin") @@ -109,6 +110,7 @@ macro(SET_INSTALL_DIRS) else() set(PCLCONFIG_INSTALL_DIR "share/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}") endif() + set(PCLCONFIG_INSTALL_DIR "share/pcl") endmacro() diff --git a/cmake/pkgconfig.cmake.in b/cmake/pkgconfig.cmake.in index c351e44..b10577a 100644 --- a/cmake/pkgconfig.cmake.in +++ b/cmake/pkgconfig.cmake.in @@ -3,7 +3,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/@LIB_INSTALL_DIR@ #includedir=${prefix}/@INCLUDE_INSTALL_DIR@ -includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@ +includedir=${prefix}/@INCLUDE_INSTALL_DIR@ Name: @PKG_NAME@ Description: @PKG_DESC@ Version: @PCL_VERSION@ ================================================ FILE: ports/pcl/portfile.cmake ================================================ vcpkg_download_distfile(BOOST_1_89_0_COMPAT_PATCH URLS https://github.com/PointCloudLibrary/pcl/commit/99333442ac63971297b4cdd05fab9d2bd2ff57a4.patch?full_index=1 FILENAME PointCloudLibrary-pcl-boost-1-89-0-compat.patch SHA512 2fefaeaeda9fe423b481cddf4de85eff58418286f24f065be8610216e87d8faeb869406b72b3a7158abd22d17e25742b54f6b9eb3c81f82a1718f938bb8e0d26 ) vcpkg_download_distfile(EIGEN3_5_0_0_COMPAT_PATCH URLS https://github.com/PointCloudLibrary/pcl/commit/2d6929bdcd98beaa28fa8ee3a105beb566f16347.patch?full_index=1 FILENAME PointCloudLibrary-pcl-eigen3-5-0-0-compat.patch SHA512 993a1f29d8dd62cee526a92f0c2bf62dca566428523166abfb74337da137d47dcf97febb9d98b2a17ee6cea331045350bfb37b221403c08214beaebb7120bf41 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PointCloudLibrary/pcl REF "pcl-${VERSION}" SHA512 ca9e742bc24b38f31c42c9ea08e19054e18d045f487269b64a7b831dada89936445d90a5b46870d8c24c2d25b33a59df2d904fe7e51bc0b231317cdb319951e9 HEAD_REF master PATCHES fix-check-sse.patch fix-numeric-literals-flag.patch install-layout.patch install-examples.patch fix-clang-cl.patch "${BOOST_1_89_0_COMPAT_PATCH}" "${EIGEN3_5_0_0_COMPAT_PATCH}" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(PCL_DONT_TRY_SSE "-DPCL_ENABLE_SSE=OFF") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES apps BUILD_apps cuda WITH_CUDA cuda BUILD_CUDA cuda BUILD_GPU examples BUILD_examples examples VCPKG_LOCK_FIND_PACKAGE_cJSON libusb WITH_LIBUSB opengl WITH_OPENGL openni2 WITH_OPENNI2 pcap WITH_PCAP qt WITH_QT simulation BUILD_simulation surface-on-nurbs BUILD_surface_on_nurbs surface-on-nurbs VCPKG_LOCK_FIND_PACKAGE_ZLIB tools BUILD_tools visualization WITH_VTK visualization BUILD_visualization # These 2 apps need openni1 #apps BUILD_apps_in_hand_scanner #apps BUILD_apps_3d_rec_framework ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS # PCL -DPCL_ALLOW_BOTH_SHARED_AND_STATIC_DEPENDENCIES=ON -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} -DPCL_ENABLE_MARCHNATIVE=OFF ${PCL_DONT_TRY_SSE} -DUSE_HOMEBREW_FALLBACK=OFF # WITH -DWITH_DAVIDSDK=OFF -DWITH_DOCS=OFF -DWITH_DSSDK=OFF -DWITH_ENSENSO=OFF -DWITH_OPENNI=OFF -DWITH_PNG=ON -DWITH_QHULL=ON -DWITH_RSSDK=OFF -DWITH_RSSDK2=OFF # Misc -DVCPKG_LOCK_FIND_PACKAGE_ClangFormat=OFF # FEATURES ${FEATURE_OPTIONS} OPTIONS_DEBUG -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF MAYBE_UNUSED_VARIABLES PCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32 PCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32 ) if(NOT EXISTS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/vtk.pc") file(REMOVE "${CURRENT_PACKAGE_DIR}/lib/pkgconfig/pcl_gpu_kinfu_large_scale.pc" "${CURRENT_PACKAGE_DIR}/debug/lib/pkgconfig/pcl_gpu_kinfu_large_scale.pc") endif() vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() if (WITH_OPENNI2) if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB PCL_PKGCONFIG_DBGS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach (PCL_PKGCONFIG IN LISTS PCL_PKGCONFIG_DBGS) file(READ "${PCL_PKGCONFIG}" PCL_PC_DBG) if (PCL_PC_DBG MATCHES "libopenni2") string(REPLACE "libopenni2" "" PCL_PC_DBG "${PCL_PC_DBG}") string(REPLACE "Libs: " "Libs: -lKinect10 -lOpenNI2 " PCL_PC_DBG "${PCL_PC_DBG}") file(WRITE "${PCL_PKGCONFIG}" "${PCL_PC_DBG}") endif() endforeach() endif() if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(GLOB PCL_PKGCONFIG_RELS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") foreach (PCL_PKGCONFIG IN LISTS PCL_PKGCONFIG_RELS) file(READ "${PCL_PKGCONFIG}" PCL_PC_REL) if (PCL_PC_REL MATCHES "libopenni2") string(REPLACE "libopenni2" "" PCL_PC_REL "${PCL_PC_REL}") string(REPLACE "Libs: " "Libs: -lKinect10 -lOpenNI2 " PCL_PC_REL "${PCL_PC_REL}") file(WRITE "${PCL_PKGCONFIG}" "${PCL_PC_REL}") endif() endforeach() endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(BUILD_tools OR BUILD_apps OR BUILD_examples) file(GLOB tool_names LIST_DIRECTORIES false RELATIVE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}" ) if(VCPKG_TARGET_EXECUTABLE_SUFFIX) string(REPLACE "." "[.]" suffix "${VCPKG_TARGET_EXECUTABLE_SUFFIX}") list(TRANSFORM tool_names REPLACE "${suffix}\$" "") endif() vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() # pcl_apps.dll is only build for release but not used at all since BUILD_apps_3d_rec_framework is OFF. # Because it is not copied to the tool folder and there is no debug variant, we get an post build check error. # Since the lib is not needed. Delete it: file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/pcl_apps.dll" "${CURRENT_PACKAGES_DIR}/bin/pcl_apps.pdb" "${CURRENT_PACKAGES_DIR}/lib/pcl_apps.lib" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/pcl_apps.pc") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/pcl/usage ================================================ The package pcl provides CMake targets: find_package(PCL CONFIG REQUIRED) target_link_libraries(main PRIVATE ${PCL_LIBRARIES}) ================================================ FILE: ports/pcl/vcpkg.json ================================================ { "name": "pcl", "version": "1.15.1", "port-version": 1, "description": "Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.", "homepage": "https://github.com/PointCloudLibrary/pcl", "license": "BSD-3-Clause", "dependencies": [ "boost-asio", "boost-date-time", "boost-dynamic-bitset", "boost-filesystem", "boost-foreach", "boost-graph", "boost-interprocess", "boost-iostreams", "boost-multi-array", "boost-property-map", "boost-ptr-container", "boost-random", "boost-signals2", "boost-sort", "boost-system", "boost-thread", "boost-uuid", "eigen3", "flann", "libpng", "nanoflann", "qhull", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "apps": { "description": "Build application examples/samples that show how PCL works", "dependencies": [ { "name": "pcl", "default-features": false, "features": [ "opengl", "openni2", "qt", "vtk" ] } ] }, "cuda": { "description": "CUDA support for PCL", "supports": "x64", "dependencies": [ "cuda" ] }, "examples": { "description": "Build PCL examples", "dependencies": [ "boost-format", "cjson", { "name": "pcl", "features": [ "visualization" ] } ] }, "libusb": { "description": "Build USB RGBD-Camera drivers", "dependencies": [ "libusb" ] }, "opengl": { "description": "OpenGL support for PCL", "dependencies": [ "opengl" ] }, "openni2": { "description": "OpenNI2 support for PCL", "dependencies": [ "openni2", { "name": "pcl", "default-features": false, "features": [ "libusb" ], "platform": "!windows" } ] }, "pcap": { "description": "PCAP support for PCL", "dependencies": [ { "name": "libpcap", "platform": "!windows" }, { "name": "winpcap", "platform": "windows" } ] }, "qt": { "description": "Qt support for PCL", "dependencies": [ { "name": "vtk", "default-features": false, "features": [ "qt" ] } ] }, "simulation": { "description": "Build Point Cloud Library Simulation", "dependencies": [ "glew", { "name": "pcl", "default-features": false, "features": [ "opengl" ] } ] }, "surface-on-nurbs": { "description": "Fitting NURBS to point clouds", "dependencies": [ "zlib" ] }, "tools": { "description": "Build PCL utilities", "supports": "!static", "dependencies": [ "boost-accumulators" ] }, "visualization": { "description": "Build visualization", "dependencies": [ { "name": "vtk", "default-features": false, "features": [ "opengl" ] } ] }, "vtk": { "description": "An alias for visualization", "dependencies": [ { "name": "pcl", "default-features": false, "features": [ "visualization" ] } ] } } } ================================================ FILE: ports/pcre/export-cmake-targets.patch ================================================ --- a/CMakeLists.txt 2021-06-14 10:33:38.000000000 +0200 +++ b/CMakeLists.txt 2021-06-18 18:08:24.162881000 +0200 @@ -934,10 +934,19 @@ # Installation SET(CMAKE_INSTALL_ALWAYS 1) -INSTALL(TARGETS ${targets} +foreach(target ${targets}) + INSTALL(TARGETS ${target} + EXPORT pcre-targets RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + target_include_directories(${target} PUBLIC $) +endforeach() + +INSTALL(EXPORT pcre-targets + NAMESPACE unofficial::pcre:: + FILE unofficial-pcre-targets.cmake + DESTINATION "share/unofficial-pcre") INSTALL(FILES ${PCRE_HEADERS} ${PCREPOSIX_HEADERS} DESTINATION include) ================================================ FILE: ports/pcre/pcre-8.4.5_fix_check_function_exists_for_arm-androi_builds.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c3a309..cdd480f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,7 @@ FIND_PACKAGE( Editline ) INCLUDE(CheckIncludeFile) INCLUDE(CheckIncludeFileCXX) -INCLUDE(CheckFunctionExists) +INCLUDE(CheckSymbolExists) INCLUDE(CheckTypeSize) INCLUDE(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR @@ -109,12 +109,12 @@ CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H) CHECK_INCLUDE_FILE_CXX(type_traits.h HAVE_TYPE_TRAITS_H) CHECK_INCLUDE_FILE_CXX(bits/type_traits.h HAVE_BITS_TYPE_TRAITS_H) -CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY) -CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE) -CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR) -CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL) -CHECK_FUNCTION_EXISTS(strtoq HAVE_STRTOQ) -CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64) +CHECK_SYMBOL_EXISTS(bcopy strings.h HAVE_BCOPY) +CHECK_SYMBOL_EXISTS(memmove string.h HAVE_MEMMOVE) +CHECK_SYMBOL_EXISTS(strerror string.h HAVE_STRERROR) +CHECK_SYMBOL_EXISTS(strtoll stdlib.h HAVE_STRTOLL) +CHECK_SYMBOL_EXISTS(strtoq stdlib.h HAVE_STRTOQ) +CHECK_SYMBOL_EXISTS(_strtoi64 stdlib.h HAVE__STRTOI64) CHECK_TYPE_SIZE("long long" LONG_LONG) CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG) ================================================ FILE: ports/pcre/pcre-8.45_fix_postfix_for_debug_Windows_builds.patch ================================================ Index: CMakeLists.txt =================================================================== --- CMakeLists.txt (revision 1767) +++ CMakeLists.txt (working copy) @@ -436,6 +436,12 @@ @ONLY) ENDIF(PCRE_BUILD_PCRECPP) +# Make sure to not link debug libs +# against release libs and vice versa +IF(WIN32) + SET(CMAKE_DEBUG_POSTFIX "d") +ENDIF(WIN32) + # Generate pkg-config files SET(PACKAGE_VERSION "${PCRE_MAJOR}.${PCRE_MINOR}") SET(prefix "${CMAKE_INSTALL_PREFIX}") @@ -442,6 +448,9 @@ SET(exec_prefix "\${prefix}") SET(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") SET(includedir "\${prefix}/include") +IF(WIN32 AND (CMAKE_BUILD_TYPE MATCHES Debug)) + SET(LIB_POSTFIX ${CMAKE_DEBUG_POSTFIX}) +ENDIF() IF(NOT BUILD_SHARED_LIBS) SET(PCRE_STATIC_CFLAG "-DPCRE_STATIC") ENDIF(NOT BUILD_SHARED_LIBS) @@ -659,11 +668,6 @@ ENDIF(MSVC) SET(CMAKE_INCLUDE_CURRENT_DIR 1) -# needed to make sure to not link debug libs -# against release libs and vice versa -IF(WIN32) - SET(CMAKE_DEBUG_POSTFIX "d") -ENDIF(WIN32) SET(targets) Index: configure.ac =================================================================== --- configure.ac (revision 1767) +++ configure.ac (working copy) @@ -1044,6 +1044,9 @@ AM_CONDITIONAL([WITH_GCOV],[test "x$enable_coverage" = "xyes"]) # Produce these files, in addition to config.h. +# LIB_POSTFIX is used by CMakeLists.txt for Windows debug builds. +# Pass empty LIB_POSTFIX to *.pc files and pcre-config here. +AC_SUBST(LIB_POSTFIX) AC_CONFIG_FILES( Makefile libpcre.pc Index: libpcre.pc.in =================================================================== --- libpcre.pc.in (revision 1767) +++ libpcre.pc.in (working copy) @@ -8,6 +8,6 @@ Name: libpcre Description: PCRE - Perl compatible regular expressions C library with 8 bit character support Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lpcre +Libs: -L${libdir} -lpcre@LIB_POSTFIX@ Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ Index: libpcre16.pc.in =================================================================== --- libpcre16.pc.in (revision 1767) +++ libpcre16.pc.in (working copy) @@ -8,6 +8,6 @@ Name: libpcre16 Description: PCRE - Perl compatible regular expressions C library with 16 bit character support Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lpcre16 +Libs: -L${libdir} -lpcre16@LIB_POSTFIX@ Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ Index: libpcre32.pc.in =================================================================== --- libpcre32.pc.in (revision 1767) +++ libpcre32.pc.in (working copy) @@ -8,6 +8,6 @@ Name: libpcre32 Description: PCRE - Perl compatible regular expressions C library with 32 bit character support Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lpcre32 +Libs: -L${libdir} -lpcre32@LIB_POSTFIX@ Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ Index: libpcrecpp.pc.in =================================================================== --- libpcrecpp.pc.in (revision 1767) +++ libpcrecpp.pc.in (working copy) @@ -8,5 +8,5 @@ Name: libpcrecpp Description: PCRECPP - C++ wrapper for PCRE Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lpcre -lpcrecpp +Libs: -L${libdir} -lpcre@LIB_POSTFIX@ -lpcrecpp@LIB_POSTFIX@ Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ Index: libpcreposix.pc.in =================================================================== --- libpcreposix.pc.in (revision 1767) +++ libpcreposix.pc.in (working copy) @@ -8,6 +8,6 @@ Name: libpcreposix Description: PCREPosix - Posix compatible interface to libpcre Version: @PACKAGE_VERSION@ -Libs: -L${libdir} -lpcreposix +Libs: -L${libdir} -lpcreposix@LIB_POSTFIX@ Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ Requires.private: libpcre Index: pcre-config.in =================================================================== --- pcre-config.in (revision 1767) +++ pcre-config.in (working copy) @@ -91,7 +91,7 @@ ;; --libs-posix) if test @enable_pcre8@ = yes ; then - echo $libS$libR -lpcreposix -lpcre + echo $libS$libR -lpcreposix@LIB_POSTFIX@ -lpcre@LIB_POSTFIX@ else echo "${usage}" 1>&2 fi @@ -98,7 +98,7 @@ ;; --libs) if test @enable_pcre8@ = yes ; then - echo $libS$libR -lpcre + echo $libS$libR -lpcre@LIB_POSTFIX@ else echo "${usage}" 1>&2 fi @@ -105,7 +105,7 @@ ;; --libs16) if test @enable_pcre16@ = yes ; then - echo $libS$libR -lpcre16 + echo $libS$libR -lpcre16@LIB_POSTFIX@ else echo "${usage}" 1>&2 fi @@ -112,7 +112,7 @@ ;; --libs32) if test @enable_pcre32@ = yes ; then - echo $libS$libR -lpcre32 + echo $libS$libR -lpcre32@LIB_POSTFIX@ else echo "${usage}" 1>&2 fi @@ -119,7 +119,7 @@ ;; --libs-cpp) if test @enable_cpp@ = yes ; then - echo $libS$libR -lpcrecpp -lpcre + echo $libS$libR -lpcrecpp@LIB_POSTFIX@ -lpcre@LIB_POSTFIX@ else echo "${usage}" 1>&2 fi ================================================ FILE: ports/pcre/pcre-8.45_suppress_cmake_and_compiler_warnings-errors.patch ================================================ --- a/CMakeLists.txt 2021-06-14 10:33:38.000000000 +0200 +++ b/CMakeLists.txt 2021-06-18 17:59:59.155148900 +0200 @@ -77,7 +77,6 @@ # CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY. CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5) -CMAKE_POLICY(SET CMP0026 OLD) # For FindReadline.cmake. This was changed to allow setting CMAKE_MODULE_PATH # on the command line. @@ -199,6 +198,7 @@ ENDIF(MINGW) IF(MSVC) + add_definitions(/wd4703 /wd4146 /wd4308) OPTION(PCRE_STATIC_RUNTIME "ON=Compile against the static runtime (/MT)." OFF) ================================================ FILE: ports/pcre/portfile.cmake ================================================ set(PCRE_VERSION 8.45) set(EXPECTED_SHA 71f246c0abbf356222933ad1604cab87a1a2a3cd8054a0b9d6deb25e0735ce9f40f923d14cbd21f32fdac7283794270afcb0f221ad24662ac35934fcb73675cd) set(PATCHES # Fix CMake Deprecation Warning concerning OLD behavior for policy CMP0026 # Suppress MSVC compiler warnings C4703, C4146, C4308, which fixes errors # under x64-uwp and arm-uwp pcre-8.45_suppress_cmake_and_compiler_warnings-errors.patch # Modified for 8.45 from https://bugs.exim.org/show_bug.cgi?id=2600 pcre-8.45_fix_postfix_for_debug_Windows_builds.patch export-cmake-targets.patch pcre-8.4.5_fix_check_function_exists_for_arm-androi_builds.patch) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO pcre/pcre REF ${PCRE_VERSION} FILENAME "pcre-${PCRE_VERSION}.zip" SHA512 ${EXPECTED_SHA} PATCHES ${PATCHES} ) set(IS_PCRE_SUPPORT_JIT YES) if(VCPKG_TARGET_ARCHITECTURE MATCHES "(loongarch|^s390)") set(IS_PCRE_SUPPORT_JIT NO) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPCRE_BUILD_TESTS=NO -DPCRE_BUILD_PCREGREP=NO -DPCRE_BUILD_PCRE32=YES -DPCRE_BUILD_PCRE16=YES -DPCRE_BUILD_PCRE8=YES -DPCRE_SUPPORT_JIT=${IS_PCRE_SUPPORT_JIT} -DPCRE_SUPPORT_UTF=YES -DPCRE_SUPPORT_UNICODE_PROPERTIES=YES # optional dependencies for PCREGREP -DPCRE_SUPPORT_LIBBZ2=OFF -DPCRE_SUPPORT_LIBZ=OFF -DPCRE_SUPPORT_LIBEDIT=OFF -DPCRE_SUPPORT_LIBREADLINE=OFF # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}" CONFIG_PATH "share/unofficial-${PORT}") foreach(FILE "${CURRENT_PACKAGES_DIR}/include/pcre.h" "${CURRENT_PACKAGES_DIR}/include/pcreposix.h") file(READ ${FILE} PCRE_H) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "defined(PCRE_STATIC)" "1" PCRE_H "${PCRE_H}") else() string(REPLACE "defined(PCRE_STATIC)" "0" PCRE_H "${PCRE_H}") endif() file(WRITE ${FILE} "${PCRE_H}") endforeach() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/pcre-config" "${CURRENT_PACKAGES_DIR}/debug/bin/pcre-config") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-pcre-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-pcre/unofficial-pcre-config.cmake" @ONLY) file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pcre/unofficial-pcre-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/unofficial-pcre-targets.cmake") ================================================ FILE: ports/pcre/vcpkg.json ================================================ { "name": "pcre", "version": "8.45", "port-version": 7, "description": "Perl Compatible Regular Expressions", "homepage": "https://www.pcre.org/", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pcre2/no-static-suffix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 523bdcb..9d5d1a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -942,8 +942,8 @@ if(PCRE2_BUILD_PCRE2_8) list(APPEND TARGETS pcre2-posix-static) if(MSVC) - set_target_properties(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8-static) - set_target_properties(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix-static) + set_target_properties(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8) + set_target_properties(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix) else() set_target_properties(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8) set_target_properties(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix) @@ -1049,7 +1049,7 @@ if(PCRE2_BUILD_PCRE2_16) list(APPEND TARGETS pcre2-16-static) if(MSVC) - set_target_properties(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16-static) + set_target_properties(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16) else() set_target_properties(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16) endif() @@ -1127,7 +1127,7 @@ if(PCRE2_BUILD_PCRE2_32) list(APPEND TARGETS pcre2-32-static) if(MSVC) - set_target_properties(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32-static) + set_target_properties(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32) else() set_target_properties(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32) endif() ================================================ FILE: ports/pcre2/pcre2-10.35_fix-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c970996..523bdcb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -894,6 +894,7 @@ endif() if(MSVC) add_compile_definitions(_CRT_SECURE_NO_DEPRECATE _CRT_SECURE_NO_WARNINGS) + add_compile_options(/wd4146) endif() set(TARGETS) ================================================ FILE: ports/pcre2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PCRE2Project/pcre2 REF "pcre2-${VERSION}" SHA512 4deef8ce95711e65fe07624e6b2aace794594adb15e8363a0279a7b947bf5c75a5858fbdc5251d0a28a7ca97ae8bba561aa5f85805d5c07d417d3e7b3b3486a4 HEAD_REF master PATCHES pcre2-10.35_fix-uwp.patch no-static-suffix.patch ) vcpkg_from_github( OUT_SOURCE_PATH SLJIT_SOURCE_PATH REPO zherczeg/sljit REF 45f910b78c6605ebf5b53d3ec7cb00f2312fe417 SHA512 c05c83cc762f430c01e2aaf876aaac41a70b67ed8b91bc81102ad527c8921c5e75b41bab35bb8237dd5f53fecd7b8f31206865efffce2ea0a1aa9c87079fc643 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/deps/sljit") file(MAKE_DIRECTORY "${SOURCE_PATH}/deps") file(RENAME "${SLJIT_SOURCE_PATH}" "${SOURCE_PATH}/deps/sljit") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" INSTALL_PDB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_STATIC_CRT) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES jit PCRE2_SUPPORT_JIT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_STATIC_LIBS=${BUILD_STATIC} -DPCRE2_STATIC_RUNTIME=${BUILD_STATIC_CRT} -DPCRE2_BUILD_PCRE2_8=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_SUPPORT_UNICODE=ON -DPCRE2_BUILD_TESTS=OFF -DPCRE2_BUILD_PCRE2GREP=OFF -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=ON -DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=ON -DCMAKE_DISABLE_FIND_PACKAGE_Readline=ON -DCMAKE_DISABLE_FIND_PACKAGE_Editline=ON -DINSTALL_MSVC_PDB=${INSTALL_PDB} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(READ "${CURRENT_PACKAGES_DIR}/include/pcre2.h" PCRE2_H) if(BUILD_STATIC) string(REPLACE "defined(PCRE2_STATIC)" "1" PCRE2_H "${PCRE2_H}") else() string(REPLACE "defined(PCRE2_STATIC)" "0" PCRE2_H "${PCRE2_H}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/pcre2.h" "${PCRE2_H}") vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/man" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/man" "${CURRENT_PACKAGES_DIR}/debug/share") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/pcre2") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/pcre2-config" "${CURRENT_PACKAGES_DIR}/tools/pcre2/pcre2-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/pcre2/pcre2-config" "${CURRENT_PACKAGES_DIR}" [[$(cd "$(dirname "$0")/../.."; pwd -P)]]) if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/pcre2/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/pcre2-config" "${CURRENT_PACKAGES_DIR}/tools/pcre2/debug/pcre2-config") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/pcre2/debug/pcre2-config" "${CURRENT_PACKAGES_DIR}/debug" [[$(cd "$(dirname "$0")/../../../debug"; pwd -P)]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/pcre2/debug/pcre2-config" [[${prefix}/include]] [[${prefix}/../include]]) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/pcre2/usage ================================================ The package pcre2 is compatible with built-in CMake targets: # Each component imports a target: # TARGETS: PCRE2::8BIT PCRE2::16BIT PCRE2::32BIT PCRE2::POSIX find_package(pcre2 CONFIG REQUIRED) target_link_libraries(main PRIVATE PCRE2::8BIT PCRE2::16BIT PCRE2::32BIT PCRE2::POSIX) ================================================ FILE: ports/pcre2/vcpkg.json ================================================ { "name": "pcre2", "version": "10.47", "description": "Regular Expression pattern matching using the same syntax and semantics as Perl 5.", "homepage": "https://github.com/PCRE2Project/pcre2", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "platform-default-features" ], "features": { "jit": { "description": "Enable support for Just-In-Time compiling regex matchers", "supports": "!emscripten & !ios" }, "platform-default-features": { "description": "Enable default features", "dependencies": [ { "name": "pcre2", "features": [ "jit" ], "platform": "!emscripten & !ios" } ] } } } ================================================ FILE: ports/pdal/cmake-project-include.cmake ================================================ include(CheckIncludeFileCXX) check_include_file_cxx("filesystem" HAVE_CXX17_FILESYSTEM) if(NOT HAVE_CXX17_FILESYSTEM) message(FATAL_ERROR "Unable to find header. PDAL requires full C++17 compiler support.") endif() set_source_files_properties("${PROJECT_SOURCE_DIR}/io/OGRWriter.cpp" PROPERTIES COMPILE_DEFINITIONS NOMINMAX) ================================================ FILE: ports/pdal/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ca5a692..e0651b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,12 +161,9 @@ if (WITH_TESTS) endif() add_subdirectory(dimbuilder) add_subdirectory(vendor/arbiter) -add_subdirectory(vendor/schema-validator) add_subdirectory(vendor/kazhdan) add_subdirectory(vendor/lazperf) -add_subdirectory(vendor/utfcpp) add_subdirectory(vendor/lepcc) -add_subdirectory(vendor/h3) add_subdirectory(tools) add_subdirectory(apps) @@ -230,12 +227,13 @@ add_library(PDAL::PDAL ALIAS ${PDAL_LIB_NAME}) +find_package(Eigen3 CONFIG REQUIRED) +target_link_libraries(${PDAL_LIB_NAME} PRIVATE Eigen3::Eigen) target_include_directories(${PDAL_LIB_NAME} SYSTEM BEFORE PRIVATE - ${PDAL_VENDOR_EIGEN_DIR} ${PDAL_VENDOR_DIR}/kazhdan - ${PDAL_VENDOR_DIR}/h3/include ) +target_link_libraries(${PDAL_LIB_NAME} PRIVATE h3::h3) target_include_directories(${PDAL_LIB_NAME} PRIVATE ${ROOT_DIR} @@ -269,6 +267,8 @@ target_link_libraries(${PDAL_LIB_NAME} ${PDAL_LIBDIR} ${WINSOCK_LIBRARY} ) +find_package(nanoflann CONFIG REQUIRED) +target_link_libraries(${PDAL_LIB_NAME} PRIVATE nanoflann::nanoflann) if (ZSTD_FOUND) target_link_libraries(${PDAL_LIB_NAME} @@ -304,9 +304,6 @@ target_include_directories(${PDAL_LIB_NAME} INTERFACE $) -target_compile_definitions(${PDAL_LIB_NAME} - PRIVATE - H3_PREFIX=PDALH3) if(WIN32) target_compile_definitions(${PDAL_LIB_NAME} diff --git a/cmake/h3.cmake b/cmake/h3.cmake index 398ad6d..fb3c9ad 100644 --- a/cmake/h3.cmake +++ b/cmake/h3.cmake @@ -2,5 +2,6 @@ # H3 configuration. # -set(PDAL_H3_LIB_NAME pdal_h3) +find_package(h3 CONFIG REQUIRED) +set(PDAL_H3_LIB_NAME h3::h3) diff --git a/cmake/schema-validator.cmake b/cmake/schema-validator.cmake index 1f9f996..aeb598c 100644 --- a/cmake/schema-validator.cmake +++ b/cmake/schema-validator.cmake @@ -1,5 +1,5 @@ # # N Lohmann JSON schema validator handler # -include(${PDAL_CMAKE_DIR}/nlohmann.cmake) -set(JSON_SCHEMA_LIB_NAME pdal_json_schema) +find_package(nlohmann_json_schema_validator CONFIG REQUIRED) +set(JSON_SCHEMA_LIB_NAME nlohmann_json_schema_validator::validator) diff --git a/cmake/utfcpp.cmake b/cmake/utfcpp.cmake index 6543ff6..dc6fac8 100644 --- a/cmake/utfcpp.cmake +++ b/cmake/utfcpp.cmake @@ -1,6 +1,7 @@ # # UTF CPP # -set(UTFCPP_INCLUDE_DIR ${PDAL_VENDOR_DIR}/utfcpp/source) +find_package(utf8cpp CONFIG REQUIRED) +set(UTFCPP_INCLUDE_DIR "") set(UTFCPP_LIB_NAME utf8::cpp) diff --git a/pdal/JsonFwd.hpp b/pdal/JsonFwd.hpp index 507c456..6b502d0 100644 --- a/pdal/JsonFwd.hpp +++ b/pdal/JsonFwd.hpp @@ -1,3 +1,4 @@ +#include #ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ diff --git a/pdal/private/KDImpl.hpp b/pdal/private/KDImpl.hpp index 473ffba..a69431f 100644 --- a/pdal/private/KDImpl.hpp +++ b/pdal/private/KDImpl.hpp @@ -34,7 +34,8 @@ #pragma once -#include +#include +#define SearchParams SearchParameters namespace pdal { @@ -116,7 +117,7 @@ public: PointIdList radius(double const& x, double const& y, double const& r) const { PointIdList output; - std::vector> ret_matches; + std::vector> ret_matches; nanoflann::SearchParams params; params.sorted = true; @@ -247,7 +248,7 @@ public: PointIdList radius(double x, double y, double z, double r) const { PointIdList output; - std::vector> ret_matches; + std::vector> ret_matches; nanoflann::SearchParams params; params.sorted = true; @@ -330,7 +331,7 @@ public: PointIdList radius(PointId idx, double r) const { PointIdList output; - std::vector> ret_matches; + std::vector> ret_matches; nanoflann::SearchParams params; params.sorted = true; diff --git a/tools/lasdump/CMakeLists.txt b/tools/lasdump/CMakeLists.txt index d0d4d64..595d724 100644 --- a/tools/lasdump/CMakeLists.txt +++ b/tools/lasdump/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable(lasdump ) target_link_libraries(lasdump PRIVATE + ${UTFCPP_LIB_NAME} ${PDAL_LAZPERF_LIB_NAME} GDAL::GDAL "$<$,$,9.0>>:-lstdc++fs>" ================================================ FILE: ports/pdal/external-dimbuilder.diff ================================================ diff --git a/dimbuilder/CMakeLists.txt b/dimbuilder/CMakeLists.txt index 99109b7..fa2355d 100644 --- a/dimbuilder/CMakeLists.txt +++ b/dimbuilder/CMakeLists.txt @@ -1,3 +1,6 @@ +add_executable(dimbuilder IMPORTED GLOBAL) +set_target_properties(dimbuilder PROPERTIES IMPORTED_LOCATION "${DIMBUILDER_EXECUTABLE}") +return() # # The seemingly strange arrangement of this cmake file allows you to build # this application as a standalone. ================================================ FILE: ports/pdal/find-library-suffix.diff ================================================ diff --git a/cmake/libraries.cmake b/cmake/libraries.cmake index 6847cf6..47e9748 100644 --- a/cmake/libraries.cmake +++ b/cmake/libraries.cmake @@ -2,7 +2,6 @@ set(PDAL_LIB_TYPE "SHARED") if (WIN32) - set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_IMPORT_LIBRARY_SUFFIX}) endif() ================================================ FILE: ports/pdal/gdal-3.11.diff ================================================ diff --git a/filters/OverlayFilter.cpp b/filters/OverlayFilter.cpp index 5246779..590ddcc 100644 --- a/filters/OverlayFilter.cpp +++ b/filters/OverlayFilter.cpp @@ -93,7 +93,7 @@ void OverlayFilter::prepared(PointTableRef table) void OverlayFilter::ready(PointTableRef table) { m_ds = OGRDSPtr(OGROpen(m_datasource.c_str(), 0, 0), - [](void *p){ if (p) ::OGR_DS_Destroy(p); }); + [](OGRDSPtr::element_type *p){ if (p) ::OGR_DS_Destroy(p); }); if (!m_ds) throwError("Unable to open data source '" + m_datasource + "'"); @@ -114,7 +114,7 @@ void OverlayFilter::ready(PointTableRef table) OGR_L_SetSpatialFilter(m_lyr, g.getOGRHandle()); } - auto featureDeleter = [](void *p) + auto featureDeleter = [](OGRFeaturePtr::element_type *p) { if (p) ::OGR_F_Destroy(p); diff --git a/filters/OverlayFilter.hpp b/filters/OverlayFilter.hpp index c9995d7..141bf51 100644 --- a/filters/OverlayFilter.hpp +++ b/filters/OverlayFilter.hpp @@ -41,6 +41,7 @@ #include #include #include +#include // Get GDAL's forward decls if available // otherwise make our own @@ -58,9 +59,13 @@ namespace gdal class ErrorHandler; } +#if __has_include() +typedef std::shared_ptr::type> OGRDSPtr; +typedef std::shared_ptr::type> OGRFeaturePtr; +#else typedef std::shared_ptr OGRDSPtr; typedef std::shared_ptr OGRFeaturePtr; -typedef std::shared_ptr OGRGeometryPtr; +#endif class Arg; @@ -90,8 +95,6 @@ private: OverlayFilter& operator=(const OverlayFilter&) = delete; OverlayFilter(const OverlayFilter&) = delete; - typedef std::shared_ptr OGRDSPtr; - OGRDSPtr m_ds; OGRLayerH m_lyr; std::string m_dimName; diff --git a/io/TIndexReader.cpp b/io/TIndexReader.cpp index 0d9c4ca..551b3ea 100644 --- a/io/TIndexReader.cpp +++ b/io/TIndexReader.cpp @@ -89,7 +89,7 @@ TIndexReader::FieldIndexes TIndexReader::getFields() { FieldIndexes indexes; - void *fDefn = OGR_L_GetLayerDefn(m_layer); + OGRFeatureDefnH fDefn = OGR_L_GetLayerDefn(m_layer); indexes.m_filename = OGR_FD_GetFieldIndex(fDefn, m_args->m_tileIndexColumnName.c_str()); diff --git a/io/TIndexReader.hpp b/io/TIndexReader.hpp index 1188a1c..ccedfb6 100644 --- a/io/TIndexReader.hpp +++ b/io/TIndexReader.hpp @@ -41,6 +41,15 @@ #include +// Get GDAL's forward decls if available +// otherwise make our own +#if __has_include() +#include +#else +using OGRDataSourceH = void *; +using OGRLayerH = void *; +#endif + namespace pdal { @@ -88,8 +97,8 @@ private: std::unique_ptr m_args; std::unique_ptr m_out_ref; - void *m_dataset; - void *m_layer; + OGRDataSourceH m_dataset; + OGRLayerH m_layer; StageFactory m_factory; MergeFilter m_merge; diff --git a/kernels/TIndexKernel.cpp b/kernels/TIndexKernel.cpp index 1f43c75..82d6c81 100644 --- a/kernels/TIndexKernel.cpp +++ b/kernels/TIndexKernel.cpp @@ -723,7 +723,7 @@ TIndexKernel::FieldIndexes TIndexKernel::getFields() { FieldIndexes indexes; - void *fDefn = OGR_L_GetLayerDefn(m_layer); + OGRFeatureDefnH fDefn = OGR_L_GetLayerDefn(m_layer); indexes.m_filename = OGR_FD_GetFieldIndex(fDefn, m_tileIndexColumnName.c_str()); diff --git a/kernels/TIndexKernel.hpp b/kernels/TIndexKernel.hpp index a6d8930..72849f7 100644 --- a/kernels/TIndexKernel.hpp +++ b/kernels/TIndexKernel.hpp @@ -40,6 +40,15 @@ #include #include +// Get GDAL's forward decls if available +// otherwise make our own +#if __has_include() +#include +#else +using OGRDataSourceH = void *; +using OGRLayerH = void *; +#endif + namespace pdal { class Polygon; @@ -118,8 +127,8 @@ private: BOX2D m_bounds; bool m_absPath; - void *m_dataset; - void *m_layer; + OGRDataSourceH m_dataset; + OGRLayerH m_layer; std::string m_tgtSrsString; std::string m_assignSrsString; bool m_fastBoundary; diff --git a/kernels/private/density/OGR.hpp b/kernels/private/density/OGR.hpp index 243a67a..f61ad4e 100644 --- a/kernels/private/density/OGR.hpp +++ b/kernels/private/density/OGR.hpp @@ -35,6 +35,15 @@ #include +// Get GDAL's forward decls if available +// otherwise make our own +#if __has_include() +#include +#else +using OGRDataSourceH = void *; +using OGRLayerH = void *; +#endif + namespace hexer { class HexGrid; @@ -45,9 +54,6 @@ namespace pdal class OGR { - using OGRDataSourceH = void *; - using OGRLayerH = void *; - public: OGR(std::string const& filename, const std::string& srs, std::string driver = "ESRI Shapefile", std::string layerName =""); diff --git a/pdal/Geometry.cpp b/pdal/Geometry.cpp index c598e66..fec6107 100644 --- a/pdal/Geometry.cpp +++ b/pdal/Geometry.cpp @@ -275,11 +275,11 @@ Geometry Geometry::getRing() const { throwNoGeos(); - int count = OGR_G_GetGeometryCount(m_geom.get()); + int count = OGR_G_GetGeometryCount(gdal::toHandle(m_geom.get())); if (count) { - OGRGeometryH ring = OGR_G_Clone(OGR_G_GetGeometryRef(m_geom.get(), 0)); + OGRGeometryH ring = OGR_G_Clone(OGR_G_GetGeometryRef(gdal::toHandle(m_geom.get()), 0)); OGRGeometryH linestring = OGR_G_ForceToLineString(ring); return Geometry(linestring, getSpatialReference()); diff --git a/pdal/SpatialReference.cpp b/pdal/SpatialReference.cpp index cf7abaa..7aec1b6 100644 --- a/pdal/SpatialReference.cpp +++ b/pdal/SpatialReference.cpp @@ -53,22 +53,13 @@ namespace { -struct OGRDeleter -{ - void operator()(OGRSpatialReference* o) - { - OSRDestroySpatialReference(o); - }; -}; - using OGRScopedSpatialReference = - std::unique_ptr; + std::unique_ptr; OGRScopedSpatialReference ogrCreateSrs(std::string s = "", double epoch=0.0) { OGRScopedSpatialReference r( - static_cast( - OSRNewSpatialReference(s.size() ? s.c_str() : nullptr))); + new OGRSpatialReference(s.size() ? s.c_str() : nullptr)); if (!pdal::Utils::compare_approx(epoch, 0.0f, 0.00001f)) { #if GDAL_VERSION_NUM >= GDAL_COMPUTE_VERSION(3,4,0) @@ -129,7 +120,7 @@ bool SpatialReference::valid() const { OGRSpatialReference current(m_wkt.data()); - return OSRValidate(¤t) == OGRERR_NONE; + return current.Validate() == OGRERR_NONE; } @@ -367,7 +358,7 @@ bool SpatialReference::equals(const SpatialReference& input) const if (!current || !other) return false; - int output = OSRIsSame(current.get(), other.get()); + int output = current.get()->IsSame(other.get()); return (output == 1); } @@ -398,7 +389,7 @@ bool SpatialReference::isGeographic() const if (!current) return false; - bool output = OSRIsGeographic(current.get()); + bool output = current.get()->IsGeographic(); return output; } @@ -409,7 +400,7 @@ bool SpatialReference::isGeocentric() const if (!current) return false; - bool output = OSRIsGeocentric(current.get()); + bool output = current.get()->IsGeocentric(); return output; } @@ -420,7 +411,7 @@ bool SpatialReference::isProjected() const if (!current) return false; - bool output = OSRIsProjected(current.get()); + bool output = current.get()->IsProjected(); return output; } @@ -573,7 +564,7 @@ int SpatialReference::getUTMZone() const throw pdal_error("Could not fetch current SRS"); int north(0); - int zone = OSRGetUTMZone(current.get(), &north); + int zone = current.get()->GetUTMZone(&north); return (north ? 1 : -1) * zone; } diff --git a/pdal/private/gdal/GDALUtils.cpp b/pdal/private/gdal/GDALUtils.cpp index b9d295c..04b7c17 100644 --- a/pdal/private/gdal/GDALUtils.cpp +++ b/pdal/private/gdal/GDALUtils.cpp @@ -357,7 +357,7 @@ std::vector getPolygons(const OGRSpecOptions& ogr) throw pdal_error("Unable to execute OGR SQL query."); SpatialRef sref; - sref.setFromLayer(poLayer); + sref.setFromLayer(reinterpret_cast(poLayer)); ds->ReleaseResultSet(poLayer); poly.update(options.at("geometry").get()); @@ -380,7 +380,7 @@ std::vector getPolygons(const OGRSpecOptions& ogr) std::vector polys; while ((poFeature = poLayer->GetNextFeature()) != NULL) { - polys.emplace_back(poFeature->GetGeometryRef()); + polys.emplace_back(reinterpret_cast(poFeature->GetGeometryRef())); OGRFeature::DestroyFeature( poFeature ); } diff --git a/pdal/private/gdal/SpatialRef.cpp b/pdal/private/gdal/SpatialRef.cpp index 049867e..63bba9e 100644 --- a/pdal/private/gdal/SpatialRef.cpp +++ b/pdal/private/gdal/SpatialRef.cpp @@ -106,9 +106,9 @@ bool SpatialRef::empty() const return wkt().empty(); } -void SpatialRef::newRef(void *v) +void SpatialRef::newRef(OGRSpatialReferenceH v) { - m_ref = RefPtr(v, [](void* t){ OSRDestroySpatialReference(t); } ); + m_ref = RefPtr(v, [](OGRSpatialReferenceH t){ OSRDestroySpatialReference(t); } ); } } // namespace gdal diff --git a/pdal/private/gdal/SpatialRef.hpp b/pdal/private/gdal/SpatialRef.hpp index 4d2b34d..80a114c 100644 --- a/pdal/private/gdal/SpatialRef.hpp +++ b/pdal/private/gdal/SpatialRef.hpp @@ -35,6 +35,7 @@ #pragma once #include +#include // Get GDAL's forward decls if available // otherwise make our own @@ -42,6 +43,7 @@ #include #else using OGRLayerH = void *; + using OGRSpatialReferenceH = void *; #endif @@ -53,7 +55,7 @@ namespace gdal class SpatialRef { - typedef std::shared_ptr RefPtr; + typedef std::shared_ptr::type> RefPtr; public: SpatialRef(); SpatialRef(const std::string& srs); @@ -65,7 +67,7 @@ public: bool empty() const; private: - void newRef(void *v); + void newRef(OGRSpatialReferenceH v); RefPtr m_ref; }; ================================================ FILE: ports/pdal/h3api.h ================================================ #include

#define PDALH3degsToRads degsToRads #define PDALH3radsToDegs radsToDegs #define PDALH3latLngToCell latLngToCell #define PDALH3localIjToCell localIjToCell #define PDALH3cellToLocalIj cellToLocalIj #define PDALH3cellsToDirectedEdge cellsToDirectedEdge #define PDALH3directedEdgeToBoundary directedEdgeToBoundary ================================================ FILE: ports/pdal/no-rpath.patch ================================================ diff --git a/cmake/rpath.cmake b/cmake/rpath.cmake index ba486b7..4323a77 100644 --- a/cmake/rpath.cmake +++ b/cmake/rpath.cmake @@ -1,6 +1,7 @@ # # Set options and variable related to OSX rpath. # +return() # per http://www.cmake.org/Wiki/CMake_RPATH_handling SET(CMAKE_SKIP_BUILD_RPATH FALSE) ================================================ FILE: ports/pdal/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PDAL/PDAL REF "${VERSION}" #[[ Attention: pdal-dimbuilder must be updated together with pdal #]] SHA512 7ed8300bf700abf79314aa3f9867d05a0ae077e4a8d4940a19f91c89869cfe2dfbe0d1ba5679d8457e64adcf1f924dec46686d022bfd6046657ab829795059a7 HEAD_REF master PATCHES dependencies.diff external-dimbuilder.diff find-library-suffix.diff no-rpath.patch rapidxml.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake/modules/FindCurl.cmake" "${SOURCE_PATH}/cmake/modules/FindGeoTIFF.cmake" "${SOURCE_PATH}/cmake/modules/FindICONV.cmake" "${SOURCE_PATH}/cmake/modules/FindZSTD.cmake" "${SOURCE_PATH}/vendor/eigen" "${SOURCE_PATH}/vendor/h3" "${SOURCE_PATH}/vendor/nanoflann" "${SOURCE_PATH}/vendor/nlohmann" "${SOURCE_PATH}/vendor/schema-validator" "${SOURCE_PATH}/vendor/utfcpp" ) # PDAL includes "h3api.h", and some calls are decorated with PDALH3 file(COPY "${CURRENT_PORT_DIR}/h3api.h" DESTINATION "${SOURCE_PATH}") # PDAL uses namespace 'NL' for nlohmann file(COPY "${CURRENT_INSTALLED_DIR}/include/nlohmann" DESTINATION "${SOURCE_PATH}/vendor/nlohmann/") file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json.hpp" "\nnamespace NL = nlohmann;\n") file(APPEND "${SOURCE_PATH}/vendor/nlohmann/nlohmann/json_fwd.hpp" "\nnamespace NL = nlohmann;\n") file(WRITE "${SOURCE_PATH}/pdal/JsonFwd.hpp" "/* vcpkg redacted */\n#include \nnamespace NL = nlohmann;\n") file(MAKE_DIRECTORY "${SOURCE_PATH}/vendor/nlohmann/schema-validator") file(WRITE "${SOURCE_PATH}/vendor/nlohmann/schema-validator/json-schema.hpp" "/* vcpkg redacted */\n#include \n") # PDAL vendors arbiter vendors rapidxml file(COPY "${CURRENT_INSTALLED_DIR}/include/rapidxml/rapidxml.hpp" DESTINATION "${SOURCE_PATH}/vendor/arbiter/") unset(ENV{OSGEO4W_HOME}) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES draco BUILD_PLUGIN_DRACO e57 BUILD_PLUGIN_E57 hdf5 BUILD_PLUGIN_HDF lzma WITH_LZMA pgpointcloud BUILD_PLUGIN_PGPOINTCLOUD spz BUILD_PLUGIN_SPZ zstd WITH_ZSTD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" "-DDIMBUILDER_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/pdal-dimbuilder/dimbuilder${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DPDAL_PLUGIN_INSTALL_PATH=. -DWITH_TESTS:BOOL=OFF -DWITH_COMPLETION:BOOL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Libexecinfo:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Libunwind:BOOL=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PDAL) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # Install and cleanup executables file(GLOB pdal_unsupported "${CURRENT_PACKAGES_DIR}/bin/*.bat" "${CURRENT_PACKAGES_DIR}/bin/pdal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/*.bat" "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe" "${CURRENT_PACKAGES_DIR}/debug/bin/pdal-config" ) file(REMOVE ${pdal_unsupported}) vcpkg_copy_tools(TOOL_NAMES pdal AUTO_CLEAN) # Post-install clean-up file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/csf" "${CURRENT_PACKAGES_DIR}/include/pdal/filters/private/miniball" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(arbiter_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/arbiter LICENSE") file(COPY_FILE "${SOURCE_PATH}/vendor/arbiter/LICENSE" "${arbiter_license}") set(kazhdan_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/kazhdan license (PoissonRecon.h)") file(READ "${SOURCE_PATH}/vendor/kazhdan/PoissonRecon.h" license) string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") file(WRITE "${kazhdan_license}" "${license}") set(lazperf_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lazperf license (lazperf.hpp)") file(READ "${SOURCE_PATH}/vendor/lazperf/lazperf.hpp" license) string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") file(WRITE "${lazperf_license}" "${license}") set(lepcc_license "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/LEPCC license (LEPCC.h)") file(READ "${SOURCE_PATH}/vendor/lepcc/src/LEPCC.h" license) string(REGEX REPLACE "^/\\*\n|\\*/.*\$" "" license "${license}") file(WRITE "${lepcc_license}" "${license}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${arbiter_license}" "${kazhdan_license}" "${lazperf_license}" "${lepcc_license}" ) ================================================ FILE: ports/pdal/rapidxml.diff ================================================ diff --git a/vendor/arbiter/arbiter.hpp b/vendor/arbiter/arbiter.hpp index 0b4a664..236411b 100644 --- a/vendor/arbiter/arbiter.hpp +++ b/vendor/arbiter/arbiter.hpp @@ -51,7 +51,8 @@ SOFTWARE. // Beginning of content of file: arbiter/third/xml/rapidxml.hpp // ////////////////////////////////////////////////////////////////////// -#ifndef RAPIDXML_HPP_INCLUDED +#include "rapidxml.hpp" +#if 0 #define RAPIDXML_HPP_INCLUDED /* ================================================ FILE: ports/pdal/usage ================================================ pdal provides CMake targets: find_package(PDAL CONFIG REQUIRED) target_link_libraries(main PRIVATE pdalcpp) If necessary, override the default plugin search path by setting the environment variable PDAL_DRIVER_PATH to a list of directories that PDAL should search for plugins. ================================================ FILE: ports/pdal/vcpkg.json ================================================ { "name": "pdal", "version": "2.9.3", "description": "PDAL - Point Data Abstraction Library is a library for manipulating point cloud data.", "homepage": "https://pdal.org/", "license": null, "supports": "!(static & staticcrt)", "dependencies": [ { "name": "curl", "default-features": false }, "eigen3", { "name": "gdal", "default-features": false }, "h3", "json-schema-validator", "libgeotiff", { "name": "libxml2", "default-features": false }, "nanoflann", "nlohmann-json", { "name": "pdal-dimbuilder", "host": true }, "rapidxml", "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "supported-plugins" ], "features": { "draco": { "description": "Build the Draco plugin", "dependencies": [ "draco" ] }, "e57": { "description": "Build the E57 plugin", "dependencies": [ "xerces-c" ] }, "hdf": { "description": "Build the HDF plugin", "dependencies": [ { "name": "hdf5", "default-features": false } ] }, "liblzma": { "description": "Support for compression/decompression with LZMA", "dependencies": [ "liblzma" ] }, "pgpointcloud": { "description": "Build the PgPointCloud plugin", "dependencies": [ { "name": "libpq", "default-features": false } ] }, "spz": { "description": "Build the SPZ plugin", "dependencies": [ "spz" ] }, "supported-plugins": { "description": "Default set of plugins, dependent on platform", "dependencies": [ { "name": "pdal", "default-features": false, "features": [ "draco", "e57" ] }, { "name": "pdal", "default-features": false, "features": [ "hdf", "pgpointcloud" ], "platform": "!uwp" } ] }, "zstd": { "description": "Support for ZSTD compression/decompression", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/pdal-c/cmake-project-include.cmake ================================================ if(WIN32) add_compile_definitions(NOMINMAX) endif() ================================================ FILE: ports/pdal-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PDAL/CAPI REF "v${VERSION}" SHA512 6fe2136831e37c2f87643b3c971a1397d8912c230e9bfde53a51ec1769bc5c2f08482395263906975c5d40dbabd32852a5a145a159cdcf2548390a0aff72a295 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DPDALC_ENABLE_CODE_COVERAGE:BOOL=OFF -DPDALC_ENABLE_DOCS:BOOL=OFF -DPDALC_ENABLE_TESTS:BOOL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git:BOOL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Remove headers from debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Install copyright file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pdal-c/vcpkg.json ================================================ { "name": "pdal-c", "version": "2.2.0", "description": "C API for the Point Data Abstraction Library (PDAL)", "homepage": "https://github.com/PDAL/CAPI#readme", "supports": "!(windows & staticcrt)", "dependencies": [ { "name": "pdal", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/pdal-dimbuilder/namespace-nl.diff ================================================ diff --git a/dimbuilder/DimBuilder.hpp b/dimbuilder/DimBuilder.hpp index cb6dc54..8bee581 100644 --- a/dimbuilder/DimBuilder.hpp +++ b/dimbuilder/DimBuilder.hpp @@ -35,6 +35,7 @@ #include #include +namespace NL = nlohmann; #include ================================================ FILE: ports/pdal-dimbuilder/portfile.cmake ================================================ # Host tool needed by pdal. No bells and whistles. set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PDAL/PDAL REF "${VERSION}" #[[ Attention: pdal must be updated together with pdal-dimbuilder #]] SHA512 7ed8300bf700abf79314aa3f9867d05a0ae077e4a8d4940a19f91c89869cfe2dfbe0d1ba5679d8457e64adcf1f924dec46686d022bfd6046657ab829795059a7 HEAD_REF master PATCHES namespace-nl.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/vendor") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/dimbuilder" OPTIONS "-DNLOHMANN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include" "-DUTFCPP_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/utf8cpp" ) vcpkg_cmake_build() vcpkg_copy_tools(TOOL_NAMES dimbuilder SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/pdal-dimbuilder/vcpkg.json ================================================ { "name": "pdal-dimbuilder", "version": "2.9.3", "description": "A tool used by the PDAL build process", "homepage": "https://pdal.org/", "license": "BSD-3-Clause", "supports": "native", "dependencies": [ "nlohmann-json", "utfcpp", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/pdcurses/LICENSE ================================================ The core package is in the public domain, but small portions of PDCurses are subject to copyright under various licenses. The win32 files are released to the public domain. If you use PDCurses in an application, an acknowledgement would be appreciated, but is not mandatory. If you make corrections or enhancements to PDCurses, please forward them to the current maintainer for the benefit of other users. This software is provided AS IS with NO WARRANTY whatsoever. ================================================ FILE: ports/pdcurses/nmake-install.patch ================================================ diff --git a/wincon/Makefile.vc b/wincon/Makefile.vc index 80c4689..1bae388 100644 --- a/wincon/Makefile.vc +++ b/wincon/Makefile.vc @@ -118,3 +118,16 @@ tui.obj: $(demodir)\tui.c $(demodir)\tui.h tuidemo.obj: $(demodir)\tuidemo.c $(BUILD) -I$(demodir) $(demodir)\tuidemo.c + +install: all + -mkdir $(INSTALLDIR)\lib + copy pdcurses.lib $(INSTALLDIR)\lib +!ifdef DLL + -mkdir $(INSTALLDIR)\bin + copy pdcurses.dll $(INSTALLDIR)\bin +!endif +!ifndef SKIP_HEADERS + -mkdir $(INSTALLDIR)\include + copy $(PDCURSES_SRCDIR)\curses.h $(INSTALLDIR)\include + copy $(PDCURSES_SRCDIR)\panel.h $(INSTALLDIR)\include +!endif ================================================ FILE: ports/pdcurses/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wmcbrine/PDCurses REF ${VERSION} SHA512 4fd7c1221c5f34d94069a563dda7a796653148d903bc9023afe134b0f13bdc8b5d30000dfc80ab800e46e58b395ac2fb494d1316b80914998de5bacf0d7f3558 HEAD_REF master PATCHES nmake-install.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) cmake_path(NATIVE_PATH SOURCE_PATH PDCURSES_SRCDIR) set(DLL_OPTION "") if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(DLL_OPTION DLL=Y) endif() vcpkg_build_nmake( SOURCE_PATH "${SOURCE_PATH}/wincon" PROJECT_NAME Makefile.vc ENABLE_INSTALL OPTIONS /A "PDCURSES_SRCDIR=${PDCURSES_SRCDIR}" WIDE=Y UTF8=Y PLATFORM=${VCPKG_TARGET_ARCHITECTURE} ${DLL_OPTION} OPTIONS_RELEASE "CFLAGS=-D_CRT_SECURE_NO_WARNINGS" "LDFLAGS=" OPTIONS_DEBUG "CFLAGS=-D_CRT_SECURE_NO_WARNINGS -DPDCDEBUG" "LDFLAGS=-debug" DEBUG=Y SKIP_HEADERS=Y ) vcpkg_copy_pdbs() if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/curses.h" "#ifdef PDC_DLL_BUILD" "#if 1") endif() endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-pdcurses-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/LICENSE") ================================================ FILE: ports/pdcurses/unofficial-pdcurses-config.cmake ================================================ if(NOT TARGET unofficial::pdcurses::pdcurses) add_library(unofficial::pdcurses::pdcurses UNKNOWN IMPORTED) get_filename_component(z_vcpkg_pdcurses_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_pdcurses_root "${z_vcpkg_pdcurses_root}" PATH) get_filename_component(z_vcpkg_pdcurses_root "${z_vcpkg_pdcurses_root}" PATH) set_target_properties(unofficial::pdcurses::pdcurses PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_vcpkg_pdcurses_root}/include" ) find_library(Z_VCPKG_PDCURSES_LIBRARY_RELEASE NAMES pdcurses PATHS "${z_vcpkg_pdcurses_root}/lib" NO_DEFAULT_PATH) if(EXISTS "${Z_VCPKG_PDCURSES_LIBRARY_RELEASE}") set_property(TARGET unofficial::pdcurses::pdcurses APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::pdcurses::pdcurses PROPERTIES IMPORTED_LOCATION_RELEASE "${Z_VCPKG_PDCURSES_LIBRARY_RELEASE}") endif() find_library(Z_VCPKG_PDCURSES_LIBRARY_DEBUG NAMES pdcurses PATHS "${z_vcpkg_pdcurses_root}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${Z_VCPKG_PDCURSES_LIBRARY_DEBUG}") set_property(TARGET unofficial::pdcurses::pdcurses APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::pdcurses::pdcurses PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_PDCURSES_LIBRARY_DEBUG}") endif() unset(z_vcpkg_pdcurses_root) endif() ================================================ FILE: ports/pdcurses/vcpkg.json ================================================ { "name": "pdcurses", "version": "3.9", "port-version": 7, "description": "Public Domain Curses - a curses library for environments that don't fit the termcap/terminfo model.", "homepage": "https://pdcurses.org/", "license": null, "supports": "windows & !uwp & !mingw" } ================================================ FILE: ports/pdqsort/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orlp/pdqsort REF 08879029ab8dcb80a70142acb709e3df02de5d37 SHA512 38e8b6e35edf1e88e26850a13ce892d8adc0d3e1d7954287d024b3bb858a6b2284e25fbf7c92a694b3ec77cacaf6bbc27fc365187115f7cca6bc88088f67a18f HEAD_REF master ) file(COPY ${SOURCE_PATH}/pdqsort.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pdqsort) # Handle copyright file(COPY ${SOURCE_PATH}/license.txt ${SOURCE_PATH}/readme.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/pdqsort) file(RENAME ${CURRENT_PACKAGES_DIR}/share/pdqsort/license.txt ${CURRENT_PACKAGES_DIR}/share/pdqsort/copyright) ================================================ FILE: ports/pdqsort/vcpkg.json ================================================ { "name": "pdqsort", "version-date": "2019-07-30", "port-version": 2, "description": "Pattern-defeating quicksort (pdqsort) is a novel sorting algorithm", "homepage": "https://github.com/orlp/pdqsort" } ================================================ FILE: ports/pe-parse/arm64-windows-fix.patch ================================================ find_package(Filesystem) fails on arm64 Windows. We can remove it as it is only used for tests which are not built in vcpkg. diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,6 @@ endif () include(cmake/compilation_flags.cmake) # Greater c++17 filesystem compatibility (like with experimental) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") -find_package(Filesystem COMPONENTS Experimental Final REQUIRED) list(APPEND GLOBAL_CXXFLAGS ${DEFAULT_CXX_FLAGS}) option(BUILD_SHARED_LIBS "Build Shared Libraries" ON) ================================================ FILE: ports/pe-parse/no-werror.patch ================================================ diff --git a/cmake/compilation_flags.cmake b/cmake/compilation_flags.cmake index 395f1b5..bb10165 100644 --- a/cmake/compilation_flags.cmake +++ b/cmake/compilation_flags.cmake @@ -26,7 +26,7 @@ else () -pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlong-long -Wmissing-declarations -Wmissing-include-dirs -Wcomment -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion - -Wsign-promo -Wstrict-overflow=5 -Wswitch-default -Wundef -Werror -Wunused -Wuninitialized + -Wsign-promo -Wstrict-overflow=5 -Wswitch-default -Wundef -Wunused -Wuninitialized -Wno-missing-declarations -Wno-strict-overflow ) diff --git a/examples/peaddrconv/CMakeLists.txt b/examples/peaddrconv/CMakeLists.txt index fbad06a..02c8bcf 100644 --- a/examples/peaddrconv/CMakeLists.txt +++ b/examples/peaddrconv/CMakeLists.txt @@ -26,7 +26,7 @@ else () -pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlong-long -Wmissing-declarations -Wmissing-include-dirs -Wcomment -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion - -Wsign-promo -Wstrict-overflow=5 -Wswitch-default -Wundef -Werror -Wunused -Wuninitialized + -Wsign-promo -Wstrict-overflow=5 -Wswitch-default -Wundef -Wunused -Wuninitialized -Wno-missing-declarations ) ================================================ FILE: ports/pe-parse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO trailofbits/pe-parse REF "v${VERSION}" SHA512 fae9060c48e2cebdfbb742c52bc39c36335c1ad4fc7e6bc75a7da012f59d16497630d40ca814c8da71acc44dcce82983ebe13da3a0d389cc53032261fcd1f6bb HEAD_REF master PATCHES arm64-windows-fix.patch no-werror.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_COMMAND_LINE_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/pe-parse") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pe-parse/vcpkg.json ================================================ { "name": "pe-parse", "version": "2.1.1", "description": "pe-parse is a principled, lightweight C/C++ PE parser", "homepage": "https://github.com/trailofbits/pe-parse", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pegtl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taocpp/pegtl REF "${VERSION}" SHA512 aecf9396edbdd65549603484d1841cd676b197d164ee2979ee5acaf657da4fa9ebc1a59fc8550cfa440ce27794cdc59cdf86a6521e4bda084c0600cb2c92f5cf HEAD_REF 3.x ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPEGTL_BUILD_TESTS=OFF -DPEGTL_BUILD_EXAMPLES=OFF -DPEGTL_INSTALL_DOC_DIR=share/pegtl -DPEGTL_INSTALL_CMAKE_DIR=share/pegtl/cmake ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/pegtl/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/pegtl/vcpkg.json ================================================ { "name": "pegtl", "version-semver": "3.2.8", "description": "The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG).", "homepage": "https://github.com/taocpp/PEGTL", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pegtl-2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taocpp/pegtl REF 47e878ad4fd72c91253c9d47b6f17e001ca2dfcf # 2.8.3 SHA512 c7761e36dd28914d89a2d5e2a5ce5ea84bab50b7f7ad235b18dbeca41a675503b00b0fe152247515f81ec380f3c68cf827e667cb3b9a7e34c6d2f5dd60fb4106 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPEGTL_BUILD_TESTS=OFF -DPEGTL_BUILD_EXAMPLES=OFF -DPEGTL_INSTALL_INCLUDE_DIR=include/pegtl-2 -DPEGTL_INSTALL_DOC_DIR=share/pegtl-2 -DPEGTL_INSTALL_CMAKE_DIR=share/pegtl-2/cmake ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/pegtl-2/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") # Handle collision with latest pegtl file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/pegtl-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/pegtl-config-version.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config-version.cmake") ================================================ FILE: ports/pegtl-2/vcpkg.json ================================================ { "name": "pegtl-2", "version": "2.8.3", "port-version": 3, "description": "The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++ header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG). This version maintains compatibility with C++11.", "homepage": "https://github.com/taocpp/PEGTL", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/perfetto/CMakeLists.txt ================================================ # Unofficial perfetto CMakeLists.txt from https://github.com/google/perfetto/blob/v43.1/meson.build cmake_minimum_required(VERSION 3.23) project(perfetto LANGUAGES CXX) add_library(perfetto) target_compile_features(perfetto PRIVATE cxx_std_17) target_sources(perfetto PRIVATE "sdk/perfetto.cc" PUBLIC FILE_SET HEADERS BASE_DIRS "sdk" FILES "sdk/perfetto.h" ) set(THREADS_PREFER_PTHREAD_FLAG TRUE) find_package(Threads REQUIRED) target_link_libraries(perfetto PRIVATE Threads::Threads) if(ANDROID) target_link_libraries(perfetto PRIVATE log) endif(ANDROID) if(WIN32) target_compile_options(perfetto PRIVATE "/bigobj") target_compile_definitions(perfetto PRIVATE WIN32_LEAN_AND_MEAN NOMINMAX) target_link_libraries(perfetto PRIVATE ws2_32) endif(WIN32) if(MSVC) target_compile_options(perfetto PRIVATE "/permissive-") endif(MSVC) install(TARGETS perfetto EXPORT unofficial-perfetto-config FILE_SET HEADERS DESTINATION "include" ) install(EXPORT unofficial-perfetto-config NAMESPACE unofficial::perfetto:: DESTINATION "share/unofficial-perfetto" ) install(FILES "protos/perfetto/trace/perfetto_trace.proto" DESTINATION "share/unofficial-perfetto") ================================================ FILE: ports/perfetto/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/perfetto REF "v${VERSION}" SHA512 2e8b3c2b5db7336732c288793f9d1be72df3f69152b3d13a62e130fe5d29640c8abcf6e93604a67af38d65d6bee5a40da364d2166ea8f3984e9d390aa422fe61 HEAD_REF main ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/perfetto/vcpkg.json ================================================ { "name": "perfetto", "version": "53.0", "description": "System profiling, app tracing and trace analysis", "homepage": "https://perfetto.dev", "license": "Apache-2.0", "supports": "!uwp & !x86", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pffft/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12.4) project(pffft C) add_library(pffft pffft.c) if(MSVC) target_compile_definitions(pffft PRIVATE _USE_MATH_DEFINES) endif() target_include_directories(pffft PUBLIC $ $) install( TARGETS pffft EXPORT pffft-config ) install( EXPORT pffft-config NAMESPACE pffft:: DESTINATION share/pffft ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES pffft.h DESTINATION include/pffft) endif() ================================================ FILE: ports/pffft/copyright ================================================ Copyright (c) 2013 Julien Pommier ( pommier@modartt.com ) Based on original fortran 77 code from FFTPACKv4 from NETLIB (http://www.netlib.org/fftpack), authored by Dr Paul Swarztrauber of NCAR, in 1985. As confirmed by the NCAR fftpack software curators, the following FFTPACKv5 license applies to FFTPACKv4 sources. My changes are released under the same terms. FFTPACK license: http://www.cisl.ucar.edu/css/software/fftpack5/ftpk.html Copyright (c) 2004 the University Corporation for Atmospheric Research ("UCAR"). All rights reserved. Developed by NCAR's Computational and Information Systems Laboratory, UCAR, www.cisl.ucar.edu. Redistribution and use of the Software in source and binary forms, with or without modification, is permitted provided that the following conditions are met: - Neither the names of NCAR's Computational and Information Systems Laboratory, the University Corporation for Atmospheric Research, nor the names of its sponsors or contributors may be used to endorse or promote products derived from this Software without specific prior written permission. - Redistributions of source code must retain the above copyright notices, this list of conditions, and the disclaimer below. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions, and the disclaimer below in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. PFFFT : a Pretty Fast FFT. This file is largerly based on the original FFTPACK implementation, modified in order to take advantage of SIMD instructions of modern CPUs. ================================================ FILE: ports/pffft/fix-invalid-command.patch ================================================ diff --git a/pffft.c b/pffft.c index ad905fd..df6ed31 100644 --- a/pffft.c +++ b/pffft.c @@ -192,7 +192,11 @@ typedef float32x4_t v4sf; # define VALIGNED(ptr) ((((size_t)(ptr)) & 0x3) == 0) #else # if !defined(PFFFT_SIMD_DISABLE) -# warning "building with simd disabled !\n"; +# ifdef COMPILER_MSVC +# pragma message ("building with simd disabled !\n"); +# else +# warning "building with simd disabled !\n"; +# endif # define PFFFT_SIMD_DISABLE // fallback to scalar code # endif #endif ================================================ FILE: ports/pffft/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO jpommier/pffft REF "v${VERSION}" SHA512 074c7a60ee99acddc6e04c7653b9585c6a306b4a1f05a553191021ae1916fff31cc1291ff24fd53cc1988b26142b704f9319df636af1f99a5df0099d5157eba0 HEAD_REF master PATCHES fix-invalid-command.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(COPY "${CMAKE_CURRENT_LIST_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/pffft/vcpkg.json ================================================ { "name": "pffft", "version": "1.0.0", "description": "PFFFT, a pretty fast Fourier Transform.", "homepage": "https://bitbucket.org/jpommier/pffft/", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pfring/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ntop/PF_RING REF "${VERSION}" SHA512 fc540d31027fc3a674a874c22bcbecb2b5ed6c7c7af534e876e6a2a2679cffc391a031e30d307b4e8fe294170ba5f5691fe3630cb131190db035b06f50a03d60 HEAD_REF dev ) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/kernel") file(COPY "${SOURCE_PATH}/kernel/linux/pf_ring.h" DESTINATION "${CURRENT_BUILDTREES_DIR}/kernel/linux") vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "userland" COPY_SOURCE OPTIONS --disable-archopt ) string(REPLACE "dynamic" "shared" install_target "install-${VCPKG_LIBRARY_LINKAGE}") vcpkg_install_make( SUBPATH "lib" INSTALL_TARGET "${install_target}" OPTIONS "LEX=${FLEX}" "YACC=${BISON}" ) vcpkg_install_copyright( COMMENT [[ The user-space PF_RING library source code is distributed under the LGPLv2.1. The library is built using binary objects from the userland/lib/libs directory which adds an NTOP END USER LICENSE AGREEMENT. ]] FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/userland/lib/libs/EULA.txt" ) ================================================ FILE: ports/pfring/vcpkg.json ================================================ { "name": "pfring", "version": "8.8.0", "description": "Library to interface with the PF_RING™ kernel module for processing packets at high-rates while providing a consistent API.", "homepage": "https://github.com/ntop/PF_RING", "license": null, "supports": "linux" } ================================================ FILE: ports/pfultz2-linq/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pfultz2/Linq REF 7ff0a73fed52be5e11df3d79128ce7b11f430af2 SHA512 6768e28bf17568436b4c3fed18f6b1edbe048b871ebee25580419b805498beb0800e473ecdc5acc0f9f89bec47d16fd3806018ce6395bdf14a8e2975cde9381f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/linq PACKAGE_NAME linq) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/pfultz2-linq/vcpkg.json ================================================ { "name": "pfultz2-linq", "version-date": "2019-05-14", "port-version": 3, "description": "Linq for list comprehension in C++", "dependencies": [ "boost-fusion", "boost-iterator", "boost-mpl", "boost-optional", "boost-preprocessor", "boost-range", "boost-static-assert", "boost-type-traits", "boost-unordered", "boost-utility", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/phnt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO winsiderss/phnt REF 48759c9b5916a359df706789f71053e49b528a18 SHA512 1e0735cc3be3a2679a82f715159d68d9e4b2c52fa754e6166003163ed61ec3faafc8281129d95edf5c035f1e3f4c0a003f66d72a22108f778bf1f187df2bb459 HEAD_REF master ) file(GLOB HEADER_FILES ${SOURCE_PATH}/*.h) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include) configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/phnt/vcpkg.json ================================================ { "name": "phnt", "version-date": "2025-02-05", "description": "Windows Native API header files", "homepage": "https://github.com/winsiderss/phnt" } ================================================ FILE: ports/physac/LICENSE ================================================ MIT License Copyright (c) 2022 Víctor Fisac Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: ports/physac/portfile.cmake ================================================ #header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO victorfisac/Physac REF "${VERSION}" SHA512 c539ee73d6f456e592d4a92cc5707278476632626b0fa0edfe6396cd4460fe0c2669843f4df3a22a132664d1981d261601061cca76ad1e4b63510a901fc3987b HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/src/physac.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/LICENSE") ================================================ FILE: ports/physac/vcpkg.json ================================================ { "name": "physac", "version": "1.1", "description": "2D physics header-only library for videogames developed in C using raylib library.", "homepage": "https://github.com/victorfisac/Physac", "license": "MIT" } ================================================ FILE: ports/physfs/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO icculus/physfs REF "release-${VERSION}" SHA512 e0d84d6ac6bd8f0973149a5add54ed5ed890b5fabb4592ba61b59a3b3e01c05e05f1754f18d7a1c8d72e68777a23cda0c50dc0512cf57a8310a950bf908f54b1 ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PHYSFS_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PHYSFS_SHARED) set(generator_param "") if(VCPKG_TARGET_IS_UWP) set(generator_param WINDOWS_USE_MSBUILD) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${generator_param} OPTIONS -DPHYSFS_BUILD_STATIC=${PHYSFS_STATIC} -DPHYSFS_BUILD_SHARED=${PHYSFS_SHARED} -DPHYSFS_BUILD_TEST=OFF -DPHYSFS_BUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PhysFS) vcpkg_fixup_pkgconfig() if(PHYSFS_STATIC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/physfs.h" "defined(PHYSFS_STATIC)" "1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/physfs.h" "dllexport" "dllimport") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/physfs/usage ================================================ physfs provides CMake targets: find_package(PhysFS CONFIG REQUIRED) target_link_libraries(main PRIVATE $,PhysFS::PhysFS,PhysFS::PhysFS-static>) physfs is compatible with built-in CMake targets: find_package(PhysFS REQUIRED) target_include_directories(main PRIVATE ${PHYSFS_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${PHYSFS_LIBRARY}) ================================================ FILE: ports/physfs/vcpkg-cmake-wrapper.cmake ================================================ find_library(PHYSFS_LIBRARY_RELEASE NAMES physfs physfs-static NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(PHYSFS_LIBRARY_DEBUG NAMES physfs physfs-static NAMES_PER_DIR PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) include(SelectLibraryConfigurations) select_library_configurations(PHYSFS) unset(PHYSFS_FOUND) _find_package(${ARGS}) ================================================ FILE: ports/physfs/vcpkg.json ================================================ { "name": "physfs", "version-semver": "3.2.0", "port-version": 1, "description": "a library to provide abstract access to various archives", "homepage": "https://icculus.org/physfs/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/physx/omniverse-physx-sdk-config.cmake ================================================ # omniverse-physx-sdk-config.cmake (from which unofficial-omniverse-physx-sdk-config.cmake is generated) # A user's CMakeLists.txt should: # find_package(unofficial-omniverse-physx-sdk CONFIG REQUIRED) # target_link_libraries(main PRIVATE unofficial::omniverse-physx-sdk::sdk) # the GPU acceleration .so/.dll libraries are in the port's tools/ directory (needed for late binding). # See the usage file for more info and more detailed explanation on how to use this. include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) if(NOT TARGET unofficial::omniverse-physx-sdk) # Find include and library directories (up one level multiple times) get_filename_component(z_vcpkg_omniverse_physx_sdk_prefix "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_omniverse_physx_sdk_prefix "${z_vcpkg_omniverse_physx_sdk_prefix}" PATH) get_filename_component(z_vcpkg_omniverse_physx_sdk_prefix "${z_vcpkg_omniverse_physx_sdk_prefix}" PATH) get_filename_component(OMNIVERSE-PHYSX-SDK_INCLUDE_DIRS "${z_vcpkg_omniverse_physx_sdk_prefix}/include/physx" ABSOLUTE) get_filename_component(OMNIVERSE-PHYSX-SDK_RELEASE_LIBS_DIR "${z_vcpkg_omniverse_physx_sdk_prefix}/lib" ABSOLUTE) get_filename_component(OMNIVERSE-PHYSX-SDK_DEBUG_LIBS_DIR "${z_vcpkg_omniverse_physx_sdk_prefix}/debug/lib" ABSOLUTE) get_filename_component(OMNIVERSE-PHYSX-SDK_RELEASE_BIN_DIR "${z_vcpkg_omniverse_physx_sdk_prefix}/bin" ABSOLUTE) get_filename_component(OMNIVERSE-PHYSX-SDK_DEBUG_BIN_DIR "${z_vcpkg_omniverse_physx_sdk_prefix}/debug/bin" ABSOLUTE) get_filename_component(OMNIVERSE-PHYSX-SDK_RELEASE_TOOLS_DIR "${z_vcpkg_omniverse_physx_sdk_prefix}/tools" ABSOLUTE) # Find main library files find_library(OMNIVERSE-PHYSX-SDK_LIBRARY_RELEASE NAMES PhysX_static_64 PhysX_64 PATHS "${OMNIVERSE-PHYSX-SDK_RELEASE_LIBS_DIR}" NO_DEFAULT_PATH) find_library(OMNIVERSE-PHYSX-SDK_LIBRARY_DEBUG NAMES PhysX_static_64 PhysX_64 PATHS "${OMNIVERSE-PHYSX-SDK_DEBUG_LIBS_DIR}" NO_DEFAULT_PATH) # Finally create the imported target that users will link against set(OMNIVERSE-PHYSX-SDK_LIBRARIES "") add_library(unofficial::omniverse-physx-sdk::sdk UNKNOWN IMPORTED) # Set IMPORTED_IMPLIB for the main target in case of dynamic libraries if (WIN32 AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set_target_properties(unofficial::omniverse-physx-sdk::sdk PROPERTIES IMPORTED_IMPLIB_RELEASE "${OMNIVERSE-PHYSX-SDK_LIBRARY_RELEASE}" IMPORTED_IMPLIB_DEBUG "${OMNIVERSE-PHYSX-SDK_LIBRARY_DEBUG}" ) endif() set_target_properties(unofficial::omniverse-physx-sdk::sdk PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_RELEASE "${OMNIVERSE-PHYSX-SDK_LIBRARY_RELEASE}" IMPORTED_LOCATION_DEBUG "${OMNIVERSE-PHYSX-SDK_LIBRARY_DEBUG}" INTERFACE_INCLUDE_DIRECTORIES "${OMNIVERSE-PHYSX-SDK_INCLUDE_DIRS}" ) # Add compile definitions to the target for debug/release builds target_compile_definitions(unofficial::omniverse-physx-sdk::sdk INTERFACE $<$:_DEBUG>) set(lib_names PhysXExtensions PhysXPvdSDK PhysXCharacterKinematic PhysXCooking PhysXCommon PhysXFoundation PhysXVehicle ) if(WIN32) list(APPEND lib_names PhysXVehicle2) endif() foreach(name IN LISTS lib_names) find_library(OMNIVERSE_${name}_LIBRARY_RELEASE NAMES ${name}_static_64 ${name}_64 # ... all candidates, only one should be installed for a given triplet PATHS "${OMNIVERSE-PHYSX-SDK_RELEASE_LIBS_DIR}" NO_DEFAULT_PATH REQUIRED ) find_library(OMNIVERSE_${name}_LIBRARY_DEBUG NAMES ${name}_static_64 ${name}_64 # ... all candidates, only one should be installed for a given triplet PATHS "${OMNIVERSE-PHYSX-SDK_DEBUG_LIBS_DIR}" NO_DEFAULT_PATH # not REQUIRED, due to release-only builds ) add_library(unofficial::omniverse-physx-sdk::${name} UNKNOWN IMPORTED) set_target_properties(unofficial::omniverse-physx-sdk::${name} PROPERTIES IMPORTED_CONFIGURATIONS "RELEASE" IMPORTED_LOCATION_RELEASE "${OMNIVERSE_${name}_LIBRARY_RELEASE}" ) if(OMNIVERSE_${name}_LIBRARY_DEBUG) set_target_properties(unofficial::omniverse-physx-sdk::${name} PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_DEBUG "${OMNIVERSE_${name}_LIBRARY_DEBUG}" ) endif() set_property(TARGET unofficial::omniverse-physx-sdk::sdk APPEND PROPERTY INTERFACE_LINK_LIBRARIES unofficial::omniverse-physx-sdk::${name} ) select_library_configurations(OMNIVERSE_${name}) endforeach() # Lastly also provide a target for clients to link with the GPU library (optional, provided by NVIDIA and downloaded through packman) # Find GPU library files (these are used at late-binding to enable GPU acceleration) if(WIN32) find_file(OMNIVERSE-PHYSX-SDK-GPU_LIBRARY_RELEASE NAMES PhysXGpu_64.dll PATHS "${OMNIVERSE-PHYSX-SDK_RELEASE_TOOLS_DIR}" NO_DEFAULT_PATH) find_file(OMNIVERSE-PHYSX-SDK-GPU_DEVICE_LIBRARY_RELEASE NAMES PhysXDevice64.dll PATHS "${OMNIVERSE-PHYSX-SDK_RELEASE_TOOLS_DIR}" NO_DEFAULT_PATH) elseif(UNIX) find_file(OMNIVERSE-PHYSX-SDK-GPU_LIBRARY_RELEASE NAMES libPhysXGpu_64.so PATHS "${OMNIVERSE-PHYSX-SDK_RELEASE_TOOLS_DIR}" NO_DEFAULT_PATH) endif() # Create imported targets for GPU library (only release is used) add_library(unofficial::omniverse-physx-sdk::gpu-library SHARED IMPORTED) set_target_properties(unofficial::omniverse-physx-sdk::gpu-library PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION "${OMNIVERSE-PHYSX-SDK-GPU_LIBRARY_RELEASE}" ) if(WIN32) add_library(unofficial::omniverse-physx-sdk::gpu-device-library SHARED IMPORTED) set_target_properties(unofficial::omniverse-physx-sdk::gpu-device-library PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION "${OMNIVERSE-PHYSX-SDK-GPU_DEVICE_LIBRARY_RELEASE}" ) endif() endif() ================================================ FILE: ports/physx/portfile.cmake ================================================ ############################################################################################################### # Port for Omniverse PhysX 5 - NVIDIA Corporation # Written by Marco Alesiani # Note: this port is NOT officially supported by NVIDIA. # This port is also not a replacement for the old 'physx' port: the newest Omniverse PhysX dropped support # for many platforms so older versions are still needed to support all previous platforms. ############################################################################################################### vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIA-Omniverse/PhysX REF 106.4-physx-5.5.0 # newest tag SHA512 93ad438db81e9dc095741c837c0e797b56b35d6b77c7d1b1367b11bcbcb4ee1b8ff2affc27624d06829ac5e979f08d506fe727851fc383724e6633b775752d82 HEAD_REF main ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_BUILD_STATIC_LIBS TRUE) else() set(VCPKG_BUILD_STATIC_LIBS FALSE) endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") set(VCPKG_LINK_CRT_STATICALLY TRUE) else() set(VCPKG_LINK_CRT_STATICALLY FALSE) endif() # Adjust CMake options settings based on the target platform if(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(PLATFORM_OPTIONS -DPX_BUILDSNIPPETS=OFF -DPX_BUILDPVDRUNTIME=OFF -DPX_GENERATE_STATIC_LIBRARIES=${VCPKG_BUILD_STATIC_LIBS} ) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(PLATFORM_OPTIONS -DPX_BUILDSNIPPETS=OFF -DPX_BUILDPVDRUNTIME=OFF -DPX_GENERATE_STATIC_LIBRARIES=${VCPKG_BUILD_STATIC_LIBS} ) elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(PLATFORM_OPTIONS -DPX_BUILDSNIPPETS=OFF -DPX_BUILDPVDRUNTIME=OFF -DPX_GENERATE_STATIC_LIBRARIES=${VCPKG_BUILD_STATIC_LIBS} -DNV_USE_STATIC_WINCRT=${VCPKG_LINK_CRT_STATICALLY} -DPX_FLOAT_POINT_PRECISE_MATH=OFF ) else() message(FATAL_ERROR "Unsupported platform/architecture combination") endif() ######################## Download required deps ############################## set($ENV{PM_PATHS} "") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile(ARCHIVE URLS "https://d4i3qtqj3r0z5.cloudfront.net/PhysXGpu%405.5.0.2aa3c8a3-release-106.4-windows-public.7z" FILENAME "PhysXGpu.7z" SHA512 84f2ba50ae89ebc959d8e35e99750a9fefddd51ba13d0bd96eac08d91b3de658508cb712e4ba253ed2d1be68589e0860747bf0bb324cbb2312574eb686aca06b ) # 7z might not be preinstalled on Win machines vcpkg_find_acquire_program(7Z) set(ENV{PM_PhysXGpu_PATH} "${CURRENT_BUILDTREES_DIR}/PhysXGpu_dep") file(MAKE_DIRECTORY "$ENV{PM_PhysXGpu_PATH}") vcpkg_execute_required_process( COMMAND "${7Z}" x "${ARCHIVE}" "-o$ENV{PM_PhysXGpu_PATH}" "-y" "-bso0" "-bsp0" WORKING_DIRECTORY "$ENV{PM_PhysXGpu_PATH}" LOGNAME "extract-PhysXGpu" ) else() if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") vcpkg_download_distfile(ARCHIVE URLS "https://d4i3qtqj3r0z5.cloudfront.net/PhysXGpu%405.5.0.2aa3c8a3-release-106.4-linux-aarch64-public.7z" FILENAME "PhysXGpu.7z" SHA512 92f47df4b7d6e1da21249acd4d13ce54a8ad6d5d21d9bb65e6a1af8b83494d22eb621fe77cde2fcea61ad56048894c9b73cded7193c7519ff62ee7e23c6d83e3 ) else() vcpkg_download_distfile(ARCHIVE URLS "https://d4i3qtqj3r0z5.cloudfront.net/PhysXGpu%405.5.0.2aa3c8a3-release-106.4-linux-x86_64-public.7z" FILENAME "PhysXGpu.7z" SHA512 4728bd0c37f1c931e31b1aa3354d45f157ca4930199840cb98524f02fa0422f7e6f72dce860111c6494b0bde8944a758e9dd8940d7015057e528d4db98d6bd0c ) endif() vcpkg_extract_source_archive(PHYSXGPU_SOURCE_PATH NO_REMOVE_ONE_LEVEL ARCHIVE "${ARCHIVE}" BASE_DIRECTORY PhysXGpu_dep ) set(ENV{PM_PhysXGpu_PATH} "${PHYSXGPU_SOURCE_PATH}") endif() message(STATUS "Extracted dependency to $ENV{PM_PhysXGpu_PATH}") list(APPEND ENV{PM_PATHS} $ENV{PM_PhysXGpu_PATH}) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_download_distfile(ARCHIVE URLS "https://d4i3qtqj3r0z5.cloudfront.net/PhysXDevice%4018.12.7.6.7z" FILENAME "PhysXDevice.7z" SHA512 0b75ea060a63f307a63ebfd5867cec06ab431a4b1a41e65d0a1ff7be115daf9ce080222128bdeb6d424ffa0aa9343c495455e814be424db1ce11cce8e760d5ff ) set(ENV{PM_PhysXDevice_PATH} "${CURRENT_BUILDTREES_DIR}/PhysXDevice_dep") file(MAKE_DIRECTORY "$ENV{PM_PhysXDevice_PATH}") vcpkg_find_acquire_program(7Z) vcpkg_execute_required_process( COMMAND "${7Z}" x "${ARCHIVE}" "-o$ENV{PM_PhysXDevice_PATH}" "-y" "-bso0" "-bsp0" WORKING_DIRECTORY "$ENV{PM_PhysXDevice_PATH}" LOGNAME "extract-PhysXDevice" ) endif() message(STATUS "Extracted dependency to $ENV{PM_PhysXDevice_PATH}") list(APPEND ENV{PM_PATHS} $ENV{PM_PhysXDevice_PATH}) if(VCPKG_TARGET_IS_WINDOWS) set(ENV{PM_freeglut_PATH} "${CURRENT_BUILDTREES_DIR}/freeglut_dep") file(MAKE_DIRECTORY "$ENV{PM_freeglut_PATH}") vcpkg_download_distfile(ARCHIVE URLS "https://d4i3qtqj3r0z5.cloudfront.net/freeglut-windows%403.4_1.1.7z" FILENAME "freeglut.7z" SHA512 c01cb75dd466d6889a72d7236669bfce841cc6da9e0edb4208c4affb5ca939f28d64bc3d988bc85d98c589b0b42ac3464f606c89f6c113106669fc9fe84000e5 ) vcpkg_find_acquire_program(7Z) vcpkg_execute_required_process( COMMAND "${7Z}" x "${ARCHIVE}" "-o$ENV{PM_freeglut_PATH}" "-y" "-bso0" "-bsp0" WORKING_DIRECTORY "$ENV{PM_freeglut_PATH}" LOGNAME "extract-freeglut" ) message(STATUS "Extracted dependency to $ENV{PM_freeglut_PATH}") list(APPEND ENV{PM_PATHS} $ENV{PM_freeglut_PATH}) endif() ######################## Now generate ALL CMake parameters according to our distribution ############################## set(PHYSX_ROOT_DIR "${SOURCE_PATH}/physx") # Set common parameters set(common_params -DCMAKE_PREFIX_PATH=$ENV{PM_PATHS} -DPHYSX_ROOT_DIR=${PHYSX_ROOT_DIR} -DPX_OUTPUT_LIB_DIR=${PHYSX_ROOT_DIR} -DPX_OUTPUT_BIN_DIR=${PHYSX_ROOT_DIR}) # Set platform and compiler specific parameters (physx expects binaries to live in these locations) if(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(cmakeParams -DCMAKE_INSTALL_PREFIX=${PHYSX_ROOT_DIR}/install/linux-aarch64/PhysX) set(platformCMakeParams -DTARGET_BUILD_PLATFORM=linux -DPX_OUTPUT_ARCH=arm) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(cmakeParams -DCMAKE_INSTALL_PREFIX=${PHYSX_ROOT_DIR}/install/linux/PhysX) set(platformCMakeParams -DTARGET_BUILD_PLATFORM=linux -DPX_OUTPUT_ARCH=x86) elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") # Note: this will work for any Win64, default is vc17win64 set(cmakeParams -DCMAKE_INSTALL_PREFIX=${PHYSX_ROOT_DIR}/install/vc17win64/PhysX) set(platformCMakeParams -DTARGET_BUILD_PLATFORM=windows -DPX_OUTPUT_ARCH=x86) endif() # Also make sure the downloaded GPU driver is found as a binary list(APPEND platformCMakeParams -DPHYSX_PHYSXGPU_PATH=$ENV{PM_PhysXGpu_PATH}/bin) set(cmakeParams ${platformCMakeParams} ${common_params} ${cmakeParams}) # Finally invoke physx's CMake to configure the PhysX project vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/physx/compiler/public" WINDOWS_USE_MSBUILD OPTIONS -DCMAKE_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE} ${PLATFORM_OPTIONS} -DPHYSX_ROOT_DIR=${PHYSX_ROOT_DIR} ${cmakeParams} OPTIONS_DEBUG -DNV_USE_DEBUG_WINCRT=TRUE DISABLE_PARALLEL_CONFIGURE MAYBE_UNUSED_VARIABLES PX_OUTPUT_ARCH PHYSX_PHYSXGPU_PATH ) # Compile and install in vcpkg's final installation directories all of the include headers and binaries for debug/release vcpkg_cmake_install() ######################## Extract to final vcpkg install locations and fixup artifacts in wrong dirs ############################## message("[PHYSX BUILD COMPLETED] Extracting build artifacts to vcpkg installation locations..") # Artifacts paths are similar to //[artifact] however vcpkg expects # libraries, binaries and headers to be respectively in ${CURRENT_PACKAGES_DIR}/lib or ${CURRENT_PACKAGES_DIR}/debug/lib, # ${CURRENT_PACKAGES_DIR}/bin or ${CURRENT_PACKAGES_DIR}/debug/bin and ${CURRENT_PACKAGES_DIR}/include. # This function accepts a variable named DIRECTORY specifying the 'lib' or 'bin' destination directory and a SUFFIXES named # variable which specifies a list of suffixes to extract in that folder (e.g. all the .lib or .pdb) function(copy_in_vcpkg_destination_folder_physx_artifacts) macro(_copy_up _IN_DIRECTORY _OUT_DIRECTORY) foreach(_SUFFIX IN LISTS _fpa_SUFFIXES) file(GLOB_RECURSE _ARTIFACTS LIST_DIRECTORIES false "${SOURCE_PATH}/physx/${_IN_DIRECTORY}/*${_SUFFIX}" ) if(_ARTIFACTS) file(COPY ${_ARTIFACTS} DESTINATION "${CURRENT_PACKAGES_DIR}/${_OUT_DIRECTORY}") endif() endforeach() endmacro() cmake_parse_arguments(_fpa "" "DIRECTORY" "SUFFIXES" ${ARGN}) _copy_up("bin/*/release" "${_fpa_DIRECTORY}") # could be physx/bin/linux.clang/release or physx/bin/win.x86_64.vc142.mt/release if(NOT VCPKG_BUILD_TYPE) _copy_up("bin/*/debug" "debug/${_fpa_DIRECTORY}") endif() endfunction() # Create output directories file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") # We'll also place the Gpu driver shared library in bin and debug/bin file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() copy_in_vcpkg_destination_folder_physx_artifacts( DIRECTORY "lib" SUFFIXES ${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX} ) if(NOT VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Also copy whatever .so/.dll were built. Remember that there should be NO /bin directory (nor debug/bin) # when using static linkage copy_in_vcpkg_destination_folder_physx_artifacts( DIRECTORY "bin" SUFFIXES ${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX} ".pdb" ) endif() # Special treatment is reserved for the PhysXGpu_64 shared library (downloaded by packman). # This is a 3rd party "optional functionality" dependency. file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") set(GPULIBNAMES "") if(VCPKG_TARGET_IS_LINUX) # Both for arm and x64 list(APPEND GPULIBNAMES "libPhysXGpu_64.so" "libPhysXDevice64.so") elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND GPULIBNAMES "PhysXGpu_64.dll" "PhysXDevice64.dll") endif() function(_copy_single_files_from_dir_to_destdir _IN_FILES _IN_DIR _OUT_DIR) file(GLOB_RECURSE _ARTIFACTS LIST_DIRECTORIES false "${_IN_DIR}" ) foreach(_ARTIFACT IN LISTS _ARTIFACTS) foreach(_FILE IN LISTS _IN_FILES) if("${_ARTIFACT}" MATCHES "${_FILE}") file(COPY "${_ARTIFACT}" DESTINATION "${_OUT_DIR}") endif() endforeach() endforeach() endfunction() # Put it in binary directories, it's an optional component (only release binaries should go in tools/) _copy_single_files_from_dir_to_destdir("${GPULIBNAMES}" "${SOURCE_PATH}/physx/bin/*/release/*" "${CURRENT_PACKAGES_DIR}/tools") # Copy headers to port's destination folder file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") # Renaming trick to finally have final folder structure as ${CURRENT_PACKAGES_DIR}/include/physx file(RENAME "${SOURCE_PATH}/physx/include" "${SOURCE_PATH}/physx/physx") file(COPY "${SOURCE_PATH}/physx/physx" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Remove useless build directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/source" "${CURRENT_PACKAGES_DIR}/source" ) # Install the cmake config that users will use, replace -if any- only @variables@ configure_file("${CMAKE_CURRENT_LIST_DIR}/omniverse-physx-sdk-config.cmake" "${CURRENT_PACKAGES_DIR}/share/omniverse-physx-sdk/unofficial-omniverse-physx-sdk-config.cmake" @ONLY) if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CURRENT_PACKAGES_DIR}/share/omniverse-physx-sdk" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/share/") endif() # Fixup to repackage the CMake config as 'unofficial-omniverse-physx-sdk' vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-omniverse-physx-sdk CONFIG_PATH share/omniverse-physx-sdk) # Remove fixup wrong directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_TARGET_IS_WINDOWS) # Remove freeglut (cannot be skipped in public release builds, but unnecessary) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/freeglut.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/freeglutd.dll" ) endif() # Install license and usage file vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") message("[VCPKG Omniverse PhysX port execution completed]") ================================================ FILE: ports/physx/usage ================================================ [Sample port usage] physx provides CMake targets: cmake_minimum_required(VERSION 3.15) find_package(unofficial-omniverse-physx-sdk CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::omniverse-physx-sdk::sdk) # Optional: import the defined target to copy over the GPU acceleration libraries (3rd party provided by NVIDIA) if(TARGET unofficial::omniverse-physx-sdk::gpu-library) if(UNIX) # Add rpath setting to find .so libraries on unix based systems set_target_properties(main PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE INSTALL_RPATH "$ORIGIN" ) endif() add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $) if(WIN32) add_custom_command(TARGET main POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $) endif() else() message(WARNING "GPU acceleration library target not defined - GPU acceleration will NOT be available!") endif() ================================================ FILE: ports/physx/vcpkg.json ================================================ { "name": "physx", "version": "5.5.0", "port-version": 1, "description": "The NVIDIA PhysX SDK is a scalable multi-platform physics solution supporting a wide range of devices, from smartphones to high-end multicore CPUs and GPUs. This is the latest NVIDIA official version of the PhysX engine which also directly integrates into Omniverse. This port is NOT officially supported by NVIDIA.", "homepage": "https://github.com/NVIDIA-Omniverse/PhysX", "license": "BSD-3-Clause", "supports": "(windows & x64 & !mingw & !uwp) | (linux & x64) | (linux & arm64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ] } ================================================ FILE: ports/picobench/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO iboB/picobench REF "v${VERSION}" SHA512 2c516c56fa558c395549c3c8daf5cc29fd2cae5e5af00d5b5e079b15f472979db6c4edf078e294715a2fb12d6ad8ba1dc5fe216e2de837a290bb418e0f78d166 HEAD_REF main ) file(COPY "${SOURCE_PATH}/include/picobench/picobench.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/picobench") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/picobench/vcpkg.json ================================================ { "name": "picobench", "version": "2.8.0", "description": "A micro microbenchmarking library for C++11 in a single header file", "homepage": "https://github.com/iboB/picobench", "license": "MIT" } ================================================ FILE: ports/picojson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kazuho/picojson REF v1.3.0 SHA512 76d5a6b3b9e1151198eee707faffcbbba28a2842daccf03d99a5d02ae017f9517ef3ac9da4acc74a4fc1357feaf19e14a15c34698a1d4cb65acb6d23b566b284 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/picojson.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/picojson/vcpkg.json ================================================ { "name": "picojson", "version": "1.3.0", "port-version": 3, "description": "A header-file-only, JSON parser serializer in C++.", "homepage": "https://github.com/kazuho/picojson" } ================================================ FILE: ports/picosha2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO okdshin/PicoSHA2 REF "v${VERSION}" SHA512 e6315f9f3a00197dcdd1cf459d956048e5c15f40d158537a061181d43e02ee46b979b650a05e748f61b85149f32f77625dacb869402dc243bdca71c5d2a0cc6d HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/picosha2.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/picosha2/vcpkg.json ================================================ { "name": "picosha2", "version": "1.0.1", "description": "PicoSHA2 - a header-file-only C++ SHA256 hash generator", "homepage": "https://github.com/okdshin/PicoSHA2", "license": "MIT" } ================================================ FILE: ports/piex/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(piex) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() include_directories(".") add_library(binary_parse src/binary_parse/cached_paged_byte_array.cc src/binary_parse/range_checked_byte_ptr.cc ) add_library(image_type_recognition src/image_type_recognition/image_type_recognition_lite.cc ) target_link_libraries(image_type_recognition binary_parse) target_compile_features(image_type_recognition PUBLIC cxx_std_11) add_library(tiff_directory src/tiff_directory/tiff_directory.cc ) target_link_libraries(tiff_directory binary_parse) add_library(piex src/piex.cc src/tiff_parser.cc ) target_link_libraries(piex tiff_directory image_type_recognition binary_parse) target_compile_features(piex PUBLIC cxx_std_11) install( TARGETS piex RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES src/piex.h src/piex_types.h DESTINATION include/src) endif() ================================================ FILE: ports/piex/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/piex REF 256bd102be288c19b4165e0ecc7097a18c004e92 SHA512 ae948588a99d586593788c995c3d65a488faaf99b2ab6c51ec39df7e11a42c89454dd505117e90b1f152f6abfc2e3e11f61b0af97e42ecdff0d978934e20f582 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/piex" RENAME copyright) ================================================ FILE: ports/piex/vcpkg.json ================================================ { "name": "piex", "version-date": "2019-07-11", "port-version": 2, "description": "The Preview Image Extractor (PIEX) is designed to find and extract the largest", "homepage": "https://github.com/google/piex", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/pipewire/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/ OUT_SOURCE_PATH SOURCE_PATH REPO pipewire/pipewire REF "${VERSION}" SHA512 aa5a01fe812bfb439147885fdef89edfcd9f97943eb3fb209b698896d0092a9bdba02de3df4c39d14f5c1792b69927c36eb7af134e9a85e7a794bcbf9def3986 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dalsa=disabled -Daudioconvert=enabled -Daudiomixer=disabled -Daudiotestsrc=disabled -Davahi=disabled -Dbluez5-backend-hfp-native=disabled -Dbluez5-backend-hsp-native=disabled -Dbluez5-backend-hsphfpd=disabled -Dbluez5-backend-ofono=disabled -Dbluez5-codec-aac=disabled -Dbluez5-codec-aptx=disabled -Dbluez5-codec-lc3plus=disabled -Dbluez5-codec-ldac=disabled -Dbluez5=disabled -Dcontrol=disabled -Ddbus=disabled -Ddocs=disabled -Decho-cancel-webrtc=disabled -Devl=disabled -Dexamples=disabled -Dffmpeg=disabled -Dgstreamer-device-provider=disabled -Dgstreamer=disabled -Dinstalled_tests=disabled -Djack-devel=false -Djack=disabled -Dlegacy-rtkit=false -Dlibcamera=disabled -Dlibcanberra=disabled -Dlibpulse=disabled -Dlibusb=disabled -Dlv2=disabled -Dman=disabled -Dopus=disabled -Dpipewire-alsa=disabled -Dpipewire-jack=disabled -Dpipewire-v4l2=disabled -Dpw-cat=disabled -Draop=disabled -Droc=disabled -Dsdl2=disabled -Dsndfile=disabled -Dspa-plugins=enabled # This one must be enabled or the resulting build won't be able to connect to pipewire daemon -Dsupport=enabled # This one must be enabled or the resulting build won't be able to connect to pipewire daemon -Dsystemd-system-service=disabled -Dsystemd-system-unit-dir=disabled -Dsystemd-user-service=disabled -Dsystemd-user-unit-dir=disabled -Dsystemd=disabled -Dtest=disabled -Dtests=disabled -Dudev=disabled -Dudevrulesdir=disabled -Dv4l2=disabled -Dvideoconvert=disabled -Dvideotestsrc=disabled -Dvolume=disabled -Dvulkan=disabled -Dx11-xfixes=disabled -Dx11=disabled -Dsession-managers=[] -Dc_args=-Wno-strict-prototypes ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") 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") endif() # remove absolute paths file(GLOB config_files "${CURRENT_PACKAGES_DIR}/share/${PORT}/*.conf") foreach(file ${config_files}) vcpkg_replace_string("${file}" "in ${CURRENT_PACKAGES_DIR}/etc/pipewire for system-wide changes\n# or" "" IGNORE_UNCHANGED) cmake_path(GET file FILENAME filename) vcpkg_replace_string("${file}" "# ${CURRENT_PACKAGES_DIR}/etc/pipewire/${filename}.d/ for system-wide changes or in" "" IGNORE_UNCHANGED) endforeach() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/pipewire/pipewire.conf" "${CURRENT_PACKAGES_DIR}/bin" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/pipewire/minimal.conf" "${CURRENT_PACKAGES_DIR}/bin" "") ================================================ FILE: ports/pipewire/vcpkg.json ================================================ { "name": "pipewire", "version": "1.4.10", "description": "Low-latency audio/video router and processor. This port only builds the client library, not the server.", "homepage": "https://pipewire.org", "license": "MIT", "supports": "linux", "dependencies": [ "glib", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/pistache/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_LINUX) message(FATAL_ERROR "${PORT} currently only supports Linux platform.") endif() vcpkg_download_distfile(ADD_CSTDINT_PATCH URLS https://github.com/pistacheio/pistache/commit/dabe9fcd3eaaa6b0b8723369b2565778341630c0.diff?full_index=1 FILENAME pistache-cstdint-dabe9fcd3eaaa6b0b8723369b2565778341630c0.diff SHA512 1cef4b084050a5cb409a2f055e12f03184ad3cd07c8b896c38152f9c0c630d812a73fb78ccb3e7270ffe8001d877c3da173be06810744c2e0807a20e488ee66d ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pistacheio/pistache REF 9dc080b9ebbe6fc1726b45e9db1550305938313e #2021-03-31 SHA512 b55c395fb98af85317590ed2502564af5e92e30a35618132568c6ab589a6d0971570ad20ddbd1f49d9dd8cf54692866c69cfc1350c6fdccf9efb039aacf153b4 HEAD_REF master PATCHES "${ADD_CSTDINT_PATCH}" ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pistache/vcpkg.json ================================================ { "name": "pistache", "version-date": "2021-03-31", "port-version": 4, "description": "Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++11 and provides a clear and pleasant API", "homepage": "https://github.com/oktal/pistache", "supports": "linux", "dependencies": [ "rapidjson", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/pixel/001-prevent-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b910231..71f7ddf 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,8 @@ else() target_link_libraries(pixel PUBLIC SDL2::SDL2) endif() +option(BUILD_EXAMPLES "Build examples" OFF) +if(BUILD_EXAMPLES) add_executable(image_swap examples/image_swap/src/image_swap.cpp) target_link_libraries(image_swap PRIVATE pixel) add_executable(randomdots examples/randomdots/src/randomdots.cpp) @@ -50,7 +52,11 @@ add_executable(simple examples/simple/src/simple.cpp) target_link_libraries(simple PRIVATE pixel) add_executable(starfield examples/starfield/src/starfield.cpp) target_link_libraries(starfield PRIVATE pixel) +endif() +if(MSVC) + add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +endif() # Install Section include(GNUInstallDirs) @@ -87,12 +93,6 @@ install( DESTINATION ${CMAKE_INSTALL_PREFIX} ) -install( - FILES - ${PROJECT_SOURCE_DIR}/LICENSE - DESTINATION ${CMAKE_INSTALL_DATADIR}/pixel/copyright - ) - install( FILES ${PROJECT_BINARY_DIR}/pixelConfig.cmake ================================================ FILE: ports/pixel/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message(WARNING "${PORT} currently requires libglu1-mesa from the system package manager: This can be installed on Ubuntu systems via sudo apt install libglu1-mesa-dev") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dascandy/pixel REF c4411f67746fdd811aa5f8c102ac340e9eaf4ec5 SHA512 e4f704c076bb61220349524b0b1033a92c44128bb81e79dbd32ea2d1aa9d4abb0d6daab3617f69b59d1c1e50d750767153174fea015d8718804612f4d9f68ff6 HEAD_REF master PATCHES 001-prevent-examples.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pixel/vcpkg.json ================================================ { "name": "pixel", "version-date": "2022-03-15", "port-version": 1, "description": "Simple 2D Graphics based on standard and portable OpenGL.", "homepage": "https://github.com/dascandy/pixel", "license": "Apache-2.0", "dependencies": [ "glew", "opengl", { "name": "sdl2", "default-features": false, "features": [ "x11" ], "platform": "linux" }, { "name": "sdl2", "platform": "!linux" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/pixman/no-host-cpu-checks.patch ================================================ diff --git a/meson.build b/meson.build index 1cec227..1b07ca8 100644 --- a/meson.build +++ b/meson.build @@ -95,44 +95,7 @@ else mmx_flags = ['-mmmx', '-Winline'] endif if not use_mmx.disabled() - if host_machine.cpu_family() == 'x86_64' or cc.get_id() == 'msvc' - have_mmx = true - elif host_machine.cpu_family() == 'x86' and cc.compiles(''' - #include - #include - - /* Check support for block expressions */ - #define _mm_shuffle_pi16(A, N) \ - ({ \ - __m64 ret; \ - \ - /* Some versions of clang will choke on K */ \ - asm ("pshufw %2, %1, %0\n\t" \ - : "=y" (ret) \ - : "y" (A), "K" ((const int8_t)N) \ - ); \ - \ - ret; \ - }) - - int main () { - __m64 v = _mm_cvtsi32_si64 (1); - __m64 w; - - w = _mm_shuffle_pi16(v, 5); - - /* Some versions of clang will choke on this */ - asm ("pmulhuw %1, %0\n\t" - : "+y" (w) - : "y" (v) - ); - - return _mm_cvtsi64_si32 (v); - }''', - args : mmx_flags, - name : 'MMX Intrinsic Support') - have_mmx = true - endif + have_mmx = true endif if have_mmx @@ -154,29 +117,7 @@ elif cc.get_id() != 'msvc' sse2_flags = ['-msse2', '-Winline'] endif if not use_sse2.disabled() - if host_machine.cpu_family() == 'x86' - if cc.compiles(''' - #if defined(__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2)) - # if !defined(__amd64__) && !defined(__x86_64__) - # error "Need GCC >= 4.2 for SSE2 intrinsics on x86" - # endif - #endif - #include - #include - #include - int param; - int main () { - __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c; - c = _mm_xor_si128 (a, b); - return _mm_cvtsi128_si32(c); - }''', - args : sse2_flags, - name : 'SSE2 Intrinsic Support') - have_sse2 = true - endif - elif host_machine.cpu_family() == 'x86_64' - have_sse2 = true - endif + have_sse2 = true endif if have_sse2 @@ -192,24 +133,8 @@ if cc.get_id() != 'msvc' ssse3_flags = ['-mssse3', '-Winline'] endif -# x64 pre-2010 MSVC compilers crashes when building the ssse3 code -if not use_ssse3.disabled() and not (cc.get_id() == 'msvc' and cc.version().version_compare('<16') and host_machine.cpu_family() == 'x86_64') - if host_machine.cpu_family().startswith('x86') - if cc.compiles(''' - #include - #include - #include - int param; - int main () { - __m128i a = _mm_set1_epi32 (param), b = _mm_set1_epi32 (param + 1), c; - c = _mm_xor_si128 (a, b); - return _mm_cvtsi128_si32(c); - }''', - args : ssse3_flags, - name : 'SSSE3 Intrinsic Support') - have_ssse3 = true - endif - endif +if use_ssse3.enabled() + have_ssse3 = true endif if have_ssse3 ================================================ FILE: ports/pixman/portfile.cmake ================================================ vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL https://gitlab.freedesktop.org REPO pixman/pixman REF "pixman-${VERSION}" SHA512 f0abfef9bfd2d1c51995e1f4ffac0cedcd8e55dc2c404a5456f7673e837dd171613a8d4132744b10f0d3f7ec36726dc73f72c8cd109d954e904142d147b431b3 PATCHES no-host-cpu-checks.patch ) set(x86_architectures x86 x64) if(VCPKG_TARGET_ARCHITECTURE IN_LIST x86_architectures AND NOT VCPKG_TARGET_IS_UWP) list(APPEND OPTIONS -Dmmx=enabled -Dsse2=enabled -Dssse3=enabled ) else() list(APPEND OPTIONS -Dmmx=disabled -Dsse2=disabled -Dssse3=disabled ) if(VCPKG_TARGET_IS_ANDROID) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") find_path(cpu_features_dir NAMES cpu-features.c PATHS "${VCPKG_DETECTED_CMAKE_ANDROID_NDK}" PATH_SUFFIXES "sources/android/cpufeatures" # NDK r27c NO_DEFAULT_PATH ) if(VCPKG_DETECTED_CMAKE_ANDROID_ARM_NEON AND cpu_features_dir) list(APPEND OPTIONS "-Dcpu-features-path=${cpu_features_dir}" ) endif() endif() if(VCPKG_TARGET_IS_WINDOWS) # -Darm-simd=enabled does not work with arm64-windows list(APPEND OPTIONS -Da64-neon=disabled -Darm-simd=disabled -Dneon=disabled ) endif() endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Ddemos=disabled -Dgtk=disabled -Dlibpng=enabled -Dtests=disabled ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") set(licenses "${SOURCE_PATH}/COPYING") if(VCPKG_DETECTED_CMAKE_ANDROID_ARM_NEON AND cpu_features_dir) file(READ "${cpu_features_dir}/cpu-features.c" cpu_features_c) string(REGEX REPLACE "[*]/.*" "*/\n" cpu_features_license "${cpu_features_c}") file(WRITE "${CURRENT_PACKAGES_DIR}/${TARGET_TRIPLET}-rel/cpu-features (BSD-2-Clause)" "${cpu_features_license}") list(APPEND licenses "${CURRENT_PACKAGES_DIR}/${TARGET_TRIPLET}-rel/cpu-features (BSD-2-Clause)") endif() vcpkg_install_copyright(FILE_LIST ${licenses}) ================================================ FILE: ports/pixman/vcpkg.json ================================================ { "name": "pixman", "version": "0.46.4", "port-version": 1, "description": "Pixman is a low-level software library for pixel manipulation, providing features such as image compositing and trapezoid rasterization.", "homepage": "https://www.cairographics.org/releases", "license": "MIT AND BSD-2-Clause", "dependencies": [ "libpng", { "name": "pthreads", "platform": "windows & !mingw" }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/pkgconf/001-unveil-fixes.patch ================================================ diff --git a/cli/main.c b/cli/main.c index a1cf90e..3ab2092 100644 --- a/cli/main.c +++ b/cli/main.c @@ -1055,7 +1055,7 @@ unveil_search_paths(const pkgconf_client_t *client, const pkgconf_cross_personal { pkgconf_path_t *pn = n->data; - if (pkgconf_unveil(pn->path, "r") == -1) + if (pkgconf_unveil(pn->path, "r") == -1 && errno != ENOENT) return false; } @@ -1063,7 +1063,7 @@ unveil_search_paths(const pkgconf_client_t *client, const pkgconf_cross_personal { pkgconf_path_t *pn = n->data; - if (pkgconf_unveil(pn->path, "r") == -1) + if (pkgconf_unveil(pn->path, "r") == -1 && errno != ENOENT) return false; } @@ -1276,13 +1276,6 @@ main(int argc, char *argv[]) /* now, bring up the client. settings are preserved since the client is prealloced */ pkgconf_client_init(&pkg_client, error_handler, NULL, personality); - /* unveil the entire search path now that we have loaded the personality data. */ - if (!unveil_search_paths(&pkg_client, personality)) - { - fprintf(stderr, "pkgconf: unveil failed: %s\n", strerror(errno)); - return EXIT_FAILURE; - } - #ifndef PKGCONF_LITE if ((want_flags & PKG_MSVC_SYNTAX) == PKG_MSVC_SYNTAX || getenv("PKG_CONFIG_MSVC_SYNTAX") != NULL) want_render_ops = msvc_renderer_get(); @@ -1452,6 +1445,13 @@ main(int argc, char *argv[]) /* at this point, want_client_flags should be set, so build the dir list */ pkgconf_client_dir_list_build(&pkg_client, personality); + /* unveil the entire search path now that we have loaded the personality data. */ + if (!unveil_search_paths(&pkg_client, personality)) + { + fprintf(stderr, "pkgconf: unveil failed: %s\n", strerror(errno)); + return EXIT_FAILURE; + } + /* preload any files in PKG_CONFIG_PRELOADED_FILES */ pkgconf_client_preload_from_environ(&pkg_client, "PKG_CONFIG_PRELOADED_FILES"); ================================================ FILE: ports/pkgconf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pkgconf/pkgconf REF "pkgconf-${VERSION}" SHA512 53244f372ea21125a1d97c5b89a84299740b55a66165782e807ed23adab3a07408a1547f1f40156e3060359660d07f49846c8b4893beef10ac9440ab7e8611cc HEAD_REF master PATCHES 001-unveil-fixes.patch # https://github.com/pkgconf/pkgconf/pull/430 ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" NO_PKG_CONFIG OPTIONS -Dtests=disabled ) set(systemsuffix "") set(architectureprefix "") set(SYSTEM_LIBDIR "") set(PKG_DEFAULT_PATH "") set(SYSTEM_INCLUDEDIR "") set(PERSONALITY_PATH "personality.d") if(NOT VCPKG_CROSSCOMPILING) if(VCPKG_TARGET_IS_BSD) set(SYSTEM_INCLUDEDIR "/usr/include") set(SYSTEM_LIBDIR "/usr/lib") if(VCPKG_TARGET_IS_FREEBSD) # These are taken from the FreeBSD port of pkgconf set(PKG_DEFAULT_PATH "/usr/libdata/pkgconfig:/usr/local/libdata/pkgconfig:/usr/local/share/pkgconfig") elseif(VCPKG_TARGET_IS_OPENBSD) # Based on how new OpenBSD builds their version of pkgconf set(PKG_DEFAULT_PATH "/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/X11R6/lib/pkgconfig:/usr/X11R6/share/pkgconfig") elseif(VCPKG_TARGET_IS_NETBSD) # Based on NetBSD's pkgconf default values set(PKG_DEFAULT_PATH "/usr/pkg/lib/pkgconfig:/usr/pkg/share/pkgconfig:/usr/lib/pkgconfig:/usr/X11R7/lib/pkgconfig") endif() elseif(NOT VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64") # These defaults are obtained from pkgconf/pkg-config on Ubuntu and OpenSuse # vcpkg cannot do system introspection to obtain/set these values since it would break binary caching. set(SYSTEM_INCLUDEDIR "/usr/include") # System lib dirs will be stripped from -L from the pkg-config output set(SYSTEM_LIBDIR "/lib:/lib/i386-linux-gnu:/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnux32:/lib64:/lib32:/libx32:/usr/lib:/usr/lib/i386-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnux32:/usr/lib64:/usr/lib32:/usr/libx32") set(PKG_DEFAULT_PATH "/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib64/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig") set(PERSONALITY_PATH "/usr/share/pkgconfig/personality.d:/etc/pkgconfig/personality.d") elseif(NOT VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "riscv64") # These defaults are obtained from pkgconf/pkg-config on Ubuntu set(SYSTEM_INCLUDEDIR "/usr/include") set(SYSTEM_LIBDIR "/lib:/lib/riscv64-linux-gnu:/usr/lib:/usr/lib/riscv64-linux-gnu") set(PKG_DEFAULT_PATH "/usr/local/lib/riscv64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/riscv64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig") set(PERSONALITY_PATH "/usr/share/pkgconfig/personality.d:/etc/pkgconfig/personality.d") endif() endif() if(DEFINED VCPKG_pkgconf_SYSTEM_LIBDIR) set(SYSTEM_LIBDIR "${VCPKG_pkgconf_SYSTEM_LIBDIR}") endif() if(DEFINED VCPKG_pkgconf_PKG_DEFAULT_PATH) set(PKG_DEFAULT_PATH "${VCPKG_pkgconf_PKG_DEFAULT_PATH}") endif() if(DEFINED VCPKG_pkgconf_SYSTEM_INCLUDEDIR) set(SYSTEM_INCLUDEDIR "${VCPKG_pkgconf_SYSTEM_INCLUDEDIR}") endif() if(DEFINED VCPKG_pkgconf_PERSONALITY_PATH) set(PERSONALITY_PATH "${VCPKG_pkgconf_PERSONALITY_PATH}") endif() set(pkgconfig_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/libpkgconf/config.h") if(EXISTS "${pkgconfig_file}") file(READ "${pkgconfig_file}" contents) string(REGEX REPLACE "#define PKG_DEFAULT_PATH [^\n]+" "#define PKG_DEFAULT_PATH \"${PKG_DEFAULT_PATH}\"" contents "${contents}") string(REGEX REPLACE "#define SYSTEM_INCLUDEDIR [^\n]+" "#define SYSTEM_INCLUDEDIR \"${SYSTEM_INCLUDEDIR}\"" contents "${contents}") string(REGEX REPLACE "#define SYSTEM_LIBDIR [^\n]+" "#define SYSTEM_LIBDIR \"${SYSTEM_LIBDIR}\"" contents "${contents}") string(REGEX REPLACE "#define PERSONALITY_PATH [^\n]+" "#define PERSONALITY_PATH \"${PERSONALITY_PATH}\"" contents "${contents}") file(WRITE "${pkgconfig_file}" "${contents}") endif() set(pkgconfig_file "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/libpkgconf/config.h") if(EXISTS "${pkgconfig_file}") file(READ "${pkgconfig_file}" contents) string(REGEX REPLACE "#define PKG_DEFAULT_PATH [^\n]+" "#define PKG_DEFAULT_PATH \"${PKG_DEFAULT_PATH}\"" contents "${contents}") string(REGEX REPLACE "#define SYSTEM_INCLUDEDIR [^\n]+" "#define SYSTEM_INCLUDEDIR \"${SYSTEM_INCLUDEDIR}\"" contents "${contents}") string(REGEX REPLACE "#define SYSTEM_LIBDIR [^\n]+" "#define SYSTEM_LIBDIR \"${SYSTEM_LIBDIR}\"" contents "${contents}") string(REGEX REPLACE "#define PERSONALITY_PATH [^\n]+" "#define PERSONALITY_PATH \"${PERSONALITY_PATH}\"" contents "${contents}") file(WRITE "${pkgconfig_file}" "${contents}") endif() vcpkg_install_meson() vcpkg_fixup_pkgconfig(SKIP_CHECK) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pkgconf/libpkgconf/libpkgconf-api.h" "#if defined(PKGCONFIG_IS_STATIC)" "#if 1") endif() vcpkg_copy_tools(TOOL_NAMES bomtool pkgconf AUTO_CLEAN) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/pkgconf/vcpkg.json ================================================ { "name": "pkgconf", "version": "2.5.1", "port-version": 4, "description": "pkgconf is a program which helps to configure compiler and linker flags for development libraries. It is similar to pkg-config from freedesktop.org.", "homepage": "https://github.com/pkgconf/pkgconf", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/plasma-wayland-protocols/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/plasma-wayland-protocols REF "v${VERSION}" SHA512 3cb5ea1c5c69384181005520c9999b0f1548ec91f2894204ab9a103dd6d76621932f4d6c536664797ab2d24df4e1f182a353bd9be802565ec48dec657cc59276 HEAD_REF master ) # Prevent KDEClangFormat from writing to source effectively blocking parallel configure file(WRITE "${SOURCE_PATH}/.clang-format" "DisableFormat: true\nSortIncludes: false\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME PlasmaWaylandProtocols CONFIG_PATH lib/cmake/PlasmaWaylandProtocols) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(GLOB LICENSE_FILES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/plasma-wayland-protocols/vcpkg.json ================================================ { "name": "plasma-wayland-protocols", "version": "1.14.0", "description": "The non-standard Wayland protocols use by KDE Plasma", "homepage": "https://invent.kde.org/libraries/plasma-wayland-protocols/-/tree/master/", "supports": "linux", "dependencies": [ "ecm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/platform-folders/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(TARGET_BUILD_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sago007/PlatformFolders REF ${VERSION} SHA512 0c5221581f6cb8ce44ee0200c6a9b9ddb85f1065f0f7dc48b33b8d380483094efba8c089f3d1fc8b6cef51c4f6b70497861e77ac2309a37d1ded9317085a06ae HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPLATFORMFOLDERS_BUILD_TESTING=OFF ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${TARGET_BUILD_PATH}-rel/platform_folders.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin/") file(INSTALL "${TARGET_BUILD_PATH}-dbg/platform_folders.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin/") endif() if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP OR VCPKG_TARGET_IS_MinGW) vcpkg_cmake_config_fixup(PACKAGE_NAME platform_folders CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME platform_folders CONFIG_PATH lib/cmake/platform_folders) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/platform-folders/vcpkg.json ================================================ { "name": "platform-folders", "version": "4.3.0", "description": "A C++ library to look for special directories like \"My Documents\" and \"%APPDATA%\"", "homepage": "https://github.com/sago007/PlatformFolders", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/plf-colony/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_colony REF 9f3196a5d870907ace96f576e1f4ccb272efb281 SHA512 bcf2a5403df29be1f47c4ac01e6db1f4a115a86d63a8e3bc4f4aadf2f70e7f0c373630e8fb87f8c5ff09d87822cdd44aedbd157d45e56415762735a4b3d45138 HEAD_REF master ) file(COPY "${SOURCE_PATH}/plf_colony.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/plf-colony/vcpkg.json ================================================ { "name": "plf-colony", "version": "7.6.10", "description": "An unordered C++ data container providing fast iteration/insertion/erasure while maintaining pointer/iterator validity to non-erased elements regardless of insertions/erasures.", "homepage": "https://plflib.org/colony.htm" } ================================================ FILE: ports/plf-hive/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_hive REF 5d4f13cafdc1bd5e23c4b5435e0f33f347d3b003 SHA512 9f32c8ad70851ba9e2db32c6d47999c2fe554f5e7fdab5803c3743c5df5ca881afacebeb37594dbb8a587df793eab9c7ccae05f20c48e7931cfbb30dd680f5ee HEAD_REF master ) file(COPY "${SOURCE_PATH}/plf_hive.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/plf-hive/vcpkg.json ================================================ { "name": "plf-hive", "version-date": "2025-12-22", "description": "plf::hive is a fork of plf::colony to match the current C++ standards proposal.", "homepage": "https://plflib.org/colony.htm" } ================================================ FILE: ports/plf-indiesort/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_indiesort REF fb28b3f24886253d4eaab5e05f23b8cf84238f1e SHA512 1f8f7b8dbb698d22e02701d6991bf5525a825ac5404bdeba7b09bc7814175fedaeedebbd6aba4db587d5d93ab14d4f3e0dbe78a098b10e9c0d4efb1bc1456026 HEAD_REF master ) file(COPY ${SOURCE_PATH}/plf_indiesort.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/plf-indiesort/vcpkg.json ================================================ { "name": "plf-indiesort", "version": "1.4.4", "description": "A sort wrapper enabling both use of random-access sorting on non-random access containers, and increased performance for the sorting of large types.", "homepage": "https://plflib.org/indiesort.htm" } ================================================ FILE: ports/plf-list/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_list REF b60676915e82f9e686de2550d68a1866617cbf42 SHA512 af9e9278604caa06075ca989f082d57ea33122958fa13b45a47242c36ae588769e1b15a27ea4676e361aeff3cef69429d0cf2bbab5a782d97f90e06b00198192 HEAD_REF master ) file(COPY ${SOURCE_PATH}/plf_list.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/plf-list/vcpkg.json ================================================ { "name": "plf-list", "version": "2.8.0", "description": "A drop-in replacement for std::list with 293% faster insertion, 57% faster erasure, 17% faster iteration and 77% faster sorting on average", "homepage": "https://www.plflib.org/" } ================================================ FILE: ports/plf-nanotimer/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_nanotimer REF 344c8e6f87e2ee924e4b0ae7ed71803a0ce75981 # v1.0.8 SHA512 11db9b5fb818ad639f6e9076aa29c322ae24d9b071e72df54086a30b77cca3c2020fcb5f120fa56ef7712a7e5ba1db63bc191648499bae87a1b662a076ca8d39 HEAD_REF master ) file(COPY ${SOURCE_PATH}/plf_nanotimer.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/plf-nanotimer/vcpkg.json ================================================ { "name": "plf-nanotimer", "version": "1.0.8", "description": "A simple C++ 03/11/etc timer class for ~microsecond-precision cross-platform benchmarking", "homepage": "https://www.plflib.org/" } ================================================ FILE: ports/plf-queue/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_queue REF 1fb9d87a210f7813450ee54a469f9f79ea4ec872 SHA512 bca6662f5b0c4dfad4b9c1192aced83cf379ed2f115b498ad98003b7201fa80cf00ee697c7c8f9a8f9fe7c979207a8e99dd58549e124ea041af25c9217d7ae6f HEAD_REF main ) file(COPY "${SOURCE_PATH}/plf_queue.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/plf-queue/vcpkg.json ================================================ { "name": "plf-queue", "version": "2.2", "description": "A data container replicating std::queue functionality but with better performance than standard library containers in a queue context. C++98/03/11/14/etc-compatible.", "homepage": "https://plflib.org/queue.htm" } ================================================ FILE: ports/plf-stack/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattreecebentley/plf_stack REF fd497417c17119dd73068d69749b67a6f9ff00b7 # 2.0.13 SHA512 77796cb7e9e008744f28f6de8ab72afa3366ea578be9aec36a4b5eb623cc1efaafb26ebf55456d311b9ce11e6e0e61ba9c030ecf0c7df63c185a13ff2fe2f39b HEAD_REF master ) file(COPY ${SOURCE_PATH}/plf_stack.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/plf-stack/vcpkg.json ================================================ { "name": "plf-stack", "version": "2.0.13", "description": "A C++ data container replicating std::stack functionality but with better performance", "homepage": "https://www.plflib.org/" } ================================================ FILE: ports/plib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.3.0) project(plib VERSION 1.8.5) set(CMAKE_DEBUG_POSTFIX d) # Sources & Headers set(fnt_SOURCES src/fnt/fnt.cxx src/fnt/fntBitmap.cxx src/fnt/fntTXF.cxx) set(fnt_HEADERS src/fnt/fnt.h src/fnt/fntLocal.h) set(js_SOURCES src/js/js.cxx src/js/jsBSD.cxx src/js/jsLinux.cxx src/js/jsMacOS.cxx src/js/jsMacOSX.cxx src/js/jsNone.cxx src/js/jsWindows.cxx) set(js_HEADERS src/js/js.h) set(net_SOURCES src/net/netBuffer.cxx src/net/netChannel.cxx src/net/netChat.cxx src/net/netMessage.cxx src/net/netMonitor.cxx src/net/netSocket.cxx) set(net_HEADERS src/net/netBuffer.h src/net/netChannel.h src/net/netChat.h src/net/netMessage.h src/net/netMonitor.h src/net/netSocket.h) set(psl_SOURCES src/psl/psl.cxx src/psl/pslCodeGen.cxx src/psl/pslCompiler.cxx src/psl/pslContext.cxx src/psl/pslDump.cxx src/psl/pslError.cxx src/psl/pslExpression.cxx src/psl/pslFileIO.cxx src/psl/pslProgram.cxx src/psl/pslSymbols.cxx src/psl/pslToken.cxx) set(psl_HEADERS src/psl/psl.h src/psl/pslCompiler.h src/psl/pslContext.h src/psl/pslFileIO.h src/psl/pslLocal.h src/psl/pslOpcodes.h src/psl/pslSymbol.h) set(puAux_SOURCES src/puAux/puAux.cxx src/puAux/puAuxBiSlider.cxx src/puAux/puAuxBiSliderWithEnds.cxx src/puAux/puAuxChooser.cxx src/puAux/puAuxComboBox.cxx src/puAux/puAuxCompass.cxx src/puAux/puAuxFileSelector.cxx src/puAux/puAuxLargeInput.cxx src/puAux/puAuxList.cxx src/puAux/puAuxScrollBar.cxx src/puAux/puAuxSelectBox.cxx src/puAux/puAuxSliderWithInput.cxx src/puAux/puAuxSpinBox.cxx src/puAux/puAuxTriSlider.cxx src/puAux/puAuxVerticalMenu.cxx) set(puAux_HEADERS src/puAux/puAux.h src/puAux/puAuxLocal.h) set(pui_SOURCES src/pui/pu.cxx src/pui/puArrowButton.cxx src/pui/puBox.cxx src/pui/puButton.cxx src/pui/puButtonBox.cxx src/pui/puDial.cxx src/pui/puDialogBox.cxx src/pui/puFont.cxx src/pui/puFrame.cxx src/pui/puGroup.cxx src/pui/puInput.cxx src/pui/puInputBase.cxx src/pui/puInterface.cxx src/pui/puListBox.cxx src/pui/puMenuBar.cxx src/pui/puObject.cxx src/pui/puOneShot.cxx src/pui/puPopup.cxx src/pui/puPopupMenu.cxx src/pui/puRange.cxx src/pui/puSlider.cxx src/pui/puText.cxx src/pui/puValue.cxx) set(pui_HEADERS src/pui/pu.h src/pui/puFLTK.h src/pui/puGLUT.h src/pui/puLocal.h src/pui/puNative.h src/pui/puPW.h src/pui/puSDL.h) set(pw_SOURCES src/pw/pwWindows.cxx) set(pw_HEADERS src/pw/pw.h) set(sg_SOURCES src/sg/sg.cxx src/sg/sgd.cxx src/sg/sgdIsect.cxx src/sg/sgIsect.cxx src/sg/sgPerlinNoise.cxx) set(sg_HEADERS src/sg/sg.h) set(sl_SOURCES src/sl/slDSP.cxx src/sl/slEnvelope.cxx src/sl/slMODdacio.cxx src/sl/slMODfile.cxx src/sl/slMODinst.cxx src/sl/slMODnote.cxx src/sl/slMODPlayer.cxx src/sl/slPlayer.cxx src/sl/slSample.cxx src/sl/slSamplePlayer.cxx src/sl/slScheduler.cxx src/sl/smMixer.cxx) set(sl_HEADERS src/sl/sl.h src/sl/slMODfile.h src/sl/slMODPrivate.h src/sl/slPortability.h src/sl/sm.h) set(ssg_SOURCES src/ssg/ssg.cxx src/ssg/ssgAnimation.cxx src/ssg/ssgAnimTransform.cxx src/ssg/ssgAxisTransform.cxx src/ssg/ssgBase.cxx src/ssg/ssgBaseTransform.cxx src/ssg/ssgBranch.cxx src/ssg/ssgContext.cxx src/ssg/ssgCutout.cxx src/ssg/ssgDList.cxx src/ssg/ssgEntity.cxx src/ssg/ssgInvisible.cxx src/ssg/ssgIO.cxx src/ssg/ssgIsect.cxx src/ssg/ssgLeaf.cxx src/ssg/ssgList.cxx src/ssg/ssgLoad.cxx src/ssg/ssgLoad3ds.cxx src/ssg/ssgLoadAC.cxx src/ssg/ssgLoadASC.cxx src/ssg/ssgLoadASE.cxx src/ssg/ssgLoadATG.cxx src/ssg/ssgLoadBMP.cxx src/ssg/ssgLoadDOF.cxx src/ssg/ssgLoadDXF.cxx src/ssg/ssgLoaderWriterStuff.cxx src/ssg/ssgLoadFLT.cxx src/ssg/ssgLoadIV.cxx src/ssg/ssgLoadM.cxx src/ssg/ssgLoadMD2.cxx src/ssg/ssgLoadMDL.cxx src/ssg/ssgLoadMDL_BGLTexture.cxx src/ssg/ssgLoadOBJ.cxx src/ssg/ssgLoadOFF.cxx src/ssg/ssgLoadPCX.cxx src/ssg/ssgLoadPNG.cxx src/ssg/ssgLoadSGI.cxx src/ssg/ssgLoadSSG.cxx src/ssg/ssgLoadStrip.cxx src/ssg/ssgLoadTexture.cxx src/ssg/ssgLoadTGA.cxx src/ssg/ssgLoadTRI.cxx src/ssg/ssgLoadVRML1.cxx src/ssg/ssgLoadX.cxx src/ssg/ssgLoadXPlaneObj.cxx src/ssg/ssgOptimiser.cxx src/ssg/ssgParser.cxx src/ssg/ssgRangeSelector.cxx src/ssg/ssgRoot.cxx src/ssg/ssgSave3ds.cxx src/ssg/ssgSaveAC.cxx src/ssg/ssgSaveASC.cxx src/ssg/ssgSaveASE.cxx src/ssg/ssgSaveATG.cxx src/ssg/ssgSaveDXF.cxx src/ssg/ssgSaveFLT.cxx src/ssg/ssgSaveIV.cxx src/ssg/ssgSaveM.cxx src/ssg/ssgSaveOBJ.cxx src/ssg/ssgSaveOFF.cxx src/ssg/ssgSaveQHI.cxx src/ssg/ssgSaveTRI.cxx src/ssg/ssgSaveVRML1.cxx src/ssg/ssgSaveX.cxx src/ssg/ssgSelector.cxx src/ssg/ssgSimpleList.cxx src/ssg/ssgSimpleState.cxx src/ssg/ssgState.cxx src/ssg/ssgStateSelector.cxx src/ssg/ssgStateTables.cxx src/ssg/ssgStatistics.cxx src/ssg/ssgStats.cxx src/ssg/ssgTexTrans.cxx src/ssg/ssgTexture.cxx src/ssg/ssgTransform.cxx src/ssg/ssgTween.cxx src/ssg/ssgTweenController.cxx src/ssg/ssgVertSplitter.cxx src/ssg/ssgVTable.cxx src/ssg/ssgVtxArray.cxx src/ssg/ssgVtxTable.cxx) set(ssg_HEADERS src/ssg/ssg.h src/ssg/ssg3ds.h src/ssg/ssgKeyFlier.h src/ssg/ssgLoaderWriterStuff.h src/ssg/ssgLoadMDL.h src/ssg/ssgLoadVRML.h src/ssg/ssgLocal.h src/ssg/ssgMSFSPalette.h src/ssg/ssgParser.h src/ssg/ssgVertSplitter.h) set(ssgAux_SOURCES src/ssgAux/ssgAux.cxx src/ssgAux/ssgaBillboards.cxx src/ssgAux/ssgaCelestialBody.cxx src/ssgAux/ssgaCloudLayer.cxx src/ssgAux/ssgaFire.cxx src/ssgAux/ssgaLensFlare.cxx src/ssgAux/ssgaLensFlareTexture.cxx src/ssgAux/ssgaParticleSystem.cxx src/ssgAux/ssgaPatch.cxx src/ssgAux/ssgaScreenDump.cxx src/ssgAux/ssgaShapes.cxx src/ssgAux/ssgaSky.cxx src/ssgAux/ssgaSkyDome.cxx src/ssgAux/ssgaSphere.cxx src/ssgAux/ssgaStars.cxx src/ssgAux/ssgaTeapot.cxx src/ssgAux/ssgaWaveSystem.cxx) set(ssgAux_HEADERS src/ssgAux/ssgAux.h src/ssgAux/ssgaBillboards.h src/ssgAux/ssgaFire.h src/ssgAux/ssgaLensFlare.h src/ssgAux/ssgaParticleSystem.h src/ssgAux/ssgaScreenDump.h src/ssgAux/ssgaShapes.h src/ssgAux/ssgaSky.h src/ssgAux/ssgaSphere.h src/ssgAux/ssgaWaveSystem.h) set(ul_SOURCES src/util/ul.cxx src/util/ulClock.cxx src/util/ulError.cxx src/util/ulLinkedList.cxx src/util/ulList.cxx src/util/ulRTTI.cxx) set(ul_HEADERS src/util/ul.h src/util/ulLocal.h src/util/ulRTTI.h) # Create and configure the targets add_library(plib_fnt STATIC ${fnt_SOURCES} ${fnt_HEADERS}) target_include_directories(plib_fnt PRIVATE src/sg src/util) add_library(plib_js STATIC ${js_SOURCES} ${js_HEADERS}) target_include_directories(plib_js PRIVATE src/util) add_library(plib_net STATIC ${net_SOURCES} ${net_HEADERS}) target_include_directories(plib_net PRIVATE src/util) add_library(plib_psl STATIC ${psl_SOURCES} ${psl_HEADERS}) target_include_directories(plib_psl PRIVATE src/util) add_library(plib_puAux STATIC ${puAux_SOURCES} ${puAux_HEADERS}) target_include_directories(plib_puAux PRIVATE src/fnt src/pui src/sg src/util ) add_library(plib_pui STATIC ${pui_SOURCES} ${pui_HEADERS}) target_include_directories(plib_pui PRIVATE src/fnt src/sg src/util) add_library(plib_pw STATIC ${pw_SOURCES} ${pw_HEADERS}) target_include_directories(plib_pw PRIVATE src/util) add_library(plib_sg STATIC ${sg_SOURCES} ${sg_HEADERS}) target_include_directories(plib_sg PRIVATE src/util) add_library(plib_sl STATIC ${sl_SOURCES} ${sl_HEADERS}) target_include_directories(plib_sl PRIVATE src/util) add_library(plib_ssg STATIC ${ssg_SOURCES} ${ssg_HEADERS}) target_include_directories(plib_ssg PRIVATE src/sg src/util) add_library(plib_ssgAux STATIC ${ssgAux_SOURCES} ${ssgAux_HEADERS}) target_include_directories(plib_ssgAux PRIVATE src/sg src/ssg src/util) add_library(plib_ul STATIC ${ul_SOURCES} ${ul_HEADERS}) # Install install( TARGETS plib_fnt plib_js plib_net plib_psl plib_puAux plib_pui plib_pw plib_sg plib_sl plib_ssg plib_ssgAux plib_ul ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install( FILES ${fnt_HEADERS} ${js_HEADERS} ${net_HEADERS} ${psl_HEADERS} ${puAux_HEADERS} ${pui_HEADERS} ${pw_HEADERS} ${sg_HEADERS} ${sl_HEADERS} ${ssg_HEADERS} ${ssgAux_HEADERS} ${ul_HEADERS} DESTINATION include/plib ) ================================================ FILE: ports/plib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://plib.sourceforge.net/dist/plib-1.8.5.tar.gz" FILENAME "plib-1.8.5.tar.gz" SHA512 17154cc77243fe576c2bcbcb0285b98aef1a0634658f5473e95fe0ac8fa3ed477dbe5620e44ccf0b7cc616f812af0cd44d6fcbba0c563180d3b61c9d6f158e1d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/plib/vcpkg.json ================================================ { "name": "plib", "version": "1.8.5", "port-version": 8, "description": "A suite of portable game libraries", "license": "LGPL-2.0-only", "supports": "!(osx | uwp | xbox)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/plibsys/fix_configuration.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 12cad07..cda9f76 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -827,10 +827,10 @@ if (PLIBSYS_PLATFORM_DEFINES) endif() # Add targets -add_library (plibsys SHARED ${PLIBSYS_SRCS} ${PLIBSYS_PLATFORM_SRCS} ${PLIBSYS_PUBLIC_HDRS} ${PLIBSYS_PRIVATE_HDRS}) - if (PLIBSYS_BUILD_STATIC) add_library (plibsysstatic STATIC ${PLIBSYS_SRCS} ${PLIBSYS_PLATFORM_SRCS} ${PLIBSYS_PUBLIC_HDRS} ${PLIBSYS_PRIVATE_HDRS}) +else() + add_library (plibsys SHARED ${PLIBSYS_SRCS} ${PLIBSYS_PLATFORM_SRCS} ${PLIBSYS_PUBLIC_HDRS} ${PLIBSYS_PRIVATE_HDRS}) endif() # Prepare installation dirs @@ -838,6 +838,10 @@ if (NOT CMAKE_INSTALL_LIBDIR) set (CMAKE_INSTALL_LIBDIR "lib") endif() +if (NOT CMAKE_INSTALL_BINDIR) + set (CMAKE_INSTALL_BINDIR "bin") +endif() + if (NOT CMAKE_INSTALL_INCLUDEDIR) set (CMAKE_INSTALL_INCLUDEDIR "include") endif() @@ -846,16 +850,16 @@ set (PLIBSYS_INCL_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/plibsys) # Add include directories if (COMMAND target_include_directories) - target_include_directories (plibsys PUBLIC - "$" - "$" - ) - if (PLIBSYS_BUILD_STATIC) target_include_directories (plibsysstatic PUBLIC "$" "$" ) + else() + target_include_directories (plibsys PUBLIC + "$" + "$" + ) endif() else() include_directories (${PLIBSYS_INCLUDE_DIRS}) @@ -863,15 +867,16 @@ endif() # Add compile definitions if (COMMAND target_compile_definitions) - target_compile_definitions (plibsys PRIVATE ${PLIBSYS_COMPILE_DEFS}) - if (PLIBSYS_BUILD_STATIC) target_compile_definitions (plibsysstatic PRIVATE ${PLIBSYS_COMPILE_DEFS}) + else() + target_compile_definitions (plibsys PRIVATE ${PLIBSYS_COMPILE_DEFS}) endif() else() add_definitions (${PLIBSYS_COMPILE_DEFS}) endif() +if(NOT PLIBSYS_BUILD_STATIC) set_target_properties (plibsys PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIR}) set_target_properties (plibsys PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIR}) set_target_properties (plibsys PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIR}) @@ -884,6 +889,7 @@ endif() if (NOT PLIBSYS_TARGET_OS STREQUAL os2 AND NOT PLIBSYS_TARGET_OS STREQUAL amigaos) set_target_properties (plibsys PROPERTIES SOVERSION ${PLIBSYS_SOVERSION}) endif() +endif() if (PLIBSYS_BUILD_STATIC) set_target_properties (plibsysstatic PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIR}) @@ -898,10 +904,10 @@ if (PLIBSYS_PLATFORM_CFLAGS) set (PLIBSYS_PLATFORM_CFLAGS_STR "${PLIBSYS_PLATFORM_CFLAGS_STR} ${PLATFORM_CFLAG}") endforeach() - set_target_properties (plibsys PROPERTIES COMPILE_FLAGS "${PLIBSYS_PLATFORM_CFLAGS_STR}") - if (PLIBSYS_BUILD_STATIC) set_target_properties (plibsysstatic PROPERTIES COMPILE_FLAGS "${PLIBSYS_PLATFORM_CFLAGS_STR}") + else() + set_target_properties (plibsys PROPERTIES COMPILE_FLAGS "${PLIBSYS_PLATFORM_CFLAGS_STR}") endif() endif() @@ -910,29 +916,29 @@ if (PLIBSYS_PLATFORM_LDFLAGS) set (PLIBSYS_PLATFORM_LDFLAGS_STR "${PLIBSYS_PLATFORM_LDFLAGS_STR} ${PLATFORM_LDFLAG}") endforeach() - set_target_properties (plibsys PROPERTIES LINK_FLAGS "${PLIBSYS_PLATFORM_LDFLAGS_STR}") - if (PLIBSYS_BUILD_STATIC) set_target_properties (plibsysstatic PROPERTIES LINK_FLAGS "${PLIBSYS_PLATFORM_LDFLAGS_STR}") + else() + set_target_properties (plibsys PROPERTIES LINK_FLAGS "${PLIBSYS_PLATFORM_LDFLAGS_STR}") endif() endif() -target_link_libraries (plibsys ${PLIBSYS_PLATFORM_LINK_LIBRARIES}) - if (PLIBSYS_BUILD_STATIC) target_link_libraries (plibsysstatic ${PLIBSYS_PLATFORM_LINK_LIBRARIES}) +else() + target_link_libraries (plibsys ${PLIBSYS_PLATFORM_LINK_LIBRARIES}) endif() if (PLIBSYS_BUILD_STATIC) - set (PLIBSYS_INSTALL_TARGETS plibsys plibsysstatic) + set (PLIBSYS_INSTALL_TARGETS plibsysstatic) else() set (PLIBSYS_INSTALL_TARGETS plibsys) endif() if (PLIBSYS_NATIVE_WINDOWS) install (TARGETS ${PLIBSYS_INSTALL_TARGETS} - DESTINATION lib - RUNTIME DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin COMPONENT Core ) @@ -942,11 +948,6 @@ if (PLIBSYS_NATIVE_WINDOWS) set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE) include (InstallRequiredSystemLibraries) - - install (PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} - DESTINATION lib - COMPONENT Core - ) endif() set (PLIBSYS_EXPORT_NAME plibsys-targets) @@ -974,13 +975,9 @@ endif() install (TARGETS ${PLIBSYS_INSTALL_TARGETS} EXPORT ${PLIBSYS_EXPORT_NAME} - DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT Core -) -install (TARGETS ${PLIBSYS_INSTALL_TARGETS} - DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Core ) install (FILES ================================================ FILE: ports/plibsys/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO saprykin/plibsys REF "${VERSION}" SHA512 ccc4dd0e54d69121542f4ddec319ec9fd2069866a93135acb87fe564c7bd067a218038dfaa4ddda4debcd897975c016165cbe3d41af6c2149d2b49fbe52f8fbb HEAD_REF master PATCHES fix_configuration.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PLIBSYS_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPLIBSYS_TESTS=OFF -DPLIBSYS_COVERAGE=OFF -DPLIBSYS_BUILD_DOC=OFF -DPLIBSYS_BUILD_STATIC=${PLIBSYS_STATIC} -DPLIBSYS_WRITE_PACKAGE=TRUE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plibsys) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/plibsys/vcpkg.json ================================================ { "name": "plibsys", "version": "0.0.5", "description": "Highly portable C system library: threads and synchronization, sockets, IPC, data structures and more.", "homepage": "https://github.com/saprykin/plibsys", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/plog/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SergiusTheBest/plog REF ${VERSION} SHA512 b51b83a2b478a54d83333590a4f157e3fdeea08903486249d537811afef370ce9968197efb534f2b4084a5a7a7253e5e2d7e191d602451ea625d645a39f195dc HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPLOG_BUILD_SAMPLES=OFF) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib) # Copy usage file file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Put the licence file where vcpkg expects it vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/plog/usage ================================================ The package plog is header only and can be used from CMake via: Modern CMake: find_package(plog CONFIG REQUIRED) target_link_libraries(main PRIVATE plog::plog) ================================================ FILE: ports/plog/vcpkg.json ================================================ { "name": "plog", "version": "1.1.11", "description": "Portable, simple and extensible C++ logging library.", "homepage": "https://github.com/SergiusTheBest/plog", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/plplot/cmake-config.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e29c43d..7063e4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -308,7 +308,8 @@ endif(USE_DLL_SUBDIRECTORY) # Prior to processing directories must initialize exports of installed targets. # Install CMake package config file which handles all those exports. -install(FILES plplotConfig.cmake DESTINATION ${LIB_DIR}/cmake/plplot) +configure_file("${PROJECT_SOURCE_DIR}/plplotConfig.cmake" "${PROJECT_BINARY_DIR}/plplotConfig.cmake" @ONLY) +install(FILES "${PROJECT_BINARY_DIR}/plplotConfig.cmake" DESTINATION ${LIB_DIR}/cmake/plplot) # Initialize the plplot_exports.cmake file which is appended to by CMake logic # to install and export targets that is indirectly executed by the add_subdirectory commands below. diff --git a/plplotConfig.cmake b/plplotConfig.cmake index 677faec..fe6d2ca 100644 --- a/plplotConfig.cmake +++ b/plplotConfig.cmake @@ -1,3 +1,10 @@ +if(NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + if("@ENABLE_wxwidgets@") + find_dependency(wxWidgets) + endif() +endif() + if(ANY_QT_DEVICE AND PLPLOT_USE_QT5) # Find Qt5 components that we need to link applications against # the plplot library (if ENABLE_DYNDRIVERS is false) and which we ================================================ FILE: ports/plplot/fix-pc-absolute.patch ================================================ diff --git a/cmake/modules/wingcc.cmake b/cmake/modules/wingcc.cmake index 25a7494..bb0f476 100644 --- a/cmake/modules/wingcc.cmake +++ b/cmake/modules/wingcc.cmake @@ -40,7 +40,7 @@ if(PLD_wingcc) endif(GDI32_LIBRARY) if(GDI32_LIBRARY AND COMDLG32_LIBRARY) message(STATUS "Looking for gdi32 header and library - found") - set(wingcc_LINK_FLAGS "${GDI32_LIBRARY};${COMDLG32_LIBRARY}") + set(wingcc_LINK_FLAGS "-lgdi32;-lcomdlg32") if(WITH_FREETYPE) set( wingcc_COMPILE_FLAGS diff --git a/cmake/modules/wingdi.cmake b/cmake/modules/wingdi.cmake index bbe7aed..24c29f9 100644 --- a/cmake/modules/wingdi.cmake +++ b/cmake/modules/wingdi.cmake @@ -41,7 +41,7 @@ if(PLD_wingdi) endif(GDI32_LIBRARY) if(GDI32_LIBRARY AND COMDLG32_LIBRARY AND COMCTL32_LIBRARY) message(STATUS "Looking for gdi32 header and library - found") - set(wingdi_LINK_FLAGS "${GDI32_LIBRARY};${COMDLG32_LIBRARY};${COMCTL32_LIBRARY}") + set(wingdi_LINK_FLAGS "-lgdi32;-lcomdlg32;-lcomctl32") set(DRIVERS_LINK_FLAGS ${DRIVERS_LINK_FLAGS} ${wingdi_LINK_FLAGS}) else(GDI32_LIBRARY AND COMDLG32_LIBRARY AND COMCTL32_LIBRARY) message(STATUS "Looking for gdi32 header and library - not found") ================================================ FILE: ports/plplot/host-tool.cmake ================================================ if(NOT TARGET @name@) add_executable(@name@ IMPORTED) set_target_properties(@name@ PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/@name@@VCPKG_TARGET_EXECUTABLE_SUFFIX@" ) endif() ================================================ FILE: ports/plplot/install-interface-include-directories.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 757b4ed..7dfd6e3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -295,6 +295,7 @@ endif(NOT ENABLE_DYNDRIVERS AND ANY_QT_DEVICE AND PLPLOT_USE_QT5) configure_library_build(plplot "" "${plplot_LIB_SRCS}" "${libplplot_LINK_LIBRARIES}" "${LIB_INSTALL_RPATH}") add_dependencies(${WRITEABLE_TARGET}plplot plhershey-unicode.h_built) +target_include_directories(${WRITEABLE_TARGET}plplot INTERFACE $) if(NOT ENABLE_DYNDRIVERS AND (PLD_wxwidgets OR PLD_wxpng)) set_property(TARGET ${WRITEABLE_TARGET}plplot ================================================ FILE: ports/plplot/pkg_config_link_flags.diff ================================================ diff --git a/cmake/modules/pkg-config.cmake b/cmake/modules/pkg-config.cmake index a0ca6b2..32e8566 100644 --- a/cmake/modules/pkg-config.cmake +++ b/cmake/modules/pkg-config.cmake @@ -194,10 +194,14 @@ function(pkg_config_link_flags link_flags_out link_flags_in) # Linux, Mac OS X, and MinGW/MSYS but it may need some # generalization on other platforms such as Cygwin. + set(prefix_literal "lib") if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(suffix_pattern "(\\.so.*|\\.a)") elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(suffix_pattern "(\\.so.*|\\.a|\\.dylib)") + elseif(MSVC) + set(prefix_literal "") + set(suffix_pattern "(\\.[Ll][Ii][Bb])") elseif(WIN32_OR_CYGWIN) # Order is important here. set(suffix_pattern "(\\.dll\\.a|\\.a)") @@ -210,12 +214,35 @@ function(pkg_config_link_flags link_flags_out link_flags_in) set(_link_flags) foreach(link_flag IN LISTS link_flags) #message(STATUS "link_flag = ${link_flag}") + if(TARGET "${link_flag}") + string(TOUPPER "${CMAKE_BUILD_TYPE}" config) + foreach(key IN ITEMS IMPORTED_IMPLIB_${config} IMPORTED_LOCATION_${config} IMPORTED_IMPLIB IMPORTED_LOCATION) + get_target_property(lib "${link_flag}" "${key}") + if(lib) + set(link_flag "${lib}") + break() + endif() + endforeach() + # sorry, no transitive deps for now. + endif() if(WIN32_OR_CYGWIN) # Look for colon-delimited drive-letter form on these platforms. - string(REGEX REPLACE "^([a-zA-Z]:/.*)/lib(.*)${suffix_pattern}$" "-L\"\\1\" -l\\2" link_flag "${link_flag}") endif(WIN32_OR_CYGWIN) # Look for form starting with "/" on all platforms. - string(REGEX REPLACE "^(/.*)/lib(.*)${suffix_pattern}$" "-L\"\\1\" -l\\2" link_flag "${link_flag}") + if(link_flag MATCHES "^([a-zA-Z]:/.*|/.*)/${prefix_literal}(.+)${suffix_pattern}$") + if(CMAKE_MATCH_2 IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + endif() + set(link_flag "-l${CMAKE_MATCH_2}") + if(NOT CMAKE_MATCH_1 IN_LIST CMAKE_C_IMPLICIT_LINK_DIRECTORIES) + set(lib_dir_flag "-L\"${CMAKE_MATCH_1}\"") + if(NOT lib_dir_flag IN_LIST _link_flags) + list(APPEND _link_flags "${lib_dir_flag}") + endif() + endif() + elseif(NOT link_flag MATCHES "^-|/") # e.g. 'm' + set(link_flag "-l${link_flag}") + endif() #message(STATUS "(-L form of link_flag = ${link_flag}") list(APPEND _link_flags ${link_flag}) endforeach(link_flag IN LISTS link_flags) @@ -290,6 +317,7 @@ macro(cmake_link_flags _link_flags_out _link_flags_in) #message("_link_directory_list = ${_link_directory_list}") #message("_link_flags_list (without -L options) = ${_link_flags_list}") + string(REPLACE "-framework;" "-framework " _link_flags_list "${_link_flags_list}") # Derive ${_link_flags_out} from _link_flags_list with -l options # replaced by complete pathname of library. list(LENGTH _link_flags_list _link_flags_length) ================================================ FILE: ports/plplot/pkgconfig-template.diff ================================================ diff --git a/pkgcfg/plplot-template.pc.in b/pkgcfg/plplot-template.pc.in index 7c1310e..4656c03 100644 --- a/pkgcfg/plplot-template.pc.in +++ b/pkgcfg/plplot-template.pc.in @@ -1,6 +1,7 @@ -libdir=@LIB_DIR@ +prefix=${pcfiledir}/../.. +libdir=${prefix}/@LIB_DIR@ includedir=@INCLUDE_DIR@ -drvdir=@LIB_DIR@/plplot@PLPLOT_VERSION@/drivers +drvdir=${prefix}/@LIB_DIR@/plplot@PLPLOT_VERSION@/drivers Name: PLplot @PC_SHORT_NAME@ Description: Scientific plotting library (@PC_PRECISION@@PC_LONG_NAME@) ================================================ FILE: ports/plplot/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO plplot/plplot REF "${VERSION}%20Source" FILENAME "plplot-${VERSION}.tar.gz" SHA512 54533245569b724a7ef90392cc6e9ae65873e6cbab923df0f841c8b43def5e4307690894c7681802209bd3c8df97f54285310a706428f79b3340cce3207087c8 PATCHES cmake-config.diff fix-pc-absolute.patch install-interface-include-directories.patch pkg_config_link_flags.diff pkgconfig-template.diff subdirs.patch use-math-h-nan.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES wxwidgets PLD_wxwidgets wxwidgets ENABLE_wxwidgets x11 PLD_xwin x11 CMAKE_REQUIRE_FIND_PACKAGE_X11 INVERTED_FEATURES x11 CMAKE_DISABLE_FIND_PACKAGE_X11 ) if(VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DCMAKE_NATIVE_BINARY_DIR=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") # Necessary to skip a try_run which isn't used anyways due to PL_HAVE_QHULL=OFF list(APPEND FEATURE_OPTIONS "-DNaNAwareCCompiler=ON") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 -DDEFAULT_NO_BINDINGS=ON -DDEFAULT_NO_QT_DEVICES=ON -DENABLE_cxx=ON -DENABLE_DYNDRIVERS=OFF -DENABLE_qt=OFF -DENABLE_tk=OFF -DHAVE_SHAPELIB=OFF -DPL_DOUBLE=ON -DPL_HAVE_QHULL=OFF -DPLD_aqt=OFF # needs aquaterm framework -DPLD_pdf=OFF # needs haru -DPLD_psttf=OFF # needs lasi (in addition to pango) -DPLD_psttfc=OFF # needs lasi (in addition to pango) "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ${FEATURE_OPTIONS} -DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Freetype=ON OPTIONS_DEBUG "-DDATA_DIR=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/data" "-DDOC_DIR=${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/doc" OPTIONS_RELEASE "-DDATA_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT}/data" "-DDOC_DIR=${CURRENT_PACKAGES_DIR}/share/${PORT}/doc" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plplot) vcpkg_fixup_pkgconfig() if("wxwidgets" IN_LIST FEATURES) file(GLOB pkg_files "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc") foreach(pkg_file IN LISTS pkg_files) vcpkg_replace_string("${pkg_file}" [[${prefix}/lib/mswu]] [[${prefix}/lib/mswud]] IGNORE_UNCHANGED) endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(NOT VCPKG_CROSSCOMPILING) function(copy_tool name subdir cmake_name) vcpkg_copy_tools( TOOL_NAMES "${name}" SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${subdir}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/${subdir}" ) configure_file( "${CURRENT_PORT_DIR}/host-tool.cmake" "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/${subdir}/${cmake_name}" @ONLY ) endfunction() copy_tool(plhershey-unicode-gen "include" "ImportExecutables.cmake") copy_tool(tai-utc-gen "lib/qsastime" "tai-utc-gen.cmake") copy_tool(deltaT-gen "lib/qsastime" "deltaT-gen.cmake") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/Copyright" "${SOURCE_PATH}/COPYING.LIB" ) ================================================ FILE: ports/plplot/subdirs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e29c43d..03f05f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -347,12 +347,6 @@ add_subdirectory(src) add_subdirectory(data) add_subdirectory(bindings) add_subdirectory(drivers) -add_subdirectory(utils) -add_subdirectory(plplot_test) -add_subdirectory(examples) -add_subdirectory(scripts) -add_subdirectory(doc) -add_subdirectory(www) add_subdirectory(pkgcfg) summary() ================================================ FILE: ports/plplot/usage ================================================ plplot provides CMake targets: find_package(plplot CONFIG REQUIRED) # C API, PLplot Core Library target_link_libraries(main PRIVATE PLPLOT::plplot) # C++ binding target_link_libraries(main PRIVATE PLPLOT::plplotcxx) # wxWidgets GUI binding (optional, feature "wxwidgets") target_link_libraries(main PRIVATE PLPLOT::plplotwxwidgets) # CSIRO Cubic Spline Approximation Library target_link_libraries(main PRIVATE PLPLOT::csirocsa) # QSAS Time Format Conversion Library target_link_libraries(main PRIVATE PLPLOT::qsastime) plplot provides pkg-config modules: # C++ binding plplot-c++ # Core C library plplot # WxWidgets binding, optional, feature "wxwidgets" plplot-wxwidgets ================================================ FILE: ports/plplot/use-math-h-nan.patch ================================================ diff --git "a/lib/csa/nan.h" "b/lib/csa/nan.h" index 29fd3d2f..7f16e8c8 100644 --- "a/lib/csa/nan.h" +++ "b/lib/csa/nan.h" @@ -19,6 +19,16 @@ #if !defined ( _NAN_H ) #define _NAN_H +// Try to use the implementation-provided NAN constant: + +#include + +#if defined(NAN) + +#define NaN ((double)NAN) + +#else // ^^^ implementation provides NAN // implementation does not provide NAN vvv + #if ( defined ( __GNUC__ ) && !defined ( __ICC ) ) || defined ( __BORLANDC__ ) static const double NaN = 0.0 / 0.0; @@ -63,4 +73,6 @@ static const long long lNaN = ( (unsigned long long) 1 << 63 ) - 1; #endif +#endif // defined(NAN) + #endif ================================================ FILE: ports/plplot/vcpkg.json ================================================ { "name": "plplot", "version-semver": "5.15.0", "port-version": 6, "description": "PLplot is a cross-platform software package for creating scientific plots whose (UTF-8) plot symbols and text are limited in practice only by what Unicode-aware system fonts are installed on a user's computer.", "homepage": "https://plplot.sourceforge.net/", "license": null, "dependencies": [ { "name": "freetype", "default-features": false }, "pango", { "name": "plplot", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "wxwidgets": { "description": "Enable wxWidgets GUI binding", "dependencies": [ { "name": "wxwidgets", "default-features": false } ] }, "x11": { "description": "Enable X11 support", "dependencies": [ { "name": "cairo", "features": [ "x11" ] }, "libx11" ] } } } ================================================ FILE: ports/plustache/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.1 FATAL_ERROR) project(plustache LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Boost REQUIRED COMPONENTS regex) add_library( plustache src/template.cpp src/context.cpp ) target_include_directories( plustache PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include PRIVATE ${Boost_INCLUDE_DIRS} ) target_link_libraries( plustache PRIVATE ${Boost_LIBRARIES} ) install(TARGETS plustache RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/plustache DESTINATION include) ================================================ FILE: ports/plustache/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mrtazz/plustache REF 3208529343e1858cfe504041be8c1fa0af0a59d1 SHA512 8d9ae368b2f276da2faaf4e3b543fc7ded88ebd8fbe33544aa7d85765a38d085d4c31bb68f6a2f73d4f660da1618d187fb94c74a5f6594e7642bf3949707c67b HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() #Debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/plustache/vcpkg.json ================================================ { "name": "plustache", "version": "0.4.0", "port-version": 5, "description": "{{mustaches}} for C++", "dependencies": [ "boost-algorithm", "boost-regex", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/plutosvg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sammycage/plutosvg REF "v${VERSION}" SHA512 978f33f79b31ee4d38fe3caf7c967db44475d370a35ae29c8763201109da1285d42e6837c4638567eb45abeab2e5a97559fd244599ae13b548c4a8956e17dbc5 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES freetype PLUTOSVG_ENABLE_FREETYPE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPLUTOSVG_BUILD_EXAMPLES=OFF -DCMAKE_REQUIRE_FIND_PACKAGE_plutovg=1 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plutosvg) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plutosvg/plutosvg.h" "defined(PLUTOSVG_BUILD_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/plutosvg/vcpkg.json ================================================ { "name": "plutosvg", "version": "0.0.7", "description": "Tiny SVG rendering library in C", "homepage": "https://github.com/sammycage/plutosvg", "license": "MIT", "dependencies": [ "plutovg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "freetype": { "description": "Enable Freetype integration", "dependencies": [ { "name": "freetype", "default-features": false } ] } } } ================================================ FILE: ports/plutovg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sammycage/plutovg REF "v${VERSION}" SHA512 ecffd41cf24fb7db39fc8916146dceeae7b2c0428f8e57fe3f0b353a1d23f45a04a33f0da24090c42ecab48b10a54648c0b4a677958423b4456cbbb3fd9e2b6b HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES font-face-cache PLUTOVG_DISABLE_FONT_FACE_CACHE_LOAD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPLUTOVG_BUILD_EXAMPLES=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/plutovg) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/plutovg/plutovg.h" "defined(PLUTOVG_BUILD_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/plutovg/vcpkg.json ================================================ { "name": "plutovg", "version": "1.3.2", "description": "Tiny 2D vector graphics library in C", "homepage": "https://github.com/sammycage/plutovg", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "font-face-cache": { "description": "Enable loading font face cache from files and directories" } } } ================================================ FILE: ports/pmdk/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmem/pmdk REF 73d8f958e855904dc0776a7d77d0f0d3698a65b1 #v1.12.0 SHA512 ffe77796c9028478985ca98e4162a671e3e7f580faa46b31d0dcf8c5e97aa6478044efdf7ad238285044f18f754a20a4e2a1b5992c7b9cffa709884eb62007ab HEAD_REF master PATCHES "remove_getopt.patch" ) file(REMOVE "${SOURCE_PATH}/src/windows/getopt" "${SOURCE_PATH}/src/test/getopt") # Build only the selected projects vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH src/PMDK.sln TARGET "Solution Items\\libpmem,Solution Items\\libpmemlog,Solution Items\\libpmemblk,Solution Items\\libpmemobj,Solution Items\\libpmempool,Solution Items\\Tools\\pmempool" OPTIONS /p:SRCVERSION=${VERSION} ADDITIONAL_LIBS getopt.lib ) set(DEBUG_ARTIFACTS_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/x64/Debug") set(RELEASE_ARTIFACTS_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/x64/Release") # Install header files file(GLOB HEADER_FILES "${SOURCE_PATH}/src/include/*.h") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(GLOB HEADER_FILES "${SOURCE_PATH}/src/include/libpmemobj/*.h") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/libpmemobj") # Remove unneeded header files file(REMOVE "${CURRENT_PACKAGES_DIR}/include/libvmmalloc.h") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/librpmem.h") # Install tools (release only) file(INSTALL "${RELEASE_ARTIFACTS_PATH}/libs/pmempool.exe" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pmdk) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pmdk/remove_getopt.patch ================================================ diff --git a/src/PMDK.sln b/src/PMDK.sln index d8220c159..1959a7a59 100644 --- a/src/PMDK.sln +++ b/src/PMDK.sln @@ -239,8 +239,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_alloc", "test\obj_alloc EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pmempool_info", "test\pmempool_info\pmempool_info.vcxproj", "{42CCEF95-5ADD-460C-967E-DD5B2C744943}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "test\getopt\getopt.vcxproj", "{433F7840-C597-4950-84C9-E4FF7DF6A298}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sys", "sys", "{45027FC5-4A32-47BD-AC5B-66CC7616B1D2}" ProjectSection(SolutionItems) = preProject windows\include\sys\file.h = windows\include\sys\file.h @@ -538,8 +538,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_tx_flow", "test\obj_tx_ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "srcversion", "windows\srcversion\srcversion.vcxproj", "{901F04DB-E1A5-4A41-8B81-9D31C19ACD59}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "getopt", "windows\getopt\getopt.vcxproj", "{9186EAC4-2F34-4F17-B940-6585D7869BCD}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libpmemlog", "libpmemlog", "{91C30620-70CA-46C7-AC71-71F3C602690E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "obj_realloc", "test\obj_realloc\obj_realloc.vcxproj", "{91E19AEB-7B75-43E0-B8B4-D2BB60D839EA}" @@ -2183,7 +2181,6 @@ Global {3ED56E55-84A6-422C-A8D4-A8439FB8F245} = {BD6CC700-B36B-435B-BAF9-FC5AFCD766C9} {42B97D47-F800-4100-BFA2-B3AC357E8B6B} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} {42CCEF95-5ADD-460C-967E-DD5B2C744943} = {59AB6976-D16B-48D0-8D16-94360D3FE51D} - {433F7840-C597-4950-84C9-E4FF7DF6A298} = {B870D8A6-12CD-4DD0-B843-833695C2310A} {45027FC5-4A32-47BD-AC5B-66CC7616B1D2} = {9A8482A7-BF0C-423D-8266-189456ED41F6} {46629F21-089C-4205-B2F8-E01748ECE517} = {A14A4556-9092-430D-B9CA-B2B1223D56CB} {46B82069-10BE-432A-8D93-F4D995148555} = {4C291EEB-3874-4724-9CC2-1335D13FF0EE} @@ -2284,7 +2281,6 @@ Global {8D75FA1A-EC74-4F88-8AC1-CE3F98E4D828} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} {8E374371-30E1-4623-8755-2A2F3742170B} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} {901F04DB-E1A5-4A41-8B81-9D31C19ACD59} = {95FAF291-03D1-42FC-9C10-424D551D475D} - {9186EAC4-2F34-4F17-B940-6585D7869BCD} = {95FAF291-03D1-42FC-9C10-424D551D475D} {91C30620-70CA-46C7-AC71-71F3C602690E} = {0CC6D525-806E-433F-AB4A-6CFD546418B1} {91E19AEB-7B75-43E0-B8B4-D2BB60D839EA} = {63C9B3F8-437D-4AD9-B32D-D04AE38C35B6} {9233FC80-B51C-4A89-AF58-5AE86C068F6A} = {A14A4556-9092-430D-B9CA-B2B1223D56CB} diff --git a/src/benchmarks/pmembench.vcxproj b/src/benchmarks/pmembench.vcxproj index ac9b3569e..906a50269 100644 --- a/src/benchmarks/pmembench.vcxproj +++ b/src/benchmarks/pmembench.vcxproj @@ -29,9 +29,6 @@ {cf9a0883-6334-44c7-ac29-349468c78e27} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - @@ -205,10 +202,10 @@ - $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(SolutionDir)\windows\getopt;$(IncludePath) + $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(IncludePath) - $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(SolutionDir)\windows\getopt;$(IncludePath) + $(SolutionDir)\core;$(SolutionDir)\examples\libpmemobj\hashmap;$(SolutionDir)\examples\libpmemobj\map;$(SolutionDir)\examples\libpmemobj\tree_map;$(SolutionDir)\common;$(SolutionDir)\test\unittest;$(SolutionDir)\windows\include;$(SolutionDir)\libpmemobj\;$(SolutionDir)\include;$(SolutionDir)\libpmemblk;$(IncludePath) diff --git a/src/test/bttdevice/bttdevice.vcxproj b/src/test/bttdevice/bttdevice.vcxproj index bfcc74064..05cd8c15d 100644 --- a/src/test/bttdevice/bttdevice.vcxproj +++ b/src/test/bttdevice/bttdevice.vcxproj @@ -72,9 +72,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - {ce3f2dfb-8470-4802-ad37-21caf6cb2681} diff --git a/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj b/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj index 73cb7c0b2..ba87422ea 100644 --- a/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj +++ b/src/test/libpmempool_api_win/libpmempool_test_win.vcxproj @@ -64,9 +64,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - {ce3f2dfb-8470-4802-ad37-21caf6cb2681} diff --git a/src/test/tools/cmpmap/cmpmap.vcxproj b/src/test/tools/cmpmap/cmpmap.vcxproj index 5a502106c..fc0b07bb0 100644 --- a/src/test/tools/cmpmap/cmpmap.vcxproj +++ b/src/test/tools/cmpmap/cmpmap.vcxproj @@ -17,9 +17,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/ddmap/ddmap.vcxproj b/src/test/tools/ddmap/ddmap.vcxproj index 0824e2bb2..d80e82da3 100644 --- a/src/test/tools/ddmap/ddmap.vcxproj +++ b/src/test/tools/ddmap/ddmap.vcxproj @@ -17,9 +17,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/gran_detecto/gran_detecto.vcxproj b/src/test/tools/gran_detecto/gran_detecto.vcxproj index abbe5bfb9..316a39c20 100644 --- a/src/test/tools/gran_detecto/gran_detecto.vcxproj +++ b/src/test/tools/gran_detecto/gran_detecto.vcxproj @@ -90,9 +90,6 @@ {f596c36c-5c96-4f08-b420-8908af500954} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/pmemalloc/pmemalloc.vcxproj b/src/test/tools/pmemalloc/pmemalloc.vcxproj index d84b87416..c1f910710 100644 --- a/src/test/tools/pmemalloc/pmemalloc.vcxproj +++ b/src/test/tools/pmemalloc/pmemalloc.vcxproj @@ -26,9 +26,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/pmemdetect/pmemdetect.vcxproj b/src/test/tools/pmemdetect/pmemdetect.vcxproj index 1c4cfd70c..10f472eb4 100644 --- a/src/test/tools/pmemdetect/pmemdetect.vcxproj +++ b/src/test/tools/pmemdetect/pmemdetect.vcxproj @@ -93,9 +93,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - {ce3f2dfb-8470-4802-ad37-21caf6cb2681} diff --git a/src/test/tools/pmemobjcli/pmemobjcli.vcxproj b/src/test/tools/pmemobjcli/pmemobjcli.vcxproj index 092ad91f7..0c13bb915 100644 --- a/src/test/tools/pmemobjcli/pmemobjcli.vcxproj +++ b/src/test/tools/pmemobjcli/pmemobjcli.vcxproj @@ -20,9 +20,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/pmemspoil/pmemspoil.vcxproj b/src/test/tools/pmemspoil/pmemspoil.vcxproj index 0d7718e01..5eba7d1f7 100644 --- a/src/test/tools/pmemspoil/pmemspoil.vcxproj +++ b/src/test/tools/pmemspoil/pmemspoil.vcxproj @@ -32,9 +32,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/pmemwrite/pmemwrite.vcxproj b/src/test/tools/pmemwrite/pmemwrite.vcxproj index f4e4a229f..efc80865f 100644 --- a/src/test/tools/pmemwrite/pmemwrite.vcxproj +++ b/src/test/tools/pmemwrite/pmemwrite.vcxproj @@ -26,9 +26,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - diff --git a/src/test/tools/sparsefile/sparsefile.vcxproj b/src/test/tools/sparsefile/sparsefile.vcxproj index 76710038b..481bb9332 100644 --- a/src/test/tools/sparsefile/sparsefile.vcxproj +++ b/src/test/tools/sparsefile/sparsefile.vcxproj @@ -21,9 +21,6 @@ {492baa3d-0d5d-478e-9765-500463ae69aa} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - {3EC30D6A-BDA4-4971-879A-8814204EAE31} diff --git a/src/tools/pmempool/pmempool.vcxproj b/src/tools/pmempool/pmempool.vcxproj index 120fe35b6..65709ed92 100644 --- a/src/tools/pmempool/pmempool.vcxproj +++ b/src/tools/pmempool/pmempool.vcxproj @@ -77,9 +77,6 @@ {9e9e3d25-2139-4a5d-9200-18148ddead45} - - {9186eac4-2f34-4f17-b940-6585d7869bcd} - ================================================ FILE: ports/pmdk/vcpkg.json ================================================ { "name": "pmdk", "version": "1.12.0", "port-version": 2, "description": "Persistent Memory Development Kit", "homepage": "https://github.com/pmem/pmdk", "license": "BSD-3-Clause", "supports": "!(linux | arm | x86)", "dependencies": [ "getopt", { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/pmp-library/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pmp-library/pmp-library REF "${VERSION}" SHA512 8ee6f731619b92ad3d555b96c9e486446a4b9b3871992b389f9a55a0d07ca9f69cb4e03c1dc1c986357fc5a06ad60b2657ee0d58a78cb5da3c8f5692fb4c8b0f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPMP_BUILD_EXAMPLES=OFF -DPMP_BUILD_TESTS=OFF -DPMP_BUILD_DOCS=OFF -DPMP_BUILD_VIS=OFF -DPMP_STRICT_COMPILATION=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/pmp" PACKAGE_NAME pmp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/pmp-library/vcpkg.json ================================================ { "name": "pmp-library", "version": "3.0.0", "description": "The Polygon Mesh Processing Library", "homepage": "https://github.com/pmp-library/pmp-library", "license": "MIT", "supports": "!xbox", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pngpp/fix-stderror-win.patch ================================================ diff --git a/error.hpp b/error.hpp index 31e1801..d4b4655 100644 --- a/error.hpp +++ b/error.hpp @@ -32,7 +32,7 @@ #define PNGPP_ERROR_HPP_INCLUDED /* check if we have strerror_s or strerror_r, prefer the former which is C11 std */ -#ifdef __STDC_LIB_EXT1__ +#if defined(__STDC_LIB_EXT1__) || defined(_WIN32) #define __STDC_WANT_LIB_EXT1__ 1 #include ================================================ FILE: ports/pngpp/portfile.cmake ================================================ # Header only library vcpkg_download_distfile(ARCHIVE URLS "http://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz" FILENAME "png++-0.2.10.tar.gz" SHA512 c54a74c0c20212bd0dcf86386c0c11dd824ad14952917ba0ff4c184b6547744458728a4f06018371acb7d5b842b641708914ccaa81bad8e72e173903f494ca85 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES fix-stderror-win.patch ) file(GLOB HEADER_FILES ${SOURCE_PATH}/*.hpp) file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/png++) file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/pngpp/vcpkg.json ================================================ { "name": "pngpp", "version": "0.2.10", "port-version": 2, "description": "A C++ wrapper for libpng library.", "dependencies": [ "libpng" ] } ================================================ FILE: ports/pngwriter/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pngwriter/pngwriter REF 0.7.0 SHA512 3e4ef098e4d715d18844cada64f32dbf079fdd1f7a64b6fe5e19584094f6b2a61f80c53804f936b6eefd7ef9dad4a01a7210b1273939d385a0850e48f8ba6683 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PNGwriter) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/doc/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/pngwriter" RENAME copyright) ================================================ FILE: ports/pngwriter/vcpkg.json ================================================ { "name": "pngwriter", "version": "0.7.0", "port-version": 5, "description": "PNGwriter is a very easy to use open source graphics library that uses PNG as its output format", "dependencies": [ "freetype", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/pocketfft/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH src_path REPO mreineck/pocketfft REF 9efd4da52cf8d28d14531d14e43ad9d913807546 SHA512 e8c2b65b23feb53f1077b3ae1e0e20d21d8f55601bd1216443af0fbc916638c3649527494ec2f23bed42d562341e0cf1fcde54c37068333161f289d23d8a9009 HEAD_REF cpp ) set(VCPKG_BUILD_TYPE release) # header only file(COPY "${src_path}/pocketfft_hdronly.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${src_path}/LICENSE.md") ================================================ FILE: ports/pocketfft/vcpkg.json ================================================ { "name": "pocketfft", "version-date": "2023-09-25", "description": "This is a heavily modified implementation of FFTPack", "homepage": "https://github.com/mreineck/pocketfft", "license": "BSD-3-Clause" } ================================================ FILE: ports/pocketpy/fix-conflict.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ed02678..9297b20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,8 @@ if (PK_INSTALL) DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include FILES_MATCHING PATTERN "*.h" - PATTERN "typings" EXCLUDE + PATTERN "typings" EXCLUDE + PATTERN "pybind11" EXCLUDE ) # generate config.cmake ================================================ FILE: ports/pocketpy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pocketpy/pocketpy REF "v${VERSION}" SHA512 6c9872c4a402bc702e577067c05d593034f45f150ebbf033ef204b4c7deff6cd2da0f9db44e0bb37aefdeb7a4d99e5a9c4a93ece57316f561c5bf4cd33cd12e3 HEAD_REF master PATCHES fix-conflict.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPK_BUILD_SHARED_LIB=${BUILD_SHARED} -DPK_BUILD_STATIC_LIB=${BUILD_STATIC} -DPK_ENABLE_OS=OFF -DPK_USE_CJSON=OFF -DPK_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pocketpy/vcpkg.json ================================================ { "name": "pocketpy", "version": "1.4.6", "port-version": 1, "description": "pkpy is a lightweight(~15K LOC) Python interpreter for game scripting, built on C++17 with STL.", "homepage": "https://github.com/pocketpy/pocketpy", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/poco/0001-static-pcre.patch ================================================ diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index d5f3b26..cb29e69 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -101,6 +101,31 @@ set_target_properties(Foundation if(POCO_UNBUNDLED) target_link_libraries(Foundation PUBLIC Pcre2::Pcre2 ZLIB::ZLIB Utf8Proc::Utf8Proc) target_compile_definitions(Foundation PUBLIC POCO_UNBUNDLED) + add_definitions( + -D_pcre2_utf8_table1=_poco_pcre2_utf8_table1 + -D_pcre2_utf8_table1_size=_poco_pcre2_utf8_table1_size + -D_pcre2_utf8_table2=_poco_pcre2_utf8_table2 + -D_pcre2_utf8_table3=_poco_pcre2_utf8_table3 + -D_pcre2_utf8_table4=_poco_pcre2_utf8_table4 + -D_pcre2_OP_lengths_8=_poco_pcre2_OP_lengths_8 + -D_pcre2_callout_end_delims_8=_poco_pcre2_callout_end_delims_8 + -D_pcre2_callout_start_delims_8=_poco_pcre2_callout_start_delims_8 + -D_pcre2_hspace_list_8=_poco_pcre2_hspace_list_8 + -D_pcre2_vspace_list_8=_poco_pcre2_vspace_list_8 + -D_pcre2_ucp_gbtable_8=_poco_pcre2_ucp_gbtable_8 + -D_pcre2_ucp_gentype_8=_poco_pcre2_ucp_gentype_8 + -D_pcre2_utt_8=_poco_pcre2_utt_8 + -D_pcre2_utt_names_8=_poco_pcre2_utt_names_8 + -D_pcre2_utt_size_8=_poco_pcre2_utt_size_8 + -D_pcre2_unicode_version_8=_poco_pcre2_unicode_version_8 + -D_pcre2_ucd_caseless_sets_8=_poco_pcre2_ucd_caseless_sets_8 + -D_pcre2_ucd_digit_sets_8=_poco_pcre2_ucd_digit_sets_8 + -D_pcre2_ucd_script_sets_8=_poco_pcre2_ucd_script_sets_8 + -D_pcre2_ucd_boolprop_sets_8=_poco_pcre2_ucd_boolprop_sets_8 + -D_pcre2_ucd_records_8=_poco_pcre2_ucd_records_8 + -D_pcre2_ucd_stage1_8=_poco_pcre2_ucd_stage1_8 + -D_pcre2_ucd_stage2_8=_poco_pcre2_ucd_stage2_8 +) else() target_compile_definitions(Foundation PUBLIC UTF8PROC_STATIC) endif(POCO_UNBUNDLED) ================================================ FILE: ports/poco/0002-arm64-pcre.patch ================================================ diff --git a/Foundation/src/EventLogChannel.cpp b/Foundation/src/EventLogChannel.cpp index f9a9fb1..b032f9d 100644 --- a/Foundation/src/EventLogChannel.cpp +++ b/Foundation/src/EventLogChannel.cpp @@ -11,6 +11,7 @@ // SPDX-License-Identifier: BSL-1.0 // +#pragma comment(lib,"advapi32.lib") #include "Poco/EventLogChannel.h" #include "Poco/Message.h" diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h index c9b6c00..710c199 100644 --- a/Foundation/src/utils.h +++ b/Foundation/src/utils.h @@ -129,7 +129,7 @@ int main(int argc, char** argv) { // // If it prints "correct" then the architecture should be here, in the "correct" section. #if defined(_M_X64) || defined(__x86_64__) || \ - defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ + defined(__ARMEL__) || defined(_M_ARM) || defined(__arm__) || defined(__arm64__) || defined(_M_ARM64) || \ defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ defined(__loongarch__) || \ diff --git a/Net/src/Net.cpp b/Net/src/Net.cpp index 1a75379..b4081fd 100644 --- a/Net/src/Net.cpp +++ b/Net/src/Net.cpp @@ -11,6 +11,7 @@ // SPDX-License-Identifier: BSL-1.0 // +#pragma comment(lib,"advapi32.lib") #include "Poco/Net/Net.h" diff --git a/Util/src/WinRegistryKey.cpp b/Util/src/WinRegistryKey.cpp index 7fd1a28..a07c5d2 100644 --- a/Util/src/WinRegistryKey.cpp +++ b/Util/src/WinRegistryKey.cpp @@ -11,6 +11,7 @@ // SPDX-License-Identifier: BSL-1.0 // +#pragma comment(lib,"advapi32.lib") #include "Poco/Util/WinRegistryKey.h" #include "Poco/Exception.h" ================================================ FILE: ports/poco/0003-fix-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 861c27c..d2701ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,8 +80,6 @@ option(ENABLE_NETSSL_WIN "Enable NetSSL Windows" OFF) if(ENABLE_CRYPTO OR ENABLE_NETSSL OR ENABLE_JWT) find_package(OpenSSL REQUIRED) -else() - find_package(OpenSSL) endif() if(OPENSSL_FOUND) @@ -111,24 +109,19 @@ else() option(ENABLE_APACHECONNECTOR "Enable ApacheConnector" OFF) endif() -if(ENABLE_DATA_MYSQL) - find_package(MySQL REQUIRED) -else() - find_package(MySQL) -endif() +option(ENABLE_DATA "Enable Data" OFF) +option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF) -if(MYSQL_FOUND) - option(ENABLE_DATA "Enable Data" ON) - option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" ON) -else() - option(ENABLE_DATA "Enable Data" OFF) - option(ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF) +if(ENABLE_DATA_MYSQL) + find_package(libmysql) + if (NOT libmysql_FOUND) + find_package(unofficial-libmariadb CONFIG REQUIRED) + set(MYSQL_LIBRARIES unofficial::libmariadb) + endif() endif() if(ENABLE_DATA_POSTGRESQL) find_package(PostgreSQL REQUIRED) -else() - find_package(PostgreSQL) endif() if(PostgreSQL_FOUND) @@ -266,6 +259,9 @@ include(DefinePlatformSpecific) # Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file set(Poco_COMPONENTS "") +# Do not declare the link library in the code! +add_definitions(-DPOCO_NO_AUTOMATIC_LIBS) + if(ENABLE_TESTS) add_subdirectory(CppUnit) set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) @@ -398,8 +394,11 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Prometheus AND ENABLE_PROMETHEUS) list(APPEND Poco_COMPONENTS "Prometheus") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/PDF AND ENABLE_PDF) - add_subdirectory(PDF) +if(ENABLE_PDF) + include(SelectLibraryConfigurations) + find_library(PocoPDF_LIBRARY_RELEASE NAMES libhpdf) + find_library(PocoPDF_LIBRARY_DEBUG NAMES libhpdfd) + select_library_configurations(PocoPDF) list(APPEND Poco_COMPONENTS "PDF") endif() diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 95e5019..d7bd537 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -73,7 +73,7 @@ else(ENABLE_DATA_SQLITE) message(STATUS "SQLite Support Disabled") endif() -if(MYSQL_FOUND AND ENABLE_DATA_MYSQL) +if((unofficial-libmysql_FOUND OR unofficial-libmariadb_FOUND) AND ENABLE_DATA_MYSQL) message(STATUS "MySQL Support Enabled") add_subdirectory(MySQL) else() diff --git a/Data/MySQL/CMakeLists.txt b/Data/MySQL/CMakeLists.txt index 0ea8701..3c8a426 100644 --- a/Data/MySQL/CMakeLists.txt +++ b/Data/MySQL/CMakeLists.txt @@ -21,7 +21,7 @@ set_target_properties(DataMySQL DEFINE_SYMBOL MySQL_EXPORTS ) -target_link_libraries(DataMySQL PUBLIC Poco::Data MySQL::client) +target_link_libraries(DataMySQL PUBLIC Poco::Data ${MYSQL_LIBRARIES}) target_include_directories(DataMySQL PUBLIC $ diff --git a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h index 2386590..81b2c8e 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h +++ b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h @@ -57,8 +57,6 @@ #endif #if defined(LIBMARIADB) #pragma comment(lib, "libmariadb") - #else - #pragma comment(lib, "libmysql") #endif #endif diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index 7141112..0c73beb 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -7,7 +7,7 @@ file(GLOB_RECURSE HDRS_G "include/*.h") POCO_HEADERS_AUTO(SQLITE_SRCS ${HDRS_G}) if(POCO_UNBUNDLED) - find_package(SQLite3 REQUIRED) + find_package(unofficial-sqlite3 CONFIG REQUIRED) else() # sqlite3 POCO_SOURCES(SQLITE_SRCS sqlite3 @@ -39,7 +39,7 @@ target_include_directories(DataSQLite ) if(POCO_UNBUNDLED) - target_link_libraries(DataSQLite PUBLIC SQLite::SQLite3) + target_link_libraries(DataSQLite PUBLIC unofficial::sqlite3::sqlite3) target_compile_definitions(DataSQLite PUBLIC POCO_UNBUNDLED SQLITE_THREADSAFE=1 diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt index cf66250..89e6c8f 100644 --- a/XML/CMakeLists.txt +++ b/XML/CMakeLists.txt @@ -20,7 +20,7 @@ endif() # If POCO_UNBUNDLED is enabled we try to find the required packages # The configuration will fail if the packages are not found if(POCO_UNBUNDLED) - find_package(EXPAT REQUIRED) + find_package(expat CONFIG REQUIRED) else() POCO_SOURCES(SRCS expat src/xmlparse.cpp @@ -50,7 +50,7 @@ target_include_directories(XML ) if(POCO_UNBUNDLED) - target_link_libraries(XML PUBLIC EXPAT::EXPAT) + target_link_libraries(XML PUBLIC expat::expat) target_compile_definitions(XML PUBLIC POCO_UNBUNDLED) else() if(WIN32) diff --git a/XML/cmake/PocoXMLConfig.cmake b/XML/cmake/PocoXMLConfig.cmake index ef58207..4ed94ec 100644 --- a/XML/cmake/PocoXMLConfig.cmake +++ b/XML/cmake/PocoXMLConfig.cmake @@ -4,7 +4,7 @@ if(@POCO_UNBUNDLED@) if(CMAKE_VERSION VERSION_LESS "3.10") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/V39") endif() - find_dependency(EXPAT REQUIRED) + find_dependency(expat CONFIG REQUIRED) endif() include("${CMAKE_CURRENT_LIST_DIR}/PocoXMLTargets.cmake") diff --git a/cmake/PocoConfig.cmake.in b/cmake/PocoConfig.cmake.in index 173eacd..90f68fc 100644 --- a/cmake/PocoConfig.cmake.in +++ b/cmake/PocoConfig.cmake.in @@ -8,6 +8,12 @@ if (NOT Poco_FIND_COMPONENTS) return() endif() +include(CMakeFindDependencyMacro) +find_dependency(ZLIB REQUIRED) +if(Poco_FIND_REQUIRED_XML) + find_dependency(expat CONFIG REQUIRED) +endif() + set(_Poco_FIND_PARTS_REQUIRED) if (Poco_FIND_REQUIRED) set(_Poco_FIND_PARTS_REQUIRED REQUIRED) @@ -23,7 +29,7 @@ set(_Poco_NOTFOUND_MESSAGE) # Let components find each other, but don't overwrite CMAKE_PREFIX_PATH set(_Poco_CMAKE_PREFIX_PATH_old ${CMAKE_PREFIX_PATH}) -set(CMAKE_PREFIX_PATH ${_Poco_install_prefix}) +set(CMAKE_PREFIX_PATH ${_Poco_install_prefix} ${CMAKE_PREFIX_PATH}) foreach(module ${Poco_FIND_COMPONENTS}) find_package(Poco${module} diff --git a/Foundation/cmake/PocoFoundationConfig.cmake b/Foundation/cmake/PocoFoundationConfig.cmake index 82c5788..739adef 100644 --- a/Foundation/cmake/PocoFoundationConfig.cmake +++ b/Foundation/cmake/PocoFoundationConfig.cmake @@ -3,7 +3,7 @@ if(@POCO_UNBUNDLED@) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") find_dependency(ZLIB REQUIRED) find_dependency(PCRE2 REQUIRED) - find_dependency(Utf8Proc REQUIRED) + find_dependency(unofficial-utf8proc REQUIRED) endif() include("${CMAKE_CURRENT_LIST_DIR}/PocoFoundationTargets.cmake") ================================================ FILE: ports/poco/0004-fix-feature-sqlite3.patch ================================================ diff --git a/Data/SQLite/cmake/PocoDataSQLiteConfig.cmake b/Data/SQLite/cmake/PocoDataSQLiteConfig.cmake index 5478bab..c5d6d6d 100644 --- a/Data/SQLite/cmake/PocoDataSQLiteConfig.cmake +++ b/Data/SQLite/cmake/PocoDataSQLiteConfig.cmake @@ -5,7 +5,7 @@ if(@POCO_UNBUNDLED@) if(CMAKE_VERSION VERSION_LESS "3.14") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/V313") endif() - find_dependency(SQLite3 REQUIRED) + find_dependency(unofficial-sqlite3 REQUIRED) endif() include("${CMAKE_CURRENT_LIST_DIR}/PocoDataSQLiteTargets.cmake") ================================================ FILE: ports/poco/0005-fix-error-c3861.patch ================================================ diff --git a/XML/src/ParserEngine.h b/XML/src/ParserEngine.h index f74b553..c638778 100644 --- a/XML/src/ParserEngine.h +++ b/XML/src/ParserEngine.h @@ -19,6 +19,7 @@ #include "Poco/XML/XML.h" #if defined(POCO_UNBUNDLED) +#include #include #else #include "expat.h" ================================================ FILE: ports/poco/0007-find-pcre2.patch ================================================ diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index d8df9dc..fe2b000 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -27,9 +27,12 @@ POCO_MESSAGES(SRCS Logging src/pocomsg.mc) # If POCO_UNBUNDLED is enabled we try to find the required packages # The configuration will fail if the packages are not found if(POCO_UNBUNDLED) - find_package(PCRE2 REQUIRED) find_package(ZLIB REQUIRED) - find_package(Utf8Proc REQUIRED) + find_package(unofficial-utf8proc CONFIG REQUIRED) + include(SelectLibraryConfigurations) + find_library(PCRE2_LIBRARY_DEBUG NAMES pcre2-8d pcre2-8-staticd HINTS ${INSTALLED_LIB_PATH}) + find_library(PCRE2_LIBRARY_RELEASE NAMES pcre2-8 pcre2-8-static HINTS ${INSTALLED_LIB_PATH}) + select_library_configurations(PCRE2) #HACK: Unicode.cpp requires functions from these files. The can't be taken from the library POCO_SOURCES(SRCS RegExp @@ -99,7 +102,7 @@ set_target_properties(Foundation ) if(POCO_UNBUNDLED) - target_link_libraries(Foundation PUBLIC Pcre2::Pcre2 ZLIB::ZLIB Utf8Proc::Utf8Proc) + target_link_libraries(Foundation PUBLIC ${PCRE2_LIBRARY} ZLIB::ZLIB utf8proc) target_compile_definitions(Foundation PUBLIC POCO_UNBUNDLED) add_definitions( -D_pcre2_utf8_table1=_poco_pcre2_utf8_table1 diff --git a/cmake/FindPCRE2.cmake b/cmake/FindPCRE2.cmake index e730f32..6e10df2 100644 --- a/cmake/FindPCRE2.cmake +++ b/cmake/FindPCRE2.cmake @@ -54,7 +54,7 @@ Hints include(FindPackageHandleStandardArgs) find_package(PkgConfig QUIET) -pkg_check_modules(PC_PCRE2 QUIET pcre2) +pkg_check_modules(PC_PCRE2 QUIET libpcre2-8) find_path(PCRE2_INCLUDE_DIR NAMES pcre2.h @@ -66,8 +66,8 @@ find_path(PCRE2_INCLUDE_DIR DOC "Specify the include directory containing pcre2.h" ) -find_library(PCRE2_LIBRARY - NAMES pcre2-8 +find_library(PCRE2_LIBRARY_DEBUG + NAMES pcre2-8d pcre2-8-staticd HINTS ${PCRE2_ROOT_DIR}/lib ${PCRE2_ROOT_LIBRARY_DIRS} @@ -76,6 +76,19 @@ find_library(PCRE2_LIBRARY DOC "Specify the lib directory containing pcre2" ) +find_library(PCRE2_LIBRARY_RELEASE + NAMES pcre2-8 pcre2-8-static + HINTS + ${PCRE2_ROOT_DIR}/lib + ${PCRE2_ROOT_LIBRARY_DIRS} + PATHS + ${PC_PCRE2_LIBRARY_DIRS} + DOC "Specify the lib directory containing pcre2" +) + +include(SelectLibraryConfigurations) +select_library_configurations(PCRE2) + set(PCRE2_VERSION ${PC_PCRE2_VERSION}) find_package_handle_standard_args(PCRE2 @@ -87,7 +100,6 @@ find_package_handle_standard_args(PCRE2 ) if(PCRE2_FOUND) - set(PCRE2_LIBRARIES ${PCRE2_LIBRARY}) set(PCRE2_INCLUDE_DIRS ${PCRE2_INCLUDE_DIR}) set(PCRE2_DEFINITIONS ${PC_PCRE2_CFLAGS_OTHER}) endif() ================================================ FILE: ports/poco/0008-fix-mingw-compilation.patch ================================================ diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index 41ba99936..b3986690f 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -193,7 +193,6 @@ if(MINGW) _WIN32 MINGW32 WINVER=0x500 - ODBCVER=0x0300 POCO_THREAD_STACK_SIZE ) endif() diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 7a4e7e2fb..8caa6de06 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -244,6 +244,9 @@ #define POCO_NO_FPENVIRONMENT #endif +#if defined (__MINGW32__) || defined (__MINGW64__) + #define POCO_COMPILER_MINGW +#endif #if defined(__clang__) #define POCO_COMPILER_CLANG @@ -255,13 +258,8 @@ #elif defined (__GNUC__) #define POCO_COMPILER_GCC #if __has_include() #define POCO_HAVE_CXXABI_H #endif - #if defined (__MINGW32__) || defined (__MINGW64__) - #define POCO_COMPILER_MINGW - #endif -#elif defined (__MINGW32__) || defined (__MINGW64__) - #define POCO_COMPILER_MINGW #elif defined (__INTEL_COMPILER) || defined(__ICC) || defined(__ECC) || defined(__ICL) #define POCO_COMPILER_INTEL #elif defined (__SUNPRO_CC) ================================================ FILE: ports/poco/0009-fix-zip-to-xml-dependency.patch ================================================ CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e88e5612a..23b4c992f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -459,12 +459,12 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/ActiveRecord/Compiler AND ENABLE_ACTIVERECORD_CO list(APPEND Poco_COMPONENTS "ActiveRecordCompiler") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/SevenZip AND ENABLE_SEVENZIP AND ENABLE_XML) +if(EXISTS ${PROJECT_SOURCE_DIR}/SevenZip AND ENABLE_SEVENZIP) add_subdirectory(SevenZip) list(APPEND Poco_COMPONENTS "SevenZip") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/Zip AND ENABLE_ZIP AND ENABLE_XML) +if(EXISTS ${PROJECT_SOURCE_DIR}/Zip AND ENABLE_ZIP) add_subdirectory(Zip) list(APPEND Poco_COMPONENTS "Zip") endif() ================================================ FILE: ports/poco/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pocoproject/poco REF "poco-${VERSION}-release" SHA512 e192818a5f731ec6f6bddf062573d7bedfd15754157f145882c2c9d9bce497b92cf23f639f989d9e5605cb83029c4f303752cab655b525b5a5b5e5b704714725 HEAD_REF devel PATCHES # Fix embedded copy of pcre in static linking mode 0001-static-pcre.patch # Add the support of arm64-windows 0002-arm64-pcre.patch 0003-fix-dependency.patch 0004-fix-feature-sqlite3.patch 0005-fix-error-c3861.patch 0007-find-pcre2.patch # MSYS2 repo was used as a source. Thanks MSYS2 team: https://github.com/msys2/MINGW-packages/blob/6e7fba42b7f50e1111b7c0ef50048832243b0ac4/mingw-w64-poco/001-fix-build-on-mingw.patch 0008-fix-mingw-compilation.patch # Should be removed once https://github.com/pocoproject/poco/issues/4947 is resolved 0009-fix-zip-to-xml-dependency.patch ) file(REMOVE "${SOURCE_PATH}/Foundation/src/pcre2.h") file(REMOVE "${SOURCE_PATH}/cmake/V39/FindEXPAT.cmake") file(REMOVE "${SOURCE_PATH}/cmake/V313/FindSQLite3.cmake") # vcpkg's PCRE2 does not provide a FindPCRE2, and the bundled one seems to work fine # file(REMOVE "${SOURCE_PATH}/cmake/FindPCRE2.cmake") file(REMOVE "${SOURCE_PATH}/XML/src/expat_config.h") file(REMOVE "${SOURCE_PATH}/cmake/FindMySQL.cmake") # define Poco linkage type string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" POCO_MT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES crypto ENABLE_CRYPTO netssl ENABLE_NETSSL pdf ENABLE_PDF postgresql ENABLE_DATA_POSTGRESQL encodings ENABLE_ENCODINGS encodings-compiler ENABLE_ENCODINGS_COMPILER xml ENABLE_XML json ENABLE_JSON mongodb ENABLE_MONGODB redis ENABLE_REDIS prometheus ENABLE_PROMETHEUS util ENABLE_UTIL net ENABLE_NET zip ENABLE_ZIP pocodoc ENABLE_POCODOC pagecompiler ENABLE_PAGECOMPILER pagecompiler-file2page ENABLE_PAGECOMPILER_FILE2PAGE jwt ENABLE_JWT data ENABLE_DATA sqlite ENABLE_DATA_SQLITE odbc ENABLE_DATA_ODBC activerecord ENABLE_ACTIVERECORD activerecord-compiler ENABLE_ACTIVERECORD_COMPILER sevenzip ENABLE_SEVENZIP cpp-parser ENABLE_CPPPARSER ) # POCO_ENABLE_NETSSL_WIN: # Use the unreleased NetSSL_Win module instead of (OpenSSL) NetSSL. # This is a variable which can be set in the triplet file. if(POCO_ENABLE_NETSSL_WIN) string(REPLACE "ENABLE_NETSSL" "ENABLE_NETSSL_WIN" FEATURE_OPTIONS "${FEATURE_OPTIONS}") list(APPEND FEATURE_OPTIONS "-DENABLE_NETSSL:BOOL=OFF") endif() if ("mysql" IN_LIST FEATURES OR "mariadb" IN_LIST FEATURES) set(POCO_USE_MYSQL ON) else() set(POCO_USE_MYSQL OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} # force to use dependencies as external -DPOCO_UNBUNDLED=ON # Define linking feature -DPOCO_MT=${POCO_MT} -DENABLE_TESTS=OFF -DENABLE_SAMPLES=OFF # Allow enabling and disabling components done via features -DPOCO_DISABLE_INTERNAL_OPENSSL=ON -DENABLE_APACHECONNECTOR=OFF -DENABLE_DATA_MYSQL=${POCO_USE_MYSQL} MAYBE_UNUSED_VARIABLES # these are only used when if(MSVC) POCO_DISABLE_INTERNAL_OPENSSL POCO_MT ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Move apps to the tools folder set(tools) if (ENABLE_PAGECOMPILER) list(APPEND tools "cpspc") endif() if (ENABLE_PAGECOMPILER_FILE2PAGE) list(APPEND tools "f2cpsp") endif() if (ENABLE_POCODOC) list(APPEND tools "PocoDoc") endif() if (ENABLE_ENCODINGS_COMPILER) list(APPEND tools "tec") endif() if (ENABLE_ACTIVERECORD_COMPILER) list(APPEND tools "poco-arc") endif() if (tools) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Copy additional include files not part of any libraries if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL") file(COPY "${SOURCE_PATH}/Data/include" DESTINATION "${CURRENT_PACKAGES_DIR}") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/MySQL") file(COPY "${SOURCE_PATH}/Data/MySQL/include" DESTINATION "${CURRENT_PACKAGES_DIR}") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/ODBC") file(COPY "${SOURCE_PATH}/Data/ODBC/include" DESTINATION "${CURRENT_PACKAGES_DIR}") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/PostgreSQL") file(COPY "${SOURCE_PATH}/Data/PostgreSQL/include" DESTINATION "${CURRENT_PACKAGES_DIR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/libpq") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/include/Poco/SQL/SQLite") file(COPY "${SOURCE_PATH}/Data/SQLite/include" DESTINATION "${CURRENT_PACKAGES_DIR}") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Poco) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/poco/usage ================================================ The package poco is compatible with built-in CMake targets: find_package(Poco REQUIRED [COMPONENTS ...]) target_link_libraries(main PRIVATE Poco::) ================================================ FILE: ports/poco/vcpkg.json ================================================ { "name": "poco", "version": "1.14.1", "port-version": 2, "description": "Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems.", "homepage": "https://github.com/pocoproject/poco", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ "pcre2", "utf8proc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "activerecord": { "description": "Simple and lightweight object-relational mapping (ORM) framework built on top of the POCO Data", "dependencies": [ "expat", { "name": "poco", "default-features": false, "features": [ "data" ] } ] }, "activerecord-compiler": { "description": "Compiler for Simple and lightweight object-relational mapping (ORM) framework built on top of the POCO Data", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "util", "xml" ] } ] }, "cpp-parser": { "description": "POCO C++ parser" }, "crypto": { "description": "Crypto support", "dependencies": [ "openssl" ] }, "data": { "description": "Database abstraction layer for POCO" }, "encodings": { "description": "Encodings support for POCO" }, "encodings-compiler": { "description": "Compiler for encodings support for POCO" }, "json": { "description": "JSON support for POCO" }, "jwt": { "description": "JWT support for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "crypto", "json" ] } ] }, "mariadb": { "description": "MariaDB support for POCO", "dependencies": [ "libmariadb", { "name": "poco", "default-features": false, "features": [ "data" ] } ] }, "mongodb": { "description": "MongoDB support for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "net" ] } ] }, "mysql": { "description": "Mysql support for POCO", "dependencies": [ "libmysql", { "name": "poco", "default-features": false, "features": [ "data" ] } ] }, "net": { "description": "Network support for POCO" }, "netssl": { "description": [ "NetSSL support for POCO", "By default, this feature uses the OpenSSL implementation. The `POCO_ENABLE_NETSSL_WIN` triplet variable can be used to switch to the NetSSL_Win module." ], "dependencies": [ { "name": "poco", "default-features": false, "features": [ "crypto", "net", "util" ] } ] }, "odbc": { "description": "ODBC support for POCO", "supports": "windows | osx | linux", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "data" ] }, { "name": "unixodbc", "platform": "osx | linux" } ] }, "pagecompiler": { "description": "Command line tool that translates HTML files into C++ code", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "net", "util", "xml" ] } ] }, "pagecompiler-file2page": { "description": "Command line tool that translates HTML files into C++ code", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "net", "util", "xml" ] } ] }, "pdf": { "description": "Haru support for POCO", "dependencies": [ "libharu", { "name": "poco", "default-features": false, "features": [ "util", "xml" ] } ] }, "pocodoc": { "description": "POCO documentation generator", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "cpp-parser", "data", "sqlite", "util", "xml" ] } ] }, "postgresql": { "description": "PostgreSQL support for POCO", "dependencies": [ "libpqxx", { "name": "poco", "default-features": false, "features": [ "data" ] } ] }, "prometheus": { "description": "Prometheus support for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "net" ] } ] }, "redis": { "description": "Redis support for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "net" ] } ] }, "sevenzip": { "description": "Support for parsing and creating 7Zip files" }, "sqlite": { "description": "SQLite support for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "data" ] }, "sqlite3" ] }, "util": { "description": "Utility support library for POCO", "dependencies": [ { "name": "poco", "default-features": false, "features": [ "json", "xml" ] } ] }, "xml": { "description": "XML support for POCO", "dependencies": [ "expat" ] }, "zip": { "description": "Support for parsing and creating Zip files" } } } ================================================ FILE: ports/podofo/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0441083c..ff19fe8e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -246,6 +246,7 @@ if(JPEG_FOUND) string(APPEND PODOFO_PKGCONFIG_REQUIRES_PRIVATE " libjpeg") endif() list(APPEND PODOFO_LIB_DEPENDS ZLIB::ZLIB) +string(APPEND PODOFO_PKGCONFIG_REQUIRES_PRIVATE " libutf8proc") string(APPEND PODOFO_PKGCONFIG_REQUIRES_PRIVATE " zlib") list(APPEND PODOFO_LIB_DEPENDS ${PLATFORM_SYSTEM_LIBRARIES}) @@ -276,6 +277,25 @@ add_subdirectory(3rdparty) add_subdirectory(src/podofo) include_directories(${PODOFO_INCLUDE_DIRS}) +find_package(date CONFIG REQUIRED) +find_package(FastFloat CONFIG REQUIRED) +find_package(fmt CONFIG REQUIRED) +find_package(utf8cpp CONFIG REQUIRED) +find_package(utf8proc CONFIG REQUIRED) + +target_link_libraries(podofo_private PRIVATE + $ + $ + $ + $ + utf8proc::utf8proc +) +if(PODOFO_BUILD_STATIC) + target_link_libraries(podofo_static $) +else() + target_link_libraries(podofo_shared PRIVATE $) +endif() + if(PODOFO_BUILD_TEST) enable_testing() add_subdirectory(test) diff --git a/src/podofo/podofo-config.cmake.in b/src/podofo/podofo-config.cmake.in index 700619bb..3ab4afce 100644 --- a/src/podofo/podofo-config.cmake.in +++ b/src/podofo/podofo-config.cmake.in @@ -2,6 +2,7 @@ if("@PODOFO_BUILD_STATIC@") include(CMakeFindDependencyMacro) + find_dependency(utf8proc CONFIG) if("@Fontconfig_FOUND@") find_dependency(Fontconfig) endif() diff --git a/src/podofo/private/SASLprep.cpp b/src/podofo/private/SASLprep.cpp index a9c8a672..6899b9f0 100644 --- a/src/podofo/private/SASLprep.cpp +++ b/src/podofo/private/SASLprep.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include "SASLprepPrivate.h" diff --git a/src/podofo/private/charconv_compat.h b/src/podofo/private/charconv_compat.h index 1f72d9d9..b20c860b 100644 --- a/src/podofo/private/charconv_compat.h +++ b/src/podofo/private/charconv_compat.h @@ -15,7 +15,7 @@ #endif #if defined(WANT_CHARS_FORMAT) || defined(WANT_FROM_CHARS) -#include +#include #endif #ifdef WANT_TO_CHARS ================================================ FILE: ports/podofo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO podofo/podofo REF "${VERSION}" SHA512 ddc33e1265eac4650c1cd4f8c04dabae206bd8ca3eadefa310cd87066ce5e262ee1a5dbf395797e01cb4de05e390db2f1d54dffa26e8659b084a57fac97de03b PATCHES dependencies.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/3rdparty/date" "${SOURCE_PATH}/3rdparty/fast_float.h" "${SOURCE_PATH}/3rdparty/fmt" "${SOURCE_PATH}/3rdparty/utf8cpp" "${SOURCE_PATH}/3rdparty/utf8proc" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fontconfig VCPKG_LOCK_FIND_PACKAGE_Fontconfig ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PODOFO_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPKG_CONFIG_FOUND=true # enable pc file for shared linkage -DPODOFO_BUILD_LIB_ONLY=1 -DPODOFO_BUILD_STATIC=${PODOFO_BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/podofo) if(PODOFO_BUILD_STATIC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/podofo/auxiliary/basedefs.h" "#ifdef PODOFO_STATIC" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/podofo/usage ================================================ podofo provides CMake targets: find_package(podofo CONFIG REQUIRED) target_link_libraries(main PRIVATE podofo::podofo) podofo provides pkg-config modules: # A C++ library to work with the PDF file format libpodofo ================================================ FILE: ports/podofo/vcpkg.json ================================================ { "name": "podofo", "version": "1.0.3", "description": "PoDoFo is a library to work with the PDF file format", "homepage": "https://github.com/podofo/podofo", "license": "LGPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "date", "fast-float", "fmt", "freetype", "libjpeg-turbo", "libpng", { "name": "libxml2", "default-features": false }, "openssl", { "name": "tiff", "default-features": false }, "utf8proc", "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "fontmanager" ], "features": { "fontconfig": { "description": "Use Fontconfig", "dependencies": [ "fontconfig" ] }, "fontmanager": { "description": "Enable font manager", "dependencies": [ { "name": "podofo", "default-features": false, "features": [ "fontconfig" ], "platform": "!windows" } ] } } } ================================================ FILE: ports/poissonrecon/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(PoissonRecon LANGUAGES NONE) set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed") set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Path where headers will be installed") set(INSTALL_CMAKE_DIR "share/poissonrecon" CACHE PATH "Path where cmake configs will be installed") find_package(PNG REQUIRED) find_package(JPEG REQUIRED) set(PoissonRecon_HEADERS "Src/Allocator.h" "Src/Array.h" "Src/BinaryNode.h" "Src/BlockedVector.h" "Src/BSplineData.h" "Src/CmdLineParser.h" "Src/Factor.h" "Src/FEMTree.h" "Src/FunctionData.h" "Src/Geometry.h" "Src/Image.h" "Src/JPEG.h" "Src/LinearSolvers.h" "Src/MarchingCubes.h" "Src/MAT.h" "Src/MyMiscellany.h" "Src/Ply.h" "Src/PlyFile.h" "Src/PNG.h" "Src/Polynomial.h" "Src/PPolynomial.h" "Src/PreProcessor.h" "Src/RegularTree.h" "Src/SparseMatrix.h" "Src/SparseMatrixInterface.h" "Src/Window.h" ) set(PoissonRecon_INLINES "Src/Array.inl" "Src/BMPStream.inl" "Src/BSplineData.inl" "Src/CmdLineParser.inl" "Src/FEMTree.Evaluation.inl" "Src/FEMTree.Initialize.inl" "Src/FEMTree.inl" "Src/FEMTree.IsoSurface.specialized.inl" "Src/FEMTree.SortedTreeNodes.inl" "Src/FEMTree.System.inl" "Src/FEMTree.WeightedSamples.inl" "Src/FunctionData.inl" "Src/Geometry.inl" "Src/JPEG.inl" "Src/MAT.inl" "Src/PlyFile.inl" "Src/PNG.inl" "Src/Polynomial.inl" "Src/PPolynomial.inl" "Src/RegularTree.inl" "Src/SparseMatrix.inl" "Src/SparseMatrixInterface.inl" "Src/Window.inl" ) add_library(PoissonRecon INTERFACE) target_link_libraries(PoissonRecon INTERFACE PNG::PNG JPEG::JPEG) set_target_properties(PoissonRecon PROPERTIES PUBLIC_HEADER "${PoissonRecon_HEADERS};${PoissonRecon_INLINES}") target_include_directories(PoissonRecon INTERFACE $) install(TARGETS PoissonRecon EXPORT PoissonReconTargets RUNTIME DESTINATION "${INSTALL_BIN_DIR}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" ) install(EXPORT PoissonReconTargets NAMESPACE PoissonRecon:: DESTINATION ${INSTALL_CMAKE_DIR} ) ================================================ FILE: ports/poissonrecon/disable-gcc5-checks.patch ================================================ diff --git a/Src/FEMTree.WeightedSamples.inl b/Src/FEMTree.WeightedSamples.inl index 7b0d6b4..bb3ad0f 100644 --- a/Src/FEMTree.WeightedSamples.inl +++ b/Src/FEMTree.WeightedSamples.inl @@ -362,7 +362,7 @@ Real FEMTree< Dim , Real >::_splatPointData( Allocator< FEMTreeNode > *nodeAlloc // pow( width , -dim ): So that each sample is splatted with a unit volume V _v = v * weight / Real( pow( width , dim ) ) * dx; // V _v = v / Length(v) * dx; -#if defined( __GNUC__ ) && __GNUC__ < 5 +#if defined( __GNUC__ ) && __GNUC__ < 5 && 0 #ifdef SHOW_WARNINGS #warning "you've got me gcc version<5" #endif // SHOW_WARNINGS diff --git a/Src/FEMTree.h b/Src/FEMTree.h index 8f00045..2faa0f4 100644 --- a/Src/FEMTree.h +++ b/Src/FEMTree.h @@ -231,6 +231,7 @@ template< class Data , typename Pack > struct _SparseOrDenseNodeData{}; template< class Data , unsigned int ... FEMSigs > struct _SparseOrDenseNodeData< Data , UIntPack< FEMSigs ... > > { + virtual ~_SparseOrDenseNodeData() {} static const unsigned int Dim = sizeof ... ( FEMSigs ); typedef UIntPack< FEMSigs ... > FEMSignatures; typedef Data data_type; diff --git a/Src/FEMTree.inl b/Src/FEMTree.inl index 814f1ae..405e996 100644 --- a/Src/FEMTree.inl +++ b/Src/FEMTree.inl @@ -425,7 +425,7 @@ SparseNodeData< OutData , UIntPack< DataSigs ... > > FEMTree< Dim , Real >::setI AddAtomic( weightSum , sample.weight ); out *= sample.weight; Allocator< FEMTreeNode > *nodeAllocator = nodeAllocators.size() ? nodeAllocators[ thread ] : NULL; -#if defined( __GNUC__ ) && __GNUC__ < 5 +#if defined( __GNUC__ ) && __GNUC__ < 5 && 0 #ifdef SHOW_WARNINGS #warning "you've got me gcc version<5" #endif // SHOW_WARNINGS @@ -436,7 +436,7 @@ SparseNodeData< OutData , UIntPack< DataSigs ... > > FEMTree< Dim , Real >::setI else { Real width = (Real)( 1.0 / ( 1< -#include "JPEG/jpeglib.h" -#include "JPEG/jerror.h" -#include "JPEG/jmorecfg.h" -#else // !_WIN32 +#endif // _WIN32 #include #include #include -#endif // _WIN32 struct my_error_mgr { --- a/Src/PNG.h +++ b/Src/PNG.h @@ -1,7 +1,7 @@ #ifndef PNG_INCLUDED #define PNG_INCLUDED -#include "PNG/png.h" +#include struct PNGReader : public ImageReader { --- a/Src/PNG.inl +++ b/Src/PNG.inl @@ -1,10 +1,6 @@ #include #include -#ifdef _WIN32 -#include "PNG/png.h" -#else // !_WIN32 #include -#endif // _WIN32 inline PNGReader::PNGReader( const char* fileName , unsigned int& width , unsigned int& height , unsigned int& channels ) { ================================================ FILE: ports/poissonrecon/vcpkg.json ================================================ { "name": "poissonrecon", "version-date": "2021-09-26", "description": "Adaptive Multigrid Solvers", "homepage": "https://github.com/mkazhdan/PoissonRecon", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/polyclipping/FindCLIPPER.cmake ================================================ # Distributed under the OSI-approved BSD 3-Clause License. #.rst: # FindCLIPPER # -------- # # Result Variables # ^^^^^^^^^^^^^^^^ # # This module will set the following variables in your project:: # # ``CLIPPER_FOUND`` # True if CLIPPER found on the local system # # ``CLIPPER_INCLUDE_DIRS`` # Location of CLIPPER header files. # # ``CLIPPER_LIBRARIES`` # The clipper libraries. # include(FindPackageHandleStandardArgs) include(SelectLibraryConfigurations) if(NOT CLIPPER_INCLUDE_DIR) find_path(CLIPPER_INCLUDE_DIR clipper.hpp PATH_SUFFIXES polyclipping) endif() if(NOT CLIPPER_LIBRARY) find_library(CLIPPER_LIBRARY_RELEASE NAMES polyclipping PATHS "${CMAKE_CURRENT_LIST_DIR}/../../lib" NO_DEFAULT_PATH) find_library(CLIPPER_LIBRARY_DEBUG NAMES polyclipping PATHS "${CMAKE_CURRENT_LIST_DIR}/../../debug/lib" NO_DEFAULT_PATH) select_library_configurations(CLIPPER) endif() mark_as_advanced(CLIPPER_LIBRARY CLIPPER_INCLUDE_DIR) find_package_handle_standard_args(CLIPPER REQUIRED_VARS CLIPPER_LIBRARY CLIPPER_INCLUDE_DIR ) if(CLIPPER_FOUND) set(CLIPPER_LIBRARIES ${CLIPPER_LIBRARY}) set(CLIPPER_INCLUDE_DIRS ${CLIPPER_INCLUDE_DIR}) endif() ================================================ FILE: ports/polyclipping/fix_targets.patch ================================================ diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index f0ed7e8..a5ed444 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -19,3 +19,12 @@ INSTALL (TARGETS polyclipping LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") INSTALL (FILES "${PCFILE}" DESTINATION "${CMAKE_INSTALL_PKGCONFIGDIR}") SET_TARGET_PROPERTIES(polyclipping PROPERTIES VERSION 22.0.0 SOVERSION 22 ) + +install(TARGETS polyclipping EXPORT polyclippingConfig) + +install( + EXPORT polyclippingConfig + NAMESPACE polyclipping:: + DESTINATION share/polyclipping +) +target_include_directories(polyclipping PUBLIC $) ================================================ FILE: ports/polyclipping/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO polyclipping FILENAME "clipper_ver6.4.2.zip" NO_REMOVE_ONE_LEVEL SHA512 ffc88818c44a38aa278d5010db6cfd505796f39664919f1e48c7fa9267563f62135868993e88f7246dcd688241d1172878e4a008a390648acb99738452e3e5dd PATCHES fix_targets.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cpp" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindCLIPPER.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/clipper") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/clipper") file(INSTALL "${SOURCE_PATH}/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/polyclipping/vcpkg-cmake-wrapper.cmake ================================================ list(REMOVE_ITEM ARGS "NO_MODULE") list(REMOVE_ITEM ARGS "CONFIG") list(REMOVE_ITEM ARGS "MODULE") set(clipper_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${clipper_PREV_MODULE_PATH}) ================================================ FILE: ports/polyclipping/vcpkg.json ================================================ { "name": "polyclipping", "version": "6.4.2", "port-version": 13, "description": "The Clipper library performs clipping and offsetting for both lines and polygons. All four boolean clipping operations are supported - intersection, union, difference and exclusive-or. Polygons can be of any shape including self-intersecting polygons.", "homepage": "https://sourceforge.net/projects/polyclipping/", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/polyhook2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stevemk14ebr/PolyHook_2_0 REF 4c8872e207e76ea43fd23f802e3bf5acb43fee8a SHA512 f3baec4fc99e90221ce1b663c4fa10516a16c777135cca457e4b1de5e121c87b6a8eb5ac6392b75ee1c41e9e5a15a73171136fd3adfb3ff51ffaf0f909c58dd3 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES exception POLYHOOK_FEATURE_EXCEPTION detours POLYHOOK_FEATURE_DETOURS inlinentd POLYHOOK_FEATURE_INLINENTD pe POLYHOOK_FEATURE_PE virtuals POLYHOOK_FEATURE_VIRTUALS ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIB) if (VCPKG_CRT_LINKAGE STREQUAL "static") set(BUILD_STATIC_RUNTIME ON) else() set(BUILD_STATIC_RUNTIME OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPOLYHOOK_BUILD_SHARED_LIB=${BUILD_SHARED_LIB} -DPOLYHOOK_BUILD_STATIC_RUNTIME=${BUILD_STATIC_RUNTIME} -DPOLYHOOK_USE_EXTERNAL_ASMJIT=ON -DPOLYHOOK_USE_EXTERNAL_ASMTK=ON -DPOLYHOOK_USE_EXTERNAL_ZYDIS=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME PolyHook_2 CONFIG_PATH lib/PolyHook_2) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/polyhook2/vcpkg.json ================================================ { "name": "polyhook2", "version-date": "2025-06-21", "description": "C++17, x86/x64 Hooking Library v2.0", "homepage": "https://github.com/stevemk14ebr/PolyHook_2_0", "license": "MIT", "supports": "(x86 | x64) & !(uwp | osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zydis" ], "default-features": [ "detours", { "name": "exception", "platform": "windows" }, "inlinentd", { "name": "pe", "platform": "windows" }, "virtuals" ], "features": { "detours": { "description": "Implement detour functionality", "dependencies": [ "asmtk" ] }, "exception": { "description": "Implement all exception hooking functionality" }, "inlinentd": { "description": "Support inline hooks without specifying typedefs by generating callback stubs at runtime with AsmJit", "dependencies": [ "asmjit" ] }, "pe": { "description": "Implement all win pe hooking functionality" }, "virtuals": { "description": "Implement all virtual table hooking functionality" } } } ================================================ FILE: ports/polymorphic-value/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jbcoe/polymorphic_value REF 8b386a006c68c25c8f8c119c1f9620a916fb5afc #v1.3.0 SHA512 4b131b5d7c86d589418d85f25afcee70ceb48c11d2ea807ef0e97667ba273ee27659ebf95a2a7aefb6379e43bb8e5f3c25d7921cfa348ca53db4b56a5336933c HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/polymorphic_value) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/polymorphic-value/vcpkg.json ================================================ { "name": "polymorphic-value", "version": "1.3.0", "port-version": 3, "description": "A polymorphic value-type for C++", "homepage": "https://github.com/jbcoe/polymorphic_value", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ponder/github-121.patch ================================================ From 83b292f263b92082e981a82f5777d927a61772ee Mon Sep 17 00:00:00 2001 From: Cheney-Wang Date: Fri, 13 Mar 2020 02:50:33 -0700 Subject: [PATCH] Include in config.h --- include/ponder/config.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/ponder/config.hpp b/include/ponder/config.hpp index cd035c19..814403cd 100644 --- a/include/ponder/config.hpp +++ b/include/ponder/config.hpp @@ -60,6 +60,7 @@ #if defined(_MSC_VER) #pragma warning(disable: 4275) // non dll-interface class 'X' used as base for dll-interface class 'Y' #pragma warning(disable: 4251) // class 'X' needs to have dll-interface to be used by clients of class 'Y' + #include //In future MSVC, doesn't transitively , ponder will compile failed with error C2027 and C2065, so add for fixing these issues. #endif #if defined(__GNUC__) && __GNUC__ <= 4 && __GNUC_MINOR__ < 9 ================================================ FILE: ports/ponder/no-install-unused.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 091f56d..715f86e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -325,14 +325,14 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/PonderConfig.cmake ${CMAKE_CURRENT_BIN COMPONENT devel ) -install(FILES README.md COPYING.txt - DESTINATION ${INSTALL_MISC_DIR} -) - -install(DIRECTORY cmake - DESTINATION ${INSTALL_MISC_DIR} - COMPONENT utils -) +#install(FILES README.md COPYING.txt +# DESTINATION ${INSTALL_MISC_DIR} +#) + +#install(DIRECTORY cmake +# DESTINATION ${INSTALL_MISC_DIR} +# COMPONENT utils +#) ############################### # packaging ================================================ FILE: ports/ponder/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO billyquith/ponder REF 3.0.0 SHA512 b6ba1ce9fa0584b16085c56afb70e31f204a66b57193c1a4225bfe18abbda561bb71b3279dd0a4f1b21867b985ef5ce78c8e360f3fc654c61ce61c44d35c5f38 HEAD_REF master PATCHES no-install-unused.patch github-121.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DUSES_RAPIDJSON=OFF -DUSES_RAPIDXML=OFF -DBUILD_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/${PORT}/cmake) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/${PORT}" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${PORT}/config.hpp" "ifndef PONDER_STATIC" "if 0 //ifndef PONDER_STATIC") endif() # Handle copyright configure_file("${SOURCE_PATH}/COPYING.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/ponder/vcpkg.json ================================================ { "name": "ponder", "version": "3.0.0", "port-version": 5, "description": "A C++ multi-purpose reflection library.", "homepage": "https://github.com/billyquith/ponder", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/poolparty/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/poolparty REF "v${VERSION}" SHA512 ae542b2be6134cf58926e4ede8840bff560c427d45c07fadb7dc465112712df80a89569f5ebd4d57c6045cdd74380a65ed296f32c8904531327207aa7281c1b6 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH}) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/poolparty/vcpkg.json ================================================ { "name": "poolparty", "version": "3.0.1", "description": "A C++20 thread-pool library", "homepage": "https://github.com/Curve/poolparty", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/poolstl/fix-find-dependency.patch ================================================ diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in --- a/cmake/config.cmake.in +++ b/cmake/config.cmake.in @@ -1,7 +1,10 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(Threads) + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/poolstl/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alugowski/poolSTL REF "v${VERSION}" SHA512 a2d29056b29f32f034560f88e05f7257ff1f43b46579b940da3e340c97cf8bfbb7d886f5101044d5e22931af37bbcf72f956a0157e135cdf10c7a987e56ba081 HEAD_REF main PATCHES fix-find-dependency.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/poolSTL) vcpkg_install_copyright( COMMENT [[ poolSTL is triple-licensed under the BSD 2-Clause License, the Boost Software License 1.0, and the MIT license. You may select, at your option, one of the above-listed licenses. ]] FILE_LIST "${SOURCE_PATH}/LICENSE-BSD.txt" "${SOURCE_PATH}/LICENSE-Boost.txt" "${SOURCE_PATH}/LICENSE-MIT.txt" ) ================================================ FILE: ports/poolstl/vcpkg.json ================================================ { "name": "poolstl", "version": "0.3.5", "description": "Light and self-contained implementation of C++17 parallel algorithms.", "homepage": "https://github.com/alugowski/poolSTL", "license": "BSD-2-Clause OR BSL-1.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/poppler/cmake-project-include.cmake ================================================ # Create helper file for iconv usage requirement find_package(Iconv REQUIRED) set(poppler_iconv [[ Name: poppler-vcpkg-iconv Description: iconv linking requirements for poppler Version: 0 Libs:]]) string(TOLOWER "${Iconv_LIBRARIES}" iconv_libraries) if(iconv_libraries MATCHES "iconv") string(APPEND poppler_iconv " -liconv") endif() if(iconv_libraries MATCHES "charset") string(APPEND poppler_iconv " -lcharset") endif() file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/poppler-vcpkg-iconv.pc" "${poppler_iconv}") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/poppler-vcpkg-iconv.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ================================================ FILE: ports/poppler/export-unofficial-poppler.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 81f5ed6..9fb059e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -623,7 +623,12 @@ if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) endif() add_library(poppler ${poppler_SRCS} ${LINKER_SCRIPT}) -target_include_directories(poppler PUBLIC poppler ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/poppler) +target_include_directories(poppler PUBLIC + $ + $ + $ + $ + $) if (OpenJPEG_FOUND) # check if we can remove this when we depend on newer openjpeg versions, 2.5 seems fixed # target openjp2 may lack interface include directories @@ -663,9 +668,16 @@ if(MINGW AND BUILD_SHARED_LIBS) set_target_properties(poppler PROPERTIES SUFFIX "-${POPPLER_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS}) -install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS poppler EXPORT unofficial-poppler-targets + RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT unofficial-poppler-targets NAMESPACE unofficial::poppler:: DESTINATION share/unofficial-poppler) +set_target_properties(poppler PROPERTIES EXPORT_NAME poppler-private) if(ENABLE_UNSTABLE_API_ABI_HEADERS) + target_include_directories(poppler PUBLIC + $ + $ + ) set(poppler_poppler_installed_headers poppler/Annot.h poppler/AnnotStampImageHelper.h @@ -785,7 +797,7 @@ if(ENABLE_UNSTABLE_API_ABI_HEADERS) set(poppler_goo_installed_headers ${poppler_goo_installed_headers} goo/JpegWriter.h) endif() - if (${CMAKE_VERSION} VERSION_LESS "3.23.0") + if (1) install(FILES ${poppler_poppler_installed_headers} ${CMAKE_CURRENT_BINARY_DIR}/poppler/poppler-config.h diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index b38814c..303dbba 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -31,7 +31,9 @@ if(MINGW AND BUILD_SHARED_LIBS) set_target_properties(poppler-cpp PROPERTIES SUFFIX "-${POPPLER_CPP_SOVERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}") endif() target_link_libraries(poppler-cpp poppler Iconv::Iconv) -install(TARGETS poppler-cpp RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS poppler-cpp EXPORT unofficial-poppler-cpp-targets + RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT unofficial-poppler-cpp-targets NAMESPACE unofficial::poppler:: DESTINATION share/unofficial-poppler) set(poppler_cpp_all_install_headers poppler-destination.h @@ -50,7 +52,7 @@ set(poppler_cpp_all_install_headers ${CMAKE_CURRENT_BINARY_DIR}/poppler-version.h ) -if (${CMAKE_VERSION} VERSION_LESS "3.23.0") +if (1) install(FILES ${poppler_cpp_all_install_headers} DESTINATION include/poppler/cpp) else() target_sources(poppler-cpp diff --git a/qt6/src/CMakeLists.txt b/qt6/src/CMakeLists.txt index 1062058..848434c 100644 --- a/qt6/src/CMakeLists.txt +++ b/qt6/src/CMakeLists.txt @@ -47,7 +47,9 @@ if(USE_CMS) target_link_libraries(poppler-qt6 poppler ${LCMS2_LIBRARIES}) target_include_directories(poppler-qt6 SYSTEM PRIVATE ${LCMS2_INCLUDE_DIR}) endif() -install(TARGETS poppler-qt6 RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS poppler-qt6 EXPORT unofficial-poppler-qt6-targets + RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT unofficial-poppler-qt6-targets NAMESPACE unofficial::poppler:: DESTINATION share/unofficial-poppler) set(poppler_qt6_all_install_headers poppler-qt6.h @@ -61,7 +63,7 @@ set(poppler_qt6_all_install_headers ${CMAKE_CURRENT_BINARY_DIR}/poppler-export.h ${CMAKE_CURRENT_BINARY_DIR}/poppler-version.h ) -if (${CMAKE_VERSION} VERSION_LESS "3.23.0") +if (1) install(FILES ${poppler_qt6_all_install_headers} DESTINATION include/poppler/qt6) else() target_sources(poppler-qt6 ================================================ FILE: ports/poppler/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([0-9][.])" "\\1.0\\2" POPPLER_VERSION "${VERSION}") vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO poppler/poppler REF "poppler-${POPPLER_VERSION}" SHA512 24184d73503c77d614b20d8a2c2f8d77e40fd445ea2ceabdc5b77b5241ed45e053cc582af563284b1c9fd585bde3af5695cfe8fceff2efaf380499fb5f620f8c HEAD_REF master PATCHES export-unofficial-poppler.patch private-namespace.patch ) set(POPPLER_PC_REQUIRES "freetype2 libjpeg libopenjp2 libpng libtiff-4 poppler-vcpkg-iconv") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cairo WITH_Cairo cairo VCPKG_LOCK_FIND_PACKAGE_CAIRO cms ENABLE_LCMS cms VCPKG_LOCK_FIND_PACKAGE_LCMS2 curl ENABLE_LIBCURL curl VCPKG_LOCK_FIND_PACKAGE_CURL glib ENABLE_GLIB glib VCPKG_LOCK_FIND_PACKAGE_GLIB private-api ENABLE_UNSTABLE_API_ABI_HEADERS qt ENABLE_QT6 qt VCPKG_LOCK_FIND_PACKAGE_Qt6 zlib ENABLE_ZLIB_UNCOMPRESS ) if("fontconfig" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DFONT_CONFIGURATION=fontconfig") string(APPEND POPPLER_PC_REQUIRES " fontconfig") elseif(VCPKG_TARGET_IS_ANDROID) list(APPEND FEATURE_OPTIONS "-DFONT_CONFIGURATION=android") elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS "-DFONT_CONFIGURATION=win32") else() list(APPEND FEATURE_OPTIONS "-DFONT_CONFIGURATION=generic") endif() if("cairo" IN_LIST FEATURES) string(APPEND POPPLER_PC_REQUIRES " cairo") endif() if("curl" IN_LIST FEATURES) string(APPEND POPPLER_PC_REQUIRES " libcurl") endif() if("zlib" IN_LIST FEATURES) string(APPEND POPPLER_PC_REQUIRES " zlib") endif() if("cms" IN_LIST FEATURES) string(APPEND POPPLER_PC_REQUIRES " lcms2") endif() vcpkg_find_acquire_program(PKGCONFIG) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" "-DGLIB2_MKENUMS_PYTHON=${PYTHON3}" -DBUILD_GTK_TESTS=OFF -DBUILD_QT5_TESTS=OFF -DBUILD_QT6_TESTS=OFF -DBUILD_CPP_TESTS=OFF -DBUILD_MANUAL_TESTS=OFF -DENABLE_UTILS=OFF -DENABLE_GOBJECT_INTROSPECTION=OFF -DENABLE_QT5=OFF -DENABLE_RELOCATABLE=OFF # https://gitlab.freedesktop.org/poppler/poppler/-/issues/1209 -DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=ON -DCMAKE_REQUIRE_FIND_PACKAGE_OpenJPEG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_JPEG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_TIFF=ON -DCMAKE_REQUIRE_FIND_PACKAGE_PNG=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Boost=ON -DENABLE_NSS3=OFF -DENABLE_GPGME=OFF -DRUN_GPERF_IF_PRESENT=OFF -DVCPKG_LOCK_FIND_PACKAGE_ECM=OFF -DVCPKG_LOCK_FIND_PACKAGE_GTK=OFF ${FEATURE_OPTIONS} -DVCPKG_TRACE_FIND_PACKAGE=1 MAYBE_UNUSED_VARIABLES GLIB2_MKENUMS_PYTHON VCPKG_LOCK_FIND_PACKAGE_CURL VCPKG_LOCK_FIND_PACKAGE_GLIB VCPKG_LOCK_FIND_PACKAGE_LCMS2 VCPKG_LOCK_FIND_PACKAGE_CAIRO VCPKG_LOCK_FIND_PACKAGE_GTK VCPKG_LOCK_FIND_PACKAGE_Qt6 ) vcpkg_cmake_install() configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-poppler-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-poppler/unofficial-poppler-config.cmake" @ONLY) vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-poppler) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/poppler.pc" "Libs:" "Requires.private: ${POPPLER_PC_REQUIRES}\nLibs:") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/poppler.pc" "Libs:" "Requires.private: ${POPPLER_PC_REQUIRES}\nLibs:") endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/poppler/private-namespace.patch ================================================ diff --git a/poppler/Gfx.h b/poppler/Gfx.h index 81a620b..ecfb449 100644 --- a/poppler/Gfx.h +++ b/poppler/Gfx.h @@ -48,7 +48,10 @@ class PDFDoc; class XRef; class Array; class Stream; +namespace poppler_private { class Parser; +} +using namespace poppler_private; class Dict; class Function; class OutputDev; diff --git a/poppler/Parser.h b/poppler/Parser.h index b379b67..c3d85bd 100644 --- a/poppler/Parser.h +++ b/poppler/Parser.h @@ -33,6 +33,7 @@ // Parser //------------------------------------------------------------------------ +namespace poppler_private { class POPPLER_PRIVATE_EXPORT Parser { public: @@ -72,5 +73,7 @@ private: void shift(int objNum = -1); void shift(const char *cmdA, int objNum); }; +} +using namespace poppler_private; #endif diff --git a/poppler/XRef.h b/poppler/XRef.h index e2b2ca8..7d6acbb 100644 --- a/poppler/XRef.h +++ b/poppler/XRef.h @@ -46,7 +46,10 @@ class Dict; class Stream; +namespace poppler_private { class Parser; +} +using namespace poppler_private; class ObjectStream; //------------------------------------------------------------------------ ================================================ FILE: ports/poppler/unofficial-poppler-config.cmake ================================================ include(CMakeFindDependencyMacro) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) set(features "@FEATURES@") find_dependency(Boost) if("fontconfig" IN_LIST features) find_dependency(Fontconfig) # CMake 3.14 endif() find_dependency(Freetype) find_dependency(JPEG) find_dependency(PNG) find_dependency(TIFF) find_dependency(OpenJPEG CONFIG) if("curl" IN_LIST features) find_dependency(CURL) endif() if("zlib" IN_LIST features) find_dependency(ZLIB) endif() if("qt" IN_LIST features) find_dependency(Qt6 CONFIG Core GUI) endif() find_dependency(Iconv) # CMake 3.11 include("${CMAKE_CURRENT_LIST_DIR}/unofficial-poppler-targets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/unofficial-poppler-cpp-targets.cmake") if("qt" IN_LIST features) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-poppler-qt6-targets.cmake") endif() ================================================ FILE: ports/poppler/usage ================================================ The package poppler can be imported via CMake FindPkgConfig module: find_package(PkgConfig) pkg_check_modules(POPPLER_CPP REQUIRED IMPORTED_TARGET poppler-cpp) target_link_libraries(main PRIVATE PkgConfig::POPPLER_CPP) ================================================ FILE: ports/poppler/vcpkg.json ================================================ { "name": "poppler", "version": "25.7.0", "description": "A PDF rendering library", "homepage": "https://poppler.freedesktop.org/", "license": "GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "boost-container", "freetype", "libiconv", "libjpeg-turbo", "libpng", "openjpeg", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "font-configuration", "zlib" ], "features": { "cairo": { "description": "Enable the Cairo graphics backend", "dependencies": [ { "name": "cairo", "default-features": false } ] }, "cms": { "description": "Enable use of LCMS2 as color management system", "dependencies": [ "lcms" ] }, "curl": { "description": "curl for poppler", "dependencies": [ { "name": "curl", "default-features": false } ] }, "font-configuration": { "description": "Defaut font configuration backend", "dependencies": [ { "name": "poppler", "default-features": false, "features": [ "fontconfig" ], "platform": "!windows & !android" } ] }, "fontconfig": { "description": "Use fontconfig", "supports": "!windows, mingw", "dependencies": [ "fontconfig" ] }, "glib": { "description": "glib for poppler", "dependencies": [ { "name": "glib", "default-features": false }, { "name": "poppler", "default-features": false, "features": [ "cairo" ] } ] }, "private-api": { "description": "Install headers for private API (aka unstable API/ABI headers)" }, "qt": { "description": "Enable the Qt API", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "zlib": { "description": "Use zlib to uncompress flate streams (not totally safe)." } } } ================================================ FILE: ports/poppler-data/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) # only data string(REPLACE "." "_" poppler_data_version "POPPLER_DATA_${VERSION}") vcpkg_from_gitlab( GITLAB_URL gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO poppler/poppler-data REF "${poppler_data_version}" SHA512 1d2cb04604a1a3d33edc45638d1a6ddacbcf99eeeed8bca7462cbd5d244edbebe94cd1f2487189060b0927287a8571fcc29ee3b3cd7fb4dc1c4d8f819d035a0a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING.adobe" "${SOURCE_PATH}/COPYING.gpl2" "${SOURCE_PATH}/COPYING.gpl3" ) ================================================ FILE: ports/poppler-data/vcpkg.json ================================================ { "name": "poppler-data", "version": "0.4.12", "port-version": 1, "description": "This package consists of encoding files for use with poppler.", "homepage": "https://poppler.freedesktop.org", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/popsift/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alicevision/popsift REF v${VERSION} SHA512 374a00542ff46ac8a8cf31b7a62c834e4e148c5f9ddd5f6a128e4284e637242c0ce55bf3ee6524e6555c8402332ec8863ca921cef36c0bacd9a1ada6c8e09b55 HEAD_REF develop ) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT) # This is necessary as popsift uses cuda as first class language in CMake and # depending on the version of CMake it might fail to find nvcc compiler. if(CMAKE_HOST_WIN32) set(NVCC_PATH ${CUDA_TOOLKIT_ROOT}/bin/nvcc.exe) else() set(NVCC_PATH ${CUDA_TOOLKIT_ROOT}/bin/nvcc) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES apps PopSift_BUILD_EXAMPLES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DCMAKE_CUDA_COMPILER=${NVCC_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PopSift) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # copy the apps in tools directory if ("apps" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES popsift-demo AUTO_CLEAN) endif() file(INSTALL "${SOURCE_PATH}/COPYING.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/popsift/vcpkg.json ================================================ { "name": "popsift", "version": "0.10.0", "description": "PopSift is an implementation of the SIFT algorithm in CUDA.", "homepage": "https://github.com/alicevision/popsift", "documentation": "https://popsift.readthedocs.io/", "license": "MPL-2.0", "supports": "!(uwp | arm | arm64 | android | x86)", "dependencies": [ "cuda", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "apps": { "description": "Application programs for popsift (detection and matching)", "dependencies": [ "boost-algorithm", "boost-filesystem", "boost-program-options", "boost-system" ] } } } ================================================ FILE: ports/portable-file-dialogs/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO samhocevar/portable-file-dialogs REF "${VERSION}" SHA512 8f3f59534024357b1d4b9054f20f482bfb159c1666be1695220c1be8f028be6adac0d9d82aad7230922a5eea5971c051a8699e60bc99207813776f35ce6937b6 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/portable-file-dialogs.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/portable-file-dialogs/vcpkg.json ================================================ { "name": "portable-file-dialogs", "version": "0.1.0", "description": "Portable GUI dialogs library", "homepage": "https://github.com/samhocevar/portable-file-dialogs", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/portable-snippets/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(portable-snippets LANGUAGES C) include(GNUInstallDirs) option(PSNIP_INSTALL_HEADERS "Install header files" ON) # https://stackoverflow.com/questions/7787823/cmake-how-to-get-the-name-of-all-subdirectories-of-a-directory function (list_subdir output_variable path) file(GLOB sub_entries RELATIVE ${path} ${path}/*) set(dirlist "") foreach (entry ${sub_entries}) if (IS_DIRECTORY ${path}/${entry}) list(APPEND dirlist ${entry}) endif () endforeach () set(${output_variable} ${dirlist} PARENT_SCOPE) endfunction () function (check_if_header_only output_variable files) set(is_header_only 1) foreach (entry ${files}) get_filename_component(file_ext ${entry} EXT) if (file_ext STREQUAL .c) set(is_header_only 0) endif () endforeach () set(${output_variable} ${is_header_only} PARENT_SCOPE) endfunction () list_subdir(subdirs ${CMAKE_CURRENT_LIST_DIR}) list(REMOVE_ITEM subdirs tests) set(namespace unofficial::portable-snippets) foreach (subdir ${subdirs}) set(module ${subdir}) set(module_path "${CMAKE_CURRENT_LIST_DIR}/${subdir}") file(GLOB entries LIST_DIRECTORIES false ${module_path}/*.h ${module_path}/*.c ) check_if_header_only(header_only "${entries}") if (header_only) add_library(${module} INTERFACE) target_include_directories( ${module} INTERFACE $ ) else () add_library(${module} STATIC ${entries}) if (MSVC) target_compile_definitions(${module} PUBLIC __STDC_NO_THREADS__=1) endif () set_target_properties( ${module} PROPERTIES PREFIX "" OUTPUT_NAME "psnip-${module}" ) target_include_directories( ${module} PUBLIC $ $ ) list(FILTER entries EXCLUDE REGEX "\.c$") endif () add_library(${namespace}::${module} ALIAS ${module}) if (PSNIP_INSTALL_HEADERS) install(FILES ${entries} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${subdir}) endif () install(TARGETS ${module} EXPORT unofficial-portable-snippets-config) endforeach () install( EXPORT unofficial-portable-snippets-config NAMESPACE ${namespace}:: DESTINATION share/unofficial-portable-snippets PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/portable-snippets/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nemequ/portable-snippets REF 26496acb37ab46ee249ea19d45381da6955d89c4 SHA512 6213b22e4358b06f92396731d94fd27d4cf3568a47c56c057174c1839929c6a569ad5b1e1302fe0d092c4f393c570607b96e9e977223f86a9e3c2862010f3af0 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DPSNIP_INSTALL_HEADERS=OFF OPTIONS_RELEASE -DPSNIP_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) # Handle copyright configure_file("${SOURCE_PATH}/COPYING.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/portable-snippets/vcpkg.json ================================================ { "name": "portable-snippets", "version-date": "2019-09-20", "port-version": 4, "description": "Collection of miscellaneous portable C snippets", "homepage": "https://github.com/nemequ/portable-snippets", "license": null, "supports": "!(arm & osx)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/portaudio/fix-guid-linker-errors.patch ================================================ From bf5d562f6e35d2aa2d264e92f90666484212a88e Mon Sep 17 00:00:00 2001 From: invertego Date: Mon, 2 Oct 2023 16:44:48 -0700 Subject: [PATCH 1/2] wdmks: declare GUIDs with selectany attribute Match the behavior of guiddef.h in both mingw and the Windows SDK headers. This prevents linking errors caused by multiply defined symbols when linking against certain Windows SDK libs (like dxguid.lib). --- src/hostapi/wdmks/pa_win_wdmks.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hostapi/wdmks/pa_win_wdmks.c b/src/hostapi/wdmks/pa_win_wdmks.c index bafc970d3..5d2a98743 100644 --- a/src/hostapi/wdmks/pa_win_wdmks.c +++ b/src/hostapi/wdmks/pa_win_wdmks.c @@ -165,11 +165,11 @@ Default is to use the pin category. #define _NTRTL_ /* Turn off default definition of DEFINE_GUIDEX */ #undef DEFINE_GUID #if defined(__clang__) || (defined(_MSVC_TRADITIONAL) && !_MSVC_TRADITIONAL) /* clang-cl and new msvc preprocessor: avoid too many arguments error */ - #define DEFINE_GUID(n, ...) EXTERN_C const GUID n = {__VA_ARGS__} + #define DEFINE_GUID(n, ...) EXTERN_C const GUID DECLSPEC_SELECTANY n = {__VA_ARGS__} #define DEFINE_GUID_THUNK(n, ...) DEFINE_GUID(n, __VA_ARGS__) #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK(n, STATIC_##n) #else - #define DEFINE_GUID(n, data) EXTERN_C const GUID n = {data} + #define DEFINE_GUID(n, data) EXTERN_C const GUID DECLSPEC_SELECTANY n = {data} #define DEFINE_GUID_THUNK(n, data) DEFINE_GUID(n, data) #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK(n, STATIC_##n) #endif /* __clang__, !_MSVC_TRADITIONAL */ From 63c6e189cafd6f184797776077a141809ef8cf0e Mon Sep 17 00:00:00 2001 From: Ross Bencina Date: Sat, 7 Oct 2023 09:49:19 +1100 Subject: [PATCH 2/2] Make sure this works even if DECLSPEC_SELECTANY is not defined --- src/hostapi/wdmks/pa_win_wdmks.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hostapi/wdmks/pa_win_wdmks.c b/src/hostapi/wdmks/pa_win_wdmks.c index 5d2a98743..36cb396a8 100644 --- a/src/hostapi/wdmks/pa_win_wdmks.c +++ b/src/hostapi/wdmks/pa_win_wdmks.c @@ -164,12 +164,17 @@ Default is to use the pin category. #define DYNAMIC_GUID(data) {data} #define _NTRTL_ /* Turn off default definition of DEFINE_GUIDEX */ #undef DEFINE_GUID +#ifdef DECLSPEC_SELECTANY +#define PA_DECLSPEC_SELECTANY DECLSPEC_SELECTANY +#else +#define PA_DECLSPEC_SELECTANY +#endif #if defined(__clang__) || (defined(_MSVC_TRADITIONAL) && !_MSVC_TRADITIONAL) /* clang-cl and new msvc preprocessor: avoid too many arguments error */ - #define DEFINE_GUID(n, ...) EXTERN_C const GUID DECLSPEC_SELECTANY n = {__VA_ARGS__} + #define DEFINE_GUID(n, ...) EXTERN_C const GUID PA_DECLSPEC_SELECTANY n = {__VA_ARGS__} #define DEFINE_GUID_THUNK(n, ...) DEFINE_GUID(n, __VA_ARGS__) #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK(n, STATIC_##n) #else - #define DEFINE_GUID(n, data) EXTERN_C const GUID DECLSPEC_SELECTANY n = {data} + #define DEFINE_GUID(n, data) EXTERN_C const GUID PA_DECLSPEC_SELECTANY n = {data} #define DEFINE_GUID_THUNK(n, data) DEFINE_GUID(n, data) #define DEFINE_GUIDEX(n) DEFINE_GUID_THUNK(n, STATIC_##n) #endif /* __clang__, !_MSVC_TRADITIONAL */ ================================================ FILE: ports/portaudio/jack.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 122fe93..8983f85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -288,7 +288,8 @@ ELSE() SET(PA_SOURCES ${PA_SOURCES} ${PA_JACK_SOURCES}) SET(PA_PRIVATE_COMPILE_DEFINITIONS ${PA_PRIVATE_COMPILE_DEFINITIONS} PA_USE_JACK) SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${JACK_LIBRARIES}) - SET(PA_PKGCONFIG_LDFLAGS "${PA_PKGCONFIG_LDFLAGS} -ljack") + SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${CMAKE_DL_LIBS}) + SET(PA_PKGCONFIG_REQUIRES_PRIVATE "${PA_PKGCONFIG_REQUIRES_PRIVATE} jack") ENDIF() FIND_PACKAGE(ALSA) diff --git a/cmake_support/portaudio-2.0.pc.in b/cmake_support/portaudio-2.0.pc.in index 738803d..24b211c 100644 --- a/cmake_support/portaudio-2.0.pc.in +++ b/cmake_support/portaudio-2.0.pc.in @@ -6,6 +6,7 @@ includedir=${prefix}/include Name: PortAudio Description: Portable audio I/O Requires: +Requires.private: @PA_PKGCONFIG_REQUIRES_PRIVATE@ Version: @PA_PKGCONFIG_VERSION@ Libs: -L${libdir} -lportaudio @PA_PKGCONFIG_LDFLAGS@ ================================================ FILE: ports/portaudio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PortAudio/portaudio REF 147dd722548358763a8b649b3e4b41dfffbcfbb6 SHA512 0f56e5f5b004f51915f29771b8fc1fe886f1fef5d65ab5ea1db43f43c49917476b9eec14b36aa54d3e9fb4d8bdf61e68c79624d00b7e548d4c493395a758233a PATCHES jack.diff fix-guid-linker-errors.patch use-vcpkg-asiosdk.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" PA_DLL_LINK_WITH_STATIC_RUNTIME) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PA_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" PA_BUILD_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES asio PA_USE_ASIO ) vcpkg_list(SET options) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND options -DPA_DLL_LINK_WITH_STATIC_RUNTIME=${PA_DLL_LINK_WITH_STATIC_RUNTIME} -DPA_LIBNAME_ADD_SUFFIX=OFF ) elseif(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) vcpkg_list(APPEND options # avoid absolute paths -DCOREAUDIO_LIBRARY:STRING=-Wl,-framework,CoreAudio -DAUDIOTOOLBOX_LIBRARY:STRING=-Wl,-framework,AudioToolbox -DAUDIOUNIT_LIBRARY:STRING=-Wl,-framework,AudioUnit -DCOREFOUNDATION_LIBRARY:STRING=-Wl,-framework,CoreFoundation -DCORESERVICES_LIBRARY:STRING=-Wl,-framework,CoreServices ) else() vcpkg_list(APPEND options -DPA_USE_JACK=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Jack=ON -DPA_USE_ALSA=OFF ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DPA_BUILD_SHARED=${PA_BUILD_SHARED} -DPA_BUILD_STATIC=${PA_BUILD_STATIC} -DPA_USE_ASIO=${PA_USE_ASIO} OPTIONS_DEBUG -DPA_ENABLE_DEBUG_OUTPUT:BOOL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/portaudio/use-vcpkg-asiosdk.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 122fe93..b66ebe4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,26 +144,21 @@ IF(WIN32) SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} winmm) - # Try to find ASIO SDK (assumes that portaudio and asiosdk folders are side-by-side, see - # http://www.portaudio.com/trac/wiki/TutorialDir/Compile/WindowsASIOMSVC) - FIND_PACKAGE(ASIOSDK) - IF(ASIOSDK_FOUND) - OPTION(PA_USE_ASIO "Enable support for ASIO" ON) - ELSE() - OPTION(PA_USE_ASIO "Enable support for ASIO" OFF) - ENDIF() + OPTION(PA_USE_ASIO "Enable support for ASIO" OFF) IF(PA_USE_ASIO) - SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/common) - SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host) - SET(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${ASIOSDK_ROOT_DIR}/host/pc) + find_package(unofficial-asiosdk CONFIG REQUIRED) + get_target_property(PA_ASIOSDK_SOURCES unofficial::asiosdk::host INTERFACE_SOURCES) + get_target_property(PA_ASIOSDK_PRIVATE_INCLUDE_PATHS unofficial::asiosdk::host INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(PA_ASIOSDK_LINK_LIBRARIES unofficial::asiosdk::host INTERFACE_LINK_LIBRARIES) + SET(PA_ASIO_SOURCES src/hostapi/asio/pa_asio.cpp src/hostapi/asio/iasiothiscallresolver.cpp) - SET(PA_ASIOSDK_SOURCES ${ASIOSDK_ROOT_DIR}/common/asio.cpp ${ASIOSDK_ROOT_DIR}/host/pc/asiolist.cpp ${ASIOSDK_ROOT_DIR}/host/asiodrivers.cpp) + set(PA_PRIVATE_INCLUDE_PATHS ${PA_PRIVATE_INCLUDE_PATHS} ${PA_ASIOSDK_PRIVATE_INCLUDE_PATHS}) SOURCE_GROUP("hostapi\\ASIO" FILES ${PA_ASIO_SOURCES}) SOURCE_GROUP("hostapi\\ASIO\\ASIOSDK" FILES ${PA_ASIOSDK_SOURCES}) SET(PA_PUBLIC_INCLUDES ${PA_PUBLIC_INCLUDES} include/pa_asio.h) SET(PA_SOURCES ${PA_SOURCES} ${PA_ASIO_SOURCES}) SET(PA_NON_UNICODE_SOURCES ${PA_NON_UNICODE_SOURCES} ${PA_ASIOSDK_SOURCES}) - SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ole32 uuid) + SET(PA_LIBRARY_DEPENDENCIES ${PA_LIBRARY_DEPENDENCIES} ${PA_ASIOSDK_LINK_LIBRARIES}) ELSE() # Set variables for DEF file expansion SET(DEF_EXCLUDE_ASIO_SYMBOLS ";") ================================================ FILE: ports/portaudio/vcpkg.json ================================================ { "name": "portaudio", "version": "19.7", "port-version": 9, "description": "PortAudio Portable Cross-platform Audio I/O API PortAudio is a free, cross-platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' or C++ that will compile and run on many platforms including Windows, Macintosh OS X, and Unix (OSS/ALSA). It is intended to promote the exchange of audio software between developers on different platforms. Many applications use PortAudio for Audio I/O.", "homepage": "https://www.portaudio.com", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "jack2", "platform": "!ios & !osx & !windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "asio": { "description": "Enable support for Steinberg Audio Stream Input/Output (ASIO)", "dependencies": [ "asiosdk" ] } } } ================================================ FILE: ports/portmidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PortMidi/portmidi REF "v${VERSION}" SHA512 d66e9587324da729f3f97037decc8dbd436f86aa346969e4f9189f74a8f60451a92db4c5a5f551064cf794e872c174ebe731bcb2aaf6554f00dacc5b3b8209be HEAD_REF master ) if(VCPKG_CRT_LINKAGE STREQUAL static) set(PM_USE_STATIC_RUNTIME ON) else() set(PM_USE_STATIC_RUNTIME OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPM_USE_STATIC_RUNTIME="${PM_USE_STATIC_RUNTIME}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PortMidi) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/portmidi/usage ================================================ portmidi provides CMake targets: find_package(PortMidi CONFIG REQUIRED) target_link_libraries(main PRIVATE PortMidi::portmidi) ================================================ FILE: ports/portmidi/vcpkg.json ================================================ { "name": "portmidi", "version": "2.0.8", "description": "PortMidi is a cross platform (Windows, macOS, Linux, and BSDs which support alsalib) library for interfacing with operating systems' MIDI I/O APIs.", "homepage": "https://github.com/PortMidi/portmidi", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "alsa", "platform": "linux | android | freebsd | openbsd" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/portsmf/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://codeberg.org/tenacityteam/portsmf/archive/${VERSION}.tar.gz" FILENAME "${VERSION}.tar.gz" SHA512 522ef6e92de6497c66d6b9adf2b6b4e419024d26fac421096718b024ea0e183d322d3f0cd9fc357e0ba983371cf313d7a0b93b8b24aff5c9cb1ab61c915725ff ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PortSMF) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/portsmf/vcpkg.json ================================================ { "name": "portsmf", "version": "239", "description": "Portsmf is 'Port Standard MIDI File', a cross-platform, C++ library for reading and writing Standard MIDI Files.", "homepage": "https://codeberg.org/tenacityteam/portsmf", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/poselib/fatal-errors.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 77df6c1..2391b20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ if(MSVC) target_compile_options(${build_target} PRIVATE /bigobj /fp:fast) else() target_compile_options(${build_target} PRIVATE - -O3 -Wall -Werror -fPIC -Wno-sign-compare -Wfatal-errors) + -O3 -Wall -fPIC -Wno-sign-compare) if(MARCH_NATIVE) target_compile_options(${build_target} PRIVATE -march=native) endif() ================================================ FILE: ports/poselib/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PoseLib/PoseLib REF "v${VERSION}" SHA512 ed56d8cd6a3073776edbfe9d11e2ebf8e2bed4065f7f53a02541323c1631632bf6c161d305fc09674175351b024bf019211dfa9d7a48e74e3c5563941099f1ef HEAD_REF master PATCHES fatal-errors.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DMARCH_NATIVE=OFF -DWITH_BENCHMARK=OFF -DPYTHON_PACKAGE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/PoseLib) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/poselib/vcpkg.json ================================================ { "name": "poselib", "version": "2.0.5", "description": "Minimal solvers for calibrated camera pose estimation", "homepage": "https://github.com/PoseLib/PoseLib", "license": "BSD-3-Clause", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ppconsul/cmake_build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f82410c..01dd9bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ project(Ppconsul VERSION ${VERSION}) include(./conan_paths.cmake OPTIONAL) -if (WIN32) +if (NOT BUILD_SHARED_LIBS) option(BUILD_STATIC_LIB "Build Ppconsul as static library" ON) else() option(BUILD_STATIC_LIB "Build Ppconsul as static library" OFF) @@ -64,7 +64,13 @@ endif() if (NOT ${USE_BOOST_REGEX}) - find_package(Boost ${BOOST_MIN_VERSION} REQUIRED) + find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS + fusion + mpl + optional + preprocessor + variant + ) else () find_package(Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS regex) add_definitions(-DPPCONSUL_USE_BOOST_REGEX) @@ -82,8 +88,8 @@ if (NOT ${CURL_ROOT} STREQUAL "") endif () find_package(CURL REQUIRED) -set(LIBB64_DIR "${PROJECT_SOURCE_DIR}/ext/b64") -set(LIBB64_SOURCES "${LIBB64_DIR}/cdecode.h" "${LIBB64_DIR}/cdecode.c" "${LIBB64_DIR}/cencode.h" "${LIBB64_DIR}/cencode.c") +find_package(unofficial-b64 CONFIG REQUIRED) +set(LIBB64_SOURCES "") set(CATCH_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/ext/catch") set(HEADERS_DIR "${PROJECT_SOURCE_DIR}/include/ppconsul") @@ -92,7 +98,7 @@ if (WIN32 AND NOT BUILD_STATIC_LIB) message(FATAL_ERROR "Building Ppconsul as dynamic library on Windows is not supported, see https://github.com/oliora/ppconsul/issues/25") endif() -add_subdirectory(ext/json11) +find_package(json11 CONFIG REQUIRED) add_subdirectory(src) option(BUILD_TESTS "Flag to use to build test or not" ON) diff --git a/ppconsul.pc.in b/ppconsul.pc.in index 199395a..abeb1dc 100644 --- a/ppconsul.pc.in +++ b/ppconsul.pc.in @@ -6,5 +6,7 @@ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ Name: ppconsul Description: C++ client for the Consul HTTP API Version: @Ppconsul_VERSION@ +Requires.private: libcurl Libs: -L${libdir} @ppconsul_libs@ +Libs.prvate: -lb64 Cflags: -I${includedir} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1318433..8400172 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -66,18 +66,22 @@ target_compile_features(${PROJECT_NAME} PUBLIC cxx_auto_type cxx_decltype cxx_st target_include_directories(${PROJECT_NAME} PUBLIC $ - $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} - ${Boost_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/../ext ) +target_include_directories(${PROJECT_NAME} PRIVATE ${JSON11_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} PRIVATE - json11 - ${Boost_LIBRARIES} + unofficial::b64::b64 + ${JSON11_LIBRARIES} + PUBLIC + Boost::fusion + Boost::mpl + Boost::optional + Boost::preprocessor + Boost::variant ) target_include_directories(${PROJECT_NAME} PRIVATE ${CURL_INCLUDE_DIR}) diff --git a/src/s11n.h b/src/s11n.h index 33fa151..c4f9a84 100644 --- a/src/s11n.h +++ b/src/s11n.h @@ -6,7 +6,7 @@ #include "ppconsul/config.h" #include "ppconsul/error.h" -#include +#include #include #include #include ================================================ FILE: ports/ppconsul/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oliora/ppconsul REF 1a889ce54cc10be4186daa48ccf7003588ceaade SHA512 e583eee7f0f88a2d1c1daa4b5e8b6e66c46d6abaea2fdb558b5931241ff85bf327f758f38a524e0af1a023b09a4a503da50cd4e25af791b36a376048cd0d1ca1 HEAD_REF master PATCHES cmake_build.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/ext/b64") file(REMOVE_RECURSE "${SOURCE_PATH}/ext/catch") file(REMOVE_RECURSE "${SOURCE_PATH}/ext/json11") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) vcpkg_fixup_pkgconfig() file(READ "${CURRENT_PACKAGES_DIR}/share/ppconsul/ppconsulConfig.cmake" cmake-config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/ppconsul/ppconsulConfig.cmake" "include(CMakeFindDependencyMacro) find_dependency(Boost COMPONENTS fusion mpl optional preprocessor variant ) find_dependency(CURL) find_dependency(unofficial-b64 CONFIG) ${cmake-config}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/ppconsul/vcpkg.json ================================================ { "name": "ppconsul", "version-date": "2022-02-15", "description": "A C++ client library for Consul. Consul is a distributed tool for discovering and configuring services in your infrastructure.", "homepage": "https://github.com/oliora/ppconsul", "dependencies": [ "b64", "boost-fusion", "boost-mpl", "boost-optional", "boost-preprocessor", "boost-variant", { "name": "curl", "default-features": false }, "json11", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ppqsort/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GabTux/PPQSort REF "v${VERSION}" SHA512 df1fe69dab0e3218c27227b510b0727dcd28a7f5bbdb90cdc906dc2c7d4176cc4b908300ee4353dfaa1809dddeff255a47a99b56128a21ff0b9b5633dd88a66f HEAD_REF master PATCHES remove-cpm.patch ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.11.1" SHA512 cffd7b203c54f325b4604b909678425e0f63bed3f9d4fb5478b1eb885b532e682d3972595d0909ea2feb1aadd73736bd282931fa62fa47af27affb6b3f17a304 HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp PPQSORT_USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/PPQSort-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ppqsort/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ef7ff7a..d219662 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,10 +22,8 @@ endif() # ---- Add dependencies via CPM ---- # see https://github.com/TheLartians/CPM.cmake for more info -include(cmake/CPM.cmake) - # PackageProject.cmake will be used to make our target installable -CPMAddPackage("gh:TheLartians/PackageProject.cmake@1.11.1") +add_subdirectory(cmake/packageproject.cmake) # ---- Add source files ---- ================================================ FILE: ports/ppqsort/vcpkg.json ================================================ { "name": "ppqsort", "version": "1.0.6", "description": "a efficient implementation of parallel quicksort algorithm", "homepage": "https://gabtux.github.io/PPQSort/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Build with openmp, otherwise use native threads" } } } ================================================ FILE: ports/pprint/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/pprint REF 2fb81cd4af62c019ea28ea1707164fc3637bc656 SHA512 51bdf0e06666511fb475b46ff2d512e5d04b231f63c274c021f56b194501885a0302af95cc90977b0a3b39b555d1076926f618d0a6751926acb5f8b2a968bc0a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPPRINT_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/pprint/vcpkg.json ================================================ { "name": "pprint", "version-date": "2019-07-19", "port-version": 3, "description": "Pretty Printer for Modern C++", "homepage": "https://github.com/p-ranav/pprint", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pqp/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(pqp) set(CMAKE_CXX_STANDARD 11) set(SOURCE_CUSTOM_DIR "PQP_v1.3") include_directories(${SOURCE_CUSTOM_DIR}/src) file(GLOB SRCS "${SOURCE_CUSTOM_DIR}/src/*.cpp") file(GLOB HDRS "${SOURCE_CUSTOM_DIR}/src/*.h") add_library(pqp STATIC ${SRCS}) install(TARGETS pqp EXPORT pqpConfig RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) foreach (file ${HDRS}) get_filename_component(dir ${file} DIRECTORY) install(FILES ${file} DESTINATION include/ CONFIGURATIONS Release) endforeach() ================================================ FILE: ports/pqp/LICENSE ================================================ Copyright 1999 University of North Carolina at Chapel Hill. All rights reserved. Permission to use, copy, modify, and distribute this software and its documentation for educational, research, and non-profit purposes, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and the following three paragraphs appear in all copies. IN NO EVENT SHALL THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. The authors may be contacted via: US Mail: Eric Larsen, Stefan Gottschalk Department of Computer Science Sitterson Hall, CB #3175 University of North Carolina Chapel Hill, NC 27599-3175 Phone: (919) 962-1749 Email: geom@cs.unc.edu ================================================ FILE: ports/pqp/fix-math-functions.patch ================================================ --- a/PQP_v1.3/src/PQP_Compile.h +++ b/PQP_v1.3/src/PQP_Compile.h @@ -44,10 +44,10 @@ // prevents compiler warnings when PQP_REAL is float #include -inline float sqrt(float x) { return (float)sqrt((double)x); } -inline float cos(float x) { return (float)cos((double)x); } -inline float sin(float x) { return (float)sin((double)x); } -inline float fabs(float x) { return (float)fabs((double)x); } +//inline float sqrt(float x) { return (float)sqrt((double)x); } +//inline float cos(float x) { return (float)cos((double)x); } +//inline float sin(float x) { return (float)sin((double)x); } +//inline float fabs(float x) { return (float)fabs((double)x); } //------------------------------------------------------------------------- // ================================================ FILE: ports/pqp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://gamma.cs.unc.edu/software/downloads/SSV/pqp-1.3.tar.gz" FILENAME "pqp-1.3.tar.gz" SHA512 baad7b050b13a6d13de5110cdec443048a3543b65b0d3b30d1b5f737b46715052661f762ef71345d39978c0c788a30a3a935717664806b4729722ee3594ebdc1 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-math-functions.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/pqp/vcpkg.json ================================================ { "name": "pqp", "version": "1.3", "port-version": 8, "description": "a proximity query package", "homepage": "https://gamma.cs.unc.edu/SSV/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pravila00-enum-string/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Pravila00/enum-string REF 3eec46f5520c287ee46692ea1d41833cbe0d80f2 SHA512 5b29c27b8ceb358bae5a2b4fb5d198b7b4cd8a7c9926bd7685c27650da5cda9f6dc85b6a9694fe151d03b22e3230d5f3faf9143e865dffc0795b2952fca5fc0f HEAD_REF main ) file(COPY "${SOURCE_PATH}/EnumString.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pravila00-enum-string/vcpkg.json ================================================ { "name": "pravila00-enum-string", "version-date": "2023-10-16", "description": "A utility to provide stringizing support for C++ enums.", "homepage": "https://github.com/Pravila00/enum-string", "license": "Unlicense" } ================================================ FILE: ports/pravila00-enumflag/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Pravila00/enumflag REF 0b6697149a68e9700029840e8ab983c06001e454 SHA512 2c583bf1dfd4d42dd2589d78da288093c49f1b601da415f524f2201bbb49bf1fc22f1c027874a52e8665dadbe0f5f676c278e0bced0c53cf834a0eab02d454b4 HEAD_REF main ) file(COPY "${SOURCE_PATH}/EnumFlag.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pravila00-enumflag/vcpkg.json ================================================ { "name": "pravila00-enumflag", "version-date": "2024-04-12", "description": "This C++ code provides a template for enabling bitwise operations on enum classes, which are not supported by default in C++.", "homepage": "https://www.justsoftwaresolutions.co.uk/cplusplus/using-enum-classes-as-bitfields.html", "license": "BSL-1.0" } ================================================ FILE: ports/pravila00-make-vector/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Pravila00/make-vector REF 1518ac00adec9b13a645aee45ed1a36eb6ec1e98 SHA512 2be4af258ceeb71e990ecc5c1c2c269456f6621b7b6b8183ba4e29f5479c4c7a618bd0c737a8d66aa00052a710930ec2f2ee5bc925f7a627427ac90918b6d4fa HEAD_REF main ) file(COPY "${SOURCE_PATH}/include/make_vector.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/make-vector") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pravila00-make-vector/vcpkg.json ================================================ { "name": "pravila00-make-vector", "version-date": "2023-04-10", "description": "C++ helper for making vectors.", "homepage": "https://github.com/Pravila00/make-vector", "license": "BSL-1.0" } ================================================ FILE: ports/presentmon/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(presentmon) option(INSTALL_HEADERS "Install presentmon headers" ON) option(BUILD_TOOLS "Build tool PresentMon" OFF) set(PRESENTDATA_SRCS PresentData/Debug.cpp PresentData/GpuTrace.cpp PresentData/PresentMonTraceConsumer.cpp PresentData/PresentMonTraceSession.cpp PresentData/TraceConsumer.cpp ) set(PRESENTDATA_HDRS PresentData/Debug.hpp PresentData/GpuTrace.hpp PresentData/PresentMonTraceConsumer.hpp PresentData/PresentMonTraceSession.hpp PresentData/TraceConsumer.hpp ${CMAKE_BINARY_DIR}/generated/version.h ) file(GLOB EXTRA_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/PresentData/ETW/*.h) file(WRITE ${CMAKE_BINARY_DIR}/generated/version.h "char const* PRESENT_MON_VERSION = \"1.7.0\";") add_library(PresentData STATIC ${PRESENTDATA_SRCS} ${PRESENTDATA_HDRS} ${EXTRA_INCLUDES}) target_include_directories(PresentData PUBLIC $ $ ) target_compile_definitions(PresentData PRIVATE UNICODE) # Install targets install(TARGETS PresentData RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if (BUILD_TOOLS) set(PresentMon_SRCS PresentMon/CommandLine.cpp PresentMon/Console.cpp PresentMon/ConsumerThread.cpp PresentMon/CsvOutput.cpp PresentMon/MainThread.cpp PresentMon/OutputThread.cpp PresentMon/Privilege.cpp PresentMon/PresentMon.hpp ) add_executable(PresentMon ${PresentMon_SRCS}) target_include_directories(PresentMon PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/PresentMon ${CMAKE_BINARY_DIR}) target_compile_definitions(PresentMon PRIVATE UNICODE) target_link_libraries(PresentMon PRIVATE PresentData Tdh Shlwapi) install(TARGETS PresentMon RUNTIME DESTINATION bin ) endif() # Install headers if (INSTALL_HEADERS) install(FILES ${PRESENTDATA_HDRS} DESTINATION include/presentmon) install(FILES ${EXTRA_INCLUDES} DESTINATION include/presentmon/ETW) endif() ================================================ FILE: ports/presentmon/portfile.cmake ================================================ # The upstream doesn't export any symbols vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GameTechDev/PresentMon REF "v${VERSION}" SHA512 1c606dd53a05b88a500a2deeb7099ce3cf0e9edfdf6ce8f9a1a91efecf9049bf700368066cbafc1e196f4bf8a6e43da86a2f10ad0843b582ab851e366a33eda4 HEAD_REF main ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES presentmon AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/presentmon/vcpkg.json ================================================ { "name": "presentmon", "version-semver": "2.3.0", "description": "PresentMon is a tool to capture and analyze ETW events related to swap chain presentation on Windows.", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tools": { "description": "Build tool PresentMon" } } } ================================================ FILE: ports/proj/fix-proj4-targets-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d736d129..2be8f8be9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -151,6 +165,7 @@ if(ENABLE_TIFF) find_package(TIFF REQUIRED) if(TIFF_FOUND) set(TIFF_ENABLED TRUE) + set(TIFF_LIBRARY TIFF::TIFF) else() message(SEND_ERROR "libtiff dependency not found! Use ENABLE_TIFF=OFF to force it off") ================================================ FILE: ports/proj/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OSGeo/PROJ REF "${VERSION}" SHA512 c5ca62e34612a764cf5cef15e7313ac9e3dccf698e045ac09f8d24e4c109ebf9ee207bcd9d5d698b3f6ecb35d98ec621672f58d130e0eefce74705c3152f374c HEAD_REF master PATCHES fix-proj4-targets-cmake.patch remove_toolset_restriction.patch sqlite.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES net ENABLE_CURL tiff ENABLE_TIFF tools BUILD_APPS ) vcpkg_list(SET TOOL_NAMES cct cs2cs geod gie invgeod invproj proj projinfo projsync) if("tools" IN_LIST FEATURES AND NOT "net" IN_LIST FEATURES) vcpkg_list(APPEND FEATURE_OPTIONS -DBUILD_PROJSYNC=OFF) vcpkg_list(REMOVE_ITEM TOOL_NAMES projsync) endif() find_program(EXE_SQLITE3 NAMES "sqlite3" PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools" NO_DEFAULT_PATH REQUIRED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DNLOHMANN_JSON=external -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF "-DEXE_SQLITE3=${EXE_SQLITE3}" -DPROJ_DATA_ENV_VAR_TRIED_LAST=ON -DEMBED_PROJ_DATA_PATH=OFF OPTIONS_DEBUG -DBUILD_APPS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME proj4 CONFIG_PATH lib/cmake/proj4 DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/proj) vcpkg_fixup_pkgconfig() if(NOT DEFINED VCPKG_BUILD_TYPE AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/proj.pc" " -lproj" " -lproj_d") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Enforce consistency with src/lib_proj.cmake build time configuration. vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/proj.h" "#ifndef PROJ_DLL" "#ifndef PROJ_DLL\n# define PROJ_DLL\n#elif 0" ) endif() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif () file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/share/man" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/proj/remove_toolset_restriction.patch ================================================ diff --git a/cmake/project-config-version.cmake.in b/cmake/project-config-version.cmake.in index d9807b2c5..7ffe39364 100644 --- a/cmake/project-config-version.cmake.in +++ b/cmake/project-config-version.cmake.in @@ -28,14 +28,6 @@ elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR # since a multi-architecture library is built for that platform). set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@") set (PACKAGE_VERSION_UNSUITABLE TRUE) -elseif (MSVC AND NOT ( - # toolset version must be at least as great as @PROJECT_NAME@'s - MSVC_TOOLSET_VERSION GREATER_EQUAL @MSVC_TOOLSET_VERSION@ - # and major versions must match - AND MSVC_TOOLSET_MAJOR EQUAL @MSVC_TOOLSET_MAJOR@ )) - # Reject if there's a mismatch in MSVC compiler versions - set (REASON "MSVC_TOOLSET_VERSION = @MSVC_TOOLSET_VERSION@") - set (PACKAGE_VERSION_UNSUITABLE TRUE) elseif (PACKAGE_FIND_VERSION) if (PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION) set (PACKAGE_VERSION_EXACT TRUE) ================================================ FILE: ports/proj/sqlite.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c9de0f..d43fe91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,12 +214,12 @@ if(DEFINED SQLITE3_LIBRARY) set(SQLite3_LIBRARY ${SQLITE3_LIBRARY}) endif() -find_package(SQLite3 REQUIRED) +find_package(unofficial-sqlite3 CONFIG REQUIRED) +add_library(SQLite::SQLite3 ALIAS unofficial::sqlite3::sqlite3) # Would build and run with older versions, but with horrible performance # See https://github.com/OSGeo/PROJ/issues/1718 if(SQLite3_VERSION VERSION_LESS "3.11") - message(SEND_ERROR "SQLite3 >= 3.11 required!") endif() ################################################################################ diff --git a/cmake/project-config.cmake.in b/cmake/project-config.cmake.in index 0ca48aa..ab4e931 100644 --- a/cmake/project-config.cmake.in +++ b/cmake/project-config.cmake.in @@ -27,7 +27,7 @@ if("@CURL_ENABLED@") endif() cmake_policy(POP) -find_dependency(SQLite3) +find_dependency(unofficial-sqlite3) if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP) find_dependency(TIFF) ================================================ FILE: ports/proj/usage ================================================ proj provides CMake targets: find_package(PROJ CONFIG REQUIRED) target_link_libraries(main PRIVATE PROJ::proj) proj provides pkg-config modules: # Coordinate transformation software library proj ================================================ FILE: ports/proj/vcpkg.json ================================================ { "name": "proj", "version": "9.7.1", "description": "PROJ library for cartographic projections", "homepage": "https://proj.org/", "license": "MIT", "dependencies": [ "nlohmann-json", { "name": "sqlite3", "default-features": false }, { "name": "sqlite3", "host": true, "default-features": false, "features": [ "tool" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "net", "tiff" ], "features": { "net": { "description": "Enable network support", "dependencies": [ "curl" ] }, "tiff": { "description": "Enable TIFF support to read some grids", "dependencies": [ { "name": "tiff", "default-features": false, "features": [ "lzma", "zip" ] } ] }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/projectm/macos-pkgconfig.patch ================================================ --- a/src/libprojectM/CMakeLists.txt 2025-01-24 16:19:05.235818993 +0100 +++ b/src/libprojectM/CMakeLists.txt 2025-01-24 16:18:52.445824000 +0100 @@ -212,7 +212,9 @@ set(PKGCONFIG_PACKAGE_NAME "${PROJECTM_LIBRARY_BASE_OUTPUT_NAME}") set(PKGCONFIG_PACKAGE_DESCRIPTION "projectM Music Visualizer") - set(PKGCONFIG_PACKAGE_REQUIREMENTS_ALL "opengl") + if(NOT APPLE) + set(PKGCONFIG_PACKAGE_REQUIREMENTS_ALL "opengl") + endif() generate_pkg_config_files(projectM ${PROJECTM_LIBRARY_BASE_OUTPUT_NAME}) ================================================ FILE: ports/projectm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO projectM-visualizer/projectm REF "v${VERSION}" SHA512 "9102e5136653abb81da2f36f4b08446ef553fe2d49879d8e906bd4cd30728f97ca87075e6561605cf05e0f4ecf8cbd3d95f372a99b2af893058f5c522864ea69" HEAD_REF master PATCHES macos-pkgconfig.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "boost-filesystem" ENABLE_BOOST_FILESYSTEM ) if (NOT ENABLE_BOOST_FILESYSTEM) message(STATUS "If your current vcpkg target triplet or toolchain does not support C++17 or lacks std::filesystem support, " "please enable the \"boost-filesystem\" feature.") endif () vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} # Use projectm-eval and GLM from ports as well -DENABLE_SYSTEM_PROJECTM_EVAL=ON -DENABLE_SYSTEM_GLM=ON # Enforce additional build flags -DENABLE_PLAYLIST=ON -DENABLE_SDL_UI=OFF -DBUILD_TESTING=OFF -DBUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "projectM4" CONFIG_PATH "lib/cmake/projectM4" DO_NOT_DELETE_PARENT_CONFIG_PATH ) vcpkg_cmake_config_fixup( PACKAGE_NAME "projectM4Playlist" CONFIG_PATH "lib/cmake/projectM4Playlist" ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/projectm/usage ================================================ projectm provides CMake targets: find_package(projectM4 REQUIRED) target_link_libraries(main PRIVATE libprojectM::projectM) To use and link the playlist library component: find_package(projectM4 REQUIRED COMPONENTS Playlist) target_link_libraries(main PRIVATE libprojectM::playlist) ================================================ FILE: ports/projectm/vcpkg.json ================================================ { "name": "projectm", "version": "4.1.6", "description": "The projectM Music Visualizer. A cross-platform, OpenGL-based reimplementation of Milkdrop as a reusable library.", "homepage": "https://github.com/projectM-visualizer/projectm", "license": "LGPL-2.1-only AND MIT AND MIT-0", "dependencies": [ { "name": "glew", "platform": "windows" }, "glm", "opengl", "projectm-eval", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost-filesystem": { "description": "Use boost::filesystem instead of std::filesystem to target toolchains and platforms without C++17 support", "dependencies": [ "boost-filesystem" ] } } } ================================================ FILE: ports/projectm-eval/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO projectM-visualizer/projectm-eval REF "v${VERSION}" SHA512 "17fd58fa596801354f36ed89c8dc34890d41c19fc8bae761c70b97ccf3df2c343307ac5b611a111b2b8c3f3a62bc05e440d9c958463c0bb094d8e06bc56abf68" HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_NS_EEL_SHIM=ON -DCMAKE_DISABLE_FIND_PACKAGE_BISON=ON -DCMAKE_DISABLE_FIND_PACKAGE_FLEX=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "projectm-eval" CONFIG_PATH "lib/cmake/projectM-Eval" DO_NOT_DELETE_PARENT_CONFIG_PATH ) vcpkg_cmake_config_fixup( PACKAGE_NAME "projectM-EvalMilkdrop" CONFIG_PATH "lib/cmake/projectM-EvalMilkdrop" ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/projectm-eval/usage ================================================ projectm-eval provides CMake targets: find_package(projectM-Eval REQUIRED) target_link_libraries(main PRIVATE projectM::Eval) To use the ns-eel2 shim with the Milkdrop codebase: find_package(projectM-Eval REQUIRED COMPONENTS Milkdrop) target_link_libraries(main PRIVATE projectM::ns-eel2) ================================================ FILE: ports/projectm-eval/vcpkg.json ================================================ { "name": "projectm-eval", "version": "1.0.6", "port-version": 1, "description": "The projectM Expression Evaluation Library. A portable drop-in replacement of Milkdrop's \"ns-eel2\" expression parser for use in Milkdrop, projectM and other applications.", "homepage": "https://github.com/projectM-visualizer/projectm-eval", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/prometheus-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jupp0r/prometheus-cpp REF "v${VERSION}" SHA512 e397f25c7a62d410d19be5e926cfb38175c89755e4ff9d67f06b905036daa82b0dfbe21fcc69438fc1c1e5d04f120ef7ff983ca9411ab198a3911992efb00093 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES compression ENABLE_COMPRESSION pull ENABLE_PULL push ENABLE_PUSH tests ENABLE_TESTING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_THIRDPARTY_LIBRARIES=OFF # use vcpkg packages -DGENERATE_PKGCONFIG=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/prometheus-cpp") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/prometheus-cpp/vcpkg.json ================================================ { "name": "prometheus-cpp", "version-semver": "1.3.0", "description": "Prometheus Client Library for Modern C++", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "compression", "pull" ], "features": { "compression": { "description": "Enable zlib compression", "dependencies": [ "zlib" ] }, "pull": { "description": "Support for regular pull mode", "dependencies": [ "civetweb" ] }, "push": { "description": "Support push gateway", "dependencies": [ "curl" ] }, "tests": { "description": "Additional testing support", "dependencies": [ "gtest" ] } } } ================================================ FILE: ports/promise-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xhawk18/promise-cpp REF ${VERSION} SHA512 18e09cf4caffee2864b45e46b4385daf960aa5ec340e680e4d0303803360c910a8618b9e1365a18693f1d89ba50b42ad7f2e2b5f8b26d3883b48f8c1337efbe5 HEAD_REF master ) file(GLOB PROMISE_HEADERS "${SOURCE_PATH}/include/*.hpp") file(INSTALL "${SOURCE_PATH}/include/promise-cpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/promise-cpp/usage ================================================ The package promise-cpp is header only and can be used from CMake via: find_path(PROMISE_CPP_INCLUDE_DIRS "promise-cpp/promise.hpp") target_include_directories(main PRIVATE ${PROMISE_CPP_INCLUDE_DIRS}) Make sure to define the pre-processor macro PROMISE_HEADONLY before including "promise-cpp/promise.hpp": #define PROMISE_HEADONLY #include "promise-cpp/promise.hpp" ================================================ FILE: ports/promise-cpp/vcpkg.json ================================================ { "name": "promise-cpp", "version": "2.1.5", "description": "C++ promise/A+ library in Javascript style.", "homepage": "https://github.com/xhawk18/promise-cpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/protobuf/fix-constinit-with-clang-cl.patch ================================================ diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc index a512b4843..31f1f5a12 100644 --- a/src/google/protobuf/port_def.inc +++ b/src/google/protobuf/port_def.inc @@ -678,6 +678,9 @@ static_assert(PROTOBUF_ABSL_MIN(20230125, 3), # define PROTOBUF_CONSTINIT # define PROTOBUF_CONSTEXPR constexpr # endif +#elif defined(_MSC_VER) && defined(__clang__) +# define PROTOBUF_CONSTINIT +# define PROTOBUF_CONSTEXPR constexpr #else # if defined(__cpp_constinit) && !defined(__CYGWIN__) # define PROTOBUF_CONSTINIT constinit ================================================ FILE: ports/protobuf/fix-default-proto-file-path.patch ================================================ diff --git a/src/google/protobuf/compiler/command_line_interface.cc b/src/google/protobuf/compiler/command_line_interface.cc index cd95c8b41..d4825180d 100644 --- a/src/google/protobuf/compiler/command_line_interface.cc +++ b/src/google/protobuf/compiler/command_line_interface.cc @@ -272,12 +272,15 @@ void AddDefaultProtoPaths( paths->emplace_back("", std::move(include_path)); return; } - // Check if the upper level directory has an "include" subdirectory. + // change "'$/bin' is next to 'include'" assumption to "'$/bin/tools' is next to 'include'" + for (int i = 0; i < 2; i++) + { pos = path.find_last_of("/\\"); if (pos == std::string::npos || pos == 0) { return; } path = path.substr(0, pos); + } include_path = absl::StrCat(path, "/include"); if (IsInstalledProtoPath(include_path)) { paths->emplace_back("", std::move(include_path)); ================================================ FILE: ports/protobuf/fix-install-dirs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b9ca8ed6..1881eb221 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ endif() # Project project(protobuf C CXX) +include(GNUInstallDirs) if(CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS 17) message(FATAL_ERROR "The minimum supported C++ standard is C++ 17") ================================================ FILE: ports/protobuf/fix-static-build.patch ================================================ diff --git a/cmake/install.cmake b/cmake/install.cmake index 65765ca29..f5ad69102 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -65,7 +65,7 @@ if (protobuf_BUILD_PROTOC_BINARIES) endforeach () endif () foreach (binary IN LISTS _protobuf_binaries) - if (UNIX AND NOT APPLE) + if (UNIX AND NOT APPLE AND NOT protobuf_MSVC_STATIC_RUNTIME) set_property(TARGET ${binary} PROPERTY INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}") elseif (APPLE) @@ -85,7 +85,5 @@ set(protobuf_HEADERS ${cpp_features_proto_proto_srcs} ${descriptor_proto_proto_srcs} ${plugin_proto_proto_srcs} - ${java_features_proto_proto_srcs} - ${go_features_proto_proto_srcs} ) if (protobuf_BUILD_LIBUPB) list(APPEND protobuf_HEADERS ${libupb_hdrs}) ================================================ FILE: ports/protobuf/fix-upb.patch ================================================ diff --git a/cmake/install.cmake b/cmake/install.cmake index 5e816b311..84211495b 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -60,7 +60,7 @@ if (protobuf_BUILD_PROTOC_BINARIES) install(TARGETS protoc EXPORT protobuf-targets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc) - if (protobuf_BUILD_LIBUPB) + if (0) foreach (generator upb upbdefs upb_minitable) list(APPEND _protobuf_binaries protoc-gen-${generator}) install(TARGETS protoc-gen-${generator} EXPORT protobuf-targets @@ -93,7 +93,7 @@ set(protobuf_HEADERS ${descriptor_proto_proto_srcs} ${plugin_proto_proto_srcs} ) -if (protobuf_BUILD_LIBUPB) +if (0) list(APPEND protobuf_HEADERS ${libupb_hdrs}) # Manually install the bootstrap headers install( ================================================ FILE: ports/protobuf/fix-utf8-range.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b9ca8ed6..a9798c35e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,6 +274,7 @@ endif (protobuf_BUILD_TESTS) include(${protobuf_SOURCE_DIR}/cmake/abseil-cpp.cmake) if (protobuf_BUILD_PROTOBUF_BINARIES) + find_package(utf8_range CONFIG REQUIRED) include(${protobuf_SOURCE_DIR}/cmake/utf8_range.cmake) include(${protobuf_SOURCE_DIR}/cmake/libprotobuf-lite.cmake) if (NOT DEFINED protobuf_LIB_PROTOBUF_LITE) diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake index 6a923f6c8..d910c8499 100644 --- a/cmake/libprotobuf-lite.cmake +++ b/cmake/libprotobuf-lite.cmake @@ -43,4 +43,4 @@ set_target_properties(libprotobuf-lite PROPERTIES ) add_library(protobuf::libprotobuf-lite ALIAS libprotobuf-lite) -target_link_libraries(libprotobuf-lite PRIVATE utf8_validity) +target_link_libraries(libprotobuf-lite PRIVATE utf8_range::utf8_validity) diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake index 22df1fd14..ea9a1054b 100644 --- a/cmake/libprotobuf.cmake +++ b/cmake/libprotobuf.cmake @@ -45,4 +45,4 @@ set_target_properties(libprotobuf PROPERTIES ) add_library(protobuf::libprotobuf ALIAS libprotobuf) -target_link_libraries(libprotobuf PUBLIC utf8_validity) +target_link_libraries(libprotobuf PUBLIC utf8_range::utf8_validity) diff --git a/cmake/libupb.cmake b/cmake/libupb.cmake index 1cbbaa209..4feb0345e 100644 --- a/cmake/libupb.cmake +++ b/cmake/libupb.cmake @@ -48,4 +48,4 @@ set_target_properties(libupb PROPERTIES VISIBILITY_INLINES_HIDDEN ON ) add_library(protobuf::libupb ALIAS libupb) -target_link_libraries(libupb PRIVATE utf8_range) +target_link_libraries(libupb PRIVATE utf8_range::utf8_range) diff --git a/cmake/upb_generators.cmake b/cmake/upb_generators.cmake index 7a55f851e..de897a079 100644 --- a/cmake/upb_generators.cmake +++ b/cmake/upb_generators.cmake @@ -24,7 +24,7 @@ foreach(generator upb upbdefs upb_minitable) endif() target_link_libraries(protoc-gen-${generator} libprotobuf - utf8_validity + utf8_range::utf8_validity ${protobuf_LIB_UPB} ${protobuf_ABSL_USED_TARGETS} ) diff --git a/cmake/utf8_range.cmake b/cmake/utf8_range.cmake index f411a8c5b..21bf8235b 100644 --- a/cmake/utf8_range.cmake +++ b/cmake/utf8_range.cmake @@ -1,4 +1,4 @@ -if (NOT TARGET utf8_range) +if (0) set(utf8_range_ENABLE_TESTS OFF CACHE BOOL "Disable utf8_range tests") if (NOT EXISTS "${protobuf_SOURCE_DIR}/third_party/utf8_range/CMakeLists.txt") @@ -12,4 +12,4 @@ if (NOT TARGET utf8_range) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/utf8_range) endif () -set(_protobuf_FIND_UTF8_RANGE "if(NOT TARGET utf8_range)\n find_package(utf8_range CONFIG)\nendif()") +set(_protobuf_FIND_UTF8_RANGE "if(NOT TARGET utf8_range::utf8_range)\n find_package(utf8_range CONFIG)\nendif()") ================================================ FILE: ports/protobuf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO protocolbuffers/protobuf REF "v33.4" SHA512 540059a93721447cf4723bcca06e91c43a4399cb366c05bf84e9d8e2c439f3107ba17803f9d912549b54c471f2dcc4c9fc834145ec441dff31ca24f9a3543aa9 HEAD_REF master PATCHES fix-static-build.patch fix-default-proto-file-path.patch fix-utf8-range.patch fix-install-dirs.patch fix-constinit-with-clang-cl.patch fix-upb.patch ) string(COMPARE EQUAL "${TARGET_TRIPLET}" "${HOST_TRIPLET}" protobuf_BUILD_PROTOC_BINARIES) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" protobuf_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" protobuf_MSVC_STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES zlib protobuf_WITH_ZLIB ) if(VCPKG_TARGET_IS_UWP) set(protobuf_BUILD_LIBPROTOC OFF) else() set(protobuf_BUILD_LIBPROTOC ON) endif() if (VCPKG_DOWNLOAD_MODE) # download PKGCONFIG in download mode which is used in `vcpkg_fixup_pkgconfig()` at the end of this script. # download it here because `vcpkg_cmake_configure()` halts execution in download mode when running configure process. vcpkg_find_acquire_program(PKGCONFIG) endif() # Delete language backends we aren't targeting to reduce false positives in automated dependency # detectors like Dependabot. file(REMOVE_RECURSE "${SOURCE_PATH}/csharp" "${SOURCE_PATH}/java" "${SOURCE_PATH}/lua" "${SOURCE_PATH}/objectivec" "${SOURCE_PATH}/php" "${SOURCE_PATH}/python" "${SOURCE_PATH}/ruby" "${SOURCE_PATH}/rust" "${SOURCE_PATH}/go" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=${protobuf_BUILD_SHARED_LIBS} -Dprotobuf_MSVC_STATIC_RUNTIME=${protobuf_MSVC_STATIC_RUNTIME} -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_INSTALL_CMAKEDIR:STRING=share/protobuf -Dprotobuf_BUILD_PROTOC_BINARIES=${protobuf_BUILD_PROTOC_BINARIES} -Dprotobuf_BUILD_LIBPROTOC=${protobuf_BUILD_LIBPROTOC} -Dprotobuf_LOCAL_DEPENDENCIES_ONLY=ON -Dprotobuf_BUILD_LIBUPB=${protobuf_BUILD_LIBPROTOC} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(protobuf_BUILD_PROTOC_BINARIES) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES protoc AUTO_CLEAN) else() string(REPLACE "." ";" VERSION_LIST ${VERSION}) list(GET VERSION_LIST 1 VERSION_MINOR) list(GET VERSION_LIST 2 VERSION_PATCH) vcpkg_copy_tools(TOOL_NAMES protoc protoc-${VERSION_MINOR}.${VERSION_PATCH}.0 AUTO_CLEAN) endif() else() file(COPY "${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/protobuf-config.cmake" "if(protobuf_MODULE_COMPATIBLE)" "if(protobuf_MODULE_COMPATIBLE OR CMAKE_FIND_PACKAGE_NAME STREQUAL \"Protobuf\")" ) if(NOT protobuf_BUILD_LIBPROTOC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/protobuf-module.cmake" "_protobuf_find_libraries(Protobuf_PROTOC protoc)" "" ) endif() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/google/protobuf/port_def.inc" "\#ifdef PROTOBUF_PORT_" "\#ifndef PROTOBUF_USE_DLLS\n\#define PROTOBUF_USE_DLLS\n\#endif // PROTOBUF_USE_DLLS\n\n\#ifdef PROTOBUF_PORT_" ) endif() vcpkg_copy_pdbs() function(replace_package_string package) set(debug_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${package}.pc") set(release_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${package}.pc") if(EXISTS "${release_file}") vcpkg_replace_string("${release_file}" "absl_abseil_dll" "abseil_dll" IGNORE_UNCHANGED) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${release_file}" "-l${package}" "-llib${package}" IGNORE_UNCHANGED) endif() endif() if(EXISTS "${debug_file}") vcpkg_replace_string("${debug_file}" "absl_abseil_dll" "abseil_dll" IGNORE_UNCHANGED) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${debug_file}" "-l${package}" "-llib${package}d" IGNORE_UNCHANGED) else() vcpkg_replace_string("${debug_file}" "-l${package}" "-l${package}d" IGNORE_UNCHANGED) endif() endif() endfunction() set(packages protobuf protobuf-lite) foreach(package IN LISTS packages) replace_package_string("${package}") endforeach() vcpkg_fixup_pkgconfig() if(NOT protobuf_BUILD_PROTOC_BINARIES) configure_file("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets-vcpkg-protoc.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/protobuf-targets-vcpkg-protoc.cmake" COPYONLY) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/protobuf/protobuf-targets-vcpkg-protoc.cmake ================================================ # Create imported target protobuf::protoc add_executable(protobuf::protoc IMPORTED) # Import target "protobuf::protoc" for configuration "Release" set_property(TARGET protobuf::protoc APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(protobuf::protoc PROPERTIES IMPORTED_LOCATION_RELEASE "${Protobuf_PROTOC_EXECUTABLE}" ) ================================================ FILE: ports/protobuf/vcpkg-cmake-wrapper.cmake ================================================ find_program(Protobuf_PROTOC_EXECUTABLE NAMES protoc PATHS "${CMAKE_CURRENT_LIST_DIR}/../../../@HOST_TRIPLET@/tools/protobuf" NO_DEFAULT_PATH) _find_package(${ARGS} CONFIG) ================================================ FILE: ports/protobuf/vcpkg.json ================================================ { "name": "protobuf", "version": "6.33.4", "port-version": 1, "description": "Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.", "homepage": "https://github.com/protocolbuffers/protobuf", "license": "BSD-3-Clause", "dependencies": [ "abseil", { "name": "protobuf", "host": true }, "utf8-range", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "zlib": { "description": "ZLib based features like Gzip streams", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/protobuf-c/fix-crt-linkage.patch ================================================ diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt index 98b51eb..0243b80 100644 --- a/build-cmake/CMakeLists.txt +++ b/build-cmake/CMakeLists.txt @@ -74,11 +74,6 @@ if(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4267 /wd4244") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4267 /wd4244") - # Allow matching protobuf runtime dependency - if(NOT BUILD_SHARED_LIBS) - set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") - endif(NOT BUILD_SHARED_LIBS) - endif() get_filename_component(MAIN_DIR ${CMAKE_CURRENT_SOURCE_DIR} PATH) @@ -103,7 +98,7 @@ if(BUILD_PROTOC) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # for generated files endif() -if(MSVC AND NOT BUILD_SHARED_LIBS) +if (0) # In case we are building static libraries, link also the runtime library # statically so that MSVCR*.DLL is not required at runtime. # https://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx This is achieved by ================================================ FILE: ports/protobuf-c/fix-dependency-protobuf.patch ================================================ diff --git a/build-cmake/CMakeLists.txt b/build-cmake/CMakeLists.txt index ba0b730..a5161cf 100644 --- a/build-cmake/CMakeLists.txt +++ b/build-cmake/CMakeLists.txt @@ -15,7 +15,7 @@ if(MSVC AND NOT BUILD_SHARED_LIBS) set(Protobuf_USE_STATIC_LIBS ON) endif() -find_package(Protobuf CONFIG) +find_package(Protobuf CONFIG REQUIRED) if(Protobuf_FOUND) # Keep compatibility with FindProtobuf CMake module set(PROTOBUF_PROTOC_EXECUTABLE $) ================================================ FILE: ports/protobuf-c/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO protobuf-c/protobuf-c REF v${VERSION} SHA512 c95ec5fa4d3531fb83c9db95968e62a60c5e16cb10fb390067eca35ccb9e0c65c1e667bbdc9b7aa3b8f6cf012b09a189d6833534d2a28e390f01ae0d12052a47 HEAD_REF master PATCHES fix-crt-linkage.patch fix-dependency-protobuf.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_PROTOC test BUILD_TESTS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/build-cmake" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES protoc-gen-c AUTO_CLEAN ) endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/protobuf-c") # Include files should not be duplicated into the /debug/include directory. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Remove duplicate PDB files (vcpkg_copy_pdbs already copied them to "bin") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/protobuf-c.pdb") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/protobuf-c.pdb") if(NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/protobuf-c/vcpkg.json ================================================ { "name": "protobuf-c", "version-semver": "1.5.2", "description": "This is protobuf-c, a C implementation of the Google Protocol Buffers data serialization format.", "homepage": "https://github.com/protobuf-c/protobuf-c", "dependencies": [ "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build test project.", "dependencies": [ { "name": "protobuf-c", "features": [ "tools" ] } ] }, "tools": { "description": "Build tools (protoc-gen-c).", "supports": "!uwp" } } } ================================================ FILE: ports/protopuf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PragmaTwice/protopuf REF "v${VERSION}" SHA512 927fc531a72b34877c7b2dd171e2e873783ebb8a67567a9cca28ed258d8dca89695866b84bc64d71a18d38ba317a1e56f9cbdbbc83103892edff0da517006831 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/protopuf/vcpkg.json ================================================ { "name": "protopuf", "version": "3.1.0", "description": "A little, highly templated, and protobuf-compatible serialization/deserialization library written in C++20", "homepage": "https://github.com/PragmaTwice/protopuf", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/protozero/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mapbox/protozero SHA512 b5c4cef9112e03f64d53c2f15f8def28129f720f77674e8d1aac7ad663f18630bb3923495a57f94917490d27acab27f07574a6c170c9e1fb151eef702a4ffc5f REF "v${VERSION}" HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/protozero/vcpkg.json ================================================ { "name": "protozero", "version-semver": "1.8.0", "description": "Minimalist protocol buffer decoder and encoder in C++", "homepage": "https://github.com/mapbox/protozero", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ "protobuf", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/proxsuite/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Simple-Robotics/proxsuite REF "v${VERSION}" SHA512 4c732b58fe969fec51ba68b63029db63fa13f74500d8e46547f45f9ff4458ed43967b2085ac8719d3f0c22edda2ca945a75714655566424be805fa2e0bd9c54a HEAD_REF main ) vcpkg_from_github( OUT_SOURCE_PATH MODULES_SOURCE_PATH REPO jrl-umi3218/jrl-cmakemodules REF b3c2af1b68686dc9d5f459fb617647e37a15a76d SHA512 c37a67f8e74a1fd28147ba60169aa88e1901d044328f07d76a3e91e28fbd6c5a865af7ff378fd7358216ad4de0e39b3d7f158179d99be8c6b7f99f8d67be0c2b HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake-module") file(RENAME "${MODULES_SOURCE_PATH}" "${SOURCE_PATH}/cmake-module") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_WITH_VECTORIZATION_SUPPORT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/proxsuite/vcpkg.json ================================================ { "name": "proxsuite", "version": "0.6.7", "description": "The Advanced Proximal Optimization Toolbox", "homepage": "https://github.com/Simple-Robotics/proxsuite", "license": "BSD-2-Clause", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/proxy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ngcpp/proxy REF ${VERSION} SHA512 78742fbafb06826260175b8f4fd6ffdb8d089d2f6d5749c572ae1d74063b1cb9c7b647d48f4b28672d921a5b304b8fdac88ebe7c4759117f70473a847f060c7a HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "msft_proxy4") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/proxy/vcpkg.json ================================================ { "name": "proxy", "version": "4.0.2", "description": "A single-header C++20 library that facilitates runtime polymorphism.", "homepage": "https://github.com/ngcpp/proxy", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/proxygen/fix-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 75494ab..90f6595 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,26 +75,26 @@ endif() # # IMPORTANT: If you change this, make the analogous update in: # cmake/proxygen-config.cmake.in -find_package(fmt REQUIRED) +find_package(fmt CONFIG REQUIRED) # If deps are being built from source (FetchContent), skip find_package if (NOT DEFINED folly_SOURCE_DIR) - find_package(folly REQUIRED) + find_package(folly CONFIG REQUIRED) endif() if (NOT DEFINED fizz_SOURCE_DIR) - find_package(fizz REQUIRED) + find_package(fizz CONFIG REQUIRED) endif() if (NOT DEFINED wangle_SOURCE_DIR) - find_package(wangle REQUIRED) + find_package(wangle CONFIG REQUIRED) endif() if (NOT DEFINED mvfst_SOURCE_DIR) - find_package(mvfst REQUIRED) + find_package(mvfst CONFIG REQUIRED) endif() -find_package(Zstd REQUIRED) +find_package(zstd CONFIG REQUIRED) find_package(ZLIB REQUIRED) find_package(OpenSSL REQUIRED) find_package(Threads) -find_package(Cares REQUIRED) -find_package(Glog REQUIRED) +find_package(c-ares REQUIRED) +find_package(glog CONFIG REQUIRED) # Propagate glog's required compile definition to all proxygen targets. # glog 0.7+ requires GLOG_USE_GLOG_EXPORT but since glog::glog is linked @@ -143,10 +143,14 @@ SET(GFLAG_DEPENDENCIES "") SET(PROXYGEN_EXTRA_LINK_LIBRARIES "") SET(PROXYGEN_EXTRA_INCLUDE_DIRECTORIES "") -find_package(gflags CONFIG QUIET) +set(GFLAGS_USE_TARGET_NAMESPACE ON) +find_package(gflags CONFIG REQUIRED) +set(GFLAGS_LIBRARIES gflags::gflags) if (gflags_FOUND) message("module path: ${CMAKE_MODULE_PATH}") message(STATUS "Found gflags from package config") + list(APPEND GFLAG_DEPENDENCIES gflags::gflags) +if(0) if (TARGET gflags-shared) list(APPEND GFLAG_DEPENDENCIES gflags-shared) elseif (TARGET gflags) @@ -155,6 +159,7 @@ if (gflags_FOUND) message(FATAL_ERROR "Unable to determine the target name for the GFlags package.") endif() +endif() list(APPEND CMAKE_REQUIRED_LIBRARIES ${GFLAGS_LIBRARIES}) list(APPEND CMAKE_REQUIRED_INCLUDES ${GFLAGS_INCLUDE_DIR}) else() diff --git a/cmake/proxygen-config.cmake.in b/cmake/proxygen-config.cmake.in index bf1c508..18cb343 100644 --- a/cmake/proxygen-config.cmake.in +++ b/cmake/proxygen-config.cmake.in @@ -17,22 +17,26 @@ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) -find_dependency(Glog) -find_dependency(fmt) -find_dependency(folly) -find_dependency(wangle) -find_dependency(mvfst) -find_dependency(Fizz) +find_dependency(glog CONFIG) +find_dependency(fmt CONFIG) +find_dependency(folly CONFIG) +find_dependency(wangle CONFIG) +find_dependency(mvfst CONFIG) +find_dependency(fizz CONFIG) +set(z_vcpkg_proxygen_gflags_backup ${GFLAGS_USE_TARGET_NAMESPACE}) +set(GFLAGS_USE_TARGET_NAMESPACE ON) +find_dependency(gflags CONFIG) +set(GFLAGS_USE_TARGET_NAMESPACE ${z_vcpkg_proxygen_gflags_backup}) # For now, anything that depends on Proxygen has to copy its FindZstd.cmake # and issue a `find_package(Zstd)`. Uncommenting this won't work because # this Zstd module exposes a library called `zstd`. The right fix is # discussed on D24686032. # -# find_dependency(Zstd) +find_dependency(zstd CONFIG) find_dependency(ZLIB) find_dependency(OpenSSL) find_dependency(Threads) -find_dependency(c-ares REQUIRED) +find_dependency(c-ares CONFIG) if(NOT TARGET proxygen::proxygen) include("${CMAKE_CURRENT_LIST_DIR}/proxygen-targets.cmake") diff --git a/proxygen/lib/dns/CMakeLists.txt b/proxygen/lib/dns/CMakeLists.txt index 527b5a4..6e640a3 100644 --- a/proxygen/lib/dns/CMakeLists.txt +++ b/proxygen/lib/dns/CMakeLists.txt @@ -61,7 +61,7 @@ proxygen_add_library(proxygen_dns_cares_dns proxygen_utils_time_util Folly::folly_conv Folly::folly_portability_sockets - cares + c-ares::cares glog::glog EXPORTED_DEPS proxygen_dns_dns_base @@ -69,7 +69,7 @@ proxygen_add_library(proxygen_dns_cares_dns Folly::folly_io_async_async_base Folly::folly_network_address Folly::folly_portability_windows - cares + c-ares::cares ) proxygen_add_library(proxygen_dns_future_dns ================================================ FILE: ports/proxygen/folly-has-liburing.diff ================================================ diff --git a/proxygen/lib/services/WorkerThread.cpp b/proxygen/lib/services/WorkerThread.cpp index 3c422db..c4a05fa 100644 --- a/proxygen/lib/services/WorkerThread.cpp +++ b/proxygen/lib/services/WorkerThread.cpp @@ -17,7 +17,7 @@ #include #include -#if !FOLLY_MOBILE && __has_include() +#if !FOLLY_MOBILE && FOLLY_HAS_LIBURING DEFINE_int32(pwt_io_uring_capacity, -1, "io_uring backend capacity"); DEFINE_int32(pwt_io_uring_max_submit, 128, "io_uring backend max submit"); ================================================ FILE: ports/proxygen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/proxygen REF "v${VERSION}" SHA512 308c82858b0de19992bd29e32518d08a2502020b933d1796f7b65686dc5d4c2707189aa6d15dfad5a021abb9021a25aa11ade0a2f5ddafc1cea23cbb4744b81c HEAD_REF main PATCHES remove-register.patch folly-has-liburing.diff fix-dependency.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPROXYGEN_PYTHON=${PYTHON3}" -DVCPKG_LOCK_FIND_PACKAGE_gflags=ON -DCMAKE_INSTALL_DIR=share/proxygen -DBUILD_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/proxygen/remove-register.patch ================================================ diff --git a/proxygen/lib/utils/gen_perfect_hash_table.sh b/proxygen/lib/utils/gen_perfect_hash_table.sh index 8de2871..bf40ba1 100755 --- a/proxygen/lib/utils/gen_perfect_hash_table.sh +++ b/proxygen/lib/utils/gen_perfect_hash_table.sh @@ -32,6 +32,7 @@ function generate_perfect_hash_table { # Generate output source file. LC_ALL=C sort -u ${1?} | awk "${6?}" - "${5?}" | \ ${8:-gperf} -m5 -D --output-file="${7?}" + perl -p -i -e "s/register//g" "${7?}" # Here we delete one of the comment lines gperf adds to the top of the file. # i.e. /* Command-line: .../gperf -m5 --output-file=... */ ================================================ FILE: ports/proxygen/vcpkg.json ================================================ { "name": "proxygen", "version-string": "2026.02.23.00", "description": "It comprises the core C++ HTTP abstractions used at Facebook.", "homepage": "https://github.com/facebook/proxygen", "license": "BSD-3-Clause", "supports": "!windows", "dependencies": [ "boost-context", "boost-date-time", "boost-filesystem", "boost-iostreams", "boost-program-options", "boost-regex", "boost-system", "boost-thread", "c-ares", "fizz", "folly", "gflags", { "name": "gperf", "host": true }, "mvfst", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wangle", "zlib", "zstd" ] } ================================================ FILE: ports/psimd/add-cmake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bd69c62..f3c5f15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,16 @@ IF(${CMAKE_VERSION} VERSION_LESS "3.0") ELSE() ADD_LIBRARY(psimd INTERFACE) ENDIF() -TARGET_INCLUDE_DIRECTORIES(psimd INTERFACE include) +TARGET_INCLUDE_DIRECTORIES(psimd INTERFACE $ $) INSTALL(FILES include/psimd.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + + +INSTALL(TARGETS psimd + EXPORT unofficial-psimd-config + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +INSTALL(EXPORT unofficial-psimd-config NAMESPACE unofficial::psimd:: + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-${PROJECT_NAME}) # share/psimd ================================================ FILE: ports/psimd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Maratyszcza/psimd REF 072586a71b55b7f8c584153d223e95687148a900 SHA512 a18faea093423dd9fe19ece8b228e011dccce0a2a22222f777ea19b023a13173966d4a8aea01147e8fc58de5d39cffcedeb2221a1572ae52bd5aba1295f86a94 PATCHES add-cmake-config.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/psimd/vcpkg.json ================================================ { "name": "psimd", "version-date": "2021-02-21", "port-version": 4, "description": "Portable 128-bit SIMD intrinsics", "homepage": "https://github.com/Maratyszcza/psimd", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/ptc-print/portfile.cmake ================================================ # header-only library # Github config vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustWhit3/ptc-print REF v1.4.1 SHA512 45f3008cb848f464ac0355660e7cdbd40db60338a4db5e35d29285c8c1afc0556c8dea6ac0e6939837916ec138dd8e385709d1fa89651d3404418cf3e7948fd9 HEAD_REF master ) # Main commands vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPTCPRINT_TESTS=OFF ) vcpkg_cmake_install() # Move cmake configs vcpkg_cmake_config_fixup(PACKAGE_NAME ptcprint CONFIG_PATH lib/cmake/ptcprint) # Remove duplicate files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib" "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ptc-print/vcpkg.json ================================================ { "name": "ptc-print", "version": "1.4.1", "port-version": 1, "description": "A single-header library for custom printing to the output stream.", "homepage": "https://github.com/JustWhit3/ptc-print", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ptex/fix-android.patch ================================================ diff --git a/src/ptex/PtexWriter.cpp b/src/ptex/PtexWriter.cpp index 99df951..0032275 100644 --- a/src/ptex/PtexWriter.cpp +++ b/src/ptex/PtexWriter.cpp @@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. #include #include #include -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__ANDROID__) #include #include #endif ================================================ FILE: ports/ptex/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 86c937a..99d2aa3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) include(GNUInstallDirs) include(CTest) -enable_testing() +# enable_testing() # Setup platform-specific threading flags. find_package(Threads REQUIRED) @@ -113,9 +113,11 @@ endif () include_directories(src/ptex) add_subdirectory(src/ptex) +if(0) add_subdirectory(src/utils) add_subdirectory(src/tests) if (PTEX_BUILD_DOCS) add_subdirectory(src/doc) endif () +endif() add_subdirectory(src/build) diff --git a/src/ptex/CMakeLists.txt b/src/ptex/CMakeLists.txt index 3f238e0..7d6fccb 100644 --- a/src/ptex/CMakeLists.txt +++ b/src/ptex/CMakeLists.txt @@ -44,7 +44,10 @@ if(PTEX_BUILD_SHARED_LIBS) PUBLIC Threads::Threads PRIVATE libdeflate::libdeflate_shared ) - install(TARGETS Ptex_dynamic EXPORT Ptex DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(TARGETS Ptex_dynamic EXPORT Ptex + RUNTIME DESTINATION ${BIN_INSTALL_DIR} + LIBRARY DESTINATION ${LIB_INSTALL_DIR} + ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) endif() install(FILES ================================================ FILE: ports/ptex/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wdas/ptex REF "v${VERSION}" SHA512 8c9d1e2b26f74ea988f4df6f4a6b342a152a8068ff7f85eacdfbab9f516d2ab15282f16326e9527d0f842f4eb8e16858eb57c19b8bbee153f1ab074175571025 HEAD_REF master PATCHES fix-build.patch fix-android.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_CXX_STANDARD=17 "-DPTEX_VER=v${VERSION}" -DPTEX_BUILD_SHARED_LIBS=${BUILD_SHARED_LIB} -DPTEX_BUILD_STATIC_LIBS=${BUILD_STATIC_LIB} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Ptex ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig/ptex.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/ptex.pc") if(NOT VCPKG_BUILD_TYPE) file(COPY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/ptex.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/pkgconfig") vcpkg_copy_pdbs() foreach(HEADER PtexHalf.h Ptexture.h) file(READ "${CURRENT_PACKAGES_DIR}/include/${HEADER}" PTEX_HEADER) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) string(REPLACE "ifndef PTEX_STATIC" "if 1" PTEX_HEADER "${PTEX_HEADER}") else() string(REPLACE "ifndef PTEX_STATIC" "if 0" PTEX_HEADER "${PTEX_HEADER}") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/include/${HEADER}" "${PTEX_HEADER}") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ptex/usage ================================================ Ptex provides CMake targets: find_package(ptex CONFIG REQUIRED) target_link_libraries(main PRIVATE $,Ptex::Ptex_dynamic,Ptex::Ptex_static>) ================================================ FILE: ports/ptex/vcpkg.json ================================================ { "name": "ptex", "version": "2.5.0", "description": "Per-Face Texture Mapping for Production Rendering.", "homepage": "https://github.com/wdas/ptex", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "libdeflate", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pthread/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/pthread/vcpkg.json ================================================ { "name": "pthread", "version": "3.0.0", "port-version": 2, "description": "empty package, linking to other port", "dependencies": [ "pthreads" ] } ================================================ FILE: ports/pthread-stubs/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/pthread-stubs" REF "libpthread-stubs-${VERSION}" SHA512 b2429828f51cc6c9bbb9879c9933ff747354574626ff8fcfbec22c41ded1e9bdf4049715485f580e72c561dfd54d48d731c1f6ae9fff229976890361e3276f2e HEAD_REF master ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/pthread-stubs.pc") file(READ "${_file}" _contents) string(REPLACE "Cflags: -pthread" "Cflags: " _contents "${_contents}") if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/pthreadVC3.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadVC3" _contents "${_contents}") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/pthreadGC3.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadGC3" _contents "${_contents}") endif() file(WRITE "${_file}" "${_contents}") if(NOT VCPKG_BUILD_TYPE) set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/pthread-stubs.pc") file(READ "${_file}" _contents) string(REPLACE "Cflags: -pthread" "Cflags: " _contents "${_contents}") if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/pthreadVC3.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadVC3" _contents "${_contents}") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/pthreadGC3.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadGC3" _contents "${_contents}") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/pthreadVC3d.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadVC3d" _contents "${_contents}") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/debug/lib/pthreadGC3d.lib") string(REPLACE "Libs: -pthread" "Libs: -lpthreadGC3d" _contents "${_contents}") endif() file(WRITE "${_file}" "${_contents}") endif() ================================================ FILE: ports/pthread-stubs/vcpkg.json ================================================ { "name": "pthread-stubs", "version": "0.5", "port-version": 1, "description": "Stub replacements for POSIX Threads functions.", "homepage": "https://gitlab.freedesktop.org/xorg/lib/pthread-stubs", "license": "X11-distribute-modifications-variant", "dependencies": [ "pthread", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/pthreadpool/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1361e94..5798f2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,8 +4,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR) PROJECT(pthreadpool C) # ---[ Options. -SET(PTHREADPOOL_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build") -SET_PROPERTY(CACHE PTHREADPOOL_LIBRARY_TYPE PROPERTY STRINGS default static shared) OPTION(PTHREADPOOL_ALLOW_DEPRECATED_API "Enable deprecated API functions" ON) SET(PTHREADPOOL_SYNC_PRIMITIVE "default" CACHE STRING "Synchronization primitive (condvar, futex, gcd, event, or default) for worker threads") SET_PROPERTY(CACHE PTHREADPOOL_SYNC_PRIMITIVE PROPERTY STRINGS default condvar futex gcd event) @@ -14,7 +12,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|AMD64|x86(_64)?)$") ELSE() OPTION(PTHREADPOOL_ENABLE_FASTPATH "Enable fast path using atomic decrement instead of atomic compare-and-swap" OFF) ENDIF() -IF("${CMAKE_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}") +IF(FALSE) OPTION(PTHREADPOOL_BUILD_TESTS "Build pthreadpool unit tests" ON) OPTION(PTHREADPOOL_BUILD_BENCHMARKS "Build pthreadpool micro-benchmarks" ON) ELSE() @@ -40,7 +38,7 @@ MACRO(PTHREADPOOL_TARGET_ENABLE_CXX11 target) ENDMACRO() # ---[ Download deps -IF(NOT DEFINED FXDIV_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading FXdiv to ${CMAKE_BINARY_DIR}/FXdiv-source (define FXDIV_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CMAKE_BINARY_DIR}/FXdiv-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -92,21 +90,13 @@ ELSE() ENDIF() ADD_LIBRARY(pthreadpool_interface INTERFACE) -TARGET_INCLUDE_DIRECTORIES(pthreadpool_interface INTERFACE include) +TARGET_INCLUDE_DIRECTORIES(pthreadpool_interface INTERFACE $ $) IF(NOT PTHREADPOOL_ALLOW_DEPRECATED_API) TARGET_COMPILE_DEFINITIONS(pthreadpool_interface INTERFACE PTHREADPOOL_NO_DEPRECATED_API=1) ENDIF() INSTALL(FILES include/pthreadpool.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -IF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "default") - ADD_LIBRARY(pthreadpool ${PTHREADPOOL_SRCS}) -ELSEIF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "shared") - ADD_LIBRARY(pthreadpool SHARED ${PTHREADPOOL_SRCS}) -ELSEIF(PTHREADPOOL_LIBRARY_TYPE STREQUAL "static") - ADD_LIBRARY(pthreadpool STATIC ${PTHREADPOOL_SRCS}) -ELSE() - MESSAGE(FATAL_ERROR "Unsupported library type ${PTHREADPOOL_LIBRARY_TYPE}") -ENDIF() +ADD_LIBRARY(pthreadpool ${PTHREADPOOL_SRCS}) IF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "condvar") TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0) @@ -155,6 +145,9 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "Linux") ENDIF() # ---[ Configure FXdiv + +find_package(unofficial-fxdiv CONFIG REQUIRED) +add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv) IF(NOT TARGET fxdiv) SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -162,12 +155,24 @@ IF(NOT TARGET fxdiv) "${FXDIV_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/FXdiv") ENDIF() -TARGET_LINK_LIBRARIES(pthreadpool PRIVATE fxdiv) +TARGET_LINK_LIBRARIES(pthreadpool PUBLIC fxdiv) + -INSTALL(TARGETS pthreadpool +INSTALL(TARGETS pthreadpool pthreadpool_interface + EXPORT unofficial-pthreadpool-config-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(EXPORT unofficial-pthreadpool-config-targets NAMESPACE unofficial:: + FILE unofficial-pthreadpool-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-${PROJECT_NAME}) # share/unofficial-pthreadpool + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-pthreadpool-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-${PROJECT_NAME}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-pthreadpool-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-${PROJECT_NAME}) + + IF(PTHREADPOOL_BUILD_TESTS) # ---[ Build google test IF(NOT TARGET gtest) diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..575b8b1 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(unofficial-fxdiv) + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-pthreadpool-config-targets.cmake" ) ================================================ FILE: ports/pthreadpool/fix-uwp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a07945c..6df83d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,8 @@ ELSE() LIST(APPEND PTHREADPOOL_SRCS src/portable-api.c src/memory.c) IF(APPLE AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd")) LIST(APPEND PTHREADPOOL_SRCS src/gcd.c) - ELSEIF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event")) + ELSEIF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|WindowsStore|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event")) + add_compile_options(-wd4146) LIST(APPEND PTHREADPOOL_SRCS src/windows.c) ELSE() LIST(APPEND PTHREADPOOL_SRCS src/pthreads.c) ================================================ FILE: ports/pthreadpool/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Maratyszcza/pthreadpool REF 560c60d342a76076f0557a3946924c6478470044 #2024-11-04 SHA512 d23e764e9a02f34210b3b9c5a66dae3b9e8211de6f78ec9b2672c19c48f364f4edb268ab77b1adf2802a3c35c6857deba81e48a658caa1a587fe8f3493a07f59 PATCHES fix-cmakelists.patch fix-uwp.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPTHREADPOOL_BUILD_TESTS=OFF -DPTHREADPOOL_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/pthreadpool/vcpkg.json ================================================ { "name": "pthreadpool", "version-date": "2024-11-04", "port-version": 2, "description": "Portable (POSIX/Windows/Emscripten) thread pool for C/C++", "homepage": "https://github.com/Maratyszcza/pthreadpool", "dependencies": [ "fxdiv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pthreads/PThreads4WConfig.cmake ================================================ #.rst: # PThreads4W config wrap for vcpkg # ------------ # # Find the PThread4W includes and library. # # Result Variables # ^^^^^^^^^^^^^^^^ # # This script defines the following variables: # # ``PThreads4W_FOUND`` # True if PThreads4W library found # # ``PThreads4W_VERSION`` # Containing the PThreads4W version tag (manually defined) # # ``PThreads4W_INCLUDE_DIR`` # Location of PThreads4W headers # # ``PThreads4W_LIBRARY`` # List of libraries to link with when using PThreads4W (no exception handling) # # ``PThreads4W_CXXEXC_LIBRARY`` # List of libraries to link with when using PThreads4W (C++ exception handling) # # ``PThreads4W_STRUCTEXC_LIBRARY`` # List of libraries to link with when using PThreads4W (struct exception handling) # # Result Targets # ^^^^^^^^^^^^^^^^ # # This script defines the following targets: # # ``PThreads4W::PThreads4W`` # Target to use PThreads4W (no exception handling) # # ``PThreads4W::PThreads4W_CXXEXC`` # Target to use PThreads4W (C++ exception handling) # # ``PThreads4W::PThreads4W_STRUCTEXC`` # Target to use PThreads4W (struct exception handling) # include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) if(NOT PThreads4W_INCLUDE_DIR) find_path(PThreads4W_INCLUDE_DIR NAMES pthread.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) endif() set(PThreads4W_MAJOR_VERSION 3) set(PThreads4W_MINOR_VERSION 0) set(PThreads4W_PATCH_VERSION 0) set(PThreads4W_VERSION "${PThreads4W_MAJOR_VERSION}.${PThreads4W_MINOR_VERSION}.${PThreads4W_PATCH_VERSION}") # Allow libraries to be set manually if(NOT PThreads4W_LIBRARY) find_library(PThreads4W_LIBRARY_RELEASE NAMES pthreadVC${PThreads4W_MAJOR_VERSION} PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(PThreads4W_LIBRARY_DEBUG NAMES pthreadVC${PThreads4W_MAJOR_VERSION}d PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(PThreads4W) endif() if(NOT PThreads4W_CXXEXC_LIBRARY) find_library(PThreads4W_CXXEXC_LIBRARY_RELEASE NAMES pthreadVCE${PThreads4W_MAJOR_VERSION} PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(PThreads4W_CXXEXC_LIBRARY_DEBUG NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}d PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(PThreads4W_CXXEXC) endif() if(NOT PThreads4W_STRUCTEXC_LIBRARY) find_library(PThreads4W_STRUCTEXC_LIBRARY_RELEASE NAMES pthreadVSE${PThreads4W_MAJOR_VERSION} PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(PThreads4W_STRUCTEXC_LIBRARY_DEBUG NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) select_library_configurations(PThreads4W_STRUCTEXC) endif() find_package_handle_standard_args(PThreads4W DEFAULT_MSG PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY PThreads4W_INCLUDE_DIR) mark_as_advanced(PThreads4W_INCLUDE_DIR PThreads4W_LIBRARY PThreads4W_CXXEXC_LIBRARY PThreads4W_STRUCTEXC_LIBRARY) set(PThreads4W_DLL_DIR ${PThreads4W_INCLUDE_DIR}) list(TRANSFORM PThreads4W_DLL_DIR APPEND "/../bin") message(STATUS "PThreads4W_DLL_DIR: ${PThreads4W_DLL_DIR}") set(PThreads4W_DEBUG_DLL_DIR ${PThreads4W_INCLUDE_DIR}) list(TRANSFORM PThreads4W_DEBUG_DLL_DIR APPEND "/../debug/bin") message(STATUS "PThreads4W_DEBUG_DLL_DIR: ${PThreads4W_DEBUG_DLL_DIR}") find_file(PThreads4W_LIBRARY_RELEASE_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) find_file(PThreads4W_LIBRARY_DEBUG_DLL NAMES pthreadVC${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DEBUG_DLL_DIR}) find_file(PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) find_file(PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL NAMES pthreadVCE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DEBUG_DLL_DIR}) find_file(PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}.dll PATHS ${PThreads4W_DLL_DIR}) find_file(PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL NAMES pthreadVSE${PThreads4W_MAJOR_VERSION}d.dll PATHS ${PThreads4W_DEBUG_DLL_DIR}) if( PThreads4W_FOUND AND NOT TARGET PThreads4W::PThreads4W_CXXEXC ) if( EXISTS "${PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL}" ) add_library( PThreads4W::PThreads4W_CXXEXC SHARED IMPORTED ) set_target_properties( PThreads4W::PThreads4W_CXXEXC PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_CXXEXC_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB "${PThreads4W_CXXEXC_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL}" ) set_property( TARGET PThreads4W::PThreads4W_CXXEXC APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W_CXXEXC PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_CXXEXC_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${PThreads4W_CXXEXC_LIBRARY_DEBUG}" ) endif() else() add_library( PThreads4W::PThreads4W_CXXEXC UNKNOWN IMPORTED ) set_target_properties( PThreads4W::PThreads4W_CXXEXC PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_CXXEXC_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_CXXEXC_LIBRARY_DEBUG}" ) set_property( TARGET PThreads4W::PThreads4W_CXXEXC APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W_CXXEXC PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_CXXEXC_LIBRARY_DEBUG}" ) endif() endif() endif() if( PThreads4W_FOUND AND NOT TARGET PThreads4W::PThreads4W_STRUCTEXC ) if( EXISTS "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL}" ) add_library( PThreads4W::PThreads4W_STRUCTEXC SHARED IMPORTED ) set_target_properties( PThreads4W::PThreads4W_STRUCTEXC PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL}" ) set_property( TARGET PThreads4W::PThreads4W_STRUCTEXC APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W_STRUCTEXC PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG}" ) endif() else() add_library( PThreads4W::PThreads4W_STRUCTEXC UNKNOWN IMPORTED ) set_target_properties( PThreads4W::PThreads4W_STRUCTEXC PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_STRUCTEXC_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG}" ) set_property( TARGET PThreads4W::PThreads4W_STRUCTEXC APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W_STRUCTEXC PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_STRUCTEXC_LIBRARY_DEBUG}" ) endif() endif() endif() if( PThreads4W_FOUND AND NOT TARGET PThreads4W::PThreads4W ) if( EXISTS "${PThreads4W_LIBRARY_RELEASE_DLL}" ) add_library( PThreads4W::PThreads4W SHARED IMPORTED ) set_target_properties( PThreads4W::PThreads4W PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG_DLL}" ) set_property( TARGET PThreads4W::PThreads4W APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() else() add_library( PThreads4W::PThreads4W UNKNOWN IMPORTED ) set_target_properties( PThreads4W::PThreads4W PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG}" ) set_property( TARGET PThreads4W::PThreads4W APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads4W::PThreads4W PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() endif() endif() ================================================ FILE: ports/pthreads/fix-arm-macro.patch ================================================ diff --git a/context.h b/context.h index 33294c1..318b689 100644 --- a/context.h +++ b/context.h @@ -62,7 +62,7 @@ #endif #if defined(_ARM_) || defined(ARM) || defined(_M_ARM) || defined(_M_ARM64) -#define PTW32_PROGCTR(Context) ((Context).Pc) +#define __PTW32_PROGCTR(Context) ((Context).Pc) #endif #if !defined (__PTW32_PROGCTR) ================================================ FILE: ports/pthreads/fix-arm64-version_rc.patch ================================================ diff --git a/version.rc b/version.rc index aa0596c..9c8231e 100644 --- a/version.rc +++ b/version.rc @@ -63,6 +63,17 @@ # define __PTW32_VERSIONINFO_NAME "pthreadVSE2.DLL\0" # define __PTW32_VERSIONINFO_DESCRIPTION "MS C SEH x86\0" # endif +# elif defined (__PTW32_ARCHARM64) +# if defined(__PTW32_CLEANUP_C) +# define __PTW32_VERSIONINFO_NAME "pthreadVC2.DLL\0" +# define __PTW32_VERSIONINFO_DESCRIPTION "MS C arm64\0" +# elif defined(__PTW32_CLEANUP_CXX) +# define __PTW32_VERSIONINFO_NAME "pthreadVCE2.DLL\0" +# define __PTW32_VERSIONINFO_DESCRIPTION "MS C++ arm64\0" +# elif defined(__PTW32_CLEANUP_SEH) +# define __PTW32_VERSIONINFO_NAME "pthreadVSE2.DLL\0" +# define __PTW32_VERSIONINFO_DESCRIPTION "MS C SEH arm64\0" +# endif # endif #elif defined(__GNUC__) # if defined(_M_X64) ================================================ FILE: ports/pthreads/fix-install.patch ================================================ diff --git a/Makefile b/Makefile index a703b9c..b7b5ea7 100644 --- a/Makefile +++ b/Makefile @@ -80,18 +80,27 @@ help: @ echo nmake clean VSE-static-debug all: +!IF DEFINED(BUILD_STATIC) +! IF DEFINED(BUILD_RELEASE) $(MAKE) /E clean VC-static $(MAKE) /E clean VCE-static $(MAKE) /E clean VSE-static +! ELSE $(MAKE) /E clean VC-static-debug $(MAKE) /E clean VCE-static-debug $(MAKE) /E clean VSE-static-debug +! ENDIF +!ELSE +! IF DEFINED(BUILD_RELEASE) $(MAKE) /E clean VC $(MAKE) /E clean VCE $(MAKE) /E clean VSE +! ELSE $(MAKE) /E clean VC-debug $(MAKE) /E clean VCE-debug $(MAKE) /E clean VSE-debug +! ENDIF +!ENDIF $(MAKE) /E clean TEST_ENV = CFLAGS="$(CFLAGS) /DNO_ERROR_DIALOGS" @@ -218,8 +227,7 @@ install: if not exist $(LIBDEST) mkdir $(LIBDEST) if not exist $(HDRDEST) mkdir $(HDRDEST) if exist pthreadV*.dll copy pthreadV*.dll $(DLLDEST) - copy pthreadV*.lib $(LIBDEST) - copy libpthreadV*.lib $(LIBDEST) + if exist pthreadV*.lib copy pthreadV*.lib $(LIBDEST) copy _ptw32.h $(HDRDEST) copy pthread.h $(HDRDEST) copy sched.h $(HDRDEST) @@ -229,8 +237,8 @@ $(DLLS): $(DLL_OBJS) $(CC) /LDd /Zi $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@ $(INLINED_STATIC_STAMPS): $(STATIC_OBJS) - if exist lib$*.lib del lib$*.lib - lib $(STATIC_OBJS) /out:lib$*.lib + if exist $*.lib del $*.lib + lib $(STATIC_OBJS) /out:$*.lib echo. >$@ $(SMALL_STATIC_STAMPS): $(STATIC_OBJS_SMALL) ================================================ FILE: ports/pthreads/fix-pthread_getname_np.patch ================================================ diff --git a/pthread_getname_np.c b/pthread_getname_np.c index 8fc32b1..7c18655 100644 --- a/pthread_getname_np.c +++ b/pthread_getname_np.c @@ -59,10 +59,18 @@ pthread_getname_np(pthread_t thr, char *name, int len) __ptw32_mcs_lock_acquire (&tp->threadLock, &threadLock); - for (s = tp->name, d = name; *s && d < &name[len - 1]; *d++ = *s++) - {} + if(tp->name) + { + for (s = tp->name, d = name; *s && d < &name[len - 1]; *d++ = *s++) + {} + + *d = '\0'; + } + else + { + *name = '\0'; + } - *d = '\0'; __ptw32_mcs_lock_release (&threadLock); return result; ================================================ FILE: ports/pthreads/fix-uwp-linkage.patch ================================================ diff --git a/implement.h b/implement.h index 1579376..3a7d29b 100644 --- a/implement.h +++ b/implement.h @@ -36,6 +36,12 @@ #if !defined(_IMPLEMENT_H) #define _IMPLEMENT_H +#if 1 // The condition should be `defined(__cplusplus_winrt)` when compile option is provided correctly. +// porvide 2 static libs to resolve link error. 'kernel32' and 'windowsapp' +#pragma comment(lib, "kernel32") +#pragma comment(lib, "WindowsApp") +#endif + #if !defined (__PTW32_CONFIG_H) # error "config.h was not #included" #endif diff --git a/pthread_cancel.c b/pthread_cancel.c index fddf216..bf16870 100644 --- a/pthread_cancel.c +++ b/pthread_cancel.c @@ -64,12 +64,12 @@ __ptw32_cancel_callback (ULONG_PTR unused) DWORD __ptw32_Registercancellation (PAPCFUNC unused1, HANDLE threadH, DWORD unused2) { - CONTEXT context; + /*CONTEXT context; context.ContextFlags = CONTEXT_CONTROL; GetThreadContext (threadH, &context); __PTW32_PROGCTR (context) = (DWORD_PTR) __ptw32_cancel_self; - SetThreadContext (threadH, &context); + SetThreadContext (threadH, &context);*/ return 0; } ================================================ FILE: ports/pthreads/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() if(VCPKG_TARGET_IS_UWP) list(APPEND PATCH_FILES fix-uwp-linkage.patch) # Inject linker option using the `LINK` environment variable # https://docs.microsoft.com/en-us/cpp/build/reference/linker-options # https://docs.microsoft.com/en-us/cpp/build/reference/linking#link-environment-variables set(ENV{LINK} "/APPCONTAINER") endif() if (VCPKG_CRT_LINKAGE STREQUAL dynamic) list(APPEND PATCH_FILES use-md.patch) else() list(APPEND PATCH_FILES use-mt.patch) endif() vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO pthreads4w FILENAME "pthreads4w-code-v${VERSION}.zip" SHA512 49e541b66c26ddaf812edb07b61d0553e2a5816ab002edc53a38a897db8ada6d0a096c98a9af73a8f40c94283df53094f76b429b09ac49862465d8697ed20013 PATCHES fix-arm-macro.patch fix-arm64-version_rc.patch # https://sourceforge.net/p/pthreads4w/code/merge-requests/6/ fix-pthread_getname_np.patch fix-install.patch whitespace_in_path.patch ${PATCH_FILES} ) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}/debug" DESTROOT_DEBUG) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" DESTROOT_RELEASE) vcpkg_list(SET OPTIONS_DEBUG "DESTROOT=${DESTROOT_DEBUG}") vcpkg_list(SET OPTIONS_RELEASE "DESTROOT=${DESTROOT_RELEASE}" "BUILD_RELEASE=1") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND OPTIONS_DEBUG "BUILD_STATIC=1") vcpkg_list(APPEND OPTIONS_RELEASE "BUILD_STATIC=1") endif() vcpkg_install_nmake( CL_LANGUAGE C SOURCE_PATH "${SOURCE_PATH}" PROJECT_NAME Makefile OPTIONS_DEBUG ${OPTIONS_DEBUG} OPTIONS_RELEASE ${OPTIONS_RELEASE} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/PThreads4WConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/PThreads4W") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper-pthread.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/pthread" RENAME vcpkg-cmake-wrapper.cmake) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper-pthreads.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/pthreads" RENAME vcpkg-cmake-wrapper.cmake) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper-pthreads-windows.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/PThreads_windows" RENAME vcpkg-cmake-wrapper.cmake) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS enabled) ================================================ FILE: ports/pthreads/usage ================================================ The package pthreads provides CMake targets: find_package(PThreads4W REQUIRED) target_link_libraries(main PRIVATE PThreads4W::PThreads4W) ================================================ FILE: ports/pthreads/use-md.patch ================================================ diff --git a/Makefile b/Makefile index a703b9c..ff81e7c 100644 --- a/Makefile +++ b/Makefile @@ -173,22 +173,22 @@ VC-debug: # @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCFLAGSD) /D__PTW32_STATIC_LIB" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).small_static_stamp VCE-static: - @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VCEFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VCEFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER).inlined_static_stamp VCE-static-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCEFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER_DEBUG).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VCEFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER_DEBUG).inlined_static_stamp VSE-static: - @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VSEFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VSEFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER).inlined_static_stamp VSE-static-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VSEFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER_DEBUG).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VSEFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER_DEBUG).inlined_static_stamp VC-static: - @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VCFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VCFLAGS) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).inlined_static_stamp VC-static-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).inlined_static_stamp + @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VCFLAGSD) /D__PTW32_STATIC_LIB /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).inlined_static_stamp realclean: clean ================================================ FILE: ports/pthreads/use-mt.patch ================================================ diff --git a/Makefile b/Makefile index a703b9c..502275f 100644 --- a/Makefile +++ b/Makefile @@ -134,22 +134,22 @@ all-tests-mt: @ echo $@ completed successfully. VCE: - @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VCEFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER).dll + @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VCEFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER).dll VCE-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VCEFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER_DEBUG).dll + @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCEFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_CXX pthreadVCE$(PTW32_VER_DEBUG).dll VSE: - @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VSEFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER).dll + @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VSEFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER).dll VSE-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VSEFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER_DEBUG).dll + @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VSEFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_SEH pthreadVSE$(PTW32_VER_DEBUG).dll VC: - @ $(MAKE) /E /nologo XCFLAGS="/MD" EHFLAGS="$(VCFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).dll + @ $(MAKE) /E /nologo XCFLAGS="/MT" EHFLAGS="$(VCFLAGS) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER).dll VC-debug: - @ $(MAKE) /E /nologo XCFLAGS="/MDd" EHFLAGS="$(VCFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).dll + @ $(MAKE) /E /nologo XCFLAGS="/MTd" EHFLAGS="$(VCFLAGSD) /D__PTW32_BUILD_INLINED" CLEANUP=__PTW32_CLEANUP_C pthreadVC$(PTW32_VER_DEBUG).dll # # Static builds ================================================ FILE: ports/pthreads/vcpkg-cmake-wrapper-pthread.cmake ================================================ _find_package(PThreads4W) set(PTHREAD_INCLUDE_DIR "${PThreads4W_INCLUDE_DIR}") set(PTHREAD_LIBRARY "${PThreads4W_LIBRARY}") set(PTHREAD_LIBRARIES "${PThreads4W_LIBRARY}") set(PTHREAD_VERSION "${PThreads4W_VERSION}") set(LIBPTHREAD "${PThreads4W_LIBRARY}") set(LIBPTHREADS "${PThreads4W_LIBRARY}") if(PThreads4W_FOUND) set(PTHREAD_FOUND TRUE) set(LIBPTHREAD_FOUND TRUE) set(LIBPTHREADS_FOUND TRUE) endif() ================================================ FILE: ports/pthreads/vcpkg-cmake-wrapper-pthreads-windows.cmake ================================================ _find_package(PThreads4W) set(PThreads_windows_INCLUDE_DIR "${PThreads4W_INCLUDE_DIR}") set(PThreads_windows_LIBRARY "${PThreads4W_LIBRARY}") set(PThreads_windows_LIBRARIES "${PThreads4W_LIBRARY}") set(PThreads_windows_VERSION "${PThreads4W_VERSION}") if(PThreads4W_FOUND) set(PThreads_windows_FOUND TRUE) if(NOT TARGET PThreads_windows::PThreads_windows) if( EXISTS "${PThreads4W_LIBRARY_RELEASE_DLL}" ) add_library( PThreads_windows::PThreads_windows SHARED IMPORTED ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG_DLL}" ) set_property( TARGET PThreads_windows::PThreads_windows APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() else() add_library( PThreads_windows::PThreads_windows UNKNOWN IMPORTED ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG}" ) set_property( TARGET PThreads_windows::PThreads_windows APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() endif() endif() endif() ================================================ FILE: ports/pthreads/vcpkg-cmake-wrapper-pthreads.cmake ================================================ _find_package(PThreads4W) set(pthreads_INCLUDE_DIR "${PThreads4W_INCLUDE_DIR}") set(pthreads_LIBRARY "${PThreads4W_LIBRARY}") set(pthreads_LIBRARIES "${PThreads4W_LIBRARY}") set(pthreads_VERSION "${PThreads4W_VERSION}") if(PThreads4W_FOUND) set(pthreads_FOUND TRUE) if(NOT TARGET PThreads_windows::PThreads_windows) if( EXISTS "${PThreads4W_LIBRARY_RELEASE_DLL}" ) add_library( PThreads_windows::PThreads_windows SHARED IMPORTED ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE_DLL}" IMPORTED_IMPLIB "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG_DLL}" ) set_property( TARGET PThreads_windows::PThreads_windows APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG_DLL}" IMPORTED_IMPLIB_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() else() add_library( PThreads_windows::PThreads_windows UNKNOWN IMPORTED ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_RELEASE "${PThreads4W_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${PThreads4W_INCLUDE_DIR}" IMPORTED_CONFIGURATIONS Release IMPORTED_LINK_INTERFACE_LANGUAGES "C" ) if( EXISTS "${PThreads4W_LIBRARY_DEBUG}" ) set_property( TARGET PThreads_windows::PThreads_windows APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( PThreads_windows::PThreads_windows PROPERTIES IMPORTED_LOCATION_DEBUG "${PThreads4W_LIBRARY_DEBUG}" ) endif() endif() endif() endif() ================================================ FILE: ports/pthreads/vcpkg.json ================================================ { "name": "pthreads", "version": "3.0.0", "port-version": 14, "description": "Meta-package that provides PThreads4W on Windows, or assumes presence of system pthreads on POSIX systems.", "homepage": "https://sourceforge.net/projects/pthreads4w/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pthreads/whitespace_in_path.patch ================================================ --- a/Makefile Sat Apr 29 09:21:07 2023 +++ b/Makefile Sat Apr 29 09:19:07 2023 @@ -223,15 +223,15 @@ # Very basic install. It assumes "realclean" was done just prior to build target. install: - if not exist $(DLLDEST) mkdir $(DLLDEST) - if not exist $(LIBDEST) mkdir $(LIBDEST) - if not exist $(HDRDEST) mkdir $(HDRDEST) - if exist pthreadV*.dll copy pthreadV*.dll $(DLLDEST) - if exist pthreadV*.lib copy pthreadV*.lib $(LIBDEST) - copy _ptw32.h $(HDRDEST) - copy pthread.h $(HDRDEST) - copy sched.h $(HDRDEST) - copy semaphore.h $(HDRDEST) + if not exist "$(DLLDEST)" mkdir "$(DLLDEST)" + if not exist "$(LIBDEST)" mkdir "$(LIBDEST)" + if not exist "$(HDRDEST)" mkdir "$(HDRDEST)" + if exist pthreadV*.dll copy pthreadV*.dll "$(DLLDEST)" + if exist pthreadV*.lib copy pthreadV*.lib "$(LIBDEST)" + copy _ptw32.h "$(HDRDEST)" + copy pthread.h "$(HDRDEST)" + copy sched.h "$(HDRDEST)" + copy semaphore.h "$(HDRDEST)" $(DLLS): $(DLL_OBJS) $(CC) /LDd /Zi $(DLL_OBJS) /link /implib:$*.lib $(XLIBS) /out:$@ ================================================ FILE: ports/ptyqt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kafeg/ptyqt REF "${VERSION}" SHA512 fe24dcbc3f7f94af2af5b47e78090ef1557626921012e9b5ec44334ea10873374df17e43c76b34e1693f26f40b0d20020c11bc1369a565ccb6f49bfce054c7b9 HEAD_REF master ) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -lrt") set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -lrt") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") file(READ "${SOURCE_PATH}/core/CMakeLists.txt" filedata) string(REPLACE "-static-libstdc++" "-static-libstdc++ -lglib-2.0" filedata "${filedata}") file(WRITE "${SOURCE_PATH}/core/CMakeLists.txt" "${filedata}") else() file(READ "${SOURCE_PATH}/core/CMakeLists.txt" filedata) string(REPLACE "-static-libstdc++ -lglib-2.0" "-static-libstdc++" filedata "${filedata}") file(WRITE "${SOURCE_PATH}/core/CMakeLists.txt" "${filedata}") endif() endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(BUILD_TYPE SHARED) else() set(BUILD_TYPE STATIC) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DNO_BUILD_TESTS=1 -DNO_BUILD_EXAMPLES=1 -DBUILD_TYPE=${BUILD_TYPE} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ptyqt/vcpkg.json ================================================ { "name": "ptyqt", "version": "0.7.1", "description": "PtyQt - C++ library for work with PseudoTerminals", "supports": "!uwp", "dependencies": [ "qt5-base", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "winpty", "platform": "windows" } ] } ================================================ FILE: ports/pugixml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeux/pugixml REF "v${VERSION}" SHA512 b8a70f1f230b0902b719346ce0a551eafe534f81262280dceeb92d5ad90ea4e635173e08e225bf66eb5f4724ac4568bd40dc923f184571f02502dac49bc0b7f5 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES compact PUGIXML_COMPACT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPUGIXML_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/pugixml/vcpkg.json ================================================ { "name": "pugixml", "version": "1.15", "port-version": 1, "description": "Light-weight, simple and fast XML parser for C++ with XPath support", "homepage": "https://github.com/zeux/pugixml", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "compact": { "description": "Enable compact memory mode (reduces memory consumption at the cost of performance)" } } } ================================================ FILE: ports/pulsar-client-cpp/disable-warnings.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b004653..4b7abd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,6 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") # ?? Don't have this to test with else() # GCC or Clang are mostly compatible: # Turn on warnings and enable warnings-as-errors: - add_compile_options(-Wall -Wformat-security -Wvla -Werror) # Turn off certain warnings that are too much pain for too little gain: add_compile_options(-Wno-sign-compare -Wno-deprecated-declarations -Wno-error=cpp) if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR APPLE) ================================================ FILE: ports/pulsar-client-cpp/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/pulsar/pulsar-client-cpp-${VERSION}/apache-pulsar-client-cpp-${VERSION}.tar.gz" FILENAME "apache-pulsar-client-cpp-${VERSION}.tar.gz" SHA512 77f9172e840e921d8366002cd1af790545ffd8a66b62a7c3fa71f3ff24f7d43f021cde4aff60d5da9ea5dc7d12f6623bfbcd4ed406f18433ebf0b24c99e871f2 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES disable-warnings.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINTEGRATE_VCPKG=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TOOLS=OFF -DBUILD_DYNAMIC_LIB=${BUILD_DYNAMIC_LIB} -DBUILD_STATIC_LIB=${BUILD_STATIC_LIB} ) vcpkg_cmake_install() if (BUILD_STATIC_LIB) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pulsar/defines.h" "#ifdef PULSAR_STATIC" "#if 1") endif () file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-pulsar-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-pulsar/unofficial-pulsar-config.cmake" @ONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/pulsar-client-cpp/unofficial-pulsar-config.cmake ================================================ if (NOT TARGET unofficial::pulsar::pulsar) get_filename_component(VCPKG_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(VCPKG_IMPORT_PREFIX "${VCPKG_IMPORT_PREFIX}" PATH) get_filename_component(VCPKG_IMPORT_PREFIX "${VCPKG_IMPORT_PREFIX}" PATH) find_path(_pulsar_include_dir NAMES "pulsar/Client.h" PATHS "${VCPKG_IMPORT_PREFIX}/include" NO_DEFAULT_PATH) find_library(_pulsar_library_release NAMES pulsar pulsar-static PATHS "${VCPKG_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) find_library(_pulsar_library_debug NAMES pulsar pulsar-static PATHS "${VCPKG_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH) message(STATUS "Found _pulsar_library_release: ${_pulsar_library_release}") message(STATUS "Found _pulsar_library_debug: ${_pulsar_library_debug}") if (NOT _pulsar_include_dir OR NOT _pulsar_library_release) message(FATAL_ERROR "Broken installation of vcpkg port pulsar-client-cpp") endif () if (MSVC AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "dynamic") find_file(_pulsar_release_dll NAMES "pulsar.dll" PATHS "${VCPKG_IMPORT_PREFIX}/bin" NO_DEFAULT_PATH) find_file(_pulsar_debug_dll NAMES "pulsar.dll" PATHS "${VCPKG_IMPORT_PREFIX}/debug/bin" NO_DEFAULT_PATH) if (NOT _pulsar_release_dll) message(FATAL_ERROR "No pulsar.dll found") endif () message(STATUS "Found _pulsar_release_dll: ${_pulsar_release_dll}") message(STATUS "Found _pulsar_debug_dll: ${_pulsar_debug_dll}") endif () # When CMAKE_BUILD_TYPE is not specified, debug libraries will be found for dependencies except ZLIB. # So set it with Debug here to link debug ZLIB library by default. if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif () include(CMakeFindDependencyMacro) find_dependency(OpenSSL) find_dependency(ZLIB) find_dependency(protobuf CONFIG) find_dependency(CURL CONFIG) find_dependency(zstd CONFIG) find_dependency(Snappy CONFIG) if (MSVC) find_dependency(dlfcn-win32 CONFIG) endif () if (_pulsar_release_dll) add_library(unofficial::pulsar::pulsar SHARED IMPORTED) set_target_properties(unofficial::pulsar::pulsar PROPERTIES IMPORTED_CONFIGURATIONS "RELEASE" IMPORTED_IMPLIB_RELEASE "${_pulsar_library_release}" IMPORTED_LOCATION_RELEASE "${_pulsar_release_dll}") if (_pulsar_debug_dll) set_target_properties(unofficial::pulsar::pulsar PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_IMPLIB_DEBUG "${_pulsar_library_debug}" IMPORTED_LOCATION_DEBUG "${_pulsar_debug_dll}") unset(_pulsar_debug_dll CACHE) endif () unset(_pulsar_release_dll CACHE) else () add_library(unofficial::pulsar::pulsar UNKNOWN IMPORTED) set_target_properties(unofficial::pulsar::pulsar PROPERTIES IMPORTED_CONFIGURATIONS "RELEASE" IMPORTED_LOCATION_RELEASE "${_pulsar_library_release}") if (_pulsar_library_debug) set_target_properties(unofficial::pulsar::pulsar PROPERTIES IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_DEBUG "${_pulsar_library_debug}") unset(_pulsar_library_debug CACHE) endif () endif () set_target_properties(unofficial::pulsar::pulsar PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_pulsar_include_dir}") target_link_libraries(unofficial::pulsar::pulsar INTERFACE OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB protobuf::libprotobuf CURL::libcurl $,zstd::libzstd_shared,zstd::libzstd_static> Snappy::snappy ) if (MSVC) target_link_libraries(unofficial::pulsar::pulsar INTERFACE dlfcn-win32::dl) endif () unset(_pulsar_library_release CACHE) unset(_pulsar_include_dir CACHE) endif () ================================================ FILE: ports/pulsar-client-cpp/usage ================================================ pulsar-client-cpp provides CMake targets: find_package(unofficial-pulsar CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::pulsar::pulsar) ================================================ FILE: ports/pulsar-client-cpp/vcpkg.json ================================================ { "name": "pulsar-client-cpp", "version": "4.0.0", "port-version": 1, "description": "The Apache Pulsar C++ library", "homepage": "https://github.com/apache/pulsar-client-cpp", "license": "Apache-2.0", "supports": "!((arm | x86) & windows) & !android", "dependencies": [ "asio", "boost-accumulators", "boost-format", "boost-property-tree", { "name": "curl", "default-features": false, "features": [ "openssl" ] }, { "name": "dlfcn-win32", "platform": "windows" }, "openssl", { "name": "protobuf", "version>=": "3.21.12" }, "snappy", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/pulseaudio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pulseaudio/pulseaudio REF "v${VERSION}" SHA512 84b5218dca3a6f793eec5427606a09cabcf108a2aad8316c15422c130d76d1ed6de14e93549c6d952e4f33bcd1e7621d30ebaa145986a5e6fc890e0655c00e07 HEAD_REF master ) file(WRITE "${SOURCE_PATH}/.tarball-version" "${VERSION}") file(REMOVE "${SOURCE_PATH}/git-version-gen") vcpkg_replace_string ("${SOURCE_PATH}/meson.build" "run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version'), check : false).stdout().strip()" "'${VERSION}'") set(opts "") if(VCPKG_TARGET_IS_LINUX) list(APPEND opts -Dalsa=enabled -Doss-output=enabled ) else() list(APPEND opts -Dalsa=disabled -Doss-output=disabled ) endif() if("gstreamer" IN_LIST FEATURES) list(APPEND opts -Dgstreamer=enabled) else() list(APPEND opts -Dgstreamer=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${opts} -Ddaemon=false -Dclient=true -Ddoxygen=false -Dgcov=false -Dman=false -Dtests=false -Dbashcompletiondir=no -Dzshcompletiondir=no -Dasyncns=disabled # requires port? -Davahi=disabled -Dbluez5=disabled -Dconsolekit=disabled -Ddbus=enabled -Delogind=disabled -Dfftw=enabled -Dglib=enabled -Dgsettings=disabled -Dgtk=disabled -Dhal-compat=false -Dipv6=true -Djack=enabled # jack2? -Dlirc=enabled # does this need a port? -Dopenssl=enabled -Dorc=disabled # not port orc -Dsoxr=enabled -Dspeex=enabled -Dsystemd=disabled -Dtcpwrap=disabled -Dudev=disabled # port ? -Dvalgrind=disabled -Dx11=disabled -Dadrian-aec=false -Dwebrtc-aec=disabled ) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.h" "${CURRENT_PACKAGES_DIR}" "~~invalid~~") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.h" "${SOURCE_PATH}" "~~invalid~~") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.h" "${CURRENT_PACKAGES_DIR}/debug" "~~invalid~~") vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.h" "${SOURCE_PATH}" "~~invalid~~") endif() vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/PulseAudio") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/bin/padsp" "${CURRENT_PACKAGES_DIR}" [[$(dirname "$0")/../..]]) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/etc/pulse/client.conf" "${CURRENT_PACKAGES_DIR}" "") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/etc/pulse/client.conf" "${CURRENT_PACKAGES_DIR}" "") endif() vcpkg_copy_tools(TOOL_NAMES pacat pactl padsp pa-info pamon AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pulseaudio/vcpkg.json ================================================ { "name": "pulseaudio", "version": "17.0", "port-version": 3, "description": "PulseAudio is a sound server, originally created to overcome the limitations of the Enlightened Sound Daemon (EsounD)", "homepage": "https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/", "license": null, "supports": "!android & !osx & !windows", "dependencies": [ { "name": "alsa", "platform": "linux" }, { "name": "dbus", "default-features": false }, "fftw3", { "name": "glib", "default-features": false }, "jack2", "libatomic-ops", "libiconv", { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] }, { "name": "openssl", "default-features": false }, "soxr", "speex", { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "gstreamer": { "description": [ "Use GStreamer media-related functionality.", "This feauture may cause dependency cycles with other libs used by gstreamer." ], "dependencies": [ { "name": "gstreamer", "default-features": false } ] } } } ================================================ FILE: ports/pulzed-mini/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pulzed/mINI REF ${VERSION} SHA512 d78ea8f57efe2cfa5c6cfa3b98681bc7f3fdd64b8b444b0b5a68a53888f5af54344ebfa73bf98f93690ca7f740e9d7568b9bee9aa286579c9280185d2874d5ee HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/src/mini/ini.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/mini") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pulzed-mini/vcpkg.json ================================================ { "name": "pulzed-mini", "version": "0.9.18", "description": "INI file reader and writer", "homepage": "https://github.com/pulzed/mINI", "license": "MIT" } ================================================ FILE: ports/pxlib/add_cmake_config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b2af5c..c112347 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,8 @@ project(pxlib) option(ENABLE_GSF "Build with gsf support" OFF) +include(GNUInstallDirs) + if(CMAKE_COMPILER_IS_GNUCC) add_definitions( -DHAVE_CONFIG_H @@ -101,7 +103,6 @@ set(SOURCES ) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) -add_definitions(-DPXLIB_EXPORTS) # Versioning set(PXLIB_MAJOR_VERSION "0") @@ -135,7 +136,16 @@ if(WIN32) configure_file(${CMAKE_SOURCE_DIR}/pxlib.rc.in ${CMAKE_BINARY_DIR}/pxlib.rc) endif() -add_library(pxlib SHARED ${SOURCES}) +add_library(pxlib ${SOURCES}) + +if(WIN32 AND BUILD_SHARED_LIBS) + target_compile_definitions(pxlib + PRIVATE + $ + PUBLIC + $ + ) +endif() # Add Windows resource file to the library if(WIN32) @@ -144,10 +154,41 @@ endif() target_include_directories(pxlib PRIVATE ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR} - PUBLIC ${CMAKE_BINARY_DIR}/include + PUBLIC + $ + $ ) # Link iconv library if needed if(ICONV_LIBRARIES) target_link_libraries(pxlib PRIVATE ${ICONV_LIBRARIES}) -endif() \ No newline at end of file +endif() + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-pxlib-version.cmake" + VERSION ${PXLIB_DOTTED_VERSION} + COMPATIBILITY SameMajorVersion +) +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/unofficial-pxlib-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-pxlib-config.cmake" + INSTALL_DESTINATION share/unofficial-pxlib +) +install(TARGETS pxlib + EXPORT PxLibTargets + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" +) +install(EXPORT PxLibTargets + FILE unofficial-pxlib-targets.cmake + NAMESPACE unofficial::pxlib:: + DESTINATION share/unofficial-pxlib +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-pxlib-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-pxlib-version.cmake" + DESTINATION share/unofficial-pxlib +) +install(FILES ${CMAKE_BINARY_DIR}/include/paradox.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) \ No newline at end of file diff --git a/cmake/modules/unofficial-pxlib-config.cmake.in b/cmake/modules/unofficial-pxlib-config.cmake.in new file mode 100644 index 0000000..1966348 --- /dev/null +++ b/cmake/modules/unofficial-pxlib-config.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include(${CMAKE_CURRENT_LIST_DIR}/unofficial-pxlib-targets.cmake) + +check_required_components(unofficial-pxlib) \ No newline at end of file ================================================ FILE: ports/pxlib/add_extern_c.patch ================================================ diff --git a/include/paradox.h.in b/include/paradox.h.in index 3e63fa3..ec2237b 100644 --- a/include/paradox.h.in +++ b/include/paradox.h.in @@ -1,6 +1,11 @@ #ifndef __PARADOX_H__ #define __PARADOX_H__ +#ifdef __cplusplus +extern "C" +{ +#endif + #define PX_USE_RECODE @PX_HAVE_RECODE@ #define PX_USE_ICONV @PX_HAVE_ICONV@ @@ -557,6 +562,10 @@ PX_date2string(pxdoc_t *pxdoc, long value, const char *format); PXLIB_API char * PXLIB_CALL PX_strdup(pxdoc_t *pxdoc, const char *str); +#ifdef __cplusplus +} +#endif + #endif /* ================================================ FILE: ports/pxlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO steinm/pxlib REF cd65ac2255a02612a9b2c25bf4f17684ab391d38 SHA512 c113cf00b876ce4ec28d97b11fb4ace16a6798756fbcb398d0f5a54064cbe03834610925890463356d9ae16514717b4637fa2a87a8f2504ed13703ecd4ce64da HEAD_REF master PATCHES add_cmake_config.patch add_extern_c.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_GSF=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-pxlib) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/pxlib/vcpkg.json ================================================ { "name": "pxlib", "version-date": "2025-12-16", "description": "Library to read and write Paradox files", "homepage": "https://github.com/steinm/pxlib", "license": "GPL-2.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pybind11/android.diff ================================================ diff --git a/tools/pybind11NewTools.cmake b/tools/pybind11NewTools.cmake index e881ca7..c012e2d 100644 --- a/tools/pybind11NewTools.cmake +++ b/tools/pybind11NewTools.cmake @@ -248,10 +248,7 @@ if(TARGET ${_Python}::Module) # files. get_target_property(module_target_type ${_Python}::Module TYPE) if(ANDROID AND module_target_type STREQUAL INTERFACE_LIBRARY) - set_property( - TARGET ${_Python}::Module - APPEND - PROPERTY INTERFACE_LINK_LIBRARIES "${${_Python}_LIBRARIES}") + target_link_libraries(${_Python}::Module INTERFACE ${${_Python}_LIBRARIES}) endif() set_property( ================================================ FILE: ports/pybind11/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pybind/pybind11 REF "v${VERSION}" SHA512 c17e6d6a78c38e760864b390ac2aa7df6a94ca53acb2e8be71f0d63d611b738fa20a16946c98a93fbfcad56cb0346ebf247bbe41c6f5171c6ce68397b1e5c4db HEAD_REF master PATCHES android.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DPYBIND11_TEST=OFF # Disable all Python searching, Python required only for tests -DPYBIND11_NOPYTHON=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/pybind11") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pybind11/usage ================================================ pybind11 provides CMake integration: # Easy set(PYBIND11_FINDPYTHON ON) find_package(pybind11 CONFIG REQUIRED) pybind11_add_module(MyModule1 src1.cpp) # Advanced find_package(Python COMPONENTS Interpreter Development) find_package(pybind11 CONFIG REQUIRED) Python_add_library(MyModule2 src2.cpp) target_link_libraries(MyModule2 PRIVATE pybind11::headers) ================================================ FILE: ports/pybind11/vcpkg.json ================================================ { "name": "pybind11", "version": "3.0.1", "description": "pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, mainly to create Python bindings of existing C++ code", "homepage": "https://github.com/pybind/pybind11", "documentation": "https://pybind11.readthedocs.io/", "license": "BSD-3-Clause", "dependencies": [ { "name": "python3", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/pystring/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(pystring CXX) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() add_library(pystring pystring.cpp) target_include_directories( pystring PUBLIC $ $ ) include(GNUInstallDirs) install( TARGETS pystring EXPORT pystring-config ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES pystring.h DESTINATION include/pystring) endif() install( EXPORT pystring-config NAMESPACE pystring:: DESTINATION share/pystring ) ================================================ FILE: ports/pystring/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO imageworks/pystring REF v${VERSION} SHA512 9c0460fea67885492f9b0d29a9ba312d960fd5e43577cdcfd47faf04397ff4b7e456ed68f1948b923d2f63f9922d576b93e4ca1a27376bcb6d29c683828acb01 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/pystring/vcpkg.json ================================================ { "name": "pystring", "version": "1.1.4", "description": "Pystring is a collection of C++ functions which match the interface and behavior of python's string class methods using std::string", "homepage": "https://github.com/imageworks/pystring", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/python2/001-build-msvc.patch ================================================ diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 86a85c1..65a60b5 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -193,7 +193,7 @@ class build_ext (Command): # Append the source distribution include and library directories, # this allows distutils on windows to work in the source tree self.include_dirs.append(os.path.join(sys.exec_prefix, 'PC')) - if MSVC_VERSION == 9: + if MSVC_VERSION >= 9: # Use the .lib files for the correct architecture if self.plat_name == 'win32': suffix = '' diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py index 33d3e51..9fe6417 100644 --- a/Lib/distutils/msvc9compiler.py +++ b/Lib/distutils/msvc9compiler.py @@ -662,11 +662,12 @@ class MSVCCompiler(CCompiler) : if mfinfo is not None: mffilename, mfid = mfinfo out_arg = '-outputresource:%s;%s' % (output_filename, mfid) - try: - self.spawn(['mt.exe', '-nologo', '-manifest', - mffilename, out_arg]) - except DistutilsExecError, msg: - raise LinkError(msg) + if self.__version < 10: + try: + self.spawn(['mt.exe', '-nologo', '-manifest', + mffilename, out_arg]) + except DistutilsExecError, msg: + raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) diff --git a/PC/dl_nt.c b/PC/dl_nt.c index 3e58bac..cad9de5 100644 --- a/PC/dl_nt.c +++ b/PC/dl_nt.c @@ -18,6 +18,7 @@ char dllVersionBuffer[16] = ""; // a private buffer HMODULE PyWin_DLLhModule = NULL; const char *PyWin_DLLVersionString = dllVersionBuffer; +#if HAVE_SXS // Windows "Activation Context" work: // Our .pyd extension modules are generally built without a manifest (ie, // those included with Python and those built with a default distutils. @@ -29,6 +30,8 @@ const char *PyWin_DLLVersionString = dllVersionBuffer; // As an added complication, this magic only works on XP or later - we simply // use the existence (or not) of the relevant function pointers from kernel32. // See bug 4566 (http://python.org/sf/4566) for more details. +// In Visual Studio 2010, side by side assemblies are no longer used by +// default. typedef BOOL (WINAPI * PFN_GETCURRENTACTCTX)(HANDLE *); typedef BOOL (WINAPI * PFN_ACTIVATEACTCTX)(HANDLE, ULONG_PTR *); @@ -75,6 +78,7 @@ void _Py_DeactivateActCtx(ULONG_PTR cookie) if (!(*pfnDeactivateActCtx)(0, cookie)) OutputDebugString("Python failed to de-activate the activation context\n"); } +#endif /* HAVE_SXS */ BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, @@ -87,6 +91,7 @@ BOOL WINAPI DllMain (HANDLE hInst, // 1000 is a magic number I picked out of the air. Could do with a #define, I spose... LoadString(hInst, 1000, dllVersionBuffer, sizeof(dllVersionBuffer)); +#if HAVE_SXS // and capture our activation context for use when loading extensions. _LoadActCtxPointers(); if (pfnGetCurrentActCtx && pfnAddRefActCtx) @@ -98,12 +103,15 @@ BOOL WINAPI DllMain (HANDLE hInst, "activation context\n"); return FALSE; } +#endif break; case DLL_PROCESS_DETACH: +#if HAVE_SXS if (pfnReleaseActCtx) (*pfnReleaseActCtx)(PyWin_DLLhActivationContext); +#endif break; } return TRUE; } diff --git a/PC/msvcrtmodule.c b/PC/msvcrtmodule.c index 44c82e4..091957e 100644 --- a/PC/msvcrtmodule.c +++ b/PC/msvcrtmodule.c @@ -25,6 +25,8 @@ #ifdef _MSC_VER #if _MSC_VER >= 1500 && _MSC_VER < 1600 #include +#elif _MSC_VER >= 1600 +#include #endif #endif @@ -398,7 +400,7 @@ PyMODINIT_FUNC initmsvcrt(void) { int st; - PyObject *d; + PyObject *d, *version; PyObject *m = Py_InitModule("msvcrt", msvcrt_functions); if (m == NULL) return; @@ -412,6 +414,7 @@ initmsvcrt(void) insertint(d, "LK_UNLCK", _LK_UNLCK); /* constants for the crt versions */ + (void)st; #ifdef _VC_ASSEMBLY_PUBLICKEYTOKEN st = PyModule_AddStringConstant(m, "VC_ASSEMBLY_PUBLICKEYTOKEN", _VC_ASSEMBLY_PUBLICKEYTOKEN); @@ -427,4 +430,13 @@ initmsvcrt(void) __LIBRARIES_ASSEMBLY_NAME_PREFIX); if (st < 0)return; #endif +/* constants for the 2010 crt versions */ +#if defined(_VC_CRT_MAJOR_VERSION) && defined (_VC_CRT_MINOR_VERSION) && defined(_VC_CRT_BUILD_VERSION) && defined(_VC_CRT_RBUILD_VERSION) + version = PyUnicode_FromFormat("%d.%d.%d.%d", _VC_CRT_MAJOR_VERSION, + _VC_CRT_MINOR_VERSION, + _VC_CRT_BUILD_VERSION, + _VC_CRT_RBUILD_VERSION); + st = PyModule_AddObject(m, "CRT_ASSEMBLY_VERSION", version); + if (st < 0) return NULL; +#endif } diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 5fa6398..0cbd236 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -226,14 +226,19 @@ typedef int pid_t; #define Py_IS_FINITE(X) _finite(X) #define copysign _copysign -#endif /* _MSC_VER */ +/* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/ +#if _MSC_VER >= 1400 && _MSC_VER < 1600 +#define HAVE_SXS 1 +#endif /* define some ANSI types that are not defined in earlier Win headers */ -#if defined(_MSC_VER) && _MSC_VER >= 1200 +#if _MSC_VER >= 1200 /* This file only exists in VC 6.0 or higher */ #include #endif +#endif /* _MSC_VER */ + /* ------------------------------------------------------------------------*/ /* The Borland compiler defines __BORLANDC__ */ /* XXX These defines are likely incomplete, but should be easy to fix. */ diff --git a/Python/dynload_win.c b/Python/dynload_win.c index 4e5555e..8626642 100644 --- a/Python/dynload_win.c +++ b/Python/dynload_win.c @@ -12,8 +12,10 @@ #include // "activation context" magic - see dl_nt.c... +#if HAVE_SXS extern ULONG_PTR _Py_ActivateActCtx(); void _Py_DeactivateActCtx(ULONG_PTR cookie); +#endif const struct filedescr _PyImport_DynLoadFiletab[] = { #ifdef _DEBUG @@ -176,7 +178,9 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, char pathbuf[260]; LPTSTR dummy; unsigned int old_mode; +#if HAVE_SXS ULONG_PTR cookie = 0; +#endif /* We use LoadLibraryEx so Windows looks for dependent DLLs in directory of pathname first. However, Windows95 can sometimes not work correctly unless the absolute @@ -190,11 +194,15 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, sizeof(pathbuf), pathbuf, &dummy)) { +#if HAVE_SXS ULONG_PTR cookie = _Py_ActivateActCtx(); +#endif /* XXX This call doesn't exist in Windows CE */ hDLL = LoadLibraryEx(pathname, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); +#if HAVE_SXS _Py_DeactivateActCtx(cookie); +#endif } /* restore old error mode settings */ ================================================ FILE: ports/python2/002-build-msvc.patch ================================================ diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py index ab10ec5..6c43d82 100644 --- a/Lib/ctypes/util.py +++ b/Lib/ctypes/util.py @@ -19,6 +19,8 @@ if os.name == "nt": i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 + if majorVersion >= 13: + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: @@ -36,8 +38,10 @@ if os.name == "nt": return None if version <= 6: clibname = 'msvcrt' - else: + elif version <= 13: clibname = 'msvcr%d' % (version * 10) + else: + clibname = 'appcrt%d' % (version * 10) # If python was built with in debug mode import imp diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py index 65a60b5..b2ee260 100644 --- a/Lib/distutils/command/build_ext.py +++ b/Lib/distutils/command/build_ext.py @@ -196,7 +196,7 @@ class build_ext (Command): if MSVC_VERSION >= 9: # Use the .lib files for the correct architecture if self.plat_name == 'win32': - suffix = '' + suffix = 'win32' else: # win-amd64 or win-ia64 suffix = self.plat_name[4:] diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py index 9fe6417..57d42b7 100644 --- a/Lib/distutils/msvc9compiler.py +++ b/Lib/distutils/msvc9compiler.py @@ -182,6 +182,9 @@ def get_build_version(): i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 + if majorVersion >= 13: + # v13 was skipped and should be v14 + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index 0e69fd3..77025c6 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -164,6 +164,9 @@ def get_build_version(): i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 + if majorVersion >= 13: + # v13 was skipped and should be v14 + majorVersion += 1 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 7a1a694..7d07150 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -558,15 +558,33 @@ _PyInt_FromDev(PY_LONG_LONG v) /* The actual size of the structure is determined at runtime. * Only the first items must be present. */ + +#if _MSC_VER >= 1900 + +typedef struct { + CRITICAL_SECTION lock; + intptr_t osfhnd; + __int64 startpos; + char osfile; +} my_ioinfo; + +#define IOINFO_L2E 6 +#define IOINFO_ARRAYS 128 + +#else + typedef struct { intptr_t osfhnd; char osfile; } my_ioinfo; -extern __declspec(dllimport) char * __pioinfo[]; #define IOINFO_L2E 5 -#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) #define IOINFO_ARRAYS 64 + +#endif + +extern __declspec(dllimport) char * __pioinfo[]; +#define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) #define _NHANDLE_ (IOINFO_ARRAYS * IOINFO_ARRAY_ELTS) #define FOPEN 0x01 #define _NO_CONSOLE_FILENO (intptr_t)-2 diff --git a/Modules/timemodule.c b/Modules/timemodule.c index 61b8d61..7678283 100644 --- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -808,7 +808,7 @@ inittimezone(PyObject *m) { #ifdef PYOS_OS2 PyModule_AddIntConstant(m, "timezone", _timezone); #else /* !PYOS_OS2 */ - PyModule_AddIntConstant(m, "timezone", timezone); + PyModule_AddIntConstant(m, "timezone", _timezone); #endif /* PYOS_OS2 */ #ifdef HAVE_ALTZONE PyModule_AddIntConstant(m, "altzone", altzone); @@ -816,7 +816,7 @@ inittimezone(PyObject *m) { #ifdef PYOS_OS2 PyModule_AddIntConstant(m, "altzone", _timezone-3600); #else /* !PYOS_OS2 */ - PyModule_AddIntConstant(m, "altzone", timezone-3600); + PyModule_AddIntConstant(m, "altzone", _timezone-3600); #endif /* PYOS_OS2 */ #endif PyModule_AddIntConstant(m, "daylight", daylight); diff --git a/PC/bdist_wininst/install.c b/PC/bdist_wininst/install.c index e3b52a8..a7d1c2c 100644 --- a/PC/bdist_wininst/install.c +++ b/PC/bdist_wininst/install.c @@ -1185,7 +1185,7 @@ static void CenterWindow(HWND hwnd) #include -BOOL CALLBACK +INT_PTR CALLBACK IntroDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -1534,7 +1534,7 @@ SCHEME *GetScheme(int major, int minor) return old_scheme; } -BOOL CALLBACK +INT_PTR CALLBACK SelectPythonDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -1836,7 +1836,7 @@ static void CloseLogfile(void) fclose(logfile); } -BOOL CALLBACK +INT_PTR CALLBACK InstallFilesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -1991,7 +1991,7 @@ InstallFilesDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) } -BOOL CALLBACK +INT_PTR CALLBACK FinishedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { LPNMHDR lpnm; @@ -2167,23 +2167,6 @@ BOOL NeedAutoUAC() return TRUE; } -// Returns TRUE if the platform supports UAC. -BOOL PlatformSupportsUAC() -{ - // Note that win2k does seem to support ShellExecute with 'runas', - // but does *not* support IsUserAnAdmin - so we just pretend things - // only work on XP and later. - BOOL bIsWindowsXPorLater; - OSVERSIONINFO winverinfo; - winverinfo.dwOSVersionInfoSize = sizeof(winverinfo); - if (!GetVersionEx(&winverinfo)) - return FALSE; // something bad has gone wrong - bIsWindowsXPorLater = - ( (winverinfo.dwMajorVersion > 5) || - ( (winverinfo.dwMajorVersion == 5) && (winverinfo.dwMinorVersion >= 1) )); - return bIsWindowsXPorLater; -} - // Spawn ourself as an elevated application. On failure, a message is // displayed to the user - but this app will always terminate, even // on error. @@ -2239,7 +2222,7 @@ int DoInstall(void) // See if we need to do the Vista UAC magic. if (strcmp(user_access_control, "force")==0) { - if (PlatformSupportsUAC() && !MyIsUserAnAdmin()) { + if (!MyIsUserAnAdmin()) { SpawnUAC(); return 0; } @@ -2247,7 +2230,7 @@ int DoInstall(void) } else if (strcmp(user_access_control, "auto")==0) { // Check if it looks like we need UAC control, based // on how Python itself was installed. - if (PlatformSupportsUAC() && !MyIsUserAnAdmin() && NeedAutoUAC()) { + if (!MyIsUserAnAdmin() && NeedAutoUAC()) { SpawnUAC(); return 0; } diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 0cbd236..d896a38 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -226,6 +226,13 @@ typedef int pid_t; #define Py_IS_FINITE(X) _finite(X) #define copysign _copysign +/* VS 2015 defines these names with a leading underscore */ +#if _MSC_VER >= 1900 +// #define timezone _timezone +#define daylight _daylight +#define tzname _tzname +#endif + /* Side by Side assemblies supported in VS 2005 and VS 2008 but not 2010*/ #if _MSC_VER >= 1400 && _MSC_VER < 1600 #define HAVE_SXS 1 ================================================ FILE: ports/python2/003-build-msvc.patch ================================================ From 00164b4a9821e82f513183035587bea9243a7d5e Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Tue, 1 Aug 2017 14:13:24 -0400 Subject: [PATCH 3/3] VS2015 Support: Backport of "Issue #23524: Replace _PyVerify_fd function with calling _set_thread_local_invalid_parameter_handler on every thread." This commit is a partial backport of python/cpython@d81431f. It was originally designed to work with python-cmake-buildsystem. Implementation of "_PyVerify_fd" in "Python/fileutils.c" found only in Python 3.x has been copied into "Modules/posixmodule.c" The following modules have NOT been backported: * PCbuild --- Modules/posixmodule.c | 54 +++++++++++++++++++++++------------------- PC/invalid_parameter_handler.c | 22 +++++++++++++++++ Python/pystate.c | 12 ++++++++++ PCbuild/pythoncore.vcxproj | 1 + PCbuild/pythoncore.vcxproj.filters | 1 + 5 files changed, 65 insertions(+), 26 deletions(-) create mode 100644 PC/invalid_parameter_handler.c diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 90d5318..6a180a0 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -277,6 +277,7 @@ extern int lstat(const char *, struct stat *); #include "osdefs.h" #include #include +#include #include /* for ShellExecute() */ #define popen _popen #define pclose _pclose @@ -535,8 +534,28 @@ _PyInt_FromDev(PY_LONG_LONG v) # define _PyInt_FromDev PyInt_FromLong #endif +#ifdef _MSC_VER +#if _MSC_VER >= 1900 + +/* This function lets the Windows CRT validate the file handle without + terminating the process if it's invalid. */ +int +_PyVerify_fd(int fd) +{ + intptr_t osh; + /* Fast check for the only condition we know */ + if (fd < 0) { + _set_errno(EBADF); + return 0; + } + osh = _get_osfhandle(fd); + return osh != (intptr_t)-1; +} + +#define _PyVerify_fd_dup2(fd1, fd2) (_PyVerify_fd(fd1) && (fd2) >= 0) + +#elif _MSC_VER >= 1400 -#if defined _MSC_VER && _MSC_VER >= 1400 /* Microsoft CRT in VS2005 and higher will verify that a filehandle is * valid and raise an assertion if it isn't. * Normally, an invalid fd is likely to be a C program error and therefore @@ -601,35 +580,18 @@ _PyInt_FromDev(PY_LONG_LONG v) * Only the first items must be present. */ -#if _MSC_VER >= 1900 - -typedef struct { - CRITICAL_SECTION lock; - intptr_t osfhnd; - __int64 startpos; - char osfile; -} my_ioinfo; - -#define IOINFO_L2E 6 -#define IOINFO_ARRAYS 128 - -#else - typedef struct { intptr_t osfhnd; char osfile; } my_ioinfo; -#define IOINFO_L2E 5 -#define IOINFO_ARRAYS 64 - -#endif - extern __declspec(dllimport) char * __pioinfo[]; #define IOINFO_ARRAY_ELTS (1 << IOINFO_L2E) #define _NHANDLE_ (IOINFO_ARRAYS * IOINFO_ARRAY_ELTS) #define FOPEN 0x01 #define _NO_CONSOLE_FILENO (intptr_t)-2 +#define IOINFO_L2E 5 +#define IOINFO_ARRAYS 64 /* This function emulates what the windows CRT does to validate file handles */ int @@ -653,6 +649,8 @@ _PyVerify_fd_dup2(int fd1, int fd2) #define _PyVerify_fd_dup2(A, B) (1) #endif +#endif /* defined _MSC_VER */ + /* Return a dictionary corresponding to the POSIX environment table */ #if defined(WITH_NEXT_FRAMEWORK) || (defined(__APPLE__) && defined(Py_ENABLE_SHARED)) /* On Darwin/MacOSX a shared library or framework has no access to @@ -1260,14 +1254,10 @@ win32_fstat(int file_number, struct win32_stat *result) h = (HANDLE)_get_osfhandle(file_number); - /* Protocol violation: we explicitly clear errno, instead of - setting it to a POSIX error. Callers should use GetLastError. */ errno = 0; if (h == INVALID_HANDLE_VALUE) { - /* This is really a C library error (invalid file handle). - We set the Win32 error to the closes one matching. */ - SetLastError(ERROR_INVALID_HANDLE); + errno = EBADF; return -1; } memset(result, 0, sizeof(*result)); @@ -1268,6 +1266,7 @@ win32_fstat(int file_number, struct win32_stat *result) if (type == FILE_TYPE_UNKNOWN) { DWORD error = GetLastError(); if (error != 0) { + errno = EINVAL; return -1; } /* else: valid but unknown file */ @@ -1284,6 +1281,7 @@ win32_fstat(int file_number, struct win32_stat *result) } if (!GetFileInformationByHandle(h, &info)) { + errno = EINVAL; return -1; } diff --git a/PC/invalid_parameter_handler.c b/PC/invalid_parameter_handler.c new file mode 100644 index 0000000..3bc0104 --- /dev/null +++ b/PC/invalid_parameter_handler.c @@ -0,0 +1,22 @@ +#ifdef _MSC_VER + +#include + +#if _MSC_VER >= 1900 +/* pyconfig.h uses this function in the _Py_BEGIN/END_SUPPRESS_IPH + * macros. It does not need to be defined when building using MSVC + * earlier than 14.0 (_MSC_VER == 1900). + */ + +static void __cdecl _silent_invalid_parameter_handler( + wchar_t const* expression, + wchar_t const* function, + wchar_t const* file, + unsigned int line, + uintptr_t pReserved) { } + +void *_Py_silent_invalid_parameter_handler = + (void*)_silent_invalid_parameter_handler; +#endif + +#endif diff --git a/Python/pystate.c b/Python/pystate.c index eb992c1..1c0f970 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -22,6 +22,12 @@ the expense of doing their own locking). #endif #endif +#if defined _MSC_VER && _MSC_VER >= 1900 +/* Issue #23524: Temporary fix to disable termination due to invalid parameters */ +PyAPI_DATA(void*) _Py_silent_invalid_parameter_handler; +#include +#endif + #ifdef __cplusplus extern "C" { #endif @@ -202,6 +208,12 @@ new_threadstate(PyInterpreterState *interp, int init) tstate->next = interp->tstate_head; interp->tstate_head = tstate; HEAD_UNLOCK(); + +#if defined _MSC_VER && _MSC_VER >= 1900 + /* Issue #23524: Temporary fix to disable termination due to invalid parameters */ + _set_thread_local_invalid_parameter_handler((_invalid_parameter_handler)_Py_silent_invalid_parameter_handler); +#endif + } return tstate; -- 2.5.0 diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 99291ea..af17762 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -333,6 +333,7 @@ + diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters index 99291ea..af17762 100644 --- a/PCbuild/pythoncore.vcxproj.filters +++ b/PCbuild/pythoncore.vcxproj.filters @@ -794,6 +794,9 @@ Parser + + PC + PC ================================================ FILE: ports/python2/004-static-library-msvc.patch ================================================ diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 92b32da..8dac984 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -41,7 +41,7 @@ - DynamicLibrary + StaticLibrary false @@ -70,12 +70,24 @@ /Zm200 %(AdditionalOptions) $(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;_CRT_SECURE_NO_WARNINGS;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) + _USRDLL;Py_BUILD_CORE;Py_NO_ENABLE_SHARED;_CRT_SECURE_NO_WARNINGS;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) ws2_32.lib;%(AdditionalDependencies) 0x1e000000 + + MachineX86 + + + MachineX86 + + + MachineX86 + + + MachineX86 + ================================================ FILE: ports/python2/005-static-crt-msvc.patch ================================================ diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 8dac984..c18ad1e 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -71,6 +71,10 @@ /Zm200 %(AdditionalOptions) $(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories) _USRDLL;Py_BUILD_CORE;Py_NO_ENABLE_SHARED;_CRT_SECURE_NO_WARNINGS;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) + MultiThreadedDebug + MultiThreadedDebug + MultiThreaded + MultiThreaded ws2_32.lib;%(AdditionalDependencies) ================================================ FILE: ports/python2/006-static-fix-headers.patch ================================================ diff --git a/PC/pyconfig.h b/PC/pyconfig.h index 64e7aec..aa36745 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -331,6 +331,7 @@ typedef int pid_t; /* For Windows the Python core is in a DLL by default. Test Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ +#define Py_NO_ENABLE_SHARED #if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED) # define Py_ENABLE_SHARED 1 /* standard symbol for shared library */ # define MS_COREDLL /* deprecated old symbol */ -- ================================================ FILE: ports/python2/007-fix-build-path.patch ================================================ diff --git a/PCbuild/python.props b/PCbuild/python.props index d2b1991..a22c054 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -26,8 +26,7 @@ $(PySourcePath)\ - $(PySourcePath)PCBuild\ - $(BuildPath)\$(ArchName)\ + $(PySourcePath)PCBuild\$(ArchName)\ $(BuildPath)\ ================================================ FILE: ports/python2/008-bz2d.patch ================================================ diff --git a/setup.py b/setup.py index f764223..d6a58e4 100644 --- a/setup.py +++ b/setup.py @@ -1506,6 +1506,14 @@ class PyBuildExt(build_ext): exts.append( Extension('bz2', ['bz2module.c'], libraries = ['bz2'], extra_link_args = bz2_extra_link_args) ) + elif (self.compiler.find_library_file(lib_dirs, 'bz2d')): + if host_platform == "darwin": + bz2_extra_link_args = ('-Wl,-search_paths_first',) + else: + bz2_extra_link_args = () + exts.append( Extension('bz2', ['bz2module.c'], + libraries=['bz2d'], + extra_link_args = bz2_extra_link_args) ) else: missing.append('bz2') ================================================ FILE: ports/python2/portfile.cmake ================================================ # Patches are from: # - https://github.com/python-cmake-buildsystem/python-cmake-buildsystem/tree/master/patches/2.7.13/Windows-MSVC/1900 # - https://github.com/Microsoft/vcpkg/tree/master/ports/python3 if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic AND VCPKG_CRT_LINKAGE STREQUAL static) message(STATUS "Warning: Dynamic library with static CRT is not supported. Building static library.") set(VCPKG_LIBRARY_LINKAGE static) endif() set(PYTHON_VERSION_MAJOR 2) set(PYTHON_VERSION_MINOR 7) set(PYTHON_VERSION_PATCH 18) set(PYTHON_VERSION ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}.${PYTHON_VERSION_PATCH}) set(_PYTHON_PATCHES "") if (VCPKG_TARGET_IS_WINDOWS) list(APPEND _PYTHON_PATCHES "${CMAKE_CURRENT_LIST_DIR}/001-build-msvc.patch" "${CMAKE_CURRENT_LIST_DIR}/002-build-msvc.patch" "${CMAKE_CURRENT_LIST_DIR}/003-build-msvc.patch" ) endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND _PYTHON_PATCHES "${CMAKE_CURRENT_LIST_DIR}/004-static-library-msvc.patch" "${CMAKE_CURRENT_LIST_DIR}/006-static-fix-headers.patch" ) endif() if (VCPKG_CRT_LINKAGE STREQUAL static) list(APPEND _PYTHON_PATCHES "${CMAKE_CURRENT_LIST_DIR}/005-static-crt-msvc.patch") endif() if (VCPKG_TARGET_IS_WINDOWS) list(APPEND _PYTHON_PATCHES "${CMAKE_CURRENT_LIST_DIR}/007-fix-build-path.patch" ) else() list(APPEND _PYTHON_PATCHES "${CMAKE_CURRENT_LIST_DIR}/008-bz2d.patch" ) endif() vcpkg_download_distfile(ARCHIVE URLS https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz FILENAME Python-${PYTHON_VERSION}.tar.xz SHA512 a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES ${_PYTHON_PATCHES} ) vcpkg_replace_string("${SOURCE_PATH}/Makefile.pre.in" "$(INSTALL) -d -m $(DIRMODE)" "$(MKDIR_P)") if (VCPKG_TARGET_IS_WINDOWS) if (VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(BUILD_ARCH "Win32") set(OUT_DIR "win32") elseif (VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(BUILD_ARCH "x64") set(OUT_DIR "amd64") else() message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "PCBuild/pythoncore.vcxproj" PLATFORM ${BUILD_ARCH} ) vcpkg_copy_pdbs() file(GLOB HEADERS "${SOURCE_PATH}/Include/*.h") file(COPY ${HEADERS} "${SOURCE_PATH}/PC/pyconfig.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") file(COPY "${SOURCE_PATH}/Lib" DESTINATION "${CURRENT_PACKAGES_DIR}/share/python${PYTHON_VERSION_MAJOR}") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(NOT VCPKG_BUILD_TYPE) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_d.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") if(NOT VCPKG_BUILD_TYPE) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/PCBuild/${OUT_DIR}/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}_d.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() else() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_make() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") endif() if (NOT VCPKG_TARGET_IS_WINDOWS) foreach(lib_suffix IN ITEMS "" "/debug") set(python_config_file "${CURRENT_PACKAGES_DIR}${lib_suffix}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/_sysconfigdata.py") if(NOT EXISTS "${python_config_file}") continue() endif() file(READ "${python_config_file}" contents) string(PREPEND contents "import os\n_base = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))\n") # make contents a list of lines string(REPLACE ";" "\\;" old_contents "${contents}") string(REGEX REPLACE "\r?\n" ";" old_contents "${contents}") set(new_contents "") foreach(line IN LISTS old_contents) if(line MATCHES "\"") string(REGEX REPLACE "${CURRENT_PACKAGES_DIR}|${CURRENT_INSTALLED_DIR}" "\" + _base + \"" line "${line}" ) string(REGEX REPLACE "\"[^\"]*${CURRENT_BUILDTREES_DIR}[^\"]*\"" "''" line "${line}" ) else() string(REGEX REPLACE "${CURRENT_PACKAGES_DIR}|${CURRENT_INSTALLED_DIR}" "' + _base + '" line "${line}" ) string(REGEX REPLACE "'[^']*${CURRENT_BUILDTREES_DIR}[^']*'" "''" line "${line}" ) endif() list(APPEND new_contents "${line}") endforeach() list(JOIN new_contents "\n" contents) file(WRITE "${python_config_file}" "${contents}") endforeach() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/python2/vcpkg.json ================================================ { "name": "python2", "version": "2.7.18", "port-version": 7, "description": "The Python programming language as an embeddable library", "homepage": "https://www.python.org", "license": "Python-2.0", "supports": "!(arm & osx) & !(arm & windows) & !uwp", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/python3/0001-only-build-required-projects.patch ================================================ From 6492277e39dbe7dd77d32fdc9ae4b989213ef3c6 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 9 Sep 2020 20:15:58 -0400 Subject: [PATCH 5/6] only build required projects strips out tests and unsupported externals (eg tkinter). --- PCbuild/_ssl.vcxproj | 2 +- PCbuild/pcbuild.proj | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/PCbuild/_ssl.vcxproj b/PCbuild/_ssl.vcxproj index 4dffa202b7..e661cb6fb6 100644 --- a/PCbuild/_ssl.vcxproj +++ b/PCbuild/_ssl.vcxproj @@ -111,7 +111,7 @@ {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false - + {86937f53-c189-40ef-8ce8-8759d8e7d480} false diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index 4d416c589e..ede9868a8f 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -60,17 +60,17 @@ - + - + - - - - + + + + -- 2.28.0.windows.1 ================================================ FILE: ports/python3/0002-static-library.patch ================================================ From 14d91e4f4a9377f47cc4cc33faeeb7c82f64b176 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Thu, 28 May 2020 17:25:21 -0400 Subject: [PATCH 1/7] static library builds the pythoncore as a static library instead of a DLL --- PC/pyconfig.h | 9 +++++++++ PCbuild/pythoncore.vcxproj | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/PC/pyconfig.h b/PC/pyconfig.h index d7d3cf081e..34269f0b75 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -251,6 +251,9 @@ typedef int pid_t; /* For Windows the Python core is in a DLL by default. Test Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ +#ifndef Py_NO_ENABLE_SHARED +#define Py_NO_ENABLE_SHARED +#endif #if !defined(MS_NO_COREDLL) && !defined(Py_NO_ENABLE_SHARED) # define Py_ENABLE_SHARED 1 /* standard symbol for shared library */ # define MS_COREDLL /* deprecated old symbol */ @@ -276,6 +277,15 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ # endif /* _DEBUG */ # endif /* _MSC_VER */ # endif /* Py_BUILD_CORE */ +#else + /* So MSVC users need not specify the .lib file in their own config */ +# pragma comment(lib, "version.lib") +# pragma comment(lib, "shlwapi.lib") +# pragma comment(lib, "ws2_32.lib") +# pragma comment(lib, "bcrypt.lib") +# if Py_WINVER > 0x0601 +# pragma comment(lib, "pathcch.lib") +# endif /* Py_WINVER */ #endif /* MS_COREDLL */ #ifdef MS_WIN64 diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index 70c336a9d3..ba797e8afd 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -45,7 +45,7 @@ false - + diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 2625d0293d..2f8bdaa931 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -73,7 +73,7 @@ - DynamicLibrary + StaticLibrary false @@ -102,7 +102,7 @@ /Zm200 %(AdditionalOptions) $(PySourcePath)Modules\_hacl\include;$(PySourcePath)Modules\_hacl\internal;$(PySourcePath)Python;%(AdditionalIncludeDirectories) $(zlibDir);%(AdditionalIncludeDirectories) - _USRDLL;Py_BUILD_CORE;Py_BUILD_CORE_BUILTIN;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) + _USRDLL;Py_BUILD_CORE;Py_BUILD_CORE_BUILTIN;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) _Py_HAVE_ZLIB;%(PreprocessorDefinitions) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 2625d0293d..2f8bdaa931 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -88,7 +88,7 @@ - Py_NO_ENABLE_SHARED;Py_BUILD_CORE;_CONSOLE;%(PreprocessorDefinitions) + Py_NO_ENABLE_SHARED;Py_BUILD_CORE;_CONSOLE;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions) Disabled false diff --git a/Python/sysmodule.c b/Python/sysmodule.c index ac49f7867a..f3583345ff 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2804,6 +2804,9 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict #ifdef MS_COREDLL SET_SYS("dllhandle", PyLong_FromVoidPtr(PyWin_DLLhModule)); SET_SYS_FROM_STRING("winver", PyWin_DLLVersionString); +#elif defined(MS_WINDOWS) + SET_SYS("dllhandle", PyLong_FromVoidPtr(NULL)); + SET_SYS_FROM_STRING("winver", MS_DLL_ID); #endif #ifdef ABIFLAGS SET_SYS_FROM_STRING("abiflags", ABIFLAGS); -- 2.28.0.windows.1 ================================================ FILE: ports/python3/0003-use-vcpkg-zlib.patch ================================================ From 196555707236f4387875749f66620fb519166963 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 9 Sep 2020 15:20:36 -0400 Subject: [PATCH 2/6] use vcpkg zlib building without zlib is not a supported configuration, per the warning messages. --- PCbuild/pythoncore.vcxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index dbe236829a..5f30a35eb3 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -540,8 +540,10 @@ - + + + @@ -593,7 +595,7 @@ - + -- 2.28.0.windows.1 ================================================ FILE: ports/python3/0004-devendor-external-dependencies.patch ================================================ From 6c5c3793cbc6ba2a1d0d623a2bdaa9c2125be516 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 9 Sep 2020 15:24:38 -0400 Subject: [PATCH 3/6] devendor external dependencies externally fetched libraries may cause linker errors resulting from duplicate symbols in downstream projects. --- PCbuild/_bz2.vcxproj | 4 +++- PCbuild/_lzma.vcxproj | 5 ++--- PCbuild/_sqlite3.vcxproj | 2 +- PCbuild/_ssl.vcxproj | 2 +- PCbuild/pyexpat.vcxproj | 6 ++++-- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/PCbuild/_bz2.vcxproj b/PCbuild/_bz2.vcxproj index 3fe95fbf83..6b12e8818e 100644 --- a/PCbuild/_bz2.vcxproj +++ b/PCbuild/_bz2.vcxproj @@ -101,6 +101,8 @@ + + @@ -109,7 +111,7 @@ - + diff --git a/PCbuild/_lzma.vcxproj b/PCbuild/_lzma.vcxproj index fe076a6fc5..70cc61dd95 100644 --- a/PCbuild/_lzma.vcxproj +++ b/PCbuild/_lzma.vcxproj @@ -94,10 +94,9 @@ $(lzmaDir)src/liblzma/api;%(AdditionalIncludeDirectories) - WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;LZMA_API_STATIC;%(PreprocessorDefinitions) + WIN32;_FILE_OFFSET_BITS=64;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions) - $(OutDir)liblzma$(PyDebugExt).lib;%(AdditionalDependencies) @@ -111,7 +110,7 @@ {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false - + {12728250-16eC-4dc6-94d7-e21dd88947f8} false diff --git a/PCbuild/_sqlite3.vcxproj b/PCbuild/_sqlite3.vcxproj index 7e0062692b..6fb3279a20 100644 --- a/PCbuild/_sqlite3.vcxproj +++ b/PCbuild/_sqlite3.vcxproj @@ -127,7 +127,7 @@ {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} false - + {a1a295e5-463c-437f-81ca-1f32367685da} false diff --git a/PCbuild/pyexpat.vcxproj b/PCbuild/pyexpat.vcxproj index b2d9f5d57d..4efb826a05 100644 --- a/PCbuild/pyexpat.vcxproj +++ b/PCbuild/pyexpat.vcxproj @@ -89,17 +89,19 @@ - + $(PySourcePath)Modules\expat;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;PYEXPAT_EXPORTS;XML_STATIC;%(PreprocessorDefinitions) - + + + -- 2.28.0.windows.1 ================================================ FILE: ports/python3/0005-dont-copy-vcruntime.patch ================================================ From 8086c67fa7ada1888a7808cbdc6fe74b62abe5b1 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 9 Sep 2020 16:12:49 -0400 Subject: [PATCH 4/6] dont copy vcruntime VCRUNTIME140.dll should not be redistributed, ever. --- PCbuild/pythoncore.vcxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 5f30a35eb3..3cf21ba39c 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -565,7 +565,7 @@ - + -- 2.28.0.windows.1 ================================================ FILE: ports/python3/0007-workaround-windows-11-sdk-rc-compiler-error.patch ================================================ From 0a72b7061ed79c5d6d37b41a5b1610e32fb371a4 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 22 Sep 2021 21:04:21 -0400 Subject: [PATCH] workaround windows 11 sdk rc compiler error winnt.h was changed to error if the `SYSTEM_CACHE_ALIGNMENT` cannot be determined. when the RC compiler is invoked, this seems to fail where previous SDKs silently set the ARM value. --- PC/python_ver_rc.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/PC/python_ver_rc.h b/PC/python_ver_rc.h index 90fc6ba1a1..e313a5138e 100644 --- a/PC/python_ver_rc.h +++ b/PC/python_ver_rc.h @@ -1,3 +1,10 @@ +// Temporarily workaround bug in Windows SDK 10.0.22000.0 winnt.h +#ifdef RC_INVOKED +# ifndef SYSTEM_CACHE_ALIGNMENT_SIZE +# define SYSTEM_CACHE_ALIGNMENT_SIZE 64 +# endif +#endif + // Resource script for Python core DLL. // Currently only holds version information. // -- 2.33.0.windows.1 ================================================ FILE: ports/python3/0008-python.pc.patch ================================================ From 3c43def510e7c4c115fbe3938db8e4fe9bc2e311 Mon Sep 17 00:00:00 2001 From: Max Khon Date: Tue, 8 Feb 2022 12:58:30 +0700 Subject: [PATCH 08/11] python.pc Fix pkgconfig for debug Linux builds (#22529) --- Misc/python-embed.pc.in | 2 +- Misc/python.pc.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/python-embed.pc.in b/Misc/python-embed.pc.in index 2be9df8143..92142dfe68 100644 --- a/Misc/python-embed.pc.in +++ b/Misc/python-embed.pc.in @@ -10,4 +10,4 @@ Requires: Version: @VERSION@ Libs.private: @LIBS@ Libs: -L${libdir} -lpython@VERSION@@ABIFLAGS@ -Cflags: -I${includedir}/python@VERSION@@ABIFLAGS@ +Cflags: -I${includedir}/python@VERSION@ diff --git a/Misc/python.pc.in b/Misc/python.pc.in index 87e04decc2..0349dc81ba 100644 --- a/Misc/python.pc.in +++ b/Misc/python.pc.in @@ -10,4 +10,4 @@ Requires: Version: @VERSION@ Libs.private: @LIBS@ Libs: -L${libdir} @LIBPYTHON@ -Cflags: -I${includedir}/python@VERSION@@ABIFLAGS@ +Cflags: -I${includedir}/python@VERSION@ -- 2.37.3.windows.1 ================================================ FILE: ports/python3/0010-dont-skip-rpath.patch ================================================ From f7439eae9b2f8d91b6689efbf01292a044f3a3fe Mon Sep 17 00:00:00 2001 From: Osyotr Date: Thu, 4 Aug 2022 23:49:06 +0300 Subject: [PATCH 10/11] dont skip rpath --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+), 0 deletions(-) diff --git a/configure.ac b/configure.ac index 61b3266..4c2cfb4 100644 --- a/configure.ac +++ b/configure.ac @@ -49,6 +49,14 @@ [$1] [RESTORE_ENV] )dnl +if test "$ac_sys_system" != "Darwin"; then +AS_VAR_IF([GNULD], [yes], [ + LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags,-rpath,$vcpkg_rpath" +], [ + LDFLAGS="$LDFLAGS -Wl,-rpath,$vcpkg_rpath" +]) +fi + dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR]) AC_DEFUN([PY_CHECK_FUNC], [ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1]) -- 2.37.3.windows.1 ================================================ FILE: ports/python3/0015-dont-use-WINDOWS-def.patch ================================================ --- a/PC/launcher.c +++ b/PC/launcher.c @@ -1,3 +1,6 @@ +#if defined(_CONSOLE) +#undef _WINDOWS +#endif /* * Copyright (C) 2011-2013 Vinay Sajip. * Licensed to PSF under a contributor agreement. ================================================ FILE: ports/python3/0016-fix-win-cross.patch ================================================ diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 7d3423251f..7f607742fe 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -366,7 +366,7 @@ - + - + - $(PreferredToolArchitecture) + $(Platform) $(Configuration) Release ================================================ FILE: ports/python3/0016-undup-ffi-symbols.patch ================================================ diff --git a/Modules/_ctypes/malloc_closure.c b/Modules/_ctypes/malloc_closure.c index 788bae6a9..3938f79db 100644 --- a/Modules/_ctypes/malloc_closure.c +++ b/Modules/_ctypes/malloc_closure.c @@ -11,6 +11,9 @@ #endif #include "ctypes.h" +#undef Py_ffi_closure_alloc +#undef Py_ffi_closure_free + /* BLOCKSIZE can be adjusted. Larger blocksize will take a larger memory overhead, but allocate less blocks from the system. It may be that some systems have a limit of how many mmap'd blocks can be open. ================================================ FILE: ports/python3/0017-fix-win.patch ================================================ diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 7d3423251f..7f607742fe 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -366,7 +366,7 @@ - + - + - $(PreferredToolArchitecture) + $(Platform) $(Configuration) Release ================================================ FILE: ports/python3/0018-fix-sysconfig-include.patch ================================================ diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index ebe371182..e351df7da 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -51,8 +51,8 @@ 'platstdlib': '{base}/Lib', 'purelib': '{base}/Lib/site-packages', 'platlib': '{base}/Lib/site-packages', - 'include': '{installed_base}/Include', - 'platinclude': '{installed_base}/Include', + 'include': '{installed_base}/../../include/python{py_version_short}{abiflags}', + 'platinclude': '{installed_base}/../../include/python{py_version_short}{abiflags}', 'scripts': '{base}/Scripts', 'data': '{base}', }, ================================================ FILE: ports/python3/0019-fix-ssl-linkage.patch ================================================ diff --git a/configure.ac b/configure.ac index ef899b881d..9ed1836608 100644 --- a/configure.ac +++ b/configure.ac @@ -6712,7 +6712,7 @@ done # check if OpenSSL libraries work as expected WITH_SAVE_ENV([ - LIBS="$LIBS $OPENSSL_LIBS" + LIBS="$OPENSSL_LIBS $LIBS" CFLAGS="$CFLAGS $OPENSSL_INCLUDES" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH" @@ -6737,7 +6737,7 @@ WITH_SAVE_ENV([ ]) WITH_SAVE_ENV([ - LIBS="$LIBS $LIBCRYPTO_LIBS" + LIBS="$LIBCRYPTO_LIBS $LIBS" CFLAGS="$CFLAGS $OPENSSL_INCLUDES" LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH" ================================================ FILE: ports/python3/0020-Py_NO_LINK_LIB.patch ================================================ diff --git a/PC/pyconfig.h b/PC/pyconfig.h index f4f57c5d270028..9e70303868e5de 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -302,7 +302,7 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ #ifdef MS_COREDLL # if !defined(Py_BUILD_CORE) && !defined(Py_BUILD_CORE_BUILTIN) /* not building the core - must be an ext */ -# if defined(_MSC_VER) +# if defined(_MSC_VER) && !defined(Py_NO_LINK_LIB) /* So MSVC users need not specify the .lib file in their Makefile (other compilers are generally taken care of by distutils.) */ ================================================ FILE: ports/python3/openssl.props.in ================================================ Crypt32.lib;ws2_32.lib;%(AdditionalDependencies) ${CRYPTO_RELEASE};${SSL_RELEASE};%(AdditionalDependencies) ${CRYPTO_DEBUG};${SSL_DEBUG};%(AdditionalDependencies) Crypt32.lib;ws2_32.lib;%(AdditionalDependencies) ${CRYPTO_RELEASE};${SSL_RELEASE};%(AdditionalDependencies) ${CRYPTO_DEBUG};${SSL_DEBUG};%(AdditionalDependencies) ================================================ FILE: ports/python3/portfile.cmake ================================================ if(VCPKG_TARGET_IS_ANDROID) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_CRT_LINKAGE STREQUAL "static") message(STATUS "Warning: Dynamic library with static CRT is not supported. Building static library.") set(VCPKG_LIBRARY_LINKAGE static) endif() if("extensions" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() set(PYTHON_HAS_EXTENSIONS ON) else() set(PYTHON_HAS_EXTENSIONS OFF) endif() string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" PYTHON_VERSION "${VERSION}") set(PYTHON_VERSION_MAJOR "${CMAKE_MATCH_1}") set(PYTHON_VERSION_MINOR "${CMAKE_MATCH_2}") set(PYTHON_VERSION_PATCH "${CMAKE_MATCH_3}") set(PATCHES 0001-only-build-required-projects.patch 0003-use-vcpkg-zlib.patch 0004-devendor-external-dependencies.patch 0005-dont-copy-vcruntime.patch 0008-python.pc.patch 0010-dont-skip-rpath.patch 0015-dont-use-WINDOWS-def.patch 0016-undup-ffi-symbols.patch # Required for lld-link. 0018-fix-sysconfig-include.patch 0019-fix-ssl-linkage.patch 0020-Py_NO_LINK_LIB.patch # Remove in 3.14 https://github.com/python/cpython/pull/19740 ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND PATCHES 0002-static-library.patch) endif() if(VCPKG_TARGET_IS_WINDOWS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PYTHON_ALLOW_EXTENSIONS) if(PYTHON_HAS_EXTENSIONS AND NOT PYTHON_ALLOW_EXTENSIONS) # This should never be reached due to vcpkg_check_linkage above message(FATAL_ERROR "Cannot build python extensions! Python extensions on windows can only be built if python is a dynamic library!") endif() # The Windows 11 SDK has a problem that causes it to error on the resource files, so we patch that. vcpkg_get_windows_sdk(WINSDK_VERSION) if("${WINSDK_VERSION}" VERSION_GREATER_EQUAL "10.0.22000") list(APPEND PATCHES "0007-workaround-windows-11-sdk-rc-compiler-error.patch") endif() if(VCPKG_CROSSCOMPILING) list(APPEND PATCHES "0016-fix-win-cross.patch") else() list(APPEND PATCHES "0017-fix-win.patch") endif() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO python/cpython REF v${VERSION} SHA512 39298ac5ee6e751264b196710dff998e4ba530f5ed0cb9ec143c138faf00e32356ff387f71287840e7d0acef855cabd75d71d3d636c23807659e79b1643d891c HEAD_REF master PATCHES ${PATCHES} ) vcpkg_replace_string("${SOURCE_PATH}/Makefile.pre.in" "$(INSTALL) -d -m $(DIRMODE)" "$(MKDIR_P)") function(make_python_pkgconfig) cmake_parse_arguments(PARSE_ARGV 0 arg "" "FILE;INSTALL_ROOT;EXEC_PREFIX;INCLUDEDIR;ABIFLAGS" "") set(prefix "${CURRENT_PACKAGES_DIR}") set(libdir [[${prefix}/lib]]) set(exec_prefix ${arg_EXEC_PREFIX}) set(includedir ${arg_INCLUDEDIR}) set(VERSION "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") set(ABIFLAGS ${arg_ABIFLAGS}) string(REPLACE "python" "python-${VERSION}" out_file ${arg_FILE}) set(out_full_path "${arg_INSTALL_ROOT}/lib/pkgconfig/${out_file}") configure_file("${SOURCE_PATH}/Misc/${arg_FILE}.in" ${out_full_path} @ONLY) file(READ ${out_full_path} pkgconfig_file) string(REPLACE "-lpython${VERSION}" "-lpython${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}" pkgconfig_file "${pkgconfig_file}") file(WRITE ${out_full_path} "${pkgconfig_file}") endfunction() if(VCPKG_TARGET_IS_WINDOWS) # Due to the way Python handles C extension modules on Windows, a static python core cannot # load extension modules. if(PYTHON_HAS_EXTENSIONS) find_library(BZ2_RELEASE NAMES bz2 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(BZ2_DEBUG NAMES bz2d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(CRYPTO_RELEASE NAMES libcrypto PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(CRYPTO_DEBUG NAMES libcrypto PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(EXPAT_RELEASE NAMES libexpat libexpatMD libexpatMT PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(EXPAT_DEBUG NAMES libexpatd libexpatdMD libexpatdMT PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(FFI_RELEASE NAMES ffi PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(FFI_DEBUG NAMES ffi PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(LZMA_RELEASE NAMES lzma PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(LZMA_DEBUG NAMES lzma PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) x_vcpkg_pkgconfig_get_modules(PREFIX PC_SQLITE3 MODULES sqlite3 LIBRARIES USE_MSVC_SYNTAX_ON_WINDOWS) separate_arguments(SQLITE3_LIBRARIES_DEBUG UNIX_COMMAND "${PC_SQLITE3_LIBRARIES_DEBUG}") separate_arguments(SQLITE3_LIBRARIES_RELEASE UNIX_COMMAND "${PC_SQLITE3_LIBRARIES_RELEASE}") find_library(SSL_RELEASE NAMES libssl PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(SSL_DEBUG NAMES libssl PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) list(APPEND add_libs_rel "${BZ2_RELEASE};${EXPAT_RELEASE};${FFI_RELEASE};${LZMA_RELEASE};${SQLITE3_LIBRARIES_RELEASE}") list(APPEND add_libs_dbg "${BZ2_DEBUG};${EXPAT_DEBUG};${FFI_DEBUG};${LZMA_DEBUG};${SQLITE3_LIBRARIES_DEBUG}") else() message(STATUS "WARNING: Extensions have been disabled. No C extension modules will be available.") endif() find_library(ZLIB_RELEASE NAMES zlib PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ZLIB_DEBUG NAMES zlib zlibd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) list(APPEND add_libs_rel "${ZLIB_RELEASE}") list(APPEND add_libs_dbg "${ZLIB_DEBUG}") configure_file("${SOURCE_PATH}/PC/pyconfig.h" "${SOURCE_PATH}/PC/pyconfig.h") configure_file("${CMAKE_CURRENT_LIST_DIR}/python_vcpkg.props.in" "${SOURCE_PATH}/PCbuild/python_vcpkg.props") configure_file("${CMAKE_CURRENT_LIST_DIR}/openssl.props.in" "${SOURCE_PATH}/PCbuild/openssl.props") file(WRITE "${SOURCE_PATH}/PCbuild/libffi.props" "" "" ) list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_SET_CHARSET_FLAG=OFF") if(PYTHON_HAS_EXTENSIONS) set(OPTIONS "/p:IncludeExtensions=true" "/p:IncludeExternals=true" "/p:IncludeCTypes=true" "/p:IncludeSSL=true" "/p:IncludeTkinter=false" "/p:IncludeTests=false" "/p:ForceImportBeforeCppTargets=${SOURCE_PATH}/PCbuild/python_vcpkg.props" ) else() set(OPTIONS "/p:IncludeExtensions=false" "/p:IncludeExternals=false" "/p:IncludeTests=false" "/p:ForceImportBeforeCppTargets=${SOURCE_PATH}/PCbuild/python_vcpkg.props" ) endif() if(VCPKG_TARGET_IS_UWP) list(APPEND OPTIONS "/p:IncludeUwp=true") else() list(APPEND OPTIONS "/p:IncludeUwp=false") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS "/p:_VcpkgPythonLinkage=DynamicLibrary") else() list(APPEND OPTIONS "/p:_VcpkgPythonLinkage=StaticLibrary") endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) set(ENV{PythonForBuild} "${PYTHON3_DIR}/python.exe") # PythonForBuild is what's used on windows, despite the readme if(VCPKG_CROSSCOMPILING) vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "PCbuild/pcbuild.proj" ADD_BIN_TO_PATH OPTIONS ${OPTIONS} ADDITIONAL_LIBS_RELEASE ${add_libs_rel} ADDITIONAL_LIBS_DEBUG ${add_libs_dbg} ) if(NOT VCPKG_CROSSCOMPILING) file(GLOB_RECURSE freeze_module "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/PCbuild/**/_freeze_module.exe") file(COPY "${freeze_module}" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() # The extension modules must be placed in the DLLs directory, so we can't use vcpkg_copy_tools() if(PYTHON_HAS_EXTENSIONS) file(GLOB_RECURSE PYTHON_EXTENSIONS_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.pyd") file(COPY ${PYTHON_EXTENSIONS_RELEASE} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY ${PYTHON_EXTENSIONS_RELEASE} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/DLLs") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/DLLs") file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/DLLs/python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}.dll") file(GLOB_RECURSE PYTHON_EXTENSIONS_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.pyd") file(COPY ${PYTHON_EXTENSIONS_DEBUG} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(COPY "${SOURCE_PATH}/Include/" "${SOURCE_PATH}/PC/pyconfig.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" FILES_MATCHING PATTERN *.h ) file(COPY "${SOURCE_PATH}/Lib" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") # Remove any extension libraries and other unversioned binaries that could conflict with the python2 port. # You don't need to link against these anyway. file(GLOB PYTHON_LIBS "${CURRENT_PACKAGES_DIR}/lib/*.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/*.lib" ) list(FILTER PYTHON_LIBS EXCLUDE REGEX [[python[0-9]*(_d)?\.lib$]]) file(GLOB PYTHON_INSTALLERS "${CURRENT_PACKAGES_DIR}/tools/${PORT}/wininst-*.exe") file(REMOVE ${PYTHON_LIBS} ${PYTHON_INSTALLERS}) # pkg-config files if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") make_python_pkgconfig(FILE python.pc INSTALL_ROOT ${CURRENT_PACKAGES_DIR} EXEC_PREFIX "\${prefix}/tools/${PORT}" INCLUDEDIR [[${prefix}/include]] ABIFLAGS "") make_python_pkgconfig(FILE python-embed.pc INSTALL_ROOT ${CURRENT_PACKAGES_DIR} EXEC_PREFIX "\${prefix}/tools/${PORT}" INCLUDEDIR [[${prefix}/include]] ABIFLAGS "") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") make_python_pkgconfig(FILE python.pc INSTALL_ROOT "${CURRENT_PACKAGES_DIR}/debug" EXEC_PREFIX "\${prefix}/../tools/${PORT}" INCLUDEDIR [[${prefix}/../include]] ABIFLAGS "_d") make_python_pkgconfig(FILE python-embed.pc INSTALL_ROOT "${CURRENT_PACKAGES_DIR}/debug" EXEC_PREFIX "\${prefix}/../tools/${PORT}" INCLUDEDIR [[${prefix}/../include]] ABIFLAGS "_d") endif() vcpkg_fixup_pkgconfig() # Remove static library belonging to executable if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") if (EXISTS "${CURRENT_PACKAGES_DIR}/lib/python.lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/python.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/python.lib") endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/python_d.lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/python_d.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/python_d.lib") endif() endif() else() # The Python Stable ABI, `libpython3.so` is not produced by the upstream build system with --with-pydebug option if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND NOT VCPKG_BUILD_TYPE) set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) endif() set(OPTIONS "--with-openssl=${CURRENT_INSTALLED_DIR}" "--without-ensurepip" "--with-suffix=" "--with-system-expat" "--disable-test-modules" ) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_BSD) list(APPEND OPTIONS "LIBS=-liconv -lintl") endif() if("readline" IN_LIST FEATURES) list(APPEND OPTIONS "--with-readline") else() list(APPEND OPTIONS "--without-readline") endif() if(VCPKG_TARGET_IS_ANDROID) list(APPEND OPTIONS "--without-static-libpython" ) list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DANDROID_NO_UNDEFINED=OFF") endif() if(VCPKG_CROSSCOMPILING) # Cannot not run target executables during configure if(NOT PYTHON3_BUGGY_GETADDRINFO) list(APPEND OPTIONS "ac_cv_buggy_getaddrinfo=no") endif() if(NOT PYTHON3_NO_PTMX) list(APPEND OPTIONS "ac_cv_file__dev_ptmx=yes" "ac_cv_file__dev_ptc=no") endif() endif() # The version of the build Python must match the version of the cross compiled host Python. # https://docs.python.org/3/using/configure.html#cross-compiling-options if(VCPKG_CROSSCOMPILING) set(_python_for_build "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}") list(APPEND OPTIONS "--with-build-python=${_python_for_build}") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF DEFAULT_OPTIONS_EXCLUDE "^--(disable|enable)-static" OPTIONS ${OPTIONS} py_cv_module__curses=n/a py_cv_module__curses_panel=n/a py_cv_module__tkinter=n/a OPTIONS_DEBUG "--with-pydebug" "vcpkg_rpath=${CURRENT_INSTALLED_DIR}/debug/lib" OPTIONS_RELEASE "vcpkg_rpath=${CURRENT_INSTALLED_DIR}/lib" ) vcpkg_make_install(TARGETS altinstall) file(COPY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") # Makefiles, c files, __pycache__, and other junk. file(GLOB PYTHON_LIB_DIRS LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/*" "${CURRENT_PACKAGES_DIR}/debug/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/*") list(FILTER PYTHON_LIB_DIRS INCLUDE REGEX [[config-[0-9].*.*]]) file(REMOVE_RECURSE ${PYTHON_LIB_DIRS}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}d") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/man1") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") vcpkg_fixup_pkgconfig() # Perform some post-build checks on modules file(GLOB python_libs_dynload_debug LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/debug/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/lib-dynload/*.so*") file(GLOB python_libs_dynload_release LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/lib-dynload/*.so*") set(python_libs_dynload_failed_debug ${python_libs_dynload_debug}) set(python_libs_dynload_failed_release ${python_libs_dynload_release}) list(FILTER python_libs_dynload_failed_debug INCLUDE REGEX ".*_failed\.so.*") list(FILTER python_libs_dynload_failed_release INCLUDE REGEX ".*_failed\.so.*") if(python_libs_dynload_failed_debug OR python_libs_dynload_failed_release) list(JOIN python_libs_dynload_failed_debug "\n" python_libs_dynload_failed_debug_str) list(JOIN python_libs_dynload_failed_release "\n" python_libs_dynload_failed_release_str) message(FATAL_ERROR "There should be no modules with \"_failed\" suffix:\n${python_libs_dynload_failed_debug_str}\n${python_libs_dynload_failed_release_str}") endif() if(NOT VCPKG_BUILD_TYPE) list(LENGTH python_libs_dynload_release python_libs_dynload_release_length) list(LENGTH python_libs_dynload_debug python_libs_dynload_debug_length) if(NOT python_libs_dynload_release_length STREQUAL python_libs_dynload_debug_length) message(FATAL_ERROR "Mismatched number of modules: ${python_libs_dynload_debug_length} in debug, ${python_libs_dynload_release_length} in release") endif() endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) if(VCPKG_TARGET_IS_WINDOWS) if(PYTHON_HAS_EXTENSIONS) file(READ "${CMAKE_CURRENT_LIST_DIR}/usage.win" usage_extra) else() set(usage_extra "") endif() else() file(READ "${CMAKE_CURRENT_LIST_DIR}/usage.unix" usage_extra) endif() string(REPLACE "@PYTHON_VERSION_MINOR@" "${PYTHON_VERSION_MINOR}" usage_extra "${usage_extra}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "${usage}\n${usage_extra}") function(_generate_finder) cmake_parse_arguments(PythonFinder "NO_OVERRIDE;SUPPORTS_ARTIFACTS_PREFIX" "DIRECTORY;PREFIX" "" ${ARGN}) configure_file( "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PythonFinder_DIRECTORY}/vcpkg-cmake-wrapper.cmake" @ONLY ) endfunction() message(STATUS "Installing cmake wrappers") _generate_finder(DIRECTORY "python" PREFIX "Python" SUPPORTS_ARTIFACTS_PREFIX) _generate_finder(DIRECTORY "python3" PREFIX "Python3" SUPPORTS_ARTIFACTS_PREFIX) _generate_finder(DIRECTORY "pythoninterp" PREFIX "PYTHON" NO_OVERRIDE) if (NOT VCPKG_TARGET_IS_WINDOWS) function(replace_dirs_in_config_file python_config_file) vcpkg_replace_string("${python_config_file}" "${CURRENT_INSTALLED_DIR}" "' + _base + '") vcpkg_replace_string("${python_config_file}" "${CURRENT_HOST_INSTALLED_DIR}" "' + _base + '/../${HOST_TRIPLET}" IGNORE_UNCHANGED) vcpkg_replace_string("${python_config_file}" "${CURRENT_PACKAGES_DIR}" "' + _base + '") vcpkg_replace_string("${python_config_file}" "${CURRENT_BUILDTREES_DIR}" "not/existing") endfunction() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(GLOB python_config_files "${CURRENT_PACKAGES_DIR}/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/_sysconfigdata*") list(POP_FRONT python_config_files python_config_file) vcpkg_replace_string("${python_config_file}" "# system configuration generated and used by the sysconfig module" "# system configuration generated and used by the sysconfig module\nimport os\n_base = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))\n") replace_dirs_in_config_file("${python_config_file}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB python_config_files "${CURRENT_PACKAGES_DIR}/debug/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/_sysconfigdata*") list(POP_FRONT python_config_files python_config_file) vcpkg_replace_string("${python_config_file}" "# system configuration generated and used by the sysconfig module" "# system configuration generated and used by the sysconfig module\nimport os\n_base = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))\n") replace_dirs_in_config_file("${python_config_file}") endif() endif() if(NOT VCPKG_TARGET_IS_WINDOWS) file(COPY_FILE "${CURRENT_PACKAGES_DIR}/tools/python3/python3.${PYTHON_VERSION_MINOR}" "${CURRENT_PACKAGES_DIR}/tools/python3/python3") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) # For testing block() include("${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake") set(CURRENT_HOST_INSTALLED_DIR "${CURRENT_PACKAGES_DIR}") set(CURRENT_INSTALLED_DIR "${CURRENT_PACKAGES_DIR}") vcpkg_get_vcpkg_installed_python(VCPKG_PYTHON3) endblock() ================================================ FILE: ports/python3/python_vcpkg.props.in ================================================ _Py_HAVE_ZLIB;%(PreprocessorDefinitions) XML_STATIC;%(PreprocessorDefinitions) %(AdditionalIncludeDirectories);${CURRENT_INSTALLED_DIR}/include ${ZLIB_RELEASE};%(AdditionalDependencies) ${ZLIB_DEBUG};%(AdditionalDependencies) ${BZ2_RELEASE};${EXPAT_RELEASE};${FFI_RELEASE};${LZMA_RELEASE};${SQLITE_RELEASE};%(AdditionalDependencies) ${BZ2_DEBUG};${EXPAT_DEBUG};${FFI_DEBUG};${LZMA_DEBUG};${SQLITE_DEBUG};%(AdditionalDependencies) MachineX86 MachineX64 MachineARM ${ZLIB_RELEASE};%(AdditionalDependencies) ${ZLIB_DEBUG};%(AdditionalDependencies) ${BZ2_RELEASE};${EXPAT_RELEASE};${FFI_RELEASE};${LZMA_RELEASE};${SQLITE_RELEASE};%(AdditionalDependencies) ${BZ2_DEBUG};${EXPAT_DEBUG};${FFI_DEBUG};${LZMA_DEBUG};${SQLITE_DEBUG};%(AdditionalDependencies) ================================================ FILE: ports/python3/usage ================================================ The package python3 is compatible with built-in CMake targets: find_package(Python3 COMPONENTS Development REQUIRED) target_link_libraries(main PRIVATE Python3::Python) ================================================ FILE: ports/python3/usage.unix ================================================ The package python3 provides a python interpreter that supports virtual environments: $ tools/python3/python3.@PYTHON_VERSION_MINOR@ -m venv /path/to/venv $ export VIRTUAL_ENV=/path/to/venv $ export PATH=/path/to/venv/bin:$PATH $ export -n PYTHONHOME $ unset PYTHONHOME See https://docs.python.org/3/library/venv.html for more details. ================================================ FILE: ports/python3/usage.win ================================================ The package python3 provides a python interpreter that supports virtual environments: >tools\python3\python.exe -m venv c:\path\to\venv >set VIRTUAL_ENV=c:\path\to\venv >set PATH=c:\path\to\venv\bin;%PATH% >set PYTHONHOME= See https://docs.python.org/3/library/venv.html for more details. ================================================ FILE: ports/python3/vcpkg-cmake-wrapper.cmake ================================================ # For very old ports whose upstream do not properly set the minimum CMake version. cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) # This prevents the port's python.exe from overriding the Python fetched by # vcpkg_find_acquire_program(PYTHON3) and prevents the vcpkg toolchain from # stomping on FindPython's default functionality. list(REMOVE_ITEM CMAKE_PROGRAM_PATH "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/python3") if(@PythonFinder_NO_OVERRIDE@) _find_package(${ARGS}) return() endif() # CMake 4.0+ introduced Python_ARTIFACTS_PREFIX to add a suffix (yes, a suffix) # to the results of find_package(Python), so we need to handle that here. set(_PythonFinder_PREFIX "@PythonFinder_PREFIX@") if(@PythonFinder_SUPPORTS_ARTIFACTS_PREFIX@ AND CMAKE_VERSION VERSION_GREATER_EQUAL 4.0) string(APPEND _PythonFinder_PREFIX "${@PythonFinder_PREFIX@_ARTIFACTS_PREFIX}") endif() # CMake's FindPython's separation of concerns is very muddy. We only want to force vcpkg's Python # if the consumer is using the development component. What we don't want to do is break detection # of the system Python, which may have certain packages the user expects. But - if the user is # embedding Python or using both the development and interpreter components, then we need the # interpreter matching vcpkg's Python libraries. Note that the "Development" component implies # both "Development.Module" and "Development.Embed". # The android toolchain links with --no-undefined. So modules must be linked with Python libs. if("Development" IN_LIST ARGS OR "Development.Embed" IN_LIST ARGS) set(_PythonFinder_WantInterp TRUE) set(_PythonFinder_WantLibs TRUE) elseif("Development.Module" IN_LIST ARGS OR "Development.SABIModule" IN_LIST ARGS) if("Interpreter" IN_LIST ARGS) set(_PythonFinder_WantInterp TRUE) endif() set(_PythonFinder_WantLibs TRUE) if(ANDROID) list(APPEND ARGS COMPONENTS Development.Embed) endif() endif() if(_PythonFinder_WantLibs) find_path( _${_PythonFinder_PREFIX}_INCLUDE_DIR NAMES "Python.h" PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" PATH_SUFFIXES "python@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@" NO_DEFAULT_PATH ) # Don't set the public facing hint or the finder will be unable to detect the debug library. # Internally, it uses the same value with an underscore prepended. find_library( _${_PythonFinder_PREFIX}_LIBRARY_RELEASE NAMES "python@PYTHON_VERSION_MAJOR@@PYTHON_VERSION_MINOR@" "python@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@" PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH ) find_library( _${_PythonFinder_PREFIX}_LIBRARY_DEBUG NAMES "python@PYTHON_VERSION_MAJOR@@PYTHON_VERSION_MINOR@_d" "python@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@d" PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH ) if(_PythonFinder_WantInterp) find_program( ${_PythonFinder_PREFIX}_EXECUTABLE NAMES "python" "python@PYTHON_VERSION_MAJOR@.@PYTHON_VERSION_MINOR@" PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools/python3" NO_DEFAULT_PATH ) endif() # These are duplicated as normal variables to nullify FindPython's checksum verifications. set(_${_PythonFinder_PREFIX}_INCLUDE_DIR "${_${_PythonFinder_PREFIX}_INCLUDE_DIR}") set(_${_PythonFinder_PREFIX}_LIBRARY_RELEASE "${_${_PythonFinder_PREFIX}_LIBRARY_RELEASE}") set(_${_PythonFinder_PREFIX}_LIBRARY_DEBUG "${_${_PythonFinder_PREFIX}_LIBRARY_DEBUG}") _find_package(${ARGS}) get_directory_property(_${_PythonFinder_PREFIX}_IMPORTED_TARGETS IMPORTED_TARGETS) if(ANDROID AND ${_PythonFinder_PREFIX}::Module IN_LIST _${_PythonFinder_PREFIX}_IMPORTED_TARGETS) set_property(TARGET ${_PythonFinder_PREFIX}::Module APPEND PROPERTY INTERFACE_LINK_LIBRARIES $) endif() unset(_${_PythonFinder_PREFIX}_IMPORTED_TARGETS) if(@VCPKG_LIBRARY_LINKAGE@ STREQUAL "static") # Python for Windows embeds the zlib module into the core, so we have to link against it. # This is a separate extension module on Unix-like platforms. if(WIN32) find_package(ZLIB) if(TARGET ${_PythonFinder_PREFIX}::Python) set_property(TARGET ${_PythonFinder_PREFIX}::Python APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) endif() if(TARGET ${_PythonFinder_PREFIX}::Module) set_property(TARGET ${_PythonFinder_PREFIX}::Module APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) endif() if(DEFINED ${_PythonFinder_PREFIX}_LIBRARIES) list(APPEND ${_PythonFinder_PREFIX}_LIBRARIES ${ZLIB_LIBRARIES}) endif() endif() if(UNIX AND NOT APPLE) if(TARGET ${_PythonFinder_PREFIX}::Python) set_property(TARGET ${_PythonFinder_PREFIX}::Python APPEND PROPERTY INTERFACE_LINK_LIBRARIES m) endif() if(TARGET ${_PythonFinder_PREFIX}::Module) set_property(TARGET ${_PythonFinder_PREFIX}::Module APPEND PROPERTY INTERFACE_LINK_LIBRARIES m) endif() if(DEFINED ${_PythonFinder_PREFIX}_LIBRARIES) list(APPEND ${_PythonFinder_PREFIX}_LIBRARIES m) endif() endif() if(APPLE) find_package(Iconv) find_package(Intl) if(TARGET ${_PythonFinder_PREFIX}::Python) get_target_property(_PYTHON_INTERFACE_LIBS ${_PythonFinder_PREFIX}::Python INTERFACE_LINK_LIBRARIES) if(NOT _PYTHON_INTERFACE_LIBS) set(_PYTHON_INTERFACE_LIBS "") endif() list(REMOVE_ITEM _PYTHON_INTERFACE_LIBS "-liconv" "-lintl") list(APPEND _PYTHON_INTERFACE_LIBS Iconv::Iconv "$,${Intl_LIBRARY_DEBUG},${Intl_LIBRARY_RELEASE}>" ) set_property(TARGET ${_PythonFinder_PREFIX}::Python PROPERTY INTERFACE_LINK_LIBRARIES ${_PYTHON_INTERFACE_LIBS}) unset(_PYTHON_INTERFACE_LIBS) endif() if(TARGET ${_PythonFinder_PREFIX}::Module) get_target_property(_PYTHON_INTERFACE_LIBS ${_PythonFinder_PREFIX}::Module INTERFACE_LINK_LIBRARIES) if(NOT _PYTHON_INTERFACE_LIBS) set(_PYTHON_INTERFACE_LIBS "") endif() list(REMOVE_ITEM _PYTHON_INTERFACE_LIBS "-liconv" "-lintl") list(APPEND _PYTHON_INTERFACE_LIBS Iconv::Iconv "$,${Intl_LIBRARY_DEBUG},${Intl_LIBRARY_RELEASE}>" ) set_property(TARGET ${_PythonFinder_PREFIX}::Module PROPERTY INTERFACE_LINK_LIBRARIES ${_PYTHON_INTERFACE_LIBS}) unset(_PYTHON_INTERFACE_LIBS) endif() if(DEFINED ${_PythonFinder_PREFIX}_LIBRARIES) list(APPEND ${_PythonFinder_PREFIX}_LIBRARIES "-framework CoreFoundation" ${Iconv_LIBRARIES} ${Intl_LIBRARIES}) endif() endif() endif() else() _find_package(${ARGS}) endif() if(TARGET ${_PythonFinder_PREFIX}::Python) target_compile_definitions(${_PythonFinder_PREFIX}::Python INTERFACE "Py_NO_LINK_LIB") endif() if(TARGET ${_PythonFinder_PREFIX}::Module) target_compile_definitions(${_PythonFinder_PREFIX}::Module INTERFACE "Py_NO_LINK_LIB") endif() if(TARGET ${_PythonFinder_PREFIX}::SABIModule) target_compile_definitions(${_PythonFinder_PREFIX}::SABIModule INTERFACE "Py_NO_LINK_LIB") endif() unset(_PythonFinder_PREFIX) unset(_PythonFinder_WantInterp) unset(_PythonFinder_WantLibs) ================================================ FILE: ports/python3/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) set(PYTHON3_VERSION "@VERSION@") set(PYTHON3_VERSION_MAJOR "@PYTHON_VERSION_MAJOR@") set(PYTHON3_VERSION_MINOR "@PYTHON_VERSION_MINOR@") set(PYTHON3_INCLUDE "include/python${PYTHON3_VERSION_MAJOR}.${PYTHON3_VERSION_MINOR}") set(PYTHON3_HAS_EXTENSIONS "@PYTHON_HAS_EXTENSIONS@") set(site_base "") if(VCPKG_TARGET_IS_WINDOWS) set(site_base "tools/python${PYTHON3_VERSION_MAJOR}/Lib") else() set(site_base "lib/python${PYTHON3_VERSION_MAJOR}.${PYTHON3_VERSION_MINOR}") endif() set(PYTHON3_SITE "${site_base}/site-packages") include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-get-python/vcpkg-port-config.cmake") ================================================ FILE: ports/python3/vcpkg.json ================================================ { "name": "python3", "version": "3.12.13", "description": "The Python programming language", "homepage": "https://github.com/python/cpython", "license": "Python-2.0", "supports": "!uwp & !mingw", "dependencies": [ { "name": "gettext-libintl", "platform": "!windows" }, { "name": "libiconv", "platform": "!windows" }, { "name": "libuuid", "platform": "!osx & !windows" }, { "name": "python3", "host": true, "default-features": false }, { "name": "python3", "features": [ "extensions" ], "platform": "!windows" }, { "name": "vcpkg-get-python", "host": true }, { "name": "vcpkg-make", "host": true, "platform": "!windows" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" }, "zlib" ], "default-features": [ { "name": "extensions", "platform": "!(staticcrt & windows)" } ], "features": { "extensions": { "description": "Allow the build and usage of python extensions. On windows this requires python to be a dynamic library!", "supports": "!(staticcrt & windows)", "dependencies": [ { "name": "bzip2", "default-features": false }, { "name": "expat", "default-features": false }, { "name": "libb2", "default-features": false, "platform": "!windows" }, { "name": "libffi", "default-features": false }, { "name": "liblzma", "default-features": false }, { "name": "openssl", "default-features": false }, { "name": "sqlite3", "default-features": false }, { "name": "vcpkg-pkgconfig-get-modules", "host": true, "platform": "windows & !mingw" } ] }, "readline": { "description": "Build with readline.", "supports": "!windows", "dependencies": [ "readline" ] } } } ================================================ FILE: ports/qca/0001-fix-path-for-vcpkg.patch ================================================ diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" index 1f84c2c9e..f72ee9d8d 100644 --- "a/CMakeLists.txt" +++ "b/CMakeLists.txt" @@ -58,6 +58,7 @@ set(QCA_SUFFIX "qt5") if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) set(STATIC_PLUGINS ON) add_definitions(-DQT_STATICPLUGIN) + add_definitions(-DQCA_STATIC) set(PLUGIN_TYPE "STATIC") else() set(PLUGIN_TYPE "MODULE") @@ -266,10 +267,17 @@ if(DEVELOPER_MODE) add_definitions(-DDEVELOPER_MODE) # To prefer plugins from build tree when run qca from build tree - file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf -"[Paths] -Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} -") + if(NOT BUILD_SHARED_LIBS OR QT_IS_STATIC) + file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf + "[Paths] + Plugins=${CMAKE_BINARY_DIR}/lib/${QCA_LIB_NAME} + ") + else() + file(WRITE ${CMAKE_BINARY_DIR}/bin/qt.conf + "[Paths] + Plugins=${CMAKE_BINARY_DIR}/bin/${QCA_LIB_NAME} + ") + endif() endif() if (APPLE) @@ -309,7 +317,7 @@ else() set( qca_CERTSTORE "${CMAKE_CURRENT_SOURCE_DIR}/certs/rootcerts.pem") # note that INSTALL_FILES targets are relative to the current installation prefix... if(NOT DEVELOPER_MODE) - install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/certs") + install(FILES "${qca_CERTSTORE}" DESTINATION "${QCA_PREFIX_INSTALL_DIR}/share/qca/certs") endif() endif() message(STATUS "certstore path: " ${qca_CERTSTORE}) @@ -390,10 +398,10 @@ endif() include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/QcaConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" - INSTALL_DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} + "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" + INSTALL_DESTINATION ${CMAKE_BINARY_DIR}/share/qca/cmake ) -write_basic_config_version_file("${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) +write_basic_config_version_file("${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" VERSION ${QCA_LIB_VERSION_STRING} COMPATIBILITY AnyNewerVersion) if(NOT DEVELOPER_MODE) @@ -461,10 +469,10 @@ if(NOT DEVELOPER_MODE) endif() endif() - install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) + install(EXPORT ${QCA_CONFIG_NAME_BASE}Targets DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake FILE ${QCA_CONFIG_NAME_BASE}Targets.cmake) install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}Config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/lib/cmake/${QCA_CONFIG_NAME_BASE}/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" - DESTINATION ${QCA_LIBRARY_INSTALL_DIR}/cmake/${QCA_CONFIG_NAME_BASE} + "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}Config.cmake" + "${CMAKE_BINARY_DIR}/share/qca/cmake/${QCA_CONFIG_NAME_BASE}ConfigVersion.cmake" + DESTINATION ${QCA_PREFIX_INSTALL_DIR}/share/qca/cmake ) endif() ================================================ FILE: ports/qca/0002-fix-build-error.patch ================================================ From 8d67288a3dde7e535ff747715f96f98282a3bf67 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Fri, 3 Dec 2021 15:17:25 +0100 Subject: [PATCH] Ifdef codecs --- cmake/modules/QcaMacro.cmake | 9 --------- plugins/qca-ossl/qca-ossl.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/cmake/modules/QcaMacro.cmake b/cmake/modules/QcaMacro.cmake index 80af6e84..ba86310d 100644 --- a/cmake/modules/QcaMacro.cmake +++ b/cmake/modules/QcaMacro.cmake @@ -65,10 +65,6 @@ macro(add_qca_test TARGET DESCRIPTION) endmacro(add_qca_test) macro(install_pdb TARGET INSTALL_PATH) - if(MSVC) - install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS Debug) - install(FILES $ DESTINATION ${INSTALL_PATH} CONFIGURATIONS RelWithDebInfo) - endif() endmacro(install_pdb) macro(normalize_path PATH) ================================================ FILE: ports/qca/0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch ================================================ From f32f5ae8b8b49653bfff87f2f882862bcaa8c3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?= =?UTF-8?q?=20=28Mehdi=20Chinoune=29?= Date: Mon, 20 Mar 2023 16:21:18 +0100 Subject: [PATCH] Define NOMINMAX to fix building qca-botan plugin with MSVC --- plugins/qca-botan/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/qca-botan/CMakeLists.txt b/plugins/qca-botan/CMakeLists.txt index 11c0d20..9b8b978 100644 --- a/plugins/qca-botan/CMakeLists.txt +++ b/plugins/qca-botan/CMakeLists.txt @@ -11,6 +11,10 @@ if(BOTAN_FOUND) set(QCA_BOTAN_SOURCES qca-botan.cpp) add_library(qca-botan ${PLUGIN_TYPE} ${QCA_BOTAN_SOURCES}) + if(MSVC) + target_compile_definitions(qca-botan PRIVATE NOMINMAX) + endif() + if(APPLE AND ${PLUGIN_TYPE} STREQUAL "MODULE") set_property(TARGET qca-botan PROPERTY SUFFIX ".dylib") endif() -- 2.40.0.windows.1 ================================================ FILE: ports/qca/0004-fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a1680f..9a70ccd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,10 +15,6 @@ set(QCA_LIB_MAJOR_VERSION "2") set(QCA_LIB_MINOR_VERSION "3") set(QCA_LIB_PATCH_VERSION "7") -if(POLICY CMP0042) - cmake_policy(SET CMP0042 OLD) -endif() - option(BUILD_WITH_QT6 "Build with Qt 6" OFF) option(BUILD_TESTS "Create test" ON) option(BUILD_TOOLS "Compile mozcerts and qcatool" ON) ================================================ FILE: ports/qca/mk-ca-bundle.pl ================================================ #!/usr/bin/perl -w # *************************************************************************** # * _ _ ____ _ # * Project ___| | | | _ \| | # * / __| | | | |_) | | # * | (__| |_| | _ <| |___ # * \___|\___/|_| \_\_____| # * # * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. # * # * This software is licensed as described in the file COPYING, which # * you should have received as part of this distribution. The terms # * are also available at https://curl.haxx.se/docs/copyright.html. # * # * You may opt to use, copy, modify, merge, publish, distribute and/or sell # * copies of the Software, and permit persons to whom the Software is # * furnished to do so, under the terms of the COPYING file. # * # * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # * KIND, either express or implied. # * # *************************************************************************** # This Perl script creates a fresh ca-bundle.crt file for use with libcurl. # It downloads certdata.txt from Mozilla's source tree (see URL below), # then parses certdata.txt and extracts CA Root Certificates into PEM format. # These are then processed with the OpenSSL commandline tool to produce the # final ca-bundle.crt file. # The script is based on the parse-certs script written by Roland Krikava. # This Perl script works on almost any platform since its only external # dependency is the OpenSSL commandline tool for optional text listing. # Hacked by Guenter Knauf. # use Encode; use Getopt::Std; use MIME::Base64; use strict; use vars qw($opt_b $opt_d $opt_f $opt_h $opt_i $opt_k $opt_l $opt_m $opt_n $opt_p $opt_q $opt_s $opt_t $opt_u $opt_v $opt_w); use List::Util; use Text::Wrap; my $MOD_SHA = "Digest::SHA"; eval "require $MOD_SHA"; if ($@) { $MOD_SHA = "Digest::SHA::PurePerl"; eval "require $MOD_SHA"; } eval "require LWP::UserAgent"; my %urls = ( 'nss' => 'https://hg.mozilla.org/projects/nss/raw-file/tip/lib/ckfw/builtins/certdata.txt', 'central' => 'https://hg.mozilla.org/mozilla-central/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', 'aurora' => 'https://hg.mozilla.org/releases/mozilla-aurora/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', 'beta' => 'https://hg.mozilla.org/releases/mozilla-beta/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', 'release' => 'https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt', ); $opt_d = 'release'; # If the OpenSSL commandline is not in search path you can configure it here! my $openssl = 'openssl'; my $version = '1.27'; $opt_w = 76; # default base64 encoded lines length # default cert types to include in the output (default is to include CAs which may issue SSL server certs) my $default_mozilla_trust_purposes = "SERVER_AUTH"; my $default_mozilla_trust_levels = "TRUSTED_DELEGATOR"; $opt_p = $default_mozilla_trust_purposes . ":" . $default_mozilla_trust_levels; my @valid_mozilla_trust_purposes = ( "DIGITAL_SIGNATURE", "NON_REPUDIATION", "KEY_ENCIPHERMENT", "DATA_ENCIPHERMENT", "KEY_AGREEMENT", "KEY_CERT_SIGN", "CRL_SIGN", "SERVER_AUTH", "CLIENT_AUTH", "CODE_SIGNING", "EMAIL_PROTECTION", "IPSEC_END_SYSTEM", "IPSEC_TUNNEL", "IPSEC_USER", "TIME_STAMPING", "STEP_UP_APPROVED" ); my @valid_mozilla_trust_levels = ( "TRUSTED_DELEGATOR", # CAs "NOT_TRUSTED", # Don't trust these certs. "MUST_VERIFY_TRUST", # This explicitly tells us that it ISN'T a CA but is otherwise ok. In other words, this should tell the app to ignore any other sources that claim this is a CA. "TRUSTED" # This cert is trusted, but only for itself and not for delegates (i.e. it is not a CA). ); my $default_signature_algorithms = $opt_s = "MD5"; my @valid_signature_algorithms = ( "MD5", "SHA1", "SHA256", "SHA384", "SHA512" ); $0 =~ s@.*(/|\\)@@; $Getopt::Std::STANDARD_HELP_VERSION = 1; getopts('bd:fhiklmnp:qs:tuvw:'); if(!defined($opt_d)) { # to make plain "-d" use not cause warnings, and actually still work $opt_d = 'release'; } # Use predefined URL or else custom URL specified on command line. my $url; if(defined($urls{$opt_d})) { $url = $urls{$opt_d}; if(!$opt_k && $url !~ /^https:\/\//i) { die "The URL for '$opt_d' is not HTTPS. Use -k to override (insecure).\n"; } } else { $url = $opt_d; } my $curl = `curl -V`; if ($opt_i) { print ("=" x 78 . "\n"); print "Script Version : $version\n"; print "Perl Version : $]\n"; print "Operating System Name : $^O\n"; print "Getopt::Std.pm Version : ${Getopt::Std::VERSION}\n"; print "MIME::Base64.pm Version : ${MIME::Base64::VERSION}\n"; print "LWP::UserAgent.pm Version : ${LWP::UserAgent::VERSION}\n" if($LWP::UserAgent::VERSION); print "LWP.pm Version : ${LWP::VERSION}\n" if($LWP::VERSION); print "Digest::SHA.pm Version : ${Digest::SHA::VERSION}\n" if ($Digest::SHA::VERSION); print "Digest::SHA::PurePerl.pm Version : ${Digest::SHA::PurePerl::VERSION}\n" if ($Digest::SHA::PurePerl::VERSION); print ("=" x 78 . "\n"); } sub warning_message() { if ( $opt_d =~ m/^risk$/i ) { # Long Form Warning and Exit print "Warning: Use of this script may pose some risk:\n"; print "\n"; print " 1) If you use HTTP URLs they are subject to a man in the middle attack\n"; print " 2) Default to 'release', but more recent updates may be found in other trees\n"; print " 3) certdata.txt file format may change, lag time to update this script\n"; print " 4) Generally unwise to blindly trust CAs without manual review & verification\n"; print " 5) Mozilla apps use additional security checks aren't represented in certdata\n"; print " 6) Use of this script will make a security engineer grind his teeth and\n"; print " swear at you. ;)\n"; exit; } else { # Short Form Warning print "Warning: Use of this script may pose some risk, -d risk for more details.\n"; } } sub HELP_MESSAGE() { print "Usage:\t${0} [-b] [-d] [-f] [-i] [-k] [-l] [-n] [-p] [-q] [-s] [-t] [-u] [-v] [-w] []\n"; print "\t-b\tbackup an existing version of ca-bundle.crt\n"; print "\t-d\tspecify Mozilla tree to pull certdata.txt or custom URL\n"; print "\t\t Valid names are:\n"; print "\t\t ", join( ", ", map { ( $_ =~ m/$opt_d/ ) ? "$_ (default)" : "$_" } sort keys %urls ), "\n"; print "\t-f\tforce rebuild even if certdata.txt is current\n"; print "\t-i\tprint version info about used modules\n"; print "\t-k\tallow URLs other than HTTPS, enable HTTP fallback (insecure)\n"; print "\t-l\tprint license info about certdata.txt\n"; print "\t-m\tinclude meta data in output\n"; print "\t-n\tno download of certdata.txt (to use existing)\n"; print wrap("\t","\t\t", "-p\tlist of Mozilla trust purposes and levels for certificates to include in output. Takes the form of a comma separated list of purposes, a colon, and a comma separated list of levels. (default: $default_mozilla_trust_purposes:$default_mozilla_trust_levels)"), "\n"; print "\t\t Valid purposes are:\n"; print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_purposes ) ), "\n"; print "\t\t Valid levels are:\n"; print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_mozilla_trust_levels ) ), "\n"; print "\t-q\tbe really quiet (no progress output at all)\n"; print wrap("\t","\t\t", "-s\tcomma separated list of certificate signatures/hashes to output in plain text mode. (default: $default_signature_algorithms)\n"); print "\t\t Valid signature algorithms are:\n"; print wrap("\t\t ","\t\t ", join( ", ", "ALL", @valid_signature_algorithms ) ), "\n"; print "\t-t\tinclude plain text listing of certificates\n"; print "\t-u\tunlink (remove) certdata.txt after processing\n"; print "\t-v\tbe verbose and print out processed CAs\n"; print "\t-w \twrap base64 output lines after chars (default: ${opt_w})\n"; exit; } sub VERSION_MESSAGE() { print "${0} version ${version} running Perl ${]} on ${^O}\n"; } warning_message() unless ($opt_q || $url =~ m/^(ht|f)tps:/i ); HELP_MESSAGE() if ($opt_h); sub report($@) { my $output = shift; print STDERR $output . "\n" unless $opt_q; } sub is_in_list($@) { my $target = shift; return defined(List::Util::first { $target eq $_ } @_); } # Parses $param_string as a case insensitive comma separated list with optional whitespace # validates that only allowed parameters are supplied sub parse_csv_param($$@) { my $description = shift; my $param_string = shift; my @valid_values = @_; my @values = map { s/^\s+//; # strip leading spaces s/\s+$//; # strip trailing spaces uc $_ # return the modified string as upper case } split( ',', $param_string ); # Find all values which are not in the list of valid values or "ALL" my @invalid = grep { !is_in_list($_,"ALL",@valid_values) } @values; if ( scalar(@invalid) > 0 ) { # Tell the user which parameters were invalid and print the standard help message which will exit print "Error: Invalid ", $description, scalar(@invalid) == 1 ? ": " : "s: ", join( ", ", map { "\"$_\"" } @invalid ), "\n"; HELP_MESSAGE(); } @values = @valid_values if ( is_in_list("ALL",@values) ); return @values; } sub sha256 { my $result; if ($Digest::SHA::VERSION || $Digest::SHA::PurePerl::VERSION) { open(FILE, $_[0]) or die "Can't open '$_[0]': $!"; binmode(FILE); $result = $MOD_SHA->new(256)->addfile(*FILE)->hexdigest; close(FILE); } else { # Use OpenSSL command if Perl Digest::SHA modules not available $result = `"$openssl" dgst -r -sha256 "$_[0]"`; $result =~ s/^([0-9a-f]{64}) .+/$1/is; } return $result; } sub oldhash { my $hash = ""; open(C, "<$_[0]") || return 0; while() { chomp; if($_ =~ /^\#\# SHA256: (.*)/) { $hash = $1; last; } } close(C); return $hash; } if ( $opt_p !~ m/:/ ) { print "Error: Mozilla trust identifier list must include both purposes and levels\n"; HELP_MESSAGE(); } (my $included_mozilla_trust_purposes_string, my $included_mozilla_trust_levels_string) = split( ':', $opt_p ); my @included_mozilla_trust_purposes = parse_csv_param( "trust purpose", $included_mozilla_trust_purposes_string, @valid_mozilla_trust_purposes ); my @included_mozilla_trust_levels = parse_csv_param( "trust level", $included_mozilla_trust_levels_string, @valid_mozilla_trust_levels ); my @included_signature_algorithms = parse_csv_param( "signature algorithm", $opt_s, @valid_signature_algorithms ); sub should_output_cert(%) { my %trust_purposes_by_level = @_; foreach my $level (@included_mozilla_trust_levels) { # for each level we want to output, see if any of our desired purposes are included return 1 if ( defined( List::Util::first { is_in_list( $_, @included_mozilla_trust_purposes ) } @{$trust_purposes_by_level{$level}} ) ); } return 0; } my $crt = $ARGV[0] || 'ca-bundle.crt'; (my $txt = $url) =~ s@(.*/|\?.*)@@g; my $stdout = $crt eq '-'; my $resp; my $fetched; my $oldhash = oldhash($crt); report "SHA256 of old file: $oldhash"; if(!$opt_n) { report "Downloading $txt ..."; # If we have an HTTPS URL then use curl if($url =~ /^https:\/\//i) { if($curl) { if($curl =~ /^Protocols:.* https( |$)/m) { report "Get certdata with curl!"; my $proto = !$opt_k ? "--proto =https" : ""; my $quiet = $opt_q ? "-s" : ""; my @out = `curl -w %{response_code} $proto $quiet -o "$txt" "$url"`; if(@out && $out[0] == 200) { $fetched = 1; report "Downloaded $txt"; } else { report "Failed downloading via HTTPS with curl"; if(-e $txt && !unlink($txt)) { report "Failed to remove '$txt': $!"; } } } else { report "curl lacks https support"; } } else { report "curl not found"; } } # If nothing was fetched then use LWP if(!$fetched) { if($url =~ /^https:\/\//i) { report "Falling back to HTTP"; $url =~ s/^https:\/\//http:\/\//i; } if(!$opt_k) { report "URLs other than HTTPS are disabled by default, to enable use -k"; exit 1; } report "Get certdata with LWP!"; if(!defined(${LWP::UserAgent::VERSION})) { report "LWP is not available (LWP::UserAgent not found)"; exit 1; } my $ua = new LWP::UserAgent(agent => "$0/$version"); $ua->env_proxy(); $resp = $ua->mirror($url, $txt); if($resp && $resp->code eq '304') { report "Not modified"; exit 0 if -e $crt && !$opt_f; } else { $fetched = 1; report "Downloaded $txt"; } if(!$resp || $resp->code !~ /^(?:200|304)$/) { report "Unable to download latest data: " . ($resp? $resp->code . ' - ' . $resp->message : "LWP failed"); exit 1 if -e $crt || ! -r $txt; } } } my $filedate = $resp ? $resp->last_modified : (stat($txt))[9]; my $datesrc = "as of"; if(!$filedate) { # mxr.mozilla.org gave us a time, hg.mozilla.org does not! $filedate = time(); $datesrc="downloaded on"; } # get the hash from the download file my $newhash= sha256($txt); if(!$opt_f && $oldhash eq $newhash) { report "Downloaded file identical to previous run\'s source file. Exiting"; exit; } report "SHA256 of new file: $newhash"; my $currentdate = scalar gmtime($filedate); my $format = $opt_t ? "plain text and " : ""; if( $stdout ) { open(CRT, '> -') or die "Couldn't open STDOUT: $!\n"; } else { open(CRT,">$crt.~") or die "Couldn't open $crt.~: $!\n"; } print CRT <) { if (/\*\*\*\*\* BEGIN LICENSE BLOCK \*\*\*\*\*/) { print CRT; print if ($opt_l); while () { print CRT; print if ($opt_l); last if (/\*\*\*\*\* END LICENSE BLOCK \*\*\*\*\*/); } } elsif(/^# (Issuer|Serial Number|Subject|Not Valid Before|Not Valid After |Fingerprint \(MD5\)|Fingerprint \(SHA1\)):/) { push @precert, $_; next; } elsif(/^#|^\s*$/) { undef @precert; next; } chomp; # this is a match for the start of a certificate if (/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/) { $start_of_cert = 1 } if ($start_of_cert && /^CKA_LABEL UTF8 \"(.*)\"/) { $caname = $1; } my %trust_purposes_by_level; if ($start_of_cert && /^CKA_VALUE MULTILINE_OCTAL/) { my $data; while () { last if (/^END/); chomp; my @octets = split(/\\/); shift @octets; for (@octets) { $data .= chr(oct); } } # scan forwards until the trust part while () { last if (/^CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST/); chomp; } # now scan the trust part to determine how we should trust this cert while () { last if (/^#/); if (/^CKA_TRUST_([A-Z_]+)\s+CK_TRUST\s+CKT_NSS_([A-Z_]+)\s*$/) { if ( !is_in_list($1,@valid_mozilla_trust_purposes) ) { report "Warning: Unrecognized trust purpose for cert: $caname. Trust purpose: $1. Trust Level: $2"; } elsif ( !is_in_list($2,@valid_mozilla_trust_levels) ) { report "Warning: Unrecognized trust level for cert: $caname. Trust purpose: $1. Trust Level: $2"; } else { push @{$trust_purposes_by_level{$2}}, $1; } } } if ( !should_output_cert(%trust_purposes_by_level) ) { $skipnum ++; } else { my $encoded = MIME::Base64::encode_base64($data, ''); $encoded =~ s/(.{1,${opt_w}})/$1\n/g; my $pem = "-----BEGIN CERTIFICATE-----\n" . $encoded . "-----END CERTIFICATE-----\n"; print CRT "\n$caname\n"; print CRT @precert if($opt_m); my $maxStringLength = length(decode('UTF-8', $caname, Encode::FB_CROAK)); if ($opt_t) { foreach my $key (keys %trust_purposes_by_level) { my $string = $key . ": " . join(", ", @{$trust_purposes_by_level{$key}}); $maxStringLength = List::Util::max( length($string), $maxStringLength ); print CRT $string . "\n"; } } print CRT ("=" x $maxStringLength . "\n"); if (!$opt_t) { print CRT $pem; } else { my $pipe = ""; foreach my $hash (@included_signature_algorithms) { $pipe = "|$openssl x509 -" . $hash . " -fingerprint -noout -inform PEM"; if (!$stdout) { $pipe .= " >> $crt.~"; close(CRT) or die "Couldn't close $crt.~: $!"; } open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; print TMP $pem; close(TMP) or die "Couldn't close openssl pipe: $!"; if (!$stdout) { open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; } } $pipe = "|$openssl x509 -text -inform PEM"; if (!$stdout) { $pipe .= " >> $crt.~"; close(CRT) or die "Couldn't close $crt.~: $!"; } open(TMP, $pipe) or die "Couldn't open openssl pipe: $!"; print TMP $pem; close(TMP) or die "Couldn't close openssl pipe: $!"; if (!$stdout) { open(CRT, ">>$crt.~") or die "Couldn't open $crt.~: $!"; } } report "Parsing: $caname" if ($opt_v); $certnum ++; $start_of_cert = 0; } undef @precert; } } close(TXT) or die "Couldn't close $txt: $!\n"; close(CRT) or die "Couldn't close $crt.~: $!\n"; unless( $stdout ) { if ($opt_b && -e $crt) { my $bk = 1; while (-e "$crt.~${bk}~") { $bk++; } rename $crt, "$crt.~${bk}~" or die "Failed to create backup $crt.~$bk}~: $!\n"; } elsif( -e $crt ) { unlink( $crt ) or die "Failed to remove $crt: $!\n"; } rename "$crt.~", $crt or die "Failed to rename $crt.~ to $crt: $!\n"; } if($opt_u && -e $txt && !unlink($txt)) { report "Failed to remove $txt: $!\n"; } report "Done ($certnum CA certs processed, $skipnum skipped)."; ================================================ FILE: ports/qca/portfile.cmake ================================================ # This portfile adds the Qt Cryptographic Arcitecture # Changes to the original build: # No -qt5 suffix, which is recommended just for Linux # Output directories according to vcpkg # Updated certstore. See certstore.pem in the output dirs # vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KDE/qca REF "v${VERSION}" SHA512 de06173aaea32aac19a24510b5dbb4bb79681217eb1e4256de36db9f7158ad485fa450ffba5e13c12a0425866923b54f9b4d6164d0eaf659fdf40e458f5ee017 PATCHES 0001-fix-path-for-vcpkg.patch 0002-fix-build-error.patch 0003-Define-NOMINMAX-for-botan-plugin-with-MSVC.patch 0004-fix-cmake4.patch ) vcpkg_find_acquire_program(PKGCONFIG) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(QCA_PLUGIN_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/Qca) set(QCA_PLUGIN_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/bin/Qca) else() set(QCA_PLUGIN_INSTALL_DIR_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/Qca) set(QCA_PLUGIN_INSTALL_DIR_RELEASE ${CURRENT_PACKAGES_DIR}/lib/Qca) endif() # According to: # https://www.openssl.org/docs/faq.html#USER16 # it is up to developers or admins to maintain CAs. # So we do it here: message(STATUS "Importing certstore") file(REMOVE "${SOURCE_PATH}/certs/rootcerts.pem") # Using file(DOWNLOAD) to use https file(DOWNLOAD https://raw.githubusercontent.com/mozilla/gecko-dev/master/security/nss/lib/ckfw/builtins/certdata.txt "${CURRENT_BUILDTREES_DIR}/cert/certdata.txt" TLS_VERIFY ON ) vcpkg_execute_required_process( COMMAND "${PERL}" "${CMAKE_CURRENT_LIST_DIR}/mk-ca-bundle.pl" -n "${SOURCE_PATH}/certs/rootcerts.pem" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/cert" LOGNAME ca-bundle ) message(STATUS "Importing certstore done") set(PLUGINS gnupg logger wincrypto) if("botan" IN_LIST FEATURES) list(APPEND PLUGINS botan) endif() if ("ossl" IN_LIST FEATURES) list(APPEND PLUGINS ossl) endif() if (VCPKG_TARGET_IS_OSX AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") message(STATUS "Building with an osx-dynamic triplet: 'softstore' disabled.") else() list(APPEND PLUGINS softstore) endif() # Configure and build vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_RELATIVE_PATHS=ON "-DBUILD_PLUGINS=${PLUGINS}" -DBUILD_TESTS=OFF -DBUILD_TOOLS=OFF -DBUILD_WITH_QT6=ON -DQCA_SUFFIX=OFF -DQCA_FEATURE_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/share/qca/mkspecs/features -DOSX_FRAMEWORK=OFF "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" OPTIONS_DEBUG -DQCA_PLUGINS_INSTALL_DIR=${QCA_PLUGIN_INSTALL_DIR_DEBUG} OPTIONS_RELEASE -DQCA_PLUGINS_INSTALL_DIR=${QCA_PLUGIN_INSTALL_DIR_RELEASE} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/qca/cmake) file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" QCA_CONFIG_FILE) string(REGEX REPLACE "PACKAGE_PREFIX_DIR \"(.*)\" ABSOLUTE" [[PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE]] QCA_CONFIG_FILE "${QCA_CONFIG_FILE}" ) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/QcaConfig.cmake" "${QCA_CONFIG_FILE}") # Remove unneeded dirs file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/share/man" "${CURRENT_PACKAGES_DIR}/share/man" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_fixup_pkgconfig() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/qca/vcpkg.json ================================================ { "name": "qca", "version": "2.3.7", "port-version": 4, "description": "Qt Cryptographic Architecture (QCA).", "homepage": "https://userbase.kde.org/QCA", "dependencies": [ { "name": "qt5compat", "default-features": false }, { "name": "qtbase", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "botan" ], "features": { "botan": { "description": "Build with botan", "dependencies": [ "botan" ] }, "ossl": { "description": "Build with openssl", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/qcbor/install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3537c27..bf569a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,8 @@ target_sources(qcbor target_include_directories(qcbor PUBLIC - inc + $ + $ PRIVATE src ) @@ -90,8 +91,13 @@ set_target_properties( include(GNUInstallDirs) install( TARGETS qcbor + EXPORT unofficial-qcbor-targets PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qcbor" ) +install(EXPORT unofficial-qcbor-targets + FILE unofficial-qcbor-config.cmake + NAMESPACE unofficial::qcbor:: + DESTINATION share/unofficial-qcbor) if (NOT BUILD_QCBOR_TEST STREQUAL "OFF") enable_testing() ================================================ FILE: ports/qcbor/portfile.cmake ================================================ # No DLL export(yet) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO laurencelundblade/QCBOR REF v${VERSION} SHA512 cae2f9ed6554744733bed03e751179eee36988918b1f3fd42fe833650613b4ec06e260bb4a9e9663c8498b7b6dbb1369e7d5fd0c900c4767070ea3d94d4ddab7 HEAD_REF master PATCHES install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_QCBOR_TEST=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qcbor/vcpkg.json ================================================ { "name": "qcbor", "version": "1.6", "description": "Comprehensive, powerful, commercial-quality CBOR encoder/ decoder that is still suited for small devices.", "homepage": "https://github.com/laurencelundblade/QCBOR", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qcoro/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qcoro/qcoro REF "v${VERSION}" SHA512 f1da90c4a9bec5f52ec9f40caa30c8465658c6ff005c6c7e89aeb97acc4aefd5e34030493b7e51313a6d2b3fc59114f6ed6751f31f1c132ece173f0e22154c37 HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS EXTRA_OPTIONS FEATURES dbus QCORO_WITH_QTDBUS network QCORO_WITH_QTNETWORK websockets QCORO_WITH_QTWEBSOCKETS quick QCORO_WITH_QTQUICK qml QCORO_WITH_QML test QCORO_WITH_QTTEST ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_QT_VERSION=6 -DBUILD_TESTING=OFF -DQCORO_BUILD_EXAMPLES=OFF ${EXTRA_OPTIONS} ) vcpkg_cmake_install() if (QCORO_WITH_QTDBUS) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6DBus DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6DBus) endif() if (QCORO_WITH_QTNETWORK) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Network DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6Network) endif() if (QCORO_WITH_QTWEBSOCKETS) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6WebSockets DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6WebSockets) endif() if (QCORO_WITH_QTQUICK) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Quick DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6Quick) endif() if (QCORO_WITH_QML) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Qml DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6Qml) endif() if (QCORO_WITH_QTTEST) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Test DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6Test) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Coro DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6Coro) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6 DO_NOT_DELETE_PARENT_CONFIG_PATH CONFIG_PATH lib/cmake/QCoro6) vcpkg_cmake_config_fixup(PACKAGE_NAME QCoro6Core CONFIG_PATH lib/cmake/QCoro6Core) # Remove debug includes and CMake macros file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/qcoro/usage ================================================ qcoro-qt6 provides CMake targets: # Generic coroutine types and tools find_package(QCoro6Coro CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Coro) # Coroutine support for QtCore types find_package(QCoro6Core CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Core) # Coroutine supports for QtDBus types find_package(QCoro6DBus CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::DBus) # Coroutine support for QtNetwork types find_package(QCoro6Network CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Network) # Coroutine support for QtQml types find_package(QCoro6Qml CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Qml) # Coroutine support for QML find_package(QCoro6Quick CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Quick) # Coroutine support for developing tests with QtTest find_package(QCoro6Test CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::Test) # Coroutine support for QtWebSockets types find_package(QCoro6WebSockets CONFIG REQUIRED) target_link_libraries(main PRIVATE QCoro6::WebSockets) You can also use `QCoro` target namespace for transparent support of both Qt5 and Qt6. ================================================ FILE: ports/qcoro/vcpkg.json ================================================ { "name": "qcoro", "version": "0.12.0", "description": "Coroutine support for Qt", "homepage": "https://github.com/qcoro/qcoro", "documentation": "https://qcoro.dev/", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "thread" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "dbus", "network", "qml", "quick", "test", "websockets" ], "features": { "dbus": { "description": "Coroutine support for QtDBus module", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "dbus" ] } ] }, "network": { "description": "Coroutine support for QtNetwork module", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] }, "qml": { "description": "Coroutine support for QtQml module", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] }, "quick": { "description": "Coroutine support for QtQuick module", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] }, "test": { "description": "Support code for easier testing of coroutines with QtTest.", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "testlib" ] } ] }, "websockets": { "description": "Coroutine support for QtWebSockets module", "dependencies": [ { "name": "qtwebsockets", "default-features": false } ] } } } ================================================ FILE: ports/qcustomplot/config.patch ================================================ --- a/sharedlib-compilation/sharedlib-compilation.pro +++ b/sharedlib-compilation/sharedlib-compilation.pro @@ -10,7 +10,6 @@ DEFINES += QCUSTOMPLOT_COMPILE_LIBRARY TEMPLATE = lib -CONFIG += debug_and_release build_all static { CONFIG += static } else { @@ -33,3 +32,14 @@ SOURCES += ../../qcustomplot.cpp HEADERS += ../../qcustomplot.h +win32 { + dlltarget.path = $$[QT_INSTALL_BINS] + INSTALLS += dlltarget +} +target.path = $$[QT_INSTALL_LIBS] +!static: target.CONFIG = no_dll +INSTALLS += target + +headers.files += ../../qcustomplot.h +headers.path = $$[QT_INSTALL_PREFIX]/include +INSTALLS += headers ================================================ FILE: ports/qcustomplot/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.qcustomplot.com/release/${VERSION}/QCustomPlot.tar.gz" FILENAME "QCustomPlot-${VERSION}.tar.gz" SHA512 2e49a9b3f7ab03bcd580e5f3c3ae0d5e8c57d3ccce0ceed9862cde7ea23e2f3672a963af988be60e504cb5aa50bc462e4b28acf577eae41cc6fea2802642dc19 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_download_distfile(ARCHIVE URLS "https://www.qcustomplot.com/release/${VERSION}/QCustomPlot-sharedlib.tar.gz" FILENAME "QCustomPlot-sharedlib-${VERSION}.tar.gz" SHA512 c661e4a835066fee92b254fbd7b825dbd5c58973189ff2099a01308cb81fe6bf3bac1456f5da91f01c6265f8f548f61b57e237d00a9b5c2c94acf1a024baa18e ) vcpkg_extract_source_archive( SharedLib_SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES config.patch ) file(RENAME "${SharedLib_SOURCE_PATH}" "${SOURCE_PATH}/qcustomplot-sharedlib") vcpkg_qmake_configure( SOURCE_PATH "${SOURCE_PATH}/qcustomplot-sharedlib/sharedlib-compilation/sharedlib-compilation.pro" QMAKE_OPTIONS "${OSX_OPTIONS}" ) vcpkg_qmake_install() vcpkg_copy_pdbs() # Handle copyright configure_file(${SOURCE_PATH}/GPL.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/qcustomplot/vcpkg.json ================================================ { "name": "qcustomplot", "version": "2.1.1", "port-version": 1, "description": "QCustomPlot is a Qt C++ widget for plotting and data visualization.", "homepage": "https://www.qcustomplot.com/", "license": "GPL-3.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "vcpkg-qmake", "host": true, "default-features": false } ] } ================================================ FILE: ports/qdldl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "osqp/qdldl" REF "v${VERSION}" SHA512 67722bb872cbafe61bdbe4a582cc7e4ebc729a1eca933cc8b758e9a9a5648903ee6ac147c14b33a136c11a647f39ea42cfe3c71147366ed294258b5b66d7d1da ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" QDLDL_BUILD_STATIC_LIB) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" QDLDL_BUILD_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQDLDL_BUILD_SHARED_LIB=${QDLDL_BUILD_SHARED_LIB} -DQDLDL_BUILD_STATIC_LIB=${QDLDL_BUILD_STATIC_LIB} -DQDLDL_BUILD_DEMO_EXE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/qdldl") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qdldl/usage ================================================ qdldl provides CMake targets: find_package(qdldl CONFIG REQUIRED) target_link_libraries(main PRIVATE $,qdldl::qdldl,qdldl::qdldlstatic>) ================================================ FILE: ports/qdldl/vcpkg.json ================================================ { "name": "qdldl", "version": "0.1.9", "port-version": 1, "description": "A free LDL factorisation routine", "homepage": "https://osqp.org/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qgis-o2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qgis/o2 REF "v${VERSION}" SHA512 3238ec24d5594d47db1885c15643853f7ed9c6fcb44be241833a01a1569ae89405f9daa37e46a3e02c230c54d3066d70bacf160a7f98c99e78eb68b2653f40e3 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Do2_WITH_KEYCHAIN=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qgis-o2/vcpkg.json ================================================ { "name": "qgis-o2", "version": "1.1", "description": "OAuth 2.0 for Qt", "homepage": "https://github.com/qgis/o2", "license": "BSD-2-Clause", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qhttpengine/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nitroshare/qhttpengine REF 43f55df51623621ed3efb4e42c7894586d988667 SHA512 bf615016b9078ff1b3b47bb0d0329565d2d44caba67a3a207c430e7f03a7b5d8b326268fafa2b8ebff387aec9356014ec5510e18a422dd2dea7eb1e9bfc009f3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DOC=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake) if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") else() vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/qhttpengine/vcpkg.json ================================================ { "name": "qhttpengine", "version": "1.0.2", "port-version": 1, "description": "HTTP server for Qt applications", "supports": "!uwp", "dependencies": [ "qt5-base", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qhull/fix-missing-symbols.patch ================================================ From 02ba907908ccf5ed0d40a2251272b67cb05c23ea Mon Sep 17 00:00:00 2001 From: Francisco Facioni Date: Sat, 31 Jul 2021 22:30:45 +0100 Subject: [PATCH] Missing symbols in the export --- src/libqhull_r/qhull_r-exports.def | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libqhull_r/qhull_r-exports.def b/src/libqhull_r/qhull_r-exports.def index 4c5e17c..b789673 100644 --- a/src/libqhull_r/qhull_r-exports.def +++ b/src/libqhull_r/qhull_r-exports.def @@ -183,6 +183,7 @@ qh_maxouter qh_maxsimplex qh_maydropneighbor qh_memalloc +qh_memcheck qh_memfree qh_memfreeshort qh_meminit @@ -351,6 +352,7 @@ qh_setdelnth qh_setdelnthsorted qh_setdelsorted qh_setduplicate +qh_setendpointer qh_setequal qh_setequal_except qh_setequal_skip ================================================ FILE: ports/qhull/fix-qhullcpp-cpp20-support.patch ================================================ From bdd99371b995e02d6b39acc93221c477aafd284a Mon Sep 17 00:00:00 2001 From: Jeremy Nimmer Date: Thu, 22 Sep 2022 17:39:19 -0700 Subject: [PATCH] Fix build errors when in C++20 mode --- src/libqhullcpp/QhullLinkedList.h | 12 +++++++----- src/libqhullcpp/QhullSet.h | 22 +++++++++++----------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/libqhullcpp/QhullLinkedList.h b/src/libqhullcpp/QhullLinkedList.h index 9f145ee..7c7104d 100644 --- a/src/libqhullcpp/QhullLinkedList.h +++ b/src/libqhullcpp/QhullLinkedList.h @@ -62,16 +62,18 @@ private: #//!\name Constructors public: - QhullLinkedList(T b, T e) : begin_node(b), end_node(e) {} + + QhullLinkedList(T b, T e) : begin_node(b), end_node(e) {} //! Copy constructor copies begin_node and end_node, but not the list elements. Needed for return by value and parameter passing. - QhullLinkedList(const QhullLinkedList &other) : begin_node(other.begin_node), end_node(other.end_node) {} + + QhullLinkedList(const QhullLinkedList &other) : begin_node(other.begin_node), end_node(other.end_node) {} //! Copy assignment copies begin_node and end_node, but not the list elements. - QhullLinkedList & operator=(const QhullLinkedList &other) { begin_node= other.begin_node; end_node= other.end_node; return *this; } - ~QhullLinkedList() {} + QhullLinkedList & operator=(const QhullLinkedList &other) { begin_node= other.begin_node; end_node= other.end_node; return *this; } + ~QhullLinkedList() {} private: //!disabled since a sentinel must be allocated as the private type - QhullLinkedList() {} + QhullLinkedList() {} public: diff --git a/src/libqhullcpp/QhullSet.h b/src/libqhullcpp/QhullSet.h index f6b248a..803e703 100644 --- a/src/libqhullcpp/QhullSet.h +++ b/src/libqhullcpp/QhullSet.h @@ -110,17 +110,17 @@ public: typedef typename QhullSet::const_iterator ConstIterator; #//!\name Constructors - QhullSet(const Qhull &q, setT *s) : QhullSetBase(q, s) { } - QhullSet(QhullQh *qqh, setT *s) : QhullSetBase(qqh, s) { } + QhullSet(const Qhull &q, setT *s) : QhullSetBase(q, s) { } + QhullSet(QhullQh *qqh, setT *s) : QhullSetBase(qqh, s) { } //Conversion from setT* is not type-safe. Implicit conversion for void* to T //Copy constructor copies pointer but not contents. Needed for return by value. - QhullSet(const QhullSet &other) : QhullSetBase(other) {} - QhullSet & operator=(const QhullSet &other) { QhullSetBase::operator=(other); return *this; } - ~QhullSet() {} + QhullSet(const QhullSet &other) : QhullSetBase(other) {} + QhullSet & operator=(const QhullSet &other) { QhullSetBase::operator=(other); return *this; } + ~QhullSet() {} private: //!Disable default constructor. See QhullSetBase - QhullSet(); + QhullSet(); public: #//!\name Conversion @@ -136,8 +136,8 @@ public: using QhullSetBase::count; using QhullSetBase::isEmpty; // operator== defined for QhullSets of the same type - bool operator==(const QhullSet &other) const { return qh_setequal(getSetT(), other.getSetT()); } - bool operator!=(const QhullSet &other) const { return !operator==(other); } + bool operator==(const QhullSet &other) const { return qh_setequal(getSetT(), other.getSetT()); } + bool operator!=(const QhullSet &other) const { return !operator==(other); } #//!\name Element access // Constructs T. Cannot return reference. @@ -294,9 +294,9 @@ private: public: #//!\name Constructors - QhullSetIterator(const QhullSet &s) : i(s.data()), begin_i(i), end_i(s.endData()), qh_qh(s.qh()) {} - QhullSetIterator(const QhullSetIterator &o) : i(o.i), begin_i(o.begin_i), end_i(o.end_i), qh_qh(o.qh_qh) {} - QhullSetIterator &operator=(const QhullSetIterator &o) { i= o.i; begin_i= o.begin_i; end_i= o.end_i; qh_qh= o.qh_qh; return *this; } + QhullSetIterator(const QhullSet &s) : i(s.data()), begin_i(i), end_i(s.endData()), qh_qh(s.qh()) {} + QhullSetIterator(const QhullSetIterator &o) : i(o.i), begin_i(o.begin_i), end_i(o.end_i), qh_qh(o.qh_qh) {} + QhullSetIterator &operator=(const QhullSetIterator &o) { i= o.i; begin_i= o.begin_i; end_i= o.end_i; qh_qh= o.qh_qh; return *this; } #//!\name ReadOnly countT countRemaining() { return static_cast(end_i-i); } // WARN64 -- 2.44.0 ================================================ FILE: ports/qhull/include-qhullcpp-shared.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f50b187..30109b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,3 +71,3 @@ cmake_minimum_required(VERSION 3.0) project(qhull) -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5..4.0) @@ -344,7 +344,7 @@ set(qhull_SHAREDP qhull_p) # libqhull and qhull_p are deprecated, use qhull_r i set(qhull_TARGETS_APPLICATIONS qhull rbox qconvex qdelaunay qvoronoi qhalf) set(qhull_TARGETS_STATIC ${qhull_CPP} ${qhull_STATIC} ${qhull_STATICR}) -set(qhull_TARGETS_SHARED ${qhull_SHAREDR}) +set(qhull_TARGETS_SHARED ${qhull_CPP} ${qhull_SHAREDR}) set( qhull_TARGETS_TEST # Unused @@ -474,7 +474,6 @@ set_target_properties(${qhull_CPP} PROPERTIES if(NOT ${BUILD_STATIC_LIBS}) set_target_properties(${qhull_STATIC} PROPERTIES EXCLUDE_FROM_ALL TRUE) set_target_properties(${qhull_STATICR} PROPERTIES EXCLUDE_FROM_ALL TRUE) - set_target_properties(${qhull_CPP} PROPERTIES EXCLUDE_FROM_ALL TRUE) endif() if(NOT ${BUILD_SHARED_LIBS}) set_target_properties(${qhull_SHARED} PROPERTIES EXCLUDE_FROM_ALL TRUE) ================================================ FILE: ports/qhull/noapp.patch ================================================ diff -Naur b/CMakeLists.txt ff11b5d37d-0697029c1a.clean/CMakeLists.txt --- b/CMakeLists.txt 2022-10-17 10:07:06.000000000 +0200 +++ ff11b5d37d-0697029c1a.clean/CMakeLists.txt 2022-10-17 10:08:40.000000000 +0200 @@ -113,6 +113,7 @@ "BUILD_SHARED_LIBS;BUILD_STATIC_LIBS" ${BUILD_SHARED_LIBS} ) +option(BUILD_APPLICATIONS "Build applications" ON) if(INCLUDE_INSTALL_DIR) else() @@ -517,131 +518,133 @@ # If LINK_APPS_SHARED, applications are linked to reentrant qhull # --------------------------------------- -if(${LINK_APPS_SHARED}) - add_executable(qconvex src/qconvex/qconvex_r.c) - target_link_libraries(qconvex ${qhull_SHAREDR}) - set_target_properties(qconvex PROPERTIES - COMPILE_DEFINITIONS "${qconvex_DEFINES}") - - add_executable(qdelaunay src/qdelaunay/qdelaun_r.c) - target_link_libraries(qdelaunay ${qhull_SHAREDR}) - set_target_properties(qdelaunay PROPERTIES - COMPILE_DEFINITIONS "${qdelaunay_DEFINES}") - - add_executable(qhalf src/qhalf/qhalf_r.c) - target_link_libraries(qhalf ${qhull_SHAREDR}) - set_target_properties(qhalf PROPERTIES - COMPILE_DEFINITIONS "${qhalf_DEFINES}") - - add_executable(qhull src/qhull/unix_r.c) - target_link_libraries(qhull ${qhull_SHAREDR}) - set_target_properties(qhull PROPERTIES - COMPILE_DEFINITIONS "${qhull_DEFINES}") - - add_executable(qvoronoi src/qvoronoi/qvoronoi_r.c) - target_link_libraries(qvoronoi ${qhull_SHAREDR}) - set_target_properties(qvoronoi PROPERTIES - COMPILE_DEFINITIONS "${qvoronoi_DEFINES}") - - add_executable(rbox src/rbox/rbox_r.c) - target_link_libraries(rbox ${qhull_SHAREDR}) - set_target_properties(rbox PROPERTIES - COMPILE_DEFINITIONS "${rbox_DEFINES}") -else() - if(NOT ${BUILD_STATIC_LIBS}) - message(FATAL_ERROR, " Nothing to build -- BUILD_SHARED_LIBS=OFF and BUILD_STATIC_LIBS=OFF") - endif() - - add_executable(qconvex src/qconvex/qconvex.c) - target_link_libraries(qconvex ${qhull_STATIC}) - - add_executable(qdelaunay src/qdelaunay/qdelaun.c) - target_link_libraries(qdelaunay ${qhull_STATIC}) - - add_executable(qhalf src/qhalf/qhalf.c) - target_link_libraries(qhalf ${qhull_STATIC}) +if(BUILD_APPLICATIONS) + if(${LINK_APPS_SHARED}) + add_executable(qconvex src/qconvex/qconvex_r.c) + target_link_libraries(qconvex ${qhull_SHAREDR}) + set_target_properties(qconvex PROPERTIES + COMPILE_DEFINITIONS "${qconvex_DEFINES}") + + add_executable(qdelaunay src/qdelaunay/qdelaun_r.c) + target_link_libraries(qdelaunay ${qhull_SHAREDR}) + set_target_properties(qdelaunay PROPERTIES + COMPILE_DEFINITIONS "${qdelaunay_DEFINES}") + + add_executable(qhalf src/qhalf/qhalf_r.c) + target_link_libraries(qhalf ${qhull_SHAREDR}) + set_target_properties(qhalf PROPERTIES + COMPILE_DEFINITIONS "${qhalf_DEFINES}") + + add_executable(qhull src/qhull/unix_r.c) + target_link_libraries(qhull ${qhull_SHAREDR}) + set_target_properties(qhull PROPERTIES + COMPILE_DEFINITIONS "${qhull_DEFINES}") + + add_executable(qvoronoi src/qvoronoi/qvoronoi_r.c) + target_link_libraries(qvoronoi ${qhull_SHAREDR}) + set_target_properties(qvoronoi PROPERTIES + COMPILE_DEFINITIONS "${qvoronoi_DEFINES}") + + add_executable(rbox src/rbox/rbox_r.c) + target_link_libraries(rbox ${qhull_SHAREDR}) + set_target_properties(rbox PROPERTIES + COMPILE_DEFINITIONS "${rbox_DEFINES}") + else() + if(NOT ${BUILD_STATIC_LIBS}) + message(FATAL_ERROR, " Nothing to build -- BUILD_SHARED_LIBS=OFF and BUILD_STATIC_LIBS=OFF") + endif() - add_executable(qhull src/qhull/unix_r.c) - target_link_libraries(qhull ${qhull_STATICR}) + add_executable(qconvex src/qconvex/qconvex.c) + target_link_libraries(qconvex ${qhull_STATIC}) - add_executable(qvoronoi src/qvoronoi/qvoronoi.c) - target_link_libraries(qvoronoi ${qhull_STATIC}) + add_executable(qdelaunay src/qdelaunay/qdelaun.c) + target_link_libraries(qdelaunay ${qhull_STATIC}) - add_executable(rbox src/rbox/rbox.c) - target_link_libraries(rbox ${qhull_STATIC}) -endif() + add_executable(qhalf src/qhalf/qhalf.c) + target_link_libraries(qhalf ${qhull_STATIC}) -# #@# 20 -# --------------------------------------- -# Define testqset linked to qset.o, mem.o, and usermem.o -# Define testqset_r linked to qset_r.o, mem_r.o, and usermem.o -# --------------------------------------- + add_executable(qhull src/qhull/unix_r.c) + target_link_libraries(qhull ${qhull_STATICR}) -add_executable(testqset ${testqset_SOURCES}) -add_executable(testqset_r ${testqsetr_SOURCES}) + add_executable(qvoronoi src/qvoronoi/qvoronoi.c) + target_link_libraries(qvoronoi ${qhull_STATIC}) -# --------------------------------------- -# Define user_eg linked to reentrant qhull shared library -# --------------------------------------- - -add_executable(user_eg src/user_eg/user_eg_r.c) + add_executable(rbox src/rbox/rbox.c) + target_link_libraries(rbox ${qhull_STATIC}) + endif() -if(${BUILD_SHARED_LIBS}) - target_link_libraries(user_eg ${qhull_SHAREDR}) - set_target_properties(user_eg PROPERTIES - COMPILE_DEFINITIONS "${user_eg_DEFINES}") -else() - target_link_libraries(user_eg ${qhull_STATICR}) -endif() + # #@# 20 + # --------------------------------------- + # Define testqset linked to qset.o, mem.o, and usermem.o + # Define testqset_r linked to qset_r.o, mem_r.o, and usermem.o + # --------------------------------------- + + add_executable(testqset ${testqset_SOURCES}) + add_executable(testqset_r ${testqsetr_SOURCES}) + + # --------------------------------------- + # Define user_eg linked to reentrant qhull shared library + # --------------------------------------- + + add_executable(user_eg src/user_eg/user_eg_r.c) + + if(${BUILD_SHARED_LIBS}) + target_link_libraries(user_eg ${qhull_SHAREDR}) + set_target_properties(user_eg PROPERTIES + COMPILE_DEFINITIONS "${user_eg_DEFINES}") + else() + target_link_libraries(user_eg ${qhull_STATICR}) + endif() -# --------------------------------------- -# Define user_eg2 linked to reentrant qhull static library -# --------------------------------------- + # --------------------------------------- + # Define user_eg2 linked to reentrant qhull static library + # --------------------------------------- -add_executable(user_eg2 src/user_eg2/user_eg2_r.c) + add_executable(user_eg2 src/user_eg2/user_eg2_r.c) -if(${BUILD_STATIC_LIBS}) - target_link_libraries(user_eg2 ${qhull_STATICR}) -else() - target_link_libraries(user_eg2 ${qhull_SHAREDR}) - set_target_properties(user_eg2 PROPERTIES - COMPILE_DEFINITIONS "${user_eg2_DEFINES}") -endif() + if(${BUILD_STATIC_LIBS}) + target_link_libraries(user_eg2 ${qhull_STATICR}) + else() + target_link_libraries(user_eg2 ${qhull_SHAREDR}) + set_target_properties(user_eg2 PROPERTIES + COMPILE_DEFINITIONS "${user_eg2_DEFINES}") + endif() -# --------------------------------------- -# Define user_eg3 linked to qhullcpp and qhullstatic_r static libraries -# -# user_eg3 is not defined for shared libraries -# user_eg3 and qhullcpp must be compiled with the same compiler for setjmp/longjmp -# --------------------------------------- + # --------------------------------------- + # Define user_eg3 linked to qhullcpp and qhullstatic_r static libraries + # + # user_eg3 is not defined for shared libraries + # user_eg3 and qhullcpp must be compiled with the same compiler for setjmp/longjmp + # --------------------------------------- + + if(${BUILD_STATIC_LIBS}) + add_executable(user_eg3 src/user_eg3/user_eg3_r.cpp) + # qhull_STATICR must be last, otherwise qh_fprintf,etc. are not loaded from qhull_CPP + target_link_libraries(user_eg3 ${qhull_CPP} ${qhull_STATICR}) + endif() -if(${BUILD_STATIC_LIBS}) - add_executable(user_eg3 src/user_eg3/user_eg3_r.cpp) - # qhull_STATICR must be last, otherwise qh_fprintf,etc. are not loaded from qhull_CPP - target_link_libraries(user_eg3 ${qhull_CPP} ${qhull_STATICR}) + # --------------------------------------- + # qhullp is qhull/unix.c linked to unsuported qh_QHpointer libqhull_p + # Included for testing qh_QHpointer + # --------------------------------------- + + add_executable(qhullp EXCLUDE_FROM_ALL src/qhull/unix.c) + target_link_libraries(qhullp ${qhull_SHAREDP}) + set_target_properties(qhullp PROPERTIES + COMPILE_DEFINITIONS "${qhullp_DEFINES}") + + # --------------------------------------- + # user_egp is user_eg/user_eg.c linked to unsuported qh_QHpointer libqhull_p + # Included for compatibility with qhull-2012.1 + # --------------------------------------- + + add_executable(user_egp EXCLUDE_FROM_ALL src/user_eg/user_eg.c) + target_link_libraries(user_egp ${qhull_SHAREDP}) + set_target_properties(user_egp PROPERTIES + COMPILE_DEFINITIONS "${user_egp_DEFINES}") endif() # --------------------------------------- -# qhullp is qhull/unix.c linked to unsuported qh_QHpointer libqhull_p -# Included for testing qh_QHpointer -# --------------------------------------- - -add_executable(qhullp EXCLUDE_FROM_ALL src/qhull/unix.c) -target_link_libraries(qhullp ${qhull_SHAREDP}) -set_target_properties(qhullp PROPERTIES - COMPILE_DEFINITIONS "${qhullp_DEFINES}") - -# --------------------------------------- -# user_egp is user_eg/user_eg.c linked to unsuported qh_QHpointer libqhull_p -# Included for compatibility with qhull-2012.1 -# --------------------------------------- - -add_executable(user_egp EXCLUDE_FROM_ALL src/user_eg/user_eg.c) -target_link_libraries(user_egp ${qhull_SHAREDP}) -set_target_properties(user_egp PROPERTIES - COMPILE_DEFINITIONS "${user_egp_DEFINES}") - -# --------------------------------------- # Define test # --------------------------------------- @@ -676,7 +679,9 @@ # Define install # --------------------------------------- -set(qhull_TARGETS_INSTALL ${qhull_TARGETS_APPLICATIONS}) +if(BUILD_APPLICATIONS) + set(qhull_TARGETS_INSTALL ${qhull_TARGETS_APPLICATIONS}) +endif() if (BUILD_SHARED_LIBS) list(APPEND qhull_TARGETS_INSTALL ${qhull_TARGETS_SHARED}) endif() ================================================ FILE: ports/qhull/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qhull/qhull REF 613debeaea72ee66626dace9ba1a2eff11b5d37d SHA512 5b8ff9665ba73621a9859a6e86717b980b67f8d79d6c78cbf5672bce66aed671f7d64fcbec457bca79eef2e17e105f136017afdf442bb430b9f4a059d7cb93c3 HEAD_REF master PATCHES include-qhullcpp-shared.patch fix-missing-symbols.patch # upstream https://github.com/qhull/qhull/pull/93 noapp.patch # upstream https://github.com/qhull/qhull/pull/124 fix-qhullcpp-cpp20-support.patch # upstream https://github.com/qhull/qhull/pull/122 ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) if("tools" IN_LIST FEATURES) list(APPEND QHULL_OPTIONS -DBUILD_APPLICATIONS:BOOL=ON) else() list(APPEND QHULL_OPTIONS -DBUILD_APPLICATIONS:BOOL=OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} ${QHULL_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man" "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share/man" "${CURRENT_PACKAGES_DIR}/debug/share/doc" ) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Qhull) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(WRITE "${CURRENT_PACKAGES_DIR}/share/qhull/QhullTargets-interface.cmake" [[ add_library(Qhull::qhull_r IMPORTED INTERFACE) set_target_properties(Qhull::qhull_r PROPERTIES INTERFACE_LINK_LIBRARIES Qhull::qhullstatic_r) ]]) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(active_basename "qhullstatic") set(inactive_basename "qhull") else() set(active_basename "qhull") set(inactive_basename "qhullstatic") endif() file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${inactive_basename}_r.pc") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/${inactive_basename}.pc") # qhullstatic.pc in dynamic build if(NOT DEFINED VCPKG_BUILD_TYPE) file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${inactive_basename}_rd.pc") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${active_basename}_rd.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${active_basename}_r.pc") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/qhullstatic_d.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/qhullstatic.pc") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/${inactive_basename}.pc") # qhullstatic.pc in dynamic build file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/qhullcpp_d.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/qhullcpp.pc") endif() vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES qconvex qdelaunay qhalf qhull qvoronoi rbox AUTO_CLEAN ) endif() file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME usage) file(INSTALL "${SOURCE_PATH}/COPYING.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/qhull/usage ================================================ The package qhull provides CMake targets: # Reentrant C API find_package(Qhull CONFIG REQUIRED) target_link_libraries(main PRIVATE Qhull::qhull_r) # C++ API find_package(Qhull CONFIG REQUIRED) target_link_libraries(main PRIVATE Qhull::qhullcpp) ================================================ FILE: ports/qhull/vcpkg.json ================================================ { "name": "qhull", "version": "8.0.2", "port-version": 6, "description": "computes the convex hull, Delaunay triangulation, Voronoi diagram", "homepage": "https://github.com/qhull/qhull", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Determines whether tools should be built" } } } ================================================ FILE: ports/qlementine/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oclero/qlementine REF "v${VERSION}" SHA512 7c80b11f938b3e2ea23083e8394470b8cfa95bbe07d5bc89720c46e5ec0a004839860094044eecfe830a080d5e8b2e62cafc883c66ceeae84a2e8aadf8acbaed ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQLEMENTINE_SANDBOX=OFF -DQLEMENTINE_SHOWCASE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/qlementine) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/qlementine/usage ================================================ qlementine provides CMake targets: find_package(qlementine CONFIG REQUIRED) target_link_libraries(main PRIVATE qlementine::qlementine) ================================================ FILE: ports/qlementine/vcpkg.json ================================================ { "name": "qlementine", "version": "1.4.2", "description": "Modern QStyle for desktop Qt6 applications.", "homepage": "https://github.com/oclero/qlementine/", "documentation": "https://oclero.github.io/qlementine/", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] }, "qtsvg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qlementine-icons/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oclero/qlementine-icons REF "v${VERSION}" SHA512 87f7a5d0f17db8108023b239d6ef07387a4644648d4da977feceb9fa2e921ca0784997add03ee5ea787ac941a9d7d1bdfe55527b0ff47c16cde0940f5a1bf277 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQLEMENTINE_ICONS_SANDBOX=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/qlementine-icons) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/qlementine-icons/usage ================================================ qlementine-icons provides CMake targets: find_package(qlementine-icons CONFIG REQUIRED) target_link_libraries(main PRIVATE qlementine-icons::qlementine-icons) ================================================ FILE: ports/qlementine-icons/vcpkg.json ================================================ { "name": "qlementine-icons", "version": "1.14.0", "description": "Modern icon set for desktop Qt applications.", "homepage": "https://github.com/oclero/qlementine-icons/", "documentation": "https://oclero.github.io/qlementine-icons/", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, "qtsvg", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qmex/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO huangqinjin/QMEX REF 8a061d68991362aa74ebbceeb5406032a0515536 SHA512 bc4d13c1487291f541381e6e6baf83e4d723576d17441b0c9d206ec0bacfc33c5f6bd9ff98bb265823426110390f228b9c8ccc8f69c3842c83c6e039bfb02074 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() vcpkg_copy_pdbs(BUILD_PATHS "${CURRENT_PACKAGES_DIR}/bin/*.exe") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES qmex-cli AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/qmex/vcpkg.json ================================================ { "name": "qmex", "version-date": "2024-10-31", "description": "QMEX - Query & Map & Evaluation & eXecution for Tabular Data", "homepage": "https://github.com/huangqinjin/QMEX", "license": "BSL-1.0", "dependencies": [ "lua", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "QMEX cli tools" } } } ================================================ FILE: ports/qnnpack/fix-arm64-osx.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,12 +32,15 @@ IF(NOT IOS_ARCH MATCHES "^(i386|x86_64|armv7.*|arm64.*)$") MESSAGE(FATAL_ERROR "Unrecognized IOS_ARCH = ${IOS_ARCH}") ENDIF() ELSE() MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_PROCESSOR is not defined") ENDIF() +ELSEIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + # on macOS, arm64 is called arm64 + SET(CMAKE_SYSTEM_PROCESSOR "aarch64") ELSEIF(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64|armv[5-8].*|aarch64)$") MESSAGE(FATAL_ERROR "Unrecognized CMAKE_SYSTEM_PROCESSOR = ${CMAKE_SYSTEM_PROCESSOR}") ENDIF() IF(NOT CMAKE_SYSTEM_NAME) MESSAGE(FATAL_ERROR "CMAKE_SYSTEM_NAME not defined") ================================================ FILE: ports/qnnpack/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/QNNPACK REF 7d2a4e9931a82adc3814275b6219a03e24e36b4c SHA512 437a835acfedae851a9a8572fa6eea9854dcb8bcca499bc4a2582314e44f5f199778e857932da4aecf943bea7cb2eb5b1c41d4b4ca6075bddbe0f18b2c7b9127 HEAD_REF master PATCHES use-packages.patch fix-arm64-osx.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQNNPACK_BUILD_TESTS=OFF -DQNNPACK_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/bin" ) ================================================ FILE: ports/qnnpack/use-packages.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 932f9e7..187be72 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,8 +13,6 @@ PROJECT(QNNPACK C CXX ASM) # ---[ Options. OPTION(QNNPACK_CUSTOM_THREADPOOL "Build QNNPACK for custom thread pool" OFF) -SET(QNNPACK_LIBRARY_TYPE "default" CACHE STRING "Type of library (shared, static, or default) to build") -SET_PROPERTY(CACHE QNNPACK_LIBRARY_TYPE PROPERTY STRINGS default static shared) OPTION(QNNPACK_BUILD_TESTS "Build QNNPACK unit tests" ON) OPTION(QNNPACK_BUILD_BENCHMARKS "Build QNNPACK benchmarks" ON) @@ -60,7 +58,7 @@ IF(NOT DEFINED CLOG_SOURCE_DIR) SET(CLOG_SOURCE_DIR "${PROJECT_SOURCE_DIR}/deps/clog") ENDIF() -IF(NOT DEFINED CPUINFO_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading cpuinfo to ${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo (define CPUINFO_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadCpuinfo.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/cpuinfo-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -70,7 +68,7 @@ IF(NOT DEFINED CPUINFO_SOURCE_DIR) SET(CPUINFO_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/cpuinfo" CACHE STRING "cpuinfo source directory") ENDIF() -IF(NOT DEFINED FP16_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading FP16 to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16 (define FP16_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadFP16.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fp16-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -80,7 +78,7 @@ IF(NOT DEFINED FP16_SOURCE_DIR) SET(FP16_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fp16" CACHE STRING "FP16 source directory") ENDIF() -IF(NOT DEFINED FXDIV_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading FXdiv to ${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv (define FXDIV_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadFXdiv.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/fxdiv-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -90,7 +88,7 @@ IF(NOT DEFINED FXDIV_SOURCE_DIR) SET(FXDIV_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/fxdiv" CACHE STRING "FXdiv source directory") ENDIF() -IF(NOT DEFINED PSIMD_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading PSimd to ${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd (define PSIMD_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadPSimd.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/psimd-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -100,7 +98,7 @@ IF(NOT DEFINED PSIMD_SOURCE_DIR) SET(PSIMD_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/psimd" CACHE STRING "PSimd source directory") ENDIF() -IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading pthreadpool to ${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool (define PTHREADPOOL_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadPThreadPool.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/pthreadpool-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -110,7 +108,7 @@ IF(NOT DEFINED PTHREADPOOL_SOURCE_DIR) SET(PTHREADPOOL_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/pthreadpool" CACHE STRING "pthreadpool source directory") ENDIF() -IF(QNNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -120,7 +118,7 @@ IF(QNNPACK_BUILD_TESTS AND NOT DEFINED GOOGLETEST_SOURCE_DIR) SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory") ENDIF() -IF(QNNPACK_BUILD_BENCHMARKS AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR) +IF(FALSE) MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)") CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt") EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . @@ -232,15 +230,7 @@ IF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i[3-6]86|x86_64)$" OR IOS_ARCH MATCHES "^(i LIST(APPEND QNNPACK_UKERNELS ${QNNPACK_X86_SSE2_UKERNELS}) ENDIF() -IF(QNNPACK_LIBRARY_TYPE STREQUAL "default") - ADD_LIBRARY(qnnpack ${QNNPACK_INIT_SRCS} ${QNNPACK_EXEC_SRCS} ${QNNPACK_UKERNELS}) -ELSEIF(QNNPACK_LIBRARY_TYPE STREQUAL "shared") - ADD_LIBRARY(qnnpack SHARED ${QNNPACK_INIT_SRCS} ${QNNPACK_EXEC_SRCS} ${QNNPACK_UKERNELS}) -ELSEIF(QNNPACK_LIBRARY_TYPE STREQUAL "static") - ADD_LIBRARY(qnnpack STATIC ${QNNPACK_INIT_SRCS} ${QNNPACK_EXEC_SRCS} ${QNNPACK_UKERNELS}) -ELSE() - MESSAGE(FATAL_ERROR "Unsupported QNNPACK library type \"${QNNPACK_LIBRARY_TYPE}\". Must be \"static\", \"shared\", or \"default\"") -ENDIF() +ADD_LIBRARY(qnnpack ${QNNPACK_INIT_SRCS} ${QNNPACK_EXEC_SRCS} ${QNNPACK_UKERNELS}) SET_TARGET_PROPERTIES(qnnpack PROPERTIES C_STANDARD 99 C_EXTENSIONS YES) @@ -274,6 +264,10 @@ TARGET_INCLUDE_DIRECTORIES(qnnpack PUBLIC include) TARGET_INCLUDE_DIRECTORIES(qnnpack PRIVATE src) SET_TARGET_PROPERTIES(qnnpack PROPERTIES PUBLIC_HEADER include/qnnpack.h) +find_package(cpuinfo CONFIG REQUIRED) +add_library(cpuinfo ALIAS cpuinfo::cpuinfo) +add_library(clog ALIAS cpuinfo::clog) + # ---[ Configure clog IF(NOT TARGET clog) SET(CLOG_BUILD_TESTS OFF CACHE BOOL "") @@ -299,6 +293,8 @@ ENDIF() TARGET_LINK_LIBRARIES(qnnpack PRIVATE cpuinfo) # ---[ Configure pthreadpool +find_package(unofficial-pthreadpool CONFIG REQUIRED) +add_library(pthreadpool ALIAS unofficial::pthreadpool) IF(NOT TARGET pthreadpool) SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "") SET(PTHREADPOOL_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -315,6 +311,8 @@ ELSE() ENDIF() # ---[ Configure FXdiv +find_package(unofficial-fxdiv CONFIG REQUIRED) +add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv) IF(NOT TARGET fxdiv) SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") SET(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -325,6 +323,8 @@ ENDIF() TARGET_LINK_LIBRARIES(qnnpack PRIVATE fxdiv) # ---[ Configure psimd +find_package(unofficial-psimd CONFIG REQUIRED) +add_library(psimd ALIAS unofficial::psimd::psimd) IF(NOT TARGET psimd) ADD_SUBDIRECTORY( "${PSIMD_SOURCE_DIR}" @@ -333,6 +333,8 @@ ENDIF() TARGET_LINK_LIBRARIES(qnnpack PRIVATE psimd) # ---[ Configure FP16 +find_package(unofficial-fp16 CONFIG REQUIRED) +add_library(fp16 ALIAS unofficial::fp16::fp16) IF(NOT TARGET fp16) SET(FP16_BUILD_TESTS OFF CACHE BOOL "") SET(FP16_BUILD_BENCHMARKS OFF CACHE BOOL "") @@ -343,6 +345,7 @@ ENDIF() TARGET_LINK_LIBRARIES(qnnpack PRIVATE fp16) INSTALL(TARGETS qnnpack + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) ================================================ FILE: ports/qnnpack/vcpkg.json ================================================ { "name": "qnnpack", "version-date": "2021-02-26", "port-version": 5, "description": "Quantized Neural Network PACKage - mobile-optimized implementation of quantized neural network operators", "homepage": "https://github.com/pytorch/QNNPACK", "license": "BSD-3-Clause", "supports": "!windows", "dependencies": [ { "name": "cpuinfo", "features": [ "clog" ] }, "fp16", "fxdiv", "psimd", "pthreadpool", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/qoi/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO phoboslab/qoi REF 19b3b4087b66963a3699ee45f05ec9ef205d7c0e # committed on 2023-08-10 SHA512 8131031ba4b3b3c50838eb83db44bed0bf2e3fc820f18a9e48202801aebef4179f9b465354487070d7bc1feea79461abe581eecde00d61a21e27fe2b8a52699f HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/qoi.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qoi/vcpkg.json ================================================ { "name": "qoi", "version-date": "2023-08-10", "description": "The Quite OK Image Format for fast, lossless image compression", "homepage": "https://qoiformat.org/", "license": "MIT" } ================================================ FILE: ports/qoixx/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wx257osn2/qoixx REF v${VERSION} SHA512 1d2ef5d60ab89f2b284d919870eb7fac3adc6e36102d69c750341827564374038454497378e7b40bca2f34446bc5e1da9f046752ee6bc3a03956b4469948f1af HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/qoixx.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qoixx/vcpkg.json ================================================ { "name": "qoixx", "version": "0.1.7", "description": "Single Header Quite Fast QOI(Quite OK Image Format) Implementation written in C++20", "homepage": "https://github.com/wx257osn2/qoixx", "license": "MIT" } ================================================ FILE: ports/qpdf/cmake-library-only.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5e2af634..3351f76a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -359,13 +359,6 @@ add_test( # add_subdirectory order affects test order add_subdirectory(include) add_subdirectory(libqpdf) -add_subdirectory(compare-for-test) -add_subdirectory(qpdf) -add_subdirectory(libtests) -add_subdirectory(examples) -add_subdirectory(zlib-flate) -add_subdirectory(manual) -add_subdirectory(fuzz) # We don't need to show everything -- just the things that we really # need to be sure are right or that are turned on or off with complex ================================================ FILE: ports/qpdf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qpdf/qpdf REF "v${VERSION}" SHA512 1aa9f11dc561e2ddf95a3052f6224269ab73cf1dddc5fefcc4e021351da3472819ed5979fe2073501a04f25a2fcbb126726437dbe8793d89d3f27739d599e6f6 PATCHES cmake-library-only.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gnutls REQUIRE_CRYPTO_GNUTLS openssl REQUIRE_CRYPTO_OPENSSL zopfli ZOPFLI ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DREQUIRE_CRYPTO_NATIVE=ON -DUSE_IMPLICIT_CRYPTO=OFF -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/qpdf) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/NOTICE.md" "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/qpdf/vcpkg.json ================================================ { "name": "qpdf", "version": "12.3.2", "description": "A content-preserving PDF document transformer", "homepage": "https://qpdf.sourceforge.io/", "license": "Apache-2.0 AND MIT", "supports": "!uwp", "dependencies": [ "libjpeg-turbo", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "gnutls": { "description": "GnuTLS crypto provider", "supports": "!windows | mingw", "dependencies": [ "libgnutls" ] }, "openssl": { "description": "OpenSSL crypto provider", "dependencies": [ "openssl" ] }, "zopfli": { "description": "Zopfli compression algorithm", "dependencies": [ "zopfli" ] } } } ================================================ FILE: ports/qpid-proton/early-cxx.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e928ef..29e3d79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ cmake_minimum_required (VERSION 3.16) -project (Proton C) +project (Proton C CXX) set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/tools/cmake/Modules") set (CMAKE_THREAD_PREFER_PTHREAD TRUE) @@ -75,8 +75,7 @@ set(UNSET_CMAKE_CXX_COMPILER OFF) if (NOT DEFINED CMAKE_CXX_COMPILER) set(UNSET_CMAKE_CXX_COMPILER ON) endif () -check_language (CXX) -if (CMAKE_CXX_COMPILER) +if(0) if (UNSET_CMAKE_CXX_COMPILER) # https://gitlab.kitware.com/cmake/cmake/-/issues/25535: check_language might set the variable incorrectly unset(CMAKE_CXX_COMPILER) @@ -84,6 +83,7 @@ if (CMAKE_CXX_COMPILER) endif () enable_language(CXX) +else() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_EXTENSIONS OFF) ================================================ FILE: ports/qpid-proton/fix-dependencies.patch ================================================ diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index e444098..451277f 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -378,8 +378,13 @@ if (PROACTOR STREQUAL "iocp" OR (NOT PROACTOR AND NOT PROACTOR_OK)) endif() if (PROACTOR STREQUAL "libuv" OR (NOT PROACTOR AND NOT PROACTOR_OK)) - find_package(Libuv) + find_package(Libuv NAMES libuv CONFIG) if (Libuv_FOUND) + if (TARGET libuv::uv) + add_library(Libuv::Libuv ALIAS libuv::uv) + else() + add_library(Libuv::Libuv ALIAS libuv::uv_a) + endif() set (PROACTOR_OK libuv) set (qpid-proton-proactor src/proactor/libuv.c ${qpid-proton-proactor-common}) set (PROACTOR_LIBS Libuv::Libuv) diff --git a/c/src/ProtonConfig.cmake.in b/c/src/ProtonConfig.cmake.in index 3eca7bc..fe27234 100644 --- a/c/src/ProtonConfig.cmake.in +++ b/c/src/ProtonConfig.cmake.in @@ -23,7 +23,7 @@ # URL: http://qpid.apache.org/proton/ @PACKAGE_INIT@ -if (NOT Proton_USE_STATIC_LIBS) +if ("1") include("${CMAKE_CURRENT_LIST_DIR}/ProtonTargets.cmake") else() include("${CMAKE_CURRENT_LIST_DIR}/ProtonTargetsStatic.cmake") @@ -32,9 +32,8 @@ endif() set(Proton_VERSION @PN_VERSION@) # find dependencies, because static libs don't transitively pull them -if (Proton_USE_STATIC_LIBS) +if ("1") set(CMAKE_MODULE_PATH_OLD ${CMAKE_MODULE_PATH}) - set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") set(CyrusSASL_FOUND @CyrusSASL_FOUND@) if (CyrusSASL_FOUND) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index c65cc87..0d9f485 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -38,7 +38,9 @@ list(APPEND PLATFORM_LIBS Threads::Threads) include(versions.cmake) # Check for JSON-CPP support for connection configuration -find_package(JsonCpp) +find_package(JsonCpp NAMES jsoncpp CONFIG REQUIRED) +set(JsonCpp_INCLUDE_DIRS "") +set(JsonCpp_LIBRARY JsonCpp::JsonCpp) option(ENABLE_JSONCPP "Use jsoncpp parser for connection configuration" ${JsonCpp_FOUND}) if (ENABLE_JSONCPP) include_directories(${JsonCpp_INCLUDE_DIRS}) diff --git a/cpp/ProtonCppConfig.cmake.in b/cpp/ProtonCppConfig.cmake.in index aaa1bf9..e1be025 100644 --- a/cpp/ProtonCppConfig.cmake.in +++ b/cpp/ProtonCppConfig.cmake.in @@ -23,7 +23,9 @@ # URL: http://qpid.apache.org/proton/ @PACKAGE_INIT@ -if (NOT ProtonCpp_USE_STATIC_LIBS) +include(CMakeFindDependencyMacro) +find_dependency(Proton CONFIG) +if (1) include("${CMAKE_CURRENT_LIST_DIR}/ProtonCppTargets.cmake") else() include("${CMAKE_CURRENT_LIST_DIR}/ProtonCppTargetsStatic.cmake") ================================================ FILE: ports/qpid-proton/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/qpid/proton/${VERSION}/qpid-proton-${VERSION}.tar.gz" FILENAME "qpid-proton-${VERSION}.tar.gz" SHA512 3e7fe56ca1423f45f71d81f5e1d6ec5f21c073cc580628e12a8dbd545a86805b7312834e0d1234dde43797633d575ed639f21a96239b217500cc0a824482aae3 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES early-cxx.diff fix-dependencies.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_BINDINGS=cpp -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_CyrusSASL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=${VCPKG_TARGET_IS_WINDOWS} # match dependencies -DCMAKE_DISABLE_FIND_PACKAGE_opentelemetry-cpp=ON -DCMAKE_DISABLE_FIND_PACKAGE_SWIG=ON -DENABLE_JSONCPP=ON -DENABLE_LINKTIME_OPTIMIZATION=OFF -DENABLE_OPENTELEMETRYCPP=OFF -DLIB_SUFFIX= -DENABLE_WARNING_ERROR=OFF -DENABLE_BENCHMARKS=OFF -DENABLE_FUZZ_TESTING=OFF "-DPython_EXECUTABLE=${PYTHON3}" -DVCPKG_LOCK_FIND_PACKAGE_Libuv=${VCPKG_TARGET_IS_OSX} # match dependencies MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_Libuv ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ProtonCpp" PACKAGE_NAME "protoncpp" DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Proton" PACKAGE_NAME "proton") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/proton/CMakeLists.txt" "${CURRENT_PACKAGES_DIR}/share/proton/FindCyrusSASL.cmake" "${CURRENT_PACKAGES_DIR}/share/proton/examples" "${CURRENT_PACKAGES_DIR}/share/proton/tests" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/qpid-proton/vcpkg.json ================================================ { "name": "qpid-proton", "version": "0.40.0", "port-version": 1, "description": "Qpid Proton is a high-performance, lightweight messaging library.", "homepage": "https://github.com/apache/qpid-proton", "license": "Apache-2.0", "supports": "!(static & staticcrt) & !uwp", "dependencies": [ "jsoncpp", { "name": "libuv", "platform": "osx" }, { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qpoases/export_target.diff ================================================ Index: qpOASESConfig.cmake.in IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>GBK =================================================================== diff --git a/qpOASESConfig.cmake.in b/qpOASESConfig.cmake.in --- a/qpOASESConfig.cmake.in (revision 35b762ba3fee2e009d9e99650c68514da05585c5) +++ b/qpOASESConfig.cmake.in (date 1766737135519) @@ -5,25 +5,54 @@ # qpOASES_INCLUDE_DIR - The qpOASES include directory # qpOASES_LIBRARY_DIR - The qpOASES library directory # qpOASES_LIBRARY - The qpOASES library -# qpOASES_VERSION - The qpOASES version in the form . - - +# qpOASES_VERSION - The qpOASES version in the form . +# +# It also provides the following imported target: +# +# qpOASES::qpOASES @PACKAGE_INIT@ set(qpOASES_VERSION @PACKAGE_VERSION@) +# ------------------------------------------------------------ +# Load exported targets (modern CMake) +# ------------------------------------------------------------ +include("${CMAKE_CURRENT_LIST_DIR}/qpOASESTargets.cmake") -set_and_check(qpOASES_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") +# ------------------------------------------------------------ +# Backward compatibility variables (derived from target) +# ------------------------------------------------------------ +# Include directory +get_target_property(_qpOASES_INCLUDE_DIR qpOASES::qpOASES INTERFACE_INCLUDE_DIRECTORIES) + +# Handle generator expressions and lists +list(GET _qpOASES_INCLUDE_DIR 0 qpOASES_INCLUDE_DIR) set(qpOASES_INCLUDE_DIR "${qpOASES_INCLUDE_DIR}" CACHE STRING "Include path for qpOASES and its dependencies") -set_and_check(qpOASES_LIBRARY_DIR @PACKAGE_LIB_INSTALL_DIR@) + +# Library file (configuration-aware) +get_target_property(_qpOASES_LIB_LOCATION qpOASES::qpOASES IMPORTED_LOCATION) + +if(NOT _qpOASES_LIB_LOCATION) + if(CMAKE_BUILD_TYPE STREQUAL Debug) + get_target_property(_qpOASES_LIB_LOCATION qpOASES::qpOASES IMPORTED_LOCATION_DEBUG) + else() + get_target_property(_qpOASES_LIB_LOCATION qpOASES::qpOASES IMPORTED_LOCATION_RELEASE) + endif() +endif() + +set(qpOASES_LIBRARY "${_qpOASES_LIB_LOCATION}") + +# Library directory +get_filename_component(qpOASES_LIBRARY_DIR "${qpOASES_LIBRARY}" DIRECTORY) + set(qpOASES_LIBRARY_DIR "${qpOASES_LIBRARY_DIR}" CACHE STRING "Library path for qpOASES and its dependencies") -find_library(qpOASES_LIBRARY NAMES qpOASES - PATHS ${qpOASES_LIBRARY_DIR} NO_DEFAULT_PATH) - - +# ------------------------------------------------------------ +# Standard find_package result handling +# ------------------------------------------------------------ include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(qpOASES DEFAULT_MSG qpOASES_INCLUDE_DIR qpOASES_LIBRARY_DIR qpOASES_LIBRARY qpOASES_VERSION) \ No newline at end of file + +find_package_handle_standard_args(qpOASES REQUIRED_VARS qpOASES_LIBRARY qpOASES_INCLUDE_DIR VERSION_VAR qpOASES_VERSION) \ No newline at end of file Index: CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>GBK =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision 35b762ba3fee2e009d9e99650c68514da05585c5) +++ b/CMakeLists.txt (date 1766735663415) @@ -125,7 +125,17 @@ # library ADD_LIBRARY(qpOASES ${SRC}) + +add_library(qpOASES::qpOASES ALIAS qpOASES) + +target_include_directories(qpOASES + PUBLIC + $ + $ +) + INSTALL(TARGETS qpOASES + EXPORT qpOASESTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -164,6 +174,11 @@ VERSION ${PACKAGE_VERSION} COMPATIBILITY SameMajorVersion) +install(EXPORT qpOASESTargets + NAMESPACE qpOASES:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/qpOASES +) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qpOASESConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/qpOASESConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/qpOASES ================================================ FILE: ports/qpoases/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin-or/qpOASES REF 35b762ba3fee2e009d9e99650c68514da05585c5 SHA512 691b91113cc8c0ab05f3143749c225a44bcb16a2dc6e60ecd3a4d00f44b8284a3d57dad83e4ef53d56b033e9ce9346735496263fb9f8def6f62ccd429f154a0d HEAD_REF master PATCHES export_target.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQPOASES_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/qpOASES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/qpoases/usage ================================================ The package quarter provides CMake targets: find_package(qpOASES CONFIG REQUIRED) target_link_libraries(your_target PRIVATE qpOASES::qpOASES) For backward compatibility, the following variables are also provided: target_include_directories(your_target PRIVATE ${qpOASES_INCLUDE_DIR}) target_link_libraries(your_target PRIVATE ${qpOASES_LIBRARY}) ================================================ FILE: ports/qpoases/vcpkg.json ================================================ { "name": "qpoases", "version": "3.2.2", "description": "Open-source C++ implementation of the online active set strategy for quadratic programming", "homepage": "https://github.com/coin-or/qpOASES", "license": "LGPL-2.1-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qscintilla/fix-static.patch ================================================ diff --git a/src/qscintilla.pro b/src/qscintilla.pro index 8d0acd2..2246442 100644 --- a/src/qscintilla.pro +++ b/src/qscintilla.pro @@ -37,13 +37,13 @@ CONFIG(debug, debug|release) { TARGET = qscintilla2_qt$${QT_MAJOR_VERSION} } -macx:!CONFIG(staticlib) { +macx:!CONFIG(static) { QMAKE_POST_LINK += install_name_tool -id @rpath/$(TARGET1) $(TARGET) } INCLUDEPATH += . ../scintilla/include ../scintilla/lexlib ../scintilla/src -!CONFIG(staticlib) { +!CONFIG(static) { DEFINES += QSCINTILLA_MAKE_DLL # Comment this in to build a dynamic library supporting multiple @@ -86,7 +86,7 @@ qsci.files = ../qsci INSTALLS += qsci features.path = $$[QT_HOST_DATA]/mkspecs/features -CONFIG(staticlib) { +CONFIG(static) { features.files = $$PWD/features_staticlib/qscintilla2.prf } else { features.files = $$PWD/features/qscintilla2.prf ================================================ FILE: ports/qscintilla/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${VERSION}/QScintilla_src-${VERSION}.tar.gz" FILENAME "QScintilla-${VERSION}.tar.gz" SHA512 19e2f9e0a14947501c575018df368d24eb7f8c74e74faa5246db36415bf28dc0beee507ed0e73107c02b36a99bbaf55f0ef3349f479d2332e1b92b2c4a32788a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES fix-static.patch ) vcpkg_find_acquire_program(PYTHON3) # Add python3 to path get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(${PYTHON3_PATH}) vcpkg_qmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" QMAKE_OPTIONS "CONFIG-=hide_symbols" "DEFINES+=SCI_NAMESPACE" ) vcpkg_qmake_install() file(GLOB DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll") if(DLLS) file(COPY ${DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(REMOVE ${DLLS}) endif() file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll") if(DEBUG_DLLS) file(COPY ${DEBUG_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE ${DEBUG_DLLS}) endif() file(GLOB HEADER_FILES ${SOURCE_PATH}/src/Qsci/*) file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/Qsci) if (VCPKG_TARGET_IS_WINDOWS AND (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/Qsci/qsciglobal.h "#if defined(QSCINTILLA_DLL)" "#if 1" ) endif() vcpkg_copy_pdbs() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-qscintilla-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qscintilla/unofficial-qscintilla-config.cmake ================================================ if(NOT TARGET unofficial::qscintilla::qscintilla) include(CMakeFindDependencyMacro) find_dependency(Qt6Widgets CONFIG) if(NOT IOS) find_dependency(Qt6PrintSupport CONFIG) endif() add_library(unofficial::qscintilla::qscintilla UNKNOWN IMPORTED) get_filename_component(z_vcpkg_qscintilla_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_qscintilla_root "${z_vcpkg_qscintilla_root}" PATH) get_filename_component(z_vcpkg_qscintilla_root "${z_vcpkg_qscintilla_root}" PATH) set_target_properties(unofficial::qscintilla::qscintilla PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_vcpkg_qscintilla_root}/include" INTERFACE_LINK_LIBRARIES Qt6::Widgets ) if(NOT IOS) set_property(TARGET unofficial::qscintilla::qscintilla APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt6::PrintSupport) endif() find_library(Z_VCPKG_QSCINTILLA_LIBRARY_RELEASE NAMES libqscintilla2_qt6 qscintilla2_qt6 PATHS "${z_vcpkg_qscintilla_root}/lib" NO_DEFAULT_PATH) if(EXISTS "${Z_VCPKG_QSCINTILLA_LIBRARY_RELEASE}") set_property(TARGET unofficial::qscintilla::qscintilla APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::qscintilla::qscintilla PROPERTIES IMPORTED_LOCATION_RELEASE "${Z_VCPKG_QSCINTILLA_LIBRARY_RELEASE}") endif() find_library(Z_VCPKG_QSCINTILLA_LIBRARY_DEBUG NAMES libqscintilla2_qt6 qscintilla2_qt6d libqscintilla2_qt6_debug PATHS "${z_vcpkg_qscintilla_root}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${Z_VCPKG_QSCINTILLA_LIBRARY_DEBUG}") set_property(TARGET unofficial::qscintilla::qscintilla APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::qscintilla::qscintilla PROPERTIES IMPORTED_LOCATION_DEBUG "${Z_VCPKG_QSCINTILLA_LIBRARY_DEBUG}") endif() unset(z_vcpkg_qscintilla_root) endif() ================================================ FILE: ports/qscintilla/vcpkg.json ================================================ { "name": "qscintilla", "version": "2.14.1", "port-version": 1, "description": "QScintilla is a port to Qt of the Scintilla editing component. Features syntax highlighting, code-completion and much more (Barebone build without python bindings (missing dependeny PyQt) and without QtDesigner plugin)", "homepage": "https://www.riverbankcomputing.com/software/qscintilla", "license": "GPL-3.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "vcpkg-qmake", "host": true, "default-features": false } ] } ================================================ FILE: ports/qt/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/qt/vcpkg.json ================================================ { "name": "qt", "version": "6.10.2", "description": "A cross-platform application and UI framework.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qt3d", "default-features": false, "features": [ "animation", "assimp", "extras", "input", "logic", "qml", "render", "rhi" ] }, { "name": "qt5compat", "default-features": false, "features": [ "big-codecs", "codecs", "qml", "textcodec" ] }, { "name": "qtapplicationmanager", "features": [ "installer", "package-server" ], "platform": "android | ios | linux | osx | qnx | (windows & !uwp & (arm64 | x64))" }, { "name": "qtbase", "default-features": false }, { "name": "qtcharts", "default-features": false, "features": [ "designer", "qml" ] }, "qtcoap", "qtconnectivity", "qtdatavis3d", "qtdeclarative", { "name": "qtdeviceutilities", "default-features": false, "platform": "linux" }, "qtdoc", "qtgraphs", "qtgrpc", { "name": "qtimageformats", "default-features": false, "features": [ "jasper", "tiff", "webp" ] }, "qtinterfaceframework", "qtlanguageserver", { "name": "qtlottie", "default-features": false, "features": [ "qml" ] }, "qtmqtt", { "name": "qtmultimedia", "default-features": false, "features": [ "ffmpeg", "qml", "widgets" ] }, { "name": "qtmultimedia", "default-features": false, "features": [ { "name": "gstreamer", "platform": "linux" } ], "platform": "!windows" }, "qtnetworkauth", { "name": "qtopcua", "features": [ "qml" ] }, { "name": "qtpositioning", "default-features": false, "features": [ "qml" ] }, { "name": "qtquick3d", "default-features": false }, "qtquicktimeline", { "name": "qtremoteobjects", "default-features": false, "features": [ "qml" ] }, { "name": "qtscxml", "default-features": false, "features": [ "qml" ] }, { "name": "qtsensors", "default-features": false, "features": [ "qml" ] }, "qtserialbus", "qtserialport", "qtshadertools", { "name": "qtspeech", "default-features": false, "platform": "!(windows & x86)" }, "qtsvg", { "name": "qttools", "default-features": false, "features": [ "assistant", "designer", "qml" ] }, "qttranslations", "qtvirtualkeyboard", { "name": "qtwebchannel", "default-features": false, "features": [ "qml" ] }, { "name": "qtwebengine", "default-features": false }, { "name": "qtwebengine", "default-features": false, "features": [ "geolocation", "spellchecker", "webchannel" ], "platform": "(linux | osx | (windows & x64)) & !static" }, { "name": "qtwebsockets", "default-features": false, "features": [ "qml" ] }, { "name": "qtwebview", "default-features": false, "platform": "x64 | arm64" }, { "name": "qtwebview", "default-features": false, "features": [ "webengine" ], "platform": "!static & !(windows & arm)" } ], "default-features": [ "default-features" ], "features": { "default-features": { "description": "Platform-dependent default features", "dependencies": [ { "name": "qtactiveqt", "features": [ "qml" ], "platform": "windows" }, { "name": "qtquick3d", "features": [ "openxr" ], "platform": "!uwp" }, { "name": "qtwayland", "features": [ "qml" ], "platform": "linux" } ] } } } ================================================ FILE: ports/qt-advanced-docking-system/fix_windows_version_resources_generation.patch ================================================ diff --git a/cmake/modules/Versioning.cmake b/cmake/modules/Versioning.cmake index e492370..380d97e 100644 --- a/cmake/modules/Versioning.cmake +++ b/cmake/modules/Versioning.cmake @@ -10,51 +10,54 @@ set(_VERSIONING_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE INTERNAL "Versionin # ------------------------------------------------------------ # Extract version information from Git # ------------------------------------------------------------ +if(NOT ADS_VERSION) + # Get tag (expected: v1.2.3 or 1.2.3 or 1.2.3-12-gHASH) + execute_process( + COMMAND git describe --tags --dirty + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_DESC_RAW + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + # Remove leading "v" if present + string(REGEX REPLACE "^v" "" GIT_DESC "${GIT_DESC_RAW}") + + # Extract major.minor.patch + string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GIT_DESC}") + set(PROJECT_VERSION_MAJOR "${CMAKE_MATCH_1}") + set(PROJECT_VERSION_MINOR "${CMAKE_MATCH_2}") + set(PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}") + + set(PROJECT_VERSION_STRING + "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" + ) + + # Commit hash (full + short) + execute_process( + COMMAND git rev-parse HEAD + OUTPUT_VARIABLE PROJECT_GIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + execute_process( + COMMAND git rev-parse --short HEAD + OUTPUT_VARIABLE PROJECT_GIT_HASH_SHORT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) -# Get tag (expected: v1.2.3 or 1.2.3 or 1.2.3-12-gHASH) -execute_process( - COMMAND git describe --tags --dirty - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_DESC_RAW - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -# Remove leading "v" if present -string(REGEX REPLACE "^v" "" GIT_DESC "${GIT_DESC_RAW}") - -# Extract major.minor.patch -string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" _ "${GIT_DESC}") -set(PROJECT_VERSION_MAJOR "${CMAKE_MATCH_1}") -set(PROJECT_VERSION_MINOR "${CMAKE_MATCH_2}") -set(PROJECT_VERSION_PATCH "${CMAKE_MATCH_3}") - -set(PROJECT_VERSION_STRING - "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}" -) - -# Commit hash (full + short) -execute_process( - COMMAND git rev-parse HEAD - OUTPUT_VARIABLE PROJECT_GIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -execute_process( - COMMAND git rev-parse --short HEAD - OUTPUT_VARIABLE PROJECT_GIT_HASH_SHORT - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -# Export variables to parent scope -set(PROJECT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" PARENT_SCOPE) -set(PROJECT_VERSION_MINOR "${PROJECT_VERSION_MINOR}" PARENT_SCOPE) -set(PROJECT_VERSION_PATCH "${PROJECT_VERSION_PATCH}" PARENT_SCOPE) -set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}" PARENT_SCOPE) -set(PROJECT_GIT_HASH "${PROJECT_GIT_HASH}" PARENT_SCOPE) -set(PROJECT_GIT_HASH_SHORT "${PROJECT_GIT_HASH_SHORT}" PARENT_SCOPE) - -# Public variable for users -set(PROJECT_AUTO_VERSION "${PROJECT_VERSION_STRING}" PARENT_SCOPE) + # Export variables to parent scope + set(PROJECT_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" PARENT_SCOPE) + set(PROJECT_VERSION_MINOR "${PROJECT_VERSION_MINOR}" PARENT_SCOPE) + set(PROJECT_VERSION_PATCH "${PROJECT_VERSION_PATCH}" PARENT_SCOPE) + set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}" PARENT_SCOPE) + set(PROJECT_GIT_HASH "${PROJECT_GIT_HASH}" PARENT_SCOPE) + set(PROJECT_GIT_HASH_SHORT "${PROJECT_GIT_HASH_SHORT}" PARENT_SCOPE) + + # Public variable for users + set(PROJECT_AUTO_VERSION "${PROJECT_VERSION_STRING}" PARENT_SCOPE) +else() + set(PROJECT_VERSION_STRING "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}") +endif() # ------------------------------------------------------------ # Reusable function: Attach Windows version resources to target ================================================ FILE: ports/qt-advanced-docking-system/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO githubuser0xFFFF/Qt-Advanced-Docking-System REF "${VERSION}" SHA512 ae9345e0876a80e2f2dfa393d12176215cdcf17ed1985d2e46527d12a3abf4ea2b7796217871b562aaab9c7c876bef226de661d5e9cbdc862c8f49d57e9e8173 HEAD_REF master PATCHES set_cmake_module_path.patch fix_windows_version_resources_generation.patch ) if(VCPKG_CROSSCOMPILING) list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}") list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${_qarg_OPTIONS} -DBUILD_EXAMPLES=OFF -DADS_VERSION=${VERSION} -DQT_VERSION_MAJOR=6 -DBUILD_STATIC=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "qtadvanceddocking-qt6" CONFIG_PATH "lib/cmake/qtadvanceddocking-qt6") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/qtadvanceddocking-qt6/qtadvanceddocking-qt6Config.cmake" "include(CMakeFindDependencyMacro)" [[include(CMakeFindDependencyMacro) find_dependency(Qt6 COMPONENTS Core Gui Widgets)]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/license") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/license") file(INSTALL "${SOURCE_PATH}/gnu-lgpl-v2.1.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qt-advanced-docking-system/set_cmake_module_path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f9b1d7f..6a2f7b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,12 +4,13 @@ if (POLICY CMP0091) cmake_policy(SET CMP0091 NEW) endif (POLICY CMP0091) +set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) + # By default, the version information is extracted from the git index. However, # we can override this behavior by explicitly setting ADS_VERSION and # skipping the git checks. This is useful for cases where this project is being # used independently of its original git repo (e.g. vendored in another project) if(NOT ADS_VERSION) - set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) include(GetGitRevisionDescription) git_describe(GitTagVersion --tags) string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GitTagVersion}") ================================================ FILE: ports/qt-advanced-docking-system/vcpkg.json ================================================ { "name": "qt-advanced-docking-system", "version": "4.5.0", "description": "Create customizable layouts using an advanced window docking system similar to what is found in many popular IDEs such as Visual Studio", "homepage": "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System", "license": "LGPL-2.1-only", "supports": "!xbox", "dependencies": [ "bzip2", { "name": "qtbase", "default-features": false, "features": [ "gui", "widgets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/qt3d/port.data.cmake ================================================ set(qt3d_HASH "df546eff48865e05e4cfc8e0c574342f736105e7488781f6e5c6de1dd7a0d7be86c4668215358ebc9338a5850881c7059e3f100318762b0a7a417d820e4f89d4") set(qt3d_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qt3d-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qt3d-everywhere-src-6.10.2.tar.xz") set(qt3d_FILENAME "qt3d-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qt3d/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") # General features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick "vulkan" CMAKE_REQUIRE_FIND_PACKAGE_Vulkan "vulkan" FEATURE_qt3d_vulkan "rhi" FEATURE_qt3d_rhi_renderer "render" FEATURE_qt3d_render "input" FEATURE_qt3d_input "logic" FEATURE_qt3d_logic "extras" FEATURE_qt3d_extras "animation" FEATURE_qt3d_animation INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick "vulkan" CMAKE_DISABLE_FIND_PACKAGE_Vulkan ) if("assimp" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_assimp=system) else() list(APPEND FEATURE_OPTIONS -DINPUT_assimp=no) endif() qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} #-DINPUT_fbxsdk=no -DFEATURE_qt3d_fbxsdk=OFF # OpenFBX? Probably not! -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON CONFIGURE_OPTIONS_RELEASE -DCMAKE_TRY_COMPILE_CONFIGURATION=Release CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qt3d/vcpkg.json ================================================ { "name": "qt3d", "version": "6.10.2", "description": "Qt wrapper for existing OPC UA stacks", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ "assimp", { "name": "qtbase", "default-features": false, "features": [ "concurrent", "gui", "network", "widgets" ] } ], "default-features": [ "animation", "assimp", "extras", "input", "logic", "render" ], "features": { "animation": { "description": "Use the 3D Animation Aspect library", "dependencies": [ { "name": "qt3d", "default-features": false, "features": [ "render" ] } ] }, "assimp": { "description": "Build with assimp", "dependencies": [ "assimp" ] }, "extras": { "description": "Use the 3D Extra library", "dependencies": [ { "name": "qt3d", "default-features": false, "features": [ "input", "logic", "render" ] } ] }, "input": { "description": "Use the 3D Input Aspect library" }, "logic": { "description": "Use the 3D Logic Aspect library" }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false } ] }, "render": { "description": "Use the 3D Render Aspect library" }, "rhi": { "description": "Enable RHI renderer", "dependencies": [ "qtshadertools" ] }, "vulkan": { "description": "Build with vulkan support", "dependencies": [ { "name": "qt3d", "default-features": false, "features": [ "render", "rhi" ] }, { "name": "qtbase", "default-features": false, "features": [ "vulkan" ] }, "vulkan" ] } } } ================================================ FILE: ports/qt5/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/qt5/vcpkg.json ================================================ { "name": "qt5", "version": "5.15.18", "description": "A cross-platform application and UI framework.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ], "default-features": [ "essentials" ], "features": { "3d": { "description": [], "dependencies": [ "qt5-3d" ] }, "activeqt": { "description": "Windows Only", "dependencies": [ { "name": "qt5-activeqt", "platform": "windows" } ] }, "all": { "description": "Install all Qt5 submodules (Warning: Could take a long time and fail...)", "dependencies": [ { "name": "qt5", "features": [ "3d", "activeqt", "charts", "connectivity", "datavis3d", "declarative", "doc", "extras", "gamepad", "graphicaleffects", "imageformats", "location", "mqtt", "multimedia", "networkauth", "purchasing", "quickcontrols", "quickcontrols2", "remoteobjects", "script", "scxml", "sensors", "serialbus", "serialport", "speech", "svg", "tools", "translations", "virtualkeyboard", "webchannel", "webglplugin", "websockets", "webview", "xmlpatterns" ] }, { "name": "qt5", "default-features": false, "features": [ "wayland" ], "platform": "linux" }, { "name": "qt5", "default-features": false, "features": [ "webengine" ], "platform": "!static" }, { "name": "qt5-base", "default-features": false, "features": [ "icu", "mysqlplugin", "openssl", "postgresqlplugin" ] } ] }, "charts": { "description": [], "dependencies": [ "qt5-charts" ] }, "connectivity": { "description": [], "dependencies": [ "qt5-connectivity" ] }, "datavis3d": { "description": [], "dependencies": [ "qt5-datavis3d" ] }, "declarative": { "description": [], "dependencies": [ "qt5-declarative" ] }, "doc": { "description": [], "dependencies": [ { "name": "qt5-doc", "platform": "linux" } ] }, "essentials": { "description": "Build the essential qt modules", "dependencies": [ { "name": "qt5", "default-features": false, "features": [ "activeqt", "declarative", "imageformats", "multimedia", "networkauth", "quickcontrols", "quickcontrols2", "svg", "tools", "translations", "websockets" ] } ] }, "extras": { "description": [], "dependencies": [ { "name": "qt5-androidextras", "platform": "android" }, { "name": "qt5-macextras", "platform": "osx" }, { "name": "qt5-winextras", "features": [ "declarative" ], "platform": "windows" }, { "name": "qt5-x11extras", "platform": "linux" } ] }, "gamepad": { "description": [], "dependencies": [ "qt5-gamepad" ] }, "graphicaleffects": { "description": [], "dependencies": [ "qt5-graphicaleffects" ] }, "imageformats": { "description": [], "dependencies": [ "qt5-imageformats" ] }, "latest": { "description": "(deprecated)" }, "location": { "description": [], "dependencies": [ "qt5-location" ] }, "mqtt": { "description": [], "dependencies": [ "qt5-mqtt" ] }, "multimedia": { "description": [], "dependencies": [ "qt5-multimedia" ] }, "networkauth": { "description": [], "dependencies": [ "qt5-networkauth" ] }, "purchasing": { "description": [], "dependencies": [ "qt5-purchasing" ] }, "quickcontrols": { "description": "(deprecated)", "dependencies": [ "qt5-quickcontrols" ] }, "quickcontrols2": { "description": [], "dependencies": [ "qt5-quickcontrols2" ] }, "remoteobjects": { "description": [], "dependencies": [ "qt5-remoteobjects" ] }, "script": { "description": "(deprecated)", "dependencies": [ "qt5-script" ] }, "scxml": { "description": [], "dependencies": [ "qt5-scxml" ] }, "sensors": { "description": [], "dependencies": [ "qt5-sensors" ] }, "serialbus": { "description": [], "dependencies": [ "qt5-serialbus" ] }, "serialport": { "description": [], "dependencies": [ "qt5-serialport" ] }, "speech": { "description": [], "dependencies": [ "qt5-speech" ] }, "svg": { "description": [], "dependencies": [ "qt5-svg" ] }, "tools": { "description": [], "dependencies": [ "qt5-tools" ] }, "translations": { "description": [], "dependencies": [ "qt5-translations" ] }, "virtualkeyboard": { "description": [], "dependencies": [ "qt5-virtualkeyboard" ] }, "wayland": { "description": [], "dependencies": [ "qt5-wayland" ] }, "webchannel": { "description": [], "dependencies": [ "qt5-webchannel" ] }, "webengine": { "description": [], "dependencies": [ "qt5-webengine" ] }, "webglplugin": { "description": [], "dependencies": [ "qt5-webglplugin" ] }, "websockets": { "description": [], "dependencies": [ "qt5-websockets" ] }, "webview": { "description": [], "dependencies": [ "qt5-webview" ] }, "xmlpatterns": { "description": "(deprecated)", "dependencies": [ "qt5-xmlpatterns" ] } } } ================================================ FILE: ports/qt5-3d/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") set(OPTIONS -system-assimp) x_vcpkg_pkgconfig_get_modules(PREFIX assimp MODULES assimp LIBS) set(OPT_REL "ASSIMP_LIBS=${assimp_LIBS_RELEASE}") set(OPT_DBG "ASSIMP_LIBS=${assimp_LIBS_DEBUG}") qt_submodule_installation(BUILD_OPTIONS ${OPTIONS} BUILD_OPTIONS_RELEASE ${OPT_REL} BUILD_OPTIONS_DEBUG ${OPT_DBG}) ================================================ FILE: ports/qt5-3d/vcpkg.json ================================================ { "name": "qt5-3d", "version": "5.15.18", "description": "Qt 3D provides functionality for near-realtime simulation systems with support for 2D and 3D rendering in both Qt C++ and Qt Quick applications.", "license": null, "dependencies": [ "assimp", { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-gamepad", "qt5-imageformats", { "name": "vcpkg-pkgconfig-get-modules", "host": true } ] } ================================================ FILE: ports/qt5-activeqt/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-activeqt/vcpkg.json ================================================ { "name": "qt5-activeqt", "version": "5.15.18", "description": "Active Qt is a helper framework that enables the developer to access and use ActiveX controls and COM objects provided by any ActiveX server. It also makes it possible to make the developer's own Qt applications available as COM servers on Windows.", "license": null, "supports": "windows", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-androidextras/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-androidextras/vcpkg.json ================================================ { "name": "qt5-androidextras", "version": "5.15.18", "description": "The Qt Android Extras module provided a set of classes and functions that were specific to Android applications written with Qt. This module helped developers to integrate various Android-specific features and services into their Qt applications.", "license": null, "supports": "android", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-base/cmake/configure_qt.cmake ================================================ function(configure_qt) cmake_parse_arguments(_csc "" "SOURCE_PATH;TARGET_PLATFORM;HOST_PLATFORM;HOST_TOOLS_ROOT" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN}) if(NOT _csc_TARGET_PLATFORM) message(FATAL_ERROR "configure_qt requires a TARGET_PLATFORM argument.") endif() if(DEFINED _csc_HOST_PLATFORM) list(APPEND _csc_OPTIONS -platform ${_csc_HOST_PLATFORM}) endif() if(DEFINED _csc_HOST_TOOLS_ROOT) ## vcpkg internal file struture assumed here! message(STATUS "Building Qt with prepared host tools from ${_csc_HOST_TOOLS_ROOT}!") vcpkg_add_to_path("${_csc_HOST_TOOLS_ROOT}/bin") vcpkg_add_to_path("${_csc_HOST_TOOLS_ROOT}") set(EXT_BIN_DIR -external-hostbindir ${_csc_HOST_TOOLS_ROOT}/bin) # we only use release binaries for building find_program(QMAKE_COMMAND NAMES qmake PATHS ${_csc_HOST_TOOLS_ROOT}/bin NO_DEFAULT_PATH) set(INVOKE "${QMAKE_COMMAND}" ) else() if(CMAKE_HOST_WIN32) set(CONFIGURE_BAT "configure.bat") else() set(CONFIGURE_BAT "configure") endif() set(INVOKE "${_csc_SOURCE_PATH}/${CONFIGURE_BAT}") endif() #Cleanup previous build folders file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_cmake_get_vars(detected_file) include("${detected_file}") function(qmake_append_program var qmake_var value) get_filename_component(prog "${value}" NAME) # QMake assumes everything is on PATH? vcpkg_list(APPEND ${var} "${qmake_var}=${prog}") find_program(${qmake_var} NAMES "${prog}") cmake_path(COMPARE "${${qmake_var}}" EQUAL "${value}" correct_prog_on_path) if(NOT correct_prog_on_path AND NOT "${value}" MATCHES "|:") message(FATAL_ERROR "Detect path mismatch for '${qmake_var}'. '${value}' is not the same as '${${qmake_var}}'. Please correct your PATH!") endif() unset(${qmake_var}) unset(${qmake_var} CACHE) set(${var} "${${var}}" PARENT_SCOPE) endfunction() # Setup Build tools set(qmake_build_tools "") qmake_append_program(qmake_build_tools "QMAKE_CC" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_CXX" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_AR" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_RANLIB" "${VCPKG_DETECTED_CMAKE_RANLIB}") qmake_append_program(qmake_build_tools "QMAKE_STRIP" "${VCPKG_DETECTED_CMAKE_STRIP}") qmake_append_program(qmake_build_tools "QMAKE_NM" "${VCPKG_DETECTED_CMAKE_NM}") qmake_append_program(qmake_build_tools "QMAKE_RC" "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_MT" "${VCPKG_DETECTED_CMAKE_MT}") if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_DETECTED_CMAKE_AR MATCHES "ar$") # This is the reason why users should probably use a # customized qt.conf with more domain knowledge. vcpkg_list(APPEND qmake_build_tools "QMAKE_AR+=qc") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) qmake_append_program(qmake_build_tools "QMAKE_LIB" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_LINKER}") else() qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_SHLIB" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C_SHLIB" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() #Find and ad Perl to PATH vcpkg_find_acquire_program(PERL) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) vcpkg_add_to_path("${PERL_EXE_PATH}") if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") list(APPEND _csc_OPTIONS -static) else() #list(APPEND _csc_OPTIONS_DEBUG -separate-debug-info) endif() if(VCPKG_TARGET_IS_WINDOWS AND "${VCPKG_CRT_LINKAGE}" STREQUAL "static") list(APPEND _csc_OPTIONS -static-runtime) endif() list(APPEND _csc_OPTIONS_RELEASE -release) list(APPEND _csc_OPTIONS_DEBUG -debug) #Replace with VCPKG variables if PR #7733 is merged unset(BUILDTYPES) if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") set(_buildname "DEBUG") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "dbg") set(_path_suffix_${_buildname} "/debug") set(_build_type_${_buildname} "debug") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") set(_buildname "RELEASE") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "rel") set(_path_suffix_${_buildname} "") set(_build_type_${_buildname} "release") endif() unset(_buildname) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") get_filename_component(PKGCONFIG_PATH "${PKGCONFIG}" DIRECTORY) vcpkg_add_to_path("${PKGCONFIG_PATH}") foreach(_buildname ${BUILDTYPES}) set(PKGCONFIG_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/lib/pkgconfig") set(PKGCONFIG_INSTALLED_SHARE_DIR "${CURRENT_INSTALLED_DIR}/share/pkgconfig") set(PKGCONFIG_PACKAGES_DIR "${CURRENT_PACKAGES_DIR}${_path_suffix_${_buildname}}/lib/pkgconfig") set(PKGCONFIG_PACKAGES_SHARE_DIR "${CURRENT_PACKAGES_DIR}/share/pkgconfig") if(DEFINED ENV{PKG_CONFIG_PATH}) set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH}) set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}") else() set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}") endif() set(_build_triplet ${TARGET_TRIPLET}-${_short_name_${_buildname}}) message(STATUS "Configuring ${_build_triplet}") set(_build_dir "${CURRENT_BUILDTREES_DIR}/${_build_triplet}") file(MAKE_DIRECTORY ${_build_dir}) set(qmake_comp_flags "") # Note sure about these. VCPKG_QMAKE_OPTIONS offers a way to opt out of these. (earlier values being overwritten by later values; = set +=append *=append unique -=remove) macro(qmake_add_flags qmake_var operation flags) string(STRIP "${flags}" striped_flags) if(striped_flags) vcpkg_list(APPEND qmake_comp_flags "${qmake_var}${operation}${striped_flags}") endif() endmacro() qmake_add_flags("QMAKE_LIBS" "+=" "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") qmake_add_flags("QMAKE_RC" "+=" "${VCPKG_COMBINED_RC_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_CFLAGS_${_buildname}" "+=" "${VCPKG_COMBINED_C_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_CXXFLAGS_${_buildname}" "+=" "${VCPKG_COMBINED_CXX_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_LFLAGS" "+=" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_LFLAGS_SHLIB" "+=" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_LFLAGS_PLUGIN" "+=" "${VCPKG_COMBINED_MODULE_LINKER_FLAGS_${_buildname}}") qmake_add_flags("QMAKE_LIBFLAGS_${_buildname}" "+=" "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${_buildname}}") # These paths get hardcoded into qmake. So point them into the CURRENT_INSTALLED_DIR instead of CURRENT_PACKAGES_DIR # makefiles will be fixed to install into CURRENT_PACKAGES_DIR in install_qt set(BUILD_OPTIONS ${_csc_OPTIONS} ${_csc_OPTIONS_${_buildname}} -prefix ${CURRENT_INSTALLED_DIR} #-extprefix ${CURRENT_INSTALLED_DIR} ${EXT_BIN_DIR} -hostprefix ${CURRENT_INSTALLED_DIR}/tools/qt5${_path_suffix_${_buildname}} #-hostprefix ${CURRENT_INSTALLED_DIR}/tools/qt5 -hostlibdir ${CURRENT_INSTALLED_DIR}/tools/qt5${_path_suffix_${_buildname}}/lib # could probably be move to manual-link -hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5${_path_suffix_${_buildname}}/bin #-hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5/bin # Qt VS Plugin requires a /bin subfolder with the executables in the root dir. But to use the wizard a correctly setup lib folder is also required # So with the vcpkg layout there is no way to make it work unless all dll are are copied to tools/qt5/bin and all libs to tools/qt5/lib -archdatadir ${CURRENT_INSTALLED_DIR}/tools/qt5${_path_suffix_${_buildname}} -datadir ${CURRENT_INSTALLED_DIR}${_path_suffix}/share/qt5${_path_suffix_${_buildname}} -plugindir ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/plugins -qmldir ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/qml -headerdir ${CURRENT_INSTALLED_DIR}/include/qt5 -libexecdir ${CURRENT_INSTALLED_DIR}/tools/qt5${_path_suffix_${_buildname}} -bindir ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/bin -libdir ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/lib -I ${CURRENT_INSTALLED_DIR}/include -I ${CURRENT_INSTALLED_DIR}/include/qt5 -L ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/lib -L ${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}/lib/manual-link -platform ${_csc_TARGET_PLATFORM} ) if(DEFINED _csc_HOST_TOOLS_ROOT) #use qmake if(WIN32) set(INVOKE_OPTIONS "QMAKE_CXX.QMAKE_MSC_VER=1911" "QMAKE_MSC_VER=1911") endif() vcpkg_execute_required_process( COMMAND ${INVOKE} "${_csc_SOURCE_PATH}" "${INVOKE_OPTIONS}" -- ${BUILD_OPTIONS} ${qmake_build_tools} ${qmake_comp_flags} WORKING_DIRECTORY ${_build_dir} LOGNAME config-${_build_triplet} ) else()# call configure (builds qmake for triplet and calls it like above) vcpkg_execute_required_process( COMMAND "${INVOKE}" ${BUILD_OPTIONS} ${qmake_build_tools} ${qmake_comp_flags} WORKING_DIRECTORY ${_build_dir} LOGNAME config-${_build_triplet} ) endif() # Note archdatadir and datadir are required to be prefixed with the hostprefix? message(STATUS "Configuring ${_build_triplet} done") # Copy configuration dependent qt.conf file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}" CMAKE_CURRENT_PACKAGES_DIR_PATH) file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" CMAKE_CURRENT_INSTALLED_DIR_PATH) file(READ "${CURRENT_BUILDTREES_DIR}/${_build_triplet}/bin/qt.conf" _contents) string(REPLACE "${CMAKE_CURRENT_PACKAGES_DIR_PATH}" "\${CURRENT_INSTALLED_DIR}" _contents ${_contents}) string(REPLACE "${CMAKE_CURRENT_INSTALLED_DIR_PATH}" "\${CURRENT_INSTALLED_DIR}" _contents ${_contents}) #string(REPLACE "HostPrefix=\${CURRENT_PACKAGES_DIR}" "HostPrefix=\${CURRENT_INSTALLED_DIR}" _contents ${_contents}) string(REPLACE "[EffectivePaths]\nPrefix=..\n" "" _contents ${_contents}) string(REGEX REPLACE "\\[EffectiveSourcePaths\\]\r?\nPrefix=[^\r\n]+\r?\n" "" _contents ${_contents}) string(REPLACE "Sysroot=\n" "" _contents ${_contents}) string(REPLACE "SysrootifyPrefix=false\n" "" _contents ${_contents}) file(WRITE "${CURRENT_PACKAGES_DIR}/tools/qt5/qt_${_build_type_${_buildname}}.conf" "${_contents}") endforeach() endfunction() ================================================ FILE: ports/qt5-base/cmake/find_qt_mkspec.cmake ================================================ function(find_qt_mkspec TARGET_PLATFORM_MKSPEC_OUT HOST_PLATFORM_MKSPEC_OUT EXT_HOST_TOOLS_OUT) ## Figure out QTs target mkspec if(NOT DEFINED VCPKG_QT_TARGET_MKSPEC) message(STATUS "Figuring out qt target mkspec. Target arch ${VCPKG_TARGET_ARCHITECTURE}") if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_IS_MINGW) set(_tmp_targ_out "win32-g++") elseif(VCPKG_TARGET_IS_UWP) if(VCPKG_PLATFORM_TOOLSET STREQUAL "v140") set(msvc_year "2015") elseif(VCPKG_PLATFORM_TOOLSET STREQUAL "v141") set(msvc_year "2017") elseif(VCPKG_PLATFORM_TOOLSET STREQUAL "v142") set(msvc_year "2019") else() message(FATAL_ERROR "No target mkspec found!") endif() set(_tmp_targ_out "winrt-${VCPKG_TARGET_ARCHITECTURE}-msvc${msvc_year}") else() if("${VCPKG_TARGET_ARCHITECTURE}" MATCHES "arm64") message(STATUS "Figuring out arm64") set(_tmp_targ_out "win32-arm64-msvc2017") #mkspec does not have anything defined related to msvc2017 so this should work else() set(_tmp_targ_out "win32-msvc") endif() endif() elseif(VCPKG_TARGET_IS_LINUX) set(_tmp_targ_out "linux-g++" ) elseif(VCPKG_TARGET_IS_OSX) set(_tmp_targ_out "macx-clang") # switch to macx-g++ since vcpkg requires g++ to compile any way? endif() else() set(_tmp_targ_out ${VCPKG_QT_TARGET_MKSPEC}) endif() message(STATUS "Target mkspec set to: ${_tmp_targ_out}") set(${TARGET_PLATFORM_MKSPEC_OUT} ${_tmp_targ_out} PARENT_SCOPE) ## Figure out QTs host mkspec if(NOT DEFINED VCPKG_QT_HOST_MKSPEC) #if(WIN32) # set(_tmp_host_out "win32-msvc") #elseif("${CMAKE_HOST_SYSTEM}" STREQUAL "Linux") # set(_tmp_host_out "linux-g++") #elseif("${CMAKE_HOST_SYSTEM}" STREQUAL "Darwin") # set(_tmp_host_out "macx-clang") #endif() if(DEFINED _tmp_host_out) message(STATUS "Host mkspec set to: ${_tmp_host_out}") else() message(STATUS "Host mkspec not set. Qt's own buildsystem will try to figure out the host system") endif() else() set(_tmp_host_out ${VCPKG_QT_HOST_MKSPEC}) endif() if(DEFINED _tmp_host_out) set(${HOST_PLATFORM_MKSPEC_OUT} ${_tmp_host_out} PARENT_SCOPE) endif() ## Figure out VCPKG qt-tools directory for the port. if(NOT DEFINED VCPKG_QT_HOST_TOOLS_ROOT AND DEFINED VCPKG_QT_HOST_PLATFORM) ## Root dir of the required host tools if(NOT "${_tmp_host_out}" MATCHES "${_tmp_host_out}") if(CMAKE_HOST_WIN32) if($ENV{PROCESSOR_ARCHITECTURE} MATCHES "[aA][rR][mM]64") list(APPEND _test_triplets arm64-windows) elseif($ENV{PROCESSOR_ARCHITECTURE} MATCHES "[aA][mM][dD]64") list(APPEND _test_triplets x64-windows x64-windows-static) list(APPEND _test_triplets x86-windows x86-windows-static) elseif($ENV{PROCESSOR_ARCHITECTURE} MATCHES "x86") list(APPEND _test_triplets x86-windows x86-windows-static) else() message(FATAL_ERROR "Unknown host processor! Host Processor $ENV{PROCESSOR_ARCHITECTURE}") endif() elseif(CMAKE_HOST_SYSTEM STREQUAL "Linux") list(APPEND _test_triplets "x64-linux") elseif(CMAKE_HOST_SYSTEM STREQUAL "Darwin") list(APPEND _test_triplets "x64-osx") else() endif() foreach(_triplet ${_test_triplets}) find_program(QMAKE_PATH qmake PATHS ${VCPKG_INSTALLED_DIR}/${_triplet}/tools/qt5/bin NO_DEFAULT_PATHS) message(STATUS "Checking: ${VCPKG_INSTALLED_DIR}/${_triplet}/tools/qt5/bin. ${QMAKE_PATH}") if(QMAKE_PATH) set(_tmp_host_root "${VCPKG_INSTALLED_DIR}/${_triplet}/tools/qt5") set(_tmp_host_qmake ${QMAKE_PATH} PARENT_SCOPE) message(STATUS "Qt host tools root dir within vcpkg: ${_tmp_host_root}") break() endif() endforeach() if(NOT DEFINED _tmp_host_root) message(FATAL_ERROR "Unable to locate required host tools. Please define VCPKG_QT_HOST_TOOLS_ROOT to the required root dir of the host tools") endif() endif() else() set(_tmp_host_root ${VCPKG_QT_HOST_TOOLS_ROOT}) endif() if(DEFINED _tmp_host_root) set(${EXT_HOST_TOOLS_OUT} ${_tmp_host_root} PARENT_SCOPE) endif() endfunction() ================================================ FILE: ports/qt5-base/cmake/install_qt.cmake ================================================ include(qt_fix_makefile_install) function(install_qt) if(CMAKE_HOST_WIN32) if(VCPKG_TARGET_IS_MINGW) find_program(MINGW32_MAKE mingw32-make REQUIRED) set(INVOKE "${MINGW32_MAKE}" -j${VCPKG_CONCURRENCY}) set(INVOKE_SINGLE "${MINGW32_MAKE}" -j1) elseif (VCPKG_QMAKE_USE_NMAKE) find_program(NMAKE nmake REQUIRED) set(INVOKE "${NMAKE}") set(INVOKE_SINGLE "${NMAKE}") get_filename_component(NMAKE_EXE_PATH ${NMAKE} DIRECTORY) set(PATH_GLOBAL "$ENV{PATH}") set(ENV{PATH} "$ENV{PATH};${NMAKE_EXE_PATH}") set(ENV{CL} "$ENV{CL} /MP${VCPKG_CONCURRENCY}") else() vcpkg_find_acquire_program(JOM) set(INVOKE "${JOM}" /J ${VCPKG_CONCURRENCY}) set(INVOKE_SINGLE "${JOM}" /J 1) endif() else() find_program(MAKE make) set(INVOKE "${MAKE}" -j${VCPKG_CONCURRENCY}) set(INVOKE_SINGLE "${MAKE}" -j1) endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") if (CMAKE_HOST_WIN32) # flex and bison for ANGLE library vcpkg_find_acquire_program(FLEX) get_filename_component(FLEX_EXE_PATH ${FLEX} DIRECTORY) get_filename_component(FLEX_DIR ${FLEX_EXE_PATH} NAME) file(COPY ${FLEX_EXE_PATH} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tools" ) set(FLEX_TEMP "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-tools/${FLEX_DIR}") file(RENAME "${FLEX_TEMP}/win_bison.exe" "${FLEX_TEMP}/bison.exe") file(RENAME "${FLEX_TEMP}/win_flex.exe" "${FLEX_TEMP}/flex.exe") vcpkg_add_to_path("${FLEX_TEMP}") endif() set(_path "$ENV{PATH}") #Replace with VCPKG variables if PR #7733 is merged unset(BUILDTYPES) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(_buildname "DEBUG") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "dbg") set(_path_suffix_${_buildname} "/debug") set(_build_type_${_buildname} "debug") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(_buildname "RELEASE") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "rel") set(_path_suffix_${_buildname} "") set(_build_type_${_buildname} "release") endif() unset(_buildname) foreach(_buildname ${BUILDTYPES}) set(_build_triplet ${TARGET_TRIPLET}-${_short_name_${_buildname}}) set(_installed_prefix_ "${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}") set(_installed_libpath_ "${_installed_prefix_}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_installed_prefix_}/lib/manual-link/") vcpkg_add_to_path(PREPEND "${_installed_prefix_}/bin") vcpkg_add_to_path(PREPEND "${_installed_prefix_}/lib") # We set LD_LIBRARY_PATH ENV variable to allow executing Qt tools (rcc,...) even with dynamic linking if(CMAKE_HOST_UNIX) if(DEFINED ENV{LD_LIBRARY_PATH}) set(_ld_library_path_defined_ TRUE) set(_ld_library_path_backup_ $ENV{LD_LIBRARY_PATH}) set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}${VCPKG_HOST_PATH_SEPARATOR}${_ld_library_path_backup_}") else() set(_ld_library_path_defined_ FALSE) set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}") endif() endif() message(STATUS "Building ${_build_triplet}") vcpkg_execute_build_process( COMMAND ${INVOKE} NO_PARALLEL_COMMAND ${INVOKE_SINGLE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${_build_triplet} LOGNAME build-${_build_triplet} ) if(VCPKG_TARGET_IS_OSX) # For some reason there will be an error on MacOSX without this clean! message(STATUS "Cleaning after build before install ${_build_triplet}") vcpkg_execute_required_process( COMMAND ${INVOKE_SINGLE} clean WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${_build_triplet}/qmake LOGNAME cleaning-after-build-${_build_triplet} ) endif() message(STATUS "Fixing makefile installation path ${_build_triplet}") qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${_build_triplet}") message(STATUS "Installing ${_build_triplet}") vcpkg_execute_required_process( COMMAND ${INVOKE} install WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${_build_triplet} LOGNAME package-${_build_triplet} ) message(STATUS "Package ${_build_triplet} done") set(ENV{PATH} "${_path}") # Restore backup if(CMAKE_HOST_UNIX) if(_ld_library_path_defined_) set(ENV{LD_LIBRARY_PATH} "${_ld_library_path_backup_}") else() unset(ENV{LD_LIBRARY_PATH}) endif() endif() endforeach() endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_build_submodule.cmake ================================================ function(qt_build_submodule SOURCE_PATH) if(NOT PORT STREQUAL "qt5-webengine") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path("${PYTHON3_EXE_PATH}") endif() vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH} ${ARGV}) vcpkg_build_qmake(SKIP_MAKEFILES) #Fix the installation location within the makefiles qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/") qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/") #Install the module files vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install) qt_fix_cmake(${CURRENT_PACKAGES_DIR} ${PORT}) vcpkg_fixup_pkgconfig() # Needs further investigation if this is enough! # taken from qt5-base portfile.cmake if(VCPKG_TARGET_IS_OSX) file(GLOB _debug_files "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*_debug.pc") foreach(_file ${_debug_files}) string(REGEX REPLACE "_debug\\.pc$" ".pc" _new_filename "${_file}") string(REGEX MATCH "(Qt5[a-zA-Z]+)_debug\\.pc$" _not_used "${_file}") set(_name ${CMAKE_MATCH_1}) file(STRINGS "${_file}" _version REGEX "^(Version):.+$") file(WRITE "${_new_filename}" "Name: ${_name}\nDescription: Forwarding to the _debug version by vcpkg\n${_version}\nRequires: ${_name}_debug\n") endforeach() endif() #Replace with VCPKG variables if PR #7733 is merged unset(BUILDTYPES) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(_buildname "DEBUG") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "dbg") set(_path_suffix_${_buildname} "/debug") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(_buildname "RELEASE") list(APPEND BUILDTYPES ${_buildname}) set(_short_name_${_buildname} "rel") set(_path_suffix_${_buildname} "") endif() unset(_buildname) foreach(_buildname ${BUILDTYPES}) set(CURRENT_BUILD_PACKAGE_DIR "${CURRENT_PACKAGES_DIR}${_path_suffix_${_buildname}}") #Fix PRL files file(GLOB_RECURSE PRL_FILES "${CURRENT_BUILD_PACKAGE_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/mkspecs/*.pri") qt_fix_prl("${CURRENT_BUILD_PACKAGE_DIR}" "${PRL_FILES}") # This makes it impossible to use the build tools in any meaningful way. qt5 assumes they are all in one folder! # So does the Qt VS Plugin which even assumes all of the in a bin folder #Move tools to the correct directory #if(EXISTS ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5) # file(RENAME ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5 ${CURRENT_PACKAGES_DIR}/tools/${PORT}) #endif() # Move executables in bin to tools # This is ok since those are not build tools. file(GLOB PACKAGE_EXE ${CURRENT_BUILD_PACKAGE_DIR}/bin/*.exe) if(PACKAGE_EXE) file(INSTALL ${PACKAGE_EXE} DESTINATION "${CURRENT_BUILD_PACKAGE_DIR}/tools/${PORT}") file(REMOVE ${PACKAGE_EXE}) foreach(_exe ${PACKAGE_EXE}) string(REPLACE ".exe" ".pdb" _prb_file ${_exe}) if(EXISTS ${_prb_file}) file(INSTALL ${_prb_file} DESTINATION "${CURRENT_BUILD_PACKAGE_DIR}/tools/${PORT}") file(REMOVE ${_prb_file}) endif() endforeach() endif() #cleanup empty folders file(GLOB PACKAGE_LIBS "${CURRENT_BUILD_PACKAGE_DIR}/lib/*") if(NOT PACKAGE_LIBS) file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/lib") endif() file(GLOB PACKAGE_BINS "${CURRENT_BUILD_PACKAGE_DIR}/bin/*") if(NOT PACKAGE_BINS) file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/bin") endif() endforeach() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/qt5/bin") file(COPY "${CURRENT_PACKAGES_DIR}/tools/qt5/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}") set(CURRENT_INSTALLED_DIR "./../../.." ) # Making the qt.conf relative and not absolute configure_file(${CURRENT_INSTALLED_DIR_BACKUP}/tools/qt5/qt_release.conf ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/qt.conf) # This makes the tools at least useable for release set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB_RECURSE DLL_DEPS_AVAIL "${CURRENT_INSTALLED_DIR}/tools/qt5/bin/*.dll") string(REPLACE "${CURRENT_INSTALLED_DIR}/tools/qt5/bin/" "" DLL_DEPS_AVAIL "${DLL_DEPS_AVAIL}") file(GLOB_RECURSE DLL_DEPS_NEEDED "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/*.dll") string(REPLACE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/" "" DLL_DEPS_NEEDED "${DLL_DEPS_NEEDED}") if(DLL_DEPS_AVAIL AND DLL_DEPS_NEEDED) list(REMOVE_ITEM DLL_DEPS_NEEDED ${DLL_DEPS_AVAIL}) endif() foreach(dll_dep ${DLL_DEPS_NEEDED}) string(REGEX REPLACE "[^/]+$" "" dll_subpath "${dll_dep}") file(COPY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${dll_dep}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/qt5/bin/${dll_subpath}") endforeach() endif() endif() #This should be removed if somehow possible if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/qt5/debug/bin") set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}") set(CURRENT_INSTALLED_DIR "./../../../.." ) # Making the qt.conf relative and not absolute configure_file(${CURRENT_INSTALLED_DIR_BACKUP}/tools/qt5/qt_debug.conf ${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/qt.conf) # This makes the tools at least useable for release set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(GLOB_RECURSE DLL_DEPS_AVAIL "${CURRENT_INSTALLED_DIR}/tools/qt5/debug/bin/*.dll") string(REPLACE "${CURRENT_INSTALLED_DIR}/tools/qt5/debug/bin/" "" DLL_DEPS_AVAIL "${DLL_DEPS_AVAIL}") file(GLOB_RECURSE DLL_DEPS_NEEDED "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/*.dll") string(REPLACE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/" "" DLL_DEPS_NEEDED "${DLL_DEPS_NEEDED}") if(DLL_DEPS_AVAIL AND DLL_DEPS_NEEDED) list(REMOVE_ITEM DLL_DEPS_NEEDED ${DLL_DEPS_AVAIL}) endif() foreach(dll_dep ${DLL_DEPS_NEEDED}) string(REGEX REPLACE "[^/]+$" "" dll_subpath "${dll_dep}") file(COPY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/${dll_dep}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/qt5/debug/bin/${dll_subpath}") endforeach() endif() endif() # Remove duplicate flags from qmodule.pri issue -> https://github.com/microsoft/vcpkg/issues/28835 file(READ "${CURRENT_INSTALLED_DIR}/tools/qt5/mkspecs/qmodule.pri" QMODULE_PRI_CONTENT) string(REGEX REPLACE "QMAKE_CXXFLAGS_RELEASE\\+=[^\n]*\n" "QMAKE_CXXFLAGS_RELEASE=\n" QMODULE_PRI_CONTENT ${QMODULE_PRI_CONTENT}) file(WRITE "${CURRENT_INSTALLED_DIR}/tools/qt5/mkspecs/qmodule.pri" "${QMODULE_PRI_CONTENT}") endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_download_submodule.cmake ================================================ function(qt_get_submodule_name OUT_NAME) string(REPLACE "5-" "" _tmp_name ${PORT}) set(${OUT_NAME} ${_tmp_name} PARENT_SCOPE) endfunction() function(qt_download_submodule) cmake_parse_arguments(_csc "" "OUT_SOURCE_PATH" "PATCHES;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG" ${ARGN}) if(NOT DEFINED _csc_OUT_SOURCE_PATH) message(FATAL_ERROR "qt_download_module requires parameter OUT_SOURCE_PATH to be set! Please correct the portfile!") endif() vcpkg_buildpath_length_warning(37) qt_get_submodule_name(NAME) set(FULL_VERSION "${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}") set(ARCHIVE_NAME "${NAME}-everywhere-opensource-src-${FULL_VERSION}.tar.xz") set(URLS "https://download.qt.io/archive/qt/${QT_MAJOR_MINOR_VER}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}" "https://mirrors.ocf.berkeley.edu/qt/archive/qt/${QT_MAJOR_MINOR_VER}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}" ) vcpkg_download_distfile(ARCHIVE_FILE URLS ${URLS} FILENAME ${ARCHIVE_NAME} SHA512 ${QT_HASH_${PORT}} ) if(QT_UPDATE_VERSION) file(SHA512 "${ARCHIVE_FILE}" ARCHIVE_HASH) message(STATUS "${PORT} new hash is ${ARCHIVE_HASH}") file(APPEND "${VCPKG_ROOT_DIR}/ports/qt5-base/cmake/qt_new_hashes.cmake" "set(QT_HASH_${PORT} ${ARCHIVE_HASH})\n") else() vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${ARCHIVE_FILE}" REF ${FULL_VERSION} PATCHES ${_csc_PATCHES} ) endif() set(${_csc_OUT_SOURCE_PATH} "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_fix_cmake.cmake ================================================ function(qt_fix_cmake PACKAGE_DIR_TO_FIX PORT_TO_FIX) file(GLOB_RECURSE cmakefiles ${PACKAGE_DIR_TO_FIX}/share/cmake/*.cmake ${PACKAGE_DIR_TO_FIX}/lib/cmake/*.cmake) foreach(cmakefile ${cmakefiles}) file(READ "${cmakefile}" _contents) if(_contents MATCHES "_install_prefix}/tools/qt5/bin/([a-z0-9]+)") # there are only about 3 to 5 cmake files which require the fix in ports: qt5-tools qt5-xmlpattern at5-activeqt qt5-quick string(REGEX REPLACE "_install_prefix}/tools/qt5/bin/([a-z0-9]+)" "_install_prefix}/tools/${PORT_TO_FIX}/bin/\\1" _contents "${_contents}") file(WRITE "${cmakefile}" "${_contents}") endif() endforeach() #Install cmake files if(EXISTS ${PACKAGE_DIR_TO_FIX}/lib/cmake) file(MAKE_DIRECTORY ${PACKAGE_DIR_TO_FIX}/share) file(RENAME ${PACKAGE_DIR_TO_FIX}/lib/cmake ${PACKAGE_DIR_TO_FIX}/share/cmake) endif() #Remove extra cmake files if(EXISTS ${PACKAGE_DIR_TO_FIX}/debug/lib/cmake) file(REMOVE_RECURSE ${PACKAGE_DIR_TO_FIX}/debug/lib/cmake) endif() endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_fix_makefile_install.cmake ================================================ #Could probably be a vcpkg_fix_makefile_install for other ports? function(qt_fix_makefile_install BUILD_DIR) #Fix the installation location set(MSYS_HACK "") if(VCPKG_HOST_IS_WINDOWS) file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR) if(VCPKG_TARGET_IS_MINGW) set(MSYS_HACK ":@msyshack@%=%") file(STRINGS "${BUILD_DIR}/Makefile" using_sh REGEX "= rm -f") if(using_sh) set(NATIVE_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}") set(NATIVE_PACKAGES_DIR "${CURRENT_PACKAGES_DIR}") endif() endif() string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 0 2 INSTALLED_DRIVE) string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 0 2 PACKAGES_DRIVE) string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE) string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE) else() set(INSTALLED_DRIVE "") set(PACKAGES_DRIVE "") set(INSTALLED_DIR_WITHOUT_DRIVE "${CURRENT_INSTALLED_DIR}") set(PACKAGES_DIR_WITHOUT_DRIVE "${CURRENT_PACKAGES_DIR}") endif() set(installed "${INSTALLED_DRIVE}$(INSTALL_ROOT${MSYS_HACK})${INSTALLED_DIR_WITHOUT_DRIVE}") set(packages "${PACKAGES_DRIVE}$(INSTALL_ROOT${MSYS_HACK})${PACKAGES_DIR_WITHOUT_DRIVE}") file(GLOB_RECURSE MAKEFILES "${BUILD_DIR}/*Makefile*") foreach(MAKEFILE ${MAKEFILES}) vcpkg_replace_string("${MAKEFILE}" "${installed}" "${packages}" IGNORE_UNCHANGED) endforeach() endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_fix_prl.cmake ================================================ function(qt_fix_prl PACKAGE_DIR PRL_FILES) file(TO_CMAKE_PATH "${PACKAGE_DIR}/lib" CMAKE_LIB_PATH) file(TO_CMAKE_PATH "${PACKAGE_DIR}/include/qt5" CMAKE_INCLUDE_PATH) file(TO_CMAKE_PATH "${PACKAGE_DIR}/include" CMAKE_INCLUDE_PATH2) file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" CMAKE_INSTALLED_PREFIX) foreach(PRL_FILE IN LISTS PRL_FILES) file(READ "${PRL_FILE}" _contents) string(REPLACE "${CMAKE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") string(REPLACE "${CMAKE_INCLUDE_PATH}" "\$\$[QT_INSTALL_HEADERS]" _contents "${_contents}") string(REPLACE "${CMAKE_INCLUDE_PATH2}" "\$\$[QT_INSTALL_HEADERS]/../" _contents "${_contents}") string(REPLACE "${CMAKE_INSTALLED_PREFIX}" "\$\$[QT_INSTALL_PREFIX]" _contents "${_contents}") #Note: This only works without an extra if case since QT_INSTALL_PREFIX is the same for debug and release file(WRITE "${PRL_FILE}" "${_contents}") endforeach() endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_install_copyright.cmake ================================================ #Could probably be the beginning of a vcpkg_install_copyright? function(qt_install_copyright SOURCE_PATH) #Find the relevant license file and install it if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT") elseif(EXISTS "${SOURCE_PATH}/LICENSE.FDL") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.FDL") endif() file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) endfunction() ================================================ FILE: ports/qt5-base/cmake/qt_port_functions.cmake ================================================ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") #Basic setup include(qt_port_hashes) #Fixup scripts include(qt_fix_makefile_install) include(qt_fix_cmake) include(qt_fix_prl) #Helper functions include(qt_download_submodule) include(qt_build_submodule) include(qt_install_copyright) include(qt_submodule_installation) ================================================ FILE: ports/qt5-base/cmake/qt_port_hashes.cmake ================================================ # Every update requires an update of these hashes and the version within the control file of each of the 32 ports. # So it is probably better to have a central location for these hashes and let the ports update via a script set(QT_MAJOR_MINOR_VER 5.15) set(QT_PATCH_VER 18) set(QT_UPDATE_VERSION OFF) # Switch to update qt and not build qt. Creates a file cmake/qt_new_hashes.cmake in qt5-base with the new hashes. set(QT_PORT_LIST base 3d activeqt charts connectivity datavis3d declarative gamepad graphicaleffects imageformats location macextras multimedia networkauth purchasing quickcontrols quickcontrols2 remoteobjects script scxml sensors serialport speech svg tools virtualkeyboard webchannel websockets webview winextras xmlpatterns doc x11extras androidextras translations serialbus webengine webglplugin wayland) # qt5-mqtt archive is not included in 5.15.18 release, updated separately # list(APPEND QT_PORT_LIST mqtt) set(QT_HASH_qt5-3d 53825ff0bad5adc73bafbdf426e7209a770860f8e0ac97f89fdf61b07ac2431d54ce8ad2fbcb69ca3c2a5b953d76a3bcc0d236c32c6b45d219ee6fcb582c5974) set(QT_HASH_qt5-activeqt f5a29d97d35cf634843d9b202e7f4c2d2bafaac4dd9c5df2348858588d9e64ff57726b91a485ce6433e701b04b4ce0c880b847472a3f064ca4dc3d831901ae79) set(QT_HASH_qt5-androidextras aeca703d1709f6352c83d634b5a52819400b9f5cde9286b2e93120a37604a059f136ac3ccf466df06ff27394038b90522c8f5dfc18473ee176768c66a44159d9) set(QT_HASH_qt5-base d39c831e6f3ddcd6a50f103ff60a0700b451f137782249508b7447a80066e3e9259c9b5038e6077ccf8df06b6afefec232c3c4dd331d85765089c92571708206) set(QT_HASH_qt5-charts 9c4b0d0c7456604048742f0628ecf049217acbb8a4a23c925ef6ce5c47eaf9fbcf6b1aecdcd1113679c9edf8a1635f3ca585acb31fd548f3ab577c5f4e54f3f2) set(QT_HASH_qt5-connectivity 26f194965090dc44547b46a7ee73d3dc30d3817f213b809f2e2fb9596b2184e5fa276e600d706675ad0f19b0b421c0fc8e52afbc0b6a16eeff00c4c459027dca) set(QT_HASH_qt5-datavis3d 877b1a15b382d1cfbe32cfbba2d4f7edd8ddc806bc801c23a2f310cc0e892953a63b05fa031f4d1b197013c6da8ea41945ccd2e53f2c1abb33b44414e89eaedf) set(QT_HASH_qt5-declarative 73c45c47b5074b6bc1127abb1b3cf1cd751deeb80c2f9c86a675c7323fecf20bd83363fad95803bc72cf494ae4679c1f38a02387363f266c093c707e700c9ea2) set(QT_HASH_qt5-doc fa7a39b69778c96dccff2120544d0bdeccc03bf30c92a0f17bc6aa981ae5ee3589fecb3663a855ccde1a59068dde780fa76790d03e758e267efed5df37ae3cf3) set(QT_HASH_qt5-gamepad 03d07b4fe07adfad7dc8c3844f16c6f18f023417cefca52b5f833e95d4db47b7b228268d0d2547bc7a77dbc7a7e3174408c026f56126052ef30fbe7c7345014e) set(QT_HASH_qt5-graphicaleffects 6fff9181d8d0a4f55987e2b219d35adf4db28429206e4ec0572a03664c155aea046a08a1d820fbc5d27f9f3ec4c60768823959c5839766ab2768f64c440273da) set(QT_HASH_qt5-imageformats 5e8b0895e8b7aa05142ae21eee3f79fb289a8edf6eeed62a59be3ae60d164a2698344740ff283c753e9b61cd6af516d8c7301597762183222ceff0f4c8dddd46) set(QT_HASH_qt5-location 587e1cc8c8f46ab09ea79c4142dbecc52466dafa94c4bfa61264eba4f202fb5e2979d1ae6ba5fb924376d75764f28b58c7bcc03ab29edef2524aa872adb3c936) set(QT_HASH_qt5-macextras cc8c10a149c150a7fe422616a1dcf56abfa3c9c0e3f95521bb5c1c1e6873d7f48c547c0c8acacbe3a8e936f048fb687d0913f03b6b7ec27a4087f92f6b389eaf) set(QT_HASH_qt5-multimedia edebe73911c82ef5671602f895dd1cddcc39b8afb29267be54921848713344d531e49f4cbcfb9a57b095c4e736a9100c245290391102ddccdb08997057a12bd8) set(QT_HASH_qt5-networkauth f3f9cce52161b77b1e3ebda32444fefed9cff077b9546e0d1b7942b0710e6a8f8681f9c10b521dc56fa3a0020338c59334b6c870420fa1a34a9ae3bbe30dc2d5) set(QT_HASH_qt5-purchasing e0bdf99a399b52b6195a622202d58191262885808477ab7c977bedc88045fef602cc55ba275adc3a6798951d6c4ff1f0e0af63d0ed95403872c58d9294a57802) set(QT_HASH_qt5-quick3d 4b1669a5499b23bc76b959340890d6690cd12ba39b3157a7a8499d44065ca5d258e45e9758c94b5959f02956b7b3f04e0095aace3e46552ad697ae11cc5e24e5) set(QT_HASH_qt5-quickcontrols 9bd2bcd119d162f8ef30b2e1f459776a66b504f5043809cc0846b7c4898ca464eb44f65d1c76d3857a12eef7126ec8a84f8ac3566b5c3200b65572a3ff9296f7) set(QT_HASH_qt5-quickcontrols2 29d0904c949b4970eae576d20f94b5c92f1fcb71056bb085b6ea8421c894aa265ae9a5cdbd6e21ac849f14385833ed2961a18dcc2c66ea6ed8a28feb51bd7375) set(QT_HASH_qt5-quicktimeline 730a8c5080510175d3e62919a31bda78e5eeb32bbbd0087be46a1576278684f74a522a5615d8d5fe095d2d364a902470c22afd330adba94c7375814a4b29d99a) set(QT_HASH_qt5-remoteobjects a4357d720a77d09a1d5e38bbd1152f042d4ac902476de83e74834d5d0b9af210618174d988089818ec7787870caeb496af020dfc80e123b86bfb51b7919a14e5) set(QT_HASH_qt5-script e4cd79deb2cba1f4216acb6744c50540e41c4a56dd37f4f49631cad7b520642292192ddc8b7cff1f741350e4b8b83aae0626ec3c546366bd4bcaf58c7f849923) set(QT_HASH_qt5-scxml 9ad88607e25b6bf43ae460904a3ccfb3514c6a6b739dfce4799958d5897601370a83f818e706a0270ccab1a995976384553d1bfca74f53f08bda3f9d1b58cf4c) set(QT_HASH_qt5-sensors cecc4a7d6eeb64d1bd7c1d9d6c23926bca5168ed50ef5197094b296a61e024b62a5aaed6bfa97c84da2d342faf14d15c473646c5c400973be7172e4617824d94) set(QT_HASH_qt5-serialbus eb2e7d987b9e7f05f8952c3e424b23347c30a274f22acc0714f2769a9c891a12f212a2cd977a09e34b2f93079c7554e8c65425fe403f996a27c5f31e87c63697) set(QT_HASH_qt5-serialport 4944c4fc03386c635197c9d0fa4550fd05285c9bd36861409e2c5282aeee153baa5bc285be5314a6309026f54058f8bd605be389471a1dd34b3236f3d05131ec) set(QT_HASH_qt5-speech f3a9e4782532ee62c455eda6e63a25e49392ea4cbb7e6801e6eb1bb9d58e9bd802769e26811c8afcebc0c6e106fe7d3c56b69ea83c28c1d89603ecc228c1c919) set(QT_HASH_qt5-svg 2c599bdd0b82eeb969233bac7cb5d53896d3d873ee37b72fead0c3ef38feaef84c8e0a42425ce3ae185ca0f4d8f4590ec95829fc815bda65dd546d1697de8493) set(QT_HASH_qt5-tools 30a278df553ff3bb64927a4a5be0370b070131ec2970410095b4618e6a0f6e7c45374abf37c458b69dd9e4f7cecb98289b8e777cf5bc85b09f0b5cd278a40a70) set(QT_HASH_qt5-translations 52a1ca84c01c4a2728d1b7a3168c8d6ffd12f8e8528d729b422d9339a01dcbcb5a768999a252b28b6f4041eb20f874fe74c0389724c54a09ec9dfe42312b4af9) set(QT_HASH_qt5-virtualkeyboard f7dd1365e45b7ed5f5f942abc6e4a1ea964955d9836bcfabed2c6de9669bcc47693c09370dd917e244bcaefe68cdcb06a985c798dcd612aafb03c1ebfca5b536) set(QT_HASH_qt5-wayland 9e0d07a4a91eb6dd1bde6b211bae2b64f2035a28176c277adb86ab5d3a281c7740930dc304db94990c1d2277ef54d17b934f99326413719626fb161b612c033f) set(QT_HASH_qt5-webchannel fb867510da8b74cac277598e346c5eed7bbaaa6b1be85c39b804a07209922ccdc87e314d9ced4eeb966cc06888127772dff517a8f6fef10c8e87080a59112bfa) set(QT_HASH_qt5-webengine 731e9b01746efa0696bc89299fa4847157077bd21567a9d3358006d6bb7dddbadea5c085f9dfae12279e41619b4751d1d0009bfd0ee4f9ceab3bd1a567831ed2) set(QT_HASH_qt5-webglplugin 63a05f522e44b2fdefc5394faeb3619f596dd62c59d6e5f0e27ea32560f8ec3e8b6906b78607664f3b392b68dc69c5266a9d398860bdef6153f33fa29acfc49a) set(QT_HASH_qt5-websockets 29b59fe6681030150b87d18a052f00f05ac17db17203279d794a8161783d739938e9ea659519f7b7c76f3d7e40009ea1797e255ae464a1cd641caa6c039d4777) set(QT_HASH_qt5-webview 5dc6ae1b648a66572947f36d4e668b3219d7c40f9b455871fb673268de24b0d7e84075b6bcd4aa1cb72ec6a6bd3519344a66e2481b783786df6a613aacfacac0) set(QT_HASH_qt5-winextras 608f6bcc6c1d259c096da3f2142e24c71d907e4af7f2107190521d7c977692061d1002ca0053511197cb96a00fd99208f8dee3b7510549fd3be5a397e7fc00b8) set(QT_HASH_qt5-x11extras 7e12f87da4a2c8333adc09f0069cfdbb6b81e778b0e261b13a8631a90bc21deb831fc4d74229e977afa864919ef6dbe98fc37ef29eeffee52cacef21af4216f7) set(QT_HASH_qt5-xmlpatterns 2c1f1ec6c2a70a2151259a290675b15e44475f19afa46f396b4cd511e3aeb7cd83fffd7d76ddde31817c5f2e944dcd32587550713aed34aac9585f3eeef7e39b) if(QT_UPDATE_VERSION) message(STATUS "Running Qt in automatic version port update mode!") set(_VCPKG_INTERNAL_NO_HASH_CHECK 1) if("${PORT}" MATCHES "qt5-base") function(update_qt_version_in_manifest _port_name) set(_current_control "${VCPKG_ROOT_DIR}/ports/${_port_name}/vcpkg.json") file(READ ${_current_control} _control_contents) #message(STATUS "Before: \n${_control_contents}") string(REGEX REPLACE "\"version.*\": \"[0-9]+\.[0-9]+\.[0-9]+\",\n" "\"version\": \"${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}\",\n" _control_contents "${_control_contents}") string(REGEX REPLACE "\n \"port-version\": [0-9]+," "" _control_contents "${_control_contents}") #message(STATUS "After: \n${_control_contents}") file(WRITE ${_current_control} "${_control_contents}") configure_file("${_current_control}" "${_current_control}" @ONLY NEWLINE_STYLE LF) endfunction() update_qt_version_in_manifest("qt5") foreach(_current_qt_port_basename ${QT_PORT_LIST}) update_qt_version_in_manifest("qt5-${_current_qt_port_basename}") endforeach() endif() endif() ================================================ FILE: ports/qt5-base/cmake/qt_submodule_installation.cmake ================================================ function(qt_submodule_installation) cmake_parse_arguments(_csc "" "OUT_SOURCE_PATH" "" ${ARGN}) qt_download_submodule(OUT_SOURCE_PATH TARGET_SOURCE_PATH ${_csc_UNPARSED_ARGUMENTS}) if(QT_UPDATE_VERSION) SET(VCPKG_POLICY_EMPTY_PACKAGE enabled PARENT_SCOPE) else() qt_build_submodule(${TARGET_SOURCE_PATH} ${_csc_UNPARSED_ARGUMENTS}) qt_install_copyright(${TARGET_SOURCE_PATH}) endif() if(DEFINED _csc_OUT_SOURCE_PATH) set(${_csc_OUT_SOURCE_PATH} ${TARGET_SOURCE_PATH} PARENT_SCOPE) endif() endfunction() ================================================ FILE: ports/qt5-base/patches/CVE-2025-30348-qtbase-5.15.diff ================================================ From 16918c1df3e709df2a97281e3825d94c84edb668 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Tue, 06 Aug 2024 22:39:44 +0200 Subject: [PATCH] XML/QDom: speedup encodeText() The code copied the whole string, then replaced parts inline, at the cost of relocating everything beyond, at each replacement. Instead, copy character by character (in chunks where possible) and append replacements as we skip what they replace. Manual conflict resolution for 6.5: - This is a manual cherry-pick. The original change was only picked to 6.8, but the quadratic behavior is present in Qt 5, too. - Changed Task-number to Fixes: because this is the real fix; the QString change, 315210de916d060c044c01e53ff249d676122b1b, was unrelated to the original QTBUG-127549. Manual conflcit resolution for 5.15: - Kept/re-added QTextCodec::canEncode() check - Ported from Qt 6 to 5, to wit: - qsizetype -> int - QStringView::first/sliced(n) -> left/mid(n) (these functions are clearly called in-range, so the widened contract of the Qt 5 functions doesn't matter) - Ported from C++17- and C++14-isms to C++11: - replaced polymorphic lambda with a normal one (this requires rewriting the !canEncode() branch to use QByteArray/QLatin1String instead of QString) - As a drive-by, corrected the indentation of the case labels to horizontally align existing code (and follow Qt style) Fixes: QTBUG-127549 Change-Id: I368482859ed0c4127f1eec2919183711b5488ada Reviewed-by: Edward Welbourne (cherry picked from commit 2ce08e3671b8d18b0284447e5908ce15e6e8f80f) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 225e235cf966a44af23dbe9aaaa2fd20ab6430ee) Reviewed-by: Fabian Kosmale (cherry picked from commit 905a5bd421efff6a1d90b6140500d134d32ca745) --- diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp index 872221c..bf70477 100644 --- a/src/xml/dom/qdom.cpp +++ b/src/xml/dom/qdom.cpp @@ -3676,59 +3676,67 @@ const QTextCodec *const codec = s.codec(); Q_ASSERT(codec); #endif - QString retval(str); - int len = retval.length(); - int i = 0; + QString retval; + int start = 0; + auto appendToOutput = [&](int cur, QLatin1String replacement) + { + if (start < cur) { + retval.reserve(str.size() + replacement.size()); + retval.append(QStringView(str).left(cur).mid(start)); + } + // Skip over str[cur], replaced by replacement + start = cur + 1; + retval.append(replacement); + }; - while (i < len) { - const QChar ati(retval.at(i)); - - if (ati == QLatin1Char('<')) { - retval.replace(i, 1, QLatin1String("<")); - len += 3; - i += 4; - } else if (encodeQuotes && (ati == QLatin1Char('"'))) { - retval.replace(i, 1, QLatin1String(""")); - len += 5; - i += 6; - } else if (ati == QLatin1Char('&')) { - retval.replace(i, 1, QLatin1String("&")); - len += 4; - i += 5; - } else if (ati == QLatin1Char('>') && i >= 2 && retval[i - 1] == QLatin1Char(']') && retval[i - 2] == QLatin1Char(']')) { - retval.replace(i, 1, QLatin1String(">")); - len += 3; - i += 4; - } else if (performAVN && - (ati == QChar(0xA) || - ati == QChar(0xD) || - ati == QChar(0x9))) { - const QString replacement(QLatin1String("&#x") + QString::number(ati.unicode(), 16) + QLatin1Char(';')); - retval.replace(i, 1, replacement); - i += replacement.length(); - len += replacement.length() - 1; - } else if (encodeEOLs && ati == QChar(0xD)) { - retval.replace(i, 1, QLatin1String(" ")); // Replace a single 0xD with a ref for 0xD - len += 4; - i += 5; - } else { + const int len = str.size(); + for (int cur = 0; cur < len; ++cur) { + switch (const char16_t ati = str[cur].unicode()) { + case u'<': + appendToOutput(cur, QLatin1String("<")); + break; + case u'"': + if (encodeQuotes) + appendToOutput(cur, QLatin1String(""")); + break; + case u'&': + appendToOutput(cur, QLatin1String("&")); + break; + case u'>': + if (cur >= 2 && str[cur - 1] == u']' && str[cur - 2] == u']') + appendToOutput(cur, QLatin1String(">")); + break; + case u'\r': + if (performAVN || encodeEOLs) + appendToOutput(cur, QLatin1String(" ")); // \r == 0x0d + break; + case u'\n': + if (performAVN) + appendToOutput(cur, QLatin1String(" ")); // \n == 0x0a + break; + case u'\t': + if (performAVN) + appendToOutput(cur, QLatin1String(" ")); // \t == 0x09 + break; + default: #if QT_CONFIG(textcodec) if(codec->canEncode(ati)) - ++i; + ; // continue else #endif { // We have to use a character reference to get it through. - const ushort codepoint(ati.unicode()); - const QString replacement(QLatin1String("&#x") + QString::number(codepoint, 16) + QLatin1Char(';')); - retval.replace(i, 1, replacement); - i += replacement.length(); - len += replacement.length() - 1; + const QByteArray replacement = "&#x" + QByteArray::number(uint{ati}, 16) + ';'; + appendToOutput(cur, QLatin1String{replacement}); } + break; } } - - return retval; + if (start > 0) { + retval.append(QStringView(str).left(len).mid(start)); + return retval; + } + return str; } void QDomAttrPrivate::save(QTextStream& s, int, int) const ================================================ FILE: ports/qt5-base/patches/CVE-2025-4211-qtbase-5.15.diff ================================================ From 3d20cd0105c2ae06605c5078e7675e200f1a001a Mon Sep 17 00:00:00 2001 From: Mårten Nordheim Date: Mon, 17 Mar 2025 14:22:11 +0100 Subject: [PATCH] QFileSystemEngine/Win: Use GetTempPath2 when available Because the documentation for GetTempPath nows says apps should call GetTempPath2.[0] Starting with Windows 11[1], and recently Windows 10[2], GetTempPath2 was added. The difference being that elevated processes are returned a different directory. Usually 'C:\Windows\SystemTemp'. Currently temporary files of an elevated process may be placed in a world write-able location. GetTempPath2, by default, but can be overridden, places it in a directory that's only accessible by SYSTEM and administrators. [0] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppathw#remarks [1] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppath2w (Minimum supported client - Windows 11 Build 22000) [2] https://blogs.windows.com/windows-insider/2025/03/13/releasing-windows-10-build-19045-5674-to-the-release-preview-channel/ (This update enables system processes to store temporary files ...) [ChangeLog][QtCore][Important Behavior Changes] On Windows, generating temporary directories for processes with elevated privileges may now return a different path with a stricter set of permissions. Please consult Microsoft's documentation from when they made the same change for the .NET framework: https://support.microsoft.com/en-us/topic/gettemppath-changes-in-windows-february-cumulative-update-preview-4cc631fb-9d97-4118-ab6d-f643cd0a7259 Change-Id: I5caf11151fb2f711bbc5599231f140598b3c9d03 Reviewed-by: Marc Mutz (cherry picked from commit 69633bcb58e681bac5bff3744e5a2352788dc36c) Reviewed-by: Qt Cherry-pick Bot (cherry picked from commit 6a684a53b371ec483b27bf243af24819be63f85f) (cherry picked from commit bbeccc0c22e520f46f0b33e281fa5ac85ac9c727) (cherry picked from commit 59d7eb9bbb4f13cccbd9323fd995a8c108b56e60) --- diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 75c661f..37a400f 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1390,7 +1390,15 @@ QString ret; #ifndef Q_OS_WINRT wchar_t tempPath[MAX_PATH]; - const DWORD len = GetTempPath(MAX_PATH, tempPath); + using GetTempPathPrototype = DWORD (WINAPI *)(DWORD, LPWSTR); + // We try to resolve GetTempPath2 and use that, otherwise fall back to GetTempPath: + static GetTempPathPrototype getTempPathW = []() { + const HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll"); + if (auto *func = QFunctionPointer(GetProcAddress(kernel32, "GetTempPath2W"))) + return GetTempPathPrototype(func); + return GetTempPath; + }(); + const DWORD len = getTempPathW(MAX_PATH, tempPath); if (len) { // GetTempPath() can return short names, expand. wchar_t longTempPath[MAX_PATH]; const DWORD longLen = GetLongPathName(tempPath, longTempPath, MAX_PATH); ================================================ FILE: ports/qt5-base/patches/CVE-2025-5455-qtbase-5.15.patch ================================================ diff --git a/src/corelib/io/qdataurl.cpp b/src/corelib/io/qdataurl.cpp index f14d399301f..83e59e3ac00 100644 --- a/src/corelib/io/qdataurl.cpp +++ b/src/corelib/io/qdataurl.cpp @@ -76,10 +76,11 @@ Q_CORE_EXPORT bool qDecodeDataUrl(const QUrl &uri, QString &mimeType, QByteArray } if (data.toLower().startsWith("charset")) { - int i = 7; // strlen("charset") - while (data.at(i) == ' ') - ++i; - if (data.at(i) == '=') + int prefixSize = 7; // strlen("charset") + QLatin1String copy(data.constData() + prefixSize, data.size() - prefixSize); + while (copy.startsWith(QLatin1String(" "))) + copy = copy.mid(1); + if (copy.startsWith(QLatin1String("="))) data.prepend("text/plain;"); } ================================================ FILE: ports/qt5-base/patches/Qt5BasicConfig.patch ================================================ diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index c72989288..a88234dca 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -53,8 +53,12 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura set(_lib_deps) set(_link_flags) -!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\") +!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + if(\"${Configuration}\" STREQUAL \"DEBUG\") + set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}\") + else() + set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\") + endif() !!ELSE set(_qt5_install_libs \"$${CMAKE_LIB_DIR}\") !!ENDIF @@ -125,6 +129,8 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura elseif(EXISTS \"${_flag}\") # The flag is an absolute path to an existing library list(APPEND _lib_deps \"${_flag}\") + elseif(_flag MATCHES \"\\\\.lib$\") #Library name only. No -l. Probably missing some cases + list(APPEND _lib_deps \"${_flag}\") elseif(_flag MATCHES \"^-L(.*)$\") # Handle -Lfoo flags by putting their paths in the search path used by find_library above list(APPEND _search_paths \"${CMAKE_MATCH_1}\") @@ -147,7 +153,11 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + if(\"${Configuration}\" STREQUAL \"DEBUG\") # 1 + set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + else() + set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\") + endif() !!ELSE set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\") !!ENDIF @@ -174,21 +184,22 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI ) !!IF !isEmpty(CMAKE_STATIC_TYPE) - if(NOT "${IsDebugAndRelease}") - set(_genex_condition \"1\") + #if(NOT "${IsDebugAndRelease}") + # set(_genex_condition \"1\") + #else() + if("${Configuration}" STREQUAL "DEBUG") + set(_genex_condition \"$\") else() - if("${Configuration}" STREQUAL "DEBUG") - set(_genex_condition \"$\") - else() - set(_genex_condition \"$>\") - endif() + set(_genex_condition \"$>\") endif() + #endif() if(_static_deps) set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES \"${_static_deps_genex}\" ) + #message(STATUS \"Target Qt5::$${CMAKE_MODULE_NAME} static links: ${_static_dep} through ${_static_dep_genex}\") # Added for debugging endif() set(_static_link_flags \"${_Qt5$${CMAKE_MODULE_NAME}_STATIC_${Configuration}_LINK_FLAGS}\") @@ -205,13 +216,18 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES \"${_static_link_flags_genex}\" ) + #message(STATUS \"Target Qt5::$${CMAKE_MODULE_NAME} static link flags: ${_static_link_flags} through ${_static_link_flags_genex}\") endif() endif() !!ENDIF !!IF !isEmpty(CMAKE_WINDOWS_BUILD) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") + if(\"${Configuration}\" STREQUAL \"DEBUG\") + set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") + else() + set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") + endif() !!ELSE set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\") !!ENDIF @@ -373,13 +389,14 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!IF !isEmpty(CMAKE_STATIC_TYPE) if(NOT Qt5_EXCLUDE_STATIC_DEPENDENCIES) -!!IF !isEmpty(CMAKE_DEBUG_TYPE) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\") _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LINK_FLAGS ) + endif() !!ELSE _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( \"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG @@ -387,22 +404,21 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) _Qt5$${CMAKE_MODULE_NAME}_STATIC_DEBUG_LINK_FLAGS ) !!ENDIF -!!ENDIF -!!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) + if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\") _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LINK_FLAGS ) + endif() !!ELSE _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( \"$${CMAKE_LIB_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES _Qt5$${CMAKE_MODULE_NAME}_STATIC_RELEASE_LINK_FLAGS ) -!!ENDIF !!ENDIF endif() @@ -466,7 +482,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!IF isEmpty(CMAKE_DEBUG_TYPE) !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) !!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) !!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE @@ -474,13 +490,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!ELSE // CMAKE_STATIC_WINDOWS_BUILD if (EXISTS !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" !!ELSE \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" !!ENDIF AND EXISTS !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) !!ELSE \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" ) !!ENDIF @@ -543,7 +559,11 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) !!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) - set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") + if(\"${Configuration}\" STREQUAL \"DEBUG\") + set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") + else() + set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") + endif() !!ELSE set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\") !!ENDIF @@ -557,15 +577,15 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) ${_Qt5${Plugin}_STATIC_${Configuration}_LIB_DEPENDENCIES} ) - if(NOT "${IsDebugAndRelease}") - set(_genex_condition \"1\") + #if(NOT "${IsDebugAndRelease}") + # set(_genex_condition \"1\") + #else() + if("${Configuration}" STREQUAL "DEBUG") + set(_genex_condition \"$\") else() - if("${Configuration}" STREQUAL "DEBUG") - set(_genex_condition \"$\") - else() - set(_genex_condition \"$>\") - endif() + set(_genex_condition \"$>\") endif() + #endif() if(_static_deps) set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ================================================ FILE: ports/qt5-base/patches/Qt5GuiConfigExtras.patch ================================================ diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in index 84dbbfebd..accb86e3f 100644 --- a/src/gui/Qt5GuiConfigExtras.cmake.in +++ b/src/gui/Qt5GuiConfigExtras.cmake.in @@ -148,6 +153,8 @@ macro(_qt5gui_find_extra_libs Name Libs LibDir IncDirs) !!ENDIF unset(Qt5Gui_${_cmake_lib_name}_LIBRARY CACHE) + find_library(Qt5Gui_${_cmake_lib_name}_LIBRARY_DEBUG ${_lib}d ${_lib} NAMES_PER_DIR + PATHS \"${_qt5Gui_install_prefix}/debug/lib\" NO_DEFAULT_PATH) find_library(Qt5Gui_${_cmake_lib_name}_LIBRARY_DEBUG ${_lib}d PATHS \"${LibDir}\" !!IF !mac ================================================ FILE: ports/qt5-base/patches/Qt5PluginTarget.patch ================================================ diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in index 5baf0fdb1..185abfffd 100644 --- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in +++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in @@ -15,13 +15,14 @@ foreach(_module_dep ${_Qt5$${CMAKE_PLUGIN_NAME}_MODULE_DEPENDENCIES}) endif() endforeach() -!!IF !isEmpty(CMAKE_RELEASE_TYPE) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS -) +if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\") + _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS + ) +endif() !!ELSE _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE @@ -29,15 +30,15 @@ _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS ) !!ENDIF -!!ENDIF -!!IF !isEmpty(CMAKE_DEBUG_TYPE) !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) -_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( - \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES - _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS -) +if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\") + _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS + ) +endif() !!ELSE _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG @@ -45,19 +46,18 @@ _qt5_$${CMAKE_MODULE_NAME}_process_prl_file( _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS ) !!ENDIF -!!ENDIF set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_$${CMAKE_PLUGIN_NAME}_Import.cpp\" ) !!ENDIF -!!IF !isEmpty(CMAKE_RELEASE_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF -!!IF !isEmpty(CMAKE_DEBUG_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) -!!ENDIF +if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_RELEASE}\") + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) +endif() +if(EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/debug/$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_DEBUG}\") + _populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) +endif() list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY QT_ALL_PLUGINS_$${CMAKE_PLUGIN_TYPE_ESCAPED} Qt5::$${CMAKE_PLUGIN_NAME}) ================================================ FILE: ports/qt5-base/patches/create_cmake.patch ================================================ diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 4aa5dad46..cee6d2882 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -212,10 +212,10 @@ contains(CONFIG, plugin) { CMAKE_PLUGIN_TYPE_ESCAPED = $$replace(PLUGIN_TYPE, [-/], _) win32 { - !mingw|qtConfig(debug_and_release): debug_suffix="d" + debug_suffix="d" CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.prl CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}$${debug_suffix}.prl isEmpty(CMAKE_STATIC_TYPE) { CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.dll @@ -295,6 +295,7 @@ CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") equals(TEMPLATE, aux): CMAKE_FEATURE_PROPERTY_PREFIX = "INTERFACE_" mac { + CMAKE_FIND_OTHER_LIBRARY_BUILD = "true" !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}_debug.a CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a @@ -315,7 +316,7 @@ mac { CMAKE_WINDOWS_BUILD = "true" CMAKE_FIND_OTHER_LIBRARY_BUILD = "true" - !mingw|qtConfig(debug_and_release): debug_suffix="d" + debug_suffix="d" CMAKE_LIB_FILE_LOCATION_DEBUG = $${CMAKE_QT_STEM}$${debug_suffix}.dll CMAKE_LIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.dll @@ -342,6 +342,7 @@ mac { CMAKE_IMPLIB_FILE_LOCATION_RELEASE = $${CMAKE_QT_STEM}.lib } } else { + CMAKE_FIND_OTHER_LIBRARY_BUILD = "true" !isEmpty(CMAKE_STATIC_TYPE) { CMAKE_LIB_FILE_LOCATION_DEBUG = lib$${CMAKE_QT_STEM}.a CMAKE_LIB_FILE_LOCATION_RELEASE = lib$${CMAKE_QT_STEM}.a ================================================ FILE: ports/qt5-base/patches/egl.patch ================================================ diff --git a/src/gui/configure.json b/src/gui/configure.json index 5fceb1150..7702cb261 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -220,7 +220,10 @@ "headers": "EGL/egl.h", "sources": [ { "type": "pkgConfig", "args": "egl" }, - { "type": "makeSpec", "spec": "EGL" } + { "type": "makeSpec", "spec": "EGL" }, + { "libs": "-lEGL -lGLESv2 -lGL -lANGLE -lGL -lX11 -ldl -lm -lpthread" }, + { "libs": "-DGL_GLES_PROTOTYPES=1 -DGL_GLEXT_PROTOTYPES -DEGL_EGL_PROTOTYPES=1 -DEGL_EGLEXT_PROTOTYPES -lEGL -lGLESv2 -lGL -lANGLE -lGL -lX11 -ldl -lm -lpthread" }, + { "libs": "-DANGLE_EXPORT -DANGLE_UTIL_EXPORT -DGL_API -DGL_APICALL -DEGLAPI -DGL_GLES_PROTOTYPES=1 -DGL_GLEXT_PROTOTYPES -DEGL_EGL_PROTOTYPES=1 -DEGL_EGLEXT_PROTOTYPES -lEGL -lGLESv2 -lGL -lANGLE -lGL -lX11 -ldl -lm -lpthread" } ] }, "freetype": { ================================================ FILE: ports/qt5-base/patches/fix_angle.patch ================================================ diff --git a/src/plugins/platforms/windows/qwindowseglcontext.cpp b/src/plugins/platforms/windows/qwindowseglcontext.cpp index 4ae087dfa..3a07d511e 100644 --- a/src/plugins/platforms/windows/qwindowseglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowseglcontext.cpp @@ -46,6 +46,21 @@ #if defined(QT_OPENGL_ES_2_ANGLE) || defined(QT_OPENGL_DYNAMIC) # include + +#ifndef EGL_ANGLE_platform_angle +#define EGL_ANGLE_platform_angle 1 +#define EGL_PLATFORM_ANGLE_ANGLE 0x3202 +#define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203 +#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE 0x3209 +#endif /* EGL_ANGLE_platform_angle */ + +#ifndef EGL_ANGLE_platform_angle_d3d +#define EGL_ANGLE_platform_angle_d3d 1 +#define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207 +#define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208 +#define EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE 0x320B +#endif /* EGL_ANGLE_platform_angle_d3d */ + #endif QT_BEGIN_NAMESPACE @@ -210,7 +225,7 @@ bool QWindowsEGLStaticContext::initializeAngle(QWindowsOpenGLTester::Renderers p { EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, EGL_NONE }, { EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE, EGL_NONE }, { EGL_PLATFORM_ANGLE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE, - EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_WARP_ANGLE, EGL_NONE } + EGL_PLATFORM_ANGLE_DEVICE_TYPE_ANGLE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_D3D_WARP_ANGLE, EGL_NONE } }; const EGLint *attributes = nullptr; if (preferredType & QWindowsOpenGLTester::AngleRendererD3d11) ================================================ FILE: ports/qt5-base/patches/macos26-opengl.patch ================================================ diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index 61bea952b2..9ba38d9949 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -18,8 +18,7 @@ QMAKE_LIBDIR = # sdk.prf will prefix the proper SDK sysroot QMAKE_INCDIR_OPENGL = \ - /System/Library/Frameworks/OpenGL.framework/Headers \ - /System/Library/Frameworks/AGL.framework/Headers/ + /System/Library/Frameworks/OpenGL.framework/Headers QMAKE_FIX_RPATH = install_name_tool -id @@ -30,7 +29,7 @@ QMAKE_LFLAGS_REL_RPATH = QMAKE_REL_RPATH_BASE = @loader_path QMAKE_LIBS_DYNLOAD = -QMAKE_LIBS_OPENGL = -framework OpenGL -framework AGL +QMAKE_LIBS_OPENGL = -framework OpenGL QMAKE_LIBS_THREAD = QMAKE_INCDIR_WAYLAND = -- 2.50.1 (Apple Git-155) ================================================ FILE: ports/qt5-base/patches/md4c.diff ================================================ diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp index 7296a6f..d62a195 100644 --- a/src/gui/text/qtextmarkdownimporter.cpp +++ b/src/gui/text/qtextmarkdownimporter.cpp @@ -48,7 +48,7 @@ #include #include #include -#include "../../3rdparty/md4c/md4c.h" +#include QT_BEGIN_NAMESPACE ================================================ FILE: ports/qt5-base/patches/mingw9.patch ================================================ diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 075ce0ffac..0d3dd2e0b2 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -627,14 +627,14 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) return QFileSystemEntry(ret, QFileSystemEntry::FromInternalPath()); } -#if defined(Q_CC_MINGW) && WINVER < 0x0602 // Windows 8 onwards +#if defined(Q_CC_MINGW) && WINVER < 0x0602 && _WIN32_WINNT < _WIN32_WINNT_WIN8 // Windows 8 onwards typedef struct _FILE_ID_INFO { ULONGLONG VolumeSerialNumber; FILE_ID_128 FileId; } FILE_ID_INFO, *PFILE_ID_INFO; -#endif // if defined (Q_CC_MINGW) && WINVER < 0x0602 +#endif // if defined(Q_CC_MINGW) && WINVER < 0x0602 && _WIN32_WINNT < _WIN32_WINNT_WIN8 // File ID for Windows up to version 7 and FAT32 drives static inline QByteArray fileId(HANDLE handle) ================================================ FILE: ports/qt5-base/patches/mysql-configure.patch ================================================ --- a/src/plugins/sqldrivers/configure.json +++ b/src/plugins/sqldrivers/configure.json @@ -65,7 +65,7 @@ ], "main": "mysql_get_client_version();" }, - "headers": "mysql.h", + "headers": "mysql/mysql.h", "sources": [ { "type": "mysqlConfig", "query": "--libs_r", "cleanlibs": true }, { "type": "mysqlConfig", "query": "--libs", "cleanlibs": true }, ================================================ FILE: ports/qt5-base/patches/mysql_plugin_include.patch ================================================ --- a/src/plugins/sqldrivers/mysql/qsql_mysql_p.h +++ b/src/plugins/sqldrivers/mysql/qsql_mysql_p.h @@ -57,7 +57,7 @@ #include #endif -#include +#include #ifdef QT_PLUGIN #define Q_EXPORT_SQLDRIVER_MYSQL ================================================ FILE: ports/qt5-base/patches/patch-qtbase-memory_resource.diff ================================================ --- a/src/corelib/tools/qduplicatetracker_p.h +++ b/src/corelib/tools/qduplicatetracker_p.h @@ -52,7 +52,7 @@ #include -#if QT_HAS_INCLUDE() && __cplusplus > 201402L +#ifdef __cpp_lib_memory_resource # include # include #else ================================================ FILE: ports/qt5-base/patches/qmake-arm64.patch ================================================ diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index df3f92d7d5df..0ee8cdbf11e1 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -1046,6 +1046,11 @@ void QMakeEvaluator::loadDefaults() case PROCESSOR_ARCHITECTURE_AMD64: archStr = ProString("x86_64"); break; +# endif +# ifdef PROCESSOR_ARCHITECTURE_ARM64 + case PROCESSOR_ARCHITECTURE_ARM64: + archStr = ProString("arm64"); + break; # endif case PROCESSOR_ARCHITECTURE_INTEL: archStr = ProString("x86"); -- 2.16.3 ================================================ FILE: ports/qt5-base/patches/qt_app.patch ================================================ diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf index 8354f30e..8f24b72e 100644 --- a/mkspecs/features/qt_app.prf +++ b/mkspecs/features/qt_app.prf @@ -27,10 +27,11 @@ host_build:force_bootstrap { QT -= core core-private xml QT += bootstrap-private } target.path = $$[QT_HOST_BINS] + CONFIG += relative_qt_rpath # Qt's tools and apps should be relocatable } else { !build_pass:qtConfig(debug_and_release): CONFIG += release - target.path = $$[QT_INSTALL_BINS] + target.path = $$[QT_HOST_BINS] CONFIG += relative_qt_rpath # Qt's tools and apps should be relocatable } INSTALLS += target ================================================ FILE: ports/qt5-base/patches/qtbug_96392.patch ================================================ --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -842,7 +842,8 @@ "// Check if EGL is compatible with X. Some EGL implementations, typically on", "// embedded devices, are not intended to be used together with X. EGL support", "// has to be disabled in plugins like xcb in this case since the native display,", "// window and pixmap types will be different than what an X-based platform", - "// plugin would expect." + "// plugin would expect.", + "#define USE_X11" ], "include": [ "EGL/egl.h", "X11/Xlib.h" ], "main": [ --- a/src/platformsupport/eglconvenience/qt_egl_p.h +++ b/src/platformsupport/eglconvenience/qt_egl_p.h @@ -61,7 +61,11 @@ # endif # if !defined(Q_OS_INTEGRITY) # define WIN_INTERFACE_CUSTOM // NV # endif // Q_OS_INTEGRITY -#endif // QT_EGL_NO_X11 +#else // QT_EGL_NO_X11 +// If one has an eglplatform.h with https://github.com/KhronosGroup/EGL-Registry/pull/130 +// that needs USE_X11 to be defined. +# define USE_X11 +#endif #ifdef QT_EGL_WAYLAND # define WAYLAND // NV ================================================ FILE: ports/qt5-base/patches/static_opengl.patch ================================================ diff --git a/mkspecs/features/win32/opengl.prf b/mkspecs/features/win32/opengl.prf index f21848f94..202c49688 100644 --- a/mkspecs/features/win32/opengl.prf +++ b/mkspecs/features/win32/opengl.prf @@ -30,7 +30,7 @@ qtConfig(opengles2) { LIBS += $$QMAKE_LIBS_OPENGL_ES2 QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2_RELEASE } - qtConfig(static): DEFINES += GL_APICALL= EGLAPI= + qtConfig(static): DEFINES += _GDI32_ GL_APICALL= EGLAPI= ANGLE_EXPORT= ANGLE_PLATFORM_EXPORT= } else { !qtConfig(dynamicgl) { QMAKE_LIBS += $$QMAKE_LIBS_OPENGL diff --git a/src/angle/src/common/gles_common.pri b/src/angle/src/common/gles_common.pri index 70b65dd4c..1dcc96af5 100644 --- a/src/angle/src/common/gles_common.pri +++ b/src/angle/src/common/gles_common.pri @@ -23,7 +23,8 @@ for(libname, STATICLIBS) { PRE_TARGETDEPS += $$staticlib } -DEFINES += LIBANGLE_IMPLEMENTATION LIBGLESV2_IMPLEMENTATION GL_APICALL= GL_GLEXT_PROTOTYPES= EGLAPI= +!qtConfig(static): DEFINES += LIBANGLE_IMPLEMENTATION LIBGLESV2_IMPLEMENTATION +qtConfig(static): DEFINES += GL_APICALL= EGLAPI= ANGLE_EXPORT= ANGLE_PLATFORM_EXPORT= !winrt: DEFINES += ANGLE_ENABLE_D3D9 ANGLE_SKIP_DXGI_1_2_CHECK QT_FOR_CONFIG += gui-private diff --git a/src/3rdparty/angle/include/platform/Platform.h b/src/3rdparty/angle/include/platform/Platform.h index aa1221a86..a49ee4f6d 100644 --- a/src/3rdparty/angle/include/platform/Platform.h +++ b/src/3rdparty/angle/include/platform/Platform.h @@ -12,7 +12,7 @@ #include #include -#if defined(_WIN32) +#if defined(_WIN32) && !defined(ANGLE_PLATFORM_EXPORT) # if !defined(LIBANGLE_IMPLEMENTATION) # define ANGLE_PLATFORM_EXPORT __declspec(dllimport) # else diff --git a/src/3rdparty/angle/src/libGLESv2/entry_points_gles_2_0_ext.cpp b/src/3rdparty/angle/src/libGLESv2/entry_points_gles_2_0_ext.cpp index d4459ec28..d1416041e 100644 --- a/src/3rdparty/angle/src/libGLESv2/entry_points_gles_2_0_ext.cpp +++ b/src/3rdparty/angle/src/libGLESv2/entry_points_gles_2_0_ext.cpp @@ -3505,7 +3505,7 @@ ANGLE_EXPORT void GL_APIENTRY GetQueryObjectui64vRobustANGLE(GLuint id, } } -GL_APICALL void GL_APIENTRY FramebufferTextureMultiviewLayeredANGLE(GLenum target, +ANGLE_EXPORT void GL_APIENTRY FramebufferTextureMultiviewLayeredANGLE(GLenum target, GLenum attachment, GLuint texture, GLint level, @@ -3530,7 +3530,7 @@ GL_APICALL void GL_APIENTRY FramebufferTextureMultiviewLayeredANGLE(GLenum targe } } -GL_APICALL void GL_APIENTRY FramebufferTextureMultiviewSideBySideANGLE(GLenum target, +ANGLE_EXPORT void GL_APIENTRY FramebufferTextureMultiviewSideBySideANGLE(GLenum target, GLenum attachment, GLuint texture, GLint level, ================================================ FILE: ports/qt5-base/patches/vulkan-windows.diff ================================================ diff --git a/mkspecs/features/win32/windows_vulkan_sdk.prf b/mkspecs/features/win32/windows_vulkan_sdk.prf index 9a749516b..242f47504 100644 --- a/mkspecs/features/win32/windows_vulkan_sdk.prf +++ b/mkspecs/features/win32/windows_vulkan_sdk.prf @@ -1,7 +1,7 @@ isEmpty(QMAKE_INCDIR_VULKAN) { # Pick up the VULKAN_SDK env var set by the LunarG SDK so that the Vulkan # headers are found out-of-the-box on typical Windows setups. - QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)/include + # QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)/include # Do not add default include paths as that can knock std headers # out of their stride due to their usage of #include_next. ================================================ FILE: ports/qt5-base/patches/windows_prf.patch ================================================ diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf index 272170d4..70b8ea2e 100644 --- a/mkspecs/features/win32/windows.prf +++ b/mkspecs/features/win32/windows.prf @@ -6,7 +6,7 @@ contains(TEMPLATE, ".*app") { qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) { isEqual(entryLib, -lqtmain) { - lib = $$QT.core.libs/$${QMAKE_PREFIX_STATICLIB}qtmain$$QT_LIBINFIX$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB + lib = $$QT.core.libs/manual-link/$${QMAKE_PREFIX_STATICLIB}qtmain$$QT_LIBINFIX$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB PRE_TARGETDEPS += $$lib QMAKE_LIBS += $$lib } else { ================================================ FILE: ports/qt5-base/patches/winmain_pro.patch ================================================ diff --git a/src/winmain/winmain.pro b/src/winmain/winmain.pro index 9cb6ab0c..52c7876e 100644 --- a/src/winmain/winmain.pro +++ b/src/winmain/winmain.pro @@ -3,7 +3,7 @@ TEMPLATE = lib TARGET = qtmain -DESTDIR = $$QT.core.libs +DESTDIR = $$QT.core.libs/manual-link CONFIG += static QT = core @@ -27,7 +27,12 @@ winrt { } load(qt_installs) - +!qt_no_install_library { + host_build: \ + target.path = $$[QT_HOST_LIBS]/manual-link + else: \ + target.path = $$[QT_INSTALL_LIBS]/manual-link +} TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end load(qt_targets) ================================================ FILE: ports/qt5-base/patches/xlib.patch ================================================ diff --git a/src/gui/configure.json b/src/gui/configure.json index 9a749516b..242f47504 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -568,7 +568,9 @@ }, "headers": "X11/Xlib.h", "sources": [ - { "type": "makeSpec", "spec": "X11" } + { "type": "makeSpec", "spec": "X11" }, + { "type": "pkgConfig", "args": "x11" }, + { "type": "pkgConfig", "args": "x11 --static" } ] }, "x11sm": { @@ -590,6 +592,7 @@ "headers": "xcb/xcb.h", "sources": [ { "type": "pkgConfig", "args": "xcb >= 1.11" }, + { "type": "pkgConfig", "args": "xcb >= 1.11 --static" }, "-lxcb" ] }, @@ -691,6 +694,7 @@ "headers": "X11/Xlib-xcb.h", "sources": [ { "type": "pkgConfig", "args": "x11-xcb" }, + { "type": "pkgConfig", "args": "x11-xcb --static" }, "-lX11-xcb" ], "use": "xcb xlib" @@ -711,6 +715,7 @@ "headers": "xcb/xkb.h", "sources": [ { "type": "pkgConfig", "args": "xcb-xkb" }, + { "type": "pkgConfig", "args": "xcb-xkb --static" }, "-lxcb-xkb" ], "use": "xcb" ================================================ FILE: ports/qt5-base/portfile.cmake ================================================ vcpkg_buildpath_length_warning(37) if(VCPKG_TARGET_IS_LINUX) message(WARNING "qt5-base currently requires some packages from the system package manager. " "They can be installed on Ubuntu systems via " "sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libgl1-mesa-dev libxrender-dev " "libxi-dev libxkbcommon-dev libxkbcommon-x11-dev. For more information, see " "https://doc.qt.io/qt-5/linux.html and https://doc.qt.io/qt-5/linux-requirements.html" ) elseif(VCPKG_TARGET_IS_MINGW AND CMAKE_HOST_WIN32) find_program(MINGW32_MAKE mingw32-make PATHS ENV PATH NO_DEFAULT_PATH REQUIRED) endif() list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake) set(WITH_PGSQL_PLUGIN OFF) if("postgresqlplugin" IN_LIST FEATURES) set(WITH_PGSQL_PLUGIN ON) endif() set(WITH_MYSQL_PLUGIN OFF) if ("mysqlplugin" IN_LIST FEATURES) set(WITH_MYSQL_PLUGIN ON) endif() set(WITH_OPENSSL OFF) if ("openssl" IN_LIST FEATURES) set(WITH_OPENSSL ON) endif() include(qt_port_functions) include(configure_qt) include(install_qt) ######################### ## Find Host and Target mkspec name for configure include(find_qt_mkspec) find_qt_mkspec(TARGET_MKSPEC HOST_MKSPEC HOST_TOOLS) set(QT_PLATFORM_CONFIGURE_OPTIONS TARGET_PLATFORM ${TARGET_MKSPEC}) if(DEFINED HOST_MKSPEC) list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${HOST_MKSPEC}) endif() if(DEFINED HOST_TOOLS) list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_TOOLS_ROOT ${HOST_TOOLS}) endif() ######################### ## Downloading Qt5-Base set(PATCHES # CVE fixes from https://download.qt.io/archive/qt/5.15/ patches/CVE-2025-4211-qtbase-5.15.diff patches/CVE-2025-5455-qtbase-5.15.patch patches/CVE-2025-30348-qtbase-5.15.diff patches/winmain_pro.patch #Moves qtmain to manual-link patches/windows_prf.patch #fixes the qtmain dependency due to the above move patches/qt_app.patch #Moves the target location of qt5 host apps to always install into the host dir. patches/xlib.patch #Patches Xlib check to actually use Pkgconfig instead of makeSpec only patches/vulkan-windows.diff #Forces QMake to use vulkan from vcpkg instead of VULKAN_SDK system variable patches/egl.patch #Fix egl detection logic. patches/qtbug_96392.patch #Backport fix for QTBUG-96392 patches/md4c.diff #Include vcpkg md4c.h patches/mysql_plugin_include.patch #Fix include path of mysql plugin patches/mysql-configure.patch #Fix mysql project patches/patch-qtbase-memory_resource.diff # From https://bugreports.qt.io/browse/QTBUG-114316 #patches/static_opengl.patch #Use this patch if you really want to statically link angle on windows (e.g. using -opengl es2 and -static). #Be careful since it requires defining _GDI32_ for all dependent projects due to redefinition errors in the #the windows supplied gl.h header and the angle gl.h otherwise. # CMake fixes patches/Qt5BasicConfig.patch patches/Qt5PluginTarget.patch patches/create_cmake.patch patches/Qt5GuiConfigExtras.patch # Patches the library search behavior for EGL since angle is not build with Qt patches/fix_angle.patch # Failed to create OpenGL context for format QSurfaceFormat ... patches/mingw9.patch # Fix compile with MinGW-W64 9.0.0: Redefinition of 'struct _FILE_ID_INFO' patches/qmake-arm64.patch # Fix by Oliver Wolff to support ARM64 hosts on Windows ) if(VCPKG_TARGET_IS_OSX) execute_process(COMMAND xcrun --sdk macosx --show-sdk-version OUTPUT_VARIABLE OSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) if(${OSX_SDK_VERSION} VERSION_GREATER_EQUAL 26) # macOS 26 Tahoe has removed AGL APIs https://bugreports.qt.io/browse/QTBUG-137687 list(APPEND PATCHES patches/macos26-opengl.patch) endif() endif() qt_download_submodule(OUT_SOURCE_PATH SOURCE_PATH PATCHES ${PATCHES}) # Remove vendored dependencies to ensure they are not picked up by the build foreach(DEPENDENCY IN ITEMS double-conversion freetype harfbuzz-ng libjpeg libpng md4c pcre2 sqlite zlib) file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}") endforeach() ######################### ## Setup Configure options set(CORE_OPTIONS -confirm-license -opensource #-simulator_and_device #-ltcg #-combined-angle-lib # ENV ANGLE_DIR to external angle source dir. (Will always be compiled with Qt) #-optimized-tools -force-debug-info -no-separate-debug-info -verbose ) ## 3rd Party Libs list(APPEND CORE_OPTIONS -system-zlib -system-libjpeg -system-libmd4c -system-libpng -system-pcre -system-doubleconversion -no-angle # Qt does not need to build angle. VCPKG will build angle! -no-glib -no-feature-gssapi ) if(VCPKG_TARGET_IS_LINUX) # Accessibility uses at-spi2-core which links dbus, # so we link to ensure to use the same dbus library. list(APPEND CORE_OPTIONS -dbus-linked) else() # Enable Qt DBus without linking to it. list(APPEND CORE_OPTIONS -dbus-runtime) endif() if(WITH_PGSQL_PLUGIN) list(APPEND CORE_OPTIONS -sql-psql) else() list(APPEND CORE_OPTIONS -no-sql-psql) endif() if(WITH_MYSQL_PLUGIN) list(APPEND CORE_OPTIONS -sql-mysql) else() list(APPEND CORE_OPTIONS -no-sql-mysql) endif() if(WITH_OPENSSL) list(APPEND CORE_OPTIONS -openssl-linked) else() list(APPEND CORE_OPTIONS -no-openssl) endif() if("cups" IN_LIST FEATURES) message(WARNING "${PORT} feature 'cups' requires libcups2-dev from system package manger.") list(APPEND CORE_OPTIONS -cups) else() list(APPEND CORE_OPTIONS -no-cups) endif() if ("vulkan" IN_LIST FEATURES) list(APPEND CORE_OPTIONS --vulkan=yes) else() list(APPEND CORE_OPTIONS --vulkan=no) endif() find_library(ZLIB_RELEASE NAMES z zlib PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ZLIB_DEBUG NAMES z zlib zd zlibd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(JPEG_RELEASE NAMES jpeg jpeg-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(JPEG_DEBUG NAMES jpeg jpeg-static jpegd jpeg-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(LIBPNG_RELEASE NAMES png16 libpng16 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) #Depends on zlib find_library(LIBPNG_DEBUG NAMES png16 png16d libpng16 libpng16d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(PSQL_RELEASE NAMES pq libpq PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on openssl and zlib(linux) find_library(PSQL_DEBUG NAMES pq libpq pqd libpqd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) if(NOT (PSQL_RELEASE MATCHES ".*\.so") AND NOT (PSQL_DEBUG MATCHES ".*\.so")) find_library(PSQL_COMMON_RELEASE NAMES pgcommon libpgcommon PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on openssl and zlib(linux) find_library(PSQL_COMMON_DEBUG NAMES pgcommon libpgcommon pgcommond libpgcommond PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(PSQL_PORT_RELEASE NAMES pgport libpgport PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on openssl and zlib(linux) find_library(PSQL_PORT_DEBUG NAMES pgport libpgport pgportd libpgportd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) endif() find_library(MYSQL_RELEASE NAMES libmysql mysqlclient PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) # Depends on openssl and zlib(linux) find_library(MYSQL_DEBUG NAMES libmysql libmysqld mysqlclient mysqlclientd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(PCRE2_RELEASE NAMES pcre2-16 pcre2-16-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(PCRE2_DEBUG NAMES pcre2-16 pcre2-16-static pcre2-16d pcre2-16-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(ICUUC_RELEASE NAMES icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ICUUC_DEBUG NAMES icuucd libicuucd icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(ICUIO_RELEASE NAMES icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ICUIO_DEBUG NAMES icuiod libicuiod icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(ICUIN_RELEASE NAMES icui18n libicui18n icuin PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ICUIN_DEBUG NAMES icui18nd libicui18nd icui18n libicui18n icuin icuind PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(ICUDATA_RELEASE NAMES icudata libicudata icudt PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(ICUDATA_DEBUG NAMES icudatad libicudatad icudata libicudata icudtd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) set(ICU_RELEASE "${ICUIN_RELEASE} ${ICULX_RELEASE} ${ICUUC_RELEASE} ${ICUIO_RELEASE} ${ICUDATA_RELEASE}") set(ICU_DEBUG "${ICUIN_DEBUG} ${ICULX_DEBUG} ${ICUUC_DEBUG} ${ICUIO_DEBUG} ${ICUDATA_DEBUG}") if(VCPKG_TARGET_IS_WINDOWS) set(ICU_RELEASE "${ICU_RELEASE} -ladvapi32") set(ICU_DEBUG "${ICU_DEBUG} -ladvapi32" ) endif() #Dependent libraries find_library(SSL_RELEASE ssl ssleay32 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(SSL_DEBUG ssl ssleay32 ssld ssleay32d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(EAY_RELEASE libeay32 crypto libcrypto PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(EAY_DEBUG libeay32 crypto libcrypto libeay32d cryptod libcryptod PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) set(RELEASE_OPTIONS "LIBJPEG_LIBS=${JPEG_RELEASE}" "ZLIB_LIBS=${ZLIB_RELEASE}" "LIBPNG_LIBS=${LIBPNG_RELEASE} ${ZLIB_RELEASE}" "PCRE2_LIBS=${PCRE2_RELEASE}" "QMAKE_LIBS_PRIVATE+=${LIBPNG_RELEASE} ${ZLIB_RELEASE}" ) set(DEBUG_OPTIONS "LIBJPEG_LIBS=${JPEG_DEBUG}" "ZLIB_LIBS=${ZLIB_DEBUG}" "LIBPNG_LIBS=${LIBPNG_DEBUG} ${ZLIB_DEBUG}" "PCRE2_LIBS=${PCRE2_DEBUG}" "QMAKE_LIBS_PRIVATE+=${LIBPNG_DEBUG} ${ZLIB_DEBUG}" ) x_vcpkg_pkgconfig_get_modules(PREFIX freetype MODULES freetype2 LIBS) list(APPEND CORE_OPTIONS -system-freetype) list(APPEND RELEASE_OPTIONS "FREETYPE_LIBS=${freetype_LIBS_RELEASE}") list(APPEND DEBUG_OPTIONS "FREETYPE_LIBS=${freetype_LIBS_DEBUG}") x_vcpkg_pkgconfig_get_modules(PREFIX harfbuzz MODULES harfbuzz LIBS) if(VCPKG_TARGET_IS_OSX) string(APPEND harfbuzz_LIBRARIES_RELEASE " -framework ApplicationServices") string(APPEND harfbuzz_LIBRARIES_DEBUG " -framework ApplicationServices") endif() list(APPEND CORE_OPTIONS -system-harfbuzz) list(APPEND RELEASE_OPTIONS "HARFBUZZ_LIBS=${harfbuzz_LIBS_RELEASE}") list(APPEND DEBUG_OPTIONS "HARFBUZZ_LIBS=${harfbuzz_LIBS_DEBUG}") if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND CORE_OPTIONS -fontconfig) x_vcpkg_pkgconfig_get_modules(PREFIX fontconfig MODULES fontconfig LIBS) list(APPEND RELEASE_OPTIONS "FONTCONFIG_LIBS=${fontconfig_LIBS_RELEASE}") list(APPEND DEBUG_OPTIONS "FONTCONFIG_LIBS=${fontconfig_LIBS_DEBUG}") endif() if("sqlite3plugin" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -system-sqlite) x_vcpkg_pkgconfig_get_modules(PREFIX sqlite3 MODULES sqlite3 LIBS) list(APPEND RELEASE_OPTIONS "SQLITE_LIBS=${sqlite3_LIBS_RELEASE}") list(APPEND DEBUG_OPTIONS "SQLITE_LIBS=${sqlite3_LIBS_DEBUG}") else() list(APPEND CORE_OPTIONS -no-sql-sqlite) endif() if("zstd" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -zstd) x_vcpkg_pkgconfig_get_modules(PREFIX libzstd MODULES libzstd LIBS) list(APPEND RELEASE_OPTIONS "QMAKE_LIBS_PRIVATE+=${libzstd_LIBS_RELEASE}") list(APPEND DEBUG_OPTIONS "QMAKE_LIBS_PRIVATE+=${libzstd_LIBS_DEBUG}") else() list(APPEND CORE_OPTIONS -no-zstd) endif() if("icu" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -icu) # This if/else corresponds to icu setup in src/corelib/configure.json. if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND CORE_OPTIONS "ICU_LIBS_RELEASE=${ICU_RELEASE}" "ICU_LIBS_DEBUG=${ICU_DEBUG}" ) else() list(APPEND RELEASE_OPTIONS "ICU_LIBS=${ICU_RELEASE}") list(APPEND DEBUG_OPTIONS "ICU_LIBS=${ICU_DEBUG}") endif() list(APPEND RELEASE_OPTIONS "QMAKE_LIBS_PRIVATE+=${ICU_RELEASE}") list(APPEND DEBUG_OPTIONS "QMAKE_LIBS_PRIVATE+=${ICU_DEBUG}") else() list(APPEND CORE_OPTIONS -no-icu) endif() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_IS_UWP) list(APPEND CORE_OPTIONS -appstore-compliant) endif() if(NOT ${VCPKG_LIBRARY_LINKAGE} STREQUAL "static") list(APPEND CORE_OPTIONS -opengl dynamic) # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" and "-opengel es2" else() list(APPEND CORE_OPTIONS -opengl dynamic) # other possible option without moving angle dlls: "-opengl desktop". "-opengel es2" only works with commented patch endif() set(ADDITIONAL_WINDOWS_LIBS "-lws2_32 -lsecur32 -ladvapi32 -lshell32 -lcrypt32 -luser32 -lgdi32") if(WITH_OPENSSL) list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} ${ADDITIONAL_WINDOWS_LIBS}") list(APPEND DEBUG_OPTIONS "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} ${ADDITIONAL_WINDOWS_LIBS}") else() list(APPEND CORE_OPTIONS -schannel) endif() if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} ${ADDITIONAL_WINDOWS_LIBS} -lwldap32") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} ${ADDITIONAL_WINDOWS_LIBS} -lwldap32") endif() elseif(VCPKG_TARGET_IS_LINUX) list(APPEND CORE_OPTIONS -xcb-xlib -xcb -linuxfb) if(WITH_OPENSSL) list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_TYPES_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_TYPES_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() elseif(VCPKG_TARGET_IS_OSX) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # Avoid frameworks for vcpkg list(APPEND CORE_OPTIONS -no-framework) # Such that Qt executables like moc find their libs. The default path is ../Frameworks list(APPEND DEBUG_OPTIONS -R ${CURRENT_INSTALLED_DIR}/debug/lib) list(APPEND RELEASE_OPTIONS -R ${CURRENT_INSTALLED_DIR}/lib) endif() if("${VCPKG_TARGET_ARCHITECTURE}" MATCHES "arm64") FILE(READ "${SOURCE_PATH}/mkspecs/common/macx.conf" _tmp_contents) string(REPLACE "QMAKE_APPLE_DEVICE_ARCHS = x86_64" "QMAKE_APPLE_DEVICE_ARCHS = arm64" _tmp_contents ${_tmp_contents}) FILE(WRITE "${SOURCE_PATH}/mkspecs/common/macx.conf" ${_tmp_contents}) endif() if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${VCPKG_OSX_DEPLOYMENT_TARGET}) else() message(STATUS "Detected OSX SDK Version: ${OSX_SDK_VERSION}") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)" OSX_SDK_VERSION "${OSX_SDK_VERSION}") message(STATUS "Major.Minor OSX SDK Version: ${OSX_SDK_VERSION}") execute_process(COMMAND sw_vers -productVersion OUTPUT_VARIABLE VCPKG_OSX_DEPLOYMENT_TARGET OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Detected OSX system Version: ${VCPKG_OSX_DEPLOYMENT_TARGET}") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)" VCPKG_OSX_DEPLOYMENT_TARGET "${VCPKG_OSX_DEPLOYMENT_TARGET}") message(STATUS "Major.Minor OSX system Version: ${VCPKG_OSX_DEPLOYMENT_TARGET}") # Parse mkspecs/common/macx.conf file(READ "${SOURCE_PATH}/mkspecs/common/macx.conf" QT_MK_MAC_CONTENT) string(REGEX MATCHALL "QT_MAC_SDK_VERSION_MIN[ \t]*=[ \t]*(([0-9]+)(\\.([0-9]+))*)" KEY_VALUE "${QT_MK_MAC_CONTENT}") if(${CMAKE_MATCH_COUNT} LESS 2) message(FATAL_ERROR "Error parse QT_MAC_SDK_VERSION_MIN") endif() set(QT_MAC_SDK_VERSION_MIN "${CMAKE_MATCH_1}") string(REGEX MATCHALL "QT_MAC_SDK_VERSION_MAX[ \t]*=[ \t]*(([0-9]+)(\\.([0-9]+))*)" KEY_VALUE "${QT_MK_MAC_CONTENT}") if(${CMAKE_MATCH_COUNT} LESS 2) message(FATAL_ERROR "Error parse QT_MAC_SDK_VERSION_MAX") endif() set(QT_MAC_SDK_VERSION_MAX "${CMAKE_MATCH_1}") message(STATUS "QT_MAC_SDK_VERSION_MIN: ${QT_MAC_SDK_VERSION_MIN}") message(STATUS "QT_MAC_SDK_VERSION_MAX: ${QT_MAC_SDK_VERSION_MAX}") # clamp(VCPKG_OSX_DEPLOYMENT_TARGET, QT_MAC_SDK_VERSION_MIN, QT_MAC_SDK_VERSION_MAX) if("${VCPKG_OSX_DEPLOYMENT_TARGET}" VERSION_GREATER "${QT_MAC_SDK_VERSION_MAX}") set(VCPKG_OSX_DEPLOYMENT_TARGET "${QT_MAC_SDK_VERSION_MAX}") endif() if("${VCPKG_OSX_DEPLOYMENT_TARGET}" VERSION_LESS "${QT_MAC_SDK_VERSION_MIN}") set(VCPKG_OSX_DEPLOYMENT_TARGET "${QT_MAC_SDK_VERSION_MIN}") endif() set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${VCPKG_OSX_DEPLOYMENT_TARGET}) endif() message(STATUS "Enviromnent OSX SDK Version: $ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET}") file(READ "${SOURCE_PATH}/mkspecs/common/macx.conf" _tmp_contents) string(REPLACE "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13" "QMAKE_MACOSX_DEPLOYMENT_TARGET = ${VCPKG_OSX_DEPLOYMENT_TARGET}" _tmp_contents ${_tmp_contents}) file(WRITE "${SOURCE_PATH}/mkspecs/common/macx.conf" ${_tmp_contents}) #list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${TARGET_MKSPEC}) if(WITH_OPENSSL) list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "OPENSSL_LIBS=${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() if(WITH_PGSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "PSQL_LIBS=${PSQL_RELEASE} ${PSQL_PORT_RELEASE} ${PSQL_TYPES_RELEASE} ${PSQL_COMMON_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread") list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_TYPES_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} -ldl -lpthread") endif() endif() if (WITH_MYSQL_PLUGIN) list(APPEND RELEASE_OPTIONS "MYSQL_LIBS=${MYSQL_RELEASE} ${SSL_RELEASE} ${EAY_RELEASE} ${ZLIB_RELEASE} ${ADDITIONAL_WINDOWS_LIBS}") list(APPEND DEBUG_OPTIONS "MYSQL_LIBS=${MYSQL_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} ${ZLIB_DEBUG} ${ADDITIONAL_WINDOWS_LIBS}") endif(WITH_MYSQL_PLUGIN) ## Do not build tests or examples list(APPEND CORE_OPTIONS -nomake examples -nomake tests) if(QT_UPDATE_VERSION) SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() configure_qt( SOURCE_PATH ${SOURCE_PATH} ${QT_PLATFORM_CONFIGURE_OPTIONS} OPTIONS ${CORE_OPTIONS} OPTIONS_RELEASE ${RELEASE_OPTIONS} OPTIONS_DEBUG ${DEBUG_OPTIONS} ) install_qt() ######################### #TODO: Make this a function since it is also done by modular scripts! # e.g. by patching mkspecs/features/qt_tools.prf somehow file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/mkspecs/*.pri" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/debug/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/debug/mkspecs/*.pri") file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/include" CMAKE_INCLUDE_PATH) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") qt_fix_prl("${CURRENT_INSTALLED_DIR}" "${PRL_FILES}") file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") qt_fix_prl("${CURRENT_INSTALLED_DIR}/debug" "${PRL_FILES}") file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins) endif() file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) # TODO: check if important debug information for cmake is lost #This needs a new VCPKG policy or a static angle build (ANGLE needs to be fixed in VCPKG!) if(VCPKG_TARGET_IS_WINDOWS AND ${VCPKG_LIBRARY_LINKAGE} MATCHES "static") # Move angle dll libraries if(EXISTS "${CURRENT_PACKAGES_DIR}/bin") message(STATUS "Moving ANGLE dlls from /bin to /tools/qt5-angle/bin. In static builds dlls are not allowed in /bin") file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle) file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/bin) if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/bin) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug) file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin ${CURRENT_PACKAGES_DIR}/tools/qt5-angle/debug/bin) endif() endif() endif() ## Fix location of qtmain(d).lib. Has been moved into manual-link. Add debug version set(cmakefile "${CURRENT_PACKAGES_DIR}/share/cmake/Qt5Core/Qt5CoreConfigExtras.cmake") file(READ "${cmakefile}" _contents) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_BUILD_TYPE) string(REPLACE "set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)" "set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE DEBUG)" _contents "${_contents}") string(REPLACE [[set(imported_location "${_qt5Core_install_prefix}/lib/qtmain.lib")]] [[set(imported_location_release "${_qt5Core_install_prefix}/lib/manual-link/qtmain.lib") set(imported_location_debug "${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib")]] _contents "${_contents}") string(REPLACE [[ set_target_properties(Qt5::WinMain PROPERTIES IMPORTED_LOCATION_RELEASE ${imported_location} )]] [[ set_target_properties(Qt5::WinMain PROPERTIES IMPORTED_LOCATION_RELEASE ${imported_location_release} IMPORTED_LOCATION_DEBUG ${imported_location_debug} )]] _contents "${_contents}") else() # Single configuration build (either debug or release) # Release case string(REPLACE [[set(imported_location "${_qt5Core_install_prefix}/lib/qtmain.lib")]] [[set(imported_location "${_qt5Core_install_prefix}/lib/manual-link/qtmain.lib")]] _contents "${_contents}") # Debug case (whichever will match) string(REPLACE [[set(imported_location "${_qt5Core_install_prefix}/lib/qtmaind.lib")]] [[set(imported_location "${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib")]] _contents "${_contents}") string(REPLACE [[set(imported_location "${_qt5Core_install_prefix}/debug/lib/qtmaind.lib")]] [[set(imported_location "${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib")]] _contents "${_contents}") endif() file(WRITE "${cmakefile}" "${_contents}") if(EXISTS ${CURRENT_PACKAGES_DIR}/tools/qt5/bin) file(COPY ${CURRENT_PACKAGES_DIR}/tools/qt5/bin DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT}) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5/bin) endif() # This should be removed if possible! (Currently debug build of qt5-translations requires it.) if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/bin) file(COPY ${CURRENT_PACKAGES_DIR}/tools/qt5/bin DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5/debug) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5/debug/bin) endif() if(EXISTS ${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf) file(REMOVE "${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf") endif() set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}") set(CURRENT_INSTALLED_DIR "./../../.." ) # Making the qt.conf relative and not absolute configure_file(${CURRENT_PACKAGES_DIR}/tools/qt5/qt_release.conf ${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf) # This makes the tools at least useable for release set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}") qt_install_copyright(${SOURCE_PATH}) endif() #install scripts for other qt ports file(COPY ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_port_hashes.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_port_functions.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_fix_makefile_install.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_fix_cmake.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_fix_prl.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_download_submodule.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_build_submodule.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_install_copyright.cmake ${CMAKE_CURRENT_LIST_DIR}/cmake/qt_submodule_installation.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5 ) # Fix Qt5GuiConfigExtras EGL path if(VCPKG_TARGET_IS_LINUX) set(_file "${CURRENT_PACKAGES_DIR}/share/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake") file(READ "${_file}" _contents) string(REGEX REPLACE "_qt5gui_find_extra_libs\\\(EGL[^\\\n]+" "_qt5gui_find_extra_libs(EGL \"EGL\" \"\" \"\${_qt5Gui_install_prefix}/include\")\n" _contents "${_contents}") file(WRITE "${_file}" "${_contents}") endif() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_OSX) file(GLOB _debug_files "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*_debug.pc") foreach(_file ${_debug_files}) string(REGEX REPLACE "_debug\\.pc$" ".pc" _new_filename "${_file}") string(REGEX MATCH "(Qt5[a-zA-Z]+)_debug\\.pc$" _not_used "${_file}") set(_name ${CMAKE_MATCH_1}) file(STRINGS "${_file}" _version REGEX "^(Version):.+$") file(WRITE "${_new_filename}" "Name: ${_name}\nDescription: Forwarding to the _debug version by vcpkg\n${_version}\nRequires: ${_name}_debug\n") endforeach() endif() # #Code to get generated CMake files from CI # file(RENAME "${CURRENT_PACKAGES_DIR}/share/cmake/Qt5Core/Qt5CoreConfig.cmake" "${CURRENT_BUILDTREES_DIR}/Qt5CoreConfig.cmake.log") # file(GLOB_RECURSE CMAKE_GUI_FILES "${CURRENT_PACKAGES_DIR}/share/cmake/Qt5Gui/*.cmake" ) # foreach(cmake_file ${CMAKE_GUI_FILES}) # get_filename_component(cmake_filename "${cmake_file}" NAME) # file(COPY "${cmake_file}" DESTINATION "${CURRENT_BUILDTREES_DIR}") # file(RENAME "${CURRENT_BUILDTREES_DIR}/${cmake_filename}" "${CURRENT_BUILDTREES_DIR}/${cmake_filename}.log") # endforeach() # #Copy config.log from buildtree/triplet to buildtree to get the log in CI in case of failure # if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log") # file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log" "${CURRENT_BUILDTREES_DIR}/config-rel.log") # endif() # if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log") # file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log" "${CURRENT_BUILDTREES_DIR}/config-dbg.log") # endif() # message(FATAL_ERROR "Need Info from CI!") ================================================ FILE: ports/qt5-base/qtdeploy.ps1 ================================================ # This script is based on the implementation of windeployqt for qt5.7.1 # # Qt's plugin deployment strategy is that each main Qt Module has a hardcoded # set of plugin subdirectories. Each of these subdirectories is deployed in # full if that Module is referenced. # # This hardcoded list is found inside qttools\src\windeployqt\main.cpp. For # updating, inspect the symbols qtModuleEntries and qtModuleForPlugin. # Note: this function signature and behavior is depended upon by applocal.ps1 function deployPluginsIfQt([string]$targetBinaryDir, [string]$QtPluginsDir, [string]$targetBinaryName) { $baseDir = Split-Path $QtPluginsDir -parent $binDir = "$baseDir\bin" function deployPlugins([string]$pluginSubdirName) { if (Test-Path "$QtPluginsDir\$pluginSubdirName") { Write-Verbose " Deploying plugins directory '$pluginSubdirName'" New-Item "$targetBinaryDir\plugins\$pluginSubdirName" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null Get-ChildItem "$QtPluginsDir\$pluginSubdirName\*.dll" | % { deployBinary "$targetBinaryDir\plugins\$pluginSubdirName" "$QtPluginsDir\$pluginSubdirName" $_.Name resolve "$targetBinaryDir\plugins\$pluginSubdirName\$($_.Name)" } } else { Write-Verbose " Skipping plugins directory '$pluginSubdirName': doesn't exist" } } # We detect Qt modules in use via the DLLs themselves. See qtModuleEntries in Qt to find the mapping. if ($targetBinaryName -match "Qt5Cored?.dll") { if (!(Test-Path "$targetBinaryDir\qt.conf")) { "[Paths]" | Out-File -encoding ascii "$targetBinaryDir\qt.conf" } } elseif ($targetBinaryName -match "Qt5Guid?.dll") { Write-Verbose " Deploying platforms" New-Item "$targetBinaryDir\plugins\platforms" -ItemType Directory -ErrorAction SilentlyContinue | Out-Null Get-ChildItem "$QtPluginsDir\platforms\qwindows*.dll" | % { deployBinary "$targetBinaryDir\plugins\platforms" "$QtPluginsDir\platforms" $_.Name } deployPlugins "accessible" deployPlugins "imageformats" deployPlugins "iconengines" deployPlugins "platforminputcontexts" deployPlugins "styles" } elseif ($targetBinaryName -match "Qt5Networkd?.dll") { deployPlugins "bearer" if (Test-Path "$binDir\libcrypto-*-x64.dll") { deployBinary "$targetBinaryDir" "$binDir" "libcrypto-*-x64.dll" deployBinary "$targetBinaryDir" "$binDir" "libssl-*-x64.dll" } if (Test-Path "$binDir\libcrypto-*.dll") { deployBinary "$targetBinaryDir" "$binDir" "libcrypto-*.dll" deployBinary "$targetBinaryDir" "$binDir" "libssl-*.dll" } } elseif ($targetBinaryName -match "Qt5Sqld?.dll") { deployPlugins "sqldrivers" } elseif ($targetBinaryName -match "Qt5Multimediad?.dll") { deployPlugins "audio" deployPlugins "mediaservice" deployPlugins "playlistformats" } elseif ($targetBinaryName -match "Qt5PrintSupportd?.dll") { deployPlugins "printsupport" } elseif ($targetBinaryName -match "Qt5Qmld?.dll") { if(!(Test-Path "$targetBinaryDir\qml")) { if (Test-Path "$binDir\..\qml") { cp -r "$binDir\..\qml" $targetBinaryDir } elseif (Test-Path "$binDir\..\..\qml") { cp -r "$binDir\..\..\qml" $targetBinaryDir } else { throw "FAILED" } } foreach ($a in @("Qt5Quick", "Qt5Quickd", "Qt5QmlModels", "Qt5QmlModelsd", "Qt5QuickControls2", "Qt5QuickControls2d", "Qt5QuickShapes", "Qt5QuickShapesd", "Qt5QuickTemplates2", "Qt5QuickTemplates2d", "Qt5QmlWorkerScript", "Qt5QmlWorkerScriptd", "Qt5QuickParticles", "Qt5QuickParticlesd", "Qt5QuickWidgets", "Qt5QuickWidgetsd")) { if (Test-Path "$binDir\$a.dll") { deployBinary "$targetBinaryDir" "$binDir" "$a.dll" } } deployPlugins "scenegraph" deployPlugins "qmltooling" } elseif ($targetBinaryName -match "Qt5Quickd?.dll") { foreach ($a in @("Qt5QuickControls2", "Qt5QuickControls2d", "Qt5QuickShapes", "Qt5QuickShapesd", "Qt5QuickTemplates2", "Qt5QuickTemplates2d", "Qt5QmlWorkerScript", "Qt5QmlWorkerScriptd", "Qt5QuickParticles", "Qt5QuickParticlesd", "Qt5QuickWidgets", "Qt5QuickWidgetsd")) { if (Test-Path "$binDir\$a.dll") { deployBinary "$targetBinaryDir" "$binDir" "$a.dll" } } deployPlugins "scenegraph" deployPlugins "qmltooling" } elseif ($targetBinaryName -like "Qt5Declarative*.dll") { deployPlugins "qml1tooling" } elseif ($targetBinaryName -like "Qt5Positioning*.dll") { deployPlugins "position" } elseif ($targetBinaryName -like "Qt5Location*.dll") { deployPlugins "geoservices" } elseif ($targetBinaryName -like "Qt5Sensors*.dll") { deployPlugins "sensors" deployPlugins "sensorgestures" } elseif ($targetBinaryName -like "Qt5WebEngineCore*.dll") { deployPlugins "qtwebengine" } elseif ($targetBinaryName -like "Qt53DRenderer*.dll") { deployPlugins "sceneparsers" } elseif ($targetBinaryName -like "Qt5TextToSpeech*.dll") { deployPlugins "texttospeech" } elseif ($targetBinaryName -like "Qt5SerialBus*.dll") { deployPlugins "canbus" } } ================================================ FILE: ports/qt5-base/vcpkg.json ================================================ { "name": "qt5-base", "version": "5.15.18", "port-version": 2, "description": "Qt Base provides the basic non-GUI functionality required by all Qt applications.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "at-spi2-core", "platform": "linux" }, { "name": "dbus", "platform": "linux" }, "double-conversion", "egl-registry", { "name": "fontconfig", "platform": "!windows" }, { "name": "freetype", "default-features": false, "features": [ "png", "zlib" ] }, { "name": "harfbuzz", "default-features": false, "features": [ "freetype" ] }, "libjpeg-turbo", "libpng", "md4c", { "name": "opengl", "platform": "!windows" }, { "name": "pcre2", "default-features": false }, { "name": "qt5-base", "host": true, "default-features": false }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ], "default-features": [ "openssl" ], "features": { "cups": { "description": "Provides support for the Common Unix Printing System", "supports": "linux | osx" }, "icu": { "description": "Enable ICU support", "dependencies": [ { "name": "icu", "platform": "!uwp" } ] }, "latest": { "description": "(deprecated)" }, "mysqlplugin": { "description": "Build the sql plugin for connecting to mysql databases", "dependencies": [ "libmysql", { "name": "qt5-base", "default-features": false, "features": [ "zstd" ] } ] }, "openssl": { "description": "Build with OpenSSL support", "dependencies": [ "openssl" ] }, "postgresqlplugin": { "description": "Build the sql plugin for connecting to postgresql databases", "dependencies": [ "libpq" ] }, "sqlite3plugin": { "description": "Build the sql plugin for connecting to sqlite3 databases", "dependencies": [ { "name": "sqlite3", "default-features": false } ] }, "vulkan": { "description": "Enable Vulkan support in QtGui", "dependencies": [ "vulkan" ] }, "zstd": { "description": "Zstandard support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/qt5-charts/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-charts/vcpkg.json ================================================ { "name": "qt5-charts", "version": "5.15.18", "description": "The Qt Charts module provides a set of easy to use chart components.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-multimedia" ] } ================================================ FILE: ports/qt5-connectivity/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-connectivity/vcpkg.json ================================================ { "name": "qt5-connectivity", "version": "5.15.18", "description": "The Qt Connectivity module provides access to Bluetooth and NFC hardware.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-datavis3d/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-datavis3d/vcpkg.json ================================================ { "name": "qt5-datavis3d", "version": "5.15.18", "description": "The Qt Data Visualization module provides a way to visualize data in 3D as bar, scatter, and surface graphs.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-multimedia" ] } ================================================ FILE: ports/qt5-declarative/linker-oom.diff ================================================ diff --git a/tools/tools.pro b/tools/tools.pro index 2e04f933..319faeae 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -1,6 +1,9 @@ TEMPLATE = subdirs QT_FOR_CONFIG += qml-private +# Reduce memory pressure during linking +CONFIG += ordered + qtConfig(qml-devtools) { SUBDIRS += \ qmllint \ ================================================ FILE: ports/qt5-declarative/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") if("d3d12" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -d3d12) else() list(APPEND CORE_OPTIONS -no-d3d12) endif() qt_submodule_installation( OUT_SOURCE_PATH SOURCE_PATH PATCHES linker-oom.diff BUILD_OPTIONS ${CORE_OPTIONS} ) if(NOT QT_UPDATE_VERSION) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/qt5/QtQml/${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}/QtQml/private/qqmljsparser_p.h" "${SOURCE_PATH}" "") endif() ================================================ FILE: ports/qt5-declarative/vcpkg.json ================================================ { "name": "qt5-declarative", "version": "5.15.18", "port-version": 1, "description": "Qt Declarative (Quick 2)", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-imageformats", "qt5-svg" ], "default-features": [ "platform-default-features" ], "features": { "d3d12": { "description": "Provides a Direct3D 12 backend for the scenegraph.", "supports": "windows & !mingw" }, "platform-default-features": { "description": "Enable platform-dependent default features", "dependencies": [ { "name": "qt5-declarative", "features": [ "d3d12" ], "platform": "windows & !mingw" } ] } } } ================================================ FILE: ports/qt5-doc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_BUILD_TYPE release) include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() if(NOT QT_UPDATE_VERSION) vcpkg_build_qmake(TARGETS docs SKIP_MAKEFILES BUILD_LOGNAME docs) qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/") vcpkg_build_qmake(TARGETS install_docs SKIP_MAKEFILES BUILD_LOGNAME install-docs) if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/share/qt5/doc/qtdoc.qch") message(FATAL_ERROR "Failed to install qtdoc.qch.") endif() endif() ================================================ FILE: ports/qt5-doc/vcpkg.json ================================================ { "name": "qt5-doc", "version": "5.15.18", "description": "The Qt documentation.", "license": null, "supports": "native", "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-quickcontrols2", { "name": "qt5-tools", "default-features": false, "features": [ "qdoc" ] } ] } ================================================ FILE: ports/qt5-gamepad/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-gamepad/vcpkg.json ================================================ { "name": "qt5-gamepad", "version": "5.15.18", "description": "Qt Gamepad is an add-on library that enables Qt applications to support the use of gamepad hardware and in some cases remote control equipment.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-graphicaleffects/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-graphicaleffects/vcpkg.json ================================================ { "name": "qt5-graphicaleffects", "version": "5.15.18", "description": "The Qt Graphical Effects module provides a set of QML types for adding visually impressive and configurable effects to user interfaces.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-imageformats/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") list(APPEND CORE_OPTIONS -no-mng # must be explicitly disabled to not automatically pick up mng -verbose ) if("jasper" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -jasper) x_vcpkg_pkgconfig_get_modules(PREFIX jasper MODULES jasper LIBS) file(READ "${CURRENT_INSTALLED_DIR}/share/jasper/vcpkg_abi_info.txt" jasper_abi_info) if(jasper_abi_info MATCHES "(^|;)opengl(;|$)") find_library(FREEGLUT_RELEASE NAMES freeglut glut PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) find_library(FREEGLUT_DEBUG NAMES freeglutd freeglut glutd glut PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH) endif() list(APPEND OPT_REL "JASPER_LIBS=${jasper_LIBS_RELEASE} ${FREEGLUT_RELEASE}") list(APPEND OPT_DBG "JASPER_LIBS=${jasper_LIBS_DEBUG} ${FREEGLUT_DEBUG}") else() list(APPEND CORE_OPTIONS -no-jasper) endif() if("tiff" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -system-tiff) x_vcpkg_pkgconfig_get_modules(PREFIX tiff MODULES libtiff-4 LIBS) list(APPEND OPT_REL "TIFF_LIBS=${tiff_LIBS_RELEASE}") list(APPEND OPT_DBG "TIFF_LIBS=${tiff_LIBS_DEBUG}") else() list(APPEND CORE_OPTIONS -no-tiff) endif() if("webp" IN_LIST FEATURES) list(APPEND CORE_OPTIONS -system-webp) x_vcpkg_pkgconfig_get_modules(PREFIX webp MODULES libwebp libwebpdemux libwebpmux libwebpdecoder LIBS) list(APPEND CORE_OPTIONS "WEBP_INCDIR=${CURRENT_INSTALLED_DIR}/include") # Requires libwebp[all] # This will still fail if LIBWEBP is installed with all available features due to the missing additional dependencies list(APPEND OPT_REL "WEBP_LIBS=${webp_LIBS_RELEASE}") list(APPEND OPT_DBG "WEBP_LIBS=${webp_LIBS_DEBUG}") else() list(APPEND CORE_OPTIONS -no-webp) endif() qt_submodule_installation(BUILD_OPTIONS ${CORE_OPTIONS} BUILD_OPTIONS_RELEASE ${OPT_REL} BUILD_OPTIONS_DEBUG ${OPT_DBG}) ================================================ FILE: ports/qt5-imageformats/vcpkg.json ================================================ { "name": "qt5-imageformats", "version": "5.15.18", "description": "The Qt Image Formats add-on module provides optional support for other image file formats.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ], "default-features": [ "tiff", "webp" ], "features": { "jasper": { "description": "Enable JPEG-2000 support using the JasPer library", "dependencies": [ { "name": "jasper", "default-features": false }, { "name": "vcpkg-pkgconfig-get-modules", "host": true } ] }, "tiff": { "description": "Enable TIFF support", "dependencies": [ { "name": "tiff", "default-features": false }, { "name": "vcpkg-pkgconfig-get-modules", "host": true } ] }, "webp": { "description": "Enable WEBP support", "dependencies": [ "libwebp", { "name": "vcpkg-pkgconfig-get-modules", "host": true } ] } } } ================================================ FILE: ports/qt5-location/add-float-cast.diff ================================================ diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/layout/symbol_projection.cpp b/src/3rdparty/mapbox-gl-native/src/mbgl/layout/symbol_projection.cpp index ef669c6..6c6a35e 100644 --- a/src/3rdparty/mapbox-gl-native/src/mbgl/layout/symbol_projection.cpp +++ b/src/3rdparty/mapbox-gl-native/src/mbgl/layout/symbol_projection.cpp @@ -95,7 +95,7 @@ namespace mbgl { PointAndCameraDistance project(const Point& point, const mat4& matrix) { vec4 pos = {{ point.x, point.y, 0, 1 }}; matrix::transformMat4(pos, pos, matrix); - return {{ static_cast(pos[0] / pos[3]), static_cast(pos[1] / pos[3]) }, pos[3] }; + return {{ static_cast(pos[0] / pos[3]), static_cast(pos[1] / pos[3]) }, static_cast(pos[3]) }; } float evaluateSizeForFeature(const ZoomEvaluatedSize& zoomEvaluatedSize, const PlacedSymbol& placedSymbol) { ================================================ FILE: ports/qt5-location/add-stdint.diff ================================================ diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_backend.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_backend.hpp index 1d5f4e8..fdfec87 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_backend.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_backend.hpp @@ -7,6 +7,7 @@ #include #include +#include namespace mbgl { diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_observer.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_observer.hpp index 551b5c8..e169aa3 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_observer.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/renderer/renderer_observer.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include namespace mbgl { diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp index a28c59a..8186483 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/util/geometry.hpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace mbgl { diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/util/image.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/util/image.hpp index 4887058..e818922 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/util/image.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/util/image.hpp @@ -8,6 +8,7 @@ #include #include #include +#include namespace mbgl { diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/util/size.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/util/size.hpp index 12c0ad0..f4cccb8 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/util/size.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/util/size.hpp @@ -2,6 +2,7 @@ #include #include +#include namespace mbgl { diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp index 13498cc..6b67df2 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/util/string.hpp @@ -5,6 +5,7 @@ #include #include #include +#include // Polyfill needed by Qt when building for Android with GCC #if defined(__ANDROID__) && defined(__GLIBCXX__) diff --git a/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp b/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp index bc959c9..c53dca3 100644 --- a/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp +++ b/src/3rdparty/mapbox-gl-native/src/mbgl/gl/stencil_mode.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include namespace mbgl { namespace gl { ================================================ FILE: ports/qt5-location/disable-enum-warning.patch ================================================ diff --git a/src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro b/src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro index ed974db..f17d45a 100644 --- a/src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro +++ b/src/3rdparty/mapbox-gl-native/mapbox-gl-native.pro @@ -34,6 +34,9 @@ android|gcc { } darwin { + QMAKE_CXXFLAGS += \ + -Wno-enum-constexpr-conversion + LIBS += \ -framework Foundation } ================================================ FILE: ports/qt5-location/missing-include.patch ================================================ diff --git a/src/3rdparty/mapbox-gl-native/include/mbgl/util/unique_any.hpp b/src/3rdparty/mapbox-gl-native/include/mbgl/util/unique_any.hpp index c7dc8b3..0fb25b8 100644 --- a/src/3rdparty/mapbox-gl-native/include/mbgl/util/unique_any.hpp +++ b/src/3rdparty/mapbox-gl-native/include/mbgl/util/unique_any.hpp @@ -3,6 +3,7 @@ #include #include #include +#include namespace mbgl { namespace util { ================================================ FILE: ports/qt5-location/portfile.cmake ================================================ message(STATUS "${PORT} has a spurious failure in which it is unable to create a parent directory! Just retry.") include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation(PATCHES missing-include.patch disable-enum-warning.patch add-stdint.diff add-float-cast.diff) ================================================ FILE: ports/qt5-location/vcpkg.json ================================================ { "name": "qt5-location", "version": "5.15.18", "description": "The Qt Location API helps you create viable mapping solutions using the data available from some of the popular location services.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-quickcontrols", "qt5-quickcontrols2", "qt5-serialport" ] } ================================================ FILE: ports/qt5-macextras/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-macextras/vcpkg.json ================================================ { "name": "qt5-macextras", "version": "5.15.18", "description": "Qt Mac Extras provide classes and functions that enable you to use miscellaneous functionality specific to the macOS and iOS operating systems.", "license": null, "supports": "osx", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-mqtt/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") # No binary package for this port. # qt_submodule_installation() if(QT_UPDATE_VERSION) set(VCPKG_USE_HEAD_VERSION ON) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qt/qtmqtt REF 0b4955ce8b692409c3deded57892eb61e75be428 HEAD_REF "v${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}" SHA512 4a16c277f338874c9606254f34c74c434a2f4df1767bd465822d1388f325de8c788d8ed184e1c340e092a358add6655e8d20d59a027f111d1882fcae6433320e ) if(QT_UPDATE_VERSION) message(STATUS "New qtmqtt ref: ${VCPKG_HEAD_VERSION}") endif() # qt module builds from a git repository require a .git entry to invoke syncqt file(WRITE "${SOURCE_PATH}/.git" "repocontent") # syncqt is a perl script vcpkg_find_acquire_program(PERL) get_filename_component(perl_exe_path "${PERL}" DIRECTORY) vcpkg_add_to_path("${perl_exe_path}") qt_build_submodule("${SOURCE_PATH}") qt_install_copyright("${SOURCE_PATH}") ================================================ FILE: ports/qt5-mqtt/vcpkg.json ================================================ { "name": "qt5-mqtt", "version": "5.15.17", "description": "Qt MQTT enables you to create applications and devices that can communicate over the MQ telemetry transport (MQTT) protocol.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-multimedia/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-multimedia/vcpkg.json ================================================ { "name": "qt5-multimedia", "version": "5.15.18", "description": "Qt Multimedia is an essential module that provides a rich set of QML types and C++ classes to handle multimedia content. It also provides necessary APIs to access the camera and radio functionality.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-networkauth/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-networkauth/vcpkg.json ================================================ { "name": "qt5-networkauth", "version": "5.15.18", "description": "Qt Network Authorization provides a set of APIs that enable Qt applications to obtain limited access to online accounts and HTTP services without exposing users' passwords.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-purchasing/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-purchasing/vcpkg.json ================================================ { "name": "qt5-purchasing", "version": "5.15.18", "description": "Qt Purchasing is an add-on library that enables Qt applications to support in-app purchases. It is a cross-platform library that currently supports purchases made to the Mac App Store on OS X, App Store on iOS, and Google Play on Android.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-quick3d/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-quick3d/vcpkg.json ================================================ { "name": "qt5-quick3d", "version": "5.15.16", "description": "Qt Quick 3D provides a high-level API for creating 3D content and 3D user interfaces based on Qt Quick.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-imageformats" ] } ================================================ FILE: ports/qt5-quickcontrols/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-quickcontrols/vcpkg.json ================================================ { "name": "qt5-quickcontrols", "version": "5.15.18", "description": "The Qt Quick Controls module provides a set of controls that can be used to build complete interfaces in Qt Quick.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-graphicaleffects" ] } ================================================ FILE: ports/qt5-quickcontrols2/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-quickcontrols2/vcpkg.json ================================================ { "name": "qt5-quickcontrols2", "version": "5.15.18", "description": "Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-imageformats" ] } ================================================ FILE: ports/qt5-quicktimeline/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") qt_submodule_installation() ================================================ FILE: ports/qt5-quicktimeline/vcpkg.json ================================================ { "name": "qt5-quicktimeline", "version": "5.15.16", "description": "The Qt Quick Timeline module enables keyframe-based animations and parameterization.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-imageformats" ] } ================================================ FILE: ports/qt5-remoteobjects/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-remoteobjects/vcpkg.json ================================================ { "name": "qt5-remoteobjects", "version": "5.15.18", "description": "Qt Remote Objects (QtRO) is an Inter-Process Communication (IPC) module developed for Qt. This module extends Qt's existing functionalities to enable information exchange between processes or computers, easily.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-script/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-script/vcpkg.json ================================================ { "name": "qt5-script", "version": "5.15.18", "description": "Qt Script provides support for application scripting with ECMAScript.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-tools" ] } ================================================ FILE: ports/qt5-scxml/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-scxml/vcpkg.json ================================================ { "name": "qt5-scxml", "version": "5.15.18", "description": "The Qt SCXML module provides classes for embedding state machines created from State Chart XML (SCXML) files in Qt applications.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-sensors/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-sensors/vcpkg.json ================================================ { "name": "qt5-sensors", "version": "5.15.18", "description": "The Qt Sensors API provides access to sensor hardware via QML and C++ interfaces. The Qt Sensors API also provides a motion gesture recognition API for devices.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-serialbus/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-serialbus/vcpkg.json ================================================ { "name": "qt5-serialbus", "version": "5.15.18", "description": "The Qt Serial Bus API provides classes and functions to access the various industrial serial buses and protocols, such as CAN, ModBus, and others.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-serialport" ] } ================================================ FILE: ports/qt5-serialport/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-serialport/vcpkg.json ================================================ { "name": "qt5-serialport", "version": "5.15.18", "description": "Qt5 Serial Port - provides access to hardware and virtual serial ports", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-speech/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-speech/vcpkg.json ================================================ { "name": "qt5-speech", "version": "5.15.18", "description": "The Qt Speech module enables a Qt application to support accessibility features such as text-to-speech, which is useful for end-users who are visually challenged or cannot access the application for whatever reason.", "license": null, "dependencies": [ { "name": "atlmfc", "platform": "windows" }, { "name": "qt5-base", "default-features": false }, "qt5-declarative", "qt5-multimedia" ] } ================================================ FILE: ports/qt5-svg/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation( PATCHES "static_svg_link_fix.patch" ) ================================================ FILE: ports/qt5-svg/static_svg_link_fix.patch ================================================ diff --git a/src/plugins/iconengines/svgiconengine/svgiconengine.pro b/src/plugins/iconengines/svgiconengine/svgiconengine.pro index bfc739fa8..c0df08194 100644 --- a/src/plugins/iconengines/svgiconengine/svgiconengine.pro +++ b/src/plugins/iconengines/svgiconengine/svgiconengine.pro @@ -8,6 +8,6 @@ OTHER_FILES += qsvgiconengine-nocompress.json QT += svg core-private gui-private PLUGIN_TYPE = iconengines -PLUGIN_EXTENDS = svg +PLUGIN_EXTENDS = gui PLUGIN_CLASS_NAME = QSvgIconPlugin load(qt_plugin) diff --git a/src/plugins/imageformats/svg/svg.pro b/src/plugins/imageformats/svg/svg.pro index 9db6a9ab0..dcfc4b555 100644 --- a/src/plugins/imageformats/svg/svg.pro +++ b/src/plugins/imageformats/svg/svg.pro @@ -6,6 +6,6 @@ SOURCES += main.cpp \ QT += svg PLUGIN_TYPE = imageformats -PLUGIN_EXTENDS = svg +PLUGIN_EXTENDS = gui PLUGIN_CLASS_NAME = QSvgPlugin load(qt_plugin) ================================================ FILE: ports/qt5-svg/vcpkg.json ================================================ { "name": "qt5-svg", "version": "5.15.18", "description": "Qt SVG provides classes for rendering and displaying SVG drawings in widgets and on other paint devices.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-tools/fix-pkgconfig-qt5uiplugin-not-found.patch ================================================ diff --git a/src/designer/src/lib/lib.pro b/src/designer/src/lib/lib.pro index de0dc73..eef68be 100644 --- a/src/designer/src/lib/lib.pro +++ b/src/designer/src/lib/lib.pro @@ -1,7 +1,8 @@ TARGET = QtDesigner MODULE = designer -QT = core-private gui-private widgets-private xml uiplugin +QT = core-private gui-private widgets-private xml +QT_PRIVATE += uiplugin DEFINES += \ QDESIGNER_SDK_LIBRARY \ ================================================ FILE: ports/qt5-tools/libclang.patch ================================================ diff --git a/src/qdoc/configure.pri b/src/qdoc/configure.pri index 4f3d776..547d6a6 100644 --- a/src/qdoc/configure.pri +++ b/src/qdoc/configure.pri @@ -87,10 +87,7 @@ defineTest(qtConfTest_libclang) { } LLVM_INSTALL_DIR = $$clean_path($$LLVM_INSTALL_DIR) - contains(QMAKE_HOST.arch, x86_64): \ - clangInstallDir = $$replace(LLVM_INSTALL_DIR, _ARCH_, 64) - else: \ - clangInstallDir = $$replace(LLVM_INSTALL_DIR, _ARCH_, 32) + clangInstallDir = $$LLVM_INSTALL_DIR isEmpty(LLVM_INSTALL_DIR) { win32 { return(false) @@ -113,7 +110,13 @@ defineTest(qtConfTest_libclang) { } else { CLANG_LIBDIR = $$clangInstallDir/lib CLANG_INCLUDEPATH = $$clangInstallDir/include + exists($$clangInstallDir/tools/llvm): { + output = $$system("$$clangInstallDir/tools/llvm/llvm-config --version") + CLANG_VERSION = $$extractVersion($$output) + } + else: { CLANG_VERSION = $$findLLVMVersionFromLibDir($$CLANG_LIBDIR) + } } isEmpty(CLANG_VERSION) { !isEmpty(LLVM_INSTALL_DIR): \ ================================================ FILE: ports/qt5-tools/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) vcpkg_list(SET OPTIONS) if("qdoc" IN_LIST FEATURES) set(ENV{LLVM_INSTALL_DIR} "${CURRENT_INSTALLED_DIR}") vcpkg_list(APPEND OPTIONS -feature-qdoc) else() vcpkg_list(APPEND OPTIONS -no-feature-qdoc) endif() qt_submodule_installation( PATCHES fix-pkgconfig-qt5uiplugin-not-found.patch libclang.patch BUILD_OPTIONS ${OPTIONS} ) if(EXISTS "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") file(INSTALL "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/plugins/platforms") endif() ================================================ FILE: ports/qt5-tools/vcpkg.json ================================================ { "name": "qt5-tools", "version": "5.15.18", "description": "A collection of tools and utilities that come with the Qt framework to assist developers in the creation, management, and deployment of Qt applications.", "license": null, "dependencies": [ { "name": "qt5-activeqt", "platform": "windows" }, { "name": "qt5-base", "default-features": false, "features": [ "sqlite3plugin" ] }, "qt5-declarative" ], "features": { "qdoc": { "description": "Build the qdoc tool.", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang" ] } ] } } } ================================================ FILE: ports/qt5-translations/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-translations/vcpkg.json ================================================ { "name": "qt5-translations", "version": "5.15.18", "description": "Qt translations.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-tools" ] } ================================================ FILE: ports/qt5-virtualkeyboard/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-virtualkeyboard/vcpkg.json ================================================ { "name": "qt5-virtualkeyboard", "version": "5.15.18", "description": "The Qt Virtual Keyboard project provides an input framework and reference keyboard frontend for Qt 5 on Linux Desktop/X11, Windows Desktop, and Boot2Qt targets.", "license": null, "dependencies": [ "qt5-multimedia", "qt5-quickcontrols", "qt5-svg" ] } ================================================ FILE: ports/qt5-wayland/portfile.cmake ================================================ #Will not build on Windows! message(WARNING "This port is just a placeholder until the required wayland libraries have been added into VCPKG! \ As such the build will most likely fail until your system has the required wayland libraries installed (untested)") message(WARNING "qtwayland requires libwayland-dev from your system package manager. You can install it with sudo apt install libwayland-dev on Ubuntu systems.") include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-wayland/vcpkg.json ================================================ { "name": "qt5-wayland", "version": "5.15.18", "description": "QtWayland is a Qt 5 module that wraps the functionality of Wayland.", "license": null, "supports": "linux", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-webchannel/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-webchannel/vcpkg.json ================================================ { "name": "qt5-webchannel", "version": "5.15.18", "description": "Qt WebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application).", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-webengine/0001-Fix-jumbo-build-error-due-to-ResolveColor-redefiniti.patch ================================================ diff --git a/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.cc b/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.cc index 99ba54e790c..abf8467912d 100644 --- a/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.cc +++ b/src/3rdparty/chromium/third_party/blink/renderer/core/layout/svg/layout_svg_resource_paint_server.cc @@ -94,7 +94,7 @@ void SVGPaintServer::PrependTransform(const AffineTransform& transform) { transform_ = transform * transform_; } -static base::Optional ResolveColor(const ComputedStyle& style, +static base::Optional ResolveColorSvgPaintServer(const ComputedStyle& style, const SVGPaint& paint, const SVGPaint& visited_paint) { if (!paint.HasColor()) @@ -122,7 +122,7 @@ static SVGPaintDescription RequestPaint(const LayoutObject& object, const SVGPaint& visited_paint = apply_to_fill ? svg_style.InternalVisitedFillPaint() : svg_style.InternalVisitedStrokePaint(); - base::Optional color = ResolveColor(style, paint, visited_paint); + base::Optional color = ResolveColorSvgPaintServer(style, paint, visited_paint); if (paint.HasUrl()) { LayoutSVGResourcePaintServer* uri_resource = nullptr; -- 2.39.3 ================================================ FILE: ports/qt5-webengine/build_1.patch ================================================ diff --git a/src/3rdparty/chromium/third_party/angle/BUILD.gn b/src/3rdparty/chromium/third_party/angle/BUILD.gn index fb57176..fa84cc5 100644 --- a/src/3rdparty/chromium/third_party/angle/BUILD.gn +++ b/src/3rdparty/chromium/third_party/angle/BUILD.gn @@ -131,7 +131,6 @@ config("extra_warnings") { # Enable more default warnings on Windows. if (is_win) { cflags += [ - "/we4244", # Conversion: possible loss of data. "/we4312", # Conversion: greater size. "/we4456", # Variable shadowing. "/we4458", # declaration hides class member. ================================================ FILE: ports/qt5-webengine/common.pri.patch ================================================ diff --git a/src/buildtools/config/common.pri b/src/buildtools/config/common.pri index cf990c7..5af9edf 100644 --- a/src/buildtools/config/common.pri +++ b/src/buildtools/config/common.pri @@ -26,6 +26,7 @@ gn_args += \ skia_use_dawn=false \ toolkit_views=false \ treat_warnings_as_errors=false \ + fatal_linker_warnings=false \ use_allocator_shim=false \ use_allocator=\"none\" \ use_custom_libcxx=false \ @@ -56,7 +57,7 @@ greaterThan(QMAKE_JUMBO_MERGE_LIMIT,0) { } precompile_header { - gn_args += enable_precompiled_headers=true + gn_args += enable_precompiled_headers=false } else { gn_args += enable_precompiled_headers=false } ================================================ FILE: ports/qt5-webengine/fix-spellcheck-buildflags.patch ================================================ diff --git a/src/3rdparty/chromium/content/browser/BUILD.gn b/src/3rdparty/chromium/content/browser/BUILD.gn index 1466f33d4..3fc848a56 100644 --- a/src/3rdparty/chromium/content/browser/BUILD.gn +++ b/src/3rdparty/chromium/content/browser/BUILD.gn @@ -40,6 +40,7 @@ jumbo_static_library("devtools_protocol") { "//content/browser/devtools:protocol_sources", "//content/common:buildflags", "//third_party/inspector_protocol:crdtp", + "//components/spellcheck:buildflags", ] sources = [ ================================================ FILE: ports/qt5-webengine/gl.patch ================================================ diff --git a/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_gl.h b/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_gl.h index d54583e8b..1921185f8 100644 --- a/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_gl.h +++ b/src/3rdparty/chromium/ui/gl/gl_bindings_autogen_gl.h @@ -16,7 +16,7 @@ namespace gl { class GLContext; - +typedef void *GLeglImageOES; typedef void(GL_BINDING_CALL* glActiveShaderProgramProc)(GLuint pipeline, GLuint program); typedef void(GL_BINDING_CALL* glActiveTextureProc)(GLenum texture); ================================================ FILE: ports/qt5-webengine/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length) if(buildtrees_path_length GREATER 35 AND CMAKE_HOST_WIN32) vcpkg_buildpath_length_warning(35) message(WARNING "The ${PORT} source was will be extracted to ${CURRENT_BUILDTREES_DIR} , which has more then 35 characters in length.") message(FATAL_ERROR "terminating due to ${CURRENT_BUILDTREES_DIR} being too long.") endif() #set(VCPKG_BUILD_TYPE release) #You probably want to set this to reduce build type and space requirements message(STATUS "${PORT} requires a lot of free disk space (>100GB), ram (>8 GB) and time (>2h per configuration) to be successfully build.\n\ -- As such ${PORT} is currently experimental.\n\ -- If ${PORT} fails post build validation please try manually reducing VCPKG_MAX_CONCURRENCY and open up an issue if it still cannot build. \n\ -- If it fails due to post validation the successfully installed files can be found in ${CURRENT_PACKAGES_DIR} \n\ -- and just need to be copied into ${CURRENT_INSTALLED_DIR}") if(NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "If ${PORT} directly fails ${PORT} might require additional prerequisites on Linux and OSX. Please check the configure logs.\n") endif() include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(GPERF) vcpkg_find_acquire_program(PYTHON3) vcpkg_find_acquire_program(NINJA) set(NODEJS "${CURRENT_HOST_INSTALLED_DIR}/tools/node/node${VCPKG_HOST_EXECUTABLE_SUFFIX}") get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY ) get_filename_component(BISON_DIR "${BISON}" DIRECTORY ) get_filename_component(PYTHON2_DIR "${PYTHON3}" DIRECTORY ) get_filename_component(GPERF_DIR "${GPERF}" DIRECTORY ) get_filename_component(NINJA_DIR "${NINJA}" DIRECTORY ) get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY ) if(CMAKE_HOST_WIN32) # WIN32 HOST probably has win_flex and win_bison! if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${FLEX}" "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() if(NOT EXISTS "${BISON_DIR}/BISON${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${BISON}" "${BISON_DIR}/bison${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() endif() vcpkg_add_to_path(PREPEND "${FLEX_DIR}") vcpkg_add_to_path(PREPEND "${BISON_DIR}") vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}") vcpkg_add_to_path(PREPEND "${GPERF_DIR}") vcpkg_add_to_path(PREPEND "${NINJA_DIR}") vcpkg_add_to_path(PREPEND "${NODEJS_DIR}") vcpkg_execute_in_download_mode( COMMAND "${NINJA}" --version OUTPUT_VARIABLE ninja_version OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" ) if(ninja_version VERSION_GREATER_EQUAL "1.12.1") message(WARNING "Found ninja version ${ninja_version} which may fail to build ${PORT}." "You can supply a different filepath using per-port customization of CMake variable NINJA." ) endif() set(PATCHES common.pri.patch gl.patch build_1.patch workaround-protobuf-issue.patch 0001-Fix-jumbo-build-error-due-to-ResolveColor-redefiniti.patch fix-spellcheck-buildflags.patch ) set(OPTIONS "-webengine-python-version" "python3") if("proprietary-codecs" IN_LIST FEATURES) list(APPEND OPTIONS "-webengine-proprietary-codecs") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-system-webengine-webp" "-system-webengine-icu") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") vcpkg_host_path_list(PREPEND ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include") vcpkg_host_path_list(PREPEND ENV{C_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") vcpkg_host_path_list(PREPEND ENV{CPLUS_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") endif() qt_submodule_installation(PATCHES ${PATCHES} BUILD_OPTIONS ${OPTIONS}) ================================================ FILE: ports/qt5-webengine/vcpkg.json ================================================ { "name": "qt5-webengine", "version": "5.15.18", "description": "Qt WebEngine provides functionality for rendering regions of dynamic web content.", "license": null, "supports": "!static", "dependencies": [ { "name": "atl", "platform": "windows" }, { "name": "dbus", "platform": "!windows" }, { "name": "ffmpeg", "default-features": false, "platform": "!windows" }, { "name": "icu", "platform": "!windows" }, { "name": "qt5-base", "default-features": false, "features": [ "openssl" ] }, "qt5-declarative", "qt5-location", "qt5-quickcontrols", "qt5-quickcontrols2", "qt5-tools", "qt5-webchannel", { "name": "vcpkg-tool-nodejs", "host": true } ], "features": { "proprietary-codecs": { "description": "Enable proprietary-codecs in qtwebengine" } } } ================================================ FILE: ports/qt5-webengine/workaround-protobuf-issue.patch ================================================ diff --git a/src/core/core_chromium.pri b/src/core/core_chromium.pri index a846f2fbc..102ec9ace 100644 --- a/src/core/core_chromium.pri +++ b/src/core/core_chromium.pri @@ -32,6 +32,12 @@ isUniversal() { # whenever we are cross compiling. qtConfig(webengine-embedded-build): DEFINES += QTWEBENGINE_EMBEDDED_SWITCHES +# Prepend Chromium's protobuf and abseil-cpp include directories to the include paths +# to ensure we use chromiums own copies instead of vcpkg provided libraries. +# See https://github.com/microsoft/vcpkg/issues/12150 +CHROMIUM_SRC_DIR = $$QTWEBENGINE_ROOT/$$getChromiumSrcDir() +INCLUDEPATH = $$CHROMIUM_SRC_DIR/third_party/protobuf/src $$CHROMIUM_SRC_DIR/third_party/abseil-cpp $$INCLUDEPATH + INCLUDEPATH += $$PWD $$PWD/api clang_cl { ================================================ FILE: ports/qt5-webglplugin/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-webglplugin/vcpkg.json ================================================ { "name": "qt5-webglplugin", "version": "5.15.18", "description": "The Qt WebGL Plugin module enables Qt applications to be run in web browsers through WebGL streaming.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-websockets" ] } ================================================ FILE: ports/qt5-websockets/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-websockets/vcpkg.json ================================================ { "name": "qt5-websockets", "version": "5.15.18", "description": "The Qt WebSockets module provides C++ and QML interfaces that enable Qt applications to act as a server that can process WebSocket requests, or a client that can consume data received from the server, or both.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5-webview/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-webview/vcpkg.json ================================================ { "name": "qt5-webview", "version": "5.15.18", "description": "Qt WebView provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense.", "license": null, "dependencies": [ "qt5-declarative" ] } ================================================ FILE: ports/qt5-winextras/patches/require_quick.patch ================================================ diff --git a/src/src.pro b/src/src.pro index fceeb21..8a242d0 100644 --- a/src/src.pro +++ b/src/src.pro @@ -2,6 +2,7 @@ win32 { TEMPLATE = subdirs CONFIG += ordered SUBDIRS += winextras + SUBDIRS += imports } else { # fake project for creating the documentation TEMPLATE = aux ================================================ FILE: ports/qt5-winextras/patches/unrequire_quick.patch ================================================ diff --git a/src/src.pro b/src/src.pro index fceeb21..7e4835b 100644 --- a/src/src.pro +++ b/src/src.pro @@ -2,7 +2,6 @@ win32 { TEMPLATE = subdirs CONFIG += ordered SUBDIRS += winextras - qtHaveModule(quick): SUBDIRS += imports } else { # fake project for creating the documentation TEMPLATE = aux ================================================ FILE: ports/qt5-winextras/portfile.cmake ================================================ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake") vcpkg_list(SET _patches "patches/unrequire_quick.patch" ) if("declarative" IN_LIST FEATURES) list(APPEND _patches "patches/require_quick.patch" ) endif() qt_submodule_installation(PATCHES ${_patches}) ================================================ FILE: ports/qt5-winextras/vcpkg.json ================================================ { "name": "qt5-winextras", "version": "5.15.18", "description": "Qt Windows Extras provide classes and functions that enable you to use miscellaneous Windows-specific functions. For example, you can convert Qt objects to Windows object handles and manipulate DWM glass frames.", "license": null, "supports": "windows", "dependencies": [ "atlmfc", { "name": "qt5-base", "default-features": false } ], "features": { "declarative": { "description": "Build Qt Quick imports", "dependencies": [ "qt5-declarative" ] } } } ================================================ FILE: ports/qt5-x11extras/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() ================================================ FILE: ports/qt5-x11extras/vcpkg.json ================================================ { "name": "qt5-x11extras", "version": "5.15.18", "description": "Qt X11 Extras enables the Qt programmer to write applications for the Linux/X11 platform.", "license": null, "supports": "!windows", "dependencies": [ { "name": "qt5-base", "default-features": false } ] } ================================================ FILE: ports/qt5-xmlpatterns/portfile.cmake ================================================ include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake) qt_submodule_installation() if(EXISTS "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") file(INSTALL "${CURRENT_INSTALLED_DIR}/plugins/platforms/qminimal${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/plugins/platforms") endif() ================================================ FILE: ports/qt5-xmlpatterns/vcpkg.json ================================================ { "name": "qt5-xmlpatterns", "version": "5.15.18", "description": "The Qt XML Patterns module provides support for XPath, XQuery, XSLT, and XML Schema validation.", "license": null, "dependencies": [ { "name": "qt5-base", "default-features": false }, "qt5-declarative" ] } ================================================ FILE: ports/qt5compat/port.data.cmake ================================================ set(qt5compat_HASH "c55a8f2fe3fba9bec291f5278f6e6b43bf1cfa724737a48049f222f84f420a233bda5f392019846d9160fefbbe063598a10ec14b0fe58d08b3a05916696159b2") set(qt5compat_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qt5compat-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qt5compat-everywhere-src-6.10.2.tar.xz") set(qt5compat_FILENAME "qt5compat-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qt5compat/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "textcodec" FEATURE_textcodec "codecs" FEATURE_codecs "big-codecs" FEATURE_big_codecs "iconv" FEATURE_iconv "iconv" CMAKE_DISABLE_FIND_PACKAGE_ICU #"iconv" CMAKE_REQUIRE_FIND_PACKAGE_WrapIconv "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "iconv" CMAKE_DISABLE_FIND_PACKAGE_WrapIconv "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) #For iconv feature to work the following must be true: #CONDITION NOT FEATURE_icu AND FEATURE_textcodec AND NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND WrapIconv_FOUND if("iconv" IN_LIST FEATURES) include("${SCRIPT_PATH}/port_status.cmake") if(qtbase_with_icu) message(FATAL_ERROR "qtbase was built with ICU. The iconv feature is not compatible with ICU.") endif() endif() set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) #For my documentation: # find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) # find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Network Xml Gui Quick) ================================================ FILE: ports/qt5compat/vcpkg.json ================================================ { "name": "qt5compat", "version": "6.10.2", "description": "The Qt 5 Core Compat module contains the Qt 5 Core APIs that were removed in Qt 6. The module facilitates the transition to Qt 6.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false } ], "default-features": [ "big-codecs", "codecs", "qml", "textcodec" ], "features": { "big-codecs": { "description": "Supports big codecs, e.g. CJK.", "dependencies": [ { "name": "qt5compat", "default-features": false, "features": [ "textcodec" ] } ] }, "codecs": { "description": "Supports non-unicode text conversions.", "dependencies": [ { "name": "qt5compat", "default-features": false, "features": [ "textcodec" ] } ] }, "iconv": { "description": "Provides internationalization on Unix.", "dependencies": [ "libiconv", { "name": "qt5compat", "default-features": false, "features": [ "textcodec" ] } ] }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false } ] }, "textcodec": { "description": "Supports conversions between text encodings." } } } ================================================ FILE: ports/qtactiveqt/port.data.cmake ================================================ set(qtactiveqt_HASH "19b11c6bbc9b2f6c083b65d69d17016af7d4ca08222fc9b831f8dac7d67918921cf47b3bce77938c2bbe09f0f3fe0510ccbf9343246654f29791488545d3680c") set(qtactiveqt_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtactiveqt-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtactiveqt-everywhere-src-6.10.2.tar.xz") set(qtactiveqt_FILENAME "qtactiveqt-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtactiveqt/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(NO_BIN_AND_TOOLS FALSE) if(VCPKG_TARGET_ARCHITECTURE MATCHES "^arm" AND VCPKG_TARGET_IS_WINDOWS) set(NO_BIN_AND_TOOLS TRUE) endif() if(NOT NO_BIN_AND_TOOLS) set(TOOL_NAMES dumpcpp dumpdoc idc testcon ) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) if(NO_BIN_AND_TOOLS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/tools") endif() ================================================ FILE: ports/qtactiveqt/vcpkg.json ================================================ { "name": "qtactiveqt", "version": "6.10.2", "description": "ActiveQt", "homepage": "https://www.qt.io/", "license": null, "supports": "windows", "dependencies": [ { "name": "qtactiveqt", "host": true, "default-features": false }, { "$comment": "also requires printsupport!", "name": "qtbase", "default-features": false, "features": [ "gui", "widgets" ] } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtapplicationmanager/port.data.cmake ================================================ set(qtapplicationmanager_HASH "082ae8d24fc7ef6de283c9844ff994c89b7ef09bac8bca2e96e8d583435b6197b013807aec68280aaf81a9a52b516a48ce57860d45dcee881ac6d36852caa491") set(qtapplicationmanager_URL "https://github.com/qt/qtapplicationmanager/archive/v6.10.2.tar.gz") set(qtapplicationmanager_FILENAME "qt-qtapplicationmanager-v6.10.2.tar.gz") ================================================ FILE: ports/qtapplicationmanager/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES wrapper-fixes.patch ) set(TOOL_NAMES appman appman-controller appman-dumpqmltypes appman-packager appman-qmltestrunner appman-launcher-qml appman-package-server package-uploader ) # cf. src/common-lib/configure.cmake set(options "") if("installer" IN_LIST FEATURES) list(APPEND options -DINPUT_installer=yes -DINPUT_libarchive=system) else() list(APPEND options -DINPUT_installer=no -DINPUT_libarchive=no) endif() if("multi-process" IN_LIST FEATURES) list(APPEND options -DINPUT_force_mode=multi) else() list(APPEND options -DINPUT_force_mode=single) endif() if("package-server" IN_LIST FEATURES) list(APPEND options -DINPUT_package_server=yes) else() list(APPEND options -DINPUT_package_server=no) endif() qt_download_submodule(PATCHES ${${PORT}_PATCHES}) if(QT_UPDATE_VERSION) return() endif() file(REMOVE_RECURSE "${SOURCE_PATH}/src/3rdparty/libarchive" "${SOURCE_PATH}/src/3rdparty/libbacktrace" "${SOURCE_PATH}/src/3rdparty/libdbus" "${SOURCE_PATH}/src/3rdparty/libyaml" "${SOURCE_PATH}/src/3rdparty/stackwalker" ) set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins) set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml) qt_cmake_configure(OPTIONS ${options} -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON -DINPUT_libbacktrace=no -DINPUT_libdbus=no # disable bundled libdbus -DINPUT_libyaml=system -DINPUT_stackwalker=no TOOL_NAMES ${TOOL_NAMES} ) ### Fix debug post-build.bat generated by CMake. ### Maybe related: https://gitlab.kitware.com/cmake/cmake/-/issues/22124. if(VCPKG_TARGET_IS_WINDOWS) set(scriptfile "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/tools/dumpqmltypes/CMakeFiles/appman-dumpqmltypes.dir/post-build.bat") file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" CURRENT_INSTALLED_DIR_NATIVE) if(EXISTS "${scriptfile}") vcpkg_replace_string("${scriptfile}" "${CURRENT_INSTALLED_DIR_NATIVE}\\bin" "${CURRENT_INSTALLED_DIR_NATIVE}\\debug\\bin") endif() endif() vcpkg_cmake_install(ADD_BIN_TO_PATH) qt_fixup_and_cleanup(TOOL_NAMES ${TOOL_NAMES}) qt_install_copyright("${SOURCE_PATH}") ### ^^^ Using the more verbose code due to the post-build.bat script fixup. ### vvv Usual short version follows. #qt_install_submodule(PATCHES ${${PORT}_PATCHES} # TOOL_NAMES ${TOOL_NAMES} # CONFIGURE_OPTIONS # ... # CONFIGURE_OPTIONS_RELEASE # CONFIGURE_OPTIONS_DEBUG # ) file(GLOB_RECURSE qttools "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/*") if(NOT qttools AND VCPKG_CROSSCOMPILING) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CROSSCOMPILING AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/" "${CURRENT_PACKAGES_DIR}/tools/" ) endif() set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) #Debug tracing libraries are only build if CMAKE_BUILD_TYPE is equal to Debug ================================================ FILE: ports/qtapplicationmanager/vcpkg.json ================================================ { "name": "qtapplicationmanager", "version": "6.10.2", "description": "Qt component for application lifecycle management", "homepage": "https://www.qt.io/", "license": null, "supports": "android | ios | linux | osx | qnx | (windows & !uwp & (arm64 | x64))", "dependencies": [ "libyaml", { "name": "qtbase", "default-features": false, "features": [ "concurrent" ] }, { "name": "qtdeclarative", "default-features": false } ], "features": { "installer": { "description": "Enable the installer component.", "supports": "!ios", "dependencies": [ { "name": "libarchive", "default-features": false }, { "name": "qtapplicationmanager", "host": true, "default-features": false, "features": [ "installer" ] } ] }, "multi-process": { "description": "Support running system UI and applications in individual processes.", "supports": "linux & !static", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "dbus" ] }, "qtwayland" ] }, "package-server": { "description": "Build the package-server.", "dependencies": [ { "name": "qtapplicationmanager", "default-features": false, "features": [ "installer" ] }, { "name": "qtapplicationmanager", "host": true, "default-features": false, "features": [ "package-server" ] }, "qthttpserver" ] } } } ================================================ FILE: ports/qtapplicationmanager/wrapper-fixes.patch ================================================ diff --git a/cmake/FindWrapLibArchive.cmake b/cmake/FindWrapLibArchive.cmake index 58c13f4..7be4931 100644 --- a/cmake/FindWrapLibArchive.cmake +++ b/cmake/FindWrapLibArchive.cmake @@ -16,3 +16,24 @@ add_library(WrapLibArchive::WrapLibArchive INTERFACE IMPORTED) target_link_libraries(WrapLibArchive::WrapLibArchive INTERFACE ${LibArchive_LIBRARIES}) target_include_directories(WrapLibArchive::WrapLibArchive INTERFACE ${LibArchive_INCLUDE_DIRS}) set(WrapLibArchive_FOUND TRUE) +if(TARGET BZip2::BZip2) + set_property(TARGET BZip2::BZip2 PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET Threads::Threads) + set_property(TARGET Threads::Threads PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET OpenSSL::Crypto) + set_property(TARGET OpenSSL::Crypto PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET zstd::libzstd) + set_property(TARGET zstd::libzstd PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET zstd::libzstd_shared) + set_property(TARGET zstd::libzstd_shared PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET zstd::libzstd_static) + set_property(TARGET zstd::libzstd_static PROPERTY _qt_no_promote_global TRUE) +endif() +if(TARGET ZLIB::ZLIB) + set_property(TARGET ZLIB::ZLIB PROPERTY _qt_no_promote_global TRUE) +endif() diff --git a/cmake/FindWrapLibYaml.cmake b/cmake/FindWrapLibYaml.cmake index c2a2c62..80285b5 100644 --- a/cmake/FindWrapLibYaml.cmake +++ b/cmake/FindWrapLibYaml.cmake @@ -5,6 +5,14 @@ if(TARGET WrapLibYaml::WrapLibYaml) return() endif() +find_package(yaml CONFIG) +if(yaml_FOUND) + add_library(WrapLibYaml::WrapLibYaml INTERFACE IMPORTED) + target_link_libraries(WrapLibYaml::WrapLibYaml INTERFACE yaml) + set(WrapLibYaml_FOUND TRUE) + return() +endif() + find_package(PkgConfig) pkg_check_modules(pc_libyaml yaml-0.1>=0.2.2 IMPORTED_TARGET) ================================================ FILE: ports/qtbase/GLIB2-static.patch ================================================ diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake index 24a194c..91c8e41 100644 --- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake +++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindGLIB2.cmake @@ -95,6 +95,18 @@ find_library(GLIB2_GIO_LIBRARIES HINTS ${PC_GIO_LIBDIR} ) +pkg_check_modules(PC_GMODULE QUIET gmodule-2.0) + +find_path(GLIB2_GMODULE_INCLUDE_DIRS + NAMES gmodule.h + HINTS ${PC_GMODULE} + PATH_SUFFIXES glib-2.0) + +find_library(GLIB2_GMODULE_LIBRARIES + NAMES gmodule-2.0 + HINTS ${PC_GMODULE} +) + # search the glibconfig.h include dir under the same root where the library is found get_filename_component(glib2LibDir "${GLIB2_LIBRARIES}" PATH) @@ -126,6 +138,11 @@ if(GLIB2_GIO_LIBRARIES AND GLIB2_GIO_INCLUDE_DIRS) set(GLIB2_GIO_FOUND TRUE) endif() +if(GLIB2_GMODULE_LIBRARIES AND GLIB2_GMODULE_INCLUDE_DIRS) + set(GLIB2_GMODULE_FOUND TRUE) +endif() + + include(FindPackageHandleStandardArgs) find_package_handle_standard_args(GLIB2 REQUIRED_VARS GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS @@ -137,6 +154,16 @@ if(GLIB2_FOUND AND NOT TARGET GLIB2::GLIB2) IMPORTED_LOCATION "${GLIB2_LIBRARIES}" INTERFACE_LINK_LIBRARIES "${GTHREAD2_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_INCLUDE_DIRS}") + #vcpkg specific + pkg_check_modules(PC_PCRE2_8BIT QUIET libpcre2-8) + find_library(PCRE2_8BIT_LIBRARIES + NAMES pcre2-8 + HINTS ${PC_PCRE2_8BIT} + ) + target_link_libraries(GLIB2::GLIB2 INTERFACE ${PCRE2_8BIT_LIBRARIES}) + find_package(Iconv) + find_package(Intl) + target_link_libraries(GLIB2::GLIB2 INTERFACE Intl::Intl Iconv::Iconv) endif() if(GLIB2_GOBJECT_FOUND AND NOT TARGET GLIB2::GOBJECT) @@ -153,12 +180,21 @@ if(GLIB2_GIO_FOUND AND NOT TARGET GLIB2::GIO) INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GIO_INCLUDE_DIRS}") endif() +if(GLIB2_GMODULE_FOUND AND NOT TARGET GLIB2::GMODULE) + add_library(GLIB2::GMODULE UNKNOWN IMPORTED) + set_target_properties(GLIB2::GMODULE PROPERTIES + IMPORTED_LOCATION "${GLIB2_GMODULE_LIBRARIES}" + INTERFACE_INCLUDE_DIRECTORIES "${GLIB2_GMODULE_INCLUDE_DIRS}") +endif() + + mark_as_advanced(GLIB2_INCLUDE_DIRS GLIB2_INCLUDE_DIR GLIB2_LIBRARIES GLIB2_LIBRARY GLIB2_GOBJECT_INCLUDE_DIRS GLIB2_GOBJECT_INCLUDE_DIR GLIB2_GOBJECT_LIBRARIES GLIB2_GOBJECT_LIBRARY GLIB2_GIO_INCLUDE_DIRS GLIB2_GIO_INCLUDE_DIR - GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY) + GLIB2_GIO_LIBRARIES GLIB2_GIO_LIBRARY + GLIB2_GMODULE_LIBRARIES GLIB2_GMODULE_INCLUDE_DIRS) include(FeatureSummary) set_package_properties(GLIB2 PROPERTIES ================================================ FILE: ports/qtbase/allow_outside_prefix.patch ================================================ diff --git a/cmake/QtBuildPathsHelpers.cmake b/cmake/QtBuildPathsHelpers.cmake index bd186c28b..2c1994d2e 100644 --- a/cmake/QtBuildPathsHelpers.cmake +++ b/cmake/QtBuildPathsHelpers.cmake @@ -141,11 +141,9 @@ function(qt_configure_process_path name default docstring) elseif(rel_path MATCHES "^\.\./") # INSTALL_SYSCONFDIR is allowed to be outside the prefix. if(NOT name STREQUAL "INSTALL_SYSCONFDIR") - message(FATAL_ERROR - "Path component '${name}' is outside computed install prefix: ${rel_path} ") endif() # Keep the absolute path. set(new_value "${${name}}") else() # Use the canonicalized path. set(new_value "${rel_path}") ================================================ FILE: ports/qtbase/clang-cl_QGADGET_fix.diff ================================================ diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index e40cd85..ba68a01 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -826,7 +829,13 @@ struct IsGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; }; template +#if defined(__clang__) && (__clang_major__ > 11) + // Clang does not reject T::QtGadgetHelper as ambiguous if a class inherits from two QGADGETS + // but is not a QGADGET itself + struct IsGadgetHelper> +#else struct IsGadgetHelper +#endif { template static char checkType(void (X::*)()); @@ -841,7 +850,11 @@ struct IsPointerToGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; }; template +#if defined(__clang__) && (__clang_major__ > 11) + struct IsPointerToGadgetHelper> +#else struct IsPointerToGadgetHelper +#endif { using BaseType = T; template ================================================ FILE: ports/qtbase/clang-cl_source_location.patch ================================================ diff --git a/src/corelib/kernel/qproperty.h b/src/corelib/kernel/qproperty.h index 823b2057b..4a8cd4fa8 100644 --- a/src/corelib/kernel/qproperty.h +++ b/src/corelib/kernel/qproperty.h @@ -16,8 +16,8 @@ #include -#if __has_include() && __cplusplus >= 202002L && !defined(Q_QDOC) +#if __has_include() && __cplusplus >= 202002L && !defined(Q_QDOC) && ( (defined(__cpp_consteval) && defined(_MSC_VER)) || !defined(_MSC_VER) ) #include #if defined(__cpp_lib_source_location) #define QT_SOURCE_LOCATION_NAMESPACE std #define QT_PROPERTY_COLLECT_BINDING_LOCATION ================================================ FILE: ports/qtbase/cmake/qt_install_copyright.cmake ================================================ include_guard(GLOBAL) #Could probably be the beginning of a vcpkg_install_copyright? function(qt_install_copyright SOURCE_PATH) #Find the relevant license file and install it if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3") elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3-EXCEPT") elseif(EXISTS "${SOURCE_PATH}/LICENSE.FDL") set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.FDL") endif() if(LICENSE_PATH) file(INSTALL "${LICENSE_PATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) elseif(EXISTS "${SOURCE_PATH}/LICENSES") file(GLOB LICENSES "${SOURCE_PATH}/LICENSES/*") vcpkg_install_copyright(FILE_LIST ${LICENSES}) else() message(WARNING "No license/copyright file found!") endif() endfunction() ================================================ FILE: ports/qtbase/cmake/qt_install_submodule.cmake ================================================ include_guard(GLOBAL) include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake/vcpkg-port-config.cmake") include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake-config/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/qt_install_copyright.cmake") if(NOT DEFINED QT6_DIRECTORY_PREFIX) set(QT6_DIRECTORY_PREFIX "Qt6/") endif() if(VCPKG_TARGET_IS_ANDROID) # ANDROID_HOME: canonical SDK environment variable # ANDROID_SDK_ROOT: legacy qtbase triplet variable if(NOT ANDROID_SDK_ROOT) if("$ENV{ANDROID_HOME}" STREQUAL "") message(FATAL_ERROR "${PORT} requires environment variable ANDROID_HOME to be set.") endif() set(ANDROID_SDK_ROOT "$ENV{ANDROID_HOME}") endif() endif() function(qt_download_submodule_impl) cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" "SUBMODULE" "PATCHES") if("${_qarg_SUBMODULE}" IN_LIST QT_FROM_QT_GIT) # qtinterfaceframework is not available in the release, so we fall back to a `git clone`. vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL "${${_qarg_SUBMODULE}_URL}" REF "${${_qarg_SUBMODULE}_REF}" PATCHES ${_qarg_PATCHES} ) if(PORT STREQUAL "qttools") # Keep this for beta & rc's vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH_QLITEHTML URL https://code.qt.io/playground/qlitehtml.git REF "${${PORT}_qlitehtml_REF}" FETCH_REF master HEAD_REF master ) # port 'litehtml' is not in vcpkg! vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_LITEHTML REPO litehtml/litehtml REF "${${PORT}_litehtml_REF}" SHA512 "${${PORT}_litehtml_HASH}" HEAD_REF master ) file(COPY "${SOURCE_PATH_QLITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml") file(COPY "${SOURCE_PATH_LITEHTML}/" DESTINATION "${SOURCE_PATH}/src/assistant/qlitehtml/src/3rdparty/litehtml") elseif(PORT STREQUAL "qtwebengine") vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH_WEBENGINE URL https://code.qt.io/qt/qtwebengine-chromium.git REF "${${PORT}_chromium_REF}" ) if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/chromium") file(RENAME "${SOURCE_PATH_WEBENGINE}/chromium" "${SOURCE_PATH}/src/3rdparty/chromium") endif() if(NOT EXISTS "${SOURCE_PATH}/src/3rdparty/gn") file(RENAME "${SOURCE_PATH_WEBENGINE}/gn" "${SOURCE_PATH}/src/3rdparty/gn") endif() endif() else() if(VCPKG_USE_HEAD_VERSION) set(sha512 SKIP_SHA512) elseif(NOT DEFINED "${_qarg_SUBMODULE}_HASH") message(FATAL_ERROR "No information for ${_qarg_SUBMODULE} -- add it to QT_PORTS and run qtbase in QT_UPDATE_VERSION mode first") else() set(sha512 SHA512 "${${_qarg_SUBMODULE}_HASH}") endif() vcpkg_download_distfile(archive URLS ${${_qarg_SUBMODULE}_URL} FILENAME ${${_qarg_SUBMODULE}_FILENAME} ${sha512} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${archive}" PATCHES ${_qarg_PATCHES} ) endif() set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) endfunction() function(qt_download_submodule) cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" "" "PATCHES") qt_download_submodule_impl(SUBMODULE "${PORT}" PATCHES ${_qarg_PATCHES}) set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) endfunction() function(qt_cmake_configure) cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "DISABLE_NINJA;DISABLE_PARALLEL_CONFIGURE" "" "TOOL_NAMES;OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;OPTIONS_MAYBE_UNUSED") vcpkg_find_acquire_program(PERL) # Perl is probably required by all qt ports for syncqt get_filename_component(PERL_PATH ${PERL} DIRECTORY) vcpkg_add_to_path(${PERL_PATH}) if(NOT PORT STREQUAL "qtwebengine" OR QT_IS_LATEST) # qtwebengine requires python2; since 6.3 python3 vcpkg_find_acquire_program(PYTHON3) # Python is required by some qt ports get_filename_component(PYTHON3_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(${PYTHON3_PATH}) endif() if(NOT PORT MATCHES "^qtbase") list(APPEND _qarg_OPTIONS "-DQT_SYNCQT:PATH=${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/syncqt.pl") endif() set(PERL_OPTION "-DHOST_PERL:PATH=${PERL}") set(ninja_option "") if(_qarg_DISABLE_NINJA) set(ninja_option WINDOWS_USE_MSBUILD) endif() set(disable_parallel "") if(_qarg_DISABLE_PARALLEL_CONFIGURE) set(disable_parallel DISABLE_PARALLEL_CONFIGURE) endif() if(VCPKG_CROSSCOMPILING) list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}") list(APPEND _qarg_OPTIONS "-DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share") endif() # Disable warning for CMAKE_(REQUIRE|DISABLE)_FIND_PACKAGE_ string(REGEX MATCHALL "CMAKE_DISABLE_FIND_PACKAGE_[^:=]+" disabled_find_package "${_qarg_OPTIONS}") list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${disabled_find_package}) string(REGEX MATCHALL "CMAKE_REQUIRE_FIND_PACKAGE_[^:=]+(:BOOL)?=OFF" require_find_package "${_qarg_OPTIONS}") list(TRANSFORM require_find_package REPLACE "(:BOOL)?=OFF" "") list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${require_find_package}) # Disable unused warnings for disabled features. Qt might decide to not emit the feature variables if other features are deactivated. string(REGEX MATCHALL "(QT_)?FEATURE_[^:=]+(:BOOL)?=OFF" disabled_features "${_qarg_OPTIONS}") list(TRANSFORM disabled_features REPLACE "(:BOOL)?=OFF" "") list(APPEND _qarg_OPTIONS_MAYBE_UNUSED ${disabled_features}) list(APPEND _qarg_OPTIONS "-DQT_NO_FORCE_SET_CMAKE_BUILD_TYPE:BOOL=ON") if(VCPKG_TARGET_IS_ANDROID) list(APPEND _qarg_OPTIONS "-DANDROID_SDK_ROOT=${ANDROID_SDK_ROOT}") endif() if(NOT PORT MATCHES "qtbase") list(APPEND _qarg_OPTIONS "-DQT_MKSPECS_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6/mkspecs") endif() if(NOT DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) list(APPEND _qarg_OPTIONS "-DCMAKE_OSX_DEPLOYMENT_TARGET=14") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${ninja_option} ${disable_parallel} OPTIONS -DQT_FORCE_WARN_APPLE_SDK_AND_XCODE_CHECK=ON -DQT_NO_FORCE_SET_CMAKE_BUILD_TYPE:BOOL=ON -DQT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS:BOOL=ON # We don't want Qt to mess with users toolchain settings. -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON # Because Qt doesn't correctly scope find_package calls. #-DQT_HOST_PATH= # For crosscompiling #-DQT_PLATFORM_DEFINITION_DIR=mkspecs/win32-msvc #-DQT_QMAKE_TARGET_MKSPEC=win32-msvc #-DQT_USE_CCACHE -DQT_BUILD_EXAMPLES:BOOL=OFF -DQT_BUILD_TESTS:BOOL=OFF -DQT_BUILD_BENCHMARKS:BOOL=OFF ${PERL_OPTION} -DINSTALL_BINDIR:STRING=bin -DINSTALL_LIBEXECDIR:STRING=bin -DINSTALL_PLUGINSDIR:STRING=${qt_plugindir} -DINSTALL_QMLDIR:STRING=${qt_qmldir} ${_qarg_OPTIONS} "-DQT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX:STRING=${CURRENT_INSTALLED_DIR}" OPTIONS_RELEASE ${_qarg_OPTIONS_RELEASE} -DINSTALL_DOCDIR:STRING=doc/${QT6_DIRECTORY_PREFIX} -DINSTALL_INCLUDEDIR:STRING=include/${QT6_DIRECTORY_PREFIX} -DINSTALL_DESCRIPTIONSDIR:STRING=share/Qt6/modules -DINSTALL_MKSPECSDIR:STRING=share/Qt6/mkspecs -DINSTALL_TRANSLATIONSDIR:STRING=translations/${QT6_DIRECTORY_PREFIX} OPTIONS_DEBUG # -DFEATURE_debug:BOOL=ON only needed by qtbase and auto detected? -DINSTALL_DOCDIR:STRING=../doc/${QT6_DIRECTORY_PREFIX} -DINSTALL_INCLUDEDIR:STRING=../include/${QT6_DIRECTORY_PREFIX} -DINSTALL_TRANSLATIONSDIR:STRING=../translations/${QT6_DIRECTORY_PREFIX} -DINSTALL_DESCRIPTIONSDIR:STRING=../share/Qt6/modules -DINSTALL_MKSPECSDIR:STRING=../share/Qt6/mkspecs ${_qarg_OPTIONS_DEBUG} MAYBE_UNUSED_VARIABLES INSTALL_BINDIR INSTALL_DOCDIR INSTALL_LIBEXECDIR INSTALL_QMLDIR # No qml files INSTALL_TRANSLATIONSDIR # No translations INSTALL_PLUGINSDIR # No plugins INSTALL_DESCRIPTIONSDIR INSTALL_INCLUDEDIR HOST_PERL QT_SYNCQT QT_NO_FORCE_SET_CMAKE_BUILD_TYPE QT_FORCE_WARN_APPLE_SDK_AND_XCODE_CHECK QT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX ${_qarg_OPTIONS_MAYBE_UNUSED} INPUT_bundled_xcb_xinput INPUT_freetype INPUT_harfbuzz INPUT_libjpeg INPUT_libmd4c INPUT_libpng INPUT_opengl INPUT_openssl INPUT_xcb INPUT_xkbcommon ) foreach(suffix IN ITEMS dbg rel) if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix}/config.summary") file(COPY_FILE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix}/config.summary" "${CURRENT_BUILDTREES_DIR}/config.summary-${TARGET_TRIPLET}-${suffix}.log" ) endif() endforeach() endfunction() function(qt_fix_prl_files) file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}/lib" package_dir) file(TO_CMAKE_PATH "${package_dir}/lib" lib_path) file(TO_CMAKE_PATH "${package_dir}/include/Qt6" include_path) file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" install_prefix) file(GLOB_RECURSE prl_files "${CURRENT_PACKAGES_DIR}/*.prl" "${CURRENT_PACKAGES_DIR}/*.pri") foreach(prl_file IN LISTS prl_files) file(READ "${prl_file}" _contents) string(REPLACE "${lib_path}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") string(REPLACE "${include_path}" "\$\$[QT_INSTALL_HEADERS]" _contents "${_contents}") string(REPLACE "${install_prefix}" "\$\$[QT_INSTALL_PREFIX]" _contents "${_contents}") string(REPLACE "[QT_INSTALL_PREFIX]/lib/objects-Debug" "[QT_INSTALL_LIBS]/objects-Debug" _contents "${_contents}") string(REPLACE "[QT_INSTALL_PREFIX]/Qt6/qml" "[QT_INSTALL_QML]" _contents "${_contents}") #Note: This only works without an extra if case since QT_INSTALL_PREFIX is the same for debug and release file(WRITE "${prl_file}" "${_contents}") endforeach() endfunction() function(qt_fixup_and_cleanup) cmake_parse_arguments(PARSE_ARGV 0 "_qarg" "" "" "TOOL_NAMES") vcpkg_copy_pdbs() ## Handle PRL files qt_fix_prl_files() ## Handle CMake files. set(COMPONENTS) file(GLOB COMPONENTS_OR_FILES LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/share/Qt6*") list(REMOVE_ITEM COMPONENTS_OR_FILES "${CURRENT_PACKAGES_DIR}/share/Qt6") foreach(_glob IN LISTS COMPONENTS_OR_FILES) if(IS_DIRECTORY "${_glob}") string(REPLACE "${CURRENT_PACKAGES_DIR}/share/Qt6" "" _component "${_glob}") debug_message("Adding cmake component: '${_component}'") list(APPEND COMPONENTS ${_component}) endif() endforeach() foreach(_comp IN LISTS COMPONENTS) if(EXISTS "${CURRENT_PACKAGES_DIR}/share/Qt6${_comp}") vcpkg_cmake_config_fixup(PACKAGE_NAME "Qt6${_comp}" CONFIG_PATH "share/Qt6${_comp}" TOOLS_PATH "tools/Qt6/bin") # Would rather put it into share/cmake as before but the import_prefix correction in vcpkg_cmake_config_fixup is working against that. else() message(STATUS "WARNING: Qt component ${_comp} not found/built!") endif() endforeach() #fix debug plugin paths (should probably be fixed in vcpkg_cmake_config_fixup) file(GLOB_RECURSE DEBUG_CMAKE_TARGETS "${CURRENT_PACKAGES_DIR}/share/**/*Targets-debug.cmake") debug_message("DEBUG_CMAKE_TARGETS:${DEBUG_CMAKE_TARGETS}") foreach(_debug_target IN LISTS DEBUG_CMAKE_TARGETS) vcpkg_replace_string("${_debug_target}" "{_IMPORT_PREFIX}/${qt_plugindir}" "{_IMPORT_PREFIX}/debug/${qt_plugindir}" IGNORE_UNCHANGED) vcpkg_replace_string("${_debug_target}" "{_IMPORT_PREFIX}/${qt_qmldir}" "{_IMPORT_PREFIX}/debug/${qt_qmldir}" IGNORE_UNCHANGED) endforeach() file(GLOB_RECURSE STATIC_CMAKE_TARGETS "${CURRENT_PACKAGES_DIR}/share/Qt6Qml/QmlPlugins/*.cmake") foreach(_plugin_target IN LISTS STATIC_CMAKE_TARGETS) # restore a single get_filename_component which was remove by vcpkg_cmake_config_fixup vcpkg_replace_string("${_plugin_target}" [[get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)]] "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" IGNORE_UNCHANGED) endforeach() set(qt_tooldest "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") set(qt_searchdir "${CURRENT_PACKAGES_DIR}/bin") ## Handle Tools foreach(_tool IN LISTS _qarg_TOOL_NAMES) if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_tool}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") debug_message("Removed '${_tool}' from copy tools list since it was not found!") list(REMOVE_ITEM _qarg_TOOL_NAMES ${_tool}) endif() endforeach() if(_qarg_TOOL_NAMES) set(tool_names ${_qarg_TOOL_NAMES}) vcpkg_copy_tools(TOOL_NAMES ${tool_names} SEARCH_DIR "${qt_searchdir}" DESTINATION "${qt_tooldest}" AUTO_CLEAN) endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/") file(COPY "${CURRENT_PACKAGES_DIR}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") endif() file(GLOB_RECURSE _installed_dll_files RELATIVE "${CURRENT_INSTALLED_DIR}/tools/Qt6/bin" "${CURRENT_INSTALLED_DIR}/tools/Qt6/bin/*.dll") foreach(_dll_to_remove IN LISTS _installed_dll_files) file(GLOB_RECURSE _packaged_dll_file "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${_dll_to_remove}") if(EXISTS "${_packaged_dll_file}") file(REMOVE "${_packaged_dll_file}") endif() endforeach() file(GLOB_RECURSE _folders LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/**/") file(GLOB_RECURSE _files "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/**/") if(_files) list(REMOVE_ITEM _folders ${_files}) endif() foreach(_dir IN LISTS _folders) if(NOT "${_remaining_dll_files}" MATCHES "${_dir}") file(REMOVE_RECURSE "${_dir}") endif() endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/cmake/" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/cmake/" "${CURRENT_PACKAGES_DIR}/debug/include" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(GLOB_RECURSE _bin_files "${CURRENT_PACKAGES_DIR}/bin/*") if(NOT _bin_files STREQUAL "") message(STATUS "Remaining files in bin: '${_bin_files}'") else() # Only clean if empty otherwise let vcpkg throw and error. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/") endif() endif() vcpkg_fixup_pkgconfig() endfunction() function(qt_install_submodule) cmake_parse_arguments(PARSE_ARGV 0 "_qis" "DISABLE_NINJA" "" "PATCHES;TOOL_NAMES;CONFIGURE_OPTIONS;CONFIGURE_OPTIONS_DEBUG;CONFIGURE_OPTIONS_RELEASE;CONFIGURE_OPTIONS_MAYBE_UNUSED") set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins) set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml) qt_download_submodule(PATCHES ${_qis_PATCHES}) if(VCPKG_TARGET_IS_ANDROID) # Qt only supports dynamic linkage on Android, # https://bugreports.qt.io/browse/QTBUG-32618. # It requires libc++_shared, cf. /cmake/QtPlatformAndroid.cmake # and https://developer.android.com/ndk/guides/cpp-support#sr vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() if(_qis_DISABLE_NINJA) set(_opt DISABLE_NINJA) endif() qt_cmake_configure(${_opt} OPTIONS ${_qis_CONFIGURE_OPTIONS} OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG} OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE} OPTIONS_MAYBE_UNUSED ${_qis_CONFIGURE_OPTIONS_MAYBE_UNUSED} ) vcpkg_cmake_install(ADD_BIN_TO_PATH) qt_fixup_and_cleanup(TOOL_NAMES ${_qis_TOOL_NAMES}) qt_install_copyright("${SOURCE_PATH}") set(SOURCE_PATH "${SOURCE_PATH}" PARENT_SCOPE) endfunction() include("${CMAKE_CURRENT_LIST_DIR}/qt_port_details.cmake") ================================================ FILE: ports/qtbase/cmake/qt_port_details.cmake ================================================ ### Steps to update the qt6 ports ## 1. Change QT_VERSION below to the new version ## 2. Set QT_UPDATE_VERSION to 1 ## 3. Add any new Qt modules to QT_PORTS ## 4. Run a build of `qtbase` ## 5. Fix any intermediate failures by adding the module into QT_FROM_GITHUB, QT_FROM_GITHUB_BRANCH, or QT_FROM_QT_GIT as appropriate ## 6. The build should fail with "Done downloading version and emitting hashes." This will have changed out the vcpkg.json versions of the qt ports and rewritten qt_port_data.cmake ## 7. Set QT_UPDATE_VERSION back to 0 set(QT_VERSION 6.10.2) set(QT_DEV_BRANCH 0) set(QT_UPDATE_VERSION 0) if(PORT MATCHES "(qtquickcontrols2)") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() ### Setting up the git tag. set(QT_PORTS qt qtbase qttools qtdeclarative qtsvg qt5compat qtshadertools qtquicktimeline qtquick3d qttranslations qtwayland qtdoc qtcoap qtopcua qtimageformats qtmqtt qtnetworkauth qt3d) # qtquickcontrols2 -> moved into qtdeclarative if(QT_VERSION VERSION_GREATER_EQUAL 6.1) list(APPEND QT_PORTS ## New in 6.1 qtactiveqt qtdatavis3d qtdeviceutilities qtlottie qtscxml qtvirtualkeyboard qtcharts) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.2) list(APPEND QT_PORTS ## New in 6.2 qtconnectivity qtpositioning qtlocation # back in 6.5 as tech preview qtmultimedia qtremoteobjects qtsensors qtserialbus qtserialport qtwebchannel qtwebengine qtwebsockets qtwebview) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.2.2) list(APPEND QT_PORTS ## New in 6.2.2 qtinterfaceframework qtapplicationmanager) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.3.0) list(APPEND QT_PORTS ## New in 6.3.0 qtlanguageserver) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.4.0) list(APPEND QT_PORTS ## New in 6.4.0 qthttpserver qtquick3dphysics qtspeech) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.5.0) list(APPEND QT_PORTS ## New in 6.5.0 qtgrpc qtquickeffectmaker ) endif() if(QT_VERSION VERSION_GREATER_EQUAL 6.6.0) list(APPEND QT_PORTS ## New in 6.6.0 qtgraphs #qtvncserver # only commercial #qtinsighttracker ) endif() #qtinsighttracker #qtvncserver #qtgraphs # 1. By default, modules come from the official release # 2. These modules are mirrored to github and have tags matching the release set(QT_FROM_GITHUB qtcoap qtopcua qtmqtt qtapplicationmanager qtinterfaceframework) # 3. These modules are mirrored to github and have branches matching the release set(QT_FROM_GITHUB_BRANCH qtdeviceutilities) # 4. These modules are not mirrored to github and not part of the release set(QT_FROM_QT_GIT "") # For beta releases uncomment the next two lines and comment the lines with QT_FROM_GITHUB, QT_FROM_GITHUB_BRANCH, QT_FROM_QT_GIT #set(QT_FROM_QT_GIT ${QT_PORTS}) #list(POP_FRONT QT_FROM_QT_GIT) function(qt_get_url_filename qt_port out_urls out_filename) if("${qt_port}" IN_LIST QT_FROM_GITHUB) set(urls "https://github.com/qt/${qt_port}/archive/v${QT_VERSION}.tar.gz") set(filename "qt-${qt_port}-v${QT_VERSION}.tar.gz") elseif("${qt_port}" IN_LIST QT_FROM_GITHUB_BRANCH) set(urls "https://github.com/qt/${qt_port}/archive/${QT_VERSION}.tar.gz") set(filename "qt-${qt_port}-${QT_VERSION}.tar.gz") else() string(SUBSTRING "${QT_VERSION}" 0 4 qt_major_minor) if(NOT QT_DEV_BRANCH) set(branch_subpath "archive") else() set(branch_subpath "development_releases") endif() set(filename "${qt_port}-everywhere-src-${QT_VERSION}.tar.xz") set(mirrors "https://download.qt.io/" "https://mirrors.ocf.berkeley.edu/qt/" ) set(url_subpath "${branch_subpath}/qt/${qt_major_minor}/${QT_VERSION}/submodules/${filename}") list(TRANSFORM mirrors APPEND "${url_subpath}" OUTPUT_VARIABLE urls) endif() set(${out_urls} ${urls} PARENT_SCOPE) set(${out_filename} "${filename}" PARENT_SCOPE) endfunction() if(QT_UPDATE_VERSION) if(NOT PORT STREQUAL "qtbase") message(FATAL_ERROR "QT_UPDATE_VERSION must be used from the root 'qtbase' package") endif() set(VCPKG_USE_HEAD_VERSION 1) set(msg "" CACHE INTERNAL "") foreach(qt_port IN LISTS QT_PORTS) set(port_json "${CMAKE_CURRENT_LIST_DIR}/../../${qt_port}/vcpkg.json") file(READ "${port_json}" _control_contents) string(REGEX REPLACE "\"version(-(string|semver))?\": [^\n]+\n" "\"version\": \"${QT_VERSION}\",\n" _control_contents "${_control_contents}") string(REGEX REPLACE "\"port-version\": [^\n]+\n" "" _control_contents "${_control_contents}") file(WRITE "${port_json}" "${_control_contents}") set(port_data "") if(qt_port STREQUAL "qt") continue() endif() if("${qt_port}" IN_LIST QT_FROM_QT_GIT) vcpkg_find_acquire_program(GIT) execute_process( COMMAND "${GIT}" ls-remote -t "https://code.qt.io/cgit/qt/${qt_port}.git" "v${QT_VERSION}" OUTPUT_VARIABLE out ) string(SUBSTRING "${out}" 0 40 tag_sha) string(APPEND msg "set(${qt_port}_REF ${tag_sha})\n") string(APPEND port_data "set(${qt_port}_REF ${tag_sha})\n") string(APPEND port_data "set(${qt_port}_URL \"https://code.qt.io/cgit/qt/${qt_port}.git\")\n") else() qt_get_url_filename("${qt_port}" urls filename) vcpkg_download_distfile(archive URLS ${urls} FILENAME "${filename}" SKIP_SHA512 ) file(SHA512 "${archive}" hash) string(APPEND msg "set(${qt_port}_HASH \"${hash}\")\n") string(APPEND port_data "set(${qt_port}_HASH \"${hash}\")\n") string(APPEND port_data "set(${qt_port}_URL \"${urls}\")\n") string(APPEND port_data "set(${qt_port}_FILENAME \"${filename}\")\n") endif() file(WRITE "${CMAKE_CURRENT_LIST_DIR}/../../${qt_port}/port.data.cmake" "${port_data}") endforeach() message("${msg}") file(WRITE "${CMAKE_CURRENT_LIST_DIR}/qt_port_data_new.cmake" "${msg}") message(FATAL_ERROR "Done downloading version and emitting hashes.") endif() include("${CURRENT_PORT_DIR}/port.data.cmake") ================================================ FILE: ports/qtbase/config_install.patch ================================================ diff --git a/cmake/QtBuildPathsHelpers.cmake b/cmake/QtBuildPathsHelpers.cmake index bd186c28b..edee52e8b 100644 --- a/cmake/QtBuildPathsHelpers.cmake +++ b/cmake/QtBuildPathsHelpers.cmake @@ -100,7 +100,7 @@ function(qt_internal_set_up_global_paths) if(QT_CONFIG_INSTALL_DIR) string(APPEND QT_CONFIG_INSTALL_DIR "/") endif() - string(APPEND QT_CONFIG_INSTALL_DIR ${__config_path_part}) + string(APPEND QT_CONFIG_INSTALL_DIR "share") set(QT_BUILD_DIR "${QT_BUILD_DIR}" PARENT_SCOPE) set(QT_INSTALL_DIR "${QT_INSTALL_DIR}" PARENT_SCOPE) ================================================ FILE: ports/qtbase/dont_force_cmakecache_latest.patch ================================================ diff --git a/cmake/QtPostProcessHelpers.cmake b/cmake/QtPostProcessHelpers.cmake index 4f8106dfa..bec5c402e 100644 --- a/cmake/QtPostProcessHelpers.cmake +++ b/cmake/QtPostProcessHelpers.cmake @@ -414,7 +414,7 @@ function(qt_generate_install_prefixes out_var) foreach(var ${vars}) get_property(docstring CACHE "${var}" PROPERTY HELPSTRING) - string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\" FORCE)\n") + string(APPEND content "set(${var} \"${${var}}\" CACHE STRING \"${docstring}\")\n") endforeach() set(${out_var} "${content}" PARENT_SCOPE) ================================================ FILE: ports/qtbase/env.patch ================================================ diff --git a/cmake/QtTestHelpers.cmake b/cmake/QtTestHelpers.cmake index 279ab07dd..951fd3d36 100644 --- a/cmake/QtTestHelpers.cmake +++ b/cmake/QtTestHelpers.cmake @@ -653,9 +653,9 @@ function(qt_internal_collect_command_environment out_path out_plugin_path) # The regular CMAKE_INSTALL_PREFIX can be different for example when building standalone tests. # Any given CMAKE_INSTALL_PREFIX takes priority over qt_relocatable_install_prefix for the # PATH environment variable. - set(install_prefixes "${CMAKE_INSTALL_PREFIX}") + set(install_prefixes "${CMAKE_INSTALL_PREFIX}$<$:/debug>") if(QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX) - list(APPEND install_prefixes "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}") + list(APPEND install_prefixes "${QT_BUILD_INTERNALS_RELOCATABLE_INSTALL_PREFIX}$<$:/debug>") endif() file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" test_env_path) ================================================ FILE: ports/qtbase/fix-host-aliasing.patch ================================================ diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake index 180ec33..a03e3b1 100644 --- a/cmake/QtTargetHelpers.cmake +++ b/cmake/QtTargetHelpers.cmake @@ -281,10 +281,10 @@ function(qt_internal_add_target_aliases target) set_target_properties("${target}" PROPERTIES _qt_versionfull_alias "${versionfull_alias}") get_target_property(type "${target}" TYPE) - if (type STREQUAL EXECUTABLE) + if (type STREQUAL EXECUTABLE AND NOT TARGET "${versionfull_alias}") add_executable("${versionless_alias}" ALIAS "${target}") add_executable("${versionfull_alias}" ALIAS "${target}") - else() + elseif(NOT type STREQUAL EXECUTABLE) add_library("${versionless_alias}" ALIAS "${target}") add_library("${versionfull_alias}" ALIAS "${target}") endif() ================================================ FILE: ports/qtbase/fix-libresolv-test.patch ================================================ diff --git a/cmake/FindWrapResolv.cmake b/cmake/FindWrapResolv.cmake index 159df9b..412a2ae 100644 --- a/cmake/FindWrapResolv.cmake +++ b/cmake/FindWrapResolv.cmake @@ -40,7 +40,7 @@ check_cxx_source_compiles(" int main(int, char **argv) { - res_state statep = {}; + res_state statep = nullptr; int n = res_nmkquery(statep, 0, argv[1], 0, 0, NULL, 0, NULL, NULL, 0); n = res_nsend(statep, NULL, 0, NULL, 0); n = dn_expand(NULL, NULL, NULL, NULL, 0); ================================================ FILE: ports/qtbase/fix-link-lib-discovery.patch ================================================ diff --git a/cmake/QtPriHelpers.cmake b/cmake/QtPriHelpers.cmake index b6f1242..eaa4d65 100644 --- a/cmake/QtPriHelpers.cmake +++ b/cmake/QtPriHelpers.cmake @@ -37,6 +37,7 @@ function(qt_generate_qmake_libraries_pri_content module_name output_root_dir out get_target_property(lib_target_type ${lib_target} TYPE) if(lib_target_type MATCHES "^(INTERFACE|UNKNOWN)_LIBRARY") get_target_property(iface_libs ${lib_target} INTERFACE_LINK_LIBRARIES) + string(REGEX REPLACE [[\$]+)>]] "\\1" iface_libs "${iface_libs}") if(iface_libs) list(PREPEND lib_targets ${iface_libs}) endif() ================================================ FILE: ports/qtbase/fix_cmake_build.patch ================================================ diff --git a/cmake/QtBuildInternalsExtra.cmake.in b/cmake/QtBuildInternalsExtra.cmake.in index ffc9d90f8..0b3a7d59e 100644 --- a/cmake/QtBuildInternalsExtra.cmake.in +++ b/cmake/QtBuildInternalsExtra.cmake.in @@ -51,8 +51,8 @@ endif() set(QT_WILL_INSTALL @QT_WILL_INSTALL@ CACHE BOOL "Boolean indicating if doing a Qt prefix build (vs non-prefix build)." FORCE) -set(QT_SOURCE_TREE "@QT_SOURCE_TREE@" CACHE PATH -"A path to the source tree of the previously configured QtBase project." FORCE) +# set(QT_SOURCE_TREE "@QT_SOURCE_TREE@" CACHE PATH +# "A path to the source tree of the previously configured QtBase project." FORCE) # Propagate decision of building tests and examples to other repositories. set(QT_BUILD_TESTS @QT_BUILD_TESTS@ CACHE BOOL "Build the testing tree.") ================================================ FILE: ports/qtbase/fix_deploy_windows.patch ================================================ diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index bfac685..c232c3e 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -3225,7 +3225,7 @@ function(_qt_internal_setup_deploy_support) set(qtpaths_name_candidates "") foreach(base_name IN LISTS base_names) if(CMAKE_HOST_WIN32) - if(CMAKE_CROSSCOMPILING) + if(CMAKE_CROSSCOMPILING AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug") set(qt_paths_ext ".bat") # Depending on whether QT_FORCE_BUILD_TOOLS was set when building Qt, a 'host-' # prefix is prepended to the created qtpaths wrapper, not to collide with the @@ -3234,6 +3234,10 @@ function(_qt_internal_setup_deploy_support) # project configuration, search for both, with the bare one searched first. list(APPEND qtpaths_name_candidates "${base_name}${qt_paths_ext}") list(APPEND qtpaths_name_candidates "host-${base_name}${qt_paths_ext}") + elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(qt_paths_ext ".debug.bat") + list(APPEND qtpaths_name_candidates "${base_name}${qt_paths_ext}") + list(APPEND qtpaths_name_candidates "host-${base_name}${qt_paths_ext}") else() set(qt_paths_ext ".exe") list(APPEND qtpaths_name_candidates "${base_name}${qt_paths_ext}") @@ -3243,7 +3247,7 @@ function(_qt_internal_setup_deploy_support) endif() endforeach() - set(qtpaths_prefix "${QT6_INSTALL_PREFIX}/${QT6_INSTALL_BINS}") + set(qtpaths_prefix "${QT6_INSTALL_PREFIX}/tools/Qt6/bin") set(candidate_paths "") foreach(qtpaths_name_candidate IN LISTS qtpaths_name_candidates) ================================================ FILE: ports/qtbase/fix_egl.patch ================================================ diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake index eafbc1ff9..dd4068838 100644 --- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake @@ -82,6 +82,7 @@ find_path(EGL_INCLUDE_DIR find_library(EGL_LIBRARY NAMES EGL + libEGL # required to find angle on windows within vcpkg. HINTS ${PKG_EGL_LIBRARY_DIRS} ) ================================================ FILE: ports/qtbase/fix_egl_2.patch ================================================ diff --git a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake index db48f79b9..4b1686132 100644 --- a/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake +++ b/cmake/3rdparty/extra-cmake-modules/find-modules/FindEGL.cmake @@ -116,7 +116,7 @@ if(EGL_INCLUDE_DIR) unset(_EGL_version_lines) endif() -cmake_push_check_state(RESET) +cmake_push_check_state() # To be able to fix the compile check in vcpkg-cmake-wrapper list(APPEND CMAKE_REQUIRED_LIBRARIES "${EGL_LIBRARY}") list(APPEND CMAKE_REQUIRED_INCLUDES "${EGL_INCLUDE_DIR}") list(APPEND CMAKE_REQUIRED_DEFINITIONS "${EGL_DEFINITIONS}") ================================================ FILE: ports/qtbase/framework.patch ================================================ diff --git a/cmake/QtFrameworkHelpers.cmake b/cmake/QtFrameworkHelpers.cmake index 1982937aaf..83a203d973 100644 --- a/cmake/QtFrameworkHelpers.cmake +++ b/cmake/QtFrameworkHelpers.cmake @@ -54,6 +54,7 @@ function(qt_internal_find_apple_system_framework out_var framework_name) # We might revisit this later. set(cache_var_name "${out_var}Internal") + set(CMAKE_FIND_FRAMEWORK ONLY) find_library(${cache_var_name} "${framework_name}") if(${cache_var_name} AND ${cache_var_name} MATCHES ".framework$") ================================================ FILE: ports/qtbase/harfbuzz.patch ================================================ diff --git a/cmake/FindWrapSystemHarfbuzz.cmake b/cmake/FindWrapSystemHarfbuzz.cmake index 3cb44aa76..9bf0d7165 100644 --- a/cmake/FindWrapSystemHarfbuzz.cmake +++ b/cmake/FindWrapSystemHarfbuzz.cmake @@ -6,7 +6,7 @@ if(TARGET WrapSystemHarfbuzz::WrapSystemHarfbuzz) endif() set(WrapSystemHarfbuzz_REQUIRED_VARS __harfbuzz_found) -find_package(harfbuzz ${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} QUIET) +find_package(harfbuzz QUIET) # VCPKG is missing the version file for harfbuzz. # Gentoo has some buggy version of a harfbuzz Config file. Check if include paths are valid. set(__harfbuzz_target_name "harfbuzz::harfbuzz") ================================================ FILE: ports/qtbase/installed_dir.patch ================================================ diff --git a/cmake/qt.toolchain.cmake.in b/cmake/qt.toolchain.cmake.in index 6e37ae02..e7e84468 100644 --- a/cmake/qt.toolchain.cmake.in +++ b/cmake/qt.toolchain.cmake.in @@ -65,6 +65,10 @@ get_filename_component(QT_TOOLCHAIN_RELOCATABLE_INSTALL_PREFIX # one level higher is what we're looking for. get_filename_component(QT_TOOLCHAIN_RELOCATABLE_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE) +get_filename_component(vcpkg_installed_dir + ${CMAKE_CURRENT_LIST_DIR}/../../../ + ABSOLUTE) + # REROOT_PATH_ISSUE_MARKER # There's a subdirectory check in cmake's cmFindCommon::RerootPaths() function, that doesn't handle # the case of CMAKE_PREFIX_PATH == CMAKE_FIND_ROOT_PATH for a particular pair of entries. ================================================ FILE: ports/qtbase/macdeployqt-symlinks.patch ================================================ diff --git a/src/tools/macdeployqt/shared/shared.cpp b/src/tools/macdeployqt/shared/shared.cpp index 6ff269b..caffd44 100644 --- a/src/tools/macdeployqt/shared/shared.cpp +++ b/src/tools/macdeployqt/shared/shared.cpp @@ -1,4 +1,5 @@ // Copyright (C) 2016 The Qt Company Ltd. + // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include #include @@ -85,7 +86,21 @@ } } - if (QFile::copy(from, to)) { + QFileInfo fromFileInfo(from); + + if (fromFileInfo.isSymLink()) { + const QString fromSymLinkTarget = fromFileInfo.absoluteDir().relativeFilePath(fromFileInfo.symLinkTarget()); + if (QFile::link(fromSymLinkTarget, to)) { + return copyFilePrintStatus(fromFileInfo.absoluteDir().absoluteFilePath(fromSymLinkTarget), QFileInfo(to).absoluteDir().absoluteFilePath(fromSymLinkTarget)); + } + else { + LogError() << "symlink copy failed from" << from; + LogError() << " to" << to; + return false; + } + + } + else if (QFile::copy(from, to)) { QFile dest(to); dest.setPermissions(dest.permissions() | QFile::WriteOwner | QFile::WriteUser); LogNormal() << " copied:" << from; ================================================ FILE: ports/qtbase/moltenvk.patch ================================================ diff --git a/cmake/FindWrapVulkanHeaders.cmake b/cmake/FindWrapVulkanHeaders.cmake index 92510ae..afd931f 100644 --- a/cmake/FindWrapVulkanHeaders.cmake +++ b/cmake/FindWrapVulkanHeaders.cmake @@ -29,6 +29,8 @@ if(Vulkan_INCLUDE_DIR) # Also propagate MoltenVK include directory on Apple platforms if found. if(APPLE) + find_package(Vulkan COMPONENTS MoltenVK REQUIRED) + target_link_libraries(WrapVulkanHeaders::WrapVulkanHeaders INTERFACE Vulkan::MoltenVK) # Check for the LunarG Vulkan SDK folder structure. set(__qt_molten_vk_include_path "${Vulkan_INCLUDE_DIR}/../../MoltenVK/include") get_filename_component( ================================================ FILE: ports/qtbase/port.data.cmake ================================================ set(qtbase_HASH "69e7317aa3114d8ca14e0067a001e42f0d2b9208070bdd1a2391cc1b1ccbb7fc3f90c8adcb0742d3c0b4ec7b3a6b770dbb411265458330d05d45f306cfae95c2") set(qtbase_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtbase-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtbase-everywhere-src-6.10.2.tar.xz") set(qtbase_FILENAME "qtbase-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtbase/portfile.cmake ================================================ # Reminder for myself and everybody else: # Qt cross module dependency information within the Qt respository is wrong and/or incomplete. # Always check the toplevel CMakeLists.txt for the find_package call and search for linkage against the Qt:: targets # Often enough certain (bigger) dependencies are only used to build examples and/or tests. # As such getting the correct dependency information relevant for vcpkg requires a manual search/check set(QT_IS_LATEST ON) ## All above goes into the qt_port_hashes in the future include("${CMAKE_CURRENT_LIST_DIR}/cmake/qt_install_submodule.cmake") set(${PORT}_PATCHES allow_outside_prefix.patch config_install.patch fix_cmake_build.patch harfbuzz.patch fix_egl.patch fix_egl_2.patch installed_dir.patch GLIB2-static.patch # alternative is to force pkg-config clang-cl_source_location.patch clang-cl_QGADGET_fix.diff fix-host-aliasing.patch fix_deploy_windows.patch fix-link-lib-discovery.patch macdeployqt-symlinks.patch moltenvk.patch xcodebuild-not-installed.patch fix-libresolv-test.patch framework.patch use_inotify_on_freebsd.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(APPEND ${PORT}_PATCHES env.patch) endif() if("shared-mime-info" IN_LIST FEATURES) list(APPEND ${PORT}_PATCHES use-shared-mime-info.patch) endif() list(APPEND ${PORT}_PATCHES dont_force_cmakecache_latest.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT "doubleconversion" IN_LIST FEATURES) message(FATAL_ERROR "${PORT} requires feature doubleconversion on windows!" ) endif() # Feature like glib depend on pkg-config vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") if(VCPKG_TARGET_IS_LINUX) message(WARNING "qtbase currently requires packages from the system package manager. " "They can be installed on Ubuntu systems via sudo apt-get install " "'^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev " "libxkbcommon-x11-dev libegl1-mesa-dev.") endif() # Features can be found via searching for qt_feature in all configure.cmake files in the source: # The files also contain information about the Platform for which it is searched # Always use FEATURE_ in vcpkg_cmake_configure # (using QT_FEATURE_X overrides Qts condition check for the feature.) # Theoretically there is a feature for every widget to enable/disable it but that is way to much for vcpkg set(input_vars doubleconversion freetype harfbuzz libb2 jpeg md4c png sql-sqlite) set(INPUT_OPTIONS "") foreach(_input IN LISTS input_vars) if(_input MATCHES "(png|jpeg|md4c)" ) list(APPEND INPUT_OPTIONS -DINPUT_lib${_input}:STRING=) elseif(_input MATCHES "(sql-sqlite)") # Not yet used by the cmake build else() list(APPEND INPUT_OPTIONS -DINPUT_${_input}:STRING=) endif() if("${_input}" IN_LIST FEATURES) string(APPEND INPUT_OPTIONS system) elseif(_input STREQUAL "libb2" AND NOT VCPKG_TARGET_IS_WINDOWS) string(APPEND INPUT_OPTIONS system) elseif(_input STREQUAL "md4c") # required by qtdeclarative string(APPEND INPUT_OPTIONS system) else() string(APPEND INPUT_OPTIONS no) endif() endforeach() # General features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "appstore-compliant" FEATURE_appstore_compliant "zstd" FEATURE_zstd "framework" FEATURE_framework "concurrent" FEATURE_concurrent "concurrent" FEATURE_future "dbus" FEATURE_dbus "gui" FEATURE_gui "thread" FEATURE_thread "network" FEATURE_network "sql" FEATURE_sql "widgets" FEATURE_widgets #"xml" FEATURE_xml # Required to build moc "testlib" FEATURE_testlib "zstd" CMAKE_REQUIRE_FIND_PACKAGE_zstd ${require_features} INVERTED_FEATURES "zstd" CMAKE_DISABLE_FIND_PACKAGE_ZSTD "dbus" CMAKE_DISABLE_FIND_PACKAGE_WrapDBus1 ) list(APPEND FEATURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libudev:BOOL=ON) list(APPEND FEATURE_OPTIONS -DFEATURE_xml:BOOL=ON) if("dbus" IN_LIST FEATURES AND VCPKG_TARGET_IS_LINUX) list(APPEND FEATURE_OPTIONS -DINPUT_dbus=linked) elseif("dbus" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_dbus=runtime) else() list(APPEND FEATURE_OPTIONS -DINPUT_dbus=no) endif() if(VCPKG_QT_NAMESPACE) list(APPEND FEATURE_OPTIONS "-DQT_NAMESPACE:STRING=${VCPKG_QT_NAMESPACE}") endif() # Corelib features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_CORE_OPTIONS FEATURES "doubleconversion" FEATURE_doubleconversion "glib" FEATURE_glib "icu" FEATURE_icu "pcre2" FEATURE_pcre2 #"icu" CMAKE_REQUIRE_FIND_PACKAGE_ICU #"glib" CMAKE_REQUIRE_FIND_PACKAGE_GLIB2 INVERTED_FEATURES #"doubleconversion" CMAKE_DISABLE_FIND_PACKAGE_WrapDoubleConversion # Required #"pcre2" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemPCRE2 # Bug in qt cannot be deactivated "icu" CMAKE_DISABLE_FIND_PACKAGE_ICU "glib" CMAKE_DISABLE_FIND_PACKAGE_GLIB2 ) list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_LTTngUST:BOOL=ON) list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_PPS:BOOL=ON) list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Slog2:BOOL=ON) list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libsystemd:BOOL=ON) list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapBacktrace:BOOL=ON) list(APPEND FEATURE_CORE_OPTIONS -DFEATURE_pkg_config:BOOL=ON) #list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapAtomic:BOOL=ON) # Cannot be disabled on x64 platforms #list(APPEND FEATURE_CORE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_WrapRt:BOOL=ON) # Cannot be disabled on osx # Network features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_NET_OPTIONS FEATURES "openssl" FEATURE_openssl "brotli" FEATURE_brotli "securetransport" FEATURE_securetransport "dnslookup" FEATURE_dnslookup #"brotli" CMAKE_REQUIRE_FIND_PACKAGE_WrapBrotli #"openssl" CMAKE_REQUIRE_FIND_PACKAGE_WrapOpenSSL INVERTED_FEATURES "brotli" CMAKE_DISABLE_FIND_PACKAGE_WrapBrotli "openssl" CMAKE_DISABLE_FIND_PACKAGE_WrapOpenSSL "dnslookup" CMAKE_DISABLE_FIND_PACKAGE_WrapResolve ) if("openssl" IN_LIST FEATURES) list(APPEND FEATURE_NET_OPTIONS -DINPUT_openssl=linked) else() list(APPEND FEATURE_NET_OPTIONS -DINPUT_openssl=no) endif() if ("dnslookup" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_ANDROID AND NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_NET_OPTIONS -DFEATURE_libresolv:BOOL=ON) endif() list(APPEND FEATURE_NET_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libproxy:BOOL=ON) list(APPEND FEATURE_NET_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_GSSAPI:BOOL=ON) # Gui features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_GUI_OPTIONS FEATURES "freetype" FEATURE_freetype # required on windows "harfbuzz" FEATURE_harfbuzz "fontconfig" FEATURE_fontconfig # NOT WINDOWS "jpeg" FEATURE_jpeg "png" FEATURE_png "opengl" FEATURE_opengl "sessionmanager" FEATURE_sessionmanager "xlib" FEATURE_xlib "xkb" FEATURE_xkbcommon "xcb" FEATURE_xcb "xcb-sm" FEATURE_xcb_sm "xcb-xlib" FEATURE_xcb_xlib "xkbcommon-x11" FEATURE_xkbcommon_x11 "xrender" FEATURE_xrender # requires FEATURE_xcb_native_painting; otherwise disabled. "xrender" FEATURE_xcb_native_painting # experimental "gles2" FEATURE_opengles2 "gles3" FEATURE_opengles3 #Cannot be required since Qt will look in CONFIG mode first but is controlled via CMAKE_DISABLE_FIND_PACKAGE_Vulkan below #"vulkan" CMAKE_REQUIRE_FIND_PACKAGE_WrapVulkanHeaders "egl" FEATURE_egl #"fontconfig" CMAKE_REQUIRE_FIND_PACKAGE_Fontconfig #"harfbuzz" CMAKE_REQUIRE_FIND_PACKAGE_WrapSystemHarfbuzz #"jpeg" CMAKE_REQUIRE_FIND_PACKAGE_JPEG #"png" CMAKE_REQUIRE_FIND_PACKAGE_PNG "wayland" FEATURE_wayland #"xlib" CMAKE_REQUIRE_FIND_PACKAGE_X11 #"xkb" CMAKE_REQUIRE_FIND_PACKAGE_XKB #"xcb" CMAKE_REQUIRE_FIND_PACKAGE_XCB #"xcb-xlib" CMAKE_REQUIRE_FIND_PACKAGE_X11_XCB #"xkbcommon-x11" CMAKE_REQUIRE_FIND_PACKAGE_XKB_COMMON_X11 #"xrender" CMAKE_REQUIRE_FIND_PACKAGE_XRender INVERTED_FEATURES "vulkan" CMAKE_DISABLE_FIND_PACKAGE_Vulkan "opengl" CMAKE_DISABLE_FIND_PACKAGE_WrapOpenGL "egl" CMAKE_DISABLE_FIND_PACKAGE_EGL "gles2" CMAKE_DISABLE_FIND_PACKAGE_GLESv2 "gles3" CMAKE_DISABLE_FIND_PACKAGE_GLESv3 "fontconfig" CMAKE_DISABLE_FIND_PACKAGE_Fontconfig #"freetype" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemFreetype # Bug in qt cannot be deactivated "harfbuzz" CMAKE_DISABLE_FIND_PACKAGE_WrapSystemHarfbuzz "jpeg" CMAKE_DISABLE_FIND_PACKAGE_JPEG #"png" CMAKE_DISABLE_FIND_PACKAGE_PNG # Unable to disable if Freetype requires it "wayland" CMAKE_DISABLE_FIND_PACKAGE_Wayland "xlib" CMAKE_DISABLE_FIND_PACKAGE_X11 "xkb" CMAKE_DISABLE_FIND_PACKAGE_XKB "xcb" CMAKE_DISABLE_FIND_PACKAGE_XCB "xcb-xlib" CMAKE_DISABLE_FIND_PACKAGE_X11_XCB "xkbcommon-x11" CMAKE_DISABLE_FIND_PACKAGE_XKB_COMMON_X11 "xrender" CMAKE_DISABLE_FIND_PACKAGE_XRender # There are more X features but I am unsure how to safely disable them! Most of them seem to be found automaticall with find_package(X11) ) if("gles2" IN_LIST FEATURES) list(APPEND FEATURE_GUI_OPTIONS -DINPUT_opengl='es2') list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_desktop=OFF) endif() if(NOT "opengl" IN_LIST FEATURES AND NOT "gles2" IN_LIST FEATURES) list(APPEND FEATURE_GUI_OPTIONS -DINPUT_opengl='no') list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_desktop=OFF) list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengl_dynamic=OFF) endif() if("xcb" IN_LIST FEATURES) list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xcb=yes) else() list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xcb=no) endif() if("xkb" IN_LIST FEATURES) list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xkbcommon=yes) else() list(APPEND FEATURE_GUI_OPTIONS -DINPUT_xkbcommon=no) endif() # Disable OpenGL ES 3.1 and 3.2 list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengles31:BOOL=OFF) list(APPEND FEATURE_GUI_OPTIONS -DFEATURE_opengles32:BOOL=OFF) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_ATSPI2:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_DirectFB:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libdrm:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_gbm:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Libinput:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Mtdev:BOOL=ON) list(APPEND FEATURE_GUI_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_Tslib:BOOL=ON) # sql-drivers features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_SQLDRIVERS_OPTIONS FEATURES "sql-sqlite" FEATURE_system_sqlite "sql-odbc" FEATURE_sql_odbc "sql-mysql" FEATURE_sql_mysql "sql-oci" FEATURE_sql_oci #"sql-psql" CMAKE_REQUIRE_FIND_PACKAGE_PostgreSQL #"sql-sqlite" CMAKE_REQUIRE_FIND_PACKAGE_SQLite3 INVERTED_FEATURES "sql-psql" CMAKE_DISABLE_FIND_PACKAGE_PostgreSQL "sql-sqlite" CMAKE_DISABLE_FIND_PACKAGE_SQLite3 "sql-odbc" CMAKE_DISABLE_FIND_PACKAGE_ODBC "sql-mysql" CMAKE_DISABLE_FIND_PACKAGE_MySQL "sql-oci" CMAKE_DISABLE_FIND_PACKAGE_Oracle ) set(DB_LIST DB2 Interbase Mimer) foreach(_db IN LISTS DB_LIST) list(APPEND FEATURE_SQLDRIVERS_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_${_db}:BOOL=ON) endforeach() # printsupport features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_PRINTSUPPORT_OPTIONS FEATURES "cups" FEATURE_cups INVERTED_FEATURES "cups" CMAKE_DISABLE_FIND_PACKAGE_Cups ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_WIDGETS_OPTIONS FEATURES "gtk3" FEATURE_gtk3 INVERTED_FEATURES "gtk3" CMAKE_DISABLE_FIND_PACKAGE_GTK3 ) set(TOOL_NAMES androiddeployqt androidtestrunner cmake_automoc_parser moc qdbuscpp2xml qdbusxml2cpp qlalr qmake qmake6 qvkgen rcc tracegen uic qtpaths qtpaths6 windeployqt windeployqt6 macdeployqt macdeployqt6 androiddeployqt6 syncqt tracepointgen qtwaylandscanner ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} ${FEATURE_CORE_OPTIONS} ${FEATURE_NET_OPTIONS} ${FEATURE_GUI_OPTIONS} ${FEATURE_SQLDRIVERS_OPTIONS} ${FEATURE_PRINTSUPPORT_OPTIONS} ${FEATURE_WIDGETS_OPTIONS} ${INPUT_OPTIONS} -DQT_USE_BUNDLED_BundledFreetype:BOOL=FALSE -DQT_USE_BUNDLED_BundledHarfbuzz:BOOL=FALSE -DQT_USE_BUNDLED_BundledLibpng:BOOL=FALSE -DQT_USE_BUNDLED_BundledPcre2:BOOL=FALSE -DINPUT_bundled_xcb_xinput:STRING=no -DFEATURE_force_debug_info:BOOL=ON -DFEATURE_relocatable:BOOL=ON -DQT_AUTODETECT_ANDROID:BOOL=ON # Use vcpkg toolchain as is CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG -DFEATURE_debug:BOOL=ON CONFIGURE_OPTIONS_MAYBE_UNUSED FEATURE_appstore_compliant # only used for android/ios QT_AUTODETECT_ANDROID ) # Install CMake helper scripts file(COPY "${CMAKE_CURRENT_LIST_DIR}/cmake/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(CONFIGURE OUTPUT "${CURRENT_PACKAGES_DIR}/share/${PORT}/port_status.cmake" CONTENT "set(qtbase_with_icu ${FEATURE_icu})\n") set(other_files qt-cmake qt-cmake-create qt-cmake-private qt-cmake-standalone-test qt-configure-module qt-internal-configure-tests qt-cmake-create qt-internal-configure-examples qt-internal-configure-tests qmake qmake6 qtpaths qtpaths6 ) if(CMAKE_HOST_WIN32) set(script_suffix ".bat") else() set(script_suffix "") endif() list(TRANSFORM other_files APPEND "${script_suffix}") list(APPEND other_files android_cmakelist_patcher.sh android_emulator_launcher.sh ensure_pro_file.cmake qt-android-runner.py qt-cmake-private-install.cmake qt_cyclonedx_generator.py qt-testrunner.py qt-wasmtestrunner.py sanitizer-testrunner.py syncqt.pl target_qt.conf ) foreach(_config debug release) if(_config MATCHES "debug") set(path_suffix debug/) else() set(path_suffix) endif() if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/${path_suffix}bin") continue() endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${path_suffix}") foreach(other_file IN LISTS other_files) if(EXISTS "${CURRENT_PACKAGES_DIR}/${path_suffix}bin/${other_file}") set(target_file "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${path_suffix}${other_file}") file(RENAME "${CURRENT_PACKAGES_DIR}/${path_suffix}bin/${other_file}" "${target_file}") file(READ "${target_file}" _contents) if(_config MATCHES "debug") string(REPLACE "..\\share\\" "..\\..\\..\\..\\share\\" _contents "${_contents}") string(REPLACE "../share/" "../../../../share/" _contents "${_contents}") else() string(REPLACE "..\\share\\" "..\\..\\..\\share\\" _contents "${_contents}") string(REPLACE "../share/" "../../../share/" _contents "${_contents}") endif() string(REGEX REPLACE "set cmake_path=[^\n]+\n" "set cmake_path=cmake\n" _contents "${_contents}") string(REGEX REPLACE "original_cmake_path=[^\n]+\n" "original_cmake_path=does-not-exist\n" _contents "${_contents}") file(WRITE "${target_file}" "${_contents}") endif() endforeach() endforeach() # Fixup qt.toolchain.cmake set(qttoolchain "${CURRENT_PACKAGES_DIR}/share/Qt6/qt.toolchain.cmake") file(READ "${qttoolchain}" toolchain_contents) string(REGEX REPLACE "set\\\(__qt_initially_configured_toolchain_file [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") string(REGEX REPLACE "set\\\(__qt_chainload_toolchain_file [^\\\n]+\\\n" "set(__qt_chainload_toolchain_file \"\${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}\")\n" toolchain_contents "${toolchain_contents}") string(REGEX REPLACE "set\\\(VCPKG_CHAINLOAD_TOOLCHAIN_FILE [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") string(REGEX REPLACE "set\\\(__qt_initial_c_compiler [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") string(REGEX REPLACE "set\\\(__qt_initial_cxx_compiler [^\\\n]+\\\n" "" toolchain_contents "${toolchain_contents}") string(REPLACE "${CURRENT_HOST_INSTALLED_DIR}" "\${vcpkg_installed_dir}/${HOST_TRIPLET}" toolchain_contents "${toolchain_contents}") file(WRITE "${qttoolchain}" "${toolchain_contents}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CROSSCOMPILING) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/qmake" "${CURRENT_PACKAGES_DIR}/debug/bin/qmake") # qmake has been moved so this is the qmake helper script endif() file(GLOB_RECURSE _bin_files "${CURRENT_PACKAGES_DIR}/bin/*") if(NOT _bin_files) # Only clean if empty otherwise let vcpkg throw and error. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/" "${CURRENT_PACKAGES_DIR}/debug/bin/") else() message(STATUS "Files in '/bin':${_bin_files}") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/QtBuildInternals") if(NOT VCPKG_TARGET_IS_OSX) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/macos") endif() if(NOT VCPKG_TARGET_IS_IOS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Qt6/ios") endif() file(RELATIVE_PATH installed_to_host "${CURRENT_INSTALLED_DIR}" "${CURRENT_HOST_INSTALLED_DIR}") file(RELATIVE_PATH host_to_installed "${CURRENT_HOST_INSTALLED_DIR}" "${CURRENT_INSTALLED_DIR}") if(installed_to_host) string(APPEND installed_to_host "/") string(APPEND host_to_installed "/") endif() set(_file "${CMAKE_CURRENT_LIST_DIR}/qt.conf.in") set(REL_PATH "") set(REL_HOST_TO_DATA "\${CURRENT_INSTALLED_DIR}/") configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/qt_release.conf" @ONLY) # For vcpkg-qmake set(BACKUP_CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}") set(BACKUP_CURRENT_HOST_INSTALLED_DIR "${CURRENT_HOST_INSTALLED_DIR}") set(CURRENT_INSTALLED_DIR "./../../../") set(CURRENT_HOST_INSTALLED_DIR "${CURRENT_INSTALLED_DIR}${installed_to_host}") ## Configure installed qt.conf set(REL_HOST_TO_DATA "${host_to_installed}") configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qt.conf") set(REL_PATH debug/) configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qt.debug.conf") set(CURRENT_INSTALLED_DIR "${BACKUP_CURRENT_INSTALLED_DIR}") set(CURRENT_HOST_INSTALLED_DIR "${BACKUP_CURRENT_HOST_INSTALLED_DIR}") set(REL_HOST_TO_DATA "\${CURRENT_INSTALLED_DIR}/") configure_file("${_file}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/qt_debug.conf" @ONLY) # For vcpkg-qmake # target_qt_conf exists iff CMAKE_CROSSCOMPILING # cf. qt_generate_qmake_and_qtpaths_wrapper_for_target in /cmake/QtQmakeHelpers.cmake set(target_qt_conf "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/target_qt.conf") if(EXISTS "${target_qt_conf}") file(READ "${target_qt_conf}" qt_conf_contents) string(REGEX REPLACE "Prefix=[^\n]+" "Prefix=./../../../" qt_conf_contents ${qt_conf_contents}) string(REGEX REPLACE "HostData=[^\n]+" "HostData=./../${TARGET_TRIPLET}/share/Qt6" qt_conf_contents ${qt_conf_contents}) string(REGEX REPLACE "HostPrefix=[^\n]+" "HostPrefix=./../../../../${_HOST_TRIPLET}" qt_conf_contents ${qt_conf_contents}) file(WRITE "${target_qt_conf}" "${qt_conf_contents}") if(script_suffix STREQUAL "") foreach(name IN ITEMS qmake qmake6 qtpaths qtpaths6) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${name}" "${CURRENT_HOST_INSTALLED_DIR}/" "\"\$script_dir_path\"/../../../../${HOST_TRIPLET}/") endforeach() endif() if(NOT VCPKG_BUILD_TYPE) set(target_qt_conf_debug "${CURRENT_PACKAGES_DIR}/tools/Qt6/target_qt_debug.conf") configure_file("${target_qt_conf}" "${target_qt_conf_debug}" COPYONLY) file(READ "${target_qt_conf_debug}" qt_conf_contents) string(REGEX REPLACE "=(bin|lib|Qt6/plugins|Qt6/qml)" "=debug/\\1" qt_conf_contents ${qt_conf_contents}) file(WRITE "${target_qt_conf_debug}" "${qt_conf_contents}") configure_file("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake${script_suffix}" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.debug${script_suffix}" COPYONLY) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.debug${script_suffix}" "target_qt.conf" "target_qt_debug.conf") endif() endif() if(VCPKG_TARGET_IS_ANDROID) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Core/Qt6AndroidMacros.cmake" [[ set(cmake_dir "${prefix_path}/${${export_namespace_upper}_INSTALL_LIBS}/cmake")]] [[ set(cmake_dir "${prefix_path}/share")]] ) endif() if(VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Core/Qt6WasmMacros.cmake" "_qt_test_emscripten_version()" "") # this is missing a include(QtPublicWasmToolchainHelpers) endif() if(VCPKG_TARGET_IS_WINDOWS) set(_DLL_FILES brotlicommon brotlidec bz2 freetype harfbuzz libpng16) set(DLLS_TO_COPY "") foreach(_file IN LISTS _DLL_FILES) if(EXISTS "${CURRENT_INSTALLED_DIR}/bin/${_file}.dll") list(APPEND DLLS_TO_COPY "${CURRENT_INSTALLED_DIR}/bin/${_file}.dll") endif() endforeach() file(COPY ${DLLS_TO_COPY} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") endif() set(hostinfofile "${CURRENT_PACKAGES_DIR}/share/Qt6HostInfo/Qt6HostInfoConfig.cmake") file(READ "${hostinfofile}" _contents) string(REPLACE [[set(QT6_HOST_INFO_LIBEXECDIR "bin")]] [[set(QT6_HOST_INFO_LIBEXECDIR "tools/Qt6/bin")]] _contents "${_contents}") string(REPLACE [[set(QT6_HOST_INFO_BINDIR "bin")]] [[set(QT6_HOST_INFO_BINDIR "tools/Qt6/bin")]] _contents "${_contents}") file(WRITE "${hostinfofile}" "${_contents}") if(NOT VCPKG_CROSSCOMPILING OR EXISTS "${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsAdditionalTargetInfo.cmake" "CMAKE_CURRENT_LIST_DIR}/../../bin/syncqt" "CMAKE_CURRENT_LIST_DIR}/../../tools/Qt6/bin/syncqt" IGNORE_UNCHANGED) endif() set(configfile "${CURRENT_PACKAGES_DIR}/share/Qt6CoreTools/Qt6CoreToolsTargets-debug.cmake") if(EXISTS "${configfile}") file(READ "${configfile}" _contents) if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qmake.exe") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/qmake.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qmake.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qmake.debug.bat"]] _contents "${_contents}") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/qtpaths.exe") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/qtpaths.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qtpaths.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/qtpaths.debug.bat"]] _contents "${_contents}") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/windeployqt.exe") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/windeployqt.debug.bat" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") string(REPLACE [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.exe"]] [[ "${_IMPORT_PREFIX}/tools/Qt6/bin/windeployqt.debug.bat"]] _contents "${_contents}") endif() file(WRITE "${configfile}" "${_contents}") endif() if(VCPKG_CROSSCOMPILING) set(dep_file "${CURRENT_PACKAGES_DIR}/share/Qt6/Qt6Dependencies.cmake") file(READ "${dep_file}" dep_contents) string(REPLACE "${CURRENT_HOST_INSTALLED_DIR}" "\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}" dep_contents "${dep_contents}") file(WRITE "${dep_file}" "set(QT_HOST_PATH \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" CACHE STRING \"\" FORCE)\n \ set(QT_HOST_PATH_CMAKE_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../../${HOST_TRIPLET}\" CACHE STRING \"\" FORCE)\n \ ${dep_contents} \ ") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6/Qt6Config.cmake" "{Qt6HostInfo_DIR}/.." "{Qt6HostInfo_DIR}/../..") function(remove_original_cmake_path file) file(READ "${file}" _contents) string(REGEX REPLACE "original_cmake_path=[^\n]*" "original_cmake_path=''" _contents "${_contents}") file(WRITE "${file}" "${_contents}") endfunction() if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT CMAKE_HOST_WIN32) foreach(file "qt-cmake${script_suffix}" "qt-cmake-private${script_suffix}") remove_original_cmake_path("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/${file}") if(NOT VCPKG_BUILD_TYPE) remove_original_cmake_path("${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/debug/${file}") endif() endforeach() endif() if(VCPKG_TARGET_IS_WINDOWS) # dlls owned but not automatically installed by qtbase # this is required to avoid ownership troubles in downstream qt modules set(qtbase_owned_dlls double-conversion.dll icudt74.dll icuin74.dll icuuc74.dll libcrypto-3-${VCPKG_TARGET_ARCHITECTURE}.dll libcrypto-3.dll # for x86 pcre2-16.dll zlib1.dll zstd.dll ) if("dbus" IN_LIST FEATURES) list(APPEND qtbase_owned_dlls dbus-1-3.dll) endif() list(TRANSFORM qtbase_owned_dlls PREPEND "${CURRENT_INSTALLED_DIR}/bin/") foreach(dll IN LISTS qtbase_owned_dlls) if(NOT EXISTS "${dll}") # Need to remove non-existant dlls since dependencies could have been build statically list(REMOVE_ITEM qtbase_owned_dlls "${dll}") endif() endforeach() file(COPY ${qtbase_owned_dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin") endif() ================================================ FILE: ports/qtbase/qmake.debug.bat ================================================ @echo off "%0\..\qmake.exe" -qtconf "%0\..\qt.debug.conf" %* ================================================ FILE: ports/qtbase/qt.conf.in ================================================ [DevicePaths] Prefix=${CURRENT_INSTALLED_DIR} Headers=include/@QT6_DIRECTORY_PREFIX@ Libraries=@REL_PATH@lib Plugins=@REL_PATH@@QT6_DIRECTORY_PREFIX@plugins Qml2Imports=@REL_PATH@@QT6_DIRECTORY_PREFIX@qml Documentation=doc/@QT6_DIRECTORY_PREFIX@ Binaries=@REL_PATH@bin LibraryExecutables=tools/Qt6/bin ArchData=share/Qt6 Data=share/Qt6 Translations=translations/@QT6_DIRECTORY_PREFIX@ Examples=share/examples/@QT6_DIRECTORY_PREFIX@ [Paths] Prefix=${CURRENT_INSTALLED_DIR} Headers=include/@QT6_DIRECTORY_PREFIX@ Libraries=@REL_PATH@lib Plugins=@REL_PATH@@QT6_DIRECTORY_PREFIX@plugins Qml2Imports=@REL_PATH@@QT6_DIRECTORY_PREFIX@qml Documentation=doc/@QT6_DIRECTORY_PREFIX@ Binaries=@REL_PATH@bin LibraryExecutables=tools/Qt6/bin ArchData=share/Qt6 Data=share/Qt6 Translations=translations/@QT6_DIRECTORY_PREFIX@ Examples=share/examples/@QT6_DIRECTORY_PREFIX@ HostPrefix=${CURRENT_HOST_INSTALLED_DIR} HostData=@REL_HOST_TO_DATA@share/Qt6 HostBinaries=@REL_PATH@bin HostLibraries=@REL_PATH@lib HostLibraryExecutables=tools/Qt6/bin ================================================ FILE: ports/qtbase/qtpaths.debug.bat ================================================ @echo off "%~dp0qtpaths.exe" --qtconf "%~dp0qt.debug.conf" %* ================================================ FILE: ports/qtbase/use-shared-mime-info.patch ================================================ src/corelib/mimetypes/mimetypes_resources.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/mimetypes/mimetypes_resources.cmake b/src/corelib/mimetypes/mimetypes_resources.cmake index 1bec50e4..d4d54763 100644 --- a/src/corelib/mimetypes/mimetypes_resources.cmake +++ b/src/corelib/mimetypes/mimetypes_resources.cmake @@ -7,17 +7,17 @@ # file with the same information set(corelib_mimetypes_resource_file - "${CMAKE_CURRENT_LIST_DIR}/3rdparty/tika-mimetypes.xml" + "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/mime/packages/freedesktop.org.xml" ) function(corelib_add_mimetypes_resources target) set(source_file "${corelib_mimetypes_resource_file}") set_source_files_properties("${source_file}" - PROPERTIES QT_RESOURCE_ALIAS "tika-mimetypes.xml" + PROPERTIES QT_RESOURCE_ALIAS "freedesktop.org.xml" ) qt_internal_add_resource(${target} "mimetypes" PREFIX - "/qt-project.org/qmime/tika/packages" + "/qt-project.org/qmime/packages" FILES "${source_file}" ) -- 2.34.1 ================================================ FILE: ports/qtbase/use_inotify_on_freebsd.patch ================================================ diff --git a/src/corelib/io/qfilesystemwatcher.cpp b/src/corelib/io/qfilesystemwatcher.cpp index cd72f21a..2fba878f 100644 --- a/src/corelib/io/qfilesystemwatcher.cpp +++ b/src/corelib/io/qfilesystemwatcher.cpp @@ -11,7 +11,7 @@ #include #include -#if (defined(Q_OS_LINUX) || defined(Q_OS_QNX)) && QT_CONFIG(inotify) +#if (defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD)) && QT_CONFIG(inotify) #define USE_INOTIFY #endif ================================================ FILE: ports/qtbase/vcpkg.json ================================================ { "name": "qtbase", "version": "6.10.2", "description": "Qt Base (Core, Gui, Widgets, Network, ...)", "homepage": "https://www.qt.io/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "libb2", "platform": "!windows" }, "md4c", { "name": "pcre2", "default-features": false }, { "name": "qtbase", "host": true, "default-features": false }, { "name": "qtbase", "default-features": false, "features": [ "doubleconversion" ] }, { "name": "qtbase", "default-features": false, "features": [ "cups", "thread" ], "platform": "osx" }, { "name": "qtbase", "default-features": false, "features": [ "concurrent", "thread" ], "platform": "android" }, { "name": "qtbase", "default-features": false, "features": [ "pcre2" ], "platform": "windows & static" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ { "name": "appstore-compliant", "platform": "uwp" }, "brotli", "concurrent", { "name": "dbus", "platform": "!(static & windows) & !android" }, "dnslookup", "doubleconversion", { "name": "egl", "platform": "linux" }, { "name": "egl", "platform": "android" }, { "name": "fontconfig", "platform": "linux" }, "freetype", { "name": "gles2", "platform": "android" }, "gui", "harfbuzz", "icu", "jpeg", "network", { "name": "opengl", "platform": "!ios" }, { "name": "openssl", "platform": "!ios" }, "pcre2", "png", { "name": "securetransport", "platform": "ios" }, "sessionmanager", "sql", "sql-psql", "sql-sqlite", "testlib", "thread", "widgets", { "name": "xcb", "platform": "linux" }, { "name": "xcb-sm", "platform": "linux" }, { "name": "xcb-xlib", "platform": "linux" }, { "name": "xrender", "platform": "linux" }, "zstd" ], "features": { "appstore-compliant": { "description": "Disable code that is not allowed in platform app stores. This is on by default for platforms which require distribution through an app store by default, in particular Android, iOS, tvOS, and watchOS." }, "brotli": { "description": "Support for downloading and decompressing resources compressed with Brotli through QNetworkAccessManager.", "dependencies": [ "brotli", { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] }, "concurrent": { "description": "Provides a high-level multi-threading API. Qt Concurrent", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "thread" ] } ] }, "cups": { "description": "Provides support for the Common Unix Printing System.", "supports": "linux | osx", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] } ] }, "dbus": { "description": "Qt D-Bus", "dependencies": [ { "name": "dbus", "default-features": false }, { "name": "qtbase", "host": true, "default-features": false, "features": [ "dbus" ] }, { "name": "qtbase", "default-features": false, "features": [ "thread" ] } ] }, "dnslookup": { "description": "Enable DNS lookup support", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network", "thread" ] } ] }, "doubleconversion": { "description": "Enable double conversion support", "dependencies": [ "double-conversion" ] }, "egl": { "description": "EGL", "supports": "android | linux", "dependencies": [ "egl", { "name": "qtbase", "default-features": false, "features": [ "opengl" ] } ] }, "fontconfig": { "description": "Use fontconfig", "supports": "!osx & !windows", "dependencies": [ "fontconfig", { "name": "qtbase", "default-features": false, "features": [ "freetype", "gui" ] } ] }, "framework": { "description": "MAC framework build", "supports": "osx & !static" }, "freetype": { "description": "Supports the FreeType 2 font engine (and its supported font formats).", "dependencies": [ { "name": "freetype", "default-features": false }, { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "gles2": { "description": "OpenGL ES 2.0", "supports": "!windows & !osx", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "gles3": { "description": "OpenGL ES 3.0", "supports": "!windows & !osx", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gles2" ] } ] }, "glib": { "description": "GLib", "dependencies": [ "glib" ] }, "gtk3": { "description": "GTK3 platform theme plugin", "supports": "linux", "dependencies": [ "gtk3", { "name": "qtbase", "default-features": false, "features": [ "glib" ] } ] }, "gui": { "description": "Qt Gui", "dependencies": [ { "name": "opengl", "platform": "!ios" }, { "name": "qtbase", "default-features": false, "features": [ "opengl" ], "platform": "osx" }, { "name": "qtbase", "default-features": false, "features": [ "egl", "freetype", "gles2", "opengl" ], "platform": "android" }, { "name": "qtbase", "default-features": false, "features": [ "thread" ], "platform": "windows" } ] }, "harfbuzz": { "description": "Use harfbuzz", "dependencies": [ "harfbuzz", { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "icu": { "description": "Enable ICU support", "dependencies": [ "icu" ] }, "jpeg": { "description": "Enable JPEG", "dependencies": [ "libjpeg-turbo", { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "network": { "description": "Qt Network" }, "opengl": { "description": "OpenGL", "dependencies": [ "opengl", { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "openssl": { "description": "Enable OpenSSL", "dependencies": [ "openssl", { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] }, "pcre2": { "description": "Enable PCRE2 support", "dependencies": [ { "name": "pcre2", "default-features": false } ] }, "png": { "description": "Enable PNG", "dependencies": [ "libpng", { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "securetransport": { "description": "Enable Secure Transport", "supports": "ios | osx" }, "sessionmanager": { "description": "Sessionmanager", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "shared-mime-info": { "description": "Use GPL licensed shared-mime-info port from freedesktop.org", "dependencies": [ "shared-mime-info" ] }, "sql": { "description": "Qt Sql", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "concurrent" ] } ] }, "sql-mysql": { "description": "Enable SQL Driver MySQL", "dependencies": [ "libmysql", { "name": "qtbase", "default-features": false, "features": [ "sql" ] } ] }, "sql-oci": { "description": "Enable SQL Driver Oracle OCI", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql" ] } ] }, "sql-odbc": { "description": "Enable SQL Driver odbc", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql" ] }, { "name": "unixodbc", "platform": "!windows" } ] }, "sql-psql": { "description": "Enable SQL Driver psql", "dependencies": [ "libpq", { "name": "qtbase", "default-features": false, "features": [ "sql" ] } ] }, "sql-sqlite": { "description": "Enable SQL Driver sqlite", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql" ] }, "sqlite3" ] }, "testlib": { "description": "Qt Testlib" }, "thread": { "description": "Thread support; provides QThread and related classes." }, "vulkan": { "description": "Enable Vulkan support", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, "vulkan" ] }, "wayland": { "description": "Enable Wayland platform plugin", "supports": "linux | osx", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "widgets": { "description": "Qt Widgets", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "xcb": { "description": "XCB", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "thread", "xkbcommon-x11", "xlib" ] } ] }, "xcb-sm": { "description": "xcb-sm", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sessionmanager", "xcb" ] } ] }, "xcb-xlib": { "description": "xcb-xlib", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "xlib" ] } ] }, "xkb": { "description": "XKB" }, "xkbcommon-x11": { "description": "xkbcommon_x11", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "xkb" ] } ] }, "xlib": { "description": "XLib", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] }, "xrender": { "description": "XRender for native painting", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "fontconfig", "xcb-xlib" ] } ] }, "zstd": { "description": "Zstandard support", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/qtbase/windeployqt.debug.bat ================================================ @echo off setlocal enabledelayedexpansion set mypath=%~dp0 set mypath=%mypath:~0,-1% set BAKCD=!CD! cd /D "%mypath%\..\..\..\debug\bin" set PATH=!CD!;%PATH% cd /D "%BAKCD%" "%mypath%\windeployqt6.exe" --qtpaths "%mypath%\qtpaths.debug.bat" %* endlocal ================================================ FILE: ports/qtbase/xcodebuild-not-installed.patch ================================================ diff --git a/cmake/QtPublicAppleHelpers.cmake b/cmake/QtPublicAppleHelpers.cmake index 8192b35..9cf5070 100644 --- a/cmake/QtPublicAppleHelpers.cmake +++ b/cmake/QtPublicAppleHelpers.cmake @@ -909,7 +909,7 @@ function(_qt_internal_get_xcode_version_raw out_var) string(STRIP "${xcode_version}" xcode_version) if(NOT xcode_version) - message(FATAL_ERROR + message(WARNING "Can't determine Xcode version. Is Xcode installed?" " Error details:\n${xcrun_error}") endif() ================================================ FILE: ports/qtcharts/port.data.cmake ================================================ set(qtcharts_HASH "fd5e2f57e26426a081b1d589a715b955e73d4f3c5b5fe729bef21974fb5d819d69c9aad26cab48ff69207f3b7865c93185dce1c9b204b871ca71aac8e653d189") set(qtcharts_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtcharts-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtcharts-everywhere-src-6.10.2.tar.xz") set(qtcharts_FILENAME "qtcharts-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtcharts/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtcharts/vcpkg.json ================================================ { "name": "qtcharts", "version": "6.10.2", "description": "The Qt Charts module provides a set of easy-to-use chart components. It uses the Qt Graphics View Framework to integrate charts with modern user interfaces.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "widgets" ] } ], "features": { "designer": { "description": "Build Designer plugin", "dependencies": [ { "name": "qttools", "default-features": false } ] }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtcoap/port.data.cmake ================================================ set(qtcoap_HASH "d28b1679bcde40ade0234ebf7448fc52c43848f8ddbbd987e739dd59707b53e957fb2d62b7a58bdde7a26e590b36ce0b90e6e4d9a32268672688b56c3ca441d3") set(qtcoap_URL "https://github.com/qt/qtcoap/archive/v6.10.2.tar.gz") set(qtcoap_FILENAME "qt-qtcoap-v6.10.2.tar.gz") ================================================ FILE: ports/qtcoap/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtcoap/vcpkg.json ================================================ { "name": "qtcoap", "version": "6.10.2", "description": "Qt CoAP implements the client side of CoAP.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] } ================================================ FILE: ports/qtconnectivity/port.data.cmake ================================================ set(qtconnectivity_HASH "f222b713dd5db927c75ecf6ca6ac249272c25894448540d6570c41566a4a33054a744d538f38796776bc7288f63d9a522055169144459f6624281f5e54258e94") set(qtconnectivity_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtconnectivity-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtconnectivity-everywhere-src-6.10.2.tar.xz") set(qtconnectivity_FILENAME "qtconnectivity-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtconnectivity/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_BlueZ:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_PCSCLITE:BOOL=ON CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtconnectivity/vcpkg.json ================================================ { "name": "qtconnectivity", "version": "6.10.2", "description": "The Qt Connectivity module provides access to Bluetooth and NFC hardware.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "network" ] }, { "name": "qtbase", "default-features": false, "features": [ "dbus" ], "platform": "!(windows & static) & !android & !ios" } ] } ================================================ FILE: ports/qtdatavis3d/port.data.cmake ================================================ set(qtdatavis3d_HASH "85b91bd9a7302c8433971809a59a6314ca19c22c392133b9bea3989da0c04a5bead03cc6f44d039cc0005012c31980172875211d17a11ba011ad33e77bdd6a71") set(qtdatavis3d_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtdatavis3d-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtdatavis3d-everywhere-src-6.10.2.tar.xz") set(qtdatavis3d_FILENAME "qtdatavis3d-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtdatavis3d/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtdatavis3d/vcpkg.json ================================================ { "name": "qtdatavis3d", "version": "6.10.2", "description": "The Qt Data Visualization module enables you to visualize data in 3D as bar, scatter, and surface graphs.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "testlib" ] }, { "name": "qtdeclarative", "default-features": false } ] } ================================================ FILE: ports/qtdeclarative/port.data.cmake ================================================ set(qtdeclarative_HASH "93b76ea0c9a804042335e6c476fc1b9a987ea29b3c5c18fbda2266cba14c7c9c7f0c91ac5de23eeb06748dfa3009d91ea72e7b7df7c0940273cdcf3ca7638d98") set(qtdeclarative_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtdeclarative-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtdeclarative-everywhere-src-6.10.2.tar.xz") set(qtdeclarative_FILENAME "qtdeclarative-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtdeclarative/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") vcpkg_buildpath_length_warning(44) set(${PORT}_PATCHES "") set(TOOL_NAMES qml qmlaotstats qmlcachegen qmleasing qmlformat qmlimportscanner qmllint qmlplugindump qmlpreview qmlprofiler qmlscene qmltestrunner qmltime qmltyperegistrar qmldom qmltc qmlls qmljsrootgen svgtoqml ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_LTTngUST:BOOL=ON CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtdeclarative/vcpkg.json ================================================ { "name": "qtdeclarative", "version": "6.10.2", "description": "Qt Declarative (Quick 2)", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network", "testlib" ] }, { "name": "qtdeclarative", "host": true, "default-features": false }, "qtlanguageserver", { "name": "qtshadertools", "default-features": false }, "qtsvg" ] } ================================================ FILE: ports/qtdeviceutilities/port.data.cmake ================================================ set(qtdeviceutilities_HASH "bff2e30f96b2585dd86232a5408a2c7c13c625697e503ba70bfe27b4daacf96dbd9b5a0d4a91a8664a32d87c80e6a7f11dab5af4cae5ad2ba401c3eaf15915ae") set(qtdeviceutilities_URL "https://github.com/qt/qtdeviceutilities/archive/6.10.2.tar.gz") set(qtdeviceutilities_FILENAME "qt-qtdeviceutilities-6.10.2.tar.gz") ================================================ FILE: ports/qtdeviceutilities/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES settingsui) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtdeviceutilities/vcpkg.json ================================================ { "name": "qtdeviceutilities", "version": "6.10.2", "description": "Qt Device Utilities provides functionality that is useful for controlling settings in embedded applications.", "homepage": "https://www.qt.io/", "license": null, "supports": "linux", "dependencies": [ { "name": "qtdeclarative", "default-features": false }, { "name": "qttools", "default-features": false } ] } ================================================ FILE: ports/qtdoc/port.data.cmake ================================================ set(qtdoc_HASH "837f7dac429ce48169b70c2f6bf5dcbb3eda411772c56d54b0976936ced1f8ef8bd37eafcda71c11def7e4e5288025360beb105ed1e34f54c05a9dae913419bf") set(qtdoc_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtdoc-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtdoc-everywhere-src-6.10.2.tar.xz") set(qtdoc_FILENAME "qtdoc-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtdoc/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/qtdoc/vcpkg.json ================================================ { "name": "qtdoc", "version": "6.10.2", "description": "The Qt documentation.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false } ] } ================================================ FILE: ports/qtgraphs/port.data.cmake ================================================ set(qtgraphs_HASH "61d6846be6219b7d7e8425e29584fe43b9a67cb7327dfc1c60a2239d54886ef1b088901e11b53e9d555753fd1e3d83af460fdd977d510e3908c03cfe1354fe3e") set(qtgraphs_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtgraphs-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtgraphs-everywhere-src-6.10.2.tar.xz") set(qtgraphs_FILENAME "qtgraphs-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtgraphs/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtgraphs/vcpkg.json ================================================ { "name": "qtgraphs", "version": "6.10.2", "description": "The Qt Graphs module enables you to visualize data in 3D as bar, scatter, and surface graphs.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "testlib", "widgets" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtquick3d", "default-features": false } ] } ================================================ FILE: ports/qtgrpc/port.data.cmake ================================================ set(qtgrpc_HASH "fd42c9792b9de98d038a748e03eb66a578a28b68c7151d912bb274d2e5223f0f2aa213b1f824b201cd622f21e62cf15f6ce030a7deed05cbd3a47b78fc41694e") set(qtgrpc_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtgrpc-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtgrpc-everywhere-src-6.10.2.tar.xz") set(qtgrpc_FILENAME "qtgrpc-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtgrpc/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES protoc-host.patch) set(TOOL_NAMES qtprotobufgen qtgrpcgen) # native_grpc ->grpc WrapgRPC # grp -> qt[network] # qtprotobufgen -> protobuf WrapProtobuf qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON #--trace-expand CONFIGURE_OPTIONS_MAYBE_UNUSED QT_BUILD_EXAMPLES QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) ================================================ FILE: ports/qtgrpc/protoc-host.patch ================================================ diff --git a/cmake/FindWrapProtoc.cmake b/cmake/FindWrapProtoc.cmake index 82972c8f18..08335fa746 100644 --- a/cmake/FindWrapProtoc.cmake +++ b/cmake/FindWrapProtoc.cmake @@ -13,7 +13,7 @@ if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY) list(APPEND __WrapProtoc_find_package_args QUIET) endif() -if(NOT CMAKE_CROSSCOMPILING) +if(0) if(NOT TARGET Threads::Threads) find_package(Threads ${__WrapProtoc_find_package_args}) endif() @@ -52,8 +52,8 @@ if(NOT CMAKE_CROSSCOMPILING) endif() endif() -if(NOT __WrapProtoc_protoc_imported_location) +if(1) if(CMAKE_CROSSCOMPILING) set(__WrapProtoc_extra_prefix_paths "${QT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH}") endif() find_program(__WrapProtoc_protoc_imported_location ================================================ FILE: ports/qtgrpc/vcpkg.json ================================================ { "name": "qtgrpc", "version": "6.10.2", "description": "The Qt GRPC and Qt Protobuf modules together allow you to define data and messages in proto files, and then use the code generators, which generate client code allowing accessors for fields and gRPC services in the Qt framework.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "grpc", "default-features": false }, { "name": "protobuf", "default-features": false }, { "name": "qtbase", "default-features": false }, { "name": "qtgrpc", "host": true, "default-features": false } ] } ================================================ FILE: ports/qthttpserver/port.data.cmake ================================================ set(qthttpserver_HASH "7fb6d3aa7f8785b9fd1dddc5762c3f756f14217f2f8d256a667dfc547c13ef9419e3a331878eb5ba98f36c50f57ef3385ab182d99a5140eb947a80e3a67d2297") set(qthttpserver_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qthttpserver-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qthttpserver-everywhere-src-6.10.2.tar.xz") set(qthttpserver_FILENAME "qthttpserver-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qthttpserver/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qthttpserver/vcpkg.json ================================================ { "name": "qthttpserver", "version": "6.10.2", "description": "Qt HTTP Server supports building HTTP server functionality into an application.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "concurrent", "network" ] } ] } ================================================ FILE: ports/qtimageformats/no_target_promotion_latest.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fdd7ddbd..f189c472c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,15 @@ project(QtImageFormats # special case HOMEPAGE_URL "https://qt.io/" LANGUAGES CXX C ) - +find_package(Threads) +set_property(TARGET Threads::Threads PROPERTY _qt_no_promote_global TRUE) +find_package(ZLIB) +if(TARGET ZLIB::ZLIB) + set_property(TARGET ZLIB::ZLIB PROPERTY _qt_no_promote_global TRUE) +endif() +find_package(JPEG) +if(TARGET JPEG::JPEG) + set_property(TARGET JPEG::JPEG PROPERTY _qt_no_promote_global TRUE) +endif() find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Gui) ================================================ FILE: ports/qtimageformats/port.data.cmake ================================================ set(qtimageformats_HASH "b4bce80f03a4ef35eeb0904e815bcaa3e945167a65e5bfe3144ca6e4aa70094f0ce9fd5c2d4949278d00574185c26dbc1d2689b1e73be98a073f6247aac23012") set(qtimageformats_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtimageformats-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtimageformats-everywhere-src-6.10.2.tar.xz") set(qtimageformats_FILENAME "qtimageformats-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtimageformats/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # Only plugins set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES no_target_promotion_latest.patch) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES #"jasper" CMAKE_REQUIRE_FIND_PACKAGE_WrapJasper #"webp" CMAKE_REQUIRE_FIND_PACKAGE_WrapWebP #"tiff" CMAKE_REQUIRE_FIND_PACKAGE_TIFF INVERTED_FEATURES "jasper" CMAKE_DISABLE_FIND_PACKAGE_WrapJasper "webp" CMAKE_DISABLE_FIND_PACKAGE_WrapWebP "tiff" CMAKE_DISABLE_FIND_PACKAGE_TIFF ) if("jasper" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_jasper=system) else() list(APPEND FEATURE_OPTIONS -DINPUT_jasper=no) endif() if("webp" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_webp=system) else() list(APPEND FEATURE_OPTIONS -DINPUT_webp=no) endif() if("tiff" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_tiff=system) else() list(APPEND FEATURE_OPTIONS -DINPUT_tiff=no) endif() list(APPEND FEATURE_OPTIONS -DINPUT_mng=no) # marked as FIXME qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON # Cf. QTBUG-95052 CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtimageformats/vcpkg.json ================================================ { "name": "qtimageformats", "version": "6.10.2", "description": "The Qt Image Formats add-on module provides optional support for other image file formats.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ], "default-features": [ "jasper", "tiff", "webp" ], "features": { "jasper": { "description": "Use jasper", "dependencies": [ "jasper" ] }, "tiff": { "description": "Use TIFF", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "webp": { "description": "Use WebP", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/qtinterfaceframework/port.data.cmake ================================================ set(qtinterfaceframework_HASH "dbdbb425fe9cd861a12cfb22c1e1b5087b2bcaf6b60615bea737153d1c2956fe400bc1f875e5ec449b63cafb5c6fc78a474a84c7372bb5c389515503f5a362be") set(qtinterfaceframework_URL "https://github.com/qt/qtinterfaceframework/archive/v6.10.2.tar.gz") set(qtinterfaceframework_FILENAME "qt-qtinterfaceframework-v6.10.2.tar.gz") ================================================ FILE: ports/qtinterfaceframework/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(TOOL_NAMES ) qt_download_submodule(PATCHES ${${PORT}_PATCHES}) if(QT_UPDATE_VERSION) return() endif() if(_qis_DISABLE_NINJA) set(_opt DISABLE_NINJA) endif() vcpkg_find_acquire_program(PKGCONFIG) x_vcpkg_get_python_packages(PYTHON_VERSION "3" REQUIREMENTS_FILE "${CURRENT_PORT_DIR}/requirements_minimal.txt" PACKAGES qface==2.0.5 OUT_PYTHON_VAR "PYTHON3") if(VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DVCPKG_HOST_TRIPLET=${_HOST_TRIPLET}") endif() set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins) set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml) qt_cmake_configure(${_opt} OPTIONS ${FEATURE_OPTIONS} "-DPython3_EXECUTABLE=${PYTHON3}" # Otherwise a VS installation might be found. OPTIONS_DEBUG ${_qis_CONFIGURE_OPTIONS_DEBUG} OPTIONS_RELEASE ${_qis_CONFIGURE_OPTIONS_RELEASE}) vcpkg_cmake_install(ADD_BIN_TO_PATH) qt_fixup_and_cleanup(TOOL_NAMES ${TOOL_NAMES}) qt_install_copyright("${SOURCE_PATH}") if(NOT VCPKG_CROSSCOMPILING) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin/ifcodegen") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/ifcodegen" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/ifcodegen") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/Qt6/QtInterfaceFramework/${VERSION}/QtInterfaceFramework/private/qifqueryparser_flex_p.h" "${CURRENT_BUILDTREES_DIR}" "" IGNORE_UNCHANGED) ================================================ FILE: ports/qtinterfaceframework/requirements_minimal.txt ================================================ antlr4-python3-runtime==4.7.1 argh==0.26.2 click==6.7 coloredlogs==10.0 humanfriendly==4.15.1 Jinja2==3.1.6 MarkupSafe==2.1.5 path.py==11.0.1 PyYAML==6.0.1 six==1.11.0 watchdog==2.1.7 pytest==8.4.1 pytest-cov==6.2.1 ================================================ FILE: ports/qtinterfaceframework/vcpkg.json ================================================ { "name": "qtinterfaceframework", "version": "6.10.2", "description": "The Qt Interface Framework module provides both the tools and the core APIs, for you to implement Middleware APIs, Middleware Back ends, and Middleware Services.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "pkgconf", "host": true }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtinterfaceframework", "host": true, "default-features": false }, { "name": "qtmultimedia", "default-features": false }, { "name": "qtremoteobjects", "default-features": false }, { "name": "qttools", "default-features": false }, "taglib", { "name": "vcpkg-get-python-packages", "host": true, "default-features": false } ] } ================================================ FILE: ports/qtkeychain/portfile.cmake ================================================ message(WARNING "qtkeychain is a third-party extension to Qt and is not affiliated with The Qt Company") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO frankosterfeld/qtkeychain REF "${VERSION}" SHA512 d1d87553db94bf54da1373016a847476e6cd608db6d427ed72532658e2272501daf45d7c9976efdde2f26ab3810ba9dbfec2518d46dee5a76ecaa369bfee2e4a HEAD_REF master ) # Opportunity to build without dependency on qt5-tools/qt5-declarative set(BUILD_TRANSLATIONS OFF) if("translations" IN_LIST FEATURES) set(BUILD_TRANSLATIONS ON) endif() vcpkg_cmake_configure( DISABLE_PARALLEL_CONFIGURE SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_WITH_QT6=OFF -DBUILD_TEST_APPLICATION=OFF -DBUILD_TRANSLATIONS=${BUILD_TRANSLATIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Qt5Keychain PACKAGE_NAME Qt5Keychain) # Remove unneeded dirs file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/qtkeychain/vcpkg.json ================================================ { "name": "qtkeychain", "version": "0.14.3", "description": "(Unaffiliated with Qt) Platform-independent Qt5 API for storing passwords securely", "homepage": "https://github.com/frankosterfeld/qtkeychain", "license": "BSD-3-Clause", "dependencies": [ { "name": "libsecret", "platform": "!(windows | uwp | osx)" }, "qt5-base", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "translations" ], "features": { "translations": { "description": "Build qtkeychain translations", "dependencies": [ "qt5-tools" ] } } } ================================================ FILE: ports/qtkeychain-qt6/dbus-emscripten.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- CMakeLists.txt +++ CMakeLists.txt @@ -65,7 +65,7 @@ set(QTANDROIDEXTRAS_LIBRARIES ${Qt5AndroidExtras_LIBRARIES}) endif() - if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) + if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU AND NOT EMSCRIPTEN) find_package(Qt5 COMPONENTS DBus REQUIRED) include_directories(${Qt5DBus_INCLUDE_DIRS}) set(QTDBUS_LIBRARIES ${Qt5DBus_LIBRARIES}) @@ -95,7 +95,7 @@ set(QTKEYCHAIN_VERSION_INFIX 6) - if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) + if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU AND NOT EMSCRIPTEN) find_package(Qt6 COMPONENTS DBus REQUIRED) include_directories(${Qt6DBus_INCLUDE_DIRS}) set(QTDBUS_LIBRARIES ${Qt6DBus_LIBRARIES}) @@ -168,7 +168,7 @@ list(APPEND qtkeychain_LIBRARIES ${BE_LIBRARY}) endif() -if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) +if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU AND NOT EMSCRIPTEN) option(LIBSECRET_SUPPORT "Build with libsecret support" ON) if(LIBSECRET_SUPPORT) @@ -305,7 +305,7 @@ PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/Qt${QTKEYCHAIN_VERSION_INFIX}KeychainConfigVersion.cmake" SOVERSION ${QTKEYCHAIN_VERSION}) -if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU) +if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU AND NOT EMSCRIPTEN) set(PRI_EXTRA_DEPS "dbus") endif() ecm_generate_pri_file(BASE_NAME Qt${QTKEYCHAIN_VERSION_INFIX}Keychain diff --git a/QtKeychainConfig.cmake.in b/QtKeychainConfig.cmake.in --- QtKeychainConfig.cmake.in +++ QtKeychainConfig.cmake.in @@ -14,7 +14,7 @@ find_dependency(Qt@QTKEYCHAIN_VERSION_INFIX@Core) -if(UNIX AND NOT APPLE AND NOT ANDROID) +if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT EMSCRIPTEN) find_dependency(Qt@QTKEYCHAIN_VERSION_INFIX@DBus) endif() ================================================ FILE: ports/qtkeychain-qt6/portfile.cmake ================================================ message(WARNING "qtkeychain is a third-party extension to Qt and is not affiliated with The Qt Company") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO frankosterfeld/qtkeychain REF "${VERSION}" SHA512 d1d87553db94bf54da1373016a847476e6cd608db6d427ed72532658e2272501daf45d7c9976efdde2f26ab3810ba9dbfec2518d46dee5a76ecaa369bfee2e4a HEAD_REF master PATCHES dbus-emscripten.patch ) if(VCPKG_CROSSCOMPILING) list(APPEND QTKEYCHAIN_OPTIONS -DQT_HOST_PATH=${CURRENT_HOST_INSTALLED_DIR}) list(APPEND QTKEYCHAIN_OPTIONS -DQT_HOST_PATH_CMAKE_DIR:PATH=${CURRENT_HOST_INSTALLED_DIR}/share) # remove when https://github.com/microsoft/vcpkg/pull/16111 is merged if(VCPKG_TARGET_ARCHITECTURE STREQUAL arm64 AND VCPKG_TARGET_IS_WINDOWS) list(APPEND QTKEYCHAIN_OPTIONS -DCMAKE_CROSSCOMPILING=ON -DCMAKE_SYSTEM_PROCESSOR:STRING=ARM64 -DCMAKE_SYSTEM_NAME:STRING=Windows) endif() endif() list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TEST_APPLICATION:BOOL=OFF) # FIXME: Why does build translations fail on arm64-windows? if (VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL arm64) list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TRANSLATIONS:BOOL=OFF) else() list(APPEND QTKEYCHAIN_OPTIONS -DBUILD_TRANSLATIONS:BOOL=ON) endif() vcpkg_cmake_configure( DISABLE_PARALLEL_CONFIGURE SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_WITH_QT6=ON ${QTKEYCHAIN_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Qt6Keychain PACKAGE_NAME Qt6Keychain) # Remove unneeded dirs file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/qtkeychain-qt6/vcpkg.json ================================================ { "name": "qtkeychain-qt6", "version": "0.14.3", "port-version": 1, "description": "(Unaffiliated with Qt) Platform-independent Qt6 API for storing passwords securely", "homepage": "https://github.com/frankosterfeld/qtkeychain", "license": "BSD-3-Clause", "dependencies": [ { "name": "libsecret", "platform": "linux" }, { "name": "qtbase", "default-features": false }, { "name": "qttools", "host": true, "features": [ "linguist" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qtlanguageserver/port.data.cmake ================================================ set(qtlanguageserver_HASH "b5aba413d78e213bf1c13b96d38028a533c06fbd5ea21a5098de33869466f1abd6e2b5cd08067a1696c35c03c9f6292f2cc063155ee5cb7de6cacd3b58478880") set(qtlanguageserver_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtlanguageserver-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtlanguageserver-everywhere-src-6.10.2.tar.xz") set(qtlanguageserver_FILENAME "qtlanguageserver-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtlanguageserver/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS_MAYBE_UNUSED QT_BUILD_EXAMPLES QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) ================================================ FILE: ports/qtlanguageserver/vcpkg.json ================================================ { "name": "qtlanguageserver", "version": "6.10.2", "description": "An implementation of the Language Server Protocol.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "concurrent", "network" ] }, { "name": "qtbase", "default-features": false, "features": [ "gui" ], "platform": "android" } ] } ================================================ FILE: ports/qtlocation/port.data.cmake ================================================ set(qtlocation_HASH "efb9dd495c00fef16e8acfe50b47d703f7e371573f9a05c8ecf7972aa2cb3024349ab4583e72f4185543706e07444bca66000680f82e0ce0ec8b6b315dfe0970") set(qtlocation_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtlocation-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtlocation-everywhere-src-6.10.2.tar.xz") set(qtlocation_FILENAME "qtlocation-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtlocation/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") # set(${PORT}_PATCHES) # vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS # FEATURES # INVERTED_FEATURES # "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick # "nmea" CMAKE_DISABLE_FIND_PACKAGE_Qt6SerialPort # "nmea" CMAKE_DISABLE_FIND_PACKAGE_Qt6Network # ) # list(APPEND FEATURE_OPTIONS "-DCMAKE_DISABLE_FIND_PACKAGE_Gypsy=ON" # "-DCMAKE_DISABLE_FIND_PACKAGE_Gconf=ON" # ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtlocation/vcpkg.json ================================================ { "name": "qtlocation", "version": "6.10.2", "description": "The Qt Location API helps you create viable mapping solutions using the data available from some of the popular location services.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "qtbase", "default-features": false, "features": [ "dbus" ], "platform": "linux" }, { "name": "qtpositioning", "default-features": false, "features": [ "qml" ] }, { "name": "qtshadertools", "default-features": false } ] } ================================================ FILE: ports/qtlottie/fix_qt_version.patch ================================================ diff --git a/tools/lottietoqml/CMakeLists.txt b/tools/lottietoqml/CMakeLists.txt index 293290a6e5..eb8e7bb057 100644 --- a/tools/lottietoqml/CMakeLists.txt +++ b/tools/lottietoqml/CMakeLists.txt @@ -5,8 +5,7 @@ ## lottietoqml Tool: ##################################################################### -find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS QuickVectorImageGeneratorPrivate) -find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS QuickVectorImageGeneratorPrivate) +find_package(Qt6 REQUIRED COMPONENTS QuickVectorImageGeneratorPrivate) qt_get_tool_target_name(target_name lottietoqml) qt_internal_add_tool(${target_name} ================================================ FILE: ports/qtlottie/port.data.cmake ================================================ set(qtlottie_HASH "c15d8b7a670a2c219c619526090573e92c4aa90881476b55376e188a3718dfbacc5756f52f4930bea9e6bac457fb34596dd6f93f90f54b82a54a4cad6b38fc35") set(qtlottie_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtlottie-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtlottie-everywhere-src-6.10.2.tar.xz") set(qtlottie_FILENAME "qtlottie-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtlottie/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES fix_qt_version.patch) set(TOOL_NAMES lottietoqml) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtlottie/vcpkg.json ================================================ { "name": "qtlottie", "version": "6.10.2", "description": "Lottie is a family of player software for a certain json-based file format for describing 2d vector graphics animations. These files are created/exported directly from After Effects by a plugin called Bodymovin.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtlottie", "host": true, "default-features": false } ], "features": { "qml": { "description": "(deprecated since Qt 6.4)" } } } ================================================ FILE: ports/qtmqtt/port.data.cmake ================================================ set(qtmqtt_HASH "f3be86dfe244608f80b647337109a4d780bc3d8e5fab433bf7bb10df6b73427de1ebcf7b2b6f8e728b242c23e3dcbe26fc8f6c032e5462845e234ff16c866810") set(qtmqtt_URL "https://github.com/qt/qtmqtt/archive/v6.10.2.tar.gz") set(qtmqtt_FILENAME "qt-qtmqtt-v6.10.2.tar.gz") ================================================ FILE: ports/qtmqtt/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtmqtt/vcpkg.json ================================================ { "name": "qtmqtt", "version": "6.10.2", "description": "The Qt MQTT module provides a standard compliant implementation of the MQTT protocol specification.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] } ================================================ FILE: ports/qtmultimedia/ae41d3e-ffmpeg8.diff ================================================ From ae41d3e860087177b1c3413f60c653cb161b2c5f Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Fri, 30 Jan 2026 09:46:53 +0800 Subject: [PATCH] FFmpeg: migrate to new AV_PROFILE_ macros FF_PROFILE_ macros were deprecated and have eventually been removed. Migrating to their replacement AV_PROFILE_ and adding a compatibility layer for older FFmpeg. compare: https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/822432769868da325ba03774df1084aa78b9a5a0 Fixes: QTBUG-143747 Pick-to: 6.11 6.10 6.8 6.5 Change-Id: Icbb1afb570a05f5f0b98e6f49e6096aa61d205be --- diff --git a/src/plugins/multimedia/ffmpeg/qffmpegdefs_p.h b/src/plugins/multimedia/ffmpeg/qffmpegdefs_p.h index b523074..02880a9 100644 --- a/src/plugins/multimedia/ffmpeg/qffmpegdefs_p.h +++ b/src/plugins/multimedia/ffmpeg/qffmpegdefs_p.h @@ -78,4 +78,11 @@ QT_END_NAMESPACE +#ifndef AV_PROFILE_H264_HIGH +# define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH +#endif +#ifndef AV_PROFILE_HEVC_MAIN +# define AV_PROFILE_HEVC_MAIN FF_PROFILE_HEVC_MAIN +#endif + #endif // QFFMPEGDEFS_P_H diff --git a/src/plugins/multimedia/ffmpeg/recordingengine/qffmpegencoderoptions.cpp b/src/plugins/multimedia/ffmpeg/recordingengine/qffmpegencoderoptions.cpp index 05f853c..d7184ae 100644 --- a/src/plugins/multimedia/ffmpeg/recordingengine/qffmpegencoderoptions.cpp +++ b/src/plugins/multimedia/ffmpeg/recordingengine/qffmpegencoderoptions.cpp @@ -314,7 +314,7 @@ case QMediaFormat::VideoCodec::H264: { const char *levels[] = { "2.2", "3.2", "4.2", "5.2", "6.2" }; av_dict_set(opts, "level", levels[settings.quality()], 1); - codec->profile = FF_PROFILE_H264_HIGH; + codec->profile = AV_PROFILE_H264_HIGH; break; } case QMediaFormat::VideoCodec::H265: { @@ -326,7 +326,7 @@ av_dict_set(opts, "level", levels[settings.quality()], 1); } - codec->profile = FF_PROFILE_HEVC_MAIN; + codec->profile = AV_PROFILE_HEVC_MAIN; break; } default: ================================================ FILE: ports/qtmultimedia/ffmpeg-compile-def-and-devendor-signalsmith-stretch.patch ================================================ diff --git a/src/plugins/multimedia/ffmpeg/CMakeLists.txt b/src/plugins/multimedia/ffmpeg/CMakeLists.txt index 77c459a..af5229e 100644 --- a/src/plugins/multimedia/ffmpeg/CMakeLists.txt +++ b/src/plugins/multimedia/ffmpeg/CMakeLists.txt @@ -85,11 +85,9 @@ qt_internal_add_module(FFmpegMediaPluginImplPrivate # compiled with different compiler options: # not used because `__NO_INLINE__' not defined [-Werror=invalid-pch] playbackengine/qffmpegaudioframeconverter.cpp - - SYSTEM_INCLUDE_DIRECTORIES - ../../../3rdparty/signalsmith-stretch/ - ATTRIBUTION_FILE_DIR_PATHS - ../../../3rdparty/signalsmith-stretch + + SYSTEM_INCLUDE_DIRECTORIES + "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/signalsmith-stretch" ) if (LINUX OR ANDROID) @@ -285,7 +285,7 @@ else() # applications need to link against the ffmpeg libs via qt_add_ios_ffmpeg_libraries foreach(ffmpeg_lib IN LISTS ffmpeg_libs) qt_internal_add_target_include_dirs(FFmpegMediaPluginImplPrivate ${ffmpeg_lib}) - target_include_directories(FFmpegMediaPluginImplPrivate PUBLIC + target_compile_definitions(FFmpegMediaPluginImplPrivate PUBLIC "$") endforeach() endif() ================================================ FILE: ports/qtmultimedia/ffmpeg.patch ================================================ diff --git a/cmake/FindFFmpeg.cmake b/cmake/FindFFmpeg.cmake index decac97dc..672991080 100644 --- a/cmake/FindFFmpeg.cmake +++ b/cmake/FindFFmpeg.cmake @@ -282,10 +282,10 @@ function(__ffmpeg_internal_set_dependencies _component) set(suffix_lib "\\.lib($| )") set(framework_regex "-framework [A-Za-z0-9_]*") - string(REGEX REPLACE ".*Libs:([^\n\r]+).*" "\\1" out "${pcfile}") - string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_dependency ${out}) - string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_dependency_lib ${out}) - string(REGEX MATCHALL "${framework_regex}" framework_dependencies ${out}) + string(REGEX MATCH "Libs:([^\n\r]+)" match "${pcfile}") + set(out "${CMAKE_MATCH_1}") + string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_dependency "${out}") + string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_dependency_lib "${out}") foreach(dependency IN LISTS libs_dependency) string(REGEX REPLACE ${prefix_l} "" dependency ${dependency}) @@ -298,9 +298,10 @@ function(__ffmpeg_internal_set_dependencies _component) endforeach() # we don't link private dependencies, but just populate the FFMPEG_STUBS - string(REGEX REPLACE ".*Libs.private:([^\n\r]+).*" "\\1" out "${pcfile}") - string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_private_dependency ${out}) - string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_private_dependency_lib ${out}) + string(REGEX MATCH "Libs.private:([^\n\r]+)" match "${pcfile}") + set(out "${CMAKE_MATCH_1}") + string(REGEX MATCHALL "${prefix_l}[^ ]+" libs_private_dependency "${out}") + string(REGEX MATCHALL "[^ ]+${suffix_lib}" libs_private_dependency_lib "${out}") foreach(dependency IN LISTS libs_private_dependency) string(REGEX REPLACE ${prefix_l} "" dependency ${dependency}) ================================================ FILE: ports/qtmultimedia/port.data.cmake ================================================ set(qtmultimedia_HASH "3946953ad1690972f690c30b6c8be7070f1e95241e4ac5d29db86c18eed3eeab7bca281235c7797bb029af3e33ba077976e06454ba942d170de57a90c80a1207") set(qtmultimedia_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtmultimedia-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtmultimedia-everywhere-src-6.10.2.tar.xz") set(qtmultimedia_FILENAME "qtmultimedia-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtmultimedia/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES static_find_modules.patch remove-static-ssl-stub.patch ffmpeg-compile-def-and-devendor-signalsmith-stretch.patch ffmpeg.patch ae41d3e-ffmpeg8.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick "widgets" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Widgets INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick "widgets" CMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets "gstreamer" CMAKE_DISABLE_FIND_PACKAGE_GStreamer "ffmpeg" CMAKE_DISABLE_FIND_PACKAGE_FFmpeg "pipewire" CMAKE_DISABLE_FIND_PACKAGE_PipeWire "pulseaudio" CMAKE_DISABLE_FIND_PACKAGE_WrapPulseAudio # Features not yet added in the manifest: "vaapi" CMAKE_DISABLE_FIND_PACKAGE_VAAPI # not in vpckg #"mmrenderer" CMAKE_DISABLE_FIND_PACKAGE_MMRenderer # OS = QNX ? #"mmrenderer" CMAKE_DISABLE_FIND_PACKAGE_MMRendererCore ) list(APPEND FEATURE_OPTIONS "-DCMAKE_DISABLE_FIND_PACKAGE_ALSA=ON") # Force all gstreamer extra features to off to not poison the cache # since enabling them is done depening on how gstreamer was built list(APPEND FEATURE_OPTIONS "-DFEATURE_gstreamer_gl=OFF") list(APPEND FEATURE_OPTIONS "-DFEATURE_gstreamer_gl_wayland=OFF") list(APPEND FEATURE_OPTIONS "-DFEATURE_gstreamer_gl_egl=OFF") list(APPEND FEATURE_OPTIONS "-DFEATURE_gstreamer_gl_x11=OFF") list(APPEND FEATURE_OPTIONS "-DFEATURE_gstreamer_photography=OFF") set(unused "") if("gstreamer" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='yes'") else() list(APPEND FEATURE_OPTIONS "-DINPUT_gstreamer='no'") endif() if("pipewire" IN_LIST FEATURES) # This also requires QT_FEATURE_library from qtbase but # that is not exposed by vcpkg via a feature list(APPEND FEATURE_OPTIONS "-DINPUT_pipewire='yes'") else() list(APPEND FEATURE_OPTIONS "-DINPUT_pipewire='no'") endif() if("ffmpeg" IN_LIST FEATURES) # Note: Requires pulsadio on linux and wmfsdk on windows list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='yes'") else() list(APPEND FEATURE_OPTIONS "-DINPUT_ffmpeg='no'") endif() qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG CONFIGURE_OPTIONS_MAYBE_UNUSED ${unused} ) if("gstreamer" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/Qt6Multimedia/Qt6QGstreamerMediaPluginDependencies.cmake" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl" "GStreamer\;FALSE\;\;\;;GStreamer\;FALSE\;\;App\;;GStreamer\;FALSE\;\;\;Gl;EGL\;FALSE\;\;\;" IGNORE_UNCHANGED) endif() ================================================ FILE: ports/qtmultimedia/remove-static-ssl-stub.patch ================================================ diff --git a/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake b/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake index 5778ae4d23..8c0df4b44d 100644 --- a/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake +++ b/src/plugins/multimedia/ffmpeg/cmake/QtAddFFmpegStubs.cmake @@ -70,7 +70,10 @@ macro(qt_internal_multimedia_find_openssl_soversion) if (NOT OPENSSL_SSL_LIBRARY) message(FATAL_ERROR "OPENSSL_SSL_LIBRARY is not found") endif() - + set(openssl_is_shared ON) + if(OPENSSL_SSL_LIBRARY MATCHES "${CMAKE_STATIC_LIBRARY_SUFFIX}$") + set(openssl_is_shared OFF) + endif() get_filename_component(ssl_lib_realpath "${OPENSSL_SSL_LIBRARY}" REALPATH) string(REGEX MATCH "[0-9]+(\\.[0-9]+)*[a-z]?$" ssl_soversion "${ssl_lib_realpath}") @@ -187,6 +190,9 @@ function(qt_internal_multimedia_add_ffmpeg_stubs) if (ffmpeg_has_openssl) qt_internal_multimedia_find_openssl_soversion() + if(NOT openssl_is_shared) + list(REMOVE_ITEM FFMPEG_STUBS ssl crypto) + endif() endif() foreach (stub ${FFMPEG_STUBS}) ================================================ FILE: ports/qtmultimedia/static_find_modules.patch ================================================ diff --git a/cmake/FindGObject.cmake b/cmake/FindGObject.cmake index 19a8a67..09e95d1 100644 --- a/cmake/FindGObject.cmake +++ b/cmake/FindGObject.cmake @@ -13,8 +13,8 @@ # ``GObject::GObject`` # The gobject-2.0 library -include(CMakeFindDependencyMacro) -find_dependency(GLIB2) +find_package(GLIB2) +find_package(libffi) qt_internal_disable_find_package_global_promotion(GLIB2::GLIB2) if(NOT TARGET GObject::GObject) @@ -40,6 +40,7 @@ if(NOT TARGET GObject::GObject) target_link_libraries(GObject::GObject INTERFACE ${GObject_LIBRARY} GLIB2::GLIB2 + libffi ) endif() include(FindPackageHandleStandardArgs) ================================================ FILE: ports/qtmultimedia/vcpkg.json ================================================ { "name": "qtmultimedia", "version": "6.10.2", "description": "Qt Multimedia is an add-on module that provides a rich set of QML types and C++ classes to handle multimedia content.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "concurrent", "gui", "network" ] }, { "name": "qtshadertools", "default-features": false } ], "default-features": [ "ffmpeg", { "name": "pipewire", "platform": "linux" }, { "name": "pulseaudio", "platform": "linux" }, "widgets" ], "features": { "ffmpeg": { "description": "Build with ffmpeg", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avdevice", "avformat", "swresample", "swscale" ] }, { "name": "qtbase", "default-features": false, "features": [ "thread" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtmultimedia", "default-features": false, "features": [ "pulseaudio", "qml" ], "platform": "linux" }, "signalsmith-stretch" ] }, "gstreamer": { "description": "Build with gstreamer", "supports": "linux", "dependencies": [ "egl", { "name": "gstreamer", "default-features": false, "features": [ "plugins-bad", "plugins-base" ] }, { "name": "qtbase", "default-features": false, "features": [ "thread" ] } ] }, "pipewire": { "description": "Build with pipewire", "dependencies": [ "pipewire", { "name": "qtbase", "default-features": false, "features": [ "thread" ] } ] }, "pulseaudio": { "description": "Build with pulseaudio", "dependencies": [ "pulseaudio" ] }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] }, "widgets": { "description": "Build Multimedia Widgets", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] } ] } } } ================================================ FILE: ports/qtnetworkauth/port.data.cmake ================================================ set(qtnetworkauth_HASH "fa2c97868082fca43c48f51db7c27516e3f4f8d4837c6aa215f7a9ef07002c3566f58522670732443ec45c563e28bf03032d89ffe31c171e0210953f5715627d") set(qtnetworkauth_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtnetworkauth-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtnetworkauth-everywhere-src-6.10.2.tar.xz") set(qtnetworkauth_FILENAME "qtnetworkauth-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtnetworkauth/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES "" ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtnetworkauth/vcpkg.json ================================================ { "name": "qtnetworkauth", "version": "6.10.2", "description": "Qt Network Authorization provides a set of APIs that enable Qt applications to obtain limited access to online accounts and HTTP services without exposing users' passwords.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] } ] } ================================================ FILE: ports/qtopcua/fix-build.patch ================================================ diff --git a/src/plugins/opcua/open62541/qopen62541.h b/src/plugins/opcua/open62541/qopen62541.h index a4f63df..877888b 100644 --- a/src/plugins/opcua/open62541/qopen62541.h +++ b/src/plugins/opcua/open62541/qopen62541.h @@ -18,7 +18,10 @@ #pragma clang diagnostic ignored "-Wunused-parameter" #endif -#include +#include +#include +#include +#include #if defined(_MSC_VER) #pragma warning(pop) ================================================ FILE: ports/qtopcua/port.data.cmake ================================================ set(qtopcua_HASH "d387f8df1f2a5b02ad59b3f366f012fd7713bfea16cc7dd4bc6b6e105ee19df5aff5f609e0f5d0c3e17c96a2b685f1ed3224da326dc616f203817d57ee1bd344") set(qtopcua_URL "https://github.com/qt/qtopcua/archive/v6.10.2.tar.gz") set(qtopcua_FILENAME "qt-qtopcua-v6.10.2.tar.gz") ================================================ FILE: ports/qtopcua/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES fix-build.patch) # General features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "open62541" FEATURE_open62541 # "open62541" FEATURE_open62541_security # requires vendored open62541 "ns0idnames" FEATURE_ns0idnames "ns0idgenerator" FEATURE_ns0idgenerator "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) if("open62541" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_open62541=system) vcpkg_find_acquire_program(PYTHON3) else() list(APPEND FEATURE_OPTIONS -DINPUT_open62541=no) endif() set(TOOL_NAMES qopcuaxmldatatypes2cpp ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} ) ================================================ FILE: ports/qtopcua/vcpkg.json ================================================ { "name": "qtopcua", "version": "6.10.2", "description": "The Qt OPC UA module implements a Qt API to interact with OPC UA on top of a 3rd party OPC UA stack.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] }, { "name": "qtopcua", "host": true, "default-features": false } ], "default-features": [ "gds", "ns0idnames", "open62541" ], "features": { "gds": { "description": "Support for global discovery server" }, "ns0idgenerator": { "description": "Namespace 0 NodeIds generator from the NodeIds.csv file.", "supports": "native" }, "ns0idnames": { "description": "Support for namespace 0 NodeId names" }, "open62541": { "description": "Open62541 with plugin to connect to servers with signing and encryption", "dependencies": [ { "name": "open62541", "default-features": false, "features": [ "historizing", "openssl" ] } ] }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtpositioning/devendor-poly2tri.patch ================================================ diff --color -Naur a/src/3rdparty/clip2tri/CMakeLists.txt b/src/3rdparty/clip2tri/CMakeLists.txt --- a/src/3rdparty/clip2tri/CMakeLists.txt 2023-05-13 16:59:42.377052155 +0200 +++ b/src/3rdparty/clip2tri/CMakeLists.txt 2023-05-13 23:05:44.950379088 +0200 @@ -4,6 +4,7 @@ ## Bundled_Clip2Tri Generic Library: ##################################################################### +find_package(poly2tri) qt_internal_add_3rdparty_library(Bundled_Clip2Tri QMAKE_LIB_NAME _clip2tri STATIC @@ -13,11 +14,12 @@ clip2tri.cpp clip2tri.h INCLUDE_DIRECTORIES ../clipper - ../poly2tri LIBRARIES Qt::Bundled_Clipper # special case - Qt::Bundled_Poly2Tri # special case + poly2tri::poly2tri ) +target_link_libraries(Bundled_Clip2Tri PRIVATE poly2tri::poly2tri) +set_target_properties(poly2tri::poly2tri PROPERTIES INTERFACE_QT_PACKAGE_NAME poly2tri) qt_disable_warnings(Bundled_Clip2Tri) qt_set_symbol_visibility_hidden(Bundled_Clip2Tri) diff --color -Naur a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt 2023-05-13 16:59:42.379052157 +0200 +++ b/src/CMakeLists.txt 2023-05-13 17:00:19.256085781 +0200 @@ -2,7 +2,6 @@ # SPDX-License-Identifier: BSD-3-Clause # special case begin -add_subdirectory(3rdparty/poly2tri) add_subdirectory(3rdparty/clipper) add_subdirectory(3rdparty/clip2tri) add_subdirectory(positioning) ================================================ FILE: ports/qtpositioning/port.data.cmake ================================================ set(qtpositioning_HASH "51cfcf50989508da13e2bb96293b866c72d4d26e2b702fae41fd5201738af8b96e17393fdec2668f3f217ef83257f2fbce0d33f53cea81ef980601c74991229e") set(qtpositioning_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtpositioning-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtpositioning-everywhere-src-6.10.2.tar.xz") set(qtpositioning_FILENAME "qtpositioning-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtpositioning/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES devendor-poly2tri.patch) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) list(APPEND FEATURE_OPTIONS "-DCMAKE_DISABLE_FIND_PACKAGE_Gypsy=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_Gconf=ON" ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtpositioning/vcpkg.json ================================================ { "name": "qtpositioning", "version": "6.10.2", "description": "The Qt Positioning API provides positioning information via QML and C++ interfaces.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ "jhasse-poly2tri", { "name": "qtbase", "default-features": false }, { "name": "qtserialport", "default-features": false, "platform": "!ios" } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtquick3d/0001-devendor-meshoptimizer.patch ================================================ diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 78ad8af..bee1ca6 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -7,6 +7,8 @@ ## Quick3DUtils Module: ##################################################################### +qt_find_package(meshoptimizer PROVIDED_TARGETS meshoptimizer::meshoptimizer) + qt_internal_add_module(Quick3DUtils SOURCES qqsbcollection.cpp qqsbcollection_p.h @@ -26,53 +28,17 @@ qt_internal_add_module(Quick3DUtils qquick3dprofiler_p.h ../3rdparty/xatlas/xatlas.cpp ../3rdparty/xatlas/xatlas.h qssglightmapuvgenerator.cpp qssglightmapuvgenerator_p.h - ../3rdparty/meshoptimizer/src/allocator.cpp - ../3rdparty/meshoptimizer/src/clusterizer.cpp - ../3rdparty/meshoptimizer/src/indexcodec.cpp - ../3rdparty/meshoptimizer/src/indexgenerator.cpp - ../3rdparty/meshoptimizer/src/meshoptimizer.h - ../3rdparty/meshoptimizer/src/overdrawanalyzer.cpp - ../3rdparty/meshoptimizer/src/overdrawoptimizer.cpp - ../3rdparty/meshoptimizer/src/simplifier.cpp - ../3rdparty/meshoptimizer/src/spatialorder.cpp - ../3rdparty/meshoptimizer/src/stripifier.cpp - ../3rdparty/meshoptimizer/src/vcacheanalyzer.cpp - ../3rdparty/meshoptimizer/src/vcacheoptimizer.cpp - ../3rdparty/meshoptimizer/src/vertexcodec.cpp - ../3rdparty/meshoptimizer/src/vertexfilter.cpp - ../3rdparty/meshoptimizer/src/vfetchanalyzer.cpp - ../3rdparty/meshoptimizer/src/vfetchoptimizer.cpp - ../3rdparty/meshoptimizer/src/partition.cpp - ../3rdparty/meshoptimizer/src/quantization.cpp NO_UNITY_BUILD_SOURCES ../3rdparty/xatlas/xatlas.cpp ../3rdparty/xatlas/xatlas.h - ../3rdparty/meshoptimizer/src/allocator.cpp - ../3rdparty/meshoptimizer/src/clusterizer.cpp - ../3rdparty/meshoptimizer/src/indexcodec.cpp - ../3rdparty/meshoptimizer/src/indexgenerator.cpp - ../3rdparty/meshoptimizer/src/meshoptimizer.h - ../3rdparty/meshoptimizer/src/overdrawanalyzer.cpp - ../3rdparty/meshoptimizer/src/overdrawoptimizer.cpp - ../3rdparty/meshoptimizer/src/simplifier.cpp - ../3rdparty/meshoptimizer/src/spatialorder.cpp - ../3rdparty/meshoptimizer/src/stripifier.cpp - ../3rdparty/meshoptimizer/src/vcacheanalyzer.cpp - ../3rdparty/meshoptimizer/src/vcacheoptimizer.cpp - ../3rdparty/meshoptimizer/src/vertexcodec.cpp - ../3rdparty/meshoptimizer/src/vertexfilter.cpp - ../3rdparty/meshoptimizer/src/vfetchanalyzer.cpp - ../3rdparty/meshoptimizer/src/vfetchoptimizer.cpp - ../3rdparty/meshoptimizer/src/partition.cpp - ../3rdparty/meshoptimizer/src/quantization.cpp DEFINES QT_BUILD_QUICK3DUTILS_LIB INCLUDE_DIRECTORIES ../3rdparty/xatlas - ../3rdparty/meshoptimizer/src/ LIBRARIES Qt::CorePrivate Qt::GuiPrivate Qt::QuickPrivate + meshoptimizer::meshoptimizer PUBLIC_LIBRARIES Qt::Core Qt::Gui ================================================ FILE: ports/qtquick3d/android-openxr-vulkan.diff ================================================ diff --git a/src/xr/quick3dxr/openxr/qquick3dxrmanager_openxr.cpp b/src/xr/quick3dxr/openxr/qquick3dxrmanager_openxr.cpp index f0d2963..8db003b 100644 --- a/src/xr/quick3dxr/openxr/qquick3dxrmanager_openxr.cpp +++ b/src/xr/quick3dxr/openxr/qquick3dxrmanager_openxr.cpp @@ -2036,8 +2036,10 @@ XrResult QQuick3DXrManagerPrivate::createXrInstance() auto graphicsAPI = QQuickWindow::graphicsApi(); if (graphicsAPI == QSGRendererInterface::Vulkan) { +#ifdef XR_USE_GRAPHICS_API_VULKAN if (isExtensionSupported(XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME, extensionProperties)) enabledExtensions.append(XR_FB_SWAPCHAIN_UPDATE_STATE_VULKAN_EXTENSION_NAME); +#endif } else if (graphicsAPI == QSGRendererInterface::OpenGL) { if (isExtensionSupported(XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME, extensionProperties)) enabledExtensions.append(XR_FB_SWAPCHAIN_UPDATE_STATE_OPENGL_ES_EXTENSION_NAME); ================================================ FILE: ports/qtquick3d/port.data.cmake ================================================ set(qtquick3d_HASH "9cffa9409b6bcf5939fedcfa3e2780ff5211176ccb883d8c1c3d17629ddd8b787be50ce55fc334156235ce7a0a3337e2f8f0f43f313299cf0ec83b783164baf1") set(qtquick3d_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtquick3d-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtquick3d-everywhere-src-6.10.2.tar.xz") set(qtquick3d_FILENAME "qtquick3d-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtquick3d/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") set(${PORT}_PATCHES 0001-devendor-meshoptimizer.patch android-openxr-vulkan.diff ) include("${SCRIPT_PATH}/qt_install_submodule.cmake") # General features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "assimp" FEATURE_quick3d_assimp #"assimp" CMAKE_REQUIRE_FIND_PACKAGE_WrapQuick3DAssimp "openxr" FEATURE_quick3dxr_openxr INVERTED_FEATURES "assimp" CMAKE_DISABLE_FIND_PACKAGE_WrapQuick3DAssimp ) if("assimp" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_quick3d_assimp=system -DTEST_quick3d_assimp=ON) else() list(APPEND FEATURE_OPTIONS -DINPUT_quick3d_assimp=no) endif() set(TOOL_NAMES balsam balsamui meshdebug shadergen instancer materialeditor shapegen lightmapviewer) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtquick3d/vcpkg.json ================================================ { "name": "qtquick3d", "version": "6.10.2", "description": "Qt Quick 3D provides a high-level API for creating 3D content and 3D user interfaces based on Qt Quick.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ "meshoptimizer", { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, "qtdeclarative", { "name": "qtquick3d", "host": true, "default-features": false }, "qtquicktimeline", "qtshadertools" ], "features": { "assimp": { "description": "assimp", "dependencies": [ "assimp" ] }, "openxr": { "description": "OpenXR support", "dependencies": [ "openxr-loader" ] } } } ================================================ FILE: ports/qtquick3dphysics/port.data.cmake ================================================ set(qtquick3dphysics_HASH "64c1beeb8e2e2a2c429e8c26fc5db58b959156d66df105b96d20606b20bac76971ae142558365baf1c66dcaf81094cdd46fee899f13c3629b713b881d3f187c7") set(qtquick3dphysics_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtquick3dphysics-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtquick3dphysics-everywhere-src-6.10.2.tar.xz") set(qtquick3dphysics_FILENAME "qtquick3dphysics-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtquick3dphysics/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES cooker) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtquick3dphysics/vcpkg.json ================================================ { "name": "qtquick3dphysics", "version": "6.10.2", "description": "Qt Quick 3D Physics provides a high-level API for physics simulation.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtquick3d", "default-features": false } ] } ================================================ FILE: ports/qtquickcontrols2/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") ================================================ FILE: ports/qtquickcontrols2/vcpkg.json ================================================ { "name": "qtquickcontrols2", "version-string": "deprecated", "port-version": 1, "description": "Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ "qtdeclarative" ] } ================================================ FILE: ports/qtquickeffectmaker/port.data.cmake ================================================ set(qtquickeffectmaker_HASH "433e86a62707f07d0333fa77fc2bcd1e6b8c248c1e2a424fa34b96713671c351f8433e73a90ef4d0f78673f0679e482650bee1f10ddecb9cb74c7b73b64d8c85") set(qtquickeffectmaker_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtquickeffectmaker-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtquickeffectmaker-everywhere-src-6.10.2.tar.xz") set(qtquickeffectmaker_FILENAME "qtquickeffectmaker-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtquickeffectmaker/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES qqem) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS_MAYBE_UNUSED QT_BUILD_EXAMPLES QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/qtquickeffectmaker/vcpkg.json ================================================ { "name": "qtquickeffectmaker", "version": "6.10.2", "description": "Qt Quick Effect Maker is a tool for creating shader effects for Qt Quick with high productivity and performance.", "homepage": "https://www.qt.io/", "license": null, "supports": "native", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtquick3d", "default-features": false }, { "name": "qtshadertools", "default-features": false } ] } ================================================ FILE: ports/qtquicktimeline/port.data.cmake ================================================ set(qtquicktimeline_HASH "079ad441fb0a66bc4cedbbe828785848d858bf0f9eda77523051960adf1d5e4ec1ee8d931879a0e36797e2ae18a808c3ba2d995f228136d2b7bd99fe3dd0028d") set(qtquicktimeline_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtquicktimeline-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtquicktimeline-everywhere-src-6.10.2.tar.xz") set(qtquicktimeline_FILENAME "qtquicktimeline-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtquicktimeline/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # QML plugin only ================================================ FILE: ports/qtquicktimeline/vcpkg.json ================================================ { "name": "qtquicktimeline", "version": "6.10.2", "description": "The Qt Quick Timeline module enables keyframe-based animations and parameterization.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false }, "qtdeclarative" ] } ================================================ FILE: ports/qtremoteobjects/port.data.cmake ================================================ set(qtremoteobjects_HASH "cebd7474112e6bbdbbc65a534be3bd9a0c6bdb054c35ff15c2ee413d7c89e9d3280a38dc14a9e82a7ac8c18f1bb1e4477a08f38cf4fe9d3e51f6ac8f0088d532") set(qtremoteobjects_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtremoteobjects-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtremoteobjects-everywhere-src-6.10.2.tar.xz") set(qtremoteobjects_FILENAME "qtremoteobjects-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtremoteobjects/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES repc) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtremoteobjects/vcpkg.json ================================================ { "name": "qtremoteobjects", "version": "6.10.2", "description": "Qt Remote Objects (QtRO) is an Inter-Process Communication (IPC) module developed for Qt. This module extends Qt's existing functionalities to enable information exchange between processes or computers, easily.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtremoteobjects", "host": true, "default-features": false } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtscxml/port.data.cmake ================================================ set(qtscxml_HASH "e29120433eb5848b115fe6715e05b090202fa62f943447697bb9f520bd72f68e73e01461be6a81dfde792ea8a13b95655c1ff1f781c3b76039bbfb535fea436b") set(qtscxml_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtscxml-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtscxml-everywhere-src-6.10.2.tar.xz") set(qtscxml_FILENAME "qtscxml-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtscxml/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES qscxmlc) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Qml INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Qml ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtscxml/vcpkg.json ================================================ { "name": "qtscxml", "version": "6.10.2", "description": "The Qt SCXML module provides functionality to create state machines from SCXML files.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtscxml", "host": true, "default-features": false } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtsensors/port.data.cmake ================================================ set(qtsensors_HASH "d64b09b28237ca05231d342f19e3fbfbfbcb8e269eb20b44f33dcb925d9e3d8f5f7dbdb018bbe81f1165d287286779d4100fa8997b4d5f0e0ca0dfc170061124") set(qtsensors_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtsensors-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtsensors-everywhere-src-6.10.2.tar.xz") set(qtsensors_FILENAME "qtsensors-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtsensors/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtsensors/vcpkg.json ================================================ { "name": "qtsensors", "version": "6.10.2", "description": "The Qt Sensors API provides access to sensor hardware via QML and C++ interfaces. The Qt Sensors API also provides a motion gesture recognition API for devices.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "qtbase", "default-features": false, "features": [ "dbus" ], "platform": "!(windows & static) & !android & !ios" }, { "name": "qtconnectivity", "default-features": false } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtserialbus/port.data.cmake ================================================ set(qtserialbus_HASH "3a44f1d012e5693eb76c50944d3ef81e50bef417dbc3f1eaa7ed12d46f89a61141fda0e13f11a9440b83f0d781a18ff2487890ca27e0d9a55d11748b4edb9a7a") set(qtserialbus_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtserialbus-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtserialbus-everywhere-src-6.10.2.tar.xz") set(qtserialbus_FILENAME "qtserialbus-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtserialbus/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(TOOL_NAMES canbusutil ) # Probably not worth the time to make it features: # qt_configure_add_summary_entry(ARGS "socketcan") # only unix # qt_configure_add_summary_entry(ARGS "socketcan_fd") # only unix # qt_configure_add_summary_entry(ARGS "modbus-serialport") qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtserialbus/vcpkg.json ================================================ { "name": "qtserialbus", "version": "6.10.2", "description": "The Qt Serial Bus API provides classes and functions to access the various industrial serial buses and protocols, such as CAN, ModBus, and others.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] }, { "name": "qtserialbus", "host": true, "default-features": false }, { "name": "qtserialport", "default-features": false } ] } ================================================ FILE: ports/qtserialport/port.data.cmake ================================================ set(qtserialport_HASH "e6d68b31c6b617764df859fc30ea5c5e083d827e28f8c48db55a8772f4b390d70067008b1f954f7208112cb50fee87f7c53289675fd55850903ec53c4be4ca42") set(qtserialport_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtserialport-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtserialport-everywhere-src-6.10.2.tar.xz") set(qtserialport_FILENAME "qtserialport-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtserialport/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtserialport/vcpkg.json ================================================ { "name": "qtserialport", "version": "6.10.2", "description": "Qt Serial Port provides basic functionality for configuration, I/O operations, and getting and setting the control signals of the RS-232 pinouts.", "homepage": "https://www.qt.io/", "license": null, "supports": "!ios", "dependencies": [ { "name": "qtbase", "default-features": false } ] } ================================================ FILE: ports/qtshadertools/port.data.cmake ================================================ set(qtshadertools_HASH "819a51a8dc2cd0f915a442c92374051945363df5d2196062e07338b0f0435514650a25bb21a3962c7f2921e9eebb1c3432c7d1bdc5f4ffefc24146d8eef5e882") set(qtshadertools_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtshadertools-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtshadertools-everywhere-src-6.10.2.tar.xz") set(qtshadertools_FILENAME "qtshadertools-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtshadertools/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES qsb) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtshadertools/vcpkg.json ================================================ { "name": "qtshadertools", "version": "6.10.2", "description": "The Qt Shader Tools module is designed to provide a set of tools and utilities to work with graphics shaders.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtshadertools", "host": true, "default-features": false } ] } ================================================ FILE: ports/qtspeech/port.data.cmake ================================================ set(qtspeech_HASH "0fda652e6640a5d87df6390faac6b071dbf04e62a3eb54ff990963d62c3c99359ac8008152eddd503c623e015ff5d21b068603c0576b24f2db51e6834d388e4a") set(qtspeech_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtspeech-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtspeech-everywhere-src-6.10.2.tar.xz") set(qtspeech_FILENAME "qtspeech-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtspeech/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) # Note: none of these features are implemented in the manifest yet # flite -> Missing port for flite # speechd -> missing port for speechd vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "flite" FEATURE_flite "flite-alsa" FEATURE_flite-alsa "speechd" FEATURE_speechd INVERTED_FEATURES "flite" CMAKE_DISABLE_FIND_PACKAGE_Flite "flite-alsa" CMAKE_DISABLE_FIND_PACKAGE_Alsa "speechd" CMAKE_DISABLE_FIND_PACKAGE_SpeechDispatcher ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON CONFIGURE_OPTIONS_MAYBE_UNUSED QT_BUILD_EXAMPLES QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) ================================================ FILE: ports/qtspeech/vcpkg.json ================================================ { "name": "qtspeech", "version": "6.10.2", "description": "The Qt Speech module enables a Qt application to support accessibility features such as text-to-speech, which is useful for end-users who are visually challenged or cannot access the application for whatever reason.", "homepage": "https://www.qt.io/", "license": null, "supports": "!(windows & x86)", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "widgets" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtmultimedia", "default-features": false } ] } ================================================ FILE: ports/qtsvg/port.data.cmake ================================================ set(qtsvg_HASH "b455d7be4d6e320bbabf8f7c4936a46b248c5782226ca0c5249354efc6ea3b9463a1518de22a54605281c0ec2088b851db6ec824dceaf2beeff55896844651f1") set(qtsvg_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtsvg-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtsvg-everywhere-src-6.10.2.tar.xz") set(qtsvg_FILENAME "qtsvg-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtsvg/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtsvg/vcpkg.json ================================================ { "name": "qtsvg", "version": "6.10.2", "description": "Qt SVG provides classes for rendering and displaying SVG drawings in widgets and on other paint devices.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] } ] } ================================================ FILE: ports/qttools/devendor-litehtml.patch ================================================ diff --git a/src/assistant/CMakeLists.txt b/src/assistant/CMakeLists.txt index 5d2bf2b67c..abd9b513d3 100644 --- a/src/assistant/CMakeLists.txt +++ b/src/assistant/CMakeLists.txt @@ -34,7 +34,7 @@ if(TARGET qlitehtml) # but found in the system, because they are imported only to the subdirectory scope # where find_package was called. But that's fine, we wouldn't be able to set compiler flags # on them anyway. - if(TARGET litehtml) + if(0) qt_internal_set_exceptions_flags(litehtml OFF) qt_disable_warnings(litehtml) endif() diff --git a/src/assistant/qlitehtml/src/container_qpainter_p.h b/src/assistant/qlitehtml/src/container_qpainter_p.h index 23c55b4..4ae1cc1 100644 --- a/src/assistant/qlitehtml/src/container_qpainter_p.h +++ b/src/assistant/qlitehtml/src/container_qpainter_p.h @@ -14,7 +14,6 @@ #include #include -#include #include class Selection ================================================ FILE: ports/qttools/port.data.cmake ================================================ set(qttools_HASH "1be43a64e272ec0fcd047aca6d7c52bc12ad9a8579e4274a14422b09d3ed43c5afd6bd39ef22f7e87b6df182ea407d60987b02390596b757f375a7d711f1c6e0") set(qttools_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qttools-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qttools-everywhere-src-6.10.2.tar.xz") set(qttools_FILENAME "qttools-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qttools/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES devendor-litehtml.patch ) #TODO check features and setup: (means force features!) # -- The following OPTIONAL packages have not been found: # * Qt6AxContainer # * Clang # * WrapLibClang (required version >= 8) # Configure summary: # Qt Tools: # Qt Assistant ........................... yes # QDoc ................................... no # Clang-based lupdate parser ............. no # Qt Designer ............................ yes # Qt Distance Field Generator ............ yes # kmap2qmap .............................. yes # Qt Linguist ............................ yes # Mac Deployment Tool .................... no # pixeltool .............................. yes # qdbus .................................. yes # qev .................................... yes # Qt Attributions Scanner ................ yes # qtdiag ................................. yes # qtpaths ................................ yes # qtplugininfo ........................... yes # Windows deployment tool ................ yes # General features: vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "assistant" FEATURE_assistant "designer" FEATURE_designer "linguist" FEATURE_linguist "qdbus" FEATURE_qdbus "qdoc" CMAKE_REQUIRE_FIND_PACKAGE_Clang #"qdoc" CMAKE_REQUIRE_FIND_PACKAGE_WrapLibClang "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Qml "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6QuickWidgets "qml" FEATURE_distancefieldgenerator INVERTED_FEATURES "qdoc" CMAKE_DISABLE_FIND_PACKAGE_Clang "qdoc" CMAKE_DISABLE_FIND_PACKAGE_WrapLibClang "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Qml "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets ) set(TOOL_NAMES assistant designer lconvert linguist lprodump lrelease-pro lrelease lupdate-pro lupdate pixeltool qcollectiongenerator qdistancefieldgenerator qhelpgenerator qtattributionsscanner qtdiag qtdiag6 qtpaths qtplugininfo qdbus qdbusviewer qdoc ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND TOOL_NAMES windeployqt) elseif(VCPKG_TARGET_IS_OSX) list(APPEND TOOL_NAMES macdeployqt) endif() set(unused "") if(NOT "assistant" IN_LIST FEATURES) list(APPEND unused QLITEHTML_USE_SYSTEM_LITEHTML CMAKE_REQUIRE_FIND_PACKAGE_litehtml) endif() qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DCMAKE_DISABLE_FIND_PACKAGE_Qt6AxContainer=ON -DQLITEHTML_USE_SYSTEM_LITEHTML:BOOL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_litehtml:BOOL=ON CONFIGURE_OPTIONS_MAYBE_UNUSED ${unused} ) if(VCPKG_TARGET_IS_OSX) set(OSX_APP_FOLDERS Designer.app Linguist.app pixeltool.app) if (FEATURE_qdbus) message(STATUS "Built qdbusviewer") list(APPEND OSX_APP_FOLDERS qdbusviewer.app) endif() foreach(_appfolder IN LISTS OSX_APP_FOLDERS) # Folders are only existing in case of native builds if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${_appfolder}") message(STATUS "Moving: ${_appfolder}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${_appfolder}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${_appfolder}/" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${_appfolder}/") endif() endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(GLOB_RECURSE debug_dir "${CURRENT_PACKAGES_DIR}/debug/*") list(LENGTH debug_dir debug_dir_elements) if(debug_dir_elements EQUAL 0) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() ================================================ FILE: ports/qttools/vcpkg.json ================================================ { "name": "qttools", "version": "6.10.2", "description": "A collection of tools and utilities that come with the Qt framework to assist developers in the creation, management, and deployment of Qt applications.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "qttools", "host": true, "default-features": false, "features": [ "linguist" ] } ], "features": { "assistant": { "description": "Build Qt Assistant", "dependencies": [ { "name": "litehtml", "default-features": false }, { "name": "qtbase", "default-features": false, "features": [ "network", "png", "sql-sqlite", "widgets" ] }, { "name": "qttools", "host": true, "default-features": false, "features": [ "assistant" ] } ] }, "designer": { "description": "Build Qt Designer", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network", "png", "widgets" ] } ] }, "linguist": { "description": "Build Qt Linguist components", "dependencies": [ { "name": "qttools", "default-features": false, "features": [ "designer" ] } ] }, "qdbus": { "description": "Build QDBusViewer", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "dbus", "widgets" ] } ] }, "qdoc": { "description": "Build QDoc", "supports": "!android", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "enable-rtti" ] } ] }, "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "widgets" ] }, { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qttools/windeployqt.debug.bat ================================================ @echo off setlocal enabledelayedexpansion set mypath=%~dp0 set mypath=%mypath:~0,-1% set BAKCD=!CD! cd /D "%mypath%\..\..\..\debug\bin" set PATH=!CD!;%PATH% "%mypath%\windeployqt.exe" --qmake "%mypath%\qmake.debug.bat" %* cd /D "%BAKCD%" endlocal ================================================ FILE: ports/qttranslations/port.data.cmake ================================================ set(qttranslations_HASH "f6665728b341dc105c98854241dcd07c75014685a07c9a852f5e062186ef4440bd0da8e87208ffeba266f7c1ab8dcb2e676f88094153cec3aa785ecd06aa8758") set(qttranslations_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qttranslations-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qttranslations-everywhere-src-6.10.2.tar.xz") set(qttranslations_FILENAME "qttranslations-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qttranslations/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) set(TOOL_NAMES) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS_MAYBE_UNUSED QT_BUILD_EXAMPLES QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # only translation files. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/qttranslations/vcpkg.json ================================================ { "name": "qttranslations", "version": "6.10.2", "description": "Qt translations.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false }, { "name": "qttools", "default-features": false, "features": [ "linguist" ] } ] } ================================================ FILE: ports/qtvirtualkeyboard/hunspell_include_path_fix.patch ================================================ diff --git a/src/plugins/hunspell/module/hunspellworker_p.h b/src/plugins/hunspell/module/hunspellworker_p.h index b79354429..a843bdfa6 100644 --- a/src/plugins/hunspell/module/hunspellworker_p.h +++ b/src/plugins/hunspell/module/hunspellworker_p.h @@ -50,7 +50,7 @@ #include #include #include -#include +#include #include "hunspellwordlist_p.h" QT_BEGIN_NAMESPACE diff --git a/config.tests/hunspell/main.cpp b/config.tests/hunspell/main.cpp index 76f2cb3df..91906bc48 100644 --- a/config.tests/hunspell/main.cpp +++ b/config.tests/hunspell/main.cpp @@ -1,7 +1,7 @@ // Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: BSD-3-Clause -#include +#include int main(int argc, char** argv) { diff --git a/src/plugins/hunspell/module/hunspellwordlist.cpp b/src/plugins/hunspell/module/hunspellwordlist.cpp index ec55d4d3b..846af4726 100644 --- a/src/plugins/hunspell/module/hunspellwordlist.cpp +++ b/src/plugins/hunspell/module/hunspellwordlist.cpp @@ -3,7 +3,7 @@ #include "hunspellwordlist_p.h" #include -#include +#include QT_BEGIN_NAMESPACE namespace QtVirtualKeyboard { ================================================ FILE: ports/qtvirtualkeyboard/port.data.cmake ================================================ set(qtvirtualkeyboard_HASH "09b4c786e4a2e5a9283af8fe03ff185aa9c7805cb98ec301ca74513bbe37d826f7b1df6b8c1887b95a862cd99bb459819b68d23412cb7f5d02457ffc939fe583") set(qtvirtualkeyboard_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtvirtualkeyboard-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtvirtualkeyboard-everywhere-src-6.10.2.tar.xz") set(qtvirtualkeyboard_FILENAME "qtvirtualkeyboard-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtvirtualkeyboard/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES "hunspell_include_path_fix.patch") if("hunspell" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS -DINPUT_vkb_hunspell:STRING=system) else() list(APPEND FEATURE_OPTIONS -DINPUT_vkb_hunspell=no) endif() # # To use t9write, overlay this port with the following line changed to: # list(APPEND FEATURE_OPTIONS -DINPUT_vkb_handwriting=t9write) # and add t9write as a dependency. # list(APPEND FEATURE_OPTIONS -DINPUT_vkb_handwriting=no -DCMAKE_DISABLE_FIND_PACKAGE_CerenceHwrAlphabetic:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_CerenceHwrCjk:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_CerenceXt9:BOOL=ON -DCMAKE_DISABLE_FIND_PACKAGE_MyScript:BOOL=ON ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} -DINPUT_vkb_style:STRING=default CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG -DFEATURE_vkb_record_trace_input=ON -DFEATURE_vkb_sensitive_debug=ON ) ================================================ FILE: ports/qtvirtualkeyboard/vcpkg.json ================================================ { "name": "qtvirtualkeyboard", "version": "6.10.2", "description": "The Qt Virtual Keyboard project provides an input framework and reference keyboard frontend for Qt 6 on Linux Desktop/X11, Windows Desktop, and Boot2Qt targets.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false }, { "name": "qtsvg", "default-features": false } ], "default-features": [ "hunspell" ], "features": { "hunspell": { "description": "Use hunspell", "dependencies": [ "hunspell" ] } } } ================================================ FILE: ports/qtwayland/port.data.cmake ================================================ set(qtwayland_HASH "c485421ffcbd03a55560272c08ae3b1ad5ea5d7b97e3cacff700bfdc8a458520d040c3443a2ec14d822af8f3fdb9754c32c065c73b586c8db8ea32bedba164b9") set(qtwayland_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtwayland-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtwayland-everywhere-src-6.10.2.tar.xz") set(qtwayland_FILENAME "qtwayland-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtwayland/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") message(WARNING "qtwayland requires libwayland-dev from your system package manager. You can install it with sudo apt install libwayland-dev on Ubuntu systems.") set(${PORT}_PATCHES) set(TOOL_NAMES qtwaylandscanner) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} TOOL_NAMES ${TOOL_NAMES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtwayland/vcpkg.json ================================================ { "name": "qtwayland", "version": "6.10.2", "description": "A toolbox for making Qt based Wayland compositors", "homepage": "https://www.qt.io/", "license": null, "supports": "!windows", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "wayland" ] } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtwebchannel/port.data.cmake ================================================ set(qtwebchannel_HASH "8af8367e89cd09f58625f34c3b4f3fa885fc82b2f6b2c5fcb5347199b65868012afe1c87006a5367fee669d97ba44e07705c3ada12bc34c72e0455ceca65c4b1") set(qtwebchannel_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtwebchannel-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtwebchannel-everywhere-src-6.10.2.tar.xz") set(qtwebchannel_FILENAME "qtwebchannel-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtwebchannel/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Qml ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtwebchannel/vcpkg.json ================================================ { "name": "qtwebchannel", "version": "6.10.2", "description": "Qt WebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application).", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtwebengine/allow-msvc-145.diff ================================================ diff --git a/configure.cmake b/configure.cmake index 6b3b5f770..70a867bdb 100644 --- a/configure.cmake +++ b/configure.cmake @@ -473,7 +473,7 @@ qt_webengine_configure_check("compiler" ) qt_webengine_configure_check("visual-studio" MODULES QtWebEngine QtPdf - CONDITION NOT WIN32 OR NOT MSVC OR MSVC_TOOLSET_VERSION EQUAL 142 OR MSVC_TOOLSET_VERSION EQUAL 143 + CONDITION NOT WIN32 OR NOT MSVC OR MSVC_TOOLSET_VERSION EQUAL 142 OR MSVC_TOOLSET_VERSION EQUAL 143 OR MSVC_TOOLSET_VERSION EQUAL 145 MESSAGE "Build requires Visual Studio 2019 or higher." DOCUMENTATION "Visual Studio 2019 or higher." TAGS WINDOWS_PLATFORM ================================================ FILE: ports/qtwebengine/clang-cl.patch ================================================ diff --git a/src/3rdparty/gn/build/build_win.ninja.template b/src/3rdparty/gn/build/build_win.ninja.template index 7d2704c..b14186b 100644 --- a/src/3rdparty/gn/build/build_win.ninja.template +++ b/src/3rdparty/gn/build/build_win.ninja.template @@ -8,5 +8,5 @@ rule alink_thin description = LIB $out rule link - command = $ld /nologo $in /link $ldflags /PDB:$out.pdb /OUT:$out $solibs $libs + command = $ld /nologo $in $ldflags /PDB:$out.pdb /OUT:$out $solibs $libs description = LINK $out diff --git a/src/gn/CMakeLists.txt b/src/gn/CMakeLists.txt index 0fe3e4e..1e2556f 100644 --- a/src/gn/CMakeLists.txt +++ b/src/gn/CMakeLists.txt @@ -31,7 +31,7 @@ find_package(Ninja 1.7.2 REQUIRED) if(WIN32) set(GN_EXECUTABLE gn.exe) - if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW) + if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW OR MSVC) # Use lld-link instead of clang-cl. set(GN_LINKER ${CMAKE_LINKER}) endif() ================================================ FILE: ports/qtwebengine/cross-build.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 789f15bc6..be3ea630d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -114,7 +114,7 @@ endif() # HOST PROJECT ## -if(CMAKE_CROSSCOMPILING AND NOT IOS AND NOT MACOS AND NOT WIN32) +if(0) if(NOT Gn_FOUND) message(FATAL_ERROR "\nHost gn not found - cross compilation not possible") @@ -148,7 +148,7 @@ if(CMAKE_CROSSCOMPILING AND NOT IOS AND NOT MACOS) endif() # install gn for cross build -if((LINUX OR MACOS OR WIN32) AND INSTALL_GN) +if(NOT CMAKE_CROSSCOMPILING AND INSTALL_GN) if(NOT QT_WILL_INSTALL) set(copyOutput ${QT_BUILD_DIR}/${INSTALL_LIBEXECDIR}/gn${CMAKE_EXECUTABLE_SUFFIX} ================================================ FILE: ports/qtwebengine/disable-host-pkgconfig.diff ================================================ diff --git a/cmake/QtToolchainHelpers.cmake b/cmake/QtToolchainHelpers.cmake index 8d5a97777..08296e504 100644 --- a/cmake/QtToolchainHelpers.cmake +++ b/cmake/QtToolchainHelpers.cmake @@ -142,6 +142,7 @@ endfunction() function(create_pkg_config_wrapper wrapperName wrapperCmd) file(WRITE ${wrapperName} "#!/bin/sh\n" + "exit 0\n" "unset PKG_CONFIG_LIBDIR\n" "unset PKG_CONFIG_PATH\n" "unset PKG_CONFIG_SYSROOT_DIR\n" ================================================ FILE: ports/qtwebengine/include-dir-order.diff ================================================ diff --git a/src/core/configure/BUILD.root.gn.in b/src/core/configure/BUILD.root.gn.in index 214ef6e715..8b76e08309 100644 --- a/src/core/configure/BUILD.root.gn.in +++ b/src/core/configure/BUILD.root.gn.in @@ -74,11 +74,22 @@ config("QtWebEngineCore_config") { defines = [ @GN_DEFINES@, ] + # Don't let /include appear in QtWebEngineCore_config: + # vendored dependencies (protobuf, dawn, skia, ...) have inter-dependencies + # which must not accidentally pick headers from installed ports. + # Instead, attach these includes to a source_set used as another dependency. +} +config("QtWebEngineCore_include_dirs_config") { include_dirs = [ @GN_INCLUDE_DIRS@, rebase_path("${target_gen_dir}/.moc/") ] } +source_set("QtWebEngineCore_include_dirs") { + public_configs = [ + ":QtWebEngineCore_include_dirs_config" + ] +} declare_args() { use_embedded_config = false @@ -214,6 +225,8 @@ shared_library("QtWebEngineCore") { "//tools/v8_context_snapshot:v8_context_snapshot" ] } + # Complements QtWebEngineCore_config modifcation + deps += [ ":QtWebEngineCore_include_dirs" ] } source_set("qtwebengine_spellcheck_sources") { @@ -571,6 +584,8 @@ if (is_win) { "@GN_SOURCE_ROOT@/sandbox_win.cpp" ] public_deps = [ "//sandbox/win:sandbox" ] + # Complements QtWebEngineCore_config modifcation + deps = [ ":QtWebEngineCore_include_dirs" ] } } ================================================ FILE: ports/qtwebengine/osx-sdk-info.diff ================================================ diff --git a/cmake/QtToolchainHelpers.cmake b/cmake/QtToolchainHelpers.cmake index 8d5a97777..239eaa1dd 100644 --- a/cmake/QtToolchainHelpers.cmake +++ b/cmake/QtToolchainHelpers.cmake @@ -389,6 +389,10 @@ macro(append_compiler_linker_sdk_setup) use_libcxx=true ) _qt_internal_get_apple_sdk_version(apple_sdk_version) + list(APPEND gnArgArg + CMAKE_OSX_SYSROOT="${CMAKE_OSX_SYSROOT}" + apple_sdk_version="${apple_sdk_version}" + ) if (apple_sdk_version LESS 13.2) list(APPEND gnArgArg use_sck=false diff --git a/src/3rdparty/chromium/build/config/apple/sdk_info.py b/src/3rdparty/chromium/build/config/apple/sdk_info.py index 81b06d438..03af4f2db 100755 --- a/src/3rdparty/chromium/build/config/apple/sdk_info.py +++ b/src/3rdparty/chromium/build/config/apple/sdk_info.py @@ -59,8 +59,11 @@ def FillXcodeVersion(settings, developer_dir): settings['xcode_build'] = version_plist['ProductBuildVersion'] return - lines = subprocess.check_output(['xcodebuild', + try: + lines = subprocess.check_output(['xcodebuild', '-version']).decode('UTF-8').splitlines() + except: + lines = [ 'Required: 12', 'Actual: unknown' ] settings['xcode_version'] = FormatVersion(lines[0].split()[-1]) settings['xcode_version_int'] = int(settings['xcode_version'], 10) settings['xcode_build'] = lines[-1].split()[-1] @@ -86,10 +89,13 @@ def FillSDKPathAndVersion(settings, platform, xcode_version): settings['sdk_build'] = subprocess.check_output( ['xcrun', '-sdk', platform, '--show-sdk-build-version']).decode('UTF-8').strip() - settings['toolchains_path'] = os.path.join( + try: + settings['toolchains_path'] = os.path.join( subprocess.check_output(['xcode-select', '-print-path']).decode('UTF-8').strip(), 'Toolchains/XcodeDefault.xctoolchain') + except: + settings['toolchains_path'] = '' def CreateXcodeSymlinkAt(src, dst, root_build_dir): diff --git a/src/3rdparty/chromium/build/config/mac/mac_sdk.gni b/src/3rdparty/chromium/build/config/mac/mac_sdk.gni index 00588459e..48b4a0102 100644 --- a/src/3rdparty/chromium/build/config/mac/mac_sdk.gni +++ b/src/3rdparty/chromium/build/config/mac/mac_sdk.gni @@ -15,7 +15,9 @@ assert( assert(current_os == "mac" || current_toolchain == default_toolchain || target_os == "android") declare_args() { + apple_sdk_version = "" + CMAKE_OSX_SYSROOT = "" # The following two variables control the minimum supported version for # macOS: # @@ -115,6 +117,7 @@ if (mac_sdk_path == "" && use_system_xcode && } if (use_system_xcode) { + if (CMAKE_OSX_SYSROOT == "") { # The tool will print the SDK path on the first line, and the version on the # second line. find_sdk_args = [ @@ -133,6 +136,12 @@ if (use_system_xcode) { } else { mac_bin_path = find_sdk_lines[1] } + } else { + mac_sdk_version = apple_sdk_version + mac_sdk_build_version = "" + mac_sdk_path = CMAKE_OSX_SYSROOT + mac_bin_path = "" + } } else { mac_sdk_version = mac_sdk_official_version mac_sdk_build_version = mac_sdk_official_build_version ================================================ FILE: ports/qtwebengine/pdf-system-libjpeg.diff ================================================ diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt index 95931a261..61806ee08 100644 --- a/src/pdf/CMakeLists.txt +++ b/src/pdf/CMakeLists.txt @@ -215,6 +215,10 @@ foreach(arch ${archs}) ARGS pdfium_use_system_libtiff CONDITION QT_FEATURE_webengine_system_libtiff ) + extend_gn_list(gnArgArg + ARGS use_system_libjpeg + CONDITION QT_FEATURE_webengine_system_libjpeg + ) extend_gn_list(gnArgArg ARGS use_qt_libjpeg CONDITION QT_FEATURE_webengine_qt_libjpeg ================================================ FILE: ports/qtwebengine/pdf-system-libpng.diff ================================================ diff --git a/src/pdf/CMakeLists.txt b/src/pdf/CMakeLists.txt index 61806ee08..00621491e 100644 --- a/src/pdf/CMakeLists.txt +++ b/src/pdf/CMakeLists.txt @@ -205,6 +205,7 @@ foreach(arch ${archs}) ) extend_gn_list(gnArgArg ARGS pdfium_use_system_libpng use_system_libpng + skia_use_system_libpng CONDITION QT_FEATURE_webengine_system_libpng ) extend_gn_list(gnArgArg ================================================ FILE: ports/qtwebengine/pkg-config.diff ================================================ diff --git a/src/3rdparty/chromium/build/config/linux/pkg_config.gni b/src/3rdparty/chromium/build/config/linux/pkg_config.gni index 0d873903c..09bf2e874 100644 --- a/src/3rdparty/chromium/build/config/linux/pkg_config.gni +++ b/src/3rdparty/chromium/build/config/linux/pkg_config.gni @@ -54,7 +54,7 @@ pkg_config_script = "//build/config/linux/pkg-config.py" pkg_config_args = [] common_pkg_config_args = [] -if (sysroot != "") { +if (sysroot != "" && !is_android) { # Pass the sysroot if we're using one (it requires the CPU arch also). common_pkg_config_args += [ "-s", ================================================ FILE: ports/qtwebengine/port.data.cmake ================================================ set(qtwebengine_HASH "560411c33cb55d36089ac638a1922106d10d996f686fd95fddec38dfb07f38c2f19967c23fbccd336b7459b19930cb886d2a095db22eb88e456d060d7107de37") set(qtwebengine_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtwebengine-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtwebengine-everywhere-src-6.10.2.tar.xz") set(qtwebengine_FILENAME "qtwebengine-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtwebengine/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES "clang-cl.patch" "cross-build.diff" "disable-host-pkgconfig.diff" "osx-sdk-info.diff" "pdf-system-libjpeg.diff" "pdf-system-libpng.diff" "pkg-config.diff" "rpath.diff" "include-dir-order.diff" "allow-msvc-145.diff" ) set(qtwebengine_target "${VCPKG_TARGET_TRIPLET}-${VCPKG_CMAKE_SYSTEM_NAME}") if(VCPKG_CROSSCOMPILING) if(NOT qtwebengine_host STREQUAL qtwebengine_target) # Port limitation: qtwebengine-chromium builds and runs host tools. message(WARNING "Building for ${TARGET_TRIPLET} on ${HOST_TRIPLET} is unsupported.") endif() if(FEATURES STREQUAL "core") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() else() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" "set(qtwebengine_host \"${qtwebengine_target}\")\n") if(FEATURES STREQUAL "core") # Install only the custom gn executable. set(VCPKG_BUILD_TYPE "release") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) qt_install_submodule( CONFIGURE_OPTIONS -DBUILD_ONLY_GN=ON CONFIGURE_OPTIONS_MAYBE_UNUSED INSTALL_MKSPECSDIR QT_BUILD_BENCHMARKS QT_BUILD_EXAMPLES QT_BUILD_TESTS QT_MKSPECS_DIR QT_USE_DEFAULT_CMAKE_OPTIMIZATION_FLAGS ) qt_fixup_and_cleanup(TOOL_NAMES gn) qt_install_copyright("${SOURCE_PATH}") return() endif() endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "geolocation" FEATURE_webengine_geolocation "geolocation" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Positioning "pdf" FEATURE_qtpdf_build "proprietary-codecs" FEATURE_webengine_proprietary_codecs "spellchecker" FEATURE_webengine_spellchecker "webchannel" FEATURE_webengine_webchannel "webchannel" CMAKE_REQUIRE_FIND_PACKAGE_Qt6WebChannel "webengine" FEATURE_qtwebengine_build INVERTED_FEATURES "geolocation" CMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning "webchannel" CMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel ) if(VCPKG_TARGET_IS_OSX AND "spellchecker" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_native_spellchecker=ON") endif() if(VCPKG_TARGET_IS_WINDOWS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" static_runtime) list(APPEND FEATURE_OPTIONS "-DQT_FEATURE_static_runtime=${static_runtime}") endif() # webengine-extensions # webengine-printing-and-pdf # webengine-pepper-plugins set(deactivated_features webengine_webrtc_pipewire) foreach(_feat IN LISTS deactivated_features) list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=OFF") endforeach() set(enabled_features webengine_webrtc) foreach(_feat IN LISTS enabled_features) list(APPEND FEATURE_OPTIONS "-DFEATURE_${_feat}=ON") endforeach() if(NOT VCPKG_TARGET_IS_WINDOWS) # qt_configure_add_summary_entry(ARGS "webengine-system-lcms2") # qt_configure_add_summary_entry(ARGS "webengine-system-libpci") # + ALSA and PULSEAUDIO # gbm, libpci ? set(system_libs freetype glib harfbuzz libjpeg libpng libtiff libwebp libxml minizip re2 snappy zlib) if(NOT VCPKG_TARGET_IS_IOS AND NOT VCPKG_TARGET_IS_OSX) list(APPEND system_libs icu) endif() if("pdfium" IN_LIST FEATURES) list(APPEND system_libs lcms2 libopenjpeg2) endif() if("webengine" IN_LIST FEATURES) list(APPEND system_libs ffmpeg opus) endif() foreach(_sys_lib IN LISTS system_libs) list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_system_${_sys_lib}=ON") endforeach() # vcpkg ports exist, but don't work with chromium list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_system_libevent=OFF") list(APPEND FEATURE_OPTIONS "-DFEATURE_webengine_system_libvpx=OFF") vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") list(APPEND FEATURE_OPTIONS "-DVCPKG_LOCK_FIND_PACKAGE_PkgConfig=ON") # Note /share/Qt6/QtBuildRepoHelpers.cmake list(APPEND FEATURE_OPTIONS "-DFEATURE_pkg_config=ON") # Note /share/Qt6BuildInternals/QtBuildInternalsExtra.cmake list(APPEND FEATURE_OPTIONS "-DQT_SKIP_BUILD_INTERNALS_PKG_CONFIG_FEATURE=ON") endif() vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) #vcpkg_find_acquire_program(GN) # Qt builds its own internal version find_program(NODEJS NAMES node PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/node" "${CURRENT_HOST_INSTALLED_DIR}/tools/node/bin" ENV PATH NO_DEFAULT_PATH ) if(NOT NODEJS) message(FATAL_ERROR "node not found! Please install it via your system package manager!") endif() get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${NODEJS_DIR}") get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${FLEX_DIR}") get_filename_component(BISON_DIR "${BISON}" DIRECTORY ) vcpkg_add_to_path(PREPEND "${BISON_DIR}") function(download_distfile var url sha512) string(REGEX REPLACE ".*/" "" filename "${url}") vcpkg_download_distfile(archive URLS "${url}" FILENAME "${filename}" SHA512 "${sha512}" ) set("${var}" "${archive}" PARENT_SCOPE) endfunction() download_distfile(html5lib "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl" 53e828155e489176e8ea0cdc941ec6271764bbf7069b1a83c0ce8adb26694450d17d7c76b4a00a14dbb99ca203ae02b3d8c8e41953fd59499bbc8a8d4900975b ) download_distfile(six "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl" 2796b93aaac73193faeb5c93a85d23c2ae9fc4a7e57df88dc34b704a36fa62cd0b1fb5d1a74b961a23eff2467be94eb14f5f10874dfa733dc4ab59715280bbf3 ) download_distfile(webencodings "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl" 2a34dbebc33a44a3691216104982b4a978a2a60b38881fc3704d04cb1da38ea2878b5ffec5ac19ac43f50d00c8d4165e05fdf6fa4363a564d8c5090411fc392d ) x_vcpkg_get_python_packages( OUT_PYTHON_VAR PYTHON3 PYTHON_VERSION 3 PACKAGES --no-index "${html5lib}" "${six}" "${webencodings}" ) get_filename_component(PYTHON_DIR "${PYTHON3}" DIRECTORY ) vcpkg_add_to_path(APPEND "${PYTHON_DIR}") vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") set(GPERF "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf/gperf${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(CMAKE_HOST_WIN32) # WIN32 HOST probably has win_flex and win_bison! if(NOT EXISTS "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${FLEX}" "${FLEX_DIR}/flex${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() if(NOT EXISTS "${BISON_DIR}/BISON${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CREATE_LINK "${BISON}" "${BISON_DIR}/bison${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() endif() string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length) # We know that C:/buildrees/${PORT} is to long to build Release. Debug works however. Means 24 length is too much but 23 might work. if(buildtree_length GREATER 22 AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_ARCHITECTURE MATCHES "arm64") message(WARNING "Buildtree path '${CURRENT_BUILDTREES_DIR}' is too long.\nConsider passing --x-buildtrees-root= to vcpkg!\nTrying to use '${CURRENT_BUILDTREES_DIR}/../tmp'") set(CURRENT_BUILDTREES_DIR "${CURRENT_BUILDTREES_DIR}/../tmp") # activly avoid long path issues in CI. -> Means CI will not return logs cmake_path(NORMAL_PATH CURRENT_BUILDTREES_DIR) string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtree_length_new) if(buildtree_length_new GREATER 22) message(FATAL_ERROR "Buildtree path is too long. Build will fail! Pass --x-buildtrees-root= to vcpkg!") endif() file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}") endif() set(ENV{QTWEBENGINE_GN_THREADS} "${VCPKG_CONCURRENCY}") set(ENV{NINJAFLAGS} "-j${VCPKG_CONCURRENCY} $ENV{NINJAFLAGS}") ##### qt_install_submodule, unrolled set(qt_plugindir ${QT6_DIRECTORY_PREFIX}plugins) set(qt_qmldir ${QT6_DIRECTORY_PREFIX}qml) qt_download_submodule(PATCHES ${${PORT}_PATCHES}) if(QT_UPDATE_VERSION) return() endif() qt_cmake_configure( DISABLE_PARALLEL_CONFIGURE # due to in-source changes. OPTIONS ${FEATURE_OPTIONS} "-DGPerf_EXECUTABLE=${GPERF}" "-DBISON_EXECUTABLE=${BISON}" "-DFLEX_EXECUTABLE=${FLEX}" "-DNodejs_EXECUTABLE=${NODEJS}" "-DPython3_EXECUTABLE=${PYTHON3}" -DQT_FEATURE_webengine_jumbo_build=0 -DVCPKG_LOCK_FIND_PACKAGE_BISON=ON -DVCPKG_LOCK_FIND_PACKAGE_FLEX=ON -DVCPKG_LOCK_FIND_PACKAGE_GPerf=ON -DVCPKG_LOCK_FIND_PACKAGE_Ninja=ON -DVCPKG_LOCK_FIND_PACKAGE_Nodejs=ON OPTIONS_MAYBE_UNUSED FEATURE_webengine_webrtc ) vcpkg_backup_env_variables(VARS PKG_CONFIG_PATH) file(GLOB target_args_gn RELATIVE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/core/Release" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/core/Release/*/args.gn") if(NOT VCPKG_BUILD_TYPE) block(SCOPE_FOR VARIABLES) set(VCPKG_BUILD_TYPE debug) if(VCPKG_TARGET_IS_LINUX AND EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/core/Debug/${target_args_gn}") file(APPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/core/Debug/${target_args_gn}" "\ngcc_target_rpath=\"\\\${ORIGIN}:${CURRENT_INSTALLED_DIR}/debug/lib\"\n") endif() vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig" "${CURRENT_INSTALLED_DIR}/share/pkgconfig") vcpkg_cmake_install(ADD_BIN_TO_PATH) endblock() endif() vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) block(SCOPE_FOR VARIABLES) set(VCPKG_BUILD_TYPE release) if(VCPKG_TARGET_IS_LINUX AND EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/core/Release/${target_args_gn}") file(APPEND "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/core/Release/${target_args_gn}" "\ngcc_target_rpath=\"\\\${ORIGIN}:${CURRENT_INSTALLED_DIR}/lib\"\n") endif() vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig" "${CURRENT_INSTALLED_DIR}/share/pkgconfig") vcpkg_cmake_install(ADD_BIN_TO_PATH) endblock() vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) # Unroll response file references. # Escape quotes in a way which survives vcpkg_cmake_config_fixup(). file(GLOB cmake_target_files "${CURRENT_PACKAGES_DIR}/share/Qt6*/Qt6*Targets.cmake" "${CURRENT_PACKAGES_DIR}/debug/share/Qt6*/Qt6*Targets.cmake") foreach(file IN LISTS cmake_target_files) file(READ "${file}" haystack) while(haystack MATCHES "@([^>]*[.]rsp)") set(response_file "${CMAKE_MATCH_1}") if(EXISTS "${response_file}") file(STRINGS "${response_file}" options) string(REPLACE [["]] [[${_escaped_quote_}]] options "${options}") list(JOIN options " " replacement) else() message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "No such response file: ${response_file}") set(replacement "") endif() string(REPLACE "@${response_file}" "${replacement}" haystack "${haystack}") endwhile() file(WRITE "${file}" [[set(_escaped_quote_ "\"")]] "\n\n${haystack}") endforeach() qt_fixup_and_cleanup(TOOL_NAMES gn QtWebEngineProcess qwebengine_convert_dict webenginedriver) if("webengine" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/debug/") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/QtWebEngineProcessd.exe" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/debug/QtWebEngineProcessd.exe") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/QtWebEngineProcessd.pdb" "${CURRENT_PACKAGES_DIR}/tools/Qt6/bin/debug/QtWebEngineProcessd.pdb") endif() file(RENAME "${CURRENT_PACKAGES_DIR}/resources" "${CURRENT_PACKAGES_DIR}/share/Qt6/resources") # qt.conf wants it there and otherwise the QtWebEngineProcess cannot start endif() qt_install_copyright("${SOURCE_PATH}") ##### qt_install_submodule ================================================ FILE: ports/qtwebengine/rpath.diff ================================================ diff --git a/src/3rdparty/chromium/build/config/gcc/BUILD.gn b/src/3rdparty/chromium/build/config/gcc/BUILD.gn index 147ebfc53..0febdd592 100644 --- a/src/3rdparty/chromium/build/config/gcc/BUILD.gn +++ b/src/3rdparty/chromium/build/config/gcc/BUILD.gn @@ -66,7 +66,7 @@ config("rpath_for_built_shared_libraries") { if (!is_android && current_os != "aix" && !is_castos) { # Note: Android, Aix don't support rpath. Chromecast has its own logic for # setting the rpath in //build/config/chromecast. - if (current_toolchain != default_toolchain || gcc_target_rpath == "") { + if (gcc_target_rpath == "") { ldflags = [ # Want to pass "\$". GN will re-escape as required for ninja. "-Wl,-rpath=\$ORIGIN", @@ -80,7 +80,7 @@ config("rpath_for_built_shared_libraries") { } } -if (is_component_build && !is_android) { +if (!is_android) { # See the rpath_for... config above for why this is necessary for component # builds. executable_and_shared_library_configs_ = ================================================ FILE: ports/qtwebengine/vcpkg.json ================================================ { "$comment": "x86-windows is not within the upstream support matrix of Qt6", "name": "qtwebengine", "version": "6.10.2", "description": "Qt modules for rendering web and PDF content.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false } ], "default-features": [ { "name": "pdf", "platform": "android | ios | (linux & !x86) | osx | (windows & x64 & !static)" }, { "name": "webengine", "platform": "!static & ((linux & !x86) | osx | (windows & x64))" } ], "features": { "geolocation": { "description": "Build with Geolocation", "dependencies": [ { "name": "qtlocation", "default-features": false }, { "name": "qtwebengine", "default-features": false, "features": [ "webengine" ] } ] }, "pdf": { "description": "The Qt PDF module contains classes and functions for rendering PDF documents.", "supports": "android | ios | linux | osx | (windows & x64 & !static)", "dependencies": [ { "name": "freetype", "platform": "!windows" }, { "name": "glib", "platform": "!windows" }, { "name": "gperf", "host": true }, { "name": "harfbuzz", "platform": "!windows" }, { "name": "icu", "platform": "!ios & !osx & !windows" }, { "name": "lcms", "platform": "!windows" }, { "name": "libjpeg-turbo", "platform": "!windows" }, { "name": "libpng", "platform": "!windows" }, { "name": "libwebp", "platform": "!windows" }, { "name": "libxml2", "default-features": false, "features": [ "icu" ], "platform": "!windows" }, { "name": "libxslt", "default-features": false, "platform": "!windows" }, { "name": "minizip", "platform": "!windows" }, { "name": "nss", "platform": "android | linux" }, "opengl", { "name": "openjpeg", "platform": "!windows" }, { "name": "opus", "platform": "!windows" }, { "name": "qtbase", "default-features": false, "features": [ "gui", "network", "widgets" ] }, { "name": "qtbase", "default-features": false, "features": [ "harfbuzz", "jpeg", "png" ], "platform": "linux" }, { "name": "qtdeclarative", "default-features": false }, { "name": "qttools", "default-features": false }, { "$comment": "Provides the port's custom GN host tool", "name": "qtwebengine", "host": true, "default-features": false }, { "name": "re2", "platform": "!windows" }, { "name": "snappy", "platform": "!windows" }, { "name": "tiff", "default-features": false, "platform": "!windows" }, { "name": "vcpkg-get-python-packages", "host": true }, { "name": "vcpkg-tool-nodejs", "host": true }, { "name": "zlib", "platform": "!windows" } ] }, "proprietary-codecs": { "description": "Enables the use of proprietary codecs such as h.264/h.265 and MP3.", "dependencies": [ { "name": "qtwebengine", "default-features": false, "features": [ "webengine" ] } ] }, "spellchecker": { "description": "Provides a spellchecker", "dependencies": [ { "name": "qtwebengine", "default-features": false, "features": [ "webengine" ] } ] }, "webchannel": { "description": "Provides QtWebChannel integration", "dependencies": [ { "name": "qtwebchannel", "default-features": false, "features": [ "qml" ] }, { "name": "qtwebengine", "default-features": false, "features": [ "webengine" ] } ] }, "webengine": { "description": "Qt WebEngine provides functionality for rendering regions of dynamic web content.", "supports": "(linux | osx | (windows & x64)) & !static", "dependencies": [ { "name": "dbus", "default-features": false }, { "name": "ffmpeg", "platform": "!windows" }, { "name": "opus", "platform": "!windows" }, { "name": "qtwebengine", "default-features": false, "features": [ "pdf" ] } ] } } } ================================================ FILE: ports/qtwebsockets/port.data.cmake ================================================ set(qtwebsockets_HASH "e90ac1f8a3808888620c39de19f3a0a7431b960129991df8bc2614381fc659b1698162dc379091d72dd40c6dd818d44b847c6bbe6991f33e790ba631aeeaf1b9") set(qtwebsockets_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtwebsockets-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtwebsockets-everywhere-src-6.10.2.tar.xz") set(qtwebsockets_FILENAME "qtwebsockets-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtwebsockets/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "qml" CMAKE_REQUIRE_FIND_PACKAGE_Qt6Quick INVERTED_FEATURES "qml" CMAKE_DISABLE_FIND_PACKAGE_Qt6Quick ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_RELEASE CONFIGURE_OPTIONS_DEBUG ) ================================================ FILE: ports/qtwebsockets/vcpkg.json ================================================ { "name": "qtwebsockets", "version": "6.10.2", "description": "The Qt WebSockets module provides C++ and QML interfaces that enable Qt applications to act as a server that can process WebSocket requests, or a client that can consume data received from the server, or both.", "homepage": "https://www.qt.io/", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "network" ] } ], "features": { "qml": { "description": "Build QML imports", "dependencies": [ { "name": "qtdeclarative", "default-features": false } ] } } } ================================================ FILE: ports/qtwebview/port.data.cmake ================================================ set(qtwebview_HASH "d540992f2048842988e9db73da62fa796f08e8468a688e49bdbcba983519448115ab284d00bbff58544f699494c66ad9c0a92d10e1a2e8e2145158e7ff0226b3") set(qtwebview_URL "https://download.qt.io/archive/qt/6.10/6.10.2/submodules/qtwebview-everywhere-src-6.10.2.tar.xz;https://mirrors.ocf.berkeley.edu/qt/archive/qt/6.10/6.10.2/submodules/qtwebview-everywhere-src-6.10.2.tar.xz") set(qtwebview_FILENAME "qtwebview-everywhere-src-6.10.2.tar.xz") ================================================ FILE: ports/qtwebview/portfile.cmake ================================================ set(SCRIPT_PATH "${CURRENT_INSTALLED_DIR}/share/qtbase") include("${SCRIPT_PATH}/qt_install_submodule.cmake") set(${PORT}_PATCHES) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "webengine" CMAKE_REQUIRE_FIND_PACKAGE_WebEngineCore INVERTED_FEATURES "webengine" CMAKE_DISABLE_FIND_PACKAGE_WebEngineCore ) qt_install_submodule(PATCHES ${${PORT}_PATCHES} CONFIGURE_OPTIONS ${FEATURE_OPTIONS} CONFIGURE_OPTIONS_MAYBE_UNUSED CMAKE_REQUIRE_FIND_PACKAGE_WebEngineCore ) ================================================ FILE: ports/qtwebview/vcpkg.json ================================================ { "name": "qtwebview", "version": "6.10.2", "description": "Qt WebView provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense.", "homepage": "https://www.qt.io/", "license": null, "supports": "x64 | arm64", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "qtdeclarative", "default-features": false } ], "features": { "webengine": { "description": "Build with Webengine", "supports": "!static", "dependencies": [ { "name": "qtwebengine", "default-features": false, "features": [ "webengine" ] } ] } } } ================================================ FILE: ports/quadtree/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pvigier/Quadtree REF a28cb41eeee3f020eb807cf9d7fd5859f62bbacd SHA512 52fcf3b48d87f18a05feb216f5439eba3f19608b4453c27a3c689242ba638588c054c7b5a39f0686073314ed6ac53717a37b6cdc66f9cd6e5d96f0fe84d90d54 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DCODE_COVERAGE=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ) file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/quadtree/vcpkg.json ================================================ { "name": "quadtree", "version-date": "2022-04-24", "description": "A simple and modern C++ quadtree implementation", "homepage": "https://github.com/pvigier/Quadtree", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/quantlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lballabio/QuantLib REF "v${VERSION}" SHA512 6cc9102069644a8d333fed962a02e4fed1771a0b5c110fa7fcf538ce51a109b3ed2c2ace24fb20b67d13aa1feb2e9290a3e0549e8c67e7806a9fbd886c85f357 HEAD_REF master ) if (VCPKG_TARGET_IS_WINDOWS) # This can (and should) be removed if QuantLib ever supports dynamically linking on Windows vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQL_BUILD_EXAMPLES=OFF -DQL_BUILD_TEST_SUITE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME QuantLib CONFIG_PATH lib/cmake/QuantLib) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Remove the "bin" directories if we are building static libraries if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Install custom usage configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/quantlib/usage ================================================ The package quantlib provides CMake targets: find_package(QuantLib CONFIG REQUIRED) target_link_libraries(main PRIVATE QuantLib::QuantLib) ================================================ FILE: ports/quantlib/vcpkg.json ================================================ { "name": "quantlib", "version": "1.40", "description": "The QuantLib C++ library", "homepage": "https://www.quantlib.org/", "license": "BSD-3-Clause", "supports": "!(windows & !static)", "dependencies": [ "boost-accumulators", "boost-algorithm", "boost-any", "boost-assert", "boost-bimap", "boost-bind", "boost-config", "boost-core", "boost-date-time", "boost-dynamic-bitset", "boost-format", "boost-function", "boost-functional", "boost-iterator", "boost-math", "boost-multi-array", "boost-multiprecision", "boost-optional", "boost-preprocessor", "boost-smart-ptr", "boost-tuple", "boost-type-traits", "boost-ublas", "boost-unordered", "boost-utility", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/quarter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin3d/quarter REF "v${VERSION}" SHA512 14c382d25e47b54d6ff747830131b0646dba398325ec1c748e543af2b2e1d8f690a34d2cdb18159dbc930dde0b9c8749bf437d8eb02d68b21bc597bb13796ea6 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" QUARTER_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQUARTER_BUILD_SHARED_LIBS=${QUARTER_BUILD_SHARED_LIBS} -DQUARTER_USE_QT6=ON -DQUARTER_USE_QT5=OFF -DQUARTER_BUILD_PLUGIN=OFF -DQUARTER_BUILD_EXAMPLES=OFF -DQUARTER_BUILD_DOCUMENTATION=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Quarter-${VERSION}) # Qt6 pkg-config files not installed https://github.com/microsoft/vcpkg/issues/25988 # vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/quarter/usage ================================================ The package quarter provides CMake targets: find_package(Quarter CONFIG REQUIRED) target_link_libraries(main PRIVATE Quarter::Quarter) ================================================ FILE: ports/quarter/vcpkg.json ================================================ { "name": "quarter", "version": "1.2.3", "port-version": 1, "description": "Coin3D GUI binding for Qt", "homepage": "https://coin3d.github.io/quarter/", "license": "BSD-3-Clause", "supports": "!android & !uwp", "dependencies": [ "coin", { "name": "qtbase", "default-features": false }, { "name": "qttools", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/quaternions/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ferd36/quaternions REF 68fc6c7fb392b1a920779d80bb75879263329ff5 SHA512 b7b934a493645e9c9ec04d581d2e5af57298325086919c20fbaa13df264c16cb5a0e380042cf5a0cfddbf142c82e5da63b84e8f2bc90615b1eccad83a1c9df88 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/quaternions/vcpkg.json ================================================ { "name": "quaternions", "version": "1.0.0", "port-version": 2, "description": "A C++11 library to work with quaternions, as a single header file.", "homepage": "https://github.com/ferd36/quaternions", "dependencies": [ "boost-mpl" ] } ================================================ FILE: ports/quazip/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stachenov/quazip REF v1.5 SHA512 c88850f1672d20c375798c58d1cb77744ca63e93b379cf3035a528b57e83a52c1908023870152ce5fc49ad0ccf93d723dbc730b8c1d2abe18cf0b13fba3be1e1 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bzip2 QUAZIP_BZIP2 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DQUAZIP_QT_MAJOR_VERSION=6 -DQUAZIP_FETCH_LIBS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/QuaZip-Qt6-1.5 PACKAGE_NAME quazip-qt6) vcpkg_copy_pdbs() # Qt6 pkg-config files not installed https://github.com/microsoft/vcpkg/issues/25988 # vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/" RENAME copyright) ================================================ FILE: ports/quazip/vcpkg.json ================================================ { "name": "quazip", "version": "1.5", "description": "Qt/C++ wrapper over minizip", "homepage": "https://stachenov.github.io/quazip/", "license": "LGPL-2.1-or-later", "supports": "!xbox", "dependencies": [ { "name": "qt5compat", "default-features": false }, { "name": "qtbase", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "bzip2": { "description": "BZIP2 compression", "dependencies": [ "bzip2" ] } } } ================================================ FILE: ports/quickfix/00001-fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 48908ead..90c17759 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,13 +92,13 @@ include_directories(${PYTHON_INCLUDE_DIRS}) endif () if( WIN32 OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" ) -add_subdirectory(UnitTest++) +#add_subdirectory(UnitTest++) endif() add_subdirectory(src) -add_subdirectory(examples) +#add_subdirectory(examples) if( WIN32) -add_subdirectory(test) +#add_subdirectory(test) endif() install(DIRECTORY ${CMAKE_SOURCE_DIR}/spec/ DESTINATION share/quickfix diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cb4a60c6..d21fa995 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ add_subdirectory(C++) -if( WIN32 OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" ) +if(0) add_executable(at at.cpp getopt.c) diff --git a/src/C++/CMakeLists.txt b/src/C++/CMakeLists.txt index 07774c97..27692631 100644 --- a/src/C++/CMakeLists.txt +++ b/src/C++/CMakeLists.txt @@ -1,3 +1,4 @@ +project(quickfix) set(quickfix_VERSION_MAJOR 16) set(quickfix_VERSION_MINOR 0) set(quickfix_VERSION_PATCH 1) @@ -64,19 +65,22 @@ endif() if (WIN32) add_library(${PROJECT_NAME} STATIC ${quickfix_SOURCES}) - set_target_properties (${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX d) target_link_libraries(${PROJECT_NAME} ${OPENSSL_LIBRARIES} ${MYSQL_CLIENT_LIBS} ${PostgreSQL_LIBRARIES} ws2_32) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE) else() - add_library(${PROJECT_NAME} SHARED ${quickfix_SOURCES}) + add_library(${PROJECT_NAME} STATIC ${quickfix_SOURCES}) target_link_libraries(${PROJECT_NAME} ${OPENSSL_LIBRARIES} ${MYSQL_CLIENT_LIBS} ${PostgreSQL_LIBRARIES} pthread) endif() target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/C++) +target_include_directories(${PROJECT_NAME} PUBLIC $) set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${quickfix_VERSION} SOVERSION ${quickfix_VERSION_MAJOR} ) +target_compile_definitions(${PROJECT_NAME} PUBLIC HAVE_STD_UNIQUE_PTR HAVE_STD_SHARED_PTR HAVE_SSL=1) -install(TARGETS ${PROJECT_NAME} DESTINATION lib) +install(TARGETS ${PROJECT_NAME} EXPORT quickfix-config DESTINATION lib) install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/C++/ DESTINATION include/quickfix FILES_MATCHING PATTERN "*.h" PATTERN double-conversion EXCLUDE PATTERN test EXCLUDE) +install(EXPORT quickfix-config DESTINATION share/cmake/quickfix) diff --git a/src/C++/Utility.h b/src/C++/Utility.h index 0aa2cd3e..2829e110 100644 --- a/src/C++/Utility.h +++ b/src/C++/Utility.h @@ -242,4 +242,10 @@ using std::strtol; using std::strerror; #endif +#ifdef __cpp_noexcept_function_type +#define QUICKFIX_THROW(...) noexcept +#else +#define QUICKFIX_THROW(...) throw(__VA_ARGS__) +#endif + #endif diff --git a/src/C++/UtilitySSL.cpp b/src/C++/UtilitySSL.cpp index a01606ac..aee41bbf 100644 --- a/src/C++/UtilitySSL.cpp +++ b/src/C++/UtilitySSL.cpp @@ -498,7 +498,11 @@ static void ssl_rand_seed(void) /* * seed in the current process id (usually just 4 bytes) */ +#ifdef _MSC_VER + pid = GetCurrentProcessId(); +#else pid = getpid(); +#endif l = sizeof(pid); RAND_seed((unsigned char *)&pid, l); /* diff --git a/src/C++/double-conversion/utils.h b/src/C++/double-conversion/utils.h index aef2f166..779b8ab7 100644 --- a/src/C++/double-conversion/utils.h +++ b/src/C++/double-conversion/utils.h @@ -61,7 +61,7 @@ // disabled.) // On Linux,x86 89255e-22 != Div_double(89255.0/1e22) #if defined(_M_X64) || defined(__x86_64__) || \ - defined(__ARMEL__) || defined(__avr32__) || \ + defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ ================================================ FILE: ports/quickfix/fix_wsl_symlink_error.patch ================================================ diff --git a/cmake/QuickfixPrebuildSetup.cmake b/cmake/QuickfixPrebuildSetup.cmake index 9e53126ec..1c3368fcb 100644 --- a/cmake/QuickfixPrebuildSetup.cmake +++ b/cmake/QuickfixPrebuildSetup.cmake @@ -3,8 +3,9 @@ if (NOT WIN32) add_custom_target(QUICKFIX_HEADERS_LINK ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/include/ - COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/src/C++ ${CMAKE_SOURCE_DIR}/include/quickfix + #COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/src/C++ ${CMAKE_SOURCE_DIR}/include/quickfix ) + include_directories(${CMAKE_SOURCE_DIR}/src/C++) else() add_custom_target(QUICKFIX_HEADERS_COPY ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_SOURCE_DIR}/include/ ================================================ FILE: ports/quickfix/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO quickfix/quickfix REF v1.15.1 SHA512 6c3dc53f25932c9b7516ab9228f634511ae0f399719f87f0ec2b38c380c0a7d1c808f0f9a14a70a063e1956118550d1121222283a9139f23cd4f8f038f595f70 HEAD_REF master PATCHES 00001-fix-build.patch fix_wsl_symlink_error.patch ) file(GLOB_RECURSE SRC_FILES RELATIVE "${SOURCE_PATH}" "${SOURCE_PATH}/src/*.cpp" "${SOURCE_PATH}/src/*.h" ) list(REMOVE_ITEM SRC_FILES "src/C++/Utility.h") list(REMOVE_ITEM SRC_FILES "src/C++/pugixml.cpp") foreach(SRC_FILE IN LISTS SRC_FILES) file(READ "${SOURCE_PATH}/${SRC_FILE}" _contents) string(REPLACE "throw(" "QUICKFIX_THROW(" _contents "${_contents}") string(REPLACE "throw (" "QUICKFIX_THROW(" _contents "${_contents}") file(WRITE "${SOURCE_PATH}/${SRC_FILE}" "${_contents}") endforeach() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DHAVE_EMX=OFF -DHAVE_MYSQL=OFF -DHAVE_POSTGRESQL=OFF -DHAVE_PYTHON=OFF -DHAVE_PYTHON2=OFF -DHAVE_PYTHON3=OFF -DHAVE_SSL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/quickfix) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/quickfix/usage ================================================ The package quickfix provides CMake targets: find_package(quickfix CONFIG REQUIRED) target_link_libraries(main PRIVATE quickfix) ================================================ FILE: ports/quickfix/vcpkg.json ================================================ { "name": "quickfix", "version": "1.15.1", "port-version": 9, "description": "QuickFIX is a free and open source implementation of the FIX protocol.", "homepage": "https://github.com/quickfix/quickfix", "supports": "!uwp & !(osx & arm64)", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/quickjs-ng/pdb_name_conflict.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 29a78bf..641ef7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -368,6 +368,7 @@ add_qjs_libc_if_needed(qjs_exe) add_static_if_needed(qjs_exe) set_target_properties(qjs_exe PROPERTIES OUTPUT_NAME "qjs" + PDB_NAME "qjs_exe" ) target_compile_definitions(qjs_exe PRIVATE ${qjs_defines}) target_link_libraries(qjs_exe PRIVATE qjs) ================================================ FILE: ports/quickjs-ng/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO quickjs-ng/quickjs REF v${VERSION} SHA512 c9e27746287571603db0ab5b5af5d8d1e7784bd0d70dbc549a2d5ea34378b512d695a19a561e8763218919b6cbbd494664660835aabfc96d0379905aa2dceedf HEAD_REF master PATCHES pdb_name_conflict.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libc QJS_BUILD_LIBC ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/quickjs PACKAGE_NAME qjs) vcpkg_copy_tools( TOOL_NAMES qjs qjsc AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/quickjs-ng/usage ================================================ quickjs-ng provides CMake targets: find_package(qjs CONFIG REQUIRED) target_link_libraries(main PRIVATE qjs) ================================================ FILE: ports/quickjs-ng/vcpkg.json ================================================ { "name": "quickjs-ng", "version": "0.12.1", "description": "QuickJS, the Next Generation: a mighty JavaScript engine. A small and embeddable JavaScript engine supporting the latest ECMAScript specification.", "homepage": "https://github.com/quickjs-ng/quickjs", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "libc": { "description": "Support for the quickjs standard library" } } } ================================================ FILE: ports/quill/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO odygrd/quill REF "v${VERSION}" SHA512 13ace8810e01bbd89ae467d27e0972ec272b7a8dcb219951babc9e66b891719a2ad446dab449e3dacff31b2f4937c17cbaf0fd37b3e9a1b5ac64d11e5c433876 HEAD_REF master ) if(VCPKG_TARGET_IS_ANDROID) set(ADDITIONAL_OPTIONS -DQUILL_NO_THREAD_NAME_SUPPORT=ON) endif() vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${ADDITIONAL_OPTIONS}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/quill) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/quill/vcpkg.json ================================================ { "name": "quill", "version": "11.1.0", "description": "Asynchronous Low Latency C++ Logging Library", "homepage": "https://github.com/odygrd/quill/", "documentation": "https://quillcpp.readthedocs.io/en/latest/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/quirc/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.19) project(quirc C) add_library(quirc lib/decode.c lib/identify.c lib/quirc.c lib/version_db.c lib/quirc.h ) target_include_directories(quirc INTERFACE $) install(TARGETS quirc EXPORT quirc-targets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install(FILES lib/quirc.h DESTINATION include) install(EXPORT quirc-targets FILE quirc-config.cmake NAMESPACE quirc:: DESTINATION share/quirc ) ================================================ FILE: ports/quirc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dlbeer/quirc REF "v${VERSION}" SHA512 0f694d16bc24012ef29a9aab8e48419bc7c346153ead3feed8e83845927f9683bb62b2e61c6872643f66b0c864c2e3c7e1a4ea4c657399b38cabfa687bedee82 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/quirc/vcpkg.json ================================================ { "name": "quirc", "version": "1.2", "description": "quirc is one of the C library available for scanning QR Codes", "homepage": "https://github.com/dlbeer/quirc", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/qwt/config.patch ================================================ diff --git a/designer/designer.pro b/designer/designer.pro index fa4d8c7fd..ce3f82081 100644 --- a/designer/designer.pro +++ b/designer/designer.pro @@ -23,8 +23,8 @@ CONFIG( debug_and_release ) { message("debug_and_release: building the Qwt designer plugin in release mode only") - CONFIG -= debug_and_release - CONFIG += release + # CONFIG -= debug_and_release + # CONFIG += release } contains(QWT_CONFIG, QwtDesigner ) { diff --git a/qwtbuild.pri b/qwtbuild.pri index 9306b6ed0..5b51218b6 100644 --- a/qwtbuild.pri +++ b/qwtbuild.pri @@ -54,12 +54,12 @@ win32 { # might need a debug version. # Enable debug_and_release + build_all if you want to build both. - CONFIG += debug_and_release - CONFIG += build_all + # CONFIG += debug_and_release + # CONFIG += build_all } else { - CONFIG += release + # CONFIG += release VER_MAJ = $${QWT_VER_MAJ} VER_MIN = $${QWT_VER_MIN} diff --git a/qwtconfig.pri b/qwtconfig.pri index 7da1485a0..b69b5ca71 100644 --- a/qwtconfig.pri +++ b/qwtconfig.pri @@ -19,18 +19,19 @@ QWT_VERSION = $${QWT_VER_MAJ}.$${QWT_VER_MIN}.$${QWT_VER_PAT} QWT_INSTALL_PREFIX = $$[QT_INSTALL_PREFIX] unix { - QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION + # QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION # QWT_INSTALL_PREFIX = /usr/local/qwt-$$QWT_VERSION-qt-$$QT_VERSION } win32 { - QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION + # QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION # QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION-qt-$$QT_VERSION } -QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc +QWT_INSTALL_DOCS = $$[QT_INSTALL_DOCS]/doc -QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include +QWT_INSTALL_HEADERS = $${QWT_INSTALL_PREFIX}/include/qwt -QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib +QWT_INSTALL_LIBS = $$[QT_INSTALL_LIBS] +QWT_INSTALL_BINS = $$[QT_INSTALL_BINS] ###################################################################### # Designer plugin @@ -42,7 +43,7 @@ QWT_INSTALL_LIBS = $${QWT_INSTALL_PREFIX}/lib # runtime environment of designer/creator. ###################################################################### -QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer +QWT_INSTALL_PLUGINS = $$[QT_INSTALL_PLUGINS]/designer # linux distributors often organize the Qt installation # their way and QT_INSTALL_PREFIX doesn't offer a good @@ -63,7 +64,7 @@ QWT_INSTALL_PLUGINS = $${QWT_INSTALL_PREFIX}/plugins/designer # with every Qt upgrade. ###################################################################### -QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features +QWT_INSTALL_FEATURES = $$[QT_INSTALL_DATA]/mkspecs/features # QWT_INSTALL_FEATURES = $$[QT_INSTALL_PREFIX]/features ###################################################################### @@ -72,7 +73,7 @@ QWT_INSTALL_FEATURES = $${QWT_INSTALL_PREFIX}/features # it will be a static library. ###################################################################### -QWT_CONFIG += QwtDll +# QWT_CONFIG += QwtDll ###################################################################### # QwtPlot enables all classes, that are needed to use the QwtPlot @@ -114,7 +115,7 @@ QWT_CONFIG += QwtOpenGL # Otherwise you have to build it from the designer directory. ###################################################################### -QWT_CONFIG += QwtDesigner +# QWT_CONFIG += QwtDesigner ###################################################################### # Compile all Qwt classes into the designer plugin instead @@ -137,7 +138,7 @@ win32 { # Otherwise you have to build them from the examples directory. ###################################################################### -QWT_CONFIG += QwtExamples +# QWT_CONFIG += QwtExamples ###################################################################### # The playground is primarily intended for the Qwt development @@ -148,14 +149,14 @@ QWT_CONFIG += QwtExamples # Otherwise you have to build them from the playground directory. ###################################################################### -QWT_CONFIG += QwtPlayground +# QWT_CONFIG += QwtPlayground ###################################################################### # If you want to auto build the tests, enable the line below # Otherwise you have to build them from the tests directory. ###################################################################### -QWT_CONFIG += QwtTests +# QWT_CONFIG += QwtTests ###################################################################### # When Qt has been built as framework qmake wants diff --git a/src/src.pro b/src/src.pro index 762e4c49b..d70a1b62b 100644 --- a/src/src.pro +++ b/src/src.pro @@ -49,27 +50,27 @@ contains(QWT_CONFIG, QwtFramework) { include ( $${PWD}/src.pri ) # Install directives target.path = $${QWT_INSTALL_LIBS} INSTALLS = target CONFIG(lib_bundle) { FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = $${HEADERS} FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS } else { headers.files = $${HEADERS} headers.path = $${QWT_INSTALL_HEADERS} INSTALLS += headers } contains(QWT_CONFIG, QwtPkgConfig) { - CONFIG += create_pc create_prl no_install_prl + CONFIG += create_pc create_prl QMAKE_PKGCONFIG_NAME = Qwt$${QWT_VER_MAJ} QMAKE_PKGCONFIG_DESCRIPTION = Qt Widgets for Technical Applications @@ -82,14 +81,14 @@ contains(QWT_CONFIG, QwtPkgConfig) { greaterThan(QT_MAJOR_VERSION, 4) { QMAKE_PKGCONFIG_FILE = Qt$${QT_MAJOR_VERSION}$${QMAKE_PKGCONFIG_NAME} - QMAKE_PKGCONFIG_REQUIRES = Qt5Widgets Qt5Concurrent Qt5PrintSupport + QMAKE_PKGCONFIG_REQUIRES = Qt$${QT_MAJOR_VERSION}Widgets Qt$${QT_MAJOR_VERSION}Concurrent Qt$${QT_MAJOR_VERSION}PrintSupport contains(QWT_CONFIG, QwtSvg) { - QMAKE_PKGCONFIG_REQUIRES += Qt5Svg + QMAKE_PKGCONFIG_REQUIRES += Qt$${QT_MAJOR_VERSION}Svg } contains(QWT_CONFIG, QwtOpenGL) { - QMAKE_PKGCONFIG_REQUIRES += Qt5OpenGL + QMAKE_PKGCONFIG_REQUIRES += Qt$${QT_MAJOR_VERSION}OpenGL } QMAKE_DISTCLEAN += $${DESTDIR}/$${QMAKE_PKGCONFIG_DESTDIR}/$${QMAKE_PKGCONFIG_FILE}.pc ================================================ FILE: ports/qwt/fix_dll_install.patch ================================================ diff --git a/src/src.pro b/src/src.pro index 0ce903fe7..16524b8e2 100644 --- a/src/src.pro +++ b/src/src.pro @@ -20,6 +20,7 @@ TEMPLATE = lib TARGET = $$qwtLibraryTarget(qwt) DESTDIR = $${QWT_OUT_ROOT}/lib +DLLDESTDIR = $${QWT_OUT_ROOT}/bin contains(QWT_CONFIG, QwtDll) { @@ -49,9 +50,13 @@ contains(QWT_CONFIG, QwtFramework) { include ( $${PWD}/src.pri ) # Install directives - +win32 { + dlltarget.path = $${QWT_INSTALL_BINS} + INSTALLS += dlltarget +} target.path = $${QWT_INSTALL_LIBS} -INSTALLS = target +!static: target.CONFIG = no_dll +INSTALLS += target CONFIG(lib_bundle) { ================================================ FILE: ports/qwt/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO qwt/qwt REF ${VERSION} FILENAME "qwt-${VERSION}.zip" SHA512 4008c3e4dace0f18e572b473a51a293bb896abbd62b9c5f0a92734b2121923d2e2cbf67c997b84570a13bf4fdd7669b56497c82fbae35049ed856b2f0a65e475 PATCHES config.patch fix_dll_install.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" IS_DYNAMIC) set(OPTIONS "") if(IS_DYNAMIC) list(APPEND OPTIONS "QWT_CONFIG+=QwtDll") endif() vcpkg_qmake_configure( SOURCE_PATH "${SOURCE_PATH}" QMAKE_OPTIONS ${OPTIONS} "CONFIG-=debug_and_release" "CONFIG+=create_prl" "CONFIG+=link_prl" ) vcpkg_qmake_install() vcpkg_copy_pdbs() # Qt6 pkg-config files not installed https://github.com/microsoft/vcpkg/issues/25988 # vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-qwt-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-qwt") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/qwt/unofficial-qwt-config.cmake ================================================ include(CMakeFindDependencyMacro) if(NOT TARGET unofficial::qwt::qwt) find_dependency(Qt6 COMPONENTS Core Gui Widgets Svg OpenGL Concurrent PrintSupport OpenGLWidgets) find_file(qwt_LIBRARY_RELEASE_DLL NAMES qwt.dll PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin" NO_DEFAULT_PATH) find_file(qwt_LIBRARY_DEBUG_DLL NAMES qwtd.dll PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/bin" NO_DEFAULT_PATH) if(EXISTS "${qwt_LIBRARY_RELEASE_DLL}") add_library(unofficial::qwt::qwt SHARED IMPORTED) set_target_properties(unofficial::qwt::qwt PROPERTIES INTERFACE_COMPILE_DEFINITIONS QWT_DLL) set_property(TARGET unofficial::qwt::qwt APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") find_library(qwt_LIBRARY_RELEASE NAMES qwt PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_IMPLIB_RELEASE "${qwt_LIBRARY_RELEASE}") set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_LOCATION_RELEASE "${qwt_LIBRARY_RELEASE_DLL}") if(EXISTS "${qwt_LIBRARY_DEBUG_DLL}") set_property(TARGET unofficial::qwt::qwt APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") find_library(qwt_LIBRARY_DEBUG NAMES qwtd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH REQUIRED) set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_IMPLIB_DEBUG "${qwt_LIBRARY_DEBUG}") set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_LOCATION_DEBUG "${qwt_LIBRARY_DEBUG_DLL}") endif() else() add_library(unofficial::qwt::qwt UNKNOWN IMPORTED) find_library(qwt_LIBRARY_RELEASE NAMES qwt PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) if(EXISTS "${qwt_LIBRARY_RELEASE}") set_property(TARGET unofficial::qwt::qwt APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_LOCATION_RELEASE "${qwt_LIBRARY_RELEASE}") endif() find_library(qwt_LIBRARY_DEBUG NAMES qwtd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${qwt_LIBRARY_DEBUG}") set_property(TARGET unofficial::qwt::qwt APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::qwt::qwt PROPERTIES IMPORTED_LOCATION_DEBUG "${qwt_LIBRARY_DEBUG}") endif() endif() set_target_properties(unofficial::qwt::qwt PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" ) target_link_libraries(unofficial::qwt::qwt INTERFACE Qt::Widgets Qt::Svg Qt::Concurrent Qt::PrintSupport Qt::OpenGL Qt::OpenGLWidgets ) endif() ================================================ FILE: ports/qwt/vcpkg.json ================================================ { "name": "qwt", "version": "6.3.0", "port-version": 1, "description": "Widgets library for technical applications", "homepage": "https://qwt.sourceforge.io", "license": null, "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "concurrent", "gui", "opengl", "widgets" ] }, "qtsvg", { "name": "vcpkg-qmake", "host": true, "default-features": false } ] } ================================================ FILE: ports/qwtw/add-include-chrono.patch ================================================ diff --git a/qwtw/qwtest2.cpp b/qwtw/qwtest2.cpp index 97af0cc..470f6cd 100644 --- a/qwtw/qwtest2.cpp +++ b/qwtw/qwtest2.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include ================================================ FILE: ports/qwtw/fix-asio-error.patch ================================================ diff --git a/qwtw/sfigure.cpp b/qwtw/sfigure.cpp index f3e1642..3a77148 100644 --- a/qwtw/sfigure.cpp +++ b/qwtw/sfigure.cpp @@ -57,9 +57,9 @@ struct BroadcastMessage { #pragma pack() class BCUdpClient { public: - BCUdpClient() : resolver(io_service), q(udp::v4(), "127.0.0.1", "49561"), socket(io_service) { + BCUdpClient() : resolver(io_context), socket(io_context) { - destination = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 49561); + destination = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address("127.0.0.1"), 49561); //receiver_endpoint = *resolver.resolve(q); socket.open(udp::v4()); @@ -76,9 +76,8 @@ public: } private: - boost::asio::io_service io_service; + boost::asio::io_context io_context; udp::resolver resolver; - udp::resolver::query q; boost::asio::ip::udp::endpoint destination; udp::endpoint receiver_endpoint; udp::socket socket; @@ -93,14 +92,14 @@ private: std::mutex mu; std::thread st; volatile bool pleaseStop; - boost::asio::io_service io_service; + boost::asio::io_context io_context; udp::socket socket_; udp::endpoint remote_endpoint_; unsigned char rb[256]; std::function onPointF; public: - BCUdpServer() : socket_(io_service, udp::endpoint(udp::v4(), 49562)) { + BCUdpServer() : socket_(io_context, udp::endpoint(udp::v4(), 49562)) { created = false; createdMarker = false; somethingWasChanged = false; @@ -123,11 +122,11 @@ public: return; } // wait for the task to finish?? - boost::asio::io_service io_service1; - udp::socket s1(io_service1); + boost::asio::io_context io_context1; + udp::socket s1(io_context1); s1.open(udp::v4()); unsigned char b[5]; - boost::asio::ip::udp::endpoint destination = boost::asio::ip::udp::endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 49562); + boost::asio::ip::udp::endpoint destination = boost::asio::ip::udp::endpoint(boost::asio::ip::make_address("127.0.0.1"), 49562); try { s1.send_to(boost::asio::buffer(b, 5), destination); s1.send_to(boost::asio::buffer(b, 5), destination); @@ -146,7 +145,7 @@ public: try { start_receive(); xm_printf("BCUdpServer tcpThread started\n"); - io_service.run(); + io_context.run(); } catch (std::exception& e) { std::cerr << e.what() << std::endl; xm_printf("TRACE: RDFramerDebugGuiUpdateCallback exception: %s \n", e.what()); ================================================ FILE: ports/qwtw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ig-or/qwtw REF 7d6e7c95437cbc7d5d123fc1ccf0d6a3c4e419e6 # v3.1.0 SHA512 de5abf26d0975b9f0ed88e10cd4d5b4d12e25cce8c87ab6a18d8e7064697de6fc8da83e118b5a4e2819c09e2dbbfd20daeecc6a42748c019c6699666276d075a HEAD_REF master PATCHES add-include-chrono.patch fix-asio-error.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qwtw/vcpkg.json ================================================ { "name": "qwtw", "version": "3.1.0", "port-version": 5, "description": "qwt-based 2D plotting library", "homepage": "https://github.com/ig-or/qwtw", "supports": "windows & x64 & !static", "dependencies": [ "boost-asio", "boost-chrono", "boost-circular-buffer", "boost-date-time", "boost-filesystem", "boost-regex", "boost-system", "boost-thread", "marble", "qt5-base", "qt5-networkauth", "qt5-svg", "qwt", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/qzxing/add-cmake-config.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8af58db..40406f2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -130,5 +130,38 @@ target_include_directories(qzxing zxing/bigint PUBLIC $ + $ ) +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-qzxing-version.cmake" + VERSION ${VERSION} + COMPATIBILITY SameMajorVersion +) +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/unofficial-qzxing-config.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-qzxing-config.cmake" + INSTALL_DESTINATION share/unofficial-qzxing +) +install(TARGETS qzxing + EXPORT QzxingTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) +install(EXPORT QzxingTargets + FILE unofficial-qzxing-targets.cmake + NAMESPACE unofficial::qzxing:: + DESTINATION share/unofficial-qzxing +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-qzxing-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-qzxing-version.cmake" + DESTINATION share/unofficial-qzxing +) +install(FILES + QZXing.h + QZXing_global.h + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) diff --git a/src/cmake/unofficial-qzxing-config.cmake.in b/src/cmake/unofficial-qzxing-config.cmake.in new file mode 100644 index 0000000..2563ca8 --- /dev/null +++ b/src/cmake/unofficial-qzxing-config.cmake.in @@ -0,0 +1,8 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(Qt6 COMPONENTS Core Gui) + +include(${CMAKE_CURRENT_LIST_DIR}/unofficial-qzxing-targets.cmake) + +check_required_components(unofficial-qzxing) \ No newline at end of file ================================================ FILE: ports/qzxing/allow-shared-build.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f8cb91a..555a4f1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -114,7 +114,11 @@ endif() # Change Global Definitions depending on how you want to use the library -target_compile_definitions(qzxing PUBLIC DISABLE_LIBRARY_FEATURES) +if(BUILD_SHARED_LIBS) + target_compile_definitions(qzxing PUBLIC $) +else() + target_compile_definitions(qzxing PUBLIC DISABLE_LIBRARY_FEATURES) +endif() # Target includes target_include_directories(qzxing ================================================ FILE: ports/qzxing/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ftylitak/qzxing REF "v${VERSION}" SHA512 21ab9960fafc5eb5e2907e22e31d29d9b4db66480e65ba26d86bededa708d51abc2fd1a9e959357402104e993653dc4aa9a6e6fcf9de362a74030c8bddad8411 HEAD_REF master PATCHES use-qt6.patch allow-shared-build.patch add-cmake-config.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS -DQZXING_MULTIMEDIA=OFF -DQZXING_USE_QML=OFF -DVERSION=${VERSION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-qzxing) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/qzxing/use-qt6.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 427ae19..f8cb91a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,14 @@ cmake_minimum_required(VERSION 3.3) project(QZXing) -find_package(Qt5 COMPONENTS Core REQUIRED) -find_package(Qt5 COMPONENTS Gui REQUIRED) -find_package(Qt5 COMPONENTS Multimedia ) -find_package(Qt5 REQUIRED Svg Quick QuickControls2) +find_package(Qt6 COMPONENTS Core REQUIRED) +find_package(Qt6 COMPONENTS Gui REQUIRED) +if(QZXING_MULTIMEDIA) + find_package(Qt6 COMPONENTS Multimedia ) +endif() +if(QZXING_USE_QML) + find_package(Qt6 REQUIRED Svg Quick QuickControls2) +endif() SET(BIGINT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/bigint) SET(WIN32_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zxing/win32/zxing) @@ -65,18 +69,18 @@ add_subdirectory(zxing/bigint) add_subdirectory(zxing/zxing) -target_link_libraries(qzxing Qt5::Core Qt5::Gui) +target_link_libraries(qzxing Qt6::Core Qt6::Gui) if(QZXING_MULTIMEDIA) - target_link_libraries(qzxing Qt5::Multimedia) + target_link_libraries(qzxing Qt6::Multimedia) target_compile_definitions(qzxing PUBLIC -DQZXING_MULTIMEDIA) endif(QZXING_MULTIMEDIA) if(QZXING_USE_QML) target_link_libraries(qzxing - Qt5::Svg - Qt5::Quick - Qt5::QuickControls2) + Qt6::Svg + Qt6::Quick + Qt6::QuickControls2) target_compile_definitions(qzxing PUBLIC -DQZXING_QML) endif(QZXING_USE_QML) ================================================ FILE: ports/qzxing/vcpkg.json ================================================ { "name": "qzxing", "version": "3.3.0", "description": "Qt/QML wrapper library for the ZXing library. 1D/2D barcode image processing library.", "homepage": "https://github.com/ftylitak/qzxing", "license": "Apache-2.0", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rabit/fix-file-conflict.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 08330d9..a58d669 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,10 +5,16 @@ project(rabit VERSION 0.0.0) option(RABIT_BUILD_TESTS "Build rabit tests" OFF) option(RABIT_BUILD_MPI "Build MPI" OFF) +find_package(dmlc CONFIG REQUIRED) + add_library(rabit src/allreduce_base.cc src/allreduce_robust.cc src/engine.cc src/c_api.cc) add_library(rabit_base src/allreduce_base.cc src/engine_base.cc src/c_api.cc) add_library(rabit_empty src/engine_empty.cc src/c_api.cc) +target_link_libraries(rabit dmlc::dmlc) +target_link_libraries(rabit_base dmlc::dmlc) +target_link_libraries(rabit_empty dmlc::dmlc) + set(rabit_libs rabit rabit_base rabit_empty) if(RABIT_BUILD_MPI) find_package(MPI REQUIRED) @@ -22,7 +28,6 @@ if(RABIT_BUILD_TESTS) add_library(rabit_mock STATIC src/allreduce_base.cc src/allreduce_robust.cc src/engine_mock.cc src/c_api.cc) list(APPEND rabit_libs rabit_mock) # add to list to apply build settings, then remove endif() - foreach(lib ${rabit_libs}) #include "./internal/utils.h" target_include_directories(${lib} PUBLIC @@ -42,7 +47,8 @@ if(RABIT_BUILD_TESTS) if(RABIT_BUILD_MPI) add_executable(speed_test_mpi test/speed_test.cc) target_link_libraries(speed_test_mpi rabit_mpi) - install(TARGETS speed_test_mpi DESTINATION bin) + install(TARGETS speed_test_mpi DESTINATION bin) + message("IN MPI ") endif() endif() diff --git a/include/rabit/serializable.h b/include/rabit/serializable.h index 4a3c2a1..0fd4154 100644 --- a/include/rabit/serializable.h +++ b/include/rabit/serializable.h @@ -9,7 +9,7 @@ #include #include #include "./internal/utils.h" -#include "../dmlc/io.h" +#include namespace rabit { /*! ================================================ FILE: ports/rabit/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "${PORT} does not currently support UWP.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dmlc/rabit REF v0.1 SHA512 145fd839898cb95eaab9a88ad3301a0ccac0c8b672419ee2b8eb6ba273cc9a26e069e5ecbc37a3078e46dc64d11efb3e5ab10e5f8fed714e7add85b9e6ac2ec7 HEAD_REF master PATCHES fix-file-conflict.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/include/dmlc") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRABIT_BUILD_TESTS=OFF -DRABIT_BUILD_MPI=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rabit/vcpkg.json ================================================ { "name": "rabit", "version": "0.1", "port-version": 5, "description": "rabit is a light weight library that provides a fault tolerant interface of Allreduce and Broadcast. It is designed to support easy implementations of distributed machine learning programs, many of which fall naturally under the Allreduce abstraction.", "homepage": "https://github.com/dmlc/rabit", "supports": "!uwp", "dependencies": [ "dmlc", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ragel/0001-remove-unistd-h.patch ================================================ diff --git a/ragel/main.cpp b/ragel/main.cpp index f5fbd7b..947b1c8 100644 --- a/ragel/main.cpp +++ b/ragel/main.cpp @@ -24,9 +24,7 @@ #include #include #include -#include #include -#include #include #include #include ================================================ FILE: ports/ragel/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(ragel) file(GLOB HEADERS ragel/buffer.h ragel/cdgoto.h ragel/cscodegen.h ragel/csipgoto.h ragel/inputdata.h ragel/rbxgoto.h ragel/rubyflat.h ragel/cdcodegen.h ragel/cdipgoto.h ragel/csfflat.h ragel/cssplit.h ragel/javacodegen.h ragel/redfsm.h ragel/rubyftable.h ragel/cdfflat.h ragel/cdsplit.h ragel/csfgoto.h ragel/cstable.h ragel/parsedata.h ragel/rlparse.h ragel/rubytable.h ragel/cdfgoto.h ragel/cdtable.h ragel/csflat.h ragel/dotcodegen.h ragel/parsetree.h ragel/rlscan.h ragel/version.h ragel/cdflat.h ragel/common.h ragel/csftable.h ragel/fsmgraph.h ragel/pcheck.h ragel/rubycodegen.h ragel/xmlcodegen.h ragel/cdftable.h ragel/csgoto.h ragel/gendata.h ragel/ragel.h ragel/rubyfflat.h ragel/gocodegen.h ragel/gotable.h ragel/goftable.h ragel/goflat.h ragel/gofflat.h ragel/gogoto.h ragel/gofgoto.h ragel/goipgoto.h ragel/gotablish.h ragel/mlcodegen.h ragel/mltable.h ragel/mlftable.h ragel/mlflat.h ragel/mlfflat.h ragel/mlgoto.h ragel/mlfgoto.h ) file(GLOB SRC ragel/main.cpp ragel/parsetree.cpp ragel/parsedata.cpp ragel/fsmstate.cpp ragel/fsmbase.cpp ragel/fsmattach.cpp ragel/fsmmin.cpp ragel/fsmgraph.cpp ragel/fsmap.cpp ragel/rlscan.cpp ragel/rlparse.cpp ragel/inputdata.cpp ragel/common.cpp ragel/redfsm.cpp ragel/gendata.cpp ragel/cdcodegen.cpp ragel/cdtable.cpp ragel/cdftable.cpp ragel/cdflat.cpp ragel/cdfflat.cpp ragel/cdgoto.cpp ragel/cdfgoto.cpp ragel/cdipgoto.cpp ragel/cdsplit.cpp ragel/javacodegen.cpp ragel/rubycodegen.cpp ragel/rubytable.cpp ragel/rubyftable.cpp ragel/rubyflat.cpp ragel/rubyfflat.cpp ragel/rbxgoto.cpp ragel/cscodegen.cpp ragel/cstable.cpp ragel/csftable.cpp ragel/csflat.cpp ragel/csfflat.cpp ragel/csgoto.cpp ragel/csfgoto.cpp ragel/csipgoto.cpp ragel/cssplit.cpp ragel/dotcodegen.cpp ragel/xmlcodegen.cpp ragel/gocodegen.cpp ragel/gotable.cpp ragel/goftable.cpp ragel/goflat.cpp ragel/gofflat.cpp ragel/gogoto.cpp ragel/gofgoto.cpp ragel/goipgoto.cpp ragel/gotablish.cpp ragel/mlcodegen.cpp ragel/mltable.cpp ragel/mlftable.cpp ragel/mlflat.cpp ragel/mlfflat.cpp ragel/mlgoto.cpp ragel/mlfgoto.cpp ) include_directories(aapl) add_executable(ragel ${SRC}) install(TARGETS ragel DESTINATION tools CONFIGURATIONS Release) ================================================ FILE: ports/ragel/config.h ================================================ /* ragel/config.h. Generated from config.h.in by configure. */ /* ragel/config.h.in. Generated from configure.in by autoheader. */ /* Name of package */ #define PACKAGE "ragel" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "" /* Define to the full name of this package. */ #define PACKAGE_NAME "ragel" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "ragel 6.9" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "ragel" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "6.9" /* Version number of package */ #define VERSION "6.9" ================================================ FILE: ports/ragel/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://www.colm.net/files/ragel/ragel-6.10.tar.gz" FILENAME "ragel-6.10.tar.gz" SHA512 6c1fe4f6fa8546ae28b92ccfbae94355ff0d3cea346b9ae8ce4cf6c2bdbeb823e0ccd355332643ea72d3befd533a8b3030ddbf82be7ffa811c2c58cbb01aaa38 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES 0001-remove-unistd-h.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/config.h" DESTINATION "${SOURCE_PATH}/ragel") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ragel/vcpkg.json ================================================ { "name": "ragel", "version": "6.10", "port-version": 7, "description": "Ragel State Machine Compiler", "homepage": "https://www.colm.net/open-source/ragel/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/random123/portfile.cmake ================================================ # Random123 - Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "DEShawResearch/random123" REF "v1.14.0" SHA512 1c7d139193f5404e5d14d229f55e0a14b11de596a4cfbf0a39c1419f5ae146055dccc61e9430f724a2d7c1efb8bd01edb72866d4f4705508fcc6ebda6e90e91e HEAD_REF "main" ) # Copy the headers that define this package to the install location. file(GLOB header_files "${SOURCE_PATH}/include/Random123/*.h" "${SOURCE_PATH}/include/Random123/*.hpp") file(COPY ${header_files} "${SOURCE_PATH}/include/Random123/features" "${SOURCE_PATH}/include/Random123/conventional" DESTINATION "${CURRENT_PACKAGES_DIR}/include/Random123") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/random123/vcpkg.json ================================================ { "name": "random123", "version": "1.14.0", "description": "Random123 is a library of 'counter-based' random number generators (CBRNGs), in which the Nth random number can be obtained by applying a stateless mixing function to N instead of the conventional approach of using N iterations of a stateful transformation.", "homepage": "http://www.deshawresearch.com/resources_random123.html", "license": "BSD-3-Clause" } ================================================ FILE: ports/randomstr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO offscale/c89randomstr REF 9d577c4343913a330ef32b93ed12b8942808bbbc SHA512 7adfac8000d9057b9ca230f794bff82e1628864140e08d393e3faff890848606fff72c3dd2b296a20bf3003ed035e9e4273a0599764f515b7a6ac7091e9d2949 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBUILD_TESTING=OFF" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/randomstr/vcpkg.json ================================================ { "name": "randomstr", "version-date": "2022-02-03", "description": "Simple randomstr function in a header-only C89 library", "license": "0BSD", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rang/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO agauniyal/rang REF v3.2 SHA512 f579aaf3bddbfa2325dd31bdbe7c32598af8a340fee62c3a1e7ed1cf189af2808b7838a5fb13b3765279ddd1e7481f6229da72e72218a4916455cf3ae12b5a68 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rang) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rang/vcpkg.json ================================================ { "name": "rang", "version": "3.2", "description": "Colors for your Terminal.", "homepage": "https://github.com/agauniyal/rang", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/range-v3/portfile.cmake ================================================ if(EXISTS "${CURRENT_INSTALLED_DIR}/share/range-v3-vs2015/copyright") message(FATAL_ERROR "'${PORT}' conflicts with 'range-v3-vs2015'. Please remove range-v3-vs2015:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ericniebler/range-v3 REF a81477931a8aa2ad025c6bda0609f38e09e4d7ec # Dude, where's my bored ape? (0.12.0) SHA512 e58030bc7c281e90298025dc21fed9bdabda358cd847b59e5b58feb3e0b93fcf6398e3b8e2912e45deeed67f454c08d4fc4df7f8d0dc378b437612f15c0832fe HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRANGE_V3_TESTS=OFF -DRANGE_V3_EXAMPLES=OFF -DRANGE_V3_PERF=OFF -DRANGE_V3_HEADER_CHECKS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/range-v3) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/include/module.modulemap" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/range-v3/vcpkg.json ================================================ { "name": "range-v3", "version": "0.12.0", "port-version": 4, "description": "Range library for C++14/17/20, basis for C++20's std::ranges", "homepage": "https://github.com/ericniebler/range-v3", "license": "BSL-1.0 AND MIT AND (NCSA OR MIT)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rapidcheck/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emil-e/rapidcheck REF ff6af6fc683159deb51c543b065eba14dfcf329b SHA512 79f1e869a3c55f62d3609cc4b3a56977f720c3eacf5e1792aa3a9bd5ab90aa077371bc0902d6c31503885f9ebcc633ed242ae6995866cb46fd12afdf425500e3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRC_INSTALL_ALL_EXTRAS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/${PORT}/cmake") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/rapidcheck/vcpkg.json ================================================ { "name": "rapidcheck", "version-date": "2023-12-14", "description": "A property-based testing library for C++ (a la QuickCheck) with the goal of being simple to use with as little boilerplate as possible.", "homepage": "https://github.com/emil-e/rapidcheck", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rapidcsv/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO d99kris/rapidcsv REF "v${VERSION}" SHA512 bff69f7e15c96761a2553afa5bcab3375540f78aed7687a0357312769cd63f8c47187768a87f8a910c867f4fa3f99d19fcc48a2631b0b62a543b4627e1540458 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rapidcsv/vcpkg.json ================================================ { "name": "rapidcsv", "version": "8.90", "description": "Rapidcsv is a C++ header-only library for CSV parsing.", "homepage": "https://github.com/d99kris/rapidcsv/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/rapidfuzz/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/rapidfuzz/vcpkg.json ================================================ { "name": "rapidfuzz", "version-string": "deprecated", "description": "Rapid fuzzy string matching library for C++ using the Levenshtein Distance.", "homepage": "https://github.com/maxbachmann/rapidfuzz-cpp", "license": "MIT", "dependencies": [ "rapidfuzz-cpp" ] } ================================================ FILE: ports/rapidfuzz-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO maxbachmann/rapidfuzz-cpp REF "v${VERSION}" SHA512 51d3e38ca0ec2592ee5562208180bc11d6e4b4663405d3541768c060e6fef72cb35338a53c03e7411601123e42480b35749fb59530f52dfa99b5ed18d21aa5ec HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME rapidfuzz CONFIG_PATH lib/cmake/rapidfuzz ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rapidfuzz-cpp/vcpkg.json ================================================ { "name": "rapidfuzz-cpp", "version": "3.3.3", "description": "Rapid fuzzy string matching library for C++ using the Levenshtein Distance.", "homepage": "https://github.com/maxbachmann/rapidfuzz-cpp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rapidhash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Nicoshev/rapidhash REF bc4b4baa48a15ff52ff4725e1ccdcda62815221c # tag rapidhash_v3 SHA512 470e6c3749ae4648aadd81ce0f1acf3d02595b73a804483eb7f5ab03144639618d6d30dc67eb5a132d99bde82c307ad2bf71570d27e15e577efa2f16489b3103 HEAD_REF master ) file(COPY "${SOURCE_PATH}/rapidhash.h" DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rapidhash/vcpkg.json ================================================ { "name": "rapidhash", "version": "3", "port-version": 1, "description": "Very fast, high quality, platform independent hashing algorithm.", "homepage": "https://github.com/Nicoshev/rapidhash", "license": "BSD-2-Clause" } ================================================ FILE: ports/rapidjson/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tencent/rapidjson REF 24b5e7a8b27f42fa16b96fc70aade9106cf7102f # accessed on 2025-02-26 SHA512 50f8723414a6e63eadd45f97be5c44e9fff2d06216c8cc4df802f5bfc2a9416a039f2c69e9bb1882f7e756cd38a7097eea05cab76c739f45805dc41617140799 FILE_DISAMBIGUATOR 2 HEAD_REF master ) # Use RapidJSON's own build process, skipping examples and tests vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF -DRAPIDJSON_BUILD_TESTS=OFF ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/RapidJSON) endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") endif() file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/RapidJSONConfig.cmake" _contents) string(REPLACE "VERSION 3.0" "VERSION 3.5...3.30" _contents "${_contents}") string(REPLACE "\${RapidJSON_SOURCE_DIR}" "\${RapidJSON_CMAKE_DIR}/../.." _contents "${_contents}") string(REPLACE "set( RapidJSON_SOURCE_DIR \"${SOURCE_PATH}\")" "" _contents "${_contents}") string(REPLACE "set( RapidJSON_DIR \"${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel\")" "" _contents "${_contents}") string(REPLACE "\${RapidJSON_CMAKE_DIR}/../../../include" "\${RapidJSON_CMAKE_DIR}/../../include" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/RapidJSONConfig.cmake" "${_contents}\nset(RAPIDJSON_INCLUDE_DIRS \"\${RapidJSON_INCLUDE_DIRS}\")\n") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") ================================================ FILE: ports/rapidjson/vcpkg.json ================================================ { "name": "rapidjson", "version-date": "2025-02-26", "description": "A fast JSON parser/generator for C++ with both SAX/DOM style API ", "homepage": "http://rapidjson.org/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rapidobj/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a8f9f25..21e2c37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ option(RAPIDOBJ_BuildExamples "Build Examples." OFF) set(RAPIDOBJ_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}" CACHE STRING "Header Include Folder.") -set(RAPIDOBJ_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake" CACHE STRING "CMake Config Folder.") +set(RAPIDOBJ_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "CMake Config Folder.") if (RAPIDOBJ_BuildTests OR RAPIDOBJ_BuildTools) add_subdirectory(external EXCLUDE_FROM_ALL) endif() ================================================ FILE: ports/rapidobj/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO guybrush77/rapidobj REF "v${VERSION}" SHA512 eddd03556348e44de60af8bd15b5f614ed2588e7c26e0b57cc436f65394d579f379b991126e6542374cfd4f2e110b305ce19135605adc60609448beb53e03d53 HEAD_REF master PATCHES fix-build.patch ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file( REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rapidobj/vcpkg.json ================================================ { "name": "rapidobj", "version": "1.1", "description": "A fast, header-only, C++17 library for parsing Wavefront .obj files", "license": "MIT", "supports": "!android & !linux", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rapidxml/0001-fix-for-a-bug-in-gcc-that-won-t-let-rapidxml-compile.patch ================================================ From 2cf47bb8fb1de71bb2d2e059c15a30ffa4ca4cd6 Mon Sep 17 00:00:00 2001 From: Ferdinand Niedermann Date: Sat, 21 Sep 2013 01:55:58 +0200 Subject: [PATCH] fix for a bug in gcc that won't let rapidxml compile on clang --- rapidxml_print.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rapidxml_print.hpp b/rapidxml_print.hpp index d03d5f5..7ef305e 100755 --- a/rapidxml_print.hpp +++ b/rapidxml_print.hpp @@ -102,6 +102,20 @@ namespace rapidxml /////////////////////////////////////////////////////////////////////////// // Internal printing operations + // ===================================== + // fix for clang for this bug in gcc and others: http://sourceforge.net/p/rapidxml/bugs/16/ + + template inline OutIt print_children(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_element_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_data_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_cdata_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_declaration_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_comment_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_doctype_node(OutIt out, const xml_node *node, int flags, int indent); + template inline OutIt print_pi_node(OutIt out, const xml_node *node, int flags, int indent); + + // ===================================== + // Print node template inline OutIt print_node(OutIt out, const xml_node *node, int flags, int indent) -- 1.8.4 ================================================ FILE: ports/rapidxml/msvc-alloc_func.diff ================================================ diff --git a/rapidxml.hpp b/rapidxml.hpp index ae91e08..853bc36 100644 --- a/rapidxml.hpp +++ b/rapidxml.hpp @@ -382,7 +382,7 @@ namespace rapidxml public: //! \cond internal - typedef void *(alloc_func)(std::size_t); // Type of user-defined function used to allocate memory - typedef void (free_func)(void *); // Type of user-defined function used to free memory + typedef void * alloc_func(std::size_t); // Type of user-defined function used to allocate memory + typedef void free_func(void *); // Type of user-defined function used to free memory //! \endcond ================================================ FILE: ports/rapidxml/portfile.cmake ================================================ #header-only library vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO rapidxml/rapidxml REF rapidxml%20${VERSION} FILENAME "rapidxml-${VERSION}.zip" SHA512 6c10583e6631ccdb0217d0a5381172cb4c1046226de6ef1acf398d85e81d145228e14c3016aefcd7b70a1db8631505b048d8b4f5d4b0dbf1811d2482eefdd265 PATCHES 0001-fix-for-a-bug-in-gcc-that-won-t-let-rapidxml-compile.patch # https://sourceforge.net/p/rapidxml/bugs/16/ msvc-alloc_func.diff # rapidxml.hpp(385): error C2059: syntax error: '' ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") # Copy the header files file(INSTALL ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/rapidxml FILES_MATCHING PATTERN "*.hpp") ================================================ FILE: ports/rapidxml/vcpkg.json ================================================ { "name": "rapidxml", "version": "1.13", "port-version": 9, "description": "RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility.", "homepage": "https://rapidxml.sourceforge.net" } ================================================ FILE: ports/rapidxml-ns/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO svgpp/rapidxml_ns REF v1.13.2 SHA512 72cdd7e728471e8903ce64470f5172abe7f2300d4d115b3a27b4d4ffb3c20e59aefb9b23c535e37baa3f53c9125aa2932d6fa9ba24e658151e1c9b12f959523a HEAD_REF master ) # Handle copyright file(COPY ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/rapidxml-ns) file(RENAME ${CURRENT_PACKAGES_DIR}/share/rapidxml-ns/license.txt ${CURRENT_PACKAGES_DIR}/share/rapidxml-ns/copyright) # Copy the header files file(INSTALL ${SOURCE_PATH}/rapidxml_ns.hpp ${SOURCE_PATH}/rapidxml_ns_print.hpp ${SOURCE_PATH}/rapidxml_ns_utils.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/rapidxml-ns) ================================================ FILE: ports/rapidxml-ns/vcpkg.json ================================================ { "name": "rapidxml-ns", "version": "1.13.2", "port-version": 2, "description": "RapidXML with added XML namespaces support." } ================================================ FILE: ports/rappture/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) cmake_policy(VERSION 3.11) project (rappture) set(SRC_RAPPTURE_CORE src/core/scew_extras.c src/core/RpBindingsDict.cc src/core/RpBuffer.cc src/core/RpBufferCInterface.cc src/core/RpDXWriter.cc src/core/RpDXWriterFInterface.cc src/core/RpEncode.cc src/core/RpEntityRef.cc src/core/RpFortranCommon.cc src/core/RpLibrary.cc src/core/RpLibraryCInterface.cc src/core/RpLibraryFInterface.cc src/core/RpOutcome.cc src/core/RpOutcomeCInterface.cc src/core/RpPtr.cc src/core/RpResult.cc src/core/RpUnits.cc src/core/RpUnitsCInterface.cc src/core/RpUnitsFInterface.cc src/core/RpUnitsStd.cc src/core/RpUtils.cc src/core/RpUtilsCInterface.cc src/core/RpUtilsFInterface.cc src/core/b64/cdecode.c src/core/b64/cencode.c src/core/scew/attribute.c src/core/scew/element.c src/core/scew/error.c src/core/scew/parser.c src/core/scew/str.c src/core/scew/tree.c src/core/scew/writer.c src/core/scew/xattribute.c src/core/scew/xerror.c src/core/scew/xhandler.c src/core/scew/xparser.c src/core/scew/xprint.c ) set(HEADERS src/core/rappture.h src/core/RpBindingsDict.h src/core/RpBuffer.h src/core/RpBufferCHelper.h src/core/RpBufferCInterface.h src/core/RpDict.h src/core/RpDXWriter.h src/core/RpDXWriterFInterface.h src/core/RpDXWriterFStubs.h src/core/RpEncode.h src/core/RpEntityRef.h src/core/RpFortranCommon.h src/core/RpLibrary.h src/core/RpLibraryCInterface.h src/core/RpLibraryFInterface.h src/core/RpLibraryFStubs.h src/core/RpOutcome.h src/core/RpOutcomeCHelper.h src/core/RpOutcomeCInterface.h src/core/RpPtr.h src/core/RpSimpleBuffer.h src/core/RpUnits.h src/core/RpUnitsCInterface.h src/core/RpUnitsFInterface.h src/core/RpUnitsFStubs.h src/core/RpUnitsStd.h src/core/RpUtils.h src/core/RpUtilsCInterface.h src/core/RpUtilsFInterface.h src/core/RpUtilsFStubs.h src/core/scew_extras.h ) add_library(rappture ${SRC_RAPPTURE_CORE} ${HEADERS}) set_property(TARGET rappture PROPERTY CXX_STANDARD 11) target_include_directories(rappture PUBLIC $ $ ) find_package(expat CONFIG REQUIRED) find_package(ZLIB REQUIRED) target_compile_definitions(rappture PUBLIC -D_CRT_SECURE_NO_WARNINGS -DRAPPTURE_VERSION=1.9 -DSVN_VERSION=6713 -D_USE_MATH_DEFINES ) target_link_libraries(rappture PRIVATE expat::expat ZLIB::ZLIB ) install(TARGETS rappture EXPORT rappture-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(FILES ${HEADERS} DESTINATION include/rappture) install(EXPORT rappture-config NAMESPACE unofficial::rappture:: DESTINATION share/rappture) ================================================ FILE: ports/rappture/include_functional.patch ================================================ diff --git a/src/core/RpUnits.h b/src/core/RpUnits.h index a640205..e697424 100644 --- a/src/core/RpUnits.h +++ b/src/core/RpUnits.h @@ -59,6 +59,7 @@ enum RP_UNITS_CONSTS { #include #include #include +#include #include "RpDict.h" #include "RpUnitsStd.h" ================================================ FILE: ports/rappture/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://nanohub.org/app/site/downloads/rappture/rappture-src-20130903.tar.gz" FILENAME "rappture-src-20130903.tar.gz" SHA512 3b42569d056c5e80762eada3aff23d230d4ba8f6f0078de44d8571a713dde91e31e66fe3c37ceb66e934a1410b338fb481aeb5a29ef56b53da4ad2e8a2a2ae59 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES rappture.patch include_functional.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.terms") ================================================ FILE: ports/rappture/rappture.patch ================================================ diff --git a/src/core/RpBuffer.cc b/src/core/RpBuffer.cc index 6d439fe..ec45405 100644 --- a/src/core/RpBuffer.cc +++ b/src/core/RpBuffer.cc @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include "b64/encode.h" @@ -24,6 +23,11 @@ #include "RpBuffer.h" #include "RpEncode.h" +#if defined(_MSC_VER) +#include +typedef SSIZE_T ssize_t; +#endif + namespace Rappture { /** @@ -109,6 +113,9 @@ Buffer::operator+=(const Buffer& b) Buffer::~Buffer() {} +#ifndef _WIN32 +# define _fileno fileno +#endif bool Buffer::load (Outcome &status, const char *path) @@ -123,7 +130,7 @@ Buffer::load (Outcome &status, const char *path) } struct stat stat; - if (fstat(fileno(f), &stat) < 0) { + if (fstat(_fileno(f), &stat) < 0) { status.addError("can't stat \"%s\": %s", path, strerror(errno)); return false; } diff --git a/src/core/RpDXWriter.cc b/src/core/RpDXWriter.cc index e4748b3..8990c0f 100644 --- a/src/core/RpDXWriter.cc +++ b/src/core/RpDXWriter.cc @@ -18,6 +18,12 @@ #include #include #include + +#if defined(_MSC_VER) +#include +typedef SSIZE_T ssize_t; +#endif + using namespace Rappture; DXWriter::DXWriter() : diff --git a/src/core/RpLibrary.cc b/src/core/RpLibrary.cc index 2b9a540..4da787b 100644 --- a/src/core/RpLibrary.cc +++ b/src/core/RpLibrary.cc @@ -11,7 +11,6 @@ * ====================================================================== */ -#include "config.h" #include "scew/scew.h" #include "scew_extras.h" #include "RpLibrary.h" diff --git a/src/core/scew/scew.h b/src/core/scew/scew.h index 9741ed5..e335c2d 100644 --- a/src/core/scew/scew.h +++ b/src/core/scew/scew.h @@ -61,12 +61,6 @@ # define SCEW_LIB_D # endif /* _DEBUG */ -# if defined(SCEW_LIB_U) || defined(SCEW_LIB_S) || defined(SCEW_LIB_D) -# pragma comment( lib, "scew_" SCEW_LIB_U SCEW_LIB_S SCEW_LIB_D ".lib" ) -# else -# pragma comment( lib, "scew.lib" ) -# endif - #endif /* _WIN32 */ #endif /* SCEW_H_ALEIX0211250134 */ ================================================ FILE: ports/rappture/vcpkg.json ================================================ { "name": "rappture", "version": "1.9", "port-version": 4, "description": "Rappture is a toolkit supporting Rapid application infrastructure, making it quick and easy to develop powerful scientific applications.", "license": null, "dependencies": [ "expat", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/raygui/portfile.cmake ================================================ #header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO raysan5/raygui REF "${VERSION}" SHA512 8e59889af6b6163b9ff9930ae79bdfaab5015e39279d1a50d3f74c0f50b12b2015fdf17016b04d2c4f66420f4e631b25a51ede5c1627dfcde269457f55f34ff1 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/src/raygui.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/raygui/vcpkg.json ================================================ { "name": "raygui", "version": "4.0", "description": "A simple and easy-to-use immediate-mode gui library", "homepage": "https://github.com/raysan5/raylib", "license": "Zlib" } ================================================ FILE: ports/raylib/android.diff ================================================ diff --git a/cmake/GlfwImport.cmake b/cmake/GlfwImport.cmake index d0c23ca..92cd5c3 100644 --- a/cmake/GlfwImport.cmake +++ b/cmake/GlfwImport.cmake @@ -30,6 +30,8 @@ if(NOT glfw3_FOUND AND NOT USE_EXTERNAL_GLFW STREQUAL "ON" AND "${PLATFORM}" MAT include_directories(BEFORE SYSTEM external/glfw/include) elseif("${PLATFORM}" STREQUAL "DRM") MESSAGE(STATUS "No GLFW required on PLATFORM_DRM") +elseif("${PLATFORM}" STREQUAL "Android") + list(REMOVE_ITEM LIBS_PRIVATE glfw) else() MESSAGE(STATUS "Using external GLFW") set(GLFW_PKG_DEPS glfw3) ================================================ FILE: ports/raylib/fix-link-path.patch ================================================ diff --git a/cmake/raylib-config.cmake b/cmake/raylib-config.cmake index 700965c..4815cd6 100644 --- a/cmake/raylib-config.cmake +++ b/cmake/raylib-config.cmake @@ -65,7 +65,7 @@ if (NOT TARGET raylib) IMPORTED_LOCATION "${raylib_LIBRARIES}" IMPORTED_IMPLIB "${raylib_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES "${raylib_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${raylib_LDFLAGS}" + INTERFACE_LINK_LIBRARIES "${raylib_LIBRARIES}" INTERFACE_COMPILE_OPTIONS "${raylib_DEFINITIONS}" ) ================================================ FILE: ports/raylib/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) message( "raylib currently requires the following libraries from the system package manager: libgl1-mesa-dev libx11-dev libxcursor-dev libxinerama-dev libxrandr-dev These can be installed on Ubuntu systems via sudo apt install libgl1-mesa-dev libx11-dev libxcursor-dev libxinerama-dev libxrandr-dev" ) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO raysan5/raylib REF "${VERSION}" SHA512 503483a5436e189ad67533dc6c90be592283b84fbd57c86ab457dd1507b1dd11c897767ea9efa83affaf236f2711ec59e56658cf6fcad582a790a5fdc01b5ace HEAD_REF master PATCHES android.diff fix-link-path.patch ) file(GLOB vendored_headers RELATIVE "${SOURCE_PATH}/src/external" "${SOURCE_PATH}/src/external/cgltf.h" # Do not use dirent from vcpkg: It is a different implementation which has # 'include ', leading to duplicate and conflicting definitions. #"${SOURCE_PATH}/src/external/dirent.h" "${SOURCE_PATH}/src/external/nanosvg*.h" "${SOURCE_PATH}/src/external/qoi.h" "${SOURCE_PATH}/src/external/s*fl.h" # from mmx "${SOURCE_PATH}/src/external/stb_*" ) file(GLOB vendored_audio_headers RELATIVE "${SOURCE_PATH}/src/external" "${SOURCE_PATH}/src/external/dr_*.h" "${SOURCE_PATH}/src/external/miniaudio.h" ) set(optional_vendored_headers "stb_image_resize2.h" # not yet in vcpkg ) foreach(header IN LISTS vendored_headers vendored_audio_headers) unset(vcpkg_file) find_file(vcpkg_file NAMES "${header}" PATHS "${CURRENT_INSTALLED_DIR}/include" PATH_SUFFIXES mmx nanosvg NO_DEFAULT_PATH NO_CACHE) if(header IN_LIST vendored_audio_headers AND NOT "audio" IN_LIST FEATURES) message(STATUS "Emptying '${header}' (audio disabled)") file(WRITE "${SOURCE_PATH}/src/external/${vcpkg_file}" "# audio disabled") elseif(vcpkg_file) message(STATUS "De-vendoring '${header}'") file(COPY "${vcpkg_file}" DESTINATION "${SOURCE_PATH}/src/external") elseif(header IN_LIST optional_vendored_headers) message(STATUS "Not de-vendoring '${header}' (absent in vcpkg)") else() message(FATAL_ERROR "No replacement for vendored '${header}'") endif() endforeach() set(PLATFORM_OPTIONS "") if(VCPKG_TARGET_IS_ANDROID) list(APPEND PLATFORM_OPTIONS -DPLATFORM=Android -DUSE_EXTERNAL_GLFW=OFF) elseif(VCPKG_TARGET_IS_EMSCRIPTEN) list(APPEND PLATFORM_OPTIONS -DPLATFORM=Web -DUSE_EXTERNAL_GLFW=OFF) else() list(APPEND PLATFORM_OPTIONS -DPLATFORM=Desktop -DUSE_EXTERNAL_GLFW=ON) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES audio SUPPORT_MODULE_RAUDIO audio USE_AUDIO ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DCMAKE_POLICY_DEFAULT_CMP0072=NEW # Prefer GLVND -DCUSTOMIZE_BUILD=ON ${PLATFORM_OPTIONS} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/raylib.h" "defined(USE_LIBTYPE_SHARED)" "1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/raylib/vcpkg.json ================================================ { "name": "raylib", "version": "5.5", "port-version": 1, "description": "A simple and easy-to-use library to enjoy videogames programming", "homepage": "https://github.com/raysan5/raylib", "license": "Zlib", "supports": "!arm32 & !uwp", "dependencies": [ "cgltf", "dirent", { "name": "glfw3", "platform": "!(android | emscripten)" }, "mmx", "nanosvg", "qoi", "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "audio" ], "features": { "audio": { "description": "Build audio module", "dependencies": [ "drlibs", "miniaudio" ] } } } ================================================ FILE: ports/raylib-cpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RobLoach/raylib-cpp REF "v${VERSION}" SHA512 12da247a1c1a3e0bc2d9f8c361024983b4cbcefe17c0d288e29593c8d49d44e8d319acda91c13fb181a933de9535d61ee75f3a2bf8549dcb3986f21c5d8a7e44 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_RAYLIB_CPP_EXAMPLES=OFF ) vcpkg_cmake_install() # Keep root include clean file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/raylib-cpp") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(RENAME "${CURRENT_PACKAGES_DIR}/raylib-cpp" "${CURRENT_PACKAGES_DIR}/include/raylib-cpp") file(WRITE "${CURRENT_PACKAGES_DIR}/include/raylib-cpp.hpp" "#include \"raylib-cpp/raylib-cpp.hpp\"\n") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/raylib-cpp/vcpkg.json ================================================ { "name": "raylib-cpp", "version": "5.5.0", "port-version": 1, "description": "C++ Object Oriented Wrapper for raylib", "homepage": "https://github.com/RobLoach/raylib-cpp", "license": "Zlib", "dependencies": [ { "name": "raylib", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/rbdl/0001-fix-eigen3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d25936d..3a26204 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,15 +69,9 @@ OPTION (RBDL_USE_PYTHON_2 "Use python 2 instead of python 3" OFF) OPTION (RBDL_BUILD_CASADI "Use the CasADi backend" OFF) OPTION (RBDL_VCPKG_BUILD "Building RBDL in vcpkg environment" OFF) - # Find and use the system's Eigen3 library -FIND_PACKAGE (Eigen3 3.0.0) - -IF (NOT EIGEN3_FOUND) - MESSAGE (WARNING "Could not find Eigen3 on your system. Please install it!") -ENDIF (NOT EIGEN3_FOUND) - -INCLUDE_DIRECTORIES (${EIGEN3_INCLUDE_DIR}) +FIND_PACKAGE (Eigen3 REQUIRED) +LINK_LIBRARIES (Eigen3::Eigen) # Addons IF (RBDL_BUILD_ADDON_URDFREADER) diff --git a/addons/urdfreader/thirdparty/CMakeLists.txt b/addons/urdfreader/thirdparty/CMakeLists.txt index a57f5a7..77a36dd 100644 --- a/addons/urdfreader/thirdparty/CMakeLists.txt +++ b/addons/urdfreader/thirdparty/CMakeLists.txt @@ -1,7 +1,9 @@ -FIND_FILE(URDF_MODULE CMakeLists.txt PATHS ${CMAKE_CURRENT_SOURCE_DIR}/urdfparser NO_DEFAULT_PATH) -IF (URDF_MODULE STREQUAL URDF_MODULE-NOTFOUND) - MESSAGE(FATAL_ERROR "The urdfreader module was not initalized correctly! Please make sure that you recursively cloned rbdl. For more information take a closer look at the README!") -ENDIF(URDF_MODULE STREQUAL URDF_MODULE-NOTFOUND) +SET(URDF_MODULE "${CMAKE_CURRENT_SOURCE_DIR}/urdfparser/CMakeLists.txt") +IF (NOT EXISTS "${URDF_MODULE}") + MESSAGE(FATAL_ERROR "The urdfreader module was not initialized correctly!\n" + "The required file '${URDF_MODULE}' does not exist.\n" + "Please make sure that you recursively cloned rbdl. For more information take a closer look at the README!") +ENDIF() ADD_SUBDIRECTORY( urdfparser ) diff --git a/include/rbdl/rbdl_eigenmath.h b/include/rbdl/rbdl_eigenmath.h index 917eb41..8cf2f8c 100644 --- a/include/rbdl/rbdl_eigenmath.h +++ b/include/rbdl/rbdl_eigenmath.h @@ -44,15 +44,11 @@ class RBDL_TEMPLATE_DLLAPI Vector2_t : public Eigen::Vector2d const double& v0, const double& v1 ) { - Base::_check_template_params(); - (*this) << v0, v1; } void set(const double& v0, const double& v1) { - Base::_check_template_params(); - (*this) << v0, v1; } }; @@ -81,15 +77,11 @@ class RBDL_TEMPLATE_DLLAPI Vector3_t : public Eigen::Vector3d const double& v0, const double& v1, const double& v2 ) { - Base::_check_template_params(); - (*this) << v0, v1, v2; } void set(const double& v0, const double& v1, const double& v2) { - Base::_check_template_params(); - (*this) << v0, v1, v2; } }; @@ -120,8 +112,6 @@ class RBDL_TEMPLATE_DLLAPI Matrix3_t : public Eigen::Matrix3d const double& m20, const double& m21, const double& m22 ) { - Base::_check_template_params(); - (*this) << m00, m01, m02, m10, m11, m12, @@ -154,15 +144,11 @@ class RBDL_TEMPLATE_DLLAPI Vector4_t : public Eigen::Vector4d const double& v0, const double& v1, const double& v2, const double& v3 ) { - Base::_check_template_params(); - (*this) << v0, v1, v2, v3; } void set(const double& v0, const double& v1, const double& v2, const double& v3) { - Base::_check_template_params(); - (*this) << v0, v1, v2, v3; } }; @@ -192,8 +178,6 @@ class RBDL_TEMPLATE_DLLAPI SpatialVector_t : public Eigen::Matrix const double& v3, const double& v4, const double& v5 ) { - Base::_check_template_params(); - (*this) << v0, v1, v2, v3, v4, v5; } @@ -202,8 +186,6 @@ class RBDL_TEMPLATE_DLLAPI SpatialVector_t : public Eigen::Matrix const double& v3, const double& v4, const double& v5 ) { - Base::_check_template_params(); - (*this) << v0, v1, v2, v3, v4, v5; } }; @@ -235,8 +217,6 @@ class RBDL_TEMPLATE_DLLAPI Matrix4_t : public Eigen::Matrix const Scalar& m30, const Scalar& m31, const Scalar& m32, const Scalar& m33 ) { - Base::_check_template_params(); - (*this) << m00, m01, m02, m03 , m10, m11, m12, m13 @@ -252,8 +232,6 @@ class RBDL_TEMPLATE_DLLAPI Matrix4_t : public Eigen::Matrix const Scalar& m30, const Scalar& m31, const Scalar& m32, const Scalar& m33 ) { - Base::_check_template_params(); - (*this) << m00, m01, m02, m03 , m10, m11, m12, m13 @@ -292,8 +270,6 @@ class RBDL_TEMPLATE_DLLAPI SpatialMatrix_t : public Eigen::Matrix const Scalar& m50, const Scalar& m51, const Scalar& m52, const Scalar& m53, const Scalar& m54, const Scalar& m55 ) { - Base::_check_template_params(); - (*this) << m00, m01, m02, m03, m04, m05 , m10, m11, m12, m13, m14, m15 @@ -313,8 +289,6 @@ class RBDL_TEMPLATE_DLLAPI SpatialMatrix_t : public Eigen::Matrix const Scalar& m50, const Scalar& m51, const Scalar& m52, const Scalar& m53, const Scalar& m54, const Scalar& m55 ) { - Base::_check_template_params(); - (*this) << m00, m01, m02, m03, m04, m05 , m10, m11, m12, m13, m14, m15 ================================================ FILE: ports/rbdl/portfile.cmake ================================================ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" RBDL_STATIC) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rbdl/rbdl REF "v${VERSION}" SHA512 85128dd7184a876d541278ebe0f986774c7c891b4925f320e14932f6809f8bbd07ef4b5d915afe9b49c2245bd494012993ae6643631f4157e3d217e9eccb6e48 HEAD_REF master PATCHES 0001-fix-eigen3.patch ) if(NOT EXISTS "${SOURCE_PATH}/addons/urdfreader/thirdparty/urdfparser/CMakeLists.txt") vcpkg_from_github( OUT_SOURCE_PATH PARSER_SOURCE_PATH REPO ORB-HD/URDF_Parser REF 8fcc3174743cf3e7561ffb6625524f8133161df4 SHA512 6cba22e98f23e74fd7c1dcb356d88b5e24c61913dc900e584ed313b1fcce5d6832ceafcf15a3ea7a56714ab82d3cd7d9f4350d3d242614561c836bd4735e3f4f ) file(REMOVE_RECURSE "${SOURCE_PATH}/addons/urdfreader/thirdparty/urdfparser") file(RENAME "${PARSER_SOURCE_PATH}" "${SOURCE_PATH}/addons/urdfreader/thirdparty/urdfparser") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRBDL_BUILD_STATIC=${RBDL_STATIC} -DRBDL_BUILD_ADDON_LUAMODEL=ON -DRBDL_BUILD_ADDON_GEOMETRY=ON -DRBDL_BUILD_ADDON_URDFREADER=ON -DRBDL_BUILD_EXECUTABLES=OFF -DRBDL_VCPKG_BUILD=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/RBDL PACKAGE_NAME RBDL) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rbdl/vcpkg.json ================================================ { "name": "rbdl", "version": "3.3.1", "description": "Rigid Body Dynamics Library", "homepage": "https://github.com/rbdl/rbdl", "dependencies": [ "boost-algorithm", "boost-lexical-cast", "eigen3", "lua", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/re2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/re2 REF 927f5d53caf8111721e734cf24724686bb745f55 SHA512 35103a46a6350084f2d09ccfcf4322dac7364c61fbdad8bfcbd41b39990f83a260d2a8cd5ca019a3f24b71faf1588c7dabf07c3dddae5268bcc5b9502b87658a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRE2_TEST=OFF -DRE2_BENCHMARK=OFF -DRE2_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/re2/vcpkg.json ================================================ { "name": "re2", "version-date": "2025-11-05", "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.", "homepage": "https://github.com/google/re2", "license": "BSD-3-Clause", "dependencies": [ "abseil", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/reaction/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lumia431/reaction REF "${VERSION}" SHA512 7747b621c790318d3240f8634bf2310420c93b1418f9ac1384d784ab08658f12d2631e59d5927dc2b81c7801d150a785ea1cdfbb0b7025ea0531047023f8dab1 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/reaction) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) ================================================ FILE: ports/reaction/usage ================================================ reaction is a header-only library that provides CMake targets: find_package(reaction CONFIG REQUIRED) target_link_libraries(main PRIVATE reaction::reaction) ================================================ FILE: ports/reaction/vcpkg.json ================================================ { "name": "reaction", "version": "1.0.0", "description": "A lightweight, header-only, high-performance reactive programming framework for C++20", "homepage": "https://github.com/lumia431/reaction", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/reactiveplusplus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO victimsnino/ReactivePlusPlus REF "v${VERSION}" SHA512 4350b871e0219c469469658c323d55c6df894995e61c14035da400a6f4928cbba4fb9307efad1a5db43a7a1b68c4f5d6f4bc355afd80c390258f8f2b6a196d61 HEAD_REF v2 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME RPP CONFIG_PATH share/RPP) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(GLOB_RECURSE CMAKE_LISTS "${CURRENT_PACKAGES_DIR}/include/CMakeLists.txt") file(REMOVE ${CMAKE_LISTS}) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/reactiveplusplus/vcpkg.json ================================================ { "name": "reactiveplusplus", "version": "2.2.3", "description": "ReactivePlusPlus is reactive programming library for C++ language", "homepage": "https://github.com/victimsnino/ReactivePlusPlus", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/reactphysics3d/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile(FIX_UPSTREAM_421 URLS https://github.com/DanielChappuis/reactphysics3d/pull/421.patch?full_index=1 SHA512 71ab7d5024fff100546d1cc934976f15e3ee3fe8df29ff62e1c743d3f0c5f6dad73def0b9d0a560fa423e610cb1388c88c3226d8e2b9f2b1afdf4535204541ff FILENAME reactphysics3d-421.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DanielChappuis/reactphysics3d REF "v${VERSION}" SHA512 3ba9ec0e399d2dc46c126e4aa20718b9024f8097f36157e31b469f5135a726d3c0811e79335db970dfab7f258d1506dd4cefa46edca73f5940bf561dc9a5b11a HEAD_REF master PATCHES "${FIX_UPSTREAM_421}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ReactPhysics3D") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/reactphysics3d/usage ================================================ ReactPhysics3D provides CMake targets: find_package(ReactPhysics3D REQUIRED) target_link_libraries(main PRIVATE ReactPhysics3D::ReactPhysics3D) ================================================ FILE: ports/reactphysics3d/vcpkg.json ================================================ { "name": "reactphysics3d", "version": "0.10.2", "port-version": 1, "description": "Open source C++ physics engine library in 3D", "homepage": "https://www.reactphysics3d.com", "documentation": "https://www.reactphysics3d.com/documentation/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/readerwriterqueue/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cameron314/readerwriterqueue REF "v${VERSION}" SHA512 adabc72f94dd9d9fedda9d1123bc1496c19e667c911b17058407718c79337a2532f7510abbcc1b6d69fb4bf54df8765b6ac64925929ef676912a5285eacc07c5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/readerwriterqueue/vcpkg.json ================================================ { "name": "readerwriterqueue", "version-semver": "1.0.7", "description": "A single-producer, single-consumer lock-free queue", "homepage": "https://github.com/cameron314/readerwriterqueue", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/readline/portfile.cmake ================================================ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") message(FATAL_ERROR "No implementation of readline is currently available for UWP targets") endif() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) FILE(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/readline/usage ================================================ the package readline can be used under windows via: find_package(unofficial-readline-win32 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::readline-win32::readline) The package readline can be imported via the CMake FindPkgConfig module: find_package(PkgConfig REQUIRED) pkg_check_modules(readline REQUIRED IMPORTED_TARGET readline) target_link_libraries(main PRIVATE PkgConfig::readline) ================================================ FILE: ports/readline/vcpkg.json ================================================ { "name": "readline", "version": "0", "port-version": 5, "description": "GNU readline and history libraries", "supports": "!uwp", "dependencies": [ { "name": "readline-unix", "platform": "!windows" }, { "name": "readline-win32", "platform": "windows" } ] } ================================================ FILE: ports/readline-unix/portfile.cmake ================================================ set(filename readline-${VERSION}.tar.gz) vcpkg_download_distfile( ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/readline/${filename}" "https://ftp.gnu.org/gnu/readline/${filename}" FILENAME "${filename}" SHA512 513002753dcf5db9213dbbb61d51217245f6a40d33b1dd45238e8062dfa8eef0c890b87a5548e11db959e842724fb572c4d3d7fb433773762a63c30efe808344 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --with-curses=yes --disable-install-examples ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/tools" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/readline-unix/vcpkg.json ================================================ { "name": "readline-unix", "version": "8.3", "description": "The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are typed in.", "homepage": "https://tiswww.case.edu/php/chet/readline/rltop.html", "license": "GPL-3.0-or-later", "supports": "!windows", "dependencies": [ "ncurses", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/readline-win32/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiaozhuai/readline-win32 REF 0fa4001557c27157a51a9ca7f32a8c50bc97927a SHA512 5e6bb2fb077445d4e1fad49f2260538b0cf7e49857cda81640b8afd034324ad9b927c9ea00c9288d08c887478523db891bfc799e49ae009d32479141766857ec HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-readline-win32) vcpkg_fixup_pkgconfig() if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/readline/rlstdc.h" "defined(USE_READLINE_STATIC)" "1" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/readline-win32/vcpkg.json ================================================ { "name": "readline-win32", "version": "5.0", "port-version": 9, "description": "Implementation of readline for Windows Desktop", "homepage": "https://github.com/xiaozhuai/readline-win32", "license": "GPL-2.0", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/readosm/fix-makefiles.patch ================================================ diff --git a/makefile.vc b/makefile.vc index 8edb536..0132067 100644 --- a/makefile.vc +++ b/makefile.vc @@ -12,7 +12,8 @@ CFLAGS = /nologo -I. -Iheaders -IC:\OSGeo4W\include $(OPTFLAGS) default: all -all: readosm.lib readosm_i.lib +WANT_LIB = readosm.lib +all: $(WANT_LIB) readosm.lib: $(LIBOBJ) if exist readosm.lib del readosm.lib @@ -23,7 +24,7 @@ $(READOSM_DLL): readosm_i.lib readosm_i.lib: $(LIBOBJ) link /dll /out:$(READOSM_DLL) \ /implib:readosm_i.lib $(LIBOBJ) \ - C:\OSGeo4w\lib\libexpat.lib C:\OSGeo4w\lib\zlib.lib + $(LIBS) if exist $(READOSM_DLL).manifest mt -manifest \ $(READOSM_DLL).manifest -outputresource:$(READOSM_DLL);2 @@ -40,10 +41,12 @@ clean: install: all -mkdir $(INSTDIR) - -mkdir $(INSTDIR)\bin -mkdir $(INSTDIR)\lib -mkdir $(INSTDIR)\include +!IF "$(WANT_LIB)" == "readosm_i.lib" + -mkdir $(INSTDIR)\bin copy *.dll $(INSTDIR)\bin - copy *.lib $(INSTDIR)\lib +!ENDIF + copy /Y $(WANT_LIB) $(INSTDIR)\lib\readosm.lib copy headers\readosm.h $(INSTDIR)\include ================================================ FILE: ports/readosm/pc-file.patch ================================================ diff --git a/readosm.pc.in b/readosm.pc.in index c1a0961..2417433 100644 --- a/readosm.pc.in +++ b/readosm.pc.in @@ -8,5 +8,6 @@ includedir=@includedir@ Name: readosm Description: a simple library parsing Open Street Map files Version: @VERSION@ -Libs: -L${libdir} -lreadosm -lz -lexpat +Requires.private: expat zlib +Libs: -L${libdir} -lreadosm Cflags: -I${includedir} ================================================ FILE: ports/readosm/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.gaia-gis.it/gaia-sins/readosm-sources/readosm-${VERSION}.tar.gz" FILENAME "readosm-${VERSION}.tar.gz" SHA512 ec8516cdd0b02027cef8674926653f8bc76e2082c778b02fb2ebcfa6d01e21757aaa4fd5d5104059e2f5ba97190183e60184f381bfd592a635805aa35cd7a682 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-makefiles.patch pc-file.patch ) set(pkg_config_modules expat zlib) if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) x_vcpkg_pkgconfig_get_modules( PREFIX PKGCONFIG MODULES --msvc-syntax ${pkg_config_modules} CFLAGS LIBS ) # cherry-picked from Makefile.vc (CFLAGS) and nmake.opt (OPTFLAGS) set(CFLAGS "/fp:precise /W3 /D_CRT_SECURE_NO_WARNINGS -I. -Iheaders") set(WANT_LIB "readosm.lib") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(APPEND CFLAGS " /DDLL_EXPORT") set(WANT_LIB "readosm_i.lib") endif() set(SYSTEM_LIBS "") if(VCPKG_TARGET_IS_UWP) set(SYSTEM_LIBS "windowsapp.lib") endif() file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR) vcpkg_install_nmake( SOURCE_PATH "${SOURCE_PATH}" CL_LANGUAGE C OPTIONS "WANT_LIB=${WANT_LIB}" OPTIONS_RELEASE "CFLAGS=${CFLAGS} ${PKGCONFIG_CFLAGS_RELEASE}" "LIBS=${PKGCONFIG_LIBS_RELEASE} ${SYSTEM_LIBS}" "INSTDIR=${INST_DIR}" OPTIONS_DEBUG "CFLAGS=${CFLAGS} ${PKGCONFIG_CFLAGS_DEBUG}" "LIBS=${PKGCONFIG_LIBS_DEBUG} ${SYSTEM_LIBS}" "INSTDIR=${INST_DIR}\\debug" ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/readosm.h" "#ifdef DLL_EXPORT" "#if 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/readosm.h" "#ifdef DLL_EXPORT" "#if 1") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/readosm.h" "__declspec(dllexport)" "__declspec(dllimport)") endif() set(infile "${SOURCE_PATH}/readosm.pc.in") set(outfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/readosm.pc") set(VERSION "${VERSION}") set(exec_prefix [[${prefix}]]) set(libdir [[${prefix}/lib]]) set(includedir [[${prefix}/include]]) list(JOIN pkg_config_modules " " requires_private) configure_file("${infile}" "${outfile}" @ONLY) if(NOT DEFINED VCPKG_BUILD_TYPE) set(outfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/readosm.pc") set(includedir [[${prefix}/../include]]) configure_file("${infile}" "${outfile}" @ONLY) endif() else() x_vcpkg_pkgconfig_get_modules( PREFIX PKGCONFIG MODULES ${pkg_config_modules} LIBS ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS_RELEASE "LIBS=${PKGCONFIG_LIBS_RELEASE} \$LIBS" OPTIONS_DEBUG "LIBS=${PKGCONFIG_LIBS_DEBUG} \$LIBS" ) vcpkg_make_install() endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/readosm/vcpkg.json ================================================ { "name": "readosm", "version-string": "1.1.0a", "port-version": 6, "description": "ReadOSM is an open source library to extract valid data from within an Open Street Map input file (.osm or .osm.pbf)", "homepage": "https://www.gaia-gis.it/gaia-sins/readosm-sources", "license": "MPL-1.1", "dependencies": [ "expat", { "name": "vcpkg-make", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, "zlib" ] } ================================================ FILE: ports/realm-core/UWP_index_set.patch ================================================ diff --git a/src/realm/object-store/index_set.hpp b/src/realm/object-store/index_set.hpp index d61e78221..a95338967 100644 --- a/src/realm/object-store/index_set.hpp +++ b/src/realm/object-store/index_set.hpp @@ -387,7 +387,7 @@ inline ChunkedRangeVectorIterator ChunkedRangeVectorIterator::operator--(i } template -#if REALM_WINDOWS && REALM_ARCHITECTURE_ARM64 +#if defined(_MSC_VER) && REALM_ARCHITECTURE_ARM64 // Inlining this function crashes msvc when targeting arm64 in as of 19.39.33523 __declspec(noinline) #endif ================================================ FILE: ports/realm-core/cstdlib.diff ================================================ diff --git a/src/realm/util/cli_args.cpp b/src/realm/util/cli_args.cpp index a199b2e..44455d0 100644 --- a/src/realm/util/cli_args.cpp +++ b/src/realm/util/cli_args.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include namespace realm::util { ================================================ FILE: ports/realm-core/fix-zlib.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d5710f..42ee3c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -318,7 +318,9 @@ endif() # so for an iOS build it'll use the path from the Device plaform, which is an error on Simulator. # Just use -lz and let Xcode figure it out # Emscripten does provide Zlib, but it doesn't work with find_package and is handled specially +find_package(ZLIB REQUIRED) # vcpkg zlib, everwhere if(NOT APPLE AND NOT EMSCRIPTEN AND NOT TARGET ZLIB::ZLIB) +elseif(0) if(WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND REALM_LINUX_TOOLCHAIN)) find_package(ZLIB) if (NOT ZLIB_FOUND) diff --git a/tools/cmake/RealmConfig.cmake.in b/tools/cmake/RealmConfig.cmake.in index e418c86..32af2c0 100644 --- a/tools/cmake/RealmConfig.cmake.in +++ b/tools/cmake/RealmConfig.cmake.in @@ -21,7 +21,9 @@ find_dependency(Threads) # Don't use find_library(ZLIB) on Apple platforms - it hardcodes the path per platform, # so for an iOS build it'll use the path from the Device plaform, which is an error on Simulator. # Just use -lz and let Xcode figure it out +find_dependency(ZLIB) if(TARGET Realm::Sync AND NOT APPLE AND NOT TARGET ZLIB::ZLIB) +elseif(0) if(WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND REALM_LINUX_TOOLCHAIN)) find_package(ZLIB) if (NOT ZLIB_FOUND) ================================================ FILE: ports/realm-core/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO realm/realm-core REF "v${VERSION}" SHA512 b95fbccdddcad2a4ad68fe5fe5358a67f668bdd2cd4bef68f8fc74f9d11690c317156ba28942c4c9db446c796a0d760387c8154209f6039d92a880d7e64e3847 HEAD_REF master PATCHES UWP_index_set.patch fix-zlib.patch cstdlib.diff ) vcpkg_list(SET REALMCORE_CMAKE_OPTIONS) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) list(APPEND REALMCORE_CMAKE_OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=ON) else() if(VCPKG_TARGET_IS_EMSCRIPTEN) list(APPEND REALMCORE_CMAKE_OPTIONS -DREALM_FORCE_OPENSSL=ON) list(APPEND REALMCORE_CMAKE_OPTIONS -DREALM_ENABLE_SYNC=OFF) # https://github.com/realm/realm-core/issues/7752 endif() list(APPEND REALMCORE_CMAKE_OPTIONS -DREALM_USE_SYSTEM_OPENSSL=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DREALM_BUILD_LIB_ONLY=ON -DREALM_CORE_SUBMODULE_BUILD=OFF -DREALM_NO_TESTS=ON -DREALM_VERSION=${VERSION} -DCMAKE_DISABLE_FIND_PACKAGE_Backtrace=ON -DCMAKE_DISABLE_FIND_PACKAGE_BISON=ON -DCMAKE_DISABLE_FIND_PACKAGE_FLEX=ON ${REALMCORE_CMAKE_OPTIONS} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_OpenSSL ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/Realm") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/doc" "${CURRENT_PACKAGES_DIR}/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/THIRD-PARTY-NOTICES") ================================================ FILE: ports/realm-core/vcpkg.json ================================================ { "name": "realm-core", "version": "14.14.0", "description": "Realm is a mobile database that runs directly inside phones, tablets or wearables.", "homepage": "https://github.com/realm/realm-core", "license": null, "supports": "!emscripten", "dependencies": [ { "name": "openssl", "platform": "!ios & !osx", "version>=": "3.2.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/realsense2/add-stdexcept.diff ================================================ diff --git a/src/core/matcher-factory.cpp b/src/core/matcher-factory.cpp index ea94209..580af62 100644 --- a/src/core/matcher-factory.cpp +++ b/src/core/matcher-factory.cpp @@ -6,6 +6,7 @@ #include "stream-interface.h" #include +#include namespace librealsense { diff --git a/src/core/options-registry.cpp b/src/core/options-registry.cpp index d22b142..68c62d5 100644 --- a/src/core/options-registry.cpp +++ b/src/core/options-registry.cpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace librealsense { diff --git a/third-party/rsutils/src/control-c-handler.cpp b/third-party/rsutils/src/control-c-handler.cpp index 7d73013ce..ff534155c 100644 --- a/third-party/rsutils/src/control-c-handler.cpp +++ b/third-party/rsutils/src/control-c-handler.cpp @@ -6,6 +6,7 @@ #include #include +#include namespace rsutils { ================================================ FILE: ports/realsense2/android-config.diff ================================================ diff --git a/CMake/android_config.cmake b/CMake/android_config.cmake index 203003e..487e60a 100644 --- a/CMake/android_config.cmake +++ b/CMake/android_config.cmake @@ -10,7 +10,6 @@ macro(os_set_flags) set(BUILD_TOOLS OFF) set(BUILD_WITH_OPENMP OFF) set(BUILD_GRAPHICAL_EXAMPLES OFF) - set(ANDROID_STL "c++_static") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -pedantic -g -D_DEFAULT_SOURCE") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -pedantic -g -Wno-missing-field-initializers") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-switch -Wno-multichar") ================================================ FILE: ports/realsense2/build.diff ================================================ diff --git a/src/algo.cpp b/src/algo.cpp index e6b3210..524f2a8 100644 --- a/src/algo.cpp +++ b/src/algo.cpp @@ -5,6 +5,8 @@ #include "option.h" #include "core/video-frame.h" +#include + using namespace librealsense; bool auto_exposure_state::get_enable_auto_exposure() const diff --git a/src/librealsense-exception.h b/src/librealsense-exception.h index c9ce838..f02f42f 100644 --- a/src/librealsense-exception.h +++ b/src/librealsense-exception.h @@ -7,6 +7,7 @@ #include #include "basics.h" // LRS_EXTENSION_API +#include #include #include diff --git a/src/linux/backend-hid.h b/src/linux/backend-hid.h index bc70bfd..2a989f0 100644 --- a/src/linux/backend-hid.h +++ b/src/linux/backend-hid.h @@ -6,6 +6,7 @@ #include "types.h" #include +#include #include namespace librealsense diff --git a/src/platform/platform-utils.cpp b/src/platform/platform-utils.cpp index 0cfa3a7..12e5868 100644 --- a/src/platform/platform-utils.cpp +++ b/src/platform/platform-utils.cpp @@ -7,6 +7,8 @@ #include "hid-device-info.h" #include +#include +using std::find; namespace librealsense { namespace platform { diff --git a/third-party/rsutils/src/network-adapter-watcher.cpp b/third-party/rsutils/src/network-adapter-watcher.cpp index 942fa1f..48414b4 100644 --- a/third-party/rsutils/src/network-adapter-watcher.cpp +++ b/third-party/rsutils/src/network-adapter-watcher.cpp @@ -26,6 +26,8 @@ #endif #endif // ! __APPLE__ && ! __ANDROID__ +#include +#include namespace rsutils { namespace os { diff --git a/third-party/rsutils/src/special-folder.cpp b/third-party/rsutils/src/special-folder.cpp index 79bc45d..c06afa6 100644 --- a/third-party/rsutils/src/special-folder.cpp +++ b/third-party/rsutils/src/special-folder.cpp @@ -18,6 +18,7 @@ #endif +#include namespace rsutils { namespace os { ================================================ FILE: ports/realsense2/devendor-lz4.diff ================================================ diff --git a/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h b/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h index 30dce1a..6d8dd27 100644 --- a/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h +++ b/third-party/realsense-file/rosbag/roslz4/include/roslz4/lz4s.h @@ -35,7 +35,7 @@ #ifndef ROSLZ4_LZ4S_H #define ROSLZ4_LZ4S_H -#include "../../../../lz4/lz4.h" +#include #ifdef __cplusplus extern "C" { diff --git a/tools/embed/CMakeLists.txt b/tools/embed/CMakeLists.txt index 77b1b9b..4fd9aa1 100644 --- a/tools/embed/CMakeLists.txt +++ b/tools/embed/CMakeLists.txt @@ -10,13 +10,12 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 1) add_executable(rs-embed rs-embed.cpp - ${LZ4_DIR}/lz4.h - ${LZ4_DIR}/lz4.c ) set_property(TARGET rs-embed PROPERTY CXX_STANDARD 11) -include_directories(rs-embed ${LZ4_DIR} ../../third-party) +find_package(lz4 CONFIG REQUIRED) +target_link_libraries(rs-embed PRIVATE lz4::lz4) target_link_libraries( rs-embed PRIVATE tclap ) set_target_properties (rs-embed PROPERTIES FOLDER Tools) ================================================ FILE: ports/realsense2/devendor-nlohmann-json.diff ================================================ diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index c28e66c..18df754 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -5,7 +5,6 @@ add_subdirectory( "${CMAKE_CURRENT_LIST_DIR}/rsutils" ) pop_security_flags() # remove security flags for third party, as we cannot guarantee their security enforcment -include(CMake/external_json.cmake) # Add additional include directories to allow file to include rosbag headers include(${_rel_path}/realsense-file/config.cmake) diff --git a/third-party/rsutils/CMakeLists.txt b/third-party/rsutils/CMakeLists.txt index b0fc310..50aa0e4 100644 --- a/third-party/rsutils/CMakeLists.txt +++ b/third-party/rsutils/CMakeLists.txt @@ -12,8 +12,9 @@ set_target_properties( ${PROJECT_NAME} PROPERTIES FOLDER Library ) target_include_directories( ${PROJECT_NAME} PUBLIC $ - $ ) +find_package(nlohmann_json CONFIG REQUIRED) +target_link_libraries(${PROJECT_NAME} PUBLIC $) # Headers ----------------------------------------------------------------------------------- # ================================================ FILE: ports/realsense2/devendor-stb.diff ================================================ diff --git a/common/rendering.h b/common/rendering.h index ed0b525..a36b5ff 100644 --- a/common/rendering.h +++ b/common/rendering.h @@ -233,7 +233,7 @@ namespace rs2 // Simple font loading code // ////////////////////////////// -#include "../third-party/stb_easy_font.h" +#include inline void draw_text(int x, int y, const char * text) { diff --git a/src/proc/color-formats-converter.cpp b/src/proc/color-formats-converter.cpp index f0a54ba..13411fe 100644 --- a/src/proc/color-formats-converter.cpp +++ b/src/proc/color-formats-converter.cpp @@ -9,7 +9,7 @@ #define STB_IMAGE_STATIC #define STB_IMAGE_IMPLEMENTATION -#include "../third-party/stb_image.h" +#include #ifdef RS2_USE_CUDA #include "cuda/cuda-conversion.cuh" diff --git a/tools/convert/converters/converter-png.hpp b/tools/convert/converters/converter-png.hpp index fcfd6ce..adbb1e6 100644 --- a/tools/convert/converters/converter-png.hpp +++ b/tools/convert/converters/converter-png.hpp @@ -7,7 +7,7 @@ // 3rd party header for writing png files #define STB_IMAGE_WRITE_IMPLEMENTATION -#include +#include #include "../converter.hpp" diff --git a/tools/embed/CMakeLists.txt b/tools/embed/CMakeLists.txt index 4fd9aa1..951bfa6 100644 --- a/tools/embed/CMakeLists.txt +++ b/tools/embed/CMakeLists.txt @@ -19,6 +19,8 @@ target_link_libraries(rs-embed PRIVATE lz4::lz4) target_link_libraries( rs-embed PRIVATE tclap ) set_target_properties (rs-embed PROPERTIES FOLDER Tools) +find_package(Stb REQUIRED) +target_include_directories(rs-embed PRIVATE "${Stb_INCLUDE_DIR}") install( TARGETS ================================================ FILE: ports/realsense2/fix_openni2.patch ================================================ diff --git a/wrappers/openni2/CMakeLists.txt b/wrappers/openni2/CMakeLists.txt index 0eee84c2..769e67ff 100755 --- a/wrappers/openni2/CMakeLists.txt +++ b/wrappers/openni2/CMakeLists.txt @@ -6,12 +6,7 @@ set(OPENNI2_DIR "c:/Program Files/OpenNI2" CACHE FILEPATH "OpenNI2 SDK directory set(REALSENSE2_DIR "c:/Program Files (x86)/Intel RealSense SDK 2.0" CACHE FILEPATH "RealSense2 SDK directory") # INCLUDE DIR -if (UNIX) - include_directories (${OPENNI2_DIR}) -else () - include_directories (${OPENNI2_DIR}/Include) -endif () - +include_directories (${OPENNI2_DIR}) include_directories (${REALSENSE2_DIR}/include) include_directories (src) ================================================ FILE: ports/realsense2/libusb.diff ================================================ diff --git a/CMake/libusb_config.cmake b/CMake/libusb_config.cmake index ca221ca..b62369e 100644 --- a/CMake/libusb_config.cmake +++ b/CMake/libusb_config.cmake @@ -1,6 +1,8 @@ if (NOT TARGET usb) - find_library(LIBUSB_LIB usb-1.0) - find_path(LIBUSB_INC libusb.h HINTS PATH_SUFFIXES libusb-1.0) + find_package(PkgConfig) + pkg_check_modules(PC_LIBUSB libusb-1.0 REQUIRED) + set(LIBUSB_LIB "${PC_LIBUSB_LINK_LIBRARIES}") + set(LIBUSB_INC "${PC_LIBUSB_INCLUDE_DIRS}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args(usb "libusb not found; using internal version" LIBUSB_LIB LIBUSB_INC) if (USB_FOUND AND NOT USE_EXTERNAL_USB) ================================================ FILE: ports/realsense2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IntelRealSense/librealsense REF "v${VERSION}" SHA512 e38350be3eba6fec97096abfff652a36d0e37ba95baf1b40841cc180e2d650c9abfa53d99e1c0a7767fa0c91ac4d9780702b51078f9c1564848121c1048749f4 HEAD_REF master PATCHES android-config.diff build.diff devendor-lz4.diff # https://github.com/IntelRealSense/librealsense/pull/13803#issuecomment-3072432118 devendor-nlohmann-json.diff devendor-stb.diff fix_openni2.patch libusb.diff using-firmware.diff add-stdexcept.diff # https://github.com/IntelRealSense/librealsense/pull/14299 ) file(GLOB extern "${SOURCE_PATH}/CMake/extern_*.cmake") file(REMOVE_RECURSE ${extern} "${SOURCE_PATH}/third-party/easyloggingpp" "${SOURCE_PATH}/third-party/realsense-file/lz4" "${SOURCE_PATH}/third-party/stb_easy_font.h" "${SOURCE_PATH}/third-party/stb_image.h" "${SOURCE_PATH}/third-party/stb_image_write.h" ) file(READ "${SOURCE_PATH}/common/fw/firmware-version.h" firmware_version_h) string(REGEX MATCH "D4XX_RECOMMENDED_FIRMWARE_VERSION \"([0-9]+.[0-9]+.[0-9]+.[0-9]+)\"" unused "${firmware_version_h}") set(firmware_filename "D4XX_FW_Image-${CMAKE_MATCH_1}.bin") vcpkg_download_distfile(firmware_distfile URLS "https://librealsense.intel.com/Releases/RS4xx/FW/${firmware_filename}" SHA512 1098738b754d14bcf529541986e0c39c9efd481cae3954f5f01233b12859e289bfa62b97c06ce644b7ce704ed8cab066f1bd91cbe2287cc6cc20a671213cdcff FILENAME "IntelRealSense-${firmware_filename}" ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_WITH_STATIC_CRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openni2 BUILD_OPENNI2_BINDINGS rs-usb-backend FORCE_RSUSB_BACKEND tools BUILD_TOOLS ) if("rs-usb-backend" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND FEATURE_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_EASYLOGGINGPP=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF -DBUILD_RS2_ALL=NO -DBUILD_UNIT_TESTS=OFF -DBUILD_WITH_OPENMP=OFF -DBUILD_WITH_STATIC_CRT=${BUILD_WITH_STATIC_CRT} -DENABLE_CCACHE=OFF -DENFORCE_METADATA=ON "-DFIRMWARE_DISTFILE=${firmware_distfile}" "-DOPENNI2_DIR=${CURRENT_INSTALLED_DIR}/include/openni2" -DUSE_EXTERNAL_LZ4=ON OPTIONS_DEBUG -DBUILD_TOOLS=OFF MAYBE_UNUSED_VARIABLES OPENNI2_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/realsense2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(BUILD_TOOLS) set(TOOL_NAMES rs-convert rs-embed rs-enumerate-devices rs-fw-logger rs-fw-update rs-record rs-terminal) vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) endif() if(BUILD_OPENNI2_BINDINGS) file(GLOB RS2DRIVER "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/_out/rs2driver*") if(RS2DRIVER) file(COPY ${RS2DRIVER} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/openni2/OpenNI2/Drivers") endif() endif() file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/realsense2/usage ================================================ realsense2 provides CMake targets: find_package(realsense2 CONFIG REQUIRED) target_link_libraries(main PRIVATE realsense2::realsense2) realsense2 provides pkg-config modules: realsense2 ================================================ FILE: ports/realsense2/using-firmware.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 24cfb79..b9aafc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,6 @@ set(REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${REPO_ROOT}) include(CMake/lrs_options.cmake) -include(CMake/connectivity_check.cmake) #Deprecation message, should be removed in future releases if(${FORCE_LIBUVC} OR ${FORCE_WINUSB_UVC} OR ${ANDROID_USB_HOST_UVC}) MESSAGE(DEPRECATION "FORCE_LIBUVC, FORCE_WINUSB_UVC and ANDROID_USB_HOST_UVC are deprecated, use FORCE_RSUSB_BACKEND instead") @@ -17,7 +16,7 @@ if(${FORCE_LIBUVC} OR ${FORCE_WINUSB_UVC} OR ${ANDROID_USB_HOST_UVC}) endif() # Checking Internet connection, as DEPTH CAM needs to download the FW from amazon cloud -if(IMPORT_DEPTH_CAM_FW AND NOT INTERNET_CONNECTION) +if(0) message(WARNING "No internet connection, disabling IMPORT_DEPTH_CAM_FW") set(IMPORT_DEPTH_CAM_FW OFF) endif() diff --git a/common/fw/CMakeLists.txt b/common/fw/CMakeLists.txt index f270844..84538cf 100644 --- a/common/fw/CMakeLists.txt +++ b/common/fw/CMakeLists.txt @@ -31,7 +31,11 @@ if (MSVC) # even then, the linker won't grab a .res out of a .lib object, so it needs to be explicitly listed # and to find the name of the .res file (across cmake generators) we need to create our own rule. :( add_custom_command(TARGET ${PROJECT_NAME} BYPRODUCTS ${PROJECT_NAME}.res COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_RC_FLAGS} /I . /fo "${PROJECT_NAME}.res" "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.rc") - target_link_libraries(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res") + target_link_libraries(${PROJECT_NAME} PUBLIC + "$" + "$" + ) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.res" DESTINATION "lib/realsense2") endif() target_include_directories(${PROJECT_NAME} PUBLIC $) @@ -39,8 +43,7 @@ set_target_properties (${PROJECT_NAME} PROPERTIES FOLDER Resources) function(target_binary url version sha1 symbol ext) set(binary "${CMAKE_CURRENT_BINARY_DIR}/${symbol}-${version}${ext}") - message(STATUS "... ${url}/${symbol}-${version}${ext}") - file(DOWNLOAD "${url}/${symbol}-${version}${ext}" "${binary}" + file(DOWNLOAD "file://${FIRMWARE_DISTFILE}" "${binary}" EXPECTED_HASH SHA1=${sha1} STATUS status) list(GET status 0 error_code) ================================================ FILE: ports/realsense2/vcpkg.json ================================================ { "name": "realsense2", "version": "2.56.5", "description": "Intel® RealSense™ SDK 2.0 is a cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300).", "homepage": "https://github.com/IntelRealSense/librealsense", "license": "Apache-2.0", "supports": "!uwp & !(windows & arm)", "dependencies": [ { "name": "libusb", "platform": "!windows" }, "lz4", "nlohmann-json", { "name": "realsense2", "default-features": false, "features": [ "rs-usb-backend" ], "platform": "android | osx" }, "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openni2": { "description": "Build Intel® RealSense™ OpenNI2 driver", "supports": "!static", "dependencies": [ "openni2" ] }, "rs-usb-backend": { "description": "Use RS USB backend", "supports": "!windows", "dependencies": [ "libusb" ] }, "tools": { "description": "Build Intel® RealSense™ tools", "supports": "!android" } } } ================================================ FILE: ports/rebind/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Curve/rebind REF "v${VERSION}" SHA512 3b0fba09f8bd6257c055a6619094646c70e90fbb55967165dd94eb1914c1477443a86e5745c08a4dd722656ab124fffcbaabbd9d2b8ec82be30d741799eff93d HEAD_REF master PATCHES remove-cpm.patch # Note: Removed also the ALIAS library as packageProject creates it ) # Replace CPM and download PackageProject directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO TheLartians/PackageProject.cmake REF "v1.13.0" SHA512 3cf0523bddc213f206ed0ca57803550cb7db9e293392d3741138be47f49d9027ef517e1656235a349a62b492d35c3fc677714dc00afe59e2d36144a9689cfa8f HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/packageproject.cmake") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rebind/remove-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 52e60bd..6f9eb7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,6 @@ option(rebind_tests "Run tests" OFF) # -------------------------------------------------------------------------------------------------------- add_library(${PROJECT_NAME} INTERFACE) -add_library(cr::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_23) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 23 CXX_EXTENSIONS OFF CXX_STANDARD_REQUIRED ON) @@ -39,13 +38,7 @@ endif() # Install Targets # -------------------------------------------------------------------------------------------------------- -include("cmake/cpm.cmake") - -CPMFindPackage( - NAME PackageProject - VERSION 1.13.0 - GIT_REPOSITORY "https://github.com/TheLartians/PackageProject.cmake" -) +add_subdirectory(cmake/packageproject.cmake) packageProject( NAMESPACE cr ================================================ FILE: ports/rebind/vcpkg.json ================================================ { "name": "rebind", "version": "5.3.1", "description": "A C++23 reflection library for aggregates and enums", "homepage": "https://github.com/Curve/rebind", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/recastnavigation/fix-detail-mesh-edge-detection.patch ================================================ diff --git a/Recast/Source/RecastMeshDetail.cpp b/Recast/Source/RecastMeshDetail.cpp index 40f5b8c..d83bf1c 100644 --- a/Recast/Source/RecastMeshDetail.cpp +++ b/Recast/Source/RecastMeshDetail.cpp @@ -634,6 +634,40 @@ inline float getJitterY(const int i) return (((i * 0xd8163841) & 0xffff) / 65535.0f * 2.0f) - 1.0f; } +static bool onHull(int a, int b, int nhull, int* hull) +{ + // All internal sampled points come after the hull so we can early out for those. + if (a >= nhull || b >= nhull) + return false; + + for (int j = nhull - 1, i = 0; i < nhull; j = i++) + { + if (a == hull[j] && b == hull[i]) + return true; + } + + return false; +} + +// Find edges that lie on hull and mark them as such. +static void setTriFlags(rcIntArray& tris, int nhull, int* hull) +{ + // Matches DT_DETAIL_EDGE_BOUNDARY + const int DETAIL_EDGE_BOUNDARY = 0x1; + + for (int i = 0; i < tris.size(); i += 4) + { + int a = tris[i + 0]; + int b = tris[i + 1]; + int c = tris[i + 2]; + unsigned short flags = 0; + flags |= (onHull(a, b, nhull, hull) ? DETAIL_EDGE_BOUNDARY : 0) << 0; + flags |= (onHull(b, c, nhull, hull) ? DETAIL_EDGE_BOUNDARY : 0) << 2; + flags |= (onHull(c, a, nhull, hull) ? DETAIL_EDGE_BOUNDARY : 0) << 4; + tris[i + 3] = (int)flags; + } +} + static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin, const float sampleDist, const float sampleMaxError, const int heightSearchRadius, const rcCompactHeightfield& chf, @@ -771,6 +805,7 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin, if (minExtent < sampleDist*2) { triangulateHull(nverts, verts, nhull, hull, nin, tris); + setTriFlags(tris, nhull, hull); return true; } @@ -875,7 +910,8 @@ static bool buildPolyDetail(rcContext* ctx, const float* in, const int nin, tris.resize(MAX_TRIS*4); ctx->log(RC_LOG_ERROR, "rcBuildPolyMeshDetail: Shrinking triangle count from %d to max %d.", ntris, MAX_TRIS); } - + + setTriFlags(tris, nhull, hull); return true; } @@ -1137,30 +1173,6 @@ static void getHeightData(rcContext* ctx, const rcCompactHeightfield& chf, } } -static unsigned char getEdgeFlags(const float* va, const float* vb, - const float* vpoly, const int npoly) -{ - // The flag returned by this function matches dtDetailTriEdgeFlags in Detour. - // Figure out if edge (va,vb) is part of the polygon boundary. - static const float thrSqr = rcSqr(0.001f); - for (int i = 0, j = npoly-1; i < npoly; j=i++) - { - if (distancePtSeg2d(va, &vpoly[j*3], &vpoly[i*3]) < thrSqr && - distancePtSeg2d(vb, &vpoly[j*3], &vpoly[i*3]) < thrSqr) - return 1; - } - return 0; -} - -static unsigned char getTriFlags(const float* va, const float* vb, const float* vc, - const float* vpoly, const int npoly) -{ - unsigned char flags = 0; - flags |= getEdgeFlags(va,vb,vpoly,npoly) << 0; - flags |= getEdgeFlags(vb,vc,vpoly,npoly) << 2; - flags |= getEdgeFlags(vc,va,vpoly,npoly) << 4; - return flags; -} /// @par /// @@ -1377,7 +1389,7 @@ bool rcBuildPolyMeshDetail(rcContext* ctx, const rcPolyMesh& mesh, const rcCompa dmesh.tris[dmesh.ntris*4+0] = (unsigned char)t[0]; dmesh.tris[dmesh.ntris*4+1] = (unsigned char)t[1]; dmesh.tris[dmesh.ntris*4+2] = (unsigned char)t[2]; - dmesh.tris[dmesh.ntris*4+3] = getTriFlags(&verts[t[0]*3], &verts[t[1]*3], &verts[t[2]*3], poly, npoly); + dmesh.tris[dmesh.ntris*4+3] = (unsigned char)t[3]; dmesh.ntris++; } } ================================================ FILE: ports/recastnavigation/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO recastnavigation/recastnavigation REF v${VERSION} SHA512 7567aaa78219cc490a6f76210fba1f130f0c17aeaa06432ab1207e0fd03404abe31042e8b03971aa0d04ad65d39469f13575fe0072fb920c38581d39568b70fb HEAD_REF master PATCHES fix-detail-mesh-edge-detection.patch #Upstream fix https://github.com/recastnavigation/recastnavigation/pull/657 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRECASTNAVIGATION_DEMO=OFF -DRECASTNAVIGATION_TESTS=OFF -DRECASTNAVIGATION_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/recastnavigation) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/recastnavigation/vcpkg.json ================================================ { "name": "recastnavigation", "version": "1.6.0", "port-version": 1, "description": "Navigation-mesh Toolset for Games", "homepage": "https://github.com/recastnavigation/recastnavigation", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/recycle/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index df64f52..ac9a79d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,9 +2,6 @@ cmake_minimum_required(VERSION 3.10) project(recycle) -# Include common CMake settings -include("${STEINWURF_RESOLVE}/toolchains/common_settings.cmake") - # Define library add_library(recycle INTERFACE) target_compile_features(recycle INTERFACE cxx_std_14) @@ -19,7 +16,7 @@ install( PATTERN *.hpp) # Is top level project? -if(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME}) +if(0) # Setup testing enable_testing() ================================================ FILE: ports/recycle/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO steinwurf/recycle REF "${VERSION}" SHA512 cc11dffe5a5aa6cf1f1c1b0c53830332edf784d7bac21608c8d04f8e077381df2e4a65c8664319f23bb80fc01240a79d314bd60c70b90b988e0319b2704da60d PATCHES disable-tests.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.rst") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/recycle/vcpkg.json ================================================ { "name": "recycle", "version": "8.0.0", "description": "Simple resource pool for recycling resources in C++", "homepage": "https://github.com/steinwurf/recycle", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/red0124-ssp/no-fetchcontent.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index da12e2a..9881489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,19 +16,6 @@ if(SSP_INCLUDE_WITHOUT_SYSTEM) set(SSP_WARNING_GUARD "") endif() -# ---- Dependencies ---- - -include(FetchContent) -fetchcontent_declare( - fast_float - GIT_REPOSITORY https://github.com/red0124/fast_float.git - GIT_TAG origin/meson - GIT_SHALLOW TRUE -) - -fetchcontent_makeavailable(fast_float) -set(FAST_FLOAT_SOURCE_DIR "${FETCHCONTENT_BASE_DIR}/fast_float-src") - # ---- Declare library ---- add_library(ssp INTERFACE) @@ -39,7 +26,6 @@ target_include_directories( ${SSP_WARNING_GUARD} INTERFACE "$" - "$" ) target_compile_features(ssp INTERFACE cxx_std_17) @@ -62,7 +48,6 @@ set(SSP_INCLUDE_DIRECTORY "${CMAKE_INSTALL_INCLUDEDIR}") install( DIRECTORY "${PROJECT_SOURCE_DIR}/include/" - "${FAST_FLOAT_SOURCE_DIR}/include/" DESTINATION "${SSP_INCLUDE_DIRECTORY}" COMPONENT ssp_Development ) ================================================ FILE: ports/red0124-ssp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO red0124/ssp REF "v${VERSION}" SHA512 9192c81adc3fce748abf2c16a0bbddc997ed766d098fa4d496c68957dad4d54be3b6ee5ca4ce0d8305e4e0e8c9dbe9c7c0cc7bfbeaf2f6475a9ac8f3c5f7af4a HEAD_REF master PATCHES no-fetchcontent.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ssp CONFIG_PATH lib/cmake/ssp-${VERSION}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/red0124-ssp/vcpkg.json ================================================ { "name": "red0124-ssp", "version": "1.8.0", "description": "A header only CSV parser which is fast and versatile with modern C++ API.", "homepage": "https://github.com/red0124/ssp", "license": "MIT", "supports": "!uwp", "dependencies": [ "fast-float", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/redis-plus-plus/fix-absolute-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b99109..e45ca43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -158,7 +158,7 @@ if(${redisEnableKeepAliveWithInterval_POS} GREATER -1) endif() set(REDIS_PLUS_PLUS_GENERATED_HEADER_DIR ${CMAKE_CURRENT_BINARY_DIR}/${REDIS_PLUS_PLUS_HEADER_DIR}) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/hiredis_features.h.in ${CMAKE_CURRENT_BINARY_DIR}/${REDIS_PLUS_PLUS_SOURCE_DIR}/hiredis_features.h) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/hiredis_features.h.in" "${CMAKE_CURRENT_BINARY_DIR}/${REDIS_PLUS_PLUS_SOURCE_DIR}/hiredis_features.h") # Build static library option(REDIS_PLUS_PLUS_BUILD_STATIC "Build static library" ON) ================================================ FILE: ports/redis-plus-plus/fix-conversion.patch ================================================ diff --git a/src/sw/redis++/shards.cpp b/src/sw/redis++/shards.cpp index fc58eea..ea57266 100644 --- a/src/sw/redis++/shards.cpp +++ b/src/sw/redis++/shards.cpp @@ -42,7 +42,7 @@ std::pair RedirectionError::_parse_error(const std::string &msg) con auto host = msg.substr(space_pos + 1, colon_pos - space_pos - 1); auto port = std::stoi(msg.substr(colon_pos + 1)); - return {slot, {host, port}}; + return {static_cast(slot), {host, port}}; } catch (const std::exception &) { throw ProtoError("invalid redirection error message: " + msg); } ================================================ FILE: ports/redis-plus-plus/fix-dependency-libuv.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ae2507e..c329f9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,8 +45,8 @@ if(REDIS_PLUS_PLUS_BUILD_ASYNC) message(STATUS "redis-plus-plus build async interface with libuv") # libuv dependency - find_path(REDIS_PLUS_PLUS_ASYNC_LIB_HEADER NAMES uv.h) - find_library(REDIS_PLUS_PLUS_ASYNC_LIB uv) + find_package(libuv CONFIG REQUIRED) + set(REDIS_PLUS_PLUS_ASYNC_LIB $,libuv::uv_a,libuv::uv>) else() message(FATAL_ERROR "invalid REDIS_PLUS_PLUS_BUILD_ASYNC") endif() @@ -228,7 +228,6 @@ if(REDIS_PLUS_PLUS_BUILD_STATIC) if(REDIS_PLUS_PLUS_BUILD_ASYNC) target_include_directories(${STATIC_LIB} PUBLIC $) - target_include_directories(${STATIC_LIB} PUBLIC $) if(REDIS_PLUS_PLUS_ASYNC_FUTURE STREQUAL "boost") target_include_directories(${STATIC_LIB} SYSTEM PUBLIC $) endif() ================================================ FILE: ports/redis-plus-plus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sewenew/redis-plus-plus REF "${VERSION}" SHA512 3de216fc32894eb2d9f61a559bf69c8e154122209f2ba95aac202d769688d27cd1059424ad8a1173c7073ee34bfbd5ad981bb313d9298cd39ebe245e88d9e9fe HEAD_REF master PATCHES fix-conversion.patch fix-dependency-libuv.patch fix-absolute-path.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tls" REDIS_PLUS_PLUS_USE_TLS ) if("cxx17" IN_LIST FEATURES) set(REDIS_PLUS_PLUS_CXX_STANDARD 17) else() set(REDIS_PLUS_PLUS_CXX_STANDARD 11) endif() set(EXTRA_OPT "") if ("async" IN_LIST FEATURES) list(APPEND EXTRA_OPT "-DREDIS_PLUS_PLUS_BUILD_ASYNC=libuv") endif() if ("async-std" IN_LIST FEATURES) list(APPEND EXTRA_OPT "-DREDIS_PLUS_PLUS_ASYNC_FUTURE=std") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" REDIS_PLUS_PLUS_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" REDIS_PLUS_PLUS_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} -DREDIS_PLUS_PLUS_BUILD_STATIC=${REDIS_PLUS_PLUS_BUILD_STATIC} -DREDIS_PLUS_PLUS_BUILD_SHARED=${REDIS_PLUS_PLUS_BUILD_SHARED} -DREDIS_PLUS_PLUS_BUILD_TEST=OFF -DREDIS_PLUS_PLUS_CXX_STANDARD=${REDIS_PLUS_PLUS_CXX_STANDARD} ${EXTRA_OPT} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME redis++ CONFIG_PATH share/cmake/redis++) if("async" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/redis++/redis++-config.cmake" "include(CMakeFindDependencyMacro)" [[include(CMakeFindDependencyMacro) find_dependency(libuv CONFIG)]]) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/redis-plus-plus/vcpkg.json ================================================ { "name": "redis-plus-plus", "version-semver": "1.3.15", "description": "This is a C++ client for Redis. It's based on hiredis, and written in C++ 11", "homepage": "https://github.com/sewenew/redis-plus-plus", "license": "Apache-2.0", "dependencies": [ "hiredis", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "async": { "description": "Build with async", "dependencies": [ "libuv" ] }, "async-std": { "description": "Build async with std::future", "dependencies": [ { "name": "redis-plus-plus", "default-features": false, "features": [ "async" ] } ] }, "cxx17": { "description": "Build redis-plus-plus with cxx 17 standard" }, "tls": { "description": "Build with TLS support", "dependencies": [ { "name": "hiredis", "default-features": false, "features": [ "ssl" ] } ] } } } ================================================ FILE: ports/refl-cpp/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO veselink1/refl-cpp REF "v${VERSION}" SHA512 fcebda170782fd7cc55395fd64012356f416deb1199e2eceee7391c7c1963e39c214e7d99c42e7ca371d6d86923173e916b09e4867cacfaeed4902b5466aed03 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/refl.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/refl-cpp/vcpkg.json ================================================ { "name": "refl-cpp", "version": "0.12.4", "description": "Static reflection for C++17 (compile-time enumeration, attributes, proxies, overloads, template functions, metaprogramming).", "homepage": "https://github.com/veselink1/refl-cpp", "license": "MIT" } ================================================ FILE: ports/reflectcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO getml/reflect-cpp REF "v${VERSION}" SHA512 4be84fc69efd6f4ce766d38cedc8b1d0fd0fa8170e69293383f7dbd59c6bce45797f0e7cf653ef9c839b15fd7da702c9daf30efd34c779555fe4e5bd5eb29481 HEAD_REF main ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" REFLECTCPP_BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES bson REFLECTCPP_BSON capnproto REFLECTCPP_CAPNPROTO cbor REFLECTCPP_CBOR csv REFLECTCPP_CSV flexbuffers REFLECTCPP_FLEXBUFFERS msgpack REFLECTCPP_MSGPACK parquet REFLECTCPP_PARQUET toml REFLECTCPP_TOML ubjson REFLECTCPP_UBJSON xml REFLECTCPP_XML yaml REFLECTCPP_YAML ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DREFLECTCPP_BUILD_TESTS=OFF -DREFLECTCPP_BUILD_SHARED=${REFLECTCPP_BUILD_SHARED} -DREFLECTCPP_USE_BUNDLED_DEPENDENCIES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/reflectcpp/usage ================================================ reflect-cpp provides CMake targets: find_package(reflectcpp CONFIG REQUIRED) target_link_libraries(main PRIVATE reflectcpp::reflectcpp) ================================================ FILE: ports/reflectcpp/vcpkg.json ================================================ { "name": "reflectcpp", "version": "0.24.0", "description": "A C++ library for serialization and deserialization using reflection. Supports JSON, Avro, BSON, Cap'n Proto, CBOR, CSV, flexbuffers, msgpack, parquet, TOML, UBJSON, XML, YAML.", "homepage": "https://github.com/getml/reflect-cpp/", "license": "MIT", "dependencies": [ { "name": "ctre", "version>=": "3.10.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "yyjson", "version>=": "0.10.0" } ], "features": { "bson": { "description": "Support for the BSON format", "dependencies": [ { "name": "libbson", "version>=": "1.25.1" } ] }, "capnproto": { "description": "Support for the Cap'n Proto format", "dependencies": [ { "name": "capnproto", "version>=": "1.0.2#1" } ] }, "cbor": { "description": "Support for the CBOR format", "dependencies": [ { "name": "jsoncons", "version>=": "1.4.0" } ] }, "csv": { "description": "Enable CSV support", "dependencies": [ { "name": "arrow", "features": [ "csv" ], "version>=": "21.0.0" } ] }, "flexbuffers": { "description": "Support for the flexbuffers format (part of flatbuffers)", "dependencies": [ { "name": "flatbuffers", "version>=": "23.5.26#1" } ] }, "msgpack": { "description": "Support for the msgpack format", "dependencies": [ { "name": "msgpack-c", "version>=": "6.0.0" } ] }, "parquet": { "description": "Enable parquet support", "dependencies": [ { "name": "arrow", "features": [ "parquet" ], "version>=": "21.0.0" } ] }, "toml": { "description": "Support for the TOML format", "dependencies": [ { "name": "tomlplusplus", "version>=": "3.4.0#1" } ] }, "ubjson": { "description": "Support for the UBJSON format", "dependencies": [ { "name": "jsoncons", "version>=": "1.4.0" } ] }, "xml": { "description": "Support for the XML format", "dependencies": [ { "name": "pugixml", "version>=": "1.15" } ] }, "yaml": { "description": "Support for the YAML format", "dependencies": [ { "name": "yaml-cpp", "version>=": "0.8.0#1" } ] } } } ================================================ FILE: ports/refprop-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CoolProp/REFPROP-headers REF b4faab1b73911c32c4b69c526c7e92f74edb67de SHA512 601fcc70e7e12419e03e71b140c2fcec80eafb19f24f9871355679662802815f98cce2d167638658ba04ba7da0e811b2cf5393ced4dbe40cb2930dee75acced5 HEAD_REF master PATCHES unicode-build.diff # https://github.com/CoolProp/REFPROP-headers/issues/21 ) file(INSTALL "${SOURCE_PATH}/REFPROP_lib.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/refprop-headers/unicode-build.diff ================================================ diff --git a/REFPROP_lib.h b/REFPROP_lib.h index 60fb64a..df10d2c 100644 --- a/REFPROP_lib.h +++ b/REFPROP_lib.h @@ -762,7 +762,7 @@ extern "C" { #ifndef UNICODE msg = dllPath; #else - std::wstring wStr = t; + std::wstring wStr = dllPath; msg = std::string(wStr.begin(), wStr.end()); #endif RPPath_loaded = msg; ================================================ FILE: ports/refprop-headers/vcpkg.json ================================================ { "name": "refprop-headers", "version-date": "2022-12-07", "description": "Header files for the REFPROP fluid property library", "homepage": "https://github.com/CoolProp/REFPROP-headers", "license": "MIT" } ================================================ FILE: ports/rendergraph/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO DragonJoker/RenderGraph REF v${VERSION} HEAD_REF master SHA512 aba101f6f9e80228554d3911d6121676190b0830c8b8a3c685a9c7ff9e069d569c06ea64fe21d3d80a93078705908387e1131a139350012678b24049106d6129 ) vcpkg_from_github(OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO DragonJoker/CMakeUtils REF 4748730d8b7259f68a5dfd2b75603fa75e6414a1 HEAD_REF master SHA512 d5fdc74fbe20bd2f2e4e1f807959a8f0eee8bee2bb0d74b804a3799603b2ecce794549d898090d053ed7e5eb80d90bfe4dada3ae1a3726ce37eced6cc8463648 ) get_filename_component(SRC_PATH "${CMAKE_SOURCE_PATH}" DIRECTORY) if (EXISTS "${SRC_PATH}/CMake") file(REMOVE_RECURSE "${SRC_PATH}/CMake") endif() file(RENAME "${CMAKE_SOURCE_PATH}" "${SRC_PATH}/CMake") set(CMAKE_SOURCE_PATH "${SRC_PATH}/CMake") file(COPY "${CMAKE_SOURCE_PATH}" DESTINATION "${SOURCE_PATH}") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPROJECTS_USE_PRECOMPILED_HEADERS=ON -DCRG_UNITY_BUILD=ON -DCRG_BUILD_STATIC=${BUILD_STATIC} -DCRG_BUILD_TESTS=OFF ) vcpkg_copy_pdbs() vcpkg_cmake_install() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/rendergraph/vcpkg.json ================================================ { "name": "rendergraph", "version": "2.1.0", "description": "Vulkan render graph implementation.", "homepage": "https://github.com/DragonJoker/RenderGraph", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ] } ================================================ FILE: ports/replxx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO AmokHuginnsson/replxx REF release-0.0.4 SHA512 5b87d3b53a99ead00a1ff0ee7a158b13339446682da630989643db7d47d4877d5d97c46954dc51cd282c8130c62a4fed5ce74d73d193690a1518fef974c8b497 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/replxx") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/replxx/vcpkg.json ================================================ { "name": "replxx", "version": "0.0.4", "port-version": 1, "description": "A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters.", "homepage": "https://github.com/AmokHuginnsson/replxx", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/reproc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DaanDeMeyer/reproc REF "v${VERSION}" SHA512 d6c8abfc4fbef894310f4ad6250ddf269279bce13954ba6bc0147e0bf7e08f5a5e924ba079205881d6bf1dfe865e5f4389517d6d3bbafdede24ed328c549a991 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DREPROC++=ON -DREPROC_INSTALL_PKGCONFIG=OFF -DREPROC_INSTALL_CMAKECONFIGDIR=share ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") foreach(TARGET reproc reproc++) vcpkg_cmake_config_fixup( PACKAGE_NAME ${TARGET} ) endforeach() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/reproc/vcpkg.json ================================================ { "name": "reproc", "version": "14.2.5", "description": "Cross-platform (C99/C++11) process library", "homepage": "https://github.com/DaanDeMeyer/reproc", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rerun-sdk/portfile.cmake ================================================ # Must download SDK distfile because some binaries are prebuilt from Rust. vcpkg_download_distfile( ARCHIVE URLS "https://github.com/rerun-io/rerun/releases/download/${VERSION}/rerun_cpp_sdk.zip" FILENAME "rerun_cpp_sdk_${VERSION}.zip" SHA512 2f242612c276a44dc94f6586cd8ddc261f43c830b5331934c393092de3d99309cbf4f1b231ea251987c5b99d1d22fb08f17c0ef334c702707490ea3930602022 ) # Workaround: The distributed SDK contains a prebuilt rerun_c that is built in Release mode. On Windows, this means # that it always links to the release MSVC C runtime (CRT) and causes vcpkg's post-build CRT linkage check to fail for # Debug builds. As such, this post-build check is suppressed for Windows builds. if(VCPKG_TARGET_IS_WINDOWS) # TODO: Remove this policy when rerun ships a Debug rerun_c. set(VCPKG_POLICY_SKIP_CRT_LINKAGE_CHECK enabled) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRERUN_DOWNLOAD_AND_BUILD_ARROW=OFF # Disable downloading and building Arrow ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME rerun_sdk CONFIG_PATH "lib/cmake/rerun_sdk") file(GLOB LIBRERUN_C_FILE RELATIVE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/lib/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}rerunc_c_-*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" ) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/rerun_sdk/rerun_sdkConfig.cmake" "set(RERUN_LIB_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../..\")" "set(RERUN_LIB_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../lib\")" ) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/share/rerun_sdk/rerun_sdkConfig.cmake" "${SOURCE_PATH}/lib/${LIBRERUN_C_FILE}" "\${CMAKE_CURRENT_LIST_DIR}/../../lib/${LIBRERUN_C_FILE}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-MIT" "${SOURCE_PATH}/LICENSE-APACHE" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/rerun-sdk/usage ================================================ rerun-sdk provides CMake targets: find_package(rerun_sdk CONFIG REQUIRED) target_link_libraries(main PRIVATE rerun_sdk) ================================================ FILE: ports/rerun-sdk/vcpkg.json ================================================ { "name": "rerun-sdk", "version": "0.30.2", "description": "Open source log handling and visualization for spatial and embodied AI. Managed infrastructure to ingest, store, analyze, and stream data at scale with built-in visual debugging. Fast, flexible, and easy to use.", "homepage": "https://rerun.io", "license": "MIT OR Apache-2.0", "supports": "(windows & x64) | osx | linux", "dependencies": [ "arrow", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rest-rpc/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO qicosmos/rest_rpc REF "v${VERSION}" SHA512 1d88085acc6c4f913901631725acd08a688a079878677d064d441c3c89167275c5eed371d24e370feb88879ac06270e9316b91c67ea41e350523fe670406ecc1 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/rest_rpc.hpp" "#include \"rest_rpc/rpc_server.h\"" "#define ASIO_STANDALONE\n#include \"rest_rpc/rpc_server.h\"" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-rest-rpc-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-rest-rpc-config") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rest-rpc/unofficial-rest-rpc-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(asio CONFIG) find_dependency(msgpack-cxx CONFIG) get_filename_component(vcpkg_rest_rpc_prefix_path "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(vcpkg_rest_rpc_prefix_path "${vcpkg_rest_rpc_prefix_path}" PATH) if(NOT TARGET unofficial::rest-rpc::rest-rpc) add_library(unofficial::rest-rpc::rest-rpc INTERFACE IMPORTED) target_include_directories(unofficial::rest-rpc::rest-rpc INTERFACE "${vcpkg_rest_rpc_prefix_path}/include") target_link_libraries(unofficial::rest-rpc::rest-rpc INTERFACE asio::asio msgpack-cxx) endif() unset(vcpkg_rest_rpc_prefix_path) ================================================ FILE: ports/rest-rpc/vcpkg.json ================================================ { "name": "rest-rpc", "version": "0.12", "port-version": 1, "description": "c++11, high performance, cross platform, easy to use rpc framework", "homepage": "https://github.com/qicosmos/rest_rpc", "dependencies": [ "asio", "msgpack" ] } ================================================ FILE: ports/restbed/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e6095da..6bf8d81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,11 @@ find_package( asio REQUIRED ) if ( BUILD_SSL ) add_definitions( "-DBUILD_SSL" ) - find_package( openssl REQUIRED ) + find_package( OpenSSL REQUIRED ) + set( ssl_LIBRARY_SHARED OpenSSL::SSL ) + set( crypto_LIBRARY_SHARED OpenSSL::Crypto ) + set( ssl_LIBRARY_STATIC OpenSSL::SSL ) + set( crypto_LIBRARY_STATIC OpenSSL::Crypto ) endif ( ) include_directories( ${INCLUDE_DIR} SYSTEM ${asio_INCLUDE} ${ssl_INCLUDE} ) @@ -76,12 +80,14 @@ endif ( ) # 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 14 ) set_property( TARGET ${STATIC_LIBRARY_NAME} PROPERTY CXX_STANDARD_REQUIRED ON ) set_target_properties( ${STATIC_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} ) - +target_include_directories(${STATIC_LIBRARY_NAME} INTERFACE $) +else ( ) set( SHARED_LIBRARY_NAME "${PROJECT_NAME}-shared" ) add_library( ${SHARED_LIBRARY_NAME} SHARED ${MANIFEST} ) set_property( TARGET ${SHARED_LIBRARY_NAME} PROPERTY CXX_STANDARD 14 ) @@ -93,14 +99,22 @@ else ( ) set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} ) endif ( ) set_target_properties( ${SHARED_LIBRARY_NAME} PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} ) +target_include_directories(${SHARED_LIBRARY_NAME} INTERFACE $) +endif ( ) if ( BUILD_SSL ) +if ( BUILD_SHARED_LIBS ) target_link_libraries( ${SHARED_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_SHARED} ${crypto_LIBRARY_SHARED} ) +else ( ) target_link_libraries( ${STATIC_LIBRARY_NAME} LINK_PRIVATE ${ssl_LIBRARY_STATIC} ${crypto_LIBRARY_STATIC} ${CMAKE_DL_LIBS} ) +endif ( ) else ( ) +if ( BUILD_SHARED_LIBS ) target_link_libraries( ${SHARED_LIBRARY_NAME} ) +else ( ) target_link_libraries( ${STATIC_LIBRARY_NAME} ${CMAKE_DL_LIBS} ) endif ( ) +endif ( ) if ( BUILD_TESTS ) find_package( catch REQUIRED ) @@ -119,5 +133,26 @@ 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} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) +else ( ) +install( TARGETS ${SHARED_LIBRARY_NAME} EXPORT unofficial-restbed-target RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT library ) +endif ( ) + +install( EXPORT unofficial-restbed-target FILE unofficial-restbed-target.cmake NAMESPACE unofficial::restbed:: DESTINATION share/unofficial-restbed) + +file( WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in" +[[include(CMakeFindDependencyMacro) +if (@BUILD_SSL@) + find_dependency(OpenSSL) +endif() +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-restbed-target.cmake") +if("@BUILD_SHARED_LIBS@") + add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-shared) +else() + add_library(unofficial::restbed::restbed ALIAS unofficial::restbed::restbed-static) +endif() +]]) + +configure_file( "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" @ONLY) +install( FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-restbed-config.cmake" DESTINATION share/unofficial-restbed) \ No newline at end of file ================================================ FILE: ports/restbed/portfile.cmake ================================================ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl BUILD_SSL ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Corvusoft/restbed REF "${VERSION}" SHA512 989027c926b97a9dd02951c881dc41819014783da4848cc9ee50776545ba206830d35c2e775abd8c0f705f7b0611d5cd335dd1eb305cdcbf2c86100abaf1623c HEAD_REF master PATCHES fix-cmake.patch ) file(REMOVE "${SOURCE_PATH}/cmake/Findopenssl.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-restbed) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/restbed/usage ================================================ restbed provides CMake targets: find_package(unofficial-restbed CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::restbed::restbed) ================================================ FILE: ports/restbed/vcpkg.json ================================================ { "name": "restbed", "version": "4.8", "port-version": 3, "description": "Corvusoft's Restbed framework brings asynchronous RESTful functionality to C++14 applications.", "homepage": "https://github.com/corvusoft/restbed", "license": "AGPL-3.0-or-later OR CPL-1.0", "supports": "!xbox", "dependencies": [ "asio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openssl": { "description": "Secure over the wire communication allowing you to transmit private data online.", "dependencies": [ { "name": "asio", "features": [ "openssl" ] }, "openssl" ] } } } ================================================ FILE: ports/restc-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile( PATCH1_FILE URLS https://github.com/jgaa/restc-cpp/commit/d534d95b8c2c0c3786d2ad10bd2c9f2d7d2c83c5.patch?full_index=1 SHA512 07a09a0685f89b75f6f41c660cb4da6897f718cb11e588d353f24225ac0b0c1f75ad972cf0dc9f6c754b6aa1c4a40fc08f2a3d8d43a2e64ebfbb66453ceec43d FILENAME d534d95b8c2c0c3786d2ad10bd2c9f2d7d2c83c5.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jgaa/restc-cpp REF "v${VERSION}" SHA512 c0c3795161654b91283b1536ba744ce50be248ebd68c2c28a1d29783d06adcfea16b1ca5b1eff27ff62f8bb347fbf3f56c6b49ee5b5875eb4eecf6824caca129 HEAD_REF master PATCHES "${PATCH1_FILE}" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl RESTC_CPP_WITH_TLS zlib RESTC_CPP_WITH_ZLIB threaded-ctx RESTC_CPP_THREADED_CTX ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" WINDOWS_USE_MSBUILD OPTIONS -DINSTALL_RAPIDJSON_HEADERS=OFF -DRESTC_CPP_WITH_EXAMPLES=OFF -DRESTC_CPP_WITH_UNIT_TESTS=OFF -DRESTC_CPP_WITH_FUNCTIONALT_TESTS=OFF -DRESTC_CPP_USE_CPP17=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/restc-cpp/vcpkg.json ================================================ { "name": "restc-cpp", "version-semver": "1.0.0", "port-version": 2, "description": "Modern C++ REST Client library", "homepage": "https://github.com/jgaa/restc-cpp", "license": "MIT", "dependencies": [ "boost-asio", "boost-chrono", "boost-context", "boost-coroutine", "boost-date-time", "boost-filesystem", "boost-log", "boost-program-options", "boost-uuid", "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "openssl", "zlib" ], "features": { "openssl": { "description": "OpenSSL support.", "dependencies": [ "openssl" ] }, "threaded-ctx": { "description": "Allow asio contexts with multiple threads. Enables thread-safe internal access." }, "zlib": { "description": "Use zlib.", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/restclient-cpp/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mrtazz/restclient-cpp REF fdf722bbab55d0838200dfbf2c3a2815741c8a7e #v2024-01-09 SHA512 da1c0286b782c7baa3c40bf5bede5c78e0adde9a3172233cbdede792705b074c26e746f192cccb2eded4bf528f10d1fd5bc276fc1b6a3b9cc695fbeb9feadfff HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_GTest=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_jsoncpp=TRUE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/restclient-cpp) vcpkg_copy_pdbs() # Remove includes in debug file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/restclient-cpp/vcpkg.json ================================================ { "name": "restclient-cpp", "version-date": "2024-01-09", "description": "Simple REST client for C++. It wraps libcurl for HTTP requests.", "homepage": "https://code.mrtazz.com/restclient-cpp/", "license": "MIT", "dependencies": [ "curl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/restinio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stiffstream/restinio REF "v${VERSION}" SHA512 a1bc51d4c29afbb7a3f04e731f0f06674ad581b021462d6b96b424b2203e4e3b6bd2176810d8e3dc344c4a852ef1651d90f1a96717c71da4cddaf19aeabf06c0 ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/dev" OPTIONS -DRESTINIO_INSTALL=ON -DRESTINIO_TEST=OFF -DRESTINIO_SAMPLE=OFF -DRESTINIO_BENCHMARK=OFF -DRESTINIO_WITH_SOBJECTIZER=OFF -DRESTINIO_ASIO_SOURCE=standalone -DRESTINIO_DEP_STANDALONE_ASIO=find -DRESTINIO_DEP_LLHTTP=find -DRESTINIO_DEP_FMT=find -DRESTINIO_DEP_EXPECTED_LITE=find ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/restinio) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/restinio/vcpkg.json ================================================ { "name": "restinio", "version": "0.7.9", "description": "A header-only C++14 library that gives you an embedded HTTP/Websocket server targeted primarily for asynchronous processing of HTTP-requests.", "homepage": "https://github.com/Stiffstream/restinio", "license": "BSD-3-Clause", "dependencies": [ "asio", "expected-lite", "fmt", "llhttp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/resultlib/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO guillermocalvo/resultlib REF "${VERSION}" SHA512 a18522e84bb27c76993748909a9311eb479d0466ee11839b1d3d2ac7469c13534f332c17a6582e29a3de28bd34d0cc10045f2b7bb8e1894f5f345c367cd8e947 HEAD_REF main ) file(COPY "${SOURCE_PATH}/src/result.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/resultlib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/NOTICE") ================================================ FILE: ports/resultlib/vcpkg.json ================================================ { "name": "resultlib", "version-semver": "1.0.0", "maintainers": "Guillermo Calvo ", "description": "Elegant error handling in C", "homepage": "https://github.com/guillermocalvo/resultlib/", "documentation": "https://result.guillermo.dev/", "license": "Apache-2.0" } ================================================ FILE: ports/retropak/portfile.cmake ================================================ # This portfile is for reference when submitting to the vcpkg registry # It should be placed in the vcpkg/ports/retropak directory # This is a data-only package (schemas and locales) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO piersroberts/retropak REF v${VERSION} SHA512 e8a709af428222c40f75a5d0b12a9d70a34562ebc717a9702111a33251be57f042a78d5dbd84e1857c890e91426c925bb54e11b5ec275311288a2610e86d4c46 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/packages/vcpkg" ) vcpkg_cmake_install() # Remove empty directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Copy usage file file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/retropak/usage ================================================ The package retropak provides JSON schema files for validating Retropak software containers. Schema files are installed to: ${RETROPAK_SCHEMA_DIR} Locale files are installed to: ${RETROPAK_LOCALE_DIR} In your CMakeLists.txt: find_package(retropak CONFIG REQUIRED) # Access schema files message(STATUS "Retropak schemas: ${RETROPAK_SCHEMA_DIR}") message(STATUS "Retropak locales: ${RETROPAK_LOCALE_DIR}") # Example: Copy schema to build directory configure_file( "${RETROPAK_SCHEMA_DIR}/v1/retropak.schema.json" "${CMAKE_BINARY_DIR}/retropak.schema.json" COPYONLY ) ================================================ FILE: ports/retropak/vcpkg.json ================================================ { "name": "retropak", "version": "1.0.0", "description": "A modern container format for retro software preservation. Provides JSON schema and metadata specification for Retropak software containers.", "homepage": "https://retropak.org", "license": "CC0-1.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rewolf-wow64ext/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(rewolf-wow64ext VERSION 1.0.0.9 LANGUAGES CXX) include(CMakePackageConfigHelpers) add_library(wow64ext SHARED src/wow64ext.cpp src/wow64ext.rc src/wow64ext.h src/internal.h src/CMemPtr.h src/resource.h ) target_compile_features(wow64ext PRIVATE cxx_std_11 ) target_compile_definitions(wow64ext PRIVATE WOW64EXT_EXPORTS ) target_link_options(wow64ext PRIVATE /SUBSYSTEM:WINDOWS ) target_include_directories(wow64ext INTERFACE $ ) install( TARGETS wow64ext EXPORT wow64extTargets ARCHIVE DESTINATION "lib" LIBRARY DESTINATION "lib" RUNTIME DESTINATION "bin" ) install( FILES "src/wow64ext.h" DESTINATION "include" ) install( EXPORT wow64extTargets FILE wow64extTargets.cmake NAMESPACE unofficial::wow64ext:: DESTINATION "lib/cmake/wow64ext" ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/wow64extConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfig.cmake" INSTALL_DESTINATION "lib/cmake/wow64ext" ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/wow64extConfigVersion.cmake" DESTINATION "lib/cmake/wow64ext" ) ================================================ FILE: ports/rewolf-wow64ext/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rwfpl/rewolf-wow64ext REF "v${VERSION}" SHA512 bbd96200bb7ba581ce58c3935dff8f1cf336b58f88139ba53511fc9f9f3c98fc030db93b0586011a8afeb07a87b719a15498db2696c567beb4c6b55009c77e47 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/bin") file(MAKE_DIRECTORY "${SOURCE_PATH}/cmake") file(COPY "${CMAKE_CURRENT_LIST_DIR}/wow64extConfig.cmake.in" DESTINATION "${SOURCE_PATH}/cmake") file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/wow64ext" PACKAGE_NAME "wow64ext") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lgpl-3.0.txt") ================================================ FILE: ports/rewolf-wow64ext/vcpkg.json ================================================ { "name": "rewolf-wow64ext", "version": "1.0.0.9", "port-version": 1, "description": "Helper library for x86 programs that runs under WOW64 layer on x64 versions of Microsoft Windows operating systems.", "homepage": "https://github.com/rwfpl/rewolf-wow64ext/", "license": "LGPL-3.0-or-later", "supports": "windows & !mingw & x86", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rewolf-wow64ext/wow64extConfig.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/wow64extTargets.cmake") check_required_components(wow64ext) ================================================ FILE: ports/rexo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "christophercrouzet/rexo" REF "v0.2.2" SHA512 "c7b093920bb23d1b8ecb905c8d3eb281e46607890c071c079df4c194215fc007d672ce3524848a1f0376188869f51fd9955e3fe027c10f3d286a003adfd78d09" HEAD_REF "main" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DREXO_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Rexo) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") configure_file("${SOURCE_PATH}/UNLICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/rexo/vcpkg.json ================================================ { "name": "rexo", "version-semver": "0.2.2", "description": "Rexo is a neat single-file cross-platform unit testing framework for C/C++", "homepage": "https://github.com/christophercrouzet/rexo", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rgfw/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ColleagueRiley/RGFW REF "${VERSION}" SHA512 9d9e4b573ae3c85a70997c05f78feafd211754ffa292515a7ac7f5c8c76770d754ce13d786a77b01b862f87111e031cf3344623550b45be1ac0b3a479cf343eb HEAD_REF master ) file(GLOB HEADER_FILES "${SOURCE_PATH}/*.h") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rgfw/vcpkg.json ================================================ { "name": "rgfw", "version": "1.70", "description": "A cross platform lightweight single-header simple-to-use window abstraction library for creating graphical programs or libraries.", "homepage": "https://github.com/ColleagueRiley/RGFW", "license": "Zlib" } ================================================ FILE: ports/rhash/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(rhash C) # cf. configure: RHASH_XVERSION = $(printf "0x%02x%02x%02x%02x" "$_v1" "$_v2" "$_v3" 0) set(RHASH_VERSION "undefined" CACHE STRING "") if(NOT RHASH_VERSION MATCHES [[^([0-9]+)[.]([0-9]+)[.]([0-9]+)$]]) message(FATAL_ERROR "Cannot derive RHASH_XVERSION from '${RHASH_VERSION}'") endif() MATH(EXPR RHASH_XVERSION "((${CMAKE_MATCH_1} * 256 + ${CMAKE_MATCH_2}) * 256 + ${CMAKE_MATCH_3}) * 256" OUTPUT_FORMAT HEXADECIMAL) file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/Makefile RHASH_SOURCES REGEX "^SOURCES = .*$") string(REPLACE "SOURCES = " "" RHASH_SOURCES "${RHASH_SOURCES}") string(REPLACE " " ";" RHASH_SOURCES "${RHASH_SOURCES}") add_library(rhash ${RHASH_SOURCES}) target_compile_definitions(rhash PRIVATE RHASH_XVERSION=${RHASH_XVERSION}) if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(rhash PRIVATE RHASH_EXPORTS) endif() target_include_directories(rhash INTERFACE $) install(TARGETS rhash EXPORT unofficial-rhash-config RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT unofficial-rhash-config FILE unofficial-rhash-config.cmake NAMESPACE unofficial::rhash:: DESTINATION share/unofficial-rhash ) if(NOT RHASH_SKIP_HEADERS) install(FILES rhash.h rhash_torrent.h DESTINATION include) endif() # cf. configure set(LIBRHASH_PC "${CMAKE_CURRENT_BINARY_DIR}/librhash.pc") file(WRITE "${LIBRHASH_PC}" "prefix=fixup exec_prefix=\${prefix} libdir=\${prefix}/lib includedir=\${prefix}/include Name: librash Description: LibRHash shared library Version: ${RHASH_VERSION} Cflags: -I\${includedir} Libs: -L\${libdir} -lrhash ") install(FILES "${LIBRHASH_PC}" DESTINATION "lib/pkgconfig") ================================================ FILE: ports/rhash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rhash/RHash REF "v${VERSION}" SHA512 49bd6aa2497efc4871ae31eaca51d2dc78ceb7126311557d5280b14fafe9355eaecad37f0f78f865e4e1dd1aeb506d3301989cd2f9fff7b0091c81978e8c2f2e HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/librhash") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/librhash" OPTIONS -DRHASH_VERSION=${VERSION} OPTIONS_DEBUG -DRHASH_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-rhash) vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rhash.h" "# define RHASH_API" "# define RHASH_API __declspec(dllimport)") endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rhash/vcpkg.json ================================================ { "name": "rhash", "version": "1.4.5", "description": "C library for computing a wide variety of hash sums", "homepage": "https://github.com/rhash/RHash", "license": "0BSD", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rhasheq/find-rhash.patch ================================================ diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index c64c475..d57179e 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -1,4 +1,8 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +find_dependency(unofficial-rhash) + include ( "${CMAKE_CURRENT_LIST_DIR}/rhasheqTargets.cmake" ) diff --git a/rhasheq/CMakeLists.txt b/rhasheq/CMakeLists.txt index fb7357f..baaaaf8 100644 --- a/rhasheq/CMakeLists.txt +++ b/rhasheq/CMakeLists.txt @@ -23,8 +23,9 @@ else () endif (VCPKG_TOOLCHAIN) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules;${CMAKE_MODULE_PATH}") -find_package(LibRHash) +find_package(unofficial-rhash CONFIG REQUIRED) +if(0) if (NOT LibRHash_FOUND) set(CMAKE_FIND_LIBRARY_PREFIXES ${CMAKE_FIND_LIBRARY_PREFIXES} lib) set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} _imp.lib -d.lib -d_imp.lib) @@ -40,8 +41,9 @@ endif (NOT TARGET LibRHash) if (NOT LibRHash_FOUND) message(FATAL_ERROR "LibRHash not found") endif (NOT LibRHash_FOUND) +endif() -target_link_libraries("${LIBRARY_NAME}" INTERFACE "LibRHash::LibRHash") +target_link_libraries("${LIBRARY_NAME}" INTERFACE unofficial::rhash::rhash) include(GNUInstallDirs) target_include_directories( ================================================ FILE: ports/rhasheq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO offscale/rhasheq REF cf5442f6468871beb6088991501e6ba052fe4467 SHA512 2be63bc32c7cea35eefbcc7186255e9cd8ba6ed4b03cb9ee2e62740fe17ad74a81ee7e4ada37f4a2dca99a82becf790d6aa86822cdbeba3972cf11d54095ca91 HEAD_REF master PATCHES find-rhash.patch ) file(REMOVE "${SOURCE_PATH}/cmake/modules/FindLibRHash.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/rhasheq/vcpkg.json ================================================ { "name": "rhasheq", "version-date": "2023-06-17", "description": "Simple header-only librhash wrapper for verifying hashes from a file to a given `const char *`.", "homepage": "https://github.com/offscale/rhasheq", "license": "0BSD", "dependencies": [ "c89stringutils", "rhash", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/riffcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libdmusic/riffcpp REF v2.2.4 SHA512 abceba02441305267c444ed724ca769fa08369302eb74b7729b700883b9354f3db95d8c68ee15f25844a75f1609edd2bcf7482fc639b9e2d3ee3b8caf5e9585f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRIFFCPP_INSTALL_EXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/riffcpp/vcpkg.json ================================================ { "name": "riffcpp", "version": "2.2.4", "port-version": 3, "description": "Simple library for reading RIFF files", "homepage": "https://github.com/libdmusic/riffcpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ring-span-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/ring-span-lite REF "v${VERSION}" SHA512 aa3f199e4cef36ead644d9620e716c2f91bbb52fe3193919ed6aec099bc32841168eaf789c8ddc6700688a34335ad04e139822633d7e26184f511431ca4aaa12 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRING_SPAN_LITE_OPT_BUILD_TESTS=OFF -DRING_SPAN_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/ring-span-lite/vcpkg.json ================================================ { "name": "ring-span-lite", "version": "0.7.0", "description": "A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library", "homepage": "https://github.com/martinmoene/ring-span-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rioki-glow/add-iostream.diff ================================================ diff --git a/glow/util.cpp b/glow/util.cpp index 005df9d..e8a5747 100644 --- a/glow/util.cpp +++ b/glow/util.cpp @@ -25,6 +25,8 @@ #ifdef _WIN32 #define NOMINMAX #include +#else +#include #endif namespace glow ================================================ FILE: ports/rioki-glow/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rioki/glow REF v0.2.1 SHA512 410d0bcc98f9587321dceab498ed84fe2cffbf1f38ba59592d5f7eded9eea67c17e40415966d14f548b7e91f23e17fc0162c216c34b905c641647f90274af5b1 PATCHES add-iostream.diff # https://github.com/rioki/glow/pull/21 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "rioki_glow") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rioki-glow/vcpkg.json ================================================ { "name": "rioki-glow", "version-semver": "0.2.1", "port-version": 1, "description": "OpenGL Object Wrapper", "homepage": "https://github.com/rioki/glow", "license": "MIT", "dependencies": [ "glew", "glm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ripper37-libbase/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RippeR37/libbase REF "v${VERSION}" SHA512 5bbb6758db694ed899d1181c9dc1ad6f90a55f73c8fb6d05f179695c4cc5e3354989d85879651781a34e6bbd396afe8c8f5fb406a24280e579142618923fc9af HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES net LIBBASE_BUILD_MODULE_NET win LIBBASE_BUILD_MODULE_WIN wx LIBBASE_BUILD_MODULE_WX ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIBBASE_OUTPUT_NAME=ripper37-libbase -DLIBBASE_CODE_COVERAGE=OFF -DLIBBASE_BUILD_DOCS=OFF -DLIBBASE_CLANG_TIDY=OFF -DLIBBASE_BUILD_EXAMPLES=OFF -DLIBBASE_BUILD_TESTS=OFF -DLIBBASE_BUILD_PERFORMANCE_TESTS=OFF -DLIBBASE_BUILD_ASAN=OFF -DLIBBASE_BUILD_TSAN=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "libbase" CONFIG_PATH "share/libbase" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ripper37-libbase/usage ================================================ ripper37-libbase provides CMake targets: find_package(libbase CONFIG REQUIRED [...]) target_link_libraries(main PRIVATE libbase::libbase [...]) if enabled via features, it also provides optional CMake package components: net - provides target `libbase::libbase_net` - networking module win - provides target `libbase::libbase_win` - WinAPI integration module wx - provides target `libbase::libbase_wx` - wxWidgets integration module ================================================ FILE: ports/ripper37-libbase/vcpkg.json ================================================ { "name": "ripper37-libbase", "version": "1.1.2", "description": "Standalone reimplementation of //base module from Chromium", "homepage": "https://github.com/RippeR37/libbase", "documentation": "https://ripper37.github.io/libbase", "license": "MIT", "dependencies": [ { "name": "glog", "features": [ "customprefix" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "net", { "name": "win", "platform": "windows" } ], "features": { "net": { "description": "Networking module", "dependencies": [ "curl" ] }, "win": { "description": "Integration module for WinAPI", "supports": "windows" }, "wx": { "description": "Integration module for wxWidgets", "dependencies": [ "wxwidgets" ] } } } ================================================ FILE: ports/rivers/add-install-configuration.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 981ef20..89c5a6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,20 +9,45 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) add_library(rivers INTERFACE) add_library(rivers::rivers ALIAS rivers) -target_include_directories(rivers INTERFACE include) +target_include_directories(rivers + INTERFACE + $ + $ + ) option(RVR_IMPORT_FMT Off) if(RVR_IMPORT_FMT) - include(FetchContent) - FetchContent_Declare( - fmt - GIT_REPOSITORY https://github.com/fmtlib/fmt.git - GIT_TAG 713c7c7c62044329d26c19323ffa0e64d69d2d64 - ) - FetchContent_MakeAvailable(fmt) - + find_package(fmt CONFIG REQUIRED) target_link_libraries(rivers INTERFACE fmt::fmt) endif() -add_subdirectory(bench) -add_subdirectory(test) +include(CMakePackageConfigHelpers) + +configure_package_config_file( + cmake/unofficial-rivers-config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-rivers-config.cmake" + INSTALL_DESTINATION lib/cmake/unofficial-rivers/ + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + + +# Export. +export( + TARGETS rivers + FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-rivers-targets.cmake") + +# Install. +install(TARGETS rivers EXPORT unofficial-rivers) + +install( + EXPORT unofficial-rivers + NAMESPACE unofficial-rivers:: + FILE unofficial-rivers-targets.cmake + DESTINATION lib/cmake/unofficial-rivers) + +install(DIRECTORY include/rivers DESTINATION include) + +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-rivers-config.cmake" + DESTINATION lib/cmake/unofficial-rivers) + diff --git a/cmake/unofficial-rivers-config.cmake.in b/cmake/unofficial-rivers-config.cmake.in new file mode 100644 index 0000000..a347972 --- /dev/null +++ b/cmake/unofficial-rivers-config.cmake.in @@ -0,0 +1,9 @@ + +@PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-rivers-targets.cmake") +if(@RVR_IMPORT_FMT@) + find_dependency(fmt CONFIG) +endif() + ================================================ FILE: ports/rivers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brevzin/rivers REF cfbd4c3e0ca9fcde03075327d6dd628e57589342 SHA512 4dfa4a1e657c6a12446abe6d7c54d5bc3d47d82e8639eb91f98c7120b3ca79a6cfa761a357dc2285027823177ee76be346adddc7861f0f213cd0bc7cde041ab8 HEAD_REF main PATCHES add-install-configuration.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fmt RVR_IMPORT_FMT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH "lib/cmake/unofficial-rivers") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rivers/vcpkg.json ================================================ { "name": "rivers", "version-date": "2022-05-16", "description": "A C++ internal iteration library based loosely on Java Streams", "homepage": "https://github.com/brevzin/rivers/", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fmt": { "description": "Use fmt as rivers fommatter", "dependencies": [ "fmt" ] } } } ================================================ FILE: ports/rkcommon/fix-static.patch ================================================ diff --git a/rkcommon/CMakeLists.txt b/rkcommon/CMakeLists.txt index 2bfb993..9d61267 100644 --- a/rkcommon/CMakeLists.txt +++ b/rkcommon/CMakeLists.txt @@ -55,6 +55,10 @@ if (RKCOMMON_TASKING_INTERNAL) target_compile_definitions(${PROJECT_NAME} PRIVATE -DENKITS_BUILD_DLL) endif() +if(BUILD_SHARED_LIBS) + target_compile_definitions(${PROJECT_NAME} PUBLIC rkcommon_SHARED) +endif() + if (RKCOMMON_ADDRSAN) target_compile_definitions(${PROJECT_NAME} PUBLIC -DRKCOMMON_ADDRSAN) endif() diff --git a/rkcommon/common.h b/rkcommon/common.h index a205770..07bf930 100644 --- a/rkcommon/common.h +++ b/rkcommon/common.h @@ -26,7 +26,7 @@ typedef int ssize_t; #include "unistd.h" #endif -#ifdef _WIN32 +#if defined(_WIN32) && defined(rkcommon_SHARED) #ifdef rkcommon_EXPORTS #define RKCOMMON_INTERFACE __declspec(dllexport) #else ================================================ FILE: ports/rkcommon/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ospray/rkcommon REF "v${VERSION}" SHA512 48ced20506344250fd2b91875f8282c3b39828ac3eb0c8c0e2505dcc5cdb85a8f36dd328294f165aab66bdfe836b81b7a2c9f6f5c7ab49d281df5a3f95075548 HEAD_REF master PATCHES fix-static.patch ) file(REMOVE "${SOURCE_PATH}/cmake/rkcommon_redist_deps.cmake") file(TOUCH "${SOURCE_PATH}/cmake/rkcommon_redist_deps.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rkcommon/common.h" "defined(rkcommon_SHARED)" "0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/rkcommon/common.h" "defined(rkcommon_SHARED)" "1") endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}-${VERSION}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/rkcommon/usage ================================================ rkcommon provides CMake targets: find_package(rkcommon CONFIG REQUIRED) target_link_libraries(main PRIVATE rkcommon::rkcommon) ================================================ FILE: ports/rkcommon/vcpkg.json ================================================ { "name": "rkcommon", "version": "1.14.2", "description": "This project represents a common set of C++ infrastructure and CMake utilities used by various components of Intel® oneAPI Rendering Toolkit.", "homepage": "https://github.com/ospray/rkcommon/", "license": "Apache-2.0", "supports": "x86 | x64", "dependencies": [ "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rlottie/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Samsung/rlottie REF e3026b1e1a516fff3c22d2b1b9f26ec864f89a82 SHA512 3b9985606d9c475e77ecb018cfe65cde1170f10e9d2c3e18b60178d3954a4870e5141aa06bb79e803fcdbcf98742bcf72a359625a3b1409125ec3a4a1b0126c4 PATCHES vcpkg.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLIB_INSTALL_DIR=lib -DLOTTIE_MODULE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/rlottie") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/AUTHORS") ================================================ FILE: ports/rlottie/vcpkg.json ================================================ { "name": "rlottie", "version-date": "2024-08-26", "description": "A platform independent standalone library that plays Lottie Animation.", "homepage": "https://github.com/Samsung/rlottie", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rlottie/vcpkg.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 38a9862..eca77d5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,6 +16,10 @@ endif() add_library( rlottie ) set_target_properties( rlottie PROPERTIES DEFINE_SYMBOL RLOTTIE_BUILD ) +#use vcpkg ports +find_package(RapidJSON CONFIG REQUIRED) +target_link_libraries(rlottie PRIVATE rapidjson) + #declare version of the target set(player_version_major 0) set(player_version_minor 2) @@ -75,8 +79,6 @@ endif() if (WIN32 AND NOT BUILD_SHARED_LIBS) target_compile_definitions(rlottie PUBLIC -DRLOTTIE_BUILD=0) - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") endif() #declare dependancy @@ -88,13 +90,6 @@ target_link_libraries(rlottie "${CMAKE_THREAD_LIBS_INIT}" ) -if (NOT APPLE AND NOT WIN32) - target_link_libraries(rlottie - PRIVATE - "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/rlottie.expmap" - ) -endif() - if (LOTTIE_MODULE) # for dlopen, dlsym and dlclose dependancy target_link_libraries(rlottie PRIVATE ${CMAKE_DL_LIBS}) @@ -165,6 +160,7 @@ install( TARGETS rlottie EXPORT rlottie-targets LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} INCLUDES DESTINATION include + RUNTIME DESTINATION bin ) #install config file. diff --git a/src/lottie/lottieparser.cpp b/src/lottie/lottieparser.cpp index b33effa..c7bb421 100644 --- a/src/lottie/lottieparser.cpp +++ b/src/lottie/lottieparser.cpp @@ -56,7 +56,7 @@ #include #include "lottiemodel.h" -#include "rapidjson/document.h" +#include #include "zip/zip.h" RAPIDJSON_DIAG_PUSH diff --git a/src/vector/CMakeLists.txt b/src/vector/CMakeLists.txt index 3ae96e6..15b86df 100644 --- a/src/vector/CMakeLists.txt +++ b/src/vector/CMakeLists.txt @@ -1,5 +1,4 @@ add_subdirectory(freetype) -add_subdirectory(pixman) add_subdirectory(stb) diff --git a/src/vector/vdrawhelper_neon.cpp b/src/vector/vdrawhelper_neon.cpp index 681eabb..e178012 100644 --- a/src/vector/vdrawhelper_neon.cpp +++ b/src/vector/vdrawhelper_neon.cpp @@ -2,28 +2,20 @@ #include "vdrawhelper.h" -extern "C" void pixman_composite_src_n_8888_asm_neon(int32_t w, int32_t h, - uint32_t *dst, - int32_t dst_stride, - uint32_t src); - -extern "C" void pixman_composite_over_n_8888_asm_neon(int32_t w, int32_t h, - uint32_t *dst, - int32_t dst_stride, - uint32_t src); - void memfill32(uint32_t *dest, uint32_t value, int length) { - pixman_composite_src_n_8888_asm_neon(length, 1, dest, length, value); + memset(dest, value, length); } static void color_SourceOver(uint32_t *dest, int length, uint32_t color, uint32_t const_alpha) { + int ialpha, i; if (const_alpha != 255) color = BYTE_MUL(color, const_alpha); - pixman_composite_over_n_8888_asm_neon(length, 1, dest, length, color); + ialpha = 255 - vAlpha(color); + for (i = 0; i < length; ++i) dest[i] = color + BYTE_MUL(dest[i], ialpha); } void RenderFuncTable::neon() ================================================ FILE: ports/rmlui/add-itlib-and-robin-hood.patch ================================================ diff --git a/Include/RmlUi/Config/Config.h b/Include/RmlUi/Config/Config.h index 15d984a3..ee122353 100644 --- a/Include/RmlUi/Config/Config.h +++ b/Include/RmlUi/Config/Config.h @@ -56,9 +56,9 @@ #include #include #else - #include "../Core/Containers/itlib/flat_map.hpp" - #include "../Core/Containers/itlib/flat_set.hpp" - #include "../Core/Containers/robin_hood.h" + #include + #include + #include #endif // RMLUI_NO_THIRDPARTY_CONTAINERS namespace Rml { diff --git a/Source/Core/CMakeLists.txt b/Source/Core/CMakeLists.txt index 336ec979..c68131c8 100644 --- a/Source/Core/CMakeLists.txt +++ b/Source/Core/CMakeLists.txt @@ -239,9 +239,6 @@ target_sources(rmlui_core PRIVATE "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Colour.inl" "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/CompiledFilterShader.h" "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ComputedValues.h" - "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/itlib/flat_map.hpp" - "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/itlib/flat_set.hpp" - "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Containers/robin_hood.h" "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/Context.h" "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ContextInstancer.h" "${PROJECT_SOURCE_DIR}/Include/RmlUi/Core/ConvolutionFilter.h" @@ -390,6 +387,11 @@ elseif(rmlui_core_TYPE STREQUAL "SHARED_LIBRARY") endif() unset(rmlui_core_TYPE) +find_path(ROBIN_HOOD_INCLUDE_DIR robin_hood.h) +target_include_directories(rmlui_core PUBLIC ${ROBIN_HOOD_INCLUDE_DIR}) +find_path(ITLIB_INCLUDE_DIRS "itlib/flat_map.hpp") +target_include_directories(rmlui_core PUBLIC ${ITLIB_INCLUDE_DIRS}) + if(RMLUI_FONT_ENGINE STREQUAL "freetype") # Include the source files for the default font engine. add_subdirectory("FontEngineDefault") ================================================ FILE: ports/rmlui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mikke89/RmlUi REF ${VERSION} SHA512 f08c126d3727850724072fb88b1c95cb6c5dcc160082bffcba42d2236950b651e39d71f7c0eecf5a5a047f68ad5cc7f1968d2334c5b72c019d2aefb3fb55e246 HEAD_REF master PATCHES add-itlib-and-robin-hood.patch skip-custom-find-modules.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES lua RMLUI_LUA_BINDINGS svg RMLUI_SVG_PLUGIN lottie RMLUI_LOTTIE_PLUGIN ) if("freetype" IN_LIST FEATURES) set(RMLUI_FONT_ENGINE "freetype") else() set(RMLUI_FONT_ENGINE "none") endif() # Remove built-in third-party dependencies (itlib and robin-hood), instead we use vcpkg ports. file(REMOVE_RECURSE "${SOURCE_PATH}/Include/RmlUi/Core/Containers") vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} "-DRMLUI_FONT_ENGINE=${RMLUI_FONT_ENGINE}" "-DRMLUI_COMPILER_OPTIONS=OFF" "-DRMLUI_INSTALL_RUNTIME_DEPENDENCIES=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/RmlUi) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/RmlUi/Core/Header.h" "#if !defined RMLUI_STATIC_LIB" "#if 0" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/RmlUi/Debugger/Header.h" "#if !defined RMLUI_STATIC_LIB" "#if 0" ) if ("lua" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/RmlUi/Lua/Header.h" "#if !defined RMLUI_STATIC_LIB" "#if 0" ) endif() endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/Source/Debugger/LICENSE.txt" ) ================================================ FILE: ports/rmlui/skip-custom-find-modules.patch ================================================ diff --git a/CMake/RmlUiConfig.cmake.in b/CMake/RmlUiConfig.cmake.in index a69348fd..9d758860 100644 --- a/CMake/RmlUiConfig.cmake.in +++ b/CMake/RmlUiConfig.cmake.in @@ -27,8 +27,6 @@ macro(report_dependency_found_or_error friendly_name target_name) message(STATUS "Found ${friendly_name} target ${target_name}${success_message}") endmacro() -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") - include("${CMAKE_CURRENT_LIST_DIR}/Dependencies.cmake") include("${CMAKE_CURRENT_LIST_DIR}/RmlUiTargets.cmake") diff --git a/CMakeLists.txt b/CMakeLists.txt index f13434fc..2aef42fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -189,9 +189,6 @@ install(FILES DESTINATION "${RMLUI_INSTALL_TARGETS_DIR}" ) -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/CMake/Modules" - DESTINATION "${RMLUI_INSTALL_TARGETS_DIR}" -) if(RMLUI_IS_ROOT_PROJECT) # Export build tree targets if RmlUi is the top-level project. ================================================ FILE: ports/rmlui/usage ================================================ rmlui provides CMake targets: find_package(RmlUi CONFIG REQUIRED) target_link_libraries(main PRIVATE RmlUi::RmlUi) ================================================ FILE: ports/rmlui/vcpkg.json ================================================ { "name": "rmlui", "version": "6.2", "maintainers": "Michael R. P. Ragazzon ", "description": "RmlUi is the C++ user interface library based on the HTML and CSS standards, designed as a complete solution for any project's interface needs.", "homepage": "https://github.com/mikke89/RmlUi", "documentation": "https://mikke89.github.io/RmlUiDoc/", "license": "MIT", "dependencies": [ "itlib", "robin-hood-hashing", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "freetype" ], "features": { "freetype": { "description": "Include font engine based on FreeType", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "lottie": { "description": "Enable plugin for lottie animations", "dependencies": [ "rlottie" ] }, "lua": { "description": "Build Lua bindings", "dependencies": [ "lua" ] }, "svg": { "description": "Enable plugin for SVG images", "dependencies": [ "lunasvg" ] } } } ================================================ FILE: ports/rmqcpp/disable-tests-and-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 33db7ca..41ffd06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,6 @@ enable_testing() set(CMAKE_POSITION_INDEPENDENT_CODE ON) add_subdirectory(src) -add_subdirectory(examples) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") add_compile_options(-Wall -Wextra -Wpedantic) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f051820..2db9e2a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,5 +9,3 @@ find_package(GTest REQUIRED) find_package(bal REQUIRED) add_subdirectory(rmq) -add_subdirectory(rmqtestmocks) -add_subdirectory(tests) ================================================ FILE: ports/rmqcpp/new-boost.patch ================================================ diff --git a/src/rmq/rmqio/rmqio_asioconnection.cpp b/src/rmq/rmqio/rmqio_asioconnection.cpp index bdd0e97..ce874ec 100644 --- a/src/rmq/rmqio/rmqio_asioconnection.cpp +++ b/src/rmq/rmqio/rmqio_asioconnection.cpp @@ -444,21 +444,16 @@ bool AsioConnection::doRead(bsl::size_t bytes_transferred) bsl::size_t bytes_decoded = 0; boost::asio::streambuf::const_buffers_type bufs = d_inbound->data(); bsl::vector readFrames; - for (boost::asio::streambuf::const_buffers_type::const_iterator i = - bufs.begin(); - i != bufs.end(); - ++i) { - boost::asio::const_buffer buf(*i); - Decoder::ReturnCode rcode = - d_frameDecoder->appendBytes(&readFrames, buf.data(), buf.size()); - if (rcode != Decoder::OK) { - BALL_LOG_WARN << "Bad rcode from decoder: " << rcode; - // Fail but we still want to process frames we were able to decode - success = false; - break; - }; - bytes_decoded += buf.size(); - } + + boost::asio::const_buffer buf(bufs); + Decoder::ReturnCode rcode = + d_frameDecoder->appendBytes(&readFrames, buf.data(), buf.size()); + if (rcode != Decoder::OK) { + BALL_LOG_WARN << "Bad rcode from decoder: " << rcode; + // Fail but we still want to process frames we were able to decode + success = false; + }; + bytes_decoded += buf.size(); if (bytes_decoded != bytes_transferred) { BALL_LOG_WARN << "bytes_decoded (" << bytes_decoded diff --git a/src/rmq/rmqio/rmqio_asioeventloop.cpp b/src/rmq/rmqio/rmqio_asioeventloop.cpp index ed8f176..307fd20 100644 --- a/src/rmq/rmqio/rmqio_asioeventloop.cpp +++ b/src/rmq/rmqio/rmqio_asioeventloop.cpp @@ -108,8 +108,8 @@ void AsioEventLoop::onThreadStarted() d_condition.broadcast(); } -void AsioEventLoop::postImpl(const Item& item) { d_context.post(item); } -void AsioEventLoop::dispatchImpl(const Item& item) { d_context.dispatch(item); } +void AsioEventLoop::postImpl(const Item& item) { boost::asio::post(d_context, item); } +void AsioEventLoop::dispatchImpl(const Item& item) { boost::asio::dispatch(d_context, item); } bsl::shared_ptr AsioEventLoop::resolver(bool shuffleConnectionEndpoints) diff --git a/src/tests/rmqamqp/rmqamqp_connection.t.cpp b/src/tests/rmqamqp/rmqamqp_connection.t.cpp index 2c99b0b..97621f5 100644 --- a/src/tests/rmqamqp/rmqamqp_connection.t.cpp +++ b/src/tests/rmqamqp/rmqamqp_connection.t.cpp @@ -147,7 +147,8 @@ class MockConnection : public rmqio::Connection { BSLS_ASSERT_OPT(rc == Frame::OK); - d_eventLoop.post( + boost::asio::post( + d_eventLoop, bdlf::BindUtil::bind(d_connectionCallbacks.onRead, decoded)); } } @@ -156,7 +157,8 @@ class MockConnection : public rmqio::Connection { { BALL_LOG_TRACE << "MockConnection close"; - d_eventLoop.post(bdlf::BindUtil::bind(cb, GRACEFUL_DISCONNECT)); + boost::asio::post(d_eventLoop, + bdlf::BindUtil::bind(cb, GRACEFUL_DISCONNECT)); } void asyncWriteImpl( @@ -175,7 +177,7 @@ class MockConnection : public rmqio::Connection { rmqamqpt::Method( rmqamqpt::ConnectionMethod(rmqamqpt::ConnectionCloseOk()))); - d_eventLoop.post(callback); + boost::asio::post(d_eventLoop, callback); if (!closeOk) { feedNextFrame(); @@ -301,7 +303,7 @@ ACTION_P3(ConnectMockConnection, mockConnectPtrPtr, replayFrame, eventLoop) ON_CALL(**mockConnectPtrPtr, isConnected()).WillByDefault(Return(true)); - eventLoop.get().post(arg4); + boost::asio::post(eventLoop.get(), arg4); return *mockConnectPtrPtr; } diff --git a/src/tests/rmqio/rmqio_asioresolver.t.cpp b/src/tests/rmqio/rmqio_asioresolver.t.cpp index e5c2c7e..ad14d5e 100644 --- a/src/tests/rmqio/rmqio_asioresolver.t.cpp +++ b/src/tests/rmqio/rmqio_asioresolver.t.cpp @@ -98,7 +98,7 @@ TEST_F(ResolverTests, ShufflesResolverResults) for (int i = 0; i < 5; i++) { bsl::string ip = bsl::to_string(i) + ".0.0.0"; entry_type::endpoint_type endpoint( - boost::asio::ip::address::from_string(std::string(ip)), 1); + boost::asio::ip::make_address(std::string(ip)), 1); entries.push_back(entry_type(endpoint, host, port)); } AsioResolver::results_type resolverResults = @@ -140,7 +140,7 @@ TEST_F(ResolverTests, NoShuffleDoesNotReorderResolverResults) for (int i = 0; i < 5; i++) { bsl::string ip = bsl::to_string(i) + ".0.0.0"; entry_type::endpoint_type endpoint( - boost::asio::ip::address::from_string(std::string(ip)), 1); + boost::asio::ip::make_address(std::string(ip)), 1); entries.push_back(entry_type(endpoint, host, port)); } AsioResolver::results_type resolverResults = ================================================ FILE: ports/rmqcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bloomberg/rmqcpp REF 11859eb470f31008da522b59e96899585b4e94ce SHA512 f82cc1696d370e81dc410442465ecbe06940cd50ae8c93215e19a4b7de57ee7581a1d4f59d9775e08c646b63496ac18528b29edb852e0b9fb9cab7f761151b25 HEAD_REF main PATCHES "disable-tests-and-examples.patch" new-boost.patch # From https://github.com/bloomberg/rmqcpp/pull/59 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBDE_BUILD_TARGET_CPP17=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON -DBDE_BUILD_TARGET_SAFE=ON -DCMAKE_INSTALL_LIBDIR=lib64 ) vcpkg_cmake_build() vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/rmqcpp/usage ================================================ rmqcpp provides CMake targets: find_package(rmqcpp REQUIRED) target_link_libraries(main PRIVATE rmqcpp::rmq) ================================================ FILE: ports/rmqcpp/vcpkg.json ================================================ { "name": "rmqcpp", "version": "1.0.0", "port-version": 2, "description": "rmqcpp - A C++ library for RabbitMQ.", "homepage": "https://github.com/bloomberg/rmqcpp", "license": "Apache-2.0", "dependencies": [ { "name": "bde", "version>=": "3.123.0.0" }, "boost-asio", "boost-iostreams", "gtest", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rnnoise/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/rnnoise REF "v${VERSION}" SHA512 0f7de78494e0f2421c09871e9328437b64d021fd046c2198b836e84028995b43a56d113fb5ebc0bd76c1cb308a9cc53f67d6de5c1f67281248af492eab534bbc HEAD_REF main ) vcpkg_download_distfile( MODEL_PATH URLS https://media.xiph.org/rnnoise/models/rnnoise_data-0a8755f8e2d834eff6a54714ecc7d75f9932e845df35f8b59bc52a7cfe6e8b37.tar.gz FILENAME rnnoise_data-0a8755f8e2d834eff6a54714ecc7d75f9932e845df35f8b59bc52a7cfe6e8b37.tar.gz SHA512 b327d2fc5095be9ed66c5246a86b1a1ce180e9de875c4e5e8778f975560d1f035da40a8686dc1c3fd91c8e709be65d2638eccaa9f866b6f3d85f8d0d16bd2184 ) vcpkg_extract_archive( ARCHIVE "${MODEL_PATH}" DESTINATION "${SOURCE_PATH}/modeldata" ) file(COPY "${SOURCE_PATH}/modeldata/src/rnnoise_data.c" DESTINATION "${SOURCE_PATH}/src/") file(COPY "${SOURCE_PATH}/modeldata/src/rnnoise_data.h" DESTINATION "${SOURCE_PATH}/src/") file(COPY "${SOURCE_PATH}/modeldata/src/rnnoise_data_little.c" DESTINATION "${SOURCE_PATH}/src/") file(COPY "${SOURCE_PATH}/modeldata/src/rnnoise_data_little.h" DESTINATION "${SOURCE_PATH}/src/") file(COPY "${SOURCE_PATH}/modeldata/models/rnnoise10Ga_12.pth" DESTINATION "${SOURCE_PATH}/models/") file(COPY "${SOURCE_PATH}/modeldata/models/rnnoise10Gb_15.pth" DESTINATION "${SOURCE_PATH}/models/") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/rnnoise/vcpkg.json ================================================ { "name": "rnnoise", "version": "0.2", "description": "Recurrent neural network for audio noise reduction", "license": "BSD-3-Clause AND CC0-1.0", "supports": "!windows & !arm", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/roaring/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RoaringBitmap/CRoaring REF "v${VERSION}" SHA512 1559e600d9adc4701a009d9f230dcdb9a248756ecd81188637e7893803d045ecdb100fa9e10451bedec5cb1399a417867a1f4318e389d304da166d94e86ef5ba HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ROARING_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DROARING_BUILD_STATIC=${ROARING_BUILD_STATIC} -DENABLE_ROARING_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/roaring) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/roaring/vcpkg.json ================================================ { "name": "roaring", "version": "4.6.1", "description": "A better compressed bitset in C (and C++)", "homepage": "https://github.com/RoaringBitmap/CRoaring", "license": "Apache-2.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/robin-hood-hashing/fix-missing-stdint.patch ================================================ diff --git a/src/include/robin_hood.h b/src/include/robin_hood.h index b4e0fbc..405e67d 100644 --- a/src/include/robin_hood.h +++ b/src/include/robin_hood.h @@ -40,6 +40,7 @@ #include #include +#include #include #include #include ================================================ FILE: ports/robin-hood-hashing/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinus/robin-hood-hashing REF 3.11.5 SHA512 5f73e089b1e8ec41a9bedded22bc64a789d3a3d04873a2ad9f8cc2970797a473b0f4d3436c2324b3ced85a0d983998a75b1dfaf2b7f3b77235b29806ff2fd489 HEAD_REF master PATCHES fix-missing-stdint.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRH_STANDALONE_PROJECT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME robin_hood CONFIG_PATH lib/cmake/robin_hood ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/robin-hood-hashing/vcpkg.json ================================================ { "name": "robin-hood-hashing", "version": "3.11.5", "port-version": 2, "description": "Fast & memory efficient hashtable based on robin hood hashing for C++11/14/17/20", "homepage": "https://github.com/martinus/robin-hood-hashing", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/robin-map/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/robin-map REF "v${VERSION}" SHA512 c77dba232537e71f930a9a54f4e7575debcac10bbfa67f002a3b7262889871d146de583b774b5c8a0b5bf5a7471ee17c375bda6bb4f3f3cf52e1d33313231be2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME tsl-robin-map CONFIG_PATH share/cmake/tsl-robin-map) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/robin-map/vcpkg.json ================================================ { "name": "robin-map", "version-semver": "1.4.1", "description": "A C++ implementation of a fast hash map and hash set using robin hood hashing", "homepage": "https://github.com/Tessil/robin-map", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/robotraconteur/portfile.cmake ================================================ if(VCPKG_TARGET_IS_LINUX) MESSAGE(WARNING "${PORT} requires libbluetooth-dev from the system package manager.\nTry: 'sudo yum install libbluetooth-dev ' (or sudo apt-get install libbluetooth-dev)") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO robotraconteur/robotraconteur REF "v${VERSION}" SHA512 68c85993014df880cbc5b5c5a8656f64f95ca0dba4ace9a3a4239a4bdc6e65b29c73489a2b56142890629f040bd994f54e40d01f928c1cfd5b6dd40dc9a2b14a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_GEN=ON -DBUILD_TESTING=OFF -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES RobotRaconteurGen AUTO_CLEAN) vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/robotraconteur) vcpkg_cmake_config_fixup( PACKAGE_NAME RobotRaconteur CONFIG_PATH "lib/cmake/RobotRaconteur" ) vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/robotraconteur/usage ================================================ The package robotraconteur is compatible with built-in CMake targets: find_package(RobotRaconteur REQUIRED) target_link_libraries(main PRIVATE RobotRaconteurCore) ================================================ FILE: ports/robotraconteur/vcpkg.json ================================================ { "name": "robotraconteur", "version-semver": "1.2.7", "description": "The Robot Raconteur communication framework core library", "homepage": "https://www.robotraconteur.com", "license": "Apache-2.0", "supports": "(windows & (x86 | x64)) | (linux & (x86 | x64 | arm64 | arm32)) | (osx & (x64 | arm64))", "dependencies": [ "boost-algorithm", "boost-array", "boost-asio", "boost-assign", "boost-atomic", "boost-bind", "boost-config", "boost-container", "boost-date-time", "boost-filesystem", "boost-foreach", "boost-format", "boost-function", "boost-interprocess", "boost-intrusive", "boost-lexical-cast", "boost-locale", "boost-program-options", "boost-random", "boost-range", "boost-regex", "boost-scope-exit", "boost-signals2", "boost-smart-ptr", "boost-thread", "boost-tuple", "boost-unordered", "boost-utility", "boost-uuid", { "name": "dbus", "platform": "linux" }, { "name": "libusb", "platform": "linux" }, { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/robotraconteur-companion/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 531f4c5..beff998 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ endif() find_package(RobotRaconteur 0.17.0 REQUIRED) find_package(yaml-cpp REQUIRED) -find_package(Eigen3 3.3 REQUIRED NO_MODULE) +find_package(Eigen3 3.3...5 REQUIRED NO_MODULE) find_package(OpenCV) if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/robdef/group1") ================================================ FILE: ports/robotraconteur-companion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO robotraconteur/robotraconteur_companion REF "v${VERSION}" SHA512 8bee3f71f6f1cedc6af9b30d32ed16515c2c117a4d43c3b6304c799fe90447056c5e447f573c96018c57112d9c174de422c16eba3a27b5c1343e88377d7e4117 HEAD_REF master PATCHES 0001-support-eigen3-5.patch ) vcpkg_from_github( OUT_SOURCE_PATH ROBDEF_SOURCE_PATH REPO robotraconteur/robotraconteur_standard_robdef REF group1-v1 SHA512 84724717e57c6e7ceefa957a8d94ee68db189e9a114564662d37b16a307735feea2a01c5622140118f537e6c084437d4bf11d0eb1e015b475fb3b636ed5009aa HEAD_REF master ) file(COPY ${ROBDEF_SOURCE_PATH}/group1 DESTINATION ${SOURCE_PATH}/robdef/) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME RobotRaconteurCompanion CONFIG_PATH "lib/cmake/RobotRaconteurCompanion" ) vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/robotraconteur-companion/usage ================================================ The package robotraconteur-companion is compatible with built-in CMake targets: find_package(RobotRaconteurCompanion REQUIRED) target_link_libraries(main PRIVATE RobotRaconteurCompanion) ================================================ FILE: ports/robotraconteur-companion/vcpkg.json ================================================ { "name": "robotraconteur-companion", "version-semver": "0.4.2", "port-version": 1, "homepage": "https://github.com/robotraconteur/robotraconteur_companion", "license": "Apache-2.0", "supports": "(windows & (x86 | x64)) | (linux & (x86 | x64 | arm64 | arm32)) | (osx & (x64 | arm64))", "dependencies": [ "eigen3", "opencv", "robotraconteur", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "yaml-cpp" ] } ================================================ FILE: ports/rocksdb/0001-fix-dependencies.patch ================================================ CMakeLists.txt | 33 +++++++++++++++------------------ cmake/RocksDBConfig.cmake.in | 11 ++++++++--- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cfc1b480..a18af5817 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ endif() include(CMakeDependentOption) -if(MSVC) +if(0) option(WITH_GFLAGS "build with GFlags" OFF) option(WITH_XPRESS "build with windows built in compression" OFF) option(ROCKSDB_SKIP_THIRDPARTY "skip thirdparty.inc" OFF) @@ -131,10 +131,7 @@ else() endif() if(WITH_SNAPPY) - find_package(Snappy CONFIG) - if(NOT Snappy_FOUND) - find_package(Snappy REQUIRED) - endif() + find_package(Snappy CONFIG REQUIRED) add_definitions(-DSNAPPY) list(APPEND THIRDPARTY_LIBS Snappy::snappy) endif() @@ -158,16 +155,19 @@ else() endif() if(WITH_LZ4) - find_package(lz4 REQUIRED) + find_package(lz4 CONFIG REQUIRED) add_definitions(-DLZ4) list(APPEND THIRDPARTY_LIBS lz4::lz4) endif() if(WITH_ZSTD) - find_package(zstd REQUIRED) + find_package(zstd CONFIG REQUIRED) add_definitions(-DZSTD) - include_directories(${ZSTD_INCLUDE_DIRS}) - list(APPEND THIRDPARTY_LIBS zstd::zstd) + if(TARGET zstd::libzstd_shared) + list(APPEND THIRDPARTY_LIBS zstd::libzstd_shared) + elseif(TARGET zstd::libzstd_static) + list(APPEND THIRDPARTY_LIBS zstd::libzstd_static) + endif() endif() endif() @@ -307,11 +307,10 @@ int main() { endif() if (WITH_LIBURING) - find_package(uring) - if (uring_FOUND) - add_definitions(-DROCKSDB_IOURING_PRESENT) - list(APPEND THIRDPARTY_LIBS uring::uring) - endif() + find_package(PkgConfig) + pkg_check_modules(liburing REQUIRED IMPORTED_TARGET GLOBAL liburing>=2.0) + add_definitions(-DROCKSDB_IOURING_PRESENT) + list(APPEND THIRDPARTY_LIBS PkgConfig::liburing) endif() # Reset the required flags @@ -377,9 +376,9 @@ endif() option(WITH_TBB "build with Threading Building Blocks (TBB)" OFF) if(WITH_TBB) - find_package(TBB REQUIRED) + find_package(TBB CONFIG REQUIRED) add_definitions(-DTBB) - list(APPEND THIRDPARTY_LIBS TBB::TBB) + list(APPEND THIRDPARTY_LIBS TBB::tbb) endif() # Stall notifications eat some performance from inserts @@ -1197,8 +1196,6 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS) endforeach() endforeach() - install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination}) - install( TARGETS ${ROCKSDB_STATIC_LIB} EXPORT RocksDBTargets diff --git a/cmake/RocksDBConfig.cmake.in b/cmake/RocksDBConfig.cmake.in index 0bd14be11..a420d8bfe 100644 --- a/cmake/RocksDBConfig.cmake.in +++ b/cmake/RocksDBConfig.cmake.in @@ -33,11 +33,11 @@ if(@WITH_BZ2@) endif() if(@WITH_LZ4@) - find_dependency(lz4) + find_dependency(lz4 CONFIG) endif() if(@WITH_ZSTD@) - find_dependency(zstd) + find_dependency(zstd CONFIG) endif() if(@WITH_NUMA@) @@ -45,7 +45,12 @@ if(@WITH_NUMA@) endif() if(@WITH_TBB@) - find_dependency(TBB) + find_dependency(TBB CONFIG) +endif() + +if(@WITH_LIBURING@) + find_dependency(PkgConfig) + pkg_check_modules(liburing REQUIRED IMPORTED_TARGET GLOBAL liburing>=2.0) endif() find_dependency(Threads) ================================================ FILE: ports/rocksdb/0002-fix-android.patch ================================================ env/io_posix.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/env/io_posix.h b/env/io_posix.h index 60788df9b..8ddfb3456 100644 --- a/env/io_posix.h +++ b/env/io_posix.h @@ -30,7 +30,7 @@ // For non linux platform, the following macros are used only as place // holder. #if !(defined OS_LINUX) && !(defined OS_FREEBSD) && !(defined CYGWIN) && \ - !(defined OS_AIX) && !(defined OS_ANDROID) + !(defined OS_AIX) && !(defined OS_ANDROID && __ANDROID_API__ >= 23) #define POSIX_FADV_NORMAL 0 /* [MC1] no further special treatment */ #define POSIX_FADV_RANDOM 1 /* [MC1] expect random page refs */ #define POSIX_FADV_SEQUENTIAL 2 /* [MC1] expect sequential page refs */ ================================================ FILE: ports/rocksdb/0003-include_cstdint.patch ================================================ diff --git a/db/blob/blob_file_meta.h b/db/blob/blob_file_meta.h index d7c8a12..d688825 100644 --- a/db/blob/blob_file_meta.h +++ b/db/blob/blob_file_meta.h @@ -10,6 +10,7 @@ #include #include #include +#include #include "rocksdb/rocksdb_namespace.h" ================================================ FILE: ports/rocksdb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/rocksdb REF "v${VERSION}" SHA512 73751e946e47deec7c3df8b77a22ddadb51434474ca0587c1deab36cb4ddfe00736f6402b747508debd36db0727989bc72330f96b3f1a54f09dcc72ecc03e83f HEAD_REF main PATCHES 0001-fix-dependencies.patch 0002-fix-android.patch # TODO: This patch should be deleted after following PR will be merged. https://github.com/facebook/rocksdb/pull/13573 0003-include_cstdint.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_MD_LIBRARY) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ROCKSDB_BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "liburing" WITH_LIBURING "snappy" WITH_SNAPPY "lz4" WITH_LZ4 "zlib" WITH_ZLIB "zstd" WITH_ZSTD "bzip2" WITH_BZ2 "numa" WITH_NUMA "tbb" WITH_TBB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWITH_GFLAGS=OFF -DWITH_TESTS=OFF -DWITH_BENCHMARK_TOOLS=OFF -DWITH_TOOLS=OFF -DUSE_RTTI=ON -DROCKSDB_INSTALL_ON_WINDOWS=ON -DFAIL_ON_WARNINGS=OFF -DWITH_MD_LIBRARY=${WITH_MD_LIBRARY} -DPORTABLE=1 # Minimum CPU arch to support, or 0 = current CPU, 1 = baseline CPU -DROCKSDB_BUILD_SHARED=${ROCKSDB_BUILD_SHARED} -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE ${FEATURE_OPTIONS} OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d -DWITH_RUNTIME_DEBUG=ON OPTIONS_RELEASE -DWITH_RUNTIME_DEBUG=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rocksdb) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(COMMENT [[ RocksDB is dual-licensed under both the GPLv2 (found in COPYING) and Apache 2.0 License (found in LICENSE.Apache). You may select, at your option, one of the above-listed licenses. ]] FILE_LIST "${SOURCE_PATH}/LICENSE.leveldb" "${SOURCE_PATH}/LICENSE.Apache" "${SOURCE_PATH}/COPYING" ) ================================================ FILE: ports/rocksdb/vcpkg.json ================================================ { "name": "rocksdb", "version": "10.10.1", "description": "A library that provides an embeddable, persistent key-value store for fast storage", "homepage": "https://github.com/facebook/rocksdb", "license": "GPL-2.0-only OR Apache-2.0", "supports": "!uwp & !(arm & !arm64 & android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "zlib" ], "features": { "bzip2": { "description": "build with bzip2", "dependencies": [ "bzip2" ] }, "liburing": { "description": "build with liburing", "supports": "linux", "dependencies": [ { "name": "liburing", "platform": "linux" } ] }, "lz4": { "description": "build with lz4", "dependencies": [ "lz4" ] }, "numa": { "description": "build with NUMA policy support", "supports": "linux", "dependencies": [ { "name": "numactl", "platform": "linux" } ] }, "snappy": { "description": "build with SNAPPY", "dependencies": [ { "name": "snappy", "features": [ "rtti" ] } ] }, "tbb": { "description": "build with Threading Building Blocks (TBB)", "dependencies": [ "tbb" ] }, "zlib": { "description": "build with zlib", "dependencies": [ "zlib" ] }, "zstd": { "description": "build with zstd", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/rp-ntuples/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO RPeschke/ntuples REF "v${VERSION}" SHA512 3c20387769f318fc92f154d30c88001d2e08a669b2b89a48262d1a53045b05a1256fb653bb1de9e84486a0dd0557e175e38414dfc54fc474db5941ac7ca44958 ) file(INSTALL "${SOURCE_PATH}/core/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/ntuples") file(WRITE "${CURRENT_PACKAGES_DIR}/share/ntuples/ntuples-config.cmake" [[if (TARGET ntuples::ntuples) return() endif() get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) add_library(ntuples INTERFACE) add_library(ntuples::ntuples ALIAS ntuples) target_include_directories(ntuples INTERFACE "${_IMPORT_PREFIX}/include") target_compile_features(ntuples INTERFACE cxx_std_20) ]]) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(WRITE "${CURRENT_PACKAGES_DIR}/share/ntuples/usage" [[rp-ntuples provides CMake targets: find_package(ntuples CONFIG REQUIRED) target_link_libraries(main PRIVATE ntuples::ntuples) ]]) ================================================ FILE: ports/rp-ntuples/vcpkg.json ================================================ { "name": "rp-ntuples", "version": "0.1.4", "description": "A C++ ntuple library for structured data storage and processing", "homepage": "https://github.com/RPeschke/ntuples", "license": "MIT", "dependencies": [ "vcpkg-cmake", "vcpkg-cmake-config" ] } ================================================ FILE: ports/rpclib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rpclib/rpclib REF v2.3.0 SHA512 9C65AE5D000CD66E39498667DC826A4E8A2C28EB4138CFFE3AA09D5DDC22575551B9FA6CE9D951343213B9583F947899CB18B58130AEAEE36DAB5881EA496272 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/rpclib") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/rpclib/vcpkg.json ================================================ { "name": "rpclib", "version-semver": "2.3.0", "port-version": 2, "description": "a RPC library for C++, providing both a client and server implementation. It is built using modern C++14.", "homepage": "https://github.com/rpclib/rpclib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rply/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.14) project ("rply") set (target_name ${CMAKE_PROJECT_NAME}) set (target_include_prefix "rply") option (BUILD_SHARED_LIBS "Create ${target_name} as a shared library" ON) set (CMAKE_DEBUG_POSTFIX "d" CACHE STRING "postfix for debug lib") include (GNUInstallDirs) file (GLOB target_headers "*.h") file (GLOB target_srcs "*.c" ) if (MSVC) set(sources_msvc "rply.def") endif() add_library (${target_name} ${target_srcs} ${target_headers} ${sources_msvc}) target_include_directories (${target_name} PUBLIC $ $ ) set_target_properties(${target_name} PROPERTIES C_STANDARD 11 ) if (MSVC) target_compile_definitions(${target_name} PRIVATE _CRT_SECURE_NO_WARNINGS) set_target_properties(${target_name} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY $ ) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${target_name}) endif() install (TARGETS ${target_name} EXPORT ${target_name}-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install (FILES ${target_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${target_name}" CONFIGURATIONS Release ) install (EXPORT ${target_name}-targets FILE ${target_name}-targets.cmake NAMESPACE ${target_name}:: DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}" ) configure_file(${target_name}-config.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake" @ONLY) install(FILES "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}" ) ================================================ FILE: ports/rply/fix-uninitialized-local-variable.patch ================================================ diff --git a/rply.c b/rply.c index c4105ef..7c7e72a 100644 --- a/rply.c +++ b/rply.c @@ -372,7 +372,7 @@ p_ply ply_open(const char *name, p_ply_error_cb error_cb, p_ply ply_open_from_file(FILE *fp, p_ply_error_cb error_cb, long idata, void *pdata) { - p_ply ply; + p_ply ply = NULL; if (error_cb == NULL) error_cb = ply_error_cb; assert(fp); if (!ply_type_check()) { @@ -475,7 +475,7 @@ p_ply ply_create(const char *name, e_ply_storage_mode storage_mode, p_ply ply_create_to_file(FILE *fp, e_ply_storage_mode storage_mode, p_ply_error_cb error_cb, long idata, void *pdata) { - p_ply ply; + p_ply ply = NULL; assert(fp && storage_mode <= PLY_DEFAULT); if (!ply_type_check()) { error_cb(ply, "Incompatible type system"); ================================================ FILE: ports/rply/portfile.cmake ================================================ set(VERSION 1.1.4) vcpkg_download_distfile(ARCHIVE URLS "http://w3.impa.br/~diego/software/rply/rply-${VERSION}.tar.gz" FILENAME "rply-${VERSION}.tar.gz" SHA512 be389780b8ca74658433f271682d91e89709ced588c4012c152ccf4014557692a1afd37b1bd5e567cedf9c412d42721eb0412ff3331f38717e527bd5d29c27a7 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES fix-uninitialized-local-variable.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/rply.def" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/rply-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rply/rply-config.cmake.in ================================================ get_filename_component(_RPLY_PREFIX_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) set (_TARGET_NAME "rply") # IMPORTED targets include("${_RPLY_PREFIX_DIR}/${_TARGET_NAME}-targets.cmake") set(_RPLY_PREFIX_DIR) set(_TARGET_NAME) ================================================ FILE: ports/rply/rply.def ================================================ EXPORTS ply_get_ply_user_data ply_open ply_read_header ply_set_read_cb ply_get_argument_element ply_get_argument_property ply_get_argument_user_data ply_get_argument_value ply_read ply_get_next_element ply_get_next_comment ply_get_next_obj_info ply_get_element_info ply_get_next_property ply_get_property_info ply_create ply_add_element ply_add_property ply_add_list_property ply_add_scalar_property ply_add_comment ply_add_obj_info ply_write_header ply_write ply_close ply_open_from_file ply_create_to_file ================================================ FILE: ports/rply/usage ================================================ The rply port provides an unofficial CMake target: find_package(rply REQUIRED) target_link_libraries(main PRIVATE rply::rply) ================================================ FILE: ports/rply/vcpkg.json ================================================ { "name": "rply", "version": "1.1.4", "port-version": 4, "description": "ANSI C Library for PLY file format input and output", "homepage": "http://w3.impa.br/~diego/software/rply", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rsasynccpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO renestein/Rstein.AsyncCpp REF 0.0.7 SHA512 b4cc1c68b6fc7bb8b418457ba18b834769abec07e44305955214f8918cc57f85c4258a0521ea55388fab3ec9724488e506d2b114c765b804991c38bf33133c55 HEAD_REF master ) if("lib-cl-win-legacy-await" IN_LIST FEATURES) if (VCPKG_CRT_LINKAGE MATCHES "static") set(RELEASE_CONFIGURATION "ReleaseMT_VSAWAIT") set(DEBUG_CONFIGURATION "DebugMT_VSAWAIT") else() set(RELEASE_CONFIGURATION "Release_VSAWAIT") set(DEBUG_CONFIGURATION "Debug_VSAWAIT") endif() else() if (VCPKG_CRT_LINKAGE MATCHES "static") set(RELEASE_CONFIGURATION "ReleaseMT") set(DEBUG_CONFIGURATION "DebugMT") else() set(RELEASE_CONFIGURATION "Release") set(DEBUG_CONFIGURATION "Debug") endif() endif() vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH RStein.AsyncCppLib.sln PLATFORM "${TRIPLET_SYSTEM_ARCH}" DEBUG_CONFIGURATION "${DEBUG_CONFIGURATION}" RELEASE_CONFIGURATION "${RELEASE_CONFIGURATION}" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(COPY "${SOURCE_PATH}/RStein.AsyncCpp/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/asynccpp" FILES_MATCHING PATTERN "*.h") ================================================ FILE: ports/rsasynccpp/vcpkg.json ================================================ { "name": "rsasynccpp", "version": "0.0.7", "port-version": 3, "maintainers": "Rene Stein ", "description": "Task Parallel Library (TPL)/dataflow/actors/async primitives for C++ based on C++ 20 coroutines.", "homepage": "https://github.com/renestein/Rstein.AsyncCpp", "supports": "windows & !arm", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ], "features": { "lib-cl-win-legacy-await": { "description": "Legacy coroutines (/await switch, std::experimental namespace)." } } } ================================================ FILE: ports/rsig/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rioki/rsig REF v0.2.0 SHA512 d64f442573768cbb8c6728d2930f69502d85c3b2471ecb767699fc90a66f160dbf25d5420b2ce67888fbaadfbad09698e22f3846b873405531b3f8c820d6a532 ) file(INSTALL ${SOURCE_PATH}/rsig/rsig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/rsig) file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file(${SOURCE_PATH}/LICENSE.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/rsig/usage ================================================ The package rsig is header only and can be used from CMake via: find_path(RSIG_INCLUDE_DIRS "rsig/rsig.h") target_include_directories(main PRIVATE ${RSIG_INCLUDE_DIRS}) ================================================ FILE: ports/rsig/vcpkg.json ================================================ { "name": "rsig", "version-semver": "0.2.0", "description": "rioki's signal library", "homepage": "https://github.com/rioki/rsig", "license": "MIT" } ================================================ FILE: ports/rsm-binary-io/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ryan-rsm-McKenzie/binary_io REF 2.0.6 SHA512 055290ee81e93aa8a8cda567eea848c76a830d78afb1c40bc3ba0e23b41bf80364fc8621ddaf8d48678acc4b5b7fd1ba2075e2bd23995655131954f580bdd4ae HEAD_REF main ) if(VCPKG_TARGET_IS_LINUX) message(WARNING "Build ${PORT} requires at least gcc 10.") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME binary_io CONFIG_PATH "lib/cmake/binary_io" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rsm-binary-io/vcpkg.json ================================================ { "name": "rsm-binary-io", "version-semver": "2.0.6", "description": "A binary i/o library for C++, without the agonizing pain", "homepage": "https://github.com/Ryan-rsm-McKenzie/binary_io", "documentation": "https://ryan-rsm-mckenzie.github.io/binary_io/", "license": "MIT", "supports": "!osx & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rsm-bsa/DirectXTexUint8Byte.patch ================================================ diff --git a/src/bsa/fo4.cpp b/src/bsa/fo4.cpp index 5484f13..2d9bbf3 100644 --- a/src/bsa/fo4.cpp +++ b/src/bsa/fo4.cpp @@ -677,7 +677,7 @@ namespace bsa::fo4 } a_out.write_bytes({ // - static_cast(blob.GetBufferPointer()), + reinterpret_cast(blob.GetBufferPointer()), blob.GetBufferSize() }); std::vector buffer; for (const auto& chunk : *this) { -- 2.47.0.windows.1 ================================================ FILE: ports/rsm-bsa/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ryan-rsm-McKenzie/bsa REF 4.1.0 SHA512 c488a4f7cffa59064baafd429cf118a8f8a7b5594a0bd49a0ed468572b37af2e7428a83ad83cc7b13b556744a444cb7b8a4591c7018e49cadb1c5d42ae780f51 HEAD_REF master PATCHES DirectXTexUint8Byte.patch ) if (VCPKG_TARGET_IS_LINUX) message(WARNING "Build ${PORT} requires at least gcc 10.") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xmem BSA_SUPPORT_XMEM ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME bsa CONFIG_PATH "lib/cmake/bsa" ) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rsm-bsa/vcpkg.json ================================================ { "name": "rsm-bsa", "version-semver": "4.1.0", "port-version": 1, "description": "A C++ library for working with the Bethesda archive file format", "homepage": "https://github.com/Ryan-rsm-McKenzie/bsa", "documentation": "https://ryan-rsm-mckenzie.github.io/bsa/", "license": "MIT", "supports": "!x86 & !osx & !uwp", "dependencies": [ "directxtex", "lz4", "rsm-binary-io", "rsm-mmio", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "xmem": { "description": "Compression support for the xmem codec", "supports": "windows", "dependencies": [ "reproc" ] } } } ================================================ FILE: ports/rsm-mmio/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Ryan-rsm-McKenzie/mmio REF 2.0.0 SHA512 a1b0d586c12708233c0379b16a9f60bab27f12cb414736ee245e37888622ac352e834a58808127087788f930311125e2b26e6dad156c72e68143f95910cda48f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "mmio" CONFIG_PATH "lib/cmake/mmio" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rsm-mmio/vcpkg.json ================================================ { "name": "rsm-mmio", "version-semver": "2.0.0", "description": "A cross-platform memory-mapped io library for C++", "homepage": "https://github.com/Ryan-rsm-McKenzie/mmio", "license": "MIT", "supports": "!osx & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rsocket/fix-c2665.patch ================================================ diff --git a/rsocket/RSocketServer.cpp b/rsocket/RSocketServer.cpp index 3a9f6b2..e749eb1 100644 --- a/rsocket/RSocketServer.cpp +++ b/rsocket/RSocketServer.cpp @@ -30,7 +30,7 @@ RSocketServer::RSocketServer( std::shared_ptr stats) : duplexConnectionAcceptor_(std::move(connectionAcceptor)), setupResumeAcceptors_([] { - return new rsocket::SetupResumeAcceptor{ + return rsocket::SetupResumeAcceptor{ folly::EventBaseManager::get()->getExistingEventBase()}; }), connectionSet_(std::make_unique()), ================================================ FILE: ports/rsocket/fix-cmake-config.patch ================================================ diff --git a/cmake/rsocket-config.cmake.in b/cmake/rsocket-config.cmake.in index d5579a85..ea12752a 100644 --- a/cmake/rsocket-config.cmake.in +++ b/cmake/rsocket-config.cmake.in @@ -4,7 +4,7 @@ @PACKAGE_INIT@ if(NOT TARGET rsocket::ReactiveSocket) - include("${PACKAGE_PREFIX_DIR}/lib/cmake/rsocket/rsocket-exports.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/rsocket-exports.cmake") endif() if (NOT rsocket_FIND_QUIETLY) diff --git a/yarpl/cmake/yarpl-config.cmake.in b/yarpl/cmake/yarpl-config.cmake.in index d557b213..1b83fffc 100644 --- a/yarpl/cmake/yarpl-config.cmake.in +++ b/yarpl/cmake/yarpl-config.cmake.in @@ -4,7 +4,7 @@ @PACKAGE_INIT@ if(NOT TARGET yarpl::yarpl) - include("${PACKAGE_PREFIX_DIR}/lib/cmake/yarpl/yarpl-exports.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/yarpl-exports.cmake") endif() set(YARPL_LIBRARIES yarpl::yarpl) ================================================ FILE: ports/rsocket/fix-find-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c736ccb..0fa98c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,7 +129,7 @@ option(BUILD_BENCHMARKS "Build benchmarks" ON) option(BUILD_EXAMPLES "Build examples" ON) option(BUILD_TESTS "Build tests" ON) -enable_testing() +#enable_testing() include(ExternalProject) include(CTest) @@ -177,7 +177,9 @@ endif() if("${BUILD_TYPE_LOWER}" MATCHES "debug") message("debug mode was set") + if (NOT WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unreachable-code") + endif() else() message("release mode was set") endif() @@ -186,18 +188,22 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") set(TEST_CXX_FLAGS ${TEST_CXX_FLAGS} -Wno-inconsistent-missing-override) endif() -find_library(DOUBLE-CONVERSION double-conversion) +find_package(double-conversion CONFIG REQUIRED) find_package(OpenSSL REQUIRED) -find_package(Gflags REQUIRED) +find_package(gflags CONFIG REQUIRED) +set(gflags gflags::gflags) # find glog::glog to satisfy the folly dep. -find_package(Glog REQUIRED) +find_package(glog CONFIG REQUIRED) +find_package(folly CONFIG REQUIRED) +find_package(ZLIB REQUIRED) find_package(fmt CONFIG REQUIRED) -include_directories(SYSTEM ${OPENSSL_INCLUDE_DIR}) + +# include_directories(SYSTEM ${GFLAGS_INCLUDE_DIR}) @@ -332,7 +338,7 @@ target_compile_options( ReactiveSocket PRIVATE ${EXTRA_CXX_FLAGS}) -enable_testing() +#enable_testing() install(TARGETS ReactiveSocket EXPORT rsocket-exports DESTINATION lib) install(DIRECTORY rsocket DESTINATION include FILES_MATCHING PATTERN "*.h") @@ -475,7 +481,7 @@ if(BUILD_TESTS) ${GMOCK_LIBS} # This also needs the preceding `add_dependencies` glog::glog gflags - ${DOUBLE-CONVERSION}) + double-conversion::double-conversion) # Download the latest TCK drivers JAR. set(TCK_DRIVERS_JAR rsocket-tck-drivers-0.9.10.jar) diff --git a/yarpl/CMakeLists.txt b/yarpl/CMakeLists.txt index f4159b8..65974e3 100644 --- a/yarpl/CMakeLists.txt +++ b/yarpl/CMakeLists.txt @@ -10,7 +10,6 @@ set(CMAKE_MODULE_PATH ) add_definitions(-std=c++14) -option(BUILD_TESTS "BUILD_TESTS" ON) # Generate compilation database set(CMAKE_EXPORT_COMPILE_COMMANDS 1) @@ -53,8 +52,8 @@ endif() # Using NDEBUG in Release builds. set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG") -find_package(Gflags REQUIRED) -find_package(Glog REQUIRED) +#find_package(Gflags REQUIRED) +#find_package(Glog REQUIRED) find_package(fmt CONFIG REQUIRED) IF(NOT FOLLY_VERSION) @@ -125,7 +124,7 @@ target_link_libraries( yarpl PUBLIC Folly::folly glog::glog gflags INTERFACE ${EXTRA_LINK_FLAGS}) - +target_compile_definitions(yarpl PUBLIC GLOG_USE_GLOG_EXPORT) include(CMakePackageConfigHelpers) configure_package_config_file( cmake/yarpl-config.cmake.in ================================================ FILE: ports/rsocket/fix-folly.patch ================================================ diff --git a/rsocket/transports/tcp/TcpConnectionAcceptor.cpp b/rsocket/transports/tcp/TcpConnectionAcceptor.cpp index 12ac289f..c37f621a 100644 --- a/rsocket/transports/tcp/TcpConnectionAcceptor.cpp +++ b/rsocket/transports/tcp/TcpConnectionAcceptor.cpp @@ -31,7 +31,7 @@ class TcpConnectionAcceptor::SocketCallback void connectionAccepted( folly::NetworkSocket fdNetworkSocket, - const folly::SocketAddress& address) noexcept override { + const folly::SocketAddress& address, AcceptInfo info) noexcept override { int fd = fdNetworkSocket.toFd(); VLOG(2) << "Accepting TCP connection from " << address << " on FD " << fd; ================================================ FILE: ports/rsocket/fix-rsockserver-build-error.patch ================================================ diff --git a/rsocket/RSocketServer.cpp b/rsocket/RSocketServer.cpp index 1e20281..3a9f6b2 100644 --- a/rsocket/RSocketServer.cpp +++ b/rsocket/RSocketServer.cpp @@ -125,7 +125,7 @@ void RSocketServer::acceptConnection( weakConSet = std::weak_ptr(connectionSet_), scheduledResponder = useScheduledResponder_]( std::unique_ptr conn, - SetupParameters params) mutable { + SetupParameters params) mutable noexcept{ if (auto connectionSet = weakConSet.lock()) { RSocketServer::onRSocketSetup( serviceHandler, @@ -135,12 +135,15 @@ void RSocketServer::acceptConnection( std::move(params)); } }, - std::bind( - &RSocketServer::onRSocketResume, - this, - serviceHandler, - std::placeholders::_1, - std::placeholders::_2)); + [this, serviceHandler=serviceHandler]( + std::unique_ptr connection, + ResumeParameters resumeParameters) mutable noexcept{ + this->onRSocketResume( + serviceHandler, + std::move(connection), + resumeParameters + ); + }); } void RSocketServer::onRSocketSetup( @@ -206,7 +209,7 @@ void RSocketServer::onRSocketSetup( void RSocketServer::onRSocketResume( std::shared_ptr serviceHandler, std::unique_ptr connection, - ResumeParameters resumeParams) { + ResumeParameters resumeParams) noexcept{ auto result = serviceHandler->onResume(resumeParams.token); if (result.hasError()) { stats_->resumeFailedNoState(); diff --git a/rsocket/RSocketServer.h b/rsocket/RSocketServer.h index 39dae66..e2346ef 100644 --- a/rsocket/RSocketServer.h +++ b/rsocket/RSocketServer.h @@ -118,7 +118,7 @@ class RSocketServer { void onRSocketResume( std::shared_ptr serviceHandler, std::unique_ptr connection, - rsocket::ResumeParameters setupPayload); + rsocket::ResumeParameters setupPayload)noexcept; const std::unique_ptr duplexConnectionAcceptor_; bool started{false}; diff --git a/yarpl/flowable/AsyncGeneratorShim.h b/yarpl/flowable/AsyncGeneratorShim.h index 72d212c..79a09f1 100644 --- a/yarpl/flowable/AsyncGeneratorShim.h +++ b/yarpl/flowable/AsyncGeneratorShim.h @@ -96,7 +96,7 @@ class AsyncGeneratorShim { value.emplace(std::move(*item)); } } catch (const std::exception& ex) { - value.emplaceException(std::current_exception(), ex); + value.emplaceException(std::current_exception()); } catch (...) { value.emplaceException(std::current_exception()); } diff --git a/yarpl/flowable/Flowable.h b/yarpl/flowable/Flowable.h index 9dff78b..bccd70d 100644 --- a/yarpl/flowable/Flowable.h +++ b/yarpl/flowable/Flowable.h @@ -494,7 +494,7 @@ std::shared_ptr> Flowable::fromGenerator( } } catch (const std::exception& ex) { subscriber.onError( - folly::exception_wrapper(std::current_exception(), ex)); + folly::exception_wrapper(std::current_exception())); } catch (...) { subscriber.onError(std::runtime_error( "Flowable::fromGenerator() threw from Subscriber:onNext()")); diff --git a/yarpl/flowable/FlowableOperator.h b/yarpl/flowable/FlowableOperator.h index 314ba7f..fe63504 100644 --- a/yarpl/flowable/FlowableOperator.h +++ b/yarpl/flowable/FlowableOperator.h @@ -178,7 +178,7 @@ class MapOperator : public FlowableOperator { this->subscriberOnNext(flowable->function_(std::move(value))); } } catch (const std::exception& exn) { - folly::exception_wrapper ew{std::current_exception(), exn}; + folly::exception_wrapper ew{std::current_exception()}; this->terminateErr(std::move(ew)); } } @@ -190,7 +190,7 @@ class MapOperator : public FlowableOperator { } } catch (const std::exception& exn) { this->terminateErr( - folly::exception_wrapper{std::current_exception(), exn}); + folly::exception_wrapper{std::current_exception()}); } } @@ -570,7 +570,7 @@ class FlatMapOperator : public FlowableOperator { try { mappedStream = flowable_->function_(std::move(value)); } catch (const std::exception& exn) { - folly::exception_wrapper ew{std::current_exception(), exn}; + folly::exception_wrapper ew{std::current_exception()}; { std::lock_guard g(onErrorExGuard_); onErrorEx_ = ew; diff --git a/yarpl/flowable/Subscriber.h b/yarpl/flowable/Subscriber.h index d1dc3b5..582f9c4 100644 --- a/yarpl/flowable/Subscriber.h +++ b/yarpl/flowable/Subscriber.h @@ -301,7 +301,7 @@ class Base : public LambdaSubscriber { next_(std::move(value)); } catch (const std::exception& exn) { this->cancel(); - auto ew = folly::exception_wrapper{std::current_exception(), exn}; + auto ew = folly::exception_wrapper{std::current_exception()}; LOG(ERROR) << "'next' method should not throw: " << ew.what(); onErrorImpl(ew); return; diff --git a/yarpl/observable/ObservableOperator.h b/yarpl/observable/ObservableOperator.h index 451c6bd..0e60b48 100644 --- a/yarpl/observable/ObservableOperator.h +++ b/yarpl/observable/ObservableOperator.h @@ -196,7 +196,7 @@ class MapOperator : public ObservableOperator { try { this->observerOnNext(observable_->function_(std::move(value))); } catch (const std::exception& exn) { - folly::exception_wrapper ew{std::current_exception(), exn}; + folly::exception_wrapper ew{std::current_exception()}; this->terminateErr(std::move(ew)); } } diff --git a/yarpl/single/SingleOperator.h b/yarpl/single/SingleOperator.h index 0b3e739..4defd64 100644 --- a/yarpl/single/SingleOperator.h +++ b/yarpl/single/SingleOperator.h @@ -197,7 +197,7 @@ class MapOperator : public SingleOperator { auto map_operator = this->getOperator(); this->observerOnSuccess(map_operator->function_(std::move(value))); } catch (const std::exception& exn) { - folly::exception_wrapper ew{std::current_exception(), exn}; + folly::exception_wrapper ew{std::current_exception()}; this->observerOnError(std::move(ew)); } } ================================================ FILE: ports/rsocket/fix-yarpl.patch ================================================ diff --git a/rsocket/transports/tcp/TcpConnectionFactory.cpp b/rsocket/transports/tcp/TcpConnectionFactory.cpp index b970cd7..cba4405 100644 --- a/rsocket/transports/tcp/TcpConnectionFactory.cpp +++ b/rsocket/transports/tcp/TcpConnectionFactory.cpp @@ -41,7 +41,7 @@ class ConnectCallback : public folly::AsyncSocket::ConnectCallback { DCHECK(evb); if (sslContext) { -#if !FOLLY_OPENSSL_HAS_ALPN +#if 0 // setAdvertisedNextProtocols() is unavailable #error ALPN is required for rsockets. \ Your version of OpenSSL is likely too old. diff --git a/yarpl/CMakeLists.txt b/yarpl/CMakeLists.txt index 65974e3..9392738 100644 --- a/yarpl/CMakeLists.txt +++ b/yarpl/CMakeLists.txt @@ -9,14 +9,14 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ) -add_definitions(-std=c++14) +add_definitions(-std=c++17) # Generate compilation database set(CMAKE_EXPORT_COMPILE_COMMANDS 1) # Common configuration for all build modes. if (NOT MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-weak-vtables -Wno-padded") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer") diff --git a/yarpl/flowable/Flowable_FromObservable.h b/yarpl/flowable/Flowable_FromObservable.h index e191ad7..ce8565c 100644 --- a/yarpl/flowable/Flowable_FromObservable.h +++ b/yarpl/flowable/Flowable_FromObservable.h @@ -180,7 +180,7 @@ class BufferBackpressureStrategy : public BackpressureStrategyBase { static constexpr size_t kNoLimit = 0; explicit BufferBackpressureStrategy(size_t bufferSizeLimit = kNoLimit) - : buffer_(folly::in_place, bufferSizeLimit) {} + : buffer_(std::in_place, bufferSizeLimit) {} private: using Super = BackpressureStrategyBase; ================================================ FILE: ports/rsocket/portfile.cmake ================================================ # yarpl only support static build in Windows if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rsocket/rsocket-cpp REF 45ed594ebd6701f40795c31ec922d784ec7fc921 SHA512 51871253524b93a9622fa0f562019605b6034e4089cd955810050b4d43ff020813d632ea1e91bcaca0a8659638908c51df6eb686ba4f6583d4c15c04d5dc35bd HEAD_REF master PATCHES fix-cmake-config.patch fix-find-dependencies.patch use-cpp-17.patch fix-folly.patch fix-rsockserver-build-error.patch fix-yarpl.patch fix-c2665.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME yarpl CONFIG_PATH lib/cmake/yarpl DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rsocket) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/yarpl/perf" "${CURRENT_PACKAGES_DIR}/include/yarpl/cmake" "${CURRENT_PACKAGES_DIR}/include/yarpl/test" "${CURRENT_PACKAGES_DIR}/include/rsocket/examples" "${CURRENT_PACKAGES_DIR}/include/rsocket/test" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rsocket/use-cpp-17.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 22570b5..15a750b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,7 +154,7 @@ if(BUILD_TESTS) endif() -set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD 17) include(CheckCXXCompilerFlag) ================================================ FILE: ports/rsocket/vcpkg.json ================================================ { "name": "rsocket", "version-string": "2021.08.30.00", "port-version": 5, "description": "C++ implementation of RSocket http://rsocket.io", "homepage": "https://github.com/rsocket/rsocket-cpp", "dependencies": [ "boost-context", "boost-filesystem", "boost-program-options", "boost-regex", "boost-system", "boost-thread", "double-conversion", "fmt", "folly", "gflags", "glog", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/rtabmap/0001-cmakelists-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1faa317b..2157fffb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,7 +264,7 @@ endif() # OpenMP ("-fopenmp" should be added for flann included in PCL) # the gcc-4.2.1 coming with MacOS X is not compatible with the OpenMP pragmas we use, so disabling OpenMP for it -if(((NOT APPLE) OR (NOT CMAKE_COMPILER_IS_GNUCXX) OR (GCC_VERSION VERSION_GREATER 4.2.1) OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")) AND WITH_OPENMP) +if(WITH_OPENMP) find_package(OpenMP COMPONENTS C CXX) endif() if(OPENMP_FOUND) @@ -633,10 +633,12 @@ IF(WITH_REALSENSE) ENDIF(WITH_REALSENSE) IF(WITH_REALSENSE2) - IF(WIN32) + IF(0) FIND_PACKAGE(RealSense2 QUIET) ELSE() FIND_PACKAGE(realsense2 QUIET) + set(RealSense2_LIBRARIES realsense2::realsense2) + set(realsense2_LIBRARIES realsense2::realsense2) ENDIF() IF(realsense2_FOUND) MESSAGE(STATUS "Found RealSense2: ${realsense2_INCLUDE_DIRS}") @@ -977,14 +979,14 @@ IF(NOT realsense2_FOUND) SET(CONF_WITH_REALSENSE2 0) ELSE() SET(CONF_WITH_REALSENSE2 1) - IF(WIN32) + IF(0) install( FILES "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/FindRealSense2.cmake" DESTINATION ${INSTALL_CMAKE_DIR}/Modules/. COMPONENT devel ) - ENDIF(WIN32) + ENDIF(0) ENDIF() IF(NOT mynteye_FOUND) SET(MYNTEYE "//") diff --git a/utilite/resource_generator/CMakeLists.txt b/utilite/resource_generator/CMakeLists.txt index 82f12535..f1a1c8aa 100644 --- a/utilite/resource_generator/CMakeLists.txt +++ b/utilite/resource_generator/CMakeLists.txt @@ -1,5 +1,5 @@ -if (CMAKE_CROSSCOMPILING OR ANDROID OR IOS) +if (CMAKE_CROSSCOMPILING OR ANDROID OR IOS OR RTABMAP_RES_TOOL) # See this page about tools being required in the build: # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/CrossCompiling#using-executables-in-the-build-created-during-the-build ================================================ FILE: ports/rtabmap/0002-fix-link.patch ================================================ --- a/corelib/src/global_map/OctoMap.cpp +++ b/corelib/src/global_map/OctoMap.cpp @@ -278,10 +278,8 @@ RtabmapColorOcTree::StaticMemberInitializer::StaticMemberInitializer() { AbstractOcTree::registerTreeType(tree); } -#ifndef _WIN32 // On Windows, the app freezes on start if the following is defined RtabmapColorOcTree::StaticMemberInitializer RtabmapColorOcTree::RtabmapColorOcTreeMemberInit; -#endif ////////////////////////////////////// ================================================ FILE: ports/rtabmap/0003-multi-definition.patch ================================================ --- a/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h +++ b/corelib/include/rtabmap/core/stereo/stereoRectifyFisheye.h @@ -39,6 +39,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #if CV_MAJOR_VERSION >= 4 #include +#include + +namespace { + // Opencv4 doesn't expose those functions below anymore, we should recopy all of them! int cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian CV_DEFAULT(0)) { @@ -915,6 +919,8 @@ void cvConvertPointsHomogeneous( const CvMat* _src, CvMat* _dst ) } } +} // namespace + #endif // OpenCV4 #endif // OpenCV3 @@ -923,9 +929,11 @@ namespace rtabmap { void +RTABMAP_CORE_EXPORT icvGetRectanglesFisheye( const CvMat* cameraMatrix, const CvMat* distCoeffs, const CvMat* R, const CvMat* newCameraMatrix, CvSize imgSize, cv::Rect_& inner, cv::Rect_& outer ) +#ifdef RTABMAP_STEREORECTIFIYFISHEYE_IMPLEMENTATION { const int N = 9; int x, y, k; @@ -967,12 +975,17 @@ icvGetRectanglesFisheye( const CvMat* cameraMatrix, const CvMat* distCoeffs, inner = cv::Rect_(iX0, iY0, iX1-iX0, iY1-iY0); outer = cv::Rect_(oX0, oY0, oX1-oX0, oY1-oY0); } +#else +; +#endif -void cvStereoRectifyFisheye( const CvMat* _cameraMatrix1, const CvMat* _cameraMatrix2, +void RTABMAP_CORE_EXPORT + cvStereoRectifyFisheye( const CvMat* _cameraMatrix1, const CvMat* _cameraMatrix2, const CvMat* _distCoeffs1, const CvMat* _distCoeffs2, CvSize imageSize, const CvMat* matR, const CvMat* matT, CvMat* _R1, CvMat* _R2, CvMat* _P1, CvMat* _P2, CvMat* matQ, int flags, double alpha, CvSize newImgSize ) +#ifdef RTABMAP_STEREORECTIFIYFISHEYE_IMPLEMENTATION { double _om[3], _t[3] = {0}, _uu[3]={0,0,0}, _r_r[3][3], _pp[3][4]; double _ww[3], _wr[3][3], _z[3] = {0,0,0}, _ri[3][3], _w3[3]; @@ -1177,19 +1190,25 @@ void cvStereoRectifyFisheye( const CvMat* _cameraMatrix1, const CvMat* _cameraMa cvConvert( &Q, matQ ); } } +#else +; +#endif + -void stereoRectifyFisheye( cv::InputArray _cameraMatrix1, cv::InputArray _distCoeffs1, +void RTABMAP_CORE_EXPORT + stereoRectifyFisheye( cv::InputArray _cameraMatrix1, cv::InputArray _distCoeffs1, cv::InputArray _cameraMatrix2, cv::InputArray _distCoeffs2, cv::Size imageSize, cv::InputArray _Rmat, cv::InputArray _Tmat, cv::OutputArray _Rmat1, cv::OutputArray _Rmat2, cv::OutputArray _Pmat1, cv::OutputArray _Pmat2, cv::OutputArray _Qmat, int flags, double alpha, cv::Size newImageSize) +#ifdef RTABMAP_STEREORECTIFIYFISHEYE_IMPLEMENTATION { cv::Mat cameraMatrix1 = _cameraMatrix1.getMat(), cameraMatrix2 = _cameraMatrix2.getMat(); cv::Mat distCoeffs1 = _distCoeffs1.getMat(), distCoeffs2 = _distCoeffs2.getMat(); cv::Mat Rmat = _Rmat.getMat(), Tmat = _Tmat.getMat(); - + #if CV_MAJOR_VERSION > 3 || (CV_MAJOR_VERSION >= 3 && (CV_MINOR_VERSION>4 || (CV_MINOR_VERSION>=4 && CV_SUBMINOR_VERSION>=4))) CvMat c_cameraMatrix1 = cvMat(cameraMatrix1); CvMat c_cameraMatrix2 = cvMat(cameraMatrix2); @@ -1238,6 +1257,9 @@ void stereoRectifyFisheye( cv::InputArray _cameraMatrix1, cv::InputArray _distCo CvSize(newImageSize)); #endif } +#else +; +#endif } --- a/corelib/src/StereoCameraModel.cpp +++ b/corelib/src/StereoCameraModel.cpp @@ -34,6 +34,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include #if CV_MAJOR_VERSION > 2 or (CV_MAJOR_VERSION == 2 and (CV_MINOR_VERSION >4 or (CV_MINOR_VERSION == 4 and CV_SUBMINOR_VERSION >=10))) +#define RTABMAP_STEREORECTIFIYFISHEYE_IMPLEMENTATION #include #endif ================================================ FILE: ports/rtabmap/0004-remove-apple-sys-path.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,8 +119,6 @@ endif() #Other paths... IF(APPLE) # For Mac ports - SET(CMAKE_INCLUDE_PATH "/opt/local/include;${CMAKE_INCLUDE_PATH}") - SET(CMAKE_LIBRARY_PATH "/opt/local/lib;${CMAKE_LIBRARY_PATH}") ENDIF() ####### Build libraries as shared or static ####### ================================================ FILE: ports/rtabmap/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO introlab/rtabmap REF ${VERSION} SHA512 9bcd0f359e0ee8060cf7088761544a3f7d38aadb37df820958f0811aa7b8edbfaf00f00d9472a8bf46261d4e5d868f9c10785263aaabaf374b6e5aa5237d70b0 HEAD_REF master PATCHES 0001-cmakelists-fixes.patch 0002-fix-link.patch 0003-multi-definition.patch 0004-remove-apple-sys-path.patch ) # Will use vcpkg to find these packages file(REMOVE_RECURSE "${SOURCE_PATH}/cmake_modules/FindEigen3.cmake" "${SOURCE_PATH}/cmake_modules/FindRealSense2.cmake" "${SOURCE_PATH}/src/sqlite3" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gui WITH_QT gui VCPKG_LOCK_FIND_PACKAGE_Qt6 gui VCPKG_LOCK_FIND_PACKAGE_VTK k4w2 WITH_K4W2 k4w2 VCPKG_LOCK_FIND_PACKAGE_KinectSDK2 octomap WITH_OCTOMAP octomap VCPKG_LOCK_FIND_PACKAGE_octomap openmp WITH_OPENMP openmp VCPKG_LOCK_FIND_PACKAGE_OpenMP openni2 WITH_OPENNI2 openni2 VCPKG_LOCK_FIND_PACKAGE_OpenNI2 realsense2 WITH_REALSENSE2 realsense2 VCPKG_LOCK_FIND_PACKAGE_realsense2 tools BUILD_APP tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS_DEBUG -DBUILD_TOOLS=OFF -DBUILD_APP=OFF OPTIONS ${FEATURE_OPTIONS} "-DRTABMAP_RES_TOOL=${CURRENT_HOST_INSTALLED_DIR}/tools/rtabmap-res-tool/rtabmap-res_tool${VCPKG_TARGET_EXECUTABLE_SUFFIX}" -DRTABMAP_QT_VERSION=6 -DBUILD_AS_BUNDLE=OFF -DBUILD_EXAMPLES=OFF -DVCPKG_LOCK_FIND_PACKAGE_SQLite3=ON ## always on feats -DWITH_G2O=ON -DVCPKG_LOCK_FIND_PACKAGE_g2o=ON -DWITH_CERES=ON -DWITH_ORB_OCTREE=ON # GPLv3 ## always off feats -DWITH_ALICE_VISION=OFF -DWITH_ARCore=OFF -DWITH_ARENGINE=OFF -DWITH_CCCORELIB=OFF -DWITH_CPUTSDF=OFF -DWITH_CVSBA=OFF -DWITH_DC1394=OFF -DWITH_DEPTHAI=OFF -DWITH_DVO=OFF -DWITH_FASTCV=OFF -DWITH_FLOAM=OFF -DWITH_FLYCAPTURE2=OFF -DWITH_FOVIS=OFF -DWITH_FREENECT=OFF -DWITH_FREENECT2=OFF -DWITH_GRIDMAP=OFF -DWITH_GTSAM=OFF -DWITH_K4A=OFF -DWITH_LOAM=OFF -DWITH_MADGWICK=OFF -DWITH_MRPT=OFF -DWITH_MSCKF_VIO=OFF -DWITH_MYNTEYE=OFF -DWITH_OKVIS=OFF -DWITH_OPEN3D=OFF -DWITH_OPENCHISEL=OFF -DWITH_OPENGV=OFF -DWITH_OPENVINS=OFF -DWITH_ORB_SLAM=OFF -DWITH_PDAL=OFF -DWITH_POINTMATCHER=OFF -DWITH_PYTHON=OFF -DWITH_PYTHON_THREADING=OFF -DWITH_REALSENSE=OFF -DWITH_REALSENSE_SLAM=OFF -DWITH_TANGO=OFF -DWITH_TORCH=OFF -DWITH_VERTIGO=OFF -DWITH_VINS=OFF -DWITH_VISO2=OFF -DWITH_ZED=OFF -DWITH_ZEDOC=OFF MAYBE_UNUSED_VARIABLES VCPKG_LOCK_FIND_PACKAGE_Qt6 VCPKG_LOCK_FIND_PACKAGE_VTK VCPKG_LOCK_FIND_PACKAGE_KinectSDK2 VCPKG_LOCK_FIND_PACKAGE_octomap VCPKG_LOCK_FIND_PACKAGE_OpenMP VCPKG_LOCK_FIND_PACKAGE_OpenNI2 VCPKG_LOCK_FIND_PACKAGE_realsense2 VCPKG_LOCK_FIND_PACKAGE_RealSense2 # Android WITH_ARCore WITH_ARENGINE WITH_TANGO ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/rtabmap-0.23) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES rtabmap-camera rtabmap-console rtabmap-detectMoreLoopClosures rtabmap-export rtabmap-extractObject rtabmap-info rtabmap-kitti_dataset rtabmap-recovery rtabmap-report rtabmap-reprocess rtabmap-rgbd_dataset rtabmap-euroc_dataset rtabmap-cleanupLocalGrids rtabmap-globalBundleAdjustment AUTO_CLEAN ) if("gui" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES rtabmap rtabmap-calibration rtabmap-databaseViewer rtabmap-dataRecorder rtabmap-odometryViewer rtabmap-rgbd_camera rtabmap-lidar_viewer AUTO_CLEAN ) file(COPY "${CURRENT_INSTALLED_DIR}/tools/Qt6/bin/qt.conf" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/qt.conf" "./../../../" "./../../") endif() endif() vcpkg_install_copyright( COMMENT [[ The RTAB-Map main license is BSD-3-Clause, but some parts of the source code are under other licenses possibly including GPL-3.0-only. ]] FILE_LIST "${SOURCE_PATH}/LICENSE" ) ================================================ FILE: ports/rtabmap/vcpkg.json ================================================ { "name": "rtabmap", "version": "0.23.2", "description": "Real-Time Appearance-Based Mapping", "homepage": "https://introlab.github.io/rtabmap/", "license": null, "dependencies": [ "boost-crc", "ceres", "g2o", { "name": "opencv", "default-features": false, "features": [ "fs", "intrinsics", "thread" ] }, { "name": "pcl", "default-features": false }, { "name": "rtabmap-res-tool", "host": true }, "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "gui", "opencv-contrib", "opencv-nonfree", { "name": "openmp", "platform": "!osx" } ], "features": { "gui": { "description": "Build RTAB-Map with GUI support (Qt)", "dependencies": [ { "name": "pcl", "default-features": false, "features": [ "qt", "visualization" ] }, { "name": "qtbase", "default-features": false, "features": [ "gui", "opengl", "widgets" ] }, { "name": "vtk", "default-features": false } ] }, "k4w2": { "description": "Build RTAB-Map with Kinect For Windows SDK 2.0 camera driver", "dependencies": [ "kinectsdk2" ] }, "octomap": { "description": "Build RTAB-Map with OctoMap support", "dependencies": [ "octomap" ] }, "opencv-contrib": { "description": "Use OpenCV with contrib modules (e.g., xfeatures2d, aruco)", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "contrib", "fs", "intrinsics", "thread" ] } ] }, "opencv-cuda": { "description": "Use OpenCV with CUDA (accelerated SIFT ad SURF GPU options)", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "cuda", "fs", "intrinsics", "thread" ] } ] }, "opencv-nonfree": { "description": "Use OpenCV with nonfree module (surf feature)", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "fs", "intrinsics", "nonfree", "thread" ] } ] }, "openmp": { "description": "Enable OpenMP parallel execution" }, "openni2": { "description": "Build RTAB-Map with OpenNI2 camera driver", "dependencies": [ "kinectsdk1", "openni2" ] }, "realsense2": { "description": "Build RTAB-Map with RealSense2 camera driver", "dependencies": [ { "name": "realsense2", "default-features": false } ] }, "tools": { "description": "Build RTAB-Map's tools", "dependencies": [ "yaml-cpp" ] } } } ================================================ FILE: ports/rtabmap-res-tool/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(rtabmap) set(PROJECT_PREFIX rtabmap) include(GenerateExportHeader) include(GNUInstallDirs) list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules") add_subdirectory(utilite) ================================================ FILE: ports/rtabmap-res-tool/portfile.cmake ================================================ # Only the standalone tool set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(VCPKG_BUILD_TYPE release) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO introlab/rtabmap REF ${VERSION} SHA512 9bcd0f359e0ee8060cf7088761544a3f7d38aadb37df820958f0811aa7b8edbfaf00f00d9472a8bf46261d4e5d868f9c10785263aaabaf374b6e5aa5237d70b0 HEAD_REF master ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALL_INCLUDE_DIR=include -DINSTALL_CMAKE_DIR=lib/cmake -DRTABMAP_VERSION=${VERSION} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(RENAME "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rtabmap-res-tool/vcpkg.json ================================================ { "name": "rtabmap-res-tool", "version": "0.23.2", "description": "Real-Time Appearance-Based Mapping, resource generator", "homepage": "https://introlab.github.io/rtabmap/", "license": "BSD-3-Clause", "supports": "native", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/rtaudio/fix-pulse.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e021dc..6dbac46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,9 +149,9 @@ endif() # Pulse if (RTAUDIO_API_PULSE) set(NEED_PTHREAD ON) - find_library(PULSE_LIB pulse) - find_library(PULSESIMPLE_LIB pulse-simple) - list(APPEND LINKLIBS ${PULSE_LIB} ${PULSESIMPLE_LIB}) + find_package(PkgConfig) + pkg_check_modules(pulse-simple REQUIRED IMPORTED_TARGET libpulse-simple) + list(APPEND LINKLIBS PkgConfig::pulse-simple) list(APPEND PKGCONFIG_REQUIRES "libpulse-simple") list(APPEND API_DEFS "-D__LINUX_PULSE__") list(APPEND API_LIST "pulse") @@ -323,6 +323,10 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "@PACKAGE_INIT@\n" if(NEED_PTHREAD) file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "find_package(Threads REQUIRED)\n") endif() +if (RTAUDIO_API_PULSE) + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "find_package(PkgConfig)\n") + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "pkg_check_modules(pulse-simple REQUIRED IMPORTED_TARGET libpulse-simple)\n") +endif() file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/RtAudioConfig.cmake.in "include(\${CMAKE_CURRENT_LIST_DIR}/RtAudioTargets.cmake)") ================================================ FILE: ports/rtaudio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thestk/rtaudio REF ${VERSION} SHA512 085feb2673185460717ba45fc87254961e477823759e11281092c1ba13301303de1cd36aa9efeba0710cbf2c70f2e2f7f9e41173cf372ded528c41612b19acd5 HEAD_REF master PATCHES fix-pulse.patch ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" RTAUDIO_STATIC_MSVCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES asio RTAUDIO_API_ASIO alsa RTAUDIO_API_ALSA pulse RTAUDIO_API_PULSE ) set(PKG_OPT "") if("pulse" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) set(PKG_OPT "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRTAUDIO_STATIC_MSVCRT=${RTAUDIO_STATIC_MSVCRT} -DRTAUDIO_API_JACK=OFF ${FEATURE_OPTIONS} ${PKG_OPT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rtaudio/vcpkg.json ================================================ { "name": "rtaudio", "version": "6.0.1", "port-version": 1, "description": "A set of C++ classes that provide a common API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO and WASAPI) operating systems.", "homepage": "https://github.com/thestk/rtaudio", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "alsa": { "description": "Build ALSA API", "supports": "linux", "dependencies": [ "alsa" ] }, "asio": { "description": "Build with ASIO backend", "supports": "windows" }, "pulse": { "description": "Build with PulseAudio backend", "supports": "linux", "dependencies": [ "pulseaudio" ] } } } ================================================ FILE: ports/rtc-benchmarksuite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO realtimechris/benchmarksuite REF "v${VERSION}" SHA512 277f8e33d836c99c9a2f7b51e92c6c2df8bc549483118d77022a0776c493423975c118482b369c6fd728907fd76af02474d7d2d34ac9e335bb8314bed0866268 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.md") ================================================ FILE: ports/rtc-benchmarksuite/vcpkg.json ================================================ { "name": "rtc-benchmarksuite", "version": "1.0.1", "description": "A header-only C++ benchmarking library with cross-platform hardware performance counter integration, providing precise measurements of cycles, instructions, branches, cache behavior, and throughput with minimal overhead.", "homepage": "https://github.com/realtimechris/benchmarksuite", "license": "MIT", "supports": "(windows & x64 & !xbox) | (linux & x64) | (osx & x64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/rtlsdr/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ff6c9a..95c335c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,6 +73,7 @@ if(PKG_CONFIG_FOUND) pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET) if(LIBUSB_LINK_LIBRARIES) set(LIBUSB_LIBRARIES "${LIBUSB_LINK_LIBRARIES}") + set(LIBUSB_LIBRARY_DIRS "") endif() else() set(LIBUSB_LIBRARIES "" CACHE STRING "manual libusb path") @@ -80,7 +81,8 @@ else() endif() if(MSVC) - set(THREADS_PTHREADS_LIBRARY "" CACHE STRING "manual pthread-win32 path") + find_package(PThreads4W REQUIRED) + set(THREADS_PTHREADS_LIBRARY "PThreads4W::PThreads4W" CACHE INTERNAL "") set(THREADS_PTHREADS_INCLUDE_DIR "" CACHE STRING "manual pthread-win32 includepath") else() set(THREADS_PTHREADS_LIBRARY "" CACHE INTERNAL "manual pthread-win32 path") diff --git a/cmake/rtlsdrConfig.cmake b/cmake/rtlsdrConfig.cmake index eeff2f3..23702ca 100644 --- a/cmake/rtlsdrConfig.cmake +++ b/cmake/rtlsdrConfig.cmake @@ -1,5 +1,7 @@ -include(FindPkgConfig) -pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET) +if(MSVC) + include(CMakeFindDependencyMacro) + find_dependency(PThreads4W) +endif() get_filename_component(RTLSDR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in index e46519a..92bbddf 100644 --- a/librtlsdr.pc.in +++ b/librtlsdr.pc.in @@ -8,4 +8,5 @@ Description: C Utility Library Version: @VERSION@ Cflags: -I${includedir}/ Libs: -L${libdir} -lrtlsdr -Libs.private: -lusb-1.0 @RTLSDR_PC_LIBS@ +Libs.private: @RTLSDR_PC_LIBS@ +Requires.private: libusb-1.0 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a2bcb3d..ecc3c90 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -38,7 +38,7 @@ generate_export_header(rtlsdr) ######################################################################## add_library(rtlsdr_static STATIC librtlsdr.c tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) -target_link_libraries(rtlsdr ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY}) +target_link_libraries(rtlsdr_static ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY}) target_include_directories(rtlsdr_static PUBLIC $ $ # /include ================================================ FILE: ports/rtlsdr/library-linkage.diff ================================================ diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in index 92bbddf..20a2735 100644 --- a/librtlsdr.pc.in +++ b/librtlsdr.pc.in @@ -7,6 +7,7 @@ Name: RTL-SDR Library Description: C Utility Library Version: @VERSION@ Cflags: -I${includedir}/ +Cflags.private: -Drtlsdr_STATIC Libs: -L${libdir} -lrtlsdr Libs.private: @RTLSDR_PC_LIBS@ Requires.private: libusb-1.0 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3c02e6c..e6585ee 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -45,12 +45,11 @@ target_include_directories(rtlsdr_static PUBLIC ${LIBUSB_INCLUDE_DIRS} ${THREADS_PTHREADS_INCLUDE_DIR} ) -set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) +target_compile_definitions(rtlsdr_static PUBLIC "rtlsdr_STATIC") if(NOT WIN32) # Force same library filename for static and shared variants of the library set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr) endif() -generate_export_header(rtlsdr_static) ######################################################################## # Set up Windows DLL resource files @@ -66,6 +65,14 @@ IF(MSVC) target_sources(rtlsdr_static PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/rtlsdr.rc) ENDIF(MSVC) +if(BUILD_SHARED_LIBS) + set(rtlsdr_target rtlsdr) + set_target_properties(rtlsdr_static PROPERTIES EXCLUDE_FROM_ALL 1) +else() + set(rtlsdr_target rtlsdr_static) + set_target_properties(rtlsdr PROPERTIES EXCLUDE_FROM_ALL 1) +endif() + ######################################################################## # Setup libraries used in executables ######################################################################## @@ -79,7 +86,7 @@ add_library(libgetopt_static STATIC getopt/getopt.c ) target_link_libraries(convenience_static - rtlsdr + ${rtlsdr_target} ) endif() @@ -96,6 +103,10 @@ add_executable(rtl_power rtl_power.c) add_executable(rtl_biast rtl_biast.c) set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) +foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) + target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY}) +endforeach() +if(0) target_link_libraries(rtl_sdr rtlsdr convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} @@ -128,6 +139,7 @@ target_link_libraries(rtl_biast rtlsdr convenience_static ${LIBUSB_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ) +endif(0) if(UNIX) target_link_libraries(rtl_fm m) target_link_libraries(rtl_adsb m) @@ -148,6 +160,7 @@ target_link_libraries(rtl_eeprom libgetopt_static) target_link_libraries(rtl_adsb libgetopt_static) target_link_libraries(rtl_power libgetopt_static) target_link_libraries(rtl_biast libgetopt_static) +if(0) set_property(TARGET rtl_sdr APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) set_property(TARGET rtl_tcp APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) set_property(TARGET rtl_test APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) @@ -156,16 +169,12 @@ set_property(TARGET rtl_eeprom APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATI set_property(TARGET rtl_adsb APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) set_property(TARGET rtl_power APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) set_property(TARGET rtl_biast APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) +endif(0) endif() ######################################################################## # Install built library files & utilities ######################################################################## -install(TARGETS rtlsdr EXPORT RTLSDR-export - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file - ) -install(TARGETS rtlsdr_static EXPORT RTLSDR-export - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file - ) +install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export) install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast DESTINATION ${CMAKE_INSTALL_BINDIR} ) ================================================ FILE: ports/rtlsdr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO osmocom/rtl-sdr REF v${VERSION} SHA512 20a1630df7d4da5d263c5ffd4d83a7c2a6fc674e3838bf02b2b59c1da8d946dafc48790d410ab2fcbc0362c2ac70e5cdcae9391c5f04803bf2cdddafd6f58483 HEAD_REF master PATCHES dependencies.diff library-linkage.diff tools.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES tools BUILD_TOOLS ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" "-DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=1" "-DCMAKE_DISABLE_FIND_PACKAGE_Git=1" OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rtlsdr) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static") endif() endif() if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES rtl_adsb rtl_biast rtl_eeprom rtl_fm rtl_power rtl_sdr rtl_tcp rtl_test AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/rtlsdr/tools.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 18c3821..52f4991 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -103,8 +103,12 @@ add_executable(rtl_power rtl_power.c) add_executable(rtl_biast rtl_biast.c) set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) +option(BUILD_TOOLS "Build tools" ON) foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY}) + if(NOT BUILD_TOOLS) + set_target_properties(${executable} PROPERTIES EXCLUDE_FROM_ALL 1) + endif() endforeach() if(0) target_link_libraries(rtl_sdr rtlsdr convenience_static @@ -175,6 +179,8 @@ endif() # Install built library files & utilities ######################################################################## install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export) +if(BUILD_TOOLS) install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast DESTINATION ${CMAKE_INSTALL_BINDIR} ) +endif() ================================================ FILE: ports/rtlsdr/usage ================================================ rtlsdr provides CMake targets: find_package(rtlsdr CONFIG REQUIRED) target_link_libraries(main PRIVATE $,rtlsdr::rtlsdr,rtlsdr::rtlsdr_static>) rtlsdr provides pkg-config modules: # C Utility Library librtlsdr ================================================ FILE: ports/rtlsdr/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "rtlsdr", "version": "2.0.2", "description": "rtl-sdr is a library that turns your Realtek RTL2832 based DVB dongle into a SDR receiver", "homepage": "https://osmocom.org/projects/rtl-sdr", "license": "GPL-2.0-or-later", "supports": "!uwp", "dependencies": [ "libusb", { "name": "pthreads", "platform": "windows & !mingw" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools", "supports": "!android" } } } ================================================ FILE: ports/rtmfp-cpp/portfile.cmake ================================================ vcpkg_download_distfile(ADD_CSTDINT URLS https://github.com/zenomt/rtmfp-cpp/commit/9c53bde974e6463537a4e5573a548e59eb45786c.diff?full_index=1 FILENAME rtmfp-cpp-add-cstdint-9c53bde974e6463537a4e5573a548e59eb45786c.diff SHA512 7c6c4bf04f541c06a6f24b0e5033a26c13e1f985b5fa33bddcea8374e50e97bdfd768a2a16cb84ba0e67f1525036fd17af298053c909f48fd45f6974b1857d56 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zenomt/rtmfp-cpp REF "v${VERSION}" SHA512 cc8eac88c70b6a00a92a76bee66a3b319857a009fbfd82e9a710fe1c0fc452cf9fdf4128529e3f10931ed33c26eaf69253cab3b3e5a739eca6dd37a13f72800b HEAD_REF main PATCHES "${ADD_CSTDINT}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rtmfp) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/rtmfp-cpp/vcpkg.json ================================================ { "name": "rtmfp-cpp", "version": "1.5.1", "port-version": 1, "description": "Secure Real-Time Media Flow Protocol Library (RTMFP)", "homepage": "https://github.com/zenomt/rtmfp-cpp", "license": "MIT", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rtmidi/portfile.cmake ================================================ # Upstream uses CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, which causes issues # https://github.com/thestk/rtmidi/blob/4.0.0/CMakeLists.txt#L20 vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thestk/rtmidi REF "${VERSION}" SHA512 7ff7f85ff86fc019ab7906a46efc986b2a340b2f9a9d504bda85d0afc75921b905b32cb37f87e30ab9d1f13e62587c4ade736dad1609a0880eeab3fe5a936acb HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES alsa RTMIDI_API_ALSA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRTMIDI_API_JACK=OFF -DRTMIDI_BUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rtmidi/vcpkg.json ================================================ { "name": "rtmidi", "version": "6.0.0", "description": "A set of C++ classes that provide a common API for realtime MIDI input/output across Linux (ALSA & JACK), Macintosh OS X (CoreMidi & JACK) and Windows (Multimedia)", "homepage": "https://github.com/thestk/rtmidi", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "alsa": { "description": "Build ALSA API", "supports": "linux", "dependencies": [ "alsa" ] } } } ================================================ FILE: ports/rttr/Fix-depends.patch ================================================ diff --git a/CMake/3rd_party_libs.cmake b/CMake/3rd_party_libs.cmake index dca5071..4dd4471 100644 --- a/CMake/3rd_party_libs.cmake +++ b/CMake/3rd_party_libs.cmake @@ -51,7 +51,8 @@ if (BUILD_BENCHMARKS) find_package(Threads REQUIRED) endif() -set(RAPID_JSON_DIR ${RTTR_3RD_PARTY_DIR}/rapidjson-1.1.0) +find_package(RapidJSON CONFIG REQUIRED) +set(RAPID_JSON_DIR ${RAPIDJSON_INCLUDE_DIRS}) set(NONIUS_DIR ${RTTR_3RD_PARTY_DIR}/nonius-1.1.2) # Prepare "Catch" library for other executables ================================================ FILE: ports/rttr/disable-unsupport-header.patch ================================================ diff --git a/src/rttr/detail/misc/flat_map.h b/src/rttr/detail/misc/flat_map.h index 767c97b..ba97cc7 100644 --- a/src/rttr/detail/misc/flat_map.h +++ b/src/rttr/detail/misc/flat_map.h @@ -36,7 +36,7 @@ #include #include #include -#include // _LIBCPP_VERSION +//#include // _LIBCPP_VERSION namespace rttr { ================================================ FILE: ports/rttr/disable-werrorr.patch ================================================ diff --git a/CMake/utility.cmake b/CMake/utility.cmake index 8e7a0c6..ac5e305 100644 --- a/CMake/utility.cmake +++ b/CMake/utility.cmake @@ -395,7 +395,7 @@ function( set_compiler_warnings target) set(WARNINGS "-Werror" "-Wall") elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - set(WARNINGS "-Werror" + set(WARNINGS "-Wall") elseif(MSVC) set(WARNINGS "/WX" ================================================ FILE: ports/rttr/fix-directory-output.patch ================================================ diff --git a/CMake/config.cmake b/CMake/config.cmake index a718199..eab64c2 100644 --- a/CMake/config.cmake +++ b/CMake/config.cmake @@ -47,7 +47,7 @@ set(CMAKE_EXECUTABLE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin") # here we specify the installation directory if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/install" CACHE PATH "RTTR install prefix" FORCE) + #set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/install" CACHE PATH "RTTR install prefix") endif() # in order to group in visual studio the targets into solution filters ================================================ FILE: ports/rttr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rttrorg/rttr REF 7edbd580cfad509a3253c733e70144e36f02ecd4 SHA512 17432728037bc0f8e346c6bd01298c6ee3a4714c83505b2cf1bc23305acea5cc55925e7fc28a8cf182b6ba26abdc9d40ea2f5b168615c030d5ebeec9a8961636 HEAD_REF master PATCHES fix-directory-output.patch Fix-depends.patch remove-owner-read-perms.patch disable-unsupport-header.patch disable-werrorr.patch ) if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static" AND "${VCPKG_CRT_LINKAGE}" STREQUAL "static") set(BUILD_STATIC ON) set(BUILD_RTTR_DYNAMIC OFF) set(BUILD_WITH_STATIC_RUNTIME_LIBS OFF) elseif("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic" AND "${VCPKG_CRT_LINKAGE}" STREQUAL "static") set(BUILD_STATIC OFF) set(BUILD_RTTR_DYNAMIC OFF) set(BUILD_WITH_STATIC_RUNTIME_LIBS ON) elseif("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic" AND "${VCPKG_CRT_LINKAGE}" STREQUAL "dynamic") set(BUILD_STATIC OFF) set(BUILD_RTTR_DYNAMIC ON) set(BUILD_WITH_STATIC_RUNTIME_LIBS OFF) else() message(FATAL_ERROR "rttr's build system does not support this configuration: VCPKG_LIBRARY_LINKAGE: ${VCPKG_LIBRARY_LINKAGE} VCPKG_CRT_LINKAGE: ${VCPKG_CRT_LINKAGE}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_BENCHMARKS=OFF -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_RTTR_DYNAMIC=${BUILD_RTTR_DYNAMIC} -DBUILD_WITH_STATIC_RUNTIME_LIBS=${BUILD_WITH_STATIC_RUNTIME_LIBS} ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH share/rttr/cmake) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/README.md" "${CURRENT_PACKAGES_DIR}/debug/LICENSE.txt" "${CURRENT_PACKAGES_DIR}/LICENSE.txt" "${CURRENT_PACKAGES_DIR}/README.md" ) ================================================ FILE: ports/rttr/remove-owner-read-perms.patch ================================================ diff --git a/CMake/config.cmake b/CMake/config.cmake index 6b9eba8..e465709 100644 --- a/CMake/config.cmake +++ b/CMake/config.cmake @@ -171,6 +171,5 @@ if (BUILD_INSTALLER) COMPONENT Devel) install(FILES "${LICENSE_FILE}" "${README_FILE}" - DESTINATION ${RTTR_ADDITIONAL_FILES_INSTALL_DIR} - PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + DESTINATION ${RTTR_ADDITIONAL_FILES_INSTALL_DIR}) endif() diff --git a/CMake/utility.cmake b/CMake/utility.cmake index cd1e835..8e7a0c6 100644 --- a/CMake/utility.cmake +++ b/CMake/utility.cmake @@ -165,7 +165,7 @@ function(loadFolder FOLDER _HEADER_FILES _SOURCE_FILES) getNameOfDir(CMAKE_CURRENT_SOURCE_DIR DIRNAME) if (${shouldInstall}) if (NOT ${FULL_HEADER_PATH} MATCHES ".*_p.h$") # we don't want to install header files which are marked as private - install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}" PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + install(FILES ${FULL_HEADER_PATH} DESTINATION "include/${DIRNAME}/${REL_PATH}") endif() endif() endforeach() diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index de70600..a92d642 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -132,12 +132,10 @@ set_target_properties(doc PROPERTIES FOLDER "Documentation") install(DIRECTORY "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_CUSTOM_HTML_DIR}" DESTINATION "${DOXYGEN_DOC_INSTALL_DIR}" - PATTERN "*.*" - PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + PATTERN "*.*") install(FILES "${DOXYGEN_OUTPUT_DIRECTORY}/${DOXYGEN_INDEX_FILE}" - DESTINATION "${DOXYGEN_DOC_INSTALL_DIR}" - PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) + DESTINATION "${DOXYGEN_DOC_INSTALL_DIR}") ######################################################################################### ================================================ FILE: ports/rttr/vcpkg.json ================================================ { "name": "rttr", "version": "0.9.6+20210811", "port-version": 1, "description": "an easy and intuitive way to use reflection in C++", "homepage": "https://github.com/rttrorg/rttr", "license": "MIT", "supports": "(static & staticcrt) | (!static & staticcrt) | (!static & !staticcrt)", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ruapu/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nihui/ruapu REF "${VERSION}" SHA512 efc74fde9e08637a5a888cfcbca000c1e7fe8095be5e59415c54c535cc2be496a4efe8aa66aac5dfbb1ae3385ba7762eb8bfd83ddbdf21720c7561707c287e45 HEAD_REF master ) file(COPY "${SOURCE_PATH}/ruapu.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ruapu/vcpkg.json ================================================ { "name": "ruapu", "version": "0.1.0", "description": "Detect CPU features with single-file", "homepage": "https://github.com/nihui/ruapu", "license": "MIT" } ================================================ FILE: ports/rubberband/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO breakfastquay/rubberband REF "v${VERSION}" SHA512 f581e900a71f78fde3361d2bed2fe165952c2ca087168c5f4e4994586bd832267eea58e0662a74b6a7430bc361fe80b5307b2ee6bf631a3561a8cba86e1cd3f2 HEAD_REF default ) if("cli" IN_LIST FEATURES) set(CLI_FEATURE enabled) else() set(CLI_FEATURE disabled) endif() # Select fastest available FFT library according https://github.com/breakfastquay/rubberband/blob/default/COMPILING.md#fft-libraries-supported if( (VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_EMSCRIPTEN ) set(FFT_LIB "fftw") else() set(FFT_LIB "sleef") endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dfft=${FFT_LIB} # 'auto', 'builtin', 'kissfft', 'fftw', sleef', 'vdsp', 'ipp' 'FFT library to use. The default (auto) will use vDSP if available, the builtin implementation otherwise.') -Dresampler=libsamplerate # 'auto', 'builtin', 'libsamplerate', 'speex', 'libspeexdsp', 'ipp' 'Resampler library to use. The default (auto) simply uses the builtin implementation.' -Dipp_path= # 'Path to Intel IPP libraries, if selected for any of the other options.' -Dextra_include_dirs= # 'Additional local header directories to search for dependencies.' -Dextra_lib_dirs= # 'Additional local library directories to search for dependencies.' -Djni=disabled # 'auto', 'disabled', 'enabled' -Dladspa=disabled # 'auto', 'disabled', 'enabled' -Dlv2=disabled # 'auto', 'disabled', 'enabled' lv2 feature is not yet supported yet because vcpkg can't isntall to # %APPDATA%\LV2 or %COMMONPROGRAMFILES%\LV2 but also complains about dlls in "${CURRENT_PACKAGES_DIR}/lib/lv2" -Dvamp=disabled # 'auto', 'disabled', 'enabled' -Dcmdline=${CLI_FEATURE} # 'auto', 'disabled', 'enabled' -Dtests=disabled # 'auto', 'disabled', 'enabled' ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/rubberband-program${VCPKG_TARGET_EXECUTABLE_SUFFIX}") # Rubberband uses a different executable name when compiled with msvc # Just looking for that file is faster than detecting msvc builds set(RUBBERBAND_PROGRAM_NAMES rubberband-program rubberband-program-r3) else() set(RUBBERBAND_PROGRAM_NAMES rubberband rubberband-r3) endif() # Remove them when not enabled. if("cli" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ${RUBBERBAND_PROGRAM_NAMES} AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/rubberband/vcpkg.json ================================================ { "name": "rubberband", "version": "4.0.0", "port-version": 1, "description": "A high quality software library for audio time-stretching and pitch-shifting.", "homepage": "https://www.breakfastquay.com/rubberband/", "license": "GPL-2.0-or-later", "supports": "!uwp & !(windows & static) & !xbox", "dependencies": [ { "name": "fftw3", "platform": "(arm & windows) | (x86 & windows) | ios | osx | emscripten" }, "libsamplerate", { "name": "sleef", "features": [ "dft" ], "platform": "!(arm & windows) & !(x86 & windows) & !ios & !osx & !emscripten" }, { "name": "vcpkg-tool-meson", "host": true } ], "features": { "cli": { "description": "Build the command-line utility", "dependencies": [ { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] } ] } } } ================================================ FILE: ports/ruckig/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pantor/ruckig REF "v${VERSION}" SHA512 5399e1f0c61c1c4d96a8a910e4b934b629c6302fd18fd609c7a8bc76156bf0f3f5197ff9e83ac0fc443083e40cc7208d9a2f09070f4f8ab4511f4a6566981b5d HEAD_REF main PATCHES third_party.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cloud BUILD_CLOUD_CLIENT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/ruckig") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/ruckig/third_party.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 701982a..3cedd7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,10 +46,15 @@ endif() if(BUILD_CLOUD_CLIENT) target_sources(ruckig PRIVATE src/ruckig/cloud_client.cpp) - target_include_directories(ruckig PUBLIC - $ - $ - ) + find_package(nlohmann_json CONFIG REQUIRED) + find_package(httplib CONFIG REQUIRED) + + target_link_libraries(ruckig PUBLIC nlohmann_json::nlohmann_json) + target_link_libraries(ruckig PRIVATE httplib::httplib) + #target_include_directories(ruckig PUBLIC + # $ + # $ + #) target_compile_definitions(ruckig PUBLIC WITH_CLOUD_CLIENT) endif() @@ -130,9 +135,9 @@ include(CMakePackageConfigHelpers) # Install headers install(DIRECTORY include/ruckig DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -if(BUILD_CLOUD_CLIENT) - install(DIRECTORY third_party/httplib third_party/nlohmann DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ruckig/third_party) -endif() +#if(BUILD_CLOUD_CLIENT) + #install(DIRECTORY third_party/httplib third_party/nlohmann DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ruckig/third_party) +#endif() # Install library install(TARGETS ruckig diff --git a/src/ruckig/cloud_client.cpp b/src/ruckig/cloud_client.cpp index d5dc499..65ab347 100644 --- a/src/ruckig/cloud_client.cpp +++ b/src/ruckig/cloud_client.cpp @@ -1,4 +1,4 @@ -#include +#include #include ================================================ FILE: ports/ruckig/vcpkg.json ================================================ { "name": "ruckig", "version": "0.15.3", "description": "Ruckig generates trajectories on-the-fly, allowing robots and machines to react instantaneously to sensor input.", "homepage": "https://ruckig.com/", "license": "MIT", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "cloud" ], "features": { "cloud": { "description": "Build cloud client to calculate Ruckig Pro trajectories remotely", "dependencies": [ "cpp-httplib", "nlohmann-json" ] } } } ================================================ FILE: ports/rxcpp/disable-tests.patch ================================================ diff --git a/projects/CMake/CMakeLists.txt b/projects/CMake/CMakeLists.txt index 8856aa42e..2b3d57e97 100755 --- a/projects/CMake/CMakeLists.txt +++ b/projects/CMake/CMakeLists.txt @@ -11,18 +11,20 @@ get_filename_component(RXCPP_DIR "${RXCPP_DIR}" PATH) MESSAGE( STATUS "RXCPP_DIR: " ${RXCPP_DIR} ) -add_subdirectory(${RXCPP_DIR}/Rx/v2/test ${CMAKE_CURRENT_BINARY_DIR}/test) +if (NOT ${RXCPP_DISABLE_TESTS_AND_EXAMPLES}) + add_subdirectory(${RXCPP_DIR}/Rx/v2/test ${CMAKE_CURRENT_BINARY_DIR}/test) -add_subdirectory(${RXCPP_DIR}/projects/doxygen ${CMAKE_CURRENT_BINARY_DIR}/projects/doxygen) + add_subdirectory(${RXCPP_DIR}/projects/doxygen ${CMAKE_CURRENT_BINARY_DIR}/projects/doxygen) -set(EXAMPLES_DIR ${RXCPP_DIR}/Rx/v2/examples) + set(EXAMPLES_DIR ${RXCPP_DIR}/Rx/v2/examples) -add_subdirectory(${EXAMPLES_DIR}/cep ${CMAKE_CURRENT_BINARY_DIR}/examples/cep) -add_subdirectory(${EXAMPLES_DIR}/stop ${CMAKE_CURRENT_BINARY_DIR}/examples/stop) -add_subdirectory(${EXAMPLES_DIR}/linesfrombytes ${CMAKE_CURRENT_BINARY_DIR}/examples/linesfrombytes) -add_subdirectory(${EXAMPLES_DIR}/println ${CMAKE_CURRENT_BINARY_DIR}/examples/println) -add_subdirectory(${EXAMPLES_DIR}/pythagorian ${CMAKE_CURRENT_BINARY_DIR}/examples/pythagorian) -add_subdirectory(${EXAMPLES_DIR}/tests ${CMAKE_CURRENT_BINARY_DIR}/examples/tests) + add_subdirectory(${EXAMPLES_DIR}/cep ${CMAKE_CURRENT_BINARY_DIR}/examples/cep) + add_subdirectory(${EXAMPLES_DIR}/stop ${CMAKE_CURRENT_BINARY_DIR}/examples/stop) + add_subdirectory(${EXAMPLES_DIR}/linesfrombytes ${CMAKE_CURRENT_BINARY_DIR}/examples/linesfrombytes) + add_subdirectory(${EXAMPLES_DIR}/println ${CMAKE_CURRENT_BINARY_DIR}/examples/println) + add_subdirectory(${EXAMPLES_DIR}/pythagorian ${CMAKE_CURRENT_BINARY_DIR}/examples/pythagorian) + add_subdirectory(${EXAMPLES_DIR}/tests ${CMAKE_CURRENT_BINARY_DIR}/examples/tests) +endif () # The list of RxCpp source files. Please add every new file to this list set(RX_SOURCES ================================================ FILE: ports/rxcpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ReactiveX/RxCpp REF v4.1.1 SHA512 387e1276151a19b62fd1d36b486ff5f3ed28f0f48ae8b00902bf13464d20603f492ecd63ab4444d04293fc3d92a8f7ce3e67a4c68836415c4655331fb6b54edb HEAD_REF master PATCHES disable-tests.patch # from https://github.com/ReactiveX/RxCpp/pull/574 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/${PORT}/cmake/) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) file(COPY ${SOURCE_PATH}/license.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/license.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright) ================================================ FILE: ports/rxcpp/vcpkg.json ================================================ { "name": "rxcpp", "version": "4.1.1", "port-version": 1, "description": "Reactive Extensions for C++", "homepage": "https://github.com/Reactive-Extensions/RxCpp", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/rxqt/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tetsurom/rxqt REF d0b15354199acbd409f39a2b6d30e539c1b05c94 SHA512 151e6f9db3f7c98c47782c669eb40ec664ccad2fa33daf3ad035c6afcff89978835575f1160114e25fc23f62e7604565ec8ff88264020e6a88af456ed8e11faf HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} ) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/rxqt RENAME copyright) ================================================ FILE: ports/rxqt/vcpkg.json ================================================ { "name": "rxqt", "version-string": "d0b1535", "port-version": 1, "description": "The Reactive Extensions for Qt.", "homepage": "https://github.com/tetsurom/rxqt", "dependencies": [ "rxcpp" ] } ================================================ FILE: ports/rxspencer/disable-docs-and-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 49faf30..e590001 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ project ( rxspencer C ) cmake_minimum_required ( VERSION 3.0 ) option ( rxshared "build shared library instead of static" OFF ) -enable_testing() +#enable_testing() # Define POSIX_MISTAKE to allow unmatched right parentheses as literals, as # required by POSIX 1003.2. @@ -47,10 +47,12 @@ install ( TARGETS rxspencer PUBLIC_HEADER DESTINATION ${RXSPENCER_INCLUDE_DIR} ) # Install docs +if(FALSE) set ( RXSPENCER_DATA_FILES "COPYRIGHT;README;WHATSNEW" ) install ( FILES ${RXSPENCER_DATA_FILES} DESTINATION ${RXSPENCER_DATA_DIR} ) install ( FILES rxspencer.3 DESTINATION ${RXSPENCER_MAN3_DIR} ) install ( FILES rxspencer.7 DESTINATION ${RXSPENCER_MAN7_DIR} ) +endif() # generate cmake configuration file include ( CMakePackageConfigHelpers ) @@ -69,8 +71,9 @@ install ( EXPORT RXSpencerTargets DESTINATION ${CMAKE_CONFIG_DEST} ) install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/RXSpencerConfig.cmake DESTINATION ${CMAKE_CONFIG_DEST} ) - +if(FALSE) add_executable(tester ${RXSPENCER_SRCS} debug.c main.c split.c) add_test(NAME test1 COMMAND sh -c "./tester -f ${CMAKE_CURRENT_SOURCE_DIR}/tests") add_test(NAME test2 COMMAND sh -c "./tester -el -f ${CMAKE_CURRENT_SOURCE_DIR}/tests") add_test(NAME test3 COMMAND sh -c "./tester -er -f ${CMAKE_CURRENT_SOURCE_DIR}/tests") +endif() ================================================ FILE: ports/rxspencer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO garyhouston/rxspencer REF 9f835b523f1af617ca54e06863a1924c23f6e56a #v3.9.0 SHA512 fe7721bd4b4e4f7d31fd5a7e42d34d0c9735d062d8b146ee47a25f87c809eead7133265fc37fa958c37bc4ffeaf101d143202080508d98efd160b8fd0a278598 HEAD_REF master PATCHES disable-docs-and-tests.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CONFIG_DEST=share/rxspencer -Drxshared=${BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "share/rxspencer") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/regex") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/rxspencer/vcpkg.json ================================================ { "name": "rxspencer", "version": "3.9.0", "port-version": 2, "description": "Henry Spencer's BSD regular expression library.", "homepage": "https://garyhouston.github.io/regex/", "license": "MIT AND CC0-1.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ryml/cmake-fix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d80b395..8f1699e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,10 +27,7 @@ option(RYML_INSTALL "Enable install target" ON) #------------------------------------------------------- -c4_require_subproject(c4core INCORPORATE - SUBDIRECTORY ${RYML_EXT_DIR}/c4core - OVERRIDE C4CORE_INSTALL ${RYML_INSTALL} -) +find_package(c4core CONFIG REQUIRED) c4_add_library(ryml SOURCES @@ -77,10 +74,10 @@ c4_add_library(ryml ryml.natvis SOURCE_ROOT ${RYML_SRC_DIR} INC_DIRS + $ $ $ - LIBS c4core - INCORPORATE c4core + LIBS c4core::c4core ) if(RYML_WITH_TAB_TOKENS) ================================================ FILE: ports/ryml/fix-param-name.patch ================================================ diff --git a/src/c4/yml/common.cpp b/src/c4/yml/common.cpp index bd03026..9ac62fc 100644 --- a/src/c4/yml/common.cpp +++ b/src/c4/yml/common.cpp @@ -133,9 +133,9 @@ Callbacks::Callbacks(void *user_data, pfn_allocate alloc_, pfn_free free_, pfn_e #else m_allocate(alloc_), m_free(free_), - m_error_basic(error_), + m_error_basic(error_basic_), m_error_parse(nullptr), - m_error_visit(nullptr), + m_error_visit(nullptr) #endif { } ================================================ FILE: ports/ryml/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # Get rapidyaml src vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO biojppm/rapidyaml REF "v${VERSION}" SHA512 425d98e5d74c2628b8e91f6bc5e02439765669ee3e4bf783f550b1221dc80453efcd382f92ac423883d53b8fac0536610a11a3d7e248eb62981b118dce9a89b8 HEAD_REF master PATCHES cmake-fix.patch fix-param-name.patch ) set(CM_COMMIT_HASH fe41e86552046c3df9ba73a40bf3d755df028c1e) # Get cmake scripts for rapidyaml vcpkg_download_distfile( CMAKE_ARCHIVE URLS "https://github.com/biojppm/cmake/archive/${CM_COMMIT_HASH}.zip" FILENAME "cmake-${CM_COMMIT_HASH}.zip" SHA512 7292f9856d9c41581f2731e73fdf08880e0f4353b757da38a13ec89b62c5c8cb52b9efc1a9ff77336efa0b6809727c17649e607d8ecacc965a9b2a7a49925237 ) vcpkg_extract_source_archive( SOURCE_PATH_CMAKE ARCHIVE ${CMAKE_ARCHIVE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/deps" ) file(REMOVE_RECURSE "${SOURCE_PATH}/ext/c4core/cmake") file(RENAME "${SOURCE_PATH_CMAKE}" "${SOURCE_PATH}/ext/c4core/cmake") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES def-callbacks RYML_DEFAULT_CALLBACKS dbg RYML_DBG ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(CONFIG_PATH cmake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/ryml") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ryml) endif() # Move headers and natvis to own dir file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include/ryml") file(RENAME "${CURRENT_PACKAGES_DIR}/include/ryml.hpp" "${CURRENT_PACKAGES_DIR}/include/ryml/ryml.hpp") file(RENAME "${CURRENT_PACKAGES_DIR}/include/ryml_std.hpp" "${CURRENT_PACKAGES_DIR}/include/ryml/ryml_std.hpp") file(RENAME "${CURRENT_PACKAGES_DIR}/include/ryml.natvis" "${CURRENT_PACKAGES_DIR}/include/ryml/ryml.natvis") # Fix paths in headers file vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ryml/ryml.hpp" "./c4" "../c4" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/ryml/ryml_std.hpp" "./c4" "../c4") # Fix paths in config file file(READ "${CURRENT_PACKAGES_DIR}/share/ryml/rymlConfig.cmake" _contents) string(REGEX REPLACE [[[ \t\r\n]*"\${PACKAGE_PREFIX_DIR}[\./\\]*"]] [["${PACKAGE_PREFIX_DIR}/../.."]] _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/ryml/rymlConfig.cmake" "${_contents}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/ryml/vcpkg.json ================================================ { "name": "ryml", "version": "0.11.0", "description": "Rapid YAML library", "homepage": "https://github.com/biojppm/rapidyaml", "license": "MIT", "dependencies": [ { "name": "c4core", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "def-callbacks" ], "features": { "dbg": { "description": "Enable (very verbose) ryml debug prints." }, "def-callbacks": { "description": "Enable ryml's default implementation of callbacks: allocate(), free(), error()" } } } ================================================ FILE: ports/ryu/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(ryu LANGUAGES C) add_library(ryu "ryu/f2s.c" "ryu/d2s.c" "ryu/d2s.h" "ryu/d2s_full_table.h" "ryu/d2s_intrinsics.h" "ryu/digit_table.h" "ryu/common.h" "ryu/ryu.h" ) target_include_directories(ryu PUBLIC $ $ ) add_library(ryu_printf "ryu/d2fixed.c" "ryu/d2s_intrinsics.h" "ryu/d2fixed_full_table.h" "ryu/digit_table.h" "ryu/common.h" "ryu/ryu2.h" ) target_include_directories(ryu_printf PUBLIC $ $ ) if(NOT "${CMAKE_STATIC_LIBRARY_SUFFIX}" STREQUAL ".lib") set_target_properties(ryu PROPERTIES OUTPUT_NAME "libryu") set_target_properties(ryu_printf PROPERTIES OUTPUT_NAME "libryu_printf") endif() if(INSTALL_HEADERS) install(FILES "ryu/ryu.h" "ryu/ryu2.h" DESTINATION "include/ryu") endif() install(TARGETS ryu ryu_printf EXPORT ryuTargets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(EXPORT ryuTargets FILE ryuConfig.cmake NAMESPACE RYU:: DESTINATION share/ryu ) ================================================ FILE: ports/ryu/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ulfjack/ryu REF v2.0 SHA512 88a0cca74a4889e8e579987abdc75a6ac87c1cdae557e5a15c29dbfd65733f9e591d6569e97a9374444918475099087f8056e696a97c9be24e38eb737e2304c2 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_RELEASE -DINSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-Apache2" "${SOURCE_PATH}/LICENSE-Boost") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/ryu/usage ================================================ The package ryu provides CMake targets: find_package(ryu CONFIG REQUIRED) target_link_libraries(main PRIVATE RYU::ryu RYU::ryu_printf) ================================================ FILE: ports/ryu/vcpkg.json ================================================ { "name": "ryu", "version": "2.0", "port-version": 10, "description": "Ryu generates the shortest decimal representation of a floating point number that maintains round-trip safety.", "homepage": "https://github.com/ulfjack/ryu", "license": "Apache-2.0 OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/s2geometry/fix-msvc-build.patch ================================================ diff --git a/src/s2/util/math/exactfloat/exactfloat.cc b/src/s2/util/math/exactfloat/exactfloat.cc index bd807e2..27aee43 100644 --- a/src/s2/util/math/exactfloat/exactfloat.cc +++ b/src/s2/util/math/exactfloat/exactfloat.cc @@ -151,8 +151,8 @@ ExactFloat::ExactFloat(double v) { // by the number of mantissa bits in a double (53, including the leading // "1") then the result is always an integer. int exp; - double f = frexp(fabs(v), &exp); - uint64_t m = static_cast(ldexp(f, kDoubleMantissaBits)); + double f = std::frexp(std::fabs(v), &exp); + uint64_t m = static_cast(std::ldexp(f, kDoubleMantissaBits)); BN_ext_set_uint64(bn_.get(), m); bn_exp_ = exp - kDoubleMantissaBits; Canonicalize(); @@ -163,7 +163,7 @@ ExactFloat::ExactFloat(int v) { sign_ = (v >= 0) ? 1 : -1; // Note that this works even for INT_MIN because the parameter type for // BN_set_word() is unsigned. - ABSL_CHECK(BN_set_word(bn_.get(), abs(v))); + ABSL_CHECK(BN_set_word(bn_.get(), std::abs(v))); bn_exp_ = 0; Canonicalize(); } @@ -239,7 +239,7 @@ ExactFloat::operator double() const { double ExactFloat::ToDoubleHelper() const { ABSL_DCHECK_LE(BN_num_bits(bn_.get()), kDoubleMantissaBits); if (!isnormal(*this)) { - if (is_zero()) return copysign(0, sign_); + if (is_zero()) return std::copysign(0, sign_); if (isinf(*this)) { return std::copysign(std::numeric_limits::infinity(), sign_); } @@ -248,7 +248,7 @@ double ExactFloat::ToDoubleHelper() const { uint64_t d_mantissa = BN_ext_get_uint64(bn_.get()); // We rely on ldexp() to handle overflow and underflow. (It will return a // signed zero or infinity if the result is too small or too large.) - return sign_ * ldexp(static_cast(d_mantissa), bn_exp_); + return sign_ * std::ldexp(static_cast(d_mantissa), bn_exp_); } ExactFloat ExactFloat::RoundToMaxPrec(int max_prec, RoundingMode mode) const { @@ -336,7 +336,7 @@ int ExactFloat::NumSignificantDigitsForPrec(int prec) { // // Since either of these bounds can be too large by 0, 1, or 2 digits, we // stick with the simpler first bound. - return static_cast(1 + ceil(prec * (M_LN2 / M_LN10))); + return static_cast(1 + std::ceil(prec * (M_LN2 / M_LN10))); } // Numbers are always formatted with at least this many significant digits. ================================================ FILE: ports/s2geometry/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/s2geometry REF v${VERSION} SHA512 4ddfff2f44c0e98b2a110da57335fe119788f32e3924c8bdbe9afffbad5e037fdfe64f88f664b025a86134e17f14f6195107035b258fde06f946972f1f0456a8 HEAD_REF main PATCHES fix-msvc-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME s2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/s2geometry" RENAME copyright) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/s2geometry") ================================================ FILE: ports/s2geometry/usage ================================================ The package s2geometry provides CMake targets: find_package(s2 CONFIG REQUIRED) target_link_libraries(main PRIVATE s2::s2) ================================================ FILE: ports/s2geometry/vcpkg.json ================================================ { "name": "s2geometry", "version": "0.13.1", "description": "S2 is a library for spherical geometry that aims to have the same robustness, flexibility, and performance as the very best planar geometry libraries.", "homepage": "https://s2geometry.io", "license": "Apache-2.0", "dependencies": [ "abseil", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/s2n/fix-cmake-target-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision 4aec93c6a74aacf60cec6229b35094f56cb0f87b) +++ b/CMakeLists.txt (date 1675011451052) @@ -670,7 +670,7 @@ endif() install(EXPORT "${PROJECT_NAME}-targets" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake/${TARGET_DIR}" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake" NAMESPACE AWS:: COMPONENT Development) diff --git a/cmake/s2n-config.cmake b/cmake/s2n-config.cmake --- a/cmake/s2n-config.cmake (revision 4aec93c6a74aacf60cec6229b35094f56cb0f87b) +++ b/cmake/s2n-config.cmake (date 1675011032538) @@ -6,21 +6,6 @@ endif() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/modules") -find_dependency(crypto) - -# Allow static or shared lib to be used. -# If both are installed, choose based on BUILD_SHARED_LIBS. -if (BUILD_SHARED_LIBS) - if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/shared") - include(${CMAKE_CURRENT_LIST_DIR}/shared/@PROJECT_NAME@-targets.cmake) - else() - include(${CMAKE_CURRENT_LIST_DIR}/static/@PROJECT_NAME@-targets.cmake) - endif() -else() - if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/static") - include(${CMAKE_CURRENT_LIST_DIR}/static/@PROJECT_NAME@-targets.cmake) - else() - include(${CMAKE_CURRENT_LIST_DIR}/shared/@PROJECT_NAME@-targets.cmake) - endif() -endif() +find_dependency(OpenSSL COMPONENTS Crypto) +include(${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake) \ No newline at end of file ================================================ FILE: ports/s2n/openssl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d16e5f5f0..133934580 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -266,9 +266,10 @@ if (TARGET crypto) message(STATUS "S2N found target: crypto") set(LINK_LIB "crypto") else() - find_package(crypto REQUIRED) - message(STATUS "Using libcrypto from the cmake path") - set(LINK_LIB "AWS::crypto") + find_package(OpenSSL REQUIRED) + find_package(Threads REQUIRED) + set(LINK_LIB OpenSSL::Crypto Threads::Threads) + message(STATUS "Using libcrypto from system: ${OPENSSL_CRYPTO_LIBRARY}") endif() if (S2N_INTERN_LIBCRYPTO) ================================================ FILE: ports/s2n/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aws/s2n-tls REF "${VERSION}" SHA512 59ae04774f40994660fb0dc7619d5a91ed03fc83937d6dee979084e55ab32022b6adb84a98f3bf72144c556058a56c82250d488d86188a27f2e28f34bfd00d3b PATCHES fix-cmake-target-path.patch openssl.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tests BUILD_TESTING ) set(EXTRA_ARGS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") set(EXTRA_ARGS "-DS2N_NO_PQ=TRUE") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${EXTRA_ARGS} ${FEATURE_OPTIONS} -DUNSAFE_TREAT_WARNINGS_AS_ERRORS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/s2n/cmake) if(BUILD_TESTING) message(STATUS "Testing") vcpkg_cmake_build(TARGET test LOGFILE_BASE test) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/s2n" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/lib/s2n" "${CURRENT_PACKAGES_DIR}/share/s2n/modules" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/s2n/vcpkg.json ================================================ { "name": "s2n", "version": "1.7.1", "description": "C99 implementation of the TLS/SSL protocols.", "homepage": "https://github.com/aws/s2n-tls", "license": "Apache-2.0", "supports": "!uwp & !windows", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tests": { "description": "Build and run the tests" } } } ================================================ FILE: ports/safeint/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dcleblanc/SafeInt REF "${VERSION}" SHA512 9f0be3f42b05ce3ea0b8208d5d5277167b129e77dc7e15174d0e3e038cb886b16a3cb63918b4f2e21ba79021f45ee6486ff9aa61d9f856828b291699c1355f61 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/SafeInt.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/safeint/vcpkg.json ================================================ { "name": "safeint", "version": "3.0.28", "description": "SafeInt is a class library for C++ that manages integer overflows", "homepage": "https://github.com/dcleblanc/SafeInt" } ================================================ FILE: ports/safetyhook/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cursey/safetyhook REF "v${VERSION}" SHA512 59244cff42c99ec7ebe1c5cbf26a5e01b8f23a991b4dfb9a8e02555edf319d485075f0c2a80cee9d247e93075faf3a528010003f47f59dbbd89d2537ed5a54c0 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMKR_SKIP_GENERATION=ON" "-DSAFETYHOOK_FETCH_ZYDIS=OFF" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/safetyhook) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/safetyhook/vcpkg.json ================================================ { "name": "safetyhook", "version-semver": "0.6.9", "port-version": 1, "description": "C++23 procedure hooking library.", "homepage": "https://github.com/cursey/safetyhook", "license": "BSL-1.0", "supports": "(windows | linux) & !arm & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zydis" ] } ================================================ FILE: ports/sail/fix-heif.patch ================================================ diff --git a/src/sail-codecs/heif/CMakeLists.txt b/src/sail-codecs/heif/CMakeLists.txt index d9c34f85..87981930 100644 --- a/src/sail-codecs/heif/CMakeLists.txt +++ b/src/sail-codecs/heif/CMakeLists.txt @@ -31,7 +31,7 @@ cmake_push_check_state(RESET) set(TEST_CHROMA "heif_chroma_444") endif() - check_c_source_runs( + check_c_source_compiles( " #include int main() { ================================================ FILE: ports/sail/fix-include-directory.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ac81279..cfc2f3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -299,7 +299,7 @@ endif() # Common configuration file # configure_file("${PROJECT_SOURCE_DIR}/src/config.h.in" "${PROJECT_BINARY_DIR}/include/sail-common/config.h" @ONLY) -install(FILES "${PROJECT_BINARY_DIR}/include/sail-common/config.h" DESTINATION include/sail/sail-common) +install(FILES "${PROJECT_BINARY_DIR}/include/sail-common/config.h" DESTINATION include/sail-common) # Print configuration statistics # diff --git a/src/bindings/sail-c++/CMakeLists.txt b/src/bindings/sail-c++/CMakeLists.txt index 4b69ad4..f4bac29 100644 --- a/src/bindings/sail-c++/CMakeLists.txt +++ b/src/bindings/sail-c++/CMakeLists.txt @@ -131,7 +131,7 @@ install(TARGETS sail-c++ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-c++") + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail-c++") # Install development packages # diff --git a/src/sail-common/CMakeLists.txt b/src/sail-common/CMakeLists.txt index 06ce246..c8576e5 100644 --- a/src/sail-common/CMakeLists.txt +++ b/src/sail-common/CMakeLists.txt @@ -114,7 +114,7 @@ endif() target_include_directories(sail-common PUBLIC $ - $) + $) # pkg-config integration # @@ -129,7 +129,7 @@ install(TARGETS sail-common ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-common") + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail-common") # Install development packages # diff --git a/src/sail-manip/CMakeLists.txt b/src/sail-manip/CMakeLists.txt index 5740764..47b81bb 100644 --- a/src/sail-manip/CMakeLists.txt +++ b/src/sail-manip/CMakeLists.txt @@ -59,7 +59,7 @@ install(TARGETS sail-manip ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail-manip") + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail-manip") # Install development packages # diff --git a/src/sail/CMakeLists.txt b/src/sail/CMakeLists.txt index 85590af..2303f63 100644 --- a/src/sail/CMakeLists.txt +++ b/src/sail/CMakeLists.txt @@ -118,11 +118,11 @@ install(TARGETS sail ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail") + PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail") # Install layouts for debugging codecs # -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/layout/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/sail/layout") +install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/layout/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/sail/layout") # Install development packages # ================================================ FILE: ports/sail/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO HappySeaFox/sail REF "v${VERSION}" SHA512 0e6bd4fb7910eda29e0cd6d96e31ff9a476d5836055e4653d6401ab72209eccd3624b8c1e92b7cd0d22ecdaa8ffde44b155da36da61c99ec0c06e1d388bd1d67 HEAD_REF master PATCHES fix-heif.patch fix-include-directory.patch ) # Enable selected codecs set(ONLY_CODECS "") # List of codecs copy-pased from SAIL set(HIGHEST_PRIORITY_CODECS gif jpeg png svg webp) set(HIGH_PRIORITY_CODECS avif ico) set(MEDIUM_PRIORITY_CODECS heif openexr psd tiff) set(LOW_PRIORITY_CODECS bmp hdr jpeg2000 jpegxl pnm qoi tga) set(LOWEST_PRIORITY_CODECS jbig pcx wal xbm xpm xwd) foreach(CODEC ${HIGHEST_PRIORITY_CODECS} ${HIGH_PRIORITY_CODECS} ${MEDIUM_PRIORITY_CODECS} ${LOW_PRIORITY_CODECS} ${LOWEST_PRIORITY_CODECS}) if (CODEC IN_LIST FEATURES) list(APPEND ONLY_CODECS "${CODEC}") endif() endforeach() list(JOIN ONLY_CODECS "\;" ONLY_CODECS_ESCAPED) # Enable OpenMP if ("openmp" IN_LIST FEATURES) set(SAIL_ENABLE_OPENMP ON) endif() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if (VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(SAIL_WINDOWS_STATIC_CRT_FLAG "-DSAIL_WINDOWS_STATIC_CRT=OFF") else() set(SAIL_WINDOWS_STATIC_CRT_FLAG "-DSAIL_WINDOWS_STATIC_CRT=ON") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DSAIL_COMBINE_CODECS=ON -DSAIL_ENABLE_OPENMP=${SAIL_ENABLE_OPENMP} -DSAIL_ONLY_CODECS=${ONLY_CODECS_ESCAPED} -DSAIL_BUILD_APPS=OFF -DSAIL_BUILD_EXAMPLES=OFF ${SAIL_WINDOWS_STATIC_CRT_FLAG} ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Remove duplicate files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Move cmake configs vcpkg_cmake_config_fixup(PACKAGE_NAME sail CONFIG_PATH lib/cmake/sail DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME sailcodecs CONFIG_PATH lib/cmake/sailcodecs DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME sailcommon CONFIG_PATH lib/cmake/sailcommon DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME sailc++ CONFIG_PATH lib/cmake/sailc++ DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME sailmanip CONFIG_PATH lib/cmake/sailmanip DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") # Fix pkg-config files vcpkg_fixup_pkgconfig() # Unused because SAIL_COMBINE_CODECS is ON, removes an absolute path from the output vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sail-common/config.h" "#define SAIL_CODECS_PATH [^\r\n]+[\r\n]*" "" REGEX) # Handle usage file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sail/usage ================================================ The package sail provides CMake targets: C libraries: find_package(Sail CONFIG REQUIRED) target_link_libraries(main PRIVATE SAIL::sail) C++ bindings: find_package(SailC++ CONFIG REQUIRED) target_link_libraries(main PRIVATE SAIL::sail-c++) ================================================ FILE: ports/sail/vcpkg.json ================================================ { "name": "sail", "version-semver": "0.9.10", "description": "The missing small and fast image decoding library for humans (not for machines)", "homepage": "https://github.com/HappySeaFox/sail", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "highest-priority-codecs" ], "features": { "all": { "description": "Enable all codecs", "dependencies": [ { "name": "sail", "features": [ "high-priority-codecs", "highest-priority-codecs", "low-priority-codecs", "lowest-priority-codecs", "medium-priority-codecs" ] } ] }, "avif": { "description": "Enable AVIF codec", "dependencies": [ "libavif" ] }, "bmp": { "description": "Enable BMP codec" }, "gif": { "description": "Enable GIF codec", "dependencies": [ "giflib" ] }, "hdr": { "description": "Enable HDR codec" }, "heif": { "description": "Enable HEIF codec", "dependencies": [ "libheif" ] }, "high-priority-codecs": { "description": "Enable high priority codecs such as AVIF", "dependencies": [ { "name": "sail", "features": [ "avif", "ico" ] } ] }, "highest-priority-codecs": { "description": "Enable highest priority codecs such as JPEG or PNG", "dependencies": [ { "name": "sail", "features": [ "gif", "jpeg", "png", "svg", "webp" ] } ] }, "ico": { "description": "Enable ICO codec" }, "jbig": { "description": "Enable JBIG codec", "dependencies": [ "jbigkit" ] }, "jpeg": { "description": "Enable JPEG codec", "dependencies": [ "libjpeg-turbo" ] }, "jpeg2000": { "description": "Enable JPEG2000 codec", "dependencies": [ "openjpeg" ] }, "jpegxl": { "description": "Enable JPEG XL codec", "dependencies": [ "libjxl" ] }, "low-priority-codecs": { "description": "Enable low priority codecs such as TGA", "dependencies": [ { "name": "sail", "features": [ "bmp", "hdr", "jpeg2000", "jpegxl", "pnm", "qoi", "tga" ] } ] }, "lowest-priority-codecs": { "description": "Enable lowest priority codecs such as XBM", "dependencies": [ { "name": "sail", "features": [ "jbig", "pcx", "wal", "xbm", "xpm", "xwd" ] } ] }, "medium-priority-codecs": { "description": "Enable medium priority codecs such as AVIF", "dependencies": [ { "name": "sail", "features": [ "heif", "openexr", "psd", "tiff" ] } ] }, "openexr": { "description": "Enable OPENEXR codec", "dependencies": [ "openexr" ] }, "openmp": { "description": "Enable OpenMP support" }, "pcx": { "description": "Enable PCX codec" }, "png": { "description": "Enable PNG codec", "dependencies": [ "libpng" ] }, "pnm": { "description": "Enable PNM codec" }, "psd": { "description": "Enable PSD codec" }, "qoi": { "description": "Enable QOI codec" }, "svg": { "description": "Enable SVG codec", "dependencies": [ "nanosvg" ] }, "tga": { "description": "Enable TGA codec" }, "tiff": { "description": "Enable TIFF codec", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "wal": { "description": "Enable WAL codec" }, "webp": { "description": "Enable WEBP codec", "dependencies": [ "libwebp" ] }, "xbm": { "description": "Enable XBM codec" }, "xpm": { "description": "Enable XPM codec" }, "xwd": { "description": "Enable XWD codec" } } } ================================================ FILE: ports/sajson/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(sajson) add_library(sajson INTERFACE) target_compile_features(sajson INTERFACE cxx_std_11) target_include_directories(sajson INTERFACE $ $) install(DIRECTORY include/ DESTINATION include USE_SOURCE_PERMISSIONS FILES_MATCHING PATTERN "*.h" ) install(TARGETS sajson EXPORT unofficial-sajson-config) install(EXPORT unofficial-sajson-config FILE unofficial-sajson-config.cmake NAMESPACE unofficial::sajson:: DESTINATION share/cmake/unofficial-sajson PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/sajson/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chadaustin/sajson REF 2dcfd350586375f9910f74821d4f07d67ae455ba SHA512 6029a640f8bd6c7cefc507819a18a708f6d7e9ce84fdd2998506cea26d597b999d2776a7307908f5df02994bc53c3c9bdf6a73344ab70ee6a5c775b54351e7d2 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-sajson CONFIG_PATH share/cmake/unofficial-sajson) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE.txt" "${CURRENT_PACKAGES_DIR}/share/sajson/copyright" COPYONLY) ================================================ FILE: ports/sajson/vcpkg.json ================================================ { "name": "sajson", "version-date": "2018-09-21", "port-version": 3, "description": "Lightweight, extremely high-performance JSON parser for C++11", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/salome-configuration/cmake-4.patch ================================================ diff --git a/cmake/SalomeMacros.cmake b/cmake/SalomeMacros.cmake index bb38859ee9..3b7662dcae 100644 --- a/cmake/SalomeMacros.cmake +++ b/cmake/SalomeMacros.cmake @@ -23,9 +23,6 @@ # Set-up global policies #---------------------------------------------------------------------------- CMAKE_POLICY(SET CMP0003 NEW) # Ensure proper linker behavior -IF(WIN32) - CMAKE_POLICY(SET CMP0020 OLD) # Disable automatic linking to qtmain.lib -ENDIF(WIN32) CMAKE_POLICY(SET CMP0053 NEW) # For correct Qt 5 detection procedure IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) CMAKE_POLICY(SET CMP0074 NEW) # Use ROOT variables when detecting packages ================================================ FILE: ports/salome-configuration/portfile.cmake ================================================ string(REPLACE "." "_" UNDERSCORE_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_CONFIG REPO SalomePlatform/configuration REF "V${UNDERSCORE_VERSION}" SHA512 e905a0f1e1105f5a630153036b80942032ccc07fad411d390e4da19d56561e224ac2ac681873b97d811d33ce4b0c9518ce3488b54414a42e011c39628d8e1673 HEAD_REF master PATCHES cmake-4.patch ) file(COPY "${SOURCE_PATH_CONFIG}/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH_CONFIG}/copyright/CEA_EDF.txt") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" [[set(SALOME_CONFIGURATION_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}")]]) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/cmake/SalomeMacros.cmake" contents) if(HDF5_WITH_PARALLEL) string(PREPEND contents "set(SALOME_USE_MPI ON)\n") endif() string(REPLACE [[SET(CMAKE_PREFIX_PATH "${${_envvar}}")]] "" contents "${contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/cmake/SalomeMacros.cmake" "${contents}") ================================================ FILE: ports/salome-configuration/vcpkg.json ================================================ { "name": "salome-configuration", "version": "9.10.0", "port-version": 2, "description": "Configuration files and other utilities for SALOME platform", "homepage": "https://www.salome-platform.org", "license": "LGPL-2.1-or-later", "supports": "windows | linux", "dependencies": [ { "$comment": "This is a dummy dependency to inject SALOME_USE_MPI depending on HDF5_WITH_PARALLEL", "name": "hdf5", "default-features": false } ] } ================================================ FILE: ports/salome-med-fichier/hdf5-2.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9eceab7..3e3fb80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,7 +82,7 @@ IF(WIN32) ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) # To disable windows warnings for strcpy, fopen, ... ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings std::copy, std::transform, ... ADD_DEFINITIONS(-DWNT -DWIN32) - ADD_DEFINITIONS(-D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required + #ADD_DEFINITIONS(-D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required ADD_DEFINITIONS(-DPPRO_NT_CALL) # For windows system functions call IF(NOT MINGW) diff --git a/include/med_hdfi.h b/include/med_hdfi.h index 517baa5..3303bf6 100644 --- a/include/med_hdfi.h +++ b/include/med_hdfi.h @@ -351,22 +351,22 @@ typedef struct { extern MEDC_EXPORT void * _MEDcheckAttributeStringInit( med_string_itdatas * const itdatas, const char * const attname, med_int attsize); extern MEDC_EXPORT -med_err _MEDcheckAttributeStringFunc(med_idt id,const char *lname, const H5L_info_t *linfo, med_string_itdatas *data); +med_err _MEDcheckAttributeStringFunc(med_idt id,const char *lname, const H5L_info1_t *linfo, med_string_itdatas *data); extern MEDC_EXPORT void _MEDcheckAttributeStringFin( med_string_itdatas * const itdatas); extern MEDC_EXPORT -med_err _MEDchecknSublinkFunc(med_idt id,const char *lname, const H5L_info_t *linfo, med_bool *data); +med_err _MEDchecknSublinkFunc(med_idt id,const char *lname, const H5L_info1_t *linfo, med_bool *data); #define MED_CHECK_ATTRIBUTE_FUNC(_check_med_type_) _MEDcheckAttributeFunc##_check_med_type_ #define MED_CHECK_ATTRIBUTE_INIT(_check_med_type_,_check_med_itdata_,_check_med_attname_,_check_med_attsize_) _MEDcheckAttributeInit##_check_med_type_ (_check_med_itdata_,_check_med_attname_,_check_med_attsize_) extern MEDC_EXPORT -med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info_t *linfo, void *data); +med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info1_t *linfo, void *data); extern MEDC_EXPORT -med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info_t *linfo, visitordatas *data); +med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info1_t *linfo, visitordatas *data); extern MEDC_EXPORT med_err _MEDsoftlinkDel(const med_idt id, const char * const softlinkname, @@ -402,7 +402,7 @@ med_err _MEDdatasetExist(const med_idt gid, med_bool * const datasetexist, med_bool * const isasoftlink ); -typedef herr_t (*medvisitorfunc)( hid_t g_id, const char *name, const H5L_info_t *info, void *op_data); +typedef herr_t (*medvisitorfunc)( hid_t g_id, const char *name, const H5L_info1_t *info, void *op_data); typedef medvisitorfunc mediteratorfunc; extern MEDC_EXPORT diff --git a/src/ci/MEDfileCompatibility.c b/src/ci/MEDfileCompatibility.c index ddfa489..fbd2ca3 100644 --- a/src/ci/MEDfileCompatibility.c +++ b/src/ci/MEDfileCompatibility.c @@ -114,8 +114,8 @@ MEDfileCompatibility(const char* const filename, #error "Don't forget to update the test version here when you change the major version of the library !" #endif #if H5_VERS_MINOR > 10 -#error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !" -#error "Cf. _MEDfileCreate ..." +//#error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !" +//#error "Cf. _MEDfileCreate ..." #endif SORTIE: diff --git a/src/hdfi/_MEDattributeNumWr.c b/src/hdfi/_MEDattributeNumWr.c index 5ec7447..cd594f2 100644 --- a/src/hdfi/_MEDattributeNumWr.c +++ b/src/hdfi/_MEDattributeNumWr.c @@ -34,7 +34,7 @@ med_err _MEDattributeNumWr(med_idt pid, med_err _ret=-1; med_idt type_hdf; med_access_mode MED_ACCESS_MODE; - H5O_info_t _oinfo; + H5O_info1_t _oinfo; if ( (MED_ACCESS_MODE = _MEDmodeAcces(pid) ) == MED_ACC_UNDEF ) { MED_ERR_(_ret,MED_ERR_INVALID,MED_ERR_ACCESSMODE, "MED_ACC_UNDEF" ); @@ -77,7 +77,7 @@ med_err _MEDattributeNumWr(med_idt pid, if ( (_attid=H5Aopen( pid, attname, H5P_DEFAULT )) >= 0 ) { - if ( H5Oget_info( pid, &_oinfo ) <0) { + if ( H5Oget_info1( pid, &_oinfo ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info"); goto ERROR; } diff --git a/src/hdfi/_MEDattributeNumWrByName.c b/src/hdfi/_MEDattributeNumWrByName.c index 229c836..e1dd020 100644 --- a/src/hdfi/_MEDattributeNumWrByName.c +++ b/src/hdfi/_MEDattributeNumWrByName.c @@ -34,7 +34,7 @@ med_err _MEDattributeNumWrByName(med_idt pid, med_err _ret=-1; med_idt type_hdf; med_access_mode MED_ACCESS_MODE; - H5O_info_t _oinfo; + H5O_info1_t _oinfo; if ( (MED_ACCESS_MODE = _MEDmodeAcces(pid) ) == MED_ACC_UNDEF ) { MED_ERR_(_ret,MED_ERR_INVALID,MED_ERR_ACCESSMODE, "MED_ACC_UNDEF" ); @@ -68,7 +68,7 @@ med_err _MEDattributeNumWrByName(med_idt pid, if ( (_attid=H5Aopen_by_name( pid, path, attname, H5P_DEFAULT, H5P_DEFAULT )) >= 0 ) { - if ( H5Oget_info( pid, &_oinfo ) <0) { + if ( H5Oget_info1( pid, &_oinfo ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info"); goto ERROR; } diff --git a/src/hdfi/_MEDcheckAttributeStringFunc.c b/src/hdfi/_MEDcheckAttributeStringFunc.c index 4def049..66ec6d9 100644 --- a/src/hdfi/_MEDcheckAttributeStringFunc.c +++ b/src/hdfi/_MEDcheckAttributeStringFunc.c @@ -22,10 +22,10 @@ #include #include -med_err _MEDcheckAttributeStringFunc(med_idt id,const char *lname, const H5L_info_t *linfo, med_string_itdatas *data) { +med_err _MEDcheckAttributeStringFunc(med_idt id,const char *lname, const H5L_info1_t *linfo, med_string_itdatas *data) { med_err _ret=-1; - H5O_info_t oinfo; + H5O_info1_t oinfo; #ifdef _DEBUG_ @@ -40,7 +40,7 @@ med_err _MEDcheckAttributeStringFunc(med_idt id,const char *lname, const H5L_inf oinfo.type=H5G_LINK; break; case H5L_TYPE_HARD: - if ( H5Oget_info_by_name( id, lname, &oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( id, lname, &oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE(lname); } diff --git a/src/hdfi/_MEDchecknSublinkFunc.c b/src/hdfi/_MEDchecknSublinkFunc.c index 2e1a284..2b1db1f 100644 --- a/src/hdfi/_MEDchecknSublinkFunc.c +++ b/src/hdfi/_MEDchecknSublinkFunc.c @@ -22,10 +22,10 @@ #include #include -med_err _MEDchecknSublinkFunc(med_idt id,const char *lname, const H5L_info_t *linfo, med_bool *data) { +med_err _MEDchecknSublinkFunc(med_idt id,const char *lname, const H5L_info1_t *linfo, med_bool *data) { med_err _ret=-1; - H5O_info_t oinfo; + H5O_info1_t oinfo; H5G_info_t _group_info; @@ -41,7 +41,7 @@ med_err _MEDchecknSublinkFunc(med_idt id,const char *lname, const H5L_info_t *li oinfo.type=H5G_LINK; break; case H5L_TYPE_HARD: - if ( H5Oget_info_by_name( id, lname, &oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( id, lname, &oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE(lname); } diff --git a/src/hdfi/_MEDcopyName.c b/src/hdfi/_MEDcopyName.c index 45523a4..3edb463 100644 --- a/src/hdfi/_MEDcopyName.c +++ b/src/hdfi/_MEDcopyName.c @@ -24,7 +24,7 @@ #include -med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info_t *linfo, void *data) +med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info1_t *linfo, void *data) { if (data != NULL) strcpy(data,lname); diff --git a/src/hdfi/_MEDdatagroupExist.c b/src/hdfi/_MEDdatagroupExist.c index e815d5c..5b38005 100644 --- a/src/hdfi/_MEDdatagroupExist.c +++ b/src/hdfi/_MEDdatagroupExist.c @@ -31,10 +31,10 @@ med_err _MEDdatagroupExist(const med_idt gid, { med_err _ret=-1; - H5L_info_t _linkinfo; - H5O_info_t _oinfo; + H5L_info1_t _linkinfo; + H5O_info1_t _oinfo; - if ( H5Lget_info( gid, datagroupname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( gid, datagroupname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { switch ( _linkinfo.type ) { @@ -45,7 +45,7 @@ med_err _MEDdatagroupExist(const med_idt gid, case H5L_TYPE_HARD: *isasoftlink = MED_FALSE; - if ( H5Oget_info_by_name( gid, datagroupname, &_oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( gid, datagroupname, &_oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE( datagroupname); } diff --git a/src/hdfi/_MEDdatasetExist.c b/src/hdfi/_MEDdatasetExist.c index 4852945..a1cc2a0 100644 --- a/src/hdfi/_MEDdatasetExist.c +++ b/src/hdfi/_MEDdatasetExist.c @@ -31,12 +31,12 @@ med_err _MEDdatasetExist(const med_idt gid, des datasets*/ { med_err _ret=-1; - H5L_info_t _linkinfo; - H5O_info_t _oinfo; + H5L_info1_t _linkinfo; + H5O_info1_t _oinfo; - if ( H5Lget_info( gid, datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( gid, datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { switch ( _linkinfo.type ) { @@ -47,7 +47,7 @@ med_err _MEDdatasetExist(const med_idt gid, case H5L_TYPE_HARD: *isasoftlink = MED_FALSE; - if ( H5Oget_info_by_name( gid, datasetname, &_oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( gid, datasetname, &_oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE( datasetname); } diff --git a/src/hdfi/_MEDdatasetExistByMedtype.c b/src/hdfi/_MEDdatasetExistByMedtype.c index e69a29a..0f87cb4 100644 --- a/src/hdfi/_MEDdatasetExistByMedtype.c +++ b/src/hdfi/_MEDdatasetExistByMedtype.c @@ -30,14 +30,14 @@ med_err _MEDdatasetExistByMedtype(const med_idt gid, { med_err _ret=-1; char _datasetname[3+1]=""; - H5L_info_t _linkinfo; + H5L_info1_t _linkinfo; if ( _MEDgetDatasetName(_datasetname,meddatatype,cmode) < 0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"_MEDgetDatasetName"); SSCRUTE(_datasetname);ISCRUTE_int(meddatatype);goto ERROR; } - if ( H5Lget_info( gid, _datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( gid, _datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { *datasetexist = MED_TRUE; if ( _linkinfo.type == H5L_TYPE_SOFT ) *isasoftlink=MED_TRUE; diff --git a/src/hdfi/_MEDdatasetWr.c b/src/hdfi/_MEDdatasetWr.c index 67580fe..a494d99 100644 --- a/src/hdfi/_MEDdatasetWr.c +++ b/src/hdfi/_MEDdatasetWr.c @@ -35,7 +35,7 @@ med_err _MEDdatasetWr(const med_idt id, med_access_mode _MED_ACCESS_MODE; med_int _nvaluesperentity=0,_nconstituentpervalue=0; int _i=0; - H5L_info_t _linkinfo; + H5L_info1_t _linkinfo; hsize_t _dim=0; const void *_value= value; @@ -146,7 +146,7 @@ med_err _MEDdatasetWr(const med_idt id, goto ERROR; } - if ( H5Lget_info( id, datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( id, datasetname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { if ( _linkinfo.type == H5L_TYPE_SOFT ) if ( H5Ldelete(id,datasetname,H5P_DEFAULT) < 0 ) { MED_ERR_(_ret,MED_ERR_DELETE,MED_ERR_LINK,datasetname); diff --git a/src/hdfi/_MEDfileCreate.c b/src/hdfi/_MEDfileCreate.c index c685eda..c2e67da 100644 --- a/src/hdfi/_MEDfileCreate.c +++ b/src/hdfi/_MEDfileCreate.c @@ -132,15 +132,15 @@ med_idt _MEDfileCreate(const char * const filename, const med_access_mode access { case 0: _release = MED_40_LATEST_RELEASE; break; #if (MED_NUM_MINEUR == 0) && (MED_NUM_RELEASE > 1) -#error "Don't forget to change the value of MED_40_LATEST_RELEASE when you change the release of version 4.0 of the library !" +//#error "Don't forget to change the value of MED_40_LATEST_RELEASE when you change the release of version 4.0 of the library !" #endif /* case 1: _release = 0; break; */ /* case 2: _release = 1; break; */ #if MED_NUM_MINEUR > 1 -#error "Don't forget to add a case line version here when you change the minor version of the library !" +//#error "Don't forget to add a case line version here when you change the minor version of the library !" #endif #if MED_NUM_MAJEUR != 4 -#error "Don't forget to add a case line version here when you change the major version of the library !" +//#error "Don't forget to add a case line version here when you change the major version of the library !" #endif case MED_NUM_MINEUR: _release = MED_NUM_RELEASE; break; default: @@ -160,7 +160,7 @@ med_idt _MEDfileCreate(const char * const filename, const med_access_mode access * Un test autoconf permet de fixer un intervalle de version HDF à MED. */ #if H5_VERS_MINOR > 10 -#error "Don't forget to change the compatibility version of the library !" +//#error "Don't forget to change the compatibility version of the library !" #endif if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) { diff --git a/src/hdfi/_MEDfileOpen.c b/src/hdfi/_MEDfileOpen.c index 7044763..d567886 100644 --- a/src/hdfi/_MEDfileOpen.c +++ b/src/hdfi/_MEDfileOpen.c @@ -73,7 +73,7 @@ med_idt _MEDfileOpen(const char * const filename,const med_access_mode accessmod • The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order). */ #if H5_VERS_MINOR > 10 -#error "Don't forget to change the compatibility version of the library !" +//#error "Don't forget to change the compatibility version of the library !" #endif /* L'avantage de bloquer le modèle interne HDF5 est que l'on peut modifier des fichiers med de différentes versions majeures de fichiers. diff --git a/src/hdfi/_MEDisasoftlink.c b/src/hdfi/_MEDisasoftlink.c index bb03ea7..8d8cd3a 100644 --- a/src/hdfi/_MEDisasoftlink.c +++ b/src/hdfi/_MEDisasoftlink.c @@ -28,10 +28,10 @@ med_err _MEDisasoftlink(const med_idt id, ) { med_err _ret=-1; - H5L_info_t _linkinfo; + H5L_info1_t _linkinfo; *isasoftlink=MED_FALSE; - if ( H5Lget_info( id, linkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( id, linkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { if ( _linkinfo.type == H5L_TYPE_SOFT ) *isasoftlink=MED_TRUE; } else { diff --git a/src/hdfi/_MEDlinkObjs.c b/src/hdfi/_MEDlinkObjs.c index 6d00f5b..3640b2e 100644 --- a/src/hdfi/_MEDlinkObjs.c +++ b/src/hdfi/_MEDlinkObjs.c @@ -22,7 +22,7 @@ #include #include -med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info_t *linfo, visitordatas *data) { +med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info1_t *linfo, visitordatas *data) { med_err _ret=-1; med_idt _gid=0,_gid1=0,_gid2=0; @@ -35,7 +35,7 @@ med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info_t *linfo, visi med_int _attfalse=0; char * _tmppath=0; hsize_t _it; - H5O_info_t oinfo; + H5O_info1_t oinfo; /* hid_t _ocp_plist_id = H5Pcreate( H5P_OBJECT_COPY ); */ /* hid_t _lcp_plist_id = H5Pcreate( H5P_LINK_CREATE ); */ @@ -62,7 +62,7 @@ med_err _MEDlinkobjs(med_idt id,const char *lname, const H5L_info_t *linfo, visi sur un lien hard Sur un lien soft H5O_TYPE_UNKNOWN */ - if ( H5Oget_info_by_name( id, lname, &oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( id, lname, &oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE(lname); } diff --git a/src/hdfi/_MEDmemFileOpen.c b/src/hdfi/_MEDmemFileOpen.c index 7a10e9b..58e66b1 100644 --- a/src/hdfi/_MEDmemFileOpen.c +++ b/src/hdfi/_MEDmemFileOpen.c @@ -435,7 +435,7 @@ med_idt _MEDmemFileOpen(const char * const filename, med_memfile * const memfile } #if H5_VERS_MINOR > 10 -#error "Don't forget to change the compatibility version of the library !" +//#error "Don't forget to change the compatibility version of the library !" #endif if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18) ) { MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_FILEVERSION_MSG); diff --git a/src/hdfi/_MEDobjectGetRank.c b/src/hdfi/_MEDobjectGetRank.c index 6762533..b6e823b 100644 --- a/src/hdfi/_MEDobjectGetRank.c +++ b/src/hdfi/_MEDobjectGetRank.c @@ -27,9 +27,9 @@ med_err _MEDobjectGetRank(const med_idt gid, med_size * const rank ) { med_err _ret=-1; - H5L_info_t _linkinfo; + H5L_info1_t _linkinfo; - if ( H5Lget_info( gid, linkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( gid, linkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { if ( _linkinfo.type == H5L_TYPE_HARD ) { if ( _linkinfo.corder_valid) { *rank = (med_size) _linkinfo.corder; diff --git a/src/hdfi/_MEDparFileCreate.c b/src/hdfi/_MEDparFileCreate.c index e1fc029..aaea0cd 100644 --- a/src/hdfi/_MEDparFileCreate.c +++ b/src/hdfi/_MEDparFileCreate.c @@ -65,7 +65,7 @@ med_idt _MEDparFileCreate(const char * const filename, const med_access_mode acc * Un test autoconf permet de fixer un intervalle de version HDF à MED. */ #if H5_VERS_MINOR > 10 -#error "Don't forget to change the compatibility version of the library !" +//#error "Don't forget to change the compatibility version of the library !" #endif if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) { diff --git a/src/hdfi/_MEDparFileOpen.c b/src/hdfi/_MEDparFileOpen.c index 875989f..e55be80 100644 --- a/src/hdfi/_MEDparFileOpen.c +++ b/src/hdfi/_MEDparFileOpen.c @@ -56,7 +56,7 @@ med_idt _MEDparFileOpen(const char * const filename,const med_access_mode access goto ERROR; } #if H5_VERS_MINOR > 10 -#error "Don't forget to change the compatibility version of the library !" +//#error "Don't forget to change the compatibility version of the library !" #endif if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) { MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_FILEVERSION_MSG); diff --git a/src/hdfi/_MEDsoftlinkDel.c b/src/hdfi/_MEDsoftlinkDel.c index ec76910..0054eb2 100644 --- a/src/hdfi/_MEDsoftlinkDel.c +++ b/src/hdfi/_MEDsoftlinkDel.c @@ -27,10 +27,10 @@ med_err _MEDsoftlinkDel(const med_idt id, ) { med_err _ret=-1; - H5L_info_t _linkinfo; + H5L_info1_t _linkinfo; - if ( H5Lget_info( id, softlinkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { + if ( H5Lget_info1( id, softlinkname, &_linkinfo, H5P_DEFAULT ) >= 0 ) { if ( _linkinfo.type == H5L_TYPE_SOFT ) { if ( H5Ldelete(id,softlinkname,H5P_DEFAULT) < 0 ) { MED_ERR_(_ret,MED_ERR_DELETE,MED_ERR_LINK,softlinkname); diff --git a/src/hdfi/__MEDobjectGetName.c b/src/hdfi/__MEDobjectGetName.c index e8f0efb..f368100 100644 --- a/src/hdfi/__MEDobjectGetName.c +++ b/src/hdfi/__MEDobjectGetName.c @@ -22,7 +22,7 @@ #include -extern med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info_t *linfo, void *data); +extern med_err _MEDcopyName(med_idt id,const char *lname, const H5L_info1_t *linfo, void *data); med_err __MEDobjectGetName(const med_idt fid, const char * const path, const med_size ind, char *name, diff --git a/tools/medimport/2.3.6/_MEDconvertStringDatasets.c b/tools/medimport/2.3.6/_MEDconvertStringDatasets.c index 9a1c706..b3e7625 100644 --- a/tools/medimport/2.3.6/_MEDconvertStringDatasets.c +++ b/tools/medimport/2.3.6/_MEDconvertStringDatasets.c @@ -31,11 +31,11 @@ #define MED_TAILLE_LNOM 80 #define MAX_LEN_PATH 255 -med_err _MEDconvertStringDatasets(med_idt id, const char *lname, const H5L_info_t *linfo, visitordatas *data) { +med_err _MEDconvertStringDatasets(med_idt id, const char *lname, const H5L_info1_t *linfo, visitordatas *data) { med_err _ret=-1,_err=-1; med_idt _gid=0; - H5O_info_t oinfo; + H5O_info1_t oinfo; char _tmpbuff[MAX_LEN_PATH+1]=""; int _tmpbuffsize=0; med_int _nbratt=0; @@ -52,7 +52,7 @@ med_err _MEDconvertStringDatasets(med_idt id, const char *lname, const H5L_info_ oinfo.type=(H5O_type_t) H5G_LINK; break; case H5L_TYPE_HARD: - if ( H5Oget_info_by_name( id, lname, &oinfo, H5P_DEFAULT ) <0) { + if ( H5Oget_info_by_name1( id, lname, &oinfo, H5P_DEFAULT ) <0) { MED_ERR_(_ret,MED_ERR_CALL,MED_ERR_API,"H5Oget_info_by_name"); SSCRUTE(lname); } diff --git a/tools/medimport/include/MAJ_236_300.h b/tools/medimport/include/MAJ_236_300.h index a3647c9..f640d0a 100644 --- a/tools/medimport/include/MAJ_236_300.h +++ b/tools/medimport/include/MAJ_236_300.h @@ -51,7 +51,7 @@ extern int MAJ_236_300_string_datasets(med_idt fid, extern med_err _MEDconvertStringDatasets(med_idt id, const char *lname, - const H5L_info_t *linfo, + const H5L_info1_t *linfo, visitordatas *data); extern void MAJ_236_300_champs(med_idt fid); diff --git a/src/hdfi/_MEDobjectGetName.c b/src/hdfi/_MEDobjectGetName.c index b9ebcf2..48aafe8 100644 --- a/src/hdfi/_MEDobjectGetName.c +++ b/src/hdfi/_MEDobjectGetName.c @@ -28,7 +28,7 @@ _MEDobjectGetName(const med_idt fid,const char * const path,const med_size ind,c med_err _ret=-1; - if ( H5Literate_by_name(fid,path, H5_INDEX_NAME, H5_ITER_INC, + if ( H5Literate_by_name1(fid,path, H5_INDEX_NAME, H5_ITER_INC, (hsize_t *) &ind, _MEDcopyName, name,H5P_DEFAULT ) < 0 ) { MED_ERR_(_ret,MED_ERR_VISIT,MED_ERR_DATAGROUP,path); /* H5Eprint1(stderr); */ diff --git a/src/hdfi/__MEDobjectGetName.c b/src/hdfi/__MEDobjectGetName.c index f368100..c500b21 100644 --- a/src/hdfi/__MEDobjectGetName.c +++ b/src/hdfi/__MEDobjectGetName.c @@ -57,7 +57,7 @@ __MEDobjectGetName(const med_idt fid, const char * const path, const med_size in /* goto ERROR; */ /* } */ - if ( H5Literate_by_name(fid,path, index_type, order, (hsize_t *) &ind, _MEDcopyName, name,H5P_DEFAULT ) < 0 ) { + if ( H5Literate_by_name1(fid,path, index_type, order, (hsize_t *) &ind, _MEDcopyName, name,H5P_DEFAULT ) < 0 ) { MED_ERR_(_ret,MED_ERR_VISIT,MED_ERR_DATAGROUP,path); /* H5Eprint1(stderr); */ goto ERROR; ================================================ FILE: ports/salome-med-fichier/hdf5.patch ================================================ diff --git a/config/cmake_files/medMacros.cmake b/config/cmake_files/medMacros.cmake index 79698ad..5fe3d5f 100644 --- a/config/cmake_files/medMacros.cmake +++ b/config/cmake_files/medMacros.cmake @@ -448,14 +448,14 @@ MACRO(MED_FIND_HDF5) ## Requires 1.10.x version ## IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1) - MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.") + #MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.") ENDIF() ## ## ADD_DEFINITIONS(-DH5_USE_16_API) IF(WIN32 AND MEDFILE_BUILD_SHARED_LIBS) - ADD_DEFINITIONS(-D_HDF5USEDLL_ -DH5_BUILT_AS_DYNAMIC_LIB=1) + #ADD_DEFINITIONS(-D_HDF5USEDLL_ -DH5_BUILT_AS_DYNAMIC_LIB=1) ENDIF() # Take what is exposed by the standard FIND_PACKAGE() ================================================ FILE: ports/salome-med-fichier/more-fixes.patch ================================================ diff --git a/src/ci/MEDfileExist.c b/src/ci/MEDfileExist.c index f4f1683..6c902ae 100644 --- a/src/ci/MEDfileExist.c +++ b/src/ci/MEDfileExist.c @@ -25,6 +25,7 @@ #define W_OK 2 /* Test for write permission. */ #define X_OK 1 /* Test for execute permission. */ #define F_OK 0 /* Test for existence. */ +#include #else #include #endif diff --git a/src/misc/_MEDaccess.c b/src/misc/_MEDaccess.c index 481203d..4c18b2a 100644 --- a/src/misc/_MEDaccess.c +++ b/src/misc/_MEDaccess.c @@ -17,6 +17,7 @@ #if defined(WIN32) #include +#include #else #include #endif diff --git a/tools/mdump/mdump2.c b/tools/mdump/mdump2.c index 820a5f0..c711a8b 100644 --- a/tools/mdump/mdump2.c +++ b/tools/mdump/mdump2.c @@ -80,6 +80,7 @@ extern "C" { #ifdef PPRO_NT #define F_OK 0 +#include #else #include #endif diff --git a/tools/mdump/mdump3.c b/tools/mdump/mdump3.c index 228fb81..cb648b5 100644 --- a/tools/mdump/mdump3.c +++ b/tools/mdump/mdump3.c @@ -81,6 +81,7 @@ extern "C" { #ifdef PPRO_NT #define F_OK 0 #define snprintf _snprintf +#include #else #include #endif diff --git a/tools/mdump/mdump4.c b/tools/mdump/mdump4.c index 6f2fc3d..725cd14 100644 --- a/tools/mdump/mdump4.c +++ b/tools/mdump/mdump4.c @@ -81,6 +81,7 @@ extern "C" { #ifdef PPRO_NT #define F_OK 0 #define snprintf _snprintf +#include #else #include #endif ================================================ FILE: ports/salome-med-fichier/portfile.cmake ================================================ # This library cannot easily be found only. Be aware that the original source repository is not accessible. # Checking for updates needs to be done manually by trying to increase the version in the link. # med-fichier is needed to build all libraries of the https://www.salome-platform.org/ since it is the io # entry point to open and read .med files. vcpkg_download_distfile(ARCHIVE URLS "https://files.salome-platform.org/Salome/medfile/med-${VERSION}.tar.gz" FILENAME "med-${VERSION}.tar.gz" SHA512 f211fa82750a7cc935baa3a50a55d16e40117a0f2254b482492ba8396d82781ca84960995da7a16b2b5be0b93ce76368bf4b311bb8af0e5f0243e7051c9c554c HEADERS "Referer: https://www.salome-platform.org/" ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES hdf5.patch # CMake patches for hdf5 hdf5-2.patch # source patches to fix API version of HDF5 more-fixes.patch # include fixes ) foreach(_source_file IN ITEMS "CMakeLists.txt" "CMakeLists.txt.in") vcpkg_replace_string("${SOURCE_PATH}/${_source_file}" "SET(INSTALL_CMAKE_CONFIG_DIR " "SET(INSTALL_CMAKE_CONFIG_DIR share/MEDFile) #" ) endforeach() foreach(_source_file IN ITEMS "src/CMakeLists.txt" "src/CMakeLists.txt.in" "tools/medimport/CMakeLists.txt" "tools/medimport/CMakeLists.txt.in") vcpkg_replace_string("${SOURCE_PATH}/${_source_file}" " DESTINATION lib\${LIB_SUFFIX})" " DESTINATION lib\${LIB_SUFFIX} RUNTIME DESTINATION bin)" ) endforeach() vcpkg_replace_string("${SOURCE_PATH}/tools/mdump/CMakeLists.txt" "{CMAKE_COMMAND} -E create_symlink mdump4 mdump " "{CMAKE_COMMAND} -E copy mdump4${VCPKG_TARGET_EXECUTABLE_SUFFIX} mdump${VCPKG_TARGET_EXECUTABLE_SUFFIX} " ) vcpkg_replace_string("${SOURCE_PATH}/tools/mdump/CMakeLists.txt" "{CMAKE_COMMAND} -E create_symlink xmdump4 xmdump " "{CMAKE_COMMAND} -E copy xmdump4 xmdump " ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MEDFILE_BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" MEDFILE_BUILD_SHARED_LIBS) # If there are problems with the cmake build try switching to autotools for !windows vcpkg_cmake_configure( DISABLE_PARALLEL_CONFIGURE # Writes into the source dir SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMEDFILE_BUILD_SHARED_LIBS=${MEDFILE_BUILD_SHARED_LIBS} -DMEDFILE_BUILD_STATIC_LIBS=${MEDFILE_BUILD_STATIC_LIBS} -DMEDFILE_INSTALL_DOC=OFF -DMEDFILE_BUILD_TESTS=OFF -DCMAKE_Fortran_COMPILER=NOTFOUND # Disable Fortran ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME MEDFile) set(tool_list mdump mdump2 mdump3 mdump4 medconforme) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND tool_list medimport) endif() vcpkg_copy_tools(TOOL_NAMES ${tool_list} AUTO_CLEAN) foreach(xdump_file IN ITEMS xmdump xmdump2 xmdump3 xmdump4) file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${xdump_file}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${xdump_file}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/${xdump_file}" "${CURRENT_PACKAGES_DIR}/bin/" [[`dirname $0`/]]) file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${xdump_file}") endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.LESSER") # GPL seems to be mentioned due to autotools stuff ================================================ FILE: ports/salome-med-fichier/vcpkg.json ================================================ { "name": "salome-med-fichier", "version": "4.1.1", "port-version": 3, "description": "med-fichier provides a low level C API for fine-grained access to the structure of MED files (.med)", "homepage": "https://www.salome-platform.org", "license": "LGPL-3.0-or-later", "dependencies": [ { "name": "hdf5", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/salome-medcoupling/fix-missing-symbols.patch ================================================ diff --git a/src/MEDCoupling/MEDCouplingMemArray.cxx b/src/MEDCoupling/MEDCouplingMemArray.cxx index 60d040806..8cb6748d2 100644 --- a/src/MEDCoupling/MEDCouplingMemArray.cxx +++ b/src/MEDCoupling/MEDCouplingMemArray.cxx @@ -44,6 +44,8 @@ using namespace MEDCoupling; template class MEDCOUPLING_EXPORT MEDCoupling::MemArray; template class MEDCOUPLING_EXPORT MEDCoupling::MemArray; +template class MEDCOUPLING_EXPORT MEDCoupling::MemArray; +template class MEDCOUPLING_EXPORT MEDCoupling::MemArray; template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplate; template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplate; template class MEDCOUPLING_EXPORT MEDCoupling::DataArrayTemplateClassic; ================================================ FILE: ports/salome-medcoupling/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # Fixing static builds requires fixing/removing _declspec(dllexport|dllimport) # in the EXPORTS macros. endif() string(REPLACE "." "_" UNDERSCORE_VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SalomePlatform/medcoupling REF "V${UNDERSCORE_VERSION}" SHA512 576b10daf58830e934a3f9d06abc63a22be76b995b2c2f2d1ab0bf16a76f3ba90f583eab06be2d665874cb433f8c990b7a7fd6724f69a5a3f9a5c20c775407cd HEAD_REF master PATCHES win.patch fix-missing-symbols.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" MEDCOUPLING_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCONFIGURATION_ROOT_DIR=${SALOME_CONFIGURATION_ROOT_DIR}" -DMEDCOUPLING_BUILD_TESTS=OFF -DMEDCOUPLING_BUILD_PY_TESTS=OFF -DMEDCOUPLING_BUILD_DOC=OFF -DMEDCOUPLING_BUILD_STATIC=${MEDCOUPLING_BUILD_STATIC} -DMEDCOUPLING_ENABLE_PYTHON=OFF -DMEDCOUPLING_ENABLE_RENUMBER=OFF -DMEDCOUPLING_METIS_V5=ON -DMETIS_LIBRARIES=metis # this is a target -DSCOTCH_LIBRARIES=SCOTCH::scotch ) vcpkg_cmake_install() file(GLOB dll_files "${CURRENT_PACKAGES_DIR}/lib/*.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") foreach(dll_file IN LISTS dll_files) string(REPLACE "/lib/" "/bin/" new_loc "${dll_file}") file(RENAME "${dll_file}" "${new_loc}") endforeach() if(NOT VCPKG_BUILD_TYPE) file(GLOB dll_files "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") foreach(dll_file IN LISTS dll_files) string(REPLACE "/lib/" "/bin/" new_loc "${dll_file}") file(RENAME "${dll_file}" "${new_loc}") endforeach() endif() vcpkg_cmake_config_fixup(PACKAGE_NAME MEDCoupling CONFIG_PATH "cmake_files") if(VCPKG_TARGET_IS_WINDOWS) set(file "${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingTargets-release.cmake") file(READ "${file}" contents) string(REGEX REPLACE "/lib/([^.]+)\\.dll" "/bin/\\1.dll" contents "${contents}") file(WRITE "${file}" "${contents}") if(NOT VCPKG_BUILD_TYPE) set(file "${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingTargets-debug.cmake") file(READ "${file}" contents) string(REGEX REPLACE "/lib/([^.]+)\\.dll" "/bin/\\1.dll" contents "${contents}") file(WRITE "${file}" "${contents}") endif() endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/MEDCoupling/MEDCouplingConfig.cmake" "/cmake_files" "/share/MEDCoupling") vcpkg_copy_tools(TOOL_NAMES medpartitioner AUTO_CLEAN) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/salome-medcoupling/vcpkg.json ================================================ { "name": "salome-medcoupling", "version": "9.10.0", "port-version": 1, "description": "salome-medcoupling is a part of SALOME platform to manipulate meshes and fields in memory, and use salome-med format for files.", "homepage": "https://www.salome-platform.org", "license": "GPL-2.0-or-later", "supports": "!(windows & static)", "dependencies": [ "boost-chrono", "boost-date-time", "boost-filesystem", "boost-regex", "boost-serialization", "boost-system", "boost-thread", "libxml2", "metis", "salome-configuration", "salome-med-fichier", "scotch", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/salome-medcoupling/win.patch ================================================ diff --git a/src/MEDPartitioner/CMakeLists.txt b/src/MEDPartitioner/CMakeLists.txt index e088a0ed4..048505267 100644 --- a/src/MEDPartitioner/CMakeLists.txt +++ b/src/MEDPartitioner/CMakeLists.txt @@ -114,8 +114,12 @@ SET(medpartitionercpp_LDFLAGS interpkernel medcouplingcpp medloader - -lpthread ) + +if(NOT WIN32) + list(APPEND medpartitionercpp_LDFLAGS -lpthread) +endif() + IF(MEDCOUPLING_PARTITIONER_PARMETIS) SET(medpartitionercpp_HEADERS_HXX ${medpartitionercpp_HEADERS_HXX} MEDPARTITIONER_ParMetisGraph.hxx) SET(medpartitionercpp_SOURCES ${medpartitionercpp_SOURCES} MEDPARTITIONER_ParMetisGraph.cxx MEDPARTITIONER_MetisGraph.cxx) ================================================ FILE: ports/sassc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sass/sassc REF "${VERSION}" SHA512 fff3995ce8608bdaed5f4f1352ae4f1f882de58663b932c598d6168df421e4dbf907ec0f8caebb1e56490a71ca11105726f291b475816dd53e705bc53121969f HEAD_REF master PATCHES remove_compiler_flags.patch ) find_library(LIBSASS_DEBUG sass PATHS "${CURRENT_INSTALLED_DIR}/debug/lib/" NO_DEFAULT_PATH) find_library(LIBSASS_RELEASE sass PATHS "${CURRENT_INSTALLED_DIR}/lib/" NO_DEFAULT_PATH) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{LIBS} "$ENV{LIBS} -lgetopt") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS "--with-libsass-include='${CURRENT_INSTALLED_DIR}/include'" OPTIONS_DEBUG "--with-libsass-lib='${LIBSASS_DEBUG}'" OPTIONS_RELEASE "--with-libsass-lib='${LIBSASS_RELEASE}'" ) vcpkg_make_install(MAKEFILE GNUmakefile) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/sassc/remove_compiler_flags.patch ================================================ diff --git a/GNUmakefile.am b/GNUmakefile.am index 58e8aecd1..da6a7db98 100644 --- a/GNUmakefile.am +++ b/GNUmakefile.am @@ -1,6 +1,6 @@ ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS} -I m4 -I script -AM_COPT = -Wall -O2 +AM_COPT = AM_COVLDFLAGS = if ENABLE_COVERAGE ================================================ FILE: ports/sassc/vcpkg.json ================================================ { "name": "sassc", "version": "3.6.2", "port-version": 2, "description": "SassC is a wrapper around libsass (http://github.com/sass/libsass) used to generate a useful command-line application that can be installed and packaged for several operating systems.", "homepage": "https://github.com/sass/sassc", "dependencies": [ { "name": "getopt", "platform": "windows & !mingw" }, "libsass", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/saucer/0001-use-local-packages.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 32fdea7..e1dea41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -286,62 +286,22 @@ endif() include("cmake/nuget.cmake") include("cmake/module.cmake") -CPMFindPackage( - NAME lockpp - VERSION 3.0 - GIT_REPOSITORY "https://github.com/Curve/lockpp" -) - -CPMFindPackage( - NAME boost_callable_traits - GIT_TAG boost-1.87.0 - GIT_REPOSITORY "https://github.com/boostorg/callable_traits" -) - -CPMFindPackage( - NAME ereignis - VERSION 4.3 - GIT_REPOSITORY "https://github.com/Soundux/ereignis" -) - -CPMFindPackage( - NAME fmt - GIT_TAG 11.1.1 - GIT_REPOSITORY "https://github.com/fmtlib/fmt" -) - -CPMFindPackage( - NAME flagpp - VERSION 3.0 - GIT_REPOSITORY "https://github.com/Curve/flagpp" -) - -CPMFindPackage( - NAME rebind - VERSION 5.1.1 - GIT_REPOSITORY "https://github.com/Curve/rebind" -) - -CPMFindPackage( - NAME poolparty - VERSION 3.0.1 - GIT_REPOSITORY "https://github.com/Curve/poolparty" -) - -CPMFindPackage( - NAME eraser - VERSION 2.2.1 - GIT_REPOSITORY "https://github.com/Curve/eraser" -) - -CPMFindPackage( - NAME boost_preprocessor - GIT_TAG boost-1.87.0 - GIT_REPOSITORY "https://github.com/boostorg/preprocessor" -) - -target_link_libraries(${PROJECT_NAME} ${saucer_linkage} boost_preprocessor cr::lockpp cr::flagpp) -target_link_libraries(${PROJECT_NAME} PUBLIC boost_callable_traits cr::ereignis fmt::fmt cr::rebind cr::poolparty cr::eraser) +find_path(EREIGNIS_INCLUDE_DIRS "ereignis") +add_library(cr::ereignis INTERFACE IMPORTED) +target_include_directories(cr::ereignis INTERFACE ${EREIGNIS_INCLUDE_DIRS}) +find_path(POOLPARTY_INCLUDE_DIRS "poolparty") +add_library(cr::poolparty INTERFACE IMPORTED) +target_include_directories(cr::poolparty INTERFACE ${POOLPARTY_INCLUDE_DIRS}) + +find_package(fmt CONFIG REQUIRED) +find_package(eraser REQUIRED) +find_package(flagpp REQUIRED) +find_package(lockpp REQUIRED) +find_package(rebind REQUIRED) +find_package(Boost REQUIRED COMPONENTS callable_traits preprocessor) + +target_link_libraries(${PROJECT_NAME} ${saucer_linkage} Boost::preprocessor cr::lockpp cr::flagpp) +target_link_libraries(${PROJECT_NAME} PUBLIC Boost::callable_traits cr::ereignis fmt::fmt cr::rebind cr::poolparty cr::eraser) # -------------------------------------------------------------------------------------------------------- # Setup Backends @@ -405,7 +365,7 @@ if (saucer_backend STREQUAL "WebView2") target_compile_definitions(${PROJECT_NAME} PRIVATE UNICODE=1 _UNICODE=1 NOMINMAX=1) include("cmake/webview2.cmake") - target_link_libraries(${PROJECT_NAME} ${saucer_linkage} Shlwapi gdiplus webview2::webview2) + target_link_libraries(${PROJECT_NAME} ${saucer_linkage} Dwmapi Shcore Shlwapi gdiplus webview2::webview2) endif() # -------------------------------------------------------------------------------------------------------- @@ -418,12 +378,8 @@ if (saucer_serializer STREQUAL "Glaze") ) target_sources(${PROJECT_NAME} PRIVATE ${glaze_sources}) - - CPMFindPackage( - NAME glaze - VERSION 4.2.4 - GIT_REPOSITORY "https://github.com/stephenberry/glaze" - ) + + find_package(glaze CONFIG REQUIRED) target_link_libraries(${PROJECT_NAME} PUBLIC glaze::glaze) endif() diff --git a/cmake/webview2.cmake b/cmake/webview2.cmake index 9ee3dbc..7ec2d9f 100644 --- a/cmake/webview2.cmake +++ b/cmake/webview2.cmake @@ -1,7 +1,8 @@ include("cmake/nuget.cmake") if (NOT saucer_prefer_remote) - find_package(webview2 CONFIG REQUIRED) + find_package(unofficial-webview2 CONFIG REQUIRED) + add_library(webview2::webview2 ALIAS unofficial::webview2::webview2) return() endif() ================================================ FILE: ports/saucer/0002-fix-glaze-opts.patch ================================================ diff --git a/src/glaze.serializer.cpp b/src/glaze.serializer.cpp index d785d6e..ee626e3 100644 --- a/src/glaze.serializer.cpp +++ b/src/glaze.serializer.cpp @@ -27,10 +27,16 @@ struct glz::meta namespace saucer::serializers::glaze { - static constexpr auto opts = glz::opts{ - .error_on_unknown_keys = true, - .error_on_missing_keys = true, - .raw_string = false, + struct raw_string_opts : glz::opts { + bool raw_string = true; + }; + + static constexpr auto opts = raw_string_opts{ + glz::opts{ + .error_on_unknown_keys = true, + .error_on_missing_keys = true, + }, + false // raw_string }; serializer::~serializer() = default; ================================================ FILE: ports/saucer/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO saucer/saucer REF "v${VERSION}" SHA512 083b92079bf324fb9e50b3d6291ee3654b8e4e2926c292c9dc092b1c4ce336ce4d4bbea7e14d52291340c692887b8ab92d1f9f3d50aed6092b5465242572bfdc HEAD_REF dev PATCHES 0001-use-local-packages.patch 0002-fix-glaze-opts.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} DISABLE_PARALLEL_CONFIGURE OPTIONS -Dsaucer_no_polyfill=ON -Dsaucer_prefer_remote=OFF -DCPM_USE_LOCAL_PACKAGES=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/saucer/vcpkg.json ================================================ { "name": "saucer", "version": "6.0.1", "port-version": 6, "description": "Next-gen desktop apps with web-frontend in C++", "homepage": "https://saucer.github.io/", "license": "MIT", "supports": "!android & !uwp", "dependencies": [ "boost-callable-traits", "boost-preprocessor", "eraser", "ereignis", "flagpp", "fmt", "glaze", { "name": "gtk", "platform": "linux" }, "lockpp", "poolparty", "rebind", { "name": "vcpkg-cmake", "host": true }, { "name": "webview2", "platform": "windows" } ] } ================================================ FILE: ports/sbgecom/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SBG-Systems/sbgECom REF "${VERSION}-stable" SHA512 d2d9aa2751f96fe87590aad71c276d2ab7a7a9e230887f8f83355b55fc25b57046dc84a8c5d2cfc8d4fd58e6c92210d3527937fe923cea660785d12db74997c3 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "sbgECom" CONFIG_PATH lib/cmake/sbgECom ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/sbgecom/usage ================================================ sbgECom provides CMake targets: find_package(sbgECom CONFIG REQUIRED) target_link_libraries(main PRIVATE sbgECom::sbgECom) ================================================ FILE: ports/sbgecom/vcpkg.json ================================================ { "name": "sbgecom", "version": "5.3.2276", "description": "C library used to communicate with SBG Systems IMU, AHRS and INS", "homepage": "https://github.com/SBG-Systems/sbgECom", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sbp/0000-install-include-directory.patch ================================================ diff --git a/c/src/CMakeLists.txt b/c/src/CMakeLists.txt index dc59feffa..93d6c8dc7 100644 --- a/c/src/CMakeLists.txt +++ b/c/src/CMakeLists.txt @@ -53,7 +53,7 @@ target_include_directories(sbp PUBLIC $ $ - $ + $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include ) ================================================ FILE: ports/sbp/portfile.cmake ================================================ # Windows shared libraries are not supported yet # See https://github.com/swift-nav/libsbp/issues/1062 if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO swift-nav/libsbp REF "v${VERSION}" SHA512 2dc626cc1667da271bca565f499471de0ec0d533694ffee1c72f25f8ba4a8944294cea67b8a35b48da80c66da623e23bc92a0a7478a6882b72485761fca36417 HEAD_REF master PATCHES 0000-install-include-directory.patch ) vcpkg_from_github( OUT_SOURCE_PATH CMAKE_EXTRA_MODS REPO swift-nav/cmake REF d5558e3ad3c2cdabfb1ba31d20ea4defce570a95 SHA512 50c49b808b774c3fec1dd4488713f8fde423fda1d7e34a9ea8ecabc738d19f31ce8d52928c9d8012921d69130526ebd327635b1d4ca43f1b452066191c8756b7 HEAD_REF master ) # Copy cmake files to expected location file(INSTALL "${CMAKE_EXTRA_MODS}/CCache.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/SwiftCmakeOptions.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/SwiftTargets.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/ListTargets.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/CompileOptions.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/LanguageStandards.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/ClangFormat.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/ClangTidy.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/CodeCoverage.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") file(INSTALL "${CMAKE_EXTRA_MODS}/TestTargets.cmake" DESTINATION "${SOURCE_PATH}/c/cmake/common") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/c" OPTIONS -Dlibsbp_ENABLE_TESTS=OFF -Dlibsbp_ENABLE_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/libsbp/cmake PACKAGE_NAME libsbp) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/sbp/usage ================================================ sbp provides CMake targets: find_package(libsbp CONFIG REQUIRED) target_link_libraries(main PRIVATE swiftnav::sbp) ================================================ FILE: ports/sbp/vcpkg.json ================================================ { "name": "sbp", "version-semver": "6.3.2", "description": "Swift Navigation Binary Protocol (SBP) is a binary protocol for communicating GNSS data used by Piksi devices.", "homepage": "https://github.com/swift-nav/libsbp", "documentation": "https://swift-nav.github.io/libsbp", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/scenepic/0001-fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6df6915..de73c67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,13 +100,11 @@ FetchContent_Declare( set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) -if(NOT TARGET Eigen3::Eigen) - FetchContent_GetProperties(eigen) - if(NOT eigen_POPULATED) - FetchContent_Populate(eigen) - set( BUILD_TESTING OFF ) - add_subdirectory(${eigen_SOURCE_DIR} ${eigen_BINARY_DIR} EXCLUDE_FROM_ALL) - endif() +find_package(Eigen3 REQUIRED) + +if(Eigen3_FOUND) + set( BUILD_TESTING OFF ) + include_directories(${EIGEN3_INCLUDE_DIR}) if(NOT TARGET Eigen3::Eigen) add_library(Eigen3::Eigen ALIAS eigen) endif() @@ -194,8 +192,8 @@ endif() # -------------------- Install ------------------------------------ set(INSTALL_CONFIGDIR cmake) -set(INSTALL_LIBDIR build/native/lib) -set(INSTALL_INCLUDEDIR build/native/include) +set(INSTALL_LIBDIR lib) +set(INSTALL_INCLUDEDIR include) install(TARGETS scenepic EXPORT scenepic-targets @@ -203,7 +201,7 @@ install(TARGETS scenepic LIBRARY DESTINATION ${INSTALL_LIBDIR} ) -if( WIN32 ) +if( 0 ) if(${CMAKE_BUILD_TYPE} STREQUAL "Debug") install(FILES $/scenepic.pdb diff --git a/src/include/scenepic/matrix.h b/src/include/scenepic/matrix.h index c93e3c5..0e723da 100644 --- a/src/include/scenepic/matrix.h +++ b/src/include/scenepic/matrix.h @@ -9,6 +9,7 @@ #include #include +#include #include #include #include diff --git a/src/scenepic/CMakeLists.txt b/src/scenepic/CMakeLists.txt index f3d9673..916ab28 100644 --- a/src/scenepic/CMakeLists.txt +++ b/src/scenepic/CMakeLists.txt @@ -47,7 +47,7 @@ target_compile_features(scenepic PRIVATE cxx_std_14) target_include_directories( scenepic PUBLIC - $ + $ $ $ PRIVATE ================================================ FILE: ports/scenepic/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/scenepic REF "v${VERSION}" SHA512 79c20697051ef7061a51cc73f232e5ba83f8bc5a62ee3b9a4d55182112b201c805c25461fcd6699cc6db70c4439b116d1d27e66cd4e431471438ac7968836eed HEAD_REF main PATCHES 0001-fix-dependencies.patch ) # Run npm install and npm run build on the cloned project execute_process( COMMAND npm install WORKING_DIRECTORY "${SOURCE_PATH}" ) execute_process( COMMAND npm run build WORKING_DIRECTORY "${SOURCE_PATH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCPP_TARGETS=cpp ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/README.md" "${CURRENT_PACKAGES_DIR}/debug/CHANGELOG.md" "${CURRENT_PACKAGES_DIR}/README.md" "${CURRENT_PACKAGES_DIR}/CHANGELOG.md" "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/scenepic/vcpkg.json ================================================ { "name": "scenepic", "version": "1.1.1", "port-version": 1, "description": "A Powerful, easy to use, and portable visualization toolkit for mixed 3D and 2D content", "homepage": "https://microsoft.github.io/scenepic/", "license": "MIT", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/scintilla/0001-static-lib.patch ================================================ diff --git a/win32/Scintilla.vcxproj b/win32/Scintilla.vcxproj index 82aa9b7..5eac42f 100644 --- a/win32/Scintilla.vcxproj +++ b/win32/Scintilla.vcxproj @@ -34,7 +34,7 @@ - DynamicLibrary + StaticLibrary Unicode v143 ================================================ FILE: ports/scintilla/0002-static-crt.patch ================================================ diff --git a/win32/Scintilla.vcxproj b/win32/Scintilla.vcxproj index 82aa9b7..6b6f340 100644 --- a/win32/Scintilla.vcxproj +++ b/win32/Scintilla.vcxproj @@ -102,6 +102,7 @@ _DEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreadedDebug Default @@ -112,6 +113,7 @@ _DEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreadedDebug Default @@ -122,6 +124,7 @@ _DEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreadedDebug Default @@ -133,6 +136,7 @@ true NDEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreaded true @@ -146,6 +150,7 @@ true NDEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreaded true @@ -159,6 +164,7 @@ true NDEBUG;%(PreprocessorDefinitions) stdcpp17 + MultiThreaded true ================================================ FILE: ports/scintilla/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.scintilla.org/scintilla558.zip" FILENAME "scintilla558.zip" SHA512 b1cb0249426331c9fa14e3d3908be629814b10cba552f40ee7e7fe93957994a49550dd0ecb5a3d21d44f91ae9ba91f5fc3c1248700ddebcc7cd41334dc41adaf ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND PATCHES 0001-static-lib.patch) endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND PATCHES 0002-static-crt.patch) endif() vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE 5.5.8 PATCHES ${PATCHES} ) vcpkg_install_msbuild( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH Win32/Scintilla.vcxproj ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}" FILES_MATCHING PATTERN "*.*") ================================================ FILE: ports/scintilla/vcpkg.json ================================================ { "name": "scintilla", "version": "5.5.8", "description": "A free source code editing component for Win32, GTK+, and OS X", "homepage": "https://www.scintilla.org/", "supports": "windows & !uwp & !mingw", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/sciplot/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sciplot/sciplot REF f8d779a1110b76c6bdc77edcdc7fa798156a6917 #v0.3.1 SHA512 fa21895c637bc42071fbd951e1c2ee450798398863626e31015f106077de4ad17dc276d77f2f1a4a7679c055c8cd8caafea513d746ac7ddbb22a16cc9382f39a HEAD_REF vcpkg ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSCIPLOT_BUILD_EXAMPLES=OFF -DSCIPLOT_BUILD_TESTS=OFF -DSCIPLOT_BUILD_DOCS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/sciplot) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sciplot/vcpkg.json ================================================ { "name": "sciplot", "version": "0.3.1", "port-version": 1, "description": "A modern c++ scientific plotting library powered by gnuplot", "homepage": "https://github.com/sciplot/sciplot", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sciter-js/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) if(VCPKG_TARGET_IS_UWP) message(FATAL_ERROR "Sciter only supports Windows Desktop") endif() set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(SCITER_REVISION 5fe93fb3a354e522cf0a86ea2628accbe2f50655) set(SCITER_SHA 8af99827f9c1f905bee5b56063ff525b2296d72fd837f486545924eea57468d3a53fdd40d64526935627cc2e31a65d3e197507fdeb7c4f732b7860109ace03a8) if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64) set(SCITER_ARCH x64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(SCITER_ARCH x32) else() message(FATAL_ERROR "Sciter only supports x86/x64") endif() # check out the `https://gitlab.com/sciter-engine/sciter-js-sdk/-/archive/${SCITER_REVISION}/sciter-js-sdk-${SCITER_REVISION}.tar.gz` # hash checksum can be obtained with `curl -L -o tmp.tgz ${URL} && vcpkg hash tmp.tgz` vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO sciter-engine/sciter-js-sdk REF ${SCITER_REVISION} SHA512 ${SCITER_SHA} ) # install include directory file(INSTALL ${SOURCE_PATH}/include/ DESTINATION ${CURRENT_PACKAGES_DIR}/include/sciter-js FILES_MATCHING PATTERN "*.cpp" PATTERN "*.mm" PATTERN "*.h" PATTERN "*.hpp" ) set(SCITER_SHARE "${CURRENT_PACKAGES_DIR}/share/sciter-js") set(SCITER_TOOLS ${CURRENT_PACKAGES_DIR}/tools/sciter-js) set(TOOL_PERMS FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) # license file(COPY ${SOURCE_PATH}/CHANGELOG.md DESTINATION ${SCITER_SHARE}) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${SCITER_SHARE} RENAME copyright) # tools if(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(SCITER_BIN ${SOURCE_PATH}/bin/linux/x64) file(INSTALL ${SOURCE_PATH}/bin/linux/packfolder DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SOURCE_PATH}/bin/linux/qjs DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SOURCE_PATH}/bin/linux/qjsc DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/usciter DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/inspector DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-sqlite.so DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/libsciter-gtk.so DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) if ("sqlite" IN_LIST FEATURES) file(INSTALL ${SCITER_BIN}/sciter-sqlite.so DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-sqlite.so DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter-sqlite.so DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() elseif(VCPKG_TARGET_IS_OSX) set(SCITER_BIN ${SOURCE_PATH}/bin/macosx) file(INSTALL ${SCITER_BIN}/packfolder DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/qjs DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/qjsc DESTINATION ${SCITER_TOOLS} ${TOOL_PERMS}) file(INSTALL ${SCITER_BIN}/inspector.app DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/usciterjs.app DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/libsciter.dylib DESTINATION ${SCITER_TOOLS}) execute_process(COMMAND sh -c "chmod +x usciterjs.app/Contents/MacOS/usciterjs" WORKING_DIRECTORY ${SCITER_TOOLS}) execute_process(COMMAND sh -c "chmod +x inspector.app/Contents/MacOS/inspector" WORKING_DIRECTORY ${SCITER_TOOLS}) if ("sqlite" IN_LIST FEATURES) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dylib DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() if ("webview" IN_LIST FEATURES) file(INSTALL ${SCITER_BIN}/sciter-webview.dylib DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-webview.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter-webview.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(INSTALL ${SCITER_BIN}/libsciter.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/libsciter.dylib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) elseif(VCPKG_TARGET_IS_WINDOWS) set(SCITER_BIN ${SOURCE_PATH}/bin/windows/${SCITER_ARCH}) set(SCITER_BIN32 ${SOURCE_PATH}/bin/windows/x32) file(INSTALL ${SOURCE_PATH}/bin/windows/packfolder.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SOURCE_PATH}/bin/windows/qjs.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SOURCE_PATH}/bin/windows/qjsc.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/scapp.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/usciter.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/inspector.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/window-mixin.exe DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${SCITER_TOOLS}) if ("sqlite" IN_LIST FEATURES) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dll DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter-sqlite.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() if ("webview" IN_LIST FEATURES) file(INSTALL ${SCITER_BIN}/sciter-webview.dll DESTINATION ${SCITER_TOOLS}) file(INSTALL ${SCITER_BIN}/sciter-webview.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter-webview.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) endif() file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin) file(INSTALL ${SCITER_BIN}/sciter.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) message(WARNING "Sciter requires manual deployment of the correct DLL files.") endif() ================================================ FILE: ports/sciter-js/vcpkg.json ================================================ { "name": "sciter-js", "version": "6.0.3.7", "description": "Sciter.JS - Sciter but with QuickJS on board instead of TIScript. Sciter is an embeddable HTML/CSS/scripting engine.", "homepage": "https://gitlab.com/sciter-engine/sciter-js-sdk", "supports": "!uwp & !arm & !static & !android & !freebsd & !openbsd & !netbsd", "features": { "sqlite": { "description": "Add sciter-sqlite support" }, "webview": { "description": "Add sciter-webview support" } } } ================================================ FILE: ports/scnlib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eliaskosunen/scnlib REF "v${VERSION}" SHA512 db14d71da3c1ecb849f00ac1e334f39c532592230e950aa1009ff00ba56670cb71e33ca457fd4ac66595ff43f0dca0e42d45f672848b9cde3cba80f19ef8693f HEAD_REF master PATCHES # support fast_float 7.0.0 scnlib-pr-136.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSCN_TESTS=OFF -DSCN_EXAMPLES=OFF -DSCN_BENCHMARKS=OFF -DSCN_DOCS=OFF -DSCN_USE_EXTERNAL_FAST_FLOAT=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/scn) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/scn" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/scnlib/scnlib-pr-136.patch ================================================ diff --git a/src/scn/impl.cpp b/src/scn/impl.cpp index aa0d334..ab859a4 100644 --- a/src/scn/impl.cpp +++ b/src/scn/impl.cpp @@ -721,15 +721,17 @@ scan_expected fast_float_fallback(impl_init_data data, struct fast_float_impl_base : impl_base { fast_float::chars_format get_flags() const { - unsigned format_flags{}; + fast_float::chars_format format_flags{}; if ((m_options & float_reader_base::allow_fixed) != 0) { - format_flags |= fast_float::fixed; + format_flags = + static_cast(format_flags | fast_float::chars_format::fixed); } if ((m_options & float_reader_base::allow_scientific) != 0) { - format_flags |= fast_float::scientific; + format_flags = + static_cast(format_flags | fast_float::chars_format::scientific); } - return static_cast(format_flags); + return format_flags; } }; ================================================ FILE: ports/scnlib/vcpkg.json ================================================ { "name": "scnlib", "version": "4.0.1", "port-version": 1, "description": "scnlib is a modern C++ library for replacing scanf and std::istream", "homepage": "https://scnlib.dev/", "license": "Apache-2.0", "dependencies": [ "fast-float", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/scope-guard/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ricab/scope_guard REF "v${VERSION}" SHA512 e2488bdfc14bd5696d3bd5909bb7355003f76258a4ab39778e17aedf338cb2ca548caf568fad93d51b602c891ba96a3c7b3ef6e21dcf4bd9cb595d01d5c063a8 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/scope_guard.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/scope-guard/vcpkg.json ================================================ { "name": "scope-guard", "version-semver": "1.1.0", "description": "A public, general, simple, and fast C++11 scope guard that defends against implicitly ignored returns and optionally enforces noexcept at compile time (in C++17), all in a SFINAE-friendly maner.", "homepage": "https://github.com/ricab/scope_guard", "license": "Unlicense" } ================================================ FILE: ports/scotch/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ce3c5ba..b05667f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ ############################################################ cmake_minimum_required(VERSION 3.10) -project(SCOTCH LANGUAGES C Fortran) +project(SCOTCH LANGUAGES C) # Add module directory list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1c05a82..fe7c106 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -105,9 +105,12 @@ endif() # Thread support in Scotch if(THREADS) - find_package(Threads) - if(Threads_FOUND) +set(USE_PTHREAD OFF) +if(NOT WIN32) + find_package(Threads REQUIRED) + if(CMAKE_USE_PTHREADS_INIT) add_definitions(-DCOMMON_PTHREAD -DSCOTCH_PTHREAD) + set(USE_PTHREAD ON) endif() if(CMAKE_USE_WIN32_THREADS_INIT) add_definitions(-DCOMMON_THREAD_WIN32) @@ -116,6 +119,12 @@ if(THREADS) if(PTHREAD_AFFINITY_LINUX_OK) add_definitions(-DCOMMON_PTHREAD_AFFINITY_LINUX) endif() +else() + find_package(PThreads4W REQUIRED) + add_definitions(-DCOMMON_PTHREAD -DSCOTCH_PTHREAD) + link_libraries(PThreads4W::PThreads4W) + set(USE_PTHREAD ON) +endif() endif() # decompression libs diff --git a/src/libscotch/CMakeLists.txt b/src/libscotch/CMakeLists.txt index f314d3a..27e466f 100644 --- a/src/libscotch/CMakeLists.txt +++ b/src/libscotch/CMakeLists.txt @@ -509,6 +509,22 @@ set(SCOTCH_C_SOURCES wgraph_part_zr.h wgraph_store.c) +add_library(scotcherr library_error.c) +target_include_directories(scotcherr PUBLIC + $ + $ + $) + +add_dependencies(scotcherr scotch_h) + +add_library(scotcherrexit library_error_exit.c) +target_include_directories(scotcherrexit PUBLIC + $ + $ + $) + +add_dependencies(scotcherrexit scotch_h) + add_library(scotch ${SCOTCH_C_SOURCES}) set_target_properties(scotch PROPERTIES VERSION ${SCOTCH_VERSION_LONG} @@ -551,10 +567,14 @@ if(LIBLZMA_FOUND) endif() # Add thread library -if(Threads_FOUND) - target_compile_definitions(scotch PRIVATE COMMON_PTHREAD SCOTCH_PTHREAD) - target_link_libraries(scotch PRIVATE Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) -endif(Threads_FOUND) +if(USE_PTHREAD) + target_compile_definitions(scotch PUBLIC COMMON_PTHREAD SCOTCH_PTHREAD) + if(NOT WIN32) + target_link_libraries(scotch PUBLIC Threads::Threads) + else() + target_link_libraries(scotch PUBLIC PThreads4W::PThreads4W) + endif() +endif(USE_PTHREAD) # Include files add_dependencies(scotch scotch_h scotchf_h) @@ -567,25 +587,7 @@ if(CMAKE_BUILD_TYPE STREQUAL Debug) target_compile_definitions(scotch PRIVATE SCOTCH_DEBUG_LIBRARY1) endif() -add_library(scotcherr library_error.c) -set_target_properties(scotcherr PROPERTIES VERSION ${SCOTCH_VERSION_LONG} - SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) -target_include_directories(scotcherr PUBLIC - $ - $ - $) - -add_dependencies(scotcherr scotch_h) - -add_library(scotcherrexit library_error_exit.c) -set_target_properties(scotcherrexit PROPERTIES VERSION ${SCOTCH_VERSION_LONG} - SOVERSION ${SCOTCH_VERSION}.${SCOTCH_RELEASE}) -target_include_directories(scotcherrexit PUBLIC - $ - $ - $) - -add_dependencies(scotcherrexit scotch_h) +target_link_libraries(scotch PRIVATE scotcherr) ################# # libPTScotch # @@ -786,10 +788,14 @@ if(BUILD_PTSCOTCH) set_target_properties(ptscotch PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") endif(APPLE) - if(Threads_FOUND) - target_compile_definitions(ptscotch PRIVATE SCOTCH_PTHREAD COMMON_PTHREAD) - target_link_libraries(ptscotch PRIVATE Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) - endif(Threads_FOUND) + if(USE_PTHREAD) + target_compile_definitions(ptscotch PUBLIC COMMON_PTHREAD SCOTCH_PTHREAD) + if(NOT WIN32) + target_link_libraries(ptscotch PUBLIC Threads::Threads) + else() + target_link_libraries(ptscotch PUBLIC PThreads4W::PThreads4W) + endif() + endif(USE_PTHREAD) add_library(ptscotcherr library_error.c) set_target_properties(ptscotcherr PROPERTIES VERSION ${SCOTCH_VERSION_LONG} diff --git a/src/libscotch/common_file_compress.c b/src/libscotch/common_file_compress.c index 5255cdc..5f60dc8 100644 --- a/src/libscotch/common_file_compress.c +++ b/src/libscotch/common_file_compress.c @@ -378,8 +378,11 @@ FileCompress * const compptr) encodat.avail_out = FILECOMPRESSDATASIZE; do { if ((encodat.avail_in == 0) && (enacval == LZMA_RUN)) { +#ifdef _MSC_VER + int bytenbr; //According to MSDN _read only returns int +#else ssize_t bytenbr; - +#endif bytenbr = read (compptr->infdnum, compptr->bufftab, FILECOMPRESSDATASIZE); /* Read from pipe */ if (bytenbr < 0) { errorPrint ("fileCompressLzma: cannot read"); diff --git a/src/libscotch/common_file_decompress.c b/src/libscotch/common_file_decompress.c index 6e80222..3048d90 100644 --- a/src/libscotch/common_file_decompress.c +++ b/src/libscotch/common_file_decompress.c @@ -373,7 +373,11 @@ FileCompress * const compptr) decodat.avail_out = FILECOMPRESSDATASIZE; do { if ((decodat.avail_in == 0) && (deacval == LZMA_RUN)) { +#ifdef _MSC_VER + size_t bytenbr; //According to MSDN fread returns size_t +#else ssize_t bytenbr; +#endif bytenbr = fread (compptr->bufftab, 1, FILECOMPRESSDATASIZE, compptr->oustptr); /* Read from pipe */ if (ferror (compptr->oustptr)) { diff --git a/src/libscotch/common_thread.h b/src/libscotch/common_thread.h index a8d3284..2e9ae28 100644 --- a/src/libscotch/common_thread.h +++ b/src/libscotch/common_thread.h @@ -82,6 +82,8 @@ struct ThreadContext_ { int dummval; /*+ Dummy value if no affinity enabled +*/ #ifdef COMMON_PTHREAD_AFFINITY_LINUX cpu_set_t cpusdat; /*+ Original thread mask of main thread +*/ +#else + void* dummy; #endif /* COMMON_PTHREAD_AFFINITY_LINUX */ } savedat; /*+ Save area for affinity mask +*/ #endif /* COMMON_PTHREAD */ diff --git a/src/libscotch/context.c b/src/libscotch/context.c index fbd8cbc..95e050a 100644 --- a/src/libscotch/context.c +++ b/src/libscotch/context.c @@ -70,8 +70,11 @@ static struct ContextValuesData_ { #else /* ((defined SCOTCH_DETERMINISTIC) || (defined COMMON_RANDOM_FIXED_SEED)) */ 0 #endif /* ((defined SCOTCH_DETERMINISTIC) || (defined COMMON_RANDOM_FIXED_SEED)) */ - }, { -1.0 } }; /* Temporary hack: dummy value since ISO C does not accept zero-sized arrays */ - + } +#ifndef _MSC_VER + , { } +#endif + }; /***********************************/ /* */ /* These routines handle contexts. */ @@ -89,6 +92,6 @@ contextOptionsInit ( Context * const contptr) { return (contextValuesInit (contptr, &contextvaluesdat, sizeof (contextvaluesdat), - CONTEXTOPTIONNUMNBR, (byte *) &contextvaluesdat.vinttab - (byte *) &contextvaluesdat, - CONTEXTOPTIONDBLNBR, (byte *) &contextvaluesdat.vdbltab - (byte *) &contextvaluesdat)); + CONTEXTOPTIONNUMNBR, (char *) &contextvaluesdat.vinttab - (char *) &contextvaluesdat, + CONTEXTOPTIONDBLNBR, (char *) &contextvaluesdat.vdbltab - (char *) &contextvaluesdat)); } diff --git a/src/libscotch/parser_ll.l b/src/libscotch/parser_ll.l index d655669..c535e2e 100644 --- a/src/libscotch/parser_ll.l +++ b/src/libscotch/parser_ll.l @@ -95,6 +95,10 @@ %option noyywrap %option reentrant +/* To support build on Windows */ +%option nounistd + + IDENT [A-Za-z][0-9A-Za-z]* INTEGER [0-9]+ FLOAT [0-9]+(\.[0-9]+)?([Ee][-+]?[0-9]+)? diff --git a/src/libscotch/parser_yy.y b/src/libscotch/parser_yy.y index 2350980..77faadd 100644 --- a/src/libscotch/parser_yy.y +++ b/src/libscotch/parser_yy.y @@ -81,6 +81,9 @@ typedef void * YY_BUFFER_STATE; /* The same; Flex and Bison de ** The defines and includes (bis). */ +#ifdef _MSC_VER +#define YY_NO_UNISTD_H +#endif #include "parser.h" #include "parser_yy.h" #include "parser_ly.h" diff --git a/src/scotch/CMakeLists.txt b/src/scotch/CMakeLists.txt index d706637..79e2be1 100644 --- a/src/scotch/CMakeLists.txt +++ b/src/scotch/CMakeLists.txt @@ -67,10 +67,15 @@ function(add_scotch_exe) add_dependencies(${file_we} scotch_h) target_include_directories(${file_we} PRIVATE ${GENERATED_INCLUDE_DIR}) target_compile_definitions(${file_we} PUBLIC "SCOTCH_CODENAME=\"${SCOTCH_CODENAME}\"") - if(Threads_FOUND) - target_compile_definitions(${file_we} PUBLIC SCOTCH_PTHREAD COMMON_PTHREAD) - target_link_libraries(${file_we} PUBLIC Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) - endif(Threads_FOUND) + + if(USE_PTHREAD) + target_compile_definitions(${file_we} PUBLIC COMMON_PTHREAD SCOTCH_PTHREAD) + if(NOT WIN32) + target_link_libraries(${file_we} PUBLIC Threads::Threads) + else() + target_link_libraries(${file_we} PUBLIC PThreads4W::PThreads4W) + endif() + endif(USE_PTHREAD) target_link_libraries(${file_we} PUBLIC scotch scotcherrexit) endfunction(add_scotch_exe) @@ -144,10 +149,14 @@ if(BUILD_PTSCOTCH) ${GENERATED_INCLUDE_DIR}/ptscotch.h) add_dependencies(${file_we} ptscotch_h) target_compile_definitions(${file_we} PUBLIC "SCOTCH_CODENAME=\"${SCOTCH_CODENAME}\"") - if(Threads_FOUND) - target_compile_definitions(${file_we} PUBLIC SCOTCH_PTHREAD COMMON_PTHREAD) - target_link_libraries(${file_we} PUBLIC Threads::Threads ${THREADS_PTHREADS_WIN32_LIBRARY}) - endif(Threads_FOUND) + if(USE_PTHREAD) + target_compile_definitions(${file_we} PUBLIC COMMON_PTHREAD SCOTCH_PTHREAD) + if(NOT WIN32) + target_link_libraries(${file_we} PUBLIC Threads::Threads) + else() + target_link_libraries(${file_we} PUBLIC PThreads4W::PThreads4W) + endif() + endif(USE_PTHREAD) target_include_directories(${file_we} PRIVATE ${GENERATED_INCLUDE_DIR}) target_link_libraries(${file_we} PUBLIC scotch ptscotch ptscotcherrexit) endfunction(add_ptscotch_exe) ================================================ FILE: ports/scotch/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.inria.fr/ OUT_SOURCE_PATH SOURCE_PATH REPO scotch/scotch REF "v${VERSION}" SHA512 9566ca800fd47df63844df6ff8b0fbbe8efbdea549914dfe9bf00d3d104a8c5631cfbef69e2677de68dcdb93addaeed158e6f6a373b5afe8cec82ac358946b65 HEAD_REF master PATCHES fix-build.patch ) vcpkg_find_acquire_program(FLEX) cmake_path(GET FLEX PARENT_PATH FLEX_DIR) vcpkg_add_to_path("${FLEX_DIR}") vcpkg_find_acquire_program(BISON) cmake_path(GET BISON PARENT_PATH BISON_DIR) vcpkg_add_to_path("${BISON_DIR}") if(VCPKG_TARGET_IS_WINDOWS) #Uses gcc intrinsics otherwise string(APPEND VCPKG_C_FLAGS " -DGRAPHMATCHNOTHREAD") string(APPEND VCPKG_CXX_FLAGS " -DGRAPHMATCHNOTHREAD") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ptscotch BUILD_PTSCOTCH ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_LIBESMUMPS=OFF -DBUILD_LIBSCOTCHMETIS=OFF -DTHREADS=ON -DMPI_THREAD_MULTIPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/scotch") vcpkg_copy_tools(TOOL_NAMES acpl amk_ccc amk_fft2 amk_grf amk_hy amk_m2 amk_p2 atst gbase gcv gmap gmk_hy gmk_m2 gmk_m3 gmk_msh gmk_ub2 gmtst gord gotst gscat gtst mcv mmk_m2 mmk_m3 mord mtst AUTO_CLEAN ) if ("ptscotch" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES dggath dgmap dgord dgscat dgtst AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/doc/CeCILL-C_V1-en.txt") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/scotch/SCOTCHConfig.cmake" "find_dependency(Threads)" "if(NOT WIN32)\nfind_dependency(Threads)\nelse()\nfind_dependency(PThreads4W)\nendif()") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/man" "${CURRENT_PACKAGES_DIR}/man" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/scotch/vcpkg.json ================================================ { "name": "scotch", "version": "7.0.5", "port-version": 1, "description": "Scotch: a software package for graph and mesh/hypergraph partitioning, graph clustering, and sparse matrix ordering", "homepage": "https://gitlab.inria.fr/scotch/scotch", "license": null, "supports": "!arm & !uwp & !android & !osx", "dependencies": [ "bzip2", "liblzma", "pthread", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "ptscotch": { "description": "Build PT-Scotch", "dependencies": [ "mpi" ] } } } ================================================ FILE: ports/scottt-debugbreak/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO scottt/debugbreak REF v1.0 SHA512 bf8c43d42d9b19c9a3cb1fa5955a24efb48c2c21f0d89685f23702c3e2644637f2e8c6ec599024866138519b107787baef838b6d981779e2484e30d20a7386b9 HEAD_REF master ) file( COPY "${SOURCE_PATH}/debugbreak.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/scottt-debugbreak/vcpkg.json ================================================ { "name": "scottt-debugbreak", "version": "1.0", "description": "Break into the debugger programmatically", "homepage": "https://github.com/scottt/debugbreak" } ================================================ FILE: ports/scylla-wrapper/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(scylla_wrapper CXX) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 /DUNICODE /D_UNICODE -D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DNOMINMAX) endif() find_library(DISTORM_LIBRARY distorm) find_path(DISTORM_INCLUDE_DIR distorm.h) include_directories(scylla_wrapper ${DISTORM_INCLUDE_DIR}) file(GLOB scylla_wrapper_srcs "scylla_wrapper/*.cpp") add_library(scylla_wrapper ${scylla_wrapper_srcs}) if(BUILD_SHARED_LIBS) target_compile_definitions(scylla_wrapper PRIVATE -DSCYLLA_WRAPPER_EXPORTS) endif() target_link_libraries(scylla_wrapper PRIVATE ${DISTORM_LIBRARY}) install( TARGETS scylla_wrapper RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES scylla_wrapper/scylla_wrapper.h DESTINATION include) endif() ================================================ FILE: ports/scylla-wrapper/portfile.cmake ================================================ # scylla_wrapper_dll supplies a DllMain vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO cypherpunk/scylla_wrapper_dll REF 4ad953ec04108269f1d80a91b2723b3e22d1b4d2 SHA512 d7cb72e097e86e96cf0a8f463c0f839c9608fa4276bc1e2e984290984bcfe8a5b2257b1511259cb78802819fadf2c1001dc3011ee2c6dc9dfcbdb561d34e0c35 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(REMOVE "${SOURCE_PATH}/scylla_wrapper_dll/distorm.h" "${SOURCE_PATH}/scylla_wrapper_dll/distorm_x64.lib" "${SOURCE_PATH}/scylla_wrapper_dll/distorm_x86.lib" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/scylla-wrapper/vcpkg.json ================================================ { "name": "scylla-wrapper", "version": "2018-08-26-16e6f435", "port-version": 3, "description": "This is a wrapper around Scylla. It exports functions for IAT fixing, dumping and PE rebuilding. based on https://github.com/NtQuery/Scylla commit 0f6b7198be (v0.9.6b).", "supports": "windows & !uwp & !arm & !static", "dependencies": [ "distorm", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/sdbus-cpp/portfile.cmake ================================================ message(WARNING "You will need to install sytemd dependencies to build sdbus-cpp:\nsudo apt install libsystemd-dev\n") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Kistler-Group/sdbus-cpp REF "v${VERSION}" SHA512 bdc628156dc8cc5a1ab0cb08bca8dc58801a233446bc34ce3d10d14b169f8dece16a1204937a674ea80976d9a92da72d72305b8e9ef617a50f7bc5a00c40223a ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool SDBUSCPP_BUILD_CODEGEN ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSDBUSCPP_BUILD_LIBSYSTEMD=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME sdbus-c++ CONFIG_PATH lib/cmake/sdbus-c++) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/bin" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/COPYING-LGPL-Exception") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") if ("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES sdbus-c++-xml2cpp AUTO_CLEAN) endif() ================================================ FILE: ports/sdbus-cpp/usage ================================================ sdbus-cpp provides CMake targets: find_package(sdbus-c++ REQUIRED) target_link_libraries(main PRIVATE SDBusCpp::sdbus-c++) ================================================ FILE: ports/sdbus-cpp/vcpkg.json ================================================ { "name": "sdbus-cpp", "version": "2.2.1", "description": "High-level C++ D-Bus library for Linux designed to provide easy-to-use yet powerful API in modern C++", "homepage": "https://github.com/Kistler-Group/sdbus-cpp", "license": "LGPL-2.1-only", "supports": "linux", "dependencies": [ "dbus", "libsystemd", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "build C++ codegen tool", "dependencies": [ "expat" ] } } } ================================================ FILE: ports/sdflib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO UPC-ViRVIG/SdfLib REF 8db373ef71d65be24badf6ae10750a932bbc223b SHA512 1231128e66b19923f78e2e3d9b827376c79abb22fe86bb200874a2ce3c283b4d6b8a077a1ab6749cd64b6d81f71a7d2f96d1f6dcc252a3a4aefaeb2145bbacf4 PATCHES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDFLIB_USE_ASSIMP=OFF -DSDFLIB_USE_OPENMP=OFF -DSDFLIB_USE_ENOKI=OFF -DSDFLIB_USE_SYSTEM_GLM=ON -DSDFLIB_USE_SYSTEM_SPDLOG=ON -DSDFLIB_USE_SYSTEM_CEREAL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sdflib/vcpkg.json ================================================ { "name": "sdflib", "version-date": "2025-11-03", "description": "Library for accelerating the queries of signed distance fields from triangle meshes.", "homepage": "https://github.com/UPC-ViRVIG/SdfLib", "license": "MIT", "dependencies": [ "cereal", "glm", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sdformat/cmake-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0fedcd42..8b28fdcc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,7 +63,18 @@ if (BUILD_SDF) # 2. if USE_INTERNAL_URDF is set to True, use the internal copy # 3. if USE_INTERNAL_URDF is set to False, force to search system installation, fail on error if (NOT DEFINED USE_INTERNAL_URDF OR NOT USE_INTERNAL_URDF) - gz_find_package(GzURDFDOM VERSION 1.0 QUIET) + find_package(urdfdom CONFIG REQUIRED) + add_library(GzURDFDOM::GzURDFDOM INTERFACE IMPORTED) + target_link_libraries(GzURDFDOM::GzURDFDOM + INTERFACE + urdfdom::urdfdom_model + urdfdom::urdfdom_world + urdfdom::urdfdom_sensor + urdfdom::urdfdom_model_state + ) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(GzURDFDOM DEFAULT_MSG) + if (NOT GzURDFDOM_FOUND) if (NOT DEFINED USE_INTERNAL_URDF) # fallback to internal urdf ================================================ FILE: ports/sdformat/no-absolute.patch ================================================ diff --git a/include/sdf/config.hh.in b/include/sdf/config.hh.in index 456eb12c..9a9ce91d 100644 --- a/include/sdf/config.hh.in +++ b/include/sdf/config.hh.in @@ -47,12 +47,5 @@ #cmakedefine SDFORMAT_DISABLE_CONSOLE_LOGFILE 1 -#ifndef SDF_SHARE_PATH -#define SDF_SHARE_PATH _Pragma ("GCC warning \"'SDF_SHARE_PATH' macro is deprecated, use sdf::getSharePath() function instead. \"") "${CMAKE_INSTALL_FULL_DATAROOTDIR}/" -#endif - -#ifndef SDF_VERSION_PATH -#define SDF_VERSION_PATH _Pragma ("GCC warning \"'SDF_VERSION_PATH' macro is deprecated and should not be used. \"") "${CMAKE_INSTALL_FULL_DATAROOTDIR}/sdformat${PROJECT_VERSION_MAJOR}/${PROJECT_VERSION}" -#endif #endif // #ifndef SDF_CONFIG_HH_ diff --git a/src/SDF.cc b/src/SDF.cc index 04fc5374..9cb98399 100644 --- a/src/SDF.cc +++ b/src/SDF.cc @@ -150,25 +150,8 @@ std::string findFile(sdf::Errors &_errors, const std::string &_filename, } } - // Next check the install path. - std::string path = sdf::filesystem::append(sdfSharePath(), filename); - if (sdf::filesystem::exists(path)) - { - return path; - } - - // Next check the versioned install path. - path = sdf::filesystem::append(sdfSharePath(), - "sdformat" + std::string(SDF_MAJOR_VERSION_STR), - sdf::SDF::Version(), filename); - - if (sdf::filesystem::exists(path)) - { - return path; - } - // Finally check to see if the given file exists. - path = filename; + std::string path = filename; if (sdf::filesystem::exists(path)) { return path; ================================================ FILE: ports/sdformat/portfile.cmake ================================================ string(REGEX MATCH "^[1-9]+" VERSION_MAJOR "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "gazebosim/${PORT}" REF "${PORT}${VERSION_MAJOR}_${VERSION}" SHA512 d7dc09f9b3eb1e99a7b0533c9f3db4c76afdaceb48ded06f1f08834417b5ccb5e213a99c5664c0c5c4cce5c38f7f84ebcf54d70eac13139190684a3893f588a8 HEAD_REF "sdf${VERSION_MAJOR}" PATCHES no-absolute.patch cmake-config.patch ) # Python is required to generate the EmbeddedSdf.cc file, which contains all the supported SDF # descriptions in a map of strings. The parser.cc file uses EmbeddedSdf.hh. vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DSKIP_PYBIND11=ON -DUSE_INTERNAL_URDF=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}${VERSION_MAJOR}") vcpkg_fixup_pkgconfig() # preserve the original port behavior file(COPY "${CURRENT_PACKAGES_DIR}/share/${PORT}/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}${VERSION_MAJOR}/") # fix dependency urdfdom vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}${VERSION_MAJOR}/${PORT}${VERSION_MAJOR}-config.cmake" "find_package(TINYXML2" [[ if (NOT TARGET GzURDFDOM::GzURDFDOM) find_package(urdfdom CONFIG ${gz_package_quiet} ${gz_package_required}) add_library(GzURDFDOM::GzURDFDOM INTERFACE IMPORTED) target_link_libraries(GzURDFDOM::GzURDFDOM INTERFACE urdfdom::urdfdom_model urdfdom::urdfdom_world urdfdom::urdfdom_sensor urdfdom::urdfdom_model_state ) endif() find_package(TINYXML2]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sdformat/vcpkg.json ================================================ { "name": "sdformat", "version": "15.4.0", "description": "Simulation Description Format (SDF) parser and description files.", "homepage": "http://sdformat.org/", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "gz-math", "gz-tools", "gz-utils", "tinyxml2", "urdfdom", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sdl1/SDL.vcxproj.in ================================================ Debug ARM64 Debug Win32 Debug x64 Release ARM64 Release Win32 Release x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} SDL @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false <_ProjectFileVersion>15.0.27924.0 $(SolutionDir)$(Configuration)\ $(Configuration)\ true $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true $(SolutionDir)$(Configuration)\ $(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false _DEBUG;%(PreprocessorDefinitions) true true Win32 .\Debug/SDL.tlb Disabled $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ false .\Debug/SDL.pch Level3 true OldStyle Default _DEBUG;%(PreprocessorDefinitions) 0x0409 /MACHINE:I386 %(AdditionalOptions) winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Debug/SDL.dll true false true .\Debug/SDL.pdb Windows false _DEBUG;%(PreprocessorDefinitions) true true X64 .\Debug/SDL.tlb Disabled $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ false .\Debug/SDL.pch Level3 true OldStyle Default _DEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Debug/SDL.dll true false true .\Debug/SDL.pdb Windows MachineX64 false _DEBUG;%(PreprocessorDefinitions) true true .\Debug/SDL.tlb Disabled $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;_DEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ false .\Debug/SDL.pch Level3 true OldStyle Default _DEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Debug/SDL.dll true false true .\Debug/SDL.pdb Windows false NDEBUG;%(PreprocessorDefinitions) true true Win32 .\Release/SDL.tlb OnlyExplicitInline false $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ false true .\Release/SDL.pch Level3 true Default NDEBUG;%(PreprocessorDefinitions) 0x0409 /MACHINE:I386 %(AdditionalOptions) winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/SDL.dll true false .\Release/SDL.pdb Windows NDEBUG;%(PreprocessorDefinitions) true true X64 .\Release/SDL.tlb OnlyExplicitInline false $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ false true .\Release/SDL.pch Level3 true Default NDEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/SDL.dll true false .\Release/SDL.pdb Windows MachineX64 NDEBUG;%(PreprocessorDefinitions) true true .\Release/SDL.tlb OnlyExplicitInline false $(ProjectDir)\..\..\include;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;NDEBUG;_WINDOWS;_WIN32_WINNT=0x0400;WINDOWS_IGNORE_PACKING_MISMATCH;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ false true .\Release/SDL.pch Level3 true Default NDEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/SDL.dll true false .\Release/SDL.pdb Windows ================================================ FILE: ports/sdl1/SDL1_2017.sln.in ================================================ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28010.2003 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDLmain", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM64 = Debug|ARM64 Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release_NoSTDIO|ARM64 = Release_NoSTDIO|ARM64 Release_NoSTDIO|Win32 = Release_NoSTDIO|Win32 Release_NoSTDIO|x64 = Release_NoSTDIO|x64 Release|ARM64 = Release|ARM64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|ARM64.ActiveCfg = Debug|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|ARM64.Build.0 = Debug|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|ARM64.ActiveCfg = Release|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|ARM64.Build.0 = Release|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|Win32.ActiveCfg = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|Win32.Build.0 = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|x64.ActiveCfg = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release_NoSTDIO|x64.Build.0 = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|ARM64.ActiveCfg = Release|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|ARM64.Build.0 = Release|ARM64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|ARM64.ActiveCfg = Debug|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|ARM64.Build.0 = Debug|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|ARM64.ActiveCfg = Release_NoSTDIO|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|ARM64.Build.0 = Release_NoSTDIO|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|Win32.ActiveCfg = Release_NoSTDIO|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|Win32.Build.0 = Release_NoSTDIO|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|x64.ActiveCfg = Release_NoSTDIO|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release_NoSTDIO|x64.Build.0 = Release_NoSTDIO|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|ARM64.ActiveCfg = Release|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|ARM64.Build.0 = Release|ARM64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D0FB7C52-B8AE-4A23-A002-2F7DEF5F6BD6} EndGlobalSection EndGlobal ================================================ FILE: ports/sdl1/SDLmain.vcxproj.in ================================================ Debug ARM64 Debug Win32 Debug x64 Release_NoSTDIO ARM64 Release_NoSTDIO Win32 Release_NoSTDIO x64 Release ARM64 Release Win32 Release x64 {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false <_ProjectFileVersion>15.0.27924.0 .\Release\ .\Release\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ .\Release_NOSTDIO\ .\Release_NOSTDIO\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ .\Debug\ .\Debug\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/SDLmain.pch Level3 Default X64 OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/SDLmain.pch Level3 Default OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/SDLmain.pch Level3 Default OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;NO_STDIO_REDIRECT;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release_NOSTDIO/SDLmain.pch Level3 Default X64 OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;NO_STDIO_REDIRECT;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release_NOSTDIO/SDLmain.pch Level3 Default OnlyExplicitInline ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;NDEBUG;_WINDOWS;NO_STDIO_REDIRECT;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release_NOSTDIO/SDLmain.pch Level3 Default Disabled ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/SDLmain.pch Level3 OldStyle Default X64 Disabled ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/SDLmain.pch Level3 OldStyle Default Disabled ..\..\include;..\..\include\SDL;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_DEPRECATE;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/SDLmain.pch Level3 OldStyle Default ================================================ FILE: ports/sdl1/export-symbols-only-in-shared-build.patch ================================================ diff -r 8df7a59b5528 -r 46ec9baae30c include/begin_code.h --- a/include/begin_code.h Fri Sep 22 11:25:52 2017 -0700 +++ b/include/begin_code.h Sun Sep 24 14:32:30 2017 +0300 @@ -54,8 +54,10 @@ # else # define DECLSPEC __declspec(dllimport) # endif +# elif defined(_DLL) +# define DECLSPEC __declspec(dllexport) # else -# define DECLSPEC __declspec(dllexport) +# define DECLSPEC # endif # elif defined(__OS2__) # ifdef __WATCOMC__ ================================================ FILE: ports/sdl1/fix-linux-build.patch ================================================ diff --git a/src/video/x11/SDL_x11sym.h b/src/video/x11/SDL_x11sym.h index 4875b98..10bf365 100644 --- a/src/video/x11/SDL_x11sym.h +++ b/src/video/x11/SDL_x11sym.h @@ -165,7 +165,7 @@ SDL_X11_SYM(Bool,XShmQueryExtension,(Display* a),(a),return) */ #ifdef LONG64 SDL_X11_MODULE(IO_32BIT) -SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return) +SDL_X11_SYM(int,_XData32,(Display *dpy,_Xconst register long *data,unsigned len),(dpy,data,len),return) SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),) #endif ================================================ FILE: ports/sdl1/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SDL-Mirror/SDL REF release-1.2.15 SHA512 38b94a650ec205377ae1503d0ec8a5254ef6d50ed0acac8d985b57b64bc16ea042cfa41e19e5ef8317980c4afb83186829f5bc3da9433d0a649dfd10554801b5 HEAD_REF master PATCHES export-symbols-only-in-shared-build.patch fix-linux-build.patch sdl-config.patch ) configure_file("${SOURCE_PATH}/include/SDL_config.h.default" "${SOURCE_PATH}/include/SDL_config.h" COPYONLY) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) configure_file("${CURRENT_PORT_DIR}/SDL1_2017.sln.in" "${SOURCE_PATH}/VisualC/SDL1_2017.sln" COPYONLY) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(LIB_TYPE StaticLibrary) else() set(LIB_TYPE DynamicLibrary) endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(CRT_TYPE_DBG MultiThreadedDebugDLL) set(CRT_TYPE_REL MultiThreadedDLL) else() set(CRT_TYPE_DBG MultiThreadedDebug) set(CRT_TYPE_REL MultiThreaded) endif() configure_file("${CURRENT_PORT_DIR}/SDL.vcxproj.in" "${SOURCE_PATH}/VisualC/SDL/SDL.vcxproj" @ONLY) configure_file("${CURRENT_PORT_DIR}/SDLmain.vcxproj.in" "${SOURCE_PATH}/VisualC/SDLmain/SDLmain.vcxproj" @ONLY) # This text file gets copied as a library, and included as one in the package file(REMOVE_RECURSE "${SOURCE_PATH}/src/hermes/COPYING.LIB") vcpkg_install_msbuild( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH VisualC/SDL1_2017.sln ) #Take all the fils into include/SDL to sovle conflict with SDL2 port file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/SDL") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/SDLmain.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/SDLmain.lib") if(NOT DEFINED VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/SDLmain.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDLmaind.lib") endif() else() if(VCPKG_TARGET_IS_LINUX) message("libgles2-mesa-dev must be installed before sdl1 can build. Install it with \"apt install libgles2-mesa-dev\".") endif() find_program(WHICH_COMMAND NAMES which) if(NOT WHICH_COMMAND) set(polyfill_scripts "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-bin") file(REMOVE_RECURSE "${polyfill_scripts}") file(MAKE_DIRECTORY "${polyfill_scripts}") vcpkg_host_path_list(APPEND ENV{PATH} "${polyfill_scripts}") # sdl's autoreconf.sh needs `which`, but our msys root doesn't have it. file(WRITE "${polyfill_scripts}/which" "#!/bin/sh\nif test -f \"/usr/bin/\$1\"; then echo \"/usr/bin/\$1\"; else false; fi\n") file(CHMOD "${polyfill_scripts}/which" PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --disable-pulseaudio --disable-video-directfb ) vcpkg_install_make() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/${PORT}/man3" ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/sdl1/sdl-config.patch ================================================ diff --git a/sdl-config.in b/sdl-config.in index e0fcc0c..de602d8 100644 --- a/sdl-config.in +++ b/sdl-config.in @@ -1,6 +1,7 @@ #!/bin/sh -prefix=@prefix@ +DIRNAME=$(dirname $0) +prefix=$(CDPATH= cd -- "${DIRNAME%/tools/sdl1/*}" && pwd -P) exec_prefix=@exec_prefix@ exec_prefix_set=no libdir=@libdir@ ================================================ FILE: ports/sdl1/vcpkg.json ================================================ { "name": "sdl1", "version": "1.2.15", "port-version": 23, "description": "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.", "homepage": "https://www.libsdl.org", "license": "LGPL-2.1-or-later", "supports": "!android & !osx & !uwp", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/sdl1-mixer/SDL_mixer.vcxproj.in ================================================ Debug Win32 Debug x64 Release Win32 Release x64 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33} SDL_mixer @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false @LIB_TYPE@ v141 false <_ProjectFileVersion>15.0.28307.799 .\Debug\ .\Debug\ true $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true .\Release\ .\Release\ false $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false _DEBUG;%(PreprocessorDefinitions) true true Win32 .\Debug/SDL_mixer.tlb /D OGG_DYNAMIC=\"vorbisfile.dll\" %(AdditionalOptions) Disabled ..\timidity;..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC="mikmod.dll";OGG_MUSIC;OGG_DYNAMIC="vorbisfile.dll";FLAC_MUSIC;FLAC_DYNAMIC="FLAC.dll";MP3_MUSIC;MPG123_DYNAMIC="mpg123.dll";MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/SDL_mixer.pch Level3 true OldStyle _DEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;SDL.lib;%(AdditionalDependencies) true .\Debug/SDL_mixer.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/SDL_mixer.bsc _DEBUG;%(PreprocessorDefinitions) true true X64 .\Debug/SDL_mixer.tlb /D OGG_DYNAMIC=\"vorbisfile.dll\" %(AdditionalOptions) Disabled ..\timidity;..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) _DEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC="mikmod.dll";OGG_MUSIC;OGG_DYNAMIC="vorbisfile.dll";FLAC_MUSIC;FLAC_DYNAMIC="FLAC.dll";MP3_MUSIC;MPG123_DYNAMIC="mpg123.dll";MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/SDL_mixer.pch Level3 true OldStyle _DEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;SDL.lib;%(AdditionalDependencies) true .\Debug/SDL_mixer.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/SDL_mixer.bsc NDEBUG;%(PreprocessorDefinitions) true true Win32 .\Release/SDL_mixer.tlb /D OGG_DYNAMIC=\"vorbisfile.dll\" %(AdditionalOptions) MaxSpeed OnlyExplicitInline ..\timidity;..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC="mikmod.dll";OGG_MUSIC;OGG_DYNAMIC="vorbisfile.dll";FLAC_MUSIC;FLAC_DYNAMIC="FLAC.dll";MP3_MUSIC;MPG123_DYNAMIC="mpg123.dll";MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/SDL_mixer.pch Level3 NDEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;SDL.lib;%(AdditionalDependencies) .\Release/SDL_mixer.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/SDL_mixer.bsc NDEBUG;%(PreprocessorDefinitions) true true X64 .\Release/SDL_mixer.tlb /D OGG_DYNAMIC=\"vorbisfile.dll\" %(AdditionalOptions) MaxSpeed OnlyExplicitInline ..\timidity;..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) NDEBUG;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;WAV_MUSIC;MOD_MUSIC;MOD_DYNAMIC="mikmod.dll";OGG_MUSIC;OGG_DYNAMIC="vorbisfile.dll";FLAC_MUSIC;FLAC_DYNAMIC="FLAC.dll";MP3_MUSIC;MPG123_DYNAMIC="mpg123.dll";MID_MUSIC;USE_TIMIDITY_MIDI;USE_NATIVE_MIDI;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/SDL_mixer.pch Level3 NDEBUG;%(PreprocessorDefinitions) 0x0409 winmm.lib;SDL.lib;%(AdditionalDependencies) .\Release/SDL_mixer.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/SDL_mixer.bsc {ebda67ca-4a23-4f22-bfbc-b8dbe0580d4f} false {b162b6f1-e876-4d5f-a1f6-e3a6dc2f4a2c} false ================================================ FILE: ports/sdl1-mixer/SDL_mixer_2017.sln.in ================================================ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.1321 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL_mixer", "SDL_mixer.vcxproj", "{F7E944B3-0815-40CD-B3E4-90B2A15B0E33}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "native_midi", "native_midi\native_midi.vcxproj", "{EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "playmus", "playmus\playmus.vcxproj", "{72CB0DD4-051D-486C-9CB3-75FE16F7D87A}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "playwave", "playwave\playwave.vcxproj", "{AC86CEAA-9908-476F-B15F-C7193CEF81BD}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "timidity", "timidity\timidity.vcxproj", "{B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|Win32.ActiveCfg = Debug|Win32 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|Win32.Build.0 = Debug|Win32 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|x64.ActiveCfg = Debug|x64 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Debug|x64.Build.0 = Debug|x64 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|Win32.ActiveCfg = Release|Win32 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|Win32.Build.0 = Release|Win32 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|x64.ActiveCfg = Release|x64 {F7E944B3-0815-40CD-B3E4-90B2A15B0E33}.Release|x64.Build.0 = Release|x64 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|Win32.ActiveCfg = Debug|Win32 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|Win32.Build.0 = Debug|Win32 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|x64.ActiveCfg = Debug|x64 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Debug|x64.Build.0 = Debug|x64 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|Win32.ActiveCfg = Release|Win32 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|Win32.Build.0 = Release|Win32 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|x64.ActiveCfg = Release|x64 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F}.Release|x64.Build.0 = Release|x64 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Debug|Win32.ActiveCfg = Debug|Win32 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Debug|Win32.Build.0 = Debug|Win32 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Debug|x64.ActiveCfg = Debug|x64 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Debug|x64.Build.0 = Debug|x64 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Release|Win32.ActiveCfg = Release|Win32 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Release|Win32.Build.0 = Release|Win32 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Release|x64.ActiveCfg = Release|x64 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A}.Release|x64.Build.0 = Release|x64 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Debug|Win32.ActiveCfg = Debug|Win32 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Debug|Win32.Build.0 = Debug|Win32 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Debug|x64.ActiveCfg = Debug|x64 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Debug|x64.Build.0 = Debug|x64 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Release|Win32.ActiveCfg = Release|Win32 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Release|Win32.Build.0 = Release|Win32 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Release|x64.ActiveCfg = Release|x64 {AC86CEAA-9908-476F-B15F-C7193CEF81BD}.Release|x64.Build.0 = Release|x64 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|Win32.ActiveCfg = Debug|Win32 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|Win32.Build.0 = Debug|Win32 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|x64.ActiveCfg = Debug|x64 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Debug|x64.Build.0 = Debug|x64 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|Win32.ActiveCfg = Release|Win32 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|Win32.Build.0 = Release|Win32 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|x64.ActiveCfg = Release|x64 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F6077CF7-C552-4A55-AB30-0E159B015586} EndGlobalSection EndGlobal ================================================ FILE: ports/sdl1-mixer/mpg123_ssize_t.patch ================================================ diff --git a/dynamic_mp3.c b/dynamic_mp3.c index 7c3209f0..ba80ee7a 100644 --- a/dynamic_mp3.c +++ b/dynamic_mp3.c @@ -63,7 +63,7 @@ int Mix_InitMP3(void) #else FUNCTION_LOADER(mpg123_read, int (*)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done )) #endif - FUNCTION_LOADER(mpg123_replace_reader_handle, int (*)( mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) )) + FUNCTION_LOADER(mpg123_replace_reader_handle, int (*)( mpg123_handle *mh, mpg123_ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) )) FUNCTION_LOADER(mpg123_seek, off_t (*)( mpg123_handle *mh, off_t sampleoff, int whence )) FUNCTION_LOADER(mpg123_strerror, const char* (*)(mpg123_handle *mh)) if (mpg123.mpg123_init() != MPG123_OK) { diff --git a/dynamic_mp3.h b/dynamic_mp3.h index 2e4c48af..ad63bf76 100644 --- a/dynamic_mp3.h +++ b/dynamic_mp3.h @@ -43,7 +43,7 @@ typedef struct { #else int (*mpg123_read)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done ); #endif - int (*mpg123_replace_reader_handle)( mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) ); + int (*mpg123_replace_reader_handle)( mpg123_handle *mh, mpg123_ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) ); off_t (*mpg123_seek)( mpg123_handle *mh, off_t sampleoff, int whence ); const char* (*mpg123_strerror)(mpg123_handle *mh); } mpg123_loader; diff --git a/music_mpg.c b/music_mpg.c index 531615a2..7d92c28b 100644 --- a/music_mpg.c +++ b/music_mpg.c @@ -67,8 +67,8 @@ mpg_err(mpg123_handle* mpg, int code) /* we're gonna override mpg123's I/O with these wrappers for RWops */ static -ssize_t rwops_read(void* p, void* dst, size_t n) { - return (ssize_t)MP3_RWread((struct mp3file_t *)p, dst, 1, n); +mpg123_ssize_t rwops_read(void* p, void* dst, size_t n) { + return (mpg123_ssize_t)MP3_RWread((struct mp3file_t *)p, dst, 1, n); } static ================================================ FILE: ports/sdl1-mixer/native_midi.vcxproj.in ================================================ Debug Win32 Debug x64 Release Win32 Release x64 {EBDA67CA-4A23-4F22-BFBC-B8DBE0580D4F} StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false StaticLibrary v141 false <_ProjectFileVersion>15.0.28307.799 .\Release\ .\Release\ .\Debug\ .\Debug\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MaxSpeed OnlyExplicitInline ..\..;..\..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/native_midi.pch Level3 0x0409 true .\Release/native_midi.bsc Disabled ..\..;..\..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/native_midi.pch Level3 true OldStyle 0x0409 true .\Debug/native_midi.bsc X64 MaxSpeed OnlyExplicitInline ..\..;..\..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/native_midi.pch Level3 0x0409 true .\Release/native_midi.bsc X64 Disabled ..\..;..\..\native_midi;@CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/native_midi.pch Level3 true OldStyle 0x0409 true .\Debug/native_midi.bsc ================================================ FILE: ports/sdl1-mixer/playmus.vcxproj.in ================================================ Debug Win32 Debug x64 Release Win32 Release x64 {72CB0DD4-051D-486C-9CB3-75FE16F7D87A} 10.0.17763.0 Application v141 false Application v141 false Application v141 false Application v141 false <_ProjectFileVersion>15.0.28307.799 .\Debug\ .\Debug\ true $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true .\Release\ .\Release\ false $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false _DEBUG;%(PreprocessorDefinitions) true true Win32 .\Debug/playmus.tlb Disabled WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/playmus.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL _DEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) true .\Debug/playmus.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/playmus.bsc _DEBUG;%(PreprocessorDefinitions) true true X64 .\Debug/playmus.tlb Disabled WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/playmus.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL _DEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) true .\Debug/playmus.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/playmus.bsc NDEBUG;%(PreprocessorDefinitions) true true Win32 .\Release/playmus.tlb MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/playmus.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL NDEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/playmus.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/playmus.bsc NDEBUG;%(PreprocessorDefinitions) true true X64 .\Release/playmus.tlb MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/playmus.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL NDEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/playmus.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/playmus.bsc {f7e944b3-0815-40cd-b3e4-90b2a15b0e33} false ================================================ FILE: ports/sdl1-mixer/playwave.vcxproj.in ================================================ Debug Win32 Debug x64 Release Win32 Release x64 {AC86CEAA-9908-476F-B15F-C7193CEF81BD} 10.0.17763.0 Application v141 false Application v141 false Application v141 false Application v141 false <_ProjectFileVersion>15.0.28307.799 .\Release\ .\Release\ false $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false .\Debug\ .\Debug\ true $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ true NDEBUG;%(PreprocessorDefinitions) true true Win32 .\Release/playwave.tlb MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/playwave.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL NDEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/playwave.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/playwave.bsc NDEBUG;%(PreprocessorDefinitions) true true X64 .\Release/playwave.tlb MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/playwave.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL NDEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) .\Release/playwave.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Release/playwave.bsc _DEBUG;%(PreprocessorDefinitions) true true Win32 .\Debug/playwave.tlb Disabled WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/playwave.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL _DEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) true .\Debug/playwave.pdb Windows MachineX86 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/playwave.bsc _DEBUG;%(PreprocessorDefinitions) true true X64 .\Debug/playwave.tlb Disabled WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) true @CRT_TYPE_DBG@ .\Debug/playwave.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL _DEBUG;%(PreprocessorDefinitions) 0x0409 SDL.lib;manual-link\SDLmain.lib;winmm.lib;dxguid.lib;%(AdditionalDependencies) true .\Debug/playwave.pdb Windows MachineX64 @CURRENT_INSTALLED_DIR@/lib;%(AdditionalLibraryDirectories) true .\Debug/playwave.bsc {f7e944b3-0815-40cd-b3e4-90b2a15b0e33} false ================================================ FILE: ports/sdl1-mixer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_mixer REF 4c93e0b4bcc3d5ecfd865190f664de6b2c837018 SHA512 a6beed48c7a804aa5e52c3883edb6edd09b073ffec3481ce5fb27fee020ca4364525d0760e0532d3233a5e0f1500780c2994d9bb9ffcf79047bb6766b818bb0e HEAD_REF SDL-1.2 PATCHES mpg123_ssize_t.patch ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) configure_file("${CMAKE_CURRENT_LIST_DIR}/SDL_mixer_2017.sln.in" "${SOURCE_PATH}/VisualC/SDL_mixer_2017.sln" COPYONLY) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(LIB_TYPE StaticLibrary) else() set(LIB_TYPE DynamicLibrary) endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(CRT_TYPE_DBG MultiThreadedDebugDLL) set(CRT_TYPE_REL MultiThreadedDLL) else() set(CRT_TYPE_DBG MultiThreadedDebug) set(CRT_TYPE_REL MultiThreaded) endif() configure_file("${CURRENT_PORT_DIR}/SDL_mixer.vcxproj.in" "${SOURCE_PATH}/VisualC/SDL_mixer.vcxproj" @ONLY) configure_file("${CURRENT_PORT_DIR}/native_midi.vcxproj.in" "${SOURCE_PATH}/VisualC/native_midi/native_midi.vcxproj" @ONLY) configure_file("${CURRENT_PORT_DIR}/timidity.vcxproj.in" "${SOURCE_PATH}/VisualC/timidity/timidity.vcxproj" @ONLY) configure_file("${CURRENT_PORT_DIR}/playmus.vcxproj.in" "${SOURCE_PATH}/VisualC/playmus/playmus.vcxproj" @ONLY) configure_file("${CURRENT_PORT_DIR}/playwave.vcxproj.in" "${SOURCE_PATH}/VisualC/playwave/playwave.vcxproj" @ONLY) # This text file gets copied as a library, and included as one in the package file(REMOVE "${SOURCE_PATH}/external/libmikmod/COPYING.LIB") # Remove unused external dlls file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libFLAC-8.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libmikmod-2.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libmpg123-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libogg-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libvorbis-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x86/libvorbisfile-3.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libFLAC-8.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libmikmod-2.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libmpg123-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libogg-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libvorbis-0.dll") file(REMOVE "${SOURCE_PATH}/VisualC/external/lib/x64/libvorbisfile-3.dll") file(WRITE "${SOURCE_PATH}/Directory.Build.props" " ${CURRENT_PACKAGES_DIR}/include;${CURRENT_PACKAGES_DIR}/include/SDL;${CURRENT_INSTALLED_DIR}/include;${CURRENT_INSTALLED_DIR}/include/SDL ") vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH VisualC/SDL_mixer_2017.sln ) file(COPY "${SOURCE_PATH}/SDL_mixer.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/SDL") else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS --enable-music-fluidsynth-midi=no INCLUDE=#[[ empty ]] ) vcpkg_make_install() vcpkg_fixup_pkgconfig() endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/sdl1-mixer/timidity.vcxproj.in ================================================ Debug Win32 Debug x64 Release Win32 Release x64 {B162B6F1-E876-4D5F-A1F6-E3A6DC2F4A2C} timidity StaticLibrary false v141 StaticLibrary false v141 StaticLibrary v141 false StaticLibrary v141 false <_ProjectFileVersion>15.0.28307.799 .\Release\ .\Release\ .\Debug\ .\Debug\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/timidity.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL 0x0409 true .\Release/timidity.bsc Disabled WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/timidity.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL 0x0409 true .\Debug/timidity.bsc X64 MaxSpeed OnlyExplicitInline WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true @CRT_TYPE_REL@ true .\Release/timidity.pch Level3 @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL 0x0409 true .\Release/timidity.bsc X64 Disabled WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) @CRT_TYPE_DBG@ .\Debug/timidity.pch Level3 true OldStyle @CURRENT_PACKAGES_DIR@/include/SDL;@CURRENT_INSTALLED_DIR@/include/SDL 0x0409 true .\Debug/timidity.bsc ================================================ FILE: ports/sdl1-mixer/usage ================================================ sdl1-mixer is compatible with built-in CMake variables: find_package(SDL_mixer REQUIRED) target_include_directories(main PRIVATE ${SDL_MIXER_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${SDL_MIXER_LIBRARIES}) ================================================ FILE: ports/sdl1-mixer/vcpkg.json ================================================ { "name": "sdl1-mixer", "version-date": "2025-09-10", "description": "An audio mixer that supports various file formats for Simple Directmedia Layer.", "homepage": "https://www.libsdl.org", "license": "Zlib", "supports": "!osx & !uwp & !arm", "dependencies": [ "libflac", "libmikmod", "libogg", "libvorbis", "mpg123", "sdl1", { "name": "vcpkg-make", "platform": "!windows | mingw" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/sdl1-net/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(SDL1_NET C) if (MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4996") endif() find_package(SDL) add_library(SDL_net SDLnet.c SDLnetselect.c SDLnetTCP.c SDLnetUDP.c version.rc) set_target_properties(SDL_net PROPERTIES DEFINE_SYMBOL SDL1_EXPORTS) target_compile_definitions(SDL_net PRIVATE _WINSOCK_DEPRECATED_NO_WARNINGS) target_include_directories(SDL_net PRIVATE ${SDL_INCLUDE_DIR}) target_link_libraries(SDL_net ${SDL_LIBRARY} ws2_32 iphlpapi) install(TARGETS SDL_net RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) if(NOT DEFINED SDL_NET_SKIP_HEADERS) install(FILES SDL_net.h DESTINATION include) endif() message(STATUS "Link-time dependencies:") message(STATUS " " ${SDL_LIBRARY}) ================================================ FILE: ports/sdl1-net/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.libsdl.org/projects/SDL_net/release/SDL_net-1.2.8.tar.gz" FILENAME "SDL_net-1.2.8.tar.gz" SHA512 2766ca55343127c619958ab3a3ae3052a27a676839f10a158f7dfc071b8db38c2f1fc853e8add32b9fef94ab07eaa986f46a68e264e8087b57c990af30ea9a0b ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DSDL_NET_SKIP_HEADERS=ON) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sdl1-net/vcpkg.json ================================================ { "name": "sdl1-net", "version": "1.2.8", "port-version": 6, "description": "Networking library for SDL", "dependencies": [ "sdl1", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/sdl2/alsa-dep-fix.patch ================================================ diff --git a/SDL2Config.cmake.in b/SDL2Config.cmake.in index cc8bcf26d..ead829767 100644 --- a/SDL2Config.cmake.in +++ b/SDL2Config.cmake.in @@ -35,7 +35,8 @@ include("${CMAKE_CURRENT_LIST_DIR}/sdlfind.cmake") set(SDL_ALSA @SDL_ALSA@) set(SDL_ALSA_SHARED @SDL_ALSA_SHARED@) -if(SDL_ALSA AND NOT SDL_ALSA_SHARED AND TARGET SDL2::SDL2-static) +if(SDL_ALSA) + set(CMAKE_REQUIRE_FIND_PACKAGE_ALSA 1) sdlFindALSA() endif() unset(SDL_ALSA) ================================================ FILE: ports/sdl2/cxx-linkage-pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a91824..a8e9de4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3162,6 +3162,19 @@ set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) list(REMOVE_DUPLICATES SDL_STATIC_LIBS) listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) +if("${SOURCE_FILES};" MATCHES "[.]cpp;") + set(FAKE_CXX_LINKAGE "") + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() + string(APPEND SDL_STATIC_LIBS "${FAKE_CXX_LINKAGE}") +endif() listtostr(SDL_LIBS _SDL_LIBS) set(SDL_LIBS ${_SDL_LIBS}) listtostr(SDL_CFLAGS _SDL_CFLAGS "") ================================================ FILE: ports/sdl2/deps.patch ================================================ diff --git a/cmake/sdlchecks.cmake b/cmake/sdlchecks.cmake index 65a98efbe..2f99f28f1 100644 --- a/cmake/sdlchecks.cmake +++ b/cmake/sdlchecks.cmake @@ -352,7 +352,7 @@ endmacro() # - HAVE_SDL_LOADSO opt macro(CheckLibSampleRate) if(SDL_LIBSAMPLERATE) - find_package(SampleRate QUIET) + find_package(SampleRate CONFIG REQUIRED) if(SampleRate_FOUND AND TARGET SampleRate::samplerate) set(HAVE_LIBSAMPLERATE TRUE) set(HAVE_LIBSAMPLERATE_H TRUE) ================================================ FILE: ports/sdl2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL REF "release-${VERSION}" SHA512 d5622d6bb7266f7942a7b8ad43e8a22524893bf0c2ea1af91204838d9b78d32768843f6faa248757427b8404b8c6443776d4afa6b672cd8571a4e0c03a829383 HEAD_REF main PATCHES deps.patch alsa-dep-fix.patch cxx-linkage-pkgconfig.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SDL_SHARED) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES alsa SDL_ALSA dbus SDL_DBUS ibus SDL_IBUS samplerate SDL_LIBSAMPLERATE vulkan SDL_VULKAN wayland SDL_WAYLAND x11 SDL_X11 ) if ("x11" IN_LIST FEATURES) message(WARNING "You will need to install Xorg dependencies to use feature x11:\nsudo apt install libx11-dev libxft-dev libxext-dev\n") endif() if ("wayland" IN_LIST FEATURES) message(WARNING "You will need to install Wayland dependencies to use feature wayland:\nsudo apt install libwayland-dev libxkbcommon-dev libegl1-mesa-dev\n") endif() if ("ibus" IN_LIST FEATURES) message(WARNING "You will need to install ibus dependencies to use feature ibus:\nsudo apt install libibus-1.0-dev\n") endif() if(VCPKG_TARGET_IS_UWP) set(configure_opts WINDOWS_USE_MSBUILD) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ${configure_opts} OPTIONS ${FEATURE_OPTIONS} -DSDL_STATIC=${SDL_STATIC} -DSDL_SHARED=${SDL_SHARED} -DSDL_FORCE_STATIC_VCRT=${FORCE_STATIC_VCRT} -DSDL_LIBC=ON -DSDL_TEST=OFF -DSDL_INSTALL_CMAKEDIR=cmake -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON -DSDL_LIBSAMPLERATE_SHARED=OFF MAYBE_UNUSED_VARIABLES SDL_FORCE_STATIC_VCRT ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/bin/sdl2-config" "${CURRENT_PACKAGES_DIR}/debug/bin/sdl2-config" "${CURRENT_PACKAGES_DIR}/SDL2.framework" "${CURRENT_PACKAGES_DIR}/debug/SDL2.framework" "${CURRENT_PACKAGES_DIR}/share/licenses" "${CURRENT_PACKAGES_DIR}/share/aclocal" ) file(GLOB BINS "${CURRENT_PACKAGES_DIR}/debug/bin/*" "${CURRENT_PACKAGES_DIR}/bin/*") if(NOT BINS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_UWP AND NOT VCPKG_TARGET_IS_MINGW) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/SDL2main.lib" "${CURRENT_PACKAGES_DIR}/lib/manual-link/SDL2main.lib") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/SDL2maind.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link/SDL2maind.lib") endif() file(GLOB SHARE_FILES "${CURRENT_PACKAGES_DIR}/share/sdl2/*.cmake") foreach(SHARE_FILE ${SHARE_FILES}) vcpkg_replace_string("${SHARE_FILE}" "lib/SDL2main" "lib/manual-link/SDL2main" IGNORE_UNCHANGED) endforeach() endif() vcpkg_copy_pdbs() set(DYLIB_COMPATIBILITY_VERSION_REGEX "set\\(DYLIB_COMPATIBILITY_VERSION (.+)\\)") set(DYLIB_CURRENT_VERSION_REGEX "set\\(DYLIB_CURRENT_VERSION (.+)\\)") file(STRINGS "${SOURCE_PATH}/CMakeLists.txt" DYLIB_COMPATIBILITY_VERSION REGEX ${DYLIB_COMPATIBILITY_VERSION_REGEX}) file(STRINGS "${SOURCE_PATH}/CMakeLists.txt" DYLIB_CURRENT_VERSION REGEX ${DYLIB_CURRENT_VERSION_REGEX}) string(REGEX REPLACE ${DYLIB_COMPATIBILITY_VERSION_REGEX} "\\1" DYLIB_COMPATIBILITY_VERSION "${DYLIB_COMPATIBILITY_VERSION}") string(REGEX REPLACE ${DYLIB_CURRENT_VERSION_REGEX} "\\1" DYLIB_CURRENT_VERSION "${DYLIB_CURRENT_VERSION}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" AND NOT VCPKG_TARGET_IS_ANDROID) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2main" "-lSDL2maind" IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2 " "-lSDL2d " IGNORE_UNCHANGED) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-lSDL2-static " "-lSDL2-staticd " IGNORE_UNCHANGED) endif() if(VCPKG_TARGET_IS_UWP) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl2.pc" "$<$:d>.lib" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl2.pc" "-l-nodefaultlib:" "-nodefaultlib:") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "$<$:d>.lib" "d") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl2.pc" "-l-nodefaultlib:" "-nodefaultlib:") endif() endif() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl2/usage ================================================ sdl2 provides CMake targets: find_package(SDL2 CONFIG REQUIRED) target_link_libraries(main PRIVATE $ $,SDL2::SDL2,SDL2::SDL2-static> ) ================================================ FILE: ports/sdl2/vcpkg.json ================================================ { "name": "sdl2", "version": "2.32.10", "description": "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.", "homepage": "https://www.libsdl.org/download-2.0.php", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "dbus", "platform": "linux" }, { "name": "ibus", "platform": "linux" }, { "name": "wayland", "platform": "linux" }, { "name": "x11", "platform": "linux" } ], "features": { "alsa": { "description": "Support for alsa audio", "dependencies": [ "alsa" ] }, "dbus": { "description": "Build with D-Bus support", "dependencies": [ { "name": "dbus", "default-features": false, "platform": "linux" } ] }, "ibus": { "description": "Build with ibus IME support", "supports": "linux" }, "samplerate": { "description": "Use libsamplerate for audio rate conversion", "dependencies": [ "libsamplerate" ] }, "vulkan": { "description": "Vulkan functionality for SDL" }, "wayland": { "description": "Build with Wayland support", "supports": "linux" }, "x11": { "description": "Build with X11 support", "supports": "!windows" } } } ================================================ FILE: ports/sdl2-gfx/001-lrint-arm64.patch ================================================ diff --git a/SDL2_gfxPrimitives.c b/SDL2_gfxPrimitives.c index f81e6da..91817fd 100755 --- a/SDL2_gfxPrimitives.c +++ b/SDL2_gfxPrimitives.c @@ -1771,8 +1771,20 @@ __declspec(naked) long int __emit(0xE12FFF1E); // bx lr } #pragma warning(pop) +#elif defined(_M_ARM64) +#include +#pragma warning(push) +#pragma warning(disable: 4716) +__declspec(naked) long + lrint (double f) +{ + __emit(0x1e674000); // frintx d0, d0 + __emit(0x9e780000); // fcvtzs x0, d0 + __emit(0xd65f03c0); // ret +} +#pragma warning(pop) #else -#error lrint needed for MSVC on non X86/AMD64/ARM targets. +#error lrint needed for MSVC on non X86/AMD64/ARM/ARM64 targets. #endif #endif ================================================ FILE: ports/sdl2-gfx/002-use-the-lrintf-intrinsic.patch ================================================ diff --git a/SDL2_gfxPrimitives.c b/SDL2_gfxPrimitives.c index d8afb10..6c88288 100644 --- a/SDL2_gfxPrimitives.c +++ b/SDL2_gfxPrimitives.c @@ -1757,7 +1757,8 @@ int filledCircleRGBA(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Ui /* ----- AA Ellipse */ /* Windows targets do not have lrint, so provide a local inline version */ -#if defined(_MSC_VER) +/* MSVC pre 16.8 do not have lrint */ +#if defined(_MSC_VER) && _MSC_VER < 1928 /* Detect 64bit and use intrinsic version */ #ifdef _M_X64 #include ================================================ FILE: ports/sdl2-gfx/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.0) project(SDL2_gfx VERSION 1.0.4 LANGUAGES C) set(CONFIG_NAME "sdl2-gfx") find_path(SDL_INCLUDE_DIR SDL2/SDL.h) find_package(SDL2 CONFIG REQUIRED) # builtin formats set(SDL_GFX_DEFINES WIN32) if(BUILD_SHARED_LIBS) list(APPEND SDL_GFX_DEFINES DLL_EXPORT) endif() add_library(${PROJECT_NAME} SDL2_framerate.c SDL2_gfxPrimitives.c SDL2_imageFilter.c SDL2_rotozoom.c) target_include_directories(${PROJECT_NAME} PUBLIC $ $ $ ) if(WIN32) add_compile_definitions(${SDL_GFX_DEFINES}) endif() target_include_directories(${PROJECT_NAME} PRIVATE ${SDL_INCLUDE_DIR}/SDL2) target_link_libraries(${PROJECT_NAME} PRIVATE SDL2::SDL2) install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install(EXPORT ${PROJECT_NAME} FILE ${CONFIG_NAME}-targets.cmake NAMESPACE SDL2:: DESTINATION share/${CONFIG_NAME}/ ) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}-config.cmake "include(CMakeFindDependencyMacro) find_dependency(SDL2 CONFIG) include(\${CMAKE_CURRENT_LIST_DIR}/${CONFIG_NAME}-targets.cmake)" ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}-config.cmake DESTINATION share/${CONFIG_NAME}) if(NOT SDL_GFX_SKIP_HEADERS) install(FILES SDL2_framerate.h SDL2_gfxPrimitives.h SDL2_imageFilter.h SDL2_rotozoom.h SDL2_gfxPrimitives_font.h DESTINATION include/SDL2) endif() ================================================ FILE: ports/sdl2-gfx/portfile.cmake ================================================ set(VERSION 1.0.4) vcpkg_download_distfile(ARCHIVE URLS "http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-${VERSION}.zip" FILENAME "SDL2_gfx-${VERSION}.zip" SHA512 213b481469ba2161bd8558a7a5427b129420193b1c3895923d515f69f87991ed2c99bbc44349c60b4bcbb7d7d2255c1f15ee8a3523c26502070cfaacccaa5242 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} SOURCE_BASE "${VERSION}" PATCHES 001-lrint-arm64.patch 002-use-the-lrintf-intrinsic.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DSDL_GFX_SKIP_HEADERS=1 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/sdl2-gfx/vcpkg.json ================================================ { "name": "sdl2-gfx", "version": "1.0.4", "port-version": 11, "description": "Graphics primitives (line, circle, rectangle etc.) with AA support, rotozoomer and other drawing related support functions wrapped up in a C based add-on library for the Simple Direct Media (SDL) cross-platform API layer.", "dependencies": [ { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sdl2-image/fix-findwebp.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ceee1d..9354718 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -810,7 +810,7 @@ if(SDL2IMAGE_WEBP) set_target_properties(webp PROPERTIES EXPORT_NAME "external_libwebp") add_library(SDL2_image::external_libwebp ALIAS webp) else() - find_package(webp ${required}) + find_package(webp NAMES WebP CONFIG ${required}) if(webp_FOUND) set(SDL2IMAGE_WEBP_ENABLED TRUE) message(STATUS "${PROJECT_NAME}: Using system libwebp") diff --git a/SDL2_imageConfig.cmake.in b/SDL2_imageConfig.cmake.in index 7c7efab..925bbc4 100644 --- a/SDL2_imageConfig.cmake.in +++ b/SDL2_imageConfig.cmake.in @@ -74,7 +74,7 @@ endif() if(SDL2IMAGE_WEBP AND NOT SDL2IMAGE_VENDORED AND NOT TARGET WebP::webp) list(APPEND webp_ROOT "${CMAKE_CURRENT_LIST_DIR}") - find_dependency(webp) + find_dependency(webp NAMES WebP CONFIG) endif() #FIXME: can't add SDL2IMAGE_SDL2_REQUIRED_VERSION since not all SDL2 installs ship SDL2ConfigVersion.cmake ================================================ FILE: ports/sdl2-image/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_image REF "release-${VERSION}" SHA512 3fef846eb0ad51a8b346bb421c87eb81f0e2f186d700a219ebf17146397da404b3683853322989ed939b1672cc36b799582f24bc58a0393fc6c698a65cda2b82 HEAD_REF main PATCHES fix-findwebp.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES avif SDL2IMAGE_AVIF libjpeg-turbo SDL2IMAGE_JPG libwebp SDL2IMAGE_WEBP tiff SDL2IMAGE_TIF ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSDL2IMAGE_BACKEND_IMAGEIO=OFF -DSDL2IMAGE_BACKEND_STB=OFF -DSDL2IMAGE_DEPS_SHARED=OFF -DSDL2IMAGE_SAMPLES=OFF -DSDL2IMAGE_VENDORED=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH cmake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/SDL2_image.framework/Resources") vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH SDL2_image.framework/Resources) else() vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_image CONFIG_PATH lib/cmake/SDL2_image) endif() vcpkg_fixup_pkgconfig() set(debug_libname "SDL2_imaged") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/SDL2_image.pc" "-lSDL2_image" "-lSDL2_image-static") set(debug_libname "SDL2_image-staticd") endif() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/SDL2_image.pc" "-lSDL2_image" "-l${debug_libname}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/SDL2_image.framework" "${CURRENT_PACKAGES_DIR}/debug/SDL2_image.framework" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl2-image/usage ================================================ sdl2-image provides CMake targets: find_package(SDL2_image CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>) ================================================ FILE: ports/sdl2-image/vcpkg.json ================================================ { "name": "sdl2-image", "version": "2.8.8", "port-version": 2, "description": "SDL_image is an image file loading library. It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV", "homepage": "https://github.com/libsdl-org/SDL_image", "license": "Zlib", "dependencies": [ "libpng", { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "avif": { "description": "Support for AVIF image format", "dependencies": [ "libavif" ] }, "libjpeg-turbo": { "description": "Support for JPEG image format", "dependencies": [ "libjpeg-turbo" ] }, "libwebp": { "description": "Support for WEBP image format.", "dependencies": [ "libwebp" ] }, "tiff": { "description": "Support for TIFF image format", "dependencies": [ { "name": "tiff", "default-features": false } ] } } } ================================================ FILE: ports/sdl2-mixer/fix-pkg-prefix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dc37b28..d139596 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -907,7 +907,7 @@ if(SDL2MIXER_INSTALL) endif() ##### export files ##### - if(WIN32 AND NOT MINGW) + if(0) set(SDLMIXER_INSTALL_CMAKEDIR_DEFAULT "cmake") else() set(SDLMIXER_INSTALL_CMAKEDIR_DEFAULT "${CMAKE_INSTALL_LIBDIR}/cmake/SDL2_mixer") ================================================ FILE: ports/sdl2-mixer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_mixer REF "release-${VERSION}" SHA512 653ec1f0af0b749b9ed0acd3bfcaa40e1e1ecf34af3127eb74019502ef42a551de226daef4cc89e6a51715f013e0ba0b1e48ae17d6aeee931271f2d10e82058a PATCHES fix-pkg-prefix.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fluidsynth SDL2MIXER_MIDI_FLUIDSYNTH libflac SDL2MIXER_FLAC libflac SDL2MIXER_FLAC_LIBFLAC libmodplug SDL2MIXER_MOD libmodplug SDL2MIXER_MOD_MODPLUG mpg123 SDL2MIXER_MP3 mpg123 SDL2MIXER_MP3_MPG123 timidity SDL2MIXER_MIDI_TIMIDITY wavpack SDL2MIXER_WAVPACK wavpack SDL2MIXER_WAVPACK_DSD opusfile SDL2MIXER_OPUS ) if("fluidsynth" IN_LIST FEATURES OR "timidity" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DSDL2MIXER_MIDI=ON") else() list(APPEND FEATURE_OPTIONS "-DSDL2MIXER_MIDI=OFF") endif() if("fluidsynth" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND EXTRA_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} -DSDL2MIXER_VENDORED=OFF -DSDL2MIXER_SAMPLES=OFF -DSDL2MIXER_DEPS_SHARED=OFF -DSDL2MIXER_OPUS_SHARED=OFF -DSDL2MIXER_VORBIS_VORBISFILE_SHARED=OFF -DSDL2MIXER_VORBIS="VORBISFILE" -DSDL2MIXER_FLAC_DRFLAC=OFF -DSDL2MIXER_MIDI_NATIVE=OFF -DSDL2MIXER_MP3_DRMP3=OFF -DSDL2MIXER_MOD_XMP_SHARED=${BUILD_SHARED} MAYBE_UNUSED_VARIABLES SDL2MIXER_MP3_DRMP3 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( PACKAGE_NAME "SDL2_mixer" CONFIG_PATH "lib/cmake/SDL2_mixer" ) vcpkg_fixup_pkgconfig() set(debug_libname "SDL2_mixerd") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/SDL2_mixer.pc" "-lSDL2_mixer" "-lSDL2_mixer-static") set(debug_libname "SDL2_mixer-staticd") endif() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/SDL2_mixer.pc" "-lSDL2_mixer" "-l${debug_libname}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl2-mixer/usage ================================================ sdl2-mixer provides CMake targets: find_package(SDL2_mixer CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL2_mixer::SDL2_mixer,SDL2_mixer::SDL2_mixer-static>) ================================================ FILE: ports/sdl2-mixer/vcpkg.json ================================================ { "name": "sdl2-mixer", "version": "2.8.1", "port-version": 2, "description": "Multi-channel audio mixer library for SDL.", "homepage": "https://github.com/libsdl-org/SDL_mixer", "license": "Zlib", "dependencies": [ "libvorbis", { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "wavpack" ], "features": { "fluidsynth": { "description": "Use FluidSynth to play MIDI audio format.", "dependencies": [ "fluidsynth" ] }, "libflac": { "description": "Use libflac to play FLAC audio format.", "dependencies": [ "libflac" ] }, "libmodplug": { "description": "Use libmodplug to play MOD audio format.", "dependencies": [ "libmodplug", "libxmp" ] }, "mpg123": { "description": "Use mpg123 to play MP3 audio format.", "dependencies": [ "mpg123" ] }, "opusfile": { "description": "Use opusfile to play Opus audio format.", "dependencies": [ "opusfile" ] }, "timidity": { "description": "Use Timidity to play MIDI audio format." }, "wavpack": { "description": "Enable WavPack music.", "dependencies": [ "wavpack" ] } } } ================================================ FILE: ports/sdl2-mixer-ext/fix-dependencies.patch ================================================ diff --git a/SDL2_mixer_extConfig.cmake.in b/SDL2_mixer_extConfig.cmake.in index 997d4e828150d10fa4113b3341220ca185fc29a5..2d781528151075385a2e837df3863900b8d36573 100644 --- a/SDL2_mixer_extConfig.cmake.in +++ b/SDL2_mixer_extConfig.cmake.in @@ -6,10 +6,58 @@ set_package_properties(SDL2_mixer_ext PROPERTIES @PACKAGE_INIT@ +set(SDL_MIXER_X_USE_OGG_VORBIS @USE_OGG_VORBIS@) +set(SDL_MIXER_X_USE_OPUS @USE_OPUS@) +set(SDL_MIXER_X_USE_USE_FLAC @USE_FLAC@) +set(SDL_MIXER_X_USE_USE_WAVPACK @USE_WAVPACK@) +set(SDL_MIXER_X_USE_MP3_MPG123 @USE_MP3_MPG123@) +set(SDL_MIXER_X_USE_XMP @USE_XMP@) +set(SDL_MIXER_X_USE_MIDI_ADLMIDI @USE_MIDI_ADLMIDI@) +set(SDL_MIXER_X_USE_MIDI_OPNMIDI @USE_MIDI_OPNMIDI@) +set(SDL_MIXER_X_USE_MIDI_FLUIDSYNTH @USE_MIDI_FLUIDSYNTH@) + if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer_ext-shared-targets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer_ext-shared-targets.cmake") endif() if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer_ext-static-targets.cmake") + include(CMakeFindDependencyMacro) + + if(SDL_MIXER_X_USE_OGG_VORBIS AND NOT TARGET Vorbis::vorbisfile) + find_dependency(Vorbis CONFIG) + endif() + + if(SDL_MIXER_X_USE_OPUS AND NOT TARGET OpusFile::opusfile) + find_dependency(OpusFile CONFIG) + endif() + + if(SDL_MIXER_X_USE_USE_FLAC AND NOT TARGET FLAC::FLAC) + find_dependency(FLAC CONFIG) + endif() + + if(SDL_MIXER_X_USE_USE_WAVPACK AND NOT TARGET WavPack::WavPack) + find_dependency(WavPack CONFIG) + endif() + + if(SDL_MIXER_X_USE_MP3_MPG123 AND NOT TARGET MPG123::libmpg123) + find_dependency(MPG123 CONFIG) + endif() + + if(SDL_MIXER_X_USE_XMP AND NOT TARGET libxmp::xmp_static) + find_dependency(libxmp CONFIG) + endif() + + if(SDL_MIXER_X_USE_MIDI_ADLMIDI AND NOT TARGET libADLMIDI::ADLMIDI_static) + find_dependency(libADLMIDI CONFIG) + endif() + + if(SDL_MIXER_X_USE_MIDI_OPNMIDI AND NOT TARGET libOPNMIDI::OPNMIDI_static) + find_dependency(libOPNMIDI CONFIG) + endif() + + if(SDL_MIXER_X_USE_MIDI_FLUIDSYNTH AND NOT TARGET FluidSynth::libfluidsynth) + find_dependency(FluidSynth CONFIG) + endif() + include("${CMAKE_CURRENT_LIST_DIR}/SDL2_mixer_ext-static-targets.cmake") endif() diff --git a/src/codecs/music_ffmpeg.cmake b/src/codecs/music_ffmpeg.cmake index 285d54df037a1bb126f3c680102ca08d27e83d6e..d2305f39b7c5bfeba6b9fc566764320354833765 100644 --- a/src/codecs/music_ffmpeg.cmake +++ b/src/codecs/music_ffmpeg.cmake @@ -3,7 +3,7 @@ if(USE_FFMPEG AND MIXERX_LGPL) option(USE_FFMPEG_DYNAMIC "Use dynamical loading of FFMPEG" ON) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(FFMPEG QUIET) + find_package(FFMPEG REQUIRED) message("FFMPEG: [${FFMPEG_avcodec_FOUND}] ${FFMPEG_INCLUDE_DIRS} ${FFMPEG_swresample_LIBRARY} ${FFMPEG_avformat_LIBRARY} ${FFMPEG_avcodec_LIBRARY} ${FFMPEG_avutil_LIBRARY}") if(USE_FFMPEG_DYNAMIC) @@ -18,10 +18,7 @@ if(USE_FFMPEG AND MIXERX_LGPL) endif() set(FFMPEG_LINK_LIBRARIES - ${FFMPEG_swresample_LIBRARY} - ${FFMPEG_avformat_LIBRARY} - ${FFMPEG_avcodec_LIBRARY} - ${FFMPEG_avutil_LIBRARY} + ${FFMPEG_LIBRARIES} ) else() message(WARNING "FFMPEG libraries are not a part of AudioCodecs yet. Using any available from the system.") @@ -43,7 +40,7 @@ if(USE_FFMPEG AND MIXERX_LGPL) set(FFMPEG_swresample_FOUND 1) endif() - if(FFMPEG_avcodec_FOUND AND FFMPEG_avformat_FOUND AND FFMPEG_avutil_FOUND AND FFMPEG_swresample_FOUND) + if(1) set(FFMPEG_FOUND 1) endif() diff --git a/src/codecs/music_flac.cmake b/src/codecs/music_flac.cmake index 1a39a4984c6bb36c8a09978540ebdd3b8031d7ef..6726655de7ef622fbb872660cfc0a3d49b00a058 100644 --- a/src/codecs/music_flac.cmake +++ b/src/codecs/music_flac.cmake @@ -3,7 +3,10 @@ if(USE_FLAC) option(USE_FLAC_DYNAMIC "Use dynamical loading of FLAC" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(FLAC QUIET) + find_package(FLAC CONFIG REQUIRED) + get_target_property(FLAC_INCLUDE_DIRS FLAC::FLAC INTERFACE_INCLUDE_DIRECTORIES) + set(FLAC_LIBRARIES FLAC::FLAC) + set(FLAC_FOUND 1) message("FLAC: [${FLAC_FOUND}] ${FLAC_INCLUDE_DIRS} ${FLAC_LIBRARIES}") if(USE_FLAC_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DFLAC_DYNAMIC=\"${FLAC_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_fluidsynth.cmake b/src/codecs/music_fluidsynth.cmake index 8dd54447317cba97928f320ce2bd5cc8364a8967..ad7a302173e06302d8a5313302445151f9c14c70 100644 --- a/src/codecs/music_fluidsynth.cmake +++ b/src/codecs/music_fluidsynth.cmake @@ -6,7 +6,10 @@ if(USE_MIDI_FLUIDSYNTH AND NOT USE_MIDI_FLUIDLITE AND MIXERX_LGPL) message(WARNING "AudioCodecs doesn't ship FluidSynth, it will be recognized from a system!!!") endif() - find_package(FluidSynth QUIET) + find_package(FluidSynth CONFIG REQUIRED) + get_target_property(FluidSynth_INCLUDE_DIRS FluidSynth::libfluidsynth INTERFACE_INCLUDE_DIRECTORIES) + set(FluidSynth_LIBRARIES FluidSynth::libfluidsynth) + set(FluidSynth_FOUND 1) message("FluidSynth: [${FluidSynth_FOUND}] ${FluidSynth_INCLUDE_DIRS} ${FluidSynth_LIBRARIES}") if(USE_MIDI_FLUIDSYNTH_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DFLUIDSYNTH_DYNAMIC=\"${FluidSynth_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_gme.cmake b/src/codecs/music_gme.cmake index e8a455391489080a88685e4501250f37138b38d6..124d3f3e63eff2e125cbce8139a2958a78088b15 100644 --- a/src/codecs/music_gme.cmake +++ b/src/codecs/music_gme.cmake @@ -3,7 +3,14 @@ if(USE_GME AND MIXERX_LGPL) option(USE_GME_DYNAMIC "Use dynamical loading of Game Music Emulators library" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(GME QUIET) + find_path(GME_INCLUDE_DIRS "gme.h" PATH_SUFFIXES gme) + find_library(GME_LIBRARY_RELEASE NAMES gme PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) + find_library(GME_LIBRARY_DEBUG NAMES gme PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) + include(SelectLibraryConfigurations) + select_library_configurations(GME) + find_package(ZLIB REQUIRED) + list(APPEND GME_LIBRARIES ${ZLIB_LIBRARIES}) + set(GME_FOUND 1) message("GME: [${GME_FOUND}] ${GME_INCLUDE_DIRS} ${GME_LIBRARIES}") if(USE_GME_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DGME_DYNAMIC=\"${GME_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_midi_adl.cmake b/src/codecs/music_midi_adl.cmake index c8f7bbdbfdb62e1fd0a20e5006c4a4d1b4ab8452..0be6f3b9e761263857dba8c1931e84cf22640535 100644 --- a/src/codecs/music_midi_adl.cmake +++ b/src/codecs/music_midi_adl.cmake @@ -3,7 +3,15 @@ if(USE_MIDI_ADLMIDI AND MIXERX_GPL) option(USE_MIDI_ADLMIDI_DYNAMIC "Use dynamical loading of libADLMIDI library" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(ADLMIDI QUIET) + find_package(libADLMIDI CONFIG REQUIRED) + if(SDL_MIXER_X_STATIC) + set(_adlmidi libADLMIDI::ADLMIDI_static) + else() + set(_adlmidi libADLMIDI::ADLMIDI_shared) + endif() + get_target_property(ADLMIDI_INCLUDE_DIRS ${_adlmidi} INTERFACE_INCLUDE_DIRECTORIES) + set(ADLMIDI_LIBRARIES ${_adlmidi}) + set(ADLMIDI_FOUND 1) message("ADLMIDI: [${ADLMIDI_FOUND}] ${ADLMIDI_INCLUDE_DIRS} ${ADLMIDI_LIBRARIES}") if(USE_MIDI_ADLMIDI_DYNAMIC) diff --git a/src/codecs/music_midi_opn.cmake b/src/codecs/music_midi_opn.cmake index 62b9dda0c2771ef25a7bc91949cdce0c55ea5250..26bb304d720f7d93eb3d8b24fd81dbc33df513cc 100644 --- a/src/codecs/music_midi_opn.cmake +++ b/src/codecs/music_midi_opn.cmake @@ -3,7 +3,15 @@ if(USE_MIDI_OPNMIDI AND MIXERX_GPL) option(USE_MIDI_OPNMIDI_DYNAMIC "Use dynamical loading of libOPNMIDI library" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(OPNMIDI QUIET) + find_package(libOPNMIDI CONFIG REQUIRED) + if(SDL_MIXER_X_STATIC) + set(_opnmidi libOPNMIDI::OPNMIDI_static) + else() + set(_opnmidi libOPNMIDI::OPNMIDI_shared) + endif() + get_target_property(OPNMIDI_INCLUDE_DIRS ${_opnmidi} INTERFACE_INCLUDE_DIRECTORIES) + set(OPNMIDI_LIBRARIES ${_opnmidi}) + set(OPNMIDI_FOUND 1) message("OPNMIDI: [${OPNMIDI_FOUND}] ${OPNMIDI_INCLUDE_DIRS} ${OPNMIDI_LIBRARIES}") if(USE_MIDI_OPNMIDI_DYNAMIC) diff --git a/src/codecs/music_modplug.cmake b/src/codecs/music_modplug.cmake index 555bcd91574d1c65761121648b331715a5fe8dad..ad065be36cd0176aa7f08631a6df48e857f76e42 100644 --- a/src/codecs/music_modplug.cmake +++ b/src/codecs/music_modplug.cmake @@ -4,7 +4,12 @@ if(USE_MODPLUG) option(USE_MODPLUG_STATIC "Use linking with a static ModPlug" ON) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(ModPlug QUIET) + find_path(ModPlug_INCLUDE_DIRS "modplug.h" PATH_SUFFIXES libmodplug) + find_library(ModPlug_LIBRARY_RELEASE NAMES modplug PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) + find_library(ModPlug_LIBRARY_DEBUG NAMES modplug PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) + include(SelectLibraryConfigurations) + select_library_configurations(ModPlug) + set(ModPlug_FOUND 1) message("ModPlug: [${ModPlug_FOUND}] ${ModPlug_INCLUDE_DIRS} ${ModPlug_LIBRARIES}") if(USE_MODPLUG_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DMODPLUG_DYNAMIC=\"${ModPlug_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_mpg123.cmake b/src/codecs/music_mpg123.cmake index c615896cd95e2854ced2d4188ea8e0d18870ad91..602a7b136ec135d55839cf7ab103df56357a8a4c 100644 --- a/src/codecs/music_mpg123.cmake +++ b/src/codecs/music_mpg123.cmake @@ -4,7 +4,10 @@ if(USE_MP3_MPG123 AND MIXERX_LGPL) option(USE_MP3_MPG123_DYNAMIC "Use dynamical loading of MPG123" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(Mpg123 QUIET) + find_package(MPG123 CONFIG REQUIRED) + get_target_property(MPG123_INCLUDE_DIR MPG123::libmpg123 INTERFACE_INCLUDE_DIRECTORIES) + set(MPG123_LIBRARIES MPG123::libmpg123) + set(MPG123_FOUND 1) message("MPG123 found in ${MPG123_INCLUDE_DIR} folder") if(USE_MP3_MPG123_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DMPG123_DYNAMIC=\"${MPG123_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_ogg.cmake b/src/codecs/music_ogg.cmake index e7930f9c7e1a583f77306f6838933b991382872f..33a8a59e72e30e3cabd4e834895a23ae7b101324 100644 --- a/src/codecs/music_ogg.cmake +++ b/src/codecs/music_ogg.cmake @@ -1,4 +1,4 @@ -if(LIBOGG_NEEDED) +if(0) if(USE_SYSTEM_AUDIO_LIBRARIES) find_package(OGG REQUIRED) else() diff --git a/src/codecs/music_ogg_vorbis.cmake b/src/codecs/music_ogg_vorbis.cmake index 0de2bec5d9327af7b38f09993dd884be786f3a5b..42b94340956fb8b28a03485ddc68282e3cf57ee9 100644 --- a/src/codecs/music_ogg_vorbis.cmake +++ b/src/codecs/music_ogg_vorbis.cmake @@ -10,7 +10,10 @@ if(USE_OGG_VORBIS) find_package(Tremor QUIET) message("Tremor: [${Tremor_FOUND}] ${Tremor_INCLUDE_DIRS} ${Tremor_LIBRARIES}") else() - find_package(Vorbis QUIET) + find_package(Vorbis CONFIG REQUIRED) + get_target_property(Vorbis_INCLUDE_DIRS Vorbis::vorbisfile INTERFACE_INCLUDE_DIRECTORIES) + set(Vorbis_LIBRARIES Vorbis::vorbisfile) + set(Vorbis_FOUND 1) message("Vorbis: [${Vorbis_FOUND}] ${Vorbis_INCLUDE_DIRS} ${Vorbis_LIBRARIES}") endif() diff --git a/src/codecs/music_opus.cmake b/src/codecs/music_opus.cmake index 61fb32e7ec1bcb4e21cb77607399f1f36317c481..44e0b5da00146492a2b34a65ab0c16846b1aeb84 100644 --- a/src/codecs/music_opus.cmake +++ b/src/codecs/music_opus.cmake @@ -3,7 +3,10 @@ if(USE_OPUS) option(USE_OPUS_DYNAMIC "Use dynamical loading of Opus" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(Opus QUIET) + find_package(OpusFile CONFIG REQUIRED) + get_target_property(Opus_INCLUDE_DIRS OpusFile::opusfile INTERFACE_INCLUDE_DIRECTORIES) + set(Opus_LIBRARIES OpusFile::opusfile) + set(Opus_FOUND 1) message("Opus: [${Opus_FOUND}] ${Opus_INCLUDE_DIRS} ${Opus_LIBRARIES} ${LIBOPUS_LIB}") if(USE_OPUS_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DOPUS_DYNAMIC=\"${OpusFile_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_wavpack.cmake b/src/codecs/music_wavpack.cmake index f93acdb4315e0f44311efdbc254a3fcd69964151..95d0372e2b8d0503864edf41f01977cf28a480f9 100644 --- a/src/codecs/music_wavpack.cmake +++ b/src/codecs/music_wavpack.cmake @@ -4,7 +4,10 @@ if(USE_WAVPACK) option(USE_WAVPACK_DSD "Enable WavPack DSD music support" OFF) if(USE_SYSTEM_AUDIO_LIBRARIES) - find_package(WavPack QUIET) + find_package(WavPack CONFIG REQUIRED) + get_target_property(WavPack_INCLUDE_DIRS WavPack::WavPack INTERFACE_INCLUDE_DIRECTORIES) + set(WavPack_LIBRARIES WavPack::WavPack) + set(WavPack_FOUND 1) message("WavPack: [${WavPack_FOUND}] ${WavPack_INCLUDE_DIRS} ${WavPack_LIBRARIES}") if(USE_WAVPACK_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DWAVPACK_DYNAMIC=\"${WavPack_DYNAMIC_LIBRARY}\") diff --git a/src/codecs/music_xmp.cmake b/src/codecs/music_xmp.cmake index 52f2048b0b8cb9c72a27f16777fb7d9112be1c2d..2eab53c039e875733f18fc2f20b2e9f178371425 100644 --- a/src/codecs/music_xmp.cmake +++ b/src/codecs/music_xmp.cmake @@ -25,7 +25,15 @@ if(USE_XMP) set(XMP_LIBRARIES ${XMPLITE_LIBRARIES}) set(XMP_FOUND ${XMPLITE_FOUND}) else() - find_package(XMP) + find_package(libxmp CONFIG REQUIRED) + if(SDL_MIXER_X_STATIC) + set(_xmp libxmp::xmp_static) + else() + set(_xmp libxmp::xmp_shared) + endif() + get_target_property(XMP_INCLUDE_DIRS ${_xmp} INTERFACE_INCLUDE_DIRECTORIES) + set(XMP_LIBRARIES ${_xmp}) + set(XMP_FOUND 1) message("XMP: [${XMP_FOUND}] ${XMP_INCLUDE_DIRS} ${XMP_LIBRARIES}") if(USE_XMP_DYNAMIC) list(APPEND SDL_MIXER_DEFINITIONS -DXMP_DYNAMIC=\"${XMP_DYNAMIC_LIBRARY}\") ================================================ FILE: ports/sdl2-mixer-ext/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO WohlSoft/SDL-Mixer-X REF "${VERSION}" SHA512 bdb39122ecf8492723615421c37c0d2a8d5958110d7bf2f0a01f5c54cc1f3f6e9a54887df7d348e9dc7e34906cff67794b0f5d61ca6fe5e4019f84ed88cf07e5 HEAD_REF master PATCHES fix-dependencies.patch ) file(REMOVE "${SOURCE_PATH}/cmake/find/FindOGG.cmake" # Conflicts with official configurations "${SOURCE_PATH}/cmake/find/FindFFMPEG.cmake" # Using FindFFMPEG.cmake provided by vcpkg ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES libvorbis USE_OGG_VORBIS opusfile USE_OPUS libflac USE_FLAC wavpack USE_WAVPACK mpg123 USE_MP3_MPG123 libmodplug USE_MODPLUG libxmp USE_XMP libgme USE_GME ffmpeg USE_FFMPEG pxtone USE_PXTONE cmd USE_CMD libadlmidi USE_MIDI_ADLMIDI libopnmidi USE_MIDI_OPNMIDI timidity USE_MIDI_TIMIDITY fluidsynth USE_MIDI_FLUIDSYNTH nativemidi USE_MIDI_NATIVE_ALT nativemidi USE_MIDI_NATIVE ) if("libadlmidi" IN_LIST FEATURES OR "libopnmidi" IN_LIST FEATURES OR "timidity" IN_LIST FEATURES OR "fluidsynth" IN_LIST FEATURES OR "nativemidi" IN_LIST FEATURES) set(USE_MIDI ON) else() set(USE_MIDI OFF) endif() if("fluidsynth" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND EXTRA_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} -DMIXERX_ENABLE_GPL=ON -DMIXERX_ENABLE_LGPL=ON -DUSE_SYSTEM_SDL2=ON -DUSE_SYSTEM_AUDIO_LIBRARIES=ON -DUSE_OGG_VORBIS_STB=OFF -DUSE_DRFLAC=OFF -USE_WAVPACK_DSD=ON -DUSE_MP3_DRMP3=OFF -DUSE_FFMPEG_DYNAMIC=OFF -DUSE_MIDI=${USE_MIDI} -DUSE_MIDI_EDMIDI=OFF -DUSE_MIDI_FLUIDLITE=OFF MAYBE_UNUSED_VARIABLES USE_WAVPACK_DSD USE_FFMPEG_DYNAMIC USE_CMD USE_MIDI_NATIVE USE_MIDI_NATIVE_ALT ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME SDL2_mixer_ext CONFIG_PATH lib/cmake/SDL2_mixer_ext) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(LICENSE_FILES "${SOURCE_PATH}/COPYING.txt" "${SOURCE_PATH}/GPLv2.txt" "${SOURCE_PATH}/GPLv3.txt" "${SOURCE_PATH}/SDL2_mixer_ext.License.txt" ) vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/sdl2-mixer-ext/usage ================================================ sdl2-mixer-ext provides CMake targets: find_package(SDL2_mixer_ext CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL2_mixer_ext::SDL2_mixer_ext,SDL2_mixer_ext::SDL2_mixer_ext_Static>) ================================================ FILE: ports/sdl2-mixer-ext/vcpkg.json ================================================ { "name": "sdl2-mixer-ext", "version": "2.6.0", "port-version": 1, "description": "An audio mixer library based on the SDL library, a fork of SDL_mixer", "homepage": "https://wohlsoft.github.io/SDL-Mixer-X", "license": "Zlib OR LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later", "dependencies": [ { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cmd": { "description": "Use external command for playing music (Linux only).", "supports": "linux" }, "ffmpeg": { "description": "Use FFMPEG to play WMA and AAC audio formats.", "dependencies": [ { "name": "ffmpeg", "default-features": false } ] }, "fluidsynth": { "description": "Use FluidSynth to play MIDI audio format.", "dependencies": [ { "name": "fluidsynth", "default-features": false } ] }, "libadlmidi": { "description": "Use libADLMIDI to play XMI, MUS, IMF and regular MIDI audio format with OPL3 (YMF262) emulator.", "dependencies": [ { "name": "libadlmidi", "default-features": false } ] }, "libflac": { "description": "Use libflac to play FLAC audio format.", "dependencies": [ "libflac" ] }, "libgme": { "description": "Use libgme to play chip music (AY, GBS, GYM, HES, KSS, NSF/NSFE, SAP, SPC, VGM/VGZ).", "dependencies": [ { "name": "libgme", "default-features": false } ] }, "libmodplug": { "description": "Use libmodplug to play tracker music including exclusive formats (AMS, DMF, DSM, MT2).", "dependencies": [ "libmodplug" ] }, "libopnmidi": { "description": "Use libOPNMIDI to play MIDI and RMI audio format with OPN2 (YM2612) emulator.", "dependencies": [ { "name": "libopnmidi", "default-features": false } ] }, "libvorbis": { "description": "Use libvorbis to play OGG audio format.", "dependencies": [ "libvorbis" ] }, "libxmp": { "description": "Use libxmp to play tracker music including exclusive formats (ABK, DIGI, DTM, EMOD, FLX, FNK, GDM, IMF, J2B, LIQ, M15, MFP, MGT, MMDC, MTN, RTM, SFX, SPM, STIM, STX, WOW).", "dependencies": [ { "name": "libxmp", "default-features": false } ] }, "mpg123": { "description": "Use mpg123 to play MP3 audio format.", "dependencies": [ "mpg123" ] }, "nativemidi": { "description": "Use Native MIDI Player to play MIDI audio format.", "supports": "(windows & !uwp) | osx" }, "opusfile": { "description": "Use opusfile to play Opus audio format.", "dependencies": [ "opusfile" ] }, "pxtone": { "description": "Use pxtone to play PPTUNE and PTCOP audio formats." }, "timidity": { "description": "Use Timidity to play MIDI audio format." }, "wavpack": { "description": "Use wavpack to play VW audio format.", "dependencies": [ "wavpack" ] } } } ================================================ FILE: ports/sdl2-net/fix-uwp.patch ================================================ diff --git a/SDLnetUDP.c b/SDLnetUDP.c index ee4e46b..dc9b4b0 100644 --- a/SDLnetUDP.c +++ b/SDLnetUDP.c @@ -22,7 +22,7 @@ #include "SDLnetsys.h" #include "SDL_net.h" -#if defined(__WIN32__) || defined(__OS2__) +#if defined(_WIN32) || defined(__OS2__) #define srandom srand #define random rand #endif ================================================ FILE: ports/sdl2-net/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_net REF 669e75b84632e2c6cc5c65974ec9e28052cb7a4e # release-2.2.0 SHA512 180c757d704c72dc7fcc392c13942214c87b90de22e32045ec9eb6cde5da2b762516e14120d8bee52f7f4a59ad8e30d4f71e313918432ae07ef71df8e9380e4b HEAD_REF main PATCHES fix-uwp.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDL2NET_SAMPLES=OFF ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_net CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_net CONFIG_PATH lib/cmake/SDL2_net) endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl2-net/usage ================================================ sdl2-net provides CMake targets: find_package(SDL2_net CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL2_net::SDL2_net,SDL2_net::SDL2_net-static>) ================================================ FILE: ports/sdl2-net/vcpkg.json ================================================ { "name": "sdl2-net", "version": "2.2.0", "port-version": 3, "description": "Networking library for SDL", "homepage": "https://github.com/libsdl-org/SDL_net", "license": "Zlib", "dependencies": [ { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sdl2-ttf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_ttf REF "release-${VERSION}" SHA512 c07037ac4ccbc5fff5fa6ed58e749995d70d719ab220412141f279ea34a564a36a1cd10c6d82e6ad5c02b928e000b2937b69ca29515f689b83550e382b1bedaf HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES harfbuzz SDL2TTF_HARFBUZZ ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDL2TTF_VENDORED=OFF -DSDL2TTF_SAMPLES=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_ttf CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME SDL2_ttf CONFIG_PATH lib/cmake/SDL2_ttf) endif() vcpkg_fixup_pkgconfig() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/SDL2_ttf.pc" "-lSDL2_ttf" "-lSDL2_ttfd") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl2-ttf/usage ================================================ sdl2-ttf provides CMake targets: find_package(SDL2_ttf CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL2_ttf::SDL2_ttf,SDL2_ttf::SDL2_ttf-static>) ================================================ FILE: ports/sdl2-ttf/vcpkg.json ================================================ { "name": "sdl2-ttf", "version": "2.24.0", "description": "A library for rendering TrueType fonts with SDL", "homepage": "https://www.libsdl.org/projects/SDL_ttf/", "license": "Zlib", "dependencies": [ "freetype", { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "harfbuzz": { "description": "Enable HarfBuzz support", "dependencies": [ "harfbuzz" ] } } } ================================================ FILE: ports/sdl2pp/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b9ecf5..4ffea49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ endif() if(SDL2PP_WITH_IMAGE) find_package(SDL2_image REQUIRED) - set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} SDL2_image::SDL2_image) + set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static>) set(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_image") else() message(STATUS "SDL2_image support disabled") @@ -47,7 +47,7 @@ endif() if(SDL2PP_WITH_TTF) find_package(SDL2_ttf REQUIRED) - set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} SDL2_ttf::SDL2_ttf) + set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $,SDL2_ttf::SDL2_ttf,SDL2_ttf::SDL2_ttf-static>) set(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_ttf") else() message(STATUS "SDL2_ttf support disabled") @@ -55,7 +55,7 @@ endif() if(SDL2PP_WITH_MIXER) find_package(SDL2_mixer REQUIRED) - set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} SDL2_mixer::SDL2_mixer) + set(SDL2_ALL_LIBRARIES ${SDL2_ALL_LIBRARIES} $,SDL2_mixer::SDL2_mixer,SDL2_mixer::SDL2_mixer-static>) set(SDL2_ALL_PKGCONFIG_MODULES "${SDL2_ALL_PKGCONFIG_MODULES} SDL2_mixer") else() message(STATUS "SDL2_mixer support disabled") ================================================ FILE: ports/sdl2pp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libSDL2pp/libSDL2pp REF "${VERSION}" SHA512 655412c93df5e6207064a07328785add4e7700a656295f03f0f2df4898ce62bd259340de28bf2a79db4fce765d2000ce6a43312dbe524f2b2b909a2dbf324859 HEAD_REF master PATCHES fix-dependencies.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sdl2-image SDL2PP_WITH_IMAGE sdl2-mixer SDL2PP_WITH_MIXER sdl2-ttf SDL2PP_WITH_TTF ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL2PP_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDL2PP_WITH_EXAMPLES=OFF -DSDL2PP_WITH_TESTS=OFF -DSDL2PP_STATIC=${SDL2PP_STATIC} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.txt") ================================================ FILE: ports/sdl2pp/vcpkg.json ================================================ { "name": "sdl2pp", "version": "0.18.1", "description": "C++11 bindings/wrapper for SDL2", "homepage": "https://github.com/libSDL2pp/libSDL2pp", "license": "Zlib", "dependencies": [ { "name": "sdl2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "sdl2-image": { "description": "Enable SDL2_image support", "dependencies": [ "sdl2-image" ] }, "sdl2-mixer": { "description": "Enable SDL2_mixer support", "dependencies": [ "sdl2-mixer" ] }, "sdl2-ttf": { "description": "Enable SDL2_ttf support", "dependencies": [ "sdl2-ttf" ] } } } ================================================ FILE: ports/sdl3/fix-freebsd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e19336..ff6424b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4038,7 +4038,7 @@ else() endif() set(SDL_INSTALL_CMAKEDIR_ROOT "${SDL_INSTALL_CMAKEDIR_ROOT_DEFAULT}" CACHE STRING "Root folder where to install SDL3Config.cmake related files (SDL3 subfolder for MSVC projects)") -if(FREEBSD) +if(0) # FreeBSD uses ${PREFIX}/libdata/pkgconfig set(SDL_PKGCONFIG_INSTALLDIR "libdata/pkgconfig") else() ================================================ FILE: ports/sdl3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL REF "release-${VERSION}" SHA512 f5da0573118330ecef40d0cbb0a4a01c03a0c0e376624108ed9abe8769cdf68d8c61868d771ab65dd1666690d2a363e1dd1cd5cca408eb8ac9b9b613caa4af40 HEAD_REF main PATCHES fix-freebsd.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SDL_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SDL_SHARED) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" FORCE_STATIC_VCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES alsa SDL_ALSA dbus SDL_DBUS ibus SDL_IBUS vulkan SDL_VULKAN wayland SDL_WAYLAND x11 SDL_X11 ) if (VCPKG_TARGET_IS_EMSCRIPTEN) vcpkg_check_features(OUT_FEATURE_OPTIONS EMSCRIPTEN_FEATURE_OPTIONS FEATURES emscripten-pthreads SDL_PTHREADS ) vcpkg_list(APPEND FEATURE_OPTIONS "${EMSCRIPTEN_FEATURE_OPTIONS}") endif() if ("x11" IN_LIST FEATURES) message(WARNING "You will need to install Xorg dependencies to use feature x11:\nsudo apt install libx11-dev libxft-dev libxext-dev\n") endif() if ("wayland" IN_LIST FEATURES) message(WARNING "You will need to install Wayland dependencies to use feature wayland:\nsudo apt install libwayland-dev libxkbcommon-dev libegl1-mesa-dev\n") endif() if ("ibus" IN_LIST FEATURES) message(WARNING "You will need to install ibus dependencies to use feature ibus:\nsudo apt install libibus-1.0-dev\n") endif() # option for not need to show windows list(APPEND FEATURE_OPTIONS -DSDL_UNIX_CONSOLE_BUILD=ON) if (VCPKG_TARGET_IS_LINUX AND NOT "x11" IN_LIST FEATURES AND NOT "wayland" IN_LIST FEATURES) message(WARNING "The selected features don't allow sdl3 to create windows, which is usually unintentional. You can get windowing support by installing the x11 and/or wayland features.") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSDL_STATIC=${SDL_STATIC} -DSDL_SHARED=${SDL_SHARED} -DSDL_FORCE_STATIC_VCRT=${FORCE_STATIC_VCRT} -DSDL_LIBC=ON -DSDL_TEST_LIBRARY=OFF -DSDL_TESTS=OFF -DSDL_X11_XSCRNSAVER=OFF -DSDL_INSTALL_CMAKEDIR_ROOT=share/${PORT} # Specifying the revision skips the need to use git to determine a version -DSDL_REVISION=vcpkg -DCMAKE_DISABLE_FIND_PACKAGE_LibUSB=1 MAYBE_UNUSED_VARIABLES SDL_FORCE_STATIC_VCRT ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt" COMMENT "Some configurations may use code licensed under the MIT and Apache-2.0 licenses." ) ================================================ FILE: ports/sdl3/usage ================================================ sdl3 provides CMake targets: find_package(SDL3 CONFIG REQUIRED) target_link_libraries(main PRIVATE SDL3::SDL3) ================================================ FILE: ports/sdl3/vcpkg.json ================================================ { "name": "sdl3", "version": "3.4.2", "port-version": 1, "description": "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.", "homepage": "https://www.libsdl.org", "license": "Zlib AND MIT AND Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "ibus", "platform": "linux" }, { "name": "wayland", "platform": "linux" }, { "name": "x11", "platform": "linux" } ], "features": { "alsa": { "description": "Support for alsa audio", "dependencies": [ { "name": "alsa", "platform": "linux" } ] }, "dbus": { "description": "Build with D-Bus support", "dependencies": [ { "name": "dbus", "default-features": false, "platform": "linux" } ] }, "emscripten-pthreads": { "description": "Build Emscripten pthreads support", "supports": "emscripten" }, "ibus": { "description": "Build with ibus IME support", "supports": "linux" }, "vulkan": { "description": "Vulkan functionality for SDL" }, "wayland": { "description": "Build with Wayland support", "supports": "linux" }, "x11": { "description": "Build with X11 support", "supports": "!windows" } } } ================================================ FILE: ports/sdl3-image/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0a0cc03..27a009d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -293,6 +293,8 @@ target_compile_definitions(${sdl3_image_target_name} PRIVATE target_link_libraries(${sdl3_image_target_name} PUBLIC SDL3::Headers) if(SDLIMAGE_BUILD_SHARED_LIBS) target_link_libraries(${sdl3_image_target_name} PRIVATE SDL3::SDL3-shared) +else() + target_link_libraries(${sdl3_image_target_name} PRIVATE SDL3::SDL3) endif() sdl_add_warning_options(${sdl3_image_target_name} WARNING_AS_ERROR ${SDLIMAGE_WERROR}) if(WIN32 AND SDLIMAGE_BUILD_SHARED_LIBS) @@ -971,7 +973,7 @@ if(SDLIMAGE_WEBP) message(STATUS "${PROJECT_NAME}: Using libwebp from CMake variable") set(SDLIMAGE_WEBP_ENABLED TRUE) else() - find_package(webp ${required}) + find_package(webp NAMES WebP ${required}) if(webp_FOUND) message(STATUS "${PROJECT_NAME}: Using system libwebp") set(SDLIMAGE_WEBP_ENABLED TRUE) diff --git a/cmake/SDL3_imageConfig.cmake.in b/cmake/SDL3_imageConfig.cmake.in index db72fd7..d8f91ff 100644 --- a/cmake/SDL3_imageConfig.cmake.in +++ b/cmake/SDL3_imageConfig.cmake.in @@ -6,6 +6,9 @@ set_package_properties(SDL3_image PROPERTIES DESCRIPTION "SDL_image is an image file loading library" ) +include(CMakeFindDependencyMacro) +find_dependency(SDL3 CONFIG) + set(SDL3_image_FOUND ON) set(SDLIMAGE_AVIF @SDLIMAGE_AVIF_ENABLED@) @@ -110,8 +113,7 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_image-static-targets.cmake") endif() if(SDLIMAGE_WEBP AND NOT TARGET WebP::webp AND NOT SDLIMAGE_WEBP_SHARED) - list(APPEND webp_ROOT "${CMAKE_CURRENT_LIST_DIR}") - find_dependency(webp) + find_dependency(WebP) endif() set(CMAKE_MODULE_PATH "${_sdl_cmake_module_path}") ================================================ FILE: ports/sdl3-image/pkgconfig-libname.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 27a009d..0306afb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1122,6 +1122,7 @@ else() set(LIBDIR_FOR_PKG_CONFIG "\${prefix}/${CMAKE_INSTALL_LIBDIR}") endif() + get_target_property(PC_LIB_NAME "${sdl3_image_target_name}" OUTPUT_NAME) string(JOIN " " PC_REQUIRES ${PC_REQUIRES}) string(JOIN " " PC_LIBS ${PC_LIBS}) configure_file(cmake/sdl3-image.pc.in sdl3-image.pc @ONLY) diff --git a/cmake/sdl3-image.pc.in b/cmake/sdl3-image.pc.in index dae41df..e4ce850 100644 --- a/cmake/sdl3-image.pc.in +++ b/cmake/sdl3-image.pc.in @@ -7,7 +7,7 @@ Name: @PROJECT_NAME@ Description: image loading library for Simple DirectMedia Layer Version: @PROJECT_VERSION@ Requires: sdl3 >= @SDL_REQUIRED_VERSION@ -Libs: -L${libdir} -lSDL3_image +Libs: -L${libdir} -l@PC_LIB_NAME@ Requires.private: @PC_REQUIRES@ Libs.private: @PC_LIBS@ Cflags: -I${includedir} ================================================ FILE: ports/sdl3-image/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_image REF "release-${VERSION}" SHA512 3e98854f92b2fbb3489408b413ce2e0cfbb3e3eea58fa6e7037948a9fa7bf6bf5af38c4087285d4b7340b1115699c2c4b9626ce65a3e3b449bd5d4ec2078c957 HEAD_REF main PATCHES dependencies.diff pkgconfig-libname.diff ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES jpeg SDLIMAGE_JPG png SDLIMAGE_PNG tiff SDLIMAGE_TIF webp SDLIMAGE_WEBP INVERTED_FEATURES # Disabled capabilities: Needing dependencies. core SDLIMAGE_AVIF core SDLIMAGE_JXL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSDLIMAGE_BACKEND_IMAGEIO=OFF -DSDLIMAGE_BACKEND_STB=OFF -DSDLIMAGE_DEPS_SHARED=OFF -DSDLIMAGE_RELOCATABLE=ON -DSDLIMAGE_SAMPLES=OFF -DSDLIMAGE_STRICT=ON -DSDLIMAGE_VENDORED=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME SDL3_image CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME SDL3_image CONFIG_PATH lib/cmake/SDL3_image) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl3-image/usage ================================================ sdl3-image provides CMake targets: find_package(SDL3_image CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL3_image::SDL3_image-shared,SDL3_image::SDL3_image-static>) sdl3-image provides pkg-config modules: # image loading library for Simple DirectMedia Layer sdl3-image ================================================ FILE: ports/sdl3-image/vcpkg.json ================================================ { "name": "sdl3-image", "version": "3.4.0", "description": "SDL_image is an image file loading library. It loads images as SDL surfaces and textures, and supports the following formats: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV", "homepage": "https://github.com/libsdl-org/SDL_image", "license": "Zlib", "dependencies": [ { "name": "sdl3", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "jpeg": { "description": "Support for JPEG image format", "dependencies": [ "libjpeg-turbo" ] }, "png": { "description": "Support for PNG image format", "dependencies": [ "libpng" ] }, "tiff": { "description": "Support for TIFF image format", "dependencies": [ { "name": "tiff", "default-features": false } ] }, "webp": { "description": "Support for WEBP image format.", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/sdl3-mixer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_mixer REF "release-${VERSION}" HEAD_REF main SHA512 5f53ab3011e5727df51e405a687c0699e1530d4d597ab299ce8a6008a3c8295cf9170b072bf07ec49fb0af6eee757005a10cf67aa283b23575a3f58874c9b6be ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fluidsynth SDLMIXER_MIDI fluidsynth SDLMIXER_MIDI_FLUIDSYNTH libflac SDLMIXER_FLAC libflac SDLMIXER_FLAC_LIBFLAC libxmp SDLMIXER_MOD libxmp SDLMIXER_MOD_XMP mpg123 SDLMIXER_MP3 mpg123 SDLMIXER_MP3_MPG123 opusfile SDLMIXER_OPUS libvorbis SDLMIXER_VORBIS_VORBISFILE wavpack SDLMIXER_WAVPACK ) if("fluidsynth" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND EXTRA_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${EXTRA_OPTIONS} -DSDLMIXER_TESTS=OFF -DSDLMIXER_VENDORED=OFF -DSDLMIXER_DEPS_SHARED=OFF -DSDLMIXER_OPUS_SHARED=OFF -DSDLMIXER_VORBIS_VORBISFILE_SHARED=OFF -DSDLMIXER_FLAC_DRFLAC=OFF -DSDLMIXER_MIDI_TIMIDITY=OFF -DSDLMIXER_MP3_DRMP3=OFF -DSDLMIXER_MOD_XMP_SHARED=${BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(PACKAGE_NAME "SDL3_mixer" CONFIG_PATH "cmake") else() vcpkg_cmake_config_fixup(PACKAGE_NAME "SDL3_mixer" CONFIG_PATH "lib/cmake/SDL3_mixer") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl3-mixer/usage ================================================ sdl3-mixer provides CMake targets: find_package(SDL3_mixer CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SDL3_mixer::SDL3_mixer,SDL3_mixer::SDL3_mixer-static>) ================================================ FILE: ports/sdl3-mixer/vcpkg.json ================================================ { "name": "sdl3-mixer", "version": "3.2.0", "description": "An audio mixer that supports various file formats for Simple Directmedia Layer.", "homepage": "https://github.com/libsdl-org/SDL_mixer", "license": "Zlib", "dependencies": [ { "name": "sdl3", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fluidsynth": { "description": "Use FluidSynth to play MIDI audio format.", "dependencies": [ "fluidsynth" ] }, "libflac": { "description": "Use libflac to play FLAC audio format.", "dependencies": [ { "name": "libflac", "default-features": false } ] }, "libvorbis": { "description": "Use libvorbis to play Vorbis audio format.", "dependencies": [ "libvorbis" ] }, "libxmp": { "description": "Use libxmp to open MOD files.", "dependencies": [ { "name": "libxmp", "default-features": false } ] }, "mpg123": { "description": "Use mpg123 to play MP3 audio format.", "dependencies": [ "mpg123" ] }, "opusfile": { "description": "Use opusfile to play Opus audio format.", "dependencies": [ "opusfile" ] }, "wavpack": { "description": "Use wavpack to play WAV audio format.", "dependencies": [ "wavpack" ] } } } ================================================ FILE: ports/sdl3-shadercross/fix-directx-shader-compiler-includes.patch ================================================ diff --git a/cmake/FindDirectXShaderCompiler.cmake b/cmake/FindDirectXShaderCompiler.cmake index 788805c..e9480bf 100644 --- a/cmake/FindDirectXShaderCompiler.cmake +++ b/cmake/FindDirectXShaderCompiler.cmake @@ -1,8 +1,7 @@ set(required_vars) if(WIN32) - find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "inc" "windows/inc" HINTS ${DirectXShaderCompiler_ROOT}) if(SDL_CPU_ARM64) set(extra_bin_suffix "bin/arm64" "windows/bin/arm64") set(extra_lib_suffix "lib/arm64" "windows/lib/arm64") elseif(SDL_CPU_X86) @@ -15,19 +14,16 @@ if(WIN32) find_file(DirectXShaderCompiler_dxcompiler_BINARY NAMES "dxcompiler.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT}) find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" "dxcompiler.lib" PATH_SUFFIXES "lib" ${extra_lib_suffix} HINTS ${DirectXShaderCompiler_ROOT}) find_file(DirectXShaderCompiler_dxil_BINARY NAMES "dxil.dll" PATH_SUFFIXES "bin" ${extra_bin_suffix} HINTS ${DirectXShaderCompiler_ROOT}) set(required_vars - DirectXShaderCompiler_INCLUDE_PATH DirectXShaderCompiler_dxcompiler_BINARY DirectXShaderCompiler_dxcompiler_LIBRARY DirectXShaderCompiler_dxil_BINARY ) else() - find_path(DirectXShaderCompiler_INCLUDE_PATH NAMES "dxcapi.h" PATH_SUFFIXES "include" "include/dxc" "linux/include" "linux/include/dxc") find_library(DirectXShaderCompiler_dxcompiler_LIBRARY NAMES "dxcompiler" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT}) find_library(DirectXShaderCompiler_dxil_LIBRARY NAMES "dxil" PATH_SUFFIXES "lib" "linux/lib" HINTS ${DirectXShaderCompiler_ROOT}) set(required_vars - DirectXShaderCompiler_INCLUDE_PATH DirectXShaderCompiler_dxcompiler_LIBRARY DirectXShaderCompiler_dxil_LIBRARY ) endif() @@ -40,9 +36,8 @@ find_package_handle_standard_args(DirectXShaderCompiler if(DirectXShaderCompiler_FOUND) if(NOT TARGET DirectXShaderCompiler::dxcompiler) add_library(DirectXShaderCompiler::dxcompiler IMPORTED SHARED) - set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${DirectXShaderCompiler_INCLUDE_PATH}") if(WIN32) set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_LOCATION "${DirectXShaderCompiler_dxcompiler_BINARY}") set_property(TARGET DirectXShaderCompiler::dxcompiler PROPERTY IMPORTED_IMPLIB "${DirectXShaderCompiler_dxcompiler_LIBRARY}") else() ================================================ FILE: ports/sdl3-shadercross/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_shadercross REF 7b7365a86611b2a7b6462e521cf1c43a037d0970 SHA512 52efd2c2507d6ae874cdc177945e15494920f11148e9e9cf8da27fb5ccacb5fcbe44581005e132a84631e9d438616aa1247b7ae23f4ef1785203cdcb08af19af HEAD_REF main PATCHES fix-directx-shader-compiler-includes.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDLSHADERCROSS_INSTALL=ON -DSDLSHADERCROSS_INSTALL_CMAKEDIR_ROOT=share/sdl3_shadercross -DSDLSHADERCROSS_INSTALL_RUNTIME=OFF -DSDLSHADERCROSS_SPIRVCROSS_SHARED=OFF -DSDLSHADERCROSS_VENDORED=OFF ) vcpkg_cmake_install() if (VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(PACKAGE_NAME "sdl3_shadercross") else() vcpkg_cmake_config_fixup(PACKAGE_NAME "sdl3_shadercross" CONFIG_PATH "share/sdl3_shadercross/SDL3_shadercross") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES shadercross AUTO_CLEAN) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl3-shadercross/usage ================================================ sdl3-shadercross provides CMake targets: find_package(SDL3_shadercross CONFIG REQUIRED) target_link_libraries(main PRIVATE SDL3_shadercross::SDL3_shadercross) ================================================ FILE: ports/sdl3-shadercross/vcpkg.json ================================================ { "name": "sdl3-shadercross", "version": "3.0.0-preview1", "description": "This is a library for translating shaders to different formats, intended for use with SDL's GPU API. It takes SPIRV or HLSL as the source and outputs DXBC, DXIL, SPIRV, MSL, or HLSL.", "homepage": "https://www.libsdl.org", "license": "Zlib", "supports": "!uwp", "dependencies": [ { "name": "directx-dxc", "version>=": "2025-05-30" }, { "name": "sdl3", "default-features": false, "features": [ "vulkan" ], "version>=": "3.2.16" }, { "name": "spirv-cross", "version>=": "1.4.309.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sdl3-ttf/link-sdl3.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 429bcb0..5779652 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,13 +114,10 @@ set(sdl_required_components Headers) if(SDLTTF_BUILD_SHARED_LIBS) set(sdl3_ttf_target_name SDL3_ttf-shared) - set(sdl3_target_name SDL3::SDL3-shared) - - list(APPEND sdl_required_components SDL3-shared) else() set(sdl3_ttf_target_name SDL3_ttf-static) - set(sdl3_target_name SDL3::SDL3) endif() +set(sdl3_target_name SDL3::SDL3) if(NOT TARGET SDL3::Headers OR NOT TARGET ${sdl3_target_name}) find_package(SDL3 ${SDL_REQUIRED_VERSION} REQUIRED COMPONENTS ${sdl_required_components}) @@ -160,9 +157,7 @@ target_compile_definitions(${sdl3_ttf_target_name} PRIVATE SDL_BUILD_MICRO_VERSION=${MICRO_VERSION} ) target_link_libraries(${sdl3_ttf_target_name} PUBLIC SDL3::Headers) -if(SDLTTF_BUILD_SHARED_LIBS) - target_link_libraries(${sdl3_ttf_target_name} PRIVATE SDL3::SDL3-shared) -endif() +target_link_libraries(${sdl3_ttf_target_name} PRIVATE SDL3::SDL3) sdl_add_warning_options(${sdl3_ttf_target_name} WARNING_AS_ERROR ${SDLTTF_WERROR}) if ("c_std_99" IN_LIST CMAKE_C_COMPILE_FEATURES) target_compile_features(${sdl3_ttf_target_name} PRIVATE c_std_99) diff --git a/cmake/SDL3_ttfConfig.cmake.in b/cmake/SDL3_ttfConfig.cmake.in index 4600afd..7902d9d 100644 --- a/cmake/SDL3_ttfConfig.cmake.in +++ b/cmake/SDL3_ttfConfig.cmake.in @@ -23,6 +23,9 @@ if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-shared-targets.cmake") set(SDL3_ttf_SDL3_ttf-shared_FOUND TRUE) endif() +include(CMakeFindDependencyMacro) +find_dependency(SDL3 @SDL_REQUIRED_VERSION@) + set(SDL3_ttf_SDL3_ttf-static_FOUND FALSE) if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/SDL3_ttf-static-targets.cmake") if(SDLTTF_VENDORED) ================================================ FILE: ports/sdl3-ttf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsdl-org/SDL_ttf REF "release-${VERSION}" SHA512 b9adc28d584759b1cc1072d071caad95ade263a1fb24e294d66fc15e132d44bc62925875cb1f1b596089def9b47d7b73f42ffa4e120ee51982f993dc7a7d3bd7 HEAD_REF main PATCHES link-sdl3.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES harfbuzz SDLTTF_HARFBUZZ svg SDLTTF_PLUTOSVG ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSDLTTF_SAMPLES=OFF -DSDLTTF_STRICT=ON -DSDLTTF_VENDORED=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake") vcpkg_cmake_config_fixup(PACKAGE_NAME sdl3_ttf CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(PACKAGE_NAME sdl3_ttf CONFIG_PATH lib/cmake/SDL3_ttf) endif() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/sdl3-ttf.pc" " -lSDL3_ttf" " -lSDL3_ttf-static") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/sdl3-ttf.pc" " -lSDL3_ttf" " -lSDL3_ttf-static") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sdl3-ttf/usage ================================================ sdl3-ttf provides CMake targets: find_package(SDL3_ttf CONFIG REQUIRED) target_link_libraries(main PRIVATE SDL3_ttf::SDL3_ttf) ================================================ FILE: ports/sdl3-ttf/vcpkg.json ================================================ { "name": "sdl3-ttf", "version": "3.2.2", "port-version": 1, "description": "A library for rendering TrueType fonts with SDL", "homepage": "https://github.com/libsdl-org/SDL_ttf", "license": "Zlib", "supports": "!uwp", "dependencies": [ { "name": "freetype", "default-features": false }, { "name": "sdl3", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "harfbuzz": { "description": "Enable HarfBuzz support", "dependencies": [ "harfbuzz" ] }, "svg": { "description": "Enable plutosvg for color emoji support", "dependencies": [ "plutosvg" ] } } } ================================================ FILE: ports/seacas/deps-and-shared.patch ================================================ diff --git a/cmake/TPLs/FindTPLMETIS.cmake b/cmake/TPLs/FindTPLMETIS.cmake index 90911a3cc..bb57e3bf6 100644 --- a/cmake/TPLs/FindTPLMETIS.cmake +++ b/cmake/TPLs/FindTPLMETIS.cmake @@ -53,8 +53,8 @@ # ************************************************************************ # @HEADER - -TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( METIS - REQUIRED_HEADERS metis.h - REQUIRED_LIBS_NAMES "metis" - ) +find_package(metis REQUIRED) +tribits_extpkg_create_imported_all_libs_target_and_config_file( + METIS + INNER_FIND_PACKAGE_NAME metis + IMPORTED_TARGETS_FOR_ALL_LIBS metis ) diff --git a/cmake/TPLs/FindTPLMatio.cmake b/cmake/TPLs/FindTPLMatio.cmake index c76713ab9..f5b8bd702 100644 --- a/cmake/TPLs/FindTPLMatio.cmake +++ b/cmake/TPLs/FindTPLMatio.cmake @@ -56,7 +56,7 @@ if (${CMAKE_VERSION} GREATER "3.13") cmake_policy(SET CMP0074 NEW) endif() -find_package(Matio REQUIRED) +list(APPEND CMAKE_FIND_LIBRARY_PREFIXES lib) TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( Matio REQUIRED_HEADERS matio.h REQUIRED_LIBS_NAMES "matio") diff --git a/cmake/TPLs/FindTPLZlib.cmake b/cmake/TPLs/FindTPLZlib.cmake index cc607e9d8..069a37c23 100644 --- a/cmake/TPLs/FindTPLZlib.cmake +++ b/cmake/TPLs/FindTPLZlib.cmake @@ -53,8 +53,8 @@ # ************************************************************************ # @HEADER - -TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( Zlib - REQUIRED_HEADERS zlib.h - REQUIRED_LIBS_NAMES z - ) +find_package(ZLIB REQUIRED) +tribits_extpkg_create_imported_all_libs_target_and_config_file( + Zlib + INNER_FIND_PACKAGE_NAME ZLIB + IMPORTED_TARGETS_FOR_ALL_LIBS ZLIB::ZLIB ) diff --git a/cmake/TPLs/FindTPLfmt.cmake b/cmake/TPLs/FindTPLfmt.cmake index c6ec212f9..e38054d9a 100644 --- a/cmake/TPLs/FindTPLfmt.cmake +++ b/cmake/TPLs/FindTPLfmt.cmake @@ -53,8 +53,8 @@ # ************************************************************************ # @HEADER - -TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( fmt - REQUIRED_HEADERS fmt/format.h - REQUIRED_LIBS_NAMES fmt - ) +find_package(fmt REQUIRED) +tribits_extpkg_create_imported_all_libs_target_and_config_file( + fmt + INNER_FIND_PACKAGE_NAME fmt + IMPORTED_TARGETS_FOR_ALL_LIBS fmt::fmt ) diff --git a/cmake/tribits/common_tpls/FindTPLCGNS.cmake b/cmake/tribits/common_tpls/FindTPLCGNS.cmake index 37c329cd4..9d221f64f 100644 --- a/cmake/tribits/common_tpls/FindTPLCGNS.cmake +++ b/cmake/tribits/common_tpls/FindTPLCGNS.cmake @@ -45,14 +45,14 @@ if ((CGNS_ALLOW_MODERN AND HDF5_FOUND_MODERN_CONFIG_FILE) OR CGNS_FORCE_MODERN) print_var(CGNS_ALLOW_MODERN) print_var(CGNS_FORCE_MODERN) message("-- Using find_package(CGNS ${minimum_modern_CGNS_version} CONFIG) ...") - find_package(CGNS ${minimum_modern_CGNS_version} CONFIG) + find_package(cgns CONFIG) if (CGNS_FOUND) message("-- Found CGNS_CONFIG=${CGNS_CONFIG}") message("-- Generating CGNS::all_libs and CGNSConfig.cmake") tribits_extpkg_create_imported_all_libs_target_and_config_file( CGNS - INNER_FIND_PACKAGE_NAME CGNS - IMPORTED_TARGETS_FOR_ALL_LIBS CGNS::cgns) + INNER_FIND_PACKAGE_NAME cgns + IMPORTED_TARGETS_FOR_ALL_LIBS CGNS::CGNS) set(TPL_CGNS_NOT_FOUND FALSE) endif() diff --git a/cmake/tribits/common_tpls/FindTPLHDF5.cmake b/cmake/tribits/common_tpls/FindTPLHDF5.cmake index 716068c28..3d8fc8e76 100644 --- a/cmake/tribits/common_tpls/FindTPLHDF5.cmake +++ b/cmake/tribits/common_tpls/FindTPLHDF5.cmake @@ -9,7 +9,7 @@ if (Netcdf_ALLOW_MODERN) set(minimum_modern_HDF5_version 1.10.2) print_var(Netcdf_ALLOW_MODERN) message("-- Using find_package(HDF5 ${minimum_modern_HDF5_version} CONFIG) ...") - find_package(HDF5 ${minimum_modern_HDF5_version} CONFIG) + find_package(HDF5) if (HDF5_FOUND) message("-- Found HDF5_CONFIG=${HDF5_CONFIG}") message("-- Generating Netcdf::all_libs and NetcdfConfig.cmake") @@ -17,7 +17,7 @@ if (Netcdf_ALLOW_MODERN) tribits_extpkg_create_imported_all_libs_target_and_config_file( HDF5 INNER_FIND_PACKAGE_NAME HDF5 - IMPORTED_TARGETS_FOR_ALL_LIBS ${HDF5_EXPORT_LIBRARIES}) + IMPORTED_TARGETS_FOR_ALL_LIBS hdf5::hdf5) set(HDF5_INTERNAL_IS_MODERN TRUE) else() message("-- Could not find HDF5_CONFIG (FindTPLHDF5.cmake)") @@ -27,7 +27,7 @@ endif() set(HDF5_FOUND_MODERN_CONFIG_FILE ${HDF5_INTERNAL_IS_MODERN} CACHE INTERNAL "True if HDF5 was found by the modern method") -if (NOT TARGET HDF5::all_libs) +if (0) # First, set up the variables for the (backward-compatible) TriBITS way of # finding HDF5. These are used in case find_package(HDF5 ...) is not called diff --git a/cmake/tribits/common_tpls/find_modules/FindCGNS.cmake b/cmake/tribits/common_tpls/find_modules/FindCGNS.cmake index c2c98f4be..9626cdb92 100644 --- a/cmake/tribits/common_tpls/find_modules/FindCGNS.cmake +++ b/cmake/tribits/common_tpls/find_modules/FindCGNS.cmake @@ -180,7 +180,7 @@ else(CGNS_LIBRARIES AND CGNS_INCLUDE_DIRS) if (EXISTS "${CGNS_LIBRARY_DIR}") find_library(CGNS_LIBRARY - NAMES cgns + NAMES cgnsdll cgns HINTS ${CGNS_LIBRARY_DIR} NO_DEFAULT_PATH) @@ -196,7 +196,7 @@ else(CGNS_LIBRARIES AND CGNS_INCLUDE_DIRS) if (EXISTS "${CGNS_ROOT}" ) find_library(CGNS_LIBRARY - NAMES cgns + NAMES cgnsdll cgns HINTS ${CGNS_ROOT} PATH_SUFFIXES "lib" "Lib" NO_DEFAULT_PATH) @@ -210,7 +210,7 @@ else(CGNS_LIBRARIES AND CGNS_INCLUDE_DIRS) else() find_library(CGNS_LIBRARY - NAMES cgns + NAMES cgnsdll cgns PATH_SUFFIXES ${cgns_lib_suffixes}) endif() diff --git a/packages/seacas/libraries/aprepro_lib/CMakeLists.txt b/packages/seacas/libraries/aprepro_lib/CMakeLists.txt index ef391f1c6..a4869415b 100644 --- a/packages/seacas/libraries/aprepro_lib/CMakeLists.txt +++ b/packages/seacas/libraries/aprepro_lib/CMakeLists.txt @@ -104,6 +104,10 @@ if (${CMAKE_PROJECT_NAME} STREQUAL "Seacas") endif() endif() +if(BUILD_SHARED_LIBS) + set_target_properties(aprepro_lib PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() + if (${PACKAGE_NAME}_ENABLE_TESTS) TRIBITS_ADD_EXECUTABLE(aprepro_lib_test NOEXEPREFIX NOEXESUFFIX INSTALLABLE SOURCES apr_test.cc LINKER_LANGUAGE CXX) diff --git a/packages/seacas/libraries/chaco/CMakeLists.txt b/packages/seacas/libraries/chaco/CMakeLists.txt index 5f43a4e0c..ff8570ce3 100644 --- a/packages/seacas/libraries/chaco/CMakeLists.txt +++ b/packages/seacas/libraries/chaco/CMakeLists.txt @@ -56,5 +56,7 @@ TRIBITS_ADD_LIBRARY( HEADERS ${HEADERS} SOURCES ${SOURCES} ) - +if(BUILD_SHARED_LIBS) + set_target_properties(chaco PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() TRIBITS_SUBPACKAGE_POSTPROCESS() diff --git a/packages/seacas/libraries/exodus/CMakeLists.txt b/packages/seacas/libraries/exodus/CMakeLists.txt index 2ed3ec4ab..f80f697f1 100644 --- a/packages/seacas/libraries/exodus/CMakeLists.txt +++ b/packages/seacas/libraries/exodus/CMakeLists.txt @@ -13,6 +13,7 @@ FILE(GLOB SOURCES src/ex_*.c) if (NOT ${PACKAGE_NAME}_HIDE_DEPRECATED_CODE) FILE(GLOB DEP_SOURCES src/deprecated/ex_*.c) endif() +set(EXODUSII_BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}") TRIBITS_CONFIGURE_FILE(exodus_config.h) if (NOT ${EXODUS_THREADSAFE}) @@ -32,6 +33,9 @@ TRIBITS_ADD_LIBRARY( HEADERS ${HEADERS} SOURCES ${SOURCES} ${DEP_SOURCES} ) +if(BUILD_SHARED_LIBS) + target_compile_definitions(exodus PRIVATE exoIIc_EXPORTS) +endif() set_property(TARGET exodus PROPERTY C_STANDARD 99) diff --git a/packages/seacas/libraries/exodus/cmake/exodus_config.h.in b/packages/seacas/libraries/exodus/cmake/exodus_config.h.in index e4dcd51f2..a88254ab7 100644 --- a/packages/seacas/libraries/exodus/cmake/exodus_config.h.in +++ b/packages/seacas/libraries/exodus/cmake/exodus_config.h.in @@ -4,4 +4,17 @@ @SEACAS_DEPRECATED_DECLARATIONS@ +#cmakedefine EXODUSII_BUILD_SHARED_LIBS +#if defined(_WIN32) +# if defined(EXODUSII_BUILD_SHARED_LIBS) +# if defined(exoIIc_EXPORTS) +# define EXODUS_EXPORT __declspec( dllexport ) extern +# else +# define EXODUS_EXPORT __declspec( dllimport ) extern +# endif +# endif +#else +# define EXODUS_EXPORT extern +#endif + #endif diff --git a/packages/seacas/libraries/exodus/include/exodusII.h b/packages/seacas/libraries/exodus/include/exodusII.h index ce636683a..5caa88f45 100644 --- a/packages/seacas/libraries/exodus/include/exodusII.h +++ b/packages/seacas/libraries/exodus/include/exodusII.h @@ -715,7 +715,7 @@ ex_put_loadbal_param_cc(int exoid, /* NetCDF/Exodus file ID ); /* Utility function to replace strncpy, strcpy -- guarantee null termination */ -char *ex_copy_string(char *dest, char const *source, size_t elements); +EXODUS_EXPORT char *ex_copy_string(char *dest, char const *source, size_t elements); /*! * \addtogroup ModelDescription diff --git a/packages/seacas/libraries/exodus/include/exodusII_int.h b/packages/seacas/libraries/exodus/include/exodusII_int.h index cec2d7555..e2a21f8d4 100644 --- a/packages/seacas/libraries/exodus/include/exodusII_int.h +++ b/packages/seacas/libraries/exodus/include/exodusII_int.h @@ -86,7 +86,7 @@ extern "C" { #define EX_FILE_ID_MASK (0xffff0000) /**< Must match FILE_ID_MASK in NetCDF nc4internal.h */ #define EX_GRP_ID_MASK (0x0000ffff) /**< Must match GRP_ID_MASK in NetCDF nc4internal.h */ -void ex__reset_error_status(void); +EXODUS_EXPORT void ex__reset_error_status(void); #if defined(EXODUS_THREADSAFE) #if !defined(exerrval) @@ -791,9 +791,9 @@ extern struct ex__obj_stats *exoII_edm; extern struct ex__obj_stats *exoII_fam; extern struct ex__obj_stats *exoII_nm; -struct ex__file_item *ex__find_file_item(int exoid); -struct ex__file_item *ex__add_file_item(int exoid); -struct ex__obj_stats *ex__get_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr); +EXODUS_EXPORT struct ex__file_item *ex__find_file_item(int exoid); +EXODUS_EXPORT struct ex__file_item *ex__add_file_item(int exoid); +EXODUS_EXPORT struct ex__obj_stats *ex__get_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr); EXODUS_EXPORT void ex__rm_stat_ptr(int exoid, struct ex__obj_stats **obj_ptr); diff --git a/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.h b/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.h index e7323b8ec..ec974dbc8 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.h +++ b/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.h @@ -81,7 +81,7 @@ namespace Ioss { archive(m_bcName, m_famName, m_rangeBeg, m_rangeEnd, m_face); } - friend std::ostream &operator<<(std::ostream &os, const BoundaryCondition &bc); + friend IOSS_EXPORT std::ostream &operator<<(std::ostream &os, const BoundaryCondition &bc); private: bool equal_(const Ioss::BoundaryCondition &rhs, bool quiet) const; diff --git a/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.h b/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.h index 015cc51d3..97bec74b0 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.h +++ b/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.h @@ -86,7 +86,7 @@ namespace Ioss { Ioss::IJK_t inverse_transform(const Ioss::IJK_t &index_1) const; std::vector get_range(int ordinal) const; - friend std::ostream &operator<<(std::ostream &os, const ZoneConnectivity &zgc); + friend IOSS_EXPORT std::ostream &operator<<(std::ostream &os, const ZoneConnectivity &zgc); /* COMPARE two ZoneConnectivity objects */ bool operator==(const Ioss::ZoneConnectivity &rhs) const; diff --git a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.C b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.C index 872050daa..a3a0baf9f 100644 --- a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.C +++ b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.C @@ -51,12 +51,6 @@ namespace Iotm { initialize(); } - TextMesh::TextMesh() - { - m_errorHandler = [](const std::ostringstream &errmsg) { error_handler(errmsg); }; - initialize(); - } - unsigned TextMesh::spatial_dimension() const { return m_data.spatialDim; } void TextMesh::initialize() diff --git a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.h b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.h index 530b51e62..73ea2a5c6 100644 --- a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.h +++ b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMesh.h @@ -58,7 +58,6 @@ namespace Iotm { public: explicit TextMesh(const std::string ¶meters, int proc_count = 1, int my_proc = 0); TextMesh(int proc_count = 1, int my_proc = 0); - TextMesh(); TextMesh(const TextMesh &) = delete; TextMesh &operator=(const TextMesh &) = delete; diff --git a/packages/seacas/libraries/nemesis/CMakeLists.txt b/packages/seacas/libraries/nemesis/CMakeLists.txt index 154cf9e9e..ab5d87daa 100644 --- a/packages/seacas/libraries/nemesis/CMakeLists.txt +++ b/packages/seacas/libraries/nemesis/CMakeLists.txt @@ -1,5 +1,5 @@ TRIBITS_SUBPACKAGE(Nemesis) - +set(NEMESIS_BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}" CACHE BOOL "") SET(NEMESIS_VERSION_MAJOR "5") SET(NEMESIS_VERSION_MINOR "15") SET(NEMESIS_VERSION_PATCH "0") @@ -27,7 +27,7 @@ TRIBITS_ADD_LIBRARY( HEADERS ${HEADERS} SOURCES ${SOURCES} ) - +target_compile_definitions(nemesis PRIVATE nemc_EXPORTS) TRIBITS_ADD_EXECUTABLE_AND_TEST( ne_ctest_wrap NAME ne_ctest_wrap diff --git a/packages/seacas/libraries/nemesis/ne_nemesisI.h b/packages/seacas/libraries/nemesis/ne_nemesisI.h index dc78c2fe4..ae43c1f3f 100644 --- a/packages/seacas/libraries/nemesis/ne_nemesisI.h +++ b/packages/seacas/libraries/nemesis/ne_nemesisI.h @@ -14,6 +14,8 @@ #ifndef _NE_NEMESIS_H #define _NE_NEMESIS_H +#include "nemesis_cfg.h" + #ifdef __cplusplus extern "C" { #endif @@ -34,24 +36,24 @@ typedef void void_int; /*============================================================================= * Initial Information Routines *===========================================================================*/ -extern int ne_get_init_info(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_get_init_info(int neid, /* NemesisI file ID */ int * num_proc, /* Number of processors */ int * num_proc_in_f, /* Number of procs in this file */ char *ftype); -extern int ne_put_init_info(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_put_init_info(int neid, /* NemesisI file ID */ int num_proc, /* Number of processors */ int num_proc_in_f, /* Number of procs in this file */ char *ftype); -extern int ne_get_init_global(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_get_init_global(int neid, /* NemesisI file ID */ void_int *num_nodes_g, /* Number of global FEM nodes */ void_int *num_elems_g, /* Number of global FEM elements */ void_int *num_elem_blks_g, /* Number of global elem blocks */ void_int *num_node_sets_g, /* Number of global node sets */ void_int *num_side_sets_g /* Number of global side sets */ ); -extern int ne_put_init_global(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_put_init_global(int neid, /* NemesisI file ID */ int64_t num_nodes_g, /* Number of global FEM nodes */ int64_t num_elems_g, /* Number of global FEM elements */ int64_t num_elem_blks_g, /* Number of global elem blocks */ @@ -59,12 +61,12 @@ extern int ne_put_init_global(int neid, /* NemesisI file ID */ int64_t num_side_sets_g /* Number of global side sets */ ); -extern int ne_put_version(int neid); +NEMESIS_EXPORT int ne_put_version(int neid); /*============================================================================= * Loadbalance Parameter Routines *===========================================================================*/ -extern int ne_get_loadbal_param(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_loadbal_param(int neid, /* NetCDF/Exodus file ID */ void_int *num_int_nodes, /* Number of internal FEM nodes */ void_int *num_bor_nodes, /* Number of border FEM nodes */ void_int *num_ext_nodes, /* Number of external FEM nodes */ @@ -75,7 +77,7 @@ extern int ne_get_loadbal_param(int neid, /* NetCDF/Exodus file int processor /* Processor ID */ ); -extern int ne_put_loadbal_param(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_put_loadbal_param(int neid, /* NemesisI file ID */ int64_t num_int_nodes, /* Number of internal FEM nodes */ int64_t num_bor_nodes, /* Number of border FEM nodes */ int64_t num_ext_nodes, /* Number of external FEM nodes */ @@ -86,7 +88,7 @@ extern int ne_put_loadbal_param(int neid, /* NemesisI file ID */ int processor /* Processor ID */ ); -extern int ne_put_loadbal_param_cc(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_loadbal_param_cc(int neid, /* NetCDF/Exodus file ID */ void_int *num_int_nodes, /* Number of internal node IDs */ void_int *num_bor_nodes, /* Number of border node IDs */ void_int *num_ext_nodes, /* Number of external node IDs */ @@ -99,26 +101,26 @@ extern int ne_put_loadbal_param_cc(int neid, /* NetCDF/Exodus fi /*============================================================================= * NS, SS & EB Global Parameter Routines *===========================================================================*/ -extern int ne_get_ns_param_global(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_ns_param_global(int neid, /* NetCDF/Exodus file ID */ void_int *ns_ids_glob, /* Global IDs of node sets */ void_int *ns_n_cnt_glob, /* Count of nodes in node sets */ void_int *ns_df_cnt_glob /* Count of dist. factors in ns */ ); -extern int +NEMESIS_EXPORT int ne_put_ns_param_global(int neid, /* NemesisI file ID */ void_int *global_ids, /* Vector of global node-set IDs */ void_int *global_n_cnts, /* Vector of node counts in node-sets */ void_int *global_df_cnts /* Vector of dist factor counts in node-sets */ ); -extern int ne_get_ss_param_global(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_ss_param_global(int neid, /* NetCDF/Exodus file ID */ void_int *ss_ids_glob, /* Global side-set IDs */ void_int *ss_s_cnt_glob, /* Global side count */ void_int *ss_df_cnt_glob /* Global dist. factor count */ ); -extern int ne_put_ss_param_global(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_put_ss_param_global(int neid, /* NemesisI file ID */ void_int *global_ids, /* Vector of global side-set IDs */ void_int *global_el_cnts, /* Vector of element/side */ /* counts in each side set */ @@ -126,12 +128,12 @@ extern int ne_put_ss_param_global(int neid, /* NemesisI file ID /* counts in each side set */ ); -extern int ne_get_eb_info_global(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_get_eb_info_global(int neid, /* NemesisI file ID */ void_int *el_blk_ids, /* Vector of global element IDs */ void_int *el_blk_cnts /* Vector of global element counts */ ); -extern int ne_put_eb_info_global(int neid, /* NemesisI file ID */ +NEMESIS_EXPORT int ne_put_eb_info_global(int neid, /* NemesisI file ID */ void_int *el_blk_ids, /* Vector of global element IDs */ void_int *el_blk_cnts /* Vector of global element counts */ ); @@ -139,7 +141,7 @@ extern int ne_put_eb_info_global(int neid, /* NemesisI file ID */ /*============================================================================= * NS, SS & EB Subset Routines *===========================================================================*/ -extern int ne_get_n_side_set(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_side_set(int neid, /* NetCDF/Exodus file ID */ ex_entity_id side_set_id, /* Side-set ID to read */ int64_t start_side_num, /* Starting element number */ int64_t num_sides, /* Number of sides to read */ @@ -147,7 +149,7 @@ extern int ne_get_n_side_set(int neid, /* NetCDF/Exodus f void_int * side_set_side_list /* List of side IDs */ ); -extern int ne_put_n_side_set(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_side_set(int neid, /* NetCDF/Exodus file ID */ ex_entity_id side_set_id, /* Side-set ID to write */ int64_t start_side_num, /* Starting element number */ int64_t num_sides, /* Number of sides to write */ @@ -155,49 +157,49 @@ extern int ne_put_n_side_set(int neid, /* NetCDF/Exodu const void_int *side_set_side_list /* List of side IDs */ ); -extern int ne_get_n_side_set_df(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_side_set_df(int neid, /* NetCDF/Exodus file ID */ ex_entity_id side_set_id, /* Side-set ID */ int64_t start_num, /* Starting df number */ int64_t num_df_to_get, /* Number of df's to read */ void * side_set_df /* Distribution factors */ ); -extern int ne_put_n_side_set_df(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_side_set_df(int neid, /* NetCDF/Exodus file ID */ ex_entity_id side_set_id, /* Side-set ID */ int64_t start_num, /* Starting df number */ int64_t num_df_to_get, /* Number of df's to write */ void * side_set_df /* Distribution factors */ ); -extern int ne_get_n_node_set(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_node_set(int neid, /* NetCDF/Exodus file ID */ ex_entity_id node_set_id, /* Node set ID */ int64_t start_node_num, /* Node index to start reading at */ int64_t num_node, /* Number of nodes to read */ void_int * node_set_node_list /* List of nodes in node set */ ); -extern int ne_put_n_node_set(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_node_set(int neid, /* NetCDF/Exodus file ID */ ex_entity_id node_set_id, /* Node set ID */ int64_t start_node_num, /* Node index to start writing at */ int64_t num_node, /* Number of nodes to write */ const void_int *node_set_node_list /* List of nodes in node set */ ); -extern int ne_get_n_node_set_df(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_node_set_df(int neid, /* NetCDF/Exodus file ID */ ex_entity_id node_set_id, /* Node-set ID */ int64_t start_num, /* Starting df number */ int64_t num_df_to_get, /* Number of df's to read */ void * node_set_df /* Distribution factors */ ); -extern int ne_put_n_node_set_df(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_node_set_df(int neid, /* NetCDF/Exodus file ID */ ex_entity_id node_set_id, /* Node-set ID */ int64_t start_num, /* Starting df number */ int64_t num_df_to_get, /* Number of df's to write */ void * node_set_df /* Distribution factors */ ); -extern int ne_get_n_coord(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_coord(int neid, /* NetCDF/Exodus file ID */ int64_t start_node_num, /* Starting position to read from */ int64_t num_nodes, /* Number of coords to read */ void * x_coor, /* Vector of X coordinates */ @@ -205,7 +207,7 @@ extern int ne_get_n_coord(int neid, /* NetCDF/Exodus file ID */ void * z_coor /* Vector of Z coordinates */ ); -extern int ne_put_n_coord(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_coord(int neid, /* NetCDF/Exodus file ID */ int64_t start_node_num, /* Starting position to write to */ int64_t num_nodes, /* Number of coords to write */ void * x_coor, /* Vector of X coordinates */ @@ -213,35 +215,35 @@ extern int ne_put_n_coord(int neid, /* NetCDF/Exodus file ID */ void * z_coor /* Vector of Z coordinates */ ); -extern int ne_get_n_elem_conn(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_elem_conn(int neid, /* NetCDF/Exodus file ID */ ex_entity_id elem_blk_id, /* Element block ID */ int64_t start_elem_num, /* Starting position to read from */ int64_t num_elems, /* Number of elements to read */ void_int * connect /* Connectivity vector */ ); -extern int ne_put_n_elem_conn(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_elem_conn(int neid, /* NetCDF/Exodus file ID */ ex_entity_id elem_blk_id, /* Element block ID */ int64_t start_elem_num, /* Starting position to write to */ int64_t num_elems, /* Number of elements to write */ const void_int *connect /* Connectivity vector */ ); -extern int ne_get_n_elem_attr(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_elem_attr(int neid, /* NetCDF/Exodus file ID */ ex_entity_id elem_blk_id, /* Element block ID */ int64_t start_elem_num, /* Starting position to read from */ int64_t num_elems, /* Number of elements to read */ void * attrib /* Attribute */ ); -extern int ne_put_n_elem_attr(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_elem_attr(int neid, /* NetCDF/Exodus file ID */ ex_entity_id elem_blk_id, /* Element block ID */ int64_t start_elem_num, /* Starting position to write to */ int64_t num_elems, /* Number of elements to write */ void * attrib /* Attribute */ ); -extern int ne_get_elem_type(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_elem_type(int neid, /* NetCDF/Exodus file ID */ ex_entity_id elem_blk_id, /* Element block ID */ char * elem_type /* The name of the element type */ ); @@ -249,7 +251,7 @@ extern int ne_get_elem_type(int neid, /* NetCDF/Exodus file ID * /*============================================================================= * Variable Routines *===========================================================================*/ -extern int ne_get_n_elem_var(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_elem_var(int neid, /* NetCDF/Exodus file ID */ int time_step, /* time index */ int elem_var_index, /* elemental variable index */ ex_entity_id elem_blk_id, /* elemental block id */ @@ -259,7 +261,7 @@ extern int ne_get_n_elem_var(int neid, /* NetCDF/Exodus fi void * elem_var_vals /* variable values */ ); -extern int ne_put_elem_var_slab(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_elem_var_slab(int neid, /* NetCDF/Exodus file ID */ int time_step, /* time index */ int elem_var_index, /* elemental variable index */ ex_entity_id elem_blk_id, /* elemental block id */ @@ -268,7 +270,7 @@ extern int ne_put_elem_var_slab(int neid, /* NetCDF/Exodus fi void * elem_var_vals /* variable values */ ); -extern int ne_get_n_nodal_var(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_nodal_var(int neid, /* NetCDF/Exodus file ID */ int time_step, /* whole time step number */ int nodal_var_index, /* index of desired nodal var */ int64_t start_node_num, /* starting node number */ @@ -276,7 +278,7 @@ extern int ne_get_n_nodal_var(int neid, /* NetCDF/Exodus file ID void * nodal_vars /* array of nodal var values */ ); -extern int ne_put_nodal_var_slab(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_nodal_var_slab(int neid, /* NetCDF/Exodus file ID */ int time_step, /* The time step index */ int nodal_var_index, /* Nodal variable index */ int64_t start_pos, /* Start position for write */ @@ -287,51 +289,51 @@ extern int ne_put_nodal_var_slab(int neid, /* NetCDF/Exodus file /*============================================================================= * Number Map Routines *===========================================================================*/ -extern int ne_get_n_elem_num_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_elem_num_map(int neid, /* NetCDF/Exodus file ID */ int64_t start_ent, /* Starting position to read from */ int64_t num_ents, /* Number of elements to read */ void_int *elem_map /* element map numbers */ ); -extern int ne_put_n_elem_num_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_elem_num_map(int neid, /* NetCDF/Exodus file ID */ int64_t start_ent, /* Starting position to read from */ int64_t num_ents, /* Number of elements to read */ const void_int *elem_map /* element map numbers */ ); -extern int ne_get_n_node_num_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_n_node_num_map(int neid, /* NetCDF/Exodus file ID */ int64_t start_ent, /* starting node number */ int64_t num_ents, /* number of nodes to read */ void_int *node_map /* vector for node map */ ); -extern int ne_put_n_node_num_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_n_node_num_map(int neid, /* NetCDF/Exodus file ID */ int64_t start_ent, /* starting node number */ int64_t num_ents, /* number of nodes to read */ const void_int *node_map /* vector for node map */ ); -extern int ne_get_node_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_node_map(int neid, /* NetCDF/Exodus file ID */ void_int *node_mapi, /* Internal FEM node IDs */ void_int *node_mapb, /* Border FEM node IDs */ void_int *node_mape, /* External FEM node IDs */ int processor /* Processor IDs */ ); -extern int ne_put_node_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_node_map(int neid, /* NetCDF/Exodus file ID */ void_int *node_mapi, /* Internal FEM node IDs */ void_int *node_mapb, /* Border FEM node IDs */ void_int *node_mape, /* External FEM node IDs */ int processor /* This processor ID */ ); -extern int ne_get_elem_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_elem_map(int neid, /* NetCDF/Exodus file ID */ void_int *elem_mapi, /* Internal element IDs */ void_int *elem_mapb, /* Border element IDs */ int processor /* Processor ID */ ); -extern int ne_put_elem_map(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_elem_map(int neid, /* NetCDF/Exodus file ID */ void_int *elem_mapi, /* Internal FEM element IDs */ void_int *elem_mapb, /* Border FEM element IDs */ int processor /* This processor ID */ @@ -341,7 +343,7 @@ extern int ne_put_elem_map(int neid, /* NetCDF/Exodus file ID */ * Communications Maps Routines *===========================================================================*/ -extern int ne_get_cmap_params(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_cmap_params(int neid, /* NetCDF/Exodus file ID */ void_int *node_cmap_ids, /* Nodal comm. map IDs */ void_int *node_cmap_node_cnts, /* Number of nodes in each map */ void_int *elem_cmap_ids, /* Elemental comm. map IDs */ @@ -349,7 +351,7 @@ extern int ne_get_cmap_params(int neid, /* NetCDF/Exodus fi int processor /* This processor ID */ ); -extern int ne_put_cmap_params(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_cmap_params(int neid, /* NetCDF/Exodus file ID */ void_int *node_map_ids, /* Node map IDs */ void_int *node_map_node_cnts, /* Nodes in nodal comm */ void_int *elem_map_ids, /* Elem map IDs */ @@ -357,7 +359,7 @@ extern int ne_put_cmap_params(int neid, /* NetCDF/Exodus fil int64_t processor /* This processor ID */ ); -extern int ne_put_cmap_params_cc(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_cmap_params_cc(int neid, /* NetCDF/Exodus file ID */ void_int *node_map_ids, /* Node map IDs */ void_int *node_map_node_cnts, /* Nodes in nodal comm */ void_int *node_proc_ptrs, /* Pointer into array for */ @@ -368,21 +370,21 @@ extern int ne_put_cmap_params_cc(int neid, /* NetCDF/Exodus /* elem maps */ ); -extern int ne_get_node_cmap(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_node_cmap(int neid, /* NetCDF/Exodus file ID */ ex_entity_id map_id, /* Map ID */ void_int * node_ids, /* FEM node IDs */ void_int * proc_ids, /* Processor IDs */ int processor /* This processor ID */ ); -extern int ne_put_node_cmap(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_node_cmap(int neid, /* NetCDF/Exodus file ID */ ex_entity_id map_id, /* Nodal comm map ID */ void_int * node_ids, /* FEM node IDs */ void_int * proc_ids, /* Processor IDs */ int processor /* This processor ID */ ); -extern int ne_get_elem_cmap(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_get_elem_cmap(int neid, /* NetCDF/Exodus file ID */ ex_entity_id map_id, /* Elemental comm map ID */ void_int * elem_ids, /* Element IDs */ void_int * side_ids, /* Element side IDs */ @@ -390,7 +392,7 @@ extern int ne_get_elem_cmap(int neid, /* NetCDF/Exodus file ID */ int processor /* This processor ID */ ); -extern int ne_put_elem_cmap(int neid, /* NetCDF/Exodus file ID */ +NEMESIS_EXPORT int ne_put_elem_cmap(int neid, /* NetCDF/Exodus file ID */ ex_entity_id map_id, /* Elemental comm map ID */ void_int * elem_ids, /* Vector of element IDs */ void_int * side_ids, /* Vector of side IDs */ diff --git a/packages/seacas/libraries/nemesis/nemesis_cfg.h.in b/packages/seacas/libraries/nemesis/nemesis_cfg.h.in index 37b04f5cd..05f2db341 100644 --- a/packages/seacas/libraries/nemesis/nemesis_cfg.h.in +++ b/packages/seacas/libraries/nemesis/nemesis_cfg.h.in @@ -1,8 +1,8 @@ -# Copyright(C) 1999-2020 National Technology & Engineering Solutions -# of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with -# NTESS, the U.S. Government retains certain rights in this software. -# -# See packages/seacas/LICENSE for details +// Copyright(C) 1999-2020 National Technology & Engineering Solutions +// of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with +// NTESS, the U.S. Government retains certain rights in this software. +// +// See packages/seacas/LICENSE for details #ifndef __nemesis_cfg_h #define __nemesis_cfg_h diff --git a/packages/seacas/libraries/suplib_c/CMakeLists.txt b/packages/seacas/libraries/suplib_c/CMakeLists.txt index c5c0d0fd3..b047ea4cd 100644 --- a/packages/seacas/libraries/suplib_c/CMakeLists.txt +++ b/packages/seacas/libraries/suplib_c/CMakeLists.txt @@ -29,5 +29,7 @@ TRIBITS_ADD_LIBRARY( NOINSTALLHEADERS SOURCES ${SOURCES} ) - +if(BUILD_SHARED_LIBS) + set_target_properties(suplib_c PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() TRIBITS_SUBPACKAGE_POSTPROCESS() diff --git a/packages/seacas/libraries/suplib_cpp/CMakeLists.txt b/packages/seacas/libraries/suplib_cpp/CMakeLists.txt index 5eb15b5a7..640b2a8b9 100644 --- a/packages/seacas/libraries/suplib_cpp/CMakeLists.txt +++ b/packages/seacas/libraries/suplib_cpp/CMakeLists.txt @@ -30,5 +30,7 @@ TRIBITS_ADD_LIBRARY( NOINSTALLHEADERS SOURCES ${SOURCES} ) - +if(BUILD_SHARED_LIBS) + set_target_properties(suplib_cpp PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) +endif() TRIBITS_SUBPACKAGE_POSTPROCESS() ================================================ FILE: ports/seacas/fix-build-error-with-fmt11.patch ================================================ diff --git a/packages/seacas/libraries/ioss/src/Ioss_Decomposition.C b/packages/seacas/libraries/ioss/src/Ioss_Decomposition.C index fa2719a..0a7cfff 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_Decomposition.C +++ b/packages/seacas/libraries/ioss/src/Ioss_Decomposition.C @@ -14,6 +14,7 @@ #include #include #include +#include #include #if !defined(NO_ZOLTAN_SUPPORT) diff --git a/packages/seacas/libraries/ioss/src/Ioss_IOFactory.C b/packages/seacas/libraries/ioss/src/Ioss_IOFactory.C index ef20a45..faa7943 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_IOFactory.C +++ b/packages/seacas/libraries/ioss/src/Ioss_IOFactory.C @@ -11,6 +11,7 @@ #include #include // for nullptr #include +#include #include // for _Rb_tree_iterator, etc #include // for basic_ostream, etc #include diff --git a/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.C b/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.C index 488d28a..0a1e5e2 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.C +++ b/packages/seacas/libraries/ioss/src/Ioss_StructuredBlock.C @@ -14,6 +14,7 @@ #include #include #include +#include #include // for size_t #include diff --git a/packages/seacas/libraries/ioss/src/Ioss_Utils.C b/packages/seacas/libraries/ioss/src/Ioss_Utils.C index 241ff80..d234b8b 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_Utils.C +++ b/packages/seacas/libraries/ioss/src/Ioss_Utils.C @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.C b/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.C index 6888e17..f53c5e5 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.C +++ b/packages/seacas/libraries/ioss/src/Ioss_ZoneConnectivity.C @@ -8,6 +8,7 @@ #include #include // for size_t #include +#include #include // for string #include // for vector diff --git a/packages/seacas/libraries/ioss/src/heartbeat/Iohb_Layout.h b/packages/seacas/libraries/ioss/src/heartbeat/Iohb_Layout.h index c486d69..b67a5c6 100644 --- a/packages/seacas/libraries/ioss/src/heartbeat/Iohb_Layout.h +++ b/packages/seacas/libraries/ioss/src/heartbeat/Iohb_Layout.h @@ -9,6 +9,7 @@ #include "iohb_export.h" #include +#include #include #include #include diff --git a/packages/seacas/libraries/ioss/src/main/io_info.C b/packages/seacas/libraries/ioss/src/main/io_info.C index 53a162b..bcadb55 100644 --- a/packages/seacas/libraries/ioss/src/main/io_info.C +++ b/packages/seacas/libraries/ioss/src/main/io_info.C @@ -11,6 +11,7 @@ #define FMT_DEPRECATED_OSTREAM #include #include +#include #if defined(SEACAS_HAVE_CGNS) #include #endif diff --git a/packages/seacas/libraries/ioss/src/main/io_modify.C b/packages/seacas/libraries/ioss/src/main/io_modify.C index 50a217d..c01191b 100644 --- a/packages/seacas/libraries/ioss/src/main/io_modify.C +++ b/packages/seacas/libraries/ioss/src/main/io_modify.C @@ -58,6 +58,7 @@ #include #include #include +#include #if defined(SEACAS_HAVE_EXODUS) #include diff --git a/packages/seacas/libraries/ioss/src/main/sphgen.C b/packages/seacas/libraries/ioss/src/main/sphgen.C index f633d55..24c2e2f 100644 --- a/packages/seacas/libraries/ioss/src/main/sphgen.C +++ b/packages/seacas/libraries/ioss/src/main/sphgen.C @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include ================================================ FILE: ports/seacas/fix-fmt-10.patch ================================================ From 5a576de57ee1664d845c83f552f2100cc9303a26 Mon Sep 17 00:00:00 2001 From: Greg Sjaardema Date: Wed, 10 May 2023 15:28:53 -0600 Subject: [PATCH] IOSS: Fix enum printing to work with fmt-10 --- .../seacas/libraries/ioss/src/text_mesh/Iotm_DatabaseIO.C | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_DatabaseIO.C b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_DatabaseIO.C index b6827aa177..59507085fc 100644 --- a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_DatabaseIO.C +++ b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_DatabaseIO.C @@ -1,4 +1,4 @@ -// Copyright(C) 1999-2020, 2022 National Technology & Engineering Solutions +// Copyright(C) 1999-2020, 2022, 2023 National Technology & Engineering Solutions // of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with // NTESS, the U.S. Government retains certain rights in this software. // @@ -802,7 +802,7 @@ namespace Iotm { std::ostringstream errmsg; fmt::print(errmsg, "Error: Failed to find entity of type {} with name {} for Assembly {}.\n", - type, members[j], assem->name()); + Ioss::Utils::entity_type_to_string(type), members[j], assem->name()); IOSS_ERROR(errmsg); } } ================================================ FILE: ports/seacas/fix-headers.patch ================================================ diff --git a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMeshFuncs.h b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMeshFuncs.h index 67512ba..589cac2 100644 --- a/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMeshFuncs.h +++ b/packages/seacas/libraries/ioss/src/text_mesh/Iotm_TextMeshFuncs.h @@ -6,7 +6,7 @@ // ####################### Start Clang Header Tool Managed Headers ######################## // clang-format off -#include // for toupper +#include // for toupper, isspace, isdigit #include // for size_t #include // for remove, etc #include // for insert_iterator ================================================ FILE: ports/seacas/fix-ioss-includes.patch ================================================ diff --git a/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.C b/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.C index eab77e9a1..6cec47422 100644 --- a/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.C +++ b/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.C @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include #include // for lower_bound, copy, etc diff --git a/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.C b/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.C index 0be442435..fccf2d4d4 100644 --- a/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.C +++ b/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.C @@ -74,6 +74,7 @@ #include #include #include +#include #include #undef MPICPP ================================================ FILE: ports/seacas/fix-mpi.patch ================================================ diff --git a/cmake/TPLs/FindTPLParMETIS.cmake b/cmake/TPLs/FindTPLParMETIS.cmake index 2dc2c149d..9bc04ae82 100644 --- a/cmake/TPLs/FindTPLParMETIS.cmake +++ b/cmake/TPLs/FindTPLParMETIS.cmake @@ -54,7 +54,8 @@ # @HEADER -TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( ParMETIS - REQUIRED_HEADERS parmetis.h - REQUIRED_LIBS_NAMES "parmetis;metis" - ) +find_package(parmetis REQUIRED) +tribits_extpkg_create_imported_all_libs_target_and_config_file( + ParMETIS + INNER_FIND_PACKAGE_NAME parmetis + IMPORTED_TARGETS_FOR_ALL_LIBS parmetis ) diff --git a/packages/seacas/libraries/ioss/src/Ioss_Decomposition.h b/packages/seacas/libraries/ioss/src/Ioss_Decomposition.h index f53f140a7..c2df7a802 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_Decomposition.h +++ b/packages/seacas/libraries/ioss/src/Ioss_Decomposition.h @@ -91,6 +91,8 @@ namespace Ioss { SetDecompositionData() = default; SetDecompositionData(const SetDecompositionData &) = delete; SetDecompositionData(SetDecompositionData &&) = default; + SetDecompositionData &operator =(const SetDecompositionData &) = delete; + SetDecompositionData &operator =(SetDecompositionData &&) = default; ~SetDecompositionData() { diff --git a/packages/seacas/libraries/ioss/src/Ioss_ParallelUtils.C b/packages/seacas/libraries/ioss/src/Ioss_ParallelUtils.C index a82d6ca14..c5e80f692 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_ParallelUtils.C +++ b/packages/seacas/libraries/ioss/src/Ioss_ParallelUtils.C @@ -419,7 +419,7 @@ template IOSS_EXPORT void Ioss::ParallelUtils::broadcast(int &value, int) const; /// \relates Ioss::ParallelUtils::broadcast template IOSS_EXPORT void Ioss::ParallelUtils::broadcast(int64_t &value, int) const; -template <> void Ioss::ParallelUtils::broadcast(std::string &my_str, int root) const +template <> IOSS_EXPORT void Ioss::ParallelUtils::broadcast(std::string &my_str, int root) const { PAR_UNUSED(my_str); PAR_UNUSED(root); diff --git a/packages/seacas/libraries/ioss/src/Ioss_ScopeGuard.h b/packages/seacas/libraries/ioss/src/Ioss_ScopeGuard.h index cfdad81d9..1a785161e 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_ScopeGuard.h +++ b/packages/seacas/libraries/ioss/src/Ioss_ScopeGuard.h @@ -27,7 +27,7 @@ public: template inline RefHolder ByRef(T &t) { return RefHolder(t); } -class IOSS_EXPORT ScopeGuardImplBase +class ScopeGuardImplBase { ScopeGuardImplBase &operator=(const ScopeGuardImplBase &) = delete; diff --git a/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.h b/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.h index 359c1e9fd..e4c2dff9e 100644 --- a/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.h +++ b/packages/seacas/libraries/ioss/src/exodus/Ioex_DecompositionData.h @@ -34,7 +34,11 @@ namespace Ioex { class IOEX_EXPORT DecompositionDataBase { public: - DecompositionDataBase(Ioss_MPI_Comm comm) : comm_(comm) {} + explicit DecompositionDataBase(Ioss_MPI_Comm comm) : comm_(comm) {}; + DecompositionDataBase(const DecompositionDataBase &) = delete; + DecompositionDataBase(DecompositionDataBase &&) = delete; + DecompositionDataBase &operator =(const DecompositionDataBase &) = delete; + DecompositionDataBase &operator =(DecompositionDataBase &&) = delete; virtual ~DecompositionDataBase() = default; virtual int int_size() const = 0; diff --git a/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.h b/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.h index f2785e37f..df0c8fbf6 100644 --- a/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.h +++ b/packages/seacas/libraries/ioss/src/exodus/Ioex_ParallelDatabaseIO.h @@ -16,6 +16,7 @@ #include // for Map #include // for State #include // for DatabaseIO +#include #include // for less #include // for map, map<>::value_compare #include ================================================ FILE: ports/seacas/fix_tpl_libs.patch ================================================ diff --git a/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake b/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake index f08e7b78b..1274e8fce 100644 --- a/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake +++ b/cmake/tribits/core/package_arch/TribitsAddExecutable.cmake @@ -419,7 +419,11 @@ function(tribits_add_executable EXE_NAME) foreach(depPkg IN LISTS ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES ${PACKAGE_NAME}_TEST_ENABLED_DEPENDENCIES ) - target_link_libraries(${EXE_BINARY_NAME} PUBLIC ${depPkg}::all_libs) + if(TARGET TPL::${depPkg}::all_libs) + target_link_libraries(${EXE_BINARY_NAME} PUBLIC TPL::${depPkg}::all_libs) + else() + target_link_libraries(${EXE_BINARY_NAME} PUBLIC ${depPkg}::all_libs) + endif() endforeach() foreach(testOnlyLib ${PARSE_TESTONLYLIBS}) target_link_libraries(${EXE_BINARY_NAME} PUBLIC diff --git a/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake b/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake index 4bac9f943..398002e33 100644 --- a/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake +++ b/cmake/tribits/core/package_arch/TribitsAddLibrary.cmake @@ -468,7 +468,11 @@ function(tribits_add_library LIBRARY_NAME_IN) target_link_libraries(${LIBRARY_NAME} PUBLIC ${${PACKAGE_NAME}_LIBRARIES}) # ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES foreach(depPkg IN LISTS ${PACKAGE_NAME}_LIB_ENABLED_DEPENDENCIES) - target_link_libraries(${LIBRARY_NAME} PUBLIC ${depPkg}::all_libs) + if(TARGET TPL::${depPkg}::all_libs) + target_link_libraries(${LIBRARY_NAME} PUBLIC TPL::${depPkg}::all_libs) + else() + target_link_libraries(${LIBRARY_NAME} PUBLIC ${depPkg}::all_libs) + endif() endforeach() # ${PACKAGE_NAME}_TEST_ENABLED_DEPENDENCIES (TESTONLY lib) if (PARSE_TESTONLY) diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake index 2d041a2ca..c49a2c019 100644 --- a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +++ b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake @@ -132,7 +132,7 @@ endfunction() function(tribits_extpkg_install_config_file tplName tplConfigFile) install( FILES "${tplConfigFile}" - DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/${tplName}" + DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/TPL-Seacas-${tplName}" ) endfunction() @@ -159,7 +159,7 @@ function(tribits_extpkg_install_config_version_file tplName ) install( FILES "${tplConfigVersionFile}" - DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/${tplName}" + DESTINATION "${${PROJECT_NAME}_INSTALL_LIB_DIR}/external_packages/TPL-Seacas-${tplName}" ) endfunction() @@ -258,7 +258,7 @@ function(tribits_extpkg_write_config_file_str tplName tplConfigFileStrOut) "# Generated by CMake, do not edit!\n" "\n" "# Guard against multiple inclusion\n" - "if (TARGET ${tplName}::all_libs)\n" + "if (TARGET TPL::${tplName}::all_libs)\n" " return()\n" "endif()\n" "\n" @@ -333,9 +333,9 @@ function(tribits_extpkg_add_find_upstream_dependencies_str message(FATAL_ERROR "ERROR: ${upstreamTplDepName}_DIR is empty!") endif() string(APPEND configFileFragStr - "if (NOT TARGET ${upstreamTplDepName}::all_libs)\n" + "if (NOT TARGET TPL::${upstreamTplDepName}::all_libs)\n" " set(${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../${upstreamTplDepName}\")\n" - " find_dependency(${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" + " find_dependency(TPL-Seacas-${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" " unset(${upstreamTplDepName}_DIR)\n" "endif()\n" "\n" @@ -440,6 +440,7 @@ function(tribits_extpkg_process_libraries_list tplName) elseif (libEntryType STREQUAL "GENERAL_LINK_OPTION") message_wrapper("-- NOTE: Moving the general link argument '${libentry}' in TPL_${tplName}_LIBRARIES forward on the link line which may change the link and break the link!") list(APPEND libLinkFlagsList "${libentry}") + elseif(libEntryType STREQUAL "TARGET_NAME") else() tribits_extpkg_process_libraries_list_library_entry( ${tplName} "${libentry}" ${libEntryType} libTargets lastLibProcessed @@ -501,6 +501,8 @@ function(tribits_tpl_libraries_entry_type libentry libEntryTypeOut) set(libEntryType FULL_LIB_PATH) elseif (libentry MATCHES "^[a-zA-Z_][a-zA-Z0-9_-]*$") set(libEntryType LIB_NAME) + elseif (TARGET "${libentry}") + set(libEntryType TARGET_NAME) else() set(libEntryType UNSUPPORTED_LIB_ENTRY) endif() @@ -529,7 +531,7 @@ function(tribits_extpkg_process_libraries_list_library_entry tribits_extpkg_get_libname_and_path_from_libentry( "${libentry}" ${libEntryType} libname libpath) # Create IMPORTED library target - set(prefixed_libname "${tplName}::${libname}") + set(prefixed_libname "TPL::${tplName}::${libname}") if (NOT (prefixed_libname IN_LIST libTargets)) tribits_extpkg_append_add_library_str (${libname} ${prefixed_libname} ${libEntryType} "${libpath}" configFileStr) @@ -571,6 +573,9 @@ function(tribits_extpkg_get_libname_and_path_from_libentry elseif (libEntryType STREQUAL "LIB_NAME") set(libname "${libentry}") set(libpath "") + elseif (libEntryType STREQUAL "TARGET_NAME") + string(REGEX REPLACE "([^:]*::)+" "" libname "${libentry}") + set(libpath "") else() message(FATAL_ERROR "Error libEntryType='${libEntryType}' not supported here!") endif() @@ -605,6 +610,13 @@ function(tribits_extpkg_append_add_library_str "set_target_properties(${prefixed_libname} PROPERTIES\n" " IMPORTED_LIBNAME \"${libname}\")\n" ) + elseif (libEntryType STREQUAL "TARGET_NAME") + string(REGEX REPLACE "([^:]*::)+" "" package_name "${libname}") + string(APPEND configFileStr + "#add_library(${prefixed_libname} IMPORTED INTERFACE)\n" + "#find_package(${package_name} REQUIRED)\n" + "#target_link_libraries(${prefixed_libname} INTERFACE ${libentry})\n" + ) else() message(FATAL_ERROR "Error libEntryType='${libEntryType}' not supported here!") endif() @@ -784,11 +796,11 @@ function(tribits_extpkg_create_all_libs_target tplName) # add_library() string(APPEND configFileStr - "add_library(${tplName}::all_libs INTERFACE IMPORTED)\n") + "add_library(TPL::${tplName}::all_libs INTERFACE IMPORTED)\n") # target_link_libraries() if (libTargets) string(APPEND configFileStr - "target_link_libraries(${tplName}::all_libs\n") + "target_link_libraries(TPL::${tplName}::all_libs\n") foreach (libTarget IN LISTS libTargets) string(APPEND configFileStr " INTERFACE ${libTarget}\n") @@ -799,7 +811,7 @@ function(tribits_extpkg_create_all_libs_target tplName) # target_include_directories() if (TPL_${tplName}_INCLUDE_DIRS) string(APPEND configFileStr - "target_include_directories(${tplName}::all_libs SYSTEM\n") + "target_include_directories(TPL::${tplName}::all_libs SYSTEM\n") foreach (inclDir IN LISTS TPL_${tplName}_INCLUDE_DIRS) string(APPEND configFileStr " INTERFACE \"${inclDir}\"\n") @@ -810,7 +822,7 @@ function(tribits_extpkg_create_all_libs_target tplName) # target_link_options() if (libLinkFlags) string(APPEND configFileStr - "target_link_options(${tplName}::all_libs\n") + "target_link_options(TPL::${tplName}::all_libs\n") foreach (likLinkFlag IN LISTS libLinkFlags) string(APPEND configFileStr " INTERFACE \"${likLinkFlag}\"\n") diff --git a/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake b/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake index dcdde4ce6..aaec95d49 100644 --- a/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake +++ b/cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake @@ -154,9 +154,9 @@ function(tribits_process_enabled_tpl TPL_NAME) set(buildDirExternalPkgsDir "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") set(tplConfigFile - "${buildDirExternalPkgsDir}/${TPL_NAME}/${TPL_NAME}Config.cmake") + "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}/TPL-Seacas-${TPL_NAME}Config.cmake") set(tplConfigVersionFile - "${buildDirExternalPkgsDir}/${TPL_NAME}/${TPL_NAME}ConfigVersion.cmake") + "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}/TPL-Seacas-${TPL_NAME}ConfigVersion.cmake") tribits_extpkg_write_config_version_file(${TPL_NAME} "${tplConfigVersionFile}") tribits_extpkg_install_config_file(${TPL_NAME} "${tplConfigFile}") diff --git a/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake b/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake index d3cb102cf..3641799ac 100644 --- a/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake +++ b/cmake/tribits/core/package_arch/TribitsTplFindIncludeDirsAndLibraries.cmake @@ -423,9 +423,7 @@ function(tribits_tpl_find_include_dirs_and_libraries TPL_NAME) set(TPL_CMAKE_FIND_LIBRARY_SUFFIXES ${TPL_CMAKE_FIND_LIBRARY_SUFFIXES_DEFAULT}) else() if (WIN32) - set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a) else() - set(CMAKE_FIND_LIBRARY_SUFFIXES .a ) endif() endif() #print_var(CMAKE_FIND_LIBRARY_SUFFIXES) @@ -717,7 +717,7 @@ function(tribits_tpl_find_include_dirs_and_libraries TPL_NAME) set(buildDirExternalPkgsDir "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") - set(tplConfigFileBaseDir "${buildDirExternalPkgsDir}/${TPL_NAME}") + set(tplConfigFileBaseDir "${buildDirExternalPkgsDir}/TPL-Seacas-${TPL_NAME}") - set(tplConfigFile "${tplConfigFileBaseDir}/${TPL_NAME}Config.cmake") + set(tplConfigFile "${tplConfigFileBaseDir}/TPL-Seacas-${TPL_NAME}Config.cmake") tribits_extpkg_write_config_file(${TPL_NAME} "${tplConfigFile}") if (NOT ${PROJECT_NAME}_ENABLE_INSTALLATION_TESTING) include("${tplConfigFile}") diff --git a/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake b/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake index 1f31b6ec0..9bc1057b7 100644 --- a/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake +++ b/cmake/tribits/core/package_arch/TribitsWriteClientExportFiles.cmake @@ -289,7 +289,11 @@ function(tribits_write_flexible_package_client_export_files) set(${PACKAGE_NAME}_TPL_LIBRARIES "") foreach(TPL ${ORDERED_FULL_TPL_SET}) - list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES ${TPL}::all_libs) + if(TARGET TPL::${TPL}::all_libs) + list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES TPL::${TPL}::all_libs) + else() + list(APPEND ${PACKAGE_NAME}_TPL_LIBRARIES ${TPL}::all_libs) + endif() endforeach() # Generate a note discouraging editing of the Config.cmake file @@ -587,17 +591,21 @@ function(tribits_append_dependent_package_config_file_includes_and_enables packa "\n# Include configuration of dependent packages\n") foreach(depPkg IN LISTS ${packageName}_LIB_ENABLED_DEPENDENCIES) set(packageConfigBaseDir "") # Initially, no add include() + set(packageTarget "${depPkg}::all_libs") + set(packageConfig "${depPkg}Config.cmake") if (${depPkg}_PACKAGE_BUILD_STATUS STREQUAL "INTERNAL") set(packageConfigBaseDir "${pkgConfigFileBaseDir}/${depPkg}") elseif (${depPkg}_PACKAGE_BUILD_STATUS STREQUAL "EXTERNAL") - set(packageConfigBaseDir "${extPkgConfigFileBaseDir}/${depPkg}") + set(packageConfigBaseDir "${extPkgConfigFileBaseDir}/TPL-Seacas-${depPkg}") + set(packageTarget "TPL::${depPkg}::all_libs") + set(packageConfig "TPL-Seacas-${depPkg}Config.cmake") else() message(FATAL_ERROR "ERROR: ${depPkg}_PACKAGE_BUILD_STATUS='${${depPkg}_PACKAGE_BUILD_STATUS}' invalid!") endif() if (packageConfigBaseDir) string(APPEND configFileStr - "if (NOT TARGET ${depPkg}::all_libs)\n" - " include(\"${packageConfigBaseDir}/${depPkg}Config.cmake\")\n" + "if (NOT TARGET ${packageTarget})\n" + " include(\"${packageConfigBaseDir}/${packageConfig}\")\n" "endif()\n" ) endif() diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake index 1873267bd..ed6254632 100644 --- a/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake +++ b/cmake/tribits/core/package_arch/TribitsExternalPackageFindTplHelpers.cmake @@ -120,17 +120,21 @@ function(tribits_extpkg_create_package_config_file_with_imported_targets "set(${externalPkg}_DIR \"${${externalPkg}_DIR}\")\n" ) endif() string(APPEND configFileStr - "find_dependency(${externalPkg})\n" - "add_library(${tplName}::all_libs INTERFACE IMPORTED GLOBAL)\n" + "find_dependency(${externalPkg})\n" # This is outside TPL + "if(NOT TARGET ${tplName}::all_libs)\n" + " add_library(${tplName}::all_libs INTERFACE IMPORTED GLOBAL)\n" ) foreach (importedTarget IN LISTS PARSE_IMPORTED_TARGETS_FOR_ALL_LIBS) string(APPEND configFileStr - "target_link_libraries(${tplName}::all_libs INTERFACE ${importedTarget})\n") + " target_link_libraries(${tplName}::all_libs INTERFACE ${importedTarget})\n") endforeach() + string(APPEND configFileStr + "endif()\n" + ) set(buildDirExternalPkgsDir "${${PROJECT_NAME}_BINARY_DIR}/${${PROJECT_NAME}_BUILD_DIR_EXTERNAL_PKGS_DIR}") set(tplConfigFile - "${buildDirExternalPkgsDir}/${tplName}/${tplName}Config.cmake") + "${buildDirExternalPkgsDir}/TPL-Seacas-${tplName}/TPL-Seacas-${tplName}Config.cmake") file(WRITE "${tplConfigFile}" "${configFileStr}") endfunction() diff --git a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake index c49a2c019..7c906ce26 100644 --- a/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake +++ b/cmake/tribits/core/package_arch/TribitsExternalPackageWriteConfigFile.cmake @@ -334,9 +334,10 @@ function(tribits_extpkg_add_find_upstream_dependencies_str endif() string(APPEND configFileFragStr "if (NOT TARGET TPL::${upstreamTplDepName}::all_libs)\n" - " set(${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../${upstreamTplDepName}\")\n" + " set(TPL-Seacas-${upstreamTplDepName}_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../TPL-Seacas-${upstreamTplDepName}\")\n" # Looks for internal dep + " # Really only upstream ? NO ! THis is for ::all_libs targets in internal consumers\n" " find_dependency(TPL-Seacas-${upstreamTplDepName} REQUIRED CONFIG \${${tplName}_SearchNoOtherPathsArgs})\n" - " unset(${upstreamTplDepName}_DIR)\n" + " unset(TPL-Seacas-${upstreamTplDepName}_DIR)\n" "endif()\n" "\n" ) ================================================ FILE: ports/seacas/netcdf-c.diff ================================================ diff --git a/packages/seacas/libraries/exodus/CMakeLists.txt b/packages/seacas/libraries/exodus/CMakeLists.txt index 2ed3ec4..99a20aa 100644 --- a/packages/seacas/libraries/exodus/CMakeLists.txt +++ b/packages/seacas/libraries/exodus/CMakeLists.txt @@ -1,4 +1,5 @@ TRIBITS_SUBPACKAGE(Exodus) +add_compile_definitions(-DNETCDF_ENABLE_LEGACY_MACROS) if (SEACASExodus_ENABLE_STATIC) INCLUDE(InstallSymLink) ================================================ FILE: ports/seacas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sandialabs/seacas REF 47120843900fd7ef845688fa145ebf76a825bc51 SHA512 13677746457edbd4b3619576a6c474f5d8ab2eb24f648fac687e655e3121282b62994575723d18db8d18b42266d219aa4d83344ecff53f5e9a737513a3461180 HEAD_REF master PATCHES fix_tpl_libs.patch fix-ioss-includes.patch deps-and-shared.patch fix-mpi.patch fix-headers.patch fix-fmt-10.patch fix-build-error-with-fmt11.patch netcdf-c.diff use-std-localtime.patch ) file(REMOVE "${SOURCE_PATH}/cmake/tribits/common_tpls/find_modules/FindHDF5.cmake") if(HDF5_WITH_PARALLEL AND NOT "mpi" IN_LIST FEATURES) message(WARNING "${HDF5_WITH_PARALLEL} Enabling MPI in seacas.") list(APPEND FEATURES "mpi") elseif(NOT VCPKG_TARGET_IS_OSX) set(PARMETIS_FEATURES mpi TPL_ENABLE_ParMETIS) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES mpi TPL_ENABLE_MPI matio TPL_ENABLE_Matio # mpi TPL_ENABLE_Pnetcdf # missing Pnetcdf port ${PARMETIS_FEATURES} ) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND FEATURE_OPTIONS "-DTPL_ENABLE_DLlib:BOOL=OFF") endif() set(tpl_disable_list GTest DataWarp Pamgen X11 CUDA Kokkos Faodel Pnetcdf ADIOS2 Catalyst2) set(tpl_enable_list Zlib HDF5 Netcdf CGNS fmt Cereal) if(VCPKG_TARGET_IS_OSX) list(APPEND tpl_disable_list METIS) else() list(APPEND tpl_enable_list METIS) endif() set(tpl_options "") foreach(tpl IN LISTS tpl_disable_list) list(APPEND tpl_options "-DTPL_ENABLE_${tpl}:BOOL=OFF") endforeach() foreach(tpl IN LISTS tpl_enable_list) list(APPEND tpl_options "-DTPL_ENABLE_${tpl}:BOOL=ON") endforeach() set(disabled_projects Chaco Aprepro_lib SuplibC SuplibCpp Nemslice Nemspread Nas2exo Cpup Epu Ejoin Conjoin Aprepro Exo_format) set(proj_options "") foreach(proj IN LISTS disabled_projects) list(APPEND proj_options "-DSeacas_ENABLE_SEACAS${proj}:BOOL=OFF") endforeach() set(enabled_projects Ioss Nemesis Exodus) set(proj_options "") foreach(proj IN LISTS disabled_projects) list(APPEND proj_options "-DSeacas_ENABLE_SEACAS${proj}:BOOL=OFF") endforeach() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS #--trace-expand ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DSeacas_ENABLE_Zoltan:BOOL=OFF -DSeacas_ENABLE_SEACAS:BOOL=ON "-DSeacas_HOSTNAME:STRING=localhost" "-DSeacas_GENERATE_REPO_VERSION_FILE:BOOL=OFF" "-DNetcdf_ALLOW_MODERN:BOOL=ON" "-DNetcdf_FORCE_MODERN:BOOL=ON" "-DSeacas_ENABLE_Fortran:BOOL=OFF" #"-DCGNS_ALLOW_PREDEFIND:BOOL=NO" #"-DSeacas_ENABLE_ALL_PACKAGES:BOOL=ON" ${proj_options} ${tpl_options} ) vcpkg_cmake_install() set(cmake_config_list ${enabled_projects}) list(TRANSFORM cmake_config_list PREPEND "SEACAS") list(APPEND cmake_config_list SEACAS) foreach(cmake_conig IN LISTS cmake_config_list) vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${cmake_conig}" PACKAGE_NAME cmake/${cmake_conig} DO_NOT_DELETE_PARENT_CONFIG_PATH NO_PREFIX_CORRECTION) endforeach() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/external_packages" PACKAGE_NAME external_packages DO_NOT_DELETE_PARENT_CONFIG_PATH NO_PREFIX_CORRECTION ) if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/Seacas") # Case sensitive filesystems will have two Seacas folders vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Seacas" PACKAGE_NAME cmake/Seacas DO_NOT_DELETE_PARENT_CONFIG_PATH NO_PREFIX_CORRECTION) endif() set(tool_names cgns_decomp cth_pressure_map io_info io_modify io_shell shell_to_hex skinner sphgen struc_to_unstruc) vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(GLOB remaining_bin_stuff "${CURRENT_PACKAGES_DIR}/bin/*" LIST_DIRECTORIES true) if(NOT remaining_bin_stuff) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") else() message(WARNING "remaining_bin_stuff:${remaining_bin_stuff}") endif() endif() # vcpkg really needs: vcpkg_remove_dirs_if_empty() file(GLOB remaining_cmake_dirs "${CURRENT_PACKAGES_DIR}/lib/cmake/*" LIST_DIRECTORIES true) if(NOT remaining_cmake_dirs) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") else() message(WARNING "remaining_cmake_dirs:${remaining_cmake_dirs}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/SeacasConfig.cmake") file(GLOB_RECURSE python_files LIST_DIRECTORIES true "${CURRENT_PACKAGES_DIR}/lib/*.py" "${CURRENT_PACKAGES_DIR}/debug/lib/*.py") if(python_files) file(REMOVE ${python_files}) endif() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/seacas/use-std-localtime.patch ================================================ diff --git a/packages/seacas/libraries/ioss/src/Ioss_Utils.C b/packages/seacas/libraries/ioss/src/Ioss_Utils.C index 241ff80..2d3df83 100644 --- a/packages/seacas/libraries/ioss/src/Ioss_Utils.C +++ b/packages/seacas/libraries/ioss/src/Ioss_Utils.C @@ -163,14 +163,27 @@ std::ostream &Ioss::Utils::get_debug_stream() { return *m_debugStream; } void Ioss::Utils::time_and_date(char *time_string, char *date_string, size_t length) { std::time_t t = std::time(nullptr); +#if FMT_VERSION < 120000 std::string time = fmt::format("{:%H:%M:%S}", fmt::localtime(t)); +#else + std::string time = fmt::format("{:%H:%M:%S}", *std::localtime(&t)); +#endif std::string date; +#if FMT_VERSION < 120000 if (length >= 10) { date = fmt::format("{:%Y/%m/%d}", fmt::localtime(t)); } else { date = fmt::format("{:%y/%m/%d}", fmt::localtime(t)); } +#else + if (length >= 10) { + date = fmt::format("{:%Y/%m/%d}", *std::localtime(&t)); + } + else { + date = fmt::format("{:%y/%m/%d}", *std::localtime(&t)); + } +#endif copy_string(time_string, time, 9); copy_string(date_string, date, length + 1); } ================================================ FILE: ports/seacas/vcpkg.json ================================================ { "name": "seacas", "version-date": "2022-11-22", "port-version": 10, "description": "The Sandia Engineering Analysis Code Access System (SEACAS) is a suite of preprocessing, postprocessing, translation, and utility applications supporting finite element analysis software using the Exodus database file format.", "homepage": "https://github.com/sandialabs/seacas", "license": null, "dependencies": [ "cereal", { "name": "cgns", "default-features": false, "features": [ "hdf5" ] }, "fmt", { "name": "hdf5", "default-features": false }, "metis", { "name": "netcdf-c", "default-features": false, "features": [ "netcdf-4" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "matio": { "description": "Enable Matio support", "dependencies": [ { "name": "matio", "default-features": false } ] }, "mpi": { "description": "Enable MPI support", "dependencies": [ { "name": "cgns", "default-features": false, "features": [ "mpi" ] }, { "name": "hdf5", "default-features": false, "features": [ "parallel" ] }, { "name": "parmetis", "default-features": false, "platform": "!osx" } ] } } } ================================================ FILE: ports/seal/fix-hexl.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index edf69a3..e64672e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -223,7 +223,7 @@ if(SEAL_USE_INTEL_HEXL) message(STATUS "Intel HEXL: download ...") seal_fetch_thirdparty_content(ExternalIntelHEXL) else() - find_package(HEXL 1.2.4) + find_package(HEXL CONFIG REQUIRED) if (NOT TARGET HEXL::hexl) message(FATAL_ERROR "Intel HEXL: not found") endif() ================================================ FILE: ports/seal/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/SEAL REF "v${VERSION}" SHA512 8e97e8106ae2eeceee743634b0db1936b3a3a1381ceceb5646f6de8008d2147cdc9b847219dafd7d8b8f7457e63c7463f155694e8a192d13531171b468e8f365 HEAD_REF main PATCHES shared-zstd.patch fix-hexl.patch ) vcpkg_replace_string( "${SOURCE_PATH}/cmake/CheckCXXIntrinsicsSpecific.cmake" "check_cxx_source_runs" "check_cxx_source_compiles" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ms-gsl SEAL_USE_MSGSL zlib SEAL_USE_ZLIB zstd SEAL_USE_ZSTD hexl SEAL_USE_INTEL_HEXL INVERTED_FEATURES no-throw-tran SEAL_THROW_ON_TRANSPARENT_CIPHERTEXT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSEAL_BUILD_DEPS=OFF -DSEAL_BUILD_EXAMPLES=OFF -DSEAL_BUILD_TESTS=OFF -DSEAL_BUILD_SEAL_C=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SEAL-4.1) # provides pkgconfig files only on UNIX if(NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/seal/shared-zstd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cc8a01..b8c92c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -205,7 +205,7 @@ if(SEAL_USE_ZSTD) message(FATAL_ERROR "Zstandard: must be static") endif() elseif(TARGET zstd::libzstd_shared) - message(FATAL_ERROR "Zstandard: must be static") + set(zstd_static "zstd::libzstd_shared") else() message(FATAL_ERROR "Zstandard: not found") endif() ================================================ FILE: ports/seal/vcpkg.json ================================================ { "name": "seal", "version": "4.1.2", "description": "Microsoft SEAL is an easy-to-use and powerful homomorphic encryption library.", "homepage": "https://github.com/microsoft/SEAL", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "ms-gsl", "zlib", "zstd" ], "features": { "hexl": { "description": "Use Intel® HEXL for acceleration of low-level kernels.", "dependencies": [ "hexl" ] }, "ms-gsl": { "description": "Use ms-gsl for span view", "dependencies": [ "ms-gsl" ] }, "no-throw-tran": { "description": "Do not throw when operating on transparent ciphertexts" }, "zlib": { "description": "Use zlib for compressed serialization", "dependencies": [ "zlib" ] }, "zstd": { "description": "Use zstd for compressed serialization", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/seasocks/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mattgodbolt/seasocks REF "v${VERSION}" SHA512 18e596a09a825efd2421eee3b0d5ea389c0056c4b01c8b2078841d03863318e3f3ad59f6fd47fbe90409989c1fe05599f29b34a397427d282124e867371733ed HEAD_REF master ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES zlib DEFLATE_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNITTESTS=OFF -DSEASOCKS_EXAMPLE_APP=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Seasocks") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/licenses") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/seasocks/vcpkg.json ================================================ { "name": "seasocks", "version": "1.4.6", "description": "Simple, small, C++ embeddable webserver with WebSockets support", "homepage": "https://github.com/mattgodbolt/seasocks", "license": "BSD-2-Clause", "supports": "!osx & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "zlib" ], "features": { "zlib": { "description": "Build with Deflate support via zlib", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/sebsjames-maths/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sebsjames/maths REF "${VERSION}" SHA512 bd1f44f2cb3cf14458a4c35052840cc19cd6a03058936853eedbd209fdb10012e74b2b51e7fc7a46e3e76861baf27e946a7e1e5feff545f81b255d9d4af4303e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/maths) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sebsjames-maths/vcpkg.json ================================================ { "name": "sebsjames-maths", "version": "1.0", "description": "C++20 code for scalar, vector and complex maths.", "homepage": "https://github.com/sebsjames/maths", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/secp256k1/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bitcoin-core/secp256k1 REF v${VERSION} SHA512 747bda9276c02a87511c2d3275ec8894db1b7b99dcc9ab9a48497659c2eb512c555cc5f5f2c0269b00237e7177aa3790a5c7cf635ee695f2d440f0ddcb8672ab ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSECP256K1_BUILD_BENCHMARK=OFF -DSECP256K1_BUILD_TESTS=OFF -DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/libsecp256k1" PACKAGE_NAME libsecp256k1) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/secp256k1/vcpkg.json ================================================ { "name": "secp256k1", "version": "0.7.1", "description": "Optimized C library for EC operations on curve", "homepage": "https://github.com/bitcoin-core/secp256k1", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/selene/disable_x86_intrinsics_on_arm.patch ================================================ diff --git a/selene/base/Bitcount.hpp b/selene/base/Bitcount.hpp index a4d69e4..709f650 100755 --- a/selene/base/Bitcount.hpp +++ b/selene/base/Bitcount.hpp @@ -69,7 +69,7 @@ inline std::size_t bit_count(unsigned long long x) return static_cast(__builtin_popcountll(x)); } -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) && !defined(_M_ARM) && !defined(_M_ARM64) /** \brief Performs a bit count on the supplied value. * ================================================ FILE: ports/selene/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kmhofmann/selene REF v0.3.1 SHA512 7bc57ebe9e2442da2716eb5c1af11f8d610b0b09fe96e3122d1028575732b6045a987c499bbf7de53003edd627b8809d86c80ea4975fc2264a1c61d5891a46c3 HEAD_REF master PATCHES disable_x86_intrinsics_on_arm.patch tiff-deprecated-typedefs.patch trivial-pixel.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "opencv" SELENE_USE_OPENCV ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSELENE_ARCH_NATIVE=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/selene) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/selene/tiff-deprecated-typedefs.patch ================================================ diff --git a/selene/CMakeLists.txt b/selene/CMakeLists.txt index ab2760c..d1e1e6c 100644 --- a/selene/CMakeLists.txt +++ b/selene/CMakeLists.txt @@ -229,6 +229,9 @@ if(TIFF_FOUND) ) target_compile_options(selene_img_io_tiff PRIVATE ${SELENE_COMPILER_OPTIONS} ${SELENE_IMG_COMPILER_OPTIONS}) + if(MSVC) + target_compile_options(selene_img_io_tiff PRIVATE /wd4996) + endif() target_compile_definitions(selene_img_io_tiff PRIVATE ${SELENE_COMPILER_DEFINITIONS}) ================================================ FILE: ports/selene/trivial-pixel.patch ================================================ --- a/selene/img/pixel/Pixel.hpp +++ b/selene/img/pixel/Pixel.hpp @@ -45,6 +45,6 @@ constexpr Pixel() noexcept = default; ///< Default constructor. Pixel values are uninitialized. - template > - constexpr Pixel(Args... args) noexcept; + template > + constexpr Pixel(Arg1 arg1, Args... args) noexcept; constexpr explicit Pixel(const std::array& arr) noexcept; @@ -216,8 +216,8 @@ template -template -constexpr Pixel::Pixel(Args... args) noexcept - : data_{{static_cast(args)...}} +template +constexpr Pixel::Pixel(Arg1 arg1, Args... args) noexcept + : data_{{static_cast(arg1), static_cast(args)...}} { static_assert(std::is_trivial>::value, "Pixel type is not trivial"); static_assert(std::is_standard_layout>::value, "Pixel type is not standard layout"); ================================================ FILE: ports/selene/vcpkg.json ================================================ { "name": "selene", "version": "0.3.1", "port-version": 8, "description": "A C++17 image representation, processing and I/O library.", "homepage": "https://github.com/kmhofmann/selene", "dependencies": [ "libjpeg-turbo", "libpng", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "opencv": { "description": "Enable using OpenCV", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "fs", "intrinsics", "thread" ] } ] } } } ================================================ FILE: ports/sentencepiece/abseil.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9fa37fa..0e220e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,6 +173,9 @@ elseif (SPM_ABSL_PROVIDER STREQUAL "package") find_package(absl REQUIRED) get_target_property(ABSL_INCLUDE_DIRS absl::base INTERFACE_INCLUDE_DIRECTORIES) if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/absl.org) + file(REMOVE_RECURSE ${CMAKE_CURRENT_SOURCE_DIR}/third_party/absl) + file(COPY "${ABSL_INCLUDE_DIRS}/absl" DESTINATION "${PROJECT_BINARY_DIR}/third_party") + elseif(0) file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/third_party/absl ${CMAKE_CURRENT_SOURCE_DIR}/third_party/absl.org) execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${ABSL_INCLUDE_DIRS}/absl ${CMAKE_CURRENT_SOURCE_DIR}/third_party/absl) diff --git a/src/sentencepiece_processor.h b/src/sentencepiece_processor.h index dd3f092..c1551a7 100644 --- a/src/sentencepiece_processor.h +++ b/src/sentencepiece_processor.h @@ -23,9 +23,7 @@ #include #ifndef SWIG -namespace absl { -using std::string_view; -} // namespace absl +#include #endif // SWIG namespace sentencepiece { ================================================ FILE: ports/sentencepiece/linkage.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8d4a34f..6ef8aa9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -250,6 +250,8 @@ if (SPM_ENABLE_SHARED) set_target_properties(sentencepiece PROPERTIES IMPORT_SUFFIX ".dll.a") set_target_properties(sentencepiece_train PROPERTIES IMPORT_SUFFIX ".dll.a") endif() + list(REMOVE_ITEM SPM_INSTALLTARGETS sentencepiece-static sentencepiece_train-static) + set_target_properties(sentencepiece-static sentencepiece_train-static PROPERTIES EXCLUDE_FROM_ALL 1) else() add_library(sentencepiece ALIAS sentencepiece-static) add_library(sentencepiece_train ALIAS sentencepiece_train-static) ================================================ FILE: ports/sentencepiece/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/sentencepiece REF "v${VERSION}" SHA512 012850b63b2323e16acc5dacc0a494ad3f6375425ee86274f0946032e47c088a3b307758b99d752fcf54acf76c82d7d13d0c14bbf07aa9b612c4f1fbd30cf1cf HEAD_REF master PATCHES abseil.diff linkage.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SPM_ENABLE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPM_ENABLE_SHARED=${SPM_ENABLE_SHARED} -DSPM_ENABLE_TCMALLOC=OFF -DSPM_ABSL_PROVIDER=package -DSPM_PROTOBUF_PROVIDER=package -DPROTOBUF_LITE_LIBRARY=protobuf::libprotobuf-lite ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES spm_decode spm_encode spm_export_vocab spm_normalize spm_train AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sentencepiece/vcpkg.json ================================================ { "name": "sentencepiece", "version": "0.2.1", "description": "SentencePiece is an unsupervised text tokenizer and detokenizer mainly for Neural Network-based text generation systems where the vocabulary size is predetermined prior to the neural model training", "homepage": "https://github.com/google/sentencepiece", "license": "Apache-2.0", "dependencies": [ "abseil", "protobuf", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/sentry-native/devendor-libunwind.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d646e7..53b4371 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -615,15 +615,9 @@ endif() if(SENTRY_WITH_LIBUNWIND) if(LINUX) - # Use vendored libunwind - add_subdirectory(vendor/libunwind) - target_link_libraries(sentry PRIVATE unwind) - if(NOT SENTRY_BUILD_SHARED_LIBS) - sentry_install(TARGETS unwind EXPORT sentry - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ) - endif() + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBUNWIND REQUIRED IMPORTED_TARGET libunwind) + target_link_libraries(sentry PRIVATE PkgConfig::LIBUNWIND) endif() endif() diff --git a/sentry-config.cmake.in b/sentry-config.cmake.in index c575372..54cbeb1 100644 --- a/sentry-config.cmake.in +++ b/sentry-config.cmake.in @@ -8,6 +8,7 @@ set(SENTRY_LINK_PTHREAD @SENTRY_LINK_PTHREAD@) set(SENTRY_TRANSPORT_COMPRESSION @SENTRY_TRANSPORT_COMPRESSION@) set(SENTRY_BREAKPAD_SYSTEM @SENTRY_BREAKPAD_SYSTEM@) set(CRASHPAD_ZLIB_SYSTEM @CRASHPAD_ZLIB_SYSTEM@) +set(SENTRY_WITH_LIBUNWIND @SENTRY_WITH_LIBUNWIND@) if(NOT SENTRY_BUILD_SHARED_LIBS) if(SENTRY_TRANSPORT_COMPRESSION OR CRASHPAD_ZLIB_SYSTEM) @@ -17,6 +18,10 @@ if(NOT SENTRY_BUILD_SHARED_LIBS) find_dependency(PkgConfig) pkg_check_modules(BREAKPAD REQUIRED IMPORTED_TARGET breakpad-client) endif() + if(SENTRY_WITH_LIBUNWIND) + find_dependency(PkgConfig) + pkg_check_modules(LIBUNWIND REQUIRED IMPORTED_TARGET libunwind) + endif() if(SENTRY_TRANSPORT STREQUAL "curl") find_dependency(CURL) endif() ================================================ FILE: ports/sentry-native/fix-cmake4.patch ================================================ diff --git a/external/crashpad/util/CMakeLists.txt b/external/crashpad/util/CMakeLists.txt index f60da7d..b512fc8 100644 --- a/external/crashpad/util/CMakeLists.txt +++ b/external/crashpad/util/CMakeLists.txt @@ -428,7 +428,7 @@ if(APPLE) ) endif() foreach(x ${def_relative_files}) - set(full_path "${CMAKE_OSX_SYSROOT}/usr/include/mach/${x}") + set(full_path "${_CMAKE_OSX_SYSROOT_PATH}/usr/include/mach/${x}") if(NOT EXISTS "${full_path}") message(FATAL_ERROR "File not found: ${full_path}") endif() @@ -460,7 +460,7 @@ if(APPLE) list(TRANSFORM includes PREPEND "--include=") if(CMAKE_OSX_SYSROOT) - set(sdk --sdk ${CMAKE_OSX_SYSROOT}) + set(sdk --sdk ${_CMAKE_OSX_SYSROOT_PATH}) endif() # When building for Xcode, the `CMAKE_OSX_SYSROOT` is not set to a proper ================================================ FILE: ports/sentry-native/fix-crashpad-wer.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2873b3d..7ee1d78 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -616,7 +616,7 @@ if(SENTRY_BACKEND_CRASHPAD) endif() add_subdirectory(external/crashpad crashpad_build) - if(WIN32) + if(WIN32 AND SENTRY_TRANSPORT_CRASHPAD_USE_WER) add_dependencies(sentry crashpad::wer) endif() @@ -632,7 +632,9 @@ if(SENTRY_BACKEND_CRASHPAD) set_property(TARGET crashpad_snapshot PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") set_property(TARGET crashpad_tools PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") set_property(TARGET crashpad_util PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +if(SENTRY_TRANSPORT_CRASHPAD_USE_WER) set_property(TARGET crashpad_wer PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") +endif() set_property(TARGET crashpad_zlib PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") set_property(TARGET mini_chromium PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") endif() @@ -648,7 +650,9 @@ if(SENTRY_BACKEND_CRASHPAD) set_target_properties(crashpad_snapshot PROPERTIES FOLDER ${SENTRY_FOLDER}) set_target_properties(crashpad_tools PROPERTIES FOLDER ${SENTRY_FOLDER}) set_target_properties(crashpad_util PROPERTIES FOLDER ${SENTRY_FOLDER}) +if(SENTRY_TRANSPORT_CRASHPAD_USE_WER) set_target_properties(crashpad_wer PROPERTIES FOLDER ${SENTRY_FOLDER}) +endif() set_target_properties(crashpad_zlib PROPERTIES FOLDER ${SENTRY_FOLDER}) set_target_properties(mini_chromium PROPERTIES FOLDER ${SENTRY_FOLDER}) endif() @@ -660,7 +664,7 @@ if(SENTRY_BACKEND_CRASHPAD) install(EXPORT crashpad_export NAMESPACE sentry_crashpad:: FILE sentry_crashpad-targets.cmake DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" ) - if(WIN32 AND MSVC) + if(WIN32 AND MSVC AND SENTRY_TRANSPORT_CRASHPAD_USE_WER) sentry_install(FILES $ DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL) sentry_install(FILES $ diff --git a/external/crashpad/handler/CMakeLists.txt b/external/crashpad/handler/CMakeLists.txt index 2247e2a..b89c570 100644 --- a/external/crashpad/handler/CMakeLists.txt +++ b/external/crashpad/handler/CMakeLists.txt @@ -126,7 +126,7 @@ if(NOT IOS) ) endif() -if (WIN32) +if (WIN32 AND SENTRY_TRANSPORT_CRASHPAD_USE_WER) add_library(crashpad_wer SHARED win/wer/crashpad_wer.cc win/wer/crashpad_wer.h diff --git a/src/backends/sentry_backend_crashpad.cpp b/src/backends/sentry_backend_crashpad.cpp index 9ddca42..4fa1e4e 100644 --- a/src/backends/sentry_backend_crashpad.cpp +++ b/src/backends/sentry_backend_crashpad.cpp @@ -156,7 +156,7 @@ crashpad_backend_user_consent_changed(sentry_backend_t *backend) data->db->GetSettings()->SetUploadsEnabled(!sentry__should_skip_upload()); } -#ifdef SENTRY_PLATFORM_WINDOWS +#if defined(SENTRY_PLATFORM_WINDOWS) && defined(SENTRY_TRANSPORT_CRASHPAD_USE_WER) static void crashpad_register_wer_module( const sentry_path_t *absolute_handler_path, const crashpad_state_t *data) @@ -575,7 +575,7 @@ crashpad_backend_startup( report_id); sentry_free(minidump_url); -#ifdef SENTRY_PLATFORM_WINDOWS +#if defined(SENTRY_PLATFORM_WINDOWS) && defined(SENTRY_TRANSPORT_CRASHPAD_USE_WER) crashpad_register_wer_module(absolute_handler_path, data); #endif ================================================ FILE: ports/sentry-native/fix-usage-runtime.patch ================================================ diff --git a/external/crashpad/handler/CMakeLists.txt b/external/crashpad/handler/CMakeLists.txt index b89c570..2e0aaa1 100644 --- a/external/crashpad/handler/CMakeLists.txt +++ b/external/crashpad/handler/CMakeLists.txt @@ -88,7 +88,7 @@ if(NOT IOS) $<$:-Wno-ignored-attributes> ) endif() - if(LINUX) + if(LINUX AND BUILD_SHARED_LIBS) target_sources(crashpad_handler PRIVATE ../client/pthread_create_linux.cc ) ================================================ FILE: ports/sentry-native/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/getsentry/sentry-native/releases/download/${VERSION}/sentry-native.zip" FILENAME "sentry-native-${VERSION}.zip" SHA512 9dafea0f9b4963f3b3d64bd8ebd8042c2be6462999e35913caf3615667071cdb6a3abbd1675a703105b632efb4e39589004392b5f17e29b38eff76b4c5af0e44 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL PATCHES fix-crashpad-wer.patch fix-usage-runtime.patch fix-cmake4.patch devendor-libunwind.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/external/crashpad/third_party/zlib/zlib") vcpkg_list(SET options) if(NOT "backend" IN_LIST FEATURES) vcpkg_list(APPEND options "-DSENTRY_BACKEND=none") elseif("wer" IN_LIST FEATURES) vcpkg_list(APPEND options "-DSENTRY_BACKEND=crashpad") elseif(DEFINED SENTRY_BACKEND) # Legacy, possible override from triplet, but cannot handle dependencies vcpkg_list(APPEND options "-DSENTRY_BACKEND=${SENTRY_BACKEND}") endif() if(NOT "transport" IN_LIST FEATURES) vcpkg_list(APPEND options "-DSENTRY_TRANSPORT=none") endif() if("wer" IN_LIST FEATURES) vcpkg_list(APPEND options "-DSENTRY_TRANSPORT_CRASHPAD_USE_WER=ON") endif() if("compression" IN_LIST FEATURES) vcpkg_list(APPEND options "-DSENTRY_TRANSPORT_COMPRESSION=ON") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}") set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DSENTRY_BUILD_TESTS=OFF -DSENTRY_BUILD_EXAMPLES=OFF -DCRASHPAD_ZLIB_SYSTEM=ON MAYBE_UNUSED_VARIABLES CRASHPAD_ZLIB_SYSTEM ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(PACKAGE_NAME sentry CONFIG_PATH lib/cmake/sentry) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/crashpad_handler${VCPKG_TARGET_EXECUTABLE_SUFFIX}") vcpkg_copy_tools(TOOL_NAMES crashpad_handler AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/sentry-native/usage ================================================ sentry-native provides CMake targets: find_package(sentry CONFIG REQUIRED) target_link_libraries(main PRIVATE sentry::sentry) ================================================ FILE: ports/sentry-native/vcpkg.json ================================================ { "name": "sentry-native", "version": "0.13.3", "description": "Sentry SDK for C, C++ and native applications.", "homepage": "https://sentry.io/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "libunwind", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "backend", "transport", { "name": "wer", "platform": "windows & !static" } ], "features": { "backend": { "description": [ "Enables the platform-specific backend.", "This feature does nothing for some platforms.", "Cf. https://github.com/getsentry/sentry-native#compile-time-options" ], "dependencies": [ { "$comment": "pkgcong is used by the breakpad backend.", "name": "pkgconf", "host": true, "platform": "!android & !ios" }, { "$comment": "sentry-native[transport] is used by the crashpad backend.", "name": "sentry-native", "features": [ "transport" ], "platform": "!android & !ios & !windows" }, { "$comment": "zlib is used by the crashpad backend.", "name": "zlib", "platform": "!android & !ios" } ] }, "compression": { "description": [ "Enables gzip compression support for the transport.", "Cf.https://github.com/getsentry/sentry-native#compile-time-options" ], "dependencies": [ "zlib" ] }, "transport": { "description": [ "Enables the platform-specific network transport.", "This feature does nothing for some platforms.", "Cf. https://github.com/getsentry/sentry-native#compile-time-options" ], "dependencies": [ { "name": "curl", "default-features": false, "platform": "!windows" } ] }, "wer": { "description": [ "Enables the Windows Error Reporting backend.", "Cf.https://github.com/getsentry/sentry-native#compile-time-options" ], "supports": "windows & !static", "dependencies": [ { "name": "sentry-native", "features": [ "backend" ] } ] } } } ================================================ FILE: ports/septag-dmon/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO septag/dmon REF 59fac713a168b6c9fd08db48da49f7bd50fd9d37 SHA512 61fa6a0e243be456d3b59d20e18183392d106983dc9f1b0a7290b54fefa964d4eeba4bacd92cd5310b6f3da2dac232fd043c529c51fe3e6cccbfb9422dd31311 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBUILD_TESTS=OFF" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: ports/septag-dmon/vcpkg.json ================================================ { "name": "septag-dmon", "version-date": "2022-02-08", "description": "a tiny C library that monitors changes in a directory", "homepage": "https://github.com/septag/dmon", "license": "BSD-2-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/septag-sx/portfile.cmake ================================================ if(TARGET_TRIPLET MATCHES "(uwp|arm)") message(FATAL_ERROR "septag-sx doesn't support ${TARGET_TRIPLET} currently.") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO septag/sx REF b70567a52636f9ecfdb904c586a957a806efc990 SHA512 8945476b428418d3c7845afd831503f43fd44672a9b3506576c5baf50f55739327275a8be97a323f3ae146f84b76bbe266ac7b5df1b85cb05a826ed5e30b9547 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SX_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSX_BUILD_TESTS=OFF -DSX_SHARED_LIB=${SX_SHARED_LIB} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/sx PACKAGE_NAME sx) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/sx/config.h" "define SX_CONFIG_SHARED_LIB 0" "define SX_CONFIG_SHARED_LIB 1" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/septag-sx/vcpkg.json ================================================ { "name": "septag-sx", "version-date": "2019-05-07", "port-version": 5, "description": "Portable base library for C programmers, designed for performance and simplicity.", "supports": "!(uwp | arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/seqan/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://packages.seqan.de/seqan-library/seqan-library-2.4.0.zip" FILENAME "seqan-library-2.4.0.zip" SHA512 9a1b4fe9dff9ad49a8761798a6a6eaeebce683ccb5e2dd78ea4b8829093918606830a16ea458d67bf3f652531ddc55b550c12cb257be913bb187c8940d96a575 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") file(INSTALL ${SOURCE_PATH}/share/doc/seqan/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/seqan RENAME copyright) ================================================ FILE: ports/seqan/vcpkg.json ================================================ { "name": "seqan", "version": "2.4.0", "port-version": 3, "description": "SeqAn is an open source C++ library of efficient algorithms and data structures for the analysis of sequences with the focus on biological data." } ================================================ FILE: ports/serd/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO drobilla/serd REF "v${VERSION}" SHA512 ff2dcdff0431d2a484bb205ff3d1740ad83fd87233bd09a558c7752ecbd26431998a4fc498f99584bc0db37c666a63fc60b9f49a56ed0241a1c96c47e5451a8b HEAD_REF main ) if("tools" IN_LIST FEATURES) set(tools_option -Dtools=enabled) else() set(tools_option -Dtools=disabled) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${tools_option} ) vcpkg_install_meson() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES serdi AUTO_CLEAN) endif() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/serd/vcpkg.json ================================================ { "name": "serd", "version": "0.32.8", "description": "Serd is a lightweight C library for RDF syntax which supports reading and writing Turtle, TRiG, NTriples, and NQuads.", "homepage": "https://drobilla.net/software/serd", "license": "ISC", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "tools": { "description": "Build the serdi command-line tool", "supports": "!emscripten" } } } ================================================ FILE: ports/serdepp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO injae/serdepp REF v0.1.4.1 SHA512 623414807e43d03f1ef1f9b7f02f10148b2745f5487047df3a678f92ccbe0a0f5f7d76cc6e2e88097e2c0e2cf2dde60b4f33dc9c6aaeafc7cd2dc3adfd88959f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSERDEPP_BUILD_TESTING=OFF -DENABLE_INLINE_CPPM_TOOLS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/serdepp) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/cmake" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/lib/cmake" ) # # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/serdepp/vcpkg.json ================================================ { "name": "serdepp", "version": "0.1.4.1", "description": "c++ 17 universal serialize deserialize library like rust serde, support libraries: [nlohmann_json, fmt, yaml-cpp, toml11, rapidjson]", "homepage": "https://github.com/injae/serdepp", "license": "MIT", "supports": "!(osx & arm)", "dependencies": [ "magic-enum", "nameof", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/serf/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://dlcdn.apache.org/serf/serf-${VERSION}.tar.bz2" FILENAME "serf-${VERSION}.tar.bz2" SHA512 19165274d35c694935cda33f99ef92a7663a5d9c540fb7fd6792aa0efe39941b2fa87ff8b61afd060c6676baec634fd33dc2e9d34ecbee45ed99dfaed077802c ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES serf-fix-expat.patch serf-use-debug-libs.patch ) # Note: custom architecture is not supported on Unix. if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(SCONS_ARCH "TARGET_ARCH=x86_64") elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(SCONS_ARCH "TARGET_ARCH=x86") else() set(SCONS_ARCH "") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}/bin/libapr-1.dll") set(APR_STATIC "no") else() set(APR_STATIC "yes") endif() vcpkg_find_acquire_program(SCONS) message(STATUS "Building ${TARGET_TRIPLET}-rel") if(VCPKG_TARGET_IS_WINDOWS) SET(apr_opts "APR=${CURRENT_INSTALLED_DIR}" "APU=${CURRENT_INSTALLED_DIR}" "APR_STATIC=${APR_STATIC}" ) else() SET(apr_opts "APR=${CURRENT_INSTALLED_DIR}/tools/apr/bin/apr-1-config" "APU=${CURRENT_INSTALLED_DIR}/tools/apr-util/bin/apu-1-config" ) endif() vcpkg_execute_build_process( COMMAND ${SCONS} "SOURCE_LAYOUT=no" "PREFIX=${CURRENT_PACKAGES_DIR}" "LIBDIR=${CURRENT_PACKAGES_DIR}/lib" "OPENSSL=${CURRENT_INSTALLED_DIR}" "ZLIB=${CURRENT_INSTALLED_DIR}" ${apr_opts} "${SCONS_ARCH}" "DEBUG=no" "install-lib" "install-inc" "install-pc" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "scons-rel" ) # Fixup installed files. if(VCPKG_TARGET_IS_WINDOWS) if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libserf-1.dll" "${CURRENT_PACKAGES_DIR}/bin/libserf-1.dll" ) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libserf-1.pdb" "${CURRENT_PACKAGES_DIR}/bin/libserf-1.pdb" ) else() file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libserf-1.dll" "${CURRENT_PACKAGES_DIR}/lib/libserf-1.pdb" "${CURRENT_PACKAGES_DIR}/lib/libserf-1.lib" ) endif() file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/libserf-1.exp") endif() if(NOT VCPKG_BUILD_TYPE) message(STATUS "Building ${TARGET_TRIPLET}-dbg") if(VCPKG_TARGET_IS_WINDOWS) SET(apr_opts "APR=${CURRENT_INSTALLED_DIR}/debug" "APU=${CURRENT_INSTALLED_DIR}/debug" "APR_STATIC=${APR_STATIC}" ) else() SET(apr_opts "APR=${CURRENT_INSTALLED_DIR}/tools/apr/debug/bin/apr-1-config" "APU=${CURRENT_INSTALLED_DIR}/tools/apr-util/debug/bin/apu-1-config" ) endif() vcpkg_execute_build_process( COMMAND ${SCONS} "SOURCE_LAYOUT=no" "PREFIX=${CURRENT_PACKAGES_DIR}/debug" "LIBDIR=${CURRENT_PACKAGES_DIR}/debug/lib" "OPENSSL=${CURRENT_INSTALLED_DIR}" "ZLIB=${CURRENT_INSTALLED_DIR}" ${apr_opts} "${SCONS_ARCH}" "DEBUG=yes" "install-lib" "install-pc" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "scons-dbg" ) # Fixup installed files. if(VCPKG_TARGET_IS_WINDOWS) if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/libserf-1.dll" ) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.pdb" "${CURRENT_PACKAGES_DIR}/debug/bin/libserf-1.pdb" ) else() file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.dll" "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.pdb" "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.lib" ) endif() file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/libserf-1.exp") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/serf/serf-fix-expat.patch ================================================ Index: SConstruct =================================================================== --- SConstruct (revision 1920717) +++ SConstruct (working copy) @@ -324,7 +324,11 @@ if aprstatic: apr_libs='apr-1.lib' apu_libs='aprutil-1.lib' - env.Append(LIBS=['shell32.lib', 'xml.lib']) + env.Append(LIBS=['shell32.lib']) + if debug: + env.Append(LIBS=['libexpatdMD.lib']) + else: + env.Append(LIBS=['libexpatMD.lib']) else: apr_libs='libapr-1.lib' apu_libs='libaprutil-1.lib' ================================================ FILE: ports/serf/serf-use-debug-libs.patch ================================================ Index: SConstruct =================================================================== --- SConstruct (revision 1920717) +++ SConstruct (working copy) @@ -331,8 +331,12 @@ env.Append(LIBS=[apr_libs, apu_libs]) if not env.get('SOURCE_LAYOUT', None): - env.Append(LIBPATH=['$APR/lib', '$APU/lib'], - CPPPATH=['$APR/include/apr-1', '$APU/include/apr-1']) + if debug: + env.Append(LIBPATH=['$APR/debug/lib', '$APU/lib'], + CPPPATH=['$APR/include/apr-1', '$APU/include/apr-1']) + else: + env.Append(LIBPATH=['$APR/lib', '$APU/debug/lib'], + CPPPATH=['$APR/include/apr-1', '$APU/include/apr-1']) elif aprstatic: env.Append(LIBPATH=['$APR/LibR','$APU/LibR'], CPPPATH=['$APR/include', '$APU/include']) @@ -341,10 +345,15 @@ CPPPATH=['$APR/include', '$APU/include']) # zlib - env.Append(LIBS=['zlib.lib']) if not env.get('SOURCE_LAYOUT', None): - env.Append(CPPPATH=['$ZLIB/include'], - LIBPATH=['$ZLIB/lib']) + if debug: + env.Append(CPPPATH=['$ZLIB/include'], + LIBPATH=['$ZLIB/debug/lib']) + env.Append(LIBS=['zlibd.lib']) + else: + env.Append(CPPPATH=['$ZLIB/include'], + LIBPATH=['$ZLIB/lib']) + env.Append(LIBS=['zlib.lib']) else: env.Append(CPPPATH=['$ZLIB'], LIBPATH=['$ZLIB']) @@ -351,8 +360,12 @@ # openssl if not env.get('SOURCE_LAYOUT', None): - env.Append(CPPPATH=['$OPENSSL/include/openssl'], - LIBPATH=['$OPENSSL/lib']) + if debug: + env.Append(CPPPATH=['$OPENSSL/include/openssl'], + LIBPATH=['$OPENSSL/debug/lib']) + else: + env.Append(CPPPATH=['$OPENSSL/include/openssl'], + LIBPATH=['$OPENSSL/lib']) elif 0: # opensslstatic: env.Append(CPPPATH=['$OPENSSL/inc32'], LIBPATH=['$OPENSSL/out32']) @@ -392,8 +405,12 @@ apr_libs = '' apu_libs = '' - env.Append(CPPPATH=['$OPENSSL/include']) - env.Append(LIBPATH=['$OPENSSL/lib']) + if debug: + env.Append(CPPPATH=['$OPENSSL/include/openssl'], + LIBPATH=['$OPENSSL/debug/lib']) + else: + env.Append(CPPPATH=['$OPENSSL/include/openssl'], + LIBPATH=['$OPENSSL/debug']) # If build with gssapi, get its information and define SERF_HAVE_GSSAPI ================================================ FILE: ports/serf/vcpkg.json ================================================ { "name": "serf", "version": "1.3.10", "description": "The serf library is a high performance C-based HTTP client library built upon the Apache Portable Runtime (APR) library. It is permissively licensed under the Apache License, v2.", "homepage": "https://serf.apache.org/", "license": "Apache-2.0", "supports": "!uwp & !staticcrt & !arm", "dependencies": [ "apr", "apr-util", "openssl", "zlib" ] } ================================================ FILE: ports/sese/portfile.cmake ================================================ function(remove_empty_directories_recursive dir) file(GLOB before_subdirs "${dir}/*") foreach (subdir ${before_subdirs}) if (IS_DIRECTORY ${subdir}) remove_empty_directories_recursive(${subdir}) endif () endforeach () file(GLOB after_subdirs "${dir}/*") if ("${after_subdirs}" STREQUAL "") file(REMOVE_RECURSE "${dir}") endif () endfunction() set(SOURCE_PATH ${CURRENT_BUILDTRESS_DIR}/sese) vcpkg_download_distfile(PATCH_FIX_ENV_STATEMENT URLS https://github.com/libsese/sese/commit/59fa66d24996eceddc2c406b043687cd13a741dd.patch?full_index=1 SHA512 94661bf2306c40dd3d62409babf26787087e7bc3abade532e9b656080de2f237fd640465272228055da250670d286ede10bd8776cc0d67429d6e0846cfd06d5e FILENAME libsese-sese-2.3.0-59fa66d24996eceddc2c406b043687cd13a741dd.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libsese/sese REF "refs/tags/${VERSION}" SHA512 a1008c351ea3e8745d629bdcceb4a6d089ae5a84137bbd49b8abbbb271032ddf279e9b20f155181b6a7d3d8cb17c2ec2f1b7a12464fb0cac8402628e473966cb PATCHES ${PATCH_FIX_ENV_STATEMENT} ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tests SESE_BUILD_TEST mysql SESE_DB_USE_MARIADB sqlite3 SESE_DB_USE_SQLITE psql SESE_DB_USE_POSTGRES async-logger SESE_USE_ASYNC_LOGGER archive SESE_USE_ARCHIVE replace-execinfo SESE_REPLACE_EXECINFO ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/sese") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_BUILD_TYPE) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() remove_empty_directories_recursive("${CURRENT_PACKAGES_DIR}/include/sese") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/NOTICE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/sese/usage ================================================ sese provides CMake targets: find_package(sese CONFIG REQUIRED) target_link_libraries(main PRIVATE Sese::Core) ================================================ FILE: ports/sese/vcpkg.json ================================================ { "name": "sese", "version": "2.3.0", "port-version": 3, "description": "A cross-platform framework for basic components.", "homepage": "https://github.com/libsese/sese", "license": "Apache-2.0", "supports": "x64 & (windows | osx | linux) & !uwp", "dependencies": [ { "name": "asio", "features": [ "openssl" ] }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "sqlite3" ], "features": { "archive": { "description": "add archive support", "dependencies": [ "libarchive" ] }, "async-logger": { "description": "use the async logger" }, "mysql": { "description": "add mysql and mariadb support", "dependencies": [ "libmariadb" ] }, "psql": { "description": "add postgresql support", "dependencies": [ "libpq" ] }, "replace-execinfo": { "description": "replace the system execinfo implementation", "dependencies": [ "libunwind" ] }, "sqlite3": { "description": "add sqlite3 support", "dependencies": [ "sqlite3" ] }, "tests": { "description": "build the unit test", "dependencies": [ "benchmark", "gtest" ] } } } ================================================ FILE: ports/sf2cute/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gocha/sf2cute REF v0.2 HEAD_REF master SHA512 721762556c392a134500fa110ec849a60d1285a57e4e8d9cacb6281bed02f5658a14694efcccb8248719558b45db89da5ad53c56990bb9c263a9760fe0d99b8f ) set(BUILD_EXAMPLE OFF) if("example" IN_LIST FEATURES) set(BUILD_EXAMPLE ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DSF2CUTE_EXAMPLES_INSTALL_DIR=tools/sf2cute OPTIONS_RELEASE -DSF2CUTE_INSTALL_EXAMPLES=${BUILD_EXAMPLE} "-DSF2CUTE_EXAMPLES_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/tools/sf2cute" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/sf2cute" RENAME copyright) if(BUILD_EXAMPLE) vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/sf2cute") endif() ================================================ FILE: ports/sf2cute/vcpkg.json ================================================ { "name": "sf2cute", "version": "0.2.0", "port-version": 4, "description": "C++14 Library for SoundFont 2", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "example": { "description": "Installs an example application" } } } ================================================ FILE: ports/sfcgal/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO sfcgal/SFCGAL REF "v${VERSION}" SHA512 8b629df31cef1b3b5538eb5a00b51be9553595ad52857030298dbb08bba2997d25a91f579f5a3a9168563f3833f18065fec5089f59cd8994abe99e4cfd421f25 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SFCGAL_USE_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DSFCGAL_BUILD_TESTS=OFF "-DSFCGAL_USE_STATIC_LIBS=${SFCGAL_USE_STATIC_LIBS}" -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SFCGAL) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/sfcgal-config" "${CURRENT_PACKAGES_DIR}/debug/bin/sfcgal-config") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sfcgal/vcpkg.json ================================================ { "name": "sfcgal", "version": "2.2.0", "description": "sfcgal is a C++ wrapper library around CGAL with the aim of supporting ISO 191007:2013 and OGC Simple Features for 3D operations.", "homepage": "https://gitlab.com/SFCGAL/SFCGAL", "license": "LGPL-2.0-or-later", "supports": "(x64 & (windows | osx | linux)) | (arm64 & osx)", "dependencies": [ "cgal", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sfgui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TankOs/SFGUI REF 1.0.0 SHA512 cc543cd44cf7d922d086748eea57d75069682649aa5f788bfc6ec3baa7bf7f9a010b4314d1a1875648cfaabf8d9efef130843ac1848d1112b5d53fd508768e41 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SFGUI_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSFGUI_BUILD_DOC=OFF -DSFGUI_BUILD_EXAMPLES=OFF -DSFGUI_BUILD_SHARED_LIBS=${SFGUI_BUILD_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(GLOB_RECURSE SFGUI_DOC_RELEASE "${CURRENT_PACKAGES_DIR}/*.md") file(GLOB_RECURSE SFGUI_DOC_DEBUG "${CURRENT_PACKAGES_DIR}/debug/*.md") file(REMOVE ${SFGUI_DOC_RELEASE} ${SFGUI_DOC_DEBUG}) else() vcpkg_cmake_config_fixup(CONFIG_PATH share/SFGUI/cmake) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sfgui/vcpkg.json ================================================ { "name": "sfgui", "version": "1.0.0", "description": "Simple and Fast Graphical User Interface Library", "homepage": "https://github.com/TankOs/SFGUI", "license": "Zlib", "dependencies": [ "sfml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sfl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO slavenf/sfl-library REF "${VERSION}" SHA512 1c2d2497421b9a9a7813bfbca301389a99b2b83974e8a86c8694d3259983dbd627f83885586fa81a74870ede42e0a3c99a0dc32615ac624c28c0c28b29a50c77 HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sfl/vcpkg.json ================================================ { "name": "sfl", "version": "2.2.0", "description": "header-only C++11 library that offers several new or less-known containers", "homepage": "https://github.com/slavenf/sfl-library", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/sfml/01-fix-dependency-resolve.patch ================================================ diff --git a/cmake/SFMLConfig.cmake.in b/cmake/SFMLConfig.cmake.in index 855f8a273..ea473f4f8 100644 --- a/cmake/SFMLConfig.cmake.in +++ b/cmake/SFMLConfig.cmake.in @@ -81,6 +81,11 @@ foreach(component ${SFML_FIND_COMPONENTS}) endif() endforeach() +set(SFML_STATIC_LIBRARIES false) +if(NOT "@BUILD_SHARED_LIBS@") + set(SFML_STATIC_LIBRARIES true) +endif() + set(FIND_SFML_PATHS "${CMAKE_CURRENT_LIST_DIR}/../../.." ~/Library/Frameworks diff --git a/src/SFML/Graphics/CMakeLists.txt b/src/SFML/Graphics/CMakeLists.txt index 4886ac71f..8018937ee 100644 --- a/src/SFML/Graphics/CMakeLists.txt +++ b/src/SFML/Graphics/CMakeLists.txt @@ -93,7 +93,8 @@ sfml_add_library(Graphics target_link_libraries(sfml-graphics PUBLIC SFML::Window) # stb_image sources -target_include_directories(sfml-graphics SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/stb_image") +find_path(STB_INCLUDE_DIR stb_image.h REQUIRED) +target_include_directories(sfml-graphics SYSTEM PRIVATE "${STB_INCLUDE_DIR}") # glad sources target_include_directories(sfml-graphics SYSTEM PRIVATE "${PROJECT_SOURCE_DIR}/extlibs/headers/glad/include") ================================================ FILE: ports/sfml/03-fix-android-install-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f9cdd1c20..24d891d26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,12 +80,6 @@ if(SFML_OS_ANDROID) # avoid missing libraries when building SFML for Android with NDK r19c and later list(PREPEND CMAKE_FIND_ROOT_PATH "${PROJECT_SOURCE_DIR}") - - # install everything in $NDK/sources/ because this path is appended by the NDK (convenient) - set(CMAKE_INSTALL_PREFIX ${CMAKE_ANDROID_NDK}/sources/third_party/sfml) - - # we install libs in a subdirectory named after the ABI - set(CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${CMAKE_ANDROID_ARCH_ABI}") endif() # Install directories ================================================ FILE: ports/sfml/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO SFML/SFML REF "${VERSION}" HEAD_REF master SHA512 7fc3f91b84ba2353b4216c0d0a71fd15f7349b8e22630dd727fc98a1f8c295a69fe21f3e1e878413966662047280ed4f195b51ee3302061c3903aea4958a6999 PATCHES 01-fix-dependency-resolve.patch 03-fix-android-install-path.patch ) if(VCPKG_TARGET_IS_LINUX) message(STATUS "SFML currently requires the following libraries from the system package manager:\n libudev\n libx11\n libxi\n libxrandr\n libxcursor\n opengl\n\nThese can be installed on Ubuntu systems via apt-get install libx11-dev libxi-dev libxrandr-dev libxcursor-dev libxi-dev libudev-dev libgl1-mesa-dev") endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "network" SFML_BUILD_NETWORK "graphics" SFML_BUILD_GRAPHICS "window" SFML_BUILD_WINDOW "audio" SFML_BUILD_AUDIO ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSFML_BUILD_FRAMEWORKS=OFF -DSFML_USE_SYSTEM_DEPS=ON -DSFML_MISC_INSTALL_PREFIX=share/sfml -DSFML_GENERATE_PDB=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES SFML_MISC_INSTALL_PREFIX ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SFML) vcpkg_copy_pdbs() # move sfml-main to manual link dir if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib") file(COPY "${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/sfml-main.lib") file(GLOB FILES "${CURRENT_PACKAGES_DIR}/share/sfml/SFMLMain*Targets-*.cmake") foreach(FILE ${FILES}) vcpkg_replace_string("${FILE}" "/lib/sfml-main" "/lib/manual-link/sfml-main") endforeach() endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib") file(COPY "${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/lib/sfml-main-d.lib") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_fixup_pkgconfig() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.md") ================================================ FILE: ports/sfml/usage ================================================ The package sfml provides CMake targets: find_package(SFML COMPONENTS Network Graphics Window Audio System CONFIG REQUIRED) target_link_libraries(main PRIVATE SFML::Network SFML::Graphics SFML::Window SFML::Audio SFML::System) # If you want SFML to provide an implementation of main(): target_link_libraries(main PRIVATE SFML::Main) ================================================ FILE: ports/sfml/vcpkg.json ================================================ { "name": "sfml", "version": "3.0.2", "description": "Simple and fast multimedia library", "homepage": "https://github.com/SFML/SFML", "license": "Zlib", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "audio", "graphics", "network", "window" ], "features": { "audio": { "description": "Use sfml-audio library", "dependencies": [ "libflac", "libogg", "libvorbis", "miniaudio" ] }, "graphics": { "description": "Use sfml-graphics library", "dependencies": [ { "name": "freetype", "default-features": false }, { "name": "sfml", "default-features": false, "features": [ "window" ] }, "stb" ] }, "network": { "description": "Use sfml-network library" }, "window": { "description": "Use sfml-window library", "dependencies": [ "opengl" ] } } } ================================================ FILE: ports/sfsexp/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) project(sexp) if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS) endif() file(GLOB sources src/*.c src/*.h) include_directories(src/) add_library(sexp ${sources}) set_target_properties(sexp PROPERTIES PUBLIC_HEADER "src/cstring.h;src/faststack.h;src/sexp.h;src/sexp_errors.h;src/sexp_memory.h;src/sexp_ops.h;src/sexp_vis.h") install(TARGETS sexp ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin PUBLIC_HEADER DESTINATION include ) ================================================ FILE: ports/sfsexp/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mjsottile/sfsexp REF "v${VERSION}" SHA512 26dd1494d570c22264db7175e2e744047507871716198b4db1a24ee8d098dd204cc6efb55ee9dbc3d956eed7b398a08e7b3264955e6350ea546274cf4f8eb67e HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/sfsexp/vcpkg.json ================================================ { "name": "sfsexp", "version": "1.4.1", "description": "Small Fast S-Expression Library", "homepage": "https://github.com/mjsottile/sfsexp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/shader-slang/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) set(key NOTFOUND) if(VCPKG_TARGET_IS_WINDOWS) set(key "windows-${VCPKG_TARGET_ARCHITECTURE}") elseif(VCPKG_TARGET_IS_OSX) set(key "macosx-${VCPKG_TARGET_ARCHITECTURE}") elseif(VCPKG_TARGET_IS_LINUX) set(key "linux-${VCPKG_TARGET_ARCHITECTURE}") endif() set(ARCHIVE NOTFOUND) set(DEBUG_INFO_ARCHIVE NOTFOUND) # For convenient updates, use # vcpkg install shader-slang --cmake-args=-DVCPKG_SHADER_SLANG_UPDATE=1 if(key STREQUAL "windows-x64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-x86_64.zip" FILENAME "slang-${VERSION}-windows-x86_64.zip" SHA512 0db74f56c22ea630951aeb93a7f7be2be664de856e42dddf27fcc4f1f0dd05b2b8a4954193db6afb14e16933055b49c0cf478d9f658ce12231b8de3b5ba9882b ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-x86_64-debug-info.zip" FILENAME "slang-${VERSION}-windows-x86_64-debug-info.zip" SHA512 20e64e07a8c294c1760d7f04a00ff762cbe0775fef2642b712f96210fa73e449e6bce8bae6d805f164cf6cd1ae819067b385153ae4ce9f0700277d68253c3139 ) endif() if(key STREQUAL "windows-arm64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-aarch64.zip" FILENAME "slang-${VERSION}-windows-aarch64.zip" SHA512 17f15a6cb4df4de401b1fe09e8e2c383b82969759c9ada6713e075b5324ac7b160a01100ba99a609d0d6692bcdb0ba1cdd38e69ffa6d6000239fdfc20dd54cf1 ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-windows-aarch64-debug-info.zip" FILENAME "slang-${VERSION}-windows-aarch64-debug-info.zip" SHA512 9410a86b7d5f3f1c78a0a7eaf940ad64089a98ecd37f8081122700f5184c1ef3caac977b3b68462c8e7091f371036ac3fb81124476fff5e0292762d8b286f525 ) endif() if(key STREQUAL "macosx-x64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-x86_64.zip" FILENAME "slang-${VERSION}-macos-x86_64.zip" SHA512 74cd08bdc354f9a249c528fa9bbbded0b46378a742d759cb9e9ba06a66f0254a35cc55d4217138d4bd02bbc28dd40fbe245f5b0033b2d01b9166b1a0c821d64a ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-x86_64-debug-info.zip" FILENAME "slang-${VERSION}-macos-x86_64-debug-info.zip" SHA512 6a588116efe1824a6628bbda3a8f4f16838f051880e7720d3557205d0107f16bdce0b2931d1ba4bf5cd0b0d8c9368faad31039e923f50d323503e0045817aa13 ) endif() if(key STREQUAL "macosx-arm64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-aarch64.zip" FILENAME "slang-${VERSION}-macos-aarch64.zip" SHA512 6686b18ce91c602695f4c106af6bb879022e2db5981d271f2dd6beeb3116145c3b303f6e282f91b1ca464660d972c0faf2cacdc04944cd3e7ac28b676cf35a57 ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-macos-aarch64-debug-info.zip" FILENAME "slang-${VERSION}-macos-aarch64-debug-info.zip" SHA512 11ac6656ee67db27daf1f9df5ff7a42e85bb6df96d0a0be73d4ebb773e84d1651897f0af02b9df624219a50d2e70ece6e533eae568ca76fa31e1e84ec0519a2f ) endif() if(key STREQUAL "linux-x64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-x86_64.zip" FILENAME "slang-${VERSION}-linux-x86_64.zip" SHA512 ef207aaf686e3cc787a922d78f0db662d22fdc955ea60762bd9bca2aebd5792945d238548729e0557a2d94e2179bc8455cc749412634928e06f39c6c7bd31b68 ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-x86_64-debug-info.zip" FILENAME "slang-${VERSION}-linux-x86_64-debug-info.zip" SHA512 b732de40679f1360b77cc5a4b53d6dbd21876e4867e7009f8ba49887a30c49db9724582b81784e1d1344276ab56a751e1bdefdf9bc37beac5915fa3a7a0f63af ) endif() if(key STREQUAL "linux-arm64" OR VCPKG_SHADER_SLANG_UPDATE) vcpkg_download_distfile( ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-aarch64.zip" FILENAME "slang-${VERSION}-linux-aarch64.zip" SHA512 304b0ff00179d22da6a01fff530f32c93e387aa434e155eeae4c16feae82dca5c0090d8e1bbf140face2d0e8a72b36dab54ea9cfbc67223535f1396bd5b24374 ) vcpkg_download_distfile( DEBUG_INFO_ARCHIVE URLS "https://github.com/shader-slang/slang/releases/download/v${VERSION}/slang-${VERSION}-linux-aarch64-debug-info.zip" FILENAME "slang-${VERSION}-linux-aarch64-debug-info.zip" SHA512 18e08225f383c67ed8f7a39b3693ab1fe335ba84fec886e3d9c3702908470549d3f0f2b525e031a3e316df7281c1fefc267bce7a4f1bf4dcff244305a929cb89 ) endif() if(NOT ARCHIVE) message(FATAL_ERROR "Unsupported platform. Please implement me!") endif() vcpkg_extract_source_archive( BINDIST_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) if(DEBUG_INFO_ARCHIVE) vcpkg_extract_source_archive( DEBUG_INFO_PATH ARCHIVE "${DEBUG_INFO_ARCHIVE}" NO_REMOVE_ONE_LEVEL ) endif() if(VCPKG_SHADER_SLANG_UPDATE) message(STATUS "All downloads are up-to-date.") message(FATAL_ERROR "Stopping due to VCPKG_SHADER_SLANG_UPDATE being enabled.") endif() file(GLOB libs "${BINDIST_PATH}/lib/*.lib" "${BINDIST_PATH}/lib/*.dylib" "${BINDIST_PATH}/lib/*.so" "${BINDIST_PATH}/lib/*.so.0.${VERSION}" # On linux, some of the .so files are postfixed by the version. ) file(INSTALL ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(GLOB dyn_libs "${BINDIST_PATH}/lib/*.dylib" "${BINDIST_PATH}/lib/*.so" ) if(VCPKG_TARGET_IS_WINDOWS) file(GLOB dlls "${BINDIST_PATH}/bin/*.dll") list(APPEND dyn_libs ${dlls}) file(INSTALL ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") # In windows, the debug symbols are on the root directory of the debug archive if(DEBUG_INFO_PATH) file(GLOB pdb_files "${DEBUG_INFO_PATH}/*.pdb") if(pdb_files) file(INSTALL ${pdb_files} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() endif() endif() # In other platfroms, the debug symbols are structured under lib. # There are also debug symbols for the tools under bin but we ignore these if(NOT VCPKG_TARGET_IS_WINDOWS AND DEBUG_INFO_PATH) file(GLOB debug_sym_libs "${DEBUG_INFO_PATH}/lib/*") if(debug_sym_libs) file(INSTALL ${debug_sym_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() endif() if(NOT VCPKG_BUILD_TYPE) file(INSTALL "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") if(VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") endif() endif() # On macos, slang has signed their binaries # vcpkg wants to be helpful and update the rpath as it moves binaries around but this # breaks the code signature and makes the binaries useless # Removing the signature is rude so instead we will disable rpath fixup if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() # Must manually copy some tool dependencies since vcpkg can't copy them automagically for us file(INSTALL ${dyn_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/shader-slang") vcpkg_copy_tools(TOOL_NAMES slangc slangd slangi SEARCH_DIR "${BINDIST_PATH}/bin") file(GLOB headers "${BINDIST_PATH}/include/*.h") file(INSTALL ${headers} DESTINATION "${CURRENT_PACKAGES_DIR}/include") block(SCOPE_FOR VARIABLES) set(VCPKG_BUILD_TYPE Release) # no debug binaries anyways if (VCPKG_TARGET_IS_WINDOWS) file(COPY "${BINDIST_PATH}/cmake" DESTINATION "${CURRENT_PACKAGES_DIR}") vcpkg_cmake_config_fixup(CONFIG_PATH cmake PACKAGE_NAME slang) else() file(COPY "${BINDIST_PATH}/lib/cmake/slang" DESTINATION "${CURRENT_PACKAGES_DIR}") vcpkg_cmake_config_fixup(CONFIG_PATH slang PACKAGE_NAME slang) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/slang/slangConfig.cmake" [[HINTS "${PACKAGE_PREFIX_DIR}/bin" ENV PATH]] [[PATHS "${PACKAGE_PREFIX_DIR}/tools/shader-slang" NO_DEFAULT_PATH REQUIRED]] ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/slang/slangConfigVersion.cmake" [[if("${CMAKE_SIZEOF_VOID_P}" STREQUAL ""]] [[if(#[=[ host tool ]=] "TRUE"]] ) endblock() vcpkg_install_copyright( FILE_LIST "${BINDIST_PATH}/LICENSE" COMMENT #[[ from README ]] [[ The Slang code itself is under the Apache 2.0 with LLVM Exception license. Builds of the core Slang tools depend on the following projects, either automatically or optionally, which may have their own licenses: * [`glslang`](https://github.com/KhronosGroup/glslang) (BSD) * [`lz4`](https://github.com/lz4/lz4) (BSD) * [`miniz`](https://github.com/richgel999/miniz) (MIT) * [`spirv-headers`](https://github.com/KhronosGroup/SPIRV-Headers) (Modified MIT) * [`spirv-tools`](https://github.com/KhronosGroup/SPIRV-Tools) (Apache 2.0) * [`ankerl::unordered_dense::{map, set}`](https://github.com/martinus/unordered_dense) (MIT) Slang releases may include [slang-llvm](https://github.com/shader-slang/slang-llvm) which includes [LLVM](https://github.com/llvm/llvm-project) under the license: * [`llvm`](https://llvm.org/docs/DeveloperPolicy.html#new-llvm-project-license-framework) (Apache 2.0 License with LLVM exceptions) ]]) ================================================ FILE: ports/shader-slang/vcpkg.json ================================================ { "name": "shader-slang", "version": "2026.2", "description": "Slang is a shading language that makes it easier to build and maintain large shader codebases in a modular and extensible fashion, while also maintaining the highest possible performance on modern GPUs and graphics APIs. Slang is based on years of collaboration between researchers at NVIDIA, Carnegie Mellon University, and Stanford.", "homepage": "https://github.com/shader-slang/slang", "license": null, "supports": "(arm64 | x64) & (linux | osx | windows) & !uwp & !(static & staticcrt)", "dependencies": [ { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/shaderc/build-version.inc ================================================ "shaderc @VERSION@ @VERSION@\n" ================================================ FILE: ports/shaderc/cmake-config-export.patch ================================================ diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt index e0eea6c..b54ace4 100644 --- a/libshaderc/CMakeLists.txt +++ b/libshaderc/CMakeLists.txt @@ -28,7 +28,9 @@ if (NOT BUILD_SHARED_LIBS) add_library(shaderc STATIC ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc) target_include_directories(shaderc - PUBLIC include + PUBLIC + $ + $ PRIVATE ${glslang_SOURCE_DIR} ${SPIRV-Headers_SOURCE_DIR}/include) set(shaderc_install_target shaderc) @@ -37,7 +39,9 @@ else() add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc_shared) target_include_directories(shaderc_shared - PUBLIC include + PUBLIC + $ + $ PRIVATE ${glslang_SOURCE_DIR} ${SPIRV-Headers_SOURCE_DIR}/include) target_compile_definitions(shaderc_shared @@ -60,10 +64,15 @@ if(SHADERC_ENABLE_INSTALL) ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) install(TARGETS ${shaderc_install_target} shaderc_util + EXPORT unofficial-shaderc-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT unofficial-shaderc-targets + NAMESPACE unofficial::shaderc:: + DESTINATION share/unofficial-shaderc + ) endif(SHADERC_ENABLE_INSTALL) find_package(Threads) @@ -80,6 +89,15 @@ else() target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS}) endif() +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-shaderc-config.cmake" [[ +include(CMakeFindDependencyMacro) +find_dependency(glslang CONFIG) +find_dependency(SPIRV-Tools CONFIG) +find_dependency(SPIRV-Tools-opt CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-shaderc-targets.cmake") +]]) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-shaderc-config.cmake DESTINATION share/unofficial-shaderc) + shaderc_add_tests( TEST_PREFIX shaderc LINK_LIBS shaderc diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt index 99ce3c4..3d5a222 100644 --- a/libshaderc_util/CMakeLists.txt +++ b/libshaderc_util/CMakeLists.txt @@ -39,7 +39,7 @@ add_library(shaderc_util STATIC shaderc_default_compile_options(shaderc_util) target_include_directories(shaderc_util - PUBLIC include PRIVATE ${glslang_SOURCE_DIR}) + PUBLIC $ PRIVATE ${glslang_SOURCE_DIR}) # We use parts of Glslang's HLSL compilation interface, which # now requires this preprocessor definition. add_definitions(-DENABLE_HLSL) ================================================ FILE: ports/shaderc/cmake-project-include.cmake ================================================ set(SHADERC_GLSLANG_DIR "" CACHE STRING "unused") if (NOT TARGET glslang) find_package(glslang CONFIG REQUIRED) add_library(glslang ALIAS glslang::glslang) add_library(MachineIndependent ALIAS glslang::MachineIndependent) add_library(OSDependent ALIAS glslang::OSDependent) add_library(SPIRV ALIAS glslang::SPIRV) endif() find_path(glslang_SOURCE_DIR glslang/Public/ShaderLang.h REQUIRED) set(glslang_SOURCE_DIR "${glslang_SOURCE_DIR}/glslang" "${glslang_SOURCE_DIR}" CACHE STRING "" FORCE) set(SHADERC_SPIRV_TOOLS_DIR "" CACHE STRING "unused") if (NOT TARGET SPIRV-Tools) find_package(SPIRV-Tools CONFIG REQUIRED) add_library(SPIRV-Tools ALIAS SPIRV-Tools-static) # as linked by SPIRV-Tools-opt find_package(SPIRV-Tools-opt CONFIG REQUIRED) endif() ================================================ FILE: ports/shaderc/disable-update-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 06f5395..ae3d1e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,12 +139,6 @@ if(${SHADERC_ENABLE_EXAMPLES}) add_subdirectory(examples) endif() -add_custom_target(build-version - ${Python_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py - ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc - COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") - function(define_pkg_config_file NAME LIBS) add_custom_target(${NAME}-pkg-config ALL COMMAND ${CMAKE_COMMAND} diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt index 44d5576..e69011f 100644 --- a/glslc/CMakeLists.txt +++ b/glslc/CMakeLists.txt @@ -54,7 +54,6 @@ if(SHADERC_ENABLE_EXECUTABLES) target_include_directories(glslc_exe PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/.. ${spirv-tools_SOURCE_DIR}/include) set_target_properties(glslc_exe PROPERTIES OUTPUT_NAME glslc) target_link_libraries(glslc_exe PRIVATE glslc shaderc_util shaderc) - add_dependencies(glslc_exe build-version) endif(SHADERC_ENABLE_EXECUTABLES) shaderc_add_tests( ================================================ FILE: ports/shaderc/fix-build-type.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b2e92ef..cf0832b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,6 +152,17 @@ function(define_pkg_config_file NAME LIBS) endif() endfunction() +if(BUILD_SHARED_LIBS) define_pkg_config_file(shaderc -lshaderc_shared) +else() +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND EXTRA_STATIC_PKGCONFIG_LIBS " ${lib}") + else() + string(APPEND EXTRA_STATIC_PKGCONFIG_LIBS " -l${lib}") + endif() +endforeach() +define_pkg_config_file(shaderc "-lshaderc ${EXTRA_STATIC_PKGCONFIG_LIBS} -lshaderc_util") -define_pkg_config_file(shaderc_static "-lshaderc ${EXTRA_STATIC_PKGCONFIG_LIBS} -lshaderc_util") -define_pkg_config_file(shaderc_combined -lshaderc_combined) +endif() diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt index 2cced9e..e0eea6c 100644 --- a/libshaderc/CMakeLists.txt +++ b/libshaderc/CMakeLists.txt @@ -24,13 +24,16 @@ set(SHADERC_SOURCES src/shaderc_private.h ) +if (NOT BUILD_SHARED_LIBS) add_library(shaderc STATIC ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc) target_include_directories(shaderc PUBLIC include PRIVATE ${glslang_SOURCE_DIR} ${SPIRV-Headers_SOURCE_DIR}/include) +set(shaderc_install_target shaderc) +else() add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc_shared) target_include_directories(shaderc_shared @@ -42,6 +45,8 @@ target_compile_definitions(shaderc_shared PUBLIC SHADERC_SHAREDLIB ) set_target_properties(shaderc_shared PROPERTIES SOVERSION 1) +set(shaderc_install_target shaderc_shared) +endif() if(SHADERC_ENABLE_INSTALL) install( @@ -54,7 +59,7 @@ if(SHADERC_ENABLE_INSTALL) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) - install(TARGETS shaderc shaderc_shared + install(TARGETS ${shaderc_install_target} shaderc_util LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} @@ -69,8 +74,11 @@ set(SHADERC_LIBS SPIRV-Tools ) +if(NOT BUILD_SHARED_LIBS) target_link_libraries(shaderc PRIVATE ${SHADERC_LIBS}) +else() target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS}) +endif() shaderc_add_tests( TEST_PREFIX shaderc @@ -94,6 +102,7 @@ shaderc_add_tests( shaderc_cpp shaderc_private) +if(0) shaderc_combine_static_lib(shaderc_combined shaderc) if(SHADERC_ENABLE_INSTALL) @@ -122,6 +131,7 @@ shaderc_add_tests( TEST_NAMES shaderc shaderc_cpp) +endif() if(${SHADERC_ENABLE_TESTS}) add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c) ================================================ FILE: ports/shaderc/portfile.cmake ================================================ #Note: glslang and spir tools doesn't export symbol and need to be build as static lib for cmake to work vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/shaderc REF "v${VERSION}" SHA512 b8758884d5cd67f5536f30838295e618544df38e3ca3e2b1379757bc57464d333c3263c5fd19e5b4a735284fde7c3d4de9075a414691b2e86ba069bcff2cd616 HEAD_REF master PATCHES disable-update-version.patch fix-build-type.patch cmake-config-export.patch ) configure_file(${CMAKE_CURRENT_LIST_DIR}/build-version.inc ${SOURCE_PATH}/glslc/src/build-version.inc) set(OPTIONS "") if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS -DSHADERC_ENABLE_SHARED_CRT=ON) endif() # shaderc uses python to manipulate copyright information vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH "${PYTHON3}" DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") # Add these libraries to the pkgconfig file since we patch the build to link against these set(EXTRA_STATIC_PKGCONFIG_LIBS "-lglslang -lSPIRV-Tools-opt -lSPIRV-Tools") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DSHADERC_ENABLE_EXAMPLES=OFF -DSHADERC_SKIP_TESTS=true "-DEXTRA_STATIC_PKGCONFIG_LIBS=${EXTRA_STATIC_PKGCONFIG_LIBS}" ) vcpkg_cmake_install() if(NOT VCPKG_BUILD_TYPE) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/shaderc.pc" "-lglslang" "-lglslangd") endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/shaderc.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-shaderc CONFIG_PATH share/unofficial-shaderc) vcpkg_copy_tools(TOOL_NAMES glslc AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/shaderc/usage ================================================ shaderc provides CMake targets: find_package(unofficial-shaderc CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::shaderc::shaderc) ================================================ FILE: ports/shaderc/vcpkg.json ================================================ { "name": "shaderc", "version": "2026.1", "description": "A collection of tools, libraries and tests for shader compilation.", "homepage": "https://github.com/google/shaderc", "license": "Apache-2.0", "dependencies": [ "glslang", "spirv-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/shaderwriter/fix-template.diff ================================================ diff --git a/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp b/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp index 39bdee2..26a1e74 100644 --- a/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp +++ b/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp @@ -61,7 +61,7 @@ namespace sdw { static_assert( hasFieldByName< FieldNameT >() ); using FieldT = decltype( getFieldByName< FieldNameT >() ); - return FieldT::template get( *this ); + return FieldT::get( *this ); } static type::BaseStructPtr makeType( type::TypesCache & cache ) ================================================ FILE: ports/shaderwriter/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO DragonJoker/ShaderWriter REF v${VERSION} SHA512 72b197f1185e3cee507fb1a5152709ee4c99317db61484d2427d96ae8426a127cd1cb234553be55616709f6f04bed6aec88fa4dfea48219ac1c5b36d9b349a2a HEAD_REF development PATCHES fix-template.diff # https://github.com/DragonJoker/ShaderWriter/pull/280 ) vcpkg_from_github(OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO DragonJoker/CMakeUtils REF d66b1c5e964368e036fbfd70a22e84077a7de236 HEAD_REF master SHA512 040c6886675894b4bdb89e9ef5f9f24b669c5644aec88082d06429cb0d47bb041e72517921518b85e02f124058db6182f57e74568d08b1b2316b1992b01f1a3a ) file(REMOVE_RECURSE "${SOURCE_PATH}/CMake") file(COPY "${CMAKE_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/CMake") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES spirv SDW_BUILD_EXPORTER_SPIRV glsl SDW_BUILD_EXPORTER_HLSL hlsl SDW_BUILD_EXPORTER_GLSL ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPROJECTS_USE_PRECOMPILED_HEADERS=OFF -DSDW_GENERATE_SOURCE=OFF -DSDW_BUILD_VULKAN_LAYER=OFF -DSDW_BUILD_TESTS=OFF -DSDW_BUILD_STATIC_SDW=${BUILD_STATIC} -DSDW_BUILD_STATIC_SDAST=${BUILD_STATIC} -DSDW_UNITY_BUILD=ON ${FEATURE_OPTIONS} ) vcpkg_copy_pdbs() vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ShaderWriter CONFIG_PATH lib/cmake/shaderwriter) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/shaderwriter/vcpkg.json ================================================ { "name": "shaderwriter", "version": "2.9.0", "port-version": 1, "description": "Library to write shaders directly from C++ code, supports GLSL, HLSL and SPIRV outputs.", "homepage": "https://github.com/DragonJoker/ShaderWriter", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "spirv" ], "features": { "glsl": { "description": "Compiles GLSL exporter." }, "hlsl": { "description": "Compiles HLSL exporter." }, "spirv": { "description": "Compiles SPIR-V exporter." } } } ================================================ FILE: ports/shapelib/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "http://download.osgeo.org/shapelib/shapelib-${VERSION}.zip" FILENAME "shapelib-${VERSION}.zip" SHA512 ab3ad775b7f520bc82777c589326e81d5ed94c0661e4573fc3f5095073cb4705a634b07b93295439cf2a107240fb7613c99d32fce5f613f360a9e51c9547cd83 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES contrib BUILD_SHAPELIB_CONTRIB tools BUILD_APPS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DBUILD_TESTING=OFF -DUSE_RPATH=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(BUILD_APPS) vcpkg_copy_tools( TOOL_NAMES dbfadd dbfcreate dbfdump shpadd shpcreate shpdump shprewind shptreedump AUTO_CLEAN ) endif() if(BUILD_SHAPELIB_CONTRIB) vcpkg_copy_tools( TOOL_NAMES csv2shp dbfcat dbfinfo Shape_PointInPoly shpcat shpcentrd shpdata shpdxf shpfix shpinfo shpsort shpwkb AUTO_CLEAN ) endif() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE-LGPL" "${SOURCE_PATH}/LICENSE-MIT" # Cf. web/license.html COMMENT [[ The core portions of the library are made available under two possible licenses. The licensee can choose to use the code under either the Library GNU Public License described in LICENSE-LGPL or under the MIT license described in LICENSE-MIT. Some auxiliary portions of Shapelib, notably some of the components in the contrib directory come under slightly different license restrictions. Check the source files that you are actually using for conditions. ]]) ================================================ FILE: ports/shapelib/vcpkg.json ================================================ { "name": "shapelib", "version": "1.6.3", "description": "Shapefile C Library is simple C API for reading and writing ESRI Shapefiles", "homepage": "https://download.osgeo.org/shapelib", "license": "MIT OR LGPL-2.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "contrib": { "description": "Build utilities from contrib", "license": null }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/shared-mime-info/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_gitlab( OUT_SOURCE_PATH SOURCE_PATH GITLAB_URL "https://gitlab.freedesktop.org" REPO "xdg/shared-mime-info" REF "${VERSION}" SHA512 "17b443c2c09a432d09e4c83db956f8c0c3a768cfa9ffb8c87cd2d7c9002b95d010094e2bc64dd35946205a0f8b2d87c4f8f0a1faec86443e2edd502aa8f7cc8f" ) set(VCPKG_BUILD_TYPE release) # only data vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/libxml2") # msgfmt can't deal with drive letters on Windows, so we need to use a relative data dir file(RELATIVE_PATH GETTEXTDATADIRREL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}" "${SOURCE_PATH}/data") set(ENV{GETTEXTDATADIR} "${GETTEXTDATADIRREL}") vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dupdate-mimedb=false -Dbuild-tools=false -Dbuild-translations=false -Dbuild-tests=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/shared-mime-info/vcpkg.json ================================================ { "name": "shared-mime-info", "version": "2.4", "description": "Shared MIME information from Freedesktop.org", "homepage": "https://gitlab.freedesktop.org/xdg/shared-mime-info", "license": "GPL-2.0-or-later", "dependencies": [ { "name": "gettext", "host": true, "features": [ "tools" ] }, { "name": "libxml2", "host": true, "features": [ "tools" ] }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/sheenbidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tehreer/SheenBidi REF "v${VERSION}" SHA512 67c8ef7bea9fc677fbb83601403b40bcc274842597df53a699fd5758f4f170ac5d1fc9a719d590da25f6a72769fe59a2a1cf57e54f0ef6859561bfb77c0c72c4 ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "text-api" SB_CONFIG_EXPERIMENTAL_TEXT_API ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSB_CONFIG_UNITY=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SheenBidi) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sheenbidi/vcpkg.json ================================================ { "name": "sheenbidi", "version": "3.0.0", "description": "SheenBidi is a lightweight, fast and stable implementation of the Unicode Bidirectional Algorithm.", "homepage": "https://github.com/Tehreer/SheenBidi", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "text-api": { "description": "Enable the experimental text editing and analysis API" } } } ================================================ FILE: ports/shiftmedia-libgcrypt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ShiftMediaProject/libgcrypt REF libgcrypt-${VERSION} SHA512 957f2138d174cd39b3809aabbc6873292c56e596892a2273a77301038473cbcd4c69aa5d3d0ebb98a34cf3a2c30ac3212af16b34a304f81d72f11df18c3601f9 HEAD_REF master ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(CONFIGURATION_RELEASE ReleaseDLL) set(CONFIGURATION_DEBUG DebugDLL) else() set(CONFIGURATION_RELEASE Release) set(CONFIGURATION_DEBUG Debug) endif() if(VCPKG_TARGET_IS_UWP) string(APPEND CONFIGURATION_RELEASE WinRT) string(APPEND CONFIGURATION_DEBUG WinRT) endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") set(RuntimeLibraryExt "") else() set(RuntimeLibraryExt "DLL") endif() # patch output library file path and name; inject RuntimeLibrary property to control CRT linkage foreach(PROPS IN ITEMS "${SOURCE_PATH}/SMP/smp_deps.props" "${SOURCE_PATH}/SMP/smp_winrt_deps.props") vcpkg_replace_string( "${PROPS}" [=[_winrt]=] [=[]=] IGNORE_UNCHANGED ) vcpkg_replace_string( "${PROPS}" [=[lib$(RootNamespace)]=] [=[$(RootNamespace)]=] ) vcpkg_replace_string( "${PROPS}" [=[]=] [=[$(RuntimeLibrary)]=] ) endforeach() # patch gpg-error library file name foreach(VCXPROJ IN ITEMS "${SOURCE_PATH}/SMP/libgcrypt.vcxproj" "${SOURCE_PATH}/SMP/libgcrypt_winrt.vcxproj" ) vcpkg_replace_string( "${VCXPROJ}" "_winrt.lib" ".lib" IGNORE_UNCHANGED ) vcpkg_replace_string( "${VCXPROJ}" "libgpg-error" "gpg-error" ) endforeach() vcpkg_install_msbuild( USE_VCPKG_INTEGRATION SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH SMP/libgcrypt.sln PLATFORM ${TRIPLET_SYSTEM_ARCH} LICENSE_SUBPATH COPYING.LIB RELEASE_CONFIGURATION ${CONFIGURATION_RELEASE} DEBUG_CONFIGURATION ${CONFIGURATION_DEBUG} SKIP_CLEAN OPTIONS /p:OutDir=..\\msvc OPTIONS_DEBUG "/p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt}" OPTIONS_RELEASE "/p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt}" ) get_filename_component(SOURCE_PATH_SUFFIX "${SOURCE_PATH}" NAME) if(VCPKG_TARGET_IS_UWP) set(WINRT_SUBFOLDER libgcrypt_winrt) endif() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${SOURCE_PATH_SUFFIX}/msvc/${WINRT_SUBFOLDER}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") string(REGEX REPLACE "-.*" "" PACKAGE_VERSION "${VERSION}") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") set(LIBGCRYPT_CONFIG_LIBS "-lgcrypt") configure_file("${SOURCE_PATH}/src/libgcrypt.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libgcrypt.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) set(includedir "\${prefix}/../include") set(LIBGCRYPT_CONFIG_LIBS "-lgcryptd") configure_file("${SOURCE_PATH}/src/libgcrypt.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libgcrypt.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/src/libgcrypt.m4" DESTINATION "${CURRENT_PACKAGES_DIR}/share/libgcrypt/aclocal/") file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/COPYING.LIB" "${CURRENT_PACKAGES_DIR}/debug/lib/COPYING.LIB") vcpkg_install_copyright(COMMENT [[ The library is distributed under the terms of the GNU Lesser General Public License (LGPL). There are additonal notices about contributions that require these additional notices are distributed. ]] FILE_LIST "${SOURCE_PATH}/COPYING.LIB" "${SOURCE_PATH}/LICENSES" ) ================================================ FILE: ports/shiftmedia-libgcrypt/vcpkg.json ================================================ { "name": "shiftmedia-libgcrypt", "version": "1.10.3-1", "port-version": 1, "description": "An unofficial LibGCrypt with added custom native Visual Studio project build tools. LibGCrypt", "homepage": "https://github.com/ShiftMediaProject/libgcrypt", "license": "LGPL-2.1-only", "supports": "windows & !mingw", "dependencies": [ "shiftmedia-libgpg-error" ] } ================================================ FILE: ports/shiftmedia-libgnutls/external-libtasn1.patch ================================================ diff --git a/SMP/libgnutls.vcxproj.filters b/SMP/libgnutls.vcxproj.filters index ef202f4ac..a397e1574 100644 --- a/SMP/libgnutls.vcxproj.filters +++ b/SMP/libgnutls.vcxproj.filters @@ -103,9 +103,6 @@ {ae0c3eeb-53df-4c72-a85a-6b46de35e7ba} - - {32be60b7-8c65-486e-9df5-7e529443cf07} - {1f3549a8-3c3d-475f-8fd6-20451d336464} @@ -1535,30 +1532,6 @@ Source Files\lib\nettle - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - Source Files\lib\nettle\gost diff --git a/SMP/libgnutls_files.props b/SMP/libgnutls_files.props index 55049b70b..2bb76e3b0 100644 --- a/SMP/libgnutls_files.props +++ b/SMP/libgnutls_files.props @@ -175,13 +175,6 @@ - - - - - - - @@ -545,9 +538,6 @@ REPLACE_PRINTF_POSIX=1;REPLACE_FPRINTF_POSIX=1;REPLACE_VPRINTF_POSIX=1;REPLACE_VFPRINTF_POSIX=1;%(PreprocessorDefinitions) - - - $(IntDir)\tasn1_$(filename).obj $(IntDir)\alg_%(Filename).obj diff --git a/SMP/libgnutls_winrt.vcxproj.filters b/SMP/libgnutls_winrt.vcxproj.filters index f6a355e7e..299749c2a 100644 --- a/SMP/libgnutls_winrt.vcxproj.filters +++ b/SMP/libgnutls_winrt.vcxproj.filters @@ -103,9 +103,6 @@ {ae0c3eeb-53df-4c72-a85a-6b46de35e7ba} - - {32be60b7-8c65-486e-9df5-7e529443cf07} - {4fada990-3138-4089-a6c7-ae722a0e7fe9} @@ -1535,30 +1532,6 @@ Source Files\lib\nettle - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - - - Source Files\libtasn1 - Source Files\lib\accelerated ================================================ FILE: ports/shiftmedia-libgnutls/pkgconfig.patch ================================================ diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in index 7cdedda5..11785bcd 100644 --- a/lib/gnutls.pc.in +++ b/lib/gnutls.pc.in @@ -18,7 +18,7 @@ Name: GnuTLS Description: Transport Security Layer implementation for the GNU system URL: https://www.gnutls.org/ Version: @VERSION@ -Libs: -L${libdir} -lgnutls +Libs: -L${libdir} @GNUTLS_LIBS@ Libs.private: @LIBZ_PC@ @LIBINTL@ @LIBSOCKET@ @INET_PTON_LIB@ @LIBPTHREAD@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ @LIBUNISTRING@ @LIBATOMIC_LIBS@ @GNUTLS_LIBS_PRIVATE@ @GNUTLS_REQUIRES_PRIVATE@ Cflags: -I${includedir} ================================================ FILE: ports/shiftmedia-libgnutls/portfile.cmake ================================================ set(GNULIB_REF "3639c57") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ShiftMediaProject/gnutls REF ${VERSION} SHA512 db318ee923d0810484e98342cc395624efc52b7227020fc14b9fa9ae63e4b8bf254cfd90470e051cd992fb167fb839fff340430a223bcc50d1422f1738a5b599 HEAD_REF master PATCHES external-libtasn1.patch pkgconfig.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/devel/perlasm") vcpkg_download_distfile( GNULIB_SNAPSHOT URLS "https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=snapshot;h=${GNULIB_REF};sf=tgz" FILENAME "gnulib-${GNULIB_REF}.tar.gz" SHA512 bc99be736d2907049d498f44d8f24db4beb2b3645459451b595087b9406ac1eebe4cbb4f2ef65df9e65823e01db4b4800b75eb9537236797fe1edcc65418c520 ) vcpkg_extract_source_archive( GNULIB_SOURCE_PATH ARCHIVE "${GNULIB_SNAPSHOT}" SOURCE_BASE ${GNULIB_REF} ) file(REMOVE_RECURSE "${SOURCE_PATH}/gnulib") file(RENAME "${GNULIB_SOURCE_PATH}" "${SOURCE_PATH}/gnulib") include("${CURRENT_HOST_INSTALLED_DIR}/share/yasm-tool-helper/yasm-tool-helper.cmake") yasm_tool_helper(OUT_VAR YASM) file(TO_NATIVE_PATH "${YASM}" YASM) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(CONFIGURATION_RELEASE ReleaseDLL) set(CONFIGURATION_DEBUG DebugDLL) else() set(CONFIGURATION_RELEASE Release) set(CONFIGURATION_DEBUG Debug) endif() if(VCPKG_TARGET_IS_UWP) string(APPEND CONFIGURATION_RELEASE WinRT) string(APPEND CONFIGURATION_DEBUG WinRT) endif() set(_gnutlsproject "${SOURCE_PATH}/SMP/libgnutls.vcxproj") file(READ "${_gnutlsproject}" _contents) string(REPLACE [[]] "" _contents "${_contents}") string(REPLACE [[]] "" _contents "${_contents}") string(REGEX REPLACE "${VCPKG_ROOT_DIR}/installed/[^/]+/share" "${CURRENT_HOST_INSTALLED_DIR}/share" _contents "${_contents}") # Above already file(WRITE "${_gnutlsproject}" "${_contents}") if(VCPKG_CRT_LINKAGE STREQUAL "static") set(RuntimeLibraryExt "") else() set(RuntimeLibraryExt "DLL") endif() # patch output library file path and name foreach(PROPS IN ITEMS "${SOURCE_PATH}/SMP/smp_deps.props" "${SOURCE_PATH}/SMP/smp_winrt_deps.props") vcpkg_replace_string( "${PROPS}" [=[_winrt]=] [=[]=] IGNORE_UNCHANGED ) vcpkg_replace_string( "${PROPS}" [=[lib$(RootNamespace)]=] [=[$(RootNamespace)]=] ) endforeach() # patch hogweed, gpm, nettle, zlib libraries file names; inject RuntimeLibrary property to control CRT linkage foreach(VCXPROJ IN ITEMS "${SOURCE_PATH}/SMP/libgnutls.vcxproj" "${SOURCE_PATH}/SMP/libgnutls_winrt.vcxproj") vcpkg_replace_string( "${VCXPROJ}" "_winrt.lib" ".lib" IGNORE_UNCHANGED ) vcpkg_replace_string( "${VCXPROJ}" "libhogweed" "hogweed" ) vcpkg_replace_string( "${VCXPROJ}" "hogweedd" "hogweed" ) vcpkg_replace_string( "${VCXPROJ}" "libgmp" "gmp" ) vcpkg_replace_string( "${VCXPROJ}" "gmpd" "gmp" ) vcpkg_replace_string( "${VCXPROJ}" "libnettle" "nettle" ) vcpkg_replace_string( "${VCXPROJ}" "nettled" "nettle" ) vcpkg_replace_string( "${VCXPROJ}" "libzlib" "zlib" ) vcpkg_replace_string( "${VCXPROJ}" [=[]=] [=[$(RuntimeLibrary)]=] ) endforeach() vcpkg_install_msbuild( USE_VCPKG_INTEGRATION SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH SMP/libgnutls.sln PLATFORM ${TRIPLET_SYSTEM_ARCH} LICENSE_SUBPATH LICENSE RELEASE_CONFIGURATION ${CONFIGURATION_RELEASE} DEBUG_CONFIGURATION ${CONFIGURATION_DEBUG} SKIP_CLEAN OPTIONS /p:YasmPath="${YASM}" /p:OutDir=..\\msvc OPTIONS_DEBUG /p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt} OPTIONS_RELEASE /p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt} ) get_filename_component(SOURCE_PATH_SUFFIX "${SOURCE_PATH}" NAME) if(VCPKG_TARGET_IS_UWP) set(WINRT_SUBFOLDER libgnutls_winrt) endif() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${SOURCE_PATH_SUFFIX}/msvc/${WINRT_SUBFOLDER}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") set(GNUTLS_REQUIRES_PRIVATE "Requires.private: gmp, nettle, hogweed, libtasn1") set(GNUTLS_LIBS_PRIVATE "-lcrypt32 -lws2_32 -lkernel32 -lncrypt") set(prefix "${CURRENT_INSTALLED_DIR}") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") set(GNUTLS_LIBS "-lgnutls") configure_file("${SOURCE_PATH}/lib/gnutls.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gnutls.pc" @ONLY) if(NOT VCPKG_BUILD_TYPE) set(prefix "${CURRENT_INSTALLED_DIR}/debug") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/../include") set(GNUTLS_LIBS "-lgnutlsd") configure_file("${SOURCE_PATH}/lib/gnutls.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gnutls.pc" @ONLY) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(COPY "${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gnutls") ================================================ FILE: ports/shiftmedia-libgnutls/vcpkg-cmake-wrapper.cmake ================================================ find_library(GNUTLS_LIBRARY NAMES gnutls gnutlsd NAMES_PER_DIR) _find_package(${ARGS}) ================================================ FILE: ports/shiftmedia-libgnutls/vcpkg.json ================================================ { "name": "shiftmedia-libgnutls", "version": "3.8.7", "port-version": 2, "description": "Unofficial GnuTLS fork with added custom native Visual Studio project build tools. ", "homepage": "https://github.com/ShiftMediaProject/gnutls", "license": "LGPL-2.1-only", "supports": "windows & !arm & !mingw & !xbox", "dependencies": [ "gettext", "gmp", "libtasn1", "nettle", { "name": "vs-yasm", "host": true }, { "name": "yasm-tool-helper", "host": true }, "zlib" ] } ================================================ FILE: ports/shiftmedia-libgpg-error/TargetPlatformMinVersion.patch ================================================ diff --git a/SMP/libgpg-error_winrt.vcxproj b/SMP/llibgpg-error_winrt.vcxproj index e1acf679..f9c302be 100644 --- a/SMP/libgpg-error_winrt.vcxproj +++ b/SMP/libgpg-error_winrt.vcxproj @@ -3,6 +3,7 @@ {AA4A762D-A8D7-4F68-9B79-FBE63C6BE105} gpg-error + 10.0.17200.0 ================================================ FILE: ports/shiftmedia-libgpg-error/outdir.patch ================================================ diff --git a/SMP/smp.props b/SMP/smp.props index e2ed214..fc70bd8 100644 --- a/SMP/smp.props +++ b/SMP/smp.props @@ -87,7 +87,7 @@ lib$(RootNamespace)d - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -95,7 +95,7 @@ lib$(RootNamespace)d - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -103,7 +103,7 @@ $(RootNamespace)d - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -111,7 +111,7 @@ $(RootNamespace)d - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -119,7 +119,7 @@ lib$(RootNamespace) - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -127,7 +127,7 @@ lib$(RootNamespace) - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -135,7 +135,7 @@ $(RootNamespace) - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -143,7 +143,7 @@ $(RootNamespace) - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean diff --git a/SMP/smp_winrt.props b/SMP/smp_winrt.props index 9b453a5..cb5f090 100644 --- a/SMP/smp_winrt.props +++ b/SMP/smp_winrt.props @@ -98,7 +98,7 @@ lib$(RootNamespace)d_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -106,7 +106,7 @@ lib$(RootNamespace)d_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -114,7 +114,7 @@ $(RootNamespace)d_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -122,7 +122,7 @@ $(RootNamespace)d_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -130,7 +130,7 @@ lib$(RootNamespace)_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -138,7 +138,7 @@ lib$(RootNamespace)_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -146,7 +146,7 @@ $(RootNamespace)_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean @@ -154,7 +154,7 @@ $(RootNamespace)_winrt - $(ProjectDir)..\..\..\msvc\ + $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated Clean ================================================ FILE: ports/shiftmedia-libgpg-error/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ShiftMediaProject/libgpg-error REF "libgpg-error-${VERSION}" SHA512 779983bd0aac1f281bf357d0218e9626a5c72c3391513eef8a56148f08966f3cc75495e97f410ea7156d40be16977b5c64748c66626ae6d877e2a6c28dc822a2 HEAD_REF master PATCHES outdir.patch runtime.patch TargetPlatformMinVersion.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(CONFIGURATION_RELEASE ReleaseDLL) set(CONFIGURATION_DEBUG DebugDLL) else() set(CONFIGURATION_RELEASE Release) set(CONFIGURATION_DEBUG Debug) endif() if(VCPKG_TARGET_IS_UWP) string(APPEND CONFIGURATION_RELEASE WinRT) string(APPEND CONFIGURATION_DEBUG WinRT) endif() if(VCPKG_TARGET_IS_UWP) set(_gpg-errorproject "${SOURCE_PATH}/SMP/libgpg-error_winrt.vcxproj") else() set(_gpg-errorproject "${SOURCE_PATH}/SMP/libgpg-error.vcxproj") endif() if(VCPKG_CRT_LINKAGE STREQUAL "static") set(RuntimeLibraryExt "") else() set(RuntimeLibraryExt "DLL") endif() vcpkg_install_msbuild( USE_VCPKG_INTEGRATION SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH SMP/libgpg-error.sln PLATFORM ${TRIPLET_SYSTEM_ARCH} LICENSE_SUBPATH COPYING.LIB RELEASE_CONFIGURATION ${CONFIGURATION_RELEASE} DEBUG_CONFIGURATION ${CONFIGURATION_DEBUG} SKIP_CLEAN OPTIONS_DEBUG "/p:RuntimeLibrary=MultiThreadedDebug${RuntimeLibraryExt}" OPTIONS_RELEASE "/p:RuntimeLibrary=MultiThreaded${RuntimeLibraryExt}" ) get_filename_component(SOURCE_PATH_SUFFIX "${SOURCE_PATH}" NAME) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${SOURCE_PATH_SUFFIX}/msvc/include" DESTINATION "${CURRENT_PACKAGES_DIR}") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/include") set(GPG_ERROR_CONFIG_LIBS "-L\${libdir} -lgpg-error") configure_file("${SOURCE_PATH}/src/gpg-error.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gpg-error.pc" @ONLY) set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(includedir "\${prefix}/../include") set(GPG_ERROR_CONFIG_LIBS "-L\${libdir} -lgpg-errord") configure_file("${SOURCE_PATH}/src/gpg-error.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gpg-error.pc" @ONLY) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/COPYING.LIB" "${CURRENT_PACKAGES_DIR}/debug/lib/COPYING.LIB") ================================================ FILE: ports/shiftmedia-libgpg-error/runtime.patch ================================================ diff --git a/SMP/smp.props b/SMP/smp.props index fc70bd8..d515523 100644 --- a/SMP/smp.props +++ b/SMP/smp.props @@ -86,7 +86,7 @@ - lib$(RootNamespace)d + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -94,7 +94,7 @@ MSB8012 - lib$(RootNamespace)d + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -118,7 +118,7 @@ MSB8012 - lib$(RootNamespace) + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -126,7 +126,7 @@ MSB8012 - lib$(RootNamespace) + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -159,6 +159,7 @@ $(OutDir)\lib\x86\$(TargetName).pdb false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x86\$(TargetName)$(TargetExt) @@ -177,6 +178,7 @@ $(OutDir)\lib\x64\$(TargetName).pdb false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x64\$(TargetName)$(TargetExt) @@ -196,6 +198,7 @@ $(IntDir)$(TargetName).pdb false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\bin\x86\$(TargetName)$(TargetExt) @@ -219,6 +222,7 @@ $(IntDir)$(TargetName).pdb false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\bin\x64\$(TargetName)$(TargetExt) @@ -248,6 +252,7 @@ SingleFile $(OutDir)\lib\x86\$(TargetName).pdb 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x86\$(TargetName)$(TargetExt) @@ -273,6 +278,7 @@ SingleFile $(OutDir)\lib\x64\$(TargetName).pdb 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x64\$(TargetName)$(TargetExt) @@ -297,6 +303,7 @@ $(OutDir)\include;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) true @@ -328,6 +335,7 @@ $(OutDir)\include;$(ProjectDir)\..\..\prebuilt\include;%(AdditionalIncludeDirectories) $(IntDir)$(TargetName).pdb 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) true diff --git a/SMP/smp_winrt.props b/SMP/smp_winrt.props index cb5f090..f7d8e23 100644 --- a/SMP/smp_winrt.props +++ b/SMP/smp_winrt.props @@ -97,7 +97,7 @@ - lib$(RootNamespace)d_winrt + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -105,7 +105,7 @@ MSB8012 - lib$(RootNamespace)d_winrt + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -113,7 +113,7 @@ MSB8012 - $(RootNamespace)d_winrt + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -121,7 +121,7 @@ MSB8012 - $(RootNamespace)d_winrt + $(RootNamespace)d $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -129,7 +129,7 @@ MSB8012 - lib$(RootNamespace)_winrt + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -137,7 +137,7 @@ MSB8012 - lib$(RootNamespace)_winrt + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -145,7 +145,7 @@ MSB8012 - $(RootNamespace)_winrt + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -153,7 +153,7 @@ MSB8012 - $(RootNamespace)_winrt + $(RootNamespace) $(ProjectDir)..\msvc\ $(ProjectDir)obj\$(Configuration)\$(Platform)\$(ProjectName)\ $(ProjectDir)obj\Generated @@ -172,6 +172,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x86\$(TargetName)$(TargetExt) @@ -192,6 +193,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x64\$(TargetName)$(TargetExt) @@ -213,6 +215,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\bin\x86\$(TargetName)$(TargetExt) @@ -240,6 +243,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\bin\x64\$(TargetName)$(TargetExt) @@ -273,6 +277,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x86\$(TargetName)$(TargetExt) @@ -301,6 +306,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) $(OutDir)\lib\x64\$(TargetName)$(TargetExt) @@ -327,6 +333,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) true @@ -362,6 +369,7 @@ NotUsing false 4113;%(TreatSpecificWarningsAsErrors) + $(RuntimeLibrary) true ================================================ FILE: ports/shiftmedia-libgpg-error/vcpkg.json ================================================ { "name": "shiftmedia-libgpg-error", "version": "1.45", "port-version": 1, "description": "An unofficial libgpg-error with added native Visual Studio project system", "homepage": "https://github.com/ShiftMediaProject/libgpg-error", "license": "LGPL-2.1-only", "supports": "windows & !mingw & !(arm | arm64)" } ================================================ FILE: ports/si/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bernedom/SI REF "${VERSION}" SHA512 499bf6cd1c68cf5195f15b94910d4f3973a040c2d217aab4eacaa29bfefc031b441639272cffb4b810fd27ff3a664d55284c1252da5e4504ebc768d1a3567f78 HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSI_INSTALL_LIBRARY=ON -DSI_BUILD_TESTING=OFF -DSI_BUILD_DOC=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME SI CONFIG_PATH share/SI/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/si/usage ================================================ si provides CMake targets: find_package(SI CONFIG REQUIRED) target_link_libraries(main PRIVATE SI::SI) ================================================ FILE: ports/si/vcpkg.json ================================================ { "name": "si", "version": "2.5.1", "description": "A header only C++ library that provides type safety and user defined literals for physical units", "homepage": "https://si.dominikberner.ch/doc/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sigmatch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SpriteOvO/sigmatch REF v0.2.0 SHA512 a2ae12bf2da4de4b4b65f443febca8bec5ded2cdcbfe5c166538869431558241883576fed04fc373b60fe5b5709c96a56110181d3b1c07dbb42ecfdddae74c06 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSIGMATCH_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/sigmatch) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") ================================================ FILE: ports/sigmatch/vcpkg.json ================================================ { "name": "sigmatch", "version": "0.2.0", "description": "Modern C++ 20 signature match / search library", "homepage": "https://github.com/SpriteOvO/sigmatch", "license": "Apache-2.0", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/signalsmith-dsp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Signalsmith-Audio/dsp REF "v${VERSION}" SHA512 f69f513bedd004a7e581493cf375015066abe2f8aa320ec98748656f6810a81b0a6f0d5a53a3f4ac5436d4dd56a263eef622ba62ac644675671b335e1fb290c6 HEAD_REF main ) file(GLOB_RECURSE SIGNALSMITH_DSP_HEADERS "${SOURCE_PATH}/*.h") file(INSTALL ${SIGNALSMITH_DSP_HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include/signalsmith-dsp") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/signalsmith-dsp/vcpkg.json ================================================ { "name": "signalsmith-dsp", "version-semver": "1.6.2", "description": "Signalsmith Audio's C++ DSP support library ", "homepage": "https://signalsmith-audio.co.uk/code/dsp/", "license": "MIT" } ================================================ FILE: ports/signalsmith-stretch/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Signalsmith-Audio/signalsmith-stretch REF "${VERSION}" SHA512 cc014fcd64a3bd04a4d389a2b2cbc63025d8672d54eafb5f5bdf03428246581ecf57006f6ced38b608e50afa59cfaf5a92693ce234537ca8e92f4d3b75193568 HEAD_REF main ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmd" "${SOURCE_PATH}/dsp" "${SOURCE_PATH}/web" ) # Adjust include path to the VCPKG port signalsmith-dsp file(READ "${SOURCE_PATH}/signalsmith-stretch.h" _header_content) string(REPLACE "#include \"dsp/spectral.h\"" "#include " _header_content "${_header_content}") string(REPLACE "#include \"dsp/delay.h\"" "#include " _header_content "${_header_content}") string(REPLACE "#include \"dsp/perf.h\"" "#include " _header_content "${_header_content}") file(WRITE "${SOURCE_PATH}/signalsmith-stretch.h" "${_header_content}") file(INSTALL "${SOURCE_PATH}/signalsmith-stretch.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/signalsmith-stretch") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/signalsmith-stretch/vcpkg.json ================================================ { "name": "signalsmith-stretch", "version": "1.1.0", "description": "C++ polyphonic pitch/time library", "homepage": "https://signalsmith-audio.co.uk/code/stretch/", "license": "MIT", "dependencies": [ "signalsmith-dsp" ] } ================================================ FILE: ports/sigslot/LICENSE ================================================ License The sigslot library has been placed in the public domain. This means that you are free to use it however you like. The author takes no responsibility or liability of any kind for any use that you may make of this library. If you screw up, it's your fault. If the library screws up, you got it for free, so you should have tested it better - it's still your responsibility. ================================================ FILE: ports/sigslot/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO sigslot/sigslot REF 1.0.0 FILENAME "sigslot-1-0-0.tar.gz" SHA512 3f16f94a653e49934ec1d695eac02234d15b203f42e9fa88723ee582a84670a645a89e5b87afe2378fa7a9eaef054049255bf3bd531ab1d6825a042641ba8906 ) file(INSTALL ${SOURCE_PATH}/sigslot.h DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${CURRENT_PORT_DIR}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/sigslot/vcpkg.json ================================================ { "name": "sigslot", "version": "1.0.0", "port-version": 5, "description": "Portable C++ type-safe, thread-safe signal/slot library for ISO C++, Unix/BSD/Linux and Win32. Sigslot allows C++ code to use the signal/slot paradigm made popular by, for example, Qt." } ================================================ FILE: ports/simage/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Coin3D/simage REF "v${VERSION}" SHA512 ef8ee5d4952e05861147fa59e7a29ed2020165917f45cc5de6760a52f7cd079135fc921f0e90b9ac9bfff7639204de4d44b0bf6a5f66e6cc35879f62638332b3 HEAD_REF master PATCHES requies-all-dependencies.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SIMAGE_BUILD_SHARED_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SIMAGE_USE_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" SIMAGE_USE_MSVC_STATIC_RUNTIME) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES avienc SIMAGE_USE_AVIENC gdiplus SIMAGE_USE_GDIPLUS oggvorbis SIMAGE_OGGVORBIS_SUPPORT sndfile SIMAGE_LIBSNDFILE_SUPPORT giflib SIMAGE_GIF_SUPPORT jpeg SIMAGE_JPEG_SUPPORT png SIMAGE_PNG_SUPPORT tiff SIMAGE_TIFF_SUPPORT zlib SIMAGE_ZLIB_SUPPORT ) # Depends on the platform if(VCPKG_TARGET_IS_WINDOWS AND "gdiplus" IN_LIST FEATURES) message(WARNING "Feature 'gdiplus' will disable feature 'zlib', 'giflib', 'jpeg', 'png' and 'tiff' automaticly.") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSIMAGE_BUILD_SHARED_LIBS:BOOL=${SIMAGE_BUILD_SHARED_LIBS} -DSIMAGE_USE_STATIC_LIBS:BOOL=${SIMAGE_USE_STATIC_LIBS} -DSIMAGE_USE_MSVC_STATIC_RUNTIME:BOOL=${SIMAGE_USE_MSVC_STATIC_RUNTIME} -DSIMAGE_USE_CGIMAGE=OFF -DSIMAGE_USE_QIMAGE=OFF -DSIMAGE_USE_QT6=OFF -DSIMAGE_USE_QT5=OFF -DSIMAGE_USE_CPACK=OFF -DSIMAGE_LIBJASPER_SUPPORT=OFF -DSIMAGE_EPS_SUPPORT=OFF -DSIMAGE_MPEG2ENC_SUPPORT=OFF -DSIMAGE_PIC_SUPPORT=OFF -DSIMAGE_RGB_SUPPORT=OFF -DSIMAGE_XWD_SUPPORT=OFF -DSIMAGE_TGA_SUPPORT=OFF -DSIMAGE_BUILD_MSVC_MP=OFF -DSIMAGE_BUILD_EXAMPLES=OFF -DSIMAGE_BUILD_TESTS=OFF -DSIMAGE_BUILD_DOCUMENTATION=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/simage-${VERSION}) if (NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) vcpkg_copy_tools(TOOL_NAMES simage-config AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/Coin") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/simage/requies-all-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ef92706..fee22e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -129,6 +129,9 @@ if(SIMAGE_USE_GDIPLUS) } " GDIPLUS_FOUND) unset(CMAKE_REQUIRED_LIBRARIES) + if(NOT GDIPLUS_FOUND) + message(FATAL_ERROR "GDI+ is required on Windows.") + endif() endif() if(SIMAGE_USE_AVIENC) set(CMAKE_REQUIRED_LIBRARIES vfw32) @@ -142,6 +145,9 @@ if(SIMAGE_USE_AVIENC) } " VFW_FOUND) unset(CMAKE_REQUIRED_LIBRARIES) + if(NOT VFW_FOUND) + message(FATAL_ERROR "Video for Windows is required on Windows.") + endif() endif() # On macOS QuickTime supports BMP, GIF, JPEG, JPEG 2000, PNG, TIFF, and TGA. @@ -286,7 +292,7 @@ if(SIMAGE_OGGVORBIS_SUPPORT) find_package(Ogg REQUIRED) find_package(Vorbis REQUIRED) if(OGG_FOUND) - find_package(Opus) + find_package(Opus REQUIRED) endif() endif() @@ -306,8 +312,8 @@ if(NOT SIMAGE_QUICKTIME_SUPPORT AND NOT SIMAGE_CGIMAGE_SUPPORT AND NOT SIMAGE_GD if(SIMAGE_TIFF_SUPPORT) find_package(TIFF REQUIRED) if(TIFF_FOUND) - find_package(LibLZMA) - find_package(Zstd) + find_package(LibLZMA REQUIRED) + find_package(Zstd REQUIRED) endif() endif() ================================================ FILE: ports/simage/vcpkg.json ================================================ { "name": "simage", "version-semver": "1.8.4", "description": "Image file format library abstraction layer", "homepage": "https://github.com/coin3d/simage", "license": "ISC", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Enable all features", "dependencies": [ { "name": "simage", "default-features": false, "features": [ "oggvorbis" ] }, { "name": "simage", "default-features": false, "features": [ "sndfile" ] }, { "name": "simage", "default-features": false, "features": [ "avienc" ], "platform": "windows" }, { "name": "simage", "default-features": false, "features": [ "gdiplus" ], "platform": "windows" }, { "name": "simage", "default-features": false, "features": [ "giflib" ], "platform": "!windows" }, { "name": "simage", "default-features": false, "features": [ "jpeg" ], "platform": "!windows" }, { "name": "simage", "default-features": false, "features": [ "png" ], "platform": "!windows" }, { "name": "simage", "default-features": false, "features": [ "tiff" ], "platform": "!windows" }, { "name": "simage", "default-features": false, "features": [ "zlib" ], "platform": "!windows" } ] }, "avienc": { "description": "Use Video for Windows for AVI encoding", "supports": "windows" }, "gdiplus": { "description": "Use GDI+ on Windows to load/save images", "supports": "windows" }, "giflib": { "description": "Enable support for GIF images", "dependencies": [ "giflib" ] }, "jpeg": { "description": "Enable support for JPEG images", "dependencies": [ "libjpeg-turbo" ] }, "oggvorbis": { "description": "Enable support for ogg/vorbis extensions", "dependencies": [ "libogg", "libvorbis", "opus" ] }, "png": { "description": "Enable support for PNG images", "dependencies": [ "libpng" ] }, "sndfile": { "description": "Use libsndfile to load/save sampled sound", "dependencies": [ { "name": "libsndfile", "default-features": false, "features": [ "external-libs" ] } ] }, "tiff": { "description": "Enable support for TIFF images", "dependencies": [ "liblzma", "tiff", "zstd" ] }, "zlib": { "description": "Enable support for zlib library", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/simbody/common-name-libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1995170..7ddb018 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,25 +174,25 @@ FORCE) set(SimTKCOMMON_SHARED_LIBRARY ${SimTKCOMMON_LIBRARY_NAME}) -set(SimTKCOMMON_STATIC_LIBRARY ${SimTKCOMMON_LIBRARY_NAME}_static) +set(SimTKCOMMON_STATIC_LIBRARY ${SimTKCOMMON_LIBRARY_NAME}) set(SimTKCOMMON_LIBRARY_NAME_VN ${NS}SimTKcommon${VN}) set(SimTKCOMMON_SHARED_LIBRARY_VN ${SimTKCOMMON_LIBRARY_NAME_VN}) -set(SimTKCOMMON_STATIC_LIBRARY_VN ${SimTKCOMMON_LIBRARY_NAME_VN}_static) +set(SimTKCOMMON_STATIC_LIBRARY_VN ${SimTKCOMMON_LIBRARY_NAME_VN}) set(SimTKMATH_SHARED_LIBRARY ${SimTKMATH_LIBRARY_NAME}) -set(SimTKMATH_STATIC_LIBRARY ${SimTKMATH_LIBRARY_NAME}_static) +set(SimTKMATH_STATIC_LIBRARY ${SimTKMATH_LIBRARY_NAME}) set(SimTKMATH_LIBRARY_NAME_VN ${NS}SimTKmath${VN}) set(SimTKMATH_SHARED_LIBRARY_VN ${SimTKMATH_LIBRARY_NAME_VN}) -set(SimTKMATH_STATIC_LIBRARY_VN ${SimTKMATH_LIBRARY_NAME_VN}_static) +set(SimTKMATH_STATIC_LIBRARY_VN ${SimTKMATH_LIBRARY_NAME_VN}) set(SimTKSIMBODY_SHARED_LIBRARY ${SimTKSIMBODY_LIBRARY_NAME}) -set(SimTKSIMBODY_STATIC_LIBRARY ${SimTKSIMBODY_LIBRARY_NAME}_static) +set(SimTKSIMBODY_STATIC_LIBRARY ${SimTKSIMBODY_LIBRARY_NAME}) set(SimTKSIMBODY_LIBRARY_NAME_VN ${NS}SimTKsimbody${VN}) set(SimTKSIMBODY_SHARED_LIBRARY_VN ${SimTKSIMBODY_LIBRARY_NAME_VN}) -set(SimTKSIMBODY_STATIC_LIBRARY_VN ${SimTKSIMBODY_LIBRARY_NAME_VN}_static) +set(SimTKSIMBODY_STATIC_LIBRARY_VN ${SimTKSIMBODY_LIBRARY_NAME_VN}) # Caution: this variable is automatically created by the CMake diff --git a/SimTKcommon/CMakeLists.txt b/SimTKcommon/CMakeLists.txt index 47839f5..84ad865 100644 --- a/SimTKcommon/CMakeLists.txt +++ b/SimTKcommon/CMakeLists.txt @@ -86,9 +86,9 @@ endif(NEED_QUOTES) # -DSimTKcommon_EXPORTS defined automatically when Windows DLL build is being done. set(SHARED_TARGET ${SimTKCOMMON_LIBRARY_NAME}) -set(STATIC_TARGET ${SimTKCOMMON_LIBRARY_NAME}_static) +set(STATIC_TARGET ${SimTKCOMMON_LIBRARY_NAME}) set(SHARED_TARGET_VN ${SimTKCOMMON_LIBRARY_NAME}${VN}) -set(STATIC_TARGET_VN ${SimTKCOMMON_LIBRARY_NAME}${VN}_static) +set(STATIC_TARGET_VN ${SimTKCOMMON_LIBRARY_NAME}${VN}) ## Test against the unversioned libraries if they are being build; ## otherwise against the versioned libraries. diff --git a/SimTKmath/CMakeLists.txt b/SimTKmath/CMakeLists.txt index f5c82ae..d3ee9bf 100644 --- a/SimTKmath/CMakeLists.txt +++ b/SimTKmath/CMakeLists.txt @@ -79,9 +79,9 @@ endif(NEED_QUOTES) # -Dsimmath_EXPORTS defined automatically when Windows DLL build is being done. set(SHARED_TARGET ${SimTKMATH_LIBRARY_NAME}) -set(STATIC_TARGET ${SimTKMATH_LIBRARY_NAME}_static) +set(STATIC_TARGET ${SimTKMATH_LIBRARY_NAME}) set(SHARED_TARGET_VN ${SimTKMATH_LIBRARY_NAME}${VN}) -set(STATIC_TARGET_VN ${SimTKMATH_LIBRARY_NAME}${VN}_static) +set(STATIC_TARGET_VN ${SimTKMATH_LIBRARY_NAME}${VN}) ## Test against the unversioned libraries if they are being built; ## otherwise against the versioned libraries. diff --git a/Simbody/CMakeLists.txt b/Simbody/CMakeLists.txt index 062c2b9..e320f57 100644 --- a/Simbody/CMakeLists.txt +++ b/Simbody/CMakeLists.txt @@ -42,9 +42,9 @@ add_definitions(-DSimTK_SIMBODY_LIBRARY_NAME=${SimTKSIMBODY_LIBRARY_NAME} set(SHARED_TARGET ${SimTKSIMBODY_LIBRARY_NAME}) -set(STATIC_TARGET ${SimTKSIMBODY_LIBRARY_NAME}_static) +set(STATIC_TARGET ${SimTKSIMBODY_LIBRARY_NAME}) set(SHARED_TARGET_VN ${SimTKSIMBODY_LIBRARY_NAME}${VN}) -set(STATIC_TARGET_VN ${SimTKSIMBODY_LIBRARY_NAME}${VN}_static) +set(STATIC_TARGET_VN ${SimTKSIMBODY_LIBRARY_NAME}${VN}) ## Test against the unversioned libraries if they are being built; ## otherwise against the versioned libraries. ================================================ FILE: ports/simbody/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO simbody/simbody REF 462b2a6dbb8794db2922d72f52b29b488a178ebc SHA512 e2b1837e0a04461ebc94e80f5e8aa29f874a1113383db8b24e77b0c9413c4a6bab0299c6a9b2f07147e82ef01a765fed6d6455d5bd059882c646830dd8d1b224 HEAD_REF master PATCHES common-name-libs.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBRARIES) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC_LIBRARIES) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_DYNAMIC_LIBRARIES=${BUILD_DYNAMIC_LIBRARIES} -DBUILD_STATIC_LIBRARIES=${BUILD_STATIC_LIBRARIES} -DWINDOWS_USE_EXTERNAL_LIBS=ON -DINSTALL_DOCS=OFF -DBUILD_VISUALIZER=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DBUILD_TESTS_AND_EXAMPLES_STATIC=OFF -DBUILD_TESTS_AND_EXAMPLES_SHARED=OFF ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/doc") vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/simbody/usage ================================================ Simbody provides CMake targets: find_package(Simbody CONFIG REQUIRED) target_link_libraries(main PRIVATE SimTKcommon SimTKmath SimTKsimbody) ================================================ FILE: ports/simbody/vcpkg.json ================================================ { "name": "simbody", "version-date": "2023-01-10", "port-version": 1, "description": "High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton.", "homepage": "https://simtk.org/home/simbody", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/simd/SimdConfig.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/simdtargets.cmake") ================================================ FILE: ports/simd/fix-platform-detection.patch ================================================ diff --git a/prj/cmake/CMakeLists.txt b/prj/cmake/CMakeLists.txt index 1aa93f5..41e56fc 100644 --- a/prj/cmake/CMakeLists.txt +++ b/prj/cmake/CMakeLists.txt @@ -160,7 +160,7 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio") else() if((CMAKE_SYSTEM_PROCESSOR STREQUAL "i686") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")) include(x86.cmake) - elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "arm") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")) + elseif((CMAKE_SYSTEM_PROCESSOR MATCHES "arm") OR (CMAKE_SYSTEM_PROCESSOR MATCHES "ARM") OR (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")) include(arm.cmake) else() message(FATAL_ERROR "Unknown value of CMAKE_SYSTEM_PROCESSOR!") ================================================ FILE: ports/simd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ermig1979/Simd REF "v${VERSION}" SHA512 bb33c36e04d871409402e644b346e5e76592e0685b7440db74f859cc7638d0d145b155036ad566afbb352018e12896f156b799669bd5cd7097258a50dc41f16c HEAD_REF master PATCHES fix-platform-detection.patch ) if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(SIMD_PLATFORM "Win32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(SIMD_PLATFORM "x64") endif() if(VCPKG_PLATFORM_TOOLSET MATCHES "v140") set(SOLUTION_TYPE vs2015) elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v141") set(SOLUTION_TYPE vs2017) elseif(VCPKG_PLATFORM_TOOLSET MATCHES "v142") set(SOLUTION_TYPE vs2019) else() set(SOLUTION_TYPE vs2022) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${SOURCE_PATH}/src/Simd/SimdConfig.h" "//#define SIMD_STATIC" "#define SIMD_STATIC") vcpkg_replace_string("${SOURCE_PATH}/prj/${SOLUTION_TYPE}/Simd.vcxproj" "DynamicLibrary" "StaticLibrary") file(GLOB_RECURSE PROJ_FILES "${SOURCE_PATH}/prj/${SOLUTION_TYPE}/*.vcxproj") foreach(PROJ_FILE ${PROJ_FILES}) vcpkg_replace_string(${PROJ_FILE} " " " OldStyle\n ") endforeach() endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") file(GLOB_RECURSE PROJ_FILES "${SOURCE_PATH}/prj/${SOLUTION_TYPE}/*.vcxproj") foreach(PROJ_FILE ${PROJ_FILES}) vcpkg_replace_string(${PROJ_FILE} " " " MultiThreadedDebugDLL\n MultiThreadedDLL\n ") endforeach() endif() vcpkg_install_msbuild( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH "/prj/${SOLUTION_TYPE}/Simd.sln" PLATFORM ${SIMD_PLATFORM} TARGET "lib\\Simd" RELEASE_CONFIGURATION "Release" DEBUG_CONFIGURATION "Debug" ) vcpkg_copy_pdbs() file(GLOB SIMD_HEADERS "${SOURCE_PATH}/src/Simd/*.hpp" "${SOURCE_PATH}/src/Simd/*.h") file(COPY ${SIMD_HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include/Simd") elseif((VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") AND (VCPKG_DETECTED_CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")) message(FATAL_ERROR "Arm64 building with MSVC is currently not supported.") else() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${SOURCE_PATH}/src/Simd/SimdConfig.h" "//#define SIMD_STATIC" "#define SIMD_STATIC" ) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SIMD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/prj/cmake" OPTIONS -DSIMD_TEST=OFF -DSIMD_SHARED=${SIMD_SHARED} -DSIMD_PYTHON=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(COPY "${CMAKE_CURRENT_LIST_DIR}/SimdConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/simd/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/simd/vcpkg.json ================================================ { "name": "simd", "version": "6.2.159", "description": "Simd image processing and machine learning library, designed for C and C++ programmers", "homepage": "https://github.com/ermig1979/Simd", "license": "MIT", "supports": "!(uwp | osx | (arm64 & windows))", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/simde/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO simd-everywhere/simde REF "v${VERSION}" SHA512 4e42d7140c0afae507773527c6c0c07e6f0cdad59a1d42ebcf4bd223fc9f71e91a2e3db7746aca3c0c5ad2a13333c2322ce1e384c7d699ddfe33bed6f107aec5 HEAD_REF master ) file(COPY "${SOURCE_PATH}/simde" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/simde/vcpkg.json ================================================ { "name": "simde", "version": "0.8.2", "description": "Implementations of SIMD instruction sets for systems which don't natively support them", "homepage": "https://github.com/simd-everywhere/simde", "license": "MIT" } ================================================ FILE: ports/simdjson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO simdjson/simdjson REF "v${VERSION}" HEAD_REF master SHA512 5fd814395fcdf914f9888bc35de8f378cfdc6eac6549abf9fbb4c8030ffda47c206844e10623dc7291240ca7efe2adbe2b9424cddecc11655886e96de0a58965 ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES exceptions SIMDJSON_EXCEPTIONS threads SIMDJSON_ENABLE_THREADS INVERTED_FEATURES deprecated SIMDJSON_DISABLE_DEPRECATED_API utf8-validation SIMDJSON_SKIPUTF8VALIDATION ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SIMDJSON_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSIMDJSON_JUST_LIBRARY=ON -DSIMDJSON_SANITIZE_UNDEFINED=OFF -DSIMDJSON_SANITIZE=OFF -DSIMDJSON_SANITIZE_THREADS=OFF -DSIMDJSON_BUILD_STATIC=${SIMDJSON_BUILD_STATIC} -DSIMDJSON_DEVELOPMENT_CHECKS=OFF -DSIMDJSON_VERBOSE_LOGGING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE-MIT") ================================================ FILE: ports/simdjson/vcpkg.json ================================================ { "name": "simdjson", "version": "4.4.1", "description": "An extremely fast JSON library that can parse gigabytes of JSON per second", "homepage": "https://simdjson.org/", "license": "Apache-2.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "deprecated", "exceptions", "threads", "utf8-validation" ], "features": { "deprecated": { "description": "Enable deprecated APIs" }, "exceptions": { "description": "Enable exception-throwing interface" }, "threads": { "description": "Link with thread support" }, "utf8-validation": { "description": "Enable UTF-8 validation" } } } ================================================ FILE: ports/simdutf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO simdutf/simdutf REF "v${VERSION}" SHA512 fe872845b5a873bacb5748f8c75e36e4b341b177db53104829ee1f93601fc11feffa27034b78b7dd4fb77cf489cd6db25037e2590a74f5748580d81768c87d77 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tools" SIMDUTF_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSIMDUTF_TESTS=OFF -DSIMDUTF_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES fastbase64 sutf AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-APACHE") ================================================ FILE: ports/simdutf/vcpkg.json ================================================ { "name": "simdutf", "version-semver": "8.2.0", "description": "Unicode validation and transcoding at billions of characters per second", "homepage": "https://github.com/simdutf/simdutf", "license": "Apache-2.0 OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build the fastbase64 and simdutf command line tools for transcoding strings" } } } ================================================ FILE: ports/simonbrunel-qtpromise/patches/install_headers.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,14 @@ add_library(qtpromise::qtpromise ALIAS qtpromise) target_link_libraries(qtpromise INTERFACE Qt${QT_VERSION_MAJOR}::Core) target_include_directories(qtpromise INTERFACE "${CMAKE_CURRENT_LIST_DIR}/include") +if(QTPROMISE_HEADER_INSTALL_DESTINATION) + install( + DIRECTORY "include" "src" + DESTINATION "${QTPROMISE_HEADER_INSTALL_DESTINATION}" + CONFIGURATIONS "${QTPROMISE_HEADER_INSTALL_COMPONENTS}" + ) +endif() + add_definitions( -DQT_DEPRECATED_WARNINGS -DQT_NO_KEYWORDS ================================================ FILE: ports/simonbrunel-qtpromise/patches/remove_error_flags.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,7 @@ add_definitions( -DQT_NO_KEYWORDS ) +#[[ remove error flags # https://github.com/simonbrunel/qtpromise/issues/10 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") # https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html @@ -83,8 +84,10 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") /WX ) endif() +]] if(NOT SUBPROJECT) enable_testing() add_subdirectory(tests) endif() + ================================================ FILE: ports/simonbrunel-qtpromise/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO simonbrunel/qtpromise REF "v${VERSION}" SHA512 0d6316ec9503a7781b4d9e615e6d538b21b6282a76e5e28e3f323bcdb740e6f66e6c55944e31fc62cec7cc25a90b0f7318277f044a630500202971ca6e2e85b6 HEAD_REF master PATCHES patches/install_headers.patch patches/remove_error_flags.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQTPROMISE_HEADER_INSTALL_DESTINATION="${CURRENT_PACKAGES_DIR}/include/${PORT}" -DQTPROMISE_HEADER_INSTALL_COMPONENTS="Release" -DSUBPROJECT=ON # do not build tests ) vcpkg_cmake_install() set(USE_QT_VERSION "6") # for Qt5, replace this number with 5, and replace the dependency on port qtbase in vcpkg.json with port qt5-base configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/simonbrunel-qtpromise/unofficial-config.cmake.in ================================================ set(@PORT@_VERSION "@VERSION@") if(TARGET unofficial-@PORT@) set(unofficial-@PORT@_FOUND TRUE) return() endif() include(CMakeFindDependencyMacro) find_dependency(Qt@USE_QT_VERSION@ REQUIRED COMPONENTS Core) add_library(unofficial-@PORT@ INTERFACE) target_link_libraries(unofficial-@PORT@ INTERFACE Qt::Core) target_include_directories(unofficial-@PORT@ INTERFACE "${CMAKE_CURRENT_LIST_DIR}/../../include/@PORT@/include") set(unofficial-@PORT@_FOUND TRUE) ================================================ FILE: ports/simonbrunel-qtpromise/usage ================================================ simonbrunel-qtpromise provides CMake targets: find_package(unofficial-simonbrunel-qtpromise CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial-simonbrunel-qtpromise) ================================================ FILE: ports/simonbrunel-qtpromise/vcpkg.json ================================================ { "name": "simonbrunel-qtpromise", "version": "0.7.0", "port-version": 1, "maintainers": "Simon Brunel", "description": "Promises/A+ implementation for Qt/C++", "homepage": "https://qtpromise.netlify.app/", "license": "MIT", "dependencies": [ "qtbase", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/simple-fft/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO d1vanov/Simple-FFT REF a0cc843ff36d33ad09c08674b9503614742ad0b9 SHA512 6fbbda1f172505f6627f97ae671d12ff282844ca50e6e6c8016f78ee333c32ce6d17763837c281e47f10cfc277cb1f67394169f6bbf137b09885c1a053d6d342 HEAD_REF master ) file(COPY ${SOURCE_PATH}/include/simple_fft/check_fft.hpp ${SOURCE_PATH}/include/simple_fft/copy_array.hpp ${SOURCE_PATH}/include/simple_fft/error_handling.hpp ${SOURCE_PATH}/include/simple_fft/fft.h ${SOURCE_PATH}/include/simple_fft/fft.hpp ${SOURCE_PATH}/include/simple_fft/fft_impl.hpp ${SOURCE_PATH}/include/simple_fft/fft_settings.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/simple_fft ) file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/simple-fft/vcpkg.json ================================================ { "name": "simple-fft", "version-date": "2020-06-14", "port-version": 2, "description": "Header-only C++ library implementing fast Fourier transform of 1D, 2D and 3D data", "homepage": "https://github.com/d1vanov/Simple-FFT" } ================================================ FILE: ports/simpleamqpclient/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alanxz/SimpleAmqpClient REF "v${VERSION}" SHA512 f561a45774da55e7b846e6cab7fbcdabb0a6deb462450ca9e8a0e37acccb33957daeb29f31b24671934139f29f8c02c14ba53ce5fdf05b5349f7d6c041e4a6ab HEAD_REF master PATCHES rabbitmqc-use-find-package-config.patch ) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl ENABLE_SSL_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_SHARED_LIBS=ON -DENABLE_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-MIT") ================================================ FILE: ports/simpleamqpclient/rabbitmqc-use-find-package-config.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index efefbfc..ae4b1fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,11 +52,32 @@ find_package(Boost 1.47.0 COMPONENTS chrono system REQUIRED) include_directories(SYSTEM ${Boost_INCLUDE_DIRS}) link_directories(${Boost_LIBRARY_DIRS}) -set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules) -find_package(Rabbitmqc REQUIRED) -INCLUDE_DIRECTORIES(SYSTEM ${Rabbitmqc_INCLUDE_DIRS}) +find_package(rabbitmq-c CONFIG REQUIRED) +if (TARGET rabbitmq::rabbitmq) + set(Rabbitmqc_LIBRARY rabbitmq::rabbitmq) +elseif (TARGET rabbitmq::rabbitmq-static) + set(Rabbitmqc_LIBRARY rabbitmq::rabbitmq-static) +else() + message(FATAL_ERROR "Failed to find rabbitmq-c target") +endif() +get_target_property(Rabbitmqc_INCLUDE_DIRS ${Rabbitmqc_LIBRARY} INTERFACE_INCLUDE_DIRECTORIES) +include_directories(SYSTEM ${Rabbitmqc_INCLUDE_DIRS}) +find_file(_Rabbitmqc_SSL_HEADER + NAMES amqp_ssl_socket.h + PATHS ${Rabbitmqc_INCLUDE_DIRS} + NO_DEFAULT_PATH +) +if (_Rabbitmqc_SSL_HEADER) + set(_ssl_enabled TRUE) +else() + set(_ssl_enabled FALSE) +endif() +set(Rabbitmqc_SSL_ENABLED ${_ssl_enabled} CACHE BOOL "Rabbitmqc is SSL Enabled" FORCE) option(ENABLE_SSL_SUPPORT "Enable SSL support." ${Rabbitmqc_SSL_ENABLED}) +if (ENABLE_SSL_SUPPORT AND NOT Rabbitmqc_SSL_ENABLED) + message(FATAL_ERROR "SSL support requested but rabbitmq-c was not built with SSL") +endif() if (ENABLE_SSL_SUPPORT) add_definitions(-DSAC_SSL_SUPPORT_ENABLED) ================================================ FILE: ports/simpleamqpclient/vcpkg.json ================================================ { "name": "simpleamqpclient", "version": "2.5.1", "description": "Simple C++ Interface to rabbitmq-c", "homepage": "https://github.com/alanxz/SimpleAmqpClient", "license": "MIT", "supports": "!static", "dependencies": [ "boost-algorithm", "boost-chrono", "boost-foreach", "boost-lexical-cast", "boost-optional", "boost-smart-ptr", "boost-variant", { "name": "librabbitmq", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "Enable SSL support", "dependencies": [ { "name": "librabbitmq", "default-features": false, "features": [ "ssl" ] } ] } } } ================================================ FILE: ports/simpleble/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenBluetoothToolbox/SimpleBLE HEAD_REF main REF "v${VERSION}" SHA512 c53c435c53f4829bfe1f1db94a94693958a23174689b798ae32d9518725efbb3173540e150c5a630ee53752d3e49f80f9e412c1c21e9f7a326369592d47cab46 PATCHES use-std-localtime.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/simpleble" OPTIONS -DLIBFMT_VENDORIZE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/simpleble") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/simpleble/use-std-localtime.patch ================================================ diff --git a/simpleble/src/Logging.cpp b/simpleble/src/Logging.cpp index 781b658..6b05e44 100644 --- a/simpleble/src/Logging.cpp +++ b/simpleble/src/Logging.cpp @@ -90,7 +90,11 @@ void Logger::log_default_stdout() { void Logger::log_default_file() { std::time_t t = std::time(nullptr); +#if FMT_VERSION < 120000 std::string date_time_str = fmt::format("{:%Y-%m-%d_%H-%M-%S}", fmt::localtime(t)); +#else + std::string date_time_str = fmt::format("{:%Y-%m-%d_%H-%M-%S}", *std::localtime(&t)); +#endif std::string filename = fmt::format("simpleble_{}", date_time_str); log_default_file(filename); } ================================================ FILE: ports/simpleble/vcpkg.json ================================================ { "name": "simpleble", "version": "0.12.1", "description": "The ultimate fully-fledged cross-platform library and bindings for Bluetooth Low Energy (BLE).", "homepage": "https://github.com/OpenBluetoothToolbox/SimpleBLE", "supports": "!android & !uwp", "dependencies": [ { "name": "dbus", "platform": "linux" }, "fmt", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/simpleini/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brofield/simpleini REF "v${VERSION}" SHA512 b937c18a7b6277d77ca7ebfb216af4984810f77af4c32d101b7685369a4bd5eb61406223f82698e167e6311a728d07415ab59639fdf19eff71ad6dc2abfda989 HEAD_REF master ) # Install codes set(SIMPLEINI_SOURCE ${SOURCE_PATH}/SimpleIni.h ${SOURCE_PATH}/ConvertUTF.h ${SOURCE_PATH}/ConvertUTF.c ) file(INSTALL ${SIMPLEINI_SOURCE} DESTINATION ${CURRENT_PACKAGES_DIR}/include) # copyright file(INSTALL "${SOURCE_PATH}/LICENCE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/simpleini/vcpkg.json ================================================ { "name": "simpleini", "version": "4.25", "description": "Cross-platform C++ library providing a simple API to read and write INI-style configuration files", "homepage": "https://github.com/brofield/simpleini", "license": "MIT" } ================================================ FILE: ports/simsimd/export-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b8e604..14c6904 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,22 +140,29 @@ endif () if (SIMSIMD_BUILD_SHARED) set(SIMSIMD_SOURCES ${SIMSIMD_SOURCES} c/lib.c) add_library(simsimd_shared SHARED ${SIMSIMD_SOURCES}) - target_include_directories(simsimd_shared PUBLIC "${PROJECT_SOURCE_DIR}/include") + target_include_directories(simsimd_shared PUBLIC $ $) set_target_properties(simsimd_shared PROPERTIES OUTPUT_NAME simsimd) install( TARGETS simsimd_shared - ARCHIVE + EXPORT unofficial-simsimd-config + ARCHIVE DESTINATION lib BUNDLE FRAMEWORK - LIBRARY + LIBRARY DESTINATION lib OBJECTS PRIVATE_HEADER PUBLIC_HEADER RESOURCE - RUNTIME + RUNTIME DESTINATION bin + ) + + install(EXPORT unofficial-simsimd-config + FILE unofficial-simsimd-config.cmake + NAMESPACE unofficial::simsimd:: + DESTINATION share/unofficial-simsimd ) endif () -install(DIRECTORY include/ DESTINATION include) -install(DIRECTORY c/ DESTINATION share/doc/${PROJECT_NAME}/src) +install(DIRECTORY include/ DESTINATION include FILES_MATCHING PATTERN *.h) + ================================================ FILE: ports/simsimd/force-c17-on-msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 14c6904..ac2e4fb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,11 @@ project( HOMEPAGE_URL "https://github.com/ashvardanian/simsimd" ) -set(CMAKE_C_STANDARD 23) +if(MSVC) + set(CMAKE_C_STANDARD 17) +else() + set(CMAKE_C_STANDARD 23) +endif() set(CMAKE_C_STANDARD_REQUIRED YES) set(CMAKE_C_EXTENSIONS NO) ================================================ FILE: ports/simsimd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ashvardanian/SimSIMD REF "v${VERSION}" SHA512 d583638379b3c6a6b8ac618955cc1d83154e02f841b568c44ac499e1acdbbc82b3d15d443dea4c9efb1ca6d206d899be7f7b3dc0a27825870b98c752dd0b65a6 HEAD_REF main PATCHES export-target.patch force-c17-on-msvc.patch support-msvc.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSIMSIMD_BUILD_TESTS=OFF -DSIMSIMD_BUILD_BENCHMARKS=OFF "-DSIMSIMD_BUILD_SHARED=${BUILD_SHARED}" ) vcpkg_cmake_install() if(BUILD_SHARED) vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-simsimd) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") else() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/simsimd/support-msvc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 82653db..bf5eb59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,11 +63,12 @@ else () endif () # Global compiler flags for debug and release +if(NOT CMAKE_CXX_COMPILER_ID MATCHES "MSVC") set(CMAKE_CXX_FLAGS_DEBUG "-g -fsanitize=address") set(CMAKE_CXX_FLAGS_RELEASE "-O3") set(CMAKE_C_FLAGS_DEBUG "-g -fsanitize=address") set(CMAKE_C_FLAGS_RELEASE "-O3") - +endif() # Compiler-specific flags if (CMAKE_CXX_COMPILER_ID MATCHES "^(Apple)?Clang$") if (NOT APPLE) ================================================ FILE: ports/simsimd/vcpkg.json ================================================ { "name": "simsimd", "version": "6.5.16", "description": "Fastest similarity-measures and distance functions on the Wild West – vectors, strings, short molecules, and even DNA sequences. All with a pinch of SIMD for both x86 and ARM.", "homepage": "https://github.com/ashvardanian/SimSIMD", "license": "Apache-2.0", "supports": "!uwp & !(arm64 & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sintra/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO imakris/sintra REF "v${VERSION}" SHA512 d13c520b03e78684b5a3fc843193b26c8e4cebbb7d21567c9a5a6929ceaed2a48b3b225cf30bb31ebc5d97d42d71a4e6b41a7b07813ab75b704036b036d021ed HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sintra/vcpkg.json ================================================ { "name": "sintra", "version": "1.0.3", "description": "Header-only C++17 IPC library using shared-memory ring buffers.", "homepage": "https://github.com/imakris/sintra", "license": "BSD-2-Clause", "supports": "!android" } ================================================ FILE: ports/sjpeg/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webmproject/sjpeg REF 46da5aec5fce05faabf1facf0066e36e6b1c4dff SHA512 986e57c201a8ff00b01eb25e11b16736050f005cc8f6448ed6ad580234071ee1105408a7d2222715364ec40b3210c2054ae7a96dddf31657390cd3370154d444 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSJPEG_BUILD_EXAMPLES=OFF "-DSJPEG_ANDROID_NDK_PATH=$ENV{ANDROID_NDK_HOME}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/sjpeg/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/sjpeg/vcpkg.json ================================================ { "name": "sjpeg", "version-date": "2025-06-04", "description": "Simple library for encoding baseline JPEG files", "homepage": "https://github.com/webmproject/sjpeg", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/skcrypter/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skadro-official/skCrypter REF 7970de8acc01af5ecef044374c26ecb33b7cd069 SHA512 f0ef3c6673523d5b86bc9b5859ae77fb4d182238b67ce4f07da1068f23ee7915e028ed837b8c6b2dd5421ae5a7c043e0d486d18c4b5404ebee50bd8cef4ba4bb HEAD_REF master ) file(COPY "${SOURCE_PATH}/files/skCrypter.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/skcrypter/vcpkg.json ================================================ { "name": "skcrypter", "version-date": "2021-12-03", "description": "Compile-time, Usermode + Kernelmode, safe and lightweight string crypter library for C++11", "homepage": "https://github.com/skadro-official/skCrypter" } ================================================ FILE: ports/skia/allow-disabling-lib-dl.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index def43b13f1..5863050248 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1933,7 +1933,9 @@ skia_component("skia") { if (is_ios) { sources += [ "src/ports/SkOSFile_ios.h" ] } - libs += [ "dl" ] + if (skia_vcpkg_has_lib_dl) { + libs += [ "dl" ] + } } if (is_android) { diff --git a/gn/skia.gni b/gn/skia.gni index 13fbcce6ca..9ed1ea066e 100644 --- a/gn/skia.gni +++ b/gn/skia.gni @@ -105,6 +105,8 @@ declare_args() { } skia_build_rust_targets = false + + skia_vcpkg_has_lib_dl = true } declare_args() { ================================================ FILE: ports/skia/always-build-pathops.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index 5863050248..4250e045d0 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1830,6 +1830,7 @@ skia_component("skia") { ":gpu", ":graphite", ":jpeg_encode", + ":pathops", ":pdf", ":pdf_jpeg_helpers", ":webp_encode", ================================================ FILE: ports/skia/bentleyottmann-build.patch ================================================ diff --git a/modules/bentleyottmann/BUILD.gn b/modules/bentleyottmann/BUILD.gn index 8a6725592f..40e4ac7bec 100644 --- a/modules/bentleyottmann/BUILD.gn +++ b/modules/bentleyottmann/BUILD.gn @@ -31,4 +31,9 @@ if (skia_enable_bentleyottmann) { ] } } +} else { + group("bentleyottmann") { + } + group("tests") { + } } ================================================ FILE: ports/skia/dawn.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index 4250e045d0..e26e7be3a7 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -15,7 +15,6 @@ if (defined(skia_settings)) { } import("gn/ios.gni") -import("third_party/dawn/args.gni") # Skia public API, generally provided by :skia. config("skia_public") { diff --git a/tools/window/BUILD.gn b/tools/window/BUILD.gn index b532490b97..06f397a28c 100644 --- a/tools/window/BUILD.gn +++ b/tools/window/BUILD.gn @@ -4,7 +4,6 @@ # found in the LICENSE file. import("../../gn/skia.gni") -import("../../third_party/dawn/args.gni") config("public_config") { defines = [] ================================================ FILE: ports/skia/disable-msvc-env-setup.patch ================================================ diff --git a/gn/toolchain/BUILD.gn b/gn/toolchain/BUILD.gn index 4d4abc952f..5800f30bd9 100644 --- a/gn/toolchain/BUILD.gn +++ b/gn/toolchain/BUILD.gn @@ -96,6 +96,7 @@ template("msvc_toolchain") { # ARM64 compiler is incomplete - it relies on DLLs located in the host toolchain directory. env_setup = "$shell set \"PATH=%PATH%;$win_vc\\Tools\\MSVC\\$win_toolchain_version\\bin\\HostX64\\x64\" && " } + env_setup = "" # overwrite cl_m32_flag = "" ================================================ FILE: ports/skia/dont-use-response-file.patch ================================================ diff --git a/gn/toolchain/BUILD.gn b/gn/toolchain/BUILD.gn index 8eace3949b..67d7b00096 100644 --- a/gn/toolchain/BUILD.gn +++ b/gn/toolchain/BUILD.gn @@ -305,7 +305,7 @@ template("gcc_like_toolchain") { rspfile = "{{output}}.rsp" rspfile_content = "{{inputs}}" rm_py = rebase_path("../rm.py") - command = "$shell python3 \"$rm_py\" \"{{output}}\" && $ar rcs {{output}} @$rspfile" + command = "$shell python3 \"$rm_py\" \"{{output}}\" && $ar rcs {{output}} `cat $rspfile`" } outputs = ================================================ FILE: ports/skia/example/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(skia-example) set(CMAKE_CXX_STANDARD 17) add_executable(legacy convert-to-nia.cpp) find_package(skia CONFIG REQUIRED) target_link_libraries(legacy PRIVATE skia) find_package(unofficial-skia CONFIG REQUIRED) add_executable(main convert-to-nia.cpp) target_link_libraries(main PRIVATE unofficial::skia::skia unofficial::skia::modules::skshaper) add_executable(skcms skcms.cpp) target_link_libraries(skcms PRIVATE unofficial::skia::skia) add_executable(skpathediting skpathediting.cpp) target_link_libraries(skpathediting PRIVATE unofficial::skia::skia) ================================================ FILE: ports/skia/example/skcms.cpp ================================================ #include int main() { float src_pixels[4] = {0.8f, 0.3f, 0.2f, 1.0f}; float dst_pixels[4] = {}; skcms_Transform( src_pixels, skcms_PixelFormat_RGBA_ffff, skcms_AlphaFormat_Unpremul, skcms_sRGB_profile(), dst_pixels, skcms_PixelFormat_RGBA_ffff, skcms_AlphaFormat_Unpremul, skcms_XYZD50_profile(), 1 ); } ================================================ FILE: ports/skia/example/skpathediting.cpp ================================================ #include #include int main() { SkPathBuilder builder; builder.moveTo(50, 50); builder.lineTo(150, 50); builder.lineTo(100, 150); builder.close(); SkPath path = builder.detach(); } ================================================ FILE: ports/skia/fix-bsd.patch ================================================ diff --git a/src/gpu/ganesh/GrAutoLocaleSetter.h b/src/gpu/ganesh/GrAutoLocaleSetter.h index 13a2ab37f9..96968f6779 100644 --- a/src/gpu/ganesh/GrAutoLocaleSetter.h +++ b/src/gpu/ganesh/GrAutoLocaleSetter.h @@ -27,7 +27,7 @@ #define HAVE_XLOCALE 0 #endif -#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) +#if defined(SK_BUILD_FOR_ANDROID) || defined(__UCLIBC__) || defined(_NEWLIB_VERSION) || defined(__NetBSD__) #define HAVE_LOCALE_T 0 #else #define HAVE_LOCALE_T 1 diff --git a/src/ports/SkMemory_malloc.cpp b/src/ports/SkMemory_malloc.cpp index d784af53ef..8bb21406dd 100644 --- a/src/ports/SkMemory_malloc.cpp +++ b/src/ports/SkMemory_malloc.cpp @@ -15,7 +15,7 @@ #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) #include -#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) +#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__) #include #elif defined(SK_BUILD_FOR_WIN) #include @@ -126,7 +126,7 @@ size_t sk_malloc_size(void* addr, size_t size) { #elif defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 17 completeSize = malloc_usable_size(addr); SkASSERT(completeSize >= size); - #elif defined(SK_BUILD_FOR_UNIX) + #elif defined(SK_BUILD_FOR_UNIX) && !defined(__OpenBSD__) && !defined(__NetBSD__) completeSize = malloc_usable_size(addr); SkASSERT(completeSize >= size); #elif defined(SK_BUILD_FOR_WIN) diff --git a/src/ports/SkOSFile_posix.cpp b/src/ports/SkOSFile_posix.cpp index 1be1330790..8af0a6d6a7 100644 --- a/src/ports/SkOSFile_posix.cpp +++ b/src/ports/SkOSFile_posix.cpp @@ -25,7 +25,7 @@ #endif void sk_fsync(FILE* f) { -#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) +#if !defined(SK_BUILD_FOR_ANDROID) && !defined(__UCLIBC__) && !defined(_NEWLIB_VERSION) && !defined(__OpenBSD__) int fd = fileno(f); fsync(fd); #endif ================================================ FILE: ports/skia/graphite.patch ================================================ diff --git a/include/gpu/graphite/Recorder.h b/include/gpu/graphite/Recorder.h index cfd486afe3..c97dca0d17 100644 --- a/include/gpu/graphite/Recorder.h +++ b/include/gpu/graphite/Recorder.h @@ -12,6 +12,7 @@ #include "include/core/SkRecorder.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSurface.h" +#include "include/gpu/graphite/ImageProvider.h" #include "include/gpu/graphite/GraphiteTypes.h" #include "include/gpu/graphite/Recording.h" #include "include/private/base/SingleOwner.h" ================================================ FILE: ports/skia/pdfsubsetfont-uwp.diff ================================================ diff --git a/src/pdf/SkPDFSubsetFont.cpp b/src/pdf/SkPDFSubsetFont.cpp index 307c4304a2..db723bcd42 100644 --- a/src/pdf/SkPDFSubsetFont.cpp +++ b/src/pdf/SkPDFSubsetFont.cpp @@ -111,6 +111,7 @@ sk_sp SkPDFSubsetFont(const SkTypeface& typeface, const SkPDFGlyphUse& g #else +#include "include/core/SkData.h" sk_sp SkPDFSubsetFont(const SkTypeface&, const SkPDFGlyphUse&) { return nullptr; } ================================================ FILE: ports/skia/portfile.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/skia-functions.cmake") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/skia REF "50841da4a7b7064b3cea8a851e60ef921c87a103" SHA512 ea9ebab3baf3f50277bd1406b6b5cd28df75fe9fa6586f6022cb08f229fc86bedd84192564f0d3b9a6013cda8e92874c070bf1fef9f3ed2d6a7433a0d713d6af PATCHES # disable-dev-test.patch bentleyottmann-build.patch graphite.patch vulkan-headers.patch pdfsubsetfont-uwp.diff skparagraph-dllexport.patch use-pkgconfig-to-find-gl.patch dont-use-response-file.patch fix-bsd.patch allow-disabling-lib-dl.patch always-build-pathops.patch skstrendswith-dllexport.patch dawn.patch skcms-dllexport.patch ) # De-vendor file(REMOVE_RECURSE "${SOURCE_PATH}/include/third_party/vulkan") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/dawn") # these following aren't available in vcpkg # to update, visit the DEPS file in Skia's root directory declare_external_from_git(d3d12allocator URL "https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator.git" REF "169895d529dfce00390a20e69c2f516066fe7a3b" LICENSE_FILE LICENSE.txt ) declare_external_from_git(dng_sdk URL "https://android.googlesource.com/platform/external/dng_sdk.git" REF "dbe0a676450d9b8c71bf00688bb306409b779e90" LICENSE_FILE LICENSE ) declare_external_from_git(jinja2 URL "https://chromium.googlesource.com/chromium/src/third_party/jinja2" REF "c3027d884967773057bf74b957e3fea87e5df4d7" LICENSE_FILE LICENSE.rst ) declare_external_from_git(markupsafe URL "https://chromium.googlesource.com/chromium/src/third_party/markupsafe" REF "4256084ae14175d38a3ff7d739dca83ae49ccec6" LICENSE_FILE LICENSE ) declare_external_from_git(partition_alloc URL "https://chromium.googlesource.com/chromium/src/base/allocator/partition_allocator.git" REF "ce13777cb731e0a60c606d1741091fd11a0574d7" LICENSE_FILE LICENSE ) declare_external_from_git(piex URL "https://android.googlesource.com/platform/external/piex.git" REF "bb217acdca1cc0c16b704669dd6f91a1b509c406" LICENSE_FILE LICENSE ) declare_external_from_git(spirv-cross URL "https://github.com/KhronosGroup/SPIRV-Cross" REF "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3" LICENSE_FILE LICENSE ) declare_external_from_git(spirv-headers URL "https://github.com/KhronosGroup/SPIRV-Headers.git" REF "f31ca173eff866369e54d35e53375fadbabd58f4" LICENSE_FILE LICENSE ) declare_external_from_git(spirv-tools URL "https://github.com/KhronosGroup/SPIRV-Tools.git" REF "f139c64525c7c449c83d299a9fda4e1657bf37ab" LICENSE_FILE LICENSE ) declare_external_from_git(wuffs URL "https://github.com/google/wuffs-mirror-release-c.git" REF "e3f919ccfe3ef542cfc983a82146070258fb57f8" LICENSE_FILE LICENSE ) declare_external_from_pkgconfig(abseil-cpp) declare_external_from_pkgconfig(expat) declare_external_from_pkgconfig(fontconfig PATH "third_party") declare_external_from_pkgconfig(freetype2) declare_external_from_pkgconfig(gl) declare_external_from_pkgconfig(harfbuzz MODULES harfbuzz harfbuzz-subset) declare_external_from_pkgconfig(icu MODULES icu-uc) declare_external_from_pkgconfig(libavif) declare_external_from_pkgconfig(libjpeg PATH "third_party/libjpeg-turbo" MODULES libturbojpeg libjpeg) declare_external_from_pkgconfig(libpng) declare_external_from_pkgconfig(libwebp MODULES libwebpdecoder libwebpdemux libwebpmux libwebp) declare_external_from_pkgconfig(zlib) declare_external_from_vcpkg(vulkan_headers PATH third_party/externals/vulkan-headers) set(known_cpus x86 x64 arm arm64 wasm) if(NOT VCPKG_TARGET_ARCHITECTURE IN_LIST known_cpus) message(WARNING "Unknown target cpu '${VCPKG_TARGET_ARCHITECTURE}'.") endif() string(JOIN " " OPTIONS "target_cpu=\"${VCPKG_TARGET_ARCHITECTURE}\"" skia_enable_android_utils=false skia_enable_spirv_validation=false skia_enable_tools=false skia_enable_gpu_debug_layers=false skia_use_jpeg_gainmaps=false skia_use_lua=false ) set(OPTIONS_DBG "is_debug=true") set(OPTIONS_REL "is_official_build=true") vcpkg_list(SET SKIA_TARGETS :skia :modules) if(VCPKG_TARGET_IS_ANDROID) string(APPEND OPTIONS " target_os=\"android\"") elseif(VCPKG_TARGET_IS_IOS) string(APPEND OPTIONS " target_os=\"ios\"") elseif(VCPKG_TARGET_IS_EMSCRIPTEN) string(APPEND OPTIONS " target_os=\"wasm\"") elseif(VCPKG_TARGET_IS_WINDOWS) string(APPEND OPTIONS " target_os=\"win\"") if(VCPKG_TARGET_IS_UWP) string(APPEND OPTIONS " skia_enable_winuwp=true skia_enable_fontmgr_win=false skia_use_xps=false") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(APPEND OPTIONS " skia_enable_bentleyottmann=false") endif() elseif(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_BSD) string(APPEND OPTIONS " target_os=\"linux\"") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") string(APPEND OPTIONS " is_component_build=true") else() string(APPEND OPTIONS " is_component_build=false") endif() if (VCPKG_TARGET_IS_BSD AND NOT VCPKG_TARGET_IS_FREEBSD) string(APPEND OPTIONS " skia_vcpkg_has_lib_dl=false") else() string(APPEND OPTIONS " skia_vcpkg_has_lib_dl=true") endif() set(required_externals expat piex zlib wuffs ) if("dng" IN_LIST FEATURES) list(APPEND required_externals dng_sdk) string(APPEND OPTIONS " skia_use_dng_sdk=true") else() string(APPEND OPTIONS " skia_use_dng_sdk=false") endif() if("fontconfig" IN_LIST FEATURES) list(APPEND required_externals fontconfig) string(APPEND OPTIONS " skia_use_fontconfig=true") if(VCPKG_TARGET_IS_WINDOWS) string(APPEND OPTIONS " skia_enable_fontmgr_FontConfigInterface=false") endif() else() string(APPEND OPTIONS " skia_use_fontconfig=false") endif() if("freetype" IN_LIST FEATURES) list(APPEND required_externals freetype2) string(APPEND OPTIONS " skia_use_freetype=true") else() string(APPEND OPTIONS " skia_use_freetype=false") endif() if("harfbuzz" IN_LIST FEATURES) list(APPEND required_externals harfbuzz) string(APPEND OPTIONS " skia_use_harfbuzz=true") else() string(APPEND OPTIONS " skia_use_harfbuzz=false") endif() if("icu" IN_LIST FEATURES) list(APPEND required_externals icu) string(APPEND OPTIONS " skia_use_icu=true skia_use_system_icu=true") else() string(APPEND OPTIONS " skia_use_icu=false") endif() if("gl" IN_LIST FEATURES) if (VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_BSD) list(APPEND required_externals gl) endif() string(APPEND OPTIONS " skia_use_gl=true") else() string(APPEND OPTIONS " skia_use_gl=false") endif() if("metal" IN_LIST FEATURES) string(APPEND OPTIONS " skia_use_metal=true") endif() if("vulkan" IN_LIST FEATURES) list(APPEND required_externals vulkan_headers) if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") list(APPEND required_externals spirv-tools spirv-headers ) endif() string(APPEND OPTIONS " skia_use_vulkan=true skia_vulkan_memory_allocator_dir=\"${CURRENT_INSTALLED_DIR}\"") endif() if("direct3d" IN_LIST FEATURES) list(APPEND required_externals spirv-cross spirv-headers d3d12allocator ) string(APPEND OPTIONS " skia_use_direct3d=true") endif() if("graphite" IN_LIST FEATURES) string(APPEND OPTIONS " skia_enable_graphite=true") else() string(APPEND OPTIONS " skia_enable_graphite=false") endif() if("dawn" IN_LIST FEATURES) string(APPEND OPTIONS " skia_use_dawn=true") declare_external_from_pkgconfig(dawn PATH "third_party/dawn" MODULES unofficial_webgpu_dawn) list(APPEND required_externals dawn) endif() if("pdf" IN_LIST FEATURES) string(APPEND OPTIONS " skia_enable_pdf=true") else() string(APPEND OPTIONS " skia_enable_pdf=false") endif() if("jpeg" IN_LIST FEATURES) list(APPEND required_externals libjpeg) string(APPEND OPTIONS " skia_use_libjpeg_turbo_decode=true skia_use_libjpeg_turbo_encode=true skia_use_no_jpeg_encode=false") else() string(APPEND OPTIONS " skia_use_libjpeg_turbo_decode=false skia_use_libjpeg_turbo_encode=false skia_use_no_jpeg_encode=true") endif() if("png" IN_LIST FEATURES) list(APPEND required_externals libpng) string(APPEND OPTIONS " skia_use_libpng_decode=true skia_use_libpng_encode=true skia_use_no_png_encode=false") else() string(APPEND OPTIONS " skia_use_libpng_decode=false skia_use_libpng_encode=false skia_use_no_png_encode=true") endif() if("webp" IN_LIST FEATURES) list(APPEND required_externals libwebp) string(APPEND OPTIONS " skia_use_libwebp_decode=true skia_use_libwebp_encode=true skia_use_no_webp_encode=false") else() string(APPEND OPTIONS " skia_use_libwebp_decode=false skia_use_libwebp_encode=false skia_use_no_webp_encode=true") endif() if("avif" IN_LIST FEATURES) list(APPEND required_externals libavif) string(APPEND OPTIONS " skia_use_libavif=true") else() string(APPEND OPTIONS " skia_use_libavif=false") endif() get_externals(${required_externals}) if("icu" IN_LIST FEATURES) vcpkg_replace_string("${SOURCE_PATH}/third_party/icu/BUILD.gn" [[config("vcpkg_icu") {]] [[import("icu.gni") config("vcpkg_icu") {]]) endif() vcpkg_find_acquire_program(PYTHON3) vcpkg_replace_string("${SOURCE_PATH}/.gn" "script_executable = \"python3\"" "script_executable = \"${PYTHON3}\"") vcpkg_replace_string("${SOURCE_PATH}/gn/toolchain/BUILD.gn" "python3 " "\\\"${PYTHON3}\\\" ") vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") if(VCPKG_TARGET_IS_WINDOWS) string(REGEX REPLACE "[\\]\$" "" WIN_VC "$ENV{VCINSTALLDIR}") string(REGEX REPLACE "[\\]\$" "" WIN_SDK "$ENV{WindowsSdkDir}") string(APPEND OPTIONS " win_vc=\"${WIN_VC}\"") string(APPEND OPTIONS " win_sdk=\"${WIN_SDK}\"") elseif(VCPKG_TARGET_IS_ANDROID) string(APPEND OPTIONS " ndk=\"${VCPKG_DETECTED_CMAKE_ANDROID_NDK}\" ndk_api=${VCPKG_DETECTED_CMAKE_SYSTEM_VERSION}") else() string(APPEND OPTIONS " \ cc=\"${VCPKG_DETECTED_CMAKE_C_COMPILER}\" \ cxx=\"${VCPKG_DETECTED_CMAKE_CXX_COMPILER}\"") endif() string_to_gn_list(SKIA_C_FLAGS_DBG "${VCPKG_COMBINED_C_FLAGS_DEBUG}") string_to_gn_list(SKIA_CXX_FLAGS_DBG "${VCPKG_COMBINED_CXX_FLAGS_DEBUG}") string(APPEND OPTIONS_DBG " \ extra_cflags_c=${SKIA_C_FLAGS_DBG} \ extra_cflags_cc=${SKIA_CXX_FLAGS_DBG}") string_to_gn_list(SKIA_C_FLAGS_REL "${VCPKG_COMBINED_C_FLAGS_RELEASE}") string_to_gn_list(SKIA_CXX_FLAGS_REL "${VCPKG_COMBINED_CXX_FLAGS_RELEASE}") string(APPEND OPTIONS_REL " \ extra_cflags_c=${SKIA_C_FLAGS_REL} \ extra_cflags_cc=${SKIA_CXX_FLAGS_REL}") if(VCPKG_TARGET_IS_UWP) string_to_gn_list(SKIA_LD_FLAGS "-APPCONTAINER WindowsApp.lib") string(APPEND OPTIONS " extra_ldflags=${SKIA_LD_FLAGS}") endif() vcpkg_gn_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "${OPTIONS}" OPTIONS_DEBUG "${OPTIONS_DBG}" OPTIONS_RELEASE "${OPTIONS_REL}" ) skia_gn_install( SOURCE_PATH "${SOURCE_PATH}" TARGETS ${SKIA_TARGETS} ) # Use skia repository layout in ${CURRENT_PACKAGES_DIR}/include/skia file(COPY "${SOURCE_PATH}/include" "${SOURCE_PATH}/modules" "${SOURCE_PATH}/src" DESTINATION "${CURRENT_PACKAGES_DIR}/include/skia" FILES_MATCHING PATTERN "*.h" ) auto_clean("${CURRENT_PACKAGES_DIR}/include/skia") # vcpkg legacy layout omits "include/" component. Just duplicate. file(COPY "${CURRENT_PACKAGES_DIR}/include/skia/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/skia") # vcpkg legacy file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/skiaConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/skia") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/example/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/example/skcms.cpp" "${CMAKE_CURRENT_LIST_DIR}/example/skpathediting.cpp" "${SOURCE_PATH}/tools/convert-to-nia.cpp" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/example" ) file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/example/convert-to-nia.cpp" [[ // Test for https://github.com/microsoft/vcpkg/issues/27219 #include "include/core/SkColorSpace.h" ]]) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(GLOB third_party_licenses "${SOURCE_PATH}/third_party_licenses/*") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE" ${third_party_licenses}) ================================================ FILE: ports/skia/skcms-dllexport.patch ================================================ diff --git a/modules/skcms/BUILD.gn b/modules/skcms/BUILD.gn index 5d037a94c9..0ef92c4762 100644 --- a/modules/skcms/BUILD.gn +++ b/modules/skcms/BUILD.gn @@ -85,12 +85,22 @@ static_library("skcms") { if (!is_win || is_clang) { cflags += [ "-std=c11" ] } + + defines = [] if (target_cpu != "x64" || target_os == "android") { - defines = [ + defines += [ "SKCMS_DISABLE_HSW", "SKCMS_DISABLE_SKX", ] } + + if (is_component_build) { + defines += [ + "SKCMS_DLL", + "SKCMS_IMPLEMENTATION=1", + ] + } + public = skcms_public_headers sources = skcms_public + skcms_TransformBaseline deps = [ ================================================ FILE: ports/skia/skia-functions.cmake ================================================ # Declare a named external dependency for download with vcpkg_from_git, # and validate against upstream's DEPS. function(declare_external_from_git name) cmake_parse_arguments(PARSE_ARGV 1 arg "" "URL;REF;LICENSE_FILE" "") if(NOT arg_URL OR NOT arg_REF OR NOT arg_LICENSE_FILE) message(FATAL_ERROR "Arguments URL, REF and LICENSE_FILE are required.") endif() set(actual "${arg_URL}@${arg_REF}") file(STRINGS "${SOURCE_PATH}/DEPS" upstream REGEX "\"third_party/externals/${name}\"") string(REPLACE "https://chromium.googlesource.com/external/github.com" "https://github.com" upstream "${upstream}") string(REPLACE "https://skia.googlesource.com/external/github.com" "https://github.com" upstream "${upstream}") string(FIND "${upstream}" "${arg_URL}@${arg_REF}" pos) if(pos STREQUAL "-1") string(REGEX REPLACE "^[^:]*: *" "" upstream "${upstream}") message(WARNING "Dependency ${name} diverges from upstream. Upstream: ${upstream} Actual: \"${actual}\"") endif() set(skia_external_license_${name} "${arg_LICENSE_FILE}" PARENT_SCOPE) list(REMOVE_ITEM ARGN "LICENSE_FILE" "${arg_LICENSE_FILE}") set(skia_external_git_${name} "${ARGN}" PARENT_SCOPE) endfunction() # Declare a named external dependencies to be resolved via pkgconfig. function(declare_external_from_pkgconfig name) set(skia_external_pkgconfig_${name} "${ARGN}" PARENT_SCOPE) endfunction() # Declare a named external dependencies to be resolved via vcpkg installed tree. function(declare_external_from_vcpkg name) set(skia_external_vcpkg_${name} "${ARGN}" PARENT_SCOPE) endfunction() # Download and integrate named external dependencies. # Downlods must be handled before vcpkg in order to support --only-downloads mode. function(get_externals) set(licenses_dir "${SOURCE_PATH}/third_party_licenses") file(REMOVE_RECURSE "${licenses_dir}") file(MAKE_DIRECTORY "${licenses_dir}") list(REMOVE_DUPLICATES ARGN) set(from_git "") set(from_pkgconfig "") set(from_vcpkg "") foreach(name IN LISTS ARGN) if(DEFINED "skia_external_git_${name}") list(APPEND from_git "${name}") elseif(DEFINED "skia_external_pkgconfig_${name}") list(APPEND from_pkgconfig "${name}") elseif(DEFINED "skia_external_vcpkg_${name}") list(APPEND from_vcpkg "${name}") else() message(FATAL_ERROR "Unknown external dependency '${name}'") endif() endforeach() foreach(name IN LISTS from_git) set(dir "third_party/externals/${name}") if(EXISTS "${SOURCE_PATH}/${dir}") message(STATUS "Using existing ${dir}") continue() endif() message(STATUS "Creating ${dir}") file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party/externals") vcpkg_from_git( OUT_SOURCE_PATH staging_dir ${skia_external_git_${name}} ) file(RENAME "${staging_dir}" "${SOURCE_PATH}/${dir}") set(license_file "${SOURCE_PATH}/${dir}/${skia_external_license_${name}}") if(NOT EXISTS "${license_file}") # partition_alloc does not have a license file message(WARNING "Missing license file: ${license_file}") else() cmake_path(GET license_file FILENAME filename) file(COPY_FILE "${license_file}" "${licenses_dir}/## ${name} ${filename}") endif() endforeach() foreach(name IN LISTS from_pkgconfig) third_party_from_pkgconfig("${name}" ${skia_external_pkgconfig_${name}}) endforeach() foreach(name IN LISTS from_vcpkg) third_party_from_vcpkg("${name}" ${skia_external_vcpkg_${name}}) endforeach() endfunction() # Setup a third-party dependency from pkg-config data function(third_party_from_pkgconfig gn_group) cmake_parse_arguments(PARSE_ARGV 1 arg "" "PATH" "DEFINES;MODULES") if(NOT arg_PATH) set(arg_PATH "third_party/${gn_group}") endif() if(NOT arg_MODULES) set(arg_MODULES "${gn_group}") endif() if(arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unparsed arguments: ${arg_UNPARSED_ARGUMENTS}") endif() x_vcpkg_pkgconfig_get_modules(PREFIX PC_${module} MODULES ${arg_MODULES} CFLAGS LIBS) foreach(config IN ITEMS DEBUG RELEASE) separate_arguments(cflags UNIX_COMMAND "${PC_${module}_CFLAGS_${config}}") set(defines "${cflags}") list(FILTER defines INCLUDE REGEX "^-D" ) list(TRANSFORM defines REPLACE "^-D" "") list(APPEND defines ${arg_DEFINES}) set(include_dirs "${cflags}") list(FILTER include_dirs INCLUDE REGEX "^-I" ) list(TRANSFORM include_dirs REPLACE "^-I" "") separate_arguments(libs UNIX_COMMAND "${PC_${module}_LIBS_${config}}") set(lib_dirs "${libs}") list(FILTER lib_dirs INCLUDE REGEX "^-L" ) list(TRANSFORM lib_dirs REPLACE "^-L" "") # Passing link libraries via ldflags, cf. third-party.gn.in set(ldflags "${libs}") list(FILTER ldflags INCLUDE REGEX "^-l" ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(TRANSFORM ldflags REPLACE "^-l" "") list(TRANSFORM ldflags APPEND ".lib") set(libs_with_path "") # At least icu must be newer than in Windows SDK foreach(name IN LISTS ldflags) set(filepath NOTFOUND) set(possible_names "${name}") string(REGEX REPLACE "\\.lib$" ".dll.lib" dll_lib_name "${name}") if(NOT dll_lib_name STREQUAL name) list(APPEND possible_names "${dll_lib_name}") endif() find_file(filepath NAMES ${possible_names} PATHS ${lib_dirs} NO_DEFAULT_PATH NO_CACHE) if(filepath) list(APPEND libs_with_path "${filepath}") else() list(APPEND libs_with_path "${name}") endif() endforeach() set(ldflags "${libs_with_path}") endif() set(GN_OUT_${config} "") foreach(item IN ITEMS defines include_dirs lib_dirs ldflags) set("gn_${item}_${config}" "") if(NOT "${${item}}" STREQUAL "") list(JOIN ${item} [[", "]] list) set("gn_${item}_${config}" "\"${list}\"") endif() endforeach() endforeach() configure_file("${CMAKE_CURRENT_LIST_DIR}/third-party.gn.in" "${SOURCE_PATH}/${arg_PATH}/BUILD.gn" @ONLY) endfunction() # Setup a third-party dependency from vcpkg installed tree function(third_party_from_vcpkg gn_group) cmake_parse_arguments(PARSE_ARGV 1 arg "" "PATH" "") if(NOT arg_PATH) set(arg_PATH "third_party/${gn_group}") endif() if(arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unparsed arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(defines "") set(include_dirs "${CURRENT_INSTALLED_DIR}/include") set(libdirs_RELEASE "${CURRENT_INSTALLED_DIR}/lib") set(libdirs_DEBUG "${CURRENT_INSTALLED_DIR}/debug/lib") set(ldflags "") foreach(config IN ITEMS DEBUG RELEASE) set(lib_dirs "${libdirs_${config}}") set(GN_OUT_${config} "") foreach(item IN ITEMS defines include_dirs lib_dirs ldflags) set("gn_${item}_${config}" "") if(NOT "${${item}}" STREQUAL "") list(JOIN ${item} [[", "]] list) set("gn_${item}_${config}" "\"${list}\"") endif() endforeach() endforeach() configure_file("${CMAKE_CURRENT_LIST_DIR}/third-party.gn.in" "${SOURCE_PATH}/${arg_PATH}/BUILD.gn" @ONLY) endfunction() # Turn a space separated string into a gn list: # "a b c" -> ["a","b","c"] function(string_to_gn_list out_var input) separate_arguments(list UNIX_COMMAND "${input}") if(NOT list STREQUAL "") list(JOIN list [[","]] temp) set(list "\"${temp}\"") endif() set("${out_var}" "[${list}]" PARENT_SCOPE) endfunction() # Remove all empty directories. function(auto_clean dir) file(GLOB entries "${dir}/*") file(GLOB files LIST_DIRECTORIES false "${dir}/*") foreach(entry IN LISTS entries) if(entry IN_LIST files) continue() endif() file(GLOB_RECURSE children "${entry}/*") if(children) auto_clean("${entry}") else() file(REMOVE_RECURSE "${entry}") endif() endforeach() endfunction() function(list_from_json out_var json) # vcpkg_list(SET list) string(JSON array ERROR_VARIABLE error GET "${json}" ${ARGN}) if(NOT error) string(JSON len ERROR_VARIABLE error LENGTH "${array}") if(NOT error AND NOT len STREQUAL "0") math(EXPR last "${len} - 1") foreach(i RANGE "${last}") string(JSON item GET "${array}" "${i}") vcpkg_list(APPEND list "${item}") endforeach() endif() endif() set("${out_var}" "${list}" PARENT_SCOPE) endfunction() # Expand gn targets for installable components. function(expand_gn_targets targets_var desc_var source_path) set(expand_gn_targets_components "") set(expand_gn_targets_visited "") foreach(gn_target IN LISTS "${targets_var}") expand_gn_targets_recurse("${gn_target}" "${desc_var}" "${source_path}") endforeach() set("${targets_var}" "${expand_gn_targets_components}" PARENT_SCOPE) endfunction() # Private helper for expand_gn_targets. function(expand_gn_targets_recurse gn_target desc_var source_path) # shortcuts if(gn_target IN_LIST expand_gn_targets_components) return() elseif(gn_target IN_LIST expand_gn_targets_visited) return() endif() list(APPEND expand_gn_targets_visited "${gn_target}") # current target set(recurse 1) string(JSON current_json GET "${${desc_var}}" "${gn_target}") string(JSON target_type GET "${current_json}" "type") if(target_type STREQUAL "static_library" AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REGEX REPLACE "^//([^:]*):(.*)\$" "${source_path}/\\1/BUILD.gn" build_gn_file "${gn_target}") if(EXISTS "${build_gn_file}") # skia's third-party "dawn_component" creates separate _shared/_static libs. string(REGEX REPLACE "^(.*)(_static|_shared)\$" "(\\1\\2|\\1)" name_pattern "${CMAKE_MATCH_2}") file(STRINGS "${build_gn_file}" maybe_component REGEX "component[(]\"${name_pattern}\"[)]") if(NOT maybe_component STREQUAL "") list(APPEND expand_gn_targets_components "${gn_target}") endif() else() message(WARNING "No ${build_gn_file}") endif() elseif(target_type MATCHES "^(executable|loadable_module|shared_library)\$") list(APPEND expand_gn_targets_components "${gn_target}") elseif(NOT target_type MATCHES "^(group|source_set)\$") set(recurse 0) endif() if(recurse) list_from_json(deps "${current_json}" "deps") foreach(dep IN LISTS deps) expand_gn_targets_recurse("${dep}" "${desc_var}" "${source_path}") endforeach() endif() set(expand_gn_targets_components "${expand_gn_targets_components}" PARENT_SCOPE) set(expand_gn_targets_visited "${expand_gn_targets_visited}" PARENT_SCOPE) endfunction() # Provide a cmake target name (w/o namespace) in out_var function(get_cmake_target out_var gn_target) if(gn_target MATCHES "/([^:/]+):") string(REPLACE "/${CMAKE_MATCH_1}:${CMAKE_MATCH_1}" "/${CMAKE_MATCH_1}" gn_target "${gn_target}") endif() string(REGEX REPLACE "[:/]+" "::" target "unofficial/${PORT}${gn_target}") set("${out_var}" "${target}" PARENT_SCOPE) endfunction() # Put the target's SK_<...> definitions in out_var function(get_definitions out_var desc_json target) list_from_json(output "${desc_json}" "${target}" "defines") list(FILTER output INCLUDE REGEX "^SK_") set("${out_var}" "${output}" PARENT_SCOPE) endfunction() # Put the target's link libraries in out_var function(get_link_libs out_var desc_json target) # We don't pass this variable explicitly now. separate_arguments(known_standard_libraries NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") # From ldflags, we only want lib names or filepaths (cf. declare_external_from_pkgconfig) list_from_json(ldflags "${desc_json}" "${target}" "ldflags") string(REPLACE "-isysroot;" "-isysroot " ldflags "${ldflags}") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) list(FILTER ldflags INCLUDE REGEX "[.]lib\$") else() list(FILTER ldflags INCLUDE REGEX "^-l|^/") endif() list(TRANSFORM ldflags REPLACE "^-l" "") list_from_json(libs "${desc_json}" "${target}" "libs") vcpkg_list(SET frameworks) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) list_from_json(frameworks "${desc_json}" "${target}" "frameworks") list(TRANSFORM frameworks REPLACE "^(.*)[.]framework\$" "-framework \\1") endif() vcpkg_list(SET output) foreach(lib IN LISTS frameworks ldflags libs) if(VCPKG_TARGET_IS_WINDOWS) string(TOLOWER "${lib}" lib_key) else() set(lib_key "{lib}") endif() if(lib_key IN_LIST known_standard_libraries) continue() endif() string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${z_vcpkg_${PORT}_root}" lib "${lib}") string(REPLACE "${CURRENT_PACKAGES_DIR}" "\${z_vcpkg_${PORT}_root}" lib "${lib}") if(NOT lib MATCHES "^-L") vcpkg_list(REMOVE_ITEM output "${lib}") endif() vcpkg_list(APPEND output "${lib}") endforeach() set("${out_var}" "${output}" PARENT_SCOPE) endfunction() # A revised variant of vcpkg_gn_install function(skia_gn_install_build_type) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "BUILD_TYPE;SOURCE_PATH;INSTALL_DIR;LABEL" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: skia_gn_install_build_type was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(build_dir "${CURRENT_BUILDTREES_DIR}/${arg_LABEL}") # `gn desc json` output is dual-use: logging (early) and further processing # Cf. https://github.com/universeroc/gn/blob/master/docs/reference.md#desc vcpkg_find_acquire_program(GN) vcpkg_execute_required_process( COMMAND "${GN}" desc --format=json --all --testonly=false "${build_dir}" "*" WORKING_DIRECTORY "${arg_SOURCE_PATH}" LOGNAME "desc-${arg_LABEL}" ) # build set(VCPKG_BUILD_TYPE "${arg_BUILD_TYPE}") vcpkg_build_ninja(TARGETS ${arg_TARGETS}) # install and export set(logfile "${CURRENT_BUILDTREES_DIR}/install-${arg_LABEL}.log") file(WRITE "${logfile}" "") message(STATUS "Installing (${arg_LABEL})...") file(MAKE_DIRECTORY "${arg_INSTALL_DIR}/share/unofficial-${PORT}") list(TRANSFORM arg_TARGETS PREPEND "//") file(READ "${CURRENT_BUILDTREES_DIR}/desc-${arg_LABEL}-out.log" desc) string(REGEX REPLACE "^([^{]+)\n{\n" "{\n" desc "${desc}") if(NOT "${CMAKE_MATCH_1}" STREQUAL "") message(STATUS "${CMAKE_MATCH_1}") endif() expand_gn_targets(arg_TARGETS desc "${arg_SOURCE_PATH}") string(TOUPPER "${arg_BUILD_TYPE}" cmake_build_type) set(cmake_config_genex [[\$>]]) if(cmake_build_type STREQUAL "DEBUG") set(cmake_config_genex [[\$]]) endif() foreach(gn_target IN LISTS arg_TARGETS) get_cmake_target(cmake_target "${gn_target}") set(add_target "add_library(${cmake_target} INTERFACE IMPORTED)") set(has_location "0") set(imported_location "") set(not_executable "1") string(JSON target_type GET "${desc}" "${gn_target}" "type") set(link_language "C") string(JSON sources ERROR_VARIABLE unused GET "${desc}" "${gn_target}" "sources") if(sources MATCHES "[.]cxx|[.]cpp") set(link_language "CXX") endif() list_from_json(outputs "${desc}" "${gn_target}" "outputs") foreach(output IN LISTS outputs) if(CMAKE_HOST_WIN32) # absolute path (e.g. /C:/path/to/target.lib) string(REGEX REPLACE "^/([^/]:)" "\\1" output "${output}") endif() # relative path (e.g. //out/Release/target.lib) string(REGEX REPLACE "^//" "${arg_SOURCE_PATH}/" output "${output}") cmake_path(GET output FILENAME filename) set(add_target "add_library(${cmake_target} UNKNOWN IMPORTED)") set(destination "${arg_INSTALL_DIR}/lib") set(has_location "1") if(target_type STREQUAL "executable") set(add_target "add_executable(${cmake_target} IMPORTED)") set(destination "${arg_INSTALL_DIR}/tools/${PORT}") set(imported_location "${destination}/${filename}") set(not_executable "0") elseif(filename MATCHES "\\.(dll|pdb)\$") if(CMAKE_MATCH_1 STREQUAL "pdb" AND NOT EXISTS "${output}") continue() endif() set(destination "${arg_INSTALL_DIR}/bin") # Do not set (overwrite) imported_location else() set(imported_location "${destination}/${filename}") endif() # output artifact installation file(APPEND "${logfile}" "Installing: ${destination}/${filename}\n") file(COPY "${output}" DESTINATION "${destination}") endforeach() # CMake target properties string(REPLACE "::" "-" basename "${cmake_target}") get_definitions(interface_compile_definitions "${desc}" "${gn_target}") get_link_libs(interface_link_libs "${desc}" "${gn_target}") set(interface_link_targets "") list_from_json(deps "${desc}" "${gn_target}" "deps") foreach(dep IN LISTS deps) if(dep IN_LIST arg_TARGETS) get_cmake_target(cmake_dep "${dep}") list(APPEND interface_link_targets "${cmake_dep}") endif() endforeach() file(APPEND "${logfile}" "Installing: ${arg_INSTALL_DIR}/share/unofficial-${PORT}/${basename}-targets.cmake\n") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}-targets.cmake" "${arg_INSTALL_DIR}/share/unofficial-${PORT}/${basename}-targets.cmake" @ONLY) file(APPEND "${logfile}" "Installing: ${arg_INSTALL_DIR}/share/unofficial-${PORT}/${basename}-targets-${arg_BUILD_TYPE}.cmake\n") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}-targets-details.cmake" "${arg_INSTALL_DIR}/share/unofficial-${PORT}/${basename}-targets-${arg_BUILD_TYPE}.cmake" @ONLY) endforeach() # Main CMake config file file(APPEND "${logfile}" "Installing: ${arg_INSTALL_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake\n") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-${PORT}-config.cmake" "${arg_INSTALL_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) endfunction() # A revised variant of vcpkg_gn_install function(skia_gn_install) cmake_parse_arguments(PARSE_ARGV 0 arg "" "SOURCE_PATH" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_gn_install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified.") endif() set(auto_clean_debug_share TRUE) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/share") set(auto_clean_debug_share FALSE) endif() skia_gn_install_build_type( BUILD_TYPE debug LABEL "${TARGET_TRIPLET}-dbg" SOURCE_PATH "${arg_SOURCE_PATH}" INSTALL_DIR "${CURRENT_PACKAGES_DIR}/debug" TARGETS ${arg_TARGETS} ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") skia_gn_install_build_type( BUILD_TYPE release LABEL "${TARGET_TRIPLET}-rel" SOURCE_PATH "${arg_SOURCE_PATH}" INSTALL_DIR "${CURRENT_PACKAGES_DIR}" TARGETS ${arg_TARGETS} ) endif() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-${PORT}") if(auto_clean_debug_share) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() endfunction() ================================================ FILE: ports/skia/skiaConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(AUTHOR_WARNING "find_package(skia) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-skia) if(NOT TARGET skia) get_filename_component(z_vcpkg_skia_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(z_vcpkg_skia_root "${z_vcpkg_skia_root}" PATH) get_filename_component(z_vcpkg_skia_root "${z_vcpkg_skia_root}" PATH) if(z_vcpkg_skia_root STREQUAL "/") set(z_vcpkg_skia_root "") endif() add_library(skia INTERFACE IMPORTED) set_target_properties(skia PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${z_vcpkg_skia_root}/include" INTERFACE_LINK_LIBRARIES unofficial::skia::skia ) add_library(skia::skia ALIAS skia) unset(z_vcpkg_skia_root) endif() ================================================ FILE: ports/skia/skparagraph-dllexport.patch ================================================ diff --git a/modules/skparagraph/BUILD.gn b/modules/skparagraph/BUILD.gn index dedc68fa4a..d748247c19 100644 --- a/modules/skparagraph/BUILD.gn +++ b/modules/skparagraph/BUILD.gn @@ -20,6 +20,9 @@ if (skia_enable_skparagraph && skia_enable_skshaper && skia_enable_skunicode && "include", "utils", ] + if (is_component_build) { + defines += [ "SKPARAGRAPH_DLL" ] + } } skia_component("skparagraph") { @@ -27,6 +30,7 @@ if (skia_enable_skparagraph && skia_enable_skshaper && skia_enable_skunicode && public_configs = [ ":public_config" ] public = skparagraph_core_public sources = skparagraph_core_sources + defines = [ "SKPARAGRAPH_IMPLEMENTATION=1" ] public_deps = [ "../..:skia", "../skunicode", diff --git a/modules/skparagraph/include/FontCollection.h b/modules/skparagraph/include/FontCollection.h index 7611e7e194..9db3407ecd 100644 --- a/modules/skparagraph/include/FontCollection.h +++ b/modules/skparagraph/include/FontCollection.h @@ -8,6 +8,7 @@ #include "include/core/SkFontMgr.h" #include "include/core/SkRefCnt.h" #include "include/core/SkSpan.h" +#include "modules/skparagraph/include/skparagraph_export.h" #include "modules/skparagraph/include/FontArguments.h" #include "modules/skparagraph/include/ParagraphCache.h" #include "modules/skparagraph/include/TextStyle.h" @@ -18,7 +19,7 @@ namespace textlayout { class TextStyle; class Paragraph; -class FontCollection : public SkRefCnt { +class SKPARAGRAPH_API FontCollection : public SkRefCnt { public: FontCollection(); diff --git a/modules/skparagraph/include/ParagraphBuilder.h b/modules/skparagraph/include/ParagraphBuilder.h index c8189cc446..5a01557949 100644 --- a/modules/skparagraph/include/ParagraphBuilder.h +++ b/modules/skparagraph/include/ParagraphBuilder.h @@ -7,6 +7,7 @@ #include #include #include +#include "modules/skparagraph/include/skparagraph_export.h" #include "modules/skparagraph/include/FontCollection.h" #include "modules/skparagraph/include/Paragraph.h" #include "modules/skparagraph/include/ParagraphStyle.h" @@ -16,7 +17,7 @@ namespace skia { namespace textlayout { -class ParagraphBuilder { +class SKPARAGRAPH_API ParagraphBuilder { protected: ParagraphBuilder() {} diff --git a/modules/skparagraph/include/ParagraphStyle.h b/modules/skparagraph/include/ParagraphStyle.h index 77e17da981..3f46f8e1f4 100644 --- a/modules/skparagraph/include/ParagraphStyle.h +++ b/modules/skparagraph/include/ParagraphStyle.h @@ -5,6 +5,7 @@ #include "include/core/SkFontStyle.h" #include "include/core/SkScalar.h" #include "include/core/SkString.h" +#include "modules/skparagraph/include/skparagraph_export.h" #include "modules/skparagraph/include/DartTypes.h" #include "modules/skparagraph/include/TextStyle.h" @@ -75,7 +76,7 @@ private: bool fHalfLeading; }; -struct ParagraphStyle { +struct SKPARAGRAPH_API ParagraphStyle { ParagraphStyle(); bool operator==(const ParagraphStyle& rhs) const { diff --git a/modules/skparagraph/include/TextStyle.h b/modules/skparagraph/include/TextStyle.h index 24b1fc679b..d08a9b5142 100644 --- a/modules/skparagraph/include/TextStyle.h +++ b/modules/skparagraph/include/TextStyle.h @@ -10,6 +10,7 @@ #include "include/core/SkFontStyle.h" #include "include/core/SkPaint.h" #include "include/core/SkScalar.h" +#include "modules/skparagraph/include/skparagraph_export.h" #include "modules/skparagraph/include/DartTypes.h" #include "modules/skparagraph/include/FontArguments.h" #include "modules/skparagraph/include/ParagraphPainter.h" @@ -148,9 +149,9 @@ struct PlaceholderStyle { SkScalar fBaselineOffset = 0; }; -class TextStyle { +class SKPARAGRAPH_API TextStyle { public: - TextStyle() = default; + TextStyle(); TextStyle(const TextStyle& other) = default; TextStyle& operator=(const TextStyle& other) = default; @@ -297,8 +298,6 @@ public: SkFontHinting getFontHinting() const { return fHinting; } private: - static const std::vector* kDefaultFontFamilies; - Decoration fDecoration = { TextDecoration::kNoDecoration, // TODO: switch back to kGaps when (if) switching flutter to skparagraph @@ -311,7 +310,7 @@ private: SkFontStyle fFontStyle; - std::vector fFontFamilies = *kDefaultFontFamilies; + std::vector fFontFamilies; SkScalar fFontSize = 14.0; SkFont::Edging fEdging = SkFont::Edging::kAntiAlias; diff --git a/modules/skparagraph/include/skparagraph_export.h b/modules/skparagraph/include/skparagraph_export.h new file mode 100644 index 0000000000..a19b83df57 --- /dev/null +++ b/modules/skparagraph/include/skparagraph_export.h @@ -0,0 +1,21 @@ +#pragma once + +#if !defined(SKPARAGRAPH_IMPLEMENTATION) + #define SKPARAGRAPH_IMPLEMENTATION 0 +#endif + +#if !defined(SKPARAGRAPH_API) + #if defined(SKPARAGRAPH_DLL) + #if defined(_MSC_VER) + #if SKPARAGRAPH_IMPLEMENTATION + #define SKPARAGRAPH_API __declspec(dllexport) + #else + #define SKPARAGRAPH_API __declspec(dllimport) + #endif + #else + #define SKPARAGRAPH_API __attribute__((visibility("default"))) + #endif + #else + #define SKPARAGRAPH_API + #endif +#endif diff --git a/modules/skparagraph/src/TextStyle.cpp b/modules/skparagraph/src/TextStyle.cpp index 26a7a9eb59..3e6881bde3 100644 --- a/modules/skparagraph/src/TextStyle.cpp +++ b/modules/skparagraph/src/TextStyle.cpp @@ -6,9 +6,13 @@ namespace skia { namespace textlayout { -const std::vector* TextStyle::kDefaultFontFamilies = +static const std::vector* kDefaultFontFamilies = new std::vector{SkString(DEFAULT_FONT_FAMILY)}; +TextStyle::TextStyle() : fFontFamilies(*kDefaultFontFamilies) +{ +} + TextStyle TextStyle::cloneForPlaceholder() { TextStyle result; result.fColor = fColor; diff --git a/modules/skparagraph/utils/TestFontCollection.cpp b/modules/skparagraph/utils/TestFontCollection.cpp index b74a3b99cf..3fe2b129da 100644 --- a/modules/skparagraph/utils/TestFontCollection.cpp +++ b/modules/skparagraph/utils/TestFontCollection.cpp @@ -57,6 +57,8 @@ bool TestFontCollection::addFontFromFile(const std::string& path, const std::str if (!file) { return false; } + +#if 0 #if defined(SK_TYPEFACE_FACTORY_FREETYPE) sk_sp face = SkTypeface_FreeType::MakeFromStream(std::move(file), SkFontArguments()); @@ -72,6 +74,7 @@ bool TestFontCollection::addFontFromFile(const std::string& path, const std::str } else { fFontProvider->registerTypeface(std::move(face), SkString(familyName.c_str())); } +#endif return true; } ================================================ FILE: ports/skia/skstrendswith-dllexport.patch ================================================ diff --git a/include/core/SkString.h b/include/core/SkString.h index fa6ace7395..9773330af3 100644 --- a/include/core/SkString.h +++ b/include/core/SkString.h @@ -33,8 +33,8 @@ static inline bool SkStrStartsWith(const char string[], char prefixChar) { return (prefixChar == *string); } -bool SkStrEndsWith(const char string[], const char suffixStr[]); -bool SkStrEndsWith(const char string[], char suffixChar); +SK_API bool SkStrEndsWith(const char string[], const char suffixStr[]); +SK_API bool SkStrEndsWith(const char string[], char suffixChar); int SkStrStartsWithOneOf(const char string[], const char prefixes[]); ================================================ FILE: ports/skia/third-party.gn.in ================================================ # While propagating "libs", gn would omit duplicate items, # possibly breaking linking order of static libraries. # "ldflags" are propagated literally, via "all_dependent_configs". config("vcpkg_@gn_group@") { if(is_debug) { defines = [ @gn_defines_DEBUG@ ] include_dirs = [ @gn_include_dirs_DEBUG@ ] } else { defines = [ @gn_defines_RELEASE@ ] include_dirs = [ @gn_include_dirs_RELEASE@ ] } } config("vcpkg_@gn_group@_link_libraries") { if(is_debug) { lib_dirs = [ @gn_lib_dirs_DEBUG@ ] ldflags = [ @gn_ldflags_DEBUG@ ] } else { lib_dirs = [ @gn_lib_dirs_RELEASE@ ] ldflags = [ @gn_ldflags_RELEASE@ ] } } group("@gn_group@") { public_configs = [ ":vcpkg_@gn_group@" ] all_dependent_configs = [ ":vcpkg_@gn_group@_link_libraries" ] } ================================================ FILE: ports/skia/unofficial-skia-config.cmake ================================================ if(NOT COMMAND z_vcpkg_@PORT@_get_link_libraries) function(z_vcpkg_@PORT@_get_link_libraries out_var type libraries) set(libs "") if(type STREQUAL "DEBUG") set(vcpkg_link_directories "${z_vcpkg_@PORT@_root}/debug/lib" "${z_vcpkg_@PORT@_root}/lib") else() set(vcpkg_link_directories "${z_vcpkg_@PORT@_root}/lib" "${z_vcpkg_@PORT@_root}/debug/lib") endif() foreach(lib IN LISTS libraries) if(lib MATCHES [[^/|^(dl|m|pthread)$|^-framework ]]) list(APPEND libs "${lib}") elseif(EXISTS "${lib}") list(APPEND libs "${lib}") else() string(MAKE_C_IDENTIFIER "${out_var}_${lib}_${type}" lib_var) find_library("${lib_var}" NAMES "${lib}" NAMES_PER_DIR PATHS ${vcpkg_link_directories}) mark_as_advanced("${lib_var}") if(${lib_var}) list(APPEND libs "${${lib_var}}") else() find_library("${lib_var}" NAMES "${lib}" NAMES_PER_DIR PATHS ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES} NO_DEFAULT_PATH) if(${lib_var}) list(APPEND libs "${lib}") else() message(WARNING "Omitting '${lib}' from link libraries.") endif() endif() endif() endforeach() set("${out_var}" "${libs}" PARENT_SCOPE) endfunction() endif() get_filename_component(z_vcpkg_@PORT@_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(z_vcpkg_@PORT@_root "${z_vcpkg_@PORT@_root}" PATH) file(GLOB z_vcpkg_@PORT@_config_files "${CMAKE_CURRENT_LIST_DIR}/unofficial-@PORT@-*-targets.cmake") foreach(z_vcpkg_@PORT@_config_file IN LISTS z_vcpkg_@PORT@_config_files) include("${z_vcpkg_@PORT@_config_file}") endforeach() unset(z_vcpkg_@PORT@_config_file) unset(z_vcpkg_@PORT@_config_files) unset(z_vcpkg_@PORT@_root) ================================================ FILE: ports/skia/unofficial-skia-targets-details.cmake ================================================ # Exported from "@gn_target@" if("@not_executable@") set_property(TARGET @cmake_target@ APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$>") endif() if("@has_location@") set_property(TARGET @cmake_target@ APPEND PROPERTY IMPORTED_CONFIGURATIONS "@cmake_build_type@") set_target_properties(@cmake_target@ PROPERTIES IMPORTED_LOCATION_@cmake_build_type@ "@imported_location@") if("@not_executable@") set_property(TARGET @cmake_target@ APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "\$<@cmake_config_genex@:@interface_compile_definitions@>") set_target_properties(@cmake_target@ PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@CURRENT_PACKAGES_DIR@/include/@PORT@" IMPORTED_LINK_INTERFACE_LANGUAGES_@cmake_build_type@ "@link_language@" ) z_vcpkg_@PORT@_get_link_libraries(z_vcpkg_@PORT@_link_libs "@cmake_build_type@" "@interface_link_libs@") set_property(TARGET @cmake_target@ APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$>") unset(z_vcpkg_@PORT@_link_libs) endif() endif() ================================================ FILE: ports/skia/unofficial-skia-targets.cmake ================================================ # Exported from "@gn_target@" if(NOT TARGET @cmake_target@) @add_target@ if("@not_executable@") include("${CMAKE_CURRENT_LIST_DIR}/@basename@-targets-debug.cmake" OPTIONAL) endif() include("${CMAKE_CURRENT_LIST_DIR}/@basename@-targets-release.cmake") endif() ================================================ FILE: ports/skia/usage ================================================ skia provides CMake targets: find_package(unofficial-skia CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::skia::skia) # Similar for optional components, e.g. unofficial::skia::modules::skparagraph ================================================ FILE: ports/skia/use-pkgconfig-to-find-gl.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index 37cfe09694..def43b13f1 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -993,7 +993,9 @@ optional("gpu") { "src/gpu/ganesh/gl/glx/GrGLMakeGLXInterface.cpp", "src/gpu/ganesh/gl/glx/GrGLMakeNativeInterface_glx.cpp", ] - libs += [ "GL" ] + deps += [ + "//third_party/gl" + ] } else if (is_mac) { sources += [ "src/gpu/ganesh/gl/mac/GrGLMakeNativeInterface_mac.cpp" ] } else if (is_ios) { ================================================ FILE: ports/skia/vcpkg.json ================================================ { "name": "skia", "version": "146", "description": [ "Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms.", "It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.", "Skia is sponsored and managed by Google, but is available for use by anyone under the BSD Free Software License. While engineering of the core components is done by the Skia development team, we consider contributions from any source." ], "homepage": "https://skia.org", "license": "BSD-3-Clause", "supports": "!(windows & arm32) & !mingw", "dependencies": [ "abseil", "expat", { "name": "opengl", "default-features": false, "platform": "windows & !arm64 & !uwp" }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-gn", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true }, { "name": "vcpkg-tool-gn", "host": true }, "zlib" ], "default-features": [ { "name": "direct3d", "platform": "uwp" }, { "name": "dng", "platform": "!bsd" }, { "name": "fontconfig", "platform": "linux | bsd" }, { "name": "freetype", "platform": "!(windows | osx | ios)" }, { "name": "gl", "platform": "!(windows & arm) & !uwp" }, { "name": "harfbuzz", "platform": "!uwp" }, { "name": "icu", "platform": "!uwp" }, "jpeg", "png", "webp" ], "features": { "avif": { "description": "AVIF support", "dependencies": [ "libavif" ] }, "dawn": { "description": "dawn support for skia", "supports": "!android & !uwp", "dependencies": [ { "name": "dawn", "default-features": false, "features": [ "x11" ], "platform": "linux | bsd" }, { "name": "dawn", "platform": "osx | windows" }, { "name": "skia", "default-features": false, "features": [ "graphite" ] } ] }, "direct3d": { "description": "Direct3D support for skia", "supports": "windows" }, "dng": { "description": "Support for DNG files", "supports": "!bsd" }, "fontconfig": { "description": "Fontconfig support", "dependencies": [ "fontconfig", { "name": "skia", "default-features": false, "features": [ "freetype" ] } ] }, "freetype": { "description": "Freetype support", "dependencies": [ { "name": "dlfcn-win32", "platform": "windows" }, { "name": "freetype", "default-features": false } ] }, "gl": { "description": "OpenGL support for skia", "supports": "!(windows & arm) & !uwp", "dependencies": [ "opengl-registry" ] }, "graphite": { "description": "Graphite support", "dependencies": [ { "name": "skia", "default-features": false, "features": [ "vulkan" ] } ] }, "harfbuzz": { "description": "Harfbuzz support", "dependencies": [ { "name": "harfbuzz", "default-features": false }, { "name": "skia", "default-features": false, "features": [ "icu" ] } ] }, "icu": { "description": "Use icu.", "dependencies": [ "icu" ] }, "jpeg": { "description": "Jpeg support", "dependencies": [ "libjpeg-turbo" ] }, "metal": { "description": "Metal support for skia", "supports": "ios, osx" }, "pdf": { "description": "PDF backend" }, "png": { "description": "PNG support", "dependencies": [ "libpng" ] }, "vulkan": { "description": "Vulkan support for skia", "dependencies": [ "vulkan-headers", "vulkan-memory-allocator" ] }, "webp": { "description": "WebP support", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/skia/vulkan-headers.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index aaadf42aa1..37cfe09694 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -908,6 +908,7 @@ optional("gpu_shared") { } if (skia_use_vulkan) { + public_deps += [ "//third_party/externals/vulkan-headers:vulkan_headers" ] public_defines += [ "SK_VULKAN" ] sources += skia_shared_vk_sources configs += [ ":use_skia_vulkan_headers" ] diff --git a/include/private/gpu/vk/SkiaVulkan.h b/include/private/gpu/vk/SkiaVulkan.h index 1e962ad60a..535ac6b88f 100644 --- a/include/private/gpu/vk/SkiaVulkan.h +++ b/include/private/gpu/vk/SkiaVulkan.h @@ -12,6 +12,10 @@ // IWYU pragma: begin_exports +#ifdef SK_USE_INTERNAL_VULKAN_HEADERS +# undef SK_USE_INTERNAL_VULKAN_HEADERS +#endif + #if defined(SK_USE_INTERNAL_VULKAN_HEADERS) && !defined(SK_BUILD_FOR_GOOGLE3) #include "include/third_party/vulkan/vulkan/vulkan_core.h" #else diff --git a/src/gpu/vk/vulkanmemoryallocator/VulkanMemoryAllocatorWrapper.h b/src/gpu/vk/vulkanmemoryallocator/VulkanMemoryAllocatorWrapper.h index 4f7120200f..067c1dc154 100644 --- a/src/gpu/vk/vulkanmemoryallocator/VulkanMemoryAllocatorWrapper.h +++ b/src/gpu/vk/vulkanmemoryallocator/VulkanMemoryAllocatorWrapper.h @@ -45,7 +45,11 @@ #pragma clang diagnostic ignored "-Wc++98-compat-extra-semi" #endif +#ifdef _WIN32 +#include "vma/vk_mem_alloc.h" // NO_G3_REWRITE +#else #include "vk_mem_alloc.h" // NO_G3_REWRITE +#endif #if defined(__clang__) #pragma clang diagnostic pop ================================================ FILE: ports/skyr-url/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpp-netlib/url REF 3.0.0 SHA512 dcc0a7613877ca7aac7c970fb4bcea9e2416ded7f8fe59693bf254406f0400bc170b64eb002eb7de88b3b996416f2219c9b5d6b3c72cdf0d4fb639d906ed9876 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dskyr_BUILD_TESTS=OFF -Dskyr_BUILD_DOCS=OFF -Dskyr_BUILD_EXAMPLES=OFF -Dskyr_BUILD_BENCHMARKS=OFF -Dskyr_WARNINGS_AS_ERRORS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/skyr-url) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/skyr-url/vcpkg.json ================================================ { "name": "skyr-url", "version": "3.0.0", "description": "A C++ library that implements the WhatWG URL specification", "homepage": "https://github.com/cpp-netlib/url", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sleef/android-neon.diff ================================================ diff --git a/Configure.cmake b/Configure.cmake index c7b5023..178ea44 100644 --- a/Configure.cmake +++ b/Configure.cmake @@ -253,6 +253,9 @@ set(CLANG_FLAGS_ENABLE_AVX2128 "-mavx2;-mfma") set(CLANG_FLAGS_ENABLE_AVX512F "-mavx512f") set(CLANG_FLAGS_ENABLE_AVX512FNOFMA "-mavx512f") set(CLANG_FLAGS_ENABLE_NEON32 "--target=arm-linux-gnueabihf;-mcpu=cortex-a8") +if(ANDROID) + list(FILTER CLANG_FLAGS_ENABLE_NEON32 EXCLUDE REGEX "^--target") +endif() set(CLANG_FLAGS_ENABLE_NEON32VFPV4 "-march=armv7-a;-mfpu=neon-vfpv4") # Arm AArch64 vector extensions. set(CLANG_FLAGS_ENABLE_SVE "-march=armv8-a+sve") diff --git a/src/dft/CMakeLists.txt b/src/dft/CMakeLists.txt index 526c4f8..d57c3b8 100644 --- a/src/dft/CMakeLists.txt +++ b/src/dft/CMakeLists.txt @@ -173,7 +173,9 @@ if (COMPILER_SUPPORTS_SVE) endif(COMPILER_SUPPORTS_SVE) if (COMPILER_SUPPORTS_NEON32) + if(FORCE_NEON32) set(ISALIST_SP ${ISALIST_SP} neon32sp) + endif() endif(COMPILER_SUPPORTS_NEON32) if (COMPILER_SUPPORTS_RVVM1) ================================================ FILE: ports/sleef/exclude-testerutil.diff ================================================ diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 6a1cda3..cdec16c 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -62,3 +62,5 @@ if(COMPILER_SUPPORTS_QUADMATH) target_link_libraries(${TARGET_QTESTERUTIL_OBJ} "-lquadmath") target_compile_definitions(${TARGET_QTESTERUTIL_OBJ} PRIVATE ENABLEFLOAT128=1) endif() + +set_target_properties(${TARGET_TESTERUTIL_OBJ} ${TARGET_QTESTERUTIL_OBJ} PROPERTIES EXCLUDE_FROM_ALL 1) ================================================ FILE: ports/sleef/export-link-libs.diff ================================================ diff --git a/Configure.cmake b/Configure.cmake index e23f577..c7b5023 100644 --- a/Configure.cmake +++ b/Configure.cmake @@ -55,9 +55,15 @@ endif() find_library(LIB_MPFR mpfr) if(SLEEF_BUILD_WITH_LIBM) find_library(LIBM m) + if(LIBM) + set(LIBM "m" CACHE INTERNAL "") + endif() endif() find_library(LIBGMP gmp) find_library(LIBRT rt) +if(LIBRT) + set(LIBRT "rt" CACHE INTERNAL "") +endif() find_library(LIBFFTW3 fftw3) find_library(LIBFFTW3F fftw3f) diff --git a/sleefConfig.cmake b/sleefConfig.cmake index 6e423f2..4d415ab 100644 --- a/sleefConfig.cmake +++ b/sleefConfig.cmake @@ -1 +1,5 @@ +if("@COMPILER_SUPPORTS_OPENMP@") + include(CMakeFindDependencyMacro) + find_dependency(OpenMP) +endif() include("${CMAKE_CURRENT_LIST_DIR}/sleefTargets.cmake") diff --git a/src/dft/CMakeLists.txt b/src/dft/CMakeLists.txt index 15bee24..526c4f8 100644 --- a/src/dft/CMakeLists.txt +++ b/src/dft/CMakeLists.txt @@ -216,8 +216,8 @@ endif() # Compiler properties -set(CMAKE_C_FLAGS "${ORG_CMAKE_C_FLAGS} ${DFT_C_FLAGS} ${OpenMP_C_FLAGS}") -set(CMAKE_CXX_FLAGS "${ORG_CMAKE_C_FLAGS} ${DFT_C_FLAGS} ${OpenMP_C_FLAGS}") +set(CMAKE_C_FLAGS "${ORG_CMAKE_C_FLAGS} ${DFT_C_FLAGS}") +set(CMAKE_CXX_FLAGS "${ORG_CMAKE_C_FLAGS} ${DFT_C_FLAGS}") if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") @@ -414,7 +414,7 @@ endforeach() # Target libdft add_library(${TARGET_LIBDFT} $ $ ${UNROLL_OBJECTS}) -target_link_libraries(${TARGET_LIBDFT} ${TARGET_LIBSLEEF} ${LIBM}) +target_link_libraries(${TARGET_LIBDFT} PRIVATE ${TARGET_LIBSLEEF} OpenMP::OpenMP_C ${LIBM}) set_target_properties(${TARGET_LIBDFT} PROPERTIES VERSION ${SLEEF_VERSION} diff --git a/src/libm/CMakeLists.txt b/src/libm/CMakeLists.txt index 8969ba2..25aef5b 100644 --- a/src/libm/CMakeLists.txt +++ b/src/libm/CMakeLists.txt @@ -682,7 +682,8 @@ endif(SLEEF_BUILD_INLINE_HEADERS) # use some of the math functions used in the scalar code (for example # sqrt). if(LIBM AND NOT COMPILER_SUPPORTS_BUILTIN_MATH) - target_link_libraries(${TARGET_LIBSLEEF} ${LIBM}) + target_link_libraries(${TARGET_LIBSLEEF} PRIVATE ${LIBM}) + string(APPEND PC_LIBS_PRIVATE " -lm") endif() target_sources(${TARGET_LIBSLEEF} PRIVATE $) @@ -907,7 +908,7 @@ if(ENABLE_GNUABI) # libm to use some of the math functions used in the scalar code (for # example sqrt). if(LIBM AND NOT COMPILER_SUPPORTS_BUILTIN_MATH) - target_link_libraries(${TARGET_LIBSLEEFGNUABI} ${LIBM}) + target_link_libraries(${TARGET_LIBSLEEFGNUABI} PRIVATE ${LIBM}) endif() endif(ENABLE_GNUABI) diff --git a/src/libm/sleef.pc.in b/src/libm/sleef.pc.in index f73bc14..b36ccad 100644 --- a/src/libm/sleef.pc.in +++ b/src/libm/sleef.pc.in @@ -7,3 +7,4 @@ Description: SIMD Library for Evaluating Elementary Functions, vectorized libm a Version: @SLEEF_VERSION_MAJOR@.@SLEEF_VERSION_MINOR@.@SLEEF_VERSION_PATCH@ Cflags: -I${includedir} Libs: -L${libdir} -lsleef +Libs.private: @PC_LIBS_PRIVATE@ diff --git a/src/quad/CMakeLists.txt b/src/quad/CMakeLists.txt index 8e4e261..cda4799 100644 --- a/src/quad/CMakeLists.txt +++ b/src/quad/CMakeLists.txt @@ -226,7 +226,7 @@ set_target_properties(sleefquad PROPERTIES set_target_properties(sleefquad PROPERTIES ${COMMON_TARGET_PROPERTIES}) if(LIBM AND ((NOT COMPILER_SUPPORTS_BUILTIN_MATH) OR (SLEEF_ARCH_32BIT AND SLEEF_ARCH_X86))) - target_link_libraries(sleefquad ${LIBM}) + target_link_libraries(sleefquad PRIVATE ${LIBM}) endif() # -------------------------------------------------------------------- ================================================ FILE: ports/sleef/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO shibatch/sleef REF ${VERSION} SHA512 9b47667b33a685308aa65f848b7ee620e9e8783ca4851fd57e873f34310b486fb351813f573f2a7a71b6bdc5c8b2c5ef4eb4f66c890ddfbfada7bb9d74626c0b HEAD_REF master PATCHES android-neon.diff exclude-testerutil.diff export-link-libs.diff sleefdft.pc.diff seh-cpu-ext.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES dft SLEEF_BUILD_DFT dft SLEEF_ENFORCE_DFT ) if(VCPKG_CROSSCOMPILING) list(APPEND options "-DNATIVE_BUILD_DIR=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DSLEEF_BUILD_LIBM=ON -DSLEEF_BUILD_QUAD=ON -DSLEEF_BUILD_GNUABI_LIBS=${VCPKG_TARGET_IS_LINUX} -DSLEEF_BUILD_TESTS=OFF -DSLEEF_DISABLE_SSL=ON -DSLEEF_DISABLE_SVE=ON # arm64 build issues, officially unmaintained -DSLEEF_ENABLE_TLFLOAT=OFF -DSLEEF_ENABLE_TESTER4=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/sleef) vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) set(tools mkrename qmkrename mkalias mkdisp qmkdisp) if("dft" IN_LIST FEATURES) list(APPEND tools mkdispatch mkunroll) endif() vcpkg_copy_tools( TOOL_NAMES ${tools} SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/bin" AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sleef/seh-cpu-ext.diff ================================================ diff --git a/src/libm/dispatcher.h b/src/libm/dispatcher.h index 41b69d9..4d395c3 100644 --- a/src/libm/dispatcher.h +++ b/src/libm/dispatcher.h @@ -27,6 +27,14 @@ NOEXPORT int Sleef_internal_cpuSupportsExt(void (*tryExt)(), int *cache) { static int cache = -1; if (cache != -1) return cache; +#ifdef _MSC_VER + __try { + (*tryExt)(); + cache = 1; + } __except(1) { + cache = 0; + } +#else void (*org); org = signal(SIGILL, sighandler); @@ -38,5 +46,6 @@ NOEXPORT int Sleef_internal_cpuSupportsExt(void (*tryExt)(), int *cache) { } signal(SIGILL, org); +#endif return cache; } ================================================ FILE: ports/sleef/sleefdft.pc.diff ================================================ diff --git a/src/dft/CMakeLists.txt b/src/dft/CMakeLists.txt index 526c4f8..667a7c2 100644 --- a/src/dft/CMakeLists.txt +++ b/src/dft/CMakeLists.txt @@ -443,3 +443,22 @@ install( INCLUDES # DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) + +set(items "") +foreach(lib IN LISTS OpenMP_CXX_LIB_NAMES OpenMP_C_LIB_NAMES) + list(REMOVE_ITEM items " -l${lib}") + list(APPEND items " -l${lib}") +endforeach() +string(APPEND PC_LIBS_PRIVATE ${items}) +set(items "") +foreach(flag IN LISTS OpenMP_CXX_FLAGS OpenMP_C_FLAGS) + list(REMOVE_ITEM items " ${flag}") + list(APPEND items " ${flag}") +endforeach() +string(APPEND PC_CFLAGS_PRIVATE ${items}) +configure_file("sleefdft.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sleefdft.pc" @ONLY) +install( + FILES "${CMAKE_CURRENT_BINARY_DIR}/sleefdft.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" + COMPONENT sleef_Development +) diff --git a/src/dft/sleefdft.pc.in b/src/dft/sleefdft.pc.in new file mode 100644 index 0000000..58b6e2a --- /dev/null +++ b/src/dft/sleefdft.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: SLEEFDFT +Description: SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT +Version: @SLEEF_VERSION_MAJOR@.@SLEEF_VERSION_MINOR@.@SLEEF_VERSION_PATCH@ +Cflags: -I${includedir} +Cflags.private: @PC_CFLAGS_PRIVATE@ +Libs: -L${libdir} -lsleefdft +Libs.private: @PC_LIBS_PRIVATE@ +Requires.private: sleef ================================================ FILE: ports/sleef/vcpkg.json ================================================ { "name": "sleef", "version": "3.9.0", "port-version": 1, "description": "SIMD Library for Evaluating Elementary Functions, vectorized libm and DFT", "homepage": "https://sleef.org/", "license": "BSL-1.0", "supports": "!(arm & windows)", "dependencies": [ { "name": "sleef", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dft": { "description": "Build the DFT library. Needs OpenMP.", "dependencies": [ { "name": "sleef", "host": true, "features": [ "dft" ] } ] } } } ================================================ FILE: ports/sleepy-discord/fix-messing-header.patch ================================================ diff --git a/include/sleepy_discord/zlib_compression.h b/include/sleepy_discord/zlib_compression.h index 9d95c58..b2d418e 100644 --- a/include/sleepy_discord/zlib_compression.h +++ b/include/sleepy_discord/zlib_compression.h @@ -9,6 +9,7 @@ #include #include #include +#include namespace SleepyDiscord { //This Queue is basicly a single linked list with the back and size stored ================================================ FILE: ports/sleepy-discord/portfile.cmake ================================================ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "cpr" USE_CPR "voice" ENABLE_VOICE "compression" USE_ZLIB ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yourWaifu/sleepy-discord REF 13455925f9e122c8898c6d6407e9ff7624dd0a17 SHA512 ebb5d7e5b517fd03554dfeecfb369c33544dce2605e4bb73512dd5b12ff4a393dfa7d19e7002b129841b6b7bb3eab404cfee1d3b58a08e3b591a2625ddc708d6 HEAD_REF master PATCHES fix-messing-header.patch ) # Handle version data here to prevent issues from doing this twice in parallel set(SLEEPY_DISCORD_VERSION_HASH ae26f3f573f625bc32561776126b4b06707d985c) set(SLEEPY_DISCORD_VERSION_BUILD 1017) set(SLEEPY_DISCORD_VERSION_BRANCH "master") set(SLEEPY_DISCORD_VERSION_IS_MASTER 1) set(SLEEPY_DISCORD_VERSION_DESCRIPTION_CONCAT " ") set(SLEEPY_DISCORD_VERSION_DESCRIPTION "ae26f3f") configure_file( "${SOURCE_PATH}/include/sleepy_discord/version.h.in" "${SOURCE_PATH}/include/sleepy_discord/version.h" ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DSLEEPY_VCPKG=ON -DAUTO_DOWNLOAD_LIBRARY=OFF -DUSE_ASIO=OFF # ASIO standalone off -DUSE_BOOST_ASIO=ON -DCMAKE_CXX_STANDARD=17 ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/sleepy-discord) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/sleepy-discord/vcpkg.json ================================================ { "name": "sleepy-discord", "version-date": "2025-12-18", "description": "C++ library for the Discord chat client", "homepage": "https://yourwaifu.dev/sleepy-discord/", "dependencies": [ "boost-asio", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "cpr" ], "features": { "compression": { "description": "Allow compression for Websockets connection", "dependencies": [ "zlib" ] }, "cpr": { "description": "Use CPR library for handling HTTPS", "dependencies": [ "cpr" ] }, "voice": { "description": "Voice Chat support", "dependencies": [ "libsodium", "opus" ] } } } ================================================ FILE: ports/slick-logger/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-logger REF "v${VERSION}" SHA512 7b54bd76e510eadc26b10c7811c0062fcb28f95e11a8d2c8fa9e95e6af07fcab15abe4182e67be20cfc547712b4ce26f826b9a22cc2b9fc25b662ef8fb43a653 HEAD_REF main PATCHES slick-queue.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_SLICK_LOGGER_TESTING=OFF -DBUILD_SLICK_LOGGER_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME slick-logger CONFIG_PATH lib/cmake/slick-logger ) # Header-only library - remove lib directory file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/slick-logger/slick-queue.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 991f6af..bb6221c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ project(slick-logger set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(slick-queue 1.2.2 CONFIG QUIET) +find_package(slick-queue 1.2.2 CONFIG REQUIRED) if (NOT slick-queue_FOUND) message(STATUS "Fetching slick-queue...") ================================================ FILE: ports/slick-logger/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-logger", "version": "1.0.6", "description": "A high-performance, cross-platform header-only logging library for C++20 using a multi-producer, multi-consumer ring buffer with multi-sink support and log rotation capabilities", "homepage": "https://github.com/SlickQuant/slick-logger", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "slick-queue", "version>=": "1.2.2" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/slick-net/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-net REF "v${VERSION}" SHA512 456eb848153095355ddfb06891c3cdadc1bc44b0e7c9baeedae5724e7d39cf916fc13b7a3b372fb065f3704099043995bfff4f0158f4cb9568b70a3a31c25651 HEAD_REF main PATCHES slick-queue.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SLICK_NET_TESTS=OFF -DBUILD_SLICK_NET_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME slick-net CONFIG_PATH share/slick-net) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/slick-net/slick-queue.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cd0e9ea..1e226f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ if (slick-shm_FOUND) message(STATUS "slick-shm: ${slick-shm_VERSION}") endif() -find_package(slick-queue 1.2.2 CONFIG QUIET) +find_package(slick-queue 1.2.2 CONFIG REQUIRED) if (NOT slick-queue_FOUND) message(STATUS "Fetching slick-queue...") ================================================ FILE: ports/slick-net/usage ================================================ slick-net provides CMake targets: find_package(slick-net CONFIG REQUIRED) target_link_libraries(main PRIVATE slick::net) ================================================ FILE: ports/slick-net/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-net", "version": "2.0.0", "description": "A modern C++20 networking library providing HTTP/HTTPS client, WebSocket/WebSocket Secure client, and HTTP streaming support built on Boost.Beast and Boost.Asio", "homepage": "https://github.com/SlickQuant/slick-net", "license": "MIT", "supports": "!(uwp | arm)", "dependencies": [ { "name": "boost-asio", "version>=": "1.83.0" }, { "name": "boost-beast", "version>=": "1.83.0" }, { "name": "boost-context", "version>=": "1.83.0" }, { "name": "boost-system", "version>=": "1.83.0" }, { "name": "openssl", "version>=": "3.0.2" }, { "name": "slick-queue", "version>=": "1.2.2" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/slick-object-pool/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-object-pool REF "v${VERSION}" SHA512 932eb5fe590c624b5dca477d874a1eb7822b2528bdb684f151d325b6808866baafa3010a3925ab0e2f4c7374f09163ac205065959a445dd5ef6f15546c433fb4 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SLICK_OBJECTPOOL_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/slick-object-pool) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/slick-object-pool/usage ================================================ slick-object-pool is header-only and can be used from CMake via: find_package(slick-object-pool CONFIG REQUIRED) target_link_libraries(main PRIVATE slick::object-pool) ================================================ FILE: ports/slick-object-pool/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-object-pool", "version": "0.1.3", "description": "A high-performance, lock-free object pool for C++20 with multi-threading support", "homepage": "https://github.com/SlickQuant/slick-object-pool", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/slick-queue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-queue REF "v${VERSION}" SHA512 216300e638d0cf6bf5775f66d0466446c1fd5b63da7506cc4dec00c520435feb0bb564c99170e786cbd6361a781d1de63b609f82aeb83a722e325f4e9d99503c HEAD_REF main PATCHES slick-shm.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SLICK_QUEUE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME slick-queue CONFIG_PATH lib/cmake/slick-queue ) # Temporary fix for legacy package name compatibility set(slick_queue_share "${CURRENT_PACKAGES_DIR}/share/slick_queue") file(MAKE_DIRECTORY "${slick_queue_share}") file(WRITE "${slick_queue_share}/slick_queueConfig.cmake" [=[ include("${CMAKE_CURRENT_LIST_DIR}/../slick-queue/slick-queueConfig.cmake") ]=]) file(COPY "${CURRENT_PACKAGES_DIR}/share/slick-queue/slick-queueConfigVersion.cmake" DESTINATION "${slick_queue_share}") file(RENAME "${slick_queue_share}/slick-queueConfigVersion.cmake" "${slick_queue_share}/slick_queueConfigVersion.cmake") # Header-only library - remove lib directory file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/slick-queue/slick-shm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6cbc9ee..b5f3d7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ set(CMAKE_CXX_STANDARD 20) # Options: option(BUILD_SLICK_QUEUE_TESTS "Build tests" ${PROJECT_IS_TOP_LEVEL}) -find_package(slick-shm CONFIG QUIET) +find_package(slick-shm CONFIG REQUIRED) if (NOT slick-shm_FOUND) include(FetchContent) ================================================ FILE: ports/slick-queue/usage ================================================ slick-queue is header-only and can be used from CMake via: find_package(slick-queue CONFIG REQUIRED) target_link_libraries(main PRIVATE slick::queue) ================================================ FILE: ports/slick-queue/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-queue", "version": "1.4.1", "description": "A C++ Lock-Free MPMC queue - header-only library for high throughput concurrent messaging with optional shared memory support", "homepage": "https://github.com/SlickQuant/slick-queue", "license": "MIT", "supports": "!uwp", "dependencies": [ "slick-shm", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/slick-shm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-shm REF "v${VERSION}" SHA512 2ca3edb663efef81ec5179687305f5081ef1d8ac11c250aa90db5fabf49e445dce74867e9c5ad532edb3c3006dcb4a59dd9692bbed66b2a0cb16e50789f77a52 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSLICK_SHM_BUILD_EXAMPLES=OFF -DSLICK_SHM_BUILD_TESTS=OFF ) vcpkg_cmake_install() # Fix up CMake config files before removing lib directory vcpkg_cmake_config_fixup( PACKAGE_NAME slick-shm CONFIG_PATH lib/cmake/slick-shm ) # Header-only library - remove lib directory after config fixup file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/slick-shm/usage ================================================ slick-shm provides CMake targets: find_package(slick-shm CONFIG REQUIRED) target_link_libraries(main PRIVATE slick::shm) ================================================ FILE: ports/slick-shm/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-shm", "version-semver": "0.1.4", "description": "A modern C++17 header-only, cross-platform shared memory library", "homepage": "https://github.com/SlickQuant/slick-shm", "license": "MIT", "supports": "windows | linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/slick-socket/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SlickQuant/slick-socket REF "v${VERSION}" SHA512 92e06ba13bdc08991b3b41b7b4d0acfa6585b478dda267ece8082b8bac11590c71fc0e3509703565048dfe97612f9ab577ca87ab1cf694ef52affe347f32a6e9 HEAD_REF main ) # Header-only library (header-only wrapper, links to wepoll on Windows) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SLICK_SOCKET_EXAMPLES=OFF -DBUILD_SLICK_SOCKET_TESTING=OFF ) vcpkg_cmake_install() # Fix up CMake config files vcpkg_cmake_config_fixup( PACKAGE_NAME slick-socket CONFIG_PATH lib/cmake/slick-socket ) # Header-only library - remove lib and debug directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Install usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/slick-socket/usage ================================================ slick-socket provides CMake targets: find_package(slick-socket CONFIG REQUIRED) target_link_libraries(main PRIVATE slick::socket) ================================================ FILE: ports/slick-socket/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "slick-socket", "version-semver": "1.0.6", "description": "A C++20 networking library providing cross-platform TCP and UDP multicast communication.", "homepage": "https://github.com/SlickQuant/slick-socket", "license": "MIT", "supports": "windows | linux | osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "wepoll", "platform": "windows" } ] } ================================================ FILE: ports/slikenet/fix-emscripten.patch ================================================ diff --git a/Source/include/slikenet/LinuxStrings.h b/Source/include/slikenet/LinuxStrings.h index c0fd72bee..53e02c834 100644 --- a/Source/include/slikenet/LinuxStrings.h +++ b/Source/include/slikenet/LinuxStrings.h @@ -23,7 +23,7 @@ int _strnicmp(const char* s1, const char* s2, size_t n); char *_strlwr(char * str ); #else - #if (defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(_WIN32) + #if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(_WIN32) #ifndef _stricmp int _stricmp(const char* s1, const char* s2); #endif diff --git a/Source/include/slikenet/NativeTypes.h b/Source/include/slikenet/NativeTypes.h index 0b1305e31..1a1112d63 100644 --- a/Source/include/slikenet/NativeTypes.h +++ b/Source/include/slikenet/NativeTypes.h @@ -16,7 +16,7 @@ #ifndef __NATIVE_TYPES_H #define __NATIVE_TYPES_H -#if defined(__GNUC__) || defined(__GCCXML__) || defined(__SNC__) || defined(__S3E__) +#if defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) || defined(__SNC__) || defined(__S3E__) #include #elif !defined(_STDINT_H) && !defined(_SN_STDINT_H) && !defined(_SYS_STDINT_H_) && !defined(_STDINT) && !defined(_MACHTYPES_H_) && !defined(_STDINT_H_) typedef unsigned char uint8_t; diff --git a/Source/include/slikenet/_FindFirst.h b/Source/include/slikenet/_FindFirst.h index 74f5d8aa0..8906063aa 100644 --- a/Source/include/slikenet/_FindFirst.h +++ b/Source/include/slikenet/_FindFirst.h @@ -16,7 +16,7 @@ #ifndef GCC_FINDFIRST_H #define GCC_FINDFIRST_H -#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(__WIN32) +#if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(__WIN32) #include diff --git a/Source/include/slikenet/linux_adapter.h b/Source/include/slikenet/linux_adapter.h index b8a228f2d..1b578d9e5 100644 --- a/Source/include/slikenet/linux_adapter.h +++ b/Source/include/slikenet/linux_adapter.h @@ -9,7 +9,7 @@ */ #pragma once -#ifdef __linux__ +#if defined(__linux__) || defined(__EMSCRIPTEN__) #define _TRUNCATE ((size_t)-1) typedef int errno_t; diff --git a/Source/include/slikenet/socket2.h b/Source/include/slikenet/socket2.h index fde1ee471..52514512b 100644 --- a/Source/include/slikenet/socket2.h +++ b/Source/include/slikenet/socket2.h @@ -354,7 +354,7 @@ class RNS2_Berkley : public IRNS2_Berkley -#if defined(_WIN32) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) +#if defined(_WIN32) || defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) class RNS2_Windows_Linux_360 { public: diff --git a/Source/src/FileList.cpp b/Source/src/FileList.cpp index 514d2aa88..77c6bf12a 100644 --- a/Source/src/FileList.cpp +++ b/Source/src/FileList.cpp @@ -25,7 +25,7 @@ #include -#elif !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ ) && !defined ( __S3E__ ) +#elif !defined ( __EMSCRIPTEN__ ) && !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ ) && !defined ( __S3E__ ) #include #endif diff --git a/Source/src/GetTime.cpp b/Source/src/GetTime.cpp index 6e30e255c..67d69ace0 100644 --- a/Source/src/GetTime.cpp +++ b/Source/src/GetTime.cpp @@ -182,7 +182,7 @@ SLNet::TimeUS GetTimeUS_Windows( void ) return curTime; #endif // #if defined(GET_TIME_SPIKE_LIMIT) && GET_TIME_SPIKE_LIMIT>0 } -#elif defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) +#elif defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) SLNet::TimeUS GetTimeUS_Linux( void ) { timeval tp; diff --git a/Source/src/LinuxStrings.cpp b/Source/src/LinuxStrings.cpp index 0a5583a0c..95bb2a093 100644 --- a/Source/src/LinuxStrings.cpp +++ b/Source/src/LinuxStrings.cpp @@ -13,7 +13,7 @@ * license found in the license.txt file in the root directory of this source tree. */ -#if (defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(_WIN32) +#if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__ARMCC_VERSION) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(_WIN32) #include #ifndef _stricmp int _stricmp(const char* s1, const char* s2) diff --git a/Source/src/RakNetSocket2_Berkley.cpp b/Source/src/RakNetSocket2_Berkley.cpp index 0592beed1..1a4aac8a2 100644 --- a/Source/src/RakNetSocket2_Berkley.cpp +++ b/Source/src/RakNetSocket2_Berkley.cpp @@ -203,7 +203,7 @@ RNS2BindResult RNS2_Berkley::BindSharedIPV4( RNS2_BerkleyBindParameters *bindPar #if defined(_WIN32) closesocket__(rns2Socket); return BR_FAILED_TO_BIND_SOCKET; -#elif (defined(__GNUC__) || defined(__GCCXML__) ) && !defined(_WIN32) +#elif (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) ) && !defined(_WIN32) closesocket__(rns2Socket); switch (errno) { diff --git a/Source/src/RakNetSocket2_Windows_Linux_360.cpp b/Source/src/RakNetSocket2_Windows_Linux_360.cpp index ee7aedad9..de4e95628 100644 --- a/Source/src/RakNetSocket2_Windows_Linux_360.cpp +++ b/Source/src/RakNetSocket2_Windows_Linux_360.cpp @@ -20,7 +20,7 @@ #ifndef RAKNETSOCKET2_WINDOWS_LINUX_360_CPP #define RAKNETSOCKET2_WINDOWS_LINUX_360_CPP -#if (defined(_WIN32) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(WINDOWS_STORE_RT) && !defined(__native_client__) +#if (defined(_WIN32) || defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__) || defined(__S3E__) ) && !defined(WINDOWS_STORE_RT) && !defined(__native_client__) RNS2SendResult RNS2_Windows_Linux_360::Send_Windows_Linux_360NoVDP( RNS2Socket rns2Socket, RNS2_SendParameters *sendParameters, const char *file, unsigned int line ) { diff --git a/Source/src/SignaledEvent.cpp b/Source/src/SignaledEvent.cpp index 5577cb442..3f623fcf8 100644 --- a/Source/src/SignaledEvent.cpp +++ b/Source/src/SignaledEvent.cpp @@ -17,7 +17,7 @@ #include "slikenet/assert.h" #include "slikenet/sleep.h" -#if defined(__GNUC__) +#if defined(__GNUC__) || defined(__EMSCRIPTEN__) #include #include #endif diff --git a/Source/src/SocketLayer.cpp b/Source/src/SocketLayer.cpp index fd6722e7c..1a50128b4 100644 --- a/Source/src/SocketLayer.cpp +++ b/Source/src/SocketLayer.cpp @@ -26,7 +26,7 @@ #include "slikenet/SocketDefines.h" #include "slikenet/linux_adapter.h" #include "slikenet/osx_adapter.h" -#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(__WIN32__) +#if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__)) && !defined(__WIN32__) #include #endif diff --git a/Source/src/TCPInterface.cpp b/Source/src/TCPInterface.cpp index 0ca8a868d..ec3f181ee 100644 --- a/Source/src/TCPInterface.cpp +++ b/Source/src/TCPInterface.cpp @@ -44,7 +44,7 @@ #include "slikenet/Itoa.h" #include "slikenet/SocketLayer.h" #include "slikenet/SocketDefines.h" -#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(__WIN32__) +#if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__)) && !defined(__WIN32__) #include #endif diff --git a/Source/src/UDPForwarder.cpp b/Source/src/UDPForwarder.cpp index 317dc9f8b..20d067531 100644 --- a/Source/src/UDPForwarder.cpp +++ b/Source/src/UDPForwarder.cpp @@ -212,7 +212,7 @@ void UDPForwarder::RecvFrom(SLNet::TimeMS curTime, ForwardEntry *forwardEntry) sockAddrIn.sin_family = AF_INET; #endif -#if defined(__GNUC__) +#if defined(__GNUC__) || defined(__EMSCRIPTEN__) #if defined(MSG_DONTWAIT) const int flag=MSG_DONTWAIT; #else diff --git a/Source/src/_FindFirst.cpp b/Source/src/_FindFirst.cpp index 10fab3462..1bc7990c7 100644 --- a/Source/src/_FindFirst.cpp +++ b/Source/src/_FindFirst.cpp @@ -12,7 +12,7 @@ * Original file by the_viking, fixed by Rv¥mulo Fernandes, fixed by Emmanuel Nars * Should emulate windows finddata structure */ -#if (defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) +#if (defined(__EMSCRIPTEN__) || defined(__GNUC__) || defined(__GCCXML__)) && !defined(_WIN32) #include "slikenet/_FindFirst.h" #include "slikenet/DS_List.h" diff --git a/Source/src/linux_adapter.cpp b/Source/src/linux_adapter.cpp index fe25abe96..9d1f66e71 100644 --- a/Source/src/linux_adapter.cpp +++ b/Source/src/linux_adapter.cpp @@ -8,7 +8,7 @@ * This file defines adapters for all MS-specific functions used throughout SLikeNet. */ -#ifdef __linux__ +#if defined(__linux__) || defined(__EMSCRIPTEN__) #include "slikenet/linux_adapter.h" #include // for std::max, std::min ================================================ FILE: ports/slikenet/fix-install.patch ================================================ diff --git a/Lib/DLL/CMakeLists.txt b/Lib/DLL/CMakeLists.txt index 7f6453d..48f9562 100644 --- a/Lib/DLL/CMakeLists.txt +++ b/Lib/DLL/CMakeLists.txt @@ -50,6 +50,7 @@ ELSE(WIN32 AND NOT UNIX) ENDIF(WIN32 AND NOT UNIX) target_link_libraries(SLikeNetDLL ${SLIKENET_LIBRARY_LIBS}) +if(0) IF(NOT WIN32 OR UNIX) configure_file(../../slikenet-config-version.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/slikenet-config-version.cmake @ONLY) @@ -60,3 +61,12 @@ IF(NOT WIN32 OR UNIX) INSTALL(FILES ../../slikenet-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/slikenet-config-version.cmake DESTINATION lib/slikenet-${SLikeNet_VERSION}) INSTALL(EXPORT SLikeNetDLL DESTINATION lib/slikenet-${SLikeNet_VERSION}) ENDIF(NOT WIN32 OR UNIX) +endif() + +install(TARGETS SLikeNetDLL + EXPORT SLikeNetDLL + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) +INSTALL(FILES ${ALL_HEADER_SRCS} DESTINATION include/slikenet) +install(EXPORT SLikeNetDLL FILE slikenetTargets.cmake DESTINATION share/slikenet) diff --git a/Lib/LibStatic/CMakeLists.txt b/Lib/LibStatic/CMakeLists.txt index f936fa5..a5dcc4f 100644 --- a/Lib/LibStatic/CMakeLists.txt +++ b/Lib/LibStatic/CMakeLists.txt @@ -50,6 +50,8 @@ ELSE(WIN32 AND NOT UNIX) ENDIF(WIN32 AND NOT UNIX) target_link_libraries(SLikeNetLibStatic ${SLIKENET_LIBRARY_LIBS}) + +if(0) IF(WIN32 AND NOT UNIX) IF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles") set_target_properties(SLikeNetLibStatic PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB:\"LIBCD.lib LIBCMTD.lib MSVCRT.lib\"" ) @@ -64,3 +66,12 @@ ELSE(WIN32 AND NOT UNIX) INSTALL(FILES ../../slikenet-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/slikenet-config-version.cmake DESTINATION lib/slikenet-${SLikeNet_VERSION}) INSTALL(EXPORT SLikeNetLibStatic FILE slikenet.cmake DESTINATION lib/slikenet-${SLikeNet_VERSION}) ENDIF(WIN32 AND NOT UNIX) +endif() + +INSTALL(TARGETS SLikeNetLibStatic + EXPORT SLikeNetLibStatic + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) +INSTALL(FILES ${ALL_HEADER_SRCS} DESTINATION include/slikenet) +INSTALL(EXPORT SLikeNetLibStatic FILE slikenetTargets.cmake DESTINATION share/slikenet) ================================================ FILE: ports/slikenet/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SLikeSoft/SLikeNet REF 358462052fce7e585fc1cce0a17a7042ba724c08 SHA512 2c932b0a7910ec36dd6a340dd841cefcf259fbdadadff220747d13752181ea14e3c5f05331beb36dea21c0de360edc270ff4c55375bbea23ee2149828f07e9ab HEAD_REF master PATCHES fix-install.patch fix-emscripten.patch ) #Uses an outdated OpenSSL version and is in an experimental namespace any way. As such we delete it here file(REMOVE_RECURSE "${SOURCE_PATH}/Source/src/crypto" "${SOURCE_PATH}/Source/include/slikenet/crypto") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SLIKENET_ENABLE_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SLIKENET_ENABLE_DLL) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSLIKENET_ENABLE_DLL=${SLIKENET_ENABLE_DLL} -DSLIKENET_ENABLE_STATIC=${SLIKENET_ENABLE_STATIC} -DSLIKENET_ENABLE_SAMPLES=FALSE ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/slikenet) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) configure_file("${CMAKE_CURRENT_LIST_DIR}/slikenet-config.cmake" "${CURRENT_PACKAGES_DIR}/share/slikenet/slikenet-config.cmake" COPYONLY) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/slikenet/vcpkg-cmake-wrapper.cmake" COPYONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/slikenet/slikenet-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(OpenSSL) set(slikenet_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include") include(${CMAKE_CURRENT_LIST_DIR}/slikenetTargets.cmake) ================================================ FILE: ports/slikenet/usage ================================================ The package slikenet provides CMake targets: find_package(slikenet CONFIG REQUIRED) target_link_libraries(main PRIVATE SLikeNet) ================================================ FILE: ports/slikenet/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(NOT TARGET SLikeNet AND TARGET SLikeNetDLL) add_library(SLikeNet INTERFACE IMPORTED) set_target_properties(SLikeNet PROPERTIES INTERFACE_LINK_LIBRARIES SLikeNetDLL) endif() if(NOT TARGET SLikeNet AND TARGET SLikeNetLibStatic) add_library(SLikeNet INTERFACE IMPORTED) set_target_properties(SLikeNet PROPERTIES INTERFACE_LINK_LIBRARIES SLikeNetLibStatic) endif() ================================================ FILE: ports/slikenet/vcpkg.json ================================================ { "name": "slikenet", "version-date": "2021-06-07", "port-version": 3, "description": "SLikeNetT is an Open Source/Free Software cross-platform network engine written in C++ and specifially designed for games (and applications which have comparable requirements on a network engine like games) building upon the discontinued RakNet network engine which had more than 13 years of active development.", "homepage": "https://github.com/SLikeSoft/SLikeNet", "supports": "!uwp", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sltbench/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile( MISSING_STDDEF_H URLS https://github.com/ivafanas/sltbench/commit/ec702203f406d3b1db71dac6bd39337d175cdc2c.patch?full_index=1 SHA512 ada4ac8519dc7c5537438423d83cee99cd85b84172c402438800f70f6a550875819ea94be8cffcb174a45715e6709e1fd777415424aabf65a1b3e4430b503af1 FILENAME ec702203f406d3b1db71dac6bd39337d175cdc2c.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ivafanas/sltbench REF 52c7c7852abc3159185eb79e699ad77fadfc35bd SHA512 0c66b51f5a950a09df47019775941554538bc3642788f61aaf8c5ec3644d5fef721391f73c3fddfd9529159f9b81c7d7ed76c7995a79f37adaf8d0ff55a99d4b HEAD_REF master PATCHES "${MISSING_STDDEF_H}" ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" WINDOWS_USE_MSBUILD) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file( INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/sltbench/vcpkg.json ================================================ { "name": "sltbench", "version": "2.4.0", "port-version": 3, "description": "C++ benchmark tool. Practical, stable and fast performance testing framework.", "homepage": "https://github.com/ivafanas/sltbench", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/small-gicp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO koide3/small_gicp REF "v${VERSION}" SHA512 b4d4b662d74b5492b7b89bcaf022e2d90262eecd3f1b6d3229edefbb00288a95910d486e66a9e884528f6f9c253a5e535ce7f96829fdc760f58ac001f6192790 HEAD_REF master PATCHES preprocessor_portability.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES pcl BUILD_WITH_PCL tbb BUILD_WITH_TBB openmp BUILD_WITH_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME small_gicp CONFIG_PATH lib/cmake/small_gicp ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/small-gicp/preprocessor_portability.patch ================================================ diff --git a/include/small_gicp/registration/reduction_omp.hpp b/include/small_gicp/registration/reduction_omp.hpp index 8c11267..7edf4a5 100644 --- a/include/small_gicp/registration/reduction_omp.hpp +++ b/include/small_gicp/registration/reduction_omp.hpp @@ -7,7 +7,7 @@ namespace small_gicp { #ifndef _OPENMP -#warning "OpenMP is not available. Parallel reduction will be disabled." +#pragma message ( "OpenMP is not available. Parallel reduction will be disabled." ) inline int omp_get_thread_num() { return 0; } ================================================ FILE: ports/small-gicp/usage ================================================ small-gicp provides CMake targets: find_package(small_gicp REQUIRED) target_link_libraries(main PRIVATE small_gicp::small_gicp) ================================================ FILE: ports/small-gicp/vcpkg.json ================================================ { "name": "small-gicp", "version": "1.0.0", "description": "Efficient and parallelized algorithms for point cloud registration", "homepage": "https://github.com/koide3/small_gicp", "license": "MIT", "supports": "!(x86 | arm32)", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP based parallelism." }, "pcl": { "description": "Enable interfacing with PointCloud Library.", "dependencies": [ "pcl" ] }, "tbb": { "description": "Enable Intel TBB based parallelism.", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/smf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vpetrigo/smf REF "v${VERSION}" SHA512 bed114b54142e6fbcbb5eec9dc202c61f73e7592559eaaeb0ed3c62231ed1e4bd5eedf4ac5b5bfa2b4cf64095f432d09a8644c37b47cdba8c367b14ad080bba0 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES hierarchical SMF_ANCESTOR_SUPPORT init-transition SMF_INITIAL_TRANSITION ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS "${FEATURE_OPTIONS}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/smf) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/smf/usage ================================================ The package smf provides CMake targets: find_package(smf CONFIG REQUIRED) target_link_libraries(main PRIVATE smf::smf) ================================================ FILE: ports/smf/vcpkg.json ================================================ { "name": "smf", "version": "0.2.3", "description": "State machine framework", "homepage": "https://github.com/vpetrigo/smf", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "hierarchical": { "description": "Enable hierarchical state machine support" }, "init-transition": { "description": "Enable state machine initial transition feature", "dependencies": [ { "name": "smf", "features": [ "hierarchical" ] } ] } } } ================================================ FILE: ports/smpeg2/003-fix-double-ptr-to-int-comparison.patch ================================================ diff --git a/audio/mpegtoraw.cpp b/audio/mpegtoraw.cpp index 493c870..a4eabdc 100644 --- a/audio/mpegtoraw.cpp +++ b/audio/mpegtoraw.cpp @@ -448,7 +448,7 @@ int Play_MPEGaudio(MPEGaudio *audio, Uint8 *stream, int len) if (audio->timestamp[0] != -1){ double timeshift = audio->Time() - audio->timestamp[0]; double correction = 0; - assert(audio->timestamp >= 0); + assert(audio->timestamp[0] >= 0); if (fabs(timeshift) > 1.0){ correction = -timeshift; #ifdef DEBUG_TIMESTAMP_SYNC ================================================ FILE: ports/smpeg2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(smpeg2 CXX) set(CMAKE_CXX_STANDARD 11) # 17 does not allow 'register' find_package(SDL2 CONFIG REQUIRED) if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) # some c++ code just assumes memset is available add_definitions(-FIstring.h) endif() add_definitions(-DNOCONTROLS -DTHREADED_AUDIO) add_library(smpeg2 audio/bitwindow.cpp audio/filter.cpp audio/filter_2.cpp audio/hufftable.cpp audio/mpeglayer1.cpp audio/mpeglayer2.cpp audio/mpeglayer3.cpp audio/mpegtable.cpp audio/mpegtoraw.cpp audio/MPEGaudio.cpp video/decoders.cpp video/floatdct.cpp video/gdith.cpp video/jrevdct.cpp video/motionvec.cpp video/parseblock.cpp video/readfile.cpp video/util.cpp video/video.cpp video/MPEGvideo.cpp MPEG.cpp MPEGlist.cpp MPEGring.cpp MPEGstream.cpp MPEGsystem.cpp smpeg.cpp) if(WIN32 AND BUILD_SHARED_LIBS) target_compile_definitions(smpeg2 PRIVATE -DDLL_EXPORT) endif() target_include_directories(smpeg2 PUBLIC "$" $ ) if(TARGET SDL2::SDL2) target_link_libraries(smpeg2 SDL2::SDL2) else() target_link_libraries(smpeg2 SDL2::SDL2-static) endif() install(TARGETS smpeg2 EXPORT smpeg2-targets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install(EXPORT smpeg2-targets FILE unofficial-smpeg2-config.cmake NAMESPACE unofficial::smpeg2:: DESTINATION share/unofficial-smpeg2 ) if(NOT SMPEG_SKIP_HEADERS) install(FILES smpeg.h MPEGframe.h DESTINATION include) endif() ================================================ FILE: ports/smpeg2/hufftable-uint.patch ================================================ diff --git a/audio/hufftable.cpp b/audio/hufftable.cpp index 6bc8e86..1ef2d7e 100644 --- a/audio/hufftable.cpp +++ b/audio/hufftable.cpp @@ -550,11 +550,11 @@ htd33[ 31][2]={{ 16, 1},{ 8, 1},{ 4, 1},{ 2, 1},{ 0, 0},{ 0, 1}, const HUFFMANCODETABLE MPEGaudio::ht[HTN]= { - { 0, 0-1, 0-1, 0, 0, htd33}, + { 0, 0u-1, 0u-1, 0, 0, htd33}, { 1, 2-1, 2-1, 0, 7,htd01}, { 2, 3-1, 3-1, 0, 17,htd02}, { 3, 3-1, 3-1, 0, 17,htd03}, - { 4, 0-1, 0-1, 0, 0, htd33}, + { 4, 0u-1, 0u-1, 0, 0, htd33}, { 5, 4-1, 4-1, 0, 31,htd05}, { 6, 4-1, 4-1, 0, 31,htd06}, { 7, 6-1, 6-1, 0, 71,htd07}, @@ -564,7 +564,7 @@ const HUFFMANCODETABLE MPEGaudio::ht[HTN]= {11, 8-1, 8-1, 0,127,htd11}, {12, 8-1, 8-1, 0,127,htd12}, {13,16-1,16-1, 0,511,htd13}, - {14, 0-1, 0-1, 0, 0, htd33}, + {14, 0u-1, 0u-1, 0, 0, htd33}, {15,16-1,16-1, 0,511,htd15}, {16,16-1,16-1, 1,511,htd16}, {17,16-1,16-1, 2,511,htd16}, ================================================ FILE: ports/smpeg2/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://www.libsdl.org/projects/smpeg/release/smpeg2-${VERSION}.tar.gz" FILENAME "smpeg2-${VERSION}.tar.gz" SHA512 80a779d01e7aa76778ef6ceea8041537db9e4b354df413214c4413c875cb98551891cef98fa0f057cc6a3222e4983da9ae65b86bdad2f87f9e2a6751837e2baf ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES hufftable-uint.patch 003-fix-double-ptr-to-int-comparison.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DSMPEG_SKIP_HEADERS=ON MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_ALSA CMAKE_REQUIRE_FIND_PACKAGE_ALSA ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-smpeg2) file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-smpeg2/unofficial-smpeg2-config.cmake" config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-smpeg2/unofficial-smpeg2-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(SDL2 CONFIG) ${config}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(READ "${SOURCE_PATH}/video/video.h" video_terms) string(REGEX REPLACE "#ifndef .*" "" video_terms "${video_terms}") file(WRITE "${SOURCE_PATH}/Additional notes" "${video_terms}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/Additional notes") ================================================ FILE: ports/smpeg2/vcpkg.json ================================================ { "name": "smpeg2", "version": "2.0.0", "port-version": 11, "description": "SDL MPEG Player Library", "homepage": "https://www.libsdl.org/projects/smpeg/", "license": null, "dependencies": [ "sdl2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/snap7/0001-remove-using-namespace-std.patch ================================================ diff --git a/src/core/s7_partner.h b/src/core/s7_partner.h index 95211a2..25c1810 100644 --- a/src/core/s7_partner.h +++ b/src/core/s7_partner.h @@ -29,7 +29,7 @@ #include "snap_threads.h" #include "s7_peer.h" //--------------------------------------------------------------------------- -using namespace std; +//using namespace std; //--------------------------------------------------------------------------- #define MaxPartners 256 ================================================ FILE: ports/snap7/CMakeLists.txt ================================================ # CMakeList.txt : CMake project for Snap7, include source and define # project specific logic here. cmake_minimum_required (VERSION 3.8) project(snap7 VERSION 1.4.2 LANGUAGES CXX) # Add source to this project's executable. add_library(${PROJECT_NAME} SHARED "core/s7_client.cpp" "core/s7_client.h" "core/s7_firmware.h" "core/s7_isotcp.cpp" "core/s7_isotcp.h" "core/s7_micro_client.cpp" "core/s7_micro_client.h" "core/s7_partner.cpp" "core/s7_partner.h" "core/s7_peer.cpp" "core/s7_peer.h" "core/s7_server.cpp" "core/s7_server.h" "core/s7_text.cpp" "core/s7_text.h" "core/s7_types.h" "lib/snap7_libmain.cpp" "lib/snap7_libmain.h" "sys/snap_msgsock.cpp" "sys/snap_msgsock.h" "sys/snap_platform.h" "sys/snap_sysutils.cpp" "sys/snap_sysutils.h" "sys/snap_tcpsrvr.cpp" "sys/snap_tcpsrvr.h" "sys/snap_threads.cpp" "sys/snap_threads.h" "sys/sol_threads.h" "sys/unix_threads.h" "sys/win_threads.h" ) if(MSVC) target_link_libraries(${PROJECT_NAME} wsock32 ws2_32) target_link_libraries(${PROJECT_NAME} winmm.lib) endif() add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) target_include_directories(${PROJECT_NAME} PUBLIC $ $) target_include_directories(${PROJECT_NAME} PUBLIC $ $) target_include_directories(${PROJECT_NAME} PUBLIC $ $) install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}) install( EXPORT ${PROJECT_NAME} FILE ${PROJECT_NAME}-config.cmake DESTINATION "share/${PROJECT_NAME}" NAMESPACE ${PROJECT_NAME}:: ) if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY "core/" DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h") install(DIRECTORY "lib/" DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h") install(DIRECTORY "sys/" DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN "*.h") endif() ================================================ FILE: ports/snap7/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO snap7 REF "${VERSION}" FILENAME "snap7-full-${VERSION}.7z" SHA512 84F4E1AD15BFEC201F9EB1EC90A28F37DFC848E370DB5CEA22EF4946F41FF6CC514581D29D592B57EE6D4C77F4AABB4B2BBA1E3637043161821BA2FFAE7F2DD6 PATCHES 0001-remove-using-namespace-std.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}/src") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/snap7/__history") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/lgpl-3.0.txt") ================================================ FILE: ports/snap7/vcpkg.json ================================================ { "name": "snap7", "version": "1.4.2", "port-version": 2, "description": "Snap7", "homepage": "https://snap7.sourceforge.net/", "license": "LGPL-3.0", "supports": "!android & !uwp & !static", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/snappy/no-werror.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ # Use -Werror for clang only. if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - if(NOT CMAKE_CXX_FLAGS MATCHES "-Werror") + if(0) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") endif(NOT CMAKE_CXX_FLAGS MATCHES "-Werror") endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") ================================================ FILE: ports/snappy/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c3062e2..05477e9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -417,4 +417,18 @@ if(SNAPPY_INSTALL) "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" ) + + cmake_policy(SET CMP0057 NEW) + set(LIBS_PRIVATE "") + foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}") + else() + string(APPEND LIBS_PRIVATE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}") + endif() + endforeach() + configure_file(snappy.pc.in "${CMAKE_CURRENT_BINARY_DIR}/snappy.pc" @ONLY) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/snappy.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") endif(SNAPPY_INSTALL) ================================================ FILE: ports/snappy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/snappy REF ${VERSION} SHA512 0c1e1019e1bec9281f9877996d896e59e1533456130143224acb9cbfc35c1b0dd9de0a76e4a36494844d9ec58c295eed8c50bdf6dbabe47cf679652eb24b1281 HEAD_REF master PATCHES no-werror.patch pkgconfig.diff rtti.diff ) file(COPY "${CURRENT_PORT_DIR}/snappy.pc.in" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES rtti SNAPPY_WITH_RTTI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF # These variables can be overriden in a custom triplet, see usage file -DSNAPPY_HAVE_SSSE3=OFF -DSNAPPY_HAVE_X86_CRC32=OFF -DSNAPPY_HAVE_NEON_CRC32=OFF -DSNAPPY_HAVE_BMI2=OFF -DSNAPPY_HAVE_NEON=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Snappy) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/snappy/rtti.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cd71a47..d92aed0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,8 +53,10 @@ if(MSVC) add_definitions(-D_HAS_EXCEPTIONS=0) # Disable RTTI. + if(NOT SNAPPY_WITH_RTTI) string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-") + endif() else(MSVC) # Use -Wall for clang and gcc. if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall") @@ -82,9 +84,11 @@ else(MSVC) string(REGEX REPLACE "-fexceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions") + if(NOT SNAPPY_WITH_RTTI) # Disable RTTI. string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") + endif() endif(MSVC) # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make ================================================ FILE: ports/snappy/snappy.pc.in ================================================ prefix=${pcfiledir}/../.. exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: snappy Description: A fast compressor/decompressor. Version: @PROJECT_VERSION@ Libs: -L${libdir} -lsnappy Cflags: -I${includedir} Libs.private: @LIBS_PRIVATE@ ================================================ FILE: ports/snappy/usage ================================================ snappy provides CMake targets: find_package(Snappy CONFIG REQUIRED) target_link_libraries(main PRIVATE Snappy::snappy) Optimizations based on hardware support are disabled by default. You can enable them by adding corresponding flags to VCPKG_CMAKE_CONFIGURE_OPTIONS inside a custom triplet file, for example: if("${PORT}" STREQUAL "snappy") list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS -DSNAPPY_HAVE_SSSE3=ON -DSNAPPY_HAVE_BMI2=ON) endif() For a full list of possible options, see project's root CMakeLists.txt. ================================================ FILE: ports/snappy/vcpkg.json ================================================ { "name": "snappy", "version": "1.2.2", "port-version": 1, "description": "A fast compressor/decompressor.", "homepage": "https://github.com/google/snappy", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "rtti": { "description": "Build with dynamic typeinfo." } } } ================================================ FILE: ports/snitch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO snitch-org/snitch REF "v${VERSION}" SHA512 bb51c7ec51ab934ccd05b8e653ba3da8f321702307fa28b11b8a7ec31e170e337c2ccbe8f4895a25e4fdec1358f90d11a51c489511af95a65311c57e4a4164ef ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSNITCH_DEFINE_MAIN=0 -DCMAKE_CXX_STANDARD=20 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/snitch ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/snitch/vcpkg.json ================================================ { "name": "snitch", "version": "1.2.5", "description": "Lightweight C++20 testing framework.", "homepage": "https://github.com/snitch-org/snitch", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/snowhouse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO banditcpp/snowhouse REF 3faaff8d836c726aa2001adf3d2253d3b368b06b # v5.0.0 SHA512 d1fdd01b376ea26a4c9312df9f952f5b543d1f9d4a8049b7302961d3403200659cb448e5c032f9f05f4f0eeed7434d94beaf108f80cd155c37fe63eaf14651c2 HEAD_REF master ) file(COPY ${SOURCE_PATH}/include/snowhouse DESTINATION ${CURRENT_PACKAGES_DIR}/include/ FILES_MATCHING PATTERN *.h) file(COPY ${SOURCE_PATH}/LICENSE_1_0.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/snowhouse) file(RENAME ${CURRENT_PACKAGES_DIR}/share/snowhouse/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/snowhouse/copyright) ================================================ FILE: ports/snowhouse/vcpkg.json ================================================ { "name": "snowhouse", "version": "5.0.0", "port-version": 2, "description": "An assertion library for C++" } ================================================ FILE: ports/so5extra/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stiffstream/so5extra REF "v.${VERSION}" SHA512 5744dbb3739d00fa9928718b734611c190ffe8a44ce2dd66f05333abe09dc0e59a4453a0ea4d0b714d81627e7f876493a8c87022bf10ea2011ce94f04b41b54f ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/dev/so_5_extra" OPTIONS -DSO5EXTRA_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/so5extra) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/so5extra" RENAME copyright) ================================================ FILE: ports/so5extra/vcpkg.json ================================================ { "name": "so5extra", "version": "1.6.2", "description": "A set of additional tools for SObjectizer framework.", "homepage": "https://github.com/Stiffstream/so5extra", "license": "BSD-3-Clause", "dependencies": [ "sobjectizer", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/soapysdr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pothosware/SoapySDR REF soapy-sdr-${VERSION} SHA512 50c8f1652bf9ca09215f9c4115175427ca7b5338add7591e31ca0e627093c94b73e7cf7f84fa71ff419cc010d3c1263931506c728bbaa00413a7915d56a87787 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_DOCS=OFF -DENABLE_APPS=OFF -DENABLE_PYTHON=OFF -DENABLE_PYTHON3=OFF -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/soapysdr/usage ================================================ soapysdr provides CMake targets: find_package(SoapySDR CONFIG REQUIRED) target_link_libraries(main PRIVATE SoapySDR) soapysdr provides pkg-config modules: # Vendor and platform neutral SDR interface library. SoapySDR ================================================ FILE: ports/soapysdr/vcpkg.json ================================================ { "name": "soapysdr", "version": "0.8.1", "description": "Vendor and platform neutral SDR interface library.", "homepage": "https://github.com/pothosware/SoapySDR/wiki", "license": "BSL-1.0", "supports": "!uwp & !static", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sobjectizer/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stiffstream/sobjectizer REF "v${VERSION}" SHA512 03cda1a58a0d2b643bfeb721de385715341bc9864c0ed397345e8c9b2627e1434ba6c02bf68966271886562f0be357e89d398ec6e8b97b0523e0bcdde714e8fb ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SOBJECTIZER_BUILD_STATIC ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SOBJECTIZER_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/dev" OPTIONS -DSOBJECTIZER_BUILD_STATIC=${SOBJECTIZER_BUILD_STATIC} -DSOBJECTIZER_BUILD_SHARED=${SOBJECTIZER_BUILD_SHARED} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/sobjectizer) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sobjectizer/vcpkg.json ================================================ { "name": "sobjectizer", "version": "5.8.5", "description": "SObjectizer is a C++ in-process message dispatching framework with implementation of Actor Model, Publish-Subscribe Model and CSP-like channels.", "homepage": "https://github.com/Stiffstream/sobjectizer", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/soci/dependencies.diff ================================================ diff --git a/cmake/dependencies/Boost.cmake b/cmake/dependencies/Boost.cmake index 366d32b..7ff041b 100644 --- a/cmake/dependencies/Boost.cmake +++ b/cmake/dependencies/Boost.cmake @@ -10,4 +10,6 @@ endif() set(Boost_RELEASE_VERSION "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}") +set(BOOST_FOUND "${Boost_FOUND}") +set(BOOST_LIBRARIES "${Boost_LIBRARIES}") boost_external_report(Boost RELEASE_VERSION INCLUDE_DIR LIBRARIES) diff --git a/cmake/dependencies/MySQL.cmake b/cmake/dependencies/MySQL.cmake index 5599b08..0a4ce0f 100644 --- a/cmake/dependencies/MySQL.cmake +++ b/cmake/dependencies/MySQL.cmake @@ -1,5 +1,9 @@ set(MySQL_FIND_QUIETLY TRUE) -find_package(MySQL) +find_package(MYSQL NAMES unofficial-libmysql REQUIRED) +set(MYSQL_LIBRARIES "$") +if(TARGET mysqlclient AND NOT TARGET libmysql) + set(MYSQL_LIBRARIES "$") +endif() boost_external_report(MySQL INCLUDE_DIR LIBRARIES) diff --git a/cmake/dependencies/PostgreSQL.cmake b/cmake/dependencies/PostgreSQL.cmake index c6f2154..ef6bfcd 100644 --- a/cmake/dependencies/PostgreSQL.cmake +++ b/cmake/dependencies/PostgreSQL.cmake @@ -1,5 +1,8 @@ set(PostgreSQL_FIND_QUIETLY TRUE) -find_package(PostgreSQL) +find_package(PostgreSQL REQUIRED) +set(POSTGRESQL_FOUND TRUE) +set(POSTGRESQL_INCLUDE_DIRS "${PostgreSQL_INCLUDE_DIRS}") +set(POSTGRESQL_LIBRARIES "${PostgreSQL_LIBRARIES}") boost_external_report(PostgreSQL INCLUDE_DIRS LIBRARIES VERSION) diff --git a/cmake/dependencies/SQLite3.cmake b/cmake/dependencies/SQLite3.cmake index 0daa9a5..17775da 100644 --- a/cmake/dependencies/SQLite3.cmake +++ b/cmake/dependencies/SQLite3.cmake @@ -1,5 +1,6 @@ set(SQLITE3_FIND_QUIETLY TRUE) -find_package(SQLite3) +find_package(SQLITE3 NAMES unofficial-sqlite3 CONFIG REQUIRED) +set(SQLITE3_LIBRARIES unofficial::sqlite3::sqlite3) boost_external_report(SQLite3 INCLUDE_DIR LIBRARIES) diff --git a/cmake/resources/SOCIConfig.cmake.in b/cmake/resources/SOCIConfig.cmake.in index 8096a3c..354c18b 100644 --- a/cmake/resources/SOCIConfig.cmake.in +++ b/cmake/resources/SOCIConfig.cmake.in @@ -1,3 +1,11 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +if("@WITH_MYSQL@") + find_dependency(unofficial-libmysql) +endif() +if("@WITH_SQLITE3@") + find_dependency(unofficial-sqlite3) +endif() + include(${CMAKE_CURRENT_LIST_DIR}/SOCITargets.cmake) diff --git a/include/soci/mysql/soci-mysql.h b/include/soci/mysql/soci-mysql.h index 376bb7e..fbe48fa 100644 --- a/include/soci/mysql/soci-mysql.h +++ b/include/soci/mysql/soci-mysql.h @@ -21,8 +21,8 @@ #ifdef _WIN32 #include // SOCKET #endif // _WIN32 -#include // MySQL Client -#include // MySQL Error codes +#include // MySQL Client +#include // MySQL Error codes #include diff --git a/src/backends/CMakeLists.txt b/src/backends/CMakeLists.txt index 871e151..3cffc80 100644 --- a/src/backends/CMakeLists.txt +++ b/src/backends/CMakeLists.txt @@ -14,9 +14,9 @@ colormsg(_HIBLUE_ "Configuring SOCI backend libraries:") foreach(dep ${SOCI_BACKENDS_DB_DEPENDENCIES}) string(TOUPPER ${dep} depUP) if (WITH_${depUP}) - find_package(${dep}) - endif() - if(${dep}_FOUND OR ${depUP}_FOUND) + if(NOT (${dep}_FOUND OR ${depUP}_FOUND)) + message(FATAL_ERROR "${depUP} not found, check SociDependencies.cmake") + endif() set(${depUP}_FOUND ON) else() set(${depUP}_FOUND OFF) ================================================ FILE: ports/soci/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SOCI/soci REF "v${VERSION}" SHA512 d501f55e7e7408e46b4823fd8a97d6ef587f5db0f5b98434be8dfc5693c91b8c3b84a24454279c83142ab1cd1fa139c6e54d6d9a67397b2ead61650fcc88bcdb HEAD_REF master PATCHES dependencies.diff usage-requirements.diff ) file(REMOVE "${SOURCE_PATH}/cmake/modules/FindPostgreSQL.cmake" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SOCI_DYNAMIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SOCI_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES boost WITH_BOOST boost CMAKE_REQUIRE_FIND_PACKAGE_Boost empty SOCI_EMPTY mysql WITH_MYSQL odbc WITH_ODBC odbc CMAKE_REQUIRE_FIND_PACKAGE_ODBC postgresql WITH_POSTGRESQL sqlite3 WITH_SQLITE3 INVERTED_FEATURES core WITH_DB2 core WITH_FIREBIRD core WITH_ORACLE core WITH_VALGRIND ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSOCI_CXX11=ON -DSOCI_SHARED=${SOCI_DYNAMIC} -DSOCI_STATIC=${SOCI_STATIC} -DSOCI_TESTS=OFF ${options} MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_Boost CMAKE_REQUIRE_FIND_PACKAGE_ODBC ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SOCI) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/soci/soci-platform.h" "ifdef SOCI_DLL" "if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${CURRENT_PORT_DIR}/usage" usage) set(backends ${FEATURES}) list(REMOVE_ITEM backends core boost) if(backends STREQUAL "") string(APPEND usage " This soci build doesn't include any backend and may not be useful. ") endif() foreach(backend IN LISTS backends) string(APPEND usage " # Using the ${backend} backend directly target_link_libraries(main PRIVATE $,SOCI::soci_${backend},SOCI::soci_${backend}_static>) ") endforeach() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "${usage}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/soci/usage ================================================ soci provides CMake targets: find_package(SOCI CONFIG REQUIRED) # Using core (loading backends at runtime) target_link_libraries(main PRIVATE $,SOCI::soci_core,SOCI::soci_core_static>) ================================================ FILE: ports/soci/usage-requirements.diff ================================================ diff --git a/cmake/SociBackend.cmake b/cmake/SociBackend.cmake index 5d4ef0d..279cb75 100644 --- a/cmake/SociBackend.cmake +++ b/cmake/SociBackend.cmake @@ -159,8 +159,13 @@ macro(soci_backend NAME) ${THIS_BACKEND_HEADERS}) target_link_libraries(${THIS_BACKEND_TARGET} + PUBLIC ${SOCI_CORE_TARGET} ${THIS_BACKEND_DEPENDS_LIBRARIES}) + target_include_directories(${THIS_BACKEND_TARGET} + PUBLIC + ${THIS_BACKEND_DEPENDS_INCLUDE_DIRS} + ) if(WIN32) set_target_properties(${THIS_BACKEND_TARGET} @@ -197,8 +202,14 @@ macro(soci_backend NAME) # Still need to link the libraries for tests to work target_link_libraries (${THIS_BACKEND_TARGET_STATIC} + PUBLIC + ${SOCI_CORE_TARGET}_static ${THIS_BACKEND_DEPENDS_LIBRARIES} ) + target_include_directories(${THIS_BACKEND_TARGET_STATIC} + PUBLIC + ${THIS_BACKEND_DEPENDS_INCLUDE_DIRS} + ) set_target_properties(${THIS_BACKEND_TARGET_STATIC} PROPERTIES ================================================ FILE: ports/soci/vcpkg.json ================================================ { "name": "soci", "version": "4.0.3", "port-version": 3, "description": "SOCI - The C++ Database Access Library", "homepage": "https://soci.sourceforge.net/", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "boost": { "description": "Integration with Boost", "dependencies": [ "boost-date-time", "boost-fusion", "boost-optional", "boost-preprocessor", "boost-tuple" ] }, "empty": { "description": "Build the backend skeleton for new backends development" }, "mysql": { "description": "Build mysql backend", "dependencies": [ "libmysql" ] }, "odbc": { "description": "Build odbc backend", "supports": "!uwp", "dependencies": [ { "name": "unixodbc", "platform": "!windows" } ] }, "postgresql": { "description": "Build postgresql backend", "dependencies": [ { "name": "libpq", "default-features": false } ] }, "sqlite3": { "description": "Build sqlite3 backend", "dependencies": [ { "name": "sqlite3", "default-features": false } ] } } } ================================================ FILE: ports/sockpp/android-strerror_r.diff ================================================ diff --git a/src/exception.cpp b/src/exception.cpp index 72aae7e..7a56c60 100644 --- a/src/exception.cpp +++ b/src/exception.cpp @@ -66,7 +66,7 @@ string sys_error::error_str(int err) buf, sizeof(buf), NULL); #else #ifdef _GNU_SOURCE - #if !defined(__GLIBC__) + #if !defined(__GLIBC__) && !defined(__ANDROID__) // use the XSI standard behavior. int e = strerror_r(err, buf, sizeof(buf)); auto s = strerror(e); ================================================ FILE: ports/sockpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fpagliughi/sockpp REF "v${VERSION}" SHA512 99191c9551ff345f96af9177d124c6e10f3da8e87021576058b63df82ee64461cb8fc134919fe390617200aebf222e70501e3cee43fc0a294596947669ed4f03 HEAD_REF master PATCHES android-strerror_r.diff ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "\${SOCKPP}-static" "\${SOCKPP}" IGNORE_UNCHANGED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSOCKPP_BUILD_SHARED=OFF -DSOCKPP_BUILD_STATIC=ON -DSOCKPP_BUILD_DOCUMENTATION=OFF -DSOCKPP_BUILD_EXAMPLES=OFF -DSOCKPP_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sockpp/vcpkg.json ================================================ { "name": "sockpp", "version": "1.0.0", "port-version": 2, "description": "Simple, modern, C++ socket library. This is a fairly low-level C++ wrapper around the Berkeley sockets library using socket, acceptor, and connector classes that are familiar concepts from other languages.", "homepage": "https://github.com/fpagliughi/sockpp", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/soem/disable-werror-and-wx.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7fa930c..5d96ae4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,16 +27,13 @@ if(WIN32) find_library(packet_LIBRARY NAMES packet) include_directories(${winpcap_INCLUDE_DIRS}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_NO_WARNINGS") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") set(OS_LIBS ${winpcap_LIBRARY} ${packet_LIBRARY} Ws2_32.lib Winmm.lib) elseif(UNIX AND NOT APPLE) set(OS "linux") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") set(OS_LIBS pthread rt) elseif(APPLE) # This must come *before* linux or MacOSX will identify as Unix. set(OS "macosx") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") set(OS_LIBS pthread pcap) elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") set(OS "rtk") @@ -45,10 +42,6 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "rt-kernel") include_directories(oshw/${OS}/${ARCH}) file(GLOB OSHW_EXTRA_SOURCES oshw/${OS}/${ARCH}/*.c) set(OSHW_SOURCES "${OS_HW_SOURCES} ${OSHW_ARCHSOURCES}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format") set(OS_LIBS "-Wl,--start-group -l${BSP} -l${ARCH} -lkern -ldev -lsio -lblock -lfs -lusb -llwip -leth -li2c -lrtc -lcan -lnand -lspi -lnor -lpwm -ladc -ltrace -lc -lm -Wl,--end-group") elseif(${CMAKE_SYSTEM_NAME} MATCHES "rtems") message(STATUS "Building for RTEMS") ================================================ FILE: ports/soem/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenEtherCATsociety/SOEM REF a901500618405760a564e64a6816705e29f50f9f SHA512 d554bc1c3780b1a81402a7fda490f516caba6bd943a28482740b5c9d97e4273a11546e79c92796487ee9901f568cbf1b329d4e1c1d32602fdce0088a77c82443 HEAD_REF master PATCHES winpcap.patch disable-werror-and-wx.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "share/soem/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/soem/vcpkg.json ================================================ { "name": "soem", "version-date": "2023-06-09", "port-version": 2, "description": "Simple Open Source EtherCAT Master", "homepage": "https://github.com/OpenEtherCATsociety/SOEM", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "winpcap", "platform": "windows" } ] } ================================================ FILE: ports/soem/winpcap.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index baf26bd..7fa930c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,15 +22,13 @@ endif() if(WIN32) set(OS "win32") - include_directories(oshw/win32/wpcap/Include) - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - link_directories(${CMAKE_CURRENT_LIST_DIR}/oshw/win32/wpcap/Lib/x64) - elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) - link_directories(${CMAKE_CURRENT_LIST_DIR}/oshw/win32/wpcap/Lib) - endif() + find_path(winpcap_INCLUDE_DIRS NAMES pcap.h) + find_library(winpcap_LIBRARY NAMES wpcap) + find_library(packet_LIBRARY NAMES packet) + include_directories(${winpcap_INCLUDE_DIRS}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_NO_WARNINGS") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") - set(OS_LIBS wpcap.lib Packet.lib Ws2_32.lib Winmm.lib) + set(OS_LIBS ${winpcap_LIBRARY} ${packet_LIBRARY} Ws2_32.lib Winmm.lib) elseif(UNIX AND NOT APPLE) set(OS "linux") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror") ================================================ FILE: ports/soil/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c29d9bf..fc66b85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 2.6) +project(soil C) + include_directories(inc) ADD_LIBRARY( soil STATIC @@ -8,3 +10,31 @@ ADD_LIBRARY( soil STATIC src/image_DXT.c src/SOIL.c ) + +target_include_directories(soil INTERFACE $) + +install(TARGETS soil + EXPORT soilTargets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) + +install(FILES inc/SOIL/SOIL.h + DESTINATION include/SOIL) + +# Prepare and install package files +set(soil_VERSION "2021.4.22") + +export(TARGETS soil FILE "${PROJECT_BINARY_DIR}/soilTargets.cmake") + +export(PACKAGE soil) +# Create the soilConfig.cmake and soilConfigVersion files +configure_file(soilConfig.cmake.in "${PROJECT_BINARY_DIR}/soilConfig.cmake" @ONLY) +configure_file(soilConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/soilConfigVersion.cmake" @ONLY) +# Install the soilConfig.cmake and soilConfigVersion.cmake +install(FILES + "${PROJECT_BINARY_DIR}/soilConfig.cmake" + "${PROJECT_BINARY_DIR}/soilConfigVersion.cmake" + DESTINATION "share/soil") +# Install the export set for use with the install-tree +install(EXPORT soilTargets DESTINATION + "share/soil") \ No newline at end of file ================================================ FILE: ports/soil/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paralin/soil REF 8bb18a909f94e58afbc0bda941ffc6eee58b4066 # committed on 2014-03-06 SHA512 6cbaa10d8b2a274c389fda723db53a3f1ba7d25a7367df40efec4d0553c09f0d67fb16f927bba2ff0aed4234e3a83922edcc574ffac72dd7e05d6cec768b561b HEAD_REF master PATCHES fix-cmakelists.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/soilConfig.cmake.in" "${CMAKE_CURRENT_LIST_DIR}/soilConfigVersion.cmake.in" DESTINATION ${SOURCE_PATH} ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/soil/soilConfig.cmake.in ================================================ # - Config file for the SOIL package # It defines the following variables # SOIL_INCLUDE_DIRS - include directories for SOIL # SOIL_LIBRARIES - libraries to link against # Load targets get_filename_component(SOIL_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include("${SOIL_CMAKE_DIR}/soilTargets.cmake") # Set properties get_target_property(SOIL_INCLUDE_DIRS soil INTERFACE_INCLUDE_DIRECTORIES) set(SOIL_LIBRARIES soil) mark_as_advanced(SOIL_INCLUDE_DIRS SOIL_LIBRARIES) ================================================ FILE: ports/soil/soilConfigVersion.cmake.in ================================================ set(PACKAGE_VERSION "@SOIL_VERSION@") # Check whether the requested PACKAGE_FIND_VERSION is compatible if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") set(PACKAGE_VERSION_COMPATIBLE FALSE) else() set(PACKAGE_VERSION_COMPATIBLE TRUE) if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") set(PACKAGE_VERSION_EXACT TRUE) endif() endif() ================================================ FILE: ports/soil/vcpkg.json ================================================ { "name": "soil", "version-date": "2021-04-22", "port-version": 2, "description": "SOIL is a tiny C library used primarily for uploading textures into OpenGL.", "homepage": "https://github.com/paralin/soil", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/soil2/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.9) # Create the soil2 project project("soil2" LANGUAGES C) find_package(OpenGL) # Do we want to install the headers? option(INSTALL_HEADERS "Install header files" ON) # Set the install dir set(INSTALL_CMAKE_DIR share/soil2) # Set the source files to compile set(SOIL2_SRC "src/SOIL2/image_DXT.c" "src/SOIL2/image_DXT.h" "src/SOIL2/image_helper.c" "src/SOIL2/image_helper.h" "src/SOIL2/jo_jpeg.h" "src/SOIL2/pkm_helper.h" "src/SOIL2/pvr_helper.h" "src/SOIL2/SOIL2.c" "src/SOIL2/SOIL2.h" "src/SOIL2/stbi_DDS.h" "src/SOIL2/stbi_DDS_c.h" "src/SOIL2/stbi_ext.h" "src/SOIL2/stbi_ext_c.h" "src/SOIL2/stbi_pkm.h" "src/SOIL2/stbi_pkm_c.h" "src/SOIL2/stbi_pvr.h" "src/SOIL2/stbi_pvr_c.h" "src/SOIL2/stb_image.h" "src/SOIL2/stb_image_write.h" "src/SOIL2/wfETC.c" "src/SOIL2/wfETC.h" ) # Add the library as a static linkage add_library(soil2 STATIC ${SOIL2_SRC}) # The include dir target_include_directories(soil2 INTERFACE $) # link opengl32 target_link_libraries(soil2 PRIVATE ${OPENGL_gl_LIBRARY}) # If its msvc mute the secure warnings if(MSVC) target_compile_definitions(soil2 PRIVATE _CRT_SECURE_NO_WARNINGS) endif(MSVC) if(INSTALL_HEADERS) # Install the library object install(TARGETS soil2 EXPORT soil2Targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) # Install the headers install(FILES "src/SOIL2/SOIL2.h" DESTINATION include/SOIL2/) # Export the stuff export(TARGETS soil2 FILE "${PROJECT_BINARY_DIR}/soil2Targets.cmake") export(PACKAGE soil2) # Create the soil2Config.cmake and soil2ConfigVersion.cmake configure_file(soil2Config.cmake.in "${PROJECT_BINARY_DIR}/soil2Config.cmake" @ONLY) # Install the soil2Config.cmake and soil2ConfigVersion.cmake install(FILES "${PROJECT_BINARY_DIR}/soil2Config.cmake" DESTINATION "${INSTALL_CMAKE_DIR}" ) # Install the export set for use with the install-tree install(EXPORT soil2Targets DESTINATION "${INSTALL_CMAKE_DIR}") else(INSTALL_HEADERS) # Install the library object install(TARGETS soil2 EXPORT soil2 ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) endif(INSTALL_HEADERS) ================================================ FILE: ports/soil2/Workaround-ICE-in-release.patch ================================================ diff --git a/src/SOIL2/SOIL2.c b/src/SOIL2/SOIL2.c index 3a10885..01bbb23 100644 --- a/src/SOIL2/SOIL2.c +++ b/src/SOIL2/SOIL2.c @@ -2027,6 +2027,7 @@ const char* return result_string_pointer; } +#pragma optimize("", off) unsigned int SOIL_direct_load_DDS_from_memory( const unsigned char *const buffer, int buffer_length, @@ -2409,6 +2410,7 @@ unsigned int SOIL_direct_load_DDS_from_memory( quick_exit: return tex_ID; } +#pragma optimize("", on) unsigned int SOIL_direct_load_DDS( const char *filename, ================================================ FILE: ports/soil2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SpartanJ/soil2 REF ddcb35d13cc4129103de1c1a3cb74b828fe46b4a # 1.3.0 SHA512 627c7bf4fddd5afef85ba7634c5ec0e10005c700abc1eb07c6346c1604e430c34aa4c33f6ffecbecb3dc2b04de7b855a3f6d923e94f23621ae0184e706358908 HEAD_REF master PATCHES Workaround-ICE-in-release.patch ) file( COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/soil2Config.cmake.in" DESTINATION "${SOURCE_PATH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DINSTALL_HEADERS=OFF ) vcpkg_cmake_install() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/soil2/soil2Config.cmake.in ================================================ # - Config file for the soil2 package # It defines the following variables # SOIL2_INCLUDE_DIRS - include directories for SOIL2 # SOIL2_LIBRARIES - libraries to link against # Load targets get_filename_component(SOIL2_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include("${SOIL2_CMAKE_DIR}/soil2Targets.cmake") # Set properties get_target_property(SOIL2_INCLUDE_DIRS soil2 INTERFACE_INCLUDE_DIRECTORIES) set(SOIL2_LIBRARIES soil2) mark_as_advanced(SOIL2_INCLUDE_DIRS SOIL2_LIBRARIES) ================================================ FILE: ports/soil2/vcpkg.json ================================================ { "name": "soil2", "version": "1.3.0", "port-version": 1, "description": "Simple OpenGL Image Library 2", "homepage": "https://github.com/SpartanJ/SOIL2", "license": "MIT-0", "supports": "!uwp & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/sokol/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO floooh/sokol REF d98c8b92c25070f13d0491f5fade1d9d2ca885ad SHA512 bb49dc3da366e70c7b6b16ebd490f9b2c88c496b278f1b9651321b3aab0977db92707d3955c2cb2654d8032647429ac90aa585de36644380112d988eac877cd0 HEAD_REF master ) file(GLOB SOKOL_INCLUDE_FILES "${SOURCE_PATH}/*.h") file(COPY ${SOKOL_INCLUDE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(GLOB SOKOL_UTIL_INCLUDE_FILES "${SOURCE_PATH}/util/*.h") file(COPY ${SOKOL_UTIL_INCLUDE_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/util") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sokol/vcpkg.json ================================================ { "name": "sokol", "version-date": "2023-10-07", "description": "Minimal cross-platform standalone C headers", "homepage": "https://github.com/floooh/sokol", "license": "Zlib" } ================================================ FILE: ports/sol2/header-only.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 120dd38..0b069dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,7 +174,7 @@ else() endif() # # # Tests, Examples and other CI suites that come with sol2 -if (sol2-is-top-level-project) +if (0) # # # General project output locations if (CMAKE_SIZEOF_VOID_P EQUAL 4) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x86/lib") ================================================ FILE: ports/sol2/lua-5.5.diff ================================================ diff --git a/include/sol/compatibility/compat-5.3.h b/include/sol/compatibility/compat-5.3.h index 8d32d2d7..bd9dad99 100644 --- a/include/sol/compatibility/compat-5.3.h +++ b/include/sol/compatibility/compat-5.3.h @@ -405,7 +405,7 @@ COMPAT53_API void luaL_requiref(lua_State *L, const char *modname, /* other Lua versions */ -#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 || LUA_VERSION_NUM > 504 +#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 || LUA_VERSION_NUM > 505 # error "unsupported Lua version (i.e. not Lua 5.1, 5.2, 5.3, or 5.4)" diff --git a/include/sol/compatibility/compat-5.4.h b/include/sol/compatibility/compat-5.4.h index ae747c64..b5238579 100644 --- a/include/sol/compatibility/compat-5.4.h +++ b/include/sol/compatibility/compat-5.4.h @@ -17,7 +17,7 @@ extern "C" { } #endif -#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM == 504 +#if defined(LUA_VERSION_NUM) && (LUA_VERSION_NUM == 504 || LUA_VERSION_NUM == 505) #if !defined(LUA_ERRGCMM) /* So Lua 5.4 actually removes this, which breaks sol2... diff --git a/include/sol/state.hpp b/include/sol/state.hpp index ed2412ed..b05e9741 100644 --- a/include/sol/state.hpp +++ b/include/sol/state.hpp @@ -39,7 +39,11 @@ namespace sol { } state(lua_CFunction panic, lua_Alloc alfunc, void* alpointer = nullptr) +#if LUA_VERSION_NUM < 505 : unique_base(lua_newstate(alfunc, alpointer)), state_view(unique_base::get()) { +#else + : unique_base(lua_newstate(alfunc, alpointer, 0)), state_view(unique_base::get()) { +#endif set_default_state(unique_base::get(), panic); } ================================================ FILE: ports/sol2/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b54f71a..a3c569b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -148,7 +148,7 @@ endif() if(SOL2_ENABLE_INSTALL) # pkg-config support, except on Windows - if(NOT WIN32 OR NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows) + if(1) set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig" CACHE PATH "Path where sol2.pc is installed") ================================================ FILE: ports/sol2/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ThePhD/sol2 REF "v${VERSION}" SHA512 5a6ec7e16dae05ad6abea02842f62db8f64935eda438d67b2c264cbee80cee6d82200bd060387c6df837fe9f212dbe22b2772af34df1ce8bd43296dd9429558d HEAD_REF develop PATCHES header-only.patch lua-5.5.diff # variation of https://github.com/ThePhD/sol2/pull/1723 pkgconfig.diff ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/sol2) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sol2/vcpkg.json ================================================ { "name": "sol2", "version": "3.5.0", "port-version": 1, "description": "Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance", "homepage": "https://github.com/ThePhD/sol2", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/solid3/disable-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0303a8f..be43838 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,7 +97,7 @@ if(UNIX) endif(UNIX) add_subdirectory(src) -add_subdirectory(examples) +#add_subdirectory(examples) #add_subdirectory(doc) include(CMakePackageConfigHelpers) ================================================ FILE: ports/solid3/no-sse.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index be43838..fe71394 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,8 +87,12 @@ if(MSVC) endif(MSVC) if(UNIX) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ffast-math -msse2 -mfpmath=sse") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -Wall -ffast-math -msse2 -mfpmath=sse") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -ffast-math") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -Wall -ffast-math") + if ((NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch64)") AND (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc64le")) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mfpmath=sse") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mfpmath=sse") + endif() if (DYNAMIC_SOLID) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") ================================================ FILE: ports/solid3/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dtecta/solid3 REF c53f6bb1eaaafb1cfb305ef71b1c3a2edb4844e6 SHA512 ae42ba75f5309fecba836e5786d4cb81eeb1240f6fd7c458c6d1329d8e1075021504b927ea0aedb66162deeb79ad674cacb0190385afe456420c0d9184596f1f HEAD_REF master PATCHES disable-examples.patch potentially-uninitialized-local-pointer-variable.patch no-sse.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DYNAMIC_SOLID) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDYNAMIC_SOLID=${DYNAMIC_SOLID} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/solid3) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/README.md" "${SOURCE_PATH}/LICENSE_GPL.txt" "${SOURCE_PATH}/LICENSE_QPL.txt" ) ================================================ FILE: ports/solid3/potentially-uninitialized-local-pointer-variable.patch ================================================ diff --git a/src/qhull/geom2.c b/src/qhull/geom2.c index bd58ce1..c4798d2 100644 --- a/src/qhull/geom2.c +++ b/src/qhull/geom2.c @@ -2080,7 +2080,7 @@ boolT qh_sharpnewfacets () { pointT *qh_voronoi_center (int dim, setT *points) { pointT *point, **pointp, *point0; pointT *center= (pointT*)qh_memalloc (qh center_size); - setT *simplex; + setT *simplex= NULL; int i, j, k, size= qh_setsize(points); coordT *gmcoord; realT *diffp, sum2, *sum2row, *sum2p, det, factor; diff --git a/src/qhull/io.c b/src/qhull/io.c index 79ca799..41c18bc 100644 --- a/src/qhull/io.c +++ b/src/qhull/io.c @@ -3740,7 +3740,7 @@ coordT *qh_readpoints(int *numpoints, int *dimension, boolT *ismalloc) { coordT *points, *coords, *infinity= NULL; realT paraboloid, maxboloid= -REALmax, value; realT *coordp= NULL, *offsetp= NULL, *normalp= NULL; - char *s, *t, firstline[qh_MAXfirst+1]; + char *s= NULL, *t, firstline[qh_MAXfirst+1]; int diminput=0, numinput=0, dimfeasible= 0, newnum, k, tempi; int firsttext=0, firstshort=0, firstlong=0, firstpoint=0; int tokcount= 0, linecount=0, maxcount, coordcount=0; ================================================ FILE: ports/solid3/vcpkg.json ================================================ { "name": "solid3", "version": "3.5.8", "port-version": 4, "description": "Software Library for Interference Detection", "homepage": "https://github.com/dtecta/solid3", "license": "GPL-2.0-only OR QPL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sonivox/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EmbeddedSynth/sonivox REF "v${VERSION}" SHA512 85ce90ceb23aa0f372f4103881fb12385d9e27f9c58f6a37f6150d65dfc17e86a200d565b5036ad2374d6e3f9acc70136d99033caee6f350a4c250d15755fcbf HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING:BOOL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT VCPKG_TARGET_IS_ANDROID) vcpkg_copy_tools(TOOL_NAMES sonivoxrender AUTO_CLEAN) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME "sonivox" CONFIG_PATH lib/cmake/sonivox ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sonivox/usage ================================================ sonivox provides CMake targets: find_package(sonivox CONFIG REQUIRED) target_link_libraries(main PRIVATE sonivox::sonivox) sonivox provides pkg-config modules: # Sonivox EAS Software Synthesizer sonivox ================================================ FILE: ports/sonivox/vcpkg.json ================================================ { "name": "sonivox", "version": "4.0.1", "description": "Software MIDI synthesizer evolved from the AOSP 'platform_external_sonivox' project to use it outside of Android. Uses embedded samples allowing also SF2 and DLS files. Plays MID, XMF, and RMI files.", "homepage": "https://github.com/EmbeddedSynth/sonivox", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/sophus/0001-support-eigen3-5.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c4f3185..5147fa4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,7 +49,7 @@ endif() # example defined by a parent project including Sophus via `add_subdirectory`.) if(NOT TARGET Eigen3::Eigen) - find_package(Eigen3 3.4.0 REQUIRED) + find_package(Eigen3 REQUIRED) endif() # Define interface library target ================================================ FILE: ports/sophus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO strasdat/Sophus REF 1.24.6 SHA512 cbc01e92c8361937194bed320ac84a7cfd8b71ecc3a842d3d3c9796ff52a08d13aa0b4f30184c4c7ddc223da0141a80176382c8b25a328e53fa00c4627511ec3 HEAD_REF main PATCHES 0001-support-eigen3-5.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_SOPHUS_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/sophus/cmake) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sophus/vcpkg.json ================================================ { "name": "sophus", "version": "1.24.6", "description": "Lie group library for C++", "homepage": "https://github.com/strasdat/Sophus", "license": "MIT", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/soqt/disable-cpackd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 802e512c..21cc23a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -393,4 +393,4 @@ add_subdirectory(test-code) ############################################################################ # New CPACK section, please see the README file inside cpack.d directory. -add_subdirectory(cpack.d) +#add_subdirectory(cpack.d) ================================================ FILE: ports/soqt/disable-test-code.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b0815f2..236ffa8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -390,7 +390,7 @@ set(PACKAGE_REQUIREMENTS "Coin, ${PACKAGE_ADDITIONAL_REQUIREMENTS}") add_subdirectory(data) add_subdirectory(src) ##### small test programs (to be run interactively) -add_subdirectory(test-code) +#add_subdirectory(test-code) ############################################################################ # New CPACK section, please see the README file inside cpack.d directory. ================================================ FILE: ports/soqt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Coin3D/soqt REF SoQt-1.6.0 SHA512 204d49769dda1a9833093ff78bdb788df0c514e800ae0bc35d4ef832ece304c7c26fc7d893ee83db95c34d9457e27e04c74301bcd2029aa3a0f96ec2ecbb3984 HEAD_REF master PATCHES disable-cpackd.patch disable-test-code.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOANYDATA_SOURCE_PATH REPO coin3d/soanydata REF 3ff6e9203fbb0cc08a2bdf209212b7ef4d78a1f2 SHA512 9e176feda43a12ccdf8756f7329517936357499771a7d0a58357d343bdea125c34f8734ff1cd16cda3eeee58090dc1680999849c50132c30940a23d3f81a5c66 HEAD_REF master ) if(NOT EXISTS "${SOURCE_PATH}/data") file(RENAME "${SOANYDATA_SOURCE_PATH}" "${SOURCE_PATH}/data") endif() vcpkg_from_github( OUT_SOURCE_PATH SOGUI_SOURCE_PATH REPO coin3d/sogui REF fb79af47cff89f0f3657501601a7ea5c11968b17 SHA512 bcf4d2e04c3b6ac87a6425d90c6077ec655732bcc0f99bf181ff2dfce8d356509f52d71b884660fafddc135551ee8fbb139e02b6706d2a01be006193918d232b HEAD_REF master ) if(NOT EXISTS "${SOURCE_PATH}/src/Inventor/Qt/common") file(RENAME "${SOGUI_SOURCE_PATH}" "${SOURCE_PATH}/src/Inventor/Qt/common") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SOQT_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSOQT_BUILD_DOCUMENTATION=OFF -DSOQT_BUILD_SHARED_LIBS=${SOQT_BUILD_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SoQt-1.6.0) vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) 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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/soqt/vcpkg.json ================================================ { "name": "soqt", "version": "1.6.0", "port-version": 4, "description": "A Qt Gui-toolkit binding for Coin", "homepage": "https://github.com/coin3d/soqt", "supports": "!(arm | arm64 | uwp)", "dependencies": [ "coin", { "name": "qt5-base", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sord/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO drobilla/sord REF "v${VERSION}" SHA512 7e13d34f7dd014f0de0e1ac0e5fdd8e058a3cd1e0501b8abca21a98a3c550411be8a27e34cb785531f818659099c29c55b1b034fd17821470594054fbf2dee73 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_tools(TOOL_NAMES sordi sord_validate AUTO_CLEAN) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/sord/vcpkg.json ================================================ { "name": "sord", "version": "0.16.22", "description": "Sord is a lightweight C library for storing RDF statements in memory.", "homepage": "https://drobilla.net/software/sord", "license": "ISC", "supports": "!uwp", "dependencies": [ "pcre2", "serd", { "name": "vcpkg-tool-meson", "host": true }, "zix" ] } ================================================ FILE: ports/soundtouch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH GITHUB_HOST https://codeberg.org REPO soundtouch/soundtouch REF ${VERSION} SHA512 8bd199c6363104ba6c9af1abbd3c4da3567ccda5fe3a68298917817fc9312ecb0914609afba1abd864307b0a596becf450bc7073eeec17b1de5a7c5086fbc45e HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES soundstretch SOUNDSTRETCH soundtouchdll SOUNDTOUCH_DLL ) if(SOUNDTOUCH_DLL) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SoundTouch) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(SOUNDSTRETCH) vcpkg_copy_tools(TOOL_NAMES soundstretch AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.TXT") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/soundtouch/vcpkg.json ================================================ { "name": "soundtouch", "version": "2.4.0", "description": "SoundTouch is an open-source audio processing library for changing the Tempo, Pitch and Playback Rates of audio streams or audio files.", "homepage": "https://www.surina.net/soundtouch", "license": "LGPL-2.1-only", "supports": "!uwp", "dependencies": [ { "name": "atlmfc", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "soundstretch": { "description": "Build the soundstretch command line tool" }, "soundtouchdll": { "description": "Build the SoundTouchDLL C wrapper dynamic library", "supports": "!staticcrt" } } } ================================================ FILE: ports/soxr/001_initialize-resampler.patch ================================================ diff --git a/src/soxr.c b/src/soxr.c index c2861ac..c95cfd4 100644 --- a/src/soxr.c +++ b/src/soxr.c @@ -815,7 +815,7 @@ soxr_error_t soxr_oneshot( soxr_quality_spec_t const * q_spec, soxr_runtime_spec_t const * runtime_spec) { - soxr_t resampler; + soxr_t resampler = NULL; soxr_error_t error = q_spec? q_spec->e : 0; if (!error) { soxr_quality_spec_t q_spec1; ================================================ FILE: ports/soxr/002_disable_warning.patch ================================================ diff --git a/src/pffft.c b/src/pffft.c index 46c841e..0686bef 100644 --- a/src/pffft.c +++ b/src/pffft.c @@ -182,7 +182,6 @@ typedef float32x4_t v4sf; # define VALIGNED(ptr) ((((long)(ptr)) & 0x3) == 0) #else # if !defined(PFFFT_SIMD_DISABLE) -# warning "building with simd disabled !\n"; # define PFFFT_SIMD_DISABLE /* fallback to scalar code */ # endif #endif ================================================ FILE: ports/soxr/003_detect_arm.patch ================================================ diff --git a/src/pffft.c b/src/pffft.c index 0686bef..e4cb094 100644 --- a/src/pffft.c +++ b/src/pffft.c @@ -157,7 +157,7 @@ typedef __m128 v4sf; /* ARM NEON support macros */ -#elif !defined(PFFFT_SIMD_DISABLE) && defined(__arm__) +#elif !defined(PFFFT_SIMD_DISABLE) && (defined(__arm__) || defined(_M_ARM) || defined(__aarch64__)) # include typedef float32x4_t v4sf; # define SIMD_SZ 4 ================================================ FILE: ports/soxr/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO soxr FILENAME "soxr-0.1.3-Source.tar.xz" SHA512 f4883ed298d5650399283238aac3dbe78d605b988246bea51fa343d4a8ce5ce97c6e143f6c3f50a3ff81795d9c19e7a07217c586d4020f6ced102aceac46aaa8 PATCHES 001_initialize-resampler.patch 002_disable_warning.patch 003_detect_arm.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp WITH_OPENMP lsr-bindings WITH_LSR_BINDINGS ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" BUILD_SHARED_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_RUNTIME=${BUILD_SHARED_RUNTIME} -DCMAKE_DISABLE_FIND_PACKAGE_LibAVUtil=TRUE ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/LICENCE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/doc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/soxr/vcpkg.json ================================================ { "name": "soxr", "version": "0.1.3", "port-version": 8, "description": "High quality audio resampling", "homepage": "https://sourceforge.net/projects/soxr/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "lsr-bindings": { "description": "Include a `libsamplerate'-like interface." }, "openmp": { "description": "Include OpenMP threading." } } } ================================================ FILE: ports/spaceland/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fb062c7e4..5a93a8c4c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,7 +211,7 @@ ADD_CUSTOM_TARGET(uninstall # Compiler dependent definitions -if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") +if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") # using Clang MESSAGE("-- Current build compiler is Clang") ADD_DEFINITIONS(-D_ISOC9X_SOURCE) ================================================ FILE: ports/spaceland/include_functional.patch ================================================ diff --git a/src/sl/connectivity.hpp b/src/sl/connectivity.hpp index 1942c6c..1b66b9d 100644 --- a/src/sl/connectivity.hpp +++ b/src/sl/connectivity.hpp @@ -26,6 +26,7 @@ #include #include #include +#include namespace sl { diff --git a/src/sl/hash.hpp b/src/sl/hash.hpp index 3093a13..5f5b144 100644 --- a/src/sl/hash.hpp +++ b/src/sl/hash.hpp @@ -24,6 +24,7 @@ #define SL_HASH_HPP #include +#include namespace sl { ================================================ FILE: ports/spaceland/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://www.crs4.it/vic/download/pkgs/sl-7.8.2-Source.tar.gz" FILENAME "sl-7.8.2-Source.tar.gz" SHA512 1391dac1474ddb47d0cf0eb7baeb7db68d6356c2116f732dd57b8a050739523282ded0643cc466640f2b22f25dd6bfced00ede4e041b7ff83754a99ae6725d7d ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES include_functional.patch fix-cmake4.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_CXX_STANDARD=11 # 17 does not allow 'register' -DSL_TEST=OFF -DSL_INSTALL_SLFIND_MODULE=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/spaceland/vcpkg.json ================================================ { "name": "spaceland", "version": "7.8.2", "port-version": 11, "description": "Spaceland Lib (sl) is a suite for geometric computation, specifically adapted to OpenGL.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: ports/span-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/span-lite REF "v${VERSION}" SHA512 6e45f23a7274f851a3faefbff8278a3bee75eae91caf0b176dbbfc644639d999a3964d6d2282a7024422b4bc75ebb91b46b6aeb645204cdca3bae05a13c6aa53 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPAN_LITE_OPT_BUILD_TESTS=OFF -DSPAN_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/span-lite/vcpkg.json ================================================ { "name": "span-lite", "version": "0.11.0", "description": "A C++20-like span for C++98, C++11 and later in a single-file header-only library", "homepage": "https://github.com/martinmoene/span-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sparsehash/Config.cmake.in ================================================ get_filename_component(_sparsehash_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_sparsehash_root "${_sparsehash_root}" PATH) get_filename_component(_sparsehash_root "${_sparsehash_root}" PATH) add_library(sparsehash::sparsehash INTERFACE IMPORTED) set_target_properties(sparsehash::sparsehash PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_sparsehash_root}/include") unset(_sparsehash_root) ================================================ FILE: ports/sparsehash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sparsehash/sparsehash REF sparsehash-2.0.4 SHA512 40C007BC5814DD5F2BDACD5EC884BC5424F7126F182D4C7B34371F88B674456FC193B947FDD283DBD0C7EB044D8F06BAF8CAEC6C93E73B1B587282B9026EA877 HEAD_REF master ) if(VCPKG_TARGET_IS_WINDOWS) file(COPY ${SOURCE_PATH}/src/google DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/src/sparsehash DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/src/windows/sparsehash/internal/sparseconfig.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/sparsehash/internal) else() vcpkg_execute_required_process( COMMAND ${SOURCE_PATH}/configure ${OPTIONS} --prefix=${CURRENT_PACKAGES_DIR} WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME configure-${TARGET_TRIPLET} ) vcpkg_execute_required_process( COMMAND make -j ${VCPKG_CONCURRENCY} install WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME install-${TARGET_TRIPLET} ) endif() configure_file( ${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in ${CURRENT_PACKAGES_DIR}/share/sparsehash/sparsehash-config.cmake @ONLY ) configure_file(${SOURCE_PATH}/COPYING ${CURRENT_PACKAGES_DIR}/share/sparsehash/copyright COPYONLY) file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/sparsehash) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/sparsehash/usage ================================================ The package sparsehash provides CMake targets: find_package(sparsehash CONFIG REQUIRED) target_link_libraries(main PRIVATE sparsehash::sparsehash) ================================================ FILE: ports/sparsehash/vcpkg.json ================================================ { "name": "sparsehash", "version": "2.0.4", "port-version": 2, "description": "The sparsehash package consists of two hashtable implementations: sparse, which is designed to be very space efficient, and dense, which is designed to be very time efficient.", "homepage": "https://github.com/sparsehash/sparsehash" } ================================================ FILE: ports/sparsepp/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (sparsepp) set(HEADERS sparsepp/spp.h sparsepp/spp_config.h sparsepp/spp_dlalloc.h sparsepp/spp_memory.h sparsepp/spp_smartptr.h sparsepp/spp_stdint.h sparsepp/spp_timer.h sparsepp/spp_traits.h sparsepp/spp_utils.h ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES ${HEADERS} DESTINATION include/sparsepp) endif() ================================================ FILE: ports/sparsepp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO greg7mdp/sparsepp REF 1.22 SHA512 b660cd7de48fcab50d4a0df4e4813226b0b0a8a3791aba4e4cc6a456af7bba0be6694bc44781a7d00b5582b32b1d85b9afa83095b7e5c0a26d1b0344ddc94b0f HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) # Note: we could add: OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON # but it's an header only package, so there's no INSTALL target. So # we remove the duplicate headers. vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sparsepp/vcpkg.json ================================================ { "name": "sparsepp", "version": "1.22", "port-version": 4, "description": "A fast, memory efficient hash map for C++", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/spatial-hash/compatible-vcpkg-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f21fb2c..31040fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,13 +5,10 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -add_compile_options(-Wall -Wextra) - option(SPATIAL_HASH_BUILD_TESTS "Build tests" ON) -find_package(Eigen3 REQUIRED) -find_package(PkgConfig REQUIRED) -pkg_check_modules(glog REQUIRED IMPORTED_TARGET libglog) +find_package(Eigen3 CONFIG REQUIRED) +find_package(glog CONFIG REQUIRED) add_library( ${PROJECT_NAME} @@ -24,7 +21,7 @@ target_include_directories( ${PROJECT_NAME} PUBLIC $ $ ) -target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen PkgConfig::glog) +target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen glog::glog) if(SPATIAL_HASH_BUILD_TESTS) find_package(GTest REQUIRED) @@ -42,6 +39,7 @@ add_library( install(TARGETS ${PROJECT_NAME} EXPORT spatial_hash-targets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(EXPORT spatial_hash-targets FILE spatial_hashTargets.cmake NAMESPACE spatial_hash:: diff --git a/cmake/spatial_hashConfig.cmake.in b/cmake/spatial_hashConfig.cmake.in index ffb1450..1803838 100644 --- a/cmake/spatial_hashConfig.cmake.in +++ b/cmake/spatial_hashConfig.cmake.in @@ -1,9 +1,8 @@ +include(CMakeFindDependencyMacro) get_filename_component(spatial_hash_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -find_dependency(Eigen3 REQUIRED) -find_package(PkgConfig REQUIRED) -pkg_check_modules(glog REQUIRED IMPORTED_TARGET libglog) - +find_dependency(Eigen3 CONFIG) +find_dependency(glog CONFIG) if(NOT TARGET spatial_hash::spatial_hash) include("${spatial_hash_CMAKE_DIR}/spatial_hashTargets.cmake") endif() ================================================ FILE: ports/spatial-hash/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO MIT-SPARK/Spatial-Hash REF bf592f26d84beca96e3ddc295ee1cf5b7341dee5 SHA512 c6e0c0475f2ca9bd9b21b227874202a12191496a446e44c493d6a181636912a342c56a8742cb5597a164f108bce74ec9534e224db4fa916c76930b232c82895f PATCHES compatible-vcpkg-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPATIAL_HASH_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME spatial_hash CONFIG_PATH lib/cmake/spatial_hash ) vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/spatial-hash/vcpkg.json ================================================ { "name": "spatial-hash", "version": "1.0.0", "description": "A minimal C++ library for spatial data structures based on voxel hashing.", "homepage": "https://github.com/MIT-SPARK/Spatial-Hash", "license": "BSD-3-Clause", "dependencies": [ "eigen3", "glog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spatialite-tools/android-builtin-iconv.diff ================================================ diff --git a/spatialite_xml2utf8.c b/spatialite_xml2utf8.c index d88202d..bd524d5 100644 --- a/spatialite_xml2utf8.c +++ b/spatialite_xml2utf8.c @@ -45,7 +45,7 @@ extern const char *locale_charset (void); #include #endif /* end localcharset */ #else /* not MINGW32 - WIN32 */ -#if defined(__APPLE__) || defined(__ANDROID__) +#if defined(__APPLE__) || (defined(__ANDROID__) && __ANDROID_API__ < 28) #include #include #else /* neither Mac OsX nor Android */ ================================================ FILE: ports/spatialite-tools/configure.diff ================================================ diff --git a/configure.ac b/configure.ac index 6726e91..22337a8 100644 --- a/configure.ac +++ b/configure.ac @@ -28,6 +28,10 @@ AH_TEMPLATE([OMIT_READOSM], [Should be defined in order to disable ReadOSM support.]) AH_TEMPLATE([ENABLE_LIBXML2], [Should be defined in order to enable LIBXML2 support.]) + +PKG_CHECK_MODULES([SQLITE3], [sqlite3], , AC_MSG_ERROR(['sqlite3 is required but it doesn't seem to be installed on this system.])) +CFLAGS="$CFLAGS $SQLITE3_CFLAGS" +LIBS="$LIBS $SQLITE3_LIBS" AH_TEMPLATE([HAVE_DECL_SQLITE_CONFIG_URI], [depending on SQLite library version.]) AH_TEMPLATE([HAVE_DECL_SQLITE_DBSTATUS_LOOKASIDE_USED], @@ -104,7 +108,6 @@ AC_FUNC_STRFTIME AC_CHECK_FUNCS([memset sqrt strcasecmp strerror strncasecmp strstr fdatasync ftruncate getcwd gettimeofday localtime_r memmove strerror]) # Checks for installed libraries -AC_CHECK_LIB(sqlite3,sqlite3_prepare_v2,,AC_MSG_ERROR(['libsqlite3' is required but it doesn't seem to be installed on this system.]),-lm) AC_CONFIG_FILES([Makefile]) @@ -144,8 +147,7 @@ AC_ARG_ENABLE(readosm, [AS_HELP_STRING( [--enable-readosm], [enables ReadOSM inclusion [default=yes]])], [], [enable_readosm=yes]) if test x"$enable_readosm" != "xno"; then - AC_SUBST(LIBREADOSM_LIBS)PKG_CHECK_MODULES([LIBREADOSM], [readosm], , AC_MSG_ERROR(['libreadosm' is required but it doesn't seem to be installed on this system.])) - AC_SEARCH_LIBS(readosm_version,readosm,,AC_MSG_ERROR(['libreadosm' (>= v.1.1.0) is required but an older version was found.])) + PKG_CHECK_MODULES([LIBREADOSM], [readosm], , AC_MSG_ERROR(['libreadosm' is required but it doesn't seem to be installed on this system.])) AC_SUBST(LIBREADOSM_CFLAGS) AC_SUBST(LIBREADOSM_LIBS) else ================================================ FILE: ports/spatialite-tools/fix-makefiles.patch ================================================ diff --git a/makefile.vc b/makefile.vc index 53ef75197..d48fb02db 100644 --- a/makefile.vc +++ b/makefile.vc @@ -27,96 +27,63 @@ all: $(SPATIALITE_EXE) $(SHP_DOCTOR_EXE) $(SPATIALITE_TOOL_EXE) \ $(SPATIALITE_OSM_FILTER_EXE) $(SHP_SANITIZE_EXE) $(SPATIALITE_EXE): shell.obj - cl shell.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib \ - /Fe$(SPATIALITE_EXE) + cl shell.obj /Fe$(SPATIALITE_EXE) /link $(LIBS) if exist $(SPATIALITE_EXE).manifest mt -manifest \ $(SPATIALITE_EXE).manifest -outputresource:$(SPATIALITE_EXE);1 $(EXIF_LOADER_EXE): exif_loader.obj - cl exif_loader.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl exif_loader.obj /link $(LIBS) if exist $(EXIF_LOADER_EXE).manifest mt -manifest \ $(EXIF_LOADER_EXE).manifest -outputresource:$(EXIF_LOADER_EXE);1 $(SHP_DOCTOR_EXE): shp_doctor.obj - cl shp_doctor.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl shp_doctor.obj /link $(LIBS) if exist $(SHP_DOCTOR_EXE).manifest mt -manifest \ $(SHP_DOCTOR_EXE).manifest -outputresource:$(SHP_DOCTOR_EXE);1 $(SHP_SANITIZE_EXE): shp_sanitize.obj - cl shp_sanitize.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl shp_sanitize.obj /link $(LIBS) if exist $(SHP_SANITIZE_EXE).manifest mt -manifest \ $(SHP_SANITIZE_EXE).manifest -outputresource:$(SHP_SANITIZE_EXE);1 $(SPATIALITE_NETWORK_EXE): spatialite_network.obj - cl spatialite_network.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_network.obj /link $(LIBS) if exist $(SPATIALITE_NETWORK_EXE).manifest mt -manifest \ $(SPATIALITE_TOOL_EXE).manifest \ -outputresource:$(SPATIALITE_TOOL_EXE);1 $(SPATIALITE_TOOL_EXE): spatialite_tool.obj - cl spatialite_tool.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib C:\OSGeo4W\lib\geos_c.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_tool.obj /link $(LIBS) if exist $(SPATIALITE_TOOL_EXE).manifest mt -manifest \ $(SPATIALITE_TOOL_EXE).manifest \ -outputresource:$(SPATIALITE_TOOL_EXE);1 $(SPATIALITE_OSM_NET_EXE): spatialite_osm_net.obj - cl spatialite_osm_net.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\readosm_i.lib \ - C:\OSGeo4W\lib\libexpat.lib \ - C:\OSGeo4W\lib\zlib.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_osm_net.obj /link $(LIBS) if exist $(SPATIALITE_OSM_EXE).manifest mt -manifest \ $(SPATIALITE_OSM_EXE).manifest \ -outputresource:$(SPATIALITE_OSM_NET_EXE);1 $(SPATIALITE_OSM_MAP_EXE): spatialite_osm_map.obj - cl spatialite_osm_map.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\readosm_i.lib \ - C:\OSGeo4W\lib\libexpat.lib \ - C:\OSGeo4W\lib\zlib.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_osm_map.obj /link $(LIBS) if exist $(SPATIALITE_OSM_MAP_EXE).manifest mt -manifest \ $(SPATIALITE_OSM_MAP_EXE).manifest \ -outputresource:$(SPATIALITE_OSM_MAP_EXE);1 $(SPATIALITE_GML_EXE): spatialite_gml.obj - cl spatialite_gml.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\libexpat.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_gml.obj /link $(LIBS) if exist $(SPATIALITE_GML_EXE).manifest mt -manifest \ $(SPATIALITE_GML_EXE).manifest \ -outputresource:$(SPATIALITE_GML_EXE);1 $(SPATIALITE_OSM_RAW_EXE): spatialite_osm_raw.obj - cl spatialite_osm_raw.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\readosm_i.lib \ - C:\OSGeo4W\lib\libexpat.lib \ - C:\OSGeo4W\lib\zlib.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_osm_raw.obj /link $(LIBS) if exist $(SPATIALITE_OSM_RAW_EXE).manifest mt -manifest \ $(SPATIALITE_OSM_RAW_EXE).manifest \ -outputresource:$(SPATIALITE_OSM_RAW_EXE);1 $(SPATIALITE_OSM_FILTER_EXE): spatialite_osm_filter.obj - cl spatialite_osm_filter.obj C:\OSGeo4W\lib\proj_i.lib \ - C:\OSGeo4W\lib\iconv.lib \ - C:\OSGeo4W\lib\spatialite_i.lib C:\OSGeo4W\lib\sqlite3_i.lib + cl spatialite_osm_filter.obj /link $(LIBS) if exist $(SPATIALITE_OSM_FILTER_EXE).manifest mt -manifest \ $(SPATIALITE_OSM_FILTER_EXE).manifest \ -outputresource:$(SPATIALITE_OSM_FILTER_EXE);1 ================================================ FILE: ports/spatialite-tools/portfile.cmake ================================================ # only executables set(VCPKG_BUILD_TYPE release) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) string(REPLACE "-" "" SPATIALITE_TOOLS_VERSION_STR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/spatialite-tools-${SPATIALITE_TOOLS_VERSION_STR}.tar.gz" FILENAME "spatialite-tools-${SPATIALITE_TOOLS_VERSION_STR}.tar.gz" SHA512 cf255c9e04e78e450e20019e3c988b2b0a770c6b7857a5b1c95d0696ee29902e7a85667c1a38dec9aa164fa6d28a444be6365b0444b78015180c1f27fa68ea89 ) vcpkg_extract_source_archive(SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES android-builtin-iconv.diff configure.diff fix-makefiles.patch ) file(REMOVE "${SOURCE_PATH}/config.h") if (VCPKG_TARGET_IS_WINDOWS) x_vcpkg_pkgconfig_get_modules( PREFIX PKGCONFIG MODULES --msvc-syntax expat libxml-2.0 readosm spatialite sqlite3 LIBS ) # cherry-picked from makefile.vc (CFLAGS) and nmake.opt (OPTFLAGS) set(CFLAGS "/fp:precise /W3 /D_CRT_SECURE_NO_WARNINGS /D_LARGE_FILE=1 /D_FILE_OFFSET_BITS=64 /D_LARGEFILE_SOURCE=1") set(TOOL_EXES shp_sanitize spatialite_osm_filter spatialite_osm_raw spatialite_gml spatialite_osm_map exif_loader spatialite_osm_net spatialite_network spatialite_tool shp_doctor spatialite ) list(TRANSFORM TOOL_EXES APPEND ".exe" OUTPUT_VARIABLE TARGETS) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" INST_DIR) vcpkg_install_nmake( SOURCE_PATH "${SOURCE_PATH}" CL_LANGUAGE C # Use this explicit sequence of targets to mitigate linker race. TARGET ${TARGETS} install OPTIONS_RELEASE "CFLAGS=${CFLAGS} ${PKGCONFIG_CFLAGS_RELEASE}" "LIBS=${PKGCONFIG_LIBS_RELEASE} iconv.lib charset.lib user32.lib" "INSTDIR=${INST_DIR}" OPTIONS_DEBUG --DISABLED-- ) vcpkg_copy_tools(TOOL_NAMES ${TOOL_EXES} AUTO_CLEAN) else() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-minizip --disable-readline --enable-readosm ) vcpkg_make_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/spatialite-tools/vcpkg.json ================================================ { "name": "spatialite-tools", "version": "5.1.0-a", "port-version": 2, "description": "Contains spatialite.exe and other command line tools to work with SpatiaLite databases (import, export, SQL queries)", "homepage": "https://www.gaia-gis.it/fossil/spatialite-tools/index", "license": "GPL-3.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ "expat", "libiconv", { "name": "libspatialite", "features": [ "gcp", "rttopo" ] }, { "name": "libxml2", "default-features": false }, "readosm", { "name": "sqlite3", "default-features": false }, { "name": "vcpkg-make", "host": true, "platform": "!windows | mingw" }, { "name": "vcpkg-pkgconfig-get-modules", "host": true, "platform": "windows & !mingw" } ] } ================================================ FILE: ports/spdlog/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gabime/spdlog REF "v${VERSION}" SHA512 8df117055d19ff21c9c9951881c7bdf27cc0866ea3a4aa0614b2c3939cedceab94ac9abaa63dc4312b51562b27d708cb2f014c68c603fd1c1051d3ed5c1c3087 HEAD_REF v1.x ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES benchmark SPDLOG_BUILD_BENCH fmt SPDLOG_FMT_EXTERNAL wchar SPDLOG_WCHAR_SUPPORT INVERTED_FEATURES fmt SPDLOG_USE_STD_FORMAT tz-offset SPDLOG_NO_TZ_OFFSET ) # SPDLOG_WCHAR_FILENAMES can only be configured in triplet file since it is an alternative (not additive) if(NOT DEFINED SPDLOG_WCHAR_FILENAMES) set(SPDLOG_WCHAR_FILENAMES OFF) endif() if(NOT VCPKG_TARGET_IS_WINDOWS AND SPDLOG_WCHAR_FILENAMES) message(FATAL_ERROR "Build option 'SPDLOG_WCHAR_FILENAMES' is for Windows.") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SPDLOG_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSPDLOG_INSTALL=ON -DSPDLOG_BUILD_SHARED=${SPDLOG_BUILD_SHARED} -DSPDLOG_WCHAR_FILENAMES=${SPDLOG_WCHAR_FILENAMES} -DSPDLOG_BUILD_EXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/spdlog) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/spdlog.pc" " -lspdlog" " -lspdlogd") endif() # add support for integration other than cmake if(SPDLOG_FMT_EXTERNAL) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h "// #define SPDLOG_FMT_EXTERNAL" "#ifndef SPDLOG_FMT_EXTERNAL\n#define SPDLOG_FMT_EXTERNAL\n#endif" ) endif() if(SPDLOG_USE_STD_FORMAT) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h "// #define SPDLOG_USE_STD_FORMAT" "#ifndef SPDLOG_USE_STD_FORMAT\n#define SPDLOG_USE_STD_FORMAT\n#endif" ) endif() if(SPDLOG_WCHAR_SUPPORT) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h "// #define SPDLOG_WCHAR_TO_UTF8_SUPPORT" "#ifndef SPDLOG_WCHAR_TO_UTF8_SUPPORT\n#define SPDLOG_WCHAR_TO_UTF8_SUPPORT\n#endif" ) endif() if(SPDLOG_WCHAR_FILENAMES) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h "// #define SPDLOG_WCHAR_FILENAMES" "#ifndef SPDLOG_WCHAR_FILENAMES\n#define SPDLOG_WCHAR_FILENAMES\n#endif" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/spdlog/fmt/bundled" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spdlog/usage ================================================ The package spdlog provides CMake targets: find_package(spdlog CONFIG REQUIRED) target_link_libraries(main PRIVATE spdlog::spdlog) # Or use the header-only version find_package(spdlog CONFIG REQUIRED) target_link_libraries(main PRIVATE spdlog::spdlog_header_only) ================================================ FILE: ports/spdlog/vcpkg.json ================================================ { "name": "spdlog", "version-semver": "1.17.0", "description": "Very fast, header-only/compiled, C++ logging library.", "homepage": "https://github.com/gabime/spdlog", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "fmt", "tz-offset" ], "features": { "benchmark": { "description": "Use google benchmark", "dependencies": [ "benchmark" ] }, "fmt": { "description": "Use fmt library", "dependencies": [ "fmt" ] }, "tz-offset": { "description": "Omit %z timezone offset (use on platforms without tm_gmtoff)" }, "wchar": { "description": "Build with wchar_t (Windows only)", "supports": "windows" } } } ================================================ FILE: ports/spectra/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yixuan/spectra REF v1.0.1 SHA512 575f90d2ab9c3cbdd4bbfe1abce35a262e319dac8689420859811a169cbfd8f617c80bfcd430aa8a5383c96f338155870a0ad7ac0d5db855c1e822c2d19837b5 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/spectra/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/spectra/vcpkg.json ================================================ { "name": "spectra", "version": "1.0.1", "description": "A header-only C++ library for large scale eigenvalue problems", "homepage": "https://spectralib.org", "documentation": "https://spectralib.org/quick-start.html", "license": "MPL-2.0", "dependencies": [ "eigen3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/speex/fix-vla-check.patch ================================================ diff --git a/configure.ac b/configure.ac index d94c2fe..b813148 100644 --- a/configure.ac +++ b/configure.ac @@ -37,7 +37,7 @@ AC_C_RESTRICT AC_MSG_CHECKING(for C99 variable-size arrays) -+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ int foo; foo = 10; int array[foo]; ================================================ FILE: ports/speex/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiph/speex REF 5dceaaf3e23ee7fd17c80cb5f02a838fd6c18e01 #Speex-1.2.1 SHA512 d03da906ec26ddcea2e1dc4157ac6dd056e1407381b0f37edd350552a02a7372e9108b4e39ae522f1b165be04b813ee11db0b47d17607e4dad18118b9041636b HEAD_REF master PATCHES fix-vla-check.patch subdirs.patch ) if(VCPKG_TARGET_IS_OSX) message("${PORT} currently requires the following libraries from the system package manager:\n autoconf\n automake\n libtool\n\nIt can be installed with brew install autoconf automake libtool") elseif(VCPKG_TARGET_IS_LINUX) message("${PORT} currently requires the following libraries from the system package manager:\n autoconf\n automake\n libtool\n\nIt can be installed with apt-get install autoconf automake libtool") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS --disable-binaries # no example programs (GPL, require libogg) ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/speex/subdirs.patch ================================================ diff --git a/Makefile.am b/Makefile.am index dc90415..3b3c16d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,7 +14,7 @@ pkgconfig_DATA = speex.pc EXTRA_DIST = Speex.spec Speex.spec.in Speex.kdevelop speex.m4 speex.pc.in README.blackfin README.symbian README.TI-DSP #Fools KDevelop into including all files -SUBDIRS = libspeex include doc win32 symbian ti +SUBDIRS = libspeex include if BUILD_BINARIES SUBDIRS += src ================================================ FILE: ports/speex/vcpkg.json ================================================ { "name": "speex", "version": "1.2.1", "port-version": 2, "description": "Speex is an Open Source/Free Software patent-free audio compression format designed for speech.", "homepage": "https://github.com/xiph/speex", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/speexdsp/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.1) option(USE_SSE "Use SSE" OFF) option(USE_NEON "Use NEON" OFF) option(FIXED_POINT "Use Fixed Point Arithmetic" OFF) set(LIBSPEEXDSP_VERSION "1.2.0") set(LIBSPEEXDSP_SOVERSION "1") project(libspeexdsp) set(LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/buffer.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fftwrap.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/filterbank.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/jitter.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/mdf.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/preprocess.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/resample.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/scal.c" ) set(LIBSPEEXDSP_HEADERS "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/arch.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/bfin.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fftwrap.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/filterbank.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fixed_arm4.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fixed_arm5e.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fixed_bfin.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fixed_debug.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/fixed_generic.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/math_approx.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/misc_bfin.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/os_support.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/pseudofloat.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/resample_neon.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/resample_sse.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/smallft.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/vorbis_psy.h" "${CMAKE_CURRENT_LIST_DIR}/include/speex/speex_buffer.h" ) set(LIBSPEEXDSP_HEADERS_PUBLIC "${CMAKE_CURRENT_LIST_DIR}/include/speex/speex_echo.h" "${CMAKE_CURRENT_LIST_DIR}/include/speex/speex_jitter.h" "${CMAKE_CURRENT_LIST_DIR}/include/speex/speex_preprocess.h" "${CMAKE_CURRENT_LIST_DIR}/include/speex/speex_resampler.h" "${CMAKE_CURRENT_LIST_DIR}/include/speex/speexdsp_types.h" ) set(CMAKE_C_VISIBILITY_PRESET hidden) if (NOT BUILD_SHARED_LIBS) add_definitions("-DEXPORT=") elseif(WIN32) add_definitions("-DEXPORT=") list(APPEND LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/win32/libspeexdsp.def") else() add_definitions("-DEXPORT=__attribute__((visibility(\"default\")))") endif() if (USE_SSE AND NOT FIXED_POINT) add_definitions(-DUSE_SSE -DUSE_SSE2) endif() if (USE_NEON AND NOT MSVC) add_definitions(-DUSE_NEON) endif() if (FIXED_POINT) add_definitions(-DFIXED_POINT -DUSE_KISS_FFT) list(APPEND LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/kiss_fft.c" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/kiss_fftr.c" ) list(APPEND LIBSPEEXDSP_HEADERS "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/_kiss_fft_guts.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/kiss_fft.h" "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/kiss_fftr.h" ) else() add_definitions(-DFLOATING_POINT -DUSE_SMALLFT) list(APPEND LIBSPEEXDSP_SOURCES "${CMAKE_CURRENT_LIST_DIR}/libspeexdsp/smallft.c") endif() if (NOT MSVC) add_definitions(-DVAR_ARRAYS) endif() # Basic speexdsp_config_types.h for Linux support set(INCLUDE_STDINT "#include ") set(SIZE16 "int16_t") set(USIZE16 "uint16_t") set(SIZE32 "int32_t") set(USIZE32 "uint32_t") configure_file("${CMAKE_CURRENT_LIST_DIR}/include/speex/speexdsp_config_types.h.in" "${CMAKE_CURRENT_BINARY_DIR}/speexdsp_config_types.h" @ONLY) list(APPEND LIBSPEEXDSP_HEADERS_PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/speexdsp_config_types.h") include_directories("${CMAKE_CURRENT_LIST_DIR}/include") include_directories("${CMAKE_CURRENT_BINARY_DIR}") add_library(speexdsp ${LIBSPEEXDSP_SOURCES} ${LIBSPEEXDSP_HEADERS}) set_target_properties(speexdsp PROPERTIES PUBLIC_HEADER "${LIBSPEEXDSP_HEADERS_PUBLIC}") set_target_properties(speexdsp PROPERTIES VERSION "${LIBSPEEXDSP_VERSION}") set_target_properties(speexdsp PROPERTIES SOVERSION "${LIBSPEEXDSP_SOVERSION}") if (WIN32) set_target_properties(speexdsp PROPERTIES RUNTIME_OUTPUT_NAME "libspeexdsp") endif() # pkgconfig file set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix \${prefix}) SET(bindir \${exec_prefix}/${CMAKE_INSTALL_BINDIR}) SET(libdir \${exec_prefix}/${CMAKE_INSTALL_LIBDIR}) SET(includedir \${prefix}/${CMAKE_INSTALL_INCLUDEDIR}) if(CMAKE_SYSTEM_NAME MATCHES BSD) set(PKG_CONFIG_RPATH "-Wl,-R\${libdir}") endif(CMAKE_SYSTEM_NAME MATCHES BSD) set(PACKAGE_VERSION "${LIBSPEEXDSP_VERSION}") configure_file(speexdsp.pc.in speexdsp.pc @ONLY) install(FILES ${PROJECT_BINARY_DIR}/speexdsp.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(TARGETS speexdsp ARCHIVE DESTINATION "lib" RUNTIME DESTINATION "bin" PUBLIC_HEADER DESTINATION "include/speex") ================================================ FILE: ports/speexdsp/jitter_ctl.patch ================================================ diff --git a/win32/libspeexdsp.def b/win32/libspeexdsp.def index 45fc69d9..9b5abbad 100755 --- a/win32/libspeexdsp.def +++ b/win32/libspeexdsp.def @@ -40,6 +40,8 @@ jitter_buffer_get jitter_buffer_get_pointer_timestamp jitter_buffer_tick jitter_buffer_update_delay +jitter_buffer_ctl +jitter_buffer_remaining_span ; ; speex_preprocess.h ================================================ FILE: ports/speexdsp/portfile.cmake ================================================ if(VCPKG_USE_HEAD_VERSION) vcpkg_from_gitlab( GITLAB_URL "https://gitlab.xiph.org" OUT_SOURCE_PATH SOURCE_PATH REPO xiph/speexdsp HEAD_REF master ) else() # Since the github repo is out-dated, use official download URL for release builds to reduce traffic to the Gitlab host vcpkg_download_distfile(ARCHIVE URLS "http://downloads.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz" FILENAME "speexdsp-1.2.1.tar.gz" SHA512 41b5f37b48db5cb8c5a0f6437a4a8266d2627a5b7c1088de8549fe0bf0bb3105b7df8024fe207eef194096e0726ea73e2b53e0a4293d8db8e133baa0f8a3bad3 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "1.2.1" PATCHES jitter_ctl.patch ) endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") set(USE_SSE OFF) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(USE_SSE ON) endif() set(USE_NEON OFF) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(USE_NEON ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_SSE=${USE_SSE} -DUSE_NEON=${USE_NEON} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/speexdsp/vcpkg.json ================================================ { "name": "speexdsp", "version": "1.2.1", "port-version": 1, "description": "A patent-free, Open Source/Free Software DSP library.", "homepage": "https://speex.org/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/spglib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO spglib/spglib REF "v${VERSION}" SHA512 123b08ba7174a792c84bad42f94cced5ad213b50ef8dfd58a9301ebf8b66cbedb3ce037d25b748d579d0b2ee2a594c1134a463e179bfd09757fb3c98445160ac HEAD_REF develop ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SPGLIB_SHARED_LIBS) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPGLIB_WITH_TESTS=OFF -DSPGLIB_SHARED_LIBS=${SPGLIB_SHARED_LIBS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Spglib) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/spglib/usage ================================================ spglib provides CMake targets: find_package(Spglib CONFIG REQUIRED) target_link_libraries(main PRIVATE Spglib::symspg) spglib provides pkg-config modules: # The spglib library spglib ================================================ FILE: ports/spglib/vcpkg.json ================================================ { "name": "spglib", "version-semver": "2.5.0", "description": "C library for finding and handling crystal symmetries", "homepage": "https://spglib.readthedocs.io/en/latest/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spimpl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oliora/samples REF 58dead450bdac418fc55dfc512b8411556f51c0e SHA512 a244364c3a58cb75709861cc8637dadeada0fbb4bc5fc52886a61d52623b3dab75ed5ccd73bed1a4384f66753fc3fd16e8cafde925fce760add084b4fffeca97 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/spimpl.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-spimpl-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/spimpl.h") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "[*]/.*" "*/" REGEX) ================================================ FILE: ports/spimpl/unofficial-spimpl-config.cmake ================================================ if(NOT TARGET unofficial::spimpl::spimpl) add_library(unofficial::spimpl::spimpl INTERFACE IMPORTED) set_target_properties( unofficial::spimpl::spimpl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../include" ) endif() ================================================ FILE: ports/spimpl/vcpkg.json ================================================ { "name": "spimpl", "version-date": "2025-01-23", "description": "A single-header C++ library for PIMPLs without having to implement any special member functions.", "homepage": "https://github.com/oliora/samples", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spine-c/fix-cmake.patch ================================================ diff --git a/spine-c/CMakeLists.txt b/spine-c/CMakeLists.txt index b7e4d2aa2..b2c3b280a 100644 --- a/spine-c/CMakeLists.txt +++ b/spine-c/CMakeLists.txt @@ -10,5 +10,5 @@ file(GLOB SOURCES "spine-c/src/**/*.c") add_library(spine-c STATIC ${SOURCES} ${INCLUDES}) target_include_directories(spine-c PUBLIC spine-c/include) -install(TARGETS spine-c DESTINATION dist/lib) -install(FILES ${INCLUDES} DESTINATION dist/include) \ No newline at end of file +install(TARGETS spine-c DESTINATION lib) +install(FILES ${INCLUDES} DESTINATION include/spine-c/spine) \ No newline at end of file ================================================ FILE: ports/spine-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EsotericSoftware/spine-runtimes REF 43e530611d30c044a8bc16eba0486140e4dc2ce0 SHA512 16a1ba493852c2512997bde4ab56318f435f65f23238544cf0c1000f53a2950cfd480255db6b3dc5c1d0b6a21a4be174be9401465d320b54c6b88c06e57e38d8 HEAD_REF 4.2 PATCHES fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/spine-c" OPTIONS -DSPINE_SET_COMPILER_FLAGS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spine-c/vcpkg.json ================================================ { "name": "spine-c", "version": "4.2.20260227", "description": "2D skeletal animation runtimes for Spine", "homepage": "https://github.com/EsotericSoftware/spine-runtimes", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/spine-cpp/fix-cmake.patch ================================================ diff --git a/spine-cpp/CMakeLists.txt b/spine-cpp/CMakeLists.txt index 9829b42cd..372d58d15 100644 --- a/spine-cpp/CMakeLists.txt +++ b/spine-cpp/CMakeLists.txt @@ -14,8 +14,8 @@ add_library(spine-cpp-lite STATIC ${SOURCES} ${INCLUDES} spine-cpp-lite/spine-cp target_include_directories(spine-cpp-lite PUBLIC spine-cpp/include spine-cpp-lite) # Install target -install(TARGETS spine-cpp EXPORT spine-cpp_TARGETS DESTINATION dist/lib) -install(FILES ${INCLUDES} DESTINATION dist/include) +install(TARGETS spine-cpp EXPORT spine-cpp_TARGETS DESTINATION lib) +install(FILES ${INCLUDES} DESTINATION include/spine-cpp/spine) # Export target export( ================================================ FILE: ports/spine-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO EsotericSoftware/spine-runtimes REF 43e530611d30c044a8bc16eba0486140e4dc2ce0 SHA512 16a1ba493852c2512997bde4ab56318f435f65f23238544cf0c1000f53a2950cfd480255db6b3dc5c1d0b6a21a4be174be9401465d320b54c6b88c06e57e38d8 HEAD_REF 4.2 PATCHES fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/spine-cpp" OPTIONS -DSPINE_SET_COMPILER_FLAGS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spine-cpp/vcpkg.json ================================================ { "name": "spine-cpp", "version": "4.2.20260227", "description": "2D skeletal animation runtimes for Spine", "homepage": "https://github.com/EsotericSoftware/spine-runtimes", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/spirit-po/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cbeck88/spirit-po REF v1.1.2 SHA512 990e26e041607fe81cc2df673bd9e5e2647537d7e121b2300e631874dcd4ccdb084159fa4f635b128c39143c9423d67c494af05206b665541124a0447b8f4a3f HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include/spirit_po DESTINATION ${CURRENT_PACKAGES_DIR}/include) # spirit-po is header-only, so no vcpkg_{configure,install}_cmake # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/spirit-po RENAME copyright) ================================================ FILE: ports/spirit-po/vcpkg.json ================================================ { "name": "spirit-po", "version": "1.1.2", "port-version": 4, "description": "A header-only C++ library for localization using GNU gettext po files, based on Boost.Spirit.", "homepage": "https://github.com/cbeck88/spirit-po", "dependencies": [ "boost-fusion", "boost-optional", "boost-spirit", "boost-variant" ] } ================================================ FILE: ports/spirv-cross/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Cross REF vulkan-sdk-${VERSION} SHA512 57904efacecb1e5266caa27f34f5d8693d4f357233c727b2e0e58d182287dfea5a71b1ac81fb33b9e30e5eb1c4cbf5aeeb7ca2f0865a74e32347b96f9f453ee6 HEAD_REF master ) if(VCPKG_TARGET_IS_IOS) message(STATUS "Using iOS triplet. Executables won't be created...") set(BUILD_CLI OFF) else() set(BUILD_CLI ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPIRV_CROSS_EXCEPTIONS_TO_ASSERTIONS=OFF -DSPIRV_CROSS_CLI=${BUILD_CLI} -DSPIRV_CROSS_SKIP_INSTALL=OFF -DSPIRV_CROSS_ENABLE_C_API=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/spirv-cross-c.pc" "-lspirv-cross-c" "-lspirv-cross-cd") endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/spirv-cross-c.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() foreach(COMPONENT core c cpp glsl hlsl msl reflect util) vcpkg_cmake_config_fixup(CONFIG_PATH share/spirv_cross_${COMPONENT}/cmake PACKAGE_NAME spirv_cross_${COMPONENT}) endforeach() if(BUILD_CLI) vcpkg_copy_tools(TOOL_NAMES spirv-cross AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spirv-cross/vcpkg.json ================================================ { "name": "spirv-cross", "version": "1.4.341.0", "description": "SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.", "homepage": "https://github.com/KhronosGroup/SPIRV-Cross", "dependencies": [ "spirv-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spirv-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Headers REF "vulkan-sdk-${VERSION}" SHA512 d624371dd455c66a300344c89812598ffe11b5eedba555779f789e85c29dc67317741858c60e0744a1e6755cc0d2759b8659f0674f4cc31479c4cb6fc25ed23b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/SPIRV-Headers") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spirv-headers/vcpkg.json ================================================ { "name": "spirv-headers", "version": "1.4.341.0", "description": "Machine-readable files for the SPIR-V Registry", "homepage": "https://github.com/KhronosGroup/SPIRV-Headers", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spirv-reflect/export-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ad9131a..143df0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -116,12 +116,23 @@ if(SPIRV_REFLECT_STATIC_LIB) add_library(spirv-reflect-static STATIC ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.c) - target_include_directories(spirv-reflect-static - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - - set_target_properties(spirv-reflect-static PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h") - + target_include_directories(spirv-reflect-static INTERFACE $) + set_target_properties(spirv-reflect-static PROPERTIES PUBLIC_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h") + set_target_properties(spirv-reflect-static PROPERTIES EXPORT_NAME spirv-reflect) + if(SPIRV_REFLECT_INSTALL) + install(TARGETS spirv-reflect-static + EXPORT unofficial-spirv-reflect-config + LIBRARY DESTINATION lib) + + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/spirv/unified1/spirv.h DESTINATION include/spirv-reflect) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/spirv_reflect.h DESTINATION include/spirv-reflect) + + install(EXPORT unofficial-spirv-reflect-config + FILE unofficial-spirv-reflect-config.cmake + NAMESPACE unofficial:: + DESTINATION share/unofficial-spirv-reflect) + install(TARGETS spirv-reflect-static LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ================================================ FILE: ports/spirv-reflect/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Reflect REF "vulkan-sdk-${VERSION}" SHA512 ee8abc9958af8887300eece7dbcf11ed4bf79d9ee281318e6794f093a988438736e0da642d61b975912475cc3a0b13fe8cd17d3a6b0fcfff653c9831f5d86ba0 HEAD_REF main PATCHES export-targets.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPIRV_REFLECT_STATIC_LIB=ON -DSPIRV_REFLECT_EXAMPLES=OFF -DSPIRV_REFLECT_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-spirv-reflect) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/spirv-reflect/spirv_reflect.h" "./include/spirv/unified1/spirv.h" "spirv.h") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_tools(TOOL_NAMES spirv-reflect-pp spirv-reflect AUTO_CLEAN) ================================================ FILE: ports/spirv-reflect/vcpkg.json ================================================ { "name": "spirv-reflect", "version": "1.4.341.0", "description": "SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.", "homepage": "https://github.com/KhronosGroup/SPIRV-Reflect", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spirv-tools/cmake-config-dir.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c6fe41e..cae234fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,7 +274,7 @@ else() endif() if(ENABLE_SPIRV_TOOLS_INSTALL) - if(WIN32 AND NOT MINGW) + if(0) macro(spvtools_config_package_dir TARGET PATH) set(${PATH} ${TARGET}/cmake) endmacro() ================================================ FILE: ports/spirv-tools/fix-tool-deps.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b69fbe8..9d9fab15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -285,8 +285,13 @@ if(ENABLE_SPIRV_TOOLS_INSTALL) endif() macro(spvtools_generate_config_file TARGET) + set(sgcf_find_extra "") + if(NOT "${TARGET}" STREQUAL "SPIRV-Tools-opt") + set(sgcf_find_extra "find_dependency(SPIRV-Tools-opt)\n") + endif() file(WRITE ${CMAKE_BINARY_DIR}/${TARGET}Config.cmake "include(CMakeFindDependencyMacro)\n" + ${sgcf_find_extra} "find_dependency(${SPIRV_TOOLS})\n" "include(\${CMAKE_CURRENT_LIST_DIR}/${TARGET}Targets.cmake)\n" "set(${TARGET}_LIBRARIES ${TARGET})\n" ================================================ FILE: ports/spirv-tools/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/SPIRV-Tools REF "vulkan-sdk-${VERSION}" SHA512 429954f382e3a4006c012642509d0530001eb56e802686f35b1dd33a21167e08e2b164cb2f32e8acdd66da7f5bea6046aa184945d7138d3b0b929e512437c40d PATCHES cmake-config-dir.diff spirv-tools-shared.diff fix-tool-deps.diff ) vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES tools SPIRV_SKIP_EXECUTABLES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} "-DSPIRV-Headers_SOURCE_DIR=${CURRENT_INSTALLED_DIR}" -DSPIRV_SKIP_TESTS=ON -DSPIRV_TOOLS_BUILD_STATIC=ON -DSPIRV_WERROR=OFF OPTIONS_DEBUG -DSPIRV_SKIP_EXECUTABLES=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPIRV-Tools PACKAGE_NAME spirv-tools DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPIRV-Tools-link PACKAGE_NAME spirv-tools-link DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPIRV-Tools-lint PACKAGE_NAME spirv-tools-lint DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPIRV-Tools-opt PACKAGE_NAME spirv-tools-opt DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPIRV-Tools-reduce PACKAGE_NAME spirv-tools-reduce) # now delete vcpkg_fixup_pkgconfig() if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/spirv-lesspipe.sh" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/spirv-lesspipe.sh") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/spirv-lesspipe.sh") set(tools spirv-as spirv-cfg spirv-diff spirv-dis spirv-link spirv-lint spirv-objdump spirv-opt spirv-reduce spirv-val) vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spirv-tools/spirv-tools-shared.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d843b4d..257b41c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,10 +406,14 @@ add_custom_target(spirv-tools-pkg-config # Install pkg-config file if (ENABLE_SPIRV_TOOLS_INSTALL) + set(shared_pc "") + if (BUILD_SHARED_LIBS) + set(shared_pc "${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc") + endif() install( FILES ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools.pc - ${CMAKE_CURRENT_BINARY_DIR}/SPIRV-Tools-shared.pc + ${shared_pc} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif() diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 641bc1f7..f6dff6c6 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -386,6 +386,10 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") endif() if(ENABLE_SPIRV_TOOLS_INSTALL) + if (NOT BUILD_SHARED_LIBS) + set_target_properties(${SPIRV_TOOLS}-shared PROPERTIES EXCLUDE_FROM_ALL 1) + list(REMOVE_ITEM SPIRV_TOOLS_TARGETS ${SPIRV_TOOLS}-shared) + endif() if (SPIRV_TOOLS_USE_MIMALLOC AND (NOT SPIRV_TOOLS_BUILD_STATIC OR SPIRV_TOOLS_USE_MIMALLOC_IN_STATIC_BUILD)) list(APPEND SPIRV_TOOLS_TARGETS mimalloc-static) endif() ================================================ FILE: ports/spirv-tools/usage ================================================ spirv-tools provides CMake targets: find_package(SPIRV-Tools CONFIG REQUIRED) # The static libary is always available. # It offers full public symbol visibility. target_link_libraries(main PRIVATE SPIRV-Tools-static) # In triplets with dynamic library linkage, there is also a shared libary. target_link_libraries(main PRIVATE SPIRV-Tools-shared) # The following libraries are static and depend on SPIRV-Tools-static. find_package(SPIRV-Tools-link CONFIG REQUIRED) target_link_libraries(main PRIVATE SPIRV-Tools-link) find_package(SPIRV-Tools-lint CONFIG REQUIRED) target_link_libraries(main PRIVATE SPIRV-Tools-lint) find_package(SPIRV-Tools-opt CONFIG REQUIRED) target_link_libraries(main PRIVATE SPIRV-Tools-opt) find_package(SPIRV-Tools-reduce CONFIG REQUIRED) target_link_libraries(main PRIVATE SPIRV-Tools-reduce) ================================================ FILE: ports/spirv-tools/vcpkg.json ================================================ { "name": "spirv-tools", "version": "1.4.341.0", "description": "API and commands for processing SPIR-V modules", "homepage": "https://github.com/KhronosGroup/SPIRV-Tools", "license": "Apache-2.0", "dependencies": [ "spirv-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools.", "supports": "!android & !ios" } } } ================================================ FILE: ports/spix/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO faaxm/spix REF "v${VERSION}" SHA512 5b66ca35e122f933eb73d9f6cc4ea4ad8f49f9dd29a9345b746b41e918634332e45699cd1a335b1a3e960b6c018913beda4ee02fb54803841ea10a57d0288330 HEAD_REF master ) # Check features for QtQuick and QtWidgets vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES qtwidgets SPIX_BUILD_QTWIDGETS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSPIX_BUILD_QTQUICK=ON -DSPIX_BUILD_EXAMPLES=OFF -DSPIX_BUILD_TESTS=OFF -DSPIX_QT_MAJOR=6 ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_copy_pdbs() ================================================ FILE: ports/spix/usage ================================================ spix provides CMake targets: find_package(Spix CONFIG REQUIRED) For test of QtQuick/QML based applications: target_link_libraries(main PRIVATE Spix::QtQuick) For test of QWidget based applications (requires qtwidgets feature enabled): target_link_libraries(main PRIVATE Spix::QtWidgets) ================================================ FILE: ports/spix/vcpkg.json ================================================ { "name": "spix", "version": "0.14", "description": "A minimally invasive UI testing library for Qt/QML applications. Control your application and verify its behavior using a simple C++ API.", "homepage": "https://github.com/faaxm/spix", "license": "MIT", "supports": "!uwp", "dependencies": [ "anyrpc", { "name": "qtdeclarative", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "qtwidgets": { "description": "Build the QtWidgets scene library.", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] } ] } } } ================================================ FILE: ports/spout2/fix-dx-keyed.patch ================================================ Subject: [PATCH] fix dx keyed --- Index: SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.cpp IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.cpp b/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.cpp --- a/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.cpp (revision e16402c39ed2389692876d7bbd1c7d4a771a5b86) +++ b/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.cpp (revision f3ba250699b87c8004a3430d6b00f3f537af0c0d) @@ -193,6 +193,7 @@ m_bSwapRB = false; m_bAdapt = false; // Receiver switch to the sender's graphics adapter m_bMemoryShare = GetMemoryShareMode(); // 2.006 memoryshare mode + m_bKeyed = false; ZeroMemory(&m_SenderInfo, sizeof(SharedTextureInfo)); ZeroMemory(&m_ShExecInfo, sizeof(m_ShExecInfo)); ================================================ FILE: ports/spout2/fix-include-path.patch ================================================ Subject: [PATCH] fixup for vcpkg --- Index: SPOUTSDK/SpoutDirectX/SpoutDX/CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/SPOUTSDK/SpoutDirectX/SpoutDX/CMakeLists.txt b/SPOUTSDK/SpoutDirectX/SpoutDX/CMakeLists.txt --- a/SPOUTSDK/SpoutDirectX/SpoutDX/CMakeLists.txt (revision 62362774c96547d63b502d7efd5cfbf138eb7570) +++ b/SPOUTSDK/SpoutDirectX/SpoutDX/CMakeLists.txt (revision e16402c39ed2389692876d7bbd1c7d4a771a5b86) @@ -67,6 +67,10 @@ SPOUT_BUILD_DLL SPOUTLIBRARY_EXPORTS ) + + +target_include_directories(SpoutDX_static PRIVATE ../../) +target_include_directories(SpoutDX PRIVATE ../../) #/-------------------------------------- . -----------------------------------\# Index: SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.h IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.h b/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.h --- a/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.h (revision 62362774c96547d63b502d7efd5cfbf138eb7570) +++ b/SPOUTSDK/SpoutDirectX/SpoutDX/SpoutDX.h (revision e16402c39ed2389692876d7bbd1c7d4a771a5b86) @@ -33,12 +33,12 @@ #define __spoutDX__ // Change the path as required -#include "..\..\SpoutGL\SpoutCommon.h" // for dll build -#include "..\..\SpoutGL\SpoutSenderNames.h" // for sender creation and update -#include "..\..\SpoutGL\SpoutDirectX.h" // for creating DX11 textures -#include "..\..\SpoutGL\SpoutFrameCount.h" // for mutex lock and new frame signal -#include "..\..\SpoutGL\SpoutCopy.h" // for pixel copy -#include "..\..\SpoutGL\SpoutUtils.h" // Registry utiities +#include "SpoutGL\SpoutCommon.h" // for dll build +#include "SpoutGL\SpoutSenderNames.h" // for sender creation and update +#include "SpoutGL\SpoutDirectX.h" // for creating DX11 textures +#include "SpoutGL\SpoutFrameCount.h" // for mutex lock and new frame signal +#include "SpoutGL\SpoutCopy.h" // for pixel copy +#include "SpoutGL\SpoutUtils.h" // Registry utiities #include // for _getcwd #include // for PROCESSENTRY32 ================================================ FILE: ports/spout2/portfile.cmake ================================================ # vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO leadedge/Spout2 REF 62362774c96547d63b502d7efd5cfbf138eb7570 #v2.007.010 SHA512 89d0dcec719c068e27c2f55605e4b45b32fe3a5e097c821b0aa45f4ee9284e63830bd741ac7bb1bff917190d9a51daa36b452580fc673c05767b7bfcbc9a494f HEAD_REF master PATCHES fix-include-path.patch fix-dx-keyed.patch ) if(VCPKG_CRT_LINKAGE STREQUAL "static") list(APPEND OPTIONS -DSPOUT_BUILD_CMT=ON) else() list(APPEND OPTIONS -DSPOUT_BUILD_CMT=OFF) endif() vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dx SPOUT_BUILD_SPOUTDX ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSKIP_INSTALL_ALL=OFF ${FEATURE_OPTIONS} ${OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # Handle copyright & usage vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # remove unneeded files file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() ================================================ FILE: ports/spout2/usage ================================================ spout2 provides CMake targets: # SpoutGL find_package(Spout2 CONFIG REQUIRED) target_link_libraries(main PRIVATE Spout2::Spout) target_link_libraries(main PRIVATE Spout2::Spout_static) # SpoutLibrary target_link_libraries(main PRIVATE Spout2::SpoutLibrary) # SpoutDX target_link_libraries(main PRIVATE Spout2::SpoutDX) target_link_libraries(main PRIVATE Spout2::SpoutDX_static) ================================================ FILE: ports/spout2/vcpkg.json ================================================ { "name": "spout2", "version-string": "2.007.010", "description": "Spout is a video frame sharing system for Microsoft Windows, which allows applications to share OpenGL textures in a similar way to Syphon for the Mac.", "homepage": "https://github.com/leadedge/Spout2", "supports": "windows & !uwp & !arm64", "dependencies": [ "opengl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dx": { "description": "A sub-set of the Spout SDK for applications using DirectX rather than OpenGL." } } } ================================================ FILE: ports/sproto/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(sproto C) set(CMAKE_C_STANDARD 99) find_package(Lua REQUIRED) add_library(sproto sproto.c lsproto.c) if(BUILD_SHARED_LIBS) target_compile_definitions(sproto PRIVATE SPROTO_BUILD_DLL) # Set symbol visibility for GCC/Clang if(NOT WIN32) target_compile_options(sproto PRIVATE -fvisibility=hidden) endif() else() target_compile_definitions(sproto PUBLIC SPROTO_STATIC) endif() target_link_libraries(sproto PRIVATE ${LUA_LIBRARIES}) target_include_directories(sproto PRIVATE ${LUA_INCLUDE_DIR}) target_include_directories(sproto PUBLIC $ $ ) install(TARGETS sproto EXPORT sproto-targets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin ) install(FILES sproto.h DESTINATION include ) install(EXPORT sproto-targets FILE sproto-targets.cmake NAMESPACE unofficial::sproto:: DESTINATION share/unofficial-sproto ) include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_LIST_DIR}/sproto-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-sproto-config.cmake" INSTALL_DESTINATION share/unofficial-sproto ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-sproto-config.cmake" DESTINATION share/unofficial-sproto ) ================================================ FILE: ports/sproto/add-symbol-exports.patch ================================================ diff --git a/sproto.h b/sproto.h index 1234567..8901234 100644 --- a/sproto.h +++ b/sproto.h @@ -6,6 +6,24 @@ struct sproto; struct sproto_type; +#if defined(_WIN32) + #if defined(SPROTO_BUILD_DLL) + #define SPROTO_API __declspec(dllexport) + #elif defined(SPROTO_STATIC) + #define SPROTO_API + #else + #define SPROTO_API __declspec(dllimport) + #endif +#elif defined(__GNUC__) || defined(__clang__) + #if defined(SPROTO_BUILD_DLL) + #define SPROTO_API __attribute__((visibility("default"))) + #else + #define SPROTO_API + #endif +#else + #define SPROTO_API +#endif + #define SPROTO_REQUEST 0 #define SPROTO_RESPONSE 1 @@ -25,19 +43,19 @@ #define SPROTO_CB_NIL -2 #define SPROTO_CB_NOARRAY -3 -struct sproto * sproto_create(const void * proto, size_t sz); -void sproto_release(struct sproto *); +SPROTO_API struct sproto * sproto_create(const void * proto, size_t sz); +SPROTO_API void sproto_release(struct sproto *); -int sproto_prototag(const struct sproto *, const char * name); -const char * sproto_protoname(const struct sproto *, int proto); +SPROTO_API int sproto_prototag(const struct sproto *, const char * name); +SPROTO_API const char * sproto_protoname(const struct sproto *, int proto); // SPROTO_REQUEST(0) : request, SPROTO_RESPONSE(1): response -struct sproto_type * sproto_protoquery(const struct sproto *, int proto, int what); -int sproto_protoresponse(const struct sproto *, int proto); +SPROTO_API struct sproto_type * sproto_protoquery(const struct sproto *, int proto, int what); +SPROTO_API int sproto_protoresponse(const struct sproto *, int proto); -struct sproto_type * sproto_type(const struct sproto *, const char * type_name); +SPROTO_API struct sproto_type * sproto_type(const struct sproto *, const char * type_name); -int sproto_pack(const void * src, int srcsz, void * buffer, int bufsz); -int sproto_unpack(const void * src, int srcsz, void * buffer, int bufsz); +SPROTO_API int sproto_pack(const void * src, int srcsz, void * buffer, int bufsz); +SPROTO_API int sproto_unpack(const void * src, int srcsz, void * buffer, int bufsz); struct sproto_arg { void *ud; @@ -58,11 +76,11 @@ struct sproto_arg { typedef int (*sproto_callback)(const struct sproto_arg *args); -int sproto_decode(const struct sproto_type *, const void * data, int size, sproto_callback cb, void *ud); -int sproto_encode(const struct sproto_type *, void * buffer, int size, sproto_callback cb, void *ud); +SPROTO_API int sproto_decode(const struct sproto_type *, const void * data, int size, sproto_callback cb, void *ud); +SPROTO_API int sproto_encode(const struct sproto_type *, void * buffer, int size, sproto_callback cb, void *ud); // for debug use -void sproto_dump(struct sproto *); -const char * sproto_name(struct sproto_type *); +SPROTO_API void sproto_dump(struct sproto *); +SPROTO_API const char * sproto_name(struct sproto_type *); #endif ================================================ FILE: ports/sproto/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cloudwu/sproto REF 63df1ad8be4a7b295d389afaca7019e86f70d39c SHA512 5613a04e6197b6fa00828f457aeee0270a7f4d300df609d62e405123f3623516c5761bd2c6b0b8e21be12aa30ca3288ae6307121bf8461535ad8c3efe9a750a2 HEAD_REF master PATCHES add-symbol-exports.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/sproto-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_build() vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH "share/unofficial-sproto" PACKAGE_NAME "unofficial-sproto") ================================================ FILE: ports/sproto/sproto-config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(Lua) include("${CMAKE_CURRENT_LIST_DIR}/sproto-targets.cmake") check_required_components(sproto) ================================================ FILE: ports/sproto/usage ================================================ The package sproto provides CMake targets: find_package(unofficial-sproto CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::sproto::sproto) ================================================ FILE: ports/sproto/vcpkg.json ================================================ { "name": "sproto", "version-date": "2024-07-08", "port-version": 1, "description": "Yet another protocol library like google protocol buffers, but simple and fast", "homepage": "https://github.com/cloudwu/sproto", "license": "MIT", "dependencies": [ "lua", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sprout/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bolero-MURAKAMI/Sprout REF 6b5addba9face0a6403e66e7db2aa94d87387f61 SHA512 b81c299842c48626a7fbedb5b70932623ddb128bd5c71115269253b2c82a331d4f5d5adeab24529be2c886d293de96c15c9641280b4eb31bd60379b284556900 HEAD_REF master ) file(COPY ${SOURCE_PATH}/sprout DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright configure_file(${SOURCE_PATH}/LICENSE_1_0.txt ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) ================================================ FILE: ports/sprout/vcpkg.json ================================================ { "name": "sprout", "version-date": "2019-06-20", "port-version": 2, "description": "C++11/14 constexpr based Containers, Algorithms, Random numbers, Parsing, Ray tracing, Synthesizer, and others", "homepage": "https://github.com/bolero-MURAKAMI/Sprout", "dependencies": [ "boost-array", "boost-mpl" ] } ================================================ FILE: ports/spscqueue/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rigtorp/SPSCQueue REF v1.1 SHA512 148d60b3677f9d96603413577ff7062d8830bfec955cf3631bea66e5937ee0564d3ff51d05bf9417e5f964e761b7d7fbb8a871e5b6e0fe21112479b4830b0025 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SPSCQueue) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/spscqueue/vcpkg.json ================================================ { "name": "spscqueue", "version": "1.1", "port-version": 3, "description": "A bounded single-producer single-consumer wait-free and lock-free queue written in C++11", "homepage": "https://github.com/rigtorp/SPSCQueue", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/spz/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nianticlabs/spz REF v${VERSION} SHA512 0e6bd1dd3f8625cc6730c0cc3a53f65a414a0504c463ca108ac972e4f09e949c49fd98d1033e27947080ead573695747c2a0b9c1a3d8aac7a39351abeb70bfc6 HEAD_REF main PATCHES tools-improvements.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES ply_to_spz spz_to_ply spz_info AUTO_CLEAN ) endif() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/spz") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/spz/tools-improvements.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 876e29f..998d86c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,8 @@ install(EXPORT spzTargets DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/spz" ) +if(BUILD_TOOLS) + # CLI Tools add_executable(ply_to_spz cli_tools/src/ply_to_spz.cpp) target_link_libraries(ply_to_spz PRIVATE spz) @@ -95,6 +97,21 @@ install(TARGETS ply_to_spz spz_to_ply spz_info RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) +set_target_properties(ply_to_spz PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON +) +set_target_properties(spz_to_ply PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON +) +set_target_properties(spz_info PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON +) + +endif() + # --- Python Bindings Option --- option(BUILD_PYTHON_BINDINGS "Build Python bindings using nanobind" OFF) ================================================ FILE: ports/spz/vcpkg.json ================================================ { "name": "spz", "version": "2.1.0", "description": "File format for 3D Gaussian splats.", "homepage": "https://scaniverse.com/spz", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/sqlcipher/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(sqlcipher C) find_package(OpenSSL REQUIRED) if(BUILD_SHARED_LIBS) if(UNIX) set(API "-DSQLITE_API=__attribute__((visibility(\"default\")))") elseif(CMAKE_SYSTEM_NAME MATCHES "Windows") set(API "-DSQLITE_API=__declspec(dllexport)") else() message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}") endif() endif() add_library(sqlcipher sqlite3.c) target_compile_definitions( sqlcipher PRIVATE $<$:SQLITE_DEBUG> ${API} -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 ) if(WITH_GEOPOLY) add_compile_definitions(SQLITE_ENABLE_GEOPOLY) endif() if(WITH_JSON1) add_compile_definitions(SQLITE_ENABLE_JSON1) endif() if(WITH_FTS5) add_compile_definitions(SQLITE_ENABLE_FTS5) endif() target_include_directories(sqlcipher INTERFACE $) if(NOT WIN32) find_package(Threads REQUIRED) target_link_libraries(sqlcipher PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) endif() if (UNIX AND NOT APPLE) target_link_libraries(sqlcipher PRIVATE m) endif() target_link_libraries(sqlcipher PRIVATE OpenSSL::SSL OpenSSL::Crypto) if(CMAKE_SYSTEM_NAME MATCHES "WindowsStore") target_compile_definitions(sqlcipher PRIVATE -DSQLITE_OS_WINRT=1) endif() if(NOT SQLITE3_SKIP_TOOLS) add_executable(sqlcipher-bin shell.c) target_link_libraries(sqlcipher-bin PRIVATE sqlcipher) install(TARGETS sqlcipher-bin sqlcipher RUNTIME DESTINATION tools/sqlcipher LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() SET(prefix "${CMAKE_INSTALL_PREFIX}") SET(exec_prefix "\${prefix}") SET(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") SET(includedir "\${prefix}/include") SET(PACKAGE_VERSION ${SQLCIPHER_VERSION}) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sqlcipher.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sqlcipher.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sqlcipher.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install( TARGETS sqlcipher EXPORT sqlcipher-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES sqlite3.h sqlite3ext.h DESTINATION include/sqlcipher CONFIGURATIONS Release) install(EXPORT sqlcipher-targets NAMESPACE sqlcipher:: FILE sqlcipher-targets.cmake DESTINATION share/sqlcipher) ================================================ FILE: ports/sqlcipher/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sqlcipher/sqlcipher REF "v${VERSION}" SHA512 023b2fc7248fe38b758ef93dd8436677ff0f5d08b1061e7eab0adb9e38ad92d523e0ab69016ee69bd35c1fd53c10f61e99b01f7a2987a1f1d492e1f7216a0a9c HEAD_REF master ) # Don't use vcpkg_build_nmake, because it doesn't handle nmake targets correctly. find_program(NMAKE nmake REQUIRED) # Find tclsh Executable needed for Amalgamation of SQLite file(GLOB TCLSH_CMD ${CURRENT_INSTALLED_DIR}/tools/tcl/bin/tclsh*${VCPKG_HOST_EXECUTABLE_SUFFIX} ) file(TO_NATIVE_PATH "${TCLSH_CMD}" TCLSH_CMD) # Determine TCL version (e.g. [path]tclsh90sx.exe -> 90) string(REGEX REPLACE ^.*tclsh "" TCLVERSION ${TCLSH_CMD}) string(REGEX REPLACE [A-Za-z]*${VCPKG_HOST_EXECUTABLE_SUFFIX}$ "" TCLVERSION ${TCLVERSION}) list(APPEND NMAKE_OPTIONS TCLSH_CMD="${TCLSH_CMD}" TCLVERSION=${TCLVERSION} EXT_FEATURE_FLAGS=-DSQLITE_TEMP_STORE=2\ -DSQLITE_HAS_CODEC ) set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}") # Creating amalgamation files message(STATUS "Pre-building ${TARGET_TRIPLET}") vcpkg_execute_required_process( COMMAND ${NMAKE} -f Makefile.msc /A /NOLOGO clean sqlite3.c ${NMAKE_OPTIONS} WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME pre-build-${TARGET_TRIPLET} ) message(STATUS "Pre-building ${TARGET_TRIPLET} done") # The rest of the build process with the CMakeLists.txt is merely a copy of sqlite3 file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES geopoly WITH_GEOPOLY json1 WITH_JSON1 fts5 WITH_FTS5 INVERTED_FEATURES tool SQLITE3_SKIP_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSQLCIPHER_VERSION=${VERSION} OPTIONS_DEBUG -DSQLITE3_SKIP_TOOLS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ${PORT} CONFIG_PATH share/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(NOT SQLITE3_SKIP_TOOLS AND EXISTS "${CURRENT_PACKAGES_DIR}/tools/${PORT}/sqlcipher-bin${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/${PORT}/sqlcipher-bin${VCPKG_HOST_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/sqlcipher${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() configure_file( "${CMAKE_CURRENT_LIST_DIR}/sqlcipher-config.in.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/sqlcipher-config.cmake" @ONLY ) file(INSTALL "${SOURCE_PATH}/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/sqlcipher/sqlcipher-config.in.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(OpenSSL) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT WIN32) find_dependency(Threads) endif() include(${CMAKE_CURRENT_LIST_DIR}/sqlcipher-targets.cmake) ================================================ FILE: ports/sqlcipher/vcpkg.json ================================================ { "name": "sqlcipher", "version": "4.6.1", "port-version": 3, "description": "SQLCipher extends the SQLite database library to add security enhancements that make it more suitable for encrypted local data storage.", "homepage": "https://www.zetetic.net/sqlcipher", "license": null, "supports": "windows & !uwp", "dependencies": [ "openssl", "tcl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fts5": { "description": "enable FTS5 functionality for sqlite3" }, "geopoly": { "description": "enable geopoly functionality for sqlite3" }, "json1": { "description": "enable JSON functionality for sqlite3" }, "tool": { "description": "sqlite3 executable" } } } ================================================ FILE: ports/sqlgen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO getml/sqlgen REF "v${VERSION}" SHA512 a2853d6bcd31d2e9fe7c928d9f1c668ff8fcc2c93bd38c82e0bd4b88826f102443274fab0aee209c11145d2ac44fcbd25303fa7e34e82929d18264643bd16514 HEAD_REF main ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SQLGEN_BUILD_SHARED) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES duckdb SQLGEN_DUCKDB mariadb SQLGEN_MYSQL postgres SQLGEN_POSTGRES ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DSQLGEN_BUILD_TESTS=OFF -DSQLGEN_SQLITE3=ON -DSQLGEN_BUILD_SHARED=${SQLGEN_BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/sqlgen/usage ================================================ sqlgen provides CMake targets: find_package(sqlgen CONFIG REQUIRED) target_link_libraries(main PRIVATE sqlgen::sqlgen) ================================================ FILE: ports/sqlgen/vcpkg.json ================================================ { "name": "sqlgen", "version": "0.6.0", "description": "sqlgen is an ORM and SQL query generator for C++-20, similar to Python's SQLAlchemy/SQLModel or Rust's Diesel.", "homepage": "https://github.com/getml/sqlgen/", "license": "MIT", "dependencies": [ "reflectcpp", { "name": "sqlite3", "features": [ "math" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "duckdb": { "description": "Enable DuckDB support", "dependencies": [ "duckdb" ] }, "mariadb": { "description": "Enable MySQL/MariaDB support", "dependencies": [ "libmariadb" ] }, "postgres": { "description": "Enable PostgreSQL support", "dependencies": [ "libpq" ] }, "tests": { "description": "Build the tests", "dependencies": [ "gtest" ] } } } ================================================ FILE: ports/sqlite-flux/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO a-alomran/sqlite_flux REF v1.1.1 SHA512 abd71e9b99b27b4edebe8f49e978212498b0914170b9fe41b4111121eb2d732b9b2939add9f6732d474008628eb3e05e0945f7687504da837d497a93d96d3376 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME sqlite_flux CONFIG_PATH lib/cmake/sqlite_flux ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sqlite-flux/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "sqlite-flux", "version": "1.1.1", "description": "Modern C++20 type-safe, thread-safe SQLite query builder with fluent API and compile-time validation", "homepage": "https://github.com/a-alomran/sqlite_flux", "license": "MIT", "dependencies": [ "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/sqlite-modern-cpp/portfile.cmake ================================================ # header only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO SqliteModernCpp/sqlite_modern_cpp REF 6e3009973025e0016d5573529067714201338c80 SHA512 a007c739e00b9bd51d19f3bc484709f9fc4637f0262b636b51ee95cbc7f3f7fe6551dcbf0990a0430ac12f276bb72d1e0a3b71f06ac6e6d19fb46d51066a4295 HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/hdr/ DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp) file(INSTALL ${SOURCE_PATH}/License.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/sqlite-modern-cpp RENAME copyright) ================================================ FILE: ports/sqlite-modern-cpp/vcpkg.json ================================================ { "name": "sqlite-modern-cpp", "version-date": "2023-12-03", "description": "The C++14 wrapper around sqlite library", "homepage": "https://github.com/aminroosta/sqlite_modern_cpp", "dependencies": [ "sqlite3" ] } ================================================ FILE: ports/sqlite-orm/fix-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a56294f29..d784c4d5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,8 +44,8 @@ set(SqliteOrm_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/include") add_library(sqlite_orm INTERFACE) add_library(sqlite_orm::sqlite_orm ALIAS sqlite_orm) -find_package(SQLite3 REQUIRED) -target_link_libraries(sqlite_orm INTERFACE SQLite::SQLite3) +find_package(unofficial-sqlite3 CONFIG REQUIRED) +target_link_libraries(sqlite_orm INTERFACE unofficial::sqlite3::sqlite3) target_sources(sqlite_orm INTERFACE $) diff --git a/cmake/SqliteOrmConfig.cmake.in b/cmake/SqliteOrmConfig.cmake.in index e0635d28a..30403cd41 100644 --- a/cmake/SqliteOrmConfig.cmake.in +++ b/cmake/SqliteOrmConfig.cmake.in @@ -1,4 +1,4 @@ include(CMakeFindDependencyMacro) -find_dependency(SQLite3) +find_dependency(unofficial-sqlite3) include(${CMAKE_CURRENT_LIST_DIR}/SqliteOrmTargets.cmake) ================================================ FILE: ports/sqlite-orm/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fnc12/sqlite_orm REF "v${VERSION}" SHA512 3e939ddb31e8f03a5f885e459b1ba8040b58e697a715148b829b075d612d1c8a5686ec889155ec9804929e11ec11285a39af3f1eb27a4edf0bcc56c4ee7530b1 HEAD_REF master PATCHES fix-dependency.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test BUILD_TESTING example BUILD_EXAMPLES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSQLITE_ORM_ENABLE_CXX_17=OFF -DSQLITE_ORM_ENABLE_CXX_20=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME SqliteOrm CONFIG_PATH lib/cmake/SqliteOrm) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sqlite-orm/vcpkg.json ================================================ { "name": "sqlite-orm", "version": "1.9.1", "description": "SQLite ORM light header only library for modern C++", "homepage": "https://github.com/fnc12/sqlite_orm", "license": "AGPL-3.0-or-later OR MIT", "dependencies": [ "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "example": { "description": "Build examples" }, "test": { "description": "Build sqlite_orm unit tests", "dependencies": [ "catch2" ] } } } ================================================ FILE: ports/sqlite3/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(sqlite3 C CXX) option(WITH_ZLIB "Build sqlite3 with zlib support" OFF) option(SQLITE3_SKIP_TOOLS "Disable build sqlite3 executable" OFF) set(PKGCONFIG_LIBS_PRIVATE "") set(PKGCONFIG_REQUIRES_PRIVATE "") add_library(sqlite3 sqlite3.c sqlite3.rc) target_include_directories(sqlite3 PUBLIC $ $) target_compile_definitions( sqlite3 PRIVATE $<$:SQLITE_DEBUG=1> $<$:SQLITE_ENABLE_SELECTTRACE> $<$:SQLITE_ENABLE_WHERETRACE> $<$:RC_VERONLY> ) if (BUILD_SHARED_LIBS) if (WIN32) target_compile_definitions(sqlite3 PRIVATE "SQLITE_API=__declspec(dllexport)") else() target_compile_definitions(sqlite3 PRIVATE "SQLITE_API=__attribute__((visibility(\"default\")))") endif() endif() if (NOT WIN32) find_package(Threads REQUIRED) target_link_libraries(sqlite3 PRIVATE Threads::Threads ${CMAKE_DL_LIBS}) string(APPEND PKGCONFIG_LIBS_PRIVATE " -pthread") foreach(LIB IN LISTS CMAKE_DL_LIBS) string(APPEND PKGCONFIG_LIBS_PRIVATE " -l${LIB}") endforeach() if(SQLITE_ENABLE_FTS5 OR SQLITE_ENABLE_MATH_FUNCTIONS) find_library(HAVE_LIBM m) if(HAVE_LIBM) target_link_libraries(sqlite3 PRIVATE m) string(APPEND PKGCONFIG_LIBS_PRIVATE " -lm") endif() endif() endif() if(SQLITE_ENABLE_ICU) find_package(ICU COMPONENTS uc i18n REQUIRED) target_link_libraries(sqlite3 PRIVATE ICU::uc ICU::i18n) string(APPEND PKGCONFIG_REQUIRES_PRIVATE " icu-uc icu-i18n") endif() if(NOT SQLITE3_SKIP_TOOLS) add_executable(sqlite3-bin shell.c) set_target_properties(sqlite3-bin PROPERTIES RUNTIME_OUTPUT_NAME sqlite3 ) target_link_libraries(sqlite3-bin PRIVATE sqlite3) if (WITH_ZLIB) find_package(ZLIB REQUIRED) target_link_libraries(sqlite3-bin PRIVATE ZLIB::ZLIB) target_compile_definitions(sqlite3-bin PRIVATE SQLITE_HAVE_ZLIB) endif() find_library(HAVE_LIBM m) if(HAVE_LIBM) target_link_libraries(sqlite3-bin PRIVATE m) endif() install(TARGETS sqlite3-bin RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) endif() install( TARGETS sqlite3 EXPORT unofficial-sqlite3-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(FILES sqlite3.h sqlite3ext.h sqlite3-vcpkg-config.h DESTINATION include CONFIGURATIONS Release) install(EXPORT unofficial-sqlite3-targets NAMESPACE unofficial::sqlite3:: FILE unofficial-sqlite3-targets.cmake DESTINATION share/unofficial-sqlite3) configure_file(sqlite3.pc.in sqlite3.pc @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sqlite3.pc" DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig") ================================================ FILE: ports/sqlite3/add-config-include.patch ================================================ diff --git a/sqlite3.c b/sqlite3.c index 80433f6..cfd213b 100644 --- a/sqlite3.c +++ b/sqlite3.c @@ -25,6 +25,7 @@ #ifndef SQLITE_AMALGAMATION #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 +#include "sqlite3-vcpkg-config.h" #ifndef SQLITE_PRIVATE # define SQLITE_PRIVATE static #endif diff --git a/sqlite3.h b/sqlite3.h index 4ed8428..f1cf6d4 100644 --- a/sqlite3.h +++ b/sqlite3.h @@ -32,6 +32,7 @@ */ #ifndef SQLITE3_H #define SQLITE3_H +#include "sqlite3-vcpkg-config.h" #include /* Needed for the definition of va_list */ /* ================================================ FILE: ports/sqlite3/fix-arm-uwp.patch ================================================ diff --git a/shell.c b/shell.c index 10d8cc1..99f37a5 100644 --- a/shell.c +++ b/shell.c @@ -316,7 +316,11 @@ static int hasTimer(void){ */ hProcess = GetCurrentProcess(); if( hProcess ){ +#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) HINSTANCE hinstLib = LoadLibrary(TEXT("Kernel32.dll")); +#else + HINSTANCE hinstLib = LoadPackagedLibrary(TEXT("Kernel32.dll"), 0); +#endif if( NULL != hinstLib ){ getProcessTimesAddr = (GETPROCTIMES) GetProcAddress(hinstLib, "GetProcessTimes"); @@ -2437,10 +2441,16 @@ static int writeFile( if( zUnicodeName==0 ){ return 1; } +#if !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) hFile = CreateFileW( zUnicodeName, FILE_WRITE_ATTRIBUTES, 0, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL ); +#else + hFile = CreateFile2( + zUnicodeName, FILE_WRITE_ATTRIBUTES, 0, OPEN_EXISTING, NULL + ); +#endif sqlite3_free(zUnicodeName); if( hFile!=INVALID_HANDLE_VALUE ){ BOOL bResult = SetFileTime(hFile, NULL, &lastAccess, &lastWrite); ================================================ FILE: ports/sqlite3/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([0-9]+)[.]([0-9]+)[.]([0-9]+)" "\\1,0\\2,0\\3,0\\4," SQLITE_VERSION "${VERSION}.0") string(REGEX REPLACE "^([0-9]+),0*([0-9][0-9]),0*([0-9][0-9]),0*([0-9][0-9])," "\\1\\2\\3\\4" SQLITE_VERSION "${SQLITE_VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://sqlite.org/2026/sqlite-autoconf-${SQLITE_VERSION}.tar.gz" FILENAME "sqlite-autoconf-${SQLITE_VERSION}.tar.gz" SHA512 2e0f5f4e1caa02bd947badbff171532b6368cbddbfc2091bad532c453dc3ff9f505bae663613884361b4d6eca9d4a87423538271efae1794e47fbf93b581d2fb ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-arm-uwp.patch add-config-include.patch ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") if(VCPKG_TARGET_IS_WINDOWS) set(SQLITE_API "__declspec(dllimport)") else() set(SQLITE_API "__attribute__((visibility(\"default\")))") endif() else() set(SQLITE_API "") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fts5 SQLITE_ENABLE_FTS5 math SQLITE_ENABLE_MATH_FUNCTIONS zlib WITH_ZLIB unicode SQLITE_ENABLE_ICU INVERTED_FEATURES tool SQLITE3_SKIP_TOOLS ) vcpkg_check_features(OUT_FEATURE_OPTIONS none # only using the script-mode side-effects FEATURES dbstat SQLITE_ENABLE_DBSTAT_VTAB dbpage-vtab SQLITE_ENABLE_DBPAGE_VTAB fts3 SQLITE_ENABLE_FTS3 fts4 SQLITE_ENABLE_FTS4 memsys3 SQLITE_ENABLE_MEMSYS3 memsys5 SQLITE_ENABLE_MEMSYS5 limit SQLITE_ENABLE_UPDATE_DELETE_LIMIT rtree SQLITE_ENABLE_RTREE session SQLITE_ENABLE_SESSION session SQLITE_ENABLE_PREUPDATE_HOOK snapshot SQLITE_ENABLE_SNAPSHOT omit-load-extension SQLITE_OMIT_LOAD_EXTENSION geopoly SQLITE_ENABLE_GEOPOLY soundex SQLITE_SOUNDEX INVERTED_FEATURES json1 SQLITE_OMIT_JSON ) if(VCPKG_TARGET_IS_WINDOWS) set(SQLITE_OS_WIN "1") if(VCPKG_TARGET_IS_UWP) set(SQLITE_OS_WINRT "1") endif() else() set(SQLITE_OS_UNIX "1") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/sqlite3.pc.in" DESTINATION "${SOURCE_PATH}") configure_file("${CMAKE_CURRENT_LIST_DIR}/sqlite3-vcpkg-config.h.in" "${SOURCE_PATH}/sqlite3-vcpkg-config.h" @ONLY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DPKGCONFIG_VERSION=${VERSION} OPTIONS_DEBUG -DSQLITE3_SKIP_TOOLS=ON MAYBE_UNUSED_VARIABLES SQLITE_ENABLE_FTS5 SQLITE_ENABLE_MATH_FUNCTIONS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES sqlite3 DESTINATION "${CURRENT_PACKAGES_DIR}/tools" AUTO_CLEAN) endif() configure_file( "${CMAKE_CURRENT_LIST_DIR}/sqlite3-config.in.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-sqlite3-config.cmake" @ONLY ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "SQLite is in the Public Domain.\nhttp://www.sqlite.org/copyright.html\n") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/sqlite3/sqlite3-config.in.cmake ================================================ include(CMakeFindDependencyMacro) if(NOT WIN32) find_dependency(Threads) endif() if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") find_package(ICU COMPONENTS uc i18n) endif() include(${CMAKE_CURRENT_LIST_DIR}/unofficial-sqlite3-targets.cmake) ================================================ FILE: ports/sqlite3/sqlite3-vcpkg-config.h.in ================================================ /* * This file was generated to inject vcpkg feature selections into the installed copy of * sqlite so that consumers need not get the values from pkgconfig or CMake configs. * * No include guard: intentionally reuses the include guard from sqlite3.h. */ #ifndef SQLITE_API #cmakedefine SQLITE_API @SQLITE_API@ #endif #define SQLITE_ENABLE_UNLOCK_NOTIFY 1 #cmakedefine SQLITE_ENABLE_FTS3 #cmakedefine SQLITE_ENABLE_FTS4 #cmakedefine SQLITE_ENABLE_FTS5 #cmakedefine SQLITE_ENABLE_MEMSYS3 #cmakedefine SQLITE_ENABLE_MEMSYS5 #cmakedefine SQLITE_ENABLE_MATH_FUNCTIONS #cmakedefine SQLITE_ENABLE_UPDATE_DELETE_LIMIT #cmakedefine SQLITE_ENABLE_DBPAGE_VTAB #cmakedefine SQLITE_ENABLE_RTREE #cmakedefine SQLITE_ENABLE_SESSION #cmakedefine SQLITE_ENABLE_SNAPSHOT #cmakedefine SQLITE_ENABLE_PREUPDATE_HOOK #cmakedefine SQLITE_OMIT_LOAD_EXTENSION #cmakedefine SQLITE_ENABLE_GEOPOLY #cmakedefine SQLITE_OMIT_JSON #cmakedefine SQLITE_OS_WIN @SQLITE_OS_WIN@ #cmakedefine SQLITE_OS_WINRT @SQLITE_OS_WINRT@ #define SQLITE_ENABLE_COLUMN_METADATA 1 #cmakedefine SQLITE_OS_UNIX @SQLITE_OS_UNIX@ #cmakedefine SQLITE_ENABLE_DBSTAT_VTAB #cmakedefine SQLITE_ENABLE_ICU ================================================ FILE: ports/sqlite3/sqlite3.pc.in ================================================ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: SQLite Description: SQL database engine Version: @PKGCONFIG_VERSION@ Libs: -L${libdir} -lsqlite3 Libs.private: @PKGCONFIG_LIBS_PRIVATE@ Requires.private: @PKGCONFIG_REQUIRES_PRIVATE@ Cflags: -I${includedir} ================================================ FILE: ports/sqlite3/usage ================================================ sqlite3 provides pkgconfig bindings. sqlite3 provides CMake targets: find_package(unofficial-sqlite3 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::sqlite3::sqlite3) ================================================ FILE: ports/sqlite3/vcpkg-cmake-wrapper.cmake ================================================ string(COMPARE EQUAL "${SQLite3_LIBRARIES}" "" z_vcpkg_sqlite3_fixup_libraries) _find_package(${ARGS}) if(SQLite3_FOUND) set(z_vcpkg_sqlite3_libraries "") set(z_vcpkg_sqlite3_link_libs "") if("@SQLITE_ENABLE_ICU@") find_package(ICU COMPONENTS uc i18n) if(ICU_FOUND) list(APPEND z_vcpkg_sqlite3_libraries ${ICU_LIBRARIES}) list(APPEND z_vcpkg_sqlite3_link_libs $ $) endif() endif() if(NOT WIN32) find_package(Threads) if(Threads_FOUND) list(APPEND z_vcpkg_sqlite3_libraries ${CMAKE_THREAD_LIBS_INIT}) list(APPEND z_vcpkg_sqlite3_link_libs $) endif() list(APPEND z_vcpkg_sqlite3_libraries ${CMAKE_DL_LIBS}) list(APPEND z_vcpkg_sqlite3_link_libs ${CMAKE_DL_LIBS}) if("@SQLITE_ENABLE_FTS5@" OR "@SQLITE_ENABLE_MATH_FUNCTIONS@") find_library(z_vcpkg_sqlite3_have_libm m) if(z_vcpkg_sqlite3_have_libm) list(APPEND z_vcpkg_sqlite3_libraries m) list(APPEND z_vcpkg_sqlite3_link_libs $) endif() endif() endif() if(z_vcpkg_sqlite3_fixup_libraries) list(APPEND SQLite3_LIBRARIES ${z_vcpkg_sqlite3_libraries}) endif() if(TARGET SQLite::SQLite3) set_target_properties(SQLite::SQLite3 PROPERTIES INTERFACE_LINK_LIBRARIES "${z_vcpkg_sqlite3_link_libs}") endif() endif() ================================================ FILE: ports/sqlite3/vcpkg.json ================================================ { "name": "sqlite3", "version": "3.52.0", "description": "SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.", "homepage": "https://sqlite.org/", "license": "blessing", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "json1" ], "features": { "dbpage-vtab": { "description": "Enable the recovery extension" }, "dbstat": { "description": "Enable the DBSTAT virtual table" }, "fts3": { "description": "Enable the FTS3 extension" }, "fts4": { "description": "Enable the FTS4 extension" }, "fts5": { "description": "Enable the FTS5 extension" }, "geopoly": { "description": "Enable geopoly functionality for sqlite3" }, "json1": { "description": "Enable JSON functionality for sqlite3" }, "limit": { "description": "Enable the UPDATE/DELETE LIMIT clause" }, "math": { "description": "Enable math functions" }, "memsys3": { "description": "Enable MEMSYS3" }, "memsys5": { "description": "Enable MEMSYS5" }, "omit-load-extension": { "description": "Enable loading of external extensions" }, "rtree": { "description": "Enable the RTREE extension" }, "session": { "description": "Enable the SESSION extension" }, "snapshot": { "description": "Enable the snapshot function" }, "soundex": { "description": "Enable the SOUNDEX scalar function" }, "tool": { "description": "Build sqlite3 executable", "supports": "!uwp" }, "unicode": { "description": "Enable unicode support", "dependencies": [ "icu" ] }, "zlib": { "description": "Build sqlite3 command line tool with zlib support; has no effect on the library itself", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/sqlitecpp/add_runtime_destination.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e5723d0..ecc1ac2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -337,6 +337,7 @@ target_include_directories(SQLiteCpp include(GNUInstallDirs) install(TARGETS SQLiteCpp EXPORT ${PROJECT_NAME}Targets + RUNTIME DESTINATION bin LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT libraries) ================================================ FILE: ports/sqlitecpp/fix_dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 50362fb..5d7c22f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -325,9 +325,9 @@ else (SQLITECPP_INTERNAL_SQLITE) target_link_libraries(SQLiteCpp PRIVATE ${sqlcipher_LIBRARY}) endif() else() - find_package (SQLite3 REQUIRED) + find_package (unofficial-sqlite3 CONFIG) message(STATUS "Link to sqlite3 system library ${SQLite3_VERSION}") - target_link_libraries(SQLiteCpp PUBLIC SQLite::SQLite3) + target_link_libraries(SQLiteCpp PRIVATE unofficial::sqlite3::sqlite3) if(SQLite3_VERSION VERSION_LESS "3.19") set_target_properties(SQLiteCpp PROPERTIES COMPILE_FLAGS "-DSQLITECPP_HAS_MEM_STRUCT") endif() diff --git a/cmake/SQLiteCppConfig.cmake.in b/cmake/SQLiteCppConfig.cmake.in index 7d0941c..d0feda9 100644 --- a/cmake/SQLiteCppConfig.cmake.in +++ b/cmake/SQLiteCppConfig.cmake.in @@ -1,6 +1,6 @@ include(CMakeFindDependencyMacro) if(NOT @SQLITECPP_INTERNAL_SQLITE@) - find_dependency(SQLite3 REQUIRED) + find_dependency(unofficial-sqlite3 REQUIRED) endif() if(@UNIX@) set(THREADS_PREFER_PTHREAD_FLAG @THREADS_PREFER_PTHREAD_FLAG@) ================================================ FILE: ports/sqlitecpp/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO "SRombauts/SQLiteCpp" REF ${VERSION} HEAD_REF master SHA512 23193108faaca4c1c7b0a05178bfdbb772a4e14dc145af1b3a7b35efe05a94b07200bdd5551afde44ab5eb3c6aeabbd70cfb0d710dc2750a8280e06fba94c494 PATCHES fix_dependency.patch add_runtime_destination.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sqlcipher SQLITE_HAS_CODEC ) set(USE_STACK_PROTECTION "") if(VCPKG_TARGET_IS_MINGW) set(USE_STACK_PROTECTION "-DSQLITECPP_USE_STACK_PROTECTION=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DSQLITECPP_RUN_CPPLINT=OFF -DSQLITECPP_RUN_CPPCHECK=OFF -DSQLITECPP_INTERNAL_SQLITE=OFF -DSQLITE_ENABLE_COLUMN_METADATA=ON -DSQLITECPP_USE_STATIC_RUNTIME=OFF # unconditionally off because vcpkg's toolchains already do the right thing # See https://github.com/SRombauts/SQLiteCpp/blob/e74403264ec7093060f4ed0e84bc9208997c8344/CMakeLists.txt#L40-L46 ${USE_STACK_PROTECTION} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SQLiteCpp) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/sqlitecpp/vcpkg.json ================================================ { "name": "sqlitecpp", "version": "3.3.3", "description": "SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.", "homepage": "https://github.com/SRombauts/SQLiteCpp", "license": "MIT", "dependencies": [ "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "sqlite" ], "features": { "sqlcipher": { "description": "Use the sqlcipher port", "dependencies": [ { "name": "sqlcipher", "default-features": false } ] }, "sqlite": { "description": "Deprecated; no effects" } } } ================================================ FILE: ports/sqlpp11/ddl2cpp_path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bb05cd8..4e83094 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,7 +113,7 @@ endif() ### Packaging install(PROGRAMS ${PROJECT_SOURCE_DIR}/scripts/ddl2cpp RENAME sqlpp11-ddl2cpp - DESTINATION ${CMAKE_INSTALL_BINDIR} + DESTINATION tools/sqlpp11 ) write_basic_package_version_file(Sqlpp11ConfigVersion.cmake diff --git a/cmake/configs/Sqlpp11Config.cmake b/cmake/configs/Sqlpp11Config.cmake index bf340d6..249014d 100644 --- a/cmake/configs/Sqlpp11Config.cmake +++ b/cmake/configs/Sqlpp11Config.cmake @@ -55,7 +55,7 @@ endforeach() # Import "ddl2cpp" script if(NOT TARGET sqlpp11::ddl2cpp) - get_filename_component(sqlpp11_ddl2cpp_location "${CMAKE_CURRENT_LIST_DIR}/../../../bin/sqlpp11-ddl2cpp" REALPATH) + get_filename_component(sqlpp11_ddl2cpp_location "${CMAKE_CURRENT_LIST_DIR}/../../tools/sqlpp11/sqlpp11-ddl2cpp" REALPATH) if(NOT EXISTS "${sqlpp11_ddl2cpp_location}") message(FATAL_ERROR "The imported target sqlpp11::ddl2cpp references the file '${sqlpp11_ddl2cpp_location}' but this file does not exists.") endif() ================================================ FILE: ports/sqlpp11/dependencies.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index bb05cd8..6aff88b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,11 +51,13 @@ set(SQLPP11_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Sqlpp11 CACHE STRING ### Dependencies if(DEPENDENCY_CHECK AND BUILD_MYSQL_CONNECTOR) - find_package(MySQL REQUIRED) + find_package(MySQL NAMES unofficial-libmysql REQUIRED) + add_library(MySQL::MySQL ALIAS unofficial::libmysql::libmysql) endif() if(DEPENDENCY_CHECK AND BUILD_MARIADB_CONNECTOR) - find_package(MariaDB REQUIRED) + find_package(MariaDB NAMES unofficial-libmariadb REQUIRED) + add_library(MariaDB::MariaDB ALIAS unofficial::libmariadb) endif() if(DEPENDENCY_CHECK AND BUILD_POSTGRESQL_CONNECTOR) diff --git a/cmake/configs/Sqlpp11MariaDBConfig.cmake b/cmake/configs/Sqlpp11MariaDBConfig.cmake index 32a594a..fb63205 100644 --- a/cmake/configs/Sqlpp11MariaDBConfig.cmake +++ b/cmake/configs/Sqlpp11MariaDBConfig.cmake @@ -1,2 +1,2 @@ include(CMakeFindDependencyMacro) -find_dependency(MariaDB) \ No newline at end of file +find_dependency(unofficial-libmariadb) diff --git a/cmake/configs/Sqlpp11MySQLConfig.cmake b/cmake/configs/Sqlpp11MySQLConfig.cmake index 0d2a5b3..53dab6e 100644 --- a/cmake/configs/Sqlpp11MySQLConfig.cmake +++ b/cmake/configs/Sqlpp11MySQLConfig.cmake @@ -1,2 +1,2 @@ include(CMakeFindDependencyMacro) -find_dependency(MySQL) \ No newline at end of file +find_dependency(unofficial-libmysql) ================================================ FILE: ports/sqlpp11/fix-miss-header.patch ================================================ diff --git a/include/sqlpp11/mysql/sqlpp_mysql.h b/include/sqlpp11/mysql/sqlpp_mysql.h index 4257c7a..1408037 100644 --- a/include/sqlpp11/mysql/sqlpp_mysql.h +++ b/include/sqlpp11/mysql/sqlpp_mysql.h @@ -26,7 +26,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include +#include namespace sqlpp { ================================================ FILE: ports/sqlpp11/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only lib vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rbock/sqlpp11 REF ${VERSION} SHA512 8227bc613c9ca279fef8549472da518b81151d1d6e43600617017ebaf359a7c8d0bb7a17c96db232754fc7bc002ad44c4392826857710c18c65e2eb728a97dd5 HEAD_REF main PATCHES ddl2cpp_path.patch dependencies.diff fix-miss-header.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sqlite3 BUILD_SQLITE3_CONNECTOR mariadb BUILD_MARIADB_CONNECTOR mysql BUILD_MYSQL_CONNECTOR postgresql BUILD_POSTGRESQL_CONNECTOR ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING:BOOL=OFF -DSQLPP11_INSTALL_CMAKEDIR=share/${PORT} -DUSE_SYSTEM_DATE:BOOL=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() set(usage "sqlpp11 provides CMake targets:\n") if(FEATURES STREQUAL "core") set(usage "This build of sqlpp11 doesn't include any connector.\n(Available via features: sqlite3, mariadb, mysql, postgresql.)\n") endif() foreach(component IN ITEMS SQLite3 SQLCipher MySQL MariaDB PostgreSQL) string(TOLOWER "${component}" lib) if("${lib}" IN_LIST FEATURES) string(APPEND usage "\n find_package(Sqlpp11 CONFIG REQUIRED COMPONENTS ${component})\n target_link_libraries(main PRIVATE sqlpp11::${lib})\n") endif() endforeach() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "${usage}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sqlpp11/vcpkg.json ================================================ { "name": "sqlpp11", "version": "0.65", "description": "A type safe embedded domain specific language for SQL queries and results in C++.", "homepage": "https://github.com/rbock/sqlpp11", "license": "BSD-2-Clause", "dependencies": [ "date", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "mariadb": { "description": "Use MariaDB connector", "dependencies": [ "libmariadb" ] }, "mysql": { "description": "Use MySQL connector", "dependencies": [ "libmysql" ] }, "postgresql": { "description": "Use PostgreSQL connector", "dependencies": [ "libpq" ] }, "sqlite3": { "description": "Use SQLite3 connector", "dependencies": [ "sqlite3" ] } } } ================================================ FILE: ports/sqlpp11-connector-mysql/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/sqlpp11-connector-mysql/vcpkg.json ================================================ { "name": "sqlpp11-connector-mysql", "version": "0.61", "description": "A C++ wrapper for MySQL meant to be used in combination with sqlpp11 (obsolete, use sqlpp11 with the mariadb/mysql feature instead)", "homepage": "https://github.com/rbock/sqlpp11-connector-mysql", "license": "BSD-2-Clause", "default-features": [ "mariadb" ], "features": { "mariadb": { "description": "Use MariaDB connector", "dependencies": [ { "name": "sqlpp11", "default-features": false, "features": [ "mariadb" ], "version>=": "0.61" } ] }, "mysql": { "description": "Use MySQL connector", "dependencies": [ { "name": "sqlpp11", "default-features": false, "features": [ "mysql" ], "version>=": "0.61" } ] } } } ================================================ FILE: ports/sqlpp11-connector-sqlite3/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/sqlpp11-connector-sqlite3/vcpkg.json ================================================ { "name": "sqlpp11-connector-sqlite3", "version": "0.61", "description": "A C++ wrapper for sqlite3 meant to be used in combination with sqlpp11 (obsolete, use sqlpp11 with the sqlite3 feature instead)", "homepage": "https://github.com/rbock/sqlpp11-connector-sqlite3", "license": "BSD-2-Clause", "dependencies": [ { "name": "sqlpp11", "default-features": false, "features": [ "sqlite3" ], "version>=": "0.61" } ] } ================================================ FILE: ports/squirrel/fix_optionally_build_sq.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index dc35b6f..628c649 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ project(squirrel VERSION 3.1 LANGUAGES C CXX) option(DISABLE_STATIC "Avoid building/installing static libraries.") option(LONG_OUTPUT_NAMES "Use longer names for binaries and libraries: squirrel3 (not sq).") +option(BUILD_SQ "Build sq interpreter.") if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") @@ -35,15 +36,24 @@ endif() add_subdirectory(squirrel) add_subdirectory(sqstdlib) -add_subdirectory(sq) + +if(BUILD_SQ) + add_subdirectory(sq) +endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(tgts) if(NOT DISABLE_DYNAMIC) - list(APPEND tgts squirrel sqstdlib sq) + list(APPEND tgts squirrel sqstdlib) + if(BUILD_SQ) + list(APPEND tgts sq) + endif() endif() if(NOT DISABLE_STATIC) - list(APPEND tgts squirrel_static sqstdlib_static sq_static) + list(APPEND tgts squirrel_static sqstdlib_static) + if(BUILD_SQ) + list(APPEND tgts sq_static) + endif() endif() foreach(t ${tgts}) target_compile_definitions(${t} PUBLIC -D_SQ64) ================================================ FILE: ports/squirrel/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO albertodemichelis/squirrel HEAD_REF master REF 23a0620658714b996d20da3d4dd1a0dcf9b0bd98 SHA512 205ba0b2b37ca2133f8c1b3024a3a34186697998714140d409006ae0f5facc76b2664dbbad33bbc51c86199e2524bd0cd905b8941e306db892a50a58f1b96371 PATCHES fix_optionally_build_sq.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_DYNAMIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "interpreter" BUILD_SQ ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDISABLE_DYNAMIC=${DISABLE_DYNAMIC} -DDISABLE_STATIC=${DISABLE_STATIC} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/squirrel) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(BUILD_SQ) if(BUILD_STATIC) message(STATUS "Copying sq tool") vcpkg_copy_tools( TOOL_NAMES sq AUTO_CLEAN ) elseif(BUILD_DYNAMIC) message(STATUS "Copying sq and sq_static tool") vcpkg_copy_tools( TOOL_NAMES sq sq_static AUTO_CLEAN ) endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/squirrel/vcpkg.json ================================================ { "name": "squirrel", "version-date": "2021-09-17", "description": "Squirrel is a high level imperative, object-oriented programming language, designed to be a light-weight scripting language that fits in the size, memory bandwidth, and real-time requirements of applications like video games.", "homepage": "http://www.squirrel-lang.org", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "interpreter": { "description": "Build sq command-line interpreter" } } } ================================================ FILE: ports/sratom/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO lv2/sratom REF "v${VERSION}" SHA512 81d58155f3d42f1a3671632ef0ab1e5dbbf756e23378b03034b626dcf1d23b00b9763d153e3dbd1183571f089dfa1f2501cc68b5ce7a1ca337979bc148bb9210 HEAD_REF master ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/sratom/vcpkg.json ================================================ { "name": "sratom", "version": "0.6.22", "description": "Sratom is a library for serialising LV2 atoms to and from RDF, particularly the Turtle syntax.", "homepage": "https://drobilla.net/software/sratom", "license": "ISC", "dependencies": [ "lv2", "serd", "sord", { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/srell/portfile.cmake ================================================ set(VERSION 3_010) vcpkg_download_distfile( ARCHIVE URLS "https://www.akenotsuki.com/misc/srell/srell${VERSION}.zip" FILENAME "srell${VERSION}.zip" SHA512 5F2762A98E1B68C3A4FA79051AE2CBEFD23CEDF1CE833FA1EB812D3F1112734018AF36AA9D9A50E2DC40C87A7FAAF46AF0B8F4161481994DC5E19F44301E867D ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" NO_REMOVE_ONE_LEVEL ) file(INSTALL "${SOURCE_PATH}/srell.hpp" "${SOURCE_PATH}/srell_ucfdata2.hpp" "${SOURCE_PATH}/srell_updata.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/srell/vcpkg.json ================================================ { "name": "srell", "version-string": "3.010", "description": "SRELL (std::regex-like library) is a regular expression template library for C++.", "homepage": "https://www.akenotsuki.com/misc/srell/en/", "license": "BSD-2-Clause" } ================================================ FILE: ports/srpc/cmake.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7c2d5b3..32a2f40 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,11 +13,9 @@ endif () find_package(OpenSSL REQUIRED) set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "") -if (WIN32) - find_package(Protobuf REQUIRED CONFIG) -else () - find_package(Protobuf 3.5.0 REQUIRED) -endif () +find_package(Protobuf CONFIG REQUIRED) +# Use target in order to carry link libraries +set(Protobuf_LIBRARY protobuf::libprotobuf) if (WIN32) set (HAVE_SYS_UIO_H_01 false) @@ -39,12 +37,21 @@ else () configure_file(${SNAPPY_DIR}/snappy-stubs-public.h.in ${SNAPPY_DIR}/snappy-stubs-public.h) else () find_package(Snappy 1.1.6 REQUIRED CONFIG) + add_library(snappy ALIAS Snappy::snappy) set(SNAPPY_LIB snappy) endif () if (LZ4_INSTALLED) + find_package(lz4 CONFIG REQUIRED) + add_library(lz4 ALIAS lz4::lz4) set(LZ4_LIB lz4) endif () + + find_package(ZLIB REQUIRED) + add_library(z ALIAS ZLIB::ZLIB) + + find_package(Threads REQUIRED) + add_library(pthread ALIAS Threads::Threads) endif() include_directories( @@ -57,11 +64,10 @@ include_directories( if (WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /wd4200") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /Zc:__cplusplus /std:c++14") -else () - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -pipe -std=gnu90") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -std=c++14 -fno-exceptions") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /Zc:__cplusplus") endif () +set(CMAKE_C_STANDARD 90) +set(CMAKE_CXX_STANDARD 17) add_subdirectory(generator) @@ -108,6 +114,8 @@ if (WIN32) strncasecmp=_strnicmp ) + target_link_libraries(${PROJECT_NAME} PRIVATE protobuf::libprotobuf) + install( TARGETS ${PROJECT_NAME} ARCHIVE @@ -118,7 +126,7 @@ if (WIN32) else () set(STATIC_LIB_NAME ${PROJECT_NAME}-static) set(SHARED_LIB_NAME ${PROJECT_NAME}-shared) - get_filename_component(Protobuf_LIB_DIR ${Protobuf_LIBRARY} DIRECTORY) + set(Protobuf_LIB_DIR "") link_directories(${OPENSSL_LINK_DIR} ${WORKFLOW_LIB_DIR} ${Protobuf_LIB_DIR}) add_library( @@ -143,8 +151,18 @@ else () $ ) - if (APPLE) + if (NOT BUILD_SHARED_LIBS) + target_link_libraries(${STATIC_LIB_NAME} + PRIVATE + OpenSSL::SSL + OpenSSL::Crypto + pthread + ${Protobuf_LIBRARY} + workflow + z ${SNAPPY_LIB} ${LZ4_LIB}) + elseif (1) target_link_libraries(${SHARED_LIB_NAME} + PRIVATE OpenSSL::SSL OpenSSL::Crypto pthread @@ -161,17 +179,22 @@ else () add_dependencies(${STATIC_LIB_NAME} LINK_HEADERS) add_dependencies(${SHARED_LIB_NAME} LINK_HEADERS) + if(NOT BUILD_SHARED_LIBS) + set_target_properties(${SHARED_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) install( TARGETS ${STATIC_LIB_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel ) + else() + set_target_properties(${STATIC_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) install( TARGETS ${SHARED_LIB_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel ) + endif() endif () diff --git a/srpc-config.cmake.in b/srpc-config.cmake.in index 54b4323..1cdb97f 100644 --- a/srpc-config.cmake.in +++ b/srpc-config.cmake.in @@ -3,7 +3,6 @@ set(SRPC_VERSION "@srpc_VERSION@") set_and_check(SRPC_INCLUDE_DIR "@PACKAGE_CONFIG_INC_DIR@") set_and_check(SRPC_LIB_DIR "@PACKAGE_CONFIG_LIB_DIR@") -set_and_check(SRPC_BIN_DIR "@PACKAGE_CONFIG_BIN_DIR@") if (EXISTS "${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake") include ("${CMAKE_CURRENT_LIST_DIR}/srpc-targets.cmake") ================================================ FILE: ports/srpc/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sogou/srpc REF v${VERSION} SHA512 ff28eaf0b9cb02d63efb7419a3b10163096e16d0c750bc74da53f5253d45b08f5589b02cdf41177846d49814afd72fd45bc7797c50311f26d4fffc4b0fcecc14 HEAD_REF master PATCHES cmake.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party") file(REMOVE_RECURSE "${SOURCE_PATH}/workflow") string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" SRPC_BUILD_STATIC_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} DISABLE_PARALLEL_CONFIGURE OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0175=OLD -DSRPC_BUILD_STATIC_RUNTIME=${SRPC_BUILD_STATIC_RUNTIME} "-DPROTOC=${CURRENT_HOST_INSTALLED_DIR}/tools/protobuf/protoc${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DLZ4_INSTALLED=1 -DSNAPPY_INSTALLED=1 -DWORKFLOW_INSTALLED=1 MAYBE_UNUSED_VARIABLES SRPC_BUILD_STATIC_RUNTIME ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/srpc) vcpkg_copy_tools( TOOL_NAMES srpc_generator AUTO_CLEAN ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/srpc/vcpkg.json ================================================ { "name": "srpc", "version-semver": "0.10.4", "port-version": 2, "description": "RPC based on Sogou C++ Workflow", "homepage": "https://github.com/sogou/srpc", "license": "Apache-2.0", "dependencies": [ "lz4", "openssl", "protobuf", "snappy", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "workflow", "platform": "!windows | mingw" }, { "name": "workflow-win", "platform": "windows & !mingw" }, "zlib" ] } ================================================ FILE: ports/sse2neon/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DLTcollab/sse2neon REF "v${VERSION}" SHA512 ea154fd525cac66e7a26b818b67f370f0386e43fb2fce31f8d2673f99f01c45d746ddc0aa9174da6f233128ec87b669a74892847f529aceb9392a6328bbe5559 HEAD_REF master ) # Copy header file file(COPY "${SOURCE_PATH}/sse2neon.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/sse2neon/") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/sse2neon/vcpkg.json ================================================ { "name": "sse2neon", "version": "1.9.1", "description": "A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation", "homepage": "https://github.com/DLTcollab/sse2neon", "license": "MIT" } ================================================ FILE: ports/st-tree/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO erikerlandson/st_tree REF "version_${VERSION}" SHA512 dd555fce81cde5aa4b30854c856eb7dfd61ee1a7f5874c7538990fa331cfbe85838cb2a547af5e255debf04be3e0f5599701ce64743071f935a97162e48cd59d HEAD_REF develop ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake" PACKAGE_NAME st_tree) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/st-tree/vcpkg.json ================================================ { "name": "st-tree", "version": "1.4.0", "description": "A fast and flexible c++ template class for tree data structures", "homepage": "https://github.com/erikerlandson/st_tree", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stackwalker/fix-exports.patch ================================================ diff --git "a/CMakeLists.txt" "b/CMakeLists.txt" index 82f0206a2..8160fd789 100644 --- "a/CMakeLists.txt" +++ "b/CMakeLists.txt" @@ -79,12 +79,13 @@ add_library(${TARGET_StackWalker} STATIC Main/StackWalker/StackWalker.cpp) target_include_directories(${TARGET_StackWalker} PUBLIC $ + $ ) -install(TARGETS "${TARGET_StackWalker}" - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +install(TARGETS "${TARGET_StackWalker}" EXPORT stackwalker-config + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin ) install(FILES "${CMAKE_SOURCE_DIR}/Main/StackWalker/StackWalker.h" @@ -114,3 +115,5 @@ else() add_test(NAME ${TARGET_StackWalker_tests} COMMAND ${TARGET_StackWalker_tests}) endif() + +install(EXPORT stackwalker-config NAMESPACE unofficial::stackwalker:: DESTINATION share/stackwalker) ================================================ FILE: ports/stackwalker/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JochenKalmbach/StackWalker REF "${VERSION}" SHA512 6fe8c5eb6e2d94630d43644a13cf62f1725a9f39115bda2d859461ad0cc6acf27e8a246247bd9b49940fb4ec372559f6d11467e77215d3638f910f2574ac449a HEAD_REF master PATCHES fix-exports.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DStackWalker_DISABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stackwalker/vcpkg.json ================================================ { "name": "stackwalker", "version-date": "2023-06-24", "description": "StackWalker - Walking the callstack.", "license": "BSD-2-Clause", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/starlink-ast/cminpack.diff ================================================ diff --git a/Makefile.in b/Makefile.in index a935107..51c5e07 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1572,13 +1572,13 @@ libast_la_SOURCES = \ libast_la_LDFLAGS = -version-info @version_info@ @EXTERNAL_CMINPACK_FALSE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la libast_cminpack.la @EXTERNAL_CMINPACK_FALSE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal libast_cminpack.la -@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la -lcminpack +@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_FALSE@libast_la_LIBADD = libast_pal.la $(LIBCMINPACK) # Ensure libast links against libraries containing functions used within # libast. If AST is configured --with-external-pal, then the internal # libast_pal library will be empty, and we link to an external PAL # library instead. Do the same for cminpack -@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal -lcminpack +@EXTERNAL_CMINPACK_TRUE@@EXTERNAL_PAL_TRUE@libast_la_LIBADD = -lpal $(LIBCMINPACK) # AST_PAR is really part of GRP_F_INCLUDE_FILES, but it must not be # distributed, so list it separately. diff --git a/configure b/configure index d9db3ee..f3d3fc0 100755 --- a/configure +++ b/configure @@ -15763,7 +15763,7 @@ fi EXTERNAL_CMINPACK=$external_cminpack if test "$external_cminpack" = "1"; then - LIBCMINPACK="-lcminpack" + LIBCMINPACK="-lcminpack$CMINPACK_DEBUG_SUFFIX" $as_echo "#define EXTERNAL_CMINPACK 1" >>confdefs.h diff --git a/src/polymap.c b/src/polymap.c index 0b436cc..1aee268 100644 --- a/src/polymap.c +++ b/src/polymap.c @@ -165,7 +165,7 @@ f - AST_POLYTRAN: Fit a PolyMap inverse or forward transformation #include "cmpmap.h" /* Compound mappings */ #include "polymap.h" /* Interface definition for this class */ #include "unitmap.h" /* Unit mappings */ -#include "cminpack/cminpack.h" /* Levenberg - Marquardt minimization */ +#include "cminpack-1/cminpack.h" /* Levenberg - Marquardt minimization */ #include "pal.h" /* SLALIB function definitions */ /* Error code definitions. */ ================================================ FILE: ports/starlink-ast/install-errors.diff ================================================ diff --git a/Makefile.in b/Makefile.in index a935107..dbc590d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1772,7 +1772,7 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)" || exit 1; \ if $(MANIFEST); then \ for p in $$list2; do \ echo "MANIFEST:$(DESTDIR)$(libdir)/$$p"; \ ================================================ FILE: ports/starlink-ast/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_download_distfile(ARCHIVE URLS "https://github.com/Starlink/ast/releases/download/v${VERSION}/ast-${VERSION}.tar.gz" FILENAME "starlink-ast-${VERSION}.tar.gz" SHA512 44f837a17eaf2d959bde49982927f09bcd527ce9cb1418df5b2ef1e10b85387b40aa3099be08102f7fdfa6037ec95d3d49158c96a94b0a8b9e0495b3b9d40bf6 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES cminpack.diff install-errors.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/cminpack") set(CONFIGURE_OPTIONS --without-fortran --with-external-cminpack "--with-starlink=${CURRENT_INSTALLED_DIR}" FC=false ) if ("yaml" IN_LIST FEATURES) list(APPEND CONFIGURE_OPTIONS --with-yaml) else() list(APPEND CONFIGURE_OPTIONS --without-yaml) endif() if ("pthreads" IN_LIST FEATURES) list(APPEND CONFIGURE_OPTIONS --with-pthreads) else() list(APPEND CONFIGURE_OPTIONS --without-pthreads) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" USE_WRAPPERS DETERMINE_BUILD_TRIPLET ADDITIONAL_MSYS_PACKAGES perl OPTIONS ${CONFIGURE_OPTIONS} OPTIONS_DEBUG CMINPACK_DEBUG_SUFFIX=_d ) vcpkg_install_make( OPTIONS STAR_LDFLAGS= # Do not override build type's lib dirs ) # Avoid vcpkg artifact issues with symlinks foreach(ast_lib IN ITEMS "${CURRENT_PACKAGES_DIR}/lib/libast" "${CURRENT_PACKAGES_DIR}/debug/lib/libast") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND EXISTS "${ast_lib}${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") file(REMOVE "${ast_lib}_pass2${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") file(COPY_FILE "${ast_lib}${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "${ast_lib}_pass2${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") endif() endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/docs" "${CURRENT_PACKAGES_DIR}/debug/help" "${CURRENT_PACKAGES_DIR}/debug/manifests" "${CURRENT_PACKAGES_DIR}/debug/news" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/docs" "${CURRENT_PACKAGES_DIR}/help" "${CURRENT_PACKAGES_DIR}/manifests" "${CURRENT_PACKAGES_DIR}/news" "${CURRENT_PACKAGES_DIR}/share/${PORT}/ast" ) # Remove cl preprocessing comments foreach(file IN ITEMS "include/ast.h" "include/star/ast.h") file(READ "${CURRENT_PACKAGES_DIR}/${file}" cpp_output) string(REGEX REPLACE "#line [^ ]+ \"[^\"]*\"" "" cpp_output "${cpp_output}") file(WRITE "${CURRENT_PACKAGES_DIR}/${file}" "${cpp_output}") endforeach() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/COPYING.LESSER" "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/erfa/LICENSE" COMMENT [[ AST is distributed under the Lesser GPL licence (LGPL). The AST distribution includes a cut down subset of the C version of the SLALIB library written by Pat Wallace. This subset contains only the functions needed by the AST library. It is built as part of the process of building AST and is distributed under GPL. The AST distribution includes the ERFA library. See LICENSE below. ]]) ================================================ FILE: ports/starlink-ast/vcpkg.json ================================================ { "name": "starlink-ast", "version": "9.2.12", "description": "The AST library provides a comprehensive range of facilities for attaching world coordinate systems to astronomical data, for retrieving and interpreting that information and for generating graphical output based on it", "homepage": "https://starlink.eao.hawaii.edu/starlink/AST", "license": null, "dependencies": [ "cminpack" ], "features": { "pthreads": { "description": "Build with POSIX threads support", "dependencies": [ "pthreads" ] }, "yaml": { "description": "Build with YAML support", "dependencies": [ "libyaml" ] } } } ================================================ FILE: ports/staticjson/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO netheril96/StaticJSON REF "v${VERSION}" SHA512 7d346b69c736aac11eec4fce6650c394dd388f551a359e77f26d80d1b7aa67670be993abe16f2d834263a87a1c116502a96ab6253cb18cab3aaa7d88a6d4d809 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTATICJSON_ENABLE_TEST=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/staticjson/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "staticjson", "version": "1.0.0", "description": "Fast, direct and static typed parsing of JSON with C++", "homepage": "https://github.com/netheril96/StaticJSON", "license": "MIT", "dependencies": [ "rapidjson", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/status-code/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ned14/status-code REF 525e324b1b85fbd1bf74046d760068b7e27b8cda SHA512 c70a33558e7399aff5d069ddd032ed5896ab2f0075bc864f12f335c1e7023be95503f5ee9dec481fd30b2fbb72611847e50653113a77aa4032121f87f6eb8377 HEAD_REF master PATCHES ) # Because status-code's deployed files are header-only, the debug build is not necessary set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -Dstatus-code_IS_DEPENDENCY=ON -DCMAKE_DISABLE_FIND_PACKAGE_Boost=ON MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_Boost ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/status-code) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") ================================================ FILE: ports/status-code/usage ================================================ The package status-code provides CMake targets: find_package(status-code CONFIG REQUIRED) target_link_libraries(main PUBLIC status-code::hl) ================================================ FILE: ports/status-code/vcpkg.json ================================================ { "name": "status-code", "version-date": "2025-05-21", "maintainers": [ "Niall Douglas ", "Henrik Gaßmann " ], "description": "Proposed SG14 status_code for the C++ standard (https://wg21.link/P1028).", "homepage": "https://github.com/ned14/status-code", "license": "Apache-2.0 OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/status-value-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/status-value-lite REF v1.1.0 SHA512 09cad9f40f2b1592316b374e0d1a206e3a79a1c560a2ae3be3bdae9045fa026435cc29f1eee08e26e29a5499f8dc60e485adc50517a827977678d3a5a6e220d2 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test BUILD_TESTS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DNSSV_OPT_BUILD_TESTS=${BUILD_TESTS} -DNSSV_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/status_value-lite) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/status-value-lite/vcpkg.json ================================================ { "name": "status-value-lite", "version": "1.1.0", "port-version": 3, "description": "status_value is a single-file header-only library for objects that represent a status and an optional value. It is intended for use with C++11 and later.", "homepage": "https://github.com/martinmoene/status-value-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build with test" } } } ================================================ FILE: ports/stb/FindStb.cmake ================================================ # Distributed under the OSI-approved BSD 3-Clause License. #.rst: # FindStb # ------------ # # Find the Stb include headers. # # Result Variables # ^^^^^^^^^^^^^^^^ # # This module defines the following variables: # # ``Stb_FOUND`` # True if Stb library found # # ``Stb_INCLUDE_DIR`` # Location of Stb headers # include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake) if(NOT Stb_INCLUDE_DIR) find_path(Stb_INCLUDE_DIR NAMES stb_image.h PATHS ${Stb_DIR} PATH_SUFFIXES include) endif() find_package_handle_standard_args(Stb DEFAULT_MSG Stb_INCLUDE_DIR) mark_as_advanced(Stb_INCLUDE_DIR) ================================================ FILE: ports/stb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nothings/stb REF f75e8d1cad7d90d72ef7a4661f1b994ef78b4e31 # committed on 2024-07-29 SHA512 4a733aefb816a366c999663e3d482144616721b26c321ee5dd0dce611a34050b6aef97d46bd2c4f8a9631d83b097491a7ce88607fd9493d880aaa94567a68cce HEAD_REF master ) file(GLOB HEADER_FILES "${SOURCE_PATH}/*.h" "${SOURCE_PATH}/stb_vorbis.c") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/FindStb.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stb/usage ================================================ The package stb provides CMake targets: find_package(Stb REQUIRED) target_include_directories(main PRIVATE ${Stb_INCLUDE_DIR}) ================================================ FILE: ports/stb/vcpkg-cmake-wrapper.cmake ================================================ set(STB_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) _find_package(${ARGS}) set(CMAKE_MODULE_PATH ${STB_PREV_MODULE_PATH}) ================================================ FILE: ports/stb/vcpkg.json ================================================ { "name": "stb", "version-date": "2024-07-29", "port-version": 1, "description": "public domain header-only libraries", "homepage": "https://github.com/nothings/stb", "license": "MIT OR CC-PDDC" } ================================================ FILE: ports/stc/add-pkg-conf.patch ================================================ diff --git a/meson.build b/meson.build index 9633c63..12a803f 100644 --- a/meson.build +++ b/meson.build @@ -66,6 +66,13 @@ else ) endif +import('pkgconfig').generate( + stc_lib, + name: 'stc', + description: 'A modern, user friendly, generic, type-safe and fast C99 container library.', + url: 'https://github.com/stclib/STC', +) + install_headers( 'include/stc/algorithm.h', 'include/stc/arc.h', ================================================ FILE: ports/stc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stclib/STC REF "v${VERSION}" SHA512 99ac97d4849e548c54d564e822cec36be6436b976546af1e8f12757764831c14229f958e7064ab8802e74131831a0016cc28649df24088c415ab4cdc65dad076 HEAD_REF master PATCHES # TODO: remove this patch when new version is released add-pkg-conf.patch ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${BUILD_OPTIONS} -Dcheckscoped=disabled -Dtests=disabled -Dexamples=disabled ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stc/vcpkg.json ================================================ { "name": "stc", "version": "5.0", "description": "A modern, user friendly, generic, type-safe and fast C99 container library.", "homepage": "https://github.com/stclib/STC", "license": "MIT", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/stdexec/fix-boost-asio-dependency.patch ================================================ diff --git a/cmake/Modules/ConfigureASIO.cmake b/cmake/Modules/ConfigureASIO.cmake index 210e583..ea64555 100644 --- a/cmake/Modules/ConfigureASIO.cmake +++ b/cmake/Modules/ConfigureASIO.cmake @@ -26,10 +26,12 @@ if(STDEXEC_ENABLE_ASIO) if(${STDEXEC_ASIO_USES_BOOST}) set(BOOST_INCLUDE_LIBRARIES asio system) set(BOOST_VERSION 1.86.0) - rapids_cpm_find(Boost ${BOOST_VERSION} - CPM_ARGS - URL https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}-cmake.tar.xz - OPTIONS "BOOST_SKIP_INSTALL_RULES OFF" + rapids_find_package( + Boost REQUIRED + COMPONENTS system asio + GLOBAL_TARGETS Boost::system Boost::asio + BUILD_EXPORT_SET stdexec-exports + INSTALL_EXPORT_SET stdexec-exports ) add_library(asioexec INTERFACE) ================================================ FILE: ports/stdexec/fix-clangd-helper-file-basedir.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 78ae71f..3b37aff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -477,7 +477,7 @@ if(STDEXEC_BUILD_EXAMPLES) add_subdirectory(examples) endif() -if (STDEXEC_IS_TOP_LEVEL) +if (0) # Integrate with LLVM/clang tooling include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/clangd_compile_info.cmake) add_executable(_clangd_helper_file include/._clangd_helper_file.cpp) @@ -497,6 +497,9 @@ include(CPack) install(TARGETS stdexec system_context EXPORT stdexec-exports + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} FILE_SET headers FILE_SET version_config) ================================================ FILE: ports/stdexec/fix-taskflow-dependency.patch ================================================ diff --git a/cmake/Modules/ConfigureTaskflow.cmake b/cmake/Modules/ConfigureTaskflow.cmake index 35cc9ba..1f22b8f 100644 --- a/cmake/Modules/ConfigureTaskflow.cmake +++ b/cmake/Modules/ConfigureTaskflow.cmake @@ -1,11 +1,11 @@ option(STDEXEC_ENABLE_TASKFLOW "Enable TaskFlow targets" OFF) if(STDEXEC_ENABLE_TASKFLOW) - rapids_cpm_find(Taskflow 3.7.0 - CPM_ARGS - GITHUB_REPOSITORY taskflow/taskflow - GIT_TAG v3.7.0 - OPTIONS "TF_BUILD_TESTS OFF" + rapids_find_package( + Taskflow REQUIRED + GLOBAL_TARGETS Taskflow::Taskflow + BUILD_EXPORT_SET stdexec-exports + INSTALL_EXPORT_SET stdexec-exports ) file(GLOB_RECURSE taskflowexec_headers CONFIGURE_DEPENDS include/exec/taskflow/*.hpp) add_library(taskflowexec INTERFACE ${taskflowexec_headers}) @@ -26,10 +26,15 @@ if(STDEXEC_ENABLE_TASKFLOW) target_compile_definitions(taskflowexec INTERFACE STDEXEC_ENABLE_TASKFLOW) target_link_libraries(stdexec INTERFACE - Taskflow + Taskflow::Taskflow ) target_link_libraries(taskflowexec INTERFACE STDEXEC::stdexec ) + + install(TARGETS taskflowexec + EXPORT stdexec-exports + FILE_SET headers + ) endif() ================================================ FILE: ports/stdexec/fix-tbb-dependency.patch ================================================ diff --git a/cmake/Modules/ConfigureTBB.cmake b/cmake/Modules/ConfigureTBB.cmake index d553739..6b39e24 100644 --- a/cmake/Modules/ConfigureTBB.cmake +++ b/cmake/Modules/ConfigureTBB.cmake @@ -1,12 +1,14 @@ option(STDEXEC_ENABLE_TBB "Enable TBB targets" OFF) include(CheckIncludeFileCXX) +if (STDEXEC_ENABLE_TBB) rapids_find_package( - TBB QUIET - COMPONENTS tbb + TBB REQUIRED + GLOBAL_TARGETS TBB::tbb BUILD_EXPORT_SET stdexec-exports INSTALL_EXPORT_SET stdexec-exports ) +endif() # If TBB is available and the stdlib is libstdc++, then a #include of will # pull in TBB headers, creating a link-time dependency on TBB. ================================================ FILE: ports/stdexec/fix-version.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 54f6330..8409707 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,7 +51,7 @@ if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/execution.bs) ${CMAKE_CURRENT_BINARY_DIR}/execution.bs) endif() file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/execution.bs" STD_EXECUTION_BS_REVISION_LINE REGEX "Revision: [0-9]+") -string(REGEX REPLACE "Revision: ([0-9]+)" "\\1" STD_EXECUTION_BS_REVISION ${STD_EXECUTION_BS_REVISION_LINE}) +string(REGEX REPLACE "Revision: ([0-9]+).*" "\\1" STD_EXECUTION_BS_REVISION ${STD_EXECUTION_BS_REVISION_LINE}) project(STDEXEC VERSION "0.${STD_EXECUTION_BS_REVISION}.0" LANGUAGES CXX) ================================================ FILE: ports/stdexec/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO NVIDIA/stdexec REF 7d704575019a1405b2067c5e47265245c55ca66e SHA512 13a3ba3d66d8cf9726633823c3933fa421dd9d98885b8ae15d1701abded9a73df5f5a678b0f76b5a9c55bca0ae54d3e7b4a27c3b7cdc997326bb2b45291ca1c1 HEAD_REF main PATCHES fix-version.patch fix-clangd-helper-file-basedir.patch fix-boost-asio-dependency.patch fix-tbb-dependency.patch fix-taskflow-dependency.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES asio STDEXEC_ENABLE_ASIO tbb STDEXEC_ENABLE_TBB taskflow STDEXEC_ENABLE_TASKFLOW ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_RAPIDS REPO rapidsai/rapids-cmake REF v24.02.01 # stable tag (stdexec wants branch-24.02) SHA512 bb8f2b1177f6451d61f2de26f39fd6d31c2f0fb80b4cd1409edc3e6e4f726e80716ec177d510d0f31b8f39169cd8b58290861f0f217daedbd299e8e426d25891 HEAD_REF main ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" [[file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-24.02/RAPIDS.cmake]] "file(COPY_FILE \"${SOURCE_PATH_RAPIDS}/RAPIDS.cmake\"" ) vcpkg_download_distfile(execution_bs URLS "https://raw.githubusercontent.com/cplusplus/sender-receiver/12fde4af201017e49efd39178126f661a04dbb94/execution.bs" FILENAME "execution.bs" SHA512 90bb992356f22e4091ed35ca922f6a0143abd748499985553c0660eaf49f88d031a8f900addb6b4cf9a39ac8d1ab7c858b79677e2459136a640b2c52afe3dd23 ) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" [[file(DOWNLOAD "https://raw.githubusercontent.com/cplusplus/sender-receiver/main/execution.bs"]] "file(COPY_FILE \"${execution_bs}\"" ) # stdexec uses cpm (via rapids-cmake). # Setup a local cpm cache from assets cached by vcpkg file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/cpm") # Version from rapids-cmake cpm/detail/download.cmake set(CPM_DOWNLOAD_VERSION 0.38.5) vcpkg_download_distfile(CPM_CMAKE URLS https://github.com/cpm-cmake/CPM.cmake/releases/download/v${CPM_DOWNLOAD_VERSION}/CPM.cmake FILENAME CPM_${CPM_DOWNLOAD_VERSION}.cmake SHA512 a376162be4fe70408c000409f7a3798e881ed183cb51d57c9540718fdd539db9028755653bd3965ae7764b5c3e36adea81e0752fe85e40790f022fa1c4668cc6 ) file(INSTALL "${CPM_CMAKE}" DESTINATION "${CURRENT_BUILDTREES_DIR}/cpm/cpm") # Version and patch from stdexec CMakeLists.txt vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_ICM REPO iboB/icm REF v1.5.0 # from stdexec CMakeLists.txt SHA512 0d5173d7640e2b411dddfc67e1ee19c921817e58de36ea8325430ee79408edc0a23e17159e22dc4a05f169596ee866effa69e7cd0000b08f47bd090d5003ba1c HEAD_REF master PATCHES "${SOURCE_PATH}/cmake/cpm/patches/icm/regex-build-error.diff" ) vcpkg_find_acquire_program(GIT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTDEXEC_BUILD_TESTS=OFF -DSTDEXEC_BUILD_EXAMPLES=OFF "-DFETCHCONTENT_SOURCE_DIR_RAPIDS-CMAKE=${SOURCE_PATH_RAPIDS}" "-DCPM_SOURCE_CACHE=${CURRENT_BUILDTREES_DIR}/cpm" "-DCPM_icm_SOURCE=${SOURCE_PATH_ICM}" "-DGIT_EXECUTABLE=${GIT}" ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/stdexec) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/stdexec/vcpkg.json ================================================ { "name": "stdexec", "version-date": "2026-02-26", "description": "stdexec is an experimental reference implementation of the Senders model of asynchronous programming proposed by P2300 - std::execution for adoption into the C++ Standard.", "homepage": "https://github.com/NVIDIA/stdexec", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "asio": { "description": "stdexec enable asio", "dependencies": [ "boost-asio", "boost-system" ] }, "taskflow": { "description": "stdexec enable taskflow", "dependencies": [ "taskflow" ] }, "tbb": { "description": "stdexec enable tbb", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/stduuid/fix-gsl-polyfill.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,11 +43,11 @@ if (UUID_TIME_GENERATOR) endif() # Using span from std -if (NOT UUID_USING_CXX20_SPAN) - target_include_directories(${PROJECT_NAME} INTERFACE - $ - $) - install(DIRECTORY gsl DESTINATION include) +if (UUID_USING_CXX20_SPAN) + target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_20) +else() + find_package(Microsoft.GSL CONFIG REQUIRED) + target_link_libraries(${PROJECT_NAME} INTERFACE Microsoft.GSL::GSL) endif () if(UUID_ENABLE_INSTALL) diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -9,6 +9,10 @@ if (@UUID_SYSTEM_GENERATOR@) endif () endif () +if (NOT "@UUID_USING_CXX20_SPAN@") + find_dependency(Microsoft.GSL) +endif () + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") check_required_components(@PROJECT_NAME@) \ No newline at end of file ================================================ FILE: ports/stduuid/fix-install-directory.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,7 +18,8 @@ option(UUID_USING_CXX20_SPAN "Using span from std instead of gsl" OFF) add_library(${PROJECT_NAME} INTERFACE) target_include_directories(${PROJECT_NAME} INTERFACE $ - $) + $ + $) # Using system uuid generator if (UUID_SYSTEM_GENERATOR) @@ -52,7 +52,7 @@ if(UUID_ENABLE_INSTALL) # Install step and imported target - install(FILES include/uuid.h DESTINATION include) + install(FILES include/uuid.h DESTINATION include/stduuid) install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets) install(EXPORT ${PROJECT_NAME}-targets DESTINATION lib/cmake/${PROJECT_NAME}) ================================================ FILE: ports/stduuid/fix-libuuid-dependency.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 039ee53..d4218a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,11 +23,8 @@ if (UUID_SYSTEM_GENERATOR) find_library(CFLIB CoreFoundation REQUIRED) target_link_libraries(${PROJECT_NAME} INTERFACE ${CFLIB}) else () - find_package(Libuuid REQUIRED) - if (Libuuid_FOUND) - target_include_directories(${PROJECT_NAME} INTERFACE ${Libuuid_INCLUDE_DIRS}) - target_link_libraries(${PROJECT_NAME} INTERFACE ${Libuuid_LIBRARIES}) - endif () + find_package(unofficial-libuuid CONFIG REQUIRED) + target_link_libraries(${PROJECT_NAME} INTERFACE unofficial::UUID::uuid) endif () endif () diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in index fb981d2..8a3c8ab 100644 --- a/cmake/Config.cmake.in +++ b/cmake/Config.cmake.in @@ -4,8 +4,7 @@ include(CMakeFindDependencyMacro) if (@UUID_SYSTEM_GENERATOR@) if (WIN32 OR APPLE) else () - list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) - find_dependency(Libuuid REQUIRED) + find_dependency(unofficial-libuuid CONFIG) endif () endif () ================================================ FILE: ports/stduuid/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mariusbancila/stduuid REF "v${VERSION}" SHA512 3d2fb21f680fb12559642d6787a5744d4f4fb48a6284bfef77537cb51f9bdbbe271b24a8c3bb1f954b4c845145f22c6d89a09e663df2f96a2e24d1d6f22fdf22 HEAD_REF master PATCHES fix-install-directory.patch fix-gsl-polyfill.patch fix-libuuid-dependency.patch ) # the debug build is not necessary, because stduuid deployed files are header-only set(VCPKG_BUILD_TYPE release) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES system-gen UUID_SYSTEM_GENERATOR INVERTED_FEATURES gsl-span UUID_USING_CXX20_SPAN ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUUID_BUILD_TESTS=OFF -DUUID_ENABLE_INSTALL=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") if("gsl-span" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/stduuid/uuid.h" "#ifdef __cpp_lib_span" "#if 0") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/stduuid/uuid.h" "#include " "#include ") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/stduuid/uuid.h" "#ifdef __cpp_lib_span" "#if 1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stduuid/vcpkg.json ================================================ { "name": "stduuid", "version": "1.2.3", "description": "A C++17 cross-platform implementation for UUIDs", "homepage": "https://github.com/mariusbancila/stduuid", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gsl-span": { "description": "Using span from gsl instead of std", "dependencies": [ "ms-gsl" ] }, "system-gen": { "description": "Enable operating system uuid generator", "dependencies": [ { "name": "libuuid", "platform": "!osx & !windows" } ] } } } ================================================ FILE: ports/steam-audio/fix-arm64-windows.patch ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index ab49461..9d53dce 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -43,6 +43,8 @@ endif() if (IPL_OS_WINDOWS) if (CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64") set(IPL_CPU_ARMV8 TRUE) + elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64") + set(IPL_CPU_ARMV8 TRUE) elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) set(IPL_CPU_X64 TRUE) else() ================================================ FILE: ports/steam-audio/portfile.cmake ================================================ if(VCPKG_TARGET_IS_UWP) vcpkg_check_linkage(ONLY_DYNAMIC_CRT) # also sets STEAMAUDIO_STATIC_RUNTIME=OFF endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ValveSoftware/steam-audio REF "v${VERSION}" SHA512 d1f99fcaa8be41c06f87dbc565e505f6817d0e745f9a582135198c946b1020feebe363dfc35670644af1611b38e7a3204588ff0e5df3c0d9c34c3ce5bb4d0f21 HEAD_REF "v${VERSION}" PATCHES use-vcpkg-deps.patch fix-arm64-windows.patch ) if(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) if("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x64") set(MACOS_ARCH "x86_64") elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") set(MACOS_ARCH "arm64") else() message(FATAL "Unsupported arch") endif() set(VCPKG_MACOS_ARCH "-DVCPKG_MACOS_ARCH=${MACOS_ARCH}") endif() # Set STEAMAUDIO_STATIC_RUNTIME, which is only used on Windows to set /M[TD]d? if(VCPKG_TARGET_IS_WINDOWS) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATIC_CRT) set(WINDOWS_STATIC_RUNTIME "-DSTEAMAUDIO_STATIC_RUNTIME=${STATIC_CRT}") endif() # We need to find flatc for steam-audio find_program(FlatBuffers_EXECUTABLE NAMES flatc PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/flatbuffers" "bin" NO_DEFAULT_PATHS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/core" OPTIONS -DFlatBuffers_EXECUTABLE=${FlatBuffers_EXECUTABLE} -DSTEAMAUDIO_BUILD_TESTS=OFF -DSTEAMAUDIO_BUILD_ITESTS=OFF -DSTEAMAUDIO_BUILD_SAMPLES=OFF -DSTEAMAUDIO_BUILD_BENCHMARKS=OFF -DSTEAMAUDIO_BUILD_DOCS=OFF -DSTEAMAUDIO_ENABLE_AVX=OFF # Windows only. Maybe expose as a feature? # Below features all require closed source third party dependencies ${WINDOWS_STATIC_RUNTIME} -DSTEAMAUDIO_ENABLE_IPP=OFF -DSTEAMAUDIO_ENABLE_FFTS=OFF -DSTEAMAUDIO_ENABLE_EMBREE=OFF -DSTEAMAUDIO_ENABLE_RADEONRAYS=OFF -DSTEAMAUDIO_ENABLE_TRUEAUDIONEXT=OFF ${VCPKG_MACOS_ARCH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/git" # readme/docs "${CURRENT_PACKAGES_DIR}/debug/git" "${CURRENT_PACKAGES_DIR}/root" # duplicate of THIRDPARTY.md ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(COMMENT [[steam-audio's license and third party notices are included below. In steam-audio's third party notices, PFFT and MySOFA are provided by other ports upon which this one depends. IPP, FFTS, Embree, RadeonRays, and TrueAudioNext are all disabled in this build. However, the CIPIC HRTF Database and Google Spherical Harmonics library components may be used here.]] FILE_LIST "${SOURCE_PATH}/LICENSE.md" "${SOURCE_PATH}/core/THIRDPARTY.md") ================================================ FILE: ports/steam-audio/usage ================================================ steam-audio provides CMake targets: find_package(steam-audio CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::steam-audio::phonon) ================================================ FILE: ports/steam-audio/use-vcpkg-deps.patch ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index ab49461..8b81aca 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -192,7 +192,7 @@ endif() # macOS flags if (IPL_OS_MACOS) - set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64") + set(CMAKE_OSX_ARCHITECTURES "${VCPKG_MACOS_ARCH}") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13") add_compile_options(-Wno-extern-c-compat) # Suppress warning about empty API structs. add_compile_options(-Wno-unknown-attributes) # Suppress warning in FlatBuffers. @@ -240,7 +240,7 @@ if (STEAMAUDIO_ENABLE_FFTS) endif() if (NOT FFT_LIBRARY) - find_package(PFFFT REQUIRED) + find_package(PFFFT CONFIG REQUIRED) set(FFT_LIBRARY PFFFT) endif() @@ -252,8 +252,8 @@ if (STEAMAUDIO_ENABLE_MKL) endif() endif() -find_package(MySOFA REQUIRED) -find_package(FlatBuffers REQUIRED) +find_package(mysofa CONFIG REQUIRED) +find_package(FlatBuffers CONFIG REQUIRED) if (STEAMAUDIO_ENABLE_EMBREE) find_package(ISPC 1.12 EXACT) diff --git a/core/src/core/CMakeLists.txt b/core/src/core/CMakeLists.txt index 7c9226f..56c4c44 100644 --- a/core/src/core/CMakeLists.txt +++ b/core/src/core/CMakeLists.txt @@ -176,7 +180,8 @@ endif() # add_library(hrtf OBJECT hrtf.cpp) -target_include_directories(hrtf PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(hrtf PUBLIC + "$") # @@ -582,7 +587,8 @@ if (STEAMAUDIO_BUILD_CSHARP_BINDINGS) endif() # This is needed so we can include generated headers -target_include_directories(core PUBLIC ${CMAKE_CURRENT_BINARY_DIR}) +target_include_directories(core PUBLIC + "$") if (IPL_OS_WINDOWS) target_link_libraries(core PUBLIC delayimp) @@ -596,7 +602,7 @@ if (IPL_OS_LINUX) target_link_libraries(core PUBLIC -Wl,--start-group) endif() -target_link_libraries(core PUBLIC FlatBuffers::FlatBuffers) +target_link_libraries(core PUBLIC flatbuffers::flatbuffers) if (STEAMAUDIO_ENABLE_IPP AND (IPL_OS_WINDOWS OR IPL_OS_LINUX OR IPL_OS_MACOS)) target_link_libraries(core PUBLIC IPP::IPP) @@ -610,10 +616,10 @@ if (FFT_LIBRARY STREQUAL "IPP") elseif (FFT_LIBRARY STREQUAL "FFTS") target_link_libraries(core PUBLIC FFTS::FFTS) elseif (FFT_LIBRARY STREQUAL "PFFFT") - target_link_libraries(core PUBLIC PFFFT::PFFFT) + target_link_libraries(core PUBLIC pffft::pffft) endif() -target_link_libraries(core PUBLIC MySOFA::MySOFA) +target_link_libraries(core PUBLIC $,mysofa::mysofa-shared,mysofa::mysofa-static>) add_dependencies(core fbschemas) if (STEAMAUDIO_ENABLE_EMBREE) @@ -639,7 +645,7 @@ source_group("OpenCL Files" FILES ${CL_SOURCE}) target_compile_definitions(core PRIVATE STEAMAUDIO_BUILDING_CORE) -target_precompile_headers(core PUBLIC pch.h) +target_precompile_headers(core PRIVATE pch.h) # @@ -671,7 +677,7 @@ if (IPL_OS_LINUX) endif() if (IPL_OS_WINDOWS AND IPL_CPU_X64 AND BUILD_SHARED_LIBS) - set_target_properties(phonon PROPERTIES LINK_FLAGS "/DELAYLOAD:opencl.dll /DELAYLOAD:gpuutilities.dll /DELAYLOAD:trueaudionext.dll") + #set_target_properties(phonon PROPERTIES LINK_FLAGS "/DELAYLOAD:opencl.dll /DELAYLOAD:gpuutilities.dll /DELAYLOAD:trueaudionext.dll") endif() if (IPL_OS_LINUX AND BUILD_SHARED_LIBS AND (NOT IPL_CPU_ARMV8)) @@ -729,8 +735,8 @@ if (NOT FMOD_LIB_DIR STREQUAL "") COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/phonon.h ${FMOD_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/phonon_version.h ${FMOD_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/phonon_interfaces.h ${FMOD_INCLUDE_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${FMOD_LIB_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${FMOD_LIB_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $ ${FMOD_LIB_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $,mysofa::mysofa-shared,mysofa::mysofa-static>> ${FMOD_LIB_DIR} COMMAND ${CMAKE_COMMAND} -E copy $ ${FMOD_LIB_DIR} ) else() @@ -851,8 +857,8 @@ if (NOT UNITY_PLUGIN_DIR STREQUAL "") COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/phonon_version.h ${UNITY_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/phonon_interfaces.h ${UNITY_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy $ ${UNITY_LIB_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${UNITY_PLUGIN_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${UNITY_PLUGIN_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $ ${UNITY_PLUGIN_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $,mysofa::mysofa-shared,mysofa::mysofa-static>> ${UNITY_PLUGIN_DIR} COMMAND ${CMAKE_COMMAND} -E copy $ ${UNITY_PLUGIN_DIR} ) else() @@ -913,8 +919,8 @@ if (NOT UNREAL_PLUGIN_DIR STREQUAL "") COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/phonon.h ${UNREAL_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/phonon_version.h ${UNREAL_INCLUDE_DIR} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/phonon_interfaces.h ${UNREAL_INCLUDE_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${UNREAL_PLUGIN_DIR} - COMMAND ${CMAKE_COMMAND} -E copy $ ${UNREAL_PLUGIN_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $ ${UNREAL_PLUGIN_DIR} + COMMAND ${CMAKE_COMMAND} -E copy $,mysofa::mysofa-shared,mysofa::mysofa-static>> ${UNREAL_PLUGIN_DIR} COMMAND ${CMAKE_COMMAND} -E copy $ ${UNREAL_PLUGIN_DIR} ) elseif (IPL_OS_MACOS) @@ -953,30 +959,34 @@ get_bin_subdir(IPL_BIN_SUBDIR) install( TARGETS phonon - ARCHIVE DESTINATION lib/${IPL_BIN_SUBDIR} - LIBRARY DESTINATION lib/${IPL_BIN_SUBDIR} - RUNTIME DESTINATION lib/${IPL_BIN_SUBDIR} + EXPORT steam-audio_exports + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin ) if (IPL_OS_MACOS) install( TARGETS phonon_bundle - ARCHIVE DESTINATION lib/${IPL_BIN_SUBDIR} - LIBRARY DESTINATION lib/${IPL_BIN_SUBDIR} - RUNTIME DESTINATION lib/${IPL_BIN_SUBDIR} + EXPORT steam-audio_exports + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin ) endif() -if (IPL_OS_WINDOWS) - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/$/phonon.pdb - DESTINATION symbols/${IPL_BIN_SUBDIR} - ) -elseif (IPL_OS_LINUX AND NOT IPL_CPU_ARMV8) - install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/libphonon.so.dbg - DESTINATION symbols/${IPL_BIN_SUBDIR} - ) +if(BUILD_SHARED_LIBS) + if (IPL_OS_WINDOWS) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/phonon.pdb + DESTINATION bin + ) + elseif (IPL_OS_LINUX AND NOT IPL_CPU_ARMV8) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/libphonon.so.dbg + DESTINATION bin + ) + endif() endif() install( @@ -986,6 +996,7 @@ install( DESTINATION include ) +#[[ if (IPL_OS_WINDOWS AND IPL_CPU_X64) install( FILES ${CMAKE_HOME_DIRECTORY}/deps/trueaudionext/bin/windows-x64/$>/TrueAudioNext.dll @@ -993,5 +1004,30 @@ if (IPL_OS_WINDOWS AND IPL_CPU_X64) DESTINATION lib/${IPL_BIN_SUBDIR} ) endif() +]]# + +export(EXPORT steam-audio_exports + NAMESPACE unofficial::steam-audio:: + FILE ${CMAKE_CURRENT_BINARY_DIR}/steam-audioTargets.cmake +) + +# required to resolve object libraries on import +install(TARGETS core hrtf EXPORT steam-audio_exports) + +install(EXPORT steam-audio_exports + NAMESPACE unofficial::steam-audio:: + FILE steam-audioTargets.cmake + DESTINATION share/steam-audio +) + +include(CMakePackageConfigHelpers) +configure_package_config_file(steam-audio-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/steam-audio-config.cmake + INSTALL_DESTINATION share/steam-audio) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/steam-audio-config.cmake + DESTINATION share/steam-audio ) + + include(CMakeListsInternal.txt OPTIONAL) diff --git a/core/src/core/float4.h b/core/src/core/float4.h index a221372..03428db 100644 --- a/core/src/core/float4.h +++ b/core/src/core/float4.h @@ -41,7 +41,7 @@ namespace float4 } -#if defined(IPL_OS_WINDOWS) +#if defined(IPL_OS_WINDOWS) && !defined(__clang__) namespace ipl { diff --git a/core/src/core/pffft_fft.cpp b/core/src/core/pffft_fft.cpp index 0a37114..4f5debe 100644 --- a/core/src/core/pffft_fft.cpp +++ b/core/src/core/pffft_fft.cpp @@ -16,7 +16,7 @@ #include "fft.h" -#include +#include #include "array.h" #include "array_math.h" diff --git a/core/src/core/steam-audio-config.cmake.in b/core/src/core/steam-audio-config.cmake.in new file mode 100644 index 0000000..776f7aa --- /dev/null +++ b/core/src/core/steam-audio-config.cmake.in @@ -0,0 +1,7 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) + +include(${CMAKE_CURRENT_LIST_DIR}/steam-audioTargets.cmake) + +check_required_components(steam-audio) \ No newline at end of file ================================================ FILE: ports/steam-audio/vcpkg.json ================================================ { "name": "steam-audio", "version": "4.8.1", "description": "Valve's steam audio library", "homepage": "https://github.com/ValveSoftware/steam-audio", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ "flatbuffers", { "name": "flatbuffers", "host": true }, "libmysofa", "pffft", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stella-cv-fbow/fix-arm-windows.patch ================================================ diff --git a/include/fbow/cpu.h b/include/fbow/cpu.h index 7781c3a..f640b8c 100644 --- a/include/fbow/cpu.h +++ b/include/fbow/cpu.h @@ -31,7 +31,7 @@ THE SOFTWARE. #include #include #include -#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) +#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM) #else #if defined(__x86_64__) || defined(_M_X64) || defined(__i386) || defined(_M_IX86) @@ -76,7 +76,7 @@ private: static bool inline detect_OS_AVX512(); static inline uint64_t xgetbv(unsigned int x); }; -#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) +#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM) void cpu::cpuid(int32_t out[4], int32_t x){} #else @@ -119,7 +119,7 @@ bool cpu::detect_OS_x64(){ return true;} //////////////////////////////////////////////////////////////////////////////// bool cpu::detect_OS_AVX(){ // Copied from: http://stackoverflow.com/a/22521619/922184 -#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) +#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(_M_ARM64EC) && !defined(_M_ARM) bool avxSupported = false; int cpuInfo[4]; cpuid(cpuInfo, 1); @@ -133,7 +133,7 @@ bool cpu::detect_OS_AVX(){ } bool cpu::detect_OS_AVX512(){ -#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) +#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(_M_ARM64EC) && !defined(_M_ARM) if (!detect_OS_AVX()) return false; uint64_t xcrFeatureMask = xgetbv(_XCR_XFEATURE_ENABLED_MASK); @@ -146,7 +146,7 @@ bool cpu::detect_OS_AVX512(){ std::string cpu::get_vendor_string(){ int32_t CPUInfo[4]; char name[13];cpuid(CPUInfo, 0); memcpy(name + 0, &CPUInfo[1], 4);memcpy(name + 4, &CPUInfo[3], 4); memcpy(name + 8, &CPUInfo[2], 4); name[12] = '\0'; return name;} void cpu::detect_host(){ -#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) +#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(_M_ARM64EC) && !defined(_M_ARM) OS_x64 = detect_OS_x64(); OS_AVX = detect_OS_AVX(); diff --git a/include/fbow/vocabulary.h b/include/fbow/vocabulary.h index 7160560..cd8447b 100644 --- a/include/fbow/vocabulary.h +++ b/include/fbow/vocabulary.h @@ -36,7 +36,7 @@ THE SOFTWARE. #include #include #include -#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) +#if !defined(__ANDROID__) && !defined(__arm64__) && !defined(__arm__) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(_M_ARM64EC) && !defined(_M_ARM) #if defined(USE_AVX) #include #endif diff --git a/src/fbow.cpp b/src/fbow.cpp index 024fcf7..ef4bcf1 100644 --- a/src/fbow.cpp +++ b/src/fbow.cpp @@ -99,7 +99,7 @@ struct L2_generic : public Lx { return d; } }; -#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) || !defined(USE_AVX) +#if defined(__ANDROID__) || defined(__arm64__) || defined(__arm__) || defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM) || !defined(USE_AVX) //fake elements to allow compilation struct L2_avx_generic : public Lx { inline float computeDist(uint64_t* ptr) { return std::numeric_limits::max(); } ================================================ FILE: ports/stella-cv-fbow/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stella-cv/FBoW REF c6e3c29e3332a0b0834021797e2aa4e8eb66a3c1 SHA512 a7f80874c396163a8cbebfbcdf150ea1f1de99ac58a1bd26f69257046e7fe3d32478c80a89eeab329a845e9a6a8c1264cf8750ccd44b380d93def9535048dbb4 PATCHES fix-arm-windows.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_UTILS=OFF -DBUILD_TESTS=OFF -DUSE_CONTRIB=OFF -DUSE_AVX=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH share/cmake/fbow PACKAGE_NAME fbow) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stella-cv-fbow/vcpkg.json ================================================ { "name": "stella-cv-fbow", "version": "0.0.1", "port-version": 1, "description": "This is a modified version of the original Fast Bag of Words by @rmsalinas.", "homepage": "https://github.com/stella-cv/FBoW", "license": "MIT", "dependencies": [ { "name": "opencv4", "default-features": false, "features": [ "highgui" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stftpitchshift/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jurihock/stftPitchShift HEAD_REF main REF v1.4.1 SHA512 69e68af5baeb1bbeae440d2b2dc7a510a72b8b49cd9b23e0934eb8070d31c9a2e98759ea6d609f81caa3c57e1615cc50028dd13a9d04e82725a41da79175a868 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVCPKG=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file( INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) file( REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" ) ================================================ FILE: ports/stftpitchshift/vcpkg.json ================================================ { "name": "stftpitchshift", "version": "1.4.1", "description": "STFT based multi pitch shifting with optional formant preservation.", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stillwater-universal/fix-install-path.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -559,19 +559,10 @@ # Set up install directories. INCLUDE_INSTALL_DIR and # CMAKECONFIG_INSTALL_DIR must not be absolute paths. -if(WIN32) - set(include_install_dir Include) - set(include_install_dir_full Include) - set(config_install_dir CMake) -elseif(UNIX) - set(include_install_dir include) - set(include_install_dir_postfix "${project_library_target_name}") - set(include_install_dir_full "${include_install_dir}/${include_install_dir_postfix}") - - set(config_install_dir share/${PACKAGE_NAME}) -else() - message(FATAL_ERROR "Not supported system type. Options: UNIX or WIN32.") -endif() +set(include_install_dir include) +set(include_install_dir_full "${include_install_dir}") + +set(config_install_dir CMake) ##### Gather git repo related information # Get the current working branch @@ -658,7 +649,8 @@ DESTINATION ${config_install_dir} COMPONENT cmake) # Install headers -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/${project_library_target_name} - DESTINATION ${include_install_dir}) +install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/sw/universal + DESTINATION ${include_install_dir} + FILES_MATCHING PATTERN "*.hpp") if(UNIVERSAL_BUILD_ALL) ================================================ FILE: ports/stillwater-universal/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stillwater-sc/universal REF "v${VERSION}" SHA512 b4015a3c68aa17417f39867de0f036e7706442f9d7cdc470b6f237b98e341d6875a73fd22579713cf28976b7dd6bbfbad700023dda44a977ed0722efa5880284 HEAD_REF master PATCHES fix-install-path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNIVERSAL_ENABLE_TESTS=OFF -DUNIVERSAL_VERBOSE_BUILD=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH CMake PACKAGE_NAME universal) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/universal/internal/variablecascade" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stillwater-universal/usage ================================================ The package stillwater-universal provides CMake targets: find_package(universal CONFIG REQUIRED) target_link_libraries(main PRIVATE universal::universal) ================================================ FILE: ports/stillwater-universal/vcpkg.json ================================================ { "name": "stillwater-universal", "version": "3.96", "description": "A header-only C++ library for plug-in replacement number systems for native types", "homepage": "https://github.com/stillwater-sc/universal", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stlab/devendoring.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 42d624a..887cc0d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,8 +9,7 @@ include(cmake/CPM.cmake) # NAME cpp-library # SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../cpp-library" # ) -CPMAddPackage("gh:stlab/cpp-library@5.2.0") -include(${cpp-library_SOURCE_DIR}/cpp-library.cmake) +include(cmake/cpp-library/cpp-library.cmake) # Enable dependency tracking BEFORE project() cpp_library_enable_dependency_tracking() @@ -159,11 +158,11 @@ add_subdirectory(src) # Dependencies (added after project() for dependency tracking) # https://github.com/stlab/stlab-copy-on-write -CPMAddPackage("gh:stlab/stlab-copy-on-write@1.1.0") +find_package(stlab-copy-on-write CONFIG REQUIRED) target_link_libraries(stlab INTERFACE $) # https://github.com/stlab/stlab-enum-ops -CPMAddPackage("gh:stlab/stlab-enum-ops@1.2.0") +find_package(stlab-enum-ops CONFIG REQUIRED) target_link_libraries(stlab INTERFACE $) # System dependencies @@ -196,7 +195,7 @@ endif() ######################################################## # Installation Support (using cpp-library dependency auto-discovery) if(PROJECT_IS_TOP_LEVEL) - include("${cpp-library_SOURCE_DIR}/cmake/cpp-library-install.cmake") + include("cmake/cpp-library/cmake/cpp-library-install.cmake") # Use cpp-library's install function for automatic dependency discovery # No manual dependency mappings needed - cpp-library auto-discovers via dependency provider ================================================ FILE: ports/stlab/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stlab/libraries REF "v${VERSION}" SHA512 4783697ada2102082e37fbb581d75fc04f89c71228771927ce1f63bbe05b24d632e574dec1aeae5a9e027996e30962852615a3c60d566404da7ddfabde53f87c HEAD_REF main PATCHES devendoring.patch use-cxx-20.patch ) file(WRITE "${SOURCE_PATH}/cmake/CPM.cmake" "# disabled by vcpkg") # Replace CPM and download cpp-library directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO stlab/cpp-library REF "v5.2.0" SHA512 4ff589b4a80c63991f2e7ba18236315ee94929775aa5c6bbffb54f445d60f14c5949386b80f71ce3ed547644f557a5bc3ca317b939468e699294565f73f689d8 HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/cpp-library") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Qt6=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/stlab) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/stlab/use-cxx-20.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 108f3c3..e8973a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,7 @@ cpp_library_set_version() # Create the main library target first add_library(stlab) add_library(stlab::stlab ALIAS stlab) +target_compile_features(stlab PRIVATE cxx_std_20) ######################################################## ================================================ FILE: ports/stlab/vcpkg.json ================================================ { "name": "stlab", "version": "2.3.0", "description": [ "stlab is the ongoing work of what was Adobe Software Technology Lab.", "The Concurrency library provides futures and channels, high level constructs for implementing algorithms that eases the use of multiple CPU cores while minimizing contention. This library solves several problems of the C++11 and C++17 TS futures." ], "homepage": "https://github.com/stlab/libraries", "license": "BSL-1.0", "dependencies": [ "stlab-copy-on-write", "stlab-enum-ops", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stlab-copy-on-write/disable-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6452b57..6e4e9d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,11 +1,8 @@ cmake_minimum_required(VERSION 3.24) -include(cmake/CPM.cmake) - # Fetch cpp-library before project() # Check https://github.com/stlab/cpp-library/releases for the latest version -CPMAddPackage("gh:stlab/cpp-library@5.0.0") -include(${cpp-library_SOURCE_DIR}/cpp-library.cmake) +include(cmake/cpp-library/cpp-library.cmake) # Enable dependency tracking before project() cpp_library_enable_dependency_tracking() ================================================ FILE: ports/stlab-copy-on-write/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e4e9d4..79671d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,14 +10,9 @@ cpp_library_enable_dependency_tracking() # Now declare project project(copy-on-write) -# Enable testing infrastructure (required for TESTS and EXAMPLES) -include(CTest) - # Let cpp-library handle the project declaration and version detection cpp_library_setup( DESCRIPTION "Copy-on-write wrapper for any type" NAMESPACE stlab HEADERS copy_on_write.hpp - EXAMPLES basic_usage_test.cpp - TESTS copy_on_write_tests.cpp ) ================================================ FILE: ports/stlab-copy-on-write/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stlab/copy-on-write REF "v${VERSION}" SHA512 4f480b35a232abd94f70bcd37b93099196e8d09f40678f87afc367af7b11c5799ffaa81ee134e6c1b85f7a5d6765f0a25c305d6dd09685bb1b4bbc3948ecbd3e HEAD_REF main PATCHES disable-cpm.patch disable-tests.patch ) # Replace CPM and download cpp-library directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO stlab/cpp-library REF "v5.0.0" SHA512 5e158dbdcabe698f7ddaff460a68c490978a7f91af8cb90f19430456acc1ca0f115973f149303b07d5ed0fbb3b43cd857b133c46bc6b4e8cc96c1ee25b0e87a9 HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/cpp-library") set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/stlab-copy-on-write) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stlab-copy-on-write/vcpkg.json ================================================ { "name": "stlab-copy-on-write", "version": "1.1.0", "description": "stlab copy-on-write library", "homepage": "https://github.com/stlab/copy-on-write", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stlab-enum-ops/disable-cpm.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 85bb21e..5a9878f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,6 @@ cmake_minimum_required(VERSION 3.24) -include(cmake/CPM.cmake) - -# Fetch cpp-library before project() -# Check https://github.com/stlab/cpp-library/releases for the latest version -# CPMAddPackage( -# NAME cpp-library -# SOURCE_DIR "${CMAKE_SOURCE_DIR}/../cpp-library" -# ) -# CPMAddPackage("gh:stlab/cpp-library#65dbed9fff9a0331355bd51dc1e8156262390154") -CPMAddPackage("gh:stlab/cpp-library@5.0.0") -include(${cpp-library_SOURCE_DIR}/cpp-library.cmake) +include(cmake/cpp-library/cpp-library.cmake/) # Enable dependency tracking before project() cpp_library_enable_dependency_tracking() ================================================ FILE: ports/stlab-enum-ops/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a9878f..6ff9562 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,15 +8,10 @@ cpp_library_enable_dependency_tracking() # Now declare project project(enum-ops) -# Enable CTest infrastructure (required for tests/examples to work) -include(CTest) - # Let cpp-library handle the project declaration and version detection cpp_library_setup( DESCRIPTION "Type-safe operators for enums" NAMESPACE stlab HEADERS enum_ops.hpp - EXAMPLES enum_ops_example_test.cpp enum_ops_example_fail.cpp - TESTS enum_ops_tests.cpp DOCS_EXCLUDE_SYMBOLS "stlab::implementation" ) ================================================ FILE: ports/stlab-enum-ops/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stlab/stlab-enum-ops REF "v${VERSION}" SHA512 d3aa11cfc2f2b7931e9e41ee661dbc5770023de12ebf0d1823bcdc063d2c57a393be18a214747cbc25296c0268e2b536b102b4bcecb863a12ecfba8badfd613d HEAD_REF main PATCHES disable-cpm.patch disable-tests.patch ) # Replace CPM and download cpp-library directly to avoid issues with FETCHCONTENT_FULLY_DISCONNECTED vcpkg_from_github( OUT_SOURCE_PATH PACKAGE_PROJECT_PATH REPO stlab/cpp-library REF "v5.0.0" SHA512 5e158dbdcabe698f7ddaff460a68c490978a7f91af8cb90f19430456acc1ca0f115973f149303b07d5ed0fbb3b43cd857b133c46bc6b4e8cc96c1ee25b0e87a9 HEAD_REF master ) file(RENAME "${PACKAGE_PROJECT_PATH}" "${SOURCE_PATH}/cmake/cpp-library") set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/stlab-enum-ops) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stlab-enum-ops/vcpkg.json ================================================ { "name": "stlab-enum-ops", "version": "1.2.0", "description": "Type-safe bitmask and arithmetic operators for enum types.", "homepage": "https://github.com/stlab/stlab-enum-ops", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stormlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ladislav-zezula/StormLib REF "v${VERSION}" SHA512 5f0ce75019cfbe3a2dfc07ea312825e2babf226dbf8aa77ed60456862ae739ac4689cbe7d4a185cdc148ad9910fd8137d3f11c04ffe6c532bbdacb08838ecfba HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME StormLib) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/stormlib/vcpkg.json ================================================ { "name": "stormlib", "version": "9.26", "description": "StormLib is a library for opening and manipulating Blizzard MPQ files", "dependencies": [ "bzip2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/str-view/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO agl-alexglopez/str_view REF "v${VERSION}" SHA512 2ccdfd31948b15d5704faffb52a85fce4cb72c5cdb881b4ad097b06b6a584d74c3062887a5b6d43e60d793a4261708047af0d65960bf86f994fdd7d79fa253d0 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "str_view" CONFIG_PATH "lib/cmake/str_view" ) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/str_view/str_view.h" "defined(SV_CONSUME_DLL)" "1") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/str-view/usage ================================================ str_view provides CMake targets: find_package(str_view CONFIG REQUIRED) target_link_libraries(main PRIVATE str_view::str_view) ================================================ FILE: ports/str-view/vcpkg.json ================================================ { "name": "str-view", "version": "0.7.1", "description": "A simple, robust, and convenient library for read-only string handling in C.", "homepage": "https://github.com/agl-alexglopez/str_view", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/strict-variant/portfile.cmake ================================================ # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cbeck88/strict-variant REF 6378755e3c612cd870c2720232db1e5423dbbe73 SHA512 45432caab51d42b86839f5ed194e79630ee5cbedd6e41eaadc10d28788ceb8c4629c0432ce888a5729266585e03cf4e6206c8ec66d1b1bc3d7d60220b3909f1d HEAD_REF master ) # Copy header files file(COPY ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp") # Handle copyright file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/strict-variant) file(RENAME ${CURRENT_PACKAGES_DIR}/share/strict-variant/LICENSE ${CURRENT_PACKAGES_DIR}/share/strict-variant/copyright) ================================================ FILE: ports/strict-variant/vcpkg.json ================================================ { "name": "strict-variant", "version": "0.5", "port-version": 2, "description": "Tagged union implementation that will never throw an exception or make a dynamic allocation in the effort of supporting types that have throwing moves." } ================================================ FILE: ports/string-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/string-lite REF "v${VERSION}" SHA512 b61667660d32a96232737e0d38e02a0e6d934830e7dafdb9844eb87d855dbea43392797c291d9f39a0f352c43bcd6e5af9510b656887532be99f02982ff38dfa HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTRING_LITE_OPT_BUILD_TESTS=OFF -DSTRING_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/${PORT} ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) ================================================ FILE: ports/string-lite/usage ================================================ string-lite provides CMake targets: find_package(string-lite CONFIG REQUIRED) target_link_libraries(main PRIVATE string-lite::string-lite) ================================================ FILE: ports/string-lite/vcpkg.json ================================================ { "name": "string-lite", "version": "0.0.0", "description": "String algorithms for C+11 and later in a single-file header-only library", "homepage": "https://github.com/martinmoene/string-lite", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/string-theory/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zrax/string_theory REF "${VERSION}" SHA512 a36825ab22be64c7c7b54861e88dea0bde5f0b80d32fc86b863e4409c820a25fea17cfbf2d068c1fdf4fb371714337dff390d31c983ea898fbdc37a09c469b4a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DST_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME string_theory CONFIG_PATH lib/cmake/string_theory) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/string-theory/vcpkg.json ================================================ { "name": "string-theory", "version": "3.9", "description": "Flexible modern C++ string library with type-safe formatting.", "homepage": "https://github.com/zrax/string_theory", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/string-view-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/string-view-lite REF "v${VERSION}" SHA512 c581ea08f25e70e84322da39abb36c4af4c31c4fbb33f9e9a723c3c68ecaff6d4553bc85902a1b7851e94581804d7f3d9a7765f128515d56621b30131e58722b ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTRING_VIEW_LITE_OPT_BUILD_TESTS=OFF -DSTRING_VIEW_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/string-view-lite/vcpkg.json ================================================ { "name": "string-view-lite", "version": "1.8.0", "port-version": 1, "description": "A C++17-like string_view for C++98, C++11 and later in a single-file header-only library", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stringzilla/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ashvardanian/StringZilla REF "v${VERSION}" SHA512 2255335cffa7f7d46f356646737400efbe261885941f907d22da996309cf1302feb7541c0af3258963fb8adb9123c2ad85de58e620aaa9e83012427565a66d21 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stringzilla/vcpkg.json ================================================ { "name": "stringzilla", "version": "4.6.0", "description": "StringZilla is the GodZilla of string libraries, using SIMD and SWAR to accelerate string operations on modern CPUs.", "homepage": "https://github.com/ashvardanian/StringZilla", "license": "Apache-2.0" } ================================================ FILE: ports/strong-type/portfile.cmake ================================================ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH REPO "rollbear/strong_type" REF "v${VERSION}" SHA512 "67F6F0AC34703206A5F45B492CB52ACAF87189D137B3CA5F9A0BB3708FE91FF4FBA61B6BFD9CDC8D2494D112F7964C8BE366F2ECECEF3B8B5B7CC1F318EFAFDD" ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "strong_type" CONFIG_PATH "lib/cmake/strong_type") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/strong-type/vcpkg.json ================================================ { "name": "strong-type", "version": "15", "description": "An additive strong typedef library for C++14/17/20", "homepage": "https://github.com/rollbear/strong_type", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/stronk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO twig-energy/stronk REF v${VERSION} SHA512 a86660dab08ad70426c01f6449cb777a6d05d528d7fbcbcf6c29f372327e412e46dc10f68f51049387de8e56fbf94ceba003f86091b09f054d8069b152cda900 HEAD_REF main ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stronk/vcpkg.json ================================================ { "name": "stronk", "version-semver": "0.14.0", "description": "An easy to customize, strong type library with built in support for unit-like behavior", "homepage": "https://github.com/twig-energy/stronk", "license": "MIT", "dependencies": [ { "name": "boost-type-index", "version>=": "1.80.0" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/strtk/copyright ================================================ Copyright 2002-2018 Arash Partow http://www.partow.net/programming/strtk/index.html Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: ports/strtk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArashPartow/strtk REF d9cc24c696ca3aea25d2ac8c2c495e18d7e6cd89 # accessed on 2020-09-14 SHA512 c37c0df1dd3f7bc1dfcceea83ed9303cf9388ba400ee645f26a24bca50bf85209f7b8a2169f6b98b0267ece986a29a27605ff3eaef50a44629fb7e042d06f26a ) file(COPY "${SOURCE_PATH}/strtk.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if("boost" IN_LIST FEATURES) else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/strtk.hpp" "#ifndef strtk_no_tr1_or_boost" "#if 0") endif() vcpkg_install_copyright(FILE_LIST "${CMAKE_CURRENT_LIST_DIR}/copyright") ================================================ FILE: ports/strtk/vcpkg.json ================================================ { "name": "strtk", "version-date": "2020-09-14", "port-version": 4, "description": "robust, optimized and portable string processing algorithms for the C++ language", "homepage": "https://github.com/ArashPartow/strtk", "license": null, "features": { "boost": { "description": "Request boost libraries", "dependencies": [ "boost-algorithm", "boost-lexical-cast", "boost-random", "boost-regex", "boost-spirit", "boost-tokenizer" ] } } } ================================================ FILE: ports/structopt/0000-vendored-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8c6f3dd..a85803b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,9 @@ option(STRUCTOPT_SAMPLES "Build structopt samples") include(CMakePackageConfigHelpers) include(GNUInstallDirs) +find_package(magic_enum REQUIRED) +find_package(unofficial-visit_struct REQUIRED) + add_library(structopt INTERFACE) add_library(structopt::structopt ALIAS structopt) @@ -43,6 +46,9 @@ target_compile_features(structopt INTERFACE cxx_std_17) target_include_directories(structopt INTERFACE $ $) +target_link_libraries(structopt INTERFACE + magic_enum::magic_enum + unofficial::visit_struct::visit_struct) if(STRUCTOPT_SAMPLES) add_subdirectory(samples) diff --git a/include/structopt/app.hpp b/include/structopt/app.hpp index b60cc29..c89aa5d 100644 --- a/include/structopt/app.hpp +++ b/include/structopt/app.hpp @@ -6,7 +6,7 @@ #include #include #include -#include +#include #include #include diff --git a/include/structopt/parser.hpp b/include/structopt/parser.hpp index 5ef391c..1cbfc71 100644 --- a/include/structopt/parser.hpp +++ b/include/structopt/parser.hpp @@ -13,8 +13,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/include/structopt/visitor.hpp b/include/structopt/visitor.hpp index f36c155..dbaa619 100644 --- a/include/structopt/visitor.hpp +++ b/include/structopt/visitor.hpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include diff --git a/structoptConfig.cmake.in b/structoptConfig.cmake.in index 8f4580f..c272fe6 100644 --- a/structoptConfig.cmake.in +++ b/structoptConfig.cmake.in @@ -2,6 +2,9 @@ include(CMakeFindDependencyMacro) +find_dependency(magic_enum) +find_dependency(unofficial-visit_struct) + if (NOT TARGET structopt::structopt) include(${CMAKE_CURRENT_LIST_DIR}/structoptTargets.cmake) endif () ================================================ FILE: ports/structopt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/structopt REF "v${VERSION}" SHA512 f284ec20379a1bfecfe1622e45d0570128455ecf0c24f2a1d26420c13a277112ca7ba350e2d40c0b0b37b38eba4ffa6ff164590b32262a5ba23186f7cd904511 HEAD_REF master PATCHES 0000-vendored-dependencies.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSTRUCTOPT_TESTS=OFF -DSTRUCTOPT_SAMPLES=OFF ) vcpkg_cmake_install() # Header-only library. vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/structopt") vcpkg_fixup_pkgconfig() # Delete all third-party header files vendored by the structopt library. The library has been patched to instead use # the external versions of these libraries. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/structopt/third_party") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" ) # Remove redundant license files that are installed by the library. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/licenses) configure_file( "${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY ) ================================================ FILE: ports/structopt/usage ================================================ structopt provides CMake targets: find_package(structopt CONFIG REQUIRED) target_link_libraries(main PRIVATE structopt::structopt) ================================================ FILE: ports/structopt/vcpkg.json ================================================ { "name": "structopt", "version": "0.1.3", "description": "Parse command line arguments by defining a struct.", "homepage": "https://github.com/p-ranav/structopt", "documentation": "https://github.com/p-ranav/structopt", "license": "MIT", "dependencies": [ "magic-enum", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "visit-struct" ] } ================================================ FILE: ports/stx/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lamarrr/STX REF "v${VERSION}" SHA512 3cc06118677f9b43bc79e5719d408af8b4d8e729a4da20ee56431bdb8823e73f7eb4d4f961534d0c7329417d9371ebb1255246fc08a65fd67a7eca2b2b8a99a3 HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES backtrace STX_ENABLE_BACKTRACE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/stx/vcpkg.json ================================================ { "name": "stx", "version": "1.0.5", "description": "STX is a collection of libraries and utilities designed to make working with C++ easier and less error-prone.", "homepage": "https://github.com/lamarrr/STX", "license": "MIT", "dependencies": [ "abseil", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "backtrace": { "description": "stacktrace support for STX" } } } ================================================ FILE: ports/stxxl/0001-fix-visual-studio.patch ================================================ diff --git a/include/stxxl/bits/algo/ksort.h b/include/stxxl/bits/algo/ksort.h index 33ec8cf..8101741 100644 --- a/include/stxxl/bits/algo/ksort.h +++ b/include/stxxl/bits/algo/ksort.h @@ -299,11 +299,7 @@ create_runs( template -struct run_cursor2_cmp : public std::binary_function< - run_cursor2, - run_cursor2, - bool - > +struct run_cursor2_cmp { typedef run_cursor2 cursor_type; KeyExtractor keyobj; @@ -327,7 +323,7 @@ private: }; template -class key_comparison : public std::binary_function +class key_comparison { KeyExtractor ke; diff --git a/include/stxxl/bits/algo/sort_helper.h b/include/stxxl/bits/algo/sort_helper.h index 524e40d..69234c4 100644 --- a/include/stxxl/bits/algo/sort_helper.h +++ b/include/stxxl/bits/algo/sort_helper.h @@ -51,7 +51,6 @@ struct trigger_entry template struct trigger_entry_cmp - : public std::binary_function { typedef TriggerEntryType trigger_entry_type; ValueCmp cmp; @@ -67,11 +66,6 @@ template struct run_cursor2_cmp - : public std::binary_function< - run_cursor2, - run_cursor2, - bool - > { typedef BlockType block_type; typedef PrefetcherType prefetcher_type; diff --git a/include/stxxl/bits/compat/unique_ptr.h b/include/stxxl/bits/compat/unique_ptr.h index 9df12ff..7110246 100644 --- a/include/stxxl/bits/compat/unique_ptr.h +++ b/include/stxxl/bits/compat/unique_ptr.h @@ -22,12 +22,7 @@ STXXL_BEGIN_NAMESPACE template struct compat_unique_ptr { -#if __cplusplus >= 201103L && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) >= 40400) typedef std::unique_ptr result; -#else - // auto_ptr is inherently broken and is deprecated by unique_ptr in c++0x - typedef std::auto_ptr result; -#endif }; STXXL_END_NAMESPACE diff --git a/include/stxxl/bits/containers/btree/leaf.h b/include/stxxl/bits/containers/btree/leaf.h index d7c619f..969adfd 100644 --- a/include/stxxl/bits/containers/btree/leaf.h +++ b/include/stxxl/bits/containers/btree/leaf.h @@ -66,7 +66,7 @@ public: typedef node_cache leaf_cache_type; public: - struct value_compare : public std::binary_function + struct value_compare { key_compare comp; diff --git a/include/stxxl/bits/containers/btree/node.h b/include/stxxl/bits/containers/btree/node.h index 13dec7b..c26cfff 100644 --- a/include/stxxl/bits/containers/btree/node.h +++ b/include/stxxl/bits/containers/btree/node.h @@ -71,7 +71,7 @@ public: typedef node_cache node_cache_type; private: - struct value_compare : public std::binary_function + struct value_compare { key_compare comp; diff --git a/include/stxxl/bits/containers/hash_map/hash_map.h b/include/stxxl/bits/containers/hash_map/hash_map.h index 0759bd2..edcc2ac 100644 --- a/include/stxxl/bits/containers/hash_map/hash_map.h +++ b/include/stxxl/bits/containers/hash_map/hash_map.h @@ -1258,10 +1258,7 @@ protected: * lexicographically by Note: the hash-value has already * been computed. */ - struct Cmp : public std::binary_function< - std::pair, - std::pair, bool - > + struct Cmp { self_type& map_; Cmp(self_type& map) : map_(map) { } @@ -1520,7 +1517,7 @@ protected: public: //! Construct an equality predicate from the comparison operator - struct equal_to : public std::binary_function + struct equal_to { //! reference to hash_map const self_type& m_map; diff --git a/include/stxxl/bits/io/wbtl_file.h b/include/stxxl/bits/io/wbtl_file.h index 933a216..d9f0674 100644 --- a/include/stxxl/bits/io/wbtl_file.h +++ b/include/stxxl/bits/io/wbtl_file.h @@ -65,7 +65,7 @@ class wbtl_file : public disk_queued_file size_type curpos; request_ptr backend_request; - struct FirstFit : public std::binary_function + struct FirstFit { bool operator () ( const place& entry, diff --git a/include/stxxl/bits/mng/block_alloc.h b/include/stxxl/bits/mng/block_alloc.h index 19ade8b..dac408f 100644 --- a/include/stxxl/bits/mng/block_alloc.h +++ b/include/stxxl/bits/mng/block_alloc.h @@ -138,7 +138,7 @@ private: perm[i] = i; stxxl::random_number rnd; - std::random_shuffle(perm.begin(), perm.end(), rnd _STXXL_FORCE_SEQUENTIAL); + std::shuffle(perm.begin(), perm.end(), std::mt19937(std::random_device()())); } public: diff --git a/include/stxxl/bits/mng/block_alloc_interleaved.h b/include/stxxl/bits/mng/block_alloc_interleaved.h index a82ee34..83925a3 100644 --- a/include/stxxl/bits/mng/block_alloc_interleaved.h +++ b/include/stxxl/bits/mng/block_alloc_interleaved.h @@ -93,7 +93,7 @@ struct interleaved_RC : public interleaved_striping perms[i][j] = j; random_number rnd; - std::random_shuffle(perms[i].begin(), perms[i].end(), rnd _STXXL_FORCE_SEQUENTIAL); + std::shuffle(perms[i].begin(), perms[i].end(), std::mt19937(std::random_device()())); } } diff --git a/include/stxxl/bits/mng/disk_allocator.h b/include/stxxl/bits/mng/disk_allocator.h index 59ad085..a4e534e 100644 --- a/include/stxxl/bits/mng/disk_allocator.h +++ b/include/stxxl/bits/mng/disk_allocator.h @@ -44,7 +44,7 @@ class disk_allocator : private noncopyable { typedef std::pair place; - struct first_fit : public std::binary_function + struct first_fit { bool operator () ( const place& entry, @@ -189,7 +189,7 @@ void disk_allocator::new_blocks(BID* begin, BID* end) sortseq::iterator space; space = std::find_if(free_space.begin(), free_space.end(), - bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); + std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL); if (space == free_space.end() && requested_size == BlockSize) { @@ -207,7 +207,7 @@ void disk_allocator::new_blocks(BID* begin, BID* end) grow_file(BlockSize); space = std::find_if(free_space.begin(), free_space.end(), - bind2nd(first_fit(), requested_size) _STXXL_FORCE_SEQUENTIAL); + std::bind(first_fit(), std::placeholders::_1, requested_size) _STXXL_FORCE_SEQUENTIAL); } if (space != free_space.end()) diff --git a/include/stxxl/bits/msvc_compatibility.h b/include/stxxl/bits/msvc_compatibility.h index c2c937d..0cb22e5 100644 --- a/include/stxxl/bits/msvc_compatibility.h +++ b/include/stxxl/bits/msvc_compatibility.h @@ -19,10 +19,12 @@ #include +#if _MSC_VER < 1900 inline double log2(double x) { return (log(x) / log(2.)); } +#endif // ^^^ _MSC_VER < 1900 // http://msdn.microsoft.com/en-us/library/2ts7cx93.aspx #define snprintf _snprintf diff --git a/include/stxxl/bits/parallel.h b/include/stxxl/bits/parallel.h index d973861..c858d87 100644 --- a/include/stxxl/bits/parallel.h +++ b/include/stxxl/bits/parallel.h @@ -121,7 +121,6 @@ using __gnu_parallel::random_shuffle; #elif STXXL_PARALLEL using std::sort; -using std::random_shuffle; #else diff --git a/include/stxxl/bits/parallel/base.h b/include/stxxl/bits/parallel/base.h index 141d515..1c970f9 100644 --- a/include/stxxl/bits/parallel/base.h +++ b/include/stxxl/bits/parallel/base.h @@ -33,7 +33,6 @@ namespace parallel { */ template class binary_negate - : public std::binary_function { protected: Predicate pred; @@ -80,7 +79,7 @@ static inline void decode2(lcas_t x, int& a, int& b) * Constructs predicate for equality from strict weak ordering predicate */ template -class equal_from_less : public std::binary_function +class equal_from_less { private: Comparator& comp; @@ -126,7 +125,7 @@ median_of_three_iterators(RandomAccessIterator a, RandomAccessIterator b, /** Similar to std::equal_to, but allows two different types. */ template -struct equal_to : std::binary_function +struct equal_to { bool operator () (const T1& t1, const T2& t2) const { @@ -136,7 +135,7 @@ struct equal_to : std::binary_function /** Similar to std::less, but allows two different types. */ template -struct less : std::binary_function +struct less { bool operator () (const T1& t1, const T2& t2) const { diff --git a/include/stxxl/bits/parallel/multiseq_selection.h b/include/stxxl/bits/parallel/multiseq_selection.h index 57e7599..f41d9aa 100644 --- a/include/stxxl/bits/parallel/multiseq_selection.h +++ b/include/stxxl/bits/parallel/multiseq_selection.h @@ -35,7 +35,6 @@ namespace parallel { //! Compare a pair of types lexcigraphically, ascending. template class lexicographic - : public std::binary_function, std::pair, bool> { protected: Comparator& m_comp; @@ -60,7 +59,6 @@ public: //! Compare a pair of types lexcigraphically, descending. template class lexicographic_rev - : public std::binary_function, std::pair, bool> { protected: Comparator& m_comp; diff --git a/lib/io/wbtl_file.cpp b/lib/io/wbtl_file.cpp index 310d76a..5f1a766 100644 --- a/lib/io/wbtl_file.cpp +++ b/lib/io/wbtl_file.cpp @@ -304,7 +304,7 @@ wbtl_file::offset_type wbtl_file::get_next_write_block() // mapping_lock has to be aquired by caller sortseq::iterator space = std::find_if(free_space.begin(), free_space.end(), - bind2nd(FirstFit(), write_block_size) _STXXL_FORCE_SEQUENTIAL); + std::bind(FirstFit(), std::placeholders::_1, write_block_size) _STXXL_FORCE_SEQUENTIAL); if (space != free_space.end()) { ================================================ FILE: ports/stxxl/fix-include-dir.patch ================================================ diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 06f9e50a..281e1f04 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -94,6 +94,8 @@ if(BUILD_SHARED_LIBS) add_library(stxxl SHARED ${LIBSTXXL_SOURCES}) set_target_properties(stxxl PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}") set_target_properties(stxxl PROPERTIES VERSION "${STXXL_VERSION_STRING}") + target_include_directories(stxxl PUBLIC $) + install(TARGETS stxxl EXPORT stxxl-targets ARCHIVE DESTINATION ${INSTALL_LIB_DIR} @@ -104,6 +106,8 @@ if(BUILD_SHARED_LIBS) add_library(stxxl_static STATIC ${LIBSTXXL_SOURCES}) set_target_properties(stxxl_static PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}") set_target_properties(stxxl_static PROPERTIES VERSION "${STXXL_VERSION_STRING}") + target_include_directories(stxxl_static PUBLIC $) + install(TARGETS stxxl_static EXPORT stxxl-targets ARCHIVE DESTINATION ${INSTALL_LIB_DIR}) @@ -122,6 +126,8 @@ else() add_library(stxxl STATIC ${LIBSTXXL_SOURCES}) set_target_properties(stxxl PROPERTIES OUTPUT_NAME "${STXXL_LIBNAME}") set_target_properties(stxxl PROPERTIES VERSION "${STXXL_VERSION_STRING}") + target_include_directories(stxxl PUBLIC $) + install(TARGETS stxxl EXPORT stxxl-targets ARCHIVE DESTINATION ${INSTALL_LIB_DIR} ================================================ FILE: ports/stxxl/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO stxxl/stxxl REF b9e44f0ecba7d7111fbb33f3330c3e53f2b75236 SHA512 800a8fb95b52b21256cecb848f95645c54851f4dc070e0cd64fb5009f7663c0c962a24ca3f246e54d6d45e81a5c734309268d7ea6f0b0987336a50a3dcb99616 HEAD_REF master PATCHES # This patch can be removed when stxxl/stxxl/#95 is accepted fix-include-dir.patch 0001-fix-visual-studio.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALL_CMAKE_DIR:STRING=share/${PORT} -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_EXTRAS=OFF -DUSE_BOOST=OFF -DTRY_COMPILE_HEADERS=OFF -DUSE_STD_THREADS=ON -DNO_CXX11=OFF -DUSE_VALGRIND=OFF -DUSE_MALLOC_COUNT=OFF -DUSE_GCOV=OFF -DUSE_TPIE=OFF OPTIONS_DEBUG -DSTXXL_DEBUG_ASSERTIONS=ON OPTIONS_RELEASE -DSTXXL_DEBUG_ASSERTIONS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup() vcpkg_copy_tools(TOOL_NAMES stxxl_tool AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/stxxl/vcpkg.json ================================================ { "name": "stxxl", "version-date": "2018-11-15", "port-version": 9, "description": "Standard Template Library for Extra Large Data Sets", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/subversion/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO apache/subversion REF f9f57162357a0be89f4e07bf0c011b7c3c79e453 SHA512 e7329594a793625aa2bde8016b81fbf899e95b69a678fef244f621808dd2685e5ff39b39dc1775fb86e2ce8356d09821aa3e6f89159b2f6d17eff86c1de65a80 HEAD_REF trunk ) vcpkg_find_acquire_program(PYTHON3) vcpkg_execute_required_process( COMMAND "${PYTHON3}" gen-make.py -t cmake WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME gen-make-${TARGET_TRIPLET} ) if (VCPKG_HOST_IS_LINUX) set(SVN_USE_PKG_CONFIG ON) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") else() set(SVN_USE_PKG_CONFIG OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSVN_USE_PKG_CONFIG="${SVN_USE_PKG_CONFIG}" ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES svn svnadmin svnbench svndumpfilter svnfsfs svnlook svnmucc svnrdump svnserve svnsync svnversion AUTO_CLEAN ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file( INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-subversion-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-subversion" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/subversion/unofficial-subversion-config.cmake ================================================ include(CMakeFindDependencyMacro) find_package(apr CONFIG QUIET) if(NOT apr_FOUND AND NOT WIN32) find_package(PkgConfig REQUIRED) pkg_check_modules(APR REQUIRED IMPORTED_TARGET apr-1) endif() find_path(SUBVERSION_INCLUDE_DIR NAMES svn_client.h PATH_SUFFIXES subversion-1 HINTS "${CMAKE_CURRENT_LIST_DIR}/../../include" ) set(_subversion_libs svn_client svn_delta svn_diff svn_fs svn_fs_fs svn_fs_util svn_fs_x svn_ra svn_ra_local svn_ra_serf svn_ra_svn svn_repos svn_subr svn_wc ) get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) find_library(_SERF_LIBRARY_RELEASE NAMES serf-1 libserf-1 PATHS "${_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) find_library(_SERF_LIBRARY_DEBUG NAMES serf-1 libserf-1 PATHS "${_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH) find_library(_APR_UTIL_LIBRARY_RELEASE NAMES aprutil-1 libaprutil-1 PATHS "${_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH) find_library(_APR_UTIL_LIBRARY_DEBUG NAMES aprutil-1 libaprutil-1 PATHS "${_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH) foreach(_lib ${_subversion_libs}) find_library(SUBVERSION_${_lib}_LIBRARY_RELEASE NAMES ${_lib}-1.a ${_lib}-1 lib${_lib}-1.a lib${_lib}-1 PATHS "${_IMPORT_PREFIX}/lib" NO_DEFAULT_PATH ) find_library(SUBVERSION_${_lib}_LIBRARY_DEBUG NAMES ${_lib}-1.a ${_lib}-1 lib${_lib}-1.a lib${_lib}-1 ${_lib}-1d.a ${_lib}-1d lib${_lib}-1d.a lib${_lib}-1d PATHS "${_IMPORT_PREFIX}/debug/lib" NO_DEFAULT_PATH ) if(SUBVERSION_${_lib}_LIBRARY_RELEASE OR SUBVERSION_${_lib}_LIBRARY_DEBUG) add_library(unofficial::subversion::${_lib} UNKNOWN IMPORTED) if(SUBVERSION_${_lib}_LIBRARY_RELEASE) set_property(TARGET unofficial::subversion::${_lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_target_properties(unofficial::subversion::${_lib} PROPERTIES IMPORTED_LOCATION_RELEASE "${SUBVERSION_${_lib}_LIBRARY_RELEASE}" ) endif() if(SUBVERSION_${_lib}_LIBRARY_DEBUG) set_property(TARGET unofficial::subversion::${_lib} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_target_properties(unofficial::subversion::${_lib} PROPERTIES IMPORTED_LOCATION_DEBUG "${SUBVERSION_${_lib}_LIBRARY_DEBUG}" ) endif() set_target_properties(unofficial::subversion::${_lib} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${SUBVERSION_INCLUDE_DIR}" ) if(TARGET apr::libapr-1) target_link_libraries(unofficial::subversion::${_lib} INTERFACE apr::libapr-1) elseif(TARGET apr::apr-1) target_link_libraries(unofficial::subversion::${_lib} INTERFACE apr::apr-1) elseif(TARGET PkgConfig::APR) target_link_libraries(unofficial::subversion::${_lib} INTERFACE PkgConfig::APR) endif() if(NOT BUILD_SHARED_LIBS) find_dependency(OpenSSL REQUIRED) find_dependency(ZLIB REQUIRED) find_dependency(expat CONFIG REQUIRED) find_dependency(unofficial-sqlite3 CONFIG REQUIRED) target_link_libraries(unofficial::subversion::${_lib} INTERFACE OpenSSL::SSL OpenSSL::Crypto ZLIB::ZLIB expat::expat unofficial::sqlite3::sqlite3 ) if(_SERF_LIBRARY_RELEASE OR _SERF_LIBRARY_DEBUG) target_link_libraries(unofficial::subversion::${_lib} INTERFACE "$,${_SERF_LIBRARY_DEBUG},${_SERF_LIBRARY_RELEASE}>" ) endif() if(_APR_UTIL_LIBRARY_RELEASE OR _APR_UTIL_LIBRARY_DEBUG) target_link_libraries(unofficial::subversion::${_lib} INTERFACE "$,${_APR_UTIL_LIBRARY_DEBUG},${_APR_UTIL_LIBRARY_RELEASE}>" ) endif() if(WIN32) target_link_libraries(unofficial::subversion::${_lib} INTERFACE crypt32 ws2_32 version secur32) endif() endif() endif() endforeach() if(TARGET unofficial::subversion::svn_client) target_link_libraries(unofficial::subversion::svn_client INTERFACE unofficial::subversion::svn_wc unofficial::subversion::svn_ra unofficial::subversion::svn_delta unofficial::subversion::svn_diff unofficial::subversion::svn_subr ) endif() if(TARGET unofficial::subversion::svn_wc) target_link_libraries(unofficial::subversion::svn_wc INTERFACE unofficial::subversion::svn_delta unofficial::subversion::svn_diff unofficial::subversion::svn_subr ) endif() if(TARGET unofficial::subversion::svn_ra) target_link_libraries(unofficial::subversion::svn_ra INTERFACE unofficial::subversion::svn_delta unofficial::subversion::svn_subr ) endif() if(TARGET unofficial::subversion::svn_repos) target_link_libraries(unofficial::subversion::svn_repos INTERFACE unofficial::subversion::svn_fs unofficial::subversion::svn_delta unofficial::subversion::svn_subr ) endif() if(TARGET unofficial::subversion::svn_fs) if(TARGET unofficial::subversion::svn_fs_fs) target_link_libraries(unofficial::subversion::svn_fs INTERFACE unofficial::subversion::svn_fs_fs ) endif() if(TARGET unofficial::subversion::svn_fs_x) target_link_libraries(unofficial::subversion::svn_fs INTERFACE unofficial::subversion::svn_fs_x ) endif() target_link_libraries(unofficial::subversion::svn_fs INTERFACE unofficial::subversion::svn_subr ) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(unofficial-subversion REQUIRED_VARS SUBVERSION_INCLUDE_DIR SUBVERSION_svn_client_LIBRARY_RELEASE ) mark_as_advanced(SUBVERSION_INCLUDE_DIR) unset(_IMPORT_PREFIX) unset(_subversion_libs) unset(_SERF_LIBRARY_RELEASE CACHE) unset(_SERF_LIBRARY_DEBUG CACHE) unset(_APR_UTIL_LIBRARY_RELEASE CACHE) unset(_APR_UTIL_LIBRARY_DEBUG CACHE) ================================================ FILE: ports/subversion/usage ================================================ The package subversion provides the following libraries: * libsvn_client * libsvn_delta * libsvn_diff * libsvn_fs * libsvn_fs_fs * libsvn_fs_util * libsvn_fs_x * libsvn_ra * libsvn_ra_local * libsvn_ra_serf * libsvn_ra_svn * libsvn_repos * libsvn_subr * libsvn_wc To use the libraries in your CMake project: find_package(unofficial-subversion CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::subversion::svn_client) Or link directly against the libraries you need. ================================================ FILE: ports/subversion/vcpkg.json ================================================ { "name": "subversion", "version-date": "2025-12-23", "port-version": 1, "description": "Apache Subversion (SVN) - Enterprise-class centralized version control system", "homepage": "https://subversion.apache.org/", "license": "Apache-2.0", "supports": "!uwp & !mingw & !android", "dependencies": [ "apr", "apr-util", "expat", "openssl", "serf", "sqlite3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python", "host": true }, "zlib" ] } ================================================ FILE: ports/suitesparse/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/suitesparse/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse", "version-semver": "7.8.3", "description": "A suite of sparse matrix algorithms", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": null, "dependencies": [ "suitesparse-amd", "suitesparse-btf", "suitesparse-camd", "suitesparse-ccolamd", "suitesparse-cholmod", "suitesparse-colamd", "suitesparse-config", "suitesparse-cxsparse", "suitesparse-graphblas", "suitesparse-klu", "suitesparse-lagraph", "suitesparse-ldl", "suitesparse-spex" ], "features": { "cuda": { "description": "Enable CUDA support for the current compute architecture of this machine", "dependencies": [ { "name": "suitesparse-cholmod", "features": [ "cuda" ] }, { "name": "suitesparse-spqr", "features": [ "cuda" ] } ] }, "gpl": { "description": "Enable GPL-licensed packages", "dependencies": [ { "name": "suitesparse-cholmod", "features": [ "matrixops", "modify", "supernodal" ] }, "suitesparse-mongoose", "suitesparse-paru", "suitesparse-rbio", "suitesparse-spqr", "suitesparse-umfpack" ] }, "openmp": { "description": "Enable OpenMP support for SuiteSparse libraries", "dependencies": [ { "name": "suitesparse-cholmod", "features": [ "openmp" ] }, { "name": "suitesparse-config", "features": [ "openmp" ] }, { "name": "suitesparse-graphblas", "features": [ "openmp" ] }, { "name": "suitesparse-lagraph", "features": [ "openmp" ] }, { "name": "suitesparse-paru", "features": [ "openmp" ], "platform": "!windows" }, { "name": "suitesparse-spex", "features": [ "openmp" ] } ] } } } ================================================ FILE: ports/suitesparse-amd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME AMD) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-amd/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-amd", "version-semver": "3.3.3", "description": "AMD: Routines for permuting sparse matrices prior to factorization in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "BSD-3-Clause", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-btf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME BTF) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt" "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/lesser.txt" ) ================================================ FILE: ports/suitesparse-btf/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-btf", "version-semver": "2.3.2", "description": "BTF: Software package for permuting a matrix into block upper triangular form in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "LGPL-2.1-or-later", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-camd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME CAMD) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-camd/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-camd", "version-semver": "3.3.3", "description": "AMD: Routines for permuting sparse matrices prior to factorization in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "BSD-3-Clause", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-ccolamd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME CCOLAMD) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-ccolamd/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-ccolamd", "version-semver": "3.3.4", "description": "CCOLAMD: Routines for constrained column approximate minimum degree ordering algorithm in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "BSD-3-Clause", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-cholmod/001-dont-override-cuda-architectures.patch ================================================ Respect CMAKE_CUDA_ARCHITECTURES, so they can be set by the user in the triplet file. Also make the CUDA warnings fatal since we are always strictly enabling/disabling CUDA. --- a/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake +++ b/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake @@ -321,7 +321,7 @@ if ( SUITESPARSE_USE_CUDA ) # try finding CUDA - check_language ( CUDA ) + enable_language ( CUDA ) # message ( STATUS "Looking for CUDA" ) if ( CMAKE_CUDA_COMPILER ) # with CUDA: @@ -334,7 +334,7 @@ message ( STATUS "CUDA toolkit lib: " ${CUDAToolkit_LIBRARY_DIR} ) if ( CUDAToolkit_VERSION VERSION_LESS "11.2" ) # CUDA is present but too old - message ( STATUS "CUDA: not enabled (CUDA 11.2 or later required)" ) + message ( FATAL_ERROR "CUDA 11.2 or later is required" ) set ( SUITESPARSE_HAS_CUDA OFF ) else ( ) # CUDA 11.2 or later present @@ -343,7 +343,7 @@ endif ( ) else ( ) # without CUDA: - message ( STATUS "CUDA: not found" ) + message ( FATAL_ERROR "CUDA not found" ) set ( SUITESPARSE_HAS_CUDA OFF ) endif ( ) @@ -354,13 +354,6 @@ endif ( ) -if ( SUITESPARSE_HAS_CUDA ) - message ( STATUS "CUDA: enabled" ) - set ( SUITESPARSE_CUDA_ARCHITECTURES "52;75;80" CACHE STRING "CUDA architectures" ) - set ( CMAKE_CUDA_ARCHITECTURES ${SUITESPARSE_CUDA_ARCHITECTURES} ) -else ( ) - message ( STATUS "CUDA: not enabled" ) -endif ( ) # check for strict usage if ( SUITESPARSE_USE_STRICT AND SUITESPARSE_USE_CUDA AND NOT SUITESPARSE_HAS_CUDA ) ================================================ FILE: ports/suitesparse-cholmod/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev PATCHES 001-dont-override-cuda-architectures.patch ) set(PACKAGE_NAME CHOLMOD) configure_file( "${CURRENT_INSTALLED_DIR}/share/suitesparse/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda CHOLMOD_USE_CUDA cuda SUITESPARSE_USE_CUDA matrixops CHOLMOD_MATRIXOPS modify CHOLMOD_MODIFY partition CHOLMOD_PARTITION supernodal CHOLMOD_SUPERNODAL openmp CHOLMOD_USE_OPENMP ) set(GPL_ENABLED OFF) if(CHOLMOD_MATRIXOPS OR CHOLMOD_MODIFY OR CHOLMOD_SUPERNODAL OR CUDA_ENABLED) set(GPL_ENABLED ON) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DCHOLMOD_GPL=${GPL_ENABLED} -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF -DSUITESPARSE_USE_64BIT_BLAS=1 ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-cholmod/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-cholmod", "version-semver": "5.3.0", "description": "CHOLMOD: Routines for factorizing sparse symmetric positive definite matrices in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "LGPL-2.1-or-later AND Apache-2.0", "dependencies": [ "suitesparse-amd", "suitesparse-camd", "suitesparse-ccolamd", "suitesparse-colamd", "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "partition" ], "features": { "cuda": { "description": "Enable CUDA support for the current compute architecture of this machine", "supports": "!(windows & static)", "license": "GPL-2.0-or-later AND LGPL-2.1-or-later AND Apache-2.0", "dependencies": [ "cuda", { "name": "suitesparse-cholmod", "features": [ "matrixops" ] } ] }, "matrixops": { "description": "Build MatrixOps module", "license": "GPL-2.0-or-later AND LGPL-2.1-or-later AND Apache-2.0" }, "modify": { "description": "Build Modify module", "license": "GPL-2.0-or-later AND LGPL-2.1-or-later AND Apache-2.0" }, "openmp": { "description": "Enable OpenMP support", "dependencies": [ { "name": "suitesparse-config", "features": [ "openmp" ] } ] }, "partition": { "description": "Build Partition module" }, "supernodal": { "description": "Build SuperNodal module", "license": "GPL-2.0-or-later AND LGPL-2.1-or-later AND Apache-2.0", "dependencies": [ "lapack" ] } } } ================================================ FILE: ports/suitesparse-colamd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME COLAMD) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-colamd/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-colamd", "version-semver": "3.3.4", "description": "COLAMD: Routines for column approximate minimum degree ordering algorithm in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "BSD-3-Clause", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-config/SuiteSparseBLAS.cmake ================================================ find_package(BLAS REQUIRED) set(BLA_SIZEOF_INTEGER 4) set(SuiteSparse_BLAS_integer int32_t) if(WIN32) # OpenBLAS includes an underscore suffix on Windows for all of its symbols. # This is not detected automatically by SuiteSparse or FindBLAS and needs to be set manually. add_compile_definitions(BLAS64__SUFFIX=_) endif() ================================================ FILE: ports/suitesparse-config/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME SuiteSparse_config) # Avoid overriding of BLA_VENDOR and skip straight to find_package() as done here # https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v7.8.1/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake#L240-L245 configure_file( "${CMAKE_CURRENT_LIST_DIR}/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp SUITESPARSE_USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF # not applicable here, skip check -DSUITESPARSE_USE_STRICT=ON # don't allow implicit dependencies -DSUITESPARSE_USE_FORTRAN=OFF # use Fortran sources translated to C instead -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() # Move SuiteSparseBLAS.cmake, SuiteSparsePolicy.cmake etc files file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share") file(RENAME "${CURRENT_PACKAGES_DIR}/lib/cmake/SuiteSparse" "${CURRENT_PACKAGES_DIR}/share/suitesparse") vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/suitesparse-config/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-config", "version-semver": "7.8.3", "description": "Configuration for SuiteSparse libraries", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "BSD-3-Clause", "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support (in SuiteSparse_config only)" } } } ================================================ FILE: ports/suitesparse-cxsparse/001-detect-complex-support.patch ================================================ Android API level 22 and earlier don't provide any complex-valued math functions in complex.h, which are required for complex data type support in CXSparse. --- a/CXSparse/CMakeLists.txt +++ b/CXSparse/CMakeLists.txt @@ -45,7 +45,7 @@ # MS Visual Studio does not support the complex type for ANSI C11. # FIXME: see GraphBLAS for how to use complex types in MS Visual Studio. -if ( MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC") ) +if ( MSVC OR CMAKE_C_SIMULATE_ID STREQUAL "MSVC" OR (CMAKE_SYSTEM_NAME STREQUAL "Android" AND CMAKE_SYSTEM_VERSION VERSION_LESS 23) ) option ( CXSPARSE_USE_COMPLEX "ON: complex data type enabled. OFF (default): complex data type disabled." OFF ) else ( ) option ( CXSPARSE_USE_COMPLEX "ON (default): complex data type enabled. OFF: complex data type disabled." ON ) ================================================ FILE: ports/suitesparse-cxsparse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev PATCHES 001-detect-complex-support.patch ) set(PACKAGE_NAME CXSparse) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt" "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/lesser.txt" ) ================================================ FILE: ports/suitesparse-cxsparse/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-cxsparse", "version-semver": "4.4.1", "description": "CXSparse: Software package for permuting a matrix into block upper triangular form in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "LGPL-2.1-or-later", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-graphblas/crossbuild.diff ================================================ diff --git a/JITpackage/CMakeLists.txt b/JITpackage/CMakeLists.txt index 64492a1..bd15dd0 100644 --- a/JITpackage/CMakeLists.txt +++ b/JITpackage/CMakeLists.txt @@ -13,7 +13,10 @@ project ( jitpackage LANGUAGES C ) set ( GRAPHBLAS_CROSS_TOOLCHAIN_FLAGS_NATIVE "" CACHE STRING "list of configuration flags used for building native generator binaries when cross-compiling" ) -if ( CMAKE_CROSSCOMPILING ) +if (GRB_JITPACKAGE_EXECUTABLE) + add_executable(grb_jitpackage IMPORTED) + set_target_properties(grb_jitpackage PROPERTIES IMPORTED_LOCATION "${GRB_JITPACKAGE_EXECUTABLE}") +elseif (0) cmake_path ( GET PROJECT_BINARY_DIR FILENAME _subdir ) if ( ${_subdir} STREQUAL "native" ) @@ -60,6 +63,7 @@ else ( ) if ( NOT WIN32 ) target_link_libraries ( grb_jitpackage PRIVATE m ) endif ( ) + install(TARGETS grb_jitpackage) # Generate an import target to be able to run the native executable when # cross-compiling. ================================================ FILE: ports/suitesparse-graphblas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/GraphBLAS REF v${VERSION} SHA512 b43b3dc34e392a39de7112133e061ee5831017dde2f1cbfad7381abbbc0123740deb319b877ad891c5674caa0bdf0d5c7966780107dfad28eb89735af5bd8840 HEAD_REF stable PATCHES crossbuild.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp GRAPHBLAS_USE_OPENMP INVERTED_FEATURES precompiled GRAPHBLAS_COMPACT ) if(VCPKG_CROSSCOMPILING) list(APPEND FEATURE_OPTIONS "-DGRB_JITPACKAGE_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/grb_jitpackage${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() # Prevent JIT cache from being created at ~/.SuiteSparse by default. Only used during build. # see https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v7.8.1/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake set(ENV{GRAPHBLAS_CACHE_PATH} "${CURRENT_BUILDTREES_DIR}/cache") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF -DGRAPHBLAS_JIT_ENABLE_RELOCATE=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/GraphBLAS" PACKAGE_NAME "graphblas") vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES grb_jitpackage DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/suitesparse-graphblas/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-graphblas", "version-semver": "10.1.1", "description": "SuiteSparse:GraphBLAS: graph algorithms in the language of linear algebra", "homepage": "https://people.engr.tamu.edu/davis/GraphBLAS.html", "license": null, "dependencies": [ { "name": "suitesparse-graphblas", "host": true }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support" }, "precompiled": { "description": "Pre-compile kernels instead of using JIT compilation at runtime. Increases the library size and compile time by about 15x. Use the GRAPHBLAS_CACHE_PATH env var to set the JIT cache directory if not enabled." } } } ================================================ FILE: ports/suitesparse-klu/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME KLU) configure_file( "${CURRENT_INSTALLED_DIR}/share/suitesparse/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cholmod KLU_USE_CHOLMOD ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt" "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/lesser.txt" ) ================================================ FILE: ports/suitesparse-klu/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-klu", "version-semver": "2.3.5", "description": "KLU: Routines for solving sparse linear systems of equations in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "LGPL-2.1-or-later", "dependencies": [ "suitesparse-amd", "suitesparse-btf", "suitesparse-colamd", "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cholmod": { "description": "Build example user-ordering function using CHOLMOD", "dependencies": [ "suitesparse-cholmod" ] } } } ================================================ FILE: ports/suitesparse-lagraph/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME LAGraph) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp LAGRAPH_USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DBUILD_TESTING=OFF -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/cmake/LAGraph/FindGraphBLAS.cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/LICENSE") ================================================ FILE: ports/suitesparse-lagraph/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-lagraph", "version-semver": "1.1.4", "port-version": 1, "description": "LAGraph: Library plus test harness for collecting algorithms that use GraphBLAS", "homepage": "https://lagraph.readthedocs.io/en/latest/", "license": "BSD-2-Clause", "dependencies": [ "suitesparse-graphblas", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support", "dependencies": [ { "name": "suitesparse-graphblas", "features": [ "openmp" ] } ] } } } ================================================ FILE: ports/suitesparse-ldl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME LDL) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt" "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/lesser.txt" ) ================================================ FILE: ports/suitesparse-ldl/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-ldl", "version-semver": "3.3.2", "description": "LDL: A sparse LDL' factorization and solve package in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "LGPL-2.1-or-later", "dependencies": [ "suitesparse-amd", "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-mongoose/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Mongoose" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Python=ON # Only used for tests ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME SuiteSparse_Mongoose CONFIG_PATH lib/cmake/SuiteSparse_Mongoose ) vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES suitesparse_mongoose AUTO_CLEAN) if (NOT "tools" IN_LIST FEATURES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Mongoose/Doc/License.txt") ================================================ FILE: ports/suitesparse-mongoose/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-mongoose", "version-semver": "3.3.4", "description": "Mongoose: Graph partitioning library in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-3.0-only", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build suitesparse_mongoose CLI tool" } } } ================================================ FILE: ports/suitesparse-paru/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME ParU) configure_file( "${CURRENT_INSTALLED_DIR}/share/suitesparse/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp SUITESPARSE_USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/LICENSE.txt") ================================================ FILE: ports/suitesparse-paru/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-paru", "version-semver": "1.0.0", "description": "ParU: Routines for solving sparse linear system via parallel multifrontal LU factorization algorithms in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-3.0-or-later", "dependencies": [ "suitesparse-cholmod", "suitesparse-config", "suitesparse-umfpack", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support", "supports": "!windows", "dependencies": [ { "name": "suitesparse-config", "features": [ "openmp" ] } ] } } } ================================================ FILE: ports/suitesparse-rbio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME RBio) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-rbio/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-rbio", "version-semver": "4.3.4", "description": "RBio: routines for reading/writing sparse matrices in Rutherford/Boeing format in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-2.0-or-later", "dependencies": [ "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/suitesparse-spex/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME SPEX) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp SUITESPARSE_USE_OPENMP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/cmake/SPEX/FindGMP.cmake" "${CURRENT_PACKAGES_DIR}/share/cmake/SPEX/FindMPFR.cmake" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/LICENSE.txt") ================================================ FILE: ports/suitesparse-spex/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-spex", "version-semver": "3.2.1", "description": "SPEX: Software package for SParse EXact algebra in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-2.0-or-later OR LGPL-3.0-or-later", "dependencies": [ "gmp", "mpfr", "suitesparse-amd", "suitesparse-colamd", "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support", "dependencies": [ { "name": "suitesparse-config", "features": [ "openmp" ] } ] } } } ================================================ FILE: ports/suitesparse-spqr/001-dont-override-cuda-architectures.patch ================================================ Respect CMAKE_CUDA_ARCHITECTURES, so they can be set by the user in the triplet file. Also make the CUDA warnings fatal since we are always strictly enabling/disabling CUDA. --- a/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake +++ b/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake @@ -321,7 +321,7 @@ if ( SUITESPARSE_USE_CUDA ) # try finding CUDA - check_language ( CUDA ) + enable_language ( CUDA ) # message ( STATUS "Looking for CUDA" ) if ( CMAKE_CUDA_COMPILER ) # with CUDA: @@ -334,7 +334,7 @@ message ( STATUS "CUDA toolkit lib: " ${CUDAToolkit_LIBRARY_DIR} ) if ( CUDAToolkit_VERSION VERSION_LESS "11.2" ) # CUDA is present but too old - message ( STATUS "CUDA: not enabled (CUDA 11.2 or later required)" ) + message ( FATAL_ERROR "CUDA 11.2 or later is required" ) set ( SUITESPARSE_HAS_CUDA OFF ) else ( ) # CUDA 11.2 or later present @@ -343,7 +343,7 @@ endif ( ) else ( ) # without CUDA: - message ( STATUS "CUDA: not found" ) + message ( FATAL_ERROR "CUDA not found" ) set ( SUITESPARSE_HAS_CUDA OFF ) endif ( ) @@ -354,13 +354,6 @@ endif ( ) -if ( SUITESPARSE_HAS_CUDA ) - message ( STATUS "CUDA: enabled" ) - set ( SUITESPARSE_CUDA_ARCHITECTURES "52;75;80" CACHE STRING "CUDA architectures" ) - set ( CMAKE_CUDA_ARCHITECTURES ${SUITESPARSE_CUDA_ARCHITECTURES} ) -else ( ) - message ( STATUS "CUDA: not enabled" ) -endif ( ) # check for strict usage if ( SUITESPARSE_USE_STRICT AND SUITESPARSE_USE_CUDA AND NOT SUITESPARSE_HAS_CUDA ) ================================================ FILE: ports/suitesparse-spqr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev PATCHES 001-dont-override-cuda-architectures.patch ) set(PACKAGE_NAME SPQR) configure_file( "${CURRENT_INSTALLED_DIR}/share/suitesparse/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda SPQR_USE_CUDA cuda SUITESPARSE_USE_CUDA ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DCMAKE_CUDA_ARCHITECTURES=${CUDA_ARCHITECTURES} -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if("cuda" IN_LIST FEATURES) vcpkg_cmake_config_fixup( PACKAGE_NAME SuiteSparse_GPURuntime CONFIG_PATH lib/cmake/SuiteSparse_GPURuntime DO_NOT_DELETE_PARENT_CONFIG_PATH ) vcpkg_cmake_config_fixup( PACKAGE_NAME GPUQREngine CONFIG_PATH lib/cmake/GPUQREngine DO_NOT_DELETE_PARENT_CONFIG_PATH ) endif() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-spqr/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-spqr", "version-semver": "4.3.4", "description": "SPQR: Multithreaded, multifrontal, rank-revealing sparse QR factorization method in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-2.0-or-later", "dependencies": [ "lapack", { "name": "suitesparse-cholmod", "features": [ "supernodal" ] }, "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Enable CUDA support for the current compute architecture of this machine", "dependencies": [ "cuda" ] } } } ================================================ FILE: ports/suitesparse-umfpack/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DrTimothyAldenDavis/SuiteSparse REF v7.8.3 SHA512 fc0fd0aaf55a6712a3b8ca23bf7536a31d52033e090370ebbf291f05d0e073c7dcfd991a80b037f54663f524804582b87af86522c2e4435091527f0d3c189244 HEAD_REF dev ) set(PACKAGE_NAME UMFPACK) configure_file( "${CURRENT_INSTALLED_DIR}/share/suitesparse/SuiteSparseBLAS.cmake" "${SOURCE_PATH}/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake" COPYONLY ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cholmod UMFPACK_USE_CHOLMOD ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/${PACKAGE_NAME}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME ${PACKAGE_NAME} CONFIG_PATH lib/cmake/${PACKAGE_NAME} ) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/${PACKAGE_NAME}/Doc/License.txt") ================================================ FILE: ports/suitesparse-umfpack/vcpkg.json ================================================ { "$comment": "Use scripts/update_suitesparse.py to update all SuiteSparse ports", "name": "suitesparse-umfpack", "version-semver": "6.3.5", "description": "UMFPACK: Routines solving sparse linear systems via LU factorization in SuiteSparse", "homepage": "https://people.engr.tamu.edu/davis/suitesparse.html", "license": "GPL-2.0-or-later", "dependencies": [ "suitesparse-amd", "suitesparse-config", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "cholmod" ], "features": { "cholmod": { "description": "Use CHOLMOD", "dependencies": [ "suitesparse-cholmod" ] } } } ================================================ FILE: ports/sundials/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LLNL/sundials REF "v${VERSION}" SHA512 b6d15f68f25c5326bd42abb5e3652cc98e83d2eb31b213c9144b46c5b93fd123be5972e9d36217fdd09a0002dee3f78e530c21eda85f3b4d1d8d93b007546ea0 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" SUN_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SUN_BUILD_SHARED) if(VCPKG_TARGET_IS_ANDROID) set(POSIX_TIMERS "-DSUNDIALS_POSIX_TIMERS=TRUE") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${POSIX_TIMERS} -D_BUILD_EXAMPLES=OFF -DSUNDIALS_TEST_UNITTESTS=OFF -DBUILD_STATIC_LIBS=${SUN_BUILD_STATIC} -DBUILD_SHARED_LIBS=${SUN_BUILD_SHARED} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") ================================================ FILE: ports/sundials/vcpkg.json ================================================ { "name": "sundials", "version-semver": "7.6.0", "description": "SUNDIALS (SUite of Nonlinear and DIfferential/ALgebraic equation Solvers)", "homepage": "https://computing.llnl.gov/projects/sundials", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/superglu/change-output-name.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,6 +124,7 @@ endif() set_target_properties(GLU PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${SUPERGLU_SO_VERSION}) +set_target_properties(GLU PROPERTIES OUTPUT_NAME "superglu") target_compile_definitions(GLU PRIVATE HAVE_CONFIG_H LIBRARYBUILD GLU_INTERNAL GLU_DEBUG=$) ================================================ FILE: ports/superglu/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO coin3d/superglu REF "v${VERSION}" SHA512 ff1edb95192b4593e99106bf5d7fe30aabd8e42b21a6a02b2dcb2431b1388d87e7c1186a2291047f8a10897e872329e8dd993e89414e4d88f2e9e95c6a74fd52 HEAD_REF master PATCHES change-output-name.patch ) vcpkg_find_acquire_program(PERL) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSUPERGLU_BUILD_SHARED_LIBS=OFF "-DPERL_EXECUTABLE=${PERL}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/superglu-${VERSION}) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/superglu/usage ================================================ The package superglu provides CMake targets: find_package(superglu CONFIG REQUIRED) target_link_libraries(main PRIVATE superglu::GLU) ================================================ FILE: ports/superglu/vcpkg.json ================================================ { "name": "superglu", "version": "1.3.3", "description": "SGI GLU with miscellaneous fixes", "homepage": "https://github.com/coin3d/superglu", "license": "SGI-B-1.1", "supports": "windows & !uwp", "dependencies": [ "opengl-registry", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/superlu/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xiaoyeli/superlu REF "v${VERSION}" SHA512 d2b35ccfd4bee6f5967a1a65edc07d32a7d842aa3f623494de78cf69dc5f4819d82f675d6b2aec035fcbca0a8a3966ab76fa105e6162e8242eb6a56870e41cba HEAD_REF master PATCHES remove-make.inc.patch superfluous-configure.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DXSDK_ENABLE_Fortran=OFF -Denable_tests=OFF -Denable_internal_blaslib=OFF -Denable_doc=OFF -Denable_examples=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License.txt") ================================================ FILE: ports/superlu/remove-make.inc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d059e89..fb0fb46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,6 @@ add_subdirectory(DOC) # file(WRITE "make.defs" "# can be exposed to users" # ${CMAKE_C_COMPILER} ) # configure_file(${CMAKE_SOURCE_DIR}/make.inc.in ${CMAKE_SOURCE_DIR}/make.inc) -configure_file(${SuperLU_SOURCE_DIR}/make.inc.in ${SuperLU_SOURCE_DIR}/make.inc) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/superlu.pc.in ${CMAKE_CURRENT_BINARY_DIR}/superlu.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/superlu.pc ================================================ FILE: ports/superlu/superfluous-configure.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index fb0fb46..772f56c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -240,7 +240,6 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/superlu.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) configure_file(${SuperLU_SOURCE_DIR}/SRC/superlu_config.h.in ${SuperLU_BINARY_DIR}/SRC/superlu_config.h) -configure_file(${SuperLU_SOURCE_DIR}/SRC/superlu_config.h.in ${SuperLU_SOURCE_DIR}/SRC/superlu_config.h) # Following is to configure a header file for FORTRAN code configure_file(${SuperLU_SOURCE_DIR}/SRC/superlu_config.h.in ${SuperLU_BINARY_DIR}/FORTRAN/superlu_config.h) ================================================ FILE: ports/superlu/vcpkg.json ================================================ { "name": "superlu", "version": "7.0.0", "description": "Supernodal sparse direct solver.", "homepage": "https://github.com/xiaoyeli/superlu", "license": "BSD-3-Clause-LBNL", "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/supernovas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Smithsonian/SuperNOVAS REF "v${VERSION}" SHA512 e1557fbe8e4550fc4c669e4cb7219069bce874942b47ae48edd769badcd548b6f9210f9243766ba3ae41b9cd3a3f33673e90c687d916a8934491ad3d380e9dad HEAD_REF main ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES solsys-calceph ENABLE_CALCEPH ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/supernovas/vcpkg.json ================================================ { "name": "supernovas", "version": "1.5.1", "description": "SuperNOVAS C/C++ high-precision astrometry library", "homepage": "https://smithsonian.github.io/SuperNOVAS/", "documentation": "https://smithsonian.github.io/SuperNOVAS/doc/html/", "license": "Unlicense", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "solsys-calceph": { "description": "Solar-system ephemeris support via the CALCEPH library", "supports": "!uwp", "dependencies": [ "calceph" ] } } } ================================================ FILE: ports/sushant-wayal-stringhash/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sushant-wayal/stringhash REF v1.1.0 SHA512 AA87E56BA37AD0155307376C2778E327D37F7B6E26C67A83796B9294B484E790D7403EC8C444D8D1391343A68EB03D1E358EB664E4A2DB744FD172097B68DAB5 HEAD_REF main ) # Install headers directly - they're already in the right namespace structure file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Install license file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/sushant-wayal-stringhash/vcpkg.json ================================================ { "name": "sushant-wayal-stringhash", "version": "1.1.0", "description": "A high-performance C++ header-only library for string hashing with rolling hash functionality", "homepage": "https://github.com/sushant-wayal/stringhash", "documentation": "https://github.com/sushant-wayal/stringhash#readme", "license": "MIT" } ================================================ FILE: ports/svt-av1/no-force-llvm.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 57100575..65b5b775 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,7 +200,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_OUTPUT_DIRECTORY}) set(REQUIRES_PRIVATE "") #Clang support, required to build static with LTO -if(CMAKE_C_COMPILER_ID MATCHES "Clang" AND UNIX AND NOT APPLE) +if(FALSE) find_program(LLVM_LD_EXE llvm-ld) find_program(LLVM_AR_EXE llvm-ar) find_program(LLVM_RANLIB_EXE llvm-ranlib) ================================================ FILE: ports/svt-av1/no-safestringlib.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 57100575..d1dbd6f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -528,7 +528,7 @@ set_property(DIRECTORY . $<$:HAVE_STRNCPY_S=1> $<$:HAVE_STRCPY_S=1> $<$:_WIN32_WINNT=0x0601>) -if(NOT HAVE_STRCPY_S OR NOT HAVE_STRNCPY_S OR NOT HAVE_STRNLEN_S) +if(FALSE) add_library(safestringlib OBJECT third_party/safestringlib/safeclib_private.h third_party/safestringlib/safe_lib.h ================================================ FILE: ports/svt-av1/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO AOMediaCodec/SVT-AV1 REF "v${VERSION}" SHA512 4301e923965e3bff30a0fd2f74ae023d19260f91c2361d48ea7bc1718f501dcca73fa17cb8795b23392ca1bfbe1f4d55edcbb5ce06a2fa9e41da36c5166f527d PATCHES no-force-llvm.diff no-safestringlib.diff unvendor-fastfeat.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/aom/inc/") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/aom_dsp/") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/fastfeat/") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/googletest/") file(REMOVE_RECURSE "${SOURCE_PATH}/third_party/safestringlib/") if (VCPKG_TARGET_ARCHITECTURE MATCHES "^(x86|x64)") vcpkg_find_acquire_program(NASM) set(SIMD_OPTIONS -DCOMPILE_C_ONLY=OFF "-DCMAKE_ASM_NASM_COMPILER=${NASM}") else() if(VCPKG_TARGET_ARCHITECTURE MATCHES "^(arm64|arm64ec)$" AND NOT VCPKG_TARGET_IS_WINDOWS) set(SIMD_OPTIONS -DCOMPILE_C_ONLY=OFF) else() set(SIMD_OPTIONS -DCOMPILE_C_ONLY=ON) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${SIMD_OPTIONS} -DBUILD_APPS=OFF -DREPRODUCIBLE_BUILDS=ON -DEXCLUDE_HASH=OFF -DBUILD_TESTING=OFF -DSVT_AV1_LTO=OFF "-DFASTFEAT_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/" OPTIONS_RELEASE "-DFASTFEAT_LIB_DIR=${CURRENT_INSTALLED_DIR}/lib/" "-DCMAKE_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/Bin/Release" OPTIONS_DEBUG "-DFASTFEAT_LIB_DIR=${CURRENT_INSTALLED_DIR}/debug/lib/" "-DCMAKE_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/Bin/Debug" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES SvtAv1EncApp AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/svt-av1/unvendor-fastfeat.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 57100575..47a9e709 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -721,6 +721,5 @@ if(BUILD_TESTING) add_subdirectory(third_party/googletest) endif() -add_subdirectory(third_party/fastfeat) install(DIRECTORY ${PROJECT_SOURCE_DIR}/Source/API/ DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/svt-av1" FILES_MATCHING PATTERN "*.h") diff --git a/Source/Lib/CMakeLists.txt b/Source/Lib/CMakeLists.txt index 03ffe4e2..43325e91 100644 --- a/Source/Lib/CMakeLists.txt +++ b/Source/Lib/CMakeLists.txt @@ -47,7 +47,7 @@ endif() include_directories(${PROJECT_SOURCE_DIR}/Source/API/ ${PROJECT_SOURCE_DIR}/Source/Lib/Codec/ ${PROJECT_SOURCE_DIR}/Source/Lib/C_DEFAULT/ - ${PROJECT_SOURCE_DIR}/third_party/fastfeat/) +) add_library(SvtAv1Enc) # Required for cmake to be able to tell Xcode how to link all of the object files @@ -98,7 +98,6 @@ endif() # Encoder Lib Source Files target_sources(SvtAv1Enc PRIVATE - $ $ $ $) @@ -133,6 +132,14 @@ if(common_lib_source) target_sources(SvtAv1Enc PRIVATE ${common_lib_source}) endif() +find_library(FASTFEAT REQUIRED + NAMES fastfeat + PATHS "${FASTFEAT_LIB_DIR}" + NO_DEFAULT_PATH +) +list(APPEND PLATFORM_LIBS ${FASTFEAT}) +set(LIBS_PRIVATE "${LIBS_PRIVATE} -lfastfeat") + set_target_properties(SvtAv1Enc PROPERTIES VERSION ${ENC_VERSION}) set_target_properties(SvtAv1Enc PROPERTIES SOVERSION ${ENC_VERSION_MAJOR}) set_target_properties(SvtAv1Enc PROPERTIES C_VISIBILITY_PRESET hidden) diff --git a/Source/Lib/Codec/CMakeLists.txt b/Source/Lib/Codec/CMakeLists.txt index d3e95e4f..63b32eda 100644 --- a/Source/Lib/Codec/CMakeLists.txt +++ b/Source/Lib/Codec/CMakeLists.txt @@ -39,7 +39,7 @@ include_directories(${PROJECT_SOURCE_DIR}/Source/API/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_SSE4_1/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_AVX2/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_AVX512/ - ${PROJECT_SOURCE_DIR}/third_party/fastfeat/) +) elseif(NOT COMPILE_C_ONLY AND HAVE_ARM_PLATFORM) include_directories(${PROJECT_SOURCE_DIR}/Source/API/ ${PROJECT_SOURCE_DIR}/Source/Lib/Globals/ @@ -50,14 +50,14 @@ include_directories(${PROJECT_SOURCE_DIR}/Source/API/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_NEON_I8MM/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_SVE/ ${PROJECT_SOURCE_DIR}/Source/Lib/ASM_SVE2/ - ${PROJECT_SOURCE_DIR}/third_party/fastfeat/) +) else () # Include Encoder Subdirectories include_directories(${PROJECT_SOURCE_DIR}/Source/API/ ${PROJECT_SOURCE_DIR}/Source/Lib/Globals/ ${PROJECT_SOURCE_DIR}/Source/Lib/Codec/ ${PROJECT_SOURCE_DIR}/Source/Lib/C_DEFAULT/ - ${PROJECT_SOURCE_DIR}/third_party/fastfeat/) +) endif () set(all_files @@ -292,3 +292,4 @@ set(all_files ) add_library(CODEC OBJECT ${all_files}) +target_include_directories(CODEC PRIVATE "${FASTFEAT_INCLUDE_DIR}") diff --git a/Source/Lib/Codec/corner_detect.c b/Source/Lib/Codec/corner_detect.c index 793919be..ca7e8537 100644 --- a/Source/Lib/Codec/corner_detect.c +++ b/Source/Lib/Codec/corner_detect.c @@ -18,7 +18,7 @@ #define FAST_BARRIER 18 int svt_av1_fast_corner_detect(unsigned char *buf, int width, int height, int stride, int *points, int max_points) { int num_points; - xy *const frm_corners_xy = svt_aom_fast9_detect_nonmax(buf, width, height, stride, FAST_BARRIER, &num_points); + xy *const frm_corners_xy = fast9_detect_nonmax(buf, width, height, stride, FAST_BARRIER, &num_points); num_points = (num_points <= max_points ? num_points : max_points); if (num_points > 0 && frm_corners_xy) { svt_memcpy(points, frm_corners_xy, sizeof(*frm_corners_xy) * num_points); diff --git a/Source/Lib/Globals/CMakeLists.txt b/Source/Lib/Globals/CMakeLists.txt index 47e20736..0d8e99e1 100644 --- a/Source/Lib/Globals/CMakeLists.txt +++ b/Source/Lib/Globals/CMakeLists.txt @@ -15,7 +15,6 @@ include_directories(../../../API ${PROJECT_BINARY_DIR}/Source/Lib/Codec/ ${PROJECT_SOURCE_DIR}/Source/Lib/C_DEFAULT/ - ${PROJECT_SOURCE_DIR}/third_party/fastfeat/ ) if(NOT COMPILE_C_ONLY AND HAVE_X86_PLATFORM) ================================================ FILE: ports/svt-av1/vcpkg.json ================================================ { "name": "svt-av1", "version-semver": "3.1.2", "description": "AV1 software video encoder library", "homepage": "https://gitlab.com/AOMediaCodec/SVT-AV1", "license": "BSD-3-Clause", "supports": "!x86 & !arm32 & !uwp", "dependencies": [ "fastfeat", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/swenson-sort/portfile.cmake ================================================ # header-only library, no build vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO swenson/sort REF 5820a8094e4a2ae1c88ac8f8df7735c332ee62ff # accessed on 2023-06-26 SHA512 fbe89ba5c5531f46250e2b8128ea5f1d7bac642a590a2f6e5f2cc3befa61f175b8f1fc28317377cde50357e8947ddc7ba8e0751437cf2c9fb91b7469511be15a FILE_DISAMBIGUATOR 2 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/sort.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/swenson-sort/vcpkg.json ================================================ { "name": "swenson-sort", "version-date": "2021-05-22", "description": "sort.h is an implementation of a ton of sorting algorithms in C with a user-defined type that is provided at include time.", "homepage": "https://github.com/swenson/sort", "license": "MIT" } ================================================ FILE: ports/symengine/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO symengine/symengine REF "v${VERSION}" SHA512 2b6012ed65064ff81c8828032c5a3148340582274e3604db2a43797ddbaa191520ed97da41efc2e842ba4a25326f53becc51f1e98935e8c34625bc5eaac8397f HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES arb WITH_ARB flint WITH_FLINT mpfr WITH_MPFR tcmalloc WITH_TCMALLOC llvm WITH_LLVM ) if(integer-class-flint IN_LIST FEATURES) set(INTEGER_CLASS flint) endif() if(VCPKG_TARGET_IS_UWP) set(VCPKG_C_FLAGS "${VCPKG_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE") set(VCPKG_CXX_FLAGS "${VCPKG_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINTEGER_CLASS=${INTEGER_CLASS} -DBUILD_BENCHMARKS=no -DBUILD_TESTS=no -DMSVC_WARNING_LEVEL=3 -DMSVC_USE_MT=no -DWITH_SYMENGINE_RCP=yes -DWITH_SYMENGINE_TEUCHOS=no -DWITH_SYMENGINE_THREAD_SAFE=yes ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(CONFIG_PATH CMake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/symengine/symengine_config_cling.h") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/symengine/SymEngineConfig.cmake" "${CURRENT_BUILDTREES_DIR}" "") # not used, inside if (False) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/symengine/SymEngineConfig.cmake" [[${SYMENGINE_CMAKE_DIR}/../../../include]] [[${SYMENGINE_CMAKE_DIR}/../../include]] IGNORE_UNCHANGED ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/symengine/vcpkg.json ================================================ { "name": "symengine", "version": "0.14.0", "port-version": 1, "description": "SymEngine is a fast symbolic manipulation library", "homepage": "https://github.com/symengine/symengine", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "boost-math", "boost-random", { "name": "symengine", "default-features": false, "features": [ "integer-class-flint" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "arb", "llvm", "mpfr" ], "features": { "arb": { "description": "Build with arb", "dependencies": [ { "name": "symengine", "features": [ "flint" ] } ] }, "flint": { "description": "Build with flint", "dependencies": [ "flint" ] }, "integer-class-flint": { "description": "Use flint integer class", "dependencies": [ "flint" ] }, "llvm": { "description": "Build with LLVM", "dependencies": [ { "name": "llvm", "default-features": false } ] }, "mpfr": { "description": "Build with mpfr", "dependencies": [ "mpfr" ] }, "tcmalloc": { "description": "Build with tcmalloc", "dependencies": [ "gperftools" ] } } } ================================================ FILE: ports/syscalls-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sapdragon/syscalls-cpp REF "v${VERSION}" SHA512 47709c046b1b8ce629c8aa879164b49c918150fe5c1f6e3349b12ba1ffceb99557ee2357ec324e67e66c4afb80e11067eb73e7c4aa96776515f63cf7cef2aa94 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_INCLUDEDIR=include/syscalls-cpp ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME syscalls-cpp) vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") ================================================ FILE: ports/syscalls-cpp/vcpkg.json ================================================ { "name": "syscalls-cpp", "version": "1.1.1", "description": "A modern C++20 header-only library for advanced direct system call invocation.", "homepage": "https://github.com/sapdragon/syscalls-cpp", "license": "MIT", "supports": "windows & (x64 | x86)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/systemc/install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b7815ae..86d79d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -555,7 +555,7 @@ if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) # Set the installation paths for headers, libraries, and documentation. -set (CMAKE_INSTALL_DOCDIR "share/doc/systemc" CACHE PATH +set (CMAKE_INSTALL_DOCDIR "share/systemc/doc" CACHE PATH "Documentation installation directory") # otherwise mixed-case if (INSTALL_TO_LIB_BUILD_TYPE_DIR) # Install libraries to lib-${CMAKE_BUILD_TYPE} so that different build variants @@ -584,14 +584,14 @@ if (INSTALL_LIB_TARGET_ARCH_SYMLINK AND CMAKE_HOST_UNIX) endif (INSTALL_LIB_TARGET_ARCH_SYMLINK AND CMAKE_HOST_UNIX) if (INSTALL_TO_LIB_BUILD_TYPE_DIR OR INSTALL_TO_LIB_TARGET_ARCH_DIR) - set (SystemCLanguage_INSTALL_CMAKEDIR share/cmake/SystemCLanguage CACHE PATH + set (SystemCLanguage_INSTALL_CMAKEDIR lib/cmake/SystemCLanguage CACHE PATH "CMake package configuration installation directory" FORCE) set (SystemCTLM_INSTALL_CMAKEDIR share/cmake/SystemCTLM CACHE PATH "CMake package configuration installation directory" FORCE) else (INSTALL_TO_LIB_BUILD_TYPE_DIR OR INSTALL_TO_LIB_TARGET_ARCH_DIR) - set (SystemCLanguage_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/SystemCLanguage CACHE PATH + set (SystemCLanguage_INSTALL_CMAKEDIR lib/cmake/SystemCLanguage CACHE PATH "CMake package configuration installation directory for the SystemCLanguage package.") - set (SystemCTLM_INSTALL_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/SystemCTLM CACHE PATH + set (SystemCTLM_INSTALL_CMAKEDIR share/cmake/SystemCTLM CACHE PATH "CMake package configuration installation directory for the SystemCTLM package.") endif (INSTALL_TO_LIB_BUILD_TYPE_DIR OR INSTALL_TO_LIB_TARGET_ARCH_DIR) mark_as_advanced(SystemCLanguage_INSTALL_CMAKEDIR SystemCTLM_INSTALL_CMAKEDIR) ================================================ FILE: ports/systemc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO accellera-official/systemc REF "${VERSION}" SHA512 50ebda68ef253a4ddbbafaabf2f1351a31c43e92198e161e19b63165426357b20f137c8b4b03b9f6ebfd56b2170d8ab2b256392e21e9e4ad9a4e7aa65a262d7d HEAD_REF main PATCHES install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=17 -DDISABLE_COPYRIGHT_MESSAGE=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/SystemCLanguage PACKAGE_NAME systemclanguage) vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/SystemCTLM PACKAGE_NAME systemctlm) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/sysc/packages/boost") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/sysc/packages/qt/time") file(INSTALL "${SOURCE_PATH}/NOTICE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/systemc/vcpkg.json ================================================ { "name": "systemc", "version": "3.0.2", "description": "A set of C++ classes and macros which provide an event-driven simulation kernel in C++", "homepage": "https://systemc.org/overview/systemc/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tabulate/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO p-ranav/tabulate REF v1.5 SHA512 324c9f2427d4d0e568b63fcd7bd81f4eee6743d7106af5ead134f81d637f190f77122f28cc42b9e95f7782f5058492b1903eadb44e1c3061a636b32bb93d0ed2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtabulate_BUILD_TESTS=OFF -DSAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/LICENSE.termcolor" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/tabulate/vcpkg.json ================================================ { "name": "tabulate", "version": "1.5", "description": "Table maker for modern C++", "homepage": "https://github.com/p-ranav/tabulate", "license": "MIT AND BSL-1.0 AND BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tacopie/fix-cmakelists.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,6 +26,7 @@ cmake_minimum_required(VERSION 2.8.7) set(CMAKE_MACOSX_RPATH 1) include(${CMAKE_ROOT}/Modules/ExternalProject.cmake) +include(${CMAKE_ROOT}/Modules/GenerateExportHeader.cmake) ### @@ -153,6 +154,8 @@ IF (SELECT_TIMEOUT) set_target_properties(${PROJECT} PROPERTIES COMPILE_DEFINITIONS "__TACOPIE_TIMEOUT=${SELECT_TIMEOUT}") ENDIF(SELECT_TIMEOUT) +generate_export_header(${PROJECT} EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/tacopie/utils/${PROJECT}_export.hpp) +target_include_directories(${PROJECT} PUBLIC ${CMAKE_BINARY_DIR}) ### # install @@ -164,6 +167,7 @@ install(DIRECTORY DESTINATION ${CMAKE_BINARY_DIR}/bin/) install (DIRECTORY ${CMAKE_BINARY_DIR}/lib/ DESTINATION lib USE_SOURCE_PERMISSIONS) install (DIRECTORY ${CMAKE_BINARY_DIR}/bin/ DESTINATION bin USE_SOURCE_PERMISSIONS) install (DIRECTORY ${TACOPIE_INCLUDES}/ DESTINATION include USE_SOURCE_PERMISSIONS) +install (FILES ${CMAKE_BINARY_DIR}/tacopie/utils/${PROJECT}_export.hpp DESTINATION include/tacopie/utils) ### ================================================ FILE: ports/tacopie/fix-export.patch ================================================ --- a/includes/tacopie/utils/logger.hpp +++ b/includes/tacopie/utils/logger.hpp @@ -26,6 +26,8 @@ #include #include +#include + namespace tacopie { //! @@ -161,7 +163,7 @@ private: //! variable containing the current logger //! by default, not set (no logs) //! -extern std::unique_ptr active_logger; +extern TACOPIE_EXPORT std::unique_ptr active_logger; //! //! debug logging ================================================ FILE: ports/tacopie/fix-mingw-build.patch ================================================ --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ project(${PROJECT} CXX) ### # compilation options ### -IF (WIN32) +IF (MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /O2 /bigobj") # was causing conflics with gtest build ================================================ FILE: ports/tacopie/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cpp-redis/tacopie REF 3.2.0 SHA512 079b294b537aaffe3bcf43a485c3be5b15f633c3f7c70140032d60cb010d35b76e76ef4ddd7596f6bfaf3f7edca7cb086c67552efffbf65846e725d7be54ce72 HEAD_REF master PATCHES fix-cmakelists.patch fix-export.patch fix-mingw-build.patch ) if(VCPKG_CRT_LINKAGE STREQUAL dynamic) set(MSVC_RUNTIME_LIBRARY_CONFIG "/MD") else() set(MSVC_RUNTIME_LIBRARY_CONFIG "/MT") endif() if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR NOT VCPKG_CMAKE_SYSTEM_NAME) # tacopie forcibly removes "/RTC1" in its cmake file. Because this is an ABI-sensitive flag, we need to re-add it in a form that won't be detected. set(VCPKG_CXX_FLAGS_DEBUG "${VCPKG_CXX_FLAGS_DEBUG} -RTC1") set(VCPKG_C_FLAGS_DEBUG "${VCPKG_C_FLAGS_DEBUG} -RTC1") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DMSVC_RUNTIME_LIBRARY_CONFIG=${MSVC_RUNTIME_LIBRARY_CONFIG} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tacopie/vcpkg.json ================================================ { "name": "tacopie", "version": "3.2.0", "port-version": 6, "description": "Tacopie is a TCP Client & Server C++11 library", "homepage": "https://github.com/cpp-redis/tacopie", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/taglib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taglib/taglib REF "v${VERSION}" SHA512 e7608725eb9b3ebeb3a767473efd443a8cc2c8b21ea129e93ad0e044179939c27ce63bf8fea9402718be647e284850afc67fe0ff4a8d9d3d8111ad2108767a9e HEAD_REF master ) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(WINRT_OPTIONS -DHAVE_VSNPRINTF=1 -DPLATFORM_WINRT=1) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ${WINRT_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/taglib) set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/taglib.pc") if(EXISTS "${pcfile}") vcpkg_replace_string("${pcfile}" "Requires: " "Requires: zlib" IGNORE_UNCHANGED) vcpkg_replace_string("${pcfile}" " -lz" "") endif() set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/taglib.pc") if(EXISTS "${pcfile}") vcpkg_replace_string("${pcfile}" "Requires: " "Requires: zlib" IGNORE_UNCHANGED) vcpkg_replace_string("${pcfile}" " -lz" "") endif() # remove the debug/include files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/taglib-config.cmd" "${CURRENT_PACKAGES_DIR}/debug/bin/taglib-config.cmd") # Contains absolute paths # remove bin directory for static builds (taglib creates a cmake batch file there) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/taglib/taglib_export.h" "defined(TAGLIB_STATIC)" "1") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_copy_pdbs() # copyright file file(COPY "${SOURCE_PATH}/COPYING.LGPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/taglib") file(COPY "${SOURCE_PATH}/COPYING.MPL" DESTINATION "${CURRENT_PACKAGES_DIR}/share/taglib") file(RENAME "${CURRENT_PACKAGES_DIR}/share/taglib/COPYING.LGPL" "${CURRENT_PACKAGES_DIR}/share/taglib/copyright") ================================================ FILE: ports/taglib/vcpkg.json ================================================ { "name": "taglib", "version": "2.2", "description": "TagLib Audio Meta-Data Library", "homepage": "https://taglib.org/", "license": "LGPL-2.1-only OR MPL-1.1", "dependencies": [ "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/talib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "TA-Lib/ta-lib" REF "v${VERSION}" SHA512 189702beda83f9ebe16ef7d08d8bba76068a71b63409e2e00f1a5a4a06997037d54f048778323fcc6482fe1e5ce9125314b4d4b7a12dee5d64c5b0d3879fca45 ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(LFLAG "d") else() set(LFLAG "m") endif() # Debug build if (NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}d") file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}d/gen_code") set(TALIB_SUBDIRS ta_common ta_func ta_abstract ta_libc gen_code) foreach(subdir IN LISTS TALIB_SUBDIRS) vcpkg_execute_build_process( COMMAND nmake /nologo -f Makefile WORKING_DIRECTORY "${SOURCE_PATH}/make/c${LFLAG}d/win32/msvc/${subdir}" LOGNAME build-${TARGET_TRIPLET}-dbg-${subdir} ) endforeach() file( INSTALL "${SOURCE_PATH}/lib/ta_abstract_c${LFLAG}d.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME ta_abstract.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_libc_c${LFLAG}d.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME ta_libc.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_func_c${LFLAG}d.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME ta_func.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_common_c${LFLAG}d.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib RENAME ta_common.lib ) endif() # Release build file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}r") file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}r/gen_code") set(TALIB_SUBDIRS ta_common ta_func ta_abstract ta_libc gen_code) foreach(subdir IN LISTS TALIB_SUBDIRS) vcpkg_execute_build_process( COMMAND nmake /nologo -f Makefile WORKING_DIRECTORY "${SOURCE_PATH}/make/c${LFLAG}r/win32/msvc/${subdir}" LOGNAME build-${TARGET_TRIPLET}-rel-${subdir} ) endforeach() file( INSTALL "${SOURCE_PATH}/lib/ta_abstract_c${LFLAG}r.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib RENAME ta_abstract.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_libc_c${LFLAG}r.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib RENAME ta_libc.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_func_c${LFLAG}r.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib RENAME ta_func.lib ) file( INSTALL "${SOURCE_PATH}/lib/ta_common_c${LFLAG}r.lib" DESTINATION ${CURRENT_PACKAGES_DIR}/lib RENAME ta_common.lib ) # Include files file( INSTALL "${SOURCE_PATH}/include" DESTINATION ${CURRENT_PACKAGES_DIR} PATTERN Makefile.* EXCLUDE ) file( INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/ta-lib" PATTERN Makefile.* EXCLUDE ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) else() vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) endif() # License file vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/talib/vcpkg-cmake-wrapper.cmake ================================================ get_filename_component(_prefix "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) # Header lives at: /include/ta_libc.h (Windows) or /include/ta-lib/ta_libc.h (Unix) find_path(talib_INCLUDE_DIR NAMES ta_libc.h ta-lib/ta_libc.h PATHS "${_prefix}/include" NO_DEFAULT_PATH ) # Unix-style single lib find_library(talib_LIBRARY_RELEASE NAMES ta-lib PATHS "${_prefix}/lib" NO_DEFAULT_PATH ) find_library(talib_LIBRARY_DEBUG NAMES ta-lib PATHS "${_prefix}/debug/lib" NO_DEFAULT_PATH ) set(talib_LIBRARIES_RELEASE "") set(talib_LIBRARIES_DEBUG "") if(talib_LIBRARY_RELEASE OR talib_LIBRARY_DEBUG) if(talib_LIBRARY_RELEASE) list(APPEND talib_LIBRARIES_RELEASE "${talib_LIBRARY_RELEASE}") endif() if(talib_LIBRARY_DEBUG) list(APPEND talib_LIBRARIES_DEBUG "${talib_LIBRARY_DEBUG}") endif() else() foreach(component ta_common ta_func ta_abstract ta_libc) find_library(talib_${component}_LIBRARY_RELEASE NAMES ${component} PATHS "${_prefix}/lib" NO_DEFAULT_PATH ) find_library(talib_${component}_LIBRARY_DEBUG NAMES ${component} PATHS "${_prefix}/debug/lib" NO_DEFAULT_PATH ) if(talib_${component}_LIBRARY_RELEASE) list(APPEND talib_LIBRARIES_RELEASE "${talib_${component}_LIBRARY_RELEASE}") endif() if(talib_${component}_LIBRARY_DEBUG) list(APPEND talib_LIBRARIES_DEBUG "${talib_${component}_LIBRARY_DEBUG}") endif() endforeach() endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(talib REQUIRED_VARS talib_INCLUDE_DIR talib_LIBRARIES_RELEASE ) if(talib_FOUND AND NOT TARGET talib::talib) add_library(talib::talib INTERFACE IMPORTED) set_property(TARGET talib::talib PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${talib_INCLUDE_DIR}" ) if(NOT talib_LIBRARIES_DEBUG) set(talib_LIBRARIES_DEBUG "${talib_LIBRARIES_RELEASE}") endif() target_link_libraries(talib::talib INTERFACE $<$:${talib_LIBRARIES_DEBUG}> $<$:${talib_LIBRARIES_RELEASE}> $<$:${talib_LIBRARIES_RELEASE}> $<$:${talib_LIBRARIES_RELEASE}> ) endif() ================================================ FILE: ports/talib/vcpkg.json ================================================ { "name": "talib", "version-semver": "0.6.4", "description": "TA-Lib - Technical Analysis Library", "homepage": "https://ta-lib.github.io/", "license": "BSD-2-Clause", "supports": "osx | (windows & !uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tanakh-cmdline/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE "release") # header-only port vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tanakh/cmdline REF e4cd007fb8f0314002d9a5b4d82939106e4144e4 SHA512 0d69105d79672daaf0194f15479794ab1b62c4ae270eb56e6664bc65e4cf4ebbc0d5bf76bc92ecea23fb401121165f9e8a79e39136b34ef680444208294ecf60 HEAD_REF master ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${SOURCE_PATH}/cmdline.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tanakh-cmdline" ) ================================================ FILE: ports/tanakh-cmdline/vcpkg.json ================================================ { "name": "tanakh-cmdline", "version-date": "2014-02-04", "description": "A simple, header-only command line parser for C++.", "homepage": "https://github.com/tanakh/cmdline", "license": "BSD-3-Clause" } ================================================ FILE: ports/taocpp-json/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taocpp/json REF "${VERSION}" SHA512 07909e824c8c0a3c4568a50e941dde2507ddffbd1456816e3a85d5ec9e119655604011554be8b05c0c94d19a16abd3f030d2bbebe96d65d639184aad0c720bc9 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTAOCPP_JSON_BUILD_TESTS=OFF -DTAOCPP_JSON_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/taocpp-json/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/LICENSE.double-conversion" "${SOURCE_PATH}/LICENSE.itoa" "${SOURCE_PATH}/LICENSE.ryu" ) ================================================ FILE: ports/taocpp-json/vcpkg.json ================================================ { "name": "taocpp-json", "version-semver": "1.0.0-beta.14", "description": "C++ header-only JSON library", "dependencies": [ "pegtl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tap-windows6/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO OpenVPN/tap-windows6 REF 0e30f5c13b3c7b0bdd60da915350f653e4c14d92 SHA512 88edecccd4818091f7d70b66f3dfa07146f010a064829dc971abdd0c180ce1f72db9d8f3a1c9f5b4fb3f31e7afe3eadbd7d6f7d711f698e723441d30beaf9e30 HEAD_REF master ) file(COPY ${SOURCE_PATH}/src/tap-windows.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/) file(INSTALL ${SOURCE_PATH}/COPYRIGHT.MIT DESTINATION ${CURRENT_PACKAGES_DIR}/share/tap-windows6 RENAME copyright) ================================================ FILE: ports/tap-windows6/vcpkg.json ================================================ { "name": "tap-windows6", "version": "9.21.2-0e30f5c", "port-version": 2, "description": "an NDIS 6 implementation of the TAP-Windows driver, used by OpenVPN and other apps. Note: This package only contains the headers for the driver." } ================================================ FILE: ports/task-thread-pool/find-threads.patch ================================================ diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in index 6e1cd02..712ed1b 100644 --- a/cmake/config.cmake.in +++ b/cmake/config.cmake.in @@ -1,6 +1,9 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(Threads) + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") ================================================ FILE: ports/task-thread-pool/fix-header-file-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index c155ade..319351c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,7 @@ target_include_directories( $ $) -set(HEADER_FILES task_thread_pool.hpp) +set(HEADER_FILES include/task_thread_pool.hpp) set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER "${HEADER_FILES}") ================================================ FILE: ports/task-thread-pool/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alugowski/task-thread-pool REF v${VERSION} SHA512 9ab656fe75dcdafa1fee3fe3d227e8302628894b8dc7d65f80f5d28e7b989dfe299f4f1b5d9c179f238b46b60315fc0be0ff30fdbde570c5709cf2fa4251042e HEAD_REF main PATCHES fix-header-file-path.patch find-threads.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTASK_THREAD_POOL_TEST=OFF -DTASK_THREAD_POOL_BENCH=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME task_thread_pool CONFIG_PATH share/cmake/task_thread_pool) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE-BSD.txt" "${SOURCE_PATH}/LICENSE-Boost.txt" "${SOURCE_PATH}/LICENSE-MIT.txt") ================================================ FILE: ports/task-thread-pool/vcpkg.json ================================================ { "name": "task-thread-pool", "version": "1.0.10", "description": "Fast and lightweight thread pool for C++11 and newer.", "homepage": "https://github.com/alugowski/task-thread-pool", "documentation": "https://github.com/alugowski/task-thread-pool/blob/main/README.md", "license": "BSD-2-Clause OR MIT OR BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/taskflow/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO taskflow/taskflow REF "v${VERSION}" SHA512 01da8c002774bac0e1651e32ca9cb6041ab17b78b2301f399640e0888d86fcd65657db7942e77b8a561dcefc0f137f4d698fd491d00fa1670ff85608d0e7597d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTF_BUILD_BENCHMARKS=OFF -DTF_BUILD_CUDA=OFF -DTF_BUILD_TESTS=OFF -DTF_BUILD_EXAMPLES=OFF -DCMAKE_CUDA_COMPILER=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Taskflow) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/taskflow/vcpkg.json ================================================ { "name": "taskflow", "version": "4.0.0", "port-version": 1, "description": "A General-purpose Task-parallel Programming System using Modern C++", "homepage": "https://github.com/taskflow/taskflow", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tbb/portfile.cmake ================================================ set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO oneapi-src/oneTBB REF "v${VERSION}" SHA512 fdc50589785b1949ca1dd4429bbcedb180be4b8966da5243ddd1f8e9f97310dd603681e0bb83c1d6c2d3e27932f577ef6739e4e82f3c54af147f4d6d906b39f1 HEAD_REF master PATCHES ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES hwloc TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTBB_TEST=OFF -DTBB_STRICT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/TBB") vcpkg_copy_pdbs() if(NOT VCPKG_BUILD_TYPE) if(VCPKG_TARGET_ARCHITECTURE MATCHES "^(x86|arm|wasm32)$") set(arch_suffix "32") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/tbb${arch_suffix}.pc" "-ltbb12" "-ltbb12_debug") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/tbb${arch_suffix}.pc" "-ltbb" "-ltbb_debug") endif() unset(arch_suffix) endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" # These are duplicate libraries provided on Windows -- users should use the tbb12 libraries instead "${CURRENT_PACKAGES_DIR}/lib/tbb.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/tbb_debug.lib" ) file(READ "${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake" _contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/tbb/TBBConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(Threads) ${_contents}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/tbb/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "tbb", "version": "2022.3.0", "description": "Intel's Threading Building Blocks.", "homepage": "https://github.com/oneapi-src/oneTBB", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ { "name": "hwloc", "platform": "!static & !osx & !uwp" } ], "features": { "hwloc": { "description": "Builds TBB with TBBBind support for Hybrid CPUs or NUMA architectures.", "supports": "!static & !osx & !uwp", "dependencies": [ "hwloc" ] } } } ================================================ FILE: ports/tcb-span/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tcbrindle/span REF 836dc6a0efd9849cb194e88e4aa2387436bb079b # master commit 2022-06-15 SHA512 2ab1dfd976c5411231cfe7ec971c37e0d0b321e4470bd9b2b350f79deb4428c112a6244315712724e3953be2be2251ca4f1ac13dcd7e7a5f05898523c45e6686 HEAD_REF master ) # Just a single header file( INSTALL "${SOURCE_PATH}/include/tcb/span.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tcb" ) # Handle copyright file( INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/tcb-span/vcpkg.json ================================================ { "name": "tcb-span", "version-date": "2022-06-15", "description": "Implementation of C++20's std::span for older compilers", "homepage": "https://github.com/tcbrindle/span", "license": "BSL-1.0" } ================================================ FILE: ports/tcl/force-shell-install.patch ================================================ From 85842ba83b70d99f90ee3fff8c956e82d17759f2 Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Tue, 18 Aug 2020 23:11:27 -0400 Subject: [PATCH] Remove broken exist check for shell install --- win/makefile.vc | 2 -- 1 file changed, 2 deletions(-) diff --git a/win/makefile.vc b/win/makefile.vc index f5d2f4a..6bffe32 100644 --- a/win/makefile.vc +++ b/win/makefile.vc @@ -869,10 +869,8 @@ install-binaries: @$(CPY) "$(TCLLIB)" "$(BIN_INSTALL_DIR)\" !endif @$(CPY) "$(TCLIMPLIB)" "$(LIB_INSTALL_DIR)\" -!if exist($(TCLSH)) @echo Installing $(TCLSHNAME) @$(CPY) "$(TCLSH)" "$(BIN_INSTALL_DIR)\" -!endif @echo Installing $(TCLSTUBLIBNAME) @$(CPY) "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\" -- 2.28.0.windows.1 ================================================ FILE: ports/tcl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tcltk/tcl REF 0fa6a4e5aad821a5c34fdfa070c37c3f1ffc8c8e SHA512 9d7f35309fe8b1a7c116639aaea50cc01699787c7afb432389bee2b9ad56a67034c45d90c9585ef1ccf15bdabf0951cbef86257c0c6aedbd2591bbfae3e93b76 PATCHES force-shell-install.patch ) if (VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64") set(TCL_BUILD_MACHINE_STR MACHINE=AMD64) else() set(TCL_BUILD_MACHINE_STR MACHINE=IX86) endif() # Handle features set(TCL_BUILD_OPTS OPTS=pdbs) set(TCL_BUILD_STATS STATS=none) set(TCL_BUILD_CHECKS CHECKS=none) if (VCPKG_LIBRARY_LINKAGE STREQUAL static) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},static,staticpkg) endif() if (VCPKG_CRT_LINKAGE STREQUAL dynamic) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},msvcrt) endif() if ("thrdalloc" IN_LIST FEATURES) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},thrdalloc) endif() if ("profile" IN_LIST FEATURES) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},profile) endif() if ("unchecked" IN_LIST FEATURES) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},unchecked) endif() if ("utfmax" IN_LIST FEATURES) set(TCL_BUILD_OPTS ${TCL_BUILD_OPTS},time64bit) endif() vcpkg_install_nmake( SOURCE_PATH ${SOURCE_PATH} PROJECT_SUBPATH win OPTIONS ${TCL_BUILD_MACHINE_STR} ${TCL_BUILD_STATS} ${TCL_BUILD_CHECKS} OPTIONS_DEBUG ${TCL_BUILD_OPTS},symbols INSTALLDIR=${CURRENT_PACKAGES_DIR}/debug SCRIPT_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/tools/tcl/debug/lib/tcl9.0 OPTIONS_RELEASE release ${TCL_BUILD_OPTS} INSTALLDIR=${CURRENT_PACKAGES_DIR} SCRIPT_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/tools/tcl/lib/tcl9.0 ) # Install # Note: tcl shell requires it to be in a folder adjacent to the /lib/ folder, i.e. in a /bin/ folder if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) file(GLOB_RECURSE TOOL_BIN "${CURRENT_PACKAGES_DIR}/bin/*.exe" "${CURRENT_PACKAGES_DIR}/bin/*.dll" ) file(COPY ${TOOL_BIN} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/tcl/bin/") # Remove .exes only after copying file(GLOB_RECURSE TOOL_EXES ${CURRENT_PACKAGES_DIR}/bin/*.exe ) file(REMOVE ${TOOL_EXES}) file(GLOB_RECURSE TOOLS "${CURRENT_PACKAGES_DIR}/lib/dde1.4/*" "${CURRENT_PACKAGES_DIR}/lib/nmake/*" "${CURRENT_PACKAGES_DIR}/lib/reg1.3/*" "${CURRENT_PACKAGES_DIR}/lib/tcl8/*" "${CURRENT_PACKAGES_DIR}/lib/tcl8.6/*" "${CURRENT_PACKAGES_DIR}/lib/tdbcsqlite31.1.0/*" ) foreach(TOOL ${TOOLS}) get_filename_component(DST_DIR ${TOOL} PATH) file(COPY "${TOOL}" DESTINATION ${DST_DIR}) endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/dde1.4" "${CURRENT_PACKAGES_DIR}/lib/nmake" "${CURRENT_PACKAGES_DIR}/lib/reg1.3" "${CURRENT_PACKAGES_DIR}/lib/tcl8" "${CURRENT_PACKAGES_DIR}/lib/tcl8.6" "${CURRENT_PACKAGES_DIR}/lib/tdbcsqlite31.1.0" ) file(CHMOD_RECURSE "${CURRENT_PACKAGES_DIR}/tools/tcl/lib/tcl9.0/msgs" "${CURRENT_PACKAGES_DIR}/tools/tcl/lib/tcl9.0/tzdata" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ WORLD_WRITE ) endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) file(GLOB_RECURSE TOOL_BIN "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe" "${CURRENT_PACKAGES_DIR}/debug/bin/*.dll" ) file(COPY ${TOOL_BIN} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/tcl/debug/bin/") # Remove .exes only after copying file(GLOB_RECURSE EXES "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe" ) file(REMOVE ${EXES}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/dde1.4" "${CURRENT_PACKAGES_DIR}/debug/lib/nmake" "${CURRENT_PACKAGES_DIR}/debug/lib/reg1.3" "${CURRENT_PACKAGES_DIR}/debug/lib/tcl8" "${CURRENT_PACKAGES_DIR}/debug/lib/tcl8.6" "${CURRENT_PACKAGES_DIR}/debug/lib/tdbcsqlite31.1.0" ) file(CHMOD_RECURSE "${CURRENT_PACKAGES_DIR}/tools/tcl/debug/lib/tcl9.0/msgs" "${CURRENT_PACKAGES_DIR}/tools/tcl/debug/lib/tcl9.0/tzdata" PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ WORLD_WRITE ) endif() 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") else() file(REMOVE "${SOURCE_PATH}/unix/configure") vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH unix ) vcpkg_install_make() vcpkg_fixup_pkgconfig() 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" "${CURRENT_PACKAGES_DIR}/debug/share") endif() file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/tclConfig.sh" "${CURRENT_PACKAGES_DIR}/debug/lib/tclConfig.sh") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.terms") ================================================ FILE: ports/tcl/vcpkg.json ================================================ { "name": "tcl", "version-string": "core-9-0-a1", "port-version": 8, "description": "Tcl provides a powerful platform for creating integration applications that tie together diverse applications, protocols, devices, and frameworks. When paired with the Tk toolkit, Tcl provides the fastest and most powerful way to create GUI applications that run on PCs, Unix, and Mac OS X. Tcl can also be used for a variety of web-related tasks and for creating powerful command languages for applications.", "homepage": "https://github.com/tcltk/tcl", "supports": "!android & !(windows & arm) & !uwp", "dependencies": [ "zlib" ], "features": { "profile": { "description": "Adds profiling hooks. Map file is assumed." }, "thrdalloc": { "description": "Use the thread allocator (shared global free pool)." }, "unchecked": { "description": "Allows a symbols build to not use the debug enabled runtime (msvcrt.dll not msvcrtd.dll or libcmt.lib not libcmtd.lib)." }, "utfmax": { "description": "Forces Tcl_UniChar to be a 32-bit quantity in stead of 16-bits" } } } ================================================ FILE: ports/tclap/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO tclap FILENAME "tclap-1.2.5.tar.gz" SHA512 3b5b3d76e8ff21133001f5f9589fa6ec143729909bf0b9cc9934377bce178360c161fb5c1f4c4d9e9c74b09cff3d65f1d5100e61d4a732283524a78b6f236b10 ) file(COPY "${SOURCE_PATH}/include/tclap" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tclap/vcpkg.json ================================================ { "name": "tclap", "version": "1.2.5", "description": "Templatized command-line argument parser for C++", "homepage": "https://sourceforge.net/projects/tclap/", "license": "MIT" } ================================================ FILE: ports/tcp-pubsub/fix-package-config-file.patch ================================================ diff --git a/tcp_pubsub/cmake/tcp_pubsubConfig.cmake.in b/tcp_pubsub/cmake/tcp_pubsubConfig.cmake.in index e4dd17a..553b0b1 100644 --- a/tcp_pubsub/cmake/tcp_pubsubConfig.cmake.in +++ b/tcp_pubsub/cmake/tcp_pubsubConfig.cmake.in @@ -1,4 +1,6 @@ @PACKAGE_INIT@ -INCLUDE("@PACKAGE_TCP_PUBSUB_INSTALL_CMAKE_DIR@/tcp_pubsubTargets.cmake") -find_package(Threads) +include(CMakeFindDependencyMacro) +find_dependency(Threads) + +include("${CMAKE_CURRENT_LIST_DIR}/tcp_pubsubTargets.cmake") ================================================ FILE: ports/tcp-pubsub/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eclipse-ecal/tcp_pubsub REF "v${VERSION}" SHA512 f89b9d9cdbd8e5787ac8923ec65cc2fc259e7d12269b1466a4c29657d8d466e39b95ec8b8483e975bf393f71b5c2d8f59cfd3d955e4e72d69716ec59fe0429af PATCHES "fix-package-config-file.patch" "use-ports-for-asio-and-recycle.patch" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTCP_PUBSUB_BUILD_SAMPLES=OFF -DTCP_PUBSUB_BUILD_ECAL_SAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME tcp_pubsub CONFIG_PATH lib/cmake/tcp_pubsub ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/tcp-pubsub/use-ports-for-asio-and-recycle.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cdf73fa..9fea965 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,9 +30,6 @@ set(CMAKE_RELWITHDEBINFO_POSTFIX reldbg) # Add main tcp_pubsub library add_subdirectory(tcp_pubsub) -# Recycle dependency. It's header only and not in the API, so we add it with EXCLUDE_FOR_ALL, so it won't be installed -add_subdirectory(thirdparty/recycle EXCLUDE_FROM_ALL) - # Generic samples if (TCP_PUBSUB_BUILD_SAMPLES) add_subdirectory(samples/performance_publisher) diff --git a/tcp_pubsub/CMakeLists.txt b/tcp_pubsub/CMakeLists.txt index d2a5777..772319a 100644 --- a/tcp_pubsub/CMakeLists.txt +++ b/tcp_pubsub/CMakeLists.txt @@ -10,8 +10,8 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) find_package(Threads REQUIRED) -find_package(asio REQUIRED) -find_package(recycle REQUIRED) +find_package(asio CONFIG REQUIRED) +find_path(RECYCLE_INCLUDE_DIRS "recycle/no_locking_policy.hpp") # Include GenerateExportHeader that will create export macros for us include(GenerateExportHeader) @@ -73,7 +73,6 @@ target_link_libraries(${PROJECT_NAME} # Link header-only libs (asio & recycle) as described in this workaround: # https://gitlab.kitware.com/cmake/cmake/-/issues/15415#note_633938 $ - $ ) target_compile_definitions(${PROJECT_NAME} @@ -100,6 +99,7 @@ target_include_directories(${PROJECT_NAME} $ PRIVATE src/ + ${RECYCLE_INCLUDE_DIRS} ) set_target_properties(${PROJECT_NAME} PROPERTIES @@ -177,4 +177,3 @@ install( DESTINATION ${TCP_PUBSUB_INSTALL_CMAKE_DIR} COMPONENT tcp_pubsub_dev ) - ================================================ FILE: ports/tcp-pubsub/vcpkg.json ================================================ { "name": "tcp-pubsub", "version": "1.0.3", "description": "TCP based publish-subscribe library for C++", "homepage": "https://github.com/eclipse-ecal/tcp_pubsub", "license": "MIT", "supports": "!uwp", "dependencies": [ "asio", "recycle", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tdlib/fix-pc.patch ================================================ diff --git a/CMake/GeneratePkgConfig.cmake b/CMake/GeneratePkgConfig.cmake index 3d3fa01d1..9303a2f43 100644 --- a/CMake/GeneratePkgConfig.cmake +++ b/CMake/GeneratePkgConfig.cmake @@ -9,10 +9,20 @@ function(get_relative_link OUTPUT PATH) if (IS_ABSOLUTE ${PATH}) get_filename_component(DIRECTORY_NAME "${PATH}" DIRECTORY) if (WIN32) - set(${OUTPUT} "-l\"${DIRECTORY_NAME}/${NAME}\"" PARENT_SCOPE) + # On Windows, library files can be libname.lib or name.lib + get_filename_component(FULL_NAME "${PATH}" NAME) + # Extract library name without lib prefix and extension + string(REGEX REPLACE "^lib(.+)\\.[^.]+$" "\\1" LIB_NAME "${FULL_NAME}") + # If the regex didn't match (no lib prefix), use the name without extension + if ("${LIB_NAME}" STREQUAL "${FULL_NAME}") + set(LIB_NAME "${NAME}") + endif() + set(${OUTPUT} "-L\"${DIRECTORY_NAME}\" -l${LIB_NAME}" PARENT_SCOPE) else() get_filename_component(FULL_NAME "${PATH}" NAME) - set(${OUTPUT} "-L\"${DIRECTORY_NAME}\" -l:${FULL_NAME}" PARENT_SCOPE) + # Extract library name without lib prefix and extension for all platforms + string(REGEX REPLACE "^lib(.+)\\.[^.]+$" "\\1" LIB_NAME "${FULL_NAME}") + set(${OUTPUT} "-L\"${DIRECTORY_NAME}\" -l${LIB_NAME}" PARENT_SCOPE) endif() return() endif() @@ -31,17 +41,86 @@ function(generate_pkgconfig TARGET DESCRIPTION) # message("Generating pkg-config for ${TARGET}") get_filename_component(PREFIX "${CMAKE_INSTALL_PREFIX}" REALPATH) - get_target_property(LIST "${TARGET}" LINK_LIBRARIES) + # Get the target type to handle interface libraries differently + get_target_property(LIBRARY_TYPE "${TARGET}" TYPE) + + # For interface libraries, use INTERFACE_LINK_LIBRARIES instead of LINK_LIBRARIES + if ("${LIBRARY_TYPE}" STREQUAL "INTERFACE_LIBRARY") + get_target_property(LIST "${TARGET}" INTERFACE_LINK_LIBRARIES) + else() + get_target_property(LIST "${TARGET}" LINK_LIBRARIES) + endif() + + # Handle the case when no libraries are found + if ("${LIST}" STREQUAL "LIST-NOTFOUND") + set(LIST "") + endif() + + # Special handling for tdcore interface library + if ("${TARGET}" STREQUAL "tdcore" AND "${LIBRARY_TYPE}" STREQUAL "INTERFACE_LIBRARY") + # For tdcore interface library, we need to link to the actual part libraries + # instead of the non-existent tdcore library + set(TDCORE_LIBS "") + set(COMBINED_REQS "") + set(COMBINED_LIBS "") + + foreach (PART_LIB ${LIST}) + if (TARGET "${PART_LIB}" AND "${PART_LIB}" MATCHES "^tdcore_part[0-9]+$") + # Add the actual part library to link against + list(APPEND TDCORE_LIBS "-l${PART_LIB}") + + # Collect dependencies from the parts + get_target_property(PART_LIST "${PART_LIB}" LINK_LIBRARIES) + if (NOT "${PART_LIST}" STREQUAL "PART_LIST-NOTFOUND") + foreach (PART_DEP ${PART_LIST}) + if (TARGET "${PART_DEP}") + list(APPEND COMBINED_REQS "${PART_DEP}") + else() + list(APPEND COMBINED_LIBS "${PART_DEP}") + endif() + endforeach() + endif() + elseif (TARGET "${PART_LIB}") + list(APPEND COMBINED_REQS "${PART_LIB}") + else() + list(APPEND COMBINED_LIBS "${PART_LIB}") + endif() + endforeach() + + # Remove duplicates + if (COMBINED_REQS) + list(REMOVE_DUPLICATES COMBINED_REQS) + endif() + if (COMBINED_LIBS) + list(REMOVE_DUPLICATES COMBINED_LIBS) + endif() + if (TDCORE_LIBS) + list(REMOVE_DUPLICATES TDCORE_LIBS) + endif() + + set(LIST "") + list(APPEND LIST ${COMBINED_REQS}) + list(APPEND LIST ${COMBINED_LIBS}) + + # Set a flag to use different Libs line for tdcore + set(USE_TDCORE_PARTS TRUE) + else() + set(USE_TDCORE_PARTS FALSE) + endif() + set(REQS "") set(LIBS "") foreach (LIB ${LIST}) if (TARGET "${LIB}") - set(HAS_REQS 1) - list(APPEND REQS "${LIB}") + # Skip internal tdcore parts as they don't have their own .pc files + if (NOT "${LIB}" MATCHES "^tdcore_part[0-9]+$") + set(HAS_REQS 1) + list(APPEND REQS "${LIB}") + endif() else() set(HAS_LIBS 1) get_relative_link(LINK "${LIB}") - if (NOT LINK EQUAL "") + if (NOT "${LINK}" STREQUAL "") list(APPEND LIBS "${LINK}") endif() endif() @@ -77,6 +156,19 @@ function(generate_pkgconfig TARGET DESCRIPTION) endif() file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig") + + # Generate the correct Libs line based on library type + if (USE_TDCORE_PARTS) + # For tdcore interface library, link to the actual part libraries + set(LIBS_LINE "") + foreach (PART_LIB ${TDCORE_LIBS}) + set(LIBS_LINE "${LIBS_LINE} ${PART_LIB}") + endforeach() + set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\"${LIBS_LINE}") + else() + set(LIBS_LINE "Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET}") + endif() + file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" CONTENT "prefix=${PREFIX} @@ -85,14 +177,14 @@ Description: ${DESCRIPTION} Version: ${PROJECT_VERSION} CFlags: -I\"${PKGCONFIG_INCLUDEDIR}\" -Libs: -L\"${PKGCONFIG_LIBDIR}\" -l${TARGET} +${LIBS_LINE} ${REQUIRES}${LIBRARIES}") - get_target_property(LIBRARY_TYPE "${TARGET}" TYPE) - if (LIBRARY_TYPE STREQUAL "STATIC_LIBRARY" OR LIBRARY_TYPE STREQUAL "SHARED_LIBRARY") + if ("${LIBRARY_TYPE}" STREQUAL "STATIC_LIBRARY" OR "${LIBRARY_TYPE}" STREQUAL "SHARED_LIBRARY") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + elseif ("${LIBRARY_TYPE}" STREQUAL "INTERFACE_LIBRARY") + # Interface libraries are also supported, install the .pc file install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/${TARGET}.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") - elseif (LIBRARY_TYPE STREQUAL "INTERFACE_LIBRARY") - # TODO: support interface libraries else() message(FATAL_ERROR "Don't know how to handle ${TARGET} of type ${LIBRARY_TYPE}") endif() ================================================ FILE: ports/tdlib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tdlib/td REF 7d257dcda5dd2c616c1146540ef51147c5bb2c69 HEAD_REF master SHA512 fca25e017e6bc27bcc0a69b35ad478a5acfc46b511917440c3e560c18378c3f4133c1c553eb9a0752db5328f61c5813312d653f4ad5e5d0284b7a79d4f480be8 PATCHES fix-pc.patch ) vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/tools/gperf") vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DTD_INSTALL_SHARED_LIBRARIES=OFF -DTD_INSTALL_STATIC_LIBRARIES=ON -DTD_ENABLE_JNI=${VCPKG_TARGET_IS_ANDROID} -DTD_ENABLE_DOTNET=OFF -DTD_GENERATE_SOURCE_FILES=OFF -DTD_E2E_ONLY=OFF -DTD_ENABLE_LTO=${CMAKE_HOST_WIN32} -DTD_ENABLE_MULTI_PROCESSOR_COMPILATION=${VCPKG_DETECTED_MSVC} -DBUILD_TESTING=OFF MAYBE_UNUSED_VARIABLES TD_ENABLE_MULTI_PROCESSOR_COMPILATION ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Td") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/tdlib/vcpkg.json ================================================ { "name": "tdlib", "version": "1.8.55", "description": "Cross-platform library for building Telegram clients", "homepage": "https://github.com/tdlib/td", "license": "BSL-1.0", "supports": "((windows & !uwp & !arm & !arm64 & !xbox) | linux | osx) & static", "dependencies": [ { "name": "gperf", "host": true }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/tdscpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO maharmstone/tdscpp REF "${VERSION}" HEAD_REF master SHA512 6f7f36918e1047355dc948a803b786df2aacc006654d0604e7af627c8c7d28a5e2fdbd52b306811e0da5ccca044ce231606d9208a04d5358aac62b9e1f9b3139 ) set(BUILD_tdscpp_ssl OFF) if("ssl" IN_LIST FEATURES) set(BUILD_tdscpp_ssl ON) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DWITH_OPENSSL=${BUILD_tdscpp_ssl} -DBUILD_SAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tdscpp) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/tdscpp/usage ================================================ tdscpp provides CMake targets: find_package(tdscpp REQUIRED) target_link_libraries(main tdscpp) ================================================ FILE: ports/tdscpp/vcpkg.json ================================================ { "name": "tdscpp", "version": "20250301", "description": "C++ library to communicate with Microsoft SQL Server", "homepage": "https://github.com/maharmstone/tdscpp", "license": "LGPL-3.0", "supports": "!android & !uwp & !osx", "dependencies": [ { "name": "fmt", "platform": "!windows" }, { "name": "icu", "platform": "!windows" }, "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "OpenSSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/telnetpp/fix-install-paths-v3.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2dc81a3..4d53fa6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -260,11 +260,11 @@ install( EXPORT telnetpp-targets ARCHIVE DESTINATION - ${CMAKE_INSTALL_LIBDIR}/telnetpp-${TELNETPP_VERSION} + lib RUNTIME DESTINATION - ${CMAKE_INSTALL_LIBDIR}/telnetpp-${TELNETPP_VERSION} + bin LIBRARY DESTINATION - ${CMAKE_INSTALL_BINDIR}/telnetpp-${TELNETPP_VERSION} + lib ) install( @@ -273,14 +273,14 @@ install( NAMESPACE KazDragon:: DESTINATION - ${CMAKE_INSTALL_DATADIR}/telnetpp-${TELNETPP_VERSION} + share/telnetpp ) install( DIRECTORY include/ DESTINATION - ${CMAKE_INSTALL_INCLUDEDIR}/telnetpp-${TELNETPP_VERSION} + include ) install( @@ -288,7 +288,7 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/telnetpp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/telnetpp-config-version.cmake" DESTINATION - ${CMAKE_INSTALL_DATADIR}/telnetpp-${TELNETPP_VERSION} + share/telnetpp ) if (TELNETPP_WITH_TESTS) ================================================ FILE: ports/telnetpp/fix_include.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d53fa6..c426e70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,7 +218,7 @@ target_compile_features(telnetpp target_include_directories(telnetpp PUBLIC $ - $ + $ ) generate_export_header(telnetpp ================================================ FILE: ports/telnetpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KazDragon/telnetpp REF "v${VERSION}" SHA512 0ff458675a44462655ff3869ff1c3390eec9d594a57a9ed95fb18f9b627b740b4f4be5e1fee3a5b9558553a05aae33134f8f8d26a85b8e4d2e01a927a8337c32 HEAD_REF master PATCHES fix-install-paths-v3.patch fix_include.patch ) set(USE_ZLIB OFF) if("zlib" IN_LIST FEATURES) set(USE_ZLIB ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DTELNETPP_WITH_ZLIB=${USE_ZLIB} -DTELNETPP_WITH_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/telnetpp) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/telnetpp-config.cmake" "####################################################################################" [[#################################################################################### include(CMakeFindDependencyMacro) find_dependency(Boost) find_dependency(gsl-lite) find_dependency(ZLIB)]]) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE "${CURRENT_PACKAGES_DIR}/include/telnetpp/version.hpp.in" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/telnetpp/vcpkg.json ================================================ { "name": "telnetpp", "version": "4.0.0", "description": "A C++ library for interacting with Telnet streams", "homepage": "https://github.com/KazDragon/telnetpp", "documentation": "https://kazdragon.github.io/telnetpp/", "license": "MIT", "supports": "!uwp", "dependencies": [ "boost-algorithm", "boost-container", "boost-exception", "boost-range", "boost-scope-exit", "boost-signals2", "boost-variant", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "zlib" ], "features": { "zlib": { "description": "Zlib support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/tensorflow/portfile.cmake ================================================ set(TF_LIB_SUFFIX "") set(TF_PORT_SUFFIX "") set(TF_INCLUDE_DIRS "\${TENSORFLOW_INSTALL_PREFIX}/include") list(APPEND CMAKE_MODULE_PATH "${CURRENT_INSTALLED_DIR}/share/tensorflow-common") include(tensorflow-common) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/c_api.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/c_api_experimental.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/c_api_macros.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tensor_interface.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_attrtype.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_datatype.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_file_statistics.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_status.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_tensor.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/tf_tstring.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/eager/c_api.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c/eager") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/eager/c_api_experimental.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c/eager") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/c/eager/dlpack.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/c/eager") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/core/platform/ctstring.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/core/platform") file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/tensorflow/core/platform/ctstring_internal.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow/core/platform") ================================================ FILE: ports/tensorflow/vcpkg.json ================================================ { "name": "tensorflow", "version-semver": "2.10.0", "description": "Library for computation using data flow graphs for scalable machine learning (C API version)", "homepage": "https://github.com/tensorflow/tensorflow", "license": "Apache-2.0", "supports": "!(x86 | arm | uwp) | (arm64 & osx)", "dependencies": [ "tensorflow-common", { "name": "vcpkg-tool-bazel", "host": true } ] } ================================================ FILE: ports/tensorflow-cc/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() set(TF_LIB_SUFFIX "_cc") set(TF_PORT_SUFFIX "-cc") set(TF_INCLUDE_DIRS "\${TENSORFLOW_INSTALL_PREFIX}/include/tensorflow-external \${TENSORFLOW_INSTALL_PREFIX}/include/tensorflow-external/src") list(APPEND CMAKE_MODULE_PATH "${CURRENT_INSTALLED_DIR}/share/tensorflow-common") include(tensorflow-common) file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bazel-bin/tensorflow/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/tensorflow-external") ================================================ FILE: ports/tensorflow-cc/vcpkg.json ================================================ { "name": "tensorflow-cc", "version-semver": "2.10.0", "description": "Library for computation using data flow graphs for scalable machine learning (C++ API version)", "homepage": "https://github.com/tensorflow/tensorflow", "license": "Apache-2.0", "supports": "!(x86 | arm | uwp) | (arm64 & osx)", "dependencies": [ "tensorflow-common", { "name": "vcpkg-tool-bazel", "host": true } ] } ================================================ FILE: ports/tensorflow-common/LICENSE.txt ================================================ Copyright (c) Microsoft Corporation All rights reserved. MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: ports/tensorflow-common/README-linux ================================================ Warning: Static TensorFlow build contains several external dependencies that may cause linking conflicts (for example, one cannot use both openssl and TensorFlow in the same project, since TensorFlow contains boringssl). Note: Besides TensorFlow itself, you'll also need to pass its dependencies to the linker: * libm * libdl * libpthread for example, '-ltensorflow_cc -lm -ldl -lpthread'. Note: There is no separate libtensorflow_framework.a as it got merged into libtensorflow_cc.a to avoid linking conflicts. Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,--whole-archive -ltensorflow_cc -Wl,--no-whole-archive [rest of linker arguments]' ================================================ FILE: ports/tensorflow-common/README-macos ================================================ Warning: Static TensorFlow build contains several external dependencies that may cause linking conflicts (for example, one cannot use both openssl and TensorFlow in the same project, since TensorFlow contains boringssl). Note: Besides TensorFlow itself, you'll also need to pass its dependencies to the linker: * CoreFoundation * Security (only when linking against the whole library, see below) for example, '-ltensorflow_cc -framework CoreFoundation -framework Security'. Note: There is no separate libtensorflow_framework.a as it got merged into libtensorflow_cc.a to avoid linking conflicts. Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,-force_load,path/to/libtensorflow_cc.a [rest of linker arguments]' ================================================ FILE: ports/tensorflow-common/README-windows ================================================ Warning: Static TensorFlow build contains several external dependencies that may cause linking conflicts (for example, one cannot use both openssl and TensorFlow in the same project, since TensorFlow contains boringssl). Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to convince the linker to include the whole library, i.e., link using options '/WHOLEARCHIVE:tensorflow_cc.lib /WHOLEARCHIVE:tensorflow_cc-part2.lib /WHOLEARCHIVE:tensorflow_cc-part3.lib ...' ================================================ FILE: ports/tensorflow-common/change-macros-for-static-lib.patch ================================================ diff --git a/tensorflow/core/platform/macros.h b/tensorflow/core/platform/macros.h --- a/tensorflow/core/platform/macros.h +++ b/tensorflow/core/platform/macros.h @@ -57,16 +57,7 @@ #define TF_SCANF_ATTRIBUTE(string_index, first_to_check) #endif -// Control visibility outside .so -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_EXPORT __declspec(dllexport) -#else -#define TF_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 +#define TF_EXPORT #ifdef __has_builtin #define TF_HAS_BUILTIN(x) __has_builtin(x) diff --git a/tensorflow/c/c_api.h b/tensorflow/c/c_api.h --- a/tensorflow/c/c_api.h +++ b/tensorflow/c/c_api.h @@ -71,24 +71,7 @@ // and the API just provides high level controls over the number of // devices of each type. -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes. -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/c_api_experimental.h b/tensorflow/c/c_api_experimental.h --- a/tensorflow/c/c_api_experimental.h +++ b/tensorflow/c/c_api_experimental.h @@ -28,24 +28,7 @@ // The API here is subject to changes in the future. // -------------------------------------------------------------------------- -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes.$a -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/c_api_macros.h b/tensorflow/c/c_api_macros.h --- a/tensorflow/c/c_api_macros.h +++ b/tensorflow/c/c_api_macros.h @@ -16,17 +16,5 @@ #ifndef TENSORFLOW_C_C_API_MACROS_H_ #define TENSORFLOW_C_C_API_MACROS_H_ -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG diff --git a/tensorflow/c/kernels.h b/tensorflow/c/kernels.h --- a/tensorflow/c/kernels.h +++ b/tensorflow/c/kernels.h @@ -24,24 +24,7 @@ #include "tensorflow/c/tf_status.h" #include "tensorflow/c/tf_tensor.h" -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes. -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/kernels_experimental.h b/tensorflow/c/kernels_experimental.h --- a/tensorflow/c/kernels_experimental.h +++ b/tensorflow/c/kernels_experimental.h @@ -25,24 +25,7 @@ // The API here is subject to changes in the future. // -------------------------------------------------------------------------- -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes. -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/ops.h b/tensorflow/c/ops.h --- a/tensorflow/c/ops.h +++ b/tensorflow/c/ops.h @@ -76,19 +76,7 @@ #include "tensorflow/c/tf_datatype.h" #include "tensorflow/c/tf_status.h" -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/tf_datatype.h b/tensorflow/c/tf_datatype.h --- a/tensorflow/c/tf_datatype.h +++ b/tensorflow/c/tf_datatype.h @@ -18,24 +18,7 @@ #include -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes. -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/tf_status.h b/tensorflow/c/tf_status.h --- a/tensorflow/c/tf_status.h +++ b/tensorflow/c/tf_status.h @@ -16,19 +16,7 @@ #ifndef TENSORFLOW_C_TF_STATUS_H_ #define TENSORFLOW_C_TF_STATUS_H_ -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/tf_tensor.h b/tensorflow/c/tf_tensor.h --- a/tensorflow/c/tf_tensor.h +++ b/tensorflow/c/tf_tensor.h @@ -23,24 +23,7 @@ #include "tensorflow/c/tf_datatype.h" #include "tensorflow/c/tf_status.h" -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes. -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/tf_tstring.h b/tensorflow/c/tf_tstring.h --- a/tensorflow/c/tf_tstring.h +++ b/tensorflow/c/tf_tstring.h @@ -18,19 +18,7 @@ #include "tensorflow/c/tf_tensor.h" #include "tensorflow/core/platform/ctstring.h" -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { diff --git a/tensorflow/c/eager/c_api.h b/tensorflow/c/eager/c_api.h --- a/tensorflow/c/eager/c_api.h +++ b/tensorflow/c/eager/c_api.h @@ -22,24 +22,7 @@ #include "tensorflow/c/c_api.h" -// Macro to control visibility of exported symbols in the shared library (.so, -// .dylib, .dll). -// This duplicates the TF_EXPORT macro definition in -// tensorflow/core/platform/macros.h in order to keep this .h file independent -// of any other includes.$a -#ifdef SWIG #define TF_CAPI_EXPORT -#else -#if defined(_WIN32) -#ifdef TF_COMPILE_LIBRARY -#define TF_CAPI_EXPORT __declspec(dllexport) -#else -#define TF_CAPI_EXPORT __declspec(dllimport) -#endif // TF_COMPILE_LIBRARY -#else -#define TF_CAPI_EXPORT __attribute__((visibility("default"))) -#endif // _WIN32 -#endif // SWIG #ifdef __cplusplus extern "C" { ================================================ FILE: ports/tensorflow-common/convert_lib_params_linux.py ================================================ import sys version = sys.argv[1] lib_suffix = "" if len(sys.argv) < 3 else sys.argv[2] with open(f"libtensorflow{lib_suffix}.a.{version}-2.params", "w") as f_out: parts = [] with open(f"libtensorflow_framework.so.{version}-2.params", "r") as f_in: skip_next = False for line in f_in: if skip_next: skip_next = False continue if line.startswith("-o"): skip_next = True elif line.startswith("bazel-out"): f_out.write(line) parts.append(line) parts = set(parts) with open(f"libtensorflow{lib_suffix}.so.{version}-2.params", "r") as f_in: skip_next = False for line in f_in: if skip_next: skip_next = False continue if line.startswith("-o"): skip_next = True elif line.startswith("bazel-out"): if line not in parts: f_out.write(line) ================================================ FILE: ports/tensorflow-common/convert_lib_params_macos.py ================================================ import os.path import sys version = sys.argv[1] lib_suffix = "" if len(sys.argv) < 3 else sys.argv[2] if os.path.isfile(f"libtensorflow_framework.{version}.dylib-2.params"): with open(f"libtensorflow{lib_suffix}.{version}.a-2.params", "w") as f_out: parts = [] with open(f"libtensorflow_framework.{version}.dylib-2.params", "r") as f_in: for line in f_in: if line.startswith("-Wl,-force_load,"): f_out.write(line[16:]) parts.append(line[16:]) parts = set(parts) with open(f"libtensorflow{lib_suffix}.{version}.dylib-2.params", "r") as f_in: for line in f_in: if line.startswith("-Wl,-force_load,"): if line[16:] not in parts: f_out.write(line[16:]) ================================================ FILE: ports/tensorflow-common/convert_lib_params_windows.py ================================================ import os import sys lib_suffix = "" if len(sys.argv) < 2 else sys.argv[1] file_no = 1 with open(f"tensorflow{lib_suffix}.dll-2.params", "r") as f_in: lib_name = None acc_size = 0 f_out = open(f"tensorflow{lib_suffix}.lib-2.params-part1", "w") for line in f_in: if line.startswith("/OUT:"): lib_name = line line = line.replace(".dll", "-part1.lib") f_out.write(line) elif line.startswith("/WHOLEARCHIVE:"): line = line[len("/WHOLEARCHIVE:"):] size = os.stat(f"../../{line.strip()}").st_size if acc_size + size > 0xFFFFFFFF: # we need to split the library if it is >4GB, because it's not supported even on x64 Windows f_out.close() file_no += 1 f_out = open(f"tensorflow{lib_suffix}.lib-2.params-part{file_no}", "w") acc_size = 0 f_out.write(lib_name.replace(".dll", f"-part{file_no}.lib")) acc_size += size f_out.write(line) f_out.close() ================================================ FILE: ports/tensorflow-common/fix-build-error.patch ================================================ diff --git a/tensorflow/core/platform/default/logging.h b/tensorflow/core/platform/default/logging.h --- a/tensorflow/core/platform/default/logging.h +++ b/tensorflow/core/platform/default/logging.h @@ -104,13 +104,13 @@ class LogMessageNull : public std::basic_ostringstream { }; #define _TF_LOG_INFO \ - ::tensorflow::internal::LogMessage(__FILE__, __LINE__, ::tensorflow::INFO) + tensorflow::internal::LogMessage(__FILE__, __LINE__, tensorflow::INFO) #define _TF_LOG_WARNING \ - ::tensorflow::internal::LogMessage(__FILE__, __LINE__, ::tensorflow::WARNING) + tensorflow::internal::LogMessage(__FILE__, __LINE__, tensorflow::WARNING) #define _TF_LOG_ERROR \ - ::tensorflow::internal::LogMessage(__FILE__, __LINE__, ::tensorflow::ERROR) + tensorflow::internal::LogMessage(__FILE__, __LINE__, tensorflow::ERROR) #define _TF_LOG_FATAL \ - ::tensorflow::internal::LogMessageFatal(__FILE__, __LINE__) + tensorflow::internal::LogMessageFatal(__FILE__, __LINE__) #define _TF_LOG_QFATAL _TF_LOG_FATAL ================================================ FILE: ports/tensorflow-common/fix-windows-build.patch ================================================ diff --git a/tensorflow/core/kernels/depthtospace_op.cc b/tensorflow/core/kernels/depthtospace_op.cc --- a/tensorflow/core/kernels/depthtospace_op.cc +++ b/tensorflow/core/kernels/depthtospace_op.cc @@ -112,7 +112,7 @@ auto Tinput = input.tensor(); auto Toutput = outputs_tensor->tensor(); - if (std::is_same::value) { + if constexpr (std::is_same::value) { if (is_int8x4) { // NCHW_VECT_C with 4 x qint8 can be treated as NCHW int32. auto Tinput_v = input.template reinterpret_last_dimension(); diff --git a/tensorflow/core/kernels/spacetodepth_op.cc b/tensorflow/core/kernels/spacetodepth_op.cc --- a/tensorflow/core/kernels/spacetodepth_op.cc +++ b/tensorflow/core/kernels/spacetodepth_op.cc @@ -126,7 +126,7 @@ output_width, output_depth), &outputs_tensor)); - if (std::is_same::value) { + if constexpr (std::is_same::value) { using RT = typename RawType::type; if (data_format_ == FORMAT_NCHW_VECT_C) { // NCHW_VECT_C with 4 x qint8 can be treated as NCHW int32. ================================================ FILE: ports/tensorflow-common/generate_static_link_cmd_linux.py ================================================ import re import sys params_path = sys.argv[2] version = sys.argv[3] lib_suffix = "" if len(sys.argv) < 5 else sys.argv[4] with open(sys.argv[1], "r") as f_in: with open("static_link.sh", "w") as f_out: p_cd = re.compile(r"^\((cd .*) && \\$") p_linker = re.compile(fr"^\s*(.+)gcc.+(@bazel-out\S+libtensorflow{lib_suffix}\.so\.\d+\.\d+\.\d+-2\.params).*") f_out.write("#!/bin/bash\n# note: ar/binutils version 2.27 required to support output files > 4GB\n") env = [] for line in f_in: if line.startswith("(cd"): # new command, reset env = [line] else: m1 = p_linker.match(line) if m1: m2 = p_cd.match(env[0]) f_out.write(m2.group(1) + "\n") line = f'"{m1.group(1)}ar" rcs {m1.group(2)[1:-9].replace(".so", ".a")} {m1.group(2).replace(".so", ".a")}\n' f_out.write(line) else: env.append(line) ================================================ FILE: ports/tensorflow-common/generate_static_link_cmd_macos.py ================================================ import os.path import re import sys params_path = sys.argv[2] version = sys.argv[3] lib_suffix = "" if len(sys.argv) < 5 else sys.argv[4] with open(sys.argv[1], "r") as f_in: with open("static_link.sh", "w") as f_out: if os.path.isfile(f"{params_path}/libtensorflow_framework.{version}.dylib-2.params"): p_cd = re.compile(r"^\((cd .*) && \\$") p_linker = re.compile(fr"^\s*.+cc_wrapper.sh.+(@bazel-out\S+libtensorflow{lib_suffix}\.\d+\.\d+\.\d+\.dylib-2\.params).*") f_out.write("#!/bin/bash\n# note: ar/binutils version 2.27 required to support output files > 4GB\n") env = [] for line in f_in: if line.startswith("(cd"): # new command, reset env = [line] else: m1 = p_linker.match(line) if m1: m2 = p_cd.match(env[0]) f_out.write(m2.group(1) + "\n") line = f'"/usr/bin/libtool" -static -o {m1.group(1)[1:-9].replace(".dylib", ".a")} {m1.group(1).replace(".dylib", ".a")}\n' f_out.write(line) else: env.append(line) else: # old behaviour (still on some platforms): inline all parameters instead of using -2.params file p_cd = re.compile(r"^\((cd .*) && \\$") p_linker1 = re.compile(fr"^.*cc_wrapper.sh.+-shared.+-o (bazel-out\S+libtensorflow{lib_suffix}\.\d+\.\d+\.\d+\.dylib)") p_linker2 = re.compile("^.*cc_wrapper.sh.+-shared.+-o (bazel-out\\S+libtensorflow_framework\\.\\d+\\.\\d+\\.\\d+\\.dylib)") f_out.write("#!/bin/bash\n# note: ar/binutils version 2.27 required to support output files > 4GB\n") env = [] parts = None for line in f_in: if line.startswith("(cd"): # new command, reset env = [line] else: m1 = p_linker1.match(line) m2 = p_linker2.match(line) if m1: tokens = line.split() if parts is None: parts = [t[16:] for t in tokens if t.startswith("-Wl,-force_load,")] else: m = p_cd.match(env[0]) f_out.write(m.group(1) + "\n") tmp = [t[16:] for t in tokens if t.startswith("-Wl,-force_load,")] old = set(parts) parts += [t for t in tmp if t not in old] line = f"libtool -static -o {m1.group(1).replace('.dylib', '.a')} {' '.join(parts)}\n" f_out.write(line) break elif m2 and len(env) > 6: tokens = line.split() if parts is None: parts = [t[16:] for t in tokens if t.startswith("-Wl,-force_load,")] else: m = p_cd.match(env[0]) f_out.write(m.group(1) + "\n") tmp = [t[16:] for t in tokens if t.startswith("-Wl,-force_load,")] old = set(parts) parts += [t for t in tmp if t not in old] line = f"libtool -static -o {m2.group(1).replace('_framework', lib_suffix).replace('.dylib', '.a')} {' '.join(parts)}\n" f_out.write(line) break else: env.append(line) ================================================ FILE: ports/tensorflow-common/generate_static_link_cmd_windows.py ================================================ import os.path import re import sys params_path = sys.argv[2] version = sys.argv[3] lib_suffix = "" if len(sys.argv) < 5 else sys.argv[4] with open(sys.argv[1], "r") as f_in: with open("static_link.bat", "w") as f_out: p_setenv = re.compile(r"^\s*(SET .+=.*)$") p_linker = re.compile(fr".+link\.exe.+tensorflow{lib_suffix}\.dll-2\.params.*") env = [] for line in f_in: if line.startswith("cd"): # new command, reset env = [] else: m = p_setenv.match(line) if m: env.append(m.group(1)) else: m = p_linker.match(line) if m: for e in env: f_out.write(e + "\n") tokens = line.split() line = "\"" params_file = None for t in tokens: if t.endswith("link.exe"): t = t[:-len("link.exe")] + "lib.exe\"" elif t == "/DLL" or t.lower()[1:].startswith("defaultlib:") or t.lower()[1:].startswith("ignore") or t.startswith("/OPT:") or t.startswith("/DEF:") or t.startswith("/DEBUG:") or t.startswith("/INCREMENTAL:"): continue elif t[0] == '@' and t.endswith(f"tensorflow{lib_suffix}.dll-2.params"): t = t[:-len("dll-2.params")] + "lib-2.params-part1" params_file = t[1:-len("-part1")] line += t + " " f_out.write(line + "\n") # check for more parts if library needs to be split file_no = 2 while os.path.isfile(f"{params_file}-part{file_no}"): f_out.write(line.replace("lib-2.params-part1", f"lib-2.params-part{file_no}") + "\n") file_no += 1 break ================================================ FILE: ports/tensorflow-common/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(TENSORFLOW_FILES "${CMAKE_CURRENT_LIST_DIR}/change-macros-for-static-lib.patch" "${CMAKE_CURRENT_LIST_DIR}/convert_lib_params_linux.py" "${CMAKE_CURRENT_LIST_DIR}/convert_lib_params_macos.py" "${CMAKE_CURRENT_LIST_DIR}/convert_lib_params_windows.py" "${CMAKE_CURRENT_LIST_DIR}/fix-build-error.patch" "${CMAKE_CURRENT_LIST_DIR}/fix-windows-build.patch" "${CMAKE_CURRENT_LIST_DIR}/generate_static_link_cmd_linux.py" "${CMAKE_CURRENT_LIST_DIR}/generate_static_link_cmd_macos.py" "${CMAKE_CURRENT_LIST_DIR}/generate_static_link_cmd_windows.py" "${CMAKE_CURRENT_LIST_DIR}/README-linux" "${CMAKE_CURRENT_LIST_DIR}/README-macos" "${CMAKE_CURRENT_LIST_DIR}/README-windows" "${CMAKE_CURRENT_LIST_DIR}/tensorflow-common.cmake" "${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-shared.cmake.in" "${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-static.cmake.in" "${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-windows-dll.cmake.in" "${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-windows-lib.cmake.in" ) file(COPY ${TENSORFLOW_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Use vcpkg's license file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tensorflow-common/tensorflow-common.cmake ================================================ set(TF_VERSION 2.10.0) set(TF_VERSION_SHORT 2.10) find_program(BAZEL bazel PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools" REQUIRED) get_filename_component(BAZEL_DIR "${BAZEL}" DIRECTORY) vcpkg_add_to_path(PREPEND "${BAZEL_DIR}") set(ENV{BAZEL_BIN_PATH} "${BAZEL_DIR}") function(tensorflow_try_remove_recurse_wait PATH_TO_REMOVE) file(REMOVE_RECURSE ${PATH_TO_REMOVE}) if(EXISTS "${PATH_TO_REMOVE}") vcpkg_execute_required_process(COMMAND ${CMAKE_COMMAND} -E sleep 5 WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-sleep-${TARGET_TRIPLET}) file(REMOVE_RECURSE ${PATH_TO_REMOVE}) endif() endfunction() vcpkg_find_acquire_program(GIT) get_filename_component(GIT_DIR "${GIT}" DIRECTORY) vcpkg_add_to_path(PREPEND ${GIT_DIR}) string(FIND "${CURRENT_BUILDTREES_DIR}" " " POS) if(NOT POS EQUAL -1) message(FATAL_ERROR "Your vcpkg path contains spaces. This is not supported by the bazel build tool. Aborting.") endif() if(CMAKE_HOST_WIN32) string(FIND "$ENV{USERNAME}" " " POS) if(NOT POS EQUAL -1) message(WARNING "Your Windows username '$ENV{USERNAME}' contains spaces. Applying work-around to bazel. Be warned of possible further issues.") endif() vcpkg_acquire_msys(MSYS_ROOT PACKAGES bash unzip patch diffutils libintl gzip coreutils mingw-w64-x86_64-python-numpy) vcpkg_add_to_path(${MSYS_ROOT}/usr/bin) vcpkg_add_to_path(${MSYS_ROOT}/mingw64/bin) set(BASH ${MSYS_ROOT}/usr/bin/bash.exe) set(ENV{BAZEL_SH} ${MSYS_ROOT}/usr/bin/bash.exe) set(ENV{BAZEL_VC} $ENV{VCInstallDir}) set(ENV{BAZEL_VC_FULL_VERSION} $ENV{VCToolsVersion}) set(PYTHON3 "${MSYS_ROOT}/mingw64/bin/python3.exe") else() vcpkg_find_acquire_program(PYTHON3) # on macos arm64 use conda miniforge if (VCPKG_HOST_IS_OSX) EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "arm64") message(STATUS "Using python from miniforge3 ") if (NOT EXISTS ${CURRENT_BUILDTREES_DIR}/miniforge3) vcpkg_execute_required_process(COMMAND curl -fsSLo Miniforge3.sh "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-miniforge3-${TARGET_TRIPLET}) vcpkg_execute_required_process(COMMAND bash ./Miniforge3.sh -p ${CURRENT_BUILDTREES_DIR}/miniforge3 -b WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-miniforge3-${TARGET_TRIPLET}) SET(PYTHON3 ${CURRENT_BUILDTREES_DIR}/miniforge3/bin/python3) endif() endif() endif() vcpkg_execute_required_process(COMMAND ${PYTHON3} -m venv --symlinks "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-venv" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-venv-${TARGET_TRIPLET}) vcpkg_add_to_path(PREPEND ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-venv/bin) set(PYTHON3 ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-venv/bin/python3) set(ENV{VIRTUAL_ENV} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-venv) if(VCPKG_TARGET_IS_OSX) vcpkg_execute_required_process(COMMAND ${PYTHON3} -m pip install -U pip WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-pip-${TARGET_TRIPLET}) # acceleration libs currently broken on macOS => force numpy user space reinstall without BLAS/LAPACK/ATLAS # remove this work-around again, i.e. default to "else" branch, once acceleration libs are fixed upstream set(ENV{BLAS} "None") set(ENV{LAPACK} "None") set(ENV{ATLAS} "None") vcpkg_execute_required_process(COMMAND ${PYTHON3} -m pip install -U --force-reinstall numpy setuptools WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequistes-pip-${TARGET_TRIPLET}) else() vcpkg_execute_required_process(COMMAND ${PYTHON3} -m pip install -U pip numpy WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-pip-${TARGET_TRIPLET}) endif() endif() set(ENV{PYTHON_BIN_PATH} "${PYTHON3}") set(ENV{PYTHON_LIB_PATH} "") # check if numpy can be loaded vcpkg_execute_required_process(COMMAND ${PYTHON3} -c "import numpy" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR} LOGNAME prerequisites-numpy-${TARGET_TRIPLET}) set(ENV{USE_DEFAULT_PYTHON_LIB_PATH} 1) set(ENV{TF_NEED_KAFKA} 0) set(ENV{TF_NEED_OPENCL_SYCL} 0) set(ENV{TF_NEED_AWS} 0) set(ENV{TF_NEED_GCP} 0) set(ENV{TF_NEED_HDFS} 0) set(ENV{TF_NEED_S3} 0) set(ENV{TF_ENABLE_XLA} 0) set(ENV{TF_NEED_GDR} 0) set(ENV{TF_NEED_VERBS} 0) set(ENV{TF_NEED_OPENCL} 0) set(ENV{TF_NEED_MPI} 0) set(ENV{TF_NEED_TENSORRT} 0) set(ENV{TF_NEED_NGRAPH} 0) set(ENV{TF_NEED_IGNITE} 0) set(ENV{TF_NEED_ROCM} 0) set(ENV{TF_SET_ANDROID_WORKSPACE} 0) set(ENV{TF_DOWNLOAD_CLANG} 0) set(ENV{TF_NCCL_VERSION} ${TF_VERSION_SHORT}) set(ENV{NCCL_INSTALL_PATH} "") set(ENV{TF_NEED_CUDA} 0) set(ENV{TF_CONFIGURE_IOS} 0) set(ENV{CC_OPT_FLAGS} "-Wno-sign-compare") if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" ) set(ENV{CC_OPT_FLAGS} "/arch:AVX") endif() endif() if(VCPKG_TARGET_IS_WINDOWS) set(BAZEL_LIB_NAME tensorflow${TF_LIB_SUFFIX}.dll) set(PLATFORM_SUFFIX windows) set(STATIC_LINK_CMD static_link.bat) elseif(VCPKG_TARGET_IS_OSX) set(BAZEL_LIB_NAME libtensorflow${TF_LIB_SUFFIX}.dylib) set(PLATFORM_SUFFIX macos) set(STATIC_LINK_CMD sh static_link.sh) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.dylib") set(TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.2.dylib") set(TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.${TF_VERSION}.dylib") set(TF_FRAMEWORK_NAME "libtensorflow_framework.dylib") set(TF_FRAMEWORK_NAME_SHORT "libtensorflow_framework.2.dylib") set(TF_FRAMEWORK_NAME_FULL "libtensorflow_framework.${TF_VERSION}.dylib") else() set(TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.a") set(TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.2.a") set(TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.${TF_VERSION}.a") endif() else() set(BAZEL_LIB_NAME libtensorflow${TF_LIB_SUFFIX}.so) set(PLATFORM_SUFFIX linux) set(STATIC_LINK_CMD sh static_link.sh) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.so") set(TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.so.2") set(TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.so.${TF_VERSION}") set(TF_FRAMEWORK_NAME "libtensorflow_framework.so") set(TF_FRAMEWORK_NAME_SHORT "libtensorflow_framework.so.2") set(TF_FRAMEWORK_NAME_FULL "libtensorflow_framework.so.${TF_VERSION}") else() set(TF_LIB_NAME "libtensorflow${TF_LIB_SUFFIX}.a") set(TF_LIB_NAME_SHORT "libtensorflow${TF_LIB_SUFFIX}.a.2") set(TF_LIB_NAME_FULL "libtensorflow${TF_LIB_SUFFIX}.a.${TF_VERSION}") endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") list(APPEND PORT_BUILD_CONFIGS "dbg") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") list(APPEND PORT_BUILD_CONFIGS "rel") endif() foreach(BUILD_TYPE IN LISTS PORT_BUILD_CONFIGS) # prefer repeated source extraction here for each build type over extracting once above the loop and copying because users reported issues with copying symlinks set(STATIC_ONLY_PATCHES) set(WINDOWS_ONLY_PATCHES) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) set(STATIC_ONLY_PATCHES "${CMAKE_CURRENT_LIST_DIR}/change-macros-for-static-lib.patch") # there is no static build option - change macros via patch and link library manually at the end endif() if(VCPKG_TARGET_IS_WINDOWS) set(WINDOWS_ONLY_PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-windows-build.patch") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tensorflow/tensorflow REF "v${TF_VERSION}" SHA512 bf8a6f16393499c227fc70f27bcfb6d44ada53325aee2b217599309940f60db8ee00dd90e3d82b87d9c309f5621c404edab55e97ab8bfa09e4fc67859b9e3967 HEAD_REF master PATCHES "${CMAKE_CURRENT_LIST_DIR}/fix-build-error.patch" # Fix namespace error ${STATIC_ONLY_PATCHES} ${WINDOWS_ONLY_PATCHES} ) message(STATUS "Configuring TensorFlow (${BUILD_TYPE})") tensorflow_try_remove_recurse_wait(${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}) file(RENAME ${SOURCE_PATH} ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}) set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}") vcpkg_execute_required_process( COMMAND ${PYTHON3} ${SOURCE_PATH}/configure.py --workspace "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME config-${TARGET_TRIPLET}-${BUILD_TYPE} ) if(DEFINED ENV{BAZEL_CUSTOM_CACERTS}) file(APPEND ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/.bazelrc "startup --host_jvm_args=-Djavax.net.ssl.trustStore='$ENV{BAZEL_CUSTOM_CACERTS}'\n") message(STATUS "Using custom CA certificate store at: $ENV{BAZEL_CUSTOM_CACERTS}") if(DEFINED ENV{BAZEL_CUSTOM_CACERTS_PASSWORD}) file(APPEND ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/.bazelrc "startup --host_jvm_args=-Djavax.net.ssl.trustStorePassword='$ENV{BAZEL_CUSTOM_CACERTS_PASSWORD}'\n") message(STATUS "Using supplied custom CA certificate store password.") endif() else() if(DEFINED ENV{HTTPS_PROXY}) message(STATUS "You are using HTTPS_PROXY. In case you encounter bazel certificate errors, you might want to set: BAZEL_CUSTOM_CACERTS=/path/to/trust.store (and optionally BAZEL_CUSTOM_CACERTS_PASSWORD), and to enable vcpkg to actually use it: VCPKG_KEEP_ENV_VARS=BAZEL_CUSTOM_CACERTS;BAZEL_CUSTOM_CACERTS_PASSWORD") if(CMAKE_HOST_WIN32) message(STATUS "(For BAZEL_CUSTOM_CACERTS please use forward slashes instead of backslashes on Windows systems.") endif() endif() endif() message(STATUS "Warning: Building TensorFlow can take an hour or more.") set(COPTS) set(CXXOPTS) set(LINKOPTS) set(BUILD_OPTS --jobs ${VCPKG_CONCURRENCY}) message(STATUS "Build Tensorflow with concurrent level: ${VCPKG_CONCURRENCY}") if(VCPKG_TARGET_IS_WINDOWS) set(PLATFORM_COMMAND WINDOWS_COMMAND) else() set(PLATFORM_COMMAND UNIX_COMMAND) endif() if(BUILD_TYPE STREQUAL dbg) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND BUILD_OPTS "--compilation_mode=dbg --features=fastbuild") # link with /DEBUG:FASTLINK instead of /DEBUG:FULL to avoid .pdb >4GB error elseif(VCPKG_TARGET_IS_OSX) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") list(APPEND BUILD_OPTS --compilation_mode=opt) # debug & fastbuild build on macOS arm64 currently broken else() list(APPEND BUILD_OPTS --compilation_mode=fastbuild) # debug build on macOS x86_64 currently broken endif() else() list(APPEND BUILD_OPTS --compilation_mode=dbg) endif() separate_arguments(VCPKG_C_FLAGS ${PLATFORM_COMMAND} ${VCPKG_C_FLAGS}) separate_arguments(VCPKG_C_FLAGS_DEBUG ${PLATFORM_COMMAND} ${VCPKG_C_FLAGS_DEBUG}) foreach(OPT IN LISTS VCPKG_C_FLAGS VCPKG_C_FLAGS_DEBUG) list(APPEND COPTS "--copt=${OPT}") endforeach() separate_arguments(VCPKG_CXX_FLAGS ${PLATFORM_COMMAND} ${VCPKG_CXX_FLAGS}) separate_arguments(VCPKG_CXX_FLAGS_DEBUG ${PLATFORM_COMMAND} ${VCPKG_CXX_FLAGS_DEBUG}) foreach(OPT IN LISTS VCPKG_CXX_FLAGS VCPKG_CXX_FLAGS_DEBUG) list(APPEND CXXOPTS "--cxxopt=${OPT}") endforeach() separate_arguments(VCPKG_LINKER_FLAGS ${PLATFORM_COMMAND} ${VCPKG_LINKER_FLAGS}) separate_arguments(VCPKG_LINKER_FLAGS_DEBUG ${PLATFORM_COMMAND} ${VCPKG_LINKER_FLAGS_DEBUG}) foreach(OPT IN LISTS VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_DEBUG) list(APPEND LINKOPTS "--linkopt=${OPT}") endforeach() else() list(APPEND BUILD_OPTS --compilation_mode=opt) separate_arguments(VCPKG_C_FLAGS ${PLATFORM_COMMAND} ${VCPKG_C_FLAGS}) separate_arguments(VCPKG_C_FLAGS_RELEASE ${PLATFORM_COMMAND} ${VCPKG_C_FLAGS_RELEASE}) foreach(OPT IN LISTS VCPKG_C_FLAGS VCPKG_C_FLAGS_RELEASE) list(APPEND COPTS "--copt=${OPT}") endforeach() separate_arguments(VCPKG_CXX_FLAGS ${PLATFORM_COMMAND} ${VCPKG_CXX_FLAGS}) separate_arguments(VCPKG_CXX_FLAGS_RELEASE ${PLATFORM_COMMAND} ${VCPKG_CXX_FLAGS_RELEASE}) foreach(OPT IN LISTS VCPKG_CXX_FLAGS VCPKG_CXX_FLAGS_RELEASE) list(APPEND CXXOPTS "--cxxopt=${OPT}") endforeach() separate_arguments(VCPKG_LINKER_FLAGS ${PLATFORM_COMMAND} ${VCPKG_LINKER_FLAGS}) separate_arguments(VCPKG_LINKER_FLAGS_RELEASE ${PLATFORM_COMMAND} ${VCPKG_LINKER_FLAGS_RELEASE}) foreach(OPT IN LISTS VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE) list(APPEND LINKOPTS "--linkopt=${OPT}") endforeach() endif() if(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") # tensorflow supports 10.12.6 (Sierra) or higher (64-bit) # but actually does not compile with < 10.14 # https://www.tensorflow.org/install/pip#macos list(APPEND BUILD_OPTS --macos_minimum_os=10.14) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) if(VCPKG_TARGET_IS_WINDOWS) list(JOIN COPTS " " COPTS) list(JOIN CXXOPTS " " CXXOPTS) list(JOIN LINKOPTS " " LINKOPTS) # use --output_user_root to work-around too-long-path-names issue and username-with-spaces issue vcpkg_execute_build_process( COMMAND ${BASH} --noprofile --norc -c "'${BAZEL}' --output_user_root='${CURRENT_BUILDTREES_DIR}/.bzl' --max_idle_secs=1 build --verbose_failures ${BUILD_OPTS} ${COPTS} ${CXXOPTS} ${LINKOPTS} --python_path='${PYTHON3}' --define=no_tensorflow_py_deps=true ///tensorflow:${BAZEL_LIB_NAME} ///tensorflow:install_headers" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME build-${TARGET_TRIPLET}-${BUILD_TYPE} ) else() vcpkg_execute_build_process( COMMAND ${BAZEL} --output_user_root=${CURRENT_BUILDTREES_DIR}/.bzl --max_idle_secs=1 build --verbose_failures ${BUILD_OPTS} --python_path=${PYTHON3} ${COPTS} ${CXXOPTS} ${LINKOPTS} --define=no_tensorflow_py_deps=true //tensorflow:${BAZEL_LIB_NAME} //tensorflow:install_headers WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME build-${TARGET_TRIPLET}-${BUILD_TYPE} ) endif() else() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL static) if(BUILD_TYPE STREQUAL dbg) list(APPEND COPTS "--copt=-MTd") else() list(APPEND COPTS "--copt=-MT") endif() endif() list(JOIN COPTS " " COPTS) list(JOIN CXXOPTS " " CXXOPTS) list(JOIN LINKOPTS " " LINKOPTS) # use --output_user_root to work-around too-long-path-names issue and username-with-spaces issue vcpkg_execute_build_process( COMMAND ${BASH} --noprofile --norc -c "${BAZEL} --output_user_root='${CURRENT_BUILDTREES_DIR}/.bzl' --max_idle_secs=1 build -s --verbose_failures ${BUILD_OPTS} --features=fully_static_link ${COPTS} ${CXXOPTS} ${LINKOPTS} --python_path='${PYTHON3}' --define=no_tensorflow_py_deps=true ///tensorflow:${BAZEL_LIB_NAME} ///tensorflow:install_headers" WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME build-${TARGET_TRIPLET}-${BUILD_TYPE} ) else() vcpkg_execute_build_process( COMMAND ${BAZEL} --output_user_root=${CURRENT_BUILDTREES_DIR}/.bzl --max_idle_secs=1 build -s --verbose_failures ${BUILD_OPTS} ${COPTS} ${CXXOPTS} ${LINKOPTS} --python_path=${PYTHON3} --define=no_tensorflow_py_deps=true //tensorflow:${BAZEL_LIB_NAME} //tensorflow:install_headers WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME build-${TARGET_TRIPLET}-${BUILD_TYPE} ) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_execute_build_process( COMMAND ${PYTHON3} "${CMAKE_CURRENT_LIST_DIR}/convert_lib_params_${PLATFORM_SUFFIX}.py" ${TF_LIB_SUFFIX} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow LOGNAME postbuild1-${TARGET_TRIPLET}-${BUILD_TYPE} ) else() vcpkg_execute_build_process( COMMAND ${PYTHON3} "${CMAKE_CURRENT_LIST_DIR}/convert_lib_params_${PLATFORM_SUFFIX}.py" ${TF_VERSION} ${TF_LIB_SUFFIX} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow LOGNAME postbuild1-${TARGET_TRIPLET}-${BUILD_TYPE} ) endif() # for some reason stdout of bazel ends up in stderr, so use err log file in the following command vcpkg_execute_build_process( COMMAND ${PYTHON3} "${CMAKE_CURRENT_LIST_DIR}/generate_static_link_cmd_${PLATFORM_SUFFIX}.py" "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-${BUILD_TYPE}-err.log" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow" ${TF_VERSION} ${TF_LIB_SUFFIX} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME postbuild2-${TARGET_TRIPLET}-${BUILD_TYPE} ) vcpkg_execute_build_process( COMMAND ${STATIC_LINK_CMD} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-${TARGET_TRIPLET}-${BUILD_TYPE} LOGNAME postbuild3-${TARGET_TRIPLET}-${BUILD_TYPE} ) endif() if(BUILD_TYPE STREQUAL "dbg") set(DIR_PREFIX "/debug") else() set(DIR_PREFIX "") endif() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}.dll DESTINATION ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/bin) # rename before copy because after copy the file might be locked by anti-malware scanners for some time so that renaming fails file(RENAME ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}.dll.if.lib ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}.lib) file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}.lib DESTINATION ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib) if(BUILD_TYPE STREQUAL dbg) file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}.pdb DESTINATION ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/bin) message(STATUS "Warning: debug information tensorflow${TF_LIB_SUFFIX}.pdb will be of limited use because only a reduced set could be produced due to the 4GB internal PDB file limit even on x64.") endif() else() if(BUILD_TYPE STREQUAL dbg) set(library_parts_variable TF_LIB_PARTS_DEBUG) else() set(library_parts_variable TF_LIB_PARTS_RELEASE) endif() set(${library_parts_variable}) # library might have been split because no more than 4GB are supported even on x64 Windows foreach(PART_NO RANGE 1 100) set(source "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/tensorflow${TF_LIB_SUFFIX}-part${PART_NO}.lib") if(EXISTS "${source}") file(COPY "${source}" DESTINATION "${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib") list(APPEND ${library_parts_variable} "tensorflow${TF_LIB_SUFFIX}-part${PART_NO}.lib") else() break() endif() endforeach() endif() else() file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/${TF_LIB_NAME_FULL} DESTINATION ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib ) # Note: these use relative links file(CREATE_LINK ${TF_LIB_NAME_FULL} ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib/${TF_LIB_NAME_SHORT} SYMBOLIC ) file(CREATE_LINK ${TF_LIB_NAME_FULL} ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib/${TF_LIB_NAME} SYMBOLIC ) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${BUILD_TYPE}/bazel-bin/tensorflow/${TF_FRAMEWORK_NAME_FULL} DESTINATION ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib ) file(CREATE_LINK ${TF_FRAMEWORK_NAME_FULL} ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib/${TF_FRAMEWORK_NAME_SHORT} SYMBOLIC ) file(CREATE_LINK ${TF_FRAMEWORK_NAME_FULL} ${CURRENT_PACKAGES_DIR}${DIR_PREFIX}/lib/${TF_FRAMEWORK_NAME} SYMBOLIC ) endif() endif() endforeach() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) message(STATUS "Warning: Static TensorFlow build contains several external dependencies that may cause linking conflicts (for example, one cannot use both openssl and TensorFlow in the same project, since TensorFlow contains boringssl).") if(VCPKG_TARGET_IS_WINDOWS) message(STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library, i.e., link using options '/WHOLEARCHIVE:tensorflow${TF_LIB_SUFFIX}-part1.lib /WHOLEARCHIVE:tensorflow${TF_LIB_SUFFIX}-part2.lib ...'") else() message(STATUS "Note: There is no separate libtensorflow_framework.a as it got merged into libtensorflow${TF_LIB_SUFFIX}.a to avoid linking conflicts.") if(VCPKG_TARGET_IS_OSX) message(STATUS "Note: Beside TensorFlow itself, you'll need to also pass its dependancies to the linker, for example '-ltensorflow${TF_LIB_SUFFIX} -framework CoreFoundation'") message(STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,-force_load,path/to/libtensorflow${TF_LIB_SUFFIX}.a -framework CoreFoundation -framework Security [rest of linker arguments]'") else() message(STATUS "Note: Beside TensorFlow itself, you'll need to also pass its dependancies to the linker, for example '-ltensorflow${TF_LIB_SUFFIX} -lm -ldl -lpthread'") message(STATUS "Note: For some TensorFlow features (e.g. OpRegistry), it might be necessary to tell the linker to include the whole library: '-Wl,--whole-archive -ltensorflow${TF_LIB_SUFFIX} -Wl,--no-whole-archive [rest of linker arguments]'") endif() endif() configure_file( ${CMAKE_CURRENT_LIST_DIR}/README-${PLATFORM_SUFFIX} ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/README COPYONLY) endif() file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}) file(RENAME ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/LICENSE ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/copyright) # NOTE: if this port ever supports VCPKG_BUILD_TYPE, use that to set these. set(TENSORFLOW_HAS_RELEASE ON) set(TENSORFLOW_HAS_DEBUG ON) if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) configure_file( ${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-windows-dll.cmake.in ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/tensorflow${TF_PORT_SUFFIX}-config.cmake @ONLY) else() configure_file( ${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-windows-lib.cmake.in ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/tensorflow${TF_PORT_SUFFIX}-config.cmake @ONLY) set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) set(prefix [[${TENSORFLOW_INSTALL_PREFIX}]]) set(libs_to_link) foreach(lib IN LISTS TF_LIB_PARTS_RELEASE) list(APPEND libs_to_link "$<$:${prefix}/lib/${lib}>") endforeach() foreach(lib IN LISTS TF_LIB_PARTS_DEBUG) list(APPEND libs_to_link "$<$:${prefix}/debug/lib/${lib}>") endforeach() if(TENSORFLOW_HAS_RELEASE) set(TF_LIB_PARTS_DEFAULT ${TF_LIB_PARTS_RELEASE}) set(prefix_DEFAULT "${prefix}") elseif(TENSORFLOW_HAS_DEBUG) set(TF_LIB_PARTS_DEFAULT ${TF_LIB_PARTS_DEBUG}) set(prefix_DEFAULT "${prefix}/debug") endif() foreach(lib IN LISTS TF_LIB_PARTS_DEFAULT) list(APPEND libs_to_link "$<$,$>>:${prefix}/lib/${lib}>") endforeach() string(REPLACE ";" "\n\t\t" libs_to_link "${libs_to_link}") file(APPEND ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/tensorflow${TF_PORT_SUFFIX}-config.cmake " target_link_libraries(tensorflow${TF_LIB_SUFFIX}::tensorflow${TF_LIB_SUFFIX} INTERFACE ${libs_to_link} )" ) endif() else() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) configure_file( ${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-shared.cmake.in ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/tensorflow${TF_PORT_SUFFIX}-config.cmake @ONLY) else() configure_file( ${CMAKE_CURRENT_LIST_DIR}/tensorflow-config-static.cmake.in ${CURRENT_PACKAGES_DIR}/share/tensorflow${TF_PORT_SUFFIX}/tensorflow${TF_PORT_SUFFIX}-config.cmake @ONLY) endif() endif() message(STATUS "You may want to delete ${CURRENT_BUILDTREES_DIR} to free diskspace.") ================================================ FILE: ports/tensorflow-common/tensorflow-config-shared.cmake.in ================================================ if(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ OR TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework) if(NOT (TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ AND TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework)) message(FATAL_ERROR "Some (but not all) targets in this config.cmake were already defined.") endif() return() endif() add_library(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ SHARED IMPORTED GLOBAL) add_library(tensorflow@TF_LIB_SUFFIX@::tensorflow_framework SHARED IMPORTED GLOBAL) # Compute the installation prefix from this tensorflow@TF_PORT_SUFFIX@-config.cmake file location. # CMAKE_CURRENT_LIST_DIR = [vcpkg_installed_dir]/[target_triplet]/share/tensorflow@TF_PORT_SUFFIX@ get_filename_component(TENSORFLOW_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet]/share get_filename_component(TENSORFLOW_INSTALL_PREFIX "${TENSORFLOW_INSTALL_PREFIX}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet] target_include_directories(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ INTERFACE @TF_INCLUDE_DIRS@ ) target_include_directories(tensorflow@TF_LIB_SUFFIX@::tensorflow_framework INTERFACE @TF_INCLUDE_DIRS@ ) if(@TENSORFLOW_HAS_RELEASE@) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_LIB_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_FRAMEWORK_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION_RELEASE "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_LIB_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework PROPERTY IMPORTED_LOCATION_RELEASE "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_FRAMEWORK_NAME@" ) endif() if(@TENSORFLOW_HAS_DEBUG) if(NOT @TENSORFLOW_HAS_RELEASE) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_LIB_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_FRAMEWORK_NAME@" ) endif() set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION_DEBUG "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_LIB_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow_framework PROPERTY IMPORTED_LOCATION_DEBUG "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_FRAMEWORK_NAME@" ) endif() set(tensorflow@TF_LIB_SUFFIX@_FOUND TRUE) set(tensorflow_framework_FOUND TRUE) ================================================ FILE: ports/tensorflow-common/tensorflow-config-static.cmake.in ================================================ if(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@) return() endif() add_library(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ STATIC IMPORTED GLOBAL) # Compute the installation prefix from this tensorflow@TF_PORT_SUFFIX@-config.cmake file location. # CMAKE_CURRENT_LIST_DIR = [vcpkg_installed_dir]/[target_triplet]/share/tensorflow@TF_PORT_SUFFIX@ get_filename_component(TENSORFLOW_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet]/share get_filename_component(TENSORFLOW_INSTALL_PREFIX "${TENSORFLOW_INSTALL_PREFIX}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet] target_include_directories(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ INTERFACE @TF_INCLUDE_DIRS@ ) if(@TENSORFLOW_HAS_RELEASE@) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_LIB_NAME@" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION_RELEASE "${TENSORFLOW_INSTALL_PREFIX}/lib/@TF_LIB_NAME@" ) endif() if(@TENSORFLOW_HAS_DEBUG@) if(NOT @TENSORFLOW_HAS_RELEASE@) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_LIB_NAME@" ) endif() set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTY IMPORTED_LOCATION_DEBUG "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/@TF_LIB_NAME@" ) endif() set(tensorflow@TF_LIB_SUFFIX@_FOUND TRUE) ================================================ FILE: ports/tensorflow-common/tensorflow-config-windows-dll.cmake.in ================================================ if(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@) return() endif() add_library(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ SHARED IMPORTED GLOBAL) # Compute the installation prefix from this tensorflow@TF_PORT_SUFFIX@-config.cmake file location. # CMAKE_CURRENT_LIST_DIR = [vcpkg_installed_dir]/[target_triplet]/share/tensorflow@TF_PORT_SUFFIX@ get_filename_component(TENSORFLOW_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet]/share get_filename_component(TENSORFLOW_INSTALL_PREFIX "${TENSORFLOW_INSTALL_PREFIX}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet] target_include_directories(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ INTERFACE @TF_INCLUDE_DIRS@ ) if(@TENSORFLOW_HAS_RELEASE@) set_target_properties(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTIES IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/bin/tensorflow@TF_LIB_SUFFIX@.dll" IMPORTED_IMPLIB "${TENSORFLOW_INSTALL_PREFIX}/lib/tensorflow@TF_LIB_SUFFIX@.lib" ) set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE ) set_target_properties(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTIES IMPORTED_LOCATION_RELEASE "${TENSORFLOW_INSTALL_PREFIX}/bin/tensorflow@TF_LIB_SUFFIX@.dll" IMPORTED_IMPLIB_RELEASE "${TENSORFLOW_INSTALL_PREFIX}/lib/tensorflow@TF_LIB_SUFFIX@.lib" ) endif() if(@TENSORFLOW_HAS_DEBUG@) if(NOT @TENSORFLOW_HAS_RELEASE@) set_target_properties(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTIES IMPORTED_LOCATION "${TENSORFLOW_INSTALL_PREFIX}/debug/bin/tensorflow@TF_LIB_SUFFIX@.dll" IMPORTED_IMPLIB "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/tensorflow@TF_LIB_SUFFIX@.lib" ) endif() set_property(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_target_properties(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ PROPERTIES IMPORTED_LOCATION_DEBUG "${TENSORFLOW_INSTALL_PREFIX}/debug/bin/tensorflow@TF_LIB_SUFFIX@.dll" IMPORTED_IMPLIB_DEBUG "${TENSORFLOW_INSTALL_PREFIX}/debug/lib/tensorflow@TF_LIB_SUFFIX@.lib" ) endif() set(tensorflow@TF_LIB_SUFFIX@_FOUND TRUE) ================================================ FILE: ports/tensorflow-common/tensorflow-config-windows-lib.cmake.in ================================================ if(TARGET tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@) return() endif() set(tensorflow@TF_LIB_SUFFIX@_FOUND TRUE) # Compute the installation prefix from this tensorflow@TF_PORT_SUFFIX@-config.cmake file location. # CMAKE_CURRENT_LIST_DIR = [vcpkg_installed_dir]/[target_triplet]/share/tensorflow@TF_PORT_SUFFIX@ get_filename_component(TENSORFLOW_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet]/share get_filename_component(TENSORFLOW_INSTALL_PREFIX "${TENSORFLOW_INSTALL_PREFIX}" DIRECTORY) # TENSORFLOW_INSTALL_PREFIX = [vcpkg_installed_dir]/[target_triplet] add_library(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ INTERFACE IMPORTED GLOBAL) target_include_directories(tensorflow@TF_LIB_SUFFIX@::tensorflow@TF_LIB_SUFFIX@ INTERFACE @TF_INCLUDE_DIRS@ ) ================================================ FILE: ports/tensorflow-common/vcpkg.json ================================================ { "name": "tensorflow-common", "version-semver": "2.10.0", "port-version": 4, "description": "This meta package holds common files for the C [tensorflow] and the C++ [tensorflow-cc] API version of TensorFlow but is not installable on its own.", "homepage": "https://github.com/tensorflow/tensorflow", "license": "Apache-2.0" } ================================================ FILE: ports/tensorpipe/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO pytorch/tensorpipe REF 52791a2fd214b2a9dc5759d36725909c1daa7f2e SHA512 1e5faf17a7236c5506c08cb28be16069b11bb929bbca64ed9745ce4277d46739186ab7d6597da7437d90ed2d166d4c37ef2f3bceabe8083ef3adbb0e8e5f227e PATCHES "${INSTALL_PACKAGE_CONFIG_PATCH}" support-find-package.patch use-vcpkg.patch support-test.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuda TP_USE_CUDA cuda TP_ENABLE_CUDA_IPC pybind11 TP_BUILD_PYTHON test TP_BUILD_TESTING ) if("pybind11" IN_LIST FEATURES) vcpkg_find_acquire_program(PYTHON3) list(APPEND FEATURE_OPTIONS -DPYTHON_EXECUTABLE=${PYTHON3}) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTP_ENABLE_SHM=${VCPKG_TARGET_IS_LINUX} -DTP_ENABLE_IBV=OFF -DTP_ENABLE_CMA=OFF -DTP_BUILD_LIBUV=OFF # will use libuv package -DTP_ENABLE_CUDA_GDR=OFF MAYBE_UNUSED_VARIABLES TP_ENABLE_CUDA_GDR TP_ENABLE_CUDA_IPC ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/unofficial-tensorpipe" PACKAGE_NAME "unofficial-tensorpipe") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) ================================================ FILE: ports/tensorpipe/support-find-package.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 77df76d..bebb8c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,5 +24,17 @@ include(MiscCheck) add_subdirectory(tensorpipe) install(EXPORT TensorpipeTargets - DESTINATION share/cmake/Tensorpipe - FILE TensorpipeTargets.cmake) + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/unofficial-tensorpipe + NAMESPACE unofficial::tensorpipe:: + FILE unofficial-tensorpipe-targets.cmake) + +# Create TensorpipeConfig.cmake for find_package(unofficial-tensorpipe CONFIG) +include(CMakePackageConfigHelpers) +get_filename_component(CONFIG_FILE_PATH ${CMAKE_CURRENT_BINARY_DIR}/unofficial-tensorpipe-config.cmake ABSOLUTE) +configure_package_config_file( + cmake/unofficial-tensorpipe-config.cmake.in ${CONFIG_FILE_PATH} + INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/unofficial-tensorpipe) + +# Install the generated config file +install(FILES ${CONFIG_FILE_PATH} + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/unofficial-tensorpipe) diff --git a/cmake/unofficial-tensorpipe-config.cmake.in b/cmake/unofficial-tensorpipe-config.cmake.in new file mode 100644 index 000000000..f2ea8ce47 --- /dev/null +++ b/cmake/unofficial-tensorpipe-config.cmake.in @@ -0,0 +1,15 @@ +@PACKAGE_INIT@ +include(CMakeFindDependencyMacro) + +find_dependency(libuv REQUIRED) + +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/unofficial-tensorpipe-config-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() + +# import targets +include("${_DIR}/unofficial-tensorpipe-targets.cmake") + +check_required_components(@PROJECT_NAME@) diff --git a/tensorpipe/python/CMakeLists.txt b/tensorpipe/python/CMakeLists.txt index ce494722f..b722381f8 100644 --- a/tensorpipe/python/CMakeLists.txt +++ b/tensorpipe/python/CMakeLists.txt @@ -14,3 +14,8 @@ endif() set(PYBIND11_CPP_STANDARD -std=c++14) pybind11_add_module(pytensorpipe tensorpipe.cc) target_link_libraries(pytensorpipe PRIVATE tensorpipe) + +install(TARGETS pytensorpipe + EXPORT TensorpipeTargets + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ================================================ FILE: ports/tensorpipe/support-test.patch ================================================ diff --git a/tensorpipe/test/CMakeLists.txt b/tensorpipe/test/CMakeLists.txt index 53e8643..09baaa0 100644 --- a/tensorpipe/test/CMakeLists.txt +++ b/tensorpipe/test/CMakeLists.txt @@ -93,25 +93,30 @@ if(TP_USE_CUDA) channel/cuda_ipc/cuda_ipc_test.cc ) endif() - - list(APPEND TP_TEST_SRCS - channel/cuda_gdr/cuda_gdr_test.cc - ) - + if(TP_ENABLE_CUDA_GDR) + list(APPEND TP_TEST_SRCS + channel/cuda_gdr/cuda_gdr_test.cc + ) + endif() cuda_add_library(tensorpipe_cuda_kernel channel/kernel.cu) list(APPEND TP_TEST_LINK_LIBRARIES tensorpipe_cuda_kernel) list(APPEND TP_TEST_LINK_LIBRARIES tensorpipe_cuda) endif() -add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/googletest - ${PROJECT_BINARY_DIR}/third_party/googletest EXCLUDE_FROM_ALL) +find_package(GTest CONFIG REQUIRED) + +if (TARGET libuv::uv) + set(LIBUV_LIBRARY libuv::uv) +else() + set(LIBUV_LIBRARY libuv::uv_a) +endif() list(APPEND TP_TEST_LINK_LIBRARIES tensorpipe - uv::uv - gmock - gtest_main) + ${LIBUV_LIBRARY} + GTest::gmock + GTest::gtest_main) add_executable(tensorpipe_test ${TP_TEST_SRCS}) ================================================ FILE: ports/tensorpipe/use-vcpkg.patch ================================================ diff --git a/tensorpipe/CMakeLists.txt b/tensorpipe/CMakeLists.txt index efcffc2..dd9bd16 100644 --- a/tensorpipe/CMakeLists.txt +++ b/tensorpipe/CMakeLists.txt @@ -119,8 +119,12 @@ list(APPEND TP_PUBLIC_HDRS transport/uv/utility.h) # Add uv package -find_package(uv REQUIRED) -list(APPEND TP_LINK_LIBRARIES uv::uv) +find_package(libuv CONFIG REQUIRED) +if (TARGET libuv::uv) +list(APPEND TP_LINK_LIBRARIES libuv::uv) +else() +list(APPEND TP_LINK_LIBRARIES libuv::uv_a) +endif() ### shm @@ -184,7 +188,8 @@ configure_file(config.h.in config.h) # We should keep libnop headers private as they should not be exposed to downstream users, # but they're currently transitively included by tensorpipe/transport/connection.h (which # is still unclear whether it should be a public or private header). -list(APPEND TP_INCLUDE_DIRS $) +find_path(LIBNOP_INCLUDE_DIRS "nop/serializer.h" REQUIRED) +list(APPEND TP_INCLUDE_DIRS $) ## Target diff --git a/tensorpipe/python/CMakeLists.txt b/tensorpipe/python/CMakeLists.txt index b722381..688886a 100644 --- a/tensorpipe/python/CMakeLists.txt +++ b/tensorpipe/python/CMakeLists.txt @@ -4,16 +4,11 @@ # This source code is licensed under the BSD-style license found in the # LICENSE file in the root directory of this source tree. -if(NOT (COMMAND pybind11_add_module)) - add_subdirectory( - ${PROJECT_SOURCE_DIR}/third_party/pybind11 - ${PROJECT_BINARY_DIR}/third_party/pybind11 - EXCLUDE_FROM_ALL) -endif() +find_package(pybind11 CONFIG REQUIRED) set(PYBIND11_CPP_STANDARD -std=c++14) pybind11_add_module(pytensorpipe tensorpipe.cc) -target_link_libraries(pytensorpipe PRIVATE tensorpipe) +target_link_libraries(pytensorpipe PRIVATE tensorpipe pybind11::module) install(TARGETS pytensorpipe EXPORT TensorpipeTargets ================================================ FILE: ports/tensorpipe/vcpkg.json ================================================ { "name": "tensorpipe", "version-date": "2022-03-16", "port-version": 5, "description": "A tensor-aware point-to-point communication primitive for machine learning", "homepage": "https://github.com/pytorch/tensorpipe", "license": "BSD-3-Clause", "supports": "linux | osx", "dependencies": [ "libnop", "libuv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Enable support for CUDA tensors, CUDA IPC channel", "dependencies": [ "cuda" ] }, "pybind11": { "description": "Build Python bindings", "dependencies": [ "pybind11" ] }, "test": { "description": "Build with Google.Test", "dependencies": [ "gtest" ] } } } ================================================ FILE: ports/termcolor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ikalnytskyi/termcolor REF b3cb0f365f8435588df7a6b12a82b2ac5fc1fe95 #v2.1.0 SHA512 8a95c654b68728a2258eba1c40daf0e5cc69ba24e15e839f75341a694a20a930c042820d68c661ca1971b68dcc93f895513dc73774818b94e205a3a73199b550 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${port}/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/termcolor/vcpkg.json ================================================ { "name": "termcolor", "version": "2.1.0", "description": "Termcolor is a header-only C++ library for printing colored messages to the terminal.", "homepage": "https://github.com/ikalnytskyi/termcolor", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tesseract/fix-link-include-path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 68da6c5..781fb97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -820,7 +820,8 @@ target_include_directories( $ $ $ - $) + $ + $) if(BUILD_SHARED_LIBS) target_compile_definitions( libtesseract ================================================ FILE: ports/tesseract/fix_static_link_icu.patch ================================================ diff --git a/src/training/CMakeLists.txt b/src/training/CMakeLists.txt index 429ed04..9878fa5 100644 --- a/src/training/CMakeLists.txt +++ b/src/training/CMakeLists.txt @@ -72,7 +72,7 @@ if(NOT SW_BUILD) if(PKG_CONFIG_FOUND) pkg_check_modules(ICU REQUIRED IMPORTED_TARGET icu-uc icu-i18n) else() - find_package(ICU 52.1 COMPONENTS uc i18n) + find_package(ICU 72.1 COMPONENTS uc i18n dt) endif() if(ICU_FOUND) message(">> ICU_FOUND ${ICU_FOUND} ${ICU_VERSION} ${ICU_LIBRARIES} ${ICU_INCLUDE_DIRS}") ================================================ FILE: ports/tesseract/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tesseract-ocr/tesseract REF "${VERSION}" SHA512 e9103c68ba186821aedd38de4d9949cd6732da93a2d0764de18aaaac70eb9c305384a6eb1fe656a8a269bee833178a583a91dd72027ae26d27c8329ed722f4a9 PATCHES fix_static_link_icu.patch fix-link-include-path.patch target-curl.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES training-tools BUILD_TRAINING_TOOLS ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUSE_SYSTEM_ICU=True -DCMAKE_REQUIRE_FIND_PACKAGE_LibArchive=ON -DCMAKE_REQUIRE_FIND_PACKAGE_CURL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Leptonica=ON -DCMAKE_DISABLE_FIND_PACKAGE_OpenCL=ON -DLeptonica_DIR=YES -DSW_BUILD=OFF -DLEPT_TIFF_RESULT=ON "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_OpenCL ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tesseract) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/tesseract/TesseractConfig.cmake" "find_dependency(Leptonica)" [[ find_dependency(CURL) find_dependency(Leptonica) find_dependency(LibArchive) if(ANDROID) find_dependency(CpuFeaturesNdkCompat CONFIG) endif() ]] ) vcpkg_copy_tools(TOOL_NAMES tesseract AUTO_CLEAN) vcpkg_fixup_pkgconfig() if("training-tools" IN_LIST FEATURES) list(APPEND TRAINING_TOOLS ambiguous_words classifier_tester combine_tessdata cntraining dawg2wordlist mftraining shapeclustering wordlist2dawg combine_lang_model lstmeval lstmtraining text2image set_unicharset_properties unicharset_extractor merge_unicharsets ) vcpkg_copy_tools(TOOL_NAMES ${TRAINING_TOOLS} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Install: file(GLOB API_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/api/*.h") file(INSTALL ${API_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/api") file(GLOB ARCH_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/arch/*.h") file(INSTALL ${ARCH_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/arch") file(GLOB CCMAIN_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccmain/*.h") file(INSTALL ${CCMAIN_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccmain") file(GLOB CCSTRUCT_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccstruct/*.h") file(INSTALL ${CCSTRUCT_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccstruct") file(GLOB CCUTIL_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/ccutil/*.h") file(INSTALL ${CCUTIL_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/ccutil") file(GLOB CLASSIFY_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/classify/*.h") file(INSTALL ${CLASSIFY_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/classify") file(GLOB CUTIL_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/cutil/*.h") file(INSTALL ${CUTIL_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/cutil") file(GLOB DICT_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/dict/*.h") file(INSTALL ${DICT_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/dict") file(GLOB LSTM_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/lstm/*.h") file(INSTALL ${LSTM_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/lstm") file(GLOB TEXTORD_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/textord/*.h") file(INSTALL ${TEXTORD_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/textord") file(GLOB VIEWER_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/viewer/*.h") file(INSTALL ${VIEWER_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/viewer") file(GLOB WORDREC_HEADER_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/src/wordrec/*.h") file(INSTALL ${WORDREC_HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/tesseract/wordrec") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tesseract/target-curl.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index faf7ac1..5066996 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -818,7 +818,7 @@ if(LibArchive_FOUND) target_link_libraries(libtesseract PUBLIC ${LibArchive_LIBRARIES}) endif(LibArchive_FOUND) if(CURL_FOUND) - if(NOT CURL_LIBRARIES) + if(TARGET CURL::libcurl) target_link_libraries(libtesseract PUBLIC CURL::libcurl) else() target_link_libraries(libtesseract PUBLIC ${CURL_LIBRARIES}) ================================================ FILE: ports/tesseract/vcpkg.json ================================================ { "name": "tesseract", "version": "5.5.2", "description": "An OCR Engine that was developed at HP Labs between 1985 and 1995... and now at Google.", "homepage": "https://github.com/tesseract-ocr/tesseract", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "cpu-features", "platform": "android" }, { "name": "curl", "default-features": false }, "leptonica", { "name": "libarchive", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "training-tools": { "description": "build training tools", "dependencies": [ "cairo", "fontconfig", "icu", "pango" ] } } } ================================================ FILE: ports/tevclient/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO westlicht/tevclient REF aae4d33472bcf23a5b66af27dcea7ca299b61976 SHA512 e452b6b6cfbe7fc56e0f4794c8a4ecdd5695da2a8ae006ea02fed0a4c5a13a411042e66f6996a7e49b789a5ff86cdfb771cb55ba0a30465649ed1c4f5f7062c4 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/tevclient) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tevclient/vcpkg.json ================================================ { "name": "tevclient", "version-date": "2023-12-04", "description": "C++ client library for communicating to the tev image viewer", "homepage": "https://github.com/westlicht/tevclient", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tfhe/mac-fix.patch ================================================ diff --git a/src/libtfhe/fft_processors/nayuki/fft_processor_nayuki.cpp b/src/libtfhe/fft_processors/nayuki/fft_processor_nayuki.cpp index 26de3f0..422c7f6 100644 --- a/src/libtfhe/fft_processors/nayuki/fft_processor_nayuki.cpp +++ b/src/libtfhe/fft_processors/nayuki/fft_processor_nayuki.cpp @@ -12,7 +12,7 @@ FFT_Processor_nayuki::FFT_Processor_nayuki(const int N): _2N(2*N),N(N),Ns2(N/2) tables_reverse = fft_init_reverse(_2N); omegaxminus1 = (cplx*) malloc(sizeof(cplx) * _2N); for (int x=0; x<_2N; x++) { - omegaxminus1[x]=cos(x*M_PI/N)-1. + sin(x*M_PI/N) * 1i; + omegaxminus1[x]=cplx(cos(x*M_PI/N)-1., sin(x*M_PI/N)); // instead of cos(x*M_PI/N)-1. + sin(x*M_PI/N) * 1i //exp(i.x.pi/N)-1 } } ================================================ FILE: ports/tfhe/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tfhe/tfhe REF v1.0.1 SHA512 1d625eb00bf6a36fd86cfad8e1763d7030dd73d68f2422d1678f51352708e9275f0ce69c23fb0d9fec30fba00e1ca4a3df29fb4fc6dfe3b7f16e0d350aa7f170 HEAD_REF master PATCHES mac-fix.patch ) # Workaround for https://github.com/tfhe/tfhe/issues/246 vcpkg_replace_string("${SOURCE_PATH}/src/CMakeLists.txt" "-Wall -Werror" "") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/src" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tfhe/vcpkg.json ================================================ { "name": "tfhe", "version-semver": "1.0.1", "port-version": 5, "description": "TFHE is open-source software distributed under the terms of the Apache 2.0 license.", "homepage": "https://github.com/tfhe/tfhe", "supports": "!windows & !arm", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tgbot-cpp/cmake-project-include.cmake ================================================ if("disable-nagles" IN_LIST FEATURES) add_compile_definitions(TGBOT_DISABLE_NAGLES_ALGORITHM) endif() if("expand-read" IN_LIST FEATURES) add_compile_definitions(TGBOT_CHANGE_READ_BUFFER_SIZE) endif() if("expand-socket" IN_LIST FEATURES) add_compile_definitions(TGBOT_CHANGE_SOCKET_BUFFER_SIZE) endif() ================================================ FILE: ports/tgbot-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO reo7sp/tgbot-cpp REF "v${VERSION}" SHA512 34eac9aac2cbf6025bde24c1a2bdb79b143a18b8fffd81e51340ee3cbb61338b1747e3d54c2d8b0f99e381231756bf11daa4b6ba4da1fd0a1ef40969dee7c647 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TESTS=OFF -DBUILD_DOCUMENTATION=OFF "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/cmake-project-include.cmake" "-DFEATURES=${FEATURES}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/TgBot") file(READ "${CURRENT_PACKAGES_DIR}/share/tgbot-cpp/TgBotConfig.cmake" tgbot_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/tgbot-cpp/TgBotConfig.cmake" " include(CMakeFindDependencyMacro) find_dependency(Boost COMPONENTS system) find_dependency(CURL) ${tgbot_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tgbot-cpp/vcpkg.json ================================================ { "name": "tgbot-cpp", "version": "1.9.1", "port-version": 1, "description": "C++ library for Telegram bot API.", "homepage": "https://github.com/reo7sp/tgbot-cpp", "license": "MIT", "supports": "!uwp", "dependencies": [ "boost-algorithm", "boost-asio", "boost-lexical-cast", "boost-property-tree", "boost-system", "boost-variant", { "name": "curl", "default-features": false }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "disable-nagles": { "description": "Disable Nagle's algorithm" }, "expand-read": { "description": "Read Buffer Size Expansion" }, "expand-socket": { "description": "Socket Buffer Size Expansion" } } } ================================================ FILE: ports/tgc/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(tgc LANGUAGES C) include(GNUInstallDirs) add_library(tgc tgc.c) target_include_directories( tgc PUBLIC $ $ ) set_target_properties(tgc PROPERTIES PUBLIC_HEADER tgc.h) install(TARGETS tgc EXPORT unofficial-tgc-config) install( EXPORT unofficial-tgc-config NAMESPACE unofficial::tgc:: DESTINATION share/unofficial-tgc PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/tgc/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO orangeduck/tgc REF 35207051557c79ea25942c021fb18856c72af8e3 SHA512 d56153cfb00ad4941c7c88e6cc54b54812466e95b61581e9f71e41b6200746e2143344f0d292032e92f7c90eaa60d0df91120b36e3aad0e354836df6d28e2c35 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${SOURCE_PATH}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/tgc/vcpkg.json ================================================ { "name": "tgc", "version-date": "2019-08-11", "port-version": 4, "description": "A tiny garbage collector for C", "homepage": "https://github.com/orangeduck/tgc", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tgui/devendor-stb.patch ================================================ diff --git a/include/TGUI/extlibs/IncludeStbImage.hpp b/include/TGUI/extlibs/IncludeStbImage.hpp index e19cccb..79d0f0c 100644 --- a/include/TGUI/extlibs/IncludeStbImage.hpp +++ b/include/TGUI/extlibs/IncludeStbImage.hpp @@ -64,7 +64,7 @@ #else # define STB_IMAGE_STATIC # define STB_IMAGE_IMPLEMENTATION -# include +# include #endif #if defined(__GNUC__) diff --git a/include/TGUI/extlibs/IncludeStbImageWrite.hpp b/include/TGUI/extlibs/IncludeStbImageWrite.hpp index 2e23a5b..97ce878 100644 --- a/include/TGUI/extlibs/IncludeStbImageWrite.hpp +++ b/include/TGUI/extlibs/IncludeStbImageWrite.hpp @@ -52,7 +52,7 @@ #else # define STB_IMAGE_WRITE_STATIC # define STB_IMAGE_WRITE_IMPLEMENTATION -# include +# include #endif #if defined(__GNUC__) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6a08458..c575036 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -225,6 +225,10 @@ else() set_target_properties(tgui PROPERTIES MINSIZEREL_POSTFIX -s) set_target_properties(tgui PROPERTIES RELWITHDEBINFO_POSTFIX -s) endif() +find_path(STB_INCLUDE_DIR stb_image.h REQUIRED) +target_include_directories(tgui PRIVATE "${STB_INCLUDE_DIR}") +find_path(TGUI_SYSTEM_STB_IMAGE_WRITE_INCLUDE_DIR stb_image_write.h REQUIRED) +target_include_directories(tgui SYSTEM PRIVATE "${TGUI_SYSTEM_STB_IMAGE_WRITE_INCLUDE_DIR}") if (TGUI_BUILD_AS_CXX_MODULE) target_sources(tgui ================================================ FILE: ports/tgui/portfile.cmake ================================================ set(BACKEND_LST "sfml" "sdl2" "sdl3" "raylib") foreach(BACKEND IN LISTS BACKEND_LST) if(BACKEND IN_LIST FEATURES) set(HAS_BACKEND ON) endif() endforeach() if(NOT HAS_BACKEND) message(FATAL_ERROR "At least one of the backend features must be selected: ${BACKEND_LST}") endif() if(VCPKG_TARGET_IS_ANDROID) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) elseif(VCPKG_TARGET_IS_IOS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO texus/TGUI REF "v${VERSION}" SHA512 54d46e3604ebe3f3f2ff845da9348152e780a2e67eddc9d6476f5b66b24a3930ced34ac097f4006c9475d7d963d87076dd4ee4cc47aad23b501f14663be5745e HEAD_REF 1.x PATCHES devendor-stb.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/src/Backends/SDL/cmake_modules") # Config available file(REMOVE_RECURSE "${SOURCE_PATH}/include/TGUI/extlibs/stb") set(TGUI_SHARE_PATH "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(TGUI_TOOLS_PATH "${CURRENT_PACKAGES_DIR}/tools/${PORT}") string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" TGUI_USE_STATIC_STD_LIBS) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sfml TGUI_HAS_BACKEND_SFML_GRAPHICS tool TGUI_BUILD_GUI_BUILDER sdl3 TGUI_USE_SDL3 raylib TGUI_HAS_BACKEND_RAYLIB ) if(FEATURES MATCHES "sdl") list(APPEND FEATURE_OPTIONS "TGUI_HAS_BACKEND_SDL_RENDERER") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS ${FEATURE_OPTIONS} "-DTGUI_MISC_INSTALL_PREFIX=${TGUI_SHARE_PATH}" "-DCMAKE_INSTALL_DOCDIR=${TGUI_SHARE_PATH}" -DTGUI_USE_STATIC_STD_LIBS=${TGUI_USE_STATIC_STD_LIBS} -DTGUI_BACKEND=Custom -DTGUI_BUILD_DOC=OFF -DTGUI_BUILD_FRAMEWORK=OFF -DTGUI_INSTALL_PKGCONFIG_FILES=OFF OPTIONS_DEBUG -DTGUI_BUILD_GUI_BUILDER=OFF MAYBE_UNUSED_VARIABLES TGUI_USE_STATIC_STD_LIBS ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TGUI) vcpkg_copy_pdbs() if("tool" IN_LIST FEATURES) message(STATUS "Check for: ${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}") if(EXISTS "${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}") file(MAKE_DIRECTORY "${TGUI_TOOLS_PATH}") file(RENAME "${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${TGUI_TOOLS_PATH}/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}") # Need to copy `resources` and `themes` directories file(COPY "${TGUI_SHARE_PATH}/gui-builder/resources" DESTINATION "${TGUI_TOOLS_PATH}") file(COPY "${TGUI_SHARE_PATH}/gui-builder/themes" DESTINATION "${TGUI_TOOLS_PATH}") file(REMOVE_RECURSE "${TGUI_SHARE_PATH}/gui-builder") vcpkg_copy_tool_dependencies("${TGUI_TOOLS_PATH}") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" # Empty folders "${CURRENT_PACKAGES_DIR}/include/TGUI/extlibs/nanosvg" "${CURRENT_PACKAGES_DIR}/include/TGUI/extlibs/glad" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/license.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright") ================================================ FILE: ports/tgui/usage ================================================ tgui provides CMake targets: find_package(TGUI CONFIG REQUIRED) target_link_libraries(main PRIVATE TGUI::TGUI) ================================================ FILE: ports/tgui/vcpkg.json ================================================ { "name": "tgui", "version": "1.8.0", "port-version": 2, "description": "TGUI is an easy to use, cross-platform, C++ GUI for SFML.", "homepage": "https://tgui.eu", "license": "Zlib", "dependencies": [ "stb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "sfml" ], "features": { "raylib": { "description": "Build the RAYLIB backend", "dependencies": [ "raylib" ] }, "sdl2": { "description": "Build the SDL backend", "dependencies": [ { "name": "opengl", "platform": "!android & !ios" }, "sdl2", "sdl2-ttf" ] }, "sdl3": { "description": "Build the SDL3 backend", "dependencies": [ { "name": "opengl", "platform": "!android & !ios" }, "sdl3", "sdl3-ttf" ] }, "sfml": { "description": "Build the SFML backend", "dependencies": [ { "name": "sfml", "default-features": false, "features": [ "graphics" ] } ] }, "tool": { "description": "Build GUI builder" } } } ================================================ FILE: ports/thermadiag-seq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Thermadiag/seq REF "v${VERSION}" SHA512 a784727e9b720e811ffd4431b194305fdabd5719abeb69df6d6a85e4f16f796ab702e1c4790a3509f70f52d00f38b1775daab33648b781b7771d165c328692f8 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSEQ_BUILD_TESTS=OFF -DSEQ_BUILD_BENCHS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME seq CONFIG_PATH lib/cmake/seq) vcpkg_fixup_pkgconfig() file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig/seq.pc" "${CURRENT_PACKAGES_DIR}/share/pkgconfig/${PORT}.pc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/thermadiag-seq/vcpkg.json ================================================ { "name": "thermadiag-seq", "version": "2.0", "description": "a collection of original C++17 STL-like containers and related tools", "homepage": "https://github.com/Thermadiag/seq", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/think-cell-range/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO think-cell/think-cell-library REF "${VERSION}" SHA512 dbb391982fc8050a020c9597fa8608abf87f351b84b7060cfadac4670fd4564f34836a8862f42647983f601a21d6d8bbda95429fc6e2788e94a343fbba09ae99 HEAD_REF main ) file(INSTALL "${SOURCE_PATH}/tc/range" DESTINATION "${CURRENT_PACKAGES_DIR}/include/think-cell" FILES_MATCHING PATTERN "*.h") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") file(COPY "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/range.example.cpp" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/think-cell-range/vcpkg.json ================================================ { "name": "think-cell-range", "version": "2023.1", "port-version": 1, "description": "think-cell's range library", "homepage": "https://github.com/think-cell/think-cell-library", "license": "BSL-1.0", "dependencies": [ "boost-filesystem", "boost-fusion", "boost-integer", "boost-intrusive", "boost-lexical-cast", "boost-mpl", "boost-multi-index", "boost-predef", "boost-preprocessor", "boost-range", "boost-spirit" ] } ================================================ FILE: ports/thomasmonkman-filewatch/fix-unix-listen.patch ================================================ diff --git a/FileWatch.hpp b/FileWatch.hpp index 4eba08b..2c0ff6d 100644 --- a/FileWatch.hpp +++ b/FileWatch.hpp @@ -276,7 +276,7 @@ namespace filewatch { FolderInfo _directory; - const std::uint32_t _listen_filters = IN_MODIFY | IN_CREATE | IN_DELETE; + const std::uint32_t _listen_filters = IN_MODIFY | IN_CREATE | IN_DELETE | IN_MOVE; const static std::size_t event_size = (sizeof(struct inotify_event)); #endif // __unix__ @@ -604,7 +604,7 @@ namespace filewatch { } }(); - const auto watch = inotify_add_watch(folder, watch_path.c_str(), IN_MODIFY | IN_CREATE | IN_DELETE); + const auto watch = inotify_add_watch(folder, watch_path.c_str(), IN_MODIFY | IN_CREATE | IN_DELETE | IN_MOVE); if (watch < 0) { throw std::system_error(errno, std::system_category()); @@ -644,6 +644,14 @@ namespace filewatch { { parsed_information.emplace_back(StringType{ changed_file }, Event::modified); } + else if (event->mask & IN_MOVED_FROM) + { + parsed_information.emplace_back(StringType{ changed_file }, Event::renamed_old); + } + else if (event->mask & IN_MOVED_TO) + { + parsed_information.emplace_back(StringType{ changed_file }, Event::renamed_new); + } } } i += event_size + event->len; ================================================ FILE: ports/thomasmonkman-filewatch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ThomasMonkman/filewatch REF a59891baf375b73ff28144973a6fafd3fe40aa21 SHA512 9a110b42a499ed7047bb8a79029134943582b388db810974ad6b5f91d1ec720e45a9a3543c4a56ee97d51439f5a34222bada0fb43281dcbc2e65bdee38f836d5 HEAD_REF master PATCHES fix-unix-listen.patch ) file(COPY "${SOURCE_PATH}/FileWatch.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/thomasmonkman-filewatch") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/thomasmonkman-filewatch/vcpkg.json ================================================ { "name": "thomasmonkman-filewatch", "version-date": "2023-01-16", "port-version": 2, "description": "File watcher in C++.", "homepage": "https://github.com/ThomasMonkman/filewatch", "license": "MIT" } ================================================ FILE: ports/thorvg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO thorvg/thorvg REF "v${VERSION}" SHA512 c42260f41536d8b79e0d738d8d8040e841030a3581bd5b9f4e98652d7ca862007ba2e7cde80c966e3b3ffe50d0a107f78b486c7587bde3cce055ed03dec3c470 HEAD_REF master ) if ("tools" IN_LIST FEATURES) list(APPEND BUILD_OPTIONS -Dtools=all) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${BUILD_OPTIONS} # see ${SOURCE_PATH}/meson_options.txt -Dstatic=true # Use static modules -Dengines=['sw'] -Dloaders=all -Dsavers=all -Dsimd=true -Dbindings=capi -Dtests=false -Dstrip=false -Dextra=[''] OPTIONS_DEBUG -Dlog=true -Dbindir=${CURRENT_PACKAGES_DIR}/debug/bin OPTIONS_RELEASE -Dbindir=${CURRENT_PACKAGES_DIR}/bin ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/thorvg-1/thorvg.h" "#ifndef TVG_STATIC" "#if 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/thorvg-1/thorvg.h" "#ifndef TVG_STATIC" "#if 1") endif() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES tvg-svg2png tvg-lottie2gif AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/thorvg/vcpkg.json ================================================ { "name": "thorvg", "version": "1.0.2", "port-version": 1, "description": "ThorVG is a platform-independent portable library for drawing vector-based scenes and animations", "homepage": "https://www.thorvg.org", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ], "features": { "tools": { "description": "Build tools" } } } ================================================ FILE: ports/threadpool/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO threadpool/threadpool REF "0.2.5 (Stable)" SHA512 961576b619e5227098fa37a3c8d903128b3c2a9cf1e55c057c6f9126062bcccfa6fe2510b4e8ee5d1a0e3d0425f0077c50eccad2120a423f69e2705460780e7c FILENAME "threadpool-0_2_5-src.zip" ) file(INSTALL ${SOURCE_PATH}/threadpool/boost DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(INSTALL ${SOURCE_PATH}/threadpool/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/threadpool/vcpkg.json ================================================ { "name": "threadpool", "version": "0.2.5", "port-version": 4, "description": "threadpool is a cross-platform C++ thread pool library. It provides a convenient way for dispatching asynchronous tasks and can be easily customized. threadpool is based on the high-quality Boost source libraries.", "homepage": "https://threadpool.sourceforge.net/", "dependencies": [ "boost-thread" ] } ================================================ FILE: ports/thrift/fix_missing_quotes_in_config_and_bin_path.patch ================================================ diff --git a/build/cmake/ThriftConfig.cmake.in b/build/cmake/ThriftConfig.cmake.in index f52480104..616dbeda6 100644 --- a/build/cmake/ThriftConfig.cmake.in +++ b/build/cmake/ThriftConfig.cmake.in @@ -25,8 +25,8 @@ set_and_check(THRIFT_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}") set_and_check(THRIFT_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@/thrift") -if(@BUILD_COMPILER@) - set_and_check(THRIFT_BIN_DIR "@PACKAGE_BIN_INSTALL_DIR@") +if("@BUILD_COMPILER@") + set_and_check(THRIFT_BIN_DIR "@PACKAGE_BIN_INSTALL_DIR@/../tools/thrift") if(NOT DEFINED THRIFT_COMPILER) set(THRIFT_COMPILER "${THRIFT_BIN_DIR}/thrift@CMAKE_EXECUTABLE_SUFFIX@") endif() @@ -37,14 +37,14 @@ if (NOT TARGET thrift::thrift) endif() set(THRIFT_LIBRARIES thrift::thrift) -if(@ZLIB_FOUND@ AND @WITH_ZLIB@) +if("@ZLIB_FOUND@" AND "@WITH_ZLIB@") if (NOT TARGET thriftz::thriftz) include("${THRIFT_CMAKE_DIR}/thriftzTargets.cmake") endif() set(THRIFT_LIBRARIES thriftz::thriftz) endif() -if(@Qt5_FOUND@ AND @WITH_QT5@) +if("@Qt5_FOUND@" AND "@WITH_QT5@") if (NOT TARGET thriftqt5::thriftqt5) include("${THRIFT_CMAKE_DIR}/thriftqt5Targets.cmake") endif() @@ -61,15 +61,15 @@ endif() include(CMakeFindDependencyMacro) -if(@ZLIB_FOUND@ AND @WITH_ZLIB@) +if("@ZLIB_FOUND@" AND "@WITH_ZLIB@") find_dependency(ZLIB) endif() -if(@OPENSSL_FOUND@ AND @WITH_OPENSSL@) +if("@OPENSSL_FOUND@" AND "@WITH_OPENSSL@") find_dependency(OpenSSL) endif() -if(@Libevent_FOUND@ AND @WITH_LIBEVENT@) +if("@Libevent_FOUND@" AND "@WITH_LIBEVENT@") if(DEFINED CMAKE_MODULE_PATH) set(THRIFT_CMAKE_MODULE_PATH_OLD ${CMAKE_MODULE_PATH}) else() ================================================ FILE: ports/thrift/pc-suffix.patch ================================================ diff --git a/lib/cpp/thrift-nb.pc.in b/lib/cpp/thrift-nb.pc.in index 2c6a96973..e99eff2bc 100644 --- a/lib/cpp/thrift-nb.pc.in +++ b/lib/cpp/thrift-nb.pc.in @@ -26,5 +26,5 @@ Name: Thrift Description: Thrift Nonblocking API Version: @VERSION@ Requires: thrift = @VERSION@ -Libs: -L${libdir} -lthriftnb +Libs: -L${libdir} -lthriftnb@THRIFT_RUNTIME_POSTFIX@ Cflags: -I${includedir} diff --git a/lib/cpp/thrift-qt5.pc.in b/lib/cpp/thrift-qt5.pc.in index a8b16663e..2720bea79 100644 --- a/lib/cpp/thrift-qt5.pc.in +++ b/lib/cpp/thrift-qt5.pc.in @@ -26,5 +26,5 @@ Name: Thrift Description: Thrift Qt5 API Version: @VERSION@ Requires: thrift = @VERSION@ -Libs: -L${libdir} -lthriftqt5 +Libs: -L${libdir} -lthriftqt5@THRIFT_RUNTIME_POSTFIX@ Cflags: -I${includedir} diff --git a/lib/cpp/thrift-z.pc.in b/lib/cpp/thrift-z.pc.in index 467d2e11c..cde44158a 100644 --- a/lib/cpp/thrift-z.pc.in +++ b/lib/cpp/thrift-z.pc.in @@ -26,5 +26,5 @@ Name: Thrift Description: Thrift Zlib API Version: @VERSION@ Requires: thrift = @VERSION@ -Libs: -L${libdir} -lthriftz +Libs: -L${libdir} -lthriftz@THRIFT_RUNTIME_POSTFIX@ Cflags: -I${includedir} diff --git a/lib/cpp/thrift.pc.in b/lib/cpp/thrift.pc.in index d11e6db29..77da61c3e 100644 --- a/lib/cpp/thrift.pc.in +++ b/lib/cpp/thrift.pc.in @@ -25,5 +25,5 @@ includedir=@includedir@ Name: Thrift Description: Thrift C++ API Version: @VERSION@ -Libs: -L${libdir} -lthrift +Libs: -L${libdir} -lthrift@THRIFT_RUNTIME_POSTFIX@ Cflags: -I${includedir} ================================================ FILE: ports/thrift/portfile.cmake ================================================ # We currently insist on static only because: # - Thrift doesn't yet support building as a DLL on Windows, # - x64-linux only builds static anyway. # From https://github.com/apache/thrift/blob/master/CHANGES.md if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(BISON) vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/thrift/${VERSION}/thrift-${VERSION}.tar.gz" FILENAME "thrift-${VERSION}.tar.gz" SHA512 beb37ee2a295fae7df12cce6449c92799076771bae515fafcc790a62ac6e76ac5584f102315d466b8f5f98e236c9dc4a244695bdcd9f1392d6e9a13d365ddadc ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES pc-suffix.patch fix_missing_quotes_in_config_and_bin_path.patch ) if (VCPKG_TARGET_IS_OSX) message(WARNING "${PORT} requires bison version greater than 2.5,\n\ please use command \`brew install bison\` to install bison") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" shared_lib) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" static_lib) # note we specify values for WITH_STATIC_LIB and WITH_SHARED_LIB because even though # they're marked as deprecated, Thrift incorrectly hard-codes a value for BUILD_SHARED_LIBS. vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" NO_CHARSET_FLAG OPTIONS --trace-expand -DLIB_INSTALL_DIR:PATH=lib -DWITH_SHARED_LIB=${shared_lib} -DWITH_STATIC_LIB=${static_lib} -DBUILD_TESTING=OFF -DBUILD_JAVA=OFF -DWITH_C_GLIB=OFF -DBUILD_C_GLIB=OFF -DCMAKE_DISABLE_FIND_PACKAGE_GLIB=TRUE -DBUILD_PYTHON=OFF -DBUILD_CPP=ON -DWITH_CPP=ON -DWITH_ZLIB=ON -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=TRUE -DWITH_LIBEVENT=ON -DCMAKE_REQUIRE_FIND_PACKAGE_Libevent=TRUE -DWITH_OPENSSL=ON -DCMAKE_REQUIRE_FIND_PACKAGE_OpenSSL=TRUE -DBUILD_TUTORIALS=OFF -DFLEX_EXECUTABLE=${FLEX} -DWITH_QT5=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Qt5=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_Gradle=TRUE -DCMAKE_DISABLE_FIND_PACKAGE_Java=TRUE -DBUILD_JAVASCRIPT=OFF -DBUILD_NODEJS=OFF -DBISON_EXECUTABLE=${BISON} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_GLIB CMAKE_DISABLE_FIND_PACKAGE_Gradle CMAKE_REQUIRE_FIND_PACKAGE_Libevent CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL CMAKE_REQUIRE_FIND_PACKAGE_ZLIB ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Move CMake config files to the right place vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(GLOB COMPILER "${CURRENT_PACKAGES_DIR}/bin/thrift" "${CURRENT_PACKAGES_DIR}/bin/thrift.exe") if(COMPILER) vcpkg_copy_tools(TOOL_NAMES thrift AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/thrift/vcpkg.json ================================================ { "name": "thrift", "version": "0.22.0", "port-version": 1, "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.", "homepage": "https://github.com/apache/thrift", "license": "Apache-2.0", "dependencies": [ "boost-date-time", "boost-locale", "boost-range", "boost-scope-exit", "boost-smart-ptr", "boost-uuid", "libevent", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/tidy-html5/cmake_find_package_support.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8efec25..3fedb02 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -407,10 +407,12 @@ else () OUTPUT_NAME ${LIB_NAME} ) endif () +set_target_properties(${name} PROPERTIES EXPORT_NAME tidy) +target_include_directories( ${name} PUBLIC $) if (NOT TIDY_CONSOLE_SHARED) # user wants default static linkage list ( APPEND add_LIBS ${name} ) endif () -install(TARGETS ${name} +install(TARGETS ${name} EXPORT unofficial-tidy-html5Config RUNTIME DESTINATION ${BIN_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} @@ -440,7 +442,9 @@ if (BUILD_SHARED_LIB) NO_SONAME ${NO_SONAME} ) set_target_properties( ${name} PROPERTIES COMPILE_FLAGS "-DBUILD_SHARED_LIB -DBUILDING_SHARED_LIB") - install(TARGETS ${name} + set_target_properties(${name} PROPERTIES EXPORT_NAME tidy) + target_include_directories( ${name} PUBLIC $) + install(TARGETS ${name} EXPORT unofficial-tidy-html5Config RUNTIME DESTINATION ${BIN_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} @@ -450,6 +454,13 @@ if (BUILD_SHARED_LIB) endif () endif () +#------------------------------------------------------------------------ +# CMake FIND_PACKAGE() Support +#------------------------------------------------------------------------ +install(EXPORT unofficial-tidy-html5Config + DESTINATION ${LIB_INSTALL_DIR}/cmake/unofficial-tidy-html5 + NAMESPACE unofficial::tidy-html5::) + #------------------------------------------------------------------------ # Main Executable ================================================ FILE: ports/tidy-html5/debug-postfix.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 979ae25..4eb88a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,7 +210,9 @@ if(WIN32 AND MSVC) set( MSVC_FLAGS "-DNOMINMAX -D_USE_MATH_DEFINES -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -D__CRT_NONSTDC_NO_WARNINGS" ) # to distinguish between debug and release lib in windows + if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") set( CMAKE_DEBUG_POSTFIX "d" ) # little effect in unix + endif() else() # add any gcc flags endif() diff --git a/tidy.pc.cmake.in b/tidy.pc.cmake.in index 7d819f1..cbdd299 100644 --- a/tidy.pc.cmake.in +++ b/tidy.pc.cmake.in @@ -7,5 +7,5 @@ Name: @LIB_NAME@ Description: @LIBTIDY_DESCRIPTION@ URL: @LIBTIDY_URL@ Version: @LIBTIDY_VERSION@ -Libs: -L${libdir} -l@LIB_NAME@ +Libs: -L${libdir} -l@LIB_NAME@@CMAKE_DEBUG_POSTFIX@ Cflags: -I${includedir} ================================================ FILE: ports/tidy-html5/disable-doc.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8efec25..d2edac2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -508,7 +508,7 @@ endif () # Create man pages ################################################# -if (UNIX AND SUPPORT_CONSOLE_APP) +if (0) find_program( XSLTPROC_FOUND xsltproc ) if (XSLTPROC_FOUND) ## NOTE: man name must match exe ie currently `${LIB_NAME}.1` not `tidy.1` ================================================ FILE: ports/tidy-html5/fix_unsupport_func_uwp.patch ================================================ diff --git a/src/sprtf.c b/src/sprtf.c index 3468ac1..1630405 100644 --- a/src/sprtf.c +++ b/src/sprtf.c @@ -387,7 +387,7 @@ static void wprt( PTSTR ps ) { static char _s_woibuf[1024]; char * cp = _s_woibuf; - int len = (int)lstrlen(ps); + int len = (int)wcslen(ps); if(len) { int ret = WideCharToMultiByte( CP_ACP, /* UINT CodePage, // code page */ 0, /* DWORD dwFlags, // performance and mapping flags */ ================================================ FILE: ports/tidy-html5/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO htacg/tidy-html5 REF 5.8.0 SHA512 f352165bdda5d1fca7bba3365560b64d6f70a4e010821cd246cde43bed5c23cea3408d461d3f889110fd35ec9b68aa2b4e95412b07775eb852b7ee1745007a44 HEAD_REF master PATCHES disable-doc.patch static-vs-shared.patch debug-postfix.patch fix_unsupport_func_uwp.patch cmake_find_package_support.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" NO_CHARSET_FLAG OPTIONS -DBUILD_SHARED_LIB=${BUILD_SHARED_LIB} -DTIDY_CONSOLE_SHARED=${BUILD_SHARED_LIB} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-tidy-html5 CONFIG_PATH lib/cmake/unofficial-tidy-html5) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/bin/tidyd${VCPKG_TARGET_EXECUTABLE_SUFFIX}" ) vcpkg_copy_tools(TOOL_NAMES tidy AUTO_CLEAN) file(INSTALL "${SOURCE_PATH}/README/LICENSE.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tidy-html5/static-vs-shared.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d2edac2..979ae25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -395,11 +395,11 @@ endif () #------------------------------------------------------------------------ # Static Library -# The static library always builds. +if(NOT BUILD_SHARED_LIB) #------------------------------------------------------------------------ set(name tidy-static) add_library ( ${name} STATIC ${CFILES} ${HFILES} ${LIBHFILES} ) -if (WIN32) +if (0) set_target_properties( ${name} PROPERTIES OUTPUT_NAME ${LIB_NAME}_static ) else () @@ -415,12 +415,14 @@ install(TARGETS ${name} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} LIBRARY DESTINATION ${LIB_INSTALL_DIR} ) -install( FILES ${HFILES} DESTINATION ${INCLUDE_INSTALL_DIR} ) if(MSVC) # install(FILES $ DESTINATION lib OPTIONAL) INSTALL(FILES ${PROJECT_BINARY_DIR}/${name}.dir/Debug/${name}.pdb + OPTIONAL DESTINATION lib CONFIGURATIONS Debug ) endif() +endif() +install( FILES ${HFILES} DESTINATION ${INCLUDE_INSTALL_DIR} ) #------------------------------------------------------------------------ # Dynamic Library ================================================ FILE: ports/tidy-html5/vcpkg.json ================================================ { "name": "tidy-html5", "version": "5.8.0", "port-version": 2, "description": "Tidy tidies HTML and XML. It can tidy your documents by itself, and developers can easily integrate its features into even more powerful tools.", "homepage": "https://www.html-tidy.org", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiff/FindCMath.patch ================================================ diff --git a/cmake/FindCMath.cmake b/cmake/FindCMath.cmake index ad92218..9c8247f 100644 --- a/cmake/FindCMath.cmake +++ b/cmake/FindCMath.cmake @@ -31,6 +31,15 @@ include(CheckSymbolExists) include(CheckLibraryExists) check_symbol_exists(pow "math.h" CMath_HAVE_LIBC_POW) +set(CMAKE_FIND_LIBRARY_SUFFIXES_SAVE "${CMAKE_FIND_LIBRARY_SUFFIXES}") +if(VCPKG_CRT_LINKAGE STREQUAL "static") + list(PREPEND CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_STATIC_LIBRARY_SUFFIX}") +endif() +find_library(CMath_LIBRARY_PATH m PATHS ${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}) +if(CMath_LIBRARY_PATH) + set(CMath_LIBRARY m CACHE STRING "Math link library") +endif() +set(CMAKE_FIND_LIBRARY_SUFFIXES "${CMAKE_FIND_LIBRARY_SUFFIXES_SAVE}") find_library(CMath_LIBRARY NAMES m) if(NOT CMath_HAVE_LIBC_POW) @@ -61,7 +70,11 @@ if(CMath_FOUND) endif() if(NOT TARGET CMath::CMath) - if(CMath_LIBRARIES) + if(CMath_LIBRARIES STREQUAL "m") + add_library(CMath::CMath INTERFACE IMPORTED) + set_target_properties(CMath::CMath PROPERTIES + INTERFACE_LINK_LIBRARIES m) + elseif(CMath_LIBRARIES) add_library(CMath::CMath UNKNOWN IMPORTED) set_target_properties(CMath::CMath PROPERTIES IMPORTED_LOCATION "${CMath_LIBRARY}") ================================================ FILE: ports/tiff/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO libtiff/libtiff REF "v${VERSION}" SHA512 dcdabe2598db33a973d06f0009dd528aa1f38813bd6015e2595097b838a42240f9ccbe7524b5235ea2f4207a10d5d706339c7a6f4772b531e00a20281a00f67b HEAD_REF master PATCHES FindCMath.patch prefer-config.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cxx tiff-cxx jpeg jpeg jpeg CMAKE_REQUIRE_FIND_PACKAGE_JPEG libdeflate libdeflate libdeflate CMAKE_REQUIRE_FIND_PACKAGE_Deflate lerc lerc lerc CMAKE_REQUIRE_FIND_PACKAGE_LERC lzma lzma lzma CMAKE_REQUIRE_FIND_PACKAGE_liblzma tools tiff-tools webp webp webp CMAKE_REQUIRE_FIND_PACKAGE_WebP zip zlib zip CMAKE_REQUIRE_FIND_PACKAGE_ZLIB zstd zstd zstd CMAKE_REQUIRE_FIND_PACKAGE_ZSTD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -Dtiff-docs=OFF -Dtiff-contrib=OFF -Dtiff-tests=OFF -Djbig=OFF # This is disabled by default due to GPL/Proprietary licensing. -Djpeg12=OFF -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=ON -DCMAKE_DISABLE_FIND_PACKAGE_GLUT=ON -DZSTD_HAVE_DECOMPRESS_STREAM=ON -DHAVE_JPEGTURBO_DUAL_MODE_8_12=OFF OPTIONS_DEBUG -DCMAKE_DEBUG_POSTFIX=d # tiff sets "d" for MSVC only. MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_GLUT CMAKE_DISABLE_FIND_PACKAGE_OpenGL ZSTD_HAVE_DECOMPRESS_STREAM ) vcpkg_cmake_install() # CMake config wasn't packaged in the past and is not yet usable now, # cf. https://gitlab.com/libtiff/libtiff/-/merge_requests/496 # vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tiff") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libtiff-4.pc") if(EXISTS "${_file}") vcpkg_replace_string("${_file}" "-ltiff" "-ltiffd") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES fax2ps fax2tiff pal2rgb ppm2tiff raw2tiff tiff2bw tiff2pdf tiff2ps tiff2rgba tiffcmp tiffcp tiffcrop tiffdither tiffdump tiffinfo tiffmedian tiffset tiffsplit AUTO_CLEAN ) endif() vcpkg_copy_pdbs() file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/tiff/prefer-config.diff ================================================ diff --git a/cmake/LERCCodec.cmake b/cmake/LERCCodec.cmake index c21dad3d..3d06367f 100644 --- a/cmake/LERCCodec.cmake +++ b/cmake/LERCCodec.cmake @@ -26,7 +26,10 @@ # libLerc set(LERC_SUPPORT FALSE) set(LERC_STATIC FALSE) -find_package(LERC) +find_package(LERC NAMES unofficial-lerc) +if(TARGET unofficial::Lerc::Lerc) + add_library(LERC::LERC ALIAS unofficial::Lerc::Lerc) +endif() option(lerc "use libLerc (required for LERC compression)" ${LERC_FOUND}) if (lerc AND LERC_FOUND AND ZIP_SUPPORT) set(LERC_SUPPORT TRUE) diff --git a/cmake/WebPCodec.cmake b/cmake/WebPCodec.cmake index 1d676a78..77769171 100644 --- a/cmake/WebPCodec.cmake +++ b/cmake/WebPCodec.cmake @@ -26,7 +26,7 @@ # libwebp set(WEBP_SUPPORT FALSE) -find_package(WebP) +find_package(WebP CONFIG) option(webp "use libwebp (required for WEBP compression)" ${WebP_FOUND}) diff --git a/cmake/ZSTDCodec.cmake b/cmake/ZSTDCodec.cmake index 3fac861a..2957aa3a 100644 --- a/cmake/ZSTDCodec.cmake +++ b/cmake/ZSTDCodec.cmake @@ -28,7 +28,7 @@ set(ZSTD_SUPPORT FALSE) set(ZSTD_USABLE FALSE) -find_package(ZSTD) +find_package(ZSTD NAMES zstd) if(ZSTD_FOUND) if(TARGET zstd::libzstd_shared) diff --git a/libtiff/CMakeLists.txt b/libtiff/CMakeLists.txt index 2d76d1ee..68502a35 100755 --- a/libtiff/CMakeLists.txt +++ b/libtiff/CMakeLists.txt @@ -161,7 +161,7 @@ if(JBIG_SUPPORT) endif() if(LERC_SUPPORT) target_link_libraries(tiff PRIVATE LERC::LERC) - if(LERC_VERSION_STRING VERSION_GREATER_EQUAL "4.0") + if(1) string(APPEND tiff_requires_private " Lerc") else() list(APPEND tiff_libs_private_list "${LERC_LIBRARY}") ================================================ FILE: ports/tiff/usage ================================================ tiff is compatible with built-in CMake targets: find_package(TIFF REQUIRED) target_link_libraries(main PRIVATE TIFF::TIFF) tiff provides pkg-config modules: # Tag Image File Format (TIFF) library. libtiff-4 ================================================ FILE: ports/tiff/vcpkg-cmake-wrapper.cmake.in ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) set(z_vcpkg_tiff_find_options "") if("REQUIRED" IN_LIST ARGS) list(APPEND z_vcpkg_tiff_find_options "REQUIRED") endif() if("QUIET" IN_LIST ARGS) list(APPEND z_vcpkg_tiff_find_options "QUIET") endif() _find_package(${ARGS}) if(TIFF_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") include(SelectLibraryConfigurations) set(z_vcpkg_tiff_link_libraries "") set(z_vcpkg_tiff_libraries "") if("@webp@") find_package(WebP CONFIG ${z_vcpkg_tiff_find_options}) list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${WebP_LIBRARIES}) endif() if("@lzma@") find_package(LibLZMA ${z_vcpkg_tiff_find_options}) list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${LIBLZMA_LIBRARIES}) endif() if("@jpeg@") find_package(JPEG ${z_vcpkg_tiff_find_options}) list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${JPEG_LIBRARIES}) endif() if("@zstd@") find_package(zstd CONFIG ${z_vcpkg_tiff_find_options}) set(z_vcpkg_tiff_zstd_target_property "IMPORTED_LOCATION_") if(TARGET zstd::libzstd_shared) set(z_vcpkg_tiff_zstd "\$") set(z_vcpkg_tiff_zstd_target zstd::libzstd_shared) if(WIN32) set(z_vcpkg_tiff_zstd_target_property "IMPORTED_IMPLIB_") endif() else() set(z_vcpkg_tiff_zstd "\$") set(z_vcpkg_tiff_zstd_target zstd::libzstd_static) endif() get_target_property(z_vcpkg_tiff_zstd_configs "${z_vcpkg_tiff_zstd_target}" IMPORTED_CONFIGURATIONS) foreach(z_vcpkg_config IN LISTS z_vcpkg_tiff_zstd_configs) get_target_property(ZSTD_LIBRARY_${z_vcpkg_config} "${z_vcpkg_tiff_zstd_target}" "${z_vcpkg_tiff_zstd_target_property}${z_vcpkg_config}") endforeach() select_library_configurations(ZSTD) if(NOT TARGET ZSTD::ZSTD) add_library(ZSTD::ZSTD INTERFACE IMPORTED) set_property(TARGET ZSTD::ZSTD APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_zstd}) endif() list(APPEND z_vcpkg_tiff_link_libraries ${z_vcpkg_tiff_zstd}) list(APPEND z_vcpkg_tiff_libraries ${ZSTD_LIBRARIES}) unset(z_vcpkg_tiff_zstd) unset(z_vcpkg_tiff_zstd_configs) unset(z_vcpkg_config) unset(z_vcpkg_tiff_zstd_target) endif() if("@lerc@") find_package(unofficial-lerc ${z_vcpkg_tiff_find_options}) get_target_property(z_vcpkg_lerc_configs unofficial::Lerc::Lerc IMPORTED_CONFIGURATIONS) foreach(z_vcpkg_property IN ITEMS IMPORTED_IMPLIB_ IMPORTED_LOCATION_) foreach(z_vcpkg_config IN LISTS z_vcpkg_lerc_configs) get_target_property(Z_VCPKG_LERC_LIBRARY_${z_vcpkg_config} unofficial::Lerc::Lerc "${z_vcpkg_property}${z_vcpkg_config}") endforeach() select_library_configurations(Z_VCPKG_LERC) if(Z_VCPKG_LERC_LIBRARIES) break() endif() endforeach() list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${Z_VCPKG_LERC_LIBRARIES}) unset(z_vcpkg_config) unset(z_vcpkg_lerc_configs) unset(z_vcpkg_property) unset(Z_VCPKG_LERC_FOUND) endif() if("@libdeflate@") find_package(libdeflate ${z_vcpkg_tiff_find_options}) set(z_vcpkg_property "IMPORTED_LOCATION_") if(TARGET libdeflate::libdeflate_shared) set(z_vcpkg_libdeflate_target libdeflate::libdeflate_shared) if(WIN32) set(z_vcpkg_property "IMPORTED_IMPLIB_") endif() else() set(z_vcpkg_libdeflate_target libdeflate::libdeflate_static) endif() get_target_property(z_vcpkg_libdeflate_configs "${z_vcpkg_libdeflate_target}" IMPORTED_CONFIGURATIONS) foreach(z_vcpkg_config IN LISTS z_vcpkg_libdeflate_configs) get_target_property(Z_VCPKG_DEFLATE_LIBRARY_${z_vcpkg_config} "${z_vcpkg_libdeflate_target}" "${z_vcpkg_property}${z_vcpkg_config}") endforeach() select_library_configurations(Z_VCPKG_DEFLATE) list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${Z_VCPKG_DEFLATE_LIBRARIES}) unset(z_vcpkg_config) unset(z_vcpkg_libdeflate_configs) unset(z_vcpkg_libdeflate_target) unset(z_vcpkg_property) unset(Z_VCPKG_DEFLATE_FOUND) endif() if("@zlib@") find_package(ZLIB ${z_vcpkg_tiff_find_options}) list(APPEND z_vcpkg_tiff_link_libraries "\$") list(APPEND z_vcpkg_tiff_libraries ${ZLIB_LIBRARIES}) endif() if(UNIX) list(APPEND z_vcpkg_tiff_link_libraries m) list(APPEND z_vcpkg_tiff_libraries m) endif() if(TARGET TIFF::TIFF) set_property(TARGET TIFF::TIFF APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${z_vcpkg_tiff_link_libraries}) endif() list(APPEND TIFF_LIBRARIES ${z_vcpkg_tiff_libraries}) unset(z_vcpkg_tiff_link_libraries) unset(z_vcpkg_tiff_libraries) endif() unset(z_vcpkg_tiff_find_options) cmake_policy(POP) ================================================ FILE: ports/tiff/vcpkg.json ================================================ { "name": "tiff", "version": "4.7.1", "description": "A library that supports the manipulation of TIFF image files", "homepage": "https://libtiff.gitlab.io/libtiff/", "license": "libtiff", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "jpeg", "lzma", "zip" ], "features": { "cxx": { "description": "Build C++ libtiffxx library" }, "jpeg": { "description": "Support JPEG compression in TIFF image files", "dependencies": [ "libjpeg-turbo" ] }, "lerc": { "description": "Support LERC compression", "dependencies": [ "lerc", { "name": "tiff", "default-features": false, "features": [ "zip" ] } ] }, "libdeflate": { "description": "Use libdeflate for faster ZIP support", "dependencies": [ "libdeflate", { "name": "tiff", "default-features": false, "features": [ "zip" ] } ] }, "lzma": { "description": "Support LZMA compression in TIFF image files", "dependencies": [ "liblzma" ] }, "tools": { "description": "Build tools" }, "webp": { "description": "Support WEBP compression in TIFF image files", "dependencies": [ "libwebp" ] }, "zip": { "description": "Support ZIP/deflate compression in TIFF image files", "dependencies": [ "zlib" ] }, "zstd": { "description": "Support ZSTD compression in TIFF image files", "dependencies": [ "zstd" ] } } } ================================================ FILE: ports/tiledb/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TileDB-Inc/TileDB REF "${VERSION}" HEAD_REF main SHA512 ad869a984c5244bc1657ae7cac86c68693659831caa3998b07a64ec5207fc0c351c15b3519ead9ebb94e2c4255eb1a0e91233f11e2f37c332ddff30adccd50d1 PATCHES rm-cpp17-pmr.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/external/" "${SOURCE_PATH}/tiledb/common/polymorphic_allocator/" "${SOURCE_PATH}/tiledb/sm/serialization/tiledb-rest.capnp.c++" "${SOURCE_PATH}/tiledb/sm/serialization/tiledb-rest.capnp.h" ) if ("serialization" IN_LIST FEATURES) # Regenerate the capnp serialization files with the version installed in vcpkg. # This allows updating capnproto independently of upstream tiledb. # Add capnproto directory to PATH, in order to find the C++ plugin. vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/capnproto") vcpkg_execute_required_process( COMMAND "${CURRENT_HOST_INSTALLED_DIR}/tools/capnproto/capnp${VCPKG_HOST_EXECUTABLE_SUFFIX}" "compile" "-I${CURRENT_HOST_INSTALLED_DIR}/include" "-oc++:${SOURCE_PATH}/tiledb/sm/serialization" "${SOURCE_PATH}/tiledb/sm/serialization/tiledb-rest.capnp" "--src-prefix=${SOURCE_PATH}/tiledb/sm/serialization" WORKING_DIRECTORY "${CURRENT_HOST_INSTALLED_DIR}/tools/capnproto" LOGNAME gen-capnp-sources ) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES azure TILEDB_AZURE gcs TILEDB_GCS s3 TILEDB_S3 serialization TILEDB_SERIALIZATION webp TILEDB_WEBP ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTILEDB_TESTS=OFF -DTILEDB_TOOLS=OFF -DTILEDB_CPP_API=ON -DTILEDB_STATS=ON -DTILEDB_WERROR=OFF -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON # Suppress auto-detecting AVX2 support, because it makes builds non-deterministic. # Anybody who wants it has to explicitly enable it in a triplet. -DCOMPILER_SUPPORTS_AVX2=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TileDB) file(REMOVE_RECURSE # pkgconfig files are currently broken. "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/include" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tiledb/rm-cpp17-pmr.patch ================================================ diff --git a/cmake/Modules/DetectStdPmr.cmake b/cmake/Modules/DetectStdPmr.cmake index cbea923..9651057 100644 --- a/cmake/Modules/DetectStdPmr.cmake +++ b/cmake/Modules/DetectStdPmr.cmake @@ -26,6 +26,9 @@ # # Detect whether polymorphic allocators are available on the system. +# Always use std::pmr for vcpkg port, to avoid compiling vendored source file. +return() + # Special case for macOS when the CMAKE_OSX_DEPLOYMENT_TARGET is set to anything # less than 14. For some reason, std::pmr is still detectable, but the resulting # binary dies with a dyld missing symbol error. ================================================ FILE: ports/tiledb/usage ================================================ tiledb provides CMake targets: find_package(TileDB CONFIG REQUIRED) target_link_libraries(main PRIVATE TileDB::tiledb) ================================================ FILE: ports/tiledb/vcpkg.json ================================================ { "name": "tiledb", "version": "2.30.1", "description": "Cloud-native embeddable array storage engine", "homepage": "https://github.com/TileDB-Inc/TileDB", "license": "MIT", "supports": "!(x86 | arm32 | uwp)", "dependencies": [ { "name": "blosc2", "default-features": false }, "bzip2", "lz4", "nlohmann-json", { "name": "openssl", "platform": "!windows" }, "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ], "features": { "azure": { "description": "Support Azure Blob Storage", "dependencies": [ "azure-identity-cpp", "azure-storage-blobs-cpp", "azure-storage-files-datalake-cpp" ] }, "gcs": { "description": "Support Google Cloud Storage", "dependencies": [ { "name": "google-cloud-cpp", "default-features": false, "features": [ "storage" ] } ] }, "s3": { "description": "Support Amazon S3", "dependencies": [ { "name": "aws-sdk-cpp", "default-features": false, "features": [ "identity-management", "s3", "sts" ] } ] }, "serialization": { "description": "Support TileDB Cloud", "dependencies": [ "capnproto", { "name": "capnproto", "host": true }, { "name": "curl", "features": [ "zstd" ] } ] }, "webp": { "description": "Support WebP filtering", "dependencies": [ "libwebp" ] } } } ================================================ FILE: ports/tinkerforge/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.13 FATAL_ERROR) include(GNUInstallDirs) if(WIN32) set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}") endif() project(tinkerforge LANGUAGES C VERSION 2.1.25) if(NOT CONFIG_INSTALL_DIR) set(CONFIG_INSTALL_DIR "share/${PROJECT_NAME}/") endif() if(NOT INCLUDE_INSTALL_DIR) set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}") endif() if(NOT TARGET_INSTALL_DIR) set(TARGET_INSTALL_DIR "share/${PROJECT_NAME}") endif() file(GLOB CPP_FILES source/*.c) file(GLOB H_FILES source/*.h) file(GLOB DEF_FILE source/*.def) add_library(${PROJECT_NAME} ${CPP_FILES} ${H_FILES} ${DEF_FILE}) target_include_directories(${PROJECT_NAME} PUBLIC $ $) find_package(Threads) target_link_libraries(${PROJECT_NAME} PUBLIC Threads::Threads) if("${CMAKE_SYSTEM_NAME}" MATCHES "Windows") target_link_libraries(${PROJECT_NAME} PUBLIC Ws2_32 advapi32) endif() ##---------------------------------------------------------------------------------------## ##----- Package definition. ##---------------------------------------------------------------------------------------## include(CMakePackageConfigHelpers) #Export as Package set_target_properties (${PROJECT_NAME} PROPERTIES EXPORT_NAME ${PROJECT_NAME}) export(TARGETS ${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}:: FILE cmake/${PROJECT_NAME}Targets.cmake) export(PACKAGE ${PROJECT_NAME}) #Config files for find_package configure_package_config_file( ${PROJECT_NAME}Config.cmake.in cmake/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}/${PROJECT_NAME}Config.cmake" PATH_VARS TARGET_INSTALL_DIR INCLUDE_INSTALL_DIR ) write_basic_package_version_file(cmake/${PROJECT_NAME}ConfigVersion.cmake COMPATIBILITY SameMinorVersion) #Install the target and all it build outputs. install (TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Targets LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Runtime ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT Development RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime PUBLIC_HEADER DESTINATION "${INCLUDE_INSTALL_DIR}" COMPONENT Development BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime) #Install public headers install(FILES ${H_FILES} DESTINATION "${INCLUDE_INSTALL_DIR}/${PROJECT_NAME}") #Install the config files for find_package install(FILES "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" "${PROJECT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake" DESTINATION "${CONFIG_INSTALL_DIR}") #install the targets file included by the config install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: DESTINATION "${TARGET_INSTALL_DIR}") ================================================ FILE: ports/tinkerforge/portfile.cmake ================================================ set(VERSION 2_1_25) vcpkg_download_distfile(ARCHIVE URLS "http://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_${VERSION}.zip" FILENAME "tinkerforge-${VERSION}.zip" SHA512 c02b789bd466803d60aeb39a544b0aa17af811377b065a0b273bcfc15c5844f8cfe981d8143743e32bd05470c2c6af297df50924da0d2895a4cdf4bc9e9bd0b8 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "tinker-${VERSION}" NO_REMOVE_ONE_LEVEL ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/tinkerforgeConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_copy_pdbs() ================================================ FILE: ports/tinkerforge/tinkerforgeConfig.cmake.in ================================================ @PACKAGE_INIT@ include ("@PACKAGE_TARGET_INSTALL_DIR@/@PROJECT_NAME@Targets.cmake") set_and_check(TINKERFORGE_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/tinkerforge/vcpkg.json ================================================ { "name": "tinkerforge", "version": "2.1.25", "port-version": 3, "description": "Tinkerforge C API bindings for bricks and bricklets", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiny-aes-c/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(tiny-aes-c LANGUAGES C ASM) include(GNUInstallDirs) add_library(tiny-aes-c aes.c) target_include_directories( tiny-aes-c PUBLIC $ ) install(FILES aes.h aes.hpp DESTINATION include) install(TARGETS tiny-aes-c EXPORT unofficial-tiny-aes-c-config) install( EXPORT unofficial-tiny-aes-c-config NAMESPACE unofficial::tiny-aes-c:: DESTINATION share/unofficial-tiny-aes-c PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/tiny-aes-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kokke/tiny-AES-c REF ca85e00de963102d3999ea5fa865c0deff6370d3 SHA512 538d5d9cee8cecbf801d3553f2425f8a1331b59c652c11ee56c6e46a23450c1e9a59e3e1833f4384b7a4d992a93f30635855a47e2414b9293e0d27c426b6a4f3 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/unlicense.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/tiny-aes-c/vcpkg.json ================================================ { "name": "tiny-aes-c", "version-date": "2019-07-31", "port-version": 3, "description": "Small portable AES128/192/256 in C", "homepage": "https://github.com/kokke/tiny-AES-c", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiny-bignum-c/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(tiny-bignum-c LANGUAGES C) include(GNUInstallDirs) add_library(tiny-bignum-c bn.c) target_include_directories( tiny-bignum-c PUBLIC $ ) target_compile_definitions( tiny-bignum-c PRIVATE $<$:_CRT_SECURE_NO_WARNINGS> ) set_target_properties(tiny-bignum-c PROPERTIES PUBLIC_HEADER bn.h) install(TARGETS tiny-bignum-c EXPORT unofficial-tiny-bignum-c-config) install( EXPORT unofficial-tiny-bignum-c-config NAMESPACE unofficial::tiny-bignum-c:: DESTINATION share/unofficial-tiny-bignum-c PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/tiny-bignum-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kokke/tiny-bignum-c REF e814d2b6b522ecaa67701453c492811a8adbc555 SHA512 2cea21588d018bd74fb9a128576764feecd87364d157acee21bd37cd8890c0776b228e25580de88a0c6d723a7b8e88cb8120c8c66b3999661c707b04dffc3f5b HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/tiny-bignum-c/vcpkg.json ================================================ { "name": "tiny-bignum-c", "version-date": "2019-07-31", "port-version": 3, "description": "Small portable multiple-precision unsigned integer arithmetic in C", "homepage": "https://github.com/kokke/tiny-bignum-c", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiny-dnn/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tiny-dnn/tiny-dnn REF c0f576f5cb7b35893f62127cb7aec18f77a3bcc5 SHA512 f2bdf8a39781e0b2e3383d9e7a4a92daa28ee32e6f390c3fb21e9b24a597a50a8ccc4b5be345c433943db4db70fd2df8922ce3f13a792a4e73cd1fdd35842acf HEAD_REF master ) file(COPY ${SOURCE_PATH}/tiny_dnn DESTINATION ${CURRENT_PACKAGES_DIR}/include/) file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tiny-dnn) file(RENAME ${CURRENT_PACKAGES_DIR}/share/tiny-dnn/LICENSE ${CURRENT_PACKAGES_DIR}/share/tiny-dnn/copyright) ================================================ FILE: ports/tiny-dnn/vcpkg.json ================================================ { "name": "tiny-dnn", "version-date": "2018-10-25", "port-version": 2, "description": "A C++14 implementation of deep learning. It is suitable for deep learning on limited computational resource.", "homepage": "https://github.com/tiny-dnn/tiny-dnn" } ================================================ FILE: ports/tiny-optional/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Sedeniono/tiny-optional REF "v${VERSION}" SHA512 9457f6d67216c3b12ef5caec7540c9f92ce0a039f21bc81a2b640d9919a8da37fb90647d1bf52aa0adb5f28b65a7766ac8aa6594458566a5d3ae9fc77e8328f8 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tiny-optional/vcpkg.json ================================================ { "name": "tiny-optional", "version": "1.5.3", "description": "Drop-in replacement for std::optional that does not waste memory unnecessarily", "homepage": "https://github.com/Sedeniono/tiny-optional", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiny-process-library/disable-examples.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8662ba3..040e642 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,9 +42,6 @@ if(CMAKE_SOURCE_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}") add_compile_options(-std=c++11 -Wall -Wextra) endif() - add_executable(examples examples.cpp) - target_link_libraries(examples tiny-process-library) - install(TARGETS tiny-process-library EXPORT ${PROJECT_NAME}-config ARCHIVE DESTINATION lib ================================================ FILE: ports/tiny-process-library/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH SOURCE_PATH REPO eidheim/tiny-process-library REF v2.0.4 SHA512 bbdd268361159b7c64cb60f29afa780ee5e57fa696f0683a55cb9824ec5985c8229a9a8217d2b9ecdd194b9a3acbbd75a1a821392361fbc85b1f6841f40c95db HEAD_REF master PATCHES disable-examples.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/tiny-process-library ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tiny-process-library/vcpkg.json ================================================ { "name": "tiny-process-library", "version": "2.0.4", "port-version": 3, "description": "A small platform independent library to create and stop new processes in C++", "homepage": "https://gitlab.com/eidheim/tiny-process-library/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tiny-regex-c/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(tiny-regex-c LANGUAGES C) include(GNUInstallDirs) add_library(tiny-regex-c re.c) target_include_directories( tiny-regex-c PUBLIC $ ) set_target_properties(tiny-regex-c PROPERTIES PUBLIC_HEADER re.h) install(TARGETS tiny-regex-c EXPORT unofficial-tiny-regex-c-config) install( EXPORT unofficial-tiny-regex-c-config NAMESPACE unofficial::tiny-regex-c:: DESTINATION share/unofficial-tiny-regex-c PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/tiny-regex-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kokke/tiny-regex-c REF d3058f271f7a06ff298dff0a6a9a1e0753a5fa17 SHA512 bd524c63850b08f02fa5f7725fcde85cbd9c9c6ec8a804f2570df0e04518961a758c017cdb33ebaf72df1abca42ba3b82681655404bc26e6142b5a52a0534ab4 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/tiny-regex-c/vcpkg.json ================================================ { "name": "tiny-regex-c", "version-date": "2019-07-31", "port-version": 3, "description": "A small regex implementation in C", "homepage": "https://github.com/kokke/tiny-regex-c", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinycbor/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(tinycbor C) file(GLOB sources src/cbor*.c) list(FILTER sources EXCLUDE REGEX "cbortojson.c$") add_library(tinycbor ${sources}) install(TARGETS tinycbor) install(FILES src/cbor.h src/cborjson.h src/tinycbor-version.h DESTINATION include/tinycbor) ================================================ FILE: ports/tinycbor/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO intel/tinycbor REF "v${VERSION}" SHA512 7c7fff9c1e9a2f04a3bb0247b79723526685b2821df720d0211c8e86b1a516c955926b3668fa6dcdaaf6cb811aff238db39a9add1bc12a4d32f8a51741f3f2ce HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() # Remove duplicated include headers file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinycbor/vcpkg.json ================================================ { "name": "tinycbor", "version-semver": "0.6.1", "description": "Concise Binary Object Representation (CBOR) Library", "homepage": "https://github.com/intel/tinycbor", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tinycolormap/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header only without TINYCOLORMAP_WITH_EIGEN, TINYCOLORMAP_WITH_QT5, # TINYCOLORMAP_WITH_GLM, or TINYCOLORMAP_BUILD_TOOLS vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yuki-koyama/tinycolormap REF b79255bf4c0d3557df2c382d0673c0392e6d6951 SHA512 15c454298ff24b3b5a944ffc28c7695905a883eac4c699e65d54f0dc592548a1c92532ab374cb26db01627343ac6dff0b3030da623a76f01f2e5be025308a940 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tinycolormap/vcpkg.json ================================================ { "name": "tinycolormap", "version": "0.8.0", "description": "A header-only, single-file library for colormaps written in C++11.", "homepage": "https://github.com/yuki-koyama/tinycolormap", "license": "MIT AND Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinycthread/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tinycthread/tinycthread REF 6957fc8383d6c7db25b60b8c849b29caab1caaee SHA512 d8b1ad73676f90b236bef06464cfd34996e7b6676ef28cf011cfff86d63e9d6322f7b00ca15290b3f87ed40e704d5325f676440d0223a7f8716d3392a5d1345d HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTINYCTHREAD_DISABLE_TESTS=OFF -DTINYCTHREAD_INSTALL=ON ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(STRINGS "${SOURCE_PATH}/README.txt" SOURCE_LINES) list(SUBLIST SOURCE_LINES 70 120 SOURCE_LINES) list(JOIN SOURCE_LINES "\n" _contents) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${_contents}") ================================================ FILE: ports/tinycthread/vcpkg.json ================================================ { "name": "tinycthread", "version-date": "2019-08-06", "port-version": 3, "description": "Small, portable implementation of the C11 threads API", "homepage": "https://tinycthread.github.io/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tinydir/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cxong/tinydir REF "${VERSION}" SHA512 6153bdded49e246a39fb8809749b9d44a67a52a494f5840730905dc83485afadea4c727df1b9e9d308d83c2a7d0277267df7758c4bf6c6d256647d3686cbead8 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/tinydir.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/tinydir" RENAME copyright) ================================================ FILE: ports/tinydir/vcpkg.json ================================================ { "name": "tinydir", "version": "1.2.6", "description": "Lightweight, portable and easy to integrate C directory and file reader", "homepage": "https://github.com/cxong/tinydir", "license": "BSD-2-Clause" } ================================================ FILE: ports/tinyexif/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cdcseacave/TinyEXIF REF ${VERSION} SHA512 cb4e1f15758bb65465e2234065e3b46493200278e7c2e12fa7b4e31e7bff52a93158f07252a642829bad1a7da5e47612aca33fb833f3188595c6bc56cc950f63 HEAD_REF 1.0.4 ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" LINK_CRT_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLINK_CRT_STATIC_LIBS=${LINK_CRT_STATIC} -DBUILD_DEMO=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TinyEXIF) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tinyexif/vcpkg.json ================================================ { "name": "tinyexif", "version": "1.0.4", "description": "tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG images", "homepage": "https://github.com/cdcseacave/TinyEXIF", "license": "MIT", "dependencies": [ "tinyxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyexpr/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(tinyexpr LANGUAGES C) include(CheckSymbolExists) include(GNUInstallDirs) if(WIN32 AND BUILD_SHARED_LIBS) add_library(tinyexpr tinyexpr.c exports.def) else() add_library(tinyexpr tinyexpr.c) endif() target_include_directories( tinyexpr PUBLIC $ ) # https://stackoverflow.com/questions/32816646/can-cmake-detect-if-i-need-to-link-to-libm-when-using-pow-in-c if(NOT POW_FUNCTION_EXISTS AND NOT NEED_LINKING_AGAINST_LIBM) check_symbol_exists(pow "math.h" POW_FUNCTION_EXISTS) if(NOT POW_FUNCTION_EXISTS) unset(POW_FUNCTION_EXISTS CACHE) list(APPEND CMAKE_REQUIRED_LIBRARIES m) check_symbol_exists(pow "math.h" POW_FUNCTION_EXISTS) if(POW_FUNCTION_EXISTS) set(NEED_LINKING_AGAINST_LIBM True CACHE BOOL "" FORCE) else() message(FATAL_ERROR "Failed making the pow() function available") endif() endif() endif() if(NEED_LINKING_AGAINST_LIBM) target_link_libraries(tinyexpr PUBLIC m) endif() set_target_properties(tinyexpr PROPERTIES PUBLIC_HEADER tinyexpr.h) install(TARGETS tinyexpr EXPORT unofficial-tinyexpr-config) install( EXPORT unofficial-tinyexpr-config NAMESPACE unofficial::tinyexpr:: DESTINATION share/unofficial-tinyexpr PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) ================================================ FILE: ports/tinyexpr/exports.def ================================================ EXPORTS te_compile te_eval te_free te_interp te_print ================================================ FILE: ports/tinyexpr/fix-issue-34.patch ================================================ diff --git a/tinyexpr.c b/tinyexpr.c index 90ed8fc..570f2fd 100755 --- a/tinyexpr.c +++ b/tinyexpr.c @@ -49,6 +49,11 @@ For log = natural log uncomment the next line. */ #define INFINITY (1.0/0.0) #endif +/* https://github.com/codeplea/tinyexpr/issues/34 */ +#ifdef _MSC_VER +#pragma function(ceil) +#pragma function(floor) +#endif typedef double (*te_fun2)(double, double); ================================================ FILE: ports/tinyexpr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO codeplea/tinyexpr REF ffb0d41b13e5f8d318db95feb071c220c134fe70 SHA512 fe4975f8b444a50d7ba8135450a42007a81f1545eebd7775f92307b87b72bc9abee4591e56ddeb76ec9e5aa41f0852ba98c99881d671f47a58caca8bd1ca9999 HEAD_REF master PATCHES fix-issue-34.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinyexpr/vcpkg.json ================================================ { "name": "tinyexpr", "version-date": "2020-09-25", "port-version": 2, "description": "Tiny recursive descent parser and evaluation engine in C", "homepage": "https://codeplea.com/tinyexpr", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyexr/fixtargets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b7f97b0..2afd0e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,20 @@ set(SAMPLE_TARGET "test_tinyexr") project(${BUILD_TARGET} CXX) +set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed") +set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed") +set(INSTALL_INCLUDE_DIR "include" CACHE PATH "Path where headers will be installed") +set(INSTALL_CMAKE_DIR "share/tinyexr" CACHE PATH "Path where cmake configs will be installed") + +# Make relative paths absolute (needed later on) +set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}) +foreach(p LIB BIN INCLUDE CMAKE) + set(var INSTALL_${p}_DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + # options option(TINYEXR_BUILD_SAMPLE "Build a sample" ON) option(TINYEXR_USE_MINIZ "Use miniz" ON) @@ -28,11 +42,8 @@ set(TINYEXR_SOURCES ) if(TINYEXR_USE_MINIZ) - enable_language(C) - add_library(miniz STATIC deps/miniz/miniz.c) - target_include_directories(miniz PUBLIC deps/miniz) - set_target_properties(miniz PROPERTIES FOLDER "deps") - list(APPEND TINYEXR_EXT_LIBRARIES miniz) + find_package(miniz CONFIG REQUIRED) + list(APPEND TINYEXR_EXT_LIBRARIES miniz::miniz) endif() add_library(${BUILD_TARGET} ${TINYEXR_SOURCES} ${TINYEXR_DEP_SOURCES}) @@ -43,7 +54,7 @@ target_link_libraries(${BUILD_TARGET} ${TINYEXR_EXT_LIBRARIES} ${CMAKE_DL_LIBS}) # Increase warning level for clang. if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC) - set(CLANG_COMPILE_FLAGS "-Weverything -Werror -Wno-padded -Wno-c++98-compat-pedantic -Wno-documentation -Wno-unused-member-function") + set(CLANG_COMPILE_FLAGS "-Weverything -Wno-padded -Wno-c++98-compat-pedantic -Wno-documentation -Wno-unused-member-function") if (${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 16) set(CLANG_COMPILE_FLAGS "${CLANG_COMPILE_FLAGS} -Wno-unsafe-buffer-usage") endif() @@ -76,3 +87,32 @@ if (TINYEXR_BUILD_SAMPLE) endif(WIN32) endif (TINYEXR_BUILD_SAMPLE) + +target_include_directories(${BUILD_TARGET} PUBLIC $ $) +set_target_properties(${BUILD_TARGET} PROPERTIES PUBLIC_HEADER "${PROJECT_SOURCE_DIR}/tinyexr.h") + +install(TARGETS ${BUILD_TARGET} EXPORT ${BUILD_TARGET}Targets + RUNTIME DESTINATION "${INSTALL_BIN_DIR}" + LIBRARY DESTINATION "${INSTALL_LIB_DIR}" + ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" + PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}" + COMPONENT dev +) + +install(EXPORT ${BUILD_TARGET}Targets + FILE ${BUILD_TARGET}Targets.cmake + NAMESPACE unofficial::${BUILD_TARGET}:: + DESTINATION "${INSTALL_CMAKE_DIR}" +) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TARGET}Config.cmake + INSTALL_DESTINATION "${INSTALL_CMAKE_DIR}" +) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TARGET}Config.cmake + DESTINATION "${INSTALL_CMAKE_DIR}" +) diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..2e33c1d --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,6 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(miniz CONFIG REQUIRED) + +include("${CMAKE_CURRENT_LIST_DIR}/@BUILD_TARGET@Targets.cmake") ================================================ FILE: ports/tinyexr/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO syoyo/tinyexr REF "v${VERSION}" SHA512 74b9b72f58198ebf09c41f1bea04d24f9c13996411cb55f21ddb7732646ca9ddee7cf1fd538888a26d670fa73e168ad901c2a92fb23c7839a2821a79855a2350 HEAD_REF master PATCHES fixtargets.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DTINYEXR_BUILD_SAMPLE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/tinyexr/vcpkg.json ================================================ { "name": "tinyexr", "version": "1.0.12", "description": "Library to load and save OpenEXR(.exr) images", "homepage": "https://github.com/syoyo/tinyexr", "license": "BSD-3-Clause", "dependencies": [ "miniz", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyfiledialogs/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) project(tinyfiledialogs C) add_library(tinyfiledialogs tinyfiledialogs.c) target_include_directories(tinyfiledialogs INTERFACE $) install( TARGETS tinyfiledialogs EXPORT tinyfiledialogsConfig ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) install( FILES tinyfiledialogs.h DESTINATION "${CMAKE_INSTALL_PREFIX}/include/tinyfiledialogs" ) export( TARGETS tinyfiledialogs NAMESPACE tinyfiledialogs:: FILE "${CMAKE_CURRENT_BINARY_DIR}/tinyfiledialogsConfig.cmake" ) install( EXPORT tinyfiledialogsConfig NAMESPACE tinyfiledialogs:: DESTINATION share/tinyfiledialogs ) ================================================ FILE: ports/tinyfiledialogs/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() # git: not cachable # tinyfiledialogs-current.zip: changing SHA512 # last resort: explicit source files # Reviewers may compare git and zip sources at the time of the port update. set(ref b071fb40ad9b321408d480a6d1433bf21be01578) string(SUBSTRING "${ref}" 0 7 short_ref) vcpkg_download_distfile(tinyfiledialogs_c_file URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${ref}/tree/tinyfiledialogs.c?format=raw" FILENAME "tinyfiledialogs-${short_ref}.c" SHA512 cc8dd57d47ed9b449d91a66dad421140ef2aa8da00c622c0de3c13c9587ff1b7165343b61e40a2240eef7d15dc27fe28bd4595c89b52e3775060229a7c8a5926 ) vcpkg_download_distfile(tinyfiledialogs_h_file URLS "https://sourceforge.net/p/tinyfiledialogs/code/ci/${ref}/tree/tinyfiledialogs.h?format=raw" FILENAME "tinyfiledialogs-${short_ref}.h" SHA512 7b95aa5e32065aee9d16a7cafe644ed93bc9e4cd139882f0298572da1418305ce30d0770e1a6f2b441fb7d9bcb710d57b54ca3c2eb67c9fd5f04c0fdbece31bf ) file(READ "${tinyfiledialogs_c_file}" c_source) if(NOT c_source MATCHES "tinyfd_version.8. = \"([^\"]*)\"" OR NOT CMAKE_MATCH_1 STREQUAL VERSION) message(FATAL_ERROR "Source doesn't declare match version ${VERSION}.") elseif(NOT c_source MATCHES [[- License -[\r\n]*(.*)]]) message(FATAL_ERROR "Failed to parse license from tinyfiledialogs.c") endif() string(REGEX REPLACE " *__*.*" "" license "${CMAKE_MATCH_1}") set(source_path "${CURRENT_BUILDTREES_DIR}/src/${short_ref}") file(MAKE_DIRECTORY "${source_path}") file(COPY_FILE "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${source_path}/CMakeLists.txt") file(COPY_FILE "${tinyfiledialogs_c_file}" "${source_path}/tinyfiledialogs.c") file(COPY_FILE "${tinyfiledialogs_h_file}" "${source_path}/tinyfiledialogs.h") vcpkg_cmake_configure( SOURCE_PATH "${source_path}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${license}") ================================================ FILE: ports/tinyfiledialogs/vcpkg.json ================================================ { "name": "tinyfiledialogs", "version": "3.19.1", "description": "Highly portable and cross-platform dialogs for native inputbox, passwordbox, colorpicker and more", "homepage": "https://sourceforge.net/projects/tinyfiledialogs/", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyformat/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO c42f/tinyformat REF v2.3.0 SHA512 3e40f60e98985e0d09d24279719594fbc6cdcd7b455f244898c949de57b8e77ed684814f7ade82787f6cc04cbdcf0daf7f4be42c4bf55c6b6f016964c58e085e ) file(INSTALL ${SOURCE_PATH}/tinyformat.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinyformat/vcpkg.json ================================================ { "name": "tinyformat", "version-semver": "2.3.0", "description": "A minimal type safe printf() replacement", "homepage": "https://github.com/c42f/tinyformat", "license": "BSL-1.0" } ================================================ FILE: ports/tinyfsm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO digint/tinyfsm REF v${VERSION} SHA512 1a471ba9a62658211353fcebc5f824e14506870b70af34af324ff720c957457625d819caa2701088cfe48cc055780def2e88ebcc10744f44bb6870e3fc2129a3 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/tinyfsm.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/tinyfsm/vcpkg.json ================================================ { "name": "tinyfsm", "version": "0.3.3", "description": "A simple C++ finite state machine library", "homepage": "https://digint.ch/tinyfsm/", "license": "MIT" } ================================================ FILE: ports/tinygltf/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO syoyo/tinygltf REF "v${VERSION}" SHA512 48075f77ff2d2c06688dec7b755faa42c7628559299ac05070eb505add826073f441f370fe1b805b39920788fa6129b6f98c9ed4b2e899dafcc67ea62a8f93d4 HEAD_REF master ) # Put the licence file where vcpkg expects it # Copy the tinygltf header files and fix the path to json vcpkg_replace_string("${SOURCE_PATH}/tiny_gltf.h" "#include \"json.hpp\"" "#include ") file(INSTALL "${SOURCE_PATH}/tiny_gltf.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tinygltf/vcpkg.json ================================================ { "name": "tinygltf", "version": "2.9.7", "description": "A header only C++11 glTF 2.0 library.", "homepage": "https://github.com/syoyo/tinygltf", "dependencies": [ "nlohmann-json", "stb" ] } ================================================ FILE: ports/tinynpy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cdcseacave/TinyNPY REF "v${VERSION}" SHA512 3510c1da36a6260e0e3d0a2f0c4c9c12b673574a221ea6e217e5ed2c1c14d4f2937ef00dd9bd8407e52e3961821ccf1301c74691ac562f242c9b80bc8ddd4314 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" LINK_CRT_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLINK_CRT_STATIC_LIBS=${LINK_CRT_STATIC} -DBUILD_DEMO=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TinyNPY) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinynpy/vcpkg.json ================================================ { "name": "tinynpy", "version": "1.1", "description": "tiny C++ loader/exporter of python numpy array NPY/NPZ files", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/tinyobjloader/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO syoyo/tinyobjloader REF "v${VERSION}" SHA512 724f3974e03c0bbb2255da051a42bec26a91e490414c36bd4bd5dd18a511ba821148e996f9fa4eba6c4b3638d331281a248c530389e2a8bf679b7e81bb09a89b HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES double TINYOBJLOADER_USE_DOUBLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_DOCDIR:STRING=share/tinyobjloader # FEATURES ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/tinyobjloader/cmake) if("double" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/tiny_obj_loader.h" "#ifdef TINYOBJLOADER_USE_DOUBLE" "#if 1") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/tiny_obj_loader.h" "#ifdef TINYOBJLOADER_USE_DOUBLE" "#if 0") endif() file( REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/lib/tinyobjloader ${CURRENT_PACKAGES_DIR}/debug/lib/tinyobjloader ) vcpkg_copy_pdbs() # Put the licence file where vcpkg expects it file(RENAME ${CURRENT_PACKAGES_DIR}/share/tinyobjloader/LICENSE ${CURRENT_PACKAGES_DIR}/share/tinyobjloader/copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/tinyobjloader/vcpkg.json ================================================ { "name": "tinyobjloader", "version-string": "2.0.0rc13", "description": "Tiny but powerful single file wavefront obj loader", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "double": { "description": "enable double(64bit) precision" } } } ================================================ FILE: ports/tinyorm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO silverqx/TinyORM REF "v${VERSION}" SHA512 231601df0e0b9233e6e206717c8ccbe2431ed545858d7efbbad96c7821177d6103d231941fa1bccae8fd2593b5874969bb4e26089d7502839106488d2cd614b6 HEAD_REF main ) # STL4043 _SILENCE_STDEXT_ARR_ITERS_DEPRECATION_WARNING already defined, see: # https://github.com/silverqx/TinyORM/blob/main/cmake/CommonModules/TinyCommon.cmake#L122 vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS PREFIX TINYORM FEATURES disable-thread-local DISABLE_THREAD_LOCAL inline-constants INLINE_CONSTANTS mysql-ping MYSQL_PING orm ORM strict-mode STRICT_MODE tom TOM tom-example TOM_EXAMPLE ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_SCAN_FOR_MODULES:BOOL=OFF -DCMAKE_EXPORT_PACKAGE_REGISTRY:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_TREE_DEPLOY:BOOL=OFF -DTINY_PORT:STRING=${PORT} -DTINY_VCPKG:BOOL=ON -DVERBOSE_CONFIGURE:BOOL=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(TINYORM_TOM_EXAMPLE) vcpkg_copy_tools(TOOL_NAMES tom AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tinyorm/vcpkg.json ================================================ { "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "name": "tinyorm", "version-semver": "0.38.1", "maintainers": "Silver Zachara ", "description": "Modern C++ ORM library for Qt framework", "homepage": "https://github.com/silverqx/TinyORM", "documentation": "https://www.tinyorm.org", "license": "MIT", "supports": "!(uwp | arm | android | emscripten | osx | ios | xbox | freebsd | openbsd | wasm32)", "dependencies": [ { "name": "qtbase", "default-features": false }, "range-v3", "tabulate", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "orm", "sql-sqlite", "tom" ], "features": { "build-mysql-driver": { "description": "Build TinyDrivers MySQL database driver (provided by TinyDrivers)", "dependencies": [ "libmysql" ] }, "disable-thread-local": { "description": "Remove all thread_local storage duration specifiers (disables multi-threading support)" }, "inline-constants": { "description": "Use inline constants instead of extern constants in shared builds" }, "mysql-ping": { "description": "Install MySQL C client library (libmysql) to support the mysql_ping()", "dependencies": [ "libmysql" ] }, "orm": { "description": "Enable ORM-related source code (without it only the query builder is compiled)" }, "sql-mysql": { "description": "Build Qt SQL MySQL database driver (provided by QtSql)", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql-mysql" ] } ] }, "sql-psql": { "description": "Build Qt SQL PostgreSQL database driver (provided by QtSql)", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql-psql" ] } ] }, "sql-sqlite": { "description": "Build Qt SQL SQLite database driver (provided by QtSql)", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "sql-sqlite" ] } ] }, "strict-mode": { "description": "Propagate strict compiler/linker options and Qt definitions" }, "tom": { "description": "Enable Tom-related source code (command-line interface)" }, "tom-example": { "description": "Build Tom command-line application example", "dependencies": [ { "name": "tinyorm", "default-features": false, "features": [ "tom" ] } ] } } } ================================================ FILE: ports/tinyply/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ddiakopoulos/tinyply REF c9bb690dfe5e9105961e9e28120c48c9ae084bc6 # 3.0 SHA512 4df803db4494e04a3f3bd7bc47d59a18d0c6dd8b0984b36e4ef38722590fbd441f226e284108c3971eea7733e3740f0e688ebd848bff493fc9f8c56426d1dab4 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" TINYPLY_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSHARED_LIB=${TINYPLY_BUILD_SHARED} -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_copy_pdbs() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # License file(READ "${SOURCE_PATH}/README.md" readme_contents) string(FIND "${readme_contents}" "## License" license_pos) string(SUBSTRING "${readme_contents}" ${license_pos} -1 license_contents) file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${license_contents}") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/tinyply/vcpkg.json ================================================ { "name": "tinyply", "version": "3.0", "description": "C++11 ply 3d mesh format importer & exporter", "homepage": "https://github.com/ddiakopoulos/tinyply", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyproto/fix-deprecated.patch ================================================ diff --git a/src/proto/hdlc/low_level/hdlc.h b/src/proto/hdlc/low_level/hdlc.h index d8e85d7..5e3f574 100644 --- a/src/proto/hdlc/low_level/hdlc.h +++ b/src/proto/hdlc/low_level/hdlc.h @@ -218,8 +218,13 @@ extern "C" * @note TINY_ERR_BUSY and TINY_ERR_INVALID_DATA refer to putting new frame to TX * hdlc queue. */ +#if defined(__GNUC__) || defined(__clang__) int hdlc_ll_put(hdlc_ll_handle_t handle, const void *data, int len) __attribute__((deprecated)); - +#elif defined(_MSC_VER) + __declspec(deprecated) int hdlc_ll_put(hdlc_ll_handle_t handle, const void *data, int len); +#else + int hdlc_ll_put(hdlc_ll_handle_t handle, const void *data, int len); +#endif /** * Puts next frame for sending. * ================================================ FILE: ports/tinyproto/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lexus2k/tinyproto REF v${VERSION} SHA512 32b21822d5516a46ae931b0a4455a212d9b6b7c5a04f6c20b16fa5ce751707cf93a4478ef62262e0478acb076e1ac627ba62e591c07175b63906d9881df64704 HEAD_REF master PATCHES fix-deprecated.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_CXX_STANDARD=11" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tinyproto") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tinyproto/vcpkg.json ================================================ { "name": "tinyproto", "version": "1.1.1", "description": "Tiny Software Protocol for communication over UART, SPI, etc", "homepage": "https://github.com/lexus2k/tinyproto", "license": "GPL-3.0-or-later", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyspline/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO msteinbeck/tinyspline REF "v${VERSION}" SHA512 e81d95e9fa7ec33b70d541695ab18b8e9c2a92e7c66877aa9957526e2ac144558b47409e1a1b721f7702a8462a22f360d1ec96b0023db108da13f8c37b8c0c20 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTINYSPLINE_BUILD_EXAMPLES=OFF -DTINYSPLINE_BUILD_TESTS=OFF -DTINYSPLINE_BUILD_DOCS=OFF -DTINYSPLINE_WARNINGS_AS_ERRORS=OFF -DTINYSPLINE_INSTALL_LIBRARY_DIR=lib ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tinyspline DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(PACKAGE_NAME tinysplinecxx CONFIG_PATH lib/cmake/tinysplinecxx) vcpkg_fixup_pkgconfig() 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") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinyspline/vcpkg.json ================================================ { "name": "tinyspline", "version": "0.6.0", "description": "Library for NURBS, B-Splines, and Bézier curves, allowing you to handle splines with ease", "homepage": "https://github.com/msteinbeck/tinyspline", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinythread/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(tinythread) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) endif() include_directories(source) add_library(tinythread source/tinythread.cpp) install( TARGETS tinythread RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(NOT DISABLE_INSTALL_HEADERS) install(FILES source/tinythread.h source/fast_mutex.h DESTINATION include) endif() ================================================ FILE: ports/tinythread/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "http://tinythreadpp.bitsnbites.eu/files/TinyThread%2B%2B-1.1-src.tar.bz2" FILENAME "TinyThread++-1.1.tar.bz2" SHA512 407f54fcf3f68dd7fec25e9e0749a1803dffa5d52d606905155714d29f519b5eae64ff654b11768fecc32c0123a78c48be37c47993e0caf157a63349a2f869c6 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON ) vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/README.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinythread/vcpkg.json ================================================ { "name": "tinythread", "version": "1.1", "port-version": 6, "description": "Implements a fairly compatible subset of the C++11 thread management classes", "homepage": "https://tinythreadpp.bitsnbites.eu/", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tinytiff/portfile.cmake ================================================ vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES winapi TinyTIFF_USE_WINAPI_FOR_FILEIO ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jkriege2/TinyTIFF REF ${VERSION} SHA512 9a6a00a1278e7040bf3057f069e6d4f106a15982c78c84112edfdbe8ca9a28d849fc63636d8011696dbf4059c5d9b205743fd77ece859d08b9dd33945835be54 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTinyTIFF_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TinyTIFF DO_NOT_DELETE_PARENT_CONFIG_PATH) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TinyTIFFXX PACKAGE_NAME tinytiffxx) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/tinytiff/usage ================================================ tinytiff provides CMake targets: find_package(TinyTIFF CONFIG REQUIRED) find_package(TinyTIFFXX CONFIG REQUIRED) target_link_libraries(main PRIVATE TinyTIFF::TinyTIFF TinyTIFF::TinyTIFFXX) ================================================ FILE: ports/tinytiff/vcpkg.json ================================================ { "name": "tinytiff", "version": "4.0.1.0", "description": "Lightweight TIFF reader/writer library", "homepage": "https://jkriege2.github.io/TinyTIFF/", "license": "LGPL-3.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "winapi": { "description": "Use WIN-API for File-IO", "supports": "windows" } } } ================================================ FILE: ports/tinytoml/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mayah/tinytoml REF ab319202f2f352f5640ca97e236f20eddf51cf06 SHA512 36c9e483dd80733f43e62a7ebcbbb91813b046e4e8673d7505315c853ca7ad256d656f0b16964ff36376897dbff251de197e8ffb1b3efa1bdeb071c78196387f HEAD_REF master ) file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.h") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/tinytoml RENAME copyright) ================================================ FILE: ports/tinytoml/vcpkg.json ================================================ { "name": "tinytoml", "version": "20240621", "description": "A header only C++11 library for parsing TOML.", "homepage": "https://github.com/mayah/tinytoml" } ================================================ FILE: ports/tinyutf8/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DuffsDevice/tiny-utf8 REF "v${VERSION}" SHA512 e87368614671c8e160e9fd7c529bba08f6b3d6bdd0b178c68a4f25a54a6428afe01c3099f80d4976a1b2ce9f2e19b877da54a5dbf024ad25c7a5d5e47cb57bb0 HEAD_REF master ) # header-only set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTINYUTF8_BUILD_TESTING=OFF -DTINYUTF8_BUILD_DOC=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/tinyutf8/cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENCE") ================================================ FILE: ports/tinyutf8/vcpkg.json ================================================ { "name": "tinyutf8", "version": "4.4.3", "port-version": 1, "description": "TINYUTF8 is a library for extremely easy integration of Unicode into an arbitrary C++11 project.", "homepage": "https://github.com/DuffsDevice/tiny-utf8/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyxml/0001_use_stl.patch ================================================ From 5ca492fee93015411a0f10e0b2f1d3503bf962a1 Mon Sep 17 00:00:00 2001 From: Mikhail Paulyshka Date: Sun, 3 Sep 2017 21:43:36 +0300 Subject: [PATCH] enforce STL usage --- tinyxml.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tinyxml.h b/tinyxml.h index a3589e5..7195033 100644 --- a/tinyxml.h +++ b/tinyxml.h @@ -43,6 +43,10 @@ distribution. #define DEBUG #endif +#ifndef TIXML_USE_STL +#define TIXML_USE_STL +#endif + #ifdef TIXML_USE_STL #include #include -- 2.12.2.windows.2 ================================================ FILE: ports/tinyxml/0002_export_tinyxml.patch ================================================ # User Francisco Dias # Date 1545049386 7200 # Mon Dec 17 10:23:06 2018 -0200 Export tinyXML. diff --git a/tinyxml.h b/tinyxml.h --- a/tinyxml.h +++ b/tinyxml.h @@ -38,6 +38,8 @@ #include #include +#include "tinyxml_export.h" + // Help out windows: #if defined( _DEBUG ) && !defined( DEBUG ) #define DEBUG @@ -414,7 +416,7 @@ }; static Entity entity[ NUM_ENTITY ]; - static bool condenseWhiteSpace; + static TINYXML_EXPORT bool condenseWhiteSpace; }; ================================================ FILE: ports/tinyxml/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.4) project(tinyxml) set(HEADERS "tinyxml.h") set(SOURCES "tinyxml.cpp" "tinyxmlerror.cpp" "tinyxmlparser.cpp" ) option(BUILD_SHARED_LIBS "Build shared libs" OFF) add_library(unofficial-tinyxml ${SOURCES}) target_compile_definitions(unofficial-tinyxml PRIVATE "-DTIXML_USE_STL") set_target_properties(unofficial-tinyxml PROPERTIES OUTPUT_NAME tinyxml) include(GenerateExportHeader) generate_export_header(unofficial-tinyxml BASE_NAME tinyxml) target_include_directories(unofficial-tinyxml PUBLIC $ $ ) install(TARGETS unofficial-tinyxml EXPORT tinyxml-export ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(EXPORT tinyxml-export FILE tinyxmlTargets.cmake NAMESPACE unofficial-tinyxml:: DESTINATION share/tinyxml ) install(FILES ${HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/tinyxml_export.h DESTINATION include) ================================================ FILE: ports/tinyxml/License.txt ================================================ TinyXML is released under the zlib license: This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ================================================ FILE: ports/tinyxml/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO tinyxml/tinyxml REF 2.6.2 FILENAME "tinyxml_2_6_2.tar.gz" SHA512 133b5db06131a90ad0c2b39b0063f1c8e65e67288a7e5d67e1f7d9ba32af10dc5dfa0462f9723985ee27debe8f09a10a25d4b5a5aaff2ede979b1cebe8e59d56 PATCHES 0001_use_stl.patch 0002_export_tinyxml.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/License.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/tinyxml-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/tinyxml/tinyxml-config.cmake ================================================ if (tinyxml_CONFIG_INCLUDED) return() endif() set(tinyxml_CONFIG_INCLUDED TRUE) include(${CMAKE_CURRENT_LIST_DIR}/tinyxmlTargets.cmake) set(tinyxml_LIBRARIES unofficial-tinyxml::unofficial-tinyxml) get_target_property(tinyxml_INCLUDE_DIRS unofficial-tinyxml::unofficial-tinyxml INTERFACE_INCLUDE_DIRECTORIES) ================================================ FILE: ports/tinyxml/vcpkg.json ================================================ { "name": "tinyxml", "version": "2.6.2", "port-version": 11, "description": "A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.", "homepage": "https://sourceforge.net/projects/tinyxml/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tinyxml2/0001-fix-do-not-force-export-the-symbols-when-building-st.patch ================================================ From a512d312db5604efe803a6fe088e7d582e04533f Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Wed, 26 Oct 2022 18:21:29 -0700 Subject: [PATCH] fix: do not force export the symbols when building statically --- CMakeLists.txt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8802fb8..87cda90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,10 @@ endif () ## Main library build ## -set(CMAKE_CXX_VISIBILITY_PRESET hidden) -set(CMAKE_VISIBILITY_INLINES_HIDDEN YES) +if (BUILD_SHARED_LIBS) + set(CMAKE_CXX_VISIBILITY_PRESET hidden) + set(CMAKE_VISIBILITY_INLINES_HIDDEN YES) +endif() add_library(tinyxml2 tinyxml2.cpp tinyxml2.h) add_library(tinyxml2::tinyxml2 ALIAS tinyxml2) @@ -36,11 +38,14 @@ target_compile_definitions( set_target_properties( tinyxml2 PROPERTIES - DEFINE_SYMBOL "TINYXML2_EXPORT" VERSION "${tinyxml2_VERSION}" SOVERSION "${tinyxml2_VERSION_MAJOR}" ) +if(BUILD_SHARED_LIBS) + target_compile_definitions(tinyxml2 PRIVATE "TINYXML2_EXPORT") +endif() + if (tinyxml2_BUILD_TESTING) add_executable(xmltest xmltest.cpp) target_link_libraries(xmltest PRIVATE tinyxml2::tinyxml2) -- 2.37.3.windows.1 ================================================ FILE: ports/tinyxml2/0002-fix-check-for-TINYXML2_EXPORT-on-non-windows.patch ================================================ From 4beabf9fe05a049577e3923327804851d6a05f24 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Thu, 27 Oct 2022 19:06:52 -0700 Subject: [PATCH] fix: check for TINYXML2_EXPORT on non windows --- tinyxml2.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tinyxml2.h b/tinyxml2.h index cfb1053..5a36901 100755 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -72,7 +72,7 @@ distribution. # else # define TINYXML2_LIB # endif -#elif __GNUC__ >= 4 +#elif defined(TINYXML2_EXPORT) && __GNUC__ >= 4 # define TINYXML2_LIB __attribute__((visibility("default"))) #else # define TINYXML2_LIB -- 2.37.3.windows.1 ================================================ FILE: ports/tinyxml2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO leethomason/tinyxml2 REF "${VERSION}" SHA512 8a6ddd48c96bc4287437d5b5ca62c131c4416c57310b664c9088ca9c1ac9f4d43d16c1bad03f82dc5588d9486752f510d631609a3930f1d4243f12184ad1c5f9 HEAD_REF master PATCHES 0001-fix-do-not-force-export-the-symbols-when-building-st.patch 0002-fix-check-for-TINYXML2_EXPORT-on-non-windows.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtinyxml2_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tinyxml2) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tinyxml2/vcpkg.json ================================================ { "name": "tinyxml2", "version-semver": "11.0.0", "description": "A simple, small, efficient, C++ XML parser", "homepage": "https://github.com/leethomason/tinyxml2", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tl-expected/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TartanLlama/expected REF "v${VERSION}" SHA512 764e11097fe6ff18499e0941288fbd1cac91fe68009e077ef803742d48dd38efa8cc57cd6207e7d384f577a11bcb9bff43d3d853ade20340af36fccaaa5d47ed HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DEXPECTED_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/tl-expected) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/cmake") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/tl-expected/vcpkg.json ================================================ { "name": "tl-expected", "version": "1.3.1", "description": "C++11/14/17 std::expected implementation with functional-style extensions", "homepage": "https://github.com/TartanLlama/expected", "documentation": "https://tl.tartanllama.xyz/en/latest/api/expected.html", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tl-function-ref/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TartanLlama/function_ref REF v1.0.0 SHA512 64324049021548361caa667a5ad61a8c0acc787d3966e5b132520da99af709970e37b5a5cb71f69523b6254c9d0d8bab441356e7a25880fe53a6998067c587bd HEAD_REF master ) vcpkg_from_github( OUT_SOURCE_PATH TL_CMAKE_SOURCE_DIR REPO TartanLlama/tl-cmake REF 284c6a3f0f61823cc3871b0f193e8df699e2c4ce SHA512 f611326d75d6e87e58cb05e91f9506b1d83e6fd3b214fe311c4c15604feabfb7a18bbf9c4b4c389a39d615eb468b1f4b15802ab9f44f334a12310cb183fa77a7 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DFETCHCONTENT_FULLY_DISCONNECTED=ON "-DFETCHCONTENT_SOURCE_DIR_TL_CMAKE=${TL_CMAKE_SOURCE_DIR}" -DFUNCTION_REF_ENABLE_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/tl-function-ref" RENAME copyright) ================================================ FILE: ports/tl-function-ref/vcpkg.json ================================================ { "name": "tl-function-ref", "version": "1.0.0", "port-version": 4, "description": "A lightweight, non-owning reference to a callable.", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tl-generator/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TartanLlama/generator REF a8e421f04159199f6896b09cad2bd3c6fbb2a5fb SHA512 bb00cc0b3224813c7837175d81d7a08627dfe7a2f52c0bb8125ec7c6e8018a0a856c94463105dd04e7e20b8af9afc57c1c7228e9119174a9e621e675f8a3b447 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DGENERATOR_BUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tl-generator/vcpkg.json ================================================ { "name": "tl-generator", "version-date": "2021-09-28", "description": "Single-header, ranges-compatible generator type built on C++20 coroutines", "homepage": "https://tl.tartanllama.xyz", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tl-optional/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TartanLlama/optional REF "v${VERSION}" SHA512 3911F397440D4383721B92DE614DE1BEF5DB5C88371FA35F008B92F673F1E1EBF46E98FCFF4CD2D71E558C89537B9128AD549777197FD0390ED18A5BDFC5D6E0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DOPTIONAL_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/tl-optional) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/cmake") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/tl-optional/vcpkg.json ================================================ { "name": "tl-optional", "version": "1.1.0", "description": "C++11/14/17 std::optional implementation with functional-style extensions", "homepage": "https://github.com/TartanLlama/optional", "documentation": "https://tl.tartanllama.xyz/en/latest/api/optional.html", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tl-ranges/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO TartanLlama/ranges REF 361dae81e48ea9d0099e8783b56b903c2a6cd01c SHA512 cce7964d1e77544495ae07c62c1b9a5e7948ea3a6d090e2e9126d3cbc685359e48425e48ddd533ba874ac442855f358d4b24db5265e1584aac6c54d63f82b6a4 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DRANGES_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/tl-ranges) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/cmake") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/tl-ranges/vcpkg.json ================================================ { "name": "tl-ranges", "version-date": "2022-12-07", "port-version": 1, "description": "Ranges that didn't make C++20", "homepage": "https://github.com/TartanLlama/ranges", "documentation": "https://tl.tartanllama.xyz/en/latest/api/ranges/index.html", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tlx/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # TODO: Fix .dlls not producing .lib files vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tlx/tlx REF "v${VERSION}" SHA512 62115a6741fd8f0c84ea514b4aaccb62a8ed8e74ef2ad1d2822719ea6b8e3543f3eb1cca4324b4b10cbab9c208f1f021f5a73b76a6f03ae2038f7edad9c922a0 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERBOSE=1 -DTLX_BUILD_TESTS=off -DTLX_USE_GCOV=off -DTLX_TRY_COMPILE_HEADERS=off -DTLX_MORE_TESTS=off -DTLX_BUILD_STATIC_LIBS=${BUILD_STATIC} -DTLX_BUILD_SHARED_LIBS=${BUILD_SHARED} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH "CMake/") else() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/tlx") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/tlx/vcpkg.json ================================================ { "name": "tlx", "version": "0.6.1", "description": "tlx is a collection of C++ helpers and extensions universally needed, but not found in the STL", "homepage": "https://github.com/tlx/tlx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tmx/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO baylej/tmx REF "tmx_${VERSION}" HEAD_REF master SHA512 3f91faa711ad35ba0a46ae7a6e15f11928340e2d05c1202ef05cd8e9e08ce62d4ef6ef7bd743ca18fed3cab12af3201090bf556a2929ece3f010112728351577 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tmx) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright configure_file("${SOURCE_PATH}/COPYING" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/tmx/vcpkg.json ================================================ { "name": "tmx", "version": "1.10.1", "description": "A portable C library to load tiled maps in your games.", "homepage": "https://github.com/baylej/tmx", "license": "BSD-2-Clause", "dependencies": [ "libxml2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/tmxlite/dependencies.patch ================================================ diff --git a/tmxlite/CMakeLists.txt b/tmxlite/CMakeLists.txt index 1a1e05b..cae012b 100644 --- a/tmxlite/CMakeLists.txt +++ b/tmxlite/CMakeLists.txt @@ -70,10 +70,9 @@ if(USE_EXTLIBS) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") find_package(ZLIB REQUIRED) - find_package(PUGIXML REQUIRED) - find_package(Zstd REQUIRED) + find_package(pugixml CONFIG REQUIRED) + find_package(zstd CONFIG REQUIRED) - include_directories(${ZLIB_INCLUDE_DIRS} ${PUGIXML_INCLUDE_DIR} ${ZSTD_INCLUDE_DIR}) else() # add miniz and pugixml from source @@ -104,7 +103,10 @@ else() endif() if(USE_EXTLIBS) - target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES} ${PUGIXML_LIBRARY} ${ZSTD_LIBRARY}) + target_link_libraries(${PROJECT_NAME} PRIVATE + $,zstd::libzstd_shared,zstd::libzstd_static> + pugixml::pugixml + ZLIB::ZLIB) else() if(USE_ZSTD) target_link_libraries(${PROJECT_NAME} ${ZSTD_LIBRARY}) ================================================ FILE: ports/tmxlite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fallahn/tmxlite REF "v${VERSION}" HEAD_REF master SHA512 323b8ce20c4d2c7dd98c96ddb4d4d3ba6a3862dbda1e7880086cb493b22e79f1891dda6a4d3145de44b78dfa6258ded366e32f31781f08b1657a1da080013415 PATCHES dependencies.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" TMXLITE_STATIC_LIB) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/tmxlite" OPTIONS -DTMXLITE_STATIC_LIB=${TMXLITE_STATIC_LIB} -DUSE_EXTLIBS=ON -DPKGCONF_REQ_PUB=pugixml ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() set(STATIC_POSTFIX "") if(TMXLITE_STATIC_LIB) set(STATIC_POSTFIX "-s") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/tmxlite.pc" "-ltmxlite" "-ltmxlite${STATIC_POSTFIX}") endif() if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/tmxlite.pc" "-ltmxlite" "-ltmxlite${STATIC_POSTFIX}-d") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tmxlite/vcpkg.json ================================================ { "name": "tmxlite", "version": "1.4.5", "description": "A lightweight C++14 parsing library for tmx map files created with the Tiled map editor.", "homepage": "https://github.com/fallahn/tmxlite", "license": "Zlib", "dependencies": [ "pugixml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib", "zstd" ] } ================================================ FILE: ports/tobias-loew-flags/add-install-configuration.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 78d96ff..3215aca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,39 @@ endif() ################################################## add_library(boost_flags INTERFACE) #target_include_directories(boost_flags PUBLIC ${Boost_INCLUDE_DIRS}) -target_include_directories(boost_flags INTERFACE ${CMAKE_SOURCE_DIR}/include) +target_include_directories(boost_flags + INTERFACE + $ + $ + ) +set_target_properties(boost_flags PROPERTIES + EXPORT_NAME flags +) +include(CMakePackageConfigHelpers) + +configure_package_config_file( + cmake/unofficial-tobias-loew-flags-config.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-tobias-loew-flags-config.cmake" + INSTALL_DESTINATION share/unofficial-tobias-loew-flags/ + NO_CHECK_REQUIRED_COMPONENTS_MACRO) + +# Install. +install(TARGETS boost_flags EXPORT unofficial-tobias-loew-flags) + +install( + EXPORT unofficial-tobias-loew-flags + NAMESPACE unofficial::tobias-loew-flags:: + FILE unofficial-tobias-loew-flags-targets.cmake + DESTINATION share/unofficial-tobias-loew-flags/) + +install(DIRECTORY include/boost DESTINATION include) + +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/cmake/unofficial-tobias-loew-flags-config.cmake" + DESTINATION share/unofficial-tobias-loew-flags) + +if(0) if (Boost_FOUND) target_include_directories(boost_flags INTERFACE ${Boost_INCLUDE_DIRS}) endif() @@ -79,4 +111,5 @@ endif() # Subdirectories ################################################## add_subdirectory(test) +endif() # add_subdirectory(example) diff --git a/cmake/unofficial-tobias-loew-flags-config.cmake.in b/cmake/unofficial-tobias-loew-flags-config.cmake.in new file mode 100644 index 0000000..9a784e1 --- /dev/null +++ b/cmake/unofficial-tobias-loew-flags-config.cmake.in @@ -0,0 +1,5 @@ + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-tobias-loew-flags-targets.cmake") + ================================================ FILE: ports/tobias-loew-flags/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tobias-loew/flags REF 7a3cb950b79e7ab596ae22da30fa685c70ef497b SHA512 a7835c3508830c1e215c301588ca26be84a6e1ca6ed4bfb5a3225bb390bf0637ac368bd7214e56809b24f6ac26a9e6f9478adf03d8e9140c2bd430c88f1c8f26 HEAD_REF main PATCHES add-install-configuration.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tobias-loew-flags/vcpkg.json ================================================ { "name": "tobias-loew-flags", "version-date": "2024-09-10", "description": "type-safe bitwise operations in C++, to be proposed for Boost", "homepage": "https://tobias-loew.github.io/flags/doc/html/flags.html", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/toml11/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ToruNiina/toml11 REF "v${VERSION}" SHA512 1779c6b21a0a4000f49e5bf3a8b1288989622eb4a4e365cd6c49d9a8cc859ad18514b94dca63bd8a49f554aa7387882a1a089fadde267cebdf2a8aa49aacd11b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_CXX_STANDARD=11 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/toml11) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/toml11/vcpkg.json ================================================ { "name": "toml11", "version": "4.4.0", "description": "A C++11 header-only toml parser/encoder depending only on C++ standard library.", "homepage": "https://github.com/ToruNiina/toml11", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tomlplusplus/fix-android-fileapi.patch ================================================ diff --git a/include/toml++/impl/parser.inl b/include/toml++/impl/parser.inl index 6f0136f..be37f0d 100644 --- a/include/toml++/impl/parser.inl +++ b/include/toml++/impl/parser.inl @@ -23,6 +23,12 @@ #include "unicode.hpp" TOML_DISABLE_WARNINGS; #include + +#if defined(__ANDROID_API__) && __ANDROID_API__ < 24 + // Cf. https://android.googlesource.com/platform/bionic/+/master/docs/32-bit-abi.md#32_bit-and + #define ftello ftell + #define fseeko fseek +#endif #include #if TOML_INT_CHARCONV || TOML_FLOAT_CHARCONV #include ================================================ FILE: ports/tomlplusplus/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO marzer/tomlplusplus REF "v${VERSION}" SHA512 c227fc8147c9459b29ad24002aaf6ab2c42fac22ea04c1c52b283a0172581ccd4527b33c1931e0ef0d1db6b6a53f9e9882c6d4231c7f3494cf070d0220741aa5 HEAD_REF master PATCHES fix-android-fileapi.patch ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbuild_tests=false -Dbuild_examples=false ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/tomlplusplus) # Fixup link lib name and multi-config find_library(lib NAMES tomlplusplus PATHS "${CURRENT_PACKAGES_DIR}/lib" NO_DEFAULT_PATH REQUIRED) cmake_path(GET lib FILENAME name) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/tomlplusplus/tomlplusplusConfig.cmake" [[(IMPORTED_LOCATION "..PACKAGE_PREFIX_DIR./lib/)[^"]*"]] " \\1${name}\"" REGEX ) if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/tomlplusplus/tomlplusplusConfig.cmake" [[IMPORTED_LOCATION ("..PACKAGE_PREFIX_DIR.)(/lib/[^"]*")]] [[IMPORTED_CONFIGURATIONS "DEBUG;RELEASE" IMPORTED_LOCATION_DEBUG \1/debug\2 IMPORTED_LOCATION_RELEASE \1\2]] REGEX ) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tomlplusplus/vcpkg.json ================================================ { "name": "tomlplusplus", "version": "3.4.0", "port-version": 1, "description": "Header-only TOML config file parser and serializer for modern C++.", "homepage": "https://marzer.github.io/tomlplusplus/", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/tomsolver/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tomwillow/tomsolver REF "${VERSION}" SHA512 00e1b961b1e6730bf74209622a44f932b5221c15995c53bcea9de5b84ba7d75549c095658bcb5729d4a38bf60104b5c5a8fa97015f13977341fcdd62643f35c2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tomsolver/vcpkg.json ================================================ { "name": "tomsolver", "version": "1.0.1", "description": "Simplest, Well-tested, Non-linear equations solver library.", "homepage": "https://github.com/tomwillow/tomsolver", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/torch-th/debug.patch ================================================ diff --git a/lib/TH/CMakeLists.txt b/lib/TH/CMakeLists.txt index 803dfe1..7db876b 100644 --- a/lib/TH/CMakeLists.txt +++ b/lib/TH/CMakeLists.txt @@ -221,7 +221,13 @@ ENDIF(C_AVX2_FOUND OR C_AVX_FOUND OR C_SSE4_2_FOUND OR C_SSE4_1_FOUND) IF(C_SSE4_1_FOUND AND C_SSE4_2_FOUND) SET(CMAKE_C_FLAGS "${C_SSE4_1_FLAGS} -DUSE_SSE4_1 ${C_SSE4_2_FLAGS} -DUSE_SSE4_2 ${CMAKE_C_FLAGS}") IF(MSVC) - SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast") + IF(CMAKE_BUILD_TYPE STREQUAL Release) + SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast") + MESSAGE(STATUS "Release mode. Found SSE4_1 and SSE4_2.") + ELSE() + SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "/fp:fast") + MESSAGE(STATUS "Non-release mode. Found SSE4_1 and SSE4_2.") + ENDIF() ELSE(MSVC) SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_sse.c PROPERTIES COMPILE_FLAGS "-O3 -ffast-math") ENDIF(MSVC) @@ -231,8 +237,15 @@ ENDIF(C_SSE4_1_FOUND AND C_SSE4_2_FOUND) # IF AVX FOUND IF(C_AVX_FOUND) IF(MSVC) - SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast ${C_AVX_FLAGS}") - SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX ${C_AVX_FLAGS}") + IF(CMAKE_BUILD_TYPE STREQUAL Release) + SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/Ox /fp:fast ${C_AVX_FLAGS}") + SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX ${C_AVX_FLAGS}") + MESSAGE(STATUS "Release mode. Found AVX.") + ELSE() + SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "/fp:fast ${C_AVX_FLAGS}") + SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "/arch:AVX ${C_AVX_FLAGS}") + MESSAGE(STATUS "Non-release mode. Found AVX.") + ENDIF() ELSE(MSVC) SET_SOURCE_FILES_PROPERTIES(generic/simd/convolve5x5_avx.c PROPERTIES COMPILE_FLAGS "-O3 -ffast-math ${C_AVX_FLAGS}") SET_SOURCE_FILES_PROPERTIES(vector/AVX.c PROPERTIES COMPILE_FLAGS "-O3 ${C_AVX_FLAGS}") @@ -242,7 +255,13 @@ ENDIF(C_AVX_FOUND) IF(C_AVX2_FOUND) IF(MSVC) - SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX2 ${C_AVX2_FLAGS}") + IF(CMAKE_BUILD_TYPE STREQUAL Release) + SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/Ox /arch:AVX2 ${C_AVX2_FLAGS}") + MESSAGE(STATUS "Release mode. Found AVX2.") + ELSE() + SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "/arch:AVX2 ${C_AVX2_FLAGS}") + MESSAGE(STATUS "Non-release mode. Found AVX2.") + ENDIF() ELSE(MSVC) SET_SOURCE_FILES_PROPERTIES(vector/AVX2.c PROPERTIES COMPILE_FLAGS "-O3 ${C_AVX2_FLAGS}") ENDIF(MSVC) ================================================ FILE: ports/torch-th/fix-arm64-osx-config.patch ================================================ diff --git a/lib/TH/cmake/FindARM.cmake b/lib/TH/cmake/FindARM.cmake index 2dcb2a2..9d68601 100644 --- a/lib/TH/cmake/FindARM.cmake +++ b/lib/TH/cmake/FindARM.cmake @@ -45,7 +45,7 @@ ELSEIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") CPUINFO) #neon instruction can be found on the majority part of modern ARM processor - STRING(REGEX REPLACE "^.*(neon).*$" "\\1" NEON_THERE ${CPUINFO}) + STRING(REGEX REPLACE "^.*(neon).*$" "\\1" NEON_THERE "${CPUINFO}") STRING(COMPARE EQUAL "neon" "${NEON_THERE}" NEON_TRUE) IF (NEON_TRUE) set(NEON_FOUND true CACHE BOOL "NEON available on host") ================================================ FILE: ports/torch-th/fix-cmake4.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f3d1d4785d..e17b084ad2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,4 @@ -IF(APPLE) - CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR) - CMAKE_POLICY(VERSION 2.8.12) -ELSE() - CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) - CMAKE_POLICY(VERSION 2.8) -ENDIF() +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" diff --git a/lib/TH/CMakeLists.txt b/lib/TH/CMakeLists.txt index 7db876be41..66b5f49d84 100644 --- a/lib/TH/CMakeLists.txt +++ b/lib/TH/CMakeLists.txt @@ -1,10 +1,5 @@ cmake_minimum_required(VERSION 2.6) -# avoid some cmake warnings -IF(POLICY CMP0026) - CMAKE_POLICY(SET CMP0026 OLD) -ENDIF() - SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) SET(CMAKE_LIBRARY_PATH /usr/lib/x86_64-linux-gnu/ ${CMAKE_LIBRARY_PATH}) @@ -497,10 +492,11 @@ IF (BLAS_FOUND AND BLAS_INSTALL_LIBRARIES) ENDIF() # Create THConfig.cmake +if(0) -GET_TARGET_PROPERTY(TH_OUTPUT_NAME TH LOCATION) GET_FILENAME_COMPONENT(TH_OUTPUT_NAME ${TH_OUTPUT_NAME} NAME) SET(TH_LIBRARIES "${CMAKE_INSTALL_PREFIX}/${TH_INSTALL_LIB_SUBDIR}/${TH_OUTPUT_NAME}") SET(TH_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${TH_INSTALL_INCLUDE_SUBDIR}/TH") CONFIGURE_FILE(THConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/THConfig.cmake") INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake-exports/THConfig.cmake" DESTINATION "${TH_INSTALL_CMAKE_SUBDIR}") +endif() \ No newline at end of file ================================================ FILE: ports/torch-th/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY ONLY_DYNAMIC_CRT) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO torch/torch7 REF dde9e56fb61eee040d7f3dba2331c6d6c095aee8 SHA512 ef813e6f583f26019da362be1e5d9886ecf3306a2b41e5f7a73d432872eacd2745e0cf26bfcc691452f87611e02e302c54f07b2f3a3288744535e57d154a73db HEAD_REF master PATCHES debug.patch fix-arm64-osx-config.patch fix-cmake4.patch # Note: The portfile currently deletes all cmake files ) file(REMOVE "${SOURCE_PATH}/lib/TH/cmake/FindBLAS.cmake") file(REMOVE "${SOURCE_PATH}/lib/TH/cmake/FindLAPACK.cmake") file(REMOVE "${SOURCE_PATH}/lib/TH/cmake/FindMKL.cmake") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/lib/TH" OPTIONS -DWITH_OPENMP=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/cmake") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYRIGHT.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/torch-th" RENAME copyright) ================================================ FILE: ports/torch-th/vcpkg.json ================================================ { "name": "torch-th", "version-date": "2019-04-19", "port-version": 6, "description": "Torch's TH library", "homepage": "https://github.com/torch/torch7", "license": "BSD-3-Clause", "dependencies": [ "blas", "lapack", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tracy/build-tools.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 72901a8c..365724a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -193,3 +193,15 @@ if(TRACY_CLIENT_PYTHON) add_subdirectory(python) endif() + +option(VCPKG_CLI_TOOLS "library" OFF) +option(VCPKG_GUI_TOOLS "library" OFF) +if(VCPKG_CLI_TOOLS) + add_subdirectory(csvexport) + add_subdirectory(capture) + add_subdirectory(import) + add_subdirectory(update) +endif() +if(VCPKG_GUI_TOOLS) + add_subdirectory(profiler) +endif() diff --git a/cmake/server.cmake b/cmake/server.cmake index c12a3408..0d55cf91 100644 --- a/cmake/server.cmake +++ b/cmake/server.cmake @@ -1,3 +1,4 @@ +include_guard(GLOBAL) set(TRACY_COMMON_DIR ${CMAKE_CURRENT_LIST_DIR}/../public/common) set(TRACY_COMMON_SOURCES diff --git a/cmake/vendor.cmake b/cmake/vendor.cmake index 29f12cfa..40b3e078 100644 --- a/cmake/vendor.cmake +++ b/cmake/vendor.cmake @@ -1,3 +1,4 @@ +include_guard(GLOBAL) # Vendor Specific CMake # The Tracy project keeps most vendor source locally ================================================ FILE: ports/tracy/downgrade-capstone-5.patch ================================================ diff --git a/profiler/src/profiler/TracySourceView.cpp b/profiler/src/profiler/TracySourceView.cpp index c79948b8..2795bf92 100644 --- a/profiler/src/profiler/TracySourceView.cpp +++ b/profiler/src/profiler/TracySourceView.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include "imgui.h" #include "TracyCharUtil.hpp" @@ -713,7 +713,7 @@ bool SourceView::Disassemble( uint64_t symAddr, const Worker& worker ) rval = cs_open( CS_ARCH_ARM, CS_MODE_ARM, &handle ); break; case CpuArchArm64: - rval = cs_open( CS_ARCH_AARCH64, CS_MODE_ARM, &handle ); + rval = cs_open( CS_ARCH_ARM64, CS_MODE_ARM, &handle ); break; default: assert( false ); @@ -778,9 +778,9 @@ bool SourceView::Disassemble( uint64_t symAddr, const Worker& worker ) } break; case CpuArchArm64: - if( detail.aarch64.op_count == 1 && detail.aarch64.operands[0].type == AARCH64_OP_IMM ) + if( detail.arm64.op_count == 1 && detail.arm64.operands[0].type == ARM64_OP_IMM ) { - jumpAddr = (uint64_t)detail.aarch64.operands[0].imm; + jumpAddr = (uint64_t)detail.arm64.operands[0].imm; } break; default: @@ -865,18 +865,18 @@ bool SourceView::Disassemble( uint64_t symAddr, const Worker& worker ) } break; case CpuArchArm64: - for( uint8_t i=0; i #include -#include +#include #define ZDICT_STATIC_LINKING_ONLY #include @@ -3912,7 +3912,7 @@ void Worker::AddSymbolCode( uint64_t ptr, const char* data, size_t sz ) rval = cs_open( CS_ARCH_ARM, CS_MODE_ARM, &handle ); break; case CpuArchArm64: - rval = cs_open( CS_ARCH_AARCH64, CS_MODE_ARM, &handle ); + rval = cs_open( CS_ARCH_ARM64, CS_MODE_ARM, &handle ); break; default: assert( false ); @@ -3952,9 +3952,9 @@ void Worker::AddSymbolCode( uint64_t ptr, const char* data, size_t sz ) } break; case CpuArchArm64: - if( detail.aarch64.op_count == 1 && detail.aarch64.operands[0].type == AARCH64_OP_IMM ) + if( detail.arm64.op_count == 1 && detail.arm64.operands[0].type == ARM64_OP_IMM ) { - callAddr = (uint64_t)detail.aarch64.operands[0].imm; + callAddr = (uint64_t)detail.arm64.operands[0].imm; } break; default: ================================================ FILE: ports/tracy/fix-imgui-patch.patch ================================================ diff --git a/cmake/imgui-loader.patch b/cmake/imgui-loader.patch index 145fa755..71e5d6cb 100644 --- a/cmake/imgui-loader.patch +++ b/cmake/imgui-loader.patch @@ -1,16 +1,16 @@ -diff --git i/backends/imgui_impl_opengl3_loader.h w/backends/imgui_impl_opengl3_loader.h -index 4ca0536..a1ff572 100644 ---- i/backends/imgui_impl_opengl3_loader.h -+++ w/backends/imgui_impl_opengl3_loader.h -@@ -180,6 +180,7 @@ typedef khronos_uint8_t GLubyte; - #define GL_VERSION 0x1F02 +diff --git a/backends/imgui_impl_opengl3_loader.h b/backends/imgui_impl_opengl3_loader.h +index 2c80cc598..1177da586 100644 +--- a/backends/imgui_impl_opengl3_loader.h ++++ b/backends/imgui_impl_opengl3_loader.h +@@ -182,6 +182,7 @@ typedef khronos_uint8_t GLubyte; #define GL_EXTENSIONS 0x1F03 + #define GL_NEAREST 0x2600 #define GL_LINEAR 0x2601 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 #define GL_TEXTURE_MAG_FILTER 0x2800 #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 -@@ -244,8 +245,10 @@ GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); +@@ -246,8 +247,10 @@ GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); #define GL_TEXTURE0 0x84C0 #define GL_ACTIVE_TEXTURE 0x84E0 typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); @@ -21,7 +21,7 @@ index 4ca0536..a1ff572 100644 #endif #endif /* GL_VERSION_1_3 */ #ifndef GL_VERSION_1_4 -@@ -481,7 +484,7 @@ GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc); +@@ -490,7 +493,7 @@ GL3W_API GL3WglProc imgl3wGetProcAddress(const char *proc); /* gl3w internal state */ union ImGL3WProcs { @@ -30,7 +30,7 @@ index 4ca0536..a1ff572 100644 struct { PFNGLACTIVETEXTUREPROC ActiveTexture; PFNGLATTACHSHADERPROC AttachShader; -@@ -497,6 +500,7 @@ union ImGL3WProcs { +@@ -506,6 +509,7 @@ union ImGL3WProcs { PFNGLCLEARPROC Clear; PFNGLCLEARCOLORPROC ClearColor; PFNGLCOMPILESHADERPROC CompileShader; @@ -38,7 +38,7 @@ index 4ca0536..a1ff572 100644 PFNGLCREATEPROGRAMPROC CreateProgram; PFNGLCREATESHADERPROC CreateShader; PFNGLDELETEBUFFERSPROC DeleteBuffers; -@@ -563,6 +567,7 @@ GL3W_API extern union ImGL3WProcs imgl3wProcs; +@@ -575,6 +579,7 @@ GL3W_API extern union ImGL3WProcs imgl3wProcs; #define glClear imgl3wProcs.gl.Clear #define glClearColor imgl3wProcs.gl.ClearColor #define glCompileShader imgl3wProcs.gl.CompileShader @@ -46,7 +46,7 @@ index 4ca0536..a1ff572 100644 #define glCreateProgram imgl3wProcs.gl.CreateProgram #define glCreateShader imgl3wProcs.gl.CreateShader #define glDeleteBuffers imgl3wProcs.gl.DeleteBuffers -@@ -859,6 +864,7 @@ static const char *proc_names[] = { +@@ -883,6 +888,7 @@ static const char *proc_names[] = { "glClear", "glClearColor", "glCompileShader", ================================================ FILE: ports/tracy/fix-vendor-versions.patch ================================================ diff --git a/cmake/server.cmake b/cmake/server.cmake index a76d1c13..ec73f0b8 100644 --- a/cmake/server.cmake +++ b/cmake/server.cmake @@ -29,7 +29,7 @@ list(TRANSFORM TRACY_SERVER_SOURCES PREPEND "${TRACY_SERVER_DIR}/") add_library(TracyServer STATIC EXCLUDE_FROM_ALL ${TRACY_COMMON_SOURCES} ${TRACY_SERVER_SOURCES}) target_include_directories(TracyServer PUBLIC ${TRACY_COMMON_DIR} ${TRACY_SERVER_DIR}) -target_link_libraries(TracyServer PUBLIC TracyCapstone libzstd PPQSort::PPQSort) +target_link_libraries(TracyServer PUBLIC capstone::capstone zstd::libzstd PPQSort::PPQSort) if(NO_STATISTICS) target_compile_definitions(TracyServer PUBLIC TRACY_NO_STATISTICS) endif() diff --git a/cmake/vendor.cmake b/cmake/vendor.cmake index adbd5de9..61683d51 100644 --- a/cmake/vendor.cmake +++ b/cmake/vendor.cmake @@ -6,7 +6,6 @@ set (ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../") # Dependencies are taken from the system first and if not found, they are pulled with CPM and built from source include(FindPkgConfig) -include(${CMAKE_CURRENT_LIST_DIR}/CPM.cmake) option(DOWNLOAD_CAPSTONE "Force download capstone" ON) option(DOWNLOAD_GLFW "Force download glfw" OFF) @@ -16,105 +15,21 @@ option(DOWNLOAD_PUGIXML "Force download pugixml" OFF) # capstone -pkg_check_modules(CAPSTONE capstone) -if(CAPSTONE_FOUND AND NOT DOWNLOAD_CAPSTONE) - message(STATUS "Capstone found: ${CAPSTONE}") - add_library(TracyCapstone INTERFACE) - target_include_directories(TracyCapstone INTERFACE ${CAPSTONE_INCLUDE_DIRS}) - target_link_libraries(TracyCapstone INTERFACE ${CAPSTONE_LINK_LIBRARIES}) -else() - CPMAddPackage( - NAME capstone - GITHUB_REPOSITORY capstone-engine/capstone - GIT_TAG 6.0.0-Alpha5 - OPTIONS - "CAPSTONE_X86_ATT_DISABLE ON" - "CAPSTONE_ALPHA_SUPPORT OFF" - "CAPSTONE_ARC_SUPPORT OFF" - "CAPSTONE_HPPA_SUPPORT OFF" - "CAPSTONE_LOONGARCH_SUPPORT OFF" - "CAPSTONE_M680X_SUPPORT OFF" - "CAPSTONE_M68K_SUPPORT OFF" - "CAPSTONE_MIPS_SUPPORT OFF" - "CAPSTONE_MOS65XX_SUPPORT OFF" - "CAPSTONE_PPC_SUPPORT OFF" - "CAPSTONE_SPARC_SUPPORT OFF" - "CAPSTONE_SYSTEMZ_SUPPORT OFF" - "CAPSTONE_XCORE_SUPPORT OFF" - "CAPSTONE_TRICORE_SUPPORT OFF" - "CAPSTONE_TMS320C64X_SUPPORT OFF" - "CAPSTONE_M680X_SUPPORT OFF" - "CAPSTONE_EVM_SUPPORT OFF" - "CAPSTONE_WASM_SUPPORT OFF" - "CAPSTONE_BPF_SUPPORT OFF" - "CAPSTONE_RISCV_SUPPORT OFF" - "CAPSTONE_SH_SUPPORT OFF" - "CAPSTONE_XTENSA_SUPPORT OFF" - "CAPSTONE_BUILD_MACOS_THIN ON" - EXCLUDE_FROM_ALL TRUE - ) - add_library(TracyCapstone INTERFACE) - target_include_directories(TracyCapstone INTERFACE ${capstone_SOURCE_DIR}/include/capstone) - target_link_libraries(TracyCapstone INTERFACE capstone_static) -endif() +find_package(capstone CONFIG) # GLFW if(NOT USE_WAYLAND AND NOT EMSCRIPTEN) - pkg_check_modules(GLFW glfw3) - if (GLFW_FOUND AND NOT DOWNLOAD_GLFW) - add_library(TracyGlfw3 INTERFACE) - target_include_directories(TracyGlfw3 INTERFACE ${GLFW_INCLUDE_DIRS}) - target_link_libraries(TracyGlfw3 INTERFACE ${GLFW_LINK_LIBRARIES}) - else() - CPMAddPackage( - NAME glfw - GITHUB_REPOSITORY glfw/glfw - GIT_TAG 3.4 - OPTIONS - "GLFW_BUILD_EXAMPLES OFF" - "GLFW_BUILD_TESTS OFF" - "GLFW_BUILD_DOCS OFF" - "GLFW_INSTALL OFF" - EXCLUDE_FROM_ALL TRUE - ) - add_library(TracyGlfw3 INTERFACE) - target_link_libraries(TracyGlfw3 INTERFACE glfw) - endif() + find_package(glfw3 CONFIG) endif() # freetype -pkg_check_modules(FREETYPE freetype2) -if (FREETYPE_FOUND AND NOT DOWNLOAD_FREETYPE) - add_library(TracyFreetype INTERFACE) - target_include_directories(TracyFreetype INTERFACE ${FREETYPE_INCLUDE_DIRS}) - target_link_libraries(TracyFreetype INTERFACE ${FREETYPE_LINK_LIBRARIES}) -else() - CPMAddPackage( - NAME freetype - GITHUB_REPOSITORY freetype/freetype - GIT_TAG VER-2-14-1 - OPTIONS - "FT_DISABLE_HARFBUZZ ON" - "FT_WITH_HARFBUZZ OFF" - EXCLUDE_FROM_ALL TRUE - ) - add_library(TracyFreetype INTERFACE) - target_link_libraries(TracyFreetype INTERFACE freetype) -endif() +find_package(Freetype) # Zstd -CPMAddPackage( - NAME zstd - GITHUB_REPOSITORY facebook/zstd - GIT_TAG v1.5.7 - OPTIONS - "ZSTD_BUILD_SHARED OFF" - EXCLUDE_FROM_ALL TRUE - SOURCE_SUBDIR build/cmake -) +find_package(zstd CONFIG) # Diff Template Library @@ -134,169 +49,70 @@ target_include_directories(TracyGetOpt PUBLIC ${GETOPT_DIR}) # ImGui -CPMAddPackage( - NAME ImGui - GITHUB_REPOSITORY ocornut/imgui - GIT_TAG v1.92.5-docking - DOWNLOAD_ONLY TRUE - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/imgui-emscripten.patch" - "${CMAKE_CURRENT_LIST_DIR}/imgui-loader.patch" -) - -set(IMGUI_SOURCES - imgui_widgets.cpp - imgui_draw.cpp - imgui_demo.cpp - imgui.cpp - imgui_tables.cpp - misc/freetype/imgui_freetype.cpp - backends/imgui_impl_opengl3.cpp -) - -list(TRANSFORM IMGUI_SOURCES PREPEND "${ImGui_SOURCE_DIR}/") - -add_library(TracyImGui STATIC EXCLUDE_FROM_ALL ${IMGUI_SOURCES}) -target_include_directories(TracyImGui PUBLIC ${ImGui_SOURCE_DIR}) -target_link_libraries(TracyImGui PUBLIC TracyFreetype) -target_compile_definitions(TracyImGui PRIVATE "IMGUI_ENABLE_FREETYPE") -#target_compile_definitions(TracyImGui PUBLIC "IMGUI_DISABLE_OBSOLETE_FUNCTIONS") - -if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND LEGACY) - find_package(X11 REQUIRED) - target_link_libraries(TracyImGui PUBLIC ${X11_LIBRARIES}) -endif() +if (ImGui_SOURCE_DIR) + set(IMGUI_SOURCES + imgui_widgets.cpp + imgui_draw.cpp + imgui_demo.cpp + imgui.cpp + imgui_tables.cpp + misc/freetype/imgui_freetype.cpp + backends/imgui_impl_opengl3.cpp + ) -if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - target_compile_definitions(TracyImGui PRIVATE "IMGUI_DISABLE_DEBUG_TOOLS" "IMGUI_DISABLE_DEMO_WINDOWS") -endif() + list(TRANSFORM IMGUI_SOURCES PREPEND "${ImGui_SOURCE_DIR}/") -# NFD + add_library(TracyImGui STATIC EXCLUDE_FROM_ALL ${IMGUI_SOURCES}) + target_include_directories(TracyImGui PUBLIC ${ImGui_SOURCE_DIR}) + target_link_libraries(TracyImGui PUBLIC Freetype::Freetype) + target_compile_definitions(TracyImGui PRIVATE "IMGUI_ENABLE_FREETYPE") + #target_compile_definitions(TracyImGui PUBLIC "IMGUI_DISABLE_OBSOLETE_FUNCTIONS") -if(NOT NO_FILESELECTOR AND NOT EMSCRIPTEN) - if(GTK_FILESELECTOR) - set(NFD_PORTAL OFF) - else() - set(NFD_PORTAL ON) + if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND LEGACY) + find_package(X11 REQUIRED) + target_link_libraries(TracyImGui PUBLIC ${X11_LIBRARIES}) endif() - CPMAddPackage( - NAME nfd - GITHUB_REPOSITORY btzy/nativefiledialog-extended - GIT_TAG v1.2.1 - EXCLUDE_FROM_ALL TRUE - OPTIONS - "NFD_PORTAL ${NFD_PORTAL}" - ) + if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") + target_compile_definitions(TracyImGui PRIVATE "IMGUI_DISABLE_DEBUG_TOOLS" "IMGUI_DISABLE_DEMO_WINDOWS") + endif() endif() +# NFD + +find_package(nfd CONFIG) + # PPQSort -CPMAddPackage( - NAME PPQSort - GITHUB_REPOSITORY GabTux/PPQSort - VERSION 1.0.6 - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/ppqsort-nodebug.patch" - EXCLUDE_FROM_ALL TRUE -) +find_package(PPQSort CONFIG) # json -CPMAddPackage( - NAME json - GITHUB_REPOSITORY nlohmann/json - GIT_TAG v3.12.0 - EXCLUDE_FROM_ALL TRUE -) +find_package(nlohmann_json CONFIG) # md4c -CPMAddPackage( - NAME md4c - GITHUB_REPOSITORY mity/md4c - GIT_TAG release-0.5.2 - EXCLUDE_FROM_ALL TRUE -) +find_package(md4c CONFIG) if(NOT EMSCRIPTEN) # base64 - set(BUILD_SHARED_LIBS_SAVE ${BUILD_SHARED_LIBS}) - set(BUILD_SHARED_LIBS OFF) - CPMAddPackage( - NAME base64 - GITHUB_REPOSITORY aklomp/base64 - GIT_TAG v0.5.2 - OPTIONS - "BASE64_BUILD_CLI OFF" - "BASE64_WITH_OpenMP OFF" - EXCLUDE_FROM_ALL TRUE - ) - set(BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS_SAVE}) + find_package(base64 CONFIG) # tidy - CPMAddPackage( - NAME tidy - GITHUB_REPOSITORY htacg/tidy-html5 - GIT_TAG 5.8.0 - PATCHES - "${CMAKE_CURRENT_LIST_DIR}/tidy-cmake.patch" - EXCLUDE_FROM_ALL TRUE - ) + find_package(unofficial-tidy-html5 CONFIG) # usearch - CPMAddPackage( - NAME usearch - GITHUB_REPOSITORY unum-cloud/usearch - GIT_TAG v2.21.3 - EXCLUDE_FROM_ALL TRUE - ) + find_package(usearch CONFIG) # pugixml - pkg_check_modules(PUGIXML pugixml) - if (PUGIXML_FOUND AND NOT DOWNLOAD_PUGIXML) - add_library(TracyPugixml INTERFACE) - target_include_directories(TracyPugixml INTERFACE ${PUGIXML_INCLUDE_DIRS}) - target_link_libraries(TracyPugixml INTERFACE ${PUGIXML_LINK_LIBRARIES}) - else() - CPMAddPackage( - NAME pugixml - GITHUB_REPOSITORY zeux/pugixml - GIT_TAG v1.15 - EXCLUDE_FROM_ALL TRUE - ) - add_library(TracyPugixml INTERFACE) - target_link_libraries(TracyPugixml INTERFACE pugixml) - endif() + find_package(pugixml CONFIG) # libcurl - pkg_check_modules(LIBCURL libcurl>=7.87.0) - if (LIBCURL_FOUND AND NOT DOWNLOAD_LIBCURL) - add_library(TracyLibcurl INTERFACE) - target_include_directories(TracyLibcurl INTERFACE ${LIBCURL_INCLUDE_DIRS}) - target_link_libraries(TracyLibcurl INTERFACE ${LIBCURL_LINK_LIBRARIES}) - else() - CPMAddPackage( - NAME libcurl - GITHUB_REPOSITORY curl/curl - GIT_TAG curl-8_17_0 - OPTIONS - "BUILD_STATIC_LIBS ON" - "BUILD_SHARED_LIBS OFF" - "HTTP_ONLY ON" - "CURL_ZSTD OFF" - "CURL_USE_LIBPSL OFF" - EXCLUDE_FROM_ALL TRUE - ) - add_library(TracyLibcurl INTERFACE) - target_link_libraries(TracyLibcurl INTERFACE libcurl_static) - target_include_directories(TracyLibcurl INTERFACE ${libcurl_SOURCE_DIR}/include) - endif() - + find_package(CURL) endif() diff --git a/profiler/CMakeLists.txt b/profiler/CMakeLists.txt index 1681a64b..01043d3e 100644 --- a/profiler/CMakeLists.txt +++ b/profiler/CMakeLists.txt @@ -244,7 +244,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE TracyImGui Threads::Threads nlohmann_json::nlohmann_json - md4c + md4c::md4c ) target_include_directories(${PROJECT_NAME} PRIVATE ${tidy_SOURCE_DIR}/include @@ -255,11 +255,11 @@ target_include_directories(${PROJECT_NAME} PRIVATE if(NOT EMSCRIPTEN) target_link_libraries(${PROJECT_NAME} PRIVATE - TracyLibcurl - base64 - tidy-static - TracyPugixml - usearch + CURL::libcurl + aklomp::base64 + unofficial::tidy-html5::tidy + pugixml::pugixml + usearch::usearch ) endif() @@ -293,7 +293,7 @@ if(NOT EMSCRIPTEN) target_link_libraries(${PROJECT_NAME} PRIVATE nfd::nfd) endif() if(NOT USE_WAYLAND) - target_link_libraries(${PROJECT_NAME} PRIVATE TracyGlfw3) + target_link_libraries(${PROJECT_NAME} PRIVATE glfw) endif() endif() ================================================ FILE: ports/tracy/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfpld/tracy REF "v${VERSION}" SHA512 18c0c589a1d97d0760958c8ab00ba2135bc602fd359d48445b5d8ed76e5b08742d818bb8f835b599149030f455e553a92db86fb7bae049b47820e4401cf9f935 HEAD_REF master PATCHES build-tools.patch fix-vendor-versions.patch fix-imgui-patch.patch downgrade-capstone-5.patch # tracy wants capstone-6-alpha but vcpkg ships the most recent production capstone, 5.0.6 as of 2026-02-04 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES on-demand TRACY_ON_DEMAND fibers TRACY_FIBERS verbose TRACY_VERBOSE INVERTED_FEATURES crash-handler TRACY_NO_CRASH_HANDLER ) vcpkg_check_features(OUT_FEATURE_OPTIONS TOOLS_OPTIONS FEATURES cli-tools VCPKG_CLI_TOOLS gui-tools VCPKG_GUI_TOOLS ) if ("gui-tools" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH tracy_imgui_path REPO ocornut/imgui REF "v1.92.5-docking" SHA512 4618b8bd6e65ac27cd7cecb3469d135622279d83f8a580c028231578f7023c4465911c5878ee7e40c2f6dda606aef86f27c3cecfb7bc9a6022bd1d89eed17c29 PATCHES "${SOURCE_PATH}/cmake/imgui-emscripten.patch" "${SOURCE_PATH}/cmake/imgui-loader.patch" ) list(APPEND TOOLS_OPTIONS "-DImGui_SOURCE_DIR=${tracy_imgui_path}") endif() if("cli-tools" IN_LIST FEATURES OR "gui-tools" IN_LIST FEATURES) vcpkg_find_acquire_program(PKGCONFIG) list(APPEND TOOLS_OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DDOWNLOAD_CAPSTONE=OFF -DLEGACY=ON -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON ${FEATURE_OPTIONS} OPTIONS_RELEASE ${TOOLS_OPTIONS} MAYBE_UNUSED_VARIABLES DOWNLOAD_CAPSTONE LEGACY CMAKE_DISABLE_FIND_PACKAGE_Git ImGui_SOURCE_DIR ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME Tracy CONFIG_PATH "lib/cmake/Tracy") function(tracy_copy_tool tool_name tool_dir) vcpkg_copy_tools( TOOL_NAMES "${tool_name}" SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${tool_dir}" ) endfunction() set(TOOLS) if("cli-tools" IN_LIST FEATURES) list(APPEND TOOLS tracy-capture tracy-csvexport) tracy_copy_tool(tracy-import-chrome import) tracy_copy_tool(tracy-import-fuchsia import) tracy_copy_tool(tracy-update update) endif() if("gui-tools" IN_LIST FEATURES) list(APPEND TOOLS tracy-profiler) endif() if(TOOLS) vcpkg_copy_tools(TOOL_NAMES ${TOOLS} AUTO_CLEAN) endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/tracy/vcpkg.json ================================================ { "name": "tracy", "version": "0.13.1", "description": "A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.", "homepage": "https://github.com/wolfpld/tracy", "license": "BSD-3-Clause", "supports": "!(windows & (arm | uwp))", "dependencies": [ { "name": "pthreads", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "crash-handler" ], "features": { "cli-tools": { "description": "Build Tracy command-line tools: `capture`, `csvexport`, `import-chrome`, `import-fuchsia` and `update`", "supports": "!(windows & x86)", "dependencies": [ { "name": "capstone", "features": [ "arm", "arm64", "x86" ] }, { "name": "dbus", "default-features": false, "platform": "!windows" }, "nlohmann-json", "ppqsort", "zstd" ] }, "crash-handler": { "description": "Enable crash handler" }, "fibers": { "description": "Enable fibers support" }, "gui-tools": { "description": "Build Tracy GUI tool: `profiler` (aka `Tracy` executable)", "supports": "!(windows & x86)", "dependencies": [ "aklomp-base64", { "name": "capstone", "features": [ "arm", "arm64", "x86" ] }, "curl", { "name": "dbus", "default-features": false, "platform": "!windows" }, "freetype", "glfw3", "md4c", "nativefiledialog-extended", "nlohmann-json", "ppqsort", "pugixml", "tidy-html5", { "name": "usearch", "features": [ "fp16" ] }, "zstd" ] }, "on-demand": { "description": "Enable on-demand profiling" }, "verbose": { "description": "Enables verbose logging", "supports": "!android" } } } ================================================ FILE: ports/transwarp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bloomen/transwarp REF "${VERSION}" SHA512 f420a74513b1b1dfd1cba3e2447f3832098f75c6e9a5f7aff3a7b2567ddca07646d49c90b377299642443dadd968dc98695661a1db33f9426e112559a83f2154 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/transwarp/vcpkg.json ================================================ { "name": "transwarp", "version": "2.2.3", "description": "A header-only C++ library for task concurrency", "homepage": "https://github.com/bloomen/transwarp", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/trantor/000-fix-deps.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a0b10de..ee63bc8 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -245,7 +245,7 @@ endif(HAVE_SPDLOG) set(HAVE_C-ARES NO) if(BUILD_C-ARES) - find_package(c-ares) + find_package(c-ares CONFIG) if(c-ares_FOUND) message(STATUS "c-ares found!") set(HAVE_C-ARES TRUE) @@ -256,7 +256,7 @@ if(HAVE_C-ARES) if(NOT BUILD_SHARED_LIBS) target_compile_definitions(${PROJECT_NAME} PRIVATE CARES_STATICLIB) endif() - target_link_libraries(${PROJECT_NAME} PRIVATE c-ares_lib) + target_link_libraries(${PROJECT_NAME} PRIVATE c-ares::cares) set(TRANTOR_SOURCES ${TRANTOR_SOURCES} trantor/net/inner/AresResolver.cc) set(private_headers ${private_headers} trantor/net/inner/AresResolver.h) if(APPLE) @@ -382,8 +382,6 @@ write_basic_package_version_file( install( FILES "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/TrantorConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/TrantorConfigVersion.cmake" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/Findc-ares.cmake" - "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/FindBotan.cmake" DESTINATION "${INSTALL_TRANTOR_CMAKE_DIR}" COMPONENT dev ) diff --git a/cmake/templates/TrantorConfig.cmake.in b/cmake/templates/TrantorConfig.cmake.in index e9422ed..142d1d6 100644 --- a/cmake/templates/TrantorConfig.cmake.in +++ b/cmake/templates/TrantorConfig.cmake.in @@ -19,7 +19,7 @@ if(@Botan_FOUND@) find_dependency(Botan) endif() if(@c-ares_FOUND@) - find_dependency(c-ares) + find_dependency(c-ares CONFIG) endif() find_dependency(Threads) if(@spdlog_FOUND@) ================================================ FILE: ports/trantor/001-disable-werror.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ee63bc8..4328c70 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,7 +76,7 @@ if(NOT "Windows" AND CMAKE_CXX_COMPILER_ID MATCHES Clang|GNU ) - target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Werror) + target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra) endif() if(${CMAKE_SYSTEM_NAME} STREQUAL "Haiku") ================================================ FILE: ports/trantor/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO an-tao/trantor REF "v${VERSION}" SHA512 5db1af18015047fe21cc3808c1996db521bf9961645c928122b4c96dc9e2fdf1af0f915273e0a6d04c4d76647dfced078b8e101175b9f806cd903f034ffecaaf HEAD_REF master PATCHES 000-fix-deps.patch 001-disable-werror.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Trantor) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/License") vcpkg_copy_pdbs() ================================================ FILE: ports/trantor/vcpkg.json ================================================ { "name": "trantor", "version-semver": "1.5.26", "description": "A non-blocking I/O cross-platform TCP network library, using C++14", "homepage": "https://github.com/an-tao/trantor", "license": "BSD-2-Clause", "dependencies": [ "c-ares", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tre/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.9) project (tre) set (HEADERS lib/regex.h include/tre/tre.h include/tre/tre-config.h ) set (SRCS lib/regcomp.c lib/regerror.c lib/regexec.c lib/tre-ast.c lib/tre-compile.c lib/tre-match-approx.c lib/tre-match-backtrack.c lib/tre-match-parallel.c lib/tre-mem.c lib/tre-parse.c lib/tre-stack.c lib/xmalloc.c win32/tre.def ) include_directories(win32 include/tre) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS -DHAVE_CONFIG_H) if (WIN32) add_definitions(-DHAVE_MALLOC_H) endif() add_library(tre ${SRCS}) target_include_directories(tre PUBLIC "$") install( TARGETS tre EXPORT unofficial-tre-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( EXPORT unofficial-tre-targets NAMESPACE unofficial::tre:: FILE unofficial-tre-config.cmake DESTINATION share/unofficial-tre) install(FILES ${HEADERS} DESTINATION include/tre) ================================================ FILE: ports/tre/fix-config.patch ================================================ diff --git a/win32/config.h b/win32/config.h index 93b8210..db7a9e1 100644 --- a/win32/config.h +++ b/win32/config.h @@ -20,7 +20,6 @@ /* #undef HAVE_ALLOCA_H */ /* Define to 1 if you have and it should be used. */ -#define HAVE_MALLOC_H 1 /* Define if the GNU dcgettext() function is already present or preinstalled. */ @@ -180,4 +179,3 @@ /* Avoid silly warnings about "insecure" functions. */ #define _CRT_SECURE_NO_DEPRECATE 1 -#define snprintf sprintf_s ================================================ FILE: ports/tre/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO laurikari/tre REF 6fb7206b935b35814c5078c20046dbe065435363 SHA512 f1d664719eab23b665d71e34ca3d11f8ba49da23ff20dc28f46d4ce30fe155c12208ba7fd212dbeb20a7037e069909f0c2120ce1fc01074656399805e3289a90 HEAD_REF master PATCHES fix-config.patch ) if(VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${SOURCE_PATH}/win32/tre.def" "tre.dll" "libtre.dll") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tre/usage ================================================ tre provides CMake targets: find_package(unofficial-tre CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::tre::tre) ================================================ FILE: ports/tre/vcpkg.json ================================================ { "name": "tre", "version": "0.8.0", "port-version": 6, "description": "TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching.", "homepage": "https://github.com/laurikari/tre", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tree-similarity/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DatabaseGroup/tree-similarity REF 0.1.1 SHA512 5367f4b694d686456c4ffaaf21c7372fb7012811f3b2ded00c6bc1d18d27ecb7a6a28b3c9bd7cb91cb42c5426321b0b12a2e14ab2c838aa8fc859128b372dded HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/tree-similarity/usage ================================================ tree-similarity provides CMake targets: find_path(TREE_SIMILARITY_INCLUDE_DIRS "tree-similiarity") target_include_directories(main PRIVATE ${TREE_SIMILARITY_INCLUDE_DIRS}) ================================================ FILE: ports/tree-similarity/vcpkg.json ================================================ { "name": "tree-similarity", "version-semver": "0.1.1", "port-version": 1, "description": "Tree edit distance (TED) and similarity measurement library, offering multiple algorithm implementation such as APTED and LGM.", "homepage": "https://github.com/DatabaseGroup/tree-similarity", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tree-sitter/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tree-sitter/tree-sitter REF "v${VERSION}" SHA512 0060809339744be4b3b24bae8115d2793dc113618ab1a79c347456f5b8341b15d2026e7b62d2e4e3c5226c8bf85a089221133457a80bfdd0413cd82bf7c4a172 HEAD_REF master PATCHES unofficial-cmake.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-tree-sitter") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tree-sitter/unofficial-cmake.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 893a4d8..ab94312 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ endif() add_library(tree-sitter ${TS_SOURCE_FILES}) -target_include_directories(tree-sitter PRIVATE lib/src lib/src/wasm PUBLIC lib/include) +target_include_directories(tree-sitter PRIVATE lib/src lib/src/wasm PUBLIC $) if(MSVC) target_compile_options(tree-sitter PRIVATE @@ -92,4 +92,12 @@ install(FILES lib/include/tree_sitter/api.h install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(TARGETS tree-sitter + EXPORT unofficial-tree-sitter-config LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + +target_include_directories(tree-sitter PUBLIC "$") +install( + EXPORT unofficial-tree-sitter-config + NAMESPACE unofficial::tree-sitter:: + DESTINATION share/unofficial-tree-sitter +) ================================================ FILE: ports/tree-sitter/vcpkg.json ================================================ { "name": "tree-sitter", "version-semver": "0.26.7", "description": "An incremental parsing system for programming tools.", "homepage": "https://github.com/tree-sitter/tree-sitter", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tree-sitter-c/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3771647..772f62a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,16 +45,16 @@ set_target_properties(tree-sitter-c SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}" DEFINE_SYMBOL "") +include(GNUInstallDirs) + configure_file(bindings/c/tree-sitter-c.pc.in "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-c.pc" @ONLY) -include(GNUInstallDirs) - install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bindings/c/tree_sitter" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.h") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-c.pc" - DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") install(TARGETS tree-sitter-c LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") ================================================ FILE: ports/tree-sitter-c/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tree-sitter/tree-sitter-c REF "v${VERSION}" SHA512 51cf052230ee835d4ae5e6c5adb24aeaeba3b4f106aceefaf4000bd0e57321946f1b3e3b0f9ea71d1c17a618604c6c7269c80c3ecc5ca17e22c883ff5ce4c304 HEAD_REF master PATCHES pkgconfig.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DTREE_SITTER_CLI=${CURRENT_HOST_INSTALLED_DIR}/tools/tree-sitter-cli/tree-sitter${VCPKG_HOST_EXECUTABLE_SUFFIX}" -DTREE_SITTER_REUSE_ALLOCATOR=ON ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tree-sitter-c/vcpkg.json ================================================ { "name": "tree-sitter-c", "version": "0.24.1", "description": "C grammar for tree-sitter", "homepage": "https://github.com/tree-sitter/tree-sitter-c", "license": "MIT", "dependencies": [ "tree-sitter", { "name": "tree-sitter-cli", "host": true }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/tree-sitter-cli/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(key NOTFOUND) if(VCPKG_CMAKE_SYSTEM_NAME) set(key "${VCPKG_CMAKE_SYSTEM_NAME}-${VCPKG_TARGET_ARCHITECTURE}") elseif(VCPKG_TARGET_IS_WINDOWS) set(key "Windows-${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_download_distfile(license URLS "https://github.com/tree-sitter/tree-sitter/raw/refs/tags/v${VERSION}/LICENSE" FILENAME "tree-sitter-v${VERSION}-LICENSE" SHA512 568a9113476b2f4a542303ae3b329686e2fffd0b29b96a0acc50181ff248ac144f63017d5e376d9b870e33f3bd6063a2aba1d1c0a6c7708dd589ffb67a17491a ) set(archive_path NOTFOUND) # For convenient updates, use # vcpkg install tree-sitter-cli --cmake-args=-DVCPKG_TREE_SITTER_UPDATE=1 if(key STREQUAL "Linux-arm64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-linux-arm64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-linux-arm64.gz" FILENAME "${filename}" SHA512 da03ba55087a13233e014b8034697dad1d0106f676e6e60fc805477cd10e9671af56e3845d49ad692f9f2d0ea33e242c09e526c247ceb5094bb105834381ae35 ) endif() if(key STREQUAL "Linux-x64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-linux-x64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-linux-x64.gz" FILENAME "${filename}" SHA512 86caf799166ad945b8ed4ddf2b48b9d9acb5ae3e5536244f069467f2996da584a7fe23d45edb37ad7e63a7db8be02525971357fa0a7e7868e3136da68567c578 ) endif() if(key STREQUAL "Darwin-arm64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-macos-arm64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-macos-arm64.gz" FILENAME "${filename}" SHA512 3b088390950f48745ea9afc4caea394abaf0ee445530252e6e5a9784a3ea85d7339a664f38cb337e4e6bbb2d3f05189cfa79316c616ee2c25c724e3a068ef4eb ) # Avoid breaking the code signature. set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() if(key STREQUAL "Darwin-x64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-macos-x64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-macos-x64.gz" FILENAME "${filename}" SHA512 b641e8bf21ee66c40f7d9a748fbed3239ac2617be24b0deaf1fdb24e1c9baa5f54bcc9311d4c6a7425cd87032ec9b635deefc62058cbd456839e4e6a52df621a ) # Avoid breaking the code signature. set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() if(key STREQUAL "Windows-arm64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-windows-arm64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-windows-arm64.gz" FILENAME "${filename}" SHA512 1d5e78ada1a4fd6f313b1115a97ac3b0e380de190ddbfb4879045cdfc95eefdff9f676aeb53d59ae788f86bf58360cc27c90698e5243ceb25c6b1febec596f1f ) endif() if(key STREQUAL "Windows-x64" OR VCPKG_TREE_SITTER_UPDATE) set(filename "tree-sitter-${VERSION}-windows-x64.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/tree-sitter/tree-sitter/releases/download/v${VERSION}/tree-sitter-windows-x64.gz" FILENAME "${filename}" SHA512 d59a933adc82818570444e09394d28261a416887d12c5fc11839807f01fcd3719ef982344bb4827ffd5c1b72462ed625520803aff86fd24f4f566873fbd9dcd8 ) endif() if(NOT archive_path) message(FATAL_ERROR "Unsupported platform '${key}'. Please implement me!") endif() if(VCPKG_TREE_SITTER_UPDATE) message(STATUS "All downloads are up-to-date.") message(FATAL_ERROR "Stopping due to VCPKG_TREE_SITTER_UPDATE being enabled.") endif() file(COPY "${archive_path}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") cmake_path(GET archive_path FILENAME archive_name) set(gunzip_command_line gunzip "${archive_name}") if(CMAKE_HOST_WIN32) vcpkg_acquire_msys(MSYS_ROOT) vcpkg_host_path_list(APPEND ENV{PATH} "${MSYS_ROOT}/usr/bin") set(gunzip_command_line sh -c "gunzip '${archive_name}'") endif() vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND ${gunzip_command_line} WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}" LOGNAME "gunzip-${TARGET_TRIPLET}" ) string(REGEX REPLACE "[.]gz\$" "" tool_name "${archive_name}") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${tool_name}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tree-sitter${VCPKG_HOST_EXECUTABLE_SUFFIX}") file(CHMOD "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tree-sitter${VCPKG_HOST_EXECUTABLE_SUFFIX}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) vcpkg_install_copyright(FILE_LIST "${license}" COMMENT [[ Tree-sitter is licensed under the MIT license. The tree-sitter CLI uses third-party components which are not listed individually here. ]]) ================================================ FILE: ports/tree-sitter-cli/vcpkg.json ================================================ { "name": "tree-sitter-cli", "version": "0.26.2", "description": "Tree-sitter is a parser generator tool and an incremental parsing library. This port installs the CLI executable.", "homepage": "https://github.com/tree-sitter/tree-sitter", "license": null, "supports": "native" } ================================================ FILE: ports/treehh/copyright ================================================ Copyright (C) 2001-2022 Kasper Peeters Distributed under the GNU General Public License version 2 or 3. Special permission to use tree.hh under the conditions of a different license can be requested from the author. ================================================ FILE: ports/treehh/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kpeeters/tree.hh REF 42531adcf9d1ff51c5bc1b068a9c57a8a8a912a7 SHA512 793981f69a487a5c2aaa654c98725c0b5bbcc086a43b6f1501c5a8359dba87d6e90ff7507313fcf1ded5054a9f2551e174323c9017a9c6ae87da2c2966e73d7f HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/src/tree.hh" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}/") file(INSTALL "${CURRENT_PORT_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/treehh/vcpkg.json ================================================ { "name": "treehh", "version": "3.18", "description": "An STL-like C++ header-only tree library", "homepage": "https://github.com/kpeeters/tree.hh", "license": "GPL-2.0-only OR GPL-3.0-only" } ================================================ FILE: ports/treehopper/add-cstdint.diff ================================================ diff --git a/C++/API/inc/UsbConnection.h b/C++/API/inc/UsbConnection.h index f07533c..614d2f9 100644 --- a/C++/API/inc/UsbConnection.h +++ b/C++/API/inc/UsbConnection.h @@ -1,4 +1,5 @@ #pragma once +#include #include #include "Treehopper.h" ================================================ FILE: ports/treehopper/fix-dependences.patch ================================================ diff --git a/C++/API/CMakeLists.txt b/C++/API/CMakeLists.txt index 8537305..db3d29b 100644 --- a/C++/API/CMakeLists.txt +++ b/C++/API/CMakeLists.txt @@ -37,7 +37,10 @@ if(APPLE) find_library(IOKIT IOKit) target_link_libraries(treehopper pthread ${CORE_FOUNDATION} ${IOKIT}) elseif(UNIX) - target_link_libraries(treehopper usb-1.0 pthread) + find_package(PkgConfig REQUIRED) + pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) + find_package(Threads REQUIRED) + target_link_libraries(treehopper PRIVATE PkgConfig::libusb ${CMAKE_THREAD_LIBS_INIT}) elseif(WIN32) target_link_libraries(treehopper winusb setupapi) endif(APPLE) diff --git a/C++/API/inc/ConnectionService.h b/C++/API/inc/ConnectionService.h index 66d338e..12a0192 100644 --- a/C++/API/inc/ConnectionService.h +++ b/C++/API/inc/ConnectionService.h @@ -8,7 +8,7 @@ #include #endif #ifdef __linux__ -#include "libusb-1.0/libusb.h" +#include "libusb.h" #endif #include diff --git a/C++/API/inc/LibUsbConnection.h b/C++/API/inc/LibUsbConnection.h index b6d5198..e9cd29e 100644 --- a/C++/API/inc/LibUsbConnection.h +++ b/C++/API/inc/LibUsbConnection.h @@ -6,7 +6,7 @@ #include "Treehopper.h" -#include +#include #include "UsbConnection.h" namespace Treehopper { ================================================ FILE: ports/treehopper/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO treehopper-electronics/treehopper-sdk REF "${VERSION}" SHA512 65b748375b798787c8b59f9657151f340920c939c3f079105b9b78f4e3b775125598106c6dfa4feba111a64d30f007003a70110ac767802a7dd1127a25c9fb14 HEAD_REF master PATCHES fix-dependences.patch add-cstdint.diff ) if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID) vcpkg_find_acquire_program(PKGCONFIG) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/C++/API/" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" -DTHREADS_PREFER_PTHREAD_FLAG=ON MAYBE_UNUSED_VARIABLES PKG_CONFIG_EXECUTABLE THREADS_PREFER_PTHREAD_FLAG ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/C++/API/inc/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/Treehopper/") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/treehopper/vcpkg.json ================================================ { "name": "treehopper", "version": "1.11.3", "port-version": 11, "description": "Treehopper connects the physical world to your computer, tablet, or smartphone.", "homepage": "https://treehopper.io", "supports": "!uwp & !(static & staticcrt)", "dependencies": [ { "name": "libusb", "platform": "android | linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/triangle/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5...3.30) project(triangle) option(BUILD_TOOL "Build the command line tool" OFF) include(GNUInstallDirs) add_library(triangle triangle.c exports.def) set_target_properties(triangle PROPERTIES PUBLIC_HEADER "${CMAKE_SOURCE_DIR}/triangle.h") target_compile_definitions(triangle PRIVATE -DTRILIBRARY) add_executable(triangle_exe triangle.c) set_target_properties(triangle_exe PROPERTIES OUTPUT_NAME "triangle") foreach(target IN ITEMS triangle triangle_exe) target_compile_definitions(${target} PRIVATE -DANSI_DECLARATORS) target_include_directories(${target} PUBLIC "$" "$" ) if(WIN32) target_compile_definitions(${target} PRIVATE -DNO_TIMER) endif() if(UNIX AND NOT APPLE AND NOT ANDROID) target_link_libraries(${target} PRIVATE m) endif() endforeach() install(TARGETS triangle EXPORT triangle-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(EXPORT triangle-targets FILE unofficial-triangle-config.cmake NAMESPACE unofficial::triangle:: DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-triangle" ) if(BUILD_TOOL) install(TARGETS triangle_exe DESTINATION tools/triangle) else() set_target_properties(triangle_exe PROPERTIES EXCLUDE_FROM_ALL 1) endif() ================================================ FILE: ports/triangle/enable_64bit_architecture.patch ================================================ triangle.c | 116 ++++++++++++++++++++++++++----------------------------------- triangle.h | 29 +++++++++------- 2 files changed, 66 insertions(+), 79 deletions(-) diff --git a/triangle.c b/triangle.c index f7a5700..084902e 100644 --- a/triangle.c +++ b/triangle.c @@ -194,27 +194,8 @@ /* */ /*****************************************************************************/ -/* For single precision (which will save some memory and reduce paging), */ -/* define the symbol SINGLE by using the -DSINGLE compiler switch or by */ -/* writing "#define SINGLE" below. */ -/* */ -/* For double precision (which will allow you to refine meshes to a smaller */ -/* edge length), leave SINGLE undefined. */ -/* */ -/* Double precision uses more memory, but improves the resolution of the */ -/* meshes you can generate with Triangle. It also reduces the likelihood */ -/* of a floating exception due to overflow. Finally, it is much faster */ -/* than single precision on 64-bit architectures like the DEC Alpha. I */ -/* recommend double precision unless you want to generate a mesh for which */ -/* you do not have enough memory. */ - -/* #define SINGLE */ - -#ifdef SINGLE -#define REAL float -#else /* not SINGLE */ #define REAL double -#endif /* not SINGLE */ +#define VOID void /* If yours is not a Unix system, define the NO_TIMER compiler switch to */ /* remove the Unix-specific timing code. */ @@ -308,12 +289,6 @@ #define DEADVERTEX -32768 #define UNDEADVERTEX -32767 -/* The next line is used to outsmart some very stupid compilers. If your */ -/* compiler is smarter, feel free to replace the "int" with "void". */ -/* Not that it matters. */ - -#define VOID int - /* Two constants for algorithms based on random sampling. Both constants */ /* have been chosen empirically to optimize their respective algorithms. */ @@ -340,6 +315,7 @@ #define ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333 +#include #include #include #include @@ -938,16 +914,16 @@ int minus1mod3[3] = {2, 0, 1}; /* extracted from the two least significant bits of the pointer. */ #define decode(ptr, otri) \ - (otri).orient = (int) ((unsigned long) (ptr) & (unsigned long) 3l); \ + (otri).orient = (int) ((uintptr_t) (ptr) & (uintptr_t) 3l); \ (otri).tri = (triangle *) \ - ((unsigned long) (ptr) ^ (unsigned long) (otri).orient) + ((uintptr_t) (ptr) ^ (uintptr_t) (otri).orient) /* encode() compresses an oriented triangle into a single pointer. It */ /* relies on the assumption that all triangles are aligned to four-byte */ /* boundaries, so the two least significant bits of (otri).tri are zero. */ #define encode(otri) \ - (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient) + (triangle) ((uintptr_t) (otri).tri | (uintptr_t) (otri).orient) /* The following handle manipulation primitives are all described by Guibas */ /* and Stolfi. However, Guibas and Stolfi use an edge-based data */ @@ -1111,16 +1087,16 @@ int minus1mod3[3] = {2, 0, 1}; #define infect(otri) \ (otri).tri[6] = (triangle) \ - ((unsigned long) (otri).tri[6] | (unsigned long) 2l) + ((uintptr_t) (otri).tri[6] | (uintptr_t) 2l) #define uninfect(otri) \ (otri).tri[6] = (triangle) \ - ((unsigned long) (otri).tri[6] & ~ (unsigned long) 2l) + ((uintptr_t) (otri).tri[6] & ~ (uintptr_t) 2l) /* Test a triangle for viral infection. */ #define infected(otri) \ - (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l) + (((uintptr_t) (otri).tri[6] & (uintptr_t) 2l) != 0l) /* Check or set a triangle's attributes. */ @@ -1158,16 +1134,16 @@ int minus1mod3[3] = {2, 0, 1}; /* are masked out to produce the real pointer. */ #define sdecode(sptr, osub) \ - (osub).ssorient = (int) ((unsigned long) (sptr) & (unsigned long) 1l); \ + (osub).ssorient = (int) ((uintptr_t) (sptr) & (uintptr_t) 1l); \ (osub).ss = (subseg *) \ - ((unsigned long) (sptr) & ~ (unsigned long) 3l) + ((uintptr_t) (sptr) & ~ (uintptr_t) 3l) /* sencode() compresses an oriented subsegment into a single pointer. It */ /* relies on the assumption that all subsegments are aligned to two-byte */ /* boundaries, so the least significant bit of (osub).ss is zero. */ #define sencode(osub) \ - (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient) + (subseg) ((uintptr_t) (osub).ss | (uintptr_t) (osub).ssorient) /* ssym() toggles the orientation of a subsegment. */ @@ -3891,7 +3867,7 @@ struct memorypool *pool; #endif /* not ANSI_DECLARATORS */ { - unsigned long alignptr; + uintptr_t alignptr = 0; pool->items = 0; pool->maxitems = 0; @@ -3899,11 +3875,11 @@ struct memorypool *pool; /* Set the currently active block. */ pool->nowblock = pool->firstblock; /* Find the first item in the pool. Increment by the size of (VOID *). */ - alignptr = (unsigned long) (pool->nowblock + 1); + alignptr = (uintptr_t) (pool->nowblock + 1); /* Align the item on an `alignbytes'-byte boundary. */ pool->nextitem = (VOID *) - (alignptr + (unsigned long) pool->alignbytes - - (alignptr % (unsigned long) pool->alignbytes)); + (alignptr + (uintptr_t) pool->alignbytes - + (alignptr % (uintptr_t) pool->alignbytes)); /* There are lots of unallocated items left in this block. */ pool->unallocateditems = pool->itemsfirstblock; /* The stack of deallocated items is empty. */ @@ -4008,7 +3984,7 @@ struct memorypool *pool; { VOID *newitem; VOID **newblock; - unsigned long alignptr; + uintptr_t alignptr = 0; /* First check the linked list of dead items. If the list is not */ /* empty, allocate an item from the list rather than a fresh one. */ @@ -4033,11 +4009,11 @@ struct memorypool *pool; pool->nowblock = (VOID **) *(pool->nowblock); /* Find the first item in the block. */ /* Increment by the size of (VOID *). */ - alignptr = (unsigned long) (pool->nowblock + 1); + alignptr = (uintptr_t) (pool->nowblock + 1); /* Align the item on an `alignbytes'-byte boundary. */ pool->nextitem = (VOID *) - (alignptr + (unsigned long) pool->alignbytes - - (alignptr % (unsigned long) pool->alignbytes)); + (alignptr + (uintptr_t) pool->alignbytes - + (alignptr % (uintptr_t) pool->alignbytes)); /* There are lots of unallocated items left in this block. */ pool->unallocateditems = pool->itemsperblock; } @@ -4092,16 +4068,16 @@ struct memorypool *pool; #endif /* not ANSI_DECLARATORS */ { - unsigned long alignptr; + uintptr_t alignptr = 0; /* Begin the traversal in the first block. */ pool->pathblock = pool->firstblock; /* Find the first item in the block. Increment by the size of (VOID *). */ - alignptr = (unsigned long) (pool->pathblock + 1); + alignptr = (uintptr_t) (pool->pathblock + 1); /* Align with item on an `alignbytes'-byte boundary. */ pool->pathitem = (VOID *) - (alignptr + (unsigned long) pool->alignbytes - - (alignptr % (unsigned long) pool->alignbytes)); + (alignptr + (uintptr_t) pool->alignbytes - + (alignptr % (uintptr_t) pool->alignbytes)); /* Set the number of items left in the current block. */ pool->pathitemsleft = pool->itemsfirstblock; } @@ -4129,7 +4105,7 @@ struct memorypool *pool; { VOID *newitem; - unsigned long alignptr; + uintptr_t alignptr = 0; /* Stop upon exhausting the list of items. */ if (pool->pathitem == pool->nextitem) { @@ -4141,11 +4117,11 @@ struct memorypool *pool; /* Find the next block. */ pool->pathblock = (VOID **) *(pool->pathblock); /* Find the first item in the block. Increment by the size of (VOID *). */ - alignptr = (unsigned long) (pool->pathblock + 1); + alignptr = (uintptr_t) (pool->pathblock + 1); /* Align with item on an `alignbytes'-byte boundary. */ pool->pathitem = (VOID *) - (alignptr + (unsigned long) pool->alignbytes - - (alignptr % (unsigned long) pool->alignbytes)); + (alignptr + (uintptr_t) pool->alignbytes - + (alignptr % (uintptr_t) pool->alignbytes)); /* Set the number of items left in the current block. */ pool->pathitemsleft = pool->itemsperblock; } @@ -4197,16 +4173,16 @@ int subsegbytes; #endif /* not ANSI_DECLARATORS */ { - unsigned long alignptr; + uintptr_t alignptr = 0; /* Set up `dummytri', the `triangle' that occupies "outer space." */ m->dummytribase = (triangle *) trimalloc(trianglebytes + m->triangles.alignbytes); /* Align `dummytri' on a `triangles.alignbytes'-byte boundary. */ - alignptr = (unsigned long) m->dummytribase; + alignptr = (uintptr_t) m->dummytribase; m->dummytri = (triangle *) - (alignptr + (unsigned long) m->triangles.alignbytes - - (alignptr % (unsigned long) m->triangles.alignbytes)); + (alignptr + (uintptr_t) m->triangles.alignbytes - + (alignptr % (uintptr_t) m->triangles.alignbytes)); /* Initialize the three adjoining triangles to be "outer space." These */ /* will eventually be changed by various bonding operations, but their */ /* values don't really matter, as long as they can legally be */ @@ -4226,10 +4202,10 @@ int subsegbytes; m->dummysubbase = (subseg *) trimalloc(subsegbytes + m->subsegs.alignbytes); /* Align `dummysub' on a `subsegs.alignbytes'-byte boundary. */ - alignptr = (unsigned long) m->dummysubbase; + alignptr = (uintptr_t) m->dummysubbase; m->dummysub = (subseg *) - (alignptr + (unsigned long) m->subsegs.alignbytes - - (alignptr % (unsigned long) m->subsegs.alignbytes)); + (alignptr + (uintptr_t) m->subsegs.alignbytes - + (alignptr % (uintptr_t) m->subsegs.alignbytes)); /* Initialize the two adjoining subsegments to be the omnipresent */ /* subsegment. These will eventually be changed by various bonding */ /* operations, but their values don't really matter, as long as they */ @@ -4586,7 +4562,7 @@ int number; { VOID **getblock; char *foundvertex; - unsigned long alignptr; + uintptr_t alignptr = 0; int current; getblock = m->vertices.firstblock; @@ -4603,9 +4579,9 @@ int number; } /* Now find the right vertex. */ - alignptr = (unsigned long) (getblock + 1); - foundvertex = (char *) (alignptr + (unsigned long) m->vertices.alignbytes - - (alignptr % (unsigned long) m->vertices.alignbytes)); + alignptr = (uintptr_t) (getblock + 1); + foundvertex = (char *) (alignptr + (uintptr_t) m->vertices.alignbytes - + (alignptr % (uintptr_t) m->vertices.alignbytes)); return (vertex) (foundvertex + m->vertices.itembytes * (number - current)); } @@ -4883,6 +4859,7 @@ struct osub *newsubseg; /* */ /*****************************************************************************/ +static void exactinit() { REAL half; @@ -4956,6 +4933,7 @@ void exactinit() /* */ /*****************************************************************************/ +static #ifdef ANSI_DECLARATORS int fast_expansion_sum_zeroelim(int elen, REAL *e, int flen, REAL *f, REAL *h) #else /* not ANSI_DECLARATORS */ @@ -5050,6 +5028,7 @@ REAL *h; /* */ /*****************************************************************************/ +static #ifdef ANSI_DECLARATORS int scale_expansion_zeroelim(int elen, REAL *e, REAL b, REAL *h) #else /* not ANSI_DECLARATORS */ @@ -5106,6 +5085,7 @@ REAL *h; /* */ /*****************************************************************************/ +static #ifdef ANSI_DECLARATORS REAL estimate(int elen, REAL *e) #else /* not ANSI_DECLARATORS */ @@ -5303,6 +5283,7 @@ vertex pc; /* */ /*****************************************************************************/ +static #ifdef ANSI_DECLARATORS REAL incircleadapt(vertex pa, vertex pb, vertex pc, vertex pd, REAL permanent) #else /* not ANSI_DECLARATORS */ @@ -5882,6 +5863,7 @@ REAL permanent; return finnow[finlength - 1]; } +static #ifdef ANSI_DECLARATORS REAL incircle(struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd) @@ -5964,6 +5946,7 @@ vertex pd; /* */ /*****************************************************************************/ +static #ifdef ANSI_DECLARATORS REAL orient3dadapt(vertex pa, vertex pb, vertex pc, vertex pd, REAL aheight, REAL bheight, REAL cheight, REAL dheight, @@ -6389,6 +6372,7 @@ REAL permanent; return finnow[finlength - 1]; } +static #ifdef ANSI_DECLARATORS REAL orient3d(struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd, @@ -7649,7 +7633,7 @@ struct otri *searchtri; char *firsttri; struct otri sampletri; vertex torg, tdest; - unsigned long alignptr; + uintptr_t alignptr = 0; REAL searchdist, dist; REAL ahead; long samplesperblock, totalsamplesleft, samplesleft; @@ -7721,11 +7705,11 @@ struct otri *searchtri; population = totalpopulation; } /* Find a pointer to the first triangle in the block. */ - alignptr = (unsigned long) (sampleblock + 1); + alignptr = (uintptr_t) (sampleblock + 1); firsttri = (char *) (alignptr + - (unsigned long) m->triangles.alignbytes - + (uintptr_t) m->triangles.alignbytes - (alignptr % - (unsigned long) m->triangles.alignbytes)); + (uintptr_t) m->triangles.alignbytes)); /* Choose `samplesleft' randomly sampled triangles in this block. */ do { diff --git a/triangle.h b/triangle.h index 9df1f39..8d9c754 100644 --- a/triangle.h +++ b/triangle.h @@ -248,16 +248,20 @@ /* */ /*****************************************************************************/ +#ifdef __cplusplus +extern "C" { +#endif + struct triangulateio { - REAL *pointlist; /* In / out */ - REAL *pointattributelist; /* In / out */ + double *pointlist; /* In / out */ + double *pointattributelist; /* In / out */ int *pointmarkerlist; /* In / out */ int numberofpoints; /* In / out */ int numberofpointattributes; /* In / out */ int *trianglelist; /* In / out */ - REAL *triangleattributelist; /* In / out */ - REAL *trianglearealist; /* In only */ + double *triangleattributelist; /* In / out */ + double *trianglearealist; /* In only */ int *neighborlist; /* Out only */ int numberoftriangles; /* In / out */ int numberofcorners; /* In / out */ @@ -267,23 +271,22 @@ struct triangulateio { int *segmentmarkerlist; /* In / out */ int numberofsegments; /* In / out */ - REAL *holelist; /* In / pointer to array copied out */ + double *holelist; /* In / pointer to array copied out */ int numberofholes; /* In / copied out */ - REAL *regionlist; /* In / pointer to array copied out */ + double *regionlist; /* In / pointer to array copied out */ int numberofregions; /* In / copied out */ int *edgelist; /* Out only */ int *edgemarkerlist; /* Not used with Voronoi diagram; out only */ - REAL *normlist; /* Used only with Voronoi diagram; out only */ + double *normlist; /* Used only with Voronoi diagram; out only */ int numberofedges; /* Out only */ }; -#ifdef ANSI_DECLARATORS void triangulate(char *, struct triangulateio *, struct triangulateio *, struct triangulateio *); -void trifree(VOID *memptr); -#else /* not ANSI_DECLARATORS */ -void triangulate(); -void trifree(); -#endif /* not ANSI_DECLARATORS */ +void trifree(void *memptr); + +#ifdef __cplusplus +} +#endif \ No newline at end of file ================================================ FILE: ports/triangle/exports.def ================================================ EXPORTS triangulate trifree ================================================ FILE: ports/triangle/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE_FILE URLS "http://www.netlib.org/voronoi/triangle.zip" FILENAME "triangle.zip" SHA512 c9c1ac527c4bf836ed877b1c5495abf9fd2c453741f4c9698777e23cde939ebf0dd73c84cec64f35a93ca01bff4b86ce32ec559da33e570a0744a764e46d2186 ) vcpkg_extract_source_archive( SOURCE_PATH NO_REMOVE_ONE_LEVEL ARCHIVE "${ARCHIVE_FILE}" PATCHES "enable_64bit_architecture.patch" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/exports.def" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES tool BUILD_TOOL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} OPTIONS_DEBUG -DBUILD_TOOL=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-triangle) # migration polyfill file(COPY "${CURRENT_PORT_DIR}/triangleConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/triangle") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/triangle") file(INSTALL "${SOURCE_PATH}/README" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/triangle/triangleConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(${CMAKE_FIND_PACKAGE_NAME}) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-triangle) add_library(triangleLib ALIAS unofficial::triangle::triangle) ================================================ FILE: ports/triangle/usage ================================================ triangle provides CMake targets: find_package(unofficial-triangle CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::triangle::triangle) ================================================ FILE: ports/triangle/vcpkg.json ================================================ { "name": "triangle", "version": "1.6", "port-version": 4, "description": "A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator.", "homepage": "http://www.cs.cmu.edu/~quake/triangle.html", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Build the command line tool." } } } ================================================ FILE: ports/trianglemeshdistance/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO InteractiveComputerGraphics/TriangleMeshDistance REF v${VERSION} SHA512 5ef10d9b6376c1d399481e7cda645091823a463e92d4fb5c53a537ea3dec9dcd97459584d1c960081f80f00ff18c000733f4da79e1ea77dd66e63a17a1c08bbb PATCHES remove-tests.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/trianglemeshdistance/remove-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,8 @@ cmake_minimum_required(VERSION 3.1) project(TriangleMeshDistance) set(CMAKE_CXX_STANDARD 11) -add_subdirectory(tests) if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) SET(CMAKE_INSTALL_INCLUDEDIR include CACHE PATH "Output directory for header files") ================================================ FILE: ports/trianglemeshdistance/vcpkg.json ================================================ { "name": "trianglemeshdistance", "version": "1.1.0", "description": "Header only library to compute the signed distance function (SDF) to a triangle mesh.", "homepage": "https://github.com/InteractiveComputerGraphics/TriangleMeshDistance", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/triton/fix_bin_path.patch ================================================ diff --git a/src/libtriton/CMakeLists.txt b/src/libtriton/CMakeLists.txt index 3c3ef6b..1adb110 100644 --- a/src/libtriton/CMakeLists.txt +++ b/src/libtriton/CMakeLists.txt @@ -318,7 +318,7 @@ install( EXPORT tritonTargets PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/triton" INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) ================================================ FILE: ports/triton/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JonathanSalwan/Triton REF e312eafcdf507d9aebd0f8a7daf2eb4c28a19d30 SHA512 eb184859fe3023f188f7828335924da36c45dea90dc1ece7d8cf770dc7951022d4e51647cdd520e9bc91a8e01cab4a8801808e469900bdbbc3806624c132ad8d HEAD_REF master PATCHES fix_bin_path.patch ) string(COMPARE NOTEQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" DYNAMICLIB) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" STATICCRT) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "python" PYTHON_BINDINGS "boost" BOOST_INTERFACE ) set(ADDITIONAL_OPTIONS "") if(PYTHON_BINDINGS) vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND ADDITIONAL_OPTIONS "-DPYTHON_EXECUTABLE=${PYTHON3}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DZ3_INTERFACE=ON -DBUILD_SHARED_LIBS=${DYNAMICLIB} -DMSVC_STATIC=${STATICCRT} -DBUILD_EXAMPLES=OFF -DENABLE_TEST=OFF ${ADDITIONAL_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() # Move cmake configs vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # Remove duplicate files file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/triton/vcpkg.json ================================================ { "name": "triton", "version-date": "2025-02-15", "description": "Triton is a Dynamic Binary Analysis (DBA) framework. It provides internal components like a Dynamic Symbolic Execution (DSE) engine, a dynamic taint engine, AST representations of the x86, x86-64, ARM32 and AArch64 Instructions Set Architecture (ISA), SMT simplification passes, an SMT solver interface and, the last but not least, Python bindings.", "homepage": "https://github.com/JonathanSalwan/Triton", "license": "Apache-2.0", "supports": "!arm", "dependencies": [ { "name": "capstone", "default-features": false, "features": [ "arm", "arm64", "x86" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "z3" ], "features": { "boost": { "description": "Use Boost as multiprecision library", "dependencies": [ "boost-multiprecision", "boost-numeric-conversion" ] }, "python": { "description": "Build Triton with Python bindings", "dependencies": [ { "name": "python3", "default-features": false } ] } } } ================================================ FILE: ports/trompeloeil/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rollbear/trompeloeil REF "v${VERSION}" SHA512 f1a7212eacfb79f73cea075a147066b4cb10da76a6826e4594c29412395ae69647bb852d12936dd3f9b5c5a7f0aad3ebae246fdfb4006072c39b1efcd51876f5 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/trompeloeil) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") ================================================ FILE: ports/trompeloeil/vcpkg.json ================================================ { "name": "trompeloeil", "version": "49", "description": "A thread-safe header-only mocking framework for C++11/14 using the Boost Software License 1.0", "homepage": "https://github.com/rollbear/trompeloeil", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/try-catcher/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO daleabarnard/try-catcher REF 1.0.1 SHA512 560edd0841c9a85bbef61fb4ad4e76314f04b566586d2990a0c582a67259803350a217ad3dacc1401917d23a2c929b1529e0a1e717f707480b6240e953ed8155 HEAD_REF main ) # This is a header-only modern C++ package. file(INSTALL "${SOURCE_PATH}/TryCatcher.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/try-catcher/usage ================================================ # This package is a single header. Add this to your CMakeLists.txt after declaring the project. find_path(TRY_CATCHER_INCLUDE_DIRS "TryCatcher.h") target_include_directories(${PROJECT_NAME} PRIVATE ${TRY_CATCHER_INCLUDE_DIRS}) ================================================ FILE: ports/try-catcher/vcpkg.json ================================================ { "name": "try-catcher", "version": "1.0.1", "description": "C++ header uses RAII to try each step of a sequence of operations, catch all exceptions that may occur, and throw a single, composite message when TryCatcher goes out of scope.", "homepage": "https://github.com/daleabarnard/try-catcher", "license": "MIT" } ================================================ FILE: ports/tsl-array-hash/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/array-hash REF v${VERSION} SHA512 7aee866aed1c21b838124fda6b11365fdbc04ec8fe7969fbb52c6a30fb81fa945130f85c596a06a9bd8b3235bb6f73444013c719de4fba2d7abc3be4549aa501 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tsl-array-hash/vcpkg.json ================================================ { "name": "tsl-array-hash", "version": "0.7.2", "description": "C++ implementation of a memory efficient hash map and hash set", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tsl-hat-trie/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/hat-trie REF "v${VERSION}" SHA512 0775b95d10535e1596f6dc79feadecdd98d63e99d4ca492bc64fa8c5bcfe6bdb864b52ee55cba26cdad00e64c2ee857f70663d3e4ed03c33af8055fc17e8c38e HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/tsl" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tsl-hat-trie/vcpkg.json ================================================ { "name": "tsl-hat-trie", "version": "0.7.1", "description": "C++ implementation of a fast and memory efficient HAT-trie", "homepage": "https://github.com/Tessil/hat-trie", "license": "MIT" } ================================================ FILE: ports/tsl-hopscotch-map/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/hopscotch-map REF "v${VERSION}" SHA512 22a2ea5089ef6ef7afb872f6785a1f1d063660a7cb22ccfd4ccbecf95fd0a71ffc72fbb814ac51be8ed7445e75d0d8b79e619d08d7ddf063968fe6e7bf995932 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/tsl-hopscotch-map/vcpkg.json ================================================ { "name": "tsl-hopscotch-map", "version": "2.4.0", "description": "C++ implementation of a fast hash map and hash set using hopscotch hashing", "homepage": "https://github.com/Tessil/hopscotch-map", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tsl-ordered-map/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/ordered-map REF "v${VERSION}" SHA512 19076fd40e0a4baad58a5cc6f9c906f38167e6c5474e461e982d0e0ea2adeb21fa8acf669145ac033338bf53cc3dc178782d54a9bcf7f835a62b07983da00253 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/tsl-ordered-map/vcpkg.json ================================================ { "name": "tsl-ordered-map", "version": "1.2.0", "description": "C++ hash map and hash set which preserve the order of insertion", "homepage": "https://github.com/Tessil/ordered-map", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tsl-sparse-map/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Tessil/sparse-map REF v${VERSION} SHA512 dee8090d8e8d797e0a535d331e49ef48838b038af8fecbc982852ec559aaffd65e12c9efc5ebb6d74bf5f46e7f9df2c1680998909ef7a9062b0954cfabd02706 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "share/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/tsl-sparse-map/vcpkg.json ================================================ { "name": "tsl-sparse-map", "version": "0.7.0", "description": "C++ implementation of a memory efficient hash map and hash set", "homepage": "https://github.com/Tessil/sparse-map", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tuplet/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO codeinred/tuplet REF "v${VERSION}" SHA512 afab0ad34e9e15909c43112b77014821607ec8d429c395b882eea74873432204fca2b5a2c2e04f84cf6193e19bc0a9dcb7702d1e97668a32ec1541e02b6e798a HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DCMAKE_INSTALL_INCLUDEDIR=include ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME tuplet CONFIG_PATH share/tuplet/cmake) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/tuplet/vcpkg.json ================================================ { "name": "tuplet", "version": "2.1.1", "description": "A Lightweight Tuple Library for Modern C++", "homepage": "https://github.com/codeinred/tuplet", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/turbobase64/fix-apple-silicon-arm64-detection.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b898742..f6274c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ option(BUILD_APP "Build executables" OFF) message(STATUS "Configuring with CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}") if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") set(ARCH_AMD64 ON) -elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") +elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm64") set(ARCH_AARCH64 ON) elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64le") set(ARCH_PPC64LE ON) ================================================ FILE: ports/turbobase64/fix-library-conflict.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 962f580..b898742 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,6 +83,12 @@ else() add_library(base64 STATIC) endif() +set_target_properties(base64 PROPERTIES + OUTPUT_NAME "${PROJECT_NAME}" + ARCHIVE_OUTPUT_NAME "${PROJECT_NAME}" + RUNTIME_OUTPUT_NAME "${PROJECT_NAME}" +) + foreach(_obj ${_b64_objs}) set_target_properties(${_obj} PROPERTIES POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS}) target_sources(base64 PRIVATE $) ================================================ FILE: ports/turbobase64/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([0-9])$" "\\1.0\\2" TURBO_VERSION "${VERSION}") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO powturbo/Turbo-Base64 REF ${TURBO_VERSION} SHA512 de8aaace0faf6552cf692f131a4d03882b88252732bb4160c48e5cc630a0c2f637fa27309e084d02305cdf7ef28020e6c9fbb82b50c1916e46aabc95baea75ad HEAD_REF master PATCHES fix-library-conflict.diff fix-apple-silicon-arm64-detection.diff # https://github.com/powturbo/Turbo-Base64/pull/29 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/turbobase64/vcpkg.json ================================================ { "name": "turbobase64", "version": "2023.8", "port-version": 2, "description": "Fastest Base64 SIMD/Neon library", "homepage": "https://github.com/powturbo/Turbo-Base64", "license": "GPL-3.0-only", "supports": "!android & !(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tvision/find-curses.diff ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d24f807..e3ad262 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -88,6 +88,7 @@ endif() # Dependencies if (NOT WIN32) +#[[ # ncursesw find_library(NCURSESW ncursesw) if (NOT NCURSESW AND APPLE) @@ -125,6 +126,14 @@ if (NOT WIN32) tv_message(STATUS "Found 'tinfow': ${TINFOW}") target_link_libraries(${PROJECT_NAME} PUBLIC ${TINFOW}) endif() +]] + set(CURSES_NEED_NCURSES 1) + set(CURSES_NEED_WIDE 1) + find_package(Curses REQUIRED) + target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_NCURSES) + find_path(NCURSESW_INCLUDE NAMES "ncurses.h" PATHS ${CURSES_INCLUDE_DIRS} PATH_SUFFIXES "ncursesw") + target_include_directories(${PROJECT_NAME} PRIVATE ${NCURSESW_INCLUDE}) + target_link_libraries(${PROJECT_NAME} PUBLIC ${CURSES_LIBRARIES}) # gpm if (TV_BUILD_USING_GPM) ================================================ FILE: ports/tvision/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO magiblot/tvision REF 966226d643cd638fb516b621ac90a31f3ec8d1f6 HEAD_REF master SHA512 b18a466cad2edebff62f6db6d5ab6b6b4d000fbc0fcc682f169efd9c0cc7efe5f0535ffa019f9dcb3d6e7931f77c476ec5d11aa7b39ed7ce0417ceec270f2d36 PATCHES find-curses.diff ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DTV_BUILD_EXAMPLES=OFF -DTV_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/tvision/vcpkg.json ================================================ { "name": "tvision", "version-date": "2024-05-22", "port-version": 1, "description": "A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces.", "homepage": "https://github.com/magiblot/tvision", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "ncurses", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/tweeny/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mobius3/tweeny REF v${VERSION} SHA512 f752db8ff5fdff696eb6449adc98af875753e22a9235c059f052dd43aa245e2c510b6c3d25dc52cd350d5f0712f8565364e07790998e4aebf0eb2658f7754bc3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "/lib/cmake/Tweeny/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake/Tweeny") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/tweeny/vcpkg.json ================================================ { "name": "tweeny", "version": "3.2.1", "description": "A modern C++ tweening library", "homepage": "https://github.com/mobius3/tweeny", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/type-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/type-lite REF "v${VERSION}" SHA512 f193f6c2afd89151b59d393e22da2c0d7c271c759f4e8a71f9f31eae1b547c5ce9d803b3d1688aa7ecb18bd37c18867f28d5686c6d48b4cd18e29ef16cfd96c6 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test TYPE_LITE_OPT_BUILD_TESTS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DTYPE_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/type-lite/vcpkg.json ================================================ { "name": "type-lite", "version": "0.2.0", "description": "Strong types for C++98, C++11 and later in a single-file header-only library.", "homepage": "https://github.com/martinmoene/type-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build with test" } } } ================================================ FILE: ports/type-safe/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO foonathan/type_safe REF "v${VERSION}" SHA512 90e256af61649706c97d2cf317ce34b2b953fc841b04eab8193a865d3eced9a1044d22ecb520688f3adf35a06c346945604f177a933e7709cc167bb1637ccb4e HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTYPE_SAFE_BUILD_TEST_EXAMPLE=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME type_safe CONFIG_PATH lib/cmake/type_safe) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/type-safe/vcpkg.json ================================================ { "name": "type-safe", "version": "0.2.4", "description": "Zero overhead abstractions that use the C++ type system to prevent bugs.", "homepage": "https://github.com/foonathan/type_safe", "dependencies": [ "debug-assert", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/typecast-ai/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO neosapience/typecast-sdk REF "v${VERSION}" SHA512 327c92a7d3f557b1dbad55f0016d263079802afb6d30cdafc7b781e72fedbf93cb7bc3c1d7b13d319480060cd565628387df243939334fb450940b835bce369b HEAD_REF main ) # The C SDK is in the typecast-c subdirectory set(SOURCE_PATH "${SOURCE_PATH}/typecast-c") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DTYPECAST_BUILD_SHARED=${BUILD_SHARED} -DTYPECAST_BUILD_STATIC=${BUILD_STATIC} -DTYPECAST_BUILD_EXAMPLES=OFF -DTYPECAST_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/typecast) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/typecast-ai/vcpkg.json ================================================ { "name": "typecast-ai", "version": "1.0.1", "description": "Text-to-Speech API client library for Typecast AI. Pure C with optional C++ wrapper.", "homepage": "https://github.com/neosapience/typecast-sdk", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/uchardet/fix-config-error.patch ================================================ diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index 7afad1d..c7a3cd8 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -27,10 +27,7 @@ if (GETOPT_INCLUDE_DIR AND GETOPT_LIBRARY) target_link_libraries(${UCHARDET_BINARY} PRIVATE ${GETOPT_LIBRARY}) endif (GETOPT_INCLUDE_DIR AND GETOPT_LIBRARY) -target_link_libraries( - ${UCHARDET_BINARY} - ${UCHARDET_LIBRARY} -) +target_link_libraries(${UCHARDET_BINARY} PRIVATE ${UCHARDET_LIBRARY}) install( TARGETS ================================================ FILE: ports/uchardet/fix-uwp-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 50a11e8..3a93c83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,10 @@ if (TARGET_ARCHITECTURE MATCHES ".*(x86|amd|i686).*") endif (CHECK_SSE2 AND SUPPORTS_CFLAG_SSE2 AND SUPPORTS_CFLAG_SSE_MATH) endif (TARGET_ARCHITECTURE MATCHES ".*(x86|amd|i686).*") +if (MSVC) + add_compile_options(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE) +endif (MSVC) + configure_file( uchardet.pc.in uchardet.pc ================================================ FILE: ports/uchardet/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO uchardet/uchardet REF "v${VERSION}" SHA512 8d7a0abe1fcf7e92f9e264252eefa5810176603e3d3d825a23c3f5d23cd4f7cce9a0a9539e84bd70af5b66688394e48af00a00ce759a5a3d69b650f92351b6f2 HEAD_REF master PATCHES fix-uwp-build.patch fix-config-error.patch ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tool BUILD_BINARY ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS_DEBUG -DBUILD_BINARY=OFF OPTIONS_RELEASE ${FEATURE_OPTIONS} OPTIONS -DBUILD_STATIC=${BUILD_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/uchardet) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(tool IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES uchardet AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/man" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/uchardet/vcpkg.json ================================================ { "name": "uchardet", "version": "0.0.8", "description": "An encoding detector library ported from Mozilla.", "homepage": "https://cgit.freedesktop.org/uchardet/uchardet/", "license": "GPL-2.0 AND MPL-1.1", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Build uchardet CLI tool.", "dependencies": [ "getopt" ] } } } ================================================ FILE: ports/ucoro/cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 663044e..9121cb3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,8 +15,31 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") add_compile_options(-foptimize-sibling-calls) endif() +include(GNUInstallDirs) + add_library(ucoro INTERFACE) -target_include_directories(ucoro INTERFACE include) +target_include_directories(ucoro INTERFACE $ + $) + +option(UCORO_BUILD_TESTING "Build the tests" ON) +if (UCORO_BUILD_TESTING) + enable_testing() + add_subdirectory(tests) +endif() -enable_testing() -add_subdirectory(tests) +install( + TARGETS ucoro + EXPORT ucoroTargets + INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" +) +install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ucoro + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) +# generate config.cmake +install( + EXPORT ucoroTargets + FILE ucoro-config.cmake + NAMESPACE ucoro:: + DESTINATION "share/ucoro" +) ================================================ FILE: ports/ucoro/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO avplayer/ucoro REF "v${VERSION}" SHA512 c3436b436ef1ebb3d47a65db9603842293bdb6451bc6fb738a63d61a63b52901e223f46625d956303566dc52dfb38ffb2c6ce20016c18b444f9cb3e2e701e613 HEAD_REF main PATCHES cmake-install.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUCORO_BUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/LICENSE_1_0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/ucoro/vcpkg.json ================================================ { "name": "ucoro", "version": "1.0", "description": "It is a minimized C++20 coroutine library.", "homepage": "https://github.com/avplayer/ucoro", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/udt/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) project(udt LANGUAGES CXX) include(GNUInstallDirs) file(GLOB UDT_HEADERS "src/*.h") file(GLOB UDT_SOURCES "src/*.cpp") add_library(udt ${UDT_HEADERS} ${UDT_SOURCES}) if(WIN32) target_compile_definitions(udt PRIVATE -DWIN32) if(MSVC) target_compile_definitions(udt PRIVATE -DUDT_EXPORTS) endif() target_link_libraries(udt PRIVATE ws2_32) elseif(UNIX AND NOT APPLE) target_compile_definitions(udt PRIVATE -DLINUX) elseif(APPLE) target_compile_definitions(udt PRIVATE -DOSX) endif() target_include_directories(udt PUBLIC "$" "$") install(TARGETS udt EXPORT unofficial-udt) install( EXPORT unofficial-udt FILE unofficial-udt-config.cmake DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-udt" NAMESPACE unofficial::udt:: ) install(FILES ${UDT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/udt") ================================================ FILE: ports/udt/fix_defs.patch ================================================ diff --git a/src/api.h b/src/api.h index 24f1a02..db7b729 100644 --- a/src/api.h +++ b/src/api.h @@ -216,3 +216,3 @@ private: pthread_key_t m_TLSError; // thread local error record (last error) - #ifndef WIN32 + #ifndef _WIN32 static void TLSDestroy(void* e) {if (NULL != e) delete (CUDTException*)e;} @@ -248,3 +248,3 @@ private: pthread_t m_GCThread; - #ifndef WIN32 + #ifndef _WIN32 static void* garbageCollect(void*); diff --git a/src/common.h b/src/common.h index 3782d61..205b090 100644 --- a/src/common.h +++ b/src/common.h @@ -44,3 +44,3 @@ written by -#ifndef WIN32 +#ifndef _WIN32 #include @@ -55,3 +55,3 @@ written by -#ifdef WIN32 +#ifdef _WIN32 // Windows compability diff --git a/src/packet.h b/src/packet.h index 76cc951..216505a 100644 --- a/src/packet.h +++ b/src/packet.h @@ -46,3 +46,3 @@ written by -#ifdef WIN32 +#ifdef _WIN32 struct iovec diff --git a/src/queue.h b/src/queue.h index 9feff18..1062a0c 100644 --- a/src/queue.h +++ b/src/queue.h @@ -399,3 +399,3 @@ public: private: -#ifndef WIN32 +#ifndef _WIN32 static void* worker(void* param); @@ -459,3 +459,3 @@ public: private: -#ifndef WIN32 +#ifndef _WIN32 static void* worker(void* param); diff --git a/src/udt.h b/src/udt.h index 6436363..8e00091 100644 --- a/src/udt.h +++ b/src/udt.h @@ -44,3 +44,3 @@ written by -#ifndef WIN32 +#ifndef _WIN32 #include @@ -70,3 +70,3 @@ written by -#ifdef WIN32 +#ifdef _WIN32 #ifndef __MINGW__ @@ -97,3 +97,3 @@ written by -#ifdef WIN32 +#ifdef _WIN32 #ifndef __MINGW__ diff --git a/src/window.h b/src/window.h index f118a26..565aeb6 100644 --- a/src/window.h +++ b/src/window.h @@ -44,3 +44,3 @@ written by -#ifndef WIN32 +#ifndef _WIN32 #include ================================================ FILE: ports/udt/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO udt/udt REF "${VERSION}" FILENAME "udt.sdk.${VERSION}.tar.gz" SHA512 fc555ce1ddde2a8bd92c8adf470fd69a9a35d0a679def32b6ddbb18d67dc8b7d9dd928d772dc8598f08b350130f1e90bb4be58c46252a0a79ecc99f61eca8a92 PATCHES fix_defs.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-udt) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/udt/usage ================================================ udt provides CMake targets: find_package(unofficial-udt CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::udt::udt) ================================================ FILE: ports/udt/vcpkg.json ================================================ { "name": "udt", "version": "4.11", "description": "UDT is a reliable UDP based application level data transport protocol for distributed data intensive applications over wide area high-speed networks.", "homepage": "https://udt.sourceforge.io/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/umock-c/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Azure/umock-c REF 504193e65d1c2f6eb50c15357167600a296df7ff SHA512 68d5d986314dbd46d20de2a9b9454154c11675c25d1b5a5b1cfecdd0c0945d9dc68d0348ec1dbb00b5d1a6a1f0356121ba561d7c8fffb97ab37864edade5a85b HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Drun_unittests=OFF -Drun_int_tests=OFF -Duse_installed_dependencies=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME umock_c CONFIG_PATH "cmake") file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) configure_file(${SOURCE_PATH}/readme.md ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/umock-c/vcpkg.json ================================================ { "name": "umock-c", "version-date": "2022-01-21", "port-version": 1, "description": "A pure C mocking library", "homepage": "https://github.com/Azure/umock-c", "license": "MIT", "dependencies": [ "azure-macro-utils-c", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unarr/debundle-7zip.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f38b229..3d5c150 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,19 +52,6 @@ add_library( # common/custalloc.c common/stream.c common/unarr.c - lzmasdk/7zTypes.h - lzmasdk/Compiler.h - lzmasdk/CpuArch.h - lzmasdk/Ppmd.h - lzmasdk/Ppmd7.h - lzmasdk/Ppmd8.h - lzmasdk/Precomp.h - lzmasdk/CpuArch.c - lzmasdk/Ppmd7.c - lzmasdk/Ppmd8.c - lzmasdk/Ppmd7Dec.c - lzmasdk/Ppmd7aDec.c - lzmasdk/Ppmd8Dec.c rar/lzss.h rar/rar.h rar/rarvm.h @@ -102,6 +89,12 @@ target_include_directories( if(BUILD_SHARED_LIBS) target_compile_definitions(unarr PUBLIC UNARR_IS_SHARED_LIBRARY) endif() +# Debundle 7zip +find_package(7zip CONFIG REQUIRED) +target_link_libraries(unarr PRIVATE 7zip::7zip) +# 7zip upstream does not supply a .pc file. Add it to Libs.private. +set(PROJECT_LIBS_PRIVATE "${PROJECT_LIBS_PRIVATE} -l7zip") +set(UNARR_DEPENDS_7zip "find_dependency(7zip CONFIG)") if(USE_SYSTEM_BZ2) find_package(BZip2) @@ -115,7 +108,8 @@ if(BZIP2_FOUND) endif() target_compile_definitions(unarr PRIVATE -DHAVE_BZIP2) # Bzip2 upstream does not supply a .pc file. Add it to Libs.private. - set(PROJECT_LIBS_PRIVATE "-I${BZIP2_INCLUDE_DIRS} -l${BZIP2_LIBRARIES}") + set(PROJECT_CFLAGS "${PROJECT_CFLAGS} -I${BZIP2_INCLUDE_DIRS}") + set(PROJECT_LIBS_PRIVATE "${PROJECT_LIBS_PRIVATE} -l${BZIP2_LIBRARIES}") set(UNARR_DEPENDS_BZip2 "find_dependency(BZip2)") endif() @@ -154,28 +148,6 @@ if(ZLIB_FOUND) endif() if(ENABLE_7Z) - target_sources( - unarr - PRIVATE lzmasdk/7z.h - lzmasdk/7zArcIn.c - lzmasdk/7zBuf.h - lzmasdk/7zBuf.c - lzmasdk/7zDec.c - lzmasdk/7zStream.c - lzmasdk/7zWindows.h - lzmasdk/Bcj2.h - lzmasdk/Bcj2.c - lzmasdk/Bra.c - lzmasdk/Bra.h - lzmasdk/Bra86.c - lzmasdk/7zCrc.h - lzmasdk/Delta.h - lzmasdk/Delta.c - lzmasdk/Lzma2Dec.h - lzmasdk/Lzma2Dec.c) - if(LIBLZMA_FOUND) # TODO: Replace 7z lzma with system lzma - target_sources(unarr PRIVATE lzmasdk/LzmaDec.h lzmasdk/LzmaDec.c) - endif() target_compile_definitions(unarr PRIVATE -DHAVE_7Z -DZ7_PPMD_SUPPORT) endif() @@ -194,8 +166,7 @@ if(UNIX -Werror-implicit-function-declaration $<$:-fomit-frame-pointer> $<$: - -Wno-missing-field-initializers> - -flto) + -Wno-missing-field-initializers>) if(BUILD_FUZZER) target_compile_options(unarr PUBLIC "${sanitize_opts}") target_compile_definitions( @@ -218,7 +189,7 @@ if(UNIX # Clang linker needs -flto too when doing lto if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang") - set(linker_opts "${linker_opts} -flto") + set(linker_opts "${linker_opts}") endif() set_target_properties(unarr PROPERTIES LINK_FLAGS "${linker_opts}") diff --git a/_7z/_7z.h b/_7z/_7z.h index 7f207e1..f488e42 100644 --- a/_7z/_7z.h +++ b/_7z/_7z.h @@ -6,9 +6,9 @@ #include "../common/unarr-imp.h" -#include "../lzmasdk/7zTypes.h" +#include <7zip/C/7zTypes.h> #ifdef HAVE_7Z -#include "../lzmasdk/7z.h" +#include <7zip/C/7z.h> #endif typedef struct ar_archive_7z_s ar_archive_7z; diff --git a/pkg-config.pc.cmake b/pkg-config.pc.cmake index 9055aef..a8581e0 100644 --- a/pkg-config.pc.cmake +++ b/pkg-config.pc.cmake @@ -5,7 +5,7 @@ libdir=@PROJECT_INSTALL_LIBDIR@ Name: @PROJECT_NAME@ Description: @PROJECT_DESCRIPTION@ Version: @PROJECT_VERSION@ -Cflags: -I${includedir} +Cflags: -I${includedir}@PROJECT_CFLAGS@ Requires.private: @PROJECT_REQUIRES_PRIVATE@ Libs: -L${libdir} -l@PROJECT_NAME@ Libs.private: @PROJECT_LIBS_PRIVATE@ diff --git a/rar/rar.h b/rar/rar.h index a0a420a..b522a33 100644 --- a/rar/rar.h +++ b/rar/rar.h @@ -7,7 +7,7 @@ #include "../common/unarr-imp.h" #include "lzss.h" -#include "../lzmasdk/Ppmd7.h" +#include <7zip/C/Ppmd7.h> #include static inline size_t smin(size_t a, size_t b) { return a < b ? a : b; } diff --git a/unarr-config.cmake.in b/unarr-config.cmake.in index 1c95f9b..4d82965 100644 --- a/unarr-config.cmake.in +++ b/unarr-config.cmake.in @@ -5,6 +5,7 @@ include(CMakeFindDependencyMacro) @UNARR_DEPENDS_BZip2@ @UNARR_DEPENDS_LibLZMA@ @UNARR_DEPENDS_ZLIB@ +@UNARR_DEPENDS_7zip@ if (NOT TARGET unarr::unarr) include("${CMAKE_CURRENT_LIST_DIR}/unarr-targets.cmake") diff --git a/zip/zip.h b/zip/zip.h index b2ba34c..23da8d8 100644 --- a/zip/zip.h +++ b/zip/zip.h @@ -16,9 +16,9 @@ #ifdef HAVE_LIBLZMA #include #else -#include "../lzmasdk/LzmaDec.h" +#include <7zip/C/LzmaDec.h> #endif -#include "../lzmasdk/Ppmd8.h" +#include <7zip/C/Ppmd8.h> typedef struct ar_archive_zip_s ar_archive_zip; ================================================ FILE: ports/unarr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO selmf/unarr REF "v${VERSION}" SHA512 da170e0391fbe92e9b2474beb6be9a96c9f905e4e572235aa839cda3f6faf3cb99773eede34e1054138a4997bf68a18ee84f4df47add202355449634c0fd6d93 HEAD_REF master PATCHES debundle-7zip.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/lzmasdk") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DENABLE_7Z=ON -DUSE_SYSTEM_BZ2=ON -DUSE_SYSTEM_LZMA=ON -DUSE_SYSTEM_ZLIB=ON -DUSE_ZLIB_CRC=ON -DBUILD_INTEGRATION_TESTS=OFF -DBUILD_FUZZER=OFF -DBUILD_UNIT_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/unarr") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/unarr/vcpkg.json ================================================ { "name": "unarr", "version": "1.1.1", "description": "A decompression library for rar, tar, zip and 7z archives.", "homepage": "https://github.com/selmf/unarr", "license": "LGPL-3.0-only", "supports": "!windows | static", "dependencies": [ "7zip", "bzip2", "liblzma", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/uni-algo/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uni-algo/uni-algo REF "v${VERSION}" SHA512 262f02acd56e96f0e4b4ba3d9793f2cab65c124d431add56fca2a7793c41c4cac7cd364395d4e84937e09f6c682366cca8228886388c8cc021b2ff2483f58652 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNI_ALGO_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(NO_PREFIX_CORRECTION) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/uni-algo/usage ================================================ The package uni-algo provides CMake targets: find_package(uni-algo CONFIG REQUIRED) target_link_libraries(main PRIVATE uni-algo::uni-algo) ================================================ FILE: ports/uni-algo/vcpkg.json ================================================ { "name": "uni-algo", "version-semver": "1.2.0", "description": "Unicode Algorithms Implementation", "homepage": "https://github.com/uni-algo/uni-algo", "license": "Unlicense OR MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unicorn/fix-build.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fcde11..1acc0b5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,7 +128,7 @@ if(MSVC) # handle msvcrt setting being passed in CMAKE_C_FLAGS if(CMAKE_C_FLAGS MATCHES "[/-]M[TD]d?") # ensure CMAKE_MSVC_RUNTIME_LIBRARY is not already defined - if(DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) + if(NOT CMAKE_MSVC_RUNTIME_LIBRARY) message(FATAL_ERROR "please set the runtime library via either CMAKE_C_FLAGS or CMAKE_MSVC_RUNTIME_LIBRARY, not both") endif() ================================================ FILE: ports/unicorn/fix-msvc-shared.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index aa94074..3471cc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1447,9 +1447,8 @@ if (UNICORN_LEGACY_STATIC_ARCHIVE) if (BUILD_SHARED_LIBS) if (MSVC) # Avoid the import lib built by MVSC clash with our archive. - set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn-import") + set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn") endif() - bundle_static_library(unicorn_static unicorn_archive unicorn) else() # Rename the "static" lib to avoid filename clash. set_target_properties(unicorn PROPERTIES OUTPUT_NAME "unicorn-static") @@ -1517,7 +1517,7 @@ if(UNICORN_INSTALL) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) endif() - if (UNICORN_LEGACY_STATIC_ARCHIVE) + if (NOT(BUILD_SHARED_LIBS)) install(FILES $ DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES $/$ DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() ================================================ FILE: ports/unicorn/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unicorn-engine/unicorn REF "${VERSION}" SHA512 c9ae4230a20b77e0187cde33dbf4827b3504b6c24debd61fc79ec9c13fa2051335c834c101433cebbbc8e3baadae56212b79c5922bf37ea1f777d66d8e67b495 HEAD_REF master PATCHES fix-build.patch fix-msvc-shared.patch ) if(VCPKG_TARGET_IS_ANDROID) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "-lpthread" " " ) endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" "-lpthread -lm" " " ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNICORN_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/unicorn/vcpkg.json ================================================ { "name": "unicorn", "version": "2.1.4", "description": "Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework", "homepage": "https://github.com/unicorn-engine/unicorn", "license": "GPL-2.0-only", "supports": "!(arm & windows)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/unicorn-lib/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(Unicorn_Lib LANGUAGES CXX DESCRIPTION "Unicode library for C++ by Ross Smith") set(CMAKE_CXX_STANDARD 17) option(UNICORN_LIB_SKIP_HEADERS "If the headers installation is skipped or not." OFF) find_package(ZLIB REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(PCRE2 IMPORTED_TARGET REQUIRED libpcre2-8) file(GLOB_RECURSE UNICORN_LIB_SOURCES "${PROJECT_SOURCE_DIR}/unicorn/*.cpp") list(FILTER UNICORN_LIB_SOURCES EXCLUDE REGEX "(.*)-test.cpp(.*)") add_library(unicorn-lib ${UNICORN_LIB_SOURCES}) target_include_directories(unicorn-lib PUBLIC "${PROJECT_SOURCE_DIR}") target_link_libraries(unicorn-lib PRIVATE PkgConfig::PCRE2 ZLIB::ZLIB) if(WIN32) target_compile_definitions(unicorn-lib PRIVATE -DNOMINMAX -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS) else() find_package(Iconv REQUIRED) target_link_libraries(unicorn-lib PRIVATE Iconv::Iconv) target_compile_definitions(unicorn-lib PRIVATE -D_XOPEN_SOURCE=700) endif() if(NOT UNICORN_LIB_SKIP_HEADERS) install(DIRECTORY ${PROJECT_SOURCE_DIR}/unicorn DESTINATION include FILES_MATCHING PATTERN "*.hpp") endif() install(TARGETS unicorn-lib RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) ================================================ FILE: ports/unicorn-lib/fix-missing-headers.patch ================================================ diff --git a/unicorn/utility.hpp b/unicorn/utility.hpp index e6a57b7..a2afa58 100644 --- a/unicorn/utility.hpp +++ b/unicorn/utility.hpp @@ -54,6 +54,7 @@ #include #include #include +#include #include #include #include ================================================ FILE: ports/unicorn-lib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO CaptainCrowbar/unicorn-lib REF 44e975ffc8dcd8dedbe01a8cbe7812e351f3f74f # 2021-10-28 SHA512 b22264420174c950ca8025e861366118d79a53edce9297d84af9511e255af5971c3719f0b464f4a4886848edea7c2ba4ae32ce9abab135628d64adbde5fa7b0d HEAD_REF master PATCHES fix-missing-headers.patch # https://github.com/CaptainCrowbar/unicorn-lib/pull/10 ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" OPTIONS_DEBUG -DUNICORN_LIB_SKIP_HEADERS=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/unicorn-lib/vcpkg.json ================================================ { "name": "unicorn-lib", "version-date": "2022-01-24", "port-version": 2, "description": "Unicode library for C++ by Ross Smith", "homepage": "https://github.com/CaptainCrowbar/unicorn-lib", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "libiconv", "platform": "!windows" }, { "name": "pcre2", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/unimail-cpp-sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unimails/unimail-cpp-sdk REF "v${VERSION}" SHA512 3bded27ae5dae926f5f311c56898b88a0409962d616f8bd84b39daf7134c85f3a6e68f9b930112b5c9da44b0deed7cc3d01f056a8c2c0877570f8c83aaf0a49f HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNIMAIL_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/unimail-cpp-sdk) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/unimail-cpp-sdk/usage ================================================ unimail-cpp-sdk provides CMake targets: find_package(unimail-cpp-sdk CONFIG REQUIRED) target_link_libraries(main PRIVATE icurve::unimail) ================================================ FILE: ports/unimail-cpp-sdk/vcpkg.json ================================================ { "name": "unimail-cpp-sdk", "version": "0.3.0", "description": "This is a cpp SDK for Unimail. Quickly integrate into your project.", "homepage": "https://github.com/unimails/unimail-cpp-sdk", "license": "BSD-3-Clause", "dependencies": [ "nlohmann-json", "restclient-cpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/units/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nholthaus/units REF v${VERSION} SHA512 9cedc52e0405140b9a8014195f59f4deb2edd155fe78df76005eb721974c2a640975d9b959777be48f41c24f6a0a7047536649958da847e2aa8b0c3b9a6d139a ) set(VCPKG_BUILD_TYPE "release") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUNITS_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/units) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # from CMake config vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/units/vcpkg.json ================================================ { "name": "units", "version": "3.3.0", "description": "A compile-time, header-only, dimensional analysis and unit conversion library built on c++14 with no dependencies.", "homepage": "https://github.com/nholthaus/units", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unittest-cpp/fix-include-path.patch ================================================ diff --git a/cmake/UnitTest++Config.cmake b/cmake/UnitTest++Config.cmake index afe165c..cc43a2b 100644 --- a/cmake/UnitTest++Config.cmake +++ b/cmake/UnitTest++Config.cmake @@ -1,2 +1,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/UnitTest++Targets.cmake") -get_filename_component(UTPP_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../include/" ABSOLUTE) +get_filename_component(UTPP_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include/" ABSOLUTE) + +get_filename_component(UnitTest++_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include/" ABSOLUTE) \ No newline at end of file ================================================ FILE: ports/unittest-cpp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unittest-cpp/unittest-cpp REF v2.0.0 SHA512 39318f4ed31534c116679a3257bf1438a6c4b3bef1894dfd40aea934950c6c8197af6a7f61539b8e9ddc67327c9388d7e8a6f8a3e0e966ad26c07554e2429cab HEAD_REF master PATCHES fix-include-path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUTPP_INCLUDE_TESTS_IN_BUILD=OFF -DUTPP_AMPLIFY_WARNINGS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/UnitTest++ PACKAGE_NAME unittest++) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Remove duplicate includes file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/unittest-cpp/vcpkg.json ================================================ { "name": "unittest-cpp", "version-semver": "2.0.0", "port-version": 6, "description": "A lightweight unit testing framework for C++", "homepage": "https://github.com/unittest-cpp/unittest-cpp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unixodbc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lurcher/unixODBC REF v${VERSION} SHA512 c70c1eff4bf2f34a968bd8007dc02260d1f583d6295deccde9a2c22b2592e6daed4ee3ef40b0b3445c09444a7d08d128a854b56502675fa3e6d2f908a9b1bcdb HEAD_REF master PATCHES subdirs.diff ) vcpkg_libltdl_get_vars(LIBLTDL) set(ENV{LIBTOOLIZE} "${LIBLTDL_LIBTOOLIZE}") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS_RELEASE ${LIBLTDL_OPTIONS_RELEASE} OPTIONS_DEBUG ${LIBLTDL_OPTIONS_DEBUG} ) vcpkg_make_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc" "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/etc" "${CURRENT_PACKAGES_DIR}/share/${PORT}/man1" "${CURRENT_PACKAGES_DIR}/share/${PORT}/man5" "${CURRENT_PACKAGES_DIR}/share/${PORT}/man7" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define BIN_PREFIX \"${CURRENT_INSTALLED_DIR}/tools/unixodbc/bin\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define DEFLIB_PATH \"${CURRENT_INSTALLED_DIR}/lib\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define EXEC_PREFIX \"${CURRENT_INSTALLED_DIR}\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define INCLUDE_PREFIX \"${CURRENT_INSTALLED_DIR}/include\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define LIB_PREFIX \"${CURRENT_INSTALLED_DIR}/lib\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define PREFIX \"${CURRENT_INSTALLED_DIR}\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define SYSTEM_FILE_PATH \"${CURRENT_INSTALLED_DIR}/etc\"" "/* redacted */") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unixODBC/unixodbc_conf.h" "#define SYSTEM_LIB_PATH \"${CURRENT_INSTALLED_DIR}/lib\"" "/* redacted */") configure_file("${CMAKE_CURRENT_LIST_DIR}/unofficial-unixodbc-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-unixodbc/unofficial-unixodbc-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unixodbcConfig.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # legacy file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( COMMENT "All libraries are LGPL Version 2.1. All programs are GPL Version 2.0." FILE_LIST "${SOURCE_PATH}/COPYING" "${SOURCE_PATH}/exe/COPYING" ) ================================================ FILE: ports/unixodbc/subdirs.diff ================================================ diff --git a/Makefile.am b/Makefile.am index 76d0b3a..19a88d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,7 +11,6 @@ SUBDIRS = \ log \ lst \ ini \ - libltdl \ odbcinst \ DriverManager \ exe \ ================================================ FILE: ports/unixodbc/unixodbcConfig.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(unixodbc) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-unixodbc CONFIG REQUIRED) if(NOT TARGET UNIX::odbc) add_library(#[[skip-usage-heuristics]] UNIX::odbc ALIAS unofficial::unixodbc::unixodbc) endif() ================================================ FILE: ports/unixodbc/unofficial-unixodbc-config.cmake ================================================ if(NOT TARGET unofficial::unixodbc::unixodbc) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") include(CMakeFindDependencyMacro) find_dependency(Iconv) endif() get_filename_component(z_unixodbc_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(z_unixodbc_root "${z_unixodbc_root}" PATH) find_library(UNIXODBC_LIBRARY_RELEASE NAMES "odbc" PATHS "${z_unixodbc_root}/lib" NO_DEFAULT_PATH REQUIRED) add_library(unofficial::unixodbc::unixodbc UNKNOWN IMPORTED) set_target_properties(unofficial::unixodbc::unixodbc PROPERTIES IMPORTED_CONFIGURATIONS RELEASE IMPORTED_LOCATION_RELEASE "${UNIXODBC_LIBRARY_RELEASE}" INTERFACE_INCLUDE_DIRECTORIES "${z_unixodbc_root}/include" ) find_library(UNIXODBC_LIBRARY_DEBUG NAMES "odbc" PATHS "${z_unixodbc_root}/debug/lib" NO_DEFAULT_PATH) if(UNIXODBC_LIBRARY_DEBUG) set_property(TARGET unofficial::unixodbc::unixodbc APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG ) set_target_properties(unofficial::unixodbc::unixodbc PROPERTIES IMPORTED_LOCATION_DEBUG "${UNIXODBC_LIBRARY_DEBUG}" ) endif() mark_as_advanced(UNIXODBC_LIBRARY_RELEASE UNIXODBC_LIBRARY_DEBUG) if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") find_library(UNIXODBC_LTDL_LIBRARY_RELEASE NAMES "ltdl" PATHS "${z_unixodbc_root}/lib" NO_DEFAULT_PATH REQUIRED) find_library(UNIXODBC_LTDL_LIBRARY_DEBUG NAMES "ltdl" PATHS "${z_unixodbc_root}/debug/lib" NO_DEFAULT_PATH REQUIRED) mark_as_advanced(UNIXODBC_LTDL_LIBRARY_RELEASE UNIXODBC_LTDL_LIBRARY_DEBUG) if(UNIXODBC_LTDL_LIBRARY_DEBUG) set(z_unixodbc_ltdl "$<$:${UNIXODBC_LTDL_LIBRARY_DEBUG}>;$<$>:${UNIXODBC_LTDL_LIBRARY_RELEASE}>") else() set(z_unixodbc_ltdl "${UNIXODBC_LTDL_LIBRARY_RELEASE}") endif() set_target_properties(unofficial::unixodbc::unixodbc PROPERTIES INTERFACE_LINK_LIBRARIES "$;${z_unixodbc_ltdl};${CMAKE_DL_LIBS}" ) unset(z_unixodbc_ltdl) endif() unset(z_unixodbc_root) endif() ================================================ FILE: ports/unixodbc/usage ================================================ unixodbc provides CMake targets: # unixODBC Driver Manager library find_package(unofficial-unixodbc CONFIG REQUIRED) target_link_libraries(main PRIVATE (unofficial::unixodbc::odbc) unixodbc provides pkg-config modules: # unixODBC Driver Manager library odbc # unixODBC Cursor Library odbccr # unixODBC Configuration Library odbcinst ================================================ FILE: ports/unixodbc/vcpkg.json ================================================ { "name": "unixodbc", "version": "2.3.14", "description": "unixODBC is an Open Source ODBC sub-system and an ODBC SDK for Linux, Mac OSX, and UNIX", "homepage": "https://github.com/lurcher/unixODBC", "license": null, "supports": "linux | osx", "dependencies": [ "libltdl", { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/unleash-client-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO aruizs/unleash-client-cpp REF "v${VERSION}" SHA512 0ba3fa89bacfded6aaf54c5595ec4affc621563dc0b2b7917f5a444cb322336fa8c85ce236ef7ba3726edce778d00c6ad827b3a5bd3c4022898ae0eba872d869 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_REQUIRE_FIND_PACKAGE_cpr=ON -DCMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json=ON -DENABLE_TESTING=OFF -DENABLE_TEST_COVERAGE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/unleash" PACKAGE_NAME "unleash") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/unleash-client-cpp/usage ================================================ unleash-client-cpp provides a CMake target: find_package(unleash CONFIG REQUIRED) target_link_libraries(main PRIVATE unleash::unleash) ================================================ FILE: ports/unleash-client-cpp/vcpkg.json ================================================ { "name": "unleash-client-cpp", "version": "1.3.0", "description": "C++ client SDK for Unleash, an open-source feature flag management service.", "homepage": "https://github.com/aruizs/unleash-client-cpp", "license": "MIT", "dependencies": [ "cpr", "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unordered-dense/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinus/unordered_dense REF "v${VERSION}" SHA512 b98b5d4d96f8e0081b184d6c4c1181fae4e41723b54bed4296717d7f417348b48fad0bbcc664cac142b8c8a47e95aa57c1eb1cf6caa855fd782fad3e3ab99e5e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME unordered_dense CONFIG_PATH lib/cmake/unordered_dense ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/unordered-dense/vcpkg.json ================================================ { "name": "unordered-dense", "version": "4.8.1", "description": "A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion", "homepage": "https://github.com/martinus/unordered_dense", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/unqlite/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO symisc/unqlite REF 5d951cd302c14cc6a4e7f8552b47f1e13a511d1d SHA512 4b6507a2188dbbf76231748f3a6e990fe687a2a5e2ee8cca3bfc80605e5dbcef3f3e85b032685aa5cf490442d2b570dab8a4b8eb88b97ed84022bf74602c2dfb HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "threads" ENABLE_THREADS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF ) vcpkg_cmake_install() if ("threads" IN_LIST FEATURES) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/unqlite.h" "#define _UNQLITE_H_" [[ #define _UNQLITE_H_ #define UNQLITE_ENABLE_THREADS ]] ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/unqlite/usage ================================================ unqlite can be used from CMake via: find_path(UNQLITE_INCLUDE_DIRS "unqlite.h" REQUIRED) find_library(UNQLITE_LIBRARIES unqlite REQUIRED) target_include_directories(main PRIVATE ${UNQLITE_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${UNQLITE_LIBRARIES}) ================================================ FILE: ports/unqlite/vcpkg.json ================================================ { "name": "unqlite", "version-date": "2025-04-29", "description": "An embedded NoSQL, transactional database engine", "homepage": "https://unqlite.symisc.net/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "threads": { "description": "Compile with thread safety support" } } } ================================================ FILE: ports/unrar/Config.cmake.in ================================================ get_filename_component(_unrar_root "${CMAKE_CURRENT_LIST_FILE}" PATH) get_filename_component(_unrar_root "${_unrar_root}" PATH) get_filename_component(_unrar_root "${_unrar_root}" PATH) if (EXISTS "${_unrar_root}/bin/unrar.dll") add_library(unofficial::unrar::unrar SHARED IMPORTED) set_target_properties(unofficial::unrar::unrar PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_unrar_root}/include" IMPORTED_LOCATION_DEBUG "${_unrar_root}/debug/bin/unrar.dll" IMPORTED_IMPLIB_DEBUG "${_unrar_root}/debug/lib/unrar.lib" IMPORTED_LOCATION_RELEASE "${_unrar_root}/bin/unrar.dll" IMPORTED_IMPLIB_RELEASE "${_unrar_root}/lib/unrar.lib" IMPORTED_CONFIGURATIONS "Debug;Release") set(unrar_FOUND TRUE) else() set(unrar_FOUND FALSE) endif() unset(_unrar_root) ================================================ FILE: ports/unrar/portfile.cmake ================================================ set(UNRAR_VERSION "7.0.7") set(UNRAR_SHA512 7151a42742d4c34a8f03c58dae471f80788b76adbb52188759b7fc7357757f88fa9d980de006ce48732c40f326b92b79fb069e807c2b66d4387ee60433a8accb) set(UNRAR_FILENAME unrarsrc-${UNRAR_VERSION}.tar.gz) set(UNRAR_URL https://www.rarlab.com/rar/${UNRAR_FILENAME}) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) #SRC vcpkg_download_distfile(ARCHIVE URLS ${UNRAR_URL} FILENAME ${UNRAR_FILENAME} SHA512 ${UNRAR_SHA512} ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE ${UNRAR_VERSION} ) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "UnRARDll.vcxproj" ) #INCLUDE (named dll.hpp in source, and unrar.h in all rarlabs distributions) file(INSTALL "${SOURCE_PATH}/dll.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include" RENAME unrar.h) configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-unrar/unofficial-unrar-config.cmake" @ONLY) #COPYRIGHT vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/unrar/vcpkg.json ================================================ { "name": "unrar", "version": "7.0.7", "description": "rarlab's unrar library", "homepage": "https://www.rarlab.com", "license": null, "supports": "windows & !uwp & !arm & !static", "dependencies": [ { "name": "vcpkg-msbuild", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/upa-url/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO upa-url/upa REF "v${VERSION}" SHA512 f489b788d2eef1a2f61833c76bd3bf444df8bb80b918c3681ff0bfe01cc65f2e11b3e2b2972bec4146b5deb723db7837197254365c734c92ef1584028ae49c5f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUPA_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME "upa" CONFIG_PATH "lib/cmake/upa") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/upa-url/vcpkg.json ================================================ { "name": "upa-url", "version": "2.4.0", "description": "An implementation of the WHATWG URL Standard in C++", "homepage": "https://github.com/upa-url/upa", "documentation": "https://upa-url.github.io/docs/", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/urdfdom/0001_use_math_defines.patch ================================================ diff --git a/urdf_parser/CMakeLists.txt b/urdf_parser/CMakeLists.txt index ac7c079..67f175d 100644 --- a/urdf_parser/CMakeLists.txt +++ b/urdf_parser/CMakeLists.txt @@ -23,6 +23,10 @@ macro(add_urdfdom_library) SOVERSION ${URDF_MAJOR_MINOR_VERSION}) endmacro() +if(MSVC) + add_definitions(-D_USE_MATH_DEFINES) +endif() + if(TARGET console_bridge::console_bridge) set(console_bridge_link_libs "console_bridge::console_bridge") else() ================================================ FILE: ports/urdfdom/0005-fix-config-and-install.patch ================================================ diff --git a/cmake/urdfdom-config.cmake.in b/cmake/urdfdom-config.cmake.in index d8eb93d..3e5c42a 100644 --- a/cmake/urdfdom-config.cmake.in +++ b/cmake/urdfdom-config.cmake.in @@ -3,8 +3,12 @@ if (@PKG_NAME@_CONFIG_INCLUDED) endif() set(@PKG_NAME@_CONFIG_INCLUDED TRUE) -set(@PKG_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@" "@TinyXML_INCLUDE_DIRS@") +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) + +set(@PKG_NAME@_INCLUDE_DIRS "${_IMPORT_PREFIX}/include" "@TinyXML_INCLUDE_DIRS@") +if (0) foreach(lib @PKG_LIBRARIES@) set(onelib "${lib}-NOTFOUND") set(onelibd "${lib}-NOTFOUND") @@ -29,10 +33,14 @@ foreach(lib @PKG_LIBRARIES@) endif() list(APPEND @PKG_NAME@_TARGETS @PROJECT_NAME@::${lib}) endforeach() +endif() + +include(CMakeFindDependencyMacro) +find_dependency(console_bridge) foreach(dep @PKG_DEPENDS@) if(NOT ${dep}_FOUND) - find_package(${dep}) + find_dependency(${dep}) endif() list(APPEND @PKG_NAME@_INCLUDE_DIRS ${${dep}_INCLUDE_DIRS}) list(APPEND @PKG_NAME@_LIBRARIES ${${dep}_LIBRARIES}) @@ -41,3 +49,5 @@ endforeach() foreach(exp @PKG_EXPORTS@) include(${@PROJECT_NAME@_DIR}/${exp}Export.cmake) endforeach() + +set(@PKG_NAME@_LIBRARIES urdfdom::urdfdom_model urdfdom::urdfdom_world urdfdom::urdfdom_sensor urdfdom::urdfdom_model_state) ================================================ FILE: ports/urdfdom/0006-pc_file_for_windows.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,11 +89,11 @@ # Make the package config file -if (NOT MSVC) + set(PKG_DESC "Unified Robot Description Format") set(PKG_DEPENDS "urdfdom_headers console_bridge") # make the list separated by spaces instead of ; set(PKG_URDF_LIBS "-lurdfdom_sensor -lurdfdom_model_state -lurdfdom_model -lurdfdom_world") set(pkg_conf_file "cmake/pkgconfig/urdfdom.pc") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY) install(FILES ${CMAKE_BINARY_DIR}/${pkg_conf_file} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ COMPONENT pkgconfig) -endif() + ================================================ FILE: ports/urdfdom/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile( CSTDINT_PATCH URLS https://github.com/ros/urdfdom/commit/4061dfa3c8b56a7affe042002aca9945441d1e93.patch?full_index=1 SHA512 e04f5e8a400927a678282573ebe35752309ea1db32389744a91d5385f7540a4cacd4b00561380f5ce5130df3e155146965e4a4aa0e86442ee7eee045511fad0c FILENAME 4061dfa3c8b56a7affe042002aca9945441d1e93.patch ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ros/urdfdom REF ${VERSION} SHA512 6386954bc7883e82d9db7c785ae074b47ca31efb7cc2686101e7813768824bed5b46a774a1296453c39ff76673a9dc77305bb2ac96b86ecf93fab22062ef2258 HEAD_REF master PATCHES 0001_use_math_defines.patch 0005-fix-config-and-install.patch 0006-pc_file_for_windows.patch "${CSTDINT_PATCH}" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES check_urdf urdf_mem_test urdf_to_graphiz urdf_to_graphviz AUTO_CLEAN) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH CMake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/urdfdom/cmake) # Empty folders file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/urdfdom") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/urdfdom") endif() if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) vcpkg_fixup_pkgconfig() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/urdfdom/vcpkg.json ================================================ { "name": "urdfdom", "version": "3.1.1", "port-version": 1, "description": "Provides core data structures and a simple XML parsers for populating the class data structures from an URDF file.", "homepage": "https://github.com/ros/urdfdom", "license": "BSD-3-Clause", "supports": "!staticcrt", "dependencies": [ "console-bridge", "tinyxml", "urdfdom-headers", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/urdfdom-headers/fix-include-path.patch ================================================ diff --git a/cmake/urdfdom_headers-config.cmake.in b/cmake/urdfdom_headers-config.cmake.in index b53e466..b35805a 100644 --- a/cmake/urdfdom_headers-config.cmake.in +++ b/cmake/urdfdom_headers-config.cmake.in @@ -3,8 +3,8 @@ if (@PACKAGE_NAME@_CONFIG_INCLUDED) endif() set(@PACKAGE_NAME@_CONFIG_INCLUDED TRUE) -set(@PACKAGE_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@") +set(@PACKAGE_NAME@_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../include") -include("${@PACKAGE_NAME@_DIR}/@PACKAGE_NAME@Export.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/@PACKAGE_NAME@Export.cmake") list(APPEND @PACKAGE_NAME@_TARGETS @PACKAGE_NAME@::@PACKAGE_NAME@) ================================================ FILE: ports/urdfdom-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ros/urdfdom_headers REF "${VERSION}" SHA512 b0eed4da4d1f165ab33812c181000fa58f3d817703a0b8728a9d4b9f888eeed15d095072c16eb5779850e8a88984633345b444396c58bd79bedf7bf3eb6e16bc HEAD_REF master PATCHES fix-include-path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(CONFIG_PATH CMake PACKAGE_NAME urdfdom_headers) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/urdfdom_headers/cmake PACKAGE_NAME urdfdom_headers) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/urdfdom_headers") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/urdfdom_headers") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/urdfdom-headers/vcpkg.json ================================================ { "name": "urdfdom-headers", "version": "1.1.1", "description": "The URDF (U-Robot Description Format) headers provides core data structure headers for URDF.", "homepage": "https://github.com/ros/urdfdom_headers", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/uriparser/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uriparser/uriparser REF "uriparser-${VERSION}" SHA512 17526795bf78211ecff2b6b6f632c168ba33ed7763c5ad94fcc5bdff19542025be8a7079701e261d8992fff9077f59448fb9b8983cfab38d972228b7e353c9cd HEAD_REF master ) if("tool" IN_LIST FEATURES) set(URIPARSER_BUILD_TOOLS ON) else() set(URIPARSER_BUILD_TOOLS OFF) endif() string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" URIPARSER_CRT_LINKAGE) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DURIPARSER_BUILD_DOCS=OFF -DURIPARSER_BUILD_TESTS=OFF -DURIPARSER_MSVC_STATIC_CRT=${URIPARSER_CRT_LINKAGE} OPTIONS_DEBUG -DURIPARSER_BUILD_TOOLS=OFF OPTIONS_RELEASE -DURIPARSER_BUILD_TOOLS=${URIPARSER_BUILD_TOOLS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(URIPARSER_BUILD_TOOLS) vcpkg_copy_tools( TOOL_NAMES uriparse AUTO_CLEAN ) endif() set(_package_version_re "#[ ]*define[ ]+PACKAGE_VERSION[ ]+\"([0-9]+.[0-9]+.[0-9]+)\"") file(STRINGS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/UriConfig.h" _package_version_define REGEX "${_package_version_re}" ) string(REGEX REPLACE "${_package_version_re}" "\\1" _package_version ${_package_version_define}) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}-${_package_version}) if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/uriparser/UriBase.h" "defined(URI_STATIC_BUILD)" "1 // defined(URI_STATIC_BUILD)" ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.Apache-2.0" "${SOURCE_PATH}/COPYING.BSD-3-Clause" "${SOURCE_PATH}/COPYING.LGPL-2.1" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/uriparser/usage ================================================ The package uriparser provides CMake targets: find_package(uriparser CONFIG REQUIRED char wchar_t) target_link_libraries(main PUBLIC uriparser::uriparser) ================================================ FILE: ports/uriparser/vcpkg.json ================================================ { "name": "uriparser", "version": "1.0.0", "description": "Strictly RFC 3986 compliant URI parsing and handling library written in C89.", "homepage": "https://uriparser.github.io/", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tool": { "description": "Builds CLI tool uriparse." } } } ================================================ FILE: ports/usbmuxd/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(usbmuxd C) include(GNUInstallDirs) file(GLOB_RECURSE USBMUXD_SOURCE src/*.c src/*.h) set(DEFINITIONS) list(APPEND DEFINITIONS -DPACKAGE_NAME="usbmuxd") list(APPEND DEFINITIONS -DPACKAGE_STRING="1.1.1") list(APPEND DEFINITIONS -DPACKAGE_VERSION="1.1.1") list(APPEND DEFINITIONS -DPACKAGE_URL="https://github.com/libimobiledevice/usbmuxd") list(APPEND DEFINITIONS -DPACKAGE_BUGREPORT="https://github.com/libimobiledevice/usbmuxd/issues") if(UNIX) list(APPEND DEFINITIONS -DHAVE_CLOCK_GETTIME) endif() if(UNIX AND NOT APPLE) list(APPEND DEFINITIONS -DHAVE_PPOLL) endif() if(WIN32) list(APPEND DEFINITIONS -D_CRT_SECURE_NO_WARNINGS) list(APPEND DEFINITIONS -DWIN32) endif() find_package(unofficial-libimobiledevice CONFIG REQUIRED) find_package(unofficial-libimobiledevice-glue CONFIG REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(libusb REQUIRED IMPORTED_TARGET libusb-1.0) find_path(DIRENT_INCLUDE_DIR dirent.h REQUIRED) add_executable(usbmuxd ${USBMUXD_SOURCE}) target_include_directories(usbmuxd PRIVATE ${DIRENT_INCLUDE_DIR} ) target_compile_definitions(usbmuxd PRIVATE ${DEFINITIONS}) target_link_libraries(usbmuxd PRIVATE unofficial::libimobiledevice::libimobiledevice unofficial::libimobiledevice-glue::libimobiledevice-glue PkgConfig::libusb ) if(WIN32) find_package(PThreads4W REQUIRED) find_package(unofficial-getopt-win32 REQUIRED) target_link_libraries(usbmuxd PRIVATE PThreads4W::PThreads4W unofficial::getopt-win32::getopt) endif() install(TARGETS usbmuxd RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") ================================================ FILE: ports/usbmuxd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libimobiledevice/usbmuxd REF 61b99ab5c25609c11369733a0df97c03a0581a56 # commits on 2023-07-21 SHA512 1b67a41f43e78bbf0966cbe68c9e35351d5a163d7d82aa6e5caed6c4f8ffc3c28faf74dc96890a35481b4856f6b6d95ebec9e8d2a665a099d8909b91bf408381 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_tools(TOOL_NAMES usbmuxd AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING.GPLv2" "${SOURCE_PATH}/COPYING.GPLv3") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/usbmuxd/vcpkg.json ================================================ { "name": "usbmuxd", "version-date": "2023-07-21", "port-version": 1, "description": "A socket daemon to multiplex connections from and to iOS devices", "homepage": "http://www.libimobiledevice.org", "license": "LGPL-2.0-or-later", "supports": "(!windows & !android & !ios) | mingw", "dependencies": [ "dirent", "getopt", "libimobiledevice", "libimobiledevice-glue", "libusb", "pthreads", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/usd/003-fix-dep.patch ================================================ diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake index 8742546462..16bc7306e1 100644 --- a/cmake/defaults/Packages.cmake +++ b/cmake/defaults/Packages.cmake @@ -172,7 +172,8 @@ if (PXR_BUILD_IMAGING) # --OpenImageIO if (PXR_BUILD_OPENIMAGEIO_PLUGIN) set(REQUIRES_Imath TRUE) - find_package(OpenImageIO REQUIRED) + find_package(OpenImageIO CONFIG REQUIRED) + set(OIIO_LIBRARIES OpenImageIO::OpenImageIO) add_definitions(-DPXR_OIIO_PLUGIN_ENABLED) if (OIIO_idiff_BINARY) set(IMAGE_DIFF_TOOL ${OIIO_idiff_BINARY} CACHE STRING "Uses idiff for image diffing") @@ -190,7 +191,12 @@ if (PXR_BUILD_IMAGING) if (POLICY CMP0072) cmake_policy(SET CMP0072 OLD) endif() + set(previous_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK}) + if(APPLE) # Must find Apple OpenGL, not XQuartz OpenGL + set(CMAKE_FIND_FRAMEWORK FIRST) + endif() find_package(OpenGL REQUIRED) + set(CMAKE_FIND_FRAMEWORK ${previous_CMAKE_FIND_FRAMEWORK}) add_definitions(-DPXR_GL_SUPPORT_ENABLED) endif() # --Metal @@ -199,7 +205,7 @@ if (PXR_BUILD_IMAGING) endif() if (PXR_ENABLE_VULKAN_SUPPORT) message(STATUS "Enabling experimental feature Vulkan support") - if (EXISTS $ENV{VULKAN_SDK}) + if (0) find_package(Vulkan REQUIRED COMPONENTS shaderc_combined) list(APPEND VULKAN_LIBS Vulkan::Vulkan Vulkan::shaderc_combined) @@ -211,10 +217,14 @@ if (PXR_BUILD_IMAGING) # No extra libs required endif() - add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED) - else() - message(FATAL_ERROR "VULKAN_SDK not valid") endif() + add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED) + find_package(Vulkan REQUIRED) + find_package(unofficial-shaderc CONFIG REQUIRED) + find_package(VulkanMemoryAllocator CONFIG REQUIRED) + list(APPEND VULKAN_LIBS Vulkan::Vulkan) + list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc) + list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator) endif() # --Opensubdiv set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT}) diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt index e98893d3f0..772c3edb64 100644 --- a/pxr/imaging/hgiVulkan/CMakeLists.txt +++ b/pxr/imaging/hgiVulkan/CMakeLists.txt @@ -41,7 +41,6 @@ pxr_library(hgiVulkan shaderProgram shaderSection texture - vk_mem_alloc PUBLIC_HEADERS api.h diff --git a/pxr/imaging/hgiVulkan/device.cpp b/pxr/imaging/hgiVulkan/device.cpp index a1c44143a9..2ac706e89a 100644 --- a/pxr/imaging/hgiVulkan/device.cpp +++ b/pxr/imaging/hgiVulkan/device.cpp @@ -11,7 +11,8 @@ #include "pxr/imaging/hgiVulkan/hgi.h" #include "pxr/imaging/hgiVulkan/instance.h" #include "pxr/imaging/hgiVulkan/pipelineCache.h" -#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h" +#define VMA_IMPLEMENTATION +#include #include "pxr/base/tf/diagnostic.h" diff --git a/pxr/imaging/hgiVulkan/vulkan.h b/pxr/imaging/hgiVulkan/vulkan.h index 2e8f590646..7521f1f37e 100644 --- a/pxr/imaging/hgiVulkan/vulkan.h +++ b/pxr/imaging/hgiVulkan/vulkan.h @@ -35,7 +35,7 @@ #define VK_EXTERNAL_MEMORY_HANDLE_AUTO 0 #endif -#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h" +#include // Use the default allocator (nullptr) inline VkAllocationCallbacks* diff --git a/pxr/imaging/plugin/hioOiio/CMakeLists.txt b/pxr/imaging/plugin/hioOiio/CMakeLists.txt index 0a055b711d..de4b73a47d 100644 --- a/pxr/imaging/plugin/hioOiio/CMakeLists.txt +++ b/pxr/imaging/plugin/hioOiio/CMakeLists.txt @@ -7,6 +7,7 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT}) return() endif() +if(0) # No need because OpenImageIO::OpenImageIO already declare its transitive dependencies correctly # Use the import targets set by Imath's package config if (Imath_FOUND) set(__OIIO_IMATH_LIBS "Imath::Imath") @@ -14,6 +15,7 @@ else() set(__OIIO_IMATH_INCLUDE ${OPENEXR_INCLUDE_DIRS}) set(__OIIO_IMATH_LIBS ${OPENEXR_LIBRARIES}) endif() +endif() pxr_plugin(hioOiio LIBRARIES diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in index b83cf3d730..611a29cbc1 100644 --- a/pxr/pxrConfig.cmake.in +++ b/pxr/pxrConfig.cmake.in @@ -18,6 +18,25 @@ set(PXR_VERSION "@PXR_VERSION@") include(CMakeFindDependencyMacro) +if(@PXR_BUILD_IMAGING@) + if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@) + find_dependency(OpenImageIO CONFIG) + endif() + if(@PXR_ENABLE_GL_SUPPORT@) + find_dependency(OpenGL REQUIRED) + endif() + if(@PXR_ENABLE_VULKAN_SUPPORT@) + if (NOT DEFINED Vulkan_DIR) + if (NOT [[@Vulkan_DIR@]] STREQUAL "") + set(Vulkan_DIR [[@Vulkan_DIR@]]) + endif() + endif() + find_dependency(Vulkan REQUIRED) + find_dependency(unofficial-shaderc CONFIG) + find_dependency(VulkanMemoryAllocator CONFIG) + endif() +endif() + # If Python support was enabled for this USD build, find the import # targets by invoking the appropriate FindPython module. Use the same # LIBRARY and INCLUDE_DIR settings from the original build if they @@ -101,7 +120,7 @@ if(@Imath_FOUND@) set(Imath_DIR [[@Imath_DIR@]]) endif() endif() - find_dependency(Imath) + find_dependency(Imath CONFIG) endif() # If this build is using a custom work implementation, find the package @@ -115,14 +134,14 @@ if(NOT "@PXR_WORK_IMPL_PACKAGE@" STREQUAL "") find_dependency(@PXR_WORK_IMPL_PACKAGE@) endif() -include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake") +include("${PXR_CMAKE_DIR}/pxrTargets.cmake") if (TARGET usd_m) set(libs "usd_m") else() set(libs "@PXR_ALL_LIBS@") endif() set(PXR_LIBRARIES "") -set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/include") +set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/../../include") string(REPLACE " " ";" libs "${libs}") foreach(lib ${libs}) get_target_property(location ${lib} LOCATION) ================================================ FILE: ports/usd/004-fix_cmake_package.patch ================================================ diff --git a/pxr/CMakeLists.txt b/pxr/CMakeLists.txt index a02287dda6..31878e9a6b 100644 --- a/pxr/CMakeLists.txt +++ b/pxr/CMakeLists.txt @@ -27,7 +27,8 @@ endif() pxr_core_epilogue() -export(PACKAGE pxr) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) # XXX: # Libraries specify the TBB::tbb target to link against TBB. This target @@ -63,11 +64,28 @@ foreach(property IN ITEMS endif() endforeach() -configure_file(pxrConfig.cmake.in - "${PROJECT_BINARY_DIR}/pxrConfig.cmake" @ONLY) -install(FILES +configure_file( + "pxrConfig.cmake.in" "${PROJECT_BINARY_DIR}/pxrConfig.cmake" - DESTINATION "${CMAKE_INSTALL_PREFIX}" + @ONLY ) -install(EXPORT pxrTargets DESTINATION "cmake") +write_basic_package_version_file("${PROJECT_BINARY_DIR}/pxrConfigVersion.cmake" + VERSION "${PXR_MAJOR_VERSION}.${PXR_MINOR_VERSION}.${PXR_PATCH_VERSION}" + COMPATIBILITY AnyNewerVersion +) + +install( + FILES + "${PROJECT_BINARY_DIR}/pxrConfig.cmake" + "${PROJECT_BINARY_DIR}/pxrConfigVersion.cmake" + + DESTINATION + "${CMAKE_INSTALL_DATADIR}/pxr" +) + +install( + EXPORT pxrTargets + # NAMESPACE "pxr::" + DESTINATION "${CMAKE_INSTALL_DATADIR}/pxr" +) ================================================ FILE: ports/usd/007-fix_cmake_hgi_interop.patch ================================================ diff --git a/pxr/imaging/hgiInterop/CMakeLists.txt b/pxr/imaging/hgiInterop/CMakeLists.txt index 6264cce71e..ebea6f1e59 100644 --- a/pxr/imaging/hgiInterop/CMakeLists.txt +++ b/pxr/imaging/hgiInterop/CMakeLists.txt @@ -15,6 +15,7 @@ set(optionalPrivateHeaders "") list(APPEND optionalLibraries garch) if (PXR_ENABLE_GL_SUPPORT) + list(APPEND optionalLibraries hgiGL) list(APPEND optionalCppFiles opengl.cpp) list(APPEND optionalPrivateHeaders opengl.h) endif() @@ -37,6 +38,10 @@ if (PXR_ENABLE_METAL_SUPPORT AND NOT PXR_APPLE_EMBEDDED) list(APPEND optionalPrivateHeaders metal.h) endif() +if (NOT (PXR_ENABLE_GL_SUPPORT OR PXR_ENABLE_VULKAN_SUPPORT OR PXR_ENABLE_METAL_SUPPORT)) + message(FATAL_ERROR "No valid GPU backend set for hgiInterop") +endif() + pxr_library(hgiInterop LIBRARIES gf ================================================ FILE: ports/usd/008-fix_clang8_compiler_error.patch ================================================ diff --git a/pxr/usd/pcp/primIndex.h b/pxr/usd/pcp/primIndex.h index dbf1208a26..aa8269a1d3 100644 --- a/pxr/usd/pcp/primIndex.h +++ b/pxr/usd/pcp/primIndex.h @@ -70,7 +70,7 @@ public: PcpPrimIndex(const PcpPrimIndex& rhs); /// Move-construction - PcpPrimIndex(PcpPrimIndex &&rhs) noexcept = default; + PcpPrimIndex(PcpPrimIndex &&rhs) = default; /// Assignment. PcpPrimIndex &operator=(const PcpPrimIndex &rhs) { @@ -79,7 +79,7 @@ public: } // Move-assignment. - PcpPrimIndex &operator=(PcpPrimIndex &&rhs) noexcept = default; + PcpPrimIndex &operator=(PcpPrimIndex &&rhs) = default; /// Swap the contents of this prim index with \p index. PCP_API ================================================ FILE: ports/usd/009-vcpkg_install_folder_conventions.patch ================================================ diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake index e2dccb0755..6a3cff1343 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake @@ -1191,8 +1191,10 @@ function(_pxr_library NAME) # XXX --- Why this difference? _get_install_dir("plugin/usd" pluginInstallPrefix) endif() + elseif(WIN32 AND args_TYPE STREQUAL "SHARED") + _get_install_dir("${CMAKE_INSTALL_BINDIR}/usd" pluginInstallPrefix) else() - _get_install_dir("lib/usd" pluginInstallPrefix) + _get_install_dir("${CMAKE_INSTALL_LIBDIR}/usd" pluginInstallPrefix) endif() if(args_SUBDIR) set(pluginInstallPrefix "${pluginInstallPrefix}/${args_SUBDIR}") @@ -1272,17 +1274,25 @@ function(_pxr_library NAME) # Where do we install library to? _get_install_dir("include" headerInstallDir) _get_install_dir("include/${PXR_PREFIX}/${NAME}" headerInstallPrefix) - _get_install_dir("lib" libInstallPrefix) + if(WIN32 AND args_TYPE STREQUAL "SHARED") + _get_install_dir("${CMAKE_INSTALL_BINDIR}" libInstallPrefix) + _get_install_dir("${CMAKE_INSTALL_LIBDIR}" libInstallPrefixArchive) + else() + _get_install_dir("${CMAKE_INSTALL_LIBDIR}" libInstallPrefix) + _get_install_dir("${CMAKE_INSTALL_LIBDIR}" libInstallPrefixArchive) + endif() if(isPlugin) if(NOT isObject) # A plugin embedded in the monolithic library is found in # the usual library location, otherwise plugin libraries # are in the plugin install location. set(libInstallPrefix "${pluginInstallPrefix}") + set(libInstallPrefixArchive "${pluginInstallPrefix}") endif() endif() if(args_SUBDIR) set(libInstallPrefix "${libInstallPrefix}/${args_SUBDIR}") + set(libInstallPrefixArchive "${libInstallPrefixArchive}/${args_SUBDIR}") endif() # Return libInstallPrefix to caller. if(args_LIB_INSTALL_PREFIX_RESULT) @@ -1414,8 +1424,8 @@ function(_pxr_library NAME) # The former is for helper libraries for a third party application and # the latter for core USD libraries. _pxr_init_rpath(rpath "${libInstallPrefix}") - _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/${PXR_INSTALL_SUBDIR}/lib") - _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/lib") + _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/${PXR_INSTALL_SUBDIR}/${libInstallPrefix}") + _pxr_add_rpath(rpath "${CMAKE_INSTALL_PREFIX}/${libInstallPrefix}") _pxr_install_rpath(rpath ${NAME}) # @@ -1463,14 +1473,14 @@ function(_pxr_library NAME) if(isPlugin) install( TARGETS ${NAME} - LIBRARY DESTINATION ${libInstallPrefix} - ARCHIVE DESTINATION ${libInstallPrefix} - RUNTIME DESTINATION ${libInstallPrefix} + LIBRARY DESTINATION ${pluginInstallPrefix} + ARCHIVE DESTINATION ${pluginInstallPrefix} + RUNTIME DESTINATION ${pluginInstallPrefix} ) if(WIN32) install( FILES $ - DESTINATION ${libInstallPrefix} + DESTINATION ${pluginInstallPrefix} OPTIONAL ) endif() @@ -1495,7 +1505,7 @@ function(_pxr_library NAME) TARGETS ${NAME} EXPORT pxrTargets LIBRARY DESTINATION ${libInstallPrefix} - ARCHIVE DESTINATION ${libInstallPrefix} + ARCHIVE DESTINATION ${libInstallPrefixArchive} RUNTIME DESTINATION ${libInstallPrefix} ) endif() ================================================ FILE: ports/usd/010-cmake_export_plugin_as_modules.patch ================================================ diff --git a/cmake/macros/Private.cmake b/cmake/macros/Private.cmake index 6a3cff1343..67912a498e 100644 --- a/cmake/macros/Private.cmake +++ b/cmake/macros/Private.cmake @@ -1244,11 +1244,16 @@ function(_pxr_library NAME) else() # Building an explicitly shared library or plugin. - add_library(${NAME} - SHARED - ${args_CPPFILES} - ${args_PUBLIC_HEADERS} - ${args_PRIVATE_HEADERS} + if(isPlugin) + add_library(${NAME} MODULE) + else() + add_library(${NAME} SHARED) + endif() + target_sources(${NAME} + PRIVATE + ${args_CPPFILES} + ${args_PUBLIC_HEADERS} + ${args_PRIVATE_HEADERS} ) if(PXR_PY_UNDEFINED_DYNAMIC_LOOKUP) # When not explicitly linking to the python lib we need to allow @@ -1473,6 +1478,7 @@ function(_pxr_library NAME) if(isPlugin) install( TARGETS ${NAME} + EXPORT pxrTargets LIBRARY DESTINATION ${pluginInstallPrefix} ARCHIVE DESTINATION ${pluginInstallPrefix} RUNTIME DESTINATION ${pluginInstallPrefix} ================================================ FILE: ports/usd/portfile.cmake ================================================ # USD plugins do not produce .lib set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) # Proper support for a true static usd build is left as a future port improvement. vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) # zero-pad version components to two digits string(REPLACE "." ";" version_components ${VERSION}) foreach(component IN LISTS version_components) string(LENGTH ${component} component_length) if(component_length LESS 2) list(APPEND USD_VERSION "0${component}") else() list(APPEND USD_VERSION "${component}") endif() endforeach() string(JOIN "." USD_VERSION ${USD_VERSION}) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO PixarAnimationStudios/OpenUSD REF "v${USD_VERSION}" SHA512 3d5dae46c7ae096501dc51b373ba05c8603a1cf16e5054728d41d0c2970b59ce3ee5ec83e1c575b92482bc8cf2c59643df093a9e7aa82bcdd53dada05292720d HEAD_REF release PATCHES 003-fix-dep.patch 004-fix_cmake_package.patch 007-fix_cmake_hgi_interop.patch 008-fix_clang8_compiler_error.patch 009-vcpkg_install_folder_conventions.patch 010-cmake_export_plugin_as_modules.patch ) # Changes accompanying 003-fix-dep.patch file(REMOVE "${SOURCE_PATH}/cmake/modules/FindOpenColorIO.cmake" "${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp" "${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.h" ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES imaging PXR_BUILD_IMAGING imaging PXR_BUILD_USD_IMAGING imaging PXR_ENABLE_GL_SUPPORT materialx PXR_ENABLE_MATERIALX_SUPPORT openimageio PXR_BUILD_OPENIMAGEIO_PLUGIN vulkan PXR_ENABLE_VULKAN_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${FEATURE_OPTIONS} -DPXR_BUILD_DOCUMENTATION:BOOL=OFF -DPXR_BUILD_EXAMPLES:BOOL=OFF -DPXR_BUILD_TESTS:BOOL=OFF -DPXR_BUILD_TUTORIALS:BOOL=OFF -DPXR_BUILD_USD_TOOLS:BOOL=OFF -DPXR_BUILD_ALEMBIC_PLUGIN:BOOL=OFF -DPXR_BUILD_DRACO_PLUGIN:BOOL=OFF -DPXR_BUILD_EMBREE_PLUGIN:BOOL=OFF -DPXR_BUILD_PRMAN_PLUGIN:BOOL=OFF -DPXR_ENABLE_OPENVDB_SUPPORT:BOOL=OFF -DPXR_ENABLE_PTEX_SUPPORT:BOOL=OFF -DPXR_PREFER_SAFETY_OVER_SPEED:BOOL=ON -DPXR_ENABLE_PYTHON_SUPPORT:BOOL=OFF -DPXR_USE_DEBUG_PYTHON:BOOL=OFF MAYBE_UNUSED_VARIABLES PXR_USE_PYTHON_3 PYTHON_EXECUTABLE ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Handle debug path for USD plugins if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB_RECURSE debug_targets "${CURRENT_PACKAGES_DIR}/debug/share/pxr/*-debug.cmake" ) foreach(debug_target IN LISTS debug_targets) file(READ "${debug_target}" contents) string(REPLACE "\${_IMPORT_PREFIX}/usd" "\${_IMPORT_PREFIX}/debug/usd" contents "${contents}") string(REPLACE "\${_IMPORT_PREFIX}/plugin" "\${_IMPORT_PREFIX}/debug/plugin" contents "${contents}") file(WRITE "${debug_target}" "${contents}") endforeach() endif() vcpkg_cmake_config_fixup(PACKAGE_NAME "pxr") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) if(VCPKG_TARGET_IS_WINDOWS) # Move all dlls to bin file(GLOB RELEASE_DLL ${CURRENT_PACKAGES_DIR}/lib/*.dll) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) if(NOT VCPKG_BUILD_TYPE) file(GLOB DEBUG_DLL ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) endif() foreach(CURRENT_FROM ${RELEASE_DLL} ${DEBUG_DLL}) string(REPLACE "/lib/" "/bin/" CURRENT_TO ${CURRENT_FROM}) file(RENAME ${CURRENT_FROM} ${CURRENT_TO}) endforeach() function(file_replace_regex filename match_string replace_string) file(READ ${filename} _contents) string(REGEX REPLACE "${match_string}" "${replace_string}" _contents "${_contents}") file(WRITE ${filename} "${_contents}") endfunction() # fix dll path for cmake if(NOT VCPKG_BUILD_TYPE) file_replace_regex(${CURRENT_PACKAGES_DIR}/share/pxr/pxrTargets-debug.cmake "debug/lib/([a-zA-Z0-9_]+)\\.dll" "debug/bin/\\1.dll") endif() file_replace_regex(${CURRENT_PACKAGES_DIR}/share/pxr/pxrTargets-release.cmake "lib/([a-zA-Z0-9_]+)\\.dll" "bin/\\1.dll") # fix plugInfo.json for runtime file(GLOB_RECURSE PLUGINFO_FILES ${CURRENT_PACKAGES_DIR}/lib/usd/*/resources/plugInfo.json) file(GLOB_RECURSE PLUGINFO_FILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/usd/*/resources/plugInfo.json) foreach(PLUGINFO ${PLUGINFO_FILES} ${PLUGINFO_FILES_DEBUG}) file_replace_regex(${PLUGINFO} [=["LibraryPath": "../../([a-zA-Z0-9_]+).dll"]=] [=["LibraryPath": "../../../bin/\1.dll"]=]) endforeach() endif() # Handle copyright vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE.txt) ================================================ FILE: ports/usd/vcpkg.json ================================================ { "name": "usd", "version": "26.3", "description": "Universal Scene Description (USD) is an efficient, scalable system for authoring, reading, and streaming time-sampled scene description for interchange between graphics applications.", "homepage": "https://github.com/PixarAnimationStudios/OpenUSD", "license": null, "supports": "!x86 & !(arm & windows) & !android", "dependencies": [ "tbb", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "features": { "imaging": { "description": "Enable the imaging components", "dependencies": [ "opengl", { "name": "opensubdiv", "default-features": false, "features": [ { "name": "opengl", "platform": "!osx & !ios" } ] } ] }, "materialx": { "description": "Enable MaterialX support", "dependencies": [ { "name": "materialx", "features": [ "glsl-generator", "render" ] } ] }, "openimageio": { "description": "Build OpenImageIO plugin", "dependencies": [ "openimageio" ] }, "vulkan": { "description": "Enable Vulkan based components", "supports": "!ios", "dependencies": [ "opengl", { "name": "opensubdiv", "default-features": false, "features": [ "opengl" ] }, "shaderc", "vulkan", "vulkan-memory-allocator", "vulkan-utility-libraries" ] } } } ================================================ FILE: ports/usearch/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO unum-cloud/usearch REF "v${VERSION}" SHA512 d2ba01c86a102b23aa2827392bc4759d33cf6bcd7e7a1baa35cff9c2100721726c7bff854d8d06065095d480dc2a8c2245fe7afe404d53b577b7a9c9446fb8c0 HEAD_REF main PATCHES use-vcpkg-ports.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fp16 USEARCH_USE_FP16LIB jemalloc USEARCH_USE_JEMALLOC simsimd USEARCH_USE_SIMSIMD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DUSEARCH_INSTALL=ON -DUSEARCH_BUILD_TEST_CPP=OFF -DUSEARCH_BUILD_BENCH_CPP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/usearch) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/usearch/use-vcpkg-ports.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f6b036..abfca67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,18 +149,6 @@ target_include_directories( ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE} INTERFACE $ $ ) -if (USEARCH_USE_FP16LIB) - target_include_directories( - ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE} INTERFACE $ - $ - ) -endif () -if (USEARCH_USE_SIMSIMD) - target_include_directories( - ${USEARCH_TARGET_NAME} ${USEARCH_SYSTEM_INCLUDE} - INTERFACE $ $ - ) -endif () # Install a pkg-config file, so other tools can find this configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg-config.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc") @@ -220,8 +208,7 @@ if (NOT CMAKE_BUILD_TYPE) endif () # Include directories -set(USEARCH_HEADER_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/fp16/include" - "${CMAKE_CURRENT_SOURCE_DIR}/simsimd/include" +set(USEARCH_HEADER_INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/include" ) # Function to setup target ================================================ FILE: ports/usearch/vcpkg.json ================================================ { "name": "usearch", "version": "2.24.0", "description": "Fastest Search & Clustering engine × for Vectors & Strings", "homepage": "https://github.com/unum-cloud/usearch", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "fp16": { "description": "Use software emulation for half-precision types", "dependencies": [ "fp16" ] }, "jemalloc": { "description": "Use JeMalloc for faster memory allocations", "dependencies": [ "jemalloc" ] }, "simsimd": { "description": "Use SimSIMD hardware-accelerated metrics", "dependencies": [ "simsimd" ] } } } ================================================ FILE: ports/usockets/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(uSockets C CXX) option(WITH_OPENSSL "Enables OpenSSL 1.1+ support") # Upstream compiles all sources at once option(CMAKE_UNITY_BUILD "Combine source for compilation." ON) file(GLOB C_SOURCES src/*.c src/eventing/*.c) add_library(uSockets ${C_SOURCES}) set_target_properties(uSockets PROPERTIES EXPORT_NAME usockets) target_include_directories(uSockets PUBLIC "$" "$" ) if(WITH_OPENSSL) file(GLOB CRYPTO_SOURCES src/crypto/*.c*) target_sources(uSockets PRIVATE ${CRYPTO_SOURCES}) target_compile_features(uSockets PRIVATE cxx_std_17) # https://github.com/uNetworking/uSockets/blob/0ebdde0601cc82349fc11a7c4bbb6dc5c9f28f42/Makefile#L55 find_package(OpenSSL REQUIRED) target_link_libraries(uSockets PRIVATE OpenSSL::SSL OpenSSL::Crypto) target_compile_definitions(uSockets PRIVATE -DLIBUS_USE_OPENSSL) else() target_compile_definitions(uSockets PRIVATE -DLIBUS_NO_SSL) endif() if(WIN32 OR ANDROID) # https://github.com/uNetworking/uSockets/blob/8606de6414a102c55bef8e8ef3391932d7e8df6a/src/libusockets.h#L339-L348 find_package(libuv CONFIG REQUIRED) target_link_libraries(uSockets PRIVATE $,libuv::uv_a,libuv::uv>) target_compile_definitions(uSockets PRIVATE -DLIBUS_USE_LIBUV) if(WIN32) # https://github.com/uNetworking/uSockets/blob/8606de6414a102c55bef8e8ef3391932d7e8df6a/src/libusockets.h#L35 target_link_libraries(uSockets PRIVATE ws2_32) endif() endif() install(TARGETS uSockets EXPORT unofficial-usockets-targets RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(EXPORT unofficial-usockets-targets NAMESPACE unofficial::usockets:: DESTINATION share/unofficial-usockets ) configure_file("unofficial-usockets-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-usockets-config.cmake" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-usockets-config.cmake" DESTINATION share/unofficial-usockets ) install(FILES src/libusockets.h DESTINATION include) ================================================ FILE: ports/usockets/portfile.cmake ================================================ # Upstream only support static compilation, # https://github.com/uNetworking/uSockets/commit/b950efd6b10f06dd3ecb5b692e5d415f48474647 vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uNetworking/uSockets REF "v${VERSION}" SHA512 726b1665209d0006d6621352c12019bbab22bed75450c5ef1509b409d3c19c059caf94775439d3b910676fa2a4a790d490c3e25e5b8141423d88823642be7ac7 HEAD_REF master ) file(COPY "${CURRENT_PORT_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CURRENT_PORT_DIR}/unofficial-usockets-config.cmake" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl WITH_OPENSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-usockets) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/usockets/unofficial-usockets-config.cmake ================================================ include(CMakeFindDependencyMacro) if(WIN32 OR ANDROID) find_dependency(libuv CONFIG) endif() if("@WITH_OPENSSL@") find_dependency(OpenSSL) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-usockets-targets.cmake") ================================================ FILE: ports/usockets/vcpkg.json ================================================ { "name": "usockets", "version": "0.8.8", "port-version": 3, "description": "Miniscule cross-platform eventing, networking & crypto for async applications", "homepage": "https://github.com/uNetworking/uSockets", "license": "Apache-2.0", "dependencies": [ { "name": "libuv", "platform": "windows | android" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "ssl": { "description": "Enable SSL support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/usrsctp/fix_export.patch ================================================ diff --git a/usrsctplib/CMakeLists.txt b/usrsctplib/CMakeLists.txt index aa99cf2..c60b393 100644 --- a/usrsctplib/CMakeLists.txt +++ b/usrsctplib/CMakeLists.txt @@ -174,7 +174,8 @@ list(APPEND usrsctp_sources add_library(usrsctp ${usrsctp_sources} ${usrsctp_headers}) -target_include_directories(usrsctp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_include_directories(usrsctp PUBLIC $ + $) if (WIN32) message(STATUS "link library: ws2_32") @@ -188,8 +189,12 @@ set_target_properties(usrsctp PROPERTIES SOVERSION ${SOVERSION_SHORT} VERSION ${ # INSTALL LIBRARY AND HEADER ################################################# -install(TARGETS usrsctp DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS usrsctp EXPORT unofficial-usrsctp-config + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) install(FILES usrsctp.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(EXPORT unofficial-usrsctp-config NAMESPACE unofficial::usrsctp:: DESTINATION share/unofficial-usrsctp) ################################################# # GENERATE AND INSTALL PKG-CONFIG FILE ================================================ FILE: ports/usrsctp/mingw.diff ================================================ diff --git a/usrsctplib/usrsctp.h b/usrsctplib/usrsctp.h index b719290..3a4759c 100644 --- a/usrsctplib/usrsctp.h +++ b/usrsctplib/usrsctp.h @@ -61,6 +61,8 @@ extern "C" { #ifdef _WIN32 #if defined(_MSC_VER) && _MSC_VER >= 1600 #include +#elif __MINGW32__ +#include #elif defined(SCTP_STDINT_INCLUDE) #include SCTP_STDINT_INCLUDE #else ================================================ FILE: ports/usrsctp/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sctplab/usrsctp REF 0.9.5.0 SHA512 7b28706449f9365ba9750fd39925e7171516a1e3145d123ec69a12486637ae2393ad4c587b056403298dc13c149f0b01a262cbe4852abca42e425d7680c77ee3 HEAD_REF master PATCHES fix_export.patch mingw.diff ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -Dsctp_werror=OFF -Dsctp_build_programs=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") configure_file("${SOURCE_PATH}/LICENSE.md" "${CURRENT_PACKAGES_DIR}/share/usrsctp/copyright" COPYONLY) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT} CONFIG_PATH share/unofficial-${PORT}) ================================================ FILE: ports/usrsctp/vcpkg.json ================================================ { "name": "usrsctp", "version": "0.9.5.0", "port-version": 4, "description": "A userland SCTP stack supporting FreeBSD, Linux, Mac OS X and Windows.", "homepage": "https://github.com/sctplab/usrsctp", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/utf8-range/fix-cmake.patch ================================================ diff --git a/third_party/utf8_range/CMakeLists.txt b/third_party/utf8_range/CMakeLists.txt index 344952d38..dd855df17 100644 --- a/third_party/utf8_range/CMakeLists.txt +++ b/third_party/utf8_range/CMakeLists.txt @@ -63,6 +63,7 @@ if (utf8_range_ENABLE_INSTALL) RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) configure_package_config_file( ================================================ FILE: ports/utf8-range/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" VERSION ${VERSION}) set(VERSION "${CMAKE_MATCH_2}.${CMAKE_MATCH_3}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO protocolbuffers/protobuf REF "v${VERSION}" SHA512 540059a93721447cf4723bcca06e91c43a4399cb366c05bf84e9d8e2c439f3107ba17803f9d912549b54c471f2dcc4c9fc834145ec441dff31ca24f9a3543aa9 HEAD_REF main PATCHES fix-cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/third_party/utf8_range" OPTIONS "-Dutf8_range_ENABLE_TESTS=off" "-Dprotobuf_VERSION=${VERSION}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME "utf8_range" CONFIG_PATH "lib/cmake/utf8_range") vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/third_party/utf8_range/LICENSE") ================================================ FILE: ports/utf8-range/vcpkg.json ================================================ { "name": "utf8-range", "version": "6.33.4", "description": "Fast UTF-8 validation with Range algorithm (NEON+SSE4+AVX2)", "homepage": "https://github.com/protocolbuffers/protobuf", "license": "MIT", "dependencies": [ "abseil", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/utf8h/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sheredom/utf8.h REF 500d4ea9f4c3449e5243c088d8af8700f7189734 SHA512 fbae7dbfd932176058dacb33ea491d17eb8e02c845e1ef2afc0ae482f563578a8a8011a8578f4aa8593bb0d7de8ba2df140bda05859a9a6bd67f6545ca0d7421 HEAD_REF master ) file(COPY "${SOURCE_PATH}/utf8.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/utf8h") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/utf8h/vcpkg.json ================================================ { "name": "utf8h", "version-date": "2021-11-18", "port-version": 1, "description": "Single header utf8 string functions for C and C++", "homepage": "https://github.com/sheredom/utf8.h", "license": "Unlicense" } ================================================ FILE: ports/utf8proc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JuliaLang/utf8proc REF v${VERSION} SHA512 148701fce506d076f03497b6d085f1993eff743debad4a2f6d3cbac91e19a5c22d9938245bdb460c1b22b51842c7416c42124db7416c684ee63d622490baac0e ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DUTF8PROC_ENABLE_TESTING=OFF -DUTF8PROC_INSTALL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/utf8proc) vcpkg_fixup_pkgconfig() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/utf8proc.h" "#ifdef UTF8PROC_STATIC" "#if 1 /* UTF8PROC_STATIC */") if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/utf8proc_static.lib") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libutf8proc.pc" " -lutf8proc" " -lutf8proc_static") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libutf8proc.pc" " -lutf8proc" " -lutf8proc_static") endif() endif() endif() # Legacy file(INSTALL "${CURRENT_PORT_DIR}/unofficial-utf8proc-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-utf8proc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/utf8proc/unofficial-utf8proc-config.cmake ================================================ message(WARNING "find_package(unofficial-utf8proc) is deprecated. utf8proc provides CMake targets: find_package(utf8proc) target_link_libraries(main PRIVATE utf8proc::utf8proc) ") include(CMakeFindDependencyMacro) find_dependency(utf8proc CONFIG) if(NOT TARGET utf8proc) add_library(utf8proc ALIAS utf8proc::utf8proc) endif() ================================================ FILE: ports/utf8proc/vcpkg.json ================================================ { "name": "utf8proc", "version": "2.11.3", "description": "Clean C library for processing UTF-8 Unicode data.", "homepage": "https://github.com/JuliaLang/utf8proc", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/utfcpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO nemtrif/utfcpp REF "v${VERSION}" SHA512 02e2b84b5ea827dfbc7fc1fef52e30d72fb2aca3e81ea7780d0286fe67c49500b3acf8f877af2b5feac81af2244341b9052ffbceed774e5442a8184785207478 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME utf8cpp CONFIG_PATH share/utf8cpp/cmake) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/utfcpp/vcpkg.json ================================================ { "name": "utfcpp", "version": "4.0.9", "description": "UTF-8 with C++ in a Portable Way", "homepage": "https://github.com/nemtrif/utfcpp", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/utfz/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO IMQS/utfz REF v${VERSION} SHA512 d8451c003e658fe342f0f4d6f20114784a671ec59fe04a7c17c8889849110fc8ee5370449bfc9f9816f449bc629d51f6bc4d23e2e4b7bfc9ef6dd41f35a79ba0 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() # Copy the include file file(COPY "${SOURCE_PATH}/utfz.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Handle copyright file(INSTALL "${SOURCE_PATH}/license" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/utfz/vcpkg.json ================================================ { "name": "utfz", "version": "1.3", "description": "A tiny C++ library for parsing and encoding utf-8", "homepage": "https://github.com/IMQS/utfz", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/uthash/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO troydhanson/uthash REF e493aa90a2833b4655927598f169c31cfcdf7861 SHA512 a4a2cdee11b238f57bdc3104eee1b3d2014359b65ada896dd26c7f21dda13921f63b44d3d0e7b6fa03731f64b4b4013861d0a49df8b54d7e3726454cbfebaa39 HEAD_REF master ) file(GLOB uthash_PUBLIC_HEADERS ${SOURCE_PATH}/src/*.h) file(INSTALL ${uthash_PUBLIC_HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/uthash/vcpkg.json ================================================ { "name": "uthash", "version-semver": "2.3.0", "description": "C macros for hash tables and more.", "homepage": "https://troydhanson.github.io/uthash/", "license": "BSD-1-Clause" } ================================================ FILE: ports/uthenticode/openssl.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 90f871d..8fd64b2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,11 +3,7 @@ cmake_minimum_required(VERSION 3.10 FATAL_ERROR) project(uthenticode) find_package(pe-parse REQUIRED) -find_package( - OpenSSL 3.0 - COMPONENTS Crypto - REQUIRED -) +find_package(OpenSSL REQUIRED) add_library("${PROJECT_NAME}" uthenticode.cpp) @@ -32,7 +28,7 @@ set_target_properties("${PROJECT_NAME}" PROPERTIES PUBLIC_HEADER "include/uthent target_link_libraries("${PROJECT_NAME}" PUBLIC pe-parse::pe-parse) -target_link_libraries("${PROJECT_NAME}" PUBLIC OpenSSL::Crypto) +target_link_libraries("${PROJECT_NAME}" PUBLIC OpenSSL::SSL OpenSSL::Crypto) install( TARGETS "${PROJECT_NAME}" diff --git a/src/include/uthenticode.h b/src/include/uthenticode.h index 223d662..07e5bc3 100644 --- a/src/include/uthenticode.h +++ b/src/include/uthenticode.h @@ -48,6 +48,7 @@ DECLARE_ASN1_FUNCTIONS(Authenticode_SpcIndirectDataContent) * So we wrap it here for use with unique_ptr. */ void OpenSSL_free(void *ptr); +void SK_X509_free(stack_st_X509 *ptr); /* Since OpenSSL 3.0.0 SK_X509_free is defined as a macro, which we can't use with decltype. * So we wrap it here for use with unique_ptr. ================================================ FILE: ports/uthenticode/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO trailofbits/uthenticode REF "v${VERSION}" SHA512 447c1edd2fcd7ba6e960ef5caf32f2b0b9b8bd6b83e5ec02313ff6ae2063bc37a4c250cfdcd57d0717ba93f783c4c8390280edd54a2f63f53c4185faeab6610a HEAD_REF master PATCHES openssl.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/uthenticode) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/uthenticode/vcpkg.json ================================================ { "name": "uthenticode", "version": "2.0.1", "port-version": 1, "description": "A cross-platform library for verifying Authenticode signatures", "homepage": "https://github.com/trailofbits/uthenticode", "supports": "!uwp", "dependencies": [ "openssl", "pe-parse", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/uvatlas/portfile.cmake ================================================ set(UVATLAS_TAG oct2025) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/UVAtlas REF ${UVATLAS_TAG} SHA512 fab41c955944f1ca39d23e08e7d9addd04f018a26aba393b74d6e6631403d369b1134395e514b02f90ef70a21fbef0c2550e246575206b6b389af7182e052f8f HEAD_REF main ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES eigen ENABLE_USE_EIGEN spectre ENABLE_SPECTRE_MITIGATION tools BUILD_TOOLS ) if (VCPKG_HOST_IS_LINUX) message(WARNING "Build ${PORT} requires GCC version 9 or later") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH share/uvatlas) if("tools" IN_LIST FEATURES) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/uvatlas/") if((VCPKG_TARGET_ARCHITECTURE STREQUAL x64) AND (NOT ("eigen" IN_LIST FEATURES))) vcpkg_download_distfile( UVATLASTOOL_EXE URLS "https://github.com/Microsoft/UVAtlas/releases/download/${UVATLAS_TAG}/uvatlastool.exe" FILENAME "uvatlastool-${UVATLAS_TAG}.exe" SHA512 f751a4b26388a582aa80a4491a58b7b65b78ebd0607f824e15a1deff8239d96c934f6ebe06537d4cfe3e0a5280f16d28c801db0bce1125fb315d861d96d7c47e ) file(INSTALL "${UVATLASTOOL_EXE}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/uvatlas/") file(RENAME "${CURRENT_PACKAGES_DIR}/tools/uvatlas/uvatlastool-${UVATLAS_TAG}.exe" "${CURRENT_PACKAGES_DIR}/tools/uvatlas/uvatlastool.exe") else() vcpkg_copy_tools( TOOL_NAMES uvatlastool SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin" ) endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/uvatlas/usage ================================================ The UVAtlas package provides CMake targets: find_package(uvatlas CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::UVAtlas) ================================================ FILE: ports/uvatlas/vcpkg.json ================================================ { "name": "uvatlas", "version-date": "2025-10-28", "description": "UVAtlas isochart texture atlas", "homepage": "https://github.com/Microsoft/UVAtlas", "documentation": "https://github.com/Microsoft/UVAtlas/wiki", "license": "MIT", "supports": "(windows & !arm32) | linux", "dependencies": [ { "name": "directx-headers", "platform": "mingw | linux" }, "directxmath", { "name": "ms-gdkx", "platform": "xbox" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "eigen": { "description": "Use Eigen & Spectra for eigen-value computations", "dependencies": [ "eigen3", "spectra" ] }, "spectre": { "description": "Build Spectre-mitigated library" }, "tools": { "description": "uvatlas command-line tool", "supports": "windows & !uwp & !xbox", "dependencies": [ { "name": "directxmesh", "default-features": false }, { "name": "directxtex", "default-features": false } ] } } } ================================================ FILE: ports/uvw/fix-find-libuv.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2be8ae8..cda1957 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -194,6 +194,13 @@ if (BUILD_UVW_LIBS) ) endif() +find_package(libuv CONFIG REQUIRED) +if (TARGET libuv::uv) + target_link_libraries(uvw PRIVATE libuv::uv) +else() + target_link_libraries(uvw PRIVATE libuv::uv_a) +endif() + install( EXPORT uvwConfig NAMESPACE uvw:: ================================================ FILE: ports/uvw/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO skypjack/uvw REF "v${VERSION}_libuv_v1.48" SHA512 dbf03c63b0693263b77b405e8f6bf4c207795be9bd024bbc06484e523b55257add1eab632067a956d03399d91ee389c46312603e7754b152c4caf51b40f6bec4 PATCHES fix-find-libuv.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_UVW_LIBS=ON -DBUILD_UVW_SHARED_LIB=OFF -DFETCH_LIBUV=OFF -DFIND_LIBUV=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/uvw) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/uvw/config.h" "#ifndef UVW_AS_LIB" "#define UVW_AS_LIB\n#ifndef UVW_AS_LIB") file(READ "${CURRENT_PACKAGES_DIR}/share/uvw/uvwConfig.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/uvw/uvwConfig.cmake" "include(CMakeFindDependencyMacro) find_dependency(libuv) ${cmake_config} ") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/uvw/usage ================================================ uvw provides CMake targets: find_package(uvw CONFIG REQUIRED) target_link_libraries(main PRIVATE uvw::uvw) ================================================ FILE: ports/uvw/vcpkg.json ================================================ { "name": "uvw", "version": "3.4.0", "description": "A compilable static library, event based, tiny and easy to use libuv wrapper in modern C++.", "homepage": "https://github.com/skypjack/uvw", "license": "MIT", "dependencies": [ "libuv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/uwebsockets/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO uNetworking/uWebSockets REF "v${VERSION}" SHA512 33a5f01dc1247a86f7ccfdcbf87cb5abbbb230a2e5a13aa8128944de4742d6e2e1a3d1b84fa37945cadaca7f867e3e11ec25df9734d6732ee9000f4fb3eb4b06 HEAD_REF master ) file(COPY "${SOURCE_PATH}/src" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(RENAME "${CURRENT_PACKAGES_DIR}/include/src" "${CURRENT_PACKAGES_DIR}/include/uwebsockets") set(UWS_NO_LIBDEFLATE 1) if("libdeflate" IN_LIST FEATURES) set(UWS_NO_LIBDEFLATE 0) endif() set(UWS_NO_ZLIB 1) if("zlib" IN_LIST FEATURES) set(UWS_NO_ZLIB 0) endif() set(UWS_NO_SIMDUTF 1) if("simdutf" IN_LIST FEATURES) set(UWS_NO_SIMDUTF 0) endif() configure_file("${CURRENT_PORT_DIR}/unofficial-uwebsockets-config.cmake" "${CURRENT_PACKAGES_DIR}/share/unofficial-uwebsockets/unofficial-uwebsockets-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/uwebsockets/unofficial-uwebsockets-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(unofficial-usockets CONFIG) if(NOT "@UWS_NO_LIBDEFLATE@") find_dependency(libdeflate) endif() if(NOT "@UWS_NO_ZLIB@") find_dependency(ZLIB) endif() if(NOT "@UWS_NO_SIMDUTF@") find_dependency(simdutf) endif() if(NOT TARGET unofficial::uwebsockets::uwebsockets) add_library(unofficial::uwebsockets::uwebsockets INTERFACE IMPORTED) target_compile_features(unofficial::uwebsockets::uwebsockets INTERFACE cxx_std_17) get_filename_component(_uws_include_dir "../../include" ABSOLUTE BASE_DIR "${CMAKE_CURRENT_LIST_DIR}") target_include_directories(unofficial::uwebsockets::uwebsockets INTERFACE "${_uws_include_dir}") unset(_uws_include_dir) target_link_libraries(unofficial::uwebsockets::uwebsockets INTERFACE $) if(NOT "@UWS_NO_LIBDEFLATE@") target_compile_definitions(unofficial::uwebsockets::uwebsockets INTERFACE UWS_USE_LIBDEFLATE) target_link_libraries(unofficial::uwebsockets::uwebsockets INTERFACE $,libdeflate::libdeflate_shared,libdeflate::libdeflate_static>) endif() if("@UWS_NO_ZLIB@") target_compile_definitions(unofficial::uwebsockets::uwebsockets INTERFACE UWS_NO_ZLIB) else() target_link_libraries(unofficial::uwebsockets::uwebsockets INTERFACE ZLIB::ZLIB) endif() if(NOT "@UWS_NO_SIMDUTF@") target_compile_definitions(unofficial::uwebsockets::uwebsockets INTERFACE UWS_USE_SIMDUTF) target_link_libraries(unofficial::uwebsockets::uwebsockets INTERFACE simdutf::simdutf) endif() endif() ================================================ FILE: ports/uwebsockets/vcpkg.json ================================================ { "name": "uwebsockets", "version-semver": "20.75.0", "description": "Simple, secure & standards compliant web I/O for the most demanding of applications", "homepage": "https://github.com/uWebSockets/uWebSockets", "license": "Apache-2.0", "dependencies": [ "usockets" ], "features": { "libdeflate": { "description": "Enable libdeflate support", "dependencies": [ "libdeflate" ] }, "simdutf": { "description": "Enable simdutf support", "dependencies": [ "simdutf" ] }, "ssl": { "description": "Enable SSL support", "dependencies": [ { "name": "usockets", "features": [ "ssl" ] } ] }, "zlib": { "description": "Enable ZLIB support", "dependencies": [ "zlib" ] } } } ================================================ FILE: ports/v-hacd/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kmammou/v-hacd REF "v${VERSION}" SHA512 b974c490897a1901d6975c75222a167a70f9e2a37e0c548aeb6a346cb0154ec1415947d47d69a729c0c4d9345aed70d3c09d4bf297beacfae66ceb4c8c89c6d0 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/VHACD.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/v-hacd/vcpkg.json ================================================ { "name": "v-hacd", "version": "4.1.0", "description": "The V-HACD library decomposes a 3D surface into a set of \"near\" convex parts.", "homepage": "https://github.com/kmammou/v-hacd", "supports": "!arm" } ================================================ FILE: ports/v8/V8Config-shared.cmake ================================================ 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() include(SelectLibraryConfigurations) find_path(V8_INCLUDE_DIR NAMES v8.h PATH_SUFFIXES include) if(EXISTS ${_IMPORT_PREFIX}/bin/snapshot_blob.bin) set(V8_SNAPSHOT_BLOB_RELEASE ${_IMPORT_PREFIX}/bin/snapshot_blob.bin CACHE FILEPATH "Release version of V8 snapshot blob location") endif() if(EXISTS ${_IMPORT_PREFIX}/debug/bin/snapshot_blob.bin) set(V8_SNAPSHOT_BLOB_DEBUG ${_IMPORT_PREFIX}/debug/bin/snapshot_blob.bin CACHE FILEPATH "Debug version of V8 snapshot blob location") endif() set(V8_SNAPSHOT_BLOB "$,${V8_SNAPSHOT_BLOB_DEBUG},${V8_SNAPSHOT_BLOB_RELEASE}>") if(EXISTS "${_IMPORT_PREFIX}/lib/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8_LIBRARY_RELEASE "${_IMPORT_PREFIX}/lib/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Release version of the V8 library location") endif() if(EXISTS "${_IMPORT_PREFIX}/debug/lib/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8_LIBRARY_DEBUG "${_IMPORT_PREFIX}/debug/lib/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Debug version of the V8 library location") endif() select_library_configurations(V8) if(EXISTS "${_IMPORT_PREFIX}/lib/v8_libbase${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8LIBBASE_LIBRARY_RELEASE "${_IMPORT_PREFIX}/lib/v8_libbase${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Release version of the V8 libbase library location") endif() if(EXISTS "${_IMPORT_PREFIX}/debug/lib/v8_libbase${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8LIBBASE_LIBRARY_DEBUG "${_IMPORT_PREFIX}/debug/lib/v8_libbase${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Debug version of the V8 libbase library location") endif() select_library_configurations(V8LIBBASE) if(EXISTS "${_IMPORT_PREFIX}/lib/v8_libplatform${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8LIBPLATFORM_LIBRARY_RELEASE "${_IMPORT_PREFIX}/lib/v8_libplatform${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Release version of the V8 libplatform library location") endif() if(EXISTS "${_IMPORT_PREFIX}/debug/lib/v8_libplatform${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8LIBPLATFORM_LIBRARY_DEBUG "${_IMPORT_PREFIX}/debug/lib/v8_libplatform${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Delete version of the V8 libplatform library location") endif() select_library_configurations(V8LIBPLATFORM) mark_as_advanced(V8_INCLUDE_DIR) if(V8_INCLUDE_DIR AND EXISTS "${V8_INCLUDE_DIR}/v8-version.h") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_MAJOR_VERSION REGEX "^#define V8_MAJOR_VERSION [0-9]+.*$") string(REGEX REPLACE "^#define V8_MAJOR_VERSION ([0-9]+).*$" "\\1" V8_MAJOR_VERSION "${V8_MAJOR_VERSION}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_MINOR_VERSION REGEX "^#define V8_MINOR_VERSION [0-9]+.*$") string(REGEX REPLACE "^#define V8_MINOR_VERSION ([0-9]+).*$" "\\1" V8_MINOR_VERSION "${V8_MINOR_VERSION}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_BUILD_NUMBER REGEX "^#define V8_BUILD_NUMBER [0-9]+.*$") string(REGEX REPLACE "^#define V8_BUILD_NUMBER ([0-9]+).*$" "\\1" V8_BUILD_NUMBER "${V8_BUILD_NUMBER}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_PATCH_LEVEL REGEX "^#define V8_PATCH_LEVEL [0-9]+.*$") string(REGEX REPLACE "^#define V8_PATCH_LEVEL ([0-9]+).*$" "\\1" V8_PATCH_LEVEL "${V8_PATCH_LEVEL}") set(V8_VERSION_STRING "${V8_MAJOR_VERSION}.${V8_MINOR_VERSION}.${V8_BUILD_NUMBER}.${V8_PATCH_LEVEL}") endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(V8_COMPILE_DEFINITIONS "V8_COMPRESS_POINTERS;V8_31BIT_SMIS_ON_64BIT_ARCH") elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) set(V8_COMPILE_DEFINITIONS " ") endif() mark_as_advanced(V8_COMPILE_DEFINITIONS) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(V8 REQUIRED_VARS V8_LIBRARY V8LIBBASE_LIBRARY V8LIBPLATFORM_LIBRARY V8_INCLUDE_DIR V8_COMPILE_DEFINITIONS VERSION_VAR V8_VERSION_STRING) set(V8_LIBRARIES ${V8_LIBRARY} ${V8LIBBASE_LIBRARY} ${V8LIBPLATFORM_LIBRARY}) mark_as_advanced(V8_LIBRARIES) if(NOT TARGET V8::V8) add_library(V8::V8 SHARED IMPORTED) set_target_properties(V8::V8 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${V8_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${V8_COMPILE_DEFINITIONS}") if(V8_LIBRARY_RELEASE) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(V8::V8 PROPERTIES IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" IMPORTED_IMPLIB_RELEASE "${V8_LIBRARY_RELEASE}" ) set_target_properties(V8::V8 PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "${V8LIBBASE_LIBRARY_RELEASE};${V8LIBPLATFORM_LIBRARY_RELEASE}") endif() if(V8_LIBRARY_DEBUG) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(V8::V8 PROPERTIES IMPORTED_LOCATION_DEBUG "${_IMPORT_PREFIX}/debug/bin/v8${CMAKE_SHARED_LIBRARY_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}" IMPORTED_IMPLIB_DEBUG "${V8_LIBRARY_DEBUG}") set_target_properties(V8::V8 PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "${V8LIBBASE_LIBRARY_DEBUG};${V8LIBPLATFORM_LIBRARY_DEBUG}") endif() if(NOT V8_LIBRARY_RELEASE AND NOT V8_LIBRARY_DEBUG) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_IMPLIB "${V8_LIBRARY}") set_target_properties(V8::V8 PROPERTIES IMPORTED_LINK_INTERFACE_LIBRARIES "${V8LIBBASE_LIBRARY};${V8LIBPLATFORM_LIBRARY}") endif() endif() ================================================ FILE: ports/v8/V8Config-static.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(ICU REQUIRED COMPONENTS in uc dt) find_dependency(ZLIB REQUIRED) if(UNIX) find_package(PkgConfig REQUIRED) pkg_check_modules(GLIB2 glib-2.0 gobject-2.0 gmodule-2.0 gio-2.0 IMPORTED_TARGET) set(V8_IMPORTED_LINK_INTERFACE_LIBRARIES "ICU::in;ICU::uc;ICU::dt;ZLIB::ZLIB") elseif(WIN32) set(V8_IMPORTED_LINK_INTERFACE_LIBRARIES "Winmm;DbgHelp;ZLIB::ZLIB;ICU::in;ICU::uc;ICU::dt") endif() 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) if(_IMPORT_PREFIX STREQUAL "/") set(_IMPORT_PREFIX "") endif() include(SelectLibraryConfigurations) find_path(V8_INCLUDE_DIR NAMES v8.h PATH_SUFFIXES include) if(EXISTS "${_IMPORT_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}v8_monolith${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8_LIBRARY_RELEASE "${_IMPORT_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}v8_monolith${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Release version of the V8 library location") endif() if(EXISTS "${_IMPORT_PREFIX}/debug/lib/${CMAKE_STATIC_LIBRARY_PREFIX}v8_monolith${CMAKE_STATIC_LIBRARY_SUFFIX}") set(V8_LIBRARY_DEBUG "${_IMPORT_PREFIX}/debug/lib/${CMAKE_STATIC_LIBRARY_PREFIX}v8_monolith${CMAKE_STATIC_LIBRARY_SUFFIX}" CACHE FILEPATH "Debug version of the V8 library location") endif() select_library_configurations(V8) mark_as_advanced(V8_INCLUDE_DIR) if(V8_INCLUDE_DIR AND EXISTS "${V8_INCLUDE_DIR}/v8-version.h") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_MAJOR_VERSION REGEX "^#define V8_MAJOR_VERSION [0-9]+.*$") string(REGEX REPLACE "^#define V8_MAJOR_VERSION ([0-9]+).*$" "\\1" V8_MAJOR_VERSION "${V8_MAJOR_VERSION}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_MINOR_VERSION REGEX "^#define V8_MINOR_VERSION [0-9]+.*$") string(REGEX REPLACE "^#define V8_MINOR_VERSION ([0-9]+).*$" "\\1" V8_MINOR_VERSION "${V8_MINOR_VERSION}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_BUILD_NUMBER REGEX "^#define V8_BUILD_NUMBER [0-9]+.*$") string(REGEX REPLACE "^#define V8_BUILD_NUMBER ([0-9]+).*$" "\\1" V8_BUILD_NUMBER "${V8_BUILD_NUMBER}") file(STRINGS "${V8_INCLUDE_DIR}/v8-version.h" V8_PATCH_LEVEL REGEX "^#define V8_PATCH_LEVEL [0-9]+.*$") string(REGEX REPLACE "^#define V8_PATCH_LEVEL ([0-9]+).*$" "\\1" V8_PATCH_LEVEL "${V8_PATCH_LEVEL}") set(V8_VERSION_STRING "${V8_MAJOR_VERSION}.${V8_MINOR_VERSION}.${V8_BUILD_NUMBER}.${V8_PATCH_LEVEL}") endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) set(V8_COMPILE_DEFINITIONS "V8_COMPRESS_POINTERS;V8_31BIT_SMIS_ON_64BIT_ARCH") else() set(V8_COMPILE_DEFINITIONS " ") endif() mark_as_advanced(V8_COMPILE_DEFINITIONS) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(V8 REQUIRED_VARS V8_LIBRARY V8_INCLUDE_DIR V8_COMPILE_DEFINITIONS VERSION_VAR V8_VERSION_STRING) set(V8_LIBRARIES ${V8_LIBRARY}) mark_as_advanced(V8_LIBRARIES) if(NOT TARGET V8::V8) add_library(V8::V8 STATIC IMPORTED) set_target_properties(V8::V8 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${V8_INCLUDE_DIR}" INTERFACE_COMPILE_DEFINITIONS "${V8_COMPILE_DEFINITIONS}") if(MSVC) set_target_properties(V8::V8 PROPERTIES INTERFACE_COMPILE_OPTIONS "/MT$<$:d>") endif() if(V8_LIBRARY_RELEASE) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(V8::V8 PROPERTIES IMPORTED_LOCATION_RELEASE "${V8_LIBRARY_RELEASE}" IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE "${V8_IMPORTED_LINK_INTERFACE_LIBRARIES}") endif() if(V8_LIBRARY_DEBUG) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) set_target_properties(V8::V8 PROPERTIES IMPORTED_LOCATION_DEBUG "${V8_LIBRARY_DEBUG}" IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG "${V8_IMPORTED_LINK_INTERFACE_LIBRARIES}") endif() if(NOT V8_LIBRARY_RELEASE AND NOT V8_LIBRARY_DEBUG) set_property(TARGET V8::V8 APPEND PROPERTY IMPORTED_LOCATION "${V8_LIBRARY}" IMPORTED_LINK_INTERFACE_LIBRARIES "${V8_IMPORTED_LINK_INTERFACE_LIBRARIES}") endif() endif() ================================================ FILE: ports/v8/build.patch ================================================ diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gn index 1904a2559..e66586c88 100644 --- a/config/compiler/BUILD.gn +++ b/config/compiler/BUILD.gn @@ -1571,6 +1571,7 @@ config("default_warnings") { # Disables. "-Wno-missing-field-initializers", # "struct foo f = {0};" "-Wno-unused-parameter", # Unused function parameters. + "-Wno-invalid-offsetof", # Use of "conditionally-supported" offsetof in c++17 ] } @@ -1987,8 +1988,17 @@ config("no_incompatible_pointer_warnings") { # Shared settings for both "optimize" and "optimize_max" configs. # IMPORTANT: On Windows "/O1" and "/O2" must go before the common flags. if (is_win) { - common_optimize_on_cflags = [ - "/Ob2", # Both explicit and auto inlining. + common_optimize_on_cflags = [] + if(is_clang) { + common_optimize_on_cflags += [ + "/Ob2", # Both explicit and auto inlining. + ] + } else { + common_optimize_on_cflags += [ + "/Ob3", # Both explicit and auto inlining. + ] + } + common_optimize_on_cflags += [ "/Oy-", # Disable omitting frame pointers, must be after /O2. "/Zc:inline", # Remove unreferenced COMDAT (faster links). ] diff --git a/config/linux/pkg-config.py b/config/linux/pkg-config.py index 5adf70cc3..dab159f98 100755 --- a/config/linux/pkg-config.py +++ b/config/linux/pkg-config.py @@ -41,6 +41,11 @@ from optparse import OptionParser # Additionally, you can specify the option --atleast-version. This will skip # the normal outputting of a dictionary and instead print true or false, # depending on the return value of pkg-config for the given package. +# +# --pkg_config_libdir= allows direct override +# of the PKG_CONFIG_LIBDIR environment library. +# +# --full-path-libs causes lib names to include their full path. def SetConfigPath(options): @@ -105,11 +110,32 @@ def RewritePath(path, strip_prefix, sysroot): return path +flag_regex = re.compile("(-.)(.+)") + + +def FlagReplace(matchobj): + if matchobj.group(1) == '-I': + return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") + if matchobj.group(1) == '-L': + return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8") + if matchobj.group(1) == '-l': + return matchobj.group(1) + matchobj.group(2) + '.lib' + return matchobj.group(0) + + +def ConvertGCCToMSVC(flags): + """Rewrites GCC flags into MSVC flags.""" + # need a better way to determine mingw vs msvc build + if 'win32' not in sys.platform or "GCC" in sys.version: + return flags + return [ flag_regex.sub(FlagReplace,flag) for flag in flags] + + def main(): # If this is run on non-Linux platforms, just return nothing and indicate # success. This allows us to "kind of emulate" a Linux build from other # platforms. - if "linux" not in sys.platform: + if "linux" not in sys.platform and 'win32' not in sys.platform: print("[[],[],[],[],[]]") return 0 @@ -128,6 +154,9 @@ def main(): parser.add_option('--dridriverdir', action='store_true', dest='dridriverdir') parser.add_option('--version-as-components', action='store_true', dest='version_as_components') + parser.add_option('--pkg_config_libdir', action='store', dest='pkg_config_libdir', + type='string') + parser.add_option('--full-path-libs', action='store_true', dest='full_path_libs') (options, args) = parser.parse_args() # Make a list of regular expressions to strip out. @@ -144,6 +173,10 @@ def main(): else: prefix = '' + # Override PKG_CONFIG_LIBDIR + if options.pkg_config_libdir: + os.environ['PKG_CONFIG_LIBDIR'] = options.pkg_config_libdir + if options.atleast_version: # When asking for the return value, just run pkg-config and print the return # value, no need to do other work. @@ -203,7 +236,7 @@ def main(): # For now just split on spaces to get the args out. This will break if # pkgconfig returns quoted things with spaces in them, but that doesn't seem # to happen in practice. - all_flags = flag_string.strip().split(' ') + all_flags = ConvertGCCToMSVC(flag_string.strip().split(' ')) sysroot = options.sysroot @@ -220,7 +253,10 @@ def main(): continue; if flag[:2] == '-l': - libs.append(RewritePath(flag[2:], prefix, sysroot)) + library = RewritePath(flag[2:], prefix, sysroot) + # Skip math library on MSVC + if library != 'm.lib': + libs.append(library) elif flag[:2] == '-L': lib_dirs.append(RewritePath(flag[2:], prefix, sysroot)) elif flag[:2] == '-I': @@ -237,6 +273,14 @@ def main(): else: cflags.append(flag) + if options.full_path_libs: + full_path_libs = [] + for lib_dir in lib_dirs: + for lib in libs: + if os.path.isfile(lib_dir+"/"+lib): + full_path_libs.append(lib_dir+"/"+lib) + libs = full_path_libs + # Output a GN array, the first one is the cflags, the second are the libs. The # JSON formatter prints GN compatible lists when everything is a list of # strings. diff --git a/config/linux/pkg_config.gni b/config/linux/pkg_config.gni index 428e44ac0..a0d2175ee 100644 --- a/config/linux/pkg_config.gni +++ b/config/linux/pkg_config.gni @@ -45,6 +45,9 @@ declare_args() { # in similar fashion by setting the `system_libdir` variable in the build's # args.gn file to 'lib' or 'lib64' as appropriate for the target architecture. system_libdir = "lib" + + # Allow directly overriding the PKG_CONFIG_LIBDIR enviroment variable + pkg_config_libdir = "" } pkg_config_script = "//build/config/linux/pkg-config.py" @@ -87,6 +90,17 @@ if (host_pkg_config != "") { host_pkg_config_args = pkg_config_args } +if (pkg_config_libdir != "") { + pkg_config_args += [ + "--pkg_config_libdir", + pkg_config_libdir, + ] + host_pkg_config_args += [ + "--pkg_config_libdir", + pkg_config_libdir, + ] +} + template("pkg_config") { assert(defined(invoker.packages), "Variable |packages| must be defined to be a list in pkg_config.") diff --git a/util/lastchange.py b/util/lastchange.py index 02a36642b..78934f1b0 100755 --- a/util/lastchange.py +++ b/util/lastchange.py @@ -192,7 +192,10 @@ def GetGitTopDirectory(source_dir): Returns: The output of "git rev-parse --show-toplevel" as a string """ - return _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) + directory = _RunGitCommand(source_dir, ['rev-parse', '--show-toplevel']) + if "GCC" in sys.version and sys.platform=='win32': + return subprocess.check_output(["cygpath", "-w", directory]).strip(b"\n").decode() + return directory def WriteIfChanged(file_name, contents): ================================================ FILE: ports/v8/icu.gn ================================================ import("//build/config/linux/pkg_config.gni") declare_args() { # Tells icu to load an external data file rather than rely on the icudata # being linked directly into the binary. icu_use_data_file = true # If true, compile icu into a standalone static library. Currently this is # only useful on Chrome OS. icu_disable_thin_archive = false } pkg_config("system_icui18n") { packages = [ "icu-i18n" ] if (is_win) { extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU } } pkg_config("system_icuuc") { packages = [ "icu-uc" ] if (is_win) { extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU } } group("icu") { public_deps = [ ":icui18n", ":icuuc", ] } config("icu_config") { defines = [ "USING_SYSTEM_ICU=1", ] if(is_win){ if(!is_component_build) { ldflags = ["/ignore:4099"] # needed on CI builds } defines += [ "UCHAR_TYPE=wchar_t" ] } else{ defines += [ "UCHAR_TYPE=uint16_t" ] } if (icu_use_data_file) { defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ] } else { defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ] } } source_set("icui18n") { public_configs = [ ":icu_config", ":system_icui18n" ] } source_set("icuuc") { public_configs = [ ":icu_config", ":system_icuuc" ] } source_set("icudata") { public_configs = [ ":icu_config", ] } ================================================ FILE: ports/v8/portfile.cmake ================================================ vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() set(pkgver "9.1.269.39") set(ENV{DEPOT_TOOLS_WIN_TOOLCHAIN} 0) get_filename_component(GIT_PATH ${GIT} DIRECTORY) vcpkg_find_acquire_program(PYTHON2) get_filename_component(PYTHON2_PATH ${PYTHON2} DIRECTORY) vcpkg_find_acquire_program(GN) get_filename_component(GN_PATH ${GN} DIRECTORY) vcpkg_find_acquire_program(NINJA) get_filename_component(NINJA_PATH ${NINJA} DIRECTORY) vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") vcpkg_add_to_path(PREPEND "${GIT_PATH}") vcpkg_add_to_path(PREPEND "${PYTHON2_PATH}") vcpkg_add_to_path(PREPEND "${GN_PATH}") vcpkg_add_to_path(PREPEND "${NINJA_PATH}") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_acquire_msys(MSYS_ROOT PACKAGES pkg-config) vcpkg_add_to_path("${MSYS_ROOT}/usr/bin") endif() set(VCPKG_KEEP_ENV_VARS PATH;DEPOT_TOOLS_WIN_TOOLCHAIN) function(v8_fetch) set(oneValueArgs DESTINATION URL REF SOURCE) set(multipleValuesArgs PATCHES) cmake_parse_arguments(V8 "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN}) if(NOT DEFINED V8_DESTINATION) message(FATAL_ERROR "DESTINATION must be specified.") endif() if(NOT DEFINED V8_URL) message(FATAL_ERROR "The git url must be specified") endif() if(NOT DEFINED V8_REF) message(FATAL_ERROR "The git ref must be specified.") endif() if(EXISTS ${V8_SOURCE}/${V8_DESTINATION}) vcpkg_execute_required_process( COMMAND ${GIT} reset --hard WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION} LOGNAME build-${TARGET_TRIPLET}) else() vcpkg_execute_required_process( COMMAND ${GIT} clone --depth 1 ${V8_URL} ${V8_DESTINATION} WORKING_DIRECTORY ${V8_SOURCE} LOGNAME build-${TARGET_TRIPLET}) vcpkg_execute_required_process( COMMAND ${GIT} fetch --depth 1 origin ${V8_REF} WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION} LOGNAME build-${TARGET_TRIPLET}) vcpkg_execute_required_process( COMMAND ${GIT} checkout FETCH_HEAD WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION} LOGNAME build-${TARGET_TRIPLET}) endif() foreach(PATCH ${V8_PATCHES}) vcpkg_execute_required_process( COMMAND ${GIT} apply ${PATCH} WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION} LOGNAME build-${TARGET_TRIPLET}) endforeach() endfunction() vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH URL https://chromium.googlesource.com/v8/v8.git REF 7d3d62c91f69a702e5aa54c6b4dbbaa883683717 PATCHES ${CURRENT_PORT_DIR}/v8.patch ) message(STATUS "Fetching submodules") v8_fetch( DESTINATION build URL https://chromium.googlesource.com/chromium/src/build.git REF fd86d60f33cbc794537c4da2ef7e298d7f81138e SOURCE ${SOURCE_PATH} PATCHES ${CURRENT_PORT_DIR}/build.patch) v8_fetch( DESTINATION third_party/zlib URL https://chromium.googlesource.com/chromium/src/third_party/zlib.git REF 156be8c52f80cde343088b4a69a80579101b6e67 SOURCE ${SOURCE_PATH}) v8_fetch( DESTINATION base/trace_event/common URL https://chromium.googlesource.com/chromium/src/base/trace_event/common.git REF dab187b372fc17e51f5b9fad8201813d0aed5129 SOURCE ${SOURCE_PATH}) v8_fetch( DESTINATION third_party/googletest/src URL https://chromium.googlesource.com/external/github.com/google/googletest.git REF 10b1902d893ea8cc43c69541d70868f91af3646b SOURCE ${SOURCE_PATH}) v8_fetch( DESTINATION third_party/jinja2 URL https://chromium.googlesource.com/chromium/src/third_party/jinja2.git REF b41863e42637544c2941b574c7877d3e1f663e25 SOURCE ${SOURCE_PATH}) v8_fetch( DESTINATION third_party/markupsafe URL https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git REF 8f45f5cfa0009d2a70589bcda0349b8cb2b72783 SOURCE ${SOURCE_PATH}) vcpkg_execute_required_process( COMMAND ${PYTHON2} build/util/lastchange.py -o build/util/LASTCHANGE WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME build-${TARGET_TRIPLET} ) file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party/icu") configure_file("${CURRENT_PORT_DIR}/zlib.gn" "${SOURCE_PATH}/third_party/zlib/BUILD.gn" COPYONLY) configure_file("${CURRENT_PORT_DIR}/icu.gn" "${SOURCE_PATH}/third_party/icu/BUILD.gn" COPYONLY) file(WRITE "${SOURCE_PATH}/build/config/gclient_args.gni" "checkout_google_benchmark = false\n") if(VCPKG_TARGET_IS_WINDOWS) string(REGEX REPLACE "\\\\+$" "" WindowsSdkDir $ENV{WindowsSdkDir}) file(APPEND "${SOURCE_PATH}/build/config/gclient_args.gni" "windows_sdk_path = \"${WindowsSdkDir}\"\n") endif() if(VCPKG_TARGET_IS_LINUX) set(UNIX_CURRENT_INSTALLED_DIR ${CURRENT_INSTALLED_DIR}) set(LIBS "-ldl -lpthread") set(REQUIRES ", gmodule-2.0, gobject-2.0, gthread-2.0") elseif(VCPKG_TARGET_IS_WINDOWS) execute_process(COMMAND cygpath "${CURRENT_INSTALLED_DIR}" OUTPUT_VARIABLE UNIX_CURRENT_INSTALLED_DIR) string(STRIP ${UNIX_CURRENT_INSTALLED_DIR} UNIX_CURRENT_INSTALLED_DIR) set(LIBS "-lWinmm -lDbgHelp") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(is_component_build true) set(v8_monolithic false) set(v8_use_external_startup_data true) set(targets :v8_libbase :v8_libplatform :v8) else() set(is_component_build false) set(v8_monolithic true) set(v8_use_external_startup_data false) set(targets :v8_monolith) endif() message(STATUS "Generating v8 build files. Please wait...") vcpkg_gn_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "is_component_build=${is_component_build} target_cpu=\"${VCPKG_TARGET_ARCHITECTURE}\" v8_monolithic=${v8_monolithic} v8_use_external_startup_data=${v8_use_external_startup_data} use_sysroot=false is_clang=false use_custom_libcxx=false v8_enable_verify_heap=false icu_use_data_file=false" OPTIONS_DEBUG "is_debug=true enable_iterator_debugging=true pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig\"" OPTIONS_RELEASE "is_debug=false enable_iterator_debugging=false pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/lib/pkgconfig\"" ) message(STATUS "Building v8. Please wait...") vcpkg_gn_install( SOURCE_PATH "${SOURCE_PATH}" TARGETS ${targets} ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CFLAGS "-DV8_COMPRESS_POINTERS -DV8_31BIT_SMIS_ON_64BIT_ARCH") endif() file(INSTALL "${SOURCE_PATH}/include" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(PREFIX ${CURRENT_PACKAGES_DIR}) configure_file("${CURRENT_PORT_DIR}/v8.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/v8_libbase.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libbase.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/v8_libplatform.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libplatform.pc" @ONLY) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/snapshot_blob.bin" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") set(PREFIX ${CURRENT_PACKAGES_DIR}/debug) configure_file("${CURRENT_PORT_DIR}/v8.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/v8_libbase.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libbase.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/v8_libplatform.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libplatform.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/V8Config-shared.cmake" "${CURRENT_PACKAGES_DIR}/share/v8/V8Config.cmake" @ONLY) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/snapshot_blob.bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") else() set(PREFIX ${CURRENT_PACKAGES_DIR}) configure_file("${CURRENT_PORT_DIR}/v8_monolith.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_monolith.pc" @ONLY) set(PREFIX ${CURRENT_PACKAGES_DIR}/debug) configure_file("${CURRENT_PORT_DIR}/v8_monolith.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_monolith.pc" @ONLY) configure_file("${CURRENT_PORT_DIR}/V8Config-static.cmake" "${CURRENT_PACKAGES_DIR}/share/v8/V8Config.cmake" @ONLY) endif() vcpkg_copy_pdbs() # v8 libraries are listed as SYSTEM_LIBRARIES because the pc files reference each other. vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m dl pthread Winmm DbgHelp v8_libbase v8_libplatform v8) # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/v8/v8.patch ================================================ diff --git a/BUILD.gn b/BUILD.gn index d2bfb6129d..c5ab18ee44 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -5366,6 +5366,7 @@ if (is_component_build) { public_deps = [ ":v8_base", + ":v8_initializers", ":v8_snapshot", ] diff --git a/src/codegen/code-stub-assembler.h b/src/codegen/code-stub-assembler.h index 72b8fbc8a8..3ebfc23f1f 100644 --- a/src/codegen/code-stub-assembler.h +++ b/src/codegen/code-stub-assembler.h @@ -303,7 +303,7 @@ enum class PrimitiveType { kBoolean, kNumber, kString, kSymbol }; // it's possible to add JavaScript-specific useful CodeAssembler "macros" // without modifying files in the compiler directory (and requiring a review // from a compiler directory OWNER). -class V8_EXPORT_PRIVATE CodeStubAssembler +class V8_EXPORT CodeStubAssembler : public compiler::CodeAssembler, public TorqueGeneratedExportedMacrosAssembler { public: diff --git a/src/common/globals.h b/src/common/globals.h index f51c3210f8..5291285337 100644 --- a/src/common/globals.h +++ b/src/common/globals.h @@ -1364,7 +1364,7 @@ class BinaryOperationFeedback { // This is distinct from BinaryOperationFeedback on purpose, because the // feedback that matters differs greatly as well as the way it is consumed. class CompareOperationFeedback { - enum { + enum : uint32_t { kSignedSmallFlag = 1 << 0, kOtherNumberFlag = 1 << 1, kBooleanFlag = 1 << 2, @@ -1378,7 +1378,7 @@ class CompareOperationFeedback { }; public: - enum Type { + enum Type : uint32_t { kNone = 0, kBoolean = kBooleanFlag, diff --git a/src/compiler/node-cache.h b/src/compiler/node-cache.h index 8e1d3d4eae..c55d8329de 100644 --- a/src/compiler/node-cache.h +++ b/src/compiler/node-cache.h @@ -29,7 +29,7 @@ class Node; // nodes such as constants, parameters, etc. template , typename Pred = std::equal_to > -class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) NodeCache final { +class V8_EXPORT_PRIVATE NodeCache final { public: explicit NodeCache(Zone* zone) : map_(zone) {} ~NodeCache() = default; diff --git a/src/heap/paged-spaces-inl.h b/src/heap/paged-spaces-inl.h index e135e30efc..0c055247bc 100644 --- a/src/heap/paged-spaces-inl.h +++ b/src/heap/paged-spaces-inl.h @@ -19,7 +19,7 @@ namespace internal { // ----------------------------------------------------------------------------- // PagedSpaceObjectIterator -HeapObject PagedSpaceObjectIterator::Next() { +inline HeapObject PagedSpaceObjectIterator::Next() { do { HeapObject next_obj = FromCurrentPage(); if (!next_obj.is_null()) return next_obj; diff --git a/src/heap/paged-spaces.h b/src/heap/paged-spaces.h index 621d92aa89..a8592a5b4d 100644 --- a/src/heap/paged-spaces.h +++ b/src/heap/paged-spaces.h @@ -45,7 +45,7 @@ class V8_EXPORT_PRIVATE PagedSpaceObjectIterator : public ObjectIterator { // Advance to the next object, skipping free spaces and other fillers and // skipping the special garbage section of which there is one per space. // Returns nullptr when the iteration has ended. - inline HeapObject Next() override; + HeapObject Next() override; private: // Fast (inlined) path of next(). diff --git a/src/objects/feedback-vector.cc b/src/objects/feedback-vector.cc index a77ea5d265..0cddb92a02 100644 --- a/src/objects/feedback-vector.cc +++ b/src/objects/feedback-vector.cc @@ -114,9 +114,9 @@ Handle FeedbackMetadata::New(LocalIsolate* isolate, return metadata; } -template Handle FeedbackMetadata::New( +template V8_EXPORT Handle FeedbackMetadata::New( Isolate* isolate, const FeedbackVectorSpec* spec); -template Handle FeedbackMetadata::New( +template V8_EXPORT Handle FeedbackMetadata::New( LocalIsolate* isolate, const FeedbackVectorSpec* spec); bool FeedbackMetadata::SpecDiffersFrom( diff --git a/src/objects/fixed-array-inl.h b/src/objects/fixed-array-inl.h index cca6d40070..d6d36ff59f 100644 --- a/src/objects/fixed-array-inl.h +++ b/src/objects/fixed-array-inl.h @@ -88,7 +88,7 @@ bool FixedArray::is_the_hole(Isolate* isolate, int index) { return get(isolate, index).IsTheHole(isolate); } -void FixedArray::set(int index, Smi value) { +inline V8_EXPORT_PRIVATE void FixedArray::set(int index, Smi value) { DCHECK_NE(map(), GetReadOnlyRoots().fixed_cow_array_map()); DCHECK_LT(static_cast(index), static_cast(length())); DCHECK(Object(value).IsSmi()); diff --git a/src/objects/fixed-array.h b/src/objects/fixed-array.h index 98c5d8d5b5..bd5303e44c 100644 --- a/src/objects/fixed-array.h +++ b/src/objects/fixed-array.h @@ -132,7 +132,7 @@ class FixedArray inline bool is_the_hole(Isolate* isolate, int index); // Setter that doesn't need write barrier. - inline void set(int index, Smi value); + inline V8_EXPORT_PRIVATE void set(int index, Smi value); // Setter with explicit barrier mode. inline void set(int index, Object value, WriteBarrierMode mode); diff --git a/src/snapshot/snapshot-utils.cc b/src/snapshot/snapshot-utils.cc index eb2372372c..7defadb4b1 100644 --- a/src/snapshot/snapshot-utils.cc +++ b/src/snapshot/snapshot-utils.cc @@ -5,7 +5,7 @@ #include "src/snapshot/snapshot-utils.h" #include "src/sanitizer/msan.h" -#include "third_party/zlib/zlib.h" +#include "zlib.h" namespace v8 { namespace internal { diff --git a/src/wasm/function-body-decoder-impl.h b/src/wasm/function-body-decoder-impl.h index d37f718681..3a409e1d76 100644 --- a/src/wasm/function-body-decoder-impl.h +++ b/src/wasm/function-body-decoder-impl.h @@ -2013,7 +2013,7 @@ class WasmDecoder : public Decoder { } // TODO(clemensb): This is only used by the interpreter; move there. - V8_EXPORT_PRIVATE std::pair StackEffect(const byte* pc) { + std::pair StackEffect(const byte* pc) { WasmOpcode opcode = static_cast(*pc); // Handle "simple" opcodes with a fixed signature first. const FunctionSig* sig = WasmOpcodes::Signature(opcode); diff --git a/test/cctest/BUILD.gn b/test/cctest/BUILD.gn index ffa4e3a136..a279faee9b 100644 --- a/test/cctest/BUILD.gn +++ b/test/cctest/BUILD.gn @@ -493,6 +493,10 @@ v8_source_set("cctest_sources") { # C4309: 'static_cast': truncation of constant value cflags += [ "/wd4309" ] + if(!is_clang) { + cflags += [ "/wd4789" ] + } + # MSVS wants this for gay-{precision,shortest}.cc. cflags += [ "/bigobj" ] diff --git a/tools/debug_helper/BUILD.gn b/tools/debug_helper/BUILD.gn index 2256df1f55..29e27c6af9 100644 --- a/tools/debug_helper/BUILD.gn +++ b/tools/debug_helper/BUILD.gn @@ -100,10 +100,12 @@ v8_component("v8_debug_helper") { "../..:v8_libbase", "../..:v8_shared_internal_headers", "../..:v8_tracing", + "../..:v8", ] configs = [ ":internal_config" ] if (v8_enable_i18n_support) { + public_deps = [ "//third_party/icu" ] configs += [ "//third_party/icu:icu_config" ] } diff --git a/tools/v8windbg/BUILD.gn b/tools/v8windbg/BUILD.gn index 5618d2d945..71568f1670 100644 --- a/tools/v8windbg/BUILD.gn +++ b/tools/v8windbg/BUILD.gn @@ -6,7 +6,7 @@ import("../../gni/v8.gni") config("v8windbg_config") { # Required for successful compilation of SDK header file DbgModel.h. - cflags_cc = [ "/Zc:twoPhase-" ] + cflags_cc = [ "/Zc:twoPhase-", "/std:c++latest" ] include_dirs = [ "../.." ] } diff --git a/tools/v8windbg/base/dbgext.h b/tools/v8windbg/base/dbgext.h index 8b36a8f361..f8d9f0d64e 100644 --- a/tools/v8windbg/base/dbgext.h +++ b/tools/v8windbg/base/dbgext.h @@ -9,6 +9,7 @@ #error Unicode not defined #endif +#include #include #include #include diff --git a/tools/v8windbg/src/v8-debug-helper-interop.h b/tools/v8windbg/src/v8-debug-helper-interop.h index f7d78c5dd3..1c70e54e7a 100644 --- a/tools/v8windbg/src/v8-debug-helper-interop.h +++ b/tools/v8windbg/src/v8-debug-helper-interop.h @@ -5,10 +5,11 @@ #ifndef V8_TOOLS_V8WINDBG_SRC_V8_DEBUG_HELPER_INTEROP_H_ #define V8_TOOLS_V8WINDBG_SRC_V8_DEBUG_HELPER_INTEROP_H_ -#include - +#include +#include #include +#include #include #include #include diff --git a/tools/v8windbg/test/debug-callbacks.h b/tools/v8windbg/test/debug-callbacks.h index 8855d6ffbc..ed2b0f62e9 100644 --- a/tools/v8windbg/test/debug-callbacks.h +++ b/tools/v8windbg/test/debug-callbacks.h @@ -9,6 +9,7 @@ #error Unicode not defined #endif +#include #include #include #include ================================================ FILE: ports/v8/v8.pc.in ================================================ prefix=@PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: v8 Description: V8 JavaScript Engine Version: @pkgver@ Requires: zlib, icu-uc, icu-i18n, v8_libbase = @pkgver@ Libs: -L${libdir} -lv8 Cflags: -I${includedir} @CFLAGS@ ================================================ FILE: ports/v8/v8_libbase.pc.in ================================================ prefix=@PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: v8 Description: V8 JavaScript Engine - Base library Version: @pkgver@ Libs: -L${libdir} -lv8_libbase Cflags: -I${includedir} @CFLAGS@ ================================================ FILE: ports/v8/v8_libplatform.pc.in ================================================ prefix=@PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: v8 Description: V8 JavaScript Engine - Platform library Version: @pkgver@ Libs: -L${libdir} -lv8_libplatform Cflags: -I${includedir} @CFLAGS@ ================================================ FILE: ports/v8/v8_monolith.pc.in ================================================ prefix=@PREFIX@ exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include Name: v8 Description: V8 JavaScript Engine Version: @pkgver@ Requires: zlib, icu-uc, icu-i18n @REQUIRES@ Libs: -L${libdir} -lv8_monolith @LIBS@ Cflags: -I${includedir} @CFLAGS@ ================================================ FILE: ports/v8/vcpkg.json ================================================ { "name": "v8", "version": "9.1.269.39", "port-version": 8, "description": "Google Chrome's JavaScript engine", "homepage": "https://v8.dev", "license": "BSD-3-Clause", "supports": "!(arm | arm64 | uwp | osx | linux)", "dependencies": [ { "name": "glib", "platform": "linux" }, "icu", { "name": "pthread", "platform": "linux" }, { "name": "vcpkg-gn", "host": true }, { "name": "vcpkg-tool-python2", "host": true }, "zlib" ] } ================================================ FILE: ports/v8/zlib.gn ================================================ import("//build/config/linux/pkg_config.gni") pkg_config("system_zlib") { packages = [ "zlib" ] defines = [ "USE_SYSTEM_ZLIB=1" ] } config("zlib_config") { if(is_win && !is_component_build) { ldflags = ["/ignore:4099"] # needed on VCPKG CI builds } configs = [ ":system_zlib", ] } source_set("zlib") { public_configs = [ ":system_zlib", ] } ================================================ FILE: ports/valijson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tristanpenman/valijson REF "v${VERSION}" SHA512 4916e12dc45312462a7abbc2707f5c1edfe129feb03e73afebf11a80ac6fb2f4469fdb4d83174d1c0565f8553ff958b1dc0ea78132d7063bbf640de0ade1676b HEAD_REF master ) set(VCPKG_BUILD_TYPE release) # headers only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dvalijson_BUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/valijson") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug/lib") ================================================ FILE: ports/valijson/vcpkg.json ================================================ { "name": "valijson", "version": "1.1.0", "description": "Header-only C++ library for JSON Schema validation", "homepage": "https://github.com/tristanpenman/valijson", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/value-ptr-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/value-ptr-lite REF v0.2.1 SHA512 96bea32310b3b3f91d19706d8ae9bdfa9a6ba485f529562e3b7cf89311d1e9b99fd24c0c6f23d169c5a7c84ebd9bd7b8ace972ee279b38c4c1caa398a3dd1590 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES test VALUE_PTR_LITE_OPT_BUILD_TESTS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DVALUE_PTR_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME value_ptr-lite CONFIG_PATH lib/cmake/value_ptr-lite) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/value-ptr-lite/vcpkg.json ================================================ { "name": "value-ptr-lite", "version-semver": "0.2.1", "port-version": 1, "description": "A C++ smart-pointer with value semantics for C++98, C++11 and later in a single-file header-only library.", "homepage": "https://github.com/martinmoene/value-ptr-lite", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "test": { "description": "Build and perform value_ptr-lite tests." } } } ================================================ FILE: ports/vamp-sdk/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(vamp-cmake) find_package(SndFile REQUIRED) set(VAMP_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/vamp/vamp.h) set(SDK_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/Plugin.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/PluginAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/PluginBase.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/RealTime.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/FFT.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/plugguard.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-sdk/vamp-sdk.h) set(SDK_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-sdk/acsymbols.c ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-sdk/FFT.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-sdk/PluginAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-sdk/RealTime.cpp) set(HOST_SDK_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/Plugin.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginBase.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginHostAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/RealTime.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginBufferingAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginChannelAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginInputDomainAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginLoader.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginSummarisingAdapter.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/PluginWrapper.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/hostguard.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/host-c.h ${CMAKE_CURRENT_SOURCE_DIR}/vamp-hostsdk/vamp-hostsdk.h) set(HOST_SDK_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/acsymbols.c ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/Files.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginBufferingAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginChannelAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginHostAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginInputDomainAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginLoader.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginSummarisingAdapter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/PluginWrapper.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/RealTime.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vamp-hostsdk/host-c.cpp) if(BUILD_SHARED_LIBS) if(MSVC) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() endif() add_library(vamp-sdk ${SDK_SRC} ${SDK_HEADERS}) add_library(vamp-hostsdk ${HOST_SDK_SRC} ${HOST_SDK_HEADERS}) message(${SDK_HEADERS}) set_target_properties(vamp-sdk PROPERTIES PUBLIC_HEADER "${SDK_HEADERS}") set_target_properties(vamp-hostsdk PROPERTIES PUBLIC_HEADER "${HOST_SDK_HEADERS}") # The Visual Studio project files upstream intentionally output different # library file names than autotools. # https://github.com/tenacityteam/tenacity/pull/577#discussion_r702328284 if(WIN32) set_target_properties(vamp-sdk PROPERTIES OUTPUT_NAME VampPluginSDK) set_target_properties(vamp-hostsdk PROPERTIES OUTPUT_NAME VampHostSDK) endif() set_property(TARGET vamp-sdk PROPERTY CXX_STANDARD 11) set_property(TARGET vamp-hostsdk PROPERTY CXX_STANDARD 11) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) add_definitions(-D_LIB -D_USE_MATH_DEFINES) target_link_libraries(vamp-hostsdk PUBLIC SndFile::sndfile) target_link_libraries(vamp-sdk PUBLIC SndFile::sndfile) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/vamp.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/vamp.pc" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/vamp-hostsdk.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/vamp-hostsdk.pc" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/vamp-sdk.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/vamp-sdk.pc" @ONLY) file(GLOB PKGCONFIG_FILES "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/*.pc") install(FILES ${PKGCONFIG_FILES} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install( TARGETS vamp-hostsdk vamp-sdk RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") if(NOT DISABLE_INSTALL_HEADERS) install( DIRECTORY vamp-hostsdk/ DESTINATION include/vamp-hostsdk FILES_MATCHING PATTERN "*.h" PATTERN "*_priv.h" EXCLUDE PATTERN "config.h" EXCLUDE) install( DIRECTORY vamp-sdk/ DESTINATION include/vamp-sdk FILES_MATCHING PATTERN "*.h" PATTERN "*_priv.h" EXCLUDE PATTERN "config.h" EXCLUDE) install( DIRECTORY vamp/ DESTINATION include/vamp FILES_MATCHING PATTERN "*.h" PATTERN "*_priv.h" EXCLUDE PATTERN "config.h" EXCLUDE) endif() ================================================ FILE: ports/vamp-sdk/portfile.cmake ================================================ vcpkg_from_github( REPO vamp-plugins/vamp-plugin-sdk REF vamp-plugin-sdk-v2.10 SHA512 67a71e5396eab5ce9503e9111b4cfc16fc9755cf6ae2d8dfc99ed29fd91e75eaf0de9a9c55ce8f7751f04c235eb86430856eff18f02adde54f1850a87c917ef0 OUT_SOURCE_PATH SOURCE_PATH ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/vamp-sdk/vcpkg.json ================================================ { "name": "vamp-sdk", "version": "2.10", "port-version": 5, "description": "Library for Vamp plugins", "homepage": "https://www.vamp-plugins.org/develop.html", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "libsndfile", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/vanillapdf/disable-autosubscribe.diff ================================================ diff --git a/src/vanillapdf/utils/util.h b/src/vanillapdf/utils/util.h index aae1052..d695e49 100644 --- a/src/vanillapdf/utils/util.h +++ b/src/vanillapdf/utils/util.h @@ -50,6 +50,7 @@ private: ScopeGuardFactory(); }; +#if 0 // The AutoSubscribe concept is something I was thinking about for a long time. // Unfortunately I am still not able to create a working POC, however I want to keep the code. // In case I will be thinking about such functionality in the future, this could be the starting point. @@ -102,6 +103,7 @@ private: T _observable; U* _observer = nullptr; }; +#endif #if (__cplusplus < 201402L) && !defined(COMPILER_MICROSOFT_VISUAL_STUDIO) // Use custom implementation if not ================================================ FILE: ports/vanillapdf/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vanillapdf/vanillapdf REF "v${VERSION}" SHA512 7e8e555901ea8c60d0bbd69933b284b88930c8bff771363d83228302832f43e3ae560f9666b1410ce388e60285c4a41b297a2d99fa465cbe23b406afd0647612 PATCHES disable-autosubscribe.diff ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" VANILLAPDF_USE_STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVANILLAPDF_INTERNAL_VCPKG=OFF -DVANILLAPDF_ENABLE_TESTS=OFF -DVANILLAPDF_ENABLE_BENCHMARK=OFF -DVANILLAPDF_USE_STATIC_CRT=${VANILLAPDF_USE_STATIC_CRT} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "vanillapdf" CONFIG_PATH "lib/cmake/vanillapdf" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE.txt" "${SOURCE_PATH}/NOTICE.md" ) ================================================ FILE: ports/vanillapdf/usage ================================================ The package vanillapdf provides the following CMake targets: find_package(vanillapdf CONFIG REQUIRED) target_link_libraries(myapp PRIVATE vanillapdf::vanillapdf) ================================================ FILE: ports/vanillapdf/vcpkg.json ================================================ { "name": "vanillapdf", "version": "2.2.1", "description": "Vanilla.PDF is a cross-platform SDK for creating and modifying PDF documents.", "homepage": "https://github.com/vanillapdf/vanillapdf", "documentation": "https://vanillapdf.github.io/vanillapdf", "license": "Apache-2.0", "dependencies": [ "libjpeg-turbo", "nlohmann-json", "openjpeg", "openssl", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/variant-lite/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO martinmoene/variant-lite REF v3.0.0 SHA512 e85f27179a997777e3f9ad1db5f424f0838c474904c9df6a6b9cce817ca57144b0e23d561b9514edd97f8fff88b2a372c5afccc46a15b35e4b7d287e6b197a9e ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVARIANT_LITE_OPT_BUILD_TESTS=OFF -DVARIANT_LITE_OPT_BUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH "lib/cmake/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) ================================================ FILE: ports/variant-lite/vcpkg.json ================================================ { "name": "variant-lite", "version": "3.0.0", "description": "A C++17-like variant, a type-safe union for C++98, C++11 and later in a single-file header-only library", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vbs-enclave-tooling-codegen/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/VbsEnclaveTooling REF "codegen-v${VERSION}" SHA512 "630bf6c3c70b1bb34f41d1cc3ff32518dbcba59518d82bfcb12673fea874a3878cd51bde5818ad069c4d4b8f6b0ab7d4fec194f249b5a583698a7772c5f88107" HEAD_REF main ) # All the projects in the repo require some nuget packages to be installed so we need # to run nuget restore prior to running the msbuild function. vcpkg_find_acquire_program(NUGET) vcpkg_execute_required_process( COMMAND ${NUGET} restore "${SOURCE_PATH}/VbsEnclaveTooling.sln" WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME nuget-restore ) vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH VbsEnclaveTooling.sln NO_INSTALL # Make sure libs, exes and dlls from consumed nuget packages don't get added NO_TOOLCHAIN_PROPS OPTIONS "/p:VbsEnclaveCodegenVersion=${VERSION}" ) file(INSTALL "${SOURCE_PATH}/src/ToolingSharedLibrary/Includes/VbsEnclaveABI" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h" ) file(INSTALL "${SOURCE_PATH}/Common/veil_enclave_wil_inc/wil" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h" ) set(RELEASE_BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/_build/${VCPKG_TARGET_ARCHITECTURE}/Release") set(DEBUG_BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/_build/${VCPKG_TARGET_ARCHITECTURE}/Debug") # veil_enclave_cpp_support lib contains CRT stubs and should not be autolinked globally to avoid symbol conflicts. set(ENCLAVE_CPP_SUPPORT_DIR "${CURRENT_PACKAGES_DIR}/lib/manual-link") set(ENCLAVE_CPP_SUPPORT_DEBUG_DIR "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") # Note: the vcxproj project that creates edlcodegen.exe is always built using x64, regardless of what # is passed to vcpkg_msbuild_install. This is by design. if (EXISTS "${RELEASE_BUILD_DIR}") vcpkg_copy_tools(TOOL_NAMES edlcodegen SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/_build/x64/Release" AUTO_CLEAN) file(GLOB CPP_SUPPORT_LIB_FILE "${RELEASE_BUILD_DIR}/veil_enclave_cpp_support_${VCPKG_TARGET_ARCHITECTURE}_Release_lib.lib") file(MAKE_DIRECTORY "${ENCLAVE_CPP_SUPPORT_DIR}") file(INSTALL DESTINATION "${ENCLAVE_CPP_SUPPORT_DIR}" TYPE FILE FILES "${CPP_SUPPORT_LIB_FILE}") endif() if(EXISTS "${DEBUG_BUILD_DIR}") vcpkg_copy_tools( TOOL_NAMES edlcodegen SEARCH_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/_build/x64/Debug" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" AUTO_CLEAN ) file(GLOB CPP_SUPPORT_LIB_FILE "${DEBUG_BUILD_DIR}/veil_enclave_cpp_support_${VCPKG_TARGET_ARCHITECTURE}_Debug_lib.lib") file(MAKE_DIRECTORY "${ENCLAVE_CPP_SUPPORT_DEBUG_DIR}") file(INSTALL DESTINATION "${ENCLAVE_CPP_SUPPORT_DEBUG_DIR}" TYPE FILE FILES "${CPP_SUPPORT_LIB_FILE}") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/vbs-enclave-tooling-codegen/vcpkg.json ================================================ { "name": "vbs-enclave-tooling-codegen", "version": "0.1.1-prerelease", "description": "Supports code generation for VBS enclaves.", "homepage": "https://github.com/microsoft/vbsEnclaveTooling", "license": "MIT", "supports": "(windows & arm64) | (windows & x64)", "dependencies": [ "flatbuffers", "ms-gsl", { "name": "vcpkg-msbuild", "host": true }, "wil" ] } ================================================ FILE: ports/vc/correct_cmake_config_path.patch ================================================ diff --git a/cmake/VcConfig.cmake.in b/cmake/VcConfig.cmake.in index 36de476..5cb0e5b 100644 --- a/cmake/VcConfig.cmake.in +++ b/cmake/VcConfig.cmake.in @@ -4,7 +4,7 @@ set_and_check(@PROJECT_NAME@_INSTALL_DIR @PACKAGE_CMAKE_INSTALL_PREFIX@) set_and_check(@PROJECT_NAME@_INCLUDE_DIR @PACKAGE_CMAKE_INSTALL_PREFIX@/include) set_and_check(@PROJECT_NAME@_LIB_DIR @PACKAGE_CMAKE_INSTALL_PREFIX@/lib@LIB_SUFFIX@) -set_and_check(@PROJECT_NAME@_CMAKE_MODULES_DIR ${@PROJECT_NAME@_LIB_DIR}/cmake/Vc) +set_and_check(@PROJECT_NAME@_CMAKE_MODULES_DIR @PACKAGE_CMAKE_INSTALL_PREFIX@/share/vc) set(@PROJECT_NAME@_VERSION_STRING "@PROJECT_VERSION@") ### Setup @PROJECT_NAME@ defaults @@ -20,7 +20,7 @@ list(APPEND @PROJECT_NAME@_ALL_FLAGS ${@PROJECT_NAME@_COMPILE_FLAGS}) list(APPEND @PROJECT_NAME@_ALL_FLAGS ${@PROJECT_NAME@_ARCHITECTURE_FLAGS}) ### Import targets -include("@PACKAGE_CMAKE_INSTALL_PREFIX@/@PACKAGE_INSTALL_DESTINATION@/@PROJECT_NAME@Targets.cmake") +include(${@PROJECT_NAME@_CMAKE_MODULES_DIR}/@PROJECT_NAME@Targets.cmake) ### Define @PROJECT_NAME@_LIBRARIES for backwards compatibility get_target_property(vc_lib_location @PROJECT_NAME@::Vc INTERFACE_LOCATION) ================================================ FILE: ports/vc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO VcDevel/Vc REF "${VERSION}" SHA512 6525a72beae5270e31fe288b6b61cb2c3e431354bda3965b5fea5d743a3a76b33baaa28ef6f024353970a5b9e877fdc27a76754201f97cf21284ee1abdf16665 HEAD_REF 1.4 PATCHES correct_cmake_config_path.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Vc/") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/vc/vcpkg.json ================================================ { "name": "vc", "version": "1.4.5", "description": "SIMD Vector Classes for C++", "homepage": "https://github.com/VcDevel/Vc", "license": "BSD-3-Clause", "supports": "!arm64", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vcglib/consume-vcpkg-eigen3.patch ================================================ diff --git a/vcg/math/eigen.h b/vcg/math/eigen.h index 5cae402f..e8f82258 100644 --- a/vcg/math/eigen.h +++ b/vcg/math/eigen.h @@ -53,10 +53,10 @@ struct ei_to_vcgtype; } #include "base.h" -#include "../../eigenlib/Eigen/LU" -#include "../../eigenlib/Eigen/Geometry" -#include "../../eigenlib/Eigen/Array" -#include "../../eigenlib/Eigen/Core" +#include +#include +#include +#include // add support for unsigned char and short int namespace Eigen { ================================================ FILE: ports/vcglib/portfile.cmake ================================================ # header-only library set(VCPKG_BUILD_TYPE release) string(REGEX REPLACE "^([0-9]+)\\.([0-9])$" "\\1.0\\2" VERSION "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cnr-isti-vclab/vcglib REF "${VERSION}" SHA512 6533dfdc48a8ee0f904c49edcd25a3c06a945cec7baa047ddbba78ae48fbf7b490718fe15eb7c729f9c097114b798ec5204302b37011906a0bed4de819616717 PATCHES consume-vcpkg-eigen3.patch ) # Remove non-header folders) file(REMOVE_RECURSE "${SOURCE_PATH}/wrap/gcache/docs" "${SOURCE_PATH}/wrap/gl/splatting_apss/shaders" "${SOURCE_PATH}/wrap/igl/sample" "${SOURCE_PATH}/wrap/nanoply" ) file(COPY "${SOURCE_PATH}/img" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/vcg" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/wrap" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/vcglib/vcpkg.json ================================================ { "name": "vcglib", "version": "2025.7", "description": "library for manipulation, processing, cleaning, simplifying triangle meshes.", "license": "GPL-3.0-only", "dependencies": [ "eigen3" ] } ================================================ FILE: ports/vcpkg-boost/boost-install.cmake ================================================ include_guard(GLOBAL) function(boost_configure_and_install) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH" "OPTIONS") string(REPLACE "-" "_" boost_lib_name "${PORT}") string(REPLACE "boost_" "" boost_lib_name "${boost_lib_name}") set(boost_lib_name_config "${boost_lib_name}") set(headers_only OFF) if(NOT EXISTS "${arg_SOURCE_PATH}/src" OR Z_VCPKG_BOOST_FORCE_HEADER_ONLY) # regex|system|math are header only and only install libs due to compat set(headers_only ON) set(VCPKG_BUILD_TYPE release) endif() set(boost_lib_path "libs/${boost_lib_name}") if(boost_lib_name MATCHES "numeric") string(REPLACE "numeric_" "numeric/" boost_lib_path "${boost_lib_path}") string(REPLACE "numeric_" "numeric/" boost_lib_name "${boost_lib_name}") elseif(PORT MATCHES "boost-(ublas|odeint|interval)") set(boost_lib_name_config "numeric_${boost_lib_name}") set(boost_lib_path "libs/numeric/${boost_lib_name}") set(boost_lib_name "numeric/${boost_lib_name}") endif() if(NOT EXISTS "${arg_SOURCE_PATH}/libs") # Check for --editable workflow set(target_path "${arg_SOURCE_PATH}/${boost_lib_path}") cmake_path(GET target_path PARENT_PATH parent_path) file(RENAME "${arg_SOURCE_PATH}/" "${arg_SOURCE_PATH}.tmp/") file(MAKE_DIRECTORY "${parent_path}") file(RENAME "${arg_SOURCE_PATH}.tmp/" "${target_path}") endif() # Beta builds contains a text in the version string string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" SEMVER_VERSION "${VERSION}") file(WRITE "${arg_SOURCE_PATH}/CMakeLists.txt" "\ cmake_minimum_required(VERSION 3.25)\n\ project(Boost VERSION ${SEMVER_VERSION} LANGUAGES CXX)\n\ set(BOOST_SUPERPROJECT_VERSION \${PROJECT_VERSION})\n\ set(BOOST_SUPERPROJECT_SOURCE_DIR \"\${PROJECT_SOURCE_DIR}\")\n\ list(APPEND CMAKE_MODULE_PATH \"${CURRENT_INSTALLED_DIR}/share/boost/cmake-build\")\n\ include(BoostRoot)\n" ) if(PORT MATCHES "boost-(mpi|graph-parallel|property-map-parallel)") list(APPEND arg_OPTIONS -DBOOST_ENABLE_MPI=ON) endif() if(PORT MATCHES "boost-(python|parameter-python)") list(APPEND arg_OPTIONS -DBOOST_ENABLE_PYTHON=ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${arg_SOURCE_PATH}" OPTIONS -DBOOST_INCLUDE_LIBRARIES=${boost_lib_name} -DBOOST_RUNTIME_LINK=${VCPKG_CRT_LINKAGE} "-DBOOST_INSTALL_INCLUDE_SUBDIR=" "-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=" ${arg_OPTIONS} ) vcpkg_cmake_install() file(GLOB cmake_paths "${CURRENT_PACKAGES_DIR}/lib/cmake/*" LIST_DIRECTORIES true) file(GLOB cmake_files "${CURRENT_PACKAGES_DIR}/lib/cmake/*" LIST_DIRECTORIES false) list(REMOVE_ITEM cmake_paths "${cmake_files}" "${CURRENT_PACKAGES_DIR}/lib/cmake/boost_${boost_lib_name_config}-${SEMVER_VERSION}") foreach(config_path IN LISTS cmake_paths) string(REPLACE "-${SEMVER_VERSION}" "" config_path "${config_path}") string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/cmake/" "" config_name "${config_path}") vcpkg_cmake_config_fixup(PACKAGE_NAME ${config_name} CONFIG_PATH lib/cmake/${config_name}-${SEMVER_VERSION} DO_NOT_DELETE_PARENT_CONFIG_PATH) endforeach() if(PORT MATCHES "boost-(stacktrace|test)") # These ports have no cmake config agreeing with the port name file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake" "${CURRENT_PACKAGES_DIR}/debug/lib/cmake") else() vcpkg_cmake_config_fixup(PACKAGE_NAME boost_${boost_lib_name_config} CONFIG_PATH lib/cmake/boost_${boost_lib_name_config}-${SEMVER_VERSION}) endif() if(headers_only) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${CURRENT_INSTALLED_DIR}/share/boost-cmake/copyright") # Install port specific usage set(BOOST_PORT_NAME "${boost_lib_name_config}") configure_file("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-boost/usage.in" "${CURRENT_INSTALLED_DIR}/share/${PORT}/usage") endfunction() ================================================ FILE: ports/vcpkg-boost/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage.in" "${CMAKE_CURRENT_LIST_DIR}/boost-install.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt") set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-boost/usage.in ================================================ The package @PORT@ is compatible with built-in CMake targets of FindBoost.cmake: find_package(Boost REQUIRED COMPONENTS @BOOST_PORT_NAME@) target_link_libraries(main PRIVATE Boost::@BOOST_PORT_NAME@) or the generated cmake configs via: find_package(@PORT_UNDERSCORE@ REQUIRED CONFIG) target_link_libraries(main PRIVATE Boost::@BOOST_PORT_NAME@) ================================================ FILE: ports/vcpkg-boost/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake/vcpkg-port-config.cmake") include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake-config/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/boost-install.cmake") ================================================ FILE: ports/vcpkg-boost/vcpkg.json ================================================ { "name": "vcpkg-boost", "version-date": "2025-03-29", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vcpkg-cmake/portfile.cmake ================================================ if(VCPKG_CROSSCOMPILING) # make FATAL_ERROR in CI when issue #16773 fixed message(WARNING "vcpkg-cmake is a host-only port; please mark it as a host port in your dependencies.") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_configure.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_build.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_install.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-cmake/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_configure.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_build.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_install.cmake") ================================================ FILE: ports/vcpkg-cmake/vcpkg.json ================================================ { "name": "vcpkg-cmake", "version-date": "2024-04-23", "documentation": "https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_cmake_configure", "license": "MIT" } ================================================ FILE: ports/vcpkg-cmake/vcpkg_cmake_build.cmake ================================================ include_guard(GLOBAL) function(vcpkg_cmake_build) cmake_parse_arguments(PARSE_ARGV 0 "arg" "DISABLE_PARALLEL;ADD_BIN_TO_PATH" "TARGET;LOGFILE_BASE" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_cmake_build was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_LOGFILE_BASE) set(arg_LOGFILE_BASE "build") endif() vcpkg_list(SET build_param) vcpkg_list(SET parallel_param) vcpkg_list(SET no_parallel_param) if("${Z_VCPKG_CMAKE_GENERATOR}" STREQUAL "Ninja") vcpkg_list(SET build_param "-v") # verbose output vcpkg_list(SET parallel_param "-j${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param "-j1") elseif("${Z_VCPKG_CMAKE_GENERATOR}" MATCHES "^Visual Studio") vcpkg_list(SET build_param "/p:VCPkgLocalAppDataDisabled=true" "/p:UseIntelMKL=No" ) vcpkg_list(SET parallel_param "/m") elseif("${Z_VCPKG_CMAKE_GENERATOR}" STREQUAL "NMake Makefiles") # No options are currently added for nmake builds elseif(Z_VCPKG_CMAKE_GENERATOR STREQUAL "Unix Makefiles") vcpkg_list(SET build_param "VERBOSE=1") vcpkg_list(SET parallel_param "-j${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param "") elseif(Z_VCPKG_CMAKE_GENERATOR STREQUAL "Xcode") vcpkg_list(SET parallel_param -jobs "${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param -jobs 1) else() message(WARNING "Unrecognized GENERATOR setting from vcpkg_cmake_configure().") endif() vcpkg_list(SET target_param) if(arg_TARGET) vcpkg_list(SET target_param "--target" "${arg_TARGET}") endif() foreach(build_type IN ITEMS debug release) if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "${build_type}") if("${build_type}" STREQUAL "debug") set(short_build_type "dbg") set(config "Debug") else() set(short_build_type "rel") set(config "Release") endif() message(STATUS "Building ${TARGET_TRIPLET}-${short_build_type}") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if("${build_type}" STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() if(arg_DISABLE_PARALLEL) vcpkg_execute_build_process( COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${no_parallel_param} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_build_type}" LOGNAME "${arg_LOGFILE_BASE}-${TARGET_TRIPLET}-${short_build_type}" ) else() vcpkg_execute_build_process( COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${parallel_param} NO_PARALLEL_COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${no_parallel_param} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_build_type}" LOGNAME "${arg_LOGFILE_BASE}-${TARGET_TRIPLET}-${short_build_type}" ) endif() if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endif() endforeach() endfunction() ================================================ FILE: ports/vcpkg-cmake/vcpkg_cmake_configure.cmake ================================================ include_guard(GLOBAL) macro(z_vcpkg_cmake_configure_both_set_or_unset var1 var2) if(DEFINED ${var1} AND NOT DEFINED ${var2}) message(FATAL_ERROR "If ${var1} is set, then ${var2} must be set.") elseif(NOT DEFINED ${var1} AND DEFINED ${var2}) message(FATAL_ERROR "If ${var2} is set, then ${var1} must be set.") endif() endmacro() function(vcpkg_cmake_configure) cmake_parse_arguments(PARSE_ARGV 0 "arg" "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;WINDOWS_USE_MSBUILD;NO_CHARSET_FLAG;Z_CMAKE_GET_VARS_USAGE" "SOURCE_PATH;GENERATOR;LOGFILE_BASE" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;MAYBE_UNUSED_VARIABLES" ) if(NOT arg_Z_CMAKE_GET_VARS_USAGE AND DEFINED CACHE{Z_VCPKG_CMAKE_GENERATOR}) message(WARNING "${CMAKE_CURRENT_FUNCTION} already called; this function should only be called once.") endif() if(arg_PREFER_NINJA) message(WARNING "PREFER_NINJA has been deprecated in ${CMAKE_CURRENT_FUNCTION}. Please remove it from the portfile!") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be set") endif() if(NOT DEFINED arg_LOGFILE_BASE) set(arg_LOGFILE_BASE "config-${TARGET_TRIPLET}") endif() set(invalid_maybe_unused_vars "${arg_MAYBE_UNUSED_VARIABLES}") list(FILTER invalid_maybe_unused_vars INCLUDE REGEX "^-D") if(NOT invalid_maybe_unused_vars STREQUAL "") list(JOIN invalid_maybe_unused_vars " " bad_items) message(${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL} "Option MAYBE_UNUSED_VARIABLES must be used with variables names. " "The following items are invalid: ${bad_items}") endif() set(manually_specified_variables "") if(arg_Z_CMAKE_GET_VARS_USAGE) set(configuring_message "Getting CMake variables for ${TARGET_TRIPLET}") else() set(configuring_message "Configuring ${TARGET_TRIPLET}") foreach(option IN LISTS arg_OPTIONS arg_OPTIONS_RELEASE arg_OPTIONS_DEBUG) if("${option}" MATCHES "^-D([^:=]*)[:=]") vcpkg_list(APPEND manually_specified_variables "${CMAKE_MATCH_1}") endif() endforeach() vcpkg_list(REMOVE_DUPLICATES manually_specified_variables) foreach(maybe_unused_var IN LISTS arg_MAYBE_UNUSED_VARIABLES) vcpkg_list(REMOVE_ITEM manually_specified_variables "${maybe_unused_var}") endforeach() debug_message("manually specified variables: ${manually_specified_variables}") endif() if(CMAKE_HOST_WIN32) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_architecture "$ENV{PROCESSOR_ARCHITEW6432}") else() set(host_architecture "$ENV{PROCESSOR_ARCHITECTURE}") endif() endif() set(ninja_host ON) # Ninja availability if(host_architecture STREQUAL "x86" OR DEFINED ENV{VCPKG_FORCE_SYSTEM_BINARIES}) # Prebuilt ninja binaries are only provided for x64 hosts find_program(NINJA NAMES ninja ninja-build) if(NOT NINJA) set(ninja_host OFF) set(arg_DISABLE_PARALLEL_CONFIGURE ON) set(arg_WINDOWS_USE_MSBUILD ON) endif() endif() set(generator "") set(architecture_options "") if(arg_WINDOWS_USE_MSBUILD AND VCPKG_HOST_IS_WINDOWS AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) z_vcpkg_get_visual_studio_generator(OUT_GENERATOR generator OUT_ARCH arch) vcpkg_list(APPEND architecture_options "-A${arch}") if(DEFINED VCPKG_PLATFORM_TOOLSET) vcpkg_list(APPEND arg_OPTIONS "-T${VCPKG_PLATFORM_TOOLSET}") endif() if(NOT generator) message(FATAL_ERROR "Unable to determine appropriate Visual Studio generator for triplet ${TARGET_TRIPLET}: ENV{VisualStudioVersion} : $ENV{VisualStudioVersion} VCPKG_TARGET_ARCHITECTURE: ${VCPKG_TARGET_ARCHITECTURE}") endif() elseif(DEFINED arg_GENERATOR) set(generator "${arg_GENERATOR}") elseif(ninja_host) set(generator "Ninja") elseif(NOT VCPKG_HOST_IS_WINDOWS) set(generator "Unix Makefiles") endif() if(NOT generator) if(NOT VCPKG_CMAKE_SYSTEM_NAME) set(VCPKG_CMAKE_SYSTEM_NAME "Windows") endif() message(FATAL_ERROR "Unable to determine appropriate generator for: " "${VCPKG_CMAKE_SYSTEM_NAME}-${VCPKG_TARGET_ARCHITECTURE}-${VCPKG_PLATFORM_TOOLSET}") endif() set(parallel_log_args "") set(log_args "") if(generator STREQUAL "Ninja") vcpkg_find_acquire_program(NINJA) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_MAKE_PROGRAM=${NINJA}") # If we use Ninja, it must be on PATH for CMake's ExternalProject, # cf. https://gitlab.kitware.com/cmake/cmake/-/issues/23355. get_filename_component(ninja_path "${NINJA}" DIRECTORY) vcpkg_add_to_path("${ninja_path}") set(parallel_log_args "../build.ninja" ALIAS "rel-ninja.log" "../../${TARGET_TRIPLET}-dbg/build.ninja" ALIAS "dbg-ninja.log" ) set(log_args "build.ninja") endif() set(build_dir_release "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") set(build_dir_debug "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") file(REMOVE_RECURSE "${build_dir_release}" "${build_dir_debug}") file(MAKE_DIRECTORY "${build_dir_release}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${build_dir_debug}") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_NAME) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") if(VCPKG_TARGET_IS_UWP AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) elseif(VCPKG_TARGET_IS_ANDROID AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(VCPKG_CMAKE_SYSTEM_VERSION 21) endif() endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") endif() if(DEFINED VCPKG_XBOX_CONSOLE_TARGET) vcpkg_list(APPEND arg_OPTIONS "-DXBOX_CONSOLE_TARGET=${VCPKG_XBOX_CONSOLE_TARGET}") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_list(APPEND arg_OPTIONS "-DBUILD_SHARED_LIBS=ON") elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND arg_OPTIONS "-DBUILD_SHARED_LIBS=OFF") else() message(FATAL_ERROR "Invalid setting for VCPKG_LIBRARY_LINKAGE: \"${VCPKG_LIBRARY_LINKAGE}\". " "It must be \"static\" or \"dynamic\"") endif() z_vcpkg_cmake_configure_both_set_or_unset(VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_DEBUG) z_vcpkg_cmake_configure_both_set_or_unset(VCPKG_CXX_FLAGS_RELEASE VCPKG_C_FLAGS_RELEASE) z_vcpkg_cmake_configure_both_set_or_unset(VCPKG_CXX_FLAGS VCPKG_C_FLAGS) set(VCPKG_SET_CHARSET_FLAG ON) if(arg_NO_CHARSET_FLAG) set(VCPKG_SET_CHARSET_FLAG OFF) endif() if(NOT DEFINED VCPKG_CHAINLOAD_TOOLCHAIN_FILE) z_vcpkg_select_default_vcpkg_chainload_toolchain() endif() list(JOIN VCPKG_TARGET_ARCHITECTURE "\;" target_architecture_string) vcpkg_list(APPEND arg_OPTIONS "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}" "-DVCPKG_SET_CHARSET_FLAG=${VCPKG_SET_CHARSET_FLAG}" "-DVCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=${SCRIPTS}/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=${VCPKG_CXX_FLAGS}" "-DVCPKG_CXX_FLAGS_RELEASE=${VCPKG_CXX_FLAGS_RELEASE}" "-DVCPKG_CXX_FLAGS_DEBUG=${VCPKG_CXX_FLAGS_DEBUG}" "-DVCPKG_C_FLAGS=${VCPKG_C_FLAGS}" "-DVCPKG_C_FLAGS_RELEASE=${VCPKG_C_FLAGS_RELEASE}" "-DVCPKG_C_FLAGS_DEBUG=${VCPKG_C_FLAGS_DEBUG}" "-DVCPKG_CRT_LINKAGE=${VCPKG_CRT_LINKAGE}" "-DVCPKG_LINKER_FLAGS=${VCPKG_LINKER_FLAGS}" "-DVCPKG_LINKER_FLAGS_RELEASE=${VCPKG_LINKER_FLAGS_RELEASE}" "-DVCPKG_LINKER_FLAGS_DEBUG=${VCPKG_LINKER_FLAGS_DEBUG}" "-DVCPKG_TARGET_ARCHITECTURE=${target_architecture_string}" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=${VCPKG_ROOT_DIR}" "-D_VCPKG_INSTALLED_DIR=${_VCPKG_INSTALLED_DIR}" "-DVCPKG_MANIFEST_INSTALL=OFF" ) # Sets configuration variables for macOS builds foreach(config_var IN ITEMS INSTALL_NAME_DIR OSX_DEPLOYMENT_TARGET OSX_SYSROOT OSX_ARCHITECTURES) if(DEFINED VCPKG_${config_var}) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_${config_var}=${VCPKG_${config_var}}") endif() endforeach() vcpkg_list(PREPEND arg_OPTIONS "-DFETCHCONTENT_FULLY_DISCONNECTED=ON") # Allow overrides / additional configuration variables from triplets if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS}) endif() if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE ${VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG ${VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG}) endif() vcpkg_list(SET rel_command "${CMAKE_COMMAND}" "${arg_SOURCE_PATH}" -G "${generator}" ${architecture_options} "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}" ${arg_OPTIONS} ${arg_OPTIONS_RELEASE}) vcpkg_list(SET dbg_command "${CMAKE_COMMAND}" "${arg_SOURCE_PATH}" -G "${generator}" ${architecture_options} "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug" ${arg_OPTIONS} ${arg_OPTIONS_DEBUG}) if(NOT arg_DISABLE_PARALLEL_CONFIGURE) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_DISABLE_SOURCE_CHANGES=ON") vcpkg_find_acquire_program(NINJA) #parallelize the configure step set(ninja_configure_contents "rule CreateProcess\n command = \$process\n\n" ) if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") z_vcpkg_configure_cmake_build_cmakecache(ninja_configure_contents ".." "rel") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") z_vcpkg_configure_cmake_build_cmakecache(ninja_configure_contents "../../${TARGET_TRIPLET}-dbg" "dbg") endif() file(MAKE_DIRECTORY "${build_dir_release}/vcpkg-parallel-configure") file(WRITE "${build_dir_release}/vcpkg-parallel-configure/build.ninja" "${ninja_configure_contents}") message(STATUS "${configuring_message}") vcpkg_execute_required_process( COMMAND "${NINJA}" -v WORKING_DIRECTORY "${build_dir_release}/vcpkg-parallel-configure" LOGNAME "${arg_LOGFILE_BASE}" SAVE_LOG_FILES "../../${TARGET_TRIPLET}-dbg/CMakeCache.txt" ALIAS "dbg-CMakeCache.txt.log" "../CMakeCache.txt" ALIAS "rel-CMakeCache.txt.log" "../../${TARGET_TRIPLET}-dbg/CMakeFiles/CMakeConfigureLog.yaml" ALIAS "dbg-CMakeConfigureLog.yaml.log" "../CMakeFiles/CMakeConfigureLog.yaml" ALIAS "rel-CMakeConfigureLog.yaml.log" ${parallel_log_args} ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-err.log") else() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") message(STATUS "${configuring_message}-dbg") vcpkg_execute_required_process( COMMAND ${dbg_command} WORKING_DIRECTORY "${build_dir_debug}" LOGNAME "${arg_LOGFILE_BASE}-dbg" SAVE_LOG_FILES "CMakeCache.txt" "CMakeFiles/CMakeConfigureLog.yaml" ${log_args} ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-dbg-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-dbg-err.log") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") message(STATUS "${configuring_message}-rel") vcpkg_execute_required_process( COMMAND ${rel_command} WORKING_DIRECTORY "${build_dir_release}" LOGNAME "${arg_LOGFILE_BASE}-rel" SAVE_LOG_FILES "CMakeCache.txt" "CMakeFiles/CMakeConfigureLog.yaml" ${log_args} ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-rel-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_BASE}-rel-err.log") endif() endif() set(all_unused_variables) foreach(config_log IN LISTS config_logs) if(NOT EXISTS "${config_log}") continue() endif() file(READ "${config_log}" log_contents) debug_message("Reading configure log ${config_log}...") if(NOT log_contents MATCHES "Manually-specified variables were not used by the project:\n\n(( [^\n]*\n)*)") continue() endif() string(STRIP "${CMAKE_MATCH_1}" unused_variables) # remove leading ` ` and trailing `\n` string(REPLACE "\n " ";" unused_variables "${unused_variables}") debug_message("unused variables: ${unused_variables}") foreach(unused_variable IN LISTS unused_variables) if(unused_variable IN_LIST manually_specified_variables) debug_message("manually specified unused variable: ${unused_variable}") vcpkg_list(APPEND all_unused_variables "${unused_variable}") else() debug_message("unused variable (not manually specified): ${unused_variable}") endif() endforeach() endforeach() if(DEFINED all_unused_variables) vcpkg_list(REMOVE_DUPLICATES all_unused_variables) vcpkg_list(JOIN all_unused_variables "\n " all_unused_variables) message(WARNING "The following variables are not used in CMakeLists.txt: ${all_unused_variables} Please recheck them and remove the unnecessary options from the `vcpkg_cmake_configure` call. If these options should still be passed for whatever reason, please use the `MAYBE_UNUSED_VARIABLES` argument.") endif() if(NOT arg_Z_CMAKE_GET_VARS_USAGE) set(Z_VCPKG_CMAKE_GENERATOR "${generator}" CACHE INTERNAL "The generator which was used to configure CMake.") endif() endfunction() ================================================ FILE: ports/vcpkg-cmake/vcpkg_cmake_install.cmake ================================================ include_guard(GLOBAL) function(vcpkg_cmake_install) cmake_parse_arguments(PARSE_ARGV 0 "arg" "DISABLE_PARALLEL;ADD_BIN_TO_PATH" "" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_cmake_install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(args) foreach(arg IN ITEMS DISABLE_PARALLEL ADD_BIN_TO_PATH) if(arg_${arg}) list(APPEND args "${arg}") endif() endforeach() vcpkg_cmake_build( ${args} LOGFILE_BASE install TARGET install ) endfunction() ================================================ FILE: ports/vcpkg-cmake-config/copyright ================================================ Copyright (c) Microsoft Corporation All rights reserved. MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: ports/vcpkg-cmake-config/portfile.cmake ================================================ if(NOT TARGET_TRIPLET STREQUAL _HOST_TRIPLET) # make FATAL_ERROR in CI when issue #16773 fixed message(WARNING "vcpkg-cmake-config is a host-only port; please mark it as a host port in your dependencies.") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_config_fixup.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CMAKE_CURRENT_LIST_DIR}/copyright" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/vcpkg-cmake-config/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_config_fixup.cmake") ================================================ FILE: ports/vcpkg-cmake-config/vcpkg.json ================================================ { "name": "vcpkg-cmake-config", "version-date": "2024-05-23", "documentation": "https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_cmake_config_fixup", "license": "MIT" } ================================================ FILE: ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.cmake ================================================ include_guard(GLOBAL) function(vcpkg_cmake_config_fixup) cmake_parse_arguments(PARSE_ARGV 0 "arg" "DO_NOT_DELETE_PARENT_CONFIG_PATH;NO_PREFIX_CORRECTION" "PACKAGE_NAME;CONFIG_PATH;TOOLS_PATH" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_cmake_config_fixup was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT arg_PACKAGE_NAME) set(arg_PACKAGE_NAME "${PORT}") endif() if(NOT arg_CONFIG_PATH) set(arg_CONFIG_PATH "share/${arg_PACKAGE_NAME}") endif() if(NOT arg_TOOLS_PATH) set(arg_TOOLS_PATH "tools/${PORT}") endif() set(target_path "share/${arg_PACKAGE_NAME}") string(REPLACE "." "\\." EXECUTABLE_SUFFIX "${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(debug_share "${CURRENT_PACKAGES_DIR}/debug/${target_path}") set(release_share "${CURRENT_PACKAGES_DIR}/${target_path}") if(NOT arg_CONFIG_PATH STREQUAL "share/${arg_PACKAGE_NAME}") if(arg_CONFIG_PATH STREQUAL "share") set(arg_CONFIG_PATH z_vcpkg_share) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/${arg_CONFIG_PATH}") file(RENAME "${CURRENT_PACKAGES_DIR}/share" "${CURRENT_PACKAGES_DIR}/${arg_CONFIG_PATH}") endif() set(debug_config "${CURRENT_PACKAGES_DIR}/debug/${arg_CONFIG_PATH}") set(release_config "${CURRENT_PACKAGES_DIR}/${arg_CONFIG_PATH}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(NOT EXISTS "${debug_config}") message(FATAL_ERROR "'${debug_config}' does not exist.") endif() # This roundabout handling enables CONFIG_PATH = share file(MAKE_DIRECTORY "${debug_share}") file(GLOB files "${debug_config}/*") file(COPY ${files} DESTINATION "${debug_share}") file(REMOVE_RECURSE "${debug_config}") endif() file(GLOB files "${release_config}/*") file(COPY ${files} DESTINATION "${release_share}") file(REMOVE_RECURSE "${release_config}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") get_filename_component(debug_config_dir_name "${debug_config}" NAME) string(TOLOWER "${debug_config_dir_name}" debug_config_dir_name) if(debug_config_dir_name STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE "${debug_config}") else() get_filename_component(debug_config_parent_dir "${debug_config}" DIRECTORY) get_filename_component(debug_config_dir_name "${debug_config_parent_dir}" NAME) string(TOLOWER "${debug_config_dir_name}" debug_config_dir_name) if(debug_config_dir_name STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE "${debug_config_parent_dir}") endif() endif() endif() get_filename_component(release_config_dir_name "${release_config}" NAME) string(TOLOWER "${release_config_dir_name}" release_config_dir_name) if(release_config_dir_name STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE "${release_config}") else() get_filename_component(release_config_parent_dir "${release_config}" DIRECTORY) get_filename_component(release_config_dir_name "${release_config_parent_dir}" NAME) string(TOLOWER "${release_config_dir_name}" release_config_dir_name) if(release_config_dir_name STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE "${release_config_parent_dir}") endif() endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(NOT EXISTS "${debug_share}") message(FATAL_ERROR "'${debug_share}' does not exist.") endif() endif() file(GLOB_RECURSE release_targets "${release_share}/*-release.cmake" ) foreach(release_target IN LISTS release_targets) file(READ "${release_target}" contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" contents "${contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+${EXECUTABLE_SUFFIX})" "\${_IMPORT_PREFIX}/${arg_TOOLS_PATH}/\\1" contents "${contents}") file(WRITE "${release_target}" "${contents}") endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB_RECURSE debug_targets "${debug_share}/*-debug.cmake" ) foreach(debug_target IN LISTS debug_targets) file(RELATIVE_PATH debug_target_rel "${debug_share}" "${debug_target}") file(READ "${debug_target}" contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" contents "${contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \";]+${EXECUTABLE_SUFFIX})" "\${_IMPORT_PREFIX}/${arg_TOOLS_PATH}/\\1" contents "${contents}") string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" contents "${contents}") string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" contents "${contents}") file(WRITE "${release_share}/${debug_target_rel}" "${contents}") file(REMOVE "${debug_target}") endforeach() endif() #Fix ${_IMPORT_PREFIX} and absolute paths in cmake generated targets and configs; #Since those can be renamed we have to check in every *.cmake, but only once. file(GLOB_RECURSE main_cmakes "${release_share}/*.cmake") if(NOT DEFINED Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP) vcpkg_list(SET Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP) endif() foreach(already_fixed_up IN LISTS Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP) vcpkg_list(REMOVE_ITEM main_cmakes "${already_fixed_up}") endforeach() vcpkg_list(APPEND Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP ${main_cmakes}) set(Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP "${Z_VCPKG_CMAKE_CONFIG_ALREADY_FIXED_UP}" CACHE INTERNAL "") foreach(main_cmake IN LISTS main_cmakes) file(READ "${main_cmake}" contents) # Note: I think the following comment is no longer true, since we now require the path to be `share/blah` # however, I don't know it for sure. # - nimazzuc #This correction is not correct for all cases. To make it correct for all cases it needs to consider #original folder deepness to CURRENT_PACKAGES_DIR in comparison to the moved to folder deepness which #is always at least (>=) 2, e.g. share/${PORT}. Currently the code assumes it is always 2 although #this requirement is only true for the *Config.cmake. The targets are not required to be in the same #folder as the *Config.cmake! if(NOT arg_NO_PREFIX_CORRECTION) string(REGEX REPLACE [[get_filename_component\(_IMPORT_PREFIX "\${CMAKE_CURRENT_LIST_FILE}" PATH\)( get_filename_component\(_IMPORT_PREFIX "\${_IMPORT_PREFIX}" PATH\))*]] [[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)]] contents "${contents}") # see #1044 for details why this replacement is necessary. See #4782 why it must be a regex. string(REGEX REPLACE [[get_filename_component\(PACKAGE_PREFIX_DIR "\${CMAKE_CURRENT_LIST_DIR}/\.\./(\.\./)*" ABSOLUTE\)]] [[get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)]] contents "${contents}") string(REGEX REPLACE [[get_filename_component\(PACKAGE_PREFIX_DIR "\${CMAKE_CURRENT_LIST_DIR}/\.\.((\\|/)\.\.)*" ABSOLUTE\)]] [[get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE)]] contents "${contents}") # This is a meson-related workaround, see https://github.com/mesonbuild/meson/issues/6955 endif() # Merge release and debug configurations of target property INTERFACE_LINK_LIBRARIES. string(REPLACE "${release_share}/" "${debug_share}/" debug_cmake "${main_cmake}") if(DEFINED VCPKG_BUILD_TYPE) # Skip. Warning: A release-only port in a dual-config installation # may pull release dependencies into the debug configuration. elseif(NOT contents MATCHES "INTERFACE_LINK_LIBRARIES") # Skip. No relevant properties. elseif(NOT contents MATCHES "# Generated CMake target import file\\.") # Skip. No safe assumptions about a matching debug import file. elseif(NOT EXISTS "${debug_cmake}") message(SEND_ERROR "Did not find a debug import file matching '${main_cmake}'") else() file(READ "${debug_cmake}" debug_contents) set(remainder "${contents}") while(remainder) z_vcpkg_cmake_config_fixup_match_command("${remainder}" "set_target_properties(" matched_command remainder) if(NOT matched_command MATCHES "set_target_properties[(]([^ \$]*) PROPERTIES.* INTERFACE_LINK_LIBRARIES \"([^\"]*)\"") continue() endif() set(target "${CMAKE_MATCH_1}") set(release_libs "${CMAKE_MATCH_2}") z_vcpkg_cmake_config_fixup_match_command("${debug_contents}" "set_target_properties(${target} " debug_command unused) if(NOT debug_command MATCHES " INTERFACE_LINK_LIBRARIES \"([^\"]*)\"") message(SEND_ERROR "Did not find a debug configuration for target '${target}'.") continue() endif() set(debug_libs "${CMAKE_MATCH_1}") z_vcpkg_cmake_config_fixup_merge(merged_libs release_libs debug_libs) string(REPLACE " INTERFACE_LINK_LIBRARIES \"${release_libs}\"" " INTERFACE_LINK_LIBRARIES \"${merged_libs}\"" updated_command "${matched_command}") string(REPLACE "${matched_command}" "${updated_command}" contents "${contents}") endwhile() endif() #Fix absolute paths to installed dir with ones relative to ${CMAKE_CURRENT_LIST_DIR} #This happens if vcpkg built libraries are directly linked to a target instead of using #an imported target. string(REPLACE "${CURRENT_INSTALLED_DIR}" [[${VCPKG_IMPORT_PREFIX}]] contents "${contents}") file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}" cmake_current_packages_dir) string(REPLACE "${cmake_current_packages_dir}" [[${VCPKG_IMPORT_PREFIX}]] contents "${contents}") # If ${VCPKG_IMPORT_PREFIX} was actually used, inject a definition of it: string(FIND "${contents}" [[${VCPKG_IMPORT_PREFIX}]] index) if (NOT index STREQUAL "-1") get_filename_component(main_cmake_dir "${main_cmake}" DIRECTORY) # Calculate relative to be a sequence of "../" file(RELATIVE_PATH relative "${main_cmake_dir}" "${cmake_current_packages_dir}") string(PREPEND contents "get_filename_component(VCPKG_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}\/${relative}\" ABSOLUTE)\n") endif() file(WRITE "${main_cmake}" "${contents}") endforeach() file(GLOB_RECURSE unused_files "${debug_share}/*[Tt]argets.cmake" "${debug_share}/*[Cc]onfig.cmake" "${debug_share}/*[Cc]onfigVersion.cmake" "${debug_share}/*[Cc]onfig-version.cmake" ) foreach(unused_file IN LISTS unused_files) file(REMOVE "${unused_file}") endforeach() # Remove /debug// if it's empty. file(GLOB_RECURSE remaining_files "${debug_share}/*") if(remaining_files STREQUAL "") file(REMOVE_RECURSE "${debug_share}") endif() # Remove /debug/share/ if it's empty. file(GLOB_RECURSE remaining_files "${CURRENT_PACKAGES_DIR}/debug/share/*") if(remaining_files STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") endif() endfunction() # Match a command from "" to ")\n". On match, returns the command and # the remainder from haystack. Otherwise, returns empty values. function(z_vcpkg_cmake_config_fixup_match_command haystack needle out_match out_remainder) set(match "") set(remainder "") string(FIND "${haystack}" "${needle}" first) if(NOT first EQUAL "-1") string(SUBSTRING "${haystack}" ${first} -1 tmp) string(FIND "${tmp}" ")\n" bound) if(NOT bound EQUAL "-1") math(EXPR bound "${bound} + 2") string(SUBSTRING "${tmp}" 0 ${bound} match) string(SUBSTRING "${tmp}" "${bound}" -1 remainder) endif() endif() set("${out_match}" "${match}" PARENT_SCOPE) set("${out_remainder}" "${remainder}" PARENT_SCOPE) endfunction() # Merges link interface library lists for release and debug # into a single expression which use generator expression as necessary. function(z_vcpkg_cmake_config_fixup_merge out_var release_var debug_var) set(release_libs "VCPKG;${${release_var}}") string(REGEX REPLACE ";optimized;([^;]*)" ";\\1" release_libs "${release_libs}") string(REGEX REPLACE ";debug;([^;]*)" ";" release_libs "${release_libs}") list(REMOVE_AT release_libs 0) list(FILTER release_libs EXCLUDE REGEX [[^\\[$]<\\[$]:]]) list(TRANSFORM release_libs REPLACE [[^\\[$]<\\[$]>:(.*)>$]] "\\1") set(debug_libs "VCPKG;${${debug_var}}") string(REGEX REPLACE ";optimized;([^;]*)" ";" debug_libs "${debug_libs}") string(REGEX REPLACE ";debug;([^;]*)" ";\\1" debug_libs "${debug_libs}") list(REMOVE_AT debug_libs 0) list(FILTER debug_libs EXCLUDE REGEX [[^\\[$]<\\[$]>:]]) list(TRANSFORM debug_libs REPLACE [[^\\[$]<\\[$]:(.*)>$]] "\\1") set(merged_libs "") foreach(release_lib debug_lib IN ZIP_LISTS release_libs debug_libs) if(release_lib STREQUAL debug_lib) list(APPEND merged_libs "${release_lib}") else() if(release_lib) list(APPEND merged_libs "\\\$<\\\$>:${release_lib}>") endif() if(debug_lib) list(APPEND merged_libs "\\\$<\\\$:${debug_lib}>") endif() endif() endforeach() set("${out_var}" "${merged_libs}" PARENT_SCOPE) endfunction() ================================================ FILE: ports/vcpkg-cmake-get-vars/cmake-get-vars.cmake.in ================================================ # Set VCPKG_TRACE_CMAKE_GET_VARS to trace file path and call stack on every load. if(VCPKG_TRACE_CMAKE_GET_VARS) message(WARNING "Loading CMake variables from ${CMAKE_CURRENT_LIST_FILE}") elseif(NOT Z_VCPKG_CMAKE_GET_VARS_FILE_LAST_LOADED STREQUAL "${CMAKE_CURRENT_LIST_FILE}") set(Z_VCPKG_CMAKE_GET_VARS_FILE_LAST_LOADED "${CMAKE_CURRENT_LIST_FILE}" CACHE INTERNAL "") message(STATUS "Loading CMake variables from ${CMAKE_CURRENT_LIST_FILE}") endif() if("@VCPKG_BUILD_TYPE@" STREQUAL "" OR "@VCPKG_BUILD_TYPE@" STREQUAL "release") include("${CMAKE_CURRENT_LIST_DIR}/cmake-get-vars@configuration_suffix@-@TARGET_TRIPLET@-rel.cmake.log") endif() if("@VCPKG_BUILD_TYPE@" STREQUAL "" OR "@VCPKG_BUILD_TYPE@" STREQUAL "debug") include("${CMAKE_CURRENT_LIST_DIR}/cmake-get-vars@configuration_suffix@-@TARGET_TRIPLET@-dbg.cmake.log") endif() ================================================ FILE: ports/vcpkg-cmake-get-vars/cmake_get_vars/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) if(NOT VCPKG_OUTPUT_FILE) message(FATAL_ERROR "VCPKG_OUTPUT_FILE is required to be defined") endif() if(NOT CMAKE_BUILD_TYPE) message(FATAL_ERROR "CMAKE_BUILD_TYPE is required to be defined") else() string(TOUPPER "${CMAKE_BUILD_TYPE}" VCPKG_CONFIGS) endif() set(VCPKG_LANGUAGES "C;CXX" CACHE STRING "Languages to enables for this project") project(get_cmake_vars LANGUAGES ${VCPKG_LANGUAGES}) set(OUTPUT_STRING "# Generator: ${CMAKE_CURRENT_LIST_FILE}\n") function(escaped out_var value) string(REPLACE "\\" "\\\\" value "${value}") string(REPLACE "\"" "\\\"" value "${value}") string(REPLACE "\$" "\\\$" value "${value}") set(${out_var} "${value}" PARENT_SCOPE) endfunction() # Build default checklists list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_SIZEOF_VOID_P CMAKE_LIBRARY_PATH_FLAG MSVC MSVC_VERSION) if(ANDROID) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_ANDROID_ARCH CMAKE_ANDROID_ARCH_ABI CMAKE_ANDROID_ARM_MODE CMAKE_ANDROID_ARM_NEON CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION CMAKE_ANDROID_NDK_VERSION CMAKE_ANDROID_STL_TYPE ) # Forward legacy variables from older NDKs if("${CMAKE_ANDROID_ARCH}" STREQUAL "") set(CMAKE_ANDROID_ARCH "${ANDROID_ARCH_NAME}") endif() if("${CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG}" STREQUAL "") set(CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG "${ANDROID_HOST_TAG}") endif() if(CMAKE_SYSTEM_VERSION STREQUAL "1" AND ANDROID_PLATFORM_LEVEL GREATER "1") set(CMAKE_SYSTEM_VERSION "${ANDROID_PLATFORM_LEVEL}") endif() endif() if(APPLE) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT) endif() # Programs to check set(PROGLIST AR DLLTOOL LINKER MT NM OBJCOPY OBJDUMP RANLIB STRIP) foreach(prog IN LISTS PROGLIST) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}) endforeach() set(COMPILERS ${VCPKG_LANGUAGES} RC) foreach(prog IN LISTS COMPILERS) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}_COMPILER) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}_COMPILER_ID) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}_COMPILER_VERSION) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}_COMPILER_FRONTEND_VARIANT) endforeach() # Variables to check foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD_INCLUDE_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD_LIBRARIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILE_FEATURES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_EXTENSION) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILER_TARGET) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_VARS_TO_CHECK) # Environment variables to check. list(APPEND VCPKG_DEFAULT_ENV_VARS_TO_CHECK PATH INCLUDE C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) list(REMOVE_DUPLICATES VCPKG_DEFAULT_ENV_VARS_TO_CHECK) #Flags to check. Flags are a bit special since they are configuration aware. set(FLAGS ${VCPKG_LANGUAGES} RC SHARED_LINKER STATIC_LINKER EXE_LINKER) foreach(flag IN LISTS FLAGS) list(APPEND VCPKG_DEFAULT_FLAGS_TO_CHECK CMAKE_${flag}_FLAGS) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_FLAGS_TO_CHECK) #Language-specific flags. foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_LANG_FLAGS CMAKE_${_lang}_FLAGS) endforeach() list(REMOVE_DUPLICATES VCPKG_LANG_FLAGS) # TODO if ever necessary: Properties to check set(VCPKG_VAR_PREFIX "VCPKG_DETECTED" CACHE STRING "Variable prefix to use for detected flags") set(VCPKG_VARS_TO_CHECK "${VCPKG_DEFAULT_VARS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") set(VCPKG_FLAGS_TO_CHECK "${VCPKG_DEFAULT_FLAGS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") set(VCPKG_ENV_VARS_TO_CHECK "${VCPKG_DEFAULT_ENV_VARS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK VCPKG_FLAGS_TO_CHECK) escaped(value "${${VAR}}") string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${value}\")\n") endforeach() foreach(_env IN LISTS VCPKG_ENV_VARS_TO_CHECK) if(CMAKE_HOST_WIN32) string(REPLACE "\\" "/" value "$ENV{${_env}}") escaped(value "${value}") else() escaped(value "$ENV{${_env}}") endif() string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_ENV_${_env} \"${value}\")\n") endforeach() set(EXTRA_FLAGS "") if(APPLE) if(CMAKE_OSX_SYSROOT) string(APPEND EXTRA_FLAGS " -isysroot \"${CMAKE_OSX_SYSROOT}\"") endif() foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES) string(APPEND EXTRA_FLAGS " -arch ${arch}") endforeach() if(CMAKE_OSX_DEPLOYMENT_TARGET) list(GET VCPKG_LANGUAGES 0 lang) string(APPEND EXTRA_FLAGS " ${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") unset(lang) endif() endif() set(target_param "") list(GET VCPKG_LANGUAGES 0 lang) if(CMAKE_${lang}_COMPILER_TARGET) if (CMAKE_${lang}_COMPILER_ID STREQUAL Clang) set(target_param "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET}${CMAKE_${lang}_COMPILER_TARGET}") elseif(CMAKE_${lang}_COMPILE_OPTIONS_TARGET) set(target_param "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET} ${CMAKE_${lang}_COMPILER_TARGET}") endif() endif() if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") string(APPEND EXTRA_FLAGS " \"${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}\"") else() string(APPEND EXTRA_FLAGS " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} \"${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}\"") endif() endif() set(extra_flags_compile "") set(extra_flags_link "") if(CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) if(CMAKE_SYSROOT_COMPILE) string(APPEND extra_flags_compile " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT_COMPILE}\"") elseif(CMAKE_SYSROOT) string(APPEND extra_flags_compile " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}\"") endif() if(CMAKE_SYSROOT_LINK) string(APPEND extra_flags_link " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT_LINK}\"") elseif(CMAKE_SYSROOT) string(APPEND extra_flags_link " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}\"") endif() endif() set(flags_to_add_target_compile "${VCPKG_LANGUAGES}") set(flags_to_add_target_link SHARED_LINKER EXE_LINKER STATIC_LINKER MODULE_LINKER) foreach(flags IN LISTS flags_to_add_target_compile flags_to_add_target_link) set(${flags}_FLAGS "${target_param} ${CMAKE_${flags}_FLAGS} ${CMAKE_${flags}_FLAGS_${VCPKG_CONFIGS}} ${EXTRA_FLAGS}") endforeach() foreach(flags IN LISTS flags_to_add_target_compile) string(APPEND ${flags}_FLAGS " ${extra_flags_compile}") string(STRIP ${flags}_FLAGS "${${flags}_FLAGS}") endforeach() foreach(flags IN LISTS flags_to_add_target_link) string(APPEND ${flags}_FLAGS " ${extra_flags_link}") string(STRIP ${flags}_FLAGS "${${flags}_FLAGS}") endforeach() foreach(flags STATIC_LINKER RC) set(${flags}_FLAGS "${CMAKE_${flags}_FLAGS} ${CMAKE_${flags}_FLAGS_${VCPKG_CONFIGS}}") string(STRIP ${flags}_FLAGS "${${flags}_FLAGS}") endforeach() foreach(incdir IN LISTS CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES) string(APPEND CXX_FLAGS " \"${CMAKE_INCLUDE_FLAG_CXX}${incdir}\"") endforeach() foreach(incdir IN LISTS CMAKE_C_STANDARD_INCLUDE_DIRECTORIES) string(APPEND C_FLAGS " \"${CMAKE_INCLUDE_FLAG_C}${incdir}\"") endforeach() foreach(flag ${VCPKG_LANGUAGES} SHARED_LINKER EXE_LINKER STATIC_LINKER MODULE_LINKER RC) # When using MSVC, maybe transform /flags to -flags. # When cross compiling, "/flags" may be an absolute path starting with /, so don't transform. # Otherwise, transform to improve compatibility with scripts interpreting "/flags" as a path. if(MSVC AND "${CMAKE_HOST_SYSTEM_NAME}" MATCHES "Windows") # This implementation is imperfect because it fails on directories with trailing spaces, # but those are rare. string(REGEX REPLACE "(^| )/" "\\1-" ${flag}_FLAGS "${${flag}_FLAGS}") if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if("${flag}" STREQUAL "CXX") string(APPEND ${flag}_FLAGS " -ZW:nostdlib") endif() endif() endif() escaped(value "${${flag}_FLAGS}") string(APPEND OUTPUT_STRING "set(VCPKG_COMBINED_${flag}_FLAGS_${VCPKG_CONFIGS} \"${value}\")\n") endforeach() file(WRITE "${VCPKG_OUTPUT_FILE}" "${OUTPUT_STRING}") # Programs: # CMAKE_AR # CMAKE__COMPILER_AR (Wrapper) # CMAKE_RANLIB # CMAKE__COMPILER_RANLIB # CMAKE_STRIP # CMAKE_NM # CMAKE_OBJDUMP # CMAKE_DLLTOOL # CMAKE_MT # CMAKE_LINKER # CMAKE_C_COMPILER # CMAKE_CXX_COMPILER # CMAKE_RC_COMPILER # Program details: # CMAKE__COMPILER_ID # CMAKE__COMPILER_VERSION # MSVC # MSVC_VERSION # Flags: # CMAKE__FLAGS # CMAKE__FLAGS_ # CMAKE_RC_FLAGS # CMAKE_SHARED_LINKER_FLAGS # CMAKE_SHARED_LINKER_FLAGS_ # CMAKE_STATIC_LINKER_FLAGS # CMAKE_STATIC_LINKER_FLAGS_ # CMAKE_EXE_LINKER_FLAGS # CMAKE_EXE_LINKER_FLAGS_ # Additional information: # CMAKE_SIZEOF_VOID_P # CMAKE_CROSSCOMPILING # CMAKE_SYSTEM_NAME # CMAKE_HOST_SYSTEM_NAME # CMAKE_SYSTEM_PROCESSOR # CMAKE_HOST_SYSTEM_PROCESSOR ================================================ FILE: ports/vcpkg-cmake-get-vars/portfile.cmake ================================================ if(VCPKG_CROSSCOMPILING) # make FATAL_ERROR in CI when issue #16773 fixed message(WARNING "vcpkg-cmake-get-vars is a host-only port; please mark it as a host port in your dependencies.") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_get_vars.cmake" "${CMAKE_CURRENT_LIST_DIR}/cmake_get_vars" "${CMAKE_CURRENT_LIST_DIR}/cmake-get-vars.cmake.in" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-cmake-get-vars/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_cmake_get_vars.cmake") ================================================ FILE: ports/vcpkg-cmake-get-vars/vcpkg.json ================================================ { "name": "vcpkg-cmake-get-vars", "version-date": "2025-05-29", "documentation": "https://vcpkg.io/en/docs/README.html", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/vcpkg-cmake-get-vars/vcpkg_cmake_get_vars.cmake ================================================ include_guard(GLOBAL) set(Z_VCPKG_CMAKE_GET_VARS_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_DIR}" CACHE INTERNAL "") function(vcpkg_cmake_get_vars out_file) cmake_parse_arguments(PARSE_ARGV 1 arg "" "" "ADDITIONAL_LANGUAGES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(languages C CXX ${arg_ADDITIONAL_LANGUAGES}) list(SORT languages) list(REMOVE_DUPLICATES languages) string(MAKE_C_IDENTIFIER "_${languages}" configuration_suffix) if(NOT DEFINED CACHE{Z_VCPKG_CMAKE_GET_VARS_FILE${configuration_suffix}}) set("Z_VCPKG_CMAKE_GET_VARS_FILE${configuration_suffix}" "${CURRENT_BUILDTREES_DIR}/cmake-get-vars${configuration_suffix}-${TARGET_TRIPLET}.cmake.log" CACHE PATH "The file to include to access the CMake variables from a generated project.") vcpkg_cmake_configure( SOURCE_PATH "${Z_VCPKG_CMAKE_GET_VARS_CURRENT_LIST_DIR}/cmake_get_vars" OPTIONS "-DVCPKG_LANGUAGES=${languages}" OPTIONS_DEBUG "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-get-vars${configuration_suffix}-${TARGET_TRIPLET}-dbg.cmake.log" OPTIONS_RELEASE "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-get-vars${configuration_suffix}-${TARGET_TRIPLET}-rel.cmake.log" LOGFILE_BASE cmake-get-vars${configuration_suffix}-${TARGET_TRIPLET} Z_CMAKE_GET_VARS_USAGE # be quiet, don't set variables... ) configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/cmake-get-vars.cmake.in" "${Z_VCPKG_CMAKE_GET_VARS_FILE${configuration_suffix}}" @ONLY) endif() set("${out_file}" "${Z_VCPKG_CMAKE_GET_VARS_FILE${configuration_suffix}}" PARENT_SCOPE) endfunction() ================================================ FILE: ports/vcpkg-get-python/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt") set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-get-python/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) function(vcpkg_get_vcpkg_installed_python out_python) cmake_parse_arguments(PARSE_ARGV 1 "arg" "INTERPRETER" "" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) # vcpkg installed python on !windows works as normal python would work. set(${out_python} "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python3" PARENT_SCOPE) return() endif() if(DEFINED CACHE{z_vcpkg_get_vcpkg_installed_python}) set(${out_python} "${z_vcpkg_get_vcpkg_installed_python}" PARENT_SCOPE) return() elseif(arg_INTERPRETER AND DEFINED CACHE{z_vcpkg_get_vcpkg_installed_python_interpreter}) set(${out_python} "${z_vcpkg_get_vcpkg_installed_python_interpreter}" PARENT_SCOPE) return() endif() # On windows python is unable to lookup DLLs, so a manual venv is created set(python_home "${CURRENT_HOST_INSTALLED_DIR}/tools/python3") set(python_base "${CURRENT_BUILDTREES_DIR}/python-${TARGET_TRIPLET}") file(GLOB python_files LIST_DIRECTORIES false "${python_home}/*") if(EXISTS "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/DLLs") file(COPY "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/DLLs/" DESTINATION "${python_base}/DLLs") endif() file(COPY ${python_files} DESTINATION "${python_base}/Scripts") file(MAKE_DIRECTORY "${python_base}/Lib/site-packages") file(WRITE "${python_base}/pyvenv.cfg" " home = ${python_home} include-system-site-packages = false version = ${PYTHON3_VERSION} executable = ${python_home}/python.exe command = ${python_home}/python.exe -m venv ${python_base} " ) file(WRITE "${python_base}/Lib/site-packages/sitecustomize.py" " import os import sys from pathlib import Path import site #enable direct lookup of installed site-packages without the need to copy them site.addsitedir(sys.base_prefix + '/Lib/site-packages') vcpkg_bin_path = Path(sys.base_prefix + '/../../bin') if vcpkg_bin_path.is_dir(): os.add_dll_directory(vcpkg_bin_path) " ) # This part is intentionally copies headers and link libraries from the target # installation (CURRENT_INSTALLED_DIR): The function provides infrastructure for # building extensions for the target python while running the host python interpreter. # The calling port is responsible to provided the target python3 dependency. # However, it is possible to use just the interpreter, # e.g. for running extensions already installed in the host triplet. if(EXISTS "${CURRENT_INSTALLED_DIR}/lib/python${PYTHON3_VERSION_MAJOR}${PYTHON3_VERSION_MINOR}.lib") file(COPY "${CURRENT_INSTALLED_DIR}/${PYTHON3_INCLUDE}/" DESTINATION "${python_base}/include") set(suffix "PCBuild/AMD64") # TODO: ask python for the correct suffix. file(COPY "${CURRENT_INSTALLED_DIR}/lib/python${PYTHON3_VERSION_MAJOR}${PYTHON3_VERSION_MINOR}.lib" DESTINATION "${python_base}/${suffix}") set(z_vcpkg_get_vcpkg_installed_python "${python_base}/Scripts/python.exe" CACHE INTERNAL "") elseif(arg_INTERPRETER) set(z_vcpkg_get_vcpkg_installed_python_interpreter "${python_base}/Scripts/python.exe" CACHE INTERNAL "") else() message(${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL} "Target python3 installation was not found, and the INTERPRETER wasn't given." " Either add a \"python3\" dependency to ${PORT}," " or add 'INTERPRETER' to the '${CMAKE_CURRENT_FUNCTION}' call." ) endif() set(${out_python} "${python_base}/Scripts/python.exe" PARENT_SCOPE) endfunction() ================================================ FILE: ports/vcpkg-get-python/vcpkg.json ================================================ { "name": "vcpkg-get-python", "version-date": "2025-02-09", "license": "MIT", "supports": "native" } ================================================ FILE: ports/vcpkg-get-python-packages/copyright ================================================ Copyright (c) Microsoft Corporation All rights reserved. MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: ports/vcpkg-get-python-packages/portfile.cmake ================================================ file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CMAKE_CURRENT_LIST_DIR}/copyright" "${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_get_python_packages.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") include("${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_get_python_packages.cmake") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: ports/vcpkg-get-python-packages/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_get_python_packages.cmake") ================================================ FILE: ports/vcpkg-get-python-packages/vcpkg.json ================================================ { "name": "vcpkg-get-python-packages", "version-date": "2025-04-05", "documentation": "https://learn.microsoft.com/en-us/vcpkg/maintainers/functions/vcpkg_get_python_packages", "license": "MIT", "supports": "native" } ================================================ FILE: ports/vcpkg-get-python-packages/x_vcpkg_get_python_packages.cmake ================================================ include_guard(GLOBAL) function(x_vcpkg_get_python_packages) cmake_parse_arguments(PARSE_ARGV 0 arg "" "PYTHON_VERSION;PYTHON_EXECUTABLE;REQUIREMENTS_FILE;OUT_PYTHON_VAR" "PACKAGES") if(DEFINED arg_PYTHON_VERSION AND NOT DEFINED arg_PYTHON_EXECUTABLE) vcpkg_find_acquire_program(PYTHON${arg_PYTHON_VERSION}) set(arg_PYTHON_EXECUTABLE "${PYTHON${arg_PYTHON_VERSION}}") endif() if(NOT DEFINED arg_PYTHON_EXECUTABLE AND NOT DEFINED arg_PYTHON_VERSION) message(FATAL_ERROR "PYTHON_EXECUTABLE or PYTHON_VERSION must be specified.") elseif(NOT DEFINED arg_PYTHON_VERSION) if(arg_PYTHON_EXECUTABLE MATCHES "(python3|python-3)") set(arg_PYTHON_VERSION 3) else() set(arg_PYTHON_VERSION 2) endif() endif() if(NOT DEFINED arg_OUT_PYTHON_VAR) set(arg_OUT_PYTHON_VAR "PYTHON${arg_PYTHON_VERSION}") endif() if(NOT DEFINED arg_PACKAGES AND NOT DEFINED arg_REQUIREMENTS_FILE) message(FATAL_ERROR "PACKAGES or REQUIREMENTS_FILE must be specified.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() get_filename_component(python_dir "${arg_PYTHON_EXECUTABLE}" DIRECTORY) set(ENV{PYTHONNOUSERSITE} "1") if(CMAKE_HOST_WIN32 AND ("${python_dir}" MATCHES "(${DOWNLOADS}|${CURRENT_HOST_INSTALLED_DIR})" OR (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" AND ("${python_dir}" MATCHES "(${CURRENT_INSTALLED_DIR})")) )) # inside vcpkg and windows host or compatible target. if(NOT EXISTS "${python_dir}/easy_install${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(NOT EXISTS "${python_dir}/Scripts/pip${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(arg_PYTHON_VERSION STREQUAL 3) vcpkg_from_github( OUT_SOURCE_PATH PYFILE_PATH REPO pypa/get-pip REF 24.2 SHA512 7bcbc841564b7fc3cd2c109b9d3cfd34d853508edc9e040e9615fc0f9f18f74c7826d53671f65fa1abda3fd29a0a3f9f6114d9e9bdd6d120175ac207fd7ce321 ) vcpkg_execute_required_process(COMMAND "${arg_PYTHON_EXECUTABLE}" "${PYFILE_PATH}/public/get-pip.py" --no-warn-script-location WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "get-pip-${TARGET_TRIPLET}") elseif(arg_PYTHON_VERSION STREQUAL 2) vcpkg_download_distfile(PYFILE URLS "https://bootstrap.pypa.io/pip/2.7/get-pip.py" FILENAME "get-pip.py" SHA512 8c74bdaff57a2dcf2aa69c4c218b7d5f3bf4a470dbda2d7c8d1b53862c84e2a83cd04c3cd20cf80dc0e4076b113a734413e31d6a9853f41e894398e7f88f848e ) vcpkg_execute_required_process(COMMAND "${arg_PYTHON_EXECUTABLE}" "${PYFILE}" --no-warn-script-location WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "get-pip-${TARGET_TRIPLET}") endif() endif() vcpkg_execute_required_process(COMMAND "${python_dir}/Scripts/pip${VCPKG_HOST_EXECUTABLE_SUFFIX}" install virtualenv --no-warn-script-location WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "pip-install-virtualenv-${TARGET_TRIPLET}") else() vcpkg_execute_required_process(COMMAND "${python_dir}/easy_install${VCPKG_HOST_EXECUTABLE_SUFFIX}" virtualenv --no-warn-script-location #${_package} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "easy-install-virtualenv-${TARGET_TRIPLET}") endif() endif() set(venv_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-venv") file(REMOVE_RECURSE "${venv_path}") # Remove old venv file(MAKE_DIRECTORY "${venv_path}") if(CMAKE_HOST_WIN32) file(MAKE_DIRECTORY "${python_dir}/DLLs") set(python_sub_path /Scripts) set(python_venv virtualenv) file(GLOB python_zipped_stdlib "${python_dir}/python3*.zip") if(python_zipped_stdlib) file(COPY ${python_zipped_stdlib} DESTINATION "${venv_path}/Scripts") endif() set(python_venv_options "--app-data" "${venv_path}/data") else() set(python_sub_path /bin) if(arg_PYTHON_VERSION STREQUAL 3) set(python_venv venv) elseif(arg_PYTHON_VERSION STREQUAL 2) set(python_venv virtualenv) endif() set(python_venv_options --symlinks) endif() set(ENV{PYTHONNOUSERSITE} "1") message(STATUS "Setting up python virtual environment...") vcpkg_execute_required_process(COMMAND "${arg_PYTHON_EXECUTABLE}" -I -m "${python_venv}" ${python_venv_options} "${venv_path}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "venv-setup-${TARGET_TRIPLET}") vcpkg_add_to_path(PREPEND "${venv_path}${python_sub_path}") set(${arg_OUT_PYTHON_VAR} "${venv_path}${python_sub_path}/python${VCPKG_HOST_EXECUTABLE_SUFFIX}") set(ENV{VIRTUAL_ENV} "${venv_path}") unset(ENV{PYTHONHOME}) unset(ENV{PYTHONPATH}) if(DEFINED arg_REQUIREMENTS_FILE) message(STATUS "Installing requirements from: ${arg_REQUIREMENTS_FILE}") vcpkg_execute_required_process(COMMAND "${${arg_OUT_PYTHON_VAR}}" -I -m pip install -r ${arg_REQUIREMENTS_FILE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "pip-install-requirements-file-${TARGET_TRIPLET}") endif() if(DEFINED arg_PACKAGES) message(STATUS "Installing python packages: ${arg_PACKAGES}") vcpkg_execute_required_process(COMMAND "${${arg_OUT_PYTHON_VAR}}" -I -m pip install ${arg_PACKAGES} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "pip-install-packages-${TARGET_TRIPLET}") endif() message(STATUS "Setting up python virtual environment... finished.") set(${arg_OUT_PYTHON_VAR} "${${arg_OUT_PYTHON_VAR}}" PARENT_SCOPE) set(${arg_OUT_PYTHON_VAR} "${${arg_OUT_PYTHON_VAR}}" CACHE PATH "" FORCE) endfunction() ================================================ FILE: ports/vcpkg-gfortran/portfile.cmake ================================================ include(vcpkg_find_fortran) vcpkg_find_fortran(FORTRAN_CMAKE) if(VCPKG_USE_INTERNAL_Fortran) set(VCPKG_CRT_LINKAGE dynamic) # Will always be dynamic no way to overwrite internal CRT linkage here vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(HOST_ARCH $ENV{PROCESSOR_ARCHITEW6432}) else() set(HOST_ARCH $ENV{PROCESSOR_ARCHITECTURE}) endif() if(HOST_ARCH MATCHES "(amd|AMD)64") set(MINGW_W w64) set(MSYS_HOST x86_64) elseif(HOST_ARCH MATCHES "(x|X)86") set(MINGW_W w32) set(MSYS_HOST i686) else() message(FATAL_ERROR "Unsupported host architecture ${HOST_ARCH}!" ) endif() if(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)64") set(MSYS_TARGET x86_64) set(MINGW_W_TARGET 64) set(GCC_LIB_SUFFIX s_seh-1) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86") set(MSYS_TARGET i686) set(MINGW_W_TARGET 32) set(GCC_LIB_SUFFIX s_dw2-1) else() message(FATAL_ERROR "Unsupported target architecture ${VCPKG_TARGET_ARCHITECTURE}!" ) endif() set(MINGW_BIN "${vcpkg_find_fortran_MSYS_ROOT}/mingw${MINGW_W_TARGET}/bin/") set(MINGW_Fortran_DLLS "${MINGW_BIN}/libgfortran-5.dll" "${MINGW_BIN}/libquadmath-0.dll" "${MINGW_BIN}/libwinpthread-1.dll" "${MINGW_BIN}/libgcc_${GCC_LIB_SUFFIX}.dll" ) file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin) file(COPY ${MINGW_Fortran_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(COPY ${MINGW_Fortran_DLLS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY "${vcpkg_find_fortran_MSYS_ROOT}/mingw${MINGW_W_TARGET}/share/licenses" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${vcpkg_find_fortran_MSYS_ROOT}/mingw${MINGW_W_TARGET}/share/licenses/crt/COPYING.MinGW-w64-runtime.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT enabled) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) else() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) endif() ================================================ FILE: ports/vcpkg-gfortran/vcpkg.json ================================================ { "name": "vcpkg-gfortran", "version": "3", "port-version": 3, "description": "Metaport to install gfortran dependencies from msys if VCPKG_USE_EXTERNAL_Fortran is false", "supports": "windows & !arm & !uwp" } ================================================ FILE: ports/vcpkg-gn/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(NOT TARGET_TRIPLET STREQUAL _HOST_TRIPLET) message(FATAL_ERROR "vcpkg-gn is a host-only port; please mark it as a host port in your dependencies.") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_gn_configure.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_gn_install.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vcpkg-gn/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_gn_configure.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_gn_install.cmake") ================================================ FILE: ports/vcpkg-gn/vcpkg.json ================================================ { "name": "vcpkg-gn", "version-date": "2025-08-05", "description": "GN is a meta-build system that generates build files for Ninja (GN is the build system for Chromium, Fuchsia, and related projects)", "documentation": "https://gn.googlesource.com/gn/+/main/docs/reference.md", "license": "MIT", "supports": "native", "dependencies": [ { "name": "vcpkg-tool-gn", "host": true } ] } ================================================ FILE: ports/vcpkg-gn/vcpkg_gn_configure.cmake ================================================ include_guard(GLOBAL) function(z_vcpkg_gn_configure_generate) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;CONFIG;ARGS" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: generate was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() message(STATUS "Generating build (${arg_CONFIG})...") vcpkg_execute_required_process( COMMAND "${GN}" gen "${CURRENT_BUILDTREES_DIR}/${arg_CONFIG}" "${arg_ARGS}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" LOGNAME "generate-${arg_CONFIG}" ) endfunction() function(vcpkg_gn_configure) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_gn_configure was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified.") endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}") vcpkg_find_acquire_program(GN) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_gn_configure_generate( SOURCE_PATH "${arg_SOURCE_PATH}" CONFIG "${TARGET_TRIPLET}-dbg" ARGS "--args=${arg_OPTIONS} ${arg_OPTIONS_DEBUG}" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_gn_configure_generate( SOURCE_PATH "${arg_SOURCE_PATH}" CONFIG "${TARGET_TRIPLET}-rel" ARGS "--args=${arg_OPTIONS} ${arg_OPTIONS_RELEASE}" ) endif() endfunction() ================================================ FILE: ports/vcpkg-gn/vcpkg_gn_install.cmake ================================================ include_guard(GLOBAL) function(z_vcpkg_gn_install_get_target_type out_var) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "SOURCE_PATH;BUILD_DIR;TARGET" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: get_target_type was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() execute_process( COMMAND "${GN}" desc "${arg_BUILD_DIR}" "${arg_TARGET}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE ) if(output MATCHES [[type: ([A-Za-z0-9_]+)]]) set("${out_var}" "${CMAKE_MATCH_1}" PARENT_SCOPE) else() message(FATAL_ERROR "invalid result from `gn desc`: ${output}") endif() endfunction() function(z_vcpkg_gn_install_get_desc out_var) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "SOURCE_PATH;BUILD_DIR;TARGET;WHAT_TO_DISPLAY" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: get_desc was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() execute_process( COMMAND "${GN}" desc "${arg_BUILD_DIR}" "${arg_TARGET}" "${arg_WHAT_TO_DISPLAY}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE ) string(REPLACE ";" "\\;" output "${output}") string(REGEX REPLACE "\n|(\r\n)" ";" output "${output}") set("${out_var}" "${output}" PARENT_SCOPE) endfunction() function(z_vcpkg_gn_install_install) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;BUILD_DIR;INSTALL_DIR" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(target IN LISTS arg_TARGETS) # GN targets must start with a // z_vcpkg_gn_install_get_desc(outputs SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${arg_BUILD_DIR}" TARGET "//${target}" WHAT_TO_DISPLAY outputs ) z_vcpkg_gn_install_get_target_type(target_type SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${arg_BUILD_DIR}" TARGET "//${target}" ) foreach(output IN LISTS outputs) if(output MATCHES "^//") # relative path (e.g. //out/Release/target.lib) string(REGEX REPLACE "^//" "${arg_SOURCE_PATH}/" output "${output}") elseif(output MATCHES "^/" AND CMAKE_HOST_WIN32) # absolute path (e.g. /C:/path/to/target.lib) string(REGEX REPLACE "^/" "" output "${output}") endif() if(NOT EXISTS "${output}") message(WARNING "Output for target `${target}` doesn't exist: ${output}.") continue() endif() if(target_type STREQUAL "executable") file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/tools") elseif(output MATCHES "(\\.dll|\\.pdb)$") file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/bin") else() file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/lib") endif() endforeach() endforeach() endfunction() function(vcpkg_gn_install) cmake_parse_arguments(PARSE_ARGV 0 arg "" "SOURCE_PATH" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_gn_install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified.") endif() vcpkg_build_ninja(TARGETS ${arg_TARGETS}) vcpkg_find_acquire_program(GN) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_gn_install_install( SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" INSTALL_DIR "${CURRENT_PACKAGES_DIR}/debug" TARGETS ${arg_TARGETS} ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_gn_install_install( SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" INSTALL_DIR "${CURRENT_PACKAGES_DIR}" TARGETS ${arg_TARGETS} ) endif() endfunction() ================================================ FILE: ports/vcpkg-make/configure.ac ================================================ AC_INIT([check-autoconf], [1.0]) AM_INIT_AUTOMAKE # vcpkg begin m4_ifndef([AX_CHECK_COMPILE_FLAG], [m4_errprintn([System package autoconf-archive is missing.])]) m4_ifndef([LT_INIT], [m4_errprintn([System package libtool is missing.])]) m4_ifndef([LTDL_INIT], [m4_errprintn([System package libltdl-dev is missing.])]) # vcpkg end AC_OUTPUT ================================================ FILE: ports/vcpkg-make/portfile.cmake ================================================ set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) set(automake_version 1.17) vcpkg_download_distfile(ARCHIVE URLS "https://ftpmirror.gnu.org/gnu/automake/automake-${automake_version}.tar.gz" "https://ftp.gnu.org/gnu/automake/automake-${automake_version}.tar.gz" "https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/automake/automake-${automake_version}.tar.gz" FILENAME "automake-${automake_version}.tar.gz" SHA512 11357dfab8cbf4b5d94d9d06e475732ca01df82bef1284888a34bd558afc37b1a239bed1b5eb18a9dbcc326344fb7b1b301f77bb8385131eb8e1e118b677883a ) vcpkg_extract_source_archive( automake_source ARCHIVE "${ARCHIVE}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/configure.ac" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_common.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_configure.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_install.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_make.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_scripts.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(COPY "${automake_source}/lib/ar-lib" "${automake_source}/lib/compile" "${CMAKE_CURRENT_LIST_DIR}/wrappers/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/wrappers" ) vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") include("${CURRENT_PORT_DIR}/vcpkg_scripts.cmake") include("${CURRENT_PORT_DIR}/vcpkg_make.cmake") cmake_path(GET VCPKG_DETECTED_CMAKE_C_COMPILER FILENAME compiler_name) z_vcpkg_make_determine_target_triplet(build_opt_triplet COMPILER_NAME "${compiler_name}") set(build_opt_source "vcpkg") if(NOT build_opt_triplet) set(ENV{CC_FOR_BUILD} "${VCPKG_DETECTED_CMAKE_C_COMPILER}") vcpkg_execute_required_process( COMMAND "sh" -c "${automake_source}/lib/config.guess" OUTPUT_VARIABLE build_opt_triplet OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "config-guess-${TARGET_TRIPLET}" ) if(NOT build_opt_triplet) message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "Unknown autotools triplet for vcpkg ${TARGET_TRIPLET} triplet. " "You may need to define VCPKG_MAKE_BUILD_TRIPLET in the triplet file." ) endif() set(build_opt_source "config.guess") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/build_opt_triplet.txt" "${build_opt_triplet}\n") message(STATUS "${TARGET_TRIPLET} autotools triplet: ${build_opt_triplet} (from ${build_opt_source})") vcpkg_install_copyright( COMMENT [[ The cmake scripts are under vcpkg's MIT license terms, see LICENSE.txt below. The port also installs shell scripts from GNU Automake. These scripts are under GPL-2.0-or-later, see COPYING below. ]] FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt" "${automake_source}/COPYING" ) ================================================ FILE: ports/vcpkg-make/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake-get-vars/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_configure.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_install.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_scripts.cmake") ================================================ FILE: ports/vcpkg-make/vcpkg.json ================================================ { "name": "vcpkg-make", "version-date": "2026-01-01", "documentation": "https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_make_configure", "license": null, "supports": "native", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true } ] } ================================================ FILE: ports/vcpkg-make/vcpkg_make.cmake ================================================ # Be aware of https://github.com/microsoft/vcpkg/pull/31228 include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make_common.cmake") function(vcpkg_run_shell) cmake_parse_arguments(PARSE_ARGV 0 arg "" "WORKING_DIRECTORY;LOGNAME" "SHELL;COMMAND;SAVE_LOG_FILES" ) z_vcpkg_unparsed_args(FATAL_ERROR) z_vcpkg_required_args(SHELL WORKING_DIRECTORY COMMAND LOGNAME) set(extra_opts "") if(arg_SAVE_LOG_FILES) set(extra_opts SAVE_LOG_FILES ${arg_SAVE_LOG_FILES}) endif() # In the construction of the shell command, we need to handle environment variable assignments and configure options differently: # # 1. Environment variable assignments (e.g., CC, CXX, etc.): # - These must not be quoted. # - If the environment variable names (e.g., CC, CXX, CC_FOR_BUILD) are quoted, the shell will treat them as part of the value, breaking the declaration. # - For example, CC='/usr/bin/gcc' is valid, but "CC='/usr/bin/gcc'" would cause an error because the shell would try to use the entire quoted string as the variable name. # # 2. Options passed to the configure script: # - The options should be quoted to ensure that any option containing spaces or special characters is treated as a single argument. # - For instance, --prefix=/some path/with spaces would break if not quoted, as the shell would interpret each word as a separate argument. # - By quoting the options like "--prefix=/some path/with spaces", we ensure they are passed correctly to the configure script as a single argument. # # The resulting command should look something like this: # V=1 CC='/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -arch arm64' # CXX='/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -arch arm64' # CC_FOR_BUILD='/Library/Developer/CommandLineTools/usr/bin/cc -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -arch arm64' # CPP_FOR_BUILD='/Library/Developer/CommandLineTools/usr/bin/cc -E -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -arch arm64' # CXX_FOR_BUILD='/Library/Developer/CommandLineTools/usr/bin/c++ -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX14.4.sdk -arch arm64' # .... # ./../src/8bc98c3a0d-84009aba94.clean/configure "--enable-pic" "--disable-lavf" "--disable-swscale" "--disable-avs" ... vcpkg_list(JOIN arg_COMMAND " " arg_COMMAND) vcpkg_execute_required_process( COMMAND ${arg_SHELL} -c "${arg_COMMAND}" WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" LOGNAME "${arg_LOGNAME}" ${extra_opts} ) endfunction() function(vcpkg_run_shell_as_build) cmake_parse_arguments(PARSE_ARGV 0 arg "" "WORKING_DIRECTORY;LOGNAME" "SHELL;COMMAND;NO_PARALLEL_COMMAND;SAVE_LOG_FILES" ) z_vcpkg_unparsed_args(FATAL_ERROR) z_vcpkg_required_args(SHELL WORKING_DIRECTORY COMMAND LOGNAME) set(extra_opts "") if(arg_SAVE_LOG_FILES) set(extra_opts SAVE_LOG_FILES ${arg_SAVE_LOG_FILES}) endif() list(JOIN arg_COMMAND " " cmd) list(JOIN arg_NO_PARALLEL_COMMAND " " no_par_cmd) if(NOT no_par_cmd STREQUAL "") set(no_par_cmd NO_PARALLEL_COMMAND ${arg_SHELL} -c "${no_par_cmd}") endif() vcpkg_execute_build_process( COMMAND ${arg_SHELL} -c "${cmd}" ${no_par_cmd} WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" LOGNAME "${arg_LOGNAME}" ${extra_opts} ) endfunction() function(vcpkg_run_autoreconf shell_cmd work_dir) find_program(ACLOCAL NAMES aclocal) find_program(AUTORECONF NAMES autoreconf) find_program(LIBTOOLIZE NAMES libtoolize glibtoolize) set(missing "") if(NOT AUTORECONF) list(APPEND missing "autoconf") endif() if(NOT ACLOCAL) list(APPEND missing "automake") else() set(aclocal_check_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-aclocal") file(REMOVE_RECURSE "${aclocal_check_dir}") file(MAKE_DIRECTORY "${aclocal_check_dir}") file(COPY_FILE "${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-make/configure.ac" "${aclocal_check_dir}/configure.ac") vcpkg_run_shell( SHELL ${shell_cmd} COMMAND "${ACLOCAL}" --dry-run WORKING_DIRECTORY "${aclocal_check_dir}" LOGNAME "aclocal-${TARGET_TRIPLET}" ) file(STRINGS "${CURRENT_BUILDTREES_DIR}/aclocal-${TARGET_TRIPLET}-err.log" autoconf_archive REGEX "autoconf-archive") if(autoconf_archive MATCHES "missing") string(APPEND missing "autoconf-archive") endif() endif() if(NOT LIBTOOLIZE) list(APPEND missing "libtool") endif() if(missing) message(FATAL_ERROR "${PORT} currently requires the following programs from the system package manager: autoconf autoconf-archive automake libtoolize On Debian and Ubuntu derivatives: sudo apt install autoconf autoconf-archive automake libtool On recent Red Hat and Fedora derivatives: sudo dnf install autoconf autoconf-archive automake libtool On Arch Linux and derivatives: sudo pacman -S autoconf autoconf-archive automake libtool On Alpine: apk add autoconf autoconf-archive automake libtool On macOS: brew install autoconf autoconf-archive automake libtool\n") endif() if(EXISTS "${work_dir}/configure.ac") # Modeled after autoreconf's tracing behavior. file(READ "${work_dir}/configure.ac" configure_ac) find_program(AUTOPOINT NAMES autopoint) if(configure_ac MATCHES "AM_GNU_GETTEXT" AND NOT AUTOPOINT AND "$ENV{AUTOPOINT}" STREQUAL "") message(STATUS "${PORT} depends on gettext infrastructure.") message(STATUS "'set(ENV{AUTOPOINT} true)' might disable this dependency.") endif() find_program(GTKDOCIZE NAMES gtkdocize) if(configure_ac MATCHES "GTK_DOC_CHECK" AND NOT GTKDOCIZE AND "$ENV{GTKDOCIZE}" STREQUAL "") message(STATUS "${PORT} depends on gtk-doc infrastructure.") message(STATUS "'set(ENV{GTKDOCIZE} true)' might disable this dependency.") endif() file(STRINGS "${CURRENT_BUILDTREES_DIR}/aclocal-${TARGET_TRIPLET}-err.log" libltdl REGEX "libltdl") if(configure_ac MATCHES "LT_CONFIG_LTDL_DIR|LT_SYS_SYMBOL_USCORE" AND libltdl MATCHES "missing") message(FATAL_ERROR "${PORT} depends on ltdl development files from the system package manager: On Debian and Ubuntu derivatives: sudo apt install libltdl-dev On recent Red Hat and Fedora derivatives: sudo dnf install libtool-ltdl-devel\n") endif() endif() message(STATUS "Generating configure for ${TARGET_TRIPLET}") vcpkg_run_shell( SHELL ${shell_cmd} COMMAND "${AUTORECONF}" -vfi WORKING_DIRECTORY "${work_dir}" LOGNAME "autoconf-${TARGET_TRIPLET}" ) message(STATUS "Finished generating configure for ${TARGET_TRIPLET}") endfunction() function(vcpkg_make_setup_win_msys msys_out) list(APPEND msys_require_packages autoconf-wrapper automake-wrapper autoconf-archive binutils libtool make which) vcpkg_insert_msys_into_path(msys PACKAGES ${msys_require_packages}) find_program(PKGCONFIG NAMES pkgconf NAMES_PER_DIR PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf" NO_DEFAULT_PATH) set("${msys_out}" "${msys}" PARENT_SCOPE) endfunction() function(vcpkg_make_get_shell out_var) set(shell_options "") if(CMAKE_HOST_WIN32) if(NOT DEFINED VCPKG_MAKE_ACQUIRE_MSYS OR VCPKG_MAKE_ACQUIRE_MSYS) vcpkg_make_setup_win_msys(msys_root) set(shell_options --noprofile --norc --debug) set(shell_cmd "${msys_root}/usr/bin/bash.exe") else() message(STATUS "Not acquiring msys, reason: VCPKG_MAKE_ACQUIRE_MSYS=${VCPKG_MAKE_ACQUIRE_MSYS}") endif() endif() find_program(shell_cmd NAMES bash sh zsh REQUIRED) set("${out_var}" "${shell_cmd}" ${shell_options} PARENT_SCOPE) endfunction() function(z_vcpkg_make_determine_target_triplet out) cmake_parse_arguments(PARSE_ARGV 1 arg "" "COMPILER_NAME" "" ) z_vcpkg_unparsed_args(FATAL_ERROR) # --build: the machine you are building on # --host: the machine you are building for # --target: the machine that CC will produce binaries for # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host z_vcpkg_make_determine_target_arch(TARGET_ARCH) z_vcpkg_make_determine_host_arch(BUILD_ARCH) set(output "") if(VCPKG_MAKE_BUILD_TRIPLET MATCHES "--host=([^;]*)") set(output "${CMAKE_MATCH_1}") elseif(VCPKG_TARGET_IS_EMSCRIPTEN) set(output "${TARGET_ARCH}-unknown-emscripten") elseif(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) set(output "${TARGET_ARCH}-apple-darwin") elseif(VCPKG_TARGET_IS_UWP) # Needs to be different from --build to enable cross builds. set(output "${TARGET_ARCH}-unknown-mingw32") elseif(VCPKG_TARGET_IS_WINDOWS) set(output "${TARGET_ARCH}-pc-mingw32") elseif("${arg_COMPILER_NAME}" MATCHES "([^/]+)-(gcc|clang)(-[0-9]+)?$") # --host activates crosscompilation and provides the prefix of the host tools for the target. set(output "${CMAKE_MATCH_1}") elseif(NOT VCPKG_CROSSCOMPILING AND VCPKG_MAKE_BUILD_TRIPLET MATCHES "--build=([^;]+)") set(output "${CMAKE_MATCH_1}") elseif(NOT "${TARGET_ARCH}" STREQUAL "${BUILD_ARCH}") message(${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL} "Unable to determine autotools host triplet for cross-build. " "You can set the VCPKG_MAKE_HOST_TRIPLET variable for ${TARGET_TRIPLET}." ) endif() set("${out}" "${output}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_get_configure_triplets out) cmake_parse_arguments(PARSE_ARGV 1 arg "" "COMPILER_NAME" "" ) z_vcpkg_unparsed_args(FATAL_ERROR) set(output "${VCPKG_MAKE_BUILD_TRIPLET}") if(NOT output MATCHES "--host") z_vcpkg_make_determine_target_triplet(host_opt_triplet COMPILER_NAME "${arg_COMPILER_NAME}") if(host_opt_triplet) list(APPEND output "--host=${host_opt_triplet}") endif() endif() if(output MATCHES "--host" AND NOT output MATCHES "--build") file(STRINGS "${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-make/build_opt_triplet.txt" build_opt_triplet LIMIT_COUNT 1) if(build_opt_triplet) list(APPEND output "--build=${build_opt_triplet}") endif() endif() set("${out}" "${output}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_prepare_env config) cmake_parse_arguments(PARSE_ARGV 1 arg "ADD_BIN_TO_PATH" "" "" ) z_vcpkg_unparsed_args(FATAL_ERROR) # Used by CL vcpkg_host_path_list(PREPEND ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include") # Used by GCC vcpkg_host_path_list(PREPEND ENV{C_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") vcpkg_host_path_list(PREPEND ENV{CPLUS_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") # Flags should be set in the toolchain instead (Setting this up correctly requires a function named vcpkg_determined_cmake_compiler_flags which can also be used to setup CC and CXX etc.) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_backup_env_variables(VARS _CL_ _LINK_) # TODO: Should be CPP flags instead -> rewrite when vcpkg_determined_cmake_compiler_flags defined if(VCPKG_TARGET_IS_UWP) # Be aware that configure thinks it is crosscompiling due to: # error while loading shared libraries: VCRUNTIME140D_APP.dll: # cannot open shared object file: No such file or directory # IMPORTANT: The only way to pass linker flags through libtool AND the compile wrapper # is to use the CL and LINK environment variables !!! # (This is due to libtool and compiler wrapper using the same set of options to pass those variables around) file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}" VCToolsInstallDir) set(_replacement -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG "${VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE "${VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE}") set(ENV{_CL_} "$ENV{_CL_} -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\"") set(ENV{_LINK_} "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") endif() endif() # Setup environment set(ENV{CPPFLAGS} "${CPPFLAGS_${config}}") set(ENV{CPPFLAGS_FOR_BUILD} "${CPPFLAGS_${config}}") set(ENV{CFLAGS} "${CFLAGS_${config}}") set(ENV{CFLAGS_FOR_BUILD} "${CFLAGS_${config}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${config}}") set(ENV{RCFLAGS} "${RCFLAGS_${config}}") set(ENV{LDFLAGS} "${LDFLAGS_${config}}") set(ENV{LDFLAGS_FOR_BUILD} "${LDFLAGS_${config}}") if(ARFLAGS_${config} AND NOT (arg_USE_WRAPPERS AND VCPKG_TARGET_IS_WINDOWS)) # Target windows with wrappers enabled cannot forward ARFLAGS since it breaks the wrapper set(ENV{ARFLAGS} "${ARFLAGS_${config}}") endif() if(LINK_ENV_${config}) set(ENV{_LINK_} "${LINK_ENV_${config}}") endif() vcpkg_list(APPEND lib_env_vars LIB LIBPATH LIBRARY_PATH) foreach(lib_env_var IN LISTS lib_env_vars) if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${config}}/lib") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${CURRENT_INSTALLED_DIR}${path_suffix_${config}}/lib") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${config}}/lib/manual-link") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${CURRENT_INSTALLED_DIR}${path_suffix_${config}}/lib/manual-link") endif() endforeach() endfunction() function(z_vcpkg_make_restore_env) # Only variables which are inspected in vcpkg_make_prepare_env need to be restored here. # Rest is restored add the end of configure. vcpkg_restore_env_variables(VARS LIBRARY_PATH LIB LIBPATH PATH ) endfunction() function(vcpkg_make_run_configure) cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH" "CONFIG;SHELL;WORKING_DIRECTORY;CONFIGURE_PATH;CONFIGURE_ENV" "OPTIONS" ) z_vcpkg_unparsed_args(FATAL_ERROR) z_vcpkg_required_args(SHELL CONFIG WORKING_DIRECTORY CONFIGURE_PATH) vcpkg_prepare_pkgconfig("${arg_CONFIG}") set(prepare_env_opts "") z_vcpkg_make_prepare_env("${arg_CONFIG}" ${prepare_env_opts}) vcpkg_list(SET tmp) foreach(element IN LISTS arg_OPTIONS) string(REPLACE [["]] [[\"]] element "${element}") vcpkg_list(APPEND tmp "\"${element}\"") endforeach() vcpkg_list(JOIN tmp " " "arg_OPTIONS") set(command ${arg_CONFIGURE_ENV} ${arg_CONFIGURE_PATH} ${arg_OPTIONS}) message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${arg_CONFIG}}") vcpkg_run_shell( WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" LOGNAME "config-${TARGET_TRIPLET}-${suffix_${arg_CONFIG}}" SAVE_LOG_FILES config.log SHELL ${arg_SHELL} COMMAND V=1 ${command} ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(GLOB_RECURSE libtool_files "${arg_WORKING_DIRECTORY}*/libtool") foreach(lt_file IN LISTS libtool_files) file(READ "${lt_file}" _contents) string(REPLACE ".dll.lib" ".lib" _contents "${_contents}") file(WRITE "${lt_file}" "${_contents}") endforeach() endif() z_vcpkg_make_restore_env() vcpkg_restore_pkgconfig() endfunction() ================================================ FILE: ports/vcpkg-make/vcpkg_make_common.cmake ================================================ include_guard(GLOBAL) ### Mapping variables macro(z_vcpkg_make_set_common_vars) set(path_suffix_RELEASE "") set(path_suffix_DEBUG "/debug") set(suffix_RELEASE "rel") set(suffix_DEBUG "dbg") foreach(config IN ITEMS RELEASE DEBUG) set("workdir_${config}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${config}}") endforeach() set(buildtypes release) if(NOT VCPKG_BUILD_TYPE) list(PREPEND buildtypes debug) endif() endmacro() ### Autotool's crosscompiling by autotool's triplets in ARGN function(z_vcpkg_make_get_crosscompiling out_var) set(host "") set(build "") if(ARGN MATCHES "--host=([^;]*)") set(host "${CMAKE_MATCH_1}") endif() if(ARGN MATCHES "--build=([^;]*)") set(build "${CMAKE_MATCH_1}") endif() string(COMPARE NOTEQUAL "${host}" "${build}" is_crosscompiling) set("${out_var}" "${is_crosscompiling}" PARENT_SCOPE) endfunction() ### macro(z_vcpkg_make_get_cmake_vars) vcpkg_cmake_get_vars(cmake_vars_file ${Z_VCPKG_MAKE_GET_CMAKE_VARS_OPTS}) include("${cmake_vars_file}") endmacro() function(z_vcpkg_make_normalize_arch out_var value) if(${value} MATCHES "^(amd|AMD|x)64$") set(${out_var} x86_64 PARENT_SCOPE) elseif(${value} MATCHES "^(x|X)86$") set(${out_var} i686 PARENT_SCOPE) elseif(${value} MATCHES "^(ARM|arm)64$") set(${out_var} aarch64 PARENT_SCOPE) elseif(${value} MATCHES "^(ARM|arm)$") set(${out_var} arm PARENT_SCOPE) elseif(${value} MATCHES "^(x86_64|i686|aarch64)$" OR NOT VCPKG_TARGET_IS_WINDOWS) # Do nothing and assume valid architecture set("${out_var}" "${value}" PARENT_SCOPE) else() message(FATAL_ERROR "Unsupported architecture '${value}' in '${CMAKE_CURRENT_FUNCTION}'!" ) endif() endfunction() function(z_vcpkg_make_determine_host_arch out_var) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(arch $ENV{PROCESSOR_ARCHITEW6432}) elseif(DEFINED ENV{PROCESSOR_ARCHITECTURE}) set(arch $ENV{PROCESSOR_ARCHITECTURE}) else() if(NOT DEFINED VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR) z_vcpkg_make_get_cmake_vars() endif() set(arch "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endif() z_vcpkg_make_normalize_arch("${out_var}" "${arch}") set("${out_var}" "${${out_var}}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_determine_target_arch out_var) list(LENGTH VCPKG_OSX_ARCHITECTURES osx_archs_num) if(osx_archs_num GREATER_EQUAL 2 AND VCPKG_TARGET_IS_OSX) set(${out_var} "universal") else() z_vcpkg_make_normalize_arch(${out_var} "${VCPKG_TARGET_ARCHITECTURE}") endif() set("${out_var}" "${${out_var}}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_prepare_compile_flags) cmake_parse_arguments(PARSE_ARGV 0 arg "DISABLE_CPPFLAGS;NO_FLAG_ESCAPING;DISABLE_MSVC_WRAPPERS" "COMPILER_FRONTEND;CONFIG;FLAGS_OUT" "LANGUAGES" ) z_vcpkg_unparsed_args(FATAL_ERROR) if(NOT DEFINED arg_LANGUAGES) set(arg_LANGUAGES "C" "CXX") endif() z_vcpkg_make_set_common_vars() set(var_suffix "${arg_CONFIG}") set(CFLAGS "") set(CXXFLAGS "") # separate_aruments is needed to remove outer quotes from detected cmake variables. # (e.g. Android NDK has "--sysroot=...") foreach(lang IN LISTS arg_LANGUAGES) if(NOT "${VCPKG_COMBINED_${lang}_FLAGS_${var_suffix}}" STREQUAL "") separate_arguments(${lang}FLAGS NATIVE_COMMAND "${VCPKG_COMBINED_${lang}_FLAGS_${var_suffix}}") else() set(${lang}FLAGS "") endif() vcpkg_list(APPEND flags ${lang}FLAGS) endforeach() separate_arguments(LDFLAGS NATIVE_COMMAND "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${var_suffix}}") separate_arguments(ARFLAGS NATIVE_COMMAND "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${var_suffix}}") set(RCFLAGS "${VCPKG_COMBINED_RC_FLAGS_${var_suffix}}") foreach(var IN ITEMS ABIFLAGS LDFLAGS ARFLAGS RCFLAGS) vcpkg_list(APPEND flags ${var}) endforeach() set(ABIFLAGS "") set(pattern "") foreach(arg IN LISTS CFLAGS) if(NOT pattern STREQUAL "") vcpkg_list(APPEND pattern "${arg}") elseif(arg MATCHES "^--(sysroot|target)=.") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(isysroot|m32|m64|m?[Aa][Rr][Cc][Hh]|target)\$") vcpkg_list(SET pattern "${arg}") continue() else() continue() endif() vcpkg_list(APPEND ABIFLAGS "${pattern}") list(REMOVE_ITEM CFLAGS "${pattern}") list(REMOVE_ITEM CXXFLAGS "${pattern}") list(REMOVE_ITEM LDFLAGS "${pattern}") set(pattern "") endforeach() # Filter common CPPFLAGS out of CFLAGS and CXXFLAGS if(NOT arg_DISABLE_CPPFLAGS) set(CPPFLAGS "") set(pattern "") foreach(arg IN LISTS CXXFLAGS) if(NOT pattern STREQUAL "") vcpkg_list(APPEND pattern "${arg}") elseif(arg MATCHES "^-(D|isystem).") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(D|isystem)\$") vcpkg_list(SET pattern "${arg}") continue() else() continue() endif() string(FIND "${CFLAGS}" "${pattern} " index) if(NOT index STREQUAL "-1") vcpkg_list(APPEND CPPFLAGS ${pattern}) list(REMOVE_ITEM CFLAGS "${pattern}") list(REMOVE_ITEM CXXFLAGS "${pattern}") list(REMOVE_ITEM LDFLAGS "${pattern}") endif() endforeach() set(pattern "") foreach(arg IN LISTS CFLAGS) if(NOT pattern STREQUAL "") vcpkg_list(APPEND pattern "${arg}") elseif(arg MATCHES "^-(D|isystem)\$") vcpkg_list(SET pattern "${arg}") continue() elseif(arg MATCHES "^-(D|isystem).") vcpkg_list(SET pattern "${arg}") else() continue() endif() string(FIND "${CXXFLAGS}" "${pattern} " index) if(NOT index STREQUAL "-1") vcpkg_list(APPEND CPPFLAGS ${pattern}) list(REMOVE_ITEM CFLAGS "${pattern}") list(REMOVE_ITEM CXXFLAGS "${pattern}") list(REMOVE_ITEM LDFLAGS "${pattern}") endif() vcpkg_list(SET pattern) endforeach() endif() set(library_path_flag "${VCPKG_DETECTED_CMAKE_LIBRARY_PATH_FLAG}") string(REPLACE " " "\\ " current_installed_dir_escaped "${CURRENT_INSTALLED_DIR}") if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${var_suffix}}/lib/manual-link") vcpkg_list(PREPEND LDFLAGS "${library_path_flag}${current_installed_dir_escaped}${path_suffix_${var_suffix}}/lib/manual-link") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${var_suffix}}/lib") vcpkg_list(PREPEND LDFLAGS "${library_path_flag}${current_installed_dir_escaped}${path_suffix_${var_suffix}}/lib") endif() # libtool tries to filter CFLAGS passed to the link stage via a allow list. # This approach is flawed since it fails to pass flags unknown to libtool # but required for linking to the link stage (e.g. -fsanitize=). # libtool has an -R option so we need to guard against -RTC by using -Xcompiler. # While configuring there might be a lot of unknown compiler option warnings # due to that; just ignore them. set(compiler_flag_escape "") if(arg_COMPILER_FRONTEND STREQUAL "MSVC" AND NOT arg_NO_FLAG_ESCAPING) set(compiler_flag_escape "-Xcompiler") endif() if(compiler_flag_escape) list(TRANSFORM CFLAGS PREPEND "${compiler_flag_escape};") list(TRANSFORM CXXFLAGS PREPEND "${compiler_flag_escape};") endif() set(linker_flag_escape "") if(arg_COMPILER_FRONTEND STREQUAL "MSVC" AND NOT arg_NO_FLAG_ESCAPING) # Removed by libtool set(linker_flag_escape "-Xlinker") if(NOT arg_DISABLE_MSVC_WRAPPERS) set(linker_flag_escape "-Xlinker -Xlinker -Xlinker") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(STRIP "$ENV{_LINK_} ${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${var_suffix}}" LINK_ENV) else() string(STRIP "$ENV{_LINK_} ${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${var_suffix}}" LINK_ENV) endif() endif() if(linker_flag_escape) string(STRIP "${linker_flag_escape}" linker_flag_escape_stripped) string(REPLACE " " ";" linker_flag_escape_stripped "${linker_flag_escape_stripped};") list(TRANSFORM LDFLAGS PREPEND "${linker_flag_escape_stripped}") endif() if(ARFLAGS AND NOT arg_COMPILER_FRONTEND STREQUAL "MSVC") # ARFLAGS need to know the command for creating an archive (Maybe needs user customization?) # or extract it from CMake via CMAKE_${lang}_ARCHIVE_CREATE ? # or from CMAKE_${lang}_${rule} with rule being one of CREATE_SHARED_MODULE CREATE_SHARED_LIBRARY LINK_EXECUTABLE vcpkg_list(PREPEND ARFLAGS "cr") elseif(NOT arg_DISABLE_MSVC_WRAPPERS AND arg_COMPILER_FRONTEND STREQUAL "MSVC") # The wrapper needs an action and that action needs to be defined AFTER all flags vcpkg_list(APPEND ARFLAGS "cr") endif() foreach(var IN LISTS flags) list(JOIN ${var} " " string) set("${var}_${var_suffix}" "${string}" PARENT_SCOPE) list(APPEND flags_out "${var}_${var_suffix}") endforeach() set("${arg_FLAGS_OUT}" "${flags_out}" PARENT_SCOPE) endfunction() ### Prepare environment for configure function(z_vcpkg_make_prepare_programs out_env) cmake_parse_arguments(PARSE_ARGV 1 arg "DISABLE_CPPFLAGS;DISABLE_MSVC_WRAPPERS" "CONFIG;BUILD_TRIPLET" "LANGUAGES" ) z_vcpkg_unparsed_args(FATAL_ERROR) z_vcpkg_make_get_cmake_vars() z_vcpkg_make_get_crosscompiling(is_crosscompiling ${arg_BUILD_TRIPLET}) macro(z_vcpkg_append_to_configure_environment inoutlist var defaultval) # Allows to overwrite settings in custom triplets via the environment if(DEFINED ENV{${var}}) list(APPEND "${inoutlist}" "${var}='$ENV{${var}}'") else() list(APPEND "${inoutlist}" "${var}='${defaultval}'") endif() endmacro() set(configure_env "") # Remove full filepaths due to spaces and prepend filepaths to PATH (cross-compiling tools are unlikely on path by default) if (VCPKG_TARGET_IS_WINDOWS) set(progs C_COMPILER CXX_COMPILER AR LINKER RANLIB OBJDUMP STRIP NM DLLTOOL RC_COMPILER) list(TRANSFORM progs PREPEND "VCPKG_DETECTED_CMAKE_") foreach(prog IN LISTS progs) set(filepath "${${prog}}") if("${filepath}" MATCHES " " AND EXISTS "${${prog}}") cmake_path(GET filepath FILENAME "${prog}") vcpkg_insert_program_into_path("${filepath}") endif() endforeach() if (NOT arg_DISABLE_MSVC_WRAPPERS AND NOT VCPKG_TARGET_IS_MINGW) z_vcpkg_append_to_configure_environment(configure_env CPP "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CC "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CXX "compile ${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") if(NOT is_crosscompiling) z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") else() # Silly trick to make configure accept CC_FOR_BUILD but in reality CC_FOR_BUILD is deactivated. z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() z_vcpkg_append_to_configure_environment(configure_env RC "windres-rc ${VCPKG_DETECTED_CMAKE_RC_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env WINDRES "windres-rc ${VCPKG_DETECTED_CMAKE_RC_COMPILER}") if(VCPKG_DETECTED_CMAKE_AR AND NOT "${VCPKG_DETECTED_CMAKE_AR}" MATCHES "llvm-ar") z_vcpkg_append_to_configure_environment(configure_env AR "ar-lib ${VCPKG_DETECTED_CMAKE_AR}") elseif("${VCPKG_DETECTED_CMAKE_AR}" MATCHES "llvm-ar") # llvm-lib does not understand /EXTRACT so llvm-ar needs to be used. However, llvm-ar cannot use the ar-lib wrapper. z_vcpkg_append_to_configure_environment(configure_env AR "${VCPKG_DETECTED_CMAKE_AR}") else() z_vcpkg_append_to_configure_environment(configure_env AR "ar-lib lib.exe -verbose") endif() else() z_vcpkg_append_to_configure_environment(configure_env CPP "${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CC "${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CXX "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") if(NOT is_crosscompiling) z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") else() z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() z_vcpkg_append_to_configure_environment(configure_env RC "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env WINDRES "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") if(VCPKG_DETECTED_CMAKE_AR) z_vcpkg_append_to_configure_environment(configure_env AR "${VCPKG_DETECTED_CMAKE_AR}") else() z_vcpkg_append_to_configure_environment(configure_env AR "lib.exe -verbose") endif() endif() z_vcpkg_append_to_configure_environment(configure_env LD "${VCPKG_DETECTED_CMAKE_LINKER} -verbose") if(VCPKG_DETECTED_CMAKE_RANLIB) z_vcpkg_append_to_configure_environment(configure_env RANLIB "${VCPKG_DETECTED_CMAKE_RANLIB}") # Trick to ignore the RANLIB call else() z_vcpkg_append_to_configure_environment(configure_env RANLIB ": RANLIB-disabled") endif() if(VCPKG_DETECTED_CMAKE_OBJDUMP) #Objdump is required to make shared libraries. Otherwise define lt_cv_deplibs_check_method=pass_all z_vcpkg_append_to_configure_environment(configure_env OBJDUMP "${VCPKG_DETECTED_CMAKE_OBJDUMP}") # Trick to ignore the RANLIB call endif() if(VCPKG_DETECTED_CMAKE_STRIP) # If required set the ENV variable STRIP in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env STRIP "${VCPKG_DETECTED_CMAKE_STRIP}") else() z_vcpkg_append_to_configure_environment(configure_env STRIP ": STRIP-disabled") list(APPEND arg_OPTIONS ac_cv_prog_ac_ct_STRIP=:) endif() if(VCPKG_DETECTED_CMAKE_NM) # If required set the ENV variable NM in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env NM "${VCPKG_DETECTED_CMAKE_NM}") else() # Would be better to have a true nm here! Some symbols (mainly exported variables) get not properly imported with dumpbin as nm # and require __declspec(dllimport) for some reason (same problem CMake has with WINDOWS_EXPORT_ALL_SYMBOLS) z_vcpkg_append_to_configure_environment(configure_env NM "dumpbin.exe -symbols -headers") endif() if(VCPKG_DETECTED_CMAKE_DLLTOOL) # If required set the ENV variable DLLTOOL in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env DLLTOOL "${VCPKG_DETECTED_CMAKE_DLLTOOL}") else() z_vcpkg_append_to_configure_environment(configure_env DLLTOOL "link.exe -verbose -dll") endif() if(NOT "ASM" IN_LIST arg_LANGUAGES ) z_vcpkg_append_to_configure_environment(configure_env CCAS ": CCAS-disabled") # If required set the ENV variable CCAS in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env AS ": AS-disabled") # If required set the ENV variable AS in the portfile correctly else() set(ccas "${VCPKG_DETECTED_CMAKE_ASM_COMPILER}") if(VCPKG_DETECTED_CMAKE_ASM_COMPILER_ID STREQUAL "MSVC") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(asmflags "--target=i686-pc-windows-msvc -m32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(asmflags "--target=x86_64-pc-windows-msvc") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(asmflags "--target=arm64-pc-windows-msvc") endif() vcpkg_find_acquire_program(CLANG) set(ccas "${CLANG}") if(ccas MATCHES " ") cmake_path(GET ccas PARENT_PATH ccas_dir) cmake_path(GET ccas FILENAME ccas_filename) vcpkg_insert_program_into_path("${ccas_dir}") set(ccas "${ccas_filename}") endif() string(APPEND ccas " ${asmflags}") endif() z_vcpkg_append_to_configure_environment(configure_env CCAS "${ccas} -c") z_vcpkg_append_to_configure_environment(configure_env AS "${ccas} -c") endif() else() # OSX dosn't like CMAKE_C(XX)_COMPILER (cc) in CC/CXX and rather wants to have gcc/g++ vcpkg_list(SET z_vcm_all_tools) function(z_vcpkg_make_set_env envvar cmakevar) set(prog "${VCPKG_DETECTED_CMAKE_${cmakevar}}") if(NOT DEFINED ENV{${envvar}} AND NOT prog STREQUAL "") vcpkg_list(APPEND z_vcm_all_tools "${prog}") if(ARGN) string(APPEND prog " ${ARGN}") endif() set(z_vcm_all_tools "${z_vcm_all_tools}" PARENT_SCOPE) endif() z_vcpkg_append_to_configure_environment(configure_env "${envvar}" "${prog}") set(configure_env "${configure_env}" PARENT_SCOPE) endfunction() z_vcpkg_make_set_env(CC C_COMPILER ${ABIFLAGS_${arg_CONFIG}}) z_vcpkg_make_set_env(CXX CXX_COMPILER ${ABIFLAGS_${arg_CONFIG}}) if(NOT is_crosscompiling) z_vcpkg_make_set_env(CC_FOR_BUILD C_COMPILER ${ABIFLAGS_${arg_CONFIG}}) z_vcpkg_make_set_env(CPP_FOR_BUILD C_COMPILER "-E" ${ABIFLAGS_${arg_CONFIG}}) z_vcpkg_make_set_env(CXX_FOR_BUILD CXX_COMPILER ${ABIFLAGS_${arg_CONFIG}}) else() set(ENV{CC_FOR_BUILD} "umask 0 | touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") set(ENV{CPP_FOR_BUILD} "umask 0 | touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") set(ENV{CXX_FOR_BUILD} "umask 0 | touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() if("ASM" IN_LIST arg_LANGUAGES) z_vcpkg_make_set_env(CCAS ASM_COMPILER "-c" ${ABIFLAGS_${arg_CONFIG}}) z_vcpkg_make_set_env(AS ASM_COMPILER "-c" ${ABIFLAGS_${arg_CONFIG}}) endif() z_vcpkg_make_set_env(NM NM) z_vcpkg_make_set_env(RC RC) z_vcpkg_make_set_env(WINDRES RC) z_vcpkg_make_set_env(DLLTOOL DLLTOOL) z_vcpkg_make_set_env(STRIP STRIP) z_vcpkg_make_set_env(OBJDUMP OBJDUMP) z_vcpkg_make_set_env(RANLIB RANLIB) z_vcpkg_make_set_env(AR AR) z_vcpkg_make_set_env(LD LINKER) unset(z_vcpkg_make_set_env) list(FILTER z_vcm_all_tools INCLUDE REGEX " ") if(z_vcm_all_tools) list(REMOVE_DUPLICATES z_vcm_all_tools) list(JOIN z_vcm_all_tools "\n " tools) message(STATUS "Warning: Tools with embedded space may be handled incorrectly by configure:\n ${tools}") endif() endif() list(JOIN configure_env " " configure_env) set("${out_env}" "${configure_env}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_prepare_link_flags) cmake_parse_arguments(PARSE_ARGV 0 arg "VCPKG_TRANSFORM_LIBS" "IN_OUT_VAR" "" ) set(link_flags ${${arg_IN_OUT_VAR}}) if(arg_VCPKG_TRANSFORM_LIBS) list(TRANSFORM link_flags REPLACE "[.](dll[.]lib|lib|a|so)$" "") if(VCPKG_TARGET_IS_WINDOWS) list(REMOVE_ITEM link_flags "uuid") endif() list(TRANSFORM link_flags REPLACE "^([^-].*)" "-l\\1") if(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # libtool must be told explicitly that there is no dynamic linkage for uuid. # The "-Wl,..." syntax is understood by libtool and gcc, but no by ld. list(TRANSFORM link_flags REPLACE "^-luuid\$" "-Wl,-Bstatic,-luuid,-Bdynamic") endif() endif() set(${arg_IN_OUT_VAR} ${link_flags} PARENT_SCOPE) endfunction() function(z_vcpkg_make_prepare_flags) cmake_parse_arguments(PARSE_ARGV 0 arg "DISABLE_CPPFLAGS;DISABLE_MSVC_WRAPPERS;NO_FLAG_ESCAPING" "LIBS_OUT;FRONTEND_VARIANT_OUT;C_COMPILER_NAME" "LANGUAGES" ) z_vcpkg_unparsed_args(FATAL_ERROR) z_vcpkg_make_get_cmake_vars() # ==== LIBS # TODO: Figure out what to do with other Languages like Fortran # Remove outer quotes from cmake variables which will be forwarded via makefile/shell variables # substituted into makefile commands (e.g. Android NDK has "--sysroot=...") separate_arguments(c_libs_list NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}") separate_arguments(cxx_libs_list NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") list(REMOVE_ITEM cxx_libs_list ${c_libs_list}) set(all_libs_list ${cxx_libs_list} ${c_libs_list}) # Do lib list transformation from name.lib to -lname if necessary set(vcpkg_transform_libs VCPKG_TRANSFORM_LIBS) if(VCPKG_DETECTED_CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC" AND (arg_NO_FLAG_ESCAPING)) set(vcpkg_transform_libs "") endif() if(VCPKG_TARGET_IS_UWP) # Avoid libtool choke: "Warning: linker path does not have real file for library -lWindowsApp." # The problem with the choke is that libtool always falls back to built a static library even if a dynamic was requested. # Note: Env LIBPATH;LIB are on the search path for libtool by default on windows. # It even does unix/dos-short/unix transformation with the path to get rid of spaces. set(vcpkg_transform_libs "") endif() z_vcpkg_make_prepare_link_flags( IN_OUT_VAR all_libs_list ${vcpkg_transform_libs} ) if(all_libs_list) list(JOIN all_libs_list " " all_libs_string) if(DEFINED ENV{LIBS}) set(ENV{LIBS} "$ENV{LIBS} ${all_libs_string}") else() set(ENV{LIBS} "${all_libs_string}") endif() endif() set("${arg_LIBS_OUT}" "${all_libs_string}" PARENT_SCOPE) # ==== /LIBS if(VCPKG_TARGET_IS_WINDOWS) vcpkg_backup_env_variables(VARS _CL_ _LINK_) # TODO: Should be CPP flags instead -> rewrite when vcpkg_determined_cmake_compiler_flags defined if(VCPKG_TARGET_IS_UWP) # Be aware that configure thinks it is crosscompiling due to: # error while loading shared libraries: VCRUNTIME140D_APP.dll: # cannot open shared object file: No such file or directory # IMPORTANT: The only way to pass linker flags through libtool AND the compile wrapper # is to use the CL and LINK environment variables !!! # (This is due to libtool and compiler wrapper using the same set of options to pass those variables around) file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}" VCToolsInstallDir) set(_replacement -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG "${VCPKG_COMBINED_CXX_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG "${VCPKG_COMBINED_C_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE "${VCPKG_COMBINED_CXX_FLAGS_RELEASE}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE "${VCPKG_COMBINED_C_FLAGS_RELEASE}") set(ENV{_CL_} "$ENV{_CL_} -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\"") set(ENV{_LINK_} "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") endif() endif() #### set(flags_opts "") if(DEFINED arg_LANGUAGES) list(APPEND flags_opts LANGUAGES ${arg_LANGUAGES}) endif() if(arg_DISABLE_CPPFLAGS) list(APPEND flags_opts DISABLE_CPPFLAGS) endif() if(arg_DISABLE_MSVC_WRAPPERS) list(APPEND flags_opts DISABLE_MSVC_WRAPPERS) endif() if(arg_NO_FLAG_ESCAPING) list(APPEND flags_opts NO_FLAG_ESCAPING) endif() z_vcpkg_make_prepare_compile_flags( CONFIG RELEASE COMPILER_FRONTEND "${VCPKG_DETECTED_CMAKE_C_COMPILER_FRONTEND_VARIANT}" FLAGS_OUT release_flags_list ${flags_opts} ) if(NOT DEFINED VCPKG_BUILD_TYPE) z_vcpkg_make_prepare_compile_flags( CONFIG DEBUG COMPILER_FRONTEND "${VCPKG_DETECTED_CMAKE_C_COMPILER_FRONTEND_VARIANT}" FLAGS_OUT debug_flags_list ${flags_opts} ) endif() foreach(flag IN LISTS release_flags_list debug_flags_list) set("${flag}" "${${flag}}" PARENT_SCOPE) endforeach() cmake_path(GET VCPKG_DETECTED_CMAKE_C_COMPILER FILENAME cname) set("${arg_C_COMPILER_NAME}" "${cname}" PARENT_SCOPE) # needed by z_vcpkg_make_get_configure_triplets set("${arg_FRONTEND_VARIANT_OUT}" "${VCPKG_DETECTED_CMAKE_C_COMPILER_FRONTEND_VARIANT}" PARENT_SCOPE) endfunction() function(z_vcpkg_make_default_path_and_configure_options out_var) cmake_parse_arguments(PARSE_ARGV 1 arg "" "CONFIG;EXCLUDE_FILTER" "" ) z_vcpkg_unparsed_args(FATAL_ERROR) set(opts "") string(TOUPPER "${arg_CONFIG}" arg_CONFIG) z_vcpkg_make_set_common_vars() list(APPEND opts lt_cv_deplibs_check_method=pass_all) # Pre-processing windows configure requirements if (VCPKG_TARGET_IS_WINDOWS) # Other maybe interesting variables to control # COMPILE This is the command used to actually compile a C source file. The file name is appended to form the complete command line. # LINK This is the command used to actually link a C program. # CXXCOMPILE The command used to actually compile a C++ source file. The file name is appended to form the complete command line. # CXXLINK The command used to actually link a C++ program. # Variables not correctly detected by configure. In release builds. list(APPEND opts gl_cv_double_slash_root=yes ac_cv_func_memmove=yes ac_cv_func_memset=yes ) if(VCPKG_TARGET_ARCHITECTURE MATCHES "^[Aa][Rr][Mm]64$") list(APPEND opts gl_cv_host_cpu_c_abi=no) endif() endif() # Set configure paths set(current_installed_dir_msys "${CURRENT_INSTALLED_DIR}") if(CMAKE_HOST_WIN32) string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" current_installed_dir_msys "${current_installed_dir_msys}") endif() vcpkg_list(APPEND opts "--prefix=${current_installed_dir_msys}${path_suffix_${arg_CONFIG}}") if(arg_CONFIG STREQUAL "RELEASE") # ${prefix} has an extra backslash to prevent early expansion when calling `bash -c configure "..."`. vcpkg_list(APPEND opts # Important: These should all be relative to prefix! "--bindir=\\\${prefix}/tools/${PORT}/bin" "--sbindir=\\\${prefix}/tools/${PORT}/sbin" "--libdir=\\\${prefix}/lib" # On some Linux distributions lib64 is the default "--mandir=\\\${prefix}/share/${PORT}" "--docdir=\\\${prefix}/share/${PORT}" "--datarootdir=\\\${prefix}/share/${PORT}") else() vcpkg_list(APPEND opts # Important: These should all be relative to prefix! "--bindir=\\\${prefix}/../tools/${PORT}${path_suffix_DEBUG}/bin" "--sbindir=\\\${prefix}/../tools/${PORT}${path_suffix_DEBUG}/sbin" "--libdir=\\\${prefix}/lib" # On some Linux distributions lib64 is the default "--includedir=\\\${prefix}/../include" "--mandir=\\\${prefix}/share/${PORT}" "--docdir=\\\${prefix}/share/${PORT}" "--datarootdir=\\\${prefix}/share/${PORT}") endif() # Setup common options if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_list(APPEND opts --enable-shared --disable-static) else() vcpkg_list(APPEND opts --disable-shared --enable-static) endif() if(NOT arg_EXCLUDE_FILTER STREQUAL "") list(FILTER opts EXCLUDE REGEX "${arg_EXCLUDE_FILTER}") endif() set("${out_var}" ${opts} PARENT_SCOPE) endfunction() ================================================ FILE: ports/vcpkg-make/vcpkg_make_configure.cmake ================================================ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make.cmake") function(vcpkg_make_configure) cmake_parse_arguments(PARSE_ARGV 0 arg "AUTORECONF;COPY_SOURCE;DISABLE_MSVC_WRAPPERS;DISABLE_CPPFLAGS;DISABLE_DEFAULT_OPTIONS;DISABLE_MSVC_TRANSFORMATIONS" "SOURCE_PATH;DEFAULT_OPTIONS_EXCLUDE" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;PRE_CONFIGURE_CMAKE_COMMANDS;LANGUAGES" ) z_vcpkg_unparsed_args(FATAL_ERROR) if(arg_DISABLE_DEFAULT_OPTIONS AND arg_DEFAULT_OPTIONS_EXCLUDE) message(FATAL_ERROR "DISABLE_DEFAULT_OPTIONS cannot be used together with DEFAULT_OPTIONS_EXCLUDE.") endif() # Can be set in the triplet to append options for configure if(DEFINED VCPKG_MAKE_CONFIGURE_OPTIONS) list(APPEND arg_OPTIONS ${VCPKG_MAKE_CONFIGURE_OPTIONS}) endif() if(DEFINED VCPKG_MAKE_CONFIGURE_OPTIONS_RELEASE) list(APPEND arg_OPTIONS_RELEASE ${VCPKG_MAKE_CONFIGURE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_MAKE_CONFIGURE_OPTIONS_DEBUG) list(APPEND arg_OPTIONS_DEBUG ${VCPKG_MAKE_CONFIGURE_OPTIONS_DEBUG}) endif() set(src_dir "${arg_SOURCE_PATH}") z_vcpkg_warn_path_with_spaces() set(prepare_flags_opts "") if(arg_DISABLE_MSVC_WRAPPERS) list(APPEND prepare_flags_opts "DISABLE_MSVC_WRAPPERS") endif() if(arg_DISABLE_CPPFLAGS) list(APPEND prepare_flags_opts "DISABLE_CPPFLAGS") endif() if(DEFINED arg_LANGUAGES) list(APPEND prepare_flags_opts "LANGUAGES" ${arg_LANGUAGES}) endif() # Cache this invocation's desired cmake vars configuration. set(Z_VCPKG_MAKE_GET_CMAKE_VARS_OPTS "ADDITIONAL_LANGUAGES;${arg_LANGUAGES}" CACHE INTERNAL "") z_vcpkg_make_get_cmake_vars() set(escaping "") if(arg_DISABLE_MSVC_TRANSFORMATIONS) set(escaping NO_FLAG_ESCAPING) endif() z_vcpkg_set_global_property(make_prepare_flags_opts "${prepare_flags_opts}") z_vcpkg_make_prepare_flags(${prepare_flags_opts} ${escaping} C_COMPILER_NAME ccname FRONTEND_VARIANT_OUT frontend) z_vcpkg_make_get_configure_triplets(BUILD_TRIPLET COMPILER_NAME "${ccname}") if(NOT arg_DISABLE_MSVC_WRAPPERS AND "${frontend}" STREQUAL "MSVC" ) # Lets assume that wrappers are only required for MSVC like frontends. vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-make/wrappers") endif() vcpkg_make_get_shell(shell_var) set(shell_cmd "${shell_var}") if(arg_AUTORECONF) vcpkg_run_autoreconf("${shell_cmd}" "${src_dir}") endif() # Backup environment variables set(cm_FLAGS AR AS CC C CCAS CPP CXX FC FF GC LD LF LIBTOOL OBJC OBJXX R RC UPC Y) list(TRANSFORM cm_FLAGS APPEND "FLAGS") vcpkg_backup_env_variables(VARS ${cm_FLAGS} # General backup PATH # Used by gcc/linux C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIBRARY_PATH LD_LIBRARY_PATH # Used by cl INCLUDE LIB LIBPATH _CL_ _LINK_ # Used by emscripten EMMAKEN_JUST_CONFIGURE ) z_vcpkg_make_set_common_vars() if(VCPKG_TARGET_IS_EMSCRIPTEN) set(EMMAKEN_JUST_CONFIGURE 1) # as in emconfigure endif() foreach(config IN LISTS buildtypes) string(TOUPPER "${config}" configup) set(target_dir "${workdir_${configup}}") file(REMOVE_RECURSE "${target_dir}") file(MAKE_DIRECTORY "${target_dir}") file(RELATIVE_PATH relative_build_path "${target_dir}" "${src_dir}") if(arg_COPY_SOURCE) file(COPY "${src_dir}/" DESTINATION "${target_dir}") set(relative_build_path ".") endif() z_vcpkg_make_prepare_programs(configure_env ${prepare_flags_opts} CONFIG "${configup}" BUILD_TRIPLET "${BUILD_TRIPLET}") set(opts "") if(NOT arg_DISABLE_DEFAULT_OPTIONS) z_vcpkg_make_default_path_and_configure_options(opts CONFIG "${configup}" EXCLUDE_FILTER "${arg_DEFAULT_OPTIONS_EXCLUDE}" ) endif() set(configure_path_from_wd "./${relative_build_path}/configure") foreach(cmd IN LISTS arg_PRE_CONFIGURE_CMAKE_COMMANDS) cmake_language(CALL ${cmd} ${configup}) endforeach() vcpkg_make_run_configure(SHELL "${shell_cmd}" CONFIG "${configup}" CONFIGURE_ENV "${configure_env}" CONFIGURE_PATH "${configure_path_from_wd}" OPTIONS ${BUILD_TRIPLET} ${arg_OPTIONS} ${opts} ${arg_OPTIONS_${configup}} WORKING_DIRECTORY "${target_dir}" ${extra_configure_opts} ) endforeach() # Restore environment vcpkg_restore_env_variables(VARS ${cm_FLAGS} C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIBRARY_PATH LD_LIBRARY_PATH INCLUDE LIB LIBPATH _CL_ _LINK_ EMMAKEN_JUST_CONFIGURE ) if(VCPKG_HOST_IS_BSD) find_program(Z_VCPKG_MAKE gmake REQUIRED) else() find_program(Z_VCPKG_MAKE NAMES make gmake NAMES_PER_DIR REQUIRED) endif() endfunction() ================================================ FILE: ports/vcpkg-make/vcpkg_make_install.cmake ================================================ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_make.cmake") function(vcpkg_make_install) cmake_parse_arguments(PARSE_ARGV 0 arg "DISABLE_PARALLEL" "LOGFILE_ROOT;MAKEFILE" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;TARGETS" ) z_vcpkg_unparsed_args(FATAL_ERROR) if(NOT DEFINED arg_LOGFILE_ROOT) set(arg_LOGFILE_ROOT "make") endif() if(NOT DEFINED arg_TARGETS) set(arg_TARGETS "all;install") endif() if (NOT DEFINED arg_MAKEFILE) set(arg_MAKEFILE Makefile) endif() # Can be set in the triplet to append options for configure if(DEFINED VCPKG_MAKE_OPTIONS) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MAKE_OPTIONS}) endif() if(DEFINED VCPKG_MAKE_OPTIONS_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE ${VCPKG_MAKE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_MAKE_OPTIONS_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG ${VCPKG_MAKE_OPTIONS_DEBUG}) endif() if(CMAKE_HOST_WIN32) set(Z_VCPKG_INSTALLED "${CURRENT_INSTALLED_DIR}") else() string(REPLACE " " "\ " Z_VCPKG_INSTALLED "${CURRENT_INSTALLED_DIR}") endif() vcpkg_make_get_shell(shell_var) set(shell_cmd "${shell_var}") if(VCPKG_HOST_IS_BSD) find_program(Z_VCPKG_MAKE gmake REQUIRED) else() find_program(Z_VCPKG_MAKE NAMES make gmake NAMES_PER_DIR REQUIRED) endif() set(make_command "${Z_VCPKG_MAKE}") set(destdir "${CURRENT_PACKAGES_DIR}") if (CMAKE_HOST_WIN32) set(path_backup "$ENV{PATH}") vcpkg_add_to_path(PREPEND "${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-make/wrappers") string(REPLACE " " [[\ ]] vcpkg_package_prefix "${CURRENT_PACKAGES_DIR}") string(REGEX REPLACE [[([a-zA-Z]):/]] [[/\1/]] destdir "${vcpkg_package_prefix}") endif() vcpkg_backup_env_variables(VARS LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH CPPFLAGS CFLAGS CXXFLAGS RCFLAGS PATH) z_vcpkg_make_set_common_vars() z_vcpkg_get_global_property(prepare_flags_opts "make_prepare_flags_opts") z_vcpkg_make_prepare_flags(${prepare_flags_opts}) set(prepare_env_opts "") set(trace_opts "") if(DEFINED VCPKG_MAKE_TRACE_OPTIONS) set(trace_opts "${VCPKG_MAKE_TRACE_OPTIONS}") else() # --trace is a GNU make option execute_process( COMMAND "${Z_VCPKG_MAKE}" --help OUTPUT_VARIABLE make_help_output ERROR_VARIABLE make_help_output ) if(make_help_output MATCHES "--trace") set(trace_opts "--trace") endif() endif() foreach(buildtype IN LISTS buildtypes) string(TOUPPER "${buildtype}" cmake_buildtype) set(short_buildtype "${suffix_${cmake_buildtype}}") set(path_suffix "${path_suffix_${cmake_buildtype}}") set(working_directory "${workdir_${cmake_buildtype}}") message(STATUS "Building/Installing ${TARGET_TRIPLET}-${short_buildtype}") # Setup environment z_vcpkg_make_prepare_env("${cmake_buildtype}" ${prepare_env_opts}) z_vcpkg_make_prepare_programs(configure_env ${prepare_flags_opts} CONFIG "${cmake_buildtype}") set(destdir_opt "DESTDIR=${destdir}") foreach(target IN LISTS arg_TARGETS) string(REPLACE "/" "_" target_no_slash "${target}") vcpkg_list(SET make_cmd_line ${make_command} ${arg_OPTIONS} ${arg_OPTIONS_${cmake_buildtype}} V=1 -j ${VCPKG_CONCURRENCY} ${trace_opts} -f ${arg_MAKEFILE} ${target} ${destdir_opt}) vcpkg_list(SET no_parallel_make_cmd_line ${make_command} ${arg_OPTIONS} ${arg_OPTIONS_${cmake_buildtype}} V=1 -j 1 ${trace_opts} -f ${arg_MAKEFILE} ${target} ${destdir_opt}) message(STATUS "Making target '${target}' for ${TARGET_TRIPLET}-${short_buildtype}") if (arg_DISABLE_PARALLEL) vcpkg_run_shell_as_build( WORKING_DIRECTORY "${working_directory}" LOGNAME "${arg_LOGFILE_ROOT}-${target_no_slash}-${TARGET_TRIPLET}-${short_buildtype}" SHELL ${shell_cmd} COMMAND ${configure_env} ${no_parallel_make_cmd_line} ) else() vcpkg_run_shell_as_build( WORKING_DIRECTORY "${working_directory}" LOGNAME "${arg_LOGFILE_ROOT}-${target_no_slash}-${TARGET_TRIPLET}-${short_buildtype}" SHELL ${shell_cmd} COMMAND ${configure_env} ${make_cmd_line} NO_PARALLEL_COMMAND ${configure_env} ${no_parallel_make_cmd_line} ) endif() file(READ "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_ROOT}-${target_no_slash}-${TARGET_TRIPLET}-${short_buildtype}-out.log" logdata) if(logdata MATCHES "Warning: linker path does not have real file for library") message(FATAL_ERROR "libtool could not find a file being linked against!") endif() endforeach() z_vcpkg_make_restore_env() vcpkg_restore_env_variables(VARS LIB LIBPATH LIBRARY_PATH) endforeach() ## TODO: Fix DESTDIR handling string(REGEX REPLACE "([a-zA-Z]):/" "/\\1/" destdir_suffix "${CURRENT_INSTALLED_DIR}") if (EXISTS "${CURRENT_PACKAGES_DIR}${destdir_suffix}") # <- Means DESTDIR was correctly used; need to move files. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}_tmp") file(RENAME "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}_tmp") file(RENAME "${CURRENT_PACKAGES_DIR}_tmp${destdir_suffix}" "${CURRENT_PACKAGES_DIR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}_tmp") endif() # Remove libtool files since they contain absolute paths and are not necessary. file(GLOB_RECURSE libtool_files "${CURRENT_PACKAGES_DIR}/**/*.la") if(libtool_files) file(REMOVE ${libtool_files}) endif() if (CMAKE_HOST_WIN32) set(ENV{PATH} "${path_backup}") endif() vcpkg_restore_env_variables(VARS LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH CPPFLAGS CFLAGS CXXFLAGS RCFLAGS) endfunction() ================================================ FILE: ports/vcpkg-make/vcpkg_scripts.cmake ================================================ include_guard(GLOBAL) function(vcpkg_insert_into_path) cmake_parse_arguments(PARSE_ARGV 0 arg "" "PATH_OUT;APPENDED_OUT" "BEFORE;INSERT" ) z_vcpkg_unparsed_args(FATAL_ERROR) cmake_path(CONVERT "$ENV{PATH}" TO_CMAKE_PATH_LIST path_list NORMALIZE) string(TOUPPER "${arg_BEFORE}" before_upper) set(index 0) set(appending TRUE) foreach(item IN LISTS path_list) string(TOUPPER "${item}" item_upper) if(item IN_LIST arg_BEFORE OR item_upper IN_LIST before_upper) set(appending FALSE) break() endif() math(EXPR index "${index} + 1") endforeach() vcpkg_list(INSERT path_list "${index}" ${arg_INSERT}) cmake_path(CONVERT "${path_list}" TO_NATIVE_PATH_LIST native_path_list) set(ENV{PATH} "${native_path_list}") if(DEFINED arg_PATH_OUT) set("${arg_PATH_OUT}" "${path_list}" PARENT_SCOPE) endif() if(appending) set("${arg_APPENDED_OUT}" "TRUE" PARENT_SCOPE) else() set("${arg_APPENDED_OUT}" "FALSE" PARENT_SCOPE) endif() endfunction() function(vcpkg_insert_program_into_path prog) set(filepath "${prog}") cmake_path(GET filepath FILENAME ${prog}) find_program(z_vcm_prog_found NAMES "${${prog}}" PATHS ENV PATH NO_DEFAULT_PATH NO_CACHE) if(NOT z_vcm_prog_found STREQUAL filepath) cmake_path(GET z_vcm_prog_found PARENT_PATH before_dir) cmake_path(GET filepath PARENT_PATH dir) vcpkg_insert_into_path( INSERT "${dir}" BEFORE "${before_dir}" ) endif() endfunction() function(vcpkg_insert_msys_into_path msys_out) cmake_parse_arguments(PARSE_ARGV 1 arg "" "PATH_OUT" "PACKAGES" ) z_vcpkg_unparsed_args(FATAL_ERROR) vcpkg_acquire_msys(MSYS_ROOT PACKAGES ${arg_PACKAGES}) cmake_path(CONVERT "$ENV{SystemRoot}" TO_CMAKE_PATH_LIST system_root NORMALIZE) cmake_path(CONVERT "$ENV{LOCALAPPDATA}" TO_CMAKE_PATH_LIST local_app_data NORMALIZE) file(REAL_PATH "${system_root}" system_root) vcpkg_list(SET find_system_dirs "${system_root}/system32" "${system_root}/System32" "${system_root}/system32/" "${system_root}/System32/" "${local_app_data}/Microsoft/WindowsApps" "${local_app_data}/Microsoft/WindowsApps/" ) vcpkg_insert_into_path( INSERT "${MSYS_ROOT}/usr/bin" BEFORE ${find_system_dirs} PATH_OUT path_out APPENDED_OUT appending ) if(appending) message(WARNING "Unable to find system dir in the PATH variable! Appending required msys paths!") endif() if(DEFINED arg_PATH_OUT) set("${arg_PATH_OUT}" "${path_out}" PARENT_SCOPE) endif() set("${msys_out}" "${MSYS_ROOT}" PARENT_SCOPE) endfunction() ### Helper macros for argument checking macro(z_vcpkg_unparsed_args warning_level) if(DEFINED arg_UNPARSED_ARGUMENTS) message("${warning_level}" "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() endmacro() macro(z_vcpkg_conflicting_args) set(conflicting_args_set "") foreach(z_vcpkg_conflicting_args_index RANGE 0 "${ARGC}") if(${ARGV${z_vcpkg_conflicting_args_index}}) list(APPEND conflicting_args_set "${ARGV${z_vcpkg_conflicting_args_index}}") endif() endforeach() list(LENGTH conflicting_args_set conflicting_args_set_length) if(conflicting_args_set_length GREATER 1) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed conflicting arguments:'${conflicting_args_set}'. Only one of those arguments can be passed") endif() unset(conflicting_args_set_length) unset(conflicting_args_set) unset(z_vcpkg_conflicting_args_index) endmacro() macro(z_vcpkg_required_args arg) foreach(arg IN ITEMS ${ARGN}) if(NOT DEFINED arg_${arg}) message("FATAL_ERROR" "${CMAKE_CURRENT_FUNCTION} requires argument: ${arg}") endif() endforeach() endmacro() function(z_vcpkg_set_global_property property value) if(NOT ARGN STREQUAL "" AND NOT ARGN MATCHES "^APPEND(_STRING)?$") message(FATAL_ERROR "'${CMAKE_CURRENT_FUNCTION}' called with invalid arguments '${ARGN}'") endif() set_property(GLOBAL ${ARGN} PROPERTY "z_vcpkg_global_property_${property}" "${value}") endfunction() function(z_vcpkg_get_global_property outvar property) if(NOT ARGN STREQUAL "" AND NOT ARGN STREQUAL "SET") message(FATAL_ERROR "'${CMAKE_CURRENT_FUNCTION}' called with invalid arguments '${ARGN}'") endif() get_property(outprop GLOBAL PROPERTY "z_vcpkg_global_property_${property}" ${ARGN}) set(${outvar} "${outprop}" PARENT_SCOPE) endfunction() function(vcpkg_prepare_pkgconfig config) set(subdir "") if(config MATCHES "(DEBUG|debug)") set(subdir "/debug") endif() z_vcpkg_get_global_property(has_backup "make-pkg-config-backup-${envvar}" SET) if(has_backup) message(FATAL_ERROR "'${CMAKE_CURRENT_FUNCTION}' does not (yet) support recursive backups. Need to restore previous state first!") endif() foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH) if(DEFINED ENV{${envvar}}) z_vcpkg_set_global_property("make-pkg-config-backup-${envvar}" "$ENV{${envvar}}") else() z_vcpkg_set_global_property("make-pkg-config-backup-${envvar}" "") endif() endforeach() vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} # After installation, (merged) 'lib' is always searched before 'share'. "${CURRENT_PACKAGES_DIR}${subdir}/lib/pkgconfig" "${CURRENT_INSTALLED_DIR}${subdir}/lib/pkgconfig" "${CURRENT_PACKAGES_DIR}/share/pkgconfig" "${CURRENT_INSTALLED_DIR}/share/pkgconfig" ) endfunction() function(vcpkg_restore_pkgconfig) foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH) z_vcpkg_get_global_property(has_backup "make-pkg-config-backup-${envvar}" SET) if(has_backup) z_vcpkg_get_global_property(backup "make-pkg-config-backup-${envvar}") set("ENV{${envvar}}" "${backup}") z_vcpkg_set_global_property("make-pkg-config-backup-${envvar}" "") else() unset("ENV{${envvar}}") endif() endforeach() endfunction() function(z_vcpkg_escape_spaces_in_path outvar invar) string(REPLACE " " "\\ " current_installed_dir_escaped "${invar}") set("${outvar}" "${current_installed_dir_escaped}" PARENT_SCOPE) endfunction() function(z_vcpkg_warn_path_with_spaces) vcpkg_list(SET z_vcm_paths_with_spaces) if(CURRENT_BUILDTREES_DIR MATCHES " ") vcpkg_list(APPEND z_vcm_paths_with_spaces "${CURRENT_BUILDTREES_DIR}") endif() if(CURRENT_PACKAGES_DIR MATCHES " ") vcpkg_list(APPEND z_vcm_paths_with_spaces "${CURRENT_PACKAGES_DIR}") endif() if(CURRENT_INSTALLED_DIR MATCHES " ") vcpkg_list(APPEND z_vcm_paths_with_spaces "${CURRENT_INSTALLED_DIR}") endif() if(z_vcm_paths_with_spaces) # Don't bother with whitespace. The tools will probably fail and I tried very hard trying to make it work (no success so far)! vcpkg_list(APPEND z_vcm_paths_with_spaces "Please move the path to one without whitespaces!") list(JOIN z_vcm_paths_with_spaces "\n " z_vcm_paths_with_spaces) message(STATUS "Warning: Paths with embedded space may be handled incorrectly by configure:\n ${z_vcm_paths_with_spaces}") endif() endfunction() ================================================ FILE: ports/vcpkg-make/wrappers/cl_cpp_wrapper ================================================ #!/usr/bin/bash # cl_cpp_wrapper # Wrapper around MS's cl.exe to make it act more like Unix cpp, # in particular process stdin PATH="$PATH:/usr/bin" msys2_dll="$(test -f /usr/bin/msys-2.0.dll && echo yes)" case $msys2_dll,$MACHTYPE in *-msys | yes,*-cygwin) slash="-" ;; *) slash="/" ;; esac # prog specifies the program that should be run cl.exe prog=cl.exe debug= cppopt=("${slash}nologo") cppopt+=("${slash}E") verbose= shared_index=-1 processargs() { ### Run through every option and convert it to the proper MS one while test $# -gt 0; do case "$1" in -D*) optarg= ;; -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac gotparam=1 case "$1" in --help) usage exit 0 ;; --verbose) verbose=1 ;; -*) # Remaining '-' options are passed to the compiler if test x$optarg != x ; then cppopt+=("${slash}${1:1}=$optarg") else cppopt+=("${slash}${1:1}") fi ;; /*) # All '/' options are assumed to be for cpp and are passed through cppopt+=("${slash}${1:1}") ;; *) file=$1 #cppopt+=("$1") ;; esac shift done } # Whitespace in paths is dealt with by setting IFS and using bash arrays # processargs $CPP_FLAGS IFS="" processargs $@ if test x$V = x1 ; then verbose=1 fi if test -n "$verbose" ; then echo -n "$prog" for opt in "${cppopt[@]}" ; do echo -n " \"$opt\"" done echo "" fi 1>&2 # diagnostic, redirect to stderr [ $# -ge 1 -a -f "$1" ] && input="$file" || input="-" input_file="${file:-/proc/self/fd/0}" if [ "$input_file" == "/proc/self/fd/0" ]; then # CL does not support reading from STDIN so it is wrapped here. tmpout=cpp_wrapper_$RANDOM.h /usr/bin/cp $input_file $tmpout exec $prog ${cppopt[@]} $tmpout rm -f $tmpout else exec $prog ${cppopt[@]} $input_file fi ================================================ FILE: ports/vcpkg-make/wrappers/windres-rc ================================================ #! /bin/sh # Wrapper for windres to rc which do not understand '-i -o --output-format'. # cvtres is invoked by the linker scriptversion=2022-08-24.12; # UTC nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_windres_wrapper rc args... # Adjust compile command to suit rc instead of windres func_windres_wrapper () { # Assume a capable shell bin= in= out= for arg do if test -z "$bin"; then bin=$1 elif test -n "$eat"; then eat= else case $1 in --output-format=*) ;; --define*) eat=1 set -- "$@" "-d $2" ;; --include-dir*) eat=1 func_file_conv "$2" set -- "$@" "-I $file" ;; -o) eat=1 func_file_conv "$2" out="$file" echo "OUTPUT:$file" ;; *.obj) func_file_conv "$1" out="$file" echo "OUTPUT:$file" ;; -i) eat=1 func_file_conv "$2" mingw in="$file" echo "INPUT:$file" ;; -*) set -- "$@" "${1//\\\"/\"}" ;; *) # libtool reorders arguments; save unqualified one as input func_file_conv "$1" in="$file" echo "INPUT:$file" ;; esac fi shift done echo "$bin" "$@" -fo "$out" "$in" exec "$bin" "$@" -fo "$out" "$in" exit 1 } eat= func_windres_wrapper "$@" ================================================ FILE: ports/vcpkg-msbuild/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg_msbuild.props.in" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_msbuild.targets.in" "${CMAKE_CURRENT_LIST_DIR}/z_vcpkg_msbuild_create_props.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_msbuild_install.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-msbuild/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake-get-vars/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/z_vcpkg_msbuild_create_props.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_msbuild_install.cmake") ================================================ FILE: ports/vcpkg-msbuild/vcpkg.json ================================================ { "name": "vcpkg-msbuild", "version-date": "2023-08-08", "documentation": "https://vcpkg.io/en/docs/README.html", "license": "MIT", "supports": "native & windows", "dependencies": [ { "name": "vcpkg-cmake-get-vars", "host": true }, { "name": "vcpkg-pkgconfig-get-modules", "host": true } ], "features": { "pkg-config": { "description": "Enable pkg-config lookup for msbuild", "dependencies": [ "pkgconf" ] } } } ================================================ FILE: ports/vcpkg-msbuild/vcpkg_msbuild.props.in ================================================ true @arg_TARGET_PLATFORM_VERSION@ @VCPKG_PLATFORM_TOOLSET@ false false false false @TARGET_TRIPLET@ @_VCPKG_INSTALLED_DIR@ No false vcpkg_msbuild.props vcpkg_msbuild.targets @VCPKG_MSBUILD_ADDITIONAL_PROPS_XML@ ================================================ FILE: ports/vcpkg-msbuild/vcpkg_msbuild.targets.in ================================================ @arg_TARGET_PLATFORM_VERSION@ @VCPKG_PLATFORM_TOOLSET@ false false false false @TARGET_TRIPLET@ @_VCPKG_INSTALLED_DIR@ No false MultiThreadedDebug MultiThreaded MultiThreadedDebugDLL MultiThreadedDLL @MSBUILD_INCLUDE_DIRS_DEBUG@ @MSBUILD_INCLUDE_DIRS_RELEASE@ %(AdditionalOptions) @VCPKG_COMBINED_CXX_FLAGS_DEBUG@ @MSBUILD_CFLAGS_DEBUG@ /WX- %(AdditionalOptions) @VCPKG_COMBINED_CXX_FLAGS_RELEASE@ @MSBUILD_CFLAGS_RELEASE@ /WX- %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_DEBUG@ @MSBUILD_CFLAGS_DEBUG@ /WX- %(AdditionalOptions) @VCPKG_COMBINED_C_FLAGS_RELEASE@ @MSBUILD_CFLAGS_RELEASE@ /WX- @MSBUILD_LIBRARIES_DEBUG@ @MSBUILD_LIBRARIES_DIRS_DEBUG@ @MSBUILD_LIBRARIES_RELEASE@ @MSBUILD_LIBRARIES_DIRS_RELEASE@ %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG@ @MSBUILD_LIBS_DEBUG@ /WX:NO %(AdditionalOptions) @VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE@ @MSBUILD_LIBS_RELEASE@ /WX:NO %(AdditionalOptions) @VCPKG_COMBINED_EXE_LINKER_FLAGS_DEBUG@ @MSBUILD_LIBS_DEBUG@ /WX:NO %(AdditionalOptions) @VCPKG_COMBINED_EXE_LINKER_FLAGS_RELEASE@ @MSBUILD_LIBS_RELEASE@ /WX:NO %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG@ %(AdditionalOptions) @VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE@ MachineX86 MachineX64 MachineARM @VCPKG_MSBUILD_ADDITIONAL_TARGETS_XML@ ================================================ FILE: ports/vcpkg-msbuild/vcpkg_msbuild_install.cmake ================================================ function(vcpkg_msbuild_install) cmake_parse_arguments( PARSE_ARGV 0 "arg" "CLEAN;NO_TOOLCHAIN_PROPS;NO_INSTALL;ADD_BIN_TO_PATH" "SOURCE_PATH;PROJECT_SUBPATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM;TARGET" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;DEPENDENT_PKGCONFIG;ADDITIONAL_LIBS;ADDITIONAL_LIBS_DEBUG;ADDITIONAL_LIBS_RELEASE" ) if(VCPKG_CROSSCOMPILING) set(arg_ADD_BIN_TO_PATH OFF) endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_RELEASE_CONFIGURATION) set(arg_RELEASE_CONFIGURATION Release) endif() if(NOT DEFINED arg_DEBUG_CONFIGURATION) set(arg_DEBUG_CONFIGURATION Debug) endif() if(NOT DEFINED arg_PLATFORM) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(arg_PLATFORM x64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(arg_PLATFORM Win32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(arg_PLATFORM ARM) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(arg_PLATFORM arm64) else() message(FATAL_ERROR "Unsupported target architecture") endif() endif() if(NOT DEFINED arg_PLATFORM_TOOLSET) set(arg_PLATFORM_TOOLSET "${VCPKG_PLATFORM_TOOLSET}") endif() if(NOT DEFINED arg_TARGET) set(arg_TARGET Rebuild) endif() if(DEFINED arg_ADDITIONAL_LIBS) list(APPEND arg_ADDITIONAL_LIBS_DEBUG ${arg_ADDITIONAL_LIBS}) list(APPEND arg_ADDITIONAL_LIBS_RELEASE ${arg_ADDITIONAL_LIBS}) endif() vcpkg_get_windows_sdk(arg_TARGET_PLATFORM_VERSION) if(NOT arg_NO_TOOLCHAIN_PROPS) file(RELATIVE_PATH project_root "${arg_SOURCE_PATH}/${arg_PROJECT_SUBPATH}" "${arg_SOURCE_PATH}") # required by z_vcpkg_msbuild_create_props z_vcpkg_msbuild_create_props(OUTPUT_PROPS props_file OUTPUT_TARGETS target_file RELEASE_CONFIGURATION "${arg_RELEASE_CONFIGURATION}" DEBUG_CONFIGURATION "${arg_DEBUG_CONFIGURATION}" DEPENDENT_PKGCONFIG ${arg_DEPENDENT_PKGCONFIG} ADDITIONAL_LIBS_DEBUG ${arg_ADDITIONAL_LIBS_DEBUG} ADDITIONAL_LIBS_RELEASE ${arg_ADDITIONAL_LIBS_RELEASE}) list(APPEND arg_OPTIONS "/p:ForceImportAfterCppProps=${props_file}" "/p:ForceImportAfterCppTargets=${target_file}" ) endif() list(APPEND arg_OPTIONS "/t:${arg_TARGET}" "/p:UseMultiToolTask=true" "/p:MultiProcMaxCount=${VCPKG_CONCURRENCY}" "/p:EnforceProcessCountAcrossBuilds=true" "/m:${VCPKG_CONCURRENCY}" "-maxCpuCount:${VCPKG_CONCURRENCY}" # other Properties "/p:Platform=${arg_PLATFORM}" "/p:PlatformTarget=${TRIPLET_SYSTEM_ARCH}" "/p:PlatformToolset=${arg_PLATFORM_TOOLSET}" "/p:WindowsTargetPlatformVersion=${arg_TARGET_PLATFORM_VERSION}" # vcpkg properties "/p:VcpkgApplocalDeps=false" "/p:VcpkgManifestInstall=false" "/p:VcpkgManifestEnabled=false" "/p:VcpkgEnabled=false" "/p:VcpkgTriplet=${TARGET_TRIPLET}" "/p:VcpkgInstalledDir=${_VCPKG_INSTALLED_DIR}" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Disable LTCG for static libraries because this setting introduces ABI incompatibility between minor compiler versions # TODO: Add a way for the user to override this if they want to opt-in to incompatibility list(APPEND arg_OPTIONS "/p:WholeProgramOptimization=false") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") message(STATUS "Building ${arg_PROJECT_SUBPATH} for Release") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if("${build_type}" STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() set(working_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(REMOVE_RECURSE "${working_dir}") file(MAKE_DIRECTORY "${working_dir}") file(COPY "${arg_SOURCE_PATH}/" DESTINATION "${working_dir}") vcpkg_execute_required_process( COMMAND msbuild "${working_dir}/${arg_PROJECT_SUBPATH}" "/p:Configuration=${arg_RELEASE_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_RELEASE} WORKING_DIRECTORY "${working_dir}" LOGNAME "build-${TARGET_TRIPLET}-rel" ) if(NOT arg_NO_INSTALL) file(GLOB_RECURSE libs "${working_dir}/*.lib") file(GLOB_RECURSE dlls "${working_dir}/*.dll") file(GLOB_RECURSE exes "${working_dir}/*.exe") if(NOT libs STREQUAL "") file(COPY ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT dlls STREQUAL "") file(COPY ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() if(NOT exes STREQUAL "") file(COPY ${exes} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Building ${arg_PROJECT_SUBPATH} for Debug") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if("${build_type}" STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() set(working_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") file(REMOVE_RECURSE "${working_dir}") file(MAKE_DIRECTORY "${working_dir}") file(COPY "${arg_SOURCE_PATH}/" DESTINATION "${working_dir}") vcpkg_execute_required_process( COMMAND msbuild "${working_dir}/${arg_PROJECT_SUBPATH}" "/p:Configuration=${arg_DEBUG_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_DEBUG} WORKING_DIRECTORY "${working_dir}" LOGNAME "build-${TARGET_TRIPLET}-dbg" ) if(NOT arg_NO_INSTALL) file(GLOB_RECURSE libs "${working_dir}/*.lib") file(GLOB_RECURSE dlls "${working_dir}/*.dll") if(NOT libs STREQUAL "") file(COPY ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if(NOT dlls STREQUAL "") file(COPY ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endif() vcpkg_copy_pdbs() if(arg_CLEAN) vcpkg_clean_msbuild() endif() endfunction() ================================================ FILE: ports/vcpkg-msbuild/z_vcpkg_msbuild_create_props.cmake ================================================ function(z_vcpkg_msbuild_create_props) cmake_parse_arguments( PARSE_ARGV 0 "arg" "" "OUTPUT_PROPS;OUTPUT_TARGETS;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION" "DEPENDENT_PKGCONFIG;ADDITIONAL_LIBS_DEBUG;ADDITIONAL_LIBS_RELEASE" ) if(NOT arg_OUTPUT_PROPS) message(FATAL_ERROR "'${CMAKE_CURRENT_FUNCTION}' requires option 'OUTPUT_PROPS'!") endif() if(NOT arg_OUTPUT_TARGETS) message(FATAL_ERROR "'${CMAKE_CURRENT_FUNCTION}' requires option 'OUTPUT_TARGETS'!") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "'${CMAKE_CURRENT_FUNCTION}' was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() # TODO: detect and set these ? # stdcpp20 # stdc17 if(NOT DEFINED arg_RELEASE_CONFIGURATION) set(arg_RELEASE_CONFIGURATION Release) endif() if(NOT DEFINED arg_DEBUG_CONFIGURATION) set(arg_DEBUG_CONFIGURATION Debug) endif() set(TARGET_PLATFORM_VERSION "") vcpkg_get_windows_sdk(TARGET_PLATFORM_VERSION) if(arg_DEPENDENT_PKGCONFIG) if(NOT COMMAND x_vcpkg_pkgconfig_get_modules) message(FATAL_ERROR "Port vcpkg-msbuild needs to have feature 'pkg-config' enabled for 'DEPENDENT_PKGCONFIG'") endif() x_vcpkg_pkgconfig_get_modules(PREFIX MSBUILD INCLUDE_DIRS LIBRARIES LIBRARIES_DIR CFLAGS USE_MSVC_SYNTAX_ON_WINDOWS MODULES ${arg_DEPENDENT_PKGCONFIG}) separate_arguments(MSBUILD_INCLUDE_DIRS_RELEASE WINDOWS_COMMAND "${MSBUILD_INCLUDE_DIRS_RELEASE}") separate_arguments(MSBUILD_INCLUDE_DIRS_DEBUG WINDOWS_COMMAND "${MSBUILD_INCLUDE_DIRS_DEBUG}") foreach(inc_dirs IN LISTS MSBUILD_INCLUDE_DIRS_RELEASE) string(REPLACE "${inc_dirs}" "" MSBUILD_CFLAGS_RELEASE "${MSBUILD_CFLAGS_RELEASE}") endforeach() foreach(inc_dirs IN LISTS MSBUILD_INCLUDE_DIRS_DEBUG) string(REPLACE "${inc_dirs}" "" MSBUILD_CFLAGS_DEBUG "${MSBUILD_CFLAGS_DEBUG}") endforeach() list(TRANSFORM MSBUILD_INCLUDE_DIRS_RELEASE REPLACE "^/I" "") list(TRANSFORM MSBUILD_INCLUDE_DIRS_DEBUG REPLACE "^/I" "") separate_arguments(MSBUILD_LIBRARIES_DIRS_RELEASE WINDOWS_COMMAND "${MSBUILD_LIBRARIES_DIRS_RELEASE}") separate_arguments(MSBUILD_LIBRARIES_DIRS_DEBUG WINDOWS_COMMAND "${MSBUILD_LIBRARIES_DIRS_DEBUG}") separate_arguments(MSBUILD_LIBRARIES_RELEASE WINDOWS_COMMAND "${MSBUILD_LIBRARIES_RELEASE}") separate_arguments(MSBUILD_LIBRARIES_DEBUG WINDOWS_COMMAND "${MSBUILD_LIBRARIES_DEBUG}") endif() vcpkg_cmake_get_vars(vars_file) include("${vars_file}") vcpkg_list(APPEND MSBUILD_INCLUDE_DIRS_RELEASE "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_INSTALLED_DIR}/include") vcpkg_list(APPEND MSBUILD_INCLUDE_DIRS_DEBUG "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_INSTALLED_DIR}/include") vcpkg_list(APPEND MSBUILD_LIBRARIES_DIRS_RELEASE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_INSTALLED_DIR}/lib") vcpkg_list(APPEND MSBUILD_LIBRARIES_DIRS_DEBUG "${CURRENT_PACKAGES_DIR}/debug/lib" "${CURRENT_INSTALLED_DIR}/debug/lib") vcpkg_list(APPEND MSBUILD_LIBRARIES_RELEASE ${arg_ADDITIONAL_LIBS_RELEASE}) vcpkg_list(APPEND MSBUILD_LIBRARIES_DEBUG ${arg_ADDITIONAL_LIBS_DEBUG}) vcpkg_list(PREPEND MSBUILD_INCLUDE_DIRS_RELEASE "%(AdditionalIncludeDirectories)") vcpkg_list(PREPEND MSBUILD_INCLUDE_DIRS_DEBUG "%(AdditionalIncludeDirectories)") vcpkg_list(PREPEND MSBUILD_LIBRARIES_DIRS_RELEASE "%(AdditionalLibraryDirectories)") vcpkg_list(PREPEND MSBUILD_LIBRARIES_DIRS_DEBUG "%(AdditionalLibraryDirectories)") vcpkg_list(PREPEND MSBUILD_LIBRARIES_RELEASE "%(AdditionalDependencies)") vcpkg_list(PREPEND MSBUILD_LIBRARIES_DEBUG "%(AdditionalDependencies)") configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/vcpkg_msbuild.targets.in" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vcpkg_msbuild.targets") configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/vcpkg_msbuild.props.in" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vcpkg_msbuild.props") set(${arg_OUTPUT_PROPS} "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vcpkg_msbuild.props" PARENT_SCOPE) set(${arg_OUTPUT_TARGETS} "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}/vcpkg_msbuild.targets" PARENT_SCOPE) endfunction() ================================================ FILE: ports/vcpkg-pkgconfig-get-modules/portfile.cmake ================================================ set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" "${CURRENT_PORT_DIR}/x_vcpkg_pkgconfig_get_modules.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt") ================================================ FILE: ports/vcpkg-pkgconfig-get-modules/vcpkg-port-config.cmake ================================================ include("${CMAKE_CURRENT_LIST_DIR}/x_vcpkg_pkgconfig_get_modules.cmake") ================================================ FILE: ports/vcpkg-pkgconfig-get-modules/vcpkg.json ================================================ { "name": "vcpkg-pkgconfig-get-modules", "version-date": "2024-04-03", "documentation": "https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_pkgconfig_get_modules", "license": "MIT", "supports": "native", "dependencies": [ "pkgconf" ] } ================================================ FILE: ports/vcpkg-pkgconfig-get-modules/x_vcpkg_pkgconfig_get_modules.cmake ================================================ include_guard(GLOBAL) function(x_vcpkg_pkgconfig_get_modules) cmake_parse_arguments(PARSE_ARGV 0 "arg" "CFLAGS;LIBS;LIBRARIES;LIBRARIES_DIR;LIBRARIES_DIRS;INCLUDE_DIRS;USE_MSVC_SYNTAX_ON_WINDOWS" "PREFIX" "MODULES") if(NOT DEFINED arg_PREFIX OR arg_PREFIX STREQUAL "") message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter PREFIX!") endif() if(NOT DEFINED arg_MODULES OR arg_MODULES STREQUAL "") message(FATAL_ERROR "x_vcpkg_pkgconfig_get_modules requires parameter MODULES!") endif() if(arg_LIBRARIES_DIR) # Legacy. Remove in 2025. message(WARNING "x_vcpkg_pkgconfig_get_modules parameter LIBRARIES_DIR is a no-op. Use LIBRARIES_DIRS instead.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "extra arguments passed to x_vcpkg_pkgconfig_get_modules: ${arg_UNPARSED_ARGUMENTS}") endif() set(msvc "") if(arg_USE_MSVC_SYNTAX_ON_WINDOWS AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(msvc "--msvc-syntax") endif() set(PKGCONFIG "${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf${VCPKG_HOST_EXECUTABLE_SUFFIX}") set(backup_PKG_CONFIG_PATH "$ENV{PKG_CONFIG_PATH}") set(var_suffixes) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/lib/pkgconfig${VCPKG_HOST_PATH_SEPARATOR}${CURRENT_PACKAGES_DIR}/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}") if(arg_LIBS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBS_RELEASE) endif() if(arg_LIBRARIES) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs-only-l ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBRARIES_RELEASE) endif() if(arg_LIBRARIES_DIRS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs-only-L ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBRARIES_DIRS_RELEASE) endif() if(arg_INCLUDE_DIRS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --cflags-only-I ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes INCLUDE_DIRS_RELEASE) endif() if(arg_CFLAGS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --cflags ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_CFLAGS_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes CFLAGS_RELEASE) endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_set_pkgconfig_path("${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig${VCPKG_HOST_PATH_SEPARATOR}${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" "${backup_PKG_CONFIG_PATH}") if(arg_LIBS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBS_DEBUG OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBS_DEBUG) endif() if(arg_LIBRARIES) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs-only-l ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DEBUG OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBRARIES_DEBUG) endif() if(arg_LIBRARIES_DIRS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --libs-only-L ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_LIBRARIES_DIRS_DEBUG OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes LIBRARIES_DIRS_DEBUG) endif() if(arg_INCLUDE_DIRS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --cflags-only-I ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_INCLUDE_DIRS_DEBUG OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes INCLUDE_DIRS_DEBUG) endif() if(arg_CFLAGS) execute_process( COMMAND "${PKGCONFIG}" ${msvc} --cflags ${arg_MODULES} OUTPUT_VARIABLE ${arg_PREFIX}_CFLAGS_DEBUG OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) list(APPEND var_suffixes CFLAGS_DEBUG) endif() endif() set(ENV{PKG_CONFIG_PATH} "${backup_PKG_CONFIG_PATH}") foreach(_var IN LISTS var_suffixes) set("${arg_PREFIX}_${_var}" "${${arg_PREFIX}_${_var}}" PARENT_SCOPE) endforeach() endfunction() function(z_vcpkg_set_pkgconfig_path _path _backup) if(NOT _backup STREQUAL "") set(ENV{PKG_CONFIG_PATH} "${_path}${VCPKG_HOST_PATH_SEPARATOR}${_backup}") else() set(ENV{PKG_CONFIG_PATH} "${_path}") endif() endfunction() ================================================ FILE: ports/vcpkg-qmake/portfile.cmake ================================================ file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_configure.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_build.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_install.cmake" "${CMAKE_CURRENT_LIST_DIR}/z_vcpkg_qmake_fix_makefiles.cmake" "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: ports/vcpkg-qmake/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) include("${CMAKE_CURRENT_LIST_DIR}/../vcpkg-cmake-get-vars/vcpkg-port-config.cmake") include("${CMAKE_CURRENT_LIST_DIR}/z_vcpkg_qmake_fix_makefiles.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_configure.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_build.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_qmake_install.cmake") ================================================ FILE: ports/vcpkg-qmake/vcpkg.json ================================================ { "name": "vcpkg-qmake", "version-date": "2025-05-19", "documentation": "https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_qmake_configure", "license": "MIT", "supports": "native", "dependencies": [ "pkgconf", { "name": "qtbase", "default-features": false }, { "name": "vcpkg-cmake-get-vars", "host": true } ] } ================================================ FILE: ports/vcpkg-qmake/vcpkg_qmake_build.cmake ================================================ include_guard(GLOBAL) function(z_run_jom_build invoke_command targets log_prefix log_suffix) message(STATUS "Package ${log_prefix}-${TARGET_TRIPLET}-${log_suffix}") vcpkg_execute_build_process( COMMAND "${invoke_command}" -j ${VCPKG_CONCURRENCY} ${targets} NO_PARALLEL_COMMAND "${invoke_command}" -j 1 ${targets} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${log_suffix}" LOGNAME "package-${log_prefix}-${TARGET_TRIPLET}-${log_suffix}" ) endfunction() function(vcpkg_qmake_build) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "SKIP_MAKEFILES" "BUILD_LOGNAME" "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS" ) # Make sure that the linker finds the libraries used vcpkg_backup_env_variables(VARS PATH LD_LIBRARY_PATH) if(CMAKE_HOST_WIN32) if (VCPKG_QMAKE_USE_NMAKE) find_program(NMAKE nmake) set(invoke_command "${NMAKE}") get_filename_component(nmake_exe_path "${NMAKE}" DIRECTORY) vcpkg_host_path_list(APPEND ENV{PATH} "${nmake_exe_path}") else() vcpkg_find_acquire_program(JOM) set(invoke_command "${JOM}") endif() else() find_program(MAKE make) set(invoke_command "${MAKE}") endif() file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR) if(NOT DEFINED arg_BUILD_LOGNAME) set(arg_BUILD_LOGNAME build) endif() set(short_name_debug "dbg") set(path_suffix_debug "/debug") set(targets_debug "${arg_DEBUG_TARGETS}") set(short_name_release "rel") set(path_suffix_release "") set(targets_release "${arg_RELEASE_TARGETS}") if(NOT DEFINED VCPKG_BUILD_TYPE) set(items debug release) else() set(items release) endif() foreach(build_type IN ITEMS ${items}) set(current_installed_prefix "${CURRENT_INSTALLED_DIR}${path_suffix_${build_type}}") vcpkg_add_to_path(PREPEND "${current_installed_prefix}/lib" "${current_installed_prefix}/bin") vcpkg_list(SET targets ${targets_${build_type}} ${arg_TARGETS}) if(NOT arg_SKIP_MAKEFILES) z_run_jom_build("${invoke_command}" qmake_all makefiles "${short_name_${build_type}}") z_vcpkg_qmake_fix_makefiles("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_name_${build_type}}") endif() z_run_jom_build("${invoke_command}" "${targets}" "${arg_BUILD_LOGNAME}" "${short_name_${build_type}}") vcpkg_restore_env_variables(VARS PATH LD_LIBRARY_PATH) endforeach() endfunction() ================================================ FILE: ports/vcpkg-qmake/vcpkg_qmake_configure.cmake ================================================ include_guard(GLOBAL) function(vcpkg_qmake_configure) cmake_parse_arguments(PARSE_ARGV 0 arg "" "SOURCE_PATH" "QMAKE_OPTIONS;QMAKE_OPTIONS_RELEASE;QMAKE_OPTIONS_DEBUG;OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG") vcpkg_cmake_get_vars(detected_file) include("${detected_file}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND arg_QMAKE_OPTIONS "CONFIG-=shared") vcpkg_list(APPEND arg_QMAKE_OPTIONS "CONFIG*=static") else() vcpkg_list(APPEND arg_QMAKE_OPTIONS "CONFIG-=static") vcpkg_list(APPEND arg_QMAKE_OPTIONS "CONFIG*=shared") vcpkg_list(APPEND arg_QMAKE_OPTIONS_DEBUG "CONFIG*=separate_debug_info") endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") vcpkg_list(APPEND arg_QMAKE_OPTIONS "CONFIG*=static-runtime") endif() set(ENV{PKG_CONFIG} "${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf${VCPKG_HOST_EXECUTABLE_SUFFIX}") get_filename_component(PKGCONFIG_PATH "${PKGCONFIG}" DIRECTORY) vcpkg_add_to_path("${PKGCONFIG_PATH}") set(buildtypes "") if(NOT VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") list(APPEND buildtypes "DEBUG") # Using uppercase to also access the detected cmake variables with it set(path_suffix_DEBUG "debug/") set(short_name_DEBUG "dbg") set(qmake_config_DEBUG CONFIG+=debug CONFIG-=release) endif() if(NOT VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") list(APPEND buildtypes "RELEASE") set(path_suffix_RELEASE "") set(short_name_RELEASE "rel") set(qmake_config_RELEASE CONFIG-=debug CONFIG+=release) endif() function(qmake_append_program var qmake_var value) # Danger zone: qmake poorly handles tools in C:/Program Files etc. # IOW for MSVC it expects short command names, found via PATH. if(value MATCHES " ") get_filename_component(prog "${value}" NAME) find_program("z_vcpkg_qmake_${qmake_var}" NAMES "${prog}" PATHS ENV PATH NO_DEFAULT_PATH NO_CACHE) cmake_path(COMPARE "${z_vcpkg_qmake_${qmake_var}}" EQUAL "${value}" expected_program_in_path) if(NOT expected_program_in_path) message(FATAL_ERROR "Detected path mismatch for '${qmake_var}=${prog}'.\n" " Actual: ${z_vcpkg_qmake_${qmake_var}}\n" " Expected: ${value}\n" "Please correct environment variable PATH!" ) endif() else() set(prog "${value}") endif() vcpkg_list(APPEND "${var}" "${qmake_var}=${prog}") set("${var}" "${${var}}" PARENT_SCOPE) endfunction() # Setup Build tools if(NOT VCPKG_QMAKE_COMMAND) # For users using outside Qt6 set(VCPKG_QMAKE_COMMAND "${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/qmake${VCPKG_HOST_EXECUTABLE_SUFFIX}") endif() if(VCPKG_TARGET_IS_OSX) # Get Qt version execute_process( COMMAND ${VCPKG_QMAKE_COMMAND} -query QT_VERSION OUTPUT_VARIABLE QT_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ) if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) vcpkg_list(APPEND arg_QMAKE_OPTIONS "QMAKE_MACOSX_DEPLOYMENT_TARGET=${VCPKG_OSX_DEPLOYMENT_TARGET}") elseif(${QT_VERSION} VERSION_GREATER_EQUAL 6) # https://doc.qt.io/qt-6/macos.html vcpkg_list(APPEND arg_QMAKE_OPTIONS "QMAKE_MACOSX_DEPLOYMENT_TARGET=10.15") else() # Qt5 # https://doc.qt.io/qt-5/macos.html vcpkg_list(APPEND arg_QMAKE_OPTIONS "QMAKE_MACOSX_DEPLOYMENT_TARGET=10.13") endif() endif() set(qmake_build_tools "") qmake_append_program(qmake_build_tools "QMAKE_CC" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_CXX" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_AR" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_RANLIB" "${VCPKG_DETECTED_CMAKE_RANLIB}") qmake_append_program(qmake_build_tools "QMAKE_STRIP" "${VCPKG_DETECTED_CMAKE_STRIP}") qmake_append_program(qmake_build_tools "QMAKE_NM" "${VCPKG_DETECTED_CMAKE_NM}") qmake_append_program(qmake_build_tools "QMAKE_RC" "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_MT" "${VCPKG_DETECTED_CMAKE_MT}") if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_DETECTED_CMAKE_AR MATCHES "ar$") vcpkg_list(APPEND qmake_build_tools "QMAKE_AR+=qc") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) qmake_append_program(qmake_build_tools "QMAKE_LIB" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_LINKER}") else() qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_SHLIB" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C_SHLIB" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() if(DEFINED VCPKG_QT_TARGET_MKSPEC) vcpkg_list(APPEND arg_QMAKE_OPTIONS "-spec" "${VCPKG_QT_TARGET_MKSPEC}") endif() foreach(buildtype IN LISTS buildtypes) set(short "${short_name_${buildtype}}") string(TOLOWER "${buildtype}" lowerbuildtype) set(prefix "${CURRENT_INSTALLED_DIR}${path_suffix_${buildtype}}") set(prefix_package "${CURRENT_PACKAGES_DIR}${path_suffix_${buildtype}}") set(config_triplet "${TARGET_TRIPLET}-${short}") # Cleanup build directories file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${config_triplet}") set(qmake_comp_flags "") macro(qmake_add_flags qmake_var operation flags) string(STRIP "${flags}" striped_flags) if(striped_flags) vcpkg_list(APPEND qmake_comp_flags "${qmake_var}${operation}${striped_flags}") endif() endmacro() qmake_add_flags("QMAKE_LIBS" "+=" "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") qmake_add_flags("QMAKE_RC" "+=" "${VCPKG_COMBINED_RC_FLAGS_${buildtype}}") # not exported by vcpkg_cmake_get_vars yet qmake_add_flags("QMAKE_CFLAGS_${buildtype}" "+=" "${VCPKG_COMBINED_C_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_CXXFLAGS_${buildtype}" "+=" "${VCPKG_COMBINED_CXX_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_LFLAGS" "+=" "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_LFLAGS_SHLIB" "+=" "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_LFLAGS_PLUGIN" "+=" "${VCPKG_COMBINED_MODULE_LINKER_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_LIBFLAGS" "+=" "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${buildtype}}") qmake_add_flags("QMAKE_LIBFLAGS_${buildtype}" "+=" "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${buildtype}}") vcpkg_list(APPEND qmake_build_tools "QMAKE_AR+=${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${buildtype}}") # QMAKE_CXXFLAGS_SHLIB # Setup qt.conf if(NOT VCPKG_QT_CONF_${buildtype}) set(VCPKG_QT_CONF_${buildtype} "${CURRENT_INSTALLED_DIR}/tools/Qt6/qt_${lowerbuildtype}.conf") else() # Let a supplied qt.conf override everything. # The file will still be configured so users might use the variables within this scope. set(qmake_build_tools "") set(qmake_comp_flags "") endif() configure_file("${VCPKG_QT_CONF_${buildtype}}" "${CURRENT_BUILDTREES_DIR}/${config_triplet}/qt.conf") vcpkg_backup_env_variables(VARS PKG_CONFIG_PATH) vcpkg_host_path_list(PREPEND PKG_CONFIG_PATH "${prefix}/lib/pkgconfig" "${CURRENT_INSTALLED_DIR}/share/pkgconfig") message(STATUS "Configuring ${config_triplet}") if(DEFINED arg_OPTIONS OR DEFINED arg_OPTIONS_${buildtype}) set(options -- ${arg_OPTIONS} ${arg_OPTIONS_${buildtype}}) endif() # Options might need to go into a response file? I am a bit concerned about cmd line length. vcpkg_execute_required_process( COMMAND ${VCPKG_QMAKE_COMMAND} ${qmake_config_${buildtype}} ${arg_QMAKE_OPTIONS} ${arg_QMAKE_OPTIONS_${buildtype}} ${VCPKG_QMAKE_OPTIONS} ${VCPKG_QMAKE_OPTIONS_${buildtype}} # Advanced users need a way to inject QMAKE variables via the triplet. ${qmake_build_tools} ${qmake_comp_flags} "${arg_SOURCE_PATH}" -qtconf "${CURRENT_BUILDTREES_DIR}/${config_triplet}/qt.conf" ${options} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${config_triplet}" LOGNAME config-${config_triplet} SAVE_LOG_FILES config.log ) z_vcpkg_qmake_fix_makefiles("${CURRENT_BUILDTREES_DIR}/${config_triplet}") message(STATUS "Configuring ${config_triplet} done") vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) if(EXISTS "${CURRENT_BUILDTREES_DIR}/${config_triplet}/config.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${config_triplet}.log") file(RENAME "${CURRENT_BUILDTREES_DIR}/${config_triplet}/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${config_triplet}.log") endif() endforeach() endfunction() ================================================ FILE: ports/vcpkg-qmake/vcpkg_qmake_install.cmake ================================================ #[===[.md: # vcpkg_qmake_install Build and install a qmake project. ## Usage: ```cmake vcpkg_qmake_install(...) ``` ## Parameters: See [`vcpkg_qmake_build()`](vcpkg_qmake_build.md). ## Notes: This command transparently forwards to [`vcpkg_qmake_build()`](vcpkg_qmake_build.md). and appends the 'install' target #]===] function(z_vcpkg_qmake_fix_prl PACKAGE_DIR PRL_FILES) file(TO_CMAKE_PATH "${PACKAGE_DIR}/lib" CMAKE_LIB_PATH) file(TO_CMAKE_PATH "${PACKAGE_DIR}/include/Qt6" CMAKE_INCLUDE_PATH_QT6) file(TO_CMAKE_PATH "${PACKAGE_DIR}/include" CMAKE_INCLUDE_PATH) file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}" CMAKE_INSTALLED_PREFIX) foreach(PRL_FILE IN LISTS PRL_FILES) file(READ "${PRL_FILE}" _contents) string(REPLACE "${CMAKE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") string(REPLACE "${CMAKE_INCLUDE_PATH_QT6}" "\$\$[QT_INSTALL_HEADERS]" _contents "${_contents}") string(REPLACE "${CMAKE_INCLUDE_PATH}" "\$\$[QT_INSTALL_HEADERS]/../" _contents "${_contents}") string(REPLACE "${CMAKE_INSTALLED_PREFIX}" "\$\$[QT_INSTALL_PREFIX]" _contents "${_contents}") string(REGEX REPLACE "QMAKE_PRL_BUILD_DIR[^\\\n]+" "QMAKE_PRL_BUILD_DIR =" _contents "${_contents}") #Note: This only works without an extra if case since QT_INSTALL_PREFIX is the same for debug and release file(WRITE "${PRL_FILE}" "${_contents}") endforeach() endfunction() function(vcpkg_qmake_install) z_vcpkg_function_arguments(args) vcpkg_qmake_build(${args}) vcpkg_qmake_build(SKIP_MAKEFILES BUILD_LOGNAME "install" TARGETS "install") # Fix absolute paths in prl files file(GLOB_RECURSE prl_files "${CURRENT_PACKAGES_DIR}/**.prl") debug_message(STATUS "prl_files:${prl_files}") z_vcpkg_qmake_fix_prl("${CURRENT_PACKAGES_DIR}" "${prl_files}") endfunction() ================================================ FILE: ports/vcpkg-qmake/z_vcpkg_qmake_fix_makefiles.cmake ================================================ include_guard(GLOBAL) function(z_vcpkg_qmake_fix_makefiles BUILD_DIR) #Fix the installation location file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR) file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR) if(CMAKE_HOST_WIN32) string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE) string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE) string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 0 2 INSTALLED_DRIVE) string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 0 2 PACKAGES_DRIVE) else() set(INSTALLED_DRIVE "") set(PACKAGES_DRIVE "") set(INSTALLED_DIR_WITHOUT_DRIVE "${NATIVE_INSTALLED_DIR}") set(PACKAGES_DIR_WITHOUT_DRIVE "${NATIVE_PACKAGES_DIR}") endif() file(GLOB_RECURSE MAKEFILES "${BUILD_DIR}/**Makefile**") foreach(MAKEFILE ${MAKEFILES}) #Set the correct install directory to packages vcpkg_replace_string("${MAKEFILE}" "${INSTALLED_DRIVE}$(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "${PACKAGES_DRIVE}$(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}" IGNORE_UNCHANGED) endforeach() endfunction() ================================================ FILE: ports/vcpkg-tool-bazel/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(program bazel) set(program_version 5.2.0) if(VCPKG_CROSSCOMPILING) message(FATAL_ERROR "This is a host only port!") endif() if(VCPKG_TARGET_IS_LINUX) set(tool_subdirectory "${program_version}-linux") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-arm64") set(download_filename "bazel-${tool_subdirectory}-arm64") set(raw_executable ON) set(download_sha512 11e953717f0edd599053a9c6ab849c266f6b34cd6f39dd99301a138aeb9d10113d055f7a2452f6ae601a9e9c19c816d22732958bb147e493dae9c63b13e0f1e0) else() set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64") set(download_filename "bazel-${tool_subdirectory}-x86_64") set(raw_executable ON) set(download_sha512 c9f117414f31bc85a1f6a91f3d1c0a4884a4bb346bb60b00599c2da8225d085f67bc865f1429c897681cb99471767171aed148c77ce80d9525841c873d9cc912) endif() elseif(VCPKG_TARGET_IS_OSX) set(tool_subdirectory "${program_version}-darwin") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-arm64") set(download_filename "bazel-${tool_subdirectory}-arm64") set(raw_executable ON) set(download_sha512 303b5c897eab93fb164dda53ecf6294fd3376a5de17a752388f4e7f612a8a537acc7d99a021ca616c1d7989d10c3c14cd87689dad60b9f654bf75ecc606bb23e) else() set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64") set(download_filename "bazel-${tool_subdirectory}-x86_64") set(raw_executable ON) set(download_sha512 609db0a2f9d6eab292271b44acf08978159ca43a90f3228e32afe430e830f5418a041480d75e5b502be192897693f6b80a9ab9e7ce549e3655e188c39d29baaf) endif() elseif(VCPKG_TARGET_IS_WINDOWS) set(tool_subdirectory "${program_version}-windows") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-arm64.exe") set(download_filename "bazel-${tool_subdirectory}-arm64.exe") set(download_sha512 02c8f331daa3ea37319cf06d96618f433e297f749a1a6de863d243e2b826bfb12c058696cd6216afe38d35177f52cc1c66af98a8bcb191e198f436a44f2c2a1a) else() set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64.exe") set(download_filename "bazel-${tool_subdirectory}-x86_64.exe") set(download_sha512 4917dd714345359c24e40451e20862b2ed705824ceffe536d42e56ffcd66fcea581317857dfb5339b56534b0681efd8376e8eebdcf9daff0d087444b060bdc53) endif() endif() vcpkg_download_distfile(archive_path URLS ${download_urls} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) message(STATUS "archive_path: '${archive_path}'") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(INSTALL "${archive_path}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools" RENAME "${program}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) ================================================ FILE: ports/vcpkg-tool-bazel/vcpkg.json ================================================ { "name": "vcpkg-tool-bazel", "version": "5.2.0", "description": "Bazel build system", "homepage": "https://github.com/bazelbuild/bazel", "license": "Apache-2.0", "supports": "native" } ================================================ FILE: ports/vcpkg-tool-castxml/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(key NOTFOUND) if(VCPKG_CMAKE_SYSTEM_NAME) set(key "${VCPKG_CMAKE_SYSTEM_NAME}-${VCPKG_TARGET_ARCHITECTURE}") elseif(VCPKG_TARGET_IS_WINDOWS) set(key "Windows-${VCPKG_TARGET_ARCHITECTURE}") endif() set(archive_path NOTFOUND) # For convenient updates, use # vcpkg install vcpkg-tool-castxml --cmake-args=-DVCPKG_CASTXML_UPDATE=1 if(key STREQUAL "Linux-arm64" OR VCPKG_CASTXML_UPDATE) set(filename "castxml-${VERSION}-linux-aarch64.tar.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${VERSION}/castxml-linux-aarch64.tar.gz" FILENAME "${filename}" SHA512 229d5339e217660f09dd87e2e639d666921a8c4e6c328a754dcae4290bba6bcac9d3b8e953814314ecdbf908d5d8e0d7dacbf1fdf6040a2e20d7acb98fb32f7d ) endif() if(key STREQUAL "Linux-x64" OR VCPKG_CASTXML_UPDATE) set(filename "castxml-${VERSION}-linux.tar.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${VERSION}/castxml-linux.tar.gz" FILENAME "${filename}" SHA512 592fcb6c7f85b6a1670cef7e0692ec6d1c9ba2e250825032ed6dcf9581aa169540eded608510aa1208ea1174df48c16390ee7daf7a17c7114d93a83a8a8e109b ) endif() if(key STREQUAL "Darwin-arm64" OR VCPKG_CASTXML_UPDATE) set(filename "castxml-${VERSION}-macos-arm.tar.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${VERSION}/castxml-macos-arm.tar.gz" FILENAME "${filename}" SHA512 4c8c969f7e53cd758b516bada449b322d37ad19d6d46602660d83ece20ce07f3d55462493382a1c422048928962fd33f9704638e2e41637d1147473562a55f94 ) # Avoid breaking the code signature. set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() if(key STREQUAL "Darwin-x64" OR VCPKG_CASTXML_UPDATE) set(filename "castxml-${VERSION}-macosx.tar.gz") vcpkg_download_distfile(archive_path URLS "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${VERSION}/castxml-macosx.tar.gz" FILENAME "${filename}" SHA512 c6986a796ab9a4f4deaf569534d628cc584088aa8b0e56026ea5ba19550b8ceeb41c34f46a85566a21205d6bb529717ee8944cfa9a9c7c27edb0504eece5544a ) # Avoid breaking the code signature. set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() if(key STREQUAL "Windows-x64" OR VCPKG_CASTXML_UPDATE) set(filename "castxml-${VERSION}-windows.zip") vcpkg_download_distfile(archive_path URLS "https://github.com/CastXML/CastXMLSuperbuild/releases/download/v${VERSION}/castxml-windows.zip" FILENAME "${filename}" SHA512 7c1970ad6f2e5f06a8704606db92df3400c4cd9716f88cac604924430c7e6865f8256a67282d28005714f0ed0a42f7f6e386f24ce80fb075371902d35674c6cc ) endif() if(NOT archive_path) message(FATAL_ERROR "Unsupported platform '${key}'. Please implement me!") endif() if(VCPKG_CASTXML_UPDATE) message(STATUS "All downloads are up-to-date.") message(FATAL_ERROR "Stopping due to VCPKG_CASTXML_UPDATE being enabled.") endif() message(STATUS "archive_path: '${archive_path}'") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") vcpkg_execute_in_download_mode( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${archive_path}" WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools" ) vcpkg_install_copyright( FILE_LIST "${CURRENT_PACKAGES_DIR}/tools/castxml/share/doc/castxml/NOTICE" "${CURRENT_PACKAGES_DIR}/tools/castxml/share/doc/castxml/LICENSE" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/castxml/share/doc") ================================================ FILE: ports/vcpkg-tool-castxml/vcpkg.json ================================================ { "name": "vcpkg-tool-castxml", "version": "0.6.5", "description": "CastXML is a C-family abstract syntax tree XML output tool.", "homepage": "https://github.com/CastXML/CastXML", "license": "Apache-2.0", "supports": "native" } ================================================ FILE: ports/vcpkg-tool-gn/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(program GN) set(search_names gn gn.exe) set(paths_to_search "${CURRENT_PACKAGES_DIR}/tools/gn") set(cipd_download_gn "https://chrome-infra-packages.appspot.com/dl/gn/gn") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "aarch64") set(program_version "VAlW-kLtoSKXRPMM4ecwRVPmARjjo84zFmOVyy7Gq2AC") set(gn_platform "linux-arm64") set(download_sha512 "b16809f951774a6c36ec183a0214f957af289bc2ca015d425200f99f7a40c9ed27973056df4742c636c5cf2e1a2741b9fa4793ea2c6fcb01c42b17996a2464b9") elseif(HOST_ARCH STREQUAL "riscv64") set(program_version "tauFErkaMkGZN-_03F9DJfMm3DRnaiGOS6SXeLcOswAC") set(gn_platform "linux-riscv64") set(download_sha512 "210de22ad5d5634be902c68c6deed08686e252c34218baf30c6bd7266be142740b18d7e6a27b0ef56eb6f75dc5255d5365dff0b98ade482ccba4a32e756a14e5") else() set(program_version "fj2NZKMkIYZNH6uYG0bn8OsW_lZB5JKz3JeScMCLAGQC") set(gn_platform "linux-amd64") set(download_sha512 "d49575bd383b6aace1257a6e9439ce0a206173ec2cab94d5312f06db412e09c89aa75b1f4c69f5dca4389d15a489c211a73439a66f437c34b18bc90eefa0b775") endif() elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(supported_on_unix ON) EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "arm64") set(program_version "CLrnEDB8EiVuryPag1tNY_qaLMLtt193LzCgLMG58mMC") set(gn_platform "mac-arm64") set(download_sha512 "e3b2bd5b2b1cb1b5a51523d03ad5b5f052e2862da8f76e492b84ae5600f1670ea014d9a37e7e0b94439d610d8caba3e87badba0f2265b2c8ea2fd72ac3529790") else() set(program_version "F-i5FFe_bOb6clj5wr3S6HLUlfG6b6TAFdvm-uLE3mYC") set(gn_platform "mac-amd64") set(download_sha512 "1f56ed53b9770919f7682b11aa8beda000d62dd5c8ace72e7c92ed1782be2cdb1c64cb62f6ac7dc5259ac446105b33aa6806dd5e9c122a8c37ba1be2c85f1dad") endif() else() set(program_version "2lRFka6-TQLmU7YpwecZP2tJYOs9kkRN8y-8y_HWwWIC") set(gn_platform "windows-amd64") set(download_sha512 "60845024b70c52cc98ee3144a7b3889da98285033db631e53c4cbd6e036d33f4ce66b2ff85890318d54a01558410c49ee7622c24d5b1650f73e7734dd1ecc1ad") endif() set(download_urls "${cipd_download_gn}/${gn_platform}/+/${program_version}") set(download_filename "gn-${gn_platform}.zip") vcpkg_download_distfile(archive_path URLS ${download_urls} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/gn") vcpkg_execute_in_download_mode( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${archive_path}" WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/gn" ) z_vcpkg_find_acquire_program_find_internal("${program}" PATHS ${paths_to_search} NAMES ${search_names} ) message(STATUS "Using gn: ${GN}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/gn/version.txt" "${program_version}") # For vcpkg_find_acquire_program ================================================ FILE: ports/vcpkg-tool-gn/vcpkg.json ================================================ { "name": "vcpkg-tool-gn", "version-date": "2025-08-05", "port-version": 1, "description": "GN build system", "homepage": "https://gn.googlesource.com/gn/", "license": null, "supports": "native" } ================================================ FILE: ports/vcpkg-tool-gyp-next/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(PROGNAME gyp-next) set(GIT_REF ac262fe82453c4e8dc47529338d157eb0b5ec0fb) set(ARCHIVE gyp-next-${GIT_REF}) vcpkg_download_distfile(ARCHIVE_PATH URLS "https://github.com/nodejs/gyp-next/archive/${GIT_REF}.zip" SHA512 5607762ab4ec7d67c09518832365bfa897e3d71b891d7ad8ec27cc41322c0f1113cd45048990d497d683cc4d02d98ed17f4f672f4e10f64736ee1e2af1578bd1 FILENAME "${ARCHIVE}.zip" ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") vcpkg_execute_in_download_mode( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${ARCHIVE_PATH}" WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools" ) file(GLOB_RECURSE folders "${CURRENT_PACKAGES_DIR}/tools/*" LIST_DIRECTORIES true) file(RENAME "${CURRENT_PACKAGES_DIR}/tools/${ARCHIVE}" "${CURRENT_PACKAGES_DIR}/tools/gyp-next") ================================================ FILE: ports/vcpkg-tool-gyp-next/vcpkg.json ================================================ { "name": "vcpkg-tool-gyp-next", "version-date": "2022-10-15", "description": "https://github.com/nodejs/gyp-next", "supports": "native" } ================================================ FILE: ports/vcpkg-tool-lessmsi/portfile.cmake ================================================ set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/vcpkg-tool-lessmsi/vcpkg-port-config.cmake ================================================ include_guard(GLOBAL) set(version v1.10.0) find_program(LESSMSI PATHS "${DOWNLOADS}/lessmsi-${version}") if(NOT LESSMSI) vcpkg_download_distfile(archive_path URLS "https://github.com/activescott/lessmsi/releases/download/${version}/lessmsi-${version}.zip" FILENAME "lessmsi-${version}.zip" SHA512 91be9363d75e8ca0129304008ddc26fe575cc4fd76d7f43ef0a6ff414855dc1c6e412f4e694b2950026e02cc3d31b18bd8c2e4c03e1ddce01477f3f2d2197479 ) file(MAKE_DIRECTORY "${DOWNLOADS}/lessmsi-${version}") file(ARCHIVE_EXTRACT INPUT "${archive_path}" DESTINATION "${DOWNLOADS}/lessmsi-${version}" ) set(LESSMSI "${DOWNLOADS}/lessmsi-${version}/lessmsi@VCPKG_TARGET_EXECUTABLE_SUFFIX@") endif() ================================================ FILE: ports/vcpkg-tool-lessmsi/vcpkg.json ================================================ { "name": "vcpkg-tool-lessmsi", "version": "1.10.0", "port-version": 1, "description": "This is a utility with a graphical user interface and a command line interface that can be used to view and extract the contents of an MSI file.", "homepage": "https://github.com/activescott/lessmsi", "license": "MIT", "supports": "native & windows" } ================================================ FILE: ports/vcpkg-tool-meson/adjust-args.patch ================================================ diff --git a/mesonbuild/cmake/toolchain.py b/mesonbuild/cmake/toolchain.py index 11a00be5d..89ae490ff 100644 --- a/mesonbuild/cmake/toolchain.py +++ b/mesonbuild/cmake/toolchain.py @@ -202,7 +202,7 @@ class CMakeToolchain: @staticmethod def is_cmdline_option(compiler: 'Compiler', arg: str) -> bool: if compiler.get_argument_syntax() == 'msvc': - return arg.startswith('/') + return arg.startswith(('/','-')) else: if os.path.basename(compiler.get_exe()) == 'zig' and arg in {'ar', 'cc', 'c++', 'dlltool', 'lib', 'ranlib', 'objcopy', 'rc'}: return True ================================================ FILE: ports/vcpkg-tool-meson/adjust-python-dep.patch ================================================ diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py index 883a29a..d9a82af 100644 --- a/mesonbuild/dependencies/python.py +++ b/mesonbuild/dependencies/python.py @@ -232,8 +232,10 @@ class _PythonDependencyBase(_Base): else: if self.is_freethreaded: libpath = Path('libs') / f'python{vernum}t.lib' + libpath = Path('libs') / f'..' / f'..' / f'..' / f'lib' / f'python{vernum}t.lib' else: libpath = Path('libs') / f'python{vernum}.lib' + libpath = Path('libs') / f'..' / f'..' / f'..' / f'lib' / f'python{vernum}.lib' # For a debug build, pyconfig.h may force linking with # pythonX_d.lib (see meson#10776). This cannot be avoided # and won't work unless we also have a debug build of @@ -250,6 +252,8 @@ class _PythonDependencyBase(_Base): vscrt = self.env.coredata.optstore.get_value('b_vscrt') if vscrt in {'mdd', 'mtd', 'from_buildtype', 'static_from_buildtype'}: vscrt_debug = True + if is_debug_build: + libpath = Path('libs') / f'..' / f'..' / f'..' / f'debug/lib' / f'python{vernum}_d.lib' if is_debug_build and vscrt_debug and not self.variables.get('Py_DEBUG'): mlog.warning(textwrap.dedent('''\ Using a debug build type with MSVC or an MSVC-compatible compiler @@ -350,9 +354,10 @@ class PythonSystemDependency(SystemDependency, _PythonDependencyBase): self.is_found = True # compile args + verdot = self.variables.get('py_version_short') inc_paths = mesonlib.OrderedSet([ self.variables.get('INCLUDEPY'), - self.paths.get('include'), + self.paths.get('include') + f'/../../../include/python${verdot}', self.paths.get('platinclude')]) self.compile_args += ['-I' + path for path in inc_paths if path] @@ -416,7 +421,7 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice', candidates.append(functools.partial(wrap_in_pythons_pc_dir, pkg_name, env, kwargs, installation)) # We only need to check both, if a python install has a LIBPC. It might point to the wrong location, # e.g. relocated / cross compilation, but the presence of LIBPC indicates we should definitely look for something. - if pkg_libdir is not None: + if True or pkg_libdir is not None: candidates.append(functools.partial(PythonPkgConfigDependency, pkg_name, env, kwargs, installation)) else: candidates.append(functools.partial(PkgConfigDependency, 'python3', env, kwargs)) ================================================ FILE: ports/vcpkg-tool-meson/install.cmake ================================================ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/meson") file(INSTALL "${SOURCE_PATH}/meson.py" "${SOURCE_PATH}/mesonbuild" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/meson" ) ================================================ FILE: ports/vcpkg-tool-meson/meson-56879d5.diff ================================================ diff --git a/mesonbuild/msetup.py b/mesonbuild/msetup.py index 8d7dd0bbf756..f1fa777d179a 100644 --- a/mesonbuild/msetup.py +++ b/mesonbuild/msetup.py @@ -16,6 +16,7 @@ if T.TYPE_CHECKING: from typing_extensions import Protocol from .coredata import SharedCMDOptions + from .interpreter import SubprojectHolder class CMDOptions(SharedCMDOptions, Protocol): @@ -192,9 +193,9 @@ def generate(self, capture: bool = False, vslite_ctx: T.Optional[dict] = None) - 'Some other Meson process is already using this build directory. Exiting.'): return self._generate(env, capture, vslite_ctx) - def check_unused_options(self, coredata: 'coredata.CoreData', cmd_line_options: T.Dict[OptionKey, str], all_subprojects: T.Mapping[str, object]) -> None: + def check_unused_options(self, coredata: 'coredata.CoreData', cmd_line_options: T.Dict[OptionKey, str], all_subprojects: T.Mapping[str, SubprojectHolder]) -> None: errlist: T.List[str] = [] - known_subprojects = all_subprojects.keys() + known_subprojects = [name for name, obj in all_subprojects.items() if obj.found()] for opt in cmd_line_options: # Accept options that exist or could appear in subsequent reconfigurations, # including options for subprojects that were not used ================================================ FILE: ports/vcpkg-tool-meson/meson-intl.patch ================================================ diff --git a/mesonbuild/dependencies/misc.py b/mesonbuild/dependencies/misc.py --- a/mesonbuild/dependencies/misc.py +++ b/mesonbuild/dependencies/misc.py @@ -593,7 +593,8 @@ iconv_factory = DependencyFactory( packages['intl'] = intl_factory = DependencyFactory( 'intl', + [DependencyMethods.BUILTIN, DependencyMethods.SYSTEM, DependencyMethods.CMAKE], + cmake_name='Intl', - [DependencyMethods.BUILTIN, DependencyMethods.SYSTEM], builtin_class=IntlBuiltinDependency, system_class=IntlSystemDependency, ) ================================================ FILE: ports/vcpkg-tool-meson/meson.template.in ================================================ [binaries] cmake = ['@CMAKE_COMMAND@'] ninja = ['@NINJA@'] pkg-config = ['@PKGCONFIG@'] @MESON_MT@ @MESON_AR@ @MESON_RC@ @MESON_C@ @MESON_C_LD@ @MESON_CXX@ @MESON_CXX_LD@ @MESON_OBJC@ @MESON_OBJC_LD@ @MESON_OBJCPP@ @MESON_OBJCPP_LD@ @MESON_FC@ @MESON_FC_LD@ @MESON_WINDRES@ @MESON_ADDITIONAL_BINARIES@ [properties] cmake_toolchain_file = '@SCRIPTS@/buildsystems/vcpkg.cmake' @MESON_ADDITIONAL_PROPERTIES@ [cmake] CMAKE_BUILD_TYPE = '@MESON_CMAKE_BUILD_TYPE@' VCPKG_TARGET_TRIPLET = '@TARGET_TRIPLET@' VCPKG_HOST_TRIPLET = '@_HOST_TRIPLET@' VCPKG_CHAINLOAD_TOOLCHAIN_FILE = '@VCPKG_CHAINLOAD_TOOLCHAIN_FILE@' VCPKG_CRT_LINKAGE = '@VCPKG_CRT_LINKAGE@' _VCPKG_INSTALLED_DIR = '@_VCPKG_INSTALLED_DIR@' @MESON_HOST_MACHINE@ @MESON_BUILD_MACHINE@ [built-in options] default_library = '@MESON_DEFAULT_LIBRARY@' werror = false @MESON_CFLAGS@ @MESON_CXXFLAGS@ @MESON_FCFLAGS@ @MESON_OBJCFLAGS@ @MESON_OBJCPPFLAGS@ # b_vscrt @MESON_VSCRT_LINKAGE@ # c_winlibs/cpp_winlibs @MESON_WINLIBS@ ================================================ FILE: ports/vcpkg-tool-meson/portfile.cmake ================================================ # This port represents a dependency on the Meson build system. # In the future, it is expected that this port acquires and installs Meson. # Currently is used in ports that call vcpkg_find_acquire_program(MESON) in order to force rebuilds. set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) set(patches meson-intl.patch adjust-python-dep.patch adjust-args.patch remove-pkgconfig-specialization.patch meson-56879d5.diff # Remove with 1.9.1 ) set(scripts vcpkg-port-config.cmake vcpkg_configure_meson.cmake vcpkg_install_meson.cmake meson.template.in ) set(to_hash "${CMAKE_CURRENT_LIST_DIR}/vcpkg.json" "${CMAKE_CURRENT_LIST_DIR}/portfile.cmake" ) foreach(file IN LISTS patches scripts) set(filepath "${CMAKE_CURRENT_LIST_DIR}/${file}") list(APPEND to_hash "${filepath}") file(COPY "${filepath}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endforeach() set(meson_path_hash "") foreach(filepath IN LISTS to_hash) file(SHA1 "${filepath}" to_append) string(APPEND meson_path_hash "${to_append}") endforeach() string(SHA512 meson_path_hash "${meson_path_hash}") string(SUBSTRING "${meson_path_hash}" 0 6 MESON_SHORT_HASH) list(TRANSFORM patches REPLACE [[^(..*)$]] [["${CMAKE_CURRENT_LIST_DIR}/\0"]]) list(JOIN patches "\n " PATCHES) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${VCPKG_ROOT_DIR}/LICENSE.txt") include("${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake") ================================================ FILE: ports/vcpkg-tool-meson/remove-pkgconfig-specialization.patch ================================================ diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index bef14e9..fec595f 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -715,6 +715,9 @@ class PkgConfigModule(NewExtensionModule): pcfile = filebase + '.pc' pkgroot = pkgroot_name = kwargs['install_dir'] or default_install_dir if pkgroot is None: + pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('libdir'))), 'pkgconfig') + pkgroot_name = os.path.join('{libdir}', 'pkgconfig') + elif False: m = state.environment.machines.host if m.is_freebsd(): pkgroot = os.path.join(_as_str(state.environment.coredata.optstore.get_value_for(OptionKey('prefix'))), 'libdata', 'pkgconfig') ================================================ FILE: ports/vcpkg-tool-meson/vcpkg-port-config.cmake ================================================ include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-cmake-get-vars/vcpkg-port-config.cmake") # Overwrite builtin scripts include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_configure_meson.cmake") include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_install_meson.cmake") set(meson_short_hash @MESON_SHORT_HASH@) # Setup meson: set(program MESON) set(program_version @VERSION@) set(program_name meson) set(search_names meson meson.py) set(ref "${program_version}") set(path_to_search "${DOWNLOADS}/tools/meson-${program_version}-${meson_short_hash}") set(download_urls "https://github.com/mesonbuild/meson/archive/${ref}.tar.gz") set(download_filename "meson-${ref}.tar.gz") set(download_sha512 ecd69b6734be14c467f7db67dd88c0e57ebfad83ce3ddada131ff3e43ac964523e1083d7c7f3803033a9a76adbc32ad26dd2e3aca69884269000ca64130bde07) find_program(SCRIPT_MESON NAMES ${search_names} PATHS "${path_to_search}" NO_DEFAULT_PATH) # NO_DEFAULT_PATH due top patching if(NOT SCRIPT_MESON) vcpkg_download_distfile(archive_path URLS ${download_urls} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) file(REMOVE_RECURSE "${path_to_search}") file(REMOVE_RECURSE "${path_to_search}-tmp") file(MAKE_DIRECTORY "${path_to_search}-tmp") file(ARCHIVE_EXTRACT INPUT "${archive_path}" DESTINATION "${path_to_search}-tmp" #PATTERNS "**/mesonbuild/*" "**/*.py" ) z_vcpkg_apply_patches( SOURCE_PATH "${path_to_search}-tmp/meson-${ref}" PATCHES @PATCHES@ ) file(MAKE_DIRECTORY "${path_to_search}") file(RENAME "${path_to_search}-tmp/meson-${ref}/meson.py" "${path_to_search}/meson.py") file(RENAME "${path_to_search}-tmp/meson-${ref}/mesonbuild" "${path_to_search}/mesonbuild") file(REMOVE_RECURSE "${path_to_search}-tmp") set(SCRIPT_MESON "${path_to_search}/meson.py") endif() # Check required python version vcpkg_find_acquire_program(PYTHON3) vcpkg_execute_in_download_mode( COMMAND "${PYTHON3}" --version OUTPUT_VARIABLE version_contents WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" ) string(REGEX MATCH [[[0-9]+\.[0-9]+\.[0-9]+]] python_ver "${version_contents}") set(min_required 3.7) if(python_ver VERSION_LESS "${min_required}") message(FATAL_ERROR "Found Python version '${python_ver} at ${PYTHON3}' is insufficient for meson. meson requires at least version '${min_required}'") else() message(STATUS "Found Python version '${python_ver} at ${PYTHON3}'") endif() message(STATUS "Using meson: ${SCRIPT_MESON}") ================================================ FILE: ports/vcpkg-tool-meson/vcpkg.json ================================================ { "name": "vcpkg-tool-meson", "version": "1.9.0", "port-version": 4, "description": "Meson build system", "homepage": "https://github.com/mesonbuild/meson", "license": "Apache-2.0", "supports": "native", "dependencies": [ "vcpkg-cmake-get-vars" ] } ================================================ FILE: ports/vcpkg-tool-meson/vcpkg_configure_meson.cmake ================================================ function(z_vcpkg_meson_set_proglist_variables config_type) if(VCPKG_TARGET_IS_WINDOWS) set(proglist MT AR) else() set(proglist AR RANLIB STRIP NM OBJDUMP DLLTOOL MT) endif() foreach(prog IN LISTS proglist) if(VCPKG_DETECTED_CMAKE_${prog}) if(meson_${prog}) string(TOUPPER "MESON_${meson_${prog}}" var_to_set) set("${var_to_set}" "${meson_${prog}} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE) elseif(${prog} STREQUAL AR AND VCPKG_COMBINED_STATIC_LINKER_FLAGS_${config_type}) # Probably need to move AR somewhere else string(TOLOWER "${prog}" proglower) z_vcpkg_meson_convert_compiler_flags_to_list(ar_flags "${VCPKG_COMBINED_STATIC_LINKER_FLAGS_${config_type}}") list(PREPEND ar_flags "${VCPKG_DETECTED_CMAKE_${prog}}") z_vcpkg_meson_convert_list_to_python_array(ar_flags ${ar_flags}) set("MESON_AR" "${proglower} = ${ar_flags}" PARENT_SCOPE) else() string(TOUPPER "MESON_${prog}" var_to_set) string(TOLOWER "${prog}" proglower) set("${var_to_set}" "${proglower} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE) endif() endif() endforeach() set(compilers "${arg_LANGUAGES}") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND compilers RC) endif() set(meson_RC windres) set(meson_Fortran fortran) set(meson_CXX cpp) foreach(prog IN LISTS compilers) if(VCPKG_DETECTED_CMAKE_${prog}_COMPILER) string(TOUPPER "MESON_${prog}" var_to_set) if(meson_${prog}) if(VCPKG_COMBINED_${prog}_FLAGS_${config_type}) # Need compiler flags in prog vars for sanity check. z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_COMBINED_${prog}_FLAGS_${config_type}}") endif() list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}") list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags}) set("${var_to_set}" "${meson_${prog}} = ${${prog}flags}" PARENT_SCOPE) if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$" AND VCPKG_DETECTED_CMAKE_LINKER) string(TOUPPER "MESON_${prog}_LD" var_to_set) set(${var_to_set} "${meson_${prog}}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE) endif() else() if(VCPKG_COMBINED_${prog}_FLAGS_${config_type}) # Need compiler flags in prog vars for sanity check. z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_COMBINED_${prog}_FLAGS_${config_type}}") endif() list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}") list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags}) string(TOLOWER "${prog}" proglower) set("${var_to_set}" "${proglower} = ${${prog}flags}" PARENT_SCOPE) if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$" AND VCPKG_DETECTED_CMAKE_LINKER) string(TOUPPER "MESON_${prog}_LD" var_to_set) set(${var_to_set} "${proglower}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE) endif() endif() endif() endforeach() endfunction() function(z_vcpkg_meson_convert_compiler_flags_to_list out_var compiler_flags) separate_arguments(cmake_list NATIVE_COMMAND "${compiler_flags}") list(TRANSFORM cmake_list REPLACE ";" [[\\;]]) set("${out_var}" "${cmake_list}" PARENT_SCOPE) endfunction() function(z_vcpkg_meson_convert_list_to_python_array out_var) z_vcpkg_function_arguments(flag_list 1) vcpkg_list(REMOVE_ITEM flag_list "") # remove empty elements if any vcpkg_list(JOIN flag_list "', '" flag_list) set("${out_var}" "['${flag_list}']" PARENT_SCOPE) endfunction() # Generates the required compiler properties for meson function(z_vcpkg_meson_set_flags_variables config_type) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(libpath_flag /LIBPATH:) else() set(libpath_flag -L) endif() if(config_type STREQUAL "DEBUG") set(path_suffix "/debug") else() set(path_suffix "") endif() set(includepath "-I${CURRENT_INSTALLED_DIR}/include") set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib") foreach(lang IN LISTS arg_LANGUAGES) z_vcpkg_meson_convert_compiler_flags_to_list(${lang}flags "${VCPKG_COMBINED_${lang}_FLAGS_${config_type}}") if(lang MATCHES "^(C|CXX)$") vcpkg_list(APPEND ${lang}flags "${includepath}") endif() z_vcpkg_meson_convert_list_to_python_array(${lang}flags ${${lang}flags}) set(lang_mapping "${lang}") if(lang STREQUAL "Fortran") set(lang_mapping "FC") endif() string(TOLOWER "${lang_mapping}" langlower) if(lang STREQUAL "CXX") set(langlower cpp) endif() set(MESON_${lang_mapping}FLAGS "${langlower}_args = ${${lang}flags}\n") set(linker_flags "${VCPKG_COMBINED_SHARED_LINKER_FLAGS_${config_type}}") z_vcpkg_meson_convert_compiler_flags_to_list(linker_flags "${linker_flags}") vcpkg_list(APPEND linker_flags "${libpath}") z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags}) string(APPEND MESON_${lang_mapping}FLAGS "${langlower}_link_args = ${linker_flags}\n") set(MESON_${lang_mapping}FLAGS "${MESON_${lang_mapping}FLAGS}" PARENT_SCOPE) endforeach() endfunction() function(z_vcpkg_get_build_and_host_system build_system host_system is_cross) #https://mesonbuild.com/Cross-compilation.html set(build_unknown FALSE) if(CMAKE_HOST_WIN32) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(build_arch $ENV{PROCESSOR_ARCHITEW6432}) else() set(build_arch $ENV{PROCESSOR_ARCHITECTURE}) endif() if(build_arch MATCHES "(amd|AMD)64") set(build_cpu_fam x86_64) set(build_cpu x86_64) elseif(build_arch MATCHES "(x|X)86") set(build_cpu_fam x86) set(build_cpu i686) elseif(build_arch MATCHES "^(ARM|arm)64$") set(build_cpu_fam aarch64) set(build_cpu armv8) elseif(build_arch MATCHES "^(ARM|arm)$") set(build_cpu_fam arm) set(build_cpu armv7hl) else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unsupported build architecture ${build_arch}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() elseif(CMAKE_HOST_UNIX) # at this stage, CMAKE_HOST_SYSTEM_PROCESSOR is not defined execute_process( COMMAND uname -m OUTPUT_VARIABLE MACHINE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY) if(CMAKE_HOST_SOLARIS) execute_process( COMMAND isainfo -k OUTPUT_VARIABLE MACHINE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY) endif() # Show real machine architecture to visually understand whether we are in a native Apple Silicon terminal or running under Rosetta emulation debug_message("Machine: ${MACHINE}") if(MACHINE MATCHES "arm64|aarch64") set(build_cpu_fam aarch64) set(build_cpu armv8) elseif(MACHINE MATCHES "armv7h?l") set(build_cpu_fam arm) set(build_cpu ${MACHINE}) elseif(MACHINE MATCHES "x86_64|amd64") set(build_cpu_fam x86_64) set(build_cpu x86_64) elseif(MACHINE MATCHES "x86|i686") set(build_cpu_fam x86) set(build_cpu i686) elseif(MACHINE MATCHES "i386") set(build_cpu_fam x86) set(build_cpu i386) elseif(MACHINE MATCHES "riscv64") set(build_cpu_fam riscv64) set(build_cpu riscv64) elseif(MACHINE MATCHES "loongarch64") set(build_cpu_fam loongarch64) set(build_cpu loongarch64) elseif(MACHINE MATCHES "ppc64|powerpc64") set(build_cpu_fam powerpc64) set(build_cpu powerpc64) else() # https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-tables.md#cpu-families if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unhandled machine: ${MACHINE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Failed to detect the build architecture! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() set(build "[build_machine]\n") # Machine the build is performed on string(APPEND build "endian = 'little'\n") if(CMAKE_HOST_WIN32) string(APPEND build "system = 'windows'\n") elseif(CMAKE_HOST_APPLE) string(APPEND build "system = 'darwin'\n") elseif(CYGWIN) string(APPEND build "system = 'cygwin'\n") elseif(CMAKE_HOST_UNIX) string(APPEND build "system = 'linux'\n") else() set(build_unknown TRUE) endif() if(DEFINED build_cpu_fam) string(APPEND build "cpu_family = '${build_cpu_fam}'\n") endif() if(DEFINED build_cpu) string(APPEND build "cpu = '${build_cpu}'") endif() if(NOT build_unknown) set(${build_system} "${build}" PARENT_SCOPE) endif() set(host_unkown FALSE) if(VCPKG_TARGET_ARCHITECTURE MATCHES "(amd|AMD|x|X)64") set(host_cpu_fam x86_64) set(host_cpu x86_64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86") set(host_cpu_fam x86) set(host_cpu i686) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "riscv64") set(host_cpu_fam riscv64) set(host_cpu riscv64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$") set(host_cpu_fam aarch64) set(host_cpu armv8) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)$") set(host_cpu_fam arm) set(host_cpu armv7hl) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "loongarch64") set(host_cpu_fam loongarch64) set(host_cpu loongarch64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "ppc64|powerpc64") set(host_cpu_fam powerpc64) set(host_cpu powerpc64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "wasm32") set(host_cpu_fam wasm32) set(host_cpu wasm32) else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unsupported target architecture ${VCPKG_TARGET_ARCHITECTURE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the host_machine entry!" ) endif() set(host_unkown TRUE) endif() set(host "[host_machine]\n") # host=target in vcpkg. string(APPEND host "endian = 'little'\n") if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_TARGET_IS_MINGW OR VCPKG_TARGET_IS_UWP) set(meson_system_name "windows") else() string(TOLOWER "${VCPKG_CMAKE_SYSTEM_NAME}" meson_system_name) endif() string(APPEND host "system = '${meson_system_name}'\n") string(APPEND host "cpu_family = '${host_cpu_fam}'\n") string(APPEND host "cpu = '${host_cpu}'") if(NOT host_unkown) set(${host_system} "${host}" PARENT_SCOPE) endif() if(NOT build_cpu_fam MATCHES "${host_cpu_fam}" OR VCPKG_TARGET_IS_ANDROID OR (VCPKG_TARGET_IS_APPLE AND NOT VCPKG_TARGET_IS_OSX) OR VCPKG_TARGET_IS_UWP OR (VCPKG_TARGET_IS_MINGW AND NOT CMAKE_HOST_WIN32)) set(${is_cross} TRUE PARENT_SCOPE) endif() endfunction() function(z_vcpkg_meson_setup_extra_windows_variables config_type) ## b_vscrt if(VCPKG_CRT_LINKAGE STREQUAL "static") set(crt_type "mt") else() set(crt_type "md") endif() if(config_type STREQUAL "DEBUG") set(crt_type "${crt_type}d") endif() set(MESON_VSCRT_LINKAGE "b_vscrt = '${crt_type}'" PARENT_SCOPE) ## winlibs separate_arguments(c_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}") separate_arguments(cpp_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") z_vcpkg_meson_convert_list_to_python_array(c_winlibs ${c_winlibs}) z_vcpkg_meson_convert_list_to_python_array(cpp_winlibs ${cpp_winlibs}) set(MESON_WINLIBS "c_winlibs = ${c_winlibs}\n") string(APPEND MESON_WINLIBS "cpp_winlibs = ${cpp_winlibs}") set(MESON_WINLIBS "${MESON_WINLIBS}" PARENT_SCOPE) endfunction() function(z_vcpkg_meson_setup_variables config_type) set(meson_var_list VSCRT_LINKAGE WINLIBS MT AR RC C C_LD CXX CXX_LD OBJC OBJC_LD OBJCXX OBJCXX_LD FC FC_LD WINDRES CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FCFLAGS SHARED_LINKER_FLAGS) foreach(var IN LISTS meson_var_list) set(MESON_${var} "") endforeach() if(VCPKG_TARGET_IS_WINDOWS) z_vcpkg_meson_setup_extra_windows_variables("${config_type}") endif() z_vcpkg_meson_set_proglist_variables("${config_type}") z_vcpkg_meson_set_flags_variables("${config_type}") foreach(var IN LISTS meson_var_list) set(MESON_${var} "${MESON_${var}}" PARENT_SCOPE) endforeach() endfunction() function(vcpkg_generate_meson_cmd_args) cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUTPUT;CONFIG" "OPTIONS;LANGUAGES;ADDITIONAL_BINARIES;ADDITIONAL_PROPERTIES" ) if(NOT arg_LANGUAGES) set(arg_LANGUAGES C CXX) endif() vcpkg_list(JOIN arg_ADDITIONAL_BINARIES "\n" MESON_ADDITIONAL_BINARIES) vcpkg_list(JOIN arg_ADDITIONAL_PROPERTIES "\n" MESON_ADDITIONAL_PROPERTIES) set(buildtype "${arg_CONFIG}") if(NOT VCPKG_CHAINLOAD_TOOLCHAIN_FILE) z_vcpkg_select_default_vcpkg_chainload_toolchain() endif() vcpkg_list(APPEND VCPKG_CMAKE_CONFIGURE_OPTIONS "-DVCPKG_LANGUAGES=${arg_LANGUAGES}") vcpkg_cmake_get_vars(cmake_vars_file) debug_message("Including cmake vars from: ${cmake_vars_file}") include("${cmake_vars_file}") vcpkg_list(APPEND arg_OPTIONS --backend ninja --wrap-mode nodownload -Doptimization=plain) z_vcpkg_get_build_and_host_system(MESON_HOST_MACHINE MESON_BUILD_MACHINE IS_CROSS) if(arg_CONFIG STREQUAL "DEBUG") set(suffix "dbg") else() string(SUBSTRING "${arg_CONFIG}" 0 3 suffix) string(TOLOWER "${suffix}" suffix) endif() set(meson_input_file_${buildtype} "${CURRENT_BUILDTREES_DIR}/meson-${TARGET_TRIPLET}-${suffix}.log") if(IS_CROSS) # VCPKG_CROSSCOMPILING is not used since it regresses a lot of ports in x64-windows-x triplets # For consistency this should proably be changed in the future? vcpkg_list(APPEND arg_OPTIONS --native "${SCRIPTS}/buildsystems/meson/none.txt") vcpkg_list(APPEND arg_OPTIONS --cross "${meson_input_file_${buildtype}}") else() vcpkg_list(APPEND arg_OPTIONS --native "${meson_input_file_${buildtype}}") endif() # User provided cross/native files if(VCPKG_MESON_NATIVE_FILE) vcpkg_list(APPEND arg_OPTIONS --native "${VCPKG_MESON_NATIVE_FILE}") endif() if(VCPKG_MESON_NATIVE_FILE_${buildtype}) vcpkg_list(APPEND arg_OPTIONS --native "${VCPKG_MESON_NATIVE_FILE_${buildtype}}") endif() if(VCPKG_MESON_CROSS_FILE) vcpkg_list(APPEND arg_OPTIONS --cross "${VCPKG_MESON_CROSS_FILE}") endif() if(VCPKG_MESON_CROSS_FILE_${buildtype}) vcpkg_list(APPEND arg_OPTIONS --cross "${VCPKG_MESON_CROSS_FILE_${buildtype}}") endif() vcpkg_list(APPEND arg_OPTIONS --libdir lib) # else meson install into an architecture describing folder vcpkg_list(APPEND arg_OPTIONS --pkgconfig.relocatable) if(arg_CONFIG STREQUAL "RELEASE") vcpkg_list(APPEND arg_OPTIONS -Ddebug=false --prefix "${CURRENT_PACKAGES_DIR}") vcpkg_list(APPEND arg_OPTIONS "--pkg-config-path;['${CURRENT_INSTALLED_DIR}/lib/pkgconfig','${CURRENT_INSTALLED_DIR}/share/pkgconfig']") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}/share']") else() vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug']") endif() elseif(arg_CONFIG STREQUAL "DEBUG") vcpkg_list(APPEND arg_OPTIONS -Ddebug=true --prefix "${CURRENT_PACKAGES_DIR}/debug" --includedir ../include) vcpkg_list(APPEND arg_OPTIONS "--pkg-config-path;['${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig','${CURRENT_INSTALLED_DIR}/share/pkgconfig']") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/share']") else() vcpkg_list(APPEND arg_OPTIONS "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}']") endif() else() message(FATAL_ERROR "Unknown configuration. Only DEBUG and RELEASE are valid values.") endif() # Allow overrides / additional configuration variables from triplets if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MESON_CONFIGURE_OPTIONS}) endif() if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS_${buildtype}) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MESON_CONFIGURE_OPTIONS_${buildtype}}) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(MESON_DEFAULT_LIBRARY shared) else() set(MESON_DEFAULT_LIBRARY static) endif() set(MESON_CMAKE_BUILD_TYPE "${cmake_build_type_${buildtype}}") z_vcpkg_meson_setup_variables(${buildtype}) configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/meson.template.in" "${meson_input_file_${buildtype}}" @ONLY) set("${arg_OUTPUT}" ${arg_OPTIONS} PARENT_SCOPE) endfunction() function(vcpkg_configure_meson) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "NO_PKG_CONFIG" "SOURCE_PATH" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;LANGUAGES;ADDITIONAL_BINARIES;ADDITIONAL_NATIVE_BINARIES;ADDITIONAL_CROSS_BINARIES;ADDITIONAL_PROPERTIES" ) if(DEFINED arg_ADDITIONAL_NATIVE_BINARIES OR DEFINED arg_ADDITIONAL_CROSS_BINARIES) message(WARNING "Options ADDITIONAL_(NATIVE|CROSS)_BINARIES have been deprecated. Only use ADDITIONAL_BINARIES!") endif() vcpkg_list(APPEND arg_ADDITIONAL_BINARIES ${arg_ADDITIONAL_NATIVE_BINARIES} ${arg_ADDITIONAL_CROSS_BINARIES}) vcpkg_list(REMOVE_DUPLICATES arg_ADDITIONAL_BINARIES) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_find_acquire_program(MESON) get_filename_component(CMAKE_PATH "${CMAKE_COMMAND}" DIRECTORY) vcpkg_add_to_path("${CMAKE_PATH}") # Make CMake invokeable for Meson vcpkg_find_acquire_program(NINJA) if(NOT arg_NO_PKG_CONFIG) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}") set(buildtypes "") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(buildname "DEBUG") set(cmake_build_type_${buildname} "Debug") vcpkg_list(APPEND buildtypes "${buildname}") set(path_suffix_${buildname} "debug/") set(suffix_${buildname} "dbg") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(buildname "RELEASE") set(cmake_build_type_${buildname} "Release") vcpkg_list(APPEND buildtypes "${buildname}") set(path_suffix_${buildname} "") set(suffix_${buildname} "rel") endif() # configure build foreach(buildtype IN LISTS buildtypes) message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}}") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}") vcpkg_generate_meson_cmd_args( OUTPUT cmd_args CONFIG ${buildtype} LANGUAGES ${arg_LANGUAGES} OPTIONS ${arg_OPTIONS} ${arg_OPTIONS_${buildtype}} ADDITIONAL_BINARIES ${arg_ADDITIONAL_BINARIES} ADDITIONAL_PROPERTIES ${arg_ADDITIONAL_PROPERTIES} ) vcpkg_execute_required_process( COMMAND ${MESON} setup ${cmd_args} ${arg_SOURCE_PATH} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}" LOGNAME config-${TARGET_TRIPLET}-${suffix_${buildtype}} SAVE_LOG_FILES meson-logs/meson-log.txt meson-info/intro-dependencies.json meson-logs/install-log.txt ) message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}} done") endforeach() endfunction() ================================================ FILE: ports/vcpkg-tool-meson/vcpkg_install_meson.cmake ================================================ function(vcpkg_install_meson) cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH" "" "") vcpkg_find_acquire_program(NINJA) unset(ENV{DESTDIR}) # installation directory was already specified with '--prefix' option if(VCPKG_TARGET_IS_OSX) vcpkg_backup_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET) set(ENV{SDKROOT} "${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") set(ENV{MACOSX_DEPLOYMENT_TARGET} "${VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET}") endif() foreach(buildtype IN ITEMS "debug" "release") if(DEFINED VCPKG_BUILD_TYPE AND NOT VCPKG_BUILD_TYPE STREQUAL buildtype) continue() endif() if(buildtype STREQUAL "debug") set(short_buildtype "dbg") else() set(short_buildtype "rel") endif() message(STATUS "Package ${TARGET_TRIPLET}-${short_buildtype}") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if(buildtype STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() vcpkg_execute_required_process( COMMAND "${NINJA}" install -v WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_buildtype}" LOGNAME package-${TARGET_TRIPLET}-${short_buildtype} ) if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endforeach() vcpkg_list(SET renamed_libs) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL static AND NOT VCPKG_TARGET_IS_MINGW) # Meson names all static libraries lib.a which basically breaks the world file(GLOB_RECURSE gen_libraries "${CURRENT_PACKAGES_DIR}*/**/lib*.a") foreach(gen_library IN LISTS gen_libraries) get_filename_component(libdir "${gen_library}" DIRECTORY) get_filename_component(libname "${gen_library}" NAME) string(REGEX REPLACE ".a$" ".lib" fixed_librawname "${libname}") string(REGEX REPLACE "^lib" "" fixed_librawname "${fixed_librawname}") file(RENAME "${gen_library}" "${libdir}/${fixed_librawname}") # For cmake fixes. string(REGEX REPLACE ".a$" "" origin_librawname "${libname}") string(REGEX REPLACE ".lib$" "" fixed_librawname "${fixed_librawname}") vcpkg_list(APPEND renamed_libs ${fixed_librawname}) set(${librawname}_old ${origin_librawname}) set(${librawname}_new ${fixed_librawname}) endforeach() file(GLOB_RECURSE cmake_files "${CURRENT_PACKAGES_DIR}*/*.cmake") foreach(cmake_file IN LISTS cmake_files) foreach(current_lib IN LISTS renamed_libs) vcpkg_replace_string("${cmake_file}" "${${current_lib}_old}" "${${current_lib}_new}" IGNORE_UNCHANGED) endforeach() endforeach() endif() if(VCPKG_TARGET_IS_OSX) vcpkg_restore_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET) endif() endfunction() ================================================ FILE: ports/vcpkg-tool-mozbuild/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(PROGNAME mozbuild) set(EXE_NAME mozmake) set(ARCHIVE MozillaBuildSetup-${VERSION}) set(BASE_URL "https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-") set(URL "${BASE_URL}${VERSION}.exe") set(HASH 247a8c08e3cf9ff69bee106e6c24ea392bb13e6ed19c2c42750d013989ad18923a05631fe4edf622e82321e7748936ff0cdb09607bfbbde00cdb8a6fd4f9b79d) if(VCPKG_CROSSCOMPILING) message(FATAL_ERROR "This is a host only port!") endif() vcpkg_download_distfile(ARCHIVE_PATH URLS "${URL}" SHA512 ${HASH} FILENAME "${ARCHIVE}.7z.exe" ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/mozbuild") vcpkg_find_acquire_program(7Z) vcpkg_execute_in_download_mode( COMMAND "${7Z}" x "${ARCHIVE_PATH}" -aoa WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/mozbuild" ) ================================================ FILE: ports/vcpkg-tool-mozbuild/vcpkg.json ================================================ { "name": "vcpkg-tool-mozbuild", "version": "4.0.2", "description": "mozbuild is a Python package providing functionality used by Mozilla’s build system", "homepage": "https://firefox-source-docs.mozilla.org/build/buildsystem/mozbuild/index.html", "supports": "native & x64 & windows" } ================================================ FILE: ports/vcpkg-tool-ninja/portfile.cmake ================================================ set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) vcpkg_download_distfile( LONG_PATH_PATCH URLS "https://patch-diff.githubusercontent.com/raw/ninja-build/ninja/pull/2056.diff?full_index=1" # stable? FILENAME 2056.diff SHA512 3c840b19d51a2c145561e3026aee503eccffcc2d1f28db6d848a504c8e163b699fd09cafcfd326a1a95e08f76ec3b07860e2658386229af2bc2573b615cf2fed ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ninja-build/ninja REF 170c387a7461d476523ae29c115a58f16e4d3430 SHA512 75c0f263ad325d14c99c9a1d85e571832407b481271a2733e78183a478f7ecd22d84451fc8d7ce16ab20d641ce040761d7ab266695d66bbac5b2b9a3a29aa521 HEAD_REF master PATCHES "${LONG_PATH_PATCH}" # Long path support windows use-internal-re2c.patch ) set(VCPKG_BUILD_TYPE release) #we only need release here! vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_copy_tools( TOOL_NAMES ninja DESTINATION "${CURRENT_PACKAGES_DIR}/tools/ninja" AUTO_CLEAN ) file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-port-config.cmake" @ONLY) ================================================ FILE: ports/vcpkg-tool-ninja/use-internal-re2c.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 42094d2..d4eda66 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ endif() # --- optional re2c find_program(RE2C re2c) -if(RE2C) +if(0) # the depfile parser and ninja lexers are generated using re2c. function(re2c IN OUT) add_custom_command(DEPENDS ${IN} OUTPUT ${OUT} ================================================ FILE: ports/vcpkg-tool-ninja/vcpkg-port-config.cmake ================================================ set(NINJA "${CMAKE_CURRENT_LIST_DIR}/../../tools/ninja/ninja@VCPKG_TARGET_EXECUTABLE_SUFFIX@") ================================================ FILE: ports/vcpkg-tool-ninja/vcpkg.json ================================================ { "name": "vcpkg-tool-ninja", "version-date": "2022-03-31", "port-version": 2, "description": "Ninja is a small build system with a focus on speed.", "homepage": "https://ninja-build.org/", "license": "Apache-2.0", "supports": "native", "dependencies": [ "vcpkg-cmake", "vcpkg-cmake-config" ] } ================================================ FILE: ports/vcpkg-tool-nodejs/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(PROGNAME node) set(BREW_PACKAGE_NAME "${PROGNAME}") set(APT_PACKAGE_NAME "${PROGNAME}") if(VCPKG_CROSSCOMPILING) message(FATAL_ERROR "This is a host only port!") endif() set(BASE_URL "https://nodejs.org/dist/v${VERSION}/") set(ARCHIVE "") set(ARCHIVE_EXT "") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "^x86$|arm") set(ARCHIVE "node-v${VERSION}-win-x86") set(ARCHIVE_EXT ".zip") set(HASH a52f07888452a894008f5ec69d20b2d48a08656a84197e2c94749b909fc66d9b9217ae30b10cfdec36dd11d9fdecb0c64b511570ded6a63dfd794b07a9fb0f52) elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCHIVE "node-v${VERSION}-win-x64") set(ARCHIVE_EXT ".zip") set(HASH e6a5688bfcd869eca6d220ef9cbcfa1f50f93f0a86d25acc96103fe271c3f362a94159c3d54d43b2cc7a4eeef4fdcde2b5da4163d24bd2c4ecaddae2486f4be6) elseif(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCHIVE "node-v${VERSION}-darwin-x64") set(ARCHIVE_EXT ".tar.gz") set(HASH eb22c1e2201bcce63d68c471bba0e74ccf3c55b65b47519711e4da06d03d410f129aa587cf009db1f1253402ea26286e13ed29d231fe6074fcf7414c1f216f13) elseif(VCPKG_TARGET_IS_OSX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ARCHIVE "node-v${VERSION}-darwin-arm64") set(ARCHIVE_EXT ".tar.gz") set(HASH 62585571b993c5643924f13fd90457c116bd839e02c6878e64da66989ee967a965529490afca62abc5866120d8ea089c3dc9d565d1a3f4a986be0c674a10151b) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(ARCHIVE "node-v${VERSION}-linux-x64") set(ARCHIVE_EXT ".tar.xz") set(HASH 06b27edd123a4465d7919b07bb5894a805f29fb757669fa84fe5595dfda7b114c423c99bf62e31400d8c3e7d9f3fde54138416711e05d69afc922a35b013a9b1) elseif(VCPKG_TARGET_IS_LINUX AND VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(ARCHIVE "node-v${VERSION}-linux-arm64") set(ARCHIVE_EXT ".tar.xz") set(HASH 77c8618576c2337ed6b767d8d04871c46b92a4a411fcf5d294145dbceb467a4b0804b3b4e82c637fdc6703f1c86a22ac3e56f69142ef505c2252f88675333c57) else() message(FATAL_ERROR "Target not yet supported by '${PORT}'") endif() set(URL "${BASE_URL}${ARCHIVE}${ARCHIVE_EXT}") message(STATUS "URL: '${URL}'") vcpkg_download_distfile(ARCHIVE_PATH URLS "${URL}" SHA512 "${HASH}" FILENAME "${ARCHIVE}${ARCHIVE_EXT}" #ALWAYS_REDOWNLOAD #SKIP_SHA512 ) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") message(STATUS "ARCHIVE_PATH: '${ARCHIVE_PATH}'") vcpkg_execute_in_download_mode( COMMAND ${CMAKE_COMMAND} -E tar xzf "${ARCHIVE_PATH}" WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools" ) file(RENAME "${CURRENT_PACKAGES_DIR}/tools/${ARCHIVE}" "${CURRENT_PACKAGES_DIR}/tools/node") # Do not break code signatures if(VCPKG_TARGET_IS_OSX) set(VCPKG_FIXUP_MACHO_RPATH OFF) endif() ================================================ FILE: ports/vcpkg-tool-nodejs/vcpkg.json ================================================ { "name": "vcpkg-tool-nodejs", "version-semver": "16.18.0", "port-version": 2, "supports": "native" } ================================================ FILE: ports/vcpkg-tool-python2/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(VCPKG_TARGET_IS_WINDOWS) set(arch_suffix "") set(program_name python) set(program_version 2.7.18) if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(tool_subdirectory "python-${program_version}-x86") set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}.msi") set(download_filename "python-${program_version}.msi") set(download_sha512 2c112733c777ddbf189b0a54047a9d5851ebce0564cc38b9687d79ce6c7a09006109dbad8627fb1a60c3ad55e261db850d9dfa454af0533b460b2afc316fe115) else() set(tool_subdirectory "python-${program_version}-x64") set(arch_suffix ".amd64") set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}.amd64.msi") set(download_filename "python-${program_version}.amd64.msi") set(download_sha512 6a81a413b80fd39893e7444fd47efa455d240cbb77a456c9d12f7cf64962b38c08cfa244cd9c50a65947c40f936c6c8c5782f7236d7b92445ab3dd01e82af23e) endif() set(paths_to_search "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") vcpkg_download_distfile(archive_path URLS ${download_urls} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) set(output_path "${CURRENT_PACKAGES_DIR}/manual-tools") # vcpkg.cmake adds everything in /tools to CMAKE_PROGRAM_PATH. That is not desired for Python2 file(MAKE_DIRECTORY "${output_path}") cmake_path(NATIVE_PATH archive_path archive_path_native) # lessmsi is a bit picky about path formats. message(STATUS "Extracting Python2 ...") vcpkg_execute_in_download_mode( COMMAND "${LESSMSI}" x "${archive_path_native}" # Using output_path here does not work in bash WORKING_DIRECTORY "${output_path}" OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/lessmsi-${TARGET_TRIPLET}-out.log" ERROR_FILE "${CURRENT_BUILDTREES_DIR}/lessmsi-${TARGET_TRIPLET}-err.log" RESULT_VARIABLE error_code ) if(error_code) message(FATAL_ERROR "Couldn't extract Python2 with lessmsi!") endif() message(STATUS "Extracting Python2 ... finished!") file(RENAME "${output_path}/python-2.7.18${arch_suffix}/SourceDir/" "${output_path}/${PORT}/") file(REMOVE_RECURSE "${output_path}/python-2.7.18.amd64" # Files below are not part of a msiexec installation/extraction. "${output_path}/${PORT}/Windows" "${output_path}/${PORT}/Microsoft.VC90.CRT.manifest" "${output_path}/${PORT}/msvcr90.dll") z_vcpkg_find_acquire_program_find_internal("PYTHON2" INTERPRETER "${interpreter}" PATHS ${paths_to_search} NAMES ${program_name} ) if(NOT PYTHON2) message(FATAL_ERROR "Unable to find python2: ${PYTHON2}") endif() message(STATUS "Using python2: ${PYTHON2}") set(details "set(program_version \"${program_version}\")\n") string(APPEND details "set(paths_to_search \"\${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}\")\n") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/details.cmake" "${details}") endif() ================================================ FILE: ports/vcpkg-tool-python2/vcpkg.json ================================================ { "name": "vcpkg-tool-python2", "version": "2.7.18", "port-version": 1, "description": "Python 2", "homepage": "https://www.python.org/download/releases/2.0/", "license": "PSF-2.0", "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "vcpkg-tool-lessmsi", "host": true, "platform": "windows" } ] } ================================================ FILE: ports/vectorclass/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8.0) project(vectorclass VERSION 2.00.01 LANGUAGES CXX) add_library(${PROJECT_NAME} STATIC instrset_detect.cpp) target_include_directories(${PROJECT_NAME} INTERFACE $ $) target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17) include(CMakePackageConfigHelpers) write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" VERSION ${${PROJECT_NAME}_VERSION} COMPATIBILITY SameMajorVersion) install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-config) install( EXPORT ${PROJECT_NAME}-config DESTINATION lib/cmake/${PROJECT_NAME} NAMESPACE ${PROJECT_NAME}::) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" DESTINATION lib/cmake/${PROJECT_NAME}) install(DIRECTORY . DESTINATION include/${PROJECT_NAME} FILES_MATCHING PATTERN *.h) ================================================ FILE: ports/vectorclass/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vectorclass/version2 REF v2.02.00 SHA512 758cf12309ba9d5b1cc22db197d024880f62778de939af80f575dad9a3a2c3f256bc3228ee3dbd41a9da6e88835318f362b8255ff32bc8cadfe12bd2be4c36b5 HEAD_REF master ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) # Put the licence file where vcpkg expects it file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/vectorclass/vcpkg.json ================================================ { "name": "vectorclass", "version-string": "2.02.00", "description": "C++ class library for using the Single Instruction Multiple Data (SIMD) instructions in modern Microprocessors", "homepage": "https://github.com/vectorclass/version2", "license": "Apache-2.0", "supports": "!(arm | arm64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vectorscan/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO VectorCamp/vectorscan REF "vectorscan/${VERSION}" SHA512 b9e750cb53a109ebed6e472cccbd280434c4a8e6a9217acfd30c10cc88381712de2444d31794a1f0bebc0b5ca0def21c031234bc1706f4029d51d2830f0cb5ac HEAD_REF develop PATCHES remove-Werror.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dump DUMP_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_UNIT=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BENCHMARKS=OFF -DBUILD_DOC=OFF # FAT_RUNTIME is not supported on debug build -DFAT_RUNTIME=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/vectorscan/remove-Werror.patch ================================================ diff --git a/cmake/cflags-generic.cmake b/cmake/cflags-generic.cmake index 28a0549..c670c36 100644 --- a/cmake/cflags-generic.cmake +++ b/cmake/cflags-generic.cmake @@ -6,8 +6,8 @@ if (NOT CMAKE_COMPILER_IS_CLANG) endif() # Always use -Werror *also during release builds -set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall -Werror") -set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wall -Werror") +set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall") +set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wall") if (DISABLE_ASSERTS) set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -DNDEBUG") ================================================ FILE: ports/vectorscan/vcpkg.json ================================================ { "name": "vectorscan", "version": "5.4.12", "description": "A portable fork of the high-performance regular expression matching library", "homepage": "https://vectorcamp.gr/project/vectorscan/", "license": "BSD-3-Clause", "supports": "!windows & !(x64 | x86) & !android", "dependencies": [ "boost-array", "boost-chrono", "boost-config", "boost-core", "boost-crc", "boost-detail", "boost-dynamic-bitset", "boost-functional", "boost-graph", "boost-icl", "boost-multi-array", "boost-ptr-container", "boost-random", "boost-regex", "boost-system", "boost-thread", "boost-type-traits", "boost-unordered", "boost-utility", "pcre", "ragel", "simde", { "name": "vcpkg-cmake", "host": true } ], "features": { "dump": { "description": "Dump code support" } } } ================================================ FILE: ports/veigar/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO winsoft666/veigar HEAD_REF master REF "${VERSION}" SHA512 cfe7986d5d17e21ca7aff1f1e20b79136aef7e0da96e713f0077b3ad843a7a812202f0db300616c2ca8b925fb3e054bc76e24fb14ad83761ee34fb9946c33829 ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" VEIGAR_USE_STATIC_CRT) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVEIGAR_USE_STATIC_CRT:BOOL=${VEIGAR_USE_STATIC_CRT} -DVEIGAR_BUILD_TESTS:BOOL=OFF -DVEIGAR_BUILD_EXAMPLES:BOOL=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_pdbs() ================================================ FILE: ports/veigar/vcpkg.json ================================================ { "name": "veigar", "version": "1.4", "maintainers": "winsoft666 ", "description": "Cross platform RPC library using shared memory.", "homepage": "https://github.com/winsoft666/veigar", "license": "GPL-3.0-or-later", "supports": "linux | (windows & !uwp & !xbox)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/velodyne-decoder/0001-fix-msvc-flags.patch ================================================ Backport of https://github.com/valgur/velodyne_decoder/commit/22809df3a4d550c3746b17aaca1d6c20692730c4 --- CMakeLists.txt +++ CMakeLists.txt @@ -17,7 +17,11 @@ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) if(MSVC) - add_compile_options(/W4 /O2) + add_compile_options( + "$<$:/O2>" + "$<$:/O2>" + /W4 + ) else() add_compile_options( "$<$:-ggdb3;-Og>" ================================================ FILE: ports/velodyne-decoder/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO valgur/velodyne_decoder REF "v${VERSION}" SHA512 f09dd173cdea6b651a023d799bed7047ee2ac8518446d57e289a6eed9a92ff1ec2644ec49b78bd29ecfebb2046cb89455910bcb476db852a14e42e106b9881ce HEAD_REF develop PATCHES 0001-fix-msvc-flags.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DINSTALL_THIRD_PARTY=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "velodyne_decoder" CONFIG_PATH lib/cmake/velodyne_decoder ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/velodyne-decoder/usage ================================================ velodyne-decoder provides CMake targets: find_package(velodyne_decoder CONFIG REQUIRED) target_link_libraries(main PRIVATE velodyne_decoder::velodyne_decoder) ================================================ FILE: ports/velodyne-decoder/vcpkg.json ================================================ { "name": "velodyne-decoder", "version": "3.0.0", "port-version": 1, "description": "A decoder library for raw Velodyne data and telemetry info", "homepage": "https://github.com/valgur/velodyne_decoder", "license": "BSD-3-Clause", "dependencies": [ "ms-gsl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "yaml-cpp", "version>=": "0.7.0" } ] } ================================================ FILE: ports/verdict/fix_osx.patch ================================================ diff --git a/V_HexMetric.cpp b/V_HexMetric.cpp index fda4771..74eecb2 100644 --- a/V_HexMetric.cpp +++ b/V_HexMetric.cpp @@ -2974,10 +2974,10 @@ double hex_distortion(int num_nodes, const double coordinates[][3]) double weight[maxTotalNumberGaussPoints]; // create an object of GaussIntegration - GaussIntegration gint{}; - gint.initialize(number_of_gauss_points, num_nodes, number_dimension); - gint.calculate_shape_function_3d_hex(); - gint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], dndy3[0], weight); + GaussIntegration gaussint; + gaussint.initialize(number_of_gauss_points, num_nodes, number_dimension); + gaussint.calculate_shape_function_3d_hex(); + gaussint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], dndy3[0], weight); VerdictVector xxi, xet, xze, xin; @@ -3014,7 +3014,7 @@ double hex_distortion(int num_nodes, const double coordinates[][3]) double dndy2_at_node[maxNumberNodes][maxNumberNodes]; double dndy3_at_node[maxNumberNodes][maxNumberNodes]; - gint.calculate_derivative_at_nodes_3d(dndy1_at_node, dndy2_at_node, dndy3_at_node); + gaussint.calculate_derivative_at_nodes_3d(dndy1_at_node, dndy2_at_node, dndy3_at_node); int node_id; for (node_id = 0; node_id < num_nodes; node_id++) { diff --git a/V_QuadMetric.cpp b/V_QuadMetric.cpp index 2486146..68af002 100644 --- a/V_QuadMetric.cpp +++ b/V_QuadMetric.cpp @@ -1409,10 +1409,10 @@ double quad_distortion(int num_nodes, const double coordinates[][3]) double weight[maxTotalNumberGaussPoints]; // create an object of GaussIntegration - GaussIntegration gint{}; - gint.initialize(number_of_gauss_points, num_nodes); - gint.calculate_shape_function_2d_quad(); - gint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], weight); + GaussIntegration gaussint; + gaussint.initialize(number_of_gauss_points, num_nodes); + gaussint.calculate_shape_function_2d_quad(); + gaussint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], weight); // calculate element area int ife, ja; @@ -1435,7 +1435,7 @@ double quad_distortion(int num_nodes, const double coordinates[][3]) double dndy1_at_node[maxNumberNodes][maxNumberNodes]; double dndy2_at_node[maxNumberNodes][maxNumberNodes]; - gint.calculate_derivative_at_nodes(dndy1_at_node, dndy2_at_node); + gaussint.calculate_derivative_at_nodes(dndy1_at_node, dndy2_at_node); VerdictVector normal_at_nodes[9]; diff --git a/V_TetMetric.cpp b/V_TetMetric.cpp index db3b7c3..b227006 100644 --- a/V_TetMetric.cpp +++ b/V_TetMetric.cpp @@ -1360,10 +1360,10 @@ double tet_distortion(int num_nodes, const double coordinates[][3]) double weight[maxTotalNumberGaussPoints]; // create an object of GaussIntegration for tet - GaussIntegration gint{}; - gint.initialize(number_of_gauss_points, num_nodes, number_dims, is_tri); - gint.calculate_shape_function_3d_tet(); - gint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], dndy3[0], weight); + GaussIntegration gaussint; + gaussint.initialize(number_of_gauss_points, num_nodes, number_dims, is_tri); + gaussint.calculate_shape_function_3d_tet(); + gaussint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], dndy3[0], weight); // vector xxi is the derivative vector of coordinates w.r.t local xi coordinate in the // computation space @@ -1408,7 +1408,7 @@ double tet_distortion(int num_nodes, const double coordinates[][3]) double dndy2_at_node[maxNumberNodes][maxNumberNodes]; double dndy3_at_node[maxNumberNodes][maxNumberNodes]; - gint.calculate_derivative_at_nodes_3d_tet(dndy1_at_node, dndy2_at_node, dndy3_at_node); + gaussint.calculate_derivative_at_nodes_3d_tet(dndy1_at_node, dndy2_at_node, dndy3_at_node); int node_id; for (node_id = 0; node_id < num_nodes; node_id++) { diff --git a/V_TriMetric.cpp b/V_TriMetric.cpp index 3a2a16a..a2caba5 100644 --- a/V_TriMetric.cpp +++ b/V_TriMetric.cpp @@ -778,10 +778,10 @@ double tri_distortion(int num_nodes, const double coordinates[][3]) // create an object of GaussIntegration int number_dims = 2; int is_tri = 1; - GaussIntegration gint{}; - gint.initialize(number_of_gauss_points, num_nodes, number_dims, is_tri); - gint.calculate_shape_function_2d_tri(); - gint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], weight); + GaussIntegration gaussint; + gaussint.initialize(number_of_gauss_points, num_nodes, number_dims, is_tri); + gaussint.calculate_shape_function_2d_tri(); + gaussint.get_shape_func(shape_function[0], dndy1[0], dndy2[0], weight); // calculate element area int ife, ja; @@ -805,7 +805,7 @@ double tri_distortion(int num_nodes, const double coordinates[][3]) double dndy1_at_node[maxNumberNodes][maxNumberNodes]; double dndy2_at_node[maxNumberNodes][maxNumberNodes]; - gint.calculate_derivative_at_nodes_2d_tri(dndy1_at_node, dndy2_at_node); + gaussint.calculate_derivative_at_nodes_2d_tri(dndy1_at_node, dndy2_at_node); VerdictVector normal_at_nodes[7]; ================================================ FILE: ports/verdict/include.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 73c4de3..2cdd102 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,7 @@ configure_file( add_library(verdict ${verdict_SOURCES} ${verdict_HEADERS} ${CMAKE_CURRENT_BINARY_DIR}/verdict_config.h) target_include_directories(verdict PUBLIC - $ $) + $ $ $) if(UNIX) target_link_libraries(verdict PRIVATE m) endif() ================================================ FILE: ports/verdict/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sandialabs/verdict REF ${VERSION} SHA512 e4a38fabcb7b56cbc50b59ee2d97c8a4cc3a2afea6ec22860005b77b79536a8dae16acef48197ae881f5b6dbd20495c16ba5b3eadd57d7d478482e5734a98b1d HEAD_REF master PATCHES include.patch fix_osx.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVERDICT_ENABLE_TESTING=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/verdict" PACKAGE_NAME verdict) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME "copyright") ================================================ FILE: ports/verdict/vcpkg.json ================================================ { "name": "verdict", "version": "1.4.2", "description": "Compute quality functions of 2 and 3-dimensional regions.", "homepage": "https://github.com/sandialabs/verdict", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/via-httplib/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kenba/via-httplib REF ${VERSION} SHA512 3a36d251b6dfe9ad40d798761169a70877c6d12a94ea2799670d701a4449e2fe15558bc9f50fa46e17e3f2a53b91eb233254efd5000eeece07890e1a804f301d HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ViaHttpLib CONFIG_PATH lib/cmake/ViaHttpLib) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/ViaHttpLib/ViaHttpLibConfig.cmake" "find_dependency(Boost 1.51)" [[find_dependency(Boost COMPONENTS system)]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/via-httplib/vcpkg.json ================================================ { "name": "via-httplib", "version": "1.9.0", "description": "C++ HTTP Library", "homepage": "https://github.com/kenba/via-httplib", "license": "GPL-2.0-or-later", "dependencies": [ "boost-asio", "json-spirit", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vili/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "ViliOrg/Vili" REF "6e97dde7ef7cfe95ef715640524210b6477ecfa1" SHA512 "a3c198df442a870f4075136d7eeb4f5241728cdd737ee002f7040e8f3c74e7216a0ebe0aab95ce4dc6e56ba84d3f43f4af2b9ec1116efb13d2b6f3977fcb1f33" HEAD_REF "master" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DBUILD_TESTS=OFF" ) vcpkg_cmake_install() vcpkg_install_copyright( FILE_LIST "${SOURCE_PATH}/LICENSE" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vili/usage ================================================ The package vili provides CMake targets: find_package("vili" CONFIG REQUIRED) target_link_libraries("main" PRIVATE "vili::vili") ================================================ FILE: ports/vili/vcpkg.json ================================================ { "name": "vili", "version": "1.0.0+20221123", "port-version": 1, "maintainers": "Sygmei", "description": "A nice and readable data format !", "homepage": "https://github.com/ViliOrg/Vili", "license": "MIT", "dependencies": [ "fmt", "nlohmann-fifo-map", "pegtl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vincentlaucsb-csv-parser/001-fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index f0b137a..3ff9de7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.10) project(csv) +include(GNUInstallDirs) + +find_package(mio CONFIG REQUIRED) +find_package(string-view-lite CONFIG REQUIRED) if(CSV_CXX_STANDARD) set(CMAKE_CXX_STANDARD ${CSV_CXX_STANDARD}) @@ -46,10 +50,7 @@ set(CSV_TEST_DIR ${CMAKE_CURRENT_LIST_DIR}/tests) include_directories(${CSV_INCLUDE_DIR}) -## Load developer specific CMake settings -if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - SET(CSV_DEVELOPER TRUE) -endif() +SET(CSV_DEVELOPER OFF) ## Main Library add_subdirectory(${CSV_SOURCE_DIR}) @@ -66,6 +67,23 @@ if (CSV_BUILD_PROGRAMS) add_subdirectory("programs") endif() +install(TARGETS csv EXPORT unofficial-vincentlaucsb-csv-parser) + +install( + EXPORT unofficial-vincentlaucsb-csv-parser + FILE unofficial-vincentlaucsb-csv-parser-config.cmake + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-vincentlaucsb-csv-parser" + NAMESPACE unofficial::vincentlaucsb-csv-parser:: +) + +install( + DIRECTORY "${CMAKE_SOURCE_DIR}/include/" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vincentlaucsb-csv-parser" + PATTERN "*.cpp" EXCLUDE + PATTERN "CMakeLists.txt" EXCLUDE + PATTERN "external" EXCLUDE +) + ## Developer settings if (CSV_DEVELOPER) # Allow for performance profiling diff --git a/include/internal/CMakeLists.txt b/include/internal/CMakeLists.txt index 7da751c..9c80176 100644 --- a/include/internal/CMakeLists.txt +++ b/include/internal/CMakeLists.txt @@ -26,6 +26,8 @@ target_sources(csv thread_safe_deque.hpp ) -set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX) -target_link_libraries(csv PRIVATE Threads::Threads) -target_include_directories(csv INTERFACE ../) +set_target_properties(csv PROPERTIES LINKER_LANGUAGE CXX OUTPUT_NAME "vincentlaucsb-csv-parser-csv") +target_include_directories(csv + INTERFACE $ +) +target_link_libraries(csv PRIVATE Threads::Threads PUBLIC mio::mio mio::mio-headers nonstd::string-view-lite) ================================================ FILE: ports/vincentlaucsb-csv-parser/002-fix-include.patch ================================================ diff --git a/include/internal/basic_csv_parser.hpp b/include/internal/basic_csv_parser.hpp index 16c8666..7b4221e 100644 --- a/include/internal/basic_csv_parser.hpp +++ b/include/internal/basic_csv_parser.hpp @@ -12,7 +12,7 @@ #include #include -#include "../external/mio.hpp" +#include "mio/mmap.hpp" #include "col_names.hpp" #include "common.hpp" #include "csv_format.hpp" diff --git a/include/internal/common.hpp b/include/internal/common.hpp index 7f8d737..f0ead1a 100644 --- a/include/internal/common.hpp +++ b/include/internal/common.hpp @@ -92,7 +92,7 @@ namespace csv { */ using string_view = std::string_view; #else -#include "../external/string_view.hpp" +#include "nonstd/string_view.hpp" /** @typedef string_view * The string_view class used by this library. */ diff --git a/include/internal/csv_reader.hpp b/include/internal/csv_reader.hpp index 02e9164..2e93f12 100644 --- a/include/internal/csv_reader.hpp +++ b/include/internal/csv_reader.hpp @@ -16,7 +16,7 @@ #include #include -#include "../external/mio.hpp" +#include "mio/mmap.hpp" #include "basic_csv_parser.hpp" #include "common.hpp" #include "data_type.hpp" ================================================ FILE: ports/vincentlaucsb-csv-parser/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vincentlaucsb/csv-parser REF "${VERSION}" SHA512 908dd610ae3362aac1b3947892583f5aeea55a71b9d66798e4353a17fcb74ccd79de7513d94508a07876685318e2b6ba974af2aed39ea6fda09b306a353fb5a9 HEAD_REF master PATCHES 001-fix-cmake.patch 002-fix-include.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PYTHON=OFF -DCSV_BUILD_PROGRAMS=OFF -DENABLE_CODE_COVERAGE=OFF MAYBE_UNUSED_VARIABLES BUILD_PYTHON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-vincentlaucsb-csv-parser) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(READ "${CURRENT_PACKAGES_DIR}/share/unofficial-vincentlaucsb-csv-parser/unofficial-vincentlaucsb-csv-parser-config.cmake" cmake_config) file(WRITE "${CURRENT_PACKAGES_DIR}/share/unofficial-vincentlaucsb-csv-parser/unofficial-vincentlaucsb-csv-parser-config.cmake" "include(CMakeFindDependencyMacro) find_dependency(Threads) find_dependency(mio CONFIG) find_dependency(string-view-lite CONFIG) ${cmake_config} ") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vincentlaucsb-csv-parser/usage ================================================ csv-parser provides CMake targets: find_package(unofficial-vincentlaucsb-csv-parser CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::vincentlaucsb-csv-parser::csv) ================================================ FILE: ports/vincentlaucsb-csv-parser/vcpkg.json ================================================ { "name": "vincentlaucsb-csv-parser", "version": "2.5.1", "description": "A modern C++ library for reading, writing, and analyzing CSV (and similar) files.", "homepage": "https://github.com/vincentlaucsb/csv-parser", "license": "MIT", "supports": "!uwp", "dependencies": [ "mio", "string-view-lite", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/visit-struct/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.11) project(visit_struct) add_library(visit_struct INTERFACE) install(TARGETS visit_struct EXPORT unofficial-visit_struct-targets INCLUDES DESTINATION include) install(EXPORT unofficial-visit_struct-targets FILE unofficial-visit_struct-config.cmake NAMESPACE unofficial::visit_struct:: DESTINATION share/unofficial-visit_struct) install(DIRECTORY include/visit_struct DESTINATION include) ================================================ FILE: ports/visit-struct/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cbeck88/visit_struct REF "v${VERSION}" SHA512 8d1f93344ef13320bc7967cbe2696bf49d6773fe3c89ba10bcf8ee9c33be165f14086828f6195bad742fbe75fee9c0995827c455c777950df583ff8f13c21338 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-visit_struct) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(INSTALL "${SOURCE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/visit-struct/vcpkg.json ================================================ { "name": "visit-struct", "version": "1.1.0", "description": "A header-only library providing structure visitors for C++11 and C++14", "license": "BSL-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vit-vit-ctpl/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vit-vit/ctpl REF "ctpl_v.${VERSION}" SHA512 5ab83a342e70559687c15f9ab8e7ca47d609713d64bf4248f05b9f311fddb44502ccd54d8352193c00ae570ebde3ea1149389ecdd0207ef46325eb8b648fb0e3 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES lockfree WITH_LOCKFREE ) if(WITH_LOCKFREE) file(INSTALL "${SOURCE_PATH}/ctpl.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") endif() file(INSTALL "${SOURCE_PATH}/ctpl_stl.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/vit-vit-ctpl/vcpkg.json ================================================ { "name": "vit-vit-ctpl", "version": "0.0.2", "description": "Modern and efficient C++ Thread Pool Library", "homepage": "https://github.com/vit-vit/ctpl", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "lockfree": { "description": "Depends on Boost Lockfree Queue library", "dependencies": [ "boost-lockfree" ] } } } ================================================ FILE: ports/vk-bootstrap/fix-targets.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 612c511..3bf918a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,7 +144,7 @@ if (VK_BOOTSTRAP_INSTALL) message(FATAL_ERROR "Unable to locate required dependency Vulkan::Headers!") endif() endif() - include(@PACKAGE_VK_BOOTSTRAP_EXPORT_TARGETS@) + include("${CMAKE_CURRENT_LIST_DIR}/vk-bootstrap-targets.cmake") ]=]) configure_package_config_file( ================================================ FILE: ports/vk-bootstrap/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO charles-lunarg/vk-bootstrap REF "v${VERSION}" SHA512 f240b744f00a18b44198d928dad93cc5b177825d87f459b3f9f1e166f7c3267ba345b1b1cb5a42e22f5f1cd8bae524a5f3a243b640645bed4cb20eda574d426c HEAD_REF master PATCHES fix-targets.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVK_BOOTSTRAP_TEST=OFF -DVK_BOOTSTRAP_INSTALL=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/vk-bootstrap/vcpkg.json ================================================ { "name": "vk-bootstrap", "version": "1.4.341", "description": "Vulkan bootstraping library", "homepage": "https://github.com/charles-lunarg/vk-bootstrap", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ] } ================================================ FILE: ports/vkfft/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO DTolm/VkFFT REF e1c58868a9581725dd595975daf780da0a37dad1 #v1.2.31 SHA512 b113f0117336ef2f6a285166cb4d68ea372e0dbb46025b7fcbae30f4f5147ad0fb1f7abfd91e1a73e2b4d72446c16ac0e90efc467785e035f176e81d95979706 HEAD_REF master ) file(COPY "${SOURCE_PATH}/vkFFT/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/VkFFT") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/vkfft/vcpkg.json ================================================ { "name": "vkfft", "version": "1.2.31", "description": "Vulkan/CUDA/HIP/OpenCL/Level Zero Fast Fourier Transform library", "homepage": "https://github.com/DTolm/VkFFT", "license": "MIT" } ================================================ FILE: ports/vladimirshaleev-ipaddress/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vladimirshaleev/ipaddress REF "v${VERSION}" SHA512 5f6bff9ae836b7a4f7689fff05b9443c034a32fddc455c99e8e911a07a7e26078eb424e57df82a46da6af51bd62169e7e174dde6c6bfb7064e3369e81ad1365f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DIPADDRESS_BUILD_DOC=OFF -DIPADDRESS_BUILD_TESTS=OFF -DIPADDRESS_BUILD_BENCHMARK=OFF -DIPADDRESS_BUILD_PACKAGES=OFF -DIPADDRESS_ENABLE_CLANG_TIDY=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME ipaddress CONFIG_PATH share/cmake/ipaddress) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vladimirshaleev-ipaddress/usage ================================================ vladimirshaleev-ipaddress is header-only and can be used from CMake via: find_package(ipaddress CONFIG REQUIRED) target_link_libraries(main PRIVATE ipaddress::ipaddress) ================================================ FILE: ports/vladimirshaleev-ipaddress/vcpkg.json ================================================ { "name": "vladimirshaleev-ipaddress", "version": "1.2.1", "description": "A library for working and manipulating IPv4/IPv6 addresses and networks in modern C++.", "homepage": "https://github.com/VladimirShaleev/ipaddress", "documentation": "https://vladimirshaleev.github.io/ipaddress/", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vlfeat/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(vlfeat LANGUAGES C) if(NOT DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release") endif() if(MSVC) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D__LITTLE_ENDIAN__) add_compile_options(/Zp8) add_compile_options(/wd4146) if(CMAKE_C_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") endif() endif() if(CMAKE_COMPILER_IS_GNUCC) add_compile_options(-Wno-unused-function) add_compile_options(-Wno-long-long) add_compile_options(-Wno-variadic-macros) endif() if(USE_SSE) add_definitions(-D__SSE2__) set(SSE2_VL_C_FILES "vl/mathop_sse2.c" "vl/imopv_sse2.c") set(SSE2_VL_H_FILES "vl/mathop_sse2.h" "vl/imopv_sse2.h") else() add_definitions(-DVL_DISABLE_SSE2) endif() if(USE_AVX) set(AVX_VL_C_FILES "vl/mathop_avx.c") set(AVX_VL_H_FILES "vl/mathop_avx.h") else() add_definitions(-DVL_DISABLE_AVX) endif() set (C_SOURCES vl/aib.c vl/array.c vl/covdet.c vl/dsift.c vl/fisher.c vl/generic.c vl/getopt_long.c vl/gmm.c vl/hikmeans.c vl/hog.c vl/homkermap.c vl/host.c vl/ikmeans.c vl/imopv.c vl/kdtree.c vl/kmeans.c vl/lbp.c vl/liop.c vl/mathop.c ${AVX_VL_C_FILES} ${SSE2_VL_C_FILES} vl/mser.c vl/pgm.c vl/quickshift.c vl/random.c vl/rodrigues.c vl/scalespace.c vl/sift.c vl/slic.c vl/stringop.c vl/svm.c vl/svmdataset.c vl/vlad.c ) set (H_SOURCES vl/aib.h vl/array.h vl/covdet.h vl/dsift.h vl/fisher.h vl/generic.h vl/getopt_long.h vl/gmm.h vl/heap-def.h vl/hikmeans.h vl/hog.h vl/homkermap.h vl/host.h vl/ikmeans.h vl/imopv.h vl/kdtree.h vl/kmeans.h vl/lbp.h vl/liop.h vl/mathop.h ${AVX_VL_H_FILES} ${SSE2_VL_H_FILES} vl/mser.h vl/pgm.h vl/qsort-def.h vl/quickshift.h vl/random.h vl/rodrigues.h vl/scalespace.h vl/shuffle-def.h vl/sift.h vl/slic.h vl/stringop.h vl/svm.h vl/svmdataset.h vl/vlad.h ) include(GNUInstallDirs) add_library(vl ${C_SOURCES} ${H_SOURCES}) set_property(TARGET vl PROPERTY POSITION_INDEPENDENT_CODE ON) target_compile_definitions(vl PRIVATE -DVL_BUILD_DLL) target_include_directories(vl PUBLIC $) target_compile_features(vl PRIVATE c_std_99) if(ENABLE_OPENMP) find_package(OpenMP REQUIRED) # PRIVATE because '#pragma omp' is only used in .c files target_link_libraries(vl PRIVATE OpenMP::OpenMP_C) endif() install(TARGETS vl EXPORT vlfeatTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(FILES ${H_SOURCES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/vl") install(EXPORT vlfeatTargets FILE vlfeatConfig.cmake NAMESPACE unofficial::vlfeat:: DESTINATION "share/vlfeat" ) ================================================ FILE: ports/vlfeat/expose_missing_symbols.patch ================================================ diff --git a/vl/generic.c b/vl/generic.c index c6f84a9..8617ed2 100644 --- a/vl/generic.c +++ b/vl/generic.c @@ -1513,13 +1513,13 @@ vl_thread_specific_state_delete (VlThreadState * self) */ #if (defined(VL_OS_LINUX) || defined(VL_OS_MACOSX)) && defined(VL_COMPILER_GNUC) -static void vl_constructor () __attribute__ ((constructor)) ; -static void vl_destructor () __attribute__ ((destructor)) ; +//static void vl_constructor () __attribute__ ((constructor)) ; +//static void vl_destructor () __attribute__ ((destructor)) ; #endif #if defined(VL_OS_WIN) -static void vl_constructor () ; -static void vl_destructor () ; +//static void vl_constructor () ; +//static void vl_destructor () ; BOOL WINAPI DllMain( HINSTANCE hinstDLL, // handle to DLL module @@ -1563,7 +1563,7 @@ BOOL WINAPI DllMain( /* ---------------------------------------------------------------- */ /** @internal @brief Initialize VLFeat state */ -static void +void vl_constructor (void) { VlState * state ; @@ -1637,7 +1637,7 @@ vl_constructor (void) } /** @internal @brief Destruct VLFeat */ -static void +void vl_destructor () { VlState * state ; diff --git a/vl/generic.h b/vl/generic.h index 4ef87f2..30a974e 100644 --- a/vl/generic.h +++ b/vl/generic.h @@ -206,5 +206,7 @@ VL_EXPORT double vl_toc (void) ; VL_EXPORT double vl_get_cpu_time (void) ; /** @} */ +VL_EXPORT void vl_constructor(); +VL_EXPORT void vl_destructor(); /* VL_GENERIC_H */ #endif diff --git a/vl/sift.c b/vl/sift.c index 03963fe..6477a81 100644 --- a/vl/sift.c +++ b/vl/sift.c @@ -1443,7 +1443,7 @@ vl_sift_detect (VlSiftFilt * f) ** @remark The minimum octave size is 2x2xS. **/ -static void +void update_gradient (VlSiftFilt *f) { int s_min = f->s_min ; diff --git a/vl/sift.h b/vl/sift.h index 50e03f4..f9558ad 100644 --- a/vl/sift.h +++ b/vl/sift.h @@ -139,6 +139,11 @@ void vl_sift_keypoint_init (VlSiftFilt const *f, double sigma) ; /** @} */ +VL_EXPORT +void vl_sift_update_gradient(VlSiftFilt* f); + +#define update_gradient vl_sift_update_gradient + /** @name Retrieve data and parameters ** @{ **/ ================================================ FILE: ports/vlfeat/fix-openmp-build.patch ================================================ --- a/vl/kmeans.c +++ b/vl/kmeans.c @@ -669,7 +669,7 @@ VL_XCAT(_vl_kmeans_quantize_, SFX) #ifdef _OPENMP #pragma omp parallel default(none) \ - shared(self, distances, assignments, numData, distFn, data) \ + shared(self, distances, assignments, numData, distFn, data, vl_infinity_d) \ num_threads(vl_get_max_threads()) #endif { ================================================ FILE: ports/vlfeat/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vlfeat/vlfeat REF 1b9075fc42fe54b42f0e937f8b9a230d8e2c7701 SHA512 6d317a1a9496ccac80244553d555fe060b150ccc7ee397a353b64f3a8451f24d1f03d8c00ed04cd9fc2dc066a5c5089b03695c614cb43ffa09be363660278255 PATCHES expose_missing_symbols.patch fix-openmp-build.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openmp ENABLE_OPENMP ) set(USE_SSE ON) set(USE_AVX OFF) # feature is broken, so it's always off anyway if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm") set(USE_SSE OFF) set(USE_AVX OFF) endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DUSE_SSE=${USE_SSE} -DUSE_AVX=${USE_AVX} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/vl/host.h" "__declspec(dllimport)" "__declspec(dllexport)") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/vlfeat/vcpkg.json ================================================ { "name": "vlfeat", "version-date": "2020-07-10", "port-version": 5, "description": "An open library of computer vision algorithms", "homepage": "https://www.vlfeat.org", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openmp": { "description": "Enable OpenMP support" } } } ================================================ FILE: ports/vlpp/fix-install.patch ================================================ diff --git a/Import/CMakeLists.txt b/Import/CMakeLists.txt index 3547dae..23d6c39 100644 --- a/Import/CMakeLists.txt +++ b/Import/CMakeLists.txt @@ -184,7 +184,6 @@ if (GACUI_CORE) if (GACUI_REFLECTION) install(FILES GacUIReflection.h DESTINATION include) - install(FILES GacUIR.UnitTest.UIReflection.h DESTINATION include) install(FILES Skins/DarkSkin/DarkSkinReflection.h DESTINATION include/Skins/DarkSkin) endif() ================================================ FILE: ports/vlpp/fix-tool-build.patch ================================================ diff --git a/Import/CMakeLists.txt b/Import/CMakeLists.txt index c65ab65..2101e86 100644 --- a/Import/CMakeLists.txt +++ b/Import/CMakeLists.txt @@ -10,6 +10,7 @@ cmake_dependent_option(WORKFLOW_COMPILER "Use VlppWorkflowCompiler" ON "WORKFLOW cmake_dependent_option(GACUI_CORE "Use GacUI" ON "GLR_PARSER;WORKFLOW_LIBRARY" OFF) cmake_dependent_option(GACUI_REFLECTION "Use GacUIReflection" ON "GACUI_CORE;WORKFLOW_RUNTIME;REFLECTION" OFF) cmake_dependent_option(GACUI_COMPILER "Use GacUICompiler" ON "GACUI_REFLECTION;WORKFLOW_COMPILER" OFF) +option(BUILD_TOOLS "Build tools" OFF) # core library set(CORE_HDRS @@ -144,6 +145,11 @@ if (GACUI_CORE) list(APPEND EXPORT_TARGETS gacui_core) endif() +if (BUILD_TOOLS) + add_subdirectory(gacgen/Tools/GacGen) + add_subdirectory(workflow/Tools/CppMerge) +endif() + # Install targets install( TARGETS ${EXPORT_TARGETS} ================================================ FILE: ports/vlpp/fix_miss_file.patch ================================================ diff --git a/Import/VlppReflection.h b/Import/VlppReflection.h index 4589f99..85c9c01 100644 --- a/Import/VlppReflection.h +++ b/Import/VlppReflection.h @@ -5,6 +5,7 @@ DEVELOPER: Zihan Chen(vczh) #include "VlppOS.h" #include "Vlpp.h" #include "VlppRegex.h" +#include /*********************************************************************** .\DESCRIPTABLEOBJECT.H diff --git a/Tools/GacGen/CMakeLists.txt b/Tools/GacGen/CMakeLists.txt index f809893..5354e75 100644 --- a/Tools/GacGen/CMakeLists.txt +++ b/Tools/GacGen/CMakeLists.txt @@ -25,7 +25,6 @@ set(SRCS ../../Release/GacUIReflection.cpp GacGen/GacGen.cpp GacGen/Main.cpp - GacGen/NativeController.cpp ) if (WIN32) ================================================ FILE: ports/vlpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vczh-libraries/Release REF "${VERSION}" SHA512 327f62a03e45f90cdf84a973b097b0e7643848fe771919044c1b83635e74b26439fe96fb413d100b33ce030a013a0cb84b34597ca69de2478a4c773ba9b2ccf2 HEAD_REF master PATCHES fix-tool-build.patch fix-install.patch ) vcpkg_from_github( OUT_SOURCE_PATH LICENSE_PATH REPO vczh-libraries/License REF 2173abd38478ba78f7a8f1a062475d04c014eb7a SHA512 fb8df2380640c3ca14fce1320cdfb47b002eabbe42fa2d1a5356b3c641138d61b8f79f9d4894573d759876d1ab18f822d7fac4e4bce5c14f449acda29aac5e9c HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES reflection REFLECTION glrparser GLR_PARSER workflowlibrary WORKFLOW_LIBRARY workflowruntime WORKFLOW_RUNTIME workflowcompiler WORKFLOW_COMPILER gacuicore GACUI_CORE gacuirecompiler GACUI_COMPILER gacuireflection GACUI_REFLECTION tools BUILD_TOOLS ) if (BUILD_TOOLS) vcpkg_from_github( OUT_SOURCE_PATH GACGEN_SOURCE_PATH REPO vczh-libraries/GacUI REF 6547518c5bd775d336e53c583b39095a88e9723c SHA512 114957408012ed1a03381f9caf6aafb463e8d94a4978b66f694698b5ff1bb86bcaa01c28c0aa75203e15d04126ed003b1fa370cc54f62ae87309c4bb798ede77 HEAD_REF master PATCHES fix_miss_file.patch ) vcpkg_from_github( OUT_SOURCE_PATH CPPMERGE_SOURCE_PATH REPO vczh-libraries/Workflow REF 3b1984b0d9e9602757774d259d11bdb43e5e30c4 SHA512 dcb41d4658d65510d6ffc6015f79eb9d08cf6a7f52fc24b8832bfdc1706ea7d3dcef34bb46b4664b09579b4787bf01406b68a33193c8952a6e13018793ef05e8 HEAD_REF master ) if (NOT EXISTS "${SOURCE_PATH}/Import/gacgen") file(RENAME "${GACGEN_SOURCE_PATH}" "${SOURCE_PATH}/Import/gacgen") endif() if (NOT EXISTS "${SOURCE_PATH}/Import/workflow") file(RENAME "${CPPMERGE_SOURCE_PATH}" "${SOURCE_PATH}/Import/workflow") endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Import" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if (BUILD_TOOLS) file(GLOB TOOL_GACGEN "${CURRENT_PACKAGES_DIR}/bin/GacGen*${VCPKG_TARGET_EXECUTABLE_SUFFIX}") get_filename_component(TOOL_GACGEN "${TOOL_GACGEN}" NAME_WLE) vcpkg_copy_tools(TOOL_NAMES ${TOOL_GACGEN} CppMerge AUTO_CLEAN) # Handle scripts if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) set(TOOL_SCRIPT_SUFFIX ".ps1") else() set(TOOL_SCRIPT_SUFFIX ".bin") endif() file(GLOB TOOL_SCRIPTS "${SOURCE_PATH}/Tools/*${TOOL_SCRIPT_SUFFIX}") foreach (TOOL_SCRIPT IN LISTS TOOL_SCRIPTS) file(COPY "${TOOL_SCRIPT}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endforeach() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Handle copyright file(INSTALL "${LICENSE_PATH}/README.md" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/vlpp/vcpkg.json ================================================ { "name": "vlpp", "version": "1.2.10.2", "maintainers": "vczh", "description": "Common C++ construction, including string operation / generic container / linq / General-LR parser generator / multithreading / reflection for C++ / etc", "homepage": "https://github.com/vczh-libraries/Release", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "gacuicore": { "description": "Enable GacUI Core", "dependencies": [ { "name": "vlpp", "features": [ "glrparser", "workflowlibrary" ] } ] }, "gacuirecompiler": { "description": "Enable GacUI Compiler", "dependencies": [ { "name": "vlpp", "features": [ "gacuireflection", "workflowcompiler" ] } ] }, "gacuireflection": { "description": "Enable GacUI Reflection", "dependencies": [ { "name": "vlpp", "features": [ "gacuicore", "workflowruntime" ] } ] }, "glrparser": { "description": "Enable GlrParser", "dependencies": [ { "name": "vlpp", "features": [ "reflection" ] } ] }, "reflection": { "description": "Enable Reflection" }, "tools": { "description": "Build tools", "supports": "!osx" }, "workflowcompiler": { "description": "Enable VlppWorkflow Compiler", "dependencies": [ { "name": "vlpp", "features": [ "workflowruntime" ] } ] }, "workflowlibrary": { "description": "Enable VlppWorkflow Library", "dependencies": [ { "name": "vlpp", "features": [ "reflection" ] } ] }, "workflowruntime": { "description": "Enable VlppWorkflow Runtime", "dependencies": [ { "name": "vlpp", "features": [ "workflowlibrary" ] } ] } } } ================================================ FILE: ports/vmaware-vm-detection/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kernelwernel/VMAware REF v${VERSION} SHA512 ff6bdb4c34a08df59ccedb1714ce2ade7656c3f664ed4e11b2e05f9ed4d94f608a566a93aa16784000ed0fd2cca6f34c624db27f2e3fe2f06cb48df6ec161ac3 HEAD_REF master ) # Header only set(VCPKG_BUILD_TYPE release) file(INSTALL "${SOURCE_PATH}/src/vmaware.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vmaware") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/vmaware-vm-detection/vcpkg.json ================================================ { "name": "vmaware-vm-detection", "version": "2.6.0", "description": "VM detection library", "homepage": "https://github.com/kernelwernel/VMAware", "license": "MIT" } ================================================ FILE: ports/volk/portfile.cmake ================================================ # volk is not prepared to be a DLL. vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeux/volk REF "vulkan-sdk-${VERSION}" SHA512 188fdbadff7dd99d1e04519f26dffc85f4d45e2af69d84a4806ee4bc02322a4099002211f327775ec20380744afe3ca7f41eb62dc7763cd8dc5ba8920fb8ef20 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVOLK_INSTALL=ON -DVULKAN_HEADERS_INSTALL_DIR=${CURRENT_INSTALLED_DIR} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/volk) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/volk/usage ================================================ volk provides CMake targets: find_package(volk CONFIG REQUIRED) target_link_libraries(main PRIVATE volk::volk volk::volk_headers) ================================================ FILE: ports/volk/vcpkg.json ================================================ { "name": "volk", "version": "1.4.341.0", "description": [ "Meta loader for Vulkan API.", "Note that the static library target volk::volk is built without platform-specific defines.", "Use the header-only target volk::volk_headers if you require platform-specific extensions." ], "homepage": "https://github.com/zeux/volk", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ] } ================================================ FILE: ports/voro/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO chr1shr/voro REF "2cb6cefc690be1c653bfb8e65559ee8441c0b21f" SHA512 a22dcdb26ef85a9c75757182f07c0c391b9904a1b46b03e8be27a16e475a24ec9fd736a3964fa6022dc5dd545691f498c69f284a260a5724a1715fd347006efb HEAD_REF dev ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" VORO_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVORO_BUILD_SHARED_LIBS=${VORO_BUILD_SHARED_LIBS} -DVORO_BUILD_EXAMPLES=OFF -DVORO_BUILD_CMD_LINE=OFF -DVORO_ENABLE_DOXYGEN=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/VORO") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/voro/vcpkg.json ================================================ { "name": "voro", "version-date": "2024-09-11", "description": "Voro++: a three-dimensional Voronoi cell library in C++.", "homepage": "https://math.lbl.gov/voro++/", "license": "BSD-3-Clause-LBNL", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vowpal-wabbit/fix-android-build.patch ================================================ diff --git a/utl/flatbuffer/txt_to_flat.cc b/utl/flatbuffer/txt_to_flat.cc index 180303b87..8543448c4 100644 --- a/utl/flatbuffer/txt_to_flat.cc +++ b/utl/flatbuffer/txt_to_flat.cc @@ -18,7 +18,6 @@ #include "vw/core/parse_regressor.h" #include "vw_to_flat.h" -#include #include diff --git a/utl/flatbuffer/vw_to_flat.cc b/utl/flatbuffer/vw_to_flat.cc index 32bcd9552..dd27c1dd4 100644 --- a/utl/flatbuffer/vw_to_flat.cc +++ b/utl/flatbuffer/vw_to_flat.cc @@ -13,7 +13,6 @@ #include "vw/core/reductions/cb/cb_algs.h" #include "vw/core/shared_data.h" -#include #include #include diff --git a/vowpalwabbit/allreduce/src/allreduce_sockets.cc b/vowpalwabbit/allreduce/src/allreduce_sockets.cc index a61e5608a..b7ecece25 100644 --- a/vowpalwabbit/allreduce/src/allreduce_sockets.cc +++ b/vowpalwabbit/allreduce/src/allreduce_sockets.cc @@ -32,7 +32,6 @@ Alekh Agarwal and John Langford, with help Olivier Chapelle. #include "vw/common/vw_exception.h" #include "vw/io/logger.h" -#include // port is already in network order socket_t VW::all_reduce_sockets::sock_connect(const uint32_t ip, const int port, VW::io::logger& logger) diff --git a/vowpalwabbit/core/src/confidence_sequence.cc b/vowpalwabbit/core/src/confidence_sequence.cc index fc4b35d91..0c2a40c2f 100644 --- a/vowpalwabbit/core/src/confidence_sequence.cc +++ b/vowpalwabbit/core/src/confidence_sequence.cc @@ -204,7 +204,7 @@ double confidence_sequence::approxpolygammaone(double b) const double confidence_sequence::lblogwealth(double sumXt, double v, double eta, double s, double lb_alpha) const { -#if !defined(__APPLE__) && !defined(_WIN32) && !defined(__EMSCRIPTEN__) +#if !defined(__APPLE__) && !defined(_WIN32) && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) double zeta_s = std::riemann_zeta(s); #else double zeta_s = 10.584448464950803; // std::riemann_zeta(s) -- Assuming s=1.1 is constant diff --git a/vowpalwabbit/core/src/parser.cc b/vowpalwabbit/core/src/parser.cc index 9595b5fe0..d49c68757 100644 --- a/vowpalwabbit/core/src/parser.cc +++ b/vowpalwabbit/core/src/parser.cc @@ -53,9 +53,6 @@ int VW_GETPID() { return (int)::GetCurrentProcessId(); } #else # include # define VW_GETPID getpid -#endif - -#if defined(__FreeBSD__) || defined(__APPLE__) # include #endif diff --git a/vowpalwabbit/core/src/reductions/bfgs.cc b/vowpalwabbit/core/src/reductions/bfgs.cc index 2713eb0b5..56e871970 100644 --- a/vowpalwabbit/core/src/reductions/bfgs.cc +++ b/vowpalwabbit/core/src/reductions/bfgs.cc @@ -21,7 +21,6 @@ Implementation by Miro Dudik. #include "vw/core/simple_label.h" #include -#include #include #include ================================================ FILE: ports/vowpal-wabbit/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO VowpalWabbit/vowpal_wabbit REF "${VERSION}" SHA512 03cb3e54a7d47763e0591f94d2d4c53c9b2ce629f758466994180fe19e53680024d3ca41de1ef810e4955a88ccbea75222d4a46a28470086793617e701e4ac6a HEAD_REF master PATCHES fix-android-build.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVW_INSTALL=ON -DRAPIDJSON_SYS_DEP=ON -DFMT_SYS_DEP=ON -DSPDLOG_SYS_DEP=ON -DVW_BOOST_MATH_SYS_DEP=ON -DVW_ZLIB_SYS_DEP=ON -DVW_EIGEN_SYS_DEP=ON -DVW_BUILD_VW_C_WRAPPER=OFF -DVW_BUILD_EXECUTABLES=OFF -DBUILD_TESTING=OFF -DVW_STRING_VIEW_LITE_SYS_DEP=ON -DVW_SSE2NEON_SYS_DEP=ON -DVW_CXX_STANDARD=14 # boost-math require c++14 ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/VowpalWabbit) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/vowpal-wabbit/usage ================================================ vowpalwabbit provides CMake targets: find_package(VowpalWabbit CONFIG REQUIRED) target_link_libraries(main PRIVATE VowpalWabbit::vw_core) ================================================ FILE: ports/vowpal-wabbit/vcpkg.json ================================================ { "name": "vowpal-wabbit", "version": "9.11.1", "description": "Reduction based online learning framework with a focus on contextual bandits and reinforcement learning.", "homepage": "https://github.com/vowpalwabbit/vowpal_wabbit", "license": "BSD-3-Clause", "supports": "!x86 & !uwp & !(windows & arm)", "dependencies": [ "boost-math", "eigen3", "flatbuffers", "fmt", "rapidjson", "spdlog", { "name": "sse2neon", "platform": "arm" }, "string-view-lite", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/vs-yasm/fix_paths.patch ================================================ diff --git a/yasm.props b/yasm.props index 06efe7a..10f6309 100644 --- a/yasm.props +++ b/yasm.props @@ -6,15 +6,15 @@ CustomBuild - $(VCInstallDir) + $(VCInstallDir) 0 0 $(IntDir)%(FileName).obj - "$(YasmPath)"yasm.exe -Xvc -f win32 [AllOptions] [AdditionalOptions] "%(FullPath)" - "$(YasmPath)"yasm.exe -Xvc -f win64 [AllOptions] [AdditionalOptions] "%(FullPath)" + "$(YasmPath)" -Xvc -f win32 [AllOptions] [AdditionalOptions] "%(FullPath)" + "$(YasmPath)" -Xvc -f win64 [AllOptions] [AdditionalOptions] "%(FullPath)" echo YASM not supported on this platform exit 1 %(Identity) ================================================ FILE: ports/vs-yasm/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ShiftMediaProject/VSYASM REF deb50d9f18e8461538468339d508cdf240e64897 #v0.5 SHA512 04627546020d33e5ea91f74b09c5ce3b817dce5f6ae4548c3b4148daa82fbd837c81675ac8730d3ca1cdf91fefa8bb23eec76d1bcd02c03dda1203d0c261178d HEAD_REF master PATCHES fix_paths.patch ) set(_files yasm.props yasm.targets yasm.xml) foreach(_file ${_files}) file(INSTALL "${SOURCE_PATH}/${_file}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endforeach() configure_file("${SOURCE_PATH}/COPYING" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/vs-yasm/vcpkg.json ================================================ { "name": "vs-yasm", "version": "0.5.0", "port-version": 2, "description": "Provides Visual Studio integration for the YASM assembler.", "homepage": "https://github.com/ShiftMediaProject/VSYASM", "supports": "windows & !arm" } ================================================ FILE: ports/vsg/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vsg-dev/VulkanSceneGraph REF "v${VERSION}" SHA512 d74d5cc889fc9faaac54992e482898fedd2f13a0f136b0ec2b2044ab7b5d3e7f6a26a81dc875fd1cd3eb926031ddf3f428008429bcc8d5cb22cd16f4eb21a5a9 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES shader-optimizer VSG_SUPPORTS_ShaderOptimizer windowing VSG_SUPPORTS_Windowing ) if("windowing" IN_LIST FEATURES AND NOT (VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS)) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") endif() # added -DGLSLANG_MIN_VERSION=15 to sync with vcpkg version of glslang vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DGLSLANG_MIN_VERSION= ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vsg") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/vsg/vcpkg.json ================================================ { "name": "vsg", "version": "1.1.13", "port-version": 1, "description": "A modern, cross platform, high performance scene graph library built upon Vulkan.", "homepage": "http://www.vulkanscenegraph.org/", "license": "MIT", "dependencies": [ "glslang", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan", { "name": "xcb", "platform": "!(android | windows | osx)" } ], "features": { "shader-optimizer": { "description": "shader optimizer support", "dependencies": [ { "name": "glslang", "features": [ "opt" ] } ] }, "windowing": { "description": "native windowing support providing a default implementation of vsg::Window::create()", "dependencies": [ { "name": "vulkan-loader", "features": [ "xcb" ], "platform": "!(android | ios | osx | windows)" }, { "name": "xcb", "platform": "!(android | ios | osx | windows)" } ] } } } ================================================ FILE: ports/vsgimgui/devendor.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a1c83a3..bba4c19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,11 +22,14 @@ if (VULKAN_SDK) set(ENV{VULKAN_SDK} ${VULKAN_SDK}) endif() -find_package(vsg 1.1.10) +find_package(vsg CONFIG REQUIRED) +find_package(imgui CONFIG REQUIRED) +find_package(implot CONFIG REQUIRED) vsg_setup_dir_vars() vsg_setup_build_vars() +if(0) if ( (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/imgui/imgui.h) OR (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/implot/implot.h) ) find_package(Git QUIET) @@ -50,6 +53,7 @@ vsg_copy_imgui_headers( ${VSGIMGUI_SOURCE_DIR}/src/implot/implot.h ${VSGIMGUI_SOURCE_DIR}/src/implot/implot_internal.h ) +endif(0) vsg_add_target_clang_format( FILES diff --git a/include/vsgImGui/RenderImGui.h b/include/vsgImGui/RenderImGui.h index 9eddd36..656d0b1 100644 --- a/include/vsgImGui/RenderImGui.h +++ b/include/vsgImGui/RenderImGui.h @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include -#include +#include namespace vsgImGui { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 41d749d..b895225 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,6 +34,9 @@ set(SOURCES implot/implot_items.cpp ) +list(FILTER HEADERS EXCLUDE REGEX "^imgui/|^implot/|/imgui.h\$") +list(FILTER SOURCES EXCLUDE REGEX "^imgui/|^implot/") + OPTION(SHOW_DEMO_WINDOW "Toggle the build of the ImGui::ShowDemoWindow(bool*) and ImPlot::ShadowDemoWindow(bool*)" ON) if (SHOW_DEMO_WINDOW) @@ -73,6 +76,8 @@ target_include_directories(vsgImGui PUBLIC target_link_libraries(vsgImGui PUBLIC vsg::vsg + imgui::imgui + implot::implot PRIVATE ${EXTRA_LIBRARIES} ) diff --git a/src/vsgImGui/RenderImGui.cpp b/src/vsgImGui/RenderImGui.cpp index 31780eb..fd70a6f 100644 --- a/src/vsgImGui/RenderImGui.cpp +++ b/src/vsgImGui/RenderImGui.cpp @@ -22,9 +22,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include -#include +#include -#include "../imgui/backends/imgui_impl_vulkan.h" +#include #include #include diff --git a/src/vsgImGui/SendEventsToImGui.cpp b/src/vsgImGui/SendEventsToImGui.cpp index 11de226..ef784fc 100644 --- a/src/vsgImGui/SendEventsToImGui.cpp +++ b/src/vsgImGui/SendEventsToImGui.cpp @@ -22,7 +22,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include -#include +#include #include #include diff --git a/src/vsgImGuiConfig.cmake.in b/src/vsgImGuiConfig.cmake.in index e2c14f2..e0dcc98 100644 --- a/src/vsgImGuiConfig.cmake.in +++ b/src/vsgImGuiConfig.cmake.in @@ -1,6 +1,8 @@ include(CMakeFindDependencyMacro) find_dependency(Vulkan) -find_dependency(vsg) +find_dependency(vsg CONFIG) +find_dependency(imgui CONFIG) +find_dependency(implot CONFIG) include("${CMAKE_CURRENT_LIST_DIR}/vsgImGuiTargets.cmake") ================================================ FILE: ports/vsgimgui/fix-imgui-1.92.5.patch ================================================ diff --git a/src/vsgImGui/RenderImGui.cpp b/src/vsgImGui/RenderImGui.cpp index e3f1ad3..354fbdb 100644 --- a/src/vsgImGui/RenderImGui.cpp +++ b/src/vsgImGui/RenderImGui.cpp @@ -176,7 +176,7 @@ void RenderImGui::_init( init_info.QueueFamily = _queueFamily; init_info.Queue = *(_queue); // ImGui doesn't use the queue so we shouldn't need to assign it, but it has an IM_ASSERT requiring it during debug build. init_info.PipelineCache = VK_NULL_HANDLE; - init_info.MSAASamples = samples; + init_info.PipelineInfoMain.MSAASamples = samples; // Create Descriptor Pool vsg::DescriptorPoolSizes pool_sizes = { @@ -196,7 +196,7 @@ void RenderImGui::_init( _descriptorPool = vsg::DescriptorPool::create(_device, maxSets, pool_sizes); init_info.DescriptorPool = *_descriptorPool; - init_info.RenderPass = *renderPass; + init_info.PipelineInfoMain.RenderPass = *renderPass; init_info.Allocator = nullptr; init_info.MinImageCount = std::max(minImageCount, 2u); // ImGui's Vulkan backend has an assert that requires MinImageCount to be 2 or more. init_info.ImageCount = imageCount; ================================================ FILE: ports/vsgimgui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vsg-dev/vsgImGui REF "v${VERSION}" SHA512 1d3e673a718769bb6ea6de723a398712220e9a91fa4ca21bce449613e18cd9ccd0030669db8bbf86c468fa26f7a872acfef194989ccc453e7d60959f697fd000 HEAD_REF master PATCHES devendor.patch remove-manual-font-creation.patch fix-imgui-1.92.5.patch ) file(REMOVE "${SOURCE_PATH}/include/vsgImGui/imgui.h") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSHOW_DEMO_WINDOW=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vsgImGui") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/vsgimgui/remove-manual-font-creation.patch ================================================ diff --git a/include/vsgImGui/RenderImGui.h b/include/vsgImGui/RenderImGui.h index 656d0b1..73c661d 100644 --- a/include/vsgImGui/RenderImGui.h +++ b/include/vsgImGui/RenderImGui.h @@ -86,7 +86,6 @@ namespace vsgImGui vsg::ref_ptr renderPass, uint32_t minImageCount, uint32_t imageCount, VkExtent2D imageSize, bool useClearAttachments); - void _uploadFonts(); }; // temporary workaround for Dear ImGui's nonexistent sRGB awareness diff --git a/src/vsgImGui/RenderImGui.cpp b/src/vsgImGui/RenderImGui.cpp index fd70a6f..c8b6e7b 100644 --- a/src/vsgImGui/RenderImGui.cpp +++ b/src/vsgImGui/RenderImGui.cpp @@ -71,7 +71,6 @@ namespace vsgImGui RenderImGui::RenderImGui(const vsg::ref_ptr& window, bool useClearAttachments) { _init(window, useClearAttachments); - _uploadFonts(); } RenderImGui::RenderImGui(vsg::ref_ptr device, uint32_t queueFamily, @@ -80,7 +79,6 @@ RenderImGui::RenderImGui(vsg::ref_ptr device, uint32_t queueFamily, VkExtent2D imageSize, bool useClearAttachments) { _init(device, queueFamily, renderPass, minImageCount, imageCount, imageSize, useClearAttachments); - _uploadFonts(); } RenderImGui::~RenderImGui() @@ -217,11 +215,6 @@ void RenderImGui::_init( } } -void RenderImGui::_uploadFonts() -{ - ImGui_ImplVulkan_CreateFontsTexture(); -} - void RenderImGui::accept(vsg::RecordTraversal& rt) const { auto& commandBuffer = *(rt.getState()->_commandBuffer); ================================================ FILE: ports/vsgimgui/vcpkg.json ================================================ { "name": "vsgimgui", "version": "0.7.0", "port-version": 1, "description": "Library that integrates VulkanSceneGraph with Dear ImGui & ImPlot.", "homepage": "https://github.com/vsg-dev/vsgImGui", "license": "MIT", "dependencies": [ { "name": "imgui", "features": [ "vulkan-binding" ] }, "implot", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vsg" ] } ================================================ FILE: ports/vsgqt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vsg-dev/vsgQt REF v${VERSION} SHA512 0c753d573eeec77bdddab0f3499b7fbabc4c0840246501dd83ef1e3a96effacf9cd9a84d5c1c35b49462520a2840ddd02eeefa92c55b23dc44ce9fc285cbee3b HEAD_REF master ) file(WRITE "${SOURCE_PATH}/examples/CMakeLists.txt" "# skipped by vcpkg\n") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DQT_PACKAGE_NAME=Qt6 ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vsgQt") vcpkg_copy_pdbs() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/vsgqt/vsgQtConfig.cmake" "#generated by cmake, do not change" [[ include(CMakeFindDependencyMacro) find_dependency(vsg) find_dependency(Qt6 COMPONENTS Widgets) ]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/vsgqt/vcpkg.json ================================================ { "name": "vsgqt", "version": "0.4.0", "port-version": 1, "description": "Qt integration with VulkanSceneGraph", "homepage": "https://github.com/vsg-dev/vsgQt/", "license": "MIT", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "widgets" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vsg" ] } ================================================ FILE: ports/vsgxchange/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vsg-dev/vsgXchange REF "v${VERSION}" SHA512 ed58e22492cad33e25e50e9d651b2c820aec0632ccf432a3b99bcdf653e6e645b86d6ac4c1e9a8f9d0fdec6b1baef9ebaf3afd3ebe19059ec822686904684bbe HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES assimp vsgXchange_assimp assimp VCPKG_LOCK_FIND_PACKAGE_assimp curl vsgXchange_curl curl VCPKG_LOCK_FIND_PACKAGE_CURL freetype vsgXchange_freetype freetype VCPKG_LOCK_FIND_PACKAGE_Freetype gdal vsgXchange_GDAL gdal VCPKG_LOCK_FIND_PACKAGE_GDAL openexr vsgXchange_openexr openexr VCPKG_LOCK_FIND_PACKAGE_OpenEXR ktx vsgXchange_ktx ktx VCPKG_LOCK_FIND_PACKAGE_Ktx ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DVCPKG_LOCK_FIND_PACKAGE_Doxygen=OFF -DVCPKG_LOCK_FIND_PACKAGE_osg2vsg=OFF -DVCPKG_LOCK_FIND_PACKAGE_draco=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vsgXchange") vcpkg_copy_tools(TOOL_NAMES vsgconv AUTO_CLEAN) vcpkg_clean_executables_in_bin(FILE_NAMES vsgconvd) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/vsgxchange/vcpkg.json ================================================ { "name": "vsgxchange", "version": "1.1.9", "port-version": 1, "description": "Utility library for converting 3rd party images, models and fonts formats to/from VulkanSceneGraph.", "homepage": "https://github.com/vsg-dev/vsgXchange", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vsg" ], "features": { "assimp": { "description": "Enable support for reading 3D model formats as vsg::Node via Assimp", "dependencies": [ "assimp" ] }, "curl": { "description": "Enable support for reading image and model files from http:// and https://", "dependencies": [ { "name": "curl", "default-features": false } ] }, "freetype": { "description": "Enable support for reading fonts as vsg::Font via Freetype", "dependencies": [ { "name": "freetype", "default-features": false } ] }, "gdal": { "description": "Enable support for reading geospatial data formats as vsg::Data via GDAL", "dependencies": [ { "name": "gdal", "default-features": false } ] }, "ktx": { "description": "Enable support for reading KTX and KTX2 files", "dependencies": [ { "name": "ktx", "features": [ "vulkan" ] } ] }, "openexr": { "description": "Enable support for reading EXR files as vsg::Data", "dependencies": [ "openexr" ] } } } ================================================ FILE: ports/vst3sdk/fix-x86-architecture.patch ================================================ --- a/modules/SMTG_AddSMTGLibrary.cmake +++ b/modules/SMTG_AddSMTGLibrary.cmake @@ -34,7 +34,7 @@ function(smtg_target_set_vst_win_architecture_name target) set(WIN_ARCHITECTURE_NAME "arm64") elseif(${GENERATOR_PLATFORM} MATCHES "arm") set(WIN_ARCHITECTURE_NAME "arm") - elseif(${GENERATOR_PLATFORM} MATCHES "win32") + elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) set(WIN_ARCHITECTURE_NAME "x86") else() set(WIN_ARCHITECTURE_NAME "x86_64") ================================================ FILE: ports/vst3sdk/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO steinbergmedia/vst3sdk REF ${VERSION} SHA512 7dd3483420abd79ee6dcb9db16663fb4e4d448e4243f8b905600ca871593701e66da97badaf3d723aafa1321cf72cbc013066ea8177a9497ab740fd98171efa3 HEAD_REF master ) #Submodules vcpkg_from_github( OUT_SOURCE_PATH BASE_SOURCE_PATH REPO steinbergmedia/vst3_base REF ${VERSION} SHA512 be67019cd63f9f37fd541806f29e5e95899fba29153515048080e7d08aa397061d253d9f3de54d49303c99a36d197fd53fe9b54074e54092332020e4d4c845c8 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/base") file(RENAME "${BASE_SOURCE_PATH}" "${SOURCE_PATH}/base") vcpkg_from_github( OUT_SOURCE_PATH CMAKE_SOURCE_PATH REPO steinbergmedia/vst3_cmake REF ${VERSION} SHA512 b138ac696eb8f4f4ac2b28708972fabec576b7958c5ce74a94068c3a4ec3b2648ca992b4646529eff076efbc7c66bb335d9d883ce245df0e949bad76eafac7ac HEAD_REF master PATCHES fix-x86-architecture.patch ) file(REMOVE_RECURSE "${SOURCE_PATH}/cmake") file(RENAME "${CMAKE_SOURCE_PATH}" "${SOURCE_PATH}/cmake") vcpkg_from_github( OUT_SOURCE_PATH DOC_SOURCE_PATH REPO steinbergmedia/vst3_doc REF ${VERSION} SHA512 d211bd475fa6f3fd1e0b12bfc592ceff6867d1e62bc7e7e816b88f12fa7c3eb7357b08d753eadd53c409135518e944a836b628e2af78ca6271322636e967f21f HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/doc") file(RENAME "${DOC_SOURCE_PATH}" "${SOURCE_PATH}/doc") vcpkg_from_github( OUT_SOURCE_PATH PLUGININTERFACES_SOURCE_PATH REPO steinbergmedia/vst3_pluginterfaces REF ${VERSION} SHA512 199a928e834f9ec50247305bd759a14135c7e4c88767867feae402f37edc38cc148b06e3f5b4d7d18812a1fb885eb09c6619ffc80bb2b5d951b77951b660d476 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/pluginterfaces") file(RENAME "${PLUGININTERFACES_SOURCE_PATH}" "${SOURCE_PATH}/pluginterfaces") vcpkg_from_github( OUT_SOURCE_PATH PUBLIC_SDK_SOURCE_PATH REPO steinbergmedia/vst3_public_sdk REF ${VERSION} SHA512 248b62ab7fa26e81aa306c38aed657c1ca738caac53d3aa9d1c2076997bad2ccb21abce1f77d6adb4fe7f53c6e51e2757ef2ce4a72db1f68d9c286947efd20c0 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/public.sdk") file(RENAME "${PUBLIC_SDK_SOURCE_PATH}" "${SOURCE_PATH}/public.sdk") # Note that the submodules "vst3_tutorials" and "vstgui4" are standalone repos, which have own release cycles. # Therefore these are not part of this port vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "plugin-examples" SMTG_ENABLE_VST3_PLUGIN_EXAMPLES "hosting-examples" SMTG_ENABLE_VST3_HOSTING_EXAMPLES "audiounit-wrapper" SMTG_ENABLE_AUV2_BUILDS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSMTG_ENABLE_VSTGUI_SUPPORT=OFF -DSMTG_CREATE_PLUGIN_LINK=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_build() if (NOT VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/vst3sdk") endif() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/vst3sdk") file(INSTALL "${SOURCE_PATH}/base/source/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vst3sdk/base/source/" FILES_MATCHING PATTERN "*.h") file(INSTALL "${SOURCE_PATH}/pluginterfaces/base/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vst3sdk/pluginterfaces/base/" FILES_MATCHING PATTERN "*.h") file(INSTALL "${SOURCE_PATH}/pluginterfaces/gui/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vst3sdk/pluginterfaces/gui/" FILES_MATCHING PATTERN "*.h") file(INSTALL "${SOURCE_PATH}/pluginterfaces/vst/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vst3sdk/pluginterfaces/vst/" FILES_MATCHING PATTERN "*.h") file(INSTALL "${SOURCE_PATH}/public.sdk/source/vst/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk//source/vst/" FILES_MATCHING PATTERN "*.h") if (NOT VCPKG_TARGET_IS_WINDOWS) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/Release/moduleinfotool" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/Release/validator" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") else() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/moduleinfotool${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/validator${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() if ("plugin-examples" IN_LIST FEATURES) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/VST3" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() if ("hosting-examples" IN_LIST FEATURES) if (VCPKG_TARGET_IS_OSX) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/Release/editorhost.app" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") elseif(VCPKG_TARGET_IS_LINUX) file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/Release/editorhost" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") else() file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/editorhost${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") if (VCPKG_TARGET_IS_OSX AND NOT "audiounit-wrapper" IN_LIST FEATURES) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/aaxwrapper/resource" "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/auv3wrapper/AUv3WrappermacOS" "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/auwrapper/config" ) else() file(REMOVE_RECURSE # Remove macOS AudioUnit wrapper "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/aaxwrapper/" "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/auv3wrapper/" "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/auwrapper/" ) endif() # Remove other empty directories file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/hosting/test" "${CURRENT_PACKAGES_DIR}/include/vst3sdk/public.sdk/source/vst/utility/test" ) ================================================ FILE: ports/vst3sdk/vcpkg.json ================================================ { "name": "vst3sdk", "version-string": "v3.8.0_build_66", "description": "Virtual Studio Technology (VST) is an audio plug-in software interface that facilitates the integration of software synthesizers and effects in digital audio workstations (DAW)", "homepage": "https://steinbergmedia.github.io/vst3_dev_portal/pages/Technical+Documentation/API+Documentation/Index.html", "license": "MIT", "supports": "!android & !uwp & !(arm64 & windows) & !staticcrt", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "audiounit-wrapper": { "description": "Include AudioUnit wrappers for macOS", "supports": "osx" }, "hosting-examples": { "description": "Build examples for VST3 host applications", "supports": "!linux" }, "plugin-examples": { "description": "Build examples for VST3 plugins" } } } ================================================ FILE: ports/vtk/FindExpat.patch ================================================ diff --git a/CMake/FindEXPAT.cmake b/CMake/FindEXPAT.cmake index 45d923764..0ebcd3c83 100644 --- a/CMake/FindEXPAT.cmake +++ b/CMake/FindEXPAT.cmake @@ -73,15 +73,37 @@ if(EXPAT_FOUND) if(NOT TARGET EXPAT::EXPAT) include(vtkDetectLibraryType) - vtk_detect_library_type(expat_library_type - PATH "${EXPAT_LIBRARY}") + if(EXPAT_LIBRARY_RELEASE) + vtk_detect_library_type(expat_library_type + PATH "${EXPAT_LIBRARY_RELEASE}") + elseif(EXPAT_LIBRARY_DEBUG) + vtk_detect_library_type(expat_library_type + PATH "${EXPAT_LIBRARY_RELEASE}") + else() + vtk_detect_library_type(expat_library_type + PATH "${EXPAT_LIBRARY}") + endif() + add_library(EXPAT::EXPAT "${expat_library_type}" IMPORTED) unset(expat_library_type) set_target_properties(EXPAT::EXPAT PROPERTIES - IMPORTED_LINK_INTERFACE_LANGUAGES "C" - IMPORTED_LOCATION "${EXPAT_LIBRARY}" - IMPORTED_IMPLIB "${EXPAT_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${EXPAT_INCLUDE_DIRS}") + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + INTERFACE_INCLUDE_DIRECTORIES "${EXPAT_INCLUDE_DIRS}") + if(EXPAT_LIBRARY_RELEASE) + set_target_properties(EXPAT::EXPAT PROPERTIES + IMPORTED_LOCATION_RELEASE "${EXPAT_LIBRARY_RELEASE}" + IMPORTED_IMPLIB_RELEASE "${EXPAT_LIBRARY_RELEASE}") + endif() + if(EXPAT_LIBRARY_DEBUG) + set_target_properties(EXPAT::EXPAT PROPERTIES + IMPORTED_LOCATION_DEBUG "${EXPAT_LIBRARY_DEBUG}" + IMPORTED_IMPLIB_DEBUG "${EXPAT_LIBRARY_DEBUG}") + endif() + if(EXPAT_LIBRARY_RELEASE OR EXPAT_LIBRARY_DEBUG AND NOT (EXPAT_LIBRARY_RELEASE AND EXPAT_LIBRARY_DEBUG)) + set_target_properties(EXPAT::EXPAT PROPERTIES + IMPORTED_LOCATION "${EXPAT_LIBRARY}" + IMPORTED_IMPLIB "${EXPAT_LIBRARY}") + endif() endif() endif() ================================================ FILE: ports/vtk/FindHDF5.cmake ================================================ find_package(hdf5 CONFIG REQUIRED) if(NOT TARGET hdf5::hdf5 AND (TARGET hdf5::hdf5-static OR TARGET hdf5::hdf5-shared)) add_library(hdf5::hdf5 INTERFACE IMPORTED) if(TARGET hdf5::hdf5-shared) target_link_libraries(hdf5::hdf5 INTERFACE hdf5::hdf5-shared) elseif(TARGET hdf5::hdf5-static) target_link_libraries(hdf5::hdf5 INTERFACE hdf5::hdf5-static) endif() endif() if(NOT TARGET hdf5::hdf5_hl AND (TARGET hdf5::hdf5_hl-static OR TARGET hdf5::hdf5_hl-shared)) add_library(hdf5::hdf5_hl INTERFACE IMPORTED) if(TARGET hdf5::hdf5_hl-shared) target_link_libraries(hdf5::hdf5_hl INTERFACE hdf5::hdf5_hl-shared) elseif(TARGET hdf5::hdf5_hl-static) target_link_libraries(hdf5::hdf5_hl INTERFACE hdf5::hdf5_hl-static) endif() endif() set(HDF5_IS_PARALLEL "${HDF5_ENABLE_PARALLEL}" CACHE BOOL "" FORCE) set(HDF5_FOUND ON CACHE BOOL "" FORCE) set(hdf5_FOUND ON CACHE BOOL "" FORCE) ================================================ FILE: ports/vtk/FindLZ4.patch ================================================ diff --git a/CMake/FindLZ4.cmake b/CMake/FindLZ4.cmake index 8c94e3bcd..ade3f9451 100644 --- a/CMake/FindLZ4.cmake +++ b/CMake/FindLZ4.cmake @@ -1,38 +1,5 @@ -find_path(LZ4_INCLUDE_DIR - NAMES lz4.h - DOC "lz4 include directory") -mark_as_advanced(LZ4_INCLUDE_DIR) -find_library(LZ4_LIBRARY - NAMES lz4 liblz4 - DOC "lz4 library") -mark_as_advanced(LZ4_LIBRARY) - -if (LZ4_INCLUDE_DIR) - file(STRINGS "${LZ4_INCLUDE_DIR}/lz4.h" _lz4_version_lines - REGEX "#define[ \t]+LZ4_VERSION_(MAJOR|MINOR|RELEASE)") - string(REGEX REPLACE ".*LZ4_VERSION_MAJOR *\([0-9]*\).*" "\\1" _lz4_version_major "${_lz4_version_lines}") - string(REGEX REPLACE ".*LZ4_VERSION_MINOR *\([0-9]*\).*" "\\1" _lz4_version_minor "${_lz4_version_lines}") - string(REGEX REPLACE ".*LZ4_VERSION_RELEASE *\([0-9]*\).*" "\\1" _lz4_version_release "${_lz4_version_lines}") - set(LZ4_VERSION "${_lz4_version_major}.${_lz4_version_minor}.${_lz4_version_release}") - unset(_lz4_version_major) - unset(_lz4_version_minor) - unset(_lz4_version_release) - unset(_lz4_version_lines) -endif () - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(LZ4 - REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR - VERSION_VAR LZ4_VERSION) - -if (LZ4_FOUND) - set(LZ4_INCLUDE_DIRS "${LZ4_INCLUDE_DIR}") - set(LZ4_LIBRARIES "${LZ4_LIBRARY}") - - if (NOT TARGET LZ4::LZ4) - add_library(LZ4::LZ4 UNKNOWN IMPORTED) - set_target_properties(LZ4::LZ4 PROPERTIES - IMPORTED_LOCATION "${LZ4_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${LZ4_INCLUDE_DIR}") - endif () -endif () +find_package(LZ4 NAMES lz4 REQUIRED) +if(NOT TARGET LZ4::LZ4) + add_library(LZ4::LZ4 INTERFACE IMPORTED) + target_link_libraries(LZ4::LZ4 INTERFACE lz4::lz4) +endif() \ No newline at end of file ================================================ FILE: ports/vtk/FindLZMA.patch ================================================ diff --git a/CMake/FindLZMA.cmake b/CMake/FindLZMA.cmake index 0c8c794..796558c 100644 --- a/CMake/FindLZMA.cmake +++ b/CMake/FindLZMA.cmake @@ -1,3 +1,11 @@ +find_package(LibLZMA) +set(LZMA_INCLUDE_DIR "${LIBLZMA_INCLUDE_DIR}" CACHE INTERNAL "") +set(LZMA_LIBRARY "${LIBLZMA_LIBRARIES}" CACHE INTERNAL "") +if(NOT TARGET LZMA::LZMA) + add_library(LZMA::LZMA INTERFACE IMPORTED) + target_link_libraries(LZMA::LZMA INTERFACE LibLZMA::LibLZMA) +endif() + find_path(LZMA_INCLUDE_DIR NAMES lzma.h DOC "lzma include directory") ================================================ FILE: ports/vtk/NoUndefDebug.patch ================================================ diff --git a/Utilities/Python/vtkPython.h b/Utilities/Python/vtkPython.h index 166f24104..79ae1d371 100644 --- a/Utilities/Python/vtkPython.h +++ b/Utilities/Python/vtkPython.h @@ -53,7 +53,7 @@ #include #include #include -#undef _DEBUG + #if defined(_MSC_VER) #define _CRT_NOFORCE_MANIFEST 1 #endif ================================================ FILE: ports/vtk/afxdll.patch ================================================ diff --git a/GUISupport/MFC/CMakeLists.txt b/GUISupport/MFC/CMakeLists.txt index 66b52f1f6..7fbfef908 100644 --- a/GUISupport/MFC/CMakeLists.txt +++ b/GUISupport/MFC/CMakeLists.txt @@ -10,7 +10,7 @@ endif () # Determine whether the shared or static MFC implementation to use. if (use_policy_0091) # XXX(cmake-3.15) if (NOT CMAKE_MSVC_RUNTIME_LIBRARY OR # The default uses `DLL`. - CMAKE_MSVC_RUNTIME_LIBRARY MATCHES "DLL$") + VCPKG_CRT_LINKAGE MATCHES "dynamic") set(vtk_mfc_static 0) else () set(vtk_mfc_static 1) ================================================ FILE: ports/vtk/backport-bda8324.diff ================================================ diff --git a/Parallel/Core/vtkThreadedCallbackQueue.txx b/Parallel/Core/vtkThreadedCallbackQueue.txx index 8f5a4414..fd55136d 100644 --- a/Parallel/Core/vtkThreadedCallbackQueue.txx +++ b/Parallel/Core/vtkThreadedCallbackQueue.txx @@ -275,7 +275,7 @@ template struct vtkThreadedCallbackQueue::InvokerImpl::DereferenceImpl { - using Type = decltype(*std::declval()); + using Type = typename std::remove_pointer())>::type; static Type& Get(T& instance) { return *instance; } }; ================================================ FILE: ports/vtk/cgns.patch ================================================ diff --git a/CMake/FindCGNS.cmake b/CMake/FindCGNS.cmake index 005f1afd9..35c6de184 100644 --- a/CMake/FindCGNS.cmake +++ b/CMake/FindCGNS.cmake @@ -1,48 +1,53 @@ -# -# Find the native CGNS includes and library -# -# CGNS_INCLUDE_DIR - where to find cgns.h, etc. -# CGNS_LIBRARIES - List of fully qualified libraries to link against when using CGNS. -# CGNS_FOUND - Do not attempt to use CGNS if "no" or undefined. - -find_path(CGNS_INCLUDE_DIR - NAMES - cgnslib.h - PATHS - /usr/local/include - /usr/include - DOC "CGNS include directory") -mark_as_advanced(CGNS_INCLUDE_DIR) - -find_library(CGNS_LIBRARY - NAMES - cgns - DOC "CGNS library") -mark_as_advanced(CGNS_LIBRARY) - -if (CGNS_INCLUDE_DIR) - file(STRINGS "${CGNS_INCLUDE_DIR}/cgnslib.h" version - REGEX "CGNS_DOTVERS") - string(REGEX REPLACE ".*CGNS_DOTVERS *\([0-9.]*\).*" "\\1" CGNS_VERSION "${version}") - unset(version) -else () - set(CGNS_VERSION CGNS_VERSION-NOTFOUND) -endif () - -# handle the QUIETLY and REQUIRED arguments and set CGNS_FOUND to TRUE if -# all listed variables are TRUE -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(CGNS - REQUIRED_VARS CGNS_INCLUDE_DIR CGNS_LIBRARY - VERSION_VAR CGNS_VERSION) - -if (CGNS_FOUND) - set(CGNS_LIBRARIES "${CGNS_LIBRARY}") - set(CGNS_INCLUDE_DIRS "${CGNS_INCLUDE_DIR}") - if (NOT TARGET CGNS::CGNS) - add_library(CGNS::CGNS UNKNOWN IMPORTED) - set_target_properties(CGNS::CGNS PROPERTIES - IMPORTED_LOCATION "${CGNS_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${CGNS_INCLUDE_DIR}") - endif () -endif () +# +# Find the native CGNS includes and library +# +# CGNS_INCLUDE_DIR - where to find cgns.h, etc. +# CGNS_LIBRARIES - List of fully qualified libraries to link against when using CGNS. +# CGNS_FOUND - Do not attempt to use CGNS if "no" or undefined. + +find_path(CGNS_INCLUDE_DIR + NAMES + cgnslib.h + PATHS + /usr/local/include + /usr/include + DOC "CGNS include directory") +mark_as_advanced(CGNS_INCLUDE_DIR) + +find_library(CGNS_LIBRARY + NAMES + cgnsdll cgns + DOC "CGNS library") +mark_as_advanced(CGNS_LIBRARY) + +if (CGNS_INCLUDE_DIR) + file(STRINGS "${CGNS_INCLUDE_DIR}/cgnslib.h" version + REGEX "CGNS_DOTVERS") + string(REGEX REPLACE ".*CGNS_DOTVERS *\([0-9.]*\).*" "\\1" CGNS_VERSION "${version}") + unset(version) +else () + set(CGNS_VERSION CGNS_VERSION-NOTFOUND) +endif () + +# handle the QUIETLY and REQUIRED arguments and set CGNS_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(CGNS + REQUIRED_VARS CGNS_INCLUDE_DIR CGNS_LIBRARY + VERSION_VAR CGNS_VERSION) + +if (CGNS_FOUND) + set(CGNS_LIBRARIES "${CGNS_LIBRARY}") + set(CGNS_INCLUDE_DIRS "${CGNS_INCLUDE_DIR}") + if (NOT TARGET CGNS::CGNS) + add_library(CGNS::CGNS UNKNOWN IMPORTED) + set_target_properties(CGNS::CGNS PROPERTIES + IMPORTED_LOCATION "${CGNS_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${CGNS_INCLUDE_DIR}") + find_package(HDF5 REQUIRED) + if(TARGET HDF5::HDF5) + set_property(TARGET CGNS::CGNS APPEND PROPERTY + INTERFACE_LINK_LIBRARIES "HDF5::HDF5") + endif() + endif () +endif () ================================================ FILE: ports/vtk/devendor_exodusII.patch ================================================ diff --git a/ThirdParty/exodusII/CMakeLists.txt b/ThirdParty/exodusII/CMakeLists.txt index 7a0cefb..3139114 100644 --- a/ThirdParty/exodusII/CMakeLists.txt +++ b/ThirdParty/exodusII/CMakeLists.txt @@ -1,20 +1,27 @@ -vtk_module_third_party_internal( - LICENSE_FILES - "vtkexodusII/COPYRIGHT" - SPDX_LICENSE_IDENTIFIER - "BSD-3-Clause" - SPDX_COPYRIGHT_TEXT - "Copyright (c) 2005-2017 National Technology & Engineering Solutions of Sandia, LLC (NTESS)" - SPDX_DOWNLOAD_LOCATION - "git+https://gitlab.kitware.com/third-party/seacas.git@exodus/for/vtk-20220706-v2021-05-12#packages/seacas/libraries/exodus" - VERSION - "8.11f" - STANDARD_INCLUDE_DIRS) +vtk_module_third_party( + INTERNAL + LICENSE_FILES + "vtkexodusII/COPYRIGHT" + SPDX_LICENSE_IDENTIFIER + "BSD-3-Clause" + SPDX_COPYRIGHT_TEXT + "Copyright (c) 2005-2017 National Technology & Engineering Solutions of Sandia, LLC (NTESS)" + SPDX_DOWNLOAD_LOCATION + "git+https://gitlab.kitware.com/third-party/seacas.git@exodus/for/vtk-20220706-v2021-05-12#packages/seacas/libraries/exodus" + VERSION + "8.11f" + STANDARD_INCLUDE_DIRS + EXTERNAL + PACKAGE SEACASExodus + CONFIG_MODE + TARGETS SEACASExodus::exodus + STANDARD_INCLUDE_DIRS +) -#configure_file( -# "${CMAKE_CURRENT_SOURCE_DIR}/vtk_exodusII.h.in" -# "${CMAKE_CURRENT_BINARY_DIR}/vtk_exodusII.h") +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/vtk_exodusII.h.in" + "${CMAKE_CURRENT_BINARY_DIR}/vtk_exodusII.h") vtk_module_install_headers( -# FILES "${CMAKE_CURRENT_BINARY_DIR}/vtk_exodusII.h") - FILES "${CMAKE_CURRENT_SOURCE_DIR}/vtk_exodusII.h") + FILES "${CMAKE_CURRENT_BINARY_DIR}/vtk_exodusII.h") +# FILES "${CMAKE_CURRENT_SOURCE_DIR}/vtk_exodusII.h") diff --git a/ThirdParty/exodusII/vtk_exodusII.h.in b/ThirdParty/exodusII/vtk_exodusII.h.in new file mode 100644 index 0000000..ac2ab78 --- /dev/null +++ b/ThirdParty/exodusII/vtk_exodusII.h.in @@ -0,0 +1,15 @@ +// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen +// SPDX-License-Identifier: BSD-3-Clause +#ifndef vtk_exodusII_h +#define vtk_exodusII_h + +/* Use the libproj library configured for VTK. */ +#cmakedefine01 VTK_MODULE_USE_EXTERNAL_vtkexodusII + +#if VTK_MODULE_USE_EXTERNAL_vtkexodusII +# include +#else +# include +#endif + +#endif ================================================ FILE: ports/vtk/fast-float.patch ================================================ diff --git a/ThirdParty/fast_float/CMakeLists.txt b/ThirdParty/fast_float/CMakeLists.txt index e6e63cbfe6..919b12a509 100644 --- a/ThirdParty/fast_float/CMakeLists.txt +++ b/ThirdParty/fast_float/CMakeLists.txt @@ -13,7 +13,6 @@ vtk_module_third_party( STANDARD_INCLUDE_DIRS HEADER_ONLY EXTERNAL - VERSION "3.9.0" PACKAGE FastFloat TARGETS FastFloat::fast_float STANDARD_INCLUDE_DIRS ================================================ FILE: ports/vtk/ffmpeg-8.diff ================================================ diff --git a/IO/FFMPEG/vtkFFMPEGVideoSource.cxx b/IO/FFMPEG/vtkFFMPEGVideoSource.cxx index f2366e71..93c67d26 100644 --- a/IO/FFMPEG/vtkFFMPEGVideoSource.cxx +++ b/IO/FFMPEG/vtkFFMPEGVideoSource.cxx @@ -72,12 +72,18 @@ public: } if (this->VideoDecodeContext) { +#if defined(LIBAVCODEC_VERSION_MAJOR) && LIBAVCODEC_VERSION_MAJOR < 60 avcodec_close(this->VideoDecodeContext); +#endif + avcodec_free_context(&this->VideoDecodeContext); this->VideoDecodeContext = nullptr; } if (this->AudioDecodeContext) { +#if defined(LIBAVCODEC_VERSION_MAJOR) && LIBAVCODEC_VERSION_MAJOR < 60 avcodec_close(this->AudioDecodeContext); +#endif + avcodec_free_context(&this->AudioDecodeContext); this->AudioDecodeContext = nullptr; } if (this->FormatContext) diff --git a/IO/FFMPEG/vtkFFMPEGWriter.cxx b/IO/FFMPEG/vtkFFMPEGWriter.cxx index 2cb8083f..0d024643 100644 --- a/IO/FFMPEG/vtkFFMPEGWriter.cxx +++ b/IO/FFMPEG/vtkFFMPEGWriter.cxx @@ -363,7 +363,9 @@ void vtkFFMPEGWriterInternal::End() if (this->avCodecContext) { +#if defined(LIBAVCODEC_VERSION_MAJOR) && LIBAVCODEC_VERSION_MAJOR < 60 avcodec_close(this->avCodecContext); +#endif avcodec_free_context(&this->avCodecContext); this->avCodecContext = nullptr; } ================================================ FILE: ports/vtk/ffmpeg.diff ================================================ diff --git a/CMake/FindFFMPEG.cmake b/CMake/FindFFMPEG.cmake index f727ef2d..b5eae147 100644 --- a/CMake/FindFFMPEG.cmake +++ b/CMake/FindFFMPEG.cmake @@ -79,16 +79,19 @@ function (_ffmpeg_find component headername) set(_deps_found TRUE) set(_deps_link) foreach (_ffmpeg_dep IN LISTS ARGN) - if (TARGET "FFMPEG::${_ffmpeg_dep}") - list(APPEND _deps_link "FFMPEG::${_ffmpeg_dep}") + if (TARGET "FFmpeg::${_ffmpeg_dep}") + list(APPEND _deps_link "FFmpeg::${_ffmpeg_dep}") else () set(_deps_found FALSE) endif () endforeach () if (_deps_found) - if (NOT TARGET "FFMPEG::${component}") - add_library("FFMPEG::${component}" UNKNOWN IMPORTED) - set_target_properties("FFMPEG::${component}" PROPERTIES + if (NOT TARGET "FFmpeg::${component}") + # vcpkg cmake wrapper + add_library("FFmpeg::${component}" UNKNOWN IMPORTED) + # VTK + add_library("FFMPEG::${component}" ALIAS "FFmpeg::${component}") + set_target_properties("FFmpeg::${component}" PROPERTIES IMPORTED_LOCATION "${FFMPEG_${component}_LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES "${FFMPEG_${component}_INCLUDE_DIR}" IMPORTED_LINK_INTERFACE_LIBRARIES "${_deps_link}") @@ -148,7 +151,7 @@ _ffmpeg_find(avfilter avfilter.h _ffmpeg_find(avdevice avdevice.h avformat avutil) -if (TARGET FFMPEG::avutil) +if (TARGET FFmpeg::avutil) set(_ffmpeg_version_header_path "${FFMPEG_avutil_INCLUDE_DIR}/libavutil/ffversion.h") if (EXISTS "${_ffmpeg_version_header_path}") file(STRINGS "${_ffmpeg_version_header_path}" _ffmpeg_version @@ -165,7 +168,7 @@ set(FFMPEG_INCLUDE_DIRS) set(FFMPEG_LIBRARIES) set(_ffmpeg_required_vars) foreach (_ffmpeg_component IN LISTS FFMPEG_FIND_COMPONENTS) - if (TARGET "FFMPEG::${_ffmpeg_component}") + if (TARGET "FFmpeg::${_ffmpeg_component}") set(FFMPEG_${_ffmpeg_component}_INCLUDE_DIRS "${FFMPEG_${_ffmpeg_component}_INCLUDE_DIR}") set(FFMPEG_${_ffmpeg_component}_LIBRARIES ================================================ FILE: ports/vtk/fix-eigen3.patch ================================================ diff --git a/CMake/FindEigen3.cmake b/CMake/FindEigen3.cmake deleted file mode 100644 index 103690ed5a..0000000000 --- a/CMake/FindEigen3.cmake +++ /dev/null @@ -1,33 +0,0 @@ -find_path(Eigen3_INCLUDE_DIR - NAMES signature_of_eigen3_matrix_library - PATH_SUFFIXES eigen3 eigen - DOC "Eigen include directory") -mark_as_advanced(Eigen3_INCLUDE_DIR) - -if (Eigen3_INCLUDE_DIR) - file(STRINGS "${Eigen3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _Eigen3_version_lines - REGEX "#define[ \t]+EIGEN_(WORLD|MAJOR|MINOR)_VERSION") - string(REGEX REPLACE ".*EIGEN_WORLD_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_world "${_Eigen3_version_lines}") - string(REGEX REPLACE ".*EIGEN_MAJOR_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_major "${_Eigen3_version_lines}") - string(REGEX REPLACE ".*EIGEN_MINOR_VERSION *\([0-9]*\).*" "\\1" _Eigen3_version_minor "${_Eigen3_version_lines}") - set(Eigen3_VERSION "${_Eigen3_version_world}.${_Eigen3_version_major}.${_Eigen3_version_minor}") - unset(_Eigen3_version_world) - unset(_Eigen3_version_major) - unset(_Eigen3_version_minor) - unset(_Eigen3_version_lines) -endif () - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Eigen3 - REQUIRED_VARS Eigen3_INCLUDE_DIR - VERSION_VAR Eigen3_VERSION) - -if (Eigen3_FOUND) - set(Eigen3_INCLUDE_DIRS "${Eigen3_INCLUDE_DIR}") - - if (NOT TARGET Eigen3::Eigen3) - add_library(Eigen3::Eigen3 INTERFACE IMPORTED) - set_target_properties(Eigen3::Eigen3 PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${Eigen3_INCLUDE_DIR}") - endif () -endif () diff --git a/CMake/vtkInstallCMakePackage.cmake b/CMake/vtkInstallCMakePackage.cmake index 7dbd33024c..343910c144 100644 --- a/CMake/vtkInstallCMakePackage.cmake +++ b/CMake/vtkInstallCMakePackage.cmake @@ -93,7 +93,6 @@ configure_file( set(vtk_cmake_module_files Finddouble-conversion.cmake FindDirectX.cmake - FindEigen3.cmake FindEXPAT.cmake FindExprTk.cmake FindFFMPEG.cmake diff --git a/ThirdParty/eigen/CMakeLists.txt b/ThirdParty/eigen/CMakeLists.txt index 38e1bdc3b1..f9ce623c44 100644 --- a/ThirdParty/eigen/CMakeLists.txt +++ b/ThirdParty/eigen/CMakeLists.txt @@ -14,7 +14,8 @@ vtk_module_third_party( STANDARD_INCLUDE_DIRS EXTERNAL PACKAGE Eigen3 - TARGETS Eigen3::Eigen3 + TARGETS Eigen3::Eigen + CONFIG_MODE STANDARD_INCLUDE_DIRS) configure_file( ================================================ FILE: ports/vtk/fix-exprtk.patch ================================================ diff --git a/CMake/FindExprTk.cmake b/CMake/FindExprTk.cmake index 2886e7ed71..cb8a875725 100644 --- a/CMake/FindExprTk.cmake +++ b/CMake/FindExprTk.cmake @@ -24,7 +24,7 @@ if (ExprTk_INCLUDE_DIR) set(ExprTk_VERSION) foreach (_exprtk_version_line IN LISTS _exprtk_version_header) if ("${ExprTk_VERSION}" STREQUAL "") - string(REGEX MATCH "version = \"(2\.7[0-9.]+)\".*$" _exprtk_version_match "${_exprtk_version_line}") + string(REGEX MATCH [[version = "(2\.7[0-9.]+)".*$]] _exprtk_version_match "${_exprtk_version_line}") set(ExprTk_VERSION "${CMAKE_MATCH_1}") else () string(REGEX MATCH "\"([0-9.]+)\".*$" _exprtk_version_match "${_exprtk_version_line}") ================================================ FILE: ports/vtk/fix-gdal.patch ================================================ diff --git a/CMake/vtkInstallCMakePackage.cmake b/CMake/vtkInstallCMakePackage.cmake index bcb2044..c87bb9c 100644 --- a/CMake/vtkInstallCMakePackage.cmake +++ b/CMake/vtkInstallCMakePackage.cmake @@ -113,7 +113,6 @@ set(vtk_cmake_patch_files patches/3.18/FindPython/Support.cmake patches/3.18/FindPython2.cmake patches/3.18/FindPython3.cmake - patches/99/FindGDAL.cmake patches/99/FindHDF5.cmake patches/99/FindJPEG.cmake patches/99/FindLibArchive.cmake diff --git a/Geovis/GDAL/CMakeLists.txt b/Geovis/GDAL/CMakeLists.txt index dfd58f0..f46177f 100644 --- a/Geovis/GDAL/CMakeLists.txt +++ b/Geovis/GDAL/CMakeLists.txt @@ -9,4 +9,7 @@ vtk_module_add_module(VTK::GeovisGDAL CLASSES ${classes}) vtk_module_link(VTK::GeovisGDAL PRIVATE - GDAL::GDAL) + ${GDAL_LIBRARIES}) +vtk_module_include(VTK::GeovisGDAL + PRIVATE + ${GDAL_INCLUDE_DIRS}) diff --git a/IO/GDAL/CMakeLists.txt b/IO/GDAL/CMakeLists.txt index 0a1248a..621a060 100644 --- a/IO/GDAL/CMakeLists.txt +++ b/IO/GDAL/CMakeLists.txt @@ -9,4 +9,7 @@ vtk_module_add_module(VTK::IOGDAL CLASSES ${classes}) vtk_module_link(VTK::IOGDAL PRIVATE - GDAL::GDAL) + ${GDAL_LIBRARIES}) +vtk_module_include(VTK::IOGDAL + PRIVATE + ${GDAL_INCLUDE_DIRS}) \ No newline at end of file ================================================ FILE: ports/vtk/fix-tbbsmptool.patch ================================================ diff --git a/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx b/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx index e5792ee..e81d5ed 100644 --- a/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx +++ b/Common/Core/SMP/TBB/vtkSMPToolsImpl.txx @@ -190,6 +190,10 @@ int vtkSMPToolsImpl::GetEstimatedNumberOfThreads(); template <> bool vtkSMPToolsImpl::GetSingleThread(); +//-------------------------------------------------------------------------------- +template <> +VTKCOMMONCORE_EXPORT vtkSMPToolsImpl::vtkSMPToolsImpl(); + VTK_ABI_NAMESPACE_END } // namespace smp } // namespace detail ================================================ FILE: ports/vtk/fix-using-hdf5.patch ================================================ diff --git a/ThirdParty/h5part/vtkh5part/src/H5Part.c b/ThirdParty/h5part/vtkh5part/src/H5Part.c index 228d246..41af04d 100644 --- a/ThirdParty/h5part/vtkh5part/src/H5Part.c +++ b/ThirdParty/h5part/vtkh5part/src/H5Part.c @@ -2092,7 +2092,7 @@ _H5Part_iteration_operator2 ( case H5L_TYPE_HARD: { H5O_info_t objinfo; - if( H5Oget_info_by_name( group_id, member_name, &objinfo, H5P_DEFAULT ) < 0 ) { + if( H5Oget_info_by_name1( group_id, member_name, &objinfo, H5P_DEFAULT ) < 0 ) { return (herr_t)HANDLE_H5G_GET_OBJINFO_ERR ( member_name ); } @@ -2142,7 +2142,7 @@ _H5Part_iteration_operator2 ( if ( obj_id < 0 ) { return (herr_t)HANDLE_H5G_OPEN_ERR ( member_name ); } - else if ( H5Oget_info ( obj_id, &objinfo ) < 0 ) { + else if ( H5Oget_info1 ( obj_id, &objinfo ) < 0 ) { return (herr_t)HANDLE_H5G_GET_OBJINFO_ERR ( member_name ); } else { ================================================ FILE: ports/vtk/hdf5helper.patch ================================================ --- src/IO/ERF/vtkHDF5Helper.h.old 2024-02-27 17:35:26.000000000 +0100 +++ src/IO/ERF/vtkHDF5Helper.h 2024-05-02 15:49:35.716258500 +0200 @@ -42,7 +42,7 @@ public: /** * Check existence of group defined by groupName relative to fileId. */ - static bool GroupExists(int64_t fileId, const char* groupName); + static bool GroupExists(hid_t fileId, const char* groupName); /** * Get length of array defined by arrayId. ================================================ FILE: ports/vtk/iotr.patch ================================================ diff --git a/IO/IOSS/vtkIOSSUtilities.cxx b/IO/IOSS/vtkIOSSUtilities.cxx index 26470b965..bee76107a 100644 --- a/IO/IOSS/vtkIOSSUtilities.cxx +++ b/IO/IOSS/vtkIOSSUtilities.cxx @@ -38,6 +38,7 @@ #include #include #include +#include #include diff --git a/IO/IOSS/vtkIOSSReaderInternal.cxx b/IO/IOSS/vtkIOSSReaderInternal.cxx index de8d456..237644b 100644 --- a/IO/IOSS/vtkIOSSReaderInternal.cxx +++ b/IO/IOSS/vtkIOSSReaderInternal.cxx @@ -9,6 +9,8 @@ #include "vtkIOSSReaderCommunication.h" #include "vtkIOSSUtilities.h" +#include VTK_IOSS(Iotr_Factory.h) + #include "vtkCellArrayIterator.h" #include "vtkCellData.h" #include "vtkDataArraySelection.h" ================================================ FILE: ports/vtk/jsoncpp.patch ================================================ diff --git a/ThirdParty/jsoncpp/CMakeLists.txt b/ThirdParty/jsoncpp/CMakeLists.txt index a9581f862..ad17b7323 100644 --- a/ThirdParty/jsoncpp/CMakeLists.txt +++ b/ThirdParty/jsoncpp/CMakeLists.txt @@ -8,7 +8,6 @@ vtk_module_third_party( VERSION "1.9.4" STANDARD_INCLUDE_DIRS EXTERNAL PACKAGE JsonCpp - VERSION 0.7.0 TARGETS JsonCpp::JsonCpp STANDARD_INCLUDE_DIRS) ================================================ FILE: ports/vtk/libproj.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index d477f8b..375a2a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -389,7 +389,6 @@ endif () # Handle the requirement of `sqlitebin` for `proj`. set(vtk_sqlite_build_binary 0) if ("VTK::libproj" IN_LIST vtk_modules) - set(vtk_sqlite_build_binary 1) endif () cmake_dependent_option(VTK_ENABLE_KITS "Enable kits compilation" OFF diff --git a/ThirdParty/libproj/CMakeLists.txt b/ThirdParty/libproj/CMakeLists.txt index f8888876..d57c4c18 100644 --- a/ThirdParty/libproj/CMakeLists.txt +++ b/ThirdParty/libproj/CMakeLists.txt @@ -4,11 +4,13 @@ vtk_module_third_party( VERSION "8.1.0" STANDARD_INCLUDE_DIRS EXTERNAL - PACKAGE LibPROJ - TARGETS LibPROJ::LibPROJ - USE_VARIABLES LibPROJ_MAJOR_VERSION + PACKAGE PROJ + CONFIG_MODE + TARGETS PROJ::proj + USE_VARIABLES PROJ_VERSION_MAJOR STANDARD_INCLUDE_DIRS) +set(LibPROJ_MAJOR_VERSION "${PROJ_VERSION_MAJOR}") if (NOT VTK_MODULE_USE_EXTERNAL_VTK_libproj) set(LibPROJ_MAJOR_VERSION "8") diff --git a/ThirdParty/libproj/vtk.module b/ThirdParty/libproj/vtk.module index e49d988f..bb2d22e7 100644 --- a/ThirdParty/libproj/vtk.module +++ b/ThirdParty/libproj/vtk.module @@ -6,8 +6,4 @@ SPDX_LICENSE_IDENTIFIER BSD-3-Clause SPDX_COPYRIGHT_TEXT Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen -DEPENDS - VTK::nlohmannjson -PRIVATE_DEPENDS - VTK::sqlite THIRD_PARTY ================================================ FILE: ports/vtk/mpi-language.diff ================================================ diff --git a/CMake/vtkModule.cmake b/CMake/vtkModule.cmake index 28d09e98..654c93f6 100644 --- a/CMake/vtkModule.cmake +++ b/CMake/vtkModule.cmake @@ -5424,6 +5424,9 @@ if (_vtk_module_find_package_enabled) \"Failed to find the ${_vtk_export_package} package.\") endif ()\n") + if(_vtk_export_package STREQUAL "MPI") + string(PREPEND _vtk_export_module_content " enable_language(C)\n enable_language(CXX)\n") + endif() string(APPEND _vtk_export_module_build_content "${_vtk_export_module_content}") # Private usages should be guarded by `$` and can be # skipped for the install tree regardless of the build mode. ================================================ FILE: ports/vtk/mysql.diff ================================================ diff --git a/CMake/FindMySQL.cmake b/CMake/FindMySQL.cmake index cc0679b..330326c 100644 --- a/CMake/FindMySQL.cmake +++ b/CMake/FindMySQL.cmake @@ -1,3 +1,5 @@ + +if(0) #[==[ Provides the following variables: @@ -110,3 +112,10 @@ else () endif () endif () unset(_MySQL_use_pkgconfig) +endif() + +if(NOT TARGET MySQL::MySQL) + find_package(MySQL NAMES unofficial-libmysql REQUIRED) + add_library(MySQL::MySQL INTERFACE IMPORTED) + target_link_libraries(MySQL::MySQL INTERFACE unofficial::libmysql::libmysql) +endif() diff --git a/IO/MySQL/vtkMySQLDatabasePrivate.h b/IO/MySQL/vtkMySQLDatabasePrivate.h index 82bc5c5..76256bc 100644 --- a/IO/MySQL/vtkMySQLDatabasePrivate.h +++ b/IO/MySQL/vtkMySQLDatabasePrivate.h @@ -8,7 +8,8 @@ #endif #include "vtkIOMySQLModule.h" // For export macro -#include // needed for MYSQL typedefs +#include // needed for MYSQL typedefs +using my_bool = bool; // removed in libmysql 8.0 VTK_ABI_NAMESPACE_BEGIN class VTKIOMYSQL_EXPORT vtkMySQLDatabasePrivate diff --git a/IO/MySQL/vtkMySQLQuery.cxx b/IO/MySQL/vtkMySQLQuery.cxx index 38a9ec9..c5cc785 100644 --- a/IO/MySQL/vtkMySQLQuery.cxx +++ b/IO/MySQL/vtkMySQLQuery.cxx @@ -9,8 +9,8 @@ #include "vtkVariant.h" #include "vtkVariantArray.h" -#include -#include +#include +#include #if defined(_WIN32) #include ================================================ FILE: ports/vtk/no-libharu-for-ioexport.patch ================================================ diff --git a/IO/Export/vtk.module b/IO/Export/vtk.module index 01b18a48..dcac24c0 100644 --- a/IO/Export/vtk.module +++ b/IO/Export/vtk.module @@ -36,7 +36,6 @@ PRIVATE_DEPENDS VTK::IOGeometry VTK::ImagingCore VTK::nlohmannjson - VTK::libharu VTK::utf8 TEST_DEPENDS VTK::ChartsCore ================================================ FILE: ports/vtk/no-libproj-for-netcdf.patch ================================================ diff --git a/IO/NetCDF/vtk.module b/IO/NetCDF/vtk.module index a0cc0741..07f3606b 100644 --- a/IO/NetCDF/vtk.module +++ b/IO/NetCDF/vtk.module @@ -26,7 +26,6 @@ PRIVATE_DEPENDS VTK::CommonDataModel VTK::netcdf VTK::vtksys - VTK::libproj TEST_DEPENDS VTK::CommonExecutionModel VTK::FiltersGeometry diff --git a/IO/NetCDF/vtkNetCDFCFWriter.cxx b/IO/NetCDF/vtkNetCDFCFWriter.cxx index 756ff87..d71de89 100644 --- a/IO/NetCDF/vtkNetCDFCFWriter.cxx +++ b/IO/NetCDF/vtkNetCDFCFWriter.cxx @@ -33,7 +33,6 @@ #include #include -#include "vtk_libproj.h" #include "vtk_netcdf.h" VTK_ABI_NAMESPACE_BEGIN ================================================ FILE: ports/vtk/octree.patch ================================================ diff --git a/Utilities/octree/octree/octree_node.txx b/Utilities/octree/octree/octree_node.txx index 6971c7c119..5f12bb7de7 100644 --- a/Utilities/octree/octree/octree_node.txx +++ b/Utilities/octree/octree/octree_node.txx @@ -210,7 +210,7 @@ const octree_node& octree_node::operator[](int child) co { throw std::domain_error("Attempt to access children of an octree leaf node."); } - return this->_M_chilren[child]; + return this->m_children[child]; } /**\brief Return a reference to a child node. ================================================ FILE: ports/vtk/opencascade-7.8.0.patch ================================================ diff --git a/IO/OCCT/CMakeLists.txt b/IO/OCCT/CMakeLists.txt index e81444eceb..4baddeb719 100644 --- a/IO/OCCT/CMakeLists.txt +++ b/IO/OCCT/CMakeLists.txt @@ -4,12 +4,25 @@ vtk_module_find_package(PRIVATE_IF_SHARED VERSION_VAR "@OpenCASCADE_MAJOR_VERSION@.@OpenCASCADE_MINOR_VERSION@.@OpenCASCADE_MAINTENANCE_VERSION@" ) -set(opencascade_req_targets - TKSTEP - TKIGES - TKMesh - TKXDESTEP - TKXDEIGES) +if (OpenCASCADE_VERSION VERSION_GREATER_EQUAL "7.8.0") + set(opencascade_req_targets + TKDESTEP + TKDEIGES + TKernel + TKMath + TKMesh + TKBRep + TKXSBase + TKLCAF + TKXCAF) +else() + set(opencascade_req_targets + TKSTEP + TKIGES + TKMesh + TKXDESTEP + TKXDEIGES) +endif() set(opencascade_missing_targets) foreach (opencascade_req_target IN LISTS opencascade_req_targets) if (NOT TARGET "${opencascade_req_target}") @@ -35,8 +48,7 @@ vtk_module_link(VTK::IOOCCT ${opencascade_req_targets}) # OpenCASCADE started putting include directory usage requirements in 7.7.0. -set(OpenCASCADE_VERSION - "${OpenCASCADE_MAJOR_VERSION}.${OpenCASCADE_MINOR_VERSION}.${OpenCASCADE_MAINTENANCE_VERSION}") + if (OpenCASCADE_VERSION VERSION_LESS "7.7.0") vtk_module_include(VTK::IOOCCT PRIVATE "${OpenCASCADE_INCLUDE_DIR}") endif () diff --git a/IO/OCCT/vtkOCCTReader.cxx b/IO/OCCT/vtkOCCTReader.cxx index 52e76be72c..5aca5c93c8 100644 --- a/IO/OCCT/vtkOCCTReader.cxx +++ b/IO/OCCT/vtkOCCTReader.cxx @@ -345,11 +345,19 @@ public: } //---------------------------------------------------------------------------- +#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX + size_t GetHash(const TDF_Label& label) + { + TopoDS_Shape aShape; + return this->ShapeTool->GetShape(label, aShape) ? std::hash{}(aShape) : 0; + } +#else int GetHash(const TDF_Label& label) { TopoDS_Shape aShape; return this->ShapeTool->GetShape(label, aShape) ? aShape.HashCode(INT_MAX) : 0; } +#endif //---------------------------------------------------------------------------- static void GetMatrix(const TopLoc_Location& loc, vtkMatrix4x4* mat) @@ -381,8 +389,11 @@ public: GetMatrix(hLoc->Get(), location); } } - +#if VTK_OCCT_VERSION(7, 8, 0) <= OCC_VERSION_HEX + std::unordered_map> ShapeMap; +#else std::unordered_map> ShapeMap; +#endif Handle(XCAFDoc_ShapeTool) ShapeTool; Handle(XCAFDoc_ColorTool) ColorTool; ================================================ FILE: ports/vtk/pegtl.patch ================================================ diff --git a/IO/MotionFX/vtkMotionFXCFGGrammar.h b/IO/MotionFX/vtkMotionFXCFGGrammar.h index dba137386..4cb03e054 100644 --- a/IO/MotionFX/vtkMotionFXCFGGrammar.h +++ b/IO/MotionFX/vtkMotionFXCFGGrammar.h @@ -23,7 +23,7 @@ // for debugging // clang-format off -#include VTK_PEGTL(pegtl/contrib/tracer.hpp) +#include VTK_PEGTL(pegtl/contrib/trace.hpp) // clang-format on namespace MotionFX diff --git a/IO/MotionFX/vtkMotionFXCFGReader.cxx b/IO/MotionFX/vtkMotionFXCFGReader.cxx index 338aa736e..374e54b94 100644 --- a/IO/MotionFX/vtkMotionFXCFGReader.cxx +++ b/IO/MotionFX/vtkMotionFXCFGReader.cxx @@ -1213,7 +1213,7 @@ bool PositionFileMotion::read_position_file(const std::string& rootDir) const } return true; } - catch (const tao::pegtl::input_error& e) + catch (const tao::pegtl::parse_error& e) { vtkGenericWarningMacro("PositionFileMotion::read_position_file failed: " << e.what()); } @@ -1232,7 +1232,7 @@ bool UniversalTransformMotion::read_universaltransform_file(const std::string& r in, numbers, this->transforms); return true; } - catch (const tao::pegtl::input_error& e) + catch (const tao::pegtl::parse_error& e) { vtkGenericWarningMacro( "UniversalTransformMotion::read_universaltransform_file failed: " << e.what()); @@ -1267,7 +1267,7 @@ public: if (getenv("MOTIONFX_DEBUG_GRAMMAR") != nullptr) { tao::pegtl::read_input<> in2(filename); - tao::pegtl::parse(in2); + tao::pegtl::complete_trace(in2); } return false; } diff --git a/ThirdParty/pegtl/CMakeLists.txt b/ThirdParty/pegtl/CMakeLists.txt index 9bbd4c828..0cdb1f53d 100644 --- a/ThirdParty/pegtl/CMakeLists.txt +++ b/ThirdParty/pegtl/CMakeLists.txt @@ -5,8 +5,7 @@ vtk_module_third_party( VERSION "2.8.3" EXTERNAL PACKAGE PEGTL - VERSION 2.0.0 TARGETS PEGTL::PEGTL STANDARD_INCLUDE_DIRS) diff --git a/CMake/FindPEGTL.cmake b/CMake/FindPEGTL.cmake index 73eee02f7..22d8bc159 100644 --- a/CMake/FindPEGTL.cmake +++ b/CMake/FindPEGTL.cmake @@ -19,31 +19,45 @@ # # PEGTL::PEGTL +message(STATUS "Searching for PEGTL") +find_package(PEGTL CONFIG REQUIRED) +if(TARGET taocpp::pegtl) + message(STATUS "Searching for PEGTL - found target taocpp::pegtl") + get_target_property(TARGET_IMPORTED_GLOBAL taocpp::pegtl IMPORTED_GLOBAL) + if(NOT TARGET_IMPORTED_GLOBAL) + set_target_properties(taocpp::pegtl PROPERTIES IMPORTED_GLOBAL TRUE) + endif() + if(NOT TARGET PEGTL::PEGTL) + add_library(PEGTL::PEGTL IMPORTED INTERFACE) + target_link_libraries(PEGTL::PEGTL INTERFACE taocpp::pegtl) + endif() +else() find_path(PEGTL_INCLUDE_DIR NAMES pegtl/version.hpp PATH_SUFFIXES tao DOC "Path to PEGTL headers") mark_as_advanced(PEGTL_INCLUDE_DIR) if (PEGTL_INCLUDE_DIR) file(STRINGS "${PEGTL_INCLUDE_DIR}/pegtl/version.hpp" _pegtl_version_header REGEX "TAO_PEGTL_VERSION") string(REGEX MATCH "define[ \t]+TAO_PEGTL_VERSION[ \t]+\"([0-9.]+)\"" _pegtl_version_match "${_pegtl_version_header}") set(PEGTL_VERSION "${CMAKE_MATCH_1}") unset(_pegtl_version_header) unset(_pegtl_version_match) endif () include(FindPackageHandleStandardArgs) find_package_handle_standard_args(PEGTL REQUIRED_VARS PEGTL_INCLUDE_DIR VERSION_VAR PEGTL_VERSION) if (PEGTL_FOUND) set(PEGTL_INCLUDE_DIRS "${PEGTL_INCLUDE_DIR}") if (NOT TARGET PEGTL::PEGTL) add_library(PEGTL::PEGTL INTERFACE IMPORTED) set_target_properties(PEGTL::PEGTL PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${PEGTL_INCLUDE_DIR}") endif () endif () +endif () ================================================ FILE: ports/vtk/portfile.cmake ================================================ set(VTK_SHORT_VERSION 9.3) if(NOT VCPKG_TARGET_IS_WINDOWS) message(WARNING "You will need to install Xorg dependencies to build vtk:\napt-get install libxt-dev\n") endif() set(VCPKG_POLICY_SKIP_ABSOLUTE_PATHS_CHECK enabled) # ============================================================================= # Clone & patch vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Kitware/VTK REF 09a76bc55b37caad94d0d8ebe865caaed1b438af # v9.3.x used by ParaView 5.12.0 SHA512 396ee901fafacae8aef860b9c9c17cb92ae8b4969527fd271ad8dd9f6a9e0dc8e3dc807c8d43cc585608ad101a64edcd7aff49e1580c7a61a817c2ea8e2655f5 HEAD_REF master PATCHES ffmpeg.diff ffmpeg-8.diff # c2bd786 + b8da15a + 492a5cd FindLZMA.patch FindLZ4.patch libproj.patch mysql.diff pegtl.patch pythonwrapper.patch # Required by ParaView to Wrap required classes NoUndefDebug.patch # Required to link against correct Python library depending on build type. fix-using-hdf5.patch # CHECK: module-name-mangling.patch # Last patch TODO: Patch out internal loguru FindExpat.patch # The find_library calls are taken care of by vcpkg-cmake-wrapper.cmake of expat # fix-gdal.patch TODO? cgns.patch vtkm.patch afxdll.patch vtkioss.patch jsoncpp.patch iotr.patch fast-float.patch fix-exprtk.patch # just for dbow2 and theia devendor_exodusII.patch remove-prefix-changes.patch hdf5helper.patch opencascade-7.8.0.patch no-libharu-for-ioexport.patch no-libproj-for-netcdf.patch octree.patch fix-tbbsmptool.patch # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11530 backport-bda8324.diff # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/12418 use-compile-tools.diff zspace.diff # https://gitlab.kitware.com/vtk/vtk/-/commit/01a8bd7a917d33892f67a8d76ce7fc4b524d56b4 mpi-language.diff fix-eigen3.patch ) # ============================================================================= # Overwrite outdated modules if they have not been patched: file(COPY "${CURRENT_PORT_DIR}/FindHDF5.cmake" DESTINATION "${SOURCE_PATH}/CMake/patches/99") # due to usage of targets in netcdf-c file(REMOVE "${SOURCE_PATH}/CMake/FindOGG.cmake") vcpkg_replace_string("${SOURCE_PATH}/ThirdParty/ogg/CMakeLists.txt" "OGG::OGG" "Ogg::ogg") vcpkg_replace_string("${SOURCE_PATH}/ThirdParty/ogg/CMakeLists.txt" "OGG" "Ogg") vcpkg_replace_string("${SOURCE_PATH}/CMake/vtkInstallCMakePackage.cmake" "FindOGG.cmake\n" "") vcpkg_replace_string("${SOURCE_PATH}/CMake/FindTHEORA.cmake" "find_dependency(OGG)" "find_dependency(Ogg CONFIG)") vcpkg_replace_string("${SOURCE_PATH}/CMake/FindTHEORA.cmake" "OGG::OGG" "Ogg::ogg") # ============================================================================= # ============================================================================= # Options: # Collect CMake options for optional components # Strict wiring of features/dependencies to VTK modules # VTK_MODULE_ENABLE... and VTK_GROUP_ENABLE... do not use ON/OFF but # VTK's special NO/DONT_WANT/WANT/YES/DEFAULT (cf. vtkModule.cmake). # This section produces either YES or NO (after postprocessing). # YES/NO are also okay for regular CMake options instead of ON/OFF, # so we can consolidate VTK and CMake settings here. vcpkg_check_features(OUT_FEATURE_OPTIONS VTK_YES_NO_OPTIONS FEATURES "all" VTK_BUILD_ALL_MODULES "atlmfc" VTK_MODULE_ENABLE_VTK_GUISupportMFC "cgns" VCPKG_LOCK_FIND_PACKAGE_CGNS "cuda" VTK_USE_CUDA "debugleaks" VTK_DEBUG_LEAKS "fontconfig" VTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig "libharu" VCPKG_LOCK_FIND_PACKAGE_LibHaru "libtheora" VCPKG_LOCK_FIND_PACKAGE_THEORA "netcdf" VCPKG_LOCK_FIND_PACKAGE_NetCDF "netcdf" VTK_MODULE_ENABLE_VTK_netcdf "netcdf" VTK_MODULE_ENABLE_VTK_IOMINC "netcdf" VTK_MODULE_ENABLE_VTK_IONetCDF "openmp" VTK_SMP_ENABLE_OPENMP "proj" VCPKG_LOCK_FIND_PACKAGE_PROJ "proj" VTK_MODULE_ENABLE_VTK_libproj "proj" VTK_MODULE_ENABLE_VTK_IOCesium3DTiles "proj" VTK_MODULE_ENABLE_VTK_GeovisCore "python" VTK_WRAP_PYTHON "python" VTK_MODULE_ENABLE_VTK_Python "python" VTK_MODULE_ENABLE_VTK_PythonContext2D "python" VTK_MODULE_ENABLE_VTK_PythonInterpreter "seacas" VCPKG_LOCK_FIND_PACKAGE_SEACASExodus "seacas" VCPKG_LOCK_FIND_PACKAGE_SEACASIoss "sql" VCPKG_LOCK_FIND_PACKAGE_SQLite3 "sql" VTK_MODULE_ENABLE_VTK_sqlite "sql" VTK_MODULE_ENABLE_VTK_IOSQL "tbb" VTK_SMP_ENABLE_TBB "vtkm" VTK_MODULE_ENABLE_VTK_vtkm "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmCore "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmDataModel "vtkm" VTK_MODULE_ENABLE_VTK_AcceleratorsVTKmFilters INVERTED_FEATURES "all" VTK_FORBID_DOWNLOADS ) list(TRANSFORM VTK_YES_NO_OPTIONS REPLACE "=ON" "=YES") list(TRANSFORM VTK_YES_NO_OPTIONS REPLACE "=OFF" "=NO") # TODO: # - add loguru as a dependency requires #8682 vcpkg_check_features(OUT_FEATURE_OPTIONS VTK_FEATURE_OPTIONS FEATURES "qt" VTK_GROUP_ENABLE_Qt "qt" VTK_MODULE_ENABLE_VTK_GUISupportQt "qt" VTK_MODULE_ENABLE_VTK_GUISupportQtSQL "qt" VTK_MODULE_ENABLE_VTK_RenderingQt "qt" VTK_MODULE_ENABLE_VTK_ViewsQt "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelStatistics "paraview" VTK_MODULE_ENABLE_VTK_IOParallelExodus "paraview" VTK_MODULE_ENABLE_VTK_RenderingParallel "paraview" VTK_MODULE_ENABLE_VTK_RenderingVolumeAMR "paraview" VTK_MODULE_ENABLE_VTK_IOXdmf2 "paraview" VTK_MODULE_ENABLE_VTK_IOH5part "paraview" VTK_MODULE_ENABLE_VTK_IOH5Rage "paraview" VTK_MODULE_ENABLE_VTK_IOParallelLSDyna "paraview" VTK_MODULE_ENABLE_VTK_IOTRUCHAS "paraview" VTK_MODULE_ENABLE_VTK_IOVPIC "paraview" VTK_MODULE_ENABLE_VTK_RenderingAnnotation "paraview" VTK_MODULE_ENABLE_VTK_DomainsChemistry "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelDIY2 "paraview" VTK_MODULE_ENABLE_VTK_cli11 "paraview" VTK_MODULE_ENABLE_VTK_FiltersOpenTURNS "paraview" VTK_MODULE_ENABLE_VTK_FiltersParallelVerdict "paraview" VTK_MODULE_ENABLE_VTK_IOOMF "paraview" VTK_MODULE_ENABLE_VTK_IOPIO "mpi" VTK_GROUP_ENABLE_MPI "opengl" VTK_MODULE_ENABLE_VTK_ImagingOpenGL2 "opengl" VTK_MODULE_ENABLE_VTK_RenderingGL2PSOpenGL2 "opengl" VTK_MODULE_ENABLE_VTK_RenderingOpenGL2 "opengl" VTK_MODULE_ENABLE_VTK_RenderingVolumeOpenGL2 "opengl" VTK_MODULE_ENABLE_VTK_opengl "openvr" VTK_MODULE_ENABLE_VTK_RenderingOpenVR "gdal" VTK_MODULE_ENABLE_VTK_IOGDAL "geojson" VTK_MODULE_ENABLE_VTK_IOGeoJSON "ioocct" VTK_MODULE_ENABLE_VTK_IOOCCT "libtheora" VTK_MODULE_ENABLE_VTK_IOOggTheora "libharu" VTK_MODULE_ENABLE_VTK_IOExportPDF "cgns" VTK_MODULE_ENABLE_VTK_IOCGNSReader "seacas" VTK_MODULE_ENABLE_VTK_IOIOSS "seacas" VTK_MODULE_ENABLE_VTK_IOExodus ) # Replace common value to vtk value list(TRANSFORM VTK_FEATURE_OPTIONS REPLACE "=ON" "=YES") list(TRANSFORM VTK_FEATURE_OPTIONS REPLACE "=OFF" "=DONT_WANT") if("qt" IN_LIST FEATURES) file(READ "${CURRENT_INSTALLED_DIR}/share/qtbase/vcpkg_abi_info.txt" qtbase_abi_info) if(qtbase_abi_info MATCHES "(^|;)gles2(;|$)") message(FATAL_ERROR "VTK assumes qt to be build with desktop opengl. As such trying to build vtk with qt using GLES will fail.") # This should really be a configure error but using this approach doesn't require patching. endif() if(NOT EXISTS "${CURRENT_HOST_INSTALLED_DIR}/tools/Qt6/bin/qmlplugindump${VCPKG_HOST_EXECUTABLE_SUFFIX}") list(APPEND VTK_FEATURE_OPTIONS -DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick=NO) endif() endif() if("python" IN_LIST FEATURES) vcpkg_get_vcpkg_installed_python(PYTHON3) list(APPEND ADDITIONAL_OPTIONS -DPython3_FIND_REGISTRY=NEVER "-DPython3_EXECUTABLE:PATH=${PYTHON3}" "-DVTK_PYTHON_SITE_PACKAGES_SUFFIX=${PYTHON3_SITE}" # from vcpkg-port-config.cmake ) #VTK_PYTHON_SITE_PACKAGES_SUFFIX should be set to the install dir of the site-packages endif() if ("paraview" IN_LIST FEATURES OR "opengl" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES -DVTK_MODULE_ENABLE_VTK_RenderingLICOpenGL2=YES -DVTK_MODULE_ENABLE_VTK_RenderingAnnotation=YES -DVTK_MODULE_ENABLE_VTK_DomainsChemistryOpenGL2=YES -DVTK_MODULE_ENABLE_VTK_FiltersParallelDIY2=YES ) endif() if ("paraview" IN_LIST FEATURES AND "python" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_WebCore=YES -DVTK_MODULE_ENABLE_VTK_WebPython=YES -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib=YES ) endif() set(use_mpi OFF) if("mpi" IN_LIST FEATURES) set(use_mpi ON) elseif(HDF5_WITH_PARALLEL) message(WARNING "${HDF5_WITH_PARALLEL} Enabling VTK MPI.") set(use_mpi ON) endif() list(APPEND ADDITIONAL_OPTIONS -DVTK_USE_MPI=${use_mpi}) if(use_mpi) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_ParallelMPI=YES) if("paraview" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_FiltersParallelFlowPaths=YES -DVTK_MODULE_ENABLE_VTK_RenderingParallelLIC=YES ) endif() if("python" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=OFF ) endif() endif() if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND ADDITIONAL_OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" ) endif() if("utf8" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DKWSYS_ENCODING_DEFAULT_CODEPAGE=CP_UTF8 ) endif() if("tbb" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_SMP_IMPLEMENTATION_TYPE=TBB ) endif() if("openmp" IN_LIST FEATURES) list(APPEND ADDITIONAL_OPTIONS -DVTK_SMP_IMPLEMENTATION_TYPE=OpenMP ) endif() if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND ADDITIONAL_OPTIONS -DVTK_MODULE_ENABLE_VTK_IOODBC=NO ) endif() # ============================================================================= # Configure & Install # We set all libraries to "system" and explicitly list the ones that should use embedded copies vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${VTK_FEATURE_OPTIONS} ${VTK_YES_NO_OPTIONS} ${ADDITIONAL_OPTIONS} -DBUILD_TESTING=OFF -DVTK_BUILD_TESTING=OFF -DVTK_BUILD_EXAMPLES=OFF -DVTK_ENABLE_REMOTE_MODULES=OFF # VTK groups to enable -DVTK_GROUP_ENABLE_StandAlone=YES -DVTK_GROUP_ENABLE_Rendering=YES -DVTK_GROUP_ENABLE_Views=YES # Disable dependencies which are not in vcpkg or not in the manifest -DVCPKG_LOCK_FIND_PACKAGE_Boost=OFF -DVTK_ENABLE_OSPRAY=OFF -DVTK_USE_TK=OFF # TCL/TK currently not included in vcpkg # Select modules / groups to install -DVTK_USE_EXTERNAL:BOOL=ON -DVTK_MODULE_ENABLE_VTK_CommonArchive=NO -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy=NO -DVTK_MODULE_ENABLE_VTK_fides=NO -DVTK_MODULE_ENABLE_VTK_FiltersReebGraph=NO -DVTK_MODULE_ENABLE_VTK_InfovisBoost=NO -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms=NO -DVTK_MODULE_ENABLE_VTK_IOADIOS2=NO -DVTK_MODULE_ENABLE_VTK_IOAlembic=NO -DVTK_MODULE_ENABLE_VTK_IOLAS=NO -DVTK_MODULE_ENABLE_VTK_IOOpenVDB=NO -DVTK_MODULE_ENABLE_VTK_IOPDAL=NO -DVTK_MODULE_ENABLE_VTK_RenderingOpenXR=NO -DVTK_MODULE_ENABLE_VTK_WrappingTools=YES -DVTK_MODULE_ENABLE_VTK_xdmf3=NO -DVTK_MODULE_USE_EXTERNAL_VTK_token:BOOL=OFF # Not yet in VCPKG # misc -DVTK_DEBUG_MODULE_ALL=ON -DVTK_DEBUG_MODULE=ON -DVTK_QT_VERSION=6 -DCMAKE_INSTALL_QMLDIR:PATH=qml "-DVTKCompileTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/vtk-compile-tools" -DVCPKG_HOST_TRIPLET=${_HOST_TRIPLET} -DCMAKE_POLICY_DEFAULT_CMP0174=NEW # cmake_parse_arguments -DCMAKE_POLICY_DEFAULT_CMP0177=NEW # install() DESTINATION paths are normalized -DCMAKE_FIND_PACKAGE_TARGETS_GLOBAL=ON # Due to Qt6::Platform not being found on Linux platform MAYBE_UNUSED_VARIABLES VTK_ENABLE_OSPRAY VTK_MODULE_ENABLE_VTK_PythonContext2D # Guarded by a conditional VTK_MODULE_ENABLE_VTK_GUISupportMFC # only windows VTK_MODULE_ENABLE_VTK_vtkm VTK_MODULE_ENABLE_VTK_xdmf3 VTK_MODULE_USE_EXTERNAL_VTK_mpi4py # Some subprojects CMAKE_POLICY_DEFAULT_CMP0174 CMAKE_POLICY_DEFAULT_CMP0177 # Only with Qt CMAKE_INSTALL_QMLDIR VTK_QT_VERSION # Only with Qt # When working properly these should be unused VCPKG_LOCK_FIND_PACKAGE_Boost VCPKG_LOCK_FIND_PACKAGE_CGNS VCPKG_LOCK_FIND_PACKAGE_LibHaru VCPKG_LOCK_FIND_PACKAGE_NetCDF VCPKG_LOCK_FIND_PACKAGE_PROJ VCPKG_LOCK_FIND_PACKAGE_SEACASExodus VCPKG_LOCK_FIND_PACKAGE_SEACASIoss VCPKG_LOCK_FIND_PACKAGE_SQLite3 VCPKG_LOCK_FIND_PACKAGE_THEORA ) vcpkg_cmake_install() vcpkg_copy_pdbs() # ============================================================================= # Fixup target files vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/vtk-${VTK_SHORT_VERSION}) # ============================================================================= # Clean-up other directories # Delete the debug binary TOOL_NAME that is not required function(_vtk_remove_debug_tool TOOL_NAME) set(filename "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") if(EXISTS "${filename}") file(REMOVE "${filename}") endif() set(filename "${CURRENT_PACKAGES_DIR}/debug/bin/${TOOL_NAME}d${VCPKG_TARGET_EXECUTABLE_SUFFIX}") if(EXISTS "${filename}") file(REMOVE "${filename}") endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug) # we also have to bend the lines referencing the tools in VTKTargets-debug.cmake # to make them point to the release version of the tools file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-debug.cmake" VTK_TARGETS_CONTENT_DEBUG) string(REPLACE "debug/bin/${TOOL_NAME}" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_DEBUG "${VTK_TARGETS_CONTENT_DEBUG}") string(REPLACE "tools/vtk/${TOOL_NAME}d" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_DEBUG "${VTK_TARGETS_CONTENT_DEBUG}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-debug.cmake" "${VTK_TARGETS_CONTENT_DEBUG}") endif() endfunction() # Move the release binary TOOL_NAME from bin to tools function(_vtk_move_release_tool TOOL_NAME) set(old_filename "${CURRENT_PACKAGES_DIR}/bin/${TOOL_NAME}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") if(EXISTS "${old_filename}") file(INSTALL "${old_filename}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/vtk" USE_SOURCE_PERMISSIONS) file(REMOVE "${old_filename}") endif() if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release) # we also have to bend the lines referencing the tools in VTKTargets-release.cmake # to make them point to the tool folder file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-release.cmake" VTK_TARGETS_CONTENT_RELEASE) string(REPLACE "bin/${TOOL_NAME}" "tools/vtk/${TOOL_NAME}" VTK_TARGETS_CONTENT_RELEASE "${VTK_TARGETS_CONTENT_RELEASE}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/VTK-targets-release.cmake" "${VTK_TARGETS_CONTENT_RELEASE}") endif() endfunction() set(VTK_TOOLS vtkEncodeString-${VTK_SHORT_VERSION} vtkHashSource-${VTK_SHORT_VERSION} vtkWrapTclInit-${VTK_SHORT_VERSION} vtkWrapTcl-${VTK_SHORT_VERSION} vtkWrapPythonInit-${VTK_SHORT_VERSION} vtkWrapPython-${VTK_SHORT_VERSION} vtkWrapJava-${VTK_SHORT_VERSION} vtkWrapHierarchy-${VTK_SHORT_VERSION} vtkParseJava-${VTK_SHORT_VERSION} vtkParseOGLExt-${VTK_SHORT_VERSION} vtkProbeOpenGLVersion-${VTK_SHORT_VERSION} vtkTestOpenGLVersion-${VTK_SHORT_VERSION} vtkpython pvtkpython ) # TODO: Replace with vcpkg_copy_tools if known which tools are built with which feature # or add and option to vcpkg_copy_tools which does not require the tool to be present foreach(TOOL_NAME IN LISTS VTK_TOOLS) _vtk_remove_debug_tool("${TOOL_NAME}") _vtk_move_release_tool("${TOOL_NAME}") endforeach() if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/vtktoken-9.3.dll" AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") # vendored "token" library can be only build as a shared library set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) elseif(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") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/vtk") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/CMakeFiles/vtkpythonmodules/static_python") #python headers file(GLOB_RECURSE STATIC_PYTHON_FILES "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/CMakeFiles/*/static_python/*.h") file(INSTALL ${STATIC_PYTHON_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}") endif() endif() #remove one get_filename_component(_vtk_module_import_prefix "${_vtk_module_import_prefix}" DIRECTORY) from vtk-prefix.cmake and VTK-vtk-module-properties and vtk-python.cmake set(filenames_fix_prefix vtk-prefix VTK-vtk-module-properties vtk-python) foreach(name IN LISTS filenames_fix_prefix) if(EXISTS "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake") file(READ "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake" _contents) string(REPLACE [[set(_vtk_module_import_prefix "${CMAKE_CURRENT_LIST_DIR}") get_filename_component(_vtk_module_import_prefix "${_vtk_module_import_prefix}" DIRECTORY)]] [[set(_vtk_module_import_prefix "${CMAKE_CURRENT_LIST_DIR}")]] _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake" "${_contents}") else() debug_message("FILE:${CURRENT_PACKAGES_DIR}/share/vtk/${name}.cmake does not exist! No prefix correction!") endif() endforeach() # Use vcpkg provided find method file(REMOVE "${CURRENT_PACKAGES_DIR}/share/${PORT}/FindEXPAT.cmake") if(EXISTS "${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}/vtkChemistryConfigure.h") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/vtk-${VTK_SHORT_VERSION}/vtkChemistryConfigure.h" "${SOURCE_PATH}" "not/existing" IGNORE_UNCHANGED) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/vtk/VTK-vtk-module-properties.cmake" "_vtk_module_import_prefix}/lib/vtk-9.3/hierarchy" "_vtk_module_import_prefix}$<$:/debug>/lib/vtk-9.3/hierarchy") file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/share/licenses" "${CURRENT_PACKAGES_DIR}/share/${PORT}/licenses") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt" COMMENT [[ This file presents the top-level Copyright.txt. Additional licenses and notes are located in the licenses directory. ]]) ================================================ FILE: ports/vtk/pythonwrapper.patch ================================================ diff --git a/CMake/vtkModuleWrapPython.cmake b/CMake/vtkModuleWrapPython.cmake index 5d2c2e1bf..e33a16d68 100644 --- a/CMake/vtkModuleWrapPython.cmake +++ b/CMake/vtkModuleWrapPython.cmake @@ -152,23 +152,26 @@ function (_vtk_module_wrap_python_sources module sources classes) set(_vtk_python_genex_compile_definitions "") set(_vtk_python_genex_include_directories "") if (_vtk_python_genex_allowed) set(_vtk_python_genex_compile_definitions "$") set(_vtk_python_genex_include_directories "$") + set(_vtk_python_genex_interface_include_directories + "$") else () if (NOT DEFINED ENV{CI}) message(AUTHOR_WARNING "Python wrapping is not using target-local compile definitions or " "include directories. This may affect generation of the Python " "wrapper sources for the ${module} module. Use CMake 3.19+ to " "guarantee intended behavior.") endif () endif () file(GENERATE OUTPUT "${_vtk_python_args_file}" CONTENT "$<$:\n-D\'$\'>\n $<$:\n-I\'$\'>\n +$<$:\n-I\'$\'>\n $<$:\n--types \'$\'>\n") set(_vtk_python_sources) ================================================ FILE: ports/vtk/remove-prefix-changes.patch ================================================ diff --git a/CMake/vtk-config.cmake.in b/CMake/vtk-config.cmake.in index 9f095ba..8cf7ee2 100644 --- a/CMake/vtk-config.cmake.in +++ b/CMake/vtk-config.cmake.in @@ -114,8 +114,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/vtk-prefix.cmake") set("${CMAKE_FIND_PACKAGE_NAME}_PREFIX_PATH" "${_vtk_module_import_prefix}") unset(_vtk_module_import_prefix) -list(INSERT CMAKE_PREFIX_PATH 0 - "${${CMAKE_FIND_PACKAGE_NAME}_PREFIX_PATH}") set("${CMAKE_FIND_PACKAGE_NAME}_VERSION" "@VTK_MAJOR_VERSION@.@VTK_MINOR_VERSION@.@VTK_BUILD_VERSION@") set("${CMAKE_FIND_PACKAGE_NAME}_MAJOR_VERSION" "@VTK_MAJOR_VERSION@") ================================================ FILE: ports/vtk/usage ================================================ The package vtk provides CMake targets: find_package(VTK REQUIRED) target_link_libraries(main PRIVATE ${VTK_LIBRARIES}) ================================================ FILE: ports/vtk/use-compile-tools.diff ================================================ diff --git a/CMake/vtk-config.cmake.in b/CMake/vtk-config.cmake.in index 3018421d..a14976ae 100644 --- a/CMake/vtk-config.cmake.in +++ b/CMake/vtk-config.cmake.in @@ -1,3 +1,16 @@ + +set(VTKCompileTools_DIR "@VTKCompileTools_DIR@" CACHE PATH "vcpkg") +mark_as_advanced(VTKCompileTools_DIR) +include(CMakeFindDependencyMacro) +find_dependency(VTKCompileTools CONFIG) +if(NOT TARGET VTK::WrapHierarchy) + add_executable(VTK::WrapHierarchy ALIAS VTKCompileTools::WrapHierarchy) + add_executable(VTK::WrapPython ALIAS VTKCompileTools::WrapPython) + add_executable(VTK::WrapPythonInit ALIAS VTKCompileTools::WrapPythonInit) + add_executable(VTK::ParseJava ALIAS VTKCompileTools::ParseJava) + add_executable(VTK::WrapJava ALIAS VTKCompileTools::WrapJava) +endif() + #[==[.md # vtk-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 8df64eb1..67a948e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -463,6 +463,9 @@ if (NOT DEFINED vtk_cmake_destination) set(vtk_cmake_destination "${CMAKE_INSTALL_LIBDIR}/cmake/vtkcompiletools${vtk_version_suffix}") set(vtk_target_package PACKAGE "${vtk_install_export}") + else() + # Pull variables for wrapping command invocations into top-level scope + find_package(VTKCompileTools REQUIRED) endif () endif () install(TARGETS vtkbuild EXPORT "${vtk_install_export}") diff --git a/Wrapping/Tools/CMakeLists.txt b/Wrapping/Tools/CMakeLists.txt index 05aa805f..dbec670a 100644 --- a/Wrapping/Tools/CMakeLists.txt +++ b/Wrapping/Tools/CMakeLists.txt @@ -49,6 +49,10 @@ vtk_module_add_module("${ns}::WrappingTools" SOURCES ${sources} HEADERS ${headers}) +if (NOT VTK_BUILD_COMPILE_TOOLS_ONLY) + return() +endif() + if (NOT TARGET "${ns}::WrapHierarchy") vtk_module_add_executable(WrapHierarchy DEVELOPMENT ================================================ FILE: ports/vtk/vcpkg.json ================================================ { "name": "vtk", "version-semver": "9.3.0-pv5.12.1", "port-version": 15, "description": "Software system for 3D computer graphics, image processing, and visualization", "homepage": "https://github.com/Kitware/VTK", "license": null, "dependencies": [ "double-conversion", "eigen3", "expat", "exprtk", "fast-float", "fmt", { "name": "freetype", "default-features": false, "features": [ "zlib" ] }, "gl2ps", "glew", { "name": "hdf5", "default-features": false, "features": [ "hl", "zlib" ] }, "jsoncpp", "libjpeg-turbo", "liblzma", "libpng", { "name": "libxml2", "default-features": false, "features": [ "zlib" ] }, "lz4", "nlohmann-json", "pegtl", "pugixml", { "name": "tiff", "default-features": false }, "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "verdict", { "name": "vtk-compile-tools", "host": true }, "zlib" ], "default-features": [ "cgns", { "name": "fontconfig", "platform": "android | linux" }, "libharu", "libtheora", "netcdf", "proj", "seacas", "sql" ], "features": { "all": { "description": "Build all vtk modules", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avformat", "swresample", "swscale" ] }, "libmysql", { "name": "vtk", "default-features": false, "features": [ "cgns", "fontconfig", "gdal", "geojson", "libharu", "libtheora", "mpi", "netcdf", "proj", "python", "qt", "seacas", "sql" ] }, { "name": "vtk", "default-features": false, "features": [ "atlmfc", "utf8" ], "platform": "windows" } ] }, "atlmfc": { "description": "Mfc functionality for vtk on Windows", "dependencies": [ { "name": "atlmfc", "platform": "windows" } ] }, "cgns": { "description": "CGNS functionality for VTK", "dependencies": [ { "name": "cgns", "default-features": false } ] }, "cuda": { "description": "Support CUDA compilation", "dependencies": [ "cuda" ] }, "debugleaks": { "description": "Enables vtk debug leaks detection" }, "fontconfig": { "description": "Enables fontconfig for rendering", "dependencies": [ "fontconfig" ] }, "gdal": { "description": "Support GDAL compilation", "dependencies": [ { "name": "gdal", "default-features": false } ] }, "geojson": { "description": "Convert Geo JSON format to vtkPolyData" }, "ioocct": { "description": "Build with IOOCCT module", "dependencies": [ { "name": "opencascade", "default-features": false } ] }, "libharu": { "description": "PDF functionality for VTK", "dependencies": [ { "name": "libharu", "version>=": "2.4.3" } ] }, "libtheora": { "description": "Compressed ogg functionality for VTK", "dependencies": [ "libtheora" ] }, "mpi": { "description": "MPI functionality for VTK", "dependencies": [ { "name": "hdf5", "default-features": false, "features": [ "parallel" ] }, "mpi", { "name": "seacas", "default-features": false, "features": [ "mpi" ] }, { "name": "vtk", "default-features": false, "features": [ "seacas", "vtkm" ] }, { "name": "vtk-m", "default-features": false, "features": [ "mpi" ] } ] }, "netcdf": { "description": "NetCDF functionality for VTK", "dependencies": [ { "name": "netcdf-c", "default-features": false, "features": [ "netcdf-4" ] } ] }, "opengl": { "description": "All opengl related modules" }, "openmp": { "description": "Use openmp multithreading parallel implementation" }, "openvr": { "description": "OpenVR functionality for VTK", "dependencies": [ "openvr", "sdl2" ] }, "paraview": { "description": "Build vtk modules required by paraview", "dependencies": [ "cli11", "openturns", { "name": "vtk", "default-features": false, "features": [ "libtheora", "netcdf", "qt", "seacas" ] }, { "name": "vtk", "default-features": false, "features": [ "atlmfc" ], "platform": "windows" } ] }, "proj": { "description": "Geographic projection functionality for VTK", "dependencies": [ { "name": "proj", "default-features": false } ] }, "python": { "description": "Python functionality for VTK", "dependencies": [ "python3" ] }, "qt": { "description": "Qt functionality for VTK", "dependencies": [ { "name": "qtbase", "default-features": false, "features": [ "gui", "opengl", "sql-sqlite", "widgets" ] }, "qtdeclarative", { "name": "vtk", "default-features": false, "features": [ "sql" ] } ] }, "seacas": { "description": "Exodus and IOSS functionality for VTK", "dependencies": [ { "name": "seacas", "default-features": false }, { "name": "vtk", "default-features": false, "features": [ "cgns", "netcdf" ] } ] }, "sql": { "description": "SQL functionality for VTK", "dependencies": [ "sqlite3" ] }, "tbb": { "description": "Use TBB multithreading parallel implementation", "dependencies": [ "tbb" ] }, "utf8": { "description": "Enables vtk reader/writer with utf-8 path support" }, "vtkm": { "description": "Build with vtk-m accelerator and module.", "dependencies": [ { "name": "vtk-m", "default-features": false } ] } } } ================================================ FILE: ports/vtk/vtkioss.patch ================================================ diff --git a/ThirdParty/ioss/CMakeLists.txt b/ThirdParty/ioss/CMakeLists.txt index 3066c4bb5..44e1eb1bf 100644 --- a/ThirdParty/ioss/CMakeLists.txt +++ b/ThirdParty/ioss/CMakeLists.txt @@ -5,7 +5,7 @@ vtk_module_third_party( STANDARD_INCLUDE_DIRS EXTERNAL PACKAGE SEACASIoss - TARGETS Ioss + TARGETS Ioss Ionit USE_VARIABLES SEACASIoss_INCLUDE_DIRS STANDARD_INCLUDE_DIRS) diff --git a/IO/IOSS/vtkIOSSReader.cxx b/IO/IOSS/vtkIOSSReader.cxx index 04de56cb20..b905e84a3e 100644 --- a/IO/IOSS/vtkIOSSReader.cxx +++ b/IO/IOSS/vtkIOSSReader.cxx @@ -61,6 +61,7 @@ #include VTK_IOSS(Ioss_SideBlock.h) #include VTK_IOSS(Ioss_SideSet.h) #include VTK_IOSS(Ioss_StructuredBlock.h) +#include VTK_IOSS(Iotr_Factory.h) // clang-format on #include ================================================ FILE: ports/vtk/vtkm.patch ================================================ diff --git a/Accelerators/Vtkm/Core/CMakeLists.txt b/Accelerators/Vtkm/Core/CMakeLists.txt index 397dca9f6..bc9c62ac5 100644 --- a/Accelerators/Vtkm/Core/CMakeLists.txt +++ b/Accelerators/Vtkm/Core/CMakeLists.txt @@ -1,4 +1,3 @@ -list(INSERT CMAKE_MODULE_PATH 0 - "${VTK_SOURCE_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake") +find_package(VTKm CONFIG REQUIRED) set(private_headers @@ -31,8 +31,5 @@ vtkm_add_target_information(${vtkm_accel_target} NOWRAP_HEADERS ${nowrap_headers} NOWRAP_CLASSES ${nowrap_classes} PRIVATE_HEADERS ${private_headers}) -vtk_module_set_property(VTK::AcceleratorsVTKmCore - PROPERTY JOB_POOL_COMPILE - VALUE vtkm_pool) _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmCore) diff --git a/Accelerators/Vtkm/DataModel/CMakeLists.txt b/Accelerators/Vtkm/DataModel/CMakeLists.txt index 9d5dfe100..7fea257b7 100644 --- a/Accelerators/Vtkm/DataModel/CMakeLists.txt +++ b/Accelerators/Vtkm/DataModel/CMakeLists.txt @@ -1,7 +1,6 @@ set(VTKm_NO_DEPRECATED_VIRTUAL ON) -list(INSERT CMAKE_MODULE_PATH 0 - "${VTK_SOURCE_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake") +find_package(VTKm CONFIG REQUIRED) set(sources vtkmlib/ArrayConvertersReal.cxx @@ -40,6 +39,3 @@ vtkm_add_target_information(${vtkm_accel_target} NOWRAP_CLASSES ${nowrap_classes} PRIVATE_HEADERS ${private_headers}) -vtk_module_set_property(VTK::AcceleratorsVTKmDataModel - PROPERTY JOB_POOL_COMPILE - VALUE vtkm_pool) _vtk_module_real_target(vtkm_accel_target VTK::AcceleratorsVTKmDataModel) diff --git a/Accelerators/Vtkm/Filters/CMakeLists.txt b/Accelerators/Vtkm/Filters/CMakeLists.txt index 0f51c436d..567b49197 100644 --- a/Accelerators/Vtkm/Filters/CMakeLists.txt +++ b/Accelerators/Vtkm/Filters/CMakeLists.txt @@ -1,7 +1,6 @@ set(VTKm_NO_DEPRECATED_VIRTUAL ON) -list(INSERT CMAKE_MODULE_PATH 0 - "${VTK_SOURCE_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake") +find_package(VTKm CONFIG REQUIRED) set(classes vtkmAverageToCells @@ -91,7 +90,4 @@ vtkm_add_target_information(${vtkm_accel_target} HEADERS ${headers} CLASSES ${classes}) -vtk_module_set_property(VTK::AcceleratorsVTKmFilters - PROPERTY JOB_POOL_COMPILE - VALUE vtkm_pool) vtk_module_link(VTK::AcceleratorsVTKmFilters PRIVATE diff --git a/CMake/vtk-config.cmake.in b/CMake/vtk-config.cmake.in index a8c40085a..764298f0e 100644 --- a/CMake/vtk-config.cmake.in +++ b/CMake/vtk-config.cmake.in @@ -126,9 +126,7 @@ set("${CMAKE_FIND_PACKAGE_NAME}_AVAILABLE_COMPONENTS" "@vtk_all_components@") unset("${CMAKE_FIND_PACKAGE_NAME}_FOUND") set("${CMAKE_FIND_PACKAGE_NAME}_HAS_VTKm" "@vtk_has_vtkm@") if (${CMAKE_FIND_PACKAGE_NAME}_HAS_VTKm) - find_package(VTKm - PATHS "${CMAKE_CURRENT_LIST_DIR}/vtkm" - NO_DEFAULT_PATH) + find_package(VTKm CONFIG REQUIRED) if (NOT VTKm_FOUND) set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0) endif () diff --git a/ThirdParty/vtkm/CMakeLists.txt b/ThirdParty/vtkm/CMakeLists.txt index 8cfbf92b0..ad78cc8f5 100644 --- a/ThirdParty/vtkm/CMakeLists.txt +++ b/ThirdParty/vtkm/CMakeLists.txt @@ -1,15 +1,34 @@ -vtk_module_third_party_internal( - LICENSE_FILES - "vtkvtkm/vtk-m/LICENSE.txt" - SPDX_LICENSE_IDENTIFIER - "BSD-3-Clause" - SPDX_COPYRIGHT_TEXT - "Copyright (c) 2014-2023 Kitware Inc., National Technology & Engineering Solutions of Sandia, LLC (NTESS)," - "UT-Battelle, LLC., Los Alamos National Security, LLC." - SPDX_DOWNLOAD_LOCATION - "git+https://gitlab.kitware.com/vtk/vtk-m.git@2.0.0@v2.0.0" - VERSION - "2.0.0" - SUBDIRECTORY vtkvtkm - STANDARD_INCLUDE_DIRS - INTERFACE) +message(STATUS "VTK_MODULE_USE_EXTERNAL_VTK_vtkm: ${VTK_MODULE_USE_EXTERNAL_VTK_vtkm}") +if(TRUE) + message(STATUS "Searching for external VTKm") + find_package(VTKm CONFIG REQUIRED) + if(TARGET vtkm::compiler_flags) + get_target_property(VTKm_INCLUDE_DIRS vtkm::compiler_flags INTERFACE_INCLUDE_DIRECTORIES) + message(STATUS "INCLUDE: ${VTKm_INCLUDE_DIRS}") + get_target_property(VTKm_DIY_INCLUDE_DIRS vtkm::vtkmdiy INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(VTKm_OPTION_INCLUDE_DIRS vtkm::optionparser INTERFACE_INCLUDE_DIRECTORIES) + if(MSVC) + set(VTKm_DEFINITIONS /bigobj) + endif() + else() + message(FATAL_ERROR "VTKM target missing") + endif() + if(VTKM_FOUND) + message(STATUS "Found VTKm") + endif() +endif() + +vtk_module_third_party( + INTERNAL + HEADER_ONLY + LICENSE_FILES "vtkvtkm/vtk-m/LICENSE.txt" + VERSION "master" + SUBDIRECTORY vtkvtkm + STANDARD_INCLUDE_DIRS + INTERFACE + EXTERNAL + PACKAGE VTKm + TARGETS vtkm::cont vtkm::filter vtkm::vtkmdiy vtkm::optionparser + #LIBRARIES vtkm_cont vtkm_filter vtkm_diy vtkm_optionparser vtkm_taotuple + INCLUDE_DIRS VTKm_INCLUDE_DIRS VTKm_DIY_INCLUDE_DIRS VTKm_OPTION_INCLUDE_DIRS +) diff --git a/ThirdParty/vtkm/vtk.module b/ThirdParty/vtkm/vtk.module index a8e4dad0f..c7bbbf0e8 100644 --- a/ThirdParty/vtkm/vtk.module +++ b/ThirdParty/vtkm/vtk.module @@ -3,5 +3,7 @@ NAME PRIVATE_DEPENDS # While not needed to satisfy symbols, this is necessary to guarantee that # VTK_SMP_IMPLEMENTATION_TYPE is available when configuring vtk-m. - VTK::CommonCore + # VTK::CommonCore +LIBRARY_NAME + VTKm THIRD_PARTY diff --git a/Accelerators/Vtkm/Filters/CMakeLists.txt b/Accelerators/Vtkm/Filters/CMakeLists.txt index 7c1b10410c..610bf831fb 100644 --- a/Accelerators/Vtkm/Filters/CMakeLists.txt +++ b/Accelerators/Vtkm/Filters/CMakeLists.txt @@ -91,8 +91,8 @@ vtk_module_add_module(VTK::AcceleratorsVTKmFilters CLASSES ${classes}) vtk_module_link(VTK::AcceleratorsVTKmFilters PRIVATE - vtkm_worklet - vtkm_filter) + vtkm::worklet + vtkm::filter) vtk_module_definitions(VTK::AcceleratorsVTKmFilters PUBLIC "VTK_ENABLE_VTKM_OVERRIDES=$") ================================================ FILE: ports/vtk/zspace.diff ================================================ diff --git a/Rendering/ZSpace/vtk.module b/Rendering/ZSpace/vtk.module index cf6b6a2d6365b763f80e2e166928ebc2176febdf..1e6869ee05da1de1eea38207d8cfab7cce10d646 100644 --- a/Rendering/ZSpace/vtk.module +++ b/Rendering/ZSpace/vtk.module @@ -8,6 +8,8 @@ SPDX_LICENSE_IDENTIFIER BSD-3-Clause SPDX_COPYRIGHT_TEXT Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen +CONDITION + WIN32 DEPENDS VTK::CommonCore VTK::CommonDataModel ================================================ FILE: ports/vtk-compile-tools/name-suffix.diff ================================================ diff --git a/Wrapping/Tools/CMakeLists.txt b/Wrapping/Tools/CMakeLists.txt index 05aa805f..911a032f 100644 --- a/Wrapping/Tools/CMakeLists.txt +++ b/Wrapping/Tools/CMakeLists.txt @@ -46,6 +46,7 @@ set_property(SOURCE vtkParseMain.c set(_vtk_module_no_namespace_abi_mangling ON) vtk_module_add_module("${ns}::WrappingTools" + LIBRARY_NAME_SUFFIX "_CompileTools" # distinct from port vtk SOURCES ${sources} HEADERS ${headers}) ================================================ FILE: ports/vtk-compile-tools/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # tools set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) set(SHORT_VERSION 9.3) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Kitware/VTK REF 09a76bc55b37caad94d0d8ebe865caaed1b438af # v9.3.x used by ParaView 5.12.0 SHA512 396ee901fafacae8aef860b9c9c17cb92ae8b4969527fd271ad8dd9f6a9e0dc8e3dc807c8d43cc585608ad101a64edcd7aff49e1580c7a61a817c2ea8e2655f5 HEAD_REF master PATCHES name-suffix.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_INSTALL_INCLUDEDIR=install/${PORT} -DVTK_BUILD_COMPILE_TOOLS_ONLY=ON -DVTK_ENABLE_LOGGING=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Not adjusting the directory name: The package is meant to be # selected either explicitly, or transitively via package vtk. vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/vtkcompiletools-${SHORT_VERSION}) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/vtkcompiletools-config-version.cmake" "set(PACKAGE_VERSION_UNSUITABLE TRUE)" "# allow host tools on any arch") vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES vtkParseJava-${SHORT_VERSION} vtkWrapHierarchy-${SHORT_VERSION} vtkWrapJava-${SHORT_VERSION} vtkWrapPython-${SHORT_VERSION} vtkWrapPythonInit-${SHORT_VERSION}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt") ================================================ FILE: ports/vtk-compile-tools/vcpkg.json ================================================ { "name": "vtk-compile-tools", "version-semver": "9.3.0-pv5.12.1", "port-version": 1, "description": "Tools needed for crosscompiling VTK", "homepage": "https://github.com/Kitware/VTK", "license": null, "supports": "native", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vtk-dicom/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dgobbi/vtk-dicom REF "v${VERSION}" SHA512 ddc294acc60d18f9d60a00fb4e15fbc30743262ec041e4f0f0e6cbccdc821f2e7def4679446e55a9f3a658072c81c2e4b31d017cdc00760d7942452a85f051e8 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES gdcm USE_GDCM ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_PROGRAMS=OFF -DBUILD_EXAMPLES=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/dicom-0.8 PACKAGE_NAME dicom) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright.txt") ================================================ FILE: ports/vtk-dicom/vcpkg.json ================================================ { "name": "vtk-dicom", "version": "0.8.17", "description": "DICOM for VTK", "homepage": "https://github.com/dgobbi/vtk-dicom", "license": "BSD-3-Clause", "dependencies": [ { "name": "python3", "host": true, "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vtk", "default-features": false }, "zlib" ], "features": { "gdcm": { "description": "Use gdcm for decompressing DICOM files.", "dependencies": [ "gdcm" ] } } } ================================================ FILE: ports/vtk-m/fix-macos-15-6.patch ================================================ diff --git a/CMake/VTKmCompilerFlags.cmake b/CMake/VTKmCompilerFlags.cmake index 2a7f484..6644468 100644 --- a/CMake/VTKmCompilerFlags.cmake +++ b/CMake/VTKmCompilerFlags.cmake @@ -136,6 +136,9 @@ elseif(VTKM_COMPILER_IS_ICC) elseif(VTKM_COMPILER_IS_GNU OR VTKM_COMPILER_IS_CLANG) set(cxx_flags -Wall -Wcast-align -Wextra -Wpointer-arith -Wformat -Wformat-security -Wshadow -Wunused -fno-common -Wno-unused-function) set(cuda_flags -Xcompiler=-Wall,-Wcast-align,-Wpointer-arith,-Wformat,-Wformat-security,-Wshadow,-fno-common,-Wunused,-Wno-unknown-pragmas,-Wno-unused-local-typedefs,-Wno-unused-function) + if(APPLE) + list(APPEND cxx_flags -Wno-missing-template-arg-list-after-template-kw) + endif() #Clang does not support the -Wchar-subscripts flag for warning if an array #subscript has a char type. ================================================ FILE: ports/vtk-m/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index cfa8524..5b76180 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -420,7 +420,7 @@ install(FILES ${VTKm_BINARY_DIR}/config/vtkm_config.mk configure_file(${VTKm_SOURCE_DIR}/config/vtkm.pc.in ${VTKm_BINARY_DIR}/config/vtkm.pc @ONLY) install(FILES ${VTKm_BINARY_DIR}/config/vtkm.pc - DESTINATION ${VTKm_INSTALL_SHARE_DIR} + DESTINATION ${VTKm_INSTALL_LIB_DIR}/pkgconfig ) include(VTKmInstallCMakePackage) ================================================ FILE: ports/vtk-m/portfile.cmake ================================================ # VENDORED DEPENDENCIES! # TODO: Should be replaced in the future with VCPKG internal versions # add_subdirectory(thirdparty/diy) # add_subdirectory(thirdparty/lodepng) # if(VTKm_ENABLE_LOGGING) # add_subdirectory(thirdparty/loguru) # endif() # add_subdirectory(thirdparty/optionparser) # add_subdirectory(thirdparty/taotuple) # add_subdirectory(thirdparty/lcl) vcpkg_check_features (OUT_FEATURE_OPTIONS OPTIONS FEATURES cuda VTKm_ENABLE_CUDA omp VTKm_ENABLE_OPENMP tbb VTKm_ENABLE_TBB mpi VTKm_ENABLE_MPI double VTKm_USE_DOUBLE_PRECISION kokkos VTKm_ENABLE_KOKKOS # No port yet ) if("cuda" IN_LIST FEATURES) vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT cuda_toolkit_root) list(APPEND OPTIONS "-DCMAKE_CUDA_COMPILER=${NVCC}" -DCMAKE_CUDA_ARCHITECTURES=all-major # override with VCPKG_CMAKE_CONFIGURE_OPTIONS ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") message(STATUS "Feature CUDA forces static build!") endif() set(VCPKG_LIBRARY_LINKAGE "static") # CUDA forces static build. endif() # For port customizations on unix systems. # Please feel free to make these port features if it makes any sense #list(APPEND OPTIONS -DVTKm_ENABLE_GL_CONTEXT=ON) # or #list(APPEND OPTIONS -DVTKm_ENABLE_EGL_CONTEXT=ON) # or #list(APPEND OPTIONS -DVTKm_ENABLE_OSMESA_CONTEXT=ON) vcpkg_from_gitlab(GITLAB_URL "https://gitlab.kitware.com" OUT_SOURCE_PATH SOURCE_PATH REPO vtk/vtk-m REF v${VERSION} SHA512 eee8245f8ec4a960dfb55e4372fb4c63b6fcafcea33d23cec5f6ac411e531ac3bd2cd830bffeb9b2d44ad94e67bee560952734ab55390cb9a8b690037e380f91 PATCHES fix-macos-15-6.patch pkgconfig.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DBUILD_TESTING=OFF -DVTKm_ENABLE_BENCHMARKS=OFF -DVTKm_ENABLE_CPACK=OFF -DVTKm_ENABLE_DEVELOPER_FLAGS=OFF -DVTKm_ENABLE_DOCUMENTATION=OFF -DVTKm_ENABLE_EXAMPLES=OFF -DVTKm_ENABLE_GPU_MPI=OFF -DVTKm_ENABLE_HDF5_IO=OFF -DVTKm_ENABLE_RENDERING=ON -DVTKm_ENABLE_TESTING=OFF -DVTKm_ENABLE_TUTORIALS=OFF -DVTKm_NO_INSTALL_README_LICENSE=ON -DVTKm_USE_64BIT_IDS=ON -DVTKm_USE_DEFAULT_TYPES_FOR_VTK=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/vtkm-2.3" PACKAGE_NAME vtkm-2.3) vcpkg_fixup_pkgconfig() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/vtkm-2.3/VTKmConfig.cmake" "${CURRENT_BUILDTREES_DIR}" ":not/existing/buildtree:") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/vtkm-2.3/VTKmConfig.cmake" [[/lib/cmake/vtkm-2.3"]] [[/share/vtkm-2.3"]]) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/vtk-m/vcpkg.json ================================================ { "name": "vtk-m", "version": "2.3.0", "description": "VTK-m is a toolkit of scientific visualization algorithms for emerging processor architectures.", "homepage": "https://gitlab.kitware.com/vtk/vtk-m/", "license": null, "supports": "!x86 & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Use the NVIDIA CUDA device adapter.", "dependencies": [ "cuda" ] }, "double": { "description": "Use double precision in floating point calculations" }, "mpi": { "description": "Use the MPI controller.", "dependencies": [ "mpi" ] }, "omp": { "description": "Use the OpenMP device adapter." }, "tbb": { "description": "Use the Intel TBB device adapter.", "dependencies": [ "tbb" ] } } } ================================================ FILE: ports/vulkan/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(FIND_VULKAN LANGUAGES C) find_package(Vulkan ${VCPKG_VULKAN_VERSION} ${VCPKG_VULKAN_COMPONENTS}) if(NOT Vulkan_FOUND) set(CMAKE_FIND_DEBUG_MODE ON) find_package(Vulkan ${VCPKG_VULKAN_VERSION} ${VCPKG_VULKAN_COMPONENTS}) endif() set(OUTFILE "${CMAKE_CURRENT_BINARY_DIR}/vulkan-result.cmake" CACHE FILEPATH "") configure_file("vulkan-result.cmake.in" "${OUTFILE}" @ONLY ESCAPE_QUOTES) ================================================ FILE: ports/vulkan/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(vulkan_result_file "${CURRENT_BUILDTREES_DIR}/vulkan-${TARGET_TRIPLET}.cmake.log") vcpkg_cmake_configure( SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" OPTIONS_RELEASE "-DOUTFILE=${vulkan_result_file}" ) include("${vulkan_result_file}") if(DETECTED_Vulkan_FOUND) message(STATUS "Found Vulkan ${DETECTED_Vulkan_VERSION} (${DETECTED_Vulkan_LIBRARIES})") else() set(message "Vulkan wasn't found.") if(VCPKG_TARGET_IS_ANDROID AND DETECTED_ANDROID_NATIVE_API_LEVEL AND DETECTED_ANDROID_NATIVE_API_LEVEL LESS "24") string(APPEND message " Vulkan support from the Android NDK requires API level 24 (found: ${DETECTED_ANDROID_NATIVE_API_LEVEL})") endif() message(FATAL_ERROR "${message}") endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" "${CMAKE_CURRENT_LIST_DIR}/vulkan-result.cmake.in" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/detect-vulkan" ) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" [[ This is a stub package. Copyright and license information is provided with Vulkan headers and loader. For Android, the loader is provided by the NDK. ]]) ================================================ FILE: ports/vulkan/usage ================================================ vulkan is compatible with built-in CMake targets: # https://cmake.org/cmake/help/latest/module/FindVulkan.html find_package(Vulkan REQUIRED) target_link_libraries(main PRIVATE Vulkan::Vulkan) ================================================ FILE: ports/vulkan/vcpkg.json ================================================ { "name": "vulkan", "version-date": "2023-12-17", "description": [ "A stub package that ensures that Vulkan headers and a loader are available.", "On Android, the NDK provides a loader at API level 24 or higher." ], "license": null, "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, "vulkan-headers", { "name": "vulkan-loader", "platform": "!android" } ] } ================================================ FILE: ports/vulkan/vulkan-result.cmake.in ================================================ set(DETECTED_Vulkan_FOUND "@Vulkan_FOUND@") set(DETECTED_Vulkan_VERSION "@Vulkan_VERSION@") set(DETECTED_Vulkan_INCLUDE_DIRS "@Vulkan_INCLUDE_DIRS@") set(DETECTED_Vulkan_LIBRARIES "@Vulkan_LIBRARIES@") set(DETECTED_ANDROID_NATIVE_API_LEVEL "@ANDROID_NATIVE_API_LEVEL@") ================================================ FILE: ports/vulkan-extensionlayer/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-ExtensionLayer REF "vulkan-sdk-${VERSION}" SHA512 4df899af58b9dad6f5bc933af18b39f6296add738f80828b239b4cd8f516b3bcae22d52e8a2217f7d907c261f3f0f489a6cad3039d351e9dd3f9282b870dba7c HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_TARGET_IS_ANDROID) set(VCPKG_POLICY_SKIP_USAGE_INSTALL_CHECK enabled) else() file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() file(GLOB LICENSE_FILES LIST_DIRECTORIES false "${SOURCE_PATH}/LICENSES/*") if(EXISTS "${SOURCE_PATH}/LICENSE") list(APPEND LICENSE_FILES "${SOURCE_PATH}/LICENSE") endif() vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES}) ================================================ FILE: ports/vulkan-extensionlayer/usage ================================================ vulkan-extensionlayer provides a JSON manifest directory which can be added to the environment variable VK_ADD_LAYER_PATH: Windows: /bin Other: /share/vulkan/explicit_layers.d ================================================ FILE: ports/vulkan-extensionlayer/vcpkg.json ================================================ { "name": "vulkan-extensionlayer", "version": "1.4.341.0", "description": "Layer providing Vulkan features when native support is unavailable", "homepage": "https://github.com/KhronosGroup/Vulkan-ExtensionLayer", "license": "Apache-2.0", "supports": "!static", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers", "vulkan-utility-libraries" ] } ================================================ FILE: ports/vulkan-headers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-Headers REF "vulkan-sdk-${VERSION}" SHA512 aa6d517304663c55c67bdd8578518a399a1188c6c3a92fac4ee29738f96f6a66b61ebc9c606c20d52f5cbb47976757bfcab35576eca7c839dfda1cdd65074c29 HEAD_REF main ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DVULKAN_HEADERS_ENABLE_MODULE=OFF -DVULKAN_HEADERS_ENABLE_TESTS=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vulkan-headers/usage ================================================ Vulkan-Headers provides official find_package support: find_package(VulkanHeaders CONFIG) target_link_libraries(main PRIVATE Vulkan::Headers) ================================================ FILE: ports/vulkan-headers/vcpkg.json ================================================ { "name": "vulkan-headers", "version": "1.4.341.0", "description": "Vulkan header files and API registry", "homepage": "https://github.com/KhronosGroup/Vulkan-Headers", "license": "Apache-2.0 OR MIT", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vulkan-hpp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vulkan-hpp/usage ================================================ vulkan-hpp is deprecated. Please use port vulkan-headers instead. vulkan-hpp can be used with CMake: find_package(VulkanHeaders CONFIG) target_link_libraries(main PRIVATE Vulkan::Headers) ================================================ FILE: ports/vulkan-hpp/vcpkg.json ================================================ { "name": "vulkan-hpp", "version-string": "deprecated", "description": "[deprecated] Header only C++ bindings for the Vulkan C API", "license": null, "supports": "!uwp & !xbox", "dependencies": [ "vulkan-headers" ] } ================================================ FILE: ports/vulkan-loader/link-directfb.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index a30752492..b429a5235 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,6 +144,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD|DragonFly|GNU") target_compile_definitions(platform_wsi INTERFACE VK_USE_PLATFORM_DIRECTFB_EXT) # vulkan_core.h includes but the header is installed to directfb/directfb.h target_include_directories(platform_wsi INTERFACE ${DIRECTFB_INCLUDE_DIRS} ${DIRECTFB_INCLUDE_DIRS}/directfb) + target_link_libraries(platform_wsi INTERFACE PkgConfig::DirectFB) endif() elseif(CMAKE_SYSTEM_NAME MATCHES "QNX") message(FATAL_ERROR "See BUILD.md for QNX build") ================================================ FILE: ports/vulkan-loader/portfile.cmake ================================================ set(VCPKG_LIBRARY_LINKAGE dynamic) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-Loader REF "vulkan-sdk-${VERSION}" SHA512 37492473268fbedb8d099a03bdd575f49798c34b3e6647736e271ffa584aeb865e0a227e48d5a45fcdbf217909bc78bfda6ee7288836e556553f853305e3627c HEAD_REF main PATCHES link-directfb.patch ) vcpkg_find_acquire_program(PYTHON3) # Needed to make port install vulkan.pc vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xcb BUILD_WSI_XCB_SUPPORT xlib BUILD_WSI_XLIB_SUPPORT wayland BUILD_WSI_WAYLAND_SUPPORT directfb BUILD_WSI_DIRECTFB_SUPPORT ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF -DPython3_EXECUTABLE=${PYTHON3} ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/VulkanLoader" PACKAGE_NAME VulkanLoader) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/vulkan-loader/usage ================================================ The package @PORT@ provides the vulkan loader. Please be aware of https://github.com/KhronosGroup/Vulkan-Loader/blob/main/docs/LoaderApplicationInterface.md#bundling-the-loader-with-an-application ================================================ FILE: ports/vulkan-loader/vcpkg.json ================================================ { "name": "vulkan-loader", "version": "1.4.341.0", "description": "Vulkan Development Tools", "homepage": "https://github.com/KhronosGroup/Vulkan-Loader", "license": null, "supports": "!android", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ], "features": { "directfb": { "description": "Build DirectFB WSI support", "dependencies": [ "directfb2" ] }, "wayland": { "description": "Build Wayland WSI support" }, "xcb": { "description": "Build XCB WSI support" }, "xlib": { "description": "Build Xlib WSI support" } } } ================================================ FILE: ports/vulkan-memory-allocator/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator REF "v${VERSION}" SHA512 deb5902ef8db0e329fbd5f3f4385eb0e26bdd9f14f3a2334823fb3fe18f36bc5d235d620d6e5f6fe3551ec3ea7038638899db8778c09f6d5c278f5ff95c3344b HEAD_REF master ) set(opts "") if(VCPKG_TARGET_IS_WINDOWS) set(opts "-DCMAKE_INSTALL_INCLUDEDIR=include/vma") # Vulkan SDK layout! endif() set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${opts} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME VulkanMemoryAllocator CONFIG_PATH "share/cmake/VulkanMemoryAllocator") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vulkan-memory-allocator/usage ================================================ VulkanMemoryAllocator provides official find_package support. However, it requires the user to provide the include directory containing `vulkan/vulkan.h`. There are multiple ways to achieve this and VulkanMemoryAllocator is compatible with all of them. find_package(Vulkan) # https://cmake.org/cmake/help/latest/module/FindVulkan.html, CMake 3.21+ find_package(VulkanMemoryAllocator CONFIG REQUIRED) target_link_libraries(main PRIVATE Vulkan::Vulkan GPUOpen::VulkanMemoryAllocator) or find_package(Vulkan) # CMake 3.21+ find_package(VulkanMemoryAllocator CONFIG REQUIRED) target_link_libraries(main PRIVATE Vulkan::Headers GPUOpen::VulkanMemoryAllocator) or find_package(VulkanHeaders CONFIG) # From the vulkan-headers port find_package(VulkanMemoryAllocator CONFIG REQUIRED) target_link_libraries(main PRIVATE Vulkan::Headers GPUOpen::VulkanMemoryAllocator) See the documentation for more information on setting up your project: https://gpuopen-librariesandsdks.github.io/VulkanMemoryAllocator/html/index.html ================================================ FILE: ports/vulkan-memory-allocator/vcpkg.json ================================================ { "name": "vulkan-memory-allocator", "version": "3.3.0", "description": "Easy to integrate Vulkan memory allocation library from GPUOpen", "homepage": "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator", "license": "MIT", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/vulkan-memory-allocator-hpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO YaaZ/VulkanMemoryAllocator-Hpp REF "v${VERSION}+2" SHA512 72fccbba9ad422baa0f9e9389a72ccf4aa760ea1f15ecdf6d08604d60c25969938a300db6350363841ba66a40ca7804265477faeb601e142de9d7211da08ada2 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-vulkan-memory-allocator-hpp-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/vulkan-memory-allocator-hpp/unofficial-vulkan-memory-allocator-hpp-config.cmake ================================================ add_library(unofficial::VulkanMemoryAllocator-Hpp::VulkanMemoryAllocator-Hpp INTERFACE IMPORTED) set_target_properties( unofficial::VulkanMemoryAllocator-Hpp::VulkanMemoryAllocator-Hpp PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../include" ) ================================================ FILE: ports/vulkan-memory-allocator-hpp/vcpkg.json ================================================ { "name": "vulkan-memory-allocator-hpp", "version": "3.3.0", "description": "C++ bindings for VulkanMemoryAllocator (Development branch)", "homepage": "https://github.com/YaaZ/VulkanMemoryAllocator-Hpp", "license": "CC0-1.0", "supports": "!uwp & !xbox", "dependencies": [ "vulkan", "vulkan-memory-allocator" ] } ================================================ FILE: ports/vulkan-sdk-components/LICENSE.txt ================================================ /* * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS =============================================================================================================================================== /Copyright (C) 2012 LunarG, Inc. //All rights reserved. // //Redistribution and use in source and binary forms, with or without //modification, are permitted provided that the following conditions //are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of LunarG Inc. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS //"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT //LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS //FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE //COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, //INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, //BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER //CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT //LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //POSSIBILITY OF SUCH DAMAGE. =============================================================================================================================================== #============================================================================= # Copyright 2007-2009 Kitware, Inc. # Copyright 2007-2008 Miguel A. Figueroa-Villanueva # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright_cmake.txt for details. # # This software is distributed WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the License for more information. #============================================================================= # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) ============================================================================================================================================== // // Copyright (C) 2015-2018 Google, Inc. // Copyright (C) // // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following // disclaimer in the documentation and/or other materials provided // with the distribution. // // Neither the name of 3Dlabs Inc. Ltd. nor the names of its // contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // ========================================================================================================================================== Note: This license has also been called the "New BSD License" or "Modified BSD License". See also the 2-clause BSD License. Copyright Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ========================================================================================================================================== /* * xxHash - Fast Hash algorithm * Copyright (C) 2012-2016, Yann Collet * * BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * You can contact the author at : * - xxHash homepage: http://www.xxhash.com * - xxHash source repository : https://github.com/Cyan4973/xxHash */ =========================================================================================================================================== # Copyright (C) 2018 Google, Inc. # # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # Redistributions in binary form must reproduce the above # copyright notice, this list of conditions and the following # disclaimer in the documentation and/or other materials provided # with the distribution. # # Neither the name of Google Inc. nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE # COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. ========================================================================================================================================== /* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ ============================================================================================================================================== copyright : [ Copyright (c) 2017 The Khronos Group Inc., , Permission is hereby granted, free of charge, to any person obtaining a copy, of this software and/or associated documentation files (the \Materials\"),", to deal in the Materials without restriction, including without limitation, the rights to use, copy, modify, merge, publish, distribute, sublicense,, and/or sell copies of the Materials, and to permit persons to whom the, Materials are furnished to do so, subject to the following conditions:, , The above copyright notice and this permission notice shall be included in, all copies or substantial portions of the Materials., , MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS, STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND, HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ , , THE MATERIALS ARE PROVIDED \AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS", OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL, THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING, FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS, IN THE MATERIALS. ============================================================================================================================================= CMake - Cross Platform Makefile Generator Copyright 2000-2009 Kitware, Inc., Insight Software Consortium All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of Kitware, Inc., the Insight Software Consortium, nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ------------------------------------------------------------------------------ The above copyright and license notice applies to distributions of CMake in source and binary form. Some source files contain additional notices of original copyright by their contributors; see each source for details. Third-party software packages supplied with CMake under compatible licenses provide their own copyright notices documented in corresponding subdirectories. ------------------------------------------------------------------------------ CMake was initially developed by Kitware with the following sponsorship: * National Library of Medicine at the National Institutes of Health as part of the Insight Segmentation and Registration Toolkit (ITK). * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel Visualization Initiative. * National Alliance for Medical Image Computing (NAMIC) is funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. * Kitware, Inc. ======================================================================================================================================== The authors of this software are Rob Pike and Ken Thompson. * Copyright (c) 2002 by Lucent Technologies. * Permission to use, copy, modify, and distribute this software for any * purpose without fee is hereby granted, provided that this entire notice * is included in all copies of any software which is or includes a copy * or modification of this software and in all copies of the supporting * documentation for such software. * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. ======================================================================================================================================== Copyright (c) 2015-2018 Baldur Karlsson Copyright (c) 2014 Crytek Copyright (c) 1998-2018 Third party code and tools Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ========================================================================================================================================= /* Copyright (c) 2009 Dave Gamble Copyright (c) 2015-2016 The Khronos Group Inc. Copyright (c) 2015-2016 Valve Corporation Copyright (c) 2015-2016 LunarG, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ =========================================================================================================================================== Copyright (c) 2005 - 2017 G-Truc Creation Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ========================================================================================================================================== /* The JsonCpp library's source code, including accompanying documentation, tests and demonstration applications, are licensed under the following conditions... The author (Baptiste Lepilleur) explicitly disclaims copyright in all jurisdictions which recognize such a disclaimer. In such jurisdictions, this software is released into the Public Domain. In jurisdictions which do not recognize Public Domain property (e.g. Germany as of 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is released under the terms of the MIT License (see below). In jurisdictions which recognize Public Domain property, the user of this software may choose to accept it either as 1) Public Domain, 2) under the conditions of the MIT License (see below), or 3) under the terms of dual Public Domain/MIT License conditions described here, as they choose. The MIT License is about as close to Public Domain as a license can get, and is described in clear, concise terms at: http://en.wikipedia.org/wiki/MIT_License The full text of the MIT License follows: Copyright (c) 2007-2010 Baptiste Lepilleur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ========================================================================================================================================== /** * `murmurhash.h' - murmurhash * * copyright (c) 2014 joseph werle * Copyright (c) 2015-2016 The Khronos Group Inc. * Copyright (c) 2015-2016 Valve Corporation * Copyright (c) 2015-2016 LunarG, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and/or associated documentation files (the "Materials"), to * deal in the Materials without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Materials, and to permit persons to whom the Materials are * furnished to do so, subject to the following conditions: * * The above copyright notice(s) and this permission notice shall be included in * all copies or substantial portions of the Materials. * * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE * USE OR OTHER DEALINGS IN THE MATERIALS. */ ========================================================================================================================================= Licenced as X11: http://www.kryogenix.org/code/browser/licence.html This basically means: do what you want with it. ========================================================================================================================================= /////////////////////////////////////////////////////////////////////////////////// /// OpenGL Mathematics (glm.g-truc.net) /// /// Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net) /// Permission is hereby granted, free of charge, to any person obtaining a copy /// of this software and associated documentation files (the "Software"), to deal /// in the Software without restriction, including without limitation the rights /// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell /// copies of the Software, and to permit persons to whom the Software is /// furnished to do so, subject to the following conditions: /// /// The above copyright notice and this permission notice shall be included in /// all copies or substantial portions of the Software. /// /// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR /// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, /// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE /// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, /// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN /// THE SOFTWARE. /// /// @ref core /// @file glm/common.hpp /// @date 2013-12-24 / 2013-12-24 /// @author Christophe Riccio /////////////////////////////////////////////////////////////////////////////////// ========================================================================================================================================== // LICENSE // // This software is in the public domain. Where that dedication is not // recognized, you are granted a perpetual, irrevocable license to copy, // distribute, and modify this file as you see fit. // ========================================================================================================================================== Simple DirectMedia Layer Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ========================================================================================================================================= /****************************************************************************\ Copyright (c) 2002, NVIDIA Corporation. NVIDIA Corporation("NVIDIA") supplies this software to you in consideration of your agreement to the following terms, and your use, installation, modification or redistribution of this NVIDIA software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, modify or redistribute this NVIDIA software. In consideration of your agreement to abide by the following terms, and subject to these terms, NVIDIA grants you a personal, non-exclusive license, under NVIDIA's copyrights in this original NVIDIA software (the NVIDIA Software), to use, reproduce, modify and redistribute the NVIDIA Software, with or without modifications, in source and/or binary forms; provided that if you redistribute the NVIDIA Software, you must retain the copyright notice of NVIDIA, this notice and the following text and disclaimers in all such redistributions of the NVIDIA Software. Neither the name, trademarks, service marks nor logos of NVIDIA Corporation may be used to endorse or promote products derived from the NVIDIA Software without specific prior written permission from NVIDIA. Except as expressly stated in this notice, no other rights or licenses express or implied, are granted by NVIDIA herein, including but not limited to any patent rights that may be infringed by your derivative works or by other works in which the NVIDIA Software may be incorporated. No hardware is licensed hereunder. THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS. IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \****************************************************************************/ ================================================================================================================================================== This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. ================================================================================================================================================== GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ================================================ FILE: ports/vulkan-sdk-components/get-vulkan-sdk-components-info.ps1 ================================================ function Get-GlslangVersion { param( [string]$SdkVersion, [string]$TempWorkDir ) [string]$_GitDir = Join-Path $TempWorkDir "glslang" [string]$_GitUrl = 'https://github.com/KhronosGroup/glslang.git' [string]$_GitTag = 'vulkan-sdk-' + $SdkVersion # The port glslang releases two version for a revision commit, # like fa9c3de released with 14.3.0 and vulkan-sdk-1.3.290.0. # The version of glslang is the one which is not the SDK version. # `--branch` to set cloned HEAD to the commit which should be referenced by 2 tags # `--depth=1` to avoid fetching history # `--filter=tree:0` and `--no-checkout` to avoid fetching files & git clone $_GitUrl $_GitDir ` "--branch=$_GitTag" ` "--depth=1" ` "--filter=tree:0" "--no-checkout" "-q" # Get the tag list $_VersionCandidates = & git -C $_GitDir tag -l Remove-Item -Recurse -Force -Path $_GitDir # Check the tag list if ($null -eq $_VersionCandidates) { throw 'No VersionCandidates detected.' } if (2 -ne $_VersionCandidates.Length) { throw 'VersionCandidates must 2.' } if ($_GitTag -notin $_VersionCandidates) { throw 'VersionCandidates must contain SDK.' } [string]$_GlslangVersion = $_VersionCandidates | Where-Object { $_ -notmatch $_GitTag } if ([version]$_GlslangVersion -lt [version]'0.0.0') { throw 'Failed to determine version' } return $_GlslangVersion } function Get-VulkanSdkComponentsInfo { param( [string]$ScriptDir, [string]$TempWorkDir ) $ErrorActionPreference = [System.Management.Automation.ActionPreference]::Stop if ($PSVersionTable.PSVersion.Major -lt 7) { Write-Error 'This script requires PowerShell 7 or later.' } if ('vulkan-sdk-components' -ne (Split-Path -Leaf $ScriptDir)) { throw 'This script must be run from `vulkan-sdk-components` directory.' } [string]$VulkanPortDir = $ScriptDir [string]$SdkVersion = Join-Path -Resolve $VulkanPortDir 'vcpkg.json' | Get-ChildItem | Get-Content -Raw | ConvertFrom-Json -Depth 5 | Select-Object -ExpandProperty version return @{ 'glslang' = Get-GlslangVersion -SdkVersion:$SdkVersion -TempWorkDir:$TempWorkDir } } $Param = @{ ScriptDir = $PSScriptRoot TempWorkDir = (New-Item -ItemType Directory Temp:/$(New-Guid)).FullName } Get-VulkanSdkComponentsInfo @Param | Format-Table ================================================ FILE: ports/vulkan-sdk-components/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(components COMPONENTS "") if("${CMAKE_VERSION}" VERSION_GREATER_EQUAL "3.29.0") list(APPEND components glslang) endif() if(VCPKG_TARGET_IS_WINDOWS) list(APPEND components dxc) endif() # FindVulkan.cmake checks the version of the Vulkan SDK by comparing the version string with the version of the vulkan-headers. # Vulkan headers dont use the build number, so even if they technically tag new version number with a build number, it cannot be parsed correctly by FindVulkan.cmake. string(REGEX REPLACE "^([0-9]+\\.[0-9]+\\.[0-9]+)(\\.[0-9]+)?$" "\\1" VERSION_TRIMMED "${VERSION}") set(vulkan_result_file "${CURRENT_BUILDTREES_DIR}/vulkan-${TARGET_TRIPLET}.cmake.log") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_INSTALLED_DIR}/share/vulkan/detect-vulkan" OPTIONS "-DVCPKG_VULKAN_VERSION=${VERSION_TRIMMED}" "-DVCPKG_VULKAN_COMPONENTS=${components}" OPTIONS_RELEASE "-DOUTFILE=${vulkan_result_file}" ) include("${vulkan_result_file}") if(NOT DETECTED_Vulkan_FOUND) message(FATAL_ERROR "The Vulkan SDK wasn't found.") endif() find_file(vulkan_license NAMES LICENSE.txt PATHS ${DETECTED_Vulkan_INCLUDE_DIRS} "${CURRENT_PORT_DIR}" PATH_SUFFIXES "..") vcpkg_install_copyright(FILE_LIST "${vulkan_license}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/vulkan-sdk-components/usage ================================================ vulkan-sdk-components is compatible with built-in CMake targets: # https://cmake.org/cmake/help/latest/module/FindVulkan.html find_package(Vulkan REQUIRED) # SPIR-V generator library target_link_libraries(main PRIVATE Vulkan::glslang) # DirectX Shader Compiler target_link_libraries(main PRIVATE Vulkan::dxc) The vulkan-sdk-components package does not provide direct Visual Studio integration. For manual integration, add $(VULKAN_SDK)/include to your include path. ================================================ FILE: ports/vulkan-sdk-components/vcpkg.json ================================================ { "$comment": "Dependencies extracted from e.g. https://sdk.lunarg.com/sdk/download/1.3.290.0/windows/config.json", "name": "vulkan-sdk-components", "version": "1.4.341.0", "description": "Installs packages which are part of the Vulkan SDK.", "license": null, "supports": "!uwp & !xbox", "dependencies": [ { "name": "directx-dxc", "platform": "windows" }, "glm", "glslang", "jsoncpp", { "name": "mimalloc", "platform": "windows" }, "sdl2", "shaderc", "spirv-cross", "spirv-headers", "valijson", { "name": "vcpkg-cmake", "host": true }, "volk", "vulkan", "vulkan-memory-allocator", "vulkan-utility-libraries", "vulkan-validationlayers" ], "features": { "tools": { "description": "Build Vulkan related tools", "dependencies": [ "lunarg-vulkantools", "spirv-reflect", "spirv-tools", "vulkan-tools" ] } } } ================================================ FILE: ports/vulkan-tools/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-Tools REF "vulkan-sdk-${VERSION}" SHA512 0fad33d732e034489acea4745abfb21fb27619114bfdfa0923cc4baa7e22be65c1dfd10309bfdd9926fe943cd1c8d86521fbd7c326ce46a7c468e1428736db29 HEAD_REF main ) if(NOT VCPKG_TARGET_IS_ANDROID) set(VCPKG_BUILD_TYPE release) # only builds tools endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") set(tools vulkaninfo) if(NOT VCPKG_TARGET_IS_ANDROID) list(APPEND tools vkcube vkcubepp) endif() vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT VCPKG_TARGET_IS_ANDROID) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") endif() ================================================ FILE: ports/vulkan-tools/vcpkg.json ================================================ { "name": "vulkan-tools", "version": "1.4.341.0", "description": "Vulkan Development Tools", "homepage": "https://github.com/KhronosGroup/Vulkan-Tools", "license": "Apache-2.0", "supports": "!osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "volk", "vulkan-headers" ] } ================================================ FILE: ports/vulkan-utility-libraries/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-Utility-Libraries REF "vulkan-sdk-${VERSION}" SHA512 254b2f6e11ce8baac5ddb3f3ae0abf55b2cb4e5f5e1883826d57b5becab6b01176e832b4451c6080a4a1ef945cd5e634a78018e2fe6d1ace2e487c1770ef4b0f HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/VulkanUtilityLibraries PACKAGE_NAME VulkanUtilityLibraries) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/VulkanUtilityLibraries/VulkanUtilityLibrariesConfig.cmake" [[${PACKAGE_PREFIX_DIR}/lib/cmake/VulkanUtilityLibraries/VulkanUtilityLibraries-targets.cmake]] [[${CMAKE_CURRENT_LIST_DIR}/VulkanUtilityLibraries-targets.cmake]] ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/vulkan-utility-libraries/vcpkg.json ================================================ { "name": "vulkan-utility-libraries", "version": "1.4.341.0", "description": "Utility libraries for Vulkan developers", "homepage": "https://github.com/KhronosGroup/Vulkan-Utility-Libraries", "license": null, "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers" ] } ================================================ FILE: ports/vulkan-validationlayers/disable_vendored_phmap.diff ================================================ diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt index 984b878f0..31003176a 100644 --- a/layers/CMakeLists.txt +++ b/layers/CMakeLists.txt @@ -112,14 +112,8 @@ endif() if (USE_CUSTOM_HASH_MAP) message(STATUS "Using parallel_hashmap as custom hash maps") target_compile_definitions(VkLayer_utils PUBLIC USE_CUSTOM_HASH_MAP) - # Prefer using a locally installed parallel-hashmap package before using the in-tree sources. - # This approach supports installation with package managers such as conan - find_package(phmap CONFIG) - if (TARGET phmap) - target_link_libraries(VkLayer_utils PRIVATE phmap) - else() - add_subdirectory(external/parallel_hashmap) - endif() + find_path(PARALLEL_HASHMAP_INCLUDE_DIRS "parallel_hashmap/btree.h" REQUIRED) + target_include_directories(VkLayer_utils PRIVATE ${PARALLEL_HASHMAP_INCLUDE_DIRS}) else() message(STATUS "Using STL maps instead of custom hash maps") endif() @@ -468,7 +468,8 @@ if(MSVC) target_link_options(vvl PRIVATE /DEF:${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.def) target_compile_options(vvl PRIVATE /bigobj) - set(NATVIS_FILES "${CMAKE_CURRENT_SOURCE_DIR}/types.natvis" "${CMAKE_CURRENT_SOURCE_DIR}/external/parallel_hashmap/natvis/phmap.natvis") + find_file(PHMAP_NATVIS "phmap.natvis" REQUIRED) + set(NATVIS_FILES "${CMAKE_CURRENT_SOURCE_DIR}/types.natvis" "${PHMAP_NATVIS}") target_sources(vvl PRIVATE ${NATVIS_FILES}) elseif(MINGW) target_sources(vvl PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${LAYER_NAME}.def) ================================================ FILE: ports/vulkan-validationlayers/portfile.cmake ================================================ set(VCPKG_LIBRARY_LINKAGE dynamic) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/Vulkan-ValidationLayers REF "vulkan-sdk-${VERSION}" SHA512 621ed3bc35d97bbac6a2343818530ac5b36c10868fb0fa8de7a3dbb9ae67f3676fd66656a36c4f19ec875b247b0c29b478d735882a429e850c1754203d4f9845 HEAD_REF main PATCHES disable_vendored_phmap.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/layers/external/parallel_hashmap") # ensure that we use vcpkg's parallel-hashmap instead of upstream's vendored copy vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") set(layer_path "/bin") if(NOT VCPKG_TARGET_IS_WINDOWS) set(layer_path "/share/vulkan/explicit_layer.d") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" @ONLY) ================================================ FILE: ports/vulkan-validationlayers/usage ================================================ The package @PORT@ provides the vulkan validationlayers. To make vulkan use them you have to manually add the vcpkg path "@layer_path@" to the environment variable VK_ADD_LAYER_PATH. ================================================ FILE: ports/vulkan-validationlayers/vcpkg.json ================================================ { "name": "vulkan-validationlayers", "version": "1.4.341.0", "description": "Vulkan Validation Layers (VVL)", "homepage": "https://github.com/KhronosGroup/Vulkan-ValidationLayers", "license": null, "dependencies": [ "mimalloc", "parallel-hashmap", "spirv-cross", "spirv-headers", "spirv-reflect", "spirv-tools", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "vulkan-headers", "vulkan-utility-libraries" ] } ================================================ FILE: ports/vvenc/fix-cmakelists.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 551ec4b..ae36bc8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -288,8 +288,11 @@ endif() add_subdirectory( "source/Lib/vvenc" ) +if(BUILD_TOOLS) add_subdirectory( "source/App/vvencapp" ) add_subdirectory( "source/App/vvencFFapp" ) +endif() +if(BUILD_TESTING) add_subdirectory( "test/vvenclibtest" ) add_subdirectory( "test/vvencinterfacetest" ) @@ -378,6 +381,7 @@ add_vvenc_test( compare_output-medium_rc2p_statsFile_easy 30 NO_OUTPUT "${OUT_VV add_test( NAME Cleanup_remove_temp_files COMMAND ${CMAKE_COMMAND} -E remove -f ${CLEANUP_TEST_FILES} rec.yuv stats_exp.json stats_easy.json ) set_tests_properties( Cleanup_remove_temp_files PROPERTIES FIXTURES_CLEANUP cleanup ) +endif() if( VVENC_ENABLE_INSTALL ) # include installer diff --git a/cmake/modules/vvencInstall.cmake b/cmake/modules/vvencInstall.cmake index 4945f1d..7006bf6 100644 --- a/cmake/modules/vvencInstall.cmake +++ b/cmake/modules/vvencInstall.cmake @@ -16,9 +16,11 @@ macro( install_targets config_ ) RUNTIME DESTINATION ${RUNTIME_DEST} LIBRARY DESTINATION ${LIBRARY_DEST} ARCHIVE DESTINATION ${ARCHIVE_DEST} ) + if(BUILD_TOOLS) install( TARGETS vvencapp vvencFFapp CONFIGURATIONS ${config_} RUNTIME DESTINATION ${RUNTIME_DEST} ) + endif() endmacro( install_targets ) # install pdb file for static and shared libraries @@ -61,8 +63,10 @@ install_targets( RelWithDebInfo ) # install pdb files install_lib_pdb( vvenc ) +if(BUILD_TOOLS) install_exe_pdb( vvencapp ) install_exe_pdb( vvencFFapp ) +endif() # configure version file configure_file( cmake/install/vvencConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/vvencConfigVersion.cmake @ONLY ) ================================================ FILE: ports/vvenc/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 551ec4b..8405ad0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -161,6 +161,8 @@ set_property( GLOBAL PROPERTY USE_FOLDERS ON ) # Enable multithreading find_package( Threads REQUIRED ) +find_package(nlohmann_json CONFIG REQUIRED) + # set _WIN32_WINNT if( WIN32 ) # set _WIN32_WINT version global diff --git a/source/App/vvencFFapp/CMakeLists.txt b/source/App/vvencFFapp/CMakeLists.txt index 869b6ac..452301c 100644 --- a/source/App/vvencFFapp/CMakeLists.txt +++ b/source/App/vvencFFapp/CMakeLists.txt @@ -34,7 +34,7 @@ target_compile_options( ${EXE_NAME} PRIVATE $<$,$:/W4 /WX /wd4100 /wd4244 /wd4251 /wd4459 /wd4996>) target_include_directories( ${EXE_NAME} PRIVATE ../../Lib ) -target_link_libraries( ${EXE_NAME} Threads::Threads vvenc ) +target_link_libraries( ${EXE_NAME} Threads::Threads vvenc nlohmann_json::nlohmann_json ) # example: place header files in different folders source_group( "Header Files" FILES ${INC_FILES} ) diff --git a/source/App/vvencapp/CMakeLists.txt b/source/App/vvencapp/CMakeLists.txt index a0e764b..98e5bb4 100644 --- a/source/App/vvencapp/CMakeLists.txt +++ b/source/App/vvencapp/CMakeLists.txt @@ -31,7 +31,7 @@ target_compile_options( ${EXE_NAME} PRIVATE $<$,$:/W4 /WX /wd4244 /wd4251 /wd4996>) target_include_directories( ${EXE_NAME} PRIVATE ../../Lib ) -target_link_libraries( ${EXE_NAME} Threads::Threads vvenc ) +target_link_libraries( ${EXE_NAME} Threads::Threads vvenc nlohmann_json::nlohmann_json ) # example: place header files in different folders source_group( "Header Files" FILES ${INC_FILES} ) diff --git a/source/Lib/apputils/LogoRenderer.h b/source/Lib/apputils/LogoRenderer.h index 6f990e6..bbf40d7 100644 --- a/source/Lib/apputils/LogoRenderer.h +++ b/source/Lib/apputils/LogoRenderer.h @@ -58,7 +58,7 @@ POSSIBILITY OF SUCH DAMAGE. #include "FileIOHelper.h" #ifdef VVENC_ENABLE_THIRDPARTY_JSON -#include "../../../thirdparty/nlohmann_json/single_include/nlohmann/json.hpp" +#include "nlohmann/json.hpp" using nlohmann::json; #endif diff --git a/source/Lib/vvenc/CMakeLists.txt b/source/Lib/vvenc/CMakeLists.txt index 5ee3740..827cf41 100644 --- a/source/Lib/vvenc/CMakeLists.txt +++ b/source/Lib/vvenc/CMakeLists.txt @@ -70,7 +70,8 @@ add_compile_definitions( ${LIB_NAME_UC}_SOURCE ) # set PRIVATE include directories for all targets in this directory include_directories( $ $ ) include_directories( . .. ../DecoderLib ../EncoderLib ../CommonLib ../CommonLib/x86 ../apputils ) -include_directories( SYSTEM ../../../thirdparty ) +find_path(SIMDE_INCLUDE_DIRS "simde/arm/neon.h") +include_directories(SYSTEM ${SIMDE_INCLUDE_DIRS}) # set common warning flags add_compile_options( "$<$,$>:-Wall;-Werror;-Wno-deprecated-register;-Wno-unused-const-variable;-Wno-unknown-attributes>" ) @@ -140,7 +141,7 @@ endif() if( VVENC_ENABLE_THIRDPARTY_JSON ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVVENC_ENABLE_THIRDPARTY_JSON" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVVENC_ENABLE_THIRDPARTY_JSON" ) - target_include_directories( ${LIB_NAME} PRIVATE ../../../thirdparty/nlohmann_json/single_include ) + target_link_libraries( ${LIB_NAME} PRIVATE nlohmann_json::nlohmann_json ) endif() if( TARGET INTEL_ITT) ================================================ FILE: ports/vvenc/no-werror.patch ================================================ diff --git a/source/App/vvencFFapp/CMakeLists.txt b/source/App/vvencFFapp/CMakeLists.txt index 452301c..947da3d 100644 --- a/source/App/vvencFFapp/CMakeLists.txt +++ b/source/App/vvencFFapp/CMakeLists.txt @@ -29,9 +29,9 @@ set_target_properties( ${EXE_NAME} PROPERTIES DEBUG_POSTFIX "${CMAKE_DE set_target_properties( ${EXE_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "${CMAKE_RELWITHDEBINFO_POSTFIX}" ) set_target_properties( ${EXE_NAME} PROPERTIES MINSIZEREL_POSTFIX "${CMAKE_MINSIZEREL_POSTFIX}" ) -target_compile_options( ${EXE_NAME} PRIVATE $<$,$>:-Wall -Werror> - $<$:-Wall -Werror -fdiagnostics-show-option> - $<$:/W4 /WX /wd4100 /wd4244 /wd4251 /wd4459 /wd4996>) +target_compile_options( ${EXE_NAME} PRIVATE $<$,$>:-Wall> + $<$:-Wall -fdiagnostics-show-option> + $<$:/wd4100 /wd4244 /wd4251 /wd4459 /wd4996>) target_include_directories( ${EXE_NAME} PRIVATE ../../Lib ) target_link_libraries( ${EXE_NAME} Threads::Threads vvenc nlohmann_json::nlohmann_json ) diff --git a/source/App/vvencapp/CMakeLists.txt b/source/App/vvencapp/CMakeLists.txt index 98e5bb4..f5ae8f1 100644 --- a/source/App/vvencapp/CMakeLists.txt +++ b/source/App/vvencapp/CMakeLists.txt @@ -26,9 +26,9 @@ set_target_properties( ${EXE_NAME} PROPERTIES DEBUG_POSTFIX "${CMAKE_DE set_target_properties( ${EXE_NAME} PROPERTIES RELWITHDEBINFO_POSTFIX "${CMAKE_RELWITHDEBINFO_POSTFIX}" ) set_target_properties( ${EXE_NAME} PROPERTIES MINSIZEREL_POSTFIX "${CMAKE_MINSIZEREL_POSTFIX}" ) -target_compile_options( ${EXE_NAME} PRIVATE $<$,$>:-Wall -Werror> - $<$:-Wall -Werror -fdiagnostics-show-option> - $<$:/W4 /WX /wd4244 /wd4251 /wd4996>) +target_compile_options( ${EXE_NAME} PRIVATE $<$,$>:-Wall> + $<$:-Wall -fdiagnostics-show-option> + $<$:/wd4244 /wd4251 /wd4996>) target_include_directories( ${EXE_NAME} PRIVATE ../../Lib ) target_link_libraries( ${EXE_NAME} Threads::Threads vvenc nlohmann_json::nlohmann_json ) diff --git a/source/Lib/vvenc/CMakeLists.txt b/source/Lib/vvenc/CMakeLists.txt index 827cf41..93bcfc0 100644 --- a/source/Lib/vvenc/CMakeLists.txt +++ b/source/Lib/vvenc/CMakeLists.txt @@ -74,9 +74,9 @@ find_path(SIMDE_INCLUDE_DIRS "simde/arm/neon.h") include_directories(SYSTEM ${SIMDE_INCLUDE_DIRS}) # set common warning flags -add_compile_options( "$<$,$>:-Wall;-Werror;-Wno-deprecated-register;-Wno-unused-const-variable;-Wno-unknown-attributes>" ) -add_compile_options( "$<$:-Wall;-Werror;-Wno-unused-function;;-Wno-unused-variable;;-Wno-sign-compare;;-fdiagnostics-show-option;-Wno-ignored-attributes>" ) -add_compile_options( "$<$:/W4;/WX;/wd4100;/wd4127;/wd4244;/wd4245;/wd4251;/wd4310;/wd4389;/wd4456;/wd4457;/wd4458;/wd4459;/wd4505;/wd4701;/wd4702;/wd4703;/wd4996>" ) +add_compile_options( "$<$,$>:-Wall;-Wno-deprecated-register;-Wno-unused-const-variable;-Wno-unknown-attributes>" ) +add_compile_options( "$<$:-Wall;-Wno-unused-function;;-Wno-unused-variable;;-Wno-sign-compare;;-fdiagnostics-show-option;-Wno-ignored-attributes>" ) +add_compile_options( "$<$:/wd4100;/wd4127;/wd4244;/wd4245;/wd4251;/wd4310;/wd4389;/wd4456;/wd4457;/wd4458;/wd4459;/wd4505;/wd4701;/wd4702;/wd4703;/wd4996>" ) # don't export all symbols from shared libraries by default (gcc: -fvisibility=hidden), only those marked as VVENC_DECL # behavior similar to __declspec(dllexport) on windows ================================================ FILE: ports/vvenc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO fraunhoferhhi/vvenc REF v${VERSION} SHA512 bf2ac5fc3859cb3303ef4fa4fcdbe00a6db617e3c2e76c6d658071a7650e5966fa1522ccb2feca8c770cea3ea25d2b573dbd0c72f4c0d71be61ba7dd1ab9440b HEAD_REF master PATCHES fix-cmakelists.patch fix-dependencies.patch no-werror.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DCCACHE_FOUND=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/vvenc) vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if(BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES vvencFFapp vvencapp AUTO_CLEAN) endif() 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") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/vvenc/vcpkg.json ================================================ { "name": "vvenc", "version": "1.7.0", "description": "VVenC is a fast and efficient H.266/VVC encoder implementation.", "homepage": "https://github.com/fraunhoferhhi/vvenc", "license": "BSD-3-Clause-Clear", "supports": "!x86 & !arm", "dependencies": [ "nlohmann-json", "simde", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build user tools: vvencFFapp and vvencapp" } } } ================================================ FILE: ports/vxl/cmake-package.diff ================================================ diff --git a/config/cmake/Modules/UseVXL.cmake b/config/cmake/Modules/UseVXL.cmake index fba90e4..e7b3b62 100644 --- a/config/cmake/Modules/UseVXL.cmake +++ b/config/cmake/Modules/UseVXL.cmake @@ -77,7 +77,7 @@ if(VXL_CONFIG_CMAKE) include_directories(SYSTEM ${VXL_VCL_INCLUDE_DIRS} ${VXL_CORE_INCLUDE_DIRS}) # Add link directories needed to use VXL. - link_directories(${VXL_LIBRARY_DIR}) + # [vcpkg skip] link_directories(${VXL_LIBRARY_DIR}) if(VXL_CMAKE_DOXYGEN_DIR) # Allow use of VXL's cmake/doxygen framework diff --git a/config/cmake/Modules/VXLConfig_export.cmake.in b/config/cmake/Modules/VXLConfig_export.cmake.in index 78eaf51..c69b7d8 100644 --- a/config/cmake/Modules/VXLConfig_export.cmake.in +++ b/config/cmake/Modules/VXLConfig_export.cmake.in @@ -1,6 +1,4 @@ # vxl/config/cmake/VXLConfig_export.cmake.in -# also configured by CMake to -# @PROJECT_BINARY_DIR@/config/cmake/export/VXLConfig.cmake # # This CMake module is configured by VXL's build process to export the # project settings for use by client projects. A client project may @@ -33,7 +31,7 @@ set(VXL_LIBRARY_DIR "@CMAKE_INSTALL_PREFIX@/lib") # The VXL CMake support directory. # Clients projects should not use the Find*.cmake files in this directory. -set(VXL_CMAKE_DIR "@CMAKE_INSTALL_PREFIX@/share/vxl/cmake") +set(VXL_CMAKE_DIR "@CMAKE_INSTALL_PREFIX@/share/vxl") # VXL Configuration options. You don't have to build with the same options as VXL, but it often helps. set(BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@") ================================================ FILE: ports/vxl/devendor.diff ================================================ diff --git a/config/cmake/Modules/FindGEOTIFF.cmake b/config/cmake/Modules/FindGEOTIFF.cmake index bcc8fc5..ed9420e 100644 --- a/config/cmake/Modules/FindGEOTIFF.cmake +++ b/config/cmake/Modules/FindGEOTIFF.cmake @@ -18,7 +18,7 @@ if (${VXL_USE_GEOTIFF}) # If this FORCE variable is unset or is FALSE, try to find a native library. if( NOT VXL_FORCE_V3P_GEOTIFF ) - include( ${MODULE_PATH}/NewCMake/FindGEOTIFF.cmake ) + find_package(GeoTIFF CONFIG REQUIRED) if( GEOTIFF_FOUND ) set(VXL_USING_NATIVE_GEOTIFF "YES") endif() diff --git a/config/cmake/Modules/VXLConfig_export.cmake.in b/config/cmake/Modules/VXLConfig_export.cmake.in index 86bb564..c69b7d8 100644 --- a/config/cmake/Modules/VXLConfig_export.cmake.in +++ b/config/cmake/Modules/VXLConfig_export.cmake.in @@ -152,6 +152,10 @@ set(VXL_TIFF_INCLUDE_DIR "@TIFF_INCLUDE_DIR@") set(VXL_TIFF_LIBRARIES "@TIFF_LIBRARIES@") set(VXL_GEOTIFF_FOUND "@GEOTIFF_FOUND@") +if(VXL_GEOTIFF_FOUND) + include(CMakeFindDependencyMacro) + find_dependency(GeoTIFF CONFIG) +endif() set(VXL_GEOTIFF_INCLUDE_DIR "@GEOTIFF_INCLUDE_DIR@") set(VXL_GEOTIFF_LIBRARIES "@GEOTIFF_LIBRARIES@") diff --git a/core/vgl/vgl_clip.hxx b/core/vgl/vgl_clip.hxx index 9ff64f8..10c986a 100644 --- a/core/vgl/vgl_clip.hxx +++ b/core/vgl/vgl_clip.hxx @@ -144,7 +144,7 @@ namespace { #elif HAS_CLIPPER -#include +#include namespace { //: Creates a Clipper polygon from a vgl_polygon. diff --git a/v3p/CMakeLists.txt b/v3p/CMakeLists.txt index 251ef9a..78a84fc 100644 --- a/v3p/CMakeLists.txt +++ b/v3p/CMakeLists.txt @@ -48,6 +48,9 @@ CMAKE_DEPENDENT_OPTION( VXL_FORCE_V3P_RPLY "Use V3P instead of any native RPLY l mark_as_advanced( VXL_FORCE_V3P_RPLY ) if(VXL_BUILD_CORE_IMAGING) + add_subdirectory(openjpeg2) +elseif(0) + # not used by core and vcl include(${VXL_CMAKE_DIR}/FindZLIB.cmake) if (VXL_FORCE_V3P_ZLIB OR ( NOT VXL_USING_NATIVE_ZLIB ) AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/zlib) add_subdirectory(zlib) ================================================ FILE: ports/vxl/disable-tests.diff ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 581d00b..336f170 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -135,7 +135,9 @@ else() endif () # common test executable -add_subdirectory(testlib) +if(BUILD_TESTING) + add_subdirectory(testlib) +endif() # Tests that check and output the vxl configuration # NOTE: some external projects remove the tests directory (aka ITK) ================================================ FILE: ports/vxl/file_formats.diff ================================================ diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 88daf27..a47c183 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -60,6 +60,10 @@ if(VXL_BUILD_CORE_IMAGING) if(VXL_BUILD_CORE_NUMERICS) add_subdirectory (vil/algo) endif() +else() + file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/vil) + file(WRITE ${PROJECT_BINARY_DIR}/vil/vil_config.h "/* core imaging disabled */") + install(FILES ${PROJECT_BINARY_DIR}/vil/vil_config.h DESTINATION include/vxl/core/vil) endif() diff --git a/core/vpgl/algo/CMakeLists.txt b/core/vpgl/algo/CMakeLists.txt index 9ec767a..fda53dc 100644 --- a/core/vpgl/algo/CMakeLists.txt +++ b/core/vpgl/algo/CMakeLists.txt @@ -32,7 +32,7 @@ set( vpgl_algo_sources vpgl_equi_rectification.h vpgl_equi_rectification.cxx ) include(${VXL_CMAKE_DIR}/FindTIFF.cmake) -if(TIFF_FOUND) +if(VXL_BUILD_CORE_IMAGING) include_directories(${TIFF_INCLUDE_DIR}) include( ${VXL_CMAKE_DIR}/FindGEOTIFF.cmake) if(GEOTIFF_FOUND) diff --git a/core/vpgl/file_formats/CMakeLists.txt b/core/vpgl/file_formats/CMakeLists.txt index d23a2f2..6c933f0 100644 --- a/core/vpgl/file_formats/CMakeLists.txt +++ b/core/vpgl/file_formats/CMakeLists.txt @@ -9,7 +9,7 @@ set( vpgl_file_formats_sources ) include(${VXL_CMAKE_DIR}/FindTIFF.cmake) -if(TIFF_FOUND) +if(VXL_BUILD_CORE_IMAGING) include_directories(${TIFF_INCLUDE_DIR}) include( ${VXL_CMAKE_DIR}/FindGEOTIFF.cmake) if(GEOTIFF_FOUND) ================================================ FILE: ports/vxl/limits.diff ================================================ diff --git a/core/vnl/vnl_bignum.cxx b/core/vnl/vnl_bignum.cxx index b615a9b..741bd43 100644 --- a/core/vnl/vnl_bignum.cxx +++ b/core/vnl/vnl_bignum.cxx @@ -6,6 +6,7 @@ #include #include #include +#include #include "vnl_bignum.h" //: // \file ================================================ FILE: ports/vxl/mingw.diff ================================================ diff --git a/core/vul/vul_temp_filename.cxx b/core/vul/vul_temp_filename.cxx index 4921a04..731fee0 100644 --- a/core/vul/vul_temp_filename.cxx +++ b/core/vul/vul_temp_filename.cxx @@ -11,7 +11,7 @@ #if defined(_MSC_VER) || defined(__MINGW32__) -# include +# include #else # if defined(unix) || defined(__unix) || defined(__unix__) || defined(__APPLE__) // Helper functions for Unix ================================================ FILE: ports/vxl/openjpeg.diff ================================================ diff --git a/config/cmake/Modules/FindOpenJPEG2.cmake b/config/cmake/Modules/FindOpenJPEG2.cmake index c76bc44..41dc198 100644 --- a/config/cmake/Modules/FindOpenJPEG2.cmake +++ b/config/cmake/Modules/FindOpenJPEG2.cmake @@ -62,6 +62,8 @@ set(OPENJPEG2_DEFINITIONS "") if(OPENJPEG2_FOUND) set(VXL_USING_NATIVE_OPENJPEG2 "YES") +elseif(NOT ENABLE_OPENJPEG) + set(VXL_USING_NATIVE_OPENJPEG2 "YES") # to disable internal lib, too else() if( EXISTS ${VXL_ROOT_SOURCE_DIR}/v3p/openjpeg2/openjpeg.h) set(OPENJPEG2_FOUND TRUE) diff --git a/v3p/openjpeg2/CMakeLists.txt b/v3p/openjpeg2/CMakeLists.txt index 67b184e..354180b 100644 --- a/v3p/openjpeg2/CMakeLists.txt +++ b/v3p/openjpeg2/CMakeLists.txt @@ -49,6 +49,7 @@ if(VXL_MATH_LIBRARY_FOUND) endif() mark_as_advanced(VXL_MATH_LIBRARY_FOUND) set_target_properties(openjpeg2 PROPERTIES + OUTPUT_NAME vxl_openjpeg VERSION 2.0.0 DEFINE_SYMBOL OPJ_EXPORTS) endif() ================================================ FILE: ports/vxl/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) # Cf. https://vxl.github.io/vxl-users-faq.html vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vxl/vxl REF v${VERSION} SHA512 0b33e12557315058e7786c2049af3b01f1208e50660ccbc45f4d9a4dba4eeadfa5e3125380d8781eed2a9abf1d153ffb71c416ed2d196ab4194f5b3722fe6f2b HEAD_REF master PATCHES cmake-package.diff devendor.diff disable-tests.diff file_formats.diff limits.diff mingw.diff openjpeg.diff ) file(GLOB_RECURSE vendored_sources "${SOURCE_PATH}/v3p/*.c" "${SOURCE_PATH}/v3p/*.cpp" "${SOURCE_PATH}/v3p/*.cxx") list(FILTER vendored_sources EXCLUDE REGEX "/(netlib|openjpeg2)/") file(REMOVE_RECURSE ${vendored_sources}) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES core-imaging VXL_BUILD_CORE_IMAGING openjpeg ENABLE_OPENJPEG ) if(VCPKG_TARGET_IS_MINGW) list(APPEND options -DVXL_HAS_DBGHELP_H=FALSE) # needs patches endif() set(USE_WIN_WCHAR_T OFF) if(VCPKG_TARGET_IS_WINDOWS) set(USE_WIN_WCHAR_T ON) endif() # Avoid try-run which doesn't work for cross-builds. # Users may override with VCPKG_CMAKE_CONFIGURE_OPTIONS. string(COMPARE EQUAL "${VCPKG_TARGET_ARCHITECTURE}" "x64" VXL_HAS_SSE2_HARDWARE_SUPPORT) set(VCL_HAS_LFS ON) if(VCPKG_TARGET_IS_WINDOWS) set(VCL_HAS_LFS OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${options} -DBUILD_TESTING=OFF -DCMAKE_POLICY_DEFAULT_CMP0120=OLD # vxl needs WriteCompilerDetectionHeader -DVCL_HAS_LFS=${VCL_HAS_LFS} -DVXL_BUILD_CONTRIB=OFF -DVXL_BUILD_EXAMPLES=OFF -DVXL_HAS_SSE2_HARDWARE_SUPPORT=${VXL_HAS_SSE2_HARDWARE_SUPPORT} -DVXL_FORCE_V3P_BZLIB2=OFF -DVXL_FORCE_V3P_CLIPPER=OFF -DVXL_FORCE_V3P_DCMTK=OFF -DVXL_FORCE_V3P_GEOTIFF=OFF -DVXL_FORCE_V3P_J2K=OFF -DVXL_FORCE_V3P_JPEG=OFF -DVXL_FORCE_V3P_OPENJPEG2=ON # vendored 1.2; vxl needs old API. -DVXL_FORCE_V3P_PNG=OFF -DVXL_FORCE_V3P_TIFF=OFF -DVXL_FORCE_V3P_ZLIB=OFF -DVXL_USE_DCMTK=OFF -DVXL_USE_GEOTIFF=ON -DVXL_USE_WIN_WCHAR_T=${USE_WIN_WCHAR_T} MAYBE_UNUSED_VARIABLES ENABLE_OPENJPEG VXL_USE_DCMTK ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/vxl/cmake) vcpkg_copy_pdbs() file(COPY "${SOURCE_PATH}/vcl/vcl_msvc_warnings.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include/vxl/vcl") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Don't provide source dir; test lib not installed. file(REMOVE "${CURRENT_PACKAGES_DIR}/include/vxl/vcl/vcl_where_root_dir.h") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") set(file_list "${SOURCE_PATH}/core/vxl_copyright.h") if("openjpeg" IN_LIST FEATURES) file(COPY_FILE "${SOURCE_PATH}/v3p/openjpeg2/license.txt" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openjpeg2 license.txt") vcpkg_list(APPEND file_list "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/openjpeg2 license.txt") endif() vcpkg_install_copyright(FILE_LIST ${file_list} COMMENT [[ vcl includes Netlib software from https://www.netlib.org/. Most netlib software packages have no restrictions on their use but it is recommended to check with the authors to be sure. (https://www.netlib.org/misc/faq.html#2.3) ]]) ================================================ FILE: ports/vxl/usage ================================================ vxl provides CMake targets: find_package(VXL CONFIG REQUIRED) include("${VXL_CMAKE_DIR}/UseVXL.cmake") # Example: numerics library 'vnl'. target_link_libraries(main PRIVATE $) ================================================ FILE: ports/vxl/vcpkg.json ================================================ { "name": "vxl", "version": "3.5.0", "description": "A multi-platform collection of C++ software libraries for Computer Vision and Image Understanding.", "homepage": "https://vxl.github.io/", "license": null, "supports": "!uwp", "dependencies": [ "libgeotiff", "libjpeg-turbo", "libpng", "polyclipping", { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "core-imaging": { "description": "core-imaging support for vxl" }, "openjpeg": { "description": [ "OpenJPEG support", "This feature uses vendored copy of openjpeg 1.2.0 and cannot be used together with port 'openjpeg'." ], "license": "BSD-2-Clause", "dependencies": [ { "name": "vxl", "features": [ "core-imaging" ] } ] } } } ================================================ FILE: ports/wabt/include_picosha2.cmake ================================================ find_path(PICOSHA2_INCLUDE_DIRECTORY picosha2.h REQUIRED) include_directories("${PICOSHA2_INCLUDE_DIRECTORY}") ================================================ FILE: ports/wabt/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO WebAssembly/wabt REF "${VERSION}" SHA512 48e6419067c8323a56887b4fb37c4ef694296395328dd03ca414c83e62a2163face4da9c01d595eb6d1a73bded0a8b56fa0f4ae917f8062814b1166bcd027b47 HEAD_REF main ) # wabt enables wasm-rt-impl iff setjmp.h is found by `check_include_file`. # It does not use this variable otherwise. vcpkg_check_features(OUT_FEATURE_OPTIONS feature_options FEATURES tools BUILD_TOOLS wasm-rt-impl HAVE_SETJMP_H ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${feature_options} -DBUILD_LIBWASM=OFF -DBUILD_TESTS=OFF "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/include_picosha2.cmake" -DUSE_INTERNAL_SHA256=ON # avoids openssl, uses picosha2 -DWABT_INSTALL_CMAKEDIR=share/wabt -DWITH_EXCEPTIONS=ON OPTIONS_DEBUG -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() if ("tools" IN_LIST FEATURES) vcpkg_copy_tools( TOOL_NAMES spectest-interp wasm-decompile wasm-interp wasm-objdump wasm-stats wasm-strip wasm-validate wasm2c wasm2wat wast2json wat-desugar wat2wasm AUTO_CLEAN ) endif () file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/man") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/wabt/vcpkg.json ================================================ { "name": "wabt", "version": "1.0.40", "description": "The WebAssembly Binary Toolkit", "homepage": "https://github.com/WebAssembly/wabt/", "license": "Apache-2.0", "dependencies": [ "picosha2", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build wabt commandline tools" }, "wasm-rt-impl": { "description": "Include the WABT C runtime implementation library" } } } ================================================ FILE: ports/wampcc/add-include-chrono.patch ================================================ diff --git a/include/wampcc/protocol.h b/include/wampcc/protocol.h index e863768..3c86033 100644 --- a/include/wampcc/protocol.h +++ b/include/wampcc/protocol.h @@ -11,6 +11,7 @@ #include "wampcc/types.h" #include +#include #include #include #include ================================================ FILE: ports/wampcc/fix-dependencies.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ca5a738..5e65bcf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -95,9 +95,7 @@ set(HAVE_JANSSON ON) ## Find Threads on Linux systems, for compiling EXAMPLES or UTILS ## -if(CMAKE_HOST_UNIX) - find_package(Threads REQUIRED) -endif() +find_package(Threads REQUIRED) message(STATUS "OpenSSL_INCLUDE_DIR: " ${OPENSSL_INCLUDE_DIR}) message(STATUS "OpenSSL_LIBRARIES: " ${OPENSSL_LIBRARIES}) diff --git a/cmake/wampccConfig.cmake.in b/cmake/wampccConfig.cmake.in index 8c4bed5..7ef2483 100644 --- a/cmake/wampccConfig.cmake.in +++ b/cmake/wampccConfig.cmake.in @@ -13,9 +13,7 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}/find_modules") find_dependency(OpenSSL REQUIRED) find_dependency(LibUV REQUIRED) find_dependency(Jansson REQUIRED) -if(CMAKE_HOST_UNIX) - find_dependency(Threads REQUIRED) -endif() +find_dependency(Threads REQUIRED) # Restore old path set(CMAKE_MODULE_PATH "${wampcc_original_module_path}") diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index ee2bb06..0284808 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -14,10 +14,6 @@ endif() macro(Compile_Example example source_path) add_executable(${example} "${PROJECT_SOURCE_DIR}/examples/${source_path}/${example}.cc") target_link_libraries (${example} PRIVATE ${EXTRA_LIBS}) - - if (WIN32) - set_target_properties(${example} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib") - endif() endmacro() ================================================ FILE: ports/wampcc/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) message("Shared build is broken under Windows. See https://github.com/darrenjs/wampcc/issues/57") vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO darrenjs/wampcc REF 2963fd47b6775122aa45f83ed50a58ce2444ec64 SHA512 19883f1dffb1967e6da9f613bb1aff93693e66c2617e8ff53eabe7965a2a9ac83d6da67e1629666cbc8f349eba0466f54edd22fc3c0fe0b4bf7e6a6f33c9e25b HEAD_REF master PATCHES add-include-chrono.patch #https://github.com/darrenjs/wampcc/pull/85 fix-dependencies.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES examples BUILD_EXAMPLES utils BUILD_UTILS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS:BOOL=OFF # Tests build is broken ${FEATURE_OPTIONS} ) vcpkg_cmake_install() if("utils" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES admin AUTO_CLEAN) endif() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/wampcc") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/wampcc/vcpkg.json ================================================ { "name": "wampcc", "version-date": "2024-07-10", "description": "Wampcc is C++ library that implements the Web Application Messaging Protocol (WAMP) protocol.", "license": "MIT", "supports": "!(windows & arm64)", "dependencies": [ "jansson", "libuv", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "examples": { "description": "Build example apps" }, "utils": { "description": "Build utility apps", "supports": "!windows" } } } ================================================ FILE: ports/wangle/fix_dependency.patch ================================================ diff --git a/wangle/CMakeLists.txt b/wangle/CMakeLists.txt index 1655b55..9f0fd88 100644 --- a/wangle/CMakeLists.txt +++ b/wangle/CMakeLists.txt @@ -76,23 +76,35 @@ endif() if (NOT DEFINED fizz_SOURCE_DIR) find_package(fizz CONFIG REQUIRED) endif() -find_package(fmt CONFIG REQUIRED) find_package(OpenSSL REQUIRED) -find_package(Glog REQUIRED) add_compile_definitions(GLOG_USE_GLOG_EXPORT) -find_package(gflags CONFIG QUIET) +find_package(glog CONFIG REQUIRED) +find_package(gflags CONFIG REQUIRED) +find_package(Boost REQUIRED + COMPONENTS + filesystem + thread +) + if (gflags_FOUND) message(STATUS "Found gflags from package config") message(STATUS "gflags_CONFIG=${gflags_CONFIG}") else() find_package(Gflags REQUIRED) endif() -find_package(LibEvent MODULE REQUIRED) -find_package(DoubleConversion REQUIRED) +find_package(Libevent CONFIG REQUIRED) +find_package(double-conversion CONFIG REQUIRED) find_package(Threads REQUIRED) if (UNIX AND NOT APPLE) find_package(Librt) endif() +set(Boost_LIBRARIES Boost::boost Boost::filesystem Boost::thread ) +set(FOLLY_LIBRARIES Folly::folly) +set(FIZZ_LIBRARIES fizz::fizz) +set(GLOG_LIBRARIES glog::glog) +set(GFLAGS_LIBRARIES gflags::gflags) +set(LIBEVENT_LIB libevent::core libevent::extra) +set(DOUBLE_CONVERSION_LIBRARIES double-conversion::double-conversion) include(CheckAtomic) diff --git a/wangle/cmake/wangle-config.cmake.in b/wangle/cmake/wangle-config.cmake.in index 2ccf338..01d135f 100644 --- a/wangle/cmake/wangle-config.cmake.in +++ b/wangle/cmake/wangle-config.cmake.in @@ -12,7 +12,22 @@ @PACKAGE_INIT@ set_and_check(WANGLE_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") -set_and_check(WANGLE_CMAKE_DIR "@PACKAGE_CMAKE_INSTALL_DIR@") +set_and_check(WANGLE_CMAKE_DIR "${PACKAGE_PREFIX_DIR}/share/wangle") + +include(CMakeFindDependencyMacro) +find_dependency(folly CONFIG) +find_dependency(fizz CONFIG) +find_dependency(gflags CONFIG) +find_dependency(glog CONFIG) +find_dependency(Threads) +find_dependency(Libevent CONFIG) +find_dependency(OpenSSL) +find_dependency(double-conversion CONFIG) +find_dependency(Boost + COMPONENTS + filesystem + thread +) if (NOT TARGET wangle::wangle) include("${WANGLE_CMAKE_DIR}/wangle-targets.cmake") ================================================ FILE: ports/wangle/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/wangle REF "v${VERSION}" SHA512 47c55ff1cdf2a2f4be6300709b9b099de269a37df887f2de89bb4d0d78af4e245b7a900daf5bc116c30438e2ca4a96f8d03b06303a3448a842b2f671e63c7772 HEAD_REF main PATCHES fix_dependency.patch ) file(REMOVE "${SOURCE_PATH}/wangle/cmake/FindDoubleConversion.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGflags.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGlog.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindGMock.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindLibEvent.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindSodium.cmake" "${SOURCE_PATH}/build/fbcode_builder/CMake/FindZstd.cmake" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/wangle" OPTIONS -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DINCLUDE_INSTALL_DIR:STRING=include ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/wangle) file(READ "${CURRENT_PACKAGES_DIR}/share/wangle/wangle-targets.cmake" _contents) STRING(REPLACE "\${_IMPORT_PREFIX}/lib/" "\${_IMPORT_PREFIX}/\$<\$:debug/>lib/" _contents "${_contents}") STRING(REPLACE "\${_IMPORT_PREFIX}/debug/lib/" "\${_IMPORT_PREFIX}/\$<\$:debug/>lib/" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/wangle/wangle-targets.cmake" "${_contents}") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/include/wangle/util/test" "${CURRENT_PACKAGES_DIR}/include/wangle/ssl/test/certs" "${CURRENT_PACKAGES_DIR}/include/wangle/service/test" "${CURRENT_PACKAGES_DIR}/include/wangle/deprecated/rx/test" ) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/wangle/usage ================================================ The package wangle is compatible with built-in CMake targets: find_package(wangle REQUIRED) target_link_libraries(main PRIVATE wangle::wangle) ================================================ FILE: ports/wangle/vcpkg.json ================================================ { "name": "wangle", "version-string": "2026.02.23.00", "description": "Wangle is a framework providing a set of common client/server abstractions for building services in a consistent, modular, and composable way.", "homepage": "https://github.com/facebook/wangle", "license": "Apache-2.0", "dependencies": [ "boost-context", "boost-filesystem", "boost-regex", "boost-system", "boost-thread", "double-conversion", "fizz", "folly", "gflags", "glog", "libevent", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wasmedge/fix-build-error-with-fmt11.patch ================================================ diff --git a/lib/common/errinfo.cpp b/lib/common/errinfo.cpp index 69aa666..b7b0857 100644 --- a/lib/common/errinfo.cpp +++ b/lib/common/errinfo.cpp @@ -5,6 +5,8 @@ #include "common/errcode.h" #include "common/hexstr.h" +#include + using namespace std::literals; fmt::format_context::iterator ================================================ FILE: ports/wasmedge/fix_find_zstd.patch ================================================ diff --git a/cmake/Helper.cmake b/cmake/Helper.cmake index f9cdcf2..a270b05 100644 --- a/cmake/Helper.cmake +++ b/cmake/Helper.cmake @@ -221,8 +221,12 @@ if((WASMEDGE_LINK_LLVM_STATIC OR WASMEDGE_BUILD_STATIC_LIB) AND WASMEDGE_BUILD_A endif() if (APPLE AND LLVM_VERSION_MAJOR GREATER_EQUAL 15) # For LLVM 15 or greater on MacOS - find_package(zstd REQUIRED) - get_filename_component(ZSTD_PATH "${zstd_LIBRARY}" DIRECTORY) + find_package(zstd CONFIG REQUIRED) + if(CMAKE_BUILD_TYPE STREQUAL Debug) + set(ZSTD_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib") + else() + set(ZSTD_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib") + endif() list(APPEND WASMEDGE_LLVM_LINK_STATIC_COMPONENTS ${ZSTD_PATH}/libzstd.a ) ================================================ FILE: ports/wasmedge/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO WasmEdge/WasmEdge REF "${VERSION}" SHA512 fcd6b804876a5899ec8c21aa349b7ec3e8e0b87537e93d237cb14da2ecb162410ae9ad39212c5ab01e4408191768b806d84e55934616de094a696bf6f02fe1de HEAD_REF master PATCHES fix-build-error-with-fmt11.patch ) set(WASMEDGE_CMAKE_OPTIONS "") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_AOT_RUNTIME=OFF") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_STATIC_LIB=OFF") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_SHARED_LIB=ON") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_LINK_LLVM_STATIC=OFF") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_LINK_TOOLS_STATIC=OFF") else() list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_STATIC_LIB=ON") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_SHARED_LIB=OFF") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_LINK_LLVM_STATIC=ON") list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_LINK_TOOLS_STATIC=ON") endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools WASMEDGE_BUILD_TOOLS aot WASMEDGE_BUILD_AOT_RUNTIME plugins WASMEDGE_BUILD_PLUGINS ) # disabled due to build failure list(APPEND WASMEDGE_CMAKE_OPTIONS "-DWASMEDGE_BUILD_EXAMPLE=OFF") set(WASMEDGE_PLUGIN_WASI_NN_BACKEND "") if("plugin-wasi-nn-backend-openvino" IN_LIST FEATURES) list(APPEND WASMEDGE_PLUGIN_WASI_NN_BACKEND "OpenVINO") endif() if("plugin-wasi-nn-backend-pytorch" IN_LIST FEATURES) list(APPEND WASMEDGE_PLUGIN_WASI_NN_BACKEND "PyTorch") endif() if("plugin-wasi-nn-backend-tensorflow-lite" IN_LIST FEATURES) list(APPEND WASMEDGE_PLUGIN_WASI_NN_BACKEND "TensorflowLite") endif() if(NOT WASMEDGE_PLUGIN_WASI_NN_BACKEND STREQUAL "") list(JOIN WASMEDGE_PLUGIN_WASI_NN_BACKEND "," WASMEDGE_PLUGIN_WASI_NN_BACKEND) list(APPEND WASMEDGE_CMAKE_OPTIONS "-WASMEDGE_PLUGIN_WASI_NN_BACKEND=${WASMEDGE_PLUGIN_WASI_NN_BACKEND}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${WASMEDGE_CMAKE_OPTIONS} ${FEATURE_OPTIONS} OPTIONS_RELEASE -DCMAKE_INSTALL_BINDIR=${CURRENT_PACKAGES_DIR}/tools OPTIONS_DEBUG -DCMAKE_INSTALL_BINDIR=${CURRENT_PACKAGES_DIR}/debug/tools ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/wasmedge/vcpkg.json ================================================ { "name": "wasmedge", "version": "0.13.5", "port-version": 2, "description": "WasmEdge is a high-performance WebAssembly runtime for edge computing.", "homepage": "https://WasmEdge.org", "license": "Apache-2.0", "supports": "!windows", "dependencies": [ "boost-algorithm", "boost-align", "boost-predef", "spdlog", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "tools" ], "features": { "aot": { "description": "Build with the Ahead-of-Time compiler supporting", "dependencies": [ "llvm" ] }, "plugin-wasi-nn-backend-openvino": { "description": "Build the OpenVINO backend plugin for the WasmEdge WASI-NN extension", "supports": "linux & !static" }, "plugin-wasi-nn-backend-pytorch": { "description": "Build the PyTorch backend plugin for the WasmEdge WASI-NN extension", "supports": "linux & !static" }, "plugin-wasi-nn-backend-tensorflowlite": { "description": "Build the TensorFlow Lite backend plugin for the WasmEdge WASI-NN extension", "supports": "linux & !static" }, "plugins": { "description": "Build plugins", "supports": "!static" }, "tools": { "description": "Build tools" } } } ================================================ FILE: ports/wavelib/disable-test.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index e2e8a4d..d228001 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,7 +48,6 @@ endif() add_subdirectory(src) add_subdirectory(auxiliary) -add_subdirectory(test) install(DIRECTORY ${WAVELIB_SRC_ROOT}/header/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ================================================ FILE: ports/wavelib/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rafat/wavelib REF a92456d2e20451772dd76c2a0a3368537ee94184 SHA512 d14ebc0d96e86d9226fa346cb6ef157b2949985dfedf4228dd4356ccacaac48fde47edfcba31e7455b25dc95c7a1cb148ad6845143c17ae5972659c98e683865 HEAD_REF master PATCHES disable-test.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_UT=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/wavelib/vcpkg.json ================================================ { "name": "wavelib", "version-date": "2021-11-26", "description": "C implementation of wavelet transform (DWT,SWT and MODWT)", "homepage": "https://github.com/rafat/wavelib", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wavpack/enable-asm.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b5d26d..422d55e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.2...3.10) -project(WavPack VERSION 5.9.0) +project(WavPack VERSION 5.9.0 LANGUAGES C CXX ASM) file(READ "${CMAKE_CURRENT_SOURCE_DIR}/configure.ac" CONFIGURE_AC) string(REGEX MATCH "LT_CURRENT=([0-9]+)" LT_CURRENT "${CONFIGURE_AC}") @@ -33,10 +33,6 @@ endif() include(CheckLanguage) -check_language(ASM) -if(CMAKE_ASM_COMPILER) - enable_language(ASM) -endif() if(MSVC) if(WavPack_CPU_X86 OR WavPack_CPU_X64) ================================================ FILE: ports/wavpack/portfile.cmake ================================================ vcpkg_list(SET PATCHES) if (VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_MINGW) vcpkg_list(APPEND PATCHES "enable-asm.diff") endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO dbry/WavPack REF ${VERSION} SHA512 51534cb55b6efe5ec04feb3019bdadba58662fdb9df27921c92e31931ddc9fdd053412b29bc25c510ddcee47cbf07d2b2cdb292337972f0a6b8fc3f04531bff4 PATCHES ${PATCHES} ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWAVPACK_INSTALL_DOCS=OFF -DWAVPACK_BUILD_PROGRAMS=OFF -DWAVPACK_BUILD_COOLEDIT_PLUGIN=OFF -DWAVPACK_BUILD_WINAMP_PLUGIN=OFF -DBUILD_TESTING=OFF ) vcpkg_cmake_install() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/WavPack) endif() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/license.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/wavpack.pc" "-lwavpack" "-lwavpackdll") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/wavpack.pc" "-lwavpack" "-lwavpackdll") endif() endif() endif() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/wavpack/vcpkg.json ================================================ { "name": "wavpack", "version": "5.9.0", "description": "WavPack encode/decode library, command-line programs, and several plugins", "homepage": "https://github.com/dbry/WavPack", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wayland/cross-build.diff ================================================ diff --git a/src/meson.build b/src/meson.build index a8a1d2b..5190cdd 100644 --- a/src/meson.build +++ b/src/meson.build @@ -78,8 +78,7 @@ if get_option('scanner') endif if meson.is_cross_build() or not get_option('scanner') - scanner_dep = dependency('wayland-scanner', native: true, version: meson.project_version()) - wayland_scanner_for_build = find_program(scanner_dep.get_variable(pkgconfig: 'wayland_scanner')) + wayland_scanner_for_build = find_program('wayland_scanner') else wayland_scanner_for_build = wayland_scanner endif ================================================ FILE: ports/wayland/portfile.cmake ================================================ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "force-build" FORCE_BUILD ) if(NOT X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS AND NOT FORCE_BUILD) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() if(NOT FORCE_BUILD OR NOT X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES) message(FATAL_ERROR "To build wayland libraries the `force-build` feature must be enabled and the X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES triplet variable must be set.") endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO wayland/wayland REF ${VERSION} SHA512 454a4d7cab9fb9eafe3505114e9dfafed94c985fb7f156eb2d67f258bf2bf8418598ab75c237aa75fabe81a811981dbc72363870f2f81ddcbfb3adfaa95d4947 HEAD_REF master PATCHES cross-build.diff ) set(BINARIES "") set(OPTIONS "") if(VCPKG_CROSSCOMPILING) list(APPEND BINARIES "wayland_scanner = ['${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT}/wayland-scanner${VCPKG_HOST_EXECUTABLE_SUFFIX}']") list(APPEND OPTIONS -Dscanner=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -Ddocumentation=false -Ddtd_validation=false -Dtests=false ADDITIONAL_BINARIES ${BINARIES} ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() if(NOT VCPKG_CROSSCOMPILING) vcpkg_copy_tools(TOOL_NAMES wayland-scanner AUTO_CLEAN) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/wayland-scanner.pc" "bindir=\${prefix}/bin" "bindir=\${prefix}/tools/${PORT}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/wayland-scanner.pc" "bindir=\${prefix}/bin" "bindir=\${prefix}/../tools/${PORT}") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/wayland/vcpkg.json ================================================ { "name": "wayland", "version": "1.23.1", "description": "Core Wayland window system code and protocol", "homepage": "https://wayland.freedesktop.org", "license": "MIT", "supports": "!(windows | osx)", "features": { "force-build": { "description": [ "Build wayland libraries instead of depending on system ones.", "Requires triplet variable X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES to be set." ], "dependencies": [ "expat", "libffi", { "name": "vcpkg-tool-meson", "host": true }, { "name": "wayland", "host": true, "features": [ "force-build" ] } ] } } } ================================================ FILE: ports/wayland-protocols/cross-build.diff ================================================ diff --git a/meson.build b/meson.build index b9a32c8..1810ed0 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('wayland-protocols', version: '1.43', - meson_version: '>= 0.58.0', + meson_version: '>= 0.62.0', license: 'MIT/Expat', ) @@ -8,12 +8,7 @@ wayland_protocols_version = meson.project_version() fs = import('fs') -dep_scanner = dependency('wayland-scanner', - version: get_option('tests') ? '>=1.23.0' : '>=1.20.0', - native: true, - fallback: 'wayland' -) -prog_scanner = find_program(dep_scanner.get_variable(pkgconfig: 'wayland_scanner', internal: 'wayland_scanner')) +prog_scanner = find_program('wayland_scanner') stable_protocols = { 'linux-dmabuf': ['v1'], @@ -123,7 +118,7 @@ foreach protocol_file : protocol_files endforeach include_dirs = [] -if dep_scanner.version().version_compare('>=1.22.90') +if true subdir('include/wayland-protocols') include_dirs = ['include'] endif ================================================ FILE: ports/wayland-protocols/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "force-build" FORCE_BUILD ) if(NOT X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS AND NOT FORCE_BUILD) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() if(NOT FORCE_BUILD OR NOT X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES) message(FATAL_ERROR "To build wayland libraries the `force-build` feature must be enabled and the X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES triplet variable must be set.") endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org OUT_SOURCE_PATH SOURCE_PATH REPO wayland/wayland-protocols REF ${VERSION} SHA512 bcc938a5bac59020ded9c653a4d65cafc42eed7d72518125b6d3d710b468ab3db71d514437cbe80d24821fb65eb2b078cd906c18f35245b0c99ad892b0ba50d0 HEAD_REF master PATCHES cross-build.diff ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dtests=false ADDITIONAL_BINARIES "wayland_scanner = ['${CURRENT_HOST_INSTALLED_DIR}/tools/wayland/wayland-scanner${VCPKG_HOST_EXECUTABLE_SUFFIX}']" ) vcpkg_install_meson() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/wayland-protocols/vcpkg.json ================================================ { "name": "wayland-protocols", "version": "1.43", "description": "wayland-protocols contains Wayland protocols that add functionality not available in the Wayland core protocol.", "homepage": "https://wayland.freedesktop.org", "license": "MIT", "dependencies": [ "wayland" ], "features": { "force-build": { "description": [ "Build wayland libraries instead of depending on system ones.", "Requires triplet variable X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES to be set." ], "dependencies": [ { "name": "vcpkg-tool-meson", "host": true }, { "name": "wayland", "features": [ "force-build" ] }, { "name": "wayland", "host": true, "features": [ "force-build" ] } ] } } } ================================================ FILE: ports/wcslib/portfile.cmake ================================================ vcpkg_download_distfile(archive URLS "https://www.atnf.csiro.au/computing/software/wcs/wcslib-releases/wcslib-${VERSION}.tar.bz2" FILENAME "wcslib-${VERSION}.tar.bz2" SHA512 f63fe02d89b9296f2502dfb2e3715a0c20c1393d057396af9db7e0c240a6585faacb43c12c5e9456dc5e4ccec009b9d0a2534262515f5c83f11644fabe3d5a7f ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${archive}" ) vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE OPTIONS --disable-flex --disable-fortran --without-pgplot --without-cfitsio) vcpkg_make_install(MAKEFILE GNUmakefile) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/wcslib/usage ================================================ wcslib can be imported via CMake FindPkgConfig module: find_package(PkgConfig) pkg_check_modules(wcslib REQUIRED IMPORTED_TARGET wcslib) target_include_directories(main PRIVATE PkgConfig::wcslib) target_link_libraries(main PRIVATE PkgConfig::wcslib) ================================================ FILE: ports/wcslib/vcpkg.json ================================================ { "name": "wcslib", "version": "8.5", "port-version": 1, "description": "World Coordinate System (WCS) (Library)", "homepage": "https://www.atnf.csiro.au/people/mcalabre/WCS/", "supports": "!windows", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/webcraft/fix-concurrentqueue.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 619e8f2..f3f325a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,11 @@ target_include_directories(WebCraft PUBLIC target_link_libraries(WebCraft PUBLIC ${WEBCRAFT_PLATFORM_LIBS}) +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + find_package(concurrentqueue REQUIRED) + target_link_libraries(WebCraft PRIVATE concurrentqueue::concurrentqueue) +endif() + # --- 3. Install Rules --- # A. Install the Library and Headers diff --git a/src/webcraft/runtime.provider.cpp b/src/webcraft/runtime.provider.cpp index 0e1300e..8edfe75 100644 --- a/src/webcraft/runtime.provider.cpp +++ b/src/webcraft/runtime.provider.cpp @@ -47,7 +47,7 @@ void webcraft::async::detail::initialize_runtime() noexcept // to avoid collision with concurrentqueue's BLOCK_SIZE constant #pragma push_macro("BLOCK_SIZE") #undef BLOCK_SIZE -#include +#include #pragma pop_macro("BLOCK_SIZE") #include ================================================ FILE: ports/webcraft/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO adityarao2005/WebCraft REF v${VERSION} SHA512 d598d6303fefa1b18e7effb57da99e353a898817bde917588d103aabe0662eea07a3647dc9338c3cd6ba2d048423b7640cbb396f5fd42dd4f7997136b4bcb236 HEAD_REF main PATCHES fix-concurrentqueue.patch ) if (VCPKG_TARGET_IS_LINUX) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWEBCRAFT_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME WebCraft CONFIG_PATH share/WebCraft ) file(REMOVE "${CURRENT_PACKAGES_DIR}/include/webcraft/async/README.md" "${CURRENT_PACKAGES_DIR}/include/webcraft/async/asyncruntime.drawio.svg" "${CURRENT_PACKAGES_DIR}/include/webcraft/async/io/README.md" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/webcraft/usage ================================================ WebCraft provides CMake targets: find_package(WebCraft CONFIG REQUIRED) target_link_libraries(main PRIVATE WebCraft::WebCraft) ================================================ FILE: ports/webcraft/vcpkg.json ================================================ { "name": "webcraft", "version": "1.0.5", "description": "An async first C++ networking library leveraging powerful features of C++23 built for scale, speed, and ease.", "homepage": "https://github.com/adityarao2005/WebCraft/", "license": "MIT", "supports": "!(uwp | android | emscripten)", "dependencies": [ { "name": "concurrentqueue", "platform": "linux" }, { "name": "liburing", "platform": "linux" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/webthing-cpp/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bw-hro/webthing-cpp REF "v${VERSION}" SHA512 f4b854d9d363c4b3590232da31a150b3b4a3fb9150cd32558240b02ccf9c8453e79d2330c04076332927c5d488cc5b09ff28a40f225af21f52bd1eac7a4c421a HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES ssl WT_WITH_SSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWT_BUILD_EXAMPLES=OFF -DWT_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/webthing-cpp/usage ================================================ webthing-cpp is header-only and can be used from CMake via: find_path(WEBTHING_CPP_INCLUDE_DIRS "bw/webthing/webthing.hpp") target_include_directories(main PRIVATE ${WEBTHING_CPP_INCLUDE_DIRS}) However it requires find_package(nlohmann_json_schema_validator CONFIG REQUIRED) target_link_libraries(main PRIVATE nlohmann_json_schema_validator::validator) find_package(unofficial-uwebsockets CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::uwebsockets::uwebsockets) ================================================ FILE: ports/webthing-cpp/vcpkg.json ================================================ { "name": "webthing-cpp", "version": "1.2.0", "description": "Webthing-CPP is a modern CPP/C++17 implementation of the WebThings API.", "homepage": "https://github.com/bw-hro/webthing-cpp", "license": "MIT", "dependencies": [ "json-schema-validator", "mdns", "nlohmann-json", "uwebsockets", { "name": "vcpkg-cmake", "host": true } ], "features": { "ssl": { "description": "Support HTTPS via uwebsockets", "dependencies": [ { "name": "uwebsockets", "features": [ "ssl" ] } ] } } } ================================================ FILE: ports/webui/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) # Project name project(WebUILibrary) # Set C++ standard set(CMAKE_CXX_STANDARD 11) # Variables for library names, source files, etc. set(WEBUI_OUT_LIB_NAME "webui-2") # Conditional compilation for TLS option(WEBUI_USE_TLS "Enable TLS support" OFF) if(WEBUI_USE_TLS) find_package(OpenSSL REQUIRED) set(WEBUI_OUT_LIB_NAME "webui-2-secure") endif() # Source files (already filled) set(SOURCE_FILES src/civetweb/civetweb.c src/webui.c ) add_library(webui ${SOURCE_FILES}) target_include_directories(webui PUBLIC $ $) target_compile_definitions(webui PUBLIC NDEBUG NO_CACHING NO_CGI USE_WEBSOCKET) if(BUILD_SHARED_LIBS AND WIN32) target_compile_definitions(webui PRIVATE CIVETWEB_DLL_EXPORTS PUBLIC CIVETWEB_DLL_IMPORTS) endif() if(WEBUI_USE_TLS) target_compile_definitions(webui PUBLIC WEBUI_TLS WEBUI_TLS NO_SSL_DL OPENSSL_API_1_1) target_link_libraries(webui PRIVATE OpenSSL::SSL OpenSSL::Crypto) else() target_compile_definitions(webui PUBLIC NO_SSL) endif() set_target_properties(webui PROPERTIES OUTPUT_NAME ${WEBUI_OUT_LIB_NAME} PREFIX "") install(FILES include/webui.h include/webui.hpp DESTINATION include) # Install targets install(TARGETS webui EXPORT unofficial-webui ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) install(EXPORT unofficial-webui FILE unofficial-webui-config.cmake NAMESPACE unofficial::webui:: DESTINATION share/unofficial-webui ) ================================================ FILE: ports/webui/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webui-dev/webui REF "${VERSION}" SHA512 b82321195d0684c11380691ec07e359b348c7a73c649f3f55c45e2748051b7fdd17925bdc96dc32824eb8fde74bf54bb7d778ac5384c1bb47c7841586fe54033 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tls WEBUI_USE_TLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-webui) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/webui/vcpkg.json ================================================ { "name": "webui", "version": "2.4.2", "description": "Use any web browser or WebView as GUI, with your preferred language in the backend and modern web technologies in the frontend, all in a lightweight portable library.", "homepage": "https://github.com/webui-dev/webui", "license": "MIT", "supports": "!uwp & !(arm32 & android)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tls": { "description": "Enable TLS support", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/webview2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_UWP) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.Web.WebView2/${VERSION}" FILENAME "microsoft.web.webview2.${VERSION}.zip" SHA512 10048ce88c166b7f29a563fcdb9487d71bac5723777cd0a98b5c5a0e71cff344551a0bc27410b0cb0f8482a9ecdec7454a45ad0d2a7ae998fc347ead15598889 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" NO_REMOVE_ONE_LEVEL ) file(COPY "${SOURCE_PATH}/build/native/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(COPY "${SOURCE_PATH}/build/native/${VCPKG_TARGET_ARCHITECTURE}/WebView2LoaderStatic.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") else() file(COPY "${SOURCE_PATH}/build/native/include-winrt/" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(COPY "${SOURCE_PATH}/lib/Microsoft.Web.WebView2.Core.winmd" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/build/native/${VCPKG_TARGET_ARCHITECTURE}/WebView2Loader.dll.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/build/native/${VCPKG_TARGET_ARCHITECTURE}/WebView2Loader.dll" "${SOURCE_PATH}/runtimes/win-${VCPKG_TARGET_ARCHITECTURE}/native_uap/Microsoft.Web.WebView2.Core.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() if(NOT VCPKG_BUILD_TYPE) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") endif() file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-webview2-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-webview2") # The import libraries for webview fail with "Could not find proper second linker member" set(VCPKG_POLICY_EMPTY_PACKAGE enabled) configure_file("${SOURCE_PATH}/LICENSE.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/webview2/unofficial-webview2-config.cmake ================================================ get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) if(NOT TARGET unofficial::webview2::webview2) if(EXISTS "${_IMPORT_PREFIX}/lib/WebView2LoaderStatic.lib") add_library(unofficial::webview2::webview2 STATIC IMPORTED) set_target_properties(unofficial::webview2::webview2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" IMPORTED_LOCATION "${_IMPORT_PREFIX}/lib/WebView2LoaderStatic.lib") else() add_library(unofficial::webview2::webview2 SHARED IMPORTED) set_target_properties(unofficial::webview2::webview2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" IMPORTED_LOCATION "${_IMPORT_PREFIX}/bin/WebView2Loader.dll" IMPORTED_IMPLIB "${_IMPORT_PREFIX}/lib/WebView2Loader.dll.lib") endif() endif() unset(_IMPORT_PREFIX) ================================================ FILE: ports/webview2/vcpkg.json ================================================ { "name": "webview2", "version": "1.0.3800.47", "description": "The WebView2 control allows you to embed web technologies (HTML, CSS, and JavaScript) using Microsoft Edge", "homepage": "https://docs.microsoft.com/en-us/microsoft-edge/webview2", "documentation": "https://docs.microsoft.com/en-us/microsoft-edge/webview2", "license": "BSD-3-Clause", "supports": "windows & (x86 | x64 | arm64)", "dependencies": [ "wil" ] } ================================================ FILE: ports/wepoll/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.14) project(wepoll C) add_library(wepoll wepoll.c) if (MSVC) if (BUILD_SHARED_LIBS) target_compile_definitions( wepoll PRIVATE "-DWEPOLL_EXPORT=__declspec(dllexport)" ) endif () target_compile_options(wepoll PRIVATE /Wall /wd4127 /wd4201 /wd4242 /wd4710 /wd4711 /wd4820) if (MSVC_VERSION GREATER_EQUAL 1900) target_compile_options(wepoll PRIVATE /wd5045) endif () else () target_compile_definitions( wepoll PRIVATE "-DWEPOLL_EXPORT=__attribute__((visibility(\"default\")))" ) target_compile_options(wepoll PRIVATE -Wall -Wextra -Werror -fvisibility=hidden) endif () target_link_libraries(wepoll PUBLIC ws2_32) set_target_properties( wepoll PROPERTIES OUTPUT_NAME wepoll PUBLIC_HEADER wepoll.h ) install(TARGETS wepoll) ================================================ FILE: ports/wepoll/portfile.cmake ================================================ if(NOT VCPKG_TARGET_IS_WINDOWS) message(FATAL_ERROR "${PORT} only supports Windows.") endif() # We use `dist` branch instead of `master` branch here, # as suggested by the library author. # https://github.com/microsoft/vcpkg/pull/8280 vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO piscisaureus/wepoll REF v1.5.8 SHA512 e87fbdd0f64a06910fdf29565acff0443b500c409cf7456657829ece3674563581a5c9a298f9ac70f5a0bb78c0a5eb17cfd1a164ab5cbd6fdaacd19d015a3f85 HEAD_REF dist ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/wepoll/vcpkg.json ================================================ { "name": "wepoll", "version": "1.5.8", "port-version": 3, "description": "Fast epoll for windows", "homepage": "https://github.com/piscisaureus/wepoll", "supports": "windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/wg21-linear-algebra/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO BobSteagall/wg21 REF "v${VERSION}" SHA512 ab1db0cff476d2f63a5d1fcc1d3b40acbceeacae61a99d7ad0b8d8abe21413da97b71c088a331b70c0d0c3dc4615953485c68af46698ec7f0013e14bea5f9452 PATCHES use-external-mdspan.patch # https://github.com/BobSteagall/wg21/pull/80 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DLA_INSTALL=ON -DLA_BUILD_PACKAGE=OFF -DLA_ENABLE_TESTS=OFF -DUSE_EXTERNAL_MDSPAN=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME wg21_linear_algebra CONFIG_PATH lib/cmake/wg21_linear_algebra ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/cmake" "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) ================================================ FILE: ports/wg21-linear-algebra/use-external-mdspan.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7821b27..723a1a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,11 @@ include(GNUInstallDirs) include(CMakeDependentOption) include(CMakePackageConfigHelpers) -if(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo_multi.cmake) +option(USE_EXTERNAL_MDSPAN "Use external copy of mdspan" OFF) + +if(${USE_EXTERNAL_MDSPAN}) + find_package(mdspan CONFIG REQUIRED) +elseif(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo_multi.cmake) include(${CMAKE_BINARY_DIR}/conanbuildinfo_multi.cmake) conan_basic_setup() find_package(mdspan CONFIG REQUIRED) ================================================ FILE: ports/wg21-linear-algebra/vcpkg.json ================================================ { "name": "wg21-linear-algebra", "version": "0.7.3", "port-version": 1, "description": "A linear algebra proposal for the C++ standard library", "license": "NCSA", "dependencies": [ "mdspan", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wg21-sg14/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO WG21-SG14/SG14 REF 836e4d202249a86ba5ff56139c35e0afa60e7a1c SHA512 002a6b83ecfb41bde978e912feda77639460ff376ad634e1cd0a908e2be35863489132db579d399bb6e5087fcb0355a222e611eae58eb0c2d8372bdd25f60e07 HEAD_REF master ) file(COPY ${SOURCE_PATH}/SG14 DESTINATION ${CURRENT_PACKAGES_DIR}/include) # Handle copyright file(STRINGS "${SOURCE_PATH}/SG14/flat_map.h" SOURCE_LINES) list(SUBLIST SOURCE_LINES 0 26 SOURCE_LINES) list(JOIN SOURCE_LINES "\n" _contents) file(READ "${SOURCE_PATH}/Docs/plf_licensing.txt" plf_licensing_contents) file(WRITE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright "${_contents}\n${plf_licensing_contents}") ================================================ FILE: ports/wg21-sg14/vcpkg.json ================================================ { "name": "wg21-sg14", "version-date": "2019-08-13", "port-version": 2, "description": "A library for Study Group 14 of Working Group 21 (C++)", "homepage": "https://github.com/WG21-SG14/SG14" } ================================================ FILE: ports/whereami/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(whereami) set(PROJECT_VERSION ${PROJECT_VERSION_STRING}) add_library(whereami STATIC src/whereami.c src/whereami.h) add_library(whereami::whereami ALIAS whereami) target_include_directories(whereami PRIVATE $) set_target_properties(whereami PROPERTIES PUBLIC_HEADER "src/whereami.h") include(GNUInstallDirs) install(TARGETS whereami EXPORT whereamiTargets PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) # Create and install package files include(CMakePackageConfigHelpers) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/unofficial-whereamiConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/unofficial-whereamiConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-whereami NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/unofficial-whereamiConfigVersion.cmake COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-whereamiConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/unofficial-whereamiConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-whereami ) # Export Targets and install that to unofficial-whereamiTargets.cmake install( EXPORT whereamiTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-whereami NAMESPACE unofficial::whereami:: FILE unofficial-whereamiTargets.cmake ) ================================================ FILE: ports/whereami/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gpakosz/whereami REF dcb52a058dc14530ba9ae05e4339bd3ddfae0e0e SHA512 afd5999316c398218d8a401b6dc6a9885c9e474bde6804f464d55eca42fdee126329856da5b337bdfad5582e6ed1364fc86a47c92b49b6d57f1bea4e3d5120e0 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-whereamiConfig.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DPROJECT_VERSION_STRING=${VERSION}) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-whereami CONFIG_PATH "lib/cmake/unofficial-whereami") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.MIT" "${SOURCE_PATH}/LICENSE.WTFPLv2") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/whereami/unofficial-whereamiConfig.cmake.in ================================================ @PACKAGE_INIT@ include("${CMAKE_CURRENT_LIST_DIR}/unofficial-whereamiTargets.cmake") ================================================ FILE: ports/whereami/vcpkg.json ================================================ { "name": "whereami", "version-date": "2024-08-26", "description": "A drop-in two files library to locate the current executable and the current module on the file system.", "homepage": "https://github.com/gpakosz/whereami", "license": "MIT OR WTFPL", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/whisper-cpp/cmake-config.diff ================================================ diff --git a/cmake/whisper-config.cmake.in b/cmake/whisper-config.cmake.in index 6a3fa227..f4f4162a 100644 --- a/cmake/whisper-config.cmake.in +++ b/cmake/whisper-config.cmake.in @@ -12,8 +12,9 @@ set(GGML_ACCELERATE @GGML_ACCELERATE@) @PACKAGE_INIT@ set_and_check(WHISPER_INCLUDE_DIR "@PACKAGE_WHISPER_INCLUDE_INSTALL_DIR@") -set_and_check(WHISPER_LIB_DIR "@PACKAGE_WHISPER_LIB_INSTALL_DIR@") -set_and_check(WHISPER_BIN_DIR "@PACKAGE_WHISPER_BIN_INSTALL_DIR@") +# In vcpkg, the following would be subject to vcpkg build type. +# set_and_check(WHISPER_LIB_DIR "@PACKAGE_WHISPER_LIB_INSTALL_DIR@") +# set_and_check(WHISPER_BIN_DIR "@PACKAGE_WHISPER_BIN_INSTALL_DIR@") # Ensure transient dependencies satisfied @@ -50,6 +51,12 @@ find_library(whisper_LIBRARY whisper set(_whisper_link_deps "Threads::Threads" "@WHISPER_EXTRA_LIBS@") set(_whisper_transient_defines "@WHISPER_TRANSIENT_DEFINES@") +if(NOT TARGET whisper) +if(NOT "@BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + find_dependency(ggml) + list(APPEND _whisper_link_deps ggml::ggml) +endif() add_library(whisper UNKNOWN IMPORTED) set_target_properties(whisper @@ -61,5 +68,6 @@ set_target_properties(whisper IMPORTED_LOCATION "${whisper_LIBRARY}" INTERFACE_COMPILE_FEATURES cxx_std_11 POSITION_INDEPENDENT_CODE ON ) +endif() check_required_components(whisper) ================================================ FILE: ports/whisper-cpp/pkgconfig.diff ================================================ diff --git a/cmake/whisper.pc.in b/cmake/whisper.pc.in index 00ec7912..ccc2efbb 100644 --- a/cmake/whisper.pc.in +++ b/cmake/whisper.pc.in @@ -6,5 +6,6 @@ includedir=${prefix}/include Name: whisper Description: Port of OpenAI's Whisper model in C/C++ Version: @PROJECT_VERSION@ -Libs: -L${libdir} -lggml -lggml-base -lwhisper +Libs: -L${libdir} -lwhisper +Requires.private: ggml Cflags: -I${includedir} ================================================ FILE: ports/whisper-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ggml-org/whisper.cpp REF "v${VERSION}" SHA512 be5b02e4d48a92d632e5f2385c42c0c74b176021fb2a68fb6961ef3c83e85fe4930d168b6436667f62c4637315a321c5825644c6f459f6b6ed0660306a1bb4e0 HEAD_REF master PATCHES cmake-config.diff pkgconfig.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/ggml") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # updating bindings/javascript/package.json OPTIONS -DWHISPER_ALL_WARNINGS=OFF -DWHISPER_BUILD_EXAMPLES=OFF -DWHISPER_BUILD_SERVER=OFF -DWHISPER_BUILD_TESTS=OFF -DWHISPER_CCACHE=OFF -DWHISPER_USE_SYSTEM_GGML=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/whisper") vcpkg_fixup_pkgconfig() file(INSTALL "${SOURCE_PATH}/models/convert-pt-to-ggml.py" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/whisper-cpp/vcpkg.json ================================================ { "name": "whisper-cpp", "version": "1.8.3", "description": "Port of OpenAI's Whisper model in C/C++", "homepage": "https://github.com/ggml-org/whisper.cpp", "license": "MIT", "dependencies": [ "ggml", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuda": { "description": "Enable CUDA support for GPU acceleration", "dependencies": [ "cuda", { "name": "ggml", "features": [ "cuda" ] } ] }, "metal": { "description": "Enable Metal support for GPU acceleration on macOS", "supports": "osx", "dependencies": [ { "name": "ggml", "features": [ "metal" ] } ] }, "vulkan": { "description": "Enable Vulkan support for GPU acceleration", "dependencies": [ { "name": "ggml", "features": [ "vulkan" ] }, "vulkan", "vulkan-headers" ] } } } ================================================ FILE: ports/wiiuse/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wiiuse/wiiuse REF "${VERSION}" SHA512 b8cbc585f68b62b6bd3faac993130d616c6479f673ccfdc508497fb11a3afca7c86fa5bdf3780c757ef8846d993984dacede1b0365dea4123136bbc393f0d05e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLE=OFF -DBUILD_EXAMPLE_SDL=OFF -DINSTALL_EXAMPLES=OFF ) vcpkg_cmake_install() vcpkg_fixup_pkgconfig() file(REMOVE "${CURRENT_PACKAGES_DIR}/CHANGELOG.mkd") file(REMOVE "${CURRENT_PACKAGES_DIR}/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/README.mkd") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/CHANGELOG.mkd") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/LICENSE") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/README.mkd") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/wiiuse/vcpkg.json ================================================ { "name": "wiiuse", "version": "0.15.6", "description": "WiiUse \"feature complete\" cross-platform Wii Remote access library", "homepage": "https://github.com/wiiuse/wiiuse", "license": "GPL-3.0-only", "supports": "!uwp & !android", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/wil/cpp14.patch ================================================ diff --git a/include/wil/resource.h b/include/wil/resource.h index c2ff77e..ca7db78 100644 --- a/include/wil/resource.h +++ b/include/wil/resource.h @@ -1245,6 +1245,7 @@ public: { reset_array(ElementDeleter()); +#if __cpp_if_constexpr >= 201606L // If the deleter has overloads that can accept either just the pointer, or the pointer and size, we prioritize the // pointer-only version, since that is the version we initially supported. And if we can't invoke it with either // parameter set, we'll allow the compiler to still try to invoke the pointer-only version and cause it to emit an @@ -1257,6 +1258,10 @@ public: { ArrayDeleter()(m_ptr, m_size); } +#else + // No C++17 support... fall back to the old behavior and assume just a pointer + ArrayDeleter()(m_ptr); +#endif m_ptr = nullptr; m_size = size_type{}; @@ -8322,10 +8327,12 @@ namespace details { }; +#if __cpp_lib_scoped_lock >= 201703L template struct lock_proof_traits> : exclusive_lock_proof { }; +#endif } // namespace details /// @endcond ================================================ FILE: ports/wil/portfile.cmake ================================================ #header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Microsoft/wil REF "v${VERSION}" SHA512 0ee05a1beccf17478a34f5c9251a9291b98584e87f113dbeff8cb0466ca53dc60740a4dc961d67bbe3cf77181571cf76d3f204070fa46cd6f3a595305ffe7700 HEAD_REF master PATCHES cpp14.patch ) # WIL is header-only, so we don't need to build it in both modes set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWIL_BUILD_TESTS=OFF -DWIL_BUILD_PACKAGING=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/WIL) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") # Install natvis files file(INSTALL "${SOURCE_PATH}/natvis/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/natvis") # Install copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/wil/vcpkg.json ================================================ { "name": "wil", "version": "1.0.260126.7", "description": "The Windows Implementation Libraries (WIL) is a header-only C++ library created to make life easier for developers on Windows through readable type-safe C++ interfaces for common Windows coding patterns.", "homepage": "https://github.com/microsoft/wil", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wildcards/install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index b6cae16..fdc48f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,3 +52,20 @@ if(WILDCARDS_CLANGFORMAT) clangformat_setup("${clangformat_srcs}") endif() + +add_library(wildcards INTERFACE) + +install(TARGETS wildcards + EXPORT unofficial-wildcards-targets + INCLUDES DESTINATION include) + +install(EXPORT unofficial-wildcards-targets + FILE unofficial-wildcards-config.cmake + NAMESPACE unofficial::wildcards:: + DESTINATION share/unofficial-wildcards) + +include(GNUInstallDirs) +install( + DIRECTORY include/ + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/wildcards" +) ================================================ FILE: ports/wildcards/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zemasoft/wildcards REF "v${VERSION}" SHA512 a739eaf567ec3e8a42c99dc694225e434e72e6ed83ab57d3a05fa3a710bfae7d15a6e7fcbf22f29f6d70a74941db73d976650cfc77b69441c6baa36f6727eb1f HEAD_REF main PATCHES install.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWILDCARDS_BUILD_TESTS=OFF -DWILDCARDS_BUILD_EXAMPLES=OFF -DWILDCARDS_ENABLE_WERROR=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-wildcards) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE_1_0.txt") ================================================ FILE: ports/wildcards/vcpkg.json ================================================ { "name": "wildcards", "version": "1.4.0", "description": "A simple C++ header-only template library implementing matching using wildcards", "homepage": "https://github.com/zemasoft/wildcards", "license": "BSL-1.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wildmidi/fix-include-path.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 73fc68c..4a606d6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,6 +90,11 @@ IF (BUILD_SHARED_LIBS) OUTPUT_NAME ${LIBRARY_DYN_NAME} CLEAN_DIRECT_OUTPUT 1 ) + TARGET_INCLUDE_DIRECTORIES(libwildmidi INTERFACE + $ + $ + ) + IF (WIN32) SET_TARGET_PROPERTIES(libwildmidi PROPERTIES DEFINE_SYMBOL DLL_EXPORT ================================================ FILE: ports/wildmidi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Mindwerks/wildmidi REF "wildmidi-${VERSION}" SHA512 b7259578c1b334de13b49e27aef32ad43e41bc04f569601b765ecea789b8da536d07afdb581986b7c91de552db2a625b13d061e52a2c8c51652f3cf3d1a30000 HEAD_REF master PATCHES fix-include-path.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" WANT_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWANT_PLAYER=OFF -DWANT_STATIC=${WANT_STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME WildMidi CONFIG_PATH lib/cmake/WildMidi) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) string(REPLACE "-dynamic" "" lib_suffix "-${VCPKG_LIBRARY_LINKAGE}") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/wildmidi.pc" " -lWildMidi" " -llibWildMidi${lib_suffix}") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/wildmidi.pc" " -lWildMidi" " -llibWildMidi${lib_suffix}") endif() endif() if(WANT_STATIC) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/wildmidi_lib.h" "defined(WILDMIDI_STATIC)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/license/LGPLv3.txt") ================================================ FILE: ports/wildmidi/vcpkg.json ================================================ { "name": "wildmidi", "version": "0.4.6", "port-version": 1, "description": "MIDI software synthesizer library.", "homepage": "https://github.com/Mindwerks/wildmidi", "license": "LGPL-3.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wincrypt/portfile.cmake ================================================ vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\Crypt32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\Crypt32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() if (NOT EXISTS "${LIBFILEPATH}") message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if (WINDOWS_SDK MATCHES "10.") file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license") elseif(WINDOWS_SDK MATCHES "8.") file(WRITE ${CURRENT_PACKAGES_DIR}/share/wincrypt/copyright "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license") endif() # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/wincrypt/vcpkg.json ================================================ { "name": "wincrypt", "version": "0.0", "port-version": 4, "description": "Windows Cryptography.", "supports": "windows" } ================================================ FILE: ports/winlamb/portfile.cmake ================================================ # Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rodrigocfd/winlamb REF b7a6767994b2a8c0782c6b6e7b9e78a224a078cf SHA512 343a900ef003eac47489b34d2b5affc1f133929ff036d535f604fbc5771767075835eed59acd7b93674729badf28ac99f6ba10ac3bf34af6aa4ac49021925e7c HEAD_REF master ) file(GLOB WINLAMB_PUBLIC_HEADERS ${SOURCE_PATH}/*.h) file(GLOB WINLAMB_INTERNAL_HEADERS ${SOURCE_PATH}/internals/*.h) file(INSTALL ${WINLAMB_PUBLIC_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) file(INSTALL ${WINLAMB_INTERNAL_HEADERS} DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}/internals) file(INSTALL ${SOURCE_PATH}/win10.exe.manifest DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/winlamb/vcpkg.json ================================================ { "name": "winlamb", "version-date": "2020-10-15", "description": "A lightweight modern C++11 library for Win32 API, using lambdas to handle Windows messages.", "homepage": "https://github.com/rodrigocfd/winlamb", "license": "MIT", "supports": "windows" } ================================================ FILE: ports/winpcap/Packet.vcxproj.in ================================================ Debug No NetMon Win32 Debug No NetMon x64 Debug NT4 Win32 Debug NT4 x64 Debug Win32 Debug x64 Release LOG_TO_FILE Win32 Release LOG_TO_FILE x64 Release No NetMon LOG_TO_FILE Win32 Release No NetMon LOG_TO_FILE x64 Release No NetMon Win32 Release No NetMon x64 Release NT4 LOG_TO_FILE Win32 Release NT4 LOG_TO_FILE x64 Release NT4 Win32 Release NT4 x64 Release Win32 Release x64 {17D62EEB-EABF-4D94-B1FF-BCDAAFA7DA52} Packet Win32Proj StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode StaticLibrary v141 Unicode true StaticLibrary v141 Unicode StaticLibrary v141 Unicode true StaticLibrary v141 Unicode StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode true StaticLibrary v141 Unicode StaticLibrary v141 Unicode true StaticLibrary v141 Unicode StaticLibrary v141 Unicode true StaticLibrary v141 Unicode <_ProjectFileVersion>15.0.28127.55 $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ true $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ true $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ true $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ true $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ true $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ true $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false Disabled ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 EditAndContinue version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX86 MachineX86 X64 Disabled ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 ProgramDatabase version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 MachineX86 X64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 Disabled ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS; _WINNT4;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 EditAndContinue _UNICODE;UNICODE;_WINNT4;%(PreprocessorDefinitions) version.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX86 X64 Disabled ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PACKET_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 ProgramDatabase version.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX64 ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; _WINNT4;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINNT4;%(PreprocessorDefinitions) version.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 X64 ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PACKET_EXPORTS;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 Disabled ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 EditAndContinue _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX86 X64 Disabled ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level4 ProgramDatabase _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows MachineX64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 X64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;_DEBUG_TO_FILE;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 X64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;_DEBUG_TO_FILE;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;HAVE_IPHELPER_API;_DEBUG_TO_FILE;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 X64 ..\..\..\Common;..\..\driver;..\..\..\..\AirPcap_devpack\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; ;HAVE_IPHELPER_API;_DEBUG_TO_FILE;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINVISTA;%(PreprocessorDefinitions) version.lib;setupapi.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS; _WINNT4;_DEBUG_TO_FILE;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase _UNICODE;UNICODE;_WINNT4;%(PreprocessorDefinitions) version.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX86 X64 ..\..\..\Common;..\..\driver;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PACKET_EXPORTS;%(PreprocessorDefinitions) MultiThreaded Level4 ProgramDatabase version.lib;%(AdditionalDependencies) ..\packet.def true Windows true true MachineX64 true true true ================================================ FILE: ports/winpcap/bison-flex.patch ================================================ diff --git a/wpcap/PRJ/build_scanner_parser.bat b/wpcap/PRJ/build_scanner_parser.bat index 31786d596..54cba739d 100644 --- a/wpcap/PRJ/build_scanner_parser.bat +++ b/wpcap/PRJ/build_scanner_parser.bat @@ -4,7 +4,7 @@ echo Building the libpcap parser and scanner... del /Q /F ..\libpcap\grammar.c > nul 2> nul del /Q /F ..\libpcap\tokdefs.h > nul 2> nul -bison -y -p pcap_ -d ../libpcap/GRAMMAR.Y > nul +win_bison -y -p pcap_ -d ../libpcap/GRAMMAR.Y > nul if not %ERRORLEVEL% == 0 ( echo failure in generating the grammar. goto end @@ -14,7 +14,7 @@ move y.tab.c ..\libpcap\grammar.c move y.tab.h ..\libpcap\tokdefs.h del /Q /F ..\libpcap\scanner.c >/nul 2>/nul -flex -Ppcap_ -t ../libpcap/scanner.l > ../libpcap/scanner.c +win_flex -Ppcap_ -t ../libpcap/scanner.l > ../libpcap/scanner.c if not %ERRORLEVEL% == 0 ( echo failure in generating the scanner. ================================================ FILE: ports/winpcap/packetNtx.patch.in ================================================ diff --git a/packetNtx/Dll/Project/Packet.dsp b/packetNtx/Dll/Project/Packet.dsp index 6e69440..fc520ce 100644 --- a/packetNtx/Dll/Project/Packet.dsp +++ b/packetNtx/Dll/Project/Packet.dsp @@ -55,8 +55,8 @@ RSC=rc.exe # PROP Intermediate_Dir "Release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -87,8 +87,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_WANPACKET_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -120,8 +120,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "NT4_Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -154,8 +154,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "NT4_Release" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -187,8 +187,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Debug_LOG_TO_FILE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -221,8 +221,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Release_LOG_TO_FILE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c -# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /FR /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /I "../../../dag/include" /I "../../../dag/drv/windows" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_DAG_API" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c # SUBTRACT CPP /u # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 @@ -255,8 +255,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "NT4_Debug_LOG_TO_FILE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -289,8 +289,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "NT4_Release_LOG_TO_FILE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../common" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_WINNT4" /D "_DEBUG_TO_FILE" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /D "_WINNT4" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -323,8 +323,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Debug_No_AirPcap" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -357,8 +357,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Release_No_AirPcap" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_AIRPCAP_API" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../z1211u/airpcap/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -390,8 +390,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Debug_No_NpfIm" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /D "_DBG" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -424,8 +424,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Release_No_NpfIm" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /I "../../../../NpfIm_DevPack" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -457,8 +457,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Debug_Vista" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -491,8 +491,8 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Release_Vista" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -525,9 +525,9 @@ PostBuild_Cmds=copy $(OutDir)\packet.lib . # PROP Intermediate_Dir "Release_Vista_LOG_TO_FILE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_WANPACKET_API" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /D "HAVE_NPFIM_API" /FR /YX /FD /c # SUBTRACT BASE CPP /u -# ADD CPP /nologo /MT /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "HAVE_AIRPCAP_API" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W4 /GX /Zi /O2 /I "../../../dag/include" /I "../../../dag/drv/windows" /I "../../../common" /I "../../../../Airpcap_Devpack/include/" /D "NDEBUG" /D "_DEBUG_TO_FILE" /D "WIN32" /D "_WINDOWS" /D "HAVE_IPHELPER_API" /FR /YX /FD /c # SUBTRACT CPP /u # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 diff --git a/packetNtx/Dll/Project/Packet.vcproj b/packetNtx/Dll/Project/Packet.vcproj index 8be719e..e16afe2 100644 --- a/packetNtx/Dll/Project/Packet.vcproj +++ b/packetNtx/Dll/Project/Packet.vcproj @@ -22,7 +22,7 @@ Name="Debug|Win32" OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86" IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86" - ConfigurationType="2" + ConfigurationType="@LIBRARY_LINKAGE@" CharacterSet="1" > @@ -201,7 +201,7 @@ @@ -280,7 +280,7 @@ @@ -573,7 +573,7 @@ Name="Release NT4|x64" OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64" IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64" - ConfigurationType="2" + ConfigurationType="@LIBRARY_LINKAGE@" CharacterSet="1" WholeProgramOptimization="1" > @@ -614,7 +614,7 @@ /> @@ -833,7 +833,7 @@ @@ -913,7 +913,7 @@ @@ -992,7 +992,7 @@ @@ -1071,7 +1071,7 @@ @@ -1149,7 +1149,7 @@ @@ -1229,7 +1229,7 @@ @@ -1365,7 +1365,7 @@ Name="Release NT4 LOG_TO_FILE|x64" OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x64" IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x64" - ConfigurationType="2" + ConfigurationType="@LIBRARY_LINKAGE@" CharacterSet="1" WholeProgramOptimization="1" > @@ -1406,7 +1406,7 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - nul copy # PROP Intermediate_Dir "Debug_REMOTE_DAG" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D "HAVE_ADDRINFO" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "_DEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /FR /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" @@ -173,8 +173,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy # PROP Intermediate_Dir "Release_REMOTE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -208,8 +208,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy # PROP Intermediate_Dir "Release_REMOTE_DAG" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /D HAVE_ADDRINFO=1 /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "NDEBUG" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_REMOTE" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /D "HAVE_AIRPCAP_API" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -243,8 +243,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy # PROP Intermediate_Dir "Release_REMOTE_NO_AIRPCAP" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@ /W3 /GX /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD CPP /nologo /@CRT_LINKAGE@ /W3 /GX /Zi /O2 /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D HAVE_ADDRINFO=1 /D "NDEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /YX /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x410 /d "NDEBUG" @@ -278,8 +278,8 @@ PostBuild_Cmds=mkdir $(OutDir)\..\..\LIB > nul copy # PROP Intermediate_Dir "Debug_REMOTE_NO_AIRPCAP" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c +# ADD CPP /nologo /@CRT_LINKAGE@d /W3 /Gm /GX /ZI /Od /I "../libpcap/" /I "../libpcap/bpf" /I "../libpcap/lbl" /I "../libpcap/Win32/Include" /I "../../common" /I "../Win32-Extensions" /I "../../../Airpcap_Devpack/include" /D "HAVE_ADDRINFO" /D "_DEBUG" /D "HAVE_REMOTE" /D "YY_NEVER_INTERACTIVE" /D yylval=pcap_lval /D "_USRDLL" /D "LIBPCAP_EXPORTS" /D "HAVE_STRERROR" /D "__STDC__" /D "INET6" /D "_WINDOWS" /D SIZEOF_CHAR=1 /D SIZEOF_SHORT=2 /D SIZEOF_INT=4 /D "WPCAP" /D "HAVE_VSNPRINTF" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x410 /d "_DEBUG" diff --git a/wpcap/PRJ/wpcap.vcproj b/wpcap/PRJ/wpcap.vcproj index c1d56b4..40a8ce1 100644 --- a/wpcap/PRJ/wpcap.vcproj +++ b/wpcap/PRJ/wpcap.vcproj @@ -22,7 +22,7 @@ Name="Debug|Win32" OutputDirectory="$(ProjectDir)\$(ConfigurationName)\x86" IntermediateDirectory="$(ProjectDir)\$(ConfigurationName)\x86" - ConfigurationType="2" + ConfigurationType="@LIBRARY_LINKAGE@" CharacterSet="2" > @@ -205,7 +205,7 @@ @@ -285,7 +285,7 @@ @@ -525,7 +525,7 @@ @@ -605,7 +605,7 @@ #if !defined(HAVE_SNPRINTF) -#define snprintf pcap_snprintf -extern int snprintf (char *, size_t, const char *, ...); +#define snprintf _snprintf +//#define snprintf pcap_snprintf +//extern int snprintf (char *, size_t, const char *, ...); #endif #if !defined(HAVE_VSNPRINTF) diff --git a/wpcap/libpcap/rpcapd/rpcapd.dsp b/wpcap/libpcap/rpcapd/rpcapd.dsp index f7c00af..1cd823e 100644 --- a/wpcap/libpcap/rpcapd/rpcapd.dsp +++ b/wpcap/libpcap/rpcapd/rpcapd.dsp @@ -44,8 +44,8 @@ RSC=rc.exe # PROP Intermediate_Dir "Debug_REMOTE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe @@ -69,8 +69,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Debug_REMOTE_DAG" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /FR /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /FR /YX /FD /GZ /c # ADD BASE RSC /l 0x409 /d "_DEBUG" # ADD RSC /l 0x409 /d "_DEBUG" BSC32=bscmake.exe @@ -94,8 +94,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Release_REMOTE" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c -# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c +# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c +# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe @@ -120,8 +120,8 @@ LINK32=link.exe # PROP Intermediate_Dir "Release_REMOTE_DAG" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c -# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_SNPRINTF" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c +# ADD BASE CPP /nologo /W3 /GX /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /YX /FD /c +# ADD CPP /nologo /W3 /GX /Zi /O2 /I "../" /I "../bpf/" /I "../Win32/Include" /I "../../../Common/" /I "win32-pthreads" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "HAVE_VSNPRINTF" /D "HAVE_REMOTE" /D "HAVE_DAG_API" /YX /FD /c # ADD BASE RSC /l 0x409 /d "NDEBUG" # ADD RSC /l 0x409 /d "NDEBUG" BSC32=bscmake.exe diff --git a/wpcap/libpcap/rpcapd/rpcapd.vcproj b/wpcap/libpcap/rpcapd/rpcapd.vcproj index 882fbac..b89f1f9 100644 --- a/wpcap/libpcap/rpcapd/rpcapd.vcproj +++ b/wpcap/libpcap/rpcapd/rpcapd.vcproj @@ -41,7 +41,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\;..\Win32\include;..\..\..\Common;.\Win32-pthreads;..\..\Win32-Extensions" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_SNPRINTF;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;HAVE_VSNPRINTF;HAVE_REMOTE;WPCAP;_CRT_SECURE_NO_DEPRECATE;HAVE_TC_API" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" @@ -119,7 +119,7 @@ Debug No AirPcap Win32 Debug No AirPcap x64 Debug Win32 Debug x64 Release No AirPcap Win32 Release No AirPcap x64 Release Win32 Release x64 {20B438DA-CBEC-4AFF-B11C-67B301D14AD5} wpcap Win32Proj @lib_type@ v141 MultiByte true @lib_type@ v141 MultiByte @lib_type@ v141 MultiByte true @lib_type@ v141 MultiByte @lib_type@ v141 MultiByte true @lib_type@ v141 MultiByte @lib_type@ v141 MultiByte true @lib_type@ v141 MultiByte <_ProjectFileVersion>15.0.28127.55 $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ true $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ true $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ true $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ true $(ProjectDir)\$(Configuration)\x86\ $(ProjectDir)\$(Configuration)\x86\ false $(ProjectDir)\$(Configuration)\x64\ $(ProjectDir)\$(Configuration)\x64\ false Disabled ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level3 None ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Debug\x86;@CURRENT_PACKAGES_DIR@/debug/lib;%(AdditionalLibraryDirectories) false wpcap.def true Windows MachineX86 X64 Disabled ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Debug\x64;@CURRENT_PACKAGES_DIR@/debug/lib;%(AdditionalLibraryDirectories) false wpcap.def true Windows MachineX64 ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) MultiThreaded Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Release\x86;@CURRENT_PACKAGES_DIR@/lib;%(AdditionalLibraryDirectories) wpcap.def true Windows true true MachineX86 X64 ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;..\..\..\AirPcap_DevPack\include;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;HAVE_AIRPCAP_API;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) MultiThreaded Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Release\x64;@CURRENT_PACKAGES_DIR@/lib;%(AdditionalLibraryDirectories) wpcap.def true Windows true true MachineX64 Disabled ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level3 None ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Debug\x86;@CURRENT_PACKAGES_DIR@/debug/lib;%(AdditionalLibraryDirectories) false wpcap.def true Windows MachineX86 MachineX86 X64 Disabled ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;_DEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Debug\x64;@CURRENT_PACKAGES_DIR@/debug/lib;%(AdditionalLibraryDirectories) false wpcap.def true Windows MachineX64 ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) MultiThreaded Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Release\x86;@CURRENT_PACKAGES_DIR@/lib;%(AdditionalLibraryDirectories) wpcap.def true Windows true true MachineX86 MachineX86 X64 ..\libpcap;..\libpcap\lbl;..\libpcap\bpf\;..\..\common;..\libpcap\win32\include;..\Win32-Extensions;%(AdditionalIncludeDirectories) LIBPCAP_EXPORTS;WIN32;NDEBUG;_WINDOWS;HAVE_ADDRINFO;YY_NEVER_INTERACTIVE;yylval=pcap_lval;HAVE_STRERROR;__STDC__;INET6;SIZEOF_CHAR=1;SIZEOF_SHORT=2;SIZEOF_INT=4;WPCAP;HAVE_VSNPRINTF;HAVE_REMOTE;_U_=;_CRT_SECURE_NO_WARNINGS;YY_NO_UNISTD_H;HAVE_TC_API;%(PreprocessorDefinitions) MultiThreaded Level3 ws2_32.lib;packet.lib;%(AdditionalDependencies) ..\..\packetNtx\Dll\Project\Release\x64;@CURRENT_PACKAGES_DIR@/lib;%(AdditionalLibraryDirectories) wpcap.def true Windows true true MachineX64 ================================================ FILE: ports/winpixevent/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/WinPixEventRuntime/${VERSION}" FILENAME "winpixevent.${VERSION}.zip" SHA512 1ae497fe84760d42176ba0f0c6e6e975f7c1ba3be1799fb1416810ea37244f5506098f7454a9831855ae76a2becff48aed9c3dca8934048124c88bd86eeb149f ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(PIX_ARCH ARM64) else() set(PIX_ARCH x64) endif() file(GLOB HEADER_FILES "${PACKAGE_PATH}/include/WinPixEventRuntime/*.h") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include") if(VCPKG_TARGET_IS_UWP) set(WINPIXEVENTRUNTIME WinPixEventRuntime_UAP) else() set(WINPIXEVENTRUNTIME WinPixEventRuntime) endif() file(INSTALL "${PACKAGE_PATH}/bin/${PIX_ARCH}/${WINPIXEVENTRUNTIME}.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${PACKAGE_PATH}/bin/${PIX_ARCH}/${WINPIXEVENTRUNTIME}.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(INSTALL "${PACKAGE_PATH}/bin/${PIX_ARCH}/${WINPIXEVENTRUNTIME}.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${PACKAGE_PATH}/bin/${PIX_ARCH}/${WINPIXEVENTRUNTIME}.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") configure_file("${CMAKE_CURRENT_LIST_DIR}/winpixevent-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/license.txt") ================================================ FILE: ports/winpixevent/usage ================================================ The WinPixEventRuntime redistributable package provides CMake targets: find_package(winpixevent CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::WinPixEventRuntime) ================================================ FILE: ports/winpixevent/vcpkg.json ================================================ { "name": "winpixevent", "version": "1.0.240308001", "description": "Allows applications to be instrumented with marker events, for use with Microsoft PIX.", "homepage": "https://devblogs.microsoft.com/pix/", "documentation": "https://devblogs.microsoft.com/pix/documentation/", "license": "MIT", "supports": "windows & (x64 | arm64) & !staticcrt & !xbox" } ================================================ FILE: ports/winpixevent/winpixevent-config.cmake.in ================================================ get_filename_component(_wpix_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_wpix_root "${_wpix_root}" PATH) add_library(Microsoft::WinPixEventRuntime SHARED IMPORTED) set_target_properties(Microsoft::WinPixEventRuntime PROPERTIES IMPORTED_LOCATION "${_wpix_root}/bin/@WINPIXEVENTRUNTIME@.dll" IMPORTED_IMPLIB "${_wpix_root}/lib/@WINPIXEVENTRUNTIME@.lib" INTERFACE_INCLUDE_DIRECTORIES "${_wpix_root}/include" IMPORTED_LINK_INTERFACE_LANGUAGES "C") unset(_wpix_root) ================================================ FILE: ports/winpty/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12.0) set(PROJECT_VERSION "0.4.3") project(winpty VERSION ${PROJECT_VERSION} LANGUAGES CXX) add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}") add_definitions(-D_WIN32_WINNT=0x0600) add_definitions(-DUNICODE) add_definitions(-D_UNICODE) add_definitions(-DNOMINMAX) if("${BUILD_TYPE}" STREQUAL "STATIC") add_definitions(-DBUILD_STATIC) else() add_definitions(-DCOMPILING_WINPTY_DLL) endif() set(CMAKE_CXX_STANDARD 11) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(WINPTY_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_PREFIX}/include) set(WINPTY_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin) set(WINPTY_INSTALL_LIB_DIR ${CMAKE_INSTALL_PREFIX}/lib) include_directories(${WINPTY_INSTALL_INCLUDE_DIR}) #winpty library set(WINPTYLIB_SOURCE_FILES src/include/winpty.h src/libwinpty/AgentLocation.cc src/libwinpty/AgentLocation.h src/libwinpty/winpty.cc src/shared/AgentMsg.h src/shared/BackgroundDesktop.h src/shared/BackgroundDesktop.cc src/shared/Buffer.h src/shared/Buffer.cc src/shared/DebugClient.h src/shared/DebugClient.cc src/shared/GenRandom.h src/shared/GenRandom.cc src/shared/OsModule.h src/shared/OwnedHandle.h src/shared/OwnedHandle.cc src/shared/StringBuilder.h src/shared/StringUtil.cc src/shared/StringUtil.h src/shared/WindowsSecurity.cc src/shared/WindowsSecurity.h src/shared/WindowsVersion.h src/shared/WindowsVersion.cc src/shared/WinptyAssert.h src/shared/WinptyAssert.cc src/shared/WinptyException.h src/shared/WinptyException.cc src/shared/WinptyVersion.h src/shared/WinptyVersion.cc src/shared/winpty_snprintf.h ) add_library( winpty ${BUILD_TYPE} ${WINPTYLIB_SOURCE_FILES} ) #winpty agent executable set(WINPTYAGENT_SOURCE_FILES src/agent/Agent.h src/agent/Agent.cc src/agent/AgentCreateDesktop.h src/agent/AgentCreateDesktop.cc src/agent/ConsoleFont.cc src/agent/ConsoleFont.h src/agent/ConsoleInput.cc src/agent/ConsoleInput.h src/agent/ConsoleInputReencoding.cc src/agent/ConsoleInputReencoding.h src/agent/ConsoleLine.cc src/agent/ConsoleLine.h src/agent/Coord.h src/agent/DebugShowInput.h src/agent/DebugShowInput.cc src/agent/DefaultInputMap.h src/agent/DefaultInputMap.cc src/agent/DsrSender.h src/agent/EventLoop.h src/agent/EventLoop.cc src/agent/InputMap.h src/agent/InputMap.cc src/agent/LargeConsoleRead.h src/agent/LargeConsoleRead.cc src/agent/NamedPipe.h src/agent/NamedPipe.cc src/agent/Scraper.h src/agent/Scraper.cc src/agent/SimplePool.h src/agent/SmallRect.h src/agent/Terminal.h src/agent/Terminal.cc src/agent/UnicodeEncoding.h src/agent/Win32Console.cc src/agent/Win32Console.h src/agent/Win32ConsoleBuffer.cc src/agent/Win32ConsoleBuffer.h src/agent/main.cc src/shared/AgentMsg.h src/shared/BackgroundDesktop.h src/shared/BackgroundDesktop.cc src/shared/Buffer.h src/shared/Buffer.cc src/shared/DebugClient.h src/shared/DebugClient.cc src/shared/GenRandom.h src/shared/GenRandom.cc src/shared/OsModule.h src/shared/OwnedHandle.h src/shared/OwnedHandle.cc src/shared/StringBuilder.h src/shared/StringUtil.cc src/shared/StringUtil.h src/shared/UnixCtrlChars.h src/shared/WindowsSecurity.cc src/shared/WindowsSecurity.h src/shared/WindowsVersion.h src/shared/WindowsVersion.cc src/shared/WinptyAssert.h src/shared/WinptyAssert.cc src/shared/WinptyException.h src/shared/WinptyException.cc src/shared/WinptyVersion.h src/shared/WinptyVersion.cc src/shared/winpty_snprintf.h ) add_executable(winpty-agent ${WINPTYAGENT_SOURCE_FILES}) target_compile_definitions(winpty-agent PRIVATE -DWINPTY_AGENT_ASSERT) #winpty debugserver executable set(WINPTYAGENT_SOURCE_FILES src/debugserver/DebugServer.cc src/shared/DebugClient.h src/shared/DebugClient.cc src/shared/OwnedHandle.h src/shared/OwnedHandle.cc src/shared/OsModule.h src/shared/StringBuilder.h src/shared/StringUtil.cc src/shared/StringUtil.h src/shared/WindowsSecurity.h src/shared/WindowsSecurity.cc src/shared/WindowsVersion.h src/shared/WindowsVersion.cc src/shared/WinptyAssert.h src/shared/WinptyAssert.cc src/shared/WinptyException.h src/shared/WinptyException.cc src/shared/winpty_snprintf.h ) add_executable(winpty-debugserver ${WINPTYAGENT_SOURCE_FILES}) if("${BUILD_TYPE}" STREQUAL "STATIC") install(TARGETS winpty DESTINATION ${WINPTY_INSTALL_LIB_DIR}) else() install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpty.dll DESTINATION ${WINPTY_INSTALL_BIN_DIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/winpty.lib DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) endif() install(TARGETS winpty-agent DESTINATION ${WINPTY_INSTALL_BIN_DIR}) install(TARGETS winpty-debugserver DESTINATION ${WINPTY_INSTALL_BIN_DIR}) install(FILES src/include/winpty.h src/include/winpty_constants.h DESTINATION ${WINPTY_INSTALL_INCLUDE_DIR}) ================================================ FILE: ports/winpty/allow-build-static.patch ================================================ diff --git a/src/include/winpty.h b/src/include/winpty.h index fdfe4bc..7864d96 100644 --- a/src/include/winpty.h +++ b/src/include/winpty.h @@ -32,11 +32,15 @@ * When compiled with __declspec(dllexport), with either MinGW or MSVC, the * winpty functions are unadorned--no underscore prefix or '@nn' suffix--so * GetProcAddress can be used easily. */ +#ifndef BUILD_STATIC #ifdef COMPILING_WINPTY_DLL #define WINPTY_API __declspec(dllexport) #else #define WINPTY_API __declspec(dllimport) #endif +#else +#define WINPTY_API +#endif #ifdef __cplusplus extern "C" { diff --git a/src/shared/WinptyVersion.cc b/src/shared/WinptyVersion.cc index 76bb8a5..33a2c23 100644 --- a/src/shared/WinptyVersion.cc +++ b/src/shared/WinptyVersion.cc @@ -28,15 +28,15 @@ // This header is auto-generated by either the Makefile (Unix) or // UpdateGenVersion.bat (gyp). It is placed in a 'gen' directory, which is // added to the search path. -#include "GenVersion.h" +//#include "GenVersion.h" void dumpVersionToStdout() { - printf("winpty version %s\n", GenVersion_Version); - printf("commit %s\n", GenVersion_Commit); + printf("winpty version %s\n", PROJECT_VERSION); + printf("commit %s\n", "empty"); } void dumpVersionToTrace() { trace("winpty version %s (commit %s)", - GenVersion_Version, - GenVersion_Commit); + PROJECT_VERSION, + "empty"); } ================================================ FILE: ports/winpty/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rprichard/winpty REF antivirus SHA512 8f5539c1af2a1127219278446c1d028079867cecdeb03c4f208c7d8176e8802e8075ce1b6992e0ef73db34c69e58f73d3828698d865deb35cb883821ee245e4d HEAD_REF master PATCHES allow-build-static.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(BUILD_TYPE SHARED) else() set(BUILD_TYPE STATIC) endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DBUILD_TYPE=${BUILD_TYPE} ) vcpkg_cmake_install() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) vcpkg_copy_tools(TOOL_NAMES winpty-agent winpty-debugserver AUTO_CLEAN) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/winpty/vcpkg.json ================================================ { "name": "winpty", "version": "0.4.3", "description": "winpty is a Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/winreg/portfile.cmake ================================================ # WinReg - Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO GiovanniDicanio/WinReg REF "v${VERSION}" SHA512 2c1f43a57d42628fbf3e5b5e268fd9248cbeaef47500e1a580a44634b9fbc38622d0adb89f454abba602c50d334323512458c6d860b9818c39a65a3fb7d1e48b HEAD_REF master ) # Copy the single reusable library header file(COPY "${SOURCE_PATH}/WinReg/WinReg.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/winreg/vcpkg.json ================================================ { "name": "winreg", "version": "6.4.0", "description": "High-level C++ wrapper around the Windows Registry C API.", "homepage": "https://github.com/GiovanniDicanio/WinReg", "license": "MIT", "supports": "windows | uwp" } ================================================ FILE: ports/winsock2/portfile.cmake ================================================ if(VCPKG_TARGET_IS_MINGW) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_get_windows_sdk(WINDOWS_SDK) if (WINDOWS_SDK MATCHES "10.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\${WINDOWS_SDK}\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\${WINDOWS_SDK}\\um") elseif(WINDOWS_SDK MATCHES "8.") set(LIBFILEPATH "$ENV{WindowsSdkDir}Lib\\winv6.3\\um\\${TRIPLET_SYSTEM_ARCH}\\Ws2_32.Lib") set(HEADERSPATH "$ENV{WindowsSdkDir}Include\\um") else() message(FATAL_ERROR "Portfile not yet configured for Windows SDK with version: ${WINDOWS_SDK}") endif() if (NOT EXISTS "${LIBFILEPATH}") message(FATAL_ERROR "Cannot find Windows ${WINDOWS_SDK} SDK. File does not exist: ${LIBFILEPATH}") endif() file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) file(COPY ${LIBFILEPATH} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) if (WINDOWS_SDK MATCHES "10.") file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See https://developer.microsoft.com/windows/downloads/windows-10-sdk for the Windows 10 SDK license") elseif(WINDOWS_SDK MATCHES "8.") file(WRITE ${CURRENT_PACKAGES_DIR}/share/winsock2/copyright "See https://developer.microsoft.com/windows/downloads/windows-8-1-sdk for the Windows 8.1 SDK license") endif() # Allow empty include directory set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) ================================================ FILE: ports/winsock2/vcpkg.json ================================================ { "name": "winsock2", "version": "0.0", "port-version": 5, "description": "Windows Sockets.", "license": null, "supports": "windows" } ================================================ FILE: ports/winsparkle/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://github.com/vslavik/winsparkle/releases/download/v${VERSION}/WinSparkle-${VERSION}.zip" FILENAME "winsparkle-v${VERSION}.zip" SHA512 0775e6f5ccafa542ac12c5dd0ea5ae8d8feb9e6b72f738a732b351519c1a9dd810e17db58a8a44a005704bf4a7ffee1719517c48a12637c4420a8ee928cf2fdf ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} ) file(GLOB HEADER_LIST "${SOURCE_PATH}/include/*.h") file(INSTALL ${HEADER_LIST} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(GLOB TOOLS_LIST "${SOURCE_PATH}/bin/*.bat") file(INSTALL ${TOOLS_LIST} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") # Note: It is an explicit design goal for WinSparkle to be a single # self-contained DLL with no external dependencies (to the point that # it even links to static CRT!). This matters for e.g. in-app delta updates # or re-launching the app after update. It is not statically linked even if a # static linking is used for everything else. set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") # We have no debug, but since Winsparkle is a self-contained dll, we can copy it to the Debug folder as well file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${SOURCE_PATH}/Release/WinSparkle.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") # We have no debug, but since Winsparkle is a self-contained dll, we can copy it to the Debug folder as well file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") file(INSTALL "${SOURCE_PATH}/x64/Release/WinSparkle.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") else() message(FATAL_ERROR "Unsupported architecture: ${VCPKG_TARGET_ARCHITECTURE}") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/winsparkle/vcpkg.json ================================================ { "name": "winsparkle", "version": "0.9.1", "description": "WinSparkle is an easy-to-use software update library for Windows developers.", "homepage": "https://winsparkle.org", "license": "MIT", "supports": "windows & !(arm | uwp)" } ================================================ FILE: ports/wintoast/Config.cmake.in ================================================ if(NOT TARGET unofficial::wintoast::wintoast) add_library(unofficial::wintoast::wintoast UNKNOWN IMPORTED) set_target_properties(unofficial::wintoast::wintoast PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" ) find_library(WinToast_LIBRARY_RELEASE NAMES WinToast PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) if(EXISTS "${WinToast_LIBRARY_RELEASE}") set_property(TARGET unofficial::wintoast::wintoast APPEND PROPERTY IMPORTED_CONFIGURATIONS "Release") set_target_properties(unofficial::wintoast::wintoast PROPERTIES IMPORTED_LOCATION_RELEASE "${WinToast_LIBRARY_RELEASE}") endif() find_library(WinToast_LIBRARY_DEBUG NAMES WinToast PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(EXISTS "${WinToast_LIBRARY_DEBUG}") set_property(TARGET unofficial::wintoast::wintoast APPEND PROPERTY IMPORTED_CONFIGURATIONS "Debug") set_target_properties(unofficial::wintoast::wintoast PROPERTIES IMPORTED_LOCATION_DEBUG "${WinToast_LIBRARY_DEBUG}") endif() endif() ================================================ FILE: ports/wintoast/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mohabouje/WinToast REF "v${VERSION}" SHA512 50b97beeaa49247fc836a255d68a2cc1f6124386c76786f58e6fd0605ca821df33e101d30c16bf334815e8101db0a74fcb78fd2c27025eb5c18f4817855e3519 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWINTOASTLIB_BUILD_EXAMPLES=OFF -DWINTOASTLIB_QT_ENABLED=OFF ) vcpkg_cmake_build(TARGET WinToast) if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}WinToast${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}WinToast${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${SOURCE_PATH}/include/wintoastlib.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") configure_file("${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/unofficial-${PORT}/unofficial-${PORT}-config.cmake" @ONLY) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/wintoast/vcpkg.json ================================================ { "name": "wintoast", "version": "1.3.2", "description": "WinToast is a lightly library written in C++ which brings a complete integration of the modern toast notifications of Windows 8 & Windows 10.", "supports": "windows & !uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/wmipp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sonodima/wmipp REF "v${VERSION}" SHA512 78635ec00928b5cb1fb5ab0001fa9a06f75a2a7e5f77dafb8bc77cf31f3ee2f642db08572d82ed39a09783a89d660bebc9b96f91d0926dbbb3109737d54f91e6 HEAD_REF main ) file(COPY "${SOURCE_PATH}/include/wmipp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/wmipp/vcpkg.json ================================================ { "name": "wmipp", "version": "1.3.0", "description": "Streamlined Windows Management Instrumentation (WMI) integration for seamless C++ development", "homepage": "https://github.com/sonodima/wmipp", "license": "MIT", "supports": "windows & !uwp" } ================================================ FILE: ports/woff2/0001-unofficial-brotli.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index ecfbb83..420c578 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,13 +34,6 @@ endif() # Find Brotli dependencies set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") -find_package(BrotliDec) -if (NOT BROTLIDEC_FOUND) - message(FATAL_ERROR "librotlidec is needed to build woff2.") -endif () -find_package(BrotliEnc) -if (NOT BROTLIENC_FOUND) - message(FATAL_ERROR "librotlienc is needed to build woff2.") -endif () + find_package(unofficial-brotli REQUIRED) # Set compiler flags if (NOT CANONICAL_PREFIXES) @@ -63,9 +73,8 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAG}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_FLAG}") set(CMAKE_CXX_STANDARD 11) -# Set search path for our private/public headers as well as Brotli headers -include_directories("src" "include" - "${BROTLIDEC_INCLUDE_DIRS}" "${BROTLIENC_INCLUDE_DIRS}") +# Set search path for our private/public headers +include_directories("src" "include") # Common part used by decoder and encoder add_library(woff2common @@ -77,7 +86,7 @@ add_library(woff2common add_library(woff2dec src/woff2_dec.cc src/woff2_out.cc) -target_link_libraries(woff2dec woff2common "${BROTLIDEC_LIBRARIES}") +target_link_libraries(woff2dec woff2common unofficial::brotli::brotlidec) add_executable(woff2_decompress src/woff2_decompress.cc) target_link_libraries(woff2_decompress woff2dec) @@ -88,7 +97,7 @@ add_library(woff2enc src/normalize.cc src/transform.cc src/woff2_enc.cc) -target_link_libraries(woff2enc woff2common "${BROTLIENC_LIBRARIES}") +target_link_libraries(woff2enc woff2common unofficial::brotli::brotlienc) add_executable(woff2_compress src/woff2_compress.cc) target_link_libraries(woff2_compress woff2enc) @@ -264,6 +273,7 @@ if (NOT BUILD_SHARED_LIBS) install( TARGETS woff2_decompress woff2_compress woff2_info RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" ) endif() ================================================ FILE: ports/woff2/0002-stdint-include.patch ================================================ diff --git a/include/woff2/output.h b/include/woff2/output.h index dc78ccf..b12d538 100644 --- a/include/woff2/output.h +++ b/include/woff2/output.h @@ -9,6 +9,8 @@ #ifndef WOFF2_WOFF2_OUT_H_ #define WOFF2_WOFF2_OUT_H_ +#include + #include #include #include ================================================ FILE: ports/woff2/portfile.cmake ================================================ 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 PATCHES 0001-unofficial-brotli.patch 0002-stdint-include.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCANONICAL_PREFIXES=ON ) vcpkg_cmake_install() 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") vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/woff2" RENAME copyright) ================================================ FILE: ports/woff2/vcpkg.json ================================================ { "name": "woff2", "version": "1.0.2", "port-version": 5, "description": "font compression reference code", "dependencies": [ "brotli", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/wolf-midi/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfgitpr/wolf-midi REF "${VERSION}" SHA512 6359707d2631bd2e6e3f2e34b6ca1da3718a312c09968323b1598e83085beae8417d0c8d465ce50550af6843c9c5f060f799ef6d5a78a013a08cfbaa84506cff HEAD_REF main ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" WOLF_MIDI_BUILD_STATIC) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DWOLF_MIDI_BUILD_STATIC=${WOLF_MIDI_BUILD_STATIC} -DWOLF_MIDI_BUILD_TESTS=FALSE ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) ================================================ FILE: ports/wolf-midi/usage ================================================ wolf-midi provides CMake targets: find_package(wolf-midi CONFIG REQUIRED) target_link_libraries(main PRIVATE wolf-midi::wolf-midi) ================================================ FILE: ports/wolf-midi/vcpkg.json ================================================ { "name": "wolf-midi", "version": "1.0.1", "description": "A lightweight MIDI file read-write library.", "homepage": "https://github.com/wolfgitpr/wolf-midi", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wolfmqtt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfssl/wolfmqtt REF "v${VERSION}" SHA512 e4dcddde24bb3506c744803d6f613f62d88f9797c6c159cd440d9801a1cba1d471034eb3707e60d4d1b049da55c8fe23145352cd2d7e37ea0bbf333002a80513 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DWOLFMQTT_BUILD_OUT_OF_TREE=yes -DWOLFMQTT_EXAMPLES=no OPTIONS_DEBUG -DCMAKE_C_FLAGS='-DDEBUG_MQTT' ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/wolfmqtt) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/wolfmqtt/vcpkg.json ================================================ { "name": "wolfmqtt", "version": "1.21.0", "description": "MQTT library used with wolfSSL library for many platforms", "homepage": "https://wolfssl.com", "license": "GPL-3.0-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wolfssl" ] } ================================================ FILE: ports/wolfssl/have-limits-h.diff ================================================ diff --git a/cmake/config.in b/cmake/config.in index f2524e4..6054b6d 100644 --- a/cmake/config.in +++ b/cmake/config.in @@ -19,9 +19,6 @@ /* Define to 1 if you have the `gmtime_r' function. */ #cmakedefine HAVE_GMTIME_R @HAVE_GMTIME_R@ -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_LIMITS_H @HAVE_LIMITS_H@ - /* Define to 1 if you have the header file. */ #cmakedefine HAVE_PCAP_PCAP_H @HAVE_PCAP_PCAP_H@ diff --git a/cmake/options.h.in b/cmake/options.h.in index 7446b1b..615cc9b 100644 --- a/cmake/options.h.in +++ b/cmake/options.h.in @@ -122,6 +122,8 @@ extern "C" { #cmakedefine HAVE_KEYING_MATERIAL #undef HAVE_LIBOQS #cmakedefine HAVE_LIBOQS +#undef HAVE_LIMITS_H +#cmakedefine HAVE_LIMITS_H @HAVE_LIMITS_H@ #undef HAVE_MAX_FRAGMENT #cmakedefine HAVE_MAX_FRAGMENT #undef HAVE_OCSP ================================================ FILE: ports/wolfssl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfssl/wolfssl REF "v${VERSION}-stable" SHA512 6f191c218b270bd4dc90d6f07a80416e6bc8d049f3f49ea84c38a2af40ae9588a4fe306860fbb8696c5af15c4ca359818e3955069389d33269eee0101c270439 HEAD_REF master PATCHES have-limits-h.diff ) if ("asio" IN_LIST FEATURES) set(ENABLE_ASIO yes) else() set(ENABLE_ASIO no) endif() if ("dtls" IN_LIST FEATURES) set(ENABLE_DTLS yes) else() set(ENABLE_DTLS no) endif() if ("quic" IN_LIST FEATURES) set(ENABLE_QUIC yes) else() set(ENABLE_QUIC no) endif() if ("curve25519" IN_LIST FEATURES) set(ENABLE_CURVE25519 yes) else() set(ENABLE_CURVE25519 no) endif() vcpkg_cmake_get_vars(cmake_vars_file) include("${cmake_vars_file}") foreach(config RELEASE DEBUG) string(APPEND VCPKG_COMBINED_C_FLAGS_${config} " -DHAVE_EX_DATA -DNO_WOLFSSL_STUB -DWOLFSSL_ALT_CERT_CHAINS -DWOLFSSL_DES_ECB -DWOLFSSL_CUSTOM_OID -DHAVE_OID_ENCODING -DWOLFSSL_CERT_GEN -DWOLFSSL_ASN_TEMPLATE -DWOLFSSL_KEY_GEN -DHAVE_PKCS7 -DHAVE_AES_KEYWRAP -DWOLFSSL_AES_DIRECT -DHAVE_X963_KDF") if ("secret-callback" IN_LIST FEATURES) string(APPEND VCPKG_COMBINED_C_FLAGS_${config} " -DHAVE_SECRET_CALLBACK") endif() endforeach() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS -DWOLFSSL_BUILD_OUT_OF_TREE=yes -DWOLFSSL_EXAMPLES=no -DWOLFSSL_CRYPT_TESTS=no -DWOLFSSL_OPENSSLEXTRA=yes -DWOLFSSL_TPM=yes -DWOLFSSL_TLSX=yes -DWOLFSSL_OCSP=yes -DWOLFSSL_OCSPSTAPLING=yes -DWOLFSSL_OCSPSTAPLING_V2=yes -DWOLFSSL_CRL=yes -DWOLFSSL_DES3=yes -DWOLFSSL_HPKE=yes -DWOLFSSL_SNI=yes -DWOLFSSL_ASIO=${ENABLE_ASIO} -DWOLFSSL_DTLS=${ENABLE_DTLS} -DWOLFSSL_DTLS13=${ENABLE_DTLS} -DWOLFSSL_DTLS_CID=${ENABLE_DTLS} -DWOLFSSL_QUIC=${ENABLE_QUIC} -DWOLFSSL_SESSION_TICKET=${ENABLE_QUIC} -DWOLFSSL_CURVE25519=${ENABLE_CURVE25519} OPTIONS_RELEASE -DCMAKE_C_FLAGS=${VCPKG_COMBINED_C_FLAGS_RELEASE} OPTIONS_DEBUG -DCMAKE_C_FLAGS=${VCPKG_COMBINED_C_FLAGS_DEBUG} -DWOLFSSL_DEBUG=yes) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/wolfssl) if(VCPKG_TARGET_IS_IOS OR VCPKG_TARGET_IS_OSX) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/wolfssl.pc" "Libs.private: " "Libs.private: -framework CoreFoundation -framework Security ") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/wolfssl.pc" "Libs.private: " "Libs.private: -framework CoreFoundation -framework Security ") endif() endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/wolfssl/vcpkg.json ================================================ { "name": "wolfssl", "version": "5.8.4", "port-version": 2, "description": "TLS and Cryptographic library for many platforms", "homepage": "https://wolfssl.com", "license": "GPL-3.0-or-later", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-cmake-get-vars", "host": true } ], "features": { "asio": { "description": "Enable asio support" }, "curve25519": { "description": "Enables Curve25519 support" }, "dtls": { "description": "DTLS support" }, "quic": { "description": "Enable quic support" }, "secret-callback": { "description": "Enables callback to provide TLS keys for debugging" } } } ================================================ FILE: ports/wolftpm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wolfssl/wolftpm REF v${VERSION} SHA512 6d09ce6d069481d659e8062b0c04940af0c54a3a5ee02178336252d0cde28f339340df72a31e38dfc67d7d5ead192ddf9351cab76360e220b6236f8e5357bb30 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH} OPTIONS -DWOLFTPM_EXAMPLES=no -DWOLFTPM_BUILD_OUT_OF_TREE=yes OPTIONS_DEBUG -DCMAKE_C_FLAGS='-DDEBUG_WOLFTPM' ) vcpkg_cmake_install() vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/wolftpm) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/wolftpm/vcpkg.json ================================================ { "name": "wolftpm", "version": "3.10.0", "description": "TPM library used with wolfSSL library for many platforms", "homepage": "https://wolfssl.com", "license": "GPL-3.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wolfssl" ] } ================================================ FILE: ports/wordnet/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.14) project ("wordnet") set (target_name ${CMAKE_PROJECT_NAME}) # CMAKE_PROJECT_NAME for the top-level project() call option (BUILD_SHARED_LIBS "Create ${target_name} as a shared library" OFF) set (CMAKE_DEBUG_POSTFIX "d" CACHE STRING "postfix for debug lib") set (INCLUDE_DIR_BUILD "${CMAKE_CURRENT_LIST_DIR}/include") include (GNUInstallDirs) file (GLOB wordnet_headers ${INCLUDE_DIR_BUILD}/wn.h) file (GLOB wordnet_srcs "lib/*.c") add_library (${target_name} ${wordnet_srcs} ${wordnet_headers}) target_include_directories (${target_name} PRIVATE ${INCLUDE_DIR_BUILD} PUBLIC $ ) set_target_properties(${target_name} PROPERTIES C_STANDARD 11 ) target_compile_definitions(${PROJECT_NAME} PUBLIC DEFAULTPATH="${WORDNET_DICT_PATH}") if (MSVC) set_target_properties(${target_name} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY $ COMPILE_FLAGS "/wd4996 /wd4267 /wd4244 /wd4047" ) target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${target_name}) endif() install (TARGETS ${target_name} EXPORT ${target_name}-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) install(FILES ${wordnet_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${target_name} CONFIGURATIONS Release ) install (EXPORT ${target_name}-targets FILE ${target_name}-targets.cmake NAMESPACE ${target_name}:: DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}" ) configure_file(${target_name}-config.cmake.in "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake" @ONLY) install(FILES "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${target_name}-config.cmake" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${target_name}" ) install(DIRECTORY dict/ DESTINATION ${WORDNET_DICT_PATH} CONFIGURATIONS Release ) install(DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR} CONFIGURATIONS Release ) ================================================ FILE: ports/wordnet/fix_gobal_vars_uninit_local_ptr.patch ================================================ diff --git a/include/wn.h b/include/wn.h index d3ffa08..8452377 100644 --- a/include/wn.h +++ b/include/wn.h @@ -151,14 +151,6 @@ #define PREDICATIVE PADJ #define IMMED_POSTNOMINAL IPADJ -extern char *wnrelease; /* WordNet release/version number */ - -extern char *lexfiles[]; /* names of lexicographer files */ -extern char *ptrtyp[]; /* pointer characters */ -extern char *partnames[]; /* POS strings */ -extern char partchars[]; /* single chars for each POS */ -extern char *adjclass[]; /* adjective class strings */ -extern char *frametext[]; /* text of verb frames */ /* Data structures used by search code functions. */ @@ -236,6 +228,21 @@ typedef struct { typedef SearchResults *SearchResultsPtr; +/* Make all the functions compatible with c++ files */ +#ifdef __cplusplus +extern "C" { +#endif + +extern char* wnrelease; /* WordNet release/version number */ + +extern char* lexfiles[]; /* names of lexicographer files */ +extern char* ptrtyp[]; /* pointer characters */ +extern char* partnames[]; /* POS strings */ +extern char partchars[]; /* single chars for each POS */ +extern char* adjclass[]; /* adjective class strings */ +extern char* frametext[]; /* text of verb frames */ + + /* Global variables and flags */ extern SearchResults wnresults; /* structure containing results of search */ @@ -271,11 +278,6 @@ extern int default_display_message(char *); extern int (*display_message)(char *); -/* Make all the functions compatible with c++ files */ -#ifdef __cplusplus -extern "C" { -#endif - /* External library function prototypes */ /*** Search and database functions (search.c) ***/ diff --git a/lib/search.c b/lib/search.c index 1cdedc3..72c4bb5 100644 --- a/lib/search.c +++ b/lib/search.c @@ -1256,7 +1256,7 @@ static void add_relatives(int pos, IndexPtr idx, int rel1, int rel2) { int i; struct relgrp *rel, *last, *r; - + last = NULL; /* If either of the new relatives are already in a relative group, then add the other to the existing group (transitivity). Otherwise create a new group and add these 2 senses to it. */ @@ -1281,8 +1281,9 @@ static void add_relatives(int pos, IndexPtr idx, int rel1, int rel2) rel->senses[rel1] = rel->senses[rel2] = 1; if (rellist == NULL) rellist = rel; - else - last->next = rel; + else if (last) { + last->next = rel; + } } static struct relgrp *mkrellist(void) ================================================ FILE: ports/wordnet/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) set(VERSION 3.0) vcpkg_download_distfile(ARCHIVE URLS "http://wordnetcode.princeton.edu/${VERSION}/WordNet-${VERSION}.tar.gz" FILENAME "wordnet-${VERSION}.tar.gz" SHA512 9539bc016d710f31d65072bbf5068edffcd735978d8cc6f1b361b19428b97546ef6c7e246e1b6f2ff4557a0885a8305341e35173a6723f0740dda18d097ca248 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" SOURCE_BASE "${VERSION}" PATCHES fix_gobal_vars_uninit_local_ptr.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/wordnet-config.cmake.in" DESTINATION "${SOURCE_PATH}") if("dbfiles" IN_LIST FEATURES) vcpkg_download_distfile(WORDNET_DICT_DBFILES URLS "http://wordnetcode.princeton.edu/wn3.1.dict.tar.gz" FILENAME "wordnet-cache/wn3.1.dict.tar.gz" SHA512 16dca17a87026d8a0b7b4758219cd21a869c3ef3da23ce7875924546f2eacac4c2f376cb271b798b2c458fe8c078fb43d681356e3d9beef40f4bd88d3579394f ) file(REMOVE_RECURSE "${SOURCE_PATH}/dict/") vcpkg_extract_source_archive( WORDNET_DICT_DBFILES_EX ARCHIVE "${WORDNET_DICT_DBFILES}" SOURCE_BASE "3.1" WORKING_DIRECTORY "${SOURCE_PATH}" ) file(RENAME "${WORDNET_DICT_DBFILES_EX}" "${SOURCE_PATH}/dict") endif() set (WORDNET_DICT_PATH "${CURRENT_PACKAGES_DIR}/tools/${PORT}/dict") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DWORDNET_DICT_PATH=${WORDNET_DICT_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/wordnet/vcpkg.json ================================================ { "name": "wordnet", "version": "3.0", "port-version": 3, "description": "WordNet is a large lexical database of English", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "dbfiles": { "description": "WordNet 3.1 database files" } } } ================================================ FILE: ports/wordnet/wordnet-config.cmake.in ================================================ # Config file for the wordnet package get_filename_component(_WORDNET_PREFIX_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) set (_TARGET_NAME "wordnet") set (WORDNET_DICT_PATH @WORDNET_DICT_PATH@) message (STATUS "WORDNET_DICT_PATH: @WORDNET_DICT_PATH@") # IMPORTED targets for wordnet include("${_WORDNET_PREFIX_DIR}/${_TARGET_NAME}-targets.cmake") set(_WORDNET_PREFIX_DIR) set(_TARGET_NAME) ================================================ FILE: ports/workflow/cmake.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 455e70c..49cb955 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.10) -if(ANDROID) +if(0) include_directories(${OPENSSL_INCLUDE_DIR}) link_directories(${OPENSSL_LINK_DIR}) else() @@ -80,10 +80,12 @@ add_library( $ ) -if(ANDROID) +if(0) target_link_libraries(${SHARED_LIB_NAME} PUBLIC ssl crypto c) target_link_libraries(${STATIC_LIB_NAME} PUBLIC ssl crypto c) else() + find_package(Threads REQUIRED) + add_library(pthread ALIAS Threads::Threads) target_link_libraries(${SHARED_LIB_NAME} PUBLIC OpenSSL::SSL OpenSSL::Crypto pthread) target_link_libraries(${STATIC_LIB_NAME} PUBLIC OpenSSL::SSL OpenSSL::Crypto pthread) endif () @@ -122,17 +124,22 @@ if (KAFKA STREQUAL "y") set_target_properties(${KAFKA_SHARED_LIB_NAME} PROPERTIES OUTPUT_NAME "wfkafka" VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}) endif () +if(NOT BUILD_SHARED_LIBS) +set_target_properties(${SHARED_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) install( TARGETS ${STATIC_LIB_NAME} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel ) +else() +set_target_properties(${STATIC_LIB_NAME} PROPERTIES EXCLUDE_FROM_ALL 1) install( TARGETS ${SHARED_LIB_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel ) +endif() if (KAFKA STREQUAL "y") install( ================================================ FILE: ports/workflow/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sogou/workflow REF "v${VERSION}" SHA512 ed38ce31c39d5f51497379f4184c7890d30b1e683973cd363f7921e628cf1d731bbbbe77f8cece1195cea2199e64d503ea4ed2bfb350d09fc22c862abd497577 HEAD_REF master PATCHES cmake.diff ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # because configure_package_config_file to ${PROJECT_SOURCE_DIR} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/workflow") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/workflow/vcpkg.json ================================================ { "name": "workflow", "version": "1.0.0", "description": "C++ Parallel Computing and Asynchronous Networking Engine", "homepage": "https://github.com/sogou/workflow", "license": "Apache-2.0", "supports": "!windows", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/workflow-win/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO sogou/workflow REF b92ead03ec62609a3cc1293041a9caa58a6b4800 SHA512 4f9ac3daefcafaffe9121bd2b91b7a9311bd9f09690f723c970ebeab9f092fe3cd6745983c459c9781f673e898d74b6382e654db758914e9c73f9462394e2f73 HEAD_REF windows ) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" BUILD_STATIC_RUNTIME) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # because configure_package_config_file to ${PROJECT_SOURCE_DIR} OPTIONS -DWORKFLOW_BUILD_STATIC_RUNTIME=${BUILD_STATIC_RUNTIME} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/workflow" PACKAGE_NAME "workflow") vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/doc" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/workflow-win/vcpkg.json ================================================ { "name": "workflow-win", "version": "2026-01-09", "description": "C++ Parallel Computing and Asynchronous Networking Engine (Windows version)", "homepage": "https://github.com/sogou/workflow", "license": "Apache-2.0", "supports": "windows & !mingw", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/wpilib/fix-build-error-with-fmt11.patch ================================================ diff --git a/ntcore/src/dev/native/cpp/main.cpp b/ntcore/src/dev/native/cpp/main.cpp index 6e43fdb..ad93644 100644 --- a/ntcore/src/dev/native/cpp/main.cpp +++ b/ntcore/src/dev/native/cpp/main.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include diff --git a/wpiutil/examples/printlog/printlog.cpp b/wpiutil/examples/printlog/printlog.cpp index cb89934..4fe4817 100644 --- a/wpiutil/examples/printlog/printlog.cpp +++ b/wpiutil/examples/printlog/printlog.cpp @@ -6,6 +6,7 @@ #include #include +#include #include "wpi/DataLogReader.h" #include "wpi/DenseMap.h" diff --git a/wpiutil/src/main/native/include/wpi/Logger.h b/wpiutil/src/main/native/include/wpi/Logger.h index 01a02fd..bd524a9 100644 --- a/wpiutil/src/main/native/include/wpi/Logger.h +++ b/wpiutil/src/main/native/include/wpi/Logger.h @@ -9,6 +9,7 @@ #include #include +#include namespace wpi { ================================================ FILE: ports/wpilib/fix-fmt.patch ================================================ diff --git a/wpimath/src/main/native/include/units/base.h b/wpimath/src/main/native/include/units/base.h index 3c939f3..09c56e5 100644 --- a/wpimath/src/main/native/include/units/base.h +++ b/wpimath/src/main/native/include/units/base.h @@ -183,9 +183,10 @@ namespace units struct fmt::formatter \ : fmt::formatter \ {\ - template \ - auto format(const units::namespaceName::nameSingular ## _t& obj,\ - FormatContext& ctx) -> decltype(ctx.out()) \ + template \ + auto format(\ + const units::namespaceName::nameSingular ## _t& obj,\ + FmtContext& ctx) const\ {\ auto out = ctx.out();\ out = fmt::formatter::format(obj(), ctx);\ @@ -2890,9 +2891,10 @@ namespace units template <> struct fmt::formatter : fmt::formatter { - template - auto format(const units::dimensionless::dB_t& obj, - FormatContext& ctx) -> decltype(ctx.out()) + template + auto format( + const units::dimensionless::dB_t& obj, + FmtContext& ctx) const { auto out = ctx.out(); out = fmt::formatter::format(obj(), ctx); ================================================ FILE: ports/wpilib/fix-usage.patch ================================================ diff --git a/wpilibNewCommands/wpilibNewCommands-config.cmake.in b/wpilibNewCommands/wpilibNewCommands-config.cmake.in index 75aa6ad7d..8a8d8d8ec 100644 --- a/wpilibNewCommands/wpilibNewCommands-config.cmake.in +++ b/wpilibNewCommands/wpilibNewCommands-config.cmake.in @@ -1,5 +1,4 @@ include(CMakeFindDependencyMacro) - @FILENAME_DEP_REPLACE@ @WPIUTIL_DEP_REPLACE@ @NTCORE_DEP_REPLACE@ @CSCORE_DEP_REPLACE@ @@ -8,4 +7,5 @@ include(CMakeFindDependencyMacro) @WPILIBC_DEP_REPLACE@ @WPIMATH_DEP_REPLACE@ + @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpilibNewCommands.cmake) diff --git a/wpimath/wpimath-config.cmake.in b/wpimath/wpimath-config.cmake.in index 4769e4317..9100d7943 100644 --- a/wpimath/wpimath-config.cmake.in +++ b/wpimath/wpimath-config.cmake.in @@ -2,5 +2,9 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ @WPIUTIL_DEP_REPLACE@ +if(@USE_SYSTEM_EIGEN@) + find_dependency(Eigen3) +endif() + @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpimath.cmake) diff --git a/wpiutil/wpiutil-config.cmake.in b/wpiutil/wpiutil-config.cmake.in index fde839e2f..3f696c8a0 100644 --- a/wpiutil/wpiutil-config.cmake.in +++ b/wpiutil/wpiutil-config.cmake.in @@ -4,5 +4,9 @@ set(THREADS_PREFER_PTHREAD_FLAG ON) find_dependency(Threads) @FMTLIB_SYSTEM_REPLACE@ +if(@USE_SYSTEM_FMTLIB@) + find_dependency(fmt) +endif() + @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/wpiutil.cmake) ================================================ FILE: ports/wpilib/missing-find_dependency.patch ================================================ diff --git a/ntcore/ntcore-config.cmake.in b/ntcore/ntcore-config.cmake.in index 17006a583..0a85f8b09 100644 --- a/ntcore/ntcore-config.cmake.in +++ b/ntcore/ntcore-config.cmake.in @@ -1,6 +1,7 @@ include(CMakeFindDependencyMacro) @FILENAME_DEP_REPLACE@ @WPIUTIL_DEP_REPLACE@ +@WPINET_DEP_REPLACE@ @FILENAME_DEP_REPLACE@ include(${SELF_DIR}/ntcore.cmake) ================================================ FILE: ports/wpilib/no-werror.patch ================================================ diff --git a/cmake/modules/CompileWarnings.cmake b/cmake/modules/CompileWarnings.cmake index 93b35b8ab..df7ff7365 100644 --- a/cmake/modules/CompileWarnings.cmake +++ b/cmake/modules/CompileWarnings.cmake @@ -1,8 +1,8 @@ macro(wpilib_target_warnings target) if(NOT MSVC) - target_compile_options(${target} PRIVATE -Wall -pedantic -Wextra -Werror -Wno-unused-parameter ${WPILIB_TARGET_WARNINGS}) + target_compile_options(${target} PRIVATE -Wall -pedantic -Wextra -Wno-unused-parameter ${WPILIB_TARGET_WARNINGS}) else() - target_compile_options(${target} PRIVATE /wd4146 /wd4244 /wd4251 /wd4267 /WX /D_CRT_SECURE_NO_WARNINGS ${WPILIB_TARGET_WARNINGS}) + target_compile_options(${target} PRIVATE /wd4146 /wd4244 /wd4251 /wd4267 /D_CRT_SECURE_NO_WARNINGS ${WPILIB_TARGET_WARNINGS}) endif() # Suppress C++-specific OpenCV warning; C compiler rejects it with an error ================================================ FILE: ports/wpilib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wpilibsuite/allwpilib REF 165ebe4c79c437c7ba6c03af4a88a8c8680f742a SHA512 f6ee07db0a119a7ac5876c4b0cf74abfb6af635d3d3ba913300138c450f62f6595ac4849bc499346f9f0179cc563f548a5e8a9a47122af593b425af453afd99f PATCHES no-werror.patch windows-install-location.patch missing-find_dependency.patch fix-usage.patch fix-build-error-with-fmt11.patch fix-fmt.patch #https://github.com/wpilibsuite/allwpilib/pull/6796 ) if("allwpilib" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH_APRILTAG REPO wpilibsuite/apriltag REF e55b751f2465bd40a880d9acb87d24289e2af89e SHA512 a5d824d11312f7f5229bad162349586e9c855cd1dc03f33235c045f2d5235932227eb17f9e9c801b46a28991cddcf7ad16d39549560251d7d9d52ce72f094a73 ) endif() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cameraserver WITH_CSCORE allwpilib WITH_SIMULATION_MODULES allwpilib WITH_WPILIB ) vcpkg_find_acquire_program(PYTHON3) x_vcpkg_get_python_packages(PYTHON_EXECUTABLE "${PYTHON3}" PACKAGES jinja2) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DWITH_JAVA=OFF -DWITH_EXAMPLES=OFF -DWITH_TESTS=OFF -DWITH_GUI=OFF -DWITH_SIMULATION_MODULES=OFF -DUSE_SYSTEM_FMTLIB=ON -DUSE_SYSTEM_LIBUV=ON -DUSE_SYSTEM_EIGEN=ON "-DFETCHCONTENT_SOURCE_DIR_APRILTAGLIB=${SOURCE_PATH_APRILTAG}" MAYBE_UNUSED_VARIABLES FETCHCONTENT_SOURCE_DIR_APRILTAGLIB ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME wpilib) vcpkg_cmake_config_fixup(PACKAGE_NAME ntcore) vcpkg_cmake_config_fixup(PACKAGE_NAME wpimath) vcpkg_cmake_config_fixup(PACKAGE_NAME wpinet) vcpkg_cmake_config_fixup(PACKAGE_NAME wpiutil) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/wpilib/vcpkg.json ================================================ { "name": "wpilib", "version-date": "2023-08-24", "port-version": 2, "description": "WPILib is the software library package for the FIRST Robotics Competition. The core install includes wpiutil, a common utilies library, and ntcore, the base NetworkTables library.", "homepage": "https://github.com/wpilibsuite/allwpilib", "license": null, "dependencies": [ "eigen3", "fmt", "libuv", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "vcpkg-get-python-packages", "host": true } ], "features": { "allwpilib": { "description": "Enables the simulation HAL, and the high level wpilibc library.", "dependencies": [ "opencv", { "name": "wpilib", "features": [ "cameraserver" ] } ] }, "cameraserver": { "description": "Enables the CameraServer and CSCore libraries for manipulating USB Cameras and HTTP Camera Streams", "dependencies": [ "opencv" ] } } } ================================================ FILE: ports/wpilib/windows-install-location.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 012bcb7cc..ff2ab95b8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -153,7 +153,6 @@ endif() set( wpilib_dest "") set( include_dest include ) -set( main_lib_dest lib ) set( java_lib_dest java ) set( jni_lib_dest jni ) diff --git a/apriltag/CMakeLists.txt b/apriltag/CMakeLists.txt index 6f20e3aa0..b5459eb62 100644 --- a/apriltag/CMakeLists.txt +++ b/apriltag/CMakeLists.txt @@ -62,11 +62,7 @@ if (WITH_JAVA) target_link_libraries(apriltagjni PRIVATE apriltag_jni_headers) add_dependencies(apriltagjni apriltag_jar) - if (MSVC) - install(TARGETS apriltagjni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS apriltagjni EXPORT apriltagjni DESTINATION "${main_lib_dest}") + install(TARGETS apriltagjni EXPORT apriltagjni) endif() @@ -94,13 +90,9 @@ target_include_directories(apriltag PUBLIC $ $) -install(TARGETS apriltag EXPORT apriltag DESTINATION "${main_lib_dest}") +install(TARGETS apriltag EXPORT apriltag) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/apriltag") -if (WITH_JAVA AND MSVC) - install(TARGETS apriltag RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) -endif() - if (WITH_FLAT_INSTALL) set (apriltag_config_dir ${wpilib_dest}) else() diff --git a/cameraserver/CMakeLists.txt b/cameraserver/CMakeLists.txt index 4916be3b6..665a4ef41 100644 --- a/cameraserver/CMakeLists.txt +++ b/cameraserver/CMakeLists.txt @@ -40,13 +40,9 @@ target_link_libraries(cameraserver PUBLIC ntcore cscore wpiutil ${OpenCV_LIBS}) set_property(TARGET cameraserver PROPERTY FOLDER "libraries") -install(TARGETS cameraserver EXPORT cameraserver DESTINATION "${main_lib_dest}") +install(TARGETS cameraserver EXPORT cameraserver) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/cameraserver") -if (WITH_JAVA AND MSVC) - install(TARGETS cameraserver RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) -endif() - if (WITH_FLAT_INSTALL) set (cameraserver_config_dir ${wpilib_dest}) else() diff --git a/cscore/CMakeLists.txt b/cscore/CMakeLists.txt index 81cdd4ec5..1036cdf31 100644 --- a/cscore/CMakeLists.txt +++ b/cscore/CMakeLists.txt @@ -40,7 +40,7 @@ target_link_libraries(cscore PUBLIC wpinet wpiutil ${OpenCV_LIBS}) set_property(TARGET cscore PROPERTY FOLDER "libraries") -install(TARGETS cscore EXPORT cscore DESTINATION "${main_lib_dest}") +install(TARGETS cscore EXPORT cscore) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/cscore") if (WITH_FLAT_INSTALL) @@ -129,11 +129,7 @@ if (WITH_JAVA) target_link_libraries(cscorejni PRIVATE cscore_jni_headers) add_dependencies(cscorejni cscore_jar) - if (MSVC) - install(TARGETS cscorejni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS cscorejni EXPORT cscorejni DESTINATION "${main_lib_dest}") + install(TARGETS cscorejni EXPORT cscorejni) endif() diff --git a/glass/CMakeLists.txt b/glass/CMakeLists.txt index a252c2e83..9192bc7b4 100644 --- a/glass/CMakeLists.txt +++ b/glass/CMakeLists.txt @@ -22,7 +22,7 @@ target_include_directories(libglass PUBLIC $ $) -install(TARGETS libglass EXPORT libglass DESTINATION "${main_lib_dest}") +install(TARGETS libglass EXPORT libglass) install(DIRECTORY src/lib/native/include/ DESTINATION "${include_dest}/glass") # @@ -43,7 +43,7 @@ target_include_directories(libglassnt PUBLIC $ $) -install(TARGETS libglassnt EXPORT libglassnt DESTINATION "${main_lib_dest}") +install(TARGETS libglassnt EXPORT libglassnt) install(DIRECTORY src/libnt/native/include/ DESTINATION "${include_dest}/glass") # diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index 45c55675b..52dd44ad6 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -55,7 +55,7 @@ target_link_libraries(hal PUBLIC wpiutil) set_property(TARGET hal PROPERTY FOLDER "libraries") -install(TARGETS hal EXPORT hal DESTINATION "${main_lib_dest}") +install(TARGETS hal EXPORT hal) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/hal") install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/gen/ DESTINATION "${include_dest}/hal") @@ -108,11 +108,7 @@ if (WITH_JAVA) target_link_libraries(haljni PRIVATE hal_jni_headers) add_dependencies(haljni hal_jar) - if (MSVC) - install(TARGETS haljni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS haljni EXPORT haljni DESTINATION "${main_lib_dest}") + install(TARGETS haljni EXPORT haljni) endif() diff --git a/ntcore/CMakeLists.txt b/ntcore/CMakeLists.txt index cd5b3fb7d..1a97ac0c0 100644 --- a/ntcore/CMakeLists.txt +++ b/ntcore/CMakeLists.txt @@ -33,7 +33,7 @@ target_link_libraries(ntcore PUBLIC wpinet wpiutil) set_property(TARGET ntcore PROPERTY FOLDER "libraries") -install(TARGETS ntcore EXPORT ntcore DESTINATION "${main_lib_dest}") +install(TARGETS ntcore EXPORT ntcore) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/ntcore") install(DIRECTORY ${WPILIB_BINARY_DIR}/ntcore/generated/main/native/include/ DESTINATION "${include_dest}/ntcore") @@ -81,7 +81,7 @@ if (WITH_JAVA) target_link_libraries(ntcorejni PRIVATE ntcore_jni_headers) add_dependencies(ntcorejni ntcore_jar) - install(TARGETS ntcorejni EXPORT ntcorejni DESTINATION "${main_lib_dest}") + install(TARGETS ntcorejni EXPORT ntcorejni) endif() diff --git a/simulation/halsim_ds_socket/CMakeLists.txt b/simulation/halsim_ds_socket/CMakeLists.txt index 6d770d9a1..4eb23bb70 100644 --- a/simulation/halsim_ds_socket/CMakeLists.txt +++ b/simulation/halsim_ds_socket/CMakeLists.txt @@ -13,4 +13,4 @@ target_include_directories(halsim_ds_socket PRIVATE src/main/native/include) set_property(TARGET halsim_ds_socket PROPERTY FOLDER "libraries") -install(TARGETS halsim_ds_socket EXPORT halsim_ds_socket DESTINATION "${main_lib_dest}") +install(TARGETS halsim_ds_socket EXPORT halsim_ds_socket) diff --git a/simulation/halsim_gui/CMakeLists.txt b/simulation/halsim_gui/CMakeLists.txt index 949f9f1e8..957a9c223 100644 --- a/simulation/halsim_gui/CMakeLists.txt +++ b/simulation/halsim_gui/CMakeLists.txt @@ -16,4 +16,4 @@ target_include_directories(halsim_gui PRIVATE src/main/native/include) set_property(TARGET halsim_gui PROPERTY FOLDER "libraries") -install(TARGETS halsim_gui EXPORT halsim_gui DESTINATION "${main_lib_dest}") +install(TARGETS halsim_gui EXPORT halsim_gui) diff --git a/simulation/halsim_ws_client/CMakeLists.txt b/simulation/halsim_ws_client/CMakeLists.txt index 5bc99dbda..18a2a120d 100644 --- a/simulation/halsim_ws_client/CMakeLists.txt +++ b/simulation/halsim_ws_client/CMakeLists.txt @@ -13,4 +13,4 @@ target_include_directories(halsim_ws_client PRIVATE src/main/native/include) set_property(TARGET halsim_ws_client PROPERTY FOLDER "libraries") -install(TARGETS halsim_ws_client EXPORT halsim_ws_client DESTINATION "${main_lib_dest}") +install(TARGETS halsim_ws_client EXPORT halsim_ws_client) diff --git a/simulation/halsim_ws_core/CMakeLists.txt b/simulation/halsim_ws_core/CMakeLists.txt index 91bcbb25b..f7e240fd2 100644 --- a/simulation/halsim_ws_core/CMakeLists.txt +++ b/simulation/halsim_ws_core/CMakeLists.txt @@ -13,4 +13,4 @@ target_include_directories(halsim_ws_core PUBLIC src/main/native/include) set_property(TARGET halsim_ws_core PROPERTY FOLDER "libraries") -install(TARGETS halsim_ws_core EXPORT halsim_ws_core DESTINATION "${main_lib_dest}") +install(TARGETS halsim_ws_core EXPORT halsim_ws_core) diff --git a/simulation/halsim_ws_server/CMakeLists.txt b/simulation/halsim_ws_server/CMakeLists.txt index e5b55c801..370d2f83f 100644 --- a/simulation/halsim_ws_server/CMakeLists.txt +++ b/simulation/halsim_ws_server/CMakeLists.txt @@ -13,4 +13,4 @@ target_include_directories(halsim_ws_server PRIVATE src/main/native/include) set_property(TARGET halsim_ws_server PROPERTY FOLDER "libraries") -install(TARGETS halsim_ws_server EXPORT halsim_ws_server DESTINATION "${main_lib_dest}") +install(TARGETS halsim_ws_server EXPORT halsim_ws_server) diff --git a/wpigui/CMakeLists.txt b/wpigui/CMakeLists.txt index 59c4d6faf..2a6e6b213 100644 --- a/wpigui/CMakeLists.txt +++ b/wpigui/CMakeLists.txt @@ -37,7 +37,7 @@ add_executable(wpiguidev src/dev/native/cpp/main.cpp) wpilib_link_macos_gui(wpiguidev) target_link_libraries(wpiguidev wpigui) -install(TARGETS wpigui EXPORT wpigui DESTINATION "${main_lib_dest}") +install(TARGETS wpigui EXPORT wpigui) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpigui") #if (WITH_FLAT_INSTALL) diff --git a/wpilibNewCommands/CMakeLists.txt b/wpilibNewCommands/CMakeLists.txt index dc218fa06..fbebf19ea 100644 --- a/wpilibNewCommands/CMakeLists.txt +++ b/wpilibNewCommands/CMakeLists.txt @@ -39,7 +39,7 @@ target_include_directories(wpilibNewCommands PUBLIC $ $) -install(TARGETS wpilibNewCommands EXPORT wpilibNewCommands DESTINATION "${main_lib_dest}") +install(TARGETS wpilibNewCommands EXPORT wpilibNewCommands) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibNewCommands") if (FLAT_INSTALL_WPILIB) diff --git a/wpilibc/CMakeLists.txt b/wpilibc/CMakeLists.txt index 8c2c85ce9..ed8583497 100644 --- a/wpilibc/CMakeLists.txt +++ b/wpilibc/CMakeLists.txt @@ -30,7 +30,7 @@ target_link_libraries(wpilibc PUBLIC hal ntcore wpimath wpiutil) set_property(TARGET wpilibc PROPERTY FOLDER "libraries") -install(TARGETS wpilibc EXPORT wpilibc DESTINATION "${main_lib_dest}") +install(TARGETS wpilibc EXPORT wpilibc) install(DIRECTORY src/main/native/include/ DESTINATION "${include_dest}/wpilibc") if (WITH_FLAT_INSTALL) diff --git a/wpimath/CMakeLists.txt b/wpimath/CMakeLists.txt index 01fd5d0f8..15cede1b3 100644 --- a/wpimath/CMakeLists.txt +++ b/wpimath/CMakeLists.txt @@ -71,11 +71,7 @@ if (WITH_JAVA) target_link_libraries(wpimathjni PRIVATE wpimath_jni_headers) add_dependencies(wpimathjni wpimath_jar) - if (MSVC) - install(TARGETS wpimathjni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS wpimathjni EXPORT wpimathjni DESTINATION "${main_lib_dest}") + install(TARGETS wpimathjni EXPORT wpimathjni) endif() @@ -116,11 +112,7 @@ target_include_directories(wpimath PUBLIC $ $) -install(TARGETS wpimath EXPORT wpimath DESTINATION "${main_lib_dest}") - -if (WITH_JAVA AND MSVC) - install(TARGETS wpimath RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) -endif() +install(TARGETS wpimath EXPORT wpimath) if (WITH_FLAT_INSTALL) set (wpimath_config_dir ${wpilib_dest}) diff --git a/wpinet/CMakeLists.txt b/wpinet/CMakeLists.txt index 6d92a5640..c30d21827 100644 --- a/wpinet/CMakeLists.txt +++ b/wpinet/CMakeLists.txt @@ -34,11 +34,7 @@ if (WITH_JAVA) target_link_libraries(wpinetjni PRIVATE wpinet_jni_headers) add_dependencies(wpinetjni wpinet_jar) - if (MSVC) - install(TARGETS wpinetjni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS wpinetjni EXPORT wpinetjni DESTINATION "${main_lib_dest}") + install(TARGETS wpinetjni EXPORT wpinetjni) endif() @@ -161,11 +157,7 @@ target_include_directories(wpinet PUBLIC $ $) -install(TARGETS wpinet EXPORT wpinet DESTINATION "${main_lib_dest}") - -if (WITH_JAVA AND MSVC) - install(TARGETS wpinet RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) -endif() +install(TARGETS wpinet EXPORT wpinet) if (WITH_FLAT_INSTALL) set (wpinet_config_dir ${wpilib_dest}) diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index 5db2b4c65..f6486286d 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -55,11 +55,7 @@ if (WITH_JAVA) target_link_libraries(wpiutiljni PRIVATE wpiutil_jni_headers) add_dependencies(wpiutiljni wpiutil_jar) - if (MSVC) - install(TARGETS wpiutiljni RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) - endif() - - install(TARGETS wpiutiljni EXPORT wpiutiljni DESTINATION "${main_lib_dest}") + install(TARGETS wpiutiljni EXPORT wpiutiljni) endif() @@ -161,11 +157,7 @@ target_include_directories(wpiutil PUBLIC $ $) -install(TARGETS wpiutil EXPORT wpiutil DESTINATION "${main_lib_dest}") - -if (WITH_JAVA AND MSVC) - install(TARGETS wpiutil RUNTIME DESTINATION "${jni_lib_dest}" COMPONENT Runtime) -endif() +install(TARGETS wpiutil EXPORT wpiutil) if (WITH_FLAT_INSTALL) set (wpiutil_config_dir ${wpilib_dest}) ================================================ FILE: ports/wren/CMakeLists.txt ================================================ # CMake taken from https://github.com/walterschell/wren/blob/cmake/CMakeLists.txt # Need transitive dependencies introduced in 2.8.12 cmake_minimum_required(VERSION 2.8.12) project(Wren LANGUAGES "C") set(wren_warning_flags "-Wall" "-Wextra" "-Werror" "-Wno-unused-parameter") IF (WIN32) ADD_DEFINITIONS (-D_CRT_SECURE_NO_WARNINGS ) ENDIF () set(opt_DIR "src/optional") set(vm_DIR "src/vm") # TODO: Don't glob file(GLOB opt_SRCS ${opt_DIR}/*.c) file(GLOB vm_SRCS ${vm_DIR}/*.c) set(wren_SRCS ${vm_SRCS} ${opt_SRCS}) add_library(wren ${wren_SRCS}) target_include_directories(wren PUBLIC src/include PRIVATE src/vm src/optional) target_link_libraries(wren INTERFACE m) target_compile_options(wren PRIVATE "-Wall") if (CMAKE_BUILD_TYPE STREQUAL "Debug") target_compile_options(wren PUBLIC -DDEBUG) endif() INSTALL (TARGETS wren RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib ) IF (NOT DEFINED SKIP_INSTALL_HEADERS) INSTALL( FILES src/include/wren.h src/include/wren.hpp DESTINATION include ) ENDIF () ================================================ FILE: ports/wren/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wren-lang/wren REF 4a18fc489f9ea3d253b20dd40f4cdad0d6bb40eb #0.4.0 SHA512 b3d79e9cb647e52db06d5cddfc8c93d05ae0e8d87f0f879ac2b812fcc7f55e018d21d3b04d62eaeb12e6d931b5e43fbe357b187e7f446e86e39be015c51c2eee HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCOMPILE_AS_CPP=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) vcpkg_copy_pdbs() ================================================ FILE: ports/wren/vcpkg.json ================================================ { "name": "wren", "version": "0.4.0", "description": "Wren is a small, fast, class-based concurrent scripting language.", "homepage": "https://github.com/wren-lang/wren", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/wt/0005-XML_file_path.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 96eff0a..c31fd49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,7 +111,11 @@ SET(CMAKE_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake" CACHE STRING IF(WIN32) - SET(RUNDIR "c:/witty") # Does not apply to win32 + if (NOT INSTALL_CONFIG_FILE_PATH) + SET(RUNDIR "c:/witty") # Does not apply to win32 + else() + SET(RUNDIR ${INSTALL_CONFIG_FILE_PATH}) # Does not apply to win32 + endif() IF(NOT DEFINED CONFIGDIR) SET(CONFIGDIR ${RUNDIR} CACHE STRING "Path for the configuration files") ================================================ FILE: ports/wt/0006-GraphicsMagick.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7466193..5826718 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -374,9 +374,9 @@ SET(WT_WRASTERIMAGE_IMPLEMENTATION ${WT_WRASTERIMAGE_DEFAULT_IMPLEMENTATION} CAC SET_PROPERTY(CACHE WT_WRASTERIMAGE_IMPLEMENTATION PROPERTY STRINGS GraphicsMagick Direct2D none) IF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick") - IF (NOT GM_FOUND) + IF (0) MESSAGE(FATAL_ERROR "WT_WRASTERIMAGE_IMPLEMENTATION set to GraphicsMagick but GM is not found. Indicate the location of your graphicsmagick library using -DGM_PREFIX=...") - ENDIF (NOT GM_FOUND) + ENDIF () SET(WT_HAS_WRASTERIMAGE true) ELSEIF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "Direct2D") IF (WIN32) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f22e7eb..6565e9e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -663,8 +663,10 @@ else() endif() IF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick") - TARGET_LINK_LIBRARIES(wt PRIVATE ${GM_LIBRARIES}) - INCLUDE_DIRECTORIES(${GM_INCLUDE_DIRS}) + find_package(PkgConfig) + pkg_check_modules(GRAPHICSMAGICK REQUIRED GraphicsMagick) + target_include_directories(wt PRIVATE ${GRAPHICSMAGICK_INCLUDE_DIRS}) + target_link_libraries(wt PRIVATE ${GRAPHICSMAGICK_LINK_LIBRARIES}) ADD_DEFINITIONS(-DHAVE_GRAPHICSMAGICK) ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "Direct2D") TARGET_LINK_LIBRARIES(wt PRIVATE d2d1 dwrite windowscodecs shlwapi) ================================================ FILE: ports/wt/0007-fix-haru.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5826718..06cfe04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,8 +275,8 @@ find_package(GLEW) find_package(Asciidoctor) -set(HPDF_ROOT ${HARU_PREFIX}) -find_package(HPDF) +find_package(HPDF NAMES unofficial-libharu CONFIG REQUIRED) +add_library(HPDF::HPDF ALIAS unofficial::libharu::hpdf) set(OPENSSL_ROOT_DIR ${SSL_PREFIX}) find_package(OpenSSL) diff --git a/wt-config.cmake.in b/wt-config.cmake.in index a3693d3..4df41c2 100644 --- a/wt-config.cmake.in +++ b/wt-config.cmake.in @@ -5,7 +5,9 @@ if(@_WTCONFIG_CMAKE_FIND_BOOST@) find_package(Boost QUIET COMPONENTS @Boost_COMPONENTS@) endif() - +if(@ENABLE_HARU@) + find_package(unofficial-libharu QUIET) +endif() # Required target include(${CMAKE_CURRENT_LIST_DIR}/wt-target-wt.cmake) # Optional targets ================================================ FILE: ports/wt/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emweb/wt REF "${VERSION}" SHA512 2c2b746a8253d2a27efed18d908fa8e41ad1014c369b54a7cbe26f6a8a5dbd43902eb2aba99410ee63b858a8c752239f0f1a5d90bfb166e77796e7b6fc0aa960 HEAD_REF master PATCHES 0005-XML_file_path.patch 0006-GraphicsMagick.patch 0007-fix-haru.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES dbo ENABLE_LIBWTDBO postgresql ENABLE_POSTGRES sqlite3 ENABLE_SQLITE sqlserver ENABLE_MSSQLSERVER openssl ENABLE_SSL ) if(VCPKG_TARGET_IS_WINDOWS) set(WT_PLATFORM_SPECIFIC_OPTIONS -DWT_WRASTERIMAGE_IMPLEMENTATION=Direct2D -DCONNECTOR_ISAPI=ON -DENABLE_PANGO=OFF) else() set(WT_PLATFORM_SPECIFIC_OPTIONS -DCONNECTOR_FCGI=OFF -DENABLE_PANGO=ON -DHARFBUZZ_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/harfbuzz) if ("graphicsmagick" IN_LIST FEATURES) list(APPEND WT_PLATFORM_SPECIFIC_OPTIONS -DWT_WRASTERIMAGE_IMPLEMENTATION=GraphicsMagick) else() list(APPEND WT_PLATFORM_SPECIFIC_OPTIONS -DWT_WRASTERIMAGE_IMPLEMENTATION=none) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" GENERATOR Ninja OPTIONS -DINSTALL_CONFIG_FILE_PATH="${DOWNLOADS}/wt" -DSHARED_LIBS=${SHARED_LIBS} -DBOOST_DYNAMIC=${SHARED_LIBS} -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DWTHTTP_CONFIGURATION= -DCONFIGURATION= -DCONNECTOR_HTTP=ON -DENABLE_HARU=ON -DHARU_DYNAMIC=${SHARED_LIBS} -DENABLE_MYSQL=OFF -DENABLE_FIREBIRD=OFF -DENABLE_QT4=OFF -DENABLE_QT5=OFF -DENABLE_LIBWTTEST=ON -DENABLE_OPENGL=ON ${FEATURE_OPTIONS} ${WT_PLATFORM_SPECIFIC_OPTIONS} -DUSE_SYSTEM_SQLITE3=ON -DCMAKE_INSTALL_DIR=share # see https://redmine.webtoolkit.eu/issues/9646 -DWTHTTP_CONFIGURATION= -DCONFIGURATION= "-DUSERLIB_PREFIX=${CURRENT_INSTALLED_DIR}" MAYBE_UNUSED_VARIABLES USE_SYSTEM_SQLITE3 ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() # There is no way to suppress installation of the headers and resource files in debug build. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/var" "${CURRENT_PACKAGES_DIR}/debug/var") # RUNDIR is only used for wtfcgi what we don't build. See https://redmine.webtoolkit.eu/issues/9646 file(READ "${CURRENT_PACKAGES_DIR}/include/Wt/WConfig.h" W_CONFIG_H) string(REGEX REPLACE "([\r\n])#define RUNDIR[^\r\n]+" "\\1// RUNDIR intentionally unset by vcpkg" W_CONFIG_H "${W_CONFIG_H}") file(WRITE "${CURRENT_PACKAGES_DIR}/include/Wt/WConfig.h" "${W_CONFIG_H}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_copy_pdbs() ================================================ FILE: ports/wt/vcpkg.json ================================================ { "name": "wt", "version": "4.12.6", "description": "Wt is a C++ library for developing web applications", "homepage": "https://github.com/emweb/wt", "license": "GPL-2.0-only", "supports": "!xbox", "dependencies": [ "boost-algorithm", "boost-array", "boost-asio", "boost-bind", "boost-config", "boost-container-hash", "boost-filesystem", "boost-foreach", "boost-fusion", "boost-interprocess", "boost-lexical-cast", "boost-logic", "boost-math", "boost-multi-index", "boost-optional", "boost-phoenix", "boost-pool", "boost-program-options", "boost-range", "boost-serialization", "boost-smart-ptr", "boost-spirit", "boost-system", "boost-thread", "boost-tokenizer", "boost-tuple", "boost-ublas", "boost-variant", "glew", { "name": "harfbuzz", "platform": "!windows" }, "libharu", "libpng", { "name": "pango", "platform": "!windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "openssl" ], "features": { "dbo": { "description": "Wt::Dbo" }, "graphicsmagick": { "description": "WRasterImage support on non-Windows based on GraphicsMagick", "dependencies": [ "graphicsmagick" ] }, "openssl": { "description": "TLS support", "dependencies": [ "openssl" ] }, "postgresql": { "description": "Wt::Dbo PostgreSQL backend", "dependencies": [ "libpq", { "name": "wt", "features": [ "dbo" ] } ] }, "sqlite3": { "description": "Wt::Dbo Sqlite 3 backend", "dependencies": [ "sqlite3", { "name": "wt", "features": [ "dbo" ] } ] }, "sqlserver": { "description": "Wt::Dbo MS SQL Server backend", "dependencies": [ { "name": "unixodbc", "platform": "!windows" }, { "name": "wt", "features": [ "dbo" ] } ] } } } ================================================ FILE: ports/wtl/appwizard_setup.js-vs2022.patch ================================================ --- a/AppWizard/Setup.js +++ b/AppWizard/Setup.js @@ -185,26 +185,30 @@ } } -// Search for Visual Studio 2017-2019 - var nVersionsNew = 2; +// Search for Visual Studio 2017/2019/2022 + var nVersionsNew = 3; var strWizardFolderNew = "Common7\\IDE\\VC\\vcprojects"; var astrVersionsNew = new Array(); astrVersionsNew[0] = "Visual Studio 2017 (15.0)"; astrVersionsNew[1] = "Visual Studio 2019 (16.0)"; + astrVersionsNew[2] = "Visual Studio 2022 (17.0)"; var astrWizVerNew = new Array(); astrWizVerNew[0] = "15.0"; astrWizVerNew[1] = "16.0"; + astrWizVerNew[2] = "17.0"; var astrParamVerNew = new Array(); astrParamVerNew[0] = "15"; astrParamVerNew[1] = "16"; + astrParamVerNew[2] = "17"; var astrFilterVer = new Array(); astrFilterVer[0] = "[15.0,16.0]"; astrFilterVer[1] = "[16.0,17.0]"; + astrFilterVer[2] = "[17.0,18.0]"; // Ensure that we can run vswhere.exe var strProgFileRegKey_x86 = "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ProgramFilesDir (x86)"; ================================================ FILE: ports/wtl/atlmisc.h-bug329.patch ================================================ --- a/Include/atlmisc.h +++ b/Include/atlmisc.h @@ -628,7 +628,7 @@ { ATLASSERT(m_hFind != NULL); - ATL::CString strResult("file://"); + ATL::CString strResult(_T("file://")); strResult += GetFilePath(); return strResult; } ================================================ FILE: ports/wtl/atlribbon.h-wtl66.patch ================================================ --- a/Include/atlribbon.h 2022-06-06 03:12:54.312690900 +0200 +++ b/Include/atlribbon.h 2022-06-06 03:13:24.337068900 +0200 @@ -27,10 +27,10 @@ #error atlribbon.h requires atlapp.h to be included first #endif -#include // for RecentDocumentList classes -#include // for Frame and UpdateUI classes -#include // required for atlctrlw.h -#include // for CCommandBarCtrl +#include "atlmisc.h" // for RecentDocumentList classes +#include "atlframe.h" // for Frame and UpdateUI classes +#include "atlctrls.h" // required for atlctrlw.h +#include "atlctrlw.h" // for CCommandBarCtrl #ifndef __ATLSTR_H__ #pragma warning(push) ================================================ FILE: ports/wtl/portfile.cmake ================================================ vcpkg_from_sourceforge( OUT_SOURCE_PATH SOURCE_PATH REPO wtl/WTL%2010 REF WTL%2010.0.10320%20Release FILENAME "WTL10_10320_Release.zip" NO_REMOVE_ONE_LEVEL SHA512 086a6cf6a49a4318a8c519136ba6019ded7aa7f2c1d85f78c30b21183654537b3428a400a64fcdacba3a7a10a9ef05137b6f2119f59594da300d55f9ebfb1309 PATCHES # WTL 10 post-release updates; see # https://sourceforge.net/projects/wtl/files/WTL%2010/WTL10%20Post-Release%20Updates.txt/download appwizard_setup.js-vs2022.patch atlmisc.h-bug329.patch atlribbon.h-wtl66.patch ) file(INSTALL "${SOURCE_PATH}/Include/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" FILES_MATCHING PATTERN "*.h") file(COPY "${SOURCE_PATH}/Samples" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(COPY "${SOURCE_PATH}/AppWizard" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/MS-PL.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/wtl/vcpkg.json ================================================ { "name": "wtl", "version": "10.0.10320", "port-version": 5, "description": "Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components.", "homepage": "https://sourceforge.net/projects/wtl/", "license": "MS-PL", "supports": "windows & !xbox", "dependencies": [ "atl" ] } ================================================ FILE: ports/wxchartdir/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.13) project(wxchartdir CXX) set(wxWidgets_EXCLUDE_COMMON_LIBRARIES TRUE) find_package(wxWidgets REQUIRED COMPONENTS core base) include(${wxWidgets_USE_FILE}) find_package(chartdir CONFIG REQUIRED) add_library(wxchartdir STATIC wxdemo/common/wxchartviewer.cpp) target_include_directories(wxchartdir PUBLIC $ ) target_compile_features(wxchartdir PRIVATE cxx_std_11) target_link_libraries(wxchartdir PRIVATE ${wxWidgets_LIBRARIES} PRIVATE chartdir ) install(TARGETS wxchartdir EXPORT wxchartdir-config RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(EXPORT wxchartdir-config DESTINATION share/cmake/wxchartdir) install(FILES wxdemo/common/mondrian.xpm DESTINATION include/wxchartdir) install(FILES wxdemo/common/wxchartviewer.h DESTINATION include/wxchartdir) install(FILES wxdemo/common/wxchartviewer_defs.h DESTINATION include/wxchartdir) install(FILES wxdemo/common/wxchartviewer_version.h DESTINATION include/wxchartdir) install(FILES wxdemo/common/wxchartviewer_version.rc DESTINATION include/wxchartdir) ================================================ FILE: ports/wxchartdir/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO utelle/wxchartdir REF v2.0.0 SHA512 dd255af1031465c635df7ea7eee2dd15f0dcce30f91cae1eff6527b8b78ea872fa22fa05da5363f57817dc8844c0bc171a2c68f54c38f2519c7bfe0256605622 HEAD_REF main ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/wxchartdir) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") configure_file("${SOURCE_PATH}/COPYING.txt" "${CURRENT_PACKAGES_DIR}/share/wxchartdir/copyright" COPYONLY) file(COPY "${SOURCE_PATH}/CHARTDIRECTOR-LICENSE.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/CHARTDIRECTOR-README.TXT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/GPL-3.0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/LGPL-3.0.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/LICENSE.spdx" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") file(COPY "${SOURCE_PATH}/WxWindows-exception-3.1.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/wxchartdir") ================================================ FILE: ports/wxchartdir/vcpkg.json ================================================ { "name": "wxchartdir", "version": "2.0.0", "port-version": 2, "description": "wxChartDir provides components for the integration and use of the commercial C++ library ChartDirector, a universal chart component developed by Advanced Software Engineering Ltd, in wxWidgets based applications.", "homepage": "https://github.com/utelle/wxchartdir", "license": "GPL-3.0-only AND LGPL-3.0 AND wxWindows", "supports": "!xbox", "dependencies": [ "chartdir", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wxwidgets" ] } ================================================ FILE: ports/wxcharts/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wxIshiko/wxCharts REF 070e1d6084623185c7337226fa562b1e3a772e3d SHA512 4c52e4ad6d3c4ba496aad7e654ee75ddd9009aadc44be37fc64f3e3ac56001a7e9728f7fdd0c78f8261bff0bf8a6748f8a7649cb160ca37c2d686530c161c2f6 ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/wxcharts/vcpkg.json ================================================ { "name": "wxcharts", "version-date": "2022-07-05", "description": "Chart controls for the wxWidgets cross-platform GUI library", "homepage": "https://www.wxishiko.com/wxCharts", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "wxwidgets" ] } ================================================ FILE: ports/wxwidgets/example/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(wxwidgets-example) add_executable(main WIN32 popup.cpp) find_package(wxWidgets REQUIRED) target_compile_features(main PRIVATE cxx_std_11) target_compile_definitions(main PRIVATE ${wxWidgets_DEFINITIONS} "$<$:${wxWidgets_DEFINITIONS_DEBUG}>") target_include_directories(main PRIVATE ${wxWidgets_INCLUDE_DIRS}) target_link_libraries(main PRIVATE ${wxWidgets_LIBRARIES}) add_executable(main2 WIN32 popup.cpp) find_package(wxWidgets CONFIG REQUIRED) target_link_libraries(main2 PRIVATE wx::core wx::base) target_compile_features(main2 PRIVATE cxx_std_11) option(USE_WXRC "Use the wxrc resource compiler" ON) if(USE_WXRC) execute_process( COMMAND "${wxWidgets_wxrc_EXECUTABLE}" --help RESULTS_VARIABLE error_result ) if(error_result) message(FATAL_ERROR "Failed to run wxWidgets_wxrc_EXECUTABLE (${wxWidgets_wxrc_EXECUTABLE})") endif() endif() set(PRINT_VARS "" CACHE STRING "Variables to print at the end of configuration") foreach(var IN LISTS PRINT_VARS) message(STATUS "${var}:=${${var}}") endforeach() ================================================ FILE: ports/wxwidgets/fix-libs-export.patch ================================================ diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake index b359560..7504458 100644 --- a/build/cmake/config.cmake +++ b/build/cmake/config.cmake @@ -39,8 +39,14 @@ macro(wx_get_dependencies var lib) else() # For the value like $<$:LIB_PATH> # Or $<$>:LIB_PATH> - string(REGEX REPLACE "^.+>:(.+)>$" "\\1" dep_name ${dep}) - if (NOT dep_name) + if(dep MATCHES "^(.+>):(.+)>$") + if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND CMAKE_MATCH_1 STREQUAL [[$<$>]]) + continue() + elseif(CMAKE_BUILD_TYPE STREQUAL "Release" AND CMAKE_MATCH_1 STREQUAL [[$<$]]) + continue() + endif() + set(dep_name "${CMAKE_MATCH_2}") + else() set(dep_name ${dep}) endif() endif() ================================================ FILE: ports/wxwidgets/fix-pcre2.patch ================================================ diff --git a/build/cmake/modules/FindPCRE2.cmake b/build/cmake/modules/FindPCRE2.cmake index a27693a..455675a 100644 --- a/build/cmake/modules/FindPCRE2.cmake +++ b/build/cmake/modules/FindPCRE2.cmake @@ -24,7 +24,10 @@ set(PCRE2_CODE_UNIT_WIDTH_USED "${PCRE2_CODE_UNIT_WIDTH}" CACHE INTERNAL "") find_package(PkgConfig QUIET) pkg_check_modules(PC_PCRE2 QUIET libpcre2-${PCRE2_CODE_UNIT_WIDTH}) +set(PCRE2_LIBRARIES ${PC_PCRE2_LINK_LIBRARIES}) +set(PCRE2_INCLUDE_DIRS ${PC_PCRE2_INCLUDE_DIRS}) +if (0) find_path(PCRE2_INCLUDE_DIRS NAMES pcre2.h HINTS ${PC_PCRE2_INCLUDEDIR} @@ -36,6 +39,7 @@ find_library(PCRE2_LIBRARIES HINTS ${PC_PCRE2_LIBDIR} ${PC_PCRE2_LIBRARY_DIRS} ) +endif() include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE2 REQUIRED_VARS PCRE2_LIBRARIES PCRE2_INCLUDE_DIRS VERSION_VAR PC_PCRE2_VERSION) ================================================ FILE: ports/wxwidgets/gtk3-link-libraries.patch ================================================ diff --git a/build/cmake/modules/FindGTK3.cmake b/build/cmake/modules/FindGTK3.cmake index d2939a1..daf33fe 100644 --- a/build/cmake/modules/FindGTK3.cmake +++ b/build/cmake/modules/FindGTK3.cmake @@ -47,6 +47,12 @@ include(CheckSymbolExists) set(CMAKE_REQUIRED_INCLUDES ${GTK3_INCLUDE_DIRS}) check_symbol_exists(GDK_WINDOWING_WAYLAND "gdk/gdk.h" wxHAVE_GDK_WAYLAND) check_symbol_exists(GDK_WINDOWING_X11 "gdk/gdk.h" wxHAVE_GDK_X11) +# With Lerc support in TIFF, Gtk3 may carry C++ compiler libs which break FindWxWidgets.cmake. +# WxWidgets is C++, so we can remove them here using the inverse pattern. +set(cxx_libs "${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}") +list(REMOVE_ITEM cxx_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES}) +list(REMOVE_ITEM GTK3_LINK_LIBRARIES ${cxx_libs}) +set(GTK3_LIBRARIES "${GTK3_LINK_LIBRARIES}" CACHE INTERNAL "") include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK3 DEFAULT_MSG GTK3_INCLUDE_DIRS GTK3_LIBRARIES VERSION_OK) ================================================ FILE: ports/wxwidgets/install-layout.patch ================================================ diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index f044d22d4d..a78b9aa1e9 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -200,12 +200,12 @@ endif() if(WIN32_MSVC_NAMING) if(wxBUILD_SHARED) - set(lib_suffix "_dll") + # set(lib_suffix "_dll") else() - set(lib_suffix "_lib") + # set(lib_suffix "_lib") endif() - set(wxPLATFORM_LIB_DIR "${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}${lib_suffix}") + # set(wxPLATFORM_LIB_DIR "${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}${lib_suffix}") # Generator expression to not create different Debug and Release directories set(GEN_EXPR_DIR "$<1:/>") diff --git a/build/cmake/install.cmake b/build/cmake/install.cmake index a373983043..2e1ace7bf9 100644 --- a/build/cmake/install.cmake +++ b/build/cmake/install.cmake @@ -63,7 +63,7 @@ else() install(DIRECTORY DESTINATION "bin") install(CODE "execute_process( \ - COMMAND ${CMAKE_COMMAND} -E create_symlink \ + COMMAND ${CMAKE_COMMAND} -E copy \ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/wx/config/${wxBUILD_FILE_ID}\" \ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \ )" diff --git a/build/cmake/utils/CMakeLists.txt b/build/cmake/utils/CMakeLists.txt index 15f4339ef9..f93849e025 100644 --- a/build/cmake/utils/CMakeLists.txt +++ b/build/cmake/utils/CMakeLists.txt @@ -39,7 +39,7 @@ if(wxUSE_XRC) # Don't use wx_install() here to preserve escaping. install(CODE "execute_process( \ - COMMAND ${CMAKE_COMMAND} -E create_symlink \ + COMMAND ${CMAKE_COMMAND} -E copy \ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/${wxrc_output_name}${EXE_SUFFIX}\" \ \"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX}\" \ )" ================================================ FILE: ports/wxwidgets/nanosvg-ext-depend.patch ================================================ diff --git a/build/cmake/wxWidgetsConfig.cmake.in b/build/cmake/wxWidgetsConfig.cmake.in index b251109..60cf762 100644 --- a/build/cmake/wxWidgetsConfig.cmake.in +++ b/build/cmake/wxWidgetsConfig.cmake.in @@ -1,5 +1,8 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(NanoSVG CONFIG) + cmake_policy(PUSH) # Set policies to prevent warnings if(POLICY CMP0057) ================================================ FILE: ports/wxwidgets/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wxWidgets/wxWidgets REF "v${VERSION}" SHA512 8ad17582c4ba721ffe76ada4bb8bd7bc4b050491220aca335fd0506a51354fb789d5bc3d965f0f459dc81784d6427c88272e2acc2099cddf73730231b5a16f62 HEAD_REF master PATCHES install-layout.patch relocatable-wx-config.patch nanosvg-ext-depend.patch fix-libs-export.patch fix-pcre2.patch gtk3-link-libraries.patch sdl2.patch ) # Submodule dependencies vcpkg_from_github( OUT_SOURCE_PATH lexilla_SOURCE_PATH REPO wxWidgets/lexilla REF "27c20a6ae5eebf418debeac0166052ed6fb653bc" SHA512 7e5de7f664509473b691af8261fca34c2687772faca7260eeba5f2984516e6f8edf88c27192e056c9dda996e2ad2c20f6d1dff1c4bd2f3c0d74852cb50ca424a HEAD_REF wx ) file(COPY "${lexilla_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/stc/lexilla") vcpkg_from_github( OUT_SOURCE_PATH scintilla_SOURCE_PATH REPO wxWidgets/scintilla REF "0b90f31ced23241054e8088abb50babe9a44ae67" SHA512 db1f3007f4bd8860fad0817b6cf87980a4b713777025128cf5caea8d6d17b6fafe23fd22ff6886d7d5a420f241d85b7502b85d7e52b4ddb0774edc4b0a0203e7 HEAD_REF wx ) file(COPY "${scintilla_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/src/stc/scintilla") vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES fonts wxUSE_PRIVATE_FONTS media wxUSE_MEDIACTRL secretstore wxUSE_SECRETSTORE sound wxUSE_SOUND webview wxUSE_WEBVIEW ) # Only use wxUSE_WEBVIEW_EDGE on Windows (webview2) if(VCPKG_TARGET_IS_WINDOWS AND "webview" IN_LIST FEATURES) list(APPEND FEATURE_OPTIONS "-DwxUSE_WEBVIEW_EDGE=ON") endif() set(OPTIONS_RELEASE "") if(NOT "debug-support" IN_LIST FEATURES) list(APPEND OPTIONS_RELEASE "-DwxBUILD_DEBUG_LEVEL=0") endif() set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")) list(APPEND OPTIONS -DwxUSE_STACKWALKER=OFF ) endif() if(VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_OSX) list(APPEND OPTIONS -DwxUSE_WEBREQUEST_CURL=OFF) else() list(APPEND OPTIONS -DwxUSE_WEBREQUEST_CURL=ON) endif() if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") list(APPEND OPTIONS -DwxBUILD_USE_STATIC_RUNTIME=OFF) else() list(APPEND OPTIONS -DwxBUILD_USE_STATIC_RUNTIME=ON) endif() endif() if(VCPKG_TARGET_IS_WINDOWS AND "webview" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND OPTIONS -DwxUSE_WEBVIEW_EDGE_STATIC=ON) endif() vcpkg_find_acquire_program(PKGCONFIG) # This may be set to ON by users in a custom triplet. # The use of 'WXWIDGETS_USE_STD_CONTAINERS' (ON or OFF) is not API compatible # which is why it must be set in a custom triplet rather than a port feature. # For backwards compatibility, we also replace 'wxUSE_STL' (which no longer # exists) with 'wxUSE_STD_STRING_CONV_IN_WXSTRING' which still exists and was # set by `wxUSE_STL` previously. if(NOT DEFINED WXWIDGETS_USE_STL) set(WXWIDGETS_USE_STL OFF) endif() if(NOT DEFINED WXWIDGETS_USE_STD_CONTAINERS) set(WXWIDGETS_USE_STD_CONTAINERS OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DwxUSE_REGEX=sys -DwxUSE_ZLIB=sys -DwxUSE_EXPAT=sys -DwxUSE_LIBJPEG=sys -DwxUSE_LIBPNG=sys -DwxUSE_LIBTIFF=sys -DwxUSE_NANOSVG=sys -DwxUSE_LIBWEBP=sys -DwxUSE_GLCANVAS=ON -DwxUSE_LIBGNOMEVFS=OFF -DwxUSE_LIBNOTIFY=OFF -DwxUSE_STD_STRING_CONV_IN_WXSTRING=${WXWIDGETS_USE_STL} -DwxUSE_STD_CONTAINERS=${WXWIDGETS_USE_STD_CONTAINERS} -DwxUSE_UIACTIONSIMULATOR=OFF -DCMAKE_DISABLE_FIND_PACKAGE_GSPELL=ON -DCMAKE_DISABLE_FIND_PACKAGE_MSPACK=ON -DwxBUILD_INSTALL_RUNTIME_DIR:PATH=bin ${OPTIONS} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" # The minimum cmake version requirement for Cotire is 2.8.12. # however, we need to declare that the minimum cmake version requirement is at least 3.1 to use CMAKE_PREFIX_PATH as the path to find .pc. -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=ON OPTIONS_RELEASE ${OPTIONS_RELEASE} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_GSPELL CMAKE_DISABLE_FIND_PACKAGE_MSPACK ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/wxWidgets) # The CMake export is not ready for use: It lacks a config file. file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/debug/lib/cmake ) set(tools wxrc) if(NOT VCPKG_TARGET_IS_WINDOWS) list(APPEND tools wxrc-3.3) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(RENAME "${CURRENT_PACKAGES_DIR}/bin/wx-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/wx-config") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/bin/wx-config" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/wx-config") endif() endif() vcpkg_copy_tools(TOOL_NAMES ${tools} AUTO_CLEAN) # do the copy pdbs now after the dlls got moved to the expected /bin folder above vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/msvc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/mswu") if(VCPKG_BUILD_TYPE STREQUAL "release") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/mswud") endif() file(GLOB_RECURSE INCLUDES "${CURRENT_PACKAGES_DIR}/include/*.h") if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/mswu/wx/setup.h") list(APPEND INCLUDES "${CURRENT_PACKAGES_DIR}/lib/mswu/wx/setup.h") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/mswud/wx/setup.h") list(APPEND INCLUDES "${CURRENT_PACKAGES_DIR}/debug/lib/mswud/wx/setup.h") endif() foreach(INC IN LISTS INCLUDES) file(READ "${INC}" _contents) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(REPLACE "defined(WXUSINGDLL)" "0" _contents "${_contents}") else() string(REPLACE "defined(WXUSINGDLL)" "1" _contents "${_contents}") endif() # Remove install prefix from setup.h to ensure package is relocatable string(REGEX REPLACE "\n#define wxINSTALL_PREFIX [^\n]*" "\n#define wxINSTALL_PREFIX \"\"" _contents "${_contents}") file(WRITE "${INC}" "${_contents}") endforeach() if(NOT EXISTS "${CURRENT_PACKAGES_DIR}/include/wx/setup.h") file(GLOB_RECURSE WX_SETUP_H_FILES_DBG "${CURRENT_PACKAGES_DIR}/debug/lib/*.h") file(GLOB_RECURSE WX_SETUP_H_FILES_REL "${CURRENT_PACKAGES_DIR}/lib/*.h") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${WX_SETUP_H_FILES_REL}" "${CURRENT_PACKAGES_DIR}" "" IGNORE_UNCHANGED) string(REPLACE "${CURRENT_PACKAGES_DIR}/lib/" "" WX_SETUP_H_FILES_REL "${WX_SETUP_H_FILES_REL}") string(REPLACE "/setup.h" "" WX_SETUP_H_REL_RELATIVE "${WX_SETUP_H_FILES_REL}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${WX_SETUP_H_FILES_DBG}" "${CURRENT_PACKAGES_DIR}" "" IGNORE_UNCHANGED) string(REPLACE "${CURRENT_PACKAGES_DIR}/debug/lib/" "" WX_SETUP_H_FILES_DBG "${WX_SETUP_H_FILES_DBG}") string(REPLACE "/setup.h" "" WX_SETUP_H_DBG_RELATIVE "${WX_SETUP_H_FILES_DBG}") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/setup.h.in" "${CURRENT_PACKAGES_DIR}/include/wx/setup.h" @ONLY) endif() file(GLOB configs LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/lib/wx/config/*" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/wx-config") foreach(config IN LISTS configs) vcpkg_replace_string("${config}" "${CURRENT_INSTALLED_DIR}" [[${prefix}]]) endforeach() file(GLOB configs LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/debug/lib/wx/config/*" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/wx-config") foreach(config IN LISTS configs) vcpkg_replace_string("${config}" "${CURRENT_INSTALLED_DIR}/debug" [[${prefix}]]) endforeach() # For CMake multi-config in connection with wrapper if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/mswud/wx/setup.h") file(INSTALL "${CURRENT_PACKAGES_DIR}/debug/lib/mswud/wx/setup.h" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/mswud/wx" ) endif() if(NOT "debug-support" IN_LIST FEATURES) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/wx/debug.h" "#define wxDEBUG_LEVEL 1" "#define wxDEBUG_LEVEL 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/wx-3.3/wx/debug.h" "#define wxDEBUG_LEVEL 1" "#define wxDEBUG_LEVEL 0") endif() endif() if("example" IN_LIST FEATURES) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/example/CMakeLists.txt" "${SOURCE_PATH}/samples/popup/popup.cpp" "${SOURCE_PATH}/samples/sample.xpm" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}/example" ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/example/popup.cpp" "../sample.xpm" "sample.xpm") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(REMOVE "${CURRENT_PACKAGES_DIR}/wxwidgets.props") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/wxwidgets.props") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/build") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/build") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/docs/licence.txt") ================================================ FILE: ports/wxwidgets/relocatable-wx-config.patch ================================================ diff --git a/wx-config.in b/wx-config.in index 4df8571..a90db3d 100644 --- a/wx-config.in +++ b/wx-config.in @@ -398,8 +398,23 @@ is_cross() { [ "x@cross_compiling@" = "xyes" ]; } # Determine the base directories we require. -prefix=${input_option_prefix-${this_prefix:-@prefix@}} -exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-@exec_prefix@}}} +vcpkg_prefix=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P) +case "$vcpkg_prefix" in + */lib/wx/config) + vcpkg_prefix=${vcpkg_prefix%/*/*/*} + ;; + */tools/wxwidgets/debug) + vcpkg_prefix=${vcpkg_prefix%/*/*/*}/debug + ;; + */tools/wxwidgets) + vcpkg_prefix=${vcpkg_prefix%/*/*} + ;; +esac +if [ -n "@MINGW@" -a -n "@CMAKE_HOST_WIN32@" ]; then + vcpkg_prefix=$(cygpath -m "$vcpkg_prefix") +fi +prefix=${input_option_prefix-${this_prefix:-$vcpkg_prefix}} +exec_prefix=${input_option_exec_prefix-${input_option_prefix-${this_exec_prefix:-$prefix}}} wxconfdir="@libdir@/wx/config" installed_configs=`cd "$wxconfdir" 2> /dev/null && ls | grep -v "^inplace-"` @@ -936,6 +951,9 @@ prefix=${this_prefix-$prefix} exec_prefix=${this_exec_prefix-$exec_prefix} includedir="@includedir@" +if [ "@CMAKE_BUILD_TYPE@" = "Debug" ] ; then + includedir="${includedir%/debug/include}/include" +fi libdir="@libdir@" bindir="@bindir@" ================================================ FILE: ports/wxwidgets/sdl2.patch ================================================ diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index 5447d33..f5440b4 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -530,7 +530,9 @@ if(wxUSE_GUI) endif() if(wxUSE_SOUND AND wxUSE_LIBSDL AND UNIX AND NOT APPLE) - find_package(SDL2) + find_package(SDL2 CONFIG REQUIRED) + set(SDL2_INCLUDE_DIR "" CACHE INTERNAL "") + set(SDL2_LIBRARY SDL2::SDL2 CACHE INTERNAL "") if(NOT SDL2_FOUND) find_package(SDL) endif() diff --git a/build/cmake/wxWidgetsConfig.cmake.in b/build/cmake/wxWidgetsConfig.cmake.in index 60cf762..202a8c3 100644 --- a/build/cmake/wxWidgetsConfig.cmake.in +++ b/build/cmake/wxWidgetsConfig.cmake.in @@ -2,6 +2,9 @@ include(CMakeFindDependencyMacro) find_dependency(NanoSVG CONFIG) +if("@wxUSE_LIBSDL@") + find_dependency(SDL2 CONFIG) +endif() cmake_policy(PUSH) # Set policies to prevent warnings ================================================ FILE: ports/wxwidgets/setup.h.in ================================================ #ifdef _DEBUG #include "../../debug/lib/@WX_SETUP_H_DBG_RELATIVE@/setup.h" #else #include "../../lib/@WX_SETUP_H_REL_RELATIVE@/setup.h" #endif ================================================ FILE: ports/wxwidgets/usage ================================================ The package wxwidgets provides CMake targets: find_package(wxWidgets CONFIG REQUIRED) target_link_libraries(main PRIVATE wx::core wx::base) ================================================ FILE: ports/wxwidgets/vcpkg-cmake-wrapper.cmake ================================================ cmake_policy(PUSH) cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0057 NEW) get_filename_component(_vcpkg_wx_root "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE) set(wxWidgets_ROOT_DIR "${_vcpkg_wx_root}" CACHE INTERNAL "") set(WX_ROOT_DIR "${_vcpkg_wx_root}" CACHE INTERNAL "") unset(_vcpkg_wx_root) if(WIN32) # Find all libs with "33" infix which is unknown to FindwxWidgets.cmake function(z_vcpkg_wxwidgets_find_base_library BASENAME) find_library(WX_${BASENAME}d wx${BASENAME}33ud NAMES wx${BASENAME}d PATHS "${wxWidgets_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(WX_${BASENAME} wx${BASENAME}33u NAMES wx${BASENAME} PATHS "${wxWidgets_ROOT_DIR}/lib" NO_DEFAULT_PATH REQUIRED) endfunction() function(z_vcpkg_wxwidgets_find_suffix_library BASENAME) foreach(lib IN LISTS ARGN) find_library(WX_${lib}d NAMES wx${BASENAME}33ud_${lib} PATHS "${wxWidgets_ROOT_DIR}/debug/lib" NO_DEFAULT_PATH) find_library(WX_${lib} NAMES wx${BASENAME}33u_${lib} PATHS "${wxWidgets_ROOT_DIR}/lib" NO_DEFAULT_PATH) endforeach() endfunction() z_vcpkg_wxwidgets_find_base_library(base) z_vcpkg_wxwidgets_find_suffix_library(base net odbc xml) z_vcpkg_wxwidgets_find_suffix_library(msw core adv aui html media xrc dbgrid gl qa richtext stc ribbon propgrid webview) if(WX_stc AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static") z_vcpkg_wxwidgets_find_base_library(scintilla) endif() # Force FindwxWidgets.cmake win32 mode for all windows targets built on windows set(_vcpkg_wxwidgets_backup_crosscompiling "${CMAKE_CROSSCOMPILING}") set(CMAKE_CROSSCOMPILING 0) set(wxWidgets_LIB_DIR "${wxWidgets_ROOT_DIR}/lib" CACHE INTERNAL "") else() # FindwxWidgets.cmake unix mode, single-config set(_vcpkg_wxconfig "") if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR "Debug" IN_LIST MAP_IMPORTED_CONFIG_${CMAKE_BUILD_TYPE}) # Debug set(wxWidgets_LIB_DIR "${wxWidgets_ROOT_DIR}/debug/lib" CACHE INTERNAL "") file(GLOB _vcpkg_wxconfig LIST_DIRECTORIES false "${wxWidgets_LIB_DIR}/wx/config/*") endif() if(NOT _vcpkg_wxconfig) # Release or fallback set(wxWidgets_LIB_DIR "${wxWidgets_ROOT_DIR}/lib" CACHE INTERNAL "") file(GLOB _vcpkg_wxconfig LIST_DIRECTORIES false "${wxWidgets_LIB_DIR}/wx/config/*") endif() set(wxWidgets_CONFIG_EXECUTABLE "${_vcpkg_wxconfig}" CACHE INTERNAL "") unset(_vcpkg_wxconfig) endif() set(WX_LIB_DIR "${wxWidgets_LIB_DIR}" CACHE INTERNAL "") # https://gitlab.kitware.com/cmake/cmake/-/issues/26718 # Instead of special-casing the `atomic` library, we skip the checks entirely. set(_wx_lib_found TRUE) _find_package(${ARGS}) unset(_wx_lib_found) if(DEFINED _vcpkg_wxwidgets_backup_crosscompiling) set(CMAKE_CROSSCOMPILING "${_vcpkg_wxwidgets_backup_crosscompiling}") unset(_vcpkg_wxwidgets_backup_crosscompiling) endif() if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT "wx::core" IN_LIST wxWidgets_LIBRARIES) find_package(NanoSVG CONFIG QUIET) list(APPEND wxWidgets_LIBRARIES NanoSVG::nanosvg NanoSVG::nanosvgrast ) endif() if(WIN32 AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static" AND NOT "wx::core" IN_LIST wxWidgets_LIBRARIES) find_package(EXPAT QUIET) find_package(JPEG QUIET) find_package(PNG QUIET) find_package(TIFF QUIET) find_package(ZLIB QUIET) list(APPEND wxWidgets_LIBRARIES ${EXPAT_LIBRARIES} ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ) endif() cmake_policy(POP) ================================================ FILE: ports/wxwidgets/vcpkg.json ================================================ { "name": "wxwidgets", "version": "3.3.1", "port-version": 1, "description": [ "Widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. ", "Set WXWIDGETS_USE_STL in a custom triplet to build with the wxUSE_STL build option.", "Set WXWIDGETS_USE_STD_CONTAINERS in a custom triplet to build with the wxUSE_STD_CONTAINERS build option." ], "homepage": "https://github.com/wxWidgets/wxWidgets", "license": "LGPL-2.0-or-later WITH WxWindows-exception-3.1", "supports": "!uwp & !xbox", "dependencies": [ { "name": "cairo", "default-features": false, "platform": "!windows & !osx & !ios" }, { "name": "curl", "default-features": false, "platform": "!windows & !osx" }, "expat", { "name": "gtk3", "platform": "!windows & !osx & !ios" }, { "name": "libiconv", "platform": "!windows" }, "libjpeg-turbo", "libpng", "libwebp", "nanosvg", "opengl", { "name": "pcre2", "default-features": false }, { "name": "tiff", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ], "default-features": [ "debug-support", "sound" ], "features": { "debug-support": { "description": "Enable wxWidgets debugging support hooks even for release builds (wxDEBUG_LEVEL 1)" }, "example": { "description": "Example source code and CMake project" }, "fonts": { "description": "Enable to use the font functionality of wxWidgets", "dependencies": [ { "name": "fontconfig", "platform": "!windows & !osx" }, { "name": "pango", "platform": "!windows & !osx" } ] }, "media": { "description": "Build wxMediaCtrl support", "dependencies": [ { "name": "gstreamer", "default-features": false, "platform": "!windows & !osx & !ios" } ] }, "secretstore": { "description": "Use wxSecretStore class" }, "sound": { "description": "Build wxSound support", "dependencies": [ { "name": "sdl2", "default-features": false, "platform": "!windows & !osx & !ios" } ] }, "webview": { "description": "The Edge backend uses Microsoft's Edge WebView2", "dependencies": [ { "name": "webview2", "platform": "windows" } ] } } } ================================================ FILE: ports/wyhash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wangyi-fudan/wyhash REF 408620b6d12b7d667b3dd6ae39b7929a39e8fa05 SHA512 c7778ea13edd097e5c6e29b3974f22b387abfa565b93c26cd0e37062fe57d233b75989d37853354a68aec7989568d15fd1be46d18f55549920ed6dbaf52937a5 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/wyhash.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/wyhash/vcpkg.json ================================================ { "name": "wyhash", "version-date": "2023-12-03", "description": "The FASTEST QUALITY hash function, random number generators (PRNG) and hash map.", "homepage": "https://github.com/wangyi-fudan/wyhash", "license": "Unlicense" } ================================================ FILE: ports/x-plane/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.21) project(x-plane LANGUAGES C CXX) if(WIN32 OR APPLE) add_library(unofficial::x-plane::xplm SHARED IMPORTED) if(WIN32) set_target_properties( unofficial::x-plane::xplm PROPERTIES IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/Libraries/Win/XPLM_64.lib") set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=1;-DAPL=0;-DLIN=0") else() set_target_properties( unofficial::x-plane::xplm PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/Libraries/Mac/XPLM.framework/XPLM") set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=0;-DAPL=1;-DLIN=0") endif() else() add_library(unofficial::x-plane::xplm INTERFACE IMPORTED) set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=0;-DAPL=0;-DLIN=1") endif() set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/CHeaders/XPLM") if(WIN32 OR APPLE) add_library(unofficial::x-plane::xpwidgets SHARED IMPORTED) if(WIN32) set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/Libraries/Win/XPWidgets_64.lib") else() set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/Libraries/Mac/XPWidgets.framework/XPWidgets") endif() else() add_library(unofficial::x-plane::xpwidgets INTERFACE IMPORTED) endif() set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES INTERFACE_LINK_LIBRARIES "unofficial::x-plane::xplm") set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/CHeaders/Widgets") add_library(xplm_cpp STATIC) target_sources( xplm_cpp PRIVATE CHeaders/Wrappers/XPCBroadcaster.cpp CHeaders/Wrappers/XPCDisplay.cpp CHeaders/Wrappers/XPCListener.cpp CHeaders/Wrappers/XPCProcessing.cpp CHeaders/Wrappers/XPCWidget.cpp CHeaders/Wrappers/XPCWidgetAttachments.cpp) target_include_directories( xplm_cpp INTERFACE $ $) target_link_libraries(xplm_cpp PUBLIC unofficial::x-plane::xplm unofficial::x-plane::xpwidgets) install( TARGETS xplm_cpp EXPORT xplm-targets ARCHIVE DESTINATION lib) file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CHeaders/XPLM/*.h") install(FILES ${HEADERS} DESTINATION "include") file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CHeaders/Widgets/*.h") install(FILES ${HEADERS} DESTINATION "include") file(GLOB HEADERS "${CMAKE_CURRENT_LIST_DIR}/CHeaders/Wrappers/*.h") install(FILES ${HEADERS} DESTINATION "include") include(CMakePackageConfigHelpers) configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-x-plane-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-x-plane-config.cmake" INSTALL_DESTINATION "share/unofficial-x-plane") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-x-plane-config.cmake" DESTINATION "share/unofficial-x-plane") install( EXPORT xplm-targets DESTINATION share/unofficial-x-plane FILE unofficial-x-plane-targets.cmake NAMESPACE unofficial::x-plane::) ================================================ FILE: ports/x-plane/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REPLACE "." "" XPSDK_VERSION "${VERSION}") vcpkg_download_distfile( XPLANE_SDK_ZIP URLS "https://developer.x-plane.com/wp-content/plugins/code-sample-generation/sdk_zip_files/XPSDK${XPSDK_VERSION}.zip" FILENAME "XPSDK${XPSDK_VERSION}.zip" SHA512 3ad66ce34b9e1e6dfba0c4547f3976b4a9862bdea0c498f43f3eedfb164d4e1b357e631b72b572b7646bffaa4ffe38698000a63dea1ae8f4c50c4037b8b6471a ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${XPLANE_SDK_ZIP}" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-x-plane-config.cmake.in" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-x-plane) if(VCPKG_TARGET_IS_WINDOWS) file(COPY "${SOURCE_PATH}/Libraries/Win/XPLM_64.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/Libraries/Win/XPLM_64.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") file(COPY "${SOURCE_PATH}/Libraries/Win/XPWidgets_64.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(COPY "${SOURCE_PATH}/Libraries/Win/XPWidgets_64.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/license.txt") configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") ================================================ FILE: ports/x-plane/unofficial-x-plane-config.cmake.in ================================================ @PACKAGE_INIT@ get_filename_component(ROOT "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(ROOT "${ROOT}" PATH) if(NOT TARGET unofficial::x-plane::xplm) if(WIN32 OR APPLE) add_library(unofficial::x-plane::xplm SHARED IMPORTED) if(WIN32) set_target_properties( unofficial::x-plane::xplm PROPERTIES IMPORTED_IMPLIB "${ROOT}/lib/x-plane/XPLM_64.lib") set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=1;-DAPL=0;-DLIN=0") else() set_target_properties( unofficial::x-plane::xplm PROPERTIES IMPORTED_LOCATION "${ROOT}/lib/x-plane/XPLM.framework/XPLM") set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=0;-DAPL=1;-DLIN=0") endif() else() add_library(unofficial::x-plane::xplm INTERFACE IMPORTED) set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_COMPILE_DEFINITIONS "-DIBM=0;-DAPL=0;-DLIN=1") endif() set_target_properties( unofficial::x-plane::xplm PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ROOT}/include") endif() if(NOT TARGET unofficial::x-plane::xpwidgets) if(WIN32 OR APPLE) add_library(unofficial::x-plane::xpwidgets SHARED IMPORTED) if(WIN32) set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES IMPORTED_IMPLIB "${ROOT}/lib/x-plane/XPWidgets_64.lib") else() set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES IMPORTED_LOCATION "${ROOT}/lib/x-plane/XPWidgets.framework/XPWidgets") endif() else() add_library(unofficial::x-plane::xpwidgets INTERFACE IMPORTED) endif() set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES INTERFACE_LINK_LIBRARIES "unofficial::x-plane::xplm") set_target_properties( unofficial::x-plane::xpwidgets PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ROOT}/include") endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-x-plane-targets.cmake") check_required_components(unofficial-x-plane) ================================================ FILE: ports/x-plane/usage ================================================ x-plane provides CMake targets: find_package(unofficial-x-plane CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::x-plane::xplm unofficial::x-plane::xpwidgets unofficial::x-plane::xplm_cpp) ================================================ FILE: ports/x-plane/vcpkg.json ================================================ { "name": "x-plane", "version": "4.1.1", "port-version": 1, "description": "The X-Plane Plugin SDK", "homepage": "https://developer.x-plane.com/sdk/", "license": null, "supports": "(windows & !uwp & x64) | (osx & (x64 | arm64)) | (linux & x64)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/x264/allow-clang-cl.patch ================================================ diff --git a/configure b/configure index 6f95e2314..e677e36f4 100644 --- a/configure +++ b/configure @@ -606,9 +606,9 @@ if [[ $host_os = mingw* || $host_os = msys* || $host_os = cygwin* ]]; then if cc_check '' -Qdiag-error:10006,10157 ; then CHECK_CFLAGS="$CHECK_CFLAGS -Qdiag-error:10006,10157" fi - elif [[ "$cc_base" = cl || "$cc_base" = cl[\ .]* ]]; then + elif [[ "$cc_base" = cl || "$cc_base" = cl[\ .]* || "$cc_base" = clang-cl || "$cc_base" = clang-cl[\ .]* ]]; then # Standard Microsoft Visual Studio compiler=CL compiler_style=MS CFLAGS="$CFLAGS -nologo -GS- -DHAVE_STRING_H -I\$(SRCPATH)/extras" cpp_check '' '' '_MSC_VER > 1800 || (_MSC_VER == 1800 && _MSC_FULL_VER >= 180030324)' || die "Microsoft Visual Studio support requires Visual Studio 2013 Update 2 or newer" ================================================ FILE: ports/x264/configure.patch ================================================ diff --git a/configure b/configure index e242e73c..e0d1df76 100755 --- a/configure +++ b/configure @@ -1,4 +1,7 @@ -#!/bin/bash +#!/usr/bin/env bash + +export CFLAGS="${CPPFLAGS} ${CFLAGS}" +test "${AS:-:}" = ":" && unset AS if test x"$1" = x"-h" -o x"$1" = x"--help" ; then cat <> config.mak - echo 'install: install-cli' >> config.mak + echo 'install:' >> config.mak + echo ' $(MAKE) install-cli' >> config.mak fi if [ "$shared" = "yes" ]; then ================================================ FILE: ports/x264/portfile.cmake ================================================ # The latest ref in branch stable set(ref 31e19f92f00c7003fa115047ce50978bc98c3a0d) # Note on x264 versioning: # The pc file exports "0.164." where is the number of commits. # The binary releases on https://artifacts.videolan.org/x264/ are named x264-r-. # With a git clone, this can be determined by running `versions.sh`. # With vcpkg_from_gitlab, we modify `versions.sh` accordingly. # For --editable mode, use configured patch instead of vcpkg_replace_string. string(REGEX MATCH "^......." short_ref "${ref}") string(REGEX MATCH "[0-9]+\$" revision "${VERSION}") configure_file("${CURRENT_PORT_DIR}/version.diff.in" "${CURRENT_BUILDTREES_DIR}/src/version-${VERSION}.diff" @ONLY) vcpkg_from_gitlab( GITLAB_URL https://code.videolan.org/ OUT_SOURCE_PATH SOURCE_PATH REPO videolan/x264 REF "${ref}" SHA512 707ff486677a1b5502d6d8faa588e7a03b0dee45491c5cba89341be4be23d3f2e48272c3b11d54cfc7be1b8bf4a3dfc3c3bb6d9643a6b5a2ed77539c85ecf294 HEAD_REF master PATCHES "${CURRENT_BUILDTREES_DIR}/src/version-${VERSION}.diff" uwp-cflags.patch parallel-install.patch allow-clang-cl.patch configure.patch ) function(add_cross_prefix) if(configure_env MATCHES "CC=([^\/]*-)gcc$") vcpkg_list(APPEND arg_OPTIONS "--cross-prefix=${CMAKE_MATCH_1}") endif() set(arg_OPTIONS "${arg_OPTIONS}" PARENT_SCOPE) endfunction() set(nasm_archs x86 x64) set(gaspp_archs arm arm64) if(NOT "asm" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS --disable-asm) elseif(NOT "$ENV{AS}" STREQUAL "") # Accept setting from triplet elseif(VCPKG_TARGET_ARCHITECTURE IN_LIST nasm_archs) vcpkg_find_acquire_program(NASM) vcpkg_insert_program_into_path("${NASM}") set(ENV{AS} "${NASM}") elseif(VCPKG_TARGET_ARCHITECTURE IN_LIST gaspp_archs AND VCPKG_TARGET_IS_WINDOWS AND VCPKG_HOST_IS_WINDOWS) vcpkg_find_acquire_program(GASPREPROCESSOR) list(FILTER GASPREPROCESSOR INCLUDE REGEX gas-preprocessor) file(INSTALL "${GASPREPROCESSOR}" DESTINATION "${SOURCE_PATH}/tools" RENAME "gas-preprocessor.pl") endif() vcpkg_list(SET OPTIONS_RELEASE) if("tool" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS_RELEASE --enable-cli) else() vcpkg_list(APPEND OPTIONS_RELEASE --disable-cli) endif() if("chroma-format-all" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS --chroma-format=all) endif() if(NOT "gpl" IN_LIST FEATURES) vcpkg_list(APPEND OPTIONS --disable-gpl) endif() if(VCPKG_TARGET_IS_UWP) list(APPEND OPTIONS --extra-cflags=-D_WIN32_WINNT=0x0A00) endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_CPPFLAGS # Build is not using CPP/CPPFLAGS DISABLE_MSVC_WRAPPERS LANGUAGES ASM C CXX # Requires NASM to compile DISABLE_MSVC_TRANSFORMATIONS # disable warnings about unknown -Xcompiler/-Xlinker flags PRE_CONFIGURE_CMAKE_COMMANDS add_cross_prefix OPTIONS ${OPTIONS} --enable-pic --disable-lavf --disable-swscale --disable-avs --disable-ffms --disable-gpac --disable-lsmash --disable-bashcompletion OPTIONS_RELEASE ${OPTIONS_RELEASE} --enable-strip "--bindir=\\\${prefix}/bin" OPTIONS_DEBUG --enable-debug --disable-cli "--bindir=\\\${prefix}/bin" ) vcpkg_make_install() if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES x264 AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/x264.pc" "-lx264" "-llibx264") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/x264.pc" "-lx264" "-llibx264") endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libx264.dll.lib" "${CURRENT_PACKAGES_DIR}/lib/libx264.lib") if (NOT VCPKG_BUILD_TYPE) file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libx264.dll.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/libx264.lib") endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/x264.h" "#ifdef X264_API_IMPORTS" "#if 1") elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/x264.h" "defined(U_STATIC_IMPLEMENTATION)" "1" IGNORE_UNCHANGED) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin" ) endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/x264/uwp-cflags.patch ================================================ diff --git a/configure b/configure index f7b14d9..2c92b2a 100644 --- a/configure +++ b/configure @@ -821,7 +821,6 @@ if [ $SYS = WINDOWS ]; then if cpp_check "winapifamily.h" "" "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" ; then [ $compiler = CL ] || die "WinRT requires MSVC" define HAVE_WINRT - CFLAGS="$CFLAGS -MD" LDFLAGS="$LDFLAGS -appcontainer" if ! cpp_check "" "" "defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0603" ; then die "_WIN32_WINNT must be defined to at least 0x0603 (Windows 8.1) for WinRT" ================================================ FILE: ports/x264/vcpkg.json ================================================ { "name": "x264", "version": "0.164.3108", "port-version": 2, "description": "x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format", "homepage": "https://www.videolan.org/developers/x264.html", "license": "GPL-2.0-or-later", "supports": "!xbox", "dependencies": [ { "name": "vcpkg-make", "host": true } ], "default-features": [ { "name": "asm", "platform": "!(arm32 & windows)" }, { "name": "gpl", "platform": "!(arm32 & windows)" } ], "features": { "asm": { "description": "Enable platform-specific assembly optimizations", "supports": "!(arm32 & windows)" }, "chroma-format-all": { "description": "Output all chroma formats" }, "gpl": { "description": "Allow use of GPL code, the resulting libs and binaries will be under GPL" }, "tool": { "description": "Build the command line tool", "supports": "!uwp" } } } ================================================ FILE: ports/x264/version.diff.in ================================================ diff --git a/version.sh b/version.sh index 178fc952..06728796 100755 --- a/version.sh +++ b/version.sh @@ -3,8 +3,8 @@ cd "$(dirname "$0")" >/dev/null && [ -f x264.h ] || exit 1 api="$(grep '#define X264_BUILD' < x264.h | sed 's/^.* \([1-9][0-9]*\).*$/\1/')" -ver="x" -version="" +ver="@revision@ @short_ref@" +version=" r${ver} vcpkg" if [ -d .git ] && command -v git >/dev/null 2>&1 ; then localver="$(($(git rev-list HEAD | wc -l)))" ================================================ FILE: ports/x265/compiler-target.diff ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index ab5ddfe..e99c4d8 100755 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -570,6 +570,9 @@ if((MSVC_IDE OR XCODE OR GCC) AND ENABLE_ASSEMBLY) set(SUFFIX o) endif() + if(CMAKE_CXX_COMPILER_TARGET) + list(PREPEND ARM_ARGS "--target=${CMAKE_CXX_COMPILER_TARGET}") + endif() if(ARM OR CROSS_COMPILE_ARM) # compile ARM arch asm files here enable_language(ASM) ================================================ FILE: ports/x265/disable-install-pdb.patch ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 6183a6d..eaa5c6f 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -842,7 +842,7 @@ if(SVTHEVC_FOUND) endif() install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include) -if((WIN32 AND ENABLE_CLI) OR (WIN32 AND ENABLE_SHARED)) +if(0) if(MSVC_IDE) if(ENABLE_CLI) install(FILES "${PROJECT_BINARY_DIR}/Debug/x265.pdb" DESTINATION ${BIN_INSTALL_DIR} CONFIGURATIONS Debug) ================================================ FILE: ports/x265/fix-cmake-4.patch ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 8a9ec44542..54f000c6d4 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,4 +1,5 @@ # vim: syntax=cmake +cmake_minimum_required (VERSION 3.10) if(NOT CMAKE_BUILD_TYPE) # default to Release build for GCC builds set(CMAKE_BUILD_TYPE Release CACHE STRING @@ -6,18 +7,9 @@ if(NOT CMAKE_BUILD_TYPE) FORCE) endif() message(STATUS "cmake version ${CMAKE_VERSION}") -if(POLICY CMP0025) - cmake_policy(SET CMP0025 OLD) # report Apple's Clang as just Clang -endif() -if(POLICY CMP0042) - cmake_policy(SET CMP0042 NEW) # MACOSX_RPATH -endif() -if(POLICY CMP0054) - cmake_policy(SET CMP0054 OLD) # Only interpret if() arguments as variables or keywords when unquoted -endif() project (x265) -cmake_minimum_required (VERSION 2.8.8) # OBJECT libraries require 2.8.8 + include(CheckIncludeFiles) include(CheckFunctionExists) include(CheckSymbolExists) @@ -171,7 +163,7 @@ if(APPLE) add_definitions(-DMACOS=1) endif() -if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") +if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") set(CLANG 1) endif() if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") ================================================ FILE: ports/x265/linkage.diff ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index d6f0e3e..11512ff 100755 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -582,9 +582,13 @@ endif() if(SVTHEVC_FOUND) target_link_libraries(x265-static ${SVT_HEVC_LIBRARY}) endif() +if(ENABLE_SHARED) + set_target_properties(x265-static PROPERTIES EXCLUDE_FROM_ALL 1) +else() install(TARGETS x265-static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +endif() if(ENABLE_HDR10_PLUS) install(TARGETS hdr10plus-static ================================================ FILE: ports/x265/neon.diff ================================================ diff --git a/source/cmake/FindNeon.cmake b/source/cmake/FindNeon.cmake index cb02180..6a939b8 100644 --- a/source/cmake/FindNeon.cmake +++ b/source/cmake/FindNeon.cmake @@ -16,6 +16,13 @@ else() OUTPUT_STRIP_TRAILING_WHITESPACE) endif() +if(CMAKE_ANDROID_ARCH_ABI STREQUAL "arm64-v8a") + set(neon_version 1) +elseif(CMAKE_ANDROID_ARCH_ABI STREQUAL "armeabi-v7a") + set(neon_version "${CMAKE_ANDROID_ARM_NEON}") +elseif(CMAKE_CROSSCOMPILING AND CMAKE_SIZEOF_VOID_P LESS "8") + set(neon_version 0) +endif() if(neon_version) set(CPU_HAS_NEON 1) endif() ================================================ FILE: ports/x265/pkgconfig.diff ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index eaa5c6f..8a9ec44 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -811,6 +811,9 @@ else() endif() if(NOT MSVC) set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265) + set(X265_LIB x265) +else() + set(X265_LIB x265-static) endif() if(EXTRA_LIB) target_link_libraries(x265-static ${EXTRA_LIB}) @@ -906,8 +909,10 @@ if(ENABLE_SHARED) endif(SVTHEVC_FOUND) if(MSVC) set_target_properties(x265-shared PROPERTIES OUTPUT_NAME libx265) + set(X265_LIB libx265) else() set_target_properties(x265-shared PROPERTIES OUTPUT_NAME x265) + set(X265_LIB x265) endif() if(UNIX) set_target_properties(x265-shared PROPERTIES VERSION ${X265_BUILD}) @@ -944,7 +949,11 @@ endif() if(X265_LATEST_TAG OR NOT GIT_FOUND) # convert lists of link libraries into -lstdc++ -lm etc.. + cmake_policy(SET CMP0057 NEW) foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS}) + if(LIB IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + endif() if(IS_ABSOLUTE ${LIB} AND EXISTS ${LIB}) list(APPEND PLIBLIST "${LIB}") else() diff --git a/source/x265.pc.in b/source/x265.pc.in index 0bf99e9..fe76d20 100644 --- a/source/x265.pc.in +++ b/source/x265.pc.in @@ -6,6 +6,6 @@ includedir=${prefix}/include Name: @CMAKE_PROJECT_NAME@ Description: H.265/HEVC video encoder Version: @X265_LATEST_TAG@ -Libs: -L${libdir} -lx265 +Libs: -L${libdir} -l@X265_LIB@ Libs.private: @PRIVATE_LIBS@ Cflags: -I${includedir} ================================================ FILE: ports/x265/portfile.cmake ================================================ vcpkg_from_bitbucket( OUT_SOURCE_PATH SOURCE_PATH REPO multicoreware/x265_git REF "${VERSION}" SHA512 4b7d71f22f0a7f12ff93f9a01e361df2b80532cd8dac01b5465e63b5d8182f1a05c0289ad95f3aa972c963aa6cd90cb3d594f8b9a96f556a006cf7e1bdd9edda HEAD_REF master PATCHES disable-install-pdb.patch version.patch linkage.diff pkgconfig.diff pthread.diff compiler-target.diff neon.diff fix-cmake-4.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES tool ENABLE_CLI ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_find_acquire_program(NASM) list(APPEND OPTIONS "-DNASM_EXECUTABLE=${NASM}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" AND NOT VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_OSX) # x265 doesn't create sufficient PIC for asm, breaking usage # in shared libs, e.g. the libheif gdk pixbuf plugin. # Users can override this in custom triplets. list(APPEND OPTIONS "-DENABLE_ASSEMBLY=OFF") endif() elseif(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-DENABLE_ASSEMBLY=OFF") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/source" OPTIONS ${OPTIONS} -DENABLE_SHARED=${ENABLE_SHARED} -DENABLE_PIC=ON -DENABLE_LIBNUMA=OFF "-DVERSION=${VERSION}" OPTIONS_DEBUG -DENABLE_CLI=OFF MAYBE_UNUSED_VARIABLES ENABLE_LIBNUMA ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() if("tool" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES x265 AUTO_CLEAN) endif() if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/x265.h" "#ifdef X265_API_IMPORTS" "#if 1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/x265/pthread.diff ================================================ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index a407271..f147d37 100755 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -85,6 +85,9 @@ else() endif() if(UNIX) + set(THREADS_PREFER_PTHREAD_FLAG 1) + find_package(Threads) + add_library(pthread ALIAS Threads::Threads) list(APPEND PLATFORM_LIBS pthread) find_library(LIBRT rt) if(LIBRT) @@ -705,6 +708,9 @@ if(X265_LATEST_TAG) list(REMOVE_ITEM PLIBLIST "-lc" "-lpthread" "-lmingwex" "-lmingwthrd" "-lmingw32" "-lmoldname" "-lmsvcrt" "-ladvapi32" "-lshell32" "-luser32" "-lkernel32") + if(UNIX) + list(APPEND PLIBLIST ${CMAKE_THREAD_LIBS_INIT}) + endif() string(REPLACE ";" " " PRIVATE_LIBS "${PLIBLIST}") else() set(PRIVATE_LIBS "") ================================================ FILE: ports/x265/vcpkg.json ================================================ { "name": "x265", "version": "4.1", "port-version": 1, "description": "x265 is a H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream.", "homepage": "https://bitbucket.org/multicoreware/x265_git/", "license": "GPL-2.0-or-later", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "features": { "tool": { "description": "Build the command line tool", "supports": "!uwp" } } } ================================================ FILE: ports/x265/version.patch ================================================ diff --git a/source/cmake/Version.cmake b/source/cmake/Version.cmake index 3bbf42f..e77f639 100644 --- a/source/cmake/Version.cmake +++ b/source/cmake/Version.cmake @@ -28,6 +28,11 @@ set(X265_VERSION "unknown") set(X265_LATEST_TAG "0.0") set(X265_TAG_DISTANCE "0") +if(VERSION) + set(X265_VERSION "${VERSION}-vcpkg") + set(X265_LATEST_TAG "${VERSION}") + return() +endif() #Find version control software to be used for live and extracted repositories from compressed tarballs if(CMAKE_VERSION VERSION_LESS "2.8.10") ================================================ FILE: ports/x86-simd-sort/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO numpy/x86-simd-sort REF "v${VERSION}" SHA512 de217d35a98da3b269454eaa8a2880b9aa36e4906670d0434799a45a8dcbe6d3fdf56cb16b683be510e34e0636b035e9de88a7b6e68b41e1eecceb5ecac4fe4a HEAD_REF master ) file(COPY "${SOURCE_PATH}/src/" DESTINATION "${CURRENT_PACKAGES_DIR}/include" PATTERN "README.md" EXCLUDE) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/x86-simd-sort/vcpkg.json ================================================ { "name": "x86-simd-sort", "version": "7.0", "description": "C++ template library for high performance SIMD based sorting algorithms", "homepage": "https://github.com/numpy/x86-simd-sort", "license": "BSD-3-Clause" } ================================================ FILE: ports/xapian/configure.diff ================================================ diff --git a/configure.ac b/configure.ac index ca5b7b2..b059402 100644 --- a/configure.ac +++ b/configure.ac @@ -870,6 +870,7 @@ case $enable_backend_chert$enable_backend_glass in dnl dnl Similarly for uuid support. + if false; then dnl Check for zlib.h. AC_CHECK_HEADERS([zlib.h], [], [ AC_MSG_ERROR([zlib.h not found - required for chert and glass (you may need to install the zlib1g-dev or zlib-devel package)]) @@ -879,6 +880,10 @@ case $enable_backend_chert$enable_backend_glass in AC_SEARCH_LIBS([zlibVersion], [z zlib zdll], [], [ AC_MSG_ERROR([zlibVersion() not found in -lz, -lzlib, or -lzdll - required for chert and glass (you may need to install the zlib1g-dev or zlib-devel package)]) ]) + fi + PKG_CHECK_MODULES([ZLIB], [zlib], [],[AC_MSG_ERROR([zlib library not found])]) + CFLAGS="$LIBS $ZLIB_CFLAGS" + LIBS="$ZLIB_LIBS $LIBS" dnl Find a way to generate UUIDs. ================================================ FILE: ports/xapian/msvc-no-debug.diff ================================================ diff --git a/include/xapian/version_h.cc b/include/xapian/version_h.cc index b36ae4d..c61e31a 100644 --- a/include/xapian/version_h.cc +++ b/include/xapian/version_h.cc @@ -75,7 +75,7 @@ const char * dummy[] = { "#endif", "#endif", "", -#elif defined _MSC_VER +#elif 0 // When building the library with MSVC, generate preprocessor code to check // that the same setting of _DEBUG is used for building applications as was // used for building the library. ================================================ FILE: ports/xapian/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://oligarchy.co.uk/xapian/${VERSION}/xapian-core-${VERSION}.tar.xz" FILENAME "xapian-core-${VERSION}.tar.xz" SHA512 60d66adbacbd59622d25e392060984bd1dc6c870f9031765f54cb335fb29f72f6d006d27af82a50c8da2cfbebd08dac4503a8afa8ad51bc4e6fa9cb367a59d29 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES configure.diff msvc-no-debug.diff ) set(OPTIONS "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") list(APPEND OPTIONS ac_cv_have_decl___popcnt=no ac_cv_have_decl___popcnt64=no ) endif() vcpkg_configure_make( SOURCE_PATH "${SOURCE_PATH}" AUTOCONFIG USE_WRAPPERS OPTIONS ${OPTIONS} ) vcpkg_install_make() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/xapian) if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/xapian-config" "\"${CURRENT_INSTALLED_DIR}\"" "`dirname $0`/../../..") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug/bin/xapian-config" "\"${CURRENT_INSTALLED_DIR}/debug\"" "`dirname $0`/../../../../debug") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/xapian/vcpkg.json ================================================ { "name": "xapian", "version": "1.4.22", "port-version": 3, "description": "Xapian is an Open Source Search Engine Library, released under the GPL v2+. It's written in C++, with bindings to allow use from Perl, Python 2, Python 3, PHP 5, PHP 7, Java, Tcl, C#, Ruby, Lua, Erlang, Node.js and R (so far!)", "homepage": "https://xapian.org/", "license": "GPL-2.0-or-later", "supports": "(!arm | arm64) & !uwp & !xbox", "dependencies": [ { "name": "libuuid", "platform": "!windows & !osx" }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/xaudio2redist/portfile.cmake ================================================ set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) vcpkg_download_distfile(ARCHIVE URLS "https://www.nuget.org/api/v2/package/Microsoft.XAudio2.Redist/${VERSION}" FILENAME "xaudio2redist.${VERSION}.zip" SHA512 2d2a605cda22d2c6e7918d52cb673cb0b4f4e7c2b4b6ee3e1f988431f5cb6f945a17988574e0faca9465fc4370b222e9e8e23215525f3d6b5c276b1e3dc4476e ) vcpkg_extract_source_archive( PACKAGE_PATH ARCHIVE ${ARCHIVE} NO_REMOVE_ONE_LEVEL ) if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64|arm64ec") set(XAUDIO_ARCH arm64) else() set(XAUDIO_ARCH ${VCPKG_TARGET_ARCHITECTURE}) endif() file(GLOB HEADER_FILES "${PACKAGE_PATH}/build/native/include/*.h") file(INSTALL ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") file(INSTALL "${PACKAGE_PATH}/build/native/release/lib/${XAUDIO_ARCH}/xaudio2_9redist.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") file(INSTALL "${PACKAGE_PATH}/build/native/release/lib/${XAUDIO_ARCH}/xapobaseredist_md.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") set(lib_suffix "_md") else() file(INSTALL "${PACKAGE_PATH}/build/native/release/lib/${XAUDIO_ARCH}/xapobaseredist.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") set(lib_suffix "") endif() file(INSTALL "${PACKAGE_PATH}/build/native/release/bin/${XAUDIO_ARCH}/xaudio2_9redist.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") if(NOT DEFINED VCPKG_BUILD_TYPE) file(INSTALL "${PACKAGE_PATH}/build/native/debug/lib/${XAUDIO_ARCH}/xaudio2_9redist.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") file(INSTALL "${PACKAGE_PATH}/build/native/debug/lib/${XAUDIO_ARCH}/xapobaseredist_md.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") else() file(INSTALL "${PACKAGE_PATH}/build/native/debug/lib/${XAUDIO_ARCH}/xapobaseredist.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() file(INSTALL "${PACKAGE_PATH}/build/native/debug/bin/${XAUDIO_ARCH}/xaudio2_9redist.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/xaudio2redist-config.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake" @ONLY) file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt") ================================================ FILE: ports/xaudio2redist/usage ================================================ The XAudio2 redistributable package provides CMake targets find_package(xaudio2redist CONFIG REQUIRED) target_link_libraries(main PRIVATE Microsoft::XAudio2Redist) ================================================ FILE: ports/xaudio2redist/vcpkg.json ================================================ { "name": "xaudio2redist", "version": "1.2.13", "description": "Redistributable version of XAudio 2.9 for Windows 7 SP1 or later", "homepage": "https://aka.ms/XAudio2Redist", "documentation": "https://aka.ms/XAudio2Redist", "license": null, "supports": "windows & !arm32 & !uwp & !xbox" } ================================================ FILE: ports/xaudio2redist/xaudio2redist-config.cmake.in ================================================ get_filename_component(_xaudio2_root "${CMAKE_CURRENT_LIST_DIR}" PATH) get_filename_component(_xaudio2_root "${_xaudio2_root}" PATH) set(_xaudio2_root_lib "${_xaudio2_root}/lib/xaudio2_9redist.lib") if (EXISTS "${_xaudio2_root_lib}") add_library(Microsoft::XAudio2Redist SHARED IMPORTED) set_target_properties(Microsoft::XAudio2Redist PROPERTIES IMPORTED_LOCATION_RELEASE "${_xaudio2_root}/bin/xaudio2_9redist.dll" IMPORTED_IMPLIB_RELEASE "${_xaudio2_root_lib}" IMPORTED_LOCATION_DEBUG "${_xaudio2_root}/debug/bin/xaudio2_9redist.dll" IMPORTED_IMPLIB_DEBUG "${_xaudio2_root}/debug/lib/xaudio2_9redist.lib" INTERFACE_INCLUDE_DIRECTORIES "${_xaudio2_root}/include/xaudio2redist" IMPORTED_CONFIGURATIONS "Debug;Release" IMPORTED_LINK_INTERFACE_LANGUAGES "C") add_library(Microsoft::XApoBase STATIC IMPORTED) set_target_properties(Microsoft::XApoBase PROPERTIES IMPORTED_LOCATION_RELEASE "${_xaudio2_root}/lib/xapobaseredist@lib_suffix@.lib" IMPORTED_LOCATION_DEBUG "${_xaudio2_root}/debug/lib/xapobaseredist@lib_suffix@.lib" INTERFACE_INCLUDE_DIRECTORIES "${_xaudio2_root}/include/xaudio2redist" IMPORTED_CONFIGURATIONS "Debug;Release") set(xaudio2redist_FOUND TRUE) else() set(xaudio2redist_FOUND FALSE) endif() unset(_xaudio2_root_lib) unset(_xaudio2_root) ================================================ FILE: ports/xbitmaps/portfile.cmake ================================================ vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO data/bitmaps REF "xbitmaps-${VERSION}" SHA512 e9a90555cf38c9c8800f58e1ec92bae3c44cedc491fb6184ad6da575e7fbaf3ee380a3fc2d33072d0ef5f313204588ff9c3668a58726b1251dbb2a4ad362d119 HEAD_REF master ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/pkgconfig/") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig/xbitmaps.pc" "${CURRENT_PACKAGES_DIR}/share/pkgconfig/xbitmaps.pc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(TOUCH "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage") ================================================ FILE: ports/xbitmaps/vcpkg.json ================================================ { "name": "xbitmaps", "version": "1.1.3", "port-version": 1, "description": "X BitMap (XBM) format bitmaps commonly used in X.Org applications", "homepage": "https://gitlab.freedesktop.org/xorg/data/bitmaps", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/xbyak/portfile.cmake ================================================ string(REGEX REPLACE "^([0-9]+)[.]([1-9])\$" "\\1.0\\2" VERSION_STR "${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO herumi/xbyak REF "v${VERSION_STR}" SHA512 443c5c0f14182e46b07af18ee5bd631a0557c37c6b92f6b19a3100dcc8f7b8baa100b7f142fc182cb8d74537bd69459f1065b39078a8a8d02f247133c9c46be4 HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/xbyak") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYRIGHT") ================================================ FILE: ports/xbyak/vcpkg.json ================================================ { "name": "xbyak", "version": "7.28", "description": "Xbyak is a JIT assembler for x86(IA-32)/x64(AMD64, x86-64).", "homepage": "https://github.com/herumi/xbyak", "license": "BSD-3-Clause", "supports": "!(arm | uwp)", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xcb/configure.patch ================================================ diff --git a/configure.ac b/configure.ac index 8a05bf1aa..1f57cc688 100644 --- a/configure.ac +++ b/configure.ac @@ -22,6 +22,7 @@ AC_USE_SYSTEM_EXTENSIONS # Initialize libtool LT_PREREQ([2.2]) LT_INIT([win32-dll]) +AC_LIBTOOL_WIN32_DLL # Require xorg-macros minimum of 1.18 - Initial version m4_ifndef([XORG_MACROS_VERSION], @@ -88,11 +88,11 @@ AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) AC_SUBST(XCBPROTO_XCBPYTHONDIR) AC_HEADER_STDC -AC_SEARCH_LIBS(getaddrinfo, socket) -AC_SEARCH_LIBS(connect, socket) +AC_SEARCH_LIBS(getaddrinfo, [socket Ws2_32]) +AC_SEARCH_LIBS(connect, [socket Ws2_32]) # Find support for sending a message from a socket -AC_SEARCH_LIBS(sendmsg, socket, [have_sendmsg="yes"], [have_sendmsg="no"]) +AC_SEARCH_LIBS(sendmsg, [socket Ws2_32], [have_sendmsg="yes"], [have_sendmsg="no"]) # XPG4v2/UNIX95 added msg_control - check to see if we need to define # _XOPEN_SOURCE to get it (such as on Solaris) @@ -140,6 +141,10 @@ mingw*) have_win32="yes" lt_enable_auto_import="-Wl,--enable-auto-import" ;; +msys*) + have_win32="yes" + lt_enable_auto_import="-Wl,--enable-auto-import" + ;; linux*) AC_DEFINE([HAVE_ABSTRACT_SOCKETS], 1, [Define if your platform supports abstract sockets]) ;; @@ -208,7 +213,7 @@ esac dnl Link with winsock for socket functions on MinGW case $host_os in - *mingw*) + *mingw*| *msys* ) AC_CHECK_LIB([ws2_32],[main]) ;; *) ================================================ FILE: ports/xcb/getpid_include.patch ================================================ diff --git a/src/xcb_auth.c b/src/xcb_auth.c index 8ebe9a437..9a1e459fc 100644 --- a/src/xcb_auth.c +++ b/src/xcb_auth.c @@ -46,6 +46,9 @@ #include #endif #include "xcb_windefs.h" +#ifdef _MSC_VER +#include +#endif #else #include #include ================================================ FILE: ports/xcb/makefile.patch ================================================ diff --git a/src/Makefile.am b/src/Makefile.am index 17b64a80e..f45d9d0fe 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -260,7 +260,7 @@ if XCB_SERVERSIDE_SUPPORT C_CLIENT_PY_EXTRA_ARGS += --server-side endif -$(EXTSOURCES): c_client.py $(XCBPROTO_XCBINCLUDEDIR)/$(@:.c=.xml) +$(EXTSOURCES): c_client.py /$(@:.c=.xml) $(AM_V_GEN)$(PYTHON) $(srcdir)/c_client.py -c "$(PACKAGE_STRING)" -l "$(XORG_MAN_PAGE)" \ -s "$(LIB_MAN_SUFFIX)" -p $(XCBPROTO_XCBPYTHONDIR) \ $(C_CLIENT_PY_EXTRA_ARGS) \ ================================================ FILE: ports/xcb/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb REF ddafdba11f6919e6fcf977c09c78b06f94de47aa #v1.14 + some patches SHA512 d8382b04f2b00671cded9e22d6066164511ee4c08e2cf5de4ec28d09e41228e30d3ba7d0e6b5141abf4e4bc777aa662fe9d1d04f3e1e26e0b323549e845c8072 HEAD_REF master PATCHES makefile.patch # without the patch target xproto.c is missing target XCBPROTO_XCBINCLUDEDIR configure.patch use_xwindows_includes.patch # use the X11 include wrappers for windows headers getpid_include.patch # add include for getpid on windows win-fixes.patch # avoid: 'close' undefined; assuming extern returning int ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") if(VCPKG_TARGET_IS_WINDOWS) set(OPTIONS --disable-dependency-tracking) endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) file(TO_NATIVE_PATH "${PYTHON3_DIR}" PYTHON3_DIR_NATIVE) vcpkg_add_to_path("${PYTHON3_DIR}") if(NOT XLSTPROC) find_program(XLSTPROC NAMES "xsltproc${VCPKG_HOST_EXECUTABLE_SUFFIX}" PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/libxslt" PATH_SUFFIXES "bin") endif() if(NOT XLSTPROC) message(FATAL_ERROR "${PORT} requires xlstproc for the host system. Please install libxslt within vcpkg or your system package manager!") endif() get_filename_component(XLSTPROC_DIR "${XLSTPROC}" DIRECTORY) file(TO_NATIVE_PATH "${XLSTPROC_DIR}" XLSTPROC_DIR_NATIVE) vcpkg_add_to_path("${XLSTPROC_DIR}") set(ENV{XLSTPROC} "${XLSTPROC}") if(DEFINED ENV{PYTHONPATH}) set(ENV{PYTHONPATH} "${CURRENT_INSTALLED_DIR}/tools/python3/site-packages/${VCPKG_HOST_PATH_SEPARATOR}$ENV{PYTHONPATH}") else() set(ENV{PYTHONPATH} "${CURRENT_INSTALLED_DIR}/tools/python3/site-packages/") endif() vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ${OPTIONS} ) vcpkg_make_install() set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xcb.pc") if(EXISTS "${pcfile}") vcpkg_replace_string("${pcfile}" "Requires: " "Requires: xau xdmcp " IGNORE_UNCHANGED) endif() set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xcb.pc") if(EXISTS "${pcfile}") vcpkg_replace_string("${pcfile}" "Requires: " "Requires: xau xdmcp " IGNORE_UNCHANGED) endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND NOT VCPKG_TARGET_IS_MINGW) set(extensions bigreq composite damage dpms dri2 dri3 ge glx present randr record render res screensaver shape shm sync xc_misc xevie xf86dri xfixes xinerama xinput xkb xprint xtest xv xvmc) foreach(ext IN LISTS extensions) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/xcb/${ext}.h" "extern xcb_extension_t" "__declspec(dllimport) extern xcb_extension_t") endforeach() endif() endif() ================================================ FILE: ports/xcb/use_xwindows_includes.patch ================================================ diff --git a/src/xcb_windefs.h b/src/xcb_windefs.h index df6026da3..7591c61e7 100644 --- a/src/xcb_windefs.h +++ b/src/xcb_windefs.h @@ -31,10 +31,13 @@ #define WINVER 0x0501 /* required for getaddrinfo/freeaddrinfo defined only for WinXP and above */ #endif -#include +#include +#include +#include +typedef unsigned char BYTE; -#include -#include +#define STDERR_FILENO _fileno( stderr ) + struct iovec { void *iov_base; /* Pointer to data. */ int iov_len; /* Length of data. */ ================================================ FILE: ports/xcb/vcpkg.json ================================================ { "name": "xcb", "version": "1.14", "port-version": 4, "description": "C interface to the X Window System protocol, which replaces the traditional Xlib interface.", "homepage": "https://xcb.freedesktop.org/", "license": "X11-distribute-modifications-variant", "dependencies": [ "bzip2", "libxau", "libxdmcp", { "name": "libxslt", "host": true, "default-features": false, "features": [ "tools" ] }, "pthread", "pthread-stubs", { "name": "vcpkg-make", "host": true }, "xcb-proto", "xcb-util-m4", "xorg-macros", "xproto" ] } ================================================ FILE: ports/xcb/win-fixes.patch ================================================ diff --git a/src/xcb_util.c b/src/xcb_util.c index 0296ce0dd..cce54aa50 100644 --- a/src/xcb_util.c +++ b/src/xcb_util.c @@ -389,7 +389,11 @@ static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short fd = _xcb_socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); if (_xcb_do_connect(fd, addr->ai_addr, addr->ai_addrlen) >= 0) break; +#ifdef _WIN32 + closesocket(fd); +#else close(fd); +#endif fd = -1; } freeaddrinfo(results); @@ -454,7 +458,11 @@ static int _xcb_open_unix(char *protocol, const char *file) setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &val, sizeof(int)); } if(connect(fd, (struct sockaddr *) &addr, sizeof(addr)) == -1) { +#ifdef _WIN32 + closesocket(fd); +#else close(fd); +#endif return -1; } return fd; @@ -481,7 +489,11 @@ static int _xcb_open_abstract(char *protocol, const char *file, size_t filelen) if (fd == -1) return -1; if (connect(fd, (struct sockaddr *) &addr, namelen) == -1) { +#ifdef _WIN32 + closesocket(fd); +#else close(fd); +#endif return -1; } return fd; ================================================ FILE: ports/xcb-image/add_return_value.patch ================================================ diff --git a/image/xcb_bitops.h b/image/xcb_bitops.h index a6872a1f3..bf6fdc179 100644 --- a/image/xcb_bitops.h +++ b/image/xcb_bitops.h @@ -207,6 +207,8 @@ xcb_host_byte_order(void) { return XCB_IMAGE_ORDER_LSB_FIRST; } assert(0); + exit(EXIT_FAILURE); + return -1; } #endif /* __XCB_BITOPS_H__ */ ================================================ FILE: ports/xcb-image/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-image REF 525ce59fe2329d4b23fc0c52ed9dd92daac8ac2a #v 0.4.1 SHA512 e91471c45983bb3a56fb96a9ab627a5b65fcbc21424f62bed10dba283c97fdd6475d4f380d268a30a99b6544bc804f8263e7b945a4c4d22c79535e3c3b1e10db HEAD_REF master PATCHES add_return_value.patch ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/xcb-image/vcpkg.json ================================================ { "name": "xcb-image", "version": "0.4.1", "port-version": 1, "description": "XCB port of Xlib's XImage and XShmImage functions.", "homepage": "https://xcb.freedesktop.org/", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xcb", "xcb-util" ] } ================================================ FILE: ports/xcb-keysyms/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-keysyms REF 85e093f14b0ade2956e0a5d1c37cfde06d8b1ba6 #v 0.4.1 SHA512 cee1224ba673c637d20387d22d445be92970dd1b169247550befe64908e1b7f8cc4311018b7e7854e46ccaa62b8c6258293dcb144a94e320bee5a1e060b194f1 HEAD_REF master ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/xcb-keysyms/vcpkg.json ================================================ { "name": "xcb-keysyms", "version": "0.4.1", "port-version": 1, "description": "Standard X key constants and conversion to/from keycodes", "homepage": "https://xcb.freedesktop.org/", "license": null, "dependencies": [ "bzip2", { "name": "vcpkg-make", "host": true }, "xcb", "xorg-macros", "xproto" ] } ================================================ FILE: ports/xcb-proto/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() find_program(XMLLINT_PATH NAMES xmllint PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/libxml2") if(NOT XMLLINT_PATH) message(FATAL_ERROR "${PORT} requires xmllint which was not found!") endif() string(REGEX REPLACE "/[^/]+$" "" XMLLINT_DIR "${XMLLINT_PATH}") file(TO_NATIVE_PATH "${XMLLINT_DIR}" XMLLINT_DIR_NATIVE) message(STATUS "Using xmlling at: ${XMLLINT_PATH}") vcpkg_add_to_path("${XMLLINT_DIR_NATIVE}") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) file(TO_NATIVE_PATH "${PYTHON3_DIR}" PYTHON3_DIR_NATIVE) vcpkg_add_to_path("${PYTHON3_DIR}") set(ENV{PYTHON} "${PYTHON3}") vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO proto/xcbproto REF 70ca65fa35c3760661b090bc4b2601daa7a099b8 #v1.14.1 + patches SHA512 9e08e1d2ab1fe7a8d3985568918a858ddfb31b8016ccac8ea2447631e7cede3bcc7b1ed86491d497ab871674c9b55d94fab25ee13ff6de9a44590b91d9166fda HEAD_REF master ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF OPTIONS ac_cv_path_PYTHON='${PYTHON3}' am_cv_python_pyexecdir=\\\${prefix}/${PYTHON3_SITE} am_cv_python_pythondir=\\\${prefix}/${PYTHON3_SITE} ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/xcb-proto/vcpkg.json ================================================ { "name": "xcb-proto", "version": "1.14.1", "port-version": 3, "description": "XML-XCB protocol descriptions used by libxcb for the X11 protocol & extensions", "homepage": "https://xcb.freedesktop.org/", "license": "X11-distribute-modifications-variant", "dependencies": [ "bzip2", { "name": "libxml2", "host": true, "features": [ "tools" ] }, { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/xcb-render-util/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-render-util REF 5293d8b6165f23b9f7a8bcc903da0e4d7a75984c #v 0.3.10 SHA512 ecd1876b62c1345ce3c06ac525f1af4f59dcce3c8d76003c59dd64c80f7787d6d2754c481e585507d6bcaf443026a7aa22ab9eac28b5153eff78d216e53eb29f HEAD_REF master # branch name PATCHES pthread.patch # required since this port directly depends on pthread functions. So it has to directly link it! ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/xcb-render-util/pthread.patch ================================================ diff --git a/configure.ac b/configure.ac index 803abe77b..7d694e401 100644 --- a/configure.ac +++ b/configure.ac @@ -11,6 +11,7 @@ AM_MAINTAINER_MODE XCB_UTIL_COMMON([1.4], [1.6]) PKG_CHECK_MODULES(XCB_RENDER, xcb-render) +PKG_CHECK_MODULES(PTHREAD_STUBS, pthread-stubs) AC_CONFIG_FILES([Makefile renderutil/Makefile diff --git a/renderutil/Makefile.am b/renderutil/Makefile.am index 3a5179884..d403aa34a 100644 --- a/renderutil/Makefile.am +++ b/renderutil/Makefile.am @@ -4,9 +4,9 @@ lib_LTLIBRARIES = libxcb-render-util.la xcbinclude_HEADERS = xcb_renderutil.h AM_CFLAGS = $(BASE_CFLAGS) -AM_CPPFLAGS = $(XCB_CFLAGS) $(XCB_RENDER_CFLAGS) +AM_CPPFLAGS = $(XCB_CFLAGS) $(XCB_RENDER_CFLAGS) ${PTHREAD_STUBS_CFLAGS} libxcb_render_util_la_SOURCES = cache.c util.c glyph.c -libxcb_render_util_la_LIBADD = $(XCB_LIBS) $(XCB_RENDER_LIBS) +libxcb_render_util_la_LIBADD = $(XCB_LIBS) $(XCB_RENDER_LIBS) ${PTHREAD_STUBS_LIBS} libxcb_render_util_la_LDFLAGS = -no-undefined pkgconfig_DATA = xcb-renderutil.pc ================================================ FILE: ports/xcb-render-util/vcpkg.json ================================================ { "name": "xcb-render-util", "version": "0.3.10", "port-version": 1, "description": "XCB convenience functions for the Render extension.", "homepage": "https://xcb.freedesktop.org/", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xcb" ] } ================================================ FILE: ports/xcb-util/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-util REF bffd8df1725c0fae9105a097e75b466e2f49d7bd #v0.4.1 SHA512 59ab4e34b44d720484b0d949bf26bac8ce56bf53f82d090b9229cda2f9c761cbad279774ab644a7a77b861674cdb173b7b597ae2b5860fbc9dfde8f5db3ab30e HEAD_REF master PATCHES ssize.patch ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") endif() ================================================ FILE: ports/xcb-util/ssize.patch ================================================ diff --git a/src/event.c b/src/event.c index 88058c4e7..3bc0d635f 100644 --- a/src/event.c +++ b/src/event.c @@ -38,6 +38,10 @@ #include +#if !defined ssize_t && defined(_WIN32) + #define ssize_t ptrdiff_t +#endif + #define ssizeof(foo) (ssize_t)sizeof(foo) #define countof(foo) (ssizeof(foo) / ssizeof(foo[0])) ================================================ FILE: ports/xcb-util/vcpkg.json ================================================ { "name": "xcb-util", "version": "0.4.1", "port-version": 2, "description": "C interface to the X Window System protocol, which replaces the traditional Xlib interface.", "homepage": "https://xcb.freedesktop.org/", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xcb", "xcb-util-m4", "xorg-macros" ] } ================================================ FILE: ports/xcb-util-errors/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-errors REF 517dd82c079de762a7426f20166a44f11e8d38c5 #1.0.1 SHA512 391f6bc9452bf4d6a3f1fa69232cdbef43f9fcd339b8d1965132a3b227ed7ebcbaad553fe64d42bc525811caedf3ff9d5bec108f6ac2efd5a014f75fb35cbf85 HEAD_REF master ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF COPY_SOURCE ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/xcb-util-errors/vcpkg.json ================================================ { "name": "xcb-util-errors", "version": "1.0.1", "port-version": 2, "description": "XCB utility library that gives human readable names to error, event, & request codes.", "homepage": "https://xcb.freedesktop.org/", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xcb", "xcb-util" ] } ================================================ FILE: ports/xcb-util-m4/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "util/xcb-util-m4" REF c617eee22ae5c285e79e81ec39ce96862fd3262f SHA512 d2d977574a106ca59207988e3e4ec12ecbcf30852df46456f7ec5284983e49f31ee85025f404d863f8e3d766f193e6a79508f26a3dcd33173d7bbefccdb279fa HEAD_REF master ) file(GLOB_RECURSE M4_FILES "${SOURCE_PATH}/*.m4") file(INSTALL ${M4_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/xorg/aclocal") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(TOUCH "${CURRENT_PACKAGES_DIR}/share/xcb-util-m4/copyright") ================================================ FILE: ports/xcb-util-m4/vcpkg.json ================================================ { "name": "xcb-util-m4", "version-date": "2022-07-01", "description": "GNU autoconf macros shared across XCB projects", "homepage": "https://gitlab.freedesktop.org/xorg/util/xcb-util-m4", "license": null } ================================================ FILE: ports/xcb-util-wm/build.patch ================================================ diff --git a/ewmh/ewmh.c.m4 b/ewmh/ewmh.c.m4 index b986105f6..a0ce37c2a 100644 --- a/ewmh/ewmh.c.m4 +++ b/ewmh/ewmh.c.m4 @@ -45,7 +45,7 @@ #include -#define ssizeof(foo) (ssize_t)sizeof(foo) +#define ssizeof(foo) (ptrdiff_t)sizeof(foo) #define countof(foo) (ssizeof(foo) / ssizeof(foo[0])) /** @@ -1119,12 +1119,13 @@ xcb_ewmh_append_wm_icon_checked(xcb_ewmh_connection_t *ewmh, uint32_t img_len, uint32_t *img) { const uint32_t data_len = img_len + 2; - uint32_t data[data_len]; + uint32_t *data = (uint32_t*)malloc(data_len*sizeof(uint32_t)); - set_wm_icon_data(data, width, height, img_len, img); - - return xcb_ewmh_set_wm_icon_checked(ewmh, XCB_PROP_MODE_APPEND, window, - data_len, data); + set_wm_icon_data(data, width, height, img_len, img); + const xcb_void_cookie_t res = xcb_ewmh_set_wm_icon_checked(ewmh, XCB_PROP_MODE_APPEND, window, + data_len, data); + free(data); + return res; } xcb_void_cookie_t @@ -1134,12 +1135,13 @@ xcb_ewmh_append_wm_icon(xcb_ewmh_connection_t *ewmh, uint32_t img_len, uint32_t *img) { const uint32_t data_len = img_len + 2; - uint32_t data[data_len]; - - set_wm_icon_data(data, width, height, img_len, img); + uint32_t *data = (uint32_t*)malloc(data_len*sizeof(uint32_t)); - return xcb_ewmh_set_wm_icon(ewmh, XCB_PROP_MODE_APPEND, window, - data_len, data); + set_wm_icon_data(data, width, height, img_len, img); + const xcb_void_cookie_t res = xcb_ewmh_set_wm_icon(ewmh, XCB_PROP_MODE_APPEND, window, + data_len, data); + free(data); + return res; } DO_GET_PROPERTY(wm_icon, _NET_WM_ICON, XCB_ATOM_CARDINAL, UINT_MAX) ================================================ FILE: ports/xcb-util-wm/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO lib/libxcb-wm REF 0c6681e465c9cc7b1fbb60778ba1eaa61ab01a14 #v 0.4.2 SHA512 c8be48000ad2dbe5bd430241745edb16280c2d7e602872ed8e14e6245e64391cbf8f234a4d83aad65c96ec58c3b312f2fe7f0bf01cb82f46b3e50f2358b94741 HEAD_REF master PATCHES build.patch ) file(TOUCH "${SOURCE_PATH}/m4/dummy") set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH "${SOURCE_PATH}" AUTORECONF ) vcpkg_make_install() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) endif() ================================================ FILE: ports/xcb-util-wm/vcpkg.json ================================================ { "name": "xcb-util-wm", "version": "0.4.2", "port-version": 2, "description": "XCB client and window-manager helpers for ICCCM & EWMH.", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/", "license": null, "dependencies": [ "bzip2", { "name": "vcpkg-make", "host": true }, "xcb", "xorg-macros", "xproto" ] } ================================================ FILE: ports/xdigest/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO rinrab/xdigest REF "${VERSION}" SHA512 2a98b29ceaf1d17e9251c1486d03a2d3db133a29fede730ebdf1cb84987aa50781e56ce1db2d795f6dff84b755720b91aa866da662699d34d8a9d140adc8d04e HEAD_REF trunk ) if (VCPKG_TARGET_IS_WINDOWS) if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") vcpkg_find_acquire_program(NASM) list(APPEND OPTIONS "-DCMAKE_ASM_NASM_COMPILER=${NASM}") set(USE_ASM ON) else() set(USE_ASM OFF) endif() elseif (VCPKG_TARGET_IS_LINUX) if (VCPKG_TARGET_ARCHITECTURE MATCHES "arm64" OR VCPKG_TARGET_ARCHITECTURE MATCHES "arm" OR VCPKG_TARGET_ARCHITECTURE MATCHES "x86") set(USE_ASM ON) else() set(USE_ASM OFF) endif() elseif (VCPKG_TARGET_IS_OSX) set(USE_ASM ON) else() set(USE_ASM OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DENABLE_TESTS=OFF -DUSE_ASM=${USE_ASM} ${OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/xdigest") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xdigest/vcpkg.json ================================================ { "name": "xdigest", "version": "0.4.0", "description": "Extremely fast digest algorithms packaged into a lightweight library.", "homepage": "https://github.com/rinrab/xdigest", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xerces-c/dependencies.patch ================================================ diff --git a/cmake/XercesNetAccessorSelection.cmake b/cmake/XercesNetAccessorSelection.cmake index 7a63f1f..22ea65b 100644 --- a/cmake/XercesNetAccessorSelection.cmake +++ b/cmake/XercesNetAccessorSelection.cmake @@ -23,7 +23,7 @@ option(network "Network support" ON) if(network) find_library(SOCKET_LIBRARY socket) - find_library(NSL_LIBRARY nsl) + set(NSL_LIBRARY "" CACHE INTERNAL "Not used") # netaccessors in order of preference diff --git a/cmake/XercesTranscoderSelection.cmake b/cmake/XercesTranscoderSelection.cmake index 4ff5b16..48e274c 100644 --- a/cmake/XercesTranscoderSelection.cmake +++ b/cmake/XercesTranscoderSelection.cmake @@ -25,6 +25,7 @@ if(ICU_FOUND) list(APPEND transcoders icu) + set(TRANSCODER_REQUIRES "icu-uc") endif() # MacOS @@ -41,6 +42,20 @@ endif() # GNU iconv +if(NOT transcoder AND NOT transcoders AND NOT WIN32) + find_package(Iconv) + set(FIND_DEPENDENCY_ICONV "${Iconv_FOUND}") + if(Iconv_FOUND AND NOT Iconv_IS_BUILT_IN) + list(APPEND libxerces_c_DEPS Iconv::Iconv) + set(TRANSCODER_LIBS "-liconv -lcharset") + list(APPEND CMAKE_REQUIRED_LIBRARIES Iconv::Iconv) + include(CheckSymbolExists) + check_symbol_exists(iconv_open "iconv.h" HAVE_ICONV_OPEN) + check_symbol_exists(iconv_close "iconv.h" HAVE_ICONV_CLOSE) + check_symbol_exists(iconv "iconv.h" HAVE_ICONV) + endif() +endif() + check_include_file_cxx(iconv.h HAVE_ICONV_H) check_include_file_cxx(wchar.h HAVE_WCHAR_H) check_include_file_cxx(string.h HAVE_STRING_H) diff --git a/src/XercesCConfig.cmake.in b/src/XercesCConfig.cmake.in index aa8fc2e..754c425 100644 --- a/src/XercesCConfig.cmake.in +++ b/src/XercesCConfig.cmake.in @@ -1,5 +1,14 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(Threads) +if("@CMAKE_REQUIRE_FIND_PACKAGE_ICU@") + find_dependency(ICU COMPONENTS uc data) +endif() +if("@FIND_DEPENDENCY_ICONV@") + find_dependency(Iconv) +endif() + include(${CMAKE_CURRENT_LIST_DIR}/XercesCConfigInternal.cmake) add_library(XercesC::XercesC INTERFACE IMPORTED) diff --git a/xerces-c.pc.in b/xerces-c.pc.in index 16b18c7..077296b 100644 --- a/xerces-c.pc.in +++ b/xerces-c.pc.in @@ -7,5 +7,6 @@ Name: Xerces-C++ Description: Validating XML parser library for C++ Version: @VERSION@ Libs: -L${libdir} -lxerces-c -Libs.private: @CURL_LIBS@ +Libs.private: @CURL_LIBS@ @TRANSCODER_LIBS@ +Requires.private: @TRANSCODER_REQUIRES@ Cflags: -I${includedir} ================================================ FILE: ports/xerces-c/disable-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4254f89..aa08565 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,10 +175,16 @@ install( COMPONENT "development") # Process subdirectories +if(NOT DISABLE_DOC) add_subdirectory(doc) +endif() add_subdirectory(src) +if(NOT DISABLE_TESTS) add_subdirectory(tests) +endif() +if(NOT DISABLE_SAMPLES) add_subdirectory(samples) +endif() # Display configuration summary message(STATUS "") ================================================ FILE: ports/xerces-c/portfile.cmake ================================================ vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_download_distfile(ARCHIVE URLS "https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-${VERSION}.tar.gz" FILENAME "xerces-c-${VERSION}.tar.gz" SHA512 b93110d2ac2f2198b3afb8854a1999376ac687c2be1e6c1b75c7d848c946c81c78f735f71eb2f824e11a493a58c67b7855c74b422a393d3ecc7c2bda103e5b27 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES dependencies.patch disable-tests.patch remove-dll-export-macro.patch ) file(REMOVE "${SOURCE_PATH}/cmake/FindICU.cmake") vcpkg_check_features( OUT_FEATURE_OPTIONS options FEATURES icu CMAKE_REQUIRE_FIND_PACKAGE_ICU network network INVERTED_FEATURES icu CMAKE_DISABLE_FIND_PACKAGE_ICU ) if("icu" IN_LIST FEATURES) vcpkg_list(APPEND options -Dtranscoder=icu) elseif(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND options -Dtranscoder=windows) elseif(VCPKG_TARGET_IS_OSX) vcpkg_list(APPEND options -Dtranscoder=macosunicodeconverter) elseif(VCPKG_HOST_IS_OSX) # Because of a bug in the transcoder selection script, the option # "macosunicodeconverter" is always selected when building on macOS, # regardless of the target platform. This breaks cross-compiling. # As a workaround we force "iconv", which should at least work for iOS. # Upstream fix: https://github.com/apache/xerces-c/pull/52 vcpkg_list(APPEND options -Dtranscoder=iconv) else() # xercesc chooses gnuiconv or iconv (cmake/XercesTranscoderSelection.cmake) endif() if("xmlch-wchar" IN_LIST FEATURES) vcpkg_list(APPEND options -Dxmlch-type=wchar_t) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DDISABLE_TESTS=ON -DDISABLE_DOC=ON -DDISABLE_SAMPLES=ON -DCMAKE_DISABLE_FIND_PACKAGE_CURL=ON ${options} MAYBE_UNUSED_VARIABLES CMAKE_DISABLE_FIND_PACKAGE_CURL ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_cmake_config_fixup(CONFIG_PATH cmake PACKAGE_NAME xercesc) else() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/XercesC PACKAGE_NAME xercesc) endif() configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/xercesc/vcpkg-cmake-wrapper.cmake" @ONLY) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_fixup_pkgconfig() if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xerces-c.pc" "-lxerces-c" "-lxerces-c_3") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xerces-c.pc" "-lxerces-c" "-lxerces-c_3D") endif() endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/xerces-c/remove-dll-export-macro.patch ================================================ diff --git a/src/xercesc/util/XercesDefs.hpp b/src/xercesc/util/XercesDefs.hpp index 8071260..cd6bd68 100644 --- a/src/xercesc/util/XercesDefs.hpp +++ b/src/xercesc/util/XercesDefs.hpp @@ -133,7 +133,7 @@ typedef XMLUInt32 UCS4Ch; // The DLL_EXPORT flag should be defined on the command line during the build of a DLL // configure conspires to make this happen. -#if defined(DLL_EXPORT) +#if defined(XERCES_DLL_EXPORT) #if defined(XERCES_BUILDING_LIBRARY) #define XMLUTIL_EXPORT XERCES_PLATFORM_EXPORT #define XMLPARSER_EXPORT XERCES_PLATFORM_EXPORT diff --git a/src/xercesc/util/Xerces_autoconf_config.hpp.cmake.in b/src/xercesc/util/Xerces_autoconf_config.hpp.cmake.in index e849e08..69fe3bf 100644 --- a/src/xercesc/util/Xerces_autoconf_config.hpp.cmake.in +++ b/src/xercesc/util/Xerces_autoconf_config.hpp.cmake.in @@ -85,9 +85,6 @@ #define XERCES_PLATFORM_EXPORT @XERCES_PLATFORM_EXPORT@ #define XERCES_PLATFORM_IMPORT @XERCES_PLATFORM_IMPORT@ #define XERCES_TEMPLATE_EXTERN @XERCES_TEMPLATE_EXTERN@ -#ifdef XERCES_DLL_EXPORT -# define DLL_EXPORT -#endif // --------------------------------------------------------------------------- // Include standard headers, if available, that we may rely on below. ================================================ FILE: ports/xerces-c/usage ================================================ The package xerces-c is compatible with built-in CMake targets: find_package(XercesC REQUIRED) target_link_libraries(main PRIVATE XercesC::XercesC) ================================================ FILE: ports/xerces-c/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if (APPLE) if (TARGET XercesC::XercesC) set_property(TARGET XercesC::XercesC APPEND PROPERTY INTERFACE_LINK_LIBRARIES "-framework CoreServices" "-framework CoreFoundation") list(APPEND XercesC_LIBRARIES "-framework CoreServices" "-framework CoreFoundation") endif() endif() ================================================ FILE: ports/xerces-c/vcpkg.json ================================================ { "name": "xerces-c", "version-semver": "3.3.0", "port-version": 1, "description": "Xerces-C++ is a XML parser, for parsing, generating, manipulating, and validating XML documents using the DOM, SAX, and SAX2 APIs.", "homepage": "https://github.com/apache/xerces-c", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "libiconv", "platform": "!windows & !osx" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "network" ], "features": { "icu": { "description": "ICU support", "dependencies": [ "icu" ] }, "network": { "description": "Network support" }, "xmlch-wchar": { "description": "XMLCh type uses wchar_t" } } } ================================================ FILE: ports/xeus/Fix-Compile-nlohmann-json.patch ================================================ diff --git a/src/xmessage.cpp b/src/xmessage.cpp index 1ab9544..5a14ba0 100644 --- a/src/xmessage.cpp +++ b/src/xmessage.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include "nlohmann/json.hpp" ================================================ FILE: ports/xeus/portfile.cmake ================================================ vcpkg_download_distfile(REMOVE_LTO_PATCH URLS https://github.com/jupyter-xeus/xeus/commit/2dcccb574713f81b7d69baed2bd543bf6798f671.diff?full_index=1 FILENAME xeus-remove-lto-2dcccb574713f81b7d69baed2bd543bf6798f671.diff SHA512 e0ae94825cb606dcd250394aee5c88e23bd5440a38c9f4cd8059590ec01dc1ec751ab0bb413788439dfbbfb2c28c68a82cb56efa11d05c3a2d63d420876e1e0b ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO QuantStack/xeus REF 0f6327a2782181e7ded9729abb32b7d8eb690aea # 0.24.3 SHA512 2c0ccd1bebf487a9a73e73ecfb74b7605756652b2a84c71e739d7b2d8923960594c025e36d75cec850c5f0e38614a20299feccea6cfbe9ea0f66bdf315af02b4 HEAD_REF master PATCHES Fix-Compile-nlohmann-json.patch "${REMOVE_LTO_PATCH}" ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC_LIBS) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_EXAMPLES=OFF -DXEUS_BUILD_STATIC_LIBS=${BUILD_STATIC_LIBS} -DXEUS_BUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DBUILD_TESTS=OFF -DDOWNLOAD_GTEST=OFF -DDISABLE_ARCH_NATIVE=OFF -DXEUS_DISABLE_ARCH_NATIVE=On ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/xeus/xeus.hpp "#ifdef XEUS_STATIC_LIB" "#if 1 // #ifdef XEUS_STATIC_LIB" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) # Install usage file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/xeus/usage ================================================ The package xeus provides CMake targets: find_package(xeus CONFIG REQUIRED) target_link_libraries(main PRIVATE xeus xeus_static) ================================================ FILE: ports/xeus/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET xeus AND NOT TARGET xeus_static) add_library(xeus_static INTERFACE IMPORTED) set_target_properties(xeus_static PROPERTIES INTERFACE_LINK_LIBRARIES xeus) elseif(TARGET xeus_static AND NOT TARGET xeus) add_library(xeus INTERFACE IMPORTED) set_target_properties(xeus PROPERTIES INTERFACE_LINK_LIBRARIES xeus_static) endif() ================================================ FILE: ports/xeus/vcpkg.json ================================================ { "name": "xeus", "version": "0.24.3", "port-version": 4, "description": "C++ implementation of the Jupyter kernel protocol", "homepage": "https://github.com/jupyter-xeus/xeus", "license": "BSD-3-Clause", "dependencies": [ "cppzmq", { "name": "libuuid", "platform": "!windows & !osx" }, "nlohmann-json", "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtl", "zeromq" ] } ================================================ FILE: ports/xframe/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xframe REF 0.3.0 SHA512 880fe8ca00bd189a197cc71e5f32539562db69433fdfa03db5f0db8211230db36eb96757a5ca3c667ae1d4edc96eae38393718e7a1e3f7c1827130cf21579b07 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/xframe) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/xframe/vcpkg.json ================================================ { "name": "xframe", "version": "0.3.0", "port-version": 3, "description": "xframe is a dataframe for C++, based on xtensor and xtl.", "homepage": "https://github.com/xtensor-stack/xframe", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtensor", "xtl" ] } ================================================ FILE: ports/xlnt/fix-configure-dependencies.patch ================================================ diff --git a/cmake/XlntConfig.cmake.in b/cmake/XlntConfig.cmake.in index 2100b91b..c3a1f1d8 100644 --- a/cmake/XlntConfig.cmake.in +++ b/cmake/XlntConfig.cmake.in @@ -11,3 +11,8 @@ check_required_components(xlnt) if(NOT TARGET xlnt::xlnt) include("${XLNT_CMAKE_DIR}/XlntTargets.cmake") endif() + +include(CMakeFindDependencyMacro) +find_dependency(FastFloat CONFIG) +find_dependency(fmt CONFIG) +find_dependency(utf8cpp CONFIG) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 752fb3fb..3362deb3 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -182,6 +182,16 @@ else() target_compile_definitions(xlnt PUBLIC XLNT_STATIC=1) endif() +# configure dependencies (outside vcpkg they are included as git submodules) +find_package(FastFloat CONFIG REQUIRED) +target_link_libraries(xlnt PRIVATE FastFloat::fast_float) + +find_package(fmt CONFIG REQUIRED) +target_link_libraries(xlnt PRIVATE fmt::fmt-header-only) + +find_package(utf8cpp CONFIG REQUIRED) +target_link_libraries(xlnt PRIVATE utf8cpp::utf8cpp) + # hide all symbols by default set_target_properties(xlnt PROPERTIES CXX_VISIBILITY_PRESET hidden) ================================================ FILE: ports/xlnt/fix-not-found-include.patch ================================================ diff --git a/cmake/XlntConfig.cmake.in b/cmake/XlntConfig.cmake.in index 01fe4981..9cefa6e0 100644 --- a/cmake/XlntConfig.cmake.in +++ b/cmake/XlntConfig.cmake.in @@ -7,7 +7,6 @@ get_filename_component(XLNT_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -set_and_check(XLNT_INCLUDE_DIR "@XLNT_INCLUDE_INSTALL_DIR@") check_required_components(xlnt) if(NOT TARGET xlnt::xlnt) ================================================ FILE: ports/xlnt/portfile.cmake ================================================ # Download the xlnt source code set(ARCHIVE_NAME "xlnt-${VERSION}.tar.gz") set(ARCHIVE_SHA512 2d016416447b56c3902fc86c0441fd1d10cb86c3a542a2a38929e32f8f55470c33e4a3938f9c47b1a672ac4d6784a981c4738a61fd076622a2baa64dbc632810) vcpkg_download_distfile(ARCHIVE URLS "https://github.com/xlnt-community/xlnt/archive/v${VERSION}.tar.gz" FILENAME "${ARCHIVE_NAME}" SHA512 ${ARCHIVE_SHA512} ) # Extract the source archive vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES fix-not-found-include.patch fix-configure-dependencies.patch ) # Download the libstudxml dependencies and copy it to the third-party folder as expected by xlnt (outside vcpkg libstudxml is included as a git submodule) vcpkg_from_git( OUT_SOURCE_PATH SOURCE_PATH_LIBSTUDXML URL https://git.codesynthesis.com/libstudxml/libstudxml.git FETCH_REF v1.1.0-b.10+2 REF c8015cb75d7d3b3c499ec86b84d099c4c1ab942b HEAD_REF master ) file(COPY "${SOURCE_PATH_LIBSTUDXML}/" DESTINATION "${SOURCE_PATH}/third-party/libstudxml") if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) set(STATIC OFF) else() set(STATIC ON) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DTESTS=OFF -DSAMPLES=OFF -DBENCHMARKS=OFF -DSTATIC=${STATIC} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/xlnt) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() ================================================ FILE: ports/xlnt/usage ================================================ xlnt provides CMake targets: find_package(Xlnt CONFIG REQUIRED) target_link_libraries(main PRIVATE xlnt::xlnt) xlnt provides pkg-config modules: # cross-platform user-friendly xlsx library for C++11 xlnt ================================================ FILE: ports/xlnt/vcpkg.json ================================================ { "name": "xlnt", "version": "1.6.1", "port-version": 1, "description": "Cross-platform user-friendly xlsx (Microsoft Excel®) library for C++11 (and above)", "homepage": "https://github.com/xlnt-community/xlnt", "documentation": "https://xlnt-community.gitbook.io/xlnt", "license": "MIT AND BSD-3-Clause AND BSD-2-Clause", "supports": "windows | linux | osx", "dependencies": [ "fast-float", "fmt", "utfcpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xlsxio/fix-dependencies.patch ================================================ From ac48075c5813f8ff2036aafddc0c391955ea36ae Mon Sep 17 00:00:00 2001 From: Jackey Lea <1768478912@qq.com> Date: Wed, 23 Jul 2025 14:23:04 +0800 Subject: [PATCH] =?UTF-8?q?vcpkg=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ada641..2aa5744 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,10 @@ ELSEIF(WITH_MINIZIP_NG) SET(ANYZIP_LIBRARIES minizip${MINIZIP_NG_SUFFIX}) SET(ANYZIP_DEF USE_MINIZIP;USE_MINIZIP_NG) ELSE() - FIND_PACKAGE(Minizip REQUIRED) + FIND_PACKAGE(Minizip NAMES unofficial-minizip REQUIRED) + SET(MINIZIP_INCLUDE_DIRS "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include") + SET(MINIZIP_LIBRARIES unofficial::minizip::minizip) + SET(ANYZIP_DEF USE_MINIZIP) SET(ANYZIP_INCLUDE_DIRS ${MINIZIP_INCLUDE_DIRS}) SET(ANYZIP_LIBRARIES ${MINIZIP_LIBRARIES}) SET(ANYZIP_DEF USE_MINIZIP) @@ -68,7 +71,8 @@ IF(EXPAT_DIR) FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h NO_DEFAULT_PATH PATHS ${EXPAT_DIR}/include ${EXPAT_DIR}) FIND_LIBRARY(EXPAT_LIBRARIES NAMES expat libexpat NO_DEFAULT_PATH PATHS ${EXPAT_DIR}/lib ${EXPAT_DIR}) ELSE() - FIND_PACKAGE(EXPAT REQUIRED) + FIND_PACKAGE(EXPAT NAMES expat REQUIRED) + SET(EXPAT_LIBRARIES expat::expat) ENDIF() # dependency: expatw (if wide library was requested) IF(WITH_WIDE) @@ -225,13 +229,13 @@ FILE(WRITE "${CMAKE_CURRENT_BINARY_DIR}/xlsxio-config.cmake.in" IF (@WITH_LIBZIP@) FIND_DEPENDENCY(LibZip) ELSE() - FIND_DEPENDENCY(minizip CONFIG) + FIND_DEPENDENCY(unofficial-minizip CONFIG) ENDIF() IF (@EXPAT_DIR@) FIND_PATH(EXPAT_INCLUDE_DIR NAMES expat.h NO_DEFAULT_PATH PATHS ${EXPAT_DIR}/include ${EXPAT_DIR}) FIND_LIBRARY(EXPAT_LIBRARIES NAMES expat libexpat NO_DEFAULT_PATH PATHS ${EXPAT_DIR}/lib ${EXPAT_DIR}) ELSE() - FIND_DEPENDENCY(EXPAT) + FIND_DEPENDENCY(expat CONFIG) ENDIF() IF(@WITH_WIDE@) -- 2.50.1.windows.1 ================================================ FILE: ports/xlsxio/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO brechtsanders/xlsxio REF "${VERSION}" SHA512 6d22aa23290da84fbbf9ed5fbfbc3203b0171b58de14e94283cdd240c65f7f2b0b5b9f7f044d0b0a5d925f645cac305718b338b806004d8f844a525292972d28 HEAD_REF master PATCHES fix-dependencies.patch ) file(REMOVE "${SOURCE_PATH}/CMake/FindMinizip.cmake") string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0012=NEW -DBUILD_SHARED=${BUILD_SHARED} -DBUILD_STATIC=${BUILD_STATIC} -DWITH_WIDE=OFF -DBUILD_DOCUMENTATION=OFF -DBUILD_EXAMPLES=OFF -DBUILD_PC_FILES=OFF -DBUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH cmake) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") ================================================ FILE: ports/xlsxio/vcpkg.json ================================================ { "name": "xlsxio", "version": "0.2.36", "description": "Cross-platform C library for reading values from and writing values to .xlsx files", "homepage": "https://github.com/brechtsanders/xlsxio", "license": "MIT", "dependencies": [ "expat", { "name": "minizip", "features": [ "bzip2" ] }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xmlsec/CMakeLists.txt ================================================ cmake_minimum_required (VERSION 3.8) project (xmlsec1 C CXX) # CXX needed when libxml2 is built with icu include(CMakeDependentOption) option(INSTALL_HEADERS "Install headers" ON) cmake_dependent_option(BUILD_WITH_DYNAMIC_LOADING "Enable dynamic loading of xmlsec-crypto libraries" OFF BUILD_SHARED_LIBS OFF) option(BUILD_WITH_TOOLS "Build tools" ON) find_package(LibXml2 REQUIRED) find_package(OpenSSL REQUIRED) FILE(GLOB SOURCESXMLSEC src/*.c ) FILE(GLOB SOURCESXMLSECOPENSSL src/openssl/*.c src/strings.c ) message(STATUS "Reading version info from configure.ac") file(STRINGS "configure.ac" _xmlsec_version_defines REGEX "XMLSEC_VERSION_(MAJOR|MINOR|SUBMINOR)=([0-9]+)$") foreach(ver ${_xmlsec_version_defines}) if(ver MATCHES "XMLSEC_VERSION_(MAJOR|MINOR|SUBMINOR)=([0-9]+)$") set(XMLSEC_VERSION_${CMAKE_MATCH_1} "${CMAKE_MATCH_2}" CACHE INTERNAL "") endif() endforeach() set(XMLSEC_VERSION ${XMLSEC_VERSION_MAJOR}.${XMLSEC_VERSION_MINOR}.${XMLSEC_VERSION_SUBMINOR}) math(EXPR XMLSEC_VERSION_INFO_NUMBER "${XMLSEC_VERSION_MAJOR} + ${XMLSEC_VERSION_MINOR}") set(XMLSEC_VERSION_INFO ${XMLSEC_VERSION_INFO_NUMBER}:${XMLSEC_VERSION_SUBMINOR}:${XMLSEC_VERSION_MINOR}) message(STATUS "XMLSEC_VERSION: ${XMLSEC_VERSION}") message(STATUS "XMLSEC_VERSION_MAJOR: ${XMLSEC_VERSION_MAJOR}") message(STATUS "XMLSEC_VERSION_MINOR: ${XMLSEC_VERSION_MINOR}") message(STATUS "XMLSEC_VERSION_SUBMINOR: ${XMLSEC_VERSION_SUBMINOR}") message(STATUS "XMLSEC_VERSION_INFO: ${XMLSEC_VERSION_INFO}") message(STATUS "Generating version.h") configure_file(include/xmlsec/version.h.in include/xmlsec/version.h) # Generate xmlexports with fixed definition of XMLSEC_STATIC file(READ include/xmlsec/exports.h EXPORTS_H) if(BUILD_SHARED_LIBS) string(REPLACE "!defined(XMLSEC_STATIC)" "1" EXPORTS_H "${EXPORTS_H}") else() string(REPLACE "!defined(XMLSEC_STATIC)" "0" EXPORTS_H "${EXPORTS_H}") endif() file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/include/xmlsec/exports.h "${EXPORTS_H}") if(MSVC) add_compile_options(/wd4130 /wd4127 /wd4152) endif() set(CMAKE_SHARED_LIBRARY_PREFIX "lib") set(CMAKE_STATIC_LIBRARY_PREFIX "lib") add_library(xmlsec1 ${SOURCESXMLSEC}) add_library(xmlsec1-openssl ${SOURCESXMLSECOPENSSL}) target_include_directories(xmlsec1 PUBLIC $ $ $ ) target_link_libraries(xmlsec1 PUBLIC LibXml2::LibXml2) target_link_libraries(xmlsec1-openssl PUBLIC xmlsec1 OpenSSL::Crypto) add_compile_definitions( inline=__inline PACKAGE="xmlsec1" HAVE_STDIO_H HAVE_STDLIB_H HAVE_STRING_H HAVE_CTYPE_H HAVE_MALLOC_H HAVE_MEMORY_H XMLSEC_DEFAULT_CRYPTO="openssl" UNICODE _UNICODE _MBCS _REENTRANT WIN32_LEAN_AND_MEAN ) set_target_properties(xmlsec1 xmlsec1-openssl PROPERTIES VERSION ${XMLSEC_VERSION_MAJOR}.${XMLSEC_VERSION_MINOR}) set(XMLSEC_CORE_CFLAGS XMLSEC_NO_XSLT XMLSEC_CRYPTO_OPENSSL XMLSEC_NO_FTP XMLSEC_NO_HTTP) if(NOT BUILD_SHARED_LIBS) list(APPEND XMLSEC_CORE_CFLAGS XMLSEC_STATIC) endif() set(XMLSEC_OPENSSL_CFLAGS XMLSEC_NO_MD5 XMLSEC_NO_RIPEMD160 XMLSEC_NO_GOST XMLSEC_NO_GOST2012) if(BUILD_WITH_DYNAMIC_LOADING) if(NOT WIN32) find_path(LTDL_INCLUDE_DIR NAMES ltdl.h) find_library(LTDL_LIBRARY NAMES ltdl) if(NOT LTDL_INCLUDE_DIR OR NOT LTDL_LIBRARY) message(FATAL_ERROR "libltdl not found (headers or library missing)") endif() target_include_directories(xmlsec1 PRIVATE ${LTDL_INCLUDE_DIR}) target_link_libraries(xmlsec1 PRIVATE ${LTDL_LIBRARY}) endif() list(APPEND XMLSEC_CORE_CFLAGS XMLSEC_CRYPTO_DYNAMIC_LOADING) else() list(APPEND XMLSEC_CORE_CFLAGS XMLSEC_NO_CRYPTO_DYNAMIC_LOADING) endif() target_compile_definitions(xmlsec1 PRIVATE $,XMLSEC_DL_WIN32,XMLSEC_DL_LIBLTDL> PUBLIC ${XMLSEC_CORE_CFLAGS} ) target_compile_definitions(xmlsec1-openssl PUBLIC ${XMLSEC_OPENSSL_CFLAGS}) install(TARGETS xmlsec1 xmlsec1-openssl EXPORT unofficial-xmlsec-targets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT unofficial-xmlsec-targets NAMESPACE unofficial::xmlsec:: DESTINATION share/unofficial-xmlsec ) if(INSTALL_HEADERS) install(DIRECTORY include/xmlsec DESTINATION include FILES_MATCHING PATTERN "*.h") install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/xmlsec DESTINATION include) endif() if(BUILD_WITH_TOOLS) # xmlsec application add_executable(xmlsec apps/crypto.c apps/cmdline.c apps/xmlsec.c) if(WIN32) target_link_libraries(xmlsec PRIVATE crypt32.lib) endif() target_link_libraries(xmlsec PRIVATE xmlsec1-openssl) if(NOT BUILD_SHARED_LIBS) # needed when libxml2 is built with icu find_package(Threads REQUIRED) target_link_libraries(xmlsec PRIVATE Threads::Threads) endif() install(TARGETS xmlsec DESTINATION tools/xmlsec) endif() message(STATUS "Generating pkgconfig files") set(prefix ${CMAKE_INSTALL_PREFIX}) set(exec_prefix ${prefix}) set(libdir ${prefix}/${CMAKE_INSTALL_LIBDIR}) set(includedir ${prefix}/${CMAKE_INSTALL_INCLUDEDIR}) set(VERSION ${XMLSEC_VERSION}) set(LIBXML_MIN_VERSION ${LIBXML2_VERSION_STRING}) list(JOIN XMLSEC_CORE_CFLAGS " -D" XMLSEC_CORE_CFLAGS) set(XMLSEC_CORE_CFLAGS "-D${XMLSEC_CORE_CFLAGS} -I\${includedir}/xmlsec1") set(XMLSEC_CORE_LIBS "-lxmlsec1") list(JOIN XMLSEC_OPENSSL_CFLAGS " -D" XMLSEC_OPENSSL_CFLAGS) set(XMLSEC_OPENSSL_CFLAGS "${XMLSEC_CORE_CFLAGS} -D${XMLSEC_OPENSSL_CFLAGS}") set(XMLSEC_OPENSSL_LIBS "-L\${libdir} -lxmlsec1-openssl ${XMLSEC_CORE_LIBS} -lcrypto") configure_file(${PROJECT_SOURCE_DIR}/xmlsec.pc.in ${PROJECT_BINARY_DIR}/xmlsec1.pc @ONLY) configure_file(${PROJECT_SOURCE_DIR}/xmlsec-openssl.pc.in ${PROJECT_BINARY_DIR}/xmlsec1-openssl.pc @ONLY) install(FILES ${PROJECT_BINARY_DIR}/xmlsec1.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/) install(FILES ${PROJECT_BINARY_DIR}/xmlsec1-openssl.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/) ================================================ FILE: ports/xmlsec/pkgconfig_fixes.patch ================================================ diff --git a/xmlsec-openssl.pc.in b/xmlsec-openssl.pc.in index af3ae29..40635cf 100644 --- a/xmlsec-openssl.pc.in +++ b/xmlsec-openssl.pc.in @@ -8,5 +8,4 @@ Version: @VERSION@ Description: XML Security Library implements XML Signature and XML Encryption standards Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@ Cflags: @XMLSEC_OPENSSL_CFLAGS@ -Cflags.private: -DXMLSEC_STATIC Libs: @XMLSEC_OPENSSL_LIBS@ diff --git a/xmlsec.pc.in b/xmlsec.pc.in index 2d5a3ad..0f72d68 100644 --- a/xmlsec.pc.in +++ b/xmlsec.pc.in @@ -7,5 +7,5 @@ Name: xmlsec1 Version: @VERSION@ Description: XML Security Library implements XML Signature and XML Encryption standards Requires: libxml-2.0 >= @LIBXML_MIN_VERSION@ @LIBXSLT_PC_FILE_COND@ -Cflags: -DXMLSEC_CRYPTO_DYNAMIC_LOADING=1 @XMLSEC_CORE_CFLAGS@ +Cflags: @XMLSEC_CORE_CFLAGS@ Libs: -L${libdir} @XMLSEC_CORE_LIBS@ ================================================ FILE: ports/xmlsec/portfile.cmake ================================================ string(REPLACE "." "_" release_tag "xmlsec_${VERSION}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lsh123/xmlsec REF "${release_tag}" SHA512 1c5f0c0dc667cabaedce9e26b988a82a19677647c530ea16959a499472eb1de2338a0b3b0d74a6ff5320efd65c6eae55f98919f371a89d0ad40e0253909d4fbe HEAD_REF master PATCHES pkgconfig_fixes.patch ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES "tools" BUILD_WITH_TOOLS "with-dl" BUILD_WITH_DYNAMIC_LOADING ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DINSTALL_HEADERS=OFF -DBUILD_WITH_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-xmlsec) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() # unofficial legacy usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/xmlsec-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/unofficial-xmlsec-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/unofficial-xmlsec") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Copyright") ================================================ FILE: ports/xmlsec/unofficial-xmlsec-config.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(LibXml2) find_dependency(OpenSSL) include("${CMAKE_CURRENT_LIST_DIR}/unofficial-xmlsec-targets.cmake") ================================================ FILE: ports/xmlsec/usage ================================================ xmlsec can be imported via CMake FindPkgConfig module: find_package(PkgConfig) # For dynamic loading of xmlsec crypto library pkg_check_modules(XMLSEC1 REQUIRED IMPORTED_TARGET xmlsec1) target_link_libraries(main PRIVATE PkgConfig::XMLSEC1) # For selecting the openssl crypto engine at link time pkg_check_modules(XMLSEC1_OPENSSL REQUIRED IMPORTED_TARGET xmlsec1-openssl) target_link_libraries(main PRIVATE PkgConfig::XMLSEC1_OPENSSL) vcpkg provides proprietary CMake targets: find_package(unofficial-xmlsec CONFIG REQUIRED) # For dynamic loading of xmlsec crypto library target_link_libraries(main PRIVATE unofficial::xmlsec::xmlsec1) # For selecting the openssl crypto engine at link time target_link_libraries(main PRIVATE unofficial::xmlsec::xmlsec1-openssl) ================================================ FILE: ports/xmlsec/vcpkg.json ================================================ { "name": "xmlsec", "version": "1.3.9", "port-version": 1, "description": "XML Security Library is a C library based on LibXML2. The library supports major XML security standards.", "homepage": "https://www.aleksey.com/xmlsec/", "license": "X11 AND MPL-1.1", "supports": "!xbox & !uwp", "dependencies": [ { "name": "libxml2", "default-features": false }, "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build tools" }, "with-dl": { "description": "Build with dynamic loading of xmlsec-crypto libraries", "supports": "!static", "dependencies": [ { "name": "libltdl", "platform": "!windows" } ] } } } ================================================ FILE: ports/xmlsec/xmlsec-config.cmake ================================================ file(READ "${CMAKE_CURRENT_LIST_DIR}/usage" usage) message(WARNING "find_package(xmlsec) is deprecated.\n${usage}") include(CMakeFindDependencyMacro) find_dependency(unofficial-xmlsec CONFIG REQUIRED) if(NOT TARGET xmlsec1) add_library(xmlsec1 ALIAS unofficial::xmlsec::xmlsec1) endif() if(NOT TARGET xmlsec1-openssl) add_library(xmlsec1-openssl ALIAS unofficial::xmlsec::xmlsec1-openssl) endif() ================================================ FILE: ports/xnnpack/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 856a47d..06f5ea9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1040,14 +1040,14 @@ IF(XNNPACK_BUILD_ALL_MICROKERNELS) ENDIF() TARGET_INCLUDE_DIRECTORIES(datatype PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(microkernels-prod PRIVATE include src) -TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src ${CPUINFO_SOURCE_DIR}/include) +TARGET_INCLUDE_DIRECTORIES(hardware-config PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(indirection PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(microparams-init PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(normalization PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(packing PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(logging PRIVATE include src) IF(XNNPACK_BUILD_LIBRARY) - TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC include) + TARGET_INCLUDE_DIRECTORIES(XNNPACK PUBLIC $ $) TARGET_INCLUDE_DIRECTORIES(XNNPACK PRIVATE src) TARGET_INCLUDE_DIRECTORIES(allocator PRIVATE include src) TARGET_INCLUDE_DIRECTORIES(cache PRIVATE include src) @@ -1085,6 +1085,8 @@ IF(XNNPACK_BUILD_WITH_LIBM) ENDIF() # ---[ Configure cpuinfo +find_package(cpuinfo CONFIG REQUIRED) +add_library(cpuinfo ALIAS cpuinfo::cpuinfo) IF(NOT TARGET cpuinfo) IF(NOT XNNPACK_USE_SYSTEM_LIBS) SET(CPUINFO_BUILD_TOOLS OFF CACHE BOOL "") @@ -1111,6 +1113,8 @@ IF(XNNPACK_BUILD_LIBRARY) ENDIF() # ---[ Configure pthreadpool +find_package(unofficial-pthreadpool CONFIG REQUIRED) +add_library(pthreadpool ALIAS unofficial::pthreadpool) IF(NOT TARGET pthreadpool) IF(NOT XNNPACK_USE_SYSTEM_LIBS) SET(PTHREADPOOL_BUILD_TESTS OFF CACHE BOOL "") @@ -1135,6 +1139,8 @@ ENDIF() TARGET_LINK_LIBRARIES(xnnpack-base INTERFACE pthreadpool) # ---[ Configure FXdiv +find_package(unofficial-fxdiv CONFIG REQUIRED) +add_library(fxdiv ALIAS unofficial::fxdiv::fxdiv) IF(NOT TARGET fxdiv) IF(NOT XNNPACK_USE_SYSTEM_LIBS) SET(FXDIV_BUILD_TESTS OFF CACHE BOOL "") @@ -1162,14 +1168,27 @@ IF(XNNPACK_BUILD_LIBRARY) ENDIF() IF(XNNPACK_BUILD_LIBRARY) - INSTALL(TARGETS XNNPACK microkernels-prod + INSTALL(TARGETS XNNPACK microkernels-prod xnnpack-base allocator cache hardware-config indirection memory microkernel-utils microparams-init mutex normalization operators operator-run operator-utils packing subgraph datatype reference-ukernels logging + EXPORT unofficial-xnnpack-config-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + INSTALL(EXPORT unofficial-xnnpack-config-targets NAMESPACE unofficial::xnnpack:: + FILE unofficial-xnnpack-config-targets.cmake + DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack) # share/xnnpack + +include(CMakePackageConfigHelpers) +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-xnnpack-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/unofficial-xnnpack) + + ENDIF() # ---[ Configure KleidiAI IF(XNNPACK_ENABLE_KLEIDIAI) + find_package(KleidiAI CONFIG REQUIRED) + add_library(kleidiai ALIAS KleidiAI::kleidiai) IF(NOT TARGET kleidiai) IF(NOT XNNPACK_USE_SYSTEM_LIBS) SET(KLEIDIAI_BUILD_TESTS OFF CACHE BOOL "") diff --git a/Config.cmake.in b/Config.cmake.in new file mode 100644 index 0000000..8dc60b4 --- /dev/null +++ b/Config.cmake.in @@ -0,0 +1,11 @@ +@PACKAGE_INIT@ + +include(CMakeFindDependencyMacro) +find_dependency(unofficial-fxdiv) +find_dependency(cpuinfo) +find_dependency(unofficial-pthreadpool) +if(@XNNPACK_ENABLE_KLEIDIAI@) + find_dependency(KleidiAI) +endif() + +include ( "${CMAKE_CURRENT_LIST_DIR}/unofficial-xnnpack-config-targets.cmake" ) ================================================ FILE: ports/xnnpack/portfile.cmake ================================================ if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/XNNPACK REF 51a0103656eff6fc9bfd39a4597923c4b542c883 # 2024-12-03 SHA512 ecb859935996416ce51b2b9ffd5a8c3cc5e933dfab96b7b68c8a52e05227ce3416ffa81e8a3fcef8349aa85147aa1c6a07138c7fc8e87a02ad577e1da9126827 HEAD_REF master PATCHES fix-cmake.patch ) vcpkg_find_acquire_program(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DPython_EXECUTABLE=${PYTHON3}" -DXNNPACK_USE_SYSTEM_LIBS=ON -DXNNPACK_ENABLE_ASSEMBLY=ON -DXNNPACK_ENABLE_MEMOPT=ON -DXNNPACK_ENABLE_SPARSE=ON -DXNNPACK_BUILD_TESTS=OFF -DXNNPACK_BUILD_BENCHMARKS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-${PORT}) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") ================================================ FILE: ports/xnnpack/vcpkg.json ================================================ { "name": "xnnpack", "version-date": "2024-08-20", "description": "High-efficiency floating-point neural network inference operators for mobile, server, and Web", "homepage": "https://github.com/google/XNNPACK", "license": "BSD-3-Clause", "supports": "!(arm & windows) & !uwp & !arm32", "dependencies": [ { "name": "cpuinfo", "features": [ "clog" ] }, "fp16", "fxdiv", { "name": "kleidiai", "platform": "arm64" }, "pthreadpool", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xorg-macros/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) return() endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(PATCHES skip_rawcpp.patch) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO util/macros REF "util-macros-${VERSION}" SHA512 e3c8b625ac7bcb1d34869bece133d6c557e1c6e92ae7ecbfcb4e05a61006a600515e2aab51af2e1a00d9482a270265eda8e7c05f599dc5a007e996aac32db46b HEAD_REF master PATCHES ${PATCHES} ) vcpkg_make_configure( AUTORECONF SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_make_install() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/xorg/") if(NOT CMAKE_HOST_WIN32) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/xorg/aclocal/") endif() file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/aclocal/" "${CURRENT_PACKAGES_DIR}/share/xorg/aclocal") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/util-macros/" "${CURRENT_PACKAGES_DIR}/share/xorg/util-macros") file(READ "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig/xorg-macros.pc" _contents) string(REPLACE "${CURRENT_PACKAGES_DIR}" "${CURRENT_INSTALLED_DIR}" _contents "${_contents}") string(REPLACE "datarootdir=\${prefix}/share" "datarootdir=\${prefix}/share/xorg" _contents "${_contents}") string(REPLACE "includedir=${CURRENT_INSTALLED_DIR}/include" "includedir=\${prefix}/include" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/share/pkgconfig/xorg-macros.pc" "${_contents}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/") file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(REMOVE "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig/xorg-macros.pc") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/pkgconfig/xorg-macros.pc") file(READ "${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/pkgconfig/xorg-macros.pc" _contents) string(REPLACE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_INSTALLED_DIR}/debug" _contents "${_contents}") string(REPLACE "datarootdir=\${prefix}/share}" "datarootdir=\${prefix}/share/xorg/debug}" _contents "${_contents}") string(REPLACE "includedir=${CURRENT_INSTALLED_DIR}/debug/include" "includedir=\${prefix}/../include" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/xorg-macros.pc" "${_contents}") if(NOT CMAKE_HOST_WIN32) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/xorg/debug/") endif() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/pkgconfig/xorg-macros.pc") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/" "${CURRENT_PACKAGES_DIR}/share/xorg/debug/") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/pkgconfig") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/xorg/debug/${PORT}/pkgconfig" "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig") vcpkg_fixup_pkgconfig() # Handle copyright file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/xorg-macros/skip_rawcpp.patch ================================================ diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in index b15daf1..3bddfcb 100644 --- a/xorg-macros.m4.in +++ b/xorg-macros.m4.in @@ -63,38 +63,6 @@ AC_PATH_TOOL(RAWCPP, [cpp], [${CPP}], # Check for flag to avoid builtin definitions - assumes unix is predefined, # which is not the best choice for supporting other OS'es, but covers most # of the ones we need for now. -AC_MSG_CHECKING([if $RAWCPP requires -undef]) -AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) -if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - AC_MSG_RESULT([no]) -else - if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - RAWCPPFLAGS=-undef - AC_MSG_RESULT([yes]) - # under Cygwin unix is still defined even with -undef - elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - RAWCPPFLAGS="-undef -ansi" - AC_MSG_RESULT([yes, with -ansi]) - else - AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) - fi -fi -rm -f conftest.$ac_ext - -AC_MSG_CHECKING([if $RAWCPP requires -traditional]) -AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) -if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then - AC_MSG_RESULT([no]) -else - if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve "'` -eq 1 ; then - TRADITIONALCPPFLAGS="-traditional" - RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" - AC_MSG_RESULT([yes]) - else - AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) - fi -fi -rm -f conftest.$ac_ext AC_SUBST(RAWCPPFLAGS) AC_SUBST(TRADITIONALCPPFLAGS) ]) # XORG_PROG_RAWCPP ================================================ FILE: ports/xorg-macros/vcpkg.json ================================================ { "name": "xorg-macros", "version": "1.20.2", "port-version": 1, "description": "X.org macros utilities.", "homepage": "https://xcb.freedesktop.org/", "license": null, "supports": "!uwp", "dependencies": [ { "name": "vcpkg-make", "host": true } ] } ================================================ FILE: ports/xorstr/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO JustasMasiulis/xorstr REF 066c64eea5104f4e3cfbc49e39031400e086425a # 2021-11-20 SHA512 b28895c3d51089820ef9bf2dd80b1af5eda2f8463c8374d39bc3b54c4928ecd787977cfd4e207f56cd58e3ec0360e428a52c4b813a8f380258cf29914e32ff50 HEAD_REF master ) file(COPY "${SOURCE_PATH}/include/xorstr.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xorstr/vcpkg.json ================================================ { "name": "xorstr", "version-date": "2021-11-20", "description": "Heavily vectorized c++17 compile time string encryption", "homepage": "https://github.com/JustasMasiulis/xorstr", "license": "Apache-2.0" } ================================================ FILE: ports/xpack/portfile.cmake ================================================ # xpack - Header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xyz347/xpack REF "v${VERSION}" SHA512 2c74e0ede211603266470177c90619a5826504e23d91922daf97e9e1a1c1e8448bc748ce2494cc552442a1531f0f94a5692cabe53c83a65f7e11a1bbe67e7065 HEAD_REF master ) file(GLOB header_files "${SOURCE_PATH}/*.h" "${SOURCE_PATH}/*.hpp") file(COPY ${header_files} "${SOURCE_PATH}/xpack.pri" DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xpack/vcpkg.json ================================================ { "name": "xpack", "version": "1.0.6", "description": "Convert C++ struct from/to json/xml", "homepage": "https://github.com/xyz347/xpack", "license": "Apache-2.0", "dependencies": [ "rapidjson", "rapidxml" ] } ================================================ FILE: ports/xproperty/fix-target.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index accd038..2451bf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ ############################################################################ cmake_minimum_required(VERSION 3.20) -project(xproperty) +project(xproperty CXX) set(XPROPERTY_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) ================================================ FILE: ports/xproperty/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO QuantStack/xproperty REF ${VERSION} SHA512 5c7332b3f27ee8d81ca7cefc0666a4f8a4eb71697efe22da3fa6176d45b7ba26b09dd3b5b30b68d13c4b4fa4090ebecb73528ebceec4b699a7ad2d3e66bef745 HEAD_REF master PATCHES fix-target.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") # Handle copyright configure_file("${SOURCE_PATH}/LICENSE" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" COPYONLY) ================================================ FILE: ports/xproperty/vcpkg.json ================================================ { "name": "xproperty", "version": "0.13.0", "description": "Traitlets-like C++ properties and implementation of the observer pattern", "homepage": "https://github.com/jupyter-xeus/xproperty", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xproto/portfile.cmake ================================================ if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(PATCHES vcxserver-xw32defs.patch windows-long64.patch windows-io.patch windows_mean_and_lean.patch windows-none.patch windows-include-guards.patch ) endif() vcpkg_from_gitlab( GITLAB_URL https://gitlab.freedesktop.org/xorg OUT_SOURCE_PATH SOURCE_PATH REPO proto/xorgproto REF 57acac1d4c7967f4661fb1c9f86f48f34a46c48d # 2021.5 SHA512 5d2b6096e7f6ec6a3414f4370da583f6660fbd287474e8b4cd3e51ccc35514181352d3b0b9cd4b8d6e30de7b54f4ce01a9fbf17be75cf8de18aa28e9f774b8c4 HEAD_REF master PATCHES upstream-1.patch ${PATCHES} ) vcpkg_configure_meson(SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-Dlegacy=true") vcpkg_install_meson() # To make CMake consumption easier. if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/share/pkgconfig/") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/") file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig(SKIP_CHECK) # pc files requiring Xau Xt xt SM ICE X11 xcb Xdmcp are installed before they can be used. file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") # Handle copyright file(GLOB_RECURSE _files "${SOURCE_PATH}/COPYING*") file(INSTALL ${_files} DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST ${_files}) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "") endif() ================================================ FILE: ports/xproto/upstream-1.patch ================================================ diff --git a/include/X11/XF86keysym.h b/include/X11/XF86keysym.h index c242e42f5fee2e28da11df2d33b005e9bb4b5441..59ba54d1a13fabdded6920ce946c1e20594f49ff 100644 --- a/include/X11/XF86keysym.h +++ b/include/X11/XF86keysym.h @@ -394,6 +394,7 @@ #define XF86XK_VoiceCommand _EVDEVK(0x246) /* v3.16 KEY_VOICECOMMAND */ #define XF86XK_Assistant _EVDEVK(0x247) /* v4.13 KEY_ASSISTANT */ /* Use: XK_ISO_Next_Group _EVDEVK(0x248) v5.2 KEY_KBD_LAYOUT_NEXT */ +#define XF86XK_EmojiPicker _EVDEVK(0x249) /* v5.13 KEY_EMOJI_PICKER */ #define XF86XK_BrightnessMin _EVDEVK(0x250) /* v3.16 KEY_BRIGHTNESS_MIN */ #define XF86XK_BrightnessMax _EVDEVK(0x251) /* v3.16 KEY_BRIGHTNESS_MAX */ #define XF86XK_KbdInputAssistPrev _EVDEVK(0x260) /* v3.18 KEY_KBDINPUTASSIST_PREV */ ================================================ FILE: ports/xproto/vcpkg.json ================================================ { "name": "xproto", "version": "2021.5", "description": "X Window System unified protocol definitions", "homepage": "https://gitlab.freedesktop.org/xorg/proto/xorgproto", "license": null, "dependencies": [ "libxslt", { "name": "vcpkg-tool-meson", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/xproto/vcxserver-xw32defs.patch ================================================ diff --git a/include/X11/Xw32defs.h b/include/X11/Xw32defs.h index 683b588..db1eabd 100644 --- a/include/X11/Xw32defs.h +++ b/include/X11/Xw32defs.h @@ -27,7 +27,6 @@ typedef char *caddr_t; # define execve _execve # define execvp _execvp # define execvpe _execvpe -# define fdopen _fdopen # define fileno _fileno # define fstat _fstat # define getcwd _getcwd @@ -72,8 +71,8 @@ typedef char *caddr_t; # define S_IEXEC _S_IEXEC # define F_OK 0 -# define X_OK 1 # define W_OK 2 # define R_OK 4 +# define X_OK R_OK # endif /* __GNUC__ */ #endif ================================================ FILE: ports/xproto/windows-include-guards.patch ================================================ diff --git a/include/X11/Xwindows.h b/include/X11/Xwindows.h index 900257928..666ee6515 100644 --- a/include/X11/Xwindows.h +++ b/include/X11/Xwindows.h @@ -41,6 +41,11 @@ The Open Group. * do as it's no help at all to X11 clients which also need to use the * Win32 API) */ +#pragma once + +#ifndef _X11_XWINDOWS_H_ +#define _X11_XWINDOWS_H_ + #undef _XFree86Server #ifdef XFree86Server # define _XFree86Server @@ -130,3 +135,4 @@ typedef int Status; # undef _XFree86Server #endif +#endif diff --git a/include/X11/Xwinsock.h b/include/X11/Xwinsock.h index 92e0d2a33..1e3e8671b 100644 --- a/include/X11/Xwinsock.h +++ b/include/X11/Xwinsock.h @@ -32,6 +32,10 @@ The Open Group. * Conflicts come from the fact that including winsock.h actually pulls * in the whole Windows API... */ +#pragma once + +#ifndef _X11_XWINSOCK_H_ +#define _X11_XWINSOCK_H_ #undef _XFree86Server #ifdef XFree86Server @@ -100,3 +104,4 @@ typedef int Status; # undef _XFree86Server #endif +#endif ================================================ FILE: ports/xproto/windows-io.patch ================================================ diff --git a/include/X11/Xos.h b/include/X11/Xos.h index 28dfc673a..37d268f27 100644 --- a/include/X11/Xos.h +++ b/include/X11/Xos.h @@ -80,6 +80,7 @@ in this Software without prior written authorization from The Open Group. # include # endif # ifdef WIN32 +# include // For open() # include # else # include ================================================ FILE: ports/xproto/windows-long64.patch ================================================ diff --git a/include/X11/Xwinsock.h b/include/X11/Xwinsock.h index 624047d..e8d5653 100644 --- a/include/X11/Xwinsock.h +++ b/include/X11/Xwinsock.h @@ -47,6 +47,10 @@ The Open Group. #define _NO_BOOL_TYPEDEF #define BOOL WINBOOL #define INT32 wINT32 +#ifdef __x86_64__ +#define INT64 wINT64 +#define LONG64 wLONG64 +#endif #undef Status #define Status wStatus #define ATOM wATOM @@ -58,6 +62,8 @@ The Open Group. #undef BYTE #undef BOOL #undef INT32 +#undef INT64 +#undef LONG64 #undef ATOM #undef FreeResource #undef CreateWindowA diff --git a/include/X11/meson.build b/include/X11/meson.build index 1c33c64..703ab19 100644 --- a/include/X11/meson.build +++ b/include/X11/meson.build @@ -1,7 +1,8 @@ fd_set_maybe_headers = [ 'sys/param.h', 'sys/types.h', 'sys/time.h', - 'sys/select.h' + 'sys/select.h', + 'winsock2.h' ] fd_set_headers = '' foreach h : fd_set_maybe_headers @@ -15,6 +16,8 @@ if cc.has_member('fd_set', 'fds_bits', prefix: fd_set_headers) fds_bits = 'fds_bits' elif cc.has_member('fd_set', '__fds_bits', prefix: fd_set_headers) fds_bits = '__fds_bits' +elif cc.has_member('fd_set', 'fd_count', prefix: fd_set_headers) + fds_bits = 'fd_count' else error('Your fd_set is too weird.') endif -- ================================================ FILE: ports/xproto/windows-none.patch ================================================ diff --git a/include/X11/Xwindows.h b/include/X11/Xwindows.h index 70e1debd5..236ec96a7 100644 --- a/include/X11/Xwindows.h +++ b/include/X11/Xwindows.h @@ -69,6 +69,16 @@ The Open Group. #endif #undef Status #define Status wStatus +#ifdef None // FS.h defines None which is used in winnt.h +#pragma push_macro("None") +#define NoneDefined +#undef None +#endif +#ifdef ControlMask // X.h defines ControlMask which is used in processthreadapi.h +#pragma push_macro("ControlMask") +#define ControlMaskDefined +#undef ControlMask +#endif #define ATOM wATOM #define BYTE wBYTE #define FreeResource wFreeResource @@ -76,6 +77,14 @@ The Open Group. #undef NOMINMAX #undef Status -#define Status int +typedef int Status; +#ifdef NoneDefined +#pragma pop_macro("None") +#undef NoneDefined +#endif +#ifdef ControlMaskDefined +#pragma pop_macro("ControlMask") +#undef ControlMaskDefined +#endif #undef BYTE #undef BOOL #undef INT32 diff --git a/include/X11/Xwinsock.h b/include/X11/Xwinsock.h index 624047d..e8d5653 100644 --- a/include/X11/Xwinsock.h +++ b/include/X11/Xwinsock.h @@ -47,23 +47,42 @@ The Open Group. #define _NO_BOOL_TYPEDEF #define BOOL WINBOOL #define INT32 wINT32 #ifdef __x86_64__ #define INT64 wINT64 #define LONG64 wLONG64 #endif #undef Status #define Status wStatus +#ifdef None +#pragma push_macro("None") +#define NoneDefined +#undef None +#endif +#ifdef ControlMask +#pragma push_macro("ControlMask") +#define ControlMaskDefined +#undef ControlMask +#endif #define ATOM wATOM #define BYTE wBYTE #define FreeResource wFreeResource #include +#include #undef Status -#define Status int +typedef int Status; +#ifdef NoneDefined +#pragma pop_macro("None") +#undef NoneDefined +#endif +#ifdef ControlMaskDefined +#pragma pop_macro("ControlMask") +#undef ControlMaskDefined +#endif #undef BYTE #undef BOOL #undef INT32 #undef INT64 #undef LONG64 #undef ATOM #undef FreeResource #undef CreateWindowA ================================================ FILE: ports/xproto/windows_mean_and_lean.patch ================================================ diff --git a/include/X11/Xwindows.h b/include/X11/Xwindows.h index 70e1debd5..236ec96a7 100644 --- a/include/X11/Xwindows.h +++ b/include/X11/Xwindows.h @@ -54,7 +54,7 @@ The Open Group. * */ #define NOMINMAX - +#define WIN32_LEAN_AND_MEAN // Otherwise this will include winsock.h! /* * mingw-w64 headers define BOOL as a typedef, protecting against macros * mingw.org headers define BOOL in terms of WINBOOL ================================================ FILE: ports/xqilla/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.21) cmake_policy(VERSION 3.21) if (BUILD_SHARED_LIBS) add_definitions("-DXQILLA_APIS=") else() add_definitions("-DXQILLA_API=") endif() project(xqilla C CXX) set(CMAKE_CXX_STANDARD 11) # 17 does not allow 'register' add_library(xqilla ./src/exceptions/XQException.cpp ./src/exceptions/XQillaException.cpp ./src/fastxdm/FastXDMSequenceBuilder.cpp ./src/fastxdm/FastXDMNodeImpl.cpp ./src/fastxdm/FastXDMDocument.cpp ./src/fastxdm/FastXDMUpdateFactory.cpp ./src/fastxdm/FastXDMConfiguration.cpp ./src/ast/XQAttributeConstructor.cpp ./src/ast/XQOrderingChange.cpp ./src/ast/XQReturn.cpp ./src/ast/XQPredicate.cpp ./src/ast/XQNamespaceBinding.cpp ./src/ast/XQCopy.cpp ./src/ast/XQQuantified.cpp ./src/ast/NumericFunction.cpp ./src/ast/XQOperator.cpp ./src/ast/XQVariable.cpp ./src/ast/StaticAnalysis.cpp ./src/ast/XQFunctionRef.cpp ./src/ast/XQCastAs.cpp ./src/ast/XQStep.cpp ./src/ast/XQLiteral.cpp ./src/ast/XQCopyOf.cpp ./src/ast/XQElementConstructor.cpp ./src/ast/XQDocumentConstructor.cpp ./src/ast/XQTreatAs.cpp ./src/ast/XQCallTemplate.cpp ./src/ast/XQTextConstructor.cpp ./src/ast/XQNamespaceConstructor.cpp ./src/ast/XQMap.cpp ./src/ast/XQFunctionCoercion.cpp ./src/ast/XQTypeswitch.cpp ./src/ast/XQAtomize.cpp ./src/ast/XQInlineFunction.cpp ./src/ast/XQSequence.cpp ./src/ast/LetTuple.cpp ./src/ast/WhereTuple.cpp ./src/ast/XQPIConstructor.cpp ./src/ast/XQFunctionDeref.cpp ./src/ast/StaticType.cpp ./src/ast/ContextTuple.cpp ./src/ast/XQGlobalVariable.cpp ./src/ast/OrderByTuple.cpp ./src/ast/ForTuple.cpp ./src/ast/XQFunction.cpp ./src/ast/CountTuple.cpp ./src/ast/XQFunctionConversion.cpp ./src/ast/XQApplyTemplates.cpp ./src/ast/XQCommentConstructor.cpp ./src/ast/XQCastableAs.cpp ./src/ast/XQIf.cpp ./src/ast/XQContextItem.cpp ./src/ast/XQDOMConstructor.cpp ./src/ast/ASTNodeImpl.cpp ./src/ast/TupleNode.cpp ./src/ast/XQNav.cpp ./src/ast/XQEffectiveBooleanValue.cpp ./src/ast/XQDocumentOrder.cpp ./src/ast/XQFunctionCall.cpp ./src/ast/XQValidate.cpp ./src/ast/ConvertFunctionArg.cpp ./src/ast/XQPartialApply.cpp ./src/ast/XQAnalyzeString.cpp ./src/axis/NodeTest.cpp ./src/fulltext/FTContent.cpp ./src/fulltext/FTOrder.cpp ./src/fulltext/DefaultTokenStore.cpp ./src/fulltext/DefaultTokenizer.cpp ./src/fulltext/FTWords.cpp ./src/fulltext/FTOr.cpp ./src/fulltext/FTContains.cpp ./src/fulltext/FTScope.cpp ./src/fulltext/FTWindow.cpp ./src/fulltext/FTMildnot.cpp ./src/fulltext/FTAnd.cpp ./src/fulltext/FTUnaryNot.cpp ./src/fulltext/FTDistance.cpp ./src/framework/ProxyMemoryManager.cpp ./src/framework/XPath2MemoryManagerImpl.cpp ./src/framework/StringPool.cpp ./src/framework/BaseMemoryManager.cpp ./src/framework/ReferenceCounted.cpp ./src/xqc/XQillaXQCExpression.cpp ./src/xqc/XQillaXQCStaticContext.cpp ./src/xqc/XQillaXQCDynamicContext.cpp ./src/xqc/XQillaXQCImplementation.cpp ./src/xqc/XQillaXQCSequence.cpp ./src/schema/SequenceType.cpp ./src/schema/FaxppDocumentCacheImpl.cpp ./src/schema/AnyAtomicTypeDatatypeValidator.cpp ./src/schema/DocumentCacheImpl.cpp ./src/schema/SchemaValidatorFilter.cpp ./src/optimizer/Optimizer.cpp ./src/optimizer/StaticTyper.cpp ./src/optimizer/ASTVisitor.cpp ./src/optimizer/ASTReleaser.cpp ./src/optimizer/ASTCopier.cpp ./src/optimizer/QueryPathNode.cpp ./src/optimizer/QueryPathTreeGenerator.cpp ./src/optimizer/ASTToXML.cpp ./src/optimizer/PartialEvaluator.cpp ./src/xqts/TestSuiteRunner.cpp ./src/xqts/TestSuiteParser.cpp ./src/xqts/TestSuiteResultListener.cpp ./src/items/Numeric.cpp ./src/items/DatatypeFactory.cpp ./src/items/AnyAtomicType.cpp ./src/items/DateOrTimeType.cpp ./src/items/DatatypeLookup.cpp ./src/items/Timezone.cpp ./src/items/ATUntypedAtomic.cpp ./src/items/impl/ATUntypedAtomicImpl.cpp ./src/items/impl/FunctionRefImpl.cpp ./src/items/impl/ATStringOrDerivedImpl.cpp ./src/items/impl/ATDateTimeOrDerivedImpl.cpp ./src/items/impl/ATDurationOrDerivedImpl.cpp ./src/items/impl/ATAnySimpleTypeImpl.cpp ./src/items/impl/ATTimeOrDerivedImpl.cpp ./src/items/impl/ATGYearOrDerivedImpl.cpp ./src/items/impl/ATFloatOrDerivedImpl.cpp ./src/items/impl/ATGMonthOrDerivedImpl.cpp ./src/items/impl/ATGDayOrDerivedImpl.cpp ./src/items/impl/ATBooleanOrDerivedImpl.cpp ./src/items/impl/ATQNameOrDerivedImpl.cpp ./src/items/impl/ATDoubleOrDerivedImpl.cpp ./src/items/impl/ATAnyURIOrDerivedImpl.cpp ./src/items/impl/ATGYearMonthOrDerivedImpl.cpp ./src/items/impl/ATNotationOrDerivedImpl.cpp ./src/items/impl/ATHexBinaryOrDerivedImpl.cpp ./src/items/impl/ATBase64BinaryOrDerivedImpl.cpp ./src/items/impl/ATDecimalOrDerivedImpl.cpp ./src/items/impl/ATGMonthDayOrDerivedImpl.cpp ./src/items/impl/ATDateOrDerivedImpl.cpp ./src/items/Item.cpp ./src/items/Node.cpp ./src/items/ATDurationOrDerived.cpp ./src/lexer/XSLT2Lexer.cpp ./src/lexer/XQLexer.cpp ./src/lexer/XQLexer2.cpp ./src/simple-api/XQilla.cpp ./src/simple-api/XQQuery.cpp ./src/utils/UTF8Str.cpp ./src/utils/XMLChCompare.cpp ./src/utils/XStr.cpp ./src/utils/DelayedModule.cpp ./src/utils/ContextUtils.cpp ./src/utils/UnicodeTransformer.cpp ./src/utils/NumUtils.cpp ./src/utils/XPath2Utils.cpp ./src/utils/XPath2NSUtils.cpp ./src/utils/DateUtils.cpp ./src/utils/XQillaPlatformUtils.cpp ./src/mapm/mapm_mt.cpp ./src/mapm/m_apm.cpp ./src/xerces/XercesNodeImpl.cpp ./src/xerces/AncestorAxis.cpp ./src/xerces/FollowingAxis.cpp ./src/xerces/XercesURIResolver.cpp ./src/xerces/AttributeAxis.cpp ./src/xerces/NamespaceAxis.cpp ./src/xerces/DescendantOrSelfAxis.cpp ./src/xerces/XercesConfiguration.cpp ./src/xerces/PrecedingAxis.cpp ./src/xerces/ParentAxis.cpp ./src/xerces/PrecedingSiblingAxis.cpp ./src/xerces/ChildAxis.cpp ./src/xerces/DescendantAxis.cpp ./src/xerces/Axis.cpp ./src/xerces/XercesUpdateFactory.cpp ./src/xerces/AncestorOrSelfAxis.cpp ./src/xerces/XercesSequenceBuilder.cpp ./src/xerces/FollowingSiblingAxis.cpp ./src/parser/XQParser.cpp ./src/parser/QName.cpp ./src/functions/FunctionMinutesFromTime.cpp ./src/functions/FunctionWords.cpp ./src/functions/FunctionMonthFromDateTime.cpp ./src/functions/FunctionLocalNameFromQName.cpp ./src/functions/FunctionDistinctValues.cpp ./src/functions/FunctionMonthsFromDuration.cpp ./src/functions/FunctionCos.cpp ./src/functions/FunctionTrace.cpp ./src/functions/FunctionTimezoneFromDate.cpp ./src/functions/FunctionCodepointsToString.cpp ./src/functions/FunctionMinutesFromDateTime.cpp ./src/functions/FunctionYearFromDate.cpp ./src/functions/FunctionStaticBaseURI.cpp ./src/functions/BuiltInModules.cpp ./src/functions/FunctionAtan.cpp ./src/functions/FunctionCurrentDateTime.cpp ./src/functions/FunctionAdjustTimeToTimezone.cpp ./src/functions/FunctionCeiling.cpp ./src/functions/FunctionExplain.cpp ./src/functions/FunctionImplicitTimezone.cpp ./src/functions/FunctionStartsWith.cpp ./src/functions/FunctionLowerCase.cpp ./src/functions/FunctionString.cpp ./src/functions/FunctionSentences.cpp ./src/functions/FunctionYearsFromDuration.cpp ./src/functions/FunctionNamespaceURIFromQName.cpp ./src/functions/XQillaFunction.cpp ./src/functions/FunctionParseHTML.cpp ./src/functions/FunctionDayFromDate.cpp ./src/functions/FunctionId.cpp ./src/functions/FunctionEmpty.cpp ./src/functions/FunctionUnparsedText.cpp ./src/functions/FunctionAdjustDateTimeToTimezone.cpp ./src/functions/FunctionTimezoneFromTime.cpp ./src/functions/FunctionRoot.cpp ./src/functions/FunctionCount.cpp ./src/functions/FunctionPosition.cpp ./src/functions/FunctionCurrentDate.cpp ./src/functions/FunctionFunctionArity.cpp ./src/functions/EXSLTMathFunction.cpp ./src/functions/FunctionRegexGroup.cpp ./src/functions/FunctionError.cpp ./src/functions/FunctionSerializeJSON.cpp ./src/functions/FunctionTimezoneFromDateTime.cpp ./src/functions/FunctionHead.cpp ./src/functions/FunctionStringLength.cpp ./src/functions/FunctionFloor.cpp ./src/functions/FunctionResolveURI.cpp ./src/functions/FunctionLog.cpp ./src/functions/FunctionContains.cpp ./src/functions/FunctionMatches.cpp ./src/functions/FunctionMonthFromDate.cpp ./src/functions/FunctionSecondsFromTime.cpp ./src/functions/FunctionSubstring.cpp ./src/functions/FunctionDateTime.cpp ./src/functions/FunctionCollection.cpp ./src/functions/FunctionConcat.cpp ./src/functions/FunctionParseXML.cpp ./src/functions/FunctionAnalyzeString.cpp ./src/functions/FunctionTime.cpp ./src/functions/FunctionDocument.cpp ./src/functions/FunctionCompare.cpp ./src/functions/FunctionTokenize.cpp ./src/functions/FunctionSecondsFromDuration.cpp ./src/functions/FunctionSignature.cpp ./src/functions/FunctionHoursFromDateTime.cpp ./src/functions/FunctionDayFromDateTime.cpp ./src/functions/FunctionAsin.cpp ./src/functions/FunctionUpperCase.cpp ./src/functions/FunctionMinutesFromDuration.cpp ./src/functions/RegExpFunction.cpp ./src/functions/FunctionCurrentTime.cpp ./src/functions/FunctionYearFromDateTime.cpp ./src/functions/FunctionLast.cpp ./src/functions/FunctionLookup.cpp ./src/functions/FunctionDaysFromDuration.cpp ./src/functions/XQUserFunction.cpp ./src/functions/FunctionHoursFromTime.cpp ./src/functions/FunctionNilled.cpp ./src/functions/FunctionLang.cpp ./src/functions/FunctionDoc.cpp ./src/functions/FunctionParseJSON.cpp ./src/functions/FunctionFunctionName.cpp ./src/functions/FunctionEndsWith.cpp ./src/functions/FunctionDocAvailable.cpp ./src/functions/FunctionDefaultCollation.cpp ./src/functions/FunctionNormalizeUnicode.cpp ./src/functions/FunctionAbs.cpp ./src/functions/FunctionStringToCodepoints.cpp ./src/functions/FunctionPower.cpp #./src/functions/FunctionSubstringBeforeAfter.cpp ./src/functions/FunctionUnordered.cpp ./src/functions/FunctionNodeName.cpp ./src/functions/FunctionSin.cpp ./src/functions/FunctionPrefixFromQName.cpp ./src/functions/FunctionAdjustDateToTimezone.cpp ./src/functions/FunctionQName.cpp ./src/functions/FunctionRoundHalfToEven.cpp ./src/functions/FunctionNot.cpp ./src/functions/FunctionReplace.cpp ./src/functions/FunctionBaseURI.cpp ./src/functions/FunctionExp.cpp ./src/functions/ExternalFunction.cpp ./src/functions/FunctionLocalname.cpp ./src/functions/FuncFactory.cpp ./src/functions/FunctionNamespaceUri.cpp ./src/functions/FunctionSecondsFromDateTime.cpp ./src/functions/FunctionHoursFromDuration.cpp ./src/functions/FunctionDocumentURI.cpp ./src/functions/FunctionNumber.cpp ./src/functions/FunctionRound.cpp ./src/functions/FunctionAcos.cpp ./src/functions/FunctionIdref.cpp ./src/functions/FunctionName.cpp ./src/functions/FunctionCaseFold.cpp ./src/functions/FunctionSqrt.cpp ./src/functions/FunctionTail.cpp ./src/functions/FunctionTan.cpp ./src/functions/FunctionNormalizeSpace.cpp ./src/debug/DebugHookDecorator.cpp ./src/debug/InputParser.cpp ./src/debug/TupleDebugHook.cpp ./src/debug/InteractiveDebugger.cpp ./src/debug/StackFrame.cpp ./src/debug/ASTDebugHook.cpp ./src/dom-api/impl/XQillaXMLGrammarPoolImpl.cpp ./src/dom-api/impl/XQillaExpressionImpl.cpp ./src/dom-api/impl/XPath2ResultImpl.cpp ./src/dom-api/impl/XPathNamespaceImpl.cpp ./src/dom-api/impl/XQillaDocumentImpl.cpp ./src/dom-api/impl/XQillaBuilderImpl.cpp ./src/dom-api/impl/XPathDocumentImpl.cpp ./src/dom-api/impl/XQillaNSResolverImpl.cpp ./src/dom-api/XQillaImplementation.cpp ./src/dom-api/XPath2NodeSerializer.cpp ./src/runtime/EmptyResult.cpp ./src/runtime/ResultBufferImpl.cpp ./src/runtime/ClosureResult.cpp ./src/runtime/Result.cpp ./src/runtime/SequenceResult.cpp ./src/runtime/ResultImpl.cpp ./src/runtime/Sequence.cpp ./src/runtime/ResultBuffer.cpp ./src/events/NSFixupFilter.cpp ./src/events/EventGenerator.cpp ./src/events/NoInheritFilter.cpp ./src/events/EventSerializer.cpp ./src/events/QueryPathTreeFilter.cpp ./src/events/ContentSequenceFilter.cpp ./src/context/impl/CollationImpl.cpp ./src/context/impl/ItemFactoryImpl.cpp ./src/context/impl/XQContextImpl.cpp ./src/context/impl/XQDynamicContextImpl.cpp ./src/context/impl/VarTypeStoreImpl.cpp ./src/context/impl/VarStoreImpl.cpp ./src/context/impl/VarHashEntryImpl.cpp ./src/context/impl/CodepointCollation.cpp ./src/context/UpdateFactory.cpp ./src/tools/compile-delayed-module.cpp ./src/update/UInsertAfter.cpp ./src/update/UTransform.cpp ./src/update/UInsertAsFirst.cpp ./src/update/UInsertBefore.cpp ./src/update/UInsertInto.cpp ./src/update/UReplace.cpp ./src/update/UDelete.cpp ./src/update/UInsertAsLast.cpp ./src/update/UReplaceValueOf.cpp ./src/update/URename.cpp ./src/update/PendingUpdateList.cpp ./src/update/FunctionPut.cpp ./src/update/UApplyUpdates.cpp ./src/operators/UnaryMinus.cpp ./src/operators/GeneralComp.cpp ./src/operators/Plus.cpp ./src/operators/ComparisonOperator.cpp ./src/operators/And.cpp ./src/operators/OrderComparison.cpp ./src/operators/LessThanEqual.cpp ./src/operators/Minus.cpp ./src/operators/LessThan.cpp ./src/operators/GreaterThan.cpp ./src/operators/Equals.cpp ./src/operators/NodeComparison.cpp ./src/operators/Union.cpp ./src/operators/Or.cpp ./src/operators/NotEquals.cpp ./src/operators/IntegerDivide.cpp ./src/operators/Except.cpp ./src/operators/Divide.cpp ./src/operators/GreaterThanEqual.cpp ./src/operators/Multiply.cpp ./src/operators/ArithmeticOperator.cpp ./src/operators/Mod.cpp ./src/operators/Intersect.cpp ./src/yajl/yajl_encode.c ./src/yajl/yajl.c ./src/yajl/yajl_parser.c ./src/yajl/yajl_buf.c ./src/yajl/yajl_gen.c ./src/yajl/yajl_lex.c ./src/utils/utf8proc/utf8proc.c ./src/mapm/mapm_log.c ./src/mapm/mapm_div.c ./src/mapm/mapmfmul.c ./src/mapm/mapm_add.c ./src/mapm/mapmhsin.c ./src/mapm/mapm_fft.c ./src/mapm/mapmipwr.c ./src/mapm/mapmasin.c ./src/mapm/mapm_rnd.c ./src/mapm/mapmutl2.c ./src/mapm/mapm_fam.c ./src/mapm/mapm_fpf.c ./src/mapm/mapmutil.c ./src/mapm/mapm5sin.c ./src/mapm/mapmstck.c ./src/mapm/mapm_exp.c ./src/mapm/mapm_mul.c ./src/mapm/mapmfact.c ./src/mapm/mapmgues.c ./src/mapm/mapm_flr.c ./src/mapm/mapmcbrt.c ./src/mapm/mapm_lg3.c ./src/mapm/mapm_rcp.c ./src/mapm/mapm_sin.c ./src/mapm/mapmistr.c ./src/mapm/mapmhasn.c ./src/mapm/mapmasn0.c ./src/mapm/mapmrsin.c ./src/mapm/mapm_set.c ./src/mapm/mapmsqrt.c ./src/mapm/mapm_gcd.c ./src/mapm/mapm_lg2.c ./src/mapm/mapmcnst.c ./src/mapm/mapm_pow.c ./src/mapm/mapmpwr2.c ./src/mapm/mapm_cpi.c ) include_directories(include) find_package(XercesC REQUIRED) target_include_directories(xqilla PRIVATE "${XercesC_INCLUDE_DIRS}") target_include_directories(xqilla PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include") if (BUILD_SHARED_LIBS) if(XercesC_LIBRARY_DEBUG) target_link_libraries(xqilla PUBLIC debug "${XercesC_LIBRARY_DEBUG}") endif() target_link_libraries(xqilla PUBLIC optimized "${XercesC_LIBRARY_RELEASE}") endif() install( TARGETS xqilla EXPORT unofficial-xqilla RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/xqilla" CONFIGURATIONS Release DESTINATION include ) install( EXPORT unofficial-xqilla DESTINATION share/unofficial-xqilla FILE unofficial-xqillaConfig.cmake NAMESPACE unofficial::xqilla:: ) ================================================ FILE: ports/xqilla/fix-compare.patch ================================================ diff --git a/include/xqilla/ast/XQDocumentOrder.hpp b/include/xqilla/ast/XQDocumentOrder.hpp index 81189e6..c22280a 100644 --- a/include/xqilla/ast/XQDocumentOrder.hpp +++ b/include/xqilla/ast/XQDocumentOrder.hpp @@ -68,7 +68,7 @@ private: public: uniqueLessThanCompareFn(const DynamicContext *context) : context_(context) {} - bool operator()(const Node::Ptr &first, const Node::Ptr &second) + bool operator()(const Node::Ptr &first, const Node::Ptr &second) const { return first->uniqueLessThan(second, context_); } diff --git a/src/lexer/XQLexer.cpp b/src/lexer/XQLexer.cpp index 69c923f..aed0465 100644 --- a/src/lexer/XQLexer.cpp +++ b/src/lexer/XQLexer.cpp @@ -235,7 +235,7 @@ static void yy_flex_free YY_PROTO(( void * )); #define YY_SKIP_YYWRAP #define yytext_ptr yytext -#include +#include "FlexLexer.h" int yyFlexLexer::yylex() { LexerError( "yyFlexLexer::yylex invoked but %option yyclass used" ); ================================================ FILE: ports/xqilla/portfile.cmake ================================================ vcpkg_download_distfile(ARCHIVE URLS "https://sourceforge.net/projects/xqilla/files/XQilla-2.3.4.tar.gz/download" FILENAME "XQilla-2.3.4.tar.gz" SHA512 f744ff883675887494780d24ecdc94afa394d3795d1544b1c598016b3f936c340ad7cd84529ac12962e3c5ce2f1be928a0cd4f9b9eb70e6645a38b0728cb1994 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE ${ARCHIVE} PATCHES "fix-compare.patch" ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" NO_CHARSET_FLAG ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-xqilla) vcpkg_copy_pdbs() file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/xqilla" RENAME copyright) ================================================ FILE: ports/xqilla/vcpkg.json ================================================ { "name": "xqilla", "version": "2.3.4", "port-version": 5, "description": "XQuery and XPath 2 library", "homepage": "https://sourceforge.net/projects/xqilla/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xerces-c" ] } ================================================ FILE: ports/xsimd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xsimd REF "${VERSION}" SHA512 f1d9bc50482a52a7b1891637c4e054eeafed0503b938ef07050fea8354e215b9483bafb17485b22fca8d715ddd7c79f03af352116487558d610d4e03d7dbcf4e HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xcomplex ENABLE_XTL_COMPLEX ) set(VCPKG_BUILD_TYPE release) # header-only port vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/xsimd/usage ================================================ xsimd provides CMake targets: find_package(xsimd CONFIG REQUIRED) target_link_libraries(main PRIVATE xsimd) ================================================ FILE: ports/xsimd/vcpkg.json ================================================ { "name": "xsimd", "version": "14.0.0", "description": "Modern, portable C++ wrappers for SIMD intrinsics", "homepage": "https://github.com/xtensor-stack/xsimd", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "xcomplex": { "description": "xtl complex support", "dependencies": [ "xtl" ] } } } ================================================ FILE: ports/xtensor/fix-find-tbb-and-install-destination.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 38b5ba17..ccf71c51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,8 +86,8 @@ if(XTENSOR_USE_XSIMD) endif() if(XTENSOR_USE_TBB) - set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") - find_package(TBB REQUIRED) + #set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake/") + find_package(TBB CONFIG REQUIRED) message(STATUS "Found intel TBB: ${TBB_INCLUDE_DIRS}") endif() @@ -272,7 +272,7 @@ export(EXPORT ${PROJECT_NAME}-targets install(DIRECTORY ${XTENSOR_INCLUDE_DIR}/xtensor DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -set(XTENSOR_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}" CACHE +set(XTENSOR_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for xtensorConfig.cmake") configure_package_config_file(${PROJECT_NAME}Config.cmake.in @@ -299,7 +299,7 @@ configure_file(${PROJECT_NAME}.pc.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" - DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig/") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/") install(DIRECTORY ${XTENSOR_TAGFILES_DIR} DESTINATION ${XTENSOR_DATA_DIR}) ================================================ FILE: ports/xtensor/fix-find-xsimd.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c93655..f02dc48 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,7 +69,12 @@ if(XTENSOR_USE_XSIMD) message(STATUS "Found xsimd v${xsimd_VERSION}") endif() else() - find_package(xsimd ${xsimd_REQUIRED_VERSION} REQUIRED) + find_package(xsimd CONFIG REQUIRED) + if(${xsimd_VERSION} GREATER_EQUAL ${xsimd_REQUIRED_VERSION}) + set(xsimd_REQUIRED_VERSION ${xsimd_VERSION}) + else() + message(ERROR "Mismatch xsimd versions. Found '${xsimd_VERSION}' but requires: '${xsimd_REQUIRED_VERSION}'") + endif() message(STATUS "Found xsimd: ${xsimd_INCLUDE_DIRS}/xsimd") endif() endif() diff --git a/xtensorConfig.cmake.in b/xtensorConfig.cmake.in index ec72abb..7825612 100644 --- a/xtensorConfig.cmake.in +++ b/xtensorConfig.cmake.in @@ -25,7 +25,7 @@ if(NOT TARGET @PROJECT_NAME@) endif() if(XTENSOR_USE_XSIMD) - find_dependency(xsimd @xsimd_REQUIRED_VERSION@) + find_dependency(xsimd @xsimd_REQUIRED_VERSION@ CONFIG) target_link_libraries(@PROJECT_NAME@ INTERFACE xsimd) target_compile_definitions(@PROJECT_NAME@ INTERFACE XTENSOR_USE_XSIMD) endif() ================================================ FILE: ports/xtensor/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xtensor REF "${VERSION}" SHA512 3f3fe2391df91518cfef4983ff66bf3b79940136582bb99c6270f87481bf9d2cc15605b13f9b70b6ee9a7a89b389037dd2b26362fcae0fdc49f5204872ee5291 HEAD_REF master PATCHES fix-find-tbb-and-install-destination.patch fix-find-xsimd.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xsimd XTENSOR_USE_XSIMD tbb XTENSOR_USE_TBB ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DXTENSOR_ENABLE_ASSERT=OFF -DXTENSOR_CHECK_DIMENSION=OFF -DBUILD_TESTS=OFF -DBUILD_BENCHMARK=OFF -DDOWNLOAD_GTEST=OFF -DDOWNLOAD_GBENCHMARK=OFF -DDEFAULT_COLUMN_MAJOR=OFF -DDISABLE_VS2017=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xtensor/vcpkg.json ================================================ { "name": "xtensor", "version": "0.27.1", "description": "C++ tensors with broadcasting and lazy computing", "homepage": "https://github.com/xtensor-stack/xtensor", "license": "BSD-3-Clause", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtl" ], "features": { "tbb": { "description": "xtensor with tbb support", "dependencies": [ "tbb" ] }, "xsimd": { "description": "xtensor with xsimd support", "dependencies": [ "xsimd" ] } } } ================================================ FILE: ports/xtensor-blas/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xtensor-blas REF "${VERSION}" SHA512 4fcc5e485a2ddd9fee48dda75a38b976355c40a5e4722d4bc1e9fefa231c6c38f97afffeaef510c6c2290cf1f29cbbae889a131d121278055d23374d72d09712 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS_RELEASE -DCXXBLAS_DEBUG=OFF OPTIONS_DEBUG -DCXXBLAS_DEBUG=ON OPTIONS -DXTENSOR_USE_FLENS_BLAS=OFF -DBUILD_TESTS=OFF -DBUILD_BENCHMARK=OFF ) vcpkg_cmake_install() file(REMOVE "${CURRENT_PACKAGES_DIR}/include/xtensor-blas/xblas_config_cling.hpp") vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/xflens/cxxblas/netlib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xtensor-blas/vcpkg.json ================================================ { "name": "xtensor-blas", "version": "0.23.0", "description": "BLAS extension to xtensor", "homepage": "https://github.com/xtensor-stack/xtensor-blas", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtensor" ] } ================================================ FILE: ports/xtensor-fftw/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xtensor-fftw REF "${VERSION}" SHA512 278676eb92767677622bac961b65be599804ea86eba4df4cd72f237f9c9f8f2d20b7daec045bde6c09d7c72e29f5c5e01e6abda7350ac706543f34434c8d40f2 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCOMPILE_WARNINGS=OFF -DBUILD_TESTS=OFF -DDOWNLOAD_GTEST=OFF -DBUILD_BENCHMARK=OFF -DDOWNLOAD_GBENCHMARK=OFF -DBENCHMARK_ENABLE_TESTING=OFF -DDEFAULT_COLUMN_MAJOR=OFF -DCOVERAGE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xtensor-fftw/vcpkg.json ================================================ { "name": "xtensor-fftw", "version": "0.2.6", "description": "FFTW bindings for the xtensor C++14 multi-dimensional array library", "homepage": "https://github.com/xtensor-stack/xtensor-fftw", "dependencies": [ "fftw3", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtensor" ] } ================================================ FILE: ports/xtensor-io/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xtensor-io REF ffada938383b0f24c9e0b07cea7d5780057e1d96 # 0.13.0 SHA512 ce5d085e500ef7043eb51538cab9a53c857983ac43e392cd65958c76fcde3ddb00161097cb70d334fa7d12af12e8109bb958b51f39afd9eeb60bb3421424058e HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DBUILD_TESTS=OFF -DDOWNLOAD_GTEST=OFF -DDOWNLOAD_GBENCHMARK=OFF -DHAVE_HighFive=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) foreach(bit "64" "32" "") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/xtensor-io/xtensor_io_config.hpp" "#pragma cling add_library_path(\"${CURRENT_PACKAGES_DIR}/lib${bit}\")" "") endforeach() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/xtensor-io/vcpkg.json ================================================ { "name": "xtensor-io", "version": "0.13.0", "port-version": 1, "description": "xtensor plugin to read and write images, audio files, numpy (compressed) npz and HDF5", "homepage": "https://github.com/xtensor-stack/xtensor-io", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "xtensor", "xtl" ] } ================================================ FILE: ports/xtl/fix-fixup-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 796dc46..d2be91f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ message(STATUS "xtl v${${PROJECT_NAME}_VERSION}") # ============ if(NOT TARGET nlohmann_json) - find_package(nlohmann_json QUIET) + find_package(nlohmann_json QUIET REQUIRED) endif() # Build @@ -80,6 +80,7 @@ set_target_properties(xtl PUBLIC_HEADER "${XTL_HEADERS}") target_compile_features(xtl INTERFACE cxx_std_17) +target_link_libraries(xtl INTERFACE nlohmann_json::nlohmann_json) option(BUILD_TESTS "xtl test suite" OFF) option(DOWNLOAD_GTEST "build gtest from downloaded sources" OFF) @@ -104,7 +105,7 @@ install(TARGETS xtl export(EXPORT ${PROJECT_NAME}-targets FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake") -set(XTL_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}" CACHE +set(XTL_CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" CACHE STRING "install path for xtlConfig.cmake") configure_package_config_file(${PROJECT_NAME}Config.cmake.in @@ -133,4 +134,4 @@ configure_file(${PROJECT_NAME}.pc.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" - DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig/") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/") diff --git a/xtlConfig.cmake.in b/xtlConfig.cmake.in index 936eef1..ef392c6 100644 --- a/xtlConfig.cmake.in +++ b/xtlConfig.cmake.in @@ -13,6 +13,8 @@ # xtl_INCLUDE_DIRS - the directory containing xtl headers # xtl_LIBRARY - empty +include(CMakeFindDependencyMacro) +find_dependency(nlohmann_json) @PACKAGE_INIT@ if(NOT TARGET @PROJECT_NAME@) ================================================ FILE: ports/xtl/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO xtensor-stack/xtl REF "${VERSION}" SHA512 d7155d5fbaaeb54caf799823e2020f1bcbb6eaeaa2be3b22625f9056faf001847c6ef749bc14f68feccec924a1faf551f27c4ee7f6f33da5d2dcfbc112824069 HEAD_REF master PATCHES fix-fixup-cmake.patch ) set(VCPKG_BUILD_TYPE release) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_TESTS=OFF -DDOWNLOAD_GTEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/xtl) vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xtl/vcpkg.json ================================================ { "name": "xtl", "version": "0.8.2", "description": "The x template library", "homepage": "https://github.com/xtensor-stack/xtl", "license": "BSD-3-Clause", "dependencies": [ "nlohmann-json", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/xtrans/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS) message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet") set(VCPKG_POLICY_EMPTY_PACKAGE enabled) else() vcpkg_from_gitlab( GITLAB_URL "https://gitlab.freedesktop.org/xorg" OUT_SOURCE_PATH SOURCE_PATH REPO "lib/libxtrans" REF "xtrans-${VERSION}" SHA512 c7037cb6d2fb641486a43c9203949edec2038735ba758f8556add63598dbb3205166a2ec272700639884b1952642c171806e3dab566722cadd4c71ca98c0a1bf HEAD_REF master PATCHES win32.patch symbols.patch ) set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"") vcpkg_make_configure( SOURCE_PATH ${SOURCE_PATH} AUTORECONF ) vcpkg_make_install() file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/xorg") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}") # the include folder is moved since it contains source files. It is not meant as a traditional include folder but as a shared files folder for different x libraries. file(RENAME "${CURRENT_PACKAGES_DIR}/include" "${CURRENT_PACKAGES_DIR}/share/${PORT}/include") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/pkgconfig/" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/aclocal/" "${CURRENT_PACKAGES_DIR}/share/xorg/aclocal") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/${PORT}/pkgconfig" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/" "${CURRENT_PACKAGES_DIR}/share/xorg/debug") endif() vcpkg_fixup_pkgconfig() # must be called after files have been moved vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xtrans.pc" "includedir=\${prefix}/include" "includedir=\${prefix}/share/${PORT}/include") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xtrans.pc" "includedir=\${prefix}/../include" "includedir=\${prefix}/../share/${PORT}/include") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "") endif() ================================================ FILE: ports/xtrans/symbols.patch ================================================ diff --git a/Xtransutil.c b/Xtransutil.c index 2aa4686..57c6ce3 100644 --- a/Xtransutil.c +++ b/Xtransutil.c @@ -60,6 +60,10 @@ from The Open Group. #ifdef WIN32 #include #include +#ifdef _MSC_VER +# include +# define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#endif #endif #if defined(IPv6) && !defined(AF_INET6) ================================================ FILE: ports/xtrans/vcpkg.json ================================================ { "name": "xtrans", "version": "1.6.0", "port-version": 1, "description": "xtrans - X Network Transport layer shared code", "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxtrans", "license": null, "dependencies": [ { "name": "vcpkg-make", "host": true }, "xorg-macros" ] } ================================================ FILE: ports/xtrans/win32.patch ================================================ diff --git a/Xtrans.h b/Xtrans.h index fbf385e01..e52e7cba2 100644 --- a/Xtrans.h +++ b/Xtrans.h @@ -50,6 +50,10 @@ from The Open Group. #ifndef _XTRANS_H_ #define _XTRANS_H_ +#if defined(_WIN32) && !defined(WIN32) +# define WIN32 _WIN32 +#endif + #include #include #include diff --git a/Xtransint.h b/Xtransint.h index 2156bd52f..735b54301 100644 --- a/Xtransint.h +++ b/Xtransint.h @@ -72,7 +72,7 @@ from The Open Group. # define XTRANSDEBUG 1 #endif -#ifdef WIN32 +#if defined(WIN32) || defined(_WIN32) # define _WILLWINSOCK_ #endif diff --git a/Xtranssock.c b/Xtranssock.c index c29390eaa..f2ef365cc 100644 --- a/Xtranssock.c +++ b/Xtranssock.c @@ -74,6 +74,10 @@ from the copyright holders. #include #endif +#if defined(_WIN32) && !defined(WIN32) +# define WIN32 _WIN32 +#endif + #ifndef WIN32 #if defined(TCPCONN) || defined(UNIXCONN) diff --git a/Xtransutil.c b/Xtransutil.c index f15be243c..cc67315e6 100644 --- a/Xtransutil.c +++ b/Xtransutil.c @@ -54,6 +54,10 @@ from The Open Group. * the internal implementation. */ +#if defined(_WIN32) && !defined(WIN32) +# define WIN32 _WIN32 +#endif + #ifdef XTHREADS #include #endif ================================================ FILE: ports/xxhash/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Cyan4973/xxHash REF "v${VERSION}" SHA512 8b5c8b9aad4e869f28310b12cc314037feda81d92f26c23eaecdb35dc65042ca2e65f2e9606033e62a31bcc737a9a950500ffcbdb8677d6ab20e820ea14f2b79 HEAD_REF dev ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES xxhsum XXHASH_BUILD_XXHSUM ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/cmake_unofficial" OPTIONS ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/xxHash) if("xxhsum" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES xxhsum AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/xxhash/vcpkg.json ================================================ { "name": "xxhash", "version": "0.8.3", "description": "Extremely fast hash algorithm", "homepage": "https://github.com/Cyan4973/xxHash", "license": "BSD-2-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "xxhsum": { "description": "Build the xxhsum binary" } } } ================================================ FILE: ports/yajl/cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c0a9be..cbec22f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ ENDIF (NOT CMAKE_BUILD_TYPE) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") -IF (WIN32) +IF (WIN32 AND FALSE) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") ADD_DEFINITIONS(-DWIN32) SET(linkFlags "/PDB:NONE /INCREMENTAL:NO /OPT:NOREF /OPT:NOICF") @@ -46,7 +46,8 @@ IF (WIN32) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996 /wd4255 /wd4130 /wd4100 /wd4711") SET(CMAKE_C_FLAGS_DEBUG "/D DEBUG /Od /Z7") SET(CMAKE_C_FLAGS_RELEASE "/D NDEBUG /O2") -ELSE (WIN32) +endif() +if (NOT WIN32) SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") IF(CMAKE_COMPILER_IS_GNUCC) INCLUDE(CheckCCompilerFlag) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 99cf9e9..454482a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -78,7 +78,7 @@ INCLUDE_DIRECTORIES(${incDir}/..) # at build time you may specify the cmake variable LIB_SUFFIX to handle # 64-bit systems which use 'lib64' INSTALL(TARGETS yajl - RUNTIME DESTINATION lib${LIB_SUFFIX} + RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX}) diff --git a/verify/CMakeLists.txt b/verify/CMakeLists.txt index 2f39008..967fca1 100644 --- a/verify/CMakeLists.txt +++ b/verify/CMakeLists.txt @@ -29,9 +29,7 @@ ADD_EXECUTABLE(json_verify ${SRCS}) TARGET_LINK_LIBRARIES(json_verify yajl_s) # copy in the binary -GET_TARGET_PROPERTY(binPath json_verify LOCATION) - ADD_CUSTOM_COMMAND(TARGET json_verify POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${binPath} ${binDir}) + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${binDir}) INSTALL(TARGETS json_verify RUNTIME DESTINATION bin) diff --git a/reformatter/CMakeLists.txt b/reformatter/CMakeLists.txt index 52a9bee..267d02e 100644 --- a/reformatter/CMakeLists.txt +++ b/reformatter/CMakeLists.txt @@ -35,9 +35,7 @@ IF (NOT WIN32) ENDIF (NOT WIN32) # copy the binary into the output directory -GET_TARGET_PROPERTY(binPath json_reformat LOCATION) - ADD_CUSTOM_COMMAND(TARGET json_reformat POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${binPath} ${binDir}) + COMMAND ${CMAKE_COMMAND} -E copy_if_different $ ${binDir}) INSTALL(TARGETS json_reformat RUNTIME DESTINATION bin) ================================================ FILE: ports/yajl/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO lloyd/yajl REF a0ecdde0c042b9256170f2f8890dd9451a4240aa #2.1.0 SHA512 cf0279fdbdc21d07bc0f2d409f1dddb39fd2ad62ab9872e620f46de4753958f8c59e44ef2ee734547f0f25f9490bada8c9e97dcc1a4b14b25d3e7a7254f8e1f3 HEAD_REF master PATCHES cmake.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() if (EXISTS "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/yajl.pc") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/share/pkgconfig/yajl.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/yajl.pc") endif() if (EXISTS "${CURRENT_PACKAGES_DIR}/share/pkgconfig/yajl.pc") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") file(RENAME "${CURRENT_PACKAGES_DIR}/share/pkgconfig/yajl.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/yajl.pc") endif() vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/pkgconfig") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") file(GLOB SHAREDOBJECTS "${CURRENT_PACKAGES_DIR}/lib/libyajl.so*" "${CURRENT_PACKAGES_DIR}/debug/lib/libyajl.so*") file(REMOVE_RECURSE "${SHAREDOBJECTS}" "${CURRENT_PACKAGES_DIR}/lib/yajl.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/yajl.lib") else() file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe" "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe") file(REMOVE_RECURSE ${EXES} "${CURRENT_PACKAGES_DIR}/lib/yajl_s.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/yajl_s.lib" "${CURRENT_PACKAGES_DIR}/lib/libyajl_s.a" "${CURRENT_PACKAGES_DIR}/debug/lib/libyajl_s.a" ) endif() file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/yajl" RENAME copyright) ================================================ FILE: ports/yajl/vcpkg.json ================================================ { "name": "yajl", "version": "2.1.0", "port-version": 5, "description": "Yet Another JSON Library", "homepage": "https://github.com/lloyd/yajl", "license": "ISC", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/yalantinglibs/portfile.cmake ================================================ set(VCPKG_BUILD_TYPE release) # header-only vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO alibaba/yalantinglibs REF "${VERSION}" SHA512 4431c4fea7af80b81b35989879d47ad09abca31789f8e5bc77aae85824b1bd7c6d3de57c5421820670cbdd2313dbc9ea56ad8bf3f4dc8751d51d9ce7212985b0 HEAD_REF main PATCHES use-external-libs.patch ) # Remove the vendored iguana and cinatra sources file(REMOVE_RECURSE "${SOURCE_PATH}/include/ylt/standalone") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_BENCHMARK=OFF -DBUILD_EXAMPLES=OFF -DBUILD_UNIT_TESTS=OFF -DINSTALL_THIRDPARTY=OFF -DINSTALL_STANDALONE=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/yalantinglibs") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/yalantinglibs/usage ================================================ yalantinglibs provides CMake targets: find_package(yalantinglibs CONFIG REQUIRED) target_link_libraries(main PRIVATE yalantinglibs::yalantinglibs) ================================================ FILE: ports/yalantinglibs/use-external-libs.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cc8d32..1259d1f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,11 @@ project(yaLanTingLibs LANGUAGES CXX ) +find_path(IGUANA_INCLUDE_DIRS "iguana/common.hpp") +include_directories(${IGUANA_INCLUDE_DIRS}) +find_path(CINATRA_INCLUDE_DIRS "cinatra.hpp") +include_directories(${CINATRA_INCLUDE_DIRS}) + # load pack finder list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Find/) diff --git a/cmake/install.cmake b/cmake/install.cmake index 956195f..ad9df4e 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -24,7 +24,6 @@ target_include_directories(yalantinglibs INTERFACE $ $ $ - $ ) install(TARGETS yalantinglibs EXPORT yalantinglibsTargets ================================================ FILE: ports/yalantinglibs/vcpkg.json ================================================ { "name": "yalantinglibs", "version": "0.5.8", "description": "A Collection of C++20 libraries, include struct_pack, struct_json, struct_xml, struct_yaml, struct_pb, easylog, coro_rpc, coro_http and async_simple", "homepage": "https://github.com/alibaba/yalantinglibs", "license": "Apache-2.0", "supports": "!android", "dependencies": [ { "name": "asio", "version>=": "1.24.0" }, { "name": "async-simple", "version>=": "1.3" }, "cinatra", { "name": "frozen", "version>=": "1.2.0" }, { "name": "iguana", "version>=": "1.0.9" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/yaml-cpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jbeder/yaml-cpp REF "yaml-cpp-${VERSION}" SHA512 59f730e8c5744f1ccd542c1144db8d4d949012f72aab0b84ba4a818db25a0f847569b61238ab72ed5b0b2e9482b8d5007651b7185f4ca9e99045d5160259b565 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" YAML_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DYAML_CPP_BUILD_TOOLS=OFF -DYAML_CPP_BUILD_TESTS=OFF -DYAML_BUILD_SHARED_LIBS=${YAML_BUILD_SHARED_LIBS} -DYAML_CPP_INSTALL_CMAKEDIR=share/${PORT} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/yaml-cpp.pc" "-lyaml-cpp" "-lyaml-cppd") endif() vcpkg_fixup_pkgconfig() # Remove debug include file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/yaml-cpp/dll.h" "#ifdef YAML_CPP_STATIC_DEFINE" "#if 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/yaml-cpp/dll.h" "#ifdef YAML_CPP_STATIC_DEFINE" "#if 1") endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/yaml-cpp/vcpkg.json ================================================ { "name": "yaml-cpp", "version-semver": "0.9.0", "description": "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec.", "homepage": "https://github.com/jbeder/yaml-cpp", "documentation": "https://codedocs.xyz/jbeder/yaml-cpp/index.html", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/yandex-disk-cpp-client/portfile.cmake ================================================ set(VCPKG_POLICY_ALLOW_DEBUG_SHARE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Krasnovvvvv/yandex-disk-cpp-client REF v1.0.3 SHA512 de0e68aa0419f9918afea9fa7741477941d63c21e08cbe50d27a5fe9de7160a7a1f5ce4d307c906001aa757f82951295189c5d213b788987449d1a1b102da945 HEAD_REF main ) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( PACKAGE_NAME "yandex-disk-cpp-client" CONFIG_PATH "lib/cmake/yandex-disk-cpp-client" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/yandex-disk-cpp-client/usage ================================================ yandex-disk-cpp-client provides CMake targets: find_package(yandex-disk-cpp-client CONFIG REQUIRED) target_link_libraries(your_target PRIVATE yandex-disk-cpp-client::yandex-disk-cpp-client) ================================================ FILE: ports/yandex-disk-cpp-client/vcpkg.json ================================================ { "name": "yandex-disk-cpp-client", "version": "1.0.3", "description": "Modern C++ client for Yandex.Disk REST API", "homepage": "https://github.com/Krasnovvvvv/yandex-disk-cpp-client", "documentation": "https://krasnovvvvv.github.io/yandex-disk-cpp-client/", "license": "MIT", "dependencies": [ "curl", "nlohmann-json", "vcpkg-cmake", "vcpkg-cmake-config" ] } ================================================ FILE: ports/yara/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.8) project(yara C) if(MSVC) add_compile_options(/W3 /wd4005 /wd4996 /wd4018 -D_CRT_SECURE_NO_WARNINGS) else() find_library(HAVE_LIBM NAMES m) endif() find_package(OpenSSL REQUIRED) include_directories( . libyara 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/base64.c libyara/bitmask.c libyara/compiler.c libyara/endian.c libyara/exec.c libyara/exefiles.c libyara/filemap.c libyara/grammar.c libyara/hash.c libyara/hex_grammar.c libyara/hex_lexer.c libyara/lexer.c libyara/libyara.c libyara/mem.c libyara/modules.c libyara/modules/console/console.c libyara/modules/hash/hash.c libyara/modules/math/math.c libyara/modules/macho/macho.c libyara/modules/pe/pe.c libyara/modules/pe/pe_utils.c libyara/modules/pe/authenticode-parser/authenticode.c libyara/modules/pe/authenticode-parser/certificate.c libyara/modules/pe/authenticode-parser/helper.c libyara/modules/pe/authenticode-parser/countersignature.c libyara/modules/pe/authenticode-parser/structs.c libyara/modules/tests/tests.c libyara/modules/time/time.c libyara/modules/string/string.c libyara/notebook.c libyara/object.c libyara/parser.c libyara/proc.c ${PROC_PLATFORM_SOURCE} libyara/re.c libyara/re_grammar.c libyara/re_lexer.c libyara/rules.c libyara/scan.c libyara/scanner.c libyara/sizedstr.c libyara/stack.c libyara/stopwatch.c libyara/stream.c libyara/strutils.c libyara/threading.c # Module elf request new library tlshc(https://github.com/avast/tlshc), the related upstream PR: https://github.com/VirusTotal/yara/pull/1624. # libyara/modules/elf/elf.c # libyara/tlshc/tlsh.c # libyara/tlshc/tlsh_impl.c # libyara/tlshc/tlsh_util.c ) set( yara_sources cli/args.c cli/common.c cli/threading.c cli/yara.c ) set( yarac_sources cli/args.c cli/common.c cli/yarac.c ) find_package(Threads REQUIRED) set( libyara_dependencies OpenSSL::SSL OpenSSL::Crypto Threads::Threads ) if(CMAKE_SYSTEM_NAME MATCHES "Windows") list(APPEND libyara_dependencies Crypt32.lib Ws2_32.lib) endif() if(HAVE_LIBM) list(APPEND libyara_dependencies m) endif() set( libyara_definitions -DHAVE_LIBCRYPTO -D${PROC_PLATFORM_INTERFACE} -DHASH_MODULE ) if(CUCKOO_MODULE) list(APPEND libyara_definitions -DCUCKOO_MODULE) list(APPEND libyara_sources libyara/modules/cuckoo/cuckoo.c) find_package(jansson CONFIG REQUIRED) list(APPEND libyara_dependencies jansson::jansson) endif() if(DOTNET_MODULE) list(APPEND libyara_definitions -DDOTNET_MODULE) list(APPEND libyara_sources libyara/modules/dotnet/dotnet.c libyara/simple_str.c) endif() add_library(libyara ${libyara_sources}) target_link_libraries(libyara PRIVATE ${libyara_dependencies}) target_compile_definitions(libyara PRIVATE ${libyara_definitions}) target_include_directories(libyara INTERFACE $) add_executable(yara ${yara_sources}) add_executable(yarac ${yarac_sources}) target_link_libraries(yarac PRIVATE libyara ${libyara_dependencies}) target_link_libraries(yara PRIVATE libyara ${libyara_dependencies}) install( TARGETS libyara EXPORT unofficial-libyaraTargets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) install(EXPORT unofficial-libyaraTargets NAMESPACE unofficial::libyara:: DESTINATION share/unofficial-libyara ) file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake.in" [[include(CMakeFindDependencyMacro) find_dependency(OpenSSL) find_dependency(Threads) if(@CUCKOO_MODULE@) find_dependency(jansson CONFIG) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-libyaraTargets.cmake") ]]) configure_file("${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake" @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/unofficial-libyara-config.cmake DESTINATION share/unofficial-libyara) if(NOT DISABLE_INSTALL_TOOLS) install ( TARGETS yarac yara RUNTIME DESTINATION tools/yara ) endif() if(NOT DISABLE_INSTALL_HEADERS) install(DIRECTORY libyara/include/ DESTINATION include) endif() ================================================ FILE: ports/yara/Disable-module-elf.patch ================================================ diff --git a/libyara/modules/module_list b/libyara/modules/module_list index 35e848a..e11433e 100644 --- a/libyara/modules/module_list +++ b/libyara/modules/module_list @@ -1,6 +1,8 @@ MODULE(tests) MODULE(pe) +#ifdef DELF_MODULE MODULE(elf) +#endif MODULE(math) MODULE(time) MODULE(console) ================================================ FILE: ports/yara/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO VirusTotal/yara REF "v${VERSION}" SHA512 e71d6e435cb2ad7b5875ccabcfe3abe42e2f37187a22e778867c5c5762134961369c2cbd4bea8da9193d5381af4569e39a50156d4077dc3a23b9a2240b741b60 HEAD_REF master PATCHES # Module elf request new library tlshc(https://github.com/avast/tlshc), the related upstream PR: https://github.com/VirusTotal/yara/pull/1624. Disable-module-elf.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES cuckoo CUCKOO_MODULE dotnet DOTNET_MODULE ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} OPTIONS_DEBUG -DDISABLE_INSTALL_HEADERS=ON -DDISABLE_INSTALL_TOOLS=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libyara) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/yara/vcpkg.json ================================================ { "name": "yara", "version": "4.5.5", "description": "The pattern matching swiss knife", "homepage": "https://github.com/VirusTotal/yara", "license": "BSD-3-Clause", "supports": "!uwp", "dependencies": [ "openssl", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "cuckoo": { "description": "The Cuckoo module enables you to create YARA rules based on behavioral information generated by Cuckoo sandbox.", "dependencies": [ "jansson" ] }, "dotnet": { "description": "The dotnet module allows you to create more fine-grained rules for .NET files by using attributes and features of the .NET file format." } } } ================================================ FILE: ports/yas/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO niXman/yas REF 7.1.0 SHA512 1101BBE0B11FF8FA3B40B1E3030E5E93125FEDC85A90532466C9E6E0708B1C4C38821C86FCAFE153717B66B7107FCB29D0E13E87E68BF2217948A7014FC3BAC0 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/include/yas" DESTINATION "${CURRENT_PACKAGES_DIR}/include") file(INSTALL "${SOURCE_PATH}/include/yas/version.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/yas/vcpkg.json ================================================ { "name": "yas", "version": "7.1.0", "description": "Yet Another Serialization is a header only serialization library", "homepage": "https://github.com/niXman/yas" } ================================================ FILE: ports/yasm/add-feature-tools.patch ================================================ diff --git a/frontends/CMakeLists.txt b/frontends/CMakeLists.txt index 9858b61..b151cc3 100644 --- a/frontends/CMakeLists.txt +++ b/frontends/CMakeLists.txt @@ -1,3 +1,5 @@ +if (BUILD_TOOLS) ADD_SUBDIRECTORY(yasm) ADD_SUBDIRECTORY(tasm) ADD_SUBDIRECTORY(vsyasm) +endif() ================================================ FILE: ports/yasm/cmake-4.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 8df871c..2eafe3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ PROJECT(yasm) -CMAKE_MINIMUM_REQUIRED(VERSION 2.4) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) if (COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif (COMMAND cmake_policy) ================================================ FILE: ports/yasm/fix-cross-build.patch ================================================ diff --git a/cmake/modules/YasmMacros.cmake b/cmake/modules/YasmMacros.cmake index ab1be00..0bd347f 100644 --- a/cmake/modules/YasmMacros.cmake +++ b/cmake/modules/YasmMacros.cmake @@ -58,7 +58,9 @@ macro (YASM_ADD_MODULE _module_NAME) endmacro (YASM_ADD_MODULE) macro (YASM_GENPERF _in_NAME _out_NAME) - get_target_property(_tmp_GENPERF_EXE genperf LOCATION) + if (NOT _tmp_GENPERF_EXE) + set(_tmp_GENPERF_EXE genperf) + endif() add_custom_command( OUTPUT ${_out_NAME} COMMAND ${_tmp_GENPERF_EXE} ${_in_NAME} ${_out_NAME} @@ -68,7 +70,9 @@ macro (YASM_GENPERF _in_NAME _out_NAME) endmacro (YASM_GENPERF) macro (YASM_RE2C _in_NAME _out_NAME) - get_target_property(_tmp_RE2C_EXE re2c LOCATION) + if (NOT _tmp_RE2C_EXE) + set(_tmp_RE2C_EXE re2c) + endif() add_custom_command( OUTPUT ${_out_NAME} COMMAND ${_tmp_RE2C_EXE} ${ARGN} -o ${_out_NAME} ${_in_NAME} @@ -78,7 +82,9 @@ macro (YASM_RE2C _in_NAME _out_NAME) endmacro (YASM_RE2C) macro (YASM_GENMACRO _in_NAME _out_NAME _var_NAME) - get_target_property(_tmp_GENMACRO_EXE genmacro LOCATION) + if (NOT _tmp_GENMACRO_EXE) + set(_tmp_GENMACRO_EXE genmacro) + endif() add_custom_command( OUTPUT ${_out_NAME} COMMAND ${_tmp_GENMACRO_EXE} ${_out_NAME} ${_var_NAME} ${_in_NAME} diff --git a/modules/preprocs/nasm/CMakeLists.txt b/modules/preprocs/nasm/CMakeLists.txt index e10a9dd..4d1bf15 100644 --- a/modules/preprocs/nasm/CMakeLists.txt +++ b/modules/preprocs/nasm/CMakeLists.txt @@ -1,5 +1,8 @@ +if (NOT _tmp_GENVERSION_EXE) add_executable(genversion preprocs/nasm/genversion.c) -get_target_property(_tmp_GENVERSION_EXE genversion LOCATION) +install(TARGETS genversion RUNTIME DESTINATION bin) +set(_tmp_GENVERSION_EXE genversion) +endif() add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.mac COMMAND ${_tmp_GENVERSION_EXE} ${CMAKE_CURRENT_BINARY_DIR}/version.mac diff --git a/tools/genmacro/CMakeLists.txt b/tools/genmacro/CMakeLists.txt index 27ba599..0168494 100644 --- a/tools/genmacro/CMakeLists.txt +++ b/tools/genmacro/CMakeLists.txt @@ -1,3 +1,7 @@ +if (NOT _tmp_GENMACRO_EXE) add_executable(genmacro genmacro.c ) + +install(TARGETS genmacro RUNTIME DESTINATION bin) +endif() \ No newline at end of file diff --git a/tools/genperf/CMakeLists.txt b/tools/genperf/CMakeLists.txt index 6f50989..87d19bc 100644 --- a/tools/genperf/CMakeLists.txt +++ b/tools/genperf/CMakeLists.txt @@ -1,3 +1,4 @@ +if (NOT _tmp_GENPERF_EXE) add_executable(genperf genperf.c perfect.c @@ -6,3 +7,6 @@ add_executable(genperf ../../libyasm/xstrdup.c ) set_target_properties(genperf PROPERTIES COMPILE_FLAGS -DYASM_LIB_DECL=) + +install(TARGETS genperf RUNTIME DESTINATION bin) +endif() \ No newline at end of file diff --git a/tools/re2c/CMakeLists.txt b/tools/re2c/CMakeLists.txt index 7125d49..f2f1a40 100644 --- a/tools/re2c/CMakeLists.txt +++ b/tools/re2c/CMakeLists.txt @@ -1,3 +1,4 @@ +if (NOT _tmp_RE2C_EXE) add_executable(re2c main.c code.c @@ -9,3 +10,6 @@ add_executable(re2c substr.c translate.c ) + +install(TARGETS re2c RUNTIME DESTINATION bin) +endif() \ No newline at end of file ================================================ FILE: ports/yasm/fix-overlay-pdb.patch ================================================ diff --git a/frontends/yasm/CMakeLists.txt b/frontends/yasm/CMakeLists.txt index b11d7f8..b8306b1 100644 --- a/frontends/yasm/CMakeLists.txt +++ b/frontends/yasm/CMakeLists.txt @@ -19,6 +19,7 @@ IF(BUILD_SHARED_LIBS) yasm-plugin.c ) TARGET_LINK_LIBRARIES(yasm libyasm ${LIBDL}) + set_target_properties(yasm PROPERTIES PDB_NAME "yasm-tool") ELSE(BUILD_SHARED_LIBS) ADD_EXECUTABLE(yasm yasm.c ================================================ FILE: ports/yasm/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yasm/yasm REF 009450c7ad4d425fa5a10ac4bd6efbd25248d823 # 1.3.0 plus bugfixes for https://github.com/yasm/yasm/issues/153 SHA512 a542577558676d11b52981925ea6219bffe699faa1682c033b33b7534f5a0dfe9f29c56b32076b68c48f65e0aef7c451be3a3af804c52caa4d4357de4caad83c HEAD_REF master PATCHES add-feature-tools.patch cmake-4.diff fix-cross-build.patch fix-overlay-pdb.patch ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools BUILD_TOOLS ) vcpkg_find_acquire_program(PYTHON3) set(HOST_TOOLS_OPTIONS "") if (VCPKG_CROSSCOMPILING) list(APPEND HOST_TOOLS_OPTIONS "-D_tmp_RE2C_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/re2c${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-D_tmp_GENPERF_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genperf${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-D_tmp_GENMACRO_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genmacro${VCPKG_HOST_EXECUTABLE_SUFFIX}" "-D_tmp_GENVERSION_EXE=${CURRENT_HOST_INSTALLED_DIR}/manual-tools/${PORT}/genversion${VCPKG_HOST_EXECUTABLE_SUFFIX}" ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} ${HOST_TOOLS_OPTIONS} "-DPYTHON_EXECUTABLE=${PYTHON3}" -DENABLE_NLS=OFF -DYASM_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() if (NOT VCPKG_CROSSCOMPILING) vcpkg_copy_tools(TOOL_NAMES re2c genmacro genperf genversion AUTO_CLEAN DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}" ) endif() if(BUILD_TOOLS) vcpkg_copy_tools(TOOL_NAMES vsyasm yasm ytasm AUTO_CLEAN) if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") file(COPY "${CURRENT_PACKAGES_DIR}/bin/yasmstd${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/yasm/vcpkg-port-config.cmake ================================================ set(Z_YASM_TOOL_HELPER_LIST_DIR "${CMAKE_CURRENT_LIST_DIR}") function(yasm_tool_helper) cmake_parse_arguments(PARSE_ARGV 0 arg "APPEND_TO_PATH;PREPEND_TO_PATH" "OUT_VAR" "" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unexpected arguments to yasm_tool_helper: ${arg_UNPARSED_ARGUMENTS}") endif() find_program(YASM yasm PATHS "${Z_YASM_TOOL_HELPER_LIST_DIR}/../../tools/yasm") if(arg_APPEND_TO_PATH) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) vcpkg_add_to_path("${YASM_EXE_PATH}") endif() if(arg_PREPEND_TO_PATH) get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY) vcpkg_add_to_path(PREPEND "${YASM_EXE_PATH}") endif() if(DEFINED arg_OUT_VAR) set("${arg_OUT_VAR}" "${YASM}" PARENT_SCOPE) endif() endfunction() ================================================ FILE: ports/yasm/vcpkg.json ================================================ { "name": "yasm", "version": "1.3.0", "port-version": 7, "description": "Yasm is a complete rewrite of the NASM assembler under the new BSD License.", "homepage": "https://github.com/yasm/yasm", "license": "BSD-2-Clause OR BSD-3-Clause OR Artistic-1.0 OR GPL-2.0-only OR LGPL-2.0-only", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, { "name": "yasm", "host": true, "default-features": false, "features": [ "tools" ], "platform": "!native" } ], "default-features": [ "tools" ], "features": { "tools": { "description": "Build yasm tools" } } } ================================================ FILE: ports/yasm-tool-helper/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) configure_file( "${CMAKE_CURRENT_LIST_DIR}/yasm-tool-helper.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/yasm-tool-helper.cmake" @ONLY) ================================================ FILE: ports/yasm-tool-helper/vcpkg.json ================================================ { "name": "yasm-tool-helper", "version-date": "2020-03-11", "port-version": 1, "description": "Backfill that depends on yasm:host", "homepage": "https://github.com/Microsoft/vcpkg", "dependencies": [ { "name": "yasm", "host": true, "features": [ "tools" ] } ] } ================================================ FILE: ports/yasm-tool-helper/yasm-tool-helper.cmake.in ================================================ include("${CMAKE_CURRENT_LIST_DIR}/../../../@HOST_TRIPLET@/share/yasm/vcpkg-port-config.cmake") ================================================ FILE: ports/yato/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO agruzdev/Yato REF 9b5a49f6ec4169b67b9e5ffd11fdae9c238b0a3d SHA512 41962839cd13a314a17fef5f6065d7c3ed9967832039ca31993105685d584307d00f17c1514f4acf855a71fd884a1104c2d9c6a4461be5d2d7cfdc50b1ea7bdb HEAD_REF master ) # Copy all header files file(COPY "${SOURCE_PATH}/include/yato" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(COPY "${SOURCE_PATH}/modules/actors/yato" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) file(COPY "${SOURCE_PATH}/modules/config/yato" DESTINATION "${CURRENT_PACKAGES_DIR}/include" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DYATO_BUILD_TESTS:BOOL=OFF -DYATO_BUILD_ACTORS:BOOL=ON -DYATO_BUILD_CONFIG:BOOL=ON ) vcpkg_cmake_build() # Handle copyright file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/yato/vcpkg.json ================================================ { "name": "yato", "version-date": "2022-03-06", "description": "Modern C++14 containers and utilities, actors system, typesafe config", "license": "Apache-2.0", "supports": "!(windows & arm)", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/yoctolib/001-cmake_config.patch ================================================ diff --git a/Sources/yapi/yproto.h b/Sources/yapi/yproto.h index ff25fb1b..95eddec6 100644 --- a/Sources/yapi/yproto.h +++ b/Sources/yapi/yproto.h @@ -165,7 +165,7 @@ typedef struct { /***************************************************************************** LINUX SPECIFIC HEADER ****************************************************************************/ -#include +#include #endif /***************************************************************************** ================================================ FILE: ports/yoctolib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO yoctopuce/yoctolib_cpp REF "v${VERSION}" SHA512 ed405d77c05288e123851a79e86beaf9778cce487c5d5d4a556f47b3a690517e71b004e5b3e0ae5532cb24ed46a1c04ce4f18c34cccf475fc1ca45a331808c43 HEAD_REF master PATCHES 001-cmake_config.patch ) if(VCPKG_TARGET_IS_LINUX) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/Sources" OPTIONS -DVERSION=${VERSION} -DCMAKE_INSTALL_INCLUDEDIR=include/yoctolib -DUSE_YSSL=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(PACKAGE_NAME yoctolib) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/README.md") ================================================ FILE: ports/yoctolib/vcpkg.json ================================================ { "name": "yoctolib", "version": "2.1.11761", "description": "Official Yoctopuce Library for C++", "homepage": "https://github.com/yoctopuce/yoctolib_cpp", "license": null, "supports": "!(uwp | android)", "dependencies": [ { "name": "libusb", "platform": "!(windows | osx)" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/yoga/disable_tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 55f1a6df..c8c15c30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ set(CMAKE_VERBOSE_MAKEFILE on) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/project-defaults.cmake) add_subdirectory(yoga) -add_subdirectory(tests) +# add_subdirectory(tests) option(BUILD_FUZZ_TESTS "Build fuzz tests" OFF) ================================================ FILE: ports/yoga/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/yoga REF "v${VERSION}" SHA512 41ca044dcc7e404d5d3b052a85a650713bd31950a010a14658e25b1d065fffa16239cb93d2b00845d4e8443169ae50a91ad36080305f1be93e53ed481603a78b HEAD_REF master PATCHES disable_tests.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/yoga/usage ================================================ yoga provides CMake targets: find_package(yoga CONFIG REQUIRED) target_link_libraries(main PRIVATE yoga::yogacore) ================================================ FILE: ports/yoga/vcpkg.json ================================================ { "name": "yoga", "version": "3.2.1", "description": "Yoga is a cross-platform layout engine which implements Flexbox", "homepage": "https://github.com/facebook/yoga", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/yomm2/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO jll63/yomm2 REF "v${VERSION}" SHA512 9ca6415bb40888332c15d559c6832c0dcf30e9400d2fe36f7f1382acc3e79797edd98a74b89bcae6cdf3add928a001298e78561d5846839920ec7aaf9ffe7744 HEAD_REF master ) set(YOMM2_SHARED OFF) if(VCPKG_LIBRARY_LINKAGE MATCHES "dynamic") set(YOMM2_SHARED ON) endif() if(VCPKG_LIBRARY_LINKAGE MATCHES "static") set(VCPKG_BUILD_TYPE release) # header-only endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DYOMM2_ENABLE_EXAMPLES=OFF -DYOMM2_ENABLE_TESTS=OFF -DYOMM2_SHARED=${YOMM2_SHARED} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/YOMM2) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(VCPKG_LIBRARY_LINKAGE MATCHES "static") # header only library in static build file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib" "${CURRENT_PACKAGES_DIR}/debug") endif() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/yomm2/vcpkg.json ================================================ { "name": "yomm2", "version": "1.6.0", "description": "YOMM2 is an implementation of open multi-methods.", "homepage": "https://github.com/jll63/yomm2", "license": "BSL-1.0", "dependencies": [ "boost-dynamic-bitset", "boost-mp11", "boost-preprocessor", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/yyjson/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ibireme/yyjson REF "${VERSION}" SHA512 a468477544f40a13595eb0afa74857b669b0cf0bf3258678541368863cc3a27fa6f43cc2ef1f4c6103c81b798cea2f67cc14268789de3965e1315a44972c713f HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS INVERTED_FEATURES reader YYJSON_DISABLE_READER writer YYJSON_DISABLE_WRITER fast-fp-conv YYJSON_DISABLE_FAST_FP_CONV non-standard YYJSON_DISABLE_NON_STANDARD ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DYYJSON_BUILD_TESTS=OFF -DYYJSON_BUILD_MISC=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/yyjson/vcpkg.json ================================================ { "name": "yyjson", "version": "0.12.0", "description": "A high performance JSON library written in ANSI C", "homepage": "https://github.com/ibireme/yyjson", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "fast-fp-conv", "non-standard", "reader", "writer" ], "features": { "fast-fp-conv": { "description": "Build with custom floating-point number conversion" }, "non-standard": { "description": "Build with support for non-standard JSON" }, "reader": { "description": "Build with JSON reader" }, "writer": { "description": "Build with JSON writer", "dependencies": [ { "name": "yyjson", "default-features": false, "features": [ "reader" ] } ] } } } ================================================ FILE: ports/z3/fix-install-path.patch ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e8de0c7e4..064c18eab 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -173,6 +173,7 @@ install(TARGETS libz3 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" # On Windows this installs ``libz3.lib`` which CMake calls the "corresponding import library". Do we want this installed? RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" # For Windows. DLLs are runtime targets for CMake + BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}" # For MACOSX. PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" ) diff --git a/src/shell/CMakeLists.txt b/src/shell/CMakeLists.txt index 278246341..b6cd2f1c1 100644 --- a/src/shell/CMakeLists.txt +++ b/src/shell/CMakeLists.txt @@ -44,5 +44,5 @@ target_link_libraries(shell PRIVATE ${Z3_DEPENDENT_LIBS}) z3_add_component_dependencies_to_target(shell ${shell_expanded_deps}) z3_append_linker_flag_list_to_target(shell ${Z3_DEPENDENT_EXTRA_CXX_LINK_FLAGS}) install(TARGETS shell - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + RUNTIME DESTINATION tools/z3 ) ================================================ FILE: ports/z3/portfile.cmake ================================================ vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Z3Prover/z3 REF z3-${VERSION} SHA512 7dbcdd04a72f46bc3b6cbac2453b2a43f5ae126287b878ffe37f0573f910a1130c474c5edfa622dab09957f106cf425ab0f7cdfd34d41658599ad50a81ae39dd HEAD_REF master PATCHES fix-install-path.patch remove-flag-overrides.patch ) if (VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(BUILD_STATIC "-DZ3_BUILD_LIBZ3_SHARED=OFF") endif() vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} OPTIONS ${BUILD_STATIC} -DZ3_BUILD_TEST_EXECUTABLES=OFF -DZ3_ENABLE_EXAMPLE_TARGETS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/z3) vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) vcpkg_fixup_pkgconfig() ================================================ FILE: ports/z3/remove-flag-overrides.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d66f8d..89c10f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,6 @@ # Enforce some CMake policies cmake_minimum_required(VERSION 3.16) -set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxx_compiler_flags_overrides.cmake") - # Read version from VERSION.txt file file(READ "${CMAKE_CURRENT_SOURCE_DIR}/scripts/VERSION.txt" Z3_VERSION_FROM_FILE) string(STRIP "${Z3_VERSION_FROM_FILE}" Z3_VERSION_FROM_FILE) ================================================ FILE: ports/z3/vcpkg.json ================================================ { "name": "z3", "version": "4.16.0", "description": "Z3 is a theorem prover from Microsoft Research", "homepage": "https://github.com/Z3Prover/z3", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/z4kn4fein-semver/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO z4kn4fein/cpp-semver REF "v${VERSION}" SHA512 115cb6ab37e20c03db8f1052fa09872bb3b081c10a310fea82c8b42fad79361d4d7597511538c79553411c88f8d55926d72f1db79163aa0c97b87100db186acb HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSEMVER_BUILD_TESTS=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/z4kn4fein-semver/vcpkg.json ================================================ { "name": "z4kn4fein-semver", "version": "0.4.0", "description": "Semantic Versioning 2.0.0 library for modern C++", "homepage": "https://github.com/z4kn4fein/cpp-semver", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/z85/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO artemkin/z85 REF v1.0 SHA512 6b205524b8388c5709ca664a595a4db8fdd24148c5f87ef7ef16d6d6eb60d2c51db0b4ab768fe9ac3e5acf5e3fe1b46ef5b9f5e7f69a53fe40a7e8d25b098479 HEAD_REF master ) # Install source files file(INSTALL ${SOURCE_PATH}/src/z85.h ${SOURCE_PATH}/src/z85.c ${SOURCE_PATH}/src/z85.hpp ${SOURCE_PATH}/src/z85_impl.cpp DESTINATION ${CURRENT_PACKAGES_DIR}/include/${PORT}) # Install license file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) ================================================ FILE: ports/z85/vcpkg.json ================================================ { "name": "z85", "version": "1.0", "port-version": 2, "description": "Z85 is a binary-to-text encoding library. It implements ZeroMQ Base-85 Encoding Algorithm and provides custom padding." } ================================================ FILE: ports/zeroc-ice/change_to_mt.ps1 ================================================ $projFilePath = $args[0] $crtLinkage = $args[1] if($projFilePath) { $xpath = "/rs:Project/rs:ItemGroup/rs:ProjectConfiguration" $xmldoc = New-Object System.Xml.XmlDocument $xmldoc.load($projFilePath) $nsmgr = New-Object System.Xml.XmlNamespaceManager($xmldoc.NameTable); $nsmgr.AddNamespace("rs", "http://schemas.microsoft.com/developer/msbuild/2003"); $root = $xmldoc.DocumentElement foreach($conf in $root.ItemDefinitionGroup) { if($conf.Condition) { if(-Not ($conf.ClCompile.RuntimeLibrary)) { $rtl = $xmldoc.CreateElement("RuntimeLibrary", $conf.ClCompile.NamespaceURI) $conf.ClCompile.AppendChild($rtl) } if($conf.Condition.Contains("Debug")) { if($crtLinkage -eq "static") { $conf.ClCompile.RuntimeLibrary = "MultithreadedDebug" } else { $conf.ClCompile.RuntimeLibrary = "MultithreadedDebugDLL" } } else { if($crtLinkage -eq "static") { $conf.ClCompile.RuntimeLibrary = "Multithreaded" } else { $conf.ClCompile.RuntimeLibrary = "MultithreadedDLL" } } } } $xmldoc.save($projFilePath) } else { Write-Error "Error: No path defined!" } ================================================ FILE: ports/zeroc-ice/mcppd_fix.patch ================================================ --- a/config/Make.project.rules 2022-01-17 10:28:23.000000000 +++ b/config/Make.project.rules 2022-04-18 12:15:19.000000000 @@ -1050,17 +1050,17 @@ # # $(call make-lib,$1=libname) # define make-lib ifneq ($($1_home),) # Check for 3rd party libraries either in home/lib or home/lib -$1_installdir = $$($1_home)/lib$$(call platform-var,installdir,$1,$$($$2_platform),$$($$2_config),$$2) -$1_libdir ?= $$(strip $$(if $$(wildcard $$($1_installdir)),$$($1_installdir),$$($1_home)/lib)) -$1_includedir ?= $$($1_home)/include +$1_installdir = +$1_libdir ?= +$1_includedir ?= endif -$1_ldflags ?= -l$1 +$1_ldflags ?= -l$$(if $$(and $$(filter mcpp,$1),$$(filter no,$$(OPTIMIZE))),$1d,$1) endef # # $(call repathfromdir,path) # # Returns reversed relative path for directory (e.g.: test/Ice/operations ================================================ FILE: ports/zeroc-ice/no-werror.patch ================================================ diff --git a/config/Make.rules.Darwin b/config/Make.rules.Darwin index e978836..2276b5d 100644 --- a/config/Make.rules.Darwin +++ b/config/Make.rules.Darwin @@ -35,7 +35,7 @@ endif shared_cppflags = $(if $(filter-out program,$($1_target)),-fPIC) -fvisibility=hidden cppflags = -Wall -Wextra -Wshadow -Wshadow-all -Wredundant-decls -Wno-shadow-field \ - -Wdeprecated -Wstrict-prototypes -Werror -Wconversion -Wdocumentation -pthread \ + -Wdeprecated -Wstrict-prototypes -Wconversion -Wdocumentation -pthread \ $(if $(filter yes,$(OPTIMIZE)),-O2 -DNDEBUG,-g) ifeq ($(MAXWARN),yes) ================================================ FILE: ports/zeroc-ice/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeroc-ice/ice REF "v${VERSION}" SHA512 638ca8721db1559aae80c43663a1210ba9c8f72d58003f2d9457048c9100bee74036910917d1d10bf5b998ba49f0878177e094b436c83d3deb63613f9075483d PATCHES mcppd_fix.patch no-werror.patch ) set(RELEASE_TRIPLET ${TARGET_TRIPLET}-rel) set(DEBUG_TRIPLET ${TARGET_TRIPLET}-dbg) set(UNIX_BUILD_DIR "${SOURCE_PATH}") set(WIN_DEBUG_BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${DEBUG_TRIPLET}") set(WIN_RELEASE_BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${RELEASE_TRIPLET}") # install_includes function(install_includes ORIGINAL_PATH RELATIVE_PATHS) foreach(RELATIVE_PATH ${RELATIVE_PATHS}) file(GLOB HEADER_FILES ${ORIGINAL_PATH}/${RELATIVE_PATH}/*.h) if(EXISTS "${ORIGINAL_PATH}/${RELATIVE_PATH}") file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${RELATIVE_PATH}") endif() endforeach() endfunction() # install_slices function(install_slices ORIGINAL_PATH RELATIVE_PATHS) foreach(RELATIVE_PATH ${RELATIVE_PATHS}) file(GLOB HEADER_FILES ${ORIGINAL_PATH}/${RELATIVE_PATH}/*.ice) if(EXISTS ${ORIGINAL_PATH}/${RELATIVE_PATH}) file(COPY ${HEADER_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/share/ice/slice/${RELATIVE_PATH}") endif() endforeach() endfunction() vcpkg_list(SET ICE_INCLUDE_SUB_DIRECTORIES "Glacier2" "Ice" "IceUtil" "IceBT" "IceBox" "IceBT" "IceDiscovery" "IceGrid" "IceIAP" "IceLocatorDiscovery" "IcePatch2" "IceSSL" "IceStorm" ) set(ICE_OPTIONAL_COMPONENTS_MSBUILD "") set(ICE_OPTIONAL_COMPONENTS_MAKE "Ice") # Intentional! set(pkgconfig_packages "") # IceSSL if("icessl" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icessl++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceSSL") endif() # Glacier2 if("glacier2lib" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\glacier2++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "Glacier2") endif() # Glacier2Router if("glacier2router" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\glacier2router") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\glacier2cryptpermissionsverifier") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "glacier2router") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "Glacier2CryptPermissionsVerifier") endif() # IceBox if("iceboxlib" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\iceboxlib++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceBox") endif() # IceBox if("iceboxtools" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icebox++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\iceboxadmin") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icebox") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "iceboxadmin") endif() # IceGrid if("icegridlib" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icegrid++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceGrid") endif() # IceGrid tools if("icegridtools" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icegridadmin") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icegridregistry") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icegridnode") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icegridnode") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icegridregistry") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icegridnode") list(APPEND pkgconfig_packages expat) endif() # IceStorm if("icestormlib" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icestorm++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceStorm") endif() # IceStormAdmin if("icestormtools" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icestormadmin") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icestormservice") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icestormdb") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icestormadmin") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceStormService") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icestormdb") endif() # IceBridge executable if("icebridge" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++98\\icebridge") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "icebridge") endif() # IceDiscovery if("icediscovery" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icediscovery++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceDiscovery") endif() # IceLocatorDiscovery if("icelocatordiscovery" IN_LIST FEATURES) vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MSBUILD "/t:C++11\\icelocatordiscovery++11") vcpkg_list(APPEND ICE_OPTIONAL_COMPONENTS_MAKE "IceLocatorDiscovery") endif() if(NOT VCPKG_TARGET_IS_WINDOWS) # Clean up for the first round (important for install --editable) vcpkg_execute_build_process( COMMAND make distclean WORKING_DIRECTORY ${SOURCE_PATH}/cpp LOGNAME make-clean-${TARGET_TRIPLET} ) if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib") endif() if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib64") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib64") endif() file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/bin") # Setting these as environment variables, as .d files aren't generated # the first time passing them as arguments to make. set(ENV{MCPP_HOME} ${CURRENT_INSTALLED_DIR}) set(ENV{EXPAT_HOME} ${CURRENT_INSTALLED_DIR}) set(ENV{BZ2_HOME} ${CURRENT_INSTALLED_DIR}) set(ENV{LMDB_HOME} ${CURRENT_INSTALLED_DIR}) set(ENV{CPPFLAGS} "-I${CURRENT_INSTALLED_DIR}/include") set(ENV{LDFLAGS} "-L${CURRENT_INSTALLED_DIR}/debug/lib") set(ICE_BUILD_CONFIG "shared cpp11-shared") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(ICE_BUILD_CONFIG "static cpp11-static") endif() if(NOT VCPKG_BUILD_TYPE) message(STATUS "Building ${TARGET_TRIPLET}-dbg") vcpkg_execute_build_process( COMMAND make V=1 "prefix=${CURRENT_PACKAGES_DIR}/debug" linux_id=vcpkg "CONFIGS=${ICE_BUILD_CONFIG}" USR_DIR_INSTALL=yes OPTIMIZE=no ${ICE_OPTIONAL_COMPONENTS_MAKE} "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY ${SOURCE_PATH}/cpp LOGNAME make-${TARGET_TRIPLET}-dbg ) # Install debug libraries to packages directory file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib64") file(GLOB ICE_DEBUG_LIBRARIES "${UNIX_BUILD_DIR}/cpp/lib64/*") else() file(GLOB ICE_DEBUG_LIBRARIES "${UNIX_BUILD_DIR}/cpp/lib/*") endif() file(COPY ${ICE_DEBUG_LIBRARIES} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") # Clean up for the next round vcpkg_execute_build_process( COMMAND make distclean WORKING_DIRECTORY ${SOURCE_PATH}/cpp LOGNAME make-clean-${TARGET_TRIPLET} ) if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib") endif() if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib64") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib64") endif() file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/bin") endif() # TODO: get-cmake-vars! # Release build set(ENV{LDFLAGS} "-L${CURRENT_INSTALLED_DIR}/lib") message(STATUS "Building ${TARGET_TRIPLET}-rel") vcpkg_execute_build_process( COMMAND make V=1 "prefix=${CURRENT_PACKAGES_DIR}" linux_id=vcpkg "CONFIGS=${ICE_BUILD_CONFIG}" USR_DIR_INSTALL=yes OPTIMIZE=yes ${ICE_OPTIONAL_COMPONENTS_MAKE} "-j${VCPKG_CONCURRENCY}" WORKING_DIRECTORY ${SOURCE_PATH}/cpp LOGNAME make-${TARGET_TRIPLET}-rel ) # Install release libraries and other files to packages directory file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/include") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/ice/slice") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") install_includes("${UNIX_BUILD_DIR}/cpp/include" "${ICE_INCLUDE_SUB_DIRECTORIES}") install_includes("${UNIX_BUILD_DIR}/cpp/include/generated" "${ICE_INCLUDE_SUB_DIRECTORIES}") install_slices("${SOURCE_PATH}/slice" "${ICE_INCLUDE_SUB_DIRECTORIES}") if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib64") file(GLOB ICE_RELEASE_LIBRARIES "${UNIX_BUILD_DIR}/cpp/lib64/*") else() file(GLOB ICE_RELEASE_LIBRARIES "${UNIX_BUILD_DIR}/cpp/lib/*") endif() file(COPY ${ICE_RELEASE_LIBRARIES} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") file(GLOB ICE_RELEASE_EXECUTABLES "${UNIX_BUILD_DIR}/cpp/bin/*") file(COPY ${ICE_RELEASE_EXECUTABLES} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") # Clean up vcpkg_execute_build_process( COMMAND make distclean WORKING_DIRECTORY ${SOURCE_PATH}/cpp LOGNAME make-clean-after-build-${TARGET_TRIPLET} ) if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib") endif() if(EXISTS "${UNIX_BUILD_DIR}/cpp/lib64") file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/lib64") endif() file(REMOVE_RECURSE "${UNIX_BUILD_DIR}/cpp/bin") else() # VCPKG_TARGET_IS_WINDOWS # Fix project files to prevent nuget restore of dependencies and # remove hard coded runtime linkage include("${CURRENT_PORT_DIR}/prepare_for_build.cmake") prepare_for_build("${SOURCE_PATH}") vcpkg_list(SET MSBUILD_OPTIONS "/p:UseVcpkg=yes" "/p:IceBuildingSrc=yes" ${ICE_OPTIONAL_COMPONENTS_MSBUILD} ) # Build Ice vcpkg_msbuild_install( SOURCE_PATH "${SOURCE_PATH}" PROJECT_SUBPATH "cpp/msbuild/ice.${VCPKG_PLATFORM_TOOLSET}.sln" TARGET "C++11\\ice++11" OPTIONS ${MSBUILD_OPTIONS} DEPENDENT_PKGCONFIG bzip2 ${pkgconfig_packages} ADDITIONAL_LIBS lmdb.lib ADDITIONAL_LIBS_RELEASE mcpp.lib ${libs_rel} ADDITIONAL_LIBS_DEBUG mcppd.lib ${libs_dbg} ) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/zeroc.icebuilder.msbuild.dll") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/zeroc.icebuilder.msbuild.dll") endif() if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/zeroc.icebuilder.msbuild.dll") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/zeroc.icebuilder.msbuild.dll") endif() install_includes("${WIN_RELEASE_BUILD_DIR}/cpp/include" "${ICE_INCLUDE_SUB_DIRECTORIES}") install_includes("${WIN_RELEASE_BUILD_DIR}/cpp/include/generated/cpp11/${TRIPLET_SYSTEM_ARCH}/Release" "${ICE_INCLUDE_SUB_DIRECTORIES}") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/ice/slice") install_slices("${SOURCE_PATH}/slice" "${ICE_INCLUDE_SUB_DIRECTORIES}") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_clean_msbuild() endif() # Remove unnecessary static libraries. file(GLOB PDLIBS "${CURRENT_PACKAGES_DIR}/debug/lib/*") file(GLOB PRLIBS "${CURRENT_PACKAGES_DIR}/lib/*") list(FILTER PDLIBS INCLUDE REGEX ".*(([Ii]ce[Uu]til|[Ss]lice)d?\.([a-z]+))$") list(FILTER PRLIBS INCLUDE REGEX ".*(([Ii]ce[Uu]til|[Ss]lice)d?\.([a-z]+))$") file(REMOVE ${PDLIBS} ${PRLIBS}) # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zeroc-ice/prepare_for_build.cmake ================================================ # This function modifies hardcoded RuntimeLibrary directives in Ice's .vcxproj files and downloads # Ice Builder for MSBuild, which is required to generate C++ files based on the interface definition # files (.ice). function(prepare_for_build ICE_SOURCE_DIR) message("-- Modifying hardcoded 'RuntimeLibrary' directives in .vcxproj files") set(CPP_SOURCE_DIR "${ICE_SOURCE_DIR}/cpp/src") file(GLOB_RECURSE PROJ_FILES "${CPP_SOURCE_DIR}/*.vcxproj") foreach(PROJ_FILE ${PROJ_FILES}) file(READ ${PROJ_FILE} PROJ_FILE_CONTENT) STRING(REGEX REPLACE "" "" PROJ_FILE_CONTENT "${PROJ_FILE_CONTENT}" ) if((NOT ${PROJ_FILE} MATCHES ".*slice\.vcxproj") AND (NOT ${PROJ_FILE} MATCHES ".*iceutil\.vcxproj") AND (NOT ${PROJ_FILE} MATCHES ".*slice2cpp\.vcxproj")) if(${VCPKG_LIBRARY_LINKAGE} STREQUAL "static") STRING(REGEX REPLACE "DynamicLibrary" "StaticLibrary" PROJ_FILE_CONTENT "${PROJ_FILE_CONTENT}" ) else() STRING(REGEX REPLACE "StaticLibrary" "DynamicLibrary" PROJ_FILE_CONTENT "${PROJ_FILE_CONTENT}" ) endif() endif() file(WRITE ${PROJ_FILE} "${PROJ_FILE_CONTENT}") vcpkg_execute_required_process( COMMAND pwsh ${CURRENT_PORT_DIR}/change_to_mt.ps1 ${PROJ_FILE} ${VCPKG_CRT_LINKAGE} WORKING_DIRECTORY ${SOURCE_PATH} LOGNAME change_to_mt-${TARGET_TRIPLET}-rel ) endforeach() set(ICE_BUILDER_VERSION "5.0.9") set(ICE_CPP_MSBUILD_PACKAGES_DIR "${ICE_SOURCE_DIR}/cpp/msbuild/packages") set(ICE_BUILDER_DEST_DIRECTORY "${ICE_CPP_MSBUILD_PACKAGES_DIR}/zeroc.icebuilder.msbuild.${ICE_BUILDER_VERSION}") if(NOT EXISTS "${ICE_BUILDER_DEST_DIRECTORY}") message("-- Making Ice Builder for MSBuild available") vcpkg_download_distfile( ICE_BUILDER_MSBUILD_ARCHIVE URLS https://globalcdn.nuget.org/packages/zeroc.icebuilder.msbuild.5.0.9.nupkg FILENAME "zeroc.icebuilder.msbuild.${ICE_BUILDER_VERSION}.zip" SHA512 E65620F3B667A48B28EC770443296BB0B8058168197DB3AE877A36531FFC6CE7E9289C7FE37DFAD751877FBDBA03C55E37122931BBF001EA6F1906DFEEBACFCB ) vcpkg_extract_source_archive( ICE_BUILDER_MSBUILD_DIRECTORY ARCHIVE "${ICE_BUILDER_MSBUILD_ARCHIVE}" NO_REMOVE_ONE_LEVEL SOURCE_BASE icebuilder ) file(MAKE_DIRECTORY "${ICE_SOURCE_DIR}/cpp/msbuild/packages") file(RENAME "${ICE_BUILDER_MSBUILD_DIRECTORY}" "${ICE_BUILDER_DEST_DIRECTORY}") endif() endfunction() ================================================ FILE: ports/zeroc-ice/vcpkg.json ================================================ { "name": "zeroc-ice", "version": "3.7.10", "maintainers": "Benjamin Oldenburg ", "description": "Comprehensive RPC framework with support for C++, CSharp, Java, JavaScript, Python and more.", "homepage": "https://github.com/zeroc-ice/ice", "license": null, "supports": "!uwp & !(windows & arm) & !wasm32", "dependencies": [ "bzip2", "expat", "lmdb", "mcpp", { "name": "openssl", "platform": "!windows" }, { "name": "vcpkg-msbuild", "host": true, "platform": "windows" }, "zlib" ], "default-features": [ "glacier2lib", "icegridlib", "icestormlib" ], "features": { "glacier2lib": { "description": "Glacier2 libraries" }, "glacier2router": { "description": "Glacier2Router", "supports": "!(windows & static)", "dependencies": [ { "name": "zeroc-ice", "features": [ "glacier2lib", "icessl" ] } ] }, "iceboxlib": { "description": "IceBox libraries and runtime", "supports": "!(windows & static)" }, "iceboxtools": { "description": "IceBox tools", "supports": "!(windows & static)" }, "icebridge": { "description": "IceBridge", "supports": "!(windows & static)", "dependencies": [ { "name": "zeroc-ice", "features": [ "iceboxlib" ] } ] }, "icediscovery": { "description": "IceDiscovery", "dependencies": [ { "name": "zeroc-ice", "features": [ "glacier2lib", "iceboxlib", "icessl", "icestormlib" ] } ] }, "icegridlib": { "description": "IceGrid library", "dependencies": [ { "name": "zeroc-ice", "features": [ "glacier2lib" ] } ] }, "icegridtools": { "description": "IceGrid tools", "supports": "!(windows & static)", "dependencies": [ "expat", { "name": "zeroc-ice", "features": [ "glacier2lib", "iceboxlib", "icegridlib", "icessl" ] } ] }, "icelocatordiscovery": { "description": "IceLocatorDiscovery", "dependencies": [ { "name": "zeroc-ice", "features": [ "glacier2lib", "iceboxlib", "icessl", "icestormlib" ] } ] }, "icessl": { "description": "IceSSL", "dependencies": [ { "name": "openssl", "platform": "!windows" } ] }, "icestormlib": { "description": "IceStorm library" }, "icestormtools": { "description": "IceStorm tools", "supports": "!(windows & static)", "dependencies": [ "lmdb", { "name": "zeroc-ice", "features": [ "glacier2lib", "iceboxlib", "icegridlib", "icestormlib" ] } ] } } } ================================================ FILE: ports/zeromq/fix-arm.patch ================================================ diff --git a/src/clock.cpp b/src/clock.cpp index 79522ad..0667c59 100644 --- a/src/clock.cpp +++ b/src/clock.cpp @@ -41,8 +41,10 @@ #include #else #include -#if defined(_M_ARM) || defined(_M_ARM64) +#if defined(_M_ARM) #include +#elif defined(_M_ARM64) +#include #endif #endif #endif ================================================ FILE: ports/zeromq/pkgconfig.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 0346227..56d34e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -569,6 +569,23 @@ else() check_cxx_symbol_exists(SO_BUSY_POLL sys/socket.h ZMQ_HAVE_BUSY_POLL) endif() +if(WITH_LIBSODIUM) + string(APPEND pkg_config_names_private " libsodium") +endif() +if(WIN32) + string(APPEND pkg_config_libs_private " -ladvapi32 -liphlpapi -lrpcrt4 -lws2_32") +endif() +string(APPEND pkg_config_libs_private " ${CMAKE_THREAD_LIBS_INIT}") +foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES) + if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES) + continue() + elseif(EXISTS "${lib}") + string(APPEND pkg_config_libs_private " ${lib}") + else() + string(APPEND pkg_config_libs_private " -l${lib}") + endif() +endforeach() + if(NOT MINGW) find_library(RT_LIBRARY rt) if(RT_LIBRARY) diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in index 233bc3a..3c2bf0d 100644 --- a/src/libzmq.pc.in +++ b/src/libzmq.pc.in @@ -7,6 +7,6 @@ Name: libzmq Description: 0MQ c++ library Version: @VERSION@ Libs: -L${libdir} -lzmq -Libs.private: -lstdc++ @pkg_config_libs_private@ +Libs.private: @pkg_config_libs_private@ Requires.private: @pkg_config_names_private@ Cflags: -I${includedir} @pkg_config_defines@ ================================================ FILE: ports/zeromq/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/libzmq REF "v${VERSION}" SHA512 108d9c5fa761c111585c30f9c651ed92942dda0ac661155bca52cc7b6dbeb3d27b0dd994abde206eacfc3bc88d19ed24e45b291050c38469e34dca5f8c9a037d PATCHES fix-arm.patch pkgconfig.diff rename-sha1.diff ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" BUILD_SHARED) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES sodium WITH_LIBSODIUM draft ENABLE_DRAFTS websockets ENABLE_WS websockets-secure WITH_TLS curve ENABLE_CURVE ) set(PLATFORM_OPTIONS "") if(VCPKG_TARGET_IS_MINGW) list(APPEND PLATFORM_OPTIONS "-DCMAKE_SYSTEM_VERSION=6.0" "-DZMQ_HAVE_IPC=0") endif() vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DBUILD_STATIC=${BUILD_STATIC} -DBUILD_SHARED=${BUILD_SHARED} -DCMAKE_POLICY_DEFAULT_CMP0057=NEW # IN_LIST -DCMAKE_REQUIRE_FIND_PACKAGE_GnuTLS=ON -DWITH_DOCS=OFF -DWITH_PERF_TOOL=OFF -DWITH_LIBBSD=OFF -DWITH_LIBSODIUM_STATIC=${BUILD_STATIC} -DWITH_NSS=OFF -DZEROMQ_CMAKECONFIG_INSTALL_DIR=share/${PORT} -DZMQ_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ${PLATFORM_OPTIONS} OPTIONS_DEBUG "-DCMAKE_PDB_OUTPUT_DIRECTORY=${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" MAYBE_UNUSED_VARIABLES CMAKE_REQUIRE_FIND_PACKAGE_GnuTLS WITH_LIBBSD WITH_PERF_TOOL WITH_TLS ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() vcpkg_fixup_pkgconfig() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(GLOB libzmq_release "${CURRENT_PACKAGES_DIR}/lib/libzmq*.lib") cmake_path(GET libzmq_release STEM LAST_ONLY libzmq_spec) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libzmq.pc" " -lzmq" " -l${libzmq_spec}") if(NOT VCPKG_BUILD_TYPE) file(GLOB libzmq_debug "${CURRENT_PACKAGES_DIR}/debug/lib/libzmq*.lib") cmake_path(GET libzmq_debug STEM LAST_ONLY libzmq_spec) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libzmq.pc" " -lzmq" " -l${libzmq_spec}") endif() endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zmq.h" "defined ZMQ_STATIC" "(1)") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin" "${CURRENT_PACKAGES_DIR}/bin") # empty endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/zmq") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zeromq/rename-sha1.diff ================================================ diff --git a/external/sha1/sha1.h b/external/sha1/sha1.h index 7354d13..93d717a 100644 --- a/external/sha1/sha1.h +++ b/external/sha1/sha1.h @@ -45,6 +45,13 @@ extern "C" { #include #include "../../src/stdint.hpp" +/* Avoid collision with libssh et al. */ +#define sha1_ctxt zmq_sha1_ctxt +#define sha1_init zmq_sha1_init +#define sha1_pad zmq_sha1_pad +#define sha1_loop zmq_sha1_loop +#define sha1_result zmq_sha1_result + struct sha1_ctxt { union ================================================ FILE: ports/zeromq/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET libzmq AND NOT TARGET libzmq-static) add_library(libzmq-static INTERFACE IMPORTED) set_target_properties(libzmq-static PROPERTIES INTERFACE_LINK_LIBRARIES libzmq) elseif(TARGET libzmq-static AND NOT TARGET libzmq) add_library(libzmq INTERFACE IMPORTED) set_target_properties(libzmq PROPERTIES INTERFACE_LINK_LIBRARIES libzmq-static) endif() ================================================ FILE: ports/zeromq/vcpkg.json ================================================ { "name": "zeromq", "version": "4.3.5", "port-version": 3, "description": "The ZeroMQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products", "homepage": "https://github.com/zeromq/libzmq", "license": "MPL-2.0", "supports": "!uwp & !xbox", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "curve": { "description": "Enable CURVE security" }, "draft": { "description": "Build and install draft APIs" }, "sodium": { "description": "Using libsodium for CURVE security", "dependencies": [ "libsodium", { "name": "zeromq", "default-features": false, "features": [ "curve" ] } ] }, "websockets": { "description": "Enable WebSocket transport" }, "websockets-secure": { "description": "Enable WebSocket transport with TSL (wss)", "dependencies": [ "libgnutls", { "name": "zeromq", "default-features": false, "features": [ "websockets" ] } ] } } } ================================================ FILE: ports/zfp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO LLNL/zfp REF "${VERSION}" SHA512 5bbd98ed2f98e75c654afa863cab3023abb2eeb8f203f9049c75d5dbdf4b364cfb5c8378e10e6aaeaf13242315ad4949b06619810a67b3adaed095b7e8a48d5a HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES all BUILD_ALL cfp BUILD_CFP utility BUILD_UTILITIES ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DBUILD_TESTING=OFF -DBUILD_ALL=OFF ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) # Rename problematic root include "bitstream.h"; conflicts with x265's private headers vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/zfp.h "\"bitstream.h\"" "\"zfp/bitstream.h\"" IGNORE_UNCHANGED) if("utility" IN_LIST FEATURES) if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/zfp") vcpkg_copy_tools(TOOL_NAMES zfp AUTO_CLEAN) else() vcpkg_copy_tools(TOOL_NAMES zfpcmd AUTO_CLEAN) endif() endif() vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zfp/vcpkg.json ================================================ { "name": "zfp", "version": "1.0.1", "description": "Zfp is an open source C/C++ library for compressed numerical arrays that support high throughput read and write random access. zfp also supports streaming compression of integer and floating-point data, e.g., for applications that read and write large data sets to and from disk. zfp is primarily written in C and C++ but also includes Python and Fortran bindings.", "homepage": "https://github.com/LLNL/zfp", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "all": { "description": "Obsolete. This feature is left for compatibility", "dependencies": [ { "name": "zfp", "features": [ "cfp", "utility" ] } ] }, "cfp": { "description": "cfp support for cfp" }, "utility": { "description": "Build utility" } } } ================================================ FILE: ports/zimpl/libm.diff ================================================ diff --git a/zimpl/CMakeLists.txt b/zimpl/CMakeLists.txt index 7cf9d85..07fa187 100644 --- a/zimpl/CMakeLists.txt +++ b/zimpl/CMakeLists.txt @@ -151,6 +151,8 @@ include(CheckSymbolExists) find_library(libm m) if(NOT libm) set(libm "") +else() + set(libm m) endif() set(libs ${libs} ${libm}) ================================================ FILE: ports/zimpl/msvc.diff ================================================ diff --git a/zimpl/CMakeLists.txt b/zimpl/CMakeLists.txt index 7cf9d85..85d33a7 100644 --- a/zimpl/CMakeLists.txt +++ b/zimpl/CMakeLists.txt @@ -4,7 +4,7 @@ project(ZIMPL VERSION 3.6.1 LANGUAGES C) -if(CMAKE_BUILD_TYPE STREQUAL "Debug") +if(CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT WIN32) # if changing these flags, also update GCCWARN/GXXWARN in make/make.project set(ADD_C_FLAGS -Wall -Wextra -Wno-unknown-pragmas -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-noreturn -Wmissing-declarations -fno-omit-frame-pointer) @@ -112,7 +112,6 @@ if(MSVC) ) foreach(variable ${variables}) - string(REGEX REPLACE "/M[T,D][ d]" "" ${variable} "${${variable}}") # message("${variable} = ${${variable}}") endforeach() endif() @@ -128,9 +127,11 @@ if(ZLIB_FOUND) include_directories(${ZLIB_INCLUDE_DIRS}) else() add_definitions(-DWITHOUT_ZLIB) +endif() - # look for pcre if ZLIB could not be found - find_package(PCRE) +if(WIN32) + find_package(PCRE NAMES pcre2 REQUIRED) + set(PCRE_LIBRARIES "$") if(PCRE_FOUND) add_definitions(-DWITH_PCRE) add_definitions(-DPCRE2_STATIC) diff --git a/zimpl/zimpl-config.cmake.in b/zimpl/zimpl-config.cmake.in index b653f0c..946f6f2 100644 --- a/zimpl/zimpl-config.cmake.in +++ b/zimpl/zimpl-config.cmake.in @@ -1,3 +1,8 @@ +if(WIN32) + include(CMakeFindDependencyMacro) + find_dependency(pcre2) +endif() + if(NOT TARGET libzimpl) include("${CMAKE_CURRENT_LIST_DIR}/zimpl-targets.cmake") endif() ================================================ FILE: ports/zimpl/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # The latest version of ZIMPL is included in the SCIP Optimization Suite. set(scipoptsuite_version 9.1.0) vcpkg_download_distfile(ARCHIVE URLS "https://scipopt.org/download/release/scipoptsuite-${scipoptsuite_version}.tgz" SHA512 03c1c49dd5e4dbc5bfd4f07305937079773f6912c87b0ba86166fc02996928e8d23332137a944f16f2488a88dc12a4a2c6ebde216eb4532135ed282a182bfdaf FILENAME "scipoptsuite-${scipoptsuite_version}.tgz" ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${ARCHIVE}" PATCHES libm.diff msvc.diff ) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/zimpl" OPTIONS -DBREW=false "-DBISON_EXECUTABLE=${BISON}" "-DFLEX_EXECUTABLE=${FLEX}" -DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=1 MAYBE_UNUSED_VARIABLES BREW ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zimpl) vcpkg_copy_tools(TOOL_NAMES zimpl AUTO_CLEAN) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zimpl/zimpl-config.cmake" "../../../include" "../../include") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zimpl/mmlparse2.h" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/src/zimpl/" "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/zimpl/LICENSE") ================================================ FILE: ports/zimpl/vcpkg.json ================================================ { "name": "zimpl", "version": "3.6.1", "port-version": 1, "description": "Zuse Institut Mathematical Programming Language", "homepage": "https://zimpl.zib.de/", "license": "LGPL-3.0-or-later", "supports": "!uwp", "dependencies": [ "gmp", { "name": "pcre2", "platform": "windows" }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: ports/zint/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zint/zint REF ${VERSION} SHA512 819d1f91186106acf7dacada85b69e409358e3d39ad9b714297d00168c76d363f92c12c57ca8b11bc08fbe2c078ed4ac5c0cfc0e3e6391048acafa59b662c098 HEAD_REF master ) vcpkg_check_features( OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES png ZINT_USE_PNG ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ZINT_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ZINT_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${FEATURE_OPTIONS} -DZINT_STATIC=${ZINT_STATIC} -DZINT_SHARED=${ZINT_SHARED} -DZINT_USE_QT=OFF -DZINT_TEST=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zint) vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES zint AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/apps") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zint/vcpkg.json ================================================ { "name": "zint", "version": "2.16.0", "description": "A barcode encoding library supporting over 50 symbologies", "homepage": "https://github.com/zint/zint", "license": null, "supports": "!osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "png": { "description": "Build with PNG support", "dependencies": [ "libpng" ] } } } ================================================ FILE: ports/zix/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO drobilla/zix REF "v${VERSION}" SHA512 dd3073c9740ddb3a476b51977e80343fe668b4957db20c134c5ba22d10fe64de9cc2fa53aa6059f61ad010ef9fa967f36e178bc789f4073c736a7897b1f81345 HEAD_REF main ) vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dbenchmarks=disabled -Ddocs=disabled -Dtests=disabled -Dtests_cpp=disabled ) vcpkg_install_meson() vcpkg_copy_pdbs() vcpkg_fixup_pkgconfig() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/zix/vcpkg.json ================================================ { "name": "zix", "version": "0.8.0", "description": "Zix is a lightweight C library of portability wrappers and data structures.", "homepage": "https://github.com/drobilla/zix", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-tool-meson", "host": true } ] } ================================================ FILE: ports/zkpp/CMakeLists.txt ================================================ # # This file is based on https://github.com/tgockel/zookeeper-cpp/blob/a8d5f905e01893256299d5532b1836f64c89b5b9/CMakeLists.txt # Which is licensed under Apache License 2.0 # http://www.apache.org/licenses/LICENSE-2.0 # cmake_minimum_required(VERSION 3.5) file(READ src/zk/config.hpp CONFIG_HPP_STR) string(REGEX REPLACE ".*# *define +ZKPP_VERSION_MAJOR +([0-9]+).*" "\\1" ZKPP_VERSION_MAJOR "${CONFIG_HPP_STR}") string(REGEX REPLACE ".*# *define +ZKPP_VERSION_MINOR +([0-9]+).*" "\\1" ZKPP_VERSION_MINOR "${CONFIG_HPP_STR}") string(REGEX REPLACE ".*# *define +ZKPP_VERSION_PATCH +([0-9]+).*" "\\1" ZKPP_VERSION_PATCH "${CONFIG_HPP_STR}") set(ZKPP_VERSION "${ZKPP_VERSION_MAJOR}.${ZKPP_VERSION_MINOR}.${ZKPP_VERSION_PATCH}") project(zookeeper-cpp LANGUAGES CXX VERSION "${ZKPP_VERSION}" ) set(PROJECT_SO_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}") message(STATUS "Software Version: ${ZKPP_VERSION}") ################################################################################ # CMake # ################################################################################ set(CMAKE_REQUIRED_QUIET YES) # tell check_include_file_cxx to keep quiet list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules/") include(BuildFunctions) include(CheckIncludeFileCXX) include(ConfigurationSetting) include(ListSplit) include(GNUInstallDirs) ################################################################################ # Build Configuration # ################################################################################ find_package(Threads REQUIRED) if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Debug") message(STATUS "No build type selected, default to ${CMAKE_BUILD_TYPE}") endif() set(VALID_BUILD_TYPES Debug Release) if(NOT ${CMAKE_BUILD_TYPE} IN_LIST VALID_BUILD_TYPES) message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}\nValid build types are: ${VALID_BUILD_TYPES}") endif() message(STATUS "Configuration: ${CMAKE_BUILD_TYPE}") message(STATUS "Features:") build_option(NAME CODE_COVERAGE DOC "Enable code coverage (turns on the test-coverage target)" DEFAULT OFF CONFIGS_ON Debug ) configuration_setting(NAME BUFFER DOC "Type to use for zk::buffer" DEFAULT STD_VECTOR OPTIONS STD_VECTOR CUSTOM ) configuration_setting(NAME FUTURE DOC "Type to use for zk::future and zk::promise" DEFAULT STD OPTIONS STD STD_EXPERIMENTAL CUSTOM ) set(CXX_STANDARD c++17 CACHE STRING "The language standard to target for C++." ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=${CXX_STANDARD}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DZKPP_DEBUG=1") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3") ################################################################################ # External Libraries # ################################################################################ find_package(unofficial-zookeeper REQUIRED) build_module(NAME zkpp PATH src/zk NO_RECURSE ) target_include_directories(zkpp PUBLIC $ $) target_link_libraries(zkpp PRIVATE unofficial::zookeeper::zookeeper) install(TARGETS zkpp EXPORT zkpp RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) install(FILES ${zkpp_LIBRARY_HEADERS} DESTINATION include/zk/) install(EXPORT zkpp DESTINATION share/zkpp/ FILE zkppConfig.cmake) ================================================ FILE: ports/zkpp/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tgockel/zookeeper-cpp REF v0.2.3 SHA512 086f31d4ca53f5a585fd8640caf9f2f21c90cf46d9cfe6c0e8e5b8c620e73265bb8aebec62ea4328f3f098a9b3000280582569966c0d3401627ab8c3edc31ca8 HEAD_REF master ) file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") file(GLOB_RECURSE test_files LIST_DIRECTORIES false "${SOURCE_PATH}/src/zk/*_tests.cpp") if (NOT "${test_files}" STREQUAL "") file(REMOVE ${test_files}) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/zkpp/vcpkg.json ================================================ { "name": "zkpp", "version": "0.2.3", "port-version": 5, "description": "A ZooKeeper client for C++.", "homepage": "https://github.com/tgockel/zookeeper-cpp", "supports": "!windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zookeeper" ] } ================================================ FILE: ports/zlib/0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch ================================================ diff --git a/zconf.h.cmakein b/zconf.h.cmakein index a7f24cc..a1b359b 100644 --- a/zconf.h.cmakein +++ b/zconf.h.cmakein @@ -434,11 +434,19 @@ typedef uLong FAR uLongf; #endif #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H +# if ~(~HAVE_UNISTD_H + 0) == 0 && ~(~HAVE_UNISTD_H + 1) == 1 +# define Z_HAVE_UNISTD_H +# elif HAVE_UNISTD_H != 0 +# define Z_HAVE_UNISTD_H +# endif #endif #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H +# if ~(~HAVE_STDARG_H + 0) == 0 && ~(~HAVE_STDARG_H + 1) == 1 +# define Z_HAVE_STDARG_H +# elif HAVE_STDARG_H != 0 +# define Z_HAVE_STDARG_H +# endif #endif #ifdef STDC diff --git a/zconf.h.in b/zconf.h.in index 5e1d68a..32f53c8 100644 --- a/zconf.h.in +++ b/zconf.h.in @@ -432,11 +432,19 @@ typedef uLong FAR uLongf; #endif #ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_UNISTD_H +# if ~(~HAVE_UNISTD_H + 0) == 0 && ~(~HAVE_UNISTD_H + 1) == 1 +# define Z_HAVE_UNISTD_H +# elif HAVE_UNISTD_H != 0 +# define Z_HAVE_UNISTD_H +# endif #endif #ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */ -# define Z_HAVE_STDARG_H +# if ~(~HAVE_STDARG_H + 0) == 0 && ~(~HAVE_STDARG_H + 1) == 1 +# define Z_HAVE_STDARG_H +# elif HAVE_STDARG_H != 0 +# define Z_HAVE_STDARG_H +# endif #endif #ifdef STDC ================================================ FILE: ports/zlib/0002-build-static-or-shared-not-both.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,9 +123,11 @@ set(ZLIB_SRCS ) if(NOT MINGW) + if(BUILD_SHARED_LIBS) set(ZLIB_DLL_SRCS win32/zlib1.rc # If present will override custom build rule below. ) + endif() endif() # parse the full version number from zlib.h and include in ZLIB_FULL_VERSION @@ -146,15 +148,17 @@ if(MINGW) -I ${CMAKE_CURRENT_BINARY_DIR} -o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj -i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc) + if(BUILD_SHARED_LIBS) set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) + endif() endif(MINGW) -add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) +add_library(zlib ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) -add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) -target_include_directories(zlibstatic PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +if (BUILD_SHARED_LIBS) set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL) set_target_properties(zlib PROPERTIES SOVERSION 1) +endif() if(NOT CYGWIN) # This property causes shared libraries on Linux to have the full version @@ -169,7 +173,7 @@ endif() if(UNIX) # On unix-like platforms the library is almost always called libz - set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z) + set_target_properties(zlib PROPERTIES OUTPUT_NAME z) if(NOT APPLE AND NOT(CMAKE_SYSTEM_NAME STREQUAL AIX)) set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") endif() @@ -179,7 +183,7 @@ elseif(BUILD_SHARED_LIBS AND WIN32) endif() if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) - install(TARGETS zlib zlibstatic + install(TARGETS zlib RUNTIME DESTINATION "${INSTALL_BIN_DIR}" ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" LIBRARY DESTINATION "${INSTALL_LIB_DIR}" ) ================================================ FILE: ports/zlib/0003-android-and-mingw-fixes.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -58,7 +58,7 @@ endif() # check_include_file(unistd.h Z_HAVE_UNISTD_H) -if(MSVC) +if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) @@ -135,7 +135,7 @@ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents) string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*" "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents}) -if(MINGW) +if(MINGW AND NOT ANDROID) # This gets us DLL resource information when compiling on MinGW. if(NOT CMAKE_RC_COMPILER) set(CMAKE_RC_COMPILER windres.exe) @@ -151,7 +151,7 @@ if(MINGW) if(BUILD_SHARED_LIBS) set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj) endif() -endif(MINGW) +endif(MINGW AND NOT ANDROID) add_library(zlib ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS}) target_include_directories(zlib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) ================================================ FILE: ports/zlib/portfile.cmake ================================================ # When this port is updated, the minizip port should be updated at the same time vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO madler/zlib REF v${VERSION} SHA512 8c9642495bafd6fad4ab9fb67f09b268c69ff9af0f4f20cf15dfc18852ff1f312bd8ca41de761b3f8d8e90e77d79f2ccacd3d4c5b19e475ecf09d021fdfe9088 HEAD_REF master PATCHES 0001-Prevent-invalid-inclusions-when-HAVE_-is-set-to-0.patch 0002-build-static-or-shared-not-both.patch 0003-android-and-mingw-fixes.patch ) # This is generated during the cmake build file(REMOVE "${SOURCE_PATH}/zconf.h") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DSKIP_INSTALL_FILES=ON -DZLIB_BUILD_EXAMPLES=OFF OPTIONS_DEBUG -DSKIP_INSTALL_HEADERS=ON ) vcpkg_cmake_install() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") # Install the pkgconfig file if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/zlib.pc" "-lz" "-lzlib") endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/zlib.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(VCPKG_TARGET_IS_WINDOWS) vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/zlib.pc" "-lz" "-lzlibd") endif() file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/zlib.pc" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") endif() vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zconf.h" "ifdef ZLIB_DLL" "if 0") else() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/zconf.h" "ifdef ZLIB_DLL" "if 1") endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) ================================================ FILE: ports/zlib/usage ================================================ The package zlib is compatible with built-in CMake targets: find_package(ZLIB REQUIRED) target_link_libraries(main PRIVATE ZLIB::ZLIB) ================================================ FILE: ports/zlib/vcpkg-cmake-wrapper.cmake ================================================ find_path(ZLIB_INCLUDE_DIR NAMES zlib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH) find_library(ZLIB_LIBRARY_RELEASE NAMES zlib z PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH) find_library(ZLIB_LIBRARY_DEBUG NAMES zlibd z PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH) if(NOT ZLIB_INCLUDE_DIR OR NOT (ZLIB_LIBRARY_RELEASE OR ZLIB_LIBRARY_DEBUG)) message(FATAL_ERROR "Broken installation of vcpkg port zlib") endif() if(CMAKE_VERSION VERSION_LESS 3.4) include(SelectLibraryConfigurations) select_library_configurations(ZLIB) unset(ZLIB_FOUND) endif() _find_package(${ARGS}) ================================================ FILE: ports/zlib/vcpkg.json ================================================ { "name": "zlib", "version": "1.3.1", "description": "A compression library", "homepage": "https://www.zlib.net/", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: ports/zlib-ng/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zlib-ng/zlib-ng REF "${VERSION}" SHA512 e2057c764f1d5aaee738edee7e977182c5b097e3c95489dcd8de813f237d92a05daaa86d68d44b331d9fec5d1802586a8f6cfb658ba849874aaa14e72a8107f5 HEAD_REF develop ) # Set ZLIB_COMPAT in the triplet file to turn on if(NOT DEFINED ZLIB_COMPAT) set(ZLIB_COMPAT OFF) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DZLIB_FULL_VERSION=${ZLIB_FULL_VERSION}" -DZLIB_ENABLE_TESTS=OFF -DWITH_NEW_STRATEGIES=ON -DZLIB_COMPAT=${ZLIB_COMPAT} OPTIONS_RELEASE -DWITH_OPTIM=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Condition in `WIN32`, from https://github.com/zlib-ng/zlib-ng/blob/2.1.5/CMakeLists.txt#L1081-L1100 # (dynamic) for `zlib` or (static `MSVC) for `zlibstatic` or default `z` # i.e. (windows) and not (static mingw) https://learn.microsoft.com/en-us/vcpkg/maintainers/variables#vcpkg_target_is_system if(VCPKG_TARGET_IS_WINDOWS AND (NOT (VCPKG_LIBRARY_LINKAGE STREQUAL static AND VCPKG_TARGET_IS_MINGW))) set(_port_suffix) if(ZLIB_COMPAT) set(_port_suffix "") else() set(_port_suffix "-ng") endif() set(_port_output_name) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(_port_output_name "zlib${_port_suffix}") else() set(_port_output_name "zlibstatic${_port_suffix}") endif() # CMAKE_DEBUG_POSTFIX from https://github.com/zlib-ng/zlib-ng/blob/2.1.5/CMakeLists.txt#L494 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/zlib${_port_suffix}.pc" " -lz${_port_suffix}" " -l${_port_output_name}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/zlib${_port_suffix}.pc" " -lz${_port_suffix}" " -l${_port_output_name}d") endif() endif() vcpkg_fixup_pkgconfig() if(ZLIB_COMPAT) set(_cmake_dir "ZLIB") else() set(_cmake_dir "zlib-ng") endif() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${_cmake_dir}) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/debug/include" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") ================================================ FILE: ports/zlib-ng/vcpkg.json ================================================ { "name": "zlib-ng", "version": "2.3.3", "description": "zlib replacement with optimizations for 'next generation' systems", "homepage": "https://github.com/zlib-ng/zlib-ng", "license": "Zlib", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/zlmediakit/add-include-chrono.patch ================================================ diff --git a/src/Util/util.cpp b/src/Util/util.cpp index 1da99cc..943a107 100644 --- a/src/Util/util.cpp +++ b/src/Util/util.cpp @@ -9,6 +9,7 @@ */ #include +#include #include #include #include ================================================ FILE: ports/zlmediakit/fix-android.patch ================================================ Index: src/Rtcp/RtcpFCI.h IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/src/Rtcp/RtcpFCI.h b/src/Rtcp/RtcpFCI.h --- a/src/Rtcp/RtcpFCI.h (revision 6b2fcf79435656be7797d396203adcc6c11ecc52) +++ b/src/Rtcp/RtcpFCI.h (date 1727606590493) @@ -247,8 +247,13 @@ // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ class FCI_NACK { public: +#if defined(ANDROID) + inline static constexpr size_t kSize = 4; + inline static constexpr size_t kBitSize = 16; +#else static constexpr size_t kSize = 4; static constexpr size_t kBitSize = 16; +#endif FCI_NACK(uint16_t pid_h, const std::vector &type); ================================================ FILE: ports/zlmediakit/fix-dependency.patch ================================================ Index: 3rdpart/CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/3rdpart/CMakeLists.txt b/3rdpart/CMakeLists.txt --- a/3rdpart/CMakeLists.txt (revision af3ef996b0ae265e000344e7faf753577f9abf4e) +++ b/3rdpart/CMakeLists.txt (date 1711782947005) @@ -24,6 +24,7 @@ ############################################################################## # jsoncpp +if (0) file(GLOB JSONCPP_SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/include/json/*.h ${CMAKE_CURRENT_SOURCE_DIR}/jsoncpp/src/lib_json/*.cpp @@ -38,7 +39,8 @@ PUBLIC "$/jsoncpp/include") -update_cached_list(MK_LINK_LIBRARIES jsoncpp) +endif() +update_cached_list(MK_LINK_LIBRARIES JsonCpp::JsonCpp) ############################################################################## Index: CMakeLists.txt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt (revision af3ef996b0ae265e000344e7faf753577f9abf4e) +++ b/CMakeLists.txt (date 1711782947012) @@ -479,6 +479,7 @@ # for assert.h include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdpart) +find_package(jsoncpp CONFIG REQUIRED) add_subdirectory(3rdpart) add_subdirectory(src) ================================================ FILE: ports/zlmediakit/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ZLMediaKit/ZLMediaKit REF 6b2fcf79435656be7797d396203adcc6c11ecc52 SHA512 a2efe81f7fe6267418cc1e98f74283a10481b995815131324b7587c82f451d4bd35aa0190ef59efe46a057369208d4bf0658eaba44ae1a8532c6162cfb6e34f5 HEAD_REF master PATCHES fix-dependency.patch fix-android.patch ) vcpkg_from_github( OUT_SOURCE_PATH TOOL_KIT_SOURCE_PATH REPO ZLMediaKit/ZLToolKit REF 46231014e2a7ec1903d4a37e96222481ecc779d8 SHA512 2a0b834f072fbc64edc84f408050e2c992f8d59f2480c67a372cace17d49f21eb2f40587288481acc42118e94a5b7863043982680c3f56bdde3863f97ca69356 HEAD_REF master PATCHES add-include-chrono.patch #https://github.com/ZLMediaKit/ZLToolKit/pull/258 ) file(REMOVE_RECURSE "${SOURCE_PATH}/3rdpart/ZLToolKit") file(COPY "${TOOL_KIT_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/3rdpart/ZLToolKit") if ("mp4" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH MEDIA_SRV_SOURCE_PATH REPO ireader/media-server REF 4e1a89c3247db72076893d3fc5ad80f4b3c04ec2 SHA512 baa7c8b69f86117e0eb8e3bb3769f3aa7fac498a7a59a24382a703a16ec8c5997e858b01a4681795ad0f8eab0408bf69fe1907400fa941dff588b1c739ffa324 HEAD_REF master ) file(REMOVE_RECURSE "${SOURCE_PATH}/3rdpart/media-server") file(COPY "${MEDIA_SRV_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/3rdpart/media-server") endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" static ZLMEDIAKIT_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" static ZLMEDIAKIT_CRT_STATIC) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl ENABLE_OPENSSL openssl CMAKE_REQUIRE_FIND_PACKAGE_OpenSSL mp4 ENABLE_MP4 mp4 ENABLE_RTPPROXY mp4 ENABLE_HLS sctp ENABLE_SCTP webrtc ENABLE_WEBRTC INVERTED_FEATURES openssl CMAKE_DISABLE_FIND_PACKAGE_OpenSSL ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0057=NEW -DENABLE_API=ON -DENABLE_API_STATIC_LIB=${ZLMEDIAKIT_BUILD_STATIC} -DENABLE_MSVC_MT=${ZLMEDIAKIT_CRT_STATIC} -DENABLE_ASAN=OFF -DENABLE_CXX_API=OFF -DENABLE_JEMALLOC_STATIC=OFF -DENABLE_FAAC=OFF -DENABLE_FFMPEG=OFF -DENABLE_PLAYER=OFF -DENABLE_SERVER=ON -DENABLE_SERVER_LIB=OFF -DENABLE_SRT=ON -DENABLE_MYSQL=OFF -DENABLE_X264=OFF -DENABLE_WEPOLL=ON -DDISABLE_REPORT=OFF -DUSE_SOLUTION_FOLDERS=ON -DENABLE_TESTS=OFF -DENABLE_MEM_DEBUG=OFF # only valid on Linux -DCMAKE_DISABLE_FIND_PACKAGE_GIT=ON -DCMAKE_DISABLE_FIND_PACKAGE_JEMALLOC=ON -DCMAKE_DISABLE_FIND_PACKAGE_SDL2=ON ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_copy_tools(TOOL_NAMES MediaServer AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zlmediakit/vcpkg.json ================================================ { "name": "zlmediakit", "version-date": "2024-09-29", "port-version": 1, "description": "A high-performance carrier-grade streaming media service framework based on C++11.", "homepage": "https://github.com/ZLMediaKit/ZLMediaKit", "license": "MIT", "supports": "!uwp", "dependencies": [ "jsoncpp", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "default-features": [ "mp4", "openssl", "webrtc" ], "features": { "mp4": { "description": "Enable MP4" }, "openssl": { "description": "Enable OpenSSL", "dependencies": [ "openssl" ] }, "sctp": { "description": "Enable SCTP", "dependencies": [ "usrsctp" ] }, "webrtc": { "description": "Enable WebRTC", "dependencies": [ { "name": "libsrtp", "features": [ "openssl" ] } ] } } } ================================================ FILE: ports/zoe/cmake.diff ================================================ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b5a3408..ecdeda8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -57,16 +57,12 @@ set_target_properties(zoe PROPERTIES target_include_directories(zoe PUBLIC $ - PUBLIC $ + PUBLIC $ ) # CURL -find_package(CURL REQUIRED) -if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE ${CURL_LIBRARIES}) -else() - target_link_libraries(zoe PUBLIC ${CURL_LIBRARIES}) -endif() +find_package(CURL CONFIG REQUIRED) +target_link_libraries(zoe PRIVATE CURL::libcurl) target_include_directories(zoe PRIVATE ${CURL_INCLUDE_DIRS}) @@ -74,25 +70,16 @@ target_include_directories(zoe PRIVATE ${CURL_INCLUDE_DIRS}) find_package(OpenSSL) if(OpenSSL_FOUND) target_compile_definitions(zoe PRIVATE WITH_OPENSSL) - - if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE OpenSSL::SSL OpenSSL::Crypto) - else() - target_link_libraries(zoe PUBLIC OpenSSL::SSL OpenSSL::Crypto) - endif() + target_link_libraries(zoe PRIVATE OpenSSL::SSL) endif() -if (WIN32 OR _WIN32) - if(ZOE_BUILD_SHARED_LIBS) - target_link_libraries(zoe PRIVATE Ws2_32.lib Crypt32.lib) - else() - target_link_libraries(zoe PUBLIC Ws2_32.lib Crypt32.lib) - endif() +if (WIN32) + target_link_libraries(zoe PRIVATE ws2_32 crypt32) endif() install(TARGETS zoe - EXPORT zoeConfig + EXPORT zoeTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} @@ -101,15 +88,25 @@ install(TARGETS zoe install(DIRECTORY ../include/zoe DESTINATION include) -install(EXPORT zoeConfig +install(EXPORT zoeTargets NAMESPACE zoe:: DESTINATION share/zoe ) include(CMakePackageConfigHelpers) +configure_package_config_file(zoeConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfig.cmake + INSTALL_DESTINATION share/zoe + NO_SET_AND_CHECK_MACRO + NO_CHECK_REQUIRED_COMPONENTS_MACRO +) write_basic_package_version_file( zoeConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zoeConfigVersion.cmake DESTINATION share/zoe) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/zoeConfigVersion.cmake + DESTINATION share/zoe +) diff --git a/src/zoeConfig.cmake.in b/src/zoeConfig.cmake.in new file mode 100644 index 0000000..28f29fe --- /dev/null +++ b/src/zoeConfig.cmake.in @@ -0,0 +1,11 @@ +@PACKAGE_INIT@ + +if(NOT "@ZOE_BUILD_SHARED_LIBS@") + include(CMakeFindDependencyMacro) + find_dependency(CURL) + if("@OpenSSL_FOUND@") + find_dependency(OpenSSL) + endif() +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/zoeTargets.cmake") ================================================ FILE: ports/zoe/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO winsoft666/zoe HEAD_REF master REF "v${VERSION}" SHA512 af895f772b465b34eb938b712bfd9b00bb170d23125e05161843293c13329bfc1147bd22ce990b189580d0946b94e725b99cefaafd3aeca758de5c6a55bc33a9 PATCHES cmake.diff ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES openssl VCPKG_LOCK_FIND_PACKAGE_OpenSSL ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ZOE_BUILD_SHARED_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DZOE_BUILD_SHARED_LIBS:BOOL=${ZOE_BUILD_SHARED_LIBS} -DZOE_BUILD_TESTS:BOOL=OFF ${options} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zoe/vcpkg.json ================================================ { "name": "zoe", "version": "3.6", "port-version": 1, "maintainers": "winsoft666 ", "description": "C++ File Download Library.", "homepage": "https://github.com/winsoft666/zoe", "supports": "!uwp & !android", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openssl": { "description": "Enable OpenSSL capabilities", "dependencies": [ "openssl" ] } } } ================================================ FILE: ports/zookeeper/cmake.patch ================================================ diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client/zookeeper-client-c/CMakeLists.txt index ccba3ee..14384c0 100644 --- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt +++ b/zookeeper-client/zookeeper-client-c/CMakeLists.txt @@ -169,7 +169,11 @@ configure_file(cmake_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/config.h) # hashtable library set(hashtable_sources src/hashtable/hashtable_itr.c src/hashtable/hashtable.c) add_library(hashtable STATIC ${hashtable_sources}) -target_include_directories(hashtable PUBLIC include) +target_include_directories(hashtable PUBLIC + $ + $ +) +set_target_properties(hashtable PROPERTIES OUTPUT_NAME zookeeper_hashtable) target_link_libraries(hashtable PUBLIC $<$,$>:m>) # zookeeper library @@ -196,7 +200,12 @@ if(WIN32) endif() add_library(zookeeper STATIC ${zookeeper_sources}) -target_include_directories(zookeeper PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}/include generated) +target_include_directories(zookeeper PUBLIC + $ + $ + $ + $ +) target_link_libraries(zookeeper PUBLIC hashtable $<$:rt> # clock_gettime @@ -291,3 +300,24 @@ if(WANT_CPPUNIT) "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") endif() + +if(WIN32) + target_compile_definitions(zookeeper PRIVATE _CRT_SECURE_NO_WARNINGS _WINSOCK_DEPRECATED_NO_WARNINGS _CRT_NONSTDC_NO_DEPRECATE) + target_compile_definitions(cli PRIVATE _CRT_SECURE_NO_WARNINGS) +endif() + +file(GLOB ZOOKEEPER_HEADERS include/*.h) +install(FILES ${ZOOKEEPER_HEADERS} generated/zookeeper.jute.h DESTINATION include/zookeeper) + +install(TARGETS zookeeper hashtable + EXPORT unofficial-zookeeperTargets + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib +) +install(EXPORT unofficial-zookeeperTargets + NAMESPACE unofficial::zookeeper:: + DESTINATION share/unofficial-zookeeper +) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/unofficial-zookeeperConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/unofficial-zookeeperConfig.cmake" @ONLY) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-zookeeperConfig.cmake" DESTINATION share/unofficial-zookeeper) ================================================ FILE: ports/zookeeper/portfile.cmake ================================================ vcpkg_check_linkage(ONLY_STATIC_LIBRARY) string(REGEX REPLACE "^([0-9]+[.][0-9]+[.][0-9]+)[.]([0-9]+)\$" "\\1-\\2" VERSION "${VERSION}") vcpkg_download_distfile( zookeeper_src_archive URLS "https://dlcdn.apache.org/zookeeper/stable/apache-zookeeper-${VERSION}.tar.gz" "https://archive.apache.org/dist/zookeeper/zookeeper-${VERSION}/zookeeper-${VERSION}.tar.gz" FILENAME "apache-zookeeper-${VERSION}.tar.gz" SHA512 61c05f6064797994dc25c42df35d67d2c3839fd59a496924852a4d78b492b06746c8eb5445edb63cbc0107ef2b8b31babf23488f96a52b00682cd2e9b61be339 ) vcpkg_extract_source_archive( SOURCE_PATH ARCHIVE "${zookeeper_src_archive}" PATCHES cmake.patch win32.patch ) file(COPY "${CURRENT_PORT_DIR}/unofficial-zookeeperConfig.cmake" DESTINATION "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c") # We must run the jute generator which is made from Java sources. # We fetch it as JAR from the latest matching binary release of zookeeper. vcpkg_download_distfile( zookeeper_bin_archive URLS "https://dlcdn.apache.org/zookeeper/stable/apache-zookeeper-${VERSION}-bin.tar.gz" "https://archive.apache.org/dist/zookeeper/zookeeper-${VERSION}/zookeeper-${VERSION}-bin.tar.gz" FILENAME "apache-zookeeper-${VERSION}-bin.tar.gz" SHA512 ab9bf90649df19d8fd8378f2e8d9159bc8528d8e4c166a93d9fa4a9c98e39ee9de0279cc9dc58cd6d593141c0a45576d0df9db47d143d63951598a43efdc0a30 ) vcpkg_extract_source_archive( zookeeper_jute_path ARCHIVE "${zookeeper_bin_archive}" ) string(APPEND zookeeper_jute_path "/lib/zookeeper-jute-${VERSION}.jar") block(SCOPE_FOR VARIABLES) # Do not warn about FindJava.cmake accessing WIN32 set(Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL "TRACE") set(WIN32 "${CMAKE_HOST_WIN32}") find_package(Java COMPONENTS Runtime REQUIRED) # cf. zookeeper-jute/pom.xml > "generate-C-Jute" file(MAKE_DIRECTORY "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/generated") vcpkg_execute_required_process( COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${zookeeper_jute_path}" org.apache.jute.compiler.generated.Rcc -l c "${SOURCE_PATH}/zookeeper-jute/src/main/resources/zookeeper.jute" WORKING_DIRECTORY "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/generated" LOGNAME "generate-C-Jute" ) endblock() vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES openssl WITH_OPENSSL openssl VCPKG_LOCK_FIND_PACKAGE_OpenSSL sync WANT_SYNCAPI ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c" OPTIONS -DTHREADS_PREFER_PTHREAD_FLAG=ON -DWANT_CPPUNIT=OFF -DWITH_CYRUS_SASL=OFF ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES THREADS_PREFER_PTHREAD_FLAG VCPKG_LOCK_FIND_PACKAGE_OpenSSL ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-zookeeper) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(COPY "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/zookeeper-client/zookeeper-client-c/LICENSE") ================================================ FILE: ports/zookeeper/unofficial-zookeeperConfig.cmake ================================================ include(CMakeFindDependencyMacro) if("@WANT_SYNCAPI@" AND NOT WIN32) find_dependency(Threads) endif() if("@WITH_OPENSSL@") find_dependency(OpenSSL) endif() include("${CMAKE_CURRENT_LIST_DIR}/unofficial-zookeeperTargets.cmake") ================================================ FILE: ports/zookeeper/usage ================================================ zookeeper provides CMake targets: find_package(unofficial-zookeeper CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::zookeeper::zookeeper) ================================================ FILE: ports/zookeeper/vcpkg.json ================================================ { "name": "zookeeper", "version": "3.8.5", "description": "ZooKeeper C bindings", "homepage": "https://github.com/apache/zookeeper", "license": "BSD-3-Clause", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "openssl": { "description": "Enable OpenSSL support", "dependencies": [ "openssl" ] }, "sync": { "description": "ZooKeeper with the sync API" } } } ================================================ FILE: ports/zookeeper/win32.patch ================================================ diff --git a/zookeeper-client/zookeeper-client-c/src/zk_log.c b/zookeeper-client/zookeeper-client-c/src/zk_log.c index 79ebd61..2f9d018 100644 --- a/zookeeper-client/zookeeper-client-c/src/zk_log.c +++ b/zookeeper-client/zookeeper-client-c/src/zk_log.c @@ -108,7 +108,11 @@ static const char* time_now(char* now_str){ gettimeofday(&tv,0); now = tv.tv_sec; +#ifdef WIN32 + localtime_s(<, &now); +#else localtime_r(&now, <); +#endif // clone the format used by logback ISO8601DateFormat // specifically: "yyyy-MM-dd HH:mm:ss,SSS" diff --git a/zookeeper-client/zookeeper-client-c/src/zookeeper.c b/zookeeper-client/zookeeper-client-c/src/zookeeper.c index 74b0471..e9cd44b 100644 --- a/zookeeper-client/zookeeper-client-c/src/zookeeper.c +++ b/zookeeper-client/zookeeper-client-c/src/zookeeper.c @@ -100,6 +100,7 @@ #define EAI_ADDRFAMILY WSAEINVAL /* is this still needed? */ #define EHOSTDOWN EPIPE #define ESTALE ENODEV +#define strtok_r strtok_s #endif #define IF_DEBUG(x) if(logLevel==ZOO_LOG_LEVEL_DEBUG) {x;} ================================================ FILE: ports/zopfli/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/zopfli REF bd64b2f0553d4f1ef4e6627647c5d9fc8c71ffc0 # zopfli-1.0.3 SHA512 3c99a4cdf3b2f0b619944bf2173ded8e10a89271fc4b2c713378b85d976a8580d15a473d5b0e6229f2911908fb1cc7397e516d618e61831c3becd65623214d94 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DZOPFLI_BUILD_INSTALL=ON ) vcpkg_cmake_install() vcpkg_copy_pdbs() # Install tools file(COPY "${CURRENT_PACKAGES_DIR}/bin/zopfli${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(COPY "${CURRENT_PACKAGES_DIR}/bin/zopflipng${VCPKG_TARGET_EXECUTABLE_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/zopfli${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/bin/zopflipng${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/zopfli${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/zopflipng${VCPKG_TARGET_EXECUTABLE_SUFFIX}" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR NOT VCPKG_TARGET_IS_WINDOWS) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") endif() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/Zopfli") # vcpkg_cmake_config_fixup can not handles this on UNIX currently. if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zopfli/ZopfliConfig-debug.cmake" "\"\${_IMPORT_PREFIX}/debug/bin/zopfli\"" "\"\${_IMPORT_PREFIX}/tools/zopfli/zopfli\"" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zopfli/ZopfliConfig-debug.cmake" "\"\${_IMPORT_PREFIX}/debug/bin/zopflipng\"" "\"\${_IMPORT_PREFIX}/tools/zopfli/zopflipng\"" IGNORE_UNCHANGED ) endif() vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zopfli/ZopfliConfig-release.cmake" "\"\${_IMPORT_PREFIX}/bin/zopfli\"" "\"\${_IMPORT_PREFIX}/tools/zopfli/zopfli\"" IGNORE_UNCHANGED ) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/zopfli/ZopfliConfig-release.cmake" "\"\${_IMPORT_PREFIX}/bin/zopflipng\"" "\"\${_IMPORT_PREFIX}/tools/zopfli/zopflipng\"" IGNORE_UNCHANGED ) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") ================================================ FILE: ports/zopfli/vcpkg.json ================================================ { "name": "zopfli", "version": "1.0.3", "port-version": 4, "description": "Zopfli Compression Algorithm compression library programmed in C", "homepage": "https://github.com/google/zopfli", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/zpp-bits/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO eyalz800/zpp_bits REF "v${VERSION}" SHA512 faa96f9702a96fae10ba9dec01d0eda0e708a8bda2ee9febbcca89dfe78cf4947edbff941fe51c5529ad4c76a344ea187069ba3ed79daa36140cf39acfb522b8 HEAD_REF master ) file(INSTALL "${SOURCE_PATH}/zpp_bits.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zpp-bits/vcpkg.json ================================================ { "name": "zpp-bits", "version": "4.6", "description": "A lightweight C++20 serialization and RPC library", "homepage": "https://github.com/eyalz800/zpp_bits", "license": "MIT" } ================================================ FILE: ports/zserge-webview/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO webview/webview REF ${VERSION} SHA512 f198e414145101693fd2b5724fb017df578770c6edda319ce312cf9e9e1fdc1b1d94beba2e64e75d9746dee16010cc525be8ae7ca0713ee541b75a0a1d9bc791 HEAD_REF master ) file(COPY "${SOURCE_PATH}/core/include/webview.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") set(WEBVIEW_GTK "0") set(WEBVIEW_EDGE "0") set(WEBVIEW_COCOA "0") if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(WEBVIEW_EDGE "1") elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(WEBVIEW_COCOA "1") elseif (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") set(WEBVIEW_GTK "1") endif() file(READ "${CURRENT_PACKAGES_DIR}/include/webview.h" _contents) string(REPLACE "#ifdef WEBVIEW_STATIC" "#if 1 // #ifdef WEBVIEW_STATIC" _contents "${_contents}" ) string(REPLACE "#ifdef WEBVIEW_IMPLEMENTATION" "#if 1 // #ifdef WEBVIEW_IMPLEMENTATION" _contents "${_contents}" ) string(REPLACE "defined(WEBVIEW_GTK)" "${WEBVIEW_GTK} // defined(WEBVIEW_GTK)" _contents "${_contents}" ) string(REPLACE "defined(WEBVIEW_WINAPI)" "${WEBVIEW_WINAPI} // defined(WEBVIEW_WINAPI)" _contents "${_contents}" ) string(REPLACE "defined(WEBVIEW_COCOA)" "${WEBVIEW_COCOA} // defined(WEBVIEW_COCOA)" _contents "${_contents}" ) file(WRITE "${CURRENT_PACKAGES_DIR}/include/webview.h" "${_contents}") # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zserge-webview/vcpkg.json ================================================ { "name": "zserge-webview", "version": "0.12.0", "description": "Tiny cross-platform webview library for C/C++/Golang.", "homepage": "https://github.com/webview/webview", "license": "MIT" } ================================================ FILE: ports/zstd/fix-emscripten-and-clang-cl.patch ================================================ diff --git a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake index 5f381c6..f1e9b32 100644 --- a/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake +++ b/build/cmake/CMakeModules/AddZstdCompilationFlags.cmake @@ -79,10 +79,22 @@ macro(ADD_ZSTD_COMPILATION_FLAGS) endif () # Add noexecstack flags # LDFLAGS - EnableCompilerFlag("-Wl,-z,noexecstack" false false true) - # CFLAGS & CXXFLAGS - EnableCompilerFlag("-Qunused-arguments" true true false) - EnableCompilerFlag("-Wa,--noexecstack" true true false) + if(MSVC) + # UNICODE SUPPORT + EnableCompilerFlag("/D_UNICODE" true true false) + EnableCompilerFlag("/DUNICODE" true true false) + # Enable asserts in Debug mode + if (CMAKE_BUILD_TYPE MATCHES "Debug") + EnableCompilerFlag("/DDEBUGLEVEL=1" true true false) + endif () + else() + if(NOT EMSCRIPTEN) + EnableCompilerFlag("-z noexecstack" false false true) + endif() + # CFLAGS & CXXFLAGS + EnableCompilerFlag("-Qunused-arguments" true true false) + EnableCompilerFlag("-Wa,--noexecstack" true true false) + endif() # NOTE: Using 3 nested ifs because the variables are sometimes # empty if the condition is false, and sometimes equal to false. # This implicitly converts them to truthy values. There may be ================================================ FILE: ports/zstd/fix-windows-rc-compile.patch ================================================ diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt index 5d514ccb..dd79efb7 100644 --- a/build/cmake/lib/CMakeLists.txt +++ b/build/cmake/lib/CMakeLists.txt @@ -123,7 +123,7 @@ set(PUBLIC_INCLUDE_DIRS ${LIBRARY_DIR}) set(library_targets) if (ZSTD_BUILD_SHARED) add_library(libzstd_shared SHARED ${Sources} ${Headers} ${PlatformDependResources}) - target_include_directories(libzstd_shared INTERFACE $) + target_include_directories(libzstd_shared PUBLIC $) list(APPEND library_targets libzstd_shared) if (ZSTD_MULTITHREAD_SUPPORT) set_property(TARGET libzstd_shared APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD") ================================================ FILE: ports/zstd/no-static-suffix.patch ================================================ diff --git a/build/cmake/lib/CMakeLists.txt b/build/cmake/lib/CMakeLists.txt index 8234060..765f003 100644 --- a/build/cmake/lib/CMakeLists.txt +++ b/build/cmake/lib/CMakeLists.txt @@ -118,7 +118,7 @@ endif () # With MSVC static library needs to be renamed to avoid conflict with import library if (MSVC OR (WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT MINGW)) - set(STATIC_LIBRARY_BASE_NAME zstd_static) + set(STATIC_LIBRARY_BASE_NAME zstd) else () set(STATIC_LIBRARY_BASE_NAME zstd) endif () ================================================ FILE: ports/zstd/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO facebook/zstd REF "v${VERSION}" SHA512 26e441267305f6e58080460f96ab98645219a90d290a533410b1b0b1d2f870721c95f8384e342ee647c5e968385a5b7e30c2d04340c37f59b3e6d86762c3260c HEAD_REF dev PATCHES no-static-suffix.patch fix-emscripten-and-clang-cl.patch fix-windows-rc-compile.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ZSTD_BUILD_STATIC) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ZSTD_BUILD_SHARED) if("tools" IN_LIST FEATURES) set(ZSTD_BUILD_PROGRAMS 1) else() set(ZSTD_BUILD_PROGRAMS 0) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/build/cmake" OPTIONS -DZSTD_BUILD_SHARED=${ZSTD_BUILD_SHARED} -DZSTD_BUILD_STATIC=${ZSTD_BUILD_STATIC} -DZSTD_LEGACY_SUPPORT=1 -DZSTD_BUILD_TESTS=0 -DZSTD_BUILD_CONTRIB=0 -DZSTD_MULTITHREAD_SUPPORT=1 OPTIONS_RELEASE -DZSTD_BUILD_PROGRAMS=${ZSTD_BUILD_PROGRAMS} OPTIONS_DEBUG -DZSTD_BUILD_PROGRAMS=OFF ) vcpkg_cmake_install() vcpkg_copy_pdbs() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zstd) vcpkg_fixup_pkgconfig() file(READ "${CURRENT_PACKAGES_DIR}/share/zstd/zstdTargets.cmake" targets) if(targets MATCHES "-pthread") vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libzstd.pc" " -lzstd" " -lzstd -pthread") if(NOT VCPKG_BUILD_TYPE) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libzstd.pc" " -lzstd" " -lzstd -pthread") endif() endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") foreach(HEADER IN ITEMS zdict.h zstd.h zstd_errors.h) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/${HEADER}" "defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1)" "1" ) endforeach() endif() if(VCPKG_TARGET_IS_WINDOWS AND ZSTD_BUILD_PROGRAMS) vcpkg_copy_tools(TOOL_NAMES zstd AUTO_CLEAN) endif() file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_install_copyright( COMMENT "ZSTD is dual licensed under BSD and GPLv2." FILE_LIST "${SOURCE_PATH}/LICENSE" "${SOURCE_PATH}/COPYING" ) ================================================ FILE: ports/zstd/usage ================================================ zstd provides CMake targets: find_package(zstd CONFIG REQUIRED) target_link_libraries(main PRIVATE zstd::libzstd) ================================================ FILE: ports/zstd/vcpkg.json ================================================ { "name": "zstd", "version": "1.5.7", "description": "Zstandard - Fast real-time compression algorithm", "homepage": "https://facebook.github.io/zstd/", "license": "BSD-3-Clause OR GPL-2.0-only", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "tools": { "description": "Build zstd binary", "supports": "!uwp & static" } } } ================================================ FILE: ports/zstr/portfile.cmake ================================================ # header-only library vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mateidavid/zstr REF "v${VERSION}" SHA512 21778d2b07c30da4fb9ee35832f39b02c95e54478c6610e28cece98908c51bcee6aed0754ec3948b71aa1e671a3d15ff2b555369379dc4583048c76d2b8305e8 HEAD_REF master ) # Install source files file(INSTALL "${SOURCE_PATH}/src/strict_fstream.hpp" "${SOURCE_PATH}/src/zstr.hpp" DESTINATION "${CURRENT_PACKAGES_DIR}/include") # Install license vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") # Install usage file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") ================================================ FILE: ports/zstr/usage ================================================ The package zstr is header only and can be used from CMake via: find_package(ZLIB REQUIRED) target_link_libraries(main PRIVATE ZLIB::ZLIB) find_path(ZSTR_INCLUDE_DIRS "zstr.hpp") target_include_directories(main PRIVATE ${ZSTR_INCLUDE_DIRS}) ================================================ FILE: ports/zstr/vcpkg.json ================================================ { "name": "zstr", "version": "1.1.0", "description": "This C++ header-only library enables the use of C++ standard iostreams to access ZLib-compressed streams.", "homepage": "https://github.com/mateidavid/zstr", "license": "MIT", "dependencies": [ "zlib" ] } ================================================ FILE: ports/ztd-cuneicode/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 00aa8b6..d49889b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,12 @@ FetchContent_Declare(ztd.cmake GIT_TAG main) FetchContent_MakeAvailable(ztd.cmake) set(CMAKE_PROJECT_INCLUDE ${ZTD_CMAKE_PROJECT_PRELUDE}) +include(FetchContent) +FetchContent_Declare(ztd.cmake + GIT_REPOSITORY https://github.com/soasis/cmake + GIT_TAG main) +FetchContent_MakeAvailable(ztd.cmake) +set(CMAKE_PROJECT_INCLUDE ${ZTD_CMAKE_PROJECT_PRELUDE}) # # Project declaration # informs about the project, gives a description, version and MOST IMPORTANTLY @@ -49,6 +55,8 @@ project(ztd.cuneicode HOMEPAGE_URL "https://ztdcuneicode.readthedocs.io/en/latest/" LANGUAGES C CXX) +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) if(ZTD_CUNEICODE_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? include(CheckCXXCompilerFlag) @@ -132,15 +140,7 @@ option(ZTD_CUNEICODE_SIMDUTF_SHARED "Enable the simdutf shared target for cuneic # # Dependencies # ztd.idk -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) -# ztd.encoding_tables -FetchContent_Declare(ztd.encoding_tables - GIT_REPOSITORY https://github.com/soasis/encoding_tables.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.encoding_tables) +find_package(ztd.encoding_tables CONFIG REQUIRED) # # Main Library file(GLOB ztd.cuneicode.includes CONFIGURE_DEPENDS include/*.hpp) @@ -187,15 +187,12 @@ target_compile_options(ztd.cuneicode PUBLIC ${--enable-conforming-preprocessor} ) +install(TARGETS ztd.cuneicode + EXPORT ztd.cuneicode-targets + DESTINATION lib) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) -install(TARGETS ztd.cuneicode - PUBLIC_HEADER - RUNTIME - ARCHIVE - LIBRARY -) # # Config / Version packaging # Version configurations @@ -213,6 +210,15 @@ export(TARGETS ztd.cuneicode FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.cuneicode/ztd.cuneicode-targets.cmake") +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.cuneicode/ztd.cuneicode-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.cuneicode/ztd.cuneicode-config-version.cmake + DESTINATION share/ztd.cuneicode + ) +install(EXPORT ztd.cuneicode-targets + FILE ztd.cuneicode-targets.cmake + DESTINATION share/ztd.cuneicode +) if(ZTD_CUNEICODE_GENERATE_SINGLE) add_subdirectory(single) endif() diff --git a/cmake/ztd.cuneicode-config.cmake.in b/cmake/ztd.cuneicode-config.cmake.in index 4bfb041..1b28918 100644 --- a/cmake/ztd.cuneicode-config.cmake.in +++ b/cmake/ztd.cuneicode-config.cmake.in @@ -1,8 +1,13 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(ztd.encoding_tables CONFIG) -if (TARGET ztd::cuneicode) +include(${CMAKE_CURRENT_LIST_DIR}/ztd.cuneicode-targets.cmake) + +if (TARGET ztd.cuneicode) + add_library(ztd::cuneicode ALIAS ztd.cuneicode) get_target_property(ZTD_CUNEICODE_INCLUDE_DIRS - ztd.cuneicode.single INTERFACE_INCLUDE_DIRECTORIES) + ztd.cuneicode INTERFACE_INCLUDE_DIRECTORIES) set_and_check(ZTD_CUNEICODE_INCLUDE_DIRS "${ZTD_CUNEICODE_INCLUDE_DIRS}") endif() ================================================ FILE: ports/ztd-cuneicode/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/cuneicode REF 093041aa934b7b09e7ee7300abdc3f54bb57e389 SHA512 0066fee5cf75fa07dc97934153e4206e4add69f15602526c1953b0302d5a6f8b56256e837a73acee187b0e02e676fba1350ad39b162c4901c624b12fa4e0fb03 HEAD_REF main PATCHES fix-cmake-install.patch # Also contains https://github.com/soasis/cuneicode/pull/12 ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-cuneicode/vcpkg.json ================================================ { "name": "ztd-cuneicode", "version-date": "2023-11-03", "port-version": 1, "description": "Shared tables between C and C++ for encoding infrastructure", "homepage": "http://ztdcuneicode.rtfd.io/", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "ztd-encoding-tables" ] } ================================================ FILE: ports/ztd-encoding-tables/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7612c6c..8d2233d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,8 @@ project(ztd.encoding_tables HOMEPAGE_URL "https://ztdencoding_tables.rtfd.io/" LANGUAGES CXX C) +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) if(ZTD_ENCODING_TABLES_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? include(CheckCXXCompilerFlag) @@ -127,10 +129,7 @@ if(ZTD_ENCODING_TABLES_IS_TOP_LEVEL_PROJECT) endif() # # Main Dependency -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) +find_package(ztd.idk CONFIG REQUIRED) # # Main library declarations # ztd.encoding_tables @@ -179,7 +178,9 @@ if(ZTD_ENCODING_TABLES_IS_TOP_LEVEL_PROJECT) ) endif() -install(TARGETS ztd.encoding_tables) +install(TARGETS ztd.encoding_tables + EXPORT ztd.encoding_tables-targets + DESTINATION lib) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) @@ -199,9 +200,15 @@ export(TARGETS ztd.encoding_tables "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.encoding_tables/ztd.encoding_tables-targets.cmake" ) -install( - DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/cmake" - TYPE DATA +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.encoding_tables/ztd.encoding_tables-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.encoding_tables/ztd.encoding_tables-config-version.cmake + DESTINATION share/ztd.encoding_tables + ) + +install(EXPORT ztd.encoding_tables-targets + FILE ztd.encoding_tables-targets.cmake + DESTINATION share/ztd.encoding_tables ) if(ZTD_ENCODING_TABLES_GENERATE_SINGLE) diff --git a/cmake/ztd.encoding_tables-config.cmake.in b/cmake/ztd.encoding_tables-config.cmake.in index 2b8db83..579f865 100644 --- a/cmake/ztd.encoding_tables-config.cmake.in +++ b/cmake/ztd.encoding_tables-config.cmake.in @@ -1,6 +1,7 @@ @PACKAGE_INIT@ -find_package(ztd.encoding_tables CONFIG REQUIRED) +include(CMakeFindDependencyMacro) +find_dependency(ztd.idk CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/ztd.encoding_tables-targets.cmake) if (TARGET ztd.encoding_tables) ================================================ FILE: ports/ztd-encoding-tables/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/encoding_tables REF 2f4324b3d84db2300d0bf3d0e568a28992df2b55 SHA512 ec8684bca5673609c0b3014228b6b35647896f8288d6ef85778a7bb8a191c4c92985a11d625e7e5e306b738c16dce232f2604e7cf583ca5e9b76ff4a9f447732 HEAD_REF main PATCHES fix-cmake-install.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-encoding-tables/vcpkg.json ================================================ { "name": "ztd-encoding-tables", "version-date": "2023-06-10", "description": "Shared tables between C and C++ for encoding infrastructure", "homepage": "https://github.com/soasis/encoding_tables", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "ztd-idk" ] } ================================================ FILE: ports/ztd-idk/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 746afa7..803b82e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,11 +34,6 @@ cmake_policy(VERSION 3.21) # # Project kickstart # Includes a bunch of basic flags and utilities shared across projects # See more at the github repository link below -include(FetchContent) -FetchContent_Declare(ztd.cmake - GIT_REPOSITORY https://github.com/soasis/cmake.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.cmake) set(CMAKE_PROJECT_INCLUDE ${ZTD_CMAKE_PROJECT_PRELUDE}) # # Project declaration @@ -50,6 +45,8 @@ project(ztd.idk HOMEPAGE_URL "https://ztdidk.rtfd.io/" LANGUAGES CXX C) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) if(ZTD_IDK_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? include(CheckCXXCompilerFlag) @@ -89,9 +86,6 @@ if(ZTD_IDK_IS_TOP_LEVEL_PROJECT) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin") - if(NOT DEFINED CMAKE_CXX_STANDARD) - set(CMAKE_CXX_STANDARD 17) - endif() if(NOT DEFINED CMAKE_C_STANDARD) set(CMAKE_C_STANDARD 11) @@ -133,6 +127,7 @@ endif() # ztd.version add_library(ztd.version INTERFACE) add_library(ztd::version ALIAS ztd.version) +target_compile_features(ztd.version INTERFACE cxx_std_20) target_include_directories(ztd.version INTERFACE $ @@ -143,20 +138,32 @@ install(DIRECTORY include/ ${CMAKE_INSTALL_INCLUDEDIR} ) +install(TARGETS ztd.version + EXPORT ztd.version-targets + DESTINATION lib) configure_package_config_file( cmake/ztd.version-config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.version/ztd.version-config.cmake" - INSTALL_DESTINATION lib/cmake/ztd.version + INSTALL_DESTINATION share/ztd.version NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.version/ztd.version-config-version.cmake" COMPATIBILITY SameMajorVersion ) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.version/ztd.version-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.version/ztd.version-config-version.cmake + DESTINATION share/ztd.version + ) export(TARGETS ztd.version FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.version/ztd.version-targets.cmake" ) +install(EXPORT ztd.version-targets + FILE ztd.version-targets.cmake + DESTINATION share/ztd.version +) # ztd.tag_invoke file(GLOB_RECURSE ztd.tag_invoke.includes @@ -166,6 +173,7 @@ file(GLOB_RECURSE ztd.tag_invoke.includes ) add_library(ztd.tag_invoke INTERFACE) +target_compile_features(ztd.tag_invoke INTERFACE cxx_std_20) add_library(ztd::tag_invoke ALIAS ztd.tag_invoke) target_include_directories(ztd.tag_invoke INTERFACE @@ -179,10 +187,14 @@ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) +install(TARGETS ztd.tag_invoke + EXPORT ztd.tag_invoke-targets + DESTINATION lib) + configure_package_config_file( cmake/ztd.tag_invoke-config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.tag_invoke/ztd.tag_invoke-config.cmake" - INSTALL_DESTINATION lib/cmake/ztd.tag_invoke + INSTALL_DESTINATION share/ztd.tag_invoke NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( @@ -193,6 +205,16 @@ export(TARGETS ztd.tag_invoke FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.tag_invoke/ztd.tag_invoke-targets.cmake" ) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.tag_invoke/ztd.tag_invoke-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.tag_invoke/ztd.tag_invoke-config-version.cmake + DESTINATION share/ztd.tag_invoke +) +install(EXPORT ztd.tag_invoke-targets + FILE ztd.tag_invoke-targets.cmake + DESTINATION share/ztd.tag_invoke +) + # ztd.idk file(GLOB_RECURSE ztd.idk.includes @@ -241,7 +263,9 @@ if(ZTD_IDK_IS_TOP_LEVEL_PROJECT) ) endif() -install(TARGETS ztd.idk) +install(TARGETS ztd.idk + EXPORT ztd.idk-targets + DESTINATION lib) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) @@ -249,7 +273,7 @@ install(DIRECTORY include/ configure_package_config_file( cmake/ztd.idk-config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.idk/ztd.idk-config.cmake" - INSTALL_DESTINATION lib/cmake/ztd.idk + INSTALL_DESTINATION share/ztd.idk NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file( @@ -261,11 +285,17 @@ export(TARGETS ztd.idk "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.idk/ztd.idk-targets.cmake" ) -install( - DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/cmake" - TYPE DATA +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.idk/ztd.idk-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.idk/ztd.idk-config-version.cmake + DESTINATION share/ztd.idk/ + ) +install(EXPORT ztd.idk-targets + FILE ztd.idk-targets.cmake + DESTINATION share/ztd.idk/ ) + if(ZTD_IDK_GENERATE_SINGLE) add_subdirectory(single) endif() diff --git a/cmake/ztd.idk-config.cmake.in b/cmake/ztd.idk-config.cmake.in index 4ceb0ec..8377221 100644 --- a/cmake/ztd.idk-config.cmake.in +++ b/cmake/ztd.idk-config.cmake.in @@ -1,7 +1,8 @@ @PACKAGE_INIT@ -find_package(ztd.version CONFIG REQUIRED) -find_package(ztd.tag_invoke CONFIG REQUIRED) +include(CMakeFindDependencyMacro) +find_dependency(ztd.version CONFIG ) +find_dependency(ztd.tag_invoke CONFIG) include(${CMAKE_CURRENT_LIST_DIR}/ztd.idk-targets.cmake) if (TARGET ztd.idk) diff --git a/cmake/ztd.tag_invoke-config.cmake.in b/cmake/ztd.tag_invoke-config.cmake.in index 504c60b..ee2f5cd 100644 --- a/cmake/ztd.tag_invoke-config.cmake.in +++ b/cmake/ztd.tag_invoke-config.cmake.in @@ -1,6 +1,6 @@ @PACKAGE_INIT@ - -find_package(ztd.version CONFIG REQUIRED) +include(CMakeFindDependencyMacro) +find_dependency(ztd.version CONFIG ) include(${CMAKE_CURRENT_LIST_DIR}/ztd.tag_invoke-targets.cmake) if (TARGET ztd.tag_invoke) ================================================ FILE: ports/ztd-idk/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/idk REF ad64a1759a506bb0761c7b20c40da8c91865f50e SHA512 b6f1afa78b23331ba19116101667bb9dd070deafb9d685f99f165c75ec30d7bfe90443034b6f1882c3186c490f3fc4ed648cdc3fff6fa8450375676d8e9c4727 HEAD_REF main PATCHES fix-cmake-install.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-idk/vcpkg.json ================================================ { "name": "ztd-idk", "version-date": "2023-11-03", "description": "The IDK (Industrial Development Kit) library!", "homepage": "https://github.com/soasis/idk", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/ztd-platform/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 57c97c4..d0e0da9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,8 @@ project(ztd.platform HOMEPAGE_URL "https://ztdplatform.readthedocs.io/en/latest/" LANGUAGES C CXX) +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) if(ZTD_PLATFORM_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? include(CheckCXXCompilerFlag) @@ -121,10 +123,7 @@ option(ZTD_PLATFORM_USE_ENCODING_C "Enable encoding_rs's C bindings with ztd::pl # # Dependencies # ztd.idk -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) +find_package(ztd.idk CONFIG REQUIRED) # encoding_c if (ZTD_PLATFORM_USE_ENCODING_C) @@ -408,11 +407,8 @@ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) install(TARGETS ztd.platform - PUBLIC_HEADER - RUNTIME - ARCHIVE - LIBRARY -) + EXPORT ztd.platform-targets + DESTINATION lib) # # Config / Version packaging # Version configurations @@ -430,6 +426,15 @@ export(TARGETS ztd.platform FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.platform/ztd.platform-targets.cmake") +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.platform/ztd.platform-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.platform/ztd.platform-config-version.cmake + DESTINATION share/ztd.platform + ) +install(EXPORT ztd.platform-targets + FILE ztd.platform-targets.cmake + DESTINATION share/ztd.platform +) # # Benchmarks, Tests, Examples if(ZTD_PLATFORM_TESTS) include(CTest) diff --git a/cmake/ztd.platform-config.cmake.in b/cmake/ztd.platform-config.cmake.in index 37629fc..5d5886c 100644 --- a/cmake/ztd.platform-config.cmake.in +++ b/cmake/ztd.platform-config.cmake.in @@ -1,6 +1,11 @@ @PACKAGE_INIT@ -if (TARGET ztd::platform) +include(CMakeFindDependencyMacro) +find_dependency(ztd.idk CONFIG) + +include(${CMAKE_CURRENT_LIST_DIR}/ztd.platform-targets.cmake) +if (TARGET ztd.platform) + add_library(ztd::platform ALIAS ztd.platform) get_target_property(ZTD_PLATFORM_INCLUDE_DIRS ztd.platform INTERFACE_INCLUDE_DIRECTORIES) set_and_check(ZTD_PLATFORM_INCLUDE_DIRS "${ZTD_PLATFORM_INCLUDE_DIRS}") ================================================ FILE: ports/ztd-platform/portfile.cmake ================================================ if (VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/platform REF d92b8e5b85a4cabae62ad19ccfcc5c3f94ab1a14 SHA512 d7482bbfa00c6c8226e368fde664ee77e915b4d01ea93e79dffb43b51b44808628c1d3d3daa5e6c8e5cd239dcd4c1ae31c3d0f534df9e1e9bf7a134b24322cfa HEAD_REF main PATCHES fix-cmake-install.patch ) vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} ) vcpkg_cmake_install() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-platform/vcpkg.json ================================================ { "name": "ztd-platform", "version-date": "2022-12-30", "description": "A library for messing with platfom-dependent configurations and libraries, and sometimes hiding their cores.", "homepage": "https://github.com/soasis/platform", "license": "Apache-2.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "ztd-idk" ] } ================================================ FILE: ports/ztd-static-containers/fix-cmake.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 32371d4..22223ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,8 @@ project(ztd.static_containers VERSION 0.5.0 DESCRIPTION "A library for a fixed-capacity vector." LANGUAGES C CXX) +include(CMakePackageConfigHelpers) +include(GNUInstallDirs) if(ZTD_STATIC_CONTAINERS_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? @@ -113,10 +115,7 @@ option(ZTD_STATIC_CONTAINERS_BENCHMARKS "Enable build of benchmarks" OFF) # # Dependencies # ztd.idk -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) +find_package(ztd.idk CONFIG REQUIRED) file(GLOB_RECURSE ztd.static_containers.sources LIST_DIRECTORIES FALSE @@ -126,7 +125,6 @@ file(GLOB_RECURSE ztd.static_containers.sources add_library(ztd.static_containers INTERFACE) add_library(ztd::static_containers ALIAS ztd.static_containers) -target_sources(ztd.static_containers INTERFACE ${ztd.static_containers.sources}) target_link_libraries(ztd.static_containers INTERFACE ztd::idk @@ -155,6 +153,18 @@ export(TARGETS ztd.static_containers FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.static_containers/ztd.static_containers-targets.cmake") +install(TARGETS ztd.static_containers + EXPORT ztd.static_containers-targets) +install(EXPORT ztd.static_containers-targets + FILE ztd.static_containers-targets.cmake + DESTINATION share/ztd.static_containers +) +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.static_containers/ztd.static_containers-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.static_containers/ztd.static_containers-config-version.cmake + DESTINATION share/ztd.static_containers +) + # # Benchmarks, Tests, Examples if(ZTD_STATIC_CONTAINERS_TESTS) enable_testing() diff --git a/cmake/ztd.static_containers-config.cmake.in b/cmake/ztd.static_containers-config.cmake.in index f96ace2..94340c1 100644 --- a/cmake/ztd.static_containers-config.cmake.in +++ b/cmake/ztd.static_containers-config.cmake.in @@ -1,6 +1,9 @@ @PACKAGE_INIT@ - -if (TARGET ztd::static_containers) +include(CMakeFindDependencyMacro) +find_dependency(ztd.idk CONFIG) +include("${CMAKE_CURRENT_LIST_DIR}/ztd.static_containers-targets.cmake") +if (TARGET ztd.static_containers) + add_library(ztd::static_containers ALIAS ztd.static_containers) get_target_property(ZTD_STATIC_CONTAINERS_INCLUDE_DIRS ztd.static_containers INTERFACE_INCLUDE_DIRECTORIES) set_and_check(ZTD_STATIC_CONTAINERS_INCLUDE_DIRS "${ZTD_STATIC_CONTAINERS_INCLUDE_DIRS}") ================================================ FILE: ports/ztd-static-containers/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/static_containers REF e1a21217b6dba3028e6cc6bf0f9562972ea1c43d SHA512 b108b1e206854ddb4ceed9780c89c8db717c87bd010ee5ff1f176b79a26192dcc46a68b3d9b254b469f3869ec46738c0aabb0ccf0621444bb50bee306bdbe2fc HEAD_REF main PATCHES fix-cmake.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-static-containers/vcpkg.json ================================================ { "name": "ztd-static-containers", "version-date": "2022-12-12", "port-version": 2, "description": "Containers of fixed capacity", "homepage": "https://github.com/soasis/static_containers", "license": "CC0-1.0", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "ztd-idk" ] } ================================================ FILE: ports/ztd-text/fix-cmake-install.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 607394b..d80fb23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,12 +34,6 @@ cmake_policy(VERSION 3.21) # # Project kickstart # Includes a bunch of basic flags and utilities shared across projects # See more at the github repository link below -include(FetchContent) -FetchContent_Declare(ztd.cmake - GIT_REPOSITORY https://github.com/soasis/cmake - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.cmake) set(CMAKE_PROJECT_INCLUDE ${ZTD_CMAKE_PROJECT_PRELUDE}) # # Project declaration @@ -51,6 +45,8 @@ project(ztd.text HOMEPAGE_URL "https://ztdtext.readthedocs.io/en/latest/" LANGUAGES C CXX) +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) if(ZTD_TEXT_READTHEDOCS) # ReadTheDocs seems unable to handle the include at the project level: something must be going wrong? include(CheckCXXCompilerFlag) @@ -139,40 +135,18 @@ option(ZTD_TEXT_BOOST.TEXT "Enable usage of Boost.Text benchmarks and examples" # # Dependencies # ztd.idk -FetchContent_Declare(ztd.idk - GIT_REPOSITORY https://github.com/soasis/idk.git - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.idk) # ztd.static_containers -FetchContent_Declare(ztd.static_containers - GIT_REPOSITORY https://github.com/soasis/static_containers.git - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.static_containers) +find_package(ztd.static_containers CONFIG REQUIRED) # ztd.encoding_tables -FetchContent_Declare(ztd.encoding_tables - GIT_REPOSITORY https://github.com/soasis/encoding_tables.git - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.encoding_tables) # ztd.cuneicode +find_package(ztd.cuneicode CONFIG REQUIRED) set(ZTD_CUNEICODE_SIMDUTF_SHARED ${ZTD_TEXT_BENCHMARKS}) -FetchContent_Declare(ztd.cuneicode - GIT_REPOSITORY https://github.com/soasis/cuneicode.git - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.cuneicode) # ztd.platform -FetchContent_Declare(ztd.platform - GIT_REPOSITORY https://github.com/soasis/platform.git - GIT_SHALLOW ON - GIT_TAG main) -FetchContent_MakeAvailable(ztd.platform) +find_package(ztd.platform CONFIG REQUIRED) if (ZTD_TEXT_BENCHAMRKS OR ZTD_TEXT_GENERATE_SINGLE OR ZTD_TEXT_DOCUMENTATION) find_package(Python3 REQUIRED COMPONENTS Interpreter) @@ -187,16 +161,17 @@ target_include_directories(ztd.text INTERFACE $ $) -target_sources(ztd.text INTERFACE ${ztd.text.includes}) target_link_libraries(ztd.text INTERFACE - ztd::idk ztd::static_containers ztd::platform ztd::cuneicode) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(TARGETS ztd.text + EXPORT ztd.text-targets + DESTINATION lib) # # Config / Version packaging # Version configurations configure_package_config_file( @@ -213,6 +188,15 @@ export(TARGETS ztd.text FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.text/ztd.text-targets.cmake") +install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.text/ztd.text-config.cmake + ${CMAKE_CURRENT_BINARY_DIR}/cmake/ztd.text/ztd.text-config-version.cmake + DESTINATION share/ztd.text + ) +install(EXPORT ztd.text-targets + FILE ztd.text-targets.cmake + DESTINATION share/ztd.text +) if(ZTD_TEXT_GENERATE_SINGLE) add_subdirectory(single) endif() diff --git a/cmake/ztd.text-config.cmake.in b/cmake/ztd.text-config.cmake.in index a526740..e11ce0c 100644 --- a/cmake/ztd.text-config.cmake.in +++ b/cmake/ztd.text-config.cmake.in @@ -1,6 +1,11 @@ @PACKAGE_INIT@ +include(CMakeFindDependencyMacro) +find_dependency(ztd.platform CONFIG) +find_dependency(ztd.static_containers CONFIG) -if (TARGET ztd::text) +include (${CMAKE_CURRENT_LIST_DIR}/ztd.text-targets.cmake) +if (TARGET ztd.text) + add_library(ztd::text ALIAS ztd.text) get_target_property(ZTD_TEXT_INCLUDE_DIRS ztd.text INTERFACE_INCLUDE_DIRECTORIES) set_and_check(ZTD_TEXT_INCLUDE_DIRS "${ZTD_TEXT_INCLUDE_DIRS}") ================================================ FILE: ports/ztd-text/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH ZTD_CMAKE_SOURCE_PATH REPO soasis/cmake REF c29df2f0b006f8b24214ccea0a7e2f8fbbe135ce SHA512 5dda06c1ba6422eb0d4392dee962e731505ec93ac90de0129a8b8519e376cc53e24177791e7fed373ca1b3f4377b450a65922ad37b612f29330e6f81d65ff463 ) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO soasis/text REF c07fba735ee8389d328103c10ce9a8d49f345060 SHA512 ca9ecacf3260f3915b7d2d90fb1d84f4083775043d592ac5d869a15debf5512d42488d43bd0d3d981180519359a423314e563f2065fa3effe2749904706f483a HEAD_REF main PATCHES fix-cmake-install.patch ) set(VCPKG_BUILD_TYPE release) # header-only vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS # See https://github.com/soasis/cmake/blob/c29df2f0b006f8b24214ccea0a7e2f8fbbe135ce/CMakeLists.txt#L43 "-DZTD_CMAKE_PACKAGES=${ZTD_CMAKE_SOURCE_PATH}/Packages" "-DZTD_CMAKE_MODULES=${ZTD_CMAKE_SOURCE_PATH}/Modules" "-DZTD_CMAKE_PROJECT_PRELUDE=${ZTD_CMAKE_SOURCE_PATH}/Includes/Project.cmake" ) vcpkg_cmake_install() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/ztd-text/vcpkg.json ================================================ { "name": "ztd-text", "version-date": "2023-11-03", "port-version": 1, "description": "A spicy text library.", "homepage": "https://github.com/soasis/text", "license": "Apache-2.0", "supports": "!uwp", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, "ztd-cuneicode", "ztd-platform", "ztd-static-containers" ] } ================================================ FILE: ports/zug/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO arximboldi/zug REF v${VERSION} SHA512 ffe55f2c0f026da4c5384f4f2cc7fbd661f38d7dfc3ad50cccf8010f78df9c6a81a9bf4b157c5d85104dc9fcc13fb51fb2c93a86a7a6a7e0ae87d1f14b0d3155 HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES docs zug_BUILD_DOCS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -Dzug_BUILD_EXAMPLES=OFF -Dzug_BUILD_TESTS=OFF ${FEATURE_OPTIONS} ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/Zug) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug" "${CURRENT_PACKAGES_DIR}/lib") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zug/vcpkg.json ================================================ { "name": "zug", "version": "0.1.2", "description": "Transducers for C++", "homepage": "https://sinusoid.es/zug/", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ], "features": { "docs": { "description": "Build documentation" } } } ================================================ FILE: ports/zxc/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO hellobertrand/zxc REF v${VERSION} SHA512 284d9c1f1f23bf0a78c91bf074ed61a6c163422b857e4e40e32035be9e3a365149333b6650621270ec12245c70fe486b1bcb2f8c0bd2489e3b1f44773fae115e HEAD_REF main ) # Remove vendored rapidhash to use the rapidhash port instead file(REMOVE "${SOURCE_PATH}/src/lib/vendors/rapidhash.h") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DZXC_NATIVE_ARCH=OFF -DZXC_ENABLE_LTO=OFF -DZXC_BUILD_CLI=OFF -DZXC_BUILD_TESTS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zxc) vcpkg_fixup_pkgconfig() vcpkg_copy_pdbs() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share" ) vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zxc/vcpkg.json ================================================ { "name": "zxc", "version": "0.9.1", "description": "High-performance asymmetric lossless compression library", "homepage": "https://github.com/hellobertrand/zxc", "license": "BSD-3-Clause AND MIT", "dependencies": [ "rapidhash", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/zycore/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zyantific/zycore-c REF "v${VERSION}" SHA512 dd410010b99e11f40ad5234d21c9857bd57e47591ed9caec45c6199bfd690f7158499659c874680f2087bfd2b6eee41f08e95c367f83af3585690ce7d20ccb87 HEAD_REF master ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" dynamic ZYCORE_BUILD_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DZYCORE_BUILD_SHARED_LIB=${ZYCORE_BUILD_SHARED} -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON ) vcpkg_cmake_install() vcpkg_cmake_config_fixup( CONFIG_PATH lib/cmake/zycore ) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zycore/vcpkg.json ================================================ { "name": "zycore", "version": "1.5.2", "description": "Provides platform independent types, macros and a fallback for environments without LibC.", "homepage": "https://github.com/zyantific/zycore-c", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/zydis/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zyantific/zydis REF "v${VERSION}" SHA512 177e84fedb3449e29ffb6c0b02a92066ba1aa8fb624facad5593902b8e08cb8ae0b20ff38c16987989c8e414d7484d09dab7917c00a8fe54aa9bab4bc90e275d HEAD_REF master PATCHES zycore.patch ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ZYDIS_BUILD_SHARED_LIB) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS FEATURES tools ZYDIS_BUILD_TOOLS ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS -DZYAN_SYSTEM_ZYCORE=ON -DZYDIS_BUILD_SHARED_LIB=${ZYDIS_BUILD_SHARED_LIB} -DZYDIS_BUILD_DOXYGEN=OFF -DZYDIS_BUILD_EXAMPLES=OFF -DZYDIS_BUILD_TESTS=OFF ${FEATURE_OPTIONS} OPTIONS_DEBUG -DZYDIS_BUILD_TOOLS=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/zydis) if ("tools" IN_LIST FEATURES) vcpkg_copy_tools(TOOL_NAMES ZydisDisasm ZydisInfo AUTO_CLEAN) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/Zydis/Defines.h" "defined(ZYDIS_STATIC_BUILD)" "1") endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") vcpkg_copy_pdbs() vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: ports/zydis/vcpkg.json ================================================ { "name": "zydis", "version-semver": "4.1.1", "port-version": 1, "description": "Fast and lightweight x86/x86-64 disassembler library.", "homepage": "https://zydis.re", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zycore" ], "features": { "tools": { "description": "Builds zydis executables" } } } ================================================ FILE: ports/zydis/zycore.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 62d5de6..ee500c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,7 +138,8 @@ function (locate_zycore) ) endfunction () -locate_zycore() +find_package(zycore CONFIG REQUIRED) +add_library(Zycore ALIAS Zycore::Zycore) # =============================================================================================== # # Library configuration # ================================================ FILE: ports/zyre/Config.cmake.in ================================================ @PACKAGE_INIT@ include(CMakeFindDependencyMacro) find_dependency(ZeroMQ) find_dependency(czmq) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") check_required_components("@PROJECT_NAME@") ================================================ FILE: ports/zyre/Findczmq.cmake ================================================ find_path(czmq_INCLUDE_DIRS NAMES czmq.h) find_package(czmq CONFIG REQUIRED) set(czmq_LIBRARIES czmq czmq-static) set(czmq_FOUND TRUE) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( czmq REQUIRED_VARS czmq_INCLUDE_DIRS czmq_LIBRARIES czmq_FOUND ) ================================================ FILE: ports/zyre/Findlibzmq.cmake ================================================ find_package(ZeroMQ CONFIG REQUIRED) set(libzmq_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR}) set(libzmq_LIBRARIES libzmq libzmq-static) set(libzmq_FOUND TRUE) include(FindPackageHandleStandardArgs) find_package_handle_standard_args( LIBZMQ REQUIRED_VARS libzmq_LIBRARIES libzmq_INCLUDE_DIRS libzmq_FOUND ) ================================================ FILE: ports/zyre/disable-examples-tests.patch ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 76725b0..70f7ad3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -303,9 +303,6 @@ if (ZYRE_BUILD_STATIC) endif() - -include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists-local.txt) # Optional project-local hook - ######################################################################## # pkgconfig ######################################################################## @@ -501,7 +498,7 @@ target_link_libraries( ${OPTIONAL_LIBRARIES_STATIC} ) endif() - +if(0) ######################################################################## # tests ######################################################################## @@ -570,7 +567,7 @@ foreach(TEST_CLASS ${TEST_CLASSES}) endforeach(TEST_CLASS) include(CTest) - +endif() ######################################################################## # cleanup ######################################################################## ================================================ FILE: ports/zyre/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO zeromq/zyre REF f2fd7252322b1b52be248b9ef96f8981de3b86ff SHA512 64502b4d1ca4296eb979a67f6058a80e931bb6db0cb29b94f6cb3285efe9a216e0014ea379a4018004f9354369bb98e5160474263568a825842e1e4d83a74225 HEAD_REF master PATCHES disable-examples-tests.patch ) configure_file( "${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in" "${SOURCE_PATH}/builds/cmake/Config.cmake.in" COPYONLY ) foreach(_cmake_module Findczmq.cmake Findlibzmq.cmake) configure_file( "${CMAKE_CURRENT_LIST_DIR}/${_cmake_module}" "${SOURCE_PATH}/${_cmake_module}" COPYONLY ) endforeach() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ZYRE_BUILD_SHARED) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ZYRE_BUILD_STATIC) set(RUNTIME_FLAGS) if(VCPKG_TARGET_IS_WINDOWS) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") list(APPEND RUNTIME_FLAGS -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>DLL) else() list(APPEND RUNTIME_FLAGS -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>) endif() endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE OPTIONS -DZYRE_BUILD_SHARED=${ZYRE_BUILD_SHARED} -DZYRE_BUILD_STATIC=${ZYRE_BUILD_STATIC} -DENABLE_DRAFTS=OFF ${RUNTIME_FLAGS} ) vcpkg_cmake_install() vcpkg_copy_pdbs() if(EXISTS "${CURRENT_PACKAGES_DIR}/CMake") vcpkg_cmake_config_fixup(CONFIG_PATH CMake) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/share/cmake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH share/cmake/${PORT}) elseif(EXISTS "${CURRENT_PACKAGES_DIR}/lib/cmake/${PORT}") vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) endif() file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" ) vcpkg_copy_tools(TOOL_NAMES zpinger AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") if(ZYRE_BUILD_STATIC) vcpkg_replace_string( "${CURRENT_PACKAGES_DIR}/include/zyre_library.h" "if defined ZYRE_STATIC" "if 1 //if defined ZYRE_STATIC" ) endif() # Handle copyright vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") vcpkg_fixup_pkgconfig() ================================================ FILE: ports/zyre/vcpkg-cmake-wrapper.cmake ================================================ _find_package(${ARGS}) if(TARGET zyre AND NOT TARGET zyre-static) add_library(zyre-static INTERFACE IMPORTED) set_target_properties(zyre-static PROPERTIES INTERFACE_LINK_LIBRARIES zyre) elseif(TARGET zyre-static AND NOT TARGET zyre) add_library(zyre INTERFACE IMPORTED) set_target_properties(zyre PROPERTIES INTERFACE_LINK_LIBRARIES zyre-static) endif() ================================================ FILE: ports/zyre/vcpkg.json ================================================ { "name": "zyre", "version-date": "2025-06-25", "description": "An open-source framework for proximity-based peer-to-peer applications", "homepage": "https://github.com/zeromq/zyre", "dependencies": [ "czmq", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: ports/zziplib/cmake-project-include.cmake ================================================ if(WIN32) add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS) endif() ================================================ FILE: ports/zziplib/no-release-postfix.patch ================================================ diff --git a/zzip/CMakeLists.txt b/zzip/CMakeLists.txt index 28f03aa..6f34cc8 100644 --- a/zzip/CMakeLists.txt +++ b/zzip/CMakeLists.txt @@ -248,16 +248,16 @@ add_custom_command(OUTPUT libzzipmmapped.so.gcov add_custom_target(libzzipmmapped.gcov DEPENDS libzzipmmapped.so.gcov) endif() -set_target_properties(libzzip PROPERTIES OUTPUT_NAME "zzip" RELEASE_POSTFIX "-${RELNUM}") +set_target_properties(libzzip PROPERTIES OUTPUT_NAME "zzip") SET_TARGET_PROPERTIES(libzzip PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) if(ZZIPFSEEKO) -set_target_properties(libzzipfseeko PROPERTIES OUTPUT_NAME "zzipfseeko" RELEASE_POSTFIX "-${RELNUM}") +set_target_properties(libzzipfseeko PROPERTIES OUTPUT_NAME "zzipfseeko") SET_TARGET_PROPERTIES(libzzipfseeko PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) endif() if(ZZIPMMAPPED) -set_target_properties(libzzipmmapped PROPERTIES OUTPUT_NAME "zzipmmapped" RELEASE_POSTFIX "-${RELNUM}") +set_target_properties(libzzipmmapped PROPERTIES OUTPUT_NAME "zzipmmapped") SET_TARGET_PROPERTIES(libzzipmmapped PROPERTIES VERSION ${VERNUM}.${FIXNUM} SOVERSION ${VERNUM}) endif() ================================================ FILE: ports/zziplib/portfile.cmake ================================================ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO gdraheim/zziplib REF "v${VERSION}" SHA512 1560b9b6851247ef07e64c689551e191eb26e2756f7ba32bdd1a7ed345a76b444050474b2fdd5f6308ca2ff1e9a55a55c8961eefaf8db0c6674c6a2f1c368a68 PATCHES no-release-postfix.patch ) string(COMPARE EQUAL VCPKG_CRT_LINKAGE "static" MSVC_STATIC_RUNTIME) string(COMPARE EQUAL VCPKG_LIBRARY_LINKAGE "static" BUILD_STATIC_LIBS) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake" -DMSVC_STATIC_RUNTIME=${MSVC_STATIC_RUNTIME} -DZZIP_COMPAT=OFF -DZZIP_LIBLATEST=OFF -DZZIP_LIBTOOL=OFF -DZZIP_TESTCVE=OFF -DZZIPBINS=OFF -DZZIPDOCS=OFF -DZZIPFSEEKO=OFF -DZZIPMMAPPED=OFF -DZZIPSDL=OFF -DZZIPTEST=OFF -DZZIPWRAP=OFF ) vcpkg_cmake_install() vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/zziplib") vcpkg_fixup_pkgconfig() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/zzipfseeko.pc" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/zzipmmapped.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/zzipfseeko.pc" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/zzipmmapped.pc" ) file(STRINGS "${CURRENT_PACKAGES_DIR}/include/zzip/_config.h" have_stdint_h REGEX "^#define ZZIP_HAVE_STDINT_H 1") if(have_stdint_h) file(REMOVE "${CURRENT_PACKAGES_DIR}/include/zzip/stdint.h") endif() vcpkg_install_copyright(COMMENT [[ zziplib is shipping under a dual MPL / LGPL license where each of them is separate and restrictions apply alternatively. ]] FILE_LIST "${SOURCE_PATH}/docs/COPYING.LIB" "${SOURCE_PATH}/docs/COPYING.MPL" ) ================================================ FILE: ports/zziplib/vcpkg.json ================================================ { "name": "zziplib", "version": "0.13.80", "description": "library providing read access on ZIP-archives", "homepage": "https://github.com/gdraheim/zziplib", "license": "LGPL-2.0-or-later OR MPL-1.1", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true }, "zlib" ] } ================================================ FILE: scripts/addPoshVcpkgToPowershellProfile.ps1 ================================================ [CmdletBinding()] param() function findExistingImportModuleDirectives([Parameter(Mandatory=$true)][string]$path) { if (!(Test-Path $path)) { return } $fileContents = Get-Content $path $fileContents -match 'Import-Module.+?(?=posh-vcpkg)' return } $scriptsDir = split-path -parent $script:MyInvocation.MyCommand.Definition $profileEntry = "Import-Module '$scriptsDir\posh-vcpkg'" $profilePath = $PROFILE # Implicit PowerShell variable $profileDir = Split-Path $profilePath -Parent if (!(Test-Path $profileDir)) { New-Item -ItemType Directory -Path $profileDir | Out-Null } Write-Host "`nAdding the following line to ${profilePath}:" Write-Host " $profileEntry" # @() Needed to force Array in PowerShell 2.0 [Array]$existingImports = @(findExistingImportModuleDirectives $profilePath) if ($existingImports.Count -gt 0) { $existingImportsOut = $existingImports -join "`n " Write-Host "`nposh-vcpkg is already imported to your PowerShell profile. The following entries were found:" Write-Host " $existingImportsOut" Write-Host "`nPlease make sure you have started a new PowerShell window for the changes to take effect." return } # Modifying the profile will invalidate any signatures. # Posh-git does the following check, so we should too. # https://github.com/dahlbyk/posh-git/blob/master/src/Utils.ps1 # If the profile script exists and is signed, then we should not modify it if (Test-Path $profilePath) { $sig = Get-AuthenticodeSignature $profilePath if ($null -ne $sig.SignerCertificate) { Write-Warning "Skipping add of posh-vcpkg import to profile; '$profilePath' appears to be signed." Write-Warning "Please manually add the line '$profileEntry' to your profile and resign it." return } } Add-Content $profilePath -Value "`n$profileEntry" -Encoding UTF8 Write-Host "`nSuccessfully added posh-vcpkg to your PowerShell profile. Please start a new PowerShell window for the changes to take effect." # SIG # Begin signature block # MIIntwYJKoZIhvcNAQcCoIInqDCCJ6QCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAQI5pjINs39W5V # cJzzNG3YZ5LACp5BEUv+jJq20JhbqKCCDYEwggX/MIID56ADAgECAhMzAAACUosz # qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I # sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O # L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA # v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o # RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 # q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw # UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 # ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu # ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu # bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w # Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx # MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 # uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp # kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 # l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u # TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 # o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti # yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z # 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf # 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK # WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW # esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F # 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS # AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 # ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla # MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT # H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB # AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG # OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S # 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz # y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 # 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u # M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 # X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl # XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP # 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB # l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF # RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM # CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ # BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud # DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO # 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 # LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB # FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw # cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA # XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY # 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj # 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd # d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ # Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf # wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ # aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j # NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B # xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 # eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 # r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I # RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZjDCCGYgCAQEwgZUwfjELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z # b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN # BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgFlYOVUKP # feFpp2ZyGIN6cbgH7sLzLcNZk6To9Qy5/jkwQgYKKwYBBAGCNwIBDDE0MDKgFIAS # AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN # BgkqhkiG9w0BAQEFAASCAQASfzadUptMi09w6TyqkqH2acAq4SQ7IRAUsfgo9VZU # keZ0yk54zc2JhMq2EdD9BodoqWUHty/Kd/ii54KlaIilcg1eu7fxI23ApMDqRyd5 # pej24Gi7fpx/kOPedQMRITZj+2DLBWWxlGnlSqLJ88HOhQ7IUPK6n0orv6o3aoW+ # vmIz1KVf/WpQ0Bmnuf6KvidtlXwq9Z6F6t78v3ulfFhl/rQkar/kqwKh9h2rfTbO # NL52WccwEzk1uk/7jRY3biG7vegymoFHVgGqHirscNa0XeGXt+GgqAXo/ppXDxFW # U/9CUSV3oQt+H+4YHoKEuTpNpJ+nRDyz84l4emm5PwWXoYIXFjCCFxIGCisGAQQB # gjcDAwExghcCMIIW/gYJKoZIhvcNAQcCoIIW7zCCFusCAQMxDzANBglghkgBZQME # AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB # MDEwDQYJYIZIAWUDBAIBBQAEIAufT8fqkLAoNnmK8tlDtjF5YfpJIAKOXej3J0eq # YJSlAgZiF5g+l2EYEzIwMjIwMzMwMjE1MjEwLjY3NVowBIACAfSggdikgdUwgdIx # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p # Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh # bGVzIFRTUyBFU046RDA4Mi00QkZELUVFQkExJTAjBgNVBAMTHE1pY3Jvc29mdCBU # aW1lLVN0YW1wIFNlcnZpY2WgghFlMIIHFDCCBPygAwIBAgITMwAAAY/zUajrWnLd # zAABAAABjzANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg # MjAxMDAeFw0yMTEwMjgxOTI3NDZaFw0yMzAxMjYxOTI3NDZaMIHSMQswCQYDVQQG # EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg # SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg # RVNOOkQwODItNEJGRC1FRUJBMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt # cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAmVc+/rXP # Fx6Fk4+CpLrubDrLTa3QuAHRVXuy+zsxXwkogkT0a+XWuBabwHyqj8RRiZQQvdvb # Oq5NRExOeHiaCtkUsQ02ESAe9Cz+loBNtsfCq846u3otWHCJlqkvDrSr7mMBqwcR # Y7cfhAGfLvlpMSojoAnk7Rej+jcJnYxIeN34F3h9JwANY360oGYCIS7pLOosWV+b # xug9uiTZYE/XclyYNF6XdzZ/zD/4U5pxT4MZQmzBGvDs+8cDdA/stZfj/ry+i0XU # YNFPhuqc+UKkwm/XNHB+CDsGQl+ZS0GcbUUun4VPThHJm6mRAwL5y8zptWEIocbT # eRSTmZnUa2iYH2EOBV7eCjx0Sdb6kLc1xdFRckDeQGR4J1yFyybuZsUP8x0dOsEE # oLQuOhuKlDLQEg7D6ZxmZJnS8B03ewk/SpVLqsb66U2qyF4BwDt1uZkjEZ7finIo # UgSz4B7fWLYIeO2OCYxIE0XvwsVop9PvTXTZtGPzzmHU753GarKyuM6oa/qaTzYv # rAfUb7KYhvVQKxGUPkL9+eKiM7G0qenJCFrXzZPwRWoccAR33PhNEuuzzKZFJ4De # aTCLg/8uK0Q4QjFRef5n4H+2KQIEibZ7zIeBX3jgsrICbzzSm0QX3SRVmZH//Aqp # 8YxkwcoI1WCBizv84z9eqwRBdQ4HYcNbQMMCAwEAAaOCATYwggEyMB0GA1UdDgQW # BBTzBuZ0a65JzuKhzoWb25f7NyNxvDAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl # pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j # b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx # MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh # bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG # CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQDNf9Oo9zyhC5n1jC8iU7NJY39F # izjhxZwJbJY/Ytwn63plMlTSaBperan566fuRojGJSv3EwZs+RruOU2T/ZRDx4VH # esLHtclE8GmMM1qTMaZPL8I2FrRmf5Oop4GqcxNdNECBClVZmn0KzFdPMqRa5/0R # 6CmgqJh0muvImikgHubvohsavPEyyHQa94HD4/LNKd/YIaCKKPz9SA5fAa4phQ4E # vz2auY9SUluId5MK9H5cjWVwBxCvYAD+1CW9z7GshJlNjqBvWtKO6J0Aemfg6z28 # g7qc7G/tCtrlH4/y27y+stuwWXNvwdsSd1lvB4M63AuMl9Yp6au/XFknGzJPF6n/ # uWR6JhQvzh40ILgeThLmYhf8z+aDb4r2OBLG1P2B6aCTW2YQkt7TpUnzI0cKGr21 # 3CbKtGk/OOIHSsDOxasmeGJ+FiUJCiV15wh3aZT/VT/PkL9E4hDBAwGt49G88gSC # O0x9jfdDZWdWGbELXlSmA3EP4eTYq7RrolY04G8fGtF0pzuZu43A29zaI9lIr5ul # KRz8EoQHU6cu0PxUw0B9H8cAkvQxaMumRZ/4fCbqNb4TcPkPcWOI24QYlvpbtT9p # 31flYElmc5wjGplAky/nkJcT0HZENXenxWtPvt4gcoqppeJPA3S/1D57KL3667ep # Ir0yV290E2otZbAW8DCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw # DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv # cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z # b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw # ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg # 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO # RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 # JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 # LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL # 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 # QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj # 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE # UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 # kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 # UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB # 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE # mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG # A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 # d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV # HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV # HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo # 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m # dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j # cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN # BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 # sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 # 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX # ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew # VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 # DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd # QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr # DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh # bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n # tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ # oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw # ZvKhggLUMIICPQIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh # dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RDA4Mi00QkZE # LUVFQkExJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB # ATAHBgUrDgMCGgMVAD5NL4IEdudIBwdGoCaV0WBbQZpqoIGDMIGApH4wfDELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z # b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl7ubRMCIY # DzIwMjIwMzMwMjIyNTIxWhgPMjAyMjAzMzEyMjI1MjFaMHQwOgYKKwYBBAGEWQoE # ATEsMCowCgIFAOXu5tECAQAwBwIBAAICCl0wBwIBAAICET4wCgIFAOXwOFECAQAw # NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC # AQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQBjidsY/frY7jVCC5L43gm9MoaMnxjT # 8gVLXcdbhJzGYftD84JlTWvw/WyGSHpoeg+oCe01IIgdTicq0MKjxoca+LefqaS8 # vlAf9s1JdIa2Je7u5CzOt2Gru9C00znmx6hI8XCkV+Gj+ZopC4kESoaSGiyaqt+S # YZHTJ1hNVg79dTGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD # QSAyMDEwAhMzAAABj/NRqOtact3MAAEAAAGPMA0GCWCGSAFlAwQCAQUAoIIBSjAa # BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIH26YOfE # UVgRTz6SOkQa9frVJcK+7EUHy9BNy3DCqIG2MIH6BgsqhkiG9w0BCRACLzGB6jCB # 5zCB5DCBvQQgl3IFT+LGxguVjiKm22ItmO6dFDWW8nShu6O6g8yFxx8wgZgwgYCk # fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD # Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY/zUajrWnLdzAAB # AAABjzAiBCB0UdAt+5LFhsYAoTd2lnVnE0JExPii63XeZzU2N7NElDANBgkqhkiG # 9w0BAQsFAASCAgCSm1motOpztHnppo7OFCG/NumEpmOgH4Ma58pjV7mgxfoLQllg # lLpGzBwlXfHSdOLg/q0ip6REZrSnvPw3rffeLl7oTgfAnUZTyGCQbXZgYKmHyqBN # ys7PaaULzR4UrsyhJ+lEQwY3aombMshmo/rwolFsgUCauvCpVPiPhpHy8+2Wqm4r # 9Xj1X7H9THSzFJmD3Qu6bT9yburwrSZNEtnYybO+SYYgzjy3CiTfAUag/iETGj4k # C5K3dfxuz6qWfe0Qr3bT7sLlA0FjQn3ZSNyjPqHr3/1Uf2S6VYKipYvdvLezbJ8X # 9SE5QUJPc+WWHDMd7LW+EEak/CF/N+I77bHuMN1iyiG7DRGIbOge3jKtD9XgBb25 # N2+4ilsoN3GYe63bMGsL+525ApITbcnhxbpd35UiZP6Nw9ab9WKYIUILI4vdjSyx # LX+HZZV1cpqU4d5HjPS9exHgDS6RwJvYtvx9N0moBJYz8X+C4HDJKO6EAFY1i8tT # HKu3TGsqofehtTtlc9QCEimSTBSmeGxEiPmSDjwfaO2erTzwnJcZL5UqDNHoEouN # Z5+u1f2LfIidCBznb4tRlG9GNe1JKF3bp16tsNwD6GFuKfcDaP8/+ee14qzHPUJm # niaVz5RlKUh2M0Uphl+hmnHzIWHOjhUQsUSaoyXy0n+Wz01P1TJ+CBiA1w== # SIG # End signature block ================================================ FILE: scripts/angle/maintainer-notes.md ================================================ # The ANGLE vcpkg port The ANGLE port's buildsystem is based off of [WebKit's approach](https://github.com/WebKit/WebKit/tree/main/Source/ThirdParty/ANGLE) to converting ANGLE's buildsystem to CMake. Details: - `cmake-buildsystem/CMakeLists.txt` - This is an augmented version of WebKit's [CMakeLists.txt](https://github.com/WebKit/WebKit/blob/main/Source/ThirdParty/ANGLE/CMakeLists.txt), with vcpkg edits and additions. - `cmake-buildsystem/*.cmake` - These are configuration files based on [WebKit's approach](https://github.com/WebKit/WebKit/tree/main/Source/ThirdParty/ANGLE), but customized for vcpkg (and using `PlatformLinux` instead of `PlatformGTK`) ## Updating the ANGLE vcpkg port 1. Select a new ANGLE version Recommendation: Follow the recommendations in the libANGLE "[Choosing an ANGLE branch](https://github.com/google/angle/blob/master/doc/ChoosingANGLEBranch.md#matching-a-chromium-release-to-an-angle-branch)" guide, and find the branch that matches the current Chromium Stable. 2. [Find the branch](https://github.com/google/angle/branches) (usually `chromium/`) and latest commit on that branch, and update the following variables in `portfile.cmake`: - `ANGLE_COMMIT` - `ANGLE_VERSION` - `ANGLE_SHA512` 3. Check the `DEPS` file at that ANGLE commit, for the commit used in `'third_party/zlib'`, and update `ANGLE_THIRDPARTY_ZLIB_COMMIT` in `portfile.cmake` if necessary. 4. Attempt to build. You may have to tweak the `CMakeLists.txt`, `Platform*.cmake` files, etc. Check with the latest files in [WebKit's repo](https://github.com/WebKit/WebKit/tree/main/Source/ThirdParty/ANGLE) to see if any updates need to be ported to the vcpkg's custom files. You might also need to change the `ANGLE_WEBKIT_BUILDSYSTEM_COMMIT` in the portfile (although this should theoretically need updating less frequently). 5. Check headers against `opengl-registry` - make sure headers are similar. > angle defines some additional entrypoints. > opengl-registry should be latest before updating angle 6. Complete all the other normal steps in the [Maintainer Guide](/docs/maintainers/maintainer-guide.md) ================================================ FILE: scripts/azure-pipelines/Create-PRDiff.ps1 ================================================ [CmdletBinding(PositionalBinding=$False)] Param( [Parameter(Mandatory=$True)] [String]$DiffFile ) Start-Process -FilePath 'git' -ArgumentList 'diff' ` -NoNewWindow -Wait ` -RedirectStandardOutput $DiffFile if (0 -ne (Get-Item -LiteralPath $DiffFile).Length) { $msg = @( 'The formatting of the files in the repo were not what we expected,', 'or the documentation was not regenerated.', 'Please access the diff from format.diff in the build artifacts,' 'and apply the patch with `git apply`' ) Write-Error ($msg -join "`n") throw } ================================================ FILE: scripts/azure-pipelines/android/Dockerfile ================================================ # syntax=docker/dockerfile:1.4 # DisableDockerDetector "Used to build the container deployed to Azure Container Registry" FROM ubuntu:noble-20260113 ADD https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb /packages-microsoft-prod.deb ADD https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.18+8/OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz /OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz ADD https://dl.google.com/android/repository/commandlinetools-linux-14742923_latest.zip /commandlinetools-linux-14742923_latest.zip ADD https://dl.google.com/android/repository/build-tools_r36.1_linux.zip /build-tools_r36.1_linux.zip ADD https://dl.google.com/android/repository/platform-36_r01.zip /platform-36_r01.zip ADD https://dl.google.com/android/repository/platform-tools_r36.0.2-linux.zip /platform-tools_r36.0.2-linux.zip ADD https://dl.google.com/android/repository/android-ndk-r29-linux.zip /android-ndk-r29-linux.zip # Add apt packages ## vcpkg prerequisites ENV APT_PACKAGES="git curl zip unzip tar" ## Common build prereqs ENV APT_PACKAGES="$APT_PACKAGES g++ vim pkg-config cmake ca-certificates" ENV APT_PACKAGES="$APT_PACKAGES autoconf nasm bison flex build-essential libtool libtool-bin libltdl-dev gettext automake autoconf-archive" ## Python related ENV APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-pip python3-venv python3-mako python3-jinja2" ## at-spi2-atk ENV APT_PACKAGES="$APT_PACKAGES libxtst-dev" ## freeglut ENV APT_PACKAGES="$APT_PACKAGES libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev" # glfw3 ENV APT_PACKAGES="$APT_PACKAGES libxinerama-dev libxcursor-dev" # qt5-base ENV APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \ libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-util0-dev \ libxkbcommon-dev libxcb-keysyms1-dev \ libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev \ libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev \ libxcb-cursor-dev libxkbcommon-x11-dev libsm6 libsm-dev" ## PowerShell ENV APT_PACKAGES="$APT_PACKAGES powershell azcopy" # The BUILD_DATE argument forces cache invalidation so we get updated apt dependencies ARG BUILD_DATE RUN echo "Build date: ${BUILD_DATE}" RUN < /dev/null apt-get update apt-get -y --no-install-recommends install docker-ce docker-ce-cli ================================================ FILE: scripts/azure-pipelines/linux/Dockerfile ================================================ # syntax=docker/dockerfile:1.4 # DisableDockerDetector "Used to build the container deployed to Azure Container Registry" FROM ubuntu:noble-20260113 ADD provision-image.sh /provision-image.sh RUN apt-get update && \ apt-get install --no-install-recommends -y curl gnupg ca-certificates # The BUILD_DATE argument forces cache invalidation so we get updated apt dependencies ARG BUILD_DATE RUN echo "Build date: ${BUILD_DATE}" RUN chmod +x /provision-image.sh && /provision-image.sh ================================================ FILE: scripts/azure-pipelines/linux/azure-pipelines.yml ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # parameters: - name: vcpkgToolSha displayName: 'Custom SHA of vcpkg-tool to use rather than bootstrap' type: string default: 'use default' - name: jobName type: string default: 'x64_linux' - name: linuxDockerImage displayName: 'Linux Docker Image to use for the build' type: string default: '' - name: tripletPattern displayName: 'Enable the triplets which contain this substring' type: string default: '' jobs: - job: ${{ parameters.jobName }} condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}')) pool: name: PrAzureLinux3Docker timeoutInMinutes: 1440 # 1 day variables: - name: WORKING_ROOT value: /mnt/vcpkg-ci - name: VCPKG_DOWNLOADS value: /mnt/vcpkg-ci/downloads - name: LINUX_DOCKER_IMAGE value: ${{ parameters.linuxDockerImage }} steps: # Note: /mnt is the Azure machines' temporary disk. - bash: | sudo mkdir /home/agent -m=777 sudo chown `id -u` /home/agent sudo mkdir ${{ variables.WORKING_ROOT }} -m=777 sudo rm -rf ${{ variables.WORKING_ROOT }}/failure-logs sudo mkdir ${{ variables.WORKING_ROOT }}/failure-logs -m=777 sudo mkdir ${{ variables.VCPKG_DOWNLOADS }} -m=777 # Move the docker layers to the temp disk. sudo mkdir -p /etc/docker echo '{"data-root": "/mnt/docker"}' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker exit 0 displayName: 'Create working directories' - bash: ./bootstrap-vcpkg.sh -skipDependencyChecks displayName: 'Bootstrap vcpkg' condition: eq('use default', '${{ parameters.vcpkgToolSha }}') - task: AzureCLI@2 displayName: 'Build vcpkg with CMake' condition: ne('use default', '${{ parameters.vcpkgToolSha }}') inputs: azureSubscription: 'vcpkg-pr-fleet-wus' scriptType: bash scriptLocation: 'inlineScript' inlineScript: | # This is a second pull but the vcpkgToolSha setting is used rarely. USER=$(id --user) az acr login --name vcpkgandroidwus docker pull ${{ variables.LINUX_DOCKER_IMAGE }} docker run --init -i --rm \ -a stderr \ -a stdout \ --user $USER \ --mount type=bind,source=$(Build.Repository.LocalPath),target=/vcpkg \ --workdir /vcpkg \ ${{ variables.LINUX_DOCKER_IMAGE }} \ /vcpkg/scripts/azure-pipelines/bootstrap-from-source.sh ${{ parameters.vcpkgToolSha }} - task: AzureCLI@2 displayName: '*** Test Modified Ports' inputs: azureSubscription: 'vcpkg-pr-fleet-wus' scriptType: bash scriptLocation: 'inlineScript' # Be very very careful that the exit code from the last pwsh is reported correctly inlineScript: | start=`date -u -d "-30 minutes" '+%Y-%m-%dT%H:%MZ'` end=`date -u -d "2 days" '+%Y-%m-%dT%H:%MZ'` assetSas=`az storage container generate-sas --name cache --account-name vcpkgassetcachewus --as-user --auth-mode login --https-only --permissions rcl --start $start --expiry $end -o tsv` binarySas=`az storage container generate-sas --name cache --account-name vcpkgbinarycachewus --as-user --auth-mode login --https-only --permissions rclw --start $start --expiry $end -o tsv` echo Minting SAS tokens valid through $end # Persist the binary SAS as a secret pipeline variable for the owners-db step echo "##vso[task.setvariable variable=BCACHE_SAS_TOKEN;issecret=true]$binarySas" USER=$(id --user) az acr login --name vcpkgandroidwus docker pull ${{ variables.LINUX_DOCKER_IMAGE }} docker run --init -i --rm \ -a stderr \ -a stdout \ --user $USER \ --mount type=bind,source=$(Build.Repository.LocalPath),target=/vcpkg \ --mount type=bind,source=$(WORKING_ROOT)/failure-logs,target=/vcpkg/failure-logs \ --mount type=bind,source=/mnt/vcpkg-ci,target=/mnt/vcpkg-ci \ --env X_VCPKG_ASSET_SOURCES="x-azurl,https://vcpkgassetcachewus.blob.core.windows.net/cache,$assetSas,readwrite" \ --workdir /vcpkg \ ${{ variables.LINUX_DOCKER_IMAGE }} \ pwsh \ -File scripts/azure-pipelines/test-modified-ports.ps1 \ -Triplet ${{ replace(parameters.jobName, '_', '-') }} \ -BuildReason $(Build.Reason) \ -BinarySourceStub "x-azcopy-sas,https://vcpkgbinarycachewus.blob.core.windows.net/cache,$binarySas" \ -WorkingRoot ${{ variables.WORKING_ROOT }} - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: failure logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(WORKING_ROOT)/failure-logs' artifact: "failure logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True') - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(WORKING_ROOT)/azcopy-logs' artifactName: "z azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['AZCOPY_LOGS_EMPTY'], 'True') - task: UseNode@1 displayName: 'Ensure Node.js is available' condition: always() inputs: version: '22.x' - bash: | cd scripts/azure-pipelines/owners-db && npm ci || true # Construct the blob base url using the secret SAS token set earlier blob="https://vcpkgbinarycachewus.blob.core.windows.net/cache?${BCACHE_SAS_TOKEN}" if [ "$(Build.Reason)" = "PullRequest" ]; then echo "Running file_script_from_cache for PR" npx --yes ts-node ./file_script_from_cache.ts --pr-hashes "$(Build.Repository.LocalPath)/pr-hashes.json" --blob-base-url "$blob" --target-branch "origin/master" --out-dir ../../list_files else echo "Running file_script for CI" npx --yes ts-node ./file_script.ts --info-dir /mnt/vcpkg-ci/installed/vcpkg/info/ --out-dir ../../list_files fi displayName: 'Build a file list for all packages' condition: always() env: BCACHE_SAS_TOKEN: $(BCACHE_SAS_TOKEN) - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: file lists for ${{ replace(parameters.jobName, '_', '-') }}" condition: always() inputs: targetPath: scripts/list_files artifact: "file lists for ${{ replace(parameters.jobName, '_', '-') }}" - task: PublishTestResults@2 displayName: 'Publish Test Results' condition: ne(variables['XML_RESULTS_FILE'], '') inputs: testRunTitle: ${{ replace(parameters.jobName, '_', '-') }} testResultsFormat: xUnit testResultsFiles: $(XML_RESULTS_FILE) platform: ${{ replace(parameters.jobName, '_', '-') }} configuration: static ================================================ FILE: scripts/azure-pipelines/linux/provision-image.sh ================================================ #!/bin/bash # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # export DEBIAN_FRONTEND=noninteractive # Add apt repos # Detect Ubuntu VERSION_ID from /etc/os-release (e.g., "24.04") and format to "2404" UBUNTU_VERSION_ID=$(. /etc/os-release && echo "$VERSION_ID") NVIDIA_REPO_VERSION=$(echo "$UBUNTU_VERSION_ID" | sed 's/\.//') # Apt dependencies; needed for add-apt-repository and curl downloads to work apt-get -y update apt-get --no-install-recommends -y install ca-certificates curl apt-transport-https lsb-release gnupg software-properties-common ## CUDA curl -L -o /etc/apt/preferences.d/cuda-repository-pin-600 "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${NVIDIA_REPO_VERSION}/x86_64/cuda-ubuntu${NVIDIA_REPO_VERSION}.pin" apt-key adv --fetch-keys "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${NVIDIA_REPO_VERSION}/x86_64/3bf863cc.pub" add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${NVIDIA_REPO_VERSION}/x86_64/ /" ## PowerShell curl -L -o packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/${UBUNTU_VERSION_ID}/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb rm -f packages-microsoft-prod.deb add-apt-repository universe ## Azure CLI mkdir -p /etc/apt/keyrings curl -sLS https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/keyrings/microsoft.gpg > /dev/null chmod go+r /etc/apt/keyrings/microsoft.gpg AZ_DIST=$(lsb_release -cs) echo "deb [arch=`dpkg --print-architecture` signed-by=/etc/apt/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/azure-cli/ $AZ_DIST main" | tee /etc/apt/sources.list.d/azure-cli.list apt-get -y update apt-get -y upgrade # Add apt packages ## vcpkg prerequisites APT_PACKAGES="git curl zip unzip tar" ## essentials APT_PACKAGES="$APT_PACKAGES \ autoconf autoconf-archive \ autopoint \ build-essential \ cmake \ gcc g++ gfortran \ libnuma1 libnuma-dev \ libtool libtool-bin libltdl-dev \ libudev-dev \ " ## vcpkg_find_acquire_program APT_PACKAGES="$APT_PACKAGES \ bison libbison-dev \ flex \ gperf \ nasm \ ninja-build \ pkg-config \ python3 \ ruby-full \ swig \ yasm \ " ## mesa and X essentials APT_PACKAGES="$APT_PACKAGES \ mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev libgles2-mesa-dev \ libx11-dev \ libxaw7-dev \ libxcursor-dev \ libxi-dev \ libxinerama-dev \ libxkbcommon-x11-dev \ libxrandr-dev \ libxt-dev \ libxxf86vm-dev \ xutils-dev \ " ## required by qt5-base APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \ libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-util0-dev" ## required by qt5-base for qt5-x11extras APT_PACKAGES="$APT_PACKAGES libxkbcommon-dev libxcb-keysyms1-dev \ libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \ libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev \ libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev" ## required by xcb feature in qtbase APT_PACKAGES="$APT_PACKAGES libxcb-cursor-dev" ## required by libhdfs3 APT_PACKAGES="$APT_PACKAGES libkrb5-dev" ## required by kf5windowsystem APT_PACKAGES="$APT_PACKAGES libxcb-res0-dev" ## required by kf5globalaccel APT_PACKAGES="$APT_PACKAGES libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev" ## required by mesa APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-mako libxcb-dri3-dev libxcb-present-dev" ## required by some packages to install additional python packages APT_PACKAGES="$APT_PACKAGES python3-pip python3-venv python3-jinja2" ## required by qtwebengine APT_PACKAGES="$APT_PACKAGES nodejs" ## required by qtwayland APT_PACKAGES="$APT_PACKAGES libwayland-dev" ## required by all GN projects APT_PACKAGES="$APT_PACKAGES python-is-python3" ## required by libctl APT_PACKAGES="$APT_PACKAGES guile-2.2-dev" ## required by gtk APT_PACKAGES="$APT_PACKAGES libxdamage-dev libselinux1-dev" ## required by at-spi2-atk APT_PACKAGES="$APT_PACKAGES libxtst-dev" ## required by boringssl APT_PACKAGES="$APT_PACKAGES golang-go" ## required by libdecor and mesa APT_PACKAGES="$APT_PACKAGES wayland-protocols" ## required by robotraconteur APT_PACKAGES="$APT_PACKAGES libbluetooth-dev" ## required by libmysql APT_PACKAGES="$APT_PACKAGES libtirpc-dev" ## CUDA # The intent is to install everything that does not require an actual GPU, driver, or GUI. # Intentionally omitted: cuda-demo-suite-12-9 cuda-documentation-12-9 cuda-driver-* # cuda-gdb-12-9 cuda-gdb-src-12-9 cuda-nsight-* cuda-nvdisasm # cuda-nvprof cuda-nvprune cuda-profiler-api* cuda-sandbox-* # cuda-visual-tools-12-9 nvidia-gds-12-9 cuda-nvvp-12-9 # cuda-toolkit-12-9 cuda-tools-12-9 cuda-command-line-tools-12-9 # cuda-runtime-12-9 # All libraries for which there is a -dev suffix included here # cudnn9-jit-cuda-12-9 : Depends: libcudnn9-jit-dev-cuda-12 (= 9.12.0.46-1) but it is not installable APT_PACKAGES="$APT_PACKAGES cuda-cccl-12-9 cuda-compat-12-9 cuda-compiler-12-9 cuda-crt-12-9 \ cuda-cudart-dev-12-9 cuda-cuobjdump-12-9 cuda-cupti-dev-12-9 cuda-cuxxfilt-12-9 \ cuda-driver-dev-12-9 cuda-libraries-dev-12-9 cuda-minimal-build-12-9 cuda-nvcc-12-9 \ cuda-nvml-dev-12-9 cuda-nvrtc-dev-12-9 cuda-nvtx-12-9 cuda-nvvm-12-9 cuda-opencl-dev-12-9 \ cuda-sanitizer-12-9 cuda-toolkit-12-9-config-common cudnn9-cuda-12-9 gds-tools-12-9 \ libcublas-12-9 libcudnn9-dev-cuda-12 libcufft-dev-12-9 libcurand-dev-12-9 libcusolver-dev-12-9 \ libcusparse-dev-12-9 libnccl-dev libnpp-dev-12-9 libnvfatbin-dev-12-9 libnvjitlink-dev-12-9 \ libnvjpeg-dev-12-9" ## PowerShell + Azure APT_PACKAGES="$APT_PACKAGES powershell azcopy azure-cli" ## Required for speech-dispatcher feature for ethindp-prism APT_PACKAGES="$APT_PACKAGES libspeechd-dev" ## Additionally required/installed by Azure DevOps Scale Set Agents, skip on WSL if [[ $(grep microsoft /proc/version) ]]; then echo "Skipping install of ADO prerequisites on WSL." else APT_PACKAGES="$APT_PACKAGES libkrb5-3 zlib1g libicu74 debsums liblttng-ust1" fi apt-get --no-install-recommends -y install $APT_PACKAGES az --version ================================================ FILE: scripts/azure-pipelines/linux-arm64/Dockerfile ================================================ FROM ubuntu:noble-20251013 ARG BUILD_DATE ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install --no-install-recommends -y curl gnupg ca-certificates && \ curl -L -o packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb && \ dpkg -i packages-microsoft-prod.deb && \ rm -f packages-microsoft-prod.deb RUN echo "Build date: ${BUILD_DATE}" && \ apt-get update && \ apt-get upgrade -y && \ apt-get install --no-install-recommends -y \ powershell \ build-essential \ gcc-13-aarch64-linux-gnu \ g++-13-aarch64-linux-gnu \ gfortran-13-aarch64-linux-gnu \ cmake \ autoconf \ autoconf-archive \ automake \ autopoint \ libtool \ libtool-bin \ libltdl-dev \ m4 \ gfortran \ libnuma1 \ libnuma-dev \ libudev-dev \ libtirpc-dev \ libx11-dev \ libxcursor-dev \ libxtst-dev \ libxi-dev \ libxrandr-dev \ libxxf86vm-dev \ libxext-dev \ libxfixes-dev \ libxrender-dev \ libxcb1-dev \ libx11-xcb-dev \ libxcb-glx0-dev \ libxcb-util0-dev \ libxkbcommon-dev \ libxcb-keysyms1-dev \ libxcb-image0-dev \ libxcb-shm0-dev \ libxcb-icccm4-dev \ libxcb-sync-dev \ libxcb-xfixes0-dev \ libxcb-shape0-dev \ libxcb-randr0-dev \ libxcb-render-util0-dev \ libxcb-xinerama0-dev \ libxcb-xkb-dev \ libxcb-xinput-dev \ libxcb-cursor-dev \ libxkbcommon-x11-dev \ libxinerama-dev \ libglu1-mesa-dev \ libgl1-mesa-dev \ libgl-dev \ libxmu-dev \ xorg-dev \ mesa-common-dev \ gettext \ ninja-build \ unzip \ git \ pkg-config \ bison \ flex \ nasm \ yasm \ gperf \ zip \ python3 \ python3-setuptools \ python3-venv \ gnupg \ python3-pip && \ rm -rf /var/lib/apt/lists/* RUN update-alternatives --install /usr/bin/aarch64-linux-gnu-gcc aarch64-linux-gnu-gcc /usr/bin/aarch64-linux-gnu-gcc-13 100 && \ update-alternatives --install /usr/bin/aarch64-linux-gnu-g++ aarch64-linux-gnu-g++ /usr/bin/aarch64-linux-gnu-g++-13 100 && \ update-alternatives --install /usr/bin/aarch64-linux-gnu-gfortran aarch64-linux-gnu-gfortran /usr/bin/aarch64-linux-gnu-gfortran-13 100 ================================================ FILE: scripts/azure-pipelines/osx/README.md ================================================ # `vcpkg-eg-mac` VMs This is the checklist for what the vcpkg team does when updating the macOS machines in the pool. ## Creating new base images ### Prerequisites - [ ] [macosvm](https://github.com/s-u/macosvm) allow-listed by macOS for arm64. Note that the directory 'Parallels' is still used when using `macosvm` just so that scripts know where to find the VM and friends. - [ ] An Xcode .xip - you can get this from Apple's developer website, although you'll need to sign in first: If you are doing this from a local macos box, you can skip to the "update the macos host" step. - [ ] An Xcode Command Line Tools installer ### Instructions (ARM64) - [ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues , pick the current osx queue, and delete one of the agents that are idle. - [ ] Go to that machine in the KVM. (Passwords are stored as secrets in the CPP_GITHUB\vcpkg\vcpkgmm-passwords key vault) - [ ] Update the macos host - [ ] (Once only) install `macosvm` to `~` (this tarball is also backed up in our `vcpkg-image-minting` storage account). For example from a dev workstation: ```sh ssh vcpkg@HOSTMACHINE curl -L -o macosvm-0.2-2-arm64-darwin21.tar.gz https://github.com/s-u/macosvm/releases/download/0.2-2/macosvm-0.2-2-arm64-darwin21.tar.gz tar xvf macosvm-0.2-2-arm64-darwin21.tar.gz rm macosvm-0.2-2-arm64-darwin21.tar.gz exit ``` - [ ] Download the matching `.ipsw` for the macOS copy to install. See https://mrmacintosh.com/apple-silicon-m1-full-macos-restore-ipsw-firmware-files-database/ ; links there to find the .ipsw. Example: https://updates.cdn-apple.com/2025FallFCS/fullrestores/093-37399/E144C918-CF99-4BBC-B1D0-3E739B9A3F2D/UniversalMac_26.2_25C56_Restore.ipsw - [ ] Determine the VM name using the form "vcpkg-osx--arm64", for example "vcpkg-osx-2026-01-12-arm64". - [ ] Open a terminal and run the following commands to create the VM with vcpkg-osx-2026-01-12-arm64 and UniversalMac_26.2_25C56_Restore.ipsw replaced as appropriate. This must be run in the KVM as it uses a GUI: ```sh mkdir -p ~/Parallels/vcpkg-osx-2026-01-12-arm64 cd ~/Parallels/vcpkg-osx-2026-01-12-arm64 ~/macosvm --disk disk.img,size=500g --aux aux.img -c 8 -r 12g --restore ~/UniversalMac_26.2_25C56_Restore.ipsw ./vm.json ~/macosvm -g ./vm.json ``` - [ ] Follow prompts as you would on real hardware. * Set up as new. * Account name: vcpkg * A very similar password * Do not allow computer account password to be reset with your Apple Account. * Apple ID: 'Set Up Later' / Skip * No location services * Yes send crash reports * Set up screen time later * Only download updates automatically - [ ] Set the desktop wallpaper to a fixed color from Settings -> Wallpaper . (This makes the KVM a lot easier to use :) ) - [ ] Disable automatic updates in the VM: Settings -> General -> Automatic Updates -> Disable them all - [ ] Enable remote login in the VM: Settings -> General -> Sharing -> Remote Login - [ ] Set the vcpkg user to be able to use sudo without a password, and install Xcode. For example from a dev workstation: ```sh scp path/to/Xcode.xip vcpkg@HOSTMACHINE:/Users/vcpkg/Xcode.xip ssh vcpkg@HOSTMACHINE rm ~/.ssh/known_hosts scp Xcode.xip vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/Xcode.xip ssh vcpkg@vcpkgs-Virtual-Machine.local printf 'vcpkg\tALL=(ALL)\tNOPASSWD:\tALL\n' | sudo tee -a '/etc/sudoers.d/vcpkg' sudo chmod 0440 '/etc/sudoers.d/vcpkg' sudo mdutil -ad xip --expand Xcode.xip sudo mv Xcode.app /Applications/Xcode.app rm Xcode.xip exit ``` - [ ] Open Xcode from Applications in the guest GUI. Uncheck the "code completion model" and accept the EULA. - [ ] Update the Azure Agent URI in setup-box.sh to the current version. You can find this by going to the agent pool, selecting "New agent", picking macOS, and copying the link. For example https://download.agent.dev.azure.com/agent/4.266.2/vsts-agent-osx-arm64-4.266.2.tar.gz - [ ] Copy setup-box.sh and the xcode installer renamed to 'clt.dmg' to the host. For example from a dev workstation: ```sh scp ./setup-guest.sh vcpkg@HOSTMACHINE:/Users/vcpkg scp ./setup-box.sh vcpkg@HOSTMACHINE:/Users/vcpkg scp path/to/console/tools.dmg vcpkg@HOSTMACHINE:/Users/vcpkg/clt.dmg ssh vcpkg@HOSTMACHINE chmod +x setup-guest.sh ./setup-guest.sh rm setup-guest.sh rm setup-box.sh rm clt.dmg exit ``` - [ ] Shut down the VM cleanly. - [ ] Mint a SAS token to vcpkgimageminting/pvms with read, add, create, write, and list permissions. - [ ] Package the VM into a tarball. For example from a dev workstation: ```sh ssh vcpkg@HOSTMACHINE cd ~/Parallels aa archive -d vcpkg-osx--arm64 -o vcpkg-osx--arm64.aar -enable-holes brew install azcopy azcopy copy vcpkg-osx--arm64.aar "https://vcpkgimageminting.blob.core.windows.net/pvms?" exit ``` - [ ] Go to https://dev.azure.com/vcpkg/public/_settings/agentqueues and create a new self hosted Agent pool named `PrOsx-YYYY-MM-DD-arm64` based on the current date. Grant microsoft.vcpkg.ci and microsoft.vcpkg.pr access. - [ ] Follow the "Deploying images" steps below for each machine in the fleet. ## Deploying images ### Running the VM Run these steps on each machine to add to the fleet. Skip steps that were done implicitly above if this machine was used to build a box. - [ ] If this machine was used before, delete it from the pool of which it is a member from https://dev.azure.com/vcpkg/public/_settings/agentqueues - [ ] Log in to the machine using the KVM. - [ ] Check for software updates in macOS system settings - [ ] (Once only) install `macosvm` to `~` (this tarball is also backed up in our `vcpkg-image-minting` storage account). From a developer machine: ```sh ssh vcpkg@HOSTMACHINE curl -L -o macosvm-0.2-2-arm64-darwin21.tar.gz https://github.com/s-u/macosvm/releases/download/0.2-2/macosvm-0.2-2-arm64-darwin21.tar.gz tar xvf macosvm-0.2-2-arm64-darwin21.tar.gz rm macosvm-0.2-2-arm64-darwin21.tar.gz exit ``` - [ ] Skip if this is the image building machine. Mint a SAS token URI to the box to use from the Azure portal if you don't already have one, and download the VM. (Recommend running this via SSH from domain joined machine due to containing SAS tokens). From a developer machine: ```sh ssh vcpkg@HOSTMACHINE brew install azcopy mkdir -p ~/Parallels cd ~/Parallels azcopy copy "https://vcpkgimageminting.blob.core.windows.net/pvms/vcpkg-osx--arm64.aar?" vcpkg-osx--arm64.aar aa extract -d vcpkg-osx--arm64 -i ./vcpkg-osx--arm64.aar -enable-holes exit ``` - [ ] Open a separate terminal window on the host and start the VM by running: ```sh cd ~/Parallels/vcpkg-osx--arm64 ~/macosvm ./vm.json ``` - [ ] [grab a PAT][] if you don't already have one - [ ] Copy the guest deploy script to the host, and run it with a first parameter of your PAT. From a developer machine: ```sh scp register-guest.sh vcpkg@HOSTMACHINE:/Users/vcpkg/register-guest.sh ssh vcpkg@HOSTMACHINE rm .ssh/known_hosts chmod +x register-guest.sh ./register-guest.sh PAT-GOES-HERE AGENT-NUMBER-GOES-HERE rm register-guest.sh ``` - [ ] That will cleanly shut down the VM. In the KVM's terminal, relaunch the VM in ephemeral mode with: ```sh ~/macosvm --ephemeral ./vm.json ``` - [ ] Open a terminal window on the host and run the agent ```sh ssh -i ~/Parallels/*/id_guest vcpkg@vcpkgs-Virtual-Machine.local ~/myagent/run.sh ``` - [ ] Check that the machine shows up in the pool, and lock the vcpkg user on the host. - [ ] Lock the screen on the host. - [ ] Update the "vcpkg Macs" spreadsheet line for the machine with the new pool. [grab a PAT]: #getting-an-azure-pipelines-pat ## Getting an Azure Pipelines PAT Personal Access Tokens are an important part of this process, and they are fairly easy to generate. On ADO, under the correct project (in vcpkg's case, "vcpkg"), click on the "User Settings" icon, then go to "Personal access tokens". It is the icon to the left of your user icon, in the top right corner. Then, create a new token, give it a name, make sure it expires quickly, and give it a custom defined scope that includes the "Agent pools: Read & manage" permission (you'll need to "Show all scopes" to access this). You can now copy this token and use it to allow machines to join. ================================================ FILE: scripts/azure-pipelines/osx/azure-pipelines.yml ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # parameters: - name: vcpkgToolSha displayName: 'Custom SHA of vcpkg-tool to use rather than bootstrap' type: string default: 'use default' - name: jobName type: string default: 'arm64_osx' - name: tripletPattern displayName: 'Enable the triplets which contain this substring' type: string default: '' jobs: - job: ${{ parameters.jobName }} condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}')) pool: name: PrOsx-2026-01-12-arm64 workspace: clean: resources timeoutInMinutes: 2880 # 2 days variables: - name: WORKING_ROOT value: /Users/vcpkg/Data - name: VCPKG_DOWNLOADS value: /Users/vcpkg/Data/downloads steps: - bash: | sudo mdutil -ad || 0 sudo mkdir ${{ variables.VCPKG_DOWNLOADS }} || 0 sudo chmod 777 ${{ variables.VCPKG_DOWNLOADS }} || 0 exit 0 displayName: 'Create ${{ variables.VCPKG_DOWNLOADS }}' - bash: ./bootstrap-vcpkg.sh displayName: 'Bootstrap vcpkg' condition: eq('use default', '${{ parameters.vcpkgToolSha }}') - bash: ./scripts/azure-pipelines/bootstrap-from-source.sh ${{ parameters.vcpkgToolSha }} displayName: "Build vcpkg with CMake" condition: ne('use default', '${{ parameters.vcpkgToolSha }}') - task: AzureCLI@2 displayName: '*** Test Modified Ports' inputs: azureSubscription: 'vcpkg-pr-fleet-wus' scriptType: 'pscore' scriptLocation: 'inlineScript' inlineScript: | $current = Get-Date -AsUtc $startDate = $current.AddMinutes(-30) $endDate = $current.AddDays(2) $start = Get-Date -Date $startDate -UFormat '+%Y-%m-%dT%H:%MZ' $end = Get-Date -Date $endDate -UFormat '+%Y-%m-%dT%H:%MZ' $assetSas = az storage container generate-sas --name cache --account-name vcpkgassetcachewus --as-user --auth-mode login --https-only --permissions rcl --start $start --expiry $end -o tsv | Out-String $assetSas = $assetSas.Trim() $binarySas = az storage container generate-sas --name cache --account-name vcpkgbinarycachewus --as-user --auth-mode login --https-only --permissions rclw --start $start --expiry $end -o tsv | Out-String $binarySas = $binarySas.Trim() # Persist the binary SAS as a secret pipeline variable for the owners-db step Write-Host "##vso[task.setvariable variable=BCACHE_SAS_TOKEN;issecret=true]$binarySas" $env:X_VCPKG_ASSET_SOURCES = "x-azurl,https://vcpkgassetcachewus.blob.core.windows.net/cache,$assetSas,readwrite" & scripts/azure-pipelines/test-modified-ports.ps1 -Triplet ${{ replace(parameters.jobName, '_', '-') }} -BuildReason $(Build.Reason) -BinarySourceStub "x-azcopy-sas,https://vcpkgbinarycachewus.blob.core.windows.net/cache,$binarySas" -WorkingRoot $env:WORKING_ROOT -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: failure logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(Build.ArtifactStagingDirectory)/failure-logs' artifact: "failure logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True') - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(WORKING_ROOT)/azcopy-logs' artifactName: "z azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['AZCOPY_LOGS_EMPTY'], 'True') - task: UseNode@1 displayName: 'Ensure Node.js is available' inputs: version: '22.x' - bash: | cd scripts/azure-pipelines/owners-db && npm ci || true # Construct the blob base url using the secret SAS token set earlier blob="https://vcpkgbinarycachewus.blob.core.windows.net/cache?${BCACHE_SAS_TOKEN}" if [ "$(Build.Reason)" = "PullRequest" ]; then echo "Running file_script_from_cache for PR" npx --yes ts-node ./file_script_from_cache.ts --pr-hashes "$(Build.ArtifactStagingDirectory)/pr-hashes.json" --blob-base-url "$blob" --target-branch "origin/master" --out-dir ../../list_files else echo "Running file_script for CI" npx --yes ts-node ./file_script.ts --info-dir /Users/vcpkg/Data/installed/vcpkg/info/ --out-dir ../../list_files fi displayName: 'Build a file list for all packages' condition: always() env: BCACHE_SAS_TOKEN: $(BCACHE_SAS_TOKEN) - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: file lists for ${{ replace(parameters.jobName, '_', '-') }}" condition: always() inputs: targetPath: scripts/list_files artifact: "file lists for ${{ replace(parameters.jobName, '_', '-') }}" - task: PublishTestResults@2 displayName: 'Publish Test Results' condition: ne(variables['XML_RESULTS_FILE'], '') inputs: testRunTitle: ${{ replace(parameters.jobName, '_', '-') }} testResultsFormat: xUnit testResultsFiles: $(XML_RESULTS_FILE) platform: ${{ replace(parameters.jobName, '_', '-') }} configuration: static ================================================ FILE: scripts/azure-pipelines/osx/register-guest.sh ================================================ #!/bin/sh if [ -z "$1" ]; then echo "PAT missing" exit 1 fi if [ -z "$2" ]; then echo "Agent number missing" exit 1 fi export AGENT=CPPMAC-ARM64-$2 echo "THIS IS AGENT: $AGENT" export POOL=`echo ~/Parallels/*/ | sed -nr 's/\/Users\/vcpkg\/Parallels\/vcpkg-osx-([0-9]{4}-[0-9]{2}-[0-9]{2})-arm64\/$/PrOsx-\1-arm64/p'` # on arm64, DNS works export SSH_COOKIE=vcpkg@vcpkgs-Virtual-Machine.local echo "POOL: $POOL" echo "SSH_COOKIE: $SSH_COOKIE" ssh $SSH_COOKIE -o "StrictHostKeyChecking=no" -i ~/Parallels/*/id_guest "~/myagent/config.sh --unattended --url https://dev.azure.com/vcpkg --work ~/Data/work --auth pat --token $1 --pool $POOL --agent $AGENT --replace --acceptTeeEula" ssh $SSH_COOKIE -o "StrictHostKeyChecking=no" -i ~/Parallels/*/id_guest "sudo shutdown -h now" ================================================ FILE: scripts/azure-pipelines/osx/setup-box.sh ================================================ #!/bin/sh hdiutil attach clt.dmg -mountpoint /Volumes/setup-installer sudo installer -pkg "/Volumes/setup-installer/Command Line Tools.pkg" -target / hdiutil detach /Volumes/setup-installer rm clt.dmg sudo xcode-select -s /Applications/Xcode.app /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/vcpkg/.zprofile eval "$(/opt/homebrew/bin/brew shellenv)" brew install autoconf-archive autoconf automake azcopy azure-cli bison cmake gettext gfortran gnu-sed gperf gtk-doc libtool meson mono nasm ninja pkg-config powershell python-setuptools texinfo yasm mkdir ~/Data curl -s -o ~/Downloads/azure-agent.tar.gz https://download.agent.dev.azure.com/agent/4.266.2/vsts-agent-osx-arm64-4.266.2.tar.gz mkdir ~/myagent tar xf ~/Downloads/azure-agent.tar.gz -C ~/myagent rm ~/Downloads/azure-agent.tar.gz rm setup-box.sh ================================================ FILE: scripts/azure-pipelines/osx/setup-guest.sh ================================================ #!/bin/sh export VM_DIRECTORY=`ls ~/Parallels | grep vcpkg-osx` export SSH_KEY="$HOME/Parallels/$VM_DIRECTORY/id_guest" export SSH_PUBLIC_KEY="$SSH_KEY.pub" ssh-keygen -P '' -f "$SSH_KEY" echo Type 'vcpkg' and press enter ssh-copy-id -i "$SSH_PUBLIC_KEY" vcpkg@vcpkgs-Virtual-Machine.local echo Keys deployed ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" echo hello from \`hostname\` scp -i "$SSH_KEY" ./clt.dmg vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/clt.dmg scp -i "$SSH_KEY" ./setup-box.sh vcpkg@vcpkgs-Virtual-Machine.local:/Users/vcpkg/setup-box.sh ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" chmod +x /Users/vcpkg/setup-box.sh ssh vcpkg@vcpkgs-Virtual-Machine.local -i "$SSH_KEY" /Users/vcpkg/setup-box.sh ================================================ FILE: scripts/azure-pipelines/owners-db/README.md ================================================ Owners DB helpers ================= Summary ------- This directory contains two small Node.js CLI helpers used by the Azure Pipelines owners-db step to build two plain-text database files used by downstream tooling: - `file_script.ts` — builds databases from a local `info` directory (used in CI runs where vcpkg is installed locally). - `file_script_from_cache.ts` — builds databases by downloading package ZIPs from a binary cache (used in PR runs that can consult prebuilt artifacts). Both scripts produce the same output file formats described below: - `VCPKGDatabase.txt` — a newline-separated list of entries of the form `port:triplet:/path/inside/package`. - `VCPKGHeadersDatabase.txt` — a newline-separated list of entries of the form `port:triplet:relative/header/path` These files are emitted to `--out-dir` (default `scripts/list_files`). Usage ----- file_script.ts (local info-dir mode) ```text file_script.ts --info-dir [--out-dir ] ``` Behavior and input format: - `--info-dir ` should point at a directory containing vcpkg-generated `.list` files (the same layout created by `vcpkg` under `installed//vcpkg/info/`). - Each file in that directory is expected to follow the filename convention used by vcpkg info files. The script parses the filename by splitting on underscores and constructs a package identifier using the first and third components: _<...>_.list --> package id = `:` - Each `.list` file is plain text with one relative file path per line. Lines that are empty, or which end in `/` are ignored. If a line contains any prefix before a `/`, the script strips the prefix and uses only the path starting at the first `/`. Examples of lines processed from `.list` files: - `share/zlib/include/zlib.h` -> entry `zlib:x64-windows:/share/zlib/include/zlib.h` - `someprefix/share/zlib/include/zlib.h` -> same as above (prefix before first `/` is dropped) file_script_from_cache.ts (PR cache mode) ```text file_script_from_cache.ts --pr-hashes --blob-base-url [--target-branch ] [--out-dir ] ``` Required inputs: - `--pr-hashes ` is a JSON file produced by the vcpkg tooling that lists changed ports and their ABIs. The script expects a top-level JSON array of objects where each object contains at least the following fields: { "name": "", "triplet": "", "state": "", "abi": "" } Important: in this script the `abi` field is expected to be the 64-hex SHA string used to name the ZIP blob in the binary cache (the script validates `abi` against `/^[a-f0-9]{64}$/`). - `--blob-base-url ` should be a URL that points to a binary cache container and include any required SAS token (for example: `https://.blob.core.windows.net/cache?`). The script will insert `/.zip` into that base URL to download the package ZIP for each port/abi pair and then enumerate files inside each ZIP. Output file formats ------------------- Both scripts write two files into the chosen `--out-dir` (default `scripts/list_files`): - `VCPKGDatabase.txt` - Each line has the form: `::` - `` begins with a leading `/` when sourced from `.list` files or ZIP entries; it is the path inside the package (for example `/share/zlib/include/zlib.h`). - `VCPKGHeadersDatabase.txt` - Each line has the form: `::` - Only files whose path starts with `/include/` are recorded here and the `/include/` prefix is removed from the path. For example, an entry for `/include/zlib.h` will produce `zlib:x64-windows:zlib.h`. Exit codes and errors --------------------- - Both scripts print an error and exit non-zero on fatal problems (invalid arguments, invalid `pr-hashes.json`, or failed git diff in the cache variant). - `file_script_from_cache.ts` will attempt to download each expected ZIP; failures to download or process a single package are reported as warnings and the script continues — missing entries will simply be absent from the output. Examples -------- Local info-dir: ```sh npx ts-node ./file_script.ts --info-dir /mnt/vcpkg-ci/installed/vcpkg/info --out-dir ./scripts/list_files ``` PR cache mode (pipeline example using `BCACHE_SAS_TOKEN` set as a secret variable): ```sh # pipeline constructs the URL from the secret token and passes it to the script blob="https://vcpkgbinarycachewus.blob.core.windows.net/cache?${BCACHE_SAS_TOKEN}" npx --yes ts-node ./file_script_from_cache.ts --pr-hashes /path/to/pr-hashes.json --blob-base-url "$blob" --target-branch origin/master --out-dir ./scripts/list_files ``` ================================================ FILE: scripts/azure-pipelines/owners-db/file_script.ts ================================================ #!/usr/bin/env node import * as fs from "fs"; import * as path from "path"; const include_subpath = "/include/"; function getFiles(dirPath: string): string[] { const files = fs.readdirSync(dirPath); return files.filter((f) => !f.startsWith(".")); } function genAllFileStrings( dirPath: string, files: string[], headersStream: fs.WriteStream, outputStream: fs.WriteStream ) { for (const file of files) { const components = file.split("_"); const pkg = components[0] + ":" + components[2].replace(".list", ""); const content = fs.readFileSync(path.join(dirPath, file), "utf8"); const lines = content.split(/\r?\n/); for (const raw of lines) { if (!raw) continue; const line = raw.trim(); if (line.length === 0) continue; if (line.endsWith("/")) continue; // Remove the leading triplet directory const idx = line.indexOf("/"); const filepath = idx >= 0 ? line.substring(idx) : line; outputStream.write(pkg + ":" + filepath + "\n"); if (filepath.startsWith(include_subpath)) { headersStream.write(pkg + ":" + filepath.substring(include_subpath.length) + "\n"); } } } } function usage() { console.error("Usage: file_script.ts --info-dir [--out-dir ]"); } function parseArgs(argv: string[]) { let infoDir: string | undefined; let outDir = "scripts/list_files"; for (let i = 0; i < argv.length; i++) { const a = argv[i]; if (a === "--info-dir") { i++; infoDir = argv[i]; } else if (a === "--out-dir") { i++; outDir = argv[i]; } else if (a.startsWith("--")) { console.error(`Unknown argument: ${a}`); usage(); process.exit(2); } else { console.error(`Unexpected positional argument: ${a}`); usage(); process.exit(2); } } if (!infoDir) { console.error("info-dir is required"); usage(); process.exit(2); } return { infoDir, outDir }; } function main() { const { infoDir: dir, outDir } = parseArgs(process.argv.slice(2)); try { fs.mkdirSync(outDir, { recursive: true }); } catch { // ignore } const headersPath = path.join(outDir, "VCPKGHeadersDatabase.txt"); const dbPath = path.join(outDir, "VCPKGDatabase.txt"); const headers = fs.createWriteStream(headersPath, { encoding: "utf8" }); const output = fs.createWriteStream(dbPath, { encoding: "utf8" }); try { const files = getFiles(dir); genAllFileStrings(dir, files, headers, output); } finally { headers.end(); output.end(); } } main(); ================================================ FILE: scripts/azure-pipelines/owners-db/file_script_from_cache.ts ================================================ #!/usr/bin/env node import * as fs from "fs"; import * as path from "path"; import * as https from "https"; import AdmZip from "adm-zip"; import { execSync } from "child_process"; const keyword = "/include/"; function writeOutputLines(outDir: string, dbLines: string[], headerLines: string[]) { fs.mkdirSync(outDir, { recursive: true }); fs.writeFileSync(path.join(outDir, "VCPKGDatabase.txt"), dbLines.join("\n") + (dbLines.length ? "\n" : "")); fs.writeFileSync(path.join(outDir, "VCPKGHeadersDatabase.txt"), headerLines.join("\n") + (headerLines.length ? "\n" : "")); } function listZipFiles(buffer: Buffer, pkgName: string, dbLines: string[], headerLines: string[]) { const zip = new AdmZip(buffer); const entries = zip.getEntries(); for (const e of entries) { if (e.isDirectory) continue; const entryName = "/" + e.entryName.replace(/\\/g, "/"); if (entryName === "/BUILD_INFO" || entryName === "/CONTROL") continue; dbLines.push(`${pkgName}:${entryName}`); if (entryName.startsWith(keyword)) { headerLines.push(`${pkgName}:${entryName.substring(keyword.length)}`); } } } function downloadUrlToBuffer(url: string): Promise { return new Promise((resolve, reject) => { https.get(url, (res) => { if (res.statusCode && res.statusCode >= 400) { reject(new Error(`HTTP ${res.statusCode} while fetching ${url}`)); return; } const chunks: Buffer[] = []; res.on("data", (c) => chunks.push(c)); res.on("end", () => resolve(Buffer.concat(chunks))); }).on("error", reject); }); } function usage() { console.error("Usage: file_script_from_cache.ts --pr-hashes --blob-base-url [--target-branch ] [--out-dir ]"); console.error("blob-base-url should include SAS token (e.g. https://.blob.core.windows.net//?)"); } function parseArgs(argv: string[]) { // supports: --pr-hashes --blob-base-url [--target-branch ] [--out-dir ] // legacy: positional: [target-branch] let prHashesPath: string | undefined; let blobBaseUrl: string | undefined; let targetBranch = "master"; let outDir = "scripts/list_files"; for (let i = 0; i < argv.length; i++) { const a = argv[i]; if (a === "--pr-hashes") { i++; prHashesPath = argv[i]; } else if (a === "--blob-base-url") { i++; blobBaseUrl = argv[i]; } else if (a === "--target-branch") { i++; targetBranch = argv[i]; } else if (a === "--out-dir") { i++; outDir = argv[i]; } else if (a.startsWith("--")) { console.error(`Unknown argument: ${a}`); usage(); process.exit(2); } else if (!prHashesPath) { prHashesPath = a; } else if (!blobBaseUrl) { blobBaseUrl = a.replace(/[\/\\]+$/g, ""); } else if (targetBranch === "master") { targetBranch = a; } else { console.error(`Unexpected positional argument: ${a}`); usage(); process.exit(2); } } if (!prHashesPath || !blobBaseUrl) { usage(); process.exit(2); } return { prHashesPath, blobBaseUrl, targetBranch, outDir }; } async function main() { const { prHashesPath, blobBaseUrl, targetBranch, outDir } = parseArgs(process.argv.slice(2)); const prHashes = JSON.parse(fs.readFileSync(prHashesPath, "utf8")) as Array<{ name: string; triplet: string; state: string; abi: string }>; // Expect vcpkg-tool produced format: array of objects // [ { "name": "zlib", "triplet": "x64-windows", "state": "pass", "abi": "zlib:x64-windows:" }, ... ] if (!Array.isArray(prHashes)) { console.error( `Invalid pr-hashes.json format: expected a top-level JSON array (vcpkg-tool output).` ); process.exit(2); } const dbLines: string[] = []; const headerLines: string[] = []; // Determine list of ports to process from git-diff (only folders under ports/ that changed) let changedPorts: string[] = []; try { const mergebase = execSync(`git merge-base ${targetBranch} HEAD`, { encoding: "utf8" }).trim(); // Find repository root by locating .vcpkg-root in or above cwd function findRepoRoot(): string { let dir = process.cwd(); while (true) { if (fs.existsSync(path.join(dir, ".vcpkg-root"))) return dir; const parent = path.dirname(dir); if (parent === dir) break; dir = parent; } throw new Error("Could not find .vcpkg-root in or above current working directory"); } const repoRoot = findRepoRoot(); const diffOut = execSync(`git diff --name-only ${mergebase}...HEAD -- ports/`, { encoding: "utf8", cwd: repoRoot }); const files = diffOut.split(/\r?\n/).filter((l) => l.length > 0); const set = new Set(); for (const f of files) { const m = f.match(/^ports\/([^\/]+)/); if (m) set.add(m[1]); } changedPorts = Array.from(set); if (changedPorts.length === 0) { console.log(`git diff found no changed ports under ports/ for range ${mergebase}...HEAD; exiting.`); writeOutputLines(outDir, dbLines, headerLines); return; } } catch (e) { console.error(`git diff failed (${e}); this is fatal in PR cache mode.`); process.exit(2); } for (const port of changedPorts) { for (const item of prHashes) { if (item.name !== port) continue; // Validate sha format const sha1Regex = /^[a-f0-9]{64}$/; if (!sha1Regex.test(item.abi)) { throw new Error(`Invalid SHA format in pr-hashes.json for port ${port}: ${item.abi}`); } const abi = item.abi; // blob named .zip // Ensure we append the ABI path before the SAS query string, i.e.: // https://...//.zip? let blobUrl: string; try { const u = new URL(blobBaseUrl); const sas = u.search; // includes leading '?' or empty // build base path without query and without trailing slash const baseNoQuery = `${u.origin}${u.pathname.replace(/[\/\\]+$/g, "")}`; blobUrl = sas ? `${baseNoQuery}/${abi}.zip${sas}` : `${baseNoQuery}/${abi}.zip`; } catch (e) { console.error(`Invalid blob base URL provided: ${blobBaseUrl} -- ${e}`); process.exit(2); } console.log(`Downloading ${blobUrl} for port ${port}...`); try { const buf = await downloadUrlToBuffer(blobUrl); listZipFiles(buf, `${port}:${item.triplet}`, dbLines, headerLines); } catch (err) { console.warn(`Failed to download or process blob for ${port}: ${err}`); } } } writeOutputLines(outDir, dbLines, headerLines); console.log(`Wrote ${path.join(outDir, "VCPKGDatabase.txt")} and ${path.join(outDir, "VCPKGHeadersDatabase.txt")}`); } await main().catch((e) => { console.error("Error in script:", e); process.exit(1); }); ================================================ FILE: scripts/azure-pipelines/owners-db/package.json ================================================ { "name": "owners-db", "version": "1.0.0", "description": "Utility to generate VCPKG file lists (TypeScript)", "private": true, "type": "module", "license": "MIT", "engines": { "node": ">=22" }, "dependencies": { "adm-zip": "^0.5.9", "ts-node": "^10.9.1", "typescript": "^4.9.5" }, "devDependencies": { "@types/adm-zip": "^0.5.7" } } ================================================ FILE: scripts/azure-pipelines/patch-tuesday-checklist.md ================================================ ## First time machine setup: * [ ] Install Azure PowerShell: https://docs.microsoft.com/en-us/powershell/azure/install-az-ps * [ ] Run `Connect-AzAccount -Subscription CPP_GITHUB` * [ ] Install Docker ## Each Patch Tuesday: * [ ] Check for depends:vm-update PRs and make relevant changes if possible. * [ ] Check for Service 360 alerts (possibly at https://aka.ms/s360 ?) against the service named "C++ VCPKG Validation" about vulnerable software we are installing in the VMs and update that. (Most often PowerShell needs to be updated) * [ ] Check for any other software for the Windows images we wish to update and make the edits to do so in `scripts/azure-pipelines/windows` * [ ] Check for any updates possible to `vcpkg-tools.json`. * [ ] Run windows/create-image.ps1 * [ ] Submit PR with those changes and merge it. * [ ] In the Azure portal, mark the newly created image as the 'latest' one. * [ ] Mint a new macOS base box. (See instructions in `scripts/azure-pipelines/osx/README.md`) * [ ] Deploy the new base box to all hosts. ================================================ FILE: scripts/azure-pipelines/test-modified-ports.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # <# .SYNOPSIS Runs the 'Test Modified Ports' part of the vcpkg CI system for all platforms. .PARAMETER Triplet The triplet to test. .PARAMETER WorkingRoot The location used as scratch space for 'installed', 'packages', and 'buildtrees' vcpkg directories. .PARAMETER ArtifactStagingDirectory The Azure Pipelines artifacts directory. If not supplied, defaults to the current directory. .PARAMETER ArchivesRoot Equivalent to '-BinarySourceStub "files,$ArchivesRoot"' .PARAMETER BinarySourceStub The type and parameters of the binary source. Shared across runs of this script. If this parameter is not set, binary caching will not be used. Example: "files,W:\" .PARAMETER BuildReason The reason Azure Pipelines is running this script. For invocations caused by `PullRequest`, modified ports are identified by changed hashes with regard to git HEAD~1 (subject to NoParentHashes), and ports marked as failing in the CI baseline (or which depend on such ports) are skipped. If BinarySourceStub is set and this parameter is set to a non-empty value other than `PullRequest`, binary caching will be in write-only mode. .PARAMETER NoParentHashes Indicates to not use parent hashes even for pull requests. .PARAMETER AllowUnexpectedPassing Indicates that 'Passing, remove from fail list' results should not be emitted as failures. (For example, this is used when using vcpkg to test a prerelease MSVC++ compiler) .Parameter KnownFailuresAbiLog If present, the path to a file containing a list of known ABI failing ABI hashes, typically generated by the `vcpkg x-check-features` command. #> [CmdletBinding(DefaultParameterSetName="ArchivesRoot")] Param( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string]$Triplet, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] $WorkingRoot, [ValidateNotNullOrEmpty()] $ArtifactStagingDirectory = '.', [Parameter(ParameterSetName='ArchivesRoot')] $ArchivesRoot = $null, [Parameter(ParameterSetName='BinarySourceStub')] $BinarySourceStub = $null, [String]$BuildReason = $null, [switch]$NoParentHashes = $false, [switch]$AllowUnexpectedPassing = $false ) function Add-ToolchainToTestCMake { # The vcpkg.cmake toolchain file is not part of ABI hashing, # but changes must trigger at least some testing. Copy-Item "scripts/buildsystems/vcpkg.cmake" -Destination "scripts/test_ports/cmake" Copy-Item "scripts/buildsystems/vcpkg.cmake" -Destination "scripts/test_ports/cmake-user" } if (-Not ((Test-Path "triplets/$Triplet.cmake") -or (Test-Path "triplets/community/$Triplet.cmake"))) { Write-Error "Incorrect triplet '$Triplet', please supply a valid triplet." exit 1 } if ((-Not [string]::IsNullOrWhiteSpace($ArchivesRoot))) { if ((-Not [string]::IsNullOrWhiteSpace($BinarySourceStub))) { Write-Error "Only one binary caching setting may be used." exit 1 } $BinarySourceStub = "files,$ArchivesRoot" } $buildtreesRoot = Join-Path $WorkingRoot 'b' $installRoot = Join-Path $WorkingRoot 'installed' $packagesRoot = Join-Path $WorkingRoot 'p' $env:AZCOPY_LOG_LOCATION = Join-Path $WorkingRoot 'azcopy-logs' $env:AZCOPY_JOB_PLAN_LOCATION = Join-Path $WorkingRoot 'azcopy-plans' if ($Triplet -eq 'x64-osx') { $env:AZCOPY_BUFFER_GB = 2 $env:AZCOPY_CONCURRENCY_VALUE = 8 } if (!(Test-Path $env:AZCOPY_LOG_LOCATION)) { New-Item -ItemType Directory -Path $env:AZCOPY_LOG_LOCATION | Out-Null } Write-Host "AzCopy logs location: $env:AZCOPY_LOG_LOCATION" Write-Host "##vso[task.setvariable variable=AZCOPY_LOGS_EMPTY]$true" $commonArgs = @( "--x-buildtrees-root=$buildtreesRoot", "--x-install-root=$installRoot", "--x-packages-root=$packagesRoot", "--overlay-ports=scripts/test_ports" ) $testFeatures = $false $cachingArgs = @() $skipFailuresArgs = @() if ([string]::IsNullOrWhiteSpace($BinarySourceStub)) { $cachingArgs = @('--binarysource', 'clear') } else { $cachingArgs = @() $binaryCachingMode = 'readwrite' if ([string]::IsNullOrWhiteSpace($BuildReason)) { Write-Host 'Build reason not specified, defaulting to using binary caching in read write mode.' } elseif ($BuildReason -eq 'PullRequest') { Write-Host 'Build reason was Pull Request, using binary caching in read write mode, testing features, skipping failures.' $skipFailuresArgs = @('--skip-failures') $testFeatures = $true } else { Write-Host "Build reason was $BuildReason, using binary caching in write only mode." $binaryCachingMode = 'write' } $cachingArgs += "--binarysource=clear;$BinarySourceStub,$binaryCachingMode" } if ($IsWindows) { $vcpkgExe = './vcpkg.exe' } else { $vcpkgExe = './vcpkg' } if ($Triplet -eq 'x64-windows-release') { $tripletArg = "--host-triplet=$Triplet" } else { $tripletArg = "--triplet=$Triplet" } $failureLogs = Join-Path $ArtifactStagingDirectory 'failure-logs' $failureLogsArg = "--failure-logs=$failureLogs" $knownFailuresFromArgs = @() $featureTestExitCode = 0 if ($testFeatures) { & $vcpkgExe x-ci-clean @commonArgs $lastLastExitCode = $LASTEXITCODE if ($lastLastExitCode -ne 0) { Write-Error "vcpkg x-ci-clean failed. This is usually an infrastructure problem; trying again may help." exit $lastLastExitCode } $ciFeatureBaselineFile = "$PSScriptRoot/../ci.feature.baseline.txt" $ciFeatureBaselineArg = "--ci-feature-baseline=$ciFeatureBaselineFile" $knownFailingAbisFile = Join-Path $ArtifactStagingDirectory 'failing-abi-log.txt' $failingAbiLogArg = "--failing-abi-log=$knownFailingAbisFile" & $vcpkgExe x-test-features --for-merge-with origin/master $tripletArg $failureLogsArg $ciBaselineArg $failingAbiLogArg $ciFeatureBaselineArg @commonArgs @cachingArgs $lastLastExitCode = $LASTEXITCODE $azcopyLogsEmpty = ((Get-ChildItem $env:AZCOPY_LOG_LOCATION).Count -eq 0) Write-Host "##vso[task.setvariable variable=AZCOPY_LOGS_EMPTY]$azcopyLogsEmpty" if ($lastLastExitCode -ne 0) { Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$false" Write-Host "##vso[task.logissue type=error]vcpkg feature testing failed; this is usually a bug in one of the features in the port(s) edited in this pull request. See https://github.com/microsoft/vcpkg/discussions/31357 for how to access AZP failure logs." # Do not exit early: continue so that 'vcpkg ci' still runs and writes pr-hashes.json, # which is required for the 'Build a file list' step to succeed. $featureTestExitCode = $lastLastExitCode } else { $knownFailuresFromArgs += "--known-failures-from=$knownFailingAbisFile" } } $ciBaselineFile = "$PSScriptRoot/../ci.baseline.txt" $ciBaselineArg = "--ci-baseline=$ciBaselineFile" $toolMetadataFile = "$PSScriptRoot/../vcpkg-tool-metadata.txt" & $vcpkgExe x-ci-clean @commonArgs $lastLastExitCode = $LASTEXITCODE if ($lastLastExitCode -ne 0) { Write-Error "vcpkg x-ci-clean failed. This is usually an infrastructure problem; trying again may help." exit $lastLastExitCode } if ($IsMacOS) { Write-Host "macOS disk space report:" & df -h | Where-Object { $_ -match "Avail|/System/Volumes/Data$" } & du -sh $WorkingRoot } $parentHashesArgs = @() if (($BuildReason -eq 'PullRequest') -and -not $NoParentHashes) { $headBaseline = Get-Content $ciBaselineFile -Raw $headTool = Get-Content $toolMetadataFile -Raw Write-Host "Comparing with HEAD~1" & git revert -n -m 1 HEAD | Out-Null $lastLastExitCode = $LASTEXITCODE if ($lastLastExitCode -ne 0) { Write-Error "git revert -n -m 1 HEAD failed" exit $lastLastExitCode } $parentBaseline = Get-Content $ciBaselineFile -Raw $parentTool = Get-Content $toolMetadataFile -Raw if (($parentBaseline -eq $headBaseline) -and ($parentTool -eq $headTool)) { Write-Host "CI baseline unchanged, determining parent hashes" $parentHashesFile = Join-Path $ArtifactStagingDirectory 'parent-hashes.json' $parentHashesArgs += "--parent-hashes=$parentHashesFile" Add-ToolchainToTestCMake & $vcpkgExe ci $tripletArg --dry-run $ciBaselineArg @commonArgs --no-binarycaching "--output-hashes=$parentHashesFile" $lastLastExitCode = $LASTEXITCODE if ($lastLastExitCode -ne 0) { Write-Error "Generating parent hashes failed; this is usually an infrastructure problem with vcpkg" exit $lastLastExitCode } } else { Write-Host "Tool or baseline modified, not using parent hashes" } Write-Host "Running CI for HEAD" & git reset --hard HEAD $lastLastExitCode = $LASTEXITCODE if ($lastLastExitCode -ne 0) { Write-Error "git reset --hard HEAD failed" exit $lastLastExitCode } } $allowUnexpectedPassingArgs = @() if ($AllowUnexpectedPassing) { $allowUnexpectedPassingArgs = @('--allow-unexpected-passing') } Add-ToolchainToTestCMake $xunitFile = Join-Path $ArtifactStagingDirectory "$Triplet-results.xml" $xunitArg = "--x-xunit=$xunitFile" $prHashesFile = Join-Path $ArtifactStagingDirectory "pr-hashes.json" & $vcpkgExe ci ` $tripletArg ` $failureLogsArg ` "--output-hashes=$prHashesFile" ` $xunitArg ` $ciBaselineArg ` @commonArgs ` @cachingArgs ` @parentHashesArgs ` @skipFailuresArgs ` @knownFailuresFromArgs ` @allowUnexpectedPassingArgs $lastLastExitCode = $LASTEXITCODE $failureLogsEmpty = (-Not (Test-Path $failureLogs) -Or ((Get-ChildItem $failureLogs).Count -eq 0)) Write-Host "##vso[task.setvariable variable=FAILURE_LOGS_EMPTY]$failureLogsEmpty" $azcopyLogsEmpty = ((Get-ChildItem $env:AZCOPY_LOG_LOCATION).Count -eq 0) Write-Host "##vso[task.setvariable variable=AZCOPY_LOGS_EMPTY]$azcopyLogsEmpty" Write-Host "##vso[task.setvariable variable=XML_RESULTS_FILE]$xunitFile" if ($lastLastExitCode -ne 0) { if (-Not $failureLogsEmpty) { Write-Host "##vso[task.logissue type=error]vcpkg ci testing failed; this is usually a bug in a port. See https://github.com/microsoft/vcpkg/discussions/31357 for how to access AZP failure logs." } else { Write-Host "##vso[task.logissue type=error]vcpkg ci testing failed, but no build failure logs were created for this error." } } # If x-test-features failed earlier, make sure we exit non-zero even if vcpkg ci succeeded. if ($featureTestExitCode -ne 0) { exit $featureTestExitCode } exit $lastLastExitCode ================================================ FILE: scripts/azure-pipelines/update-containers.yml ================================================ trigger: none pr: none schedules: - cron: "0 0 * * 1" # weekly on Mondays at 00:00 UTC displayName: Weekly build branches: include: - main always: true jobs: - job: update_amd64_job displayName: Update AMD64 Containers timeoutInMinutes: 720 pool: name: PrAzureLinux3Docker os: linux steps: - checkout: self - task: AzureCLI@2 displayName: Build and Tag Containers inputs: azureSubscription: 'containers-updater' scriptType: bash scriptLocation: 'inlineScript' inlineScript: | export BuildDate=$(date -u +"%Y-%m-%d") export EndDate=$(date -u -d "1 day" +"%Y-%m-%d") echo "BUILD_DATE=$BuildDate" echo "vnd.microsoft.artifact.lifecycle.end-of-life.date=$EndDate" az acr login --name vcpkgandroidwus # Note that this is marking the *previous* image as EOL, not the one we're building as it attaches # to the SHA to which the tag points, not the tag itself. oras attach --artifact-type application/vnd.microsoft.artifact.lifecycle --annotation "vnd.microsoft.artifact.lifecycle.end-of-life.date=$EndDate" vcpkgandroidwus.azurecr.io/vcpkg-android:2026-02-10 || echo "WARNING: Failed to attach lifecycle metadata to vcpkg-android:2026-01-20" oras attach --artifact-type application/vnd.microsoft.artifact.lifecycle --annotation "vnd.microsoft.artifact.lifecycle.end-of-life.date=$EndDate" vcpkgandroidwus.azurecr.io/vcpkg-linux:2026-01-20 || echo "WARNING: Failed to attach lifecycle metadata to vcpkg-linux:2026-01-20" oras attach --artifact-type application/vnd.microsoft.artifact.lifecycle --annotation "vnd.microsoft.artifact.lifecycle.end-of-life.date=$EndDate" vcpkgandroidwus.azurecr.io/vcpkg-arm64-linux:2026-02-10 || echo "WARNING: Failed to attach lifecycle metadata to vcpkg-arm64-linux:2026-02-10" cd scripts/azure-pipelines/android # to explain the ulimit thing, see https://github.com/docker/buildx/issues/379 docker buildx build . -t vcpkgandroidwus.azurecr.io/vcpkg-android:2026-02-10 --build-arg BUILD_DATE=$BuildDate --ulimit nofile=1024:1024 docker push vcpkgandroidwus.azurecr.io/vcpkg-android:2026-02-10 cd ../linux docker buildx build . -t vcpkgandroidwus.azurecr.io/vcpkg-linux:2026-01-20 --build-arg BUILD_DATE=$BuildDate --ulimit nofile=1024:1024 docker push vcpkgandroidwus.azurecr.io/vcpkg-linux:2026-01-20 cd ../linux-arm64 docker buildx build . -t vcpkgandroidwus.azurecr.io/vcpkg-arm64-linux:2026-03-18 --build-arg BUILD_DATE=$BuildDate --ulimit nofile=1024:1024 docker push vcpkgandroidwus.azurecr.io/vcpkg-arm64-linux:2026-03-18 ================================================ FILE: scripts/azure-pipelines/windows/azure-pipelines.yml ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # parameters: - name: vcpkgToolSha displayName: 'Custom SHA of vcpkg-tool to use rather than bootstrap' type: string default: 'use default' - name: jobName type: string default: 'x86_windows' - name: tripletPattern displayName: 'Enable the triplets which contain this substring' type: string default: '' jobs: - job: ${{ parameters.jobName }} condition: and(succeeded(), contains('^${{ replace(parameters.jobName, '_', '-') }}$', '${{ parameters.tripletPattern }}')) pool: name: PrWin-WUS demands: ImageVersionOverride -equals 2026.02.12 timeoutInMinutes: 2880 # 2 days variables: - name: WORKING_ROOT value: D:\ - name: VCPKG_DOWNLOADS value: D:\downloads - name: DiffFile value: $(Build.ArtifactStagingDirectory)\format.diff - name: ExtraChecksTriplet value: x86-windows steps: - script: .\bootstrap-vcpkg.bat displayName: 'Bootstrap vcpkg' condition: eq('use default', '${{ parameters.vcpkgToolSha }}') - script: .\scripts\azure-pipelines\windows\bootstrap-from-source.cmd ${{ parameters.vcpkgToolSha }} displayName: "Build vcpkg with CMake" condition: ne('use default', '${{ parameters.vcpkgToolSha }}') - script: | .\vcpkg.exe format-manifest --all .\vcpkg.exe format-feature-baseline scripts\ci.baseline.txt .\vcpkg.exe format-feature-baseline scripts\ci.feature.baseline.txt displayName: 'Format Manifests and Baselines' condition: eq('${{ replace(parameters.jobName, '_', '-') }}', '${{ variables.ExtraChecksTriplet }}') - task: PowerShell@2 displayName: 'Create Diff' condition: eq('${{ replace(parameters.jobName, '_', '-') }}', '${{ variables.ExtraChecksTriplet }}') inputs: filePath: scripts/azure-pipelines/Create-PRDiff.ps1 arguments: "-DiffFile '$(DiffFile)'" pwsh: true - task: PublishPipelineArtifact@1 displayName: 'Publish Format and Documentation Diff' condition: and(eq('${{ replace(parameters.jobName, '_', '-') }}', '${{ variables.ExtraChecksTriplet }}'), failed()) inputs: targetPath: '$(DiffFile)' artifact: 'format.diff' - task: AzureCLI@2 displayName: '*** Test Modified Ports' inputs: azureSubscription: 'vcpkg-pr-fleet-wus' scriptType: 'pscore' scriptLocation: 'inlineScript' inlineScript: | $current = Get-Date -AsUtc $endDate = $current.AddDays(2) $startDate = $current.AddMinutes(-30) $end = Get-Date -Date $endDate -UFormat '+%Y-%m-%dT%H:%MZ' $start = Get-Date -Date $startDate -UFormat '+%Y-%m-%dT%H:%MZ' $assetSas = az storage container generate-sas --name cache --account-name vcpkgassetcachewus --as-user --auth-mode login --https-only --permissions rcl --start $start --expiry $end -o tsv | Out-String $assetSas = $assetSas.Trim() $binarySas = az storage container generate-sas --name cache --account-name vcpkgbinarycachewus --as-user --auth-mode login --https-only --permissions rclw --start $start --expiry $end -o tsv | Out-String $binarySas = $binarySas.Trim() # Persist the binary SAS as a secret pipeline variable for the owners-db step Write-Host "##vso[task.setvariable variable=BCACHE_SAS_TOKEN;issecret=true]$binarySas" $env:X_VCPKG_ASSET_SOURCES = "x-azurl,https://vcpkgassetcachewus.blob.core.windows.net/cache,$assetSas,readwrite" & scripts/azure-pipelines/test-modified-ports.ps1 -Triplet ${{ replace(parameters.jobName, '_', '-') }} -BuildReason $(Build.Reason) -BinarySourceStub "x-azcopy-sas,https://vcpkgbinarycachewus.blob.core.windows.net/cache,$binarySas" -WorkingRoot $env:WORKING_ROOT -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) - task: PowerShell@2 displayName: 'Validate version files' condition: eq('${{ replace(parameters.jobName, '_', '-') }}', '${{ variables.ExtraChecksTriplet }}') inputs: filePath: 'scripts/azure-pipelines/windows/validate-version-files.ps1' pwsh: true - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: failure logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(Build.ArtifactStagingDirectory)\failure-logs' artifact: "failure logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True') - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" inputs: targetPath: '$(WORKING_ROOT)/azcopy-logs' artifactName: "z azcopy logs for ${{ replace(parameters.jobName, '_', '-') }}" condition: ne(variables['AZCOPY_LOGS_EMPTY'], 'True') - task: UseNode@1 displayName: 'Ensure Node.js is available' condition: always() inputs: version: '22.x' - task: PowerShell@2 displayName: 'Build a file list for all packages' condition: always() inputs: targetType: inline script: | cd scripts/azure-pipelines/owners-db npm ci -s if ($env:BUILD_REASON -eq 'PullRequest') { Write-Host 'Running file_script_from_cache for PR' $blob = "https://vcpkgbinarycachewus.blob.core.windows.net/cache?$env:BCACHE_SAS_TOKEN" npx --yes ts-node ./file_script_from_cache.ts --pr-hashes "$env:BUILD_ARTIFACTSTAGINGDIRECTORY/pr-hashes.json" --blob-base-url "$blob" --target-branch "origin/master" --out-dir ../../list_files } else { Write-Host 'Running file_script for CI' npx --yes ts-node ./file_script.ts --info-dir D:\installed\vcpkg\info\ --out-dir ../../list_files } pwsh: true env: BCACHE_SAS_TOKEN: $(BCACHE_SAS_TOKEN) - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: file lists for ${{ replace(parameters.jobName, '_', '-') }}" condition: always() inputs: targetPath: scripts/list_files artifact: "file lists for ${{ replace(parameters.jobName, '_', '-') }}" - task: PublishTestResults@2 displayName: 'Publish Test Results' condition: ne(variables['XML_RESULTS_FILE'], '') inputs: testRunTitle: ${{ replace(parameters.jobName, '_', '-') }} testResultsFormat: xUnit testResultsFiles: $(XML_RESULTS_FILE) platform: ${{ replace(parameters.jobName, '_', '-') }} ================================================ FILE: scripts/azure-pipelines/windows/bootstrap-from-source.cmd ================================================ call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=x86 -host_arch=x86 git clone --depth 1 https://github.com/microsoft/vcpkg-tool vcpkg-tool git -C vcpkg-tool fetch --depth 1 origin %1 git -C vcpkg-tool switch -d FETCH_HEAD rmdir /s /q build.x86.release > nul 2> nul cmake.exe -G Ninja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF -DVCPKG_WARNINGS_AS_ERRORS=OFF -DVCPKG_BUILD_FUZZING=OFF -DVCPKG_BUILD_TLS12_DOWNLOADER=OFF -B build.x86.release -S vcpkg-tool ninja.exe -C build.x86.release move build.x86.release\vcpkg.exe vcpkg.exe ================================================ FILE: scripts/azure-pipelines/windows/create-image.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # <# .SYNOPSIS Creates a Windows virtual machine image, set up for vcpkg's CI. .DESCRIPTION create-image.ps1 creates an Azure Windows VM image, set up for vcpkg's CI system. This script assumes you have installed Azure tools into PowerShell by following the instructions at https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-3.6.1 or are running from Azure Cloud Shell. #> $Location = 'westus3' $DatePrefixComponent = Get-Date -Format 'yyyy-MM-dd' $Prefix = "Win-$DatePrefixComponent" $GalleryImageVersion = $DatePrefixComponent.Replace('-','.') $VMSize = 'Standard_D8ads_v5' $ProtoVMName = 'PROTOTYPE' $WindowsServerSku = '2025-datacenter-azure-edition' $ErrorActionPreference = 'Stop' $ProgressActivity = 'Creating Windows Image' $TotalProgress = 18 $CurrentProgress = 1 # Assigning this to another variable helps when running the commands in this script manually for # debugging $Root = $PSScriptRoot <# .SYNOPSIS Generates a random password. .DESCRIPTION New-Password generates a password, randomly, of length $Length, containing only alphanumeric characters, underscore, and dash. .PARAMETER Length The length of the returned password. #> function New-Password { Param ([int] $Length = 32) $alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-" if ($alphabet.Length -ne 64) { throw 'Bad alphabet length' } $result = New-Object SecureString for ($idx = 0; $idx -lt $Length; $idx++) { $result.AppendChar($alphabet[(Get-SecureRandom -Maximum $alphabet.Length)]) } return $result } <# .SYNOPSIS Waits for the shutdown of the specified resource. .DESCRIPTION Wait-Shutdown takes a VM, and checks if there's a 'PowerState/stopped' code; if there is, it returns. If there isn't, it waits ten seconds and tries again. .PARAMETER ResourceGroupName The name of the resource group to look up the VM in. .PARAMETER Name The name of the virtual machine to wait on. #> function Wait-Shutdown { [CmdletBinding()] Param([string]$ResourceGroupName, [string]$Name) Write-Host "Waiting for $Name to stop..." while ($true) { $Vm = Get-AzVM -ResourceGroupName $ResourceGroupName -Name $Name -Status $highestStatus = $Vm.Statuses.Count for ($idx = 0; $idx -lt $highestStatus; $idx++) { if ($Vm.Statuses[$idx].Code -eq 'PowerState/stopped') { return } } Write-Host "... not stopped yet, sleeping for 10 seconds" Start-Sleep -Seconds 10 } } $AdminPW = New-Password $Credential = New-Object System.Management.Automation.PSCredential ("AdminUser", $AdminPW) $VirtualNetwork = Get-AzVirtualNetwork -ResourceGroupName 'vcpkg-image-minting' -Name 'vcpkg-image-minting-wus3' $Subnet = $VirtualNetwork.Subnets | Where-Object -Property 'Name' -EQ -Value 'image-minting' | Select-Object -First 1 #################################################################################################### Write-Progress ` -Activity $ProgressActivity ` -Status 'Creating prototype VM' ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) $NicName = $Prefix + 'NIC' $Nic = New-AzNetworkInterface ` -Name $NicName ` -ResourceGroupName 'vcpkg-image-minting' ` -Location $Location ` -Subnet $Subnet ` -EnableAcceleratedNetworking $VM = New-AzVMConfig -Name $ProtoVMName -VMSize $VMSize -SecurityType TrustedLaunch -IdentityType SystemAssigned $VM = Set-AzVMOperatingSystem ` -VM $VM ` -Windows ` -ComputerName $ProtoVMName ` -Credential $Credential ` -ProvisionVMAgent $VM = Add-AzVMNetworkInterface -VM $VM -Id $Nic.Id $VM = Set-AzVMOSDisk -VM $VM -StorageAccountType 'Premium_LRS' -CreateOption 'FromImage' $VM = Set-AzVMSourceImage ` -VM $VM ` -PublisherName 'MicrosoftWindowsServer' ` -Offer 'WindowsServer' ` -Skus $WindowsServerSku ` -Version latest $VM = Set-AzVMBootDiagnostic -VM $VM -Disable New-AzVm ` -ResourceGroupName 'vcpkg-image-minting' ` -Location $Location ` -VM $VM $VMCreated = Get-AzVM -ResourceGroupName 'vcpkg-image-minting' -Name $ProtoVMName $VMCreatedOsDisk = $VMCreated.StorageProfile.OsDisk.Name #################################################################################################### Write-Progress ` -Activity $ProgressActivity ` -Status 'Minting token for vcpkg-image-minting storage account' ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) $VcpkgImageMintingAccount = Get-AzStorageAccount -ResourceGroupName 'vcpkg-image-minting' -Name 'vcpkgimageminting' $AssetStorageContext = New-AzStorageContext -StorageAccountName 'vcpkgimageminting' -UseConnectedAccount $StartTime = Get-Date $ExpiryTime = $StartTime.AddHours(4) $AssetsSas = New-AzStorageContainerSASToken -Name 'assets' -Permission r -StartTime $StartTime -ExpiryTime $ExpiryTime -Context $AssetStorageContext #################################################################################################### function Invoke-ScriptWithPrefix { param( [string]$ScriptName, [switch]$SkipSas ) Write-Progress ` -Activity $ProgressActivity ` -Status "Running provisioning script $ScriptName in VM" ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) $UtilityPrefixContent = Get-Content "$Root\utility-prefix.ps1" -Encoding utf8NoBOM -Raw $tempScriptFilename = "$env:TEMP\temp-script.txt" try { $script = Get-Content "$Root\$ScriptName" -Encoding utf8NoBOM -Raw $replacement = @" if (Test-Path "`$PSScriptRoot/utility-prefix.ps1") { . "`$PSScriptRoot/utility-prefix.ps1" } "@ $script = $script.Replace($replacement, $UtilityPrefixContent); Set-Content -Path $tempScriptFilename -Value $script -Encoding utf8NoBOM $parameter = $null if (-not $SkipSas) { $parameter = @{SasToken = "`"$AssetsSas`"";} } $InvokeResult = Invoke-AzVMRunCommand ` -ResourceGroupName 'vcpkg-image-minting' ` -VMName $ProtoVMName ` -CommandId 'RunPowerShellScript' ` -ScriptPath $tempScriptFilename ` -Parameter $parameter Write-Host "$ScriptName output: $($InvokeResult.value.Message)" } finally { Remove-Item $tempScriptFilename -Force } } #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-tlssettings.ps1' -SkipSas Write-Host 'Waiting 1 minute for VM to reboot...' Start-Sleep -Seconds 60 #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-visual-studio.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-mpi.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-cuda.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-cudnn.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-inteloneapi.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-pwsh.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-azure-cli.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-azcopy.ps1' #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'deploy-settings.txt' -SkipSas Restart-AzVM -ResourceGroupName 'vcpkg-image-minting' -Name $ProtoVMName #################################################################################################### Invoke-ScriptWithPrefix -ScriptName 'sysprep.ps1' #################################################################################################### Write-Progress ` -Activity $ProgressActivity ` -Status 'Waiting for VM to shut down' ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) Wait-Shutdown -ResourceGroupName 'vcpkg-image-minting' -Name $ProtoVMName #################################################################################################### Write-Progress ` -Activity $ProgressActivity ` -Status 'Converting VM to Image' ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) Stop-AzVM ` -ResourceGroupName 'vcpkg-image-minting' ` -Name $ProtoVMName ` -Force Set-AzVM ` -ResourceGroupName 'vcpkg-image-minting' ` -Name $ProtoVMName ` -Generalized $westus3Location = @{Name = 'West US 3';} $westusLocation = @{Name = 'West US';} New-AzGalleryImageVersion ` -ResourceGroupName 'vcpkg-image-minting' ` -GalleryName 'vcpkg_gallery_wus3' ` -GalleryImageDefinitionName 'PrWinWus3-TrustedLaunch' ` -Name $GalleryImageVersion ` -Location $Location ` -SourceImageVMId $VMCreated.ID ` -ReplicaCount 1 ` -StorageAccountType 'Premium_LRS' ` -PublishingProfileExcludeFromLatest ` -TargetRegion @($westus3Location, $westusLocation) #################################################################################################### Write-Progress ` -Activity $ProgressActivity ` -Status 'Deleting unused temporary resources' ` -PercentComplete (100 / $TotalProgress * $CurrentProgress++) Remove-AzVM -Id $VMCreated.ID -Force Remove-AzDisk -ResourceGroupName 'vcpkg-image-minting' -Name $VMCreatedOsDisk -Force Remove-AzNetworkInterface -ResourceGroupName 'vcpkg-image-minting' -Name $NicName -Force #################################################################################################### Write-Progress -Activity $ProgressActivity -Completed Write-Host "Generated Image: $GalleryImageVersion" Write-Host 'Finished!' $AdminPW.Dispose() ================================================ FILE: scripts/azure-pipelines/windows/deploy-azcopy.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$AzCopyUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $AzCopyUrl = 'https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_windows_amd64_10.32.0.zip' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $AzCopyUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/azcopy_windows_amd64_10.32.0.zip?$SasToken" } mkdir -Force "C:\AzCopy10" DownloadAndUnzip -Name 'azcopy' -Url $AzCopyUrl -Destination "C:\AzCopy10" ================================================ FILE: scripts/azure-pipelines/windows/deploy-azure-cli.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$AzCliUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $AzCliUrl = 'https://azcliprod.blob.core.windows.net/msi/azure-cli-2.83.0-x64.msi' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $AzCliUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/azure-cli-2.83.0-x64.msi?$SasToken" } DownloadAndInstall -Url $AzCliUrl -Name 'Azure CLI' -Args @('/quiet', '/norestart') ================================================ FILE: scripts/azure-pipelines/windows/deploy-cuda.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$CudaUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_576.57_windows.exe' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $CudaUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/cuda_12.9.1_576.57_windows.exe?$SasToken" } # https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html # Intentionally omitted: # demo_suite_12.9 # documentation_12.9 # nsight_compute_12.9 # nsight_systems_12.9 # nsight_vse_12.9 # nvvm_samples_12.9 # visual_studio_integration_12.9 # visual_profiler_12.9 # Display.Driver DownloadAndInstall -Name 'CUDA' -Url $CudaUrl -Args @( '-s', 'cublas_12.9', 'cublas_dev_12.9', 'cuda_profiler_api_12.9', 'cudart_12.9', 'cufft_12.9', 'cufft_dev_12.9', 'cuobjdump_12.9', 'cupti_12.9', 'curand_12.9', 'curand_dev_12.9', 'cusolver_12.9', 'cusolver_dev_12.9', 'cusparse_12.9', 'cusparse_dev_12.9', 'cuxxfilt_12.9', 'npp_12.9', 'npp_dev_12.9', 'nvcc_12.9', 'nvdisasm_12.9', 'nvfatbin_12.9', 'nvjitlink_12.9', 'nvjpeg_12.9', 'nvjpeg_dev_12.9', 'nvml_dev_12.9', 'nvprof_12.9', 'nvprune_12.9', 'nvrtc_12.9', 'nvrtc_dev_12.9', 'nvtx_12.9', 'occupancy_calculator_12.9', 'opencl_12.9', 'sanitizer_12.9', 'thrust_12.9', '-n' ) ================================================ FILE: scripts/azure-pipelines/windows/deploy-cudnn.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$CudnnUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $CudnnUrl = 'https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/windows-x86_64/cudnn-windows-x86_64-9.19.0.56_cuda12-archive.zip' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $CudnnUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/cudnn-windows-x86_64-9.19.0.56_cuda12-archive.zip?$SasToken" } DownloadAndUnzip -Name 'CUDNN' -Url $CudnnUrl -Destination "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v12.9" if (Test-Path "$env:ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v12.9\include\cudnn.h") { Write-Host 'cudnn appears correctly installed' } else { Write-Error 'cudnn appears broken!' } ================================================ FILE: scripts/azure-pipelines/windows/deploy-install-disk.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } <# .SYNOPSIS Partitions a new physical disk. .DESCRIPTION Takes the disk $DiskNumber, turns it on, then partitions it for use with label $Label and drive letter $Letter. .PARAMETER DiskNumber The number of the disk to set up. .PARAMETER Letter The drive letter at which to mount the disk. .PARAMETER Label The label to give the disk. #> Function New-PhysicalDisk { Param( [int]$DiskNumber, [string]$Letter, [string]$Label ) if ($Letter.Length -ne 1) { throw "Bad drive letter $Letter, expected only one letter. (Did you accidentally add a : ?)" } try { Write-Host "Attempting to online physical disk $DiskNumber" [string]$diskpartScriptPath = Get-TempFilePath -Extension 'txt' [string]$diskpartScriptContent = "SELECT DISK $DiskNumber`r`n" + "ONLINE DISK`r`n" Write-Host "Writing diskpart script to $diskpartScriptPath with content:" Write-Host $diskpartScriptContent Set-Content -Path $diskpartScriptPath -Value $diskpartScriptContent Write-Host 'Invoking DISKPART...' & diskpart.exe /s $diskpartScriptPath Write-Host "Provisioning physical disk $DiskNumber as drive $Letter" [string]$diskpartScriptContent = "SELECT DISK $DiskNumber`r`n" + "ATTRIBUTES DISK CLEAR READONLY`r`n" + "CREATE PARTITION PRIMARY`r`n" + "FORMAT FS=NTFS LABEL=`"$Label`" QUICK`r`n" + "ASSIGN LETTER=$Letter`r`n" Write-Host "Writing diskpart script to $diskpartScriptPath with content:" Write-Host $diskpartScriptContent Set-Content -Path $diskpartScriptPath -Value $diskpartScriptContent Write-Host 'Invoking DISKPART...' & diskpart.exe /s $diskpartScriptPath } catch { Write-Error "Failed to provision physical disk $DiskNumber as drive $Letter! $($_.Exception.Message)" } } New-PhysicalDisk -DiskNumber 1 -Letter 'E' -Label 'install disk' ================================================ FILE: scripts/azure-pipelines/windows/deploy-inteloneapi.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$oneAPIBaseUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $oneAPIBaseUrl = 'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/3bbdaf75-6728-492e-a18c-be654dae9ee2/intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $oneAPIBaseUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe?$SasToken" } $oneAPIHPCComponents = 'intel.oneapi.win.ifort-compiler' $LocalName = 'intel-oneapi-hpc-toolkit-2025.2.0.576_offline.exe' try { [bool]$doRemove = $false [string]$LocalPath = Join-Path $PSScriptRoot $LocalName if (Test-Path $LocalPath) { Write-Host "Using local Intel oneAPI..." } else { Write-Host "Downloading Intel oneAPI..." $tempPath = Get-TempFilePath New-Item -ItemType Directory -Path $tempPath -Force $LocalPath = Join-Path $tempPath $LocalName curl.exe -L -o $LocalPath $oneAPIBaseUrl $doRemove = $true } [string]$extractionPath = Get-TempFilePath Write-Host 'Extracting Intel oneAPI...to folder: ' $extractionPath $proc = Start-Process -FilePath $LocalPath -ArgumentList @('-s ', '-x', '-f', $extractionPath) -Wait -PassThru $exitCode = $proc.ExitCode if ($exitCode -eq 0) { Write-Host 'Extraction successful!' } else { Write-Error "Extraction failed! Exited with $exitCode." throw } Write-Host 'Install Intel oneAPI...from folder: ' $extractionPath $proc = Start-Process -FilePath "$extractionPath/bootstrapper.exe" -ArgumentList @('-s ', '--action install', "--components=$oneAPIHPCComponents" , '--eula=accept', '-p=NEED_VS2017_INTEGRATION=0', '-p=NEED_VS2019_INTEGRATION=0', '-p=NEED_VS2022_INTEGRATION=0', '--log-dir=.') -Wait -PassThru $exitCode = $proc.ExitCode if ($exitCode -eq 0) { Write-Host 'Installation successful!' } elseif ($exitCode -eq 3010) { Write-Host 'Installation successful! Exited with 3010 (ERROR_SUCCESS_REBOOT_REQUIRED).' } else { Write-Error "Installation failed! Exited with $exitCode." } if ($doRemove) { Remove-Item -Path $LocalPath -Force } } catch { Write-Error "Installation failed! Exception: $($_.Exception.Message)" } ================================================ FILE: scripts/azure-pipelines/windows/deploy-mpi.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$MpiUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $MpiUrl = 'https://download.microsoft.com/download/7/2/7/72731ebb-b63c-4170-ade7-836966263a8f/msmpisetup.exe' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $MpiUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/msmpisetup-10.1.12498.52.exe?$SasToken" } DownloadAndInstall -Name 'MSMPI' -LocalName 'msmpisetup.exe' -Url $MpiUrl -Args @('-force', '-unattend') ================================================ FILE: scripts/azure-pipelines/windows/deploy-pwsh.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } [string]$PwshUrl if ([string]::IsNullOrEmpty($SasToken)) { Write-Host 'Downloading from the Internet' $PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi' } else { Write-Host 'Downloading from vcpkgimageminting using SAS token' $SasToken = $SasToken.Replace('"', '') $PwshUrl = "https://vcpkgimageminting.blob.core.windows.net/assets/PowerShell-7.5.4-win-x64.msi?$SasToken" } DownloadAndInstall -Url $PwshUrl -Name 'PowerShell Core' -Args @('/quiet', '/norestart') ================================================ FILE: scripts/azure-pipelines/windows/deploy-settings.txt ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT $ErrorActionPreference = 'Stop' $ProgressPreference = 'SilentlyContinue' $av = Get-Command Add-MPPreference -ErrorAction SilentlyContinue if ($null -eq $av) { Write-Host 'AntiVirus not installed, skipping exclusions.' } else { Write-Host 'Configuring AntiVirus exclusions...' Add-MpPreference -ExclusionPath C:\agent Add-MPPreference -ExclusionPath D:\ Add-MPPreference -ExclusionPath E:\ Add-MPPreference -ExclusionProcess ninja.exe Add-MPPreference -ExclusionProcess clang-cl.exe Add-MPPreference -ExclusionProcess cl.exe Add-MPPreference -ExclusionProcess link.exe Add-MPPreference -ExclusionProcess python.exe } ================================================ FILE: scripts/azure-pipelines/windows/deploy-tlssettings.ps1 ================================================ #*************************************************************************************************************** # This script supports the TLS 1.2 everywhere project # It does the following: # * By default it disables TLS 1.O, TLS 1.1, SSLv2, SSLv3 and Enables TLS1.2 # * The CipherSuite order is set to the SDL approved version. # * The FIPS MinEncryptionLevel is set to 3. # * RC4 is disabled # * A log with a transcript of all actions taken is generated #*************************************************************************************************************** #************************************************ SCRIPT USAGE ************************************************ # .\TLSSettings.ps1 # -SetCipherOrder : Excellence/Min-Bar, default(Excellence), use B to set Min-Bar. (Min-Bar ordering prefers ciphers with smaller key sizes to improve performance over security) # -RebootIfRequired : $true/$false, default($true), use $false to disable auto-reboot (Settings won't take effect until a reboot is completed) # -EnableOlderTlsVersions : $true/$false, default($false), use $true to explicitly Enable TLS1.0, TLS1.1 #*************************************************************************************************************** #***************************TEAM CAN DETERMINE WHAT CIPHER SUITE ORDER IS CHOSEN ****************************** # Option B provides the min-bar configuration (small trade-off: performance over security) # Syntax: .\TLSSettings.ps1 -SetCipherOrder B # if no option is supplied, you will get the opportunity for excellence cipher order (small trade-off: security over performance) # Syntax: .\TLSSettings.ps1 #*************************************************************************************************************** param ( [string]$SetCipherOrder = " ", [bool]$RebootIfRequired = $true, [bool]$EnableOlderTlsVersions = $false ) #******************* FUNCTION THAT ACTUALLY UPDATES KEYS; WILL RETURN REBOOT FLAG IF CHANGES *********************** Function Set-CryptoSetting { param ( $regKeyName, $value, $valuedata, $valuetype ) $restart = $false # Check for existence of registry key, and create if it does not exist If (!(Test-Path -Path $regKeyName)) { New-Item $regKeyName | Out-Null } # Get data of registry value, or null if it does not exist $val = (Get-ItemProperty -Path $regKeyName -Name $value -ErrorAction SilentlyContinue).$value If ($val -eq $null) { # Value does not exist - create and set to desired value New-ItemProperty -Path $regKeyName -Name $value -Value $valuedata -PropertyType $valuetype | Out-Null $restart = $true } Else { # Value does exist - if not equal to desired value, change it If ($val -ne $valuedata) { Set-ItemProperty -Path $regKeyName -Name $value -Value $valuedata $restart = $true } } $restart } #*************************************************************************************************************** #******************* FUNCTION THAT DISABLES RC4 *********************** Function DisableRC4 { $restart = $false $subkeys = Get-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL" $ciphers = $subkeys.OpenSubKey("Ciphers", $true) Write-Log -Message "----- Checking the status of RC4 -----" -Logfile $logLocation -Severity Information $RC4 = $false if ($ciphers.SubKeyCount -eq 0) { $k1 = $ciphers.CreateSubKey("RC4 128/128") $k1.SetValue("Enabled", 0, [Microsoft.Win32.RegistryValueKind]::DWord) $restart = $true $k2 = $ciphers.CreateSubKey("RC4 64/128") $k2.SetValue("Enabled", 0, [Microsoft.Win32.RegistryValueKind]::DWord) $k3 = $ciphers.CreateSubKey("RC4 56/128") $k3.SetValue("Enabled", 0, [Microsoft.Win32.RegistryValueKind]::DWord) $k4 = $ciphers.CreateSubKey("RC4 40/128") $k4.SetValue("Enabled", 0, [Microsoft.Win32.RegistryValueKind]::DWord) Write-Log -Message "RC4 was disabled " -Logfile $logLocation -Severity Information $RC4 = $true } If ($RC4 -ne $true) { Write-Log -Message "There was no change for RC4 " -Logfile $logLocation -Severity Information } $restart } #*************************************************************************************************************** #******************* FUNCTION CHECKS FOR PROBLEMATIC FIPS SETTING AND FIXES IT *********************** Function Test-RegistryValueForFipsSettings { $restart = $false $fipsPath = @( "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp", "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services", "HKLM:\System\CurrentControlSet\Control\Terminal Server\DefaultUserConfiguration" ) $fipsValue = "MinEncryptionLevel" foreach ($path in $fipsPath) { Write-Log -Message "Checking to see if $($path)\$fipsValue exists" -Logfile $logLocation -Severity Information $ErrorActionPreference = "stop" Try { $result = Get-ItemProperty -Path $path | Select-Object -ExpandProperty $fipsValue if ($result -eq 4) { set-itemproperty -Path $path -Name $fipsValue -value 3 Write-Log -Message "Regkey $($path)\$fipsValue was changed from value $result to a value of 3" -Logfile $logLocation -Severity Information $restart = $true } else { Write-Log -Message "Regkey $($path)\$fipsValue left at value $result" -Logfile $logLocation -Severity Information } } Catch [System.Management.Automation.ItemNotFoundException] { Write-Log -Message "Reg path $path was not found" -Logfile $logLocation -Severity Information } Catch [System.Management.Automation.PSArgumentException] { Write-Log -Message "Regkey $($path)\$fipsValue was not found" -Logfile $logLocation -Severity Information } Catch { Write-Log -Message "Error of type $($Error[0].Exception.GetType().FullName) trying to get $($path)\$fipsValue" -Logfile $logLocation -Severity Information } Finally {$ErrorActionPreference = "Continue" } } $restart } #*************************************************************************************************************** #********************************** FUNCTION THAT CREATE LOG DIRECTORY IF IT DOES NOT EXIST ******************************* function CreateLogDirectory { $TARGETDIR = "$env:HOMEDRIVE\Logs" if ( -Not (Test-Path -Path $TARGETDIR ) ) { New-Item -ItemType directory -Path $TARGETDIR | Out-Null } $TARGETDIR = $TARGETDIR + "\" + "TLSSettingsLogFile.csv" return $TARGETDIR } #*************************************************************************************************************** #********************************** FUNCTION THAT LOGS WHAT THE SCRIPT IS DOING ******************************* function Write-Log { [CmdletBinding()] param( [Parameter()] [ValidateNotNullOrEmpty()] [string]$Message, [Parameter()] [ValidateNotNullOrEmpty()] [string]$LogFile, [Parameter()] [ValidateNotNullOrEmpty()] [ValidateSet('Information', 'Warning', 'Error')] [string]$Severity = 'Information' ) [pscustomobject]@{ Time = (Get-Date -f g) Message = $Message Severity = $Severity } | ConvertTo-Csv -NoTypeInformation | Select-Object -Skip 1 | Out-File -Append -FilePath $LogFile } #********************************TLS CipherSuite Settings ******************************************* # CipherSuites for windows OS < 10 function Get-BaseCipherSuitesOlderWindows() { param ( [Parameter(Mandatory=$true, Position=0)][bool] $isExcellenceOrder ) $cipherorder = @() if ($isExcellenceOrder -eq $true) { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256" } else { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384" } # Add additional ciphers when EnableOlderTlsVersions flag is set to true if ($EnableOlderTlsVersions) { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256" $cipherorder += "TLS_RSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_RSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_RSA_WITH_AES_256_CBC_SHA256" $cipherorder += "TLS_RSA_WITH_AES_128_CBC_SHA256" $cipherorder += "TLS_RSA_WITH_AES_256_CBC_SHA" $cipherorder += "TLS_RSA_WITH_AES_128_CBC_SHA" } return $cipherorder } # Ciphersuites needed for backwards compatibility with Firefox, Chrome # Server 2012 R2 doesn't support TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 # Both firefox and chrome negotiate ECDHE_RSA_AES_256_CBC_SHA1, Edge negotiates ECDHE_RSA_AES_256_CBC_SHA384 function Get-BrowserCompatCipherSuitesOlderWindows() { param ( [Parameter(Mandatory=$true, Position=0)][bool] $isExcellenceOrder ) $cipherorder = @() if ($isExcellenceOrder -eq $true) { $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384" # (uses SHA-1) $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256" # (uses SHA-1) } else { $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256" # (uses SHA-1) $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384" # (uses SHA-1) } return $cipherorder } # Ciphersuites for OS versions windows 10 and above function Get-BaseCipherSuitesWin10Above() { param ( [Parameter(Mandatory=$true, Position=0)][bool] $isExcellenceOrder ) $cipherorder = @() if ($isExcellenceOrder -eq $true) { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" } else { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" } # Add additional ciphers when EnableOlderTlsVersions flag is set to true if ($EnableOlderTlsVersions) { $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256" $cipherorder += "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256" $cipherorder += "TLS_RSA_WITH_AES_256_GCM_SHA384" $cipherorder += "TLS_RSA_WITH_AES_128_GCM_SHA256" $cipherorder += "TLS_RSA_WITH_AES_256_CBC_SHA256" $cipherorder += "TLS_RSA_WITH_AES_128_CBC_SHA256" $cipherorder += "TLS_RSA_WITH_AES_256_CBC_SHA" $cipherorder += "TLS_RSA_WITH_AES_128_CBC_SHA" } return $cipherorder } #******************************* TLS Version Settings **************************************************** function Get-RegKeyPathForTls12() { $regKeyPath = @( "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" ) return $regKeyPath } function Get-RegKeyPathForTls11() { $regKeyPath = @( "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" ) return $regKeyPath } function Get-RegKeypathForTls10() { $regKeyPath = @( "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" ) return $regKeyPath } function Get-RegKeyPathForSsl30() { $regKeyPath = @( "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server" ) return $regKeyPath } function Get-RegKeyPathForSsl20() { $regKeyPath = @( "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client", "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" ) return $regKeyPath } #Initialize reboot value to false $reboot = $false #*****************************Create the logfile if not does not exist*************************************** $logLocation = CreateLogDirectory #Start writing to the logs Write-Log -Message "========== Start of logging for a script execution ==========" -Logfile $logLocation -Severity Information $registryPathGoodGuys = @() $registryPathBadGuys = @() # we enable TLS 1.2 and disable SSL 2.0, 3.0 in any case $registryPathGoodGuys += Get-RegKeyPathForTls12 $registryPathBadGuys += Get-RegKeyPathForSsl20 $registryPathBadGuys += Get-RegKeyPathForSsl30 # add TLS 1.0/1.1 to good/bad depending on user's preference # default is adding TLS 1.0/1.1 to bad if ($EnableOlderTlsVersions) { $registryPathGoodGuys += Get-RegKeypathForTls10 $registryPathGoodGuys += Get-RegKeyPathForTls11 Write-Log -Message "Enabling TLS1.2, TLS1.1, TLS1.0. Disabling SSL3.0, SSL2.0" -Logfile $logLocation -Severity Information } else { $registryPathBadGuys += Get-RegKeypathForTls10 $registryPathBadGuys += Get-RegKeyPathForTls11 Write-Log -Message "Enabling TLS1.2. Disabling TLS1.1, TLS1.0, SSL3.0, SSL2.0" -Logfile $logLocation -Severity Information } Write-Log -Message "Check which registry keys exist already and which registry keys need to be created." -Logfile $logLocation -Severity Information #******************* CREATE THE REGISTRY KEYS IF THEY DON'T EXIST******************************** # Check for existence of GoodGuy registry keys, and create if they do not exist For ($i = 0; $i -lt $registryPathGoodGuys.Length; $i = $i + 1) { Write-Log -Message "Checking for existing of key: $($registryPathGoodGuys[$i]) " -Logfile $logLocation -Severity Information If (!(Test-Path -Path $registryPathGoodGuys[$i])) { New-Item $registryPathGoodGuys[$i] | Out-Null Write-Log -Message "Creating key: $($registryPathGoodGuys[$i]) " -Logfile $logLocation -Severity Information } } # Check for existence of BadGuy registry keys, and create if they do not exist For ($i = 0; $i -lt $registryPathBadGuys.Length; $i = $i + 1) { Write-Log -Message "Checking for existing of key: $($registryPathBadGuys[$i]) " -Logfile $logLocation -Severity Information If (!(Test-Path -Path $registryPathBadGuys[$i])) { Write-Log -Message "Creating key: $($registryPathBadGuys[$i]) " -Logfile $logLocation -Severity Information New-Item $registryPathBadGuys[$i] | Out-Null } } #******************* EXPLICITLY DISABLE SSLV2, SSLV3, TLS10 AND TLS11 ******************************** For ($i = 0; $i -lt $registryPathBadGuys.Length; $i = $i + 1) { if ($registryPathBadGuys[$i].Contains("Client") -Or $registryPathBadGuys[$i].Contains("Server")) { Write-Log -Message "Disabling this key: $($registryPathBadGuys[$i]) " -Logfile $logLocation -Severity Information $result = Set-CryptoSetting $registryPathBadGuys[$i].ToString() Enabled 0 DWord $result = Set-CryptoSetting $registryPathBadGuys[$i].ToString() DisabledByDefault 1 DWord $reboot = $reboot -or $result } } #********************************* EXPLICITLY Enable TLS12 **************************************** For ($i = 0; $i -lt $registryPathGoodGuys.Length; $i = $i + 1) { if ($registryPathGoodGuys[$i].Contains("Client") -Or $registryPathGoodGuys[$i].Contains("Server")) { Write-Log -Message "Enabling this key: $($registryPathGoodGuys[$i]) " -Logfile $logLocation -Severity Information $result = Set-CryptoSetting $registryPathGoodGuys[$i].ToString() Enabled 1 DWord $result = Set-CryptoSetting $registryPathGoodGuys[$i].ToString() DisabledByDefault 0 DWord $reboot = $reboot -or $result } } #************************************** Disable RC4 ************************************************ $result = DisableRC4 $reboot = $reboot -or $result #************************************** Set Cipher Suite Order ************************************** Write-Log -Message "----- starting ciphersuite order calculation -----" -Logfile $logLocation -Severity Information $configureExcellenceOrder = $true if ($SetCipherOrder.ToUpper() -eq "B") { $configureExcellenceOrder = $false Write-Host "The min bar cipher suite order was chosen." Write-Log -Message "The min bar cipher suite order was chosen." -Logfile $logLocation -Severity Information } else { Write-Host "The opportunity for excellence cipher suite order was chosen." Write-Log -Message "The opportunity for excellence cipher suite order was chosen." -Logfile $logLocation -Severity Information } $cipherlist = @() if ([Environment]::OSVersion.Version.Major -lt 10) { $cipherlist += Get-BaseCipherSuitesOlderWindows -isExcellenceOrder $configureExcellenceOrder $cipherlist += Get-BrowserCompatCipherSuitesOlderWindows -isExcellenceOrder $configureExcellenceOrder } else { $cipherlist += Get-BaseCipherSuitesWin10Above -isExcellenceOrder $configureExcellenceOrder } $cipherorder = [System.String]::Join(",", $cipherlist) Write-Host "Appropriate ciphersuite order : $cipherorder" Write-Log -Message "Appropriate ciphersuite order : $cipherorder" -Logfile $logLocation -Severity Information $CipherSuiteRegKey = "HKLM:\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002" if (!(Test-Path -Path $CipherSuiteRegKey)) { New-Item $CipherSuiteRegKey | Out-Null $reboot = $True Write-Log -Message "Creating key: $($CipherSuiteRegKey) " -Logfile $logLocation -Severity Information } $val = (Get-Item -Path $CipherSuiteRegKey -ErrorAction SilentlyContinue).GetValue("Functions", $null) Write-Log -Message "Previous cipher suite value: $val " -Logfile $logLocation -Severity Information Write-Log -Message "New cipher suite value : $cipherorder " -Logfile $logLocation -Severity Information if ($val -ne $cipherorder) { Write-Log -Message "Cipher suite order needs to be updated. " -Logfile $logLocation -Severity Information Write-Host "The original cipher suite order needs to be updated", `n, $val Set-ItemProperty -Path $CipherSuiteRegKey -Name Functions -Value $cipherorder Write-Log -Message "Cipher suite value was updated. " -Logfile $logLocation -Severity Information $reboot = $True } else { Write-Log -Message "Cipher suite order does not need to be updated. " -Logfile $logLocation -Severity Information Write-Log -Message "Cipher suite value was not updated as there was no change. " -Logfile $logLocation -Severity Information } #****************************** CHECK THE FIPS SETTING WHICH IMPACTS RDP'S ALLOWED CIPHERS ************************** #Check for FipsSettings Write-Log -Message "Checking to see if reg keys exist and if MinEncryptionLevel is set to 4" -Logfile $logLocation -Severity Information $result = Test-RegistryValueForFipsSettings $reboot = $reboot -or $result #************************************** REBOOT ************************************** if ($RebootIfRequired) { Write-Log -Message "You set the RebootIfRequired flag to true. If changes are made, the system will reboot " -Logfile $logLocation -Severity Information # If any settings were changed, reboot If ($reboot) { Write-Log -Message "Rebooting now... " -Logfile $logLocation -Severity Information Write-Log -Message "Using this command: shutdown.exe /r /t 5 /c ""Crypto settings changed"" /f /d p:2:4 " -Logfile $logLocation -Severity Information Write-Host "Rebooting now..." shutdown.exe /r /t 5 /c "Crypto settings changed" /f /d p:2:4 } Else { Write-Host "Nothing get updated." Write-Log -Message "Nothing get updated. " -Logfile $logLocation -Severity Information } } else { Write-Log -Message "You set the RebootIfRequired flag to false. If changes are made, the system will NOT reboot " -Logfile $logLocation -Severity Information Write-Log -Message "No changes will take effect until a reboot has been completed. " -Logfile $logLocation -Severity Information Write-Log -Message "Script does not include a reboot by design" -Logfile $logLocation -Severity Information } Write-Log -Message "========== End of logging for a script execution ==========" -Logfile $logLocation -Severity Information # SIG # Begin signature block # MIIjhgYJKoZIhvcNAQcCoIIjdzCCI3MCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAHtlEJwNffjnOP # Sr2t1yq5EfE0ll4GozyZt3UXO9BXKKCCDYEwggX/MIID56ADAgECAhMzAAABh3IX # chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB # znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH # sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d # weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ # itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV # Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw # UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 # ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu # ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu # bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w # Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx # MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy # S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K # NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV # BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr # qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx # zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe # yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g # yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf # AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI # 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5 # GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea # jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS # AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 # ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla # MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT # H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB # AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG # OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S # 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz # y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 # 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u # M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 # X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl # XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP # 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB # l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF # RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM # CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ # BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud # DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO # 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 # LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y # Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB # FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw # cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA # XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY # 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj # 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd # d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ # Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf # wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ # aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j # NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B # xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 # eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 # r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I # RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVWzCCFVcCAQEwgZUwfjELMAkG # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z # b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN # BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgOQvu7NUq # wmve+qCoalj/s9HX5Hz9/zYISdJyOFTC4FIwQgYKKwYBBAGCNwIBDDE0MDKgFIAS # AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN # BgkqhkiG9w0BAQEFAASCAQAHbtGz0AChe0qMPM3c7iU8BQCfJklePUlAlhwFSuCx # careoloxao+ZtS+dQRlrxLu/ZSqtmJHNsyRoWzsHdOs65pwUYhV3svzaXd7pJwkc # nbDXedLBbNuQrQrrL2xbGtzT3U+EwgpJ1TTEYwHgqkTFogIelGa2sjD5N+4Vvalq # t+vxaYrWwkTtsm0qczLKGRUjJqCjARjviE1xsOvs4zwbpXx/bEs/6M7U9tR+w/DS # nDY/5KAKYET0DCVDhmsMmzJi3xXdBr4sAz0484AAB0CIRVgPCgdgr8E0NQUESJzm # xm3K4bMAgTMWRiGTL4MRYSuMIn09sbfYXP9hjXLvTV4YoYIS5TCCEuEGCisGAQQB # gjcDAwExghLRMIISzQYJKoZIhvcNAQcCoIISvjCCEroCAQMxDzANBglghkgBZQME # AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB # MDEwDQYJYIZIAWUDBAIBBQAEIJBynrmlQmGS0UNGTk53HVKEc4aHvNdYrs5eCcHM # puc5AgZfEgElnvMYEzIwMjAwNzI0MTgwNDM3Ljg3NlowBIACAfSggdCkgc0wgcox # CzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg # SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg # RVNOOkUwNDEtNEJFRS1GQTdFMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt # cCBzZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEHfjdomIdaN9YAAAAAAQcw # DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 # b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh # dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN # MTkxMDA4MTczODM1WhcNMjEwMTAzMTczODM1WjCByjELMAkGA1UEBhMCVVMxCzAJ # BgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQg # Q29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlv # bnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RTA0MS00QkVFLUZB # N0UxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIHNlcnZpY2UwggEiMA0G # CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDUuqOUlbaeWirgwbCwhhNIOqTshpo+ # QdSYxAt9JnkeulQFeKrQ6rOSECXxwgOjL/TNMIXtkig1MaifFON6si/Ri+AsV8Gu # rQp4fylJzLDMFdJcGSpV3CGRdpDb0au8kNQLmnZuxLxAL91R7//3mH2QDQI20w3G # 06s+Xv8+js9wQksXAfclXX1TJoBIx1Pi1FGqCnY3KlW81+Plhz0T4yStm1MgnqH4 # RKYyPdcempCYC/BI04Ph2EJL+uQQfAfYdbf9vGqpKYjsuktnWr5uowD3H5At+x3l # YH5rz4JCleKjeLpB/j74H7VZ0I5eTEbls9e2lEKaUzb9o0wjnjDc+t4BAgMBAAGj # ggEbMIIBFzAdBgNVHQ4EFgQUNOHjlxlIJXMcP9n/0ogYdX8p6HcwHwYDVR0jBBgw # FoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov # L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3RhUENB # XzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0 # cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0FfMjAx # MC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDCDAN # BgkqhkiG9w0BAQsFAAOCAQEAGN3/7XWSzHGKjk444w+2q1D3k7Bh/ZahUvWHFJ6E # UKU5vLzEGsdsgJSvWXHZDRrpf5rcUGQyjnlo1hAY1mDteNKFushS6bedxcxPHJje # lVZ9N2/e5+/7zLu18YjnKw5bFu7dWqYBMI3J0FOr56XJOJ1KTtMiJhpxuib+FWy+ # pyhVVgHGTUHuUdbE09dY9WxuRsbpb4DdWAWNrPDB6VAOO50QfEj+0tW+zF6h3RhB # TI0ilj0+AzgXE+6DyJ7/br6aVvCEvNRJzE6akJnMyn/kzmC32LxvRZWKEwWDR0Fn # zeXj5ynSStZ6iifTBP7gqiDsidguxh+BFX7HxhN1eHf7jTCCBnEwggRZoAMCAQIC # CmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp # ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcwMTIx # NDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV # BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQG # A1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqGSIb3 # DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUKAIKF # ++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCIhFRD # DNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5FfgVSx # z5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx898Fd1 # rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg16Hgc # sOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHmMIIB # 4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8UzaFqF # bVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud # EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYD # VR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwv # cHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEB # BE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j # ZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSBlTCB # kjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQe # MiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQA # LiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+umzPUx # vs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM9GAS # inbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84Dxf1 # L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+tuWO # M7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32WapB4 # pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUPei45 # V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAeb73x # 4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4hQEe # gPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanblrKn # QqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLFVeNp # 3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLraNtvT # X4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzELMAkG # A1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9u # cyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjpFMDQxLTRCRUUtRkE3 # RTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgc2VydmljZaIjCgEBMAcG # BSsOAwIaAxUAwwu+tfgG3rC7RZrxuFO2CmZSfPiggYMwgYCkfjB8MQswCQYDVQQG # EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQg # VGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOLFEVUwIhgPMjAy # MDA3MjQxNTUwNDVaGA8yMDIwMDcyNTE1NTA0NVowdzA9BgorBgEEAYRZCgQBMS8w # LTAKAgUA4sURVQIBADAKAgEAAgIa9QIB/zAHAgEAAgIR9DAKAgUA4sZi1QIBADA2 # BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIB # AAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBADwvhE9bln801RR+oEXjtPJXTqtYMakR # ymItUlO2HRorDqEv2SJR/V/kQjcsqS6ig54bOiKs0Il2fW/s/pi+x1ydJMpOyhM7 # zzqm3acQ9kbYHIDoPWVT/Rq2Oo33Dq380zXENcc0hpLAKF3Cu06SbbNbqu+A/wbI # z5IClz6kU8kiMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgT # Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m # dCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENB # IDIwMTACEzMAAAEHfjdomIdaN9YAAAAAAQcwDQYJYIZIAWUDBAIBBQCgggFKMBoG # CSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg6+NCew+c # OhYIOzhUKofOF7MxtgOvSMWQCMCIWlTFNMgwgfoGCyqGSIb3DQEJEAIvMYHqMIHn # MIHkMIG9BCBBYvCj4pFkwhumagATn0gLh9fdDNzImQkKNeOtRj/LHjCBmDCBgKR+ # MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMT # HU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABB343aJiHWjfWAAAA # AAEHMCIEIGIH6vLdbEFNnxTxBhtIN7CtmhcKy/9m6/xoAA3LHzXUMA0GCSqGSIb3 # DQEBCwUABIIBAKGg3zNulscnGBDlD6Q/U6yLQ5dN3gF9UrprgACiQ1gs/DexU7oC # hjNZxBnH5RTA/7q9TFf2a1rBydHWVnqXuuQQJ0HuskdpXahxR4y1jboDdGwr7F08 # v/gmPeeUik28Je72QZp5m/R0O61/kMQaDpLO9iPH0Z9iMGfqJonFPDeY4VX8Da2n # cPY7mrv6YAI+ydZ+mUdBp2yjas7+/N8MntcNtAO0HpWFXQTAmb77RrSssfeZphRA # mBD+gLx5C3q4uSmuOqaQxUaF0y8FeuetHp0bw2sfce6GlMXJwzTpC6HvXnaVtMy0 # pgzd/KPHW7EgSvmRVKmvwiQGiZBoRG/Gcg8= # SIG # End signature block ================================================ FILE: scripts/azure-pipelines/windows/deploy-visual-studio.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT param([string]$SasToken) if (Test-Path "$PSScriptRoot/utility-prefix.ps1") { . "$PSScriptRoot/utility-prefix.ps1" } # See https://learn.microsoft.com/visualstudio/releases/2022/release-history # 17.14.26 $VisualStudioBootstrapperUrl = 'https://download.visualstudio.microsoft.com/download/pr/8ded7f52-a29c-4020-aa42-b89467fbc1ef/333504f828d3ffb075512c986ae2f94561faf1e6a71e867691fc2b07fcd43fde/vs_Enterprise.exe' $Workloads = @( 'Microsoft.VisualStudio.Workload.NativeDesktop', 'Microsoft.VisualStudio.Workload.Universal', 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64', 'Microsoft.VisualStudio.Component.VC.Tools.ARM64', 'Microsoft.VisualStudio.Component.VC.ASAN', 'Microsoft.VisualStudio.Component.VC.ATL', 'Microsoft.VisualStudio.Component.VC.ATLMFC', 'Microsoft.VisualStudio.Component.VC.ATL.ARM64', 'Microsoft.VisualStudio.Component.VC.MFC.ARM64', 'Microsoft.VisualStudio.Component.Windows11SDK.26100', # These .NET parts are needed for easyhook, openni2 'Microsoft.Net.Component.4.8.SDK', 'Microsoft.Net.Component.4.7.2.TargetingPack', 'Microsoft.Component.NetFX.Native', 'Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset', 'Microsoft.VisualStudio.Component.VC.Llvm.Clang', 'Microsoft.VisualStudio.Component.VC.CMake.Project' ) $vsArgs = @('--quiet', '--norestart', '--wait', '--nocache') foreach ($workload in $Workloads) { $vsArgs += '--add' $vsArgs += $workload } DownloadAndInstall -Name 'Visual Studio' -Url $VisualStudioBootstrapperUrl -Args $vsArgs ================================================ FILE: scripts/azure-pipelines/windows/disk-space.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # <# .SYNOPSIS Prints total and free disk space for each disk on the system #> Function Format-Size { [CmdletBinding()] Param([long]$Size) if ($Size -lt 1024) { $Size = [int]$Size return "$Size B" } $Size = $Size / 1024 if ($Size -lt 1024) { $Size = [int]$Size return "$Size KiB" } $Size = $Size / 1024 if ($Size -lt 1024) { $Size = [int]$Size return "$Size MiB" } $Size = [int]($Size / 1024) return "$Size GiB" } Get-CimInstance -ClassName Win32_LogicalDisk | Format-Table -Property @{Label="Disk"; Expression={ $_.DeviceID }},@{Label="Label"; Expression={ $_.VolumeName }},@{Label="Size"; Expression={ Format-Size($_.Size) }},@{Label="Free Space"; Expression={ Format-Size($_.FreeSpace) }} ================================================ FILE: scripts/azure-pipelines/windows/provision-entire-image.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # This script runs all the scripts we run on Azure machines to deploy prerequisites, # and assumes it is being run as an admin user. . "$PSScriptRoot\deploy-tlssettings.ps1" -RebootIfRequired 0 . "$PSScriptRoot\deploy-visual-studio.ps1" . "$PSScriptRoot\deploy-mpi.ps1" . "$PSScriptRoot\deploy-cuda.ps1" . "$PSScriptRoot\deploy-cudnn.ps1" . "$PSScriptRoot\deploy-inteloneapi.ps1" . "$PSScriptRoot\deploy-pwsh.ps1" . "$PSScriptRoot\deploy-azure-cli.ps1" . "$PSScriptRoot\deploy-azcopy.ps1" try { Copy-Item "$PSScriptRoot\deploy-settings.txt" "$PSScriptRoot\deploy-settings.ps1" . "$PSScriptRoot\deploy-settings.ps1" } finally { Remove-Item "$PSScriptRoot\deploy-settings.ps1" } ================================================ FILE: scripts/azure-pipelines/windows/sysprep.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # param([string]$SasToken) <# .SYNOPSIS Prepares the virtual machine for imaging. .DESCRIPTION Runs the `sysprep` utility to prepare the system for imaging. See https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--system-preparation--overview for more information. #> $ErrorActionPreference = 'Stop' Write-Host 'Running sysprep' & C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /mode:vm /shutdown ================================================ FILE: scripts/azure-pipelines/windows/utility-prefix.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT <# .SYNOPSIS Gets a random file path in the temp directory. .DESCRIPTION Get-TempFilePath takes an extension, and returns a path with a random filename component in the temporary directory with that extension. .PARAMETER Extension The extension to use for the path. #> Function Get-TempFilePath { Param( [String]$Extension ) $tempPath = [System.IO.Path]::GetTempPath() $tempName = [System.IO.Path]::GetRandomFileName() if (-not [String]::IsNullOrWhiteSpace($Extension)) { $tempName = $tempName + '.' + $Extension } return Join-Path $tempPath $tempName } <# .SYNOPSIS Download and install a component. .DESCRIPTION DownloadAndInstall downloads an executable from the given URL, and runs it with the given command-line arguments. .PARAMETER Name The name of the component, to be displayed in logging messages. .PARAMETER Url The URL of the installer. .PARAMETER Args The command-line arguments to pass to the installer. #> Function DownloadAndInstall { [CmdletBinding(PositionalBinding=$false)] Param( [Parameter(Mandatory)][String]$Name, [Parameter(Mandatory)][String]$Url, [Parameter(Mandatory)][String[]]$Args, [String]$LocalName = $null ) try { if ([string]::IsNullOrWhiteSpace($LocalName)) { $LocalName = [uri]::new($Url).Segments[-1] } [bool]$doRemove = $false [string]$LocalPath = Join-Path $PSScriptRoot $LocalName if (Test-Path $LocalPath) { Write-Host "Using local $Name..." } else { Write-Host "Downloading $Name..." $tempPath = Get-TempFilePath New-Item -ItemType Directory -Path $tempPath -Force | Out-Null $LocalPath = Join-Path $tempPath $LocalName curl.exe --fail -L -o $LocalPath $Url if (-Not $?) { Write-Error 'Download failed!' } $doRemove = $true } Write-Host "Installing $Name..." $proc = Start-Process -FilePath $LocalPath -ArgumentList $Args -Wait -PassThru $exitCode = $proc.ExitCode if ($exitCode -eq 0) { Write-Host 'Installation successful!' } elseif ($exitCode -eq 3010) { Write-Host 'Installation successful! Exited with 3010 (ERROR_SUCCESS_REBOOT_REQUIRED).' } else { Write-Error "Installation failed! Exited with $exitCode." } if ($doRemove) { Remove-Item -Path $LocalPath -Force } } catch { Write-Error "Installation failed! Exception: $($_.Exception.Message)" } } <# .SYNOPSIS Download and install a zip file component. .DESCRIPTION DownloadAndUnzip downloads a zip from the given URL, and extracts it to the indicated path. .PARAMETER Name The name of the component, to be displayed in logging messages. .PARAMETER Url The URL of the zip to download. .PARAMETER Destination The location to which the zip should be extracted #> Function DownloadAndUnzip { [CmdletBinding(PositionalBinding=$false)] Param( [Parameter(Mandatory)][String]$Name, [Parameter(Mandatory)][String]$Url, [Parameter(Mandatory)][String]$Destination ) try { $fileName = [uri]::new($Url).Segments[-1] if ([string]::IsNullOrWhiteSpace($LocalName)) { $LocalName = $fileName } [string]$zipPath [bool]$doRemove = $false [string]$LocalPath = Join-Path $PSScriptRoot $LocalName if (Test-Path $LocalPath) { Write-Host "Using local $Name..." $zipPath = $LocalPath } else { $tempPath = Get-TempFilePath New-Item -ItemType Directory -Path $tempPath -Force | Out-Null $zipPath = Join-Path $tempPath $LocalName Write-Host "Downloading $Name ( $Url -> $zipPath )..." curl.exe --fail -L -o $zipPath $Url if (-Not $?) { Write-Error 'Download failed!' } $doRemove = $true } Write-Host "Installing $Name to $Destination..." & tar.exe -xvf $zipPath --strip 1 --directory $Destination if ($LASTEXITCODE -eq 0) { Write-Host 'Installation successful!' } else { Write-Error "Installation failed! Exited with $LASTEXITCODE." } if ($doRemove) { Remove-Item -Path $zipPath -Force } } catch { Write-Error "Installation failed! Exception: $($_.Exception.Message)" } } ================================================ FILE: scripts/azure-pipelines/windows/validate-version-files.ps1 ================================================ ./vcpkg.exe x-ci-verify-versions --verbose | ForEach-Object -Begin { $long_error = '' } -Process { if ($long_error -ne '' -and $_ -match '^$|^ ') { # Extend multi-line message $long_error = -join($long_error, "%0D%0A", $_ -replace '^ ','' ` -replace '(git add) [^ ]*\\ports\\([^ ]*)', '$1 ports/$2' ) } else { if ($long_error -ne '') { # Flush multi-line message $long_error $long_error = '' } if ($_ -match '^Error: ') { # Start multi-line message $long_error = $_ -replace '^Error: ', '##vso[task.logissue type=error]' ` -replace '(^##vso[^\]]*)](.*) [^ ]*\\versions\\(.-)\\(.*.json)(.*)', '$1;sourcepath=versions/$3/$4;linenumber=2]$2 version/$3/$4$5' } else { # Normal line $_ } } } -End { if ($long_error -ne '') { # Flush multi-line message $long_error } } ================================================ FILE: scripts/azure-pipelines/windows-unstable/README.md ================================================ The "unstable" build is used internally by Microsoft to test prerelease versions of our C++ compiler; not seeing results from these build definitions in the GitHub portal is normal as these builds depend on acquisition of private compiler bits that aren't yet shipping. ================================================ FILE: scripts/azure-pipelines/windows-unstable/azure-pipelines.yml ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # jobs: - job: x64_windows pool: name: vcpkg-testing-msvc demands: ImageVersionOverride -equals 2026.02.12 timeoutInMinutes: 2880 # 2 days variables: - name: WORKING_ROOT value: D:\ - name: VCPKG_DOWNLOADS value: D:\downloads - name: Codeql.Enabled value: false steps: - task: DownloadBuildArtifacts@0 displayName: 'Download DropBuildNumber if not specified' inputs: buildType: specific project: '0bdbc590-a062-4c3f-b0f6-9383f67865ee' pipeline: 16549 buildVersionToDownload: latestFromBranch branchName: 'refs/heads/$(MSVCBranchName)' artifactName: BuildNumber downloadPath: 'D:\msvc-drops' condition: eq(variables['DropBuildNumber'], '') - task: PowerShell@2 displayName: 'Set DropBuildNumber if not specified' inputs: targetType: inline script: | $DropBuildNumber = Get-Content -Path D:\msvc-drops\BuildNumber\Build.BuildNumber.txt Write-Host "##vso[task.setvariable variable=DropBuildNumber]$DropBuildNumber" Write-Host "Build Number set to: $DropBuildNumber" pwsh: true condition: eq(variables['DropBuildNumber'], '') - task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@0 displayName: 'Download msvc x86 ret' inputs: dropServiceURI: 'https://devdiv.artifacts.visualstudio.com/DefaultCollection' buildNumber: 'msvc/builds/$(DropBuildNumber)/x86ret' destinationPath: 'D:\msvc-drops\$(DropBuildNumber)\binaries.x86ret' - task: ms-vscs-artifact.build-tasks.artifactDropDownloadTask-1.artifactDropDownloadTask@0 displayName: 'Download msvc amd64 ret' inputs: dropServiceURI: 'https://devdiv.artifacts.visualstudio.com/DefaultCollection' buildNumber: 'msvc/builds/$(DropBuildNumber)/amd64ret' destinationPath: 'D:\msvc-drops\$(DropBuildNumber)\binaries.amd64ret' - task: PowerShell@2 displayName: 'Rearrange MSVC Drop Layout' inputs: targetType: filePath filePath: 'scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1' arguments: '-DropRoot "D:\msvc-drops\$(DropBuildNumber)" -BuildType ret' pwsh: true - script: .\bootstrap-vcpkg.bat displayName: 'Bootstrap vcpkg' - task: AzureCLI@2 displayName: '*** Test Modified Ports' inputs: azureSubscription: 'vcpkg-pr-fleet-wus' scriptType: 'pscore' failOnStandardError: true scriptLocation: 'inlineScript' inlineScript: | $current = Get-Date -AsUtc $endDate = $current.AddDays(2) $end = Get-Date -Date $endDate -UFormat '+%Y-%m-%dT%H:%MZ' $assetSas = az storage container generate-sas --name cache --account-name vcpkgassetcachewus --as-user --auth-mode login --https-only --permissions r --expiry $end -o tsv | Out-String $assetSas = $assetSas.Trim() $env:X_VCPKG_ASSET_SOURCES = "x-azurl,https://vcpkgassetcachewus.blob.core.windows.net/cache,$assetSas,read" & scripts/azure-pipelines/test-modified-ports.ps1 -Triplet x64-windows -BuildReason $(Build.Reason) -WorkingRoot $env:WORKING_ROOT -ArtifactStagingDirectory $(Build.ArtifactStagingDirectory) -AllowUnexpectedPassing - task: PublishPipelineArtifact@1 displayName: "Publish Artifact: failure logs for x64-windows" inputs: targetPath: '$(Build.ArtifactStagingDirectory)\failure-logs' artifact: "failure logs for x64-windows" condition: ne(variables['FAILURE_LOGS_EMPTY'], 'True') ================================================ FILE: scripts/azure-pipelines/windows-unstable/rearrange-msvc-drop-layout.ps1 ================================================ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: MIT # <# .SYNOPSIS Moves files from an MSVC compiler drop to the locations where they are installed in a Visual Studio installation. .PARAMETER DropRoot The location where the MSVC compiler drop has been downloaded. .PARAMETER BuildType The MSVC drop build type set with /p:_BuildType when MSVC was built. Defaults to 'ret'. #> [CmdletBinding()] param( [Parameter(Mandatory = $true)][string]$DropRoot, [Parameter(Mandatory = $false)][ValidateSet('ret', 'chk')][string]$BuildType = 'ret' ) Set-StrictMode -Version Latest $MSVCRoot = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC" $ErrorActionPreference = "Stop" $tempRoot = "$DropRoot\readytodeploy" New-Item -ItemType Directory -Path $tempRoot | Out-Null Write-Host "Rearranging x86$BuildType" New-Item -ItemType Directory -Path "$tempRoot\bin\HostX86" | Out-Null Move-Item "$DropRoot\binaries.x86$BuildType\bin\i386" "$tempRoot\bin\HostX86\x86" Move-Item "$DropRoot\binaries.x86$BuildType\bin\x86_amd64" "$tempRoot\bin\HostX86\x64" Move-Item "$DropRoot\binaries.x86$BuildType\bin\x86_arm" "$tempRoot\bin\HostX86\arm" Write-Host "Rearranging amd64$BuildType" New-Item -ItemType Directory -Path "$tempRoot\bin\HostX64" | Out-Null Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64" "$tempRoot\bin\HostX64\x64" Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64_x86" "$tempRoot\bin\HostX64\x86" Move-Item "$DropRoot\binaries.amd64$BuildType\bin\amd64_arm" "$tempRoot\bin\HostX64\arm" # Only copy files and directories that already exist in the VS installation. Write-Host "Rearranging inc, lib" New-Item -ItemType Directory -Path "$tempRoot\lib" | Out-Null Move-Item "$DropRoot\binaries.x86$BuildType\inc" "$tempRoot\include" Move-Item "$DropRoot\binaries.x86$BuildType\lib\i386" "$tempRoot\lib\x86" Move-Item "$DropRoot\binaries.amd64$BuildType\lib\amd64" "$tempRoot\lib\x64" Write-Host "Rearranging atlmfc" New-Item -ItemType Directory -Path "$tempRoot\atlmfc" | Out-Null New-Item -ItemType Directory -Path "$tempRoot\atlmfc\lib" | Out-Null Move-Item "$DropRoot\binaries.x86$BuildType\atlmfc\include" "$tempRoot\atlmfc\include" Move-Item "$DropRoot\binaries.x86$BuildType\atlmfc\lib\i386" "$tempRoot\atlmfc\lib\x86" Move-Item "$DropRoot\binaries.amd64$BuildType\atlmfc\lib\amd64" "$tempRoot\atlmfc\lib\x64" [string[]]$toolsets = Get-ChildItem -Path $MSVCRoot -Directory | Sort-Object -Descending if ($toolsets.Length -eq 0) { throw "Could not find Visual Studio toolset!" } Write-Host "Found toolsets:`n$($toolsets -join `"`n`")`n" $selectedToolset = $toolsets[0] Write-Host "Using toolset: $selectedToolset" for ($idx = 1; $idx -lt $toolsets.Length; $idx++) { $badToolset = $toolsets[$idx] Write-Host "Deleting toolset: $badToolset" Remove-Item $badToolset -Recurse -Force } Write-Host "Deploying $tempRoot => $selectedToolset" Copy-Item "$tempRoot\*" $selectedToolset -Recurse -Force Write-Host "Deleting $DropRoot..." Remove-Item $DropRoot -Recurse -Force Write-Host "Done!" ================================================ FILE: scripts/boost/.gitignore ================================================ /boost /downloads /libs ================================================ FILE: scripts/boost/generate-ports.ps1 ================================================ #requires -Version 6.2 # This script requires at least PowerShell 6.2, due to: # - Set-Content UTF8 encoding doesn't add BOM anymore (since PS 6.0) # - Join-String was added in PS 6.2 # As Windows 11 currently only ships PS 5.1, install the latest version! # See https://aka.ms/PSWindows [CmdletBinding()] param ( $libraries = @(), $version = '1.90.0', # This script treats support statements as platform expressions. This is incorrect # in a few cases e.g. boost-parameter-python not depending on boost-python for uwp since # boost-python is not supported on uwp. Update $suppressPlatformForDependency as needed, # don't blindly stage/commit changes containing platform expressions in dependencies. $portsDir = $null, $vcpkg = $null ) $ErrorActionPreference = 'Stop' $scriptsBoostDir = split-path -parent $MyInvocation.MyCommand.Definition if ($null -eq $portsDir) { $portsDir = "$scriptsBoostDir/../../ports" } if ($null -eq $vcpkg) { $vcpkg = "$scriptsBoostDir/../../vcpkg" if ($IsWindows) { $vcpkg = "$vcpkg.exe" } } # Beta builds contains a text in the version string $semverVersion = ($version -replace '(\d+(\.\d+){1,3}).*', '$1') # Clear this array when moving to a new boost version $defaultPortVersion = 1 $portVersions = @{ } function Get-PortVersion { param ( [string]$PortName ) $nonDefault = $portVersions[$PortName] if ($null -ne $nonDefault) { return $nonDefault } return $defaultPortVersion } $portData = @{ 'boost' = @{ 'features' = @{ 'mpi' = @{ 'description' = 'Build with MPI support'; 'dependencies' = @('boost-mpi', 'boost-graph-parallel', 'boost-property-map-parallel'); } } }; 'boost-asio' = @{ 'default-features' = @('deadline-timer'; @{ 'name' = 'spawn'; 'platform' = '!uwp & !emscripten' };); 'features' = @{ 'ssl' = @{ 'description' = 'Build with SSL support'; 'dependencies' = @(@{ 'name' = 'openssl'; 'platform' = '!emscripten' }); }; 'deadline-timer' = @{ 'description' = 'Build with deadline_timer support'; 'dependencies' = @('boost-date-time'); } 'spawn' = @{ 'description' = 'Build with spawn (stackful coroutines) support'; 'dependencies' = @(@{ 'name' = 'boost-context'; 'platform' = '!uwp & !emscripten' }); }; } }; 'boost-beast' = @{ 'supports' = '!emscripten' }; 'boost-cmake' = @{ 'dependencies' = @(@{ 'name' = 'vcpkg-boost'; 'host' = $true }); }; 'boost-cobalt' = @{ 'supports' = '!uwp' }; 'boost-context' = @{ 'supports' = '!uwp & !emscripten' }; 'boost-coroutine' = @{ 'supports' = '!(arm & windows) & !uwp & !emscripten' }; 'boost-dll' = @{ 'supports' = '!uwp' }; 'boost-fiber' = @{ 'supports' = '!uwp & !(arm & windows) & !emscripten'; 'features' = @{ 'numa' = @{ 'description' = 'Enable NUMA support'; } } }; 'boost-filesystem' = @{ 'supports' = '!uwp' }; 'boost-geometry' = @{ 'dependencies' = @('boost-crc', 'boost-program-options'); 'supports' = '!uwp'; }; 'boost-graph' = @{ 'supports' = '!uwp' }; 'boost-graph-parallel' = @{ 'dependencies' = @('mpi'); 'supports' = '!uwp'; }; 'boost-iostreams' = @{ 'default-features' = @('bzip2', 'lzma', 'zlib', 'zstd'); 'supports' = '!uwp'; 'features' = @{ 'bzip2' = @{ 'description' = 'Support bzip2 filters'; 'dependencies' = @('bzip2'); }; 'lzma' = @{ 'description' = 'Support LZMA/xz filters'; 'dependencies' = @('liblzma'); }; 'zlib' = @{ 'description' = 'Support zlib filters'; 'dependencies' = @('zlib'); }; 'zstd' = @{ 'description' = 'Support zstd filters'; 'dependencies' = @('zstd'); }; }; }; 'boost-locale' = @{ 'dependencies' = @(@{ 'name' = 'libiconv'; 'platform' = '!uwp & !windows & !mingw' }); 'supports' = '!uwp'; 'features' = @{ 'icu' = @{ 'description' = 'ICU backend for Boost.Locale'; 'dependencies' = @('icu'); } } }; 'boost-log' = @{ 'supports' = '!uwp & !emscripten' }; 'boost-math' = @{ 'features' = @{ 'legacy' = @{ 'description' = 'Build the legacy C99 and TR1 libraries'; } } }; 'boost-mpi' = @{ 'dependencies' = @('mpi'); 'supports' = '!uwp'; 'features' = @{ 'python3' = @{ 'description' = 'Build Python3 bindings'; 'supports' = '!static'; 'dependencies' = @(@{ 'name' = 'boost-python'; 'platform' = '!uwp & !emscripten & !ios & !android' }, 'python3'); } } }; 'boost-mqtt5' = @{ 'supports' = '!uwp' }; 'boost-mysql' = @{ 'dependencies' = @('openssl'); }; 'boost-odeint' = @{ 'features' = @{ 'mpi' = @{ 'description' = 'Support parallelization with MPI'; 'dependencies' = @('boost-mpi'); } } }; 'boost-process' = @{ 'supports' = '!uwp & !emscripten & !android' }; 'boost-python' = @{ 'supports' = '!uwp & !emscripten & !ios & !android'; 'dependencies' = @('python3');}; 'boost-random' = @{ 'supports' = '!uwp' }; 'boost-regex' = @{ 'features' = @{ 'icu' = @{ 'description' = 'ICU backend for Boost.Regex'; 'dependencies' = @('icu'); } } } 'boost-stacktrace' = @{ 'default-features' = @(@{ 'name' = 'backtrace'; 'platform' = '!windows' }; @{ 'name' = 'windbg'; 'platform' = 'windows' }); 'supports' = '!uwp'; 'features' = @{ 'backtrace' = @{ 'description' = 'Use boost_stacktrace_backtrace'; 'supports' = '!windows'; 'dependencies' = @(@{ 'name' = 'libbacktrace'; 'platform' = '!windows' }); }; 'windbg' = @{ 'description' = 'Use boost_stacktrace_windbg'; 'supports' = 'windows'; }; } }; 'boost-test' = @{ 'supports' = '!uwp' }; 'boost-wave' = @{ 'supports' = '!uwp' }; } # For some dependent ports (LHS), the dependency's [RHS] "supports" is enough, # and no "platform" field shall be added to the dependency. $suppressPlatformForDependency = @{ 'boost-coroutine2' = @('boost-context'); 'boost-dll' = @('boost-filesystem'); 'boost-process' = @('boost-filesystem'); 'boost-geometry' = @('boost-graph'); 'boost-graph' = @('boost-random'); 'boost-graph-parallel' = @('boost-filesystem', 'boost-graph', 'boost-mpi', 'boost-random'); 'boost-log' = @('boost-filesystem'); 'boost-mpi' = @('boost-graph'); 'boost-mqtt5' = @('boost-random'); 'boost-parameter-python' = @('boost-python'); 'boost-property-map-parallel' = @('boost-mpi'); 'boost-python' = @('boost-graph'); 'boost-wave' = @('boost-filesystem'); } function GeneratePortName() { param ( [string]$Library ) 'boost-' + ($Library -replace '_', '-') } function GeneratePortHash() { param ( [string]$Archive ) $hash = & $vcpkg --x-wait-for-lock hash $Archive # Remove prefix "Waiting to take filesystem lock on /.vcpkg-root... " if ($hash -is [Object[]]) { $hash = $hash[1] } return $hash } function GetPortDocumentation() { param ( [string]$Library ) # Null value means no explicit documentation site $specicalDocumentationPaths = @{ 'build' = $null; 'cmake' = $null; 'headers' = $null; 'interval' = 'https://www.boost.org/libs/numeric/interval'; 'logic' = 'https://www.boost.org/libs/logictribool'; 'numeric_conversion' = 'https://www.boost.org/libs/numeric/conversion'; 'odeint' = 'https://www.boost.org/libs/numeric/odeint'; 'ublas' = 'https://www.boost.org/libs/numeric/ublas'; } if ($specicalDocumentationPaths.ContainsKey($Library)) { $documentationPath = $specicalDocumentationPaths[$Library] } else { $documentationPath = "https://www.boost.org/libs/$Library" } return $documentationPath } function GetPortHomepage() { param ( [string]$Library ) $specicalHomepagePaths = @{ 'build' = 'https://github.com/boostorg/build'; 'cmake' = 'https://github.com/boostorg/cmake'; 'headers' = 'https://github.com/boostorg/headers'; 'interval' = 'https://www.boost.org/library/latest/numericinterval/'; 'logic' = 'https://www.boost.org/library/latest/logictribool/'; 'numeric_conversion' = 'https://www.boost.org/library/latest/numericconversion/'; 'odeint' = 'https://www.boost.org/library/latest/numericodeint/'; 'ublas' = 'https://www.boost.org/library/latest/numericublas/'; } if ($specicalHomepagePaths.ContainsKey($Library)) { $homepagePath = $specicalHomepagePaths[$Library] } else { $homepagePath = "https://www.boost.org/library/latest/$Library/" } return $homepagePath } function GeneratePortDependency() { param ( [string]$Library = '', [string]$PortName = '', [string]$ForLibrary = '' ) if ($PortName -eq '') { $PortName = GeneratePortName $Library } $forPortName = GeneratePortName $ForLibrary if ($suppressPlatformForDependency.Contains($forPortName) -and $suppressPlatformForDependency[$forPortName].Contains($PortName)) { $PortName } elseif ($portData.Contains($PortName) -and $portData[$PortName].Contains('supports')) { @{name = $PortName; platform = $portData[$PortName]['supports'] } } elseif ($ForLibrary -eq '' -and $suppressPlatformForDependency.Contains($PortName)) { # For 'boost'. $platform = $suppressPlatformForDependency[$PortName] ` | ForEach-Object { (GeneratePortDependency -PortName $_).platform } ` | Group-Object -NoElement ` | Join-String -Property Name -Separator ' & ' if ($platform -ne '') { @{name = $PortName; platform = $platform } } else { $PortName } } else { $PortName } } function AddBoostVersionConstraints() { param ( $Dependencies = @() ) $updatedDependencies = @() foreach ($dependency in $Dependencies) { if ($dependency.Contains('name')) { if ($dependency.name.StartsWith('boost')) { $dependency['version>='] = $semverVersion } } else { if ($dependency.StartsWith('boost')) { $dependency = @{ 'name' = $dependency 'version>=' = $semverVersion } } } $updatedDependencies += $dependency } $updatedDependencies } function GeneratePortManifest() { param ( [string]$PortName, [string]$Homepage, [string]$Documentation, [string]$Description, [string]$License, $Dependencies = @() ) $manifest = @{ '$comment' = 'Automatically generated by scripts/boost/generate-ports.ps1' 'name' = $PortName 'homepage' = $Homepage 'description' = $Description } if ($Documentation) { $manifest['documentation'] = $Documentation } if ($version -eq $semverVersion) { $manifest['version'] = $version } else { $manifest['version-string'] = $version } if ($License) { $manifest['license'] += $License } if ($portData.Contains($PortName)) { $manifest += $portData[$PortName] } $thisPortVersion = Get-PortVersion $PortName if ($thisPortVersion -ne 0) { $manifest['port-version'] = $thisPortVersion } if ($Dependencies.Count -gt 0) { $manifest['dependencies'] += $Dependencies } # Remove from the dependencies the ports that are included in the feature dependencies if ($manifest.Contains('features') -and $manifest.Contains('dependencies')) { foreach ($feature in $manifest.features.Keys) { $feature_dependencies = $manifest.features.$feature['dependencies'] foreach ($dependency in $feature_dependencies) { if ($dependency.Contains('name')) { $dep_name = $dependency.name } else { $dep_name = $dependency } $manifest['dependencies'] = $manifest['dependencies'] ` | Where-Object { if ($_.Contains('name')) { $_.name -notmatch "$dep_name" } else { $_ -notmatch "$dep_name" } } } } } # Add version constraints to boost dependencies $manifest['dependencies'] = @(AddBoostVersionConstraints $manifest['dependencies']) foreach ($feature in $manifest.features.Keys) { $manifest.features.$feature['dependencies'] = @(AddBoostVersionConstraints $manifest.features.$feature['dependencies']) } $manifest | ConvertTo-Json -Depth 10 -Compress ` | Out-File -Encoding UTF8 "$portsDir/$PortName/vcpkg.json" & $vcpkg format-manifest "$portsDir/$PortName/vcpkg.json" } function GeneratePort() { param ( [string]$Library, [string]$Archive, [bool]$NeedsBuild = $true, $Dependencies = @() ) $portName = GeneratePortName $Library $portHash = GeneratePortHash $Archive $homepage = GetPortHomepage $Library $documentation = GetPortDocumentation $Library New-Item -ItemType 'Directory' "$portsDir/$portName" -erroraction SilentlyContinue | out-null # Generate vcpkg.json GeneratePortManifest ` -PortName $portName ` -Homepage $homepage ` -Documentation $documentation ` -Description "Boost $Library module" ` -License 'BSL-1.0' ` -Dependencies $Dependencies $portfileLines = @( '# Automatically generated by scripts/boost/generate-ports.ps1' '' ) if (Test-Path "$scriptsBoostDir/pre-source-stubs/$Library.cmake") { $portfileLines += @( Get-Content "$scriptsBoostDir/pre-source-stubs/$Library.cmake" '' ) } $portfileLines += @( "vcpkg_from_github(", " OUT_SOURCE_PATH SOURCE_PATH", " REPO boostorg/$Library", " REF boost-`${VERSION}", " SHA512 $portHash", " HEAD_REF master" ) [string[]]$patches = @() $patches += Get-ChildItem -Path "$portsDir/$portName/*" -Name -Include @('*.patch', '*.diff') if (Test-Path "$scriptsBoostDir/patch-stubs/$Library.txt") { $patches += Get-Content "$scriptsBoostDir/patch-stubs/$Library.txt" } if ($patches.Length -ne 0) { $portfileLines += @(' PATCHES') foreach ($patch in $patches) { $portfileLines += " $patch" } } $portfileLines += @( ')' '' ) if (Test-Path "$scriptsBoostDir/post-source-stubs/$Library.cmake") { $portfileLines += @(Get-Content "$scriptsBoostDir/post-source-stubs/$Library.cmake") } if ($NeedsBuild) { $portfileLines += @( 'set(FEATURE_OPTIONS "")' ) if (Test-Path "$portsDir/$portName/features.cmake") { $portfileLines += @( 'include("${CMAKE_CURRENT_LIST_DIR}/features.cmake")' ) } if (Test-Path "$scriptsBoostDir/pre-build-stubs/$Library.cmake") { $portfileLines += Get-Content "$scriptsBoostDir/pre-build-stubs/$Library.cmake" } $portfileLines += @( 'boost_configure_and_install(' ' SOURCE_PATH "${SOURCE_PATH}"' ' OPTIONS ${FEATURE_OPTIONS}' ')' ) if (Test-Path "$scriptsBoostDir/post-build-stubs/$Library.cmake") { $portfileLines += @(Get-Content "$scriptsBoostDir/post-build-stubs/$Library.cmake") } } $portfileLines += @("") Set-Content -LiteralPath "$portsDir/$portName/portfile.cmake" ` -Value "$($portfileLines -join "`n")" ` -Encoding UTF8 ` -NoNewline } if (!(Test-Path "$scriptsBoostDir/boost")) { 'Cloning boost...' Push-Location $scriptsBoostDir try { git clone https://github.com/boostorg/boost --branch boost-$version } finally { Pop-Location } } else { Push-Location $scriptsBoostDir/boost try { git fetch git checkout -f boost-$version } finally { Pop-Location } } $foundLibraries = Get-ChildItem $scriptsBoostDir/boost/libs -directory | ForEach-Object name | ForEach-Object { if ($_ -eq 'numeric') { 'numeric_conversion' 'interval' 'odeint' 'ublas' } else { $_.ToString() } } $tools = @('build', 'cmake') $foundLibraries += $tools $foundLibraries = $foundLibraries | Sort-Object $updateServicePorts = $false if ($libraries.Length -eq 0) { $libraries = $foundLibraries $updateServicePorts = $true } $downloads = "$scriptsBoostDir/../../downloads" New-Item -ItemType 'Directory' $downloads -erroraction SilentlyContinue | out-null $boostPortDependencies = @() foreach ($library in $libraries) { $archive = "$downloads/boostorg-$library-boost-$version.tar.gz" "Handling boost/$library... $archive" if (!(Test-Path $archive)) { "Downloading boost/$library..." Invoke-WebRequest -Uri "https://github.com/boostorg/$library/archive/boost-$version.tar.gz" -OutFile "$archive" "Downloaded boost/$library..." } $unpacked = "$scriptsBoostDir/libs/$library-boost-$version" if (!(Test-Path $unpacked)) { "Unpacking boost/$library..." New-Item -ItemType 'Directory' $scriptsBoostDir/libs -erroraction SilentlyContinue | out-null Push-Location $scriptsBoostDir/libs try { cmake -E tar xf $archive } finally { Pop-Location } } Push-Location $unpacked try { $usedLibraries = Get-ChildItem -Recurse -Path include, src -File ` | Where-Object { $_ -is [System.IO.FileInfo] } ` | ForEach-Object { Write-Verbose "${library}: processing file: $_" Get-Content -LiteralPath $_.FullName } ` | Where-Object { $_ -match ' *# *include *[<"]boost\/' } ` | ForEach-Object { # Extract path from the line Write-Verbose '${library}: processing line: $_' $_ -replace ' *# *include *[<"]boost\/([a-zA-Z0-9\.\-_\/]*)[>"].*', '$1' }` | ForEach-Object { # Map the path to the library name Write-Verbose "${library}: processing path: $_" if ($_ -match '^detail\/winapi\/') { 'winapi' } elseif ($_ -eq 'detail/algorithm.hpp') { 'graph' } elseif ($_ -eq 'detail/atomic_count.hpp') { 'smart_ptr' } elseif ($_ -eq 'detail/basic_pointerbuf.hpp') { 'lexical_cast' } elseif ($_ -eq 'detail/call_traits.hpp') { 'utility' } elseif ($_ -eq 'detail/compressed_pair.hpp') { 'utility' } elseif ($_ -eq 'detail/interlocked.hpp') { 'winapi' } elseif ($_ -eq 'detail/iterator.hpp') { 'core' } elseif ($_ -eq 'detail/lcast_precision.hpp') { 'lexical_cast' } elseif ($_ -eq 'detail/lightweight_mutex.hpp') { 'smart_ptr' } elseif ($_ -eq 'detail/lightweight_test.hpp') { 'core' } elseif ($_ -eq 'detail/lightweight_thread.hpp') { 'smart_ptr' } elseif ($_ -eq 'detail/no_exceptions_support.hpp') { 'core' } elseif ($_ -eq 'detail/scoped_enum_emulation.hpp') { 'core' } elseif ($_ -eq 'detail/sp_typeinfo.hpp') { 'core' } elseif ($_ -eq 'detail/ob_compressed_pair.hpp') { 'utility' } elseif ($_ -eq 'detail/quick_allocator.hpp') { 'smart_ptr' } elseif ($_ -eq 'detail/workaround.hpp') { 'config' } elseif ($_ -match '^functional\/hash\/') { 'container_hash' } elseif ($_ -eq 'functional/hash.hpp') { 'container_hash' } elseif ($_ -eq 'functional/hash_fwd.hpp') { 'container_hash' } elseif ($_ -match '^graph\/distributed\/') { 'graph_parallel' } elseif ($_ -match '^graph\/parallel\/') { 'graph_parallel' } elseif ($_ -eq 'graph/accounting.hpp') { 'graph_parallel' } elseif ($_ -eq 'exception/exception.hpp') { 'throw_exception' } elseif ($_ -match '^numeric\/conversion\/') { 'numeric_conversion' } elseif ($_ -match '^numeric\/interval\/') { 'interval' } elseif ($_ -match '^numeric\/odeint\/') { 'odeint' } elseif ($_ -match '^numeric\/ublas\/') { 'ublas' } elseif ($_ -eq 'numeric/interval.hpp') { 'interval' } elseif ($_ -eq 'numeric/odeint.hpp') { 'odeint' } elseif ($_ -match '^parameter\/aux_\/python\/') { 'parameter_python' } elseif ($_ -eq 'parameter/python.hpp') { 'parameter_python' } elseif ($_ -eq 'pending/detail/disjoint_sets.hpp') { 'graph' } elseif ($_ -eq 'pending/detail/int_iterator.hpp') { 'iterator' } elseif ($_ -eq 'pending/detail/property.hpp') { 'graph' } elseif ($_ -eq 'pending/bucket_sorter.hpp') { 'graph' } elseif ($_ -eq 'pending/container_traits.hpp') { 'graph' } elseif ($_ -eq 'pending/disjoint_sets.hpp') { 'graph' } elseif ($_ -eq 'pending/fenced_priority_queue.hpp') { 'graph' } elseif ($_ -eq 'pending/fibonacci_heap.hpp') { 'graph' } elseif ($_ -eq 'pending/indirect_cmp.hpp') { 'graph' } elseif ($_ -eq 'pending/integer_log2.hpp') { 'integer' } elseif ($_ -eq 'pending/is_heap.hpp') { 'graph' } elseif ($_ -eq 'pending/iterator_adaptors.hpp') { 'iterator' } elseif ($_ -eq 'pending/iterator_tests.hpp') { 'iterator' } elseif ($_ -eq 'pending/mutable_heap.hpp') { 'graph' } elseif ($_ -eq 'pending/mutable_queue.hpp') { 'graph' } elseif ($_ -eq 'pending/property.hpp') { 'graph' } elseif ($_ -eq 'pending/property_serialize.hpp') { 'graph' } elseif ($_ -eq 'pending/queue.hpp') { 'graph' } elseif ($_ -eq 'pending/relaxed_heap.hpp') { 'graph' } elseif ($_ -eq 'pending/stringtok.hpp') { 'graph' } elseif ($_ -match '^property_map\/parallel\/') { 'property_map_parallel' } elseif ($_ -eq 'utility/addressof.hpp') { 'core' } elseif ($_ -eq 'utility/declval.hpp') { 'type_traits' } elseif ($_ -eq 'utility/enable_if.hpp') { 'core' } elseif ($_ -eq 'utility/explicit_operator_bool.hpp') { 'core' } elseif ($_ -eq 'utility/swap.hpp') { 'core' } # Extract first directory name or file name from the path else { $_ -replace '([a-zA-Z0-9\.\-_]*).*', '$1' } } ` | ForEach-Object { # Map directory/file name to the library name Write-Verbose "${library}: processing name: $_" if ($_ -eq 'current_function.hpp') { 'assert' } elseif ($_ -eq 'memory_order.hpp') { 'atomic' } elseif ($_ -match 'is_placeholder.hpp|mem_fn.hpp') { 'bind' } elseif ($_ -eq 'circular_buffer_fwd.hpp') { 'circular_buffer' } elseif ($_ -match '^concept$|concept_archetype.hpp') { 'concept_check' } elseif ($_ -match 'cstdint.hpp|cxx11_char_types.hpp|limits.hpp|version.hpp') { 'config' } elseif ($_ -eq 'contract_macro.hpp') { 'contract' } elseif ($_ -match 'implicit_cast.hpp|polymorphic_cast.hpp|polymorphic_pointer_cast.hpp') { 'conversion' } elseif ($_ -eq 'make_default.hpp') { 'convert' } elseif ($_ -match 'checked_delete.hpp|get_pointer.hpp|iterator.hpp|non_type.hpp|noncopyable.hpp|ref.hpp|swap.hpp|type.hpp|visit_each.hpp') { 'core' } elseif ($_ -match 'blank.hpp|blank_fwd.hpp|cstdlib.hpp') { 'detail' } elseif ($_ -eq 'dynamic_bitset_fwd.hpp') { 'dynamic_bitset' } elseif ($_ -eq 'exception_ptr.hpp') { 'exception' } elseif ($_ -eq 'foreach_fwd.hpp') { 'foreach' } elseif ($_ -eq 'function_equal.hpp') { 'function' } elseif ($_ -match 'integer_fwd.hpp|integer_traits.hpp') { 'integer' } elseif ($_ -eq 'io_fwd.hpp') { 'io' } elseif ($_ -match 'function_output_iterator.hpp|generator_iterator.hpp|indirect_reference.hpp|iterator_adaptors.hpp|next_prior.hpp|pointee.hpp|shared_container_iterator.hpp') { 'iterator' } elseif ($_ -match 'cstdfloat.hpp|math_fwd.hpp') { 'math' } elseif ($_ -match 'multi_index_container.hpp|multi_index_container_fwd.hpp') { 'multi_index' } elseif ($_ -eq 'cast.hpp') { 'numeric_conversion' } elseif ($_ -match 'none.hpp|none_t.hpp') { 'optional' } elseif ($_ -eq 'qvm_lite.hpp') { 'qvm' } elseif ($_ -eq 'nondet_random.hpp') { 'random' } elseif ($_ -match 'cregex.hpp|regex_fwd.hpp') { 'regex' } elseif ($_ -eq 'archive') { 'serialization' } elseif ($_ -match 'last_value.hpp|signal.hpp') { 'signals' } elseif ($_ -match 'enable_shared_from_this.hpp|intrusive_ptr.hpp|make_shared.hpp|make_unique.hpp|pointer_cast.hpp|pointer_to_other.hpp|scoped_array.hpp|scoped_ptr.hpp|shared_array.hpp|shared_ptr.hpp|weak_ptr.hpp') { 'smart_ptr' } elseif ($_ -eq 'cerrno.hpp') { 'system' } elseif ($_ -eq 'progress.hpp') { 'timer' } elseif ($_ -match 'token_functions.hpp|token_iterator.hpp') { 'tokenizer' } elseif ($_ -match 'aligned_storage.hpp') { 'type_traits' } elseif ($_ -match 'unordered_map.hpp|unordered_set.hpp') { 'unordered' } elseif ($_ -match 'call_traits.hpp|compressed_pair.hpp|operators.hpp|operators_v1.hpp') { 'utility' } # By dafault use the name as is, just remove the file extension if available else { $_ -replace '\.hp?p?', '' } } ` | Where-Object { $_ -ne $library } ` | Group-Object -NoElement | ForEach-Object Name ' [known] ' + $($usedLibraries | Where-Object { $foundLibraries -contains $_ }) '[unknown] ' + $($usedLibraries | Where-Object { $foundLibraries -notcontains $_ }) $deps = @($usedLibraries | Where-Object { $foundLibraries -contains $_ }) # Remove optional dependencies $deps = @($deps ` | Where-Object { # Boost.Filesystem only used for tests or examples # See https://github.com/boostorg/gil#requirements -not ($library -eq 'gil' -and $_ -eq 'filesystem') } ` | Where-Object { # Note that Boost.Pfr is not listed because it's a peer dependency # See CMakeLists.txt -not ($library -eq 'mysql' -and $_ -eq 'pfr') } ` | Where-Object { # Boost.Beast only used for MQTT connections over WebSocket # See CMakeLists.txt -not ($library -eq 'mqtt5' -and $_ -eq 'beast') } ) # Remove cyclic dependencies $deps = @($deps ` | Where-Object { -not ($library -eq 'graph' -and $_ -eq 'geometry') } ) $needsBuild = $true if ($tools -contains $library) { $needsBuild = $false $deps += @('uninstall') } else { $deps += @('cmake') if ($library -ne 'headers') { $deps += @('headers') if ($library -ne 'config') { # Note: CMake's built-in finder (FindBoost.cmake) looks for Boost header files (boost/version.h or boost/config.h) # and stores the result in the Boost_INCLUDE_DIR variable. The files boost/version.h or boost/config.h are owned by the config library. # Without these files, the Boost_INCLUDE_DIR variable will not be set and the Boost version will not be detected. $deps += @('config') } } $boostPortDependencies += @(GeneratePortDependency $library) } $deps = $deps | Select-Object -Unique $deps = @($deps | ForEach-Object { GeneratePortDependency $_ -ForLibrary $library }) GeneratePort ` -Library $library ` -Archive $archive ` -NeedsBuild $needsBuild ` -Dependencies $deps } finally { Pop-Location } } if ($updateServicePorts) { # Generate manifest file for master boost port which depends on each individual library GeneratePortManifest ` -PortName 'boost' ` -Homepage 'https://boost.org' ` -Description 'Peer-reviewed portable C++ source libraries' ` -License 'BSL-1.0' ` -Dependencies $boostPortDependencies Set-Content -LiteralPath "$portsDir/boost/portfile.cmake" ` -Value "set(VCPKG_POLICY_EMPTY_PACKAGE enabled)`n" ` -Encoding UTF8 ` -NoNewline # Generate manifest files for boost-uninstall GeneratePortManifest ` -PortName 'boost-uninstall' ` -Description 'Internal vcpkg port used to uninstall Boost' ` -License 'MIT' } ================================================ FILE: scripts/boost/post-build-stubs/config.cmake ================================================ file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#ifndef BOOST_ALL_NO_LIB\n#define BOOST_ALL_NO_LIB\n#endif\n") file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#undef BOOST_ALL_DYN_LINK\n") if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(APPEND "${CURRENT_PACKAGES_DIR}/include/boost/config/user.hpp" "\n#define BOOST_ALL_DYN_LINK\n") endif() file(COPY "${SOURCE_PATH}/libs/config/checks" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost-config") ================================================ FILE: scripts/boost/post-build-stubs/predef.cmake ================================================ file(COPY "${SOURCE_PATH}/libs/predef/tools/check" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost-predef") ================================================ FILE: scripts/boost/post-build-stubs/test.cmake ================================================ if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(GLOB MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/lib/*_exec_monitor*) file(COPY ${MONITOR_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/lib/manual-link") file(REMOVE ${MONITOR_LIBS}) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(GLOB DEBUG_MONITOR_LIBS ${CURRENT_PACKAGES_DIR}/debug/lib/*_exec_monitor*) file(COPY ${DEBUG_MONITOR_LIBS} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/manual-link") file(REMOVE ${DEBUG_MONITOR_LIBS}) endif() ================================================ FILE: scripts/boost/post-source-stubs/build.cmake ================================================ # This fixes the lib path to use desktop libs instead of uwp -- TODO: improve this with better "host" compilation string(REPLACE "\\store\\;" "\\;" LIB "$ENV{LIB}") set(ENV{LIB} "${LIB}") file(COPY ${SOURCE_PATH}/ DESTINATION ${CURRENT_PACKAGES_DIR}/tools/boost-build ) file(READ "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" _contents) string(REPLACE " /ZW /EHsc " "" _contents "${_contents}") string(REPLACE "-nologo" "" _contents "${_contents}") string(REPLACE "/nologo" "" _contents "${_contents}") string(REPLACE "/Zm800" "" _contents "${_contents}") string(REPLACE "_WIN32_WINNT=0x0602" "" _contents "${_contents}") file(WRITE "${CURRENT_PACKAGES_DIR}/tools/boost-build/src/tools/msvc.jam" "${_contents}") message(STATUS "Bootstrapping...") if(CMAKE_HOST_WIN32) if(VCPKG_TARGET_IS_MINGW) set(TOOLSET mingw) else() set(TOOLSET msvc) endif() vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.bat" ${TOOLSET} WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build LOGNAME bootstrap-${TARGET_TRIPLET} ) else() vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/tools/boost-build/bootstrap.sh" WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/boost-build LOGNAME bootstrap-${TARGET_TRIPLET} ) endif() vcpkg_download_distfile(BOOST_LICENSE URLS "https://raw.githubusercontent.com/boostorg/boost/refs/tags/boost-${VERSION}/LICENSE_1_0.txt" FILENAME "boost-${VERSION}-LICENSE_1_0.txt" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) vcpkg_install_copyright(FILE_LIST "${BOOST_LICENSE}") ================================================ FILE: scripts/boost/post-source-stubs/cmake.cmake ================================================ # Beta builds contains a text in the version string string(REGEX MATCH "([0-9]+)\\.([0-9]+)\\.([0-9]+)" SEMVER_VERSION "${VERSION}") configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in" "${SOURCE_PATH}/CMakeLists.txt" @ONLY) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_install() file(INSTALL "${SOURCE_PATH}/include/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/boost/cmake-build") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") vcpkg_download_distfile(BOOST_LICENSE URLS "https://raw.githubusercontent.com/boostorg/boost/refs/tags/boost-${VERSION}/LICENSE_1_0.txt" FILENAME "boost-${VERSION}-LICENSE_1_0.txt" SHA512 d6078467835dba8932314c1c1e945569a64b065474d7aced27c9a7acc391d52e9f234138ed9f1aa9cd576f25f12f557e0b733c14891d42c16ecdc4a7bd4d60b8 ) vcpkg_install_copyright(FILE_LIST "${BOOST_LICENSE}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") ================================================ FILE: scripts/boost/pre-build-stubs/charconv.cmake ================================================ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND VCPKG_TARGET_IS_MINGW) # when cross compile, cmake generates the error try_run() invoked in cross-compiling mode list(APPEND FEATURE_OPTIONS "-DBOOST_CHARCONV_QUADMATH_FOUND_EXITCODE=0") endif() ================================================ FILE: scripts/boost/pre-build-stubs/iostreams.cmake ================================================ if (BOOST_IOSTREAMS_ENABLE_ZSTD AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") list(APPEND FEATURE_OPTIONS "-DBOOST_IOSTREAMS_ZSTD_TARGET=zstd::libzstd_static") endif() ================================================ FILE: scripts/boost/pre-build-stubs/locale.cmake ================================================ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND VCPKG_TARGET_IS_MINGW) # mingw cross compile toolchain lacks std conv support list(APPEND FEATURE_OPTIONS "-DBOOST_LOCALE_ENABLE_STD=OFF") endif() ================================================ FILE: scripts/boost/pre-source-stubs/build.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(CMAKE_HOST_WIN32 AND VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") return() endif() ================================================ FILE: scripts/boost/pre-source-stubs/cmake.cmake ================================================ set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) ================================================ FILE: scripts/boost/pre-source-stubs/system.cmake ================================================ vcpkg_buildpath_length_warning(37) ================================================ FILE: scripts/bootstrap.ps1 ================================================ [CmdletBinding()] param( $badParam, [Parameter(Mandatory=$False)][switch]$win64 = $false, [Parameter(Mandatory=$False)][string]$withVSPath = "", [Parameter(Mandatory=$False)][string]$withWinSDK = "", [Parameter(Mandatory=$False)][switch]$disableMetrics = $false ) Set-StrictMode -Version Latest # Powershell2-compatible way of forcing named-parameters if ($badParam) { if ($disableMetrics -and $badParam -eq "1") { Write-Warning "'disableMetrics 1' is deprecated, please change to 'disableMetrics' (without '1')." } else { throw "Only named parameters are allowed." } } if ($win64) { Write-Warning "-win64 no longer has any effect; ignored." } if (-Not [string]::IsNullOrWhiteSpace($withVSPath)) { Write-Warning "-withVSPath no longer has any effect; ignored." } if (-Not [string]::IsNullOrWhiteSpace($withWinSDK)) { Write-Warning "-withWinSDK no longer has any effect; ignored." } $scriptsDir = split-path -parent $script:MyInvocation.MyCommand.Definition $vcpkgRootDir = $scriptsDir while (!($vcpkgRootDir -eq "") -and !(Test-Path "$vcpkgRootDir\.vcpkg-root")) { Write-Verbose "Examining $vcpkgRootDir for .vcpkg-root" $vcpkgRootDir = Split-path $vcpkgRootDir -Parent } Write-Verbose "Examining $vcpkgRootDir for .vcpkg-root - Found" # Read the vcpkg-tool config file to determine what release to download $Config = ConvertFrom-StringData (Get-Content "$PSScriptRoot\vcpkg-tool-metadata.txt" -Raw) $versionDate = $Config.VCPKG_TOOL_RELEASE_TAG if ($env:PROCESSOR_ARCHITECTURE -eq 'ARM64' -or $env:PROCESSOR_IDENTIFIER -match "ARMv[8,9] \(64-bit\)") { & "$scriptsDir/tls12-download-arm64.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg-arm64.exe" "$vcpkgRootDir\vcpkg.exe" } else { & "$scriptsDir/tls12-download.exe" github.com "/microsoft/vcpkg-tool/releases/download/$versionDate/vcpkg.exe" "$vcpkgRootDir\vcpkg.exe" } Write-Host "" if ($LASTEXITCODE -ne 0) { Write-Error "Downloading vcpkg.exe failed. Please check your internet connection, or consider downloading a recent vcpkg.exe from https://github.com/microsoft/vcpkg-tool with a browser." throw } & "$vcpkgRootDir\vcpkg.exe" version --disable-metrics if ($disableMetrics) { Set-Content -Value "" -Path "$vcpkgRootDir\vcpkg.disable-metrics" -Force } elseif (-Not (Test-Path "$vcpkgRootDir\vcpkg.disable-metrics")) { # Note that we intentionally leave any existing vcpkg.disable-metrics; once a user has # opted out they should stay opted out. Write-Host @" Telemetry --------- vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running the bootstrap-vcpkg script with -disableMetrics, passing --disable-metrics to vcpkg on the command line, or by setting the VCPKG_DISABLE_METRICS environment variable. Read more about vcpkg telemetry at docs/about/privacy.md "@ } ================================================ FILE: scripts/bootstrap.sh ================================================ #!/bin/sh # Find .vcpkg-root. vcpkgRootDir=$(X= cd -- "$(dirname -- "$0")" && pwd -P) while [ "$vcpkgRootDir" != "/" ] && ! [ -e "$vcpkgRootDir/.vcpkg-root" ]; do vcpkgRootDir="$(dirname "$vcpkgRootDir")" done # Parse arguments. vcpkgDisableMetrics="OFF" vcpkgUseSystem=false vcpkgUseMuslC="OFF" vcpkgSkipDependencyChecks="OFF" for var in "$@" do if [ "$var" = "-disableMetrics" -o "$var" = "--disableMetrics" ]; then vcpkgDisableMetrics="ON" elif [ "$var" = "-useSystemBinaries" -o "$var" = "--useSystemBinaries" ]; then echo "Warning: -useSystemBinaries no longer has any effect; ignored. Note that the VCPKG_USE_SYSTEM_BINARIES environment variable behavior is not changed." elif [ "$var" = "-allowAppleClang" -o "$var" = "--allowAppleClang" ]; then echo "Warning: -allowAppleClang no longer has any effect; ignored." elif [ "$var" = "-buildTests" ]; then echo "Warning: -buildTests no longer has any effect; ignored." elif [ "$var" = "-skipDependencyChecks" ]; then vcpkgSkipDependencyChecks="ON" elif [ "$var" = "-musl" ]; then vcpkgUseMuslC="ON" elif [ "$var" = "-help" -o "$var" = "--help" ]; then echo "Usage: ./bootstrap-vcpkg.sh [options]" echo echo "Options:" echo " -help Display usage help" echo " -disableMetrics Mark this vcpkg root to disable metrics." echo " -skipDependencyChecks Skip checks for vcpkg prerequisites. vcpkg may not run." echo " -musl Use the musl binary rather than the glibc binary on Linux." exit 1 else echo "Unknown argument $var. Use '-help' for help." exit 1 fi done # Enable using this entry point on Windows from an msys2 or cygwin bash env. (e.g., git bash) by redirecting to the .bat file. unixKernelName=$(uname -s | sed -E 's/(CYGWIN|MINGW|MSYS).*_NT.*/\1_NT/') if [ "$unixKernelName" = CYGWIN_NT ] || [ "$unixKernelName" = MINGW_NT ] || [ "$unixKernelName" = MSYS_NT ]; then if [ "$vcpkgDisableMetrics" = "ON" ]; then args="-disableMetrics" else args="" fi vcpkgRootDir=$(cygpath -aw "$vcpkgRootDir") cmd "/C $vcpkgRootDir\\bootstrap-vcpkg.bat $args" || exit 1 exit 0 fi # Determine the downloads directory. if [ -z ${VCPKG_DOWNLOADS+x} ]; then downloadsDir="$vcpkgRootDir/downloads" else downloadsDir="$VCPKG_DOWNLOADS" if [ ! -d "$VCPKG_DOWNLOADS" ]; then echo "VCPKG_DOWNLOADS was set to '$VCPKG_DOWNLOADS', but that was not a directory." exit 1 fi fi # Check for minimal prerequisites. vcpkgCheckRepoTool() { __tool=$1 # Only perform dependency checks when they are not explicitly skipped. if [ "$vcpkgSkipDependencyChecks" = "OFF" ]; then if ! command -v "$__tool" >/dev/null 2>&1 ; then echo "Could not find $__tool. Please install it (and other dependencies) with:" echo "On Debian and Ubuntu derivatives:" echo " sudo apt-get install curl zip unzip tar" echo "On recent Red Hat and Fedora derivatives:" echo " sudo dnf install curl zip unzip tar" echo "On older Red Hat and Fedora derivatives:" echo " sudo yum install curl zip unzip tar" echo "On SUSE Linux and derivatives:" echo " sudo zypper install curl zip unzip tar" echo "On Arch Linux and derivatives:" echo " sudo pacman -Syu base-devel git curl zip unzip tar cmake ninja" echo "On Alpine:" echo " apk add build-base cmake ninja zip unzip curl git" echo " (and export VCPKG_FORCE_SYSTEM_BINARIES=1)" echo "On Solaris and illumos distributions:" echo " pkg install web/curl compress/zip compress/unzip" exit 1 fi fi } vcpkgCheckRepoTool curl vcpkgCheckRepoTool zip vcpkgCheckRepoTool unzip vcpkgCheckRepoTool tar UNAME="$(uname)" ARCH="$(uname -m)" if [ -e /etc/alpine-release ]; then vcpkgUseSystem="ON" vcpkgUseMuslC="ON" fi if [ "$UNAME" = "OpenBSD" ]; then vcpkgUseSystem="ON" fi if [ "$vcpkgUseSystem" = "ON" ]; then vcpkgCheckRepoTool cmake vcpkgCheckRepoTool ninja vcpkgCheckRepoTool git fi vcpkgCheckEqualFileHash() { url=$1; filePath=$2; expectedHash=$3 if command -v "sha512sum" >/dev/null 2>&1 ; then actualHash=$(sha512sum "$filePath") elif command -v "sha512" >/dev/null 2>&1 ; then # OpenBSD actualHash=$(sha512 -q "$filePath") else # [g]sha512sum is not available by default on osx # shasum is not available by default on Fedora actualHash=$(shasum -a 512 "$filePath") fi actualHash="${actualHash%% *}" # shasum returns [hash filename], so get the first word if ! [ "$expectedHash" = "$actualHash" ]; then echo "" echo "File does not have expected hash:" echo " url: [ $url ]" echo " File path: [ $downloadPath ]" echo " Expected hash: [ $sha512 ]" echo " Actual hash: [ $actualHash ]" exit 1 fi } vcpkgDownloadFile() { url=$1; downloadPath=$2 sha512=$3 rm -rf "$downloadPath.part" curl -L $url --tlsv1.2 --create-dirs --retry 3 --output "$downloadPath.part" --silent --show-error --fail || exit 1 vcpkgCheckEqualFileHash $url "$downloadPath.part" $sha512 chmod +x "$downloadPath.part" mv "$downloadPath.part" "$downloadPath" } vcpkgExtractArchive() { archive=$1; toPath=$2 rm -rf "$toPath" "$toPath.partial" case "$archive" in *.tar.gz) mkdir -p "$toPath.partial" $(cd "$toPath.partial" && tar xzf "$archive") ;; *.zip) unzip -qd "$toPath.partial" "$archive" ;; esac mv "$toPath.partial" "$toPath" } # Determine what we are going to do to bootstrap: # MacOS -> Download vcpkg-macos # Linux # useMuslC -> download vcpkg-muslc # amd64 -> download vcpkg-glibc # arm64 -> download vcpkg-glibc-arm64 # Otherwise # Download and build from source # Read the vcpkg-tool config file to determine what release to download . "$vcpkgRootDir/scripts/vcpkg-tool-metadata.txt" vcpkgDownloadTool="ON" if [ "$UNAME" = "Darwin" ]; then echo "Downloading vcpkg-macos..." vcpkgToolReleaseSha=$VCPKG_MACOS_SHA vcpkgToolName="vcpkg-macos" elif [ "$UNAME" = "Linux" ] && [ "$vcpkgUseMuslC" = "ON" ] && [ "$ARCH" = "x86_64" ]; then echo "Downloading vcpkg-muslc..." vcpkgToolReleaseSha=$VCPKG_MUSLC_SHA vcpkgToolName="vcpkg-muslc" elif [ "$UNAME" = "Linux" ] && [ "$ARCH" = "x86_64" ]; then echo "Downloading vcpkg-glibc..." vcpkgToolReleaseSha=$VCPKG_GLIBC_SHA vcpkgToolName="vcpkg-glibc" elif [ "$UNAME" = "Linux" ] && [ "$vcpkgUseMuslC" = "OFF" ] && { [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; }; then echo "Downloading vcpkg-arm64-glibc..." vcpkgToolReleaseSha=$VCPKG_GLIBC_ARM64_SHA vcpkgToolName="vcpkg-glibc-arm64" else echo "Unable to determine a binary release of vcpkg; attempting to build from source." vcpkgDownloadTool="OFF" vcpkgToolReleaseSha=$VCPKG_TOOL_SOURCE_SHA fi # Do the download or build. if [ "$vcpkgDownloadTool" = "ON" ]; then vcpkgDownloadFile "https://github.com/microsoft/vcpkg-tool/releases/download/$VCPKG_TOOL_RELEASE_TAG/$vcpkgToolName" "$vcpkgRootDir/vcpkg" $vcpkgToolReleaseSha else vcpkgToolReleaseArchive="$VCPKG_TOOL_RELEASE_TAG.zip" vcpkgToolUrl="https://github.com/microsoft/vcpkg-tool/archive/$vcpkgToolReleaseArchive" baseBuildDir="$vcpkgRootDir/buildtrees/_vcpkg" buildDir="$baseBuildDir/build" archivePath="$downloadsDir/$vcpkgToolReleaseArchive" srcBaseDir="$baseBuildDir/src" srcDir="$srcBaseDir/vcpkg-tool-$VCPKG_TOOL_RELEASE_TAG" if [ -e "$archivePath" ]; then vcpkgCheckEqualFileHash "$vcpkgToolUrl" "$archivePath" "$vcpkgToolReleaseSha" else echo "Downloading vcpkg tool sources" vcpkgDownloadFile "$vcpkgToolUrl" "$archivePath" "$vcpkgToolReleaseSha" fi echo "Building vcpkg-tool..." rm -rf "$baseBuildDir" mkdir -p "$buildDir" vcpkgExtractArchive "$archivePath" "$srcBaseDir" cmakeConfigOptions="-DCMAKE_BUILD_TYPE=Release -G 'Ninja' -DVCPKG_DEVELOPMENT_WARNINGS=OFF" if [ "${VCPKG_MAX_CONCURRENCY}" != "" ] ; then cmakeConfigOptions=" $cmakeConfigOptions '-DCMAKE_JOB_POOL_COMPILE:STRING=compile' '-DCMAKE_JOB_POOL_LINK:STRING=link' '-DCMAKE_JOB_POOLS:STRING=compile=$VCPKG_MAX_CONCURRENCY;link=$VCPKG_MAX_CONCURRENCY' " fi (cd "$buildDir" && eval cmake "$srcDir" $cmakeConfigOptions) || exit 1 (cd "$buildDir" && cmake --build .) || exit 1 rm -rf "$vcpkgRootDir/vcpkg" cp "$buildDir/vcpkg" "$vcpkgRootDir/" fi "$vcpkgRootDir/vcpkg" version --disable-metrics # Apply the disable-metrics marker file. if [ "$vcpkgDisableMetrics" = "ON" ]; then touch "$vcpkgRootDir/vcpkg.disable-metrics" elif ! [ -f "$vcpkgRootDir/vcpkg.disable-metrics" ]; then # Note that we intentionally leave any existing vcpkg.disable-metrics; once a user has # opted out they should stay opted out. cat < ================================================ FILE: scripts/buildsystems/msbuild/vcpkg.props ================================================ true true $(Configuration) Debug Release false $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\..\..')) true false true false true false true $([MSbuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), vcpkg.json)) ================================================ FILE: scripts/buildsystems/msbuild/vcpkg.targets ================================================ <_ZVcpkgRoot>$(VcpkgRoot) <_ZVcpkgManifestRoot>$(VcpkgManifestRoot) <_ZVcpkgInstalledDir>$(VcpkgInstalledDir) <_ZVcpkgRoot Condition="!$(_ZVcpkgRoot.EndsWith('\'))">$(_ZVcpkgRoot)\ <_ZVcpkgManifestRoot Condition="'$(_ZVcpkgManifestRoot)' != '' and !$(_ZVcpkgManifestRoot.EndsWith('\'))">$(_ZVcpkgManifestRoot)\ <_ZVcpkgInstalledDir Condition="'$(_ZVcpkgInstalledDir)' != '' and !$(_ZVcpkgInstalledDir.EndsWith('\'))">$(_ZVcpkgInstalledDir)\ <_ZVcpkgClassicOrManifest Condition="'$(VcpkgEnabled)' == 'true' And ('$(VcpkgEnableClassic)' == 'true' Or '$(VcpkgEnableManifest)' == 'true')">true <_ZVcpkgClassicOrManifest Condition="'$(_ZVcpkgClassicOrManifest)' == ''">false windows x64 true xbox-scarlett x64 false xbox-xboxone x64 false windows uwp $(Platform.ToLower()) x86 <_ZVcpkgLinkage /> <_ZVcpkgLinkage Condition="'$(VcpkgUseStatic)' == 'true'">-static <_ZVcpkgLinkageMD /> <_ZVcpkgLinkageMD Condition="'$(VcpkgUseStatic)' == 'true' and '$(VcpkgUseMD)' == 'true'">-md $(VcpkgPlatformTarget)-$(VcpkgOSTarget)$(_ZVcpkgLinkage)$(_ZVcpkgLinkageMD) $(VcpkgTriplet)$(_ZVcpkgLinkage)$(_ZVcpkgLinkageMD) VcpkgTriplet=$(VcpkgTriplet):$(ProjectStateLine) <_ZVcpkgInstalledDir Condition="'$(_ZVcpkgInstalledDir)' == ''">$(_ZVcpkgManifestRoot)vcpkg_installed\$(VcpkgTriplet)\ <_ZVcpkgInstalledDir Condition="'$(_ZVcpkgInstalledDir)' == ''">$(_ZVcpkgRoot)installed\ <_ZVcpkgCurrentInstalledDir>$(_ZVcpkgInstalledDir)$(VcpkgTriplet)\ <_ZVcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Debug'))">Debug <_ZVcpkgNormalizedConfiguration Condition="$(VcpkgConfiguration.StartsWith('Release')) or '$(VcpkgConfiguration)' == 'RelWithDebInfo' or '$(VcpkgConfiguration)' == 'MinSizeRel'">Release <_ZVcpkgConfigSubdir Condition="'$(_ZVcpkgNormalizedConfiguration)' == 'Debug'">debug\ <_ZVcpkgExecutable>$(_ZVcpkgRoot)vcpkg.exe $(ExternalIncludePath);$(_ZVcpkgCurrentInstalledDir)include $(_ZVcpkgRoot)scripts\buildsystems\msbuild\vcpkg-general.xml Project %(AdditionalLibraryDirectories);$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)lib;$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)lib\manual-link %(AdditionalDependencies);$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)lib\*.lib %(AdditionalLibraryDirectories);$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)lib;$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)lib\manual-link %(AdditionalIncludeDirectories);$(_ZVcpkgCurrentInstalledDir)include %(AdditionalIncludeDirectories);$(_ZVcpkgCurrentInstalledDir)include <_ZVcpkgHostTripletParameter>"--host-triplet=$(VcpkgHostTriplet)" <_ZVcpkgHostTripletSuffix>$(VcpkgHostTriplet). <_ZVcpkgHostTripletParameter /> <_ZVcpkgHostTripletSuffix /> <_ZVcpkgManifestFileLocation>$(_ZVcpkgManifestRoot)vcpkg.json <_ZVcpkgConfigurationFileLocation>$(_ZVcpkgManifestRoot)vcpkg-configuration.json <_ZVcpkgMSBuildStampFile>$(_ZVcpkgInstalledDir).msbuildstamp-$(VcpkgTriplet).$(_ZVcpkgHostTripletSuffix)stamp <_ZVcpkgInstallManifestDependenciesInputs Include="$(_ZVcpkgManifestFileLocation)"/> <_ZVcpkgInstallManifestDependenciesInputs Include="$(_ZVcpkgConfigurationFileLocation)" Condition="Exists('$(_ZVcpkgConfigurationFileLocation)')"/> <_ZVcpkgTLogFileLocation>$(TLogLocation)VcpkgInstallManifest$(VcpkgTriplet).$(_ZVcpkgHostTripletSuffix)read.1u.tlog <_ZVcpkgApplocalInstalledBinDir>$(_ZVcpkgCurrentInstalledDir)$(_ZVcpkgConfigSubdir)bin <_ZVcpkgApplocalTLogPath>$(TLogLocation)$(ProjectName).write.1u.tlog <_ZVcpkgApplocalCopiedFilesLogPath>$(IntDir)vcpkg.applocal.log <_ZVcpkgApplocalBuiltinArguments>--target-binary="$(TargetPath)" --installed-bin-dir="$(_ZVcpkgApplocalInstalledBinDir)" --tlog-file="$(_ZVcpkgApplocalTLogPath)" --copied-files-log="$(_ZVcpkgApplocalCopiedFilesLogPath)" <_ZVcpkgAppLocalPowerShellCommonArguments>-ExecutionPolicy Bypass -noprofile -File "$(MSBuildThisFileDirectory)applocal.ps1" "$(TargetPath)" "$(_ZVcpkgApplocalInstalledBinDir)" "$(_ZVcpkgApplocalTLogPath)" "$(_ZVcpkgApplocalCopiedFilesLogPath)" ================================================ FILE: scripts/buildsystems/osx/applocal.py ================================================ #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ finish the job started by macdeployqtfix from: https://github.com/arl/macdeployqtfix The MIT License (MIT) Copyright (c) 2015 Aurelien Rainone Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ from subprocess import Popen, PIPE from string import Template import os import sys import logging import argparse import re from collections import namedtuple QTLIB_NAME_REGEX = r'^(?:@executable_path)?/.*/(Qt[a-zA-Z]*).framework/(?:Versions/\d/)?\1$' QTLIB_NORMALIZED = r'$prefix/Frameworks/$qtlib.framework/Versions/$qtversion/$qtlib' QTPLUGIN_NAME_REGEX = r'^(?:@executable_path)?/.*/[pP]lug[iI]ns/(.*)/(.*).dylib$' QTPLUGIN_NORMALIZED = r'$prefix/PlugIns/$plugintype/$pluginname.dylib' LOADERPATH_REGEX = r'^@[a-z_]+path/(.*)' LOADERPATH_NORMALIZED = r'$prefix/Frameworks/$loaderpathlib' class GlobalConfig(object): logger = None qtpath = None exepath = None def run_and_get_output(popen_args): """Run process and get all output""" process_output = namedtuple('ProcessOutput', ['stdout', 'stderr', 'retcode']) try: GlobalConfig.logger.debug('run_and_get_output({0})'.format(repr(popen_args))) proc = Popen(popen_args, stdin=PIPE, stdout=PIPE, stderr=PIPE) stdout, stderr = proc.communicate(b'') proc_out = process_output(stdout, stderr, proc.returncode) GlobalConfig.logger.debug('\tprocess_output: {0}'.format(proc_out)) return proc_out except Exception as exc: GlobalConfig.logger.error('\texception: {0}'.format(exc)) return process_output('', exc.message, -1) def get_dependencies(filename): """ input: filename must be an absolute path Should call `otool` and returns the list of dependencies, unsorted, unmodified, just the raw list so then we could eventually re-use in other more specialized functions """ GlobalConfig.logger.debug('get_dependencies({0})'.format(filename)) popen_args = ['otool', '-L', filename] proc_out = run_and_get_output(popen_args) deps = [] if proc_out.retcode == 0: # some string splitting deps = [s.strip().split(b' ')[0].decode('utf-8') for s in proc_out.stdout.splitlines()[1:] if s] # prevent infinite recursion when a binary depends on itself (seen with QtWidgets)... deps = [s for s in deps if os.path.basename(filename) not in s] return deps def is_qt_plugin(filename): """ Checks if a given file is a qt plugin. Accepts absolute path as well as path containing @executable_path """ qtlib_name_rgx = re.compile(QTPLUGIN_NAME_REGEX) return qtlib_name_rgx.match(filename) is not None def is_qt_lib(filename): """ Checks if a given file is a qt library. Accepts absolute path as well as path containing @executable_path """ qtlib_name_rgx = re.compile(QTLIB_NAME_REGEX) return qtlib_name_rgx.match(filename) is not None def is_loader_path_lib(filename): """ Checks if a given file is loaded via @loader_path or @rpath """ qtlib_name_rgx = re.compile(LOADERPATH_REGEX) return qtlib_name_rgx.match(filename) is not None def normalize_qtplugin_name(filename): """ input: a path to a qt plugin, as returned by otool, that can have this form : - an absolute path /../plugins/PLUGINTYPE/PLUGINNAME.dylib - @executable_path/../plugins/PLUGINTYPE/PLUGINNAME.dylib output: a tuple (qtlib, abspath, rpath) where: - qtname is the name of the plugin (libqcocoa.dylib, etc.) - abspath is the absolute path of the qt lib inside the app bundle of exepath - relpath is the correct rpath to a qt lib inside the app bundle """ GlobalConfig.logger.debug('normalize_plugin_name({0})'.format(filename)) qtplugin_name_rgx = re.compile(QTPLUGIN_NAME_REGEX) rgxret = qtplugin_name_rgx.match(filename) if not rgxret: msg = 'couldn\'t normalize a non-qt plugin filename: {0}'.format(filename) GlobalConfig.logger.critical(msg) raise Exception(msg) # qtplugin normalization settings qtplugintype = rgxret.groups()[0] qtpluginname = rgxret.groups()[1] templ = Template(QTPLUGIN_NORMALIZED) # from qtlib, forge 2 path : # - absolute path of qt lib in bundle, abspath = os.path.normpath(templ.safe_substitute( prefix=os.path.dirname(GlobalConfig.exepath) + '/..', plugintype=qtplugintype, pluginname=qtpluginname)) # - and rpath containing @executable_path, relative to exepath rpath = templ.safe_substitute( prefix='@executable_path/..', plugintype=qtplugintype, pluginname=qtpluginname) GlobalConfig.logger.debug('\treturns({0})'.format((qtpluginname, abspath, rpath))) return qtpluginname, abspath, rpath def normalize_qtlib_name(filename): """ input: a path to a qt library, as returned by otool, that can have this form : - an absolute path /lib/xxx/yyy - @executable_path/../Frameworks/QtSerialPort.framework/Versions/5/QtSerialPort output: a tuple (qtlib, abspath, rpath) where: - qtlib is the name of the qtlib (QtCore, QtWidgets, etc.) - abspath is the absolute path of the qt lib inside the app bundle of exepath - relpath is the correct rpath to a qt lib inside the app bundle """ GlobalConfig.logger.debug('normalize_qtlib_name({0})'.format(filename)) qtlib_name_rgx = re.compile(QTLIB_NAME_REGEX) rgxret = qtlib_name_rgx.match(filename) if not rgxret: msg = 'couldn\'t normalize a non-qt lib filename: {0}'.format(filename) GlobalConfig.logger.critical(msg) raise Exception(msg) # qtlib normalization settings qtlib = rgxret.groups()[0] qtversion = 5 templ = Template(QTLIB_NORMALIZED) # from qtlib, forge 2 path : # - absolute path of qt lib in bundle, abspath = os.path.normpath(templ.safe_substitute( prefix=os.path.dirname(GlobalConfig.exepath) + '/..', qtlib=qtlib, qtversion=qtversion)) # - and rpath containing @executable_path, relative to exepath rpath = templ.safe_substitute( prefix='@executable_path/..', qtlib=qtlib, qtversion=qtversion) GlobalConfig.logger.debug('\treturns({0})'.format((qtlib, abspath, rpath))) return qtlib, abspath, rpath def normalize_loaderpath_name(filename): """ input: a path to a loaderpath library, as returned by otool, that can have this form : - an relative path @loaderpath/yyy output: a tuple (loaderpathlib, abspath, rpath) where: - loaderpathlib is the name of the loaderpath lib - abspath is the absolute path of the qt lib inside the app bundle of exepath - relpath is the correct rpath to a qt lib inside the app bundle """ GlobalConfig.logger.debug('normalize_loaderpath_name({0})'.format(filename)) loaderpath_name_rgx = re.compile(LOADERPATH_REGEX) rgxret = loaderpath_name_rgx.match(filename) if not rgxret: msg = 'couldn\'t normalize a loaderpath lib filename: {0}'.format(filename) GlobalConfig.logger.critical(msg) raise Exception(msg) # loaderpath normalization settings loaderpathlib = rgxret.groups()[0] templ = Template(LOADERPATH_NORMALIZED) # from loaderpath, forge 2 path : # - absolute path of qt lib in bundle, abspath = os.path.normpath(templ.safe_substitute( prefix=os.path.dirname(GlobalConfig.exepath) + '/..', loaderpathlib=loaderpathlib)) # - and rpath containing @executable_path, relative to exepath rpath = templ.safe_substitute( prefix='@executable_path/..', loaderpathlib=loaderpathlib) GlobalConfig.logger.debug('\treturns({0})'.format((loaderpathlib, abspath, rpath))) return loaderpathlib, abspath, rpath def fix_dependency(binary, dep): """ fix 'dep' dependency of 'binary'. 'dep' is a qt library """ if is_qt_lib(dep): qtname, dep_abspath, dep_rpath = normalize_qtlib_name(dep) qtnamesrc = os.path.join(GlobalConfig.qtpath, 'lib', '{0}.framework'. format(qtname), qtname) elif is_qt_plugin(dep): qtname, dep_abspath, dep_rpath = normalize_qtplugin_name(dep) qtnamesrc = os.path.join(GlobalConfig.qtpath, 'lib', '{0}.framework'. format(qtname), qtname) elif is_loader_path_lib(dep): qtname, dep_abspath, dep_rpath = normalize_loaderpath_name(dep) qtnamesrc = os.path.join(GlobalConfig.qtpath + '/lib', qtname) else: return True # if the source path doesn't exist it's probably not a dependency # originating with vcpkg and we should leave it alone if not os.path.exists(qtnamesrc): return True dep_ok = True # check that rpath of 'dep' inside binary has been correctly set # (ie: relative to exepath using '@executable_path' syntax) if dep != dep_rpath: # dep rpath is not ok GlobalConfig.logger.info('changing rpath \'{0}\' in binary {1}'.format(dep, binary)) # call install_name_tool -change on binary popen_args = ['install_name_tool', '-change', dep, dep_rpath, binary] proc_out = run_and_get_output(popen_args) if proc_out.retcode != 0: GlobalConfig.logger.error(proc_out.stderr) dep_ok = False else: # call install_name_tool -id on binary popen_args = ['install_name_tool', '-id', dep_rpath, binary] proc_out = run_and_get_output(popen_args) if proc_out.retcode != 0: GlobalConfig.logger.error(proc_out.stderr) dep_ok = False # now ensure that 'dep' exists at the specified path, relative to bundle if dep_ok and not os.path.exists(dep_abspath): # ensure destination directory exists GlobalConfig.logger.info('ensuring directory \'{0}\' exists: {0}'. format(os.path.dirname(dep_abspath))) popen_args = ['mkdir', '-p', os.path.dirname(dep_abspath)] proc_out = run_and_get_output(popen_args) if proc_out.retcode != 0: GlobalConfig.logger.info(proc_out.stderr) dep_ok = False else: # copy missing dependency into bundle GlobalConfig.logger.info('copying missing dependency in bundle: {0}'. format(qtname)) popen_args = ['cp', qtnamesrc, dep_abspath] proc_out = run_and_get_output(popen_args) if proc_out.retcode != 0: GlobalConfig.logger.info(proc_out.stderr) dep_ok = False else: # ensure permissions are correct if we ever have to change its rpath GlobalConfig.logger.info('ensuring 755 perm to {0}'.format(dep_abspath)) popen_args = ['chmod', '755', dep_abspath] proc_out = run_and_get_output(popen_args) if proc_out.retcode != 0: GlobalConfig.logger.info(proc_out.stderr) dep_ok = False else: GlobalConfig.logger.debug('{0} is at correct location in bundle'.format(qtname)) if dep_ok: return fix_binary(dep_abspath) return False def fix_binary(binary): """ input: binary: relative or absolute path (no @executable_path syntax) process: - first fix the rpath for the qt libs on which 'binary' depend - copy into the bundle of exepath the eventual libraries that are missing - (create the soft links) needed ? - do the same for all qt dependencies of binary (recursive) """ GlobalConfig.logger.debug('fix_binary({0})'.format(binary)) # loop on 'binary' dependencies for dep in get_dependencies(binary): if not fix_dependency(binary, dep): GlobalConfig.logger.error('quitting early: couldn\'t fix dependency {0} of {1}'.format(dep, binary)) return False return True def fix_main_binaries(): """ list the main binaries of the app bundle and fix them """ # deduce bundle path bundlepath = os.path.sep.join(GlobalConfig.exepath.split(os.path.sep)[0:-3]) # fix main binary GlobalConfig.logger.info('fixing executable \'{0}\''.format(GlobalConfig.exepath)) if fix_binary(GlobalConfig.exepath): GlobalConfig.logger.info('fixing plugins') for root, dummy, files in os.walk(bundlepath): for name in [f for f in files if os.path.splitext(f)[1] == '.dylib']: GlobalConfig.logger.info('fixing plugin {0}'.format(name)) if not fix_binary(os.path.join(root, name)): return False return True def main(): descr = """finish the job started by macdeployqt! - find dependencies/rpaths with otool - copy missed dependencies with cp and mkdir - fix missed rpaths with install_name_tool exit codes: - 0 : success - 1 : error """ parser = argparse.ArgumentParser(description=descr, formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('exepath', help='path to the binary depending on Qt') parser.add_argument('qtpath', help='path of Qt libraries used to build the Qt application') parser.add_argument('-q', '--quiet', action='store_true', default=False, help='do not create log on standard output') parser.add_argument('-nl', '--no-log-file', action='store_true', default=False, help='do not create log file \'./macdeployqtfix.log\'') parser.add_argument('-v', '--verbose', action='store_true', default=False, help='produce more log messages(debug log)') args = parser.parse_args() # globals GlobalConfig.qtpath = os.path.normpath(args.qtpath) GlobalConfig.exepath = args.exepath GlobalConfig.logger = logging.getLogger() # configure logging ################### # create formatter formatter = logging.Formatter('%(levelname)s | %(message)s') # create console GlobalConfig.logger if not args.quiet: chdlr = logging.StreamHandler(sys.stdout) chdlr.setFormatter(formatter) GlobalConfig.logger.addHandler(chdlr) # create file GlobalConfig.logger if not args.no_log_file: fhdlr = logging.FileHandler('./macdeployqtfix.log', mode='w') fhdlr.setFormatter(formatter) GlobalConfig.logger.addHandler(fhdlr) if args.no_log_file and args.quiet: GlobalConfig.logger.addHandler(logging.NullHandler()) else: GlobalConfig.logger.setLevel(logging.DEBUG if args.verbose else logging.INFO) if fix_main_binaries(): GlobalConfig.logger.info('macdeployqtfix terminated with success') ret = 0 else: GlobalConfig.logger.error('macdeployqtfix terminated with error') ret = 1 sys.exit(ret) if __name__ == "__main__": main() ================================================ FILE: scripts/buildsystems/vcpkg.cmake ================================================ # Mark variables as used so cmake doesn't complain about them mark_as_advanced(CMAKE_TOOLCHAIN_FILE) # NOTE: to figure out what cmake versions are required for different things, # grep for `CMake 3`. All version requirement comments should follow that format. # Attention: Changes to this file do not affect ABI hashing. #[===[.md: # z_vcpkg_add_fatal_error Add a fatal error. ```cmake z_vcpkg_add_fatal_error(...) ``` We use this system, instead of `message(FATAL_ERROR)`, since cmake prints a lot of nonsense if the toolchain errors out before it's found the build tools. This `Z_VCPKG_HAS_FATAL_ERROR` must be checked before any filesystem operations are done, since otherwise you might be doing something with bad variables set up. #]===] # this is defined above everything else so that it can be used. set(Z_VCPKG_FATAL_ERROR) set(Z_VCPKG_HAS_FATAL_ERROR OFF) function(z_vcpkg_add_fatal_error ERROR) if(NOT Z_VCPKG_HAS_FATAL_ERROR) set(Z_VCPKG_HAS_FATAL_ERROR ON PARENT_SCOPE) set(Z_VCPKG_FATAL_ERROR "${ERROR}" PARENT_SCOPE) else() string(APPEND Z_VCPKG_FATAL_ERROR "\n${ERROR}") endif() endfunction() set(Z_VCPKG_CMAKE_REQUIRED_MINIMUM_VERSION "3.7.2") if(CMAKE_VERSION VERSION_LESS Z_VCPKG_CMAKE_REQUIRED_MINIMUM_VERSION) message(FATAL_ERROR "vcpkg.cmake requires at least CMake ${Z_VCPKG_CMAKE_REQUIRED_MINIMUM_VERSION}.") endif() cmake_policy(PUSH) cmake_policy(VERSION 3.16) include(CMakeDependentOption) # VCPKG toolchain options. option(VCPKG_VERBOSE "Enables messages from the VCPKG toolchain for debugging purposes." OFF) mark_as_advanced(VCPKG_VERBOSE) option(VCPKG_APPLOCAL_DEPS "Automatically copy dependencies into the output directory for executables." ON) option(X_VCPKG_APPLOCAL_DEPS_SERIALIZED "(experimental) Add USES_TERMINAL to VCPKG_APPLOCAL_DEPS to force serialization." OFF) # requires CMake 3.14 option(X_VCPKG_APPLOCAL_DEPS_INSTALL "(experimental) Automatically copy dependencies into the install target directory for executables. Requires CMake 3.14." OFF) option(VCPKG_PREFER_SYSTEM_LIBS "Appends the vcpkg paths to CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH and CMAKE_FIND_ROOT_PATH so that vcpkg libraries/packages are found after toolchain/system libraries/packages." OFF) if(VCPKG_PREFER_SYSTEM_LIBS) message(WARNING "VCPKG_PREFER_SYSTEM_LIBS has been deprecated. Use empty overlay ports instead.") endif() # Manifest options and settings set(Z_VCPKG_MANIFEST_DIR_INITIAL_VALUE "${VCPKG_MANIFEST_DIR}") if(NOT DEFINED VCPKG_MANIFEST_DIR) if(EXISTS "${CMAKE_SOURCE_DIR}/vcpkg.json") set(Z_VCPKG_MANIFEST_DIR_INITIAL_VALUE "${CMAKE_SOURCE_DIR}") endif() endif() set(VCPKG_MANIFEST_DIR "${Z_VCPKG_MANIFEST_DIR_INITIAL_VALUE}" CACHE PATH "The path to the vcpkg manifest directory." FORCE) if(DEFINED VCPKG_MANIFEST_DIR AND NOT VCPKG_MANIFEST_DIR STREQUAL "") set(Z_VCPKG_HAS_MANIFEST_DIR ON) else() set(Z_VCPKG_HAS_MANIFEST_DIR OFF) endif() option(VCPKG_MANIFEST_MODE "Use manifest mode, as opposed to classic mode." "${Z_VCPKG_HAS_MANIFEST_DIR}") if(VCPKG_MANIFEST_MODE AND NOT Z_VCPKG_HAS_MANIFEST_DIR) z_vcpkg_add_fatal_error( "vcpkg manifest mode was enabled, but we couldn't find a manifest file (vcpkg.json) in the current source directory (${CMAKE_CURRENT_SOURCE_DIR}). Please add a manifest, or disable manifests by turning off VCPKG_MANIFEST_MODE." ) endif() if(NOT DEFINED CACHE{Z_VCPKG_CHECK_MANIFEST_MODE}) set(Z_VCPKG_CHECK_MANIFEST_MODE "${VCPKG_MANIFEST_MODE}" CACHE INTERNAL "Making sure VCPKG_MANIFEST_MODE doesn't change") endif() if(NOT VCPKG_MANIFEST_MODE AND Z_VCPKG_CHECK_MANIFEST_MODE) z_vcpkg_add_fatal_error([[ vcpkg manifest mode was disabled for a build directory where it was initially enabled. This is not supported. Please delete the build directory and reconfigure. ]]) elseif(VCPKG_MANIFEST_MODE AND NOT Z_VCPKG_CHECK_MANIFEST_MODE) z_vcpkg_add_fatal_error([[ vcpkg manifest mode was enabled for a build directory where it was initially disabled. This is not supported. Please delete the build directory and reconfigure. ]]) endif() CMAKE_DEPENDENT_OPTION(VCPKG_MANIFEST_INSTALL [[ Install the dependencies listed in your manifest: If this is off, you will have to manually install your dependencies. See https://github.com/microsoft/vcpkg/tree/master/docs/specifications/manifests.md for more info. ]] ON "VCPKG_MANIFEST_MODE" OFF) if(VCPKG_MANIFEST_INSTALL) set(VCPKG_BOOTSTRAP_OPTIONS "${VCPKG_BOOTSTRAP_OPTIONS}" CACHE STRING "Additional options to bootstrap vcpkg" FORCE) set(VCPKG_OVERLAY_PORTS "${VCPKG_OVERLAY_PORTS}" CACHE STRING "Overlay ports to use for vcpkg install in manifest mode" FORCE) set(VCPKG_OVERLAY_TRIPLETS "${VCPKG_OVERLAY_TRIPLETS}" CACHE STRING "Overlay triplets to use for vcpkg install in manifest mode" FORCE) set(VCPKG_INSTALL_OPTIONS "${VCPKG_INSTALL_OPTIONS}" CACHE STRING "Additional install options to pass to vcpkg" FORCE) set(Z_VCPKG_UNUSED VCPKG_BOOTSTRAP_OPTIONS) set(Z_VCPKG_UNUSED VCPKG_OVERLAY_PORTS) set(Z_VCPKG_UNUSED VCPKG_OVERLAY_TRIPLETS) set(Z_VCPKG_UNUSED VCPKG_INSTALL_OPTIONS) endif() # CMake helper utilities #[===[.md: # z_vcpkg_function_arguments Get a list of the arguments which were passed in. Unlike `ARGV`, which is simply the arguments joined with `;`, so that `(A B)` is not distinguishable from `("A;B")`, this macro gives `"A;B"` for the first argument list, and `"A\;B"` for the second. ```cmake z_vcpkg_function_arguments( []) ``` `z_vcpkg_function_arguments` gets the arguments between `ARGV` and the last argument. `` defaults to `0`, so that all arguments are taken. ## Example: ```cmake function(foo_replacement) z_vcpkg_function_arguments(ARGS) foo(${ARGS}) ... endfunction() ``` #]===] # NOTE: this function definition is copied directly from scripts/cmake/z_vcpkg_function_arguments.cmake # do not make changes here without making the same change there. macro(z_vcpkg_function_arguments OUT_VAR) if("${ARGC}" EQUAL "1") set(z_vcpkg_function_arguments_FIRST_ARG "0") elseif("${ARGC}" EQUAL "2") set(z_vcpkg_function_arguments_FIRST_ARG "${ARGV1}") else() # vcpkg bug message(FATAL_ERROR "z_vcpkg_function_arguments: invalid arguments (${ARGV})") endif() set("${OUT_VAR}" "") # this allows us to get the value of the enclosing function's ARGC set(z_vcpkg_function_arguments_ARGC_NAME "ARGC") set(z_vcpkg_function_arguments_ARGC "${${z_vcpkg_function_arguments_ARGC_NAME}}") math(EXPR z_vcpkg_function_arguments_LAST_ARG "${z_vcpkg_function_arguments_ARGC} - 1") if(z_vcpkg_function_arguments_LAST_ARG GREATER_EQUAL z_vcpkg_function_arguments_FIRST_ARG) foreach(z_vcpkg_function_arguments_N RANGE "${z_vcpkg_function_arguments_FIRST_ARG}" "${z_vcpkg_function_arguments_LAST_ARG}") string(REPLACE ";" "\\;" z_vcpkg_function_arguments_ESCAPED_ARG "${ARGV${z_vcpkg_function_arguments_N}}") # adds an extra `;` on the first time through set("${OUT_VAR}" "${${OUT_VAR}};${z_vcpkg_function_arguments_ESCAPED_ARG}") endforeach() # remove leading `;` string(SUBSTRING "${${OUT_VAR}}" "1" "-1" "${OUT_VAR}") endif() endmacro() #[===[.md: # z_vcpkg_set_powershell_path Gets either the path to powershell or powershell core, and places it in the variable Z_VCPKG_POWERSHELL_PATH. #]===] function(z_vcpkg_set_powershell_path) # Attempt to use pwsh if it is present; otherwise use powershell if(NOT DEFINED Z_VCPKG_POWERSHELL_PATH) find_program(Z_VCPKG_PWSH_PATH pwsh) if(Z_VCPKG_PWSH_PATH) set(Z_VCPKG_POWERSHELL_PATH "${Z_VCPKG_PWSH_PATH}" CACHE INTERNAL "The path to the PowerShell implementation to use.") else() message(DEBUG "vcpkg: Could not find PowerShell Core; falling back to PowerShell") find_program(Z_VCPKG_BUILTIN_POWERSHELL_PATH powershell) if(Z_VCPKG_BUILTIN_POWERSHELL_PATH) set(Z_VCPKG_POWERSHELL_PATH "${Z_VCPKG_BUILTIN_POWERSHELL_PATH}" CACHE INTERNAL "The path to the PowerShell implementation to use.") else() message(WARNING "vcpkg: Could not find PowerShell; using static string 'powershell.exe'") set(Z_VCPKG_POWERSHELL_PATH "powershell.exe" CACHE INTERNAL "The path to the PowerShell implementation to use.") endif() endif() endif() # Z_VCPKG_POWERSHELL_PATH endfunction() # Determine whether the toolchain is loaded during a try-compile configuration get_property(Z_VCPKG_CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE) if(VCPKG_CHAINLOAD_TOOLCHAIN_FILE) include("${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}") endif() if(VCPKG_TOOLCHAIN) cmake_policy(POP) return() endif() #If CMake does not have a mapping for MinSizeRel and RelWithDebInfo in imported targets #it will map those configuration to the first valid configuration in CMAKE_CONFIGURATION_TYPES or the targets IMPORTED_CONFIGURATIONS. #In most cases this is the debug configuration which is wrong. if(NOT DEFINED CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL) set(CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL "MinSizeRel;Release;None;") if(VCPKG_VERBOSE) message(STATUS "VCPKG-Info: CMAKE_MAP_IMPORTED_CONFIG_MINSIZEREL set to MinSizeRel;Release;None;") endif() endif() if(NOT DEFINED CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO) set(CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO "RelWithDebInfo;Release;None;") if(VCPKG_VERBOSE) message(STATUS "VCPKG-Info: CMAKE_MAP_IMPORTED_CONFIG_RELWITHDEBINFO set to RelWithDebInfo;Release;None;") endif() endif() if(VCPKG_TARGET_TRIPLET) # This is required since a user might do: 'set(VCPKG_TARGET_TRIPLET somevalue)' [no CACHE] before the first project() call # Latter within the toolchain file we do: 'set(VCPKG_TARGET_TRIPLET somevalue CACHE STRING "")' which # will otherwise override the user setting of VCPKG_TARGET_TRIPLET in the current scope of the toolchain since the CACHE value # did not exist previously. Since the value is newly created CMake will use the CACHE value within this scope since it is the more # recently created value in directory scope. This 'strange' behaviour only happens on the very first configure call since subsequent # configure call will see the user value as the more recent value. The same logic must be applied to all cache values within this file! # The FORCE keyword is required to ALWAYS lift the user provided/previously set value into a CACHE value. set(VCPKG_TARGET_TRIPLET "${VCPKG_TARGET_TRIPLET}" CACHE STRING "Vcpkg target triplet (ex. x86-windows)" FORCE) elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Ww][Ii][Nn]32$") set(Z_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Xx]64$") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]$") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(CMAKE_GENERATOR_PLATFORM MATCHES "^[Aa][Rr][Mm]64$") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) else() if(CMAKE_GENERATOR STREQUAL "Visual Studio 14 2015 Win64") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 14 2015 ARM") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 14 2015") set(Z_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 15 2017 Win64") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 15 2017 ARM") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 15 2017") set(Z_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 16 2019" AND CMAKE_VS_PLATFORM_NAME_DEFAULT STREQUAL "ARM64") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 16 2019") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 17 2022" AND CMAKE_VS_PLATFORM_NAME_DEFAULT STREQUAL "ARM64") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 17 2022") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 18 2026" AND CMAKE_VS_PLATFORM_NAME_DEFAULT STREQUAL "ARM64") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(CMAKE_GENERATOR STREQUAL "Visual Studio 18 2026") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" AND DEFINED CMAKE_OSX_ARCHITECTURES) list(LENGTH CMAKE_OSX_ARCHITECTURES Z_VCPKG_OSX_ARCH_COUNT) if(Z_VCPKG_OSX_ARCH_COUNT EQUAL "0") message(WARNING "Unable to determine target architecture. " "Consider providing a value for the CMAKE_OSX_ARCHITECTURES cache variable. " "Continuing without vcpkg.") set(VCPKG_TOOLCHAIN ON) cmake_policy(POP) return() endif() if(Z_VCPKG_OSX_ARCH_COUNT GREATER "1") message(WARNING "Detected more than one target architecture. Using the first one.") endif() list(GET CMAKE_OSX_ARCHITECTURES "0" Z_VCPKG_OSX_TARGET_ARCH) if(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "arm64") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "arm64s") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64s) elseif(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "armv7s") set(Z_VCPKG_TARGET_TRIPLET_ARCH armv7s) elseif(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "armv7") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "x86_64") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(Z_VCPKG_OSX_TARGET_ARCH STREQUAL "i386") set(Z_VCPKG_TARGET_TRIPLET_ARCH x86) else() message(WARNING "Unable to determine target architecture, continuing without vcpkg.") set(VCPKG_TOOLCHAIN ON) cmake_policy(POP) return() endif() else() find_program(Z_VCPKG_CL cl) if(Z_VCPKG_CL MATCHES "amd64/cl.exe$" OR Z_VCPKG_CL MATCHES "x64/cl.exe$") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(Z_VCPKG_CL MATCHES "arm/cl.exe$") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(Z_VCPKG_CL MATCHES "arm64/cl.exe$") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(Z_VCPKG_CL MATCHES "bin/cl.exe$" OR Z_VCPKG_CL MATCHES "x86/cl.exe$") set(Z_VCPKG_TARGET_TRIPLET_ARCH x86) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "amd64") set(Z_VCPKG_TARGET_TRIPLET_ARCH x64) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "s390x") set(Z_VCPKG_TARGET_TRIPLET_ARCH s390x) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "ppc64le") set(Z_VCPKG_TARGET_TRIPLET_ARCH ppc64le) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "armv7l") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm) elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64)$") set(Z_VCPKG_TARGET_TRIPLET_ARCH arm64) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "riscv32") set(Z_VCPKG_TARGET_TRIPLET_ARCH riscv32) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "riscv64") set(Z_VCPKG_TARGET_TRIPLET_ARCH riscv64) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "loongarch32") set(Z_VCPKG_TARGET_TRIPLET_ARCH loongarch32) elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "loongarch64") set(Z_VCPKG_TARGET_TRIPLET_ARCH loongarch64) else() if(Z_VCPKG_CMAKE_IN_TRY_COMPILE) message(STATUS "Unable to determine target architecture, continuing without vcpkg.") else() message(WARNING "Unable to determine target architecture, continuing without vcpkg.") endif() set(VCPKG_TOOLCHAIN ON) cmake_policy(POP) return() endif() endif() endif() if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" OR CMAKE_SYSTEM_NAME STREQUAL "WindowsPhone") set(Z_VCPKG_TARGET_TRIPLET_PLAT uwp) elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")) set(Z_VCPKG_TARGET_TRIPLET_PLAT linux) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")) set(Z_VCPKG_TARGET_TRIPLET_PLAT osx) elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS") set(Z_VCPKG_TARGET_TRIPLET_PLAT ios) elseif(CMAKE_SYSTEM_NAME STREQUAL "watchOS") set(Z_VCPKG_TARGET_TRIPLET_PLAT watchos) elseif(CMAKE_SYSTEM_NAME STREQUAL "tvOS") set(Z_VCPKG_TARGET_TRIPLET_PLAT tvos) elseif(CMAKE_SYSTEM_NAME STREQUAL "visionOS") set(Z_VCPKG_TARGET_TRIPLET_PLAT visionos) elseif(MINGW) set(Z_VCPKG_TARGET_TRIPLET_PLAT mingw-dynamic) elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")) if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") set(Z_VCPKG_TARGET_TRIPLET_PLAT xbox-scarlett) elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") set(Z_VCPKG_TARGET_TRIPLET_PLAT xbox-xboxone) else() set(Z_VCPKG_TARGET_TRIPLET_PLAT windows) endif() elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD")) set(Z_VCPKG_TARGET_TRIPLET_PLAT freebsd) elseif(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "OpenBSD")) set(Z_VCPKG_TARGET_TRIPLET_PLAT openbsd) elseif(CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "NetBSD")) set(Z_VCPKG_TARGET_TRIPLET_PLAT netbsd) elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "SunOS")) set(Z_VCPKG_TARGET_TRIPLET_PLAT solaris) elseif(CMAKE_SYSTEM_NAME STREQUAL "Android" OR (NOT CMAKE_SYSTEM_NAME AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")) set(Z_VCPKG_TARGET_TRIPLET_PLAT android) endif() if(EMSCRIPTEN) set(Z_VCPKG_TARGET_TRIPLET_ARCH wasm32) set(Z_VCPKG_TARGET_TRIPLET_PLAT emscripten) endif() set(VCPKG_TARGET_TRIPLET "${Z_VCPKG_TARGET_TRIPLET_ARCH}-${Z_VCPKG_TARGET_TRIPLET_PLAT}" CACHE STRING "Vcpkg target triplet (ex. x86-windows)") set(Z_VCPKG_TOOLCHAIN_DIR "${CMAKE_CURRENT_LIST_DIR}") # Detect .vcpkg-root to figure VCPKG_ROOT_DIR set(Z_VCPKG_ROOT_DIR_CANDIDATE "${CMAKE_CURRENT_LIST_DIR}") while(NOT DEFINED Z_VCPKG_ROOT_DIR) if(EXISTS "${Z_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root") set(Z_VCPKG_ROOT_DIR "${Z_VCPKG_ROOT_DIR_CANDIDATE}" CACHE INTERNAL "Vcpkg root directory") elseif(IS_DIRECTORY "${Z_VCPKG_ROOT_DIR_CANDIDATE}") get_filename_component(Z_VCPKG_ROOT_DIR_TEMP "${Z_VCPKG_ROOT_DIR_CANDIDATE}" DIRECTORY) if(Z_VCPKG_ROOT_DIR_TEMP STREQUAL Z_VCPKG_ROOT_DIR_CANDIDATE) break() # If unchanged, we have reached the root of the drive without finding vcpkg. endif() SET(Z_VCPKG_ROOT_DIR_CANDIDATE "${Z_VCPKG_ROOT_DIR_TEMP}") unset(Z_VCPKG_ROOT_DIR_TEMP) else() break() endif() endwhile() unset(Z_VCPKG_ROOT_DIR_CANDIDATE) if(NOT Z_VCPKG_ROOT_DIR) z_vcpkg_add_fatal_error("Could not find .vcpkg-root") endif() if(DEFINED VCPKG_INSTALLED_DIR) set(Z_VCPKG_INSTALLED_DIR_INITIAL_VALUE "${VCPKG_INSTALLED_DIR}") elseif(DEFINED _VCPKG_INSTALLED_DIR) set(Z_VCPKG_INSTALLED_DIR_INITIAL_VALUE "${_VCPKG_INSTALLED_DIR}") elseif(VCPKG_MANIFEST_MODE) set(Z_VCPKG_INSTALLED_DIR_INITIAL_VALUE "${CMAKE_BINARY_DIR}/vcpkg_installed") else() set(Z_VCPKG_INSTALLED_DIR_INITIAL_VALUE "${Z_VCPKG_ROOT_DIR}/installed") endif() set(VCPKG_INSTALLED_DIR "${Z_VCPKG_INSTALLED_DIR_INITIAL_VALUE}" CACHE PATH "The directory which contains the installed libraries for each triplet" FORCE) set(_VCPKG_INSTALLED_DIR "${VCPKG_INSTALLED_DIR}" CACHE PATH "The directory which contains the installed libraries for each triplet" FORCE) function(z_vcpkg_add_vcpkg_to_cmake_path list suffix) set(vcpkg_paths "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}${suffix}" "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug${suffix}" ) if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") list(REVERSE vcpkg_paths) # Debug build: Put Debug paths before Release paths. endif() if(VCPKG_PREFER_SYSTEM_LIBS) list(APPEND "${list}" "${vcpkg_paths}") else() list(INSERT "${list}" "0" "${vcpkg_paths}") # CMake 3.15 is required for list(PREPEND ...). endif() set("${list}" "${${list}}" PARENT_SCOPE) endfunction() z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_PREFIX_PATH "") z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_LIBRARY_PATH "/lib/manual-link") z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_FIND_ROOT_PATH "") if(NOT VCPKG_PREFER_SYSTEM_LIBS) set(CMAKE_FIND_FRAMEWORK "LAST") # we assume that frameworks are usually system-wide libs, not vcpkg-built set(CMAKE_FIND_APPBUNDLE "LAST") # we assume that appbundles are usually system-wide libs, not vcpkg-built endif() # If one CMAKE_FIND_ROOT_PATH_MODE_* variables is set to ONLY, to make sure that ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} # and ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug are searched, it is not sufficient to just add them to CMAKE_FIND_ROOT_PATH, # as CMAKE_FIND_ROOT_PATH specify "one or more directories to be prepended to all other search directories", so to make sure that # the libraries are searched as they are, it is necessary to add "/" to the CMAKE_PREFIX_PATH if(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE STREQUAL "ONLY" OR CMAKE_FIND_ROOT_PATH_MODE_LIBRARY STREQUAL "ONLY" OR CMAKE_FIND_ROOT_PATH_MODE_PACKAGE STREQUAL "ONLY") list(APPEND CMAKE_PREFIX_PATH "/") endif() set(VCPKG_CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH}") # CMAKE_EXECUTABLE_SUFFIX is not yet defined if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(Z_VCPKG_EXECUTABLE "${Z_VCPKG_ROOT_DIR}/vcpkg.exe") set(Z_VCPKG_BOOTSTRAP_SCRIPT "${Z_VCPKG_ROOT_DIR}/bootstrap-vcpkg.bat") else() set(Z_VCPKG_EXECUTABLE "${Z_VCPKG_ROOT_DIR}/vcpkg") set(Z_VCPKG_BOOTSTRAP_SCRIPT "${Z_VCPKG_ROOT_DIR}/bootstrap-vcpkg.sh") endif() if(VCPKG_MANIFEST_MODE AND VCPKG_MANIFEST_INSTALL AND NOT Z_VCPKG_CMAKE_IN_TRY_COMPILE AND NOT Z_VCPKG_HAS_FATAL_ERROR) if(NOT EXISTS "${Z_VCPKG_EXECUTABLE}" AND NOT Z_VCPKG_HAS_FATAL_ERROR) message(STATUS "Bootstrapping vcpkg before install") set(Z_VCPKG_BOOTSTRAP_LOG "${CMAKE_BINARY_DIR}/vcpkg-bootstrap.log") file(TO_NATIVE_PATH "${Z_VCPKG_BOOTSTRAP_LOG}" Z_NATIVE_VCPKG_BOOTSTRAP_LOG) execute_process( COMMAND "${Z_VCPKG_BOOTSTRAP_SCRIPT}" ${VCPKG_BOOTSTRAP_OPTIONS} OUTPUT_FILE "${Z_VCPKG_BOOTSTRAP_LOG}" ERROR_FILE "${Z_VCPKG_BOOTSTRAP_LOG}" RESULT_VARIABLE Z_VCPKG_BOOTSTRAP_RESULT) if(Z_VCPKG_BOOTSTRAP_RESULT EQUAL "0") message(STATUS "Bootstrapping vcpkg before install - done") else() message(STATUS "Bootstrapping vcpkg before install - failed") z_vcpkg_add_fatal_error("vcpkg install failed. See logs for more information: ${Z_NATIVE_VCPKG_BOOTSTRAP_LOG}") endif() endif() if(NOT Z_VCPKG_HAS_FATAL_ERROR) message(STATUS "Running vcpkg install") set(Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS) if(DEFINED VCPKG_HOST_TRIPLET AND NOT VCPKG_HOST_TRIPLET STREQUAL "") list(APPEND Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS "--host-triplet=${VCPKG_HOST_TRIPLET}") endif() if(VCPKG_OVERLAY_PORTS) foreach(Z_VCPKG_OVERLAY_PORT IN LISTS VCPKG_OVERLAY_PORTS) list(APPEND Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS "--overlay-ports=${Z_VCPKG_OVERLAY_PORT}") endforeach() endif() if(VCPKG_OVERLAY_TRIPLETS) foreach(Z_VCPKG_OVERLAY_TRIPLET IN LISTS VCPKG_OVERLAY_TRIPLETS) list(APPEND Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS "--overlay-triplets=${Z_VCPKG_OVERLAY_TRIPLET}") endforeach() endif() if(DEFINED VCPKG_FEATURE_FLAGS OR DEFINED CACHE{VCPKG_FEATURE_FLAGS}) list(JOIN VCPKG_FEATURE_FLAGS "," Z_VCPKG_FEATURE_FLAGS) set(Z_VCPKG_FEATURE_FLAGS "--feature-flags=${Z_VCPKG_FEATURE_FLAGS}") endif() foreach(Z_VCPKG_FEATURE IN LISTS VCPKG_MANIFEST_FEATURES) list(APPEND Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS "--x-feature=${Z_VCPKG_FEATURE}") endforeach() if(VCPKG_MANIFEST_NO_DEFAULT_FEATURES) list(APPEND Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS "--x-no-default-features") endif() if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18") set(Z_VCPKG_MANIFEST_INSTALL_ECHO_PARAMS ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE) else() set(Z_VCPKG_MANIFEST_INSTALL_ECHO_PARAMS) endif() execute_process( COMMAND "${Z_VCPKG_EXECUTABLE}" install --triplet "${VCPKG_TARGET_TRIPLET}" --vcpkg-root "${Z_VCPKG_ROOT_DIR}" "--x-wait-for-lock" "--x-manifest-root=${VCPKG_MANIFEST_DIR}" "--x-install-root=${_VCPKG_INSTALLED_DIR}" ${Z_VCPKG_FEATURE_FLAGS} ${Z_VCPKG_ADDITIONAL_MANIFEST_PARAMS} ${VCPKG_INSTALL_OPTIONS} OUTPUT_VARIABLE Z_VCPKG_MANIFEST_INSTALL_LOGTEXT ERROR_VARIABLE Z_VCPKG_MANIFEST_INSTALL_LOGTEXT RESULT_VARIABLE Z_VCPKG_MANIFEST_INSTALL_RESULT ${Z_VCPKG_MANIFEST_INSTALL_ECHO_PARAMS} ) set(Z_VCPKG_MANIFEST_INSTALL_LOGFILE "${CMAKE_BINARY_DIR}/vcpkg-manifest-install.log") file(TO_NATIVE_PATH "${Z_VCPKG_MANIFEST_INSTALL_LOGFILE}" Z_NATIVE_VCPKG_MANIFEST_INSTALL_LOGFILE) file(WRITE "${Z_VCPKG_MANIFEST_INSTALL_LOGFILE}" "${Z_VCPKG_MANIFEST_INSTALL_LOGTEXT}") if(Z_VCPKG_MANIFEST_INSTALL_RESULT EQUAL "0") message(STATUS "Running vcpkg install - done") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${VCPKG_MANIFEST_DIR}/vcpkg.json") if(EXISTS "${VCPKG_MANIFEST_DIR}/vcpkg-configuration.json") set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${VCPKG_MANIFEST_DIR}/vcpkg-configuration.json") endif() else() message(STATUS "Running vcpkg install - failed") z_vcpkg_add_fatal_error("vcpkg install failed. See logs for more information: ${Z_NATIVE_VCPKG_MANIFEST_INSTALL_LOGFILE}") endif() endif() endif() option(VCPKG_SETUP_CMAKE_PROGRAM_PATH "Enable the setup of CMAKE_PROGRAM_PATH to vcpkg paths" ON) set(VCPKG_CAN_USE_HOST_TOOLS OFF) if(DEFINED VCPKG_HOST_TRIPLET AND NOT VCPKG_HOST_TRIPLET STREQUAL "") set(VCPKG_CAN_USE_HOST_TOOLS ON) endif() cmake_dependent_option(VCPKG_USE_HOST_TOOLS "Setup CMAKE_PROGRAM_PATH to use host tools" ON "VCPKG_CAN_USE_HOST_TOOLS" OFF) unset(VCPKG_CAN_USE_HOST_TOOLS) if(VCPKG_SETUP_CMAKE_PROGRAM_PATH) set(tools_base_path "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/tools") if(VCPKG_USE_HOST_TOOLS) set(tools_base_path "${VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools") endif() list(APPEND CMAKE_PROGRAM_PATH "${tools_base_path}") file(GLOB Z_VCPKG_TOOLS_DIRS LIST_DIRECTORIES true "${tools_base_path}/*") file(GLOB Z_VCPKG_TOOLS_FILES LIST_DIRECTORIES false "${tools_base_path}/*") file(GLOB Z_VCPKG_TOOLS_DIRS_BIN LIST_DIRECTORIES true "${tools_base_path}/*/bin") file(GLOB Z_VCPKG_TOOLS_FILES_BIN LIST_DIRECTORIES false "${tools_base_path}/*/bin") list(REMOVE_ITEM Z_VCPKG_TOOLS_DIRS ${Z_VCPKG_TOOLS_FILES} "") # need at least one item for REMOVE_ITEM if CMake <= 3.19 list(REMOVE_ITEM Z_VCPKG_TOOLS_DIRS_BIN ${Z_VCPKG_TOOLS_FILES_BIN} "") string(REPLACE "/bin" "" Z_VCPKG_TOOLS_DIRS_TO_REMOVE "${Z_VCPKG_TOOLS_DIRS_BIN}") list(REMOVE_ITEM Z_VCPKG_TOOLS_DIRS ${Z_VCPKG_TOOLS_DIRS_TO_REMOVE} "") list(APPEND Z_VCPKG_TOOLS_DIRS ${Z_VCPKG_TOOLS_DIRS_BIN}) foreach(Z_VCPKG_TOOLS_DIR IN LISTS Z_VCPKG_TOOLS_DIRS) list(APPEND CMAKE_PROGRAM_PATH "${Z_VCPKG_TOOLS_DIR}") endforeach() unset(Z_VCPKG_TOOLS_DIR) unset(Z_VCPKG_TOOLS_DIRS) unset(Z_VCPKG_TOOLS_FILES) unset(Z_VCPKG_TOOLS_DIRS_BIN) unset(Z_VCPKG_TOOLS_FILES_BIN) unset(Z_VCPKG_TOOLS_DIRS_TO_REMOVE) unset(tools_base_path) endif() cmake_policy(POP) function(add_executable) z_vcpkg_function_arguments(ARGS) _add_executable(${ARGS}) set(target_name "${ARGV0}") list(FIND ARGV "IMPORTED" IMPORTED_IDX) list(FIND ARGV "ALIAS" ALIAS_IDX) list(FIND ARGV "MACOSX_BUNDLE" MACOSX_BUNDLE_IDX) if(IMPORTED_IDX EQUAL "-1" AND ALIAS_IDX EQUAL "-1") if(VCPKG_APPLOCAL_DEPS) if(Z_VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp|xbox") z_vcpkg_set_powershell_path() set(EXTRA_OPTIONS "") if(X_VCPKG_APPLOCAL_DEPS_SERIALIZED) set(EXTRA_OPTIONS USES_TERMINAL) endif() add_custom_command(TARGET "${target_name}" POST_BUILD COMMAND "${Z_VCPKG_POWERSHELL_PATH}" -noprofile -executionpolicy Bypass -file "${Z_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1" -targetBinary "$" -installedDir "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$:/debug>/bin" -OutVariable out VERBATIM ${EXTRA_OPTIONS} ) elseif(Z_VCPKG_TARGET_TRIPLET_PLAT MATCHES "osx") if(NOT MACOSX_BUNDLE_IDX EQUAL "-1") find_package(Python COMPONENTS Interpreter) add_custom_command(TARGET "${target_name}" POST_BUILD COMMAND "${Python_EXECUTABLE}" "${Z_VCPKG_TOOLCHAIN_DIR}/osx/applocal.py" "$" "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$:/debug>" VERBATIM ) endif() endif() endif() set_target_properties("${target_name}" PROPERTIES VS_USER_PROPS do_not_import_user.props) set_target_properties("${target_name}" PROPERTIES VS_GLOBAL_VcpkgEnabled false) endif() endfunction() function(add_library) z_vcpkg_function_arguments(ARGS) _add_library(${ARGS}) set(target_name "${ARGV0}") list(FIND ARGS "IMPORTED" IMPORTED_IDX) list(FIND ARGS "INTERFACE" INTERFACE_IDX) list(FIND ARGS "ALIAS" ALIAS_IDX) if(IMPORTED_IDX EQUAL "-1" AND INTERFACE_IDX EQUAL "-1" AND ALIAS_IDX EQUAL "-1") get_target_property(IS_LIBRARY_SHARED "${target_name}" TYPE) if(VCPKG_APPLOCAL_DEPS AND Z_VCPKG_TARGET_TRIPLET_PLAT MATCHES "windows|uwp|xbox" AND (IS_LIBRARY_SHARED STREQUAL "SHARED_LIBRARY" OR IS_LIBRARY_SHARED STREQUAL "MODULE_LIBRARY")) z_vcpkg_set_powershell_path() add_custom_command(TARGET "${target_name}" POST_BUILD COMMAND "${Z_VCPKG_POWERSHELL_PATH}" -noprofile -executionpolicy Bypass -file "${Z_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1" -targetBinary "$" -installedDir "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$:/debug>/bin" -OutVariable out VERBATIM ) endif() set_target_properties("${target_name}" PROPERTIES VS_USER_PROPS do_not_import_user.props) set_target_properties("${target_name}" PROPERTIES VS_GLOBAL_VcpkgEnabled false) endif() endfunction() # This is an experimental function to enable applocal install of dependencies as part of the `make install` process # Arguments: # TARGETS - a list of installed targets to have dependencies copied for # DESTINATION - the runtime directory for those targets (usually `bin`) # COMPONENT - the component this install command belongs to (optional) # # Note that this function requires CMake 3.14 for policy CMP0087 function(x_vcpkg_install_local_dependencies) if(CMAKE_VERSION VERSION_LESS "3.14") message(FATAL_ERROR "x_vcpkg_install_local_dependencies and X_VCPKG_APPLOCAL_DEPS_INSTALL require at least CMake 3.14 (current version: ${CMAKE_VERSION})" ) endif() cmake_parse_arguments(PARSE_ARGV "0" arg "" "DESTINATION;COMPONENT" "TARGETS" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_DESTINATION) message(FATAL_ERROR "DESTINATION must be specified") endif() if(Z_VCPKG_TARGET_TRIPLET_PLAT MATCHES "^(windows|uwp|xbox-.*)$") # Install CODE|SCRIPT allow the use of generator expressions cmake_policy(SET CMP0087 NEW) # CMake 3.14 z_vcpkg_set_powershell_path() if(NOT IS_ABSOLUTE "${arg_DESTINATION}") set(arg_DESTINATION "\${CMAKE_INSTALL_PREFIX}/${arg_DESTINATION}") endif() set(component_param "") if(DEFINED arg_COMPONENT) set(component_param COMPONENT "${arg_COMPONENT}") endif() set(allowed_target_types MODULE_LIBRARY SHARED_LIBRARY EXECUTABLE) foreach(target IN LISTS arg_TARGETS) get_target_property(target_type "${target}" TYPE) if(target_type IN_LIST allowed_target_types) install(CODE "message(\"-- Installing app dependencies for ${target}...\") execute_process(COMMAND \"${Z_VCPKG_POWERSHELL_PATH}\" -noprofile -executionpolicy Bypass -file \"${Z_VCPKG_TOOLCHAIN_DIR}/msbuild/applocal.ps1\" -targetBinary \"${arg_DESTINATION}/$\" -installedDir \"${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}$<$:/debug>/bin\" -OutVariable out)" ${component_param} ) endif() endforeach() endif() endfunction() if(X_VCPKG_APPLOCAL_DEPS_INSTALL) function(install) z_vcpkg_function_arguments(ARGS) _install(${ARGS}) if(ARGV0 STREQUAL "TARGETS") # Will contain the list of targets set(parsed_targets "") # Destination - [RUNTIME] DESTINATION argument overrides this set(destination "bin") set(component_param "") # Parse arguments given to the install function to find targets and (runtime) destination set(modifier "") # Modifier for the command in the argument set(last_command "") # Last command we found to process foreach(arg IN LISTS ARGS) if(arg MATCHES "^(ARCHIVE|LIBRARY|RUNTIME|OBJECTS|FRAMEWORK|BUNDLE|PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE|INCLUDES)$") set(modifier "${arg}") continue() endif() if(arg MATCHES "^(TARGETS|DESTINATION|PERMISSIONS|CONFIGURATIONS|COMPONENT|NAMELINK_COMPONENT|OPTIONAL|EXCLUDE_FROM_ALL|NAMELINK_ONLY|NAMELINK_SKIP|EXPORT|FILE_SET)$") set(last_command "${arg}") continue() endif() if(last_command STREQUAL "TARGETS") list(APPEND parsed_targets "${arg}") endif() if(last_command STREQUAL "DESTINATION" AND (modifier STREQUAL "" OR modifier STREQUAL "RUNTIME")) set(destination "${arg}") endif() if(last_command STREQUAL "COMPONENT" AND (modifier STREQUAL "" OR modifier STREQUAL "RUNTIME")) set(component_param "COMPONENT" "${arg}") endif() endforeach() x_vcpkg_install_local_dependencies( TARGETS ${parsed_targets} DESTINATION "${destination}" ${component_param} ) endif() endfunction() endif() option(VCPKG_TRACE_FIND_PACKAGE "Trace calls to find_package()" OFF) if(NOT DEFINED VCPKG_OVERRIDE_FIND_PACKAGE_NAME) set(VCPKG_OVERRIDE_FIND_PACKAGE_NAME find_package) endif() # NOTE: this is not a function, which means that arguments _are not_ perfectly forwarded # this is fine for `find_package`, since there are no usecases for `;` in arguments, # so perfect forwarding is not important set(z_vcpkg_find_package_backup_id "0") macro("${VCPKG_OVERRIDE_FIND_PACKAGE_NAME}" z_vcpkg_find_package_package_name) if(VCPKG_TRACE_FIND_PACKAGE) string(REPEAT " " "${z_vcpkg_find_package_backup_id}" z_vcpkg_find_package_indent) string(JOIN " " z_vcpkg_find_package_argn ${ARGN}) message(STATUS "${z_vcpkg_find_package_indent}find_package(${z_vcpkg_find_package_package_name} ${z_vcpkg_find_package_argn})") unset(z_vcpkg_find_package_argn) unset(z_vcpkg_find_package_indent) endif() math(EXPR z_vcpkg_find_package_backup_id "${z_vcpkg_find_package_backup_id} + 1") set(z_vcpkg_find_package_package_name "${z_vcpkg_find_package_package_name}") set(z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN "${ARGN}") set(z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars "") if(z_vcpkg_find_package_backup_id EQUAL "1") # This is the top-level find_package call if("${VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}}") # Avoid CMake warning when both REQUIRED and CMAKE_REQUIRE_FIND_PACKAGE_ are used if(NOT "REQUIRED" IN_LIST "z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN") list(APPEND "z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars" "CMAKE_REQUIRE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}") if(DEFINED "CMAKE_REQUIRE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}") set("z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_CMAKE_REQUIRE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}" "${CMAKE_REQUIRE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}}") endif() set("CMAKE_REQUIRE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}" 1) endif() if(VCPKG_TRACE_FIND_PACKAGE) message(STATUS " (required by VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}=${VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}})") endif() elseif(DEFINED "VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}") list(APPEND "z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars" "CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}") if(DEFINED "CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}") set("z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}" "${CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}}") endif() # We don't need to worry about clearing this for transitive users because # once this top level find_package is disabled, we immediately will return # not found and not try to visit transitive dependencies in the first place. set("CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}" 1) if(VCPKG_TRACE_FIND_PACKAGE) message(STATUS " (disabled by VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}=${VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name}})") endif() elseif(VCPKG_TRACE_FIND_PACKAGE) message(STATUS " (could be controlled by VCPKG_LOCK_FIND_PACKAGE_${z_vcpkg_find_package_package_name})") endif() endif() # Workaround to set the ROOT_PATH until upstream CMake stops overriding # the ROOT_PATH at apple OS initialization phase. # See https://gitlab.kitware.com/cmake/cmake/merge_requests/3273 # Fixed in CMake 3.15 if(CMAKE_SYSTEM_NAME STREQUAL "iOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS" OR CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "visionOS") list(APPEND z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars "CMAKE_FIND_ROOT_PATH") if(DEFINED CMAKE_FIND_ROOT_PATH) set(z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_CMAKE_FIND_ROOT_PATH "${CMAKE_FIND_ROOT_PATH}") endif() list(APPEND CMAKE_FIND_ROOT_PATH "${VCPKG_CMAKE_FIND_ROOT_PATH}") endif() string(TOLOWER "${z_vcpkg_find_package_package_name}" z_vcpkg_find_package_lowercase_package_name) set(z_vcpkg_find_package_vcpkg_cmake_wrapper_path "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/${z_vcpkg_find_package_lowercase_package_name}/vcpkg-cmake-wrapper.cmake") if(CMAKE_DISABLE_FIND_PACKAGE_${z_vcpkg_find_package_package_name}) # Skip wrappers, fail if REQUIRED. _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) elseif(EXISTS "${z_vcpkg_find_package_vcpkg_cmake_wrapper_path}") if(VCPKG_TRACE_FIND_PACKAGE) string(REPEAT " " "${z_vcpkg_find_package_backup_id}" z_vcpkg_find_package_indent) message(STATUS "${z_vcpkg_find_package_indent}using share/${z_vcpkg_find_package_lowercase_package_name}/vcpkg-cmake-wrapper.cmake") unset(z_vcpkg_find_package_indent) endif() list(APPEND z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars "ARGS") if(DEFINED ARGS) set(z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_ARGS "${ARGS}") endif() set(ARGS "${z_vcpkg_find_package_package_name};${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}") include("${z_vcpkg_find_package_vcpkg_cmake_wrapper_path}") elseif(z_vcpkg_find_package_package_name STREQUAL "Boost" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/boost") # Checking for the boost headers disables this wrapper unless the user has installed at least one boost library # these intentionally are not backed up set(Boost_USE_STATIC_LIBS OFF) set(Boost_USE_MULTITHREADED ON) set(Boost_NO_BOOST_CMAKE ON) set(Boost_USE_STATIC_RUNTIME) unset(Boost_USE_STATIC_RUNTIME CACHE) if(CMAKE_VS_PLATFORM_TOOLSET STREQUAL "v120") set(Boost_COMPILER "-vc120") else() set(Boost_COMPILER "-vc140") endif() _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) elseif(z_vcpkg_find_package_package_name STREQUAL "ICU" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/unicode/utf.h") list(FIND z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN "COMPONENTS" z_vcpkg_find_package_COMPONENTS_IDX) if(NOT z_vcpkg_find_package_COMPONENTS_IDX EQUAL "-1") _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN} COMPONENTS data) else() _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) endif() elseif(z_vcpkg_find_package_package_name STREQUAL "GSL" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/gsl") _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) if(GSL_FOUND AND TARGET GSL::gsl) set_property( TARGET GSL::gslcblas APPEND PROPERTY IMPORTED_CONFIGURATIONS Release ) set_property( TARGET GSL::gsl APPEND PROPERTY IMPORTED_CONFIGURATIONS Release ) if( EXISTS "${GSL_LIBRARY_DEBUG}" AND EXISTS "${GSL_CBLAS_LIBRARY_DEBUG}") set_property( TARGET GSL::gsl APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( GSL::gsl PROPERTIES IMPORTED_LOCATION_DEBUG "${GSL_LIBRARY_DEBUG}" ) set_property( TARGET GSL::gslcblas APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug ) set_target_properties( GSL::gslcblas PROPERTIES IMPORTED_LOCATION_DEBUG "${GSL_CBLAS_LIBRARY_DEBUG}" ) endif() endif() elseif("${z_vcpkg_find_package_package_name}" STREQUAL "CURL" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/curl") _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) if(CURL_FOUND) if(EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/nghttp2.lib") list(APPEND CURL_LIBRARIES "debug" "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/nghttp2.lib" "optimized" "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/nghttp2.lib") endif() endif() elseif("${z_vcpkg_find_package_lowercase_package_name}" STREQUAL "grpc" AND EXISTS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/grpc") _find_package(gRPC ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) else() _find_package("${z_vcpkg_find_package_package_name}" ${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_ARGN}) endif() # Do not use z_vcpkg_find_package_package_name beyond this point since it might have changed! # Only variables using z_vcpkg_find_package_backup_id can used correctly below! foreach(z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var IN LISTS z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_vars) if(DEFINED z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var}) set("${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var}" "${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var}}") else() unset("${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var}") endif() unset("z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_${z_vcpkg_find_package_${z_vcpkg_find_package_backup_id}_backup_var}") endforeach() math(EXPR z_vcpkg_find_package_backup_id "${z_vcpkg_find_package_backup_id} - 1") if(z_vcpkg_find_package_backup_id LESS "0") message(FATAL_ERROR "[vcpkg]: find_package ended with z_vcpkg_find_package_backup_id being less than 0! This is a logical error and should never happen. Please provide a cmake trace log via cmake cmd line option '--trace-expand'!") endif() endmacro() cmake_policy(PUSH) cmake_policy(VERSION 3.16) set(VCPKG_TOOLCHAIN ON) set(Z_VCPKG_UNUSED "${CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION}") set(Z_VCPKG_UNUSED "${CMAKE_EXPORT_NO_PACKAGE_REGISTRY}") set(Z_VCPKG_UNUSED "${CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY}") set(Z_VCPKG_UNUSED "${CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY}") set(Z_VCPKG_UNUSED "${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP}") # Propagate these values to try-compile configurations so the triplet and toolchain load if(NOT Z_VCPKG_CMAKE_IN_TRY_COMPILE) list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_TARGET_TRIPLET VCPKG_TARGET_ARCHITECTURE VCPKG_HOST_TRIPLET VCPKG_INSTALLED_DIR VCPKG_PREFER_SYSTEM_LIBS # VCPKG_APPLOCAL_DEPS # This should be off within try_compile! VCPKG_CHAINLOAD_TOOLCHAIN_FILE Z_VCPKG_ROOT_DIR ) else() set(VCPKG_APPLOCAL_DEPS OFF) endif() if(Z_VCPKG_HAS_FATAL_ERROR) message(FATAL_ERROR "${Z_VCPKG_FATAL_ERROR}") endif() cmake_policy(POP) ================================================ FILE: scripts/ci.baseline.txt ================================================ ########################################################################### ## This file defines the current expected build state of ports in CI. ## ## States ## (default) - ## If a port is missing from this file then it is assumed ## to build successfully if not blocked by a dependency. ## pass - The port must build successfully in the CI system. It is a hard ## error if the port build is blocked by a failed dependency. ## fail - The port build is expected to fail in the CI system. ## This is not necessarily the same as if a port is expected to build ## on a developers machine because it may fail due to the machine ## configuration. When set to fail the CI system will silently skip ## the port for pull request CI runs. But the CI system will still ## attempt to build the port in scheduled runs, reporting unexpected ## build success as a CI failure. ## skip - Do not build this port in the CI system. ## This is added to ports that may be flaky or conflict with other ## ports. Please comment for why a port is skipped so it can be ## removed when the issue is resolved. ## ## ## CI tested triplets: ## arm-neon-android ## arm64-android ## arm64-osx ## arm64-windows ## arm64-windows-static-md ## x64-android ## x64-linux ## x64-windows ## x64-windows-release ## x64-windows-static ## x64-windows-static-md ## x86-windows ## # Add new items alphabetically aliyun-oss-cpp-sdk:arm64-linux=fail ampl-asl:arm64-linux=fail apr:arm-neon-android=fail apr:arm64-android=fail apr:arm64-linux=fail apr:x64-android=fail apsi:arm-neon-android=fail apsi:x64-android=fail arcticdb-sparrow:arm-neon-android=fail # https://github.com/man-group/sparrow/issues/653 arcticdb-sparrow:arm64-android=fail arcticdb-sparrow:x64-android=fail arpack-ng:x64-windows-static-md=fail arpack-ng:x64-windows-static=fail arrayfire:x64-linux=fail # Broken with CUDA 12; needs update to 3.8.3 and https://github.com/arrayfire/arrayfire/issues/3349 fixed atliac-minitest:arm64-linux=fail audit:arm64-linux=fail azure-storage-cpp:arm64-linux=fail azure-storage-cpp:arm64-osx=fail azure-storage-cpp:x64-linux=fail backward-cpp:arm-neon-android=fail backward-cpp:arm64-android=fail backward-cpp:x64-android=fail bddisasm:arm64-linux=fail bde:arm64-linux=skip # conflict https://github.com/microsoft/vcpkg/pull/32645 bde:arm64-osx=skip bde:x64-linux=skip bde:x64-windows-release=skip bde:x64-windows-static-md=skip bde:x64-windows-static=skip bde:x64-windows=skip bde:x86-windows=skip berkeleydb:arm-neon-android=fail berkeleydb:arm64-android=fail berkeleydb:x64-android=fail bgfx:arm64-linux=fail binlog:arm-neon-android=fail blend2d:arm64-linux=fail blitz:x64-android=fail bond:arm64-linux=fail boringssl:arm-neon-android=skip # Conflicts with openssl boringssl:arm64-android=skip boringssl:arm64-linux=skip boringssl:arm64-osx=skip boringssl:arm64-windows-static-md=skip boringssl:arm64-windows=skip boringssl:x64-android=skip boringssl:x64-linux=skip boringssl:x64-windows-release=skip boringssl:x64-windows-static-md=skip boringssl:x64-windows-static=skip boringssl:x64-windows=skip boringssl:x86-windows=skip buck-yeh-bux:x86-windows=skip caf:arm-neon-android=fail caf:arm64-android=fail caf:x64-android=fail cairo:arm64-linux=fail calceph:arm64-linux=fail ccd:arm64-linux=fail cctag:x64-windows-static-md=fail chakracore:arm64-linux=skip chakracore:x64-linux=skip chmlib:arm64-linux=fail chronoengine:arm64-linux=fail clamav:arm64-windows=fail clapack:arm-neon-android=skip # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake clapack:arm64-android=skip clapack:arm64-osx=skip clapack:x64-android=skip clapack:x64-linux=skip clapack:x64-windows-release=skip clapack:x64-windows-static-md=pass clapack:x64-windows-static=pass clapack:x64-windows=skip clapack:x86-windows=skip clblas:arm-neon-android=fail clblas:arm64-android=fail clblas:x64-android=fail clfft:arm64-linux=fail clipboardxx:arm64-linux=fail clipper2:arm64-linux=fail clockutils:arm-neon-android=fail # gnustl_shared is no longer supported. Please switch to either c++_shared or c++_static. clockutils:arm64-android=fail clockutils:x64-android=fail clrng:arm-neon-android=fail cmake:arm64-linux=fail coin:arm64-linux=fail coin-or-ipopt:x64-windows-static-md=fail coin-or-ipopt:x64-windows-static=fail coolprop:arm64-linux=fail coroutine:arm-neon-android=fail coroutine:arm64-android=fail coroutine:arm64-osx=fail coroutine:x64-android=fail cppadcodegen:arm64-linux=fail cppcoro:arm-neon-android=fail # Requires full C++20 support, currently absent from CI for these triplets. cppcoro:arm64-android=fail cppcoro:arm64-linux=fail cppcoro:arm64-osx=fail cppcoro:x64-android=fail cppcoro:x64-linux=fail cppmicroservices:arm-neon-android=fail cppmicroservices:arm64-android=fail cppmicroservices:arm64-linux=fail cppmicroservices:arm64-windows-static-md=fail cppmicroservices:arm64-windows=fail cppmicroservices:x64-android=fail cpprestsdk:arm-neon-android=fail # std::string issue, https://github.com/microsoft/vcpkg/pull/41293#issuecomment-2942853561 cpprestsdk:arm64-android=fail cpprestsdk:x64-android=fail cppslippi:arm64-linux=fail cppvrf:arm64-linux=fail cpuid:arm64-linux=fail crashpad:arm64-linux=fail #Compliation failed due to the lack of Clang++ compiler. crashpad:x64-linux=fail #Compilation failed due to the lack of Clang++ compiler. ctbench:arm64-osx=fail ctp:x64-android=fail cuda:arm64-linux=fail dawn:arm64-linux=fail daxa:arm64-linux=fail dbghelp:arm64-windows-static-md=skip # Since pipeline cannot automatically install dbghelp dependency, skip this detection dbghelp:arm64-windows=skip dbghelp:x64-windows-release=skip dbghelp:x64-windows-static-md=skip dbghelp:x64-windows-static=skip dbghelp:x64-windows=skip dbghelp:x86-windows=skip dbus:arm64-linux=fail dcmtk:arm-neon-android=fail # Cross builds depend on try_run results dcmtk:arm64-android=fail dcmtk:arm64-linux=fail dcmtk:arm64-windows-static-md=fail dcmtk:arm64-windows=fail dcmtk:x64-android=fail directfb2:arm64-linux=fail directxsdk:x64-windows-release=skip # legacy directxsdk which conflicts with dxsdk-d3dx directxsdk:x64-windows-static-md=skip directxsdk:x64-windows-static=skip directxsdk:x64-windows=skip directxsdk:x86-windows=skip discount:x64-android=fail dpdk:arm64-linux=fail eathread:x64-android=fail ecal:arm-neon-android=fail ecal:arm64-android=fail ecal:x64-android=fail ethindp-prism:arm64-linux=fail faad2:arm64-linux=fail faiss:arm64-osx=fail # No openmp on default osx toolchain faker-cxx:arm64-linux=fail fltk:arm-neon-android=fail fltk:arm64-android=fail fltk:arm64-linux=fail fltk:x64-android=fail fluidlite:arm64-osx=skip # fluidlite conflicts with fluidsynth; we test fluidsynth rather than fluidlite because fluidlite has no dependencies and thus is less likely to be broken by another package. fluidlite:arm64-windows-windows-static-md=skip fluidlite:arm64-windows=skip fluidlite:x64-linux=skip fluidlite:x64-windows-release=skip fluidlite:x64-windows-static-md=skip fluidlite:x64-windows-static=skip fluidlite:x64-windows=skip fluidlite:x86-windows=skip freeglut:arm-neon-android=fail # unsupported option '-mfloat-abi=', ALooper_pollAll no longer available freeglut:arm64-android=fail freeglut:arm64-linux=fail freeglut:arm64-osx=fail # Needs XQuartz freeglut:x64-android=fail fruit:arm-neon-android=fail fruit:arm64-android=fail fruit:x64-android=fail ftgl:arm-neon-android=fail ftgl:arm64-android=fail ftgl:arm64-linux=fail ftgl:x64-android=fail future-config:arm64-linux=fail fuzzylite:arm-neon-android=fail fuzzylite:arm64-android=fail fuzzylite:x64-android=fail g3log:arm-neon-android=fail g3log:arm64-android=fail g3log:x64-android=fail gainput:arm-neon-android=fail gainput:arm64-android=fail gainput:x64-android=fail gamenetworkingsockets:arm-neon-android=fail gamenetworkingsockets:arm64-android=fail gamenetworkingsockets:x64-android=fail gapp:arm-neon-android=fail # requires c++20 gapp:arm64-android=fail # requires c++20 gapp:arm64-osx=fail # requires c++20 gapp:x64-android=fail # requires c++20 gegl:arm64-osx=fail gemmlowp:arm-neon-android=fail gemmlowp:arm64-android=fail gemmlowp:x64-android=fail gherkin-c:arm-neon-android=fail gherkin-c:arm64-android=fail gherkin-c:arm64-windows-static-md=skip # Conflicts with libevent gherkin-c:arm64-windows=skip gherkin-c:x64-android=fail gherkin-c:x64-linux=skip gherkin-c:x64-windows-release=skip gherkin-c:x64-windows-static-md=skip gherkin-c:x64-windows-static=skip gherkin-c:x64-windows=skip gherkin-c:x86-windows=skip gl2ps:arm64-linux=fail gl3w:arm-neon-android=fail gl3w:arm64-android=fail gl3w:arm64-linux=fail gl3w:x64-android=fail glew:arm64-linux=fail glfw3:arm-neon-android=fail glfw3:arm64-android=fail glfw3:arm64-linux=fail glfw3:x64-android=fail glibmm:arm64-windows-static-md=fail glibmm:x64-windows-static-md=fail glibmm:x64-windows-static=fail gmmlib:arm64-linux=fail gobject-introspection:arm-neon-android=fail # needs arm64 host gobject-introspection:arm64-android=fail gobject-introspection:arm64-linux=fail gobject-introspection:arm64-windows-static-md=fail gobject-introspection:arm64-windows=fail gobject-introspection:x64-android=fail gsoap:x64-android=fail # gsoap does not offer stable public source downloads gsoap:x64-windows-release=skip gsoap:x64-windows-static-md=skip gsoap:x64-windows-static=skip gsoap:x64-windows=skip gsoap:x86-windows=skip guile:arm64-linux=fail gz-sim:x64-linux=skip # many parallel links cause memory exhaustion on our 128GB of RAM lab VMs gz-tools:arm-neon-android=fail gz-tools:arm64-android=fail gz-tools:x64-android=fail halide:x64-windows-static=fail hexl:x64-android=fail hwloc:arm-neon-android=fail hwloc:arm64-android=fail hwloc:x64-android=fail iceoryx:arm-neon-android=fail iceoryx:arm64-android=fail iceoryx:x64-android=fail ijg-libjpeg:arm64-linux=skip imcce-openfa:arm64-linux=fail isal:x64-android=fail itk:arm-neon-android=fail # Failing on try_run() in cross builds itk:arm64-android=fail itk:arm64-windows-static-md=fail itk:arm64-windows=fail itk:x64-android=fail jaeger-client-cpp:arm-neon-android=fail jaeger-client-cpp:x64-android=fail jemalloc:arm-neon-android=fail jemalloc:arm64-android=fail jemalloc:arm64-windows-static-md=fail jemalloc:arm64-windows=fail jemalloc:x64-android=fail jinja2cpplight:arm-neon-android=fail jinja2cpplight:arm64-android=fail jinja2cpplight:x64-android=fail juce:arm-neon-android=fail # needs android-29 juce:arm64-android=fail juce:arm64-linux=fail juce:x64-android=fail kf6archive:arm-neon-android=skip # needs newer ECM version kf6archive:arm64-android=skip kf6archive:x64-android=skip kfr:arm64-linux=fail krb5:arm64-linux=fail lapack-reference:arm-neon-android=fail # These skips/pass need to match the decision tree for which backends we use; see ports/blas/portfile.cmake lapack-reference:arm64-android=fail lapack-reference:arm64-osx=skip lapack-reference:arm64-windows-static-md=skip lapack-reference:arm64-windows=skip lapack-reference:x64-android=fail lapack-reference:x64-windows-static-md=skip lapack-reference:x64-windows-static=skip libaiff:arm64-linux=fail libaiff:x64-linux=fail libcamera:arm64-linux=fail libcanberra:arm-neon-android=fail libcanberra:arm64-android=fail libcanberra:arm64-linux=fail libcanberra:x64-android=fail libcpplocate:arm-neon-android=fail libcpplocate:arm64-android=fail libcpplocate:x64-android=fail libdc1394:arm-neon-android=fail libdc1394:arm64-android=fail libdc1394:x64-android=fail libedit:arm64-linux=fail libfreenect2:arm64-windows-static-md=fail libfreenect2:arm64-windows=fail libgo:x64-android=fail libgxps:x64-windows-static=fail libharu:arm64-linux=fail libhdfs3:arm-neon-android=fail libhdfs3:arm64-android=fail libhdfs3:arm64-linux=fail libhdfs3:arm64-osx=fail libhdfs3:x64-android=fail libhdfs3:x64-linux=fail libjxl:arm-neon-android=fail # error: out of range pc-relative fixup value libmariadb:arm64-linux=skip # libmariadb conflicts with libmysql libmariadb:arm64-osx=skip libmariadb:arm64-windows-static-md=skip libmariadb:arm64-windows=skip libmariadb:x64-linux=skip libmariadb:x64-windows-release=skip libmariadb:x64-windows-static-md=skip libmariadb:x64-windows-static=skip libmariadb:x64-windows=skip libmesh:arm64-linux=skip libmikmod:arm-neon-android=fail libmikmod:arm64-android=fail libmikmod:x64-android=fail libmodman:x64-windows-static=fail libmysofa:arm64-linux=fail libmysql:x86-windows=skip libnick:arm64-linux=fail libnick:arm64-osx=fail # missing system-installed copy of sqlcipher libnick:x64-linux=fail # C++20 conformant compiler required libopensp:arm-neon-android=fail libopensp:arm64-android=fail libopensp:arm64-linux=fail libopensp:x64-android=fail libosip2:arm64-linux=fail libp7client:x64-android=fail libqcow:arm-neon-android=skip # The developer of libqcow does not offer stable release archives libqcow:arm64-android=skip libqcow:arm64-windows-static-md=skip libqcow:arm64-windows=skip libqcow:x64-android=skip libqcow:x64-linux=skip libqcow:x64-windows-release=skip libqcow:x64-windows-static-md=skip libqcow:x64-windows-static=skip libqcow:x64-windows=skip libqcow:x86-windows=skip libressl:arm-neon-android=skip # Conflicts with openssl libressl:arm64-android=skip libressl:arm64-linux=skip libressl:arm64-osx=skip libressl:arm64-windows-static-md=skip libressl:arm64-windows=skip libressl:x64-android=skip libressl:x64-linux=skip libressl:x64-windows-release=skip libressl:x64-windows-static-md=skip libressl:x64-windows-static=skip libressl:x64-windows=skip libressl:x86-windows=skip libsodium:arm64-linux=fail libtar:arm-neon-android=fail libtar:arm64-android=fail libtar:arm64-linux=fail libtomcrypt:arm64-windows-static-md=fail libtomcrypt:arm64-windows=fail libusb:arm64-linux=fail libva:arm64-linux=fail libxt:x64-windows-release=fail # Appears to have broken races libxt:x64-windows=fail liquid-dsp:arm64-linux=fail llfio:x64-android=fail llgl:arm-neon-android=fail llgl:arm64-android=fail llgl:x64-android=fail llvm:arm-neon-android=fail llvm:arm64-android=fail llvm:arm64-linux=fail llvm:x64-android=fail loguru:arm64-linux=fail marzbanpp:arm64-linux=fail mathgl:arm64-linux=fail mchehab-zbar:arm-neon-android=fail mchehab-zbar:arm64-android=fail mchehab-zbar:arm64-linux=fail mchehab-zbar:x64-android=fail mdl-sdk:arm64-linux=fail mecab:arm64-windows-static-md=skip mecab:arm64-windows=skip mecab:x64-linux=skip mecab:x64-windows-release=skip mecab:x64-windows-static-md=skip mecab:x64-windows-static=skip mecab:x64-windows=skip mecab:x86-windows=skip memorymodule:arm-neon-android=fail memorymodule:arm64-android=fail memorymodule:x64-android=fail mesa:arm-neon-android=fail # Missing dependent libraries. mesa:arm64-android=fail mesa:arm64-linux=fail mesa:arm64-osx=fail mesa:x64-linux=fail metrohash:arm64-linux=fail minifb:arm-neon-android=fail minifb:arm64-android=fail minifb:x64-android=fail miniply:arm-neon-android=fail minisat-master-keying:arm64-linux=fail monkeys-audio:arm-neon-android=fail monkeys-audio:arm64-android=fail monkeys-audio:arm64-windows-static-md=fail monkeys-audio:arm64-windows=fail monkeys-audio:x64-android=fail monkeys-audio:x64-windows-static=fail moos-core:arm-neon-android=fail moos-core:arm64-android=fail moos-core:x64-android=fail moos-core:x64-windows-static=fail moos-essential:arm64-windows-static-md=fail moos-essential:arm64-windows=fail moos-essential:x64-windows-release=fail moos-essential:x64-windows-static-md=fail moos-essential:x64-windows=fail moos-essential:x86-windows=fail morcules-swiftnet:arm64-linux=fail mpir:arm64-windows-static-md=skip # mpir conflicts with gmp, see https://github.com/microsoft/vcpkg/issues/11756 mpir:arm64-windows=skip mpir:x64-android=fail mpir:x64-linux=skip mpir:x64-windows-release=skip mpir:x64-windows-static-md=skip mpir:x64-windows-static=skip mpir:x64-windows=skip mpir:x86-windows=skip ms-gdkx:x64-windows-release=fail # ms-gdkx require the Microsoft GDK with Xbox Extensions which is not installed on the CI pipeline machines ms-gdkx:x64-windows-static-md=fail ms-gdkx:x64-windows-static=fail ms-gdkx:x64-windows=fail msquic:arm-neon-android=fail msquic:arm64-android=fail msquic:arm64-linux=fail msquic:x64-android=fail mysql-connector-cpp:arm64-linux=fail nana:arm-neon-android=fail nana:arm64-android=fail nana:arm64-linux=fail nana:arm64-osx=fail nana:x64-android=fail nana:x64-linux=fail nanodbc:x64-linux=skip neko-network:arm64-linux=fail neoslippi:arm64-linux=fail netcdf-cxx4:arm64-windows-static-md=fail netcdf-cxx4:x64-windows-static-md=fail nethost:arm64-linux=fail ngspice:x64-android=fail ngspice:x64-windows-static=fail nifticlib:arm64-linux=fail nrf-ble-driver:arm-neon-android=fail nrf-ble-driver:arm64-android=fail nrf-ble-driver:arm64-linux=fail nrf-ble-driver:x64-android=fail nss:arm64-linux=fail octave:arm64-osx=fail ogdf:arm64-linux=fail ogre-next:arm-neon-android=fail # std::string issue, https://github.com/microsoft/vcpkg/pull/41293#issuecomment-2942853561 ogre-next:arm64-android=fail ogre-next:arm64-linux=fail ogre-next:x64-android=fail ois:x64-android=fail omniorb:arm-neon-android=fail omniorb:arm64-android=fail omniorb:arm64-linux=fail omniorb:x64-android=fail onnxruntime:x64-linux=fail onnxruntime:x64-windows-release=fail onnxruntime:x64-windows=fail openal-soft:arm64-linux=fail openblas:arm64-linux=fail openblas:x64-windows-static-md=pass openblas:x64-windows-static=pass opencc:x64-android=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected openldap:arm64-linux=fail openmama:arm64-windows-static-md=fail openmama:x64-windows-static-md=fail openmesh:arm64-windows-static-md=fail openmesh:arm64-windows=fail openmpi:arm-neon-android=fail openmpi:arm64-android=fail openmpi:x64-android=fail openmvg:arm64-windows-static-md=fail openmvg:arm64-windows=fail openmvs:arm64-windows-static-md=fail # no _M_ARM64 detection openmvs:arm64-windows=fail # no _M_ARM64 detection openslide:x64-windows-release=fail # MSVC is not supported openslide:x64-windows=fail opensubdiv:x64-android=fail openvino:arm64-android=skip # conflicts with kleidiai, also incorrect use of arm64 intrinsics in in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types- openvino:arm64-linux=skip openvino:arm64-osx=skip # conflicts with kleidiai openvino:arm64-windows-static-md=fail openvino:arm64-windows=fail openvr:x64-windows-static=fail openxr-loader:arm64-linux=fail openzl:arm64-windows-static-md=fail openzl:arm64-windows=fail openzl:x64-windows-release=fail openzl:x64-windows-static-md=fail openzl:x64-windows-static=fail openzl:x64-windows=fail orange-math:arm64-linux=fail orc:arm-neon-android=fail orc:arm64-android=fail orc:arm64-linux=fail orc:x64-android=fail orefkov-simstr:arm64-linux=fail osg:arm64-linux=fail paraview:arm64-windows-static-md=fail paraview:arm64-windows=fail pcapplusplus:arm64-linux=fail pfring:arm64-linux=fail pipewire:arm64-linux=fail plib:arm-neon-android=fail plib:arm64-android=fail plib:x64-android=fail pmdk:x64-android=fail pmdk:x64-windows-static=fail projectm:arm64-linux=fail python2:arm-neon-android=fail python2:arm64-android=fail python2:arm64-linux=fail python2:x64-android=fail qt-advanced-docking-system:arm-neon-android=fail qt-advanced-docking-system:arm64-android=fail qt-advanced-docking-system:x64-android=fail qt5-base:arm-neon-android=fail qt5-base:arm64-android=fail qt5-base:arm64-windows-static-md=fail qt5-base:arm64-windows=fail qt5-base:x64-android=fail qt5-webengine:x64-windows-release=skip # Skipped to avoid exceeding the 48 hour time limit in CI, May also need an older ninja version qt5-webengine:x64-windows=skip qt5-webengine:x86-windows=skip qt5-x11extras:arm64-osx=skip # Missing system libraries qtmultimedia:arm64-android=fail qtopcua:arm-neon-android=fail qtopcua:arm64-android=fail qtopcua:x64-android=fail qtwayland:arm64-osx=skip # Missing system libraries quickfix:arm-neon-android=fail quickfix:arm64-android=fail quickfix:arm64-linux=fail quickjs-ng:arm64-linux=fail realm-core:arm-neon-android=fail # https://github.com/realm/realm-core/issues/8093 realm-core:arm64-android=fail realm-core:x64-android=fail rendergraph:arm64-linux=fail restbed:arm-neon-android=fail restbed:arm64-android=fail restbed:arm64-linux=fail rpclib:arm64-windows-static-md=fail rpclib:arm64-windows=fail rtmidi:arm-neon-android=fail rtmidi:arm64-android=fail rtmidi:x64-android=fail salome-medcoupling:x64-linux=fail saucer:arm64-osx=fail # std::move_only_function is not supported saucer:x64-linux=fail # requires gcc14 or later sdl1:arm64-linux=fail sentry-native:arm64-linux=fail septag-sx:x64-android=fail sfgui:arm-neon-android=fail sfgui:arm64-android=fail sfgui:x64-android=fail sfml:arm64-linux=fail shaderwriter:arm64-linux=fail simbody:arm64-windows-static-md=fail simbody:arm64-windows=fail simd:arm-neon-android=fail simd:arm64-android=fail simd:arm64-linux=fail simd:x64-android=fail sleef:arm64-linux=fail sleef:x86-windows=fail sleepy-discord:arm-neon-android=fail # std::string issue, https://github.com/microsoft/vcpkg/pull/41293#issuecomment-2942853561 sleepy-discord:arm64-android=fail sleepy-discord:x64-android=fail slikenet:arm-neon-android=fail slikenet:arm64-android=fail slikenet:arm64-linux=fail slikenet:x64-android=fail soem:arm-neon-android=fail soem:arm64-android=fail soem:x64-android=fail soil:arm-neon-android=fail soil:arm64-android=fail soil:x64-android=fail soil2:arm64-linux=fail sonivox:arm64-linux=fail spaceland:arm64-android=fail spaceland:arm64-windows-static-md=fail spaceland:arm64-windows=fail spaceland:x64-android=fail spatialite-tools:arm64-linux=fail spscqueue:arm-neon-android=fail spscqueue:arm64-android=fail spscqueue:x64-android=fail squirrel:arm64-linux=fail suitesparse-graphblas:x86-windows=fail # _Interlocked* intrinsic functions are not available on x86 supernovas:arm64-linux=fail tdlib:arm64-linux=fail tdscpp:arm64-linux=fail telnetpp:arm-neon-android=fail telnetpp:arm64-android=fail telnetpp:x64-android=fail tensorflow:arm64-osx=skip # tensorflow is broken with system libraries on macOS 13.5, also skipping because our macOS machines are relatively underpowered and this saves 8 hours of CI time for a relatively unpopular library / system combo. tensorflow:x64-android=skip # tensorflow does not support VS2022 tensorflow:x64-linux=skip # Building tensorflow inside docker fails with FATAL: $USER is not set, and unable to look up name of current user: (error: 0): Success tensorflow:x64-windows-release=skip tensorflow:x64-windows-static-md=skip tensorflow:x64-windows-static=skip tensorflow:x64-windows=skip tensorflow-cc:arm64-osx=skip tensorflow-cc:x64-android=skip tensorflow-cc:x64-linux=skip tensorflow-cc:x64-windows-release=skip tensorflow-cc:x64-windows-static-md=skip tensorflow-cc:x64-windows-static=skip tensorflow-cc:x64-windows=skip tgui:arm-neon-android=fail tgui:arm64-android=fail tgui:x64-android=fail tinycthread:arm-neon-android=fail tinycthread:arm64-android=fail tinycthread:x64-android=fail torch-th:arm64-windows-static-md=fail torch-th:arm64-windows=fail torch-th:x64-windows-static=fail usd:x64-windows-static=skip # Proper support for a true static usd build is left as a future port improvement. It probably require fiddling with its monolithic mode. v8:x64-android=fail # the version of v8 we have in the repo doesn't support VS2022 v8:x64-windows-release=fail v8:x64-windows-static-md=fail v8:x64-windows-static=fail v8:x64-windows=fail v8:x86-windows=fail vcpkg-ci-box2d:arm64-linux=fail vcpkg-ci-podofo:arm64-linux=fail vectorscan:arm64-linux=fail vsgqt:arm-neon-android=fail # https://github.com/vsg-dev/vsgQt/pull/53 vsgqt:arm64-android=fail vsgqt:x64-android=fail vst3sdk:arm64-linux=fail vulkan-tools:arm64-linux=fail vulkan-validationlayers:arm64-linux=fail wasmedge:arm-neon-android=fail wcslib:arm64-linux=fail wiiuse:arm64-linux=fail winpcap:x64-windows-release=skip # Collides with libpcap -> similar headers winpcap:x64-windows=skip winpcap:x86-windows=skip wordnet:arm-neon-android=fail wordnet:arm64-android=fail wordnet:x64-android=fail wpilib:arm-neon-android=fail # requires full c++20 support, ignore `wpilib` build errors until upgrade to a new release version wpilib:arm64-android=fail # requires full c++20 support wpilib:arm64-linux=fail wpilib:arm64-osx=fail wpilib:arm64-windows-static-md=fail wpilib:arm64-windows=fail wpilib:x64-android=fail # requires full c++20 support wpilib:x64-linux=fail wpilib:x64-windows-release=fail wpilib:x64-windows-static-md=fail wpilib:x64-windows-static=fail wpilib:x64-windows=fail wpilib:x86-windows=fail xbitmaps:arm-neon-android=fail # No xorg-macros available on osx xbitmaps:arm64-android=fail xbitmaps:arm64-linux=fail xbitmaps:arm64-osx=skip xbitmaps:x64-android=fail xbitmaps:x64-linux=fail xdigest:arm64-linux=fail yara:arm64-linux=fail z3:arm64-linux=fail zeroc-ice:arm-neon-android=fail zeroc-ice:arm64-android=fail zeroc-ice:arm64-linux=fail zeroc-ice:x64-android=fail zimpl:arm64-linux=fail zookeeper:arm64-linux=fail zookeeper:arm64-osx=fail # Needs Java runtime zookeeper:arm64-windows-static-md=fail zookeeper:arm64-windows=fail zookeeper:x64-linux=fail zookeeper:x64-windows-release=fail zookeeper:x64-windows-static-md=fail zookeeper:x64-windows-static=fail zookeeper:x64-windows=fail zookeeper:x86-windows=fail # Ports which needs to pass in CI cmake:arm64-osx=pass cmake:arm64-windows-static-md=pass cmake:arm64-windows=pass cmake:x64-linux=pass cmake:x64-windows-release=pass cmake:x64-windows-static-md=pass cmake:x64-windows-static=pass cmake:x64-windows=pass cmake-user:arm-neon-android=pass cmake-user:arm64-android=pass cmake-user:arm64-windows-static-md=pass cmake-user:arm64-windows=pass cmake-user:x64-android=pass cmake-user:x64-linux=pass cmake-user:x64-windows-release=pass cmake-user:x64-windows-static-md=pass cmake-user:x64-windows-static=pass cmake-user:x64-windows=pass cmake-user:x86-windows=pass gtk:arm64-osx=pass gtk:x64-linux=pass gtk:x64-windows-release=pass gtk:x64-windows-static-md=pass gtk:x64-windows=pass gtk:x86-windows=pass qt:arm64-osx=pass qt:arm64-windows-static-md=pass qt:arm64-windows=pass qt:x64-linux=pass qt:x64-windows-release=pass qt:x64-windows-static-md=pass qt:x64-windows-static=pass qt:x64-windows=pass qtbase:arm-neon-android=pass # qt:*-android=pass : qtmultimedia, qtquick3d, qtwayland fail qtbase:arm64-android=pass qtbase:x64-android=pass vcpkg-ci-arrow:arm64-linux=pass vcpkg-ci-arrow:x64-linux=pass vcpkg-ci-arrow:x64-windows-release=pass vcpkg-ci-arrow:x64-windows-static-md=pass vcpkg-ci-arrow:x64-windows-static=pass vcpkg-ci-arrow:x64-windows=pass vcpkg-ci-aurora-au:arm64-linux=pass vcpkg-ci-aurora-au:x64-linux=pass vcpkg-ci-blas:arm64-android=pass # openblas vcpkg-ci-blas:arm64-osx=pass # accelerate framework vcpkg-ci-blas:arm64-windows-static-md=pass # openblas vcpkg-ci-blas:arm64-windows=pass # openblas vcpkg-ci-blas:x64-linux=pass # openblas vcpkg-ci-blas:x64-windows-release=pass # openblas vcpkg-ci-blas:x64-windows-static-md=pass # openblas vcpkg-ci-blas:x64-windows-static=pass # openblas vcpkg-ci-blas:x64-windows=pass # openblas vcpkg-ci-blas:x86-windows=pass # openblas vcpkg-ci-boost:arm-neon-android=pass vcpkg-ci-boost:arm64-android=pass vcpkg-ci-boost:arm64-windows-static-md=pass vcpkg-ci-boost:arm64-windows=pass vcpkg-ci-boost:x64-android=pass vcpkg-ci-boost:x64-linux=pass vcpkg-ci-boost:x64-windows-release=pass vcpkg-ci-boost:x64-windows-static-md=pass vcpkg-ci-boost:x64-windows-static=pass vcpkg-ci-boost:x64-windows=pass vcpkg-ci-boost:x86-windows=pass vcpkg-ci-cblas:arm64-android=pass vcpkg-ci-cblas:arm64-osx=pass vcpkg-ci-cblas:arm64-windows-static-md=pass vcpkg-ci-cblas:arm64-windows=pass vcpkg-ci-cblas:x64-linux=pass vcpkg-ci-cblas:x64-windows-release=pass vcpkg-ci-cblas:x64-windows-static-md=pass vcpkg-ci-cblas:x64-windows-static=pass vcpkg-ci-cblas:x64-windows=pass vcpkg-ci-cblas:x86-windows=pass vcpkg-ci-curl:arm-neon-android=pass vcpkg-ci-curl:arm64-android=pass vcpkg-ci-curl:arm64-linux=pass vcpkg-ci-curl:arm64-osx=pass vcpkg-ci-curl:arm64-windows-static-md=pass vcpkg-ci-curl:arm64-windows=pass vcpkg-ci-curl:x64-android=pass vcpkg-ci-curl:x64-linux=pass vcpkg-ci-curl:x64-windows-release=pass vcpkg-ci-curl:x64-windows-static-md=pass vcpkg-ci-curl:x64-windows-static=pass vcpkg-ci-curl:x64-windows=pass vcpkg-ci-curl:x86-windows=pass vcpkg-ci-duckdb:arm-neon-android=pass vcpkg-ci-duckdb:arm64-android=pass vcpkg-ci-duckdb:arm64-osx=pass vcpkg-ci-duckdb:arm64-windows-static-md=pass vcpkg-ci-duckdb:arm64-windows=pass vcpkg-ci-duckdb:x64-android=pass vcpkg-ci-duckdb:x64-linux=pass vcpkg-ci-duckdb:x64-windows-release=pass vcpkg-ci-duckdb:x64-windows-static-md=pass vcpkg-ci-duckdb:x64-windows-static=pass vcpkg-ci-duckdb:x64-windows=pass vcpkg-ci-duckdb:x86-windows=pass vcpkg-ci-ffmpeg:arm-neon-android=pass vcpkg-ci-ffmpeg:arm64-android=pass vcpkg-ci-ffmpeg:arm64-osx=pass vcpkg-ci-ffmpeg:arm64-windows-static-md=pass vcpkg-ci-ffmpeg:arm64-windows=pass vcpkg-ci-ffmpeg:x64-android=pass vcpkg-ci-ffmpeg:x64-linux=pass vcpkg-ci-ffmpeg:x64-windows-release=pass vcpkg-ci-ffmpeg:x64-windows-static-md=pass vcpkg-ci-ffmpeg:x64-windows-static=pass vcpkg-ci-ffmpeg:x64-windows=pass vcpkg-ci-ffmpeg:x86-windows=pass vcpkg-ci-freerdp:arm-neon-android=pass vcpkg-ci-freerdp:arm64-android=pass vcpkg-ci-freerdp:arm64-osx=pass vcpkg-ci-freerdp:arm64-windows-release=pass vcpkg-ci-freerdp:arm64-windows-static-md=pass vcpkg-ci-freerdp:arm64-windows=pass vcpkg-ci-freerdp:x64-android=pass vcpkg-ci-freerdp:x64-linux=pass vcpkg-ci-freerdp:x64-windows-release=pass vcpkg-ci-freerdp:x64-windows-static-md=pass vcpkg-ci-freerdp:x64-windows-static=pass vcpkg-ci-freerdp:x64-windows=pass vcpkg-ci-freerdp:x86-windows=pass vcpkg-ci-gdal:arm-neon-android=pass vcpkg-ci-gdal:arm64-android=pass vcpkg-ci-gdal:arm64-linux=pass vcpkg-ci-gdal:arm64-osx=pass vcpkg-ci-gdal:arm64-windows-static-md=pass vcpkg-ci-gdal:arm64-windows=pass vcpkg-ci-gdal:x64-android=pass vcpkg-ci-gdal:x64-linux=pass vcpkg-ci-gdal:x64-windows-release=pass vcpkg-ci-gdal:x64-windows-static-md=pass vcpkg-ci-gdal:x64-windows-static=pass vcpkg-ci-gdal:x64-windows=pass vcpkg-ci-gdal:x86-windows=pass vcpkg-ci-itk:arm64-osx=pass vcpkg-ci-itk:x64-linux=pass vcpkg-ci-itk:x64-windows-release=pass vcpkg-ci-itk:x64-windows-static-md=pass vcpkg-ci-itk:x64-windows-static=pass vcpkg-ci-itk:x64-windows=pass vcpkg-ci-itk:x86-windows=pass vcpkg-ci-lapack:arm64-osx=pass vcpkg-ci-lapack:arm64-windows-static-md=pass vcpkg-ci-lapack:arm64-windows=pass vcpkg-ci-lapack:x64-linux=pass vcpkg-ci-lapack:x64-windows-release=pass vcpkg-ci-lapack:x64-windows-static-md=pass vcpkg-ci-lapack:x64-windows-static=pass vcpkg-ci-lapack:x64-windows=pass vcpkg-ci-lapack:x86-windows=pass # lapack-reference vcpkg-ci-libigl:arm-neon-android=pass vcpkg-ci-libigl:arm64-android=pass vcpkg-ci-libigl:arm64-osx=pass vcpkg-ci-libigl:arm64-windows-static-md=pass vcpkg-ci-libigl:arm64-windows=pass vcpkg-ci-libigl:x64-android=pass vcpkg-ci-libigl:x64-linux=pass vcpkg-ci-libigl:x64-windows-release=pass vcpkg-ci-libigl:x64-windows-static-md=pass vcpkg-ci-libigl:x64-windows-static=pass vcpkg-ci-libigl:x64-windows=pass vcpkg-ci-libigl:x86-windows=pass vcpkg-ci-llvm:x64-linux=pass vcpkg-ci-llvm:x64-windows-release=pass vcpkg-ci-llvm:x64-windows-static-md=pass vcpkg-ci-llvm:x64-windows-static=pass vcpkg-ci-llvm:x64-windows=pass vcpkg-ci-llvm:x86-windows=pass vcpkg-ci-lua:arm64-linux=fail vcpkg-ci-mathgl:x64-linux=pass vcpkg-ci-mathgl:x64-windows-release=pass vcpkg-ci-mathgl:x64-windows-static-md=pass vcpkg-ci-mathgl:x64-windows-static=pass vcpkg-ci-mathgl:x64-windows=pass vcpkg-ci-mathgl:x86-windows=pass vcpkg-ci-opencv:arm-neon-android=pass vcpkg-ci-opencv:arm64-android=pass vcpkg-ci-opencv:arm64-osx=pass vcpkg-ci-opencv:arm64-windows-static-md=pass vcpkg-ci-opencv:arm64-windows=pass vcpkg-ci-opencv:x64-android=pass vcpkg-ci-opencv:x64-linux=pass vcpkg-ci-opencv:x64-windows-release=pass vcpkg-ci-opencv:x64-windows-static-md=pass vcpkg-ci-opencv:x64-windows-static=pass vcpkg-ci-opencv:x64-windows=pass vcpkg-ci-opencv:x86-windows=pass vcpkg-ci-openimageio:x64-windows-release=pass vcpkg-ci-openimageio:x64-windows-static-md=pass vcpkg-ci-openimageio:x64-windows-static=pass vcpkg-ci-openimageio:x64-windows=pass vcpkg-ci-openimageio:x86-windows=pass vcpkg-ci-paraview:arm64-osx=pass vcpkg-ci-paraview:x64-linux=pass vcpkg-ci-paraview:x64-windows-release=pass vcpkg-ci-paraview:x64-windows-static-md=pass vcpkg-ci-paraview:x64-windows-static=pass vcpkg-ci-paraview:x64-windows=pass vcpkg-ci-paraview:x86-windows=pass vcpkg-ci-skia:arm-neon-android=pass vcpkg-ci-skia:arm64-android=pass vcpkg-ci-skia:arm64-windows-static-md=pass vcpkg-ci-skia:arm64-windows=pass vcpkg-ci-skia:x64-android=pass vcpkg-ci-skia:x64-linux=pass vcpkg-ci-skia:x64-windows-release=pass vcpkg-ci-skia:x64-windows-static-md=pass vcpkg-ci-skia:x64-windows-static=pass vcpkg-ci-skia:x64-windows=pass vcpkg-ci-skia:x86-windows=pass vcpkg-ci-soci:x64-linux=pass vcpkg-ci-soci:x64-windows-release=pass vcpkg-ci-soci:x64-windows-static-md=pass vcpkg-ci-soci:x64-windows-static=pass vcpkg-ci-soci:x64-windows=pass vcpkg-ci-sqlpp11:arm-neon-android=pass vcpkg-ci-sqlpp11:arm64-android=pass vcpkg-ci-sqlpp11:arm64-linux=pass vcpkg-ci-sqlpp11:arm64-osx=pass vcpkg-ci-sqlpp11:arm64-windows-static-md=pass vcpkg-ci-sqlpp11:arm64-windows=pass vcpkg-ci-sqlpp11:x64-android=pass vcpkg-ci-sqlpp11:x64-linux=pass vcpkg-ci-sqlpp11:x64-windows-release=pass vcpkg-ci-sqlpp11:x64-windows-static-md=pass vcpkg-ci-sqlpp11:x64-windows-static=pass vcpkg-ci-sqlpp11:x64-windows=pass vcpkg-ci-sqlpp11:x86-windows=pass vcpkg-ci-vxl:arm-neon-android=pass vcpkg-ci-vxl:arm64-android=pass vcpkg-ci-vxl:arm64-linux=pass vcpkg-ci-vxl:arm64-osx=pass vcpkg-ci-vxl:arm64-windows-static-md=pass vcpkg-ci-vxl:arm64-windows=pass vcpkg-ci-vxl:x64-android=pass vcpkg-ci-vxl:x64-linux=pass vcpkg-ci-vxl:x64-windows-release=pass vcpkg-ci-vxl:x64-windows-static-md=pass vcpkg-ci-vxl:x64-windows-static=pass vcpkg-ci-vxl:x64-windows=pass vcpkg-ci-vxl:x86-windows=pass vcpkg-ci-wxwidgets:arm64-osx=pass vcpkg-ci-wxwidgets:arm64-windows-static-md=pass vcpkg-ci-wxwidgets:arm64-windows=pass vcpkg-ci-wxwidgets:x64-linux=pass vcpkg-ci-wxwidgets:x64-windows-release=pass vcpkg-ci-wxwidgets:x64-windows-static-md=pass vcpkg-ci-wxwidgets:x64-windows-static=pass vcpkg-ci-wxwidgets:x64-windows=pass vcpkg-ci-wxwidgets:x86-windows=pass zookeeper:arm-neon-android=pass zookeeper:arm64-android=pass zookeeper:x64-android=pass ================================================ FILE: scripts/ci.feature.baseline.txt ================================================ ########################################################################### ## This file defines the current expected build state of ports in CI. ## ## States ## The following states can be specified for a port: ## If a port is missing from this file then it is assumed ## to build successfully. ## fail - The port build is expected to fail in the CI system. ## This is not necessarily the same as if a port is expected to build ## on a developers machine because it may fail due to the machine ## configuration. ## skip - Do not build this port in the CI system. ## This is added to ports that may be flaky or conflict with other ## ports. Please comment for why a port is skipped so it can be ## removed when the issue is resolved. ## cascade - The port depends on a port that fails or is excluded by a supports ## expression of a dependency but the port itself states that it can be build. ## This is added to ports to detect "hidden" not tested ports. ## ## Additional States can be specified for specific features: ## feature-fails - The listed feature do not build. They are therefore excluded ## from the "combined" feature test because it would ## simply fail too. ## combination-fails - The listed combination of features will fail to build. ## skip - The listed features are not tested in the CI system. ## cascade - The listed features are cascading. ## no-separate-feature-test - The listed features are not tested in the "separate" feature test. ## options - The listed features are mutually exclusive and can not be selected together. ## The first feature in the list is added to every test combination. Use the `core` ## feature as first one to add no feature to every test combination. ## ## You could select ports by triplet or supports expression: ## curl[wchar]:arm64-osx=feature-fails # the wchar feature does not work on !windows ## curl[wchar](!windows)=feature-fails # Using support expressions is often shorter than listing all triplets ## ## Examples: ## qt3d[extras]=options # extras will be always added to the test combination (it is currently a requirement) ## curl[core,openssl,wolfssl]=options # openssl and wolfssl are exclusive ssl backends but none must be selected ## libgit2[pcre,pcre2]=options # you have to select pcre xor pcre2 ## ## libcanberra[gtk3](osx)=combination-fails # The feature works in the "combined" feature test ## vlpp[tools](osx)=feature-fails # error: use of undeclared identifier 'PATH_MAX' ## ## entt[experimental]=skip # required head build ## realsense2[openni2](!windows)=cascade # cpkg-tool-lessmsi[core] only supports native & windows ## ## # Testing all targets separately would be too time consuming: ## halide[target-amdgpu,target-arm,target-d3d12compute,target-hexagon,target-metal,target-mips,target-nvptx,target-opencl,target-powerpc,target-riscv,target-x86]=no-separate-feature-test # testing all features would be too slow: aws-sdk-cpp[access-management,accessanalyzer,account,acm,acm-pca,alexaforbusiness,amp,amplify,amplifybackend,amplifyuibuilder,apigateway,apigatewaymanagementapi,apigatewayv2,appconfig,appconfigdata,appfabric,appflow,appintegrations,application-autoscaling,application-insights,applicationcostprofiler,appmesh,apprunner,appstream,appsync,arc-zonal-shift,athena,auditmanager,autoscaling,autoscaling-plans,awsmigrationhub,awstransfer,backup,backup-gateway,backupstorage,batch,billingconductor,braket,budgets,ce,chime,chime-sdk-identity,chime-sdk-media-pipelines,chime-sdk-meetings,chime-sdk-messaging,chime-sdk-voice,cleanrooms,cloud9,cloudcontrol,clouddirectory,cloudformation,cloudfront,cloudhsm,cloudhsmv2,cloudsearch,cloudsearchdomain,cloudtrail,cloudtrail-data,codeartifact,codebuild,codecatalyst,codecommit,codedeploy,codeguru-reviewer,codeguru-security,codeguruprofiler,codepipeline,codestar,codestar-connections,codestar-notifications,cognito-identity,cognito-idp,cognito-sync,comprehend,comprehendmedical,compute-optimizer,config,connect,connect-contact-lens,connectcampaigns,connectcases,connectparticipant,controltower,cur,customer-profiles,databrew,dataexchange,datapipeline,datasync,dax,detective,devicefarm,devops-guru,directconnect,discovery,dlm,dms,docdb,docdb-elastic,drs,ds,dynamodb,dynamodbstreams,ebs,ec2,ec2-instance-connect,ecr,ecr-public,ecs,eks,elastic-inference,elasticache,elasticbeanstalk,elasticfilesystem,elasticloadbalancing,elasticloadbalancingv2,elasticmapreduce,elastictranscoder,email,emr-containers,emr-serverless,entityresolution,es,eventbridge,events,evidently,finspace,finspace-data,firehose,fis,fms,forecast,forecastquery,frauddetector,fsx,gamelift,gamesparks,glacier,globalaccelerator,glue,grafana,greengrass,greengrassv2,groundstation,guardduty,health,healthlake,honeycode,iam,identity-management,identitystore,imagebuilder,importexport,inspector,inspector2,internetmonitor,iot,iot-data,iot-jobs-data,iot-roborunner,iot1click-devices,iot1click-projects,iotanalytics,iotdeviceadvisor,iotevents,iotevents-data,iotfleethub,iotfleetwise,iotsecuretunneling,iotsitewise,iotthingsgraph,iottwinmaker,iotwireless,ivs,ivs-realtime,ivschat,kafka,kafkaconnect,kendra,kendra-ranking,keyspaces,kinesis,kinesis-video-archived-media,kinesis-video-media,kinesis-video-signaling,kinesis-video-webrtc-storage,kinesisanalytics,kinesisanalyticsv2,kinesisvideo,kms,lakeformation,lambda,lex,lex-models,lexv2-models,lexv2-runtime,license-manager,license-manager-linux-subscriptions,license-manager-user-subscriptions,lightsail,location,logs,lookoutequipment,lookoutmetrics,lookoutvision,m2,machinelearning,macie,macie2,managedblockchain,managedblockchain-query,marketplace-catalog,marketplace-entitlement,marketplacecommerceanalytics,mediaconnect,mediaconvert,medialive,mediapackage,mediapackage-vod,mediapackagev2,mediastore,mediastore-data,mediatailor,medical-imaging,memorydb,meteringmarketplace,mgn,migration-hub-refactor-spaces,migrationhub-config,migrationhuborchestrator,migrationhubstrategy,mobile,monitoring,mq,mturk-requester,mwaa,neptune,neptunedata,network-firewall,networkmanager,nimble,oam,omics,opensearch,opensearchserverless,opsworks,opsworkscm,organizations,osis,outposts,panorama,payment-cryptography,payment-cryptography-data,pca-connector-ad,personalize,personalize-events,personalize-runtime,pi,pinpoint,pinpoint-email,pinpoint-sms-voice-v2,pipes,polly,pricing,privatenetworks,proton,qldb,qldb-session,queues,quicksight,ram,rbin,rds,rds-data,redshift,redshift-data,redshift-serverless,rekognition,resiliencehub,resource-explorer-2,resource-groups,resourcegroupstaggingapi,robomaker,rolesanywhere,route53,route53-recovery-cluster,route53-recovery-control-config,route53-recovery-readiness,route53domains,route53resolver,rum,s3,s3-crt,s3-encryption,s3control,s3outposts,sagemaker,sagemaker-a2i-runtime,sagemaker-edge,sagemaker-featurestore-runtime,sagemaker-geospatial,sagemaker-metrics,sagemaker-runtime,savingsplans,scheduler,schemas,sdb,secretsmanager,securityhub,securitylake,serverlessrepo,service-quotas,servicecatalog,servicecatalog-appregistry,servicediscovery,sesv2,shield,signer,simspaceweaver,sms,sms-voice,snow-device-management,snowball,sns,sqs,ssm,ssm-contacts,ssm-incidents,ssm-sap,sso,sso-admin,sso-oidc,states,storagegateway,sts,support,support-app,swf,synthetics,text-to-speech,textract,timestream-query,timestream-write,tnb,transcribe,transcribestreaming,transfer,translate,verifiedpermissions,voice-id,vpc-lattice,waf,waf-regional,wafv2,wellarchitected,wisdom,workdocs,worklink,workmail,workmailmessageflow,workspaces,workspaces-web,xray] =no-separate-feature-test embree[backface-culling,compact-polys,filter-function,geometry-curve,geometry-grid,geometry-instance,geometry-point,geometry-quad,geometry-subdivision,geometry-triangle,geometry-user,ray-mask,ray-packets]=no-separate-feature-test gdal[aws-ec2-windows,curl,expat,geos,gif,iconv,jpeg,lerc,libkml,libspatialite,libxml2,lzma,openjpeg,openssl,pcre2,png,qhull,sqlite3,webp,zstd]=no-separate-feature-test google-cloud-cpp[accessapproval,accesscontextmanager,advisorynotifications,alloydb,apigateway,apigeeconnect,apikeys,appengine,artifactregistry,asset,assuredworkloads,automl,baremetalsolution,batch,beyondcorp,bigquery,bigtable,billing,binaryauthorization,certificatemanager,channel,cloudbuild,commerce,composer,confidentialcomputing,connectors,contactcenterinsights,container,containeranalysis,datacatalog,datafusion,datamigration,dataplex,dataproc,datastore,datastream,debugger,deploy,dialogflow-cx,dialogflow-es,discoveryengine,dlp,documentai,edgecontainer,eventarc,experimental-opentelemetry,experimental-storage-grpc,filestore,functions,gameservices,gkehub,gkemulticloud,grafeas,iam,iap,ids,iot,kms,language,logging,managedidentities,memcache,metastore,migrationcenter,monitoring,networkconnectivity,networkmanagement,networksecurity,notebooks,optimization,orgpolicy,osconfig,oslogin,policysimulator,policytroubleshooter,privateca,profiler,pubsub,rapidmigrationassessment,recommender,redis,resourcemanager,resourcesettings,retail,run,scheduler,secretmanager,securitycenter,servicecontrol,servicedirectory,servicemanagement,serviceusage,shell,spanner,speech,storage,storageinsights,storagetransfer,support,talent,tasks,texttospeech,tpu,trace,translate,video,videointelligence,vision,vmmigration,vmwareengine,vpcaccess,webrisk,websecurityscanner,workflows,workstations]=no-separate-feature-test halide=skip llvm=skip opencascade[freeimage,freetype,rapidjson,samples,tbb,vtk]=no-separate-feature-test opencv[ade,aravis,calib3d,contrib,cuda,cudnn,dc1394,directml,dnn,dnn-cuda,dshow,eigen,ffmpeg,freetype,fs,gapi,gdcm,gstreamer,gtk,halide,hdf,highgui,intrinsics,ipp,jpeg,jpegxl,msmf,nonfree,opencl,openexr,opengl,openjpeg,openmp,openvino,ovis,png,python,qt,quality,quirc,rgbd,sfm,tbb,text,thread,tiff,vtk,vulkan,webp,win32ui,world]=no-separate-feature-test qtbase[doubleconversion,gui,sql,thread]=no-separate-feature-test # covered in many combinations vtk[atlmfc,cgns,cuda,debugleaks,fontconfig,gdal,geojson,libharu,libtheora,mpi,netcdf,opengl,openmp,openvr,proj,qt,seacas,sql,tbb,utf8,vtkm]=no-separate-feature-test # Add new items alphabetically ace[tao]:arm-neon-android=feature-fails # tao requires a host tree with tao_idl compiled for the host ace[tao]:arm64-android=feature-fails ace[tao]:x64-android=feature-fails ace[xml-utils]:arm64-linux=cascade ace[xml-utils]:arm64-osx=cascade ace[xml-utils]:x64-linux=cascade activemq-cpp:arm64-linux=cascade activemq-cpp:arm64-windows=cascade adios2:arm64-linux=cascade adios2[cuda]:arm64-osx=cascade adios2[cuda]:x64-windows-static=feature-fails # try_run() invoked in cross-compiling mode adios2[cuda]:x86-windows=cascade adios2[mpi]:x86-windows=feature-fails adios2[python](!(arm64&linux))=feature-fails # Could NOT find Python (missing: Python_NumPy_INCLUDE_DIRS NumPy) adios2[zfp](android | (arm & windows))=feature-fails # try_run() invoked in cross-compiling mode aeron[archive]=skip # archive feature requires Java for SBE code generation aliyun-oss-c-sdk:arm64-windows=cascade aliyun-oss-cpp-sdk:arm64-linux=fail allegro5:arm64-linux=cascade allegro5:arm64-windows=fail # Fails with "fatal error LNK1322: cannot avoid potential ARM hazard" even with /Gy ampl-asl:arm64-linux=fail ampl-mp:arm64-linux=cascade anari:arm64-linux=cascade appstream-glib:arm64-linux=cascade apr:arm-neon-android=fail apr:arm64-android=fail apr:arm64-linux=fail apr:x64-android=fail apr-util:arm64-linux=cascade aravis[introspection]:arm64-windows=skip # needs arm64 host aravis[usb]:arm64-linux=cascade arcticdb-sparrow:arm-neon-android=fail # https://github.com/man-group/sparrow/issues/653 arcticdb-sparrow:arm64-android=fail arcticdb-sparrow:x64-android=fail armadillo:arm-neon-android=cascade armadillo:arm64-android=cascade armadillo:arm64-linux=cascade armadillo:x64-android=cascade arpack-ng:arm64-linux=cascade arpack-ng:arm64-windows=cascade arrayfire:x64-android=fail # CMake Error at CMakeLists.txt:140 (message): Native Directory not found. Run cmake in a separatedirectory and build the bin2cpp target. arrayfire[cpu]((!windows & !linux) | !x64)=cascade arrayfire[cuda]:arm64-linux=feature-fails arrayfire[cuda]:x64-linux=feature-fails arrayfire[cuda]:x64-windows-release=feature-fails arrayfire[cuda]:x64-windows-static-md=feature-fails arrayfire[cuda]:x64-windows-static=feature-fails arrayfire[cuda]:x64-windows=feature-fails arrayfire[cuda](((!windows | !x64 | xbox) & (!linux | !x64) & (!linux | !arm64)) | ((!windows | !x64) & (!linux | !x64) & (!linux | !arm64)))=cascade arrayfire[opencl]:arm64-linux=feature-fails arrayfire[opencl]:x64-linux=feature-fails arrayfire[unified]:x64-windows-static=feature-fails # ninja: error: 'MKL_ThreadingLibrary_LINK_LIBRARY-NOTFOUND', needed by 'bin/af.dll', missing and no known rule to make it arrayfire[unified]((!windows & !linux) | !x64)=cascade arrow[cuda]:arm64-linux=cascade arrow[cuda]:x64-linux=feature-fails arrow[cuda]:x64-windows-release=feature-fails arrow[cuda]:x64-windows-static-md=feature-fails arrow[cuda]:x64-windows-static=feature-fails arrow[cuda]:x64-windows=feature-fails arrow[cuda](!(windows & x64 & !xbox) & !(linux & x64) & !(linux & arm64))=cascade arrow[jemalloc]:arm64-linux=feature-fails # configure: error: cannot run C compiled programs arrow[orc]:arm64-android=cascade arrow[orc]:arm64-linux=cascade arrow[orc]:x64-android=cascade arrow-adbc[bigquery]:arm64-linux=feature-fails # Could not find GO_BIN using the following names: go arrow-adbc[flightsql]:arm64-linux=feature-fails arrow-adbc[snowflake]:arm64-linux=feature-fails ashes[core](windows)=combination-fails # CMake Error: INSTALL(EXPORT) given unknown export "AshesRenderers". One render backend must be selected asio[coroutine]:arm64-windows=cascade at-spi2-atk:arm64-linux=cascade at-spi2-core:arm64-linux=cascade atk[introspection]:arm64-windows=skip # needs arm64 host atkmm:x64-windows-static-md=cascade atkmm:x64-windows-static=cascade atliac-minitest:arm64-linux=fail audit:arm64-linux=fail awlib[graphics]:arm64-linux=cascade awlib[graphics]:arm64-osx=feature-fails # Broken code. See https://github.com/microsoft/vcpkg/issues/39849 azure-kinect-sensor-sdk:arm64-linux=cascade azure-storage-cpp:arm64-linux=fail babl[introspection]:arm64-linux=cascade bbstrader:arm64-linux=cascade bddisasm:arm64-linux=fail bext-text:arm64-linux=cascade bgfx:arm64-linux=fail bitserializer[rapidyaml-archive]:arm64-windows=cascade blaze[lapack]:arm64-linux=cascade blend2d:arm64-linux=fail blitz:arm64-windows=fail bond:arm64-linux=fail boost:arm64-linux=cascade boost[mpi]:arm64-windows=cascade boost-graph-parallel:arm64-linux=cascade boost-graph-parallel:arm64-windows=cascade boost-mpi:arm64-windows=cascade boost-odeint[mpi]:arm64-windows=cascade boost-parameter-python:arm64-linux=cascade boost-property-map-parallel:arm64-linux=cascade boost-property-map-parallel:arm64-windows=cascade boost-python:arm64-linux=cascade boost-python[python2]:arm64-osx=cascade boringssl:arm64-linux=skip caf(android)=fail cairo[x11]:arm64-linux=feature-fails cairo[x11](android | osx)=skip # No x11 on osx calceph:arm64-linux=fail ccd:arm64-linux=fail cctag:x64-windows-static-md=fail cctag[cuda]:arm64-linux=feature-fails cctag[cuda]:x64-linux=feature-fails cctag[cuda]:x64-windows-release=feature-fails cctag[cuda]:x64-windows-release=feature-fails cctag[cuda]:x64-windows-static=feature-fails cctag[cuda]:x64-windows=feature-fails ceres[cuda]:arm64-linux=cascade ceres[lapack]:arm64-linux=cascade ceres[suitesparse]:arm64-linux=cascade cgal[qt]:arm64-linux=cascade cgns[core,fortran,hdf5,legacy,lfs,mpi,tests](osx | (linux&!arm64))=combination-fails # ["fortran","hdf5","mpi"]: Could NOT find MPI (missing: MPI_Fortran_FOUND) (found version "3.1") cgns[fortran]:arm64-linux=feature-fails cgns[fortran](windows | android)=feature-fails # No fortran compiler installed cgns[hdf5]:arm64-linux=cascade cgns[mpi]:arm64-linux=cascade chakracore:arm64-linux=skip chartdir=skip # chartdir does not offer stable download URLs chmlib:arm64-linux=fail chronoengine:arm64-linux=fail clamav:arm64-windows=fail clapack:arm64-linux=skip clapack:arm64-osx=skip clapack:x64-linux=skip clapack:x64-windows-release=skip clapack:x64-windows=skip clapack:x86-windows=skip clapack(android)=fail # needs target configuration data clapack(x64 & windows & static)=skip # conflicts with lapack-reference which provides blas clblas:arm-neon-android=fail clblas:arm64-android=fail clblas:x64-android=fail clfft:arm64-linux=fail clipboardxx:arm64-linux=fail clipper2:arm64-linux=fail clockutils:arm-neon-android=fail # gnustl_shared is no longer supported. Please switch to either c++_shared or c++_static. clockutils:arm64-android=fail clockutils:x64-android=fail cnats[sodium]:arm64-linux=cascade coin:arm64-linux=fail coin[openal]:arm64-linux=cascade coin-or-cbc:arm64-linux=cascade coin-or-cgl:arm64-linux=cascade coin-or-clp:arm64-linux=cascade coin-or-ipopt((!windows & !linux) | !x64) = cascade coin-or-osi:arm64-linux=cascade coinutils:arm64-linux=cascade colmap:arm64-linux=cascade colmap[cuda,cuda-redist]:x64-linux=feature-fails colmap[cuda,cuda-redist](arm64 & osx)=cascade coolprop:arm64-linux=fail coroutine:arm64-osx=fail # requires c++20 cppadcodegen:arm64-linux=fail cppcoro(linux | osx)=fail cppgraphqlgen[clientgen]:arm64-linux=feature-fails cppmicroservices:arm64-linux=fail cppmicroservices(windows & arm)=fail cpprealm:arm-neon-android=cascade # https://github.com/realm/realm-core/issues/8093 cpprealm:arm64-android=cascade cpprealm:x64-android=cascade cpprestsdk(android)=fail cppslippi:arm64-linux=fail cppvrf:arm64-linux=fail crashpad:arm64-linux=fail #Compliation failed due to the lack of Clang++ compiler. crashpad:x64-linux=fail crashrpt(windows)=cascade ctbench:arm64-linux=cascade ctbench:arm64-osx=fail # requires C++ 20 ctemplate:arm64-linux=fail ctemplate:x64-linux=fail cuda:arm64-linux=fail cuda-api-wrappers:arm64-linux=cascade cuda-api-wrappers:arm64-osx=cascade cudnn:arm64-linux=cascade cudnn-frontend:arm64-linux=cascade curl[core,http3,gnutls]=options curl[core,http3,mbedtls]=options curl[core,http3,wolfssl]=options curl[gssapi]:arm64-linux=cascade curl[ldap]:arm64-linux=cascade curl[winldap]:arm64-linux=cascade cutelyst2:arm64-linux=cascade cutelyst2:arm64-windows=cascade cyclonedds[ddsperf]:arm64-linux=feature-fails cyclonedds-cxx:arm64-windows=cascade cyclonedds-cxx[idllib]:x64-windows-static-md=cascade cyclonedds-cxx[idllib]:x64-windows-static=cascade cyrus-sasl:arm64-linux=cascade darknet:arm64-linux=cascade darknet[cuda,cudnn](arm | x86 | android | osx)=cascade darknet[openmp]:arm64-osx=feature-fails # openmp setup needed dartsim:arm64-linux=cascade dawn[x11]:arm64-linux=feature-fails daxa:arm64-linux=fail dbghelp=skip # Since pipeline cannot automatically install dbghelp dependency, skip this detection dbow2:arm64-linux=cascade dbow3:arm64-linux=cascade dbus:arm64-linux=fail dbus[x11]:arm64-osx=skip # No x11 on osx dbus-cxx[qt6]:arm64-linux=cascade dcmtk:arm64-linux=fail dcmtk[core,iconv,icu,openssl,png,tiff,tools,xml2,zlib]:arm64-osx=combination-fails # missing symbols from libtiff. See https://github.com/microsoft/vcpkg/issues/33512 dcmtk[iconv](arm64 & windows)=feature-fails # try_run dcmtk[tools](arm64 & windows)=feature-fails # try_run dcmtk(android)=fail # try_run dimcli(windows & static)=fail # VS2019 version 16.9.4's project system changes where PDBs are placed in a way that breaks the upstream build script of this port. See https://developercommunity.visualstudio.com/t/Toolset-169-regression-vcxproj-producin/1356639 directfb2:arm64-linux=fail directxtex[core,dx11,dx12,openexr,spectre,tools]:arm64-windows-static-md=combination-fails # error LNK2047: module contains C++ EH or complex EH metadata but was not compiled with /guard:ehcont discord-game-sdk:x64-windows-static-md=fail discord-game-sdk:x64-windows-static=fail dlib:arm64-linux=cascade dlib[cuda]:arm64-osx=cascade dlib[cuda]:arm64-windows=cascade dlib[cuda]:x86-windows=cascade dmlc[openmp]:arm64-osx=feature-fails # No openmp on osx dpdk:arm64-linux=fail dv-processing:arm64-linux=cascade dv-processing[tools]:arm64-osx=feature-fails # Broke with compiler version. See https://github.com/microsoft/vcpkg/issues/39852 ecal(android)=fail elements:arm64-linux=cascade ensmallen:arm64-linux=cascade ensmallen[openmp]:arm64-osx=feature-fails # No openmp on default osx toolchain entt[experimental]=skip # required head build ethindp-prism:arm64-linux=fail f3d:arm64-linux=cascade faad2:arm64-linux=fail faiss:arm64-linux=cascade faiss:arm64-osx=fail # No openmp on default osx toolchain faiss[gpu](!(windows & x64) & !(linux & x64))=cascade faker-cxx:arm64-linux=fail faudio:arm64-linux=cascade fbgemm:arm64-osx=cascade fbgemm:arm64-windows=cascade fbthrift(android)=cascade fcl:arm64-linux=cascade ffmpeg[all](((!x86 & !x64) | (!android & !linux)) & (!windows | uwp))=cascade ffmpeg[all-gpl](((!x86 & !x64) | (!android & !linux)) & (!windows | uwp))=cascade ffmpeg[all-nonfree](((!x86 & !x64) | (!android & !linux)) & (!windows | uwp))=cascade ffmpeg[all,all-gpl](x64 & android)=feature-fails ffmpeg[alsa](!linux & !android)=cascade # alsa supports ffmpeg[amf]:arm64-osx=cascade ffmpeg[avisynthplus]:arm64-windows=cascade ffmpeg[dav1d]:x86-windows=cascade ffmpeg[fdk-aac](android)=cascade ffmpeg[ffplay]:arm64-linux=cascade ffmpeg[nvcodec,ffplay,opengl](android)=feature-fails ffmpeg[opengl]:arm64-linux=feature-fails ffmpeg[qsv](((!x86 & !x64) | (!android & !linux)) & (!windows | uwp))=cascade ffmpeg[rubberband]:arm64-linux=cascade ffmpeg[sdl2]:arm64-linux=cascade ffmpeg[tensorflow](windows)=cascade ffmpeg[vaapi]:arm64-linux=cascade fftw3[openmp]:arm64-osx=feature-fails # waits for https://github.com/microsoft/vcpkg/pull/30833 fftw3[openmp](windows & !static)=feature-fails # Linker missing symbols. See https://github.com/microsoft/vcpkg/issues/33322 fizz:arm64-linux=cascade fizz:arm64-windows-static-md=cascade fizz:arm64-windows=cascade fizz:x86-windows=cascade fizz(android)=cascade flann[cuda]:arm64-linux=cascade flann[cuda](!(windows & x64 & !xbox) & !(linux & x64) & !(linux & arm64))=cascade flann[cuda,hdf5](x64 & windows)=combination-fails flann[hdf5]:arm64-windows=cascade flashlight-cpu[asr](!x64 | !linux | (!windows & !linux) | uwp) = cascade flashlight-cpu[fl](!x64 | !linux | (!windows & !linux) | uwp) = cascade flashlight-cpu[imgclass](!x64 | !linux | (!windows & !linux) | uwp) = cascade flashlight-cpu[lib]((!windows & !linux) | !x64) = cascade flashlight-cpu[lm](!x64 | !linux | (!windows & !linux) | uwp) = cascade flashlight-cpu[objdet](!x64 | !linux | (!windows & !linux) | uwp) = cascade flashlight-cpu=fail # CMake Error: INSTALL(EXPORT) given unknown export "flashlightTargets". See https://github.com/microsoft/vcpkg/issues/32098 flashlight-cuda:arm64-linux=fail flashlight-cuda[fl,imgclass,lm,objdet,asr]:arm64-linux=cascade flashlight-cuda[fl,imgclass,lm,objdet,asr]:x64-linux=cascade flashlight-sequence[cuda]:arm64-linux=cascade flashlight-sequence[cuda]:arm64-osx=cascade flashlight-sequence[cuda]:arm64-windows=cascade flashlight-sequence[cuda]:x86-windows=cascade flashlight-sequence[openmp]:arm64-osx=feature-fails # No openmp on osx flashlight-text[kenlm]:arm64-windows=cascade fltk:arm64-linux=fail fluidsynth[pulseaudio]:arm64-linux=cascade fluidsynth[pulseaudio](android | osx | windows)=cascade forge:arm64-linux=cascade forge:x86-windows=fail freealut:arm64-linux=cascade freeglut:arm64-linux=fail freeglut:arm64-osx=fail # Needs XQuartz freeglut(android)=fail freerdp[server]:arm64-osx=skip # Uses api removed with macOS 15. Don't get fixed. See https://github.com/FreeRDP/FreeRDP/issues/10558 freerdp[urbdrc]:arm64-linux=cascade freerdp[x11]:arm64-linux=feature-fails freerdp[x11]:arm64-osx=skip # No x11 on osx freetype-gl:arm64-linux=fail freetype-gl[glew]:arm64-linux=cascade ftgl:arm64-linux=fail ftgl(android)=fail future-config:arm64-linux=fail g2o:arm64-linux=cascade g3log:arm-neon-android=fail g3log:arm64-android=fail g3log:x64-android=fail gamenetworkingsockets:arm-neon-android=fail gamenetworkingsockets:arm64-android=fail gamenetworkingsockets:x64-android=fail gapp:arm64-osx=fail # requires c++20 gapp(android)=fail # requires c++20 gdal[arrow,parquet](!(arm64 | x64))=cascade gdal[aws-ec2-windows](!windows)=cascade gdal[iconv]:arm64-linux=feature-fails gdal[libxml2]:arm64-linux=feature-fails gdbm[readline]:arm64-linux=feature-fails gdk-pixbuf[introspection]:arm64-windows=skip # needs arm64 host gegl:arm64-osx=fail # meson bug on osx. See https://github.com/microsoft/vcpkg/issues/44411 geogram:arm64-linux=cascade geogram[graphics](!(arm64&linux))=feature-fails # imgui not found. See https://github.com/microsoft/vcpkg/issues/32421 geotrans=skip # Port geotrans source ftp://ftp.nga.mil server extremely slow may take several hours to download ggml[cuda]:arm64-linux=cascade ginkgo[cuda]:arm64-linux=cascade ginkgo[cuda]:arm64-osx=cascade ginkgo[cuda]:arm64-windows=cascade ginkgo[cuda]:x86-windows=cascade ginkgo[mpi]:arm64-linux=cascade ginkgo[openmp]:arm64-osx=feature-fails # No openmp on osx ginkgo[openmp](windows)=feature-fails # needs openmp 3.0 support but msvc only supports openmp 2.0 gl2ps:arm64-linux=fail gl3w:arm64-linux=fail glad[glx]:arm64-osx=skip # No x11 on osx glew:arm64-linux=fail glew[egl]:arm64-osx=feature-fails glfw3:arm64-linux=fail glib[selinux]:arm64-linux=feature-fails glib-networking[openssl, gnutls]=options # You have to select exactly one ssl backend glibmm:x64-windows-static-md=fail glibmm:x64-windows-static=fail glpk[dl]:arm64-linux=cascade glpk[dl](!windows | uwp)=cascade glpk[mysql]:arm64-linux=cascade glpk[mysql]:arm64-osx=cascade glpk[mysql]:arm64-windows=cascade glpk[mysql]:x86-windows=cascade glpk[odbc]:arm64-linux=cascade glpk[odbc](!windows | uwp)=cascade glui:arm64-linux=cascade gmmlib:arm64-linux=fail gmsh[mpi]:arm64-linux=cascade gmsh[mpi]:arm64-windows=cascade gmsh[mpi]:x64-windows-static-md=cascade gmsh[mpi]:x64-windows-static=cascade gmsh[mpi]:x64-windows=cascade gmsh[mpi]:x86-windows=cascade gmsh[occ]:arm64-linux=feature-fails # cannot find -lX11: No such file or directory gobject-introspection:arm64-linux=fail gobject-introspection(android)=fail gobject-introspection(arm64 & windows)=skip # needs arm64 host google-cloud-cpp[opentelemetry]=feature-fails # error: opentelemetry/trace/semantic_conventions.h: No such file or directory google-cloud-cpp[storage-grpc]=feature-fails # error: opentelemetry/trace/semantic_conventions.h: No such file or directory google-cloud-cpp[storagetransfer]:arm64-osx=feature-fails # See https://github.com/microsoft/vcpkg/issues/32149 gppanel:arm64-linux=cascade grantlee:arm64-linux=cascade graphene[introspection]:arm64-windows=skip # needs arm64 host gsoap=skip # gsoap does not offer stable public source downloads gstreamer[asio](!windows | uwp) = cascade gstreamer[core,aes,alsa,aom,assrender,bzip2,cairo,chromaprint,closedcaption,colormanagement,dash,dtls,fdkaac,flac,fluidsynth,gdk-pixbuf,ges,gpl,hls,jpeg,libav,libde265,microdns,modplug,mpg123,nls,nvcodec,ogg,openh264,openjpeg,openmpt,opus-bad,opus-base,pango,plugins-bad,plugins-base,plugins-good,plugins-ugly,png,smoothstreaming,sndfile,soundtouch,soup,speex,srt,srtp,taglib,vorbis,vpx,wayland,webp,webrtc,wildmidi,x264,x265]:arm64-linux=combination-fails # too many GOT entries for -fpic, please recompile with -fPIC gstreamer[dc1394]:arm64-linux=cascade gstreamer[dc1394](android)=cascade gstreamer[faad]:arm64-linux=cascade gstreamer[gl]:arm64-linux=feature-fails gstreamer[gl-graphene]:arm64-linux=feature-fails # ERROR: Problem encountered: Could not find requested OpenGL library gstreamer[nvcodec](windows)=feature-fails gstreamer[openal]:arm64-linux=cascade gstreamer[vulkan]:arm64-linux=feature-fails gstreamer[vulkan](android | windows)=feature-fails gstreamer[wayland](osx | windows)=cascade gstreamer[x11]:arm64-linux=feature-fails gstreamer[x11](android | osx)=feature-fails # no system X11 in CI gtk:arm64-linux=cascade gtk:arm64-windows=cascade gtk(windows & staticcrt)=cascade gtk3:arm64-linux=cascade gtkmm:arm64-linux=cascade gtkmm:arm64-windows=cascade gtkmm:x64-windows-static-md=cascade gtkmm:x64-windows-static=cascade guile:arm64-linux=fail gz-common:arm64-linux=cascade gz-fuel-tools:arm64-linux=cascade gz-gui(android | arm)=cascade gz-physics(arm|android)=cascade gz-rendering(arm|android) = cascade gz-sensors(arm|android)=cascade gz-sim:arm64-linux=skip # many parallel links cause memory exhaustion on our 128GB of RAM lab VMs gz-sim:x64-linux=skip gz-tools:arm-neon-android=fail # Needs Java runtime gz-tools:arm64-android=fail gz-tools:x64-android=fail hareflow:x64-windows-static=cascade harfbuzz[introspection]:arm64-windows=skip # needs arm64 host hdf5[core,fortran,parallel](linux | osx)=options # Fortran disabled in port openmpi hdf5[fortran]:arm64-linux=feature-fails hdf5[fortran](android | windows)=feature-fails # No fortran compiler hdf5[parallel](android)=cascade hdf5[parallel](arm64 & windows)=cascade hdf5[threadsafe](android)=feature-fails # pthread_setcancelstate hello-imgui[experimental-dx11-binding](!windows | uwp)=cascade hello-imgui[experimental-dx12-binding](x86 | !windows | uwp)=cascade hello-imgui[freetype-lunasvg]=skip # see https://github.com/microsoft/vcpkg/issues/44212 hello-imgui[glfw-binding]:arm64-linux=cascade hello-imgui[metal-binding](!osx)=cascade hello-imgui[sdl2-binding]=skip # see https://github.com/microsoft/vcpkg/issues/44212 hidapi:arm64-linux=cascade highfive[opencv]:arm64-linux=cascade hpx[cuda](!(windows & x64 & !xbox) & !(linux & x64) & !(linux & arm64))=cascade hpx[mpi]:arm64-linux=cascade hpx[mpi](windows & !(x64 | x86))=cascade hunspell:x64-windows-static-md=fail hunspell[tools](windows)=feature-fails # error C2065: 'mode_t': undeclared identifier. See https://github.com/microsoft/vcpkg/issues/30633 hypre:arm64-linux=cascade hypre:arm64-windows=cascade hypre:x86-windows=cascade ideviceinstaller:x64-windows-static-md=fail idevicerestore:arm64-linux=cascade idevicerestore:arm64-windows=cascade idevicerestore:x64-linux=fail idevicerestore:x64-windows-static-md=cascade idevicerestore:x64-windows-static=cascade idyntree[irrlicht]:arm64-linux=cascade igraph:arm64-linux=cascade igraph[openmp]:arm64-osx=feature-fails # openmp setup needed ijg-libjpeg:arm64-linux=skip imcce-openfa:arm64-linux=fail imgui[allegro5-binding]:arm64-linux=cascade imgui[glfw-binding]:arm64-linux=cascade imgui[glut-binding]:arm64-linux=cascade imgui[sdl3-binding]:arm64-linux=cascade imgui[sdl3-renderer-binding]:arm64-linux=cascade imgui[sdlgpu3-binding]:arm64-linux=cascade imgui-sfml:arm64-linux=cascade infoware[opengl]:arm64-linux=feature-fails infoware[x11]:arm64-linux=feature-fails irrlicht[tools]:arm64-linux=feature-fails irrlicht[tools]:arm64-osx=feature-fails # X11 installation required irrlicht[tools]:x64-linux=feature-fails irrxml:arm64-osx=cascade irrxml:arm64-windows=cascade ismrmrd:x86-windows=fail itay-grudev-singleapplication:arm64-linux=cascade itk:arm64-linux=cascade itk[core,vtk,python](!static & !(arm & windows))=combination-fails itk[cuda]:arm64-linux=cascade itk[cuda]:x64-linux=feature-fails itk[cuda,cufftw]:x86-windows=cascade itk[cuda,cufftw](android | osx)=cascade itk[python]=skip # fails on configure or takes very long to build itk[tools]:x86-windows=cascade itk(android)=skip # try_run itk(arm & windows)=skip # try_run ixwebsocket[core,mbedtls,openssl,sectransp,ssl]=options # you can only choose one ssl backend or none jemalloc(android)=fail jemalloc(windows & arm)=fail jkqtplotter:arm64-linux=cascade jsonnet:arm64-windows=cascade juce:arm64-linux=fail kddockwidgets[core]=combination-fails # configure: error: *** No frontend enabled. *** kddockwidgets[qtquick]:arm64-linux=cascade kddockwidgets[qtwidgets]:arm64-linux=cascade kdiagram:arm64-linux=cascade kdreports:arm64-linux=cascade kdsingleapplication:arm64-linux=cascade kdsoap:arm64-linux=cascade kdstatemachineeditor:arm64-linux=cascade kdutils[testing]:arm64-linux=feature-fails kdutils[testing]:arm64-linux=feature-fails kenlm[interpolate]:arm64-linux=feature-fails # Couldn't find tool "interpolate" kf5archive:arm64-linux=cascade kf5attica:arm64-linux=cascade kf5auth:arm64-linux=cascade kf5bookmarks:arm64-linux=cascade kf5codecs:arm64-linux=cascade kf5completion:arm64-linux=cascade kf5config:arm64-linux=cascade kf5configwidgets:arm64-linux=cascade kf5coreaddons:arm64-linux=cascade kf5crash:arm64-linux=cascade kf5dbusaddons:arm64-linux=cascade kf5declarative:arm64-linux=cascade kf5diagram:arm64-linux=cascade kf5globalaccel:arm64-linux=cascade kf5guiaddons:arm64-linux=cascade kf5holidays:arm64-linux=cascade kf5i18n:arm64-linux=cascade kf5iconthemes:arm64-linux=cascade kf5itemmodels:arm64-linux=cascade kf5itemviews:arm64-linux=cascade kf5jobwidgets:arm64-linux=cascade kf5kcmutils:arm64-linux=cascade kf5kio:arm64-linux=cascade kf5newstuff:arm64-linux=cascade kf5notifications:arm64-linux=cascade kf5package:arm64-linux=cascade kf5parts:arm64-linux=cascade kf5plotting:arm64-linux=cascade kf5service:arm64-linux=cascade kf5solid:arm64-linux=cascade kf5sonnet:arm64-linux=cascade kf5syntaxhighlighting:arm64-linux=cascade kf5texteditor:arm64-linux=cascade kf5textwidgets:arm64-linux=cascade kf5wallet:arm64-linux=cascade kf5widgetsaddons:arm64-linux=cascade kf5windowsystem:arm64-linux=cascade kf5xmlgui:arm64-linux=cascade kf6archive:arm64-linux=cascade kf6archive[translations]:arm64-linux=cascade kf6archive(android)=skip # needs newer ECM version kfr:arm64-linux=fail kfr[capi]:arm64-linux=feature-fails kfr[capi](windows)=feature-fails # feature emits DLL even when built static kissfft[openmp]:arm64-osx=feature-fails # No openmp on osx kissfft[tools]:arm64-linux=feature-fails krb5:arm64-linux=fail lapack:arm64-linux=cascade lapack-reference:arm64-linux=fail lapack-reference:arm64-windows=cascade lapack-reference[blas-select,cblas,noblas]=options # Cannot built feature 'cblas' together with feature 'noblas'. cblas requires blas. lapack-reference(android)=fail # no fortran compiler libadwaita:arm64-linux=cascade libadwaita:arm64-windows=cascade libadwaita:x64-windows-static=cascade libaiff:arm64-linux=fail libaiff:x64-linux=fail libalkimia:arm64-linux=cascade libalkimia:arm64-windows=cascade libalkimia[webengine]:x64-windows=cascade libalkimia[webengine]:x86-windows=cascade libalkimia[webengine](static)=cascade libavif[dav1d]:x86-windows=cascade libcaer:arm64-linux=cascade libcamera:arm64-linux=fail libcanberra:arm64-linux=fail libcanberra[alsa]:arm64-osx=cascade libcanberra[core]:arm64-osx=combination-fails # see https://github.com/microsoft/vcpkg/issues/31032 libcanberra[core]=combination-fails # configure: error: *** No backend enabled. *** libcanberra[core,defaults,gstreamer,gtk3,null]:arm64-osx=combination-fails # fatal error: 'gdk/gdkx.h' file not found libcanberra[gtk3]:arm64-linux=cascade libcanberra[gtk3]:arm64-osx=combination-fails # No package 'systemd' found # See https://github.com/microsoft/vcpkg/issues/31032 libcanberra[oss]:arm64-osx=feature-fails # oss not installed libcanberra[pulse]:arm64-osx=feature-fails # pulseaudio not installed libcerf:x64-windows-static-md=fail libcopp:arm64-windows=fail libdc1394:arm64-linux=cascade libedit:arm64-linux=fail libfreenect2:arm64-linux=cascade libfreenect2:arm64-windows=fail libfreenect2[opengl]:arm64-linux=cascade libfreenect2[openni2]:arm64-linux=cascade libfreenect2[openni2]:arm64-osx=cascade libfreenect2[openni2]:arm64-windows=cascade libfreenect2[openni2]:x64-linux=cascade libfreenect2[openni2]:x64-windows-static=cascade libftdi:arm64-linux=cascade libftdi:arm64-osx=cascade libftdi:x64-linux=cascade libftdi:x64-windows-static-md=cascade libftdi:x64-windows-static=cascade libftdi1:arm64-linux=cascade libgit2[core,openssl,winhttp,sectransp,mbedtls,ssl]=options # only one TLS backend is allowed libgit2[pcre,pcre2]=options # have to select pcre xor pcre2 libgit2[winhttp](!windows)=feature-fails libgo:x64-android=fail libgwenhywfar[qt5]:arm64-linux=cascade libgwenhywfar[qt5]:arm64-osx=feature-fails # See https://github.com/microsoft/vcpkg/issues/31216 libgxps:x64-windows-static=fail libharu:arm64-linux=fail libhdfs3=skip # never worked https://github.com/microsoft/vcpkg/pull/10021#issuecomment-1595343157 libigl[embree]:arm64-windows=cascade libigl[glfw]:arm64-linux=cascade libigl[imgui]:arm64-linux=cascade libigl[opengl]:arm64-linux=feature-fails libigl[opengl](android)=feature-fails libirecovery:arm64-linux=cascade libirecovery:x64-windows-static-md=fail libjxl:arm-neon-android=fail # error: out of range pc-relative fixup value liblas[tools](android)=feature-fails libleidenalg:arm64-linux=cascade liblsquic:arm64-windows=cascade libmariadb:arm64-linux=skip libmem:arm64-linux=cascade libmesh:arm64-linux=skip libmikmod:arm64-linux=cascade libmodman:x64-windows-static=fail libmtp:arm64-linux=cascade libmultisense[opencv]:arm64-linux=cascade libmysofa:arm64-linux=fail libnick:arm64-linux=fail libnick:arm64-osx=fail libnick:x64-linux=fail libodb-mysql:x64-linux=cascade libodb-mysql:x86-windows=cascade libodb-pgsql:x64-linux=cascade libodb-sqlite:x64-linux=cascade libofx:arm64-linux=cascade libofx[ofx2qif,ofxdump]:arm64-osx=feature-fails # gettext link error. See https://github.com/microsoft/vcpkg/issues/33043 libopensp(android)=fail libopnmidi[gens-emulator]=options # You have to select at least one emulator libosmscout[cairo]:arm64-linux=feature-fails libosmscout[qt5]:arm64-linux=cascade libosmscout[svg]:arm64-linux=feature-fails # can't find iconv despite libiconv being a dependency libotd[sdl]:arm64-linux=cascade libp7-baical:arm64-osx=cascade libp7-baical:arm64-windows=cascade libplist:x64-windows-static=fail libpmemobj-cpp[benchmark]:arm64-linux=cascade libpmemobj-cpp[benchmark]:arm64-osx=cascade libpmemobj-cpp[benchmark]:arm64-windows=cascade libpmemobj-cpp[benchmark]:x64-linux=cascade libpmemobj-cpp[benchmark]:x64-windows-static=cascade libpmemobj-cpp[benchmark]:x86-windows=cascade libpq[all]:arm64-linux=cascade libpq[python]:arm64-linux=cascade libproxy[bindings-csharp](!windows & !osx)=feature-fails # No C# compiler installed (brew install mono on osx) libproxy[tests]:arm64-linux=feature-fails # tests expect a system-deployed z.so libpsl[libidn2,libicu]=options # "At least one of libidn2 and libicu should be selected." libqcow=skip # The developer of libqcow does not offer stable release archives libqglviewer:arm64-linux=cascade libqtrest:arm64-linux=cascade libraw[openmp]:arm64-osx=feature-fails # requires openmp (works with right setup) librdkafka[sasl]:arm64-linux=cascade librdkafka[sasl](android | (windows & (static | arm | x86)))=cascade libressl:arm64-linux=skip libsbml[expat, libxml2]=options # have to select excatly one xml lib(they are features) libsmb2[krb5]:arm64-linux=cascade libsodium:arm64-linux=fail libssh[core,openssl,mbedtls]=options # we have to select feature openssl or mbedtls libtar:arm64-linux=fail libtcod[sdl]:arm64-linux=cascade libtomcrypt(arm & windows)=fail libtorch:arm64-linux=cascade libtorch:x86-windows=cascade libtorch[dist](!x64 | !linux) = cascade libtorch(arm & windows)=cascade libtorrent[python]:arm64-linux=cascade libui:arm64-linux=cascade libusb[udev]:arm64-linux=feature-fails libuvc:arm64-linux=cascade libva:arm64-linux=fail libwandio:arm64-windows=fail libwandio:x64-windows-static-md=fail libwandio:x64-windows-static=fail libwandio:x64-windows=fail libwandio:x86-windows=fail libwebp[all]:arm64-linux=cascade libwebp[anim,cwebp,dwebp,extras,gif2webp,img2webp,info,mux,libwebpmux,nearlossless,swap16bitcsp,unicode,vwebp]:x64-android=no-separate-feature-test # Compiler crash without simd libwebp[core]:x64-android=combination-fails # Compiler crash without simd libwebp[vwebp]:arm64-linux=cascade libwebp[vwebp]:arm64-linux=cascade libwebp[vwebp](android)=cascade libwebp[vwebp-sdl]:arm64-linux=cascade libwebp[vwebp-sdl](android | osx | (windows & static))=cascade libxaw:arm64-osx=cascade libxaw:arm64-windows=cascade libxmu:arm64-windows=cascade libxslt[python]:arm64-linux=cascade libxt:arm64-windows-static-md=fail # Inline asm used doesn't appear to support arm64-windows libxt:arm64-windows=fail # Inline asm used doesn't appear to support arm64-windows libxt:x64-windows-release=fail # Appears to have broken races libxt:x64-windows=fail liquid-dsp:arm64-linux=fail llama-cpp[tools](arm & windows)=feature-fails # unresolved symbols llgi[tool]:arm64-linux=feature-fails llgi[vulkan]:arm64-linux=feature-fails llgl:arm-neon-android=fail llgl:arm64-android=fail llgl:x64-android=fail llgl[vulkan]:arm64-linux=feature-fails llgl[vulkan]:arm64-osx=cascade # no vulkan sdk installed llgl[vulkan]:x64-linux=feature-fails llvm[core,flang]=options # exclude flang from all since it is not compatible with enable enable-eh llvm[enable-mlir-python-bindings]:arm64-osx=feature-fails # Could NOT find Python3 (missing: Development Development.Module Development.Embed) (found version "3.12"). Same as https://github.com/microsoft/vcpkg/issues/34779 llvm[libcxxabi](windows)=feature-fails # see https://github.com/microsoft/vcpkg/issues/31038 log4cxx:arm64-linux=cascade loguru:arm64-linux=fail lua[tools]:arm64-linux=feature-fails luajit:arm-neon-android=cascade # needs same pointer size for host luasec:x64-windows-static=fail lunarg-vulkantools:arm64-linux=cascade luv:arm64-windows=cascade magma:arm64-linux=cascade magma:arm64-osx=cascade magnum[al-info]:arm64-linux=cascade magnum[anyaudioimporter]:arm64-linux=cascade magnum[anyshaderconverter,shadertools,shaderconverter,vk-info]=skip # only available in head build magnum[audio]:arm64-linux=cascade magnum[distancefieldconverter,eglcontext,fontconverter,gl-info,gl,glxcontext,magnumfont,magnumfontconverter,opengltester,shaders,text,windowlesseglapplication,windowlessglxapplication]:arm64-linux=feature-fails magnum[glfwapplication]=cascade magnum[glxcontext,windowlessglxapplication](android)=feature-fails magnum[sdl2application]:arm64-linux=cascade magnum[wavaudioimporter]:arm64-linux=cascade magnum-extras:arm64-linux=cascade magnum-integration:arm64-linux=cascade magnum-plugins:arm64-linux=cascade magnum-plugins[cgltfimporter,glslangshaderconverter,ktximageconverter,ktximporter,openexrimageconverter,openexrimporter,spirvtoolsshaderconverter,stbdxtimageconverter]=skip # only available in head build magnum-plugins[meshoptimizersceneconverter](!(linux&arm64))=feature-fails # see https://github.com/microsoft/vcpkg/issues/31112 manifold:arm64-linux=cascade mapnik[iewer]:arm64-linux=cascade mapnik[input-gdal]:arm64-linux=cascade mapnik[input-ogr]:arm64-linux=cascade mapnik[utility-mapnik-index]:arm64-linux=feature-fails mapnik[viewer]:arm64-linux=cascade marzbanpp:arm64-linux=fail materialx[render]:arm64-linux=feature-fails mathgl[arma]:arm64-linux=cascade mathgl[fltk]:arm64-linux=cascade mathgl[glut]:arm64-linux=cascade mathgl[hdf5,qt5]:arm64-windows=cascade mathgl[opengl]:arm64-linux=feature-fails mathgl[qt5]:arm64-linux=cascade mathgl[wx]:arm64-linux=cascade matplotplusplus[lapack]:arm64-linux=cascade matplotplusplus[opencv]:arm64-linux=cascade matplotplusplus[opengl]:arm64-linux=cascade mchehab-zbar:arm64-linux=fail mdl-sdk:arm64-linux=fail mdl-sdk[df-vulkan]:arm64-linux=cascade mesa:arm64-linux=fail mesa:arm64-osx=fail # See https://github.com/microsoft/vcpkg/issues/39782 mesa:x64-linux=fail # Missing dependent libraries. mesa:x64-windows-static=fail # Due to static crt. mesa[egl](!windows)=feature-fails # ERROR: Problem encountered: EGL requires dri, haiku, or windows mesa[llvm]=feature-fails # ERROR: Neither a subproject directory nor a llvm.wrap file was found. (llvm-config found: NO) meshoptimizer[gltfpack]:arm64-linux=feature-fails metrohash:arm64-linux=fail minc:arm64-linux=cascade minc[minc1](android)=feature-fails minisat-master-keying:arm64-linux=fail mlpack:arm64-linux=cascade mnn[cuda]:x64-windows-static-md=cascade mnn[cuda]:x64-windows-static=cascade mnn[cuda]:x64-windows=cascade mnn[cuda]:x86-windows=cascade mnn[vulkan]:arm64-osx=cascade # no vulkan sdk installed monkeys-audio:arm64-windows=fail monkeys-audio:x64-windows-static=fail moos-core:x64-windows-static=fail moos-essential:arm64-windows=fail moos-essential:x64-windows-static-md=fail moos-essential:x64-windows-static=cascade moos-essential:x64-windows=fail moos-essential:x86-windows=fail moos-ui:x64-windows-static=cascade morcules-swiftnet:arm64-linux=fail morphologica:arm64-linux=cascade mpi:arm64-windows=cascade mpir:x64-android=fail ms-gdkx:x64-windows-release=skip ms-gdkx:x64-windows-static-md=skip ms-gdkx:x64-windows-static=skip ms-gdkx:x64-windows=skip msdfgen[core,extensions,geometry-preprocessing,openmp,tools]:arm64-osx=combination-fails # requires openmp (works with right setup) msdfgen[openmp]:arm64-osx=feature-fails # No openmp on osx msh3:arm64-linux=cascade msquic:arm64-linux=fail msquic[0-rtt]:arm64-linux=cascade msquic[0-rtt](android)=cascade msquic(android)=fail muda:arm64-linux=cascade mujoco:arm64-linux=cascade mvfst:arm64-linux=cascade mygui:arm64-linux=cascade mygui[tools]:arm64-osx=feature-fails # Linker errors undefined symbols. See https://github.com/microsoft/vcpkg/issues/34416 mysql-connector-cpp:arm64-linux=fail nana:arm64-linux=fail nana:x64-linux=fail nanobind:arm64-linux=cascade nanogui:arm64-linux=cascade nativefiledialog-extended:arm64-linux=cascade neko-network[nlog]:arm64-linux=feature-fails neoslippi:arm64-linux=fail netcdf-c[core]:arm64-linux=combination-fails # error: cannot find math library netcdf-c[dap]:arm64-linux=feature-fails netcdf-c[szip]:arm64-linux=cascade netcdf-c[szip](static | uwp)=cascade netcdf-c[tools]:arm64-linux=feature-fails netcdf-c[zstd]:arm64-linux=cascade netcdf-cxx4:arm64-windows-static-md=fail netcdf-cxx4:x64-windows-static-md=fail netgen[python]:arm64-linux=cascade nethost:arm64-linux=fail ngspice:x64-windows-static=fail ngtcp2[gnutls]:arm64-windows-static-md=cascade ngtcp2[gnutls]:arm64-windows=cascade nifticlib:arm64-linux=fail nrf-ble-driver:arm64-linux=fail nss:x64-windows-static=cascade numcpp[python]:arm64-linux=cascade nvidia-cutlass:arm64-linux=cascade nvtt[cuda]:arm64-osx=cascade nvtt[cuda]:x86-windows=cascade nvtt[cuda](x64 & (linux | windows))=feature-fails # nvtt getting dated wrt cuda octave:arm64-linux=cascade octave:arm64-osx=fail # blas must select openblas instead of Accelerate octave(android)=skip ode:arm64-windows=fail ogdf:arm64-linux=fail ogre:arm64-linux=cascade ogre[csharp](windows)=feature-fails # .NET workloads not installed in the build lab ogre[d3d9](windows)=feature-fails # DirectX 9 SDK not installed in the build lab ogre[python]=feature-fails # broken on all test platforms right now ogre-next:arm64-linux=fail ogre-next[csharp]:arm64-osx=cascade ogre-next[d3d9]:arm64-osx=cascade ogre-next[gl3plus]:arm64-osx=feature-fails ogre-next[java]:arm64-osx=cascade ogre-next[python]:arm64-osx=cascade ogre-next(android)=fail ois:x64-android=fail omniorb:arm64-linux=fail omplapp:arm64-linux=cascade omplapp[opengl](android)=feature-fails # Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY OPENGL_INCLUDE_DIR) onnx-optimizer[pybind11]:arm64-linux=cascade onnx-optimizer[pybind11]:arm64-windows=cascade onnx-optimizer[pybind11]:x64-linux=cascade onnx-optimizer[pybind11]:x64-windows-static-md=cascade onnx-optimizer[pybind11]:x64-windows-static=cascade onnx-optimizer[pybind11]:x86-windows=cascade onnxruntime[openvino](!x64 | osx | uwp) = cascade onnxruntime[tensorrt](!((x64 & windows & !static) | (x64 & linux)))=cascade onnxruntime[tensorrt]((x64 & windows & !static) | (x64 & linux))=feature-fails # requires TensorRT installation onnxruntime-gpu=skip openal-soft:arm64-linux=fail openal-soft[pipewire](!(linux&x64))=cascade openal-soft[pulseaudio](!(linux&x64))=cascade openblas[dynamic-arch]:arm64-linux=feature-fails opencascade[vtk]:arm64-linux=cascade opencc:arm64-windows=fail # opencc/deps/rapidjson-1.1.0/rapidjson.h: Unknown machine endianess detected opencc:x64-android=fail opencsg:arm64-linux=cascade opencv:arm64-linux=cascade opencv2[dc1394]:arm64-linux=cascade opencv2[dc1394](windows & !arm)=cascade opencv2[ffmpeg](!windows)=feature-fails # ffmpeg5+ is not supported under opencv2. See https://github.com/microsoft/vcpkg/issues/32151 opencv2[gtk]:x64-windows-static-md=cascade opencv2[gtk]:x64-windows-static=cascade opencv2[python]:arm64-osx=feature-fails # requires python2 opencv2[qt]:arm64-linux=cascade opencv2[world]=feature-fails # See https://github.com/microsoft/vcpkg/issues/29943 opencv3[contrib]:arm64-linux=cascade opencv3[dc1394]:arm64-linux=cascade opencv3[dc1394]:arm64-osx=feature-fails opencv3[dc1394]:x64-linux=feature-fails opencv3[dc1394](android | windows)=cascade opencv3[dnn]:arm64-linux=cascade opencv3[ffmpeg]=feature-fails # ffmpeg5+ is not supported under opencv3. See https://github.com/microsoft/vcpkg/issues/32150 opencv3[gtk]:arm64-linux=cascade opencv3[gtk]:x64-windows-static-md=cascade opencv3[gtk,halide,qt]:arm64-windows=cascade opencv3[halide]:arm64-linux=cascade opencv3[halide,gtk]:x64-windows-static=cascade opencv3[opengl]:arm64-linux=feature-fails opencv3[opengl]:arm64-osx=no-separate-feature-test # needs gui (gtk | qt) opencv3[opengl]:x64-linux=no-separate-feature-test # needs gui (gtk | qt) opencv3[opengl](android)=feature-fails opencv3[ovis]:arm64-linux=cascade opencv3[python]:arm64-linux=cascade opencv3[qt]:arm64-linux=cascade opencv3[quality]:arm64-linux=cascade opencv3[sfm]:arm64-linux=cascade opencv3[vtk]:arm64-linux=cascade opencv3[world]=skip # fails in combinations with "viz" opencv4[ade,aravis,calib3d,carotene,contrib,eigen,ffmpeg,freetype,fs,gapi,gdcm,gstreamer,hdf,highgui,intrinsics](!linux & !(arm64 & android))=no-separate-feature-test # a-i opencv4[aravis]:arm64-linux=cascade opencv4[aravis](xbox)=cascade opencv4[core,cuda,world](windows)=options opencv4[cuda]:arm64-linux=cascade opencv4[cuda](!((windows & x64 & !xbox) | (linux & x64) | (linux & arm64)))=cascade opencv4[cuda,cudnn]:arm64-osx=cascade opencv4[cuda,cudnn,dc1394,dnn-cuda]:arm64-windows=cascade opencv4[cuda,cudnn,dc1394,dnn-cuda]:x86-windows=cascade opencv4[cudnn]:arm64-linux=cascade opencv4[cudnn](!((windows & x64 & !xbox) | (linux & x64) | (linux & arm64)) | !((windows & x64) | (linux & x64) | (linux & arm64)))=cascade opencv4[dc1394]:arm64-linux=cascade opencv4[dc1394](windows)=cascade opencv4[dnn-cuda]:arm64-linux=cascade opencv4[dnn-cuda]:arm64-osx=cascade opencv4[dnn-cuda](!((windows & x64 & !xbox) | (linux & x64) | (linux & arm64)) | !((windows & x64) | (linux & x64) | (linux & arm64)))=cascade opencv4[gstreamer](xbox)=cascade opencv4[gtk]:arm64-linux=cascade opencv4[halide](!android & !(windows & staticcrt) & !(arm & windows))=feature-fails # error C2039: 'attachHalide': is not a member of 'cv::dnn::GeluFunctor' opencv4[halide](android | (windows & staticcrt) | (arm & windows))=cascade opencv4[halide]=no-separate-feature-test # error C2039: 'attachHalide': is not a member of 'cv::dnn::GeluFunctor' opencv4[jpeg,jpegxl,nonfree,openexr,openjpeg,png,quality,quirc,qt,sfm,rgbd,thread,text,tiff,vulkan,webp,world](!osx & !(x64 & android))=no-separate-feature-test # j-l opencv4[jpegxl]:arm-neon-android=cascade opencv4[opengl]:arm64-linux=feature-fails opencv4[opengl]:x64-linux=feature-fails opencv4[opengl](android)=feature-fails opencv4[opengl](windows)=feature-fails # Option WITH_OPENGL is enabled but corresponding dependency have not been found: "HAVE_OPENGL" is FALSE opencv4[opengl](xbox)=cascade opencv4[opengl]=no-separate-feature-test # needs Win32UI, Qt or GTK to enable HAVE_OPENGL opencv4[ovis]:arm64-linux=cascade opencv4[ovis](android)=feature-fails opencv4[python]:arm64-linux=cascade opencv4[qt]:arm64-linux=cascade opencv4[qt](ios | xbox)=cascade opencv4[vtk]:arm64-linux=cascade opencv4[vtk](xbox)=cascade opencv4[vulkan]:arm64-linux=cascade opencv4[world]:arm64-linux=cascade openimageio[jpegxl]:arm-neon-android=cascade openimageio[opencv]:arm64-linux=cascade openimageio[pybind11]:arm64-linux=cascade openimageio[qt]:arm64-linux=cascade openimageio[viewer]:arm64-linux=cascade openjpeg[tools]=skip # fails and is deprecated openldap:arm64-linux=fail openldap[cyrus-sasl]:arm64-linux=cascade openmama:arm64-linux=cascade openmama:arm64-windows=cascade openmama:x64-windows-static-md=fail openmama:x64-windows-static=cascade openmesh:arm64-windows=fail openmpi:arm-neon-android=fail openmpi:arm64-android=fail openmpi:x64-android=fail openmvg:arm64-linux=cascade openmvg[core](arm & windows)=combination-fails # nmmintrin.h(17): fatal error C1189: #error: This header is specific to X86, X64, ARM64, and ARM64EC targets. See https://github.com/microsoft/vcpkg/issues/33746 openmvg[opencv](arm & windows)=feature-fails openmvg[openmp](arm & windows)=feature-fails openmvg[software]:arm64-linux=cascade openmvg[software](arm & windows)=cascade openmvs:arm64-linux=cascade openmvs[cuda]((!windows | !x64 | xbox) & (!linux | !x64) & (!linux | !arm64))=cascade openmvs[opengl](android)=feature-fails openmvs[openmp]:arm64-osx=feature-fails # openmp setup needed openmvs(arm & windows)=fail # Incorrect use of arm64 intrinsics in in VS 2022 17.13 broke these with -Zc:arm64-aliased-neon-types- openni2:arm64-linux=cascade openni2:arm64-osx=cascade openni2:arm64-windows=cascade openni2:x64-linux=cascade openscap[crypto,util,python](arm & windows)=cascade openscap[python](!windows)=feature-fails # CI image lacks swig openslide(windows & !native)=cascade openslide(windows & native)=fail # g_auto* using __attribute__((cleanup)) opensubdiv[cuda]:arm64-linux=cascade opensubdiv[cuda]:x86-windows=cascade opensubdiv[dx]:arm64-linux=cascade opensubdiv[dx]:x64-linux=cascade opensubdiv[glew]:arm64-linux=cascade opensubdiv[glfw]:arm64-linux=cascade opensubdiv[omp]:arm64-linux=feature-fails opensubdiv[opengl]:arm64-linux=feature-fails openturns:arm64-linux=cascade openvdb[ax]:arm64-linux=cascade openvdb[ax]:arm64-osx=feature-fails openvdb[ax]:x64-linux=feature-fails openvdb[ax](!osx & !linux)=cascade openvdb[nanovdb]:arm64-linux=cascade openvdb[nanovdb]:arm64-osx=cascade openvdb[nanovdb-tools]:arm64-linux=cascade openvino:arm64-android=skip # conflicts with kleidiai openvino:arm64-linux=skip openvino:arm64-osx=skip # conflicts with kleidiai openvino:arm64-windows-static-md=fail openvino:arm64-windows=fail openvr:x64-windows-static=fail openxr-loader:arm64-linux=fail openzl:arm64-windows-static-md=fail openzl:arm64-windows=fail openzl:x64-windows-release=fail openzl:x64-windows-static-md=fail openzl:x64-windows-static=fail openzl:x64-windows=fail orange-math:arm64-linux=fail orc:arm64-linux=fail orc(android)=fail # try_run for time_t properties orefkov-simstr:arm64-linux=fail osg:arm64-linux=fail osg[examples]:arm64-linux=cascade osg[nvtt](android | arm)=cascade osg[plugins]:arm64-linux=cascade osg[sdl1]:arm64-linux=cascade osg[sdl1](android | osx)=cascade osg[tools]:arm64-linux=cascade osg-qt:arm64-linux=cascade osgearth:arm64-linux=cascade osgearth[tools]:arm64-osx=feature-fails # Undefined _NSSearchPathForDirectoriesInDomains pango[introspection]:arm64-windows=skip # needs arm64 host pangolin:arm64-linux=cascade pangolin[core,eigen,examples,ffmpeg,gui,jpeg,lz4,module,openexr,openni2,png,realsense,tiff,tools,vars,video,zstd]:x64-windows-static-md=combination-fails pangolin[core,eigen,examples,ffmpeg,gui,jpeg,lz4,module,openexr,png,realsense,test,tiff,tools,vars,video,zstd](!(arm & windows))=combination-fails # see https://github.com/microsoft/vcpkg/issues/31304 pangolin[core,eigen,examples,ffmpeg,gui,jpeg,lz4,module,openexr,png,realsense,tiff,tools,uvc,vars,video,zstd]:arm64-osx=combination-fails pangolin[core,eigen,examples,ffmpeg,gui,jpeg,lz4,module,openexr,png,realsense,tiff,tools,uvc,vars,video,zstd]:x64-linux=combination-fails pangolin[openni2]:arm64-linux=cascade pangolin[openni2]:arm64-osx=cascade pangolin[openni2]:x64-linux=cascade pangolin[openni2,realsense,uvc]:arm64-windows=cascade pangolin[openni2,uvc]:x64-windows-static=cascade pangolin[pybind11]:arm64-linux=cascade pangolin[pybind11]:arm64-osx=feature-fails pangolin[pybind11]:arm64-windows-static-md=feature-fails pangolin[pybind11]:arm64-windows=feature-fails pangolin[pybind11]:x64-linux=feature-fails pangolin[pybind11]:x64-windows-release=feature-fails pangolin[pybind11]:x64-windows-static-md=feature-fails pangolin[pybind11]:x64-windows=feature-fails pangolin[pybind11]:x86-windows=feature-fails pangolin[uvc]:x64-windows-static-md=cascade pangolin[uvc]:x64-windows=cascade pangolin[uvc]:x86-windows=cascade pangomm:x64-windows-static-md=cascade pangomm:x64-windows-static=cascade paraview:arm64-linux=cascade paraview[cuda]:x64-linux=feature-fails paraview[cuda](!(windows & x64 & !xbox) & !(linux & x64) & !(linux & arm64))=cascade paraview[mpi]:arm64-windows-static-md=cascade paraview[mpi]:arm64-windows=cascade paraview[mpi,vtkm]:x86-windows=cascade paraview[python]:arm64-windows-static-md=feature-fails paraview[python]:arm64-windows=feature-fails paraview(arm64 & windows)=fail # in-build host tools parmetis:arm64-linux=cascade parmetis:arm64-windows=cascade parquet:arm64-windows=cascade parquet:x86-windows=cascade pbc:x64-windows-static-md=cascade pbc:x64-windows-static=cascade pcapplusplus:arm64-linux=fail pcapplusplus:arm64-windows=cascade pcapplusplus:x64-windows-static-md=cascade pcapplusplus:x64-windows-static=cascade pcapplusplus:x86-windows=cascade pcl[apps]:arm64-osx=cascade pcl[cuda]:arm64-osx=cascade pcl[examples]:arm64-linux=cascade pcl[libusb]:arm64-linux=cascade pcl[opengl]:arm64-linux=feature-fails pcl[opengl](android)=feature-fails pcl[openni2]:arm64-linux=cascade pcl[openni2]:arm64-osx=cascade pcl[openni2,apps]:x64-linux=cascade pcl[pcap]:x64-windows-static-md=cascade pcl[pcap,openni2,apps]:x64-windows-static=cascade pcl[qt]:arm64-linux=cascade pcl[simulation]:arm64-linux=cascade pcl[visualization]:arm64-linux=cascade pcl[vtk]:arm64-linux=cascade pdal:arm64-linux=cascade pdal-c:arm64-linux=cascade pdal-c:arm64-windows=cascade pfring:arm64-linux=fail pfring:arm64-osx=fail pipewire:arm64-linux=fail pixel:arm64-linux=cascade plplot:arm64-linux=fail # Cannot find required math library plplot[wxwidgets]:arm64-linux=cascade plplot[x11]:arm64-linux=cascade plplot[x11]:arm64-windows=cascade plplot[x11]:x64-windows-static-md=cascade plplot[x11]:x64-windows-static=cascade plplot[x11]:x64-windows=cascade plplot[x11]:x86-windows=cascade pmdk:x64-windows-static=fail poco[core,mariadb,mysql]=options # You can not install mariadb and mysql at the same time poco[mysql]:x86-windows=cascade poco[odbc]:arm64-linux=feature-fails poco[pdf]:arm64-linux=cascade poppler[qt]:arm64-linux=cascade ppqsort[openmp]:arm64-osx=feature-fails # No openmp on osx projectm:arm64-linux=fail prometheus-cpp[pull]:arm64-windows=cascade protobuf-c[test]:arm64-linux=feature-fails proxygen:arm64-linux=cascade ptyqt:arm64-linux=cascade ptyqt:arm64-windows=cascade pulseaudio:arm64-linux=cascade pybind11:arm64-linux=cascade python2:arm64-linux=fail qca:arm64-linux=cascade qcoro:arm64-linux=cascade qcoro[dbus]:x64-windows-static=cascade qcoro(android)=cascade qcustomplot:arm64-linux=cascade qgis-o2:arm64-linux=cascade qhttpengine:arm64-linux=cascade qhttpengine:arm64-windows=cascade qlementine:arm64-linux=cascade qlementine-icons:arm64-linux=cascade qscintilla:arm64-linux=cascade qt:arm64-linux=cascade qt-advanced-docking-system:arm64-linux=cascade qt-advanced-docking-system(android)=fail qt3d:arm64-linux=cascade qt3d[animation]=options # is a requirement, see https://github.com/microsoft/vcpkg/issues/31336 qt3d[extras]=options # is a requirement, see https://github.com/microsoft/vcpkg/issues/31336 qt5:arm64-linux=cascade qt5:arm64-windows=cascade qt5[all,wayland,webengine]:x86-windows=cascade qt5[doc](!native) = cascade qt5[wayland]:arm64-osx=cascade qt5[wayland,webengine]:x64-windows-static-md=cascade qt5[wayland,webengine]:x64-windows-static=cascade qt5[wayland,webengine]:x64-windows=cascade qt5[webengine]:arm64-linux=cascade qt5[webengine]:arm64-osx=cascade qt5[webengine]:x64-linux=cascade qt5-3d:arm64-linux=cascade qt5-base:arm64-linux=cascade qt5-base[cups]:x64-linux=feature-fails # requires CUPS system libs qt5-base[icu]:arm64-osx=feature-fails qt5-base[icu]:x64-windows-release=feature-fails qt5-base[icu]:x64-windows-static-md=feature-fails qt5-base[icu]:x64-windows-static=feature-fails qt5-base[icu]:x64-windows=feature-fails qt5-base[icu]:x86-windows=feature-fails qt5-base[vulkan]:arm64-osx=feature-fails # needs MolkenVK qt5-base(android)=skip # port doesn't support cross builds qt5-base(arm & windows)=fail # qt5-base: no cross builds qt5-charts:arm64-linux=cascade qt5-connectivity:arm64-linux=cascade qt5-datavis3d:arm64-linux=cascade qt5-declarative:arm64-linux=cascade qt5-gamepad:arm64-linux=cascade qt5-graphicaleffects:arm64-linux=cascade qt5-imageformats:arm64-linux=cascade qt5-location:arm64-linux=cascade qt5-mqtt:arm64-linux=cascade qt5-multimedia:arm64-linux=cascade qt5-networkauth:arm64-linux=cascade qt5-purchasing:arm64-linux=cascade qt5-quick3d:arm64-linux=cascade qt5-quickcontrols:arm64-linux=cascade qt5-quickcontrols2:arm64-linux=cascade qt5-quicktimeline:arm64-linux=cascade qt5-remoteobjects:arm64-linux=cascade qt5-script:arm64-linux=cascade qt5-scxml:arm64-linux=cascade qt5-scxml:arm64-windows=cascade qt5-sensors:arm64-linux=cascade qt5-serialbus:arm64-linux=cascade qt5-serialport:arm64-linux=cascade qt5-speech:arm64-linux=cascade qt5-svg:arm64-linux=cascade qt5-tools:arm64-linux=cascade qt5-translations:arm64-linux=cascade qt5-virtualkeyboard:arm64-linux=cascade qt5-wayland:arm64-linux=cascade qt5-webchannel:arm64-linux=cascade qt5-webengine(!(arm & windows))=fail # Missing prerequisites for CI success qt5-webengine(arm & windows)=cascade qt5-webglplugin:arm64-linux=cascade qt5-websockets:arm64-linux=cascade qt5-webview:arm64-linux=cascade qt5-x11extras:arm64-linux=cascade qt5-x11extras:arm64-osx=fail # Missing system libraries qt5-x11extras(windows)=fail # Missing libraries qt5-xmlpatterns:arm64-linux=cascade qt5compat:arm64-linux=cascade qt5compat[iconv](!(linux&arm64))=feature-fails # requires qtbase without icu qtapplicationmanager:arm64-linux=cascade qtbase[cups](linux)=feature-fails # requires CUPS system libs qtbase[dbus]:arm64-linux=cascade qtbase[dbus](android)=cascade qtbase[egl]:arm64-linux=feature-fails qtbase[gles2]:arm64-linux=feature-fails qtbase[gles3]:arm64-linux=feature-fails qtbase[gles3](android)=feature-fails qtbase[glib](android)=skip # undefined symbols (missing link libs) when used with network qtbase[gtk3]:arm64-linux=cascade qtbase[opengl]:arm64-linux=feature-fails qtbase[sql-mysql](android)=cascade qtbase[sql-oci]=skip # No Oracle SQL OCI see https://github.com/microsoft/vcpkg/issues/32052 qtbase[sql-odbc]:arm64-linux=feature-fails qtbase[vulkan]:arm64-osx=skip # no MoltenVK on macOS qtbase[wayland]:arm64-linux=feature-fails qtbase[wayland]:arm64-osx=skip # no Wayland on macOS qtbase[wayland](android)=skip # no Wayland on android qtbase[xcb]:arm64-linux=feature-fails qtbase[xcb-sm]:arm64-linux=feature-fails qtbase[xcb-xlib]:arm64-linux=feature-fails qtbase[xcb,xcb-sm,xcb-xlib,xkb,xkbcommon-x11,xlib,xrender]:arm64-osx=skip # no x11 in CI, upstream "support on macOS is minimal and untested" qtbase[xcb,xcb-sm,xcb-xlib,xkb,xkbcommon-x11,xlib,xrender](android)=skip # no x11 in CI qtbase[xcb,xcb-sm,xcb-xlib,xkb,xkbcommon-x11,xlib,xrender](windows)=skip # no x11 in CI qtbase[xlib]:arm64-linux=feature-fails qtbase[xrender]:arm64-linux=feature-fails qtcharts:arm64-linux=cascade qtcoap:arm64-linux=cascade qtconnectivity:arm64-linux=cascade qtdatavis3d:arm64-linux=cascade qtdeclarative:arm64-linux=cascade qtdeviceutilities:arm64-linux=cascade qtdoc:arm64-linux=cascade qtgraphs:arm64-linux=cascade qtgrpc:arm64-linux=cascade qthttpserver:arm64-linux=cascade qtimageformats:arm64-linux=cascade qtinterfaceframework:arm64-linux=cascade qtkeychain:arm64-linux=cascade qtkeychain[translations]:x64-windows=cascade qtkeychain[translations]:x86-windows=cascade qtkeychain-qt6:arm64-linux=cascade qtlanguageserver:arm64-linux=cascade qtlocation:arm64-linux=cascade qtlottie:arm64-linux=cascade qtmqtt:arm64-linux=cascade qtmultimedia:arm64-linux=cascade qtmultimedia[core,ffmpeg](linux)=combination-fails # If QT_FEATURE_eglfs is detect it automatically links Qt::Quick; no way to control it externally qtmultimedia[core,ffmpeg,gstreamer,qml,widgets]:arm64-osx=combination-fails # Error: Qt will by default autolink both plugin backends in static builds leading to symbol collisions and a build failure in dependent ports! As such in static builds only one backend is allowed by default. qtmultimedia[gstreamer]:arm64-linux=options qtmultimedia[gstreamer]:x64-linux=no-separate-feature-test qtmultimedia[gstreamer]:x64-linux=options qtnetworkauth:arm64-linux=cascade qtopcua:arm64-linux=cascade qtopcua[open62541](android)=feature-fails qtpositioning:arm64-linux=cascade qtquick3d:arm64-linux=cascade qtquick3dphysics:arm64-linux=cascade qtquickcontrols2:arm64-linux=cascade qtquicktimeline:arm64-linux=cascade qtremoteobjects:arm64-linux=cascade qtscxml:arm64-linux=cascade qtsensors:arm64-linux=cascade qtserialbus:arm64-linux=cascade qtserialport:arm64-linux=cascade qtshadertools:arm64-linux=cascade qtspeech:arm64-linux=cascade qtsvg:arm64-linux=cascade qttools:arm64-linux=cascade qttranslations:arm64-linux=cascade qtvirtualkeyboard:arm64-linux=cascade qtvirtualkeyboard[t9write]=skip # depends on the port 't9write' that does not exists qtwayland:arm64-linux=cascade qtwayland(android | osx)=cascade # Missing system libraries qtwebchannel:arm64-linux=cascade qtwebengine=skip # Takes too long to feature test at ~3 hours per feature qtwebsockets:arm64-linux=cascade qtwebview:arm64-linux=cascade qtwebview[webengine]:x86-windows=cascade quarter:arm64-linux=cascade quazip:arm64-linux=cascade quickfix:arm64-linux=fail quickjs-ng:arm64-linux=fail qwt:arm64-linux=cascade qwtw:x64-windows=cascade qzxing:arm64-linux=cascade raylib:arm64-linux=cascade raylib-cpp:arm64-linux=cascade realm-core:arm-neon-android=fail # https://github.com/realm/realm-core/issues/8093 realm-core:arm64-android=fail realm-core:x64-android=fail realsense2:arm64-linux=cascade reflectcpp[bson]:arm64-linux=feature-fails rendergraph:arm64-linux=fail restbed:arm64-linux=fail restc-cpp:arm64-windows=cascade rioki-glow:arm64-linux=cascade ripper37-libbase[wx]:arm64-linux=cascade ripper37-libbase[wx](android)=cascade robotraconteur:arm64-linux=cascade robotraconteur-companion:arm64-linux=cascade rpclib:arm64-windows=fail rsocket:arm64-linux=cascade rsocket:arm64-windows=cascade rsocket:x86-windows=cascade rtabmap:arm64-linux=cascade rtabmap:arm64-windows=cascade rtabmap[k4w2,openni2](arm | !windows)=cascade rtabmap[opencv-cuda](!x64 | android | osx)=cascade rtabmap[openmp]:arm64-osx=feature-fails # No openmp on default osx toolchain rtaudio[pulse]:arm64-linux=cascade rtlsdr:arm64-linux=cascade rubberband:arm64-linux=cascade ryml:arm64-windows=cascade s2n=skip # builds too slow sail[jpegxl]:arm-neon-android=cascade salome-medcoupling(arm | !(linux | windows))=cascade saucer:arm64-linux=cascade saucer:arm64-osx=fail # std::move_only_function is not supported saucer:x64-linux=fail # requires gcc14 or later sdbus-cpp:arm64-linux=cascade sdformat13:x64-windows-static=cascade sdl1:arm64-linux=fail sdl1-mixer(android)=cascade sdl1-net:arm64-linux=cascade sdl1-net(android | osx)=cascade sdl2[dbus]:arm64-linux=cascade sdl2-gfx:arm64-linux=cascade sdl2-image:arm64-linux=cascade sdl2-mixer:arm64-linux=cascade sdl2-mixer-ext:arm64-linux=cascade sdl2-net:arm64-linux=cascade sdl2-ttf:arm64-linux=cascade sdl2pp:arm64-linux=cascade sdl3[dbus]:arm64-linux=cascade sdl3-image:arm64-linux=cascade sdl3-shadercross((!windows | arm32 | uwp | xbox) & (!linux | !x64))=cascade sdl3-ttf:arm64-linux=cascade seacas[mpi]:arm64-linux=cascade seal[hexl]:arm64-linux=cascade seal[hexl]:arm64-osx=cascade seal[hexl]:arm64-windows=cascade seal[hexl]:x86-windows=cascade sfgui:arm64-linux=cascade sfml[graphics]:arm64-linux=feature-fails sfml[window]:arm64-linux=feature-fails shaderwriter:arm64-linux=fail shapelib[contrib]:arm64-linux=feature-fails simbody:arm64-linux=cascade simbody:arm64-windows=fail simd:arm64-linux=fail simd(android)=fail simonbrunel-qtpromise:arm64-linux=cascade simpleble:arm64-linux=cascade skia[dawn]:arm64-linux=cascade skia[default-features]:arm64-windows=cascade sleef:arm64-linux=fail sleef:x86-windows=fail sleef[dft]:arm64-osx=feature-fails # openmp setup needed sleepy-discord[voice]:arm64-linux=cascade sleepy-discord(android)=fail slikenet:arm64-linux=fail smpeg2:arm64-linux=cascade soci[mysql]:x86-windows=cascade soci[odbc]:arm64-linux=feature-fails # Could NOT find ODBC soem:arm64-windows=cascade soem:x64-windows-static-md=cascade soem:x64-windows-static=cascade soem:x86-windows=cascade soil2:arm64-linux=fail sonivox:arm64-linux=fail spaceland:arm64-android=fail spaceland:arm64-windows-static-md=fail spaceland:arm64-windows=fail spaceland:x64-android=fail spdlog[fmt]:arm64-linux=options # std::format appears missing spix:arm64-linux=cascade sqlcipher:arm64-windows=cascade sqlitecpp[sqlcipher]:arm64-linux=cascade sqlitecpp[sqlcipher]:arm64-osx=cascade sqlitecpp[sqlcipher]:arm64-windows=cascade sqlitecpp[sqlcipher]:x64-linux=cascade sqlitecpp[sqlcipher]:x64-windows-static-md=cascade sqlitecpp[sqlcipher]:x64-windows-static=cascade sqlpp11[core,mariadb,mysql]=options # can not select mariadb and mysql at the same time sqlpp11[mysql]:x86-windows=cascade sqlpp11-connector-mysql[core,mariadb,mysql]=options # can not select mariadb and mysql at the same time sqlpp11-connector-mysql[mysql]:arm64-windows=cascade sqlpp11-connector-mysql[mysql]:x64-windows-static-md=cascade sqlpp11-connector-mysql[mysql]:x64-windows-static=cascade sqlpp11-connector-mysql[mysql]:x86-windows=cascade squirrel:arm64-linux=fail steam-audio:arm64-linux=cascade stella-cv-fbow:arm64-linux=cascade subversion(uwp | staticcrt | arm)=cascade suitesparse[cuda]:arm64-linux=cascade suitesparse[gpl]:arm64-linux=cascade suitesparse-cholmod[cuda]:arm64-linux=cascade suitesparse-cholmod[supernodal]:arm64-linux=cascade suitesparse-graphblas:x86-windows=fail # no InterlockedExchange64 with MSVC suitesparse-graphblas[openmp]:arm64-osx=feature-fails # No openmp on default osx toolchain suitesparse-spqr:arm64-linux=cascade supernovas:arm64-linux=fail supernovas[solsys-calceph]:arm64-linux=cascade symengine[llvm]:arm64-linux=cascade symengine[llvm]:arm64-windows=cascade tdlib:arm64-linux=fail tdscpp:arm64-linux=fail telnetpp(android)=fail tensorflow-cc(windows)=fail # tensorflow does not support VS2022 tensorflow(windows)=fail # tensorflow does not support VS2022 tensorpipe[cuda]:arm64-linux=cascade tensorpipe[pybind11]:arm64-linux=cascade tgui:arm64-linux=cascade tgui[sdl2]=options # At least one of the backend features must be selected: sdl2 sfml torch-th:arm-neon-android=cascade torch-th:arm64-android=cascade torch-th:arm64-linux=cascade torch-th:arm64-windows-static-md=fail torch-th:arm64-windows=fail torch-th:x64-android=cascade torch-th:x64-windows-static=fail tracy[cli-tools]:arm64-linux=cascade tracy[gui-tools]:arm64-linux=cascade treehopper:arm64-linux=cascade treehopper:x64-windows-static=fail ttauri:x64-windows-static-md=cascade ttauri:x64-windows-static=cascade usbmuxd:arm64-linux=cascade usbmuxd:x64-windows-static-md=fail usd=skip # USD has set official policy that they will not update to be compatible with TBB in the near term (https://github.com/PixarAnimationStudios/USD/issues/1600) usockets[network]:arm64-osx=cascade v8(windows)=fail # the version of v8 we have in the repo doesn't support VS2022 vcpkg-ci-box2d:arm64-linux=fail vcpkg-ci-lua:arm64-linux=fail vcpkg-ci-podofo:arm64-linux=fail vectorclass:arm64-windows=fail vectorscan:arm64-linux=fail vlfeat[openmp]:arm64-osx=feature-fails # No openmp on osx vlpp[tools]:arm64-osx=feature-fails # error: use of undeclared identifier 'PATH_MAX' vlpp[tools](linux)=feature-fails # See https://github.com/microsoft/vcpkg/issues/32143 (error: inconsistent begin/end types in range-based ‘for’ statement) vsgqt:arm64-linux=cascade vsgqt(android)=fail # https://github.com/vsg-dev/vsgQt/pull/53 vsgxchange[gdal]:arm64-linux=cascade vst3sdk:arm64-linux=fail vtk:arm64-linux=cascade vtk[all]:arm64-linux=cascade vtk[all]:x64-linux=feature-fails # Wait for fix: https://github.com/microsoft/vcpkg/pull/29260 vtk[all]:x64-windows-static=cascade # hdf5[parallel] only supports !staticcrt vtk[all](android)=cascade vtk[all](arm64 & windows)=cascade # vtk-m[core] only supports !x86 & !(arm & windows) vtk[all,cuda,mpi,vtkm]:x86-windows=cascade vtk[core,all,atlmfc,cgns,cuda,debugleaks,fontconfig,gdal,geojson,libharu,libtheora,mpi,netcdf,opengl,openmp,openvr,paraview,proj,python,qt,seacas,sql,tbb,utf8,vtkm]:x64-windows-static-md=combination-fails vtk[core,python,paraview]:arm64-linux=options # paraview's transitive gfortran linkage breaks python vtk[core,python,paraview]:x64-linux=options # paraview's transitive gfortran linkage breaks python vtk[cuda]:arm64-osx=cascade vtk[cuda](arm64 & windows)=cascade # cuda[core] only supports (windows & x64 & !xbox) | (linux & x64) | (linux & arm64) vtk[gdal](android)=cascade vtk[ioocct]=skip vtk[mpi](arm64 & windows)=cascade # vtk-m[core] only supports !x86 & !(arm & windows) vtk[openmp]:arm64-osx=feature-fails vtk[openvr]:arm64-osx=cascade vtk[openvr]:x64-windows-static=cascade vtk[openvr](arm64 & windows)=cascade # openvr[core] only supports !(arm | osx | android) vtk[paraview](android)=cascade vtk[vtkm](arm64 & windows)=cascade # vtk-m[core] only supports !x86 & !(arm & windows) vtk-dicom:arm64-linux=cascade vtk-m[cuda]:arm64-linux=skip # CUDA clash with default gcc in Ubuntu 22.04, and not a quick failure. vtk-m[cuda]:arm64-osx=cascade vtk-m[cuda]:x64-linux=skip vtk-m[cuda](arm64 & windows)=cascade # vtk-* cuda[core] only supports (windows & x64 & !xbox) | (linux & x64) | (linux & arm64) vtk-m[cuda](windows & !arm64)=feature-fails vtk-m[mpi]:arm64-linux=cascade vtk-m[omp]:arm64-osx=feature-fails # no openmp on default osx toolchain vtk-m[omp](windows)=feature-fails # needs openmp 4.0, msvc has openmp 2.0 vulkan[tools]:arm64-osx=cascade vulkan-loader[directfb]:arm64-linux=cascade vulkan-sdk-components:arm64-linux=cascade vulkan-sdk-components[tools](osx | staticcrt)=cascade vulkan-tools:arm64-linux=fail vulkan-validationlayers:arm64-linux=fail wangle:arm64-linux=cascade wangle:arm64-windows=cascade wangle:x86-windows=cascade wasmedge[aot]:arm64-linux=cascade wayland[force-build](!native)=cascade # needs wayland[force-build](native) wayland[force-build](native)=feature-fails # error: To build wayland libraries the `force-build` feature must be enabled and the X_VCPKG_FORCE_VCPKG_WAYLAND_LIBRARIES triplet variable must be set. wayland-protocols[force-build]=cascade # needs wayland[force-build](native) wayland-protocols(windows | osx)=cascade # needs wayland whisper-cpp[cuda]:arm64-linux=cascade wiiuse:arm64-linux=fail winpcap=skip # Broken and merked for removal. See https://github.com/microsoft/vcpkg/pull/33215 wpilib:arm-neon-android=fail # requires full c++20 support, ignore `wpilib` build errors until upgrade to a new release version wpilib:arm64-android=fail # requires full c++20 support wpilib:arm64-linux=fail wpilib:arm64-osx=fail wpilib:arm64-windows-static-md=fail wpilib:arm64-windows=fail wpilib:x64-android=fail # requires full c++20 support wpilib:x64-linux=fail wpilib:x64-windows-release=fail wpilib:x64-windows-static-md=fail wpilib:x64-windows-static=fail wpilib:x64-windows=fail wpilib:x86-windows=fail wpilib[allwpilib]:arm64-linux=cascade wpilib[cameraserver]:arm64-linux=cascade wt:arm64-linux=cascade wxchartdir:arm64-linux=cascade wxchartdir:arm64-windows=cascade wxcharts:arm64-linux=cascade wxwidgets:arm64-linux=cascade xbitmaps(!windows)=fail # error: must install xorg-macros 1.20 or later before running autoconf/autogen xdigest:arm64-linux=fail xerces-c[xmlch-wchar](!windows)=feature-fails # wchar_t must be 16 bit and not 32 yara:arm64-linux=fail yoctolib:arm64-linux=cascade z3:arm64-linux=fail zeroc-ice:arm64-linux=fail zeroc-ice[icediscovery]:x64-windows-static-md=cascade zeroc-ice[icediscovery]:x64-windows-static=cascade zeromq[sodium]:arm64-linux=cascade zeromq[websockets-secure]:arm64-windows=cascade zeromq[websockets-secure]:x64-windows-static-md=cascade zeromq[websockets-secure]:x64-windows-static=cascade zeromq[websockets-secure]:x64-windows=cascade zeromq[websockets-secure]:x86-windows=cascade zimpl:arm64-linux=fail zkpp:arm64-linux=cascade zookeeper:arm64-linux=fail zookeeper:arm64-osx=fail zookeeper:arm64-windows-static-md=fail zookeeper:arm64-windows=fail zookeeper:x64-linux=fail zookeeper:x64-windows-release=fail zookeeper:x64-windows-static-md=fail zookeeper:x64-windows-static=fail zookeeper:x64-windows=fail zookeeper:x86-windows=fail ================================================ FILE: scripts/cmake/compile_wrapper_consider_clang-cl.patch ================================================ diff --git a/usr/share/automake-1.16/compile b/usr/share/automake-1.16/compile index 2078fc833..dfc946593 100755 --- a/usr/share/automake-1.16/compile +++ b/usr/share/automake-1.16/compile @@ -256,6 +256,7 @@ EOF exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; ================================================ FILE: scripts/cmake/execute_process.cmake ================================================ if (NOT DEFINED Z_VCPKG_OVERRIDEN_EXECUTE_PROCESS) set(Z_VCPKG_OVERRIDEN_EXECUTE_PROCESS ON) if (DEFINED VCPKG_DOWNLOAD_MODE) function(execute_process) message(FATAL_ERROR "This command cannot be executed in Download Mode.\nHalting portfile execution.\n") endfunction() set(Z_VCPKG_EXECUTE_PROCESS_NAME "_execute_process") else() set(Z_VCPKG_EXECUTE_PROCESS_NAME "execute_process") endif() endif() ================================================ FILE: scripts/cmake/vcpkg_acquire_msys.cmake ================================================ # Full mirror list: https://github.com/msys2/MSYS2-packages/blob/master/pacman-mirrors/mirrorlist.msys set(Z_VCPKG_ACQUIRE_MSYS_MIRRORS # Alternative primary "https://repo.msys2.org/" # Tier 1 "https://mirror.yandex.ru/mirrors/msys2/" "https://mirrors.tuna.tsinghua.edu.cn/msys2/" "https://mirrors.ustc.edu.cn/msys2/" "https://mirror.selfnet.de/msys2/" ) # Downloads the given package function(z_vcpkg_acquire_msys_download_package out_archive) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "URL;SHA512;FILENAME" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "internal error: z_vcpkg_acquire_msys_download_package passed extra args: ${arg_UNPARSED_ARGUMENTS}") endif() string(REPLACE "https://repo.msys2.org/" "https://mirror.msys2.org/" all_urls "${arg_URL}") foreach(mirror IN LISTS Z_VCPKG_ACQUIRE_MSYS_MIRRORS) string(REPLACE "https://mirror.msys2.org/" "${mirror}" mirror_url "${arg_URL}") list(APPEND all_urls "${mirror_url}") endforeach() vcpkg_download_distfile(msys_archive URLS ${all_urls} SHA512 "${arg_SHA512}" FILENAME "${arg_FILENAME}" QUIET ) set("${out_archive}" "${msys_archive}" PARENT_SCOPE) endfunction() # Declares a package # Writes to the following cache variables: # - Z_VCPKG_MSYS_PACKAGES_AVAILABLE # - Z_VCPKG_MSYS_${arg_NAME}_URL # - Z_VCPKG_MSYS_${arg_NAME}_SHA512 # - Z_VCPKG_MSYS_${arg_NAME}_FILENAME # - Z_VCPKG_MSYS_${arg_NAME}_DEPS # - Z_VCPKG_MSYS_${arg_NAME}_PATCHES # - Z_VCPKG_MSYS_${arg_NAME}_DIRECT # - Z_VCPKG_MSYS_${arg_NAME}_PROVIDES # - Z_VCPKG_MSYS_${alias}_PROVIDED_BY function(z_vcpkg_acquire_msys_declare_package) cmake_parse_arguments(PARSE_ARGV 0 arg "DIRECT" "NAME;URL;SHA512" "DEPS;PATCHES;PROVIDES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "internal error: z_vcpkg_acquire_msys_declare_package passed extra args: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(required_arg IN ITEMS URL SHA512) if(NOT DEFINED arg_${required_arg}) message(FATAL_ERROR "internal error: z_vcpkg_acquire_msys_declare_package requires argument: ${required_arg}") endif() endforeach() if(arg_DIRECT) if(NOT arg_NAME) message(FATAL_ERROR "internal error: z_vcpkg_acquire_msys_declare_package requires argument: NAME") endif() get_filename_component(filename "${arg_URL}" NAME) else() if(NOT arg_URL MATCHES [[^https://mirror\.msys2\.org/.*/(([^/]*)-[^-/]+-[^-/]+-[^-/]+\.pkg\.tar\.(xz|zst))$]]) message(FATAL_ERROR "internal error: regex does not match supplied URL to vcpkg_acquire_msys: ${arg_URL}") endif() set(filename "msys2-${CMAKE_MATCH_1}") if(NOT DEFINED arg_NAME) set(arg_NAME "${CMAKE_MATCH_2}") endif() if(Z_VCPKG_MSYS_${arg_NAME}_DIRECT) return() endif() if(arg_NAME IN_LIST Z_VCPKG_MSYS_PACKAGES_AVAILABLE) message(FATAL_ERROR "Redeclaration of package '${arg_NAME}'") endif() endif() list(APPEND Z_VCPKG_MSYS_PACKAGES_AVAILABLE "${arg_NAME}") set(Z_VCPKG_MSYS_PACKAGES_AVAILABLE "${Z_VCPKG_MSYS_PACKAGES_AVAILABLE}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_URL "${arg_URL}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_SHA512 "${arg_SHA512}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_FILENAME "${filename}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_DEPS "${arg_DEPS}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_PATCHES "${arg_PATCHES}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_DIRECT "${arg_DIRECT}" CACHE INTERNAL "") set(Z_VCPKG_MSYS_${arg_NAME}_PROVIDES "${arg_PROVIDES}" CACHE INTERNAL "") foreach(name IN LISTS arg_PROVIDES) set(Z_VCPKG_MSYS_${name}_PROVIDED_BY "${arg_NAME}" CACHE INTERNAL "") endforeach() endfunction() # Collects all required packages to satisfy the given input set # Writes to the following cache variables: # - Z_VCPKG_MSYS__ARCHIVE function(z_vcpkg_acquire_msys_download_packages) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "OUT_UNKNOWN;OUT_RESOLVED" "PACKAGES") set(backlog "${arg_PACKAGES}") list(REMOVE_DUPLICATES backlog) list(FILTER arg_PACKAGES EXCLUDE REGEX "^mingw64") if(NOT arg_PACKAGES STREQUAL "" AND NOT "msys2-runtime" IN_LIST arg_PACKAGES) list(APPEND backlog "msys2-runtime") endif() set(unknown "") set(resolved "") set(need_msys_runtime 0) while(NOT backlog STREQUAL "") list(POP_FRONT backlog name) if(DEFINED Z_VCPKG_MSYS_${name}_PROVIDED_BY AND NOT name IN_LIST Z_VCPKG_MSYS_PACKAGES_AVAILABLE) set(name "${Z_VCPKG_MSYS_${name}_PROVIDED_BY}") if(name IN_LIST resolved) continue() endif() endif() if(NOT name IN_LIST Z_VCPKG_MSYS_PACKAGES_AVAILABLE) list(APPEND unknown "${name}") continue() endif() list(APPEND resolved "${name}") list(REMOVE_ITEM Z_VCPKG_MSYS_${name}_DEPS ${resolved} ${backlog}) list(APPEND backlog ${Z_VCPKG_MSYS_${name}_DEPS}) z_vcpkg_acquire_msys_download_package(archive URL "${Z_VCPKG_MSYS_${name}_URL}" SHA512 "${Z_VCPKG_MSYS_${name}_SHA512}" FILENAME "${Z_VCPKG_MSYS_${name}_FILENAME}" ) set(Z_VCPKG_MSYS_${name}_ARCHIVE "${archive}" CACHE INTERNAL "") endwhile() if(DEFINED arg_OUT_UNKNOWN) set("${arg_OUT_UNKNOWN}" "${unknown}" PARENT_SCOPE) endif() if(DEFINED arg_OUT_RESOLVED) set("${arg_OUT_RESOLVED}" "${resolved}" PARENT_SCOPE) endif() endfunction() # Returns a stable collection of hashes, regardless of package order function(z_vcpkg_acquire_msys_collect_hashes out_hash) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "" "PACKAGES") list(SORT arg_PACKAGES) set(result "") foreach(name IN LISTS arg_PACKAGES) if(NOT DEFINED Z_VCPKG_MSYS_${name}_SHA512) message(FATAL_ERROR "SHA512 unknown for '${name}'.") endif() string(APPEND result "${Z_VCPKG_MSYS_${name}_SHA512}") foreach(patch IN LISTS Z_VCPKG_MSYS_${name}_PATCHES) file(SHA512 "${patch}" patch_sha) string(APPEND result "${patch_sha}") endforeach() endforeach() set(${out_hash} "${result}" PARENT_SCOPE) endfunction() function(vcpkg_acquire_msys out_msys_root) cmake_parse_arguments(PARSE_ARGV 1 "arg" "NO_DEFAULT_PACKAGES;Z_ALL_PACKAGES" "Z_DECLARE_EXTRA_PACKAGES_COMMAND" "PACKAGES;DIRECT_PACKAGES" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_acquire_msys was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() z_vcpkg_acquire_msys_declare_all_packages() if(NOT "${arg_Z_DECLARE_EXTRA_PACKAGES_COMMAND}" STREQUAL "") cmake_language(CALL "${arg_Z_DECLARE_EXTRA_PACKAGES_COMMAND}") endif() set(requested "${arg_PACKAGES}") if(arg_Z_ALL_PACKAGES) set(requested "${Z_VCPKG_MSYS_PACKAGES_AVAILABLE}") elseif(NOT arg_NO_DEFAULT_PACKAGES) list(APPEND requested bash coreutils file gawk grep gzip diffutils make pkgconf sed) endif() if(DEFINED arg_DIRECT_PACKAGES AND NOT arg_DIRECT_PACKAGES STREQUAL "") list(LENGTH arg_DIRECT_PACKAGES direct_packages_length) math(EXPR direct_packages_parity "${direct_packages_length} % 2") math(EXPR direct_packages_number "${direct_packages_length} / 2") math(EXPR direct_packages_last "${direct_packages_number} - 1") if(direct_packages_parity EQUAL 1) message(FATAL_ERROR "vcpkg_acquire_msys(... DIRECT_PACKAGES ...) requires exactly pairs of URL/SHA512") endif() set(direct_packages "") # direct_packages_last > direct_packages_number - 1 > 0 - 1 >= 0, so this is fine foreach(index RANGE "${direct_packages_last}") math(EXPR url_index "${index} * 2") math(EXPR sha512_index "${url_index} + 1") list(GET arg_DIRECT_PACKAGES "${url_index}" url) list(GET arg_DIRECT_PACKAGES "${sha512_index}" sha512) get_filename_component(filename "${url}" NAME) if(NOT filename MATCHES "^(.*)-[^-]+-[^-]+-[^-]+\.pkg\.tar\..*$") message(FATAL_ERROR "Cannot determine package name for '${filename}'") endif() set(pkg_name "${CMAKE_MATCH_1}") z_vcpkg_acquire_msys_declare_package( NAME "${pkg_name}" URL "${url}" SHA512 "${sha512}" DIRECT ) list(APPEND direct_packages "${pkg_name}") endforeach() list(INSERT requested 0 ${direct_packages}) endif() z_vcpkg_acquire_msys_download_packages( PACKAGES ${requested} OUT_RESOLVED resolved OUT_UNKNOWN unknown ) if(NOT unknown STREQUAL "") message(FATAL_ERROR "Unknown packages were required for vcpkg_acquire_msys(${requested}): ${unknown} This can be resolved by explicitly passing URL/SHA pairs to DIRECT_PACKAGES.") endif() set(Z_VCPKG_MSYS_PACKAGES_RESOLVED "${resolved}" CACHE INTERNAL "Export for CI") z_vcpkg_acquire_msys_collect_hashes(hashes PACKAGES ${resolved}) string(SHA512 total_hash "${hashes}") string(SUBSTRING "${total_hash}" 0 16 total_hash) set(path_to_root "${DOWNLOADS}/tools/msys2/${total_hash}") if(NOT EXISTS "${path_to_root}") file(REMOVE_RECURSE "${path_to_root}.tmp") file(MAKE_DIRECTORY "${path_to_root}.tmp/tmp") foreach(name IN LISTS resolved) file(ARCHIVE_EXTRACT INPUT "${Z_VCPKG_MSYS_${name}_ARCHIVE}" DESTINATION "${path_to_root}.tmp" ) if(Z_VCPKG_MSYS_${name}_PATCHES) z_vcpkg_apply_patches( SOURCE_PATH "${path_to_root}.tmp" PATCHES ${Z_VCPKG_MSYS_${name}_PATCHES} ) endif() endforeach() file(RENAME "${path_to_root}.tmp" "${path_to_root}") endif() # Due to skipping the regular MSYS2 installer, # some config files need to be established explicitly. if(NOT EXISTS "${path_to_root}/etc/fstab") # This fstab entry removes the cygdrive prefix from paths. file(WRITE "${path_to_root}/etc/fstab" "none / cygdrive binary,posix=0,noacl,user 0 0") endif() # No pkgconfig hints from msys2 installation file(REMOVE_RECURSE "${path_to_root}/clangarm64/lib/pkgconfig" "${path_to_root}/clang64/lib/pkgconfig" "${path_to_root}/mingw32/lib/pkgconfig" "${path_to_root}/mingw64/lib/pkgconfig" "${path_to_root}/ucrt64/lib/pkgconfig" "${path_to_root}/usr/lib/pkgconfig" ) message(STATUS "Using msys root at ${path_to_root}") set("${out_msys_root}" "${path_to_root}" PARENT_SCOPE) endfunction() # Expand this while CMAKE_CURRENT_LIST_DIR is for this file. set(Z_VCPKG_AUTOMAKE_CLANG_CL_PATCH "${CMAKE_CURRENT_LIST_DIR}/compile_wrapper_consider_clang-cl.patch") macro(z_vcpkg_acquire_msys_declare_all_packages) set(Z_VCPKG_MSYS_PACKAGES_AVAILABLE "" CACHE INTERNAL "") # The following list can be updated via test port vcpkg-ci-msys2[update-all]. # Upstream binary package information is available via # https://packages.msys2.org/search?t=binpkg&q= # msys subsystem z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/autoconf-wrapper-20250528-1-any.pkg.tar.zst" SHA512 a25b4d2a239bce094e6d4019d943c8381df92e3f982464f01cdb6fd79a449094ba44e0e45032270bd0f9e6c98cdaf0ab3560fc97084aaaeb708812297ee62996 PROVIDES autoconf DEPS autoconf2.72 bash sed ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/autoconf2.72-2.72-3-any.pkg.tar.zst" SHA512 307751b00b6a9729673d0af35ccf327041880f20498143100053a9d914927e86dd20a4aa4cd9e83e3d4e7e27c2d068cfc0313c6cab4f103955e4dafede22f4d0 DEPS awk bash diffutils m4 perl sed ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/autoconf-archive-2024.10.16-1-any.pkg.tar.zst" SHA512 bb7a1a14d5e291da646c00e0bcc6663500c9c0ac00079a88d06956fa2e37749c3c2431cba647e41ce3840f323b73198ea0cf54e07014ac2345de47e7069d0581 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/automake-wrapper-20250528-1-any.pkg.tar.zst" SHA512 d1c45179feb0b9b25002943f2a29f603c816e9e440ecc8d073733767bcd5b223bf6daad70f4a8aa513471d4967c71e1236724ba77279adc219963a3985dbdb97 PROVIDES automake DEPS automake1.16 automake1.17 automake1.18 bash gawk ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/automake1.16-1.16.5-1-any.pkg.tar.zst" SHA512 62c9dfe28d6f1d60310f49319723862d29fc1a49f7be82513a4bf1e2187ecd4023086faf9914ddb6701c7c1e066ac852c0209db2c058f3865910035372a4840a DEPS bash perl PATCHES "${Z_VCPKG_AUTOMAKE_CLANG_CL_PATCH}" ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/automake1.17-1.17-1-any.pkg.tar.zst" SHA512 cb935efc2e303e6f88eee3ab12ca1311c32d3c92e73e04b00b6b9269ce512649efa09af03d22a733f9cc4ebbb99fc64d8dcc123bf68fb914a20bf3cc651375f5 DEPS bash perl ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/automake1.18-1.18.1-1-any.pkg.tar.zst" SHA512 d994eb278c5f341d6fe4b89a9034d486b2eaa880c0bd84160862352f964786d7d2220d91549515f02c2d01b5a978be7e8e1551ed2e89ddd449cfbcf05f6354e5 DEPS bash perl ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/bash-5.3.009-1-x86_64.pkg.tar.zst" SHA512 b142bab3f4ae6b17a397c80186eab2e564be75dbc6a16f8b4d010e2be7d0e99a8053518a7b050a34c7914b4d2eae731c8ca41fd9061ef4f825540db063fe5c6c PROVIDES sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/binutils-2.45.1-1-x86_64.pkg.tar.zst" SHA512 97e6f0919c7014ba8d11f4a367dd841afa5e9182b01adc3d28bbb33c821940ea2ddeb92a7f3ad2e223759e8f990e068f12e424f8246da439b455287f31e0ba64 DEPS libiconv libintl zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/bzip2-1.0.8-4-x86_64.pkg.tar.zst" SHA512 1d2ce42c6775c0cb0fe9c2863c975fd076579131d0a5bce907355315f357df4ee66869c9c58325f5b698f3aba2413b2823deda86dd27fdb6e2e5e5d4de045259 DEPS libbz2 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/coreutils-8.32-5-x86_64.pkg.tar.zst" SHA512 63f99348e654440458f26e9f52ae3289759a5a03428cf2fcf5ac7b47fdf7bf7f51d08e3346f074a21102bee6fa0aeaf88b8ebeba1e1f02a45c8f98f69c8db59c DEPS libiconv libintl gmp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/diffutils-3.12-1-x86_64.pkg.tar.zst" SHA512 9b486fa45e827392eda39cff268530b0f3bdc5cc80881b55ae610828f861e6a63b790f395976277085b469423264ade705e5a0ecdf7b22fc8c017fc3d90acc78 DEPS libiconv libintl sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/file-5.46-2-x86_64.pkg.tar.zst" SHA512 1225311082642b094991c7467ba88eaca3b16e680d736979b6b7f750468b05f5a410e88f7d211e2159e1e80b6aa84c882b26e68296a27f5ee9c3998b61f73fb5 DEPS gcc-libs libbz2 liblzma libzstd zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/findutils-4.10.0-2-x86_64.pkg.tar.zst" SHA512 d817f31b1130f73ababf004585e540c2adc14b2517ae350c73ef3f9b6c25b92ee377b24f6695980fd815c91fa8c870e574633092bd9436b7dbfb30b9d782b5fc DEPS libintl libiconv ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gawk-5.3.2-1-x86_64.pkg.tar.zst" SHA512 8d33ff3772fcfd666ebf2211b92942f9ee4af6cd80d4f69762cdac0afb8522aad85244a1701df80a9980c8dba58e7b70d757146945e28cb77e80160b27f2a49f PROVIDES awk DEPS libintl libreadline mpfr sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gcc-libs-15.2.0-1-x86_64.pkg.tar.zst" SHA512 1d7705870a3e65f4c485d9572f179b8ae1e9837c558ca1448ba1e94faa836ae0a87b19b8b53965f5c783267f2497926589b42112c9e3a9ef64aae21918d9dc63 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gettext-0.22.5-1-x86_64.pkg.tar.zst" SHA512 50e1969179c6b33376396f200f6c25f709a6104d253121a8148bc5591b140c6f1729dc703374315a96137fa7cfec2abe427ea63bce243d5c0729cee8964ffbd3 DEPS libasprintf libgettextpo libintl ) # This package shouldn't be a here z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gettext-devel-0.22.5-1-x86_64.pkg.tar.zst" SHA512 6de3e04ba238353df65111120ec4850b49f5797f27626ebc27c561390f75b4b1b25c84ac377f6ab15d586ca3ee3940eaf3aba074db1a50d8b8930c1135eae7cf DEPS gettext # libiconv-devel ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gmp-6.3.0-2-x86_64.pkg.tar.zst" SHA512 739ef6b80f98cac58020d559f407fdabf0f70a1fd8ced4d2473d67427a263ea87ded3efd6c38c221e0a80c7791991c940d7823364eee594ad40cd03694a6d36e ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/grep-1~3.0-7-x86_64.pkg.tar.zst" SHA512 8a5248d0aa7c8d9e57a810f0b03b76db31ebc3c64158886804fdc82095709d496fee433d3aa744484c6cdcb5877ebe95d03b15486cc7bdb13ba33cfbf71e4e14 DEPS libiconv libintl libpcre sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/gzip-1.14-1-x86_64.pkg.tar.zst" SHA512 cc316915d1dc0090b5acb385ce392a3ac2c37e1df4f72198a976f9b0f7c4b42d15cf14229bc06c19c22ce39dca79389e426cff592437e05df77f453ecc6f42c5 DEPS bash ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libasprintf-0.22.5-1-x86_64.pkg.tar.zst" SHA512 26ad060897f86cfa8257657d9ca3f64302c3bf949369ef29edd1d2f1525cbd462351d3177ba036ae91e8dec0c8501afdd5a666c1e51d7693d7f16f05406d35dd DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libbz2-1.0.8-4-x86_64.pkg.tar.zst" SHA512 5a7be6d04e55e6fb1dc0770a8c020ca24a317807c8c8a4813146cd5d559c12a6c61040797b062e441645bc2257b390e12dd6df42519e56278a1fe849fe76a1c4 DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libgettextpo-0.22.5-1-x86_64.pkg.tar.zst" SHA512 a4ea2c576de4dca804d013e257e99a185eacafa558bd3793ece3216a21884c0ff23b5369cd8954bf7258e8cea9ffe9197d8a752baa67b5e895daac83de93d2f0 DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libiconv-1.18-1-x86_64.pkg.tar.zst" SHA512 77979ed35af45aa5bb7fb6b07d649e8eafa69ebdc8e421c2a7bf69ee567f814b38623a12be0736fb56c17c0aeff69ba769bc52110f62f8e5fdc5bcf334d88d44 DEPS gcc-libs libintl ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libintl-0.22.5-1-x86_64.pkg.tar.zst" SHA512 1f1826763bcc252f15a0a5a27fbf596a2b5fad5e092bdff17af8231c373c0de17be7411938068aac0f0a617edbb32533de6619f6c58ebcdec7480c210673af45 DEPS gcc-libs libiconv ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/liblzma-5.8.2-1-x86_64.pkg.tar.zst" SHA512 1a9353996e7da8b90ff6a95b4199953a0c72350f6e1b7133373161ce221640ae63260ebaf95278bb099432bd3e30b1138b3da98b6e5a1a4b9af1223e0cda8b54 # This package installs only a DLL. No extra deps. DEPS # gettext libiconv sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libpcre-8.45-5-x86_64.pkg.tar.zst" SHA512 3a0fffaf4d24bac07847220bac70b0e3f15645ea04171c5f4079966cbec01cee9138e36e5100b989af2dcce67660756c060fb3298c86fa120779c15d083231eb DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libreadline-8.3.003-1-x86_64.pkg.tar.zst" SHA512 216c30e8307c0f72994d52955e4c00ef08f16d8bd9bd82db92c0294a81db05849202c670c62cd5060e871fdcc6d3cb34fbb51e9b0a9ea3a67c6104d384aeb5d3 DEPS ncurses ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libtool-2.5.4-4-x86_64.pkg.tar.zst" SHA512 72589fe4526fffac7aaea38a86c2c037cf1094f7bfe1be65543221a3104dfa2ef7d8d6adb8758119c1a74368c881d690988cd3cbe7502a5202d351382271c9c5 DEPS bash # extra deps which are really needed awk findutils grep sed tar ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libxcrypt-4.5.2-1-x86_64.pkg.tar.zst" SHA512 98b775bc22fe120846b60353483f3ce8f9aacb33941392a49c96720e0217a76ee44cf867dcd61055d65933e0eae157af6d99bcd2221ab512de876030d76ccb9a ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/libzstd-1.5.7-1-x86_64.pkg.tar.zst" SHA512 02cf577567773f7f93f4df404d3b0a62d0cab4b2b63c76d572ef3af591e9fe6571b3d7e79e868ae5d7967b8f540941489a4004367c64113e1688f392827fc6cd DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/m4-1.4.19-2-x86_64.pkg.tar.zst" SHA512 7471099ba7e3b47e5b019dc0e563165a8660722f2bbd337fb579e6d1832c0e7dcab0ca9297c4692b18add92c4ad49e94391c621cf38874e2ff63d4f926bac38c DEPS bash gcc-libs libiconv ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/make-4.4.1-2-x86_64.pkg.tar.zst" SHA512 b55caaf0d54b784b5dffcbb75a1862fc7359b91caa1e60234e208de03c74159fd003d68f5dddd387adef752bb13805e654f17ec5cb6add51546b9e30a1091b61 DEPS libintl sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/mpfr-4.2.2-1-x86_64.pkg.tar.zst" SHA512 80fa09c637c4ff3943b20a5b74e945c7084e1f7d571d7124a5b45926533a24125a0027167f99eb9c1e9f96fc3d61344e23c0b4471815846d90367bcfb8f89eba DEPS gmp ) if(X_VCPKG_USE_MSYS2_RUNTIME_3.4) # temporary option, for Windows 7.0 and 8.0, or in case of regressions z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/msys2-runtime-3.4-3.4.10-2-x86_64.pkg.tar.zst" SHA512 3fa087d4eb4e260785b81d5b6f4400ec128a83ff940da732bf147dfde457224573fa467e735b63c9a138872f5c9830f3684f824b2aa5d344fb95dfb91632f832 PROVIDES msys2-runtime ) else() z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/msys2-runtime-3.6.5-1-x86_64.pkg.tar.zst" SHA512 974dbe29e35b04a4a4f5ffbfed1327702c5eb34cfbfafd45e00df3553e66ca3a4a92cf8b69dbb42b8e3c2ef034281ea73888c03c271ad28ce12fee32ce1bbf3d ) endif() z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/ncurses-6.5.20240831-2-x86_64.pkg.tar.zst" SHA512 ff84849e3857e31fd4f3acc48e8a9bc2fa6ff226f848636c206fb322e7c49de9677c24784575ad5d13620f31d6203739b0f7ab068081bef0d8ab873c4473ee4d DEPS gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/patch-2.7.6-3-x86_64.pkg.tar.zst" SHA512 dd5069cab243c8367152b1b8799a199103a7a86be2d478a9f4f84406591ad892284859531ec29ca09de8f278e6c97492896a08b6a08bcbc3ac09ac297e653ec0 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/perl-5.40.3-1-x86_64.pkg.tar.zst" SHA512 99128c78b10cefea1ebea3352e6305b31a22062d7d7a5f2ba31289a1c41621d2a14a31e21371b6e2459207a3d832cd4f94d40ab59adf5827a564060d529d0892 DEPS coreutils libxcrypt sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/pkgconf-2.5.1-1-x86_64.pkg.tar.zst" SHA512 5af92108c94896a0bef549ef248909a30627259e25d845f08e028bd23ac1d10004868d2bf8bf35d6e27a363aa30d0a8b1bb312ac15fc8fc18207e2c92e37c2c1 PROVIDES pkg-config ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/sed-4.9-1-x86_64.pkg.tar.zst" SHA512 8006a83f0cc6417e3f23ffd15d0cbca2cd332f2d2690232a872ae59795ac63e8919eb361111b78f6f2675c843758cc4782d816ca472fe841f7be8a42c36e8237 DEPS libintl sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/tar-1.35-3-x86_64.pkg.tar.zst" SHA512 73ad6a144c259368f4307b9570b8dd6faf57b2c3fc5af32e311621edc757efa33d99abdb26aecad682f91eee11414c9e5b9b104bb028a58a952b1f736b4cbc2e DEPS libiconv libintl sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/texinfo-7.2-2-x86_64.pkg.tar.zst" SHA512 dcec28ff844abd424cf9ff0deea568059034a2c0b7bb28b2bfea121b59d46a3e35125500a654f70b0884c00ab096b35df12aa551f22248d5f92ae663d5814ef5 DEPS perl sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/unzip-6.0-3-x86_64.pkg.tar.zst" SHA512 1d6df49e826617ef3d3976be33361e189d8a5aee3a33ae79474fd08ca44ebd113981e6ba25c968b3cf5fb9826edd42dee21a97261cbc86fd8b143c950ba1f357 DEPS bash libbz2 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/which-2.23-4-x86_64.pkg.tar.zst" SHA512 ad8ad602b76719b13cf8e650ca493fe9433cfd35d48bda33ce38d0523e9ade5702f89a62508ec0e2a453639a78ed54fc212f76ce8861ac58ac81e6eed476397a DEPS sh ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/xz-5.8.2-1-x86_64.pkg.tar.zst" SHA512 1bd7c718af1b5dd6ce2910aaea37236e5744faea2a514547b2852a1748b1f91d1d679208c4334b1d5dc6d6e69880192c5c10503d4de752e163dc41c39f57ba29 DEPS libiconv libintl liblzma ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/msys/x86_64/zlib-1.3.1-1-x86_64.pkg.tar.zst" SHA512 a432b0f927d342b678df706487595eff1b780371548933f956adcf697eea11ddbca2863d9d9fb88675a7040dcfddab56f8f71a8ae4d0cd4969e715545c77e87c DEPS gcc-libs ) # mingw64 subsystem z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-bzip2-1.0.8-3-any.pkg.tar.zst" SHA512 fb1ae524d7b04e1f35c3101c318136dbe08da8093bda98f6aea7e6c2564fec5f8533fb61cac5001b6425105cd982511964ec04099c6651f990dc3b8baf7f7057 DEPS mingw-w64-x86_64-gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ca-certificates-20250419-1-any.pkg.tar.zst" SHA512 f005061251cfb3dc540f4fe815b35b4078c06c39960067799dfc10656630d2e236f41f763c5b2d40a7ac9dd8af54402d9219f11abe4bde7792a95ee5f04dbeb4 DEPS mingw-w64-x86_64-p11-kit ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-expat-2.7.3-1-any.pkg.tar.zst" SHA512 c1d5487022d826cadab8f827e344e10227552c788c59c13f2928afa85a063c50ef3851150e621154be5c834d368966cd58791d0d31bb4175cd1d7d294e221922 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libgfortran-15.2.0-8-any.pkg.tar.zst" SHA512 a8938b388ff19f1f671ac56ac5fb6a68f22f02c0c4c3731bbcdaa6512beb2dc9e981bfbae711b75760a6bacd586b50f01aacfbe530930aa86f27452fe3a523ad PROVIDES mingw-w64-x86_64-fc-libs DEPS mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-libs-15.2.0-8-any.pkg.tar.zst" SHA512 03f6e7561bcd16edf2468522d7b3e987d1f7b9f2001371ad5dcb862c0876fd617ba33c2b1e43fc6acba2ab5798e038ddffd07dbc7e8a90867533a1411b2f98cb PROVIDES mingw-w64-x86_64-omp mingw-w64-x86_64-cc-libs DEPS mingw-w64-x86_64-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gettext-runtime-0.26-2-any.pkg.tar.zst" SHA512 3b6d0b6fc0ea6a6082d09c15061b0057995e1c2b7512e4c1fbe9816f9f87bdac75bbdae2451267fbe7a48bbbca87e460fdde6858bff9c7ab5f8dd254dab09fd7 DEPS mingw-w64-x86_64-cc-libs mingw-w64-x86_64-libiconv ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gmp-6.3.0-2-any.pkg.tar.zst" SHA512 38ab150051d787e44f1c75b3703d6c8deb429d244acb2a973ee232043b708e6c9e29a1f9e28f12e242c136d433e8eb5a5133a4d9ac7b87157a9749a8d215d2f0 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libffi-3.5.2-1-any.pkg.tar.zst" SHA512 75f4cb15257c362d760b3cd26b63ce65fdb91929ce7cf907c82ad04d9664da071df7740b5e92ad3c2bc091cf4d89626954a53f5ff35b0729ee279bee7aefc924 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libiconv-1.18-1-any.pkg.tar.zst" SHA512 7aed58286d279699dede96c74e649cea7b78942e51350d277aca9272351d3b645ecfd129b5bbafd40f7e95bfc0187c9df118eca47f2cb795811752a18bcb3745 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libsystre-1.0.2-2-any.pkg.tar.zst" SHA512 f042e762fa6f37017fedde3dfac5e4956e63e67d45bfcafeb83a125e5a76e970e9ab8a94de80a7b282bea3988948814d2d8d23fc768afb85eac1c1a4679d4f70 PROVIDES mingw-w64-x86_64-libgnurx DEPS mingw-w64-x86_64-libtre ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtasn1-4.20.0-1-any.pkg.tar.zst" SHA512 989beaec97ff400127cafb8202f8e181eecb4ca429ac5b90a3a54cde64e030ce29a259e680ebf7dae223c7374c72632f5f33628e0855387a324f46686cfd8a9b DEPS mingw-w64-x86_64-gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libtre-0.9.0-2-any.pkg.tar.zst" SHA512 e2ed8902c7a793ae71643c8063682beceb6f67ab8ad2781e50e6abee9ff9d6259ca5e3d94d7bbca3f011051e85912079576dfebffd1c8a584ef180658ee49e38 DEPS mingw-w64-x86_64-gettext-runtime ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-libwinpthread-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 1273dc74f22e5c006396cbb56714e8386031c9e811d692c1bbfbc4ca2c7b246be08bf384bc283ba6123cd3cd4e49f2496d0a3249843df9c808367079a3d4aab8 PROVIDES mingw-w64-x86_64-libwinpthread-git ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpc-1.3.1-2-any.pkg.tar.zst" SHA512 3fe183d4af3b3935a4394502eab75a8f7b7692f551fd44e54c67935a4691388d23a021ee1147f0345ed27ffe8a8db3e9e7e37caf2348df3413e0acd519c12a0c DEPS mingw-w64-x86_64-gmp mingw-w64-x86_64-mpfr ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpdecimal-4.0.1-1-any.pkg.tar.zst" SHA512 5a2d1b31cb5029e65c95b00f0614123855774b398335491b1bcf81636d55ff7ad4c5e46199f5b23549dd06c47c04edf19e0be65162f3a54034817e30e9834639 DEPS mingw-w64-x86_64-gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-mpfr-4.2.2-1-any.pkg.tar.zst" SHA512 4795debd7e47a1c539d35e3aa3a6948831a7be77ca8b915273eba7f6dc1f951d2c500f988f78321cf96dea40e4ec8c2a463c12fccdb408f424040f61e7395de7 DEPS mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-gmp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ncurses-6.5.20250927-2-any.pkg.tar.zst" SHA512 50e056e0bd5b9de1a09a20ab67a76c422aada788ba95ee296971601972ea4cfc001b5377a7370c52ce64443ef3b644035cb530dde8de09caf3f58ed9431c9414 DEPS mingw-w64-x86_64-cc-libs mingw-w64-x86_64-libsystre ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openblas-0.3.30-2-any.pkg.tar.zst" SHA512 610b6cf4abfff3207cf92ad270629ffc72575be0b73163e2385ec8f80b828d492c1a5e292f71af8c45f01390885bf104050e0b5ace8d56cbc59b491a8ab3f672 DEPS mingw-w64-x86_64-gcc-libgfortran mingw-w64-x86_64-cc-libs mingw-w64-x86_64-omp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-openssl-3.6.0-1-any.pkg.tar.zst" SHA512 c89353609ea65cbcf00796b9c1849691d03e138e4df0e9fef34eecf99cb3fec96da2df0fe799f1fabd2fb704f7dbab49b329b81fc9bf7a3b336467d68fc8f3bc #DEPS mingw-w64-x86_64-ca-certificates mingw-w64-x86_64-cc-libs mingw-w64-x86_64-zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-p11-kit-0.25.10-1-any.pkg.tar.zst" SHA512 d2d959fc1b727f75dcc0257029cb1d8d819b89c0f9c6fe1df2a7bfa90f4fc0a440092ed71769b23e24b6cc3ce2ae7aa47a608c613cf502ba51c244b4db523d06 DEPS mingw-w64-x86_64-gettext-runtime mingw-w64-x86_64-libffi mingw-w64-x86_64-libtasn1 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-3.12.12-1-any.pkg.tar.zst" SHA512 d73ed3396613ac3d424a36024696b71393851138e531ba231fa4c2d03bcbadf9d177972f07474c039d6c01a32a8c1dad25a965e2383a6601f5566fad645cce42 PROVIDES mingw-w64-x86_64-python3 mingw-w64-x86_64-python3.12 DEPS mingw-w64-x86_64-bzip2 mingw-w64-x86_64-expat mingw-w64-x86_64-cc-libs mingw-w64-x86_64-libffi mingw-w64-x86_64-mpdecimal mingw-w64-x86_64-ncurses mingw-w64-x86_64-openssl mingw-w64-x86_64-sqlite3 mingw-w64-x86_64-tcl mingw-w64-x86_64-tk mingw-w64-x86_64-xz mingw-w64-x86_64-zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-python-numpy-2.3.5-1-any.pkg.tar.zst" SHA512 b37c8663842adb4452ce5bddd8966d068cb93b08889efe84d273beb427a4f912d9e6665a81cb6de4279f6ce828f3d2f3efb91b60fb63e20bdc848b769af91dfc DEPS mingw-w64-x86_64-omp mingw-w64-x86_64-openblas mingw-w64-x86_64-python ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-readline-8.3.003-1-any.pkg.tar.zst" SHA512 4e504e5cd84d1be3c20b6472bf7fca6e224d78e054375ab0fbe645f2d0080a2955c9ee86a49bb7dfc3a20d9feaac396aa7a443fd211b41089088383faaae4f0b DEPS mingw-w64-x86_64-cc-libs mingw-w64-x86_64-termcap ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-sqlite3-3.51.1-1-any.pkg.tar.zst" SHA512 d8d21d5b2de708bd3c4e418ffa98879981a79e516e5264a7f1263f2f7e6d252b9343efdb5a6c334f254701080d48dd9b5d30eca86d12973369a2630d9553ec7b PROVIDES mingw-w64-x86_64-sqlite mingw-w64-x86_64-sqlite-analyzer DEPS mingw-w64-x86_64-readline mingw-w64-x86_64-zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-termcap-1.3.1-7-any.pkg.tar.zst" SHA512 2610355be441fd933f660f8181a5ad074057361a9aadeaad85961230dcf6df5d5165b94ccf9887144c91812485be57c2d79f39e8191ff525889bdff042d34ce6 DEPS mingw-w64-x86_64-gcc-libs ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tcl-8.6.17-1-any.pkg.tar.zst" SHA512 ed45b8077fc29368a9977bd699e5634c488ab3409d8e37872652086428b9706b3def7629d7bc5b3838d218e8633c83b8269c92b21977368d2ccdca232f67ca56 DEPS mingw-w64-x86_64-cc-libs mingw-w64-x86_64-zlib ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-tk-8.6.17-2-any.pkg.tar.zst" SHA512 67fa5c5f71b8cb7679d53fb5854b05a5efedbd0c08e14c7c86a4e22256f94a70f90ccfdba085870256bb5bdcd6d2ce2e2fa20f89b5ce19da2ef31703203464c5 DEPS mingw-w64-x86_64-tcl ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-xz-5.8.2-1-any.pkg.tar.zst" SHA512 efcfc92ab4f8bbae372e97c8f74fcaa668f9e9fada21662f360a7d3eb97d9b91fc501d4f36a2ac5017c893a02d12775958c6e2b0e105f87cb52cb150656d3290 DEPS mingw-w64-x86_64-gettext-runtime ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zlib-1.3.1-1-any.pkg.tar.zst" SHA512 1336cd0db102af495d8bbfc6a1956f365750b19d2377fe809e9b26f61a8a6600394e7343677645c5743f4974161535dad5c0503ff50f6126d27bb927754e7320 ) endmacro() ================================================ FILE: scripts/cmake/vcpkg_add_to_path.cmake ================================================ function(vcpkg_add_to_path) cmake_parse_arguments(PARSE_ARGV 0 "arg" "PREPEND" "" "") if(arg_PREPEND) set(operation PREPEND) else() set(operation APPEND) endif() vcpkg_host_path_list("${operation}" ENV{PATH} ${arg_UNPARSED_ARGUMENTS}) endfunction() ================================================ FILE: scripts/cmake/vcpkg_apply_patches.cmake ================================================ function(vcpkg_apply_patches) z_vcpkg_deprecation_message("vcpkg_apply_patches has been deprecated in favor of the `PATCHES` argument to `vcpkg_from_*`.") cmake_parse_arguments(PARSE_ARGV 0 "arg" "QUIET" "SOURCE_PATH" "PATCHES") if(arg_QUIET) set(quiet "QUIET") else() set(quiet) endif() z_vcpkg_apply_patches( SOURCE_PATH "${arg_SOURCE_PATH}" ${quiet} PATCHES ${arg_PATCHES} ) endfunction() ================================================ FILE: scripts/cmake/vcpkg_backup_restore_env_vars.cmake ================================================ function(vcpkg_backup_env_variables) cmake_parse_arguments(PARSE_ARGV 0 arg "" "" "VARS") if(NOT DEFINED arg_VARS) message(FATAL_ERROR "VARS must be defined.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(envvar IN LISTS arg_VARS) if(DEFINED ENV{${envvar}}) set("z_vcpkg_env_backup_${envvar}" "$ENV{${envvar}}" PARENT_SCOPE) else() unset("z_vcpkg_env_backup_${envvar}" PARENT_SCOPE) endif() endforeach() endfunction() function(vcpkg_restore_env_variables) cmake_parse_arguments(PARSE_ARGV 0 arg "" "" "VARS") if(NOT DEFINED arg_VARS) message(FATAL_ERROR "VARS must be defined.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(envvar IN LISTS arg_VARS) if(DEFINED z_vcpkg_env_backup_${envvar}) set("ENV{${envvar}}" "${z_vcpkg_env_backup_${envvar}}") else() unset("ENV{${envvar}}") endif() endforeach() endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_cmake.cmake ================================================ function(vcpkg_build_cmake) cmake_parse_arguments(PARSE_ARGV 0 "arg" "DISABLE_PARALLEL;ADD_BIN_TO_PATH" "TARGET;LOGFILE_ROOT" "" ) if(Z_VCPKG_CMAKE_BUILD_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-cmake; using both vcpkg-cmake and vcpkg_build_cmake in the same port is unsupported.") endif() if(NOT DEFINED arg_LOGFILE_ROOT) set(arg_LOGFILE_ROOT "build") endif() vcpkg_list(SET build_param) vcpkg_list(SET parallel_param) vcpkg_list(SET no_parallel_param) if("${Z_VCPKG_CMAKE_GENERATOR}" STREQUAL "Ninja") vcpkg_list(SET build_param "-v") # verbose output vcpkg_list(SET parallel_param "-j${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param "-j1") elseif("${Z_VCPKG_CMAKE_GENERATOR}" MATCHES "^Visual Studio") vcpkg_list(SET build_param "/p:VCPkgLocalAppDataDisabled=true" "/p:UseIntelMKL=No" ) vcpkg_list(SET parallel_param "/m") elseif("${Z_VCPKG_CMAKE_GENERATOR}" STREQUAL "NMake Makefiles") # No options are currently added for nmake builds elseif(Z_VCPKG_CMAKE_GENERATOR STREQUAL "Unix Makefiles") vcpkg_list(SET build_param "VERBOSE=1") vcpkg_list(SET parallel_param "-j${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param "") elseif(Z_VCPKG_CMAKE_GENERATOR STREQUAL "Xcode") vcpkg_list(SET parallel_param -jobs "${VCPKG_CONCURRENCY}") vcpkg_list(SET no_parallel_param -jobs 1) else() message(FATAL_ERROR "Unrecognized GENERATOR setting from vcpkg_configure_cmake(). Valid generators are: Ninja, Visual Studio, and NMake Makefiles") endif() vcpkg_list(SET target_param) if(arg_TARGET) vcpkg_list(SET target_param "--target" "${arg_TARGET}") endif() foreach(build_type IN ITEMS debug release) if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "${build_type}") if("${build_type}" STREQUAL "debug") set(short_build_type "dbg") set(config "Debug") else() set(short_build_type "rel") set(config "Release") endif() message(STATUS "Building ${TARGET_TRIPLET}-${short_build_type}") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if("${build_type}" STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() if(arg_DISABLE_PARALLEL) vcpkg_execute_build_process( COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${no_parallel_param} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_build_type}" LOGNAME "${arg_LOGFILE_ROOT}-${TARGET_TRIPLET}-${short_build_type}" ) else() vcpkg_execute_build_process( COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${parallel_param} NO_PARALLEL_COMMAND "${CMAKE_COMMAND}" --build . --config "${config}" ${target_param} -- ${build_param} ${no_parallel_param} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_build_type}" LOGNAME "${arg_LOGFILE_ROOT}-${TARGET_TRIPLET}-${short_build_type}" ) endif() if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endif() endforeach() endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_make.cmake ================================================ function(vcpkg_build_make) z_vcpkg_get_cmake_vars(cmake_vars_file) include("${cmake_vars_file}") # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH;ENABLE_INSTALL;DISABLE_PARALLEL" "LOGFILE_ROOT;BUILD_TARGET;SUBPATH;MAKEFILE;INSTALL_TARGET" "OPTIONS" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_make_build was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_LOGFILE_ROOT) set(arg_LOGFILE_ROOT "build") endif() if(NOT DEFINED arg_BUILD_TARGET) set(arg_BUILD_TARGET "all") endif() if (NOT DEFINED arg_MAKEFILE) set(arg_MAKEFILE Makefile) endif() if(NOT DEFINED arg_INSTALL_TARGET) set(arg_INSTALL_TARGET "install") endif() if(CMAKE_HOST_WIN32) set(Z_VCPKG_INSTALLED "${CURRENT_INSTALLED_DIR}") else() string(REPLACE " " "\ " Z_VCPKG_INSTALLED "${CURRENT_INSTALLED_DIR}") endif() vcpkg_list(SET make_opts) vcpkg_list(SET install_opts) if (CMAKE_HOST_WIN32) set(path_backup "$ENV{PATH}") vcpkg_add_to_path(PREPEND "${SCRIPTS}/buildsystems/make_wrapper") if(NOT DEFINED Z_VCPKG_MAKE) vcpkg_acquire_msys(MSYS_ROOT) find_program(Z_VCPKG_MAKE make PATHS "${MSYS_ROOT}/usr/bin" NO_DEFAULT_PATH REQUIRED) endif() set(make_command "${Z_VCPKG_MAKE}") vcpkg_list(SET make_opts ${arg_OPTIONS} -j ${VCPKG_CONCURRENCY} --trace -f ${arg_MAKEFILE} ${arg_BUILD_TARGET}) vcpkg_list(SET no_parallel_make_opts ${arg_OPTIONS} -j 1 --trace -f ${arg_MAKEFILE} ${arg_BUILD_TARGET}) string(REPLACE " " [[\ ]] vcpkg_package_prefix "${CURRENT_PACKAGES_DIR}") string(REGEX REPLACE [[([a-zA-Z]):/]] [[/\1/]] vcpkg_package_prefix "${vcpkg_package_prefix}") vcpkg_list(SET install_opts -j ${VCPKG_CONCURRENCY} --trace -f ${arg_MAKEFILE} ${arg_INSTALL_TARGET} DESTDIR=${vcpkg_package_prefix}) vcpkg_list(SET no_parallel_install_opts -j 1 --trace -f ${arg_MAKEFILE} ${arg_INSTALL_TARGET} DESTDIR=${vcpkg_package_prefix}) #TODO: optimize for install-data (release) and install-exec (release/debug) else() if(VCPKG_HOST_IS_FREEBSD OR VCPKG_HOST_IS_OPENBSD) find_program(Z_VCPKG_MAKE gmake REQUIRED) else() find_program(Z_VCPKG_MAKE make REQUIRED) endif() set(make_command "${Z_VCPKG_MAKE}") vcpkg_list(SET make_opts ${arg_OPTIONS} V=1 -j ${VCPKG_CONCURRENCY} -f ${arg_MAKEFILE} ${arg_BUILD_TARGET}) vcpkg_list(SET no_parallel_make_opts ${arg_OPTIONS} V=1 -j 1 -f ${arg_MAKEFILE} ${arg_BUILD_TARGET}) vcpkg_list(SET install_opts -j ${VCPKG_CONCURRENCY} -f ${arg_MAKEFILE} ${arg_INSTALL_TARGET} DESTDIR=${CURRENT_PACKAGES_DIR}) vcpkg_list(SET no_parallel_install_opts -j 1 -f ${arg_MAKEFILE} ${arg_INSTALL_TARGET} DESTDIR=${CURRENT_PACKAGES_DIR}) endif() # Since includes are buildtype independent those are setup by vcpkg_configure_make vcpkg_backup_env_variables(VARS LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH CPPFLAGS CFLAGS CXXFLAGS RCFLAGS) z_vcpkg_configure_make_common_definitions() foreach(buildtype IN ITEMS "debug" "release") if (buildtype STREQUAL "debug" AND _VCPKG_MAKE_NO_DEBUG) continue() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "${buildtype}") string(TOUPPER "${buildtype}" cmake_buildtype) set(short_buildtype "${short_name_${cmake_buildtype}}") set(path_suffix "${path_suffix_${cmake_buildtype}}") set(working_directory "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_buildtype}/${arg_SUBPATH}") message(STATUS "Building ${TARGET_TRIPLET}-${short_buildtype}") if("libtool-link-pass-target" IN_LIST VCPKG_BUILD_MAKE_FIXUP) # Pass --target to the linker, e.g. for Android file(GLOB_RECURSE libtool_files "${working_directory}/libtool") foreach(file IN LISTS libtool_files) vcpkg_replace_string("${file}" [[-xtarget=*|]] [[-xtarget=*|--target=*|]]) endforeach() endif() z_vcpkg_configure_make_process_flags("${cmake_buildtype}") # Setup environment set(ENV{CPPFLAGS} "${CPPFLAGS_${cmake_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${cmake_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${cmake_buildtype}}") set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${cmake_buildtype}}") set(ENV{LDFLAGS} "${LDFLAGS_${cmake_buildtype}}") vcpkg_list(APPEND lib_env_vars LIB LIBPATH LIBRARY_PATH) # LD_LIBRARY_PATH) foreach(lib_env_var IN LISTS lib_env_vars) if(EXISTS "${Z_VCPKG_INSTALLED}${path_suffix}/lib") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${Z_VCPKG_INSTALLED}${path_suffix}/lib") endif() if(EXISTS "${Z_VCPKG_INSTALLED}${path_suffix}/lib/manual-link") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${Z_VCPKG_INSTALLED}${path_suffix}/lib/manual-link") endif() endforeach() unset(lib_env_vars) if(LINK_ENV_${cmake_buildtype}) set(config_link_backup "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${cmake_buildtype}}") else() unset(config_link_backup) endif() if(arg_ADD_BIN_TO_PATH) set(env_backup_path "$ENV{PATH}") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}${path_suffix}/bin") endif() vcpkg_list(SET make_cmd_line ${make_command} ${make_opts}) vcpkg_list(SET no_parallel_make_cmd_line ${make_command} ${no_parallel_make_opts}) if (arg_DISABLE_PARALLEL) vcpkg_execute_build_process( COMMAND ${no_parallel_make_cmd_line} WORKING_DIRECTORY "${working_directory}" LOGNAME "${arg_LOGFILE_ROOT}-${TARGET_TRIPLET}-${short_buildtype}" ) else() vcpkg_execute_build_process( COMMAND ${make_cmd_line} NO_PARALLEL_COMMAND ${no_parallel_make_cmd_line} WORKING_DIRECTORY "${working_directory}" LOGNAME "${arg_LOGFILE_ROOT}-${TARGET_TRIPLET}-${short_buildtype}" ) endif() file(READ "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_ROOT}-${TARGET_TRIPLET}-${short_buildtype}-out.log" logdata) if(logdata MATCHES "Warning: linker path does not have real file for library") message(FATAL_ERROR "libtool could not find a file being linked against!") endif() if (arg_ENABLE_INSTALL) message(STATUS "Installing ${TARGET_TRIPLET}-${short_buildtype}") vcpkg_list(SET make_cmd_line ${make_command} ${install_opts}) vcpkg_list(SET no_parallel_make_cmd_line ${make_command} ${no_parallel_install_opts}) vcpkg_execute_build_process( COMMAND ${make_cmd_line} NO_PARALLEL_COMMAND ${no_parallel_make_cmd_line} WORKING_DIRECTORY "${working_directory}" LOGNAME "install-${TARGET_TRIPLET}-${short_buildtype}" ) endif() if(DEFINED config_link_backup) set(ENV{_LINK_} "${config_link_backup}") endif() if(arg_ADD_BIN_TO_PATH) set(ENV{PATH} "${env_backup_path}") endif() endif() vcpkg_restore_env_variables(VARS LIB LIBPATH LIBRARY_PATH) endforeach() if (arg_ENABLE_INSTALL) string(REGEX REPLACE "([a-zA-Z]):/" "/\\1/" Z_VCPKG_INSTALL_PREFIX "${CURRENT_INSTALLED_DIR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}_tmp") file(RENAME "${CURRENT_PACKAGES_DIR}" "${CURRENT_PACKAGES_DIR}_tmp") file(RENAME "${CURRENT_PACKAGES_DIR}_tmp${Z_VCPKG_INSTALL_PREFIX}" "${CURRENT_PACKAGES_DIR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}_tmp") endif() # Remove libtool files since they contain absolute paths and are not necessary. file(GLOB_RECURSE libtool_files "${CURRENT_PACKAGES_DIR}/**/*.la") if(libtool_files) file(REMOVE ${libtool_files}) endif() if (CMAKE_HOST_WIN32) set(ENV{PATH} "${path_backup}") endif() vcpkg_restore_env_variables(VARS LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH CPPFLAGS CFLAGS CXXFLAGS RCFLAGS) unset(_VCPKG_MAKE_NO_DEBUG PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_msbuild.cmake ================================================ function(vcpkg_build_msbuild) cmake_parse_arguments( PARSE_ARGV 0 arg "USE_VCPKG_INTEGRATION" "PROJECT_PATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM;PLATFORM_TOOLSET;TARGET_PLATFORM_VERSION;TARGET" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_build_msbuild was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_RELEASE_CONFIGURATION) set(arg_RELEASE_CONFIGURATION Release) endif() if(NOT DEFINED arg_DEBUG_CONFIGURATION) set(arg_DEBUG_CONFIGURATION Debug) endif() if(NOT DEFINED arg_PLATFORM) set(arg_PLATFORM "${TRIPLET_SYSTEM_ARCH}") endif() if(NOT DEFINED arg_PLATFORM_TOOLSET) set(arg_PLATFORM_TOOLSET "${VCPKG_PLATFORM_TOOLSET}") endif() if(NOT DEFINED arg_TARGET_PLATFORM_VERSION) vcpkg_get_windows_sdk(arg_TARGET_PLATFORM_VERSION) endif() if(NOT DEFINED arg_TARGET) set(arg_TARGET Rebuild) endif() list(APPEND arg_OPTIONS "/t:${arg_TARGET}" "/p:Platform=${arg_PLATFORM}" "/p:PlatformToolset=${arg_PLATFORM_TOOLSET}" "/p:VCPkgLocalAppDataDisabled=true" "/p:UseIntelMKL=No" "/p:WindowsTargetPlatformVersion=${arg_TARGET_PLATFORM_VERSION}" "/p:VcpkgManifestInstall=false" "/p:VcpkgManifestEnabled=false" "/m" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Disable LTCG for static libraries because this setting introduces ABI incompatibility between minor compiler versions # TODO: Add a way for the user to override this if they want to opt-in to incompatibility list(APPEND arg_OPTIONS "/p:WholeProgramOptimization=false") endif() if(arg_USE_VCPKG_INTEGRATION) list( APPEND arg_OPTIONS "/p:ForceImportBeforeCppTargets=${SCRIPTS}/buildsystems/msbuild/vcpkg.targets" "/p:VcpkgTriplet=${TARGET_TRIPLET}" "/p:VcpkgInstalledDir=${_VCPKG_INSTALLED_DIR}" ) else() list(APPEND arg_OPTIONS "/p:VcpkgEnabled=false") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") message(STATUS "Building ${arg_PROJECT_PATH} for Release") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") vcpkg_execute_required_process( COMMAND msbuild "${arg_PROJECT_PATH}" "/p:Configuration=${arg_RELEASE_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_RELEASE} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" LOGNAME "build-${TARGET_TRIPLET}-rel" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Building ${arg_PROJECT_PATH} for Debug") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND msbuild "${arg_PROJECT_PATH}" "/p:Configuration=${arg_DEBUG_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_DEBUG} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME "build-${TARGET_TRIPLET}-dbg" ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_ninja.cmake ================================================ function(z_vcpkg_build_ninja_build config targets) message(STATUS "Building (${config})...") vcpkg_execute_build_process( COMMAND "${NINJA}" -C "${CURRENT_BUILDTREES_DIR}/${config}" ${targets} WORKING_DIRECTORY "${SOURCE_PATH}" LOGNAME "build-${config}" ) endfunction() function(vcpkg_build_ninja) cmake_parse_arguments(PARSE_ARGV 0 arg "" "" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_TARGETS) set(arg_TARGETS "") endif() vcpkg_find_acquire_program(NINJA) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_build_ninja_build("${TARGET_TRIPLET}-dbg" "${arg_TARGETS}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_build_ninja_build("${TARGET_TRIPLET}-rel" "${arg_TARGETS}") endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_nmake.cmake ================================================ function(vcpkg_build_nmake) cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH;ENABLE_INSTALL;NO_DEBUG;PREFER_JOM" "SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME;LOGFILE_ROOT;CL_LANGUAGE" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;PRERUN_SHELL;PRERUN_SHELL_DEBUG;PRERUN_SHELL_RELEASE;TARGET" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified") endif() if(arg_NO_DEBUG) message(WARNING "NO_DEBUG argument to ${CMAKE_CURRENT_FUNCTION} is deprecated") endif() if(arg_ADD_BIN_TO_PATH) message(WARNING "ADD_BIN_TO_PATH argument to ${CMAKE_CURRENT_FUNCTION} is deprecated - it never did anything") endif() if(NOT VCPKG_HOST_IS_WINDOWS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} only support windows.") endif() if(NOT DEFINED arg_LOGFILE_ROOT) set(arg_LOGFILE_ROOT "build") endif() if(NOT DEFINED arg_PROJECT_NAME) set(arg_PROJECT_NAME makefile.vc) endif() if(NOT DEFINED arg_TARGET) vcpkg_list(SET arg_TARGET all) endif() if(arg_ENABLE_INSTALL) vcpkg_list(APPEND arg_TARGET install) endif() if(NOT DEFINED arg_CL_LANGUAGE) set(arg_CL_LANGUAGE CXX) endif() find_program(NMAKE nmake REQUIRED) get_filename_component(NMAKE_EXE_PATH "${NMAKE}" DIRECTORY) # Load toolchains z_vcpkg_get_cmake_vars(cmake_vars_file) debug_message("Including cmake vars from: ${cmake_vars_file}") include("${cmake_vars_file}") # Set needed env set(ENV{PATH} "$ENV{PATH};${NMAKE_EXE_PATH}") set(ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include;$ENV{INCLUDE}") # Set make options vcpkg_list(SET make_opts_base /NOLOGO /G /U /F "${arg_PROJECT_NAME}" ${arg_TARGET}) if(arg_PREFER_JOM AND VCPKG_CONCURRENCY GREATER "1") vcpkg_find_acquire_program(JOM) get_filename_component(JOM_EXE_PATH "${JOM}" DIRECTORY) vcpkg_add_to_path("${JOM_EXE_PATH}") if(arg_CL_LANGUAGE AND "${VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_COMPILER_ID}" STREQUAL "MSVC") string(REGEX REPLACE " [/-]MP[0-9]* " " " VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_DEBUG " ${VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_DEBUG} /FS") string(REGEX REPLACE " [/-]MP[0-9]* " " " VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_RELEASE " ${VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_RELEASE} /FS") endif() else() set(arg_PREFER_JOM FALSE) endif() # Add subpath to work directory if(DEFINED arg_PROJECT_SUBPATH) set(project_subpath "/${arg_PROJECT_SUBPATH}") else() set(project_subpath "") endif() vcpkg_backup_env_variables(VARS _CL_ _LINK_) cmake_path(NATIVE_PATH CURRENT_PACKAGES_DIR NORMALIZE install_dir_native) foreach(build_type IN ITEMS debug release) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL build_type) if(build_type STREQUAL "debug") # Generate obj dir suffix set(short_build_type "-dbg") # Add install command and arguments set(make_opts "${make_opts_base}") if (arg_ENABLE_INSTALL) vcpkg_list(APPEND make_opts "INSTALLDIR=${install_dir_native}\\debug") endif() vcpkg_list(APPEND make_opts ${arg_OPTIONS} ${arg_OPTIONS_DEBUG}) if(NOT arg_CL_LANGUAGE STREQUAL "NONE") set(ENV{_CL_} "${VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_DEBUG}") endif() set(ENV{_LINK_} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_DEBUG}") set(prerun_variable_name arg_PRERUN_SHELL_DEBUG) else() set(short_build_type "-rel") # Add install command and arguments set(make_opts "${make_opts_base}") if (arg_ENABLE_INSTALL) vcpkg_list(APPEND make_opts "INSTALLDIR=${install_dir_native}") endif() vcpkg_list(APPEND make_opts ${arg_OPTIONS} ${arg_OPTIONS_RELEASE}) if(NOT arg_CL_LANGUAGE STREQUAL "NONE") set(ENV{_CL_} "${VCPKG_DETECTED_CMAKE_${arg_CL_LANGUAGE}_FLAGS_RELEASE}") endif() set(ENV{_LINK_} "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_RELEASE}") set(prerun_variable_name arg_PRERUN_SHELL_RELEASE) endif() set(triplet_and_build_type "${TARGET_TRIPLET}${short_build_type}") set(object_dir "${CURRENT_BUILDTREES_DIR}/${triplet_and_build_type}") file(REMOVE_RECURSE "${object_dir}") file(COPY "${arg_SOURCE_PATH}/" DESTINATION "${object_dir}") if(DEFINED arg_PRERUN_SHELL) message(STATUS "Prerunning ${triplet_and_build_type}") vcpkg_execute_required_process( COMMAND ${arg_PRERUN_SHELL} WORKING_DIRECTORY "${object_dir}${project_subpath}" LOGNAME "prerun-${triplet_and_build_type}" ) endif() if(DEFINED "${prerun_variable_name}") message(STATUS "Prerunning ${triplet_and_build_type}") vcpkg_execute_required_process( COMMAND ${${prerun_variable_name}} WORKING_DIRECTORY "${object_dir}${project_subpath}" LOGNAME "prerun-specific-${triplet_and_build_type}" ) endif() if (NOT arg_ENABLE_INSTALL) message(STATUS "Building ${triplet_and_build_type}") else() message(STATUS "Building and installing ${triplet_and_build_type}") endif() set(run_nmake TRUE) set(tool_suffix "") if(arg_PREFER_JOM) execute_process( COMMAND "${JOM}" /K /J ${VCPKG_CONCURRENCY} ${make_opts} WORKING_DIRECTORY "${object_dir}${project_subpath}" OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_ROOT}-${triplet_and_build_type}-jom-out.log" ERROR_FILE "${CURRENT_BUILDTREES_DIR}/${arg_LOGFILE_ROOT}-${triplet_and_build_type}-jom-err.log" RESULT_VARIABLE error_code ) if(error_code EQUAL "0") set(run_nmake FALSE) else() message(STATUS "Restarting build without parallelism") set(tool_suffix "-nmake") endif() endif() if(run_nmake) vcpkg_execute_build_process( COMMAND "${NMAKE}" ${make_opts} WORKING_DIRECTORY "${object_dir}${project_subpath}" LOGNAME "${arg_LOGFILE_ROOT}-${triplet_and_build_type}${tool_suffix}" ) endif() vcpkg_restore_env_variables(VARS _CL_ _LINK_) endif() endforeach() endfunction() ================================================ FILE: scripts/cmake/vcpkg_build_qmake.cmake ================================================ function(z_run_jom_build invoke_command targets log_prefix log_suffix) message(STATUS "Package ${log_prefix}-${TARGET_TRIPLET}-${log_suffix}") vcpkg_execute_build_process( COMMAND "${invoke_command}" -j ${VCPKG_CONCURRENCY} ${targets} NO_PARALLEL_COMMAND "${invoke_command}" -j 1 ${targets} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${log_suffix}" LOGNAME "package-${log_prefix}-${TARGET_TRIPLET}-${log_suffix}" ) endfunction() function(vcpkg_build_qmake) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "SKIP_MAKEFILES" "BUILD_LOGNAME" "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS" ) # Make sure that the linker finds the libraries used vcpkg_backup_env_variables(VARS PATH LD_LIBRARY_PATH CL _CL_) # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings set(ENV{_CL_} "/utf-8") if(CMAKE_HOST_WIN32) if(VCPKG_TARGET_IS_MINGW) find_program(MINGW32_MAKE mingw32-make REQUIRED) set(invoke_command "${MINGW32_MAKE}") elseif (VCPKG_QMAKE_USE_NMAKE) find_program(NMAKE nmake) set(invoke_command "${NMAKE}") get_filename_component(nmake_exe_path "${NMAKE}" DIRECTORY) vcpkg_host_path_list(APPEND ENV{PATH} "${nmake_exe_path}") set(ENV{CL} "$ENV{CL} /MP${VCPKG_CONCURRENCY}") else() vcpkg_find_acquire_program(JOM) set(invoke_command "${JOM}") endif() else() find_program(MAKE make) set(invoke_command "${MAKE}") endif() if(NOT DEFINED arg_BUILD_LOGNAME) set(arg_BUILD_LOGNAME build) endif() set(short_name_debug "dbg") set(path_suffix_debug "/debug") set(targets_debug "${arg_DEBUG_TARGETS}") set(short_name_release "rel") set(path_suffix_release "") set(targets_release "${arg_RELEASE_TARGETS}") if(NOT DEFINED VCPKG_BUILD_TYPE) set(items debug release) else() set(items release) endif() foreach(build_type IN ITEMS ${items}) set(current_installed_prefix "${CURRENT_INSTALLED_DIR}${path_suffix_${build_type}}") vcpkg_add_to_path(PREPEND "${current_installed_prefix}/lib" "${current_installed_prefix}/bin") # We set LD_LIBRARY_PATH ENV variable to allow executing Qt tools (rcc,...) even with dynamic linking if(CMAKE_HOST_UNIX) set(ENV{LD_LIBRARY_PATH} "") vcpkg_host_path_list(APPEND ENV{LD_LIBRARY_PATH} "${current_installed_prefix}/lib" "${current_installed_prefix}/lib/manual-link") endif() vcpkg_list(SET targets ${targets_${build_type}} ${arg_TARGETS}) if(NOT arg_SKIP_MAKEFILES) z_run_jom_build("${invoke_command}" qmake_all makefiles "${short_name_${build_type}}") endif() z_run_jom_build("${invoke_command}" "${targets}" "${arg_BUILD_LOGNAME}" "${short_name_${build_type}}") vcpkg_restore_env_variables(VARS PATH LD_LIBRARY_PATH) endforeach() vcpkg_restore_env_variables(VARS CL _CL_) endfunction() ================================================ FILE: scripts/cmake/vcpkg_buildpath_length_warning.cmake ================================================ function(vcpkg_buildpath_length_warning warning_length) string(LENGTH "${CURRENT_BUILDTREES_DIR}" buildtrees_path_length) if(buildtrees_path_length GREATER warning_length AND CMAKE_HOST_WIN32) message(WARNING "${PORT}'s buildsystem uses very long paths and may fail on your system.\n" "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command." ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_check_features.cmake ================================================ function(z_vcpkg_check_features_last_feature out_var features_name features_list) list(LENGTH features_list features_length) math(EXPR features_length_mod_2 "${features_length} % 2") if(NOT features_length_mod_2 EQUAL 0) message(FATAL_ERROR "vcpkg_check_features has an incorrect number of arguments to ${features_name}") endif() math(EXPR last_feature "${features_length} / 2 - 1") set("${out_var}" "${last_feature}" PARENT_SCOPE) endfunction() function(z_vcpkg_check_features_get_feature idx features_list out_feature_name out_feature_var) math(EXPR feature_name_idx "${idx} * 2") math(EXPR feature_var_idx "${feature_name_idx} + 1") list(GET features_list "${feature_name_idx}" feature_name) list(GET features_list "${feature_var_idx}" feature_var) set("${out_feature_name}" "${feature_name}" PARENT_SCOPE) set("${out_feature_var}" "${feature_var}" PARENT_SCOPE) endfunction() function(vcpkg_check_features) cmake_parse_arguments( PARSE_ARGV 0 "arg" "" "OUT_FEATURE_OPTIONS;PREFIX" "FEATURES;INVERTED_FEATURES" ) if(NOT DEFINED arg_OUT_FEATURE_OPTIONS) message(FATAL_ERROR "OUT_FEATURE_OPTIONS must be defined.") endif() if(NOT DEFINED arg_PREFIX) set(prefix "") else() set(prefix "${arg_PREFIX}_") endif() set(feature_options) set(feature_variables) if(NOT DEFINED arg_FEATURES AND NOT DEFINED arg_INVERTED_FEATURES) message(DEPRECATION "calling `vcpkg_check_features` without the `FEATURES` keyword has been deprecated. Please add the `FEATURES` keyword to the call.") set(arg_FEATURES "${arg_UNPARSED_ARGUMENTS}") elseif(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_check_features called with unknown arguments: ${arg_UNPARSED_ARGUMENTS}") endif() z_vcpkg_check_features_last_feature(last_feature "FEATURES" "${arg_FEATURES}") if(last_feature GREATER_EQUAL 0) foreach(feature_pair_idx RANGE "${last_feature}") z_vcpkg_check_features_get_feature("${feature_pair_idx}" "${arg_FEATURES}" feature_name feature_var) list(APPEND feature_variables "${feature_var}") if(feature_name IN_LIST FEATURES) list(APPEND feature_options "-D${feature_var}=ON") set("${prefix}${feature_var}" ON PARENT_SCOPE) else() list(APPEND feature_options "-D${feature_var}=OFF") set("${prefix}${feature_var}" OFF PARENT_SCOPE) endif() endforeach() endif() z_vcpkg_check_features_last_feature(last_inverted_feature "INVERTED_FEATURES" "${arg_INVERTED_FEATURES}") if(last_inverted_feature GREATER_EQUAL 0) foreach(feature_pair_idx RANGE "${last_inverted_feature}") z_vcpkg_check_features_get_feature("${feature_pair_idx}" "${arg_INVERTED_FEATURES}" feature_name feature_var) list(APPEND feature_variables "${feature_var}") if(feature_name IN_LIST FEATURES) list(APPEND feature_options "-D${feature_var}=OFF") set("${prefix}${feature_var}" OFF PARENT_SCOPE) else() list(APPEND feature_options "-D${feature_var}=ON") set("${prefix}${feature_var}" ON PARENT_SCOPE) endif() endforeach() endif() list(SORT feature_variables) set(last_variable) foreach(variable IN LISTS feature_variables) if(variable STREQUAL last_variable) message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "vcpkg_check_features passed the same feature variable multiple times: '${variable}'") endif() set(last_variable ${variable}) endforeach() set("${arg_OUT_FEATURE_OPTIONS}" "${feature_options}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_check_linkage.cmake ================================================ function(vcpkg_check_linkage) cmake_parse_arguments(PARSE_ARGV 0 arg "ONLY_STATIC_LIBRARY;ONLY_DYNAMIC_LIBRARY;ONLY_DYNAMIC_CRT;ONLY_STATIC_CRT" "" "" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(arg_ONLY_STATIC_LIBRARY AND arg_ONLY_DYNAMIC_LIBRARY) message(FATAL_ERROR "Requesting both ONLY_STATIC_LIBRARY and ONLY_DYNAMIC_LIBRARY; this is an error.") endif() if(arg_ONLY_STATIC_CRT AND arg_ONLY_DYNAMIC_CRT) message(FATAL_ERROR "Requesting both ONLY_STATIC_CRT and ONLY_DYNAMIC_CRT; this is an error.") endif() if(arg_ONLY_STATIC_LIBRARY AND "${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic") message(STATUS "Note: ${PORT} only supports static library linkage. Building static library.") set(VCPKG_LIBRARY_LINKAGE static PARENT_SCOPE) elseif(arg_ONLY_DYNAMIC_LIBRARY AND "${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") if("${VCPKG_CRT_LINKAGE}" STREQUAL "static") message(FATAL_ERROR "This port can only build as a dynamic library, but the triplet \ selects a static library and a static CRT. Building a dynamic library with a static CRT creates \ conditions many developers find surprising, and for which most ports are unprepared. Therefore, \ vcpkg fails rather than changing VCPKG_LIBRARY_LINKAGE to dynamic.\ Consider choosing a triplet that sets VCPKG_CRT_LINKAGE to dynamic. For more information, \ explicitly requesting this configuration in a custom triplet, please see \ https://learn.microsoft.com/vcpkg/maintainers/functions/vcpkg_check_linkage?WT.mc_id=vcpkg_inproduct_cli#notes \ If you can edit the port calling vcpkg_check_linkage that emits this message, consider adding \ !(static & staticcrt) to the \"supports\" expression so that this combination can fail early.") else() message(STATUS "Note: ${PORT} only supports dynamic library linkage. Building dynamic library.") endif() set(VCPKG_LIBRARY_LINKAGE dynamic PARENT_SCOPE) endif() if(arg_ONLY_DYNAMIC_CRT AND "${VCPKG_CRT_LINKAGE}" STREQUAL "static") message(FATAL_ERROR "${PORT} only supports dynamic crt linkage") elseif(arg_ONLY_STATIC_CRT AND "${VCPKG_CRT_LINKAGE}" STREQUAL "dynamic") message(FATAL_ERROR "${PORT} only supports static crt linkage") endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_clean_executables_in_bin.cmake ================================================ function(z_vcpkg_clean_executables_in_bin_remove_directory_if_empty directory) if(NOT EXISTS "${directory}") return() endif() if(NOT IS_DIRECTORY "${directory}") message(FATAL_ERROR "${directory} must be a directory") endif() file(GLOB items "${directory}/*") if("${items}" STREQUAL "") file(REMOVE_RECURSE "${directory}") endif() endfunction() function(vcpkg_clean_executables_in_bin) cmake_parse_arguments(PARSE_ARGV 0 arg "" "" "FILE_NAMES") if(NOT DEFINED arg_FILE_NAMES) message(FATAL_ERROR "FILE_NAMES must be specified.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(file_name IN LISTS arg_FILE_NAMES) file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${file_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/${file_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/bin/${file_name}.pdb" "${CURRENT_PACKAGES_DIR}/debug/bin/${file_name}.pdb" ) if(NOT VCPKG_TARGET_BUNDLE_SUFFIX STREQUAL "") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin/${file_name}${VCPKG_TARGET_BUNDLE_SUFFIX}" "${CURRENT_PACKAGES_DIR}/debug/bin/${file_name}${VCPKG_TARGET_BUNDLE_SUFFIX}" ) endif() endforeach() z_vcpkg_clean_executables_in_bin_remove_directory_if_empty("${CURRENT_PACKAGES_DIR}/bin") z_vcpkg_clean_executables_in_bin_remove_directory_if_empty("${CURRENT_PACKAGES_DIR}/debug/bin") endfunction() ================================================ FILE: scripts/cmake/vcpkg_clean_msbuild.cmake ================================================ function(vcpkg_clean_msbuild) if(NOT ARGC EQUAL 0) message(WARNING "vcpkg_clean_msbuild was passed extra arguments: ${ARGV}") endif() file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" ) endfunction() ================================================ FILE: scripts/cmake/vcpkg_common_definitions.cmake ================================================ string(COMPARE NOTEQUAL "${TARGET_TRIPLET}" "${HOST_TRIPLET}" VCPKG_CROSSCOMPILING) #Helper variable to identify the Target system. VCPKG_TARGET_IS_ if (NOT DEFINED VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "") set(VCPKG_TARGET_IS_WINDOWS ON) if(DEFINED VCPKG_XBOX_CONSOLE_TARGET AND NOT "${VCPKG_XBOX_CONSOLE_TARGET}" STREQUAL "") set(VCPKG_TARGET_IS_XBOX ON) endif() elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") set(VCPKG_TARGET_IS_WINDOWS ON) set(VCPKG_TARGET_IS_UWP ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(VCPKG_TARGET_IS_OSX ON) set(VCPKG_TARGET_IS_APPLE ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "iOS") set(VCPKG_TARGET_IS_IOS ON) set(VCPKG_TARGET_IS_APPLE ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "watchOS") set(VCPKG_TARGET_IS_WATCHOS ON) set(VCPKG_TARGET_IS_APPLE ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "tvOS") set(VCPKG_TARGET_IS_TVOS ON) set(VCPKG_TARGET_IS_APPLE ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "visionOS") set(VCPKG_TARGET_IS_VISIONOS ON) set(VCPKG_TARGET_IS_APPLE ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") set(VCPKG_TARGET_IS_LINUX ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Android") set(VCPKG_TARGET_IS_ANDROID ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") set(VCPKG_TARGET_IS_FREEBSD ON) set(VCPKG_TARGET_IS_BSD ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") set(VCPKG_TARGET_IS_OPENBSD ON) set(VCPKG_TARGET_IS_BSD ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "NetBSD") set(VCPKG_TARGET_IS_NETBSD ON) set(VCPKG_TARGET_IS_BSD ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "SunOS") set(VCPKG_TARGET_IS_SOLARIS ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "MinGW") set(VCPKG_TARGET_IS_WINDOWS ON) set(VCPKG_TARGET_IS_MINGW ON) elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Emscripten") set(VCPKG_TARGET_IS_EMSCRIPTEN ON) endif() #Helper variables to identify the host system name if (CMAKE_HOST_WIN32) set(VCPKG_HOST_IS_WINDOWS ON) elseif (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(VCPKG_HOST_IS_OSX ON) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(VCPKG_HOST_IS_LINUX ON) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD") set(VCPKG_HOST_IS_FREEBSD ON) set(VCPKG_HOST_IS_BSD ON) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "OpenBSD") set(VCPKG_HOST_IS_OPENBSD ON) set(VCPKG_HOST_IS_BSD ON) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "NetBSD") set(VCPKG_HOST_IS_NETBSD ON) set(VCPKG_HOST_IS_BSD ON) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "SunOS") set(VCPKG_HOST_IS_SOLARIS ON) endif() #Helper variable to identify the host path separator. if(CMAKE_HOST_WIN32) set(VCPKG_HOST_PATH_SEPARATOR ";") elseif(CMAKE_HOST_UNIX) set(VCPKG_HOST_PATH_SEPARATOR ":") endif() #Helper variables to identify executables on host/target if(CMAKE_HOST_WIN32) set(VCPKG_HOST_EXECUTABLE_SUFFIX ".exe") else() set(VCPKG_HOST_EXECUTABLE_SUFFIX "") endif() #set(CMAKE_EXECUTABLE_SUFFIX ${VCPKG_HOST_EXECUTABLE_SUFFIX}) not required by find_program if(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_TARGET_EXECUTABLE_SUFFIX ".exe") else() set(VCPKG_TARGET_EXECUTABLE_SUFFIX "") endif() #Helper variables to identify bundles on host/target if(VCPKG_HOST_IS_OSX) set(VCPKG_HOST_BUNDLE_SUFFIX ".app") else() set(VCPKG_HOST_BUNDLE_SUFFIX "") endif() if(VCPKG_TARGET_IS_APPLE) set(VCPKG_TARGET_BUNDLE_SUFFIX ".app") else() set(VCPKG_TARGET_BUNDLE_SUFFIX "") endif() #Helper variables for libraries if(VCPKG_TARGET_IS_MINGW) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".dll.a") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "lib") set(VCPKG_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a" ".lib") set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") elseif(VCPKG_TARGET_IS_WINDOWS) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dll") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX ".lib") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "") set(VCPKG_TARGET_IMPORT_LIBRARY_PREFIX "") set(VCPKG_FIND_LIBRARY_SUFFIXES ".lib" ".dll") #This is a slight modification to CMakes value which does not include ".dll". set(VCPKG_FIND_LIBRARY_PREFIXES "" "lib") #This is a slight modification to CMakes value which does not include "lib". elseif(VCPKG_TARGET_IS_APPLE) set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".dylib") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") set(VCPKG_FIND_LIBRARY_SUFFIXES ".tbd" ".dylib" ".so" ".a") set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") else() set(VCPKG_TARGET_STATIC_LIBRARY_SUFFIX ".a") set(VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX "") set(VCPKG_TARGET_SHARED_LIBRARY_SUFFIX ".so") set(VCPKG_TARGET_STATIC_LIBRARY_PREFIX "lib") set(VCPKG_TARGET_SHARED_LIBRARY_PREFIX "lib") set(VCPKG_FIND_LIBRARY_SUFFIXES ".so" ".a") set(VCPKG_FIND_LIBRARY_PREFIXES "lib" "") endif() #Setting these variables allows find_library to work in script mode and thus in portfiles! #This allows us scale down on hardcoded target dependent paths in portfiles set(CMAKE_STATIC_LIBRARY_SUFFIX "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}") set(CMAKE_SHARED_LIBRARY_SUFFIX "${VCPKG_TARGET_SHARED_LIBRARY_SUFFIX}") set(CMAKE_IMPORT_LIBRARY_SUFFIX "${VCPKG_TARGET_IMPORT_LIBRARY_SUFFIX}") set(CMAKE_STATIC_LIBRARY_PREFIX "${VCPKG_TARGET_STATIC_LIBRARY_PREFIX}") set(CMAKE_SHARED_LIBRARY_PREFIX "${VCPKG_TARGET_SHARED_LIBRARY_PREFIX}") set(CMAKE_IMPORT_LIBRARY_PREFIX "${VCPKG_TARGET_IMPORT_LIBRARY_PREFIX}") set(CMAKE_FIND_LIBRARY_SUFFIXES "${VCPKG_FIND_LIBRARY_SUFFIXES}" CACHE INTERNAL "") # Required by find_library set(CMAKE_FIND_LIBRARY_PREFIXES "${VCPKG_FIND_LIBRARY_PREFIXES}" CACHE INTERNAL "") # Required by find_library # Append platform libraries to VCPKG_SYSTEM_LIBRARIES # The variable are just appended to permit to custom triplets define the variable # Platforms with libdl if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_OSX) list(APPEND VCPKG_SYSTEM_LIBRARIES dl) endif() # Platforms with libm if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_MINGW) list(APPEND VCPKG_SYSTEM_LIBRARIES m) endif() # Platforms with pthread if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD OR VCPKG_TARGET_IS_MINGW) list(APPEND VCPKG_SYSTEM_LIBRARIES pthread) endif() # Platforms with libstdc++ if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD OR VCPKG_TARGET_IS_MINGW) list(APPEND VCPKG_SYSTEM_LIBRARIES [[stdc\+\+]]) endif() # Platforms with libc++ if(VCPKG_TARGET_IS_OSX) list(APPEND VCPKG_SYSTEM_LIBRARIES [[c\+\+]]) endif() # Platforms with librt if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_MINGW) list(APPEND VCPKG_SYSTEM_LIBRARIES rt) endif() # Platforms with GCC libs if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_ANDROID OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_FREEBSD OR VCPKG_TARGET_IS_OPENBSD OR VCPKG_TARGET_IS_MINGW) list(APPEND VCPKG_SYSTEM_LIBRARIES gcc) list(APPEND VCPKG_SYSTEM_LIBRARIES gcc_s) endif() # Platforms with system iconv if(VCPKG_TARGET_IS_OSX) list(APPEND VCPKG_SYSTEM_LIBRARIES iconv) endif() # Windows system libs if(VCPKG_TARGET_IS_WINDOWS) list(APPEND VCPKG_SYSTEM_LIBRARIES advapi32) list(APPEND VCPKG_SYSTEM_LIBRARIES bcrypt) list(APPEND VCPKG_SYSTEM_LIBRARIES dinput8) list(APPEND VCPKG_SYSTEM_LIBRARIES gdi32) list(APPEND VCPKG_SYSTEM_LIBRARIES imm32) list(APPEND VCPKG_SYSTEM_LIBRARIES oleaut32) list(APPEND VCPKG_SYSTEM_LIBRARIES ole32) list(APPEND VCPKG_SYSTEM_LIBRARIES psapi) list(APPEND VCPKG_SYSTEM_LIBRARIES secur32) list(APPEND VCPKG_SYSTEM_LIBRARIES setupapi) list(APPEND VCPKG_SYSTEM_LIBRARIES shell32) list(APPEND VCPKG_SYSTEM_LIBRARIES shlwapi) list(APPEND VCPKG_SYSTEM_LIBRARIES strmiids) list(APPEND VCPKG_SYSTEM_LIBRARIES user32) list(APPEND VCPKG_SYSTEM_LIBRARIES uuid) list(APPEND VCPKG_SYSTEM_LIBRARIES version) list(APPEND VCPKG_SYSTEM_LIBRARIES vfw32) list(APPEND VCPKG_SYSTEM_LIBRARIES winmm) list(APPEND VCPKG_SYSTEM_LIBRARIES wsock32) list(APPEND VCPKG_SYSTEM_LIBRARIES Ws2_32) list(APPEND VCPKG_SYSTEM_LIBRARIES wldap32) list(APPEND VCPKG_SYSTEM_LIBRARIES crypt32) endif() ================================================ FILE: scripts/cmake/vcpkg_common_functions.cmake ================================================ # DEPRECATED message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "vcpkg_common_functions has been removed and all values are automatically provided in all portfile.cmake invocations. Please remove `include(vcpkg_common_functions)`.") ================================================ FILE: scripts/cmake/vcpkg_configure_cmake.cmake ================================================ function(z_vcpkg_configure_cmake_both_or_neither_set var1 var2) if(DEFINED "${var1}" AND NOT DEFINED "${var2}") message(FATAL_ERROR "If ${var1} is set, ${var2} must be set.") endif() if(NOT DEFINED "${var1}" AND DEFINED "${var2}") message(FATAL_ERROR "If ${var2} is set, ${var1} must be set.") endif() endfunction() function(z_vcpkg_configure_cmake_build_cmakecache out_var whereat build_type) set(line "build ${whereat}/CMakeCache.txt: CreateProcess\n") string(APPEND line " process = \"${CMAKE_COMMAND}\" -E chdir \"${whereat}\"") foreach(arg IN LISTS "${build_type}_command") string(APPEND line " \"${arg}\"") endforeach() set("${out_var}" "${${out_var}}${line}\n\n" PARENT_SCOPE) endfunction() function(z_vcpkg_get_visual_studio_generator) cmake_parse_arguments(PARSE_ARGV 0 arg "" "OUT_GENERATOR;OUT_ARCH" "") if (NOT DEFINED arg_OUT_GENERATOR) message(FATAL_ERROR "OUT_GENERATOR must be defined.") endif() if(NOT DEFINED arg_OUT_ARCH) message(FATAL_ERROR "OUT_ARCH must be defined.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED ENV{VisualStudioVersion}) if("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "12.99" AND "$ENV{VisualStudioVersion}" VERSION_GREATER_EQUAL "12.0" AND NOT "${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") set(generator "Visual Studio 12 2013") elseif("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "14.99" AND NOT "${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") set(generator "Visual Studio 14 2015") elseif("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "15.99") set(generator "Visual Studio 15 2017") elseif("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "16.99") set(generator "Visual Studio 16 2019") elseif("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "17.99") set(generator "Visual Studio 17 2022") elseif("$ENV{VisualStudioVersion}" VERSION_LESS_EQUAL "18.99") set(generator "Visual Studio 18 2026") endif() endif() if("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x86") set(generator_arch "Win32") elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x64") set(generator_arch "x64") elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm") set(generator_arch "ARM") elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "arm64") set(generator_arch "ARM64") endif() set(${arg_OUT_GENERATOR} "${generator}" PARENT_SCOPE) set(${arg_OUT_ARCH} "${generator_arch}" PARENT_SCOPE) endfunction() function(z_vcpkg_select_default_vcpkg_chainload_toolchain) set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${Z_VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" PARENT_SCOPE) endfunction() function(vcpkg_configure_cmake) cmake_parse_arguments(PARSE_ARGV 0 arg "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;NO_CHARSET_FLAG;Z_GET_CMAKE_VARS_USAGE" "SOURCE_PATH;GENERATOR;LOGNAME" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;MAYBE_UNUSED_VARIABLES" ) if(NOT arg_Z_GET_CMAKE_VARS_USAGE AND Z_VCPKG_CMAKE_CONFIGURE_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-cmake; using both vcpkg-cmake and vcpkg_configure_cmake in the same port is unsupported.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified") endif() if(NOT DEFINED arg_LOGNAME) set(arg_LOGNAME "config-${TARGET_TRIPLET}") endif() vcpkg_list(SET manually_specified_variables) if(arg_Z_GET_CMAKE_VARS_USAGE) set(configuring_message "Getting CMake variables for ${TARGET_TRIPLET}") else() set(configuring_message "Configuring ${TARGET_TRIPLET}") foreach(option IN LISTS arg_OPTIONS arg_OPTIONS_RELEASE arg_OPTIONS_DEBUG) if("${option}" MATCHES "^-D([^:=]*)[:=]") vcpkg_list(APPEND manually_specified_variables "${CMAKE_MATCH_1}") endif() endforeach() vcpkg_list(REMOVE_DUPLICATES manually_specified_variables) foreach(maybe_unused_var IN LISTS arg_MAYBE_UNUSED_VARIABLES) vcpkg_list(REMOVE_ITEM manually_specified_variables "${maybe_unused_var}") endforeach() debug_message("manually specified variables: ${manually_specified_variables}") endif() set(ninja_can_be_used ON) # Ninja as generator set(ninja_host ON) # Ninja as parallel configurator if(NOT arg_PREFER_NINJA AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ninja_can_be_used OFF) endif() if(VCPKG_HOST_IS_WINDOWS) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_arch "$ENV{PROCESSOR_ARCHITEW6432}") else() set(host_arch "$ENV{PROCESSOR_ARCHITECTURE}") endif() if("${host_arch}" STREQUAL "x86") # Prebuilt ninja binaries are only provided for x64 hosts set(ninja_can_be_used OFF) set(ninja_host OFF) endif() endif() set(generator "Ninja") # the default generator is always ninja! set(generator_arch "") if(DEFINED arg_GENERATOR) set(generator "${arg_GENERATOR}") elseif(NOT ninja_can_be_used) set(generator "") z_vcpkg_get_visual_studio_generator(OUT_GENERATOR generator OUT_ARCH generator_arch) if("${generator}" STREQUAL "" OR "${generator_arch}" STREQUAL "") message(FATAL_ERROR "Unable to determine appropriate generator for triplet ${TARGET_TRIPLET}: ENV{VisualStudioVersion} : $ENV{VisualStudioVersion} platform toolset: ${VCPKG_PLATFORM_TOOLSET} architecture : ${VCPKG_TARGET_ARCHITECTURE}") endif() if(DEFINED VCPKG_PLATFORM_TOOLSET) vcpkg_list(APPEND arg_OPTIONS "-T${VCPKG_PLATFORM_TOOLSET}") endif() endif() # If we use Ninja, make sure it's on PATH if("${generator}" STREQUAL "Ninja" AND NOT DEFINED ENV{VCPKG_FORCE_SYSTEM_BINARIES}) vcpkg_find_acquire_program(NINJA) get_filename_component(ninja_path "${NINJA}" DIRECTORY) vcpkg_add_to_path("${ninja_path}") vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_MAKE_PROGRAM=${NINJA}") endif() file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") if(DEFINED VCPKG_CMAKE_SYSTEM_NAME) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") if(VCPKG_TARGET_IS_UWP AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) elseif(VCPKG_TARGET_IS_ANDROID AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(VCPKG_CMAKE_SYSTEM_VERSION 21) endif() endif() if(DEFINED VCPKG_XBOX_CONSOLE_TARGET) vcpkg_list(APPEND arg_OPTIONS "-DXBOX_CONSOLE_TARGET=${VCPKG_XBOX_CONSOLE_TARGET}") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") endif() if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "dynamic") vcpkg_list(APPEND arg_OPTIONS -DBUILD_SHARED_LIBS=ON) elseif("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") vcpkg_list(APPEND arg_OPTIONS -DBUILD_SHARED_LIBS=OFF) else() message(FATAL_ERROR "Invalid setting for VCPKG_LIBRARY_LINKAGE: \"${VCPKG_LIBRARY_LINKAGE}\". It must be \"static\" or \"dynamic\"") endif() z_vcpkg_configure_cmake_both_or_neither_set(VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_DEBUG) z_vcpkg_configure_cmake_both_or_neither_set(VCPKG_CXX_FLAGS_RELEASE VCPKG_C_FLAGS_RELEASE) z_vcpkg_configure_cmake_both_or_neither_set(VCPKG_CXX_FLAGS VCPKG_C_FLAGS) set(vcpkg_set_charset_flag ON) if(arg_NO_CHARSET_FLAG) set(vcpkg_set_charset_flag OFF) endif() if(NOT VCPKG_CHAINLOAD_TOOLCHAIN_FILE) z_vcpkg_select_default_vcpkg_chainload_toolchain() endif() vcpkg_list(APPEND arg_OPTIONS "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}" "-DVCPKG_SET_CHARSET_FLAG=${vcpkg_set_charset_flag}" "-DVCPKG_PLATFORM_TOOLSET=${VCPKG_PLATFORM_TOOLSET}" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=${SCRIPTS}/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=${VCPKG_CXX_FLAGS}" "-DVCPKG_CXX_FLAGS_RELEASE=${VCPKG_CXX_FLAGS_RELEASE}" "-DVCPKG_CXX_FLAGS_DEBUG=${VCPKG_CXX_FLAGS_DEBUG}" "-DVCPKG_C_FLAGS=${VCPKG_C_FLAGS}" "-DVCPKG_C_FLAGS_RELEASE=${VCPKG_C_FLAGS_RELEASE}" "-DVCPKG_C_FLAGS_DEBUG=${VCPKG_C_FLAGS_DEBUG}" "-DVCPKG_CRT_LINKAGE=${VCPKG_CRT_LINKAGE}" "-DVCPKG_LINKER_FLAGS=${VCPKG_LINKER_FLAGS}" "-DVCPKG_LINKER_FLAGS_RELEASE=${VCPKG_LINKER_FLAGS_RELEASE}" "-DVCPKG_LINKER_FLAGS_DEBUG=${VCPKG_LINKER_FLAGS_DEBUG}" "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=${VCPKG_ROOT_DIR}" "-DZ_VCPKG_ROOT_DIR=${VCPKG_ROOT_DIR}" "-D_VCPKG_INSTALLED_DIR=${_VCPKG_INSTALLED_DIR}" "-DVCPKG_MANIFEST_INSTALL=OFF" ) if(NOT "${generator_arch}" STREQUAL "") vcpkg_list(APPEND arg_OPTIONS "-A${generator_arch}") endif() # Sets configuration variables for macOS builds foreach(config_var IN ITEMS INSTALL_NAME_DIR OSX_DEPLOYMENT_TARGET OSX_SYSROOT OSX_ARCHITECTURES) if(DEFINED "VCPKG_${config_var}") vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_${config_var}=${VCPKG_${config_var}}") endif() endforeach() # Allow overrides / additional configuration variables from triplets if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_CMAKE_CONFIGURE_OPTIONS}) endif() if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE ${VCPKG_CMAKE_CONFIGURE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG ${VCPKG_CMAKE_CONFIGURE_OPTIONS_DEBUG}) endif() vcpkg_list(SET rel_command "${CMAKE_COMMAND}" "${arg_SOURCE_PATH}" -G "${generator}" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}" ${arg_OPTIONS} ${arg_OPTIONS_RELEASE}) vcpkg_list(SET dbg_command "${CMAKE_COMMAND}" "${arg_SOURCE_PATH}" -G "${generator}" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug" ${arg_OPTIONS} ${arg_OPTIONS_DEBUG}) if(ninja_host AND CMAKE_HOST_WIN32 AND NOT arg_DISABLE_PARALLEL_CONFIGURE) vcpkg_list(APPEND arg_OPTIONS "-DCMAKE_DISABLE_SOURCE_CHANGES=ON") vcpkg_find_acquire_program(NINJA) if(NOT DEFINED ninja_path) # if ninja_path was defined above, we've already done this get_filename_component(ninja_path "${NINJA}" DIRECTORY) vcpkg_add_to_path("${ninja_path}") endif() #parallelize the configure step set(ninja_configure_contents "rule CreateProcess\n command = \$process\n\n" ) if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") z_vcpkg_configure_cmake_build_cmakecache(ninja_configure_contents ".." "rel") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") z_vcpkg_configure_cmake_build_cmakecache(ninja_configure_contents "../../${TARGET_TRIPLET}-dbg" "dbg") endif() file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure") file(WRITE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure/build.ninja" "${ninja_configure_contents}") message(STATUS "${configuring_message}") vcpkg_execute_required_process( COMMAND "${NINJA}" -v WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/vcpkg-parallel-configure" LOGNAME "${arg_LOGNAME}" SAVE_LOG_FILES "../../${TARGET_TRIPLET}-dbg/CMakeCache.txt" ALIAS "dbg-CMakeCache.txt.log" "../CMakeCache.txt" ALIAS "rel-CMakeCache.txt.log" ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-err.log") else() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "debug") message(STATUS "${configuring_message}-dbg") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND ${dbg_command} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME "${arg_LOGNAME}-dbg" SAVE_LOG_FILES CMakeCache.txt ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-dbg-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-dbg-err.log") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR "${VCPKG_BUILD_TYPE}" STREQUAL "release") message(STATUS "${configuring_message}-rel") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") vcpkg_execute_required_process( COMMAND ${rel_command} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" LOGNAME "${arg_LOGNAME}-rel" SAVE_LOG_FILES CMakeCache.txt ) vcpkg_list(APPEND config_logs "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-rel-out.log" "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-rel-err.log") endif() endif() # Check unused variables vcpkg_list(SET all_unused_variables) foreach(config_log IN LISTS config_logs) if(NOT EXISTS "${config_log}") continue() endif() file(READ "${config_log}" log_contents) debug_message("Reading configure log ${config_log}...") if(NOT "${log_contents}" MATCHES "Manually-specified variables were not used by the project:\n\n(( [^\n]*\n)*)") continue() endif() string(STRIP "${CMAKE_MATCH_1}" unused_variables) # remove leading ` ` and trailing `\n` string(REPLACE "\n " ";" unused_variables "${unused_variables}") debug_message("unused variables: ${unused_variables}") foreach(unused_variable IN LISTS unused_variables) if("${unused_variable}" IN_LIST manually_specified_variables) debug_message("manually specified unused variable: ${unused_variable}") vcpkg_list(APPEND all_unused_variables "${unused_variable}") else() debug_message("unused variable (not manually specified): ${unused_variable}") endif() endforeach() endforeach() if(NOT "${all_unused_variables}" STREQUAL "") vcpkg_list(REMOVE_DUPLICATES all_unused_variables) vcpkg_list(JOIN all_unused_variables "\n " all_unused_variables) message(WARNING "The following variables are not used in CMakeLists.txt: ${all_unused_variables} Please recheck them and remove the unnecessary options from the `vcpkg_configure_cmake` call. If these options should still be passed for whatever reason, please use the `MAYBE_UNUSED_VARIABLES` argument.") endif() if(NOT arg_Z_GET_CMAKE_VARS_USAGE) set(Z_VCPKG_CMAKE_GENERATOR "${generator}" PARENT_SCOPE) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_configure_gn.cmake ================================================ function(z_vcpkg_configure_gn_generate) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;CONFIG;ARGS" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: generate was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() message(STATUS "Generating build (${arg_CONFIG})...") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${arg_CONFIG}") vcpkg_execute_required_process( COMMAND "${GN}" gen "${CURRENT_BUILDTREES_DIR}/${arg_CONFIG}" "${arg_ARGS}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" LOGNAME "generate-${arg_CONFIG}" ) endfunction() function(vcpkg_configure_gn) if(Z_VCPKG_GN_CONFIGURE_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-gn; using both vcpkg-gn and vcpkg_configure_gn in the same port is unsupported.") else() message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "This function 'vcpkg_configure_gn' is obsolete. Use 'vcpkg_gn_configure' in port 'vcpkg-gn'.") endif() cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_configure_gn was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified.") endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}") vcpkg_find_acquire_program(GN) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_configure_gn_generate( SOURCE_PATH "${arg_SOURCE_PATH}" CONFIG "${TARGET_TRIPLET}-dbg" ARGS "--args=${arg_OPTIONS} ${arg_OPTIONS_DEBUG}" ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_configure_gn_generate( SOURCE_PATH "${arg_SOURCE_PATH}" CONFIG "${TARGET_TRIPLET}-rel" ARGS "--args=${arg_OPTIONS} ${arg_OPTIONS_RELEASE}" ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_configure_make.cmake ================================================ macro(z_vcpkg_determine_autotools_host_cpu out_var) # TODO: the host system processor architecture can differ from the host triplet target architecture if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_arch $ENV{PROCESSOR_ARCHITEW6432}) elseif(DEFINED ENV{PROCESSOR_ARCHITECTURE}) set(host_arch $ENV{PROCESSOR_ARCHITECTURE}) else() set(host_arch "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endif() if(host_arch MATCHES "(amd|AMD)64") set(${out_var} x86_64) elseif(host_arch MATCHES "(x|X)86") set(${out_var} i686) elseif(host_arch MATCHES "^(ARM|arm)64$") set(${out_var} aarch64) elseif(host_arch MATCHES "^(ARM|arm)$") set(${out_var} arm) else() message(FATAL_ERROR "Unsupported host architecture ${host_arch} in z_vcpkg_determine_autotools_host_cpu!" ) endif() unset(host_arch) endmacro() macro(z_vcpkg_determine_autotools_target_cpu out_var) if(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)64") set(${out_var} x86_64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86") set(${out_var} i686) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$") set(${out_var} aarch64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)$") set(${out_var} arm) else() message(FATAL_ERROR "Unsupported VCPKG_TARGET_ARCHITECTURE architecture ${VCPKG_TARGET_ARCHITECTURE} in z_vcpkg_determine_autotools_target_cpu!" ) endif() endmacro() macro(z_vcpkg_set_arch_mac out_var value) # Better match the arch behavior of config.guess # See: https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD if("${value}" MATCHES "^(ARM|arm)64$") set(${out_var} "aarch64") else() set(${out_var} "${value}") endif() endmacro() macro(z_vcpkg_determine_autotools_host_arch_mac out_var) z_vcpkg_set_arch_mac(${out_var} "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") endmacro() macro(z_vcpkg_determine_autotools_target_arch_mac out_var) list(LENGTH VCPKG_OSX_ARCHITECTURES osx_archs_num) if(osx_archs_num EQUAL 0) z_vcpkg_set_arch_mac(${out_var} "${VCPKG_DETECTED_CMAKE_HOST_SYSTEM_PROCESSOR}") elseif(osx_archs_num GREATER_EQUAL 2) set(${out_var} "universal") else() z_vcpkg_set_arch_mac(${out_var} "${VCPKG_OSX_ARCHITECTURES}") endif() unset(osx_archs_num) endmacro() # Define variables used in both vcpkg_configure_make and vcpkg_build_make: # short_name_: unique abbreviation for the given build type (rel, dbg) # path_suffix_: installation path suffix for the given build type ('', /debug) # current_installed_dir_escaped: CURRENT_INSTALLED_DIR with escaped space characters # current_installed_dir_msys: CURRENT_INSTALLED_DIR with unprotected spaces, but drive letters transformed for msys macro(z_vcpkg_configure_make_common_definitions) set(short_name_RELEASE "rel") set(short_name_DEBUG "dbg") set(path_suffix_RELEASE "") set(path_suffix_DEBUG "/debug") # Some PATH handling for dealing with spaces....some tools will still fail with that! # In particular, the libtool install command is unable to install correctly to paths with spaces. string(REPLACE " " "\\ " current_installed_dir_escaped "${CURRENT_INSTALLED_DIR}") set(current_installed_dir_msys "${CURRENT_INSTALLED_DIR}") if(CMAKE_HOST_WIN32) string(REGEX REPLACE "^([a-zA-Z]):/" "/\\1/" current_installed_dir_msys "${current_installed_dir_msys}") endif() endmacro() # Initializes well-known and auxiliary variables for flags # - CPPFLAGS_: preprocessor flags common to C and CXX # - CFLAGS_ # - CXXFLAGS_ # - LDFLAGS_ # - ARFLAGS_ # - LINK_ENV_${var_suffix} # Prerequisite: VCPKG_DETECTED_CMAKE_... vars loaded function(z_vcpkg_configure_make_process_flags var_suffix) # separate_arguments is needed to remove outer quotes from detected cmake variables. # (e.g. Android NDK has "--sysroot=...") separate_arguments(CFLAGS NATIVE_COMMAND "Z_VCM_WRAP ${VCPKG_DETECTED_CMAKE_C_FLAGS_${var_suffix}} Z_VCM_WRAP") separate_arguments(CXXFLAGS NATIVE_COMMAND "Z_VCM_WRAP ${VCPKG_DETECTED_CMAKE_CXX_FLAGS_${var_suffix}} Z_VCM_WRAP") separate_arguments(LDFLAGS NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${var_suffix}}") separate_arguments(ARFLAGS NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${var_suffix}}") foreach(var IN ITEMS CFLAGS CXXFLAGS LDFLAGS ARFLAGS) vcpkg_list(APPEND z_vcm_all_flags ${${var}}) endforeach() set(z_vcm_all_flags "${z_vcm_all_flags}" PARENT_SCOPE) # Filter common CPPFLAGS out of CFLAGS and CXXFLAGS vcpkg_list(SET CPPFLAGS) vcpkg_list(SET pattern) foreach(arg IN LISTS CXXFLAGS) if(arg STREQUAL "Z_VCM_WRAP") continue() elseif(NOT pattern STREQUAL "") vcpkg_list(APPEND pattern "${arg}") elseif(arg MATCHES "^-(D|isystem).") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(D|isystem)\$") vcpkg_list(SET pattern "${arg}") continue() elseif(arg MATCHES "^-(-sysroot|-target|m?[Aa][Rr][Cc][Hh])=.") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(isysroot|m32|m64|m?[Aa][Rr][Cc][Hh]|target)\$") vcpkg_list(SET pattern "${arg}") continue() else() continue() endif() string(FIND "${CFLAGS}" ";${pattern};" index) if(NOT index STREQUAL "-1") vcpkg_list(APPEND CPPFLAGS ${pattern}) string(REPLACE ";${pattern};" ";" CFLAGS "${CFLAGS}") string(REPLACE ";${pattern};" ";" CXXFLAGS "${CXXFLAGS}") endif() vcpkg_list(SET pattern) endforeach() vcpkg_list(SET pattern) foreach(arg IN LISTS CFLAGS) if(arg STREQUAL "Z_VCM_WRAP") continue() elseif(NOT pattern STREQUAL "") vcpkg_list(APPEND pattern "${arg}") elseif(arg MATCHES "^-(D|isystem)\$") vcpkg_list(SET pattern "${arg}") continue() elseif(arg MATCHES "^-(D|isystem).") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(-sysroot|-target|m?[Aa][Rr][Cc][Hh])=.") vcpkg_list(SET pattern "${arg}") elseif(arg MATCHES "^-(isysroot|m32|m64|m?[Aa][Rr][Cc][Hh]|target)\$") vcpkg_list(SET pattern "${arg}") continue() else() continue() endif() string(FIND "${CXXFLAGS}" ";${pattern};" index) if(NOT index STREQUAL "-1") vcpkg_list(APPEND CPPFLAGS ${pattern}) string(REPLACE ";${pattern};" ";" CFLAGS "${CFLAGS}") string(REPLACE ";${pattern};" ";" CXXFLAGS "${CXXFLAGS}") endif() vcpkg_list(SET pattern) endforeach() # Remove start/end placeholders foreach(list IN ITEMS CFLAGS CXXFLAGS) vcpkg_list(REMOVE_ITEM ${list} "Z_VCM_WRAP") endforeach() # libtool tries to filter CFLAGS passed to the link stage via an allow-list. # This approach is flawed since it fails to pass flags unknown to libtool # but required for linking to the link stage (e.g. -fsanitize=). # libtool has an -R option so we need to guard against -RTC by using -Xcompiler. # While configuring there might be a lot of unknown compiler option warnings # due to that; just ignore them. set(compiler_flag_escape "") if(VCPKG_DETECTED_CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC" OR VCPKG_DETECTED_CMAKE_C_COMPILER_ID STREQUAL "MSVC") set(compiler_flag_escape "-Xcompiler ") endif() if(compiler_flag_escape) list(TRANSFORM CFLAGS PREPEND "${compiler_flag_escape}") list(TRANSFORM CXXFLAGS PREPEND "${compiler_flag_escape}") endif() # Could use a future VCPKG_DETECTED_CMAKE_LIBRARY_PATH_FLAG set(library_path_flag "-L") # Could use a future VCPKG_DETECTED_MSVC if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_DETECTED_CMAKE_LINKER MATCHES [[link\.exe$]]) set(library_path_flag "-LIBPATH:") endif() set(linker_flag_escape "") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES [[cl\.exe$]]) # Removed by libtool set(linker_flag_escape "-Xlinker ") if(arg_USE_WRAPPERS) # 1st and 3rd are removed by libtool, 2nd by wrapper set(linker_flag_escape "-Xlinker -Xlinker -Xlinker ") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") string(STRIP "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${var_suffix}}" LINK_ENV) else() string(STRIP "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${var_suffix}}" LINK_ENV) endif() endif() if(linker_flag_escape) list(TRANSFORM LDFLAGS PREPEND "${linker_flag_escape}") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${var_suffix}}/lib/manual-link") vcpkg_list(PREPEND LDFLAGS "${linker_flag_escape}${library_path_flag}${current_installed_dir_escaped}${path_suffix_${var_suffix}}/lib/manual-link") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${var_suffix}}/lib") vcpkg_list(PREPEND LDFLAGS "${linker_flag_escape}${library_path_flag}${current_installed_dir_escaped}${path_suffix_${var_suffix}}/lib") endif() if(ARFLAGS) # ARFLAGS need to know the command for creating an archive (Maybe needs user customization?) # or extract it from CMake via CMAKE_${lang}_ARCHIVE_CREATE ? # or from CMAKE_${lang}_${rule} with rule being one of CREATE_SHARED_MODULE CREATE_SHARED_LIBRARY LINK_EXECUTABLE vcpkg_list(PREPEND ARFLAGS "cr") endif() foreach(var IN ITEMS CPPFLAGS CFLAGS CXXFLAGS LDFLAGS ARFLAGS) list(JOIN ${var} " " string) set(${var}_${var_suffix} "${string}" PARENT_SCOPE) endforeach() endfunction() macro(z_vcpkg_append_to_configure_environment inoutstring var defaultval) # Allows to overwrite settings in custom triplets via the environment on windows if(CMAKE_HOST_WIN32 AND DEFINED ENV{${var}}) string(APPEND ${inoutstring} " ${var}='$ENV{${var}}'") else() string(APPEND ${inoutstring} " ${var}='${defaultval}'") endif() endmacro() function(vcpkg_configure_make) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "AUTOCONFIG;SKIP_CONFIGURE;COPY_SOURCE;DISABLE_VERBOSE_FLAGS;NO_ADDITIONAL_PATHS;ADD_BIN_TO_PATH;NO_DEBUG;USE_WRAPPERS;NO_WRAPPERS;DETERMINE_BUILD_TRIPLET" "SOURCE_PATH;PROJECT_SUBPATH;PRERUN_SHELL;BUILD_TRIPLET" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;CONFIGURE_ENVIRONMENT_VARIABLES;CONFIG_DEPENDENT_ENVIRONMENT;ADDITIONAL_MSYS_PACKAGES" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(arg_USE_WRAPPERS AND arg_NO_WRAPPERS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed conflicting options USE_WRAPPERS and NO_WRAPPERS. Please remove one of them!") endif() z_vcpkg_get_cmake_vars(cmake_vars_file) debug_message("Including cmake vars from: ${cmake_vars_file}") include("${cmake_vars_file}") if(DEFINED VCPKG_MAKE_BUILD_TRIPLET) set(arg_BUILD_TRIPLET ${VCPKG_MAKE_BUILD_TRIPLET}) # Triplet overwrite for crosscompiling endif() set(src_dir "${arg_SOURCE_PATH}/${arg_PROJECT_SUBPATH}") set(requires_autogen OFF) # use autogen.sh set(requires_autoconfig OFF) # use autotools and configure.ac if(EXISTS "${src_dir}/configure" AND EXISTS "${src_dir}/configure.ac" AND arg_AUTOCONFIG) # remove configure; rerun autoconf set(requires_autoconfig ON) file(REMOVE "${SRC_DIR}/configure") # remove possible outdated configure scripts elseif(arg_SKIP_CONFIGURE) # no action requested elseif(EXISTS "${src_dir}/configure") # run normally; no autoconf or autogen required elseif(EXISTS "${src_dir}/configure.ac") # Run autoconfig set(requires_autoconfig ON) set(arg_AUTOCONFIG ON) elseif(EXISTS "${src_dir}/autogen.sh") # Run autogen set(requires_autogen ON) else() message(FATAL_ERROR "Could not determine method to configure make") endif() debug_message("requires_autogen:${requires_autogen}") debug_message("requires_autoconfig:${requires_autoconfig}") if(CMAKE_HOST_WIN32 AND VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "cl.exe") #only applies to windows (clang-)cl and lib if(arg_AUTOCONFIG) set(arg_USE_WRAPPERS ON) else() # Keep the setting from portfiles. # Without autotools we assume a custom configure script which correctly handles cl and lib. # Otherwise the port needs to set CC|CXX|AR and probably CPP. endif() else() set(arg_USE_WRAPPERS OFF) endif() if(arg_NO_WRAPPERS) set(arg_USE_WRAPPERS OFF) endif() # Backup environment variables # CCAS CC C CPP CXX FC FF GC LD LF LIBTOOL OBJC OBJCXX R UPC Y set(cm_FLAGS AR AS CCAS CC C CPP CXX FC FF GC LD LF LIBTOOL OBJC OBJXX R UPC Y RC) list(TRANSFORM cm_FLAGS APPEND "FLAGS") vcpkg_backup_env_variables(VARS ${cm_FLAGS}) # FC fotran compiler | FF Fortran 77 compiler # LDFLAGS -> pass -L flags # LIBS -> pass -l flags # Used by gcc/linux vcpkg_backup_env_variables(VARS C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIBRARY_PATH LD_LIBRARY_PATH) # Used by cl vcpkg_backup_env_variables(VARS INCLUDE LIB LIBPATH) vcpkg_list(SET z_vcm_paths_with_spaces) if(CURRENT_PACKAGES_DIR MATCHES " ") vcpkg_list(APPEND z_vcm_paths_with_spaces "${CURRENT_PACKAGES_DIR}") endif() if(CURRENT_INSTALLED_DIR MATCHES " ") vcpkg_list(APPEND z_vcm_paths_with_spaces "${CURRENT_INSTALLED_DIR}") endif() if(z_vcm_paths_with_spaces) # Don't bother with whitespace. The tools will probably fail and I tried very hard trying to make it work (no success so far)! vcpkg_list(APPEND z_vcm_paths_with_spaces "Please move the path to one without whitespaces!") list(JOIN z_vcm_paths_with_spaces "\n " z_vcm_paths_with_spaces) message(STATUS "Warning: Paths with embedded space may be handled incorrectly by configure:\n ${z_vcm_paths_with_spaces}") endif() set(configure_env "V=1") # Establish a bash environment as expected by autotools. if(CMAKE_HOST_WIN32) list(APPEND msys_require_packages autoconf-wrapper automake-wrapper binutils libtool make pkgconf which) vcpkg_acquire_msys(MSYS_ROOT PACKAGES ${msys_require_packages} ${arg_ADDITIONAL_MSYS_PACKAGES}) set(base_cmd "${MSYS_ROOT}/usr/bin/bash.exe" --noprofile --norc --debug) vcpkg_list(SET add_to_env) if(arg_USE_WRAPPERS AND VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND add_to_env "${SCRIPTS}/buildsystems/make_wrapper") # Other required wrappers are also located there vcpkg_list(APPEND add_to_env "${MSYS_ROOT}/usr/share/automake-1.16") endif() cmake_path(CONVERT "$ENV{PATH}" TO_CMAKE_PATH_LIST path_list NORMALIZE) cmake_path(CONVERT "$ENV{SystemRoot}" TO_CMAKE_PATH_LIST system_root NORMALIZE) cmake_path(CONVERT "$ENV{LOCALAPPDATA}" TO_CMAKE_PATH_LIST local_app_data NORMALIZE) file(REAL_PATH "${system_root}" system_root) message(DEBUG "path_list:${path_list}") # Just to have --trace-expand output vcpkg_list(SET find_system_dirs "${system_root}/System32" "${system_root}/System32/" "${local_app_data}/Microsoft/WindowsApps" "${local_app_data}/Microsoft/WindowsApps/" ) string(TOUPPER "${find_system_dirs}" find_system_dirs_upper) set(index 0) set(appending TRUE) foreach(item IN LISTS path_list) string(TOUPPER "${item}" item_upper) if(item_upper IN_LIST find_system_dirs_upper) set(appending FALSE) break() endif() math(EXPR index "${index} + 1") endforeach() if(appending) message(WARNING "Unable to find system dir in the PATH variable! Appending required msys paths!") endif() vcpkg_list(INSERT path_list "${index}" ${add_to_env} "${MSYS_ROOT}/usr/bin") cmake_path(CONVERT "${path_list}" TO_NATIVE_PATH_LIST native_path_list) set(ENV{PATH} "${native_path_list}") else() find_program(base_cmd bash REQUIRED) endif() # Apple platforms - cross-compiling support if(VCPKG_TARGET_IS_APPLE) if (requires_autoconfig AND NOT arg_BUILD_TRIPLET OR arg_DETERMINE_BUILD_TRIPLET) z_vcpkg_determine_autotools_host_arch_mac(BUILD_ARCH) # machine you are building on => --build= z_vcpkg_determine_autotools_target_arch_mac(TARGET_ARCH) # --build: the machine you are building on # --host: the machine you are building for # --target: the machine that CC will produce binaries for # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host if(NOT "${TARGET_ARCH}" STREQUAL "${BUILD_ARCH}" OR NOT VCPKG_TARGET_IS_OSX) # we don't need to specify the additional flags if we build natively. set(arg_BUILD_TRIPLET "--host=${TARGET_ARCH}-apple-darwin") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) endif() debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") endif() endif() # Linux / BSD / Solaris - cross-compiling support if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_BSD OR VCPKG_TARGET_IS_SOLARIS) if (requires_autoconfig AND NOT arg_BUILD_TRIPLET OR arg_DETERMINE_BUILD_TRIPLET) # The regex below takes the prefix from the resulting CMAKE_C_COMPILER variable eg. arm-linux-gnueabihf-gcc # set in the common toolchains/linux.cmake # This is used via --host as a prefix for all other bin tools as well. # Setting the compiler directly via CC=arm-linux-gnueabihf-gcc does not work acording to: # https://www.gnu.org/software/autoconf/manual/autoconf-2.65/html_node/Specifying-Target-Triplets.html if(VCPKG_DETECTED_CMAKE_C_COMPILER MATCHES "([^\/]*)-gcc$" AND CMAKE_MATCH_1) set(arg_BUILD_TRIPLET "--host=${CMAKE_MATCH_1}") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) endif() debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") endif() endif() # Pre-processing windows configure requirements if (VCPKG_TARGET_IS_WINDOWS) if (arg_DETERMINE_BUILD_TRIPLET OR NOT arg_BUILD_TRIPLET) z_vcpkg_determine_autotools_host_cpu(BUILD_ARCH) # VCPKG_HOST => machine you are building on => --build= z_vcpkg_determine_autotools_target_cpu(TARGET_ARCH) # --build: the machine you are building on # --host: the machine you are building for # --target: the machine that CC will produce binaries for # https://stackoverflow.com/questions/21990021/how-to-determine-host-value-for-configure-when-using-cross-compiler # Only for ports using autotools so we can assume that they follow the common conventions for build/target/host if(CMAKE_HOST_WIN32) # Respect host triplet when determining --build if(NOT VCPKG_CROSSCOMPILING) set(_win32_build_arch "${TARGET_ARCH}") else() set(_win32_build_arch "${BUILD_ARCH}") endif() # This is required since we are running in a msys # shell which will be otherwise identified as ${BUILD_ARCH}-pc-msys set(arg_BUILD_TRIPLET "--build=${_win32_build_arch}-pc-mingw32") endif() if(NOT TARGET_ARCH MATCHES "${BUILD_ARCH}" OR NOT CMAKE_HOST_WIN32) # we don't need to specify the additional flags if we build nativly, this does not hold when we are not on windows string(APPEND arg_BUILD_TRIPLET " --host=${TARGET_ARCH}-pc-mingw32") # (Host activates crosscompilation; The name given here is just the prefix of the host tools for the target) endif() if(VCPKG_TARGET_IS_UWP AND NOT arg_BUILD_TRIPLET MATCHES "--host") # Needs to be different from --build to enable cross builds. string(APPEND arg_BUILD_TRIPLET " --host=${TARGET_ARCH}-unknown-mingw32") endif() debug_message("Using make triplet: ${arg_BUILD_TRIPLET}") endif() # Remove full filepaths due to spaces and prepend filepaths to PATH (cross-compiling tools are unlikely on path by default) set(progs VCPKG_DETECTED_CMAKE_C_COMPILER VCPKG_DETECTED_CMAKE_CXX_COMPILER VCPKG_DETECTED_CMAKE_AR VCPKG_DETECTED_CMAKE_LINKER VCPKG_DETECTED_CMAKE_RANLIB VCPKG_DETECTED_CMAKE_OBJDUMP VCPKG_DETECTED_CMAKE_STRIP VCPKG_DETECTED_CMAKE_NM VCPKG_DETECTED_CMAKE_DLLTOOL VCPKG_DETECTED_CMAKE_RC_COMPILER) foreach(prog IN LISTS progs) set(filepath "${${prog}}") if(filepath MATCHES " ") cmake_path(GET filepath FILENAME ${prog}) find_program(z_vcm_prog_found NAMES "${${prog}}" PATHS ENV PATH NO_DEFAULT_PATH NO_CACHE) if(NOT z_vcm_prog_found STREQUAL filepath) cmake_path(GET filepath PARENT_PATH dir) vcpkg_add_to_path(PREPEND "${dir}") endif() endif() endforeach() if (arg_USE_WRAPPERS) z_vcpkg_append_to_configure_environment(configure_env CPP "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CC "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER}") if(NOT arg_BUILD_TRIPLET MATCHES "--host") z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "compile ${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") else() # Silly trick to make configure accept CC_FOR_BUILD but in reallity CC_FOR_BUILD is deactivated. z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() z_vcpkg_append_to_configure_environment(configure_env CXX "compile ${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env RC "windres-rc ${VCPKG_DETECTED_CMAKE_RC_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env WINDRES "windres-rc ${VCPKG_DETECTED_CMAKE_RC_COMPILER}") if(VCPKG_DETECTED_CMAKE_AR) z_vcpkg_append_to_configure_environment(configure_env AR "ar-lib ${VCPKG_DETECTED_CMAKE_AR}") else() z_vcpkg_append_to_configure_environment(configure_env AR "ar-lib lib.exe -verbose") endif() else() z_vcpkg_append_to_configure_environment(configure_env CPP "${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CC "${VCPKG_DETECTED_CMAKE_C_COMPILER}") if(NOT arg_BUILD_TRIPLET MATCHES "--host") z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "${VCPKG_DETECTED_CMAKE_C_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "${VCPKG_DETECTED_CMAKE_C_COMPILER} -E") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") else() z_vcpkg_append_to_configure_environment(configure_env CC_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CPP_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") z_vcpkg_append_to_configure_environment(configure_env CXX_FOR_BUILD "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() z_vcpkg_append_to_configure_environment(configure_env CXX "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env RC "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") z_vcpkg_append_to_configure_environment(configure_env WINDRES "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") if(VCPKG_DETECTED_CMAKE_AR) z_vcpkg_append_to_configure_environment(configure_env AR "${VCPKG_DETECTED_CMAKE_AR}") else() z_vcpkg_append_to_configure_environment(configure_env AR "lib.exe -verbose") endif() endif() z_vcpkg_append_to_configure_environment(configure_env LD "${VCPKG_DETECTED_CMAKE_LINKER} -verbose") if(VCPKG_DETECTED_CMAKE_RANLIB) z_vcpkg_append_to_configure_environment(configure_env RANLIB "${VCPKG_DETECTED_CMAKE_RANLIB}") # Trick to ignore the RANLIB call else() z_vcpkg_append_to_configure_environment(configure_env RANLIB ":") endif() if(VCPKG_DETECTED_CMAKE_OBJDUMP) #Objdump is required to make shared libraries. Otherwise define lt_cv_deplibs_check_method=pass_all z_vcpkg_append_to_configure_environment(configure_env OBJDUMP "${VCPKG_DETECTED_CMAKE_OBJDUMP}") # Trick to ignore the RANLIB call endif() if(VCPKG_DETECTED_CMAKE_STRIP) # If required set the ENV variable STRIP in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env STRIP "${VCPKG_DETECTED_CMAKE_STRIP}") else() z_vcpkg_append_to_configure_environment(configure_env STRIP ":") list(APPEND arg_OPTIONS ac_cv_prog_ac_ct_STRIP=:) endif() if(VCPKG_DETECTED_CMAKE_NM) # If required set the ENV variable NM in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env NM "${VCPKG_DETECTED_CMAKE_NM}") else() # Would be better to have a true nm here! Some symbols (mainly exported variables) get not properly imported with dumpbin as nm # and require __declspec(dllimport) for some reason (same problem CMake has with WINDOWS_EXPORT_ALL_SYMBOLS) z_vcpkg_append_to_configure_environment(configure_env NM "dumpbin.exe -symbols -headers") endif() if(VCPKG_DETECTED_CMAKE_DLLTOOL) # If required set the ENV variable DLLTOOL in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env DLLTOOL "${VCPKG_DETECTED_CMAKE_DLLTOOL}") else() z_vcpkg_append_to_configure_environment(configure_env DLLTOOL "link.exe -verbose -dll") endif() z_vcpkg_append_to_configure_environment(configure_env CCAS ":") # If required set the ENV variable CCAS in the portfile correctly z_vcpkg_append_to_configure_environment(configure_env AS ":") # If required set the ENV variable AS in the portfile correctly foreach(_env IN LISTS arg_CONFIGURE_ENVIRONMENT_VARIABLES) z_vcpkg_append_to_configure_environment(configure_env ${_env} "${${_env}}") endforeach() debug_message("configure_env: '${configure_env}'") # Other maybe interesting variables to control # COMPILE This is the command used to actually compile a C source file. The file name is appended to form the complete command line. # LINK This is the command used to actually link a C program. # CXXCOMPILE The command used to actually compile a C++ source file. The file name is appended to form the complete command line. # CXXLINK The command used to actually link a C++ program. # Variables not correctly detected by configure. In release builds. list(APPEND arg_OPTIONS gl_cv_double_slash_root=yes ac_cv_func_memmove=yes) #list(APPEND arg_OPTIONS lt_cv_deplibs_check_method=pass_all) # Just ignore libtool checks if(VCPKG_TARGET_ARCHITECTURE MATCHES "^[Aa][Rr][Mm]64$") list(APPEND arg_OPTIONS gl_cv_host_cpu_c_abi=no) # Currently needed for arm64 because objdump yields: "unrecognised machine type (0xaa64) in Import Library Format archive" list(APPEND arg_OPTIONS lt_cv_deplibs_check_method=pass_all) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^[Aa][Rr][Mm]$") # Currently needed for arm because objdump yields: "unrecognised machine type (0x1c4) in Import Library Format archive" list(APPEND arg_OPTIONS lt_cv_deplibs_check_method=pass_all) endif() else() # OSX dosn't like CMAKE_C(XX)_COMPILER (cc) in CC/CXX and rather wants to have gcc/g++ vcpkg_list(SET z_vcm_all_tools) function(z_vcpkg_make_set_env envvar cmakevar) if(NOT VCPKG_DETECTED_CMAKE_${cmakevar}) return() endif() set(prog "${VCPKG_DETECTED_CMAKE_${cmakevar}}") if(NOT DEFINED ENV{${envvar}} AND NOT prog STREQUAL "") vcpkg_list(APPEND z_vcm_all_tools "${prog}") if(ARGN) string(APPEND prog " ${ARGN}") endif() set(z_vcm_all_tools "${z_vcm_all_tools}" PARENT_SCOPE) set(ENV{${envvar}} "${prog}") endif() endfunction() z_vcpkg_make_set_env(CC C_COMPILER) if(NOT arg_BUILD_TRIPLET MATCHES "--host") z_vcpkg_make_set_env(CC_FOR_BUILD C_COMPILER) z_vcpkg_make_set_env(CPP_FOR_BUILD C_COMPILER "-E") z_vcpkg_make_set_env(CXX_FOR_BUILD C_COMPILER) else() set(ENV{CC_FOR_BUILD} "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") set(ENV{CPP_FOR_BUILD} "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") set(ENV{CXX_FOR_BUILD} "touch a.out | touch conftest${VCPKG_HOST_EXECUTABLE_SUFFIX} | true") endif() z_vcpkg_make_set_env(CXX CXX_COMPILER) z_vcpkg_make_set_env(NM NM) z_vcpkg_make_set_env(RC RC) z_vcpkg_make_set_env(WINDRES RC) z_vcpkg_make_set_env(DLLTOOL DLLTOOL) z_vcpkg_make_set_env(STRIP STRIP) z_vcpkg_make_set_env(OBJDUMP OBJDUMP) z_vcpkg_make_set_env(RANLIB RANLIB) z_vcpkg_make_set_env(AR AR) z_vcpkg_make_set_env(LD LINKER) unset(z_vcpkg_make_set_env) endif() list(FILTER z_vcm_all_tools INCLUDE REGEX " ") if(z_vcm_all_tools) list(REMOVE_DUPLICATES z_vcm_all_tools) list(JOIN z_vcm_all_tools "\n " tools) message(STATUS "Warning: Tools with embedded space may be handled incorrectly by configure:\n ${tools}") endif() z_vcpkg_configure_make_common_definitions() # Cleanup previous build dirs file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_name_RELEASE}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_name_DEBUG}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") # Set configure paths vcpkg_list(APPEND arg_OPTIONS_RELEASE "--prefix=${current_installed_dir_msys}") vcpkg_list(APPEND arg_OPTIONS_DEBUG "--prefix=${current_installed_dir_msys}${path_suffix_DEBUG}") if(NOT arg_NO_ADDITIONAL_PATHS) # ${prefix} has an extra backslash to prevent early expansion when calling `bash -c configure "..."`. vcpkg_list(APPEND arg_OPTIONS_RELEASE # Important: These should all be relative to prefix! "--bindir=\\\${prefix}/tools/${PORT}/bin" "--sbindir=\\\${prefix}/tools/${PORT}/sbin" "--libdir=\\\${prefix}/lib" # On some Linux distributions lib64 is the default #"--includedir='\${prefix}'/include" # already the default! "--mandir=\\\${prefix}/share/${PORT}" "--docdir=\\\${prefix}/share/${PORT}" "--datarootdir=\\\${prefix}/share/${PORT}") vcpkg_list(APPEND arg_OPTIONS_DEBUG # Important: These should all be relative to prefix! "--bindir=\\\${prefix}/../tools/${PORT}${path_suffix_DEBUG}/bin" "--sbindir=\\\${prefix}/../tools/${PORT}${path_suffix_DEBUG}/sbin" "--libdir=\\\${prefix}/lib" # On some Linux distributions lib64 is the default "--includedir=\\\${prefix}/../include" "--datarootdir=\\\${prefix}/share/${PORT}") endif() # Setup common options if(NOT arg_DISABLE_VERBOSE_FLAGS) list(APPEND arg_OPTIONS --disable-silent-rules --verbose) endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) list(APPEND arg_OPTIONS --enable-shared --disable-static) else() list(APPEND arg_OPTIONS --disable-shared --enable-static) endif() # Can be set in the triplet to append options for configure if(DEFINED VCPKG_CONFIGURE_MAKE_OPTIONS) list(APPEND arg_OPTIONS ${VCPKG_CONFIGURE_MAKE_OPTIONS}) endif() if(DEFINED VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE) list(APPEND arg_OPTIONS_RELEASE ${VCPKG_CONFIGURE_MAKE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG) list(APPEND arg_OPTIONS_DEBUG ${VCPKG_CONFIGURE_MAKE_OPTIONS_DEBUG}) endif() file(RELATIVE_PATH relative_build_path "${CURRENT_BUILDTREES_DIR}" "${arg_SOURCE_PATH}/${arg_PROJECT_SUBPATH}") # Used by CL vcpkg_host_path_list(PREPEND ENV{INCLUDE} "${CURRENT_INSTALLED_DIR}/include") # Used by GCC vcpkg_host_path_list(PREPEND ENV{C_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") vcpkg_host_path_list(PREPEND ENV{CPLUS_INCLUDE_PATH} "${CURRENT_INSTALLED_DIR}/include") # Flags should be set in the toolchain instead (Setting this up correctly requires a function named vcpkg_determined_cmake_compiler_flags which can also be used to setup CC and CXX etc.) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_backup_env_variables(VARS _CL_ _LINK_) # TODO: Should be CPP flags instead -> rewrite when vcpkg_determined_cmake_compiler_flags defined if(VCPKG_TARGET_IS_UWP) # Be aware that configure thinks it is crosscompiling due to: # error while loading shared libraries: VCRUNTIME140D_APP.dll: # cannot open shared object file: No such file or directory # IMPORTANT: The only way to pass linker flags through libtool AND the compile wrapper # is to use the CL and LINK environment variables !!! # (This is due to libtool and compiler wrapper using the same set of options to pass those variables around) file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}" VCToolsInstallDir) set(_replacement -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG "${VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE}") string(REPLACE "${_replacement}" "" VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE "${VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE}") # Can somebody please check if CMake's compiler flags for UWP are correct? set(ENV{_CL_} "$ENV{_CL_} -FU\"${VCToolsInstallDir}/lib/x86/store/references/platform.winmd\"") set(ENV{_LINK_} "$ENV{_LINK_} ${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") endif() endif() # Remove outer quotes from cmake variables which will be forwarded via makefile/shell variables # substituted into makefile commands (e.g. Android NDK has "--sysroot=...") separate_arguments(c_libs_list NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}") separate_arguments(cxx_libs_list NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") list(REMOVE_ITEM cxx_libs_list ${c_libs_list}) set(all_libs_list ${cxx_libs_list} ${c_libs_list}) #Do lib list transformation from name.lib to -lname if necessary set(x_vcpkg_transform_libs ON) if(VCPKG_TARGET_IS_UWP) set(x_vcpkg_transform_libs OFF) # Avoid libtool choke: "Warning: linker path does not have real file for library -lWindowsApp." # The problem with the choke is that libtool always falls back to built a static library even if a dynamic was requested. # Note: Env LIBPATH;LIB are on the search path for libtool by default on windows. # It even does unix/dos-short/unix transformation with the path to get rid of spaces. endif() if(x_vcpkg_transform_libs) list(TRANSFORM all_libs_list REPLACE "[.](dll[.]lib|lib|a|so)$" "") if(VCPKG_TARGET_IS_WINDOWS) list(REMOVE_ITEM all_libs_list "uuid") endif() list(TRANSFORM all_libs_list REPLACE "^([^-].*)" "-l\\1") if(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") # libtool must be told explicitly that there is no dynamic linkage for uuid. # The "-Wl,..." syntax is understood by libtool and gcc, but no by ld. list(TRANSFORM all_libs_list REPLACE "^-luuid\$" "-Wl,-Bstatic,-luuid,-Bdynamic") endif() endif() if(all_libs_list) list(JOIN all_libs_list " " all_libs_string) if(DEFINED ENV{LIBS}) set(ENV{LIBS} "$ENV{LIBS} ${all_libs_string}") else() set(ENV{LIBS} "${all_libs_string}") endif() endif() debug_message("ENV{LIBS}:$ENV{LIBS}") # Run autoconf if necessary if (arg_AUTOCONFIG OR requires_autoconfig AND NOT arg_NO_AUTOCONFIG) find_program(AUTORECONF autoreconf) if(NOT AUTORECONF) message(FATAL_ERROR "${PORT} requires autoconf from the system package manager (example: \"sudo apt-get install autoconf\")") endif() message(STATUS "Generating configure for ${TARGET_TRIPLET}") if (CMAKE_HOST_WIN32) vcpkg_execute_required_process( COMMAND ${base_cmd} -c "autoreconf -vfi" WORKING_DIRECTORY "${src_dir}" LOGNAME "autoconf-${TARGET_TRIPLET}" ) else() vcpkg_execute_required_process( COMMAND "${AUTORECONF}" -vfi WORKING_DIRECTORY "${src_dir}" LOGNAME "autoconf-${TARGET_TRIPLET}" ) endif() message(STATUS "Finished generating configure for ${TARGET_TRIPLET}") endif() if(requires_autogen) message(STATUS "Generating configure for ${TARGET_TRIPLET} via autogen.sh") if (CMAKE_HOST_WIN32) vcpkg_execute_required_process( COMMAND ${base_cmd} -c "./autogen.sh" WORKING_DIRECTORY "${src_dir}" LOGNAME "autoconf-${TARGET_TRIPLET}" ) else() vcpkg_execute_required_process( COMMAND "./autogen.sh" WORKING_DIRECTORY "${src_dir}" LOGNAME "autoconf-${TARGET_TRIPLET}" ) endif() message(STATUS "Finished generating configure for ${TARGET_TRIPLET}") endif() if (arg_PRERUN_SHELL) message(STATUS "Prerun shell with ${TARGET_TRIPLET}") if (CMAKE_HOST_WIN32) vcpkg_execute_required_process( COMMAND ${base_cmd} -c "${arg_PRERUN_SHELL}" WORKING_DIRECTORY "${src_dir}" LOGNAME "prerun-${TARGET_TRIPLET}" ) else() vcpkg_execute_required_process( COMMAND "${base_cmd}" -c "${arg_PRERUN_SHELL}" WORKING_DIRECTORY "${src_dir}" LOGNAME "prerun-${TARGET_TRIPLET}" ) endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" AND NOT arg_NO_DEBUG) list(APPEND all_buildtypes DEBUG) z_vcpkg_configure_make_process_flags(DEBUG) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") list(APPEND all_buildtypes RELEASE) z_vcpkg_configure_make_process_flags(RELEASE) endif() list(FILTER z_vcm_all_flags INCLUDE REGEX " ") if(z_vcm_all_flags) list(REMOVE_DUPLICATES z_vcm_all_flags) list(JOIN z_vcm_all_flags "\n " flags) message(STATUS "Warning: Arguments with embedded space may be handled incorrectly by configure:\n ${flags}") endif() foreach(var IN ITEMS arg_OPTIONS arg_OPTIONS_RELEASE arg_OPTIONS_DEBUG) vcpkg_list(SET tmp) foreach(element IN LISTS "${var}") string(REPLACE [["]] [[\"]] element "${element}") vcpkg_list(APPEND tmp "\"${element}\"") endforeach() vcpkg_list(JOIN tmp " " "${var}") endforeach() foreach(current_buildtype IN LISTS all_buildtypes) foreach(ENV_VAR ${arg_CONFIG_DEPENDENT_ENVIRONMENT}) if(DEFINED ENV{${ENV_VAR}}) set(backup_config_${ENV_VAR} "$ENV{${ENV_VAR}}") endif() set(ENV{${ENV_VAR}} "${${ENV_VAR}_${current_buildtype}}") endforeach() set(target_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_name_${current_buildtype}}") file(MAKE_DIRECTORY "${target_dir}") file(RELATIVE_PATH relative_build_path "${target_dir}" "${src_dir}") if(arg_COPY_SOURCE) file(COPY "${src_dir}/" DESTINATION "${target_dir}") set(relative_build_path .) endif() # Setup PKG_CONFIG_PATH z_vcpkg_setup_pkgconfig_path(CONFIG "${current_buildtype}") # Setup environment set(ENV{CPPFLAGS} "${CPPFLAGS_${current_buildtype}}") set(ENV{CPPFLAGS_FOR_BUILD} "${CPPFLAGS_${current_buildtype}}") set(ENV{CFLAGS} "${CFLAGS_${current_buildtype}}") set(ENV{CFLAGS_FOR_BUILD} "${CFLAGS_${current_buildtype}}") set(ENV{CXXFLAGS} "${CXXFLAGS_${current_buildtype}}") #set(ENV{CXXFLAGS_FOR_BUILD} "${CXXFLAGS_${current_buildtype}}") -> doesn't exist officially set(ENV{RCFLAGS} "${VCPKG_DETECTED_CMAKE_RC_FLAGS_${current_buildtype}}") set(ENV{LDFLAGS} "${LDFLAGS_${current_buildtype}}") set(ENV{LDFLAGS_FOR_BUILD} "${LDFLAGS_${current_buildtype}}") if(ARFLAGS_${current_buildtype} AND NOT (arg_USE_WRAPPERS AND VCPKG_TARGET_IS_WINDOWS)) # Target windows with wrappers enabled cannot forward ARFLAGS since it breaks the wrapper set(ENV{ARFLAGS} "${ARFLAGS_${current_buildtype}}") endif() set(env_cc_backup "$ENV{CC}") if(VCPKG_TARGET_IS_APPLE) # configure not using all flags to check if compiler works ... set(ENV{CC} "$ENV{CC} $ENV{CPPFLAGS} $ENV{CFLAGS}") set(ENV{CC_FOR_BUILD} "$ENV{CC_FOR_BUILD} $ENV{CPPFLAGS} $ENV{CFLAGS}") endif() if(LINK_ENV_${current_buildtype}) set(link_config_backup "$ENV{_LINK_}") set(ENV{_LINK_} "${LINK_ENV_${current_buildtype}}") else() unset(link_config_backup) endif() vcpkg_list(APPEND lib_env_vars LIB LIBPATH LIBRARY_PATH) # LD_LIBRARY_PATH) foreach(lib_env_var IN LISTS lib_env_vars) if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${current_buildtype}}/lib") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${CURRENT_INSTALLED_DIR}${path_suffix_${current_buildtype}}/lib") endif() if(EXISTS "${CURRENT_INSTALLED_DIR}${path_suffix_${current_buildtype}}/lib/manual-link") vcpkg_host_path_list(PREPEND ENV{${lib_env_var}} "${CURRENT_INSTALLED_DIR}${path_suffix_${current_buildtype}}/lib/manual-link") endif() endforeach() unset(lib_env_vars) set(command "${base_cmd}" -c "${configure_env} ./${relative_build_path}/configure ${arg_BUILD_TRIPLET} ${arg_OPTIONS} ${arg_OPTIONS_${current_buildtype}}") if(arg_ADD_BIN_TO_PATH) set(path_backup $ENV{PATH}) vcpkg_add_to_path("${CURRENT_INSTALLED_DIR}${path_suffix_${current_buildtype}}/bin") endif() debug_message("Configure command:'${command}'") if (NOT arg_SKIP_CONFIGURE) message(STATUS "Configuring ${TARGET_TRIPLET}-${short_name_${current_buildtype}}") vcpkg_execute_required_process( COMMAND ${command} WORKING_DIRECTORY "${target_dir}" LOGNAME "config-${TARGET_TRIPLET}-${short_name_${current_buildtype}}" SAVE_LOG_FILES config.log ) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) file(GLOB_RECURSE libtool_files "${target_dir}*/libtool") foreach(lt_file IN LISTS libtool_files) file(READ "${lt_file}" _contents) string(REPLACE ".dll.lib" ".lib" _contents "${_contents}") file(WRITE "${lt_file}" "${_contents}") endforeach() endif() endif() z_vcpkg_restore_pkgconfig_path() if(DEFINED link_config_backup) set(ENV{_LINK_} "${link_config_backup}") endif() if(arg_ADD_BIN_TO_PATH) set(ENV{PATH} "${path_backup}") endif() # Restore environment (config dependent) if(VCPKG_TARGET_IS_APPLE) set(ENV{CC} "${env_cc_backup}") endif() foreach(ENV_VAR IN LISTS ${arg_CONFIG_DEPENDENT_ENVIRONMENT}) if(backup_config_${ENV_VAR}) set(ENV{${ENV_VAR}} "${backup_config_${ENV_VAR}}") else() unset(ENV{${ENV_VAR}}) endif() endforeach() endforeach() # Export matching make program for vcpkg_build_make (cache variable) if(CMAKE_HOST_WIN32 AND MSYS_ROOT) find_program(Z_VCPKG_MAKE make PATHS "${MSYS_ROOT}/usr/bin" NO_DEFAULT_PATH REQUIRED) elseif(VCPKG_HOST_IS_BSD) find_program(Z_VCPKG_MAKE gmake REQUIRED) elseif(VCPKG_HOST_IS_SOLARIS) find_program(Z_VCPKG_MAKE NAMES gmake make REQUIRED) else() find_program(Z_VCPKG_MAKE make REQUIRED) endif() # Restore environment vcpkg_restore_env_variables(VARS ${cm_FLAGS} LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) set(_VCPKG_PROJECT_SOURCE_PATH ${arg_SOURCE_PATH} PARENT_SCOPE) set(_VCPKG_PROJECT_SUBPATH ${arg_PROJECT_SUBPATH} PARENT_SCOPE) set(_VCPKG_MAKE_NO_DEBUG ${arg_NO_DEBUG} PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_configure_meson.cmake ================================================ function(z_vcpkg_meson_set_proglist_variables config_type) if(VCPKG_TARGET_IS_WINDOWS) set(proglist MT AR) else() set(proglist AR RANLIB STRIP NM OBJDUMP DLLTOOL MT) endif() foreach(prog IN LISTS proglist) if(VCPKG_DETECTED_CMAKE_${prog}) if(meson_${prog}) string(TOUPPER "MESON_${meson_${prog}}" var_to_set) set("${var_to_set}" "${meson_${prog}} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE) elseif(${prog} STREQUAL AR AND VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${config_type}) # Probably need to move AR somewhere else string(TOLOWER "${prog}" proglower) z_vcpkg_meson_convert_compiler_flags_to_list(ar_flags "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_${config_type}}") list(PREPEND ar_flags "${VCPKG_DETECTED_CMAKE_${prog}}") z_vcpkg_meson_convert_list_to_python_array(ar_flags ${ar_flags}) set("MESON_AR" "${proglower} = ${ar_flags}" PARENT_SCOPE) else() string(TOUPPER "MESON_${prog}" var_to_set) string(TOLOWER "${prog}" proglower) set("${var_to_set}" "${proglower} = ['${VCPKG_DETECTED_CMAKE_${prog}}']" PARENT_SCOPE) endif() endif() endforeach() set(compilers "${arg_LANGUAGES}") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND compilers RC) endif() set(meson_RC windres) set(meson_Fortran fc) set(meson_CXX cpp) foreach(prog IN LISTS compilers) if(VCPKG_DETECTED_CMAKE_${prog}_COMPILER) string(TOUPPER "MESON_${prog}" var_to_set) if(meson_${prog}) if(VCPKG_DETECTED_CMAKE_${prog}_FLAGS_${config_type}) # Need compiler flags in prog vars for sanity check. z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_FLAGS_${config_type}}") endif() list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}") list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags}) set("${var_to_set}" "${meson_${prog}} = ${${prog}flags}" PARENT_SCOPE) if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$") string(TOUPPER "MESON_${prog}_LD" var_to_set) set(${var_to_set} "${meson_${prog}}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE) endif() else() if(VCPKG_DETECTED_CMAKE_${prog}_FLAGS_${config_type}) # Need compiler flags in prog vars for sanity check. z_vcpkg_meson_convert_compiler_flags_to_list(${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_FLAGS_${config_type}}") endif() list(PREPEND ${prog}flags "${VCPKG_DETECTED_CMAKE_${prog}_COMPILER}") list(FILTER ${prog}flags EXCLUDE REGEX "(-|/)nologo") # Breaks compiler detection otherwise z_vcpkg_meson_convert_list_to_python_array(${prog}flags ${${prog}flags}) string(TOLOWER "${prog}" proglower) set("${var_to_set}" "${proglower} = ${${prog}flags}" PARENT_SCOPE) if (DEFINED VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID AND NOT VCPKG_DETECTED_CMAKE_${prog}_COMPILER_ID MATCHES "^(GNU|Intel)$") string(TOUPPER "MESON_${prog}_LD" var_to_set) set(${var_to_set} "${proglower}_ld = ['${VCPKG_DETECTED_CMAKE_LINKER}']" PARENT_SCOPE) endif() endif() endif() endforeach() endfunction() function(z_vcpkg_meson_convert_compiler_flags_to_list out_var compiler_flags) separate_arguments(cmake_list NATIVE_COMMAND "${compiler_flags}") list(TRANSFORM cmake_list REPLACE ";" [[\\;]]) set("${out_var}" "${cmake_list}" PARENT_SCOPE) endfunction() function(z_vcpkg_meson_convert_list_to_python_array out_var) z_vcpkg_function_arguments(flag_list 1) vcpkg_list(REMOVE_ITEM flag_list "") # remove empty elements if any vcpkg_list(JOIN flag_list "', '" flag_list) set("${out_var}" "['${flag_list}']" PARENT_SCOPE) endfunction() # Generates the required compiler properties for meson function(z_vcpkg_meson_set_flags_variables config_type) if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(libpath_flag /LIBPATH:) else() set(libpath_flag -L) endif() if(config_type STREQUAL "DEBUG") set(path_suffix "/debug") else() set(path_suffix "") endif() set(includepath "-I${CURRENT_INSTALLED_DIR}/include") set(libpath "${libpath_flag}${CURRENT_INSTALLED_DIR}${path_suffix}/lib") foreach(lang IN LISTS arg_LANGUAGES) z_vcpkg_meson_convert_compiler_flags_to_list(${lang}flags "${VCPKG_DETECTED_CMAKE_${lang}_FLAGS_${config_type}}") if(lang MATCHES "^(C|CXX)$") vcpkg_list(APPEND ${lang}flags "${includepath}") endif() z_vcpkg_meson_convert_list_to_python_array(${lang}flags ${${lang}flags}) set(lang_mapping "${lang}") if(lang STREQUAL "Fortran") set(lang_mapping "FC") endif() string(TOLOWER "${lang_mapping}" langlower) if(lang STREQUAL "CXX") set(langlower cpp) endif() set(MESON_${lang_mapping}FLAGS "${langlower}_args = ${${lang}flags}\n") set(linker_flags "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_${config_type}}") z_vcpkg_meson_convert_compiler_flags_to_list(linker_flags "${linker_flags}") vcpkg_list(APPEND linker_flags "${libpath}") z_vcpkg_meson_convert_list_to_python_array(linker_flags ${linker_flags}) string(APPEND MESON_${lang_mapping}FLAGS "${langlower}_link_args = ${linker_flags}\n") set(MESON_${lang_mapping}FLAGS "${MESON_${lang_mapping}FLAGS}" PARENT_SCOPE) endforeach() endfunction() function(z_vcpkg_get_build_and_host_system build_system host_system is_cross) #https://mesonbuild.com/Cross-compilation.html set(build_unknown FALSE) if(CMAKE_HOST_WIN32) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(build_arch $ENV{PROCESSOR_ARCHITEW6432}) else() set(build_arch $ENV{PROCESSOR_ARCHITECTURE}) endif() if(build_arch MATCHES "(amd|AMD)64") set(build_cpu_fam x86_64) set(build_cpu x86_64) elseif(build_arch MATCHES "(x|X)86") set(build_cpu_fam x86) set(build_cpu i686) elseif(build_arch MATCHES "^(ARM|arm)64$") set(build_cpu_fam aarch64) set(build_cpu armv8) elseif(build_arch MATCHES "^(ARM|arm)$") set(build_cpu_fam arm) set(build_cpu armv7hl) else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unsupported build architecture ${build_arch}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() elseif(CMAKE_HOST_UNIX) # at this stage, CMAKE_HOST_SYSTEM_PROCESSOR is not defined execute_process( COMMAND uname -m OUTPUT_VARIABLE MACHINE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY) if(CMAKE_HOST_SOLARIS) execute_process( COMMAND isainfo -k OUTPUT_VARIABLE MACHINE OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY) endif() # Show real machine architecture to visually understand whether we are in a native Apple Silicon terminal or running under Rosetta emulation debug_message("Machine: ${MACHINE}") if(MACHINE MATCHES "arm64|aarch64") set(build_cpu_fam aarch64) set(build_cpu armv8) elseif(MACHINE MATCHES "armv7h?l") set(build_cpu_fam arm) set(build_cpu ${MACHINE}) elseif(MACHINE MATCHES "x86_64|amd64") set(build_cpu_fam x86_64) set(build_cpu x86_64) elseif(MACHINE MATCHES "x86|i686") set(build_cpu_fam x86) set(build_cpu i686) elseif(MACHINE MATCHES "i386") set(build_cpu_fam x86) set(build_cpu i386) elseif(MACHINE MATCHES "loongarch64") set(build_cpu_fam loongarch64) set(build_cpu loongarch64) else() # https://github.com/mesonbuild/meson/blob/master/docs/markdown/Reference-tables.md#cpu-families if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unhandled machine: ${MACHINE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Failed to detect the build architecture! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the build_machine entry!") endif() set(build_unknown TRUE) endif() set(build "[build_machine]\n") # Machine the build is performed on string(APPEND build "endian = 'little'\n") if(CMAKE_HOST_WIN32) string(APPEND build "system = 'windows'\n") elseif(CMAKE_HOST_APPLE) string(APPEND build "system = 'darwin'\n") elseif(VCPKG_HOST_IS_CYGWIN) string(APPEND build "system = 'cygwin'\n") elseif(CMAKE_HOST_UNIX) string(APPEND build "system = 'linux'\n") else() set(build_unknown TRUE) endif() if(DEFINED build_cpu_fam) string(APPEND build "cpu_family = '${build_cpu_fam}'\n") endif() if(DEFINED build_cpu) string(APPEND build "cpu = '${build_cpu}'") endif() if(NOT build_unknown) set(${build_system} "${build}" PARENT_SCOPE) endif() set(host_unkown FALSE) if(VCPKG_TARGET_ARCHITECTURE MATCHES "(amd|AMD|x|X)64") set(host_cpu_fam x86_64) set(host_cpu x86_64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "(x|X)86") set(host_cpu_fam x86) set(host_cpu i686) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)64$") set(host_cpu_fam aarch64) set(host_cpu armv8) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "^(ARM|arm)$") set(host_cpu_fam arm) set(host_cpu armv7hl) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "loongarch64") set(host_cpu_fam loongarch64) set(host_cpu loongarch64) elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "wasm32") set(host_cpu_fam wasm32) set(host_cpu wasm32) else() if(NOT DEFINED VCPKG_MESON_CROSS_FILE OR NOT DEFINED VCPKG_MESON_NATIVE_FILE) message(WARNING "Unsupported target architecture ${VCPKG_TARGET_ARCHITECTURE}! Please set VCPKG_MESON_(CROSS|NATIVE)_FILE to a meson file containing the host_machine entry!" ) endif() set(host_unkown TRUE) endif() set(host "[host_machine]\n") # host=target in vcpkg. string(APPEND host "endian = 'little'\n") if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_TARGET_IS_MINGW OR VCPKG_TARGET_IS_UWP) set(meson_system_name "windows") else() string(TOLOWER "${VCPKG_CMAKE_SYSTEM_NAME}" meson_system_name) endif() string(APPEND host "system = '${meson_system_name}'\n") string(APPEND host "cpu_family = '${host_cpu_fam}'\n") string(APPEND host "cpu = '${host_cpu}'") if(NOT host_unkown) set(${host_system} "${host}" PARENT_SCOPE) endif() if(NOT build_cpu_fam MATCHES "${host_cpu_fam}" OR VCPKG_TARGET_IS_ANDROID OR (VCPKG_TARGET_IS_APPLE AND NOT VCPKG_TARGET_IS_OSX) OR VCPKG_TARGET_IS_UWP OR (VCPKG_TARGET_IS_MINGW AND NOT CMAKE_HOST_WIN32)) set(${is_cross} TRUE PARENT_SCOPE) endif() endfunction() function(z_vcpkg_meson_setup_extra_windows_variables config_type) ## b_vscrt if(VCPKG_CRT_LINKAGE STREQUAL "static") set(crt_type "mt") else() set(crt_type "md") endif() if(config_type STREQUAL "DEBUG") set(crt_type "${crt_type}d") endif() set(MESON_VSCRT_LINKAGE "b_vscrt = '${crt_type}'" PARENT_SCOPE) ## winlibs separate_arguments(c_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES}") separate_arguments(cpp_winlibs NATIVE_COMMAND "${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") z_vcpkg_meson_convert_list_to_python_array(c_winlibs ${c_winlibs}) z_vcpkg_meson_convert_list_to_python_array(cpp_winlibs ${cpp_winlibs}) set(MESON_WINLIBS "c_winlibs = ${c_winlibs}\n") string(APPEND MESON_WINLIBS "cpp_winlibs = ${cpp_winlibs}") set(MESON_WINLIBS "${MESON_WINLIBS}" PARENT_SCOPE) endfunction() function(z_vcpkg_meson_setup_variables config_type) set(meson_var_list VSCRT_LINKAGE WINLIBS MT AR RC C C_LD CXX CXX_LD OBJC OBJC_LD OBJCXX OBJCXX_LD FC FC_LD WINDRES CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS FCFLAGS SHARED_LINKER_FLAGS) foreach(var IN LISTS meson_var_list) set(MESON_${var} "") endforeach() if(VCPKG_TARGET_IS_WINDOWS) z_vcpkg_meson_setup_extra_windows_variables("${config_type}") endif() z_vcpkg_meson_set_proglist_variables("${config_type}") z_vcpkg_meson_set_flags_variables("${config_type}") foreach(var IN LISTS meson_var_list) set(MESON_${var} "${MESON_${var}}" PARENT_SCOPE) endforeach() endfunction() function(vcpkg_configure_meson) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "NO_PKG_CONFIG" "SOURCE_PATH" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE;LANGUAGES;ADDITIONAL_BINARIES;ADDITIONAL_NATIVE_BINARIES;ADDITIONAL_CROSS_BINARIES" ) if(NOT arg_LANGUAGES) set(arg_LANGUAGES C CXX) endif() if(DEFINED arg_ADDITIONAL_NATIVE_BINARIES OR DEFINED arg_ADDITIONAL_CROSS_BINARIES) message(WARNING "Options ADDITIONAL_(NATIVE|CROSS)_BINARIES have been deprecated. Only use ADDITIONAL_BINARIES!") endif() vcpkg_list(APPEND arg_ADDITIONAL_BINARIES ${arg_ADDITIONAL_NATIVE_BINARIES} ${arg_ADDITIONAL_CROSS_BINARIES}) vcpkg_list(REMOVE_DUPLICATES arg_ADDITIONAL_BINARIES) vcpkg_list(JOIN arg_ADDITIONAL_BINARIES "\n" MESON_ADDITIONAL_BINARIES) file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") if(NOT VCPKG_CHAINLOAD_TOOLCHAIN_FILE) z_vcpkg_select_default_vcpkg_chainload_toolchain() endif() z_vcpkg_get_cmake_vars(cmake_vars_file) debug_message("Including cmake vars from: ${cmake_vars_file}") include("${cmake_vars_file}") vcpkg_find_acquire_program(MESON) get_filename_component(CMAKE_PATH "${CMAKE_COMMAND}" DIRECTORY) vcpkg_add_to_path("${CMAKE_PATH}" PREPEND) # Make CMake invokeable for Meson vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY) vcpkg_add_to_path("${PYTHON3_DIR}") vcpkg_find_acquire_program(NINJA) get_filename_component(NINJA_PATH ${NINJA} DIRECTORY) vcpkg_add_to_path(PREPEND "${NINJA_PATH}") # Prepend to use the correct ninja. set(buildtypes "") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") set(buildname "DEBUG") vcpkg_list(APPEND buildtypes "${buildname}") set(path_suffix_${buildname} "debug/") set(suffix_${buildname} "dbg") set(meson_input_file_${buildname} "${CURRENT_BUILDTREES_DIR}/meson-${TARGET_TRIPLET}-${suffix_${buildname}}.log") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") set(buildname "RELEASE") vcpkg_list(APPEND buildtypes "${buildname}") set(path_suffix_${buildname} "") set(suffix_${buildname} "rel") set(meson_input_file_${buildname} "${CURRENT_BUILDTREES_DIR}/meson-${TARGET_TRIPLET}-${suffix_${buildname}}.log") endif() vcpkg_list(APPEND arg_OPTIONS --backend ninja --wrap-mode nodownload -Dbuildtype=plain) z_vcpkg_get_build_and_host_system(MESON_HOST_MACHINE MESON_BUILD_MACHINE IS_CROSS) if(IS_CROSS) # VCPKG_CROSSCOMPILING is not used since it regresses a lot of ports in x64-windows-x triplets # For consistency this should proably be changed in the future? vcpkg_list(APPEND arg_OPTIONS --native "${SCRIPTS}/buildsystems/meson/none.txt") vcpkg_list(APPEND arg_OPTIONS_DEBUG --cross "${meson_input_file_DEBUG}") vcpkg_list(APPEND arg_OPTIONS_RELEASE --cross "${meson_input_file_RELEASE}") else() vcpkg_list(APPEND arg_OPTIONS_DEBUG --native "${meson_input_file_DEBUG}") vcpkg_list(APPEND arg_OPTIONS_RELEASE --native "${meson_input_file_RELEASE}") endif() # User provided cross/native files if(VCPKG_MESON_NATIVE_FILE) vcpkg_list(APPEND arg_OPTIONS_RELEASE --native "${VCPKG_MESON_NATIVE_FILE}") endif() if(VCPKG_MESON_NATIVE_FILE_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE --native "${VCPKG_MESON_NATIVE_FILE_RELEASE}") endif() if(VCPKG_MESON_NATIVE_FILE_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG --native "${VCPKG_MESON_NATIVE_FILE_DEBUG}") endif() if(VCPKG_MESON_CROSS_FILE) vcpkg_list(APPEND arg_OPTIONS_RELEASE --cross "${VCPKG_MESON_CROSS_FILE}") endif() if(VCPKG_MESON_CROSS_FILE_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE --cross "${VCPKG_MESON_CROSS_FILE_RELEASE}") endif() if(VCPKG_MESON_CROSS_FILE_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG --cross "${VCPKG_MESON_CROSS_FILE_DEBUG}") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") set(MESON_DEFAULT_LIBRARY shared) else() set(MESON_DEFAULT_LIBRARY static) endif() vcpkg_list(APPEND arg_OPTIONS --libdir lib) # else meson install into an architecture describing folder vcpkg_list(APPEND arg_OPTIONS_DEBUG -Ddebug=true --prefix "${CURRENT_PACKAGES_DIR}/debug" --includedir ../include) vcpkg_list(APPEND arg_OPTIONS_RELEASE -Ddebug=false --prefix "${CURRENT_PACKAGES_DIR}") # select meson cmd-line options if(VCPKG_TARGET_IS_WINDOWS) vcpkg_list(APPEND arg_OPTIONS_DEBUG "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/share']") vcpkg_list(APPEND arg_OPTIONS_RELEASE "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}/share']") else() vcpkg_list(APPEND arg_OPTIONS_DEBUG "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}/debug','${CURRENT_INSTALLED_DIR}']") vcpkg_list(APPEND arg_OPTIONS_RELEASE "-Dcmake_prefix_path=['${CURRENT_INSTALLED_DIR}','${CURRENT_INSTALLED_DIR}/debug']") endif() # Allow overrides / additional configuration variables from triplets if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS) vcpkg_list(APPEND arg_OPTIONS ${VCPKG_MESON_CONFIGURE_OPTIONS}) endif() if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE) vcpkg_list(APPEND arg_OPTIONS_RELEASE ${VCPKG_MESON_CONFIGURE_OPTIONS_RELEASE}) endif() if(DEFINED VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG) vcpkg_list(APPEND arg_OPTIONS_DEBUG ${VCPKG_MESON_CONFIGURE_OPTIONS_DEBUG}) endif() # configure build foreach(buildtype IN LISTS buildtypes) message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}}") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}") #setting up PKGCONFIG if(NOT arg_NO_PKG_CONFIG) z_vcpkg_setup_pkgconfig_path(CONFIG "${buildtype}") endif() z_vcpkg_meson_setup_variables(${buildtype}) configure_file("${SCRIPTS}/buildsystems/meson/meson.template.in" "${meson_input_file_${buildtype}}" @ONLY) vcpkg_execute_required_process( COMMAND ${MESON} ${arg_OPTIONS} ${arg_OPTIONS_${buildtype}} ${arg_SOURCE_PATH} WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${suffix_${buildtype}}" LOGNAME config-${TARGET_TRIPLET}-${suffix_${buildtype}} SAVE_LOG_FILES meson-logs/meson-log.txt meson-info/intro-dependencies.json meson-logs/install-log.txt ) message(STATUS "Configuring ${TARGET_TRIPLET}-${suffix_${buildtype}} done") if(NOT arg_NO_PKG_CONFIG) z_vcpkg_restore_pkgconfig_path() endif() endforeach() endfunction() ================================================ FILE: scripts/cmake/vcpkg_configure_qmake.cmake ================================================ function(vcpkg_configure_qmake) # parse parameters such that semicolons in options arguments to COMMAND don't get erased cmake_parse_arguments(PARSE_ARGV 0 arg "" "SOURCE_PATH" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG" ) # Find qmake executable find_program(qmake_executable NAMES qmake PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin" NO_DEFAULT_PATH) if(NOT qmake_executable) message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.") endif() z_vcpkg_get_cmake_vars(cmake_vars_file) include("${cmake_vars_file}") function(qmake_append_program var qmake_var value) get_filename_component(prog "${value}" NAME) # QMake assumes everything is on PATH? vcpkg_list(APPEND ${var} "${qmake_var}=${prog}") find_program(${qmake_var} NAMES "${prog}") cmake_path(COMPARE "${${qmake_var}}" EQUAL "${value}" correct_prog_on_path) if(NOT correct_prog_on_path AND NOT "${value}" MATCHES "|:") message(FATAL_ERROR "Detect path mismatch for '${qmake_var}'. '${value}' is not the same as '${${qmake_var}}'. Please correct your PATH!") endif() unset(${qmake_var}) unset(${qmake_var} CACHE) set(${var} "${${var}}" PARENT_SCOPE) endfunction() # Setup Build tools set(qmake_build_tools "") qmake_append_program(qmake_build_tools "QMAKE_CC" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_CXX" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_AR" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_RANLIB" "${VCPKG_DETECTED_CMAKE_RANLIB}") qmake_append_program(qmake_build_tools "QMAKE_STRIP" "${VCPKG_DETECTED_CMAKE_STRIP}") qmake_append_program(qmake_build_tools "QMAKE_NM" "${VCPKG_DETECTED_CMAKE_NM}") qmake_append_program(qmake_build_tools "QMAKE_RC" "${VCPKG_DETECTED_CMAKE_RC_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_MT" "${VCPKG_DETECTED_CMAKE_MT}") if(NOT VCPKG_TARGET_IS_WINDOWS OR VCPKG_DETECTED_CMAKE_AR MATCHES "ar$") vcpkg_list(APPEND qmake_build_tools "QMAKE_AR+=qc") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) qmake_append_program(qmake_build_tools "QMAKE_LIB" "${VCPKG_DETECTED_CMAKE_AR}") qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_LINKER}") else() qmake_append_program(qmake_build_tools "QMAKE_LINK" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_SHLIB" "${VCPKG_DETECTED_CMAKE_CXX_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") qmake_append_program(qmake_build_tools "QMAKE_LINK_C_SHLIB" "${VCPKG_DETECTED_CMAKE_C_COMPILER}") endif() set(qmake_comp_flags "") macro(qmake_add_flags qmake_var operation flags) string(STRIP "${flags}" striped_flags) if(striped_flags) vcpkg_list(APPEND qmake_comp_flags "${qmake_var}${operation}${striped_flags}") endif() endmacro() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") vcpkg_list(APPEND arg_OPTIONS "CONFIG-=shared" "CONFIG*=static") else() vcpkg_list(APPEND arg_OPTIONS "CONFIG-=static" "CONFIG*=shared") endif() vcpkg_list(APPEND arg_OPTIONS "CONFIG*=force_debug_info") if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") vcpkg_list(APPEND arg_OPTIONS "CONFIG*=static_runtime") endif() if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} "${VCPKG_OSX_DEPLOYMENT_TARGET}") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_setup_pkgconfig_path(CONFIG RELEASE) set(current_binary_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") # Cleanup build directories file(REMOVE_RECURSE "${current_binary_dir}") configure_file("${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf" "${current_binary_dir}/qt.conf") message(STATUS "Configuring ${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY "${current_binary_dir}") qmake_add_flags("QMAKE_LIBS" "+=" "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") qmake_add_flags("QMAKE_RC" "+=" "${VCPKG_DETECTED_CMAKE_RC_FLAGS_RELEASE}") qmake_add_flags("QMAKE_CFLAGS_RELEASE" "+=" "${VCPKG_DETECTED_CMAKE_C_FLAGS_RELEASE}") qmake_add_flags("QMAKE_CXXFLAGS_RELEASE" "+=" "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_RELEASE}") qmake_add_flags("QMAKE_LFLAGS" "+=" "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_RELEASE}") qmake_add_flags("QMAKE_LFLAGS_SHLIB" "+=" "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_RELEASE}") qmake_add_flags("QMAKE_LFLAGS_PLUGIN" "+=" "${VCPKG_DETECTED_CMAKE_MODULE_LINKER_FLAGS_RELEASE}") qmake_add_flags("QMAKE_LIBFLAGS_RELEASE" "+=" "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_RELEASE}") vcpkg_list(SET build_opt_param) if(DEFINED arg_BUILD_OPTIONS OR DEFINED arg_BUILD_OPTIONS_RELEASE) vcpkg_list(SET build_opt_param -- ${arg_BUILD_OPTIONS} ${arg_BUILD_OPTIONS_RELEASE}) endif() vcpkg_execute_required_process( COMMAND "${qmake_executable}" CONFIG-=debug CONFIG+=release ${qmake_build_tools} ${qmake_comp_flags} ${arg_OPTIONS} ${arg_OPTIONS_RELEASE} ${arg_SOURCE_PATH} -qtconf "${current_binary_dir}/qt.conf" ${build_opt_param} WORKING_DIRECTORY "${current_binary_dir}" LOGNAME "config-${TARGET_TRIPLET}-rel" SAVE_LOG_FILES config.log ) message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") if(EXISTS "${current_binary_dir}/config.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log") file(RENAME "${current_binary_dir}/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log") endif() z_vcpkg_restore_pkgconfig_path() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_setup_pkgconfig_path(CONFIG DEBUG) set(current_binary_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") # Cleanup build directories file(REMOVE_RECURSE "${current_binary_dir}") configure_file("${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf" "${current_binary_dir}/qt.conf") message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") file(MAKE_DIRECTORY "${current_binary_dir}") set(qmake_comp_flags "") qmake_add_flags("QMAKE_LIBS" "+=" "${VCPKG_DETECTED_CMAKE_C_STANDARD_LIBRARIES} ${VCPKG_DETECTED_CMAKE_CXX_STANDARD_LIBRARIES}") qmake_add_flags("QMAKE_RC" "+=" "${VCPKG_DETECTED_CMAKE_RC_FLAGS_DEBUG}") qmake_add_flags("QMAKE_CFLAGS_DEBUG" "+=" "${VCPKG_DETECTED_CMAKE_C_FLAGS_DEBUG}") qmake_add_flags("QMAKE_CXXFLAGS_DEBUG" "+=" "${VCPKG_DETECTED_CMAKE_CXX_FLAGS_DEBUG}") qmake_add_flags("QMAKE_LFLAGS" "+=" "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_DEBUG}") qmake_add_flags("QMAKE_LFLAGS_SHLIB" "+=" "${VCPKG_DETECTED_CMAKE_SHARED_LINKER_FLAGS_DEBUG}") qmake_add_flags("QMAKE_LFLAGS_PLUGIN" "+=" "${VCPKG_DETECTED_CMAKE_MODULE_LINKER_FLAGS_DEBUG}") qmake_add_flags("QMAKE_LIBFLAGS_DEBUG" "+=" "${VCPKG_DETECTED_CMAKE_STATIC_LINKER_FLAGS_DEBUG}") vcpkg_list(SET build_opt_param) if(DEFINED arg_BUILD_OPTIONS OR DEFINED arg_BUILD_OPTIONS_DEBUG) vcpkg_list(SET build_opt_param -- ${arg_BUILD_OPTIONS} ${arg_BUILD_OPTIONS_DEBUG}) endif() vcpkg_execute_required_process( COMMAND "${qmake_executable}" CONFIG-=release CONFIG+=debug ${qmake_build_tools} ${qmake_comp_flags} ${arg_OPTIONS} ${arg_OPTIONS_DEBUG} ${arg_SOURCE_PATH} -qtconf "${current_binary_dir}/qt.conf" ${build_opt_param} WORKING_DIRECTORY "${current_binary_dir}" LOGNAME "config-${TARGET_TRIPLET}-dbg" SAVE_LOG_FILES config.log ) message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") if(EXISTS "${current_binary_dir}/config.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log") file(RENAME "${current_binary_dir}/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log") endif() z_vcpkg_restore_pkgconfig_path() endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_copy_pdbs.cmake ================================================ function(vcpkg_copy_pdbs) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "" "BUILD_PATHS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_BUILD_PATHS) set(arg_BUILD_PATHS "${CURRENT_PACKAGES_DIR}/bin/*.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/*.dll" ) endif() set(dlls_without_matching_pdbs "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) file(GLOB_RECURSE dlls ${arg_BUILD_PATHS}) set(vslang_backup "$ENV{VSLANG}") set(ENV{VSLANG} 1033) foreach(dll IN LISTS dlls) execute_process(COMMAND dumpbin /PDBPATH "${dll}" COMMAND findstr PDB OUTPUT_VARIABLE pdb_line ERROR_QUIET RESULT_VARIABLE error_code ) if(error_code EQUAL "0" AND pdb_line MATCHES "PDB[^/]*(([A-Za-z]:|/).*\\.[Pp][Dd][Bb])") set(pdb_path "${CMAKE_MATCH_1}") cmake_path(GET dll PARENT_PATH dll_dir) file(COPY "${pdb_path}" DESTINATION "${dll_dir}") else() list(APPEND dlls_without_matching_pdbs "${dll}") endif() endforeach() set(ENV{VSLANG} "${vslang_backup}") if(NOT dlls_without_matching_pdbs STREQUAL "") list(JOIN dlls_without_matching_pdbs "\n " message) message(WARNING "Could not find a matching pdb file for: ${message}\n") endif() endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_copy_tool_dependencies.cmake ================================================ function(z_vcpkg_copy_tool_dependencies_search tool_dir path_to_search) if(DEFINED Z_VCPKG_COPY_TOOL_DEPENDENCIES_COUNT) set(count ${Z_VCPKG_COPY_TOOL_DEPENDENCIES_COUNT}) else() set(count 0) endif() file(GLOB tools "${tool_dir}/*.exe" "${tool_dir}/*.dll" "${tool_dir}/*.pyd") foreach(tool IN LISTS tools) vcpkg_execute_required_process( COMMAND "${Z_VCPKG_POWERSHELL_CORE}" -noprofile -executionpolicy Bypass -nologo -file "${SCRIPTS}/buildsystems/msbuild/applocal.ps1" -targetBinary "${tool}" -installedDir "${path_to_search}" -verbose WORKING_DIRECTORY "${VCPKG_ROOT_DIR}" LOGNAME copy-tool-dependencies-${count} ) math(EXPR count "${count} + 1") endforeach() set(Z_VCPKG_COPY_TOOL_DEPENDENCIES_COUNT ${count} CACHE INTERNAL "") endfunction() function(vcpkg_copy_tool_dependencies tool_dir) if(ARGC GREATER 1) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${ARGN}") endif() if(VCPKG_TARGET_IS_WINDOWS) vcpkg_find_acquire_program(PWSH) set(Z_VCPKG_POWERSHELL_CORE "${PWSH}") cmake_path(RELATIVE_PATH tool_dir BASE_DIRECTORY "${CURRENT_PACKAGES_DIR}" OUTPUT_VARIABLE relative_tool_dir ) if(relative_tool_dir MATCHES "^debug/|/debug/") z_vcpkg_copy_tool_dependencies_search("${tool_dir}" "${CURRENT_PACKAGES_DIR}/debug/bin") z_vcpkg_copy_tool_dependencies_search("${tool_dir}" "${CURRENT_INSTALLED_DIR}/debug/bin") else() z_vcpkg_copy_tool_dependencies_search("${tool_dir}" "${CURRENT_PACKAGES_DIR}/bin") z_vcpkg_copy_tool_dependencies_search("${tool_dir}" "${CURRENT_INSTALLED_DIR}/bin") endif() endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_copy_tools.cmake ================================================ function(vcpkg_copy_tools) cmake_parse_arguments(PARSE_ARGV 0 arg "AUTO_CLEAN" "SEARCH_DIR;DESTINATION" "TOOL_NAMES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_TOOL_NAMES) message(FATAL_ERROR "TOOL_NAMES must be specified.") endif() if(NOT DEFINED arg_DESTINATION) set(arg_DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() if(NOT DEFINED arg_SEARCH_DIR) set(arg_SEARCH_DIR "${CURRENT_PACKAGES_DIR}/bin") elseif(NOT IS_DIRECTORY "${arg_SEARCH_DIR}") message(FATAL_ERROR "SEARCH_DIR (${arg_SEARCH_DIR}) must be a directory") endif() foreach(tool_name IN LISTS arg_TOOL_NAMES) set(tool_path "${arg_SEARCH_DIR}/${tool_name}${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(tool_pdb "${arg_SEARCH_DIR}/${tool_name}.pdb") if(EXISTS "${tool_path}") file(COPY "${tool_path}" DESTINATION "${arg_DESTINATION}") elseif(NOT "${VCPKG_TARGET_BUNDLE_SUFFIX}" STREQUAL "" AND NOT "${VCPKG_TARGET_BUNDLE_SUFFIX}" STREQUAL "${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(bundle_path "${arg_SEARCH_DIR}/${tool_name}${VCPKG_TARGET_BUNDLE_SUFFIX}") if(EXISTS "${bundle_path}") file(COPY "${bundle_path}" DESTINATION "${arg_DESTINATION}") else() message(FATAL_ERROR "Couldn't find tool \"${tool_name}\": neither \"${tool_path}\" nor \"${bundle_path}\" exists") endif() else() message(FATAL_ERROR "Couldn't find tool \"${tool_name}\": \"${tool_path}\" does not exist") endif() if(EXISTS "${tool_pdb}") file(COPY "${tool_pdb}" DESTINATION "${arg_DESTINATION}") endif() endforeach() if(arg_AUTO_CLEAN) vcpkg_clean_executables_in_bin(FILE_NAMES ${arg_TOOL_NAMES}) endif() vcpkg_copy_tool_dependencies("${arg_DESTINATION}") endfunction() ================================================ FILE: scripts/cmake/vcpkg_download_distfile.cmake ================================================ function(vcpkg_download_distfile out_var) cmake_parse_arguments(PARSE_ARGV 1 arg "SKIP_SHA512;SILENT_EXIT;QUIET;ALWAYS_REDOWNLOAD" "FILENAME;SHA512" "URLS;HEADERS" ) if(NOT DEFINED arg_URLS) message(FATAL_ERROR "vcpkg_download_distfile requires a URLS argument.") endif() if(NOT DEFINED arg_FILENAME) message(FATAL_ERROR "vcpkg_download_distfile requires a FILENAME argument.") endif() if(arg_SILENT_EXIT) message(WARNING "SILENT_EXIT no longer has any effect. To resolve this warning, remove SILENT_EXIT.") endif() # Note that arg_ALWAYS_REDOWNLOAD implies arg_SKIP_SHA512, and NOT arg_SKIP_SHA512 implies NOT arg_ALWAYS_REDOWNLOAD if(arg_ALWAYS_REDOWNLOAD AND NOT arg_SKIP_SHA512) message(FATAL_ERROR "ALWAYS_REDOWNLOAD requires SKIP_SHA512") endif() if(NOT arg_SKIP_SHA512 AND NOT DEFINED arg_SHA512) message(FATAL_ERROR "vcpkg_download_distfile requires a SHA512 argument. If you do not know the SHA512, add it as 'SHA512 0' and retry.") elseif(arg_SKIP_SHA512 AND DEFINED arg_SHA512) message(FATAL_ERROR "SHA512 may not be used with SKIP_SHA512.") endif() if(_VCPKG_INTERNAL_NO_HASH_CHECK) set(arg_SKIP_SHA512 1) endif() if(NOT arg_SKIP_SHA512) if("${arg_SHA512}" STREQUAL "0") string(REPEAT 0 128 arg_SHA512) else() string(LENGTH "${arg_SHA512}" arg_SHA512_length) if(NOT "${arg_SHA512_length}" EQUAL "128" OR NOT "${arg_SHA512}" MATCHES "^[a-zA-Z0-9]*$") message(FATAL_ERROR "Invalid SHA512: ${arg_SHA512}. If you do not know the file's SHA512, set this to \"0\".") endif() string(TOLOWER "${arg_SHA512}" arg_SHA512) endif() endif() set(downloaded_file_path "${DOWNLOADS}/${arg_FILENAME}") get_filename_component(directory_component "${arg_FILENAME}" DIRECTORY) if ("${directory_component}" STREQUAL "") file(MAKE_DIRECTORY "${DOWNLOADS}") else() file(MAKE_DIRECTORY "${DOWNLOADS}/${directory_component}") endif() if(EXISTS "${downloaded_file_path}") if(arg_SKIP_SHA512) if(NOT arg_ALWAYS_REDOWNLOAD) if(NOT _VCPKG_INTERNAL_NO_HASH_CHECK) message(STATUS "Skipping hash check and using cached ${arg_FILENAME}") endif() set("${out_var}" "${downloaded_file_path}" PARENT_SCOPE) return() endif() else() # Note that NOT arg_SKIP_SHA512 implies NOT arg_ALWAYS_REDOWNLOAD file(SHA512 "${downloaded_file_path}" file_hash) if("${file_hash}" STREQUAL "${arg_SHA512}") message(STATUS "Using cached ${arg_FILENAME}") set("${out_var}" "${downloaded_file_path}" PARENT_SCOPE) return() endif() # The existing file hash mismatches. Perhaps the expected SHA512 changed. Try adding the expected SHA512 # into the file name and try again to hopefully not conflict. get_filename_component(filename_component "${arg_FILENAME}" NAME_WE) get_filename_component(extension_component "${arg_FILENAME}" EXT) string(SUBSTRING "${arg_SHA512}" 0 8 hash) set(arg_FILENAME "${filename_component}-${hash}${extension_component}") if (NOT "${directory_component}" STREQUAL "") set(arg_FILENAME "${directory_component}/${arg_FILENAME}") endif() set(downloaded_file_path "${DOWNLOADS}/${arg_FILENAME}") if(EXISTS "${downloaded_file_path}") if(_VCPKG_NO_DOWNLOADS) set(advice_message "note: Downloads are disabled. Please ensure that the expected file is placed at ${downloaded_file_path} and retry.") else() set(advice_message "note: You may be able to resolve this failure by redownloading the file. To do so, delete ${downloaded_file_path} and retry.") endif() file(SHA512 "${downloaded_file_path}" file_hash) if("${file_hash}" STREQUAL "${arg_SHA512}") message(STATUS "Using cached ${arg_FILENAME}") set("${out_var}" "${downloaded_file_path}" PARENT_SCOPE) return() endif() # Note that the extra leading spaces are here to prevent CMake from badly attempting to wrap this message(FATAL_ERROR " ${downloaded_file_path}: error: existing downloaded file had an unexpected hash\n" " Expected: ${arg_SHA512}\n" " Actual : ${file_hash}\n" " ${advice_message}") endif() endif() endif() # vcpkg_download_distfile_ALWAYS_REDOWNLOAD only triggers when NOT _VCPKG_NO_DOWNLOADS # this could be de-morgan'd out but it's more clear this way if(_VCPKG_NO_DOWNLOADS) message(FATAL_ERROR "Downloads are disabled, but '${downloaded_file_path}' does not exist.") endif() vcpkg_list(SET params "x-download" "${arg_FILENAME}") foreach(url IN LISTS arg_URLS) vcpkg_list(APPEND params "--url=${url}") endforeach() foreach(header IN LISTS arg_HEADERS) list(APPEND params "--header=${header}") endforeach() if(arg_SKIP_SHA512) vcpkg_list(APPEND params "--skip-sha512") else() vcpkg_list(APPEND params "--sha512=${arg_SHA512}") endif() # Setting WORKING_DIRECTORY and passing the relative FILENAME allows vcpkg x-download to print # the full relative path if FILENAME has /s in it. vcpkg_execute_in_download_mode(COMMAND "$ENV{VCPKG_COMMAND}" ${params} RESULT_VARIABLE error_code WORKING_DIRECTORY "${DOWNLOADS}") if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Download failed, halting portfile.") endif() set("${out_var}" "${downloaded_file_path}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_download_sourceforge.cmake ================================================ function(vcpkg_download_sourceforge out_var) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "REPO;REF;SHA512;FILENAME" "") foreach(arg_name IN ITEMS REPO SHA512 FILENAME) if(NOT DEFINED "arg_${arg_name}") message(FATAL_ERROR "${arg_name} is required.") endif() endforeach() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unrecognized arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(sourceforge_host "https://sourceforge.net/projects") if(arg_REPO MATCHES "^([^/]*)$") # just one element set(org_name "${CMAKE_MATCH_1}") set(repo_name "") elseif(arg_REPO MATCHES "^([^/]*)/([^/]*)$") # two elements set(org_name "${CMAKE_MATCH_1}") set(repo_name "${CMAKE_MATCH_2}") else() message(FATAL_ERROR "REPO (${arg_REPO}) is not a valid repo name. It must be: - an organization name without any slashes, or - an organization name followed by a repository name separated by a single slash") endif() if(NOT "${arg_REF}" STREQUAL "") set(url "${sourceforge_host}/${org_name}/files/${repo_name}/${arg_REF}/${arg_FILENAME}") else() set(url "${sourceforge_host}/${arg_REPO}/files/${arg_FILENAME}") endif() string(SUBSTRING "${arg_SHA512}" 0 10 sanitized_ref) set(sourceforge_mirrors cfhcable # United States pilotfiber # New York, NY gigenet # Chicago, IL versaweb # Las Vegas, NV ayera # Modesto, CA netactuate # Durham, NC phoenixnap # Tempe, AZ astuteinternet # Vancouver, BC freefr # Paris, France netcologne # Cologne, Germany deac-riga # Latvia excellmedia # Hyderabad, India iweb # Montreal, QC jaist # Nomi, Japan jztkft # Mezotur, Hungary managedway # Detroit, MI nchc # Taipei, Taiwan netix # Bulgaria ufpr # Curitiba, Brazil tenet # Wynberg, South Africa ) if(DEFINED SOURCEFORGE_MIRRORS AND NOT DEFINED VCPKG_SOURCEFORGE_EXTRA_MIRRORS) message(WARNING "Extension point SOURCEFORGE_MIRRORS has been deprecated. Please use the replacement VCPKG_SOURCEFORGE_EXTRA_MIRRORS variable instead.") list(APPEND sourceforge_mirrors "${SOURCEFORGE_MIRRORS}") list(REMOVE_DUPLICATES sourceforge_mirrors) elseif(DEFINED VCPKG_SOURCEFORGE_EXTRA_MIRRORS) list(APPEND sourceforge_mirrors "${VCPKG_SOURCEFORGE_EXTRA_MIRRORS}") list(REMOVE_DUPLICATES sourceforge_mirrors) endif() set(all_urls "${url}/download") foreach(mirror IN LISTS sourceforge_mirrors) list(APPEND all_urls "${url}/download?use_mirror=${mirror}") endforeach() vcpkg_download_distfile(archive URLS ${all_urls} SHA512 "${arg_SHA512}" FILENAME "${arg_FILENAME}" ) set("${out_var}" "${archive}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_execute_build_process.cmake ================================================ set(Z_VCPKG_EXECUTE_BUILD_PROCESS_RETRY_ERROR_MESSAGES "LINK : fatal error LNK1102:" " fatal error C1060: " # The linker ran out of memory during execution. We will try continuing once more, with parallelism disabled. "LINK : fatal error LNK1318:" "LINK : fatal error LNK1104:" "LINK : fatal error LNK1201:" "ld terminated with signal 9" "Killed signal terminated program" # Multiple threads using the same directory at the same time cause conflicts, will try again. "Cannot create parent directory" "Cannot write file" # Multiple threads caused the wrong order of creating folders and creating files in folders "Can't open" # `make install` may stumble over concurrency, in particular with `mkdir` on osx. "mkdir [^:]*: File exists" ) list(JOIN Z_VCPKG_EXECUTE_BUILD_PROCESS_RETRY_ERROR_MESSAGES "|" Z_VCPKG_EXECUTE_BUILD_PROCESS_RETRY_ERROR_MESSAGES) function(vcpkg_execute_build_process) cmake_parse_arguments(PARSE_ARGV 0 arg "" "WORKING_DIRECTORY;LOGNAME" "COMMAND;NO_PARALLEL_COMMAND") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(required_arg IN ITEMS WORKING_DIRECTORY COMMAND) if(NOT DEFINED arg_${required_arg}) message(FATAL_ERROR "${required_arg} must be specified.") endif() endforeach() if(NOT DEFINED arg_LOGNAME) message(WARNING "LOGNAME should be specified.") set(arg_LOGNAME "build") endif() set(log_prefix "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}") set(log_out "${log_prefix}-out.log") set(log_err "${log_prefix}-err.log") set(all_logs "${log_out}" "${log_err}") if(X_PORT_PROFILE) vcpkg_list(PREPEND arg_COMMAND "${CMAKE_COMMAND}" "-E" "time") if(DEFINED arg_NO_PARALLEL_COMMAND) vcpkg_list(PREPEND arg_NO_PARALLEL_COMMAND "${CMAKE_COMMAND}" "-E" "time") endif() endif() execute_process( COMMAND ${arg_COMMAND} WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE error_code ) if (NOT error_code MATCHES "^-?[0-9]+$") list(JOIN arg_COMMAND " " command) message(FATAL_ERROR "Failed to execute command \"${command}\" in working directory \"${arg_WORKING_DIRECTORY}\": ${error_code}") endif() if(NOT error_code EQUAL "0") file(READ "${log_out}" out_contents) file(READ "${log_err}" err_contents) set(all_contents "${out_contents}${err_contents}") if(all_contents MATCHES "${Z_VCPKG_EXECUTE_BUILD_PROCESS_RETRY_ERROR_MESSAGES}") message(WARNING "Please ensure your system has sufficient memory.") set(log_out "${log_prefix}-out-1.log") set(log_err "${log_prefix}-err-1.log") list(APPEND all_logs "${log_out}" "${log_err}") if(DEFINED arg_NO_PARALLEL_COMMAND) message(STATUS "Restarting build without parallelism") execute_process( COMMAND ${arg_NO_PARALLEL_COMMAND} WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE error_code ) else() message(STATUS "Restarting build") execute_process( COMMAND ${arg_COMMAND} WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE error_code ) endif() elseif(all_contents MATCHES "mt(\\.exe)? : general error c101008d: ") # Antivirus workaround - occasionally files are locked and cause mt.exe to fail message(STATUS "mt.exe has failed. This may be the result of anti-virus. Disabling anti-virus on the buildtree folder may improve build speed") foreach(iteration RANGE 1 3) message(STATUS "Restarting Build ${TARGET_TRIPLET}-${SHORT_BUILDTYPE} because of mt.exe file locking issue. Iteration: ${iteration}") set(log_out "${log_prefix}-out-${iteration}.log") set(log_err "${log_prefix}-err-${iteration}.log") list(APPEND all_logs "${log_out}" "${log_err}") execute_process( COMMAND ${arg_COMMAND} WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE error_code ) if(error_code EQUAL "0") break() endif() file(READ "${log_out}" out_contents) file(READ "${log_err}" err_contents) set(all_contents "${out_contents}${err_contents}") if(NOT all_contents MATCHES "mt : general error c101008d: ") break() endif() endforeach() endif() endif() if(NOT error_code EQUAL "0") set(stringified_logs "") foreach(log IN LISTS all_logs) if(NOT EXISTS "${log}") continue() endif() file(SIZE "${log}" log_size) if(NOT log_size EQUAL "0") file(TO_NATIVE_PATH "${log}" native_log) string(APPEND stringified_logs " ${native_log}\n") file(APPEND "${Z_VCPKG_ERROR_LOG_COLLECTION_FILE}" "${native_log}\n") endif() endforeach() z_vcpkg_prettify_command_line(pretty_command ${arg_COMMAND}) message(FATAL_ERROR " Command failed: ${pretty_command}\n" " Working Directory: ${arg_WORKING_DIRECTORY}\n" " See logs for more information:\n" "${stringified_logs}" ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_execute_in_download_mode.cmake ================================================ function(vcpkg_execute_in_download_mode) # this allows us to grab the value of the output variables, but pass through the rest of the arguments cmake_parse_arguments(PARSE_ARGV 0 arg "" "RESULT_VARIABLE;RESULTS_VARIABLE;OUTPUT_VARIABLE;ERROR_VARIABLE" "") set(output_and_error_same OFF) set(output_variable_param "") set(error_variable_param "") set(result_variable_param "") set(results_variable_param "") if(DEFINED arg_OUTPUT_VARIABLE AND DEFINED arg_ERROR_VARIABLE AND arg_OUTPUT_VARIABLE STREQUAL arg_ERROR_VARIABLE) set(output_variable_param OUTPUT_VARIABLE out_err_var) set(error_variable_param ERROR_VARIABLE out_err_var) set(output_and_error_same ON) else() if(DEFINED arg_OUTPUT_VARIABLE) set(output_variable_param OUTPUT_VARIABLE out_var) endif() if(DEFINED arg_ERROR_VARIABLE) set(error_variable_param ERROR_VARIABLE err_var) endif() endif() if(DEFINED arg_RESULT_VARIABLE) set(result_variable_param RESULT_VARIABLE result_var) endif() if(DEFINED arg_RESULTS_VARIABLE) set(results_variable_param RESULTS_VARIABLE results_var) endif() cmake_language(CALL "${Z_VCPKG_EXECUTE_PROCESS_NAME}" ${arg_UNPARSED_ARGUMENTS} ${output_variable_param} ${error_variable_param} ${result_variable_param} ${results_variable_param} ) if(output_and_error_same) z_vcpkg_forward_output_variable(arg_OUTPUT_VARIABLE out_err_var) else() z_vcpkg_forward_output_variable(arg_OUTPUT_VARIABLE out_var) z_vcpkg_forward_output_variable(arg_ERROR_VARIABLE err_var) endif() z_vcpkg_forward_output_variable(arg_RESULT_VARIABLE result_var) z_vcpkg_forward_output_variable(arg_RESULTS_VARIABLE results_var) endfunction() ================================================ FILE: scripts/cmake/vcpkg_execute_required_process.cmake ================================================ function(vcpkg_execute_required_process) cmake_parse_arguments(PARSE_ARGV 0 arg "ALLOW_IN_DOWNLOAD_MODE;OUTPUT_STRIP_TRAILING_WHITESPACE;ERROR_STRIP_TRAILING_WHITESPACE" "WORKING_DIRECTORY;LOGNAME;TIMEOUT;OUTPUT_VARIABLE;ERROR_VARIABLE" "COMMAND;SAVE_LOG_FILES" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(required_arg IN ITEMS WORKING_DIRECTORY COMMAND) if(NOT DEFINED arg_${required_arg}) message(FATAL_ERROR "${required_arg} must be specified.") endif() endforeach() if(NOT DEFINED arg_LOGNAME) message(WARNING "LOGNAME should be specified.") set(arg_LOGNAME "required") endif() if (VCPKG_DOWNLOAD_MODE AND NOT arg_ALLOW_IN_DOWNLOAD_MODE) message(FATAL_ERROR [[ This command cannot be executed in Download Mode. Halting portfile execution. ]]) endif() set(timeout_param "") if(DEFINED arg_TIMEOUT) set(timeout_param TIMEOUT "${arg_TIMEOUT}") endif() set(log_out "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-out.log") set(log_err "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-err.log") set(output_param OUTPUT_FILE "${log_out}") set(error_param ERROR_FILE "${log_err}") set(output_and_error_same OFF) if(DEFINED arg_OUTPUT_VARIABLE AND DEFINED arg_ERROR_VARIABLE AND arg_OUTPUT_VARIABLE STREQUAL arg_ERROR_VARIABLE) set(output_param OUTPUT_VARIABLE out_err_var) set(error_param ERROR_VARIABLE out_err_var) set(output_and_error_same ON) else() if(DEFINED arg_OUTPUT_VARIABLE) set(output_param OUTPUT_VARIABLE out_var) endif() if(DEFINED arg_ERROR_VARIABLE) set(error_param ERROR_VARIABLE err_var) endif() endif() if(arg_OUTPUT_STRIP_TRAILING_WHITESPACE) list(APPEND output_param OUTPUT_STRIP_TRAILING_WHITESPACE) endif() if(arg_ERROR_STRIP_TRAILING_WHITESPACE) list(APPEND error_param ERROR_STRIP_TRAILING_WHITESPACE) endif() if(X_PORT_PROFILE AND NOT arg_ALLOW_IN_DOWNLOAD_MODE) vcpkg_list(PREPEND arg_COMMAND "${CMAKE_COMMAND}" "-E" "time") endif() vcpkg_execute_in_download_mode( COMMAND ${arg_COMMAND} RESULT_VARIABLE error_code WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" ${timeout_param} ${output_param} ${error_param} ) if(output_and_error_same) file(WRITE "${log_out}" "${out_err_var}") file(WRITE "${log_err}" "") else() if(DEFINED arg_OUTPUT_VARIABLE) file(WRITE "${log_out}" "${out_var}") endif() if(DEFINED arg_ERROR_VARIABLE) file(WRITE "${log_err}" "${err_var}") endif() endif() vcpkg_list(SET logfiles) vcpkg_list(SET logfile_copies) set(expect_alias FALSE) foreach(item IN LISTS arg_SAVE_LOG_FILES) if(expect_alias) vcpkg_list(POP_BACK logfile_copies) vcpkg_list(APPEND logfile_copies "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-${item}") set(expect_alias FALSE) elseif(item STREQUAL "ALIAS") if(NOT logfiles) message(FATAL_ERROR "ALIAS used without source file") endif() set(expect_alias TRUE) else() vcpkg_list(APPEND logfiles "${arg_WORKING_DIRECTORY}/${item}") cmake_path(GET item FILENAME filename) if(NOT filename MATCHES "[.]log\$") string(APPEND filename ".log") endif() vcpkg_list(APPEND logfile_copies "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-${filename}") endif() endforeach() vcpkg_list(SET saved_logs) foreach(logfile logfile_copy IN ZIP_LISTS logfiles logfile_copies) if(EXISTS "${logfile}") configure_file("${logfile}" "${logfile_copy}" COPYONLY) vcpkg_list(APPEND saved_logs "${logfile_copy}") endif() endforeach() if(NOT error_code EQUAL 0) set(stringified_logs "") foreach(log IN LISTS saved_logs ITEMS "${log_out}" "${log_err}") if(NOT EXISTS "${log}") continue() endif() file(SIZE "${log}" log_size) if(NOT log_size EQUAL "0") file(TO_NATIVE_PATH "${log}" native_log) string(APPEND stringified_logs " ${native_log}\n") file(APPEND "${Z_VCPKG_ERROR_LOG_COLLECTION_FILE}" "${native_log}\n") endif() endforeach() z_vcpkg_prettify_command_line(pretty_command ${arg_COMMAND}) message(FATAL_ERROR " Command failed: ${pretty_command}\n" " Working Directory: ${arg_WORKING_DIRECTORY}\n" " Error code: ${error_code}\n" " See logs for more information:\n" "${stringified_logs}" ) endif() # pass output parameters back to caller's scope if(output_and_error_same) z_vcpkg_forward_output_variable(arg_OUTPUT_VARIABLE out_err_var) # arg_ERROR_VARIABLE = arg_OUTPUT_VARIABLE, so no need to set it again else() z_vcpkg_forward_output_variable(arg_OUTPUT_VARIABLE out_var) z_vcpkg_forward_output_variable(arg_ERROR_VARIABLE err_var) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_execute_required_process_repeat.cmake ================================================ function(vcpkg_execute_required_process_repeat) cmake_parse_arguments(PARSE_ARGV 0 arg "ALLOW_IN_DOWNLOAD_MODE" "COUNT;WORKING_DIRECTORY;LOGNAME" "COMMAND" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(required_arg IN ITEMS COUNT WORKING_DIRECTORY LOGNAME COMMAND) if(NOT DEFINED arg_${required_arg}) message(FATAL_ERROR "${required_arg} must be specified.") endif() endforeach() # also checks for COUNT being an integer if(NOT arg_COUNT GREATER_EQUAL "1") message(FATAL_ERROR "COUNT (${arg_COUNT}) must be greater than or equal to 1.") endif() if (DEFINED VCPKG_DOWNLOAD_MODE AND NOT arg_ALLOW_IN_DOWNLOAD_MODE) message(FATAL_ERROR [[ This command cannot be executed in Download Mode. Halting portfile execution. ]]) endif() if(X_PORT_PROFILE AND NOT arg_ALLOW_IN_DOWNLOAD_MODE) vcpkg_list(PREPEND arg_COMMAND "${CMAKE_COMMAND}" "-E" "time") endif() set(all_logs "") foreach(loop_count RANGE 1 ${arg_COUNT}) set(out_log "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-out-${loop_count}.log") set(err_log "${CURRENT_BUILDTREES_DIR}/${arg_LOGNAME}-out-${loop_count}.log") list(APPEND all_logs "${out_log}" "${err_log}") vcpkg_execute_in_download_mode( COMMAND ${arg_COMMAND} OUTPUT_FILE "${out_log}" ERROR_FILE "${err_log}" RESULT_VARIABLE error_code WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}" ) if(error_code EQUAL "0") return() endif() endforeach() set(stringified_logs "") foreach(log IN LISTS all_logs) if(NOT EXISTS "${log}") continue() endif() file(SIZE "${log}" log_size) if(NOT log_size EQUAL "0") file(TO_NATIVE_PATH "${log}" native_log) string(APPEND stringified_logs " ${native_log}\n") endif() endforeach() z_vcpkg_prettify_command_line(pretty_command ${arg_COMMAND}) message(FATAL_ERROR " Command failed: ${pretty_command}\n" " Working Directory: ${arg_WORKING_DIRECTORY}\n" " See logs for more information:\n" "${stringified_logs}" ) endfunction() ================================================ FILE: scripts/cmake/vcpkg_extract_archive.cmake ================================================ function(vcpkg_extract_archive) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "ARCHIVE;DESTINATION" "" ) foreach(arg_name IN ITEMS ARCHIVE DESTINATION) if(NOT DEFINED "arg_${arg_name}") message(FATAL_ERROR "${arg_name} is required.") endif() endforeach() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unrecognized arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(EXISTS "${arg_DESTINATION}") message(FATAL_ERROR "${arg_DESTINATION} was an extraction target, but it already exists.") endif() file(MAKE_DIRECTORY "${arg_DESTINATION}") cmake_path(GET arg_ARCHIVE EXTENSION archive_extension) string(TOLOWER "${archive_extension}" archive_extension) if("${archive_extension}" MATCHES [[\.msi$]]) cmake_path(NATIVE_PATH arg_ARCHIVE archive_native_path) cmake_path(NATIVE_PATH arg_DESTINATION destination_native_path) cmake_path(GET arg_ARCHIVE PARENT_PATH archive_directory) vcpkg_execute_in_download_mode( COMMAND msiexec /a "${archive_native_path}" /qn "TARGETDIR=${destination_native_path}" WORKING_DIRECTORY "${archive_directory}" ) elseif("${archive_extension}" MATCHES [[\.exe$]]) vcpkg_execute_in_download_mode( COMMAND "$ENV{VCPKG_COMMAND}" z-extract "${arg_ARCHIVE}" "${arg_DESTINATION}") else() vcpkg_execute_in_download_mode( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${arg_ARCHIVE}" WORKING_DIRECTORY "${arg_DESTINATION}" ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_extract_source_archive.cmake ================================================ function(z_vcpkg_extract_source_archive_deprecated_mode archive working_directory) cmake_path(GET archive FILENAME archive_filename) if(NOT EXISTS "${working_directory}/${archive_filename}.extracted") message(STATUS "Extracting source ${archive}") vcpkg_extract_archive(ARCHIVE "${archive}" DESTINATION "${working_directory}") file(TOUCH "${working_directory}/${archive_filename}.extracted") endif() endfunction() function(vcpkg_extract_source_archive) if(ARGC LESS_EQUAL "2") z_vcpkg_deprecation_message( "Deprecated form of vcpkg_extract_source_archive used: Please use the `vcpkg_extract_source_archive( ARCHIVE )` form.") if(ARGC EQUAL "0") message(FATAL_ERROR "vcpkg_extract_source_archive requires at least one argument.") endif() set(archive "${ARGV0}") if(ARGC EQUAL "1") set(working_directory "${CURRENT_BUILDTREES_DIR}/src") else() set(working_directory "${ARGV1}") endif() z_vcpkg_extract_source_archive_deprecated_mode("${archive}" "${working_directory}") return() endif() set(out_source_path "${ARGV0}") cmake_parse_arguments(PARSE_ARGV 1 "arg" "NO_REMOVE_ONE_LEVEL;SKIP_PATCH_CHECK;Z_ALLOW_OLD_PARAMETER_NAMES" "ARCHIVE;SOURCE_BASE;BASE_DIRECTORY;WORKING_DIRECTORY;REF" "PATCHES" ) if(DEFINED arg_REF) if(NOT arg_Z_ALLOW_OLD_PARAMETER_NAMES) message(FATAL_ERROR "Unexpected argument REF") elseif(DEFINED arg_SOURCE_BASE) message(FATAL_ERROR "Cannot specify both REF and SOURCE_BASE") else() string(REPLACE "/" "-" arg_SOURCE_BASE "${arg_REF}") endif() endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_ARCHIVE) message(FATAL_ERROR "ARCHIVE must be specified") endif() if(DEFINED arg_WORKING_DIRECTORY) if(DEFINED arg_BASE_DIRECTORY) message(FATAL_ERROR "Cannot specify both BASE_DIRECTORY and WORKING_DIRECTORY") elseif(NOT IS_ABSOLUTE "${arg_WORKING_DIRECTORY}") message(FATAL_ERROR "WORKING_DIRECTORY (${arg_WORKING_DIRECTORY}) must be an absolute path") endif() set(working_directory "${arg_WORKING_DIRECTORY}") else() if(NOT DEFINED arg_BASE_DIRECTORY) set(arg_BASE_DIRECTORY "src") elseif(IS_ABSOLUTE "${arg_BASE_DIRECTORY}") message(FATAL_ERROR "BASE_DIRECTORY (${arg_BASE_DIRECTORY}) must be a relative path") endif() cmake_path(APPEND CURRENT_BUILDTREES_DIR "${arg_BASE_DIRECTORY}" OUTPUT_VARIABLE working_directory) endif() if(NOT DEFINED arg_SOURCE_BASE) cmake_path(GET arg_ARCHIVE STEM arg_SOURCE_BASE) elseif(arg_SOURCE_BASE MATCHES [[\\|/]]) message(FATAL_ERROR "SOURCE_BASE (${arg_SOURCE_BASE}) must not contain slashes") endif() # Take the last 10 chars of the base set(base_max_length 10) string(LENGTH "${arg_SOURCE_BASE}" source_base_length) if(source_base_length GREATER base_max_length) math(EXPR start "${source_base_length} - ${base_max_length}") string(SUBSTRING "${arg_SOURCE_BASE}" "${start}" -1 arg_SOURCE_BASE) endif() # Hash the archive hash along with the patches. Take the first 10 chars of the hash file(SHA512 "${arg_ARCHIVE}" patchset_hash) foreach(patch IN LISTS arg_PATCHES) cmake_path(ABSOLUTE_PATH patch BASE_DIRECTORY "${CURRENT_PORT_DIR}" OUTPUT_VARIABLE absolute_patch ) if(NOT EXISTS "${absolute_patch}") message(FATAL_ERROR "Could not find patch: '${patch}'") endif() 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) cmake_path(APPEND working_directory "${arg_SOURCE_BASE}-${patchset_hash}" OUTPUT_VARIABLE source_path ) if(_VCPKG_EDITABLE AND EXISTS "${source_path}") set("${out_source_path}" "${source_path}" PARENT_SCOPE) message(STATUS "Using source at ${source_path}") return() elseif(NOT _VCPKG_EDITABLE) cmake_path(APPEND_STRING source_path ".clean") if(EXISTS "${source_path}") message(STATUS "Cleaning sources at ${source_path}. Use --editable to skip cleaning for the packages you specify.") file(REMOVE_RECURSE "${source_path}") endif() endif() message(STATUS "Extracting source ${arg_ARCHIVE}") cmake_path(APPEND_STRING source_path ".tmp" OUTPUT_VARIABLE temp_dir) file(REMOVE_RECURSE "${temp_dir}") file(MAKE_DIRECTORY "${temp_dir}") vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${CMAKE_COMMAND}" -E tar xjf "${arg_ARCHIVE}" WORKING_DIRECTORY "${temp_dir}" LOGNAME extract ) if(arg_NO_REMOVE_ONE_LEVEL) cmake_path(SET temp_source_path "${temp_dir}") else() file(GLOB archive_directory "${temp_dir}/*") # Exclude .DS_Store entries created by the finder on macOS list(FILTER archive_directory EXCLUDE REGEX ".*/.DS_Store$") # make sure `archive_directory` is only a single file if(NOT archive_directory MATCHES ";" AND IS_DIRECTORY "${archive_directory}") cmake_path(SET temp_source_path "${archive_directory}") else() message(FATAL_ERROR "Could not unwrap top level directory from archive. Pass NO_REMOVE_ONE_LEVEL to disable this.") endif() endif() if (arg_SKIP_PATCH_CHECK) set(quiet_param QUIET) else() set(quiet_param "") endif() z_vcpkg_apply_patches( SOURCE_PATH "${temp_source_path}" PATCHES ${arg_PATCHES} ${quiet_param} ) file(RENAME "${temp_source_path}" "${source_path}") file(REMOVE_RECURSE "${temp_dir}") set("${out_source_path}" "${source_path}" PARENT_SCOPE) message(STATUS "Using source at ${source_path}") endfunction() ================================================ FILE: scripts/cmake/vcpkg_extract_source_archive_ex.cmake ================================================ function(vcpkg_extract_source_archive_ex) # OUT_SOURCE_PATH is an out-parameter so we need to parse it cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "OUT_SOURCE_PATH" "") if(NOT DEFINED arg_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified") endif() vcpkg_extract_source_archive(source_path ${arg_UNPARSED_ARGUMENTS} Z_ALLOW_OLD_PARAMETER_NAMES) set("${arg_OUT_SOURCE_PATH}" "${source_path}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_fail_port_install.cmake ================================================ function(vcpkg_fail_port_install) message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "vcpkg_fail_port_install has been removed and all values should be moved by adding `supports` field to manifest file or directly adding `${PORT}:${FAILED_TRIPLET}=fail` to _scripts/ci.baseline.txt_.\nPlease remove `vcpkg_fail_port_install(...)`.\n") set(multi_args "ON_TARGET;ON_ARCH;ON_CRT_LINKAGE;ON_LIBRARY_LINKAGE") cmake_parse_arguments(PARSE_ARGV 0 "arg" "ALWAYS" "MESSAGE" "${multi_args}") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_fail_port_install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(arg_ALWAYS) vcpkg_list(SET extra_args) foreach(arg IN LISTS multi_args) if(DEFINED "arg_${arg}") vcpkg_list(APPEND extra_args "${arg}" "${arg_${arg}}") endif() endforeach() if(NOT "${extra_args}" STREQUAL "") message(WARNING "vcpkg_fail_port_install set to fail both unconditionally and conditionally on ${extra_args}. This is likely to be an error.") endif() if(NOT DEFINED arg_MESSAGE) message(FATAL_ERROR "vcpkg_fail_port_install(ALWAYS) was called without a specific MESSAGE.") endif() message(FATAL_ERROR "${arg_MESSAGE}") endif() if(DEFINED arg_MESSAGE) string(APPEND arg_MESSAGE "\n") else() set(arg_MESSAGE "") endif() set(fail_port OFF) # Target fail check if(DEFINED arg_ON_TARGET) foreach(target IN LISTS arg_ON_TARGET) string(TOUPPER "${target}" target_upper) if(VCPKG_TARGET_IS_${target_upper}) set(fail_port ON) string(APPEND arg_MESSAGE "Target '${target}' not supported by ${PORT}!\n") endif() endforeach() endif() # Architecture fail check if(DEFINED arg_ON_ARCH) foreach(arch IN LISTS arg_ON_ARCH) if(VCPKG_TARGET_ARCHITECTURE STREQUAL arch) set(fail_port ON) string(APPEND arg_MESSAGE "Architecture '${arch}' not supported by ${PORT}!\n") endif() endforeach() endif() # CRT linkage fail check if(DEFINED arg_ON_CRT_LINKAGE) foreach(crt_linkage IN LISTS arg_ON_CRT_LINKAGE) if(VCPKG_CRT_LINKAGE STREQUAL crt_linkage) set(fail_port ON) string(APPEND arg_MESSAGE "CRT linkage '${VCPKG_CRT_LINKAGE}' not supported by ${PORT}!\n") endif() endforeach() endif() # Library linkage fail check if(DEFINED arg_ON_LIBRARY_LINKAGE) foreach(library_linkage IN LISTS arg_ON_LIBRARY_LINKAGE) if(VCPKG_LIBRARY_LINKAGE STREQUAL library_linkage) set(fail_port ON) string(APPEND arg_MESSAGE "Library linkage '${VCPKG_LIBRARY_LINKAGE}' not supported by ${PORT}!\n") endif() endforeach() endif() if(fail_port) message(FATAL_ERROR "${arg_MESSAGE}") endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(7Z).cmake ================================================ z_use_vcpkg_fetch(7Z FETCH_NAME 7zip) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(BAZEL).cmake ================================================ set(program_name bazel) set(program_version 4.2.2) set(rename_binary_to "bazel") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(tool_subdirectory "${program_version}-linux") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64") set(download_filename "bazel-${tool_subdirectory}-x86_64") set(raw_executable ON) set(download_sha512 f38619e054df78cab38278a5901b2798f2e25b5cec53358d98278002e713d225fd3df96a209b7f22a2357835a279cee8ef1768e10561b3e9fe6361f324563bb9) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(tool_subdirectory "${program_version}-darwin") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64") set(download_filename "bazel-${tool_subdirectory}-x86_64") set(raw_executable ON) set(download_sha512 a3fd8f9d71b0669d742439200f27ee0a3891c1f248df62c841ebb2b416a47534562f429f8a08793b074e9b74f2ede3d97a7e13ac9921c7ee2dc6a2dca8b7f275) else() set(tool_subdirectory "${program_version}-windows") set(download_urls "https://github.com/bazelbuild/bazel/releases/download/${program_version}/bazel-${tool_subdirectory}-x86_64.zip") set(download_filename "bazel-${tool_subdirectory}-x86_64.zip") set(download_sha512 8a8196e242964114316232818cb81bfa19ebfd3a029ebf550a241e33b22a6e9ed636dade06411a8706c05c4e73def0bc8d7f45ff0ec5478bcc5de21b5638204d) endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(BISON).cmake ================================================ if(CMAKE_HOST_WIN32) # This download shall be the same as in vcpkg_find_acquire_program(FLEX).cmake # Note that this is 2.5.24 rather than 2.5.25 due to a race in %TEMP% in 2.5.25 # For more information, see: https://github.com/microsoft/vcpkg/issues/29139 # or: https://github.com/lexxmark/winflexbison/issues/86 set(program_version 2.5.24) set(download_urls "https://github.com/lexxmark/winflexbison/releases/download/v${program_version}/win_flex_bison-${program_version}.zip") set(download_filename "win_flex_bison-${program_version}.zip") set(download_sha512 dc89fcdaa7071fbbf88b0755b799d69223240c28736924b4c30968c08e7e0b116c7e05ae98a9257be26a1dfb4aa70a628808a6b6018706bf857555c5b4335018) set(tool_subdirectory "${program_version}") set(program_name win_bison) set(paths_to_search "${DOWNLOADS}/tools/win_flex/${program_version}") if(NOT EXISTS "${paths_to_search}/data/m4sugar/m4sugar.m4") file(REMOVE_RECURSE "${paths_to_search}") endif() else() set(program_name bison) set(apt_package_name bison) set(brew_package_name bison) if (CMAKE_HOST_APPLE) set(paths_to_search /opt/homebrew/opt/bison/bin /usr/local/opt/bison/bin) endif() endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(CLANG).cmake ================================================ set(program_name clang) set(tool_subdirectory "clang-15.0.6") set(program_version 15.0.6) if(CMAKE_HOST_WIN32) set(paths_to_search # Support LLVM in Visual Studio 2019 "$ENV{LLVMInstallDir}/x64/bin" "$ENV{LLVMInstallDir}/bin" "$ENV{VCINSTALLDIR}/Tools/Llvm/x64/bin" "$ENV{VCINSTALLDIR}/Tools/Llvm/bin" "${DOWNLOADS}/tools/${tool_subdirectory}-windows/bin" "${DOWNLOADS}/tools/clang/${tool_subdirectory}/bin") if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_arch "$ENV{PROCESSOR_ARCHITEW6432}") else() set(host_arch "$ENV{PROCESSOR_ARCHITECTURE}") endif() if(host_arch MATCHES "64") set(download_urls "https://github.com/llvm/llvm-project/releases/download/llvmorg-${program_version}/LLVM-${program_version}-win64.exe") set(download_filename "LLVM-${program_version}-win64.exe") set(download_sha512 2dd6f3eea106f2b905e6658ea5ea12856d17285adbfba055edc2d6b6389c4c2f7aa001df5cb0d8fb84fa7fa47d5035a7fddf276523b472dd55f150ae25938768) else() set(download_urls "https://github.com/llvm/llvm-project/releases/download/llvmorg-${program_version}/LLVM-${program_version}-win32.exe") set(download_filename "LLVM-${program_version}-win32.exe") set(download_sha512 90225D650EADB0E590A9912B479B46A575D41A19EB5F2DA03C4DC8B032DC0790222F0E3706DFE2A35C0E7747941972AC26CB47D3EB13730DB76168931F37E5F1) endif() endif() set(brew_package_name "llvm") set(apt_package_name "clang") ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(DARK).cmake ================================================ set(program_name dark) if(CMAKE_HOST_WIN32) set(tool_subdirectory "wix311-binaries") set(paths_to_search "${DOWNLOADS}/tools/dark/${tool_subdirectory}") set(download_urls "https://github.com/wixtoolset/wix3/releases/download/wix311rtm/wix311-binaries.zip") set(download_filename "wix311-binaries.zip") set(download_sha512 74f0fa29b5991ca655e34a9d1000d47d4272e071113fada86727ee943d913177ae96dc3d435eaf494d2158f37560cd4c2c5274176946ebdb17bf2354ced1c516) endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(DOXYGEN).cmake ================================================ set(program_name doxygen) set(program_version 1.9.8) string(REPLACE "." "_" program_version_dir "Release_${program_version}") if(CMAKE_HOST_WIN32) set(download_filename "doxygen-${program_version}.windows.x64.bin.zip") set(download_urls "https://github.com/doxygen/doxygen/releases/download/${program_version_dir}/${download_filename}") set(download_sha512 81203467e8ef746467a429c7b75b561e8c37c878020a09deb9363182d177363ea6116b6a8fa9e7304a63e99cf32c7f4ba3da2da8cd4171ce48180838439d6999) set(tool_subdirectory "v${program_version}") elseif(VCPKG_HOST_IS_LINUX) execute_process(COMMAND uname -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH MATCHES "x86_64|amd64") set(download_filename "doxygen-${program_version}.linux.bin.tar.gz") set(download_urls "https://github.com/doxygen/doxygen/releases/download/${program_version_dir}/${download_filename}") set(download_sha512 344fee325679836dc242b838f5e92c0ff244f0571d1ecec121b58e788726a7e5f07c56f45c8c517696ac5d5e2d36f55a3a45a353151aa7b282eda8653462f8bb) set(paths_to_search "${DOWNLOADS}/tools/doxygen/doxygen-${program_version}/bin") endif() endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(FLEX).cmake ================================================ if(CMAKE_HOST_WIN32) # This download shall be the same as in vcpkg_find_acquire_program(BISON).cmake # Note that this is 2.5.24 rather than 2.5.25 due to a race in %TEMP% in 2.5.25 # For more information, see: https://github.com/microsoft/vcpkg/issues/29139 # or: https://github.com/lexxmark/winflexbison/issues/86 set(program_version 2.5.24) set(download_urls "https://github.com/lexxmark/winflexbison/releases/download/v${program_version}/win_flex_bison-${program_version}.zip") set(download_filename "win_flex_bison-${program_version}.zip") set(download_sha512 dc89fcdaa7071fbbf88b0755b799d69223240c28736924b4c30968c08e7e0b116c7e05ae98a9257be26a1dfb4aa70a628808a6b6018706bf857555c5b4335018) set(tool_subdirectory "${program_version}") set(program_name win_flex) set(paths_to_search "${DOWNLOADS}/tools/win_flex/${program_version}") if(NOT EXISTS "${paths_to_search}/data/m4sugar/m4sugar.m4") file(REMOVE_RECURSE "${paths_to_search}") endif() else() set(program_name flex) set(apt_package_name flex) set(brew_package_name flex) endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(GASPREPROCESSOR).cmake ================================================ set(raw_executable true) set(program_name gas-preprocessor) set(interpreter PERL) set(search_names "gas-preprocessor.pl") set(paths_to_search "${DOWNLOADS}/tools/gas-preprocessor/${tool_subdirectory}") set(rename_binary_to "gas-preprocessor.pl") set(commit_id 9309c67acb535ca6248f092e96131d8eb07eefc1) set(download_urls "https://raw.githubusercontent.com/FFmpeg/gas-preprocessor/${commit_id}/gas-preprocessor.pl") string(SUBSTRING ${commit_id} 0 8 tool_subdirectory) set(download_filename "gas-preprocessor-${tool_subdirectory}.pl") set(download_sha512 b4749cf8aa758e3f28d4b21803422a5c2588f5fc48cfd317564606b374f8d739c636067cf7a4956d7365d63b055bc6e7626c304857e6c9013d6b4a0db9d8ad4f) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(GIT).cmake ================================================ z_use_vcpkg_fetch(GIT) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(GN).cmake ================================================ set(program_name gn) set(rename_binary_to "gn") if(EXISTS "${CURRENT_HOST_INSTALLED_DIR}/share/gn/version.txt") file(READ "${CURRENT_HOST_INSTALLED_DIR}/share/gn/version.txt" program_version) set(paths_to_search "${CURRENT_HOST_INSTALLED_DIR}/tools/gn") else() # Old behavior message(STATUS "Consider adding vcpkg-tool-gn as a host dependency of this port or create an issue at https://github.com/microsoft/vcpkg/issues") set(cipd_download_gn "https://chrome-infra-packages.appspot.com/dl/gn/gn") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") execute_process(COMMAND uname -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "aarch64") set(program_version "GkfFAfAUyE-qfeWkdUMaeM1Ov64Fk3SjSj9pwKqZX7gC") set(gn_platform "linux-arm64") set(download_sha512 "E88201309A12C00CE60137261B8E1A759780C81D1925B819583B16D2095A16A7D32EFB2AF36C1E1D6EAA142BF6A6A811847D3140E4E94967EE28F4ADF6373E4B") elseif(HOST_ARCH STREQUAL "riscv64") set(program_version "tauFErkaMkGZN-_03F9DJfMm3DRnaiGOS6SXeLcOswAC") set(gn_platform "linux-riscv64") set(download_sha512 "210de22ad5d5634be902c68c6deed08686e252c34218baf30c6bd7266be142740b18d7e6a27b0ef56eb6f75dc5255d5365dff0b98ade482ccba4a32e756a14e5") else() set(program_version "Fv1ENXodhXmEXy_xpZr2gQkVJh57w_IsbsrEJOU0_EoC") set(gn_platform "linux-amd64") set(download_sha512 "A7A5CD5633C5547EC1B1A95958486DDAAC91F1A65881EDC0AD8F74DF44E82F08BA74358E9A72DFCDDE6F534A6B9C9A430D3E16ACE2E4346C4D2E9113F7654B3F") endif() elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") execute_process(COMMAND uname -m OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "arm64") set(program_version "qMPtGq7xZlpb-lHjP-SK27ftT4X71WIvguuyx6X14DEC") set(gn_platform "mac-arm64") set(download_sha512 "D096FB958D017807427911089AB5A7655AED117F6851C0491AC8063CEDB544423122EF64DF4264ECA86C20A2BDE9E64D7B72DA7ED8C95C2BA79A68B8247D36B8") else() set(program_version "0x2juPLNfP9603GIyZrUfflxK6LiMcppLAoxEpYuIYoC") set(gn_platform "mac-amd64") set(download_sha512 "2696ECE7B2C8008CABDDF10024017E2ECF875F8679424E77052252BDDC83A2096DF3C61D89CD25120EF27E0458C8914BEEED9D418593BDBC4F6ED33A8D4C3DC5") endif() else() if("$ENV{PROCESSOR_ARCHITECTURE}" STREQUAL "ARM64") set(program_version "q5ExVHmXyD34Q_Tzb-aRxsPipO-e37-csVRhVM7IJh0C") set(gn_platform "windows-amd64") set(download_sha512 "FA764AA44EB6F48ED50E855B4DC1DD1ABE35E45FD4AAC7F059A35293A14894C1B591215E34FB0CE9362E646EA9463BA3B489EFB7EBBAA2693D14238B50E4E686") else() # AMD64 set(program_version "q5ExVHmXyD34Q_Tzb-aRxsPipO-e37-csVRhVM7IJh0C") set(gn_platform "windows-amd64") set(download_sha512 "FA764AA44EB6F48ED50E855B4DC1DD1ABE35E45FD4AAC7F059A35293A14894C1B591215E34FB0CE9362E646EA9463BA3B489EFB7EBBAA2693D14238B50E4E686") endif() endif() endif() set(tool_subdirectory "${program_version}") set(download_urls "${cipd_download_gn}/${gn_platform}/+/${program_version}") set(download_filename "gn-${gn_platform}.zip") ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(GO).cmake ================================================ set(program_name go) set(program_version 1.25.5) set(brew_package_name "go") set(apt_package_name "golang-go") if(CMAKE_HOST_WIN32) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(build_arch $ENV{PROCESSOR_ARCHITEW6432}) else() set(build_arch $ENV{PROCESSOR_ARCHITECTURE}) endif() if(build_arch MATCHES "^(ARM|arm)64$") set(tool_subdirectory ${program_version}.windows-arm64) set(download_sha512 1282b9898e604003bdfe42f1afcf5e5d074bfbebf0b34e8d79bae5cb0c561fe13705325837895db76843864299929f8a3fa72372bd79becc1d121e33f6deb1d2) elseif(build_arch MATCHES "^(AMD|amd)64$") set(tool_subdirectory ${program_version}.windows-amd64) set(download_sha512 0628e15ac96a766a6e903e6bfb1706ff23bd0de61ca2bbd3716349b15feb5c45cfc814b6d0eba1d1096b70f41778524db6be33ff45b6594f449d4fc3bcbf9b68) else() # Default to x86 for 32-bit systems set(tool_subdirectory ${program_version}.windows-386) set(download_sha512 b55873696b4e38ec92583adc2e573f03dc57e77ee97e5ef61db0dc25b69d18595b0e08cb74d7a45c119ae394f681d60c9235034b44acd17ee1907e628a50b6e9) endif() set(paths_to_search "${DOWNLOADS}/tools/go/${tool_subdirectory}/go/bin") set(download_urls "https://dl.google.com/go/go${tool_subdirectory}.zip") set(download_filename "go${tool_subdirectory}.zip") elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") vcpkg_execute_in_download_mode(COMMAND "uname" "-m" OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH MATCHES "x86_64|amd64|AMD64") set(tool_subdirectory ${program_version}.darwin-amd64) set(download_urls "https://dl.google.com/go/go${tool_subdirectory}.tar.gz") set(download_filename "go${tool_subdirectory}.tar.gz") set(download_sha512 1646af2f49e93920b1db021ab3f054faa45b8fcfc3eaae57595a7957a3fa3718aa0deaad5c98998aad11dfa62dda5d0d3b08ad40d3ebb17ca8790cd7a91c98b2) elseif(HOST_ARCH MATCHES "arm64|aarch64|ARM64|AARCH64") set(tool_subdirectory ${program_version}.darwin-arm64) set(download_urls "https://dl.google.com/go/go${tool_subdirectory}.tar.gz") set(download_filename "go${tool_subdirectory}.tar.gz") set(download_sha512 92f5bb2524f0f83f1275e703266cd243a68f96710e408809f82fffab73c30fffc361b97563f1d0f851d22e858c5d25571366c7aacc6186bdf472f6687fbb893c) endif() set(paths_to_search "${DOWNLOADS}/tools/go/${tool_subdirectory}/go/bin") elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") vcpkg_execute_in_download_mode(COMMAND "uname" "-m" OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH MATCHES "x86_64|amd64|AMD64") set(tool_subdirectory ${program_version}.linux-amd64) set(download_urls "https://dl.google.com/go/go${tool_subdirectory}.tar.gz") set(download_filename "go${tool_subdirectory}.tar.gz") set(download_sha512 b23f749a51b6da1bf7042a87af6daca2454604c69c62044627b411769f207ac5676fb629948a26c16000c3b495bf785902c3250a6db4522f60dbf4ad900064a8) elseif(HOST_ARCH MATCHES "arm64|aarch64|ARM64|AARCH64") set(tool_subdirectory ${program_version}.linux-arm64) set(download_urls "https://dl.google.com/go/go${tool_subdirectory}.tar.gz") set(download_filename "go${tool_subdirectory}.tar.gz") set(download_sha512 5f67f7c45652a47553edd3835d1ca400a51aa5d1b9880c05fe5e7344341814d3107d6a39f18203baf52363507de8dd5f75241f0f7ecda0bdabcef9a82f6e50e6) endif() set(paths_to_search "${DOWNLOADS}/tools/go/${tool_subdirectory}/go/bin") else() message(WARNING "Unsupported host system for prebuilt Go binaries. Skipping...") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(GPERF).cmake ================================================ set(program_name gperf) set(program_version 3.0.1) if(CMAKE_HOST_WIN32) set(download_filename "gperf-${program_version}-bin.zip") set(download_sha512 3f2d3418304390ecd729b85f65240a9e4d204b218345f82ea466ca3d7467789f43d0d2129fcffc18eaad3513f49963e79775b10cc223979540fa2e502fe7d4d9) set(download_urls "https://sourceforge.net/projects/gnuwin32/files/gperf/${program_version}/gperf-${program_version}-bin.zip/download") set(paths_to_search "${DOWNLOADS}/tools/gperf/bin") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(JOM).cmake ================================================ set(program_name jom) set(program_version_string 1_1_6) if(CMAKE_HOST_WIN32) set(download_urls "https://download.qt.io/official_releases/jom/jom_${program_version_string}.zip" "https://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_${program_version_string}.zip" "https://mirrors.ukfast.co.uk/sites/qt.io/official_releases/jom/jom_${program_version_string}.zip" ) set(download_filename "jom_${program_version_string}.zip") set(download_sha512 6fd99ad144e715cfdfe222b3999edcec0e1b82cfe216d79fedfd404942c56cfdd1827e445b8f7112148f75c02802d345f4b435321fc1530ac4b46e77bb9909b3) set(tool_subdirectory "jom-${program_version_string}") set(paths_to_search "${DOWNLOADS}/tools/jom/${tool_subdirectory}") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(MESON).cmake ================================================ set(program_name meson) set(search_names meson meson.py) set(interpreter PYTHON3) set(apt_package_name "meson") set(brew_package_name "meson") set(version_command --version) set(extra_search_args EXACT_VERSION_MATCH) if(EXISTS "${CURRENT_HOST_INSTALLED_DIR}/share/meson/version.txt") file(READ "${CURRENT_HOST_INSTALLED_DIR}/share/meson/version.txt" program_version) set(paths_to_search "${DOWNLOADS}/tools/meson-${program_version};${CURRENT_HOST_INSTALLED_DIR}/tools/meson") else() # Old behavior set(program_version 0.58.1) set(ref aeda7f249c4a5dbbecc52e44f382246a2377b5b0) set(paths_to_search "${DOWNLOADS}/tools/meson/meson-${ref}") set(download_urls "https://github.com/mesonbuild/meson/archive/${ref}.tar.gz") set(download_filename "meson-${ref}.tar.gz") set(download_sha512 18a012a45274dbb4582e99fd69d920f38831e788d9860f9553c64847bedb1c2010ae0b5c0ef4a4350c03f5e0f95aaa0395378e1208109b59640c1a70b1e202d2) endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(NASM).cmake ================================================ set(program_name nasm) set(program_version 3.01) set(brew_package_name "nasm") set(apt_package_name "nasm") if(CMAKE_HOST_WIN32) set(download_urls "https://www.nasm.us/pub/nasm/releasebuilds/${program_version}/win64/nasm-${program_version}-win64.zip" "https://www.nasm.dev/pub/nasm/releasebuilds/${program_version}/win64/nasm-${program_version}-win64.zip" "https://vcpkg.github.io/assets/nasm/nasm-${program_version}-win64.zip" ) set(download_filename "nasm-${program_version}-win64.zip") set(download_sha512 771c238ddb17c98d5736ccaba4ade1d1601d896f09e588489cb43a4f6381bc0ae14d1869f5316fe94f847f54867e65cf12665529b1e7ad88e5e7d3e162719a4f) set(paths_to_search "${DOWNLOADS}/tools/nasm/nasm-${program_version}") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake ================================================ z_use_vcpkg_fetch(NINJA) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(NUGET).cmake ================================================ z_use_vcpkg_fetch(NUGET) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PATCHELF).cmake ================================================ set(program_name patchelf) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(program_version 0.15.5) vcpkg_execute_in_download_mode(COMMAND "uname" "-m" OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) if(HOST_ARCH STREQUAL "x86_64") set(patchelf_platform "x86_64") set(download_sha512 "1a638467dc71119d88657e83825bf9c4e65dbb2d3bbbd0267963a507e29429569dc7777490724928c86efc50af82d91b0163b29a09f8f99e62ebf6d9bb1567d2") elseif(HOST_ARCH MATCHES "i[3-6]86") set(patchelf_platform "i686") set(download_sha512 "e27b68e657e440bb262fc8529a615cd71382573d3c8ae4e49ea40accd34338b5fcd05c5b50491329c9b3a134eb8d489a3352399bab8c6d1f0937303d0b6b5a14") elseif(HOST_ARCH STREQUAL "aarch64") set(patchelf_platform "aarch64") set(download_sha512 "f0cc19d7dbf1eeb77f01ad6d9e6e01ebb356adc32b31eeb577de787d93d7292feea98f9027363ab79c08cf645d3c751df31b1e500151fca3597a7fae5b16542b") elseif(HOST_ARCH STREQUAL "armv7l") set(patchelf_platform "armv7l") set(download_sha512 "e9b087d3198837c19ae0d8a30e9b8eb445282107bc6c1a148627a70d7d7dc0843bd570c8865407397e2157b59aa539ab1331862b59325970f94905ad09f1cc57") elseif(HOST_ARCH STREQUAL "riscv64") set(patchelf_platform "riscv64") set(download_sha512 "a88e1a6ddaa6882d1af3582f031e97347098d85fa7baad00a457a9383f79f7f630dd47abc8d34fb6f1ca271ba63c635dbea3931053d0185c77a29750408c24ea") elseif(HOST_ARCH STREQUAL "ppc64le") set(patchelf_platform "ppc64le") set(download_sha512 "fb36a5f032c2fbe377049a860760f8953279c1a0ae080c54f8040cd15abf0a9932668fe10214a16574cec51d328927a36319751c1d4ed6675ed57a2f3615ec69") elseif(HOST_ARCH STREQUAL "s390x") set(patchelf_platform "s390x") set(download_sha512 "e102160c9ee39a52fdc5817548f860884982e7a9bc06eaf13fcc9d9697a46e0929730b398817a00b88e705977d58619bb85e8dc32af8a0017c363ca2ca76a74c") else() return() endif() set(download_filename "${program_name}-${program_version}-${patchelf_platform}.tar.gz") set(download_urls "https://github.com/NixOS/patchelf/releases/download/${program_version}/${download_filename}") set(tool_subdirectory "${program_version}-${patchelf_platform}-linux") set(paths_to_search "${DOWNLOADS}/tools/patchelf/${program_version}-${patchelf_platform}-linux/bin") elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(patchelf_host "win32") set(program_version 0.18.0) set(download_sha512 "19d24f64bea6d6236292455a09695d289ddca71433a0ccaf372f57da80a4cde5db1c375ac8e29a41ac1f0676b7d3b56ce5b2baf39e58369c4f741b612db51044") set(download_filename "${program_name}-${patchelf_host}-${program_version}.exe") set(download_urls "https://github.com/NixOS/patchelf/releases/download/${program_version}/${download_filename}") set(tool_subdirectory "${program_version}-${patchelf_host}") set(paths_to_search "${DOWNLOADS}/tools/patchelf/${program_version}-${patchelf_host}/") set(raw_executable ON) set(rename_binary_to "patchelf.exe") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PERL).cmake ================================================ set(program_name perl) set(program_version 5.42.0.1) set(brew_package_name "perl") set(apt_package_name "perl") if(CMAKE_HOST_WIN32) set(download_urls "https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54201_64bit/strawberry-perl-5.42.0.1-64bit-portable.zip" ) set(download_filename "strawberry-perl-5.42.0.1-64bit-portable.zip") set(download_sha512 e78fc86eb76dc34f2fd8a911537b20378e1ce486a3ea1a167001fd040c2468e8db5e711a895314e7ead3511f3caafccc1ffbfd0bd4096c0360d712a9668fe69b) set(tool_subdirectory ${program_version}) set(paths_to_search ${DOWNLOADS}/tools/perl/${tool_subdirectory}/perl/bin) endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PKGCONFIG).cmake ================================================ macro(z_vcpkg_find_acquire_pkgconfig_msys_declare_packages) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/clangarm64/mingw-w64-clang-aarch64-pkgconf-1~2.5.1-1-any.pkg.tar.zst" SHA512 ef9f466471f9f24b836fd553b75d046b93914fb57f15bcc048df04195e8f2086101459d42890a1f194cb7ea1ac0bc5058258cdc166c7579f95aa90d95f3406d6 PROVIDES mingw-w64-clang-aarch64-pkg-config ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-pkgconf-1~2.5.1-1-any.pkg.tar.zst" SHA512 2e604ccb004e2afa151e870112c95cab7106e43ee3cdfe67ac8815f3ec6754ccbc25211732eec8ac9ffe491071c63c9af18c8fa2bbfd6521a1b467bb11b1da03 PROVIDES mingw-w64-x86_64-pkg-config ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-pkgconf-1~2.5.1-1-any.pkg.tar.zst" SHA512 d3ad08e1f34b676d9b984fb294c08b8eb6519581670cf4a158790708cc2a7e58f25b8ef4cbb76df181a2ad4ad2a8de7fab08eb3a356b7dc12386be945d046af5 PROVIDES mingw-w64-i686-pkg-config ) endmacro() set(program_name pkg-config) if(DEFINED "ENV{PKG_CONFIG}") debug_message(STATUS "PKG_CONFIG found in ENV! Using $ENV{PKG_CONFIG}") set(PKGCONFIG "$ENV{PKG_CONFIG}" CACHE INTERNAL "") set(PKGCONFIG "${PKGCONFIG}" PARENT_SCOPE) return() elseif(CMAKE_HOST_WIN32) if(NOT EXISTS "${PKGCONFIG}") set(program_version 2.1.0) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(host_arch "$ENV{PROCESSOR_ARCHITEW6432}") else() set(host_arch "$ENV{PROCESSOR_ARCHITECTURE}") endif() if("${host_arch}" STREQUAL "ARM64") vcpkg_acquire_msys(PKGCONFIG_ROOT NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_acquire_pkgconfig_msys_declare_packages" PACKAGES mingw-w64-clang-aarch64-pkgconf ) set("${program}" "${PKGCONFIG_ROOT}/clangarm64/bin/pkg-config.exe" CACHE INTERNAL "") elseif("${host_arch}" MATCHES "64") vcpkg_acquire_msys(PKGCONFIG_ROOT NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_acquire_pkgconfig_msys_declare_packages" PACKAGES mingw-w64-x86_64-pkgconf ) set("${program}" "${PKGCONFIG_ROOT}/mingw64/bin/pkg-config.exe" CACHE INTERNAL "") else() vcpkg_acquire_msys(PKGCONFIG_ROOT NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_acquire_pkgconfig_msys_declare_packages" PACKAGES mingw-w64-i686-pkgconf ) set("${program}" "${PKGCONFIG_ROOT}/mingw32/bin/pkg-config.exe" CACHE INTERNAL "") endif() endif() set("${program}" "${${program}}" PARENT_SCOPE) return() else() set(brew_package_name pkg-config) set(apt_package_name pkg-config) set(paths_to_search "/bin" "/usr/bin" "/usr/local/bin") if(VCPKG_HOST_IS_OSX) vcpkg_list(PREPEND paths_to_search "/opt/homebrew/bin") endif() endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PWSH).cmake ================================================ z_use_vcpkg_fetch(PWSH FETCH_NAME powershell-core) ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PYTHON2).cmake ================================================ if(CMAKE_HOST_WIN32) set(program_name python) set(program_version 2.7.18) if(EXISTS "${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-tool-python2/details.cmake") include("${CURRENT_HOST_INSTALLED_DIR}/share/vcpkg-tool-python2/details.cmake") else() # Old behavior if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) set(tool_subdirectory "python-${program_version}-x86") set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}.msi") set(download_filename "python-${program_version}.msi") set(download_sha512 2c112733c777ddbf189b0a54047a9d5851ebce0564cc38b9687d79ce6c7a09006109dbad8627fb1a60c3ad55e261db850d9dfa454af0533b460b2afc316fe115) else() set(tool_subdirectory "python-${program_version}-x64") set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}.amd64.msi") set(download_filename "python-${program_version}.amd64.msi") set(download_sha512 6a81a413b80fd39893e7444fd47efa455d240cbb77a456c9d12f7cf64962b38c08cfa244cd9c50a65947c40f936c6c8c5782f7236d7b92445ab3dd01e82af23e) endif() set(paths_to_search "${DOWNLOADS}/tools/python/${tool_subdirectory}") endif() elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") # macOS includes Python 2.7 built-in as `python` set(program_name python) set(brew_package_name "python2") else() set(program_name python2) set(apt_package_name "python") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(PYTHON3).cmake ================================================ if(CMAKE_HOST_WIN32) set(program_name python) set(program_version 3.14.2) if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) set(build_arch $ENV{PROCESSOR_ARCHITEW6432}) else() set(build_arch $ENV{PROCESSOR_ARCHITECTURE}) endif() if(build_arch MATCHES "^(ARM|arm)64$") set(tool_subdirectory "python-${program_version}-arm64") # https://www.python.org/ftp/python/3.14.2/python-3.14.2-embed-arm64.zip set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-arm64.zip") set(download_filename "python-${program_version}-embed-arm64.zip") set(download_sha512 410C785D1BC8F3D1352E5386E53AB0AEF39E1212680E2E05DAAD5672DCC749CCFAB96E204C84B3C1E9544002088E1412CA733B1A86CA4CC920549C41774F6C58) elseif(build_arch MATCHES "(amd|AMD)64") set(tool_subdirectory "python-${program_version}-x64") # https://www.python.org/ftp/python/3.14.2/python-3.14.2-embed-amd64.zip set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-amd64.zip") set(download_filename "python-${program_version}-embed-amd64.zip") set(download_sha512 D72D4F036C4DD563C4AC15C7162BF63406D3FD83A44877300FF87E4168F211D66B8209FDD3AD39EA549B8BC46C092B4ECAB3B24B0DA2F8950E0E5642828E99F2) else() set(tool_subdirectory "python-${program_version}-x86") # https://www.python.org/ftp/python/3.14.2/python-3.14.2-embed-win32.zip set(download_urls "https://www.python.org/ftp/python/${program_version}/python-${program_version}-embed-win32.zip") set(download_filename "python-${program_version}-embed-win32.zip") set(download_sha512 05703133A3371493CCD3552DD12DB6385CBB1A34874056C8A3F26DDA6B813BF2BD535549C30AA4C0827287D9C4FF3250A49330282AD8535A06937B016D483010) endif() # Remove this after the next update string(APPEND tool_subdirectory "-1") set(paths_to_search "${DOWNLOADS}/tools/python/${tool_subdirectory}") vcpkg_list(SET post_install_command "${CMAKE_COMMAND}" "-DPYTHON_DIR=${paths_to_search}" "-DPYTHON_VERSION=${program_version}" -P "${CMAKE_CURRENT_LIST_DIR}/z_vcpkg_make_python_less_embedded.cmake" ) else() set(program_name python3) set(brew_package_name "python") set(apt_package_name "python3") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(RUBY).cmake ================================================ set(program_name "ruby") set(program_version 2.7.4-1) if(CMAKE_HOST_WIN32) set(download_urls "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-${program_version}/rubyinstaller-${program_version}-x86.7z") set(download_filename "rubyinstaller-${program_version}-x86.7z") set(download_sha512 4bf459c987b407bdda328c52d95060bf6ad48fc3e5ed5f64d4b205c5b4153c7a00cb6f9da6c0bcd5f2e001e9dc3dda0b72269ec4afdeffd658b93c085cd1d859) set(paths_to_search "${DOWNLOADS}/tools/ruby/rubyinstaller-${program_version}-x86/bin") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(SCONS).cmake ================================================ set(program_name scons) set(program_version 4.10.1) set(interpreter PYTHON3) set(search_names "scons.py") set(download_urls "https://sourceforge.net/projects/scons/files/scons-local-${program_version}.zip/download") set(download_filename "scons-local-${program_version}.zip") set(download_sha512 9309b78782a24149da1cb1e9437c23673570378fcbe2f2228266d3ba4d8781cf95c2b90d5d76415582a82e668b5a0ef7c348c4d1206d0f1db2dc050e98f78aba) set(tool_subdirectory "${program_version}") ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(SWIG).cmake ================================================ set(program_version 4.3.1) set(program_name swig) if(CMAKE_HOST_WIN32) set(download_filename "swigwin-${program_version}.zip") set(download_sha512 "ca7210684b6ccb1b9bb186797bf1b67bbf3e76f6d0e702fee78edf7456992a4298eb5fa0b5f602a4240161fedd422920fe56e12cd60b8c8fd71c2f784f3d0f43") vcpkg_list(SET sourceforge_args REPO swig/swigwin REF "swigwin-${program_version}" ) set(paths_to_search "${DOWNLOADS}/tools/swig/swigwin-${program_version}") else() set(apt_package_name "swig") set(brew_package_name "swig") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program(YASM).cmake ================================================ set(program_name yasm) set(program_version 1.3.0.6.g1962) set(brew_package_name "yasm") set(apt_package_name "yasm") if(CMAKE_HOST_WIN32) set(download_urls "https://www.tortall.net/projects/yasm/snapshots/v${program_version}/yasm-${program_version}.exe") set(download_filename "yasm-${program_version}.exe") set(download_sha512 c1945669d983b632a10c5ff31e86d6ecbff143c3d8b2c433c0d3d18f84356d2b351f71ac05fd44e5403651b00c31db0d14615d7f9a6ecce5750438d37105c55b) set(tool_subdirectory 1.3.0.6) set(raw_executable ON) set(rename_binary_to "yasm.exe") endif() ================================================ FILE: scripts/cmake/vcpkg_find_acquire_program.cmake ================================================ function(z_vcpkg_find_acquire_program_version_check out_var) cmake_parse_arguments(PARSE_ARGV 1 arg "EXACT_VERSION_MATCH" "MIN_VERSION;PROGRAM_NAME" "COMMAND" ) vcpkg_execute_in_download_mode( COMMAND ${arg_COMMAND} WORKING_DIRECTORY "${VCPKG_ROOT_DIR}" OUTPUT_VARIABLE program_version_output ) string(STRIP "${program_version_output}" program_version_output) #TODO: REGEX MATCH case for more complex cases! set(version_compare VERSION_GREATER_EQUAL) set(version_compare_msg "at least") if(arg_EXACT_VERSION_MATCH) set(version_compare VERSION_EQUAL) set(version_compare_msg "exact") endif() if(NOT "${program_version_output}" ${version_compare} "${arg_MIN_VERSION}") message(STATUS "Found ${arg_PROGRAM_NAME}('${program_version_output}') but ${version_compare_msg} version ${arg_MIN_VERSION} is required! Trying to use internal version if possible!") set("${out_var}" OFF PARENT_SCOPE) else() message(STATUS "Found external ${arg_PROGRAM_NAME}('${program_version_output}').") set("${out_var}" ON PARENT_SCOPE) endif() endfunction() function(z_vcpkg_find_acquire_program_find_external program) cmake_parse_arguments(PARSE_ARGV 1 arg "EXACT_VERSION_MATCH" "INTERPRETER;MIN_VERSION;PROGRAM_NAME" "NAMES;VERSION_COMMAND" ) if(arg_EXACT_VERSION_MATCH) set(arg_EXACT_VERSION_MATCH EXACT_VERSION_MATCH) endif() if("${arg_INTERPRETER}" STREQUAL "") find_program("${program}" NAMES ${arg_NAMES}) else() find_file(SCRIPT_${arg_PROGRAM_NAME} NAMES ${arg_NAMES}) if(SCRIPT_${arg_PROGRAM_NAME}) vcpkg_list(SET program_tmp ${${interpreter}} ${SCRIPT_${arg_PROGRAM_NAME}}) set("${program}" "${program_tmp}" CACHE INTERNAL "") else() set("${program}" "" CACHE INTERNAL "") endif() unset(SCRIPT_${arg_PROGRAM_NAME} CACHE) endif() set(${program} "$CACHE{${program}}") if("${version_command}" STREQUAL "") set(version_is_good ON) # can't check for the version being good, so assume it is elseif(${program}) # only do a version check if ${program} has a value z_vcpkg_find_acquire_program_version_check(version_is_good ${arg_EXACT_VERSION_MATCH} COMMAND ${${program}} ${arg_VERSION_COMMAND} MIN_VERSION "${arg_MIN_VERSION}" PROGRAM_NAME "${arg_PROGRAM_NAME}" ) endif() if(version_is_good) set(${program} "$CACHE{${program}}" PARENT_SCOPE) else() set("${program}" "${program}-NOTFOUND" PARENT_SCOPE) unset("${program}" CACHE) endif() endfunction() function(z_vcpkg_find_acquire_program_find_internal program) cmake_parse_arguments(PARSE_ARGV 1 arg "" "INTERPRETER" "NAMES;PATHS" ) if("${arg_INTERPRETER}" STREQUAL "") find_program(${program} NAMES ${arg_NAMES} PATHS ${arg_PATHS} NO_DEFAULT_PATH) else() vcpkg_find_acquire_program("${arg_INTERPRETER}") find_file(SCRIPT_${program} NAMES ${arg_NAMES} PATHS ${arg_PATHS} NO_DEFAULT_PATH) if(SCRIPT_${program}) if(arg_INTERPRETER MATCHES "PYTHON") set("${program}" ${${arg_INTERPRETER}} -I ${SCRIPT_${program}} CACHE INTERNAL "") else() set("${program}" ${${arg_INTERPRETER}} ${SCRIPT_${program}} CACHE INTERNAL "") endif() endif() unset(SCRIPT_${program} CACHE) endif() set(${program} "$CACHE{${program}}" PARENT_SCOPE) endfunction() function(z_use_vcpkg_fetch program) cmake_parse_arguments(PARSE_ARGV 1 arg "" "FETCH_NAME" "" ) if(NOT arg_FETCH_NAME) string(TOLOWER "${program}" arg_FETCH_NAME) endif() vcpkg_execute_in_download_mode( COMMAND "$ENV{VCPKG_COMMAND}" fetch "${arg_FETCH_NAME}" --x-stderr-status OUTPUT_VARIABLE ${program} OUTPUT_STRIP_TRAILING_WHITESPACE COMMAND_ERROR_IS_FATAL ANY ) set("${program}" "${${program}}" CACHE STRING "" FORCE) set(z_uses_vcpkg_fetch ON PARENT_SCOPE) endfunction() function(vcpkg_find_acquire_program program) if(${program}) return() endif() set(raw_executable "OFF") set(program_name "") set(program_version "") set(search_names "") set(download_urls "") set(download_filename "") set(download_sha512 "") set(rename_binary_to "") set(tool_subdirectory "") set(interpreter "") set(post_install_command "") set(paths_to_search "") set(version_command "") vcpkg_list(SET sourceforge_args) set(brew_package_name "") set(apt_package_name "") set(program_information "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/vcpkg_find_acquire_program(${program}).cmake") if(program MATCHES "^[A-Z0-9]+\$" AND EXISTS "${program_information}") include("${program_information}") if(z_uses_vcpkg_fetch) return() endif() else() message(FATAL_ERROR "unknown tool ${program} -- unable to acquire.") endif() if("${program_name}" STREQUAL "") message(FATAL_ERROR "Internal error: failed to initialize program_name for program ${program}") endif() set(full_subdirectory "${DOWNLOADS}/tools/${program_name}/${tool_subdirectory}") if(NOT "${tool_subdirectory}" STREQUAL "") list(APPEND paths_to_search ${full_subdirectory}) endif() if("${full_subdirectory}" MATCHES [[^(.*)[/\\]+$]]) # remove trailing slashes, which may turn into a trailing `\` which CMake _does not like_ set(full_subdirectory "${CMAKE_MATCH_1}") endif() if("${search_names}" STREQUAL "") set(search_names "${program_name}") endif() # Force nested `find_program` to either use the cached variable or # to actually search, regardless of a parent scope variable. # Called functions must change the variable in this scope. if("$CACHE{${program}}" STREQUAL "") set(${program} "NOTFOUND") else() set(${program} "$CACHE{${program}}") endif() z_vcpkg_find_acquire_program_find_internal("${program}" INTERPRETER "${interpreter}" PATHS ${paths_to_search} NAMES ${search_names} ) if(NOT ${program}) z_vcpkg_find_acquire_program_find_external("${program}" ${extra_search_args} PROGRAM_NAME "${program_name}" MIN_VERSION "${program_version}" INTERPRETER "${interpreter}" NAMES ${search_names} VERSION_COMMAND ${version_command} ) endif() if(NOT ${program}) if("${download_urls}" STREQUAL "" AND "${sourceforge_args}" STREQUAL "") set(example ".") if(NOT "${brew_package_name}" STREQUAL "" AND VCPKG_HOST_IS_OSX) set(example ":\n brew install ${brew_package_name}") elseif(NOT "${apt_package_name}" STREQUAL "" AND VCPKG_HOST_IS_LINUX) set(example ":\n sudo apt-get install ${apt_package_name}") endif() message(FATAL_ERROR "Could not find ${program_name}. Please install it via your package manager${example}") endif() if("${sourceforge_args}" STREQUAL "") vcpkg_download_distfile(archive_path URLS ${download_urls} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) else() vcpkg_download_sourceforge(archive_path ${sourceforge_args} SHA512 "${download_sha512}" FILENAME "${download_filename}" ) endif() if(raw_executable) file(MAKE_DIRECTORY "${full_subdirectory}") if("${rename_binary_to}" STREQUAL "") file(COPY "${archive_path}" DESTINATION "${full_subdirectory}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) else() file(INSTALL "${archive_path}" DESTINATION "${full_subdirectory}" RENAME "${rename_binary_to}" FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) endif() elseif(tool_subdirectory STREQUAL "") # The effective tool subdir is owned by the extracted paths of the archive. # *** This behavior is provided for convenience and short paths. *** # There must be no overlap between different providers of subdirs. # Otherwise tool_subdirectory must be used in order to separate extracted trees. file(REMOVE_RECURSE "${full_subdirectory}.temp") vcpkg_extract_archive(ARCHIVE "${archive_path}" DESTINATION "${full_subdirectory}.temp") file(COPY "${full_subdirectory}.temp/" DESTINATION "${full_subdirectory}") file(REMOVE_RECURSE "${full_subdirectory}.temp") else() vcpkg_extract_archive(ARCHIVE "${archive_path}" DESTINATION "${full_subdirectory}") endif() if(NOT "${post_install_command}" STREQUAL "") vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND ${post_install_command} WORKING_DIRECTORY "${full_subdirectory}" LOGNAME "${program}-tool-post-install" ) endif() unset("${program}") unset("${program}" CACHE) z_vcpkg_find_acquire_program_find_internal("${program}" INTERPRETER "${interpreter}" PATHS ${paths_to_search} NAMES ${search_names} ) if(NOT ${program}) message(FATAL_ERROR "Unable to find ${program}") endif() endif() set("${program}" "${${program}}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_find_fortran.cmake ================================================ list(APPEND Z_VCPKG_ACQUIRE_MSYS_DECLARE_PACKAGE_COMMANDS "z_vcpkg_find_fortran_declare_msys_packages") function(vcpkg_find_fortran out_var) if("${ARGC}" GREATER "1") message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra args: ${ARGN}") endif() vcpkg_list(SET additional_cmake_args) set(CMAKE_BINARY_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}") set(CMAKE_CURRENT_BINARY_DIR "${CMAKE_BINARY_DIR}") set(CMAKE_PLATFORM_INFO_DIR "${CMAKE_BINARY_DIR}/Platform") macro(z_vcpkg_warn_ambiguous_system_variables) # CMakeDetermineFortranCompiler is for project mode. endmacro() include(CMakeDetermineFortranCompiler) if(NOT CMAKE_Fortran_COMPILER AND "${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" STREQUAL "") # If a user uses their own VCPKG_CHAINLOAD_TOOLCHAIN_FILE, they _must_ figure out fortran on their own. if(CMAKE_HOST_WIN32) message(STATUS "No Fortran compiler found on the PATH. Using MinGW gfortran!") # If no Fortran compiler is on the path we switch to use gfortan from MinGW within vcpkg if("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x86") set(mingw_path mingw32) set(machine_flag -m32) vcpkg_acquire_msys(msys_root NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_fortran_msys_declare_packages" PACKAGES mingw-w64-i686-gcc-fortran ) elseif("${VCPKG_TARGET_ARCHITECTURE}" STREQUAL "x64") set(mingw_path mingw64) set(machine_flag -m64) vcpkg_acquire_msys(msys_root NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_fortran_msys_declare_packages" PACKAGES mingw-w64-x86_64-gcc-fortran ) else() message(FATAL_ERROR "Unknown architecture '${VCPKG_TARGET_ARCHITECTURE}' for MinGW Fortran build!") endif() set(mingw_bin "${msys_root}/${mingw_path}/bin") vcpkg_add_to_path(PREPEND "${mingw_bin}") vcpkg_list(APPEND additional_cmake_args -DCMAKE_GNUtoMS=ON "-DCMAKE_Fortran_COMPILER=${mingw_bin}/gfortran.exe" "-DCMAKE_C_COMPILER=${mingw_bin}/gcc.exe" "-DCMAKE_Fortran_FLAGS_INIT:STRING= -mabi=ms ${machine_flag} ${VCPKG_Fortran_FLAGS}") # This is for private use by vcpkg-gfortran set(vcpkg_find_fortran_MSYS_ROOT "${msys_root}" PARENT_SCOPE) set(VCPKG_USE_INTERNAL_Fortran TRUE PARENT_SCOPE) set(VCPKG_POLICY_SKIP_DUMPBIN_CHECKS enabled PARENT_SCOPE) set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${SCRIPTS}/toolchains/mingw.cmake" PARENT_SCOPE) # Switching to MinGW toolchain for Fortran if(VCPKG_CRT_LINKAGE STREQUAL "static") set(VCPKG_CRT_LINKAGE dynamic PARENT_SCOPE) message(STATUS "VCPKG_CRT_LINKAGE linkage for ${PORT} using vcpkg's internal gfortran cannot be static due to linking against MinGW libraries. Forcing dynamic CRT linkage") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") set(VCPKG_LIBRARY_LINKAGE dynamic PARENT_SCOPE) message(STATUS "VCPKG_LIBRARY_LINKAGE linkage for ${PORT} using vcpkg's internal gfortran cannot be static due to linking against MinGW libraries. Forcing dynamic library linkage") endif() else() message(FATAL_ERROR "Unable to find a Fortran compiler using 'CMakeDetermineFortranCompiler'. Please install one (e.g. gfortran) and make it available on the PATH!") endif() endif() set("${out_var}" "${additional_cmake_args}" PARENT_SCOPE) endfunction() macro(z_vcpkg_find_fortran_msys_declare_packages) # primary package for x86 z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gcc-fortran-15.2.0-8-any.pkg.tar.zst" SHA512 141bb2f0a71b636ea21839396f430015f06a387bf86ff6c001699487fa07e369120ff7ad81448dff8a4ca362b4e6740d2d7ae39347614245ef5546e8506a6463 PROVIDES mingw-w64-i686-fc DEPS mingw-w64-i686-gcc mingw-w64-i686-gcc-libgfortran mingw-w64-i686-gcc-libs mingw-w64-i686-gmp mingw-w64-i686-isl mingw-w64-i686-libwinpthread mingw-w64-i686-mpc mingw-w64-i686-mpfr mingw-w64-i686-zlib mingw-w64-i686-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-binutils-2.45.1-1-any.pkg.tar.zst" SHA512 fc936475811f6367f76c41fcc64ee0658e4087d96f6202284346c070bfd57d870c40fa22457a7f395927b5fa44cb54ae1bc4a9535cb5d41914f51f67264b9e15 DEPS mingw-w64-i686-gettext-runtime mingw-w64-i686-libwinpthread mingw-w64-i686-zlib mingw-w64-i686-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-crt-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 2cc57391e5de42f4eb316007fb67de7b992daa519852e31bbfc33e841676680a56c1f19b5ac83cde35424e47dfe5c7552369a11238b46cbd9717f69f040d6c74 PROVIDES mingw-w64-i686-crt-git DEPS mingw-w64-i686-headers ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gcc-15.2.0-8-any.pkg.tar.zst" SHA512 16cfbe9cb6dfa41ca5848b8922d7f1beec09ceb70eb1477a534c19f9b6c8be38b85aa81b13b4d681e3c439e28e4e21de7caa866238549e175c8b076a61fd37ae PROVIDES mingw-w64-i686-gcc-base mingw-w64-i686-cc DEPS mingw-w64-i686-binutils mingw-w64-i686-crt mingw-w64-i686-gcc-libs mingw-w64-i686-gmp mingw-w64-i686-headers mingw-w64-i686-isl mingw-w64-i686-mpc mingw-w64-i686-mpfr mingw-w64-i686-windows-default-manifest mingw-w64-i686-winpthreads mingw-w64-i686-zlib mingw-w64-i686-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gcc-libgfortran-15.2.0-8-any.pkg.tar.zst" SHA512 3121c9d686940c2917e779eaeefa8c574eea3343f0c8a5cea130a12fe52ef52dede40df7fd1bce88fe12f7885342297c72f7185ca6d4f5fd8272087e1f113304 PROVIDES mingw-w64-i686-fc-libs DEPS mingw-w64-i686-gcc-libs mingw-w64-i686-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gcc-libs-15.2.0-8-any.pkg.tar.zst" SHA512 a6227c930baef588fc07f20aa154387d629a47a62d754d0cbfd3857e76ec3c35acc0cde2f581d26089d68b0ac4a5361c7281541e0498492cb4360f0d1aa3f69d PROVIDES mingw-w64-i686-omp mingw-w64-i686-cc-libs DEPS mingw-w64-i686-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gettext-runtime-0.26-2-any.pkg.tar.zst" SHA512 39f3a292eaca8285d42d68585cd039d048bc61773c4bc49630a214358f5bb34da0346afb07680274bdb35882ce4c36b9e9398524745f464405c94a8076ef6fa1 DEPS mingw-w64-i686-cc-libs mingw-w64-i686-libiconv ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-gmp-6.3.0-2-any.pkg.tar.zst" SHA512 4a9e0ace05ea441fe6cd69b1b1af4c29e35727069ab1f22d0da7febc7aaba219502b5b4dea8b1aa070cb2c8b731da112429c3339fd03fe77828d9fa262b4a818 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-headers-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 ce84caa2807ffd715836e9ceb930ce5ddc5f45c5c2593a40efa9de18f085284919e4b49a92a452dfe66689995d39cefb7f57afc81914aa3d26827dc8c03196fb PROVIDES mingw-w64-i686-headers-git ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-isl-0.27-1-any.pkg.tar.zst" SHA512 070e87552aa0ce77bb9db3b6104c7a3b0d9b5f3515dffc5d03d586693661a9c4681d54ffa6209203bdd568cf111ecae2b26df7472cf40144d6537d655d01b178 DEPS mingw-w64-i686-gmp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-libiconv-1.18-1-any.pkg.tar.zst" SHA512 c45f62552dd57e53b80b2aa541322586255c11846be92ee8554f0c336b9d3f93382cefab613ff3ba61b4cff30a3beb91ccb1f472d89470c4399de81515c52c95 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-libwinpthread-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 b6d73cf15d72ef83faaa61250eaab34cd0fffdc510cdb192c3e657fa37bd08d417cd58dffc20a0a875019cbab977a0a9bc27ce65a8964506a722ebaff22725d9 PROVIDES mingw-w64-i686-libwinpthread-git ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-mpc-1.3.1-2-any.pkg.tar.zst" SHA512 936acdedea20b9892f90ebdb0b75250d1ed3d65487316ee986b8672683b01d4e1f2922387f18ea8d6befb71bf273995d4940ff55b645d07996c98bd50c9382ae DEPS mingw-w64-i686-gmp mingw-w64-i686-mpfr ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-mpfr-4.2.2-1-any.pkg.tar.zst" SHA512 002964eaa63ee3f602c580cedb995564ffd45f2468088af4b7f2096e0da96b2537a377054c60d9550689a66fbe58eb476db581db6935a44685b5c5c097915323 DEPS mingw-w64-i686-gcc-libs mingw-w64-i686-gmp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-windows-default-manifest-6.4-4-any.pkg.tar.zst" SHA512 103f8437e13fb2a839c5eb89f49f5888c71f7934771cf3b2dcca46d520277fe7f7d4841c9d415b454a6a581c6d1f806d6be7f614027df0484f2642ef2563e889 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-winpthreads-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 67b2fae41bdf80beee53e4ea87fecf689a5f50b934c207ebcb11f309c671d46dc0b08bce872659468e24780894f751c7694e747542247ee46d7258e629778a0a PROVIDES mingw-w64-i686-winpthreads-git DEPS mingw-w64-i686-crt mingw-w64-i686-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-zlib-1.3.1-1-any.pkg.tar.zst" SHA512 881cf37f59bfbc3d8a6a6d16226360b63cf3d5abc82bb25fa1d9f871aa3e620fa22a8ae6b0cec619633d08550b72ad289f16b75d5819e3e117de0607125b0140 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw32/mingw-w64-i686-zstd-1.5.7-1-any.pkg.tar.zst" SHA512 fa266dd3628322629412e64ff0f092f2a233ba05a65305cfffbdeeb82d954f681ed23e381cb3a5886034c9723bd40fd993303bdbe99f26fe179a69f3f7f8c4b5 DEPS mingw-w64-i686-gcc-libs ) # primary package for x64 z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-fortran-15.2.0-8-any.pkg.tar.zst" SHA512 8b05c50499a9aa55e68dc8f165af7010ae62667564eecf45466f1ade0795269730fd05c616811b5e9480733281fe0842de54b4e1aed90c89ec33858eb08ae327 PROVIDES mingw-w64-x86_64-fc DEPS mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-libgfortran mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-gmp mingw-w64-x86_64-isl mingw-w64-x86_64-libwinpthread mingw-w64-x86_64-mpc mingw-w64-x86_64-mpfr mingw-w64-x86_64-zlib mingw-w64-x86_64-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-binutils-2.45.1-1-any.pkg.tar.zst" SHA512 0f53fc62006063ad933d7287a7575a8a9342e0954cd611c97b992a54298dea01298fed98cd420843b6098d1654ad230fdc39e375134f1ee74bffd3c652604416 DEPS mingw-w64-x86_64-gettext-runtime mingw-w64-x86_64-libwinpthread mingw-w64-x86_64-zlib mingw-w64-x86_64-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-crt-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 095955c464725fe5d0aa9668ddfb5502deacfa42547e4d829d7a8133d02ba1515e4d7842642d46e2695e7746ab97ba3aea6443dbc9a180f2a77bd8b9dddbbccf PROVIDES mingw-w64-x86_64-crt-git DEPS mingw-w64-x86_64-headers ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-gcc-15.2.0-8-any.pkg.tar.zst" SHA512 d478acf7f206fdf292cb1b4611721cc1a7c31eb1615e2ef29fd4da75f6d3db009e91eff10a08dff6ba51a19877b0a8038eba3030d373cb780d9c5e4df2314c8f PROVIDES mingw-w64-x86_64-gcc-base mingw-w64-x86_64-cc DEPS mingw-w64-x86_64-binutils mingw-w64-x86_64-crt mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-gmp mingw-w64-x86_64-headers mingw-w64-x86_64-isl mingw-w64-x86_64-mpc mingw-w64-x86_64-mpfr mingw-w64-x86_64-windows-default-manifest mingw-w64-x86_64-winpthreads mingw-w64-x86_64-zlib mingw-w64-x86_64-zstd ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-headers-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 c6d2eb9a7d76514dfe3ef807aadcd9fb5e2780308d3dfbba41fcac9734b046b4577eebdeebd0864f6db103f7d79b41bf8840f00f331e41f4ace22239e5780999 PROVIDES mingw-w64-x86_64-headers-git ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-isl-0.27-1-any.pkg.tar.zst" SHA512 879e3a6748f552b9c3574090b8d45fd83ff1cb843eae3924e6025464ecfc9d4883bd3d9e9dbcd54481820a6f5a01b33e3dc8e2c90bc812d8173412ee01a08110 DEPS mingw-w64-x86_64-gmp ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-windows-default-manifest-6.4-4-any.pkg.tar.zst" SHA512 d7e1e4c79f6c7db3bd97305ff89e407a32d3ce9f2a18083b9674538d018651e889efb6fdef00cc79c78f8c07852eab63d7fc705e9567b1ad5684f0a704adeaf3 ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-winpthreads-13.0.0.r391.g848cce552-1-any.pkg.tar.zst" SHA512 3ad4f8d55a2d6929bc13c833c3825592c83506a810e83295d619c5382ee9c6fa1a5ea071f84784ee02b3a9c655e49fae109acc14bb157e68ba0e77c63b0a5e56 PROVIDES mingw-w64-x86_64-winpthreads-git DEPS mingw-w64-x86_64-crt mingw-w64-x86_64-libwinpthread ) z_vcpkg_acquire_msys_declare_package( URL "https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-zstd-1.5.7-1-any.pkg.tar.zst" SHA512 35b8dfb55b22de813ca29cf2c38fe2912616c66c211706ea39551936c3d3b80b663a3d7e57698ca2300d026d9966fe6a36193a1e3503f3ca538f3e9e8ce75b55 DEPS mingw-w64-x86_64-gcc-libs ) endmacro() ================================================ FILE: scripts/cmake/vcpkg_fixup_cmake_targets.cmake ================================================ function(vcpkg_fixup_cmake_targets) if(Z_VCPKG_CMAKE_CONFIG_FIXUP_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-cmake-config; using both vcpkg-cmake-config and vcpkg_fixup_cmake_targets in the same port is unsupported.") endif() cmake_parse_arguments(PARSE_ARGV 0 arg "DO_NOT_DELETE_PARENT_CONFIG_PATH;NO_PREFIX_CORRECTION" "CONFIG_PATH;TARGET_PATH;TOOLS_PATH" "") if(arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_fixup_cmake_targets was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT arg_TARGET_PATH) set(arg_TARGET_PATH share/${PORT}) endif() if(NOT arg_TOOLS_PATH) set(arg_TOOLS_PATH tools/${PORT}) endif() string(REPLACE "." "\\." EXECUTABLE_SUFFIX "${VCPKG_TARGET_EXECUTABLE_SUFFIX}") set(DEBUG_SHARE ${CURRENT_PACKAGES_DIR}/debug/${arg_TARGET_PATH}) set(RELEASE_SHARE ${CURRENT_PACKAGES_DIR}/${arg_TARGET_PATH}) if(arg_CONFIG_PATH AND NOT RELEASE_SHARE STREQUAL "${CURRENT_PACKAGES_DIR}/${arg_CONFIG_PATH}") if(arg_CONFIG_PATH STREQUAL "share") file(RENAME ${CURRENT_PACKAGES_DIR}/debug/share ${CURRENT_PACKAGES_DIR}/debug/share2) file(RENAME ${CURRENT_PACKAGES_DIR}/share ${CURRENT_PACKAGES_DIR}/share2) set(arg_CONFIG_PATH share2) endif() set(DEBUG_CONFIG ${CURRENT_PACKAGES_DIR}/debug/${arg_CONFIG_PATH}) set(RELEASE_CONFIG ${CURRENT_PACKAGES_DIR}/${arg_CONFIG_PATH}) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(NOT EXISTS ${DEBUG_CONFIG}) message(FATAL_ERROR "'${DEBUG_CONFIG}' does not exist.") endif() # This roundabout handling enables CONFIG_PATH share file(MAKE_DIRECTORY ${DEBUG_SHARE}) file(GLOB FILES ${DEBUG_CONFIG}/*) file(COPY ${FILES} DESTINATION ${DEBUG_SHARE}) file(REMOVE_RECURSE ${DEBUG_CONFIG}) endif() file(GLOB FILES ${RELEASE_CONFIG}/*) file(COPY ${FILES} DESTINATION ${RELEASE_SHARE}) file(REMOVE_RECURSE ${RELEASE_CONFIG}) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG} NAME) string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE ${DEBUG_CONFIG}) else() get_filename_component(DEBUG_CONFIG_PARENT_DIR ${DEBUG_CONFIG} DIRECTORY) get_filename_component(DEBUG_CONFIG_DIR_NAME ${DEBUG_CONFIG_PARENT_DIR} NAME) string(TOLOWER "${DEBUG_CONFIG_DIR_NAME}" DEBUG_CONFIG_DIR_NAME) if(DEBUG_CONFIG_DIR_NAME STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE ${DEBUG_CONFIG_PARENT_DIR}) endif() endif() endif() get_filename_component(RELEASE_CONFIG_DIR_NAME ${RELEASE_CONFIG} NAME) string(TOLOWER "${RELEASE_CONFIG_DIR_NAME}" RELEASE_CONFIG_DIR_NAME) if(RELEASE_CONFIG_DIR_NAME STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE ${RELEASE_CONFIG}) else() get_filename_component(RELEASE_CONFIG_PARENT_DIR ${RELEASE_CONFIG} DIRECTORY) get_filename_component(RELEASE_CONFIG_DIR_NAME ${RELEASE_CONFIG_PARENT_DIR} NAME) string(TOLOWER "${RELEASE_CONFIG_DIR_NAME}" RELEASE_CONFIG_DIR_NAME) if(RELEASE_CONFIG_DIR_NAME STREQUAL "cmake" AND NOT arg_DO_NOT_DELETE_PARENT_CONFIG_PATH) file(REMOVE_RECURSE ${RELEASE_CONFIG_PARENT_DIR}) endif() endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") if(NOT EXISTS "${DEBUG_SHARE}") message(FATAL_ERROR "'${DEBUG_SHARE}' does not exist.") endif() endif() file(GLOB_RECURSE UNUSED_FILES "${DEBUG_SHARE}/*[Tt]argets.cmake" "${DEBUG_SHARE}/*[Cc]onfig.cmake" "${DEBUG_SHARE}/*[Cc]onfigVersion.cmake" "${DEBUG_SHARE}/*[Cc]onfig-version.cmake" ) if(UNUSED_FILES) file(REMOVE ${UNUSED_FILES}) endif() file(GLOB_RECURSE RELEASE_TARGETS "${RELEASE_SHARE}/*-release.cmake" ) foreach(RELEASE_TARGET IN LISTS RELEASE_TARGETS) file(READ ${RELEASE_TARGET} _contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \"]+${EXECUTABLE_SUFFIX})" "\${_IMPORT_PREFIX}/${arg_TOOLS_PATH}/\\1" _contents "${_contents}") file(WRITE ${RELEASE_TARGET} "${_contents}") endforeach() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") file(GLOB_RECURSE DEBUG_TARGETS "${DEBUG_SHARE}/*-debug.cmake" ) foreach(DEBUG_TARGET IN LISTS DEBUG_TARGETS) file(RELATIVE_PATH DEBUG_TARGET_REL "${DEBUG_SHARE}" "${DEBUG_TARGET}") file(READ ${DEBUG_TARGET} _contents) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${_IMPORT_PREFIX}" _contents "${_contents}") string(REGEX REPLACE "\\\${_IMPORT_PREFIX}/bin/([^ \";]+${EXECUTABLE_SUFFIX})" "\${_IMPORT_PREFIX}/${arg_TOOLS_PATH}/\\1" _contents "${_contents}") string(REPLACE "\${_IMPORT_PREFIX}/lib" "\${_IMPORT_PREFIX}/debug/lib" _contents "${_contents}") string(REPLACE "\${_IMPORT_PREFIX}/bin" "\${_IMPORT_PREFIX}/debug/bin" _contents "${_contents}") file(WRITE ${RELEASE_SHARE}/${DEBUG_TARGET_REL} "${_contents}") file(REMOVE ${DEBUG_TARGET}) endforeach() endif() #Fix ${_IMPORT_PREFIX} in cmake generated targets and configs; #Since those can be renamed we have to check in every *.cmake file(GLOB_RECURSE MAIN_CMAKES "${RELEASE_SHARE}/*.cmake") foreach(MAIN_CMAKE IN LISTS MAIN_CMAKES) file(READ ${MAIN_CMAKE} _contents) #This correction is not correct for all cases. To make it correct for all cases it needs to consider #original folder deepness to CURRENT_PACKAGES_DIR in comparison to the moved to folder deepness which #is always at least (>=) 2, e.g. share/${PORT}. Currently the code assumes it is always 2 although #this requirement is only true for the *Config.cmake. The targets are not required to be in the same #folder as the *Config.cmake! if(NOT arg_NO_PREFIX_CORRECTION) string(REGEX REPLACE "get_filename_component\\(_IMPORT_PREFIX \"\\\${CMAKE_CURRENT_LIST_FILE}\" PATH\\)(\nget_filename_component\\(_IMPORT_PREFIX \"\\\${_IMPORT_PREFIX}\" PATH\\))*" "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)\nget_filename_component(_IMPORT_PREFIX \"\${_IMPORT_PREFIX}\" PATH)" _contents "${_contents}") # see #1044 for details why this replacement is necessary. See #4782 why it must be a regex. string(REGEX REPLACE "get_filename_component\\(PACKAGE_PREFIX_DIR \"\\\${CMAKE_CURRENT_LIST_DIR}/\\.\\./(\\.\\./)*\" ABSOLUTE\\)" "get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../\" ABSOLUTE)" _contents "${_contents}") string(REGEX REPLACE "get_filename_component\\(PACKAGE_PREFIX_DIR \"\\\${CMAKE_CURRENT_LIST_DIR}/\\.\\.((\\\\|/)\\.\\.)*\" ABSOLUTE\\)" "get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/../../\" ABSOLUTE)" _contents "${_contents}") # This is a meson-related workaround, see https://github.com/mesonbuild/meson/issues/6955 endif() #Fix wrongly absolute paths to install dir with the correct dir using ${_IMPORT_PREFIX} #This happens if vcpkg built libraries are directly linked to a target instead of using #an imported target for it. We could add more logic here to identify defect target files. #Since the replacement here in a multi config build always requires a generator expression #in front of the absoulte path to ${CURRENT_INSTALLED_DIR}. So the match should always be at #least >:${CURRENT_INSTALLED_DIR}. #In general the following generator expressions should be there: #\$<\$:${CURRENT_INSTALLED_DIR}/debug/lib/somelib> #and/or #\$<\$>:${CURRENT_INSTALLED_DIR}/lib/somelib> #with ${CURRENT_INSTALLED_DIR} being fully expanded string(REPLACE "${CURRENT_INSTALLED_DIR}" [[${_IMPORT_PREFIX}]] _contents "${_contents}") file(WRITE ${MAIN_CMAKE} "${_contents}") endforeach() # Remove /debug// if it's empty. file(GLOB_RECURSE REMAINING_FILES "${DEBUG_SHARE}/*") if(NOT REMAINING_FILES) file(REMOVE_RECURSE ${DEBUG_SHARE}) endif() # Remove /debug/share/ if it's empty. file(GLOB_RECURSE REMAINING_FILES "${CURRENT_PACKAGES_DIR}/debug/share/*") if(NOT REMAINING_FILES) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) endif() # Patch out any remaining absolute references file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}" CMAKE_CURRENT_PACKAGES_DIR) file(GLOB CMAKE_FILES ${RELEASE_SHARE}/*.cmake) foreach(CMAKE_FILE IN LISTS CMAKE_FILES) file(READ ${CMAKE_FILE} _contents) string(REPLACE "${CMAKE_CURRENT_PACKAGES_DIR}" "\${CMAKE_CURRENT_LIST_DIR}/../.." _contents "${_contents}") file(WRITE ${CMAKE_FILE} "${_contents}") endforeach() endfunction() ================================================ FILE: scripts/cmake/vcpkg_fixup_pkgconfig.cmake ================================================ function(z_vcpkg_fixup_pkgconfig_process_data arg_variable arg_config arg_prefix) # This normalizes all data to start and to end with a newline, and # to use LF instead of CRLF. This allows to use simpler regex matches. string(REPLACE "\r\n" "\n" contents "\n${${arg_variable}}\n") # We use ${pcfiledir} for relocatable pc files, and on windows, # pkgconf initializes ${pc_sysrootdir} to invalid '/'. string(REPLACE [[${pc_sysrootdir}]] "" contents "${contents}") string(REPLACE "${CURRENT_PACKAGES_DIR}" [[${prefix}]] contents "${contents}") string(REPLACE "${CURRENT_INSTALLED_DIR}" [[${prefix}]] contents "${contents}") if(VCPKG_HOST_IS_WINDOWS) string(REGEX REPLACE "^([a-zA-Z]):/" [[/\1/]] unix_packages_dir "${CURRENT_PACKAGES_DIR}") string(REPLACE "${unix_packages_dir}" [[${prefix}]] contents "${contents}") string(REGEX REPLACE "^([a-zA-Z]):/" [[/\1/]] unix_installed_dir "${CURRENT_INSTALLED_DIR}") string(REPLACE "${unix_installed_dir}" [[${prefix}]] contents "${contents}") endif() string(REGEX REPLACE "\n[\t ]*prefix[\t ]*=[^\n]*" "" contents "prefix=${arg_prefix}${contents}") if("${arg_config}" STREQUAL "DEBUG") # prefix points at the debug subfolder string(REPLACE [[${prefix}/debug]] [[${prefix}]] contents "${contents}") string(REPLACE [[${prefix}/include]] [[${prefix}/../include]] contents "${contents}") string(REPLACE [[${prefix}/share]] [[${prefix}/../share]] contents "${contents}") endif() # Remove line continuations before transformations string(REGEX REPLACE "[ \t]*\\\\\n[ \t]*" " " contents "${contents}") # This section fuses XYZ.private and XYZ according to VCPKG_LIBRARY_LINKAGE # # Pkgconfig searches Requires.private transitively for Cflags in the dynamic case, # which prevents us from removing it. # # Once this transformation is complete, users of vcpkg should never need to pass # --static. if("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") # how this works: # we want to transform: # Libs: $1 # Libs.private: $2 # into # Libs: $1 $2 # and the same thing for Requires and Requires.private foreach(item IN ITEMS "Libs" "Requires" "Cflags") set(line "") if("${contents}" MATCHES "\n${item}: *([^\n]*)") string(APPEND line " ${CMAKE_MATCH_1}") endif() if("${contents}" MATCHES "\n${item}\\.private: *([^\n]*)") string(APPEND line " ${CMAKE_MATCH_1}") endif() string(REGEX REPLACE "\n${item}(\\.private)?:[^\n]*" "" contents "${contents}") if(NOT "${line}" STREQUAL "") string(APPEND contents "${item}:${line}\n") endif() endforeach() endif() if(contents MATCHES "\nLibs: *([^\n]*)") set(libs "${CMAKE_MATCH_1}") if(libs MATCHES [[;]]) # Assuming that ';' comes from CMake lists only. Candidate for parameter control. string(REPLACE ";" " " no_lists "${libs}") string(REPLACE "${libs}" "${no_lists}" contents "${contents}") set(libs "${no_lists}") endif() separate_arguments(libs_list UNIX_COMMAND "${libs}") set(skip_next 0) set(libs_filtered "") foreach(item IN LISTS libs_list) if(skip_next) set(skip_next 0) continue() elseif(item MATCHES "^(-l|-L)?optimized\$") string(COMPARE EQUAL "${arg_config}" "DEBUG" skip_next) continue() elseif(item MATCHES "^(-l|-L)?debug\$") string(COMPARE EQUAL "${arg_config}" "RELEASE" skip_next) continue() elseif(item MATCHES "^(-l|-L)?general\$") continue() endif() if(item MATCHES [[.[\$]| ]] AND NOT item MATCHES [["]]) set(item "\"${item}\"") else() set(quoted "\"${item}\"") string(FIND " ${libs} " " ${quoted} " index) if(NOT index STREQUAL "-1") set(item "${quoted}") endif() endif() list(APPEND libs_filtered "${item}") endforeach() list(JOIN libs_filtered " " libs_filtered) string(REPLACE "${libs}" "${libs_filtered}" contents "${contents}") set(libs "${libs_filtered}") if(libs MATCHES "[^ ]*-NOTFOUND") message(WARNING "Error in ${file}: 'Libs' refers to a missing lib:\n...${CMAKE_MATCH_0}") endif() if(libs MATCHES "[^\n]*::[^\n ]*") message(WARNING "Error in ${file}: 'Libs' refers to a CMake target:\n...${CMAKE_MATCH_0}") endif() endif() # Quote -L, -I, and -l paths starting with `${blah}` # This was already handled for "Libs", but there might be additional occurrences in other lines. string(REGEX REPLACE "([ =])(-[LIl]\\\${[^}]*}[^ ;\n\t]*)" [[\1"\2"]] contents "${contents}") set("${arg_variable}" "${contents}" PARENT_SCOPE) endfunction() function(z_vcpkg_fixup_pkgconfig_check_files arg_file arg_config) set(path_suffix_DEBUG /debug) set(path_suffix_RELEASE "") z_vcpkg_setup_pkgconfig_path(CONFIG "${arg_config}") # First make sure everything is ok with the package and its deps cmake_path(GET arg_file STEM LAST_ONLY package_name) debug_message("Checking package (${arg_config}): ${package_name}") execute_process( COMMAND "${PKGCONFIG}" --print-errors --exists "${package_name}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" RESULT_VARIABLE error_var OUTPUT_VARIABLE output ERROR_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_STRIP_TRAILING_WHITESPACE ) if(NOT "${error_var}" EQUAL "0") message(FATAL_ERROR "${PKGCONFIG} --exists ${package_name} failed with error code: ${error_var} ENV{PKG_CONFIG_PATH}: \"$ENV{PKG_CONFIG_PATH}\" output: ${output}" ) else() debug_message("pkg-config --exists ${package_name} output: ${output}") endif() z_vcpkg_restore_pkgconfig_path() endfunction() function(vcpkg_fixup_pkgconfig) cmake_parse_arguments(PARSE_ARGV 0 arg "SKIP_CHECK" "" "RELEASE_FILES;DEBUG_FILES;SYSTEM_LIBRARIES;SYSTEM_PACKAGES;IGNORE_FLAGS" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED arg_RELEASE_FILES AND NOT DEFINED arg_DEBUG_FILES) message(FATAL_ERROR "DEBUG_FILES must be specified if RELEASE_FILES was specified.") endif() if(NOT DEFINED arg_RELEASE_FILES AND DEFINED arg_DEBUG_FILES) message(FATAL_ERROR "RELEASE_FILES must be specified if DEBUG_FILES was specified.") endif() if(NOT DEFINED arg_RELEASE_FILES) file(GLOB_RECURSE arg_RELEASE_FILES "${CURRENT_PACKAGES_DIR}/**/*.pc") file(GLOB_RECURSE arg_DEBUG_FILES "${CURRENT_PACKAGES_DIR}/debug/**/*.pc") foreach(debug_file IN LISTS arg_DEBUG_FILES) vcpkg_list(REMOVE_ITEM arg_RELEASE_FILES "${debug_file}") endforeach() endif() foreach(config IN ITEMS RELEASE DEBUG) debug_message("${config} Files: ${arg_${config}_FILES}") if("${VCPKG_BUILD_TYPE}" STREQUAL "release" AND "${config}" STREQUAL "DEBUG") continue() endif() foreach(file IN LISTS "arg_${config}_FILES") message(STATUS "Fixing pkgconfig file: ${file}") cmake_path(GET file PARENT_PATH pkg_lib_search_path) if("${config}" STREQUAL "DEBUG") set(relative_pc_path "${CURRENT_PACKAGES_DIR}/debug") cmake_path(RELATIVE_PATH relative_pc_path BASE_DIRECTORY "${pkg_lib_search_path}") else() set(relative_pc_path "${CURRENT_PACKAGES_DIR}") cmake_path(RELATIVE_PATH relative_pc_path BASE_DIRECTORY "${pkg_lib_search_path}") endif() #Correct *.pc file file(READ "${file}" contents) z_vcpkg_fixup_pkgconfig_process_data(contents "${config}" "\${pcfiledir}/${relative_pc_path}") file(WRITE "${file}" "${contents}") endforeach() if(NOT arg_SKIP_CHECK) # The check can only run after all files have been corrected! vcpkg_find_acquire_program(PKGCONFIG) debug_message("Using pkg-config from: ${PKGCONFIG}") foreach(file IN LISTS "arg_${config}_FILES") z_vcpkg_fixup_pkgconfig_check_files("${file}" "${config}") endforeach() endif() endforeach() debug_message("Fixing pkgconfig --- finished") set(Z_VCPKG_FIXUP_PKGCONFIG_CALLED TRUE CACHE INTERNAL "See below" FORCE) # Variable to check if this function has been called! # Theoreotically vcpkg could look for *.pc files and automatically call this function # or check if this function has been called if *.pc files are detected. # The same is true for vcpkg_fixup_cmake_targets endfunction() ================================================ FILE: scripts/cmake/vcpkg_from_bitbucket.cmake ================================================ function(vcpkg_from_bitbucket) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "OUT_SOURCE_PATH;REPO;REF;SHA512;HEAD_REF" "PATCHES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_from_bitbucket was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED arg_REF AND NOT DEFINED arg_SHA512) message(FATAL_ERROR "SHA512 must be specified if REF is specified.") endif() if(NOT DEFINED arg_REF AND DEFINED arg_SHA512) message(FATAL_ERROR "REF must be specified if SHA512 is specified.") endif() if(NOT DEFINED arg_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.") endif() if(NOT DEFINED arg_REPO) message(FATAL_ERROR "The Bitbucket repository must be specified.") endif() if(NOT DEFINED arg_REF AND NOT DEFINED arg_HEAD_REF) message(FATAL_ERROR "At least one of REF or HEAD_REF must be specified.") endif() if(NOT arg_REPO MATCHES "^([^/]*)/([^/]*)$") message(FATAL_ERROR "REPO (${arg_REPO}) is not a valid repo name: must be an organization name followed by a repository name separated by a single slash.") endif() set(org_name "${CMAKE_MATCH_1}") set(repo_name "${CMAKE_MATCH_2}") set(redownload_param "") set(working_directory_param "") set(sha512_param "SHA512" "${arg_SHA512}") set(ref_to_use "${arg_REF}") if(VCPKG_USE_HEAD_VERSION) if(DEFINED arg_HEAD_REF) set(redownload_param "ALWAYS_REDOWNLOAD") set(sha512_param "SKIP_SHA512") set(working_directory_param "WORKING_DIRECTORY" "${CURRENT_BUILDTREES_DIR}/src/head") set(ref_to_use "${arg_HEAD_REF}") else() message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") endif() elseif(NOT DEFINED arg_REF) message(FATAL_ERROR "Package does not specify REF. It must be built using --head.") endif() # avoid using either - or _, to allow both `foo/bar` and `foo-bar` to coexist # we assume that no one will name a ref "foo_-bar" string(REPLACE "/" "_-" sanitized_ref "${ref_to_use}") set(downloaded_file_name "${org_name}-${repo_name}-${sanitized_ref}.tar.gz") # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. if(VCPKG_USE_HEAD_VERSION) vcpkg_download_distfile(archive_version URLS "https://api.bitbucket.com/2.0/repositories/${org_name}/${repo_name}/refs/branches/${arg_HEAD_REF}" FILENAME "${downloaded_file_name}.version" SKIP_SHA512 ALWAYS_REDOWNLOAD ) # Parse the github refs response with regex. # TODO: add json-pointer support to vcpkg file(READ "${archive_version}" version_contents) if(NOT version_contents MATCHES [["hash": "([a-f0-9]+)"]]) message(FATAL_ERROR "Failed to parse API response from '${version_url}': ${version_contents} ") endif() set(VCPKG_HEAD_VERSION "${CMAKE_MATCH_1}" PARENT_SCOPE) endif() # download the file information from bitbucket. vcpkg_download_distfile(archive URLS "https://bitbucket.com/${org_name}/${repo_name}/get/${ref_to_use}.tar.gz" FILENAME "${downloaded_file_name}" ${sha512_param} ${redownload_param} ) vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${archive}" REF "${sanitized_ref}" PATCHES ${arg_PATCHES} ${working_directory_param} ) set("${arg_OUT_SOURCE_PATH}" "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_from_git.cmake ================================================ function(vcpkg_from_git) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "OUT_SOURCE_PATH;URL;REF;FETCH_REF;HEAD_REF;TAG;LFS" "PATCHES" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_from_git was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED arg_TAG) message(WARNING "The TAG argument to vcpkg_from_git has been deprecated and has no effect.") endif() if(NOT DEFINED arg_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified") endif() if(NOT DEFINED arg_URL) message(FATAL_ERROR "URL must be specified") endif() if(NOT DEFINED arg_REF AND NOT DEFINED arg_HEAD_REF) message(FATAL_ERROR "At least one of REF or HEAD_REF must be specified") endif() if(DEFINED arg_FETCH_REF AND NOT DEFINED arg_REF) message(FATAL_ERROR "REF must be specified if FETCH_REF is specified") endif() if(DEFINED arg_LFS AND arg_LFS STREQUAL "") set(arg_LFS "${arg_URL}") endif() vcpkg_list(SET git_fetch_shallow_param --depth 1) vcpkg_list(SET extract_working_directory_param) vcpkg_list(SET skip_patch_check_param) set(git_working_directory "${DOWNLOADS}/git-tmp") set(do_download OFF) if(VCPKG_USE_HEAD_VERSION AND DEFINED arg_HEAD_REF) vcpkg_list(SET working_directory_param "WORKING_DIRECTORY" "${CURRENT_BUILDTREES_DIR}/src/head") vcpkg_list(SET git_fetch_shallow_param --depth 1) vcpkg_list(SET skip_patch_check_param SKIP_PATCH_CHECK) set(ref_to_fetch "${arg_HEAD_REF}") set(git_working_directory "${CURRENT_BUILDTREES_DIR}/src/git-tmp") string(REPLACE "/" "_-" sanitized_ref "${arg_HEAD_REF}") if(NOT _VCPKG_NO_DOWNLOADS) set(do_download ON) endif() else() if(NOT DEFINED arg_REF) message(FATAL_ERROR "Package does not specify REF. It must be built using --head.") endif() if(VCPKG_USE_HEAD_VERSION) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") endif() if(DEFINED arg_FETCH_REF) set(ref_to_fetch "${arg_FETCH_REF}") vcpkg_list(SET git_fetch_shallow_param) else() set(ref_to_fetch "${arg_REF}") endif() string(REPLACE "/" "_-" sanitized_ref "${arg_REF}") endif() set(temp_archive "${DOWNLOADS}/temp/${PORT}-${sanitized_ref}.tar.gz") set(archive "${DOWNLOADS}/${PORT}-${sanitized_ref}.tar.gz") if(NOT EXISTS "${archive}") if(_VCPKG_NO_DOWNLOADS) message(FATAL_ERROR "Downloads are disabled, but '${archive}' does not exist.") endif() set(do_download ON) endif() if(do_download) message(STATUS "Fetching ${arg_URL} ${ref_to_fetch}...") find_program(GIT NAMES git git.cmd) file(MAKE_DIRECTORY "${DOWNLOADS}") # Note: git init is safe to run multiple times vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${GIT}" init "${git_working_directory}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "git-init-${TARGET_TRIPLET}" ) vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${GIT}" fetch "${arg_URL}" "${ref_to_fetch}" ${git_fetch_shallow_param} -n WORKING_DIRECTORY "${git_working_directory}" LOGNAME "git-fetch-${TARGET_TRIPLET}" ) if(arg_LFS) # Running "git lfs" searches for "git-lfs[.exe]" on the path vcpkg_execute_in_download_mode( COMMAND "${GIT}" lfs --version OUTPUT_VARIABLE lfs_version_output ERROR_VARIABLE lfs_version_error RESULT_VARIABLE lfs_version_result WORKING_DIRECTORY "${git_working_directory}" ) if(lfs_version_result) message(FATAL_ERROR "Git LFS is required for ${PORT}") endif() vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${GIT}" lfs install --local --force WORKING_DIRECTORY "${git_working_directory}" LOGNAME "git-lfs-install-${TARGET_TRIPLET}" ) vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${GIT}" lfs fetch "${arg_LFS}" "${ref_to_fetch}" WORKING_DIRECTORY "${git_working_directory}" LOGNAME "git-lfs-fetch-${TARGET_TRIPLET}" ) endif() if(VCPKG_USE_HEAD_VERSION) set(expected_rev_parse FETCH_HEAD) else() set(expected_rev_parse "${arg_REF}") endif() vcpkg_execute_in_download_mode( COMMAND "${GIT}" rev-parse "${expected_rev_parse}" OUTPUT_VARIABLE rev_parse_ref ERROR_VARIABLE rev_parse_ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_working_directory}" ) if(error_code) if(VCPKG_USE_HEAD_VERSION) message(FATAL_ERROR "Unable to determine the commit SHA of the HEAD version to use after \ fetching ${ref_to_fetch} from the git repository. (git rev-parse ${expected_rev_parse} failed)") elseif(DEFINED arg_FETCH_REF) message(FATAL_ERROR "After fetching ${ref_to_fetch}, the target ref ${expected_rev_parse} appears \ inaccessible. A common cause of this failure is setting REF to a named branch or tag rather than a commit SHA. REF \ must be a commit SHA. (git rev-parse ${expected_rev_parse} failed)") else() message(FATAL_ERROR "After fetching ${ref_to_fetch}, the target ref ${expected_rev_parse} appears \ inaccessible. A common cause of this failure is setting REF to a named branch or tag rather than a commit SHA. REF \ must be a commit SHA. If the git server does not advertise commit SHAs \ (uploadpack.allowReachableSHA1InWant is false), you can set FETCH_REF to a named branch in which the desired commit \ SHA is in the history. For example, you may be able to fix this error by changing \"REF ${arg_REF}\" to \ \"REF a-commit-sha FETCH_REF ${arg_REF}\". (git rev-parse ${expected_rev_parse} failed)") endif() endif() string(STRIP "${rev_parse_ref}" rev_parse_ref) if(VCPKG_USE_HEAD_VERSION) set(VCPKG_HEAD_VERSION "${rev_parse_ref}" PARENT_SCOPE) elseif(NOT "${rev_parse_ref}" STREQUAL "${arg_REF}") message(FATAL_ERROR "After fetching ${ref_to_fetch}, the requested REF (${arg_REF}) does not match \ its commit SHA returned by git rev-parse (${rev_parse_ref}). This is usually caused by trying to set REF to a named \ branch or tag rather than a commit SHA. REF must be a commit SHA. If the git server does not advertise commit SHAs \ (uploadpack.allowReachableSHA1InWant is false), you can set FETCH_REF to a named branch in which the desired commit \ SHA is in the history. For example, you may be able to fix this error by changing \"REF ${arg_REF}\" to \ \"REF a-commit-sha FETCH_REF ${arg_REF}\". [Expected : ( ${arg_REF} )]) [ Actual : ( ${rev_parse_ref} )]" ) endif() file(MAKE_DIRECTORY "${DOWNLOADS}/temp") vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE COMMAND "${GIT}" -c core.autocrlf=false archive "${rev_parse_ref}" -o "${temp_archive}" WORKING_DIRECTORY "${git_working_directory}" LOGNAME git-archive ) file(RENAME "${temp_archive}" "${archive}") else() message(STATUS "Using cached ${archive}") endif() vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${archive}" REF "${sanitized_ref}" PATCHES ${arg_PATCHES} NO_REMOVE_ONE_LEVEL ${extract_working_directory_param} ${skip_patch_check_param} ) set("${arg_OUT_SOURCE_PATH}" "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_from_github.cmake ================================================ function(vcpkg_from_github) cmake_parse_arguments(PARSE_ARGV 0 "arg" "USE_TARBALL_API" "OUT_SOURCE_PATH;REPO;REF;SHA512;HEAD_REF;GITHUB_HOST;AUTHORIZATION_TOKEN;FILE_DISAMBIGUATOR" "PATCHES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_from_github was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED arg_REF AND NOT DEFINED arg_SHA512) message(FATAL_ERROR "SHA512 must be specified if REF is specified.") endif() if(NOT DEFINED arg_REF AND DEFINED arg_SHA512) message(FATAL_ERROR "REF must be specified if SHA512 is specified.") endif() if(NOT DEFINED arg_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.") endif() if(NOT DEFINED arg_REPO) message(FATAL_ERROR "The GitHub repository must be specified.") endif() if(NOT DEFINED arg_GITHUB_HOST) set(github_host "https://github.com") set(github_api_url "https://api.github.com") else() set(github_host "${arg_GITHUB_HOST}") set(github_api_url "${arg_GITHUB_HOST}/api/v3") endif() set(headers_param "") if(DEFINED arg_AUTHORIZATION_TOKEN) set(headers_param "HEADERS" "Authorization: token ${arg_AUTHORIZATION_TOKEN}") endif() if(NOT DEFINED arg_REF AND NOT DEFINED arg_HEAD_REF) message(FATAL_ERROR "At least one of REF or HEAD_REF must be specified.") endif() if(NOT arg_REPO MATCHES "^([^/]*)/([^/]*)$") message(FATAL_ERROR "REPO (${arg_REPO}) is not a valid repo name: must be an organization name followed by a repository name separated by a single slash.") endif() set(org_name "${CMAKE_MATCH_1}") set(repo_name "${CMAKE_MATCH_2}") if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED arg_HEAD_REF) message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") set(VCPKG_USE_HEAD_VERSION OFF) elseif(NOT VCPKG_USE_HEAD_VERSION AND NOT DEFINED arg_REF) message(FATAL_ERROR "Package does not specify REF. It must be built using --head.") endif() # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. if(VCPKG_USE_HEAD_VERSION) string(REPLACE "/" "_-" sanitized_head_ref "${arg_HEAD_REF}") vcpkg_download_distfile(archive_version URLS "${github_api_url}/repos/${org_name}/${repo_name}/git/refs/heads/${arg_HEAD_REF}" FILENAME "${org_name}-${repo_name}-${sanitized_head_ref}.version" ${headers_param} SKIP_SHA512 ALWAYS_REDOWNLOAD ) # Parse the github refs response with regex. file(READ "${archive_version}" version_contents) string(JSON head_version ERROR_VARIABLE head_version_err GET "${version_contents}" "object" "sha" ) if(NOT "${head_version_err}" STREQUAL "NOTFOUND") message(FATAL_ERROR "Failed to parse API response from '${version_url}': ${version_contents} Error was: ${head_version_err} ") endif() set(VCPKG_HEAD_VERSION "${head_version}" PARENT_SCOPE) set(ref_to_use "${head_version}") vcpkg_list(SET redownload_param ALWAYS_REDOWNLOAD) vcpkg_list(SET sha512_param SKIP_SHA512) vcpkg_list(SET working_directory_param WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/src/head") vcpkg_list(SET skip_patch_check_param SKIP_PATCH_CHECK) else() set(ref_to_use "${arg_REF}") vcpkg_list(SET redownload_param) vcpkg_list(SET working_directory_param) vcpkg_list(SET skip_patch_check_param) vcpkg_list(SET sha512_param SHA512 "${arg_SHA512}") endif() string(REPLACE "/" "_-" sanitized_ref "${ref_to_use}") if(DEFINED arg_FILE_DISAMBIGUATOR AND NOT VCPKG_USE_HEAD_REF) set(downloaded_file_name "${org_name}-${repo_name}-${sanitized_ref}-${arg_FILE_DISAMBIGUATOR}.tar.gz") else() set(downloaded_file_name "${org_name}-${repo_name}-${sanitized_ref}.tar.gz") endif() if(arg_USE_TARBALL_API) # This alternative endpoint has a better support for GitHub's personal # access tokens (for instance when there is SSO enabled within the # organization). set(download_url "${github_api_url}/repos/${org_name}/${repo_name}/tarball/${ref_to_use}" ) else() set(download_url "${github_host}/${org_name}/${repo_name}/archive/${ref_to_use}.tar.gz" ) endif() # Try to download the file information from github vcpkg_download_distfile(archive URLS "${download_url}" FILENAME "${downloaded_file_name}" ${headers_param} ${sha512_param} ${redownload_param} ) vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${archive}" REF "${sanitized_ref}" PATCHES ${arg_PATCHES} ${working_directory_param} ${skip_patch_check_param} ) set("${arg_OUT_SOURCE_PATH}" "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_from_gitlab.cmake ================================================ include(vcpkg_execute_in_download_mode) function(z_uri_encode input output_variable) string(HEX "${input}" hex) string(LENGTH "${hex}" length) math(EXPR last "${length} - 1") set(result "") foreach(i RANGE ${last}) math(EXPR even "${i} % 2") if("${even}" STREQUAL "0") string(SUBSTRING "${hex}" "${i}" 2 char) string(APPEND result "%${char}") endif() endforeach() set("${output_variable}" ${result} PARENT_SCOPE) endfunction() function(vcpkg_from_gitlab) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "OUT_SOURCE_PATH;GITLAB_URL;REPO;REF;SHA512;HEAD_REF;FILE_DISAMBIGUATOR;AUTHORIZATION_TOKEN" "PATCHES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_from_gitlab was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_GITLAB_URL) message(FATAL_ERROR "GITLAB_URL must be specified.") endif() if(DEFINED arg_REF AND NOT DEFINED arg_SHA512) message(FATAL_ERROR "SHA512 must be specified if REF is specified.") endif() if(NOT DEFINED arg_REF AND DEFINED arg_SHA512) message(FATAL_ERROR "REF must be specified if SHA512 is specified.") endif() if(NOT DEFINED arg_OUT_SOURCE_PATH) message(FATAL_ERROR "OUT_SOURCE_PATH must be specified.") endif() if(NOT DEFINED arg_REPO) message(FATAL_ERROR "The GitHub repository must be specified.") endif() set(headers_param "") if(DEFINED arg_AUTHORIZATION_TOKEN) set(headers_param "HEADERS" "PRIVATE-TOKEN: ${arg_AUTHORIZATION_TOKEN}") endif() if(NOT DEFINED arg_REF AND NOT DEFINED arg_HEAD_REF) message(FATAL_ERROR "At least one of REF or HEAD_REF must be specified.") endif() if (NOT arg_REPO MATCHES [[^([^/;]+/)+([^/;]+)$]]) message(FATAL_ERROR "REPO (${arg_REPO}) is not a valid repo name. It must be: - an organization name followed by a repository name separated by a single slash, or - an organization name, group name, subgroup names and repository name separated by slashes.") endif() set(gitlab_link "${arg_GITLAB_URL}/${arg_REPO}") string(REPLACE "/" "-" downloaded_file_name_base "${arg_REPO}") string(REPLACE "/" ";" repo_parts "${arg_REPO}") list(GET repo_parts -1 repo_name) set(redownload_param "") set(working_directory_param "") set(sha512_param "SHA512" "${arg_SHA512}") set(ref_to_use "${arg_REF}") if(VCPKG_USE_HEAD_VERSION) if(DEFINED arg_HEAD_REF) set(redownload_param "ALWAYS_REDOWNLOAD") set(sha512_param "SKIP_SHA512") set(working_directory_param "WORKING_DIRECTORY" "${CURRENT_BUILDTREES_DIR}/src/head") set(ref_to_use "${arg_HEAD_REF}") else() message(STATUS "Package does not specify HEAD_REF. Falling back to non-HEAD version.") endif() elseif(NOT DEFINED arg_REF) message(FATAL_ERROR "Package does not specify REF. It must be built using --head.") endif() # avoid using either - or _, to allow both `foo/bar` and `foo-bar` to coexist # we assume that no one will name a ref "foo_-bar" string(REPLACE "/" "_-" sanitized_ref "${ref_to_use}") if(DEFINED arg_FILE_DISAMBIGUATOR AND NOT VCPKG_USE_HEAD_VERSION) set(downloaded_file_name "${downloaded_file_name_base}-${sanitized_ref}-${arg_FILE_DISAMBIGUATOR}.tar.gz") else() set(downloaded_file_name "${downloaded_file_name_base}-${sanitized_ref}.tar.gz") endif() # exports VCPKG_HEAD_VERSION to the caller. This will get picked up by ports.cmake after the build. # When multiple vcpkg_from_gitlab's are used after each other, only use the version from the first (hopefully the primary one). if(VCPKG_USE_HEAD_VERSION AND NOT DEFINED VCPKG_HEAD_VERSION) z_uri_encode("${arg_REPO}" encoded_repo_path) set(version_url "${arg_GITLAB_URL}/api/v4/projects/${encoded_repo_path}/repository/branches/${arg_HEAD_REF}") vcpkg_download_distfile(archive_version URLS "${version_url}" FILENAME "${downloaded_file_name}.version" ${headers_param} SKIP_SHA512 ALWAYS_REDOWNLOAD ) # Parse the gitlab response with regex. file(READ "${archive_version}" version_contents) if(NOT version_contents MATCHES [["id":(\ *)"([a-f0-9]+)"]]) message(FATAL_ERROR "Failed to parse API response from '${version_url}':\n${version_contents}\n") endif() set(VCPKG_HEAD_VERSION "${CMAKE_MATCH_2}" PARENT_SCOPE) endif() # download the file information from gitlab vcpkg_download_distfile(archive URLS "${gitlab_link}/-/archive/${ref_to_use}/${repo_name}-${ref_to_use}.tar.gz" FILENAME "${downloaded_file_name}" ${headers_param} ${sha512_param} ${redownload_param} ) vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${archive}" REF "${sanitized_ref}" PATCHES ${arg_PATCHES} ${working_directory_param} ) set("${arg_OUT_SOURCE_PATH}" "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_from_sourceforge.cmake ================================================ function(vcpkg_from_sourceforge) cmake_parse_arguments(PARSE_ARGV 0 "arg" "DISABLE_SSL;NO_REMOVE_ONE_LEVEL" "OUT_SOURCE_PATH;REPO;REF;SHA512;FILENAME;WORKING_DIRECTORY" "PATCHES") foreach(arg_name IN ITEMS OUT_SOURCE_PATH SHA512 REPO FILENAME) if(NOT DEFINED "arg_${arg_name}") message(FATAL_ERROR "${arg_name} is required.") endif() endforeach() if(arg_DISABLE_SSL) message(WARNING "DISABLE_SSL has been deprecated and has no effect") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Unrecognized arguments: ${arg_UNPARSED_ARGUMENTS}") endif() vcpkg_download_sourceforge(ARCHIVE REPO "${arg_REPO}" REF "${arg_REF}" SHA512 "${arg_SHA512}" FILENAME "${arg_FILENAME}" ) set(no_remove_one_level_param "") if(arg_NO_REMOVE_ONE_LEVEL) set(no_remove_one_level_param "NO_REMOVE_ONE_LEVEL") endif() set(working_directory_param "") if(DEFINED arg_WORKING_DIRECTORY) set(working_directory_param "WORKING_DIRECTORY" "${arg_WORKING_DIRECTORY}") endif() vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${ARCHIVE}" REF "${sanitized_ref}" ${no_remove_one_level_param} ${working_directory_param} PATCHES ${arg_PATCHES} ) set("${arg_OUT_SOURCE_PATH}" "${SOURCE_PATH}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/vcpkg_get_program_files_platform_bitness.cmake ================================================ function(vcpkg_get_program_files_platform_bitness out_var) if(DEFINED ENV{ProgramW6432}) set("${out_var}" "$ENV{ProgramW6432}" PARENT_SCOPE) else() set("${out_var}" "$ENV{PROGRAMFILES}" PARENT_SCOPE) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_get_windows_sdk.cmake ================================================ function(vcpkg_get_windows_sdk out_var) if("$ENV{WindowsSDKVersion}" MATCHES [[^([0-9.]*)(\\|/)?$]]) set("${out_var}" "${CMAKE_MATCH_1}" PARENT_SCOPE) else() message(FATAL_ERROR "Unexpected format for ENV{WindowsSDKVersion} ($ENV{WindowsSDKVersion})") endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_host_path_list.cmake ================================================ function(vcpkg_host_path_list) if("${ARGC}" LESS "2") message(FATAL_ERROR "vcpkg_host_path_list requires at least two arguments.") endif() if("${ARGV1}" MATCHES "^ARGV([0-9]*)$|^ARG[CN]$|^CMAKE_CURRENT_FUNCTION|^CMAKE_MATCH_") message(FATAL_ERROR "vcpkg_host_path_list does not support the list_var being ${ARGV1}. Please use a different variable name.") endif() if("${ARGV1}" MATCHES [[^ENV\{(.*)\}$]]) set(list "$ENV{${CMAKE_MATCH_1}}") set(env_var ON) elseif("${ARGV1}" MATCHES [[^([A-Z]+)\{.*\}$]]) message(FATAL_ERROR "vcpkg_host_path_list does not support ${CMAKE_MATCH_1} variables; only ENV{} and regular variables are supported.") else() set(list "${${ARGV1}}") set(env_var OFF) endif() set(operation "${ARGV0}") set(list_var "${ARGV1}") cmake_parse_arguments(PARSE_ARGV 2 arg "" "" "") set(bad_items "${arg_UNPARSED_ARGUMENTS}") list(FILTER bad_items INCLUDE REGEX "[${VCPKG_HOST_PATH_SEPARATOR}]") if(NOT "${bad_items}" STREQUAL "") message(FATAL_ERROR "Host path separator (${VCPKG_HOST_PATH_SEPARATOR}) in path; this is unsupported.") endif() if("${operation}" STREQUAL "SET") cmake_path(CONVERT "${arg_UNPARSED_ARGUMENTS}" TO_NATIVE_PATH_LIST arguments) set(list "${arguments}") elseif("${operation}" STREQUAL "APPEND") cmake_path(CONVERT "${arg_UNPARSED_ARGUMENTS}" TO_NATIVE_PATH_LIST arguments) if("${list}" STREQUAL "") set(list "${arguments}") elseif(NOT "${arguments}" STREQUAL "") set(list "${list}${VCPKG_HOST_PATH_SEPARATOR}${arguments}") endif() elseif("${operation}" STREQUAL "PREPEND") cmake_path(CONVERT "${arg_UNPARSED_ARGUMENTS}" TO_NATIVE_PATH_LIST arguments) if("${list}" STREQUAL "") set(list "${arguments}") elseif(NOT "${arguments}" STREQUAL "") set(list "${arguments}${VCPKG_HOST_PATH_SEPARATOR}${list}") endif() elseif("${operation}" STREQUAL "REMOVE_DUPLICATES") if(NOT VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") string(REPLACE [[;]] [[\\\;]] list "${list}") endif() cmake_path(CONVERT "${list}" TO_CMAKE_PATH_LIST current_list) list(REMOVE_DUPLICATES current_list) cmake_path(CONVERT "${current_list}" TO_NATIVE_PATH_LIST list) else() message(FATAL_ERROR "Operation ${operation} not recognized.") endif() if(env_var) set("${list_var}" "${list}") else() set("${list_var}" "${list}" PARENT_SCOPE) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_cmake.cmake ================================================ function(vcpkg_install_cmake) if(Z_VCPKG_CMAKE_INSTALL_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-cmake; using both vcpkg-cmake and vcpkg_install_cmake in the same port is unsupported.") endif() cmake_parse_arguments(PARSE_ARGV 0 "arg" "DISABLE_PARALLEL;ADD_BIN_TO_PATH" "" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "vcpkg_cmake_install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() vcpkg_list(SET params) foreach(arg IN ITEMS DISABLE_PARALLEL ADD_BIN_TO_PATH) if(arg_${arg}) vcpkg_list(APPEND params "${arg}") endif() endforeach() vcpkg_build_cmake(Z_VCPKG_DISABLE_DEPRECATION MESSAGE ${params} LOGFILE_ROOT install TARGET install ) endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_copyright.cmake ================================================ function(vcpkg_install_copyright) cmake_parse_arguments(PARSE_ARGV 0 arg "" "COMMENT" "FILE_LIST") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_FILE_LIST) message(FATAL_ERROR "FILE_LIST must be specified") endif() list(LENGTH arg_FILE_LIST FILE_LIST_LENGTH) set(out_string "") if(FILE_LIST_LENGTH LESS_EQUAL 0) message(FATAL_ERROR "FILE_LIST must contain at least one file") elseif(FILE_LIST_LENGTH EQUAL 1) if(arg_COMMENT) file(READ "${arg_FILE_LIST}" out_string) else() file(INSTALL "${arg_FILE_LIST}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) return() endif() else() foreach(file_item IN LISTS arg_FILE_LIST) if(NOT EXISTS "${file_item}") message(FATAL_ERROR "\n${CMAKE_CURRENT_FUNCTION} was passed a non-existing path: ${file_item}\n") endif() get_filename_component(file_name "${file_item}" NAME) file(READ "${file_item}" file_contents) string(APPEND out_string "${file_name}:\n\n${file_contents}\n\n") endforeach() endif() if(arg_COMMENT) string(PREPEND out_string "${arg_COMMENT}\n\n") endif() file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "${out_string}") endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_gn.cmake ================================================ function(z_vcpkg_install_gn_get_target_type out_var) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "SOURCE_PATH;BUILD_DIR;TARGET" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: get_target_type was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() execute_process( COMMAND "${GN}" desc "${arg_BUILD_DIR}" "${arg_TARGET}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE ) if(output MATCHES [[type: ([A-Za-z0-9_]+)]]) set("${out_var}" "${CMAKE_MATCH_1}" PARENT_SCOPE) else() message(FATAL_ERROR "invalid result from `gn desc`: ${output}") endif() endfunction() function(z_vcpkg_install_gn_get_desc out_var) cmake_parse_arguments(PARSE_ARGV 1 "arg" "" "SOURCE_PATH;BUILD_DIR;TARGET;WHAT_TO_DISPLAY" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: get_desc was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() execute_process( COMMAND "${GN}" desc "${arg_BUILD_DIR}" "${arg_TARGET}" "${arg_WHAT_TO_DISPLAY}" WORKING_DIRECTORY "${arg_SOURCE_PATH}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE ) string(REPLACE ";" "\\;" output "${output}") string(REGEX REPLACE "\n|(\r\n)" ";" output "${output}") set("${out_var}" "${output}" PARENT_SCOPE) endfunction() function(z_vcpkg_install_gn_install) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "SOURCE_PATH;BUILD_DIR;INSTALL_DIR" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "Internal error: install was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(target IN LISTS arg_TARGETS) # GN targets must start with a // z_vcpkg_install_gn_get_desc(outputs SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${arg_BUILD_DIR}" TARGET "//${target}" WHAT_TO_DISPLAY outputs ) z_vcpkg_install_gn_get_target_type(target_type SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${arg_BUILD_DIR}" TARGET "//${target}" ) foreach(output IN LISTS outputs) if(output MATCHES "^//") # relative path (e.g. //out/Release/target.lib) string(REGEX REPLACE "^//" "${arg_SOURCE_PATH}/" output "${output}") elseif(output MATCHES "^/" AND CMAKE_HOST_WIN32) # absolute path (e.g. /C:/path/to/target.lib) string(REGEX REPLACE "^/" "" output "${output}") endif() if(NOT EXISTS "${output}") message(WARNING "Output for target `${target}` doesn't exist: ${output}.") continue() endif() if(target_type STREQUAL "executable") file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/tools") elseif(output MATCHES "(\\.dll|\\.pdb)$") file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/bin") else() file(INSTALL "${output}" DESTINATION "${arg_INSTALL_DIR}/lib") endif() endforeach() endforeach() endfunction() function(vcpkg_install_gn) if(Z_VCPKG_GN_INSTALL_GUARD) message(FATAL_ERROR "The ${PORT} port already depends on vcpkg-gn; using both vcpkg-gn and vcpkg_install_gn in the same port is unsupported.") else() message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "This function 'vcpkg_install_gn' is obsolete. Use 'vcpkg_gn_install' in port 'vcpkg-gn'.") endif() cmake_parse_arguments(PARSE_ARGV 0 arg "" "SOURCE_PATH" "TARGETS") if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_install_gn was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified.") endif() vcpkg_build_ninja(TARGETS ${arg_TARGETS}) vcpkg_find_acquire_program(GN) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") z_vcpkg_install_gn_install( SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" INSTALL_DIR "${CURRENT_PACKAGES_DIR}/debug" TARGETS ${arg_TARGETS} ) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") z_vcpkg_install_gn_install( SOURCE_PATH "${arg_SOURCE_PATH}" BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" INSTALL_DIR "${CURRENT_PACKAGES_DIR}" TARGETS ${arg_TARGETS} ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_make.cmake ================================================ function(vcpkg_install_make) vcpkg_build_make( ${ARGN} ENABLE_INSTALL ) endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_meson.cmake ================================================ function(vcpkg_install_meson) cmake_parse_arguments(PARSE_ARGV 0 arg "ADD_BIN_TO_PATH" "" "") vcpkg_find_acquire_program(NINJA) unset(ENV{DESTDIR}) # installation directory was already specified with '--prefix' option if(VCPKG_TARGET_IS_OSX) vcpkg_backup_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET) set(ENV{SDKROOT} "${VCPKG_DETECTED_CMAKE_OSX_SYSROOT}") set(ENV{MACOSX_DEPLOYMENT_TARGET} "${VCPKG_DETECTED_CMAKE_OSX_DEPLOYMENT_TARGET}") endif() foreach(buildtype IN ITEMS "debug" "release") if(DEFINED VCPKG_BUILD_TYPE AND NOT VCPKG_BUILD_TYPE STREQUAL buildtype) continue() endif() if(buildtype STREQUAL "debug") set(short_buildtype "dbg") else() set(short_buildtype "rel") endif() message(STATUS "Package ${TARGET_TRIPLET}-${short_buildtype}") if(arg_ADD_BIN_TO_PATH) vcpkg_backup_env_variables(VARS PATH) if(buildtype STREQUAL "debug") vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") else() vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") endif() endif() vcpkg_execute_required_process( COMMAND "${NINJA}" install -v WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${short_buildtype}" LOGNAME package-${TARGET_TRIPLET}-${short_buildtype} ) if(arg_ADD_BIN_TO_PATH) vcpkg_restore_env_variables(VARS PATH) endif() endforeach() vcpkg_list(SET renamed_libs) if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL static AND NOT VCPKG_TARGET_IS_MINGW) # Meson names all static libraries lib.a which basically breaks the world file(GLOB_RECURSE gen_libraries "${CURRENT_PACKAGES_DIR}*/**/lib*.a") foreach(gen_library IN LISTS gen_libraries) get_filename_component(libdir "${gen_library}" DIRECTORY) get_filename_component(libname "${gen_library}" NAME) string(REGEX REPLACE ".a$" ".lib" fixed_librawname "${libname}") string(REGEX REPLACE "^lib" "" fixed_librawname "${fixed_librawname}") file(RENAME "${gen_library}" "${libdir}/${fixed_librawname}") # For cmake fixes. string(REGEX REPLACE ".a$" "" origin_librawname "${libname}") string(REGEX REPLACE ".lib$" "" fixed_librawname "${fixed_librawname}") vcpkg_list(APPEND renamed_libs ${fixed_librawname}) set(${librawname}_old ${origin_librawname}) set(${librawname}_new ${fixed_librawname}) endforeach() file(GLOB_RECURSE cmake_files "${CURRENT_PACKAGES_DIR}*/*.cmake") foreach(cmake_file IN LISTS cmake_files) foreach(current_lib IN LISTS renamed_libs) vcpkg_replace_string("${cmake_file}" "${${current_lib}_old}" "${${current_lib}_new}" IGNORE_UNCHANGED) endforeach() endforeach() endif() if(VCPKG_TARGET_IS_OSX) vcpkg_restore_env_variables(VARS SDKROOT MACOSX_DEPLOYMENT_TARGET) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_msbuild.cmake ================================================ function(vcpkg_install_msbuild) cmake_parse_arguments( PARSE_ARGV 0 "arg" "USE_VCPKG_INTEGRATION;ALLOW_ROOT_INCLUDES;REMOVE_ROOT_INCLUDES;SKIP_CLEAN" "SOURCE_PATH;PROJECT_SUBPATH;INCLUDES_SUBPATH;LICENSE_SUBPATH;RELEASE_CONFIGURATION;DEBUG_CONFIGURATION;PLATFORM;PLATFORM_TOOLSET;TARGET_PLATFORM_VERSION;TARGET" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "vcpkg_install_msbuild was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_RELEASE_CONFIGURATION) set(arg_RELEASE_CONFIGURATION Release) endif() if(NOT DEFINED arg_DEBUG_CONFIGURATION) set(arg_DEBUG_CONFIGURATION Debug) endif() if(NOT DEFINED arg_PLATFORM) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(arg_PLATFORM x64) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(arg_PLATFORM Win32) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(arg_PLATFORM ARM) elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(arg_PLATFORM arm64) else() message(FATAL_ERROR "Unsupported target architecture") endif() endif() if(NOT DEFINED arg_PLATFORM_TOOLSET) set(arg_PLATFORM_TOOLSET "${VCPKG_PLATFORM_TOOLSET}") endif() if(NOT DEFINED arg_TARGET_PLATFORM_VERSION) vcpkg_get_windows_sdk(arg_TARGET_PLATFORM_VERSION) endif() if(NOT DEFINED arg_TARGET) set(arg_TARGET Rebuild) endif() list(APPEND arg_OPTIONS "/t:${arg_TARGET}" "/p:Platform=${arg_PLATFORM}" "/p:PlatformToolset=${arg_PLATFORM_TOOLSET}" "/p:VCPkgLocalAppDataDisabled=true" "/p:UseIntelMKL=No" "/p:WindowsTargetPlatformVersion=${arg_TARGET_PLATFORM_VERSION}" "/p:VcpkgTriplet=${TARGET_TRIPLET}" "/p:VcpkgInstalledDir=${_VCPKG_INSTALLED_DIR}" "/p:VcpkgManifestInstall=false" "/p:UseMultiToolTask=true" "/p:MultiProcMaxCount=${VCPKG_CONCURRENCY}" "/p:EnforceProcessCountAcrossBuilds=true" "/m:${VCPKG_CONCURRENCY}" ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") # Disable LTCG for static libraries because this setting introduces ABI incompatibility between minor compiler versions # TODO: Add a way for the user to override this if they want to opt-in to incompatibility list(APPEND arg_OPTIONS "/p:WholeProgramOptimization=false") endif() if(arg_USE_VCPKG_INTEGRATION) list(APPEND arg_OPTIONS "/p:ForceImportBeforeCppTargets=${SCRIPTS}/buildsystems/msbuild/vcpkg.targets" "/p:VcpkgApplocalDeps=false" ) endif() get_filename_component(source_path_suffix "${arg_SOURCE_PATH}" NAME) if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") message(STATUS "Building ${arg_PROJECT_SUBPATH} for Release") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") file(COPY "${arg_SOURCE_PATH}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") set(source_copy_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/${source_path_suffix}") vcpkg_execute_required_process( COMMAND msbuild "${source_copy_path}/${arg_PROJECT_SUBPATH}" "/p:Configuration=${arg_RELEASE_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_RELEASE} WORKING_DIRECTORY "${source_copy_path}" LOGNAME "build-${TARGET_TRIPLET}-rel" ) file(GLOB_RECURSE libs "${source_copy_path}/*.lib") file(GLOB_RECURSE dlls "${source_copy_path}/*.dll") file(GLOB_RECURSE exes "${source_copy_path}/*.exe") if(NOT libs STREQUAL "") file(COPY ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT dlls STREQUAL "") file(COPY ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() if(NOT exes STREQUAL "") file(COPY ${exes} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}") vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}") endif() endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") message(STATUS "Building ${arg_PROJECT_SUBPATH} for Debug") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") file(COPY "${arg_SOURCE_PATH}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") set(source_copy_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/${source_path_suffix}") vcpkg_execute_required_process( COMMAND msbuild "${source_copy_path}/${arg_PROJECT_SUBPATH}" "/p:Configuration=${arg_DEBUG_CONFIGURATION}" ${arg_OPTIONS} ${arg_OPTIONS_DEBUG} WORKING_DIRECTORY "${source_copy_path}" LOGNAME "build-${TARGET_TRIPLET}-dbg" ) file(GLOB_RECURSE libs "${source_copy_path}/*.lib") file(GLOB_RECURSE dlls "${source_copy_path}/*.dll") if(NOT libs STREQUAL "") file(COPY ${libs} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if(NOT dlls STREQUAL "") file(COPY ${dlls} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endif() vcpkg_copy_pdbs() if(NOT arg_SKIP_CLEAN) vcpkg_clean_msbuild() endif() if(DEFINED arg_INCLUDES_SUBPATH) file(COPY "${arg_SOURCE_PATH}/${arg_INCLUDES_SUBPATH}/" DESTINATION "${CURRENT_PACKAGES_DIR}/include/" ) file(GLOB_RECURSE all_am_file "${CURRENT_PACKAGES_DIR}/include/*.am") file(GLOB_RECURSE all_in_file "${CURRENT_PACKAGES_DIR}/include/*.in") if(NOT "${all_am_file}" STREQUAL "") file(REMOVE ${all_am_file}) endif() if(NOT "${all_in_file}" STREQUAL "") file(REMOVE ${all_in_file}) endif() file(GLOB root_includes LIST_DIRECTORIES false "${CURRENT_PACKAGES_DIR}/include/*") if(NOT root_includes STREQUAL "") if(arg_REMOVE_ROOT_INCLUDES) file(REMOVE ${root_includes}) elseif(arg_ALLOW_ROOT_INCLUDES) else() message(FATAL_ERROR "Top-level files were found in ${CURRENT_PACKAGES_DIR}/include; this may indicate a problem with the call to `vcpkg_install_msbuild()`.\nTo avoid conflicts with other libraries, it is recommended to not put includes into the root `include/` directory.\nPass either ALLOW_ROOT_INCLUDES or REMOVE_ROOT_INCLUDES to handle these files.\n") endif() endif() endif() if(DEFINED arg_LICENSE_SUBPATH) file(INSTALL "${arg_SOURCE_PATH}/${arg_LICENSE_SUBPATH}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_nmake.cmake ================================================ function(vcpkg_install_nmake) vcpkg_list(SET multi_value_args TARGET OPTIONS OPTIONS_DEBUG OPTIONS_RELEASE PRERUN_SHELL PRERUN_SHELL_DEBUG PRERUN_SHELL_RELEASE) cmake_parse_arguments(PARSE_ARGV 0 arg "NO_DEBUG;PREFER_JOM" "SOURCE_PATH;PROJECT_SUBPATH;PROJECT_NAME;CL_LANGUAGE" "${multi_value_args}" ) if(DEFINED arg_UNPARSED_ARGUMENTS) message(WARNING "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(NOT DEFINED arg_SOURCE_PATH) message(FATAL_ERROR "SOURCE_PATH must be specified") endif() if(NOT VCPKG_HOST_IS_WINDOWS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} only support windows.") endif() # backwards-compatibility hack # gdal passes `arg_OPTIONS_DEBUG` (and RELEASE) as a single argument, # so we need to split them again set(arg_OPTIONS_DEBUG ${arg_OPTIONS_DEBUG}) set(arg_OPTIONS_RELEASE ${arg_OPTIONS_RELEASE}) vcpkg_list(SET extra_args) # switch args if(arg_NO_DEBUG) vcpkg_list(APPEND extra_args NO_DEBUG) endif() if(arg_PREFER_JOM) vcpkg_list(APPEND extra_args PREFER_JOM) endif() # single args foreach(arg IN ITEMS PROJECT_SUBPATH PROJECT_NAME CL_LANGUAGE) if(DEFINED "arg_${arg}") vcpkg_list(APPEND extra_args ${arg} "${arg_${arg}}") endif() endforeach() # multi-value args foreach(arg IN LISTS multi_value_args) if(DEFINED "arg_${arg}") vcpkg_list(APPEND extra_args ${arg} ${arg_${arg}}) endif() endforeach() vcpkg_build_nmake( SOURCE_PATH "${arg_SOURCE_PATH}" ENABLE_INSTALL LOGFILE_ROOT install ${extra_args}) endfunction() ================================================ FILE: scripts/cmake/vcpkg_install_qmake.cmake ================================================ function(vcpkg_install_qmake) z_vcpkg_function_arguments(args) vcpkg_build_qmake(${args}) file(GLOB_RECURSE release_libs "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.a" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so.*" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dylib" ) file(GLOB_RECURSE release_bins "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll" ) file(GLOB_RECURSE debug_libs "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.a" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so.*" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dylib" ) file(GLOB_RECURSE debug_bins "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll" ) if("${release_libs}" STREQUAL "" AND "${debug_libs}" STREQUAL "") message(FATAL_ERROR "Build did not appear to produce any libraries. If this is intended, use `vcpkg_build_qmake()` directly.") endif() if(NOT "${release_libs}" STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") file(COPY ${release_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() if(NOT "${debug_libs}" STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") file(COPY ${debug_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() if(NOT "${release_bins}" STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") file(COPY ${release_bins} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() if(NOT "${debug_bins}" STREQUAL "") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") file(COPY ${debug_bins} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_list.cmake ================================================ macro(z_vcpkg_list_escape_once_more lst) string(REPLACE [[\;]] [[\\;]] "${lst}" "${${lst}}") endmacro() function(vcpkg_list) # NOTE: as this function replaces an existing CMake command, # it does not use cmake_parse_arguments # vcpkg_list( ...) # A0 A1 if(ARGC LESS "2") message(FATAL_ERROR "vcpkg_list requires at least two arguments.") endif() if(ARGV1 MATCHES "^ARGV([0-9]*)$|^ARG[CN]$|^CMAKE_CURRENT_FUNCTION") message(FATAL_ERROR "vcpkg_list does not support the list_var being ${ARGV1}. Please use a different variable name.") endif() set(list "${${ARGV1}}") set(operation "${ARGV0}") set(list_var "${ARGV1}") if(operation STREQUAL "SET") z_vcpkg_function_arguments(args 2) set("${list_var}" "${args}" PARENT_SCOPE) return() endif() # Normal reading functions if(operation STREQUAL "LENGTH") # vcpkg_list(LENGTH ) # A0 A1 A2 if(NOT ARGC EQUAL "3") message(FATAL_ERROR "vcpkg_list sub-command ${operation} requires two arguments.") endif() list(LENGTH list out) set("${ARGV2}" "${out}" PARENT_SCOPE) return() endif() if(operation MATCHES "^(GET|JOIN|FIND)$") # vcpkg_list( ) # A0 A1 A2 A3 if(NOT ARGC EQUAL "4") message(FATAL_ERROR "vcpkg_list sub-command ${operation} requires three arguments.") endif() if(operation STREQUAL "GET") list(LENGTH list length) if(length EQUAL "0") message(FATAL_ERROR "vcpkg_list GET given empty list") elseif(ARGV2 GREATER_EQUAL length OR ARGV2 LESS "-${length}") message(FATAL_ERROR "vcpkg_list index: ${ARGV2} is not in range") endif() endif() list("${operation}" list "${ARGV2}" out) set("${ARGV3}" "${out}" PARENT_SCOPE) return() endif() if(operation STREQUAL "SUBLIST") # vcpkg_list(SUBLIST ) # A0 A1 A2 A3 A4 if(NOT ARGC EQUAL "5") message(FATAL_ERROR "vcpkg_list sub-command SUBLIST requires four arguments.") endif() list(LENGTH list length) if(ARGV2 LESS "0" OR (ARGV2 GREATER_EQUAL length AND NOT ARGV2 EQUAL "0")) message(FATAL_ERROR "vcpkg_list begin index: ${ARGV2} is out of range") endif() z_vcpkg_list_escape_once_more(list) list(SUBLIST list "${ARGV2}" "${ARGV3}" out) set("${ARGV4}" "${out}" PARENT_SCOPE) return() endif() # modification functions if(operation MATCHES "^(APPEND|PREPEND)$") # vcpkg_list( [...]) # A0 A1 A2... # if ARGC <= 2, then we don't have to do anything if(ARGC GREATER 2) z_vcpkg_function_arguments(args 2) if(list STREQUAL "") set("${list_var}" "${args}" PARENT_SCOPE) elseif(operation STREQUAL "APPEND") set("${list_var}" "${list};${args}" PARENT_SCOPE) else() set("${list_var}" "${args};${list}" PARENT_SCOPE) endif() endif() return() endif() if(operation STREQUAL "INSERT") # vcpkg_list(INSERT [...]) # A0 A1 A2 A3... list(LENGTH list length) if(ARGV2 LESS "-{$length}" OR ARGV2 GREATER length) message(FATAL_ERROR "vcpkg_list index: ${ARGV2} out of range") endif() if(ARGC GREATER 3) # list(LENGTH) is one of the few subcommands that's fine list(LENGTH list length) if(ARGV2 LESS "0") math(EXPR ARGV2 "${length} + ${ARGV2}") endif() if(ARGV2 LESS "0" OR ARGV2 GREATER length) message(FATAL_ERROR "list index: ${ARGV2} out of range (-${length}, ${length})") endif() z_vcpkg_function_arguments(args 3) if(list STREQUAL "") set("${list_var}" "${args}" PARENT_SCOPE) elseif(ARGV2 EQUAL "0") set("${list_var}" "${args};${list}" PARENT_SCOPE) elseif(ARGV2 EQUAL length) set("${list_var}" "${list};${args}" PARENT_SCOPE) else() vcpkg_list(SUBLIST list 0 "${ARGV2}" list_start) vcpkg_list(SUBLIST list "${ARGV2}" -1 list_end) set("${list_var}" "${list_start};${args};${list_end}" PARENT_SCOPE) endif() elseif(ARGC LESS 3) message(FATAL_ERROR "vcpkg_list sub-command INSERT requires at least two arguments.") endif() return() endif() if(operation MATCHES "^(POP_BACK|POP_FRONT|REVERSE|REMOVE_DUPLICATES)$") # vcpkg_list( ) # A0 A1 if(NOT ARGC EQUAL 2) message(FATAL_ERROR "vcpkg_list sub-command ${operation} requires one argument.") endif() z_vcpkg_list_escape_once_more(list) list("${operation}" list) set("${list_var}" "${list}" PARENT_SCOPE) return() endif() if(operation MATCHES "^(REMOVE_AT|REMOVE_ITEM)$") # vcpkg_list( ) # A0 A1 A2 if(NOT ARGC EQUAL 3) message(FATAL_ERROR "vcpkg_list sub-command ${operation} requires two arguments.") endif() if(operation STREQUAL "REMOVE_AT") list(LENGTH list length) if(ARGV2 GREATER_EQUAL length OR ARGV2 LESS "-${length}") message(FATAL_ERROR "vcpkg_list index: ${ARGV2} out of range") endif() endif() z_vcpkg_list_escape_once_more(list) string(REPLACE [[;]] [[\;]] ARGV2 "${ARGV2}") list("${operation}" list "${ARGV2}") set("${list_var}" "${list}" PARENT_SCOPE) return() endif() message(FATAL_ERROR "vcpkg_list sub-command ${operation} is not yet implemented.") endfunction() ================================================ FILE: scripts/cmake/vcpkg_minimum_required.cmake ================================================ function(vcpkg_minimum_required) cmake_parse_arguments(PARSE_ARGV 0 arg "" "VERSION" "") if(NOT DEFINED VCPKG_BASE_VERSION) message(FATAL_ERROR "Your vcpkg executable is outdated and is not compatible with the current CMake scripts. Please re-acquire vcpkg by running bootstrap-vcpkg." ) endif() if(NOT DEFINED arg_VERSION) message(FATAL_ERROR "VERSION must be specified") endif() set(vcpkg_date_regex "^[12][0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]$") if(NOT "${VCPKG_BASE_VERSION}" MATCHES "${vcpkg_date_regex}") message(FATAL_ERROR "vcpkg internal failure; VCPKG_BASE_VERSION (${VCPKG_BASE_VERSION}) was not a valid date." ) endif() if(NOT "${arg_VERSION}" MATCHES "${vcpkg_date_regex}") message(FATAL_ERROR "VERSION (${arg_VERSION}) was not a valid date - expected something of the form 'YYYY-MM-DD'" ) endif() string(REPLACE "-" "." VCPKG_BASE_VERSION_as_dotted "${VCPKG_BASE_VERSION}") string(REPLACE "-" "." arg_VERSION_as_dotted "${arg_VERSION}") if("${VCPKG_BASE_VERSION_as_dotted}" VERSION_LESS "${arg_VERSION_as_dotted}") message(FATAL_ERROR "Your vcpkg executable is from ${VCPKG_BASE_VERSION} which is older than required by the caller " "of vcpkg_minimum_required(VERSION ${arg_VERSION}). " "Please re-acquire vcpkg by running bootstrap-vcpkg." ) endif() endfunction() ================================================ FILE: scripts/cmake/vcpkg_replace_string.cmake ================================================ function(vcpkg_replace_string filename match replace) cmake_parse_arguments(PARSE_ARGV 3 "arg" "REGEX;IGNORE_UNCHANGED" "" "") if(arg_REGEX) set(arg_REGEX "REGEX") else() if("${match}" STREQUAL "${replace}") return() # Avoid reading the file or triggering warnings endif() set(arg_REGEX "") endif () file(READ "${filename}" contents) string(SHA512 before_hash "${contents}") string(${arg_REGEX} REPLACE "${match}" "${replace}" contents "${contents}") string(SHA512 after_hash "${contents}") if(NOT arg_IGNORE_UNCHANGED AND "${before_hash}" STREQUAL "${after_hash}") message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "vcpkg_replace_string made no changes.") endif() file(WRITE "${filename}" "${contents}") endfunction() ================================================ FILE: scripts/cmake/vcpkg_test_cmake.cmake ================================================ # DEPRECATED function(vcpkg_test_cmake) message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "vcpkg_test_cmake was a no-op and has been removed. Please remove the call to `vcpkg_test_cmake()`.") endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_apply_patches.cmake ================================================ function(z_vcpkg_apply_patches) cmake_parse_arguments(PARSE_ARGV 0 "arg" "QUIET" "SOURCE_PATH" "PATCHES") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "internal error: z_vcpkg_apply_patches was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() find_program(GIT NAMES git git.cmd REQUIRED) if(DEFINED ENV{GIT_CONFIG_NOSYSTEM}) set(git_config_nosystem_backup "$ENV{GIT_CONFIG_NOSYSTEM}") else() unset(git_config_nosystem_backup) endif() set(ENV{GIT_CONFIG_NOSYSTEM} 1) set(patchnum 0) foreach(patch IN LISTS arg_PATCHES) get_filename_component(absolute_patch "${patch}" ABSOLUTE BASE_DIR "${CURRENT_PORT_DIR}") message(STATUS "Applying patch ${patch}") set(logname "patch-${TARGET_TRIPLET}-${patchnum}") vcpkg_execute_in_download_mode( COMMAND "${GIT}" -c core.longpaths=true -c core.autocrlf=false -c core.filemode=true --work-tree=. --git-dir=.git apply "${absolute_patch}" --ignore-whitespace --whitespace=nowarn --verbose OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/${logname}-out.log" ERROR_VARIABLE error WORKING_DIRECTORY "${arg_SOURCE_PATH}" RESULT_VARIABLE error_code ) file(WRITE "${CURRENT_BUILDTREES_DIR}/${logname}-err.log" "${error}") if(error_code) if(arg_QUIET) message(STATUS "Applying patch ${patch} - failure silenced") else() message(FATAL_ERROR "Applying patch failed: ${error}") endif() endif() math(EXPR patchnum "${patchnum} + 1") endforeach() if(DEFINED git_config_nosystem_backup) set(ENV{GIT_CONFIG_NOSYSTEM} "${git_config_nosystem_backup}") else() unset(ENV{GIT_CONFIG_NOSYSTEM}) endif() endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_escape_regex_control_characters.cmake ================================================ function(z_vcpkg_escape_regex_control_characters out_var string) if(ARGC GREATER "2") message(FATAL_ERROR "z_vcpkg_escape_regex_control_characters passed extra arguments: ${ARGN}") endif() # uses | instead of [] to avoid confusion; additionally, CMake doesn't support `]` in a `[]` string(REGEX REPLACE [[\[|\]|\(|\)|\.|\+|\*|\^|\\|\$|\?|\|]] [[\\\0]] escaped_content "${string}") set("${out_var}" "${escaped_content}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_fixup_rpath.cmake ================================================ function(z_vcpkg_calculate_corrected_rpath) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "ELF_FILE_DIR;ORG_RPATH;OUT_NEW_RPATH_VAR" "") set(current_prefix "${CURRENT_PACKAGES_DIR}") set(current_installed_prefix "${CURRENT_INSTALLED_DIR}") file(RELATIVE_PATH relative_from_packages "${CURRENT_PACKAGES_DIR}" "${arg_ELF_FILE_DIR}") if("${relative_from_packages}/" MATCHES "^debug/|^(manual-tools|tools)/[^/]*/debug/") set(current_prefix "${CURRENT_PACKAGES_DIR}/debug") set(current_installed_prefix "${CURRENT_INSTALLED_DIR}/debug") endif() # compute path relative to lib file(RELATIVE_PATH relative_to_lib "${arg_ELF_FILE_DIR}" "${current_prefix}/lib") # compute path relative to prefix file(RELATIVE_PATH relative_to_prefix "${arg_ELF_FILE_DIR}" "${current_prefix}") set(rpath_norm "") if(NOT "${arg_ORG_RPATH}" STREQUAL "") cmake_path(CONVERT "${arg_ORG_RPATH}" TO_CMAKE_PATH_LIST rpath_norm) # pattern matching helpers list(TRANSFORM rpath_norm PREPEND "::") list(TRANSFORM rpath_norm APPEND "/") string(REPLACE "::${arg_ELF_FILE_DIR}/" "::\$ORIGIN/" rpath_norm "${rpath_norm}") # Remove unnecessary up/down ; don't use normalize $ORIGIN/../ will be removed otherwise string(REPLACE "/lib/pkgconfig/../../" "/" rpath_norm "${rpath_norm}") # lib relative corrections string(REPLACE "::${current_prefix}/lib/" "::\$ORIGIN/${relative_to_lib}/" rpath_norm "${rpath_norm}") string(REPLACE "::${current_installed_prefix}/lib/" "::\$ORIGIN/${relative_to_lib}/" rpath_norm "${rpath_norm}") # prefix relativ string(REPLACE "::${current_prefix}/" "::\$ORIGIN/${relative_to_prefix}/" rpath_norm "${rpath_norm}") string(REPLACE "::${current_installed_prefix}/" "::\$ORIGIN/${relative_to_prefix}/" rpath_norm "${rpath_norm}") if(NOT X_VCPKG_RPATH_KEEP_SYSTEM_PATHS) list(FILTER rpath_norm INCLUDE REGEX "::\\\$ORIGIN.+") # Only keep paths relativ to ORIGIN endif() # Path normalization list(TRANSFORM rpath_norm REPLACE "/+" "/") # remove pattern matching helpers list(TRANSFORM rpath_norm REPLACE "^::" "") list(TRANSFORM rpath_norm REPLACE "/\$" "") endif() if(NOT relative_to_lib STREQUAL "") list(PREPEND rpath_norm "\$ORIGIN/${relative_to_lib}") endif() list(PREPEND rpath_norm "\$ORIGIN") # Make ORIGIN the first entry list(TRANSFORM rpath_norm REPLACE "/$" "") list(REMOVE_DUPLICATES rpath_norm) cmake_path(CONVERT "${rpath_norm}" TO_NATIVE_PATH_LIST new_rpath) set("${arg_OUT_NEW_RPATH_VAR}" "${new_rpath}" PARENT_SCOPE) endfunction() function(z_vcpkg_fixup_rpath_in_dir) # We need to iterate trough everything because we # can't predict where an elf file will be located file(GLOB root_entries LIST_DIRECTORIES TRUE "${CURRENT_PACKAGES_DIR}/*") # Skip some folders for better throughput list(APPEND folders_to_skip "include") list(JOIN folders_to_skip "|" folders_to_skip_regex) set(folders_to_skip_regex "^(${folders_to_skip_regex})$") # In download mode, we don't know if we're going to need PATCHELF, so be pessimistic and fetch # it so it ends up in the downloads directory. if(VCPKG_DOWNLOAD_MODE) vcpkg_find_acquire_program(PATCHELF) endif() foreach(folder IN LISTS root_entries) if(NOT IS_DIRECTORY "${folder}") continue() endif() get_filename_component(folder_name "${folder}" NAME) if(folder_name MATCHES "${folders_to_skip_regex}") continue() endif() file(GLOB_RECURSE elf_files LIST_DIRECTORIES FALSE "${folder}/*") list(FILTER elf_files EXCLUDE REGEX "\\\.(a|cpp|cc|cxx|c|hpp|h|hh|hxx|inc|json|toml|yaml|man|m4|ac|am|in|log|txt|pyi?|pyc|pyx|pxd|pc|cmake|f77|f90|f03|fi|f|cu|mod|ini|whl|cat|csv|rst|md|npy|npz|template|build)$") list(FILTER elf_files EXCLUDE REGEX "/(copyright|LICENSE|METADATA)$") foreach(elf_file IN LISTS elf_files) if(IS_SYMLINK "${elf_file}") continue() endif() vcpkg_find_acquire_program(PATCHELF) # Note that this relies on vcpkg_find_acquire_program short # circuiting after the first run # If this fails, the file is not an elf execute_process( COMMAND "${PATCHELF}" --print-rpath "${elf_file}" OUTPUT_VARIABLE readelf_output ERROR_VARIABLE read_rpath_error ) string(REPLACE "\n" "" readelf_output "${readelf_output}") if(NOT "${read_rpath_error}" STREQUAL "") continue() endif() get_filename_component(elf_file_dir "${elf_file}" DIRECTORY) z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_file_dir}" ORG_RPATH "${readelf_output}" OUT_NEW_RPATH_VAR new_rpath ) execute_process( COMMAND "${PATCHELF}" --set-rpath "${new_rpath}" "${elf_file}" OUTPUT_QUIET ERROR_VARIABLE set_rpath_error ) if(NOT "${set_rpath_error}" STREQUAL "") message(WARNING "Couldn't adjust RPATH of '${elf_file}': ${set_rpath_error}") continue() endif() message(STATUS "Adjusted RPATH of '${elf_file}' (From '${readelf_output}' -> To '${new_rpath}')") endforeach() endforeach() endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_fixup_rpath_macho.cmake ================================================ function(z_vcpkg_calculate_corrected_macho_rpath) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "MACHO_FILE_DIR;OUT_NEW_RPATH_VAR" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() set(current_prefix "${CURRENT_PACKAGES_DIR}") set(current_installed_prefix "${CURRENT_INSTALLED_DIR}") file(RELATIVE_PATH relative_from_packages "${CURRENT_PACKAGES_DIR}" "${arg_MACHO_FILE_DIR}") if("${relative_from_packages}/" MATCHES "^debug/" OR "${relative_from_packages}/" MATCHES "^(manual-)?tools/.*/debug/.*") set(current_prefix "${CURRENT_PACKAGES_DIR}/debug") set(current_installed_prefix "${CURRENT_INSTALLED_DIR}/debug") endif() # compute path relative to lib file(RELATIVE_PATH relative_to_lib "${arg_MACHO_FILE_DIR}" "${current_prefix}/lib") # remove trailing slash string(REGEX REPLACE "/+$" "" relative_to_lib "${relative_to_lib}") if(NOT relative_to_lib STREQUAL "") set(new_rpath "@loader_path/${relative_to_lib}") else() set(new_rpath "@loader_path") endif() set("${arg_OUT_NEW_RPATH_VAR}" "${new_rpath}" PARENT_SCOPE) endfunction() function(z_vcpkg_regex_escape) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "STRING;OUT_REGEX_ESCAPED_STRING_VAR" "") string(REGEX REPLACE "([][+.*()^])" "\\\\\\1" regex_escaped "${arg_STRING}") set("${arg_OUT_REGEX_ESCAPED_STRING_VAR}" "${regex_escaped}" PARENT_SCOPE) endfunction() function(z_vcpkg_fixup_macho_rpath_in_dir) # We need to iterate through everything because we # can't predict where a Mach-O file will be located file(GLOB root_entries LIST_DIRECTORIES TRUE "${CURRENT_PACKAGES_DIR}/*") # Skip some folders for better throughput list(APPEND folders_to_skip "include") list(JOIN folders_to_skip "|" folders_to_skip_regex) set(folders_to_skip_regex "^(${folders_to_skip_regex})$") find_program( install_name_tool_cmd NAMES install_name_tool DOC "Absolute path of install_name_tool cmd" REQUIRED ) find_program( otool_cmd NAMES otool DOC "Absolute path of otool cmd" REQUIRED ) find_program( file_cmd NAMES file DOC "Absolute path of file cmd" REQUIRED ) foreach(folder IN LISTS root_entries) if(NOT IS_DIRECTORY "${folder}") continue() endif() get_filename_component(folder_name "${folder}" NAME) if(folder_name MATCHES "${folders_to_skip_regex}") continue() endif() file(GLOB_RECURSE macho_files LIST_DIRECTORIES FALSE "${folder}/*") list(FILTER macho_files EXCLUDE REGEX [[\.(cpp|cc|cxx|c|hpp|h|hh|hxx|inc|json|toml|yaml|man|m4|ac|am|in|log|txt|pyi?|pyc|pyx|pxd|pc|cmake|f77|f90|f03|fi|f|cu|mod|ini|whl|cat|csv|rst|md|npy|npz|template|build)$]]) list(FILTER macho_files EXCLUDE REGEX "/(copyright|LICENSE|METADATA)$") foreach(macho_file IN LISTS macho_files) if(IS_SYMLINK "${macho_file}") continue() endif() # Determine if the file is a Mach-O executable or shared library execute_process( COMMAND "${file_cmd}" -b "${macho_file}" OUTPUT_VARIABLE file_output OUTPUT_STRIP_TRAILING_WHITESPACE ) if(file_output MATCHES ".*Mach-O.*shared library.*") set(file_type "shared") elseif(file_output MATCHES ".*Mach-O.*executable.*") set(file_type "executable") else() debug_message("File `${macho_file}` reported as `${file_output}` is not a Mach-O file") continue() endif() list(APPEND macho_executables_and_shared_libs "${macho_file}") get_filename_component(macho_file_dir "${macho_file}" DIRECTORY) get_filename_component(macho_file_name "${macho_file}" NAME) z_vcpkg_calculate_corrected_macho_rpath( MACHO_FILE_DIR "${macho_file_dir}" OUT_NEW_RPATH_VAR new_rpath ) if("${file_type}" STREQUAL "shared") # Set the install name for shared libraries execute_process( COMMAND "${otool_cmd}" -D "${macho_file}" OUTPUT_VARIABLE get_id_ov RESULT_VARIABLE get_id_rv ) if(NOT get_id_rv EQUAL 0) message(FATAL_ERROR "Could not obtain install name id from '${macho_file}'") endif() set(macho_new_id "@rpath/${macho_file_name}") message(STATUS "Setting install name id of '${macho_file}' to '@rpath/${macho_file_name}'") execute_process( COMMAND "${install_name_tool_cmd}" -id "${macho_new_id}" "${macho_file}" OUTPUT_QUIET ERROR_VARIABLE set_id_error RESULT_VARIABLE set_id_exit_code ) if(NOT "${set_id_error}" STREQUAL "" AND NOT set_id_exit_code EQUAL 0) message(WARNING "Couldn't adjust install name of '${macho_file}': ${set_id_error}") continue() endif() # otool -D typically returns lines like: # : # # But also with ARM64 binaries, it can return: # (architecture arm64): # # Either way we need to remove the first line and trim the trailing newline char. string(REGEX REPLACE "[^\n]+:\n" "" get_id_ov "${get_id_ov}") string(REGEX REPLACE "\n.*" "" get_id_ov "${get_id_ov}") list(APPEND adjusted_shared_lib_old_ids "${get_id_ov}") list(APPEND adjusted_shared_lib_new_ids "${macho_new_id}") endif() # List all existing rpaths execute_process( COMMAND "${otool_cmd}" -l "${macho_file}" OUTPUT_VARIABLE get_rpath_ov RESULT_VARIABLE get_rpath_rv ) if(NOT get_rpath_rv EQUAL 0) message(FATAL_ERROR "Could not obtain rpath list from '${macho_file}'") endif() # Extract the LC_RPATH load commands and extract the paths string(REGEX REPLACE "[^\n]+cmd LC_RPATH\n[^\n]+\n[^\n]+path ([^\n]+) \\(offset[^\n]+\n" "rpath \\1\n" get_rpath_ov "${get_rpath_ov}") string(REGEX MATCHALL "rpath [^\n]+" get_rpath_ov "${get_rpath_ov}") string(REGEX REPLACE "rpath " "" rpath_list "${get_rpath_ov}") list(FIND rpath_list "${new_rpath}" has_new_rpath) if(NOT has_new_rpath EQUAL -1) list(REMOVE_AT rpath_list ${has_new_rpath}) set(rpath_args) else() set(rpath_args -add_rpath "${new_rpath}") endif() foreach(rpath IN LISTS rpath_list) list(APPEND rpath_args "-delete_rpath" "${rpath}") endforeach() if(NOT rpath_args) continue() endif() # Set the new rpath execute_process( COMMAND "${install_name_tool_cmd}" ${rpath_args} "${macho_file}" OUTPUT_QUIET ERROR_VARIABLE set_rpath_error RESULT_VARIABLE set_rpath_exit_code ) if(NOT "${set_rpath_error}" STREQUAL "" AND NOT set_rpath_exit_code EQUAL 0) message(WARNING "Couldn't adjust RPATH of '${macho_file}': ${set_rpath_error}") continue() endif() message(STATUS "Adjusted RPATH of '${macho_file}' to '${new_rpath}'") endforeach() endforeach() # Check for dependent libraries in executables and shared libraries that # need adjusting after id change list(LENGTH adjusted_shared_lib_old_ids last_adjusted_index) if(NOT last_adjusted_index EQUAL 0) math(EXPR last_adjusted_index "${last_adjusted_index} - 1") foreach(macho_file IN LISTS macho_executables_and_shared_libs) execute_process( COMMAND "${otool_cmd}" -L "${macho_file}" OUTPUT_VARIABLE get_deps_ov RESULT_VARIABLE get_deps_rv ) if(NOT get_deps_rv EQUAL 0) message(FATAL_ERROR "Could not obtain dependencies list from '${macho_file}'") endif() # change adjusted_shared_lib_old_ids[i] -> adjusted_shared_lib_new_ids[i] foreach(i RANGE ${last_adjusted_index}) list(GET adjusted_shared_lib_old_ids ${i} adjusted_old_id) z_vcpkg_regex_escape( STRING "${adjusted_old_id}" OUT_REGEX_ESCAPED_STRING_VAR regex ) if(NOT get_deps_ov MATCHES "[ \t]${regex} ") continue() endif() list(GET adjusted_shared_lib_new_ids ${i} adjusted_new_id) # Replace the old id with the new id execute_process( COMMAND "${install_name_tool_cmd}" -change "${adjusted_old_id}" "${adjusted_new_id}" "${macho_file}" OUTPUT_QUIET ERROR_VARIABLE change_id_error RESULT_VARIABLE change_id_exit_code ) if(NOT "${change_id_error}" STREQUAL "" AND NOT change_id_exit_code EQUAL 0) message(WARNING "Couldn't adjust dependent shared library install name in '${macho_file}': ${change_id_error}") continue() endif() message(STATUS "Adjusted dependent shared library install name in '${macho_file}' (From '${adjusted_old_id}' -> To '${adjusted_new_id}')") endforeach() endforeach() endif() endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_forward_output_variable.cmake ================================================ macro(z_vcpkg_forward_output_variable ptr_to_parent_var var_to_forward) if("${ARGC}" GREATER "2") message(FATAL_ERROR "z_vcpkg_forward_output_variable was passed extra arguments: ${ARGN}") endif() if(DEFINED "${ptr_to_parent_var}") if(DEFINED "${var_to_forward}") set("${${ptr_to_parent_var}}" "${${var_to_forward}}" PARENT_SCOPE) else() unset("${${ptr_to_parent_var}}" PARENT_SCOPE) endif() endif() endmacro() ================================================ FILE: scripts/cmake/z_vcpkg_function_arguments.cmake ================================================ # NOTE: this function definition is copied directly to scripts/buildsystems/vcpkg.cmake # do not make changes here without making the same change there. macro(z_vcpkg_function_arguments OUT_VAR) if("${ARGC}" EQUAL 1) set(z_vcpkg_function_arguments_FIRST_ARG 0) elseif("${ARGC}" EQUAL 2) set(z_vcpkg_function_arguments_FIRST_ARG "${ARGV1}") if(NOT z_vcpkg_function_arguments_FIRST_ARG GREATER_EQUAL "0" AND NOT z_vcpkg_function_arguments_FIRST_ARG LESS "0") message(FATAL_ERROR "z_vcpkg_function_arguments: index (${z_vcpkg_function_arguments_FIRST_ARG}) is not a number") elseif(z_vcpkg_function_arguments_FIRST_ARG LESS "0" OR z_vcpkg_function_arguments_FIRST_ARG GREATER ARGC) message(FATAL_ERROR "z_vcpkg_function_arguments: index (${z_vcpkg_function_arguments_FIRST_ARG}) out of range") endif() else() # vcpkg bug message(FATAL_ERROR "z_vcpkg_function_arguments: invalid arguments (${ARGV})") endif() set("${OUT_VAR}" "") # this allows us to get the value of the enclosing function's ARGC set(z_vcpkg_function_arguments_ARGC_NAME "ARGC") set(z_vcpkg_function_arguments_ARGC "${${z_vcpkg_function_arguments_ARGC_NAME}}") math(EXPR z_vcpkg_function_arguments_LAST_ARG "${z_vcpkg_function_arguments_ARGC} - 1") # GREATER_EQUAL added in CMake 3.7 if(NOT z_vcpkg_function_arguments_LAST_ARG LESS z_vcpkg_function_arguments_FIRST_ARG) foreach(z_vcpkg_function_arguments_N RANGE "${z_vcpkg_function_arguments_FIRST_ARG}" "${z_vcpkg_function_arguments_LAST_ARG}") string(REPLACE ";" "\\;" z_vcpkg_function_arguments_ESCAPED_ARG "${ARGV${z_vcpkg_function_arguments_N}}") # adds an extra ";" on the front set("${OUT_VAR}" "${${OUT_VAR}};${z_vcpkg_function_arguments_ESCAPED_ARG}") endforeach() # and then removes that extra semicolon string(SUBSTRING "${${OUT_VAR}}" 1 -1 "${OUT_VAR}") endif() endmacro() ================================================ FILE: scripts/cmake/z_vcpkg_get_cmake_vars.cmake ================================================ function(z_vcpkg_get_cmake_vars out_file) cmake_parse_arguments(PARSE_ARGV 1 arg "" "" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() if(DEFINED VCPKG_BUILD_TYPE) set(cmake_vars_file "${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}.cmake.log") set(cache_var "Z_VCPKG_GET_CMAKE_VARS_FILE_${VCPKG_BUILD_TYPE}") else() set(cmake_vars_file "${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}.cmake.log") set(cache_var Z_VCPKG_GET_CMAKE_VARS_FILE) endif() if(NOT DEFINED CACHE{${cache_var}}) set(${cache_var} "${cmake_vars_file}" CACHE PATH "The file to include to access the CMake variables from a generated project.") vcpkg_configure_cmake( SOURCE_PATH "${SCRIPTS}/get_cmake_vars" OPTIONS_DEBUG "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log" OPTIONS_RELEASE "-DVCPKG_OUTPUT_FILE:PATH=${CURRENT_BUILDTREES_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log" PREFER_NINJA LOGNAME get-cmake-vars-${TARGET_TRIPLET} Z_GET_CMAKE_VARS_USAGE # ignore vcpkg_cmake_configure, be quiet, don't set variables... ) set(include_string "") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") string(APPEND include_string "include(\"\${CMAKE_CURRENT_LIST_DIR}/cmake-vars-${TARGET_TRIPLET}-rel.cmake.log\")\n") endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") string(APPEND include_string "include(\"\${CMAKE_CURRENT_LIST_DIR}/cmake-vars-${TARGET_TRIPLET}-dbg.cmake.log\")\n") endif() file(WRITE "${cmake_vars_file}" "${include_string}") endif() set("${out_file}" "${${cache_var}}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_make_python_less_embedded.cmake ================================================ if(NOT DEFINED PYTHON_VERSION) message(FATAL_ERROR "PYTHON_VERSION should be defined.") endif() if(NOT DEFINED PYTHON_DIR) message(FATAL_ERROR "PYTHON_DIR should be defined.") endif() # We want to be able to import stuff from outside of this embeddable package. # https://docs.python.org/3/library/sys_path_init.html#pth-files string(REGEX MATCH "^3\\.[0-9]+" _python_version_plain "${PYTHON_VERSION}") string(REPLACE "." "" _python_version_plain "${_python_version_plain}") file(REMOVE "${PYTHON_DIR}/python${_python_version_plain}._pth") # Since this embeddable package is not isolated anymore, we should make sure # it doesn't accidentally pick up stuff from windows registry. file(WRITE "${PYTHON_DIR}/sitecustomize.py" [[import os import sys sys.path.insert(1, os.path.dirname(os.path.realpath(__file__))) ]]) ================================================ FILE: scripts/cmake/z_vcpkg_prettify_command_line.cmake ================================================ function(z_vcpkg_prettify_command_line out_var) set(output_list "") z_vcpkg_function_arguments(args 1) foreach(v IN LISTS args) string(REPLACE [[\]] [[\\]] v "${v}") if(v MATCHES "( )") string(REPLACE [["]] [[\"]] v "${v}") list(APPEND output_list "\"${v}\"") else() list(APPEND output_list "${v}") endif() endforeach() list(JOIN output_list " " output) set("${out_var}" "${output}" PARENT_SCOPE) endfunction() ================================================ FILE: scripts/cmake/z_vcpkg_setup_pkgconfig_path.cmake ================================================ function(z_vcpkg_setup_pkgconfig_path) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "CONFIG" "") if("${arg_CONFIG}" STREQUAL "") message(FATAL_ERROR "CONFIG is required.") endif() if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH) if(DEFINED ENV{${envvar}}) set("z_vcpkg_env_backup_${envvar}" "$ENV{${envvar}}" PARENT_SCOPE) else() unset("z_vcpkg_env_backup_${envvar}" PARENT_SCOPE) endif() endforeach() vcpkg_find_acquire_program(PKGCONFIG) get_filename_component(pkgconfig_path "${PKGCONFIG}" DIRECTORY) cmake_path(CONVERT "$ENV{PATH}" TO_CMAKE_PATH_LIST path_list NORMALIZE) cmake_path(CONVERT "${pkgconfig_path}" TO_CMAKE_PATH_LIST pkgconfig_path NORMALIZE) if(NOT "${pkgconfig_path}" IN_LIST path_list) vcpkg_add_to_path("${pkgconfig_path}") endif() unset(path_list) unset(pkgconfig_path) set(ENV{PKG_CONFIG} "${PKGCONFIG}") foreach(prefix IN ITEMS "${CURRENT_INSTALLED_DIR}" "${CURRENT_PACKAGES_DIR}") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/share/pkgconfig") if(arg_CONFIG STREQUAL "RELEASE") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/lib/pkgconfig") # search order is lib, share, external elseif(arg_CONFIG STREQUAL "DEBUG") vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/debug/lib/pkgconfig") # search order is debug/lib, share, external else() message(FATAL_ERROR "CONFIG must be either RELEASE or DEBUG.") endif() endforeach() # total search order is current packages dir, current installed dir, external endfunction() function(z_vcpkg_restore_pkgconfig_path) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "" "") if(DEFINED arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}") endif() foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH) if(DEFINED z_vcpkg_env_backup_${envvar}) set("ENV{${envvar}}" "${z_vcpkg_env_backup_${envvar}}") else() unset("ENV{${envvar}}") endif() endforeach() endfunction() ================================================ FILE: scripts/detect_compiler/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) project(detect_compiler NONE) if(CMAKE_GENERATOR STREQUAL "Ninja" AND CMAKE_SYSTEM_NAME STREQUAL "Windows") set(CMAKE_C_COMPILER_WORKS 1) set(CMAKE_C_COMPILER_FORCED 1) set(CMAKE_CXX_COMPILER_WORKS 1) set(CMAKE_CXX_COMPILER_FORCED 1) endif() enable_language(C) enable_language(CXX) if(VCPKG_COMPILER_CACHE_FILE) if(EXISTS "${VCPKG_COMPILER_CACHE_FILE}") file(READ "${VCPKG_COMPILER_CACHE_FILE}" JSON_CONTENT) else() set(JSON_CONTENT "{}") endif() function(get_hash compiler_path out_var) file(TO_CMAKE_PATH "${compiler_path}" "compiler_path") file(SIZE "${compiler_path}" SIZE) file(TIMESTAMP "${compiler_path}" TIMESTAMP "%s" UTC) string(JSON COMPILER_EXISTS ERROR_VARIABLE JSON_ERROR GET "${JSON_CONTENT}" "${compiler_path}") if(NOT JSON_ERROR) # Get compiler attributes using JSON API string(JSON SIZE_JSON GET "${JSON_CONTENT}" "${compiler_path}" "size") string(JSON TIMESTAMP_JSON GET "${JSON_CONTENT}" "${compiler_path}" "timestamp") string(JSON HASH_JSON GET "${JSON_CONTENT}" "${compiler_path}" "hash") if ((SIZE_JSON EQUAL SIZE) AND (TIMESTAMP_JSON EQUAL TIMESTAMP)) set("${out_var}" "${HASH_JSON}" PARENT_SCOPE) return() endif() endif() file(SHA1 "${compiler_path}" HASH) # Add new entry to JSON string(JSON JSON_CONTENT SET "${JSON_CONTENT}" "${compiler_path}" "{\"size\": ${SIZE}, \"timestamp\": ${TIMESTAMP}, \"hash\": \"${HASH}\"}") set("${out_var}" "${HASH}" PARENT_SCOPE) set(JSON_CONTENT "${JSON_CONTENT}" PARENT_SCOPE) endfunction() get_hash("${CMAKE_C_COMPILER}" C_HASH) get_hash("${CMAKE_CXX_COMPILER}" CXX_HASH) # Write updated JSON back to file file(WRITE "${VCPKG_COMPILER_CACHE_FILE}" "${JSON_CONTENT}") else() file(SHA1 "${CMAKE_CXX_COMPILER}" CXX_HASH) file(SHA1 "${CMAKE_C_COMPILER}" C_HASH) endif() string(SHA1 COMPILER_HASH "${C_HASH}${CXX_HASH}") message("#COMPILER_HASH#${COMPILER_HASH}") message("#COMPILER_C_HASH#${C_HASH}") message("#COMPILER_C_VERSION#${CMAKE_C_COMPILER_VERSION}") message("#COMPILER_C_ID#${CMAKE_C_COMPILER_ID}") message("#COMPILER_C_PATH#${CMAKE_C_COMPILER}") message("#COMPILER_CXX_HASH#${CXX_HASH}") message("#COMPILER_CXX_VERSION#${CMAKE_CXX_COMPILER_VERSION}") message("#COMPILER_CXX_ID#${CMAKE_CXX_COMPILER_ID}") message("#COMPILER_CXX_PATH#${CMAKE_CXX_COMPILER}") ================================================ FILE: scripts/detect_compiler/portfile.cmake ================================================ set(LOGS ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-out.log ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-rel-out.log ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-dbg-out.log ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-rel-err.log ${CURRENT_BUILDTREES_DIR}/config-${TARGET_TRIPLET}-dbg-err.log ) foreach(LOG IN LISTS LOGS) file(REMOVE ${LOG}) if(EXISTS ${LOG}) message(FATAL_ERROR "Could not remove ${LOG}") endif() endforeach() set(VCPKG_BUILD_TYPE release) vcpkg_configure_cmake( SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" PREFER_NINJA OPTIONS "-DVCPKG_COMPILER_CACHE_FILE=${VCPKG_COMPILER_CACHE_FILE}" ) foreach(LOG IN LISTS LOGS) if(EXISTS ${LOG}) file(READ "${LOG}" _contents) message("${_contents}") endif() endforeach() ================================================ FILE: scripts/detect_compiler/vcpkg.json ================================================ { "name": "detect-compiler", "version": "0", "description": "None" } ================================================ FILE: scripts/generateBaseline.py ================================================ import os import sys import json import time from pathlib import Path SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__)) PORTS_DIRECTORY = os.path.join(SCRIPT_DIRECTORY, '../ports') VERSIONS_DB_DIRECTORY = os.path.join(SCRIPT_DIRECTORY, '../versions') def get_version_tag(version): if 'version' in version: return version['version'] elif 'version-date' in version: return version['version-date'] elif 'version-semver' in version: return version['version-semver'] elif 'version-string' in version: return version['version-string'] sys.exit(1) def get_version_port_version(version): if 'port-version' in version: return version['port-version'] return 0 def generate_baseline(): start_time = time.time() # Assume each directory in ${VCPKG_ROOT}/ports is a different port port_names = [item for item in os.listdir( PORTS_DIRECTORY) if os.path.isdir(os.path.join(PORTS_DIRECTORY, item))] port_names.sort() baseline_entries = {} total_count = len(port_names) for i, port_name in enumerate(port_names, 1): port_file_path = os.path.join( VERSIONS_DB_DIRECTORY, f'{port_name[0]}-', f'{port_name}.json') if not os.path.exists(port_file_path): print( f'Error: No version file for {port_name}.\n', file=sys.stderr) continue sys.stderr.write( f'\rProcessed {i}/{total_count} ({i/total_count:.2%})') with open(port_file_path, 'r') as db_file: try: versions_object = json.load(db_file) if versions_object['versions']: last_version = versions_object['versions'][0] baseline_entries[port_name] = { 'baseline': get_version_tag(last_version), 'port-version': get_version_port_version(last_version) } except json.JSONDecodeError as e: print(f'Error: Decoding {port_file_path}\n{e}\n') baseline_object = {} baseline_object['default'] = baseline_entries os.makedirs(VERSIONS_DB_DIRECTORY, exist_ok=True) baseline_path = os.path.join(VERSIONS_DB_DIRECTORY, 'baseline.json') with open(baseline_path, 'w') as baseline_file: json.dump(baseline_object, baseline_file) elapsed_time = time.time() - start_time print(f'\nElapsed time: {elapsed_time:.2f} seconds') def main(): if not os.path.exists(VERSIONS_DB_DIRECTORY): print(f'Version DB files must exist before generating a baseline.\nRun: `python generatePortVersionsDB`\n') generate_baseline() if __name__ == "__main__": main() ================================================ FILE: scripts/generatePortVersionsDb.py ================================================ import os import sys import subprocess import json import time import shutil import multiprocessing from pathlib import Path MAX_PROCESSES = multiprocessing.cpu_count() SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__)) PORTS_DIRECTORY = os.path.join(SCRIPT_DIRECTORY, '../ports') VERSIONS_DB_DIRECTORY = os.path.join(SCRIPT_DIRECTORY, '../versions') def get_current_git_ref(): output = subprocess.run(['git', '-C', SCRIPT_DIRECTORY, 'rev-parse', '--verify', 'HEAD'], capture_output=True, encoding='utf-8') if output.returncode == 0: return output.stdout.strip() print(f"Failed to get git ref:", output.stderr.strip(), file=sys.stderr) return None def generate_versions_file(port_name): containing_dir = os.path.join(VERSIONS_DB_DIRECTORY, f'{port_name[0]}-') os.makedirs(containing_dir, exist_ok=True) output_file_path = os.path.join(containing_dir, f'{port_name}.json') if not os.path.exists(output_file_path): env = os.environ.copy() env['GIT_OPTIONAL_LOCKS'] = '0' output = subprocess.run( [os.path.join(SCRIPT_DIRECTORY, '../vcpkg'), 'x-history', port_name, '--x-json', f'--output={output_file_path}'], capture_output=True, encoding='utf-8', env=env) if output.returncode != 0: print(f'x-history {port_name} failed: ', output.stdout.strip(), file=sys.stderr) def generate_versions_db(revision): start_time = time.time() # Assume each directory in ${VCPKG_ROOT}/ports is a different port port_names = [item for item in os.listdir( PORTS_DIRECTORY) if os.path.isdir(os.path.join(PORTS_DIRECTORY, item))] total_count = len(port_names) concurrency = MAX_PROCESSES / 2 print(f'Running {concurrency:.0f} parallel processes') process_pool = multiprocessing.Pool(MAX_PROCESSES) for i, _ in enumerate(process_pool.imap_unordered(generate_versions_file, port_names), 1): sys.stderr.write( f'\rProcessed: {i}/{total_count} ({(i / total_count):.2%})') process_pool.close() process_pool.join() # Generate timestamp rev_file = os.path.join(VERSIONS_DB_DIRECTORY, revision) Path(rev_file).touch() elapsed_time = time.time() - start_time print( f'\nElapsed time: {elapsed_time:.2f} seconds') def main(): revision = get_current_git_ref() if not revision: print('Couldn\'t fetch current Git revision', file=sys.stderr) sys.exit(1) rev_file = os.path.join(VERSIONS_DB_DIRECTORY, revision) if os.path.exists(rev_file): print(f'Database files already exist for commit {revision}') sys.exit(0) generate_versions_db(revision) if __name__ == "__main__": main() ================================================ FILE: scripts/get_cmake_vars/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.20) if(NOT VCPKG_OUTPUT_FILE) message(FATAL_ERROR "VCPKG_OUTPUT_FILE is required to be defined") endif() if(NOT CMAKE_BUILD_TYPE) message(FATAL_ERROR "CMAKE_BUILD_TYPE is required to be defined") else() string(TOUPPER "${CMAKE_BUILD_TYPE}" VCPKG_CONFIGS) endif() set(VCPKG_LANGUAGES "C;CXX" CACHE STRING "Languages to enables for this project") if(VCPKG_ENABLE_OBJC) list(APPEND VCPKG_LANGUAGES "OBJC") endif() project(get_cmake_vars LANGUAGES ${VCPKG_LANGUAGES}) set(OUTPUT_STRING "# Generator: ${CMAKE_CURRENT_LIST_FILE}\n") function(escaped out_var value) string(REPLACE "\\" "\\\\" value "${value}") string(REPLACE "\"" "\\\"" value "${value}") string(REPLACE "\$" "\\\$" value "${value}") set(${out_var} "${value}" PARENT_SCOPE) endfunction() # Build default checklists list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_CROSSCOMPILING CMAKE_SYSTEM_NAME CMAKE_HOST_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_HOST_SYSTEM_PROCESSOR) if(APPLE) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT) endif() # Programs to check set(PROGLIST AR RANLIB STRIP NM OBJDUMP DLLTOOL MT LINKER) foreach(prog IN LISTS PROGLIST) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}) endforeach() set(COMPILERS ${VCPKG_LANGUAGES} RC) foreach(prog IN LISTS COMPILERS) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${prog}_COMPILER CMAKE_${prog}_COMPILER_ID CMAKE_${prog}_COMPILER_FRONTEND_VARIANT) endforeach() # Variables to check foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD_INCLUDE_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD_LIBRARIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_STANDARD) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILE_FEATURES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_EXTENSION) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_COMPILER_TARGET) # Probably never required since implicit. #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES) #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_INCLUDE_DIRECTORIES) #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_DIRECTORIES) #list(APPEND VCPKG_DEFAULT_VARS_TO_CHECK CMAKE_${_lang}_IMPLICIT_LINK_LIBRARIES) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_VARS_TO_CHECK) # Environment variables to check. list(APPEND VCPKG_DEFAULT_ENV_VARS_TO_CHECK PATH INCLUDE C_INCLUDE_PATH CPLUS_INCLUDE_PATH LIB LIBPATH LIBRARY_PATH LD_LIBRARY_PATH) list(REMOVE_DUPLICATES VCPKG_DEFAULT_ENV_VARS_TO_CHECK) #Flags to check. Flags are a bit special since they are configuration aware. set(FLAGS ${VCPKG_LANGUAGES} RC SHARED_LINKER STATIC_LINKER EXE_LINKER MODULE_LINKER) foreach(flag IN LISTS FLAGS) list(APPEND VCPKG_DEFAULT_FLAGS_TO_CHECK CMAKE_${flag}_FLAGS) endforeach() list(REMOVE_DUPLICATES VCPKG_DEFAULT_FLAGS_TO_CHECK) #Language-specific flags. foreach(_lang IN LISTS VCPKG_LANGUAGES) list(APPEND VCPKG_LANG_FLAGS CMAKE_${_lang}_FLAGS) endforeach() list(REMOVE_DUPLICATES VCPKG_LANG_FLAGS) # TODO if ever necessary: Properties to check set(VCPKG_VAR_PREFIX "VCPKG_DETECTED" CACHE STRING "Variable prefix to use for detected flags") set(VCPKG_VARS_TO_CHECK "${VCPKG_DEFAULT_VARS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") set(VCPKG_FLAGS_TO_CHECK "${VCPKG_DEFAULT_FLAGS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") set(VCPKG_ENV_VARS_TO_CHECK "${VCPKG_DEFAULT_ENV_VARS_TO_CHECK}" CACHE STRING "Variables to check. If not given there is a list of defaults") foreach(VAR IN LISTS VCPKG_VARS_TO_CHECK) escaped(value "${${VAR}}") string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${VAR} \"${value}\")\n") endforeach() foreach(_env IN LISTS VCPKG_ENV_VARS_TO_CHECK) if(CMAKE_HOST_WIN32) string(REPLACE "\\" "/" value "$ENV{${_env}}") escaped(value "${value}") else() escaped(value "$ENV{${_env}}") endif() string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_ENV_${_env} \"${value}\")\n") endforeach() set(extra_flags "") if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") string(APPEND extra_flags " \"${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN}${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}\"") else() string(APPEND extra_flags " ${CMAKE_CXX_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN} \"${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}\"") endif() endif() set(extra_flags_compile "") set(extra_flags_link "") if(CMAKE_CXX_COMPILE_OPTIONS_SYSROOT) if(CMAKE_SYSROOT_COMPILE) string(APPEND extra_flags_compile " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT_COMPILE}\"") elseif(CMAKE_SYSROOT) string(APPEND extra_flags_compile " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}\"") endif() if(CMAKE_SYSROOT_LINK) string(APPEND extra_flags_link " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT_LINK}\"") elseif(CMAKE_SYSROOT) string(APPEND extra_flags_link " \"${CMAKE_CXX_COMPILE_OPTIONS_SYSROOT}${CMAKE_SYSROOT}\"") endif() endif() macro(_vcpkg_adjust_flags flag_var) if(MSVC) # Transform MSVC /flags to -flags due to msys2 runtime intepreting /flag as a path. string(REGEX REPLACE "(^| )/" "\\1-" ${flag_var} "${${flag_var}}") if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") if("${flag_var}" STREQUAL "CMAKE_CXX_FLAGS") string(APPEND ${flag_var} " -ZW:nostdlib") endif() endif() endif() if(APPLE) set(flags_to_add_osx_arch_sysroot "${VCPKG_LANG_FLAGS}" CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS) if("${flag_var}" IN_LIST flags_to_add_osx_arch_sysroot) # macOS - append arch and isysroot if cross-compiling if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "${CMAKE_HOST_SYSTEM_PROCESSOR}") foreach(arch IN LISTS CMAKE_OSX_ARCHITECTURES) string(APPEND ${flag_var} " -arch ${arch}") endforeach() endif() if(CMAKE_OSX_SYSROOT) string(APPEND ${flag_var} " -isysroot \"${CMAKE_OSX_SYSROOT}\"") endif() if (CMAKE_OSX_DEPLOYMENT_TARGET) list(GET VCPKG_LANGUAGES 0 lang) string(APPEND ${flag_var} " ${CMAKE_${lang}_OSX_DEPLOYMENT_TARGET_FLAG}${CMAKE_OSX_DEPLOYMENT_TARGET}") unset(lang) endif() endif() unset(flags_to_add_osx_arch_sysroot) endif() set(flags_to_add_target_compile "${VCPKG_LANG_FLAGS}") set(flags_to_add_target_link CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_EXE_LINKER_FLAGS) set(flags_to_add_target "${flags_to_add_target_compile}" "${flags_to_add_target_link}") list(GET VCPKG_LANGUAGES 0 lang) if(CMAKE_${lang}_COMPILER_TARGET AND "${flag_var}" IN_LIST flags_to_add_target) if (CMAKE_${lang}_COMPILER_ID STREQUAL Clang) string(PREPEND ${flag_var} "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET}${CMAKE_${lang}_COMPILER_TARGET} ") elseif(CMAKE_${lang}_COMPILE_OPTIONS_TARGET) string(PREPEND ${flag_var} "${CMAKE_${lang}_COMPILE_OPTIONS_TARGET} ${CMAKE_${lang}_COMPILER_TARGET} ") endif() endif() if("${flag_var}" IN_LIST flags_to_add_target) string(APPEND ${flag_var} " ${extra_flags}") endif() if("${flag_var}" IN_LIST flags_to_add_target_compile) string(APPEND ${flag_var} " ${extra_flags_compile}") endif() if("${flag_var}" IN_LIST flags_to_add_target_link) string(APPEND ${flag_var} " ${extra_flags_link}") endif() unset(lang) unset(flags_to_add_target) endmacro() foreach(flag IN LISTS VCPKG_FLAGS_TO_CHECK) string(STRIP "${${flag}}" ${flag}) # Strip leading and trailing whitespaces _vcpkg_adjust_flags(${flag}) escaped(value "${${flag}}") string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_RAW_${flag} \" ${value}\")\n") foreach(config IN LISTS VCPKG_CONFIGS) escaped(raw_value "${CMAKE_${flag}_FLAGS_${config}}") string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_RAW_${flag}_${config} \"${raw_value}\")\n") string(STRIP "${${flag}_${config}}" ${flag}_${config}) _vcpkg_adjust_flags(${flag}_${config}) escaped(combined_value "${${flag}} ${${flag}_${config}}") string(STRIP "${combined_value}" combined_value) string(APPEND OUTPUT_STRING "set(${VCPKG_VAR_PREFIX}_${flag}_${config} \"${combined_value}\")\n") endforeach() endforeach() file(WRITE "${VCPKG_OUTPUT_FILE}" "${OUTPUT_STRING}") # Programs: # CMAKE_AR # CMAKE__COMPILER_AR (Wrapper) # CMAKE_RANLIB # CMAKE__COMPILER_RANLIB # CMAKE_STRIP # CMAKE_NM # CMAKE_OBJDUMP # CMAKE_DLLTOOL # CMAKE_MT # CMAKE_LINKER # CMAKE_C_COMPILER # CMAKE_CXX_COMPILER # CMAKE_RC_COMPILER # Flags: # CMAKE__FLAGS # CMAKE__FLAGS_ # CMAKE_RC_FLAGS # CMAKE_SHARED_LINKER_FLAGS # CMAKE_STATIC_LINKER_FLAGS # CMAKE_STATIC_LINKER_FLAGS_ # CMAKE_EXE_LINKER_FLAGS # CMAKE_EXE_LINKER_FLAGS_ ================================================ FILE: scripts/ifw/maintenance.qs ================================================ // constructor function Component() { installer.installationStarted.connect(this, Component.prototype.onInstallationStarted); } Component.prototype.onInstallationStarted = function() { if (component.updateRequested() || component.installationRequested()) { if (installer.value("os") == "win") component.installerbaseBinaryPath = "@TargetDir@/tempmaintenancetool.exe"; installer.setInstallerBaseBinary(component.installerbaseBinaryPath); } } Component.prototype.createOperations = function() { // call the base createOperations component.createOperations(); // only for windows online installer if ( installer.value("os") == "win" && !installer.isOfflineOnly() ) { // shortcut to add or remove packages component.addOperation( "CreateShortcut", "@TargetDir@/maintenancetool.exe", "@StartMenuDir@/Manage vcpkg.lnk", " --manage-packages"); // shortcut to update packages component.addOperation( "CreateShortcut", "@TargetDir@/maintenancetool.exe", "@StartMenuDir@/Update vcpkg.lnk", " --updater"); } // create uninstall link only for windows if (installer.value("os") == "win") { // shortcut to uninstaller component.addOperation( "CreateShortcut", "@TargetDir@/maintenancetool.exe", "@StartMenuDir@/Uninstall vcpkg.lnk", " --uninstall"); } } ================================================ FILE: scripts/ports.cmake ================================================ cmake_minimum_required(VERSION 3.21) if(POLICY CMP0174) # Use CMake 3.31 behavior for cmake_parse_arguments(PARSE_ARGV) cmake_policy(SET CMP0174 NEW) endif() if(CMAKE_VERSION VERSION_GREATER_EQUAL "4.0") set(ENV{CMAKE_POLICY_VERSION_MINIMUM} 3.5) endif() # Remove CMAKE_ variables from the script call foreach(i RANGE 0 "${CMAKE_ARGC}") unset(CMAKE_ARGV${i}) endforeach() unset(CMAKE_ARGN) unset(CMAKE_ARGC) unset(i) # These don't make sense in script context unset(CMAKE_BINARY_DIR) unset(CMAKE_SOURCE_DIR) unset(CMAKE_CURRENT_BINARY_DIR) unset(CMAKE_CURRENT_SOURCE_DIR) unset(CMAKE_FILES_DIRECTORY) # Minimum CMake version is forced within vcpkg unset(CMAKE_MINIMUM_REQUIRED_VERSION) # CMAKE_VERSION is enough for doing version checks unset(CMAKE_MAJOR_VERSION) unset(CMAKE_MINOR_VERSION) unset(CMAKE_PATCH_VERSION) unset(CMAKE_TWEAK_VERSION) set(SCRIPTS "${CMAKE_CURRENT_LIST_DIR}" CACHE PATH "Location to stored scripts") list(APPEND CMAKE_MODULE_PATH "${SCRIPTS}/cmake") # Increment this number if we intentionally need to invalidate all binary caches due a change in # the following scripts: 1 include("${SCRIPTS}/cmake/execute_process.cmake") include("${SCRIPTS}/cmake/vcpkg_acquire_msys.cmake") include("${SCRIPTS}/cmake/vcpkg_add_to_path.cmake") include("${SCRIPTS}/cmake/vcpkg_apply_patches.cmake") include("${SCRIPTS}/cmake/vcpkg_backup_restore_env_vars.cmake") include("${SCRIPTS}/cmake/vcpkg_build_cmake.cmake") include("${SCRIPTS}/cmake/vcpkg_build_make.cmake") include("${SCRIPTS}/cmake/vcpkg_build_msbuild.cmake") include("${SCRIPTS}/cmake/vcpkg_build_ninja.cmake") include("${SCRIPTS}/cmake/vcpkg_build_nmake.cmake") include("${SCRIPTS}/cmake/vcpkg_build_qmake.cmake") include("${SCRIPTS}/cmake/vcpkg_buildpath_length_warning.cmake") include("${SCRIPTS}/cmake/vcpkg_check_features.cmake") include("${SCRIPTS}/cmake/vcpkg_check_linkage.cmake") include("${SCRIPTS}/cmake/vcpkg_clean_executables_in_bin.cmake") include("${SCRIPTS}/cmake/vcpkg_clean_msbuild.cmake") include("${SCRIPTS}/cmake/vcpkg_configure_cmake.cmake") include("${SCRIPTS}/cmake/vcpkg_configure_gn.cmake") include("${SCRIPTS}/cmake/vcpkg_configure_make.cmake") include("${SCRIPTS}/cmake/vcpkg_configure_meson.cmake") include("${SCRIPTS}/cmake/vcpkg_configure_qmake.cmake") include("${SCRIPTS}/cmake/vcpkg_copy_pdbs.cmake") include("${SCRIPTS}/cmake/vcpkg_copy_tool_dependencies.cmake") include("${SCRIPTS}/cmake/vcpkg_copy_tools.cmake") include("${SCRIPTS}/cmake/vcpkg_download_distfile.cmake") include("${SCRIPTS}/cmake/vcpkg_download_sourceforge.cmake") include("${SCRIPTS}/cmake/vcpkg_execute_build_process.cmake") include("${SCRIPTS}/cmake/vcpkg_execute_required_process.cmake") include("${SCRIPTS}/cmake/vcpkg_execute_required_process_repeat.cmake") include("${SCRIPTS}/cmake/vcpkg_extract_archive.cmake") include("${SCRIPTS}/cmake/vcpkg_extract_source_archive.cmake") include("${SCRIPTS}/cmake/vcpkg_extract_source_archive_ex.cmake") include("${SCRIPTS}/cmake/vcpkg_fail_port_install.cmake") include("${SCRIPTS}/cmake/vcpkg_find_acquire_program.cmake") include("${SCRIPTS}/cmake/vcpkg_fixup_cmake_targets.cmake") include("${SCRIPTS}/cmake/vcpkg_fixup_pkgconfig.cmake") include("${SCRIPTS}/cmake/vcpkg_from_bitbucket.cmake") include("${SCRIPTS}/cmake/vcpkg_from_git.cmake") include("${SCRIPTS}/cmake/vcpkg_from_github.cmake") include("${SCRIPTS}/cmake/vcpkg_from_gitlab.cmake") include("${SCRIPTS}/cmake/vcpkg_from_sourceforge.cmake") include("${SCRIPTS}/cmake/vcpkg_get_program_files_platform_bitness.cmake") include("${SCRIPTS}/cmake/vcpkg_get_windows_sdk.cmake") include("${SCRIPTS}/cmake/vcpkg_host_path_list.cmake") include("${SCRIPTS}/cmake/vcpkg_install_cmake.cmake") include("${SCRIPTS}/cmake/vcpkg_install_copyright.cmake") include("${SCRIPTS}/cmake/vcpkg_install_gn.cmake") include("${SCRIPTS}/cmake/vcpkg_install_make.cmake") include("${SCRIPTS}/cmake/vcpkg_install_meson.cmake") include("${SCRIPTS}/cmake/vcpkg_install_msbuild.cmake") include("${SCRIPTS}/cmake/vcpkg_install_nmake.cmake") include("${SCRIPTS}/cmake/vcpkg_install_qmake.cmake") include("${SCRIPTS}/cmake/vcpkg_list.cmake") include("${SCRIPTS}/cmake/vcpkg_minimum_required.cmake") include("${SCRIPTS}/cmake/vcpkg_replace_string.cmake") include("${SCRIPTS}/cmake/vcpkg_test_cmake.cmake") include("${SCRIPTS}/cmake/z_vcpkg_apply_patches.cmake") include("${SCRIPTS}/cmake/z_vcpkg_forward_output_variable.cmake") include("${SCRIPTS}/cmake/z_vcpkg_function_arguments.cmake") include("${SCRIPTS}/cmake/z_vcpkg_get_cmake_vars.cmake") include("${SCRIPTS}/cmake/z_vcpkg_prettify_command_line.cmake") include("${SCRIPTS}/cmake/z_vcpkg_setup_pkgconfig_path.cmake") include("${SCRIPTS}/cmake/z_vcpkg_fixup_rpath.cmake") include("${SCRIPTS}/cmake/z_vcpkg_fixup_rpath_macho.cmake") function(debug_message) if(PORT_DEBUG) z_vcpkg_function_arguments(ARGS) list(JOIN ARGS " " ARG_STRING) message(STATUS "[DEBUG] " "${ARG_STRING}") endif() endfunction() function(z_vcpkg_deprecation_message) z_vcpkg_function_arguments(ARGS) list(JOIN ARGS " " ARG_STRING) message(DEPRECATION "${ARG_STRING}") endfunction() option(_VCPKG_PROHIBIT_BACKCOMPAT_FEATURES "Controls whether use of a backcompat only support feature fails the build.") if (_VCPKG_PROHIBIT_BACKCOMPAT_FEATURES) set(Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL "FATAL_ERROR") else() set(Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL "WARNING") endif() vcpkg_minimum_required(VERSION 2022-10-12) file(TO_CMAKE_PATH "${BUILDTREES_DIR}" BUILDTREES_DIR) file(TO_CMAKE_PATH "${PACKAGES_DIR}" PACKAGES_DIR) set(CURRENT_INSTALLED_DIR "${_VCPKG_INSTALLED_DIR}/${TARGET_TRIPLET}" CACHE PATH "Location to install final packages") if(DEFINED CURRENT_BUILDTREES_DIR) file(TO_CMAKE_PATH "${CURRENT_BUILDTREES_DIR}" CURRENT_BUILDTREES_DIR) elseif(PORT) set(CURRENT_BUILDTREES_DIR "${BUILDTREES_DIR}/${PORT}") endif() if(DEFINED CURRENT_PACKAGES_DIR) file(TO_CMAKE_PATH "${CURRENT_PACKAGES_DIR}" CURRENT_PACKAGES_DIR) elseif(PORT) set(CURRENT_PACKAGES_DIR "${PACKAGES_DIR}/${PORT}_${TARGET_TRIPLET}") endif() if(CMD STREQUAL "BUILD") set(CMAKE_TRIPLET_FILE "${TARGET_TRIPLET_FILE}") if(NOT EXISTS "${CMAKE_TRIPLET_FILE}") message(FATAL_ERROR "Unsupported target triplet. Triplet file does not exist: ${CMAKE_TRIPLET_FILE}") endif() if(NOT DEFINED CURRENT_PORT_DIR) message(FATAL_ERROR "CURRENT_PORT_DIR was not defined") endif() file(TO_CMAKE_PATH "${CURRENT_PORT_DIR}" CURRENT_PORT_DIR) if(NOT EXISTS "${CURRENT_PORT_DIR}") message(FATAL_ERROR "Cannot find port: ${PORT}\n Directory does not exist: ${CURRENT_PORT_DIR}") endif() if(NOT EXISTS "${CURRENT_PORT_DIR}/portfile.cmake") message(FATAL_ERROR "Port is missing portfile: ${CURRENT_PORT_DIR}/portfile.cmake") endif() if(NOT EXISTS "${CURRENT_PORT_DIR}/CONTROL" AND NOT EXISTS "${CURRENT_PORT_DIR}/vcpkg.json") message(FATAL_ERROR "Port is missing control or manifest file: ${CURRENT_PORT_DIR}/{CONTROL,vcpkg.json}") endif() unset(PACKAGES_DIR) unset(BUILDTREES_DIR) if(EXISTS "${CURRENT_PACKAGES_DIR}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}") if(EXISTS "${CURRENT_PACKAGES_DIR}") message(FATAL_ERROR "Unable to remove directory: ${CURRENT_PACKAGES_DIR}\n Files are likely in use.") endif() endif() file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}" "${CURRENT_PACKAGES_DIR}") include("${CMAKE_TRIPLET_FILE}") set(HOST_TRIPLET "${_HOST_TRIPLET}") set(CURRENT_HOST_INSTALLED_DIR "${_VCPKG_INSTALLED_DIR}/${HOST_TRIPLET}" CACHE PATH "Location to install final packages for the host") set(TRIPLET_SYSTEM_ARCH "${VCPKG_TARGET_ARCHITECTURE}") include("${SCRIPTS}/cmake/vcpkg_common_definitions.cmake") function(z_vcpkg_warn_ambiguous_system_variables VARIABLE ACCESS VALUE POS STACK) message("${Z_VCPKG_BACKCOMPAT_MESSAGE_LEVEL}" "Unexpected ${ACCESS} on variable ${VARIABLE} in script mode. This variable name insufficiently expresses whether it refers to the \ target system or to the host system. Use a prefixed variable instead. - Variables providing information about the host: CMAKE_HOST_ VCPKG_HOST_IS_ - Variables providing information about the target: VCPKG_TARGET_IS_ VCPKG_DETECTED_ (using vcpkg_cmake_get_vars) ") endfunction() foreach(var IN ITEMS ANDROID APPLE BSD IOS LINUX MINGW MSVC UNIX WIN32) variable_watch("${var}" z_vcpkg_warn_ambiguous_system_variables) endforeach() if (DEFINED VCPKG_PORT_CONFIGS) foreach(VCPKG_PORT_CONFIG IN LISTS VCPKG_PORT_CONFIGS) include("${VCPKG_PORT_CONFIG}") endforeach() endif() set(Z_VCPKG_ERROR_LOG_COLLECTION_FILE "${CURRENT_BUILDTREES_DIR}/error-logs-${TARGET_TRIPLET}.txt") file(REMOVE "${Z_VCPKG_ERROR_LOG_COLLECTION_FILE}") include("${CURRENT_PORT_DIR}/portfile.cmake") foreach(z_post_portfile_include IN LISTS Z_VCPKG_POST_PORTFILE_INCLUDES) include("${z_post_portfile_include}") endforeach() unset(z_post_portfile_include) if(DEFINED PORT) # Always fixup RPATH on linux, osx and bsds unless explicitly disabled. if(VCPKG_FIXUP_ELF_RPATH OR ((VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_BSD) AND NOT DEFINED VCPKG_FIXUP_ELF_RPATH)) z_vcpkg_fixup_rpath_in_dir() endif() if(VCPKG_FIXUP_MACHO_RPATH OR (VCPKG_TARGET_IS_OSX AND NOT DEFINED VCPKG_FIXUP_MACHO_RPATH)) z_vcpkg_fixup_macho_rpath_in_dir() endif() include("${SCRIPTS}/build_info.cmake") endif() elseif(CMD STREQUAL "CREATE") if(NOT DEFINED PORT_PATH) set(PORT_PATH "${VCPKG_ROOT_DIR}/ports/${PORT}") endif() file(TO_NATIVE_PATH "${PORT_PATH}" NATIVE_PORT_PATH) set(PORTFILE_PATH "${PORT_PATH}/portfile.cmake") file(TO_NATIVE_PATH "${PORTFILE_PATH}" NATIVE_PORTFILE_PATH) set(MANIFEST_PATH "${PORT_PATH}/vcpkg.json") file(TO_NATIVE_PATH "${MANIFEST_PATH}" NATIVE_MANIFEST_PATH) if(EXISTS "${PORTFILE_PATH}") message(FATAL_ERROR "Portfile already exists: '${NATIVE_PORTFILE_PATH}'") endif() if(NOT FILENAME) get_filename_component(FILENAME "${URL}" NAME) endif() string(REGEX REPLACE "(\\.(zip|gz|tar|tgz|bz2))+\$" "" ROOT_NAME "${FILENAME}") set(DOWNLOAD_PATH "${DOWNLOADS}/${FILENAME}") file(TO_NATIVE_PATH "${DOWNLOAD_PATH}" NATIVE_DOWNLOAD_PATH) if(EXISTS "${DOWNLOAD_PATH}") message(STATUS "Using pre-downloaded: ${NATIVE_DOWNLOAD_PATH}") message(STATUS "If this is not desired, delete the file and ${NATIVE_PORT_PATH}") else() message(STATUS "Downloading ${URL} -> ${FILENAME}...") file(DOWNLOAD "${URL}" "${DOWNLOAD_PATH}" STATUS download_status) list(GET download_status 0 status_code) if(NOT "${status_code}" EQUAL "0") message(FATAL_ERROR "Downloading ${URL}... Failed. Status: ${download_status}") endif() endif() file(SHA512 "${DOWNLOAD_PATH}" SHA512) file(MAKE_DIRECTORY "${PORT_PATH}") configure_file("${SCRIPTS}/templates/portfile.in.cmake" "${PORTFILE_PATH}" @ONLY) configure_file("${SCRIPTS}/templates/vcpkg.json.in" "${MANIFEST_PATH}" @ONLY) message(STATUS "Generated portfile: ${NATIVE_PORTFILE_PATH}") message(STATUS "Generated manifest: ${NATIVE_MANIFEST_PATH}") message(STATUS "To launch an editor for these new files, run") message(STATUS " .\\vcpkg edit ${PORT}") endif() ================================================ FILE: scripts/posh-vcpkg/posh-vcpkg.psd1 ================================================ @{ # Script module or binary module file associated with this manifest. RootModule = 'posh-vcpkg.psm1' # Version number of this module. ModuleVersion = '0.0.2' # ID used to uniquely identify this module GUID = '948f02ab-fc99-4a53-8335-b6556eef129b' # Minimum version of the PowerShell engine required by this module PowerShellVersion = '5.1' FunctionsToExport = @() CmdletsToExport = @() VariablesToExport = @() AliasesToExport = @() # Private data to pass to the module specified in RootModule/ModuleToProcess. # This may also contain a PSData hashtable with additional module metadata used by PowerShell. PrivateData = @{ PSData = @{ # Tags applied to this module. These help with module discovery in online galleries. Tags = @('vcpkg', 'tab', 'tab-completion', 'Register-ArgumentCompleter') } } } # SIG # Begin signature block # MIIoVQYJKoZIhvcNAQcCoIIoRjCCKEICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBhs5lsXR9slHzB # kYzN1OwRfrUUbZwdFarIAd9OllzrdaCCDYUwggYDMIID66ADAgECAhMzAAAEA73V # lV0POxitAAAAAAQDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTEzWhcNMjUwOTExMjAxMTEzWjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQCfdGddwIOnbRYUyg03O3iz19XXZPmuhEmW/5uyEN+8mgxl+HJGeLGBR8YButGV # LVK38RxcVcPYyFGQXcKcxgih4w4y4zJi3GvawLYHlsNExQwz+v0jgY/aejBS2EJY # oUhLVE+UzRihV8ooxoftsmKLb2xb7BoFS6UAo3Zz4afnOdqI7FGoi7g4vx/0MIdi # kwTn5N56TdIv3mwfkZCFmrsKpN0zR8HD8WYsvH3xKkG7u/xdqmhPPqMmnI2jOFw/ # /n2aL8W7i1Pasja8PnRXH/QaVH0M1nanL+LI9TsMb/enWfXOW65Gne5cqMN9Uofv # ENtdwwEmJ3bZrcI9u4LZAkujAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU6m4qAkpz4641iK2irF8eWsSBcBkw # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh # dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzUwMjkyNjAfBgNVHSMEGDAW # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB # AFFo/6E4LX51IqFuoKvUsi80QytGI5ASQ9zsPpBa0z78hutiJd6w154JkcIx/f7r # EBK4NhD4DIFNfRiVdI7EacEs7OAS6QHF7Nt+eFRNOTtgHb9PExRy4EI/jnMwzQJV # NokTxu2WgHr/fBsWs6G9AcIgvHjWNN3qRSrhsgEdqHc0bRDUf8UILAdEZOMBvKLC # rmf+kJPEvPldgK7hFO/L9kmcVe67BnKejDKO73Sa56AJOhM7CkeATrJFxO9GLXos # oKvrwBvynxAg18W+pagTAkJefzneuWSmniTurPCUE2JnvW7DalvONDOtG01sIVAB # +ahO2wcUPa2Zm9AiDVBWTMz9XUoKMcvngi2oqbsDLhbK+pYrRUgRpNt0y1sxZsXO # raGRF8lM2cWvtEkV5UL+TQM1ppv5unDHkW8JS+QnfPbB8dZVRyRmMQ4aY/tx5x5+ # sX6semJ//FbiclSMxSI+zINu1jYerdUwuCi+P6p7SmQmClhDM+6Q+btE2FtpsU0W # +r6RdYFf/P+nK6j2otl9Nvr3tWLu+WXmz8MGM+18ynJ+lYbSmFWcAj7SYziAfT0s # IwlQRFkyC71tsIZUhBHtxPliGUu362lIO0Lpe0DOrg8lspnEWOkHnCT5JEnWCbzu # iVt8RX1IV07uIveNZuOBWLVCzWJjEGa+HhaEtavjy6i7MIIHejCCBWKgAwIBAgIK # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm # aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw # OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD # VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG # 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la # UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc # 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D # dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+ # lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk # kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6 # A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd # X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL # 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd # sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3 # T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS # 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI # bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL # BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD # uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf # MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3 # dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf # MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF # BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h # cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA # YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn # 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7 # v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b # pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/ # KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy # CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp # mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi # hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCGiYwghoiAgEBMIGVMH4x # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAQDvdWVXQ87GK0AAAAA # BAMwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIJ0/ # ZM9udgTkgpNbuGSile8N73r9dgtBvFoCknZZBy2SMEIGCisGAQQBgjcCAQwxNDAy # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j # b20wDQYJKoZIhvcNAQEBBQAEggEAVK8HY/qznmz34buAnokKc8De3neutGBfsOGw # +8rb1bunIu6t/DksKZxGsOxc8sEl91vicxYg2ZJNtJQh1r2rkP4GobzG7P2jqa6X # mfXwA9A+jIg16pHQ3e4nCJWIIwUhoivjxQabp2DpFKaJ/duy2swnvqfmlafBubRn # uy8/7MNEq/fz3NCxaGwCUpTSXTCpquUrF9sgRsGFoRzXJRzAfH9aFdjjdyioEbw7 # TYEYTvURpAgde6LRs+pZW9i7FZ2JucxFbDkTBs58a2/rmQ5RSMz5yw9ekAusD6cB # +n3daXIn+4sDUXF6WQnCA8Tk8IWEpzKSHWaH+VBSQVbB/xaoOKGCF7AwghesBgor # BgEEAYI3AwMBMYIXnDCCF5gGCSqGSIb3DQEHAqCCF4kwgheFAgEDMQ8wDQYJYIZI # AWUDBAIBBQAwggFaBgsqhkiG9w0BCRABBKCCAUkEggFFMIIBQQIBAQYKKwYBBAGE # WQoDATAxMA0GCWCGSAFlAwQCAQUABCBJqcIg3GEg1MGCxdkjylr/ZBLgvL1Pn0C2 # 2IVSgDpNfwIGZ2LWE0XzGBMyMDI1MDExMTAwMjQ1Ni42NTVaMASAAgH0oIHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT # Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z # b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEf4wggcoMIIFEKADAgECAhMzAAAB/xI4 # fPfBZdahAAEAAAH/MA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w # IFBDQSAyMDEwMB4XDTI0MDcyNTE4MzExOVoXDTI1MTAyMjE4MzExOVowgdMxCzAJ # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv # c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVs # ZCBUU1MgRVNOOjRDMUEtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGlt # ZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA # yeiV0pB7bg8/qc/mkiDdJXnzJWPYgk9mTGeI3pzQpsyrRJREWcKYHd/9db+g3z4d # U4VCkAZEXqvkxP5QNTtBG5Ipexpph4PhbiJKwvX+US4KkSFhf1wflDAY1tu9CQqh # hxfHFV7vhtmqHLCCmDxhZPmCBh9/XfFJQIUwVZR8RtUkgzmN9bmWiYgfX0R+bDAn # ncUdtp1xjGmCpdBMygk/K0h3bUTUzQHb4kPf2ylkKPoWFYn2GNYgWw8PGBUO0vTM # KjYD6pLeBP0hZDh5P3f4xhGLm6x98xuIQp/RFnzBbgthySXGl+NT1cZAqGyEhT7L # 0SdR7qQlv5pwDNerbK3YSEDKk3sDh9S60hLJNqP71iHKkG175HAyg6zmE5p3fONr # 9/fIEpPAlC8YisxXaGX4RpDBYVKpGj0FCZwisiZsxm0X9w6ZSk8OOXf8JxTYWIqf # RuWzdUir0Z3jiOOtaDq7XdypB4gZrhr90KcPTDRwvy60zrQca/1D1J7PQJAJObbi # aboi12usV8axtlT/dCePC4ndcFcar1v+fnClhs9u3Fn6LkHDRZfNzhXgLDEwb6dA # 4y3s6G+gQ35o90j2i6amaa8JsV/cCF+iDSGzAxZY1sQ1mrdMmzxfWzXN6sPJMy49 # tdsWTIgZWVOSS9uUHhSYkbgMxnLeiKXeB5MB9QMcOScCAwEAAaOCAUkwggFFMB0G # A1UdDgQWBBTD+pXk/rT/d7E/0QE7hH0wz+6UYTAfBgNVHSMEGDAWgBSfpxVdAF5i # XYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jv # c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB # JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRw # Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRp # bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBYGA1Ud # JQEB/wQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsF # AAOCAgEAOSNN5MpLiyunm866frWIi0hdazKNLgRp3WZPfhYgPC3K/DNMzLliYQUA # p6WtgolIrativXjOG1lIjayG9r6ew4H1n5XZdDfJ12DLjopap5e1iU/Yk0eutPyf # OievfbsIzTk/G51+uiUJk772nVzau6hI2KGyGBJOvAbAVFR0g8ppZwLghT4z3mkG # Zjq/O4Z/PcmVGtjGps2TCtI4rZjPNW8O4c/4aJRmYQ/NdW91JRrOXRpyXrTKUPe3 # kN8N56jpl9kotLhdvd89RbOsJNf2XzqbAV7XjV4caCglA2btzDxcyffwXhLu9HMU # 3dLYTAI91gTNUF7BA9q1EvSlCKKlN8N10Y4iU0nyIkfpRxYyAbRyq5QPYPJHGA0T # y0PD83aCt79Ra0IdDIMSuwXlpUnyIyxwrDylgfOGyysWBwQ/js249bqQOYPdpyOd # gRe8tXdGrgDoBeuVOK+cRClXpimNYwr61oZ2/kPMzVrzRUYMkBXe9WqdSezh8tyt # uulYYcRK95qihF0irQs6/WOQJltQX79lzFXE9FFln9Mix0as+C4HPzd+S0bBN3A3 # XRROwAv016ICuT8hY1InyW7jwVmN+OkQ1zei66LrU5RtAz0nTxx5OePyjnTaItTS # Y4OGuGU1SXaH49JSP3t8yGYA/vorbW4VneeD721FgwaJToHFkOIwggdxMIIFWaAD # AgECAhMzAAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYD # VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe # MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3Nv # ZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIy # MjVaFw0zMDA5MzAxODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y # cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw # MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5 # vQ7VgtP97pwHB9KpbE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64 # NmeFRiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhu # je3XD9gmU3w5YQJ6xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl # 3GoPz130/o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPg # yY9+tVSP3PoFVZhtaDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I # 5JasAUq7vnGpF1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2 # ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/ # TNuvXsLz1dhzPUNOwTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy # 16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y # 1BzFa/ZcUlFdEtsluq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H # XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMB # AAEwIwYJKwYBBAGCNxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQW # BBSfpxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30B # ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz # L0RvY3MvUmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYB # BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB # Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL # oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv # TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr # BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS # b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq # reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27 # DzHkwo/7bNGhlBgi7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pv # vinLbtg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9Ak # vUCgvxm2EhIRXT0n4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWK # NsIdw2FzLixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2 # kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+ # c23Kjgm9swFXSVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep # 8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+Dvk # txW/tM4+pTFRhLy/AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1Zyvg # DbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/ # 2XBjU02N7oJtpQUQwXEGahC0HVUzWLOhcGbyoYIDWTCCAkECAQEwggEBoYHZpIHW # MIHTMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQL # EyRNaWNyb3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJzAlBgNVBAsT # Hm5TaGllbGQgVFNTIEVTTjo0QzFBLTA1RTAtRDk0NzElMCMGA1UEAxMcTWljcm9z # b2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAqROMbMS8JcUl # cnPkwRLFRPXFspmggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz # aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv # cnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAx # MDANBgkqhkiG9w0BAQsFAAIFAOsrpfMwIhgPMjAyNTAxMTAxMzU4MTFaGA8yMDI1 # MDExMTEzNTgxMVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA6yul8wIBADAKAgEA # AgIJbgIB/zAHAgEAAgISkzAKAgUA6yz3cwIBADA2BgorBgEEAYRZCgQCMSgwJjAM # BgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEB # CwUAA4IBAQCLcCh9bX/RVDwfc4POERjOC1r/Ho89VmopgSIl+ggY/t9oREd7iFUS # 7W5bnIzOPkrxBaLkPWfPsUxqce740pZbzekTDig7ZD7rqMfr808JH170+Xn+3WIo # Lt9QV/hA/UP/sZ7qxdUtRy4DsG21+81VBjlBc4op/TrZ1pPmubA6Qcxlppo8/6cu # /hByjdtwg4DPxIR3+VDkugZJrRqwYL0+3HcH1r5tBBJN0eyvJ3I2Kf1DEQQz5LH/ # yWpkym9Tcwan5QNpMyYAJ6XHty8cHL1+GYpahsmPNeGNR4zhS2w1folAn8sHo7AN # qnQ1KYjL3eQ1cxG5jVLSgoSAZGlYL1pOMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UE # BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc # BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0 # IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH/Ejh898Fl1qEAAQAAAf8wDQYJYIZI # AWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG # 9w0BCQQxIgQgHXg8G5FNNrrsFotPLEkfAWyBk3gE/USEfpsP+TXINb8wgfoGCyqG # SIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDkMu++yQJ3aaycIuMT6vA7JNuMaVOI3qDj # SEV8upyn/TCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n # dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y # YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMz # AAAB/xI4fPfBZdahAAEAAAH/MCIEIFdFxcHPft5K+RC1+sYiGsEw1ZL+Smew4S1G # tAZ3nEH/MA0GCSqGSIb3DQEBCwUABIICAF7rF3CCuiqOAATvQkeKDX2HWaLxaGhF # EkvYsYeuAbMHb2gSkXlDq0lEM8dYW13csCNzVAOcE4oETrsto+HGaUvSbbNFrtb6 # gd6cOUd4xci3qAViaLBLK6VJBC6TIkmLCrik/41Mv667uh4xcNPaOiIf0hy2onkK # ski4E7rAYSUvctrtHrcfTT/YYk/vWmefqYipq0/7k836xYGVTzLj98pBld5k4xGn # gWKvHaX609hbwQMXIjfnqFnbGiSyPbP/FZu1Nb9ABFm2zt9E4+3/P0DfZ+A1aeU/ # jo/Fj7A+HL7dAUAX5JIwFZu8rrLgAtaGl+uBf5qF8+7ezM3e7+YeZ8CSS6UYj8t2 # CSWt75n35SLleXFJUzBekdkmBArcJj6YZsxGzRfa0BWt+bGcPGs+wgX2QotaivME # ujDxyXoClWJM73WHyLklcm+rpqOdvuODKibLR3nyC6XmJl57wI7QEjpr2eNrig1k # Zn7onGbhpAVKG5OyIwfYqy4T/aTlNysq3kSwjnIl24UcLT3ycC2kVUYze62zB5ku # 0h53wDarhDAznUziBj9hKv5BRIWTt//grtfOAG7Rb9ZaJOP5z+kHiHoHLlWBedAK # h/RuqoTxm53e7Ap3WN9gfUQKzP/4LHD9qQHmbv+wsvxbkV0KtdtGinVb6bWowq4s # eXgi5lClk+l9 # SIG # End signature block ================================================ FILE: scripts/posh-vcpkg/posh-vcpkg.psm1 ================================================ Register-ArgumentCompleter -Native -CommandName vcpkg -ScriptBlock { param( [string]$wordToComplete, [System.Management.Automation.Language.CommandAst]$commandAst, [int]$cursorPosition ) if ($cursorPosition -lt $commandAst.CommandElements[0].Extent.EndOffset) { return } [string]$commandText = $commandAst.CommandElements[0].Value [string[]]$textsBeforeCursor = $commandAst.CommandElements | Select-Object -Skip 1 | ForEach-Object { if ($_.Extent.EndOffset -le $cursorPosition) { $_.Extent.Text } elseif ($_.Extent.StartOffset -lt $cursorPosition) { $_.Extent.Text.Substring(0, $cursorPosition - $_.Extent.StartOffset) } } $spaceToComplete = if ($wordToComplete -ne '') { $null } elseif ($PSNativeCommandArgumentPassing -in 'Standard', 'Windows') { '' } else { '""' } [PowerShell]$cmd = [PowerShell]::Create().AddScript{ Set-Location $args[0] & $args[1] autocomplete @($args[2]) }.AddParameters(($PWD, $commandText, @($textsBeforeCursor + $spaceToComplete))) [string[]]$completions = $cmd.Invoke() if ($cmd.HadErrors -or $completions.Count -eq 0) { return } else { return $completions } } # SIG # Begin signature block # MIIoRQYJKoZIhvcNAQcCoIIoNjCCKDICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD3lp9tM1D1Aouy # vkIi4UIH5pxBs6VEvfzAYqoThk7yzaCCDXYwggX0MIID3KADAgECAhMzAAAEBGx0 # Bv9XKydyAAAAAAQEMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p # bmcgUENBIDIwMTEwHhcNMjQwOTEyMjAxMTE0WhcNMjUwOTExMjAxMTE0WjB0MQsw # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQC0KDfaY50MDqsEGdlIzDHBd6CqIMRQWW9Af1LHDDTuFjfDsvna0nEuDSYJmNyz # NB10jpbg0lhvkT1AzfX2TLITSXwS8D+mBzGCWMM/wTpciWBV/pbjSazbzoKvRrNo # DV/u9omOM2Eawyo5JJJdNkM2d8qzkQ0bRuRd4HarmGunSouyb9NY7egWN5E5lUc3 # a2AROzAdHdYpObpCOdeAY2P5XqtJkk79aROpzw16wCjdSn8qMzCBzR7rvH2WVkvF # HLIxZQET1yhPb6lRmpgBQNnzidHV2Ocxjc8wNiIDzgbDkmlx54QPfw7RwQi8p1fy # 4byhBrTjv568x8NGv3gwb0RbAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU8huhNbETDU+ZWllL4DNMPCijEU4w # RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW # MBQGA1UEBRMNMjMwMDEyKzUwMjkyMzAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci # tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j # b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG # CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu # Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0 # MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAIjmD9IpQVvfB1QehvpC # Ge7QeTQkKQ7j3bmDMjwSqFL4ri6ae9IFTdpywn5smmtSIyKYDn3/nHtaEn0X1NBj # L5oP0BjAy1sqxD+uy35B+V8wv5GrxhMDJP8l2QjLtH/UglSTIhLqyt8bUAqVfyfp # h4COMRvwwjTvChtCnUXXACuCXYHWalOoc0OU2oGN+mPJIJJxaNQc1sjBsMbGIWv3 # cmgSHkCEmrMv7yaidpePt6V+yPMik+eXw3IfZ5eNOiNgL1rZzgSJfTnvUqiaEQ0X # dG1HbkDv9fv6CTq6m4Ty3IzLiwGSXYxRIXTxT4TYs5VxHy2uFjFXWVSL0J2ARTYL # E4Oyl1wXDF1PX4bxg1yDMfKPHcE1Ijic5lx1KdK1SkaEJdto4hd++05J9Bf9TAmi # u6EK6C9Oe5vRadroJCK26uCUI4zIjL/qG7mswW+qT0CW0gnR9JHkXCWNbo8ccMk1 # sJatmRoSAifbgzaYbUz8+lv+IXy5GFuAmLnNbGjacB3IMGpa+lbFgih57/fIhamq # 5VhxgaEmn/UjWyr+cPiAFWuTVIpfsOjbEAww75wURNM1Imp9NJKye1O24EspEHmb # DmqCUcq7NqkOKIG4PVm3hDDED/WQpzJDkvu4FrIbvyTGVU01vKsg4UfcdiZ0fQ+/ # V0hf8yrtq9CkB8iIuk5bBxuPMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq # hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x # EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 # IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG # EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg # Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC # CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03 # a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr # rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg # OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy # 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9 # sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh # dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k # A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB # w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn # Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90 # lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w # ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o # ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD # VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa # BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny # bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG # AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t # L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV # HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3 # dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG # AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl # AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb # C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l # hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6 # I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0 # wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560 # STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam # ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa # J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr # /Xmfwb1tbWrJUnMTDXpQzTGCGiUwghohAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp # Z25pbmcgUENBIDIwMTECEzMAAAQEbHQG/1crJ3IAAAAABAQwDQYJYIZIAWUDBAIB # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO # MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBSdnuz9beOL1XZFf6XEgbeF # TIiv3265cxy0vW0PGSA/MEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB # BQAEggEANo6T+xCuafTYJYFSUnxmvREkGtL4fdEsZtD8PJsm1MQozZDm/5XkdfZB # hGtaUSKZyleya9rPMf+ofjOim6P3cZ7iLP8QUgC4vFpG2jACnVc8XT0bY+sVf9Ry # 7XP37hEqNm6Bq9+UUiBaCuyG1UXsdzOpiPBWdisM37ckhd3fwF0BfBnaXtK0Tpup # Aq/SIEy2UvhvcMLP9cAP1A5MRzfZqKsBjYNk1rKNbCeWyXvXRCOcNcpVdW5jFcvW # TRmuPvI1z7M8l4BEUeMm7FdXPlbvlfXOTANX3M+u3iUhw8Rl+uCczI5HmIUz/TOj # TBIlY1wypJ2o/sOt/fS3csmuFhmnVqGCF68wgherBgorBgEEAYI3AwMBMYIXmzCC # F5cGCSqGSIb3DQEHAqCCF4gwgheEAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFZBgsq # hkiG9w0BCRABBKCCAUgEggFEMIIBQAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl # AwQCAQUABCD7a/cqGHLI/6Hw5hYBmJPAhNWA+oOxzSwqnZj2d8Z9RQIGZ2KydTkU # GBIyMDI1MDExMTAwMjQ1NC44M1owBIACAfSggdmkgdYwgdMxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs # YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO # OjZCMDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT # ZXJ2aWNloIIR/jCCBygwggUQoAMCAQICEzMAAAH2gy8malRdIsEAAQAAAfYwDQYJ # KoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x # EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcNMjQw # NzI1MTgzMTA0WhcNMjUxMDIyMTgzMTA0WjCB0zELMAkGA1UEBhMCVVMxEzARBgNV # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv # c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl # cmF0aW9ucyBMaW1pdGVkMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046NkIwNS0w # NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Uw # ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDRQl4sxH831Y8FmG4pUUX5 # 5Ylnrxa6N2PhfolHTlzE7kJ6k1ejXutVrPBYuSbkCNpWHX1lWMMKEfOKbGyhpfE2 # 7wgOCArCle+kAAi2/hTHnR71La5XB8q/nun0kob5DtU41KG6OXU0IyRyBKs92Z3/ # zNyyaHNw2hsuiasIAg5FnwjCFjLiyJVCV/U0qGXIDOaRYkPQ37rQiKiAUHODfIhK # y+ug7HTHXFKLY+JEhCVNcTvgyCBkMgMqof+Fv0VPaQr+dX9peO6j0syutGafjihh # gAN7+s73kX5Ibe666F/4fgiuJevSH2m0DpLAck9LZWZs1YKNBarkbhiStyps8xrH # u81dTC7tPrkTx8U93Ui4T1GwbhMwBXteRcGimY81+8vSGPGDjiSlCffzhXjqj7N1 # CrLkr10OVab8nq9m2nnIDU/IPfD4dsa5tLSeIRDUvrAY6s9/MibQV06f7EWjjwRG # X4XHD/c69czkJjUSqfMTOc+PMlzs4nCElVHdVAMeMFwQVM69L0TR2I27V6hzD5kK # TPg+7+hC/6CpT5t/Evx7s8WS19EOUzoXI7OM/jO4jbmAPy073MmDqDp9Glplzjf2 # YBuSXfMJXNMsOByG/pLFBqMm2++hBpnFB/S1GI9xuvYdZ8yiqp326JDSFNQSEbjg # UFJN5Q9l4R6dEJZp0JbgbwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFEjBmwm45wl9 # Jw9Zxdm4EDgHz0ryMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G # A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv # Y3JsL01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBs # BggrBgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0 # LmNvbS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUy # MDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUH # AwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDXeQGKsfVwe7VZ # hHXKyPXbmiYa1DQ9pCQTPAZvvTG2pKgj6y9CKGyB1NjFo9+nYhUV2CNoxoGLzXAH # z+e7zroV8Uop2F2nfCcxn3U+k/g6h7s1x/qogKSBK7CB0h1C+oTSHxVDlBbmwNXh # DQmePh/sodjHg2IzwLiNPDxJC2y7FaJMfYeKR/dBgHvVrt0H3OAc6RbSGBQR5Y72 # aHbBaphL9DjwBKM6pjD+FrnihU59/bZZqgf78fF301MRT/i+W+xEgxZPSOyc0jvW # NUCtPhD0G3pVKFbPKqtoTpIpShmsTAGlWwjQsyDZfeE4tuULW/Ezf7AzI6H3toU6 # zuwWe56a0jYx+PyqDXoFlMnFeWk+6tasb44GPgGhMOQL0DFdgHfIS27AyzulFYvL # EjHD/BX1McpQab7H5UTQ84vCStIyCO6VJeSl8QsdZaIJWyUlsUggH/gCW/6NAlIo # Am6j0IStubap4OT/OMliVhpUYzIq5hn65JFUoHaqQQ9wTMbV073MhrUynfYn7PNb # c/uy4l+PDrazeEM4uT7qUxA5HTjH7ajXsbctx4uSTEmbjUSt2JOMCZ0KV6f3KXoe # AykZLiiSMUIlf4Kk4VfuAEDc9XFBa5uKwBBsvkeBMUG1A0TNwJ2HUZjD/qfPM023 # 7QZCeehsF1184CKqTO8i2peO8bIrVDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKb # SZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv # ZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmlj # YXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy # NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT # B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE # AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEB # AQUAA4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXI # yjVX9gF/bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjo # YH1qUoNEt6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1y # aa8dq6z2Nr41JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v # 3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pG # ve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viS # kR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYr # bqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM # jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL # W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AF # emzFER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIu # rQIDAQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIE # FgQUKqdS/mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWn # G1M1GelyMFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEW # M2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5 # Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBi # AEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV # 9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3Js # Lm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx # MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v # d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2 # LTIzLmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv # 6lwUtj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZn # OlNN3Zi6th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1 # bSNU5HhTdSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4 # rPf5KYnDvBewVIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU # 6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDF # NLB62FD+CljdQDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/ # HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdU # CbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi # excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm # dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZq # ELQdVTNYs6FwZvKhggNZMIICQQIBATCCAQGhgdmkgdYwgdMxCzAJBgNVBAYTAlVT # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVs # YW5kIE9wZXJhdGlvbnMgTGltaXRlZDEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO # OjZCMDUtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT # ZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQAVT15Kl3GzRrTokUi4YUciP8j7fqCBgzCB # gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH # EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV # BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUA # AgUA6ywrEzAiGA8yMDI1MDExMDIzMjYxMVoYDzIwMjUwMTExMjMyNjExWjB3MD0G # CisGAQQBhFkKBAExLzAtMAoCBQDrLCsTAgEAMAoCAQACAglJAgH/MAcCAQACAhJQ # MAoCBQDrLXyTAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAI # AgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQELBQADggEBAL+LJZgrakLD # eDWAOC6zw3pF6nMPU7y9UIAHgCxa8O1/OGcF261k98S/EHvL1Q9kHrgnFqA+6uSq # VroQXeR4HBXCsMvdmsgeyIXjIxu8LJmLgkqNH03KjJeHLcqXs8IOiRIYVKajOJPA # rkZ/79+7ovJckIYWtPHjMky4M6v5CG5ngAX8ja5FcYzU3lKfshau5mO9taRDXs2H # akdwxm037yFAP9m1YQvszZdMsY5IpnBG/MyburgvCAiz9Mc2go/fWJ/AQnMuYpp2 # 9vfRzzGmSuOYh6Hq6iRDUY3l4fzftJWauBGon7zyJGjXwauPqbkhIGuE3Gl3/xSd # T7oiHYZkTp8xggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 # IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg # MjAxMAITMwAAAfaDLyZqVF0iwQABAAAB9jANBglghkgBZQMEAgEFAKCCAUowGgYJ # KoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCC7BfAbtu7L # NhZD+LBoXPUD61Q3zYpGMszQh6YcYypYvDCB+gYLKoZIhvcNAQkQAi8xgeowgecw # geQwgb0EICthTPGUXqblRItLh/w1cv/xqg0RV2wJlGYX4uVCMbaiMIGYMIGApH4w # fDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl # ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd # TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAH2gy8malRdIsEAAQAA # AfYwIgQgJpA8sGCojR8TK5VZYo7CnBq41SnmOgCOIksZcp+/9G0wDQYJKoZIhvcN # AQELBQAEggIAiyem0a23Sz8inCm9PHLmtJcc/+e+Dv7nhQtw87LgRpPlinjWejdM # kJZN+8ZlWftQeJjrlsaKwdZ/qO1tJYegiHyVOCVqXzbP2bLvz1E1zbIk0AyB8Uw7 # Ms0PzPJxjrJgNpot+aDMk4HtFG9wmHsAHv2PIjtJxkbJa/W67hi9SADXDVtOXSVg # yjBYwuC9XvPDlgVg07Kn87jNwoGSqVad4MO0bCVZhHEmrDaSKsJ59ld+cdFNL31x # FCkxhXkxtzklytDYBu6QPt0WTANZwZFtJ3LhGOi+eCc1BWCMtnItbOSeBoJkIODf # oOjchNwMNHPrzoUqmQjClKGRMsuovziJYvEQuiyx9nmupsws1ZbZb5Tu0gz5hpjH # CNIrq2MsMBT7TP541V+si6l40Rodp+UzZxjGM4nJHIPW9YQXGqCb2JBeC9Ac2pL6 # ZA4aPy9fXG6YNeYweBle6jOgFF0gN0LcOfRywZI2Cl0O845cLXZ5GrktLJ0+wqea # pWG2PRVislBWGUIgACyr9OuHiyOH/jxH7+STiu/Go5kVTc9cgSmpVfXGpjjIiefN # +sL2i9ehKSBR4bytpnnn3/nPRfll7vhdqc2TAfJ8ETwaGa+gwb0Bgkt/O4AOZqRt # 5dUckjdIOpeuxv6Nt/h+5jb84y9MW4oQ8CRQ3J54M7hHseOQh6YhxGE= # SIG # End signature block ================================================ FILE: scripts/templates/portfile.in.cmake ================================================ # 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} # CURRENT_INSTALLED_DIR = ${VCPKG_ROOT_DIR}\installed\${TRIPLET} # DOWNLOADS = ${VCPKG_ROOT_DIR}\downloads # 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) # VCPKG_TOOLCHAIN = ON OFF # TRIPLET_SYSTEM_ARCH = arm x86 x64 # BUILD_ARCH = "Win32" "x64" "ARM" # DEBUG_CONFIG = "Debug Static" "Debug Dll" # RELEASE_CONFIG = "Release Static"" "Release DLL" # VCPKG_TARGET_IS_WINDOWS # VCPKG_TARGET_IS_UWP # VCPKG_TARGET_IS_LINUX # VCPKG_TARGET_IS_OSX # VCPKG_TARGET_IS_FREEBSD # VCPKG_TARGET_IS_ANDROID # VCPKG_TARGET_IS_MINGW # VCPKG_TARGET_EXECUTABLE_SUFFIX # VCPKG_TARGET_STATIC_LIBRARY_SUFFIX # VCPKG_TARGET_SHARED_LIBRARY_SUFFIX # # See additional helpful variables in /docs/maintainers/vcpkg_common_definitions.md # Also consider vcpkg_from_* functions if you can; the generated code here is for any web accessable # source archive. # vcpkg_from_github # vcpkg_from_gitlab # vcpkg_from_bitbucket # vcpkg_from_sourceforge vcpkg_download_distfile(ARCHIVE URLS "@URL@" FILENAME "@FILENAME@" SHA512 @SHA512@ ) vcpkg_extract_source_archive_ex( OUT_SOURCE_PATH SOURCE_PATH ARCHIVE "${ARCHIVE}" # (Optional) A friendly name to use instead of the filename of the archive (e.g.: a version number or tag). # REF 1.0.0 # (Optional) Read the docs for how to generate patches at: # https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/patching.md # PATCHES # 001_port_fixes.patch # 002_more_port_fixes.patch ) # # Check if one or more features are a part of a package installation. # # See /docs/maintainers/vcpkg_check_features.md for more details # vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS # FEATURES # tbb WITH_TBB # INVERTED_FEATURES # tbb ROCKSDB_IGNORE_PACKAGE_TBB # ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 # OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1 ) vcpkg_cmake_install() # # Moves all .cmake files from /debug/share/@PORT@/ to /share/@PORT@/ # # See /docs/maintainers/ports/vcpkg-cmake-config/vcpkg_cmake_config_fixup.md for more details # When you uncomment "vcpkg_cmake_config_fixup()", you need to add the following to "dependencies" vcpkg.json: #{ # "name": "vcpkg-cmake-config", # "host": true #} # vcpkg_cmake_config_fixup() # Uncomment the line below if necessary to install the license file for the port # as a file named `copyright` to the directory `${CURRENT_PACKAGES_DIR}/share/${PORT}` # vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: scripts/templates/vcpkg.json.in ================================================ { "name": "@PORT@", "version": "", "homepage": "", "description": "", "license": "", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ], "default-features": [], "features": { "example-feature": { "description": "", "dependencies": [] } } } ================================================ FILE: scripts/test_ports/cmake/fix-dependency-libuv.patch ================================================ diff --git a/Source/Modules/CMakeBuildUtilities.cmake b/Source/Modules/CMakeBuildUtilities.cmake index dba9d506..225779cd 100644 --- a/Source/Modules/CMakeBuildUtilities.cmake +++ b/Source/Modules/CMakeBuildUtilities.cmake @@ -328,6 +328,13 @@ endif() #--------------------------------------------------------------------- # Build libuv library. if(CMAKE_USE_SYSTEM_LIBUV) + find_package(libuv CONFIG REQUIRED) + if (TARGET libuv::uv) + add_library(LibUV::LibUV ALIAS libuv::uv) + else() + add_library(LibUV::LibUV ALIAS libuv::uv_a) + endif() +elseif(0) if(WIN32) find_package(LibUV 1.38.0) else() ================================================ FILE: scripts/test_ports/cmake/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_download_distfile(curl_8_16_patch URLS https://github.com/Kitware/CMake/commit/c8143074cf3954b1e169904eb9d843cfbe14acc3.diff?full_index=1 FILENAME Kitware-CMake-curl_8_16.diff SHA512 25b448798a314705982d957f18cddc6ca235ef8283ed6d32bab0aa949cee518a273dec79dfd48bbe24bbf1781c098a1c3e892134c3aa69efcfec410b9f4d7b6f ) vcpkg_from_gitlab( GITLAB_URL https://gitlab.kitware.com/ OUT_SOURCE_PATH SOURCE_PATH REPO cmake/cmake REF v${VERSION} SHA512 ac67fe802179f6cd9ed290f905976923ffa3843e63e0e680a971a1019a88b813e281bd912e71a02af5df101eb1dd1692f140e34466ba4fa1b822a03097d2467b HEAD_REF master PATCHES fix-dependency-libuv.patch "${curl_8_16_patch}" ) set(OPTIONS "") if(VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS "-DBUILD_CursesDialog=OFF") else() list(APPEND OPTIONS "-DBUILD_CursesDialog=ON") endif() if(VCPKG_CROSSCOMPILING) list(APPEND OPTIONS "-DQt6CoreTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6CoreTools") list(APPEND OPTIONS "-DQt6WidgetsTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6WidgetsTools") list(APPEND OPTIONS "-DQt6GuiTools_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/Qt6GuiTools") endif() if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(VCPKG_CXX_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_CXX_FLAGS}") set(VCPKG_C_FLAGS "/D_CRT_DECLARE_NONSTDC_NAMES ${VCPKG_C_FLAGS}") endif() if(NOT (VCPKG_TARGET_ARCHITECTURE MATCHES "^arm" AND VCPKG_TARGET_IS_LINUX)) list(APPEND OPTIONS -DBUILD_QtDialog=ON # Just to test Qt with CMake -DCMake_QT_MAJOR_VERSION:STRING=6 ) endif() vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS ${OPTIONS} -DBUILD_TESTING=OFF -DCMAKE_USE_SYSTEM_LIBRARIES=ON ) vcpkg_cmake_install(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() if(VCPKG_TARGET_IS_OSX) # On OSX everything is within a CMake.app folder file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools") file(RENAME "${CURRENT_PACKAGES_DIR}/CMake.app" "${CURRENT_PACKAGES_DIR}/tools/CMake.app") if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/CMake.app") file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/debug") file(RENAME "${CURRENT_PACKAGES_DIR}/debug/CMake.app" "${CURRENT_PACKAGES_DIR}/tools/debug/CMake.app") endif() else() set(tool_names cmake cmake-gui ctest cpack) if(VCPKG_TARGET_IS_WINDOWS) list(APPEND tool_names cmcldeps) elseif(NOT VCPKG_TARGET_IS_ANDROID) list(APPEND tool_names ccmake) endif() vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.rst") ================================================ FILE: scripts/test_ports/cmake/vcpkg.json ================================================ { "name": "cmake", "version": "4.0.0", "description": "CMake is an open-source, cross-platform family of tools designed to build, test and package software.", "homepage": "https://cmake.org/", "license": "BSD-3-Clause", "dependencies": [ "cppdap", { "name": "curl", "default-features": false }, "expat", "jsoncpp", { "name": "libarchive", "default-features": false, "features": [ "bzip2", "lzma", "zstd" ] }, "libuv", { "name": "ncurses", "platform": "!windows" }, "nghttp2", { "name": "qtbase", "default-features": false, "features": [ "widgets" ], "platform": "!(arm & linux)" }, "rhash", { "name": "vcpkg-cmake", "host": true }, "zlib" ] } ================================================ FILE: scripts/test_ports/cmake-user/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(cmake_commands "") if("cmake-current" IN_LIST FEATURES) list(APPEND cmake_commands "${CMAKE_COMMAND}") endif() if("cmake-3-16" IN_LIST FEATURES) # For convenient updates, use # vcpkg install ... --cmake-args=-DVCPKG_CMAKE_USER_UPDATE=1 set(cmake_version 3.16.3) set(legacy_cmake_archive NOTFOUND) string(REGEX REPLACE "([^.]*[.][^.]*).*" "\\1" cmake_major_minor "${cmake_version}") if(VCPKG_HOST_IS_WINDOWS OR VCPKG_CMAKE_USER_UPDATE) set(name "cmake-${cmake_version}-win64-x64") vcpkg_download_distfile(legacy_cmake_archive FILENAME "${name}.zip" URLS "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/${name}.zip" "https://cmake.org/files/v${cmake_major_minor}/${name}.zip" SHA512 724d22f3736f0f3503ceb6b49ebec64cd569c4c16ad4fae8ac38918b09ee67e3eaa8072e30546f14f4c13bb94c5639ec940ea1b4695c94225b2a597bb4da1ede ) set(cmake_bin_dir "/bin") endif() if(VCPKG_HOST_IS_OSX OR VCPKG_CMAKE_USER_UPDATE) set(name "cmake-${cmake_version}-Darwin-x86_64") vcpkg_download_distfile(legacy_cmake_archive FILENAME "${name}.tar.gz" URLS "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/${name}.tar.gz" "https://cmake.org/files/v${cmake_major_minor}/${name}.tar.gz" SHA512 3e59e2406f4e088b60922fbf23e92e1be3bb34c00f919625210fd93c059b5e6785afa40d3a501f36b281cde29de592f2ccffade6fa3980d0cf31dc845483184f ) set(cmake_bin_dir "/CMake.app/Contents/bin") endif() if(VCPKG_HOST_IS_LINUX OR VCPKG_CMAKE_USER_UPDATE) set(name "cmake-${cmake_version}-Linux-x86_64") vcpkg_download_distfile(legacy_cmake_archive FILENAME "${name}.tar.gz" URLS "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/${name}.tar.gz" "https://cmake.org/files/v${cmake_major_minor}/${name}.tar.gz" SHA512 03be16ad06fcabe40a36d0a510fdb58f5612108aed70cef7f68879d82b9e04ad62a9d0c30f3406df618ec219c74fc27b4be533d970bc60ac22333951d6cabe1a ) set(cmake_bin_dir "/bin") endif() if(NOT legacy_cmake_archive) message(FATAL_ERROR "Unable to test feature 'cmake-3-16' for '${HOST_TRIPLET}' host.") endif() if(VCPKG_CMAKE_USER_UPDATE) message(STATUS "All downloads are up-to-date.") message(FATAL_ERROR "Stopping due to VCPKG_CMAKE_USER_UPDATE being enabled.") endif() vcpkg_extract_source_archive(legacy_cmake ARCHIVE "${legacy_cmake_archive}" SOURCE_BASE "${cmake_version}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/cmake" ) list(APPEND cmake_commands "${legacy_cmake}${cmake_bin_dir}/cmake") endif() vcpkg_find_acquire_program(NINJA) function(get_packages out_packages cmake_version) set(packages "") if("find-package" IN_LIST FEATURES) file(READ "${CMAKE_CURRENT_LIST_DIR}/vcpkg.json" vcpkg_json) string(JSON packages_json GET "${vcpkg_json}" "features" "find-package" "dependencies") string(JSON packages_count LENGTH "${packages_json}") if(packages_count GREATER 0) math(EXPR last "${packages_count} - 1") foreach(i RANGE 0 ${last}) # Some ports may be excluded via platform expressions, # because they don't support particular platforms. # Using the installed vcpkg_abi_info.txt as an indicator. string(JSON port GET "${packages_json}" "${i}" "name") if(NOT EXISTS "${CURRENT_INSTALLED_DIR}/share/${port}/vcpkg_abi_info.txt") continue() endif() string(JSON since ERROR_VARIABLE since_not_found GET "${packages_json}" "${i}" "\$since") if(since AND cmake_version VERSION_LESS since) continue() endif() if(NOT EXISTS "${CURRENT_INSTALLED_DIR}/share/${port}/vcpkg_abi_info.txt") continue() endif() string(JSON package GET "${packages_json}" "${i}" "\$package") list(APPEND packages "${package}") endforeach() endif() endif() if("pkg-check-modules" IN_LIST FEATURES) list(APPEND packages "ZLIBviaPkgConfig") endif() set("${out_packages}" "${packages}" PARENT_SCOPE) endfunction() function(test_cmake_project) cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "CMAKE_COMMAND;NAME" "OPTIONS") if(NOT arg_NAME) message(FATAL_ERROR "The NAME argument is mandatory.") endif() if(NOT arg_CMAKE_COMMAND) set(arg_CMAKE_COMMAND "${CMAKE_COMMAND}") endif() execute_process( COMMAND "${arg_CMAKE_COMMAND}" --version OUTPUT_VARIABLE cmake_version_output RESULT_VARIABLE cmake_version_result ) string(REGEX MATCH "[1-9][0-9]*\\.[0-9]*\\.[0-9]*" cmake_version "${cmake_version_output}") if(cmake_version_result OR NOT cmake_version) message(FATAL_ERROR "Unable to determine version for '${arg_CMAKE_COMMAND}'.") endif() set(build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}") set(base_options # Interface: CMake -G "Ninja" "-DCMAKE_MAKE_PROGRAM=${NINJA}" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DCMAKE_INSTALL_PREFIX=${build_dir}/install" "-DCMAKE_TOOLCHAIN_FILE=${SCRIPTS}/buildsystems/vcpkg.cmake" # Interface: vcpkg.cmake and scripts/toolchains/*.cmake "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${VCPKG_CHAINLOAD_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}" "-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}" "-DVCPKG_CRT_LINKAGE=${VCPKG_CRT_LINKAGE}" "-DVCPKG_HOST_TRIPLET=${HOST_TRIPLET}" "-DVCPKG_INSTALLED_DIR=${_VCPKG_INSTALLED_DIR}" "-DVCPKG_MANIFEST_MODE=OFF" # Interface: project/CMakeLists.txt "-DCHECK_BUILD_TYPE=${VCPKG_BUILD_TYPE}" "-DCHECK_CMAKE_VERSION=${cmake_version}" # Interface: generic override ${VCPKG_CMAKE_CONFIGURE_OPTIONS} ) if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") # Interface: CMake list(APPEND base_options "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) # Interface: scripts/toolchains/*.cmake list(APPEND base_options "-DCMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}") endif() if(DEFINED VCPKG_XBOX_CONSOLE_TARGET) # Interface: scripts/toolchains/xbox.cmake list(APPEND base_options "-DXBOX_CONSOLE_TARGET=${VCPKG_XBOX_CONSOLE_TARGET}") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") list(APPEND base_options -DBUILD_SHARED_LIBS=ON) else() list(APPEND base_options -DBUILD_SHARED_LIBS=OFF) endif() message(STATUS "Running tests with CMake ${cmake_version} for '${arg_NAME}'") file(REMOVE_RECURSE "${build_dir}") file(MAKE_DIRECTORY "${build_dir}") vcpkg_execute_required_process( COMMAND "${arg_CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project" ${base_options} ${arg_OPTIONS} WORKING_DIRECTORY "${build_dir}" LOGNAME "${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}-config" ) vcpkg_execute_required_process( COMMAND "${arg_CMAKE_COMMAND}" --build . --target install WORKING_DIRECTORY "${build_dir}" LOGNAME "${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}-build" ) # To produce better error messages for failing wrappers, # we run execute_process directly here, for each wrapper. string(REPLACE " OFF:" ":" message " CMake ${cmake_version}: @step@ with `find_package(@package@)` failed.\n" " See logs for more information:\n" " @log_out@\n" " @log_err@\n" ) if(DEFINED ENV{BUILD_REASON}) # On Azure Pipelines, add extra markup. string(REPLACE " CMake" "##vso[task.logissue type=error]CMake" message "${message}") endif() get_packages(packages "${cmake_version}") foreach(package IN LISTS packages) string(MAKE_C_IDENTIFIER "${package}" package_string) set(find_package_build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}") set(log_out "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-out.log") set(log_err "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-err.log") message(STATUS " find_package(${package})") file(REMOVE_RECURSE "${find_package_build_dir}") file(MAKE_DIRECTORY "${find_package_build_dir}") execute_process( COMMAND "${arg_CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project" ${base_options} ${arg_OPTIONS} "-DFIND_PACKAGES=${package}" --trace-expand OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE package_result WORKING_DIRECTORY "${find_package_build_dir}" ) if(package_result) set(step "configuration") string(CONFIGURE "${message}" package_message @ONLY) message(SEND_ERROR "${package_message}") else() set(log_out "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-build-out.log") set(log_err "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-build-err.log") execute_process( COMMAND "${arg_CMAKE_COMMAND}" --build . OUTPUT_FILE "${log_out}" ERROR_FILE "${log_err}" RESULT_VARIABLE package_result WORKING_DIRECTORY "${find_package_build_dir}" ) if(package_result) set(step "build") string(CONFIGURE "${message}" package_message @ONLY) message(SEND_ERROR "${package_message}") endif() endif() endforeach() endfunction() if(NOT DEFINED VCPKG_CHAINLOAD_TOOLCHAIN_FILE) z_vcpkg_select_default_vcpkg_chainload_toolchain() endif() foreach(executable IN LISTS cmake_commands) test_cmake_project(NAME "release" CMAKE_COMMAND "${executable}" OPTIONS "-DCMAKE_BUILD_TYPE=Release" ) if (NOT VCPKG_BUILD_TYPE) test_cmake_project(NAME "debug" CMAKE_COMMAND "${executable}" OPTIONS "-DCMAKE_BUILD_TYPE=Debug" ) endif() endforeach() ================================================ FILE: scripts/test_ports/cmake-user/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(cmake-user LANGUAGES C) message(STATUS "CMAKE_COMMAND: ${CMAKE_COMMAND}") set(CHECK_CMAKE_VERSION "NOTFOUND" CACHE STRING "Version of CMake expected to be found") if(NOT CHECK_CMAKE_VERSION) message(WARNING "CMake version check: skipped (actual: ${CMAKE_VERSION})") elseif(NOT CHECK_CMAKE_VERSION VERSION_EQUAL CMAKE_VERSION) message(SEND_ERROR "CMake version check: failed (actual: ${CMAKE_VERSION} expected: ${CHECK_CMAKE_VERSION})") else() message(STATUS "CMake version check: success (actual: ${CMAKE_VERSION})") endif() # add_library overload file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lib.c" "int lib_unused() { return 1; }") add_library(lib "${CMAKE_CURRENT_BINARY_DIR}/lib.c") # add_executable overload file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/exe.c" "int main() { return 0; }") add_executable(exe "${CMAKE_CURRENT_BINARY_DIR}/exe.c") # install overload set(X_VCPKG_APPLOCAL_DEPS_INSTALL 1) install(TARGETS exe lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib ) # find_package overload and wrapper set(FIND_PACKAGES "" CACHE STRING "List of packages to be found and used") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}") foreach(package ${FIND_PACKAGES}) set(extra_args "") if(package STREQUAL "Curses") set(CURSES_NEED_WIDE 1) elseif(package STREQUAL "ICU") set(extra_args COMPONENTS uc) endif() string(TOUPPER "${package}" package_upper) set(CMAKE_FIND_DEBUG_MODE ON) find_package("${package}" ${extra_args} QUIET) set(CMAKE_FIND_DEBUG_MODE OFF) if(NOT ${package}_FOUND AND NOT ${package_upper}_FOUND) message(SEND_ERROR "find_package(${package} ${extra_args}) check: failed") continue() endif() # REQUIRED changes the behaviour find_package_handle_standard_args. find_package("${package}" ${extra_args} REQUIRED) message(STATUS "find_package(${package} ${extra_args}) check: success") set(libraries_var "") if(DEFINED ${package}_LIBRARIES) set(libraries_var "${package}_LIBRARIES") elseif(DEFINED ${package_upper}_LIBRARIES) set(libraries_var "${package_upper}_LIBRARIES") elseif(DEFINED ${package}_LIBRARY) set(libraries_var "${package}_LIBRARY") elseif(DEFINED ${package_upper}_LIBRARY) set(libraries_var "${package_upper}_LIBRARY") else() message(STATUS "${package}_LIBRARY/IES: undefined") continue() endif() set(libraries "${${libraries_var}}") message(STATUS "${libraries_var}: ${libraries}") if(package STREQUAL "Intl" AND NOT Intl_LIBRARY) continue() # using libintl.h from C runtime library endif() target_link_libraries(exe PRIVATE ${libraries}) set(last_keyword "") foreach(item IN LISTS libraries) if(item STREQUAL "optimized" OR item STREQUAL "debug") set(last_keyword "${item}") continue() endif() string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/" starts_with_release) string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/" starts_with_debug) if(starts_with_release EQUAL "0") if(last_keyword STREQUAL "optimized") # okay elseif(last_keyword STREQUAL "debug") message(SEND_ERROR "Release lib for 'debug' keyword: ${item}") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") message(SEND_ERROR "Release lib for 'Debug' build: ${item}") endif() elseif(starts_with_debug EQUAL "0") if(last_keyword STREQUAL "debug") # okay elseif(last_keyword STREQUAL "optimized") message(SEND_ERROR "Debug lib for 'optimized' keyword: ${item}") elseif(CMAKE_BUILD_TYPE STREQUAL "Release") message(SEND_ERROR "Debug lib for 'Release' build: ${item}") endif() endif() set(last_keyword "") continue() endforeach() set(target "${package}::${package}") string(REPLACE "SQLite3::" "SQLite::" target "${target}") if(TARGET "${target}") get_target_property(type "${target}" TYPE) message(STATUS "${target}: ${type}") if(type MATCHES "LIBRARY" AND NOT type MATCHES "INTERFACE") get_target_property(configurations "${target}" IMPORTED_CONFIGURATIONS) message(STATUS "IMPORTED_CONFIGURATIONS: ${configurations}") if(configurations) string(TOLOWER "${configurations}" configurations) if("release" IN_LIST configurations) set(property IMPORTED_IMPLIB_RELEASE) get_target_property(location "${target}" "${property}") if(NOT location) set(property IMPORTED_LOCATION_RELEASE) get_target_property(location "${target}" "${property}") endif() message(STATUS "${property}: ${location}") string(FIND "${location}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" index) if (NOT index EQUAL "0") message(SEND_ERROR "Release lib is in wrong location.") endif() elseif(NOT CHECK_BUILD_TYPE OR CHECK_BUILD_TYPE STREQUAL "release") message(SEND_ERROR "Release configuration is missing.") endif() if("debug" IN_LIST configurations) set(property IMPORTED_IMPLIB_DEBUG) get_target_property(location "${target}" "${property}") if(NOT location) set(property IMPORTED_LOCATION_DEBUG) get_target_property(location "${target}" "${property}") endif() message(STATUS "${property}: ${location}") string(FIND "${location}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" index) if (NOT index EQUAL "0") message(SEND_ERROR "Debug lib is in wrong location.") endif() elseif(NOT CHECK_BUILD_TYPE OR CHECK_BUILD_TYPE STREQUAL "debug") message(SEND_ERROR "Debug configuration is missing.") endif() endif() endif() else() get_directory_property(imported_targets IMPORTED_TARGETS) if(imported_targets) message(STATUS "Imported targets: ${imported_targets}") endif() endif() endforeach() ================================================ FILE: scripts/test_ports/cmake-user/project/FindZLIBviaPkgConfig.cmake ================================================ # `pkgconf` is not recognized before CMake 3.22 find_program(PKG_CONFIG_EXECUTABLE NAMES pkgconf REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_ZLIB zlib) if(PC_ZLIB_FOUND) if(NOT PC_ZLIB_LDFLAGS) message(SEND_ERROR "ZLIBviaPkgConfig_LIBRARIES is empty") endif() set(ZLIBviaPkgConfig_LIBRARIES "${PC_ZLIB_LDFLAGS}") set(ZLIBviaPkgConfig_FOUND "${PC_ZLIB_FOUND}") endif() ================================================ FILE: scripts/test_ports/cmake-user/vcpkg.json ================================================ { "name": "cmake-user", "version-string": "ci", "description": "Test port to verify the vcpkg toolchain in cmake user projects", "license": "MIT", "default-features": [ { "name": "cmake-3-16", "platform": "x64 & (windows | linux | osx) & !uwp" }, "cmake-current", "find-package", "pkg-check-modules" ], "features": { "cmake-3-16": { "description": "Run the tests with CMake 3.16" }, "cmake-current": { "description": "Run the tests with vcpkg's current version of CMake" }, "find-package": { "description": "Ports to be tested via find_package($package)", "dependencies": [ { "$package": "ALSA", "name": "alsa", "platform": "linux" }, { "$package": "Boost", "name": "boost", "platform": "!uwp" }, { "$package": "BZip2", "name": "bzip2" }, { "$package": "CURL", "name": "curl", "default-features": false }, { "$package": "EXPAT", "name": "expat" }, { "$package": "Fontconfig", "name": "fontconfig", "platform": "!mingw & !uwp" }, { "$package": "GLUT", "name": "freeglut", "platform": "!android & !osx & !uwp" }, { "$package": "Freetype", "name": "freetype", "default-features": false }, { "$comment": "CMake 3.22 for (transitive) FindMPI looking at pkg-config", "$package": "GDAL", "name": "gdal", "$since": "3.22", "default-features": false, "platform": "!uwp" }, { "$package": "Intl", "name": "gettext-libintl" }, { "$package": "GIF", "name": "giflib" }, { "$package": "ICU", "name": "icu", "platform": "!uwp" }, { "$package": "LAPACK", "name": "lapack", "platform": "!android & !(uwp & arm) & !(linux & arm)" }, { "$package": "GnuTLS", "name": "libgnutls", "platform": "!android & (!windows | mingw)" }, { "$package": "Iconv", "name": "libiconv" }, { "$package": "JPEG", "name": "libjpeg-turbo" }, { "$package": "LibLZMA", "name": "liblzma" }, { "$package": "PNG", "name": "libpng" }, { "$package": "PostgreSQL", "name": "libpq", "default-features": false, "platform": "!uwp & !mingw" }, { "$package": "LibXml2", "name": "libxml2", "default-features": false, "features": [ "icu" ] }, { "$package": "LibXslt", "name": "libxslt", "default-features": false, "platform": "!uwp & !mingw" }, { "$package": "Lua", "name": "lua" }, { "$package": "Curses", "name": "ncurses", "platform": "!windows | mingw" }, { "$package": "PhysFS", "name": "physfs" }, { "$package": "GnuTLS", "name": "shiftmedia-libgnutls", "platform": "windows & !arm & !mingw & !uwp & !xbox" }, { "$package": "SQLite3", "name": "sqlite3", "default-features": false, "features": [ "unicode" ] }, { "$package": "TIFF", "name": "tiff", "default-features": false, "features": [ "lerc", "libdeflate", "zstd" ] }, { "$package": "wxWidgets", "name": "wxwidgets", "default-features": false, "platform": "!android & !uwp" }, { "$package": "ZLIB", "name": "zlib" } ] }, "pkg-check-modules": { "description": "Test `find_package(PkgConfig)` and pkg_check_modules(...)", "dependencies": [ { "name": "pkgconf", "host": true }, "zlib" ] } } } ================================================ FILE: scripts/test_ports/llfio-run-tests/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/llfio-run-tests/vcpkg.json ================================================ { "name": "llfio-run-tests", "version-string": "0", "port-version": 1, "description": "Ensures that LLFIO built with vcpkg version of dependencies produces working executables.", "supports": "x64", "dependencies": [ { "name": "llfio", "features": [ "run-tests" ] }, { "name": "llfio", "features": [ "run-tests", "status-code" ] } ] } ================================================ FILE: scripts/test_ports/outcome-run-tests/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/outcome-run-tests/vcpkg.json ================================================ { "name": "outcome-run-tests", "version-string": "0", "port-version": 1, "description": "Ensures that outcome built with vcpkg version of dependencies produces working executables.", "supports": "x64", "dependencies": [ { "name": "outcome", "features": [ "run-tests" ] } ] } ================================================ FILE: scripts/test_ports/rpath-macho-test/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) foreach(dir IN ITEMS tools/rpath-macho-test-binaries manual-tools/rpath-macho-test-binaries) string(REPLACE "/" "_" logname "execute-rel-${dir}") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/${dir}/rpath-macho-test-tool" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE LOGNAME "${logname}" ) if(NOT output STREQUAL "release") message(SEND_ERROR "${dir}: $Actual: '${output}', expected: 'release'") endif() endforeach() if(NOT VCPKG_BUILD_TYPE) foreach(dir IN ITEMS tools/rpath-macho-test-binaries/debug manual-tools/rpath-macho-test-binaries/debug debug/tools/rpath-macho-test-binaries) string(REPLACE "/" "_" logname "execute-dbg-${dir}") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/${dir}/rpath-macho-test-tool" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE LOGNAME "${logname}" ) if(NOT output STREQUAL "debug") message(SEND_ERROR "${dir}: Actual: '${output}', expected: 'debug'") endif() endforeach() endif() function(check_proper_rpath macho_lib) vcpkg_execute_required_process( COMMAND "otool" "-L" "${macho_lib}" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE LOGNAME "${logname}" ) set(found_rpath_backend_lib OFF) string(REPLACE "\n" ";" output_lines "${output}") # Ignore first line, it contains the path to the lib which we are checking list(REMOVE_AT output_lines 0) foreach(line IN LISTS output_lines) if("${line}" MATCHES "\\s+/.*librpath-macho-backend-lib\\+\\+\\.dylib") message(SEND_ERROR "${line} contains an absolute path") endif() if("${line}" MATCHES "@rpath/librpath-macho-backend-lib\\+\\+.dylib") set(found_rpath_backend_lib ON) endif() endforeach() if(NOT found_rpath_backend_lib) message(SEND_ERROR "@rpath/librpath-macho-backend-lib++.dylib not found in ${output}") endif() endfunction() check_proper_rpath("${CURRENT_INSTALLED_DIR}/lib/librpath-macho-test-lib.dylib") check_proper_rpath("${CURRENT_INSTALLED_DIR}/debug/lib/librpath-macho-test-lib.dylib") ================================================ FILE: scripts/test_ports/rpath-macho-test/vcpkg.json ================================================ { "name": "rpath-macho-test", "version-string": "ci", "description": "Test rpath macho fixup", "dependencies": [ "rpath-macho-test-binaries" ] } ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS_RELEASE -DTEST_STRING=release OPTIONS_DEBUG -DTEST_STRING=debug ) vcpkg_cmake_install() function(make_rpath_absolute lib_dir) string(REPLACE "/" "_" logname "make_rpath_absolute-${lib_dir}") vcpkg_execute_required_process( COMMAND "install_name_tool" -id ${CURRENT_INSTALLED_DIR}/${lib_dir}/librpath-macho-backend-lib++.dylib ${CURRENT_PACKAGES_DIR}/${lib_dir}/librpath-macho-backend-lib++.dylib WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" LOGNAME "${logname}-id" ) vcpkg_execute_required_process( COMMAND "install_name_tool" -change @rpath/librpath-macho-backend-lib++.dylib ${CURRENT_INSTALLED_DIR}/${lib_dir}/librpath-macho-backend-lib++.dylib ${CURRENT_PACKAGES_DIR}/${lib_dir}/librpath-macho-test-lib.dylib WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" LOGNAME "${logname}-change" ) endfunction() if(NOT VCPKG_BUILD_TYPE) vcpkg_copy_tools(TOOL_NAMES rpath-macho-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}" ) vcpkg_copy_tools(TOOL_NAMES rpath-macho-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/debug" ) vcpkg_copy_tools(TOOL_NAMES rpath-macho-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) make_rpath_absolute("debug/lib") endif() make_rpath_absolute("lib") vcpkg_copy_tools(TOOL_NAMES rpath-macho-test-tool DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") vcpkg_copy_tools(TOOL_NAMES rpath-macho-test-tool AUTO_CLEAN) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "This test port is part of vcpkg.") ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(rpath-macho-test CXX) set(TEST_STRING "" CACHE STRING "") set(CMAKE_SKIP_INSTALL_RPATH TRUE) add_library(rpath-macho-backend-lib++ transitive.cpp) target_compile_definitions(rpath-macho-backend-lib++ PRIVATE "TEST_STRING=\"${TEST_STRING}\"") add_library(rpath-macho-test-lib lib.cpp) target_link_libraries(rpath-macho-test-lib PRIVATE rpath-macho-backend-lib++) add_executable(rpath-macho-test-tool main.cpp) target_link_libraries(rpath-macho-test-tool PRIVATE rpath-macho-test-lib) install(TARGETS rpath-macho-backend-lib++ rpath-macho-test-lib rpath-macho-test-tool) ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/project/lib.cpp ================================================ extern const char* getTestStringBackend(); const char* getTestString() { return getTestStringBackend(); } ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/project/main.cpp ================================================ #include extern const char* getTestString(); int main() { puts(getTestString()); } ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/project/transitive.cpp ================================================ const char* getTestStringBackend() { return TEST_STRING; } ================================================ FILE: scripts/test_ports/rpath-macho-test-binaries/vcpkg.json ================================================ { "name": "rpath-macho-test-binaries", "version-string": "ci", "description": "Provides installed binaries for rpath macho fixup test", "supports": "native & osx", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/rpath-test/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) foreach(dir IN ITEMS tools/rpath-test-binaries manual-tools/rpath-test-binaries) string(REPLACE "/" "_" logname "execute-rel-${dir}") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/${dir}/rpath-test-tool" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE LOGNAME "${logname}" ) if(NOT output STREQUAL "release") message(SEND_ERROR "${dir}: $Actual: '${output}', expected: 'release'") endif() endforeach() if(NOT VCPKG_BUILD_TYPE) foreach(dir IN ITEMS tools/rpath-test-binaries/debug manual-tools/rpath-test-binaries/debug debug/tools/rpath-test-binaries) string(REPLACE "/" "_" logname "execute-dbg-${dir}") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/${dir}/rpath-test-tool" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" OUTPUT_VARIABLE output OUTPUT_STRIP_TRAILING_WHITESPACE LOGNAME "${logname}" ) if(NOT output STREQUAL "debug") message(SEND_ERROR "${dir}: Actual: '${output}', expected: 'debug'") endif() endforeach() endif() ================================================ FILE: scripts/test_ports/rpath-test/vcpkg.json ================================================ { "name": "rpath-test", "version-string": "ci", "description": "Test rpath fixup", "dependencies": [ "rpath-test-binaries" ] } ================================================ FILE: scripts/test_ports/rpath-test-binaries/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS_RELEASE -DTEST_STRING=release OPTIONS_DEBUG -DTEST_STRING=debug ) vcpkg_cmake_install() if(NOT VCPKG_BUILD_TYPE) vcpkg_copy_tools(TOOL_NAMES rpath-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/tools/${PORT}" ) vcpkg_copy_tools(TOOL_NAMES rpath-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}/debug" ) vcpkg_copy_tools(TOOL_NAMES rpath-test-tool SEARCH_DIR "${CURRENT_PACKAGES_DIR}/debug/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug" ) endif() vcpkg_copy_tools(TOOL_NAMES rpath-test-tool DESTINATION "${CURRENT_PACKAGES_DIR}/manual-tools/${PORT}") vcpkg_copy_tools(TOOL_NAMES rpath-test-tool AUTO_CLEAN) file(WRITE "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright" "This test port is part of vcpkg.") ================================================ FILE: scripts/test_ports/rpath-test-binaries/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(rpath-test CXX) set(TEST_STRING "" CACHE STRING "") set(CMAKE_SKIP_INSTALL_RPATH TRUE) add_library(rpath-backend-lib transitive.cpp) target_compile_definitions(rpath-backend-lib PRIVATE "TEST_STRING=\"${TEST_STRING}\"") add_library(rpath-test-lib lib.cpp) target_link_libraries(rpath-test-lib PRIVATE rpath-backend-lib) add_executable(rpath-test-tool main.cpp) target_link_libraries(rpath-test-tool PRIVATE rpath-test-lib) install(TARGETS rpath-backend-lib rpath-test-lib rpath-test-tool) ================================================ FILE: scripts/test_ports/rpath-test-binaries/project/lib.cpp ================================================ extern const char* getTestStringBackend(); const char* getTestString() { return getTestStringBackend(); } ================================================ FILE: scripts/test_ports/rpath-test-binaries/project/main.cpp ================================================ #include extern const char* getTestString(); int main() { puts(getTestString()); } ================================================ FILE: scripts/test_ports/rpath-test-binaries/project/transitive.cpp ================================================ const char* getTestStringBackend() { return TEST_STRING; } ================================================ FILE: scripts/test_ports/rpath-test-binaries/vcpkg.json ================================================ { "name": "rpath-test-binaries", "version-string": "ci", "description": "Provides installed binaries for rpath fixup test", "supports": "native & !windows", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/sqlpp11-connector-mysql/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/sqlpp11-connector-mysql/vcpkg.json ================================================ { "name": "sqlpp11-connector-mysql", "version-string": "ci", "description": "Overlay for an obsolete empty port in order to unblock sqlpp11 testing: platform-specific choice of testable implementation", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "supports": "!uwp", "dependencies": [ { "name": "sqlpp11", "default-features": false, "features": [ "mariadb" ], "platform": "x86 & windows" }, { "name": "sqlpp11", "default-features": false, "features": [ "mysql" ], "platform": "!(x86 & windows)" } ] } ================================================ FILE: scripts/test_ports/try-compile/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(try-compile-test LANGUAGES C CXX) try_compile(result PROJECT test-try-compile SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/try") if(NOT result) message(FATAL_ERROR "Compiler flags are not passed consistently to try_compile!") endif() ================================================ FILE: scripts/test_ports/try-compile/portfile.cmake ================================================ string(APPEND VCPKG_C_FLAGS " -DVCPKG_LET_ME_PASS") string(APPEND VCPKG_CXX_FLAGS " -DVCPKG_LET_ME_PASS") vcpkg_cmake_configure( SOURCE_PATH "${CMAKE_CURRENT_LIST_DIR}" ) set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/try-compile/try/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(try-compile-project LANGUAGES C CXX) add_library(result "${CMAKE_CURRENT_SOURCE_DIR}/try-compile.c") ================================================ FILE: scripts/test_ports/try-compile/try/try-compile.c ================================================ #if !defined(VCPKG_LET_ME_PASS) #error "You shall not pass without forwarding compiler flags to try_compile!" #endif ================================================ FILE: scripts/test_ports/try-compile/vcpkg.json ================================================ { "name": "try-compile", "version": "1", "description": "Test if try compile correctly passes on compiler flags", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/unit-test-cmake/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(NOT VCPKG_CROSSCOMPILING) file(INSTALL "${CURRENT_PORT_DIR}/test-macros.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") endif() include("${CURRENT_PORT_DIR}/test-macros.cmake") if("minimum-required" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_minimum_required.cmake") endif() if("list" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_list.cmake") endif() if("host-path-list" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_host_path_list.cmake") endif() if("function-arguments" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_function_arguments.cmake") endif() if("merge-libs" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_cmake_config_fixup_merge.cmake") endif() if("backup-restore-env-vars" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_backup_restore_env_vars.cmake") endif() if("setup-pkgconfig-path" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_setup_pkgconfig_path.cmake") endif() if("fixup-pkgconfig" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_fixup_pkgconfig.cmake") endif() if("fixup-rpath" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_calculate_corrected_rpath.cmake") include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_calculate_corrected_rpath_macho.cmake") endif() if("execute-required-process" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg_execute_required_process.cmake") endif() unit_test_report_result() ================================================ FILE: scripts/test_ports/unit-test-cmake/test-macros.cmake ================================================ include_guard(GLOBAL) function(set_fatal_error err) set(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR "ON" CACHE BOOL "" FORCE) set(Z_VCPKG_UNIT_TEST_FATAL_ERROR "${err}" CACHE STRING "" FORCE) endfunction() function(unset_fatal_error) set(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR "OFF" CACHE BOOL "" FORCE) endfunction() function(set_has_error) set(Z_VCPKG_UNIT_TEST_HAS_ERROR ON CACHE BOOL "" FORCE) endfunction() macro(message level msg) if("${level}" STREQUAL "FATAL_ERROR") set_fatal_error("${msg}") return() else() _message("${level}" "${msg}") # note: this results in incorrect printing, but that's fine # message(STATUS "\${asdf}") will result in # message(STATUS "${asdf}"), since that's how macro arguments work. endif() endmacro() # Call this at the end of testing. macro(unit_test_report_result) if(Z_VCPKG_UNIT_TEST_HAS_ERROR) _message(FATAL_ERROR "At least one test failed") endif() endmacro() set(Z_VCPKG_UNIT_TEST_HAS_ERROR OFF CACHE BOOL "" FORCE) unset_fatal_error() # Set _MATCHED, preserve parent scope's CMAKE_MATCH_<...> function(unit_test_match namespace value regex) if("${value}" MATCHES "${regex}") set("${namespace}_MATCHED" ON PARENT_SCOPE) if("${CMAKE_MATCH_COUNT}" EQUAL "0") return() endif() foreach(match RANGE 1 "${CMAKE_MATCH_COUNT}") set("${namespace}_CMAKE_MATCH_${match}" "${CMAKE_MATCH_${match}}" PARENT_SCOPE) endforeach() else() set("${namespace}_MATCHED" OFF PARENT_SCOPE) endif() endfunction() function(unit_test_check_variable_unset utcvu_test utcvu_variable) cmake_language(EVAL CODE "${utcvu_test}") if(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) unset_fatal_error() set_has_error() message(SEND_ERROR "${utcvu_test} had an unexpected FATAL_ERROR; expected: \"${utcvu_value}\"") message(SEND_ERROR "FATAL_ERROR: ${Z_VCPKG_UNIT_TEST_FATAL_ERROR}") return() endif() unit_test_match(utcvu "${utcvu_variable}" [[^(ENV|CACHE)\{(.*)\}$]]) if(utcvu_MATCHED) message(STATUS "utcvu_variable: ${utcvu_CMAKE_MATCH_2}") if("${utcvu_CMAKE_MATCH_1}" STREQUAL "ENV") set(utcvu_actual_value "$ENV{${utcvu_CMAKE_MATCH_2}}") elseif("${utcvu_CMAKE_MATCH_1}" STREQUAL "CACHE") set(utcvu_actual_value "$CACHE{${utcvu_CMAKE_MATCH_2}}") else() _message(FATAL_ERROR "unexpected value for CMAKE_MATCH_1: ${utcvu_CMAKE_MATCH_1}") endif() else() set(utcvu_actual_value "${${utcvu_variable}}") endif() if(DEFINED "${utcvu_variable}") message(SEND_ERROR "${utcvu_test} set ${utcvu_variable}; expected: \"${utcvu_variable}\" unset actual : \"${utcvu_actual_value}\"") set_has_error() return() endif() endfunction() function(unit_test_check_variable_equal utcve_test utcve_variable utcve_value) cmake_language(EVAL CODE "${utcve_test}") if(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) unset_fatal_error() set_has_error() message(SEND_ERROR "${utcve_test} had an unexpected FATAL_ERROR; expected: \"${utcve_value}\"") message(SEND_ERROR "FATAL_ERROR: ${Z_VCPKG_UNIT_TEST_FATAL_ERROR}") return() endif() unit_test_match(utcve "${utcve_variable}" "^ENV\\{") if(NOT DEFINED "${utcve_variable}" AND NOT utcve_MATCHED) message(SEND_ERROR "${utcve_test} failed to set ${utcve_variable}; expected: \"${utcve_value}\"") set_has_error() return() endif() unit_test_match(utcve "${utcve_variable}" [[^(ENV|CACHE)\{(.*)\}$]]) if(utcve_MATCHED) if("${utcve_CMAKE_MATCH_1}" STREQUAL "ENV") set(utcve_actual_value "$ENV{${utcve_CMAKE_MATCH_2}}") elseif("${utcve_CMAKE_MATCH_1}" STREQUAL "CACHE") set(utcve_actual_value "$CACHE{${utcve_CMAKE_MATCH_2}}") else() _message(FATAL_ERROR "unexpected value for CMAKE_MATCH_1: ${utcve_CMAKE_MATCH_1}") endif() else() set(utcve_actual_value "${${utcve_variable}}") endif() if(NOT "${utcve_actual_value}" STREQUAL "${utcve_value}") message(SEND_ERROR "${utcve_test} resulted in the wrong value for ${utcve_variable}; expected: \"${utcve_value}\" actual : \"${utcve_actual_value}\"") set_has_error() return() endif() endfunction() function(unit_test_check_variable_not_equal utcve_test utcve_variable utcve_value) cmake_language(EVAL CODE "${utcve_test}") if(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) unset_fatal_error() set_has_error() message(SEND_ERROR "${utcve_test} had an unexpected FATAL_ERROR; expected: \"${utcve_value}\"") message(SEND_ERROR "FATAL_ERROR: ${Z_VCPKG_UNIT_TEST_FATAL_ERROR}") return() endif() unit_test_match(utcve "${utcve_variable}" [[^(ENV|CACHE)\{(.*)\}$]]) if(utcve_MATCHED) if("${utcve_CMAKE_MATCH_1}" STREQUAL "ENV") set(utcve_actual_value "$ENV{${utcve_CMAKE_MATCH_2}}") elseif("${utcve_CMAKE_MATCH_1}" STREQUAL "CACHE") set(utcve_actual_value "$CACHE{${utcve_CMAKE_MATCH_2}}") else() _message(FATAL_ERROR "unexpected value for CMAKE_MATCH_1: ${utcve_CMAKE_MATCH_1}") endif() else() set(utcve_actual_value "${${utcve_variable}}") endif() if("${utcve_actual_value}" STREQUAL "${utcve_value}") message(SEND_ERROR "${utcve_test} failed to change ${utcve_variable}; unchanged: \"${utcve_value}\"") set_has_error() return() endif() endfunction() function(unit_test_ensure_success utcve_test) cmake_language(EVAL CODE "${utcve_test}") if(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) set_has_error() message(SEND_ERROR "${utcve_test} was expected to be successful.") endif() unset_fatal_error() endfunction() function(unit_test_ensure_fatal_error utcve_test) cmake_language(EVAL CODE "${utcve_test}") if(NOT Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) set_has_error() message(SEND_ERROR "${utcve_test} was expected to be a FATAL_ERROR.") endif() unset_fatal_error() endfunction() ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_backup_restore_env_vars.cmake ================================================ # vcpkg_backup_env_variables(VARS ) # vcpkg_restore_env_variables(VARS ) # These functions used scoped variables and cannot be called in unit_test_check_*. set(ENV{A} [[::a;::b]]) set(ENV{B} [[]]) # Backup doesn't change variables. vcpkg_backup_env_variables(VARS A B) unit_test_check_variable_equal([[]] ENV{A} [[::a;::b]]) unit_test_check_variable_equal([[]] ENV{B} [[]]) # Restore restores. set(ENV{A} [[::a;::b;::c]]) set(ENV{B} [[::1]]) vcpkg_restore_env_variables(VARS A B) unit_test_check_variable_equal([[]] ENV{A} [[::a;::b]]) unit_test_check_variable_equal([[]] ENV{B} [[]]) # Restore can be called more than once. set(ENV{A} [[::a;::b;::c]]) set(ENV{B} [[::1]]) vcpkg_restore_env_variables(VARS A B) unit_test_check_variable_equal([[]] ENV{A} [[::a;::b]]) unit_test_check_variable_equal([[]] ENV{B} [[]]) # Backups are scoped. function(change_and_backup) set(ENV{A} [[::a;::b;::c]]) set(ENV{B} [[::1]]) vcpkg_backup_env_variables(VARS A B) # no further change, no restore, in this scope endfunction() vcpkg_backup_env_variables(VARS A B) change_and_backup() vcpkg_restore_env_variables(VARS A B) unit_test_check_variable_equal([[]] ENV{A} [[::a;::b]]) unit_test_check_variable_equal([[]] ENV{B} [[]]) ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_execute_required_process.cmake ================================================ # vcpkg_execute_required_process #[[ "ALLOW_IN_DOWNLOAD_MODE;OUTPUT_STRIP_TRAILING_WHITESPACE;ERROR_STRIP_TRAILING_WHITESPACE" "WORKING_DIRECTORY;LOGNAME;TIMEOUT;OUTPUT_VARIABLE;ERROR_VARIABLE" "COMMAND;SAVE_LOG_FILES" ]] block(SCOPE_FOR VARIABLES) set(logname "test-vcpkg_execute_required_process") function(count_log_files out_var) set(count 0) if(EXISTS "${CURRENT_BUILDTREES_DIR}/${logname}-out.log") math(EXPR count "${count} + 1") endif() if(EXISTS "${CURRENT_BUILDTREES_DIR}/${logname}-err.log") math(EXPR count "${count} + 1") endif() if(EXISTS "${CURRENT_BUILDTREES_DIR}/${logname}-extra.log") math(EXPR count "${count} + 1") endif() set("${out_var}" "${count}" PARENT_SCOPE) endfunction() function(reset_log_files) file(REMOVE "${CURRENT_BUILDTREES_DIR}/${logname}-out.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/${logname}-err.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/${logname}-extra.log") endfunction() # ALLOW_IN_DOWNLOAD_MODE set(VCPKG_DOWNLOAD_MODE 1) unit_test_ensure_success([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Success WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" ALLOW_IN_DOWNLOAD_MODE )]] ) unit_test_ensure_fatal_error([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Success WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" )]] ) set(VCPKG_DOWNLOAD_MODE "") unit_test_ensure_success([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Success WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" ALLOW_IN_DOWNLOAD_MODE )]] ) unit_test_ensure_success([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Success WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" )]] ) # COMMAND, LOGNAME reset_log_files() unit_test_check_variable_equal([[count_log_files(count)]] count 0) unit_test_ensure_success([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Hello world WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" )]] ) unit_test_check_variable_equal([[ count_log_files(count) ]] count 2) unit_test_check_variable_equal([[ file(STRINGS "${CURRENT_BUILDTREES_DIR}/${logname}-out.log" stdout) ]] stdout "Hello world") # WORKING_DIRECTORY, SAVE_LOG_FILES file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/subdir") file(MAKE_DIRECTORY "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/subdir") file(WRITE "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/source" "extra log") file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/subdir") reset_log_files() unit_test_check_variable_equal([[count_log_files(count)]] count 0) unit_test_ensure_success([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E rename source subdir/extra.log WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir" LOGNAME "${logname}" SAVE_LOG_FILES "subdir/extra.log" )]] ) unit_test_check_variable_equal([[ count_log_files(count) ]] count 3) unit_test_check_variable_equal([[ file(STRINGS "${CURRENT_BUILDTREES_DIR}/${logname}-extra.log" extra) ]] extra "extra log") # OUTPUT_VARIABLE, OUTPUT_STRIP_TRAILING_WHITESPACE reset_log_files() unit_test_check_variable_equal([[count_log_files(count)]] count 0) unit_test_check_variable_equal([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Hello world WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" OUTPUT_VARIABLE outvar )]] outvar "Hello world\n" ) unit_test_check_variable_equal([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E echo Hello world WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" OUTPUT_VARIABLE outvar OUTPUT_STRIP_TRAILING_WHITESPACE )]] outvar "Hello world" ) unit_test_check_variable_equal([[ count_log_files(count) ]] count 2) # ERROR_VARIABLE reset_log_files() unit_test_check_variable_equal([[count_log_files(count)]] count 0) file(WRITE "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/stderr.cmake" "message(WARNING on-stderr)\n") unit_test_check_variable_not_equal([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -P "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/stderr.cmake" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" ERROR_VARIABLE outvar ) string(FIND "${outvar}" "on-stderr" pos) ]] pos -1 ) unit_test_check_variable_equal([[ count_log_files(count) ]] count 2) # OUTPUT_VARIABLE == ERROR_VARIABLE reset_log_files() unit_test_check_variable_equal([[count_log_files(count)]] count 0) file(WRITE "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/combined.cmake" [[ message(WARNING on-stderr) message(STATUS on-stdout) ]]) unit_test_check_variable_not_equal([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -P "${CURRENT_BUILDTREES_DIR}/vcpkg_execute_required_process-dir/combined.cmake" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" OUTPUT_VARIABLE outvar ERROR_VARIABLE outvar ) string(REGEX MATCH "on-stderr.*on-stdout" match "${outvar}") ]] CMAKE_MATCH_0 "" ) unit_test_check_variable_equal([[ count_log_files(count) ]] count 2) # TIMEOUT (if not flaky) unit_test_ensure_fatal_error([[ vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -E sleep 10 WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "${logname}" TIMEOUT 1 )]] ) endblock() ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_fixup_pkgconfig.cmake ================================================ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") set(pc_file_release "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/unit-test-cmake.pc") if(NOT VCPKG_BUILD_TYPE) file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig") set(pc_file_debug "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/unit-test-cmake.pc") endif() set(reload_pc_strings 0) function(write_pkgconfig) file(WRITE "${pc_file_release}" ${ARGN}) if(NOT VCPKG_BUILD_TYPE) file(WRITE "${pc_file_debug}" ${ARGN}) endif() file(STRINGS "${pc_file_release}" pc_strings_input) set(pc_strings_INPUT "${pc_strings_input}" PARENT_SCOPE) set(reload_pc_strings 1 PARENT_SCOPE) endfunction() function(unit_test_pkgconfig_check_key build_types field value) if(NOT build_types) message(SEND_ERROR "The build_type parameter must be list of debug;release.") endif() if(VCPKG_BUILD_TYPE) list(REMOVE_ITEM build_types debug) endif() if(NOT build_types) return() endif() if(reload_pc_strings) file(STRINGS "${pc_file_release}" pc_strings_release) set(pc_strings_release "${pc_strings_release}" PARENT_SCOPE) if(NOT VCPKG_BUILD_TYPE) file(STRINGS "${pc_file_debug}" pc_strings_debug) set(pc_strings_debug "${pc_strings_debug}" PARENT_SCOPE) endif() set(reload_pc_strings 0 PARENT_SCOPE) endif() foreach(build_type IN LISTS build_types) set(listname "pc_strings_${build_type}") set(expected "${field}${value}") list(FILTER ${listname} INCLUDE REGEX "^${field}") if(NOT "${${listname}}" STREQUAL "${expected}" AND NOT "${${listname}}_is_empty" STREQUAL "${value}_is_empty") string(REPLACE "\$" "\\\$" pc_strings_INPUT "${pc_strings_INPUT}") string(REPLACE "\$" "\\\$" expected "${expected}") string(REPLACE "\$" "\\\$" "${listname}" "${${listname}}") message(SEND_ERROR "vcpkg_fixup_pkgconfig() resulted in a wrong value for ${build_type} builds; input : [[${pc_strings_INPUT}]] expected: [[${expected}]] actual : [[${${listname}}]]") set_has_error() return() endif() endforeach() endfunction() # "Libs:" only write_pkgconfig([[ Libs: -L${prefix}/lib -l"aaa" ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa]]) # "Libs:" and "Libs.private:" write_pkgconfig([[ Libs: -L"${prefix}/lib" -l"aaa" Libs.private: -l"bbb ccc" ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa "-lbbb ccc"]]) unit_test_pkgconfig_check_key("debug;release" "Libs.private:" "") else() unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa]]) endif() # line continuations write_pkgconfig([[ Libs.private: \ -lbbb Libs: -L"${prefix}/lib" \ -l"aaa" ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa -lbbb]]) unit_test_pkgconfig_check_key("debug;release" "Libs.private:" "") else() unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa]]) endif() # Replace ';' with ' ' write_pkgconfig([[ Libs: -L${prefix}/lib\;-l"aaa" Libs.private: -lbbb\;-l"ccc" ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa -lbbb -lccc]]) unit_test_pkgconfig_check_key("debug;release" "Libs.private:" "") else() unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -laaa]]) endif() # invalid: ...-NOTFOUND write_pkgconfig([[Libs: LIB-NOTFOUND]]) # Only warning: unit_test_ensure_fatal_error([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) # ...-NOTFOUND # ]]) # invalid: optimized/debug write_pkgconfig([[Libs: -laaa -loptimized -lrel -ldebug -ldbg -lbbb]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "Libs:" [[ -laaa -ldbg -lbbb]]) unit_test_pkgconfig_check_key("release" "Libs:" [[ -laaa -lrel -lbbb]]) write_pkgconfig([[Libs: -laaa -Loptimized -Lrel -Ldebug -Ldbg -lbbb]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "Libs:" [[ -laaa -Ldbg -lbbb]]) unit_test_pkgconfig_check_key("release" "Libs:" [[ -laaa -Lrel -lbbb]]) write_pkgconfig([[Libs: optimized\;librel.a\;debug\;libdbg.a\;aaa.lib]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "Libs:" [[ libdbg.a aaa.lib]]) unit_test_pkgconfig_check_key("release" "Libs:" [[ librel.a aaa.lib]]) write_pkgconfig([[Libs: aaa.lib\;optimized\;librel.a\;debug\;libdbg.a]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "Libs:" [[ aaa.lib libdbg.a]]) unit_test_pkgconfig_check_key("release" "Libs:" [[ aaa.lib librel.a]]) write_pkgconfig([[Libs: aaa.lib optimized librel.a debug libdbg.a bbb.lib]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "Libs:" [[ aaa.lib libdbg.a bbb.lib]]) unit_test_pkgconfig_check_key("release" "Libs:" [[ aaa.lib librel.a bbb.lib]]) # invalid: namespaced targets write_pkgconfig([[Libs: -lAAA::aaa]]) # Only warning: unit_test_ensure_fatal_error([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) # namespaced target # ]]) # prefix write_pkgconfig( "prefix=${CURRENT_PACKAGES_DIR} execprefix=\${prefix} libdir=${CURRENT_PACKAGES_DIR}/lib includedir=${CURRENT_PACKAGES_DIR}/include datarootdir=${CURRENT_PACKAGES_DIR}/share datadir=\${datarootdir}/${PORT} ") unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("release" "prefix=" [[${pcfiledir}/../..]]) unit_test_pkgconfig_check_key("release" "execprefix=" [[${prefix}]]) unit_test_pkgconfig_check_key("release" "libdir=" [[${prefix}/lib]]) unit_test_pkgconfig_check_key("release" "includedir=" [[${prefix}/include]]) unit_test_pkgconfig_check_key("release" "datarootdir=" [[${prefix}/share]]) unit_test_pkgconfig_check_key("release" "datadir=" [[${datarootdir}/unit-test-cmake]]) if(NOT VCPKG_BUILD_TYPE) write_pkgconfig( "prefix=${CURRENT_PACKAGES_DIR}/debug execprefix=\${prefix} libdir=${CURRENT_PACKAGES_DIR}/debug/lib includedir=${CURRENT_PACKAGES_DIR}/include datarootdir=${CURRENT_PACKAGES_DIR}/share datadir=\${datarootdir}/${PORT} ") unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug" "prefix=" [[${pcfiledir}/../..]]) unit_test_pkgconfig_check_key("debug" "execprefix=" [[${prefix}]]) unit_test_pkgconfig_check_key("debug" "libdir=" [[${prefix}/lib]]) unit_test_pkgconfig_check_key("debug" "includedir=" [[${prefix}/../include]]) unit_test_pkgconfig_check_key("debug" "datarootdir=" [[${prefix}/../share]]) unit_test_pkgconfig_check_key("debug" "datadir=" [[${datarootdir}/unit-test-cmake]]) endif() # -I, -l or -L with ${blah} in variables write_pkgconfig([[blah_libs=-L${blah}/lib64 -l${blah}/libblah.a -I${blah}/include]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "blah_libs=" [["-L${blah}/lib64" "-l${blah}/libblah.a" "-I${blah}/include"]]) # plain vs. quoted items write_pkgconfig([[Libs: ${blah} "${quoted}" plain "C:/Program Files/blah.lib"]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ ${blah} "${quoted}" plain "C:/Program Files/blah.lib"]]) # lib spec starting with optimized/debug/general write_pkgconfig([[ Libs: -L${prefix}/lib -ldebuginfod ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -ldebuginfod]]) write_pkgconfig([[ Libs: -L${prefix}/lib -loptimizedinfod ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -loptimizedinfod]]) write_pkgconfig([[ Libs: -L${prefix}/lib -lgeneralinfod ]]) unit_test_ensure_success([[ vcpkg_fixup_pkgconfig(SKIP_CHECK) ]]) unit_test_pkgconfig_check_key("debug;release" "Libs:" [[ "-L${prefix}/lib" -lgeneralinfod]]) file(REMOVE_RECURSE "${pc_file_release}" "${pc_file_debug}") ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_host_path_list.cmake ================================================ # CACHE{var} is a fatal error unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND CACHE{var})]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND CACHE{var})]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND CACHE{var} c d)]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND CACHE{var} c d)]]) # regular variable if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND var "a;b")]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND var "a;b")]]) set(var "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var d e)]] var "a;b;d;e" ) set(var "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var)]] var "a;b" ) set(var "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var d e)]] var "d;e;a;b" ) set(var "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var)]] var "a;b" ) set(var "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var d e)]] var "d;e" ) set(var "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var)]] var "" ) set(var "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var d e)]] var "d;e" ) set(var "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var)]] var "" ) unset(var) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var d e)]] var "d;e" ) unset(var) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND var)]] var "" ) unset(var) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var d e)]] var "d;e" ) unset(var) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND var)]] var "" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND var "a:b")]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND var "a:b")]]) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "a:b:d:e" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "a:b" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e:a:b" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "a:b" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "d:e" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "d:e" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") # environment ENV{var}iable if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND ENV{ENV{var}} "a;b")]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND ENV{ENV{var}} "a;b")]]) set(ENV{ENV{var}} "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "a;b;d;e" ) set(ENV{ENV{var}} "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}})]] ENV{ENV{var}} "a;b" ) set(ENV{ENV{var}} "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "d;e;a;b" ) set(ENV{ENV{var}} "a;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{ENV{var}})]] ENV{ENV{var}} "a;b" ) set(ENV{ENV{var}} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "d;e" ) set(ENV{ENV{var}} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}})]] ENV{ENV{var}} "" ) set(ENV{ENV{var}} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "d;e" ) set(ENV{ENV{var}} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{ENV{var}} "" ) unset(ENV{ENV{var}}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "d;e" ) unset(ENV{ENV{var}}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{ENV{var}})]] ENV{ENV{var}} "" ) unset(ENV{ENV{var}}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{ENV{var}} d e)]] ENV{ENV{var}} "d;e" ) unset(ENV{ENV{var}}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{ENV{var}})]] ENV{ENV{var}} "" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") unit_test_ensure_fatal_error([[vcpkg_host_path_list(APPEND ENV{var} "a:b")]]) unit_test_ensure_fatal_error([[vcpkg_host_path_list(PREPEND ENV{var} "a:b")]]) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "a:b:d:e" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "a:b" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e:a:b" ) set(ENV{var} "a:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "a:b" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "d:e" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e" ) set(ENV{var} "") unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var} d e)]] ENV{var} "d:e" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(APPEND ENV{var})]] ENV{var} "" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var} d e)]] ENV{var} "d:e" ) unset(ENV{var}) unit_test_check_variable_equal( [[vcpkg_host_path_list(PREPEND ENV{var})]] ENV{var} "" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") # REMOVE_DUPLICATES if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") set(var "a;b;c;c:c") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a;b;c;c:c" ) set(var "a;b;c;b") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a;b;c" ) set(var "a;b;a;d") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a;b;d" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ";") if(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") set(var "a:b:c:c;c") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a:b:c:c;c" ) set(var "a:b:c:b") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a:b:c" ) set(var "a:b:a:d") unit_test_check_variable_equal( [[vcpkg_host_path_list(REMOVE_DUPLICATES var)]] var "a:b:d" ) endif(VCPKG_HOST_PATH_SEPARATOR STREQUAL ":") ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_list.cmake ================================================ # vcpkg_list(SET ...) unit_test_check_variable_equal( [[vcpkg_list(SET lst)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(SET lst "")]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(SET lst "" "")]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(SET lst a)]] lst "a" ) unit_test_check_variable_equal( [[vcpkg_list(SET lst a b)]] lst "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(SET lst "a;b")]] lst [[a\;b]] ) unit_test_check_variable_equal( [=[vcpkg_list(SET lst "a;b" "c" [[d\;e]])]=] lst [[a\;b;c;d\\;e]] ) # vcpkg_list(LENGTH ) set(lst [[]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 0 ) set(lst [[;]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 2 ) set(lst [[a]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 1 ) set(lst [[a;b]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 2 ) set(lst [[a\\;b]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 1 ) set(lst [[a\;b;c\\;d]]) unit_test_check_variable_equal( [[vcpkg_list(LENGTH lst out)]] out 2 ) # vcpkg_list(GET ) set(lst "") unit_test_ensure_fatal_error([[vcpkg_list(GET lst 0 out)]]) set(lst "a") unit_test_check_variable_equal( [[vcpkg_list(GET lst 0 out)]] out "a" ) unit_test_check_variable_equal( [[vcpkg_list(GET lst -1 out)]] out "a" ) unit_test_ensure_fatal_error([[vcpkg_list(GET lst 2 out)]]) unit_test_ensure_fatal_error([[vcpkg_list(GET lst -2 out)]]) set(lst ";b") unit_test_check_variable_equal( [[vcpkg_list(GET lst 0 out)]] out "" ) unit_test_check_variable_equal( [[vcpkg_list(GET lst -1 out)]] out "b" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(GET lst 0 out)]] out "a" ) unit_test_check_variable_equal( [[vcpkg_list(GET lst -1 out)]] out "b" ) set(lst [[a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(GET lst 0 out)]] out "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(GET lst -1 out)]] out "c" ) set(lst [[a;b\;c;d\\;e]]) unit_test_check_variable_equal( [[vcpkg_list(GET lst 1 out)]] out "b;c" ) unit_test_check_variable_equal( [[vcpkg_list(GET lst -1 out)]] out [[d\;e]] ) # vcpkg_list(JOIN ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "-" out)]] out "" ) set(lst "a") unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "-" out)]] out "a" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "-" out)]] out "-" ) set(lst [[a;b]]) unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "-" out)]] out [[a-b]] ) unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "+" out)]] out [[a+b]] ) set(lst [[a;b\;c\\;d]]) unit_test_check_variable_equal( [[vcpkg_list(JOIN lst "-" out)]] out [[a-b;c\;d]] ) # vcpkg_list(SUBLIST ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 0 out)]] out "" ) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 1 out)]] out "" ) unit_test_ensure_fatal_error([[vcpkg_list(SUBLIST lst 1 0 out)]]) set(lst "a") unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 0 out)]] out "" ) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 1 out)]] out "a" ) unit_test_ensure_fatal_error([[vcpkg_list(SUBLIST lst 2 0 out)]]) unit_test_ensure_fatal_error([[vcpkg_list(SUBLIST lst 2 1 out)]]) set(lst ";;") unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 0 out)]] out "" ) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 1 out)]] out "" ) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 2 out)]] out ";" ) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 0 3 out)]] out ";;" ) set(lst "a;b;c;d") unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 1 2 out)]] out "b;c" ) set(lst [[a\;b;c\;d;e]]) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 1 2 out)]] out [[c\;d;e]] ) set(lst [[a\;b;c\\;d;e;f;g;h]]) unit_test_check_variable_equal( [[vcpkg_list(SUBLIST lst 1 -1 out)]] out [[c\\;d;e;f;g;h]] ) # vcpkg_list(FIND ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(FIND lst "a" out)]] out -1 ) set(lst "b") unit_test_check_variable_equal( [[vcpkg_list(FIND lst "a" out)]] out -1 ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(FIND lst "a" out)]] out 0 ) unit_test_check_variable_equal( [[vcpkg_list(FIND lst b out)]] out 1 ) set(lst ";b") unit_test_check_variable_equal( [[vcpkg_list(FIND lst "" out)]] out 0 ) unit_test_check_variable_equal( [[vcpkg_list(FIND lst b out)]] out 1 ) set(lst [[a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(FIND lst "a;b" out)]] out 0 ) unit_test_check_variable_equal( [[vcpkg_list(FIND lst c out)]] out 1 ) unit_test_check_variable_equal( [[vcpkg_list(FIND lst a out)]] out -1 ) set(lst [[a\\;b;c]]) unit_test_check_variable_equal( [=[vcpkg_list(FIND lst [[a\;b]] out)]=] out 0 ) # vcpkg_list(APPEND [...]) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(APPEND lst)]] lst [[]] ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "")]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "" "")]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst a)]] lst "a" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(APPEND lst)]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "")]] lst ";;" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst b)]] lst ";;b" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "b;c" d)]] lst [[;;b\;c;d]] ) set(lst "a") unit_test_check_variable_equal( [[vcpkg_list(APPEND lst)]] lst "a" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "")]] lst "a;" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst b)]] lst "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "b;c" d)]] lst [[a;b\;c;d]] ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(APPEND lst)]] lst "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "")]] lst "a;b;" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst c)]] lst "a;b;c" ) unit_test_check_variable_equal( [[vcpkg_list(APPEND lst "c;d" e)]] lst [[a;b;c\;d;e]] ) unit_test_check_variable_equal( [=[vcpkg_list(APPEND lst [[c\;d]])]=] lst [[a;b;c\\;d]] ) # vcpkg_list(PREPEND [...]) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "")]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "" "")]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst a)]] lst "a" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst)]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "")]] lst ";;" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst b)]] lst "b;;" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "b;c" d)]] lst [[b\;c;d;;]] ) set(lst "a") unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst)]] lst "a" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "")]] lst ";a" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst b)]] lst "b;a" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "b;c" d)]] lst [[b\;c;d;a]] ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst)]] lst "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "")]] lst ";a;b" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst c)]] lst "c;a;b" ) unit_test_check_variable_equal( [[vcpkg_list(PREPEND lst "c;d" e)]] lst [[c\;d;e;a;b]] ) unit_test_check_variable_equal( [=[vcpkg_list(PREPEND lst [[c\;d]])]=] lst [[c\\;d;a;b]] ) # list(INSERT [...]) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0 "")]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0 "" "")]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0 "a")]] lst "a" ) unit_test_ensure_fatal_error([[vcpkg_list(INSERT lst 1 "")]]) unit_test_ensure_fatal_error([[vcpkg_list(INSERT lst -1 "")]]) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0)]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 1)]] lst ";" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 1 "")]] lst ";;" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 0 b)]] lst "b;;" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 1 b)]] lst ";b;" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 2 b)]] lst ";;b" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst -1 "b;c" d)]] lst [[;b\;c;d;]] ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst -2 "b;c" d)]] lst [[b\;c;d;;]] ) unit_test_ensure_fatal_error([[vcpkg_list(INSERT lst 3 "")]]) unit_test_ensure_fatal_error([[vcpkg_list(INSERT lst -3 "")]]) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(INSERT lst -1 c)]] lst "a;c;b" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 1 c)]] lst "a;c;b" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 2 c)]] lst "a;b;c" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst -2 c)]] lst "c;a;b" ) unit_test_check_variable_equal( [[vcpkg_list(INSERT lst 1 "c;d")]] lst [[a;c\;d;b]] ) unit_test_check_variable_equal( [=[vcpkg_list(INSERT lst 1 [[c\;d]] e)]=] lst [[a;c\\;d;e;b]] ) # vcpkg_list(POP_BACK ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "a" ) set(lst "a;;b") unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "a;" ) set(lst [[a\;b]]) unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "" ) set(lst [[c;a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst [[c;a\;b]] ) # vcpkg_list(POP_FRONT ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(POP_BACK lst)]] lst "" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(POP_FRONT lst)]] lst "" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(POP_FRONT lst)]] lst "b" ) set(lst "a;;b") unit_test_check_variable_equal( [[vcpkg_list(POP_FRONT lst)]] lst ";b" ) set(lst [[a\;b]]) unit_test_check_variable_equal( [[vcpkg_list(POP_FRONT lst)]] lst "" ) set(lst [[c;a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(POP_FRONT lst)]] lst [[a\;b;c]] ) # vcpkg_list(REMOVE_DUPLICATES ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "a;b" ) set(lst "a;a;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "a;b" ) set(lst "a;b;a") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "a;b" ) set(lst "c;a;b;a;c") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "c;a;b" ) set(lst "a;;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst "a;;b" ) set(lst [[a\;b;a\;b]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst [[a\;b]] ) set(lst [[c;a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_DUPLICATES lst)]] lst [[c;a\;b]] ) # vcpkg_list(REVERSE ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst "" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst ";" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst "b;a" ) set(lst "a;b;c;d;e;f;g") unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst "g;f;e;d;c;b;a" ) set(lst [[a\;b;a\;b\\;c]]) unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst [[a\;b\\;c;a\;b]] ) set(lst [[c;a\;b]]) unit_test_check_variable_equal( [[vcpkg_list(REVERSE lst)]] lst [[a\;b;c]] ) # vcpkg_list(REMOVE_ITEM ) set(lst "") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "a")]] lst "" ) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "")]] lst "" ) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst a)]] lst "b" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst b)]] lst "a" ) set(lst "a;a;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst a)]] lst "b" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst b)]] lst "a;a" ) set(lst "a;b;c;a;d") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst b)]] lst "a;c;a;d" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst a)]] lst "b;c;d" ) set(lst "a;;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "")]] lst "a;b" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst a)]] lst ";b" ) set(lst [[e;a\;b;c\;d]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "a;b")]] lst [[e;c\;d]] ) set(lst [[c;a\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "c")]] lst [[a\;b]] ) set(lst [[c;a\\;b;c]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_ITEM lst "a\\;b")]] lst [[c;c]] ) # vcpkg_list(REMOVE_AT ) set(lst "") unit_test_ensure_fatal_error([[vcpkg_list(REMOVE_AT lst 0)]]) set(lst ";") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 0)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 1)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst -1)]] lst "" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst -2)]] lst "" ) unit_test_ensure_fatal_error([[vcpkg_list(REMOVE_AT lst 2)]]) unit_test_ensure_fatal_error([[vcpkg_list(REMOVE_AT lst -3)]]) set(lst "a;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 0)]] lst "b" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 1)]] lst "a" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst -1)]] lst "a" ) set(lst "a;;b") unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 0)]] lst ";b" ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 1)]] lst "a;b" ) set(lst [[e;a\;b;c\;d]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 0)]] lst [[a\;b;c\;d]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 1)]] lst [[e;c\;d]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst -1)]] lst [[e;a\;b]] ) set(lst [[c;a\\;b;c\;d;e]]) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 0)]] lst [[a\\;b;c\;d;e]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 1)]] lst [[c;c\;d;e]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 2)]] lst [[c;a\\;b;e]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst 3)]] lst [[c;a\\;b;c\;d]] ) unit_test_check_variable_equal( [[vcpkg_list(REMOVE_AT lst -1)]] lst [[c;a\\;b;c\;d]] ) ================================================ FILE: scripts/test_ports/unit-test-cmake/test-vcpkg_minimum_required.cmake ================================================ # -- error cases -- # VCPKG_BASE_VERSION not set - vcpkg version is too old set(VCPKG_BASE_VERSION_backup "${VCPKG_BASE_VERSION}") unset(VCPKG_BASE_VERSION) unset(VCPKG_BASE_VERSION CACHE) unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021-01-01)]]) unit_test_ensure_fatal_error([[vcpkg_minimum_required()]]) unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION "")]]) unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION "2021.01.01")]]) set(VCPKG_BASE_VERSION 2021-02-02) # VERSION not passed unit_test_ensure_fatal_error([[vcpkg_minimum_required()]]) # VERSION weird - empty unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION "")]]) # VERSION weird - dotted unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021.01.01)]]) # VERSION weird - not a valid year unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 3000-01-01)]]) # VERSION weird - list unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION "2021-01-01;2021-01-02")]]) # VERSION weird - small year unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 21-01-01)]]) # VERSION weird - small month unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021-1-01)]]) # VERSION weird - small day unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021-01-1)]]) # VERSION too-new - later year, earlier month, earlier day unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2022-01-01)]]) # VERSION too-new - same year, later month, earlier day unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021-03-01)]]) # VERSION too-new - same year, same month, later day unit_test_ensure_fatal_error([[vcpkg_minimum_required(VERSION 2021-02-03)]]) # -- successes -- # same date unit_test_ensure_success([[vcpkg_minimum_required(VERSION 2021-02-02)]]) # VERSION old - earlier year, later month, later day unit_test_ensure_success([[vcpkg_minimum_required(VERSION 2020-03-03)]]) # VERSION old - same year, earlier month, later day unit_test_ensure_success([[vcpkg_minimum_required(VERSION 2021-01-03)]]) # VERSION old - same year, same month, earlier day unit_test_ensure_success([[vcpkg_minimum_required(VERSION 2021-02-01)]]) # reset to backup unset(VCPKG_BASE_VERSION) set(VCPKG_BASE_VERSION "${VCPKG_BASE_VERSION_backup}" CACHE STRING "") ================================================ FILE: scripts/test_ports/unit-test-cmake/test-z_vcpkg_calculate_corrected_rpath.cmake ================================================ # z_vcpkg_calculate_corrected_rpath(...) block(SCOPE_FOR VARIABLES) set(CURRENT_PACKAGES_DIR "/P") set(CURRENT_INSTALLED_DIR "/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/lib") ]] out [[$ORIGIN]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/plugins/group") ]] out [[$ORIGIN:$ORIGIN/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/debug/lib") ]] out [[$ORIGIN]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/debug/plugins/group") ]] out [[$ORIGIN:$ORIGIN/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/tools/port") ]] out [[$ORIGIN:$ORIGIN/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/tools/port/bin") ]] out [[$ORIGIN:$ORIGIN/../../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/tools/port/debug") ]] out [[$ORIGIN:$ORIGIN/../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/tools/port/debug/bin") ]] out [[$ORIGIN:$ORIGIN/../../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/manual-tools/port") ]] out [[$ORIGIN:$ORIGIN/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/manual-tools/port/bin") ]] out [[$ORIGIN:$ORIGIN/../../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/manual-tools/port/debug") ]] out [[$ORIGIN:$ORIGIN/../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "" ELF_FILE_DIR "/P/manual-tools/port/debug/bin") ]] out [[$ORIGIN:$ORIGIN/../../../../debug/lib]]) # ORG_RPATH set(X_VCPKG_RPATH_KEEP_SYSTEM_PATHS 1) set(CURRENT_PACKAGES_DIR "/cxx/P") set(CURRENT_INSTALLED_DIR "/cxx/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/opt/lib:/usr/local/lib" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN:/opt/lib:/usr/local/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/I/lib" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/P/lib" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/I/foo/lib/pkgconfig/../../bar" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) set(X_VCPKG_RPATH_KEEP_SYSTEM_PATHS 0) set(CURRENT_PACKAGES_DIR "/cxx/P") set(CURRENT_INSTALLED_DIR "/cxx/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/opt/lib:/usr/local/lib" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/I/foo/bar" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/P/foo/bar" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/cxx/I/foo/lib/pkgconfig/../../bar" ELF_FILE_DIR "/cxx/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) # https://github.com/microsoft/vcpkg/issues/37984 set(CURRENT_PACKAGES_DIR "/c++/P") set(CURRENT_INSTALLED_DIR "/c++/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/c++/I/foo/bar" ELF_FILE_DIR "/c++/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/c++/P/foo/bar" ELF_FILE_DIR "/c++/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) set(CURRENT_PACKAGES_DIR "/(c)/P") set(CURRENT_INSTALLED_DIR "/(c)/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/(c)/I/foo/bar" ELF_FILE_DIR "/(c)/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_rpath(OUT_NEW_RPATH_VAR "out" ORG_RPATH "/(c)/P/foo/bar" ELF_FILE_DIR "/(c)/P/lib") ]] out [[$ORIGIN:$ORIGIN/../foo/bar]]) endblock() ================================================ FILE: scripts/test_ports/unit-test-cmake/test-z_vcpkg_calculate_corrected_rpath_macho.cmake ================================================ # z_vcpkg_calculate_corrected_macho_rpath_macho(...) block(SCOPE_FOR VARIABLES) set(CURRENT_PACKAGES_DIR "/P") set(CURRENT_INSTALLED_DIR "/I") unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/lib") ]] out [[@loader_path]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/plugins/group") ]] out [[@loader_path/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/debug/lib") ]] out [[@loader_path]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/debug/plugins/group") ]] out [[@loader_path/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/tools/port") ]] out [[@loader_path/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/tools/port/bin") ]] out [[@loader_path/../../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/tools/port/debug") ]] out [[@loader_path/../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/tools/port/debug/bin") ]] out [[@loader_path/../../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/manual-tools/port") ]] out [[@loader_path/../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/manual-tools/port/bin") ]] out [[@loader_path/../../../lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/manual-tools/port/debug") ]] out [[@loader_path/../../../debug/lib]]) unit_test_check_variable_equal([[ z_vcpkg_calculate_corrected_macho_rpath(OUT_NEW_RPATH_VAR "out" MACHO_FILE_DIR "/P/manual-tools/port/debug/bin") ]] out [[@loader_path/../../../../debug/lib]]) endblock() ================================================ FILE: scripts/test_ports/unit-test-cmake/test-z_vcpkg_cmake_config_fixup_merge.cmake ================================================ # z_vcpkg_cmake_config_fixup_merge( ) set(release_libs namespace::C++_shared) set(debug_libs namespace::C++_shared) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged "namespace::C++_shared" ) set(release_libs A) set(debug_libs B) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[\$<\$>:A>;\$<\$:B>]] ) set(release_libs A B) set(debug_libs A ) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[A;\$<\$>:B>]] ) set(release_libs A ) set(debug_libs A B) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[A;\$<\$:B>]] ) set(release_libs A C) set(debug_libs C) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[\$<\$>:A>;\$<\$:C>;\$<\$>:C>]] ) set(release_libs [[\$<\$>:A>;\$<\$:B>]]) set(debug_libs [[\$<\$>:A>;\$<\$:B>]]) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[\$<\$>:A>;\$<\$:B>]] ) set(release_libs optimized o1 debug d1) set(debug_libs optimized o2 debug d2) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[\$<\$>:o1>;\$<\$:d2>]] ) set(release_libs debug d1 optimized o1) set(debug_libs debug d2 optimized o2) unit_test_check_variable_equal( [[z_vcpkg_cmake_config_fixup_merge(merged release_libs debug_libs)]] merged [[\$<\$:d2>;\$<\$>:o1>]] ) ================================================ FILE: scripts/test_ports/unit-test-cmake/test-z_vcpkg_function_arguments.cmake ================================================ # these both set `args` in the top level function(check_function_args start) z_vcpkg_function_arguments(out "${start}") set(args "${out}" PARENT_SCOPE) endfunction() function(check_all_function_args) z_vcpkg_function_arguments(out) set(args "${out}" PARENT_SCOPE) endfunction() unit_test_ensure_fatal_error([[check_function_args(-1)]]) unit_test_ensure_fatal_error([[check_function_args(3)]]) unit_test_ensure_fatal_error([[check_function_args(notanumber)]]) unit_test_check_variable_equal( [[check_all_function_args()]] args "" ) unit_test_check_variable_equal( [[check_all_function_args("")]] args "" ) unit_test_check_variable_equal( [[check_all_function_args("" "")]] args ";" ) unit_test_check_variable_equal( [[check_all_function_args("" "" "" "")]] args ";;;" ) unit_test_check_variable_equal( [[check_all_function_args(a b c)]] args "a;b;c" ) unit_test_check_variable_equal( [[check_function_args(2 a b c)]] args "b;c" ) unit_test_check_variable_equal( [[check_function_args(3 a b c)]] args "c" ) unit_test_check_variable_equal( [=[check_all_function_args("a;b" [[c\;d]] e)]=] args [[a\;b;c\\;d;e]] ) unit_test_check_variable_equal( [=[check_all_function_args("a;b" [[c\;d]] [[e\\;f]])]=] args [[a\;b;c\\;d;e\\\;f]] ) unit_test_check_variable_equal( [=[check_function_args(2 "a;b" [[c\;d]] e)]=] args [[c\\;d;e]] ) unit_test_check_variable_equal( [=[check_function_args(3 "a;b" [[c\;d]] e)]=] args "e" ) unit_test_check_variable_equal( [=[check_function_args(4 "a;b" [[c\;d]] e)]=] args "" ) ================================================ FILE: scripts/test_ports/unit-test-cmake/test-z_vcpkg_setup_pkgconfig_path.cmake ================================================ # z_vcpkg_setup_pkgconfig_path(BASE_DIR ) # z_vcpkg_restore_pkgconfig_path() # These functions use vcpkg_backup/restore_env_variables which use scoped variables # and cannot be called in unit_test_check_*. set(ENV{PKG_CONFIG} "/a/pkgconf") set(ENV{PKG_CONFIG_PATH} "1") set(saved_path "$ENV{PATH}") block(SCOPE_FOR VARIABLES) set(CURRENT_PACKAGES_DIR "P") set(CURRENT_INSTALLED_DIR "I") z_vcpkg_setup_pkgconfig_path(CONFIG RELEASE) unit_test_check_variable_equal([[]] ENV{PKG_CONFIG} [[/a/pkgconf]]) unit_test_check_variable_not_equal( [[ string(REGEX MATCH "^P.lib.pkgconfig.P.share.pkgconfig.I.lib.pkgconfig.I.share.pkgconfig.1\$" output "$ENV{PKG_CONFIG_PATH}") ]] output "" ) z_vcpkg_restore_pkgconfig_path() unit_test_check_variable_equal([[]] ENV{PKG_CONFIG} [[/a/pkgconf]]) unit_test_check_variable_equal([[]] ENV{PKG_CONFIG_PATH} "1") z_vcpkg_setup_pkgconfig_path(CONFIG DEBUG) unit_test_check_variable_equal([[]] ENV{PKG_CONFIG} [[/a/pkgconf]]) unit_test_check_variable_not_equal([[]] ENV{PKG_CONFIG_PATH} "1") unit_test_check_variable_not_equal( [[ string(REGEX MATCH "^P.debug.lib.pkgconfig.P.share.pkgconfig.I.debug.lib.pkgconfig.I.share.pkgconfig.1\$" output "$ENV{PKG_CONFIG_PATH}") ]] output "" ) z_vcpkg_restore_pkgconfig_path() unit_test_check_variable_equal([[]] ENV{PKG_CONFIG} [[/a/pkgconf]]) unit_test_check_variable_equal([[]] ENV{PKG_CONFIG_PATH} "1") # z_vcpkg_setup_pkgconfig_path changes PATH but it is not restored. # It is hard to see which side effects a restore would have, so # this is expected behaviour for now. unit_test_check_variable_not_equal([[]] ENV{PATH} "${saved_path}") unit_test_ensure_fatal_error([[ z_vcpkg_setup_pkgconfig_path() ]]) unit_test_ensure_fatal_error([[ z_vcpkg_setup_pkgconfig_path(CONFIG unknown) ]]) endblock() ================================================ FILE: scripts/test_ports/unit-test-cmake/vcpkg.json ================================================ { "name": "unit-test-cmake", "version-string": "ci", "description": "Ensures that the CMake scripts are unit tested.", "license": "MIT", "supports": "x64", "default-features": [ "backup-restore-env-vars", "execute-required-process", "fixup-pkgconfig", { "name": "fixup-rpath", "platform": "!windows" }, "function-arguments", "host-path-list", "list", "merge-libs", "minimum-required", "setup-pkgconfig-path" ], "features": { "backup-restore-env-vars": { "description": "Test the vcpkg_backup/restore_env_vars functions" }, "execute-required-process": { "description": "Test the vcpkg_execute_required_process function" }, "fixup-pkgconfig": { "description": "Test the vcpkg_fixup_pkgconfig function" }, "fixup-rpath": { "description": "Test the rpath fixup function", "supports": "!windows" }, "function-arguments": { "description": "Test the z_vcpkg_function_arguments function" }, "host-path-list": { "description": "Test the vcpkg_host_path_list function" }, "list": { "description": "Test the vcpkg_list function" }, "merge-libs": { "description": "Test the z_vcpkg_cmake_config_fixup_merge_lists function", "dependencies": [ { "name": "vcpkg-cmake-config", "host": true } ] }, "minimum-required": { "description": "Test the vcpkg_minimum_required function" }, "setup-pkgconfig-path": { "description": "Test the z_vcpkg_setup/restore_pkgconfig_path functions" } } } ================================================ FILE: scripts/test_ports/vcpkg-acquire-msys-test/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_acquire_msys(MSYS_ROOT Z_ALL_PACKAGES) ================================================ FILE: scripts/test_ports/vcpkg-acquire-msys-test/vcpkg.json ================================================ { "name": "vcpkg-acquire-msys-test", "version-string": "0", "port-version": 1, "description": "Test port to exercise vcpkg_acquire_msys", "supports": "x86 & windows" } ================================================ FILE: scripts/test_ports/vcpkg-ci-abcmake/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-abcmake/project/CMakeLists.txt ================================================ # from: # https://github.com/an-dr/abcmake/tree/4a45dea784dd98473195132a29a2980ed29b3c75/examples/hello_with_find_package cmake_minimum_required(VERSION 3.15) project(HelloWorld) find_package(abcmake CONFIG REQUIRED) add_main_component(${PROJECT_NAME}) ================================================ FILE: scripts/test_ports/vcpkg-ci-abcmake/project/src/main.cpp ================================================ #include int main() { std::cout << "Hello from abcmake using find_package()!" << std::endl; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-abcmake/vcpkg.json ================================================ { "name": "vcpkg-ci-abcmake", "version": "1.0.0", "description": "Test port for abcmake", "dependencies": [ "abcmake", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-angelscript/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-angelscript/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(angelscript-test CXX) set(CMAKE_CXX_STANDARD 11) add_executable(main main.cpp) find_package(Angelscript CONFIG REQUIRED) target_link_libraries(main PRIVATE Angelscript::angelscript) ================================================ FILE: scripts/test_ports/vcpkg-ci-angelscript/project/main.cpp ================================================ #include int main() { auto LibraryVersion = asGetLibraryVersion(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-angelscript/vcpkg.json ================================================ { "name": "vcpkg-ci-angelscript", "version-string": "ci", "description": "Validates angelscript", "dependencies": [ "angelscript", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-ankurvdev-embedresource/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-ankurvdev-embedresource/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) project(embedresource-test VERSION 0.0.1) set(CMAKE_CXX_STANDARD 17) find_package(EmbedResource REQUIRED) file(SIZE "${CMAKE_CURRENT_LIST_DIR}/main.cpp" MAIN_CPP_FILE_SIZE) file(SIZE "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" CMAKELISTS_TXT_FILE_SIZE) add_resource_library(sample_test_resources OBJECT RESOURCE_COLLECTION_NAME testdata1 RESOURCES main.cpp GENERATOR_COMMAND echo "CMakeLists.txt" GENERATOR_DEPEND CMakeLists.txt) add_resource_library(testdata3 OBJECT RESOURCES main.cpp) macro(setup_target target) target_add_resource(${target} RESOURCE_COLLECTION_NAME testdata2 RESOURCES main.cpp) get_target_property(type ${target} TYPE) if ("${type}" STREQUAL "STATIC_LIBRARY") target_link_libraries(${target} PRIVATE $ $) else() target_link_libraries(${target} PRIVATE sample_test_resources testdata3) endif() target_compile_definitions(${target} PRIVATE MAIN_CPP_FILE_SIZE=${MAIN_CPP_FILE_SIZE}) target_compile_definitions(${target} PRIVATE CMAKELISTS_TXT_FILE_SIZE=${CMAKELISTS_TXT_FILE_SIZE}) endmacro() add_executable(sample_test_exe main.cpp) setup_target(sample_test_exe) add_library(sample_test_shlib SHARED main.cpp) target_compile_features(sample_test_shlib PRIVATE cxx_std_20) setup_target(sample_test_shlib) add_library(sample_test_lib STATIC main.cpp) setup_target(sample_test_lib) install(TARGETS sample_test_shlib EXPORT sample_test_shlib) install(EXPORT sample_test_shlib FILE sampleTargets.cmake DESTINATION cmake) install(TARGETS sample_test_lib EXPORT sample_test_lib) install(EXPORT sample_test_lib FILE sampleTargets.cmake DESTINATION cmake) enable_testing() add_test(NAME sample_test_exe COMMAND sample_test_exe) ================================================ FILE: scripts/test_ports/vcpkg-ci-ankurvdev-embedresource/project/main.cpp ================================================ #include #include #include #include #include DECLARE_RESOURCE_COLLECTION(testdata1); DECLARE_RESOURCE_COLLECTION(testdata2); DECLARE_RESOURCE_COLLECTION(testdata3); DECLARE_RESOURCE(testdata3, main_cpp); void verify_resource(ResourceLoader const& r) { if (r.name() == L"main.cpp") { #ifdef __cpp_lib_span if (r.template data().size() != MAIN_CPP_FILE_SIZE) { throw std::runtime_error("r.data.len() != MAIN_CPP_FILE_SIZE"); } #endif #ifdef __cpp_lib_string_view if (r.string().size() != MAIN_CPP_FILE_SIZE) { throw std::runtime_error("r.string().size() != MAIN_CPP_FILE_SIZE"); } #endif } else if (r.name() == L"CMakeLists.txt") { #ifdef __cpp_lib_span if (r.template data().size() != CMAKELISTS_TXT_FILE_SIZE) { throw std::runtime_error("r.data.len() != CMAKELISTS_TXT_FILE_SIZE"); } #endif #ifdef __cpp_lib_string_view if (r.string().size() != CMAKELISTS_TXT_FILE_SIZE) { throw std::runtime_error("r.string().size() != CMAKELISTS_TXT_FILE_SIZE"); } #endif } else { throw std::runtime_error("Unknown resource name"); } } int main(int argc, char* argv[]) try { std::string_view res = LOAD_RESOURCE(testdata3, main_cpp).data; if (res.size() != MAIN_CPP_FILE_SIZE) { throw std::runtime_error("r.data.len() != MAIN_CPP_FILE_SIZE"); } auto resourceCollection1 = LOAD_RESOURCE_COLLECTION(testdata1); for (auto const r : resourceCollection1) { verify_resource(r); } auto resourceCollection2 = LOAD_RESOURCE_COLLECTION(testdata2); for (auto const r : resourceCollection2) { verify_resource(r); } auto resourceCollection3 = LOAD_RESOURCE_COLLECTION(testdata3); for (auto const r : resourceCollection2) { verify_resource(r); } return 0; } catch (const std::exception& ex) { std::cerr << "Failed: " << ex.what() << std::endl; return -1; } ================================================ FILE: scripts/test_ports/vcpkg-ci-ankurvdev-embedresource/vcpkg.json ================================================ { "name": "vcpkg-ci-ankurvdev-embedresource", "version-string": "ci", "description": "Validates ankurvdev-embedresource", "license": "BSD-3-Clause", "dependencies": [ "ankurvdev-embedresource", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-arrow/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ARROW_LINK_SHARED) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_INSTALLED_DIR}/share/arrow/example" OPTIONS -DARROW_LINK_SHARED=${ARROW_LINK_SHARED} ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-arrow/vcpkg.json ================================================ { "name": "vcpkg-ci-arrow", "version-date": "2022-07-25", "description": "Builds an example app in order to validate the arrow port.", "license": "Apache-2.0", "dependencies": [ { "name": "arrow", "default-features": false, "features": [ "csv", "example" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-asmjit/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-asmjit/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(asmjit-test LANGUAGES CXX) find_package(asmjit CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE asmjit::asmjit) target_compile_features(main PRIVATE cxx_std_17) ================================================ FILE: scripts/test_ports/vcpkg-ci-asmjit/project/main.cpp ================================================ #include int main() { asmjit::Label label; auto id = label.id(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-asmjit/vcpkg.json ================================================ { "name": "vcpkg-ci-asmjit", "version-string": "ci", "description": "Validates asmjit", "dependencies": [ "asmjit", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-aurora-au/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-aurora-au/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(vcpkg-ci-aurora-au LANGUAGES CXX) find_package(Au CONFIG REQUIRED) add_executable(test_au_client test_au_client.cc) target_link_libraries(test_au_client PRIVATE Au::au) target_compile_features(test_au_client PRIVATE cxx_std_14) ================================================ FILE: scripts/test_ports/vcpkg-ci-aurora-au/project/test_au_client.cc ================================================ #include #include "au/au.hh" #include "au/io.hh" #include "au/units/hours.hh" #include "au/units/meters.hh" #include "au/units/miles.hh" using ::au::symbols::h; using ::au::symbols::mi; constexpr auto km = ::au::kilo(::au::symbols::m); int main(int argc, char **argv) { constexpr auto v = 65.0 * mi / h; std::cout << v << ", in km/h, rounded to nearest integer, is " << round_as(km / h, v) << std::endl; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-aurora-au/vcpkg.json ================================================ { "name": "vcpkg-ci-aurora-au", "version-string": "ci", "description": "Testing packages which provide AURORA-AU", "license": null, "dependencies": [ "aurora-au", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-bgfx/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-bgfx/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(bgfx-test CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) find_package(bgfx CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE bgfx::bgfx # auxiliary targets bgfx::bx bgfx::bimg bgfx::bimg_decode bgfx::bimg_encode ) if(ANDROID) find_package(OpenGL COMPONENTS EGL GLES2 REQUIRED) target_link_libraries(main PRIVATE nativewindow OpenGL::EGL OpenGL::GLES2) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-bgfx/project/main.cpp ================================================ #include #include int main() { bgfx::renderFrame(); bgfx::Init init; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-bgfx/vcpkg.json ================================================ { "name": "vcpkg-ci-bgfx", "version-string": "ci", "description": "Port to force features of bgfx within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "bgfx", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-blas/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-blas/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.18) # for BLAS::BLAS project(vcpkg-ci-blas C) find_package(BLAS REQUIRED) add_executable(fortran-interface main.c) target_link_libraries(fortran-interface PRIVATE BLAS::BLAS) find_package(PkgConfig REQUIRED) pkg_check_modules(BLAS_PC REQUIRED IMPORTED_TARGET blas) add_executable(fortran-interface-pc main.c) target_link_libraries(fortran-interface-pc PRIVATE PkgConfig::BLAS_PC) ================================================ FILE: scripts/test_ports/vcpkg-ci-blas/project/main.c ================================================ extern void dgemm_(char*, char*, int*, int*,int*, double*, double*, int*, double*, int*, double*, double*, int*); int main() { char ta = 'N'; char tb = 'N'; int m = 2; int n = 2; int k = 1; double alpha = 0.5; double A[2] = {1.0, 2.0}; // m x k double B[2] = {3.0, 4.0}; // k x n double beta = 0.05; double C[4] = {100.0, 200.0, 300.0, 400.0}; // 2 x 2 dgemm_(&ta, &tb, &m, &n, &k, &alpha, A, &m, B, &k, &beta, C, &m); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-blas/vcpkg.json ================================================ { "name": "vcpkg-ci-blas", "version-string": "ci", "description": "Testing packages which provide BLAS", "license": null, "dependencies": [ "blas", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-boost/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-boost/vcpkg.json ================================================ { "name": "vcpkg-ci-boost", "version": "1", "description": "Boost features testing within CI.", "dependencies": [ "boost", { "name": "boost", "default-features": false, "features": [ "mpi" ], "platform": "!staticcrt & !android & !(arm & windows) & !uwp" }, { "name": "boost-asio", "default-features": false, "features": [ "ssl" ] }, { "name": "boost-fiber", "default-features": false, "features": [ "numa" ], "platform": "!uwp & !arm & !emscripten" }, { "name": "boost-locale", "default-features": false, "features": [ "icu" ], "platform": "!uwp" }, { "name": "boost-mpi", "default-features": false, "features": [ "python3" ], "platform": "!staticcrt & !static & !android & !(arm & windows) & !uwp" }, { "name": "boost-odeint", "default-features": false, "features": [ "mpi" ], "platform": "!staticcrt & !android & !(windows & arm) & !uwp" }, { "name": "boost-python", "default-features": false, "platform": "!emscripten & !ios & !android & !uwp" }, { "name": "boost-regex", "default-features": false, "features": [ "icu" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-box2d/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-box2d/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(box2d-test C) find_package(box2d CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE box2d::box2d) ================================================ FILE: scripts/test_ports/vcpkg-ci-box2d/project/main.c ================================================ #include #include int main() { b2Version version = b2GetVersion(); printf("b2 version: %d.%d.%d\n", version.major, version.minor, version.revision); b2WorldDef worldDef = b2DefaultWorldDef(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-box2d/vcpkg.json ================================================ { "name": "vcpkg-ci-box2d", "version-string": "ci", "description": "Port to validate box2d", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "box2d", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-bullet3/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO bulletphysics/bullet3 REF 3.25 SHA512 7086e5fcf69635801bb311261173cb8d173b712ca1bd78be03df48fad884674e85512861190e45a1a62d5627aaad65cde08c175c44a3be9afa410d3dfd5358d4 HEAD_REF master ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_PATH=${SOURCE_PATH}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-bullet3/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(bullet3-test CXX) set(CMAKE_CXX_STANDARD 11) block() find_package(Bullet CONFIG REQUIRED) add_executable(main "${SOURCE_PATH}/examples/HelloWorld/HelloWorld.cpp") target_link_libraries(main PRIVATE ${BULLET_LIBRARIES}) endblock() if(WIN32) set(unused "${PKG_CONFIG_EXECUTABLE}") return() endif() block() find_package(PkgConfig REQUIRED) pkg_check_modules(bullet bullet REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig "${SOURCE_PATH}/examples/HelloWorld/HelloWorld.cpp") target_link_libraries(main-pkgconfig PRIVATE PkgConfig::bullet) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-bullet3/vcpkg.json ================================================ { "name": "vcpkg-ci-bullet3", "version-string": "ci", "description": "Port to force features of bullet3 within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "bullet3", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "extras", { "name": "opencl", "platform": "!uwp" } ], "features": { "extras": { "description": "bullet3[extras]", "dependencies": [ { "name": "bullet3", "features": [ "extras" ] } ] }, "opencl": { "description": "bullet3[opencl]", "dependencies": [ { "name": "bullet3", "features": [ "opencl" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-capstone/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-capstone/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(capstone-test CXX) set(CMAKE_CXX_STANDARD 11) add_executable(main main.cpp) find_package(capstone CONFIG REQUIRED) target_link_libraries(main PRIVATE capstone::capstone) ================================================ FILE: scripts/test_ports/vcpkg-ci-capstone/project/main.cpp ================================================ #include int main() { csh handle; cs_insn* insn = cs_malloc(handle); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-capstone/vcpkg.json ================================================ { "name": "vcpkg-ci-capstone", "version-string": "ci", "description": "Validates capstone", "dependencies": [ "capstone", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-cblas/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.17) project(Find_CBLAS_external) find_package(PkgConfig REQUIRED) pkg_check_modules(CBLAS_PC REQUIRED IMPORTED_TARGET cblas) ================================================ FILE: scripts/test_ports/vcpkg-ci-cblas/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}" OPTIONS -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} ) ================================================ FILE: scripts/test_ports/vcpkg-ci-cblas/vcpkg.json ================================================ { "name": "vcpkg-ci-cblas", "version-string": "ci", "description": "Validate metapackage which provides CBLAS", "license": null, "dependencies": [ "cblas", { "name": "pkgconf", "host": true, "platform": "windows" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # For simplicity and speed, reusing source and build dirs # - and the CMake cache - in multiple steps. set(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/src/project") file(REMOVE_RECURSE "${SOURCE_PATH}") message(STATUS "Testing toolchain find_library search path setup") file(COPY "${CURRENT_PORT_DIR}/project/" DESTINATION "${SOURCE_PATH}") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" DISABLE_PARALLEL_CONFIGURE # keep separate logs ) vcpkg_cmake_build() message(STATUS "Testing toolchain capability VCPKG_LOCK_FIND_PACKAGE") set(VCPKG_BUILD_TYPE release) function(write_test_project TEST_CODE) configure_file("${CURRENT_PORT_DIR}/project/vcpkg_lock_find_package/CMakeLists.txt.in" "${SOURCE_PATH}/CMakeLists.txt" @ONLY) endfunction() include("${CURRENT_HOST_INSTALLED_DIR}/share/unit-test-cmake/test-macros.cmake") function(send_error summary) set_has_error() string(SHA1 id "${summary}") string(SUBSTRING "${id}" 0 6 id) set(log_base "${CURRENT_BUILDTREES_DIR}/test-${TARGET_TRIPLET}-${id}") set(log_files "") file(COPY_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-out.log" "${log_base}-out.log") file(COPY_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-err.log" "${log_base}-err.log") message(SEND_ERROR " Test failed:\n${summary}\n See logs for more information:\n ${log_base}-out.log\n ${log_base}-err.log\n") endfunction() macro(unit_test_ensure_cmake_success utecs_test) write_test_project("${utecs_test}") cmake_language(EVAL CODE "vcpkg_cmake_build()") if(Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) send_error("${utecs_test} was expected to be successful.") endif() unset_fatal_error() endmacro() macro(unit_test_ensure_cmake_error utece_test) write_test_project("${utece_test}") cmake_language(EVAL CODE "vcpkg_cmake_build()") if(NOT Z_VCPKG_UNIT_TEST_HAS_FATAL_ERROR) send_error("${utece_test} was expected to be successful.") endif() unset_fatal_error() endmacro() unit_test_ensure_cmake_error([[ # No VCPKG_LOCK_FIND_PACKAGE find_package(absentPackageX REQUIRED) ]]) unit_test_ensure_cmake_success([[ # No VCPKG_LOCK_FIND_PACKAGE find_package(directPackageX REQUIRED) find_package(transitivePackageX REQUIRED) find_package(transitiveOptionalAbsentPackageX REQUIRED) find_package(absentPackageX) if(absentPackageX_FOUND) message(FATAL_ERROR "absentPackageX_FOUND unexpectedly set to '${absentPackageX_FOUND}'.") endif() ]]) unit_test_ensure_cmake_success([[ # Disabling an absent optional package set(VCPKG_LOCK_FIND_PACKAGE_absentPackageX 0) find_package(absentPackageX) ]]) unit_test_ensure_cmake_error([[ # Disabling an absent required package set(VCPKG_LOCK_FIND_PACKAGE_absentPackageX 0) find_package(absentPackageX REQUIRED) ]]) unit_test_ensure_cmake_success([[ # Disabling an available optional package set(VCPKG_LOCK_FIND_PACKAGE_directPackageX 0) find_package(directPackageX) if(directPackageX_FOUND) message(FATAL_ERROR "directPackageX_FOUND unexpectedly set to '${directPackageX_FOUND}'.") endif() ]]) unit_test_ensure_cmake_error([[ # Disabling an available required package set(VCPKG_LOCK_FIND_PACKAGE_directPackageX 0) find_package(directPackageX REQUIRED) ]]) unit_test_ensure_cmake_success([[ # Core capability: a smart CMAKE_DISABLE_FIND_PACKAGE_ # Disabling only the direct package set(VCPKG_LOCK_FIND_PACKAGE_directPackageX 0) find_package(directPackageX) # optional find_package(transitivePackageX REQUIRED) ]]) unit_test_ensure_cmake_error([[ # For reference: CMake default behavior which we want to avoid set(CMAKE_DISABLE_FIND_PACKAGE_directPackageX 1) find_package(transitivePackageX REQUIRED) ]]) unit_test_ensure_cmake_error([[ # Requiring an absent optional package set(VCPKG_LOCK_FIND_PACKAGE_absentPackageX 1) find_package(absentPackageX) ]]) unit_test_ensure_cmake_error([[ # Requiring an absent required package set(VCPKG_LOCK_FIND_PACKAGE_absentPackageX 1) find_package(absentPackageX REQUIRED) ]]) unit_test_ensure_cmake_success([[ # Requiring an available optional package set(VCPKG_LOCK_FIND_PACKAGE_directPackageX 1) find_package(directPackageX) if(NOT DEFINED directPackageX_FOUND) message(FATAL_ERROR "directPackageX_FOUND unexpectedly undefined.") elseif(NOT directPackageX_FOUND) message(FATAL_ERROR "directPackageX_FOUND unexpectedly set to '${directPackageX_FOUND}'.") endif() ]]) unit_test_ensure_cmake_success([[ # Requiring an available required package set(VCPKG_LOCK_FIND_PACKAGE_directPackageX 1) find_package(directPackageX REQUIRED) if(NOT DEFINED directPackageX_FOUND) message(FATAL_ERROR "directPackageX_FOUND unexpectedly undefined.") elseif(NOT directPackageX_FOUND) message(FATAL_ERROR "directPackageX_FOUND unexpectedly set to '${directPackageX_FOUND}'.") endif() ]]) unit_test_ensure_cmake_success([[ # Core capability: a smart CMAKE_REQUIRE_FIND_PACKAGE_ # Requiring only the direct package set(VCPKG_LOCK_FIND_PACKAGE_absentPackageX 1) find_package(transitiveOptionalAbsentPackageX REQUIRED) ]]) unit_test_ensure_cmake_error([[ # For reference: CMake default behavior which we want to avoid set(CMAKE_REQUIRE_FIND_PACKAGE_absentPackageX 1) find_package(transitiveOptionalAbsentPackageX REQUIRED) ]]) unit_test_report_result() ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(cmake-toolchain-file-test C CXX) foreach(var IN ITEMS CMAKE_SYSROOT CMAKE_FIND_ROOT_PATH CMAKE_PREFIX_PATH CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES CMAKE_SYSTEM_IGNORE_PATH CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ) list(JOIN "${var}" "\n " dirs) message("" "${var}:\n ${dirs}\n") endforeach() set(CMAKE_FIND_DEBUG_MODE 1) set(link_libs "") set(implicit_link_libs "${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}") list(REMOVE_ITEM implicit_link_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES}) foreach(lib IN LISTS implicit_link_libs) if(EXISTS "${lib}") message("" "Absolute path: ${lib}\n") else() string(MAKE_C_IDENTIFIER "${lib}" id) find_library(${id}_LIBRARY NAMES "${lib}" NO_CACHE) if(NOT ${id}_LIBRARY) find_library(${id}_LIBRARY NAMES "${lib}" PATHS ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES} NO_DEFAULT_PATH NO_CACHE) endif() list(APPEND link_libs "${${id}_LIBRARY}") endif() endforeach() # Pull link errors into config step set of log files try_compile(link_libs_accepted SOURCES "${CMAKE_CURRENT_LIST_DIR}/main.c" LINK_LIBRARIES ${link_libs} LOG_DESCRIPTION "Checking linking with ${link_libs}" OUTPUT_VARIABLE output ) if(NOT link_libs_accepted) message(FATAL_ERROR "${output}") endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/main.c ================================================ #include int main() { printf("Hello %s\n", "world"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/vcpkg_lock_find_package/CMakeLists.txt.in ================================================ cmake_minimum_required(VERSION 3.30) project(cmake-toolchain-file-test C) set(CMAKE_FIND_DEBUG_MODE 1) set(VCPKG_TRACE_FIND_PACKAGE 1) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER) set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_LIST_DIR}/vcpkg_lock_find_package") @TEST_CODE@ ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/vcpkg_lock_find_package/directPackageXConfig.cmake ================================================ # intentionally empty ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/vcpkg_lock_find_package/transitiveOptionalAbsentPackageXConfig.cmake ================================================ # Optional dependency! find_package(absentPackageX) ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/project/vcpkg_lock_find_package/transitivePackageXConfig.cmake ================================================ include(CMakeFindDependencyMacro) find_dependency(directPackageX) ================================================ FILE: scripts/test_ports/vcpkg-ci-cmake-toolchain-file/vcpkg.json ================================================ { "name": "vcpkg-ci-cmake-toolchain-file", "version-string": "ci", "description": "Validate vcpkg.cmake toolchain file", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "unit-test-cmake", "host": true }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-crashpad/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-crashpad/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(crashpad-test CXX) set(CMAKE_CXX_STANDARD 11) add_executable(main main.cpp) find_package(crashpad CONFIG REQUIRED) target_link_libraries(main PRIVATE crashpad::crashpad) ================================================ FILE: scripts/test_ports/vcpkg-ci-crashpad/project/main.cpp ================================================ #include "client/crashpad_client.h" int main() { auto *client = new crashpad::CrashpadClient(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-crashpad/vcpkg.json ================================================ { "name": "vcpkg-ci-crashpad", "version-string": "ci", "description": "Validates crashpad", "dependencies": [ "crashpad", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-curl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS_RELEASE "-DCURL_CONFIG=${CURRENT_INSTALLED_DIR}/tools/curl/bin/curl-config" OPTIONS_DEBUG "-DCURL_CONFIG=${CURRENT_INSTALLED_DIR}/tools/curl/debug/bin/curl-config" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-curl/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libcurl-test C) block(SCOPE_FOR VARIABLES) # blocked by FindOpenSSL in CMake 3.30: set(CMAKE_DISABLE_FIND_PACKAGE_PkgConfig 1) set(env_pkg_config_backup "$ENV{PKG_CONFIG}") set(ENV{PKG_CONFIG} "${CMAKE_COMMAND} -E false") find_package(CURL COMPONENTS libz REQUIRED) add_executable(main-targets main.c) target_link_libraries(main-targets PRIVATE CURL::libcurl) add_executable(main-variables main.c) target_include_directories(main-variables PRIVATE ${CURL_INCLUDE_DIRS}) target_link_libraries(main-variables PRIVATE ${CURL_LIBRARIES}) unset(PKG_CONFIG_EXECUTABLE CACHE) unset(PKG_CONFIG_ARGN CACHE) set(ENV{PKG_CONFIG} "${env_pkg_config_backup}") endblock() block(SCOPE_FOR VARIABLES) find_package(PkgConfig REQUIRED) pkg_check_modules(libcurl_pc libcurl REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig main.c) target_link_libraries(main-pkgconfig PRIVATE PkgConfig::libcurl_pc) endblock() block(SCOPE_FOR VARIABLES) if(NOT CMAKE_HOST_WIN32) find_program(CURL_CONFIG NAMES curl-config REQUIRED) execute_process(COMMAND "${CURL_CONFIG}" --cflags OUTPUT_VARIABLE curl-config-cflags OUTPUT_STRIP_TRAILING_WHITESPACE) separate_arguments(curl-config-cflags UNIX_COMMAND "${curl-config-cflags}") execute_process(COMMAND "${CURL_CONFIG}" --libs OUTPUT_VARIABLE curl-config-libs OUTPUT_STRIP_TRAILING_WHITESPACE) separate_arguments(curl-config-libs UNIX_COMMAND "${curl-config-libs}") string(REGEX REPLACE "(^-|;-)framework;" "\\1framework " curl-config-libs "${curl-config-libs}") add_executable(main-curl-config main.c) target_compile_options(main-curl-config PRIVATE ${curl-config-cflags}) target_link_libraries(main-curl-config PRIVATE ${curl-config-libs}) endif() endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-curl/project/main.c ================================================ #include int main() { CURL *curl = curl_easy_init(); if(curl) { curl_easy_cleanup(curl); } return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-curl/vcpkg.json ================================================ { "name": "vcpkg-ci-curl", "version-string": "ci", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "curl", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "compression", "misc", "security" ], "features": { "compression": { "description": "Compression features", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "zstd" ] }, { "$comment": "Known to break aws-sdk-cpp.", "name": "curl", "default-features": false, "features": [ "brotli" ], "platform": "!osx" } ] }, "misc": { "description": "Misc features", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "c-ares", "http2", "httpsrr", "idn", "rtmp", "ssh", "ssls-export" ] }, { "name": "curl", "default-features": false, "features": [ "psl" ], "platform": "!uwp" }, { "name": "curl", "default-features": false, "features": [ "ldap", "tool" ], "platform": "!android & !uwp & !arm" } ] }, "security": { "description": "Security features", "dependencies": [ { "name": "curl", "default-features": false, "features": [ "gsasl", "mbedtls", "openssl", "ssl", "wolfssl" ], "platform": "!uwp" }, { "name": "curl", "default-features": false, "features": [ "gssapi" ], "platform": "(linux | osx) & !arm" }, { "name": "curl", "default-features": false, "features": [ "sspi" ], "platform": "windows & !uwp" }, { "$comment": "On arm, gnutls crypto symbols clash with openssl.", "name": "curl", "default-features": false, "features": [ "gnutls" ], "platform": "!android & !uwp & !xbox & !arm" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-dartsim/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-dartsim/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(dartsim-test CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) # https://github.com/dartsim/dart/issues/753#issuecomment-264694898 # https://github.com/dartsim/dart/pull/956/files if(MSVC) add_compile_options("/permissive-") endif() block(SCOPE_FOR VARIABLES) find_package(DART CONFIG REQUIRED) add_library(target::dart ALIAS dart) add_executable(main-dart main.cpp) target_link_libraries(main-dart PRIVATE target::dart) # check link libs from all components file(GLOB components RELATIVE "${DART_DIR}" "${DART_DIR}/dart_*Component.cmake") list(TRANSFORM components REPLACE "^dart_(.*)Component.cmake\$" "\\1") find_package(DART CONFIG COMPONENTS ${components}) add_executable(main-all main.cpp) target_link_libraries(main-all PRIVATE ${DART_LIBRARIES}) endblock() block(SCOPE_FOR VARIABLES) find_package(PkgConfig REQUIRED) pkg_check_modules(dartsim_pc dart REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.cpp) target_link_libraries(main-pkconfig PRIVATE PkgConfig::dartsim_pc) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-dartsim/project/main.cpp ================================================ #include int main() { dart::simulation::WorldPtr world(new dart::simulation::World); } ================================================ FILE: scripts/test_ports/vcpkg-ci-dartsim/vcpkg.json ================================================ { "name": "vcpkg-ci-dartsim", "version-string": "ci", "description": "Validates dartsim within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "dartsim", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "dartsim", "default-features": false, "features": [ "collision-bullet", "collision-ode", "spdlog", "utils" ] }, { "name": "dartsim", "default-features": false, "features": [ "utils-urdf" ], "platform": "!staticcrt" }, { "name": "dartsim", "default-features": false, "features": [ "gui", "gui-osg" ], "platform": "!arm & !android" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.15) project(vcpkg_ci_dawn) set(CMAKE_CXX_STANDARD 17) find_package(glfw3 CONFIG REQUIRED) ################################################################################ # Use cmake config # ################################################################################ find_package(Dawn CONFIG REQUIRED) add_executable(vcpkg_ci_dawn main.cpp webgpu_glfw3.cpp) target_link_libraries(vcpkg_ci_dawn PRIVATE glfw dawn::webgpu_dawn) if (EMSCRIPTEN) target_link_options(vcpkg_ci_dawn PRIVATE -sASYNCIFY) set(TARGET_NAME "vcpkg_ci_dawn") configure_file("${CMAKE_CURRENT_LIST_DIR}/main.html" "${CMAKE_BINARY_DIR}/${TARGET_NAME}.html" @ONLY) endif () ################################################################################ # Use pkg-config # ################################################################################ find_package(PkgConfig) pkg_check_modules(webgpu_dawn REQUIRED IMPORTED_TARGET unofficial_webgpu_dawn) add_executable(vcpkg_ci_dawn_pc main.cpp webgpu_glfw3.cpp) target_link_libraries(vcpkg_ci_dawn_pc PRIVATE glfw PkgConfig::webgpu_dawn) if (EMSCRIPTEN) target_link_options(vcpkg_ci_dawn_pc PRIVATE -sASYNCIFY) set(TARGET_NAME "vcpkg_ci_dawn_pc") configure_file("${CMAKE_CURRENT_LIST_DIR}/main.html" "${CMAKE_BINARY_DIR}/${TARGET_NAME}.html" @ONLY) endif () ================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/project/main.cpp ================================================ // // Copyright (c) 2024 xiaozhuai // #define GLFW_INCLUDE_NONE #include #include #include #include "GLFW/glfw3.h" #include "webgpu/webgpu_cpp.h" #if defined(__EMSCRIPTEN__) #include "emscripten/emscripten.h" #endif #define LOG(fmt, ...) printf(fmt "\n", ##__VA_ARGS__) #if !defined(__PRETTY_FUNCTION__) && !defined(__GNUC__) #define MY_PRETTY_FUNCTION __FUNCSIG__ #else #define MY_PRETTY_FUNCTION __PRETTY_FUNCTION__ #endif #define ASSERT(expr, fmt, ...) \ do { \ if (!(expr)) { \ LOG("Assertion failed: %s:%d, func: \"%s\", expr: \"%s\", message: " /**/ \ fmt, /**/ \ __FILE__, __LINE__, MY_PRETTY_FUNCTION, #expr, /**/ \ ##__VA_ARGS__); \ abort(); \ } \ } while (0) wgpu::Instance create_instance() { wgpu::InstanceDescriptor instance_desc; wgpu::InstanceFeatureName required_features[] = { wgpu::InstanceFeatureName::TimedWaitAny, }; instance_desc.requiredFeatureCount = std::size(required_features); instance_desc.requiredFeatures = required_features; return wgpu::CreateInstance(&instance_desc); } wgpu::Surface create_surface(const wgpu::Instance &instance, GLFWwindow *window); wgpu::Adapter request_adapter(const wgpu::Instance &instance, const wgpu::Surface &surface) { wgpu::RequestAdapterOptions adapter_options; adapter_options.compatibleSurface = surface; adapter_options.powerPreference = wgpu::PowerPreference::HighPerformance; wgpu::Adapter adapter; auto adapter_future = instance.RequestAdapter( &adapter_options, wgpu::CallbackMode::WaitAnyOnly, [&adapter](wgpu::RequestAdapterStatus status, wgpu::Adapter adapter_ret, wgpu::StringView message) { ASSERT(status == wgpu::RequestAdapterStatus::Success && adapter_ret != nullptr, "Failed to get adapter: %s", message.data); adapter = std::move(adapter_ret); }); auto wait_status = instance.WaitAny(adapter_future, wgpu::kLimitU64Undefined); ASSERT(wait_status == wgpu::WaitStatus::Success, "Failed to wait for adapter request"); return adapter; } void device_lost_callback(const wgpu::Device &, wgpu::DeviceLostReason, wgpu::StringView message) { LOG("Device lost: %s", message.data); } void device_uncaptured_error_callback(const wgpu::Device &, wgpu::ErrorType type, wgpu::StringView message) { const char *error_type; switch (type) { case wgpu::ErrorType::Validation: error_type = "Validation"; break; case wgpu::ErrorType::OutOfMemory: error_type = "Out of memory"; break; case wgpu::ErrorType::Internal: error_type = "Internal"; break; case wgpu::ErrorType::Unknown: error_type = "Unknown"; break; default: ASSERT(false, "Unknown ErrorType"); } LOG("Uncaptured Error %s: %s", error_type, message.data); } wgpu::Device request_device(const wgpu::Instance &instance, const wgpu::Adapter &adapter) { wgpu::DeviceDescriptor device_desc; device_desc.SetDeviceLostCallback(wgpu::CallbackMode::AllowSpontaneous, device_lost_callback); device_desc.SetUncapturedErrorCallback(device_uncaptured_error_callback); wgpu::Device device; auto device_future = adapter.RequestDevice( &device_desc, wgpu::CallbackMode::WaitAnyOnly, [&device](wgpu::RequestDeviceStatus status, wgpu::Device device_ret, wgpu::StringView message) { ASSERT(status == wgpu::RequestDeviceStatus::Success && device_ret != nullptr, "Failed to get device: %s", message.data); device = std::move(device_ret); }); auto wait_status = instance.WaitAny(device_future, wgpu::kLimitU64Undefined); ASSERT(wait_status == wgpu::WaitStatus::Success, "Failed to wait for device request"); return device; } wgpu::ShaderModule create_shader(const wgpu::Device &device, const std::string &shader_code) { wgpu::ShaderSourceWGSL shader_code_desc; shader_code_desc.sType = wgpu::SType::ShaderSourceWGSL; shader_code_desc.code = shader_code.c_str(); wgpu::ShaderModuleDescriptor shader_desc; shader_desc.nextInChain = &shader_code_desc; return device.CreateShaderModule(&shader_desc); } struct alignas(16) Uniforms { struct { float width = 0.0f; float height = 0.0f; } resolution; float time = 0.0f; }; void glfw_error_callback(int error, const char *description) { LOG("GLFW error, %d, %s", error, description); } struct AppState { wgpu::Instance instance; wgpu::Surface surface; wgpu::Adapter adapter; wgpu::Device device; wgpu::Queue queue; wgpu::SurfaceConfiguration surface_config; }; int main() { glfwSetErrorCallback(glfw_error_callback); auto glfw_inited = glfwInit(); ASSERT(glfw_inited, "GLFW init failed"); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); auto *window = glfwCreateWindow(1024, 1024, "vcpkg-ci-dawn", nullptr, nullptr); AppState state; state.instance = create_instance(); state.surface = create_surface(state.instance, window); state.adapter = request_adapter(state.instance, state.surface); state.device = request_device(state.instance, state.adapter); state.queue = state.device.GetQueue(); wgpu::SurfaceCapabilities surface_capabilities; state.surface.GetCapabilities(state.adapter, &surface_capabilities); int surface_width, surface_height; glfwGetFramebufferSize(window, &surface_width, &surface_height); state.surface_config.device = state.device; state.surface_config.usage = wgpu::TextureUsage::RenderAttachment; state.surface_config.format = surface_capabilities.formats[0]; state.surface_config.presentMode = surface_capabilities.presentModes[0]; state.surface_config.alphaMode = surface_capabilities.alphaModes[0]; state.surface_config.width = surface_width; state.surface_config.height = surface_height; state.surface.Configure(&state.surface_config); glfwSetWindowUserPointer(window, &state); glfwSetKeyCallback(window, [](GLFWwindow *window, int key, int scancode, int action, int mods) { if (key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE) { glfwSetWindowShouldClose(window, GLFW_TRUE); } }); glfwSetFramebufferSizeCallback(window, [](GLFWwindow *window, int width, int height) { auto &state = *static_cast(glfwGetWindowUserPointer(window)); state.surface_config.width = width; state.surface_config.height = height; state.surface.Configure(&state.surface_config); }); std::string shader_source = R"( struct Uniforms { resolution: vec2f, time: f32, }; @group(0) @binding(0) var uniforms: Uniforms; struct VertexInput { @location(0) pos: vec2f, }; struct VertexOutput { @builtin(position) pos: vec4f, }; @vertex fn vs_main(input: VertexInput) -> VertexOutput { var output: VertexOutput; output.pos = vec4f(input.pos, 0.0, 1.0); return output; } struct FragmentInput { @builtin(position) coord: vec4f, }; struct FragmentOutput { @location(0) color: vec4f, }; fn palette(t: f32) -> vec3f{ let a = vec3f(0.5, 0.5, 0.5); let b = vec3f(0.5, 0.5, 0.5); let c = vec3f(1.0, 1.0, 1.0); let d = vec3f(0.263, 0.416, 0.557); return a + b * cos(6.28318 * (c * t + d)); } @fragment fn fs_main(input: FragmentInput) -> FragmentOutput { var uv = (input.coord.xy * 2.0 - uniforms.resolution) / min(uniforms.resolution.x, uniforms.resolution.y); let uv0 = uv; var color = vec3f(0.0); for (var i: f32 = 0.0; i < 4.0; i += 1.0) { uv = fract(uv * 1.5) - 0.5; var d = length(uv) * exp(-length(uv0)); let col = palette(length(uv0) + i * 0.4 + uniforms.time * 0.4); d = sin(d * 8.0 + uniforms.time) / 8.0; d = abs(d); d = pow(0.01 / d, 1.2); color += col * d; } var output: FragmentOutput; output.color = vec4f(color, 1.0); return output; } )"; auto shader_module = create_shader(state.device, shader_source); constexpr float vertices[12] = {-1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0}; constexpr int vertex_count = std::size(vertices) / 2; wgpu::BufferDescriptor vertex_buffer_desc; vertex_buffer_desc.size = sizeof(vertices); vertex_buffer_desc.usage = wgpu::BufferUsage::Vertex | wgpu::BufferUsage::CopyDst; wgpu::Buffer vertex_buffer = state.device.CreateBuffer(&vertex_buffer_desc); state.queue.WriteBuffer(vertex_buffer, 0, vertices, sizeof(vertices)); Uniforms uniforms; wgpu::BufferDescriptor uniform_buffer_desc; uniform_buffer_desc.size = sizeof(uniforms); uniform_buffer_desc.usage = wgpu::BufferUsage::Uniform | wgpu::BufferUsage::CopyDst; wgpu::Buffer uniform_buffer = state.device.CreateBuffer(&uniform_buffer_desc); state.queue.WriteBuffer(uniform_buffer, 0, &uniforms, sizeof(uniforms)); wgpu::RenderPipelineDescriptor pipeline_desc; std::vector vertex_attributes(1); vertex_attributes[0].format = wgpu::VertexFormat::Float32x2; vertex_attributes[0].offset = 0; vertex_attributes[0].shaderLocation = 0; std::vector vertex_layouts(1); vertex_layouts[0].arrayStride = 2 * sizeof(float); vertex_layouts[0].attributeCount = vertex_attributes.size(); vertex_layouts[0].attributes = vertex_attributes.data(); vertex_layouts[0].stepMode = wgpu::VertexStepMode::Vertex; pipeline_desc.vertex.bufferCount = vertex_layouts.size(); pipeline_desc.vertex.buffers = vertex_layouts.data(); pipeline_desc.vertex.module = shader_module; pipeline_desc.vertex.entryPoint = "vs_main"; pipeline_desc.vertex.constantCount = 0; pipeline_desc.vertex.constants = nullptr; pipeline_desc.primitive.topology = wgpu::PrimitiveTopology::TriangleList; pipeline_desc.primitive.stripIndexFormat = wgpu::IndexFormat::Undefined; pipeline_desc.primitive.frontFace = wgpu::FrontFace::CCW; pipeline_desc.primitive.cullMode = wgpu::CullMode::None; wgpu::FragmentState fragment_state; fragment_state.module = shader_module; fragment_state.entryPoint = "fs_main"; fragment_state.constantCount = 0; fragment_state.constants = nullptr; wgpu::BlendState blend_state; blend_state.color.srcFactor = wgpu::BlendFactor::SrcAlpha; blend_state.color.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha; blend_state.color.operation = wgpu::BlendOperation::Add; blend_state.alpha.srcFactor = wgpu::BlendFactor::Zero; blend_state.alpha.dstFactor = wgpu::BlendFactor::One; blend_state.alpha.operation = wgpu::BlendOperation::Add; wgpu::ColorTargetState color_target; color_target.format = state.surface_config.format; color_target.blend = &blend_state; color_target.writeMask = wgpu::ColorWriteMask::All; fragment_state.targetCount = 1; fragment_state.targets = &color_target; pipeline_desc.fragment = &fragment_state; pipeline_desc.depthStencil = nullptr; pipeline_desc.multisample.count = 1; pipeline_desc.multisample.mask = ~0u; pipeline_desc.multisample.alphaToCoverageEnabled = false; pipeline_desc.layout = nullptr; wgpu::RenderPipeline pipeline = state.device.CreateRenderPipeline(&pipeline_desc); std::vector bind_group_entries(1); bind_group_entries[0].binding = 0; bind_group_entries[0].buffer = uniform_buffer; bind_group_entries[0].size = uniform_buffer.GetSize(); wgpu::BindGroupDescriptor bind_group_desc; bind_group_desc.layout = pipeline.GetBindGroupLayout(0); bind_group_desc.entryCount = bind_group_entries.size(); bind_group_desc.entries = bind_group_entries.data(); wgpu::BindGroup bind_group = state.device.CreateBindGroup(&bind_group_desc); const double start_time = glfwGetTime(); while (!glfwWindowShouldClose(window)) { glfwPollEvents(); #if defined(__EMSCRIPTEN__) emscripten_sleep(0); #endif const double time = glfwGetTime() - start_time; wgpu::SurfaceTexture surface_texture; state.surface.GetCurrentTexture(&surface_texture); ASSERT(surface_texture.status == wgpu::SurfaceGetCurrentTextureStatus::SuccessOptimal || surface_texture.status == wgpu::SurfaceGetCurrentTextureStatus::SuccessSuboptimal, "Failed to get current texture"); if (surface_texture.status == wgpu::SurfaceGetCurrentTextureStatus::SuccessSuboptimal) { LOG("Surface texture is suboptimal"); } wgpu::Texture texture = surface_texture.texture; wgpu::TextureView frame = texture.CreateView(); uniforms.resolution.width = static_cast(texture.GetWidth()); uniforms.resolution.height = static_cast(texture.GetHeight()); uniforms.time = static_cast(time); state.queue.WriteBuffer(uniform_buffer, 0, &uniforms, sizeof(uniforms)); auto encoder = state.device.CreateCommandEncoder(); wgpu::RenderPassColorAttachment color_attachment; color_attachment.view = frame; color_attachment.loadOp = wgpu::LoadOp::Clear; color_attachment.storeOp = wgpu::StoreOp::Store; color_attachment.clearValue = {0.1f, 0.2f, 0.3f, 1.0f}; wgpu::RenderPassDescriptor pass_desc; pass_desc.colorAttachmentCount = 1; pass_desc.colorAttachments = &color_attachment; pass_desc.depthStencilAttachment = nullptr; auto pass = encoder.BeginRenderPass(&pass_desc); pass.SetPipeline(pipeline); pass.SetVertexBuffer(0, vertex_buffer, 0, vertex_buffer.GetSize()); pass.SetBindGroup(0, bind_group, 0, nullptr); pass.Draw(vertex_count); pass.End(); wgpu::CommandBuffer command_buffer = encoder.Finish(); state.queue.Submit(1, &command_buffer); #if !defined(__EMSCRIPTEN__) auto present_status = state.surface.Present(); ASSERT(present_status, "Failed to present the surface"); state.device.Tick(); #endif } glfwDestroyWindow(window); glfwTerminate(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/project/main.html ================================================ @TARGET_NAME@
================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/project/webgpu_glfw3.cpp ================================================ // // Copyright (c) 2025 xiaozhuai // #define GLFW_INCLUDE_NONE #include #include "GLFW/glfw3.h" #include "webgpu/webgpu_cpp.h" #if defined(_WIN32) #define GLFW_EXPOSE_NATIVE_WIN32 #endif #if defined(__APPLE__) #define GLFW_EXPOSE_NATIVE_COCOA #endif #if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) #define DAWN_USE_X11 #endif #if defined(DAWN_USE_X11) #define GLFW_EXPOSE_NATIVE_X11 #endif #if defined(DAWN_USE_WAYLAND) #define GLFW_EXPOSE_NATIVE_WAYLAND #endif #if defined(__EMSCRIPTEN__) #include "emscripten/emscripten.h" #else #include "GLFW/glfw3native.h" #endif #if defined(__APPLE__) #include #include #include template T objc_call(id obj, const char *sel, Args... args) { using FuncPtr = T (*)(id, SEL, Args...); return reinterpret_cast(objc_msgSend)(obj, sel_registerName(sel), args...); } template T objc_call(const char *clazz, const char *sel, Args... args) { return objc_call(reinterpret_cast(objc_getClass(clazz)), sel, args...); } #endif std::unique_ptr setup_window_and_get_surface_descriptor(GLFWwindow *window) { if (glfwGetWindowAttrib(window, GLFW_CLIENT_API) != GLFW_NO_API) { return nullptr; } #if defined(__EMSCRIPTEN__) auto desc = std::make_unique(); desc->selector = "#canvas"; return desc; #elif defined(_WIN32) auto desc = std::make_unique(); desc->hwnd = glfwGetWin32Window(window); desc->hinstance = GetModuleHandle(nullptr); return desc; #elif defined(__APPLE__) // NSWindow *ns_window = glfwGetCocoaWindow(window); // NSView *view = [ns_window contentView]; // [view setWantsLayer:YES]; // CAMetalLayer *layer = [CAMetalLayer layer]; // CGFloat scale_factor = [ns_window backingScaleFactor]; // [layer setContentsScale:scale_factor]; // [view setLayer:layer]; auto ns_window = glfwGetCocoaWindow(window); CFRetain(ns_window); auto view = objc_call(ns_window, "contentView"); CFRetain(view); objc_call(view, "setWantsLayer:", YES); auto layer = objc_call("CAMetalLayer", "layer"); auto scale_factor = objc_call(ns_window, "backingScaleFactor"); objc_call(layer, "setContentsScale:", scale_factor); objc_call(view, "setLayer:", layer); auto desc = std::make_unique(); desc->layer = layer; CFRelease(view); CFRelease(ns_window); return desc; #elif defined(DAWN_USE_WAYLAND) || defined(DAWN_USE_X11) #if defined(GLFW_PLATFORM_WAYLAND) && defined(DAWN_USE_WAYLAND) if (glfwGetPlatform() == GLFW_PLATFORM_WAYLAND) { auto desc = std::make_unique(); desc->display = glfwGetWaylandDisplay(); desc->surface = glfwGetWaylandWindow(window); return desc; } else // NOLINT(readability/braces) #endif #if defined(DAWN_USE_X11) { auto desc = std::make_unique(); desc->display = glfwGetX11Display(); desc->window = glfwGetX11Window(window); return desc; } #else { return nullptr; } #endif #else return nullptr; #endif } wgpu::Surface create_surface(const wgpu::Instance &instance, GLFWwindow *window) { auto chainedDescriptor = setup_window_and_get_surface_descriptor(window); wgpu::SurfaceDescriptor descriptor; descriptor.nextInChain = chainedDescriptor.get(); wgpu::Surface surface = instance.CreateSurface(&descriptor); return surface; } ================================================ FILE: scripts/test_ports/vcpkg-ci-dawn/vcpkg.json ================================================ { "name": "vcpkg-ci-dawn", "version-date": "2025-09-28", "description": "Validates dawn", "license": null, "supports": "!uwp & !android & !ios", "dependencies": [ "dawn", "glfw3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-dbus-cxx/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-dbus-cxx/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(dbus-cxx-test CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(dbus-cxx CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE dbus-cxx::dbus-cxx) ================================================ FILE: scripts/test_ports/vcpkg-ci-dbus-cxx/project/main.cpp ================================================ #include int main() { auto connection = DBus::Connection::create(DBus::BusType::SESSION); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-dbus-cxx/vcpkg.json ================================================ { "name": "vcpkg-ci-dbus-cxx", "version-string": "ci", "description": "Validates dbus-cxx", "dependencies": [ "dbus-cxx", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-dcmtk/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-dcmtk/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(dcmtk-test CXX) set(CMAKE_CXX_STANDARD 17) find_package(DCMTK CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE DCMTK::DCMTK) find_package(PkgConfig REQUIRED) pkg_check_modules(DCMTK dcmtk REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig main.cpp) target_link_libraries(main-pkgconfig PRIVATE PkgConfig::DCMTK) target_compile_options(main-pkgconfig PRIVATE "\$<\$:/Zc:__cplusplus>") ================================================ FILE: scripts/test_ports/vcpkg-ci-dcmtk/project/main.cpp ================================================ #include #include int main() { auto djfp = DcmJsonFormatPretty(OFTrue); DcmTLSTransportLayer::initializeOpenSSL(); // https://github.com/microsoft/vcpkg/issues/38476 return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-dcmtk/vcpkg.json ================================================ { "name": "vcpkg-ci-dcmtk", "version-string": "ci", "description": "Port to force features of dcmtk within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "dcmtk", "features": [ "iconv", "openssl", "tiff", "tools", "xml2", "zlib", "openjpeg" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-duckdb/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_install() if(NOT VCPKG_CROSSCOMPILING) if(CMAKE_HOST_WIN32) vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin") elseif(CMAKE_HOST_APPLE) vcpkg_host_path_list(PREPEND ENV{DYLD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") else() vcpkg_host_path_list(PREPEND ENV{LD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") endif() vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/bin/${PORT}/main" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME release-test ) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-duckdb/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(duckdb-test C CXX) add_executable(main main.c) find_package(DuckDB CONFIG REQUIRED) if(BUILD_SHARED_LIBS) add_library(imported::duckdb ALIAS duckdb) else() add_library(imported::duckdb ALIAS duckdb_static) endif() target_link_libraries(main PRIVATE imported::duckdb) install(TARGETS main RUNTIME DESTINATION bin/vcpkg-ci-duckdb) ================================================ FILE: scripts/test_ports/vcpkg-ci-duckdb/project/main.c ================================================ #include #include int main() { duckdb_database db; if (duckdb_open(NULL, &db) == DuckDBError) { printf("open failed\n"); return 1; } duckdb_connection con; if (duckdb_connect(db, &con) == DuckDBError) { printf("connect failed\n"); return 2; } const char* query_icu = "LOAD icu;" "SELECT current_localtime();" "PRAGMA collations;" "SELECT list(collname) FROM pragma_collations();" ; duckdb_result result; if (duckdb_query(con, query_icu, &result) == DuckDBError) { printf("icu query failed: %s\n", duckdb_result_error(&result)); return 3; } else { printf("success\n"); } duckdb_disconnect(&con); duckdb_close(&db); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-duckdb/vcpkg.json ================================================ { "name": "vcpkg-ci-duckdb", "version-string": "ci", "description": "Test the icu feature", "license": "BSD-3-Clause", "dependencies": [ { "name": "duckdb", "features": [ "icu" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-exiv2/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO Exiv2/exiv2 REF v0.28.7 SHA512 b53f4989abcd5d346f2a9c726a06707c47e1990ecb2e5e193c963e01d452fefe4dddd14e25eb08ef35e2f8288b8ec4bdee60725aa7dcd6b1c0348ed56c803fc0 HEAD_REF master ) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_PATH=${SOURCE_PATH}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-exiv2/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(exiv2-test CXX) set(CMAKE_CXX_STANDARD 11) block() find_package(exiv2 CONFIG REQUIRED) add_executable(main "${SOURCE_PATH}/samples/exifdata.cpp") target_link_libraries(main PRIVATE Exiv2::exiv2lib) endblock() block() find_package(PkgConfig REQUIRED) pkg_check_modules(exiv2 exiv2 REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig "${SOURCE_PATH}/samples/exifdata.cpp") target_link_libraries(main-pkgconfig PRIVATE PkgConfig::exiv2) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-exiv2/vcpkg.json ================================================ { "name": "vcpkg-ci-exiv2", "version-string": "ci", "description": "Port to validate exiv2 within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "exiv2", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "exiv2", "features": [ "bmff", "nls", "png", "xmp" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-ffmpeg/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-ffmpeg/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(ffmpeg-test C) find_package(FFMPEG REQUIRED) add_executable(main main.c) target_include_directories(main PRIVATE ${FFMPEG_INCLUDE_DIRS}) target_link_directories(main PRIVATE ${FFMPEG_LIBRARY_DIRS}) target_link_libraries(main PRIVATE ${FFMPEG_LIBRARIES}) # FAQ: using the static lib in a shared lib # https://ffmpeg.org/platform.html#Advanced-linking-configuration if(UNIX AND NOT BUILD_SHARED_LIBS) add_library(shared SHARED main.c) target_include_directories(shared PRIVATE ${FFMPEG_INCLUDE_DIRS}) target_link_directories(shared PRIVATE ${FFMPEG_LIBRARY_DIRS}) target_link_libraries(shared PRIVATE ${FFMPEG_LIBRARIES}) if(NOT APPLE) target_link_options(shared PRIVATE -Wl,-Bsymbolic) endif() endif() find_package(PkgConfig REQUIRED) pkg_check_modules(ffmpeg_pc libavcodec libavfilter libavutil libswscale libavdevice libavformat libswresample REQUIRED IMPORTED_TARGET ) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::ffmpeg_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-ffmpeg/project/main.c ================================================ #include #include "libavcodec/avcodec.h" #include "libavutil/avutil.h" int main() { char codecVersions[256]; avcodec_find_encoder(AV_CODEC_ID_H264); printf("ffmpeg version: %s\n", av_version_info()); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-ffmpeg/vcpkg.json ================================================ { "name": "vcpkg-ci-ffmpeg", "version-string": "ci", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ { "name": "ffmpeg", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "ci" ], "features": { "ci": { "description": "vcpkg CI feature configuration", "dependencies": [ { "name": "ffmpeg", "default-features": false, "features": [ "avcodec", "avdevice", "avfilter", "avformat", "avresample", "bzip2", "freetype", "gpl", "iconv", "lzma", "mp3lame", "nonfree", "openh264", "openjpeg", "openmpt", "openssl", "opus", "snappy", "soxr", "speex", "swresample", "swscale", "theora", "vorbis", "vpx", "webp", "xml2", "zlib" ] }, { "name": "ffmpeg", "default-features": false, "features": [ "alsa" ], "platform": "linux" }, { "name": "ffmpeg", "default-features": false, "features": [ "sdl2" ], "platform": "!osx" }, { "name": "ffmpeg", "default-features": false, "features": [ "ass", "dvdvideo", "ffmpeg", "fontconfig", "fribidi", "modplug", "opencl", "srt" ], "platform": "!uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "fdk-aac" ], "platform": "!android" }, { "name": "ffmpeg", "default-features": false, "features": [ "ilbc" ], "platform": "!(arm & uwp)" }, { "name": "ffmpeg", "default-features": false, "features": [ "ssh" ], "platform": "!(uwp | arm)" }, { "name": "ffmpeg", "default-features": false, "features": [ "x264" ], "platform": "!(arm & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "drawtext" ], "platform": "!(uwp | android)" }, { "name": "ffmpeg", "default-features": false, "features": [ "dav1d" ], "platform": "!(uwp | arm | x86 | osx)" }, { "name": "ffmpeg", "default-features": false, "features": [ "aom" ], "platform": "!(windows & arm) & !uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "x265" ], "platform": "!uwp & !(arm & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "avisynthplus" ], "platform": "windows & !arm & !uwp & !static" }, { "name": "ffmpeg", "default-features": false, "features": [ "tesseract" ], "platform": "!(windows & arm) & !static & !uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "opengl" ], "platform": "!uwp & !(arm64 & windows) & !android" }, { "name": "ffmpeg", "default-features": false, "features": [ "qsv" ], "platform": "!arm & (android | linux | windows) & !uwp" }, { "name": "ffmpeg", "default-features": false, "features": [ "nvcodec" ], "platform": "!android & !osx & !uwp & !(arm64 & windows)" }, { "name": "ffmpeg", "default-features": false, "features": [ "vulkan" ], "platform": "(linux | windows) & !arm & !uwp" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-fluidsynth/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-fluidsynth/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(fluidsynth-test LANGUAGES C CXX) find_package(FluidSynth CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE FluidSynth::libfluidsynth) find_package(PkgConfig REQUIRED) pkg_check_modules(fluidsynth_pc fluidsynth REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::fluidsynth_pc) set_target_properties(main-pkconfig PROPERTIES LINKER_LANGUAGE CXX) ================================================ FILE: scripts/test_ports/vcpkg-ci-fluidsynth/project/main.c ================================================ #include #include int main() { fluid_settings_t* settings = new_fluid_settings(); int ret = fluid_settings_setint(settings, "vcpkg.test", 123); delete_fluid_settings(settings); printf("Result: %d\n", ret); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-fluidsynth/vcpkg.json ================================================ { "name": "vcpkg-ci-fluidsynth", "version-string": "ci", "description": "Port to validate fluidsynth in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "fluidsynth", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "fluidsynth", "features": [ "pulseaudio" ], "platform": "linux" }, { "name": "fluidsynth", "features": [ "sndfile" ], "platform": "!xbox" }, { "name": "fluidsynth", "features": [ "libinstpatch" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-folly/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-folly/vcpkg.json ================================================ { "name": "vcpkg-ci-folly", "version-string": "ci", "description": "Port to force features of folly within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "folly", "default-features": false } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "folly", "features": [ "bzip2", { "name": "libaio", "platform": "linux" }, "libsodium", { "name": "liburing", "platform": "linux" }, "lz4", "lzma", "snappy", "zstd" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-freerdp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-freerdp/vcpkg.json ================================================ { "name": "vcpkg-ci-freerdp", "version-string": "ci", "description": "Force non-default features of freerdp within vcpkg CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ { "name": "freerdp", "features": [ "client", "ffmpeg" ] }, { "name": "freerdp", "features": [ "x11" ], "platform": "linux" }, { "name": "freerdp", "features": [ "server", "urbdrc", "winpr-tools" ], "platform": "!android & !ios & !uwp" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-gdal/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-gdal/vcpkg.json ================================================ { "name": "vcpkg-ci-gdal", "version-date": "2023-12-28", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "gdal", "features": [ "archive", "freexl" ] }, { "name": "gdal", "features": [ "postgresql" ], "platform": "linux" }, { "name": "gdal", "features": [ "cfitsio", "kea", "poppler" ], "platform": "native" }, { "name": "gdal", "features": [ "arrow", "arrow-adbc", "parquet" ], "platform": "(arm64 | x64) & !linux" }, { "name": "gdal", "features": [ "mysql-libmariadb" ], "platform": "windows & x86" }, { "name": "gdal", "features": [ "aws-ec2-windows" ], "platform": "windows & !mingw" }, { "name": "tiff", "features": [ "lerc", "libdeflate", "webp", "zstd" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-ggml/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ggml-org/ggml REF v0.9.1 SHA512 c31aeaaba328cd217f34191f1ce87720bb34dc39dc036f2ba8c92710636706f5be2cfcf86dc8c38ec737b020908da0e136447de10e7d9e6db698c812e7d21ae3 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/examples/test-cmake" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-ggml/vcpkg.json ================================================ { "name": "vcpkg-ci-ggml", "version-string": "ci", "description": "Port to validate ggml", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "$comment": "Lacks default (CPU) backend on arm64 windows", "name": "ggml", "default-features": false, "features": [ { "name": "vulkan", "platform": "windows & arm64" } ] }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "blas", "platform": "!(windows & static)" }, { "$comment": "Lacks pkg-config link libs for static builds", "name": "cuda", "platform": "windows & x64 & !uwp & !xbox & !static" }, { "name": "metal", "platform": "osx" }, { "name": "opencl", "platform": "!arm32" }, { "name": "openmp", "platform": "!osx" }, { "name": "vulkan", "platform": "!x86" } ], "features": { "blas": { "description": "Enable BLAS support", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "blas" ] } ] }, "cuda": { "description": "Enable CUDA support", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "cuda" ] } ] }, "metal": { "description": "Enable Metal support", "supports": "osx", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "metal" ] } ] }, "opencl": { "description": "Enable OpenCL support", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "opencl" ] } ] }, "openmp": { "description": "Enable OpenMP support", "supports": "!osx", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "openmp" ] } ] }, "vulkan": { "description": "Enable Vulkan support", "supports": "!x86", "dependencies": [ { "name": "ggml", "default-features": false, "features": [ "vulkan" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-gmime/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DFEATURES=${FEATURES}" "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-gmime/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(vcpkg-ci-gmime C) set(CMAKE_C_STANDARD 11) find_package(PkgConfig REQUIRED) pkg_check_modules(gmime REQUIRED IMPORTED_TARGET gmime-3.0) add_executable(main main.c) target_link_libraries(main PRIVATE PkgConfig::gmime) if("crypto" IN_LIST FEATURES) target_compile_definitions(main PRIVATE ENABLE_CRYPTO) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-gmime/project/main.c ================================================ #include #include void verify_callback(GMimeObject *parent, GMimeObject *part, gpointer user_data) { #ifdef ENABLE_CRYPTO if (GMIME_IS_MULTIPART_SIGNED(part)) { GMimeMultipartSigned *mps = (GMimeMultipartSigned *)part; GError *err = NULL; GMimeSignatureList *signatures = g_mime_multipart_signed_verify(mps, GMIME_VERIFY_NONE, &err); g_object_unref(signatures); } #endif } int main() { g_mime_init(); GMimeParser *parser = g_mime_parser_new(); GMimeMessage *message = g_mime_parser_construct_message(parser, NULL); g_mime_message_foreach(message, verify_callback, NULL); g_object_unref(message); g_object_unref(parser); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-gmime/vcpkg.json ================================================ { "name": "vcpkg-ci-gmime", "version-string": "ci", "description": "Validates gmime", "dependencies": [ "gmime", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "crypto", "platform": "!windows | mingw" } ], "features": { "crypto": { "description": "gmime[crypo]", "dependencies": [ { "name": "gmime", "features": [ "crypto" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-gobject-introspection/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # Using release typelibs also for debug: # vcpkg is unable to build the debug variant for MSVC # as long as it doesn't install the python interpreter # for the debug CRT. set(ENV{GI_TYPELIB_PATH} "${CURRENT_INSTALLED_DIR}/lib/girepository-1.0") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES run-test RUN_TEST ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS ${options} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build(ADD_BIN_TO_PATH) ================================================ FILE: scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(gobject-introspection-test C) option(RUN_TEST "Run the test program") set(CMAKE_SKIP_RPATH FALSE) find_package(PkgConfig REQUIRED) pkg_check_modules(gobject-introspection_pc gobject-introspection-1.0 REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig main.c) target_link_libraries(main-pkgconfig PRIVATE PkgConfig::gobject-introspection_pc ) add_custom_target(run-test COMMAND main-pkgconfig COMMENT "Running the test program" ) if(RUN_TEST) set_target_properties(run-test PROPERTIES EXCLUDE_FROM_ALL 0) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c ================================================ #include #include int main() { GError *error = NULL; GIRepository *repository = g_irepository_get_default(); GSList* paths = g_irepository_get_search_path(); for (; paths != NULL; paths = paths->next) g_message("Search path entry: %s\n", (const char*)paths->data); GITypelib *typelib = g_irepository_require(repository, "GIRepository", NULL, 0, &error); if (error) { g_error("ERROR: %s\n", error->message); return 1; } GIBaseInfo *base_info = g_irepository_find_by_name(repository, "GIRepository", "get_minor_version"); if (!base_info) { g_error("ERROR: %s\n", "Could not find GIRepository get_minor_version"); return 1; } GIArgument retval; if (!g_function_info_invoke((GIFunctionInfo *)base_info, NULL, 0, NULL, 0, &retval, &error)) { g_error("ERROR: %s\n", error->message); return 1; } g_message("GI Repository minor version: %d", retval.v_uint); g_base_info_unref(base_info); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-gobject-introspection/vcpkg.json ================================================ { "name": "vcpkg-ci-gobject-introspection", "version-string": "ci", "description": "Port to force features of gobject-introspection within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "gobject-introspection", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "ports", "platform": "!static & !(arm & windows)" }, { "name": "run-test", "platform": "!static & !(arm & windows)" } ], "features": { "ports": { "description": "Test introspection in ports", "supports": "!static", "dependencies": [ { "name": "gobject-introspection", "default-features": false, "features": [ "cairo" ] }, { "name": "harfbuzz", "default-features": false, "features": [ "introspection" ] } ] }, "run-test": { "supports": "!static", "description": "Run a test program." } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-gperftools/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-gperftools/vcpkg.json ================================================ { "name": "vcpkg-ci-gperftools", "version-string": "ci", "description": "Validates gperftools", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "gperftools", { "name": "gperftools", "features": [ "libunwind" ], "platform": "linux, osx" }, { "name": "gperftools", "features": [ "override" ], "platform": "windows & static & staticcrt & !mingw" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-graphicsmagick/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" OPTIONS_RELEASE "-DGM_CONFIG=${CURRENT_INSTALLED_DIR}/tools/graphicsmagick/bin/GraphicsMagick-config" OPTIONS_DEBUG "-DGM_CONFIG=${CURRENT_INSTALLED_DIR}/tools/graphicsmagick/debug/bin/GraphicsMagick-config" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-graphicsmagick/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(graphicsmagick-test C) find_package(PkgConfig REQUIRED) pkg_check_modules(graphicsmagick_pc GraphicsMagick REQUIRED IMPORTED_TARGET) add_executable(main-pkgconfig main.c) target_link_libraries(main-pkgconfig PRIVATE PkgConfig::graphicsmagick_pc) find_program(GM_CONFIG NAMES GraphicsMagick-config REQUIRED) if(NOT CMAKE_HOST_WIN32) execute_process(COMMAND "${GM_CONFIG}" --cppflags --cflags OUTPUT_VARIABLE gm-config-cflags OUTPUT_STRIP_TRAILING_WHITESPACE) separate_arguments(gm-config-cflags UNIX_COMMAND "${gm-config-cflags}") execute_process(COMMAND "${GM_CONFIG}" --ldflags --libs OUTPUT_VARIABLE gm-config-libs OUTPUT_STRIP_TRAILING_WHITESPACE) separate_arguments(gm-config-libs UNIX_COMMAND "${gm-config-libs}") string(REGEX REPLACE "(^-|;-)framework;" "\\1framework " gm-config-libs "${gm-config-libs}") add_executable(main-gm-config main.c) target_compile_options(main-gm-config PRIVATE ${gm-config-cflags}) target_link_libraries(main-gm-config PRIVATE ${gm-config-libs}) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-graphicsmagick/project/main.c ================================================ #include int main() { InitializeMagick(NULL); DestroyMagick(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-graphicsmagick/vcpkg.json ================================================ { "name": "vcpkg-ci-graphicsmagick", "version-string": "ci", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "graphicsmagick", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-graphviz/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_gitlab( GITLAB_URL https://gitlab.com OUT_SOURCE_PATH GRAPHVIZ_PATH REPO graphviz/graphviz REF 14.0.4 SHA512 993a39a1c18d1b4d34596ee2e3e16189b7ac757bfc1feee28efd928525f83c54a1b785579e5a4b0f9c8ce8269063a3542398c592c397d338053443e8f93ca3a2 HEAD_REF main ) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DGRAPHVIZ_PATH=${GRAPHVIZ_PATH}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-graphviz/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(graphviz-test) find_package(graphviz CONFIG REQUIRED) add_executable(simple-cmake "${GRAPHVIZ_PATH}/dot.demo/simple.c") target_link_libraries(simple-cmake PRIVATE graphviz::gvc graphviz::cgraph) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_LIBGVC libgvc IMPORTED_TARGET REQUIRED) add_executable(simple-pkgconfig "${GRAPHVIZ_PATH}/dot.demo/simple.c") target_link_libraries(simple-pkgconfig PRIVATE PkgConfig::PC_LIBGVC) # Validate all imported targets in CMake generation step. get_directory_property(imported_targets IMPORTED_TARGETS) foreach(target IN LISTS imported_targets) string(MAKE_C_IDENTIFIER "${target}" id) add_executable(check-${id} EXCLUDE_FROM_ALL "placeholder.c") target_link_libraries(check-${id} PRIVATE ${target}) endforeach() set_source_files_properties("placeholder.c" PROPERTIES GENERATED 1) ================================================ FILE: scripts/test_ports/vcpkg-ci-graphviz/vcpkg.json ================================================ { "name": "vcpkg-ci-graphviz", "version-string": "ci", "description": "Validation port", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "graphviz", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-gz-common/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-gz-common/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(gz-common-test) find_package(gz-common6 QUIET REQUIRED COMPONENTS av) add_executable(main main.cpp) target_link_libraries(main PRIVATE gz-common6::gz-common6-av) find_package(PkgConfig REQUIRED) pkg_check_modules(gz-common_pc gz-common6-av REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.cpp) target_link_libraries(main-pkconfig PRIVATE PkgConfig::gz-common_pc) if(MSVC) target_compile_features(main-pkconfig PRIVATE cxx_std_17) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-gz-common/project/main.cpp ================================================ #include #include int main() { gz::common::VideoEncoder v{}; gzwarn << "Hello vcpkg" << std::endl; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-gz-common/vcpkg.json ================================================ { "name": "vcpkg-ci-gz-common", "version-string": "ci", "description": "Port to force features of gz-common within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "gz-common", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-half/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-half/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(halftest) find_path(HALF_INCLUDE_DIRS "half.hpp") add_executable(main main.cpp) target_include_directories(main PRIVATE ${HALF_INCLUDE_DIRS}) ================================================ FILE: scripts/test_ports/vcpkg-ci-half/project/main.cpp ================================================ #include #include int main() { using namespace half_float::literal; auto x = 2.4_h; static_assert(std::is_same::value); half_float::half y = half_float::sqrt(x); } ================================================ FILE: scripts/test_ports/vcpkg-ci-half/vcpkg.json ================================================ { "name": "vcpkg-ci-half", "version-string": "ci", "description": "Validation port", "dependencies": [ "half", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-hello-imgui/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-hello-imgui/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(hello-imgui-test CXX) set(CMAKE_CXX_STANDARD 17) find_package(hello-imgui CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE hello-imgui::hello_imgui ) ================================================ FILE: scripts/test_ports/vcpkg-ci-hello-imgui/project/main.cpp ================================================ #include int main() { HelloImGui::Run([]() { ImGui::Text("Hello vcpkg"); ImGui::ShowDemoWindow(); }); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-hello-imgui/vcpkg.json ================================================ { "name": "vcpkg-ci-hello-imgui", "version-string": "ci", "description": "Port to force features of hello-imgui within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "hello-imgui", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "hello-imgui", "features": [ "glfw-binding", "opengl3-binding", "test-engine" ], "platform": "linux" }, { "$comment": "No platform backend available since removal of imgui[sdl2-binding]", "name": "hello-imgui", "features": [ "opengl3-binding" ], "platform": "android" }, { "name": "hello-imgui", "features": [ "glfw-binding", "metal-binding" ], "platform": "ios | osx" }, { "name": "hello-imgui", "features": [ "glfw-binding", "opengl3-binding" ], "platform": "x64 & windows" }, { "name": "hello-imgui", "features": [ "experimental-dx11-binding", "glfw-binding" ], "platform": "x86 & windows" }, { "name": "hello-imgui", "features": [ "experimental-vulkan-binding", "glfw-binding", "test-engine" ], "platform": "arm64 & windows" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-huira/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO huira-render/huira REF v0.9.1 SHA512 cd2f1208f318a8ed28109618b623f574767241c5dd6da63458f8921793f97f6553636a50fc05c55f5223664321bb1f2a9e8b7791738037b0d7d985d8b877e976 HEAD_REF main ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/tests/packaging" OPTIONS -DCMAKE_DISABLE_FIND_PACKAGE_PkgConfig=ON ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-huira/vcpkg.json ================================================ { "name": "vcpkg-ci-huira", "version-string": "ci", "description": "Port to validate huira within CI", "license": "MIT", "dependencies": [ { "name": "huira", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-icu/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" "-DVCPKG_CHECK_CMAKE_BUILD_TYPE=${VCPKG_BUILD_TYPE}" "-DVCPKG_CROSSCOMPILING=${VCPKG_CROSSCOMPILING}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-icu/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(icu-test C CXX) include("${CMAKE_CURRENT_LIST_DIR}/test-functions.cmake") find_package(ICU MODULE COMPONENTS i18n REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE ICU::i18n) find_package(PkgConfig REQUIRED) pkg_check_modules(icu_pc icu-i18n REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::icu_pc) # Validate other components set(required_components data dt in io tu uc) if(VCPKG_CROSSCOMPILING) list(REMOVE_ITEM required_components tu) # comes with (host) tools endif() vcpkg_check_cmake_package_find(ICU MODULE REQUIRED COMPONENTS ${required_components}) vcpkg_check_cmake_package_variables() vcpkg_check_cmake_package_targets() ================================================ FILE: scripts/test_ports/vcpkg-ci-icu/project/main.c ================================================ #include "unicode/udat.h" int main() { UErrorCode status = U_ZERO_ERROR; UDateFormat* dateFormatter = udat_open(UDAT_NONE, UDAT_SHORT, NULL, NULL, -1, NULL, 0, &status); udat_close(dateFormatter); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-icu/project/test-functions.cmake ================================================ set(VCPKG_CHECK_CMAKE_BUILD_TYPE "" CACHE STRING "Build type to be checked") set(Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN "" CACHE INTERNAL "Last loaded package name") # Call and trace find_package in distinct scope function(z_vcpkg_check_cmake_package_trace_find) set(CMAKE_FIND_DEBUG_MODE ON) set(VCPKG_TRACE_FIND_PACKAGE ON) find_package(${ARGN}) endfunction() # Call and trace find_package, ensure that it called twice macro(vcpkg_check_cmake_package_find package) z_vcpkg_check_cmake_package_trace_find("${package}" ${ARGN}) message(STATUS "Checking that find_package(${package} ...) can be called again") find_package("${package}" ${ARGN} QUIET) message(STATUS "Checking that find_package(${package} ...) can be called again - done") set(Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN "${package}" CACHE INTERNAL "Last loaded package name") endmacro() # Check that library variables match the debug/release build type. # The variable names might be passed in explicitly or guessed from a prefix. # If no args are given, the prefix is the name of the last package loaded # by vcpkg_check_cmake_package_find(). function(vcpkg_check_cmake_package_variables) cmake_parse_arguments(PARSE_ARGV 0 arg "" "PREFIX" "") if(arg_PREFIX AND arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "'PREFIX value' must not be used together with other values.") endif() if(NOT arg_PREFIX AND NOT arg_UNPARSED_ARGUMENTS) if(Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN) set(arg_PREFIX "${Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN}") else() message(FATAL_ERROR "Unable to determine the prefix to be checked.") endif() endif() set(libraries_vars "${arg_UNPARSED_ARGUMENTS}") if(libraries_vars STREQUAL "") string(REGEX REPLACE "_\$" "" prefix "${arg_PREFIX}") if(DEFINED "${prefix}_LIBRARIES") set(libraries_vars "${prefix}_LIBRARIES") elseif(DEFINED "${package}_LIBRARY") set(libraries_vars "${prefix}_LIBRARY") endif() if(DEFINED "${prefix}_LIBRARY_DIR") list(APPEND "libraries_vars" "${${prefix}_LIBRARY_DIR}") endif() if(DEFINED "${prefix}_LIBRARY_DIRS") list(APPEND "libraries_vars" "${${prefix}_LIBRARY_DIRS}") endif() endif() if(libraries_vars STREQUAL "") message(FATAL_ERROR "Unable to determine the variables to be checked.") endif() set(link_keywords debug general optimized) foreach(var IN LISTS libraries_vars) set(libraries "${${var}}") message(STATUS "${var}: ${libraries}") set(last_keyword "") foreach(item IN LISTS libraries) if(item IN_LIST link_keywords) set(last_keyword "${item}") continue() endif() string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/" starts_with_release) string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/" starts_with_debug) if(starts_with_release EQUAL "0") if(last_keyword STREQUAL "optimized") # okay elseif(last_keyword STREQUAL "debug") message(SEND_ERROR "Release lib for 'debug' keyword: ${item}") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") message(SEND_ERROR "Release lib for 'Debug' build: ${item}") endif() elseif(starts_with_debug EQUAL "0") if(last_keyword STREQUAL "debug") # okay elseif(last_keyword STREQUAL "optimized") message(SEND_ERROR "Debug lib for 'optimized' keyword: ${item}") elseif(CMAKE_BUILD_TYPE STREQUAL "Release") message(SEND_ERROR "Debug lib for 'Release' build: ${item}") endif() endif() set(last_keyword "") continue() endforeach() endforeach() endfunction() # Check that imported target properties match the debug/release build type. # The target names might be passed in explicitly or guessed from a namespace. # If no args are given, the namespace is the name of the last package loaded # by vcpkg_check_cmake_package_find(). function(vcpkg_check_cmake_package_targets) cmake_parse_arguments(PARSE_ARGV 0 arg "" "NAMESPACE" "") if(arg_NAMESPACE AND arg_UNPARSED_ARGUMENTS) message(FATAL_ERROR "'NAMESPACE value' must not be used together with other values.") endif() if(NOT arg_NAMESPACE AND NOT arg_UNPARSED_ARGUMENTS) if(Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN) set(arg_NAMESPACE "${Z_VCPKG_CHECK_CMAKE_PACKAGE_LAST_SEEN}") else() message(FATAL_ERROR "Unable to determine the namespace to be checked.") endif() endif() set(targets "${arg_UNPARSED_ARGUMENTS}") if(targets STREQUAL "") string(REGEX REPLACE "::::\$" "::" namespace "${arg_NAMESPACE}::") get_directory_property(targets IMPORTED_TARGETS) list(FILTER targets INCLUDE REGEX "^${namespace}") endif() if(targets STREQUAL "") message(FATAL_ERROR "Unable to determine the targets to be checked.") endif() foreach(target IN LISTS targets) if(NOT TARGET "${target}") message(FATAL_ERROR "No such target: ${target}") endif() get_target_property(type "${target}" TYPE) message(STATUS "${target}: ${type}") if(type MATCHES "LIBRARY" AND NOT type MATCHES "INTERFACE") get_target_property(configurations "${target}" IMPORTED_CONFIGURATIONS) message(STATUS " IMPORTED_CONFIGURATIONS: ${configurations}") if(configurations) string(TOLOWER "${configurations}" configurations) if("release" IN_LIST configurations) set(property IMPORTED_IMPLIB_RELEASE) get_target_property(location "${target}" "${property}") if(NOT location) set(property IMPORTED_LOCATION_RELEASE) get_target_property(location "${target}" "${property}") endif() message(STATUS " ${property}: ${location}") string(FIND "${location}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" index) if (NOT index EQUAL "0") message(SEND_ERROR "Release lib is in wrong location.") endif() elseif(NOT VCPKG_CHECK_CMAKE_BUILD_TYPE OR VCPKG_CHECK_CMAKE_BUILD_TYPE STREQUAL "release") message(SEND_ERROR "Release configuration is missing.") endif() if("debug" IN_LIST configurations) set(property IMPORTED_IMPLIB_DEBUG) get_target_property(location "${target}" "${property}") if(NOT location) set(property IMPORTED_LOCATION_DEBUG) get_target_property(location "${target}" "${property}") endif() message(STATUS " ${property}: ${location}") string(FIND "${location}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" index) if (NOT index EQUAL "0") message(SEND_ERROR "Debug lib is in wrong location.") endif() elseif(NOT VCPKG_CHECK_CMAKE_BUILD_TYPE OR VCPKG_CHECK_CMAKE_BUILD_TYPE STREQUAL "debug") message(SEND_ERROR "Debug configuration is missing.") endif() endif() endif() endforeach() endfunction() ================================================ FILE: scripts/test_ports/vcpkg-ci-icu/vcpkg.json ================================================ { "name": "vcpkg-ci-icu", "version-string": "ci", "description": "Port to valdiate icu", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "icu", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-imgui/fix-examples.patch ================================================ diff --git a/examples/example_glfw_wgpu/CMakeLists.txt b/examples/example_glfw_wgpu/CMakeLists.txt index 11248df..f34d704 100644 --- a/examples/example_glfw_wgpu/CMakeLists.txt +++ b/examples/example_glfw_wgpu/CMakeLists.txt @@ -35,20 +35,11 @@ endif() set(CMAKE_CXX_STANDARD 17) # Dawn requires C++17 # Dear ImGui -set(IMGUI_DIR ../../) +find_package(imgui CONFIG REQUIRED) set(IMGUI_EXAMPLE_SOURCE_FILES # Example code main.cpp - # Dear ImGui Backend files - ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp - ${IMGUI_DIR}/backends/imgui_impl_wgpu.cpp - # Dear ImGui files - ${IMGUI_DIR}/imgui.cpp - ${IMGUI_DIR}/imgui_draw.cpp - ${IMGUI_DIR}/imgui_demo.cpp - ${IMGUI_DIR}/imgui_tables.cpp - ${IMGUI_DIR}/imgui_widgets.cpp ) if(EMSCRIPTEN) @@ -147,6 +138,7 @@ else() # Native/Desktop build endif() add_executable(${IMGUI_EXECUTABLE} ${IMGUI_EXAMPLE_SOURCE_FILES}) +target_link_libraries(${IMGUI_EXECUTABLE} PRIVATE imgui::imgui) target_include_directories(${IMGUI_EXECUTABLE} PUBLIC ${IMGUI_DIR} ================================================ FILE: scripts/test_ports/vcpkg-ci-imgui/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # https://github.com/ocornut/imgui/tree/v1.92.5/examples/example_glfw_wgpu vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ocornut/imgui REF v1.92.6 SHA512 1742eaa4811fc63f4ed3804ecd6970cbc0a960c85014903e302ab082ccf7ff7488d534bd4cb7a6d7c2a71824cb80d6c9923ea5a4951190941121cf1b05e3df9d HEAD_REF master PATCHES # use find_package(imgui) instead of source file list fix-examples.patch ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/examples/example_glfw_wgpu" OPTIONS "-DIMGUI_DAWN_DIR=${CURRENT_INSTALLED_DIR}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-imgui/vcpkg.json ================================================ { "name": "vcpkg-ci-imgui", "version-string": "ci", "description": "Port to validate imgui features within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "imgui", "features": [ "test-engine" ] }, { "name":"glfw3", "features": [ "wayland" ], "platform": "linux" }, { "name": "imgui", "features": [ "glfw-binding", "webgpu-binding" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-intelrdfpmathlib/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-intelrdfpmathlib/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(decimal128test) find_package(unofficial-intelrdfpmathlib CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE unofficial::intelrdfpmathlib::decimal128) ================================================ FILE: scripts/test_ports/vcpkg-ci-intelrdfpmathlib/project/main.cpp ================================================ #include #include int main() { unsigned int flags = 0; _IDEC_round round_mode = 0; BID_UINT128 x, y; bid128_from_string(const_cast("1.25673"), round_mode, &flags); bid128_from_int32(5); auto result = bid128_add(x, y, round_mode, &flags); } ================================================ FILE: scripts/test_ports/vcpkg-ci-intelrdfpmathlib/vcpkg.json ================================================ { "name": "vcpkg-ci-intelrdfpmathlib", "version-string": "ci", "description": "Validation port", "dependencies": [ "intelrdfpmathlib", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-itk/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-itk/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(itk-test) find_package(ITK CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE $ ) ================================================ FILE: scripts/test_ports/vcpkg-ci-itk/project/main.cpp ================================================ #include #include int main() { using FilterType = itk::VnlForwardFFTImageFilter>; auto fftFilter = FilterType::New(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-itk/vcpkg.json ================================================ { "name": "vcpkg-ci-itk", "version-string": "ci", "description": "Validates itk; intentional permutation of features", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "itk", "features": [ "opencv" ], "platform": "arm64 & !windows" }, { "name": "itk", "features": [ "rtk", "tools" ], "platform": "arm64 | x64" }, { "name": "itk", "features": [ "fftw", "opencl" ], "platform": "android | osx" }, { "name": "itk", "features": [ "vtk" ], "platform": "osx | windows" }, { "name": "itk", "features": [ "cuda" ], "platform": "x64 & windows & !staticcrt" }, { "name": "itk", "features": [ "cufftw", "opencl" ], "platform": "x64 & (linux | windows) & static" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-juce/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DWITH_CURL=${VCPKG_TARGET_IS_LINUX}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-juce/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(juce-test VERSION 1 LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 11) option(WITH_CURL "Link curl") find_package(JUCE CONFIG REQUIRED) juce_add_console_app(core PRODUCT_NAME "vcpkg-ci-juce" NEEDS_CURL "${WITH_CURL}" ) target_sources(core PRIVATE main.cpp) target_link_libraries(core PRIVATE juce::juce_core) juce_add_console_app(everything PRODUCT_NAME "vcpkg-ci-juce" NEEDS_CURL "${WITH_CURL}" ) target_sources(everything PRIVATE main.cpp) file(GLOB all_modules RELATIVE "${JUCE_MODULES_DIR}" "${JUCE_MODULES_DIR}/*") list(TRANSFORM all_modules PREPEND juce::) target_link_libraries(everything PRIVATE ${all_modules}) target_compile_definitions(everything PRIVATE JUCE_WEB_BROWSER=0) ================================================ FILE: scripts/test_ports/vcpkg-ci-juce/project/main.cpp ================================================ #include int main() { juce::Logger::writeToLog("vcpkg"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-juce/vcpkg.json ================================================ { "name": "vcpkg-ci-juce", "version-string": "ci", "description": "Validates juce", "dependencies": [ "juce", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "extras" ], "features": { "extras": { "description": "Install juce[extras]", "dependencies": [ { "name": "juce", "features": [ "extras" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-kubernetes/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO kubernetes-client/c REF v0.14.0 SHA512 8324049f030201e9a031556a799defcbc90fe41bc7b40e2997ed0c706f97660af39b84d679065e83adce85b66c832d406468a9c543367b64c5b702fc5896ee07 HEAD_REF master PATCHES standalone.diff ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_FILE=${SOURCE_PATH}/examples/generic/main.c" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-kubernetes/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(kubernetes-test C) find_package(kubernetes CONFIG REQUIRED) set(SOURCE_FILE "REQUIRED" CACHE STRING "") add_executable(main "${SOURCE_FILE}") target_link_libraries(main PRIVATE kubernetes::kubernetes) ================================================ FILE: scripts/test_ports/vcpkg-ci-kubernetes/standalone.diff ================================================ diff --git a/examples/generic/main.c b/examples/generic/main.c index 2984bcc..74d7be7 100644 --- a/examples/generic/main.c +++ b/examples/generic/main.c @@ -1,7 +1,7 @@ -#include -#include -#include -#include +#include +#include +#include +#include #include #include ================================================ FILE: scripts/test_ports/vcpkg-ci-kubernetes/vcpkg.json ================================================ { "name": "vcpkg-ci-kubernetes", "version-string": "ci", "description": "Port to force features of kubernetes within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "kubernetes", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-lapack/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.17) project(Find_LAPACK_external) find_package(LAPACK REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(LAPACK_PC REQUIRED IMPORTED_TARGET lapack) ================================================ FILE: scripts/test_ports/vcpkg-ci-lapack/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}" OPTIONS -DVCPKG_HOST_TRIPLET=${HOST_TRIPLET} ) ================================================ FILE: scripts/test_ports/vcpkg-ci-lapack/vcpkg.json ================================================ { "name": "vcpkg-ci-lapack", "version-string": "ci", "description": "Validate metapackage which provides LAPACK", "license": null, "dependencies": [ "lapack", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libaec/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libaec/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libaec-test C) find_package(libaec CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE libaec::aec) ================================================ FILE: scripts/test_ports/vcpkg-ci-libaec/project/main.c ================================================ #include #include int main() { int32_t source[] = { 1, 1, 1, 4}; int source_length = 4; unsigned char dest[64]; int dest_lenth = 64; struct aec_stream strm; strm.bits_per_sample = 32; strm.block_size = 16; strm.rsi = 128; strm.flags = AEC_DATA_SIGNED | AEC_DATA_PREPROCESS; strm.next_in = (unsigned char *)source; strm.avail_in = source_length * sizeof(int32_t); strm.next_out = (unsigned char *)dest; strm.avail_out = dest_lenth; if (aec_encode_init(&strm) != AEC_OK) return 1; if (aec_encode(&strm, AEC_FLUSH) != AEC_OK) return 1; aec_encode_end(&strm); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libaec/vcpkg.json ================================================ { "name": "vcpkg-ci-libaec", "version-string": "ci", "description": "Port to force features of libaec within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libaec", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libavif/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libavif/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libavif-test C) find_package(libavif CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE $ ) find_package(PkgConfig REQUIRED) pkg_check_modules(libavif_pc libavif REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::libavif_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-libavif/project/main.c ================================================ #include #include int main() { char codecVersions[256]; avifCodecVersions(codecVersions); printf("Codec Versions: %s\n", codecVersions); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libavif/vcpkg.json ================================================ { "name": "vcpkg-ci-libavif", "version-string": "ci", "description": "Port to force features of libavif within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libavif", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "libavif", "features": [ "aom", "dav1d" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-libdatachannel/cmake-project.diff ================================================ diff --git a/examples/streamer/CMakeLists.txt b/examples/streamer/CMakeLists.txt index 1bdeb7c..9cf65dd 100644 --- a/examples/streamer/CMakeLists.txt +++ b/examples/streamer/CMakeLists.txt @@ -2,6 +2,15 @@ cmake_minimum_required(VERSION 3.7) if(POLICY CMP0079) cmake_policy(SET CMP0079 NEW) endif() +project(vcpkg-ci) +add_definitions(-DWIN32_LEAN_AND_MEAN) +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +find_package(nlohmann_json CONFIG REQUIRED) +find_package(LibDataChannel CONFIG REQUIRED) +if(NOT TARGET LibDataChannel::LibDataChannel) + add_library(LibDataChannel::LibDataChannel ALIAS LibDataChannel::LibDataChannelStatic) +endif() set(STREAMER_SOURCES main.cpp @@ -47,7 +56,7 @@ set_target_properties(streamer PROPERTIES find_package(Threads REQUIRED) target_link_libraries(streamer LibDataChannel::LibDataChannel Threads::Threads nlohmann_json::nlohmann_json) -if(MSVC) +if(0) add_custom_command(TARGET streamer POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "$/datachannel.dll" ================================================ FILE: scripts/test_ports/vcpkg-ci-libdatachannel/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paullouisageneau/libdatachannel REF v0.23.2 SHA512 49e19e40874167ef505829841a8b944f8489cb7a15ff6e5a8d74c886c5ff28a32c2724871be2244c805dd6b0919878e06d31c43b27c8d242222adae8509e0d59 HEAD_REF master PATCHES cmake-project.diff ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}/examples/streamer") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libdatachannel/vcpkg.json ================================================ { "name": "vcpkg-ci-libdatachannel", "version-string": "ci", "description": "Validates libdatachannel", "dependencies": [ { "name": "libdatachannel", "features": [ "srtp", "ws" ] }, "nlohmann-json", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libe57/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libe57/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(libe57-test CXX) set(CMAKE_CXX_STANDARD 14) add_executable(main main.cpp) find_package(E57RefImpl CONFIG REQUIRED) target_link_libraries(main PRIVATE ${E57RefImpl_LIBRARIES}) target_include_directories(main PRIVATE ${E57RefImpl_INCLUDE_DIRS}) ================================================ FILE: scripts/test_ports/vcpkg-ci-libe57/project/main.cpp ================================================ #include int main() { int astmMajor = 0; int astmMinor = 0; e57::ustring libraryId; e57::E57Utilities utils; utils.getVersions(astmMajor, astmMinor, libraryId); e57::Reader reader(""); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libe57/vcpkg.json ================================================ { "name": "vcpkg-ci-libe57", "version-string": "ci", "description": "Validates libe57", "dependencies": [ "libe57", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libftdi1/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libftdi1/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.29) project(libftdi1-test CXX) set(CMAKE_CXX_STANDARD 11) add_executable(main main.cpp) find_package(PkgConfig REQUIRED) pkg_check_modules(libftdipp1 IMPORTED_TARGET REQUIRED libftdipp1) target_link_libraries(main PRIVATE PkgConfig::libftdipp1) # subdir to scope side effects add_subdirectory(cmake-usage) ================================================ FILE: scripts/test_ports/vcpkg-ci-libftdi1/project/cmake-usage/CMakeLists.txt ================================================ # not modern find_package(LIBFTDI1 NAMES LibFTDI1 REQUIRED) include("${LIBFTDI_USE_FILE}") add_executable(cmake-usage ../main.cpp) target_link_libraries(cmake-usage PRIVATE ${LIBFTDIPP_LIBRARIES}) ================================================ FILE: scripts/test_ports/vcpkg-ci-libftdi1/project/main.cpp ================================================ #include "ftdi.hpp" int main() { auto *context = new Ftdi::Context(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libftdi1/vcpkg.json ================================================ { "name": "vcpkg-ci-libftdi1", "version-string": "ci", "description": "Validates libftdi1", "dependencies": [ { "name": "libftdi1", "features": [ "cpp" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libgit2/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-libgit2/vcpkg.json ================================================ { "name": "vcpkg-ci-libgit2", "version-string": "ci", "description": "Validates libgit2 with ssh, tools, and sha256.", "dependencies": [ { "name": "libgit2", "default-features": false, "features": [ "ssh", "tools", "sha256" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libgwenhywfar/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libgwenhywfar/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(libgwenhywfar-test C) find_package(PkgConfig REQUIRED) block() pkg_check_modules(gwenhywfar IMPORTED_TARGET REQUIRED gwenhywfar) add_executable(libgwenhywfar_pkgconfig main.c) target_link_libraries(libgwenhywfar_pkgconfig PkgConfig::gwenhywfar) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-libgwenhywfar/project/main.c ================================================ #include /* based on gwenhywfar.pc */ int main() { int result = GWEN_Init(); GWEN_Fini(); return result; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libgwenhywfar/vcpkg.json ================================================ { "name": "vcpkg-ci-libgwenhywfar", "version-string": "ci", "description": "Validates libgwenhywfar", "dependencies": [ { "name": "libgwenhywfar", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "openssl", "platform": "!arm64" }, { "name": "qt5", "platform": "native | (x64 & windows)" } ], "features": { "openssl": { "description": "Use openssl", "dependencies": [ { "name": "libgwenhywfar", "features": [ "openssl" ] } ] }, "qt5": { "description": "Install qt5 binding", "dependencies": [ { "name": "libgwenhywfar", "features": [ "qt5" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-libharu/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libharu/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(libharu-test CXX) add_executable(main main.cpp) find_package(unofficial-libharu CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::libharu::hpdf) ================================================ FILE: scripts/test_ports/vcpkg-ci-libharu/project/main.cpp ================================================ #include "hpdf.h" int main() { const auto version = HPDF_GetVersion(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libharu/vcpkg.json ================================================ { "name": "vcpkg-ci-libharu", "version-string": "ci", "description": "Validates libharu", "dependencies": [ "libharu", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libhat/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libhat/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(libhat-test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(libhat CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE libhat::libhat) ================================================ FILE: scripts/test_ports/vcpkg-ci-libhat/project/main.cpp ================================================ #include int main() { auto sig = hat::parse_signature("01 02 03 04 05 06 07 08 09").value(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libhat/vcpkg.json ================================================ { "name": "vcpkg-ci-libhat", "version-string": "ci", "description": "Validates libhat", "dependencies": [ "libhat", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libheif/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libheif/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libheif-test C CXX) find_package(libheif CONFIG REQUIRED) add_executable(main main.c) add_library(imported::heif ALIAS heif) target_link_libraries(main PRIVATE imported::heif) find_package(PkgConfig REQUIRED) pkg_check_modules(libheif_pc libheif REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::libheif_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-libheif/project/main.c ================================================ #include int main() { heif_context* ctx = heif_context_alloc(); heif_context_free(ctx); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libheif/vcpkg.json ================================================ { "name": "vcpkg-ci-libheif", "version-string": "ci", "description": "Port to test libheif in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libheif", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "ci" ], "features": { "ci": { "description": "Feature depenencies. openjpeg is a plugin.", "dependencies": [ { "name": "libheif", "features": [ "openjpeg" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-libigl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libigl/libigl REF v2.6.0 SHA512 7c6ae5b94020a01df5d6d0a358592293595d8d8bf04bf42e6acc09bcd6ed012071069373a71ed6f24ce878aa79447dd189b42bc8a3a70819ef05dccc60a2cf68 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_PATH=${SOURCE_PATH}" "-DFEATURES=${FEATURES}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libigl/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(libigl-test C CXX) set(CMAKE_CXX_STANDARD 11) add_definitions("-DTUTORIAL_SHARED_PATH=\"${SOURCE_PATH}/placeholder\"") find_package(libigl CONFIG REQUIRED) # Other than in the upstream build ("${SOURCE_PATH}/tutorial/CMakeLists.txt"), # the imported targets use a different prefix, e.g. # igl::glfw -> igl::igl_glfw # igl_copyleft::cgal -> igl_copyleft::igl_copyleft_cgal add_executable(101_FileIO "${SOURCE_PATH}/tutorial/101_FileIO/main.cpp") target_link_libraries(101_FileIO PRIVATE igl::igl_core) if("cgal" IN_LIST FEATURES) add_executable(609_Boolean "${SOURCE_PATH}/tutorial/609_Boolean/main.cpp") target_link_libraries(609_Boolean PRIVATE igl::igl_glfw igl_copyleft::igl_copyleft_cgal) endif() if("embree" IN_LIST FEATURES) add_executable(706_FacetOrientation "${SOURCE_PATH}/tutorial/706_FacetOrientation/main.cpp") target_link_libraries(706_FacetOrientation PRIVATE igl::igl_glfw igl::igl_embree) endif() if("glfw" IN_LIST FEATURES) add_executable(102_DrawMesh "${SOURCE_PATH}/tutorial/102_DrawMesh/main.cpp") target_link_libraries(102_DrawMesh PRIVATE igl::igl_glfw) add_executable(111_MatCap "${SOURCE_PATH}/tutorial/111_MatCap/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c") target_link_libraries(111_MatCap PRIVATE igl::igl_glfw igl::igl_stb) endif() if("imgui" IN_LIST FEATURES) add_executable(109_ImGuizmo "${SOURCE_PATH}/tutorial/109_ImGuizmo/main.cpp") target_link_libraries(109_ImGuizmo PRIVATE igl::igl_imgui) add_executable(113_Shadows "${SOURCE_PATH}/tutorial/113_Shadows/main.cpp" "${CMAKE_CURRENT_LIST_DIR}/stb_image_implementation.c") target_link_libraries(113_Shadows PRIVATE igl::igl_imgui igl::igl_stb) endif() if("xml" IN_LIST FEATURES) add_executable(601_Serialization "${SOURCE_PATH}/tutorial/601_Serialization/main.cpp") target_link_libraries(601_Serialization PRIVATE igl::igl_xml) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-libigl/project/stb_image_implementation.c ================================================ #define STB_IMAGE_IMPLEMENTATION #include ================================================ FILE: scripts/test_ports/vcpkg-ci-libigl/vcpkg.json ================================================ { "name": "vcpkg-ci-libigl", "version-string": "ci", "description": "Port to force features of libigl within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libigl", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "cgal", "platform": "!android & !(x86 & windows)" }, { "name": "embree", "platform": "linux | osx | (windows & !uwp & !arm)" }, { "name": "glfw", "platform": "!android" }, { "name": "imgui", "platform": "!android" }, "xml" ], "features": { "cgal": { "description": "libigl[cgal]", "dependencies": [ { "name": "libigl", "default-features": false, "features": [ "cgal", "glfw" ] } ] }, "embree": { "description": "libigl[embree]", "dependencies": [ { "name": "libigl", "default-features": false, "features": [ "embree", "glfw" ] } ] }, "glfw": { "description": "libigl[glfw] and stb", "dependencies": [ { "name": "libigl", "default-features": false, "features": [ "glfw" ] } ] }, "imgui": { "description": "libigl[imgui] and stb", "dependencies": [ { "name": "libigl", "default-features": false, "features": [ "imgui" ] } ] }, "xml": { "description": "libigl[xml]", "dependencies": [ { "name": "libigl", "default-features": false, "features": [ "xml" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-libmem/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libmem/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(libmem-test CXX) set(CMAKE_CXX_STANDARD 17) find_package(libmem CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE libmem::libmem) ================================================ FILE: scripts/test_ports/vcpkg-ci-libmem/project/main.cpp ================================================ #include int main() { lm_module_t moduled; LM_FindModule("user32.dll", &moduled); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libmem/vcpkg.json ================================================ { "name": "vcpkg-ci-libmem", "version-string": "ci", "description": "Validates libmem", "dependencies": [ "libmem", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libmodbus/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libmodbus/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libmodbus-test C) find_package(libmodbus CONFIG REQUIRED) add_library(imported::modbus ALIAS modbus) add_executable(main main.c) target_link_libraries(main PRIVATE imported::modbus) find_package(PkgConfig REQUIRED) pkg_check_modules(libmodbus_pc libmodbus REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::libmodbus_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-libmodbus/project/main.c ================================================ #include #include int main() { modbus_t *ctx = modbus_new_rtu("/dev/ttyUSB0", 115200, 'N', 8, 1); if (ctx == NULL) { fprintf(stderr, "Unable to create the libmodbus context\n"); return -1; } return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libmodbus/vcpkg.json ================================================ { "name": "vcpkg-ci-libmodbus", "version-string": "ci", "description": "Port to validate libmodbus in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libmodbus", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libmupdf/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO ArtifexSoftware/mupdf REF 1.26.10 SHA512 c0f802fd2b181587df1748a8db7163bbcd3951b943d1321afcff56fccb515dfe99061288bc691323d0854305a1d4205c99457954b10439adb122975429cbce72 HEAD_REF master ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_PATH=${SOURCE_PATH}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libmupdf/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(libmupdf-test C CXX) find_package(unofficial-libmupdf REQUIRED) add_executable(example "${SOURCE_PATH}/docs/examples/example.c") target_link_libraries(example PRIVATE unofficial::libmupdf::libmupdf) ================================================ FILE: scripts/test_ports/vcpkg-ci-libmupdf/vcpkg.json ================================================ { "name": "vcpkg-ci-libmupdf", "version-string": "ci", "description": "Port to validate libmupdf within CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ "libmupdf", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libpqxx/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libpqxx/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libpqxx-test CXX) set(CMAKE_CXX_STANDARD 17) find_package(libpqxx CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE libpqxx::pqxx) if(NOT (WIN32 AND NOT MINGW)) find_package(PkgConfig REQUIRED) pkg_check_modules(libpqxx IMPORTED_TARGET REQUIRED libpqxx) add_executable(main-pkgconfig main.cpp) target_link_libraries(main-pkgconfig PRIVATE PkgConfig::libpqxx) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-libpqxx/project/main.cpp ================================================ #include int main() { pqxx::connection cx{"postgresql://vcpkg@localhost/tests"}; pqxx::work tx{cx}; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libpqxx/vcpkg.json ================================================ { "name": "vcpkg-ci-libpqxx", "version-string": "ci", "description": "Validates libpqxx", "dependencies": [ "libpqxx", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libremidi/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libremidi/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libremidi-test CXX) find_package(libremidi CONFIG REQUIRED) add_library(imported::libremidi ALIAS libremidi) add_executable(main main.cpp) target_link_libraries(main PRIVATE imported::libremidi) ================================================ FILE: scripts/test_ports/vcpkg-ci-libremidi/project/main.cpp ================================================ #include #include #include int main() { std::cout << "Default midi2 API: " << libremidi::get_api_display_name(libremidi::midi2::default_api()) << std::endl; libremidi::midi_any::for_all_backends([](auto& backend) { std::cout << "- " << backend.display_name << std::endl; }); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libremidi/vcpkg.json ================================================ { "name": "vcpkg-ci-libremidi", "version-string": "ci", "description": "Validates libremidi", "dependencies": [ "libremidi", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libressl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libressl/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(libressl-test C) find_package(PkgConfig REQUIRED) # libressl provides cmake config find_package(LibreSSL CONFIG REQUIRED) message(STATUS "LibreSSL CONFIG: ${LibreSSL_DIR}") string(FIND "${LibreSSL_DIR}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" index) if(NOT index STREQUAL "0") message(SEND_ERROR "LibreSSL CONFIG is not from vcpkg.") endif() pkg_check_modules(libtls IMPORTED_TARGET REQUIRED libtls) if(NOT libtls_VERSION STREQUAL LibreSSL_VERSION) message(SEND_ERROR "Unexpected libtls_VERSION '${libtls_VERSION}' (expected: '${LibreSSL_VERSION}')") endif() # libressl promises openssl compatibility # NB: The port doesn't provide a wrapper, so there is no support # for multi-config and for transitive usage requirements. find_package(OpenSSL MODULE REQUIRED) foreach(target IN ITEMS OpenSSL::SSL OpenSSL::Crypto) set(location_found FALSE) foreach(property IN ITEMS IMPORTED_LOCATION IMPORTED_LOCATION_DEBUG IMPORTED_LOCATION_RELEASE) get_target_property(location ${target} ${property}) if(NOT location) continue() endif() set(location_found TRUE) message(STATUS "${target} ${property}: ${location}") string(FIND "${location}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" index) if(NOT index STREQUAL "0") message(SEND_ERROR "${target} ${property} is not from vcpkg.") endif() endforeach() if(NOT location_found) message(SEND_ERROR "No location for ${target} binary") endif() endforeach() if(NOT OPENSSL_VERSION STREQUAL "2.0.0") message(SEND_ERROR "Unexpected OPENSSL_VERSION '${OPENSSL_VERSION}' (expected: '2.0.0')") endif() pkg_check_modules(openssl IMPORTED_TARGET REQUIRED openssl) # NB: openssl.pc carries libressl version (3.x), but doesn't provide 3.x OpenSSL API. if(NOT openssl_VERSION STREQUAL LibreSSL_VERSION) message(SEND_ERROR "Unexpected openssl_VERSION '${openssl_VERSION}' (expected: '${LibreSSL_VERSION}')") endif() # compile and link tests add_executable(openssl_cmake openssl.c) target_link_libraries(openssl_cmake OpenSSL::SSL) add_executable(openssl_pkgconfig openssl.c) target_link_libraries(openssl_pkgconfig PkgConfig::openssl) add_executable(libressl_cmake libressl.c) target_link_libraries(libressl_cmake LibreSSL::TLS) add_executable(libressl_pkgconfig libressl.c) target_link_libraries(libressl_pkgconfig PkgConfig::libtls) ================================================ FILE: scripts/test_ports/vcpkg-ci-libressl/project/libressl.c ================================================ #include int main() { return tls_init(); } ================================================ FILE: scripts/test_ports/vcpkg-ci-libressl/project/openssl.c ================================================ #include #if OPENSSL_VERSION_NUMBER != 0x20000000L # error Unexpected version #endif int main() { return SSL_library_init(); } ================================================ FILE: scripts/test_ports/vcpkg-ci-libressl/vcpkg.json ================================================ { "name": "vcpkg-ci-libressl", "version-string": "ci", "description": "Validates libressl", "dependencies": [ "libressl", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libscran-umappp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libscran-umappp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(libscran-umappp-test CXX) find_package(libscran_umappp CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE libscran::umappp) ================================================ FILE: scripts/test_ports/vcpkg-ci-libscran-umappp/project/main.cpp ================================================ #include "umappp/umappp.hpp" // See example in README from https://github.com/libscran/umappp int main() { // Define the test data int ndim = 2; int nobs = 2; std::vector data(ndim * nobs, 0.f); // Configuring the neighbor search algorithm knncolle::VptreeBuilder vp_builder( std::make_shared >() ); // Set number of dimensions in the output embedding size_t out_dim = 1; std::vector embedding(nobs * out_dim); // Initialize the UMAP state umappp::Options opt; auto status = umappp::initialize( ndim, nobs, data.data(), vp_builder, out_dim, embedding.data(), opt ); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libscran-umappp/vcpkg.json ================================================ { "name": "vcpkg-ci-libscran-umappp", "version-string": "ci", "description": "Validates libscran-umappp", "dependencies": [ "libscran-umappp", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-libsrtp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-libsrtp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(libsrtp-test C) find_package(libSRTP CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE libSRTP::srtp2) find_package(PkgConfig REQUIRED) pkg_check_modules(libsrtp_pc libsrtp2 REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::libsrtp_pc) ================================================ FILE: scripts/test_ports/vcpkg-ci-libsrtp/project/main.c ================================================ #include #include int main() { printf("libsrtp versions: %s\n", srtp_get_version_string()); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-libsrtp/vcpkg.json ================================================ { "name": "vcpkg-ci-libsrtp", "version-string": "ci", "description": "Port to force features of libsrtp within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "libsrtp", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "libsrtp", "features": [ "openssl" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-lief/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-lief/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.24) project(vcpkg-ci-lief LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 14) find_package(LIEF CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE LIEF::LIEF) ================================================ FILE: scripts/test_ports/vcpkg-ci-lief/project/main.cpp ================================================ #include #include #include int main() { // Outputs a string representation of the PUBLIC access flag (index 1) std::cout << "access flags public = " << LIEF::DEX::to_string(LIEF::DEX::access_flags_list[1]) << std::endl; std::cout << "Version = " << LIEF_VERSION << std::endl; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-lief/vcpkg.json ================================================ { "name": "vcpkg-ci-lief", "version-string": "ci", "description": "Testing packages which provide lief", "license": null, "dependencies": [ { "name": "lief", "features": [ "art", "c-api", "dex", "enable-json", "extra-warnings", "logging", "logging-debug", "oat", "use-ccache", "vdex" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-llama-cpp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-llama-cpp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(llama-cpp-test) find_package(llama CONFIG REQUIRED) add_executable(test-cmake main.cxx) add_library(imported::llama ALIAS llama) target_link_libraries(test-cmake PRIVATE imported::llama) find_package(PkgConfig REQUIRED) pkg_check_modules(llama-cpp llama REQUIRED IMPORTED_TARGET) add_executable(test-pkconfig main.cxx) target_link_libraries(test-pkconfig PRIVATE PkgConfig::llama-cpp) # Verify that ggml::ggml-vulkan can be used with apps # which instantiate VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE. if(TARGET ggml::ggml-vulkan) find_package(Vulkan REQUIRED) target_link_libraries(test-cmake PRIVATE Vulkan::Vulkan) target_compile_definitions(test-cmake PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) target_link_libraries(test-pkconfig PRIVATE Vulkan::Vulkan) target_compile_definitions(test-pkconfig PRIVATE VULKAN_HPP_DISPATCH_LOADER_DYNAMIC=1) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-llama-cpp/project/main.cxx ================================================ #include // Verify that ggml::ggml-vulkan can be used with apps which // instantiate VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE. #if defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC) && VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 #include VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE #endif int main() { auto context_params = llama_context_default_params(); ggml_backend_load_all(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-llama-cpp/vcpkg.json ================================================ { "name": "vcpkg-ci-llama-cpp", "version-string": "ci", "description": "Port to validate llama-cpp", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "llama-cpp", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-llvm/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-llvm/vcpkg.json ================================================ { "name": "vcpkg-ci-llvm", "version-string": "0", "description": "LLVM features testing within CI.", "license": null, "supports": "!uwp & !(arm & windows)", "dependencies": [ { "name": "llvm", "default-features": false, "features": [ "clang", "compiler-rt", "default-targets", "enable-abi-breaking-checks", "enable-bindings", "enable-eh", "enable-rtti", "enable-terminfo", "enable-zlib", "lld", "lldb", "tools" ] }, { "$comment": "Platform restriction due to CI artifact upload quirks; libc", "name": "llvm", "default-features": false, "features": [ "libc" ], "platform": "linux" }, { "$comment": "Platform restriction due to CI artifact upload quirks; features which need utils", "name": "llvm", "default-features": false, "features": [ "bolt", "openmp", "polly", "utils" ], "platform": "!static & !x86" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-lua/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DFEATURES=${FEATURES}" ) vcpkg_cmake_install() if("run-programs" IN_LIST FEATURES) # lua executable" message(STATUS "Running lua") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/tools/lua/lua" -e "print(package.path)" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME execute-lua-${TARGET_TRIPLET} ) # user executable (this port) if(CMAKE_HOST_WIN32) vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin") elseif(CMAKE_HOST_APPLE) vcpkg_host_path_list(PREPEND ENV{DYLD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") else() vcpkg_host_path_list(PREPEND ENV{LD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") endif() message(STATUS "Running main") vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/bin/${PORT}/main" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME execute-main-${TARGET_TRIPLET} ) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-lua/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(lua-test C CXX) find_package(Lua REQUIRED) add_executable(main main.c) target_include_directories(main PRIVATE ${LUA_INCLUDE_DIR}) target_link_libraries(main PRIVATE ${LUA_LIBRARIES}) install(TARGETS main RUNTIME DESTINATION bin/vcpkg-ci-lua) if("cpp" IN_LIST FEATURES) find_package(unofficial-lua REQUIRED) add_executable(main-cpp main.cpp) target_link_libraries(main-cpp PRIVATE unofficial::lua::lua-cpp) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-lua/project/main.c ================================================ #include #include #include #include int main() { lua_State* L = luaL_newstate(); if (L == NULL) { printf("luaL_newstate failed\n"); return 2; } luaL_openlibs(L); if (luaL_dostring(L, "print(package.path)") == LUA_OK) { lua_pop(L, lua_gettop(L)); } lua_close(L); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-lua/project/main.cpp ================================================ /* for compilation as C++ and linking with lua-c++ */ #include "main.c" ================================================ FILE: scripts/test_ports/vcpkg-ci-lua/vcpkg.json ================================================ { "name": "vcpkg-ci-lua", "version-string": "ci", "description": "Validate port lua", "dependencies": [ { "name": "lua", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "cpp", { "$comment": "The platform expression is tuned for vcpkg CI.", "name": "run-programs", "platform": "native | (!android & !uwp & !arm64)" } ], "features": { "cpp": { "description": "Test the C++ library", "dependencies": [ { "name": "lua", "default-features": false, "features": [ "cpp" ] } ] }, "run-programs": { "description": "Run lua and user program", "dependencies": [ { "name": "lua", "default-features": false, "features": [ "tools" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-luajit/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_install() if("run-programs" IN_LIST FEATURES) # luajit executable" message(STATUS "Running luajit") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/tools/luajit/luajit" -e "print(package.path)" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME execute-luajit-${TARGET_TRIPLET} ) # luajit executable and "${CURRENT_INSTALLED_DIR}/tools/luajit/jit/v.lua" message(STATUS "Running luajit with v.lua") vcpkg_execute_required_process( COMMAND "${CURRENT_INSTALLED_DIR}/tools/luajit/luajit" -jv -e "for i=1,1000 do for j=1,1000 do end end" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME execute-luajit-v.lua-${TARGET_TRIPLET} ) # user executable (this port) if(CMAKE_HOST_WIN32) vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin") elseif(CMAKE_HOST_APPLE) vcpkg_host_path_list(PREPEND ENV{DYLD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") else() vcpkg_host_path_list(PREPEND ENV{LD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") endif() message(STATUS "Running main") vcpkg_execute_required_process( COMMAND "${CURRENT_PACKAGES_DIR}/bin/${PORT}/main" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME execute-main-${TARGET_TRIPLET} ) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-luajit/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(luajit-test C) find_package(PkgConfig REQUIRED) pkg_check_modules(LUAJIT luajit IMPORTED_TARGET REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE PkgConfig::LUAJIT) install(TARGETS main RUNTIME DESTINATION bin/vcpkg-ci-luajit) ================================================ FILE: scripts/test_ports/vcpkg-ci-luajit/project/main.c ================================================ #include #include #include #include #include static const int LUAJIT_SETMODE_SUCCESS = 1; # int main() { /* FAQ, https://luajit.org/faq.html * "Make sure you use luaL_newstate. Avoid using lua_newstate ..." * "Make sure you use luaL_openlibs and not ... luaopen_base etc. directly." */ lua_State* L = luaL_newstate(); if (L == NULL) { printf("luaL_newstate failed\n"); return 2; } luaL_openlibs(L); /* API Extensions, https://luajit.org/ext_c_api.html */ int result = luaJIT_setmode(L, 0, LUAJIT_MODE_ENGINE | LUAJIT_MODE_FLUSH); if (result != LUAJIT_SETMODE_SUCCESS) { printf("luaJIT_setmode failed\n"); } else if (luaL_dostring(L, "print('luaJIT_setmode succeeded')\nprint(package.path)") == LUA_OK) { lua_pop(L, lua_gettop(L)); } lua_close(L); return result == LUAJIT_SETMODE_SUCCESS ? 0 : 1; } ================================================ FILE: scripts/test_ports/vcpkg-ci-luajit/vcpkg.json ================================================ { "name": "vcpkg-ci-luajit", "version-string": "ci", "description": "Validate port luajit", "dependencies": [ { "name": "luajit", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "$comment": "The platform expression is tuned for vcpkg CI.", "name": "run-programs", "platform": "native | (!android & !arm64)" } ], "features": { "run-programs": { "description": "Run luajit and user program" } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-mapbox-variant/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-mapbox-variant/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(mapbox-variant-test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(unofficial-mapbox-variant CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE unofficial::mapbox-variant::variant) ================================================ FILE: scripts/test_ports/vcpkg-ci-mapbox-variant/project/main.cpp ================================================ #include #include struct check { template void operator()(T const& val) const { if (val != 0) throw std::runtime_error("invalid"); } }; int main() { typedef mapbox::util::variant variant_type; variant_type v(0); mapbox::util::apply_visitor(check(), v); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-mapbox-variant/vcpkg.json ================================================ { "name": "vcpkg-ci-mapbox-variant", "version-string": "ci", "description": "Validates mapbox-variant", "dependencies": [ "mapbox-variant", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-mathgl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-mathgl/vcpkg.json ================================================ { "name": "vcpkg-ci-mathgl", "version-date": "2022-12-28", "description": "Ensures that the vcpkg CI build of mathgl tests all features and examples", "license": "MIT", "dependencies": [ { "name": "mathgl", "features": [ "arma", "examples", "fltk", "gif", "glut", "gsl", "hdf5", "jpeg", "opengl", "png", "qt5", "wx", "zlib" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-matio/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO tbeu/matio-eigen-example REF 5bbc27b18d544dcbdd7bfb821e4ef843301d4a95 SHA512 c74ef6ee94a1c2723bef4868a36894b6431acd5806386284a4be3c5a43c573edcb2d477bc23031f56f5110e231b1ff2d5aa227e79845f1b7a7b50909a905c303 HEAD_REF master PATCHES vcpkg.diff ) vcpkg_download_distfile(EIGEN_MATIO_HEADER URLS "https://github.com/tbeu/eigen-matio/raw/b29e109083b9836471565f8d06f44a76a11d0def/MATio" FILENAME "tbeu/matio-eigen-MATio-b29e109" SHA512 06c7fe74a8e91d08dba6ff804ee0c925130d9280c916cf8d4c739f4c7dbf421cb00225783fa22e1e02bac03c49ed024dcc35fef0d8edeec7a724ce3406f3fbf1 ) file(COPY_FILE "${EIGEN_MATIO_HEADER}" "${SOURCE_PATH}/include/MATio") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}" OPTIONS "-DEIGEN_MATIO_DIR=${SOURCE_PATH}/include" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-matio/vcpkg.diff ================================================ diff --git a/CMakeLists.txt b/CMakeLists.txt index 9085a40..e3a885e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ endif() set(LIBS_DIR ${CMAKE_CURRENT_BINARY_DIR}/libs) set(EIGEN_MATIO_URL https://raw.githubusercontent.com/tbeu/eigen-matio/master/MATio) -set(EIGEN_MATIO_DIR ${LIBS_DIR}/include) +set(EIGEN_MATIO_DIR "${LIBS_DIR}/include" CACHE FILEPATH "Directory of the MATio C++ header") set(EIGEN_MATIO_DEST ${EIGEN_MATIO_DIR}/MATio) if(NOT EXISTS EIGEN_MATIO_DEST) file(DOWNLOAD ${EIGEN_MATIO_URL} ${EIGEN_MATIO_DEST}) @@ -27,4 +27,3 @@ target_compile_features(${EXAMPLE_LIB_NAME} PUBLIC cxx_std_17) set_target_properties(${EXAMPLE_LIB_NAME} PROPERTIES CXX_EXTENSIONS OFF) enable_testing() -add_subdirectory(test) ================================================ FILE: scripts/test_ports/vcpkg-ci-matio/vcpkg.json ================================================ { "name": "vcpkg-ci-matio", "version-string": "ci", "description": "Port to validate matio", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "eigen3", { "name": "matio", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-mdl-sdk/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-mdl-sdk/vcpkg.json ================================================ { "name": "vcpkg-ci-mdl-sdk", "version-string": "ci", "description": "Port to force features of certain ports within CI", "license": "BSD-3-Clause", "dependencies": [ { "name": "mdl-sdk", "default-features": false, "features": [ "dds", "df-vulkan", "materialx", "openimageio" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-mimalloc/build-type.diff ================================================ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 199f4809..beae8345 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -20,6 +20,7 @@ find_package(mimalloc CONFIG REQUIRED) message(STATUS "Found mimalloc installed at: ${MIMALLOC_LIBRARY_DIR} (${MIMALLOC_VERSION_DIR})") +if(BUILD_SHARED_LIBS) # link with a dynamic shared library # use `LD_PRELOAD` to actually override malloc/free at runtime with mimalloc add_executable(dynamic-override main-override.c) @@ -27,15 +28,19 @@ target_link_libraries(dynamic-override PUBLIC mimalloc) add_executable(dynamic-override-cxx main-override.cpp) target_link_libraries(dynamic-override-cxx PUBLIC mimalloc) +endif() +if(MIMALLOC_OBJECT_DIR) # overriding with a static object file works reliable as the symbols in the # object file have priority over those in library files add_executable(static-override-obj main-override.c ${MIMALLOC_OBJECT_DIR}/mimalloc${CMAKE_C_OUTPUT_EXTENSION}) target_include_directories(static-override-obj PUBLIC ${MIMALLOC_INCLUDE_DIR}) target_link_libraries(static-override-obj PUBLIC mimalloc-static) +endif() +if(NOT BUILD_SHARED_LIBS AND NOT WIN32) # overriding with a static library works too if using the `mimalloc-override.h` # header to redefine malloc/free. (the library already overrides new/delete) add_executable(static-override-static main-override-static.c) @@ -49,6 +54,7 @@ target_link_libraries(static-override PUBLIC mimalloc-static) add_executable(static-override-cxx main-override.cpp) target_link_libraries(static-override-cxx PUBLIC mimalloc-static) +endif() ## test memory errors ================================================ FILE: scripts/test_ports/vcpkg-ci-mimalloc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO microsoft/mimalloc REF "v${VERSION}" SHA512 a674dbe119e080630de0af12a972af9fb1ac3611413fd5a7eb14f61e47af620f6368a28e8849757136fcc1c3c4f8f776cfa0f351d3f0ef463eff98fdf8c4db52 HEAD_REF master PATCHES build-type.diff ) # Ensure that the test uses the installed mimalloc only file(REMOVE_RECURSE "${SOURCE_PATH}/bin" "${SOURCE_PATH}/include" "${SOURCE_PATH}/src" ) vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/test" OPTIONS "-DCMAKE_PROJECT_INCLUDE=${CURRENT_PORT_DIR}/vcpkg-tests.cmake" "-DFEATURES=${FEATURES}" ) set(ENV{MIMALLOC_VERBOSE} 1) set(ENV{MIMALLOC_SHOW_ERRORS} 1) vcpkg_cmake_install(ADD_BIN_TO_PATH) if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" OR NOT VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES pkgconfig-override-cxx AUTO_CLEAN) endif() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug") vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") ================================================ FILE: scripts/test_ports/vcpkg-ci-mimalloc/vcpkg-tests.cmake ================================================ macro(deferred_tests) find_package(PkgConfig REQUIRED) # Legacy variables message(STATUS "MIMALLOC_INCLUDE_DIR: ${MIMALLOC_INCLUDE_DIR}") message(STATUS "MIMALLOC_LIBRARY_DIR: ${MIMALLOC_LIBRARY_DIR}") find_file(mimalloc_h NAMES mimalloc.h PATHS "${MIMALLOC_INCLUDE_DIR}" NO_DEFAULT_PATH REQUIRED) set(names mimalloc mimalloc-secure mimalloc-static mimalloc-static-secure mimalloc-debug mimalloc-secure-debug mimalloc-static-debug mimalloc-static-secure-debug ) find_library(mimalloc_lib NAMES ${names} PATHS "${MIMALLOC_LIBRARY_DIR}" NO_DEFAULT_PATH REQUIRED) # pkgconfig pkg_check_modules(PC_MIMALLOC mimalloc IMPORTED_TARGET REQUIRED) add_executable(pkgconfig-override $,main-override.c,main-override-static.c>) target_link_libraries(pkgconfig-override PRIVATE PkgConfig::PC_MIMALLOC) if(BUILD_SHARED_LIBS OR NOT WIN32) add_executable(pkgconfig-override-cxx main-override.cpp) target_link_libraries(pkgconfig-override-cxx PRIVATE PkgConfig::PC_MIMALLOC) endif() # overriding allocation in a DLL that is compiled independent of mimalloc # https://github.com/microsoft/mimalloc/blob/dev/readme.md#dynamic-override-on-windows if(BUILD_SHARED_LIBS AND WIN32 AND "override" IN_LIST FEATURES) add_library(mimalloc-test-override-dep SHARED main-override-dep.cpp) target_link_libraries(dynamic-override-cxx PRIVATE mimalloc-test-override-dep) target_link_libraries(pkgconfig-override-cxx PRIVATE mimalloc-test-override-dep) endif() # Runtime if(NOT CMAKE_CROSSCOMPILING) get_directory_property(targets BUILDSYSTEM_TARGETS) set(expected_fails test-wrong) list(REMOVE_ITEM targets ${expected_fails}) foreach(target IN LISTS targets) get_target_property(type ${target} TYPE) if(type STREQUAL "EXECUTABLE") add_custom_target(run-${target} ALL COMMAND ${target}) endif() endforeach() endif() # Deployment if(TARGET pkgconfig-override-cxx) install(TARGETS pkgconfig-override-cxx) else() install(CODE [[ # placeholder # ]]) endif() endmacro() cmake_language(DEFER CALL deferred_tests) ================================================ FILE: scripts/test_ports/vcpkg-ci-mimalloc/vcpkg.json ================================================ { "name": "vcpkg-ci-mimalloc", "version": "3.2.6", "description": "Validates mimalloc", "dependencies": [ "mimalloc", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "override", "platform": "native | (windows & !static)" }, { "name": "secure", "platform": "native" } ], "features": { "override": { "description": "Test override feature", "dependencies": [ { "name": "mimalloc", "features": [ "override" ] } ] }, "secure": { "description": "Test secure feature", "dependencies": [ { "name": "mimalloc", "features": [ "secure" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-minc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-minc/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(minc-test C CXX) find_package(LIBMINC CONFIG REQUIRED) add_executable(main main.c) target_include_directories(main PRIVATE ${LIBMINC_INCLUDE_DIRS}) target_link_directories(main PRIVATE ${LIBMINC_LIBRARY_DIRS}) target_link_libraries(main PRIVATE ${LIBMINC_LIBRARIES}) if(NOT EXISTS "${LIBMINC_USE_FILE}") message(SEND_ERROR "No such LIBMINC_USE_FILE: ${LIBMINC_USE_FILE}") endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-minc/project/main.c ================================================ #include #include int main() { int result; mihandle_t hvol; result = miopen_volume("/tmp/test.mnc", MI2_OPEN_READ, &hvol); if (result != MI_NOERROR) { fprintf(stderr, "Error opening the input file.\n"); } miclose_volume(hvol); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-minc/vcpkg.json ================================================ { "name": "vcpkg-ci-minc", "version-string": "ci", "description": "Port to force features of minc within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "minc", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "minc", "features": [ "minc1" ], "platform": "native" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-mpg123/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-mpg123/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(vcpkg-ci-mpg123 C) find_package(mpg123 REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE MPG123::libmpg123) find_package(PkgConfig REQUIRED) pkg_check_modules(MPG123_PC REQUIRED IMPORTED_TARGET libmpg123) add_executable(main-pc main.c) target_link_libraries(main-pc PRIVATE PkgConfig::MPG123_PC) ================================================ FILE: scripts/test_ports/vcpkg-ci-mpg123/project/main.c ================================================ #include int main() { mpg123_handle *m = mpg123_new(NULL, NULL); mpg123_open(m, "vcpkg"); mpg123_scan(m); mpg123_close(m); mpg123_delete(m); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-mpg123/vcpkg.json ================================================ { "name": "vcpkg-ci-mpg123", "version-string": "ci", "description": "Validates mpg123", "dependencies": [ "mpg123", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-msh3/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-msh3/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(msh3-test C) block() set(CMAKE_DISABLE_FIND_PACKAGE_PkgConfig 1) find_package(msh3 CONFIG REQUIRED) if(NOT TARGET msh3) message(SEND_ERROR "No target 'msh3'") endif() add_executable(msh3_cmake main.c) target_link_libraries(msh3_cmake msh3) endblock() block() find_package(PkgConfig REQUIRED) pkg_check_modules(libmsh3 IMPORTED_TARGET REQUIRED libmsh3) add_executable(msh3_pkgconfig main.c) target_link_libraries(msh3_pkgconfig PkgConfig::libmsh3) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-msh3/project/main.c ================================================ #include int main() { MSH3_API* api = MsH3ApiOpen(); if (api) MsH3ApiClose(api); } ================================================ FILE: scripts/test_ports/vcpkg-ci-msh3/vcpkg.json ================================================ { "name": "vcpkg-ci-msh3", "version-string": "ci", "description": "Validates msh3", "dependencies": [ "msh3", { "name": "msquic", "features": [ "0-rtt" ], "platform": "windows & !static" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-msys2/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(msys_repo_url "https://mirror.msys2.org/msys/x86_64") set(mingw64_repo_url "https://mirror.msys2.org/mingw/mingw64") set(mingw32_repo_url "https://mirror.msys2.org/mingw/mingw32") set(clangarm64_repo_url "https://mirror.msys2.org/mingw/clangarm64") # Ignore these updates (e.g. for known problems) vcpkg_list(SET ignored_updates https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-ca-certificates-20211016-3-any.pkg.tar.zst ) # Known removals that shall not be reported as errors # (Packages to be removed from vcpkg scripts ASAP.) vcpkg_list(SET known_delisted libcrypt ) # Ignore these dependencies (e.g. interactive or effectively optional) vcpkg_list(SET ignored_dependencies autoconf2.13 autoconf2.69 autoconf2.71 automake1.11 automake1.12 automake1.13 automake1.14 automake1.15 db gdbm info less libiconv-devel libltdl mingw-w64-i686-tzdata mingw-w64-x86_64-tzdata ) # Ignore these provides (e.g. effectively optional) vcpkg_list(SET ignored_provides gnome-common perl-Archive-Tar perl-Attribute-Handlers perl-AutoLoader perl-CPAN-Meta-Requirements perl-CPAN-Meta-YAML perl-CPAN-Meta perl-CPAN perl-Carp perl-Compress-Raw-Bzip2 perl-Compress-Raw-Zlib perl-Config-Perl-V perl-DB_File perl-Data-Dumper perl-Devel-PPPort perl-Devel-SelfStubber perl-Digest-MD5 perl-Digest-SHA perl-Digest perl-Dumpvalue perl-Encode perl-Env perl-Exporter perl-ExtUtils-CBuilder perl-ExtUtils-Constant perl-ExtUtils-Install perl-ExtUtils-MakeMaker perl-ExtUtils-Manifest perl-ExtUtils-PL2Bat perl-ExtUtils-ParseXS perl-File-Fetch perl-File-Path perl-File-Temp perl-Filter-Simple perl-Filter-Util-Call perl-FindBin perl-Getopt-Long perl-HTTP-Tiny perl-I18N-Collate perl-I18N-LangTags perl-IO-Compress perl-IO-Socket-IP perl-IO-Zlib perl-IO perl-IPC-Cmd perl-IPC-SysV perl-JSON-PP perl-Locale-Maketext-Simple perl-Locale-Maketext perl-MIME-Base64 perl-Math-BigInt-FastCalc perl-Math-BigInt perl-Math-BigRat perl-Math-Complex perl-Memoize perl-Module-CoreList perl-Module-Load-Conditional perl-Module-Load perl-Module-Loaded perl-Module-Metadata perl-NEXT perl-Net-Ping perl-Params-Check perl-PathTools perl-Perl-OSType perl-PerlIO-via-QuotedPrint perl-Pod-Checker perl-Pod-Escapes perl-Pod-Perldoc perl-Pod-Simple perl-Pod-Usage perl-Safe perl-Scalar-List-Utils perl-Search-Dict perl-SelfLoader perl-Socket perl-Storable perl-Sys-Syslog perl-Term-ANSIColor perl-Term-Cap perl-Term-Complete perl-Term-ReadLine perl-Test-Harness perl-Test-Simple perl-Test perl-Text-Abbrev perl-Text-Balanced perl-Text-ParseWords perl-Text-Tabs perl-Thread-Queue perl-Thread-Semaphore perl-Tie-File perl-Tie-RefHash perl-Time-HiRes perl-Time-Local perl-Time-Piece perl-Unicode-Collate perl-Unicode-Normalize perl-Win32 perl-Win32API-File perl-XSLoader perl-autodie perl-autouse perl-base perl-bignum perl-constant perl-encoding-warnings perl-experimental perl-if perl-lib perl-libnet perl-parent perl-perlfaq perl-podlators perl-threads-shared perl-threads perl-version ) string(TIMESTAMP now "%s" UTC) function(age_in_days out_var timestamp) set(age "") if(timestamp) math(EXPR age "(${now} - ${timestamp}) / 3600 / 24") endif() set(${out_var} "${age}" PARENT_SCOPE) endfunction() function(pretty_age out_var age_in_days) if(age_in_days STREQUAL "") set(${out_var} "(timestamp unknown)" PARENT_SCOPE) else() set(${out_var} "(${age_in_days} days ago)" PARENT_SCOPE) endif() endfunction() function(get_vcpkg_builddate out_var name) if(NOT DEFINED Z_VCPKG_MSYS_${name}_ARCHIVE) z_vcpkg_acquire_msys_download_package(Z_VCPKG_MSYS_${name}_ARCHIVE URL "${Z_VCPKG_MSYS_${name}_URL}" SHA512 "${Z_VCPKG_MSYS_${name}_SHA512}" FILENAME "${Z_VCPKG_MSYS_${name}_FILENAME}" ) set(Z_VCPKG_MSYS_${name}_ARCHIVE "${Z_VCPKG_MSYS_${name}_ARCHIVE}" PARENT_SCOPE) endif() set(pkginfo_dir "${CURRENT_BUILDTREES_DIR}/vcpkg") file(REMOVE_RECURSE "${pkginfo_dir}/${name}.txt" "${pkginfo_dir}/_tmp") file(MAKE_DIRECTORY "${pkginfo_dir}/_tmp") execute_process( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${Z_VCPKG_MSYS_${name}_ARCHIVE}" .PKGINFO WORKING_DIRECTORY "${pkginfo_dir}/_tmp" ) file(RENAME "${pkginfo_dir}/_tmp/.PKGINFO" "${pkginfo_dir}/${name}.txt") file(STRINGS "${pkginfo_dir}/${name}.txt" builddate REGEX "builddate = [0-9]+") string(REPLACE "builddate = " "" builddate "${builddate}") set(${out_var} "${builddate}" PARENT_SCOPE) endfunction() function(get_vcpkg_provides out_var name) if(NOT DEFINED Z_VCPKG_MSYS_${name}_ARCHIVE) z_vcpkg_acquire_msys_download_package(Z_VCPKG_MSYS_${name}_ARCHIVE URL "${Z_VCPKG_MSYS_${name}_URL}" SHA512 "${Z_VCPKG_MSYS_${name}_SHA512}" FILENAME "${Z_VCPKG_MSYS_${name}_FILENAME}" ) set(Z_VCPKG_MSYS_${name}_ARCHIVE "${Z_VCPKG_MSYS_${name}_ARCHIVE}" PARENT_SCOPE) endif() set(pkginfo_dir "${CURRENT_BUILDTREES_DIR}/vcpkg") file(REMOVE_RECURSE "${pkginfo_dir}/${name}.txt" "${pkginfo_dir}/_tmp") file(MAKE_DIRECTORY "${pkginfo_dir}/_tmp") execute_process( COMMAND "${CMAKE_COMMAND}" -E tar xzf "${Z_VCPKG_MSYS_${name}_ARCHIVE}" .PKGINFO WORKING_DIRECTORY "${pkginfo_dir}/_tmp" ) file(RENAME "${pkginfo_dir}/_tmp/.PKGINFO" "${pkginfo_dir}/${name}.txt") file(STRINGS "${pkginfo_dir}/${name}.txt" provides REGEX "provides = .+") string(REPLACE "provides = " "" provides "${provides}") set(${out_var} "${provides}" PARENT_SCOPE) endfunction() function(update_vcpkg_download script_file name new_url) message(STATUS "- Updating vcpkg...") if(NOT new_url MATCHES [[^https://mirror\.msys2\.org/.*/(([^/]*)-[^-/]+-[^-/]+-[^-/]+\.pkg\.tar\.(xz|zst))$]]) message(FATAL_ERROR "Supplied URL does not match the expected pattern: ${arg_URL}") endif() set(filename "msys2-${CMAKE_MATCH_1}") vcpkg_download_distfile(archive URLS "${new_url}" FILENAME "${filename}" SKIP_SHA512 ) execute_process( COMMAND "${CMAKE_COMMAND}" -E sha512sum "${archive}" OUTPUT_VARIABLE sha512 OUTPUT_STRIP_TRAILING_WHITESPACE ) string(REGEX REPLACE " .*" "" sha512 "${sha512}") vcpkg_replace_string("${SCRIPTS}/cmake/${script_file}" "${Z_VCPKG_MSYS_${name}_URL}" "${new_url}") vcpkg_replace_string("${SCRIPTS}/cmake/${script_file}" "${Z_VCPKG_MSYS_${name}_SHA512}" "${sha512}") endfunction() function(pretty_dependencies out_var list_name) foreach(dependency IN LISTS ignored_dependencies) list(TRANSFORM ${list_name} REPLACE "^${dependency}\$" "(${dependency})") endforeach() list(JOIN ${list_name} " " list_string) set(${out_var} "${list_string}" PARENT_SCOPE) endfunction() function(analyze_package_list list_var script) message(STATUS "*** Analyzing packages in '${script}'") vcpkg_list(SET critical) # Packages which can be upgraded and are fairly old in vcpkg vcpkg_list(SET mismatched_deps) # Packages which have vcpkg deps different from msys2 deps vcpkg_list(SET missing) # Packages used in (new) deps but not declared vcpkg_list(SET upgradable) # Packages which can be upgrade but are fairly fresh in vcpkg vcpkg_list(SET vanished) # Packages which vanished from the msys2 database # Preload details from direct packages foreach(name IN LISTS ${list_var}) if(NOT Z_VCPKG_MSYS_${name}_DIRECT) continue() endif() get_vcpkg_provides(vcpkg_provides "${name}") set(Z_VCPKG_MSYS_${name}_PROVIDES "${vcpkg_provides}") foreach(provided IN LISTS vcpkg_provides) set(Z_VCPKG_MSYS_${provided}_PROVIDED_BY "${name}") endforeach() endforeach() # msys2.org removes packages 1.75 years after it was removed from the active database, # cf. https://www.msys2.org/docs/faq/#how-long-are-old-packages-kept-on-repomsys2org # We don't know the date of that replacement, and mirrors might use a shorter time. # But we can compare the build date of the package currently downloaded by vcpkg # and the build date of the package in the msys2 database. # If this time span exceeds 'max_age', an update is marked as critical. set(max_age 365) # days math(EXPR minimum_builddate "${now} - 6 * 30 * 24 * 3600") foreach(name IN LISTS ${list_var}) if(Z_VCPKG_MSYS_${name}_DIRECT) message(STATUS "${name} (DIRECT)") elseif("DIRECT_ONLY" IN_LIST ARGN) continue() else() message(STATUS "${name}") endif() set(vcpkg_url "${Z_VCPKG_MSYS_${name}_URL}") set(vcpkg_deps "${Z_VCPKG_MSYS_${name}_DEPS}") set(vcpkg_provides "${Z_VCPKG_MSYS_${name}_PROVIDES}") set(repo "msys") if(name MATCHES "^mingw-w64-x86_64") set(repo "mingw64") elseif(name MATCHES "^mingw-w64-i686") set(repo "mingw32") elseif(name MATCHES "^mingw-w64-clang-aarch64") set(repo "clangarm64") endif() file(GLOB files "${${repo}_repo_files}/${name}-*/desc") set(found 0) foreach(file IN LISTS files) # Find the package file(STRINGS "${file}" desc) if(NOT desc MATCHES "%NAME%;${name};") continue() elseif(NOT desc MATCHES "%FILENAME%;([^;]+)") continue() endif() set(found 1) set(current_url "${${repo}_repo_url}/${CMAKE_MATCH_1}") # Check the URL if(NOT vcpkg_url STREQUAL current_url AND NOT current_url IN_LIST ignored_updates) get_vcpkg_builddate(vcpkg_builddate "${name}") age_in_days(vcpkg_age "${vcpkg_builddate}") pretty_age(vcpkg_age_pretty "${vcpkg_age}") set(current_age "") if(desc MATCHES "%BUILDDATE%;([0-9]+)") age_in_days(current_age "${CMAKE_MATCH_1}") endif() pretty_age(current_age_string "${current_age}") message(STATUS "- vcpkg: ${vcpkg_url} ${vcpkg_age_pretty}") message(STATUS "+ msys2: ${current_url} ${current_age_string}") set(age_diff "0") if(NOT vcpkg_age STREQUAL "" AND NOT current_age STREQUAL "") math(EXPR age_diff "${current_age} - ${vcpkg_age}") endif() if(age_diff GREATER max_age) if("update-all" IN_LIST FEATURES) update_vcpkg_download("${script}" "${name}" "${current_url}") else() vcpkg_list(APPEND critical "${name}") endif() elseif(NOT vcpkg_url STREQUAL current_url) if("update-all" IN_LIST FEATURES) update_vcpkg_download("${script}" "${name}" "${current_url}") else() vcpkg_list(APPEND upgradable "${name}") endif() endif() endif() # Check the dependencies if(desc MATCHES "%DEPENDS%;([^%]*)" OR vcpkg_deps) list(JOIN CMAKE_MATCH_1 " " current_deps) separate_arguments(current_deps UNIX_COMMAND "${current_deps}") list(TRANSFORM current_deps REPLACE "[<=>].*" "") list(SORT current_deps) list(SORT vcpkg_deps) pretty_dependencies(current_deps_string current_deps) if(Z_VCPKG_MSYS_${name}_DIRECT AND NOT current_deps STREQUAL "") message(STATUS "* msys2 dependencies: ${current_deps_string}") elseif(NOT vcpkg_deps STREQUAL current_deps) pretty_dependencies(vcpkg_deps_string vcpkg_deps) message(STATUS "- vcpkg dependencies: ${vcpkg_deps_string}") message(STATUS "+ msys2 dependencies: ${current_deps_string}") list(REMOVE_ITEM current_deps ${ignored_dependencies}) if(NOT vcpkg_deps STREQUAL current_deps) vcpkg_list(APPEND mismatched_deps "${name}") endif() list(REMOVE_ITEM current_deps ${known_packages} ${${list_var}} ${ignored_dependencies}) set(missing_deps "") foreach(dep IN LISTS current_deps) if(NOT DEFINED Z_VCPKG_MSYS_${dep}_PROVIDED_BY) list(APPEND missing_deps "${dep}") endif() endforeach() if(missing_deps) list(JOIN missing_deps " " missing_deps_string) message(STATUS "! unknown dependencies: ${missing_deps_string}") vcpkg_list(APPEND missing ${missing_deps}) endif() endif() endif() # Check the "provides" if(desc MATCHES "%PROVIDES%;([^%]*)" OR vcpkg_provides) list(JOIN CMAKE_MATCH_1 " " current_provides) separate_arguments(current_provides UNIX_COMMAND "${current_provides}") list(TRANSFORM current_provides REPLACE "[<=>].*" "") list(REMOVE_ITEM current_provides ${ignored_provides}) list(JOIN vcpkg_provides " " vcpkg_provides_string) if(NOT vcpkg_provides STREQUAL current_provides) list(JOIN vcpkg_provides " " vcpkg_provides_string) list(JOIN current_provides " " current_provides_string) message(STATUS "- vcpkg provides: ${vcpkg_provides_string}") message(STATUS "+ msys2 provides: ${current_provides_string}") elseif(NOT vcpkg_provides STREQUAL "") message(STATUS "* provides: ${vcpkg_provides_string}") endif() endif() endforeach() if(NOT found AND NOT name IN_LIST known_delisted) vcpkg_list(APPEND vanished "${name}") get_vcpkg_builddate(vcpkg_builddate "${name}") age_in_days(vcpkg_age "${vcpkg_builddate}") pretty_age(vcpkg_age_pretty "${vcpkg_age}") message(STATUS "- vcpkg: ${vcpkg_url} ${vcpkg_age_pretty}") message(STATUS "! msys2: no match for ${name}") age_in_days(current_age "${now}") set(age_diff "0") if(NOT vcpkg_age STREQUAL "" AND NOT current_age STREQUAL "") math(EXPR age_diff "${current_age} - ${vcpkg_age}") endif() if(age_diff GREATER max_age) vcpkg_list(APPEND critical "${name}") endif() endif() endforeach() if(mismatched_deps) list(JOIN mismatched_deps " " mismatched_deps) message(WARNING "The following msys2 packages have changed dependencies: ${mismatched_deps}") endif() if(missing) list(SORT missing) list(REMOVE_DUPLICATES missing) list(JOIN missing " " missing) message(WARNING "The following msys2 packages would be needed to update all dependencies: ${missing}") endif() if(upgradable) list(JOIN upgradable " " upgradable) message(WARNING "The following msys2 packages could be updated: ${upgradable}") endif() if(critical) list(JOIN critical " " critical) message(SEND_ERROR "The following msys2 packages were build more than 6 months ago and should be updated: ${critical}") endif() if(vanished) list(JOIN vanished " " vanished) message(SEND_ERROR "The following msys2 packages are no longer in the database: ${vanished}") endif() message(STATUS "*** Analyzing packages in '${script}' done") endfunction() message(STATUS "*** Downloading current msys2 package lists") string(TIMESTAMP stamp "%Y-%m-%d" UTC) foreach(repo IN ITEMS msys mingw32 mingw64 clangarm64) string(REPLACE "/" "-" local_file "msys2-${stamp}-${repo}.files") set(archive "${DOWNLOADS}/${local_file}") vcpkg_download_distfile(repo_files_archive URLS "${${repo}_repo_url}/${repo}.files" FILENAME "${local_file}" SKIP_SHA512 ) vcpkg_extract_source_archive(repo_files ARCHIVE "${repo_files_archive}" NO_REMOVE_ONE_LEVEL ) set(${repo}_repo_files "${repo_files}") endforeach() message(STATUS "*** Downloading current msys2 package lists done") set(Z_VCPKG_MSYS_PACKAGES_RESOLVED "" CACHE INTERNAL "") vcpkg_acquire_msys(msys_root Z_ALL_PACKAGES) analyze_package_list(Z_VCPKG_MSYS_PACKAGES_RESOLVED "vcpkg_acquire_msys.cmake") set(known_packages "${Z_VCPKG_MSYS_PACKAGES_RESOLVED}") set(Z_VCPKG_MSYS_PACKAGES_RESOLVED "" CACHE INTERNAL "") vcpkg_find_acquire_program(PKGCONFIG) vcpkg_acquire_msys(msys_root NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_acquire_pkgconfig_msys_declare_packages" PACKAGES mingw-w64-clang-aarch64-pkgconf mingw-w64-x86_64-pkgconf mingw-w64-i686-pkgconf ) analyze_package_list(Z_VCPKG_MSYS_PACKAGES_RESOLVED "vcpkg_find_acquire_program(PKGCONFIG).cmake") set(CMAKE_Fortran_COMPILER "") if(NOT VCPKG_TARGET_IS_WINDOWS) set(CMAKE_Fortran_COMPILER "true") endif() set(Z_VCPKG_MSYS_PACKAGES_RESOLVED "" CACHE INTERNAL "") include("${SCRIPTS}/cmake/vcpkg_find_fortran.cmake") vcpkg_find_fortran(FORTRAN) vcpkg_acquire_msys(msys_root NO_DEFAULT_PACKAGES Z_DECLARE_EXTRA_PACKAGES_COMMAND "z_vcpkg_find_fortran_msys_declare_packages" PACKAGES mingw-w64-x86_64-gcc-fortran mingw-w64-i686-gcc-fortran ) analyze_package_list(Z_VCPKG_MSYS_PACKAGES_RESOLVED "vcpkg_find_fortran.cmake") ================================================ FILE: scripts/test_ports/vcpkg-ci-msys2/vcpkg.json ================================================ { "name": "vcpkg-ci-msys2", "version": "1", "description": "Test vcpkg msys2 freshness", "license": "MIT", "supports": "(windows | mingw) & native", "features": { "update-all": { "description": "Update all outdated packages in vcpkg_acquire_msys.cmake" } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-mysql-connector-cpp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DFEATURES=${FEATURES}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-mysql-connector-cpp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10...3.30) project(mysql-connector-cpp-test CXX) if(APPLE) set(CMAKE_CXX_STANDARD 11) endif() # proper export add_executable(unofficial-mysql-connector-cpp main.cpp) find_package(unofficial-mysql-connector-cpp CONFIG REQUIRED) target_link_libraries(unofficial-mysql-connector-cpp PRIVATE unofficial::mysql-connector-cpp::connector) # partial re-implementation add_executable(mysql-concpp-xdevapi main.cpp) find_package(mysql-concpp CONFIG REQUIRED) target_link_libraries(mysql-concpp-xdevapi PRIVATE $,mysql::concpp-xdevapi,mysql::concpp-xdevapi-static>) if("jdbc" IN_LIST FEATURES) # proper export add_executable(unofficial-mysql-connector-cpp-jdbc jdbc.cpp) target_link_libraries(unofficial-mysql-connector-cpp-jdbc PRIVATE unofficial::mysql-connector-cpp::connector-jdbc) # partial re-implementation add_executable(mysql-concpp-jdbc jdbc.cpp) target_link_libraries(mysql-concpp-jdbc PRIVATE $,mysql::concpp-jdbc,mysql::concpp-jdbc-static>) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-mysql-connector-cpp/project/jdbc.cpp ================================================ #include int main() { sql::Driver* driver = sql::mysql::get_driver_instance(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-mysql-connector-cpp/project/main.cpp ================================================ #include int main() { mysqlx::Session sess("mysqlx://vcpkg@127.0.0.1"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-mysql-connector-cpp/vcpkg.json ================================================ { "name": "vcpkg-ci-mysql-connector-cpp", "version-string": "ci", "description": "Validates mysql-connector-cpp", "dependencies": [ "mysql-connector-cpp", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "jdbc", "platform": "x64 & static" } ], "features": { "jdbc": { "description": "Test jdbc", "dependencies": [ { "name": "mysql-connector-cpp", "features": [ "jdbc" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-mzying2001-sw/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-mzying2001-sw/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(mzying2001-sw-test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(sw CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE sw::sw) ================================================ FILE: scripts/test_ports/vcpkg-ci-mzying2001-sw/project/main.cpp ================================================ #include int main() { sw::Window wnd; sw::Button btn; wnd.SetLayout(); btn.AddHandler(sw::ButtonBase_Clicked, [](sw::UIElement& sender, sw::RoutedEventArgs& e) { sw::MsgBox::Show(L"Hello, SimpleWindow!"); }); wnd.AddChild(btn); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-mzying2001-sw/vcpkg.json ================================================ { "name": "vcpkg-ci-mzying2001-sw", "version-string": "ci", "description": "Validates mzying2001-sw", "dependencies": [ "mzying2001-sw", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-nanobind/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # This test does not support cross-compilation due to nanobind's usage of the # Python interpreter to figure out Python module suffix. if(VCPKG_CROSSCOMPILING) message(WARNING "Skipping vcpkg-ci-nanobind because it is not expected to work when cross-compiling") return() endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO wjakob/nanobind_example REF 4b5c9bd484dec77e085a188dcefc536aed69aae9 SHA512 ec7eeb25b5c5ee2e8bbcc48e78719dc6e5211cf54794dd3c370ad3e8d685fbc8b79435890da3b9481656169efaa87b77e3ea55ce864efd670dd9ea0600dee77d HEAD_REF master ) vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-nanobind/vcpkg.json ================================================ { "name": "vcpkg-ci-nanobind", "version-date": "2025-04-03", "description": "A nanobind example project", "homepage": "https://nanobind.readthedocs.io/en/latest/", "license": "BSD-3-Clause", "dependencies": [ "nanobind", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-netgen/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-netgen/vcpkg.json ================================================ { "name": "vcpkg-ci-netgen", "version-string": "ci", "description": "Force non-default features of netgen within vcpkg CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ { "name": "netgen", "features": [ "cgns", "jpeg", "mpeg", "occ" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-nss/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-nss/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(nss-test C) find_package(PkgConfig REQUIRED) pkg_check_modules(nss_pc nss REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::nss_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-nss/project/main.c ================================================ #include int main() { const char* configdir = "./DONOTUSE"; SECStatus rv = NSS_Initialize(configdir, "", "", SECMOD_DB, NSS_INIT_NOROOTINIT | NSS_INIT_OPTIMIZESPACE); NSS_Shutdown(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-nss/vcpkg.json ================================================ { "name": "vcpkg-ci-nss", "version-string": "ci", "description": "Port to validate nss in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "nss", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-octave/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-octave/vcpkg.json ================================================ { "name": "vcpkg-ci-octave", "version": "0.0.0", "description": "Test the octave feature", "dependencies": [ { "name": "octave", "features": [ "amd", "arpack", "bz2", "camd", "ccolamd", "cholmod", "colamd", "curl", "cxsparse", "fltk", "fontconfig", "freetype", "graphicsmagick", "gui", "hdf5", "klu", "portaudio", "qhull", "spqr", "umfpack" ] } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-openblas/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-openblas/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(vcpkg-ci-openblas C) find_package(OpenBLAS CONFIG REQUIRED) add_executable(fortran-interface main.c) target_link_libraries(fortran-interface PRIVATE OpenBLAS::OpenBLAS) ================================================ FILE: scripts/test_ports/vcpkg-ci-openblas/project/main.c ================================================ #include <../openblas/cblas.h> /* check for header. */ extern void dgemm_(char*, char*, int*, int*,int*, double*, double*, int*, double*, int*, double*, double*, int*); int main() { char ta = 'N'; char tb = 'N'; int m = 2; int n = 2; int k = 1; double alpha = 0.5; double A[2] = {1.0, 2.0}; // m x k double B[2] = {3.0, 4.0}; // k x n double beta = 0.05; double C[4] = {100.0, 200.0, 300.0, 400.0}; // 2 x 2 dgemm_(&ta, &tb, &m, &n, &k, &alpha, A, &m, B, &k, &beta, C, &m); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-openblas/vcpkg.json ================================================ { "name": "vcpkg-ci-openblas", "version-string": "ci", "description": "Test openblas", "license": null, "dependencies": [ "openblas", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test (mostly) everything", "dependencies": [ { "name": "openblas", "features": [ "dynamic-arch" ], "platform": "linux" }, { "name": "openblas", "features": [ "threads" ], "platform": "!windows" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-opencv/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-opencv/vcpkg.json ================================================ { "name": "vcpkg-ci-opencv", "version-string": "ci", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "dependencies": [ { "name": "opencv", "default-features": false, "features": [ "ade", "calib3d", "contrib", "eigen", "ffmpeg", "fs", "highgui", "intrinsics", "jpeg", "nonfree", "openjpeg", "png", "quirc", "thread", "tiff" ] }, { "name": "opencv", "default-features": false, "features": [ "openmp" ], "platform": "!osx" }, { "name": "opencv", "default-features": false, "features": [ "freetype", "gdcm", "hdf", "openexr", "qt", "sfm", "text" ], "platform": "!uwp" }, { "name": "opencv", "default-features": false, "features": [ "dnn", "webp" ], "platform": "!android" }, { "name": "opencv", "default-features": false, "features": [ "directml", "dshow", "msmf", "win32ui" ], "platform": "windows & !uwp" }, { "name": "opencv", "default-features": false, "features": [ "jpegxl" ], "platform": "!(android & arm32)" }, { "name": "opencv", "default-features": false, "features": [ "opencl" ], "platform": "!osx & !uwp" }, { "name": "opencv", "default-features": false, "features": [ "tbb" ], "platform": "!uwp & !static" }, { "name": "opencv", "default-features": false, "features": [ "aravis", "vtk", "vulkan" ], "platform": "!android & !uwp" }, { "name": "opencv", "default-features": false, "features": [ "ipp" ], "platform": "(x86 | x64) & (linux | windows)" }, { "name": "opencv", "default-features": false, "features": [ "gapi", "gstreamer", "ovis" ], "platform": "!android & !uwp & !(windows & static)" }, { "name": "opencv", "default-features": false, "features": [ "python" ], "platform": "!android & !linux & !uwp & !(windows & static)" }, { "name": "opencv", "default-features": false, "features": [ "cuda", "cudnn", "dnn-cuda" ], "platform": "(windows & x64 & !uwp) | (linux & x64) | (linux & arm64)" }, { "name": "opencv2", "default-features": false, "features": [ "eigen", "jasper", "jpeg", "opengl", "png", "qt", "tiff" ], "platform": "!android & !uwp & !(windows & arm)" }, { "name": "opencv3", "default-features": false, "features": [ "eigen", "jpeg", "nonfree", "png", "quirc", "tiff" ] }, { "name": "opencv3", "default-features": false, "features": [ "openmp" ], "platform": "!osx" }, { "name": "opencv3", "default-features": false, "features": [ "dnn", "webp" ], "platform": "!android" }, { "name": "opencv3", "default-features": false, "features": [ "msmf", "ovis", "tbb" ], "platform": "windows & x64 & !static & !uwp" }, { "name": "opencv3", "default-features": false, "features": [ "gstreamer" ], "platform": "!android & !uwp & !(windows & static)" }, { "name": "opencv3", "default-features": false, "features": [ "contrib", "freetype", "gdcm", "ipp", "jasper", "opengl", "qt", "sfm", "vtk" ], "platform": "!android & !osx & !uwp & !(windows & arm)" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-openimageio/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-openimageio/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(vcpkg-ci-openimageio C CXX) # C is transitive requirement for MPI via vtk add_executable(main main.cpp) find_package(OpenImageIO CONFIG REQUIRED) target_link_libraries(main PRIVATE OpenImageIO::OpenImageIO) ================================================ FILE: scripts/test_ports/vcpkg-ci-openimageio/project/main.cpp ================================================ #include int main(int, char**) { auto inp = OIIO::ImageInput::open("none"); return inp ? 0 : 1; } ================================================ FILE: scripts/test_ports/vcpkg-ci-openimageio/vcpkg.json ================================================ { "name": "vcpkg-ci-openimageio", "version-string": "ci", "port-version": 1, "description": "OpenImageIO testing within CI.", "license": "MIT", "dependencies": [ { "name": "openimageio", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "openimageio-features" ], "features": { "openimageio-features": { "description": "Enable OpenImageIO features", "dependencies": [ { "name": "openimageio", "default-features": false, "features": [ "ffmpeg", "freetype", "gif", "libheif", "libraw", "opencolorio", "opencv", "openjpeg", { "name": "pybind11", "platform": "!(windows & static) & !uwp & !mingw" }, "tools", "viewer", "webp" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-openmvs/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO cdcseacave/openMVS REF "v2.3.0" SHA512 c8af808393836d0ac508cf4f1d123cf297b451927fe4ad95dd27e041099818cd6d077f95b03e34cd9fe92bf0277cce8e9386311531093d6469b8e07f08b15aba HEAD_REF master PATCHES standalone.diff ) file(REMOVE_RECURSE "${SOURCE_PATH}/libs") vcpkg_cmake_configure( SOURCE_PATH "${SOURCE_PATH}/apps/Tests" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-openmvs/standalone.diff ================================================ diff --git a/apps/Tests/CMakeLists.txt b/apps/Tests/CMakeLists.txt index 192178b..d8356be 100644 --- a/apps/Tests/CMakeLists.txt +++ b/apps/Tests/CMakeLists.txt @@ -1,3 +1,5 @@ +cmake_minimum_required(VERSION 3.30) +project(OpenMVS-Test) if(MSVC) FILE(GLOB LIBRARY_FILES_C "*.cpp" "*.rc") else() @@ -7,6 +9,18 @@ FILE(GLOB LIBRARY_FILES_H "*.h" "*.inl") ADD_DEFINITIONS(-D_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}/data/") +find_package(OpenMVS CONFIG REQUIRED) + +add_executable(OpenMVS-Test-Target ${LIBRARY_FILES_C}) +target_link_libraries(OpenMVS-Test-Target PRIVATE OpenMVS::MVS) + +add_executable(OpenMVS-Test-Vars ${LIBRARY_FILES_C}) +target_compile_definitions(OpenMVS-Test-Vars PRIVATE ${OpenMVS_DEFINITIONS}) +target_include_directories(OpenMVS-Test-Vars PRIVATE ${OpenMVS_INCLUDE_DIRS}) +target_link_libraries(OpenMVS-Test-Vars PRIVATE ${OpenMVS_LIBRARIES}) + +return() + cxx_executable_with_flags(Tests "Apps" "${cxx_default}" "MVS;${OpenMVS_EXTRA_LIBS}" ${LIBRARY_FILES_C} ${LIBRARY_FILES_H}) # Install diff --git a/apps/Tests/Tests.cpp b/apps/Tests/Tests.cpp index f0f8365..97255ab 100644 --- a/apps/Tests/Tests.cpp +++ b/apps/Tests/Tests.cpp @@ -29,8 +29,8 @@ * containing it. */ -#include "../../libs/MVS/Common.h" -#include "../../libs/MVS/Scene.h" +#include +#include using namespace MVS; ================================================ FILE: scripts/test_ports/vcpkg-ci-openmvs/vcpkg.json ================================================ { "name": "vcpkg-ci-openmvs", "version-string": "ci", "description": "Port to validate openmvs", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "openmvs", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "ceres", "platform": "osx" }, { "name": "cuda", "platform": "x64 & windows & !staticcrt" }, { "name": "opengl", "platform": "x64 & !android" }, { "name": "openmp", "platform": "linux" } ], "features": { "ceres": { "description": "CERES support for openmvs", "dependencies": [ { "name": "openmvs", "features": [ "ceres" ] } ] }, "cuda": { "description": "CUDA support for openmvs", "dependencies": [ { "name": "openmvs", "features": [ "cuda" ] } ] }, "opengl": { "description": "OpenGL support for openmvs", "dependencies": [ { "name": "openmvs", "features": [ "opengl" ] } ] }, "openmp": { "description": "OpenMP support for openmvs", "dependencies": [ { "name": "openmvs", "features": [ "openmp" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-openvpn3/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-openvpn3/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(openvpn3-test CXX) add_executable(main main.cpp) find_package(unofficial-openvpn3 CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::openvpn3::ovpncli) ================================================ FILE: scripts/test_ports/vcpkg-ci-openvpn3/project/main.cpp ================================================ #include using namespace openvpn::ClientAPI; // Cf. https://github.com/OpenVPN/openvpn3/blob/master/README.rst#openvpn-3-client-core class Client : public OpenVPNClient { public: void acc_event(const AppCustomControlMessageEvent &) override {} void event(const Event&) override {} void external_pki_cert_request(ExternalPKICertRequest &) override {} void external_pki_sign_request(ExternalPKISignRequest &) override {} void log(const LogInfo&) override {} bool pause_on_connection_timeout() override { return false; } }; int main() { Client c; return OpenVPNClient::stats_n(); } ================================================ FILE: scripts/test_ports/vcpkg-ci-openvpn3/vcpkg.json ================================================ { "name": "vcpkg-ci-openvpn3", "version-string": "ci", "description": "Validates openvpn3", "dependencies": [ "openvpn3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-math/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-math/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.26) project(vcpkg-ci-orange-math LANGUAGES CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(main main.cpp) find_package(omath CONFIG REQUIRED) target_link_libraries(main PRIVATE omath::omath) ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-math/project/main.cpp ================================================ #include int main() { omath::Vector2 w = omath::Vector2(20.0, 30.0); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-math/vcpkg.json ================================================ { "name": "vcpkg-ci-orange-math", "version-string": "ci", "description": "Testing packages which provide orange-math", "license": null, "dependencies": [ "orange-math", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-vmprotect-sdk/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-vmprotect-sdk/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.26) project(vcpkg-ci-vmprotect-sdk) set(CMAKE_CXX_STANDARD 20) add_executable(main main.cpp) find_package(vmprotect_sdk CONFIG REQUIRED) target_link_libraries(main PRIVATE vmprotect_sdk::vmprotect_sdk) ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-vmprotect-sdk/project/main.cpp ================================================ #include #include int main() { VMProtectBeginVirtualization("main"); auto lang = "C++"; std::cout << "Hello and welcome to " << lang << "!\n"; for (int i = 1; i <= 5; i++) { std::cout << "i = " << i << std::endl; } VMProtectEnd(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-orange-vmprotect-sdk/vcpkg.json ================================================ { "name": "vcpkg-ci-orange-vmprotect-sdk", "version-string": "ci", "description": "Testing packages which provide orange-vvmprotect-sdk", "license": null, "dependencies": [ "orange-vmprotect-sdk", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-paraview/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-paraview/vcpkg.json ================================================ { "name": "vcpkg-ci-paraview", "version-date": "2022-12-01", "description": "Port to force features of certain ports within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "paraview", "default-features": false, "features": [ "tools" ] }, { "name": "paraview", "default-features": false, "features": [ "mpi", "python" ], "platform": "!(windows & static) & !x86" }, { "name": "vtk", "default-features": false, "features": [ "gdal", "utf8", "vtkm" ], "platform": "!x86" }, { "name": "vtk", "default-features": false, "features": [ "openvr" ], "platform": "!osx & !(windows & staticcrt)" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-pixman/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-pixman/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(pixman-test CXX) find_package(PkgConfig REQUIRED) pkg_search_module(pixman REQUIRED pixman-1 IMPORTED_TARGET) add_executable(main main.cpp) target_link_libraries(main PRIVATE PkgConfig::pixman) ================================================ FILE: scripts/test_ports/vcpkg-ci-pixman/project/main.cpp ================================================ #include #include int main() { const char* version = pixman_version_string(); std::cout << "Pixman version: " << version << "\n"; return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-pixman/vcpkg.json ================================================ { "name": "vcpkg-ci-pixman", "version-string": "ci", "description": "Validates pixman", "dependencies": [ "pixman", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-plplot/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS ${options} "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-plplot/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(plplot-test C CXX) find_package(plplot CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE PLPLOT::plplot ) target_compile_definitions(main PRIVATE USING_CMAKE) find_package(PkgConfig REQUIRED) pkg_check_modules(plplot_pc plplot REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::plplot_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-plplot/project/main.c ================================================ #ifdef USING_CMAKE #include #else #include #endif int main() { PLFLT x[5], y[5]; for (int i = 0; i < 5; i++) { x[i] = 0.25 * (PLFLT)(i); y[i] = 2.0 * x[i]; } plinit(); plenv(0.0, 1.0, 0.0, 2.0, 0, 0); pllab("x", "y", "2D line plot"); plline(5, x, y); plend(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-plplot/vcpkg.json ================================================ { "name": "vcpkg-ci-plplot", "version-string": "ci", "description": "Port to force features of plplot within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "plplot", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "plplot", "features": [ "wxwidgets" ], "platform": "!android" } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-podofo/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-podofo/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(podofo-test) set(CMAKE_CXX_STANDARD 17) find_package(podofo CONFIG REQUIRED) add_executable(main main.cxx) target_link_libraries(main PRIVATE podofo::podofo) find_package(PkgConfig REQUIRED) pkg_check_modules(podofo_pc libpodofo REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.cxx) target_link_libraries(main-pkconfig PRIVATE PkgConfig::podofo_pc) ================================================ FILE: scripts/test_ports/vcpkg-ci-podofo/project/main.cxx ================================================ #include #include int main() { PoDoFo::PdfMemDocument document; auto font = document.GetFonts().SearchFont("Arial"); if (document.GetPages().GetCount() > 0) { auto& page = document.GetPages().GetPageAt(0); auto& signature = page.CreateField("Signature2", PoDoFo::Rect()); char x509certbuffer[256], pkeybuffer[256]; PoDoFo::PdfSignerCms signer(x509certbuffer, pkeybuffer); } return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-podofo/vcpkg.json ================================================ { "name": "vcpkg-ci-podofo", "version-string": "ci", "description": "Port to fvalidate podofo CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "podofo", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-pybind11/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_get_vcpkg_installed_python(PYTHON3) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPython_EXECUTABLE=${PYTHON3}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-pybind11/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(pybind11-test CXX) set(PYBIND11_FINDPYTHON ON) find_package(pybind11 CONFIG REQUIRED) # Easy pybind11_add_module(test-pybind11 main.cpp) # Advanced Python_add_library(test-python main.cpp) target_link_libraries(test-python PRIVATE pybind11::headers) ================================================ FILE: scripts/test_ports/vcpkg-ci-pybind11/project/main.cpp ================================================ #include int mul(int i, int j) { return i * j; } PYBIND11_MODULE(example, m) { m.doc() = "vcpkg pybind11 test"; m.def("mul", &mul, "Multiplies two numbers"); } ================================================ FILE: scripts/test_ports/vcpkg-ci-pybind11/vcpkg.json ================================================ { "name": "vcpkg-ci-pybind11", "version-string": "ci", "description": "Port to test pybind11 in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "pybind11", "python3", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-python3/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(host_python "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python3${VCPKG_HOST_EXECUTABLE_SUFFIX}") if(VCPKG_HOST_IS_WINDOWS) set(host_python "${CURRENT_HOST_INSTALLED_DIR}/tools/python3/python.exe") endif() vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPython_EXECUTABLE=${host_python}" "-DPython3_EXECUTABLE=${host_python}" OPTIONS_DEBUG "-DEXPECTED_LIBRARY_KEYWORD=debug" "-DEXPECTED_LIBRARY_PREFIX=${CURRENT_INSTALLED_DIR}/debug/lib" OPTIONS_RELEASE "-DEXPECTED_LIBRARY_KEYWORD=optimized" "-DEXPECTED_LIBRARY_PREFIX=${CURRENT_INSTALLED_DIR}/lib" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-python3/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.12) # We need to opt-out of CMP0148 to be able to test the pre-CMake 3.12 Python # find modules. The old policy is deprecated, so, at some point, this aspect # of the test will have to go away. # This must appear before `project` to affect vcpkg.cmake's find_package macro. if(POLICY CMP0148) cmake_policy(SET CMP0148 OLD) endif() project(python3-test) # Options for matching library vs. build type set(EXPECTED_LIBRARY_KEYWORD "not set" CACHE STRING "debug or optimized") set(EXPECTED_LIBRARY_PREFIX "not set" CACHE STRING "link library dir for current build type") # A goal of this test project is to ensure that we get the expected values # from the modern find modules with regard to Python[3]_ARTIFACTS_PREFIX. set(Python_ARTIFACTS_PREFIX "_MEOW") set(Python3_ARTIFACTS_PREFIX "") if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.0 AND DEFINED Python_EXECUTABLE AND NOT DEFINED Python_MEOW_EXECUTABLE) set(Python_MEOW_EXECUTABLE "${Python_EXECUTABLE}") unset(Python_EXECUTABLE CACHE) endif() # Test helpers function(assert condition) string(CONFIGURE "@condition@" condition_quoted @ONLY ESCAPE_QUOTES) cmake_language(EVAL CODE " if(${condition_quoted}) # good else() message(SEND_ERROR \"Assertion failed: ${condition_quoted}\") endif() ") endfunction() function(check_find_python_results) cmake_parse_arguments(PARSE_ARGV 0 arg "" "EXPECTED;UNEXPECTED" "") assert("TARGET ${arg_EXPECTED}::Python") assert("NOT TARGET ${arg_UNEXPECTED}::Python") assert("${arg_EXPECTED}_LIBRARIES") assert("NOT ${arg_UNEXPECTED}_LIBRARIES") string(FIND "${EXPECTED_LIBRARY_KEYWORD};${${arg_EXPECTED}_LIBRARIES}" "${EXPECTED_LIBRARY_KEYWORD};${EXPECTED_LIBRARY_PREFIX}" prefix_index) if("${prefix_index}" EQUAL "-1") message(SEND_ERROR "Actual ${arg_EXPECTED} libraries: ${${arg_EXPECTED}_LIBRARIES}\n" "Expected ${CMAKE_BUILD_TYPE} location: ${EXPECTED_LIBRARY_PREFIX}" ) endif() assert("${arg_EXPECTED}_EXECUTABLE") assert("NOT ${arg_UNEXPECTED}_EXECUTABLE") assert("${arg_EXPECTED}_STDLIB") assert("NOT ${arg_UNEXPECTED}_STDLIB") assert("TARGET ${arg_EXPECTED}::Interpreter") assert("NOT TARGET ${arg_UNEXPECTED}::Interpreter") endfunction() ### Testing the deprecated FindPythonLibs and FindPythonInterpreter modules # Intentionally not testing success or the *expected* result: # The python3 port never added a vcpkg-cmake-wrapper for FindPythonLibs, # and these find modules are deprecated now. find_package(PythonLibs) if(DEFINED PythonLibs_MEOW_FOUND OR DEFINED PYTHON_MEOW_LIBRARIES) message(FATAL_ERROR "FindPythonLibs unexpectedly prefixed the result variables") endif() if(NOT CMAKE_CROSSCOMPILING) find_package(PythonInterp) if(DEFINED PythonInterp_MEOW_FOUND OR DEFINED PYTHON_MEOW_EXECUTABLE) message(FATAL_ERROR "FindPythonInterp unexpectedly prefixed the result variables") endif() endif() ### Testing the FindPython module (artifact prefix: _MEOW) add_executable(main-python-target main.c) find_package(Python REQUIRED COMPONENTS Interpreter Development) if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.0) # With CMake is 4.0+, the find module outputs should use the prefix. check_find_python_results(EXPECTED Python_MEOW UNEXPECTED Python) target_link_libraries(main-python-target PRIVATE Python_MEOW::Python) set(libraries_to_check "${Python_MEOW_LIBRARIES}") else() check_find_python_results(EXPECTED Python UNEXPECTED Python_MEOW) target_link_libraries(main-python-target PRIVATE Python::Python) set(libraries_to_check "${Python_LIBRARIES}") endif() ### Testing the FindPython3 module (artifact prefix: empty) add_executable(main-python3-libraries main.c) find_package(Python3 REQUIRED COMPONENTS Interpreter Development) check_find_python_results(EXPECTED Python3 UNEXPECTED Python3_MEOW) target_include_directories(main-python3-libraries PRIVATE ${Python3_INCLUDE_DIRS}) target_link_libraries(main-python3-libraries PRIVATE ${Python3_LIBRARIES}) ================================================ FILE: scripts/test_ports/vcpkg-ci-python3/project/main.c ================================================ #include int main() { PyConfig config; PyConfig_InitPythonConfig(&config); config.write_bytecode = 0; PyConfig_SetString(&config, &config.program_name, L"test"); PyStatus status = Py_InitializeFromConfig(&config); if (PyStatus_Exception(status)) { PyConfig_Clear(&config); Py_ExitStatusException(status); } Py_FinalizeEx(); PyConfig_Clear(&config); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-python3/vcpkg.json ================================================ { "name": "vcpkg-ci-python3", "version-string": "ci", "description": "Port to test python3 in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "python3", "default-features": false }, { "name": "python3", "host": true, "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "ci" ], "features": { "ci": { "description": "Test features in CI", "dependencies": [ { "name": "python3", "features": [ { "name": "extensions", "platform": "!(windows & staticcrt)" }, { "name": "readline", "platform": "!windows" } ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-qtwebengine/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(EXISTS "${CURRENT_INSTALLED_DIR}/share/Qt6Pdf/Qt6PdfTargets.cmake") file(COPY_FILE "${CURRENT_INSTALLED_DIR}/share/Qt6Pdf/Qt6PdfTargets.cmake" "${CURRENT_BUILDTREES_DIR}/Qt6PdfTargets.cmake-${TARGET_TRIPLET}.log") endif() vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DFEATURES=${FEATURES}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-qtwebengine/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.24) project(vcpkg-ci-qtwebengine LANGUAGES C CXX) add_executable(main main.cpp) if("pdf" IN_LIST FEATURES) find_package(Qt6 REQUIRED COMPONENTS Pdf) target_link_libraries(main PRIVATE Qt6::Pdf) target_compile_definitions(main PRIVATE REQUIRE_PDF) endif() if("webengine" IN_LIST FEATURES) find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(main PRIVATE Qt6::WebEngineCore) target_compile_definitions(main PRIVATE REQUIRE_WEBENGINE) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-qtwebengine/project/main.cpp ================================================ #ifdef REQUIRE_PDF #include #endif #ifdef REQUIRE_WEBENGINE #include #endif int main() { #ifdef REQUIRE_PDF QPdfDocument doc(nullptr); #endif #ifdef REQUIRE_WEBENGINE QObject* parent = nullptr; QWebEnginePage page(parent); #endif return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-qtwebengine/vcpkg.json ================================================ { "name": "vcpkg-ci-qtwebengine", "version-string": "ci", "description": "Testing qtwebengine", "license": null, "dependencies": [ "qtwebengine", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "ci" ], "features": { "ci": { "description": "Default CI configuration", "dependencies": [ { "name": "vcpkg-ci-qtwebengine", "default-features": false, "features": [ "pdf" ], "platform": "android | ios | (linux & !x86) | osx | (windows & x64 & !static)" }, { "name": "vcpkg-ci-qtwebengine", "default-features": false, "features": [ "webengine" ], "platform": "!static & ((linux & !x86) | osx | (windows & x64 & !static))" } ] }, "pdf": { "description": "Test PDF module" }, "webengine": { "description": "Test WebEngine module" } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-rest-rpc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-rest-rpc/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(soci-test CXX) if(APPLE) set(CMAKE_CXX_STANDARD 11) endif() add_executable(main main.cpp) find_package(unofficial-rest-rpc CONFIG REQUIRED) target_link_libraries(main unofficial::rest-rpc::rest-rpc) ================================================ FILE: scripts/test_ports/vcpkg-ci-rest-rpc/project/main.cpp ================================================ #include int main() { rest_rpc::rpc_client client("127.0.0.1", 8080); client.connect(); client.run(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-rest-rpc/vcpkg.json ================================================ { "name": "vcpkg-ci-rest-rpc", "version-string": "ci", "description": "Validates rest-rpc", "dependencies": [ "rest-rpc", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-rewolf-wow64ext/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(rewolf-wow64ext-test LANGUAGES CXX) find_package(wow64ext CONFIG REQUIRED) add_executable(main main.cpp) target_compile_features(main PRIVATE cxx_std_11) target_link_libraries(main PRIVATE unofficial::wow64ext::wow64ext) ================================================ FILE: scripts/test_ports/vcpkg-ci-rewolf-wow64ext/project/main.cpp ================================================ #include int main() { auto handle = GetModuleHandle64(L"user32.dll"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-rewolf-wow64ext/vcpkg.json ================================================ { "name": "vcpkg-ci-rewolf-wow64ext", "version-string": "ci", "description": "Validates rewolf-wow64ext", "dependencies": [ "rewolf-wow64ext", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-rtlsdr/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-rtlsdr/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.10) project(rtlsdr-test C) find_package(PkgConfig REQUIRED) block() find_package(rtlsdr CONFIG REQUIRED) add_executable(rtlsdr_cmake main.c) target_link_libraries(rtlsdr_cmake $,rtlsdr::rtlsdr,rtlsdr::rtlsdr_static>) endblock() block() pkg_check_modules(librtlsdr IMPORTED_TARGET REQUIRED librtlsdr) add_executable(rtlsdr_pkgconfig main.c) target_link_libraries(rtlsdr_pkgconfig PkgConfig::librtlsdr) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-rtlsdr/project/main.c ================================================ #include int main() { return (int)rtlsdr_get_device_count(); } ================================================ FILE: scripts/test_ports/vcpkg-ci-rtlsdr/vcpkg.json ================================================ { "name": "vcpkg-ci-rtlsdr", "version-string": "ci", "description": "Validates rtlsdr", "dependencies": [ "rtlsdr", { "name": "vcpkg-cmake", "host": true } ], "default-features": [ { "name": "tools", "platform": "!android" } ], "features": { "tools": { "description": "Install rtlsdr tools", "dependencies": [ { "name": "rtlsdr", "features": [ "tools" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-ryu/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(vcpkg-ci-ryu LANGUAGES C) find_package(ryu CONFIG REQUIRED) add_executable(test test.c) target_link_libraries(test PUBLIC RYU::ryu RYU::ryu_printf) install(TARGETS test RUNTIME DESTINATION bin/vcpkg-ci-ryu) ================================================ FILE: scripts/test_ports/vcpkg-ci-ryu/portfile.cmake ================================================ set(VCPKG_POLICY_SKIP_ALL_POST_BUILD_CHECKS enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}") vcpkg_cmake_install() if(NOT VCPKG_CROSSCOMPILING) vcpkg_execute_required_process(COMMAND "${CURRENT_PACKAGES_DIR}/bin/vcpkg-ci-ryu/test" WORKING_DIRECTORY "." LOGNAME release-test) if(NOT VCPKG_BUILD_TYPE) vcpkg_execute_required_process(COMMAND "${CURRENT_PACKAGES_DIR}/debug/bin/vcpkg-ci-ryu/test" WORKING_DIRECTORY "." LOGNAME debug-test) endif() endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-ryu/test.c ================================================ #include #include #include #include int main() { char* result = d2s(3.14); if (strcmp(result, "3.14E0") != 0) { printf("Unexpected ryu: %s\n", result); return 1; } result = d2fixed(3.14159, 1); if (strcmp(result, "3.1") != 0) { printf("Unexpected ryu_printf: %s\n", result); return 2; } return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-ryu/vcpkg.json ================================================ { "name": "vcpkg-ci-ryu", "version-date": "2024-12-17", "dependencies": [ "ryu", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-image/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-image/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(sdl3-image-test C CXX) # C++ for tiff[lerc] block(SCOPE_FOR VARIABLES) find_package(SDL3_image CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE $,SDL3_image::SDL3_image-shared,SDL3_image::SDL3_image-static> ) endblock() block(SCOPE_FOR VARIABLES) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_SDL3_IMAGE sdl3-image REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) if(WIN32 AND NOT MINGW) target_link_libraries(main-pkconfig PRIVATE PkgConfig::PC_SDL3_IMAGE) else() # Use raw flags, avoid find_library target_compile_options(main-pkconfig PRIVATE ${PC_SDL3_IMAGE_CFLAGS}) target_link_libraries(main-pkconfig PRIVATE ${PC_SDL3_IMAGE_LDFLAGS}) endif() endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-image/project/main.c ================================================ #include int main() { IMG_Version(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-image/vcpkg.json ================================================ { "name": "vcpkg-ci-sdl3-image", "version-string": "ci", "description": "Port to force features of sdl3-image within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "sdl3-image", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "sdl3-image", "features": [ "jpeg", "png", "tiff", "webp" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-ttf/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-ttf/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(sdl3-ttf-test C) find_package(SDL3_ttf CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE SDL3_ttf::SDL3_ttf) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_SDL3_TTF sdl3-ttf REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::PC_SDL3_TTF) ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-ttf/project/main.c ================================================ #include int main() { TTF_Init(); TTF_Version(); TTF_Quit(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-sdl3-ttf/vcpkg.json ================================================ { "name": "vcpkg-ci-sdl3-ttf", "version-string": "ci", "description": "Port to validate sdl3-ttf in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "sdl3-ttf", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "vcpkg-ci-sdl3-ttf", "features": [ "harfbuzz", "plutosvg-freetype", "svg" ] } ] }, "harfbuzz": { "description": "Use sdl3-ttf[harfbuzz]", "dependencies": [ { "name": "sdl3-ttf", "features": [ "harfbuzz" ] } ] }, "plutosvg-freetype": { "description": "Use plutosvg[freetype]", "dependencies": [ { "name": "plutosvg", "features": [ "freetype" ] } ] }, "svg": { "description": "Use sdl3-ttf[svg]", "dependencies": [ { "name": "sdl3-ttf", "features": [ "svg" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-shader-slang/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-Dslang_DIR=${CURRENT_HOST_INSTALLED_DIR}/share/slang" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-shader-slang/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(shader-slang-test) find_package(slang CONFIG REQUIRED) set(CMAKE_EXECUTE_PROCESS_COMMAND_ECHO STDOUT) execute_process( COMMAND "${SLANGC_EXECUTABLE}" -v COMMAND_ERROR_IS_FATAL ANY ) add_custom_target(run-slang ALL COMMAND slang::slangc -v ) ================================================ FILE: scripts/test_ports/vcpkg-ci-shader-slang/vcpkg.json ================================================ { "name": "vcpkg-ci-shader-slang", "version-string": "ci", "description": "Test port to validate shader-slang", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "shader-slang", "host": true }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-skia/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_INSTALLED_DIR}/share/skia/example" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-skia/vcpkg.json ================================================ { "name": "vcpkg-ci-skia", "version-date": "2023-04-03", "description": "Builds an app in order to validate the skia port.", "license": "BSD-3-Clause", "dependencies": [ { "name": "skia", "default-features": false }, { "name": "skia", "default-features": false, "features": [ "metal" ], "platform": "osx" }, { "name": "skia", "default-features": false, "features": [ "graphite" ], "platform": "windows & !uwp" }, { "name": "skia", "default-features": false, "features": [ "dawn" ], "platform": "!android & !uwp" }, { "name": "skia", "default-features": false, "features": [ "vulkan" ], "platform": "linux | osx | (windows & !uwp)" }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-soci/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-soci/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(soci-test CXX) if(APPLE) set(CMAKE_CXX_STANDARD 11) endif() add_executable(main main.cpp) find_package(SOCI CONFIG REQUIRED) target_link_libraries(main PRIVATE $,SOCI::soci_mysql,SOCI::soci_mysql_static>) target_link_libraries(main PRIVATE $,SOCI::soci_postgresql,SOCI::soci_postgresql_static>) target_link_libraries(main PRIVATE $,SOCI::soci_sqlite3,SOCI::soci_sqlite3_static>) ================================================ FILE: scripts/test_ports/vcpkg-ci-soci/project/main.cpp ================================================ #include #include #include #include int main() { soci::session mysql_db(soci::mysql, "test:mysql"); soci::session pgsql_db(soci::postgresql, "test:postgresql"); soci::session sqlite3_db(soci::sqlite3, "test.db"); } ================================================ FILE: scripts/test_ports/vcpkg-ci-soci/vcpkg.json ================================================ { "name": "vcpkg-ci-soci", "version-string": "ci", "description": "Validates soci", "supports": "x64 & (linux | osx | windows) & !uwp", "dependencies": [ { "name": "soci", "features": [ "mysql", "postgresql", "sqlite3" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-sol2/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-sol2/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(sol2-test C CXX) set(CMAKE_CXX_STANDARD 17) # Select a Lua implementation find_package(Lua REQUIRED) find_package(sol2 CONFIG REQUIRED) add_executable(main-cmake main.cpp) target_link_libraries(main-cmake PRIVATE sol2::sol2) target_link_libraries(sol2::sol2 INTERFACE ${LUA_LIBRARIES}) find_package(PkgConfig REQUIRED) pkg_check_modules(PC_SOL2 sol2 REQUIRED) add_executable(main-pkgconfig main.cpp) target_include_directories(main-pkgconfig PRIVATE ${PC_SOL2_INCLUDE_DIRS}) target_link_libraries(main-pkgconfig PRIVATE ${PC_SOL2_LUA_LIBRARIES}) target_link_libraries(main-pkgconfig PRIVATE ${LUA_LIBRARIES}) ================================================ FILE: scripts/test_ports/vcpkg-ci-sol2/project/main.cpp ================================================ // From README #include #include int main() { sol::state lua; int x = 0; lua.set_function("beep", [&x]{ ++x; }); lua.script("beep()"); assert(x == 1); } ================================================ FILE: scripts/test_ports/vcpkg-ci-sol2/vcpkg.json ================================================ { "name": "vcpkg-ci-sol2", "version-string": "ci", "description": "Validate port sol2", "dependencies": [ { "name": "lua", "default-features": false }, { "name": "sol2", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-sqlpp11/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) ================================================ FILE: scripts/test_ports/vcpkg-ci-sqlpp11/vcpkg.json ================================================ { "name": "vcpkg-ci-sqlpp11", "version-string": "ci", "description": "Port to force features of sqlpp11 within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "sqlpp11", "features": [ "sqlite3" ] }, { "name": "sqlpp11", "features": [ "postgresql" ], "platform": "!uwp" }, { "name": "sqlpp11", "features": [ "mariadb" ], "platform": "android | (x86 & windows)" }, { "name": "sqlpp11", "features": [ "mysql" ], "platform": "!android & !uwp & !(x86 & windows)" } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-subversion/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-subversion/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25) project(subversion-test CXX) block(SCOPE_FOR VARIABLES) add_executable(main main.cpp) find_package(unofficial-subversion CONFIG REQUIRED) target_link_libraries(main PRIVATE unofficial::subversion::svn_client unofficial::subversion::svn_delta unofficial::subversion::svn_diff unofficial::subversion::svn_fs unofficial::subversion::svn_fs_fs unofficial::subversion::svn_fs_util unofficial::subversion::svn_fs_x unofficial::subversion::svn_ra unofficial::subversion::svn_ra_local unofficial::subversion::svn_ra_serf unofficial::subversion::svn_ra_svn unofficial::subversion::svn_repos unofficial::subversion::svn_subr unofficial::subversion::svn_wc ) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-subversion/project/main.cpp ================================================ #include #include #include #include #include #include #include #include #include int main() { // Test svn_client library const svn_version_t *client_version = svn_client_version(); printf("svn_client version: %d.%d.%d\n", client_version->major, client_version->minor, client_version->patch); // Test svn_delta library const svn_version_t *delta_version = svn_delta_version(); printf("svn_delta version: %d.%d.%d\n", delta_version->major, delta_version->minor, delta_version->patch); // Test svn_diff library const svn_version_t *diff_version = svn_diff_version(); printf("svn_diff version: %d.%d.%d\n", diff_version->major, diff_version->minor, diff_version->patch); // Test svn_fs library const svn_version_t *fs_version = svn_fs_version(); printf("svn_fs version: %d.%d.%d\n", fs_version->major, fs_version->minor, fs_version->patch); // Test svn_ra library const svn_version_t *ra_version = svn_ra_version(); printf("svn_ra version: %d.%d.%d\n", ra_version->major, ra_version->minor, ra_version->patch); // Test svn_repos library const svn_version_t *repos_version = svn_repos_version(); printf("svn_repos version: %d.%d.%d\n", repos_version->major, repos_version->minor, repos_version->patch); // Test svn_subr library const svn_version_t *subr_version = svn_subr_version(); printf("svn_subr version: %d.%d.%d\n", subr_version->major, subr_version->minor, subr_version->patch); // Test svn_wc library const svn_version_t *wc_version = svn_wc_version(); printf("svn_wc version: %d.%d.%d\n", wc_version->major, wc_version->minor, wc_version->patch); // Note: svn_fs_fs, svn_fs_util, svn_fs_x, svn_ra_local, svn_ra_serf, and svn_ra_svn // are internal/plugin libraries that don't have version functions. // They are loaded and linked, which validates their presence. printf("\nAll 14 subversion libraries loaded and tested successfully!\n"); printf("Tested: svn_client, svn_delta, svn_diff, svn_fs, svn_ra, svn_repos, svn_subr, svn_wc\n"); printf("Linked: svn_fs_fs, svn_fs_util, svn_fs_x, svn_ra_local, svn_ra_serf, svn_ra_svn\n"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-subversion/vcpkg.json ================================================ { "name": "vcpkg-ci-subversion", "version-string": "ci", "description": "Validates subversion", "dependencies": [ "subversion", { "name": "vcpkg-cmake", "host": true }, { "name": "vcpkg-cmake-config", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-tdlib/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-tdlib/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(tdlib-test CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(Td CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE Td::TdStatic) find_package(PkgConfig REQUIRED) pkg_check_modules(tdclient REQUIRED IMPORTED_TARGET tdclient) add_executable(main2 main.cpp) target_link_libraries(main2 PRIVATE PkgConfig::tdclient) ================================================ FILE: scripts/test_ports/vcpkg-ci-tdlib/project/main.cpp ================================================ #include #include int main() { std::unique_ptr client_manager_; auto response = client_manager_->receive(10); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-tdlib/vcpkg.json ================================================ { "name": "vcpkg-ci-tdlib", "version-string": "ci", "description": "Validates tdlib", "dependencies": [ "tdlib", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-tgbot-cpp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-tgbot-cpp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(tgbot-cpp-test CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(TgBot CONFIG REQUIRED) add_executable(main main.cpp) target_compile_definitions(main PRIVATE HAVE_CURL) target_link_libraries(main PRIVATE TgBot::TgBot) ================================================ FILE: scripts/test_ports/vcpkg-ci-tgbot-cpp/project/main.cpp ================================================ #include using namespace TgBot; int main() { CurlHttpClient curlHttpClient; Bot bot("TOKEN", curlHttpClient); bot.getApi().deleteWebhook(); auto fileContent = FileTools::read("file.txt"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-tgbot-cpp/vcpkg.json ================================================ { "name": "vcpkg-ci-tgbot-cpp", "version-string": "ci", "description": "Validates tgbot-cpp", "dependencies": [ "tgbot-cpp", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-tomlplusplus/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-tomlplusplus/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(tomlplusplus-test CXX) find_package(tomlplusplus CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE tomlplusplus::tomlplusplus) find_package(PkgConfig REQUIRED) pkg_check_modules(tomlplusplus_pc tomlplusplus REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.cpp) target_compile_features(main-pkconfig PRIVATE cxx_std_17) target_link_libraries(main-pkconfig PRIVATE PkgConfig::tomlplusplus_pc) ================================================ FILE: scripts/test_ports/vcpkg-ci-tomlplusplus/project/main.cpp ================================================ #include #include int main(int argc, char** argv) { if (argc < 2) return 1; try { toml::table tbl; tbl = toml::parse_file(argv[1]); std::cout << tbl << "\n"; } catch (const toml::parse_error& err) { std::cerr << "Parsing failed: " << err << "\n"; return 2; } return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-tomlplusplus/vcpkg.json ================================================ { "name": "vcpkg-ci-tomlplusplus", "version-string": "ci", "description": "Port to force features of tomlplusplus within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "tomlplusplus", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-tree-sitter/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-tree-sitter/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(tree-sitter-test C) find_package(PkgConfig REQUIRED) pkg_check_modules(tree-sitter_pc tree-sitter REQUIRED IMPORTED_TARGET) pkg_check_modules(tree-sitter-c_pc tree-sitter-c REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::tree-sitter_pc PkgConfig::tree-sitter-c_pc ) ================================================ FILE: scripts/test_ports/vcpkg-ci-tree-sitter/project/main.c ================================================ #include #include #include #include int main() { TSParser *parser = ts_parser_new(); ts_parser_set_language(parser, tree_sitter_c()); const char *source_code = "int main() { return -1; }\n"; TSTree *tree = ts_parser_parse_string(parser, NULL, source_code, strlen(source_code)); TSNode root_node = ts_tree_root_node(tree); char *string = ts_node_string(root_node); printf("Syntax tree: %s\n", string); free(string); ts_tree_delete(tree); ts_parser_delete(parser); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-tree-sitter/vcpkg.json ================================================ { "name": "vcpkg-ci-tree-sitter", "version-string": "ci", "description": "Port to test the tree-sitter group of port in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ "tree-sitter", "tree-sitter-c", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-unarr/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-unarr/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.25.1) project(unarr-test LANGUAGES C) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) find_package(unarr CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE unarr::unarr) find_package(PkgConfig REQUIRED) pkg_check_modules(libunarr REQUIRED IMPORTED_TARGET libunarr) add_executable(main2 main.c) target_link_libraries(main2 PRIVATE PkgConfig::libunarr) ================================================ FILE: scripts/test_ports/vcpkg-ci-unarr/project/main.c ================================================ #include int main() { ar_stream *stream; ar_archive *ar = ar_open_rar_archive(stream); ar_close_archive(ar); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-unarr/vcpkg.json ================================================ { "name": "vcpkg-ci-unarr", "version-string": "ci", "description": "Validates unarr", "dependencies": [ "unarr", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-unicorn/portfile.cmake ================================================ SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-unicorn/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.5) project(vcpkg-ci-unicorn C) set(CMAKE_C_STANDARD 11) find_package(PkgConfig REQUIRED) pkg_check_modules(unicorn REQUIRED IMPORTED_TARGET unicorn) add_executable(main main.c) target_link_libraries(main PRIVATE PkgConfig::unicorn) ================================================ FILE: scripts/test_ports/vcpkg-ci-unicorn/project/main.c ================================================ #include int main() { uc_engine* uc; uc_open(UC_ARCH_X86, UC_MODE_32, &uc); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-unicorn/vcpkg.json ================================================ { "name": "vcpkg-ci-unicorn", "version-string": "ci", "description": "Testing packages which provide unicorn", "license": null, "dependencies": [ "unicorn", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-unixodbc/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-unixodbc/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(unixodbc-test C) # legacy vcpkg-only name, now forwarding to "unofficial" names find_package(unixodbc CONFIG REQUIRED) add_executable(main main.c) target_link_libraries(main PRIVATE UNIX::odbc) find_package(PkgConfig REQUIRED) pkg_check_modules(unixodbc_pc odbc REQUIRED IMPORTED_TARGET) add_executable(main-pkconfig main.c) target_link_libraries(main-pkconfig PRIVATE PkgConfig::unixodbc_pc) ================================================ FILE: scripts/test_ports/vcpkg-ci-unixodbc/project/main.c ================================================ /* https://www.unixodbc.org/doc/ProgrammerManual/Tutorial/ has * #include * but actual pkgconfig files and MS ODBC documentation suggest * #include */ #include #include int main() { SQLHENV odbc_handle; long result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &odbc_handle); if ((result != SQL_SUCCESS) && (result != SQL_SUCCESS_WITH_INFO)) return 1; SQLCHAR l_dsn[100], l_desc[100]; SQLUSMALLINT l_len1, l_len2, l_next; for (short int l_next = SQL_FETCH_FIRST; SQLDataSources(odbc_handle, l_next, l_dsn, sizeof(l_dsn), &l_len1, l_desc, sizeof(l_desc), &l_len2) == SQL_SUCCESS; l_next = SQL_FETCH_NEXT) { printf("Server '%s' (%s)\n", l_dsn, l_desc); } SQLFreeHandle(SQL_HANDLE_ENV, odbc_handle); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-unixodbc/vcpkg.json ================================================ { "name": "vcpkg-ci-unixodbc", "version-string": "ci", "description": "Test port for unixodbc usage", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, "unixodbc" ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-uwebsockets/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_PORT_DIR}/project") vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-uwebsockets/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.30) project(uwebsockets-test CXX) find_package(unofficial-uwebsockets CONFIG REQUIRED) add_executable(main main.cxx) target_link_libraries(main PRIVATE $ ) ================================================ FILE: scripts/test_ports/vcpkg-ci-uwebsockets/project/main.cxx ================================================ #include #include int main() { uWS::App().get("/hello", [](auto *res, auto *req) { res->end("Hello World!"); }); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-uwebsockets/vcpkg.json ================================================ { "name": "vcpkg-ci-uwebsockets", "version-string": "ci", "description": "Port to test features of uwebsockets within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "uwebsockets", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ], "default-features": [ "all" ], "features": { "all": { "description": "Test all features", "dependencies": [ { "name": "uwebsockets", "features": [ "ssl", "zlib" ] } ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) include("${CURRENT_HOST_INSTALLED_DIR}/share/unit-test-cmake/test-macros.cmake") if("scripts-cl-cpp-wrapper" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-scripts-cl_cpp_wrapper.cmake") endif() if("vcpkg-make-cl-cpp-wrapper" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-vcpkg-make-cl_cpp_wrapper.cmake") endif() if("z-vcpkg-make-prepare-compile-flags" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_prepare_compile_flags.cmake") endif() if("z-vcpkg-make-normalize-arch" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_normalize_arch.cmake") endif() if("z-vcpkg-make-determine-host-arch" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_determine_host_arch.cmake") endif() if("z-vcpkg-make-determine-target-arch" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_determine_target_arch.cmake") endif() if("z-vcpkg-make-determine-target-triplet" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_determine_target_triplet.cmake") endif() if("z-vcpkg-make-z-adapt-lib-link-names" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_adapt_lib_link_names.cmake") endif() if("z-vcpkg-make-get-configure-triplets" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_get_configure_triplets.cmake") endif() if("z-vcpkg-make-get-crosscompiling" IN_LIST FEATURES) include("${CMAKE_CURRENT_LIST_DIR}/test-z_vcpkg_make_get_crosscompiling.cmake") endif() unit_test_report_result() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-cl_cpp_wrapper/configure ================================================ #!/bin/sh echo "${CPP:-cpp} ${CPPFLAGS} ${CFLAGS} ${TEST_FLAGS} > stdout.c < source.c" || exit 1 ${CPP:-cpp} ${CPPFLAGS} ${CFLAGS} ${TEST_FLAGS} > stdout.c < source.c || exit 2 grep OOPS_ECHOED_INVOCATION stdout.c && exit 3 exit 0 ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-cl_cpp_wrapper/source.c ================================================ #ifdef EXPECT_SUCCESS /* okay */ #else #error "Forced error" #endif ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-scripts-cl_cpp_wrapper.cmake ================================================ block() set(SOURCE_PATH "${CURRENT_PORT_DIR}/test-cl_cpp_wrapper") set(VCPKG_BUILD_TYPE release) vcpkg_backup_env_variables(VARS CPP TEST_FLAGS) # Test that that CPP processes stdin # vcpkg_configure_make picks scripts/buildsystems/make_wrapper/cl_cpp_wrapper if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{CPP} "cl_cpp_wrapper") endif() unit_test_ensure_fatal_error([[ set(ENV{TEST_FLAGS} -DEXPECT_FAILURE) vcpkg_configure_make(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE USE_WRAPPERS) ]]) unit_test_ensure_success([[ set(ENV{TEST_FLAGS} -DEXPECT_SUCCESS) vcpkg_configure_make(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE USE_WRAPPERS) ]]) vcpkg_restore_env_variables(VARS CPP TEST_FLAGS) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-vcpkg-make-cl_cpp_wrapper.cmake ================================================ block() set(SOURCE_PATH "${CURRENT_PORT_DIR}/test-cl_cpp_wrapper") set(VCPKG_BUILD_TYPE release) vcpkg_backup_env_variables(VARS CPP TEST_FLAGS) # Test that that CPP processes stdin # vcpkg_make_configure picks (installed) ports/vcpkg-make/wrappers/cl_cpp_wrapper if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) set(ENV{CPP} "cl_cpp_wrapper") endif() unit_test_ensure_fatal_error([[ set(ENV{TEST_FLAGS} -DEXPECT_FAILURE) vcpkg_make_configure(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE) ]]) unit_test_ensure_success([[ set(ENV{TEST_FLAGS} -DEXPECT_SUCCESS) vcpkg_make_configure(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE) ]]) # In verbose mode (V=1), the command line is echoed. # This is is diagnostic output and must not go to stdout. unit_test_ensure_success([[ set(ENV{TEST_FLAGS} "-DEXPECT_SUCCESS -DOOPS_ECHOED_INVOCATION") set(ENV{V} 1) vcpkg_make_configure(SOURCE_PATH "${SOURCE_PATH}" COPY_SOURCE) ]]) vcpkg_restore_env_variables(VARS CPP TEST_FLAGS) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_adapt_lib_link_names.cmake ================================================ block(SCOPE_FOR VARIABLES) # Test 1: Basic Transformation set(all_libs_list "libexample.dll;libutil.a;libutil2.lib;libutil3.so") set(expected "-llibexample.dll;-llibutil;-llibutil2;-llibutil3") set(VCPKG_TARGET_IS_WINDOWS FALSE) set(VCPKG_TARGET_IS_MINGW FALSE) set(VCPKG_LIBRARY_LINKAGE "static") unit_test_check_variable_equal( [[ z_vcpkg_make_prepare_link_flags(IN_OUT_VAR all_libs_list VCPKG_TRANSFORM_LIBS) ]] all_libs_list "${expected}" ) # Test 2: Remove uuid on Windows set(all_libs_list "libexample.dll;uuid.lib") set(expected "-llibexample.dll") set(VCPKG_TARGET_IS_WINDOWS TRUE) set(VCPKG_TARGET_IS_MINGW FALSE) set(VCPKG_LIBRARY_LINKAGE "static") unit_test_check_variable_equal( [[ z_vcpkg_make_prepare_link_flags(IN_OUT_VAR all_libs_list VCPKG_TRANSFORM_LIBS) ]] all_libs_list "${expected}" ) # Test 3: MinGW Dynamic Linkage Handling set(all_libs_list "libexample.so;uuid.a") set(expected "-llibexample;-Wl,-Bstatic,-luuid,-Bdynamic") set(VCPKG_TARGET_IS_WINDOWS FALSE) set(VCPKG_TARGET_IS_MINGW TRUE) set(VCPKG_LIBRARY_LINKAGE "dynamic") unit_test_check_variable_equal( [[ z_vcpkg_make_prepare_link_flags(IN_OUT_VAR all_libs_list VCPKG_TRANSFORM_LIBS) ]] all_libs_list "${expected}" ) # Test 4: No Transformation Flag set(all_libs_list "libexample.dll;uuid.lib") set(expected "libexample.dll;uuid.lib") set(VCPKG_TARGET_IS_WINDOWS FALSE) set(VCPKG_TARGET_IS_MINGW FALSE) set(VCPKG_LIBRARY_LINKAGE "static") unit_test_check_variable_equal( [[ z_vcpkg_make_prepare_link_flags(IN_OUT_VAR all_libs_list) ]] all_libs_list "${expected}" ) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_determine_host_arch.cmake ================================================ vcpkg_backup_env_variables(VARS PROCESSOR_ARCHITECTURE PROCESSOR_ARCHITEW6432) set(result_arch "NOTFOUND") # Test Case 1: x86_64 Architecture (Windows) set(ENV{PROCESSOR_ARCHITECTURE} "AMD64") unit_test_check_variable_equal( [[ z_vcpkg_make_determine_host_arch(result_arch) ]] result_arch "x86_64" ) # Test Case 2: i686 Architecture (Windows) set(ENV{PROCESSOR_ARCHITEW6432} "x86") unit_test_check_variable_equal( [[ z_vcpkg_make_determine_host_arch(result_arch) ]] result_arch "i686" ) vcpkg_restore_env_variables(VARS PROCESSOR_ARCHITECTURE PROCESSOR_ARCHITEW6432) ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_determine_target_arch.cmake ================================================ # Test Case 1: Single Target Architecture set(VCPKG_TARGET_ARCHITECTURE "x86_64") set(VCPKG_OSX_ARCHITECTURES "x86_64") # Empty for non-OSX set(result_arch) z_vcpkg_make_determine_target_arch(result_arch) unit_test_check_variable_equal([[]] result_arch "x86_64") # Test Case 2: Universal Architecture (OSX) if (VCPKG_HOST_IS_OSX) set(VCPKG_TARGET_ARCHITECTURE "x86_64") set(VCPKG_OSX_ARCHITECTURES "x86_64;arm64") set(result_arch) z_vcpkg_make_determine_target_arch(result_arch) unit_test_check_variable_equal([[]] result_arch "universal") endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_determine_target_triplet.cmake ================================================ if(VCPKG_TARGET_IS_ANDROID) # tbd elseif(VCPKG_TARGET_IS_LINUX) unit_test_check_variable_equal( [[ z_vcpkg_make_determine_target_triplet(triplet COMPILER_NAME "cc") ]] triplet "" ) unit_test_check_variable_equal( [[ z_vcpkg_make_determine_target_triplet(triplet COMPILER_NAME "aarch64-linux-gnu-gcc") ]] triplet "aarch64-linux-gnu" ) unit_test_check_variable_equal( [[ z_vcpkg_make_determine_target_triplet(triplet COMPILER_NAME "i686-linux-gnu-clang") ]] triplet "i686-linux-gnu" ) unit_test_check_variable_equal( [[ z_vcpkg_make_determine_target_triplet(triplet COMPILER_NAME "x86_64-linux-gnu-gcc-13") ]] triplet "x86_64-linux-gnu" ) elseif(VPCKG_TARGET_IS_OSX) # tbd elseif(VCPKG_TARGET_IS_UWP) # tbd elseif(VCPKG_TARGET_IS_WINDOWS) # tbd endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_get_configure_triplets.cmake ================================================ z_vcpkg_make_get_configure_triplets(triplets) # Either none or both of --host, --build if(triplets MATCHES "--host|--build") unit_test_check_variable_not_equal( [[ string(REGEX MATCH "--host=([^;]+)" actual "${triplets}") ]] CMAKE_MATCH_1 "" ) unit_test_check_variable_not_equal( [[ string(REGEX MATCH "--build=([^;]+)" actual "${triplets}") ]] CMAKE_MATCH_1 "" ) endif() # Get the actual --build option, for use in the following tests. block(SCOPE_FOR VARIABLES PROPAGATE build_opt) if(triplets STREQUAL "") # Initially empty triplets are okay (= native build). # Force non-empty triplets via explicit --host. set(VCPKG_MAKE_BUILD_TRIPLET "--host=vcpkg") z_vcpkg_make_get_configure_triplets(triplets) endif() string(REGEX MATCH "--host=[^;]*" host_opt "${triplets};") unit_test_check_variable_not_equal( [[ # match --host ]] host_opt "" ) string(REGEX MATCH "--build=[^;]*" build_opt "${triplets};") unit_test_check_variable_not_equal( [[ # match --build ]] build_opt "" ) endblock() # --host precedence: VCPKG_MAKE_BUILD_TRIPLET, COMPILER_NAME, hard-coded if(VCPKG_MAKE_BUILD_TRIPLET MATCHES "--host=([^;]*)") set(expected "${CMAKE_MATCH_1}") z_vcpkg_make_get_configure_triplets(output COMPILER_NAME "x86_64-linux-gnu-clang-12") unit_test_check_variable_equal( [[ string(REGEX MATCH "--host=([^;]*)" actual "${output}") ]] CMAKE_MATCH_1 "${expected}" ) elseif(VCPKG_TARGET_IS_ANDROID) unit_test_check_variable_equal( [[ string(REGEX MATCH "--host=[^;]*-([^-;]*-(android|[^-;]*))" output "${triplets}") ]] CMAKE_MATCH_1 "linux-android" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual COMPILER_NAME "/bin/armv7a-linux-androideabi28-clang") ]] actual "--host=armv7a-linux-androideabi28;${build_opt}" ) elseif(VCPKG_TARGET_IS_MINGW) unit_test_check_variable_equal( [[ string(REGEX MATCH "--host=[^;]*-(mingw32|[^-;]*)" output "${triplets}") ]] CMAKE_MATCH_1 "mingw32" ) elseif(VCPKG_TARGET_IS_LINUX) unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual COMPILER_NAME "gcc") ]] actual "" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual COMPILER_NAME "/bin/aarch64-linux-gnu-gcc-13") ]] actual "--host=aarch64-linux-gnu;${build_opt}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual COMPILER_NAME "/usr/bin/x86_64-linux-gnu-clang-12") ]] actual "--host=x86_64-linux-gnu;${build_opt}" ) elseif(VCPKG_TARGET_IS_UWP) unit_test_check_variable_equal( [[ string(REGEX MATCH "--host=[^;]*-([^-;]*-[^-;]*)" output "${triplets}") ]] CMAKE_MATCH_1 "unknown-mingw32" ) elseif(VCPKG_TARGET_IS_WINDOWS) unit_test_check_variable_equal( [[ string(REGEX MATCH "--host=[^;]*-([^-;]*-[^-;]*)" output "${triplets}") ]] CMAKE_MATCH_1 "pc-mingw32" ) endif() # VCPKG_MAKE_BUILD_TRIPLET robustness block(SCOPE_FOR VARIABLES) set(VCPKG_MAKE_BUILD_TRIPLET "--host=HHH;--build=BBB") unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual) ]] actual "--host=HHH;--build=BBB" ) set(VCPKG_MAKE_BUILD_TRIPLET "--build=bbb;--host=hhh") unit_test_check_variable_equal( [[ z_vcpkg_make_get_configure_triplets(actual) ]] actual "--build=bbb;--host=hhh" ) endblock() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_get_crosscompiling.cmake ================================================ # Named expected values string(COMPARE NOTEQUAL "host" "build" crosscompiling) string(COMPARE EQUAL "host" "build" native) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result) ]] result "${native}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --host=BBB --build=BBB) ]] result "${native}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --build=HHH --host=HHH) ]] result "${native}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --host=HHH --build=BBB) ]] result "${crosscompiling}" ) # arguable, but without --build it leads to cross_compiling=maybe. unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --host=HHH) ]] result "${crosscompiling}" ) # arguable, but without --host it leads to cross_compiling=maybe. unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --build=BBB) ]] result "${crosscompiling}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --host=HHH --build=BBB) ]] result "${crosscompiling}" ) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result --build=BBB --host=HHH) ]] result "${crosscompiling}" ) if(NOT VCPKG_CROSSCOMPILING) z_vcpkg_make_get_configure_triplets(configure_triplets) unit_test_check_variable_equal( [[ z_vcpkg_make_get_crosscompiling(result ${configure_triplets}) ]] result "${native}" ) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_normalize_arch.cmake ================================================ set(test_cases "amd64" "x86_64" "AMD64" "x86_64" "x64" "x86_64" "x86" "i686" "X86" "i686" "ARM64" "aarch64" "arm64" "aarch64" "ARM" "arm" "arm" "arm" "x86_64" "x86_64" "i686" "i686" "aarch64" "aarch64" ) list(LENGTH test_cases num_items) math(EXPR num_tests "${num_items} / 2 - 1") foreach(idx RANGE 0 ${num_tests}) math(EXPR input_idx "${idx} * 2") math(EXPR output_idx "${idx} * 2 + 1") list(GET test_cases ${input_idx} input) list(GET test_cases ${output_idx} expected) set(result_arch) z_vcpkg_make_normalize_arch(result_arch ${input}) unit_test_check_variable_equal([[]] result_arch "${expected}") endforeach() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/test-z_vcpkg_make_prepare_compile_flags.cmake ================================================ set(VCPKG_COMBINED_C_FLAGS_Release "-O2 -DNDEBUG") set(VCPKG_COMBINED_CXX_FLAGS_Release "-O2 -DNDEBUG") set(VCPKG_COMBINED_C_FLAGS_Debug "-g -O0 -DDEBUG") set(VCPKG_COMBINED_CXX_FLAGS_Debug "-g -O0 -DDEBUG") set(VCPKG_COMBINED_SHARED_LINKER_FLAGS_Release "-L/mylibpath") set(VCPKG_COMBINED_SHARED_LINKER_FLAGS_Debug "-L/debuglibpath") set(CURRENT_INSTALLED_DIR "C:/vcpkg_installed/x64-windows") # Test Case: Release Flag Generation set(flags_out) z_vcpkg_make_prepare_compile_flags( COMPILER_FRONTEND "MSVC" CONFIG "Release" FLAGS_OUT flags_out LANGUAGES "C" "CXX" ) set(expected_cflags "-Xcompiler -O2 -Xcompiler -DNDEBUG") set(expected_cxxflags "-Xcompiler -O2 -Xcompiler -DNDEBUG") set(expected_ldflags "-Xlinker -Xlinker -Xlinker -L/mylibpath") unit_test_check_variable_equal([[]] CFLAGS_Release "${expected_cflags}") unit_test_check_variable_equal([[]] CXXFLAGS_Release "${expected_cxxflags}") unit_test_check_variable_equal([[]] LDFLAGS_Release "${expected_ldflags}") # Test Case: Debug flag generation set(flags_out) z_vcpkg_make_prepare_compile_flags( COMPILER_FRONTEND "MSVC" CONFIG "Debug" FLAGS_OUT flags_out LANGUAGES "C" "CXX" ) # Expected Debug flags set(expected_cflags "-Xcompiler -g -Xcompiler -O0 -Xcompiler -DDEBUG") set(expected_cxxflags "-Xcompiler -g -Xcompiler -O0 -Xcompiler -DDEBUG") set(expected_ldflags "-Xlinker -Xlinker -Xlinker -L/debuglibpath") # Check the values of the Debug flags unit_test_check_variable_equal([[]] CFLAGS_Debug "${expected_cflags}") unit_test_check_variable_equal([[]] CXXFLAGS_Debug "${expected_cxxflags}") unit_test_check_variable_equal([[]] LDFLAGS_Debug "${expected_ldflags}") # Test Case: NO_FLAG_ESCAPING (MSVC, Debug) set(flags_out) unset(CFLAGS_Debug) unset(CXXFLAGS_Debug) unset(LDFLAGS_Debug) z_vcpkg_make_prepare_compile_flags( NO_FLAG_ESCAPING COMPILER_FRONTEND "MSVC" CONFIG "Debug" FLAGS_OUT flags_out LANGUAGES "C" "CXX" ) set(expected_cflags "-g -O0 -DDEBUG") set(expected_cxxflags "-g -O0 -DDEBUG") set(expected_ldflags "-L/debuglibpath") unit_test_check_variable_equal([[]] CFLAGS_Debug "${expected_cflags}") unit_test_check_variable_equal([[]] CXXFLAGS_Debug "${expected_cxxflags}") unit_test_check_variable_equal([[]] LDFLAGS_Debug "${expected_ldflags}") # Test Case: Different Languages and Compiler Frontend (GCC) set(flags_out) z_vcpkg_make_prepare_compile_flags( COMPILER_FRONTEND "GCC" CONFIG "Release" FLAGS_OUT flags_out LANGUAGES "C" "CXX" "ASM" ) unit_test_check_variable_unset([[]] "${ASMFLAGS_Release}") set(expected_gcc_cflags "-O2 -DNDEBUG") unit_test_check_variable_equal([[]] expected_gcc_cflags "${CFLAGS_Release}") # Test Case: No Languages Defined (Should Default to C;CXX) set(flags_out) unset(CFLAGS_Release) unset(CXXFLAGS_Release) unset(LDFLAGS_Release) unset(ASMFLAGS_Release) z_vcpkg_make_prepare_compile_flags( COMPILER_FRONTEND "MSVC" CONFIG "Release" FLAGS_OUT flags_out ) # Verify that both CFLAGS and CXXFLAGS are set since they should default to C and C++ if(NOT CFLAGS_Release) message(FATAL_ERROR "CFLAGS_Release not set") endif() if(NOT CXXFLAGS_Release) message(FATAL_ERROR "CXXFLAGS_Release not set") endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-make/vcpkg.json ================================================ { "name": "vcpkg-ci-vcpkg-make", "version-string": "ci", "description": "Ensures that the vcpkg-make port functions are unit tested.", "license": "MIT", "dependencies": [ { "name": "unit-test-cmake", "host": true }, { "name": "vcpkg-make", "host": true } ], "default-features": [ { "name": "scripts-cl-cpp-wrapper", "platform": "windows & !mingw" }, { "name": "vcpkg-make-cl-cpp-wrapper", "platform": "windows & !mingw" }, "z-vcpkg-make-normalize-arch", "z-vcpkg-make-determine-host-arch", "z-vcpkg-make-determine-target-arch", "z-vcpkg-make-determine-target-triplet", "z-vcpkg-make-get-configure-triplets", "z-vcpkg-make-prepare-compile-flags", "z-vcpkg-make-z-adapt-lib-link-names" ], "features": { "scripts-cl-cpp-wrapper": { "description": "Test the cl_cpp_wrapper in scripts" }, "vcpkg-make-cl-cpp-wrapper": { "description": "Test the cl_cpp_wrapper in vcpkg-make" }, "z-vcpkg-make-normalize-arch": { "description": "Test the z_vcpkg_make_normalize_arch function" }, "z-vcpkg-make-determine-host-arch": { "description": "Test the z_vcpkg_make_determine_host_arch function" }, "z-vcpkg-make-determine-target-arch": { "description": "Test the z_vcpkg_make_determine_target_arch function" }, "z-vcpkg-make-determine-target-triplet": { "description": "Test the z_vcpkg_make_determine_target_arch triplet" }, "z-vcpkg-make-get-configure-triplets": { "description": "Test the z_vcpkg_make_get_configure_triplets function" }, "z-vcpkg-make-get-crosscompiling": { "description": "Test the z_vcpkg_make_get_crosscompiling function" }, "z-vcpkg-make-prepare-compile-flags": { "description": "Test the z_vcpkg_make_prepare_compile_flags function" }, "z-vcpkg-make-z-adapt-lib-link-names": { "description": "Test the z_vcpkg_make_z_adapt_lib_link_names function" } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-tool-nodejs/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) find_program(NODEJS NAMES node PATHS "${CURRENT_INSTALLED_DIR}/tools/node" "${CURRENT_INSTALLED_DIR}/tools/node/bin" NO_DEFAULT_PATH REQUIRED ) execute_process( COMMAND "${NODEJS}" --version COMMAND_ECHO STDOUT COMMAND_ERROR_IS_FATAL ANY ) execute_process( COMMAND "${NODEJS}" -p "process.arch" COMMAND_ECHO STDOUT COMMAND_ERROR_IS_FATAL ANY ) ================================================ FILE: scripts/test_ports/vcpkg-ci-vcpkg-tool-nodejs/vcpkg.json ================================================ { "name": "vcpkg-ci-vcpkg-tool-nodejs", "version-string": "ci", "description": "Test port to validate vcpkg-tool-nodejs", "supports": "native", "dependencies": [ "vcpkg-tool-nodejs" ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-vsgqt/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO vsg-dev/vsgQt REF v0.4.0 SHA512 0c753d573eeec77bdddab0f3499b7fbabc4c0840246501dd83ef1e3a96effacf9cd9a84d5c1c35b49462520a2840ddd02eeefa92c55b23dc44ce9fc285cbee3b HEAD_REF master ) vcpkg_check_features(OUT_FEATURE_OPTIONS options FEATURES vsgxchange USE_VSGXCHANGE ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS "-DSOURCE_PATH=${SOURCE_PATH}" ${options} ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-vsgqt/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(vsgqt-test) set(CMAKE_CXX_STANDARD 17) find_package(vsgQt CONFIG REQUIRED) add_executable(vsgqtviewer "${SOURCE_PATH}/examples/vsgqtviewer/main.cpp") target_link_libraries(vsgqtviewer PRIVATE vsgQt::vsgQt) if (USE_VSGXCHANGE) find_package(vsgXchange CONFIG REQUIRED) target_compile_definitions(vsgqtviewer PRIVATE vsgXchange_FOUND) target_link_libraries(vsgqtviewer PRIVATE vsgXchange::vsgXchange) endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-vsgqt/vcpkg.json ================================================ { "name": "vcpkg-ci-vsgqt", "version-string": "ci", "description": "Port to validate vsgqt in CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "vsgqt", "default-features": false } ], "default-features": [ "vsgxchange" ], "features": { "vsgxchange": { "description": "Build with vsgxchange", "dependencies": [ "vsgxchange" ] } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-vxl/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" OPTIONS_DEBUG -DBUILD_TYPE=debug ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-vxl/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.7) project(vnl-test CXX) if(APPLE) set(CMAKE_CXX_STANDARD "11") endif() find_package(VXL CONFIG REQUIRED) # The use file doesn't only set variables, # but also directly calls include_directories(). # (Calling link_directories() must remain disabled in vcpkg.) # The imported targets don't carry the main include directories! include("${VXL_CMAKE_DIR}/UseVXL.cmake") # Catch wrong link directories. find_library(vcpkg_ci_vnl_library NAMES vnl REQUIRED) cmake_path(GET vcpkg_ci_vnl_library PARENT_PATH vcpkg_ci_vnl_library_dir) if(BUILD_TYPE STREQUAL "debug" AND NOT vcpkg_ci_vnl_library_dir MATCHES "/debug/lib\$") message(SEND_ERROR "vil library directory is wrong." "\n Expected path: '${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib'" "\n Actual path: '${vcpkg_ci_vnl_library_dir}'" ) endif() add_executable(main main.cpp) target_link_libraries(main PRIVATE $ # required. Needs image format deps $ # test only: wants netlib $ # test only: wants polyclipping $ # test only: wants image formats ) ================================================ FILE: scripts/test_ports/vcpkg-ci-vxl/project/main.cpp ================================================ //#include #include #include #include int main() { vil_image_view > img = vil_load("foo.tiff"); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-vxl/vcpkg.json ================================================ { "name": "vcpkg-ci-vxl", "version-string": "ci", "description": "Port to force features of vxl within CI", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "vxl", "features": [ "core-imaging" ] }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-whisper-cpp/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-whisper-cpp/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.16) project(whisper-cpp-test) find_package(whisper CONFIG REQUIRED) add_executable(test-cmake main.cxx) add_library(imported::whisper ALIAS whisper) target_link_libraries(test-cmake PRIVATE imported::whisper) find_package(PkgConfig REQUIRED) pkg_check_modules(whisper-cpp whisper REQUIRED IMPORTED_TARGET) add_executable(test-pkconfig main.cxx) target_link_libraries(test-pkconfig PRIVATE PkgConfig::whisper-cpp) ================================================ FILE: scripts/test_ports/vcpkg-ci-whisper-cpp/project/main.cxx ================================================ #include int main() { auto context_params = whisper_context_default_params(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-whisper-cpp/vcpkg.json ================================================ { "name": "vcpkg-ci-whisper-cpp", "version-string": "ci", "description": "Port to validate whisper-cpp", "homepage": "https://github.com/microsoft/vcpkg", "license": "MIT", "dependencies": [ { "name": "whisper-cpp", "default-features": false }, { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-ci-wxwidgets/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_check_features(OUT_FEATURE_OPTIONS OPTIONS FEATURES wxrc USE_WXRC ) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_INSTALLED_DIR}/share/wxwidgets/example" DISABLE_PARALLEL_CONFIGURE # Need separate dbg log for following test OPTIONS ${OPTIONS} -DCMAKE_CONFIG_RUN=1 "-DPRINT_VARS=CMAKE_CONFIG_RUN;wxWidgets_LIBRARIES" ) vcpkg_cmake_build() if(NOT VCPKG_BUILD_TYPE) # Check that debug libs are still used after re-configuration, #24489 set(config_log "config-${TARGET_TRIPLET}-dbg") vcpkg_execute_required_process( COMMAND "${CMAKE_COMMAND}" -DCMAKE_CONFIG_RUN=2 . WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" LOGNAME "${config_log}-2" ) file(STRINGS "${CURRENT_BUILDTREES_DIR}/${config_log}-out.log" expected REGEX "wxWidgets_LIBRARIES:=") file(STRINGS "${CURRENT_BUILDTREES_DIR}/${config_log}-2-out.log" actual REGEX "wxWidgets_LIBRARIES:=") if(NOT actual STREQUAL expected) message(FATAL_ERROR "wxWidgets libraries changed after CMake re-run\n" "actual:\n${actual}\n" "expected:\n ${expected}\n" ) endif() endif() ================================================ FILE: scripts/test_ports/vcpkg-ci-wxwidgets/vcpkg.json ================================================ { "name": "vcpkg-ci-wxwidgets", "version-date": "2022-04-05", "port-version": 1, "description": "Builds a GUI app in order to validate the wxwidgets port.", "dependencies": [ { "name": "vcpkg-cmake", "host": true }, { "name": "wxwidgets", "default-features": false, "features": [ "example" ] } ], "default-features": [ { "name": "wxrc", "platform": "native" } ], "features": { "wxrc": { "description": "Test wxrc" } } } ================================================ FILE: scripts/test_ports/vcpkg-ci-yandex-disk-cpp-client/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) vcpkg_cmake_configure( SOURCE_PATH "${CURRENT_PORT_DIR}/project" ) vcpkg_cmake_build() ================================================ FILE: scripts/test_ports/vcpkg-ci-yandex-disk-cpp-client/project/CMakeLists.txt ================================================ cmake_minimum_required(VERSION 3.28) project(yandex-disk-cpp-client-test LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(yandex-disk-cpp-client CONFIG REQUIRED) add_executable(main main.cpp) target_link_libraries(main PRIVATE yandex-disk-cpp-client::yandex-disk-cpp-client) ================================================ FILE: scripts/test_ports/vcpkg-ci-yandex-disk-cpp-client/project/main.cpp ================================================ #include int main() { YandexDiskClient yandex("TOKEN"); auto quota = yandex.getQuotaInfo(); return 0; } ================================================ FILE: scripts/test_ports/vcpkg-ci-yandex-disk-cpp-client/vcpkg.json ================================================ { "name": "vcpkg-ci-yandex-disk-cpp-client", "version-string": "ci", "description": "Validates yandex-disk-cpp-client", "dependencies": [ "yandex-disk-cpp-client", { "name": "vcpkg-cmake", "host": true } ] } ================================================ FILE: scripts/test_ports/vcpkg-find-acquire-program/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) if(VCPKG_HOST_IS_WINDOWS) # The version-agnostic tool dir may already exist. # Simulate/test with NASM. file(REMOVE_RECURSE "${DOWNLOADS}/tools/nasm") file(MAKE_DIRECTORY "${DOWNLOADS}/tools/nasm") endif(VCPKG_HOST_IS_WINDOWS) # For each vcpkg_find_acquire_program(NAME).cmake script, # there must be a literal call to vcpkg_find_acquire_program(NAME) vcpkg_list(SET variables) macro(vcpkg_find_acquire_program NAME_AND_VAR) vcpkg_list(APPEND variables "${NAME_AND_VAR}") _vcpkg_find_acquire_program("${NAME_AND_VAR}") endmacro() vcpkg_find_acquire_program(BAZEL) vcpkg_find_acquire_program(BISON) vcpkg_find_acquire_program(FLEX) vcpkg_find_acquire_program(GIT) vcpkg_find_acquire_program(GN) vcpkg_find_acquire_program(GPERF) vcpkg_find_acquire_program(NASM) vcpkg_find_acquire_program(NINJA) vcpkg_find_acquire_program(PERL) vcpkg_find_acquire_program(PKGCONFIG) vcpkg_find_acquire_program(PYTHON3) vcpkg_find_acquire_program(SCONS) vcpkg_find_acquire_program(YASM) if(NOT VCPKG_HOST_IS_OSX) vcpkg_find_acquire_program(DOXYGEN) vcpkg_find_acquire_program(MESON) # System python too old (3.9; meson needs 3.10) vcpkg_find_acquire_program(RUBY) vcpkg_find_acquire_program(SWIG) endif() if(VCPKG_HOST_IS_LINUX) vcpkg_find_acquire_program(PATCHELF) endif() if(VCPKG_HOST_IS_WINDOWS) vcpkg_find_acquire_program(7Z) vcpkg_find_acquire_program(CLANG) vcpkg_find_acquire_program(DARK) vcpkg_find_acquire_program(GASPREPROCESSOR) vcpkg_find_acquire_program(GO) vcpkg_find_acquire_program(JOM) vcpkg_find_acquire_program(NUGET) vcpkg_find_acquire_program(PYTHON2) endif() list(SORT variables) message(STATUS "Collected programs: ${variables}") set(missing "") foreach(variable IN LISTS variables) set(var_contents "${${variable}}") list(POP_BACK var_contents program) if(NOT EXISTS "${program}") list(APPEND missing "${variable}: ${program}") endif() list(POP_FRONT var_contents interpreter) if(interpreter AND NOT EXISTS "${interpreter}") list(APPEND missing "${variable} (interpreter): ${interpreter}") endif() endforeach() if(missing) list(JOIN missing "\n " missing) message(FATAL_ERROR "The following programs do not exist:\n ${missing}") endif() # The postcondition of `vcpkg_find_acquire_program` is that there is a regular # variable of the requested name with a non-false value in the calling scope. # # Normally, it searches for the requested program and sets a regular variable # in the calling scope. However, it does nothing if a variable with that name # is already set to a value which CMake regards as true. # In contrast, `find_program` sets a cache variable when the search is run. # It does nothing if a variable with the given name is defined with a value # of "NOTFOUND" or ending with "-NOTFOUND". # The small behavioral differences needs extra attention. include("${CURRENT_HOST_INSTALLED_DIR}/share/unit-test-cmake/test-macros.cmake") set(expected_gn "$CACHE{GN}") # Cache variable is set to trueish value: Early return of vfap with current value. unset(GN) set(GN "THIS IS CACHED GN" CACHE INTERNAL "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "THIS IS CACHED GN") # Cache variable is NOTFOUNDish or empty value: These values evaluate to false, # so a search via vfap should run and yield the expected path. unset(GN) set(GN "NOTFOUND" CACHE INTERNAL "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") unset(GN) set(GN "GN-NOTFOUND" CACHE INTERNAL "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") unset(GN) set(GN "" CACHE INTERNAL "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") # Regular variable is set to trueish value: Early return of vfap with current value. unset(GN CACHE) set(GN "THIS IS REGULAR GN") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "THIS IS REGULAR GN") # Regular variable is NOTFOUNDish or empty value: These values evaluate to false, # so a search via vfap should run and yield the expected path. unset(GN CACHE) set(GN "NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") unset(GN CACHE) set(GN "GN-NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") unset(GN CACHE) set(GN "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") # Regular variable is NOTFOUNDish or empty value, and it hides a cache variable: # The cache variable takes effect. set(GN "THIS IS CACHED GN" CACHE INTERNAL "") set(GN "NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "THIS IS CACHED GN") set(GN "THIS IS CACHED GN" CACHE INTERNAL "") set(GN "GN-NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "THIS IS CACHED GN") set(GN "THIS IS CACHED GN" CACHE INTERNAL "") set(GN "") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "THIS IS CACHED GN") set(GN "NOTFOUND" CACHE INTERNAL "") set(GN "NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") set(GN "CACHED-NOTFOUND" CACHE INTERNAL "") set(GN "NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") set(GN "" CACHE INTERNAL "") set(GN "NOTFOUND") unit_test_check_variable_equal([[_vcpkg_find_acquire_program(GN)]] GN "${expected_gn}") # If vfap cannot find or acquire the requested program, it raises a fatal error. unit_test_ensure_fatal_error([[_vcpkg_find_acquire_program(REALLY_NO_SUCH_PROGAM)]]) ================================================ FILE: scripts/test_ports/vcpkg-find-acquire-program/vcpkg.json ================================================ { "name": "vcpkg-find-acquire-program", "version-string": "ci", "description": "Test port to exercise vcpkg_find_acquire_program", "supports": "native", "dependencies": [ "unit-test-cmake" ] } ================================================ FILE: scripts/test_ports/vcpkg-fix-rpath/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # Test for empty string set(elf_dir "${CURRENT_PACKAGES_DIR}/lib") set(test_rpath "") set(expected "$ORIGIN") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() # Test for empty string in the tools directory set(elf_dir "${CURRENT_PACKAGES_DIR}/tools/hdf5") set(test_rpath "") set(expected "$ORIGIN:$ORIGIN/../../lib") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() # Simple replacement and outside path test set(elf_dir "${CURRENT_PACKAGES_DIR}/lib") set(test_rpath "${CURRENT_PACKAGES_DIR}/lib:/usr/lib/") set(expected "$ORIGIN") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() # Simple pkgconfig path and outside path test set(elf_dir "${CURRENT_PACKAGES_DIR}/lib/") set(test_rpath "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/../../lib:/usr/lib/") set(expected "$ORIGIN") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() # elf dir in subdir set(elf_dir "${CURRENT_PACKAGES_DIR}/lib/somesubdir") set(test_rpath "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/../../lib:/usr/lib/") set(expected "$ORIGIN:$ORIGIN/..") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() # Getting more complex set(elf_dir "${CURRENT_PACKAGES_DIR}/plugins/notlib/extrasubdir") set(test_rpath "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/../../lib/someotherdir2:${CURRENT_INSTALLED_DIR}/lib/pkgconfig/../../someotherdir1:/usr/lib/") set(expected "$ORIGIN:$ORIGIN/../../../lib:$ORIGIN/../../../lib/someotherdir2:$ORIGIN/../../../someotherdir1") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() set(X_VCPKG_RPATH_KEEP_SYSTEM_PATHS ON) # Simple replacement and outside path test set(elf_dir "${CURRENT_PACKAGES_DIR}/lib") set(test_rpath "${CURRENT_PACKAGES_DIR}/lib:/usr/lib/") set(expected "$ORIGIN:/usr/lib") z_vcpkg_calculate_corrected_rpath( ELF_FILE_DIR "${elf_dir}" ORG_RPATH "${test_rpath}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not agree with expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath agrees with expected rpath: '${new_rpath}' ") endif() ================================================ FILE: scripts/test_ports/vcpkg-fix-rpath/vcpkg.json ================================================ { "name": "vcpkg-fix-rpath", "version-date": "2024-02-10", "description": "Test port to check the string replacement in z_vcpkg_fixup_rpath", "supports": "native & linux" } ================================================ FILE: scripts/test_ports/vcpkg-fixup-macho-rpath/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) # Test for empty string set(macho_dir "${CURRENT_PACKAGES_DIR}/lib") set(test_rpath "") set(expected "@loader_path") z_vcpkg_calculate_corrected_macho_rpath( MACHO_FILE_DIR "${macho_dir}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not match expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath matches expected rpath: '${new_rpath}' ") endif() # Test for empty string in the tools directory set(macho_dir "${CURRENT_PACKAGES_DIR}/tools/hdf5") set(test_rpath "") set(expected "@loader_path/../../lib") z_vcpkg_calculate_corrected_macho_rpath( MACHO_FILE_DIR "${macho_dir}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not match expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath matches expected rpath: '${new_rpath}' ") endif() # macho dir in subdir set(macho_dir "${CURRENT_PACKAGES_DIR}/lib/somesubdir") set(test_rpath "") set(expected "@loader_path/..") z_vcpkg_calculate_corrected_macho_rpath( MACHO_FILE_DIR "${macho_dir}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath for '${macho_dir}' does not match expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath matches expected rpath: '${new_rpath}' ") endif() # Getting more complex set(macho_dir "${CURRENT_PACKAGES_DIR}/plugins/notlib/extrasubdir") set(test_rpath "") set(expected "@loader_path/../../../lib") z_vcpkg_calculate_corrected_macho_rpath( MACHO_FILE_DIR "${macho_dir}" OUT_NEW_RPATH_VAR new_rpath ) if(NOT "x${new_rpath}x" STREQUAL "x${expected}x") message(FATAL_ERROR "--- Calculated rpath does not match expected rpath: '${new_rpath}' != '${expected}' ") else() message(STATUS "--- Calculated rpath matches expected rpath: '${new_rpath}' ") endif() ================================================ FILE: scripts/test_ports/vcpkg-fixup-macho-rpath/vcpkg.json ================================================ { "name": "vcpkg-fixup-macho-rpath", "version-date": "2024-06-15", "description": "Test port to check the string replacement in z_vcpkg_fixup_macho_rpath", "supports": "native & osx" } ================================================ FILE: scripts/test_ports/vcpkg-from-git-test/portfile.cmake ================================================ set(VCPKG_POLICY_EMPTY_PACKAGE enabled) set(git_test_repo "${CURRENT_BUILDTREES_DIR}/test-git-repo") file(REMOVE_RECURSE "${git_test_repo}") # LFS expects a URL for a local repository set(git_remote "file:///${git_test_repo}") message(STATUS "Creating test git repository") vcpkg_find_acquire_program(GIT) vcpkg_list(SET git_config -c core.autocrlf=false -c user.email=vcpkg@example.com -c user.name=vcpkg ) vcpkg_list(SET git ${GIT} ${git_config}) vcpkg_execute_required_process( COMMAND ${git} init "test-git-repo" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "git-init" ) vcpkg_execute_required_process( COMMAND ${git} config uploadpack.allowReachableSHA1InWant true WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-config" ) vcpkg_execute_required_process( COMMAND ${git} checkout -b main WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-new-branch" ) file(WRITE "${git_test_repo}/README.txt" "first commit") vcpkg_execute_required_process( COMMAND ${git} add "README.txt" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-add.1" ) vcpkg_execute_required_process( COMMAND ${git} commit -m "first commit" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-commit.1" ) vcpkg_execute_in_download_mode( COMMAND ${git} rev-parse HEAD OUTPUT_VARIABLE ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to rev-parse HEAD: ${error_code}") endif() string(STRIP "${ref}" ref) file(WRITE "${git_test_repo}/README.txt" "second commit") vcpkg_execute_required_process( COMMAND ${git} add "README.txt" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-add.2" ) vcpkg_execute_required_process( COMMAND ${git} commit -m "second commit" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-commit.2" ) vcpkg_execute_in_download_mode( COMMAND ${git} rev-parse HEAD OUTPUT_VARIABLE head_ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to rev-parse HEAD: ${error_code}") endif() string(STRIP "${head_ref}" head_ref) message(STATUS "Testing regular mode") set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "first commit") message(FATAL_ERROR "Failed to checkout the first commit. Contents were: ${contents} ") endif() message(STATUS "Testing regular mode that happens to match HEAD") set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${head_ref}" HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "second commit") message(FATAL_ERROR "Failed to checkout the second commit. Contents were: ${contents} ") endif() message(STATUS "Testing regular mode with FETCH_REF") vcpkg_execute_required_process( COMMAND ${git} config uploadpack.allowReachableSHA1InWant false WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-config" ) set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" FETCH_REF main HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "first commit") message(FATAL_ERROR "Failed to checkout the first commit. Contents were: ${contents} ") endif() message(STATUS "Testing regular mode with FETCH_REF that happens to match HEAD") set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${head_ref}" FETCH_REF main HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "second commit") message(FATAL_ERROR "Failed to checkout the second commit. Contents were: ${contents} ") endif() vcpkg_execute_required_process( COMMAND ${git} config uploadpack.allowReachableSHA1InWant true WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-config" ) message(STATUS "Testing head mode") set(VCPKG_USE_HEAD_VERSION ON) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "second commit") message(FATAL_ERROR "Failed to checkout the HEAD commit. Contents were: ${contents} ") endif() if(NOT "${VCPKG_HEAD_VERSION}" STREQUAL "${head_ref}") message(FATAL_ERROR "Failed to checkout the right HEAD commit. Expected: ${head_ref} Actual : ${VCPKG_HEAD_VERSION} ") endif() message(STATUS "Testing head mode + no HEAD_REF -> just uses REF") set(VCPKG_USE_HEAD_VERSION ON) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "first commit") message(FATAL_ERROR "Failed to checkout the regular commit. Contents were: ${contents} ") endif() message(STATUS "Testing new head ref") file(WRITE "${git_test_repo}/README.txt" "third commit") vcpkg_execute_required_process( COMMAND ${git} add "README.txt" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git.7" ) vcpkg_execute_required_process( COMMAND ${git} commit -m "second commit" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git.8" ) vcpkg_execute_in_download_mode( COMMAND ${git} rev-parse HEAD OUTPUT_VARIABLE new_head_ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to rev-parse HEAD: ${error_code}") endif() string(STRIP "${new_head_ref}" new_head_ref) set(VCPKG_USE_HEAD_VERSION ON) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" HEAD_REF main ) file(READ "${source_path}/README.txt" contents) if(NOT "${contents}" STREQUAL "third commit") message(FATAL_ERROR "Failed to checkout the right HEAD commit. Contents were: ${contents} ") endif() if(NOT "${VCPKG_HEAD_VERSION}" STREQUAL "${new_head_ref}") message(FATAL_ERROR "Failed to checkout the right HEAD commit. Expected: ${new_head_ref} Actual : ${VCPKG_HEAD_VERSION} ") endif() message(STATUS "Testing LFS support") vcpkg_execute_in_download_mode( COMMAND "${GIT}" lfs --version OUTPUT_VARIABLE lfs_version_output ERROR_VARIABLE lfs_version_error RESULT_VARIABLE lfs_version_result WORKING_DIRECTORY "${git_test_repo}" ) if(NOT lfs_version_result) vcpkg_execute_required_process( COMMAND ${git} lfs install --local WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-lfs-install" ) file(WRITE "${git_test_repo}/.gitattributes" "* text=auto\n*.bin filter=lfs diff=lfs merge=lfs -text\n") message(STATUS "Testing fetching with the same Git and LFS urls") file(WRITE "${git_test_repo}/lfs_file.bin" "fourth commit") vcpkg_execute_required_process( COMMAND ${git} add ".gitattributes" "lfs_file.bin" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-lfs-add" ) vcpkg_execute_required_process( COMMAND ${git} commit -m "fourth commit" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-lfs-commit" ) vcpkg_execute_in_download_mode( COMMAND ${git} rev-parse HEAD OUTPUT_VARIABLE ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to rev-parse HEAD: ${error_code}") endif() string(STRIP "${ref}" ref) vcpkg_execute_in_download_mode( COMMAND ${git} lfs ls-files --name-only OUTPUT_VARIABLE lfs_files RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed lfs ls-files: ${error_code}") endif() string(STRIP "${lfs_files}" lfs_files) if(NOT "${lfs_files}" MATCHES [[lfs_file\.bin]]) message(FATAL_ERROR "File was not added to LFS") endif() set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" HEAD_REF main LFS ) file(READ "${source_path}/lfs_file.bin" contents) if(NOT "${contents}" STREQUAL "fourth commit") message(FATAL_ERROR "Failed to checkout the fourth commit. Contents were: ${contents} ") endif() message(STATUS "Testing fetching from different Git and LFS urls") # requires LFS 3.0.0 or later for "--force" on prune string(REGEX MATCH "git-lfs/([0-9\\.]+) " lfs_version "${lfs_version_output}") set(lfs_version "${CMAKE_MATCH_1}") if(lfs_version VERSION_GREATER_EQUAL "3.0.0") file(WRITE "${git_test_repo}/lfs_file2.bin" "fifth commit") vcpkg_execute_required_process( COMMAND ${git} add "lfs_file2.bin" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-lfs-add.2" ) vcpkg_execute_required_process( COMMAND ${git} commit -m "fifth commit" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-lfs-commit.2" ) vcpkg_execute_in_download_mode( COMMAND ${git} rev-parse HEAD OUTPUT_VARIABLE ref RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to rev-parse HEAD: ${error_code}") endif() string(STRIP "${ref}" ref) set(git_test_repo_2 "${CURRENT_BUILDTREES_DIR}/test-git-repo-2") file(REMOVE_RECURSE "${git_test_repo_2}") set(git_remote_2 "file:///${git_test_repo_2}") vcpkg_execute_required_process( COMMAND ${git} init --bare "test-git-repo-2" WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" LOGNAME "git-init.2" ) # note: LFS won't prune "unpushed" files, which is checked using the "origin" remote by default. # If there is no remote then files are never considered to be "pushed", and so are never pruned. vcpkg_execute_required_process( COMMAND ${git} remote add origin "${git_remote_2}" WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-remote-add" ) vcpkg_execute_required_process( COMMAND ${git} push --all origin WORKING_DIRECTORY "${git_test_repo}" LOGNAME "git-push" ) vcpkg_execute_in_download_mode( COMMAND ${git} lfs prune --force --verbose OUTPUT_VARIABLE lfs_prune RESULT_VARIABLE error_code WORKING_DIRECTORY "${git_test_repo}" ) if(NOT "${error_code}" EQUAL "0") message(FATAL_ERROR "Failed to prune LFS files: ${error_code}") endif() if(NOT "${lfs_prune}" MATCHES "0 retained") message(FATAL_ERROR "LFS prune did not delete all files:\n${lfs_prune}") endif() set(VCPKG_USE_HEAD_VERSION OFF) vcpkg_from_git( OUT_SOURCE_PATH source_path URL "${git_remote}" REF "${ref}" HEAD_REF main LFS "${git_remote_2}" ) file(READ "${source_path}/lfs_file2.bin" contents) if(NOT "${contents}" STREQUAL "fifth commit") message(FATAL_ERROR "Failed to checkout the fifth commit. Contents were: ${contents} ") endif() else() message(NOTICE "Git LFS version is older than 3.0.0: some tests were skipped") endif() else() message(NOTICE "Git LFS is not available: some tests were skipped") endif() ================================================ FILE: scripts/test_ports/vcpkg-from-git-test/vcpkg.json ================================================ { "name": "vcpkg-from-git-test", "version": "0" } ================================================ FILE: scripts/toolchains/android.cmake ================================================ set(ANDROID_CPP_FEATURES "rtti exceptions" CACHE STRING "") set(CMAKE_SYSTEM_NAME Android CACHE STRING "") set(ANDROID_TOOLCHAIN clang CACHE STRING "") set(ANDROID_NATIVE_API_LEVEL ${CMAKE_SYSTEM_VERSION} CACHE STRING "") if(CMAKE_SYSTEM_VERSION MATCHES "^[0-9]+$") set(ANDROID_PLATFORM android-${CMAKE_SYSTEM_VERSION} CACHE STRING "") else() set(ANDROID_PLATFORM ${CMAKE_SYSTEM_VERSION} CACHE STRING "") endif() set(CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION clang CACHE STRING "") if (VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(ANDROID_STL c++_shared CACHE STRING "") else() set(ANDROID_STL c++_static CACHE STRING "") endif() if(DEFINED ENV{ANDROID_NDK_HOME}) set(ANDROID_NDK_HOME $ENV{ANDROID_NDK_HOME}) else() set(ANDROID_NDK_HOME "$ENV{ProgramData}/Microsoft/AndroidNDK64/android-ndk-r13b/") if(NOT EXISTS "${ANDROID_NDK_HOME}") # Use Xamarin default installation folder set(ANDROID_NDK_HOME "$ENV{ProgramFiles\(x86\)}/Android/android-sdk/ndk-bundle") endif() endif() if(NOT EXISTS "${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake") message(FATAL_ERROR "Could not find android ndk. Searched at ${ANDROID_NDK_HOME}") endif() include("${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake") # find_library must ignore host libs if(ANDROID_TOOLCHAIN_ROOT AND EXISTS "${ANDROID_TOOLCHAIN_ROOT}/lib") list(APPEND CMAKE_SYSTEM_IGNORE_PATH "${ANDROID_TOOLCHAIN_ROOT}/lib") endif() if(NOT _VCPKG_ANDROID_TOOLCHAIN) set(_VCPKG_ANDROID_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) string(APPEND CMAKE_C_FLAGS " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/freebsd.cmake ================================================ if(NOT _VCPKG_FREEBSD_TOOLCHAIN) set(_VCPKG_FREEBSD_TOOLCHAIN 1) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() set(CMAKE_SYSTEM_NAME FreeBSD CACHE STRING "") if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR arm64 CACHE STRING "") else() set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") endif() endif() if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/ios.cmake ================================================ if(NOT _VCPKG_IOS_TOOLCHAIN) set(_VCPKG_IOS_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) # Set the CMAKE_SYSTEM_NAME for try_compile calls. set(CMAKE_SYSTEM_NAME iOS CACHE STRING "") macro(_vcpkg_setup_ios_arch arch) unset(_vcpkg_ios_system_processor) unset(_vcpkg_ios_sysroot) unset(_vcpkg_ios_target_architecture) if ("${arch}" STREQUAL "arm64") set(_vcpkg_ios_system_processor "aarch64") set(_vcpkg_ios_target_architecture "arm64") elseif("${arch}" STREQUAL "arm64_32") set(_vcpkg_ios_system_processor "aarch64") set(_vcpkg_ios_target_architecture "arm64_32") elseif("${arch}" STREQUAL "arm") set(_vcpkg_ios_system_processor "arm") set(_vcpkg_ios_target_architecture "armv7") elseif("${arch}" STREQUAL "armv7k") set(_vcpkg_ios_system_processor "arm") set(_vcpkg_ios_target_architecture "armv7k") elseif("${arch}" STREQUAL "x64") set(_vcpkg_ios_system_processor "x86_64") set(_vcpkg_ios_sysroot "iphonesimulator") set(_vcpkg_ios_target_architecture "x86_64") elseif("${arch}" STREQUAL "x86") set(_vcpkg_ios_system_processor "i386") set(_vcpkg_ios_sysroot "iphonesimulator") set(_vcpkg_ios_target_architecture "i386") else() message(FATAL_ERROR "Unknown VCPKG_TARGET_ARCHITECTURE value provided for triplet ${VCPKG_TARGET_TRIPLET}: ${arch}") endif() endmacro() _vcpkg_setup_ios_arch("${VCPKG_TARGET_ARCHITECTURE}") if(_vcpkg_ios_system_processor AND NOT CMAKE_SYSTEM_PROCESSOR) set(CMAKE_SYSTEM_PROCESSOR ${_vcpkg_ios_system_processor}) endif() # If VCPKG_OSX_ARCHITECTURES or VCPKG_OSX_SYSROOT is set in the triplet, they will take priority, # so the following will be no-ops. set(CMAKE_OSX_ARCHITECTURES "${_vcpkg_ios_target_architecture}" CACHE STRING "Build architectures for iOS") if(_vcpkg_ios_sysroot) set(CMAKE_OSX_SYSROOT ${_vcpkg_ios_sysroot} CACHE STRING "iOS sysroot") endif() string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/linux.cmake ================================================ if(NOT _VCPKG_LINUX_TOOLCHAIN) set(_VCPKG_LINUX_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) set(CMAKE_SYSTEM_NAME Linux CACHE STRING "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR i686 CACHE STRING "") string(APPEND VCPKG_C_FLAGS " -m32") string(APPEND VCPKG_CXX_FLAGS " -m32") string(APPEND VCPKG_LINKER_FLAGS " -m32") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(CMAKE_SYSTEM_PROCESSOR armv7l CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "riscv64") set(CMAKE_SYSTEM_PROCESSOR riscv64 CACHE STRING "") endif() if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR AND NOT CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL CMAKE_SYSTEM_PROCESSOR) if(NOT(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")) set(GNU_TRIPLET "${CMAKE_SYSTEM_PROCESSOR}-linux-gnu") if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") set(GNU_TRIPLET "arm-linux-gnueabihf") endif() if(NOT DEFINED CMAKE_CXX_COMPILER) set(CMAKE_CXX_COMPILER "${GNU_TRIPLET}-g++") endif() if(NOT DEFINED CMAKE_C_COMPILER) set(CMAKE_C_COMPILER "${GNU_TRIPLET}-gcc") endif() if(NOT DEFINED CMAKE_Fortran_COMPILER) set(CMAKE_Fortran_COMPILER "${GNU_TRIPLET}-gfortran") endif() if(NOT DEFINED CMAKE_ASM_COMPILER) set(CMAKE_ASM_COMPILER "${GNU_TRIPLET}-gcc") endif() if(NOT DEFINED CMAKE_ASM-ATT_COMPILER) set(CMAKE_ASM-ATT_COMPILER "${GNU_TRIPLET}-as") endif() if(NOT DEFINED CMAKE_LINKER) set(CMAKE_LINKER "${GNU_TRIPLET}-ld") endif() if(NOT DEFINED CMAKE_OBJCOPY) set(CMAKE_OBJCOPY "${GNU_TRIPLET}-objcopy") endif() if(NOT DEFINED CMAKE_AR) set(CMAKE_AR "${GNU_TRIPLET}-ar") endif() if(NOT DEFINED CMAKE_NM) set(CMAKE_NM "${GNU_TRIPLET}-nm") endif() if(NOT DEFINED CMAKE_RANLIB) set(CMAKE_RANLIB "${GNU_TRIPLET}-ranlib") endif() endif() message(STATUS "Cross-compiling for target ${VCPKG_TARGET_ARCHITECTURE} (${CMAKE_SYSTEM_PROCESSOR}) on host ${VCPKG_HOST_ARCHITECTURE} (${CMAKE_HOST_SYSTEM_PROCESSOR}).") endif() if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR) set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") if(VCPKG_CRT_LINKAGE STREQUAL "static") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT "-static ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT "-static ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-static ") endif() string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_ASM_FLAGS_INIT " ${VCPKG_C_FLAGS} ") endif() ================================================ FILE: scripts/toolchains/mingw.cmake ================================================ if(NOT _VCPKG_MINGW_TOOLCHAIN) set(_VCPKG_MINGW_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() # Need to override MinGW from VCPKG_CMAKE_SYSTEM_NAME set(CMAKE_SYSTEM_NAME Windows CACHE STRING "" FORCE) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR i686 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(CMAKE_SYSTEM_PROCESSOR armv7 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "") endif() foreach(lang C CXX) set(CMAKE_${lang}_COMPILER_TARGET "${CMAKE_SYSTEM_PROCESSOR}-w64-windows-gnu" CACHE STRING "") endforeach() find_program(CMAKE_C_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-gcc") find_program(CMAKE_CXX_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-g++") find_program(CMAKE_RC_COMPILER "${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-windres") if(NOT CMAKE_RC_COMPILER) find_program(CMAKE_RC_COMPILER "windres") endif() string(APPEND CMAKE_C_FLAGS_INIT " ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") if(VCPKG_CRT_LINKAGE STREQUAL "static") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT "-static ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT "-static ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-static ") endif() string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/netbsd.cmake ================================================ if(NOT _VCPKG_NETBSD_TOOLCHAIN) set(_VCPKG_NETBSD_TOOLCHAIN 1) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "NetBSD") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() set(CMAKE_SYSTEM_NAME NetBSD CACHE STRING "") if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR arm64 CACHE STRING "") else() set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") endif() endif() if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/openbsd.cmake ================================================ if(NOT _VCPKG_OPENBSD_TOOLCHAIN) set(_VCPKG_OPENBSD_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "OpenBSD") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() set(CMAKE_SYSTEM_NAME OpenBSD CACHE STRING "") if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR arm64 CACHE STRING "") else() set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") endif() endif() if(NOT DEFINED CMAKE_CXX_COMPILER) set(CMAKE_CXX_COMPILER "/usr/bin/clang++") endif() if(NOT DEFINED CMAKE_C_COMPILER) set(CMAKE_C_COMPILER "/usr/bin/clang") endif() string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif(NOT _VCPKG_OPENBSD_TOOLCHAIN) ================================================ FILE: scripts/toolchains/osx.cmake ================================================ if(NOT _VCPKG_OSX_TOOLCHAIN) set(_VCPKG_OSX_TOOLCHAIN 1) if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) set(CMAKE_SYSTEM_NAME Darwin CACHE STRING "") set(CMAKE_MACOSX_RPATH ON CACHE BOOL "") if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR x86_64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR arm64 CACHE STRING "") else() set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") endif() endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}" CACHE STRING "" FORCE) endif() if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") if(CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR) set(CMAKE_CROSSCOMPILING OFF CACHE STRING "") elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64") # arm64 macOS can run x64 binaries set(CMAKE_CROSSCOMPILING OFF CACHE STRING "") endif() if(NOT DEFINED CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}" CACHE STRING "") endif() endif() string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") endif() ================================================ FILE: scripts/toolchains/solaris.cmake ================================================ if(NOT _VCPKG_SOLARIS_TOOLCHAIN) set(_VCPKG_SOLARIS_TOOLCHAIN 1) if(CMAKE_HOST_SYSTEM_NAME STREQUAL "SunOS") set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "") endif() set(CMAKE_SYSTEM_NAME SunOS CACHE STRING "") if(NOT DEFINED CMAKE_SYSTEM_PROCESSOR) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR amd64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR i386 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR arm64 CACHE STRING "") else() set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "") endif() endif() if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG ) string(APPEND CMAKE_C_FLAGS_INIT " -fPIC ${VCPKG_C_FLAGS} ") string(APPEND CMAKE_CXX_FLAGS_INIT " -fPIC ${VCPKG_CXX_FLAGS} ") string(APPEND CMAKE_C_FLAGS_DEBUG_INIT " ${VCPKG_C_FLAGS_DEBUG} ") string(APPEND CMAKE_CXX_FLAGS_DEBUG_INIT " ${VCPKG_CXX_FLAGS_DEBUG} ") string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " ${VCPKG_C_FLAGS_RELEASE} ") string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " ${VCPKG_CXX_FLAGS_RELEASE} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ${VCPKG_LINKER_FLAGS} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_RELEASE_INIT " ${VCPKG_LINKER_FLAGS_RELEASE} ") string(APPEND CMAKE_ASM_FLAGS_INIT " ${VCPKG_C_FLAGS} ") endif() ================================================ FILE: scripts/toolchains/uwp.cmake ================================================ if(NOT _VCPKG_WINDOWS_TOOLCHAIN) set(_VCPKG_WINDOWS_TOOLCHAIN 1) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>$<$:DLL>" CACHE STRING "") set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "") if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_SET_CHARSET_FLAG VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG VCPKG_PLATFORM_TOOLSET ) set(CMAKE_SYSTEM_NAME WindowsStore CACHE STRING "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR AMD64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(CMAKE_SYSTEM_PROCESSOR ARM CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR ARM64 CACHE STRING "") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}" CACHE STRING "" FORCE) endif() set(CMAKE_CROSSCOMPILING ON CACHE STRING "") if(NOT DEFINED CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}" CACHE STRING "") endif() if(NOT (DEFINED VCPKG_MSVC_CXX_WINRT_EXTENSIONS)) set(VCPKG_MSVC_CXX_WINRT_EXTENSIONS ON) endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MD") elseif(VCPKG_CRT_LINKAGE STREQUAL "static") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MT") else() message(FATAL_ERROR "Invalid setting for VCPKG_CRT_LINKAGE: \"${VCPKG_CRT_LINKAGE}\". It must be \"static\" or \"dynamic\"") endif() set(CHARSET_FLAG "/utf-8") if (NOT VCPKG_SET_CHARSET_FLAG OR VCPKG_PLATFORM_TOOLSET MATCHES "v120") # VS 2013 does not support /utf-8 set(CHARSET_FLAG "") endif() set(MP_BUILD_FLAG "") if(NOT (CMAKE_CXX_COMPILER MATCHES "clang-cl.exe")) set(MP_BUILD_FLAG "/MP ") endif() set(_vcpkg_cpp_flags "/DWIN32 /D_WINDOWS /D_UNICODE /DUNICODE /DWINAPI_FAMILY=WINAPI_FAMILY_APP /D__WRL_NO_DEFAULT_LIB__" ) # VS adds /D "_WINDLL" for DLLs; set(_vcpkg_common_flags "/nologo /Z7 ${MP_BUILD_FLAG}/GS /Gd /Gm- /W3 /WX- /Zc:wchar_t /Zc:inline /Zc:forScope /fp:precise /Oy- /EHsc") #/ZW:nostdlib -> ZW is added by CMake # VS also normally adds /sdl but not cmake MSBUILD set(_vcpkg_winmd_flag "") if(VCPKG_MSVC_CXX_WINRT_EXTENSIONS) file(TO_CMAKE_PATH "$ENV{VCToolsInstallDir}" _vcpkg_vctools) set(ENV{_CL_} "/FU\"${_vcpkg_vctools}/lib/x86/store/references/platform.winmd\" $ENV{_CL_}") # CMake has problems to correctly pass this in the compiler test so probably need special care in get_cmake_vars #set(_vcpkg_winmd_flag "/FU\\\\\"${_vcpkg_vctools}/lib/x86/store/references/platform.winmd\\\\\"") # VS normally passes /ZW for Apps endif() set(CMAKE_CXX_FLAGS "${_vcpkg_cpp_flags} ${_vcpkg_common_flags} ${_vcpkg_winmd_flag} ${CHARSET_FLAG} ${VCPKG_CXX_FLAGS}" CACHE STRING "") set(CMAKE_C_FLAGS "${_vcpkg_cpp_flags} ${_vcpkg_common_flags} ${_vcpkg_winmd_flag} ${CHARSET_FLAG} ${VCPKG_C_FLAGS}" CACHE STRING "") set(CMAKE_RC_FLAGS "-c65001 ${_vcpkg_cpp_flags}" CACHE STRING "") unset(CHARSET_FLAG) unset(MP_BUILD_FLAG) unset(_vcpkg_cpp_flags) unset(_vcpkg_common_flags) unset(_vcpkg_winmd_flag) set(CMAKE_CXX_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_C_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_CXX_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG ${VCPKG_CXX_FLAGS_RELEASE}" CACHE STRING "") # VS adds /GL set(CMAKE_C_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG ${VCPKG_C_FLAGS_RELEASE}" CACHE STRING "") string(APPEND CMAKE_STATIC_LINKER_FLAGS_RELEASE_INIT " /nologo ") # VS adds /LTCG if(VCPKG_MSVC_CXX_WINRT_EXTENSIONS) set(additional_dll_flags "/WINMD:NO ") if(CMAKE_GENERATOR MATCHES "Ninja") set(additional_exe_flags "/WINMD ") # VS Generator chokes on this in the compiler detection endif() endif() string(APPEND CMAKE_MODULE_LINKER_FLAGS " /MANIFEST:NO /NXCOMPAT /DYNAMICBASE /DEBUG ${additional_dll_flags}/APPCONTAINER /SUBSYSTEM:CONSOLE /MANIFESTUAC:NO ${VCPKG_LINKER_FLAGS}") string(APPEND CMAKE_SHARED_LINKER_FLAGS " /MANIFEST:NO /NXCOMPAT /DYNAMICBASE /DEBUG ${additional_dll_flags}/APPCONTAINER /SUBSYSTEM:CONSOLE /MANIFESTUAC:NO ${VCPKG_LINKER_FLAGS}") # VS adds /DEBUG:FULL /TLBID:1. WindowsApp.lib is in CMAKE_C|CXX_STANDARD_LIBRARIES string(APPEND CMAKE_EXE_LINKER_FLAGS " /MANIFEST:NO /NXCOMPAT /DYNAMICBASE /DEBUG ${additional_exe_flags}/APPCONTAINER /MANIFESTUAC:NO ${VCPKG_LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") # VS uses /LTCG:incremental set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") # VS uses /LTCG:incremental set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") string(APPEND CMAKE_STATIC_LINKER_FLAGS_DEBUG_INIT " /nologo ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " /nologo ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " /nologo ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") endif() ================================================ FILE: scripts/toolchains/windows.cmake ================================================ if(NOT _VCPKG_WINDOWS_TOOLCHAIN) set(_VCPKG_WINDOWS_TOOLCHAIN 1) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>$<$:DLL>" CACHE STRING "") set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "") if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_SET_CHARSET_FLAG VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG VCPKG_PLATFORM_TOOLSET ) set(CMAKE_SYSTEM_NAME Windows CACHE STRING "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR x86 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR AMD64 CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm") set(CMAKE_SYSTEM_PROCESSOR ARM CACHE STRING "") elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") set(CMAKE_SYSTEM_PROCESSOR ARM64 CACHE STRING "") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}" CACHE STRING "" FORCE) endif() if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") if(CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR) set(CMAKE_CROSSCOMPILING OFF CACHE STRING "") elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") # any of the four platforms can run x86 binaries set(CMAKE_CROSSCOMPILING OFF CACHE STRING "") elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "ARM64") # arm64 can run binaries of any of the four platforms after Windows 11 set(CMAKE_CROSSCOMPILING OFF CACHE STRING "") endif() if(NOT DEFINED CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${CMAKE_HOST_SYSTEM_VERSION}" CACHE STRING "") endif() endif() if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MD") elseif(VCPKG_CRT_LINKAGE STREQUAL "static") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MT") else() message(FATAL_ERROR "Invalid setting for VCPKG_CRT_LINKAGE: \"${VCPKG_CRT_LINKAGE}\". It must be \"static\" or \"dynamic\"") endif() set(CHARSET_FLAG "/utf-8") if (NOT VCPKG_SET_CHARSET_FLAG OR VCPKG_PLATFORM_TOOLSET MATCHES "v120") # VS 2013 does not support /utf-8 set(CHARSET_FLAG "") endif() set(MP_BUILD_FLAG "") if(NOT (CMAKE_CXX_COMPILER MATCHES "clang-cl.exe")) set(MP_BUILD_FLAG "/MP ") endif() set(CMAKE_CXX_FLAGS " /nologo /DWIN32 /D_WINDOWS ${CHARSET_FLAG} /GR /EHsc ${MP_BUILD_FLAG}${VCPKG_CXX_FLAGS}" CACHE STRING "") set(CMAKE_C_FLAGS " /nologo /DWIN32 /D_WINDOWS ${CHARSET_FLAG} ${MP_BUILD_FLAG}${VCPKG_C_FLAGS}" CACHE STRING "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64ec") string(APPEND CMAKE_CXX_FLAGS " /arm64EC /D_AMD64_ /DAMD64 /D_ARM64EC_ /DARM64EC") string(APPEND CMAKE_C_FLAGS " /arm64EC /D_AMD64_ /DAMD64 /D_ARM64EC_ /DARM64EC") endif() set(CMAKE_RC_FLAGS "-c65001 /DWIN32" CACHE STRING "") set(CMAKE_CXX_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Z7 /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_C_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Z7 /Ob0 /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_CXX_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG /Z7 ${VCPKG_CXX_FLAGS_RELEASE}" CACHE STRING "") set(CMAKE_C_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG /Z7 ${VCPKG_C_FLAGS_RELEASE}" CACHE STRING "") string(APPEND CMAKE_STATIC_LINKER_FLAGS_RELEASE_INIT " /nologo ") set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE}" CACHE STRING "") string(APPEND CMAKE_STATIC_LINKER_FLAGS_DEBUG_INIT " /nologo ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") unset(CHARSET_FLAG) unset(MP_BUILD_FLAG) unset(VCPKG_CRT_LINK_FLAG_PREFIX) endif() ================================================ FILE: scripts/toolchains/xbox.cmake ================================================ if(NOT _VCPKG_WINDOWS_TOOLCHAIN) set(_VCPKG_WINDOWS_TOOLCHAIN 1) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>$<$:DLL>" CACHE STRING "") set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "") if(POLICY CMP0056) cmake_policy(SET CMP0056 NEW) endif() if(POLICY CMP0066) cmake_policy(SET CMP0066 NEW) endif() if(POLICY CMP0067) cmake_policy(SET CMP0067 NEW) endif() if(POLICY CMP0137) cmake_policy(SET CMP0137 NEW) endif() list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES VCPKG_CRT_LINKAGE VCPKG_TARGET_ARCHITECTURE VCPKG_C_FLAGS VCPKG_CXX_FLAGS VCPKG_C_FLAGS_DEBUG VCPKG_CXX_FLAGS_DEBUG VCPKG_C_FLAGS_RELEASE VCPKG_CXX_FLAGS_RELEASE VCPKG_LINKER_FLAGS VCPKG_LINKER_FLAGS_RELEASE VCPKG_LINKER_FLAGS_DEBUG VCPKG_PLATFORM_TOOLSET XBOX_CONSOLE_TARGET ) set(CMAKE_SYSTEM_NAME Windows CACHE STRING "") if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") set(CMAKE_SYSTEM_PROCESSOR AMD64 CACHE STRING "") else() message(FATAL_ERROR "Xbox requires x64 native target.") endif() if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION) set(CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}" CACHE STRING "" FORCE) else() set(CMAKE_SYSTEM_VERSION "10.0" CACHE STRING "" FORCE) endif() set(CMAKE_CROSSCOMPILING ON CACHE STRING "") # Add the Microsoft GDK if present if (DEFINED ENV{GameDKCoreLatest}) # October 2025 or later # No windows paths should be used for console targets. elseif (DEFINED ENV{GRDKLatest}) # April 2025 or earlier cmake_path(SET _vcpkg_grdk "$ENV{GRDKLatest}") list(APPEND CMAKE_REQUIRED_INCLUDES "${_vcpkg_grdk}/gameKit/Include") include_directories(BEFORE SYSTEM "${_vcpkg_grdk}/gameKit/Include") cmake_path(CONVERT "${_vcpkg_grdk}/gameKit/Include" TO_NATIVE_PATH_LIST _vcpkg_inc NORMALIZE) link_directories(BEFORE "${_vcpkg_grdk}/gameKit/Lib/amd64") cmake_path(CONVERT "${_vcpkg_grdk}/gameKit/Lib/amd64" TO_NATIVE_PATH_LIST _vcpkg_lib NORMALIZE) endif() # Add the Microsoft GDK Xbox Extensions if present if (DEFINED ENV{GameDKXboxLatest}) # October 2025 or later cmake_path(SET _vcpkg_gxdk "$ENV{GameDKXboxLatest}") if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") list(APPEND CMAKE_REQUIRED_INCLUDES "${_vcpkg_gxdk}/xbox/include/gen9" "${_vcpkg_gxdk}/xbox/include") include_directories(BEFORE SYSTEM "${_vcpkg_gxdk}/xbox/include/gen9" "${_vcpkg_gxdk}/xbox/include") cmake_path(CONVERT "${_vcpkg_gxdk}/xbox/include/gen9;${_vcpkg_gxdk}/xbox/include" TO_NATIVE_PATH_LIST _vcpkg_inc NORMALIZE) link_directories(BEFORE "${_vcpkg_gxdk}/xbox/lib/gen9" "${_vcpkg_gxdk}/xbox/lib/x64") cmake_path(CONVERT "${_vcpkg_gxdk}/xbox/lib/gen9;${_vcpkg_gxdk}/xbox/lib/x64" TO_NATIVE_PATH_LIST _vcpkg_lib NORMALIZE) elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") list(APPEND CMAKE_REQUIRED_INCLUDES "${_vcpkg_gxdk}/xbox/include/gen8" "${_vcpkg_gxdk}/xbox/include") include_directories(BEFORE SYSTEM "${_vcpkg_gxdk}/xbox/include/gen8" "${_vcpkg_gxdk}/xbox/include") cmake_path(CONVERT "${_vcpkg_gxdk}/xbox/include/gen8;${_vcpkg_gxdk}/xbox/include" TO_NATIVE_PATH_LIST _vcpkg_inc NORMALIZE) link_directories(BEFORE "${_vcpkg_gxdk}/xbox/lib/gen8" "${_vcpkg_gxdk}/xbox/lib/x64") cmake_path(CONVERT "${_vcpkg_gxdk}/xbox/lib/gen8;${_vcpkg_gxdk}/xbox/lib/x64" TO_NATIVE_PATH_LIST _vcpkg_lib NORMALIZE) endif() elseif (DEFINED ENV{GXDKLatest}) # April 2025 or earlier cmake_path(SET _vcpkg_gxdk "$ENV{GXDKLatest}") if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") list(APPEND CMAKE_REQUIRED_INCLUDES "${_vcpkg_gxdk}/gameKit/Include" "${_vcpkg_gxdk}/gameKit/Include/Scarlett") include_directories(BEFORE SYSTEM "${_vcpkg_gxdk}/gameKit/Include" "${_vcpkg_gxdk}/gameKit/Include/Scarlett") cmake_path(CONVERT "${_vcpkg_gxdk}/gameKit/Include;${_vcpkg_gxdk}/gameKit/Include/Scarlett" TO_NATIVE_PATH_LIST _vcpkg_inc NORMALIZE) link_directories(BEFORE "${_vcpkg_gxdk}/gameKit/Lib/amd64" "${_vcpkg_gxdk}/gameKit/Lib/amd64/Scarlett") cmake_path(CONVERT "${_vcpkg_gxdk}/gameKit/Lib/amd64;${_vcpkg_gxdk}/gameKit/Lib/amd64/Scarlett" TO_NATIVE_PATH_LIST _vcpkg_lib NORMALIZE) elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") list(APPEND CMAKE_REQUIRED_INCLUDES "${_vcpkg_gxdk}/gameKit/Include" "${_vcpkg_gxdk}/gameKit/Include/XboxOne") include_directories(BEFORE SYSTEM "${_vcpkg_gxdk}/gameKit/Include" "${_vcpkg_gxdk}/gameKit/Include/XboxOne") cmake_path(CONVERT "${_vcpkg_gxdk}/gameKit/Include;${_vcpkg_gxdk}/gameKit/Include/XboxOne" TO_NATIVE_PATH_LIST _vcpkg_inc NORMALIZE) link_directories(BEFORE "${_vcpkg_gxdk}/gameKit/Lib/amd64" "${_vcpkg_gxdk}/gameKit/Lib/amd64/XboxOne") cmake_path(CONVERT "${_vcpkg_gxdk}/gameKit/Lib/amd64;${_vcpkg_gxdk}/gameKit/Lib/amd64/XboxOne" TO_NATIVE_PATH_LIST _vcpkg_lib NORMALIZE) endif() endif() if(DEFINED _vcpkg_inc) set(ENV{INCLUDE} "${_vcpkg_inc};$ENV{INCLUDE}") set(ENV{LIB} "${_vcpkg_lib};$ENV{LIB}") endif() unset(_vcpkg_inc) unset(_vcpkg_lib) set(_vcpkg_core_libs onecore_apiset.lib) set(_vcpkg_default_lib onecore_apiset.lib) set(MP_BUILD_FLAG "") if(NOT (CMAKE_CXX_COMPILER MATCHES "clang-cl.exe")) set(MP_BUILD_FLAG "/MP") endif() set(_vcpkg_cpp_flags "/nologo /DWIN32 /D_WINDOWS /D_UNICODE /DUNICODE /DWINAPI_FAMILY=WINAPI_FAMILY_GAMES /D_WIN32_WINNT=0x0A00 /D_ATL_NO_DEFAULT_LIBS /D__WRL_NO_DEFAULT_LIB__ /D__WRL_CLASSIC_COM_STRICT__ /D_UITHREADCTXT_SUPPORT=0 /D_CRT_USE_WINAPI_PARTITION_APP") set(_vcpkg_common_flags "/nologo /Z7 ${MP_BUILD_FLAG} /GS /Gd /W3 /WX- /Zc:wchar_t /Zc:inline /Zc:forScope /fp:precise /Oy- /EHsc /utf-8") # Add the Microsoft GDK if present if (DEFINED _vcpkg_grdk) string(APPEND _vcpkg_core_libs " xgameruntime.lib") endif() # Add the Microsoft GDK Xbox Extensions if present if (DEFINED _vcpkg_gxdk) if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") string(APPEND _vcpkg_cpp_flags " /D_GAMING_XBOX /D_GAMING_XBOX_SCARLETT") set(_vcpkg_core_libs "xgameplatform.lib xgameruntime.lib") set(_vcpkg_default_lib xgameplatform.lib) elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") string(APPEND _vcpkg_cpp_flags " /D_GAMING_XBOX /D_GAMING_XBOX_XBOXONE") set(_vcpkg_core_libs "xgameplatform.lib xgameruntime.lib") set(_vcpkg_default_lib xgameplatform.lib) endif() endif() set(CMAKE_C_STANDARD_LIBRARIES_INIT "${_vcpkg_core_libs}" CACHE INTERNAL "") set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "${_vcpkg_core_libs}" CACHE INTERNAL "") set(CMAKE_C_STANDARD_LIBRARIES ${CMAKE_C_STANDARD_LIBRARIES_INIT} CACHE STRING "" FORCE) set(CMAKE_CXX_STANDARD_LIBRARIES ${CMAKE_CXX_STANDARD_LIBRARIES_INIT} CACHE STRING "" FORCE) unset(_vcpkg_core_libs) if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MD") elseif(VCPKG_CRT_LINKAGE STREQUAL "static") set(VCPKG_CRT_LINK_FLAG_PREFIX "/MT") else() message(FATAL_ERROR "Invalid setting for VCPKG_CRT_LINKAGE: \"${VCPKG_CRT_LINKAGE}\". It must be \"static\" or \"dynamic\"") endif() if(XBOX_CONSOLE_TARGET STREQUAL "scarlett") string(APPEND _vcpkg_common_flags " /favor:AMD64 /arch:AVX2") elseif(XBOX_CONSOLE_TARGET STREQUAL "xboxone") string(APPEND _vcpkg_common_flags " /favor:AMD64 /arch:AVX") endif() set(CMAKE_CXX_FLAGS "${_vcpkg_cpp_flags} ${_vcpkg_common_flags} ${VCPKG_CXX_FLAGS}" CACHE STRING "") set(CMAKE_C_FLAGS "${_vcpkg_cpp_flags} ${_vcpkg_common_flags} ${VCPKG_C_FLAGS}" CACHE STRING "") set(CMAKE_RC_FLAGS "-c65001 ${_vcpkg_cpp_flags}" CACHE STRING "") unset(_vcpkg_cpp_flags) unset(_vcpkg_common_flags) set(CMAKE_CXX_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_C_FLAGS_DEBUG "${VCPKG_CRT_LINK_FLAG_PREFIX}d /Od /RTC1 ${VCPKG_C_FLAGS_DEBUG}" CACHE STRING "") set(CMAKE_CXX_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG ${VCPKG_CXX_FLAGS_RELEASE}" CACHE STRING "") set(CMAKE_C_FLAGS_RELEASE "${VCPKG_CRT_LINK_FLAG_PREFIX} /O2 /Oi /Gy /DNDEBUG ${VCPKG_C_FLAGS_RELEASE}" CACHE STRING "") # oldnames.lib is not in this list as many open source libraries still rely on the older non-compliant POSIX function names. set(_vcpkg_unsupported advapi32.lib comctl32.lib comsupp.lib dbghelp.lib gdi32.lib gdiplus.lib guardcfw.lib mmc.lib msimg32.lib msvcole.lib msvcoled.lib mswsock.lib ntstrsafe.lib ole2.lib ole2autd.lib ole2auto.lib ole2d.lib ole2ui.lib ole2uid.lib ole32.lib oleacc.lib oleaut32.lib oledlg.lib oledlgd.lib runtimeobject.lib shell32.lib shlwapi.lib strsafe.lib urlmon.lib user32.lib userenv.lib wlmole.lib wlmoled.lib onecore.lib) set (_vcpkg_nodefaultlib "/NODEFAULTLIB:kernel32.lib") foreach(arg ${_vcpkg_unsupported}) string(APPEND _vcpkg_nodefaultlib " /NODEFAULTLIB:${arg}") endforeach() # Some upstream projects don't respect STANDARD_LIBRARIES_INIT and rely on default libs instead. set(_vcpkg_common_lflags "/MANIFEST:NO /NXCOMPAT /DYNAMICBASE /DEBUG /MANIFESTUAC:NO /SUBSYSTEM:WINDOWS,10.0 /DEFAULTLIB:${_vcpkg_default_lib}") string(APPEND CMAKE_MODULE_LINKER_FLAGS " ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${_vcpkg_nodefaultlib}") string(APPEND CMAKE_SHARED_LINKER_FLAGS " ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${_vcpkg_nodefaultlib}") string(APPEND CMAKE_EXE_LINKER_FLAGS " ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${_vcpkg_nodefaultlib}") string(APPEND CMAKE_STATIC_LINKER_FLAGS_RELEASE_INIT " /nologo ") set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE} ${_vcpkg_nodefaultlib}" CACHE STRING "") set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE} ${_vcpkg_nodefaultlib}" CACHE STRING "") set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/nologo /DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF ${_vcpkg_common_lflags} ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_RELEASE} ${_vcpkg_nodefaultlib}" CACHE STRING "") string(APPEND CMAKE_STATIC_LINKER_FLAGS_DEBUG_INIT " /nologo ") string(APPEND CMAKE_MODULE_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT " /nologo ${VCPKG_LINKER_FLAGS} ${VCPKG_LINKER_FLAGS_DEBUG} ") unset(_vcpkg_unsupported) unset(_vcpkg_nodefaultlib) unset(_vcpkg_default_lib) unset(_vcpkg_common_lflags) unset(_vcpkg_grdk) unset(_vcpkg_gxdk) unset(MP_BUILD_FLAG) unset(VCPKG_CRT_LINK_FLAG_PREFIX) endif() ================================================ FILE: scripts/update-vcpkg-tool-metadata.ps1 ================================================ [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Date ) [string]$metadata = "VCPKG_TOOL_RELEASE_TAG=$Date`n" Set-Content -LiteralPath "$PSScriptRoot\vcpkg-tool-metadata.txt" -Value $metadata -NoNewline -Encoding utf8NoBOM & "$PSScriptRoot\bootstrap.ps1" [string]$vcpkg = "$PSScriptRoot\..\vcpkg.exe" # Windows arm64 (VS Code only) & $vcpkg x-download "$PSScriptRoot\vcpkg-arm64.exe" ` "--url=https://github.com/microsoft/vcpkg-tool/releases/download/$Date/vcpkg-arm64.exe" --skip-sha512 # Linux Binaries foreach ($binary in @('macos', 'muslc', 'glibc', 'glibc-arm64')) { $caps = $binary.ToUpperInvariant().Replace('-', '_') & $vcpkg x-download "$PSScriptRoot\vcpkg-$binary" ` "--url=https://github.com/microsoft/vcpkg-tool/releases/download/$Date/vcpkg-$binary" --skip-sha512 $sha512 = & $vcpkg hash "$PSScriptRoot\vcpkg-$binary" $metadata += "VCPKG_$($caps)_SHA=$sha512`n" } # Source $sourceName = "$Date.zip" & $vcpkg x-download "$PSScriptRoot\$sourceName" ` "--url=https://github.com/microsoft/vcpkg-tool/archive/refs/tags/$Date.zip" --skip-sha512 $sha512 = & $vcpkg hash "$PSScriptRoot\$sourceName" $metadata += "VCPKG_TOOL_SOURCE_SHA=$sha512`n" # Cleanup Remove-Item @( "$PSScriptRoot\vcpkg-arm64.exe", "$PSScriptRoot\vcpkg-macos", "$PSScriptRoot\vcpkg-muslc", "$PSScriptRoot\vcpkg-glibc", "$PSScriptRoot\vcpkg-glibc-arm64", "$PSScriptRoot\$sourceName" ) Set-Content -LiteralPath "$PSScriptRoot\vcpkg-tool-metadata.txt" -Value $metadata -NoNewline -Encoding utf8NoBOM Write-Host "Metadata Written" ================================================ FILE: scripts/update_suitesparse.py ================================================ #!/usr/bin/env python3 # Usage: ./update_suitesparse.py # # Updates the `suitesparse` port and all of its `suitesparse-*` sub-packages # based on the source archive automatically downloaded of the given version. import hashlib import io import json import re import sys import tarfile from pathlib import Path import requests ports_root = Path(__file__).resolve().parent.parent / "ports" def download(url): print(f"Downloading {url}...") r = requests.get(url) r.raise_for_status() return r.content def sha512(data): sha = hashlib.sha512() sha.update(data) return sha.hexdigest() def extract_version(content): major = re.search(r"^set *\( *(\w+)_VERSION_MAJOR +(\d+) ", content, re.M).group(2) minor = re.search(r"^set *\( *(\w+)_VERSION_MINOR +(\d+) ", content, re.M).group(2) sub = re.search(r"^set *\( *(\w+)_VERSION_(?:SUB|PATCH|UPDATE) +(\d+) ", content, re.M).group(2) return f"{major}.{minor}.{sub}" def load_versions(tar_gz_bytes): versions = {} tar_gz_file = io.BytesIO(tar_gz_bytes) with tarfile.open(fileobj=tar_gz_file, mode="r:gz") as tar: for member in tar.getmembers(): if not member.isfile(): continue if m := re.fullmatch(r"SuiteSparse-[^/]+/(\w+)/CMakeLists.txt", member.name): name = m.group(1) if name in ["Example", "GraphBLAS", "CSparse"]: continue content = tar.extractfile(member).read().decode("utf8") versions[name] = extract_version(content) elif member.name.endswith("GraphBLAS_version.cmake"): content = tar.extractfile(member).read().decode("utf8") versions["GraphBLAS"] = extract_version(content) return versions def update_manifest(pkg_name, version): port_dir = ports_root / pkg_name manifest_path = port_dir / "vcpkg.json" manifest = json.loads(manifest_path.read_text("utf8")) if manifest["version-semver"] == version: return False manifest["version-semver"] = version manifest_path.write_text(json.dumps(manifest, indent=2) + "\n") return True def update_portfile(pkg_name, new_version, new_hash): port_dir = ports_root / pkg_name portfile_path = port_dir / "portfile.cmake" content = portfile_path.read_text("utf8") content, n = re.subn(r"\bREF v\S+", f"REF v{new_version}", content, re.M) if n != 1: raise Exception(f"Updating {pkg_name} portfile ref failed!") content, n = re.subn(r"\bSHA512 \S+", f"SHA512 {new_hash}", content, re.M) if n != 1: raise Exception(f"Updating {pkg_name} portfile hash failed!") portfile_path.write_text(content) def update_port(pkg_name, new_version, suitesparse_hash): port_dir = ports_root / pkg_name if not port_dir.exists(): raise Exception(f"'{pkg_name}' does not exist!") update_manifest(pkg_name, new_version) # Always update the tag in vcpkg_from_github() even if version has not changed # to avoid having to download multiple versions of the source archive. print(f"{pkg_name}: updating...") if pkg_name == "suitesparse-graphblas": url = f"https://github.com/DrTimothyAldenDavis/GraphBLAS/archive/refs/tags/v{new_version}.tar.gz" graphblas_hash = sha512(download(url)) update_portfile(pkg_name, new_version, graphblas_hash) else: update_portfile(pkg_name, suitesparse_version, suitesparse_hash) def main(suitesparse_version): suitesparse_url = ( f"https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v{suitesparse_version}.tar.gz" ) tar_gz_bytes = download(suitesparse_url) suitesparse_hash = sha512(tar_gz_bytes) print("Reading versions from CMakeLists.txt files...") versions = load_versions(tar_gz_bytes) for lib, new_version in versions.items(): pkg_name = "suitesparse-config" if lib == "SuiteSparse_config" else "suitesparse-" + lib.lower() update_port(pkg_name, new_version, suitesparse_hash) update_manifest("suitesparse", suitesparse_version) print("Done!") if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: ./update_suitesparse.py ") sys.exit(1) suitesparse_version = sys.argv[1] main(suitesparse_version) ================================================ FILE: scripts/vcpkg-tool-metadata.txt ================================================ VCPKG_TOOL_RELEASE_TAG=2026-03-04 VCPKG_MACOS_SHA=e224a73c6265b99293619a63e3d66aeb059f17130d2cfd217cd6671fe5e8fa991c742a1dfd28af3bfb6a81292f5b11f0735b3e9ad8f2a50bedb9ea9e1534961f VCPKG_MUSLC_SHA=0a9695493de91f4e1033d5c487cbb61473e2d3868e0e073b529c9b46fbccf6dbef236ab0d03e78228cdec895c3371603e457c3b8ae95a24dff51e698c5fe0b31 VCPKG_GLIBC_SHA=5f0f104f0774d821d70d2e157111cf9b0bc63f6fa721b2a250080f09275a3394dfe770ebba09594bb8ac354245c51b8d1d227656f5ed050a49db237426341a93 VCPKG_GLIBC_ARM64_SHA=7a0564599c890b016a9a2b79fad9b32a7601a225b0285712b9ce7b0486710ceca734c920290a52ea91157299f630ed568da0679e38d89ec299cfa7513ba7e18b VCPKG_TOOL_SOURCE_SHA=5eeffe70ab71a4d1ea1a836b5c16b60fbd318bfe1d4473bd2b9e03e089e81508b00d3b9368b2a1a8423010d9bf479500a00f03524f4e88aa3d444c2ef3b30ca1 ================================================ FILE: scripts/vcpkg-tools.json ================================================ { "schema-version": 1, "tools": [ { "name": "python3", "os": "windows", "version": "3.14.3", "executable": "python.exe", "url": "https://www.python.org/ftp/python/3.14.3/python-3.14.3-embed-win32.zip", "sha512": "6b7b8a4b3fe7b160fda13647b6599be2004334b602fb8acc9edfa0cda3cf5132fe58eb9b5810817a0fcb4bab51e438f7d13c00fd97028f9ff69c777287049461", "archive": "python-3.14.3-embed-win32.zip" }, { "name": "python3", "os": "windows", "arch": "amd64", "version": "3.14.3", "executable": "python.exe", "url": "https://www.python.org/ftp/python/3.14.3/python-3.14.3-embed-amd64.zip", "sha512": "e68b18305927618ee2bb2b8eaf0f70c901eaf1047282f913ce6d03dce9962e237430eaacd29c12984e89e87220edeb9a6fb82be973ee2aacee7dcacac6188cae", "archive": "python-3.14.3-embed-amd64.zip" }, { "name": "python3", "os": "windows", "arch": "arm64", "version": "3.14.3", "executable": "python.exe", "url": "https://www.python.org/ftp/python/3.14.3/python-3.14.3-embed-arm64.zip", "sha512": "ec3018f9e7599a3481ff42ccdd95d47e477f6b2a35fd75f24c28bad2938c0af95aca1f63e89560d3c9d59a5171e83ad2402f9e4299289cae7af2a1bc4aa64a8a", "archive": "python-3.14.3-embed-arm64.zip" }, { "name": "python3_with_venv", "os": "windows", "version": "3.14.3", "executable": "tools/python.exe", "url": "https://www.nuget.org/api/v2/package/python/3.14.3", "sha512": "a97c0031cf35a7fb501488bfb704fd62e985bfb325dcb914e1cb83ef77ae9ae75ab9e8af0563a94c19d66a6934d2e845ad7a8be5ab417273f6b27852ff333960", "archive": "python-3.14.3.nupkg.zip" }, { "name": "cmake", "os": "windows", "arch": "amd64", "version": "3.31.10", "executable": "cmake-3.31.10-windows-x86_64/bin/cmake.exe", "url": "https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-windows-x86_64.zip", "sha512": "50c71aa15a05eaf8d7592d9648efb986df74ab716dc1f1a03795351284c6212b70ad439a1d9f3575d60cf49b0a5579cad551cc6a3fe2911ae8ecb08add60fc60", "archive": "cmake-3.31.10-windows-x86_64.zip" }, { "name": "cmake", "os": "windows", "arch": "arm64", "version": "3.31.10", "executable": "cmake-3.31.10-windows-arm64/bin/cmake.exe", "url": "https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-windows-arm64.zip", "sha512": "a894518004b1e99c008e2554fd7a0b2f714ad6bf12e9c0bd34f62d808546e5773845e3f4c2a44f03cae30fa52bb604760aec6a452327ef38c5cf94e593eb8587", "archive": "cmake-3.31.10-windows-arm64.zip" }, { "name": "cmake", "os": "osx", "version": "3.31.10", "executable": "cmake-3.31.10-macos-universal/CMake.app/Contents/bin/cmake", "url": "https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-macos-universal.tar.gz", "sha512": "5960326dee8227bf27cdd2d94c336835b7bf1b11c443c35ecf2b50a811c7874fcc3400a3b793e4720ef6505d66aed597ecdaf6c77b12db69abafcccd0659182d", "archive": "cmake-3.31.10-macos-universal.tar.gz" }, { "name": "cmake", "os": "linux", "arch": "arm64", "version": "3.31.10", "executable": "cmake-3.31.10-linux-aarch64/bin/cmake", "url": "https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-linux-aarch64.tar.gz", "sha512": "e45c23cd756a9b4699a54d52bd196e3c1c2e63fab893846eeb8a0e1eabb2caa54629bd857518ab5ce5701d9179bb308bf6b4866d07bb8d7b87e04d895d10289d", "archive": "cmake-3.31.10-linux-aarch64.tar.gz" }, { "name": "cmake", "os": "linux", "version": "3.31.10", "arch": "amd64", "executable": "cmake-3.31.10-linux-x86_64/bin/cmake", "url": "https://github.com/Kitware/CMake/releases/download/v3.31.10/cmake-3.31.10-linux-x86_64.tar.gz", "sha512": "2555ae413b19a2acfc8d3c4520f0ecc87811ac1e121bec718b679006d03083dfe7218a68e0af0263a80bd8fbb2d23b5975f4533638b71ef9ad62272640f62356", "archive": "cmake-3.31.10-linux-x86_64.tar.gz" }, { "name": "git", "os": "windows", "arch": "arm64", "version": "2.7.4", "executable": "clangarm64/bin/git.exe", "url": "https://github.com/git-for-windows/git/releases/download/v2.53.0.windows.1/PortableGit-2.53.0-arm64.7z.exe", "sha512": "7972b3a274c0d6a73e64da6bfe58e051969de0ec4dc49fa7bcd2717c74e113e32fba1482606f8209c38989e00b7fb81caceb0cf5ef8a2d7167b57b460a549bab", "archive": "PortableGit-2.53.0-arm64.7z.exe" }, { "name": "git", "os": "windows", "arch": "amd64", "version": "2.7.4", "executable": "mingw64/bin/git.exe", "url": "https://github.com/git-for-windows/git/releases/download/v2.53.0.windows.1/PortableGit-2.53.0-64-bit.7z.exe", "sha512": "6659b3cfc0da33b29f5384f088c66763cc36f542da5731a3164425f538611922188bde26a6c6360bfe15a47c0d0ec336fee6b1412851cc2bde92e2d9d913467a", "archive": "PortableGit-2.53.0-64-bit.7z.exe" }, { "name": "git", "os": "linux", "version": "2.7.4", "executable": "" }, { "name": "git", "os": "osx", "version": "2.7.4", "executable": "" }, { "name": "git", "os": "freebsd", "version": "2.7.4", "executable": "" }, { "name": "gsutil", "os": "windows", "version": "5.35", "executable": "google-cloud-sdk/bin/gsutil.cmd", "url": "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-548.0.0-windows-x86_64-bundled-python.zip", "sha512": "db15ad86e523099d899ce1b3846f702997d3a425e7bedd167b8ac04753433420156bbfba176de67ff0fd4bf6d47795fef6853fab0d2a793a2d92d4daab8ad45a", "archive": "google-cloud-sdk-548.0.0-windows-x86_64-bundled-python.zip" }, { "name": "gsutil", "os": "osx", "version": "5.35", "executable": "gsutil/gsutil", "url": "https://storage.googleapis.com/pub/gsutil_5.35.tar.gz", "sha512": "c051bb71d127fe2a32af338b673218976b4ead6a7c8f76778c9130fdf1d31939bacdc3aef06b3b42d13dc1b8d4a6177b6fdba5bde62ff34af399a2ed9a3eda47", "archive": "gsutil_5.35.tar.gz" }, { "name": "gsutil", "os": "linux", "version": "5.35", "executable": "gsutil/gsutil", "url": "https://storage.googleapis.com/pub/gsutil_5.35.tar.gz", "sha512": "c051bb71d127fe2a32af338b673218976b4ead6a7c8f76778c9130fdf1d31939bacdc3aef06b3b42d13dc1b8d4a6177b6fdba5bde62ff34af399a2ed9a3eda47", "archive": "gsutil_5.35.tar.gz" }, { "name": "vswhere", "os": "windows", "version": "3.1.7", "executable": "vswhere.exe", "url": "https://github.com/microsoft/vswhere/releases/download/3.1.7/vswhere.exe", "sha512": "40c534eb27f079c15c9782f53f82c12dabfede4d3d85f0edf8a855c2b0d5e12921a96506b37c210beab3c33220f8ff098447ad054e82d8c2603964975fc12076" }, { "name": "nuget", "os": "windows", "version": "7.3.0", "executable": "nuget.exe", "url": "https://dist.nuget.org/win-x86-commandline/v7.3.0/nuget.exe", "sha512": "eaa38ed8803abb7291732b0d873a0522ef35e16933eb2f8855e52e2145aefa3163ec8c316ccff8d0d9d1bd995c1d034316751da2ac47586e13b29e4f8b414921" }, { "name": "nuget", "os": "linux", "version": "7.3.0", "executable": "nuget.exe", "url": "https://dist.nuget.org/win-x86-commandline/v7.3.0/nuget.exe", "sha512": "eaa38ed8803abb7291732b0d873a0522ef35e16933eb2f8855e52e2145aefa3163ec8c316ccff8d0d9d1bd995c1d034316751da2ac47586e13b29e4f8b414921" }, { "name": "nuget", "os": "osx", "version": "7.3.0", "executable": "nuget.exe", "url": "https://dist.nuget.org/win-x86-commandline/v7.3.0/nuget.exe", "sha512": "eaa38ed8803abb7291732b0d873a0522ef35e16933eb2f8855e52e2145aefa3163ec8c316ccff8d0d9d1bd995c1d034316751da2ac47586e13b29e4f8b414921" }, { "name": "coscli", "os": "windows", "version": "1.0.8", "arch": "amd64", "executable": "coscli-v1.0.8-windows-amd64.exe", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-windows-amd64.exe", "sha512": "5edee25daed9e0b829b5e391ee78663d431375dd8c6f22e21a9929e730dde3cd0591dacb19067724d55f5e01f8bc3f9b12735d8f8fa1af6a58fde04fd6474ac8" }, { "name": "coscli", "os": "linux", "version": "1.0.8", "arch": "arm", "executable": "coscli-v1.0.8-linux-arm", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-linux-arm", "sha512": "9998843bc99fc277c882b24b848c88586ec1f03abe771f4dec7fa8ce22546ed7e6ef8d5e5f16170fa9d926809dd380c4a71d2ed867a96ce509d9487d3c85359b" }, { "name": "coscli", "os": "linux", "version": "1.0.8", "arch": "arm64", "executable": "coscli-v1.0.8-linux-arm64", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-linux-arm64", "sha512": "21a60f62ba7450363ec7ee4bf54fcafd60562ac715e99434872b0a35e5852111223a216bc3a714df7b32effdd149fb9040b43bc8eb6a62308fc27f6ce7faa2be" }, { "name": "coscli", "os": "linux", "version": "1.0.8", "arch": "amd64", "executable": "coscli-v1.0.8-linux-amd64", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-linux-amd64", "sha512": "2d7b0235204c35bcab58aeeb5526181e09d9951bb3be7c18f79faaa233e52e1249f801712129e0af3fbae124fb55cd7969c39c7de3b1d9adf07fd298699f8086" }, { "name": "coscli", "os": "osx", "version": "1.0.8", "arch": "arm64", "executable": "coscli-v1.0.8-darwin-arm64", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-darwin-arm64", "sha512": "ffdda882d4e78a0fca06ab767a09e563276cf9ef693dfc20f35122720a3121cc210793dc512b48f7f6ed4c6f31c2f4c371c59723e9aecccb3a51542a2b7458f1" }, { "name": "coscli", "os": "osx", "version": "1.0.8", "arch": "amd64", "executable": "coscli-v1.0.8-darwin-amd64", "url": "https://github.com/tencentyun/coscli/releases/download/v1.0.8/coscli-v1.0.8-darwin-amd64", "sha512": "9b025da7830a875195c3f7232497b76adb78650fb5c9c7cd279d0938e3c496ed699cd763501c8f28ba5b9fcfe689aa21bea098f801204c5cbdbfd38dbd27b72f" }, { "name": "7zip_msi", "os": "windows", "version": "26.00", "executable": "Files/7-Zip/7z.exe", "url": "https://github.com/ip7z/7zip/releases/download/26.00/7z2600-x64.msi", "sha512": "a8556706f2ab18953c4f22497d593a4c85f73d49c450c3dafbf827ce313219c7d247ffa6c5b3764075f6cac096490935e9c6ed8449f50c935d396353b84358db", "archive": "7z2600-x64.msi" }, { "name": "7zip", "os": "windows", "version": "26.00", "executable": "7z.exe", "url": "https://github.com/ip7z/7zip/releases/download/26.00/7z2600.exe", "sha512": "9dcbb5d370f6270e0f4a383b5ee7452024f5283e52f838938a7bcca110b5647ffdb2c549677a70b23fea21a349ea4ad1898e6bc976afc3e7e49b4755b6b27150", "archive": "7z2600.7z.exe" }, { "name": "7zr", "os": "windows", "version": "26.00", "executable": "7zr.exe", "url": "https://github.com/ip7z/7zip/releases/download/26.00/7zr.exe", "sha512": "a30f8a214cbe5c0efcbfc4f2cae80f23e821044d167e8d33d882415f0544ae8ba78ad23fa17d58ad92cf7e46c31bded170eefb3d3bd8130d1fa78c6f2dcd5f58" }, { "name": "ninja", "os": "windows", "arch": "arm64", "version": "1.13.2", "executable": "ninja.exe", "url": "https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-winarm64.zip", "sha512": "11541733eede64fe928ad645cd6e5c06cfc2fb7d8c2225aea270a6ed91ffd17c3a13332a348af236e6732cb9f1972fca088cab186439907ca2455b79709d70f6", "archive": "ninja-winarm64-1.13.2.zip" }, { "name": "ninja", "os": "windows", "arch": "x64", "version": "1.13.2", "executable": "ninja.exe", "url": "https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip", "sha512": "55d3d891e8fc6c8ad7f92e172125319896761e57c5125944613d9bbfa5b9374387e9fc1468ad5bcb31464f43fb1c455ea251343942595f42955dc67090aa12ee", "archive": "ninja-win-1.13.2.zip" }, { "name": "ninja", "os": "linux", "arch": "arm64", "version": "1.13.2", "executable": "ninja", "url": "https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux-aarch64.zip", "sha512": "318714ef0f7cb81fe5aab99032d19cfec07035e784ec9a1de63825ce8bed70f9ad6c5801b84bb7130a0b7acb6d5ed960b2953b27256ff51e18dfd720840faa39", "archive": "ninja-linux-aarch64-1.13.2.zip" }, { "name": "ninja", "os": "linux", "arch": "x64", "version": "1.13.2", "executable": "ninja", "url": "https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip", "sha512": "714b900cf10b7ecb1b641c91f4ef696250c64984e5955a8088e4a538d6e8077f43e55f6da47efcedbe316c68d51a9e98feff51734eb0eac1b17aa85af5698753", "archive": "ninja-linux-1.13.2.zip" }, { "name": "ninja", "os": "osx", "version": "1.13.2", "executable": "ninja", "url": "https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-mac.zip", "sha512": "bf71f820791bb2ef97da6e7f8376aaa1c51f3860884df1acde692d2df4c0747a2e167d843dcd5537813da2e5d14457d6ee3f48df13cdd678cea87e68fe73e9f0", "archive": "ninja-mac-1.13.2.zip" }, { "name": "powershell-core", "os": "windows", "arch":"x64", "version": "7.5.4", "executable": "pwsh.exe", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.zip", "sha512": "fb5af273bd5fe7293dbf34a9476a74a9d3ffbaaf5dcc47d986ba69a716f3c77b8285f94c15cfcb9ff764fa210c359e8721d1c9d46dc4394143a4206863bb3cf4", "archive": "PowerShell-7.5.4-win-x64.zip" }, { "name": "powershell-core", "os": "windows", "arch":"arm64", "version": "7.5.4", "executable": "pwsh.exe", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-arm64.zip", "sha512": "5cdc32ecfe5a9fee17194c136a076876e6ebf255004e8890535beefbbaa0d38867712a7a65fc33717fc2a599a1c8a070d8c947d773289e4e0cfa8e4c9927501f", "archive": "PowerShell-7.5.4-win-arm64.zip" }, { "name": "powershell-core", "os": "windows", "arch":"x86", "version": "7.5.4", "executable": "pwsh.exe", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x86.zip", "sha512": "221ddfc685ccb497d26fbdbc6a2d198460e082934a683cade961057282616b85a1f1e9e91e9e01e4a0b36fb3c523fd9983884c62f5c917ea70fd2dd9dfa4a85e", "archive": "PowerShell-7.5.4-win-x86.zip" }, { "name": "powershell-core", "os": "linux", "arch":"x64", "version": "7.5.4", "executable": "pwsh", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-linux-x64.tar.gz", "sha512": "6ff028cee3b23c71136de736ae5a93beb7b625215db3398b034fbdb0dd7b034ebf53da32cc47880982f7506054514e9af3cc5defcb4d69a7dd4a08a766469f0b", "archive": "powershell-7.5.4-linux-x64.tar.gz" }, { "name": "powershell-core", "os": "linux", "arch":"arm64", "version": "7.5.4", "executable": "pwsh", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-linux-arm64.tar.gz", "sha512": "ef721f209842f13a560a21373744ab953ee8af41a60a0ed2f434131f85f4cd1b11565e3615df538a7d78cb5dd2096e9e2ccb42f4ffda79208c80f5206bb40cad", "archive": "powershell-7.5.4-linux-arm64.tar.gz" }, { "name": "powershell-core", "os": "osx", "arch":"x64", "version": "7.5.4", "executable": "pwsh", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-osx-x64.tar.gz", "sha512": "350fef6fe9f18a7d85a5ea09374eb64c6198d389a24080984c0909601490decf21b0ec65b74248ad56c22bfea95bc745a7c9d1edd20bdeb276a905278a09c2c0", "archive": "powershell-7.5.4-osx-x64.tar.gz" }, { "name": "powershell-core", "os": "osx", "arch":"arm64", "version": "7.5.4", "executable": "pwsh", "url": "https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/powershell-7.5.4-osx-arm64.tar.gz", "sha512": "c93ffabdd01fa967bce32201dd9053409967d784f6bea6ce8edd19fb02ecaab15ad697518ff2202f19ee2c62781e17eb8b52bd970498554f931b0f23eb3226dc", "archive": "powershell-7.5.4-osx-arm64.tar.gz" }, { "name": "node", "os": "windows", "arch":"x64", "version": "24.13.1", "executable": "node-v24.13.1-win-x64/node.exe", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-win-x64.7z", "sha512": "42ccd3b58f32faea2d6046a6682f560223ba3c31a43ac003fd5b575b84edb7bfca931ae9ac70909de384c60cb3d13a29323ea582a13dfb247ecca58e90eda257", "archive": "node-v24.13.1-win-x64.7z" }, { "name": "node", "os": "windows", "arch":"arm64", "version": "24.13.1", "executable": "node-v24.13.1-win-arm64/node.exe", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-win-arm64.7z", "sha512": "9d5c3b4d5d05b126a72eafe19bcb8acc2e5bce68f70f76440c26ddd9ec5cc4c2c6045ed6b1dc670299f300ea9e564ec5ce61a0c42cedc004934c517949f0b055", "archive": "node-v24.13.1-win-arm64.7z" }, { "name": "node", "os": "linux", "arch":"x64", "version": "24.13.1", "executable": "node-v24.13.1-linux-x64/bin/node", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-linux-x64.tar.gz", "sha512": "118c934389b8a76159d940461a89dc1c2b376f55592043266dcd24853d18687b3b5a8361fb84f33dfab0974dfabc2f11b156fcbad4ce95ed176a3415ab147dd0", "archive": "node-v24.13.1-linux-x64.tar.gz" }, { "name": "node", "os": "linux", "arch": "arm64", "version": "24.13.1", "executable": "node-v24.13.1-linux-arm64/bin/node", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-linux-arm64.tar.gz", "sha512": "a91f05d7eab44fc06c5a707a814011fdcf34ec9cac9ceebf1a8bd86f061edbaa95a3436ade636f76842bd835311cff8409150a2ca3e699897736966e50014065", "archive": "node-v24.13.1-linux-arm64.tar.gz" }, { "name": "node", "os": "osx", "arch":"x64", "version": "24.13.1", "executable": "node-v24.13.1-darwin-x64/bin/node", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-darwin-x64.tar.gz", "sha512": "c1d3d5b02d57e11d14233e50646f993dceb341bcb47d2c24afbb2190285c15e9288a53ad4eb5b38c5f3cf4fc4eae91e27c8ef9d210863d2483365700067f2694", "archive": "node-v24.13.1-darwin-x64.tar.gz" }, { "name": "node", "os": "osx", "arch": "arm64", "version": "24.13.1", "executable": "node-v24.13.1-darwin-arm64/bin/node", "url": "https://nodejs.org/dist/v24.13.1/node-v24.13.1-darwin-arm64.tar.gz", "sha512": "c8b6a19ef005539634e4e11d8eae393f0921b8fe90ea48767f22673a86f9b5103dea84c7ecc7f789728313ab1f15f342bba3321f07aab8d26b327bc5a76390d4", "archive": "node-v24.13.1-darwin-arm64.tar.gz" }, { "name": "azcopy", "os": "linux", "arch": "amd64", "version": "10.32.0", "executable": "azcopy_linux_amd64_10.32.0/azcopy", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_linux_amd64_10.32.0.tar.gz", "sha512": "38032e87d99e7ebfd70fecda13b094c26e82edb71c81bfff71970926165b632cc41092013c55e87e069f786993df1f00c2f4dbb1e88dd8b5572e40924f75c831", "archive": "azcopy_linux_amd64_10.32.0.tar.gz" }, { "name": "azcopy", "os": "linux", "arch": "arm64", "version": "10.32.0", "executable": "azcopy_linux_arm64_10.32.0/azcopy", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_linux_arm64_10.32.0.tar.gz", "sha512": "cc885752c00530275d97894fc5f1f1319720857a3423fb03c9bc24168fabaa358cd9968108c94e2285b50cbdd0ab922cb2ed48b2554ada081bf79ace7e810e19", "archive": "azcopy_linux_arm64_10.32.0.tar.gz" }, { "name": "azcopy", "os": "osx", "arch": "amd64", "version": "10.32.0", "executable": "azcopy_darwin_amd64_10.32.0/azcopy", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_darwin_amd64_10.32.0.zip", "sha512": "81659d65432954fe9d0985c634c2bb2fa7dc30fe0a2907a3e230b783fae8620b2681483a9d23212a6eb9d9dc4079a82bcf7ba896094a6feba5dde3cf4bdf02ce", "archive": "azcopy_darwin_amd64_10.32.0.zip" }, { "name": "azcopy", "os": "osx", "arch": "arm64", "version": "10.32.0", "executable": "azcopy_darwin_arm64_10.32.0/azcopy", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_darwin_arm64_10.32.0.zip", "sha512": "aad33ee640784e4618ab2b8dc7f8eb672a846269ee69b5f5c5f147b45025097ca78a8c636c2b0e06bfcba485627102b630e7b93343c96478f737261515414d00", "archive": "azcopy_darwin_arm64_10.32.0.zip" }, { "name": "azcopy", "os": "windows", "arch": "amd64", "version": "10.32.0", "executable": "azcopy_windows_amd64_10.32.0/azcopy.exe", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_windows_amd64_10.32.0.zip", "sha512": "7cd6c1c0736a22076a8ef42f91cc250a46ec1dc28ad18a2c0a6ca87f36b083e464aa046e057a19667470b27867214779d6343d71fefb087d2b8b1919ff363895", "archive": "azcopy_windows_amd64_10.32.0.zip" }, { "name": "azcopy", "os": "windows", "arch": "arm64", "version": "10.32.0", "executable": "azcopy_windows_arm64_10.32.0/azcopy.exe", "url": "https://github.com/Azure/azure-storage-azcopy/releases/download/v10.32.0/azcopy_windows_arm64_10.32.0.zip", "sha512": "667ad2e53103dea15207a3e0a2b2d0f43674f6290f93b240ab84174a27ac6aa56e5d64603473751a954912726cca95ca464c3c08b294dd5a1869aa6042e9abb9", "archive": "azcopy_windows_arm64_10.32.0.zip" } ] } ================================================ FILE: scripts/vcpkg_completion.bash ================================================ #!/usr/bin/env bash # set -x # To install: # > vcpkg integrate bash # This adds the following line to ~/.bashrc: # source ~/vcpkg/scripts/vcpkg_completion.bash # Details: bash and utilities from bash-completion # Bash commands: compgen, complete # Input: COMP_WORDS, COMP_CWORD, COMP_LINE, COMP_POINT, COMP_KEY, COMP_WORDBREAKS # Output: COMPREPLY _vcpkg_completions() { local vcpkg_executable=${COMP_WORDS[0]} local remaining_command_line=${COMP_LINE:(${#vcpkg_executable}+1)} # echo "rem:$remaining_command_line" if [ $COMP_CWORD -eq 1 ]; then local opts=$(${vcpkg_executable} autocomplete ${remaining_command_line}) else local opts=$(${vcpkg_executable} autocomplete ${remaining_command_line} --) fi #echo "opts:$opts" COMPREPLY=($(compgen -W "${opts}" -- ${COMP_WORDS[COMP_CWORD]}) ) #echo "COMPREPLY:$COMPREPLY" } complete -F _vcpkg_completions vcpkg ================================================ FILE: scripts/vcpkg_completion.fish ================================================ # vcpkg completions for fish set vcpkg_executable (string split -m1 ' ' (commandline -cb))[1] function _vcpkg_completions set arg (string split -m1 ' ' (commandline -cb))[2] set curr_token (commandline -t) if [ -n $arg ] if [ -z $curr_token ] set arg $arg " " end end for key in ($vcpkg_executable autocomplete "$arg" -- 2>/dev/null) echo $key end end complete -c vcpkg -f --arguments '(_vcpkg_completions)' set vcpkg_commands ($vcpkg_executable autocomplete) function _set_triplet_arguments set triplets ($vcpkg_executable help triplet | grep "^\s" | cut -d' ' -f3) set triplet_from "" for triplet in $triplets echo (test -n "$triplet") >> temp.txt if [ (string sub -l5 -- $triplet) = "VCPKG" ] set -l temp (string length $triplet) set triplet_from (string sub -s6 -l(math $temp - 15) -- $triplet) else if [ -n "$triplet" ] complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l triplet -d "$triplet_from" -a (string sub -s3 -- $triplet) end end end _set_triplet_arguments # options for all completions complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l triplet -d "Specify the target architecture triplet. See 'vcpkg help triplet' (default: \$VCPKG_DEFAULT_TRIPLET)" complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l overlay-ports -d "Specify directories to be used when searching for ports (also: \$VCPKG_OVERLAY_PORTS)" -a '(__fish_complete_directories)' complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l overlay-triplets -d "Specify directories containing triplets files (also: \$VCPKG_OVERLAY_TRIPLETS)" -a '(__fish_complete_directories)' complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l binarysource -d "Add sources for binary caching. See 'vcpkg help binarycaching'" -a '(__fish_complete_directories)' complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l downloads-root -d "Specify the downloads root directory (default: \$VCPKG_DOWNLOADS)" -a '(__fish_complete_directories)' complete -c vcpkg -n "__fish_seen_subcommand_from $vcpkg_commands" -x -l vcpkg-root -d "Specify the vcpkg root directory (default: \$VCPKG_ROOT)" -a '(__fish_complete_directories)' # options for install complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l dry-run -d "Do not actually build or install" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l head -d "Install the libraries on the command line using the latest upstream sources" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l no-downloads -d "Do not download new sources" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l only-downloads -d "Download sources but don't build packages" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l recurse -d "Allow removal of packages as part of installation" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l keep-going -d "Continue installing packages on failure" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l editable -d "Disable source re-extraction and binary caching for libraries on the command line" complete -c vcpkg -n "__fish_seen_subcommand_from install" -f -l clean-after-build -d "Clean buildtrees, packages and downloads after building each package" # options for edit complete -c vcpkg -n "__fish_seen_subcommand_from edit" -f -l buildtrees -d "Open editor into the port-specific buildtree subfolder" complete -c vcpkg -n "__fish_seen_subcommand_from edit" -f -l all -d "Open editor into the port as well as the port-specific buildtree subfolder" # options for export complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l dry-run -d "Do not actually export" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l raw -d "Export to an uncompressed directory" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l nuget -d "Export a NuGet package" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l ifw -d "Export to an IFW-based installer" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l zip -d "Export to a zip file" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l 7zip -d "Export to a 7zip (.7z) file" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l prefab -d "Export to Prefab format" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l prefab-maven -d "Enable maven" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -l prefab-debug -d "Enable prefab debug" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l output -d "Specify the output name (used to construct filename)" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l output-dir -d "Specify the output directory for produced artifacts" -a '(__fish_complete_directories)' complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l nuget-id -d "Specify the id for the exported NuGet package (overrides --output)" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l nuget-version -d "Specify the version for the exported NuGet package" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l ifw-repository-url -d "Specify the remote repository URL for the online installer" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l ifw-packages-directory-path -d "Specify the temporary directory path for the repacked packages" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l ifw-repository-directory-path -d "Specify the directory path for the exported repository" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l ifw-configuration-file-path -d "Specify the temporary file path for the installer configuration" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l ifw-installer-file-path -d "Specify the file path for the exported installer" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l prefab-group-id -d "GroupId uniquely identifies your project according maven specifications" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l prefab-artifact-id -d "Artifact Id is the name of the project according maven specifications" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l prefab-version -d "Version is the name of the project according maven specifications" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l prefab-min-sdk -d "Android minimum supported sdk version" complete -c vcpkg -n "__fish_seen_subcommand_from export" -f -r -l prefab-target-sdk -d "Android target sdk version" # options for remove complete -c vcpkg -n "__fish_seen_subcommand_from remove" -f -l purge -d "Remove the cached copy of the package (default)" complete -c vcpkg -n "__fish_seen_subcommand_from remove" -f -l no-purge -d "Do not remove the cached copy of the package (deprecated)" complete -c vcpkg -n "__fish_seen_subcommand_from remove" -f -l recurse -d "Allow removal of packages not explicitly specified on the command line" complete -c vcpkg -n "__fish_seen_subcommand_from remove" -f -l dry-run -d "Print the packages to be removed, but do not remove them" complete -c vcpkg -n "__fish_seen_subcommand_from remove" -f -l outdated -d "Select all packages with versions that do not match the portfiles" # options for upgrade complete -c vcpkg -n "__fish_seen_subcommand_from upgrade" -f -l no-dry-run -d "Actually upgrade" complete -c vcpkg -n "__fish_seen_subcommand_from upgrade" -f -l keep-going -d "Continue installing packages on failure" ================================================ FILE: scripts/vcpkg_completion.zsh ================================================ _vcpkg_completions() { local vcpkg_executable=${COMP_WORDS[0]} local remaining_command_line=${COMP_LINE:(${#vcpkg_executable}+1)} COMPREPLY=($(${vcpkg_executable} autocomplete "${remaining_command_line}" -- 2>/dev/null)) } complete -F _vcpkg_completions vcpkg ================================================ FILE: shell.nix ================================================ { pkgs ? import {}, withX11 ? false }: (pkgs.buildFHSUserEnv { name = "vcpkg"; targetPkgs = pkgs: (with pkgs; [ autoconf automake cmake gcc gettext glibc.dev gperf libtool libxkbcommon.dev m4 ninja pkg-config zip zstd.dev ] ++ pkgs.lib.optionals withX11 [ freetds libdrm.dev libglvnd.dev mesa_drivers mesa_glu.dev mesa.dev xlibs.libxcb.dev xlibs.xcbutilimage.dev xlibs.xcbutilwm.dev xlibs.xorgserver.dev xorg.libpthreadstubs xorg.libX11.dev xorg.libxcb.dev xorg.libXext.dev xorg.libXi.dev xorg.xcbproto xorg.xcbutil.dev xorg.xcbutilcursor.dev xorg.xcbutilerrors xorg.xcbutilkeysyms.dev xorg.xcbutilrenderutil.dev xorg.xcbutilwm.dev xorg.xorgproto ]); runScript = "bash"; }).env ================================================ FILE: toolsrc/VERSION.txt ================================================ "9999.99.99" ================================================ FILE: triplets/arm64-windows.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) ================================================ FILE: triplets/community/arm-android.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_CMAKE_SYSTEM_VERSION 28) set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=OFF) ================================================ FILE: triplets/community/arm-ios.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) ================================================ FILE: triplets/community/arm-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/arm-mingw-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) ================================================ FILE: triplets/community/arm-mingw-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) ================================================ FILE: triplets/community/arm-uwp-static-md.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/arm-uwp.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/arm-watchos.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE armv7k) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME watchOS) set(VCPKG_OSX_SYSROOT watchos) ================================================ FILE: triplets/community/arm-windows-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) ================================================ FILE: triplets/community/arm-windows.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) ================================================ FILE: triplets/community/arm64-android-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_CMAKE_SYSTEM_VERSION 28) set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-linux-android") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=arm64-v8a) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-freebsd.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME FreeBSD) ================================================ FILE: triplets/community/arm64-ios-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-ios-simulator-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_OSX_SYSROOT iphonesimulator) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-ios-simulator.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) set(VCPKG_OSX_SYSROOT iphonesimulator) ================================================ FILE: triplets/community/arm64-ios.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) ================================================ FILE: triplets/community/arm64-linux-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_FIXUP_ELF_RPATH ON) ================================================ FILE: triplets/community/arm64-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-mingw-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) ================================================ FILE: triplets/community/arm64-mingw-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) ================================================ FILE: triplets/community/arm64-osx-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) ================================================ FILE: triplets/community/arm64-osx-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES arm64) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-tvos-simulator.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME tvOS) set(VCPKG_OSX_SYSROOT appletvsimulator) ================================================ FILE: triplets/community/arm64-tvos.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME tvOS) set(VCPKG_OSX_SYSROOT appletvos) ================================================ FILE: triplets/community/arm64-uwp-static-md.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/arm64-uwp.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/arm64-visionos.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME visionOS) ================================================ FILE: triplets/community/arm64-watchos-simulator.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME watchOS) set(VCPKG_OSX_SYSROOT watchsimulator) ================================================ FILE: triplets/community/arm64-watchos.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME watchOS) set(VCPKG_OSX_SYSROOT watchos) ================================================ FILE: triplets/community/arm64-windows-static-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/arm64-windows-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) ================================================ FILE: triplets/community/arm6432-watchos.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64_32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME watchOS) set(VCPKG_OSX_SYSROOT watchos) ================================================ FILE: triplets/community/arm64ec-windows.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm64ec) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) ================================================ FILE: triplets/community/armv6-android.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE arm) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi -DANDROID_ARM_MODE=arm) ================================================ FILE: triplets/community/loongarch32-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE loongarch32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/loongarch32-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE loongarch32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/loongarch64-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE loongarch64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/loongarch64-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE loongarch64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/mips64-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE mips64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/ppc64le-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE ppc64le) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/ppc64le-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE ppc64le) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/riscv32-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE riscv32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/riscv32-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE riscv32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/riscv64-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE riscv64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/riscv64-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE riscv64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/s390x-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE s390x) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/s390x-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE s390x) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/wasm32-emscripten.cmake ================================================ set(VCPKG_ENV_PASSTHROUGH_UNTRACKED EMSCRIPTEN_ROOT EMSDK PATH) if(NOT DEFINED ENV{EMSCRIPTEN_ROOT}) find_path(EMSCRIPTEN_ROOT "emcc") else() set(EMSCRIPTEN_ROOT "$ENV{EMSCRIPTEN_ROOT}") endif() if(NOT EMSCRIPTEN_ROOT) if(NOT DEFINED ENV{EMSDK}) message(FATAL_ERROR "The emcc compiler not found in PATH") endif() set(EMSCRIPTEN_ROOT "$ENV{EMSDK}/upstream/emscripten") endif() if(NOT EXISTS "${EMSCRIPTEN_ROOT}/cmake/Modules/Platform/Emscripten.cmake") message(FATAL_ERROR "Emscripten.cmake toolchain file not found") endif() set(VCPKG_TARGET_ARCHITECTURE wasm32) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Emscripten) set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${EMSCRIPTEN_ROOT}/cmake/Modules/Platform/Emscripten.cmake") ================================================ FILE: triplets/community/x64-freebsd-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME FreeBSD) set(VCPKG_FIXUP_ELF_RPATH ON) ================================================ FILE: triplets/community/x64-freebsd-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME FreeBSD) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-freebsd.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME FreeBSD) ================================================ FILE: triplets/community/x64-ios.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) ================================================ FILE: triplets/community/x64-linux-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_FIXUP_ELF_RPATH ON) ================================================ FILE: triplets/community/x64-linux-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-mingw-dynamic-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-mingw-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) ================================================ FILE: triplets/community/x64-mingw-static-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-mingw-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) ================================================ FILE: triplets/community/x64-netbsd.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME NetBSD) ================================================ FILE: triplets/community/x64-openbsd.cmake ================================================ # Use with # VCPKG_FORCE_SYSTEM_BINARIES=1 ./vcpkg install brotli set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME OpenBSD) ================================================ FILE: triplets/community/x64-osx-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) ================================================ FILE: triplets/community/x64-osx-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-osx.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) ================================================ FILE: triplets/community/x64-solaris.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME SunOS) ================================================ FILE: triplets/community/x64-tvos-simulator.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME tvOS) set(VCPKG_OSX_SYSROOT appletvsimulator) ================================================ FILE: triplets/community/x64-uwp-static-md.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/x64-uwp.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/x64-watchos-simulator.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME watchOS) set(VCPKG_OSX_SYSROOT watchsimulator) ================================================ FILE: triplets/community/x64-windows-static-md-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-windows-static-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x64-xbox-scarlett-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_XBOX_CONSOLE_TARGET scarlett) ================================================ FILE: triplets/community/x64-xbox-scarlett.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_XBOX_CONSOLE_TARGET scarlett) ================================================ FILE: triplets/community/x64-xbox-xboxone-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_XBOX_CONSOLE_TARGET xboxone) ================================================ FILE: triplets/community/x64-xbox-xboxone.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_XBOX_CONSOLE_TARGET xboxone) ================================================ FILE: triplets/community/x86-android.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Android) set(VCPKG_CMAKE_SYSTEM_VERSION 28) set(VCPKG_MAKE_BUILD_TRIPLET "--host=i686-linux-android") set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86) ================================================ FILE: triplets/community/x86-freebsd.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME FreeBSD) ================================================ FILE: triplets/community/x86-ios.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME iOS) ================================================ FILE: triplets/community/x86-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/community/x86-mingw-dynamic-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x86-mingw-dynamic.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled) ================================================ FILE: triplets/community/x86-mingw-static-release.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) set(VCPKG_BUILD_TYPE release) ================================================ FILE: triplets/community/x86-mingw-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_ENV_PASSTHROUGH PATH) set(VCPKG_CMAKE_SYSTEM_NAME MinGW) ================================================ FILE: triplets/community/x86-uwp-static-md.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/x86-uwp.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore) set(VCPKG_CMAKE_SYSTEM_VERSION 10.0) ================================================ FILE: triplets/community/x86-windows-static-md.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) ================================================ FILE: triplets/community/x86-windows-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) ================================================ FILE: triplets/community/x86-windows-v120.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) set(VCPKG_PLATFORM_TOOLSET "v120") set(VCPKG_DEP_INFO_OVERRIDE_VARS "v120") ================================================ FILE: triplets/x64-linux.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Linux) ================================================ FILE: triplets/x64-windows-static.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE static) set(VCPKG_LIBRARY_LINKAGE static) ================================================ FILE: triplets/x64-windows.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) ================================================ FILE: triplets/x86-windows.cmake ================================================ set(VCPKG_TARGET_ARCHITECTURE x86) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) ================================================ FILE: versions/3-/3fd.json ================================================ { "versions": [ { "git-tree": "bc015ca2306c3d177cf011b7bb54d5181d62b0e9", "version": "2.6.3", "port-version": 5 }, { "git-tree": "81e9fd75ff6a4fee6ab7a5d4d09e7e3a735fbaaa", "version": "2.6.3", "port-version": 4 }, { "git-tree": "0bfff492ed0b9ee3f31bb7593443572bc0fcf2d4", "version": "2.6.3", "port-version": 3 }, { "git-tree": "3b52e6aff44ca4e11335754570701f692ea14184", "version": "2.6.3", "port-version": 2 }, { "git-tree": "622078647d4fff0a51a26a4ecff2ba9109e5764d", "version": "2.6.3", "port-version": 1 }, { "git-tree": "73ad3c823ef701c37421b450a34271d6beaf7b07", "version-string": "2.6.3", "port-version": 0 }, { "git-tree": "70ed3ae824a2f31ed56b6c6105232bfe2aebe43e", "version-string": "2.6.2", "port-version": 3 }, { "git-tree": "abd29087cbcde4a7416618fea70094c09fa16c37", "version-string": "2.6.2-3", "port-version": 0 }, { "git-tree": "963060040c3ca463d17136e39c7317efb15eb6a5", "version-string": "2.6.2-2", "port-version": 0 }, { "git-tree": "548c90710d59c174aa9ab10a24deb69f1d75ff8f", "version-string": "2.6.2-1", "port-version": 0 }, { "git-tree": "67d60699c271b7716279fdea5a5c6543929eb90e", "version-string": "2.6.2", "port-version": 0 } ] } ================================================ FILE: versions/7-/7zip.json ================================================ { "versions": [ { "git-tree": "e6c2908a7497a1d8e71ed3813f5533d2314956a8", "version": "26.0", "port-version": 0 }, { "git-tree": "181bb1c243122a292eef7567aa94476888b18465", "version": "25.1", "port-version": 1 }, { "git-tree": "a92e7bbff417f0728def797557491c0251d2602e", "version": "25.1", "port-version": 0 }, { "git-tree": "68564a79f07645b24c9267fef692229c7a888559", "version-string": "24.09", "port-version": 1 }, { "git-tree": "29a42acc927078e1dc58fbbf354d1c59e01d0a03", "version-string": "24.09", "port-version": 0 }, { "git-tree": "36bee800b8aadc1908cc02cc1561dee40a3b43f6", "version-string": "24.08", "port-version": 1 }, { "git-tree": "f8021d6c213215f0eb9e99500d348291ac5898c5", "version-string": "24.08", "port-version": 0 }, { "git-tree": "142f1372ed52dd210159c9ae75e6195009451554", "version-string": "24.06", "port-version": 0 }, { "git-tree": "23256cddd31991c2df4d96a07fc016fd446c2d2d", "version-string": "23.01", "port-version": 2 }, { "git-tree": "2f1fa323db9a88dd410e7d46ad651f7fe5cb620c", "version-string": "23.01", "port-version": 1 }, { "git-tree": "770ce8dc829180bfcf2c396aa780474a87289f89", "version-string": "23.01", "port-version": 0 }, { "git-tree": "b0a5040bfab9f50a386dc1b40f291fa581b21c79", "version-string": "22.01", "port-version": 1 }, { "git-tree": "e28ef5008a5e93e67db2904c72586f4a667ef5ed", "version-string": "22.01", "port-version": 0 }, { "git-tree": "3cbbaee3c546a24fc68b37759c9a5fc62b683ff0", "version": "22.0", "port-version": 1 }, { "git-tree": "15ce7b0d1812f8640e74075ca9f5e3a08b3bc875", "version": "22.0", "port-version": 0 }, { "git-tree": "d60561160384264eaf45a225dcb41beccb87ecbc", "version-string": "21.07", "port-version": 1 }, { "git-tree": "7a951689070e40d8ff0ed20b4e18bc533ef5db1f", "version-string": "21.07", "port-version": 0 }, { "git-tree": "54b143613df50187b48517d63796569641c4eee7", "version-string": "19.00", "port-version": 4 }, { "git-tree": "c49050bcc9af0a2cbd9c572386e6a8b547ebd9f7", "version-string": "19.00", "port-version": 3 }, { "git-tree": "64b14288536f6e4de77972a54ebf5277780ce222", "version-string": "19.00", "port-version": 2 }, { "git-tree": "40d15a494f1cc001c6150ced483f21acc037ce9d", "version-string": "19.00", "port-version": 1 }, { "git-tree": "85736d9cce870e956f244b78cf384be7afb18f0f", "version-string": "19.00", "port-version": 0 } ] } ================================================ FILE: versions/a-/abcmake.json ================================================ { "versions": [ { "git-tree": "ee7b2ca269c0bbca7802c6750bc3555d750506a7", "version": "6.4.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/ableton-link.json ================================================ { "versions": [ { "git-tree": "aadc49c8dbd3d627de1a8e9de5f65c45efcae3d9", "version": "3.1.5", "port-version": 0 }, { "git-tree": "6b47180236436bf9d91f8f42f011480011283298", "version": "3.1.2", "port-version": 0 }, { "git-tree": "8eccb8fd47b4f50d9963694746c4dd53a8c6ac22", "version": "3.1.1", "port-version": 1 }, { "git-tree": "1e486a5e643aafc9810b1e4c2d9c3da1d3e2d156", "version": "3.1.1", "port-version": 0 }, { "git-tree": "4827f8ad0a42e763cffae490000a08bbd52d7cdf", "version": "3.1.0", "port-version": 0 }, { "git-tree": "3c37c3cf9ca37c0c0d9ddffec58b8deb9c968723", "version": "3.0.6", "port-version": 2 }, { "git-tree": "e88d1fcc5959b44924c1bec7ae3b5535327f41ef", "version": "3.0.6", "port-version": 1 }, { "git-tree": "eb603bd61d919dd4db44c901c00e47198fe186c5", "version": "3.0.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/ableton.json ================================================ { "versions": [ { "git-tree": "d7d1ce16983bcf96d3134583617767e765d9b6c0", "version": "3.0.6", "port-version": 2 }, { "git-tree": "04e19d5336b0e18917966ce1de230dc3bf9c796d", "version": "3.0.6", "port-version": 1 }, { "git-tree": "99ee001ca82f0336506a3f33cb2b94e7942464e3", "version": "3.0.6", "port-version": 0 }, { "git-tree": "d688b97174372d4d7d73278cece5bdc5a64b4136", "version": "3.0.5", "port-version": 2 }, { "git-tree": "70d81e7e966f983af654d779a02817d89eacea3b", "version": "3.0.5", "port-version": 1 }, { "git-tree": "bac28c4912d6fd4e32ad716ec8bf4e197c9a4cb8", "version": "3.0.5", "port-version": 0 } ] } ================================================ FILE: versions/a-/abletonlink.json ================================================ { "versions": [ { "git-tree": "c0588a447d137cad95097141c9006267a129eab3", "version": "3.0.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/abseil.json ================================================ { "versions": [ { "git-tree": "950041f1f00dbb1ef1ab26eb70ceaccf9c35e6a6", "version": "20260107.1", "port-version": 1 }, { "git-tree": "1a33cae06bfd9ccfd1ee93a3989945de1238d6fe", "version": "20260107.1", "port-version": 0 }, { "git-tree": "1339c9be56bcaf55ed8ff64854f477bea6045619", "version": "20250814.1", "port-version": 0 }, { "git-tree": "20bbb665cad5889db5e5f4beebad235d0d91a0bf", "version": "20250512.1", "port-version": 1 }, { "git-tree": "2999911d2655e693394770d9dd7600b277a86f37", "version": "20250512.1", "port-version": 0 }, { "git-tree": "9b26fa4d70b2ca2e9d19451356a1dfd89b336096", "version": "20250127.1", "port-version": 4 }, { "git-tree": "77d9d95320ba6300dccfde18b9bee6c93795461e", "version": "20250127.1", "port-version": 3 }, { "git-tree": "15a046bb4ccc8e59bc9f31df290400a07c587675", "version": "20250127.1", "port-version": 2 }, { "git-tree": "6bb28e97cced88426e3126a47e247ed65608cc86", "version": "20250127.1", "port-version": 1 }, { "git-tree": "0230366a6b5339adce4a78c24a6177a1165e16d2", "version": "20250127.1", "port-version": 0 }, { "git-tree": "274bd7ad7d033b67d78f202b33b280904763c5c7", "version": "20250127.0", "port-version": 0 }, { "git-tree": "95ed5fee53b8698ac2cc6687f470e6fa76474a3a", "version": "20240722.0", "port-version": 0 }, { "git-tree": "dcd1d7ce3c896f86473b155e608bb9cfdaae2d94", "version": "20240116.2", "port-version": 3 }, { "git-tree": "26ec106886be2fb2bc0f35b0bda9a1d3d5f01717", "version": "20240116.2", "port-version": 2 }, { "git-tree": "de728ac31037e511da4996c815903e6ac71e8fb9", "version": "20240116.2", "port-version": 1 }, { "git-tree": "9af16c8547b0a3d6c5886384b9b18934353c9d6d", "version": "20240116.2", "port-version": 0 }, { "git-tree": "948d23db90b120245e93ea7c0f0b773039d2aedd", "version": "20240116.1", "port-version": 1 }, { "git-tree": "a8b26862556884ff981430b54b130d4b1ef6eef7", "version": "20240116.1", "port-version": 0 }, { "git-tree": "49a35a30915907a4e46b57bb33b8aa1f2185e757", "version": "20230802.1", "port-version": 0 }, { "git-tree": "95cfb844950f2cc3e1a530bd23967ee2ea218f74", "version": "20230802.0", "port-version": 0 }, { "git-tree": "370a6da6fa1c5e259a8c8deec863e705aa423be6", "version": "20230125.3", "port-version": 1 }, { "git-tree": "6a337fa251c0ac4489d9c0ea1e2f1c9a7d019eb5", "version": "20230125.3", "port-version": 0 }, { "git-tree": "a88e9003e0d38c2cfbcc676931a0204d749e6629", "version": "20230125.0", "port-version": 1 }, { "git-tree": "aa4f29f110c771e7096ba356501e4a0d6d3d9baa", "version": "20230125.0", "port-version": 0 }, { "git-tree": "c569c0e44beca0b94d5a2d52a24e3a91868550ae", "version-string": "20220623.1", "port-version": 0 }, { "git-tree": "962a81319706d17c9e90bd0b873659ec7c75178a", "version-string": "20211102.1", "port-version": 0 }, { "git-tree": "10d137aa21adc696f8469d49f67b90ce0d50e1a1", "version-string": "20210324.2", "port-version": 1 }, { "git-tree": "231cc80bbfb1e54466799ddb6a94dc6d15e7d39b", "version-string": "20210324.2", "port-version": 0 }, { "git-tree": "bae9c59114a4a2dc396452fb9e988a9da881b4f4", "version-date": "2021-03-24", "port-version": 1 }, { "git-tree": "d58deb5198f8a1d72eafc3e1d6bdb36197fac470", "version-date": "2021-03-24", "port-version": 0 }, { "git-tree": "184230b7622b1be5630f893dcecdaac7acde101f", "version-string": "2020-09-23", "port-version": 3 }, { "git-tree": "1558fdc71dd0f0988cd2a53ba439bed3cc899247", "version-string": "2020-09-23", "port-version": 2 }, { "git-tree": "3d9d65e41e314658c5e18839117ebf7f060b9cb7", "version-string": "2020-09-23", "port-version": 1 }, { "git-tree": "4258e2e692cb3ee0ab68eb253ee8df5296fcc206", "version-string": "2020-09-23", "port-version": 0 }, { "git-tree": "0d4dfbea87f5b8903a5db5ed3ed6851b6e6a3a79", "version-string": "2020-03-03", "port-version": 8 }, { "git-tree": "606b9214364983e5df021d0556dbec5e44f4b0a8", "version-string": "2020-03-03-7", "port-version": 0 }, { "git-tree": "1f8a41353506f308128d9818ce82afefa8f5cbaa", "version-string": "2020-03-03-6", "port-version": 0 }, { "git-tree": "f12f0fd203075e10e997740f9a859ff2afb8aef9", "version-string": "2020-03-03-5", "port-version": 0 }, { "git-tree": "d87b9a5227dc88a046586fad46bdb087c8ee4a8a", "version-string": "2020-03-03-4", "port-version": 0 }, { "git-tree": "574159a94de7e13a16df672d7694747d15b51b6e", "version-string": "2020-03-03-3", "port-version": 0 }, { "git-tree": "83c70111363fd72030199cd4746febd5a3deb86b", "version-string": "2020-03-03-2", "port-version": 0 }, { "git-tree": "3fe1459a1ed06573700901f46c55b8515125bcc8", "version-string": "2020-03-03-1", "port-version": 0 }, { "git-tree": "cb05f05a1ee7fcc5b545e23387c0e97904181a45", "version-string": "2020-03-03", "port-version": 0 }, { "git-tree": "42821eb6795ede2674126dd8a63a8270d625fb71", "version-string": "2019-12-19", "port-version": 0 }, { "git-tree": "67ffa71966b97cce9af682a6ab313077e9e8fdec", "version-string": "2019-05-08-1", "port-version": 0 }, { "git-tree": "b47a07ae7d4bf6245622289ad4f61d8378d4b4d4", "version-string": "2019-05-08", "port-version": 0 }, { "git-tree": "219eed8e70aba774359db6a7305da67f5c37286c", "version-string": "2019-05-07", "port-version": 0 }, { "git-tree": "1290314a9cc3848d55f78ba479a1e8010c3575c1", "version-string": "2019-04-19-1", "port-version": 0 }, { "git-tree": "f4ab7cf4b0d4c7936dd92670bc80d1da7935754d", "version-string": "2019-04-19", "port-version": 0 }, { "git-tree": "d1c95bdf0be59c5169d4585159c3ede6cdd0f648", "version-string": "2019-03-29", "port-version": 0 }, { "git-tree": "0ec930976860b806e67ccd7e317f3409e7312d31", "version-string": "2019_01_30-1", "port-version": 0 }, { "git-tree": "474e0d01ab4f28129b27d8bb206a12f0b6083cf6", "version-string": "2019-01-30", "port-version": 0 }, { "git-tree": "b1dc60998cf959863511719bb8f652415b0c3616", "version-string": "2019-01-09-1", "port-version": 0 }, { "git-tree": "c72de9332fdffd942d9f8faab0d467b4b7a4517d", "version-string": "2018-12-14", "port-version": 0 }, { "git-tree": "a486c9d12f167abdf62e82705f8de0c1d6800b86", "version-string": "2018-11-08-1", "port-version": 0 }, { "git-tree": "6e5c38debfc9ba9095f7b541c4004bc6d91dfb53", "version-string": "2018-11-08", "port-version": 0 }, { "git-tree": "6a7a573563cfb875a1cb6d14ff7a256949206d26", "version-string": "2018-11-01", "port-version": 0 }, { "git-tree": "340bbf898c959ea9873328e54dd4f6243b9f6101", "version-string": "2018-10-25", "port-version": 0 }, { "git-tree": "e58db76030f30c070b6682ceaab92bce107b689c", "version-string": "2018-10-11", "port-version": 0 }, { "git-tree": "389bc4ecb350878ce52467d94de8f15d3faa2465", "version-string": "2018-09-18-3", "port-version": 0 }, { "git-tree": "9014f0fed8d78a07f17f0f31ff979cbc978b455b", "version-string": "2018-09-18", "port-version": 0 }, { "git-tree": "b5fb3ddc7aedb015cce6001f91eada613d5c12f2", "version-string": "2018-08-03", "port-version": 0 }, { "git-tree": "918f4b2105b2b2804e3037eb8cb9ec78442373bd", "version-string": "2018-07-30", "port-version": 0 }, { "git-tree": "f1574d6d5ac00c0eb3c841705c8309e9299ea09a", "version-string": "2018-07-08", "port-version": 0 }, { "git-tree": "ed2c2706442eae786013ac1e96aa1c305e472f0d", "version-string": "2018-07-03", "port-version": 0 }, { "git-tree": "87deb0db1be83281dfa8bdda25d0682039797e3e", "version-string": "2018-07-01", "port-version": 0 }, { "git-tree": "efdfc3d7e6bb0ea93b9ab714d428e328cd387e00", "version-string": "2018-06-15", "port-version": 0 }, { "git-tree": "221188807a3daefbdd47860678e3d694a75881f6", "version-string": "2018-06-12-1", "port-version": 0 }, { "git-tree": "efe7369a1c9660b854d72fbfc236a7c7853160f9", "version-string": "2018-05-01-1", "port-version": 0 }, { "git-tree": "86be3d78ea2cda31298e855723eeabc1e01956d8", "version-string": "2018-04-25-1", "port-version": 0 }, { "git-tree": "8542937b2ad319fac2b555dff1db37158efe0f9d", "version-string": "2018-04-12", "port-version": 0 }, { "git-tree": "cfbabf336133d3277c875863885aeb21bbe94672", "version-string": "2018-04-09", "port-version": 0 }, { "git-tree": "fe36a137929999662114548bb9cb805300f9f7f4", "version-string": "2018-04-05", "port-version": 0 }, { "git-tree": "8271c3e6bb3cd27ffffff70d044dedeadcabce5e", "version-string": "2018-04-02", "port-version": 0 }, { "git-tree": "9b7bd36ba59ae3d43ec88e8f31bccb3820147d90", "version-string": "2018-03-29", "port-version": 0 }, { "git-tree": "fe36d92dbdc2c773ee0808305af8bb04c7f7e1ae", "version-string": "2018-03-27", "port-version": 0 }, { "git-tree": "f9206e416a8f76f9cfdcb34e18ebdc6364a68e09", "version-string": "2018-03-23", "port-version": 0 }, { "git-tree": "d974de4bf17feeff3b1dd02938ce71c4faa0dae5", "version-string": "2018-03-20", "port-version": 0 }, { "git-tree": "9c62ecef7e2c6fd477828349bd479ff8ae7829ff", "version-string": "2018-03-17", "port-version": 0 }, { "git-tree": "68068406842e8cadd24cec3d4fa92e4a4c5a1762", "version-string": "2018-03-14", "port-version": 0 }, { "git-tree": "4c47db1ff8f8cc3667f50479330149ce74fd51ea", "version-string": "2018-03-13", "port-version": 0 }, { "git-tree": "8171362241e62f412834c7bb2a8f32645479f3a2", "version-string": "2018-03-07", "port-version": 0 }, { "git-tree": "ad7f8d103d0150e9f0d26a8b15d3d254366dcf99", "version-string": "2018-03-02", "port-version": 0 }, { "git-tree": "f937714f50ad98cbfe320864d1f91aaba042ba43", "version-string": "2018-2-23", "port-version": 0 }, { "git-tree": "21c19b70eb5a2e072cbbc143834a70210ed2f60f", "version-string": "2018-2-5", "port-version": 0 }, { "git-tree": "6c87b15fce15d6781c993ce619fa1cd8ca34cb6e", "version-string": "2017-11-10-1", "port-version": 0 }, { "git-tree": "76598c99218db15f5e300e26ec75e29e8c4b8e10", "version-string": "2017-11-10", "port-version": 0 }, { "git-tree": "84bd3ac433569058fe7e58defc219e939917daab", "version-string": "2017-10-14", "port-version": 0 }, { "git-tree": "01ef56b603dac7b3e3bbefac09df439e2d159219", "version-string": "2017-09-28", "port-version": 0 } ] } ================================================ FILE: versions/a-/absent.json ================================================ { "versions": [ { "git-tree": "84a42adaeabc3fb5db1b9f8c4bb6c4155db57d17", "version": "0.3.1", "port-version": 3 }, { "git-tree": "4245977c7070822c223161421a31aa6fe5042017", "version-string": "0.3.1", "port-version": 2 }, { "git-tree": "d1f1f8e5f036e686e2a7881d4b8594f737196090", "version-string": "0.3.1", "port-version": 1 }, { "git-tree": "872663f3498a2b8f0a6d0e0503c4c2838438b42d", "version-string": "0.3.1", "port-version": 0 }, { "git-tree": "547cd60c3353637f8124cc2a2f4c8c1f82c3b216", "version-string": "0.3.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/abumq-ripe.json ================================================ { "versions": [ { "git-tree": "7e5eea2a04bcd113ca20704d97d0c90c2a85e0b7", "version": "4.2.2", "port-version": 1 }, { "git-tree": "8bb7c9a6fc877e4ec27501bc792d4a79be348fff", "version": "4.2.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/ace.json ================================================ { "versions": [ { "git-tree": "1ed0e66d8367b7b26695923ba6e903190be5505a", "version": "8.0.5", "port-version": 0 }, { "git-tree": "e9d0e71c123c3b21ae099f0d1b42c5d405529787", "version": "8.0.4", "port-version": 0 }, { "git-tree": "2bff5561eeb495d056768eb8454e4b1cf9978166", "version": "8.0.3", "port-version": 0 }, { "git-tree": "97982361e15d6df0af15643dc1a94307473b2524", "version": "8.0.2", "port-version": 1 }, { "git-tree": "57c97b8e2001326c195e00a81450911cf8bea389", "version": "8.0.2", "port-version": 0 }, { "git-tree": "c16e08c8a66c79088352b1c8c0161fbb998f5ad7", "version": "8.0.1", "port-version": 0 }, { "git-tree": "6536f72ed3c2a3b49a014db1539df4bb95efd53a", "version": "8.0.0", "port-version": 0 }, { "git-tree": "263db908e6fbd28ca7dc7bf9e107470674957f91", "version": "7.1.4", "port-version": 0 }, { "git-tree": "00c6b2eb50cad87d13e5a6a59f38e30cfa954651", "version": "7.1.2", "port-version": 1 }, { "git-tree": "696c1096e0de3cd394392720aa34e0ceceac52e7", "version": "7.1.2", "port-version": 0 }, { "git-tree": "acebbd833daa493d4e2075ce547646719d8cd080", "version": "7.1.1", "port-version": 2 }, { "git-tree": "b9ee0ab32f4cbb2e1df0b0b060e0691e5e684261", "version": "7.1.1", "port-version": 1 }, { "git-tree": "a8efd3ae98a66b7cb6de80d09db896b13a6300e7", "version": "7.1.1", "port-version": 0 }, { "git-tree": "df4ee7b5111a86e0bc99f45b39447bff68d102bd", "version": "7.1.0", "port-version": 1 }, { "git-tree": "9a2a1876f2f625494b16da42b27ace343255d691", "version": "7.1.0", "port-version": 0 }, { "git-tree": "25ea14090fceba8ae684e0c6ab047a719250ef56", "version": "7.0.11", "port-version": 2 }, { "git-tree": "055cdc76b023b781dec64b9b93bbeb8e807c9fda", "version": "7.0.11", "port-version": 1 }, { "git-tree": "15d0445ba1511e35f0db4eaa09d75516529d6b92", "version": "7.0.11", "port-version": 0 }, { "git-tree": "8bdeb0d1434ffdf14bad59ba83c46175ca86c269", "version": "7.0.10", "port-version": 1 }, { "git-tree": "071572f946d1073390824598caf6484b6a0fdcbf", "version": "7.0.10", "port-version": 0 }, { "git-tree": "a22887d1c18c9aa6dddf95aecf25c7595d071ca3", "version": "7.0.8", "port-version": 0 }, { "git-tree": "d20fc0a9eac1744ff9fb5c5427eade58234e35c9", "version": "7.0.6", "port-version": 3 }, { "git-tree": "0ad9c09c1663f5264f5bf5dcbe1d402618973144", "version": "7.0.6", "port-version": 2 }, { "git-tree": "cac33553b152f59e730715fcc1bae263bb037862", "version": "7.0.6", "port-version": 1 }, { "git-tree": "c851425112d4af710db29d482e43a15ade7ee463", "version": "7.0.6", "port-version": 0 }, { "git-tree": "2fdbe23020728d91dbae5249ed04b42b4b882a87", "version": "7.0.5", "port-version": 3 }, { "git-tree": "1801922b3e4808edcd0b55b6a800bbb1c01687a6", "version": "7.0.5", "port-version": 2 }, { "git-tree": "036533c7b1153d148040334e7195557ce41265e9", "version": "7.0.5", "port-version": 1 }, { "git-tree": "bcc74bda3a7d8c6a93ff6ff5866de20612661fc3", "version": "7.0.5", "port-version": 0 }, { "git-tree": "c58c295074b4a00a80b4e684f9a876ed369cdd49", "version": "7.0.3", "port-version": 3 }, { "git-tree": "67c57059b237310a1907da692fc75acb3d8d2726", "version": "7.0.3", "port-version": 2 }, { "git-tree": "d4585581f988569d9428b693540dbd6f8305be8d", "version": "7.0.3", "port-version": 1 }, { "git-tree": "321d63a1abf3c6c213c8870bb658ee842a70ede7", "version-string": "7.0.3", "port-version": 0 }, { "git-tree": "f29d3acc8eb434569566d4300239ab584b32a3c5", "version-string": "7.0.2", "port-version": 0 }, { "git-tree": "f78fceaf77115253b6aac710881d0d8f705fead6", "version-string": "7.0.1", "port-version": 0 }, { "git-tree": "fefdf115c09a6996c55262dd9a635647dc7d8440", "version-string": "7.0.0", "port-version": 0 }, { "git-tree": "8b23f37d4b1c965115ae6fbe79686605997fe659", "version-string": "6.5.12", "port-version": 1 }, { "git-tree": "3ec027b385329149d469f4425ece1c448170927b", "version-string": "6.5.12", "port-version": 0 }, { "git-tree": "9b700b928b55baac62dc2f808ba366fc065ea085", "version-string": "6.5.11", "port-version": 0 }, { "git-tree": "b46a375bbc0f75a69943381ffdfcd715596a4fae", "version-string": "6.5.10", "port-version": 0 }, { "git-tree": "012391958fe8d6dae00b0ea5a3bb8ea74f2fba85", "version-string": "6.5.9-5", "port-version": 0 }, { "git-tree": "31f1639de02c65ddfe0dc41dee23dd2f7efd9c6f", "version-string": "6.5.9-4", "port-version": 0 }, { "git-tree": "4c5ea2580f2bc59411d4b471f18a4670565e60ef", "version-string": "6.5.9-3", "port-version": 0 }, { "git-tree": "fffc7828cdb75b3bdaac0c2565f8342f210a1f65", "version-string": "6.5.9-2", "port-version": 0 }, { "git-tree": "6de81bc1ec54191accc6d2d88a804eeff228f085", "version-string": "6.5.9-1", "port-version": 0 }, { "git-tree": "5a2c4cff39253124f54b94cae24b3a0b59e42092", "version-string": "6.5.9", "port-version": 0 }, { "git-tree": "ec3d4336726ef2438b0c6f8995827d60380ce55c", "version-string": "6.5.8-1", "port-version": 0 }, { "git-tree": "e32b36ec3da04f9a3e0bc4afc7aa888be3346787", "version-string": "6.5.8", "port-version": 0 }, { "git-tree": "dc23482187fda6854e6893d9ebf6aa2bded873dc", "version-string": "6.5.7-1", "port-version": 0 }, { "git-tree": "08d3e2a110c4bbec49243d1ec0e6a6101a823f84", "version-string": "6.5.7", "port-version": 0 }, { "git-tree": "a4ea954de4af8ebe3adfadc9dcb5dfcfa82a0b51", "version-string": "6.5.6", "port-version": 0 }, { "git-tree": "ef0d308766c81587020090166f0c76178ebda2da", "version-string": "6.5.5-1", "port-version": 0 }, { "git-tree": "46b028f234eeddb808c0a870bc3002f03745d740", "version-string": "6.5.5", "port-version": 0 }, { "git-tree": "57b537f14ea8f6257f7cb13633a57d1338c9e7c8", "version-string": "6.5.4-3", "port-version": 0 }, { "git-tree": "8f66b7308ead7caee78459a54b2e856597e5f36c", "version-string": "6.5.4-2", "port-version": 0 }, { "git-tree": "670773498c9568c9e3607eb9890b630524692136", "version-string": "6.5.4-1", "port-version": 0 }, { "git-tree": "937c1bc48daca299b8569669ffe9b5e56bd01077", "version-string": "6.5.4", "port-version": 0 }, { "git-tree": "33579fee5a02f1e46b1644a63594cfca3b6b205e", "version-string": "6.5.3", "port-version": 0 }, { "git-tree": "313520797b6ca7af4651b4e10b28a6a3660e3b66", "version-string": "6.5.2", "port-version": 0 }, { "git-tree": "f953ba30fe110708ac69e32a95b9a070cdb00a27", "version-string": "6.5.1", "port-version": 0 }, { "git-tree": "cbf8d6ec29760d00f3eb3fb018e2384cf53c5b27", "version-string": "6.5.0", "port-version": 0 }, { "git-tree": "7267b96c7f7828997a37cda85a3e4356e0314b15", "version-string": "6.4.8", "port-version": 0 }, { "git-tree": "4c1478889623de771a7382e6a497c2406f781161", "version-string": "6.4.7", "port-version": 0 }, { "git-tree": "e390406693383b179cb83feb0e6c7ca430233286", "version-string": "6.4.6", "port-version": 0 }, { "git-tree": "e97361d3b4fe96846a1f2e46b95e62d731192a36", "version-string": "6.4.5", "port-version": 0 }, { "git-tree": "3eda18a0204a25e9269a69c60f7980e7710eef74", "version-string": "6.4.4", "port-version": 0 }, { "git-tree": "d4286f1a52e8dfe240663e97d0c70f18597f2515", "version-string": "6.4.3", "port-version": 0 }, { "git-tree": "ee618e8a429a56b4ae412bd43bab859a8592294f", "version-string": "6.4.2", "port-version": 0 }, { "git-tree": "cbfc33d5980b991b984c2877a2c39fbcaca40c6f", "version-string": "6.4.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/acl.json ================================================ { "versions": [ { "git-tree": "e4d86cef4772270a6ed538c674ad797132a827b3", "version-semver": "2.3.2", "port-version": 1 }, { "git-tree": "eb604826193ba4179f82e2279639c996321551df", "version-semver": "2.3.2", "port-version": 0 }, { "git-tree": "2d8c536397cb3a1f7c8979db3df870ae53a439cf", "version-semver": "2.3.1", "port-version": 2 }, { "git-tree": "4c930bf34406e76819ad7b83ff26536e64ad09f0", "version-semver": "2.3.1", "port-version": 1 }, { "git-tree": "011933c793e7b1a34c8fbc1722cb594be61fff47", "version-semver": "2.3.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/activemq-cpp.json ================================================ { "versions": [ { "git-tree": "d6ca3b752a28470be0195118f0a1701f0e3289bf", "version-semver": "3.9.5", "port-version": 18 }, { "git-tree": "0066f657df214848cbfd6b991e8ff4a52902e81b", "version-semver": "3.9.5", "port-version": 17 }, { "git-tree": "1644c99e45b2364ea36c0307b4d7171f4717ccdc", "version-semver": "3.9.5", "port-version": 16 }, { "git-tree": "c1aa825d176f58217f5fe94a3386923ffe2f924e", "version-semver": "3.9.5", "port-version": 15 }, { "git-tree": "7af309821bf9e2fdfaaf67e38eae1a073b4d1acc", "version-semver": "3.9.5", "port-version": 14 }, { "git-tree": "75c1e838f461bba7a78802919b2ec16bdbfd154e", "version-semver": "3.9.5", "port-version": 13 }, { "git-tree": "d8cbff606d12daa3bf08a8fa623c2d524f1e05e5", "version-semver": "3.9.5", "port-version": 12 }, { "git-tree": "8674469ca3e9968a8473861000056e09a190ced4", "version-semver": "3.9.5", "port-version": 11 }, { "git-tree": "2cf2310a238e646e62043be2f553332d8bd4c171", "version-semver": "3.9.5", "port-version": 10 }, { "git-tree": "4f5d3901f612afe54e714fb14e47d343822e398e", "version-semver": "3.9.5", "port-version": 9 }, { "git-tree": "ec8c68847a3d3950cec058e76a3963fac34fd682", "version-semver": "3.9.5", "port-version": 8 }, { "git-tree": "531d21bab7c2d9e9e2ecb1c84e6cf9f1c6173a51", "version-semver": "3.9.5", "port-version": 7 }, { "git-tree": "0d1c131172bea536490960f632ac287b3db73edb", "version-semver": "3.9.5", "port-version": 6 }, { "git-tree": "bce9f87e7df6f4e8a9c3121018ffc032e3d2603e", "version-semver": "3.9.5", "port-version": 5 }, { "git-tree": "13f5f938c4d12bf4a62061f9891f77e7fc03fc23", "version-string": "3.9.5", "port-version": 4 }, { "git-tree": "edc82536f9d433e0f473a11a534b1e443e9ea3f4", "version-string": "3.9.5-3", "port-version": 0 }, { "git-tree": "a00bfbcafac2b0c183530c0cd0ed9e399bf2889c", "version-string": "3.9.5-2", "port-version": 0 }, { "git-tree": "06fc338f511f5f31eb5e823bb7de4db82a32ba5e", "version-string": "3.9.5-1", "port-version": 0 }, { "git-tree": "492c064ceb9259a0299ab04df98e0ea8efe35725", "version-string": "3.9.5", "port-version": 0 } ] } ================================================ FILE: versions/a-/ada-idna.json ================================================ { "versions": [ { "git-tree": "6ec229748041b96c68657690d2c85ee9981de1d6", "version": "0.4.0", "port-version": 0 }, { "git-tree": "29c19b994e4c4c26d59474c2ac18c137f1ca4baf", "version": "0.3.4", "port-version": 0 }, { "git-tree": "7c74dda0a2da1ded40b16efad9c84ab361eb6980", "version": "0.3.3", "port-version": 0 }, { "git-tree": "08833326cf37f9782d88c2918e55ea31570647a1", "version": "0.3.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/ada-url.json ================================================ { "versions": [ { "git-tree": "fed3eedd1ed72a3675701ee932b4b1d85e568e23", "version": "3.4.3", "port-version": 0 }, { "git-tree": "0908665d8e819ea87f996129c5fd5ef817b8d8e3", "version": "3.4.2", "port-version": 0 }, { "git-tree": "429e4c0653f366796a18b8567d99a69679a54865", "version": "3.4.1", "port-version": 0 }, { "git-tree": "09166486a401aa7efa9efb4f221c6859d7caab2c", "version": "3.3.0", "port-version": 0 }, { "git-tree": "166f7155664622c0d9d2bc80c53cb423e6da5ecf", "version": "3.2.7", "port-version": 0 }, { "git-tree": "f7c6eed320a0f1dc3c85979861af028e4bdae941", "version": "3.2.6", "port-version": 0 }, { "git-tree": "c4cfeb5d2974b3623e93d0fdf0489048970fc26a", "version": "3.2.5", "port-version": 0 }, { "git-tree": "be73d065f868d20ae12cc1b8efe0b4fce71f6735", "version": "3.2.4", "port-version": 0 }, { "git-tree": "79ebef636dc01be75318d3dcb1417d7f9d803222", "version": "3.2.2", "port-version": 0 }, { "git-tree": "03a88e9522fc4ee160fac9d1cf44c6a0be6db081", "version": "3.2.1", "port-version": 0 }, { "git-tree": "6732545eab9177946f7c1407e8d5a172bb8ea925", "version": "3.1.3", "port-version": 0 }, { "git-tree": "f54e28b057c39b440deb728045837eade4429b19", "version": "3.1.1", "port-version": 1 }, { "git-tree": "28c5463040101be137c2484cb58eac89bfe17183", "version": "3.1.1", "port-version": 0 }, { "git-tree": "3e8535729a05187fa28a6a7c560dbdb6cbe22fd0", "version": "3.1.0", "port-version": 0 }, { "git-tree": "ca729da9e664e3a59d88115c9e8a8d59b775801c", "version": "2.9.2", "port-version": 0 }, { "git-tree": "2587b45a68dd1af9394ffb47b1e517ec04a619e7", "version": "2.9.1", "port-version": 0 }, { "git-tree": "71bc8577d2e9a0e2be09fd775ab224a28f9c9e0e", "version": "2.7.7", "port-version": 0 }, { "git-tree": "bb2fecfc860c0e8a6483de55069b826d8c556004", "version": "2.7.6", "port-version": 0 }, { "git-tree": "da619020bc25fc94014a434ab3e2ea77937d00f8", "version": "2.7.4", "port-version": 0 }, { "git-tree": "793a12bdf6a056b11297c61d8129764722fd04b0", "version": "2.6.8", "port-version": 0 }, { "git-tree": "5eeb54c3da6362aa30bddf522b944e1e95bdc005", "version": "2.6.0", "port-version": 0 }, { "git-tree": "e613c15954b7650fd68c9f46109ba536dad6a27a", "version": "2.5.1", "port-version": 0 }, { "git-tree": "184ab96a9e448d759aafb20f540502f43b5fc7f9", "version": "2.4.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/ade.json ================================================ { "versions": [ { "git-tree": "d2d23c424fb9eb6516838385d3d1098136b1ef11", "version-string": "0.1.2e", "port-version": 1 }, { "git-tree": "e658616b3855a8c73f0b86ec27b703b9dbc040a1", "version-string": "0.1.2e", "port-version": 0 }, { "git-tree": "005ca3815ef985e0e10d716652be95e7775cf8de", "version-string": "0.1.2d", "port-version": 0 }, { "git-tree": "c42175dddb51914574ff7fdcb8f653ed342f8ff2", "version-string": "0.1.2c", "port-version": 0 }, { "git-tree": "be78a5027373a1ff6c75587da2aa96126c832b1c", "version": "0.1.2", "port-version": 0 }, { "git-tree": "a1fe12280de42d63d57dd77fd43ac40a7840bae5", "version-string": "0.1.1f", "port-version": 3 }, { "git-tree": "ca6a81fb330a77f6aa4c58b63af7efcbe1643e62", "version-string": "0.1.1f", "port-version": 2 }, { "git-tree": "91083eb87a39190e6c0296d72931a8d39edcc7cd", "version-string": "0.1.1f", "port-version": 1 }, { "git-tree": "e767fb59fbab737caf770f1aec618a17b503c321", "version-string": "0.1.1f", "port-version": 0 }, { "git-tree": "c03d856ae43b5442e4b5b5e90068832b29e46aa7", "version-string": "0.1.1e", "port-version": 0 }, { "git-tree": "85edf1c81b1a1127728e98c1b408a36f021877a3", "version-string": "0.1.1d", "port-version": 0 } ] } ================================================ FILE: versions/a-/adios2.json ================================================ { "versions": [ { "git-tree": "0735c00783c947889dca9782995411e5be690213", "version": "2.9.2", "port-version": 0 }, { "git-tree": "fac4ec886b3d46f0a48ee44988fc8224bce59ad7", "version": "2.8.3", "port-version": 1 }, { "git-tree": "1a832feea61b7166bf688a246cda2f7c038aeeac", "version": "2.8.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/advobfuscator.json ================================================ { "versions": [ { "git-tree": "22f546c6d768ba3d538e82dacff9c5b27f5a36f8", "version": "2.1.1", "port-version": 0 }, { "git-tree": "c241d092a06888dba3a352ae22db508a55d58c6e", "version": "2.1", "port-version": 0 }, { "git-tree": "c2b62f4dec8c15ff80008d187ca640ec844679cf", "version-date": "2020-06-26", "port-version": 0 } ] } ================================================ FILE: versions/a-/aeron.json ================================================ { "versions": [ { "git-tree": "ba695358d7e176a72044321e0fc79bf4c6993755", "version": "1.50.3", "port-version": 0 }, { "git-tree": "2eee19ef32a9ac3d618316045641b2bdaa5ce0fc", "version": "1.50.2", "port-version": 0 }, { "git-tree": "260a9c8e2961db374a535bbb3533b909f12fb615", "version": "1.50.1", "port-version": 0 }, { "git-tree": "c97b0811df0fb92977a80ee98b10da0777bee14e", "version": "1.50.0", "port-version": 1 }, { "git-tree": "936aefc7566d95f7234b2d57c8878a1253220ee7", "version": "1.50.0", "port-version": 0 }, { "git-tree": "99b549362720ba9d2df482b3e21b9009a4f5f94b", "version": "1.49.3", "port-version": 2 }, { "git-tree": "c7c0110b039da7b02fbf0a42de05428df118d56a", "version": "1.49.3", "port-version": 1 }, { "git-tree": "44788413f50414d098289891dfcdc63f664ef067", "version": "1.49.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/air-ctl.json ================================================ { "versions": [ { "git-tree": "64e71578e1de4345d83acbe731b524acc7228bed", "version": "1.1.2", "port-version": 3 }, { "git-tree": "a55917cb84ea50c01d4c56c474171fd71952f076", "version": "1.1.2", "port-version": 2 }, { "git-tree": "334287af2a9a10d76ce270d72f4df58e5ddc7434", "version": "1.1.2", "port-version": 1 }, { "git-tree": "7ba95e186d0f375425730cf877027e7e3b9961b1", "version": "1.1.2", "port-version": 0 }, { "git-tree": "9d82351b11318cc51aac7ad71e56cef49c83361b", "version": "1.1.1", "port-version": 0 }, { "git-tree": "a0f9e096458b1d0a77995acdffca30c15466592e", "version": "1.1.0", "port-version": 0 }, { "git-tree": "f903c4c9124f693bab3174cca9bba73ed068bbb4", "version": "1.0.0", "port-version": 1 }, { "git-tree": "7f997c28da50f2d8c86639da2c7beab3a00189ce", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/aixlog.json ================================================ { "versions": [ { "git-tree": "dd7db7eb82342728ee7a0e93ce1d446d834232c2", "version": "1.5.0", "port-version": 1 }, { "git-tree": "ca812db174980bd0007da672c5ec4dd52134bf73", "version-semver": "1.5.0", "port-version": 0 }, { "git-tree": "b75ca5f2a37de51c0e0b369a124fb0ae5a05d323", "version-string": "1.4.0", "port-version": 0 }, { "git-tree": "f9146c4e4e54b27fc70131dc02b4ccc8f215c56e", "version-string": "1.2.4", "port-version": 0 }, { "git-tree": "d5ee8c1580e08da8872ca3725845cb93b0bdd251", "version-string": "1.2.2", "port-version": 0 }, { "git-tree": "cf91ab61a055e89e263e0de41e6da25a968e7904", "version-string": "1.2.1-1", "port-version": 0 }, { "git-tree": "4169bbdf0aca9ef1f6f2f7552e45e308a25f29d7", "version-string": "1.2.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/akali.json ================================================ { "versions": [ { "git-tree": "a0090858a22905c2856b8796f852d1a403081be7", "version": "1.43", "port-version": 1 }, { "git-tree": "5e97f0348cd1def4c594fda413436a01609923ec", "version": "1.43", "port-version": 0 }, { "git-tree": "44ab167f077406e598eb19f7e48f10b638bc1547", "version-string": "1.42", "port-version": 3 }, { "git-tree": "1b94b1623b0778525e405410cee7d6d069ac56ca", "version-string": "1.42", "port-version": 2 }, { "git-tree": "29f022ed905404ee53af3197de0f01afb22c15dd", "version-string": "1.42", "port-version": 1 }, { "git-tree": "853f2563be7dfce5e0d8cd341b6d7bb0bc168dc3", "version-string": "1.42", "port-version": 0 }, { "git-tree": "1ad229b03a2a137effc57a038a0483d0bcf923b2", "version-string": "1.41", "port-version": 1 }, { "git-tree": "0308674259f709ce412a0a960fd014cffecdfd08", "version-string": "1.41", "port-version": 0 }, { "git-tree": "4234ffec7e9a98ba5950636e8930c29b52f4e03d", "version-string": "1.39", "port-version": 0 } ] } ================================================ FILE: versions/a-/aklomp-base64.json ================================================ { "versions": [ { "git-tree": "32391e2fcbfe5714ed3b2f6aa8023646c238c1ce", "version": "0.5.2", "port-version": 0 }, { "git-tree": "ed49981a592ca849cbb3274159c8ed21392e73df", "version": "0.5.1", "port-version": 0 }, { "git-tree": "4785f09421c2636709249ad7a555c7420b9bcfe8", "version-date": "2023-01-06", "port-version": 1 }, { "git-tree": "f73a4f50ab2a515962e939dad478916a5f44842f", "version-date": "2023-01-06", "port-version": 0 } ] } ================================================ FILE: versions/a-/alac-decoder.json ================================================ { "versions": [ { "git-tree": "2812ce639bc0f6f2c8fbb93f348d721b1c2df14d", "version": "0.2", "port-version": 7 }, { "git-tree": "4b02da71863a4f88b910c23f05909e2cbb9ab9cc", "version-string": "0.2", "port-version": 6 }, { "git-tree": "e4bc6809ac5b52236ec0ea4d48cfa904f493ab21", "version-string": "0.2", "port-version": 5 }, { "git-tree": "1ad081bc124fafdd099eca78f1a7f9a0ea99cc61", "version-string": "0.2", "port-version": 4 }, { "git-tree": "b9b65f791964c956a1fa9b5a948c09efdfa6ceb5", "version-string": "0.2-3", "port-version": 0 }, { "git-tree": "f4ec04b6d879e15cd93cc25270989e36e7e95d14", "version-string": "0.2-1", "port-version": 0 }, { "git-tree": "86b3b9d0796b7ee5fabb737fd6802aa76b6c5adc", "version-string": "0.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/alac.json ================================================ { "versions": [ { "git-tree": "88a9f4cee49d77de933447fad12491899c59ab70", "version": "2017-11-03-c38887c5", "port-version": 4 }, { "git-tree": "71902d13114760bafba205b06f2c7e0ff65a4974", "version-string": "2017-11-03-c38887c5", "port-version": 3 }, { "git-tree": "4b325e9f42af74eca82fae2a845a5108b06b44ce", "version-string": "2017-11-03-c38887c5", "port-version": 2 }, { "git-tree": "2a3cdc11a3c1cdcfc947dfd0f3fa18c40e4091b6", "version-string": "2017-11-03-c38887c5-1", "port-version": 0 }, { "git-tree": "20da8404615cb13666efac35d2187d3c73ee3eb0", "version-string": "2017-11-03-c38887c5", "port-version": 0 } ] } ================================================ FILE: versions/a-/alembic.json ================================================ { "versions": [ { "git-tree": "cd41108665da5fd59679c198fb6103bd28250b96", "version": "1.8.10", "port-version": 1 }, { "git-tree": "816ebf879602f9c3165374aad3fbe6746823d531", "version": "1.8.10", "port-version": 0 }, { "git-tree": "a007a23bd2a7017840023c47c4b2cf8e88f76df6", "version": "1.8.8", "port-version": 0 }, { "git-tree": "f65e2f9fbe3059405f79ec9ea833a52ccf098328", "version": "1.8.7", "port-version": 0 }, { "git-tree": "ca5f035424c794b8cde9d41c7103b612e912a275", "version": "1.8.6", "port-version": 0 }, { "git-tree": "5cb4b9d32a6098f48e3d0a75ddd7eaae7a7df085", "version": "1.8.5", "port-version": 0 }, { "git-tree": "16bef528ef38e7426a333739878188d9ca909bc5", "version": "1.8.3", "port-version": 1 }, { "git-tree": "8cb082c36da272a988b08fe0c4c638ff62cb1ad2", "version": "1.8.3", "port-version": 0 }, { "git-tree": "058a9ce893dbaf6ad6d2743b47a9c633eff3798a", "version": "1.7.16", "port-version": 1 }, { "git-tree": "41cf27d8f6792056c456e4640f20f13a016db205", "version-string": "1.7.16", "port-version": 0 }, { "git-tree": "f08ae63294c12debee9b5b6f0e1dfc54fb56b023", "version-string": "1.7.15", "port-version": 0 }, { "git-tree": "6f7aff420c086cead0dfc14409393d614fe3cfb2", "version-string": "1.7.13", "port-version": 1 }, { "git-tree": "3d9b782158bdfe5148bbf86c53fecaff6bb8671f", "version-string": "1.7.13", "port-version": 0 }, { "git-tree": "86a501ebd47e6eb4d809d9310bf6525f59e2d555", "version-string": "1.7.12", "port-version": 2 }, { "git-tree": "c8ba9dbbcf4ebff8fc86253f361eb3f01d51613f", "version-string": "1.7.12-1", "port-version": 0 }, { "git-tree": "bc2cd117c898e2385afdf00dd3cef8aaf25fcb46", "version-string": "1.7.12", "port-version": 0 }, { "git-tree": "0a82b1d59bd85a0d2e46e5688ac5bddf7b5abcae", "version-string": "1.7.11-6", "port-version": 0 }, { "git-tree": "16238952f8ea025df971839c2009cd49a0a3fac9", "version-string": "1.7.11-5", "port-version": 0 }, { "git-tree": "4bb5f9ced085059ea62e03fa39efaca0fbea4247", "version-string": "1.7.11-4", "port-version": 0 }, { "git-tree": "206e194854b1a72bccf94677aa673a0a4730f320", "version-string": "1.7.11-3", "port-version": 0 }, { "git-tree": "85399a4537af6b4110360a7027afe6d1a86df9df", "version-string": "1.7.11-2", "port-version": 0 }, { "git-tree": "8a431c2ee4fc4a8bd209f1c0f661fec6c5250676", "version-string": "1.7.11", "port-version": 0 }, { "git-tree": "3a6833d65d3406fd17cf5126d3de8e7fab59e676", "version-string": "1.7.10-1", "port-version": 0 }, { "git-tree": "0433eda538d2ab58aa0ad8eb8bfa3c72d0ff5682", "version-string": "1.7.10", "port-version": 0 }, { "git-tree": "37ad7480d4e2dca5c8180021eeb3a9db5be5f2a6", "version-string": "1.7.9", "port-version": 0 }, { "git-tree": "daea41d6d1e48d768611dbb833e8adb91cba30a2", "version-string": "1.7.8", "port-version": 0 }, { "git-tree": "1d59b1308b33189843d14214666c1f9a3e998236", "version-string": "1.7.7", "port-version": 0 }, { "git-tree": "697c6b8d21e916b2d539bc7e5d2139f92057b5c7", "version-string": "1.7.6", "port-version": 0 }, { "git-tree": "bf8386a43c79b0beb98e843b4da166f5f4614758", "version-string": "1.7.5", "port-version": 0 }, { "git-tree": "ba53b637017e402f8750554c50b77fec21b72533", "version-string": "1.7.4-1", "port-version": 0 }, { "git-tree": "60d00b25f144d07e8a6eaf07008badb5a15d1477", "version-string": "1.7.4", "port-version": 0 }, { "git-tree": "42aeaa7b70b25b9b110501a50358e2cc829c1993", "version-string": "1.7.1-4", "port-version": 0 }, { "git-tree": "393b64e63168c81e50720f718fb1dcb2c1e5dabc", "version-string": "1.7.1-3", "port-version": 0 }, { "git-tree": "0a6d62e1eb4b65721c34b0d836d3c99d42f8fb14", "version-string": "1.7.1-2", "port-version": 0 }, { "git-tree": "7945c22ccf204610e393913e2b8d9c592d9defd1", "version-string": "1.7.1-1", "port-version": 0 }, { "git-tree": "654e296aa8e829a2df738c57faee9bdd008756aa", "version-string": "1.7.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aliyun-oss-c-sdk.json ================================================ { "versions": [ { "git-tree": "5429486d67b62ed56922feb1824b8521c39274e2", "version": "3.11.2", "port-version": 0 }, { "git-tree": "680bc0ab5a25c9d9ef3191d9ba9f7fe2ae3829b7", "version": "3.10.1", "port-version": 0 }, { "git-tree": "4a6710098ecdb98956fdde32c883a45e2abae333", "version": "3.10.0", "port-version": 3 }, { "git-tree": "a05ad4fd2bde4c19dccdbfd66c18130e5bed7902", "version-string": "3.10.0", "port-version": 2 }, { "git-tree": "52b0340f3b53966018738d256f74a64c0c90ee5e", "version-string": "3.10.0", "port-version": 1 }, { "git-tree": "bae10b829d8e75fd53eb0027db88d2bab6caff5f", "version-string": "3.10.0", "port-version": 0 }, { "git-tree": "e6eaae5aaee3342a31902a178801d6fa0b4ba3ea", "version-string": "3.9.1", "port-version": 0 }, { "git-tree": "cd4515c0c4a3f0908014e280d2ce3672d9e1dda6", "version-string": "3.7.1-1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aliyun-oss-cpp-sdk.json ================================================ { "versions": [ { "git-tree": "1f7e00a365ffd5a3b9a805418314faae13794fed", "version": "1.10.1", "port-version": 0 }, { "git-tree": "0a3a24c8c70b6a27060c31a2be0a748bff22ef52", "version": "1.10.0", "port-version": 4 }, { "git-tree": "0911047ac61bf556c75c153d23ab0169990a4f77", "version": "1.10.0", "port-version": 3 }, { "git-tree": "ca0c99c6cdc51c43705f89baf7ee8a4e61b25fe2", "version": "1.10.0", "port-version": 2 }, { "git-tree": "732b0995e1fae92ab6192bbf41f0e40a459d9ac7", "version": "1.10.0", "port-version": 1 }, { "git-tree": "cb847011bd7b34fe9ce8ce2ebf15141de1588003", "version": "1.10.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/allegro5.json ================================================ { "versions": [ { "git-tree": "7662df4dbaff685fec55ee931842859485184f09", "version": "5.2.10.0", "port-version": 1 }, { "git-tree": "68bc881b999ac9abf8e5a6d7324ab4292a53f7fb", "version": "5.2.10.0", "port-version": 0 }, { "git-tree": "27bd05e0bc710ebb1303d8b59d640bdf8f361497", "version": "5.2.9.1", "port-version": 1 }, { "git-tree": "1162ff1bdc43ad43036a30af2ca8214eeea566d9", "version": "5.2.9.1", "port-version": 0 }, { "git-tree": "93860d1ef432006526823ace61750eb6b0e86ec2", "version": "5.2.9.0", "port-version": 0 }, { "git-tree": "a50ae858c1ef5e8d94fa850e2857b7a449cc5f55", "version": "5.2.6.0", "port-version": 4 }, { "git-tree": "09b555503c34ca7a0052436996b19bb4deb5d701", "version": "5.2.6.0", "port-version": 3 }, { "git-tree": "47c415593bf3de3c28afc1d476d5eab92aa8efb2", "version": "5.2.6.0", "port-version": 2 }, { "git-tree": "b851d9d0babf00bdd273eec402aea26e826cb517", "version": "5.2.6.0", "port-version": 1 }, { "git-tree": "ffd182fe5ba2979356a59dee5cb050e22ef500e9", "version-string": "5.2.6.0", "port-version": 0 }, { "git-tree": "ef65b320c2e3883754864c5d48cbe13c87e6c7fc", "version-string": "5.2.5.0", "port-version": 0 }, { "git-tree": "8500276a3ca03004cb29567610c290c9a0721dae", "version-string": "5.2.4.0", "port-version": 0 }, { "git-tree": "2274709c94ff5ff042e9897edf2f733b27a0f6f4", "version-string": "5.2.3.0", "port-version": 0 }, { "git-tree": "e0420072b463baa2a4ce2bb822cfe38abbb74b8e", "version-string": "5.2.2.0-1", "port-version": 0 }, { "git-tree": "3bdf60902a17f71f5bf5b76d3ba9e30f0f77de26", "version-string": "5.2.2.0", "port-version": 0 }, { "git-tree": "28877a283e94840b4c6af34edca91fd657e36f21", "version-string": "5.2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/alpaca.json ================================================ { "versions": [ { "git-tree": "9533d25c8a1eabb24839c4ed613d10be95101b4b", "version": "0.2.1", "port-version": 0 }, { "git-tree": "d8a880634d8e1b510b01820aea947721639c0d14", "version": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/alpaka.json ================================================ { "versions": [ { "git-tree": "271308bed270593cfde73f833cb034f384cbc241", "version": "2.1.1", "port-version": 0 }, { "git-tree": "905ab80fdc77913d16ef196b3ef41d73e250edc8", "version": "2.0.0", "port-version": 0 }, { "git-tree": "cd185626a62396b8160dae226d4f8aa89c8b4822", "version": "1.2.0", "port-version": 0 }, { "git-tree": "61ecfc7faca32c8f1918d7e78fa7b31db5352290", "version": "1.1.0", "port-version": 0 }, { "git-tree": "8de339e1b25c07aa1f0eda93117730b60da400e5", "version": "1.0.0", "port-version": 0 }, { "git-tree": "7149b432a8cfdb7406ce5979d11c11c5caa8fe3f", "version": "0.9.0", "port-version": 1 }, { "git-tree": "fa2a5d53283561fed784514fd0063badc589eb39", "version": "0.9.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/alsa.json ================================================ { "versions": [ { "git-tree": "f816bc653d9b4942df8c704837de9d88c1ae330f", "version": "1.2.15.3", "port-version": 1 }, { "git-tree": "053cc16615541eea1435bf777fdde7f17bdf56f4", "version": "1.2.15.3", "port-version": 0 }, { "git-tree": "3ada7fb50cf76c48bc6455ccaf2f1250c1db0669", "version": "1.2.14", "port-version": 1 }, { "git-tree": "9223bc5a763317f67624c922cd4943629c7b4646", "version": "1.2.14", "port-version": 0 }, { "git-tree": "c80dafc2416d968c6f9060a12de375b70457fb57", "version": "1.2.13", "port-version": 1 }, { "git-tree": "5dd0d76c964da48ce085c9a66ad00463c0607916", "version": "1.2.13", "port-version": 0 }, { "git-tree": "7ca33fd13a8aadfd37ec4696181eb98d0226a738", "version": "1.2.11", "port-version": 2 }, { "git-tree": "78ad470e54eac71113219036519aa55ff3489294", "version": "1.2.11", "port-version": 1 }, { "git-tree": "1ea8f5d1e2f27c55e80e1bcce24aacc37849074e", "version": "1.2.11", "port-version": 0 }, { "git-tree": "d3fa8b1fd27e767f429d0736b6636df796e2c335", "version": "1.2.10", "port-version": 0 }, { "git-tree": "18d67806b319dea0e3c2e9c921a1864901af1d22", "version": "1.2.8", "port-version": 1 }, { "git-tree": "1e4f79a1681c6c40c4b500bf4c8c5d3746916bab", "version": "1.2.8", "port-version": 0 }, { "git-tree": "658bd201adf1ade8dcfceacc5678f4b790a799c8", "version": "1.2.6.1", "port-version": 2 }, { "git-tree": "66750ac0b1a786a2fec12e88ca0e110b3f41d75e", "version": "1.2.6.1", "port-version": 1 }, { "git-tree": "1ce0c3410e25de5357b707dc0f800cf7c3a7f213", "version": "1.2.6.1", "port-version": 0 }, { "git-tree": "03a04f17b2dfb480de15a07b58188b161dbe6dda", "version": "1.2.5.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/amd-adl-sdk.json ================================================ { "versions": [ { "git-tree": "839f4b627dbcc1304fc47f6d3d8d142b80a6206d", "version": "17.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/amd-amf.json ================================================ { "versions": [ { "git-tree": "773d9ad1a04f02b47d3798dd7857e04c25fbbae6", "version": "1.5.0", "port-version": 0 }, { "git-tree": "f2de56dcf603903f753764e5b3cfd413b58ed323", "version": "1.4.36", "port-version": 1 }, { "git-tree": "bd224304fd2caeb6f476511884069744e4b88f8f", "version": "1.4.36", "port-version": 0 }, { "git-tree": "47db5211b49a66cf05a86858cddd41d2c4b5d8a9", "version": "1.4.35", "port-version": 0 }, { "git-tree": "05f431d0e98bedc40b4c5740691259022952e7ba", "version": "1.4.33", "port-version": 1 }, { "git-tree": "e928a59c07245a0a665b008fc7a9d01cf816450c", "version": "1.4.33", "port-version": 0 }, { "git-tree": "1ab17b71ee3b3f99c9a7c83abd3a4cb1c6c5bcfc", "version": "1.4.29", "port-version": 0 }, { "git-tree": "c65d944ff736b48b7b94298ed4627cb49458e7ba", "version": "1.4.26", "port-version": 0 } ] } ================================================ FILE: versions/a-/ampl-asl.json ================================================ { "versions": [ { "git-tree": "cb2f7378859875e2021f69f2ea1542d00a920270", "version": "1.0.1", "port-version": 0 }, { "git-tree": "af475f9134b986c7677f68e74b1658725d60b876", "version-date": "2024-02-01", "port-version": 0 }, { "git-tree": "2a88fb5c85a975bf5c5b49b6d87224b25504553d", "version-date": "2020-11-11", "port-version": 3 }, { "git-tree": "024e7d3399beb537eb371c85181e48f4db51a4b0", "version-string": "2020-11-11", "port-version": 2 }, { "git-tree": "823dcf0d7f897a92269faf1915322c012b281a2a", "version-string": "2020-11-11", "port-version": 1 }, { "git-tree": "f8a838c084e07d088ca9dbe0b6c4d7da091482f1", "version-string": "2020-11-11", "port-version": 0 } ] } ================================================ FILE: versions/a-/ampl-mp.json ================================================ { "versions": [ { "git-tree": "9cf101e1affc823467c0b53d82827ef309f451de", "version": "4.1.0", "port-version": 0 }, { "git-tree": "5d383d7b192993a98f67775f292f9443d041e516", "version-date": "2020-11-11", "port-version": 5 }, { "git-tree": "adc07c10ee68ac3ebb3ea916bc4a62bf1ceaf5cc", "version-date": "2020-11-11", "port-version": 4 }, { "git-tree": "b3bdafa2896aad8990e3886bdd83b8cd5538e7ea", "version-date": "2020-11-11", "port-version": 3 }, { "git-tree": "d52dd1ac4a69a74bb658b52be36c7457ca6049ef", "version-string": "2020-11-11", "port-version": 2 }, { "git-tree": "0363f4dd57d8729a0a6bd3e1c2ca8d424fd59eda", "version-string": "2020-11-11", "port-version": 1 }, { "git-tree": "0517040d73dca1a3da9cb9ed482ba6e6aa27a510", "version-string": "2020-11-11", "port-version": 0 }, { "git-tree": "c4763f69a5b93e96073ec227d63f9b7a174268b4", "version-string": "2019-03-21-1", "port-version": 0 }, { "git-tree": "0ec6a903c79001abe0cfe9edd626573083ff6908", "version-string": "2019-03-21", "port-version": 0 }, { "git-tree": "8ccb4cd94a1f05ae2cef1e2e846b1ddd72a39c68", "version-string": "2019-02-08", "port-version": 0 } ] } ================================================ FILE: versions/a-/amqpcpp.json ================================================ { "versions": [ { "git-tree": "7086249faa1141e03ce8efdafb2ed98a32e909ae", "version": "4.3.27", "port-version": 0 }, { "git-tree": "bebd378cad1feeea8bf45184a105efb18bb59354", "version": "4.3.26", "port-version": 0 }, { "git-tree": "4a0661ec390526889afac4ba693c92ab00a4937c", "version": "4.3.23", "port-version": 0 }, { "git-tree": "cdf5751364452365ad13aeecc8a74bc6ab15076a", "version": "4.3.19", "port-version": 0 }, { "git-tree": "b071aaf9f29af43e9463bcc9a118f4553351eb16", "version": "4.3.15", "port-version": 1 }, { "git-tree": "3f2e1a0132721d9cdb8515d40010eaba97ecc8de", "version": "4.3.15", "port-version": 0 }, { "git-tree": "bb3c11de2e142fc43d0c3bbcddc2a56b563de733", "version": "4.3.14", "port-version": 1 }, { "git-tree": "e17952ad85007dbc08e20711b8f5bd462712e4e0", "version": "4.3.14", "port-version": 0 }, { "git-tree": "7f99b7612476d68b1cd6a026696741da9b90c230", "version-string": "4.3.11", "port-version": 0 }, { "git-tree": "21de530c9f72229e46bff4a9d39036a4e355941e", "version-string": "4.1.7", "port-version": 0 }, { "git-tree": "2ec71510c25ab47c7611d23ffaea4bffa258df61", "version-string": "4.1.5", "port-version": 0 }, { "git-tree": "d0c229f05c0853f33f7b22b64d76c14cc7660bc3", "version-string": "4.1.4", "port-version": 0 }, { "git-tree": "3a3e3eea25a7263461a38c5f21e6d9a2883610e1", "version-string": "4.1.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/anari.json ================================================ { "versions": [ { "git-tree": "f8711e4f387cebff0f79132b29c4ddb09a63f77e", "version": "0.15.0", "port-version": 0 }, { "git-tree": "a988fe0e6db993e29d2628acf456fc8b99e5ea31", "version": "0.14.1", "port-version": 0 }, { "git-tree": "e0a023514ab5a50fb801731a3376cdf260327c01", "version": "0.13.1", "port-version": 0 }, { "git-tree": "9249b201863285edf8d1ac7e7ffa3913b7fe38af", "version": "0.13.0", "port-version": 0 }, { "git-tree": "79e7c099f3d6cd450902494060357691f6fc3896", "version": "0.12.1", "port-version": 0 }, { "git-tree": "b547bbf12d56d4d9f189a14153d93e75c7aa3451", "version": "0.10.0", "port-version": 0 }, { "git-tree": "bb2704cfb92a03677f5d7dfbf1d81f1d924accd3", "version": "0.7.0", "port-version": 1 }, { "git-tree": "cf756ca650e9d72324024441ad48b760fb587f86", "version": "0.7.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/anax.json ================================================ { "versions": [ { "git-tree": "db4b3bfeef52da822588d5bb85a4b3bf9affa80f", "version": "2.1.0", "port-version": 8 }, { "git-tree": "347d15eb157a2bad09742ec97dfc417674936982", "version-string": "2.1.0", "port-version": 7 }, { "git-tree": "561c057f2d0478df1e08b0e07247b8ddf5c8a04a", "version-string": "2.1.0-6", "port-version": 0 }, { "git-tree": "a1cfbdd5189cb5cd4ee7a20087c6dc7014063eeb", "version-string": "2.1.0-5", "port-version": 0 }, { "git-tree": "035862c3dbc640e495e3a37c80984aa45d1cb3cd", "version-string": "2.1.0-4", "port-version": 0 }, { "git-tree": "2bc88f133ecc6dcc53158816cf64a8e15d38cc2e", "version-string": "2.1.0-3", "port-version": 0 }, { "git-tree": "e95be4e570a7e59deb1e1c5d85e6b3a05a94c502", "version-string": "2.1.0-2", "port-version": 0 }, { "git-tree": "6586db19661389cab598aa9c64ed0bbf684959cf", "version-string": "2.1.0-1", "port-version": 0 }, { "git-tree": "e4bdb59bf7b80aa938e901ed3eea5e7b730f9930", "version-string": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/andytech-tiny-crc32c.json ================================================ { "versions": [ { "git-tree": "ac327f66a147c37d1966752ff19a98637c070cc1", "version": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/angelscript.json ================================================ { "versions": [ { "git-tree": "dfa3e0abfe1b7e0f09eb0930df41d258668cb61e", "version": "2.38.0", "port-version": 0 }, { "git-tree": "cb5cf64b9cd72cbcebfb4e68d3e82627541a39c6", "version": "2.37.0", "port-version": 0 }, { "git-tree": "5c1bc126371829227e923c11f029a539a234a483", "version": "2.36.1", "port-version": 1 }, { "git-tree": "e90e0fe54ab8038226b849471fba169157753c19", "version": "2.36.1", "port-version": 0 }, { "git-tree": "579a4c31ad7d7972339105a9c043a3658af5705d", "version": "2.36.0", "port-version": 1 }, { "git-tree": "e82bacd16784a617c44319de8e23d0557f72095f", "version": "2.36.0", "port-version": 0 }, { "git-tree": "4f2a9b2d8cad46707e241ac52565fa50656c0dad", "version": "2.35.1", "port-version": 1 }, { "git-tree": "342bbf5e5b2f9492dc70589d4f73b9ee2990f6d4", "version": "2.35.1", "port-version": 0 }, { "git-tree": "c88c2eec1943cd3f46d8fe2b77f4d75f3d35cba2", "version-string": "2.35.0", "port-version": 0 }, { "git-tree": "bca26a9780ffe5a26b45abb86e05603a4eec0719", "version-string": "2.34.0", "port-version": 0 }, { "git-tree": "f0d6ec2421c37a42be20e6e9c13d6a2f3ceec036", "version-string": "2.33.1-2", "port-version": 0 }, { "git-tree": "d34e5e6016ea62f476fd7c3612dd9cb3eccbc83f", "version-string": "2.33.1-1", "port-version": 0 }, { "git-tree": "9e00224b27ff07b1f5788cc62d60d29b24f8d7ef", "version-string": "2.33.0-1", "port-version": 0 }, { "git-tree": "795c9f8063ea84fb70fa6d0be7564f5637c11696", "version-string": "2.33.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/angle.json ================================================ { "versions": [ { "git-tree": "6eb27c13ec4328ed3d63f058a485a4e213087bda", "version-string": "chromium_7258", "port-version": 2 }, { "git-tree": "165d665818d070431c2889ac2b8f97f006948924", "version-string": "chromium_7258", "port-version": 1 }, { "git-tree": "d344a4b6599e8c2c79256b47ff499a9844ac6334", "version-string": "chromium_7258", "port-version": 0 }, { "git-tree": "025eefba308651be2ae69502477d1201dfdf04ea", "version-string": "chromium_5414", "port-version": 10 }, { "git-tree": "b0e6049d392ece97ba5be00c7c3e4410aa78d3f0", "version-string": "chromium_5414", "port-version": 9 }, { "git-tree": "1729007831807f980abc75357ab0e73f0f9216cf", "version-string": "chromium_5414", "port-version": 8 }, { "git-tree": "b5502570ef18abdcf0535470f3ea6589db70607b", "version-string": "chromium_5414", "port-version": 7 }, { "git-tree": "28f33feb91072e2df5daa5b7e10846db4a6f3a50", "version-string": "chromium_5414", "port-version": 6 }, { "git-tree": "d8849e7cee8eb5754ec1aefba7644bb393863f94", "version-string": "chromium_5414", "port-version": 5 }, { "git-tree": "f5963e0a9c6de152e825e610333e626e8a9df144", "version-string": "chromium_5414", "port-version": 4 }, { "git-tree": "d5671959f9f2a59ecd232c72df54682bb10a14be", "version-string": "chromium_5414", "port-version": 3 }, { "git-tree": "784aa16c1dacc9aedb49de3bd1393bb6ef6b853d", "version-string": "chromium_5414", "port-version": 2 }, { "git-tree": "b9840e4a2d643b94dc27bf1adc2803f16501cadd", "version-string": "chromium_5414", "port-version": 1 }, { "git-tree": "4d21d50c6a69b88182c328b4867a27909fa34b01", "version-string": "chromium_5414", "port-version": 0 }, { "git-tree": "3b82e62ec84b36302f2e1b7a6356811d367dd88f", "version-string": "chromium_4472", "port-version": 8 }, { "git-tree": "96213b303b5b0804d7c8e9b6b94aa3cd3cc90660", "version-string": "chromium_4472", "port-version": 7 }, { "git-tree": "d48bbcf1eba07a4156e745140be81caff95b8757", "version-string": "chromium_4472", "port-version": 6 }, { "git-tree": "1c154e795d3d3c736dbbfec2db72a50aa37fa8f2", "version-string": "chromium_4472", "port-version": 5 }, { "git-tree": "d88baa0c355514a753460f90afb0451434460484", "version-string": "chromium_4472", "port-version": 4 }, { "git-tree": "c3b63c0d8bf584235c057cb40486152ebe3fa0a6", "version-string": "chromium_4472", "port-version": 3 }, { "git-tree": "3c4f08e40691d643044cf9319cef04b4289d4b6f", "version-string": "chromium_4472", "port-version": 2 }, { "git-tree": "d59efcadc61eb7a7be987e4dcc03540490af89b8", "version-string": "chromium_4472", "port-version": 1 }, { "git-tree": "5bd610babb6f0fb15119aa94644494c0dc2bcd2c", "version-string": "chromium_4472", "port-version": 0 }, { "git-tree": "48342ccfb3565a61cc9ed878a2ff422e294b4e56", "version-string": "2020-05-15", "port-version": 2 }, { "git-tree": "936af02bc2517e092035c23ca444a3d638b9a713", "version-string": "2020-05-15-1", "port-version": 0 }, { "git-tree": "cc220213f73cd22cccac6818c2a04c435dd155b3", "version-string": "2020-05-15", "port-version": 0 }, { "git-tree": "0bd711b33715ba2f3b8a90d80ea4f7901ac38910", "version-string": "2019-12-31-2", "port-version": 0 }, { "git-tree": "3ea01e4bcb47f589bd9d828e913139f08f6e15e3", "version-string": "2019-12-31-1", "port-version": 0 }, { "git-tree": "0387e91062e10aeb210189c67dd1cf2059e54c30", "version-string": "2019-12-31", "port-version": 0 }, { "git-tree": "b84ea94a8d1854952309abd8076f399255414cd6", "version-string": "2019-07-19-4", "port-version": 0 }, { "git-tree": "fef408b631525b0ff7ff82e03589c0ea1394c9c0", "version-string": "2019-07-19-3", "port-version": 0 }, { "git-tree": "420036ef2449007a884c9116d16e910af220e000", "version-string": "2019-07-19-2", "port-version": 0 }, { "git-tree": "94ede0abe4a61a85be4988293baf83440b05f57d", "version-string": "2019-07-19-1", "port-version": 0 }, { "git-tree": "686901f127fd4567932e4b9e05e44b8a7b022794", "version-string": "2019-06-13", "port-version": 0 }, { "git-tree": "8fa8c7c513ec3b443f5f9740e87b2c73fe72145b", "version-string": "2019-03-13-c2ee2cc-3", "port-version": 0 }, { "git-tree": "a5f3c934fce4260519e11c95ab00e41d0c093e9f", "version-string": "2019-03-13-c2ee2cc-2", "port-version": 0 }, { "git-tree": "5993d35b9153c81a186199616936ccdda6240cdb", "version-string": "2019-03-13-c2ee2cc-1", "port-version": 0 }, { "git-tree": "1bde1864f6cba3d44ad8652c49c5ea92959ac6d5", "version-string": "2019-03-13-c2ee2cc", "port-version": 0 }, { "git-tree": "7197ae943c2454ebcf38d74fca50596778d142ce", "version-string": "2019-01-14-c2ee2cc", "port-version": 0 }, { "git-tree": "88427126ebabc91a7444ad14acd3e2d1e7338d70", "version-string": "2017-06-14-8d471f-5", "port-version": 0 }, { "git-tree": "f2caf5579a346513dae79103c1ca3fe862fe0348", "version-string": "2017-06-14-8d471f-4", "port-version": 0 }, { "git-tree": "d14e94eecc0b4bbdcbdb37ca09bbb0594b1aa00c", "version-string": "2017-06-14-8d471f-2", "port-version": 0 }, { "git-tree": "9e65a5fce159caa6dfa36d4112d1f160f32abad9", "version-string": "2017-06-14-8d471f-1", "port-version": 0 }, { "git-tree": "7dabf17bc4c33618ff098eb80b18e5837aecd5db", "version-string": "2017-06-14-8d471f", "port-version": 0 } ] } ================================================ FILE: versions/a-/ankurvdev-embedresource.json ================================================ { "versions": [ { "git-tree": "9704a7da260f41b8487527e7d321b4a29ad6b7bd", "version": "0.0.12", "port-version": 0 }, { "git-tree": "e8d07a71c677c057e726ccc85d3376da62eb28e2", "version": "0.0.11", "port-version": 0 }, { "git-tree": "b200fce22ffffeb4174ca68fcca609a9c4857c38", "version": "0.0.10", "port-version": 0 } ] } ================================================ FILE: versions/a-/annoy.json ================================================ { "versions": [ { "git-tree": "e2ee1bb73204258547a8674592d51a7b5e9c84da", "version": "1.17.3", "port-version": 0 }, { "git-tree": "9fbb9d06a1f5a44af0146faddb75f1fb74a0842d", "version": "1.17.2", "port-version": 0 }, { "git-tree": "fb0fa777748e35b69b4d3206cccc7ba770d12ee4", "version-date": "2023-02-25", "port-version": 0 } ] } ================================================ FILE: versions/a-/antlr4.json ================================================ { "versions": [ { "git-tree": "419f0511764db2cbdf8f8c5c3aad4f984f1c8fe5", "version": "4.13.2", "port-version": 1 }, { "git-tree": "f2803934714fc26ec4ef9d6df467e05b0f6c1096", "version": "4.13.2", "port-version": 0 }, { "git-tree": "b8a6e8e88f1e6f604f094ce3a3927a8412eb6011", "version": "4.13.1", "port-version": 0 }, { "git-tree": "1fd51b053d31e5215682e6c2970aca92e24d488b", "version": "4.13.0", "port-version": 0 }, { "git-tree": "162afe92eab004d57c6b0c972ea5e9b371ccb23a", "version": "4.11.1", "port-version": 1 }, { "git-tree": "adff4448fb67cdc7d7a478d5f5f3e973ad65a386", "version": "4.11.1", "port-version": 0 }, { "git-tree": "77ce1d5e7b1ea96943b3917086e1b75d50ae903c", "version": "4.10.1", "port-version": 0 }, { "git-tree": "6a716f472a0639199a0a843a64795a88a39f5dee", "version": "4.9.3", "port-version": 2 }, { "git-tree": "0a3fbd320c22b3c017fe13fb4cac5fe330c0df99", "version": "4.9.3", "port-version": 1 }, { "git-tree": "55208ea9aa8be016d24423442ffbb2e31a7390a1", "version": "4.9.3", "port-version": 0 }, { "git-tree": "31ac3fa20b3f7944e5ac32b7ac7883f3d976dae6", "version": "4.9.1", "port-version": 2 }, { "git-tree": "0b8591ea0b8692c0c2963c468ee5b9c2e260ace4", "version-string": "4.9.1", "port-version": 1 }, { "git-tree": "846cffb150c26539ce36129c5a45d7ce54e6a1c8", "version-string": "4.9.1", "port-version": 0 }, { "git-tree": "ed270bdb7075f6ed46cbe345c367ecb00ef64eff", "version-string": "4.8", "port-version": 1 }, { "git-tree": "1c0f17bc114b3f94e31bd6ecbef4ee2457768b5f", "version-string": "4.8", "port-version": 0 }, { "git-tree": "8f10523941e1e8d75a88feb08b1e0b711ae98a03", "version-string": "4.7.1-3", "port-version": 0 }, { "git-tree": "6eb22d8be66dcd33b068f3fb25ae06445fd7dd61", "version-string": "4.7.1-2", "port-version": 0 }, { "git-tree": "7b3883e70e318f9a15f4b27a9d71c26e7eb9d957", "version-string": "4.7.1-1", "port-version": 0 }, { "git-tree": "bdcdb19ea351359d51b11e772fa396c90b014856", "version-string": "4.7.1", "port-version": 0 }, { "git-tree": "34a4ebe35067164ad729d4b66e502c57271ec8a0", "version-string": "4.7", "port-version": 0 }, { "git-tree": "984fdaa45d466efa9b2dd00661731a115e4c6292", "version-string": "4.6-1", "port-version": 0 }, { "git-tree": "49539bff6d8bf30a96b0228ac27439d946b81dfb", "version-string": "4.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/any-lite.json ================================================ { "versions": [ { "git-tree": "80479a956ce0c1547469f0b887278b07ac8de0c0", "version-semver": "0.4.0", "port-version": 0 }, { "git-tree": "cf16580f5d27b67f0fca4ebf3eba27ad70925859", "version-string": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/anyrpc.json ================================================ { "versions": [ { "git-tree": "5a7107508242583ccad112dff94cf61984392070", "version-date": "2021-08-24", "port-version": 2 }, { "git-tree": "e257a3e62f570c677889ee84e28b96536159e324", "version-date": "2021-08-24", "port-version": 1 }, { "git-tree": "5f4ca4180fb5021b85ae6d4c5ad7b7e15f89b367", "version-date": "2021-08-24", "port-version": 0 }, { "git-tree": "e82759546790c693469c78e166e6c83f745849b3", "version-string": "2020-01-13", "port-version": 2 }, { "git-tree": "22ee16b848c25142909111d43775ee8a4bd1c081", "version-string": "2020-01-13-1", "port-version": 0 }, { "git-tree": "f4f69ae4702ed2b075d1233666f835a6061818fc", "version-string": "2017-12-01-1", "port-version": 0 }, { "git-tree": "47a6f247dea1214328dbd6408e1f000a7bbf5a0c", "version-string": "2017-12-01", "port-version": 0 } ] } ================================================ FILE: versions/a-/anyxx.json ================================================ { "versions": [ { "git-tree": "b478ccbfe6bbd3129793bfbde3ff9b62bd0bb3f6", "version": "0.6.0", "port-version": 0 }, { "git-tree": "f138b72e712c76377a329d152f38cd6adbf365c4", "version": "0.5.1", "port-version": 0 }, { "git-tree": "1f0b4ea8c9f75de729cb3f7ce71293ad1bec9a40", "version": "0.5.0", "port-version": 0 }, { "git-tree": "f1d82e9c161ddbcd9fdbaa58d98c3ea4b23a0fa3", "version": "0.4.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aom.json ================================================ { "versions": [ { "git-tree": "26fd05f1c9967caa611538c4e2f11edb8303288f", "version-semver": "3.13.1", "port-version": 1 }, { "git-tree": "86c7b66df4a104a0d19e5208d9bc591d24f44d7c", "version-semver": "3.13.1", "port-version": 0 }, { "git-tree": "b78024e1ea9566d0fcd0c1091558e0f1aac59fdd", "version-semver": "3.11.0", "port-version": 0 }, { "git-tree": "29d864e5f5c61978785ca554e8efcd1d9642010b", "version-semver": "3.9.1", "port-version": 0 }, { "git-tree": "827f4b94a5792e8fadee085ce2542979d42436c9", "version-semver": "3.8.1", "port-version": 1 }, { "git-tree": "7ec15ea1e8e0e6c1401fc91f2dd167eba6122b20", "version-semver": "3.8.1", "port-version": 0 }, { "git-tree": "71fe99b6007b153a98a5058a2d2212117af8031a", "version-semver": "3.7.0", "port-version": 0 }, { "git-tree": "daaa6d5ccf417cb9e4997d35b9574f18eaa98cd3", "version-semver": "3.5.0", "port-version": 1 }, { "git-tree": "c6e0216430b4aded29b420b2d9e4b14ef6271620", "version-semver": "3.5.0", "port-version": 0 }, { "git-tree": "f251779a2df24b29eac37690d2692fda395218dd", "version-semver": "3.2.0", "port-version": 3 }, { "git-tree": "013d95ace27d59d663acada0264327bf5382308c", "version-semver": "3.2.0", "port-version": 2 }, { "git-tree": "5d7bac96c35260b96135bf3ec1d456994d549eb3", "version-semver": "3.2.0", "port-version": 1 }, { "git-tree": "04432e0fa953e42790ff74f6d927130d9a4e28a7", "version-semver": "3.2.0", "port-version": 0 }, { "git-tree": "d55b62e714b84f2c3f2df02299f4a708a705c21f", "version-semver": "3.1.2", "port-version": 0 }, { "git-tree": "b465c1a32eeac8dfe55239134d800c309b16b33f", "version-semver": "3.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/apache-datasketches.json ================================================ { "versions": [ { "git-tree": "8942c6b225218c416ae95315d3952592e3e993d3", "version": "5.2.0", "port-version": 1 }, { "git-tree": "4577e1a537f65a2d1696f7b00ca60658e6d0f12f", "version": "5.2.0", "port-version": 0 }, { "git-tree": "8b0afd472cc22cbf3a6b5dcf0d73b0e372a0435f", "version": "5.1.0", "port-version": 0 }, { "git-tree": "3d6fbd6d485c451649477f9496ccaac28e334251", "version": "5.0.2", "port-version": 0 }, { "git-tree": "7b8ef82b48832de95bf297231d0019f5cb2b4e82", "version": "4.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/approval-tests-cpp.json ================================================ { "versions": [ { "git-tree": "7443ac60c577f354895635fdf011818f46853ecc", "version": "10.13.0", "port-version": 0 }, { "git-tree": "84c554ce63a6fb5ba80ecf7b3b27bf7c577471a2", "version": "10.12.2", "port-version": 0 }, { "git-tree": "af4597332ca8387f85fa3eef5c853d47d8745d23", "version": "10.12.1", "port-version": 0 }, { "git-tree": "ab883d6b40593e4e14a28110865e55745d7d5768", "version": "10.12.0", "port-version": 0 }, { "git-tree": "42def472fd3039fb2e54a41a6980822a20518eff", "version": "10.11.0", "port-version": 0 }, { "git-tree": "a1134cf4c5199fef643ff13362b568948df8cc55", "version": "10.10.0", "port-version": 0 }, { "git-tree": "757640a4ad0e49a5fd4d77e9ce8adb9b1464cf25", "version": "10.9.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/appstream-glib.json ================================================ { "versions": [ { "git-tree": "7044d05cd0cfcad82c0d8a6f4770b9fd3dd4166c", "version": "0.8.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/appstream.json ================================================ { "versions": [ { "git-tree": "ec534369136985b55e67821d956d3c8934ca9035", "version": "1.0.6", "port-version": 1 }, { "git-tree": "02adb7f4345d8e614592ff33b26eab8e978d0359", "version": "1.0.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/apr-util.json ================================================ { "versions": [ { "git-tree": "c6555c2af4f36e5aeb1eabc818738e4ffbba77d8", "version": "1.6.3", "port-version": 0 }, { "git-tree": "41451c5e1e1fa8344f6c2d1baf6c0f14b656c433", "version": "1.6.1", "port-version": 10 }, { "git-tree": "b6d7bb58f16bd75a40a434742d0c0a12b89645d4", "version": "1.6.1", "port-version": 9 }, { "git-tree": "e11acd0b01edac0a064893b89bd9eb2d976f4371", "version": "1.6.1", "port-version": 8 }, { "git-tree": "d758cde4c829f6c3a66a773d517f9e9425227629", "version": "1.6.1", "port-version": 7 }, { "git-tree": "d27be40b8f670b002604154ef5657c011b8de733", "version": "1.6.1", "port-version": 6 }, { "git-tree": "dfc76280690e9d419c43ee5242466de5b4e317c2", "version-string": "1.6.1", "port-version": 5 }, { "git-tree": "cf1a0e97d00a5748dc58db7d0a5da0fd7d5efb66", "version-string": "1.6.1", "port-version": 4 }, { "git-tree": "6f367c81a074fd156d7f054bcacbdae0b01a5f5c", "version-string": "1.6.1", "port-version": 3 }, { "git-tree": "9178b7e078f0093aa2cc4b42cd22e9bbc5537f6c", "version-string": "1.6.1", "port-version": 2 }, { "git-tree": "450b0cdebafbdebc56b926d372307d1b86f6b9f9", "version-string": "1.6.1-1", "port-version": 0 }, { "git-tree": "a2f0bcf9b2f562d2cd6a033d4552a638e6b849bb", "version-string": "1.6.1", "port-version": 0 }, { "git-tree": "22f26a9e37de504ad54cc30e407d3f2644600b73", "version-string": "1.6.0-5", "port-version": 0 }, { "git-tree": "96cf1cbcb872aaada516d15a77b607f93c812fa0", "version-string": "1.6.0-3", "port-version": 0 }, { "git-tree": "5aad761bd51d83bf2d2ab9d0d4fbab5b59d96b9d", "version-string": "1.6.0-2", "port-version": 0 }, { "git-tree": "426ca0a02ae6c9299754074d38f26ce31238fc32", "version-string": "1.6.0-1", "port-version": 0 }, { "git-tree": "a595d02e90cecaf2795f639814030395f0fb126c", "version-string": "1.6.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/apr.json ================================================ { "versions": [ { "git-tree": "b4745579e740aac13425820fc4aed1241c0d44a7", "version": "1.7.6", "port-version": 1 }, { "git-tree": "4e92a2673b91ca78ac5c9f310f2a68aa6d105770", "version": "1.7.6", "port-version": 0 }, { "git-tree": "dfa11d3e5058b640b37c1a6845dbc2980496a7c8", "version": "1.7.5", "port-version": 2 }, { "git-tree": "499cf5fc0959f4a049ec72f0f556400e7191ffd3", "version": "1.7.5", "port-version": 1 }, { "git-tree": "da67695a8735bcfaed89792be1ea44176d9202a3", "version": "1.7.5", "port-version": 0 }, { "git-tree": "9e28cc50d8877ee9c7a70e3fac694e562b4833da", "version": "1.7.4", "port-version": 1 }, { "git-tree": "106ba582ba3d56fd1db284670ed7d94b6cae9f47", "version": "1.7.4", "port-version": 0 }, { "git-tree": "b28b577d536f3eeeb00392ce5f1f7da76f3a9eaa", "version": "1.7.2", "port-version": 1 }, { "git-tree": "a68bb37ae242709eb2fab09e1326168d28ab1a56", "version": "1.7.2", "port-version": 0 }, { "git-tree": "beb9b88a2d3bcc63f32177c58622d7ad4b6717cf", "version": "1.7.0", "port-version": 12 }, { "git-tree": "2f23cf24a3496f9fb519512245a3e0f1a66c8ed9", "version": "1.7.0", "port-version": 11 }, { "git-tree": "7b9002157134602da80c38b7eda863fd9e0012da", "version": "1.7.0", "port-version": 10 }, { "git-tree": "419034d960a2d9d932f18154e386d1ce4947d514", "version": "1.7.0", "port-version": 9 }, { "git-tree": "9fd8035a5cce96ad1b89000ac34431551ca39458", "version": "1.7.0", "port-version": 8 }, { "git-tree": "e73f548920cc5add8a47af9b8775a26c89050101", "version": "1.7.0", "port-version": 7 }, { "git-tree": "bc5604f4ffbdcdaee979fccdb1fd5a85dfc7a3db", "version": "1.7.0", "port-version": 6 }, { "git-tree": "3de94d87f5afac3e6800a26771517217d5113349", "version": "1.7.0", "port-version": 5 }, { "git-tree": "b9e93acdaa680398eaed361f1df530096ded84ff", "version": "1.7.0", "port-version": 4 }, { "git-tree": "ca62f9b23d92ff6bb375277cb56e6ea1cde2c9f1", "version-string": "1.7.0", "port-version": 3 }, { "git-tree": "797a6206562e8117ad675a90c9d46b48990b940a", "version-string": "1.7.0", "port-version": 2 }, { "git-tree": "6aa7aa09fd5a2643cd81b057fecffec21e4f63b2", "version-string": "1.7.0-1", "port-version": 0 }, { "git-tree": "b96ddcb0be5a1c8b9700a814d896a827a9ae8c62", "version-string": "1.7.0", "port-version": 0 }, { "git-tree": "90b953c11908d63d8e626ba0b9d50fffa00f3a3d", "version-string": "1.6.5-3", "port-version": 0 }, { "git-tree": "ee9ffad2399eab5b9ef3e05fa6e7619c832cec3e", "version-string": "1.6.5-2", "port-version": 0 }, { "git-tree": "c8e0e8a2991924d58cf52101abfce5794e251e7e", "version-string": "1.6.5-1", "port-version": 0 }, { "git-tree": "948cdca3bdef7122b7d66ddd04444ac74b36fc88", "version-string": "1.6.5", "port-version": 0 }, { "git-tree": "1f3668a8e6a98805034f45de3bb6f8a4d64bd4db", "version-string": "1.6.3", "port-version": 0 }, { "git-tree": "560a1a5a93b64d0766f85439288cd598bddc62d3", "version-string": "1.6.2-1", "port-version": 0 }, { "git-tree": "2f8522ca18fd918f2e8af4cfb0eb104df8295658", "version-string": "1.6.2", "port-version": 0 }, { "git-tree": "16ad7018f8cda5739413851dc879ec4061da5812", "version-string": "1.5.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/apriltag.json ================================================ { "versions": [ { "git-tree": "281cb6195379635c2d460b4faafcc9360b5a4cf3", "version": "3.4.5", "port-version": 0 }, { "git-tree": "b8093a8a581a5647dc4370579421d6623742a53f", "version": "3.4.4", "port-version": 0 }, { "git-tree": "26d8a1ec2c86d1c448765293461fe5e5249cfecb", "version": "3.4.3", "port-version": 0 }, { "git-tree": "86a28ae0577f8da4f1bb690d7d372732b92e9ac0", "version": "3.4.2", "port-version": 0 }, { "git-tree": "c7ae501c5566bbc76d1262910eafcbb1f56b8e5b", "version": "3.4.0", "port-version": 0 }, { "git-tree": "5c64c401307d5ae0c4ee91fc2e9e1b3950776feb", "version": "3.3.0", "port-version": 0 }, { "git-tree": "3523f2ad6198164afda1782327470188dc3f7221", "version": "3.2.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/apsi.json ================================================ { "versions": [ { "git-tree": "d846cf4ccf985e33eea10fa2ac4ff44da9086dad", "version-semver": "0.11.0", "port-version": 0 }, { "git-tree": "6a3eba819cf2ad5252c8ecae5c0d23f77238d98f", "version-semver": "0.9.0", "port-version": 2 }, { "git-tree": "c1614133f3e08c8203102a2dd519c759b01d7156", "version-semver": "0.9.0", "port-version": 1 }, { "git-tree": "3fe18a82f71344cfd2a936fb6ddf4a6762edfffa", "version-semver": "0.9.0", "port-version": 0 }, { "git-tree": "b217158e7c8e8626bbb455182a980db7295c085d", "version-semver": "0.8.2", "port-version": 1 }, { "git-tree": "cbe91971ef248ba844e254d91cbd73ad10fbe131", "version-semver": "0.8.2", "port-version": 0 }, { "git-tree": "08bc0f650b7fa0ef77541eb74b90d0b9fe7fec03", "version-semver": "0.7.0", "port-version": 2 }, { "git-tree": "c2703eaa248b72c269dd22aac1e2aca49060dfba", "version-semver": "0.7.0", "port-version": 1 }, { "git-tree": "652d69df44a689fa55f1b757db46c97bcb840c13", "version-semver": "0.7.0", "port-version": 0 }, { "git-tree": "ff4f1e6dfc87696ea2da4bd557e15b1f2034f340", "version-semver": "0.5.0", "port-version": 0 }, { "git-tree": "3cfe8c41e42a7aa179511d6f6ead1c47bb8f3327", "version-semver": "0.3.1", "port-version": 0 }, { "git-tree": "2de75d2b02f3a434d3b95f53ca60b71598d9f8b5", "version-semver": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/aravis.json ================================================ { "versions": [ { "git-tree": "1949d551e431ea103584b145ea6d92ff9b22aa5a", "version": "0.8.35", "port-version": 0 }, { "git-tree": "1b69f3fe486457e9a5060044c323de95733f16cc", "version": "0.8.34", "port-version": 1 }, { "git-tree": "9de676f9a27354906fbff6a6005d11719e8f09e1", "version": "0.8.34", "port-version": 0 } ] } ================================================ FILE: versions/a-/arb.json ================================================ { "versions": [ { "git-tree": "979cfcc7b4326308bf376e69fd60982d28afef72", "version": "2.21.1", "port-version": 2 }, { "git-tree": "e1b560a5a2aa835d54da9fdabac5eea48255e93d", "version": "2.21.1", "port-version": 1 }, { "git-tree": "06326497117fb757651649225284d2fe4100ef79", "version": "2.21.1", "port-version": 0 }, { "git-tree": "8ad21afd78955622e44098428fa7b8b7790f82d8", "version-string": "2.18.1", "port-version": 1 }, { "git-tree": "7a1fad4344b58a4c70a15c0a2a890c011a52c75f", "version-string": "2.18.1", "port-version": 0 }, { "git-tree": "6add6cb53869d0c182da4dea8dd049a846cc8c41", "version-string": "2.17.0", "port-version": 0 }, { "git-tree": "492a3e49ecd0cb6f806f03eccdc836a03fffcc38", "version-string": "2.16.0", "port-version": 0 }, { "git-tree": "1380d6df87f04cdb99ebdd50af031b456033da3c", "version-string": "2.11.1-2", "port-version": 0 }, { "git-tree": "d0101f7b492d597152d392af47c394b5d159a3a2", "version-string": "2.11.1-1", "port-version": 0 }, { "git-tree": "fb3d463b6fae7f3bc030a93a22af93af05357e69", "version-string": "2.11.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/arcticdb-sparrow-extensions.json ================================================ { "versions": [ { "git-tree": "41ca9bbcfcd434bf6f69ed32c8f5a4d44a193c8d", "version": "1.2.0", "port-version": 0 }, { "git-tree": "95d265dea45af6e03be34db9ce996e934244134b", "version": "1.1.0", "port-version": 0 }, { "git-tree": "156842526f80a1cca5b001a9e9298457464f481e", "version": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/arcticdb-sparrow.json ================================================ { "versions": [ { "git-tree": "aa3a0f2fa5866701751b2bffce4121372af32238", "version": "2.3.0", "port-version": 0 }, { "git-tree": "bfb274a5c21b157c92c41f90ca8ec01c0a733904", "version": "2.2.1", "port-version": 0 }, { "git-tree": "eeb9c1c266753290bc77d8d9005fd7ec8ef0496a", "version": "2.2.0", "port-version": 0 }, { "git-tree": "2190db3660a3f9f46f10ed92b0953b554cc12e23", "version": "2.1.0", "port-version": 0 }, { "git-tree": "83c19dd145fd82940fc76518ce591a8fc4e4fab8", "version": "2.0.0", "port-version": 0 }, { "git-tree": "f7ae87cf3da8e443f58fdd15336a3ff5ce8efe1f", "version": "1.4.0", "port-version": 0 }, { "git-tree": "c5a05622aa2afba7736caa2f1fba17887a73005d", "version": "1.3.0", "port-version": 0 }, { "git-tree": "021d76215516d3b462159d588bbaaa6785ad7d50", "version": "1.2.0", "port-version": 1 }, { "git-tree": "a3656ab2e65ade0c04b6cee33e63eb65548e04c6", "version": "1.2.0", "port-version": 0 }, { "git-tree": "d4bee4cc70765efc80246bf0b120265c6d54e1fe", "version": "1.1.2", "port-version": 0 }, { "git-tree": "afbbecdcb8feaee717647f93ea42c98569750824", "version": "1.1.0", "port-version": 0 }, { "git-tree": "ab62590ce495e9ad306917f9d3d32976863e48f0", "version": "1.0.0", "port-version": 0 }, { "git-tree": "ac7d6f2ee687077d3aae76ca9452bb8b9ac496ba", "version": "0.9.0", "port-version": 0 }, { "git-tree": "30468c0fba66aa929725dcd33694197a6296d238", "version": "0.8.0", "port-version": 0 }, { "git-tree": "3d3c8182f1cbfdb5136017147e8e1fd1203985fe", "version": "0.7.0", "port-version": 0 }, { "git-tree": "05dcd2be4c194527b5afda5fe4d043da4e6ea232", "version": "0.6.0", "port-version": 0 }, { "git-tree": "56a860246cba2159516ff5ad32f32f27cbbee598", "version": "0.5.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/arcus.json ================================================ { "versions": [ { "git-tree": "8228a6607d85f48fb8bfabd040a25c4b2e377136", "version-semver": "4.10.0", "port-version": 5 }, { "git-tree": "2b141efb5eac8763acdbb6e486c018a2393b4486", "version-semver": "4.10.0", "port-version": 4 }, { "git-tree": "cbf79963e156283eae951185abaafc86d2679262", "version-semver": "4.10.0", "port-version": 3 }, { "git-tree": "1edcde9d0c4a64d780c6692b017cd30137a9ab19", "version-semver": "4.10.0", "port-version": 2 }, { "git-tree": "0aeec8ed7245362e90ef531d8ecaf4ca315e85e5", "version-semver": "4.10.0", "port-version": 1 }, { "git-tree": "76f86c7d5993d59f58a0863b9e2ca439db88efba", "version-semver": "4.10.0", "port-version": 0 }, { "git-tree": "60c6c8f7ebf7b481fba071481b60e89085093e87", "version-string": "4.8.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/arg-router.json ================================================ { "versions": [ { "git-tree": "1e8ee2b4774091c604ac1ff4242710234b20b7bd", "version": "1.4.0", "port-version": 1 }, { "git-tree": "b0415ac98a98ec00c2c579c6925588b089bdc158", "version": "1.4.0", "port-version": 0 }, { "git-tree": "0342b5a6a038dcb69eb623a70adf911d1e94d523", "version": "1.3.0", "port-version": 0 }, { "git-tree": "9e1db4d06fe1aa7b5f0677d4e843331e7c7b2bca", "version": "1.2.2", "port-version": 0 }, { "git-tree": "2ad077ad64e854b417c0c85f5900528795bc2028", "version": "1.2.0", "port-version": 0 }, { "git-tree": "3a12ba85bd70de2d9fdd55ecff2ee394d0ed1b79", "version": "1.1.1", "port-version": 0 }, { "git-tree": "d6f21738ed53af9693376f8e659485875117f8f5", "version": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/argagg.json ================================================ { "versions": [ { "git-tree": "83071d0926bdea724da61b1977f16e819a56500d", "version": "0.4.7", "port-version": 0 }, { "git-tree": "2a90b715c9fa23c9e723c4fac3725a73c9007d5b", "version": "0.4.6", "port-version": 3 }, { "git-tree": "89a9b4bc7d3ecb518a5a78d3ce9731cf974df7f8", "version-string": "0.4.6", "port-version": 2 }, { "git-tree": "ece15f0bd5649973a8384d7762b0b1aed0cb2fdc", "version-string": "0.4.6", "port-version": 1 }, { "git-tree": "031214af5025d198e84dd9d21fe071199ad1623c", "version-string": "0.4.6", "port-version": 0 }, { "git-tree": "a23fc9ac0a6c78412d55ff890da0c65568fba54b", "version-string": "2019-01-25", "port-version": 0 } ] } ================================================ FILE: versions/a-/argh.json ================================================ { "versions": [ { "git-tree": "b78bb1481da9a23d979d9d5a6f1652f3097a53da", "version": "1.3.2", "port-version": 1 }, { "git-tree": "2ee3072431f9d1aa18b5810e61398b9373fdc0d7", "version": "1.3.2", "port-version": 0 }, { "git-tree": "09027cc8017226ec7710f564346b5c0bff9e69aa", "version-string": "2018-12-18", "port-version": 3 }, { "git-tree": "079af0048f435a7d950a29772462a553a80078f1", "version-string": "2018-12-18-2", "port-version": 0 }, { "git-tree": "2370ebefd700536d00c92d0e2ceeeffbe4212dbe", "version-string": "2018-12-18-1", "port-version": 0 }, { "git-tree": "cfd4467e76cccb610fbc8b1c7590c44365245de3", "version-string": "2018-12-18", "port-version": 0 } ] } ================================================ FILE: versions/a-/argon2.json ================================================ { "versions": [ { "git-tree": "08a4ee53f1f5330c8f911dff530810c762551675", "version": "20190702", "port-version": 1 }, { "git-tree": "3a15f9b44e7ae1ef03f6f92a5552bc85951fd3a1", "version": "20190702", "port-version": 0 } ] } ================================================ FILE: versions/a-/argparse.json ================================================ { "versions": [ { "git-tree": "3a1874a366e68aadfaf5cd07a5bb07e883460aba", "version": "3.2", "port-version": 0 }, { "git-tree": "d0e494fd0f114573521975bd1dbf1eddcb27e465", "version": "3.1", "port-version": 0 }, { "git-tree": "b8e0c44d4dfe3359b308711daac1e201dc4f8a21", "version": "3.0", "port-version": 0 }, { "git-tree": "007156cde2fbc16b990f1a8cd0a29664873a923c", "version": "2.9", "port-version": 0 }, { "git-tree": "e3bf81ce931b3f8abadb45bd70389073d703af8a", "version": "2.8", "port-version": 0 }, { "git-tree": "928e03159c73294a2e6623d330ea1567190d753f", "version": "2.2", "port-version": 0 }, { "git-tree": "b16b0a340e04d56e4a736b57eafa5fc352abfc58", "version-date": "2021-03-04", "port-version": 0 }, { "git-tree": "b97b900df917ed17a16e28f3ea86cc66a82ced4e", "version-string": "2.1", "port-version": 0 }, { "git-tree": "82aa2d55fa1a64ccb97072a21e5a383b779a8acb", "version-string": "2.0.1", "port-version": 0 }, { "git-tree": "4f76a49308623bcbd93f2b69d40d9ae2548828bf", "version-string": "1.9", "port-version": 0 }, { "git-tree": "b6a2f5c6e86c542876392c744f7055bf68ffe917", "version-string": "2019-06-10", "port-version": 0 } ] } ================================================ FILE: versions/a-/args.json ================================================ { "versions": [ { "git-tree": "ebe8042a3ae536cf9060084367a11007d836d9df", "version": "6.4.8", "port-version": 0 }, { "git-tree": "eca261df4af60a96e04f46c28f27e5aeee0290a1", "version": "6.4.7", "port-version": 0 }, { "git-tree": "6b8449188caa97cb07c87641c977a969846153f5", "version": "6.4.6", "port-version": 0 }, { "git-tree": "6da2a8e30a8640e0cb9fe55decd3a634d8c42cb6", "version": "6.3.0", "port-version": 0 }, { "git-tree": "8f102bf551068e71d94c7d1f21295bb9bf29dcdc", "version": "6.2.7", "port-version": 0 }, { "git-tree": "0b99979813c133a681aedcf4753689f023fbb98b", "version-date": "2021-03-14", "port-version": 0 }, { "git-tree": "df53fcfe0380622c0ae4b19c66b3d78eddb32644", "version-string": "2020-09-14", "port-version": 0 }, { "git-tree": "a04399a85d83caad71a9022b5a9c330414942b14", "version-string": "2019-07-11", "port-version": 0 }, { "git-tree": "dcb221ca71d0ab533d632698825989986d288870", "version-string": "2019-05-01", "port-version": 0 }, { "git-tree": "c894c00b57a945aa6fdfe80804950addeb7295f4", "version-string": "2019-03-29", "port-version": 0 }, { "git-tree": "a48ceaddde2848dcdb3a15e250cb36468a518ac4", "version-string": "2019-01-18", "port-version": 0 }, { "git-tree": "d1ecad6153a9ea9e493279b62bbd25f43992ca8a", "version-string": "2018-10-25", "port-version": 0 }, { "git-tree": "6c280b96419508283dbfb744cb6174977fd79d21", "version-string": "2018-10-11", "port-version": 0 }, { "git-tree": "46273254e3cfe34691a430e8a0eca99e2ee96708", "version-string": "2018-06-28", "port-version": 0 }, { "git-tree": "e5a7d23d255a6eabd8ce9fb8ea8c62f04e7eec43", "version-string": "2018-05-17", "port-version": 0 }, { "git-tree": "5a6052bd2acef6edca4eafbade1bc2fca972340e", "version-string": "2018-02-23", "port-version": 0 }, { "git-tree": "967b94170418459a4acab553b955794d5952730b", "version-string": "d8905de", "port-version": 0 } ] } ================================================ FILE: versions/a-/argtable2.json ================================================ { "versions": [ { "git-tree": "cd58801d3074f08b7d3145cd25d63ad72cbdbf6b", "version": "2.13", "port-version": 11 }, { "git-tree": "931507f46135a9267c3d15ed5064235aac6154f4", "version": "2.13", "port-version": 10 }, { "git-tree": "406503ece7b3ab95af28c6871a6de7263731f829", "version-string": "2.13", "port-version": 9 }, { "git-tree": "84477794d507fde26a891a7282b5322bb8d0e632", "version-string": "2.13", "port-version": 8 }, { "git-tree": "5f692e274330bf55809bd591a4f94098a22d840b", "version-string": "2.13-7", "port-version": 0 }, { "git-tree": "03c9c44716d9785aabaa94a2050c4c2e5753d48a", "version-string": "2.13-5", "port-version": 0 }, { "git-tree": "76147077ed008a4c662e85f956d8ade35c50aa18", "version-string": "2.13-4", "port-version": 0 }, { "git-tree": "a5aa85058c61fea7507d0f7963075f83d5cafe87", "version-string": "2.13-2", "port-version": 0 }, { "git-tree": "a8d6bf4f29b8b423396128bb49ed51b2f23f7853", "version-string": "2.13-1", "port-version": 0 } ] } ================================================ FILE: versions/a-/argtable3.json ================================================ { "versions": [ { "git-tree": "3de7f101097015a6bc35dfb30dbca11d3644433e", "version": "3.3.1", "port-version": 0 }, { "git-tree": "0057e71075971fe4287766bf35b3cb3a3bc7ff01", "version-string": "3.3.0.116da6c", "port-version": 1 }, { "git-tree": "b50840a1e4bb570697cad03f94145c0660b1e4ef", "version-string": "3.3.0.116da6c", "port-version": 0 }, { "git-tree": "949eef38520716ab831bb7f008cce93b28af8f54", "version-string": "3.2.2.f25c624", "port-version": 0 }, { "git-tree": "b84ef22a845ccccda6197d1865ddd1d8df9098c1", "version": "3.2.1", "port-version": 3 }, { "git-tree": "fe3b1c9a876237412e7ba925a3b41f62e7fc1d99", "version": "3.2.1", "port-version": 2 }, { "git-tree": "acbbb26e54e658b8af673a112fb338274275ad6b", "version": "3.2.1", "port-version": 1 }, { "git-tree": "0dc3ede1be6316bee6853f84c5f147340be70ee8", "version-string": "3.2.1", "port-version": 0 }, { "git-tree": "7a1d8f216b96823aed9e08cd73efc09ca7baec14", "version-string": "3.1.5", "port-version": 0 }, { "git-tree": "fc26a0ec4d041d390728046549a4502b922086b7", "version-string": "2019-08-21", "port-version": 0 } ] } ================================================ FILE: versions/a-/argumentum.json ================================================ { "versions": [ { "git-tree": "7457d6852fec884e90a92c822d424b2a5d114adc", "version": "0.3.2", "port-version": 0 }, { "git-tree": "fe42808ab9e1d7f94eb77d40dd8777a0a2510837", "version-string": "0.3.1", "port-version": 2 }, { "git-tree": "0f89899e28a328451a1b31bbf2ba23df8ca87f69", "version-string": "0.3.1", "port-version": 1 }, { "git-tree": "4ddbb18467acb4d4bcddb23e1ba6c956aeaee72f", "version-string": "0.3.1", "port-version": 0 }, { "git-tree": "e6f62b26b2d823054e4b3da822f7223e98badbcf", "version-string": "0.2.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/argus.json ================================================ { "versions": [ { "git-tree": "1b6a52e3656d147bd17a26bf3719e27150eedf97", "version": "0.2.0", "port-version": 0 }, { "git-tree": "abb6b37bc3ad957fae11e7dabb205928dcf14f2f", "version": "0.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/aricpp.json ================================================ { "versions": [ { "git-tree": "1523a3ad172ccb2b680be8041c78e5a50684ae1c", "version-semver": "1.2.1", "port-version": 0 }, { "git-tree": "4451f34c43a23dd8ab8904c8bbdbd12f462b1da9", "version-semver": "1.1.3", "port-version": 0 }, { "git-tree": "f4c60d911e60c041e3e7791a84894a1c028a7e85", "version-semver": "1.1.2", "port-version": 0 }, { "git-tree": "266bfd31b17badea05be9f9859b0ce84f4d9f60e", "version-semver": "1.1.1", "port-version": 1 }, { "git-tree": "6bab43826055b88429107ef725b3c98fdded73ee", "version-semver": "1.1.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/armadillo.json ================================================ { "versions": [ { "git-tree": "0f116cda098b88510f370ee379175762873550cb", "version": "14.4.1", "port-version": 1 }, { "git-tree": "6ba67dfa012bfaf61c3af1eaef7b34f801d0c889", "version": "14.4.1", "port-version": 0 }, { "git-tree": "1170d44facaee6359f8a38ccfe46d4f0551fa8a6", "version": "14.2.2", "port-version": 0 }, { "git-tree": "03e566acea662b5629f125afdb2a2b96fa486ae5", "version": "14.0.3", "port-version": 0 }, { "git-tree": "fd4e4c985c16061bf656f3bb01fe020c22f67d02", "version": "12.8.4", "port-version": 2 }, { "git-tree": "dc3cfdfb5e23d875f1759263e1cc4a15c2a23a05", "version": "12.8.4", "port-version": 1 }, { "git-tree": "d999b95bb504c72418af639955b527834b81a74a", "version": "12.8.4", "port-version": 0 }, { "git-tree": "26b683ba7667590b73816c9be35d0f8255e200bb", "version": "12.6.7", "port-version": 0 }, { "git-tree": "c2aff7478c5ce43b743299048915610189b0cece", "version": "12.6.6", "port-version": 1 }, { "git-tree": "c47c5cebd38878763558370cea0db1d527f2fc0a", "version": "12.6.6", "port-version": 0 }, { "git-tree": "b90cf9e80b6fc606809b1cdfa6b61c433848e197", "version": "12.4.1", "port-version": 0 }, { "git-tree": "8e222a2972a96da2fbb07a76585574e9512b107f", "version": "12.0.1", "port-version": 0 }, { "git-tree": "f149e3877dead7fd5e1783feb83a64a794eddcba", "version": "11.4.4", "port-version": 0 }, { "git-tree": "325a64512ffbc2d8bfb94ff44c5a86c55252dc58", "version": "11.4.3", "port-version": 0 }, { "git-tree": "b4bc853e4132b3e2f8c13fa5cfc21030daa6d10a", "version": "11.2.3", "port-version": 0 }, { "git-tree": "fb3b2fb5c5daeea857a0b9952dbef5c980fa14c9", "version": "10.6.2", "port-version": 5 }, { "git-tree": "ddc4477e6ecc2d66e429e18e9ccd96367da2ce88", "version": "10.6.2", "port-version": 4 }, { "git-tree": "88bb8282f33e16f2c59856f68ed9934ff26c7e02", "version": "10.6.2", "port-version": 3 }, { "git-tree": "2a7774c182c273a8d6f350a383f4a3bcf01e308e", "version": "10.6.2", "port-version": 2 }, { "git-tree": "34c37cb8151d003da697e9d725033567a4ccb2f7", "version": "10.6.2", "port-version": 1 }, { "git-tree": "66b31fe832e9322876f427f1fec7836bb71c082c", "version": "10.6.2", "port-version": 0 }, { "git-tree": "3925824cd7eed2d9fcaa092a9a543eb538d9a558", "version": "10.4.0", "port-version": 0 }, { "git-tree": "8f9484de18ab042899bdf1fd033f6522ff091225", "version-string": "10.2.0", "port-version": 0 }, { "git-tree": "3ec327570d6731dbd87ebdee5a0cebdd8bd62ed7", "version-string": "10.1.0", "port-version": 1 }, { "git-tree": "fa82d7d3b12f794825dad7fddcda2b08f268c2b2", "version-string": "10.1.0", "port-version": 0 }, { "git-tree": "26c12504729aa9721a0ddacc4379a4a186131cd8", "version-string": "2019-04-16", "port-version": 10 }, { "git-tree": "a1b22abfe2cf95afdbfa2035d398f5e3631b10eb", "version-string": "2019-04-16", "port-version": 9 }, { "git-tree": "cc023d9cc156eb5ca8679d2ec71ed76aa2370de6", "version-string": "2019-04-16-8", "port-version": 0 }, { "git-tree": "49f2598bbf5973b40b790e8bde134debdcfd9b6a", "version-string": "2019-04-16-6", "port-version": 0 }, { "git-tree": "b6884042c9d5cbd748768125337f7ba0f1e13746", "version-string": "2019-04-16-5", "port-version": 0 }, { "git-tree": "c4804f0f1bf5ab832e6f41c880d03f0c7f216186", "version-string": "2019-04-16-4", "port-version": 0 }, { "git-tree": "5253e776b3b0154830cbf7423f521e1044fd0421", "version-string": "2019-04-16-3", "port-version": 0 }, { "git-tree": "e7bcd1561e9f742ef22389fabdd2adaa0a36f941", "version-string": "2019-04-16-2", "port-version": 0 }, { "git-tree": "278d63ef5ee8e0e6af178f29ca51df22c5ae26d5", "version-string": "2019-04-16-1", "port-version": 0 }, { "git-tree": "a976a647cd788e9ebfc2933e824168fbe902af82", "version-string": "2019-04-16-f00d3225", "port-version": 0 }, { "git-tree": "3c6e533f56dea7b9985f2babfa4df812d8d90fe1", "version-string": "8.400.0-1", "port-version": 0 } ] } ================================================ FILE: versions/a-/arpack-ng.json ================================================ { "versions": [ { "git-tree": "278c6c66052d39f6df0519440ea599b13125116e", "version": "3.9.1", "port-version": 1 }, { "git-tree": "7dd6a7103d3c8f2b5377921d2edc2b29d330a531", "version": "3.9.1", "port-version": 0 }, { "git-tree": "8bee9f6f6141b136982fd4b4b1d7e6a4a6d9a0df", "version": "3.9.0", "port-version": 1 }, { "git-tree": "ad2fd897c58d9cf2976a1be1efc10e36aa4e1af6", "version": "3.9.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/arrayfire.json ================================================ { "versions": [ { "git-tree": "c977914f0cfe2c181c1feea7a21e67ca3cefa45c", "version-semver": "3.8.0", "port-version": 10 }, { "git-tree": "c0aef37891aafcb73d45f1e18bba8c581085b099", "version-semver": "3.8.0", "port-version": 9 }, { "git-tree": "3ed888c7fc2aa125e626ff0f097b00a4230bab1c", "version-semver": "3.8.0", "port-version": 8 }, { "git-tree": "985696275cbb76cb02d89d11f8e2490921c09874", "version-semver": "3.8.0", "port-version": 7 }, { "git-tree": "45bae5e28a1c092e6024e21dcc4bab12c4e03440", "version-semver": "3.8.0", "port-version": 6 }, { "git-tree": "4e9b4b24be953b97638224c3563759c7d8a86602", "version-semver": "3.8.0", "port-version": 5 }, { "git-tree": "37adfc5544ac7301c3ff4a8e16d84804d45b566a", "version-semver": "3.8.0", "port-version": 4 }, { "git-tree": "ad19da32c793c60f4f40241792cee65d3c225d10", "version-semver": "3.8.0", "port-version": 3 }, { "git-tree": "9ce1cae30cfcfd85b9858f5f46a59136cce97e59", "version-semver": "3.8.0", "port-version": 2 }, { "git-tree": "137eb0d15f469e75ad3255cf1de871d83b3dff49", "version-semver": "3.8.0", "port-version": 1 }, { "git-tree": "e6c5e8b4e1c52380ebd2050683a185c44a2dbae4", "version-semver": "3.8.0", "port-version": 0 }, { "git-tree": "ec3188e3259a9b123ebbbb0e2ede933a59d42092", "version-string": "3.7.3", "port-version": 3 }, { "git-tree": "c5d51d516a2f179871125b9adb59a0d545c55cdb", "version-string": "3.7.3", "port-version": 2 }, { "git-tree": "68b7bed9be6cf106ea00ea8d073597f862904bef", "version-string": "3.7.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/arrow-adbc.json ================================================ { "versions": [ { "git-tree": "a74b6472fa61b1a1d88ff337b26150642bcdf68f", "version": "16", "port-version": 0 } ] } ================================================ FILE: versions/a-/arrow.json ================================================ { "versions": [ { "git-tree": "50e30671c1cdb1475e1dd054ca3e6d01a418d90e", "version": "23.0.1", "port-version": 0 }, { "git-tree": "1e41ecff4d2696961e337f7219bb73c30c1fbccd", "version": "23.0.0", "port-version": 0 }, { "git-tree": "73ec101affdc45cc2932cedf85bcd4bd4ed90c31", "version": "21.0.0", "port-version": 2 }, { "git-tree": "ecab846d4b97453e26953dcf553f1df260901ff3", "version": "21.0.0", "port-version": 1 }, { "git-tree": "44e37b3fb8df5a87f51550a11c1bd20af772a09a", "version": "21.0.0", "port-version": 0 }, { "git-tree": "ea170f76e42c4946d71e1473e51dc90cc1491d55", "version": "20.0.0", "port-version": 1 }, { "git-tree": "307efc99a4626033510b9823a0205558547a53f5", "version": "20.0.0", "port-version": 0 }, { "git-tree": "baa90a1de700d2ef44a9d17b7b587e4a48c9dd05", "version": "19.0.1", "port-version": 0 }, { "git-tree": "f4ca71d486f873fbaeae4157f88bcf7b25712440", "version": "19.0.0", "port-version": 1 }, { "git-tree": "36b25d8cfc7098069e26a5185c684dddffa7cd47", "version": "19.0.0", "port-version": 0 }, { "git-tree": "cff712c97f67ce2ef9061d823c751f5e209e5838", "version": "18.1.0", "port-version": 0 }, { "git-tree": "f62b9ba3d5fcf264637a1acc6edc72557b0f1461", "version": "18.0.0", "port-version": 0 }, { "git-tree": "f06fe60d953b9696bc4f557c42c3e3adda042a39", "version": "17.0.0", "port-version": 0 }, { "git-tree": "b0fb85e8be36a721896cb65227bcc3c85a4f88ee", "version": "16.1.0", "port-version": 1 }, { "git-tree": "282e423703e80ad83909c9e8d65119094436ebae", "version": "16.1.0", "port-version": 0 }, { "git-tree": "413da38f4ffabc5fd1273aff3ed2a7c6226f1ba6", "version": "16.0.0", "port-version": 1 }, { "git-tree": "d68c109745e79bf3ae813428bd0cfda562790381", "version": "16.0.0", "port-version": 0 }, { "git-tree": "934c1383e14915071a7c9939bd61f38de5bd2c1b", "version": "15.0.2", "port-version": 1 }, { "git-tree": "28965b502b1501b7832c506ea728e37924902909", "version": "15.0.2", "port-version": 0 }, { "git-tree": "874763622bfd5b5d118109e44f25460c4b34af57", "version": "15.0.1", "port-version": 0 }, { "git-tree": "d736db2f9ac170765f1e6ac8c90f4d46c94a3552", "version": "15.0.0", "port-version": 0 }, { "git-tree": "68021accce836c6b394076d1494379df640dcb8c", "version": "14.0.2", "port-version": 2 }, { "git-tree": "93a9cd414e5d170755234571e42746b413b7deb3", "version": "14.0.2", "port-version": 1 }, { "git-tree": "a8cadbfff7756e4b3ae2589f7312f80b82e0ff88", "version": "14.0.2", "port-version": 0 }, { "git-tree": "f73c538acb0a7dbda211654b354286af98b399f0", "version": "14.0.1", "port-version": 2 }, { "git-tree": "f3517d0d8bf39d98d806b0c84eac2f5f1acbbf32", "version": "14.0.1", "port-version": 1 }, { "git-tree": "c1c1beba87b3d9ac5ffc73764c62622cbd31eace", "version": "14.0.0", "port-version": 1 }, { "git-tree": "58708e6a9ecca81874ff79869e9006d42ca2bbfe", "version": "13.0.0", "port-version": 1 }, { "git-tree": "ef87d769431fcefcb1d2864a9266cba168602fa2", "version": "13.0.0", "port-version": 0 }, { "git-tree": "e1f5c7d4ca0f45c1629b3f393d360d5c8d035a01", "version": "12.0.1", "port-version": 0 }, { "git-tree": "f4aba951b4604b0846af32c50cf4e6959e0e119d", "version": "12.0.0", "port-version": 2 }, { "git-tree": "4e29a49e78533ec10e3142ae7ad69fdd12c8d163", "version": "12.0.0", "port-version": 1 }, { "git-tree": "881bfaaab349dae46929b36e5b84e7036a009ad3", "version": "12.0.0", "port-version": 0 }, { "git-tree": "21fea47a1e9c7bf68e6c088ad5a6b7b6e33c2fcb", "version": "11.0.0", "port-version": 0 }, { "git-tree": "04944a4d39fe590b7fed071475502fa8bcfe5a27", "version": "10.0.1", "port-version": 4 }, { "git-tree": "3829a0697ffe3ba8cb1274e2edd7cfbcbc48482b", "version": "10.0.1", "port-version": 3 }, { "git-tree": "ea9873418e3de2180518389baa3562084a566702", "version": "10.0.1", "port-version": 2 }, { "git-tree": "91895876dde6f03ad68b3711923d55f841588536", "version": "10.0.1", "port-version": 1 }, { "git-tree": "42a4cdb1defb73cc86758beb77949124e2cbbf6c", "version": "10.0.1", "port-version": 0 }, { "git-tree": "ab325846893f2dc3382b7b403bf195645ab93a39", "version": "10.0.0", "port-version": 0 }, { "git-tree": "757fb3dc2404c152b9628f324087a761070406c4", "version": "9.0.0", "port-version": 0 }, { "git-tree": "d53797d201548a07be19eaf7d12d87198c458636", "version": "8.0.1", "port-version": 1 }, { "git-tree": "6935bb6b1a309931f2f85bd8da334b9777d51a4a", "version": "8.0.1", "port-version": 0 }, { "git-tree": "4334074d163357f9002145ca722dc8dbcc546dbc", "version": "8.0.0", "port-version": 0 }, { "git-tree": "9beefb8449a167f6dbcbe35a2bd2b7d3cb2889a2", "version": "7.0.0", "port-version": 3 }, { "git-tree": "3d3371b4741fc81354b2033d584c48a1929373f4", "version": "7.0.0", "port-version": 2 }, { "git-tree": "71eea8dac175d368506f19bb246b40bf4829846a", "version": "7.0.0", "port-version": 1 }, { "git-tree": "3682e12e1b3f3aa79551877b157ff3d914cb5c90", "version": "7.0.0", "port-version": 0 }, { "git-tree": "b12626f29cb0ba8a049241153af0dfeca9a810d7", "version": "6.0.1", "port-version": 1 }, { "git-tree": "a192a94717139642a1e9304cdc1ae86850398fb9", "version": "6.0.1", "port-version": 0 }, { "git-tree": "14ddd1079e0be1f6122e93f2103be465f893b37e", "version": "6.0.0", "port-version": 0 }, { "git-tree": "8a30c7d6553216924aa3a3957ceb87d0fda39592", "version": "5.0.0", "port-version": 2 }, { "git-tree": "79938475d53bb40ad7bf8d0fbda9e65f7630dde7", "version": "5.0.0", "port-version": 1 }, { "git-tree": "bf5c2b42bb8c4efa09d69a4ce6e75ae3ace45f02", "version": "5.0.0", "port-version": 0 }, { "git-tree": "09e65930903c5dad92250b8f3f351f06f77f8e30", "version": "4.0.0", "port-version": 1 }, { "git-tree": "2066704ab2b0b5977bcd5677ea1378fac0b0555c", "version": "4.0.0", "port-version": 0 }, { "git-tree": "bc9cb096ffa223f2af620db18ed244d17e47ffe7", "version-string": "3.0.0", "port-version": 0 }, { "git-tree": "604537d50ab45ff96911b5330c51137ac5fc4040", "version-string": "1.0.1", "port-version": 2 }, { "git-tree": "be3074d5934a54a0595d65d172a2a2d906d5ec91", "version-string": "1.0.1", "port-version": 1 }, { "git-tree": "eb5f80ce39b4ba0842b1cb1c5077d42f17785b25", "version-string": "1.0.1", "port-version": 0 }, { "git-tree": "5044fd2ee5182bbda8b1d1173d09829494e9b9c3", "version-string": "1.0.0", "port-version": 0 }, { "git-tree": "d809f7bd41d0b826cb5bb9aa1ec6fa1662270ba2", "version-string": "0.17.1", "port-version": 0 }, { "git-tree": "7cd5a5f2d222b71099f529f6c7965f60002ce1a5", "version-string": "0.17.0-2", "port-version": 0 }, { "git-tree": "c2e58d5b8f273280512f3fd368b5ebe1e15fa77f", "version-string": "0.17.0-1", "port-version": 0 }, { "git-tree": "1a38e418d3c0ff8068a348fd9be7b56a91c07fed", "version-string": "0.17.0", "port-version": 0 }, { "git-tree": "87f44dc6a17cd7d29daec3d81c9d9bb2360a7a98", "version-string": "0.16.0", "port-version": 0 }, { "git-tree": "146a5af0ecbf438e35f9e0dcafc962c0d7a01333", "version-string": "0.15.1", "port-version": 0 }, { "git-tree": "e5633dfddebee8fe155dbe844bbfa605021eb513", "version-string": "0.16.0", "port-version": 0 }, { "git-tree": "9c1913e23a13f374fa40ca0a2f3faf3507295950", "version-string": "0.15.1", "port-version": 0 }, { "git-tree": "2e43c6b165eb93e14f0cc5455e94ad4901f0dc93", "version-string": "0.14.1-1", "port-version": 0 }, { "git-tree": "057b3df9f5accf607b256740d57ef52d4767bb6f", "version-string": "0.14.1", "port-version": 0 }, { "git-tree": "8bbcceba647f76d767bc091df746b25cb5e2c93c", "version-string": "0.13.0-4", "port-version": 0 }, { "git-tree": "84856823fe2bdf8f91b0b8578b05701e67b5c490", "version-string": "0.13.0-3", "port-version": 0 }, { "git-tree": "fc32bf086a868c7e241de1cdbe38e6715f7e55cc", "version-string": "0.13.0-2", "port-version": 0 }, { "git-tree": "45b01fb66fee5fcddee02c1739988408358474b3", "version-string": "0.13.0-1", "port-version": 0 }, { "git-tree": "96330c763d3cd5d7c0f733c19b56e59bfdb5a1de", "version-string": "0.13.0", "port-version": 0 }, { "git-tree": "488e7538261148c4b8f3dc0482c33871297e24c9", "version-string": "0.11.1", "port-version": 0 }, { "git-tree": "19aa1a29600333325990c981fd3fb8fbe0c0330f", "version-string": "0.9.0-1", "port-version": 0 }, { "git-tree": "48ccb35a5d68f54398fae0bc0d8f55508a405c18", "version-string": "0.6.0-1", "port-version": 0 }, { "git-tree": "f20f5071e4d65267e34c2a6b7641ccb30ea881d7", "version-string": "0.6.0", "port-version": 0 }, { "git-tree": "e98f2877f3936625ea17a1ef6da69b8c3e634933", "version-string": "apache-arrow-0.4.0-1", "port-version": 0 }, { "git-tree": "dd778519bde3107f576c7960193c2dbc551ec884", "version-string": "apache-arrow-0.4.0 ", "port-version": 0 } ] } ================================================ FILE: versions/a-/arsenalgear.json ================================================ { "versions": [ { "git-tree": "92095c99ebc06217b1ba3d01ac35e7826b1d9391", "version": "2.1.1", "port-version": 0 }, { "git-tree": "a84d69248b9378514cab7ebc7d7a8901ee579542", "version": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/arun11299-cpp-subprocess.json ================================================ { "versions": [ { "git-tree": "c4fac4523bb15be0c0ef151ae919ad604626cde6", "version": "2.5", "port-version": 0 }, { "git-tree": "7d613f0bdb1d9ccf52f8aa1bcaf6e31770bb9f40", "version": "2.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/ashes.json ================================================ { "versions": [ { "git-tree": "f2a5f4f80d32f3b72e20d5eeff4838cea13f76ef", "version-date": "2023-03-12", "port-version": 0 }, { "git-tree": "f87e3684259242b878a7ab5617dd0350a6565a15", "version-date": "2022-06-08", "port-version": 0 }, { "git-tree": "96b165dc0ea6c62aeabea274f6833c55feaccdd1", "version-date": "2022-04-03", "port-version": 1 }, { "git-tree": "365d042da082df035fb7dba0a53e1a4ac306f469", "version-date": "2022-04-03", "port-version": 0 }, { "git-tree": "68557018b215aba6325caf97248c62955fdef397", "version-date": "2021-06-18", "port-version": 1 }, { "git-tree": "3d20e63c5d3a016d41571baefa723a23113c13c3", "version-date": "2021-06-18", "port-version": 0 }, { "git-tree": "5e0e57612b419c8cdb33f26195213626c59e7efd", "version-string": "2021-02-09", "port-version": 0 }, { "git-tree": "6b5482b87c4a123fe71d94ede2e04296a7281b9b", "version-string": "2020-10-21", "port-version": 0 } ] } ================================================ FILE: versions/a-/asio-grpc.json ================================================ { "versions": [ { "git-tree": "14d68fc8923d9965f2bc25796e9d987c4d60a178", "version": "3.6.0", "port-version": 0 }, { "git-tree": "954ca09009ecc242f746d618b9f56fb2d52dddea", "version": "3.5.2", "port-version": 0 }, { "git-tree": "338c53daa90f60cd8526c0d731883e04619792ff", "version": "3.5.1", "port-version": 0 }, { "git-tree": "83bd2236220ffe55e562231e833900877d5ddd3e", "version": "3.4.3", "port-version": 0 }, { "git-tree": "b71e13670a7d0f41f78cd965030b3cb282c8372b", "version": "3.4.2", "port-version": 0 }, { "git-tree": "906e1ea198ec813dd0e8f82900c837ad50d97697", "version": "3.4.1", "port-version": 0 }, { "git-tree": "18a08cb300f4977e9dc63013f4bcbd2a200667d8", "version": "3.4.0", "port-version": 0 }, { "git-tree": "4d865e8676a6b5f365872eba731c3a8ab9cc7773", "version": "3.3.0", "port-version": 0 }, { "git-tree": "81996396008f6d7bef70f363e9fcbc04d46665f8", "version": "3.2.1", "port-version": 0 }, { "git-tree": "e7b658f361294340b82054d2dac6ac7f654f8447", "version": "3.2.0", "port-version": 0 }, { "git-tree": "06be4602d2e43a7e1cc17115406dd2b8e85028dc", "version": "3.1.0", "port-version": 0 }, { "git-tree": "be24e542dd3197c37cfa126b3f6dfa5a038f9e14", "version": "3.0.0", "port-version": 0 }, { "git-tree": "b44fde11329382d82a28a9df22b82861cedf4551", "version": "2.9.3", "port-version": 0 }, { "git-tree": "9442924978688fdb467c605e2944a6b1c6749981", "version": "2.9.2", "port-version": 0 }, { "git-tree": "4f03cf73ec5ddb5be5e21f4ce6c7f442ac53a769", "version": "2.9.0", "port-version": 0 }, { "git-tree": "ab210d20b701caf5c71159529c8b4f163df0c5cc", "version": "2.8.0", "port-version": 0 }, { "git-tree": "b0650c5252b1fb7f0ec616bb3aa9ef7c51732698", "version": "2.7.0", "port-version": 0 }, { "git-tree": "bc957d3a72f3565dfa6511e3d18948f136c926d2", "version": "2.6.0", "port-version": 0 }, { "git-tree": "90bb2e110b91caee0ca783b9652cbf212f8fed5b", "version": "2.5.1", "port-version": 0 }, { "git-tree": "499f0360945116ec3bdd693c8ce4591e54e0fb7a", "version": "2.5.0", "port-version": 0 }, { "git-tree": "a8042a83e6e7f04083064bdada7241cbeda0cb06", "version": "2.4.0", "port-version": 0 }, { "git-tree": "7c97017fff0f50acd23dd77e6f380034590b68ff", "version": "2.3.0", "port-version": 0 }, { "git-tree": "b56f11e8c696aa07e5e7bcac8a863e02d2682650", "version": "2.2.0", "port-version": 0 }, { "git-tree": "83bc5845eda6123bd774834bd5f105294720fef2", "version": "2.1.0", "port-version": 0 }, { "git-tree": "f4cbd771c2f7eb1d18b71df82696cb23292370fe", "version": "2.0.0", "port-version": 0 }, { "git-tree": "3f73fa275b5f4d19d244b7212b8c7ae61135fc95", "version": "1.7.0", "port-version": 0 }, { "git-tree": "6decc4befbc311b08e2229bf58da567d8a86561c", "version": "1.6.0", "port-version": 0 }, { "git-tree": "56b29ba569fb72539675ca51ecf3c83fcf8eb0ba", "version": "1.5.1", "port-version": 0 }, { "git-tree": "895af5509d20a5f310a5fa7285bd2e8e24e75548", "version": "1.4.0", "port-version": 0 }, { "git-tree": "b68efdc2a8b782df2489156675bb4a4e95c7a221", "version": "1.3.1", "port-version": 0 }, { "git-tree": "39ad0d8203c21698ba153d6951de8295954028eb", "version": "1.1.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/asio.json ================================================ { "versions": [ { "git-tree": "834d3e0f600aa8cfa2303a7e29f8b938aff6c894", "version": "1.32.0", "port-version": 1 }, { "git-tree": "d1b402afe0e4c5b8efb08dcc8be6b0c90900a55e", "version": "1.32.0", "port-version": 0 }, { "git-tree": "2c04598bad69b7562ec517525d8312036d428fd1", "version": "1.31.0", "port-version": 0 }, { "git-tree": "17ce1a2d17d0cb0d50eb72c89a9e51f472ef31f4", "version": "1.30.2", "port-version": 0 }, { "git-tree": "9e307fe0a4e0e82f761ef6b6b15dc34f847fae6d", "version": "1.29.0", "port-version": 0 }, { "git-tree": "4c8d95a50172d0fd6bf736540379a37a4ec0a512", "version": "1.28.2", "port-version": 0 }, { "git-tree": "c0b1256bf350481cdba09fb8586852ca0560e024", "version": "1.28.1", "port-version": 0 }, { "git-tree": "726d66784925af6062a5a8f285c76dab2469572f", "version": "1.28.0", "port-version": 1 }, { "git-tree": "7dde6674d23759f187d73d08f3bd869562a41e8d", "version": "1.28.0", "port-version": 0 }, { "git-tree": "b134a3e21a2ef661aa5e3802cefc22386c095aaa", "version": "1.24.0", "port-version": 1 }, { "git-tree": "bba8740d419878e427c71f076d569f8a26833c6b", "version": "1.24.0", "port-version": 0 }, { "git-tree": "029bab0230676c0a38979db2b89076983401e553", "version": "1.23.0", "port-version": 0 }, { "git-tree": "fbf8b87b680829fee5a422169f3d73df4392d8cf", "version": "1.22.1", "port-version": 0 }, { "git-tree": "b16ad8ba502540b3b34a29552f6937951e08e5e6", "version": "1.20.0", "port-version": 0 }, { "git-tree": "c6bba20de9d8e7d6278ab8d7b333bb14bd35f21f", "version": "1.19.2", "port-version": 0 }, { "git-tree": "ae594f45685a04883ec38208caf740ee9c9635e8", "version": "1.18.2", "port-version": 0 }, { "git-tree": "09afe8ce875f1c4e5e46d54c7c8bd5d0b9b512fc", "version": "1.18.1", "port-version": 1 }, { "git-tree": "f564160afbc91228b0fe5c48f8f4c0b7dcd99b31", "version": "1.18.1", "port-version": 0 }, { "git-tree": "49f198a6e3cf688db2a0fe78de28214397fdd39d", "version-string": "1.18.0", "port-version": 0 }, { "git-tree": "73931d34afbd50a664751df84991865ae89af7e4", "version-string": "1.12.2-2", "port-version": 0 }, { "git-tree": "5f4d959b8b58a77d149f7aa083f6b525872bff99", "version-string": "1.12.2-1", "port-version": 0 }, { "git-tree": "4d9f361442f1c97e98d449999c2bda4e181fc5df", "version-string": "1.12.2", "port-version": 0 }, { "git-tree": "463163c76085b16d8c9d7996810930da06ae0380", "version-string": "1.12.1-1", "port-version": 0 }, { "git-tree": "a428645a3450eb5822d31b1347bf1b69d899f4be", "version-string": "1.12.1", "port-version": 0 }, { "git-tree": "fc627635b936a7422fd66c1f1f64034510ca08d1", "version-string": "1.12.0-2", "port-version": 0 }, { "git-tree": "57277aed65e6c97f789356a796e29aee7c9133ef", "version-string": "1.12.0-1", "port-version": 0 }, { "git-tree": "697366e6e4661a88923558ffcff92838aa344c25", "version-string": "1.12.0", "port-version": 0 }, { "git-tree": "d99e0e51fee4f8a8df42844a48a8852fa2d7283f", "version-string": "1.10.8-1", "port-version": 0 }, { "git-tree": "404c7cb32cc6450b82fb99c07e6ba05e4228539f", "version-string": "1.10.8", "port-version": 0 }, { "git-tree": "ec4bac325cbc717f0bbb02c9492a4914728d3d84", "version-string": "1.10.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/asiochan.json ================================================ { "versions": [ { "git-tree": "4f50cae4125b9c7d28002560aa2b7a16f8d7baa8", "version-date": "2022-11-25", "port-version": 1 }, { "git-tree": "857feb5fd868cdae02e6bb9d6252174a9a39cb61", "version-date": "2022-11-25", "port-version": 0 } ] } ================================================ FILE: versions/a-/asiosdk.json ================================================ { "versions": [ { "git-tree": "6f4a38624d2cf6d4de0949eecdf357fd18f5f852", "version": "2.3.4", "port-version": 2 }, { "git-tree": "49043709b884e2123f167a92188476050ddb02c7", "version": "2.3.4", "port-version": 1 }, { "git-tree": "995bc94ecf43d85d36831f063d9c11d3710a88e5", "version": "2.3.4", "port-version": 0 }, { "git-tree": "798527dff966ba5c7ef8aab89eb941791d682090", "version": "2.3.3", "port-version": 7 }, { "git-tree": "a58f240a86a38690339c96b11db0a62fd2388e4f", "version": "2.3.3", "port-version": 6 }, { "git-tree": "75f1c1ef95024543bf7298ba4389eafe67b9f473", "version": "2.3.3", "port-version": 5 }, { "git-tree": "101bbdad9205db5b4249eae8b47bf8c5f73493a8", "version": "2.3.3", "port-version": 4 }, { "git-tree": "870921549ca1a681fe04ba3a0c17586995c1b567", "version": "2.3.3", "port-version": 3 }, { "git-tree": "0684d33e2d5d248ba33f92751154cb58512e2511", "version": "2.3.3", "port-version": 2 }, { "git-tree": "d2330df0e338b51a2e303ed1d0403545883b7428", "version-string": "2.3.3-1", "port-version": 0 }, { "git-tree": "42ef941b2c44f84dff260c30f892cb626b6ee76c", "version-string": "2.3.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/asmjit.json ================================================ { "versions": [ { "git-tree": "88ff534e5bff4ad41d0baf07968d767f4a5baa12", "version-date": "2025-10-13", "port-version": 0 }, { "git-tree": "73026ced267f3dc6bb1da26712476034cfa2a004", "version-date": "2025-10-12", "port-version": 0 }, { "git-tree": "7edf4fd2716465738a0d0eb8a199a828f0ba7aef", "version-date": "2025-01-22", "port-version": 0 }, { "git-tree": "31ca0526f2e64a853da3f75e931a9b17c5af7014", "version-date": "2024-06-28", "port-version": 0 }, { "git-tree": "e226149f3b22da2162e7d93eacc9f19411401e62", "version-date": "2023-03-25", "port-version": 0 }, { "git-tree": "adc2ad6be145c9cbf66d606bddc56267b02e41bf", "version-date": "2022-11-06", "port-version": 0 }, { "git-tree": "f67010904c0f2d7a1d79a647ea928aece3e66750", "version-date": "2021-10-26", "port-version": 1 }, { "git-tree": "3ce58638bee35ef08b3ee8286c1e519b171c39bf", "version-date": "2021-10-26", "port-version": 0 }, { "git-tree": "beb9e328e4d8c0575319af439ec4f810cf0bfa40", "version-string": "2020-09-14", "port-version": 1 }, { "git-tree": "ce18730abf423893475a9addc5c55cea38964e0b", "version-string": "2020-09-14", "port-version": 0 }, { "git-tree": "fa0c36ba15b48959ab5a2df3463299e1d2473b6f", "version-string": "2020-07-22", "port-version": 0 }, { "git-tree": "39200e33a095d15021817855a9fefa990ab7d2e4", "version-string": "2020-05-08", "port-version": 0 }, { "git-tree": "5bca13a7f4b836d2374bda5fa0efffd111605173", "version-string": "2020-02-08", "port-version": 0 }, { "git-tree": "6d945eeaa2d16fee0d06c8aa24fc68ea311ce972", "version-string": "2020-01-20", "port-version": 0 }, { "git-tree": "36ac008bddeab18b7a6624d32650ebbebcd48542", "version-string": "2019-07-11", "port-version": 0 }, { "git-tree": "c8f517fbc415e6e0025d4f75f3bc94bc08552f6b", "version-string": "2019-03-29", "port-version": 0 }, { "git-tree": "d69f0c00009f2dfabf734adbc695f200feae82d9", "version-string": "2019-01-30", "port-version": 0 }, { "git-tree": "d880c763130f58ffe017d06af086668cfd0c03f4", "version-string": "2018-12-14", "port-version": 0 }, { "git-tree": "40297c743469da0422db8bebed32b15aa2e6de19", "version-string": "2018-11-08", "port-version": 0 }, { "git-tree": "ab02180a87128ab2f2cee98de3c7ed8ed0ff4fbc", "version-string": "673dcefaa048c5f5a2bf8b85daf8f7b9978d018a", "port-version": 0 } ] } ================================================ FILE: versions/a-/asmtk.json ================================================ { "versions": [ { "git-tree": "29f1e796d085204c9552c62adbe7279acfd8f3d9", "version-date": "2022-11-06", "port-version": 1 }, { "git-tree": "9805dcacbdaa6f23d28fac07d973d22c2d00aec5", "version-date": "2022-11-06", "port-version": 0 } ] } ================================================ FILE: versions/a-/asock.json ================================================ { "versions": [ { "git-tree": "832e34723267ac661096932a7a973437b3b41f7a", "version": "1.0.7", "port-version": 0 }, { "git-tree": "2837b472a764c4664feec93815d74f72a6a98504", "version": "1.0.6", "port-version": 0 }, { "git-tree": "750015f1faba2e1cea1885da151acdeb678073d1", "version": "1.0.5", "port-version": 0 }, { "git-tree": "6384fe914223909ed61d42817e9aaae3d77d56d1", "version": "1.0.4", "port-version": 0 } ] } ================================================ FILE: versions/a-/assimp.json ================================================ { "versions": [ { "git-tree": "844278e86f9a397d023eec5b4395f81f5739c3ad", "version": "6.0.4", "port-version": 0 }, { "git-tree": "cc82b4fe481f060fd2525c8b83a00e91856b2183", "version": "6.0.3", "port-version": 0 }, { "git-tree": "c5281ba1740ef8aeff54f666fbe1c60c0deac076", "version": "6.0.2", "port-version": 1 }, { "git-tree": "6d85ea7782956f46ad985b5888e21eb742526de8", "version": "6.0.2", "port-version": 0 }, { "git-tree": "ae0bcfa4a9cf55854689cf1b68f337b4405e7b85", "version": "6.0.1", "port-version": 0 }, { "git-tree": "3356e9c8083aae3cfcd24dd3269b45e2cae3173f", "version": "5.4.3", "port-version": 0 }, { "git-tree": "205e4ca24e9ba331c232e326707c7b84e78c0720", "version": "5.4.2", "port-version": 0 }, { "git-tree": "f39bd3d7276cff6e379ad68b3b83e5992fa4d2b2", "version": "5.4.0", "port-version": 1 }, { "git-tree": "56a472ae37754b7b3196df332edd5bb38559b614", "version": "5.4.0", "port-version": 0 }, { "git-tree": "379f3ceb0d492f5d41bd9320cfd519da9b94bfa8", "version": "5.3.1", "port-version": 4 }, { "git-tree": "76ae4b01818ee27c5beac4d0b18cb566f94f27ec", "version": "5.3.1", "port-version": 3 }, { "git-tree": "a825878e38726e638f29d4defeadb9108ac20697", "version": "5.3.1", "port-version": 2 }, { "git-tree": "572034c626843af86fe62b64905fd4e79f19535f", "version": "5.3.1", "port-version": 1 }, { "git-tree": "f9934603cb6f42343b122951f22b5af3c1967cde", "version": "5.3.1", "port-version": 0 }, { "git-tree": "bdd963b2ef327bf5e8533689aff4707226e22851", "version": "5.2.5", "port-version": 0 }, { "git-tree": "28eaf490bb2eaaf52c344b8e8dc16d4619cb863e", "version": "5.2.4", "port-version": 0 }, { "git-tree": "cab54d6dedc48fcb9642f5fbe079e61105405543", "version-string": "5.0.1", "port-version": 5 }, { "git-tree": "b0bd03f6677d06cc56fbcecb15ff205a9a43b66c", "version-string": "5.0.1", "port-version": 4 }, { "git-tree": "d4228d8fc413efb47e151af707b6f1036c58b524", "version-string": "5.0.1", "port-version": 3 }, { "git-tree": "835678d00f79a0633e787f2a9bcdf8569b50ce1a", "version-string": "5.0.1", "port-version": 2 }, { "git-tree": "ae7164957f4d0939cd442331dd2a9bfe56430051", "version-string": "5.0.1", "port-version": 1 }, { "git-tree": "1302729a9916e49763f596f27b8f7a078a3e295a", "version-string": "5.0.1", "port-version": 0 }, { "git-tree": "f64ea36b5d8c21c60c59958df022037fe7ed3932", "version-string": "5.0.0-2", "port-version": 0 }, { "git-tree": "c5c58bf13f6c7849d5f7f9d805334fc589848df1", "version-string": "5.0.0-1", "port-version": 0 }, { "git-tree": "d05b368668ecb85ca0e8c3d7727d3639cc11f381", "version-string": "5.0.0", "port-version": 0 }, { "git-tree": "bc39933b997e72876250e65cc0baf94a099394fc", "version-string": "4.1.0-8", "port-version": 0 }, { "git-tree": "56f302b766f710e85906d5b008c2b4b784178038", "version-string": "4.1.0-5", "port-version": 0 }, { "git-tree": "bcd43128f09a1206a231cd5279bb9ec74d75715e", "version-string": "4.1.0-4", "port-version": 0 }, { "git-tree": "a6f54c4aee8b9d96f9944df107bef204e33eeb22", "version-string": "4.1.0-3", "port-version": 0 }, { "git-tree": "ff167f3fc7d4c8177ab371520553be012c466276", "version-string": "4.1.0-2", "port-version": 0 }, { "git-tree": "435f1e736588b3d29f64e8198d58506115db39ab", "version-string": "4.1.0-1", "port-version": 0 }, { "git-tree": "14923a9e7e72c854f259313474be015fc3d67efb", "version-string": "4.1.0", "port-version": 0 }, { "git-tree": "6e0021228c36fd58b2b0648d82d8638404f38004", "version-string": "4.0.1-3", "port-version": 0 }, { "git-tree": "880c6f28522040ec88f7bbff8b46996db50d12e1", "version-string": "4.0.1-2", "port-version": 0 }, { "git-tree": "7feb4e6445d69845d3749b8c46a8aadc9a7b43c7", "version-string": "4.0.1-1", "port-version": 0 }, { "git-tree": "2f1952a8ef4f38ae627e8c39c44eb41668f00d5a", "version-string": "4.0.1", "port-version": 0 }, { "git-tree": "dc206c1ce726af6f25ff75bd1c4590c190601263", "version-string": "4.0.0-2", "port-version": 0 }, { "git-tree": "d3973ad124bd172e9621c53896da2cfa69891101", "version-string": "4.0.0-1", "port-version": 0 }, { "git-tree": "a97b97ef3c6754dbda9d02b7ff41c11a84b260f4", "version-string": "4.0.0", "port-version": 0 }, { "git-tree": "620a3ea9e55329625a48a01a58cd9217c11e5621", "version-string": "3.3.1", "port-version": 0 }, { "git-tree": "4fc82cfbc7d8285e54202eddcffb67757a5d0f48", "version-string": "3.2.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/astr.json ================================================ { "versions": [ { "git-tree": "03a4d5df0219be2719928335f500e520da77e453", "version": "0.3.1", "port-version": 0 }, { "git-tree": "b078ac6518cedf2a9a7ddc711f68008fc1ced988", "version": "0.3.0", "port-version": 0 }, { "git-tree": "a1f0a0fddb4d32a4b31a61a3ba5fb4ce21ef998f", "version": "0.2.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/async-mqtt.json ================================================ { "versions": [ { "git-tree": "3118f939bb63551d7bf83f7940c8f125a98b5b4b", "version": "10.3.0", "port-version": 0 }, { "git-tree": "217a12fbceb5e11fe45a8d7bc9b5c3b67bc5057a", "version": "10.2.8", "port-version": 0 }, { "git-tree": "2b36a71d71ab7aa8d938d6e360c10b94ba48f45c", "version": "10.2.6", "port-version": 0 }, { "git-tree": "496c50a5fc2764aea0609870623c442fc1069607", "version": "10.2.5", "port-version": 0 }, { "git-tree": "552ec916b5c22cf87bc5a601682cd2c780f45b42", "version": "10.2.4", "port-version": 0 }, { "git-tree": "491c6a605b4c9077c9611777a6467018686712d2", "version": "10.2.3", "port-version": 0 }, { "git-tree": "6214788002a711cd5e7aa41c5bbf4f14f27e9f82", "version": "10.2.2", "port-version": 0 }, { "git-tree": "634c9a510132ced26622c1a787b3b9ee5e080695", "version": "10.2.1", "port-version": 0 }, { "git-tree": "01269aa6d1979077818f72cb5a2d358062dba4ef", "version": "10.2.0", "port-version": 0 }, { "git-tree": "66ac61112d588dccdcd25de6b097dc9e499fe9ef", "version": "10.1.0", "port-version": 0 }, { "git-tree": "c074ea0f1a1645b9d42145ed4b68dbf4295723a9", "version": "10.0.0", "port-version": 0 }, { "git-tree": "cf72e6ffff6a04a7970fdd233aed561027fbb8b7", "version": "9.0.2", "port-version": 0 }, { "git-tree": "3eead09afc69661d7dbe73007276c04c7d239346", "version": "9.0.1", "port-version": 0 }, { "git-tree": "c92c43499a7e610def2909bec1e5ace51d8c4729", "version": "9.0.0", "port-version": 0 }, { "git-tree": "492b0473ce4568d2bc5852461c4c75c574ef2941", "version": "8.0.1", "port-version": 0 }, { "git-tree": "a46b733b06a4305733c5e81235a270e6d22db445", "version": "8.0.0", "port-version": 0 }, { "git-tree": "286bc76359a1cd98053b0a9a8ff81047ebf663ad", "version": "7.0.0", "port-version": 0 }, { "git-tree": "07727b962d881bbeb5b65b5677e1e9c67be96c02", "version": "5.1.1", "port-version": 0 }, { "git-tree": "ed58076eabe5415b20f4b7cd91bb692c8ff7d979", "version": "5.1.0", "port-version": 0 }, { "git-tree": "d36fdfa7382dee22c5cdbe864210d58fc66921d4", "version": "5.0.0", "port-version": 0 }, { "git-tree": "80ea1a3fc3a7fdf9b460d83e73670cd0da87761c", "version": "4.1.0", "port-version": 0 }, { "git-tree": "5cdfa2d3e21b56533c7862336237abeae866b8da", "version": "4.0.0", "port-version": 0 }, { "git-tree": "54a9da56ebb673479269e266208e7b1133ff128a", "version": "3.0.0", "port-version": 0 }, { "git-tree": "1785cef2cfd89416b423c3a67c5ef0ef29c76100", "version": "2.0.0", "port-version": 0 }, { "git-tree": "f7194dfdf664f2037e9917fd58220d421dc9de76", "version": "1.0.9", "port-version": 0 }, { "git-tree": "e68200b49b2f55aaf0e4a597af4dcd6d3f91d478", "version": "1.0.7", "port-version": 0 }, { "git-tree": "9c89da20b589c01a60d633c5a1db2ed36215eb31", "version": "1.0.6", "port-version": 1 }, { "git-tree": "cd1032beeb26ec19d1a9c384b0c8335249292e66", "version": "1.0.6", "port-version": 0 }, { "git-tree": "5d6da6090c0d80cca553b35ad733f0f3a879f0f7", "version": "1.0.5", "port-version": 0 }, { "git-tree": "12788eb6a749ef28ef1dca9d6ab141bdf0458208", "version": "1.0.4", "port-version": 0 }, { "git-tree": "624a7f874eca273e12ebe2ac104d13294c4126bd", "version": "1.0.3", "port-version": 0 }, { "git-tree": "035119f49547730765ec2a296355d550b8ac7920", "version": "1.0.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/async-simple.json ================================================ { "versions": [ { "git-tree": "7ccbf3bf6ba438e770b8ab9c8d59d69c439a5038", "version": "1.4", "port-version": 0 }, { "git-tree": "2a01ce2f978c1616b22f05ef599bfed1f080a626", "version": "1.3", "port-version": 1 }, { "git-tree": "f2ba1d445f31f11bc0311be0de36f56fc40531da", "version": "1.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/asynch.json ================================================ { "versions": [ { "git-tree": "4aa950187368ee03bd5ee5739468fc68ea4c9e0c", "version-date": "2019-09-21", "port-version": 3 }, { "git-tree": "e656692601ab76c652a9b09c98bb36ee8723f9c0", "version-string": "2019-09-21", "port-version": 2 }, { "git-tree": "4955ffe2f2e53d427532418c0a77e9b5ec94b0aa", "version-string": "2019-09-21-1", "port-version": 0 }, { "git-tree": "29a5b1b0fabe2bf4f1477f263087ccf135e298d3", "version-string": "2019-09-21", "port-version": 0 } ] } ================================================ FILE: versions/a-/asyncplusplus.json ================================================ { "versions": [ { "git-tree": "7c34412bc47db8ec8e11e9c8569791d5da5199cc", "version": "1.2", "port-version": 0 }, { "git-tree": "454f29e635dba103d5d48a5b1e9ba9842fb4864e", "version": "1.1", "port-version": 2 }, { "git-tree": "15a66956fc29d87d60f48bfc7aa3ca823554734e", "version-string": "1.1", "port-version": 1 }, { "git-tree": "87a28ca122377134fb51ad27cf2a4a800fbc6bd8", "version-string": "1.1", "port-version": 0 }, { "git-tree": "06dc11e4e504f924ed6dfa5dca8ec9270667d87f", "version-string": "1.0-1", "port-version": 0 } ] } ================================================ FILE: versions/a-/at-spi2-atk.json ================================================ { "versions": [ { "git-tree": "3aaf26facd1bac85c7f789fcb3cea4a2b2f623a9", "version": "2.38.0", "port-version": 2 }, { "git-tree": "97535464d9f15ce3bcadaf78ad8031fa3df5eda5", "version": "2.38.0", "port-version": 1 }, { "git-tree": "ebb28a9cdbd06d3185ba2e0cfc1945be23a0a608", "version": "2.38.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/at-spi2-core.json ================================================ { "versions": [ { "git-tree": "06c6d76c43fffcbc98dc24430c71e11c70d5cf7f", "version": "2.44.1", "port-version": 5 }, { "git-tree": "66a8d4aed115594b848ea104cd8bb8a4a7899e64", "version": "2.44.1", "port-version": 4 }, { "git-tree": "5143414003b96ead1ffe40c57c9bf764bf64b0c0", "version": "2.44.1", "port-version": 3 }, { "git-tree": "897df7693a8a1addc3a5ab84efabef89e4cef1d8", "version": "2.44.1", "port-version": 2 }, { "git-tree": "72611608fcbd5e1a1b867a88e4810d75ddc94fdf", "version": "2.44.1", "port-version": 1 }, { "git-tree": "dd1e736f89692df6c27db81eed2269458666841b", "version": "2.44.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/atk.json ================================================ { "versions": [ { "git-tree": "756182a4640340b46a1470472ccca37ebf75ac45", "version": "2.38.0", "port-version": 11 }, { "git-tree": "13fcc8a6fb7b937d315ad06c223fa85860a3ca5a", "version": "2.38.0", "port-version": 10 }, { "git-tree": "61672c57e8e69aa513f352781240addf75670a4d", "version": "2.38.0", "port-version": 9 }, { "git-tree": "c97f8dd9d133fb3e75abf33040b3ec61e032734d", "version": "2.38.0", "port-version": 8 }, { "git-tree": "d21ac2c541d67128cafda7c4b190e217cb943174", "version": "2.38.0", "port-version": 7 }, { "git-tree": "6c40b0b29185c3bf172af4eaca94e38a892221b2", "version": "2.38.0", "port-version": 6 }, { "git-tree": "0287be8f06bb4da8b89f9edb0aa93258c6d36f1e", "version": "2.38.0", "port-version": 5 }, { "git-tree": "849d0f35a03bea3d5871f8e8bbaae5d476f20798", "version": "2.38.0", "port-version": 4 }, { "git-tree": "648ef40c1a892940c1a4c501123cafacd86e4f5a", "version": "2.38.0", "port-version": 3 }, { "git-tree": "e6aebc3163947c210e176a1e9ab0ddd1c6c7d0bf", "version": "2.38.0", "port-version": 2 }, { "git-tree": "4034b57da4c9eeb30d6904339be721b7e45f8a89", "version": "2.38.0", "port-version": 1 }, { "git-tree": "9e43338e95e4bfeb688d23ade7792fb45b185356", "version": "2.38.0", "port-version": 0 }, { "git-tree": "15723fa24f08f04e859253b16f5cbc05529d10cf", "version": "2.36.0", "port-version": 2 }, { "git-tree": "cf5656ae96a202ad1846f5cb233cc4daf4f3336d", "version": "2.36.0", "port-version": 1 }, { "git-tree": "b8ace143cf9715262f419c85a5840fa15a4cf0ce", "version": "2.36.0", "port-version": 0 }, { "git-tree": "28ffcc285239b3ca0d99752bc740f9349f996ad1", "version-string": "2.24.0-5", "port-version": 2 }, { "git-tree": "8b340fffd56bb314c9013f55af518bf111af666b", "version-string": "2.24.0-5", "port-version": 1 }, { "git-tree": "18245a7bfaf409eba114baf41896ca126163851e", "version-string": "2.24.0-5", "port-version": 0 }, { "git-tree": "791aa9841eab23cc72d2f98381ed132a32567035", "version-string": "2.24.0-4", "port-version": 0 }, { "git-tree": "4df135cf73816939af5416dca1e535553a4b035e", "version-string": "2.24.0-3", "port-version": 0 }, { "git-tree": "bc8acf75ad0c136ff158548200c08dfa0f59cb42", "version-string": "2.24.0-2", "port-version": 0 }, { "git-tree": "faf0b23eedbc6ea044f3730cc1b525f663b3d11b", "version-string": "2.24.0-1", "port-version": 0 }, { "git-tree": "aad9b11c6426bc739a899deb478fd4f49f70c3f5", "version-string": "2.24.0", "port-version": 0 }, { "git-tree": "d99d3626bf81d50c0c51d3c39592d00178c0db26", "version-string": "2.22.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/atkmm.json ================================================ { "versions": [ { "git-tree": "4b42bc112850ef59493e65d67cf5bbfb40011fac", "version": "2.36.3", "port-version": 0 }, { "git-tree": "98ad8f81a31186ba590b553c5e99d4ea5415eb64", "version": "2.36.1", "port-version": 2 }, { "git-tree": "d9acaf9d071486528917fa62e0315a65d2c4ed6d", "version": "2.36.1", "port-version": 1 }, { "git-tree": "f0bad5eb22d4affecd3eb08be801a8692b5704c6", "version": "2.36.1", "port-version": 0 }, { "git-tree": "bd4ca61c3b3fcfbadf494e019aa13a659eeff930", "version": "2.36.0", "port-version": 2 }, { "git-tree": "340ce8d9ccb6154374ecbe6bf6c9a70b83442578", "version": "2.36.0", "port-version": 1 }, { "git-tree": "1feae8dc89c99e89b47bb8a028cca2e77d9d4352", "version": "2.36.0", "port-version": 0 }, { "git-tree": "6147b7b2b6af5fac8a05e48cb4e624fb2fdde235", "version-string": "2.24.2", "port-version": 5 }, { "git-tree": "e3fe7e543a9580c2ea9116d66376d2744cd627ed", "version-string": "2.24.2", "port-version": 4 }, { "git-tree": "528633a4adac405a9fc4ee39ae45352ab47c6f98", "version-string": "2.24.2", "port-version": 3 }, { "git-tree": "e1ec86f38809f14d500d14012da83824c1538071", "version-string": "2.24.2-2", "port-version": 0 }, { "git-tree": "33fec2fc8ed32dd427c1e27252b3ec9af049f8df", "version-string": "2.24.2-1", "port-version": 0 }, { "git-tree": "b3eca50169f8ca7c03816ac3486269e2512b59fa", "version-string": "2.24.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/atl.json ================================================ { "versions": [ { "git-tree": "8377a72c91d9c135f3cb8524c3d43571de2e3d20", "version": "0", "port-version": 1 }, { "git-tree": "0cf33fe03c09b26209c1162fee2bb2c5538f8b0f", "version": "0", "port-version": 0 } ] } ================================================ FILE: versions/a-/atliac-minitest.json ================================================ { "versions": [ { "git-tree": "2013d9feb683a1cbd74aa2190af932dfdb4f7580", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/atlmfc.json ================================================ { "versions": [ { "git-tree": "cde2247ecf111c629f61c1975275e9433fad9756", "version": "0", "port-version": 4 }, { "git-tree": "1a6d710d7d3ffd42089aa001571c625805f59918", "version": "0", "port-version": 3 }, { "git-tree": "60bac7802a9cdb32192315262495b647af36b723", "version": "0", "port-version": 2 }, { "git-tree": "509a448c797ddb6cf67ba179b6edff02fee17865", "version-string": "0", "port-version": 1 }, { "git-tree": "bf15a689a8ab4c50dbf2e6eef2c3a7fff5e6dd8f", "version-string": "0", "port-version": 0 } ] } ================================================ FILE: versions/a-/atomic-queue.json ================================================ { "versions": [ { "git-tree": "f44a161216e9d3e47cd77cb90ebb646c50d5af71", "version": "1.7.2", "port-version": 0 }, { "git-tree": "e97b5dcafeb90882b25f52ab4c8bef1ae97d7c43", "version": "1.7.1", "port-version": 0 }, { "git-tree": "2f7ee9977924361c4eb0e35c247fb1623758fc06", "version": "1.6.9", "port-version": 0 }, { "git-tree": "112f3b80ceea3d9b594fa58aed6ead69044c34c9", "version": "1.6.6", "port-version": 0 }, { "git-tree": "f66ffc7a1238fb105af0cd946544c2a94600fce9", "version": "1.6.5", "port-version": 0 }, { "git-tree": "b88cd34bcb65c0fa36106282bd37722c6a65e853", "version": "1.6.4", "port-version": 0 }, { "git-tree": "7b1bca0b58cc1f6d9571df7ab750292a8a4ac25f", "version": "1.6.3", "port-version": 0 }, { "git-tree": "045962c06085fe2da8633106b2170b29f4febe47", "version": "1.5", "port-version": 0 }, { "git-tree": "a32a426d9c16a0067532134ecb6680ee7928f7f7", "version-date": "2021-05-03", "port-version": 0 } ] } ================================================ FILE: versions/a-/attr.json ================================================ { "versions": [ { "git-tree": "9469e87c26e686294ae881a7ef4fbf1d18d34057", "version-semver": "2.5.2", "port-version": 1 }, { "git-tree": "8c3b068a238cc47f966236ab2c5e190970923f1a", "version-semver": "2.5.2", "port-version": 0 }, { "git-tree": "2348d8cea7b1c70c26139bbf366d57830cea8bf5", "version-semver": "2.5.1", "port-version": 1 }, { "git-tree": "99ae42f2118c5c6d128b332dd5e914aeba6702d9", "version-semver": "2.5.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aubio.json ================================================ { "versions": [ { "git-tree": "b5f414308d7e12254ed56a880f77b4218c163a5b", "version-date": "2024-01-03", "port-version": 1 }, { "git-tree": "31db883042c73ae81e74c010dca29c7fc4e273f9", "version-date": "2024-01-03", "port-version": 0 }, { "git-tree": "e51e332257e4b788828390a39d86109000d5b960", "version-date": "2022-01-26", "port-version": 1 }, { "git-tree": "2e15f362018acee6d200577e41252e911eef35f0", "version-date": "2022-01-26", "port-version": 0 }, { "git-tree": "511a11ecdc92221bcde518ad98f22512788a07a4", "version-semver": "0.4.9", "port-version": 9 }, { "git-tree": "4888190139ae3bd7f3fdb15f79453b25f59a45f5", "version-semver": "0.4.9", "port-version": 8 }, { "git-tree": "b7115b787e5f71bf65454f4c3cff3ec85b4eb264", "version-semver": "0.4.9", "port-version": 7 }, { "git-tree": "0abf18908332cd2ccfe8e298f8fd90c0db42dcd9", "version-semver": "0.4.9", "port-version": 6 }, { "git-tree": "229c53eddabe48fa718f95c3dd3094a694770a19", "version-semver": "0.4.9", "port-version": 5 }, { "git-tree": "a5fd622dc9d70a1f4cca1e6bc09829e1844b7e0f", "version-string": "0.4.9", "port-version": 4 }, { "git-tree": "4623a0698d9f9775a12e41f282e2b131f32ea09f", "version-string": "0.4.9", "port-version": 3 }, { "git-tree": "3a1b37a405232977d957c365019ed85a4c8ad009", "version-string": "0.4.9", "port-version": 2 }, { "git-tree": "fc538d2460c0110f71b3255826c3b193175422c2", "version-string": "0.4.9-1", "port-version": 0 }, { "git-tree": "a202c56d375aa33d948e71f1f776fc9cc4a09eab", "version-string": "0.4.9", "port-version": 0 }, { "git-tree": "00cf95c6fcb5d83046fb353c910e70d8d1a980a1", "version-string": "0.4.8-1", "port-version": 0 }, { "git-tree": "7f4ce7b7e1d4bd4c99c23fa8cac84163db0b4468", "version-string": "0.4.8", "port-version": 0 }, { "git-tree": "2a8f1ef1cbfc2fe87239bbe379490e6452acc276", "version-string": "0.4.6-967e4041f-2", "port-version": 0 }, { "git-tree": "acde13c98ba29a9936de1d4c98c2b4c973970b56", "version-string": "0.4.6-2", "port-version": 0 }, { "git-tree": "005bb8735251e9c77d2c5ced392f01bb05e682bc", "version-string": "0.4.6-1", "port-version": 0 }, { "git-tree": "542773bbef586a34953826aaff9f5a7378004798", "version-string": "0.4.6", "port-version": 0 }, { "git-tree": "fc6b19d961492dc1f1ce5ca068e09b6a7b86314d", "version-string": "0.46", "port-version": 0 }, { "git-tree": "49c57b3338cfcdf1e2613a00b794fe00d4a62b99", "version-string": "0.46~alpha-4", "port-version": 0 }, { "git-tree": "53b5167f7b8d12cd07353feca07203319dfda73a", "version-string": "0.46~alpha-3", "port-version": 0 }, { "git-tree": "be74b6c5a73af43313c11a4d3e64d1dd65f2569a", "version-string": "0.46~alpha-2", "port-version": 0 }, { "git-tree": "fce6ff31ff9335fc9df0eacdedc522f921025a9a", "version-string": "0.46~alpha-1", "port-version": 0 }, { "git-tree": "ff49e16d707219bff9c3e09a00dd119aabb25d1b", "version-string": "0.46~alpha", "port-version": 0 } ] } ================================================ FILE: versions/a-/audioengine.json ================================================ { "versions": [ { "git-tree": "54f570214238600b319b1fd68aa3d95c6ea6ecc0", "version": "1.3", "port-version": 0 }, { "git-tree": "549344685167b21c2b2e9682178852c0ee8cba5a", "version": "1.2", "port-version": 0 }, { "git-tree": "45b274656b338d05a58f7ee5713f3c067c369b8c", "version": "1.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/audiofile.json ================================================ { "versions": [ { "git-tree": "963dc771427f737682cd694e794d6ac9a4a5f7f7", "version": "1.1.4", "port-version": 0 }, { "git-tree": "4a145e7e2504e717f32b5e051d237e2695a906a7", "version": "1.1.3", "port-version": 0 }, { "git-tree": "af5b6cc47eba8f3330b4769643ec814da3be5983", "version": "1.1.2", "port-version": 0 }, { "git-tree": "6f06a6467594b612bfd24dc86f696d07e1c4b500", "version": "1.1.1", "port-version": 0 }, { "git-tree": "fa276b1ad374c2ae6034445b6655518d8f9a23de", "version": "1.1.0", "port-version": 0 }, { "git-tree": "73a1d7555de8baaf7a1b34ca1410d7e9978bf75f", "version": "1.0.9", "port-version": 0 }, { "git-tree": "3bf2b19891a915f88803b1fa079c525e4d253ba0", "version-string": "1.0.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/audit.json ================================================ { "versions": [ { "git-tree": "47e78499832fcefc33777949d86d5042728ac282", "version": "4.1.3", "port-version": 1 }, { "git-tree": "40a0d00dd908fb3ea66083700c31c9e6f7de92c6", "version": "4.1.3", "port-version": 0 }, { "git-tree": "e893a1ee6fc7d03944fbbd2cbc10609fa701e56c", "version": "4.1.2", "port-version": 0 }, { "git-tree": "e72e8d1b72bb7e97d7312821e7ae6a4c19f5b905", "version": "4.0.5", "port-version": 0 }, { "git-tree": "7bc8ba38796968e68cd87e9537c85a803c203b1a", "version": "4.0.2", "port-version": 0 }, { "git-tree": "926ccd42caae517216220ee699e30c86abdf7ed9", "version": "4.0.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aurora-au.json ================================================ { "versions": [ { "git-tree": "d38ed4d58915a03525939af7cacd1cbcd7598c4d", "version-semver": "0.5.1", "port-version": 0 }, { "git-tree": "cd54583c6a7f01110716fe522817a244f319e0fa", "version-semver": "0.5.0", "port-version": 0 }, { "git-tree": "91255ce3759e484bab4763b24ea50de15c0ca560", "version-semver": "0.4.1", "port-version": 0 }, { "git-tree": "291af3f0c1c91f4c93c000063b601e8a2f0636bd", "version-semver": "0.4.0", "port-version": 0 }, { "git-tree": "843b8ff14fe6b933b9888e9badec1595bdcec3bf", "version-semver": "0.3.5", "port-version": 1 }, { "git-tree": "dbea0dd2b0494c189b944e96b477192d37461bb9", "version-semver": "0.3.5", "port-version": 0 } ] } ================================================ FILE: versions/a-/aurora.json ================================================ { "versions": [ { "git-tree": "05d122ad98c50099a3bdbfd845faf2460df6659a", "version": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933", "port-version": 2 }, { "git-tree": "a41f2335fd703ebb6a3dbd4eb20260754cff110c", "version-string": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933", "port-version": 1 }, { "git-tree": "027accab492d7272fdd2d70916fd97f2c36644a3", "version-string": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933", "port-version": 0 } ] } ================================================ FILE: versions/a-/autobahn.json ================================================ { "versions": [ { "git-tree": "6d30e9c65f3f7f62c0020630f26df0f772854996", "version": "20.8.1", "port-version": 2 }, { "git-tree": "2d7687436a474abcf18dd1b5689437218f8f6d36", "version-string": "20.8.1", "port-version": 1 }, { "git-tree": "0389b345f8b7cc5f7c4cfb7a461cee02a76e0034", "version-string": "20.8.1", "port-version": 0 }, { "git-tree": "07faa0f6be019d2d32b1652567bd0bf64c8e419b", "version-string": "18.4.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/autodock-vina.json ================================================ { "versions": [ { "git-tree": "709a2b5bf0bd49c140d8c9e512e5a26e96126a49", "version-semver": "1.2.7", "port-version": 0 }, { "git-tree": "6193478ce94b4232f4d613fc8b8a717ba2b157e4", "version-semver": "1.2.6", "port-version": 1 }, { "git-tree": "fe9bac99748f92bed5428087d5db7c6457f7e7da", "version-semver": "1.2.6", "port-version": 0 }, { "git-tree": "17529fd4b800ef3453f99cf2607e64fea59f6481", "version-semver": "1.2.5", "port-version": 3 }, { "git-tree": "0a1f8b9271d163893c7bcb8f7097e38be9888519", "version-semver": "1.2.5", "port-version": 2 }, { "git-tree": "d962d4e25cc8a74a34729a493203c3060826fa1e", "version-semver": "1.2.5", "port-version": 1 }, { "git-tree": "fbbf68e11b2e95110b26735162c7c07b4db2d670", "version-semver": "1.2.5", "port-version": 0 }, { "git-tree": "05bd7ebce99db7a1d6fb9fa3194e53583d2b3b25", "version-semver": "1.2.3", "port-version": 0 }, { "git-tree": "393884054347c19ff78db882674ce17dd51476e0", "version-semver": "1.2.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/avcpp.json ================================================ { "versions": [ { "git-tree": "4e0e7dc8ef987b1b2f13002eaf3cca4c9927d0a9", "version": "3.0.1", "port-version": 0 }, { "git-tree": "bfc7b9ad3262b1757d1c5e8acccae0d21e2224cc", "version": "2.90.1", "port-version": 0 }, { "git-tree": "90c3ece0f2c58eb8134acebca17036464184a0b5", "version": "2.8.0", "port-version": 0 }, { "git-tree": "f4db5544afbb5ede33ce98bb106ec9eee6f9f6eb", "version": "2.7.1", "port-version": 1 }, { "git-tree": "1b984de5f1030515978eb4e5edf01a02cf384e73", "version": "2.7.1", "port-version": 0 }, { "git-tree": "810881ae390fbb443d46b0d97b61afc80bcef999", "version": "2.6.0", "port-version": 0 }, { "git-tree": "b06ff7d5a249eaa6f633d4fb9ce05b8f6fd8f85b", "version": "2.4.0", "port-version": 0 }, { "git-tree": "35a98b8fdd34b26ecfcb2a8d79f4eb288c2a800b", "version": "2.3.2", "port-version": 0 }, { "git-tree": "0536c50812252994282f92dc60c6be989da16ed3", "version": "2.3.0", "port-version": 0 }, { "git-tree": "37ae9f7b52ea3f3ce0da3c7564f006639816c084", "version": "2.2.1", "port-version": 0 }, { "git-tree": "7227fc33d6f65475816f10bffcdbedd6d2485298", "version": "2.1.0", "port-version": 0 }, { "git-tree": "caf5460d5bfca1d608b7c7eab2bd2872080bf0d8", "version-date": "2021-06-14", "port-version": 1 }, { "git-tree": "b4e6dcc1706046f3b2b6fca62df98bbc7696eb19", "version-date": "2021-06-14", "port-version": 0 }, { "git-tree": "102cfc337c2a08e57246c399812a540315ae4531", "version-date": "2021-05-06", "port-version": 1 }, { "git-tree": "aa82b322b6c59cf758147d78664f3d7ce66a77dc", "version-date": "2021-05-06", "port-version": 0 } ] } ================================================ FILE: versions/a-/avir.json ================================================ { "versions": [ { "git-tree": "c673f17b3e4b881fa4c81c25e9e4fb5bb8e398b4", "version": "3.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/avisynthplus.json ================================================ { "versions": [ { "git-tree": "e75504877f3c24b1d295443a9a52576d8d00b517", "version": "3.7.5", "port-version": 0 }, { "git-tree": "02aec32ec997a98d60fe28b529bc2ad132d4b5c7", "version": "3.7.3", "port-version": 1 }, { "git-tree": "d6a5198252f84212548934db0f73184919283928", "version": "3.7.3", "port-version": 0 }, { "git-tree": "4e89f515dc497bb37dd138d024d572ef318a10fb", "version": "3.7.2", "port-version": 2 }, { "git-tree": "10f62c32226c4f588e4524ebe1ffc36a2ad2165a", "version": "3.7.2", "port-version": 1 }, { "git-tree": "e3749b45c163c78cdd03a7e47223634ba17ab58f", "version-semver": "3.7.2", "port-version": 0 }, { "git-tree": "a585670d79213148e938d9f3ea7d2ccb1c784f2c", "version-semver": "3.7.0", "port-version": 3 }, { "git-tree": "ed06319cd3b2bb9e0811743ca7f66dd9539eabef", "version-semver": "3.7.0", "port-version": 2 }, { "git-tree": "747e0dd9f81ace8b2f473dc455871938d930df28", "version-semver": "3.7.0", "port-version": 1 }, { "git-tree": "3d573152a7d82faefcb525b1d6cf688a1465a71b", "version-semver": "3.7.0", "port-version": 0 }, { "git-tree": "de073b58132bfad56e8b89ece1e9e4c995df607b", "version-string": "3.6.1", "port-version": 0 }, { "git-tree": "5f71f3a1d842ba88c356e32fe1d2fbc487b47855", "version-string": "3.6.0", "port-version": 1 }, { "git-tree": "294672fd504c5667c368b0c3288b6be1e34810cb", "version-string": "3.6.0", "port-version": 0 }, { "git-tree": "04d2366805052941a50dc8db53c45d1a9265bb72", "version-string": "3.5.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/avro-c.json ================================================ { "versions": [ { "git-tree": "6d12f4efe5aee0efe4ff61710e6cbc3100cec7a4", "version": "1.12.1", "port-version": 1 }, { "git-tree": "6eb4af0464788cbbe42de42b1061e0e5cd7c7e07", "version": "1.12.1", "port-version": 0 }, { "git-tree": "9776bebec8f77c6ea2322fec051fae2d12a1f524", "version": "1.12.0", "port-version": 0 }, { "git-tree": "76ef10758076c92faaae286e1d38c1770dc4f23c", "version": "1.11.3", "port-version": 0 }, { "git-tree": "7b07da3abd56565c8d2e75942aab468ece0f3115", "version": "1.11.0", "port-version": 3 }, { "git-tree": "e36456a1ada18a8020e4bb1fffa24b0dc2edfa3e", "version": "1.11.0", "port-version": 2 }, { "git-tree": "75d0ed12b643fe1ed6a175c12549e9bb0ca94a1d", "version": "1.11.0", "port-version": 1 }, { "git-tree": "0b07ed910d3ad0ec9a5be71e1b37f0593ab540c9", "version": "1.11.0", "port-version": 0 }, { "git-tree": "0828484bab48f23c09e440f9df3d9d99dd3caaa0", "version-string": "1.9.2", "port-version": 2 }, { "git-tree": "09783bc724dc91b8c456cbb060043ccb206e8595", "version-string": "1.9.2-1", "port-version": 0 }, { "git-tree": "99bbfcf0dc88ff4fb93fee1e252a1488d0be5bdb", "version-string": "1.9.2", "port-version": 0 }, { "git-tree": "c6e0d310e5ed9c1cac48a2076ba67323acf25882", "version-string": "1.8.2-4", "port-version": 0 }, { "git-tree": "7946d8a20fa3d901dfdcf9a76c361a1c0f9b095d", "version-string": "1.8.2-3", "port-version": 0 }, { "git-tree": "617a18c6d4bf8718e7010da2797c60f63fba082b", "version-string": "1.8.2-2", "port-version": 0 }, { "git-tree": "a3052db22f21a58023818a908d156fa4a9e4574c", "version-string": "1.8.2-1", "port-version": 0 }, { "git-tree": "ab59da4973872f333444eb0847dcc80abc5dd3a2", "version-string": "1.8.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/avro-cpp.json ================================================ { "versions": [ { "git-tree": "2f85aad132aa9fd6a464be359fa7359b9633c780", "version": "1.12.1", "port-version": 1 }, { "git-tree": "05e75f00bd2a82451f3c9853885676592eef023f", "version": "1.12.1", "port-version": 0 }, { "git-tree": "4ef85ccd3feb1c611ad245ab1ead9796b09b1bc9", "version": "1.12.0", "port-version": 2 }, { "git-tree": "d177503c9c4f90f723a50e01156fbb79b479237d", "version": "1.12.0", "port-version": 0 }, { "git-tree": "e5b130595cfdd2c5fcecf41bcbbed730aab60285", "version": "1.11.3", "port-version": 0 }, { "git-tree": "0f04b2076c299b830bfdd3a698db754f4f8cf269", "version-date": "2022-11-07", "port-version": 1 }, { "git-tree": "08f82323ee0bb00a297cc1318c04dd3bce5d963e", "version-date": "2022-11-07", "port-version": 0 }, { "git-tree": "7804bfb279bdea0b9e270f010e1683b9b8d7ee38", "version-date": "2021-06-01", "port-version": 1 }, { "git-tree": "ecafbb456636115f10c5670a8bb484181c133d89", "version-date": "2021-06-01", "port-version": 0 }, { "git-tree": "e6253ca701d576b97c1625beeb8a1767eb73bae4", "version-string": "1.9.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/awlib.json ================================================ { "versions": [ { "git-tree": "e904565707edc7bf03dc4b04abf01ecd882a21d7", "version-date": "2024-04-06", "port-version": 2 }, { "git-tree": "8e81b74f7134ef57eeabdfee3984e76eef3a7707", "version-date": "2024-04-06", "port-version": 1 }, { "git-tree": "539db7a8b7652c86c735594e04dc1a1e09647035", "version-date": "2024-04-06", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-auth.json ================================================ { "versions": [ { "git-tree": "6eb027329aa9349a82b21af20f526a6476f1520b", "version": "0.10.1", "port-version": 0 }, { "git-tree": "55579addbe1cbadafd9f170fa8fb258ce4860b89", "version": "0.10.0", "port-version": 0 }, { "git-tree": "cd943ef660eea7d2e2498f11e657a4d72c92cfc8", "version": "0.9.6", "port-version": 0 }, { "git-tree": "69e60a5d5d9642457352cbfbc3239c8386731ba9", "version": "0.9.5", "port-version": 0 }, { "git-tree": "4f0941e239ca1ca82743681103ca0fc8392a73e7", "version": "0.9.4", "port-version": 0 }, { "git-tree": "0403bd7de030dafc53e1d9a77e3c002ffde8af52", "version": "0.9.3", "port-version": 0 }, { "git-tree": "2fd7c535873ceaa235c636b4f075db2dd6a417c9", "version": "0.9.2", "port-version": 0 }, { "git-tree": "ab1f4bfa77bd7950a6e066fd470f43c627a9eb1f", "version": "0.9.1", "port-version": 0 }, { "git-tree": "47f8058c331c8174b2e342c0835937ea6f6c4a17", "version": "0.9.0", "port-version": 0 }, { "git-tree": "0626c208b17cd95760632b920ecd386365638ee9", "version": "0.8.0", "port-version": 0 }, { "git-tree": "fab2a20a2afd37468953826e9db352ee71ba38d6", "version": "0.7.31", "port-version": 0 }, { "git-tree": "9dc508c4dbe649e26a09570b55bede507417f353", "version": "0.7.22", "port-version": 0 }, { "git-tree": "349597b752292dcaf8e16d76e4dd231891c74491", "version": "0.7.16", "port-version": 0 }, { "git-tree": "d2b36610b15f3007dcdc328c29b4db5c0862f27f", "version": "0.7.14", "port-version": 0 }, { "git-tree": "47a0b91751e137d79b7c6e8ca614d98171ab95a9", "version": "0.7.11", "port-version": 0 }, { "git-tree": "e80f8a3a15231a8d513d03ff7761acf4a5c18269", "version": "0.7.8", "port-version": 0 }, { "git-tree": "ab09a6f41712ba35a021c3d6392a804e47858668", "version": "0.7.6", "port-version": 0 }, { "git-tree": "f5aba6169081364e7585dfc613a0a476bac838f2", "version": "0.7.4", "port-version": 0 }, { "git-tree": "8c6d3fc7a7471133d8fa5c12f019432a89678da2", "version": "0.7.3", "port-version": 0 }, { "git-tree": "2540832abbf669a0efdf221f74ba3bb68f795056", "version": "0.7.1", "port-version": 0 }, { "git-tree": "33b7db583ea58cd2516c5bdc3d2f331dc767eaad", "version": "0.7.0", "port-version": 0 }, { "git-tree": "51a9d9adaa80e798b6d856653cbece6dbc52c41c", "version": "0.6.22", "port-version": 0 }, { "git-tree": "cdf9b6cb3b199b8ef1dec2e0d46bcfea7c8f536a", "version": "0.6.3", "port-version": 2 }, { "git-tree": "be9ae25111a5c7104d7c3769fcd581ee9f5dac7a", "version": "0.6.3", "port-version": 1 }, { "git-tree": "09b8dcb5acc3e1f83c8b5e3f8b242db3d85f468b", "version": "0.6.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-cal.json ================================================ { "versions": [ { "git-tree": "f5b466fcf369984cbffde978f0cf7f93b93b724b", "version": "0.9.13", "port-version": 0 }, { "git-tree": "5597ec566326b0c28a4f2900ec25c1d216e104bb", "version": "0.9.11", "port-version": 0 }, { "git-tree": "729cfd129f9910181344accad4dc0579593ddb89", "version": "0.9.10", "port-version": 0 }, { "git-tree": "4a249d518e2af42bc02f1dd243c5c1d07fee65b5", "version": "0.9.8", "port-version": 0 }, { "git-tree": "9040265c67369cd6698288f6b3e0da6da11cba2a", "version": "0.9.7", "port-version": 0 }, { "git-tree": "3f0ddb3f43edc0865558069243cfaac3e9c817eb", "version": "0.9.6", "port-version": 0 }, { "git-tree": "7bf984f3f4ebb6cbfde19f4886846a9c56140abd", "version": "0.9.5", "port-version": 0 }, { "git-tree": "966940cf40ef9df2c1d53cc0524ddc7d59b8ab44", "version": "0.9.3", "port-version": 0 }, { "git-tree": "7d921bafe31f57281f83b547b7c218996331f16c", "version": "0.9.2", "port-version": 0 }, { "git-tree": "89bfec3f208df540aae6e782cc9e993b29580c5a", "version": "0.8.8", "port-version": 1 }, { "git-tree": "b4f501b994ed102042e7d3ed48c41a5b49ea88e2", "version": "0.8.8", "port-version": 0 }, { "git-tree": "ae1e76b2294cf592859b288d712026c46a69b57e", "version": "0.8.1", "port-version": 1 }, { "git-tree": "2cdde2097cab22f8b121239ab9e0484efd564dd7", "version": "0.8.1", "port-version": 0 }, { "git-tree": "da7748e0883f0c8e02321bc1ef1004041c7fbbf8", "version": "0.7.4", "port-version": 0 }, { "git-tree": "c9382281410e9d885d1eacce6faa29f36767a5b0", "version": "0.6.15", "port-version": 0 }, { "git-tree": "dd087ffda02ff69b1ce404a3e6247220c1c4c62f", "version": "0.6.10", "port-version": 0 }, { "git-tree": "43c961d933d7a928c15cdfb7c5f7a6c16875bed5", "version": "0.6.9", "port-version": 0 }, { "git-tree": "df757b731aa4c59ac71c43d02fe87edaff5680b3", "version": "0.6.2", "port-version": 1 }, { "git-tree": "5633a1e4fad4542c5e3a665a09bf77d276031429", "version": "0.6.2", "port-version": 0 }, { "git-tree": "c833007ab0c5b36c45e555487117c271d52c4236", "version": "0.6.1", "port-version": 0 }, { "git-tree": "17bf60e8e810ac219b328b2337afc58d65c6b8dd", "version": "0.6.0", "port-version": 0 }, { "git-tree": "e9b46cbe5ae06bae580a43efd676aee7de00df08", "version": "0.5.20", "port-version": 0 }, { "git-tree": "a383adb52cab94b360e30cf82c1be79a45a75875", "version": "0.5.12", "port-version": 2 }, { "git-tree": "33e7566ec2dc8cbc5ce91687b8627f946cdf231d", "version": "0.5.12", "port-version": 1 }, { "git-tree": "6f3ed6a5199c30560f46d1be38cee72e3a77d62a", "version": "0.5.12", "port-version": 0 }, { "git-tree": "7495a338fdd1313d3cdfb67e69406eb4ecea02e9", "version": "0.5.11", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-common.json ================================================ { "versions": [ { "git-tree": "475281cad4267547a93a03d7a18802007e780b15", "version": "0.12.6", "port-version": 0 }, { "git-tree": "db482dd7e4268a1a250d19a151f7dc4b02774758", "version": "0.12.5", "port-version": 0 }, { "git-tree": "ee54a8077ce74821027bc4070b7e74e7770c580b", "version": "0.12.4", "port-version": 0 }, { "git-tree": "d3b2dd6ae518f00e2f13261cc1c1da2e9262d751", "version": "0.12.3", "port-version": 0 }, { "git-tree": "15b08f9318518f39b5e81f9e96b47a1be2ef5307", "version": "0.12.2", "port-version": 0 }, { "git-tree": "c3f5d0045119455d8dd99017bc4c4c535ec68b37", "version": "0.10.6", "port-version": 0 }, { "git-tree": "6ca8ab15e996d475016dcb8a29cf3558fc4f6568", "version": "0.9.30", "port-version": 0 }, { "git-tree": "e173deb74e242d11e66bac664774195ccc14e5db", "version": "0.9.28", "port-version": 0 }, { "git-tree": "636a4b86f49c7c2741cf61de556f29125acc76a6", "version": "0.9.21", "port-version": 0 }, { "git-tree": "5ce002157d2a45f99a99d4eeb35323b2db108a12", "version": "0.9.14", "port-version": 0 }, { "git-tree": "21a8991014f0f7b8678c4e8c4d6958a214b1f04b", "version": "0.9.12", "port-version": 0 }, { "git-tree": "e07be2013141ae49e6bf3340ccce57b0031cfb17", "version": "0.9.10", "port-version": 0 }, { "git-tree": "30465cfdc4851970efc5767fd57ad6e0dedad46a", "version": "0.9.9", "port-version": 0 }, { "git-tree": "6d58a5944c2340297985dc05678671129c45d40f", "version": "0.9.4", "port-version": 0 }, { "git-tree": "be7b04f5af0c0b475733738be33d3596936764ac", "version": "0.9.3", "port-version": 0 }, { "git-tree": "ce8953debbd46bc73523d3e214f42e5a088adae5", "version": "0.9.0", "port-version": 0 }, { "git-tree": "6447f286aa87615dbf0a2d9227939dd537297d92", "version": "0.8.23", "port-version": 0 }, { "git-tree": "54a4a42c299e7b32a1199ad382c4b537a18df034", "version": "0.8.9", "port-version": 1 }, { "git-tree": "d2ef01e925f6168e81c00ab304be70d312ea2ba9", "version": "0.8.9", "port-version": 0 }, { "git-tree": "2f38081d38190d2b787b38df2ffe3804fea7746b", "version": "0.6.20", "port-version": 0 }, { "git-tree": "56b4972c2535a4e8991826b6c595e433b0e80bf9", "version": "0.6.9", "port-version": 2 }, { "git-tree": "20a16524a9cc1079486d4efd5230562c8b9bed8a", "version": "0.6.9", "port-version": 1 }, { "git-tree": "e0cf8500b71dc430f8d688db62f277b6c20a2a74", "version": "0.6.9", "port-version": 0 }, { "git-tree": "da525f4c21c19e8eb2d81d6f352467395b55f354", "version-string": "0.4.56", "port-version": 2 }, { "git-tree": "18178de87240278976fc659b52d8a86dbda31329", "version-string": "0.4.56", "port-version": 1 }, { "git-tree": "3b58ff9b212a0910118c979470d7e53925d1b705", "version-string": "0.4.56", "port-version": 0 }, { "git-tree": "de827b03e2db3b173e5d6d25266e6489608c119d", "version-string": "0.4.15", "port-version": 0 }, { "git-tree": "0d766b6dc8e60e4d7a4c3a6eb7e15fba323fdff6", "version-string": "0.4.1", "port-version": 0 }, { "git-tree": "f70c131558d24973206d24f40356a30346617c1e", "version-string": "0.3.11-1", "port-version": 0 }, { "git-tree": "68789bb84f4ad94e006386403e46970c280d6d46", "version-string": "0.3.11", "port-version": 0 }, { "git-tree": "f60a72a5b4fb56cc3f952fb8acf1800776b56eda", "version-string": "0.3.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-compression.json ================================================ { "versions": [ { "git-tree": "904823bf56e3ee5053cd8453091eab07f49e6613", "version": "0.3.2", "port-version": 0 }, { "git-tree": "a84c654950be7641adf0b74f6a32d65e1001b3de", "version": "0.3.1", "port-version": 0 }, { "git-tree": "1a498525014f608149e273dd9477e6880ad9c851", "version": "0.3.0", "port-version": 0 }, { "git-tree": "8bdfbfedbc64461b1a653d904e8d71e8fe75ed4d", "version": "0.2.19", "port-version": 0 }, { "git-tree": "9374b8a4edeeba54be2e5807b04cf38cb1f37919", "version": "0.2.18", "port-version": 0 }, { "git-tree": "a0373f54fe747cd91672c56b2d86ce0e8d9e4491", "version": "0.2.17", "port-version": 0 }, { "git-tree": "770807ecff5bc7a1d5387b956a643bf5e3205078", "version": "0.2.16", "port-version": 0 }, { "git-tree": "107778b6c4b3c09105fcc9a08b31b252278538a4", "version": "0.2.14", "port-version": 2 }, { "git-tree": "5892ebc8e23b264d832f03d4f7dfb04856dd8367", "version": "0.2.14", "port-version": 1 }, { "git-tree": "e9dd3757cfe02e9e9d6d4d0bf772507c1be3794e", "version": "0.2.14", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-event-stream.json ================================================ { "versions": [ { "git-tree": "7e7a62b98c4095e467b3b4af230e037c9c27eed1", "version": "0.6.0", "port-version": 0 }, { "git-tree": "d8a1a811cc54a280308cc030df340e7bf616e689", "version": "0.5.9", "port-version": 0 }, { "git-tree": "93f9bfc5f6c53c2e27d80ad0e5ceff24f57450a9", "version": "0.5.7", "port-version": 0 }, { "git-tree": "74d786e7bade018b655fd03645179d1a00e46be0", "version": "0.5.6", "port-version": 0 }, { "git-tree": "f6a057233778790116b92ec301d0025614fa723a", "version": "0.5.4", "port-version": 0 }, { "git-tree": "4d6118e6451f47e0471812ee7cdea2317774a4df", "version": "0.5.0", "port-version": 0 }, { "git-tree": "3ce2f05af1ef06109a9025033ea8322479473cdd", "version": "0.4.3", "port-version": 0 }, { "git-tree": "374935a2dfbf1c2a47bbf33b7e8fe3ad0f64c4ee", "version": "0.4.2", "port-version": 0 }, { "git-tree": "26154860990d45f57dc53a6e7ce291112af3c4e3", "version": "0.4.1", "port-version": 0 }, { "git-tree": "c0c5daf2e95fa6a4e02f178c8ff091b0c8ed6b0e", "version": "0.3.2", "port-version": 0 }, { "git-tree": "9e169d96e976e9c9afae3b1b5d9045f49c6cbec2", "version": "0.3.1", "port-version": 0 }, { "git-tree": "cd36c61d2769534dbe9e4813e1269e88961ff5fe", "version": "0.2.18", "port-version": 0 }, { "git-tree": "6a9e93d6dd8799afe5f56eeeda92793ba888691e", "version": "0.2.7", "port-version": 2 }, { "git-tree": "4d0b2b6a72ae5ea454dc5378f9b3bc78320174ae", "version": "0.2.7", "port-version": 1 }, { "git-tree": "0556f6ff7d7a2e270825de650d84e97c1ed2cf9b", "version": "0.2.7", "port-version": 0 }, { "git-tree": "d2daec107d6c9d3077a4623d3cf341304a309852", "version-string": "0.1.6", "port-version": 1 }, { "git-tree": "50134e5fe6fa4dd534238fd2a799722b918704a9", "version-string": "0.1.6", "port-version": 0 }, { "git-tree": "d8569065153318306e1b6cc224d2b28ddd170f0b", "version-string": "0.1.4", "port-version": 0 }, { "git-tree": "c20f3cd8616b1b985414c66f40774c15a523a851", "version-string": "0.1.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-http.json ================================================ { "versions": [ { "git-tree": "45c8f040f39d63293a45c070ded2ed9843fc9128", "version": "0.10.11", "port-version": 0 }, { "git-tree": "048654fd9665dd724597c0d20c33a20d6454f368", "version": "0.10.10", "port-version": 0 }, { "git-tree": "c8948337ff8ad4eba3c636a1f005f77168bcf330", "version": "0.10.9", "port-version": 0 }, { "git-tree": "0087934285416eaca6072f975f96eb3beaab138b", "version": "0.10.8", "port-version": 0 }, { "git-tree": "e8dd0932b6f60aa5e2964d2a7fba1230c2650034", "version": "0.10.7", "port-version": 0 }, { "git-tree": "8b075c958d4584c8007db00bf890f5c93419ee97", "version": "0.10.6", "port-version": 0 }, { "git-tree": "15608b5014d67ddd4e5981a073b0d4a4fba716a9", "version": "0.10.5", "port-version": 0 }, { "git-tree": "20fba3cb6fb26777cd6eed3f1e97e01feaa4339f", "version": "0.10.4", "port-version": 0 }, { "git-tree": "26f98ef4614259f94d86e7b8fe738d60134f5d1d", "version": "0.10.2", "port-version": 0 }, { "git-tree": "2e08934a5da827a2b14905866d2183f6ff507d5d", "version": "0.9.5", "port-version": 0 }, { "git-tree": "60fbed4d06ee2153dff9742b717bc71c587056e6", "version": "0.9.2", "port-version": 0 }, { "git-tree": "5ce014beeda67d7d46ad21707433a8f7341a9e77", "version": "0.8.10", "port-version": 0 }, { "git-tree": "ca51e9a75bf0240b459ab91f2058b3df01f22962", "version": "0.8.2", "port-version": 0 }, { "git-tree": "f8adfd9bb00f8f94f20462e0cfdcac07ccdf6a94", "version": "0.8.1", "port-version": 0 }, { "git-tree": "aa98598f65061ac8a183b36862eac0c4e89d38a8", "version": "0.8.0", "port-version": 0 }, { "git-tree": "eb6f67641f77b8ba24d435c6cf49b7a36cf80536", "version": "0.7.14", "port-version": 0 }, { "git-tree": "ab0c882c2d7c32b58e11c9e7124574933b701d8f", "version": "0.7.13", "port-version": 0 }, { "git-tree": "6333ba487074d6b76f7270654796334049371d08", "version": "0.7.12", "port-version": 0 }, { "git-tree": "c33f11482c79e72522708d43522665505d47730d", "version": "0.7.11", "port-version": 0 }, { "git-tree": "c9d908413ad0bba2f32673c4b5b16dcdc6abc559", "version": "0.7.10", "port-version": 0 }, { "git-tree": "c097685110e260e91a1ac843ec20eba29f67574c", "version": "0.7.3", "port-version": 0 }, { "git-tree": "845a574790e6fcd40bfc13cf0c65104d04e29350", "version": "0.6.5", "port-version": 2 }, { "git-tree": "470e20b38e215a550b52c002a7cc8a7f18938bf9", "version": "0.6.5", "port-version": 1 }, { "git-tree": "21701228d8dca8d718f990273734749288100cdd", "version": "0.6.5", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-io.json ================================================ { "versions": [ { "git-tree": "bcfe60b1dd735c427ba8ae095a98ce44566d84d3", "version": "0.26.2", "port-version": 0 }, { "git-tree": "c23f0d36fb17382796601441ec3a30ad1b007846", "version": "0.26.1", "port-version": 0 }, { "git-tree": "0d73aeca80a2e37d1903c6f718823a1e52c04c1c", "version": "0.26.0", "port-version": 0 }, { "git-tree": "fc290fb080c149f98cbcea93c67fb9631eebc199", "version": "0.25.0", "port-version": 0 }, { "git-tree": "1204cd010eb9194c234da88ea856c80835609535", "version": "0.24.2", "port-version": 0 }, { "git-tree": "b6a8f8fc519527c3382d1499d5611742fa263b0c", "version": "0.24.1", "port-version": 0 }, { "git-tree": "009ea6b21eacda56cd5dbf0f9fdf461bc3a138c8", "version": "0.24.0", "port-version": 0 }, { "git-tree": "b4f18f31d03b55ffad6e423a4a88ae4d0a25264e", "version": "0.23.3", "port-version": 0 }, { "git-tree": "02267e95cfaa6ce058fd20ed844b97cf67b6d1f2", "version": "0.23.1", "port-version": 0 }, { "git-tree": "e8642779293cd5e2b2a03e8170d65e101e3d9420", "version": "0.22.1", "port-version": 0 }, { "git-tree": "221f7407eb65b699ee45df136cd08e061c459c57", "version": "0.22.0", "port-version": 0 }, { "git-tree": "96920278843d68ae95e2a2e61cae10c6b7cb79f9", "version": "0.21.5", "port-version": 0 }, { "git-tree": "81a06df077824baaf93075e3f48238a3e97e1f3e", "version": "0.21.4", "port-version": 0 }, { "git-tree": "f451a6ca1a2582e3749cfcb18d3f63059a275775", "version": "0.21.3", "port-version": 0 }, { "git-tree": "60bb046437cbf02c7ef4030e185a0bc81611689a", "version": "0.21.2", "port-version": 0 }, { "git-tree": "90ca47644e714fc636b00225fde340db1f4f1393", "version": "0.20.1", "port-version": 0 }, { "git-tree": "9e9d0363f897164172d42bdf81deccb94d781f0b", "version": "0.17.0", "port-version": 0 }, { "git-tree": "e003c0cc29540c2781aff4df978aa347e34db528", "version": "0.15.3", "port-version": 0 }, { "git-tree": "e61766c04e17d7161154c6a3711adbdd668cd5f4", "version": "0.14.18", "port-version": 0 }, { "git-tree": "8bd9a8fb2689efbf9a887d321d8c9a4d186c9641", "version": "0.14.9", "port-version": 0 }, { "git-tree": "4e76d4b5c9d39008952070b235a34f8df72ef72f", "version": "0.14.6", "port-version": 0 }, { "git-tree": "a8cf3e80c656857ed3959d2d2088c2bd590eceb3", "version": "0.14.3", "port-version": 0 }, { "git-tree": "d821d965f7ef5ea73553cd6131cdfbf081924e7c", "version": "0.14.1", "port-version": 0 }, { "git-tree": "346cdc018fbb4d19764457fe205fd0e8db0d8088", "version": "0.14.0", "port-version": 0 }, { "git-tree": "586cb06ad50ef2627c4dd30ab97b88d79e559fd5", "version": "0.13.36", "port-version": 0 }, { "git-tree": "caab59ca1fe5071d552eaf073a501151ac6099a5", "version": "0.13.35", "port-version": 0 }, { "git-tree": "888ba4e86b810e8181ed897d4dc03b1a9f78c9f7", "version": "0.13.32", "port-version": 0 }, { "git-tree": "702a1838bbe3f84ac08e515007467ae513eab4da", "version": "0.13.31", "port-version": 0 }, { "git-tree": "5b3bb7fda57741248eff888afaea9724d68b7b5e", "version": "0.13.27", "port-version": 0 }, { "git-tree": "af0f6d934c56ef089365a8c27c8c9f183e554ef9", "version": "0.13.14", "port-version": 0 }, { "git-tree": "4dc402977f4ed08054b2661b89a211064005e280", "version": "0.10.22", "port-version": 0 }, { "git-tree": "7456b996bdeeeeb59fb39770d797fa2966d0a951", "version": "0.10.7", "port-version": 2 }, { "git-tree": "45b959b56caa21052a67c2b3d0b493a3e401288c", "version": "0.10.7", "port-version": 1 }, { "git-tree": "fd430ec2c2c43582b0765a48e0a724d17747ae36", "version": "0.10.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-mqtt.json ================================================ { "versions": [ { "git-tree": "39fe9b08e4743970b6c23b0fba9ff18434f7339c", "version": "0.15.1", "port-version": 0 }, { "git-tree": "670ae145106e656e5ff1e3b22df3b8b51173a273", "version": "0.15.0", "port-version": 0 }, { "git-tree": "9246019682afeb76049d63e0ee498bd2bc332092", "version": "0.14.0", "port-version": 0 }, { "git-tree": "d48ada0fead6bd92547c2ddfe61a56e55bb9dbb7", "version": "0.13.3", "port-version": 0 }, { "git-tree": "3822429f9bf56c0b36f1b06f510d365ad4d413e8", "version": "0.13.2", "port-version": 0 }, { "git-tree": "c44c01d017a883388fd1d0c4b28eb9b5dbc10610", "version": "0.12.2", "port-version": 0 }, { "git-tree": "2311d9e3c97821d8027394df1b11a989d0688301", "version": "0.11.0", "port-version": 0 }, { "git-tree": "dbf87664aa6737a36235a074099574841864cd25", "version": "0.10.7", "port-version": 0 }, { "git-tree": "d088a37f1788ed945e9abb452a190ad17cb2ba34", "version": "0.10.6", "port-version": 0 }, { "git-tree": "1ae0ea6dc8665c5a07b5d95834b64214874b9018", "version": "0.10.5", "port-version": 0 }, { "git-tree": "aeeedc8ee14891ddd71133176868c242b75cb1d7", "version": "0.10.4", "port-version": 0 }, { "git-tree": "8d9ad24f654f54f40250744fc34a83f1436eb9c7", "version": "0.10.3", "port-version": 0 }, { "git-tree": "e288b3c65ad4a03bbadfc763aa362a4bce51ea25", "version": "0.10.1", "port-version": 0 }, { "git-tree": "79c21d94b22888e395bd53041457397fcb013486", "version": "0.9.10", "port-version": 0 }, { "git-tree": "9210c6a8260e7b5058fd4d9bb7d1a42cd6d78079", "version": "0.9.9", "port-version": 0 }, { "git-tree": "c48dfcca0c391e496b3ba1709f491d3cba914e89", "version": "0.9.6", "port-version": 0 }, { "git-tree": "96d192387fd36708a0cd3cc41552e473c8bcb2f9", "version": "0.9.5", "port-version": 0 }, { "git-tree": "7ef9969a5ceba966df73fb157fa6f74b45f8e8f0", "version": "0.9.3", "port-version": 0 }, { "git-tree": "627f6778158776948501ca6a5516ccad59d05a25", "version": "0.8.14", "port-version": 0 }, { "git-tree": "240cc0cba578a941b0a23d8dfdbdaf930257b029", "version": "0.8.5", "port-version": 0 }, { "git-tree": "028932fcffa607cc234348c2e2df454da7c4ccad", "version": "0.7.6", "port-version": 3 }, { "git-tree": "834a199cf4560cbdd8e6dac09074b9b5b1d57d53", "version": "0.7.6", "port-version": 2 }, { "git-tree": "6dc42a5ba915723bed2997c39222b166a9f0a084", "version": "0.7.6", "port-version": 1 }, { "git-tree": "a7ac0c5bddb07cc6ef49fe32f845efb230d28059", "version": "0.7.6", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-s3.json ================================================ { "versions": [ { "git-tree": "6c3ec37af80cf737ae0d9e9beca04207b232a667", "version": "0.11.5", "port-version": 0 }, { "git-tree": "ebaf3465383807a1880dcbe7bb57582f08648654", "version": "0.11.4", "port-version": 0 }, { "git-tree": "4cd59e34aebbfac94bb84ef67475c17cd98b0a56", "version": "0.11.3", "port-version": 0 }, { "git-tree": "04fe02468ab915511f201e9125579daa7cd5f1de", "version": "0.11.2", "port-version": 0 }, { "git-tree": "42a144ec16bdfb1ca95f904bace10b050daa09e9", "version": "0.10.1", "port-version": 0 }, { "git-tree": "ad4de77f20cf626788ba510c6f539aa081bce66a", "version": "0.9.2", "port-version": 0 }, { "git-tree": "137b8e968919ee119ed13d013d2d34b9ff24cae9", "version": "0.9.1", "port-version": 0 }, { "git-tree": "5217a23d386464e1c57f635a045cc4745860c8c1", "version": "0.9.0", "port-version": 0 }, { "git-tree": "5ce53d479e40add611c9db66ad436a535cbd3fab", "version": "0.8.7", "port-version": 0 }, { "git-tree": "a8466564667f2673fe118d97a3114fe7e530b931", "version": "0.8.2", "port-version": 0 }, { "git-tree": "8d0030ab0923649d8c8a9c0efe1fbbce77404eba", "version": "0.7.13", "port-version": 0 }, { "git-tree": "9c8e850f164e5ed3bb0619429dfa473fad14fd60", "version": "0.7.7", "port-version": 0 }, { "git-tree": "f97ac587659b22375a6dc1b16a87adda99d4662b", "version": "0.6.6", "port-version": 0 }, { "git-tree": "72656052f2e56364e6c3a1e1afb3d422e370350d", "version": "0.6.5", "port-version": 0 }, { "git-tree": "af095b735f936354c42601fe880ec731e94ebe2e", "version": "0.5.10", "port-version": 0 }, { "git-tree": "ec20c84a73d7910b5a0fd15f379002f1e3c66873", "version": "0.5.4", "port-version": 0 }, { "git-tree": "a03f35d3bbb734a7eebc2ab2250d223bde4a27e8", "version": "0.5.3", "port-version": 0 }, { "git-tree": "6c2914666b48d3f75905048129f3576eecf0206c", "version": "0.5.2", "port-version": 0 }, { "git-tree": "078a6a0fb48d0f7051c34811347b5e93a647c368", "version": "0.5.0", "port-version": 0 }, { "git-tree": "74a12ce42334826f8eae659d435ebe39bf0f2c16", "version": "0.4.9", "port-version": 0 }, { "git-tree": "e12d01447182cce36c5524fbd6a22f8135dd9ecb", "version": "0.4.3", "port-version": 0 }, { "git-tree": "709e576231214f693d747d8187e44b30c77f4443", "version": "0.3.24", "port-version": 0 }, { "git-tree": "11800b01a8e9e48aa7fe4c7e5f2e64592b5d7ebd", "version": "0.3.17", "port-version": 0 }, { "git-tree": "47d21c2fbae187617f4781cd3e6bec932da788d6", "version": "0.3.14", "port-version": 0 }, { "git-tree": "d081cc24b4c9c6af3f47087da235d5684c60128b", "version": "0.3.12", "port-version": 0 }, { "git-tree": "b5022c40fb60e0fa219d4f8ea52239f5625546c1", "version": "0.2.3", "port-version": 1 }, { "git-tree": "b320e0f3acafe6dc3733a511e4e2b7e2fadeda4d", "version": "0.2.3", "port-version": 0 }, { "git-tree": "c571d95b22b5f84591bf4a115ca47c522371efce", "version": "0.1.25", "port-version": 2 }, { "git-tree": "620ce24ba09dd971644750eedcbb42a8f1fc2457", "version": "0.1.25", "port-version": 1 }, { "git-tree": "074cd08f0a073d8b1bfc551bd47435aa50ea96da", "version": "0.1.25", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-c-sdkutils.json ================================================ { "versions": [ { "git-tree": "e35f3679734136abad374c246af202ab6cda7c45", "version": "0.2.4", "port-version": 0 }, { "git-tree": "7e0ab55f7b5d2ff58a9d52c72171db0d117443be", "version": "0.2.3", "port-version": 0 }, { "git-tree": "f598b056368babc76eabd974014b79a58da5f58b", "version": "0.2.1", "port-version": 0 }, { "git-tree": "9160fd89b00f09e336d1efbeb7ece4158d1be332", "version": "0.1.19", "port-version": 0 }, { "git-tree": "7e317edf4088819dc93010e75d6ee0211ec03ea8", "version": "0.1.16", "port-version": 0 }, { "git-tree": "059bddb8a37a8cabda35680b9c212e9a0bdb1134", "version": "0.1.15", "port-version": 0 }, { "git-tree": "40dbafcbc75133f129ea11d38162703f40dadd86", "version": "0.1.14", "port-version": 0 }, { "git-tree": "7bf3d0be0a297cd59345aa56a1b00017e989957c", "version": "0.1.13", "port-version": 0 }, { "git-tree": "23164b5e925decd15773f93c5fbe0330be7ac9f5", "version": "0.1.12", "port-version": 0 }, { "git-tree": "5cb38bd6a7671f8a9ee981121f485b78d28aaa0f", "version": "0.1.11", "port-version": 0 }, { "git-tree": "613cee18da297b892541b45ffe696560865052fb", "version": "0.1.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-checksums.json ================================================ { "versions": [ { "git-tree": "70ee1ef2359f5b74d8ea5f9d39dd817e907b00cc", "version": "0.2.10", "port-version": 0 }, { "git-tree": "edeef6cfb223fd537e2e9acf6a9ebcb85c674da7", "version": "0.2.9", "port-version": 0 }, { "git-tree": "6df0ea1e1cca54798ef6286d9305251902343519", "version": "0.2.8", "port-version": 0 }, { "git-tree": "d4288ab959e10e6bf369c9e1919fa4e7b5b129fb", "version": "0.2.7", "port-version": 0 }, { "git-tree": "6aaad88696392945a19b6bdc2b40ec554b874c03", "version": "0.2.4", "port-version": 0 }, { "git-tree": "f21a15b24a1361f3f0a6254b1328797ec831f596", "version": "0.2.2", "port-version": 0 }, { "git-tree": "312d192b55e17423130daac21855dba94d8424d1", "version": "0.1.20", "port-version": 0 }, { "git-tree": "fdd532188960eea676777a12e5ad822be4167e51", "version": "0.1.18", "port-version": 0 }, { "git-tree": "05e17cee2b7d221bb49bebe55e8801f9cea99014", "version": "0.1.17", "port-version": 0 }, { "git-tree": "7b723c21e8848802c057f18cac7185bf0be37a2c", "version": "0.1.16", "port-version": 0 }, { "git-tree": "753f3e1f6c5054abb9ee014f45a4fcffd9a93678", "version": "0.1.14", "port-version": 0 }, { "git-tree": "aeda736d7deef9292db2e43dc8702b2ddb5d59b0", "version": "0.1.11", "port-version": 3 }, { "git-tree": "e70b465c6b8ce012ed176b822471dd440f853267", "version": "0.1.11", "port-version": 2 }, { "git-tree": "120921754d48ecb075658abd01dc56b73e7f25f4", "version": "0.1.11", "port-version": 1 }, { "git-tree": "60a67f9776bc5957aa27bf0cd2ad36fb10a7bc04", "version": "0.1.11", "port-version": 0 }, { "git-tree": "faeacfa4356bdc71228a197676b7613cf369520c", "version-string": "0.1.9", "port-version": 1 }, { "git-tree": "4be7a5832f122e6c98d235bd58c55ea2d83dcdea", "version-string": "0.1.9", "port-version": 0 }, { "git-tree": "03a865bfedb1a3ae47b3e284bd15443612aa664e", "version-string": "0.1.5", "port-version": 0 }, { "git-tree": "a93bdeae64de7039871839c398ba3f97c9d9a4cc", "version-string": "0.1.3", "port-version": 0 }, { "git-tree": "46b79a9d66e687e13345c6f2b2f1eade29505c6b", "version-string": "0.1.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-crt-cpp.json ================================================ { "versions": [ { "git-tree": "648ee6432055147ce037492e789de25a23c482ce", "version": "0.37.4", "port-version": 0 }, { "git-tree": "fd643b88981f39f99440b80cb6616341af919124", "version": "0.37.3", "port-version": 0 }, { "git-tree": "3314ac36a6cfd018625edaf77bc09593636c65e0", "version": "0.37.2", "port-version": 0 }, { "git-tree": "98b119acb6b6015c77ef75394d2465adcd3b3985", "version": "0.37.1", "port-version": 0 }, { "git-tree": "bbf6c8b34673a7fdc31cec4b91e6bc0a5e433f18", "version": "0.37.0", "port-version": 0 }, { "git-tree": "5c9910641a81c6efce55a7befcef2308d983e120", "version": "0.36.1", "port-version": 0 }, { "git-tree": "2bd8132094b08b64eb5c3d920f138546be3a0ea6", "version": "0.36.0", "port-version": 0 }, { "git-tree": "62d844bd5e5fe938544c71cd0dd156d49ff488f0", "version": "0.35.4", "port-version": 0 }, { "git-tree": "041ee68a21a8f96dfc287e751de73d4543a2c441", "version": "0.35.3", "port-version": 0 }, { "git-tree": "64d401a6c8a888b978815f92f3e9822953be11ad", "version": "0.35.1", "port-version": 0 }, { "git-tree": "f2c78580cca150d5feed20897299c87eb1cf969a", "version": "0.34.5", "port-version": 0 }, { "git-tree": "a6d089e58e65bbce9e0c81c4a607b4807f2a68ac", "version": "0.34.4", "port-version": 0 }, { "git-tree": "300a1a29ea8b00ceae803defa7b0b344bb846178", "version": "0.34.1", "port-version": 0 }, { "git-tree": "74b2312247169d30ad381039cbe06f82d01d426c", "version": "0.34.0", "port-version": 0 }, { "git-tree": "938e83a74f2aaf62be696a34e4da40c0a746be1d", "version": "0.33.5", "port-version": 0 }, { "git-tree": "af63058b3d4b68dfe70775e7d91465b6bbaa48a5", "version": "0.32.9", "port-version": 0 }, { "git-tree": "46f43ab85ba4dd67f8764b2da2fe535236f42a85", "version": "0.31.1", "port-version": 0 }, { "git-tree": "9d446e44b0e560c8072e34a82d336f048ba02b60", "version": "0.29.7", "port-version": 0 }, { "git-tree": "5c17e181bec20b7da35cdadf7e4877cf171bbb87", "version": "0.29.6", "port-version": 0 }, { "git-tree": "d9a7ded34c9d102df8c762bc00b0b29e2064fef3", "version": "0.28.3", "port-version": 0 }, { "git-tree": "bd51561d31e21b0e6f3e942166f46319f25022fe", "version": "0.26.12", "port-version": 0 }, { "git-tree": "e12f07da72d8c435c8a68fae965c42cff40661ad", "version": "0.26.4", "port-version": 0 }, { "git-tree": "110c01a23de8f129c041243ea29a8d9483665ec8", "version": "0.26.1", "port-version": 0 }, { "git-tree": "0ec1e5fdb18e38dc54d06842860ec7f95df53c5a", "version": "0.24.8", "port-version": 0 }, { "git-tree": "855f83fcf951b5fcaf0af75159ff979980670088", "version": "0.24.7", "port-version": 0 }, { "git-tree": "8c9935cdadd2baa48566f59d5ca1c253d3187ed1", "version": "0.23.1", "port-version": 0 }, { "git-tree": "05d7275131943efc847ecbec0dc1c204b9ee8eb1", "version": "0.23.0", "port-version": 0 }, { "git-tree": "5e1e41fc6b37ccd7b0ddfd9d15c9b06339748feb", "version": "0.20.3", "port-version": 0 }, { "git-tree": "0473f0c74e9a4530d0b53d3298828eb42ce45ec4", "version": "0.19.5", "port-version": 0 }, { "git-tree": "2247bebb1109b41b4a27e18d2c91812d23dfe55d", "version": "0.15.1", "port-version": 4 }, { "git-tree": "e542ffdad6392c75909a3235d33c2a22c939c980", "version": "0.15.1", "port-version": 3 }, { "git-tree": "d96290d0c6d34f9b4129e811e3b8fd2d62a699c7", "version": "0.15.1", "port-version": 2 }, { "git-tree": "60880034065d31bf96ac71028dab62955a77ba55", "version": "0.15.1", "port-version": 1 }, { "git-tree": "5bd5acd0aefeed0bbf56945c6b299644f3ad6af0", "version": "0.15.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-lambda-cpp.json ================================================ { "versions": [ { "git-tree": "f50bbb34da1be6d30e004ed7a6227151792c1920", "version": "0.2.10", "port-version": 0 }, { "git-tree": "3cc6fdf7e7744d5aef38bee127751f62367f72d4", "version": "0.2.9", "port-version": 0 }, { "git-tree": "f1bca88dcd24c6f64b69e49c99bc76db2e4f91bb", "version": "0.2.8", "port-version": 1 }, { "git-tree": "c3197f40cb21eb35c009783d5d7a6f290b249fcd", "version": "0.2.8", "port-version": 0 }, { "git-tree": "48030b34e22463cab36178bb50d3ce62257d6d56", "version": "0.2.7", "port-version": 1 }, { "git-tree": "e9c58661b9a838e782997f03ee3af449260ece4f", "version-string": "0.2.7", "port-version": 0 }, { "git-tree": "3e586ea66476a0d9ce91ae630e1966724794ef2f", "version-string": "0.2.6", "port-version": 1 }, { "git-tree": "bfe8b19021e8359832f5e32438cb988f4edf0fdf", "version-string": "0.2.6", "port-version": 0 }, { "git-tree": "7790810f7e80d8c0387fcf87984848da82da0539", "version-string": "0.2.4", "port-version": 0 }, { "git-tree": "7d46b881faa433de4780e0e49994ecc1a4208733", "version-string": "0.1.0-2", "port-version": 0 }, { "git-tree": "ba62336bf04861892999b45d5595c7f75a9487b8", "version-string": "0.1.0-1", "port-version": 0 }, { "git-tree": "e2e3a86bb6bd0ab4a024c199d9c2c67da50f288d", "version-string": "0.1.0", "port-version": 0 }, { "git-tree": "903f5e36f05a7f9c1a21c870886f59212f5f939e", "version-string": "2018-12-06", "port-version": 0 } ] } ================================================ FILE: versions/a-/aws-sdk-cpp.json ================================================ { "versions": [ { "git-tree": "19f1e68f3faaee165567a7aa7b79851bdba25235", "version": "1.11.769", "port-version": 0 }, { "git-tree": "ee44aa80cb0cc26050a6e1e857d176e7053f4559", "version": "1.11.766", "port-version": 0 }, { "git-tree": "483f4f895820423d7c32b8e71a32ab33a5c82a5a", "version": "1.11.760", "port-version": 0 }, { "git-tree": "222b29d84d4de9628991c178d236740d8633a832", "version": "1.11.740", "port-version": 0 }, { "git-tree": "b67e2650e5f5802e4ff686f733fafc7d3383a467", "version": "1.11.724", "port-version": 0 }, { "git-tree": "06cbd93959feeda690c8ff0131027a8dcc3cc379", "version": "1.11.710", "port-version": 0 }, { "git-tree": "acf90c5fa3cfbdcdfdf590bdedb66ff127bf7f2d", "version": "1.11.702", "port-version": 0 }, { "git-tree": "a4de2fff6db7de7495472ab65239fc4764bbbc8f", "version": "1.11.665", "port-version": 0 }, { "git-tree": "d517ae14377716b706a709b6183620e8ee723f02", "version": "1.11.646", "port-version": 0 }, { "git-tree": "006986f4d6d66f7c6c3287da362dbe6ba9572b6c", "version": "1.11.591", "port-version": 0 }, { "git-tree": "ab794d1bd8b4d4dea64e403504dd89db8e207831", "version": "1.11.534", "port-version": 0 }, { "git-tree": "65e0677d7ca2f28a8670c577103a7d03b4fbb55a", "version": "1.11.474", "port-version": 0 }, { "git-tree": "2ad1c07eff40874cb2714011450ffe1a77fefb38", "version": "1.11.471", "port-version": 0 }, { "git-tree": "d6ec576e44d9161027b27b4201c419a2f2ee6980", "version": "1.11.467", "port-version": 0 }, { "git-tree": "d59e22e8a467c7cba1e83fa9fb222eae9cbdfd45", "version": "1.11.460", "port-version": 0 }, { "git-tree": "be003f23440ed5c0e3ff419e1769faf15e943227", "version": "1.11.428", "port-version": 0 }, { "git-tree": "ac4b4f695502882bdb0f8ae2711ebc997680d6c4", "version": "1.11.420", "port-version": 0 }, { "git-tree": "78c70e9981524d5a397a2c7d2d4dd8c03a250b2d", "version": "1.11.415", "port-version": 0 }, { "git-tree": "b71b7920e374f74780fe6cb02043fe6107ed5f07", "version": "1.11.410", "port-version": 0 }, { "git-tree": "25794c0341cfdc16b4e0ce8ad5aebcd319724f9c", "version": "1.11.405", "port-version": 0 }, { "git-tree": "44ddfa703437d80b5828205ee00e8e49c687275b", "version": "1.11.352", "port-version": 0 }, { "git-tree": "dff240595574fc8994e2b6e574afabbb7d857f8f", "version": "1.11.285", "port-version": 4 }, { "git-tree": "27092f8627e032baefd12137452180975e1715d1", "version": "1.11.285", "port-version": 3 }, { "git-tree": "252f02a82047e15da94b42568b63b4064ae55e56", "version": "1.11.285", "port-version": 2 }, { "git-tree": "86cda4ed313a3d7b3b6bd63cd7eb67f947e87855", "version": "1.11.285", "port-version": 1 }, { "git-tree": "b0cace4e0dad7294b503c00b96658252e827c3ec", "version": "1.11.285", "port-version": 0 }, { "git-tree": "192340da352851921d2c706648ce973435657d35", "version": "1.11.255", "port-version": 0 }, { "git-tree": "9dbb54ababc4137e3a91f50aeb8801a89ec6234c", "version": "1.11.245", "port-version": 0 }, { "git-tree": "2390f58d566a9a1a25ae4cf7b7862e344eaff2b1", "version": "1.11.225", "port-version": 0 }, { "git-tree": "eeab7418483a9b578bb186acde08a1130301e0a1", "version": "1.11.215", "port-version": 1 }, { "git-tree": "bbebf005503aa74f6725df8f4d04eb21a894e127", "version": "1.11.215", "port-version": 0 }, { "git-tree": "f669bd77e23c643da0c15162dc46d84b924938a0", "version": "1.11.201", "port-version": 1 }, { "git-tree": "7e0ba4822d4dcc90eac626f351d7a3fd215a68a8", "version": "1.11.201", "port-version": 0 }, { "git-tree": "bb95756096209a013e786b104a11b0aa6357119d", "version": "1.11.169", "port-version": 2 }, { "git-tree": "5c0ad10a852e7facc0cea54e3990f16e0cb1ea8b", "version": "1.11.169", "port-version": 1 }, { "git-tree": "714b1b2815e2a3f57c79c8703a9cdc9892240acd", "version": "1.11.169", "port-version": 0 }, { "git-tree": "3fb36e871ff39d82abfb7eca5bedbaa2b177c72e", "version": "1.11.160", "port-version": 0 }, { "git-tree": "94f8f9c8774eda639d96a707cf3fda55fc9df034", "version": "1.11.155", "port-version": 1 }, { "git-tree": "f0cc899ce753e066c26bec70fdfb87c84feaf28f", "version": "1.11.155", "port-version": 0 }, { "git-tree": "f8b598e9d9b0ecde285a6898a1962f937f9511e9", "version": "1.11.149", "port-version": 0 }, { "git-tree": "bacc82ba5052ad66e3b20ad1cae53c36989a28ea", "version": "1.11.132", "port-version": 0 }, { "git-tree": "785c086e68c5e4d5257587ee6deeae566140b8fe", "version": "1.11.65", "port-version": 0 }, { "git-tree": "495471c4071406ec6929d77a553dc03ebd6df095", "version": "1.11.4", "port-version": 0 }, { "git-tree": "53396d33cc22ee631dbfbb9b9a3a656ee3f4ea38", "version": "1.9.220", "port-version": 3 }, { "git-tree": "8303c2804c010e352168fda9a38e7256c30d170d", "version": "1.9.220", "port-version": 2 }, { "git-tree": "c7d142ac1a2667f6ba9650cab2505a71ffaddbd3", "version": "1.9.220", "port-version": 1 }, { "git-tree": "7fc21526c4465a7e399683055a6df0096cad218e", "version": "1.9.220", "port-version": 0 }, { "git-tree": "e1d4dde6c824e40b0a0dce27f48539dfa4f64eed", "version": "1.9.160", "port-version": 1 }, { "git-tree": "e02908481470143ae86077c24e80d493d609f379", "version": "1.9.160", "port-version": 0 }, { "git-tree": "f3e8e88a0bf271817cd42083f58070df1a006603", "version": "1.9.96", "port-version": 6 }, { "git-tree": "2da283f5bdb07366001a8b14674c0961ac173566", "version": "1.9.96", "port-version": 5 }, { "git-tree": "fc86d9dc77f15fb8c7c18f767cc21e01e024a8cc", "version": "1.9.96", "port-version": 4 }, { "git-tree": "74ac36ae24b2c852423a57305005fd86d23d51d9", "version": "1.9.96", "port-version": 3 }, { "git-tree": "1c6b4335305034bea75f07f368e51142abddb789", "version": "1.9.96", "port-version": 2 }, { "git-tree": "5989ba8996df75b9195ef2f429191b48602236c9", "version": "1.9.96", "port-version": 1 }, { "git-tree": "e407a52a177c37acd340209b0c00d1dd1355d2aa", "version": "1.9.96", "port-version": 0 }, { "git-tree": "13f162ba967b3eaa61320e2062eabd924e1f7a65", "version": "1.8.126", "port-version": 10 }, { "git-tree": "c23d66191b235f6f388187395b62f38b8e6e35f5", "version": "1.8.126", "port-version": 9 }, { "git-tree": "e1cf5cdb2c16125d532b8281d6901839f11a25f5", "version": "1.8.126", "port-version": 8 }, { "git-tree": "f1baa5b35e752a0576d9d81d70d15b2c44a467db", "version": "1.8.126", "port-version": 7 }, { "git-tree": "011de9c924af9f41faddda1a6bc2bf080eee6679", "version": "1.8.126", "port-version": 6 }, { "git-tree": "1091bd9bd625aab8f19bc9d32499bd888788c613", "version-string": "1.8.126", "port-version": 5 }, { "git-tree": "1474856fe6fdeb8feab5068959e189bc9f6c0327", "version-string": "1.8.83", "port-version": 4 }, { "git-tree": "0e9236d4366958451f888a5f6616aa64a26afa61", "version-string": "1.8.83", "port-version": 3 }, { "git-tree": "948e791fc4effed6d27b6ad4da335a51ba6111bd", "version-string": "1.8.83", "port-version": 2 }, { "git-tree": "bc319d0eaa3164611ee527fbea2e2762a463f2fb", "version-string": "1.8.83", "port-version": 1 }, { "git-tree": "1ab9d27ef480aa31ff61d26bc119065d033de186", "version-string": "1.8.83", "port-version": 0 }, { "git-tree": "25296cbd7a7d602b8aa13ad09536845e2d39e4fd", "version-string": "1.8.4", "port-version": 1 }, { "git-tree": "2a538315e8d87e1c1b309df02df48c8d1ac2c8fb", "version-string": "1.8.4", "port-version": 0 }, { "git-tree": "08ea7a610c40148e3482a69e61b35243bd32d653", "version-string": "1.7.333", "port-version": 0 }, { "git-tree": "796789e5892ff15bd488c929097f6bf49d4d5757", "version-string": "1.7.270", "port-version": 0 }, { "git-tree": "d52df80388ebf58e81fbd305767274cc46a28098", "version-string": "1.7.214-1", "port-version": 0 }, { "git-tree": "2ee25c13ac13de82586aa5f8739c79442d584e96", "version-string": "1.7.214", "port-version": 0 }, { "git-tree": "003e047531084b5607bf0fa7650d9306368931c7", "version-string": "1.7.142-1", "port-version": 0 }, { "git-tree": "37100a1d00ea1fa12500c305efdfc9c2d39db249", "version-string": "1.7.142", "port-version": 0 }, { "git-tree": "c70be8918571b0047fe5c8dd99fb28361579c235", "version-string": "1.7.116", "port-version": 0 }, { "git-tree": "24e8b096060af9ba178fdab1ae2cec5680848a93", "version-string": "1.7.106", "port-version": 0 }, { "git-tree": "4d1a7231e28d990a993ddd7238dccc53cb4d3ff0", "version-string": "1.7.100", "port-version": 0 }, { "git-tree": "f30834108da8e38617086267dfee6a4e4e2ccb02", "version-string": "1.7.98", "port-version": 0 }, { "git-tree": "61bf71b5041f2c2a624aa0fdf21bb6ddbfd48924", "version-string": "1.7.89", "port-version": 0 }, { "git-tree": "e797ed8e640e800bf556fe9981cf735927a6eb3c", "version-string": "1.7.80", "port-version": 0 }, { "git-tree": "b83bc0e52d936be054b490ef50c79adf73f68fa5", "version-string": "1.7.41", "port-version": 0 }, { "git-tree": "9cdf6e74b272bb883bb536c9960f67e0af3a7c69", "version-string": "1.7.38", "port-version": 0 }, { "git-tree": "2f6bee8ce92ba561c5aabb43a16daacb22941c03", "version-string": "1.6.47", "port-version": 0 }, { "git-tree": "3ec29fd4a699993cda047b1e00663b786c120efa", "version-string": "1.6.43", "port-version": 0 }, { "git-tree": "b75b33c86cafda26afec82d8e9d52aaebb924d51", "version-string": "1.6.38", "port-version": 0 }, { "git-tree": "ca0eede4bb07d50f091fdfe1e1f1615bdcd24f00", "version-string": "1.6.29", "port-version": 0 }, { "git-tree": "f325650c4c786a5f7fdf6ed7a7190e5799287f9c", "version-string": "1.6.12-1", "port-version": 0 }, { "git-tree": "70753f945bfcb0b66c577748dddbec17a0d9c0e7", "version-string": "1.6.12", "port-version": 0 }, { "git-tree": "05d10ce3843b6d373a39f74abd2ec6774e38faff", "version-string": "1.5.7", "port-version": 0 }, { "git-tree": "7569d8b07f3244919df76e4338793d5c15d69902", "version-string": "1.5.2", "port-version": 0 }, { "git-tree": "c8d693c088850ae34c45b06dc8c93b5a186577c7", "version-string": "1.4.82", "port-version": 0 }, { "git-tree": "270e45b8b39a33ccd0c17275a9eb8e14da2722dd", "version-string": "1.4.78", "port-version": 0 }, { "git-tree": "8aaaec26546bc6e9d266651a18d834af099d30ff", "version-string": "1.4.69", "port-version": 0 }, { "git-tree": "33cb870a4b73c0e490d2fae7b3a6a11abc017898", "version-string": "1.4.65", "port-version": 0 }, { "git-tree": "5e76ee91aabaaa2421b689716a5555cd7cfc4319", "version-string": "1.4.52", "port-version": 0 }, { "git-tree": "df7dbeb03eb5b09a4585caa02cf44813513bbced", "version-string": "1.4.40", "port-version": 0 }, { "git-tree": "7616504952d47da4523f5479eecea772229a29fc", "version-string": "1.4.38", "port-version": 0 }, { "git-tree": "88c68e5bb2a3413d19b049d9c408a4316ec0b000", "version-string": "1.4.33", "port-version": 0 }, { "git-tree": "cccf3ff726ac8b25ad4babd21f7db9fddb7a8ee6", "version-string": "1.4.32", "port-version": 0 }, { "git-tree": "1c6995e70f2974f07c40b57eab2766faef273cbb", "version-string": "1.4.31-1", "port-version": 0 }, { "git-tree": "f4734cfc713d954afe15a3aafa86580cdf2f257d", "version-string": "1.4.30-1", "port-version": 0 }, { "git-tree": "2a95b31e39214a2cbc3f6ef804b2ada00f16b8ea", "version-string": "1.4.30", "port-version": 0 }, { "git-tree": "914fb03e175de5741eab4e4790d7c6f1c6096b67", "version-string": "1.4.27", "port-version": 0 }, { "git-tree": "9ee7b941c0e7f8ab6166704830c2203845f2c755", "version-string": "1.4.26", "port-version": 0 }, { "git-tree": "a480a4d56b1f297d5b843194a4fcfea8396a61b9", "version-string": "1.4.24", "port-version": 0 }, { "git-tree": "bf2a19a867c4ff6ab44d87545ff33465827ad419", "version-string": "1.4.23", "port-version": 0 }, { "git-tree": "6755840b50489b95087b94c21144300270813014", "version-string": "1.4.21", "port-version": 0 }, { "git-tree": "ef5dff7ac71c02c2787310917d89778bce5b2406", "version-string": "1.3.58", "port-version": 0 }, { "git-tree": "4ada15f7756b0d9c2b367f579136963ebab4b891", "version-string": "1.3.15", "port-version": 0 }, { "git-tree": "52e1dfc53de2b0f66dc212e3acc1fbc7a6a1d248", "version-string": "1.2.4", "port-version": 0 }, { "git-tree": "1c1682b10a345a4ec9b263c1f2421e5173be0260", "version-string": "1.0.61-1", "port-version": 0 }, { "git-tree": "5269268896d55c8a0d8f04de0757e37133f20b19", "version-string": "1.0.61", "port-version": 0 }, { "git-tree": "0a426cf5a8d5de394f31d2672f29fb78c2626a32", "version-string": "1.0.47", "port-version": 0 }, { "git-tree": "4d41e1e89793bc5b18df6cf604cdbc81445078bb", "version-string": "1.0.34-1", "port-version": 0 }, { "git-tree": "d39ebb54cfebceb23fce3f52ddfbafc34589e8af", "version-string": "1.0.34", "port-version": 0 } ] } ================================================ FILE: versions/a-/ayush272002-dotenv.json ================================================ { "versions": [ { "git-tree": "0c6ab4164c0031de0706107c41b9b3c57cae7372", "version-semver": "1.0.2", "port-version": 0 }, { "git-tree": "0c513699fa3dcef37de93634995caabe92ae50e3", "version-semver": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azmq.json ================================================ { "versions": [ { "git-tree": "96e1bfa2e4e46a93cda916f7ebfa6835a06172a7", "version-date": "2025-11-30", "port-version": 0 }, { "git-tree": "0a99701bb7160639ec7d75187271a16f6c6c42d8", "version-date": "2023-03-23", "port-version": 0 }, { "git-tree": "4c4381f52a268bbf8084db2b1684ad740d3e4408", "version": "1.0.3", "port-version": 0 }, { "git-tree": "a82754fa9f38845c88912eb424dbfc718a155fe7", "version-string": "2020-03-03", "port-version": 1 }, { "git-tree": "528140b63c42e48f1bc4aaf93a40f2233d8a2547", "version-string": "2020-03-03", "port-version": 0 }, { "git-tree": "4fc0cb9a9049ada78b75273121818b08914a7741", "version-string": "1.0.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-c-shared-utility.json ================================================ { "versions": [ { "git-tree": "64a526820665765513b6ade91c69428dc5e0afae", "version-date": "2025-03-31", "port-version": 0 }, { "git-tree": "a6d44bed9c2bf96b817fc0596709b08f71bc7fdc", "version-date": "2024-06-24", "port-version": 1 }, { "git-tree": "3c18e2dd296b8982c302f6a13ddfe413f91af8da", "version-date": "2024-03-04", "port-version": 1 }, { "git-tree": "74412552223e3f64edea53ad4ad5d6dc55c0b443", "version-date": "2024-03-04", "port-version": 0 }, { "git-tree": "c5938bd8175ca21aa30c5e9b2989b776ec50a481", "version-date": "2023-08-07", "port-version": 0 }, { "git-tree": "7fed72b2797511395842d94efefa040e0fd1f65a", "version-date": "2023-01-18", "port-version": 1 }, { "git-tree": "78c535284693d96c19026445e363459b37a4aca9", "version-date": "2023-01-18", "port-version": 0 }, { "git-tree": "2bfbac018e320a4f8d18aba279855bebd798e74f", "version-date": "2022-09-15", "port-version": 0 }, { "git-tree": "ec45ec6a9a5b28ecab27857508355956d151a814", "version-date": "2022-01-21", "port-version": 3 }, { "git-tree": "42be8335b113cba6ca88b9f9789b29fc7be280b4", "version-date": "2022-01-21", "port-version": 2 }, { "git-tree": "aceee8533b4eeea6eb87371c4d37ae82859cefc7", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "1d0590ad121eefc3af9ff13f67996ca8c3e39508", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "f2f3f9c6b03d02268920eee133f660bf2fe5d946", "version-date": "2021-09-09", "port-version": 1 }, { "git-tree": "6898a05e54b88637fc5a42136facc194b84e71a1", "version-date": "2021-09-09", "port-version": 0 }, { "git-tree": "004bb7eb46adf65294137426bfa60868a7a9be93", "version-string": "2020-12-09", "port-version": 2 }, { "git-tree": "aeea4eb6de3e3db197e350ba3e8ebb6a9bfaa154", "version-string": "2020-12-09", "port-version": 1 }, { "git-tree": "67f510493f8011d403918b4da617f970d9cff74c", "version-string": "2020-12-09", "port-version": 0 }, { "git-tree": "4c625de7e91f3a5ee7436bab7f36808e3174a418", "version-string": "2020-07-19", "port-version": 0 }, { "git-tree": "e0cadffece84a5453207e36695258e2035d7a975", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "4628674e9a38f1003f4366a8a6258514c2c53a01", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "9ad6e737af31d3f7d519c5672da9ff994a88ca92", "version-string": "2020-01-22-1", "port-version": 0 }, { "git-tree": "e76ebdc7e003ea3ec5c1220fb5af21f4f4373bd1", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "679836f28df60473388c9b1da394fd3bde2283ad", "version-string": "2019-10-07.2-1", "port-version": 0 }, { "git-tree": "e37ed048340182e819e3c379c8fbb4e43743bb2f", "version-string": "2019-10-07.2", "port-version": 0 }, { "git-tree": "50520ec3d56f9edf54c164193613c41d0bea2827", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "857da91906824cab4591611fec1de7578cfea29c", "version-string": "2019-10-07.1-1", "port-version": 0 }, { "git-tree": "00f6def9c33c61a51d860ac525994b9055c4ab57", "version-string": "2019-08-20.1-1", "port-version": 0 }, { "git-tree": "cd7027588afbe8ec39fd9025833846517cb49265", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "0435e8b8e615631392475bc23a8d6ea32c17bfed", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "0d9589620702fea689795bb37ba86dc9c0cd5166", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "78dea6be920279e7f9738682b4fbf9bb275ae7b7", "version-string": "2019-03-18-1", "port-version": 0 }, { "git-tree": "303085f40c9c765cdf66d83875f39ab01194cae9", "version-string": "2019-03-18", "port-version": 0 }, { "git-tree": "9b62efe1b7bc66c9866315ad6112e1dafe78ccf5", "version-string": "1.1.11-5", "port-version": 0 }, { "git-tree": "00cb4786f1169a7c22cadf20f98c792b4437903f", "version-string": "1.1.11-4", "port-version": 0 }, { "git-tree": "40332ca7b7bcffc50305b79d983c68f021ab705d", "version-string": "1.1.11-3", "port-version": 0 }, { "git-tree": "cb4ba8882b3b6ebadbe3956e58e774e3c440be84", "version-string": "1.1.11-1", "port-version": 0 }, { "git-tree": "985ec32a265176922c5946d630e0be2445f9f0ad", "version-string": "1.1.10-1", "port-version": 0 }, { "git-tree": "e00788fa9dd3fccfef5af9b0f1e47f29dcba03df", "version-string": "1.1.5", "port-version": 0 }, { "git-tree": "f3d9eb6e853e637480f3055df8cb5187509bbb34", "version-string": "1.1.3", "port-version": 0 }, { "git-tree": "f0f33cc67f8a097394805954c116428b06b86038", "version-string": "1.1.2", "port-version": 0 }, { "git-tree": "a941f289fae7fcfd16b694d39d328ad6e3511cba", "version-string": "1.0.0-pre-release-1.0.9", "port-version": 0 }, { "git-tree": "fdda2fa0e141399859515231fc360ca8ddf60ccc", "version-string": "1.1.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-core-amqp-cpp.json ================================================ { "versions": [ { "git-tree": "8784cf060aabe228c11c6b86734b42322b2def93", "version-semver": "1.0.0-beta.11", "port-version": 2 }, { "git-tree": "bbf82106a42fe16154f3bcb57d4f49d560f91ccd", "version-semver": "1.0.0-beta.11", "port-version": 1 }, { "git-tree": "4782abe977ab163588fd6dcdc1f38b01739d4a0c", "version-semver": "1.0.0-beta.11", "port-version": 0 }, { "git-tree": "6170ecad414dfb24ceb7cf415b0fdbba3d64ff84", "version-semver": "1.0.0-beta.10", "port-version": 0 }, { "git-tree": "3deba28b83cec326798ebacd57a76feceda4cdb3", "version-semver": "1.0.0-beta.9", "port-version": 0 }, { "git-tree": "3ffd522fbbf8794e41d66313bd9d9cb980b00165", "version-semver": "1.0.0-beta.8", "port-version": 0 }, { "git-tree": "ef715da3b8f753c90e4f18df2bb34b9b31749490", "version-semver": "1.0.0-beta.7", "port-version": 0 }, { "git-tree": "67e6280661e8992e3fd118517ac0f1d0f0cc662e", "version-semver": "1.0.0-beta.6", "port-version": 0 }, { "git-tree": "a5742923375357a52887b2c969db207937b01592", "version-semver": "1.0.0-beta.5", "port-version": 0 }, { "git-tree": "50c7a85fdc78ded123beb5dd15e2b4557ace24b2", "version-semver": "1.0.0-beta.4", "port-version": 0 }, { "git-tree": "f2454e03858a910421f6fd248968fd1cb7999ba7", "version-semver": "1.0.0-beta.3", "port-version": 1 }, { "git-tree": "cdd44f43f4a8020582266cf5ac32d701281d2e88", "version-semver": "1.0.0-beta.3", "port-version": 0 }, { "git-tree": "88712b0277f9501bbeab4d9244338fd5411eef93", "version-semver": "1.0.0-beta.2", "port-version": 1 }, { "git-tree": "22f82ee324a3d5a33f8e3f9896b780f5a90f786e", "version-semver": "1.0.0-beta.2", "port-version": 0 }, { "git-tree": "c42a4ff250d353e2d0764b8f58dfec820b3cea69", "version-semver": "1.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-core-cpp.json ================================================ { "versions": [ { "git-tree": "3ab68a77cdeb2d884b15eaba2fe488858b955c36", "version-semver": "1.16.2", "port-version": 0 }, { "git-tree": "95146de814385c1d8c5b61987915ee94ad53f51b", "version-semver": "1.16.1", "port-version": 1 }, { "git-tree": "052e45a725e8f9ad5cb1b2afe4964b6699451daf", "version-semver": "1.16.1", "port-version": 0 }, { "git-tree": "48f9579afe5772a1a9ca59ad8e73ae8db33c83cd", "version-semver": "1.16.0", "port-version": 0 }, { "git-tree": "d774de34681c07ba03c9309c3df5c2fa30a0d312", "version-semver": "1.15.0", "port-version": 0 }, { "git-tree": "9baf7e69af4e1eb2cfb6d9ca485b1c622f9f2211", "version-semver": "1.14.1", "port-version": 0 }, { "git-tree": "f937bf0444060d596ffb2693a71640086939a542", "version-semver": "1.14.0", "port-version": 1 }, { "git-tree": "fb70bf821b5752b8e8bc942945aea223ad4960dc", "version-semver": "1.14.0", "port-version": 0 }, { "git-tree": "aabaf9842636614c3744b96d734e09ba91977e52", "version-semver": "1.13.0", "port-version": 0 }, { "git-tree": "b5e3f19289a8758877e8bbb162d8a95cd0ff64f6", "version-semver": "1.12.0", "port-version": 0 }, { "git-tree": "1e13c4ae11486bbbbcfc89199a8c5157fb854445", "version-semver": "1.11.3", "port-version": 0 }, { "git-tree": "6d0b991648eed7860c0e873b5e9b6332cdc23d25", "version-semver": "1.11.2", "port-version": 0 }, { "git-tree": "830e9f51cb0a1f435da75021a1254edb52fc0498", "version-semver": "1.11.1", "port-version": 0 }, { "git-tree": "30673e31e776858e870bff22344de32cada95d13", "version-semver": "1.11.0", "port-version": 0 }, { "git-tree": "3de5ec61efe0f113131a5a7847a2964b930b8f88", "version-semver": "1.10.3", "port-version": 2 }, { "git-tree": "0f2e80c3e438f6738b7f0910f3122f21d52eb653", "version-semver": "1.10.3", "port-version": 1 }, { "git-tree": "a6323331b6946093d5e0c3dd11e33d3e83203dc3", "version-semver": "1.10.3", "port-version": 0 }, { "git-tree": "5f406f6bf6084c74a6a234f35bc6e232fae15cae", "version-semver": "1.10.2", "port-version": 5 }, { "git-tree": "dc5ce5e0d496bbae8d2cd2f8908f7a01b5cfbc48", "version-semver": "1.10.2", "port-version": 4 }, { "git-tree": "371ce124f91e0b9d64a44e47b573b5a3f4602498", "version-semver": "1.10.2", "port-version": 3 }, { "git-tree": "0988f8606d4a1ee55446b680b6ea134cfae20569", "version-semver": "1.10.2", "port-version": 2 }, { "git-tree": "bfb8b85899d4e6783f93392104d7ee80c8d0a89c", "version-semver": "1.10.2", "port-version": 1 }, { "git-tree": "d3a1b3382bddaf219a0fef6dafd6a31c43d28e02", "version-semver": "1.10.2", "port-version": 0 }, { "git-tree": "52af14a3a0795d87c3fd9f09b9026c91fcae4b81", "version-semver": "1.10.1", "port-version": 0 }, { "git-tree": "b74424cb6faf3443c02effba66f048e0539437aa", "version-semver": "1.10.0", "port-version": 0 }, { "git-tree": "307d4685a0813bb00150dfe87aed0b3fbf88c179", "version-semver": "1.9.0", "port-version": 0 }, { "git-tree": "43ab8aacc87b3d2644b7845af700baf9320f139f", "version-semver": "1.8.2", "port-version": 0 }, { "git-tree": "66add6b6952292833b50c4f3bbcf9ea90d192b38", "version-semver": "1.8.1", "port-version": 0 }, { "git-tree": "a18e2b1efaf5843b0eb5fe27a88c4306d5572970", "version-semver": "1.8.0", "port-version": 0 }, { "git-tree": "3e84299750d32b17b16b8d795a66937851564d6a", "version-semver": "1.7.2", "port-version": 2 }, { "git-tree": "b9e5836104380238317ab53761a49a01fdb308fe", "version-semver": "1.7.2", "port-version": 1 }, { "git-tree": "5c0aaa2cef20a29b4e141758ed3fcce954449d1b", "version-semver": "1.7.2", "port-version": 0 }, { "git-tree": "e17b1885416ae07365e86acec91312d7318cc305", "version-semver": "1.7.1", "port-version": 0 }, { "git-tree": "677fc287c3ba4d9a3582498071e1d14d5632e48f", "version-semver": "1.7.0", "port-version": 0 }, { "git-tree": "5b920c224b5fa4daa427701a123bdf213dac8c43", "version-semver": "1.6.0", "port-version": 0 }, { "git-tree": "8940f6b17c33b8076e08c931fcf2ccdafa2fe2f2", "version-semver": "1.5.0", "port-version": 0 }, { "git-tree": "73975ac66807a0477bcaa3fa75fdfaf0f74bdb06", "version-semver": "1.4.0", "port-version": 0 }, { "git-tree": "b34bd865f3d3caf5b7021d5e9048d775b3e9cfb0", "version-semver": "1.3.1", "port-version": 0 }, { "git-tree": "842ba2028c1b8b50de96e7c27e85959889778ab0", "version-semver": "1.2.1", "port-version": 0 }, { "git-tree": "68831f9976e41448ebf74ead081d41ce09042c38", "version-semver": "1.2.0", "port-version": 0 }, { "git-tree": "b330962cc2223833ef92e2be4e8d7e825dd3e141", "version-semver": "1.1.0", "port-version": 0 }, { "git-tree": "15d579e95b536829e42fc2fda4c8b6365180eb3a", "version-semver": "1.0.0", "port-version": 0 }, { "git-tree": "5f331c1e92da2947207db42ba2bba398cf19470b", "version-semver": "1.0.0-beta.9", "port-version": 0 }, { "git-tree": "48c994ba970ba698f09e0dcc425947f5b9b8b865", "version-semver": "1.0.0-beta.8", "port-version": 1 }, { "git-tree": "2950f581cd5d38ae9b8fdc35b8c0c69c19ff209c", "version-string": "1.0.0-beta.8", "port-version": 0 }, { "git-tree": "87b79aabd7415802c0c50d30b68e1911dfe295dd", "version-string": "1.0.0-beta.7", "port-version": 0 }, { "git-tree": "e143c195fc65254d4ad494f01ac5d9832bcced83", "version-string": "1.0.0-beta.6", "port-version": 0 }, { "git-tree": "d2c26dc5d0cba4af8359e6ed7d4820daf494ee2a", "version-string": "1.0.0-beta.5", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-core-tracing-opentelemetry-cpp.json ================================================ { "versions": [ { "git-tree": "ede2451347b069aee8361c7f828022a2a66571f1", "version-semver": "1.0.0-beta.4", "port-version": 6 }, { "git-tree": "787e5bf9dd2696add1ff8d3bea711b9611c15c43", "version-semver": "1.0.0-beta.4", "port-version": 5 }, { "git-tree": "50af7ca57ee7e96f6d9c772f3f2e4032bfae4d2a", "version-semver": "1.0.0-beta.4", "port-version": 4 }, { "git-tree": "c98ff298b59faef771f5020d2b6ae31b2a9c568a", "version-semver": "1.0.0-beta.4", "port-version": 3 }, { "git-tree": "0fb3475fbd40be762b7bb9a1a85fef10eb4af9a3", "version-semver": "1.0.0-beta.4", "port-version": 2 }, { "git-tree": "001d1fc3f1ecbaa77894355634624bc5a7c7d7f2", "version-semver": "1.0.0-beta.4", "port-version": 1 }, { "git-tree": "a17fe14abb083b59b9ef5d25157a6cd85acb3ee9", "version-semver": "1.0.0-beta.4", "port-version": 0 }, { "git-tree": "c6c807cb48e2dcdd3ed49e058822402cf1c71d79", "version-semver": "1.0.0-beta.3", "port-version": 0 }, { "git-tree": "e0228c8ec49e7dbde7c7044c915945425ce5092d", "version-semver": "1.0.0-beta.2", "port-version": 1 }, { "git-tree": "4113db6be129830ea748465ca56fcb75e6ef4a31", "version-semver": "1.0.0-beta.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-data-tables-cpp.json ================================================ { "versions": [ { "git-tree": "4e816f4ffece11c36fde3d0474699df8143d93b0", "version-semver": "1.0.0-beta.6", "port-version": 1 }, { "git-tree": "6b1c91c8c8fa88e99e366f7af96a5d8410c55fe4", "version-semver": "1.0.0-beta.6", "port-version": 0 }, { "git-tree": "1ad1af053613b923eee8cb31a2e52c4fcc9dccb8", "version-semver": "1.0.0-beta.5", "port-version": 0 }, { "git-tree": "8c8fd7ca261ef5f849f5e802432971d026b73529", "version-semver": "1.0.0-beta.4", "port-version": 1 }, { "git-tree": "25bfcc3d875731c2dfac231c9468ff0d02ef774e", "version-semver": "1.0.0-beta.4", "port-version": 0 }, { "git-tree": "ed4cb2a14fcf974193a3ae2e053b48a3e3444337", "version-semver": "1.0.0-beta.3", "port-version": 0 }, { "git-tree": "e38d180e92e2bc0671c15bd5c2bf7161354c27e0", "version-semver": "1.0.0-beta.2", "port-version": 0 }, { "git-tree": "0b296b42b6c89f3400486fbf366d34ebaea13530", "version-semver": "1.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-identity-cpp.json ================================================ { "versions": [ { "git-tree": "3ebf06dbcb6cb5686ac32c6e5f1591ec759dc817", "version-semver": "1.13.3", "port-version": 0 }, { "git-tree": "f38aea95854843dc590ad620f31610d4d258d7b5", "version-semver": "1.13.2", "port-version": 1 }, { "git-tree": "f8d41b92363e5cc96ef228b224f844716af0765b", "version-semver": "1.13.2", "port-version": 0 }, { "git-tree": "1e9511c700bca7886950357cd94ab8797c37e5a8", "version-semver": "1.13.1", "port-version": 0 }, { "git-tree": "b39602e8624add1faaa6effbac56040aab9dc738", "version-semver": "1.13.0", "port-version": 0 }, { "git-tree": "56cce1af52b47fdbe7d5f24b7bc837bce66c90b0", "version-semver": "1.12.0", "port-version": 0 }, { "git-tree": "e72de6695eb608a94cfc018dd8fa1902dc9a5404", "version-semver": "1.11.0", "port-version": 0 }, { "git-tree": "71cea39ca0db6d11463b836b076716a4f8ab5359", "version-semver": "1.10.1", "port-version": 0 }, { "git-tree": "fc15d56f69b1832146f5625ef9b18000febf8341", "version-semver": "1.10.0", "port-version": 2 }, { "git-tree": "e34818074344451c91bda6706bf359f84a3b69b8", "version-semver": "1.10.0", "port-version": 1 }, { "git-tree": "63ed30855e25a06b3b9ce7594e4a3de84f729039", "version-semver": "1.10.0", "port-version": 0 }, { "git-tree": "f861dcd6df544f7d4b994cdfa5e0c5d7a64ec428", "version-semver": "1.9.0", "port-version": 0 }, { "git-tree": "aa5928690e817641b1f97d158e0bc7dde3f05650", "version-semver": "1.8.0", "port-version": 0 }, { "git-tree": "9f1b7552f9fa0111e34ea72e722f9f4512f612b3", "version-semver": "1.6.0", "port-version": 1 }, { "git-tree": "cb43628d1a08baa198ed4cdc7d317ed73ed3815f", "version-semver": "1.6.0", "port-version": 0 }, { "git-tree": "5fd04f09c1fc0efef3008e8407828b368d75ee5d", "version-semver": "1.5.1", "port-version": 1 }, { "git-tree": "2855fbb155aacc587ca1e2d518ab2e8369e6d8c0", "version-semver": "1.5.1", "port-version": 0 }, { "git-tree": "abdd671a9667a8b13e439410503d5bb582189fdc", "version-semver": "1.5.0", "port-version": 0 }, { "git-tree": "07078cbe0cd0059af61369f8794ff5d652eaf506", "version-semver": "1.4.0", "port-version": 0 }, { "git-tree": "d6012ea56bf0a94eba27f56156e5f45fda7a34cf", "version-semver": "1.3.0", "port-version": 0 }, { "git-tree": "f6de8ed7d7b299df5cee8483a4f84cb07dd57b1c", "version-semver": "1.2.0", "port-version": 0 }, { "git-tree": "df411f808c6dab5e59a7f378308856d803150c04", "version-semver": "1.1.1", "port-version": 0 }, { "git-tree": "2742c6a31a2a3238ea97663c2b40be998c18006d", "version-semver": "1.1.0", "port-version": 0 }, { "git-tree": "adfe9dad7c61ced7b66ba0cb6220f8341c4be5e2", "version-semver": "1.0.0", "port-version": 0 }, { "git-tree": "5b1607f9afe53751e0468408b96d10be8712fd2a", "version-semver": "1.0.0-beta.6", "port-version": 0 }, { "git-tree": "bf9a1c77957b02e2b1521fc5847d4c8ab617ebcd", "version-semver": "1.0.0-beta.5", "port-version": 1 }, { "git-tree": "3353c1b44fa79a1935f488a6a66ecad2fa35d5ac", "version-string": "1.0.0-beta.5", "port-version": 0 }, { "git-tree": "61833d54ef29f383d33a5a0b7eae7be690dfcfc8", "version-string": "1.0.0-beta.4", "port-version": 0 }, { "git-tree": "c45f6c8ac731079eb1e5f40a0e5af2725b3ec97a", "version-string": "1.0.0-beta.3", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-iot-sdk-c.json ================================================ { "versions": [ { "git-tree": "55fd60be17f2d80f7ba6fd981dfc89f0334f4c97", "version-date": "2025-03-31", "port-version": 0 }, { "git-tree": "f4ffbad2bfbca48e0fb21e1c8384c2744cc63b47", "version-date": "2024-08-12", "port-version": 0 }, { "git-tree": "985f3004ba88971feec22ef2d3f28ee68297af61", "version-date": "2024-06-24", "port-version": 0 }, { "git-tree": "a29e29d0221f5eb85f25aed350bca68636273cd9", "version-date": "2024-05-21", "port-version": 0 }, { "git-tree": "c59e266be9be7454384b38fc56f42be7e40084e9", "version-date": "2024-03-04", "port-version": 0 }, { "git-tree": "2761c8c3302243693aaa2877b54a904d5cbed96f", "version-date": "2023-08-07", "port-version": 0 }, { "git-tree": "197034166d7fc06ba2ed5562d8548c9404a736ae", "version-date": "2023-08-06", "port-version": 0 }, { "git-tree": "0013d7074456da0e8be20a9e56ed79a7aa96f1c4", "version-date": "2023-01-18", "port-version": 0 }, { "git-tree": "9cb7368d6494ab01b085cad166bb7fef06cd14e7", "version-date": "2022-09-15", "port-version": 1 }, { "git-tree": "2a47653f79ed3d0017784d96142716554dd4de95", "version-date": "2022-09-15", "port-version": 0 }, { "git-tree": "80f1eb4e465fef817503af2c9599b2186d4922e6", "version-date": "2022-01-21", "port-version": 2 }, { "git-tree": "0570fa462646f08bb3ed9a34ecb693082def3d3b", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "77b1d419b740dd9738f237a6d52b1c161e99ee9d", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "3d6dc98460c69e8690f9b20f62cf75e9e3ef7f2d", "version-date": "2021-09-09", "port-version": 0 }, { "git-tree": "07dbca4b72d51fb97f55b032e1b412add4054973", "version-date": "2020-12-09", "port-version": 2 }, { "git-tree": "5dadcecafd0c3ffdfcf438c1f5f8b106002e14d0", "version-date": "2020-12-09", "port-version": 1 }, { "git-tree": "d74324af317840ffb5c5aa54f1579ef2faab4a0e", "version-string": "2020-12-09", "port-version": 0 }, { "git-tree": "9f3df818a2c11f1ff3cd08ae120a51ea3cee6de0", "version-string": "2020-07-19", "port-version": 1 }, { "git-tree": "0be2c84c3e66aa2edd82864aa792b1d41dbebdcd", "version-string": "2020-07-19", "port-version": 0 }, { "git-tree": "7a25f1e3d02b4eb7ec7110fd0e90ebca37a8fd0c", "version-string": "2020-06-17-2", "port-version": 0 }, { "git-tree": "7a289a2df8fcb5e844e339f6e7140331532188b3", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "bf6fc7dd2473f26b4289c3f0a73e92a1c495b750", "version-string": "2020-02-04.1-1", "port-version": 0 }, { "git-tree": "4bc8edb99e357d3b403331dba9b26e158ea09ae5", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "311aea20dcb9d5c799300ad53491aae614d808ab", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "b170755eee93c5fe19f70d720c067059e025b5c3", "version-string": "2019-11-27.1", "port-version": 0 }, { "git-tree": "953cc7e3e5cc4418ca7d05e42c33100f4c526fcc", "version-string": "2019-11-21.1", "port-version": 0 }, { "git-tree": "0e71a03764a86d5f9562b23d7eb5910c538f5673", "version-string": "2019-10-11.2", "port-version": 0 }, { "git-tree": "d689c0fe5967ec4c806c2afa657fe38de305879a", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "b3aabfdbf4fa08d131af2ba0e671777b903fda67", "version-string": "2019-10-11.1", "port-version": 0 }, { "git-tree": "3aadeec4f601503581fd3d8c699bba7ba53e8a5a", "version-string": "2019-10-07.1", "port-version": 0 }, { "git-tree": "5874d9743da2f26c679a19877dff7e083d06bb21", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "ba8e85e3be7c7106f8203a650917d6ffaa19046d", "version-string": "2019-07-01.1", "port-version": 0 }, { "git-tree": "296fe87f58018fa040fda8561e355c9caed83b07", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "18a24f4ebe62009734771b6f294f1104ead6c304", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "ceca4996aa20303fcdc5514ffc541121bc9fb166", "version-string": "2019-03-18-1", "port-version": 0 }, { "git-tree": "510ab167e1507d21e7262222b989df0b8a5d098a", "version-string": "2019-03-18", "port-version": 0 }, { "git-tree": "1aff5c53dc1341378225fc60e88a7a449a30c887", "version-string": "1.2.14-1", "port-version": 0 }, { "git-tree": "3d7d4e4db5bccac0c1f4cbfe7c22fac0bd80eb1e", "version-string": "1.2.13-2", "port-version": 0 }, { "git-tree": "efbcb2ec25b4eb70275154ff461b88516444234a", "version-string": "1.2.13-1", "port-version": 0 }, { "git-tree": "0dd6d00aad65af3f3f4cef6f6c31ef36a2014b20", "version-string": "1.2.12-1", "port-version": 0 }, { "git-tree": "3d88f6ac92bf4d917808273d441da9eb10d8d862", "version-string": "1.2.11-1", "port-version": 0 }, { "git-tree": "e44b08db6ae01fe2dc7dfbdd54a35a9ed6b53ee0", "version-string": "1.2.10-1", "port-version": 0 }, { "git-tree": "9d849a4587dc0b8488ed1f837d52c2f8e02af77d", "version-string": "1.2.3", "port-version": 0 }, { "git-tree": "714bc742002d224bc8356c64f756891b812b83ff", "version-string": "1.2.2", "port-version": 0 }, { "git-tree": "9149197625c7fdf70de9bda91ec9c2e55dbe8ff4", "version-string": "1.0.0-pre-release-1.0.9", "port-version": 0 }, { "git-tree": "a5985efd11e9b382eb98916a3193e0bbd320fb7b", "version-string": "1.2.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-kinect-depth-engine.json ================================================ { "versions": [ { "git-tree": "433533fdfc037c872e72c0e326ea044fe74a7a19", "version": "1.4.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-kinect-sensor-sdk.json ================================================ { "versions": [ { "git-tree": "69ad1c2c7c7630eb4d19abbcaf07ead5445f393b", "version": "1.4.2", "port-version": 0 }, { "git-tree": "f19cdb3144d4296ac862b6e94c9967c056325476", "version": "1.4.1", "port-version": 8 }, { "git-tree": "a684e03aa0836ede2caba93683bee3fd3d1ed15f", "version": "1.4.1", "port-version": 7 }, { "git-tree": "f5fbd0b39a805bc47da22f4bc462bec175518ae1", "version": "1.4.1", "port-version": 6 }, { "git-tree": "e2a1e6a1a145f9436731cbcc9019f807325298c1", "version": "1.4.1", "port-version": 5 }, { "git-tree": "379c37baf28190bb33ccf1d512c22a21c664e41e", "version": "1.4.1", "port-version": 4 }, { "git-tree": "11fbd98a9560da0ad96abf61d8731778db6e5b8b", "version": "1.4.1", "port-version": 3 }, { "git-tree": "012a033caf02486f3079b0c42036a807f3a7c4d7", "version": "1.4.1", "port-version": 2 }, { "git-tree": "dc7fdf585419fadcd96b13a800c4323b098256cd", "version": "1.4.1", "port-version": 1 }, { "git-tree": "28c9dbd6d17602e942cd81f9d70aeff80f3d83f0", "version-string": "1.4.1", "port-version": 0 }, { "git-tree": "dfd54f8c9eeba870d560c0a157996357aeda331c", "version-string": "1.4.0-alpha.0", "port-version": 6 }, { "git-tree": "20326da559a175eeff6bcffd4e019f846df30f97", "version-string": "1.4.0-alpha.0-5", "port-version": 0 }, { "git-tree": "b351a4567478ee583e9f4deb60acd361579ef4ba", "version-string": "1.4.0-alpha.0-4", "port-version": 0 }, { "git-tree": "e164dc694eff10a4032203b5bcd73afec7adae8d", "version-string": "1.4.0-alpha.0-3", "port-version": 0 }, { "git-tree": "fe03af276cc717392f9116cdeb42960c4029a76d", "version-string": "1.4.0-alpha.0-2", "port-version": 0 }, { "git-tree": "431a999f4c33bf8e25e3eac03acf45c6abb81d52", "version-string": "1.4.0-alpha.0-1", "port-version": 0 }, { "git-tree": "ce50b6b24387a85d6d83988007a18a290a4ce3a4", "version-string": "1.4.0-alpha.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-macro-utils-c.json ================================================ { "versions": [ { "git-tree": "9fd2347e1746c45e04e42e0a98b88a147ec366c8", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "0c90715278e5ab77af983254bdf17571bf69c55b", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "a951ed2a9b24f8778b7c2fb2ff4e6a6577ac6472", "version-string": "2020-06-17", "port-version": 3 }, { "git-tree": "5929e9b68ee080e5535eb12e48e182b04310ff0d", "version-string": "2020-06-17", "port-version": 2 }, { "git-tree": "5f0ef9c1c4c9cae50a61b5f88497c3ca42146dfa", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "d6ae8d30c57b65db496154c80f8ca80992d5d1bd", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "1651a335030d25654378f8a3ae715ee40c424d5d", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "19841d0ff449cf59f69579d428e0e13572f6fb51", "version-string": "2019-11-27.1", "port-version": 0 }, { "git-tree": "82ea324cb22549134cac1eaf5bd81916be6e8556", "version-string": "2019-10-07.2", "port-version": 0 }, { "git-tree": "299721b78ac595310c35de9f80233ba604f27181", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "1f4f3443b1ed9d8051b10077c10fe0f1f4eeff0c", "version-string": "2019-10-07.1", "port-version": 0 }, { "git-tree": "9d08ab1555940f0856e9dc339d30152a5242ca1f", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "2246a1b87f1e4147401c156928fccc8aca2e4889", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "05d3942ba6c1dd2d26eb8be9612308a337415a06", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "fdcc445c49e3c6ec45eedf634714baf7dbe6b0ec", "version-string": "2019-04-11-1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-messaging-eventhubs-checkpointstore-blob-cpp.json ================================================ { "versions": [ { "git-tree": "d7f985fec59c28892a33b4d84ca74ee50732ce53", "version-semver": "1.0.0-beta.1", "port-version": 5 }, { "git-tree": "56d7d109e00a8bb0d208eb212840290cdadd4cc6", "version-semver": "1.0.0-beta.1", "port-version": 4 }, { "git-tree": "8bdfa6fd4defa1e8e62bdaad4e75a9992f40c083", "version-semver": "1.0.0-beta.1", "port-version": 3 }, { "git-tree": "03dbf04a656de3308127d2d2c979e355b163d2da", "version-semver": "1.0.0-beta.1", "port-version": 2 }, { "git-tree": "44c7021f43e5786d7be87b935868e4c283d72755", "version-semver": "1.0.0-beta.1", "port-version": 1 }, { "git-tree": "9289b19329d8fc1b12ef5a71d1cf2d743a32cc2a", "version-semver": "1.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-messaging-eventhubs-cpp.json ================================================ { "versions": [ { "git-tree": "4c6ca01888f18e483475041d70d067aa6e82cd39", "version-semver": "1.0.0-beta.10", "port-version": 1 }, { "git-tree": "0f4c7ad624ca6bba7d771e9c90ea24ae8f71dff8", "version-semver": "1.0.0-beta.10", "port-version": 0 }, { "git-tree": "20acc123d4bc4b1499ba80cefbf27648204dba78", "version-semver": "1.0.0-beta.9", "port-version": 2 }, { "git-tree": "77827efdc37ee6717125e6516b9ebfb8f2bc90d7", "version-semver": "1.0.0-beta.9", "port-version": 1 }, { "git-tree": "6cbe35b54aa6c2f494e5df9be90a25813c2afb85", "version-semver": "1.0.0-beta.9", "port-version": 0 }, { "git-tree": "8c4968a0d93bd9cd5d49b5dcc0283db37e26f07a", "version-semver": "1.0.0-beta.8", "port-version": 0 }, { "git-tree": "8d7b2d204dc0bf69c7f380dce10b39287c5dc604", "version-semver": "1.0.0-beta.7", "port-version": 0 }, { "git-tree": "2823cc22f2097df4705b1ab925822f6ba19e40f9", "version-semver": "1.0.0-beta.6", "port-version": 0 }, { "git-tree": "b863a91f0ee55df12d178fb00837d37d640e6f80", "version-semver": "1.0.0-beta.5", "port-version": 0 }, { "git-tree": "bde9f1c76919eecaaf6680e602eba5126c8d1fad", "version-semver": "1.0.0-beta.4", "port-version": 0 }, { "git-tree": "d50578e6b52b84c8be16a01ee83b4777c3c4bc9d", "version-semver": "1.0.0-beta.3", "port-version": 0 }, { "git-tree": "2e4e38f8b37bd9c3c6af8bd95887d9108ba1ca67", "version-semver": "1.0.0-beta.2", "port-version": 1 }, { "git-tree": "983c9c2a6615afc22cd76bdbbef3f403a608bbbf", "version-semver": "1.0.0-beta.2", "port-version": 0 }, { "git-tree": "d749c9b65d616fc776e8c71e352890d84ddd6c1c", "version-semver": "1.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-attestation-cpp.json ================================================ { "versions": [ { "git-tree": "4bfd20ab870927eebca73e3e0460db2f7ddaf3da", "version-semver": "1.1.0", "port-version": 8 }, { "git-tree": "e7e77ecada6df45dc792ff0cc3886ea8599a8400", "version-semver": "1.1.0", "port-version": 7 }, { "git-tree": "aa1f9163cca2993354c108a3f9b3dfcf561635f0", "version-semver": "1.1.0", "port-version": 6 }, { "git-tree": "88c5e0b80d5cd580969d5c807b7ce06d7f2cda25", "version-semver": "1.1.0", "port-version": 5 }, { "git-tree": "bdd0a170a44d77a8ff2753846cb23008c90ab7ac", "version-semver": "1.1.0", "port-version": 4 }, { "git-tree": "14d1242810e6d4de5c6fc523ae4d9ecb4904b58e", "version-semver": "1.1.0", "port-version": 3 }, { "git-tree": "ece7b864d0d0ab18ba081e5695efea98c5aa2bdf", "version-semver": "1.1.0", "port-version": 2 }, { "git-tree": "812294d664f9765544343cfc8b5265edfb88d061", "version-semver": "1.1.0", "port-version": 1 }, { "git-tree": "11cd3682ae481f52a58478f4379bc21e627ed5f8", "version-semver": "1.1.0", "port-version": 0 }, { "git-tree": "8293ab6b738d343991db9a759a62cac032f84d20", "version-semver": "1.0.0", "port-version": 0 }, { "git-tree": "e0a46382e8a741a311e07f21ffd28ebb654c32ea", "version-semver": "1.0.0-beta.3", "port-version": 0 }, { "git-tree": "e69adb1c996c0ae3b5bde53d32f619c51d0b95a5", "version-semver": "1.0.0-beta.2", "port-version": 0 }, { "git-tree": "9b6b2e71b9d94791a1481a40367fc5ec5607b8aa", "version-semver": "1.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-keyvault-administration-cpp.json ================================================ { "versions": [ { "git-tree": "78e178b9237395ecd9972f1837413ee8a7ab2609", "version-semver": "4.0.0-beta.5", "port-version": 2 }, { "git-tree": "a6ee89f64c55c1202b7d71fd7551916ea5e62d93", "version-semver": "4.0.0-beta.5", "port-version": 1 }, { "git-tree": "981cd5dab70bbcf44130dfe094e96d3ce5095b15", "version-semver": "4.0.0-beta.5", "port-version": 0 }, { "git-tree": "a15b58595ed231b1806d0d28996d72417d82867a", "version-semver": "4.0.0-beta.4", "port-version": 1 }, { "git-tree": "dd36ccbfee4987cbea6cee9fae8e752b1fc9f3cb", "version-semver": "4.0.0-beta.4", "port-version": 0 }, { "git-tree": "478811ebfa9d552d2b1fcf03e1721cc9175b17bf", "version-semver": "4.0.0-beta.3", "port-version": 1 }, { "git-tree": "6c7bbcafaacfef51314e05b648c3634a3d324916", "version-semver": "4.0.0-beta.3", "port-version": 0 }, { "git-tree": "51aaf65e62ea28b9af84af79e4d655ea13c40ba3", "version-semver": "4.0.0-beta.2", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-keyvault-certificates-cpp.json ================================================ { "versions": [ { "git-tree": "e368552772af26a0ff36343dac31ae6bf091465a", "version-semver": "4.2.1", "port-version": 4 }, { "git-tree": "04bc0d3763fbdd8773ae5ef3f00107f3a2bb3c70", "version-semver": "4.2.1", "port-version": 3 }, { "git-tree": "75bd228566d927e22eec5b51aae2c71dc3d05e3f", "version-semver": "4.2.1", "port-version": 2 }, { "git-tree": "acf18957f24ce055dd972e0c4dfe0063811cdaec", "version-semver": "4.2.1", "port-version": 1 }, { "git-tree": "24b5030675a24e25b0fb571b39d33e7ee6caa61e", "version-semver": "4.2.1", "port-version": 0 }, { "git-tree": "b0dd2ae87c69a4637e82ea188db1ee1e2624ac2c", "version-semver": "4.2.0", "port-version": 1 }, { "git-tree": "6f480f2686c90dc9985e9c827ecc2f3c086985f0", "version-semver": "4.2.0", "port-version": 0 }, { "git-tree": "4f575471af05af66923fe548074d30f1aa0fdc2c", "version-semver": "4.1.0", "port-version": 0 }, { "git-tree": "c24da36700f623cd4c2242dcd6a7dae58673a97c", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "bbaebc2afcade7b67f33d7d62ec680aaa0b3700d", "version-semver": "4.0.0-beta.2", "port-version": 0 }, { "git-tree": "5faeb850df56edd9f4689f69f4d64e6e51dde80b", "version-semver": "4.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-keyvault-common-cpp.json ================================================ { "versions": [ { "git-tree": "a4b3a34ea38546dd4eb3446ca9f745bba164af49", "version-semver": "4.0.0-beta.3", "port-version": 0 }, { "git-tree": "427e0adc6e385b009d892345c04b9e180d68e3cd", "version-semver": "4.0.0-beta.2", "port-version": 0 }, { "git-tree": "c3e9761add3c0ad93a038ab859d288e64fc7860e", "version-semver": "4.0.0-beta.1", "port-version": 1 }, { "git-tree": "c084ea582625d5235560b84953af1240270c5a18", "version-string": "4.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-keyvault-keys-cpp.json ================================================ { "versions": [ { "git-tree": "ec8f38a5b4c22a93e568eaf331f160903a6aa36d", "version-semver": "4.4.1", "port-version": 4 }, { "git-tree": "4afe6efdcdc0e5df2c45c177a8ad5f4815fb98b2", "version-semver": "4.4.1", "port-version": 3 }, { "git-tree": "5e08ec294ffa70534153ce3b9275f98d042603cb", "version-semver": "4.4.1", "port-version": 2 }, { "git-tree": "2d6d591db10c8696d1866c04d9aa5df6f8a23868", "version-semver": "4.4.1", "port-version": 1 }, { "git-tree": "6ca701263f474612b070c37fbc5a7932a562838e", "version-semver": "4.4.1", "port-version": 0 }, { "git-tree": "7e455823cb2d81cf79f550f26d1fa3b9cff61e86", "version-semver": "4.4.0", "port-version": 1 }, { "git-tree": "404efdca4682f39039fe7e76541db56b6cab3e3e", "version-semver": "4.4.0", "port-version": 0 }, { "git-tree": "f4d8db5aff7d24803e3a2605d3bf3051343fb9a0", "version-semver": "4.3.0", "port-version": 0 }, { "git-tree": "c2a617f9326c712866be1e5218a1ae18262ee178", "version-semver": "4.2.0", "port-version": 0 }, { "git-tree": "ee627e15fc96740b6d7d89fea0ef9bae6f24da5c", "version-semver": "4.1.0", "port-version": 0 }, { "git-tree": "b710e9d89ef00e649c793f46ce7c67af63fa3611", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "6a62e90cc13ab362ba09462fa444512aee671482", "version-semver": "4.0.0-beta.4", "port-version": 1 }, { "git-tree": "beff44522cd72f08bddabfc35a520533b97d1819", "version-semver": "4.0.0-beta.4", "port-version": 0 }, { "git-tree": "cb31e4f4d75f3e38568a324dc412f308bd463bfa", "version-semver": "4.0.0-beta.3", "port-version": 0 }, { "git-tree": "21cbc7aa281189b4bd3364f1dc044aad8218ebfb", "version-semver": "4.0.0-beta.2", "port-version": 0 }, { "git-tree": "030fd5b9588b63350781bb875a3fc2d67d0d13f0", "version-semver": "4.0.0-beta.1", "port-version": 1 }, { "git-tree": "816b5bddbbd2e2396336120039220dd7c83a898d", "version-string": "4.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-security-keyvault-secrets-cpp.json ================================================ { "versions": [ { "git-tree": "b8ca778246b9180d61f4ce847361f298adcea7c7", "version-semver": "4.2.1", "port-version": 4 }, { "git-tree": "59fc00624617f87b2f6cc2001dc559d87b78c604", "version-semver": "4.2.1", "port-version": 3 }, { "git-tree": "dd50aa8c678a3b44cfe156c2585bf3e55c0d3fda", "version-semver": "4.2.1", "port-version": 2 }, { "git-tree": "7225e1286b3ede5419906d317929a3b62507a9a9", "version-semver": "4.2.1", "port-version": 1 }, { "git-tree": "5edd7b9816c3c93ff452244bb579effa3c863787", "version-semver": "4.2.1", "port-version": 0 }, { "git-tree": "5c41c5b32fe02aeb4ab47a5ddaa19df33fac9ee7", "version-semver": "4.2.0", "port-version": 1 }, { "git-tree": "a795e3eddbe6ced53ba732f9793679e78d79d359", "version-semver": "4.2.0", "port-version": 0 }, { "git-tree": "7b5d805e78f564ff27138c6f005175979b6740c6", "version-semver": "4.1.0", "port-version": 0 }, { "git-tree": "8129639c271f03d256499116ce6f6572ba11eb87", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "c977a0be18a1e5f8591268d35b0a221ef9e8f7f9", "version-semver": "4.0.0-beta.2", "port-version": 0 }, { "git-tree": "e0a2ec6fd19019aaf9f485eea66c5b660b1bc7a4", "version-semver": "4.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-blobs-cpp.json ================================================ { "versions": [ { "git-tree": "f1fe3f8a0891b98c4707c014be96b29063fa7cba", "version-semver": "12.16.0", "port-version": 0 }, { "git-tree": "43afedbc2f59bde52251b53d54514acb7546bcfa", "version-semver": "12.15.0", "port-version": 0 }, { "git-tree": "bbcaec35a70467764f2e2fcd04040336597074bf", "version-semver": "12.14.0", "port-version": 0 }, { "git-tree": "cd9abe94e013e42493479d573f7e7d60a89c5821", "version-semver": "12.13.0", "port-version": 1 }, { "git-tree": "27ed64e60e120ebfed0bed577860888f7754e0c3", "version-semver": "12.13.0", "port-version": 0 }, { "git-tree": "a4cffbc14539dd3f61697561e0aa1958d3b58859", "version-semver": "12.12.0", "port-version": 0 }, { "git-tree": "23a1226d8831449c17896b843c9583bb5d848ade", "version-semver": "12.11.0", "port-version": 0 }, { "git-tree": "6571c6c7a51e9a51637d042a5852b9867d51d239", "version-semver": "12.10.0", "port-version": 1 }, { "git-tree": "902107525b099bb6c915311567519dcd55bd2aea", "version-semver": "12.10.0", "port-version": 0 }, { "git-tree": "83ac6004707e784a7a57a72574548579a9ab79d0", "version-semver": "12.9.0", "port-version": 1 }, { "git-tree": "b0699f9368ea7fbc2c6528711c29eb896c76d0a6", "version-semver": "12.9.0", "port-version": 0 }, { "git-tree": "984b2a3258596a074a6a79be8b0d7c3128137981", "version-semver": "12.8.0", "port-version": 0 }, { "git-tree": "40ca58231897346f0bf37910ae4c431aa8a5f56d", "version-semver": "12.7.0", "port-version": 0 }, { "git-tree": "e223f3564c58888a32c160c7f15b3bcb15bc5c71", "version-semver": "12.6.2", "port-version": 0 }, { "git-tree": "06433ca908b304e85f642fc3b062db522567bd7c", "version-semver": "12.6.1", "port-version": 0 }, { "git-tree": "c715b7df779d48070ba729fd20ffcad27267a7bc", "version-semver": "12.6.0", "port-version": 0 }, { "git-tree": "7120a5be966cbf0a79ac6c1efca6ce43c7818d75", "version-semver": "12.5.0", "port-version": 0 }, { "git-tree": "ff9783605f383c1f596ada3a10d2dde88a931f56", "version-semver": "12.4.0", "port-version": 0 }, { "git-tree": "252f2edf841eb01f271d1694f3fea34e63906eba", "version-semver": "12.3.0", "port-version": 0 }, { "git-tree": "6e52659aef1c9a99271c1d590eba0d37f5e472bb", "version-semver": "12.2.1", "port-version": 0 }, { "git-tree": "a3775aa0aa8ad876fffa3d2f77b7c1e12b072a5b", "version-semver": "12.2.0", "port-version": 0 }, { "git-tree": "eed3fb43fd0ab43bf99c91a084111c9d1e14f213", "version-semver": "12.1.0", "port-version": 0 }, { "git-tree": "4927a9eacb27a8088d82005fbae2851755d09ce1", "version-semver": "12.0.1", "port-version": 1 }, { "git-tree": "07131431279c91d81edd9ec56005ee8628c3efdb", "version-semver": "12.0.1", "port-version": 0 }, { "git-tree": "71e03bcc9bb5f7443f1db8724b6cc4fd4e43647b", "version-semver": "12.0.0", "port-version": 0 }, { "git-tree": "25b1c91e5691dd97ee644321ead2e5880bede739", "version-semver": "12.0.0-beta.11", "port-version": 0 }, { "git-tree": "62d9013672397f9c80ae95611cb7318b649b92ec", "version-semver": "12.0.0-beta.10", "port-version": 1 }, { "git-tree": "2601572d72191d63ad6c6f093f00857b71b9ef96", "version-string": "12.0.0-beta.10", "port-version": 0 }, { "git-tree": "1028d726e4188768265becb6f3a95808283cb626", "version-string": "12.0.0-beta.9", "port-version": 0 }, { "git-tree": "2c80923c456a448845be69746b7b814fb2f192ae", "version-string": "12.0.0-beta.8", "port-version": 0 }, { "git-tree": "32a4dca2b5670fbce88652145fe3297bd221a672", "version-string": "12.0.0-beta.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-common-cpp.json ================================================ { "versions": [ { "git-tree": "5e351ff3db860a666f7713cdf5027620c6049b7e", "version-semver": "12.12.0", "port-version": 0 }, { "git-tree": "f4f029ffe709a62378a0ea20be39ac7adb433431", "version-semver": "12.11.0", "port-version": 0 }, { "git-tree": "f74b4e02a4fa7c89858602c4d5f72b5dacf27aff", "version-semver": "12.10.0", "port-version": 0 }, { "git-tree": "8c1ba485d656f727ec4441d5c5b3a1bba79f951a", "version-semver": "12.9.0", "port-version": 0 }, { "git-tree": "a200d88271a1801801abee4e06da137e698cbcec", "version-semver": "12.8.0", "port-version": 1 }, { "git-tree": "477f43d417586ff593070b38902ad8229b39c739", "version-semver": "12.8.0", "port-version": 0 }, { "git-tree": "f6c16a3bd0e53c0be345f657137a9c77c782bec0", "version-semver": "12.7.0", "port-version": 0 }, { "git-tree": "acbd80d6ed68d6d90015b86a6cca4e3c4e6a72fe", "version-semver": "12.6.0", "port-version": 0 }, { "git-tree": "6bcfda73c7ab29e1dfbd7c66878294577ac45420", "version-semver": "12.5.0", "port-version": 1 }, { "git-tree": "97351c3b87aae118c657334bb527c220e196aac7", "version-semver": "12.5.0", "port-version": 0 }, { "git-tree": "8a12fa7967664e0823c8ab1be3ef80ba4faf9245", "version-semver": "12.4.0", "port-version": 2 }, { "git-tree": "973a9aaaa49d33f6afdac2337795bd2ee26bbf7e", "version-semver": "12.4.0", "port-version": 1 }, { "git-tree": "041e401b3394eefc002af8a93bccbb7edc0732b5", "version-semver": "12.4.0", "port-version": 0 }, { "git-tree": "b147e96bd4b49d4803cf8a3c4b5359bfe3bec275", "version-semver": "12.3.3", "port-version": 0 }, { "git-tree": "13de7bf9db0ab19424dcbf7413c3bf2aa5798653", "version-semver": "12.3.2", "port-version": 0 }, { "git-tree": "934133a1c7576ddd824292411199b9bc8f4629f9", "version-semver": "12.3.1", "port-version": 0 }, { "git-tree": "86ad9dc004e0f6fe2a87158ae3aae15bf7bb7033", "version-semver": "12.3.0", "port-version": 0 }, { "git-tree": "fdc5c496fd571985967a900838e181cdb04d318b", "version-semver": "12.2.4", "port-version": 0 }, { "git-tree": "c972f7321758abde4e5d5862c4abd7398f1f26a6", "version-semver": "12.2.3", "port-version": 0 }, { "git-tree": "de5c104dfa95871220c17e4f8f97a99b5da33920", "version-semver": "12.2.2", "port-version": 0 }, { "git-tree": "55a55770fa93d6e541d1540df78aefae2cf905cb", "version-semver": "12.2.1", "port-version": 0 }, { "git-tree": "2ef80d68150017530cb50581cd6f5f03bc607859", "version-semver": "12.2.0", "port-version": 0 }, { "git-tree": "bb0e01a17ffaab119d6a67748a54d8b849fb569b", "version-semver": "12.1.0", "port-version": 0 }, { "git-tree": "f18fbd3b20bfc22766b8767ab8b668be4ea18f58", "version-semver": "12.0.1", "port-version": 1 }, { "git-tree": "d4ce9c53796add134d3ce8f29a9be4e33eba6c2a", "version-semver": "12.0.1", "port-version": 0 }, { "git-tree": "2f672ff6a49e9d420141dc67013b50726f85684c", "version-semver": "12.0.0", "port-version": 0 }, { "git-tree": "5751a578e18097edc570960298c5275e7166fc0f", "version-semver": "12.0.0-beta.11", "port-version": 0 }, { "git-tree": "e088ce294ef101d5d4be7621973121ba1105c408", "version-semver": "12.0.0-beta.10", "port-version": 1 }, { "git-tree": "9b0d48def9ae816374193c587750c40ba924cda7", "version-string": "12.0.0-beta.10", "port-version": 0 }, { "git-tree": "413d1016e8672f538bce60361cff383dc55e33ad", "version-string": "12.0.0-beta.9", "port-version": 0 }, { "git-tree": "d37975ea1f26d0d0ac7c0385d867462c076b0d53", "version-string": "12.0.0-beta.8", "port-version": 0 }, { "git-tree": "1dee55e65cb1fb3f93d4cc8f820a09c4d17ee202", "version-string": "12.0.0-beta.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-cpp.json ================================================ { "versions": [ { "git-tree": "295bce473cb862b963b9e212b3926e7295f7aa14", "version": "7.5.0", "port-version": 8 }, { "git-tree": "8097d65acc403bcb0dc6cd5970ce78cc55f53498", "version": "7.5.0", "port-version": 7 }, { "git-tree": "38122f7f0972f1c4d6b01b776f9c1edf81e5dfd0", "version": "7.5.0", "port-version": 6 }, { "git-tree": "bbbb3a066c3002438b0a002b334d861f48887ad3", "version": "7.5.0", "port-version": 5 }, { "git-tree": "245884377d005f8265e75b9b6eff339d687de0e9", "version-string": "7.5.0", "port-version": 4 }, { "git-tree": "8216ff9a5060864170113353495400e342d862ad", "version-string": "7.5.0", "port-version": 3 }, { "git-tree": "242bb84480e51b70b53dbd9b126f600e1ea39ef6", "version-string": "7.5.0", "port-version": 2 }, { "git-tree": "2b3b868fab128f5e37adeffcde308124512d25e0", "version-string": "7.5.0", "port-version": 1 }, { "git-tree": "2f95f8b92596e23af8db61cd1b4e11a06078015f", "version-string": "7.5.0", "port-version": 0 }, { "git-tree": "a959aee61eeba3a31e035f78118a0894b67a2bfb", "version-string": "7.4.0", "port-version": 0 }, { "git-tree": "bc34d8e584b67a85f79264d0e259163a51680dcb", "version-string": "7.3.0", "port-version": 0 }, { "git-tree": "0d153822a012b3b858eea2ef866ae6c9f0d60ebf", "version-string": "7.2.0", "port-version": 0 }, { "git-tree": "099e98f46bf9a1360d6e139a391766bb4436e676", "version-string": "7.1.0-1", "port-version": 0 }, { "git-tree": "91c1b8fcf36f2ba7e97f6724b77da2ef76fbb516", "version-string": "7.1.0", "port-version": 0 }, { "git-tree": "c449a7819d020f486f971bba480e55faf3d2bd41", "version-string": "7.0.0", "port-version": 0 }, { "git-tree": "3932b14ec40b79f338f8d9bcfa39250465df4a51", "version-string": "6.1.0-2", "port-version": 0 }, { "git-tree": "d15a10ff5b204a33653cea5b1ab14373a3a93afc", "version-string": "6.1.0-1", "port-version": 0 }, { "git-tree": "464ab45096c32986d063da8157de284b548ab108", "version-string": "6.1.0", "port-version": 0 }, { "git-tree": "5604ed9c7a670dfb03415213318cf8830037b2b7", "version-string": "6.0.0-3", "port-version": 0 }, { "git-tree": "72310adf4a4239bdc29dabb9b9c78954100f9eca", "version-string": "6.0.0", "port-version": 0 }, { "git-tree": "7e3b2c2691b4202f0f43ae2af11ff05691c865e2", "version-string": "5.2.0", "port-version": 0 }, { "git-tree": "4cfca65bd62b171742e3c3ed55ca51e194f684a2", "version-string": "5.1.1", "port-version": 0 }, { "git-tree": "a9cb3b3f2f17cc2608f31f6634b4772d8396787c", "version-string": "5.1.0", "port-version": 0 }, { "git-tree": "ca6caf3d6959b308f6ca6b5c055d75d90aa64cdd", "version-string": "5.0.0", "port-version": 0 }, { "git-tree": "bf972195233f5b6c78874757b6b5590d8dafc9bc", "version-string": "4.0.0", "port-version": 0 }, { "git-tree": "8ad04fdbfe0e29af2ddc9ac13a443861ea05f6c5", "version-string": "3.2.1", "port-version": 0 }, { "git-tree": "c5a231ec907f5b18009a22725de36d5ed420ff6d", "version-string": "3.2.0", "port-version": 0 }, { "git-tree": "2cc5b2823c57a603b7ebc4f9a1f3c556d3bfd836", "version-string": "3.1.0", "port-version": 0 }, { "git-tree": "d24d43fa7d807cc0000f833fbfc07397d9bb864c", "version-string": "3.0.0-4", "port-version": 0 }, { "git-tree": "ff41aa4982c80be4a9fec1b87055a636bf50df0a", "version-string": "3.0.0-3", "port-version": 0 }, { "git-tree": "d547c4343ed3d21b28f1afa55bfca3cd06395e9b", "version-string": "3.0.0-2", "port-version": 0 }, { "git-tree": "10d9f0c7e3110bdf5d6b317921c051b0b5536a57", "version-string": "3.0.0-1", "port-version": 0 }, { "git-tree": "770d68a119da409998480068b307d492eb98083a", "version-string": "3.0.0", "port-version": 0 }, { "git-tree": "c08dceda7dd8bcdec488a8e27f215d0785b46ad2", "version-string": "2.6.0", "port-version": 0 }, { "git-tree": "241728cab83f4a4bc8269cc5855d9f0ce2508bfa", "version-string": "2.5.0", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-files-datalake-cpp.json ================================================ { "versions": [ { "git-tree": "a59194c0f0f7b3128483aa95ed3d0aed1f32ef35", "version-semver": "12.14.0", "port-version": 0 }, { "git-tree": "b0ee0e40c096a61686840f910af7761c918da635", "version-semver": "12.13.0", "port-version": 0 }, { "git-tree": "4932548d090f0897b607b71e7c41720cc975970a", "version-semver": "12.12.0", "port-version": 1 }, { "git-tree": "f404dcc173c1e702263bfb6611b40d69a307514d", "version-semver": "12.12.0", "port-version": 0 }, { "git-tree": "946b117e85a73047a699152837af2cc2b71515f0", "version-semver": "12.11.0", "port-version": 0 }, { "git-tree": "56f0389791af300859f19d263d41f4886d8bae53", "version-semver": "12.10.0", "port-version": 0 }, { "git-tree": "3450cc1269a67f290703a583559fb37b6ef08fb5", "version-semver": "12.9.0", "port-version": 1 }, { "git-tree": "eef43191bf50fe79ddd687b71761765a2400a0c2", "version-semver": "12.9.0", "port-version": 0 }, { "git-tree": "980d78708b5b02d395f9bd7342c18dc35e48dcbd", "version-semver": "12.8.0", "port-version": 1 }, { "git-tree": "0f289490671675363d6e2e07eb6277c569602878", "version-semver": "12.8.0", "port-version": 0 }, { "git-tree": "ca459a11301918aa1296233d473a865032323673", "version-semver": "12.7.0", "port-version": 0 }, { "git-tree": "9c8ba7dabf8011127712dc95628ca1029b0c92c3", "version-semver": "12.6.0", "port-version": 0 }, { "git-tree": "12acf62b792b5b9b406eea20f8b3b25e30a32eca", "version-semver": "12.5.0", "port-version": 0 }, { "git-tree": "2b2b58353093074eaa8b462d77cb62c667883673", "version-semver": "12.4.0", "port-version": 0 }, { "git-tree": "9a254add1b8a2c6f8d6a59760d6016af1e5c19a6", "version-semver": "12.3.1", "port-version": 0 }, { "git-tree": "b312efdf9afad6dc09ce91eb31e19e725a8c1a7a", "version-semver": "12.3.0", "port-version": 0 }, { "git-tree": "36837d18b946ad07bcb95c44450509f1d04ba4ec", "version-semver": "12.2.0", "port-version": 0 }, { "git-tree": "2c8e48a165197468833b76c0825621ea408efb0a", "version-semver": "12.1.0", "port-version": 0 }, { "git-tree": "649b055538511bad19442d11dd356688cac46370", "version-semver": "12.0.1", "port-version": 1 }, { "git-tree": "305658dfe1b6b28abc8be014794e6b21e8ba5722", "version-semver": "12.0.1", "port-version": 0 }, { "git-tree": "392c7e0294f16ed82323ccc8b5b7961f20b0b2e3", "version-semver": "12.0.0", "port-version": 0 }, { "git-tree": "700c9eee3d84a215c27fb452e814da58d079086c", "version-semver": "12.0.0-beta.11", "port-version": 0 }, { "git-tree": "a067bf73d77aa871c394d7972db69939940c114f", "version-semver": "12.0.0-beta.10", "port-version": 1 }, { "git-tree": "d76b0d95a42ff1a91e73cf46527284844c848f33", "version-string": "12.0.0-beta.10", "port-version": 0 }, { "git-tree": "98adbbf45b85de0cbabbc2c6f30f5b5dfc42d584", "version-string": "12.0.0-beta.9", "port-version": 0 }, { "git-tree": "dd0c07c0dd83321a26293415f7a392092196f591", "version-string": "12.0.0-beta.8", "port-version": 0 }, { "git-tree": "96e221ac9eb6246fa0ec743cb3cbcc47b932f8f3", "version-string": "12.0.0-beta.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-files-shares-cpp.json ================================================ { "versions": [ { "git-tree": "eca30b9205777a173ebbb26c4c7faf1bdf81252a", "version-semver": "12.16.0", "port-version": 0 }, { "git-tree": "10b57c85c808be7fee99831ca9a90203aa0e1e37", "version-semver": "12.15.0", "port-version": 0 }, { "git-tree": "2040c83034436c3756a6831176c9896086850642", "version-semver": "12.14.0", "port-version": 0 }, { "git-tree": "5f94da17c48b073902f8d63528025af933b45cb1", "version-semver": "12.13.0", "port-version": 0 }, { "git-tree": "2fd221be0ffac626d014208273dce26e7b53b6ec", "version-semver": "12.12.0", "port-version": 0 }, { "git-tree": "dbe687f016f7747967b99e26138e09ff1a098767", "version-semver": "12.11.0", "port-version": 1 }, { "git-tree": "5518255fb2a9d5ebb314b7e7e404512472e7a8d3", "version-semver": "12.11.0", "port-version": 0 }, { "git-tree": "81c52ef6fafe80b6bb294c423d5c6c2d4b758eb3", "version-semver": "12.10.0", "port-version": 0 }, { "git-tree": "7729a5d1c6cf9832538761e84eae19158fef9879", "version-semver": "12.9.0", "port-version": 0 }, { "git-tree": "29a98ee7af38db39f74336c93f98141fd6996952", "version-semver": "12.8.0", "port-version": 1 }, { "git-tree": "98ae8cc3d7bad139e05b550c17fc37da3c5c1cef", "version-semver": "12.8.0", "port-version": 0 }, { "git-tree": "7aad330cd95f2b69127ca9950d1c4295f5be937e", "version-semver": "12.7.0", "port-version": 1 }, { "git-tree": "d1c2beb619e08e7c675312136c0cc427e3ee59e5", "version-semver": "12.7.0", "port-version": 0 }, { "git-tree": "f51dca176615cce496b5fb2d869b467279c31e7c", "version-semver": "12.6.1", "port-version": 0 }, { "git-tree": "856f4e474ec45831593123a281fe650ba86387ab", "version-semver": "12.6.0", "port-version": 0 }, { "git-tree": "f264428685ea6f882d9c58a9915c83665d428456", "version-semver": "12.5.0", "port-version": 0 }, { "git-tree": "10d67bcd4301e8b3fa5d89b9f8e6eecd835b276f", "version-semver": "12.4.0", "port-version": 0 }, { "git-tree": "3791a056ef7f63ea5aa462db437ebc61b2966336", "version-semver": "12.3.0", "port-version": 0 }, { "git-tree": "69a5e9af5d75d9e2f33dbd89576297373a332048", "version-semver": "12.2.1", "port-version": 0 }, { "git-tree": "b7c34584a28f09d204e8ab6cbcf23ea93e330653", "version-semver": "12.2.0", "port-version": 0 }, { "git-tree": "3a7e7cf14be62755ee6a51fc0f8e88edd3a13d18", "version-semver": "12.1.0", "port-version": 0 }, { "git-tree": "eccf58c6719e0f859f90420dffb5deb2cccac731", "version-semver": "12.0.1", "port-version": 1 }, { "git-tree": "70c68c7920b221b2b571ba85d48ba215c0e9cb58", "version-semver": "12.0.1", "port-version": 0 }, { "git-tree": "354a077c26bd9cce9ade81180e2f9b1dfaf6f514", "version-semver": "12.0.0", "port-version": 0 }, { "git-tree": "1d1a11e7f5f6603ae6f3c42d6d2821b16261726f", "version-semver": "12.0.0-beta.11", "port-version": 0 }, { "git-tree": "aa4d77e84688efab3d4f4771a90a586fc8c0dc90", "version-semver": "12.0.0-beta.10", "port-version": 1 }, { "git-tree": "d93d47f9c0ddf42c33aebe38c312083b043c3713", "version-string": "12.0.0-beta.10", "port-version": 0 }, { "git-tree": "78ebb9db2ec3893149fa8a6a37850f5c62008afb", "version-string": "12.0.0-beta.9", "port-version": 0 }, { "git-tree": "29cdba78a0712b0850d013033cadb70138b04287", "version-string": "12.0.0-beta.8", "port-version": 0 }, { "git-tree": "20fce45a5929cb4bc4659bb61bf1b11d72a36c4f", "version-string": "12.0.0-beta.7", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-storage-queues-cpp.json ================================================ { "versions": [ { "git-tree": "257969a902c6794545e2165702a1b12eb2daaf67", "version-semver": "12.6.0", "port-version": 0 }, { "git-tree": "8e2acab40446b5c730ec17e6cd78c39041ae3e98", "version-semver": "12.5.0", "port-version": 0 }, { "git-tree": "fb06e818a33a9970e3475d03b339f87ef17f8039", "version-semver": "12.4.0", "port-version": 1 }, { "git-tree": "1d0d8497e675a161121ec372e1c98877f6dffcac", "version-semver": "12.4.0", "port-version": 0 }, { "git-tree": "f6fad538f707fb9358c56df08bc128d19a3ea9d0", "version-semver": "12.3.0", "port-version": 0 }, { "git-tree": "206bd0c788a577bd105fa5edf6d4e57feb43285b", "version-semver": "12.2.0", "port-version": 1 }, { "git-tree": "7e74bf6adaa2794ef229e4a605d31fea0b3b19bd", "version-semver": "12.2.0", "port-version": 0 }, { "git-tree": "116fd90e1af9c32dabd414ac99ef121d6bacf0bf", "version-semver": "12.1.0", "port-version": 1 }, { "git-tree": "31256aaa2dbb1508ea777fc03cbec8ddbfd9ca18", "version-semver": "12.1.0", "port-version": 0 }, { "git-tree": "a04f50e6f79e53d47d4721529709e8e1f02462e1", "version-semver": "12.0.0", "port-version": 0 }, { "git-tree": "a4fe64dbaeaacf8bfff69155eea6f001ebee8e15", "version-semver": "12.0.0-beta.4", "port-version": 0 }, { "git-tree": "863a1b7f8841d14dd89ca0f70b0f78408add806d", "version-semver": "12.0.0-beta.3", "port-version": 0 }, { "git-tree": "f7e146970eabbdf793a50c5b511ea458b04f579a", "version-semver": "12.0.0-beta.2", "port-version": 0 }, { "git-tree": "4826bb13d7feb69f3a64633d3a1ea4b4de173a71", "version-semver": "12.0.0-beta.1", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-uamqp-c.json ================================================ { "versions": [ { "git-tree": "7f6c68a674440577889b122b211591ba53d0de24", "version-date": "2025-03-31", "port-version": 0 }, { "git-tree": "9790a9c508b5364762b8ef6220971023042923a4", "version-date": "2024-08-12", "port-version": 0 }, { "git-tree": "ff5e57a3fb1487fb02c5f32d4341efacbe9ee8de", "version-date": "2024-06-24", "port-version": 0 }, { "git-tree": "5c1a89093f2d60cc722b51386ecf9c12f7f907d0", "version-date": "2024-03-04", "port-version": 0 }, { "git-tree": "0ca3c3ded9e4bfee0d22f68201e4bf89462d4cff", "version-date": "2023-08-07", "port-version": 0 }, { "git-tree": "c4183ed8c03559df3b5821d0149192a95dba5b50", "version-date": "2023-01-18", "port-version": 0 }, { "git-tree": "42efba430e30e78eaf72b03c94f8c4afe07bcfda", "version-date": "2022-09-15", "port-version": 0 }, { "git-tree": "d7d284a159afe6ab21ce65d5e5d96dbee83339f6", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "a2c6897e3392683dcce93a846b98b2c95dc41a55", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "4748ea8df9903436ad4b2b6462ca3ffdf74465d4", "version-date": "2021-09-09", "port-version": 0 }, { "git-tree": "0ecbe4bc48e735cd1a3424ec77afac8aa807eaab", "version-string": "2020-12-09", "port-version": 1 }, { "git-tree": "096e993556ef33559bb27d42edea1fa75175f784", "version-string": "2020-12-09", "port-version": 0 }, { "git-tree": "fdd8cf49346e6cbcbca1cb1d6e3b9b313e5e471a", "version-string": "2020-07-19", "port-version": 0 }, { "git-tree": "64e118e5e32a279f64668774b5490b2245bc0141", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "489fd45170014fa7060cb1cf41e3373b4aae8b62", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "66b73eb2c1437238df11f923120d9dc27a0c1a41", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "bdac83317fff376ec6d776cd1cd0918251ce2030", "version-string": "2019-11-27.1", "port-version": 0 }, { "git-tree": "8f41108d4bc7244e858ad55e613890f0ef6f6a3c", "version-string": "2019-10-07.2", "port-version": 0 }, { "git-tree": "ef5e92210d614a96c3f4c53a87f8b46e5cb6c9e6", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "9bb33a228ba0c130c98af9f668c4d5bb663e39c4", "version-string": "2019-10-07.1", "port-version": 0 }, { "git-tree": "3242d9517ef2c11c8285f26aeab648fb78b1fa79", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "5ebd59864582ae4af73544cebd27f0fe98f9cedf", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "8c350b5cf183bdaa721fc266b52e85dfce860b42", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "90abd689148e310756d3236418c5e3c2bae0cd13", "version-string": "2019-03-18-1", "port-version": 0 }, { "git-tree": "4e96328de5eedc1ed9d3e0e3c6f754d1e3899014", "version-string": "2019-03-18", "port-version": 0 }, { "git-tree": "b16d3d599d8af974b73d4b967e3904469ee3d0ec", "version-string": "1.2.11-4", "port-version": 0 }, { "git-tree": "3bbcdf4aaed25fbb69bd228e8698eb2c925a7f1f", "version-string": "1.2.11-3", "port-version": 0 }, { "git-tree": "3849017b4e91011aad79f5830d7ad9dc8639b62f", "version-string": "1.2.11-2", "port-version": 0 }, { "git-tree": "62d4246e4511cd7ff8495148fa6c8f207eb97c05", "version-string": "1.2.11-1", "port-version": 0 }, { "git-tree": "500be5e7dafb1174abe65edddcfa50d5ddca2506", "version-string": "1.2.10-1", "port-version": 0 }, { "git-tree": "1c67aed1d764a1298111031d26ef499d7ba8d3af", "version-string": "1.2.3", "port-version": 0 }, { "git-tree": "a0cf5eeeaf0d1c9b9be1a80f04e4a999f00730b4", "version-string": "1.2.2", "port-version": 0 }, { "git-tree": "6c0930123a5b9044c5f5502a4205de12efc9164e", "version-string": "1.0.0-pre-release-1.0.9", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-uhttp-c.json ================================================ { "versions": [ { "git-tree": "0b7154d78575aba637d3a0b29bfaf1356cf7fad0", "version-date": "2025-03-31", "port-version": 0 }, { "git-tree": "3042f8ef330967082563bf11f7f4508a6927d55a", "version-date": "2024-06-24", "port-version": 0 }, { "git-tree": "15f4ae8589414854f2213c77ca78aadf97996e31", "version-date": "2024-03-04", "port-version": 0 }, { "git-tree": "70faa0f3e0eb5d1f3aa0c3fed59147515404c5bf", "version-date": "2023-08-07", "port-version": 0 }, { "git-tree": "6076f8569c54a752f30d97f3b5654190a716722a", "version-date": "2023-01-18", "port-version": 0 }, { "git-tree": "5c83542c6dc2b853932ac25c4d8314a5556aab40", "version-date": "2022-09-15", "port-version": 0 }, { "git-tree": "28439985096cc9a714695d10830ceb2f54859c24", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "f614a1ac990dd4189b292fa0e6e31897ee4b7ae8", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "8dfc1d65397c35c27df08f42b2f77caf27661a9b", "version-date": "2021-09-09", "port-version": 0 }, { "git-tree": "7410a090286f0c65398cb9ce97c6d86120c7222d", "version-string": "2020-12-09", "port-version": 1 }, { "git-tree": "9a13676c37e46791196a860835b8695c80359a8c", "version-string": "2020-12-09", "port-version": 0 }, { "git-tree": "513bbf277bea7cab05324f63fcf92c31278d0cd0", "version-string": "2020-07-19", "port-version": 0 }, { "git-tree": "783ccc8f09a5b64a69746ea8347108fa4796acb1", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "cd299156829305f542f2a58f2c0ad1ae7fd6e422", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "cf8a101ec7b2eef153413450e20ee7302a9cb08c", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "272c0efc43af9ad96cbe02f6e8437dde2ad2e8ea", "version-string": "2019-11-27.1", "port-version": 0 }, { "git-tree": "6f8347b504ec9b8a615adb6a8d101a64adccec2c", "version-string": "2019-10-07.2", "port-version": 0 }, { "git-tree": "9e01150cda7d35c0c98a8735534eb3e3f5db8a7d", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "b5671c11fbf975ba1ac8c0b745a22b206a4d2620", "version-string": "2019-10-07.1", "port-version": 0 }, { "git-tree": "ad7702d6c55d9555116160b4765559577d42e39b", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "baad42dbd22efc4700082fdc6f8ecded19e77443", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "79360ada83b099160f76196be323db8204c19272", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "021c7a7968aad7c8c6da668bf7f1de4108384743", "version-string": "2019-03-18-1", "port-version": 0 }, { "git-tree": "de07eeb4d01a07d43d1a9a583f85165bc0c79d44", "version-string": "2019-03-18", "port-version": 0 }, { "git-tree": "aed24bc3d18a7441a9cdac323dbaaff013b31b72", "version-string": "1.1.11-4", "port-version": 0 }, { "git-tree": "a5c7c3c89f6d4f9a3e87e938693677393f60e339", "version-string": "1.1.11-3", "port-version": 0 }, { "git-tree": "4a64e161a06d13036cc2f446e658a2cf9c47233c", "version-string": "1.1.11-2", "port-version": 0 }, { "git-tree": "b113618fc27109974a70fce1cea2952bda002e54", "version-string": "1.1.10-1", "port-version": 0 }, { "git-tree": "282b129f4560c46b74c9f2fb639e2d6d9614a804", "version-string": "LTS_01_2018_Ref01", "port-version": 0 }, { "git-tree": "108d7ee321497da69e8f232e8234623ec31b860f", "version-string": "2018-02-09", "port-version": 0 } ] } ================================================ FILE: versions/a-/azure-umqtt-c.json ================================================ { "versions": [ { "git-tree": "f146e84b1d40b8629e9e90c6f65de44b662d64d0", "version-date": "2025-03-31", "port-version": 0 }, { "git-tree": "2ec834ad08826e5a77983a205ad493a16b517568", "version-date": "2024-06-24", "port-version": 0 }, { "git-tree": "4aaa4bd90982fbfc3200c24d8d6d1b44487f0d57", "version-date": "2024-03-04", "port-version": 0 }, { "git-tree": "f6b50934a467b9bf7a494290ebc34ff8d036937f", "version-date": "2023-08-03", "port-version": 0 }, { "git-tree": "e484fe484d0feac8170d1dc7a3f2a3a72bd262fb", "version-date": "2023-01-18", "port-version": 0 }, { "git-tree": "28ef0c8d4778d3fd30120290bcb4a121a2efc14f", "version-date": "2022-09-15", "port-version": 0 }, { "git-tree": "5953c7aee01e5c0972a8eb97fbb763c74b60c49c", "version-date": "2022-01-21", "port-version": 1 }, { "git-tree": "f5b18f17519b9de8a2ab956eebc7dff6e7bf7a05", "version-date": "2022-01-21", "port-version": 0 }, { "git-tree": "2a208bf94bfaf91cc20716d7ba0caac0023324b0", "version-date": "2021-09-09", "port-version": 0 }, { "git-tree": "f8f3de5c5637d62c78e1a8934e9f8e7409dd36c4", "version-string": "2020-12-09", "port-version": 1 }, { "git-tree": "c49491f7d067b2c52a2751941b3e335c0e04eebf", "version-string": "2020-12-09", "port-version": 0 }, { "git-tree": "8d51af6bf69894b2cca6adcb4de0054fad38975d", "version-string": "2020-07-19", "port-version": 0 }, { "git-tree": "cc4c0ca6bd502a53e16cd65146b73f32fe31d078", "version-string": "2020-06-17-1", "port-version": 0 }, { "git-tree": "939b7ea915b34711ae4833df3806a0f17222c029", "version-string": "2020-02-04.1", "port-version": 0 }, { "git-tree": "3264926a34488626a31d70d335a5d4bd5ccba056", "version-string": "2020-01-22", "port-version": 0 }, { "git-tree": "846ac1694e7431ae912a33335e8f92760acd3c0c", "version-string": "2019-11-27.1", "port-version": 0 }, { "git-tree": "adfd8d739fcb9ab85a890ed891c3185009518063", "version-string": "2019-10-07.2", "port-version": 0 }, { "git-tree": "688882c617afe5e5eea928511608c2d94ae996d6", "version-string": "2019-07-01-LTS-1", "port-version": 0 }, { "git-tree": "17e9465a21add076539299d860fafb6dd28a5efb", "version-string": "2019-10-07.1", "port-version": 0 }, { "git-tree": "ffd6ee62ced00cbb2a42c5ad55e3f0b45f5f295d", "version-string": "2019-08-20.1", "port-version": 0 }, { "git-tree": "7d45115e43f9bebef8351e3ac435db6d1067c55a", "version-string": "2019-05-16.1", "port-version": 0 }, { "git-tree": "b9e5ff88cbd7942410ad2c09a648e4e27f5d02ac", "version-string": "2019-05-16", "port-version": 0 }, { "git-tree": "8b849ec32e01c06a30a6869401c17223e28e0911", "version-string": "2019-03-18-1", "port-version": 0 }, { "git-tree": "550b9e414a6c150d0d7277077dc1376259b14101", "version-string": "2019-03-18", "port-version": 0 }, { "git-tree": "e9a2eaa20c1b898db070849c169289ca00c4686f", "version-string": "1.1.11-4", "port-version": 0 }, { "git-tree": "2a4566761f3818e5d409a3c99d130bd538db7c7f", "version-string": "1.1.11-3", "port-version": 0 }, { "git-tree": "e2a526771e5e74100256ec2b3ff82277d29f972e", "version-string": "1.1.11-2", "port-version": 0 }, { "git-tree": "0dce7fed719e84b0baf807fe7d969eb9e41e209e", "version-string": "1.1.11-1", "port-version": 0 }, { "git-tree": "bbe2746e302cf5aae7af538210a81a1de7096b1c", "version-string": "1.1.10-1", "port-version": 0 }, { "git-tree": "e99f3408eae3d4315315343407f8b9534508fd1b", "version-string": "1.1.5", "port-version": 0 }, { "git-tree": "0324121e1997f31963da5534d6b65acd37799f7c", "version-string": "1.1.3", "port-version": 0 }, { "git-tree": "73f1093a2b8a52a0b02a0851fbc380307ecb34dc", "version-string": "1.1.2", "port-version": 0 }, { "git-tree": "7671c8b335377c2087158ac9077cf1a62c23c64e", "version-string": "1.0.0-pre-release-1.0.9", "port-version": 0 } ] } ================================================ FILE: versions/b-/b64.json ================================================ { "versions": [ { "git-tree": "7be7da91f5c6bbeb5bfb10bafcb4072bf3df5127", "version": "2.0.0.1", "port-version": 2 }, { "git-tree": "aeaf7d2076e25b321032c4fc88c22cbb46002a90", "version": "2.0.0.1", "port-version": 1 }, { "git-tree": "9f1b6b36747fb6349483bf78531123d4b1ec5d7d", "version": "2.0.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/babl.json ================================================ { "versions": [ { "git-tree": "2584be584510eda360e0266975ee110be259a2a3", "version": "0.1.122", "port-version": 0 }, { "git-tree": "3c1409be45a461d0fb090f1e89759ad6f347d616", "version": "0.1.120", "port-version": 0 }, { "git-tree": "f814a1ccb9b3f9e5e475acdb8c48c87c61d94f77", "version": "0.1.118", "port-version": 0 }, { "git-tree": "cad9c6bb5734a52689427bed4145c2d0d9a80fca", "version": "0.1.114", "port-version": 0 }, { "git-tree": "feb19fafaacdb7dba45f5c2a42970ba81b2d87c5", "version": "0.1.110", "port-version": 2 }, { "git-tree": "e8ed29ba69e54dd8f218c3f520689f0a27fbdd69", "version": "0.1.110", "port-version": 1 }, { "git-tree": "926b963761bc58db14e2f6c573a6462d43a68953", "version": "0.1.110", "port-version": 0 } ] } ================================================ FILE: versions/b-/backward-cpp.json ================================================ { "versions": [ { "git-tree": "25c84663d7fe9c5010bfc7baf2ad7c1c70c5c429", "version-date": "2023-11-24", "port-version": 1 }, { "git-tree": "7b8009fe2173eac9490fd50428585a19cd85b043", "version-date": "2023-11-24", "port-version": 0 }, { "git-tree": "748c91a2ed90cad10b92d4c527dc855ec8f15db0", "version": "1.6", "port-version": 1 }, { "git-tree": "9f204819a5063dea81b56369e5ce424219e56ca5", "version": "1.6", "port-version": 0 } ] } ================================================ FILE: versions/b-/baresip-libre.json ================================================ { "versions": [ { "git-tree": "a53ef3b35581d774b62040b6f5a3b253f52f56b1", "version": "4.6.0", "port-version": 0 }, { "git-tree": "68ddb931aea7b57f200676fcbb62243c066ecca8", "version": "4.4.0", "port-version": 0 }, { "git-tree": "8b9114e5fb0c87af535e5c8f784652563947fcdc", "version": "4.3.0", "port-version": 0 }, { "git-tree": "1b38a43f0ca72aa6a7dd384cc9ca0f3ad5e56bd8", "version": "3.23.0", "port-version": 0 }, { "git-tree": "b15cb6fb5a45b528d38874ca0748b6ef4a327ad0", "version": "3.22.0", "port-version": 0 }, { "git-tree": "064541891f5229047a0eb51687be11e73484f744", "version": "3.21.0", "port-version": 0 }, { "git-tree": "0d2071537f65b61e30fdd4e293df6777b876c3c1", "version": "3.20.0", "port-version": 0 }, { "git-tree": "57877958a84841831c43ccc2fc1eef357e13e638", "version": "3.19.0", "port-version": 0 }, { "git-tree": "b68f846bfe9e6a062eb56ec1effb3d4688eba107", "version": "3.18.0", "port-version": 0 }, { "git-tree": "0ea202b4f5af5ef038efd0bf129a9928881ec820", "version": "3.17.0", "port-version": 0 }, { "git-tree": "c5ee11ab28defb0d41e3c708017e3c19e640ec2b", "version": "3.15.0", "port-version": 0 }, { "git-tree": "1113884e967e5ad1167e428ed0c5a9b4fe9a61b8", "version": "3.14.0", "port-version": 0 }, { "git-tree": "9da2efd80694c0f806dad8ac129a183f6179dcfe", "version": "3.13.0", "port-version": 0 }, { "git-tree": "c2a2994ce70f17e325c61f73c602191630ee7425", "version": "3.12.0", "port-version": 0 }, { "git-tree": "c28c9b9b416b816320a2576f4537554a6a4e3a9a", "version": "3.11.0", "port-version": 0 }, { "git-tree": "bce3afb1f6d5fee73e4c7cd0f952df85f4f54de2", "version": "3.10.0", "port-version": 0 }, { "git-tree": "7b7cfa061bebae8f9628f0d56ca21de4ec1c68fa", "version": "3.9.0", "port-version": 0 }, { "git-tree": "eac42649337bc140a827e4ae83eb7ec1ccac3917", "version": "3.8.0", "port-version": 0 }, { "git-tree": "e34b5bc2855e62826520ee68fb21d063d42b53d4", "version": "3.7.0", "port-version": 0 }, { "git-tree": "00dc0e14dfa16f98420ac3a15b9b158af7cf87f8", "version": "3.6.0", "port-version": 0 }, { "git-tree": "b000665b80ffaa20107836324b4360bad62861a7", "version": "3.5.1", "port-version": 0 }, { "git-tree": "db0ceb9ad55c2c774fac30663522efc247a1ce04", "version": "3.4.0", "port-version": 0 }, { "git-tree": "ece07432ef22395a14fe6cbdf5026d4b0f49872a", "version": "3.3.0", "port-version": 0 }, { "git-tree": "8eba692c2b454a491269fec62a993c0b08b24d34", "version": "3.2.0", "port-version": 2 }, { "git-tree": "c32aafef7c464cd6b860327ea35759e708f96a77", "version": "3.2.0", "port-version": 1 }, { "git-tree": "64ff48f8f4f42472f614ddece58f1249217d252c", "version": "3.2.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bark.json ================================================ { "versions": [ { "git-tree": "2824cc5e8e71aa976ae1192f34827e993772ae98", "version-semver": "0.5.0", "port-version": 0 }, { "git-tree": "d0223b7a7be3e7c964ef2ac76a0e07566ce5cab8", "version-semver": "0.4.0", "port-version": 0 }, { "git-tree": "95a26c92528c23d242256849bf09fc401a993180", "version-semver": "0.3.1", "port-version": 0 }, { "git-tree": "07b2df93bac4785ff63f152e6616d86c4dd0c16e", "version-semver": "0.3.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/barkeep.json ================================================ { "versions": [ { "git-tree": "6f8f41a7c883e76727fecc113a014f6d7a2837ec", "version": "0.1.5", "port-version": 0 } ] } ================================================ FILE: versions/b-/basisu.json ================================================ { "versions": [ { "git-tree": "39a470a0ecf12a26a08afa77376f8360c9efa645", "version": "2.1.0", "port-version": 0 }, { "git-tree": "b301b37105c01693f50151fa04456fc7c3b00c40", "version": "2.0.2", "port-version": 0 }, { "git-tree": "df3b41875494dda742bc268c648edb99c0a39828", "version": "1.60", "port-version": 3 }, { "git-tree": "4fdb1c26742dee24aa7aff9f38cc3bac34c37473", "version": "1.60", "port-version": 2 }, { "git-tree": "2bcab45033ade47ca63b04939eb770fe5b60a7f5", "version": "1.60", "port-version": 1 }, { "git-tree": "355d88367344b30862702f8ddb8921cbd37bb87e", "version": "1.60", "port-version": 0 }, { "git-tree": "2d73fe30c22b77d2059f07330ae9cb13e0dd2809", "version": "1.50.0", "port-version": 0 }, { "git-tree": "d355537e7392dad769a0c435f2a2cedf310b322c", "version": "1.16.4", "port-version": 0 }, { "git-tree": "31adec97dda19e99a5745f46a5d2031981206bb1", "version": "1.11", "port-version": 7 }, { "git-tree": "8552deb382fab18170488ffdf05fdd50dd3e2d99", "version": "1.11", "port-version": 6 }, { "git-tree": "70d762c5a7350879f47429ea6275ba34f1c0f449", "version-string": "1.11", "port-version": 5 }, { "git-tree": "0645a595b0b20a3db1cd8fe19abc9e81c0c16714", "version-string": "1.11-4", "port-version": 0 }, { "git-tree": "04ef2fd4d845551f7fd2fd5e53e98bce8a5e87f2", "version-string": "1.11-3", "port-version": 0 }, { "git-tree": "a494d655f8774ec5b13548ed1d495cc36d8f4343", "version-string": "1.11-2", "port-version": 0 }, { "git-tree": "14a1a4b19de73b57ba66094a54733f8fb83bfed8", "version-string": "1.11-1", "port-version": 0 }, { "git-tree": "e8f3474c1d3f5a3ad53aea729c64f7c91f8bc68e", "version-string": "0.0.1-1", "port-version": 0 }, { "git-tree": "e0cad9e36e3b6d558bbf1cbe6db49a7d44a5e9c5", "version-string": "0.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bbalouki-itch.json ================================================ { "versions": [ { "git-tree": "9a1ed54702999b0c9647bd68cabbd39dabcf43db", "version": "1.1.0", "port-version": 0 }, { "git-tree": "207ce7db4ba8f23e3aa43067f21ad2ea2de0ec95", "version": "1.0.0", "port-version": 1 }, { "git-tree": "e56f81d89614cec83d8e1368b6a3711b75eccfe6", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bbstrader.json ================================================ { "versions": [ { "git-tree": "93690aaa38880276e38f2cfc456d90a30bb92431", "version": "2.0.6", "port-version": 0 }, { "git-tree": "4dfb2181e467c637614f03c8ece2e113565fb598", "version": "2.0.5", "port-version": 0 }, { "git-tree": "fd9d92de5c30281e0edbbf04209436d4a7bcc088", "version": "2.0.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bcg729.json ================================================ { "versions": [ { "git-tree": "00204704e4e35484bdbac4856b5d6891cdc7d211", "version": "1.1.1", "port-version": 4 }, { "git-tree": "f3ab650b9aee68c1967ab35c8890ffcfd721b485", "version": "1.1.1", "port-version": 3 }, { "git-tree": "d515bbfce335039dc7edaa083d7ab334888f8254", "version": "1.1.1", "port-version": 2 }, { "git-tree": "16cf88e26d0bf3ebd469c722cd4df96c59556fb7", "version-string": "1.1.1", "port-version": 1 }, { "git-tree": "666c71eec6573ef70d9f2630962511687723bb0e", "version-string": "1.1.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bddisasm.json ================================================ { "versions": [ { "git-tree": "03ad37b889270ac8fb21cd90c55bed7f536bbe0d", "version": "3.0.1", "port-version": 0 }, { "git-tree": "8462a1ae4b00ccf36adf0a7532221b306a56ecd9", "version": "3.0.0", "port-version": 0 }, { "git-tree": "67bc59a4afc477abcc19ae1d0dcc5c4e4884aea6", "version": "2.2.0", "port-version": 0 }, { "git-tree": "f7a110ba4cae651ef869f470e1165ab60e903aeb", "version": "2.1.5", "port-version": 0 }, { "git-tree": "8f7d00a557af383dde3f48d12ddedecf4117c9ce", "version": "2.1.4", "port-version": 0 }, { "git-tree": "26b6c5584f03700f47ff9d457df6f16dfdaebdba", "version": "2.1.0", "port-version": 0 }, { "git-tree": "b34f372d51168c9361ccd85f91263792b2c9bd4d", "version": "1.34.10", "port-version": 0 }, { "git-tree": "3cede34b39c8ab7d83ee9f43dcb112e4d1c96104", "version": "1.34.7", "port-version": 1 }, { "git-tree": "296988f2d875c4fe41506e163c5c35141c6d35f8", "version": "1.34.7", "port-version": 0 }, { "git-tree": "615b986c25f902c2053661948092cbfa757fa400", "version": "1.34.2", "port-version": 1 }, { "git-tree": "d6ba1aba5922829f7eb5d8197dbffe5aa8f9722b", "version": "1.34.2", "port-version": 0 }, { "git-tree": "bbd28192161e817afeb6526098f105788225816f", "version": "1.33.0", "port-version": 0 }, { "git-tree": "252ddf848e0ed2e3c58537bf0cc09bc6ccd067f1", "version": "1.32.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bde.json ================================================ { "versions": [ { "git-tree": "34499e736823b1b6b2fe34a37d9162ecab8e187c", "version": "4.18.0.0", "port-version": 0 }, { "git-tree": "2614291015d6a8d0f554c6d9592abd4643b9717e", "version": "4.14.0.0", "port-version": 0 }, { "git-tree": "bcc715b2f958a15fb5f05a8a5f717b8091c35f05", "version": "4.8.0.0", "port-version": 1 }, { "git-tree": "fa76296b5abefaf07a8f663ced20cea1a0c901b6", "version": "4.8.0.0", "port-version": 0 }, { "git-tree": "f8c8bc5beb99b215e68af4269bc1bac20957d485", "version": "3.124.0.0", "port-version": 0 }, { "git-tree": "71df70f3716434e8069b394593ba8859b6556959", "version": "3.123.0.0", "port-version": 0 }, { "git-tree": "a8fc4329574711907399309f06012a486d373c64", "version": "3.117.0.0", "port-version": 0 }, { "git-tree": "7ce72f2854f44eee806e6e5f3e97d29897549787", "version": "3.2.0.0", "port-version": 5 }, { "git-tree": "60082ad73e5c9fb9828041183b026fc15e453218", "version-string": "3.2.0.0", "port-version": 4 }, { "git-tree": "b940e98efec0d1f48f2edfe2027d2bce251ec7a8", "version-string": "3.2.0.0", "port-version": 3 }, { "git-tree": "b1182a3ba7b24edd58e7471796c1f157c9ff402c", "version-string": "3.2.0.0", "port-version": 2 }, { "git-tree": "d25bfe5e576d146569520871134a5c6fecb16a96", "version-string": "3.2.0.0-1", "port-version": 0 }, { "git-tree": "0ee2aa4b9efbf8de1fc277f0064e6022fbfac778", "version-string": "3.2.0.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bdwgc.json ================================================ { "versions": [ { "git-tree": "5142b495d47907187ca706821311927dd40f0b8c", "version": "8.2.12", "port-version": 0 }, { "git-tree": "503a71480bee60c601bb0f8e92456e6dadbe5923", "version": "8.2.10", "port-version": 0 }, { "git-tree": "559f0b9bb0a7a06b28daae296f7080760268f5dd", "version": "8.2.8", "port-version": 0 }, { "git-tree": "6bf6340168ebda8d87ec21411dbb4d27e0ce3363", "version": "8.2.6", "port-version": 0 }, { "git-tree": "12a48f09e61ae946a6858c69e2c40688bdff3980", "version": "8.2.4", "port-version": 0 }, { "git-tree": "f99370553e85e9f6a10878253cdee86883b0ff30", "version": "8.2.2", "port-version": 0 }, { "git-tree": "8fe23b71dde5d4abc9a755c359a583b8d7ba3035", "version": "8.2.0", "port-version": 4 }, { "git-tree": "1cf3b7a458af2eba78e5af9674e8f6d28b53e254", "version": "8.2.0", "port-version": 3 }, { "git-tree": "b7ec5e3585f7f7b71988cb7379c181a1fa9461cd", "version": "8.2.0", "port-version": 2 }, { "git-tree": "84653790601fd0e28aaeb12a9a58292b7e3af1bc", "version": "8.2.0", "port-version": 1 }, { "git-tree": "ea1da0228494df421f826c098fdf574a93afbb66", "version": "8.2.0", "port-version": 0 }, { "git-tree": "5777be074f852a1c7c5920d1cb8639b6fc1659be", "version-string": "8.0.4", "port-version": 2 }, { "git-tree": "d3fb7b17d683581e6f34599e0cc0295a7d315bb2", "version-string": "8.0.4-1", "port-version": 0 } ] } ================================================ FILE: versions/b-/beast.json ================================================ { "versions": [ { "git-tree": "608757dbb0f830eedf5b1416fb8a79731dd5240c", "version": "0", "port-version": 2 }, { "git-tree": "eea4815ae315b38373961c8ff9a5be8556857b3f", "version-string": "0", "port-version": 1 }, { "git-tree": "17c08b9a2f5c67b9ab0fb3d231bb6d67af26a208", "version-string": "0", "port-version": 0 }, { "git-tree": "96c1896f31f03bb3cbcc6dc929b3339fe0cf637b", "version-string": "v84-1", "port-version": 0 }, { "git-tree": "e1a868241c6382332cf8517844f6875102a3f934", "version-string": "v84", "port-version": 0 }, { "git-tree": "1009f20a8e7bb16325e7d417f328050fc43f467c", "version-string": "v76", "port-version": 0 }, { "git-tree": "c1788efff3acb96100ee071a1353265bc8a0d417", "version-string": "v66", "port-version": 0 }, { "git-tree": "f9b9a887ec00934c88032d5bdc71ed765a205073", "version-string": "v63", "port-version": 0 }, { "git-tree": "da69804ed4cf00f6d4bc41da99c58d41491c54b1", "version-string": "v59", "port-version": 0 }, { "git-tree": "29778f7db1809ab37ceba1984949601a1f4b616b", "version-string": "v58", "port-version": 0 }, { "git-tree": "7719ad1d340f47cb354ddf1a5b1cc8b5a68e2222", "version-string": "v56", "port-version": 0 }, { "git-tree": "9047b144fc312b5a38a90c1d88ef431c08bf0303", "version-string": "v55", "port-version": 0 }, { "git-tree": "c854069b8be8cd787a3c26d4a5a975df4556192f", "version-string": "v54", "port-version": 0 }, { "git-tree": "ff3e24da713abac7593360e51f6d79e17bd30631", "version-string": "v40", "port-version": 0 }, { "git-tree": "dc897bb38d39c0c5126faf56107d79733fcaed1e", "version-string": "1.0.0-b30", "port-version": 0 } ] } ================================================ FILE: versions/b-/behaviortree-cpp.json ================================================ { "versions": [ { "git-tree": "3b60425ab98f9d10f6ed150a082f0c0478575f64", "version": "4.9.0", "port-version": 0 }, { "git-tree": "97faac40d918e1212eb03be8ecfa894abcb014b8", "version": "4.8.4", "port-version": 0 }, { "git-tree": "122bc5da73f14884aea62dcb2631fecf6aa80de8", "version": "4.8.3", "port-version": 0 }, { "git-tree": "057d9d23940666955f94400785b09167559c98f0", "version": "4.8.2", "port-version": 0 }, { "git-tree": "adf0195ecbb649c7a107ad55684b62b853d68eb2", "version": "4.8.0", "port-version": 0 }, { "git-tree": "698d27b36d7e3b53430558a6e92d51cc8bd22d79", "version": "4.7.0", "port-version": 1 }, { "git-tree": "9e4342eb2c4df9d10a5c47b947bdb121c706a073", "version": "4.7.0", "port-version": 0 }, { "git-tree": "758978e4f79ff1f27bbf31698e476f451cc9410c", "version": "4.6.2", "port-version": 0 }, { "git-tree": "4cacd1d5f1a465b3ca9d23ebb0b9b4626a26db63", "version": "4.3.7", "port-version": 0 }, { "git-tree": "66a97129b31a5e70e45a40c767ea96b1e0477a93", "version": "4.1.1", "port-version": 0 }, { "git-tree": "7518e59f9f1e994e3af289b8de87115834dcb758", "version": "3.5.6", "port-version": 3 }, { "git-tree": "79f662c115d97eb11ef1a08753aed0eef061d7cc", "version": "3.5.6", "port-version": 2 }, { "git-tree": "96c8331bb642e665bd66a9aa82797d4db84b86fa", "version": "3.5.6", "port-version": 1 }, { "git-tree": "32f97d9bfd43e38949f858a9ce271117b0380c85", "version": "3.5.6", "port-version": 0 }, { "git-tree": "450257131642541acbb14602fc6f2b2b83d1c2c1", "version-string": "3.5.1", "port-version": 2 }, { "git-tree": "7f52ca5d5baec941483c0ea7d9729588ae4bfe11", "version-string": "3.5.1", "port-version": 1 }, { "git-tree": "481770abcc1b466f5aad1f736cca3469e2928f22", "version-string": "3.5.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/benchmark.json ================================================ { "versions": [ { "git-tree": "571015dec3aa5c02ffe0c8ee497bce464c10ed5c", "version-semver": "1.9.5", "port-version": 0 }, { "git-tree": "b4d5aae6a759a10ac4fccc7edc5dc072296c9d1d", "version-semver": "1.9.4", "port-version": 0 }, { "git-tree": "3a256d0d1a010a427fc54e8a53f8c033cdc8517e", "version-semver": "1.9.3", "port-version": 0 }, { "git-tree": "f0945f588c31355ecc557e8fb01d72968f47d8d0", "version-semver": "1.9.2", "port-version": 0 }, { "git-tree": "d30c99674e87911b853eced815adba9757958b55", "version-semver": "1.9.1", "port-version": 0 }, { "git-tree": "fb5125735472f7f54342eb37ba52a8715178c9f0", "version-semver": "1.9.0", "port-version": 0 }, { "git-tree": "422db6fc6c268ce01653522503aaa87dd5813385", "version-semver": "1.8.5", "port-version": 0 }, { "git-tree": "8251c2dbb2913d8128fa08cd98f375c14c329cbf", "version-semver": "1.8.4", "port-version": 0 }, { "git-tree": "7d03a7d3688cd7480d28584a4ca4677fe90f3226", "version-semver": "1.8.3", "port-version": 3 }, { "git-tree": "44a03f2c85841f8e1e434e6a7f0a4ae73f7b2310", "version-semver": "1.8.3", "port-version": 2 }, { "git-tree": "5e8efca95a7d5d9c74f8a2c5c2ee05bbd2271451", "version-semver": "1.8.3", "port-version": 1 }, { "git-tree": "fc61bd374495cb30bb9c58c6e9d0d4568898f0c8", "version-semver": "1.8.3", "port-version": 0 }, { "git-tree": "54f61ab31bcb486a12c859c33db17905f397cc0c", "version-semver": "1.8.2", "port-version": 0 }, { "git-tree": "faeb0b56e68483860ab8cc468a6c594ac361167f", "version-semver": "1.8.0", "port-version": 0 }, { "git-tree": "2b8e34d5f083c7c674469078f5e80521e3b77d58", "version-semver": "1.7.1", "port-version": 0 }, { "git-tree": "e5d610bf8256ba634ade154face9bf1aa194f9e2", "version-semver": "1.7.0", "port-version": 0 }, { "git-tree": "0b248363b29630caf5f45a42d2d82c12b29979e1", "version-semver": "1.6.1", "port-version": 0 }, { "git-tree": "7856168d2b0dcaf058c077798ca47f767c6444f5", "version-semver": "1.6.0", "port-version": 1 }, { "git-tree": "4a77547715562fcaa95568226f79af88d859d2c1", "version-semver": "1.6.0", "port-version": 0 }, { "git-tree": "e47bb1810fa9570b6b87eba79bb95c749763e1e0", "version-semver": "1.5.5", "port-version": 0 }, { "git-tree": "9edadb1ffe2869bf6c1b2271e89576e05234e9a5", "version-string": "1.5.2", "port-version": 0 }, { "git-tree": "c34c7f87fa809b48939739b8bc5f6c470183785c", "version-string": "1.5.1", "port-version": 0 }, { "git-tree": "40008da96f863b599bc4baf6a67b0098cd4f2f20", "version-string": "1.5", "port-version": 0 }, { "git-tree": "cc0ead7fc8bd351e83e8b8bea18b873cef29a5d4", "version-string": "1.4.1-1", "port-version": 0 }, { "git-tree": "6ced1b2d998cbdde77f5b714fb535e226ca54622", "version-string": "1.4.1", "port-version": 0 }, { "git-tree": "3d4ec76a11e75737766febf542994fd5378edbd4", "version-string": "1.4.0", "port-version": 0 }, { "git-tree": "18111d9e7da0117faf580770a6575d16df91df4b", "version-string": "1.3.0-1", "port-version": 0 }, { "git-tree": "8ccaa53faad37d6c5e7f77e44735bef80fc54c76", "version-string": "1.3.0", "port-version": 0 }, { "git-tree": "9ff9432ca00fa3dd59a08df178fdd77f0c3bea42", "version-string": "1.2.0", "port-version": 0 }, { "git-tree": "d77a75cf312347169a81037292d30ca3083b6534", "version-string": "1.2.0-1", "port-version": 0 }, { "git-tree": "393dcd92e077eb836e857158f8a75a54e78783ad", "version-string": "1.1.0-1", "port-version": 0 }, { "git-tree": "bf11e604384baf1f1ee1d8dbc2e32b6fa4a3e252", "version-string": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bento4.json ================================================ { "versions": [ { "git-tree": "b7f9a6725e58b313fd796cf333dab7dd1d1a3bbb", "version": "1.6.0-641", "port-version": 0 }, { "git-tree": "06b152ff36998df474bd8cf0fa61435d1315b609", "version": "1.6.0-640", "port-version": 0 }, { "git-tree": "4da8906f31697785969422135a52cb2d0861fe53", "version": "1.6.0-639", "port-version": 1 }, { "git-tree": "834cb05380588e07628713420e709264f168a567", "version": "1.6.0-639", "port-version": 0 }, { "git-tree": "bfedfc70c05cececac8e23b744b43619e2ae3125", "version-string": "1.5.1", "port-version": 629 }, { "git-tree": "176077782d332c5366ab2ad4055bc76c62633d7e", "version-string": "1.5.1-628", "port-version": 0 } ] } ================================================ FILE: versions/b-/berkeleydb.json ================================================ { "versions": [ { "git-tree": "621db13f2d2f182412abec7e8e699cc57f9bf577", "version": "4.8.30", "port-version": 9 }, { "git-tree": "27ed2f8c5c5b6c5ba677703f69d9e83062ff6c86", "version": "4.8.30", "port-version": 8 }, { "git-tree": "753782cd715f3780a1d3d75ef7655e92a414a440", "version": "4.8.30", "port-version": 7 }, { "git-tree": "fdef7fa8068cc8b7443905db215bed2dcf378abf", "version-string": "4.8.30", "port-version": 6 }, { "git-tree": "e0ed5491b8a0001f97470f65cc9addf2c403f658", "version-string": "4.8.30", "port-version": 5 }, { "git-tree": "d55b50f30f9ea89e25dbf8dc1befee3e7e375391", "version-string": "4.8.30-4", "port-version": 0 }, { "git-tree": "1709618b935f9be25e82465f94db0fa6a0f90682", "version-string": "4.8.30-3", "port-version": 0 }, { "git-tree": "41169c982c74f22b67fda5a3bd9410a0a0fc5539", "version-string": "4.8.30-2", "port-version": 0 }, { "git-tree": "cfb04a51e793d0769c00dfc8674baa171af80f38", "version-string": "4.8.30-1", "port-version": 0 }, { "git-tree": "cfa54d7bb62818caca88f109dc6b5381437545ab", "version-string": "4.8.30", "port-version": 0 } ] } ================================================ FILE: versions/b-/better-enums.json ================================================ { "versions": [ { "git-tree": "64e0dbffe12134b2198b81043cc0dcfd0a340f33", "version": "0.11.3", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-di.json ================================================ { "versions": [ { "git-tree": "7471cdd9525f7d9a01fa6339a528cbf2ded62cea", "version": "1.3.2", "port-version": 0 }, { "git-tree": "41c55bfd3aeb579a5233a48257ee125174b0f9b6", "version": "1.3.0", "port-version": 1 }, { "git-tree": "b4882fdad119370cd0496487cd2b2cfc4db087ce", "version": "1.3.0", "port-version": 0 }, { "git-tree": "8b3c494eee383a036b07453ff9b34d1be65be06d", "version": "1.2.0", "port-version": 1 }, { "git-tree": "a77676231f3c6c3fe9c145bfe670cfae495fb8ac", "version-string": "1.2.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-mp.json ================================================ { "versions": [ { "git-tree": "ec1b49b97e30cecbb0dd0c9af80d741b6e108c9c", "version": "2.0.11", "port-version": 0 }, { "git-tree": "506fb6ec5f2a49a2b7e0bb637e6e8ef0f4e966ac", "version-date": "2023-03-02", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-sml.json ================================================ { "versions": [ { "git-tree": "b7d75f30113934c135dccb3834781bf8d98c6688", "version": "1.1.13", "port-version": 0 }, { "git-tree": "b2ac590f8258a81cb86063df3a74f12e783e7efe", "version": "1.1.12", "port-version": 0 }, { "git-tree": "9214514200facf25365f0183697bfceda8e44575", "version": "1.1.11", "port-version": 0 }, { "git-tree": "4a92a1e011efcac69647356c0806c794d4d8ceac", "version": "1.1.9", "port-version": 0 }, { "git-tree": "607e0e94d37ca023fd393c42e8acb43881ea8025", "version": "1.1.5", "port-version": 0 }, { "git-tree": "5e5941cb1ecd7988a9f52c1ace73823a4a20743c", "version": "1.1.4", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-sml2.json ================================================ { "versions": [ { "git-tree": "9a044e08c33fb1465d65b751bd0d23e7b32b85f5", "version": "2.0.0", "port-version": 0 }, { "git-tree": "588ef9edb0c8c55acb5807d67ddbea854b563606", "version-date": "2024-02-02", "port-version": 0 }, { "git-tree": "b61fcb31fd93d5b99b7f039aa2c1bab7b5eec83a", "version-date": "2023-09-20", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-text.json ================================================ { "versions": [ { "git-tree": "e7d3b13182249822322514dfc1157853d1202bfb", "version-date": "2024-01-19", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-ut.json ================================================ { "versions": [ { "git-tree": "ee79d45a5fe130351def4bc8185531284ad92950", "version": "2.3.1", "port-version": 0 }, { "git-tree": "005d8801fa1f5a1ebb1e7927e9ab55816fe171c0", "version": "2.0.1", "port-version": 0 }, { "git-tree": "a778eac38758ba4adaedb0098ee069c90ead7faa", "version": "1.1.9", "port-version": 2 }, { "git-tree": "c80b6f438634bb91f77d03f18bcafe5486f8aaab", "version": "1.1.9", "port-version": 1 }, { "git-tree": "ea37a3905161a060e837b30d42868792d50029f8", "version": "1.1.9", "port-version": 0 }, { "git-tree": "b08fed0b83c26aabfdda7db38d43a01b288f6a66", "version": "1.1.8", "port-version": 0 } ] } ================================================ FILE: versions/b-/bext-wintls.json ================================================ { "versions": [ { "git-tree": "72a4dd05eaf07715e75ec99ffbd3dbe819d04ab6", "version": "1.0.0", "port-version": 0 }, { "git-tree": "2aa860a3c3e75931400129bfea8e70d665410607", "version": "0.9.8", "port-version": 0 }, { "git-tree": "bc8c1307f16b47fb5fd638e719f0157323be3919", "version": "0.9.7", "port-version": 0 }, { "git-tree": "1bed92afff8085f2d8f888b35ce0049e5986aa8a", "version": "0.9.5", "port-version": 0 } ] } ================================================ FILE: versions/b-/bfgroup-lyra.json ================================================ { "versions": [ { "git-tree": "cfff8126eaa801117b26c9b8046cc8c04d799fa2", "version": "1.7.0", "port-version": 0 }, { "git-tree": "b58cd66176db34198f2a59a06f87afe194db2a45", "version": "1.6.1", "port-version": 0 }, { "git-tree": "bbd3e635da6198f0f2458ec62ff937287c5c5b45", "version": "1.6", "port-version": 0 }, { "git-tree": "d06d9dff4b3cb6ea57292cb81460f113a905e3ea", "version": "1.5.1", "port-version": 0 }, { "git-tree": "0cfb523191016e3f686356b2d522034a2b7a47da", "version-string": "1.5", "port-version": 1 }, { "git-tree": "c4a41ae13598868ce4257c7791ea89665d8104b8", "version-string": "1.5", "port-version": 0 }, { "git-tree": "5eeee80b2083f3e63aacae1232856638640e3448", "version-string": "1.3", "port-version": 0 }, { "git-tree": "ec5bc3e16425d6cf7466cc28f64cad560d5f1601", "version-string": "1.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bgfx.json ================================================ { "versions": [ { "git-tree": "4bf01fdbfc053cd0a55f0794ac38c28ddb37d04a", "version": "1.129.8940-496", "port-version": 1 }, { "git-tree": "0649ad4eb640389c105dbac3a302e9c27e0a04b0", "version": "1.129.8940-496", "port-version": 0 }, { "git-tree": "ad65f26a5c23cf2cc089bfd303882b9f8ab17d57", "version": "1.129.8930-495", "port-version": 1 }, { "git-tree": "ea7befa5f058a6cad8ba227cb6c693fe8bed3095", "version": "1.129.8930-495", "port-version": 0 }, { "git-tree": "a31ddfefd30660f6e321840607f6ae654849b8f9", "version": "1.129.8866-491", "port-version": 0 }, { "git-tree": "38419e14182a560fb1b84d51f88e68af9174e90c", "version": "1.128.8808-482", "port-version": 0 }, { "git-tree": "059b5b641de1b56edd27101a5d0ce1093cceaa5a", "version": "1.128.8786-481", "port-version": 0 }, { "git-tree": "ce8b9fb8c5bb63ede2168612877dd02b9187942f", "version": "1.128.8786-480", "port-version": 0 }, { "git-tree": "410ddaf19cbcc811e4757d3e6ecb236c7dc15838", "version": "1.128.8777-475", "port-version": 0 }, { "git-tree": "7b9ba6d3df9abc4bacc14ca3fcaf2095b7faf548", "version": "1.127.8725-469", "port-version": 1 }, { "git-tree": "df7b82514ae7d190569f8e85e7c65cfec55cdc82", "version": "1.127.8725-469", "port-version": 0 }, { "git-tree": "c5af63ea2a285a9577943683a6e1347d17487402", "version": "1.122.8595-458", "port-version": 0 }, { "git-tree": "11c8b127eab949129fb5adf3006c9655ab1bb525", "version": "1.121.8534-453", "port-version": 0 }, { "git-tree": "583f89c30b68d43070737982e0b0f8748aa23199", "version": "1.118.8417-415", "port-version": 0 }, { "git-tree": "bc128cdb626e73d51985facc99bfdad94ebc7532", "version": "1.118.8415-411", "port-version": 0 }, { "git-tree": "0fe86904c573bab0e9b8c410160de78ecfc4527f", "version": "1.118.8398-400", "port-version": 0 }, { "git-tree": "9359637243730a77d0139bd3ecdf317bd16fa38e", "version": "1.118.8384-362", "port-version": 1 }, { "git-tree": "6554186755cae40eef0b34bf0c447861d6e6dd7a", "version": "1.118.8384-362", "port-version": 0 } ] } ================================================ FILE: versions/b-/bigint.json ================================================ { "versions": [ { "git-tree": "9b0dc5c03eb3f9da5fb625518dd2ab367df6aed8", "version-string": "2010.04.30", "port-version": 8 }, { "git-tree": "ae8921f17a82f01e5e68e494c8fe1823085eb496", "version-string": "2010.04.30", "port-version": 7 }, { "git-tree": "00e038eff99864c2c73a807f0641c17e364547b0", "version-string": "2010.04.30", "port-version": 6 }, { "git-tree": "3d92889fb018b73f520bde1a623db283838f5a7d", "version-string": "2010.04.30", "port-version": 5 }, { "git-tree": "ece18a8ff1b53330cbde718bc977d16e83b3f752", "version-string": "2010.04.30-4", "port-version": 0 }, { "git-tree": "b65e19d6308e31ce43180f125f08fb5d357c3de0", "version-string": "2010.04.30-3", "port-version": 0 }, { "git-tree": "942ddfd589666b15e4113df6438078cd7a3931c2", "version-string": "2010.04.30-2", "port-version": 0 }, { "git-tree": "687c95e2d8c5e4dd9df75df005c8920c788b4834", "version-string": "2010.04.30-1", "port-version": 0 }, { "git-tree": "f051f0cf6a477a97b412bef03d3e80341149c7e0", "version-string": "2010.04.30", "port-version": 0 } ] } ================================================ FILE: versions/b-/binlog.json ================================================ { "versions": [ { "git-tree": "53449cd8c7572c72137ace92720d632b671f2d17", "version-date": "2021-04-16", "port-version": 1 }, { "git-tree": "eb0ae943fc2b0c1c19ad62308d1f321439967fd4", "version-date": "2021-04-16", "port-version": 0 } ] } ================================================ FILE: versions/b-/binn.json ================================================ { "versions": [ { "git-tree": "e9c0f4de4aef736aa3b11d4cce436973f85e03a6", "version": "3.0", "port-version": 3 }, { "git-tree": "aef73e4b20836cfc1913984d75d560f331b51fc1", "version-string": "3.0", "port-version": 2 }, { "git-tree": "6b63ed963e5305d28e67ee04951cb907a483bca2", "version-string": "3.0", "port-version": 1 }, { "git-tree": "f572fc1577b9e8176015a54393657dfdfb245b78", "version-string": "3.0", "port-version": 0 }, { "git-tree": "91721ef9120b0d8a6719858756451d6326bbd647", "version-string": "2.0", "port-version": 1 }, { "git-tree": "df9576da4d413599e502f5ce9410128896a12637", "version-string": "2.0", "port-version": 0 }, { "git-tree": "76b91d53b30719970a5668d6297e72c8f579cba4", "version-string": "1.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bit7z.json ================================================ { "versions": [ { "git-tree": "c981943b56e0bf3cdd005a500c8c5d7cb7acd40c", "version": "4.0.11", "port-version": 0 }, { "git-tree": "d1aa6e09fb69b63f1fe62bb4dc2a6e6768fad7aa", "version": "4.0.10", "port-version": 0 }, { "git-tree": "761234aa0ad3687fccc86bf939350659f9d137d6", "version": "4.0.9", "port-version": 1 }, { "git-tree": "88073b4adf36aa5b939b9565ec299084e3162e8b", "version": "4.0.9", "port-version": 0 }, { "git-tree": "07fa7b0762a888e367f01bd9ba8674c7a0d7ffdb", "version": "4.0.8", "port-version": 0 } ] } ================================================ FILE: versions/b-/bitmagic.json ================================================ { "versions": [ { "git-tree": "8112a1ee30dc07987204b0599d20a1800a0ebd1c", "version": "8.0.1", "port-version": 1 }, { "git-tree": "e99ecd5760a75e09682d6e1485ebbdde4cfa51a5", "version": "8.0.1", "port-version": 0 }, { "git-tree": "14d510fa0efbea29992a891120f898df71dc746d", "version": "7.13.4", "port-version": 1 }, { "git-tree": "98fb920eba690a2a64666a6a76e16af95a797ae8", "version": "7.13.4", "port-version": 0 }, { "git-tree": "d8f4a3a305e2872a295f493450a96b093ad39ef7", "version": "7.12.3", "port-version": 0 }, { "git-tree": "0b5257f630778f4e1acbee7661041a1a67c7f21d", "version": "7.11.2", "port-version": 0 }, { "git-tree": "9a8ea093834ac196fd75eb7d07348dd27ebcb715", "version": "7.5.0", "port-version": 0 }, { "git-tree": "9854378bbae00f886710d80f38221368faf99547", "version-string": "7.2.0", "port-version": 1 }, { "git-tree": "752ea75ea3ffa1341de3f427b9a9c51cdea3df17", "version-string": "7.2.0", "port-version": 0 }, { "git-tree": "f6b7d113e8f4ef1dd43faf316ee848f35fdf0ace", "version-string": "6.4.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bitserializer.json ================================================ { "versions": [ { "git-tree": "e24b3a9cde6fb60cd8382a7c5410925b26d9dd90", "version": "0.85", "port-version": 0 }, { "git-tree": "d77ff6e6a9d473e6928683064e88b307a581555d", "version": "0.80", "port-version": 0 }, { "git-tree": "905079d1cc6608e221aea9d68c19adcfa15b6f97", "version": "0.75", "port-version": 0 }, { "git-tree": "d1f4be53f0d9a87ee46bd26d3d44cc98f726e527", "version": "0.70", "port-version": 0 }, { "git-tree": "e942a227c05c00b773fa341f08ed56e360fbd45e", "version": "0.65", "port-version": 0 }, { "git-tree": "8f6f0ca62f24edb91a4b605b045f46653442d1d5", "version": "0.50", "port-version": 0 }, { "git-tree": "5890683ebbade2c0abbc466cd447e3f4220f49cd", "version": "0.44", "port-version": 2 }, { "git-tree": "e25c895f4054e151b1865640ae8500efcddda95b", "version": "0.44", "port-version": 1 }, { "git-tree": "66c9246073510ab554418a0b63ef9ee471b05b76", "version": "0.44", "port-version": 0 }, { "git-tree": "ea63e330fbf462f7d5ab3fa119d105501366ea9c", "version": "0.10", "port-version": 2 }, { "git-tree": "a840c1d638565cbc8c4fd9a4200c0f54136275d7", "version": "0.10", "port-version": 1 }, { "git-tree": "7ad926d8d5b488348fb195aa2180443a986e3464", "version-string": "0.10", "port-version": 0 }, { "git-tree": "529a84c174c81cf0d5b398ef74b780d5c48b4bc1", "version-string": "0.9", "port-version": 0 }, { "git-tree": "d0f968ac3cd0cc6c8d2883e9917a97730f56d43b", "version-string": "0.8", "port-version": 0 }, { "git-tree": "d3f5b741089ec695e2d088cf1d130823f1cddab9", "version-string": "0.7", "port-version": 0 } ] } ================================================ FILE: versions/b-/bitsery.json ================================================ { "versions": [ { "git-tree": "b9f2d4852978ada14a71330925dcf036389a98bc", "version": "5.2.5", "port-version": 0 }, { "git-tree": "73f4da051bf8903b91c11b724dd62469eb0565ff", "version": "5.2.4", "port-version": 0 }, { "git-tree": "7c511e7c691fc3d0c4f146298daa7e0a4f4446e5", "version": "5.2.3", "port-version": 0 }, { "git-tree": "6fdd20d510ccb63049b899419af07461f42097e5", "version": "5.2.2", "port-version": 0 }, { "git-tree": "adbbef892ab01c8b0c57b7be2684ae6bb1a29a99", "version-string": "5.2.1", "port-version": 1 }, { "git-tree": "b7b53af2d59fe702bcbefc77e31745f2a916afc8", "version-string": "5.2.1", "port-version": 0 }, { "git-tree": "e3f91c87735a3cffdc76bc6da0b723cc5b4f2c3d", "version-string": "5.1.0", "port-version": 0 }, { "git-tree": "d6e86f417c1729f51182a199b260c50398eb5a40", "version-string": "5.0.3", "port-version": 0 }, { "git-tree": "4b3721d445e8dff8f26a93e6c5849bf94577e654", "version-string": "5.0.1-1", "port-version": 0 }, { "git-tree": "899f3adebd9df6968c017ca9b87ff44a644f405a", "version-string": "5.0.0", "port-version": 0 }, { "git-tree": "e34ebee8cbfffd7a4b05a07df93f476e916ff146", "version-string": "4.6.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/blake3.json ================================================ { "versions": [ { "git-tree": "6fb73bcdacd30a986c08d80e6c7627eed4d4d122", "version": "1.8.3", "port-version": 0 }, { "git-tree": "2138f2b369e465fced0fbff6bac08d01d9de95f5", "version": "1.8.2", "port-version": 0 }, { "git-tree": "ffbeed13f05feae7a0d28ed51efe781c9a84c0fd", "version": "1.8.1", "port-version": 0 }, { "git-tree": "ff114b5f63e1e75a4db88a9390b5c0bd7f8ccf81", "version": "1.7.0", "port-version": 0 }, { "git-tree": "99c43c134c221bcbf3a06bc8256094186c8d20cd", "version": "1.6.0", "port-version": 0 }, { "git-tree": "e816d39b5f988611043b60760036b695d1c370e2", "version": "1.5.4", "port-version": 0 }, { "git-tree": "1ebeac61319ceea010e0886e04c270f7db71667b", "version": "1.5.1", "port-version": 0 }, { "git-tree": "62d312f1abb1e3acf086050e4e14d650973f5568", "version": "1.5.0", "port-version": 1 }, { "git-tree": "3d62ef88b0bacbb197e9bb921b8b7d0fea336f1d", "version": "1.5.0", "port-version": 0 }, { "git-tree": "a198a87b5478bee28b2e4d35ed9787cf3950faef", "version": "1.4.0", "port-version": 0 }, { "git-tree": "13ac9cc003839e6730587218103f4912e7886311", "version": "1.3.3", "port-version": 1 }, { "git-tree": "707d127029e3c2e2c2216fba6e36247ce43414b3", "version": "1.3.3", "port-version": 0 }, { "git-tree": "78cffdc59cdb9f1c75dffa671578203d0a79fa42", "version": "1.3.1", "port-version": 1 }, { "git-tree": "62a5201ca424389c823b9b4be3d588e1cbb88a58", "version": "1.3.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/blas.json ================================================ { "versions": [ { "git-tree": "240d6e92a04768c856492186df3e2b5f642c5e37", "version-date": "2023-04-14", "port-version": 5 }, { "git-tree": "d47ddd31b0da28c8da1ec016005b3381c69996da", "version-date": "2023-04-14", "port-version": 4 }, { "git-tree": "6155e3a08c8a572e1e8ab225b6f0fdb56e84eca1", "version-date": "2023-04-14", "port-version": 3 }, { "git-tree": "b5910f73b446a5f52ca520bafd134f3360b1698f", "version-date": "2023-04-14", "port-version": 2 }, { "git-tree": "996094c62f01e190855a43a036b6ec2e10375bd9", "version-date": "2023-04-14", "port-version": 1 }, { "git-tree": "02dbca6ca7e22e44f5445b10f74e63644779eefd", "version-date": "2023-04-14", "port-version": 0 }, { "git-tree": "0fe7611c8bb3098083440074a6c59f35bfee4f99", "version-date": "2023-03-25", "port-version": 0 }, { "git-tree": "13cc4359c6888f16fdde35e618096b67a9177a6b", "version-string": "1", "port-version": 2 }, { "git-tree": "0d105be9337f4a6f294a7eced2da18e8cdb99051", "version-string": "1", "port-version": 1 }, { "git-tree": "2877c1693c63195d4edacfb42156c9d8874ad046", "version-string": "1", "port-version": 0 } ] } ================================================ FILE: versions/b-/blaze.json ================================================ { "versions": [ { "git-tree": "408eb24a2dfa52911481429dbf59d384ee80464d", "version": "3.8.2", "port-version": 1 }, { "git-tree": "9f237bb789d83a4004b263f9544ed3d6668f160f", "version": "3.8.2", "port-version": 0 }, { "git-tree": "6bea7e024ba776f0a7c5462056054529f79aa86d", "version": "3.8.1", "port-version": 0 }, { "git-tree": "8795a94d25adbb75d3be0b191bc3c15321e9c686", "version-string": "3.8", "port-version": 2 }, { "git-tree": "0929cccabaf3511161aa06789a414a2937629679", "version-string": "3.8", "port-version": 1 }, { "git-tree": "0a3d771a22aa157efa6509d71ca490c0837245ba", "version-string": "3.8", "port-version": 0 }, { "git-tree": "030ff934e5ec3edf938b5c7af9ee2d0aaf2312a3", "version-string": "3.7", "port-version": 1 }, { "git-tree": "31cd07691fc311e7162d87a5fa3a9c57c1394a45", "version-string": "3.7", "port-version": 0 }, { "git-tree": "c8c9bc05c29ce0eb5f92c342f55769350f3b05cf", "version-string": "3.6-1", "port-version": 0 }, { "git-tree": "601997a4170c6ae1c3abc833b9903ed3d8e76074", "version-string": "3.6", "port-version": 0 }, { "git-tree": "0c07a59546a7c2c5f1192e0bff318c9df2ce248c", "version-string": "3.5", "port-version": 0 }, { "git-tree": "3f72a5942a99dd91142e5abdc1baa783330b127b", "version-string": "3.4-1", "port-version": 0 }, { "git-tree": "f26995e1fb9fe7e85ce58eca839126c280b6e46e", "version-string": "3.4", "port-version": 0 }, { "git-tree": "d00bace3480f1f01ac244f1d0a81588f1bbfa8ba", "version-string": "3.3", "port-version": 0 }, { "git-tree": "637fc709acbb54db8d3cfbb6f3ac10ec93870ed2", "version-string": "3.2-3", "port-version": 0 }, { "git-tree": "e472a441bdfffb537058d7aea7c67e3221053c38", "version-string": "3.2-2", "port-version": 0 }, { "git-tree": "1e22d37bf1c1ef3d5f76d12d917f30d39da28897", "version-string": "3.2-1", "port-version": 0 }, { "git-tree": "15ef5588a761e515cf91f2527cffe3f9f9387f03", "version-string": "3.2", "port-version": 0 }, { "git-tree": "d2ec68e6acec03edbe7a55b3fa317f104e74c859", "version-string": "3.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/blend2d.json ================================================ { "versions": [ { "git-tree": "ab302c4ae67e82b626fbfd14a90740d2e51886e9", "version-date": "2025-03-08", "port-version": 1 }, { "git-tree": "979dc79fd780a90f3125311fea7fe802a4c4563a", "version-date": "2025-03-08", "port-version": 0 }, { "git-tree": "d1f7110a127ab278f91765da0f9219d2c3029013", "version-date": "2024-11-23", "port-version": 0 }, { "git-tree": "2552a43118b9e6890e486db9376c0c69b6cc82ca", "version-date": "2024-07-08", "port-version": 0 }, { "git-tree": "a5440e80d03f5d70356c3295281949898811ff97", "version-date": "2023-06-16", "port-version": 1 }, { "git-tree": "7e16be134e98cabefdf318161ef7f74d83b0512d", "version-date": "2023-06-16", "port-version": 0 }, { "git-tree": "d6de437ccd239433cc34d21212797c4755a6c8f4", "version": "0.10", "port-version": 0 }, { "git-tree": "b29172f6f8dd5479a5123214f403137b0180b61f", "version-date": "2022-12-31", "port-version": 3 }, { "git-tree": "89ccc58cff0cc74468ab31076901e5e74b68c6ba", "version-date": "2022-12-31", "port-version": 2 }, { "git-tree": "dc33e610ee62c7cc13415a1e18e682ccbb56a68d", "version-date": "2022-12-31", "port-version": 1 }, { "git-tree": "838a7227b29f1b1beb7daf181cfc97e5674e0270", "version-date": "2022-12-31", "port-version": 0 }, { "git-tree": "96db1e7844aafd005e469f47b8f89e139df8d8e1", "version-date": "2022-05-02", "port-version": 0 }, { "git-tree": "ceedb664deed987cc4e4493554ae3aa58088f08c", "version-date": "2022-02-19", "port-version": 0 }, { "git-tree": "401153e8f3407e68e96c4ea60f8c71c633b08e1d", "version-date": "2021-03-17", "port-version": 1 }, { "git-tree": "e322c9917356f15d6370ff8f2f0bd380d1f08661", "version-date": "2021-03-17", "port-version": 0 }, { "git-tree": "0258280297a10b5f45243914233bb9299274a224", "version-string": "beta_2021-01-02", "port-version": 0 }, { "git-tree": "7772d070a8aa7b0b06508ae45bb3c22e9bbe774f", "version-string": "beta_2020-08-24", "port-version": 0 }, { "git-tree": "4b67e6ac18485e7209ec86219d16ce3659446e8a", "version-string": "beta_2020-06-01", "port-version": 0 }, { "git-tree": "085240b75db115d9a8506dfbece3654c747695ef", "version-string": "beta_2020-05-04", "port-version": 0 }, { "git-tree": "e5803599f8a8cd230e2c47c0621730fe68621c2e", "version-string": "beta_2020-04-19", "port-version": 0 }, { "git-tree": "98f049cf4d0022cefd9d47a7e8610bba0cab3c0e", "version-string": "beta_2020-04-15", "port-version": 0 }, { "git-tree": "142a63cd15830f4bdd62eafbca53a526449cfeaf", "version-string": "beta_2020-03-29", "port-version": 0 }, { "git-tree": "bacc881cce92ba0f700fa1979b338a523d31b2f5", "version-string": "beta_2019-12-27", "port-version": 0 }, { "git-tree": "ce604b67ae70294390e5563df15fe6cb2cf53b11", "version-string": "beta_2019-10-09", "port-version": 0 }, { "git-tree": "aa93039c5b51abe4372278bbdfef33ebb3726fc2", "version-string": "beta_2019-07-16", "port-version": 0 }, { "git-tree": "52ab0ec1c89dd5b33dbd03678034e772c36474d1", "version-string": "beta_2019-04-30", "port-version": 0 } ] } ================================================ FILE: versions/b-/blickfeld-qb2.json ================================================ { "versions": [ { "git-tree": "ef0cbb924625815fd8180f8d534f27c2fb079983", "version": "2.13", "port-version": 0 }, { "git-tree": "81294fe8a9c1afd9ae86e02c8b91728664c43e0e", "version": "2.8.3", "port-version": 0 } ] } ================================================ FILE: versions/b-/blingfire.json ================================================ { "versions": [ { "git-tree": "70822350369b68d60a5640eca1b668e1829c8054", "version": "0.1.8.1", "port-version": 1 }, { "git-tree": "8352e7a158da2568b5c67c973b3692681be8b0d6", "version": "0.1.8.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/blitz.json ================================================ { "versions": [ { "git-tree": "cdba6ec016e3ff669d9db76b24782b25d2c3052e", "version-date": "2020-03-25", "port-version": 7 }, { "git-tree": "40ce06a82bd0a6249e00b4e7dc3f74f2b03d5391", "version-date": "2020-03-25", "port-version": 6 }, { "git-tree": "58bca2588e7ff4935893cfebdf1d9665f95f846e", "version-date": "2020-03-25", "port-version": 5 }, { "git-tree": "694507bc15d282e3de5160a0a221abfa381e6327", "version-string": "2020-03-25", "port-version": 4 }, { "git-tree": "ddf54a36a0fa345a482b66d648778c13f0008eeb", "version-string": "2020-03-25", "port-version": 3 }, { "git-tree": "6f6a860240cf01fea1a9f90f6970dec75980a1d1", "version-string": "2020-03-25", "port-version": 2 }, { "git-tree": "50cc7fc499a0dd0ea2d61de84ee5875327ffd255", "version-string": "2020-03-25", "port-version": 1 }, { "git-tree": "5cd50e6a9001065a85965fd67c63304912ca902b", "version-string": "2020-03-25", "port-version": 0 }, { "git-tree": "2412730aa808b2aae82af8b0f79c79e24b7bacc6", "version-string": "2019-09-26", "port-version": 0 } ] } ================================================ FILE: versions/b-/bloomberg-quantum.json ================================================ { "versions": [ { "git-tree": "9099d9be8e575f44a311cf7d5032ee5c9dcdc82f", "version-date": "2023-02-03", "port-version": 0 } ] } ================================================ FILE: versions/b-/blosc.json ================================================ { "versions": [ { "git-tree": "864998aec116af2c008676f9e3be350be747654d", "version": "1.21.6", "port-version": 0 }, { "git-tree": "7c0e6152db6058a53ff21fc8037e5c9e685a0fe8", "version": "1.21.5", "port-version": 0 }, { "git-tree": "08be7493a8b0644853e545f50d243680b1d13fd9", "version": "1.21.3", "port-version": 0 }, { "git-tree": "a95e4b34ff47ed69f3e644405efe80b8c46aee14", "version-string": "1.18.1", "port-version": 4 }, { "git-tree": "a9ae0480271a2db8d001d389b4c62af49ea50770", "version-string": "1.18.1", "port-version": 3 }, { "git-tree": "0d29f4f5d2e2d2fd70c4489149d81cc548d31cc1", "version-string": "1.18.1", "port-version": 2 }, { "git-tree": "117ae787801719558e153574030647da9fc16cf7", "version-string": "1.18.1-1", "port-version": 0 }, { "git-tree": "0cecc386e1baf145470db8b70665961eec9e9747", "version-string": "1.17.1", "port-version": 0 }, { "git-tree": "da134ec965f1cdb754429bed31f5791e7664c285", "version-string": "1.17.0-1", "port-version": 0 }, { "git-tree": "901567081986ac0c6c0439eb3051362d3eb76712", "version-string": "1.17.0", "port-version": 0 }, { "git-tree": "d4d243af848ef5d98e8dcbbb4c321d93d24e5b7a", "version-string": "1.16.3-2", "port-version": 0 }, { "git-tree": "31cddb54ae5c7610884c84368d7c4397c78fee76", "version-string": "1.16.3-1", "port-version": 0 }, { "git-tree": "b23aeb29445076d710423ebbae55bc3450fdb69c", "version-string": "1.16.3", "port-version": 0 }, { "git-tree": "97e82fc8da36b2ecd4660ed9cbda3a2c2d8225fe", "version-string": "1.13.5-1", "port-version": 0 }, { "git-tree": "5a5ca69dc95323c180acf87676eb9f5107c74828", "version-string": "1.13.5", "port-version": 0 }, { "git-tree": "c2403773d4b9e8c8146534ba2581806fab2da116", "version-string": "1.12.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/blosc2.json ================================================ { "versions": [ { "git-tree": "c97914f5adf621e4732313e9edd2b9d07702c421", "version": "2.23.1", "port-version": 0 }, { "git-tree": "9274af6ccb2651a2b71d2432f89cba3c6e38626c", "version": "2.23.0", "port-version": 0 }, { "git-tree": "d6869e54beb61b028ca8d5f54362b3988a7e7fcc", "version": "2.22.0", "port-version": 1 }, { "git-tree": "1cf0bc3f861ba73ecafae6db6e7491a73bff8e0a", "version": "2.22.0", "port-version": 0 }, { "git-tree": "47703e99fb09c9d6f236bf8f33722b666578fc8e", "version": "2.21.3", "port-version": 0 }, { "git-tree": "3fa11b11d753a99dea1d8fbf16e434619b592a12", "version": "2.21.2", "port-version": 0 }, { "git-tree": "f8b8ffc876ec4d0f65f6afd684372da2c0580b6c", "version": "2.21.1", "port-version": 0 }, { "git-tree": "cb8c406a548a686cdabb968dfcba38f3719230b8", "version": "2.21.0", "port-version": 0 }, { "git-tree": "1fc38ff08477091f13ad0a5c17c4a57bdf5f86c5", "version": "2.20.0", "port-version": 0 }, { "git-tree": "c33fcb49e211a14b84cc597401f91b5b78dd4ae8", "version": "2.19.1", "port-version": 0 }, { "git-tree": "1fe74c475597ba3fc88215462d00982491d11b74", "version": "2.19.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/blpapi.json ================================================ { "versions": [ { "git-tree": "23a89d5eb01a5855e931fe5a8405aaca71a5f32e", "version": "3.25.1", "port-version": 0 }, { "git-tree": "f06f8feee872cd3a196d20113ed1f77c39554910", "version": "3.24.6", "port-version": 0 }, { "git-tree": "78171a41201cdb236d95e50ed26f6b76675f97de", "version": "3.20.2", "port-version": 0 } ] } ================================================ FILE: versions/b-/bluescarni-tanuki.json ================================================ { "versions": [ { "git-tree": "8d7c42daaac9ee52c19aa772cc4a2b8c823ae8e7", "version-date": "2024-08-17", "port-version": 0 } ] } ================================================ FILE: versions/b-/boinc.json ================================================ { "versions": [ { "git-tree": "065b54511dc3f3f051d47efc8d1198e506ea8f3f", "version": "8.2.8", "port-version": 0 }, { "git-tree": "96b3027bbe3410692a2ff6b6236decaabd807492", "version": "8.2.5", "port-version": 1 }, { "git-tree": "3aa6f828171b0446bdbae2e6172b6290f353ba60", "version": "8.2.5", "port-version": 0 }, { "git-tree": "dceee841c00561abe3de8241f9399dd60db96193", "version": "8.0.4", "port-version": 0 }, { "git-tree": "2585b14e3aac8df4a8942c42305c72178f11d684", "version": "8.0.3", "port-version": 0 }, { "git-tree": "459fef2e05ce8ca1a52a5361163bb7ba643f3d17", "version": "8.0.2", "port-version": 0 }, { "git-tree": "972e4eaa795c412ca6dd9868073b2281c4f55ced", "version": "8.0.0", "port-version": 0 }, { "git-tree": "b49e9a16d262cfdde45934d7a3c9a6aebf391225", "version": "7.24.3", "port-version": 0 }, { "git-tree": "1108b5895433bd23e8a9d6b8695adf85438382c2", "version": "7.24.1", "port-version": 0 }, { "git-tree": "a90973a47e6ea052123787fd347b6dc68c8f77de", "version": "7.22.2", "port-version": 2 }, { "git-tree": "61b5ebb30db7da8972a235b11ffc92f667c597eb", "version": "7.22.2", "port-version": 1 }, { "git-tree": "b0f6f1b59e54a64b321aba20d196531d6e181d2c", "version": "7.22.2", "port-version": 0 }, { "git-tree": "0d3f7220d72e02720ad44a15cfc46ebc1a6c26b4", "version": "7.22.1", "port-version": 1 }, { "git-tree": "05fdc41be633efa59debd81ec8a95c584972e54b", "version": "7.22.1", "port-version": 0 }, { "git-tree": "634e281c399c5bdd7f47977241fce65e88faa595", "version": "7.22.0", "port-version": 0 }, { "git-tree": "6182bb8eabfde5ed3800c4505fa189d43cf0f884", "version": "7.20.5", "port-version": 0 }, { "git-tree": "14cea3d77a6cc3792993088cb0d2642aa5fc87c2", "version": "7.20.4", "port-version": 0 }, { "git-tree": "862d1c12a219592e79f591bbeb090c5f84736a54", "version": "7.20.2", "port-version": 0 }, { "git-tree": "ab47def2f85314a93479d7238572c83c91ac1845", "version": "7.20.1", "port-version": 0 }, { "git-tree": "c81da3b63845b3d0e04dfac9b8ebe3096d13176d", "version": "7.20.0", "port-version": 0 }, { "git-tree": "47df312abbe66c9c58fd67b1deb72ec906421a68", "version": "7.18.1", "port-version": 5 }, { "git-tree": "33d681acad2362813b5aa9e547c73741d11432d4", "version": "7.18.1", "port-version": 4 }, { "git-tree": "561d297147fabda6ccd25dc8ca3de0ce854562ca", "version": "7.18.1", "port-version": 3 }, { "git-tree": "ee6667eb5cf5a3fee75fd35de998ad322c5999ff", "version": "7.18.1", "port-version": 2 }, { "git-tree": "47766741495b79066e3e24b1547684024b9e16b8", "version": "7.18.1", "port-version": 1 }, { "git-tree": "9fcf80005012082801212b0761a61a53f92b6104", "version": "7.18.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bond.json ================================================ { "versions": [ { "git-tree": "e514b127e67f594fcbfbead6316497b0ae2bb3bf", "version": "13.0.1", "port-version": 0 }, { "git-tree": "509a47415e454dad381998007ac964af4a288bb1", "version": "11.0.1", "port-version": 4 }, { "git-tree": "529159c6aff85949b583f7f2a577f7a1447ed38c", "version": "10.0.0", "port-version": 3 }, { "git-tree": "800bba87d345e620b88cd1b31b34fb76ac80aee6", "version": "10.0.0", "port-version": 2 }, { "git-tree": "5d9b960403809575097267ac43d1ce18e9b2a7f2", "version": "10.0.0", "port-version": 1 }, { "git-tree": "5ce8875d8de21ca31d61b521c2e84a974e325436", "version": "10.0.0", "port-version": 0 }, { "git-tree": "96ecc1c6ea2a8fabfbdfd7d0a8535821446af89f", "version": "9.0.3", "port-version": 3 }, { "git-tree": "a1dbc5726734016b562a6f957ae3072df17b4592", "version": "9.0.3", "port-version": 2 }, { "git-tree": "29fa989c86f7846056f2afc162152f79169ec813", "version-string": "9.0.3", "port-version": 1 }, { "git-tree": "bde4f6ac4c95a05f823e8de810f57df015738ac4", "version-string": "9.0.3", "port-version": 0 }, { "git-tree": "296d1334803fea55c08752d656a60c70c53ae600", "version-string": "9.0.2", "port-version": 0 }, { "git-tree": "80d1a672e033ad1bf2f1551f46e42f4daaebcb6e", "version-string": "9.0.0", "port-version": 0 }, { "git-tree": "499ddc4155f82ac0b3e42f01cba694660778aa40", "version-string": "8.1.0-4", "port-version": 0 }, { "git-tree": "9414919f360dd7837bb1c584ace15ad2212b664b", "version-string": "8.1.0-3", "port-version": 0 }, { "git-tree": "7b3c4a2299a891b66e71e1d1db9434dbaecd792f", "version-string": "8.1.0-2", "port-version": 0 }, { "git-tree": "b3d448758eb450af042c8bc054e65d9f9bd784c2", "version-string": "8.1.0-1", "port-version": 0 }, { "git-tree": "af8ab5c553049c589bc6ad65a9de3640a04df6c8", "version-string": "8.1.0", "port-version": 0 }, { "git-tree": "ab2bf47ea2bfd5e792aa269b982a9a43879d652d", "version-string": "7.0.2-2", "port-version": 0 }, { "git-tree": "00722ab36c76488de79d06c23752157b0b462e38", "version-string": "7.0.2-1", "port-version": 0 }, { "git-tree": "5f6299740eb7b94ec88c3e02990b4f2090c82714", "version-string": "7.0.2", "port-version": 0 }, { "git-tree": "4eae9ef01bdc97bac6d4d950b32444bef5411beb", "version-string": "6.0.0-1", "port-version": 0 }, { "git-tree": "b7540e50de294b554b594249161801d7821356d6", "version-string": "6.0.0", "port-version": 0 }, { "git-tree": "4b01091acd27382258e2a3696bdde3a23ffa0158", "version-string": "5.3.1", "port-version": 0 }, { "git-tree": "3b0d66a75c2119cbea37fd7553e796b7f84f69fa", "version-string": "5.2.0", "port-version": 0 }, { "git-tree": "e31c6ab00354074e55dbb06bd9c8fd7878c38dc4", "version-string": "5.0.0-4-g53ea136", "port-version": 0 } ] } ================================================ FILE: versions/b-/boolinq.json ================================================ { "versions": [ { "git-tree": "540d3bb914d7910e720efb6f423d22e279b2c029", "version": "3.0.4", "port-version": 0 }, { "git-tree": "40193511c7dc66ae28661196fa3769dfabf0ac8c", "version": "3.0.3", "port-version": 0 }, { "git-tree": "86d17070137580ac517b418686329b8fbc28b147", "version": "3.0.2", "port-version": 0 }, { "git-tree": "6c818ffded6676e523656e7ae145bfe6e6bf9220", "version": "3.0.1", "port-version": 0 }, { "git-tree": "29ffea33c381e00d2728bc3cb97fbbc0b669547a", "version-string": "2019-07-22", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-accumulators.json ================================================ { "versions": [ { "git-tree": "d3b5d9441801be98690488ff1a72781d997714c2", "version": "1.90.0", "port-version": 1 }, { "git-tree": "84976ee5abd9b8b9058afbf5f35bd10e161d750a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "01da82292a1baf060b71c5cfca2987379d22f3b0", "version": "1.89.0", "port-version": 0 }, { "git-tree": "594b00177763d338a42298b0c9a3f1b241dfc040", "version": "1.88.0", "port-version": 0 }, { "git-tree": "c5a16b523b8464d26a8a70cf9095c3ea989bbcda", "version": "1.87.0", "port-version": 0 }, { "git-tree": "9760bdb89b8de886df649835bb83c4fb573c8140", "version": "1.86.0", "port-version": 0 }, { "git-tree": "17619ff99f8255a784c6340075f3905dbad6b2f1", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2cb5fea49f30952d6483fd6cfedb41cf2391ae49", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c86eb2ffff3ac4bf14765b247010f35a5dade89d", "version": "1.84.0", "port-version": 1 }, { "git-tree": "5cdf726ffdb94b1312ded97480dd8d532431d126", "version": "1.84.0", "port-version": 0 }, { "git-tree": "fbc8e739bd519a5da1db826cb1cd6b14c0072533", "version": "1.83.0", "port-version": 0 }, { "git-tree": "fcd575a4e482f3a331107dcbad72468cb9c14e50", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d45f601cdc5cfb7a4e6d1ec9fdd8396ece8699e9", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f201a4318c1e2b666d9e4e335b3724db492f75a5", "version": "1.82.0", "port-version": 0 }, { "git-tree": "b7046b6940dd0ce710ee59f69eb4ba3d0a43df71", "version": "1.81.0", "port-version": 2 }, { "git-tree": "a6b9364c31b7056aea13e5d823ae093414e23833", "version": "1.81.0", "port-version": 1 }, { "git-tree": "5d7a12cb50aa3ea71eea14b22333b19b5a7116a9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "fc69978ce36846187e85003e5a050ed6a0fd74bb", "version": "1.80.0", "port-version": 1 }, { "git-tree": "b25f312085b5e73329ad76e24d11c9c1882e2ee7", "version": "1.80.0", "port-version": 0 }, { "git-tree": "80a1e83cff3df70e006907ccc20851f7086f2dab", "version": "1.79.0", "port-version": 0 }, { "git-tree": "070cbab1861e2a57e6c39ac1a8dcf51ad9edafea", "version": "1.78.0", "port-version": 0 }, { "git-tree": "b24ef7a5bec0e29c8013593cd6bba58e52b19a7a", "version": "1.77.0", "port-version": 0 }, { "git-tree": "94824d664d1b512dd44c3c84652b59da7726273a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5b1b9c1e8dbb75740b1795ae712e8a4612e91c58", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2f5cd36c753176957adcdc9415f7fc3f16b1fef8", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2ebc0372de20817fb72dd042ee3e574241d399b6", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0e60d48bae391a4498520834fa606c5f122a75ed", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cb6ed4faa7aed8e72f40cbdbec477cc1333b86bd", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "c9906574c83dd3d152989c733819eb9f791df0de", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "dc755bca2ec376d006691ce2a72bb84d10c2e5ba", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e1a48ebe8c8b4c1e3b2a95125340e30bc6ee51e6", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "77b9a480f702f25f27ef8a804b2c9e179679ad6d", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "53a2e90bd350f75ec72b9be3d1bb7d7579b0eaae", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-algorithm.json ================================================ { "versions": [ { "git-tree": "de42a042a1a4f4d7a293ef7fcfaa802493ef72f0", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1914943089e8513af7f9245edd8f1ffec0ea984d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "3ee83dcfbe76d56a445af30c8475f7ceb92deb90", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ad439228ad08c78b1db8a59d33f36a53cb2da963", "version": "1.88.0", "port-version": 0 }, { "git-tree": "5fbb87958d9c33b5d6f53e63448f888655440619", "version": "1.87.0", "port-version": 0 }, { "git-tree": "16fe704598a261d9766b1d6eb3a483f468ab6cac", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f2849ae32efae29501cab88f2d61a5a53b88f923", "version": "1.85.0", "port-version": 1 }, { "git-tree": "289b704f6e8d17b2d63d1dcdd077eafe38b9c650", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9326163f3bf53ee625fa3b3183dc740085d9c949", "version": "1.84.0", "port-version": 1 }, { "git-tree": "1649f898d6dd9c8904fab6a7c1194a5c30bdb274", "version": "1.84.0", "port-version": 0 }, { "git-tree": "064c9bd0deddb764f57008b07c0d42af035c1a50", "version": "1.83.0", "port-version": 0 }, { "git-tree": "1fbb6d9a02e64aaa4c3f61605b2fac87f8dd8347", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6a184d48bcf1a89a12f66255625340ce9cbfda92", "version": "1.82.0", "port-version": 1 }, { "git-tree": "437bf58b244741d6ca3857cccf1b3cc937be2e4b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "a59b4c65c0a50339334a001172d62f06cd4daea7", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ff5b1a557135086639648326c695597a8ac45ed5", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3803741af505b81a5ac7c5bb75ea96280ee721b5", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bb8f387ba19a3fabe9d59398185263b6448ad028", "version": "1.80.0", "port-version": 1 }, { "git-tree": "449cdd984b8e373b02b3b5fe727520d2bbddc64f", "version": "1.80.0", "port-version": 0 }, { "git-tree": "20d7a665b493f8b9816d56125e83928e41dcaa98", "version": "1.79.0", "port-version": 0 }, { "git-tree": "eca5eb57117afd2c43e7f00ed6908dabb254b46e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "338f795a1e6d73ab25444f64fe7ba1d617128813", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b6ce23e02aaf8b595e852e9746677fa7f85819ca", "version": "1.76.0", "port-version": 0 }, { "git-tree": "c720beaff3f3325f63ed3c0d76bfce956e2d9442", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d89bcd64693c86a2721ac96a7184d06c0ea2e720", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "176da63bb34d5d5d244103f938f4c5acee267671", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9b5645315be80f6998ba7e76d0ac3dc3be5743e8", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "160e392c44f4ecae9d3fb796d1f55b7cd6f574f5", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "cbb4255f2568bd50392989d2da11c11b0ffde059", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "047689ce9696334a44323e3aa2b0ee5cadabb76e", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "b9d62e0bc21550e9d55fb216ebe6f010af92ba3b", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e28334868b9c5aba6b126d51edba9decb758c37d", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "48b43af95bc43e02edb114f0b544e5584ed57638", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-align.json ================================================ { "versions": [ { "git-tree": "4550a4c5a0044b02be49c57237ce386c795a1e6f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f72060d9d2f0e89f1c8fb7c926a2af53bb490fb3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "cdc40833d65b90a10f622786d747a1ad5c72ebd1", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4924c1722bfca24f9700837388bd5d9481695e2b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e68b618a2cd8faa62bdb7512b8fb9026f66bccab", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c8dc52b5f1feedf8b14e93d23d6d6e719d269c0e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "5177b06936c5fa8b9d9cec972047f877101a7df0", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0c748701339f94c1721d1bb574bb4afeaa77af9b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a492a368b76501283ed00e87cff092703e9efcdf", "version": "1.84.0", "port-version": 1 }, { "git-tree": "676ef901af2b5986c71fb85788ba0a08979bad8e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "6312ca6cedb77e48b123aa19e7ef98f5401b4020", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b1e1ddf5d00f6698be329c809d1a29e59742a7e2", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6dcfc6f69223f8fffff4c82db31be7495f17062d", "version": "1.82.0", "port-version": 1 }, { "git-tree": "be964fa6b68ed5d5cdcb97aa936a3cae0e1b9059", "version": "1.82.0", "port-version": 0 }, { "git-tree": "d6134309afc69966529d238e26b5d1efff320341", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0f7de99375f1b48ca38bc570a85873a72cfab890", "version": "1.81.0", "port-version": 1 }, { "git-tree": "fff992a9d9857495d4c8cae44ff8e961e6e33a01", "version": "1.81.0", "port-version": 0 }, { "git-tree": "22825c46826b39662752e10219af0c341c18d2e9", "version": "1.80.0", "port-version": 1 }, { "git-tree": "2ba43f3bf67d3825a663dbb55e6210525de2eafd", "version": "1.80.0", "port-version": 0 }, { "git-tree": "5bc0b7d28ff47bf04454dde5d3ab3eeed5a113b2", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1733cf10f4a598f29af7380a6b8226abdeeb3f75", "version": "1.78.0", "port-version": 0 }, { "git-tree": "5e733503d18c7e82478961e1155a40a95af0ab42", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b28cfbc210773962783f57f6526678f1085be471", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9f77d89d4c76cf998be2d4f15aa922e04f233f1c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b65eace9d2a5a9e298da6abd40633df2ba46b1a8", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "69bd6d3868596f19f979c61cc518f323a997b9c7", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c07aae49296c7c1f08bd8b02e170fc33891d55c7", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "09b5fa93236762ff898b0b44445699887d78cc20", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "c7d72a5dcd40e19dd8f30b1ea3dab4eb5e21dd31", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "fc272586f6caf54a8752c73f92b09eb4b75ba59b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e6e410db21abed895f60babfd235ccd35d186ae1", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8f3177dceea4f3ae2c29b83fc6bc9ff9f974b767", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "fc9baf9d5614a9f460b2abad0eab46f7db130829", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-any.json ================================================ { "versions": [ { "git-tree": "259c8ba50d5bd0f0bd67dbb309dd40477689c666", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d64802288fef23b10a6b06fbfbc984349af9d4d7", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ba54156d8c3e6d4e2ef7b6097cdda3024cd141be", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d58b4fbb3de4aa97fcbd4ddede97df239656d4e4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "81341a6ecccdec93c27185684834c1c79effcbcf", "version": "1.87.0", "port-version": 0 }, { "git-tree": "37d5382bc7d0432e6a8f2a0537c8b554d3afcd86", "version": "1.86.0", "port-version": 0 }, { "git-tree": "cf915208320fd17f20dfc1869b991f9f74668386", "version": "1.85.0", "port-version": 1 }, { "git-tree": "a2426759d8f50ced5428ec22680f7010f7476ae1", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0f30a88370b19a4e515c65ad0361345bdcd4218b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2f43ed76aaa6cda19c30e95260ad50cb779cf98c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "8995a49c0eb70b1e306323f70d79dc5b6343bd6b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "e1ee12b057e7762b98a5bd7fdd190480e1f51b0f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "798ddb57d8d3bb7a77e424cd5d60f88cc4e6bee7", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d24eb2359b8796ce2eef84f44b7315acf19b353c", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ef6ce48af997915c4ca3789d4d7f9a2bf11a36fe", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d22041ae24dd8b400c8cf333f9e585bf7ce5226d", "version": "1.81.0", "port-version": 1 }, { "git-tree": "1fb16b403522749afe6b8bf1b5ac5af6ede9c07b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "cf6b746793770d578a4efef646bf95e1b029932f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c702b79eb10c68b859be09c9aedbdb1533972ede", "version": "1.80.0", "port-version": 0 }, { "git-tree": "6382a90fffe32ec65147d579e28f05604eaeef46", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a28a3fd1ebf198563ae9e200dcf36f1fae3b1482", "version": "1.78.0", "port-version": 0 }, { "git-tree": "cf8bdfd2ce434a981620383dcc07d46c0a071ca1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "20631fecfd4ef3388bcaca6a3491d27b23bde42d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "c78437716768273f86dc2f9132d865a0f44a0971", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "8f13f67a837750f79e1b782e1ac3e35e26973f9e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "4f6a1fc711bdd94605a8f9d1e4e877e33c3fac87", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "68134dd58df425dc6e74d94d1a691402370006bc", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b080fd24eb6dd9182790060b2715de33f6a960ff", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0fb6e10a37900d07bca38b3b7152f79c2bcf9859", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "3e8417759ed1d22a1954d055d49d86fec3ed5ccc", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "a833cfc69ef4338fb9924cf6c740a3573a508626", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a845fa017dd11c5f284c52c51558d643dafdb3dc", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "33ffc0547d8b52cd92a0af12c481e5d8b6dbc59c", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-array.json ================================================ { "versions": [ { "git-tree": "99b577fa8df790296f132dd518aa92ba5b7efcaa", "version": "1.90.0", "port-version": 1 }, { "git-tree": "65f68bc3f074b190fcba18708c0a18049c53653b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "53a38d9df50a94549967fa8b7e47714c4d5761db", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ac9d6b735393768df04f6dafaf12d503cb133e6d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "f274e18afc3061867f5b6e0a2432bcb172523aa6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "6259bc62d2fa5980736b9365bb69fb242269b0e2", "version": "1.86.0", "port-version": 0 }, { "git-tree": "50b65644413603e808fcac7ac285cc2194269ae6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "887dfc0b92387a7232cb1479e19be910521233e8", "version": "1.85.0", "port-version": 0 }, { "git-tree": "958ca3b702a421bfab7eeca019b4f0c068ed67fc", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7feefc063119142cc2eaedfc11255fdfdaa2025a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "98d20d502bbd77d5a4312254bd47d83c55b4bbac", "version": "1.83.0", "port-version": 0 }, { "git-tree": "58b11354551eb994ef8636b3ade5447ae6524a3c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "8503faaf38485a913d4daf3efd2076b67bebdc0b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b26e79e8c3b69fb7111fe82632be1cca86440b65", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7f15966c717d1cdbf9efb62fdf83b39ef043fcff", "version": "1.81.0", "port-version": 2 }, { "git-tree": "01bb82658969e7891dda3acba6c73462da7cc5ca", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ed8cfc08cae0590e36e343c05c09fa1722e2305a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "f1bc925ca852177c963e12c5da7e8a0b49d51411", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d19880de99410f68c581fc1461458e502952c6d5", "version": "1.80.0", "port-version": 0 }, { "git-tree": "11a6869eb0c7b2efa3e92b2c36795ef9873c6537", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8278959d326c44d846d660462556ab48361054f9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "fb008cce0de1c6a34ac5222d03d7e1069d135dc4", "version": "1.77.0", "port-version": 0 }, { "git-tree": "bea67607788bd73e3c83b93848a507090f886b7c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5cc33df23211b2d4a2ed7b0b563140ddd74a7358", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "bd44c0793f910cfd8421c6689284084782426640", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3d0f10310e0895562576b582eeafcd5265cf3caf", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b97252c681d83ede6ae390c45e289c3f25265fc6", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "5ae8d7039eaff7005f55d50bd803cfba15bfe75a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d27628d9a0832fb99c3adb78cc1807b5e4ecd7ac", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "6e914ef7dbe4e53d9f0ce560b244b15527b5b3b3", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6a079c0d561c1cc583e4e28d598d0342e8b65a18", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b5def50edec8f2033f17ba1b1796cdca78346a1f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5a20baa7c5b08995b78ff4cb123206d08cb15e85", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-asio.json ================================================ { "versions": [ { "git-tree": "e4c4fe967cef11d0d93131367ab972f632731e56", "version": "1.90.0", "port-version": 1 }, { "git-tree": "97362c3dc2565b0f1d2feb15815b77b7d2ded03b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "0b9f4b3bcac4595f6591b88319cb8f69f5b1c47a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "923e111ca4b1138efb1b58499edf5f04797de72f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "05c6ddb5e69d7b3397822f72d7b582757e0f8dd7", "version": "1.87.0", "port-version": 1 }, { "git-tree": "44931d7a20103a76ed5b6c972d65b897ac1ccb4f", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ce757138eb7af2b214f21e2680814777b580b325", "version": "1.86.0", "port-version": 0 }, { "git-tree": "8a0e2f419238028eaac9481e8f10e0e7ca7278a1", "version": "1.85.0", "port-version": 2 }, { "git-tree": "9f984cdf6ddd375d34c0f67e007b451e515a942d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2119d50063f8eb4f65bf2a79aef1e3449865e5b0", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3e764cbc00a9d7c97dd27ed82146694433afb6a8", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7a9e250345837a2083dea856b1f4c74c4d664226", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0d4a6f6c528811c3c79ac046e738e5bab3db995f", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2ae81c27afef052cdab26f3bbadb1154905cfecc", "version": "1.82.0", "port-version": 3 }, { "git-tree": "12dc4325ca29b508676211dfadc95ff688a00395", "version": "1.82.0", "port-version": 2 }, { "git-tree": "8f22e5c36ac147808ab3acaa7782f590134ccbd3", "version": "1.82.0", "port-version": 1 }, { "git-tree": "78b9ee5bb522309c5cfbcba93332aeb5f386f199", "version": "1.82.0", "port-version": 0 }, { "git-tree": "44564a47bb01772ece30464d74f48603bc247c63", "version": "1.81.0", "port-version": 2 }, { "git-tree": "59b892b741d93356af3240175d8af5c4cd4b6270", "version": "1.81.0", "port-version": 1 }, { "git-tree": "02b74387f04c12ce55dac05765d0ef2d16e8602e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "95a00e0e4990c9e8179a705132ce53e5f928bbb6", "version": "1.80.0", "port-version": 2 }, { "git-tree": "5ee085e21ed4445f2cb442f39fd91c77f79a80e4", "version": "1.80.0", "port-version": 1 }, { "git-tree": "2879fa47cd2ac0abbd8ad8c1b38fa28605c45bee", "version": "1.80.0", "port-version": 0 }, { "git-tree": "39b1b86ce2c331ab31d001308b6a71fc6fbebf5c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2fcf35cb168a6a2aa56208a83fb71bfdf88672b6", "version": "1.78.0", "port-version": 0 }, { "git-tree": "9c5c591c857588b69354bf075019bc78ce4237bd", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c422367cb9f7a8de0fcbf1809e1a2cab1983bce9", "version": "1.76.0", "port-version": 0 }, { "git-tree": "43233c66944ac53a423bba45a46708a308d786e3", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "06479d413007b9c36b25b67276fea3b4d297a62d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "afcf84f3c1da251f42c2efa2507b6f727315b03e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3e50713661351f5e710f78832367be066507ace8", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "9a6beeb70a04892bca2119db641701ef9cece96c", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "e47eb6b1747ba6675826dcd315c350c1cd8a68d2", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e36d8d7f01e8b6a893f1ca5516df5f6b70908059", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "8c4d5979549147317924bf641fb2cb3a7a926469", "version-string": "1.71.0-1", "port-version": 0 }, { "git-tree": "8f730c9bf4fcc233ec5a43c5584c9694cc2f3916", "version-string": "1.70.0-2", "port-version": 0 }, { "git-tree": "976690d3279a285d3a688e55230b1713ff200d4f", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "1540dccd31812ea9ef217276cb7e5700eed486d9", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "72d6518ae8e319be7e4362b4e57bcc60b1f7d2f1", "version-string": "1.68.0-1", "port-version": 0 }, { "git-tree": "d7dace27d51c1a44a2c8e4f1449e5809a6602351", "version-string": "1.67.0-1", "port-version": 0 }, { "git-tree": "c2685d2878d579296d184012d65743fd8f776a2c", "version-string": "1.66.0-1", "port-version": 0 }, { "git-tree": "e620c595110e6dfaa4a88240ce6b20355f0543c5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-assert.json ================================================ { "versions": [ { "git-tree": "f19da0b4f88d3d556e5c68226ad29d19fb5512d5", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f2a43f826d93bef81036dcba6f617ec5b937b477", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4b40db7ad8e6420b04da87e8266e5eca7c3c059f", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d6e23ac8a35da1fa74839bde3a863d279a6059a3", "version": "1.88.0", "port-version": 0 }, { "git-tree": "82ba984fd01dc6d68d95f53429b831d9374c91be", "version": "1.87.0", "port-version": 0 }, { "git-tree": "89ff4d2e2e735c492f4f186ef5d08c27a33af0b7", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a776f9bcec97f99c681858373363b6c973deecff", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2720690553c459c12a23f54451fe9c9f1d96164c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "b9afa13b4b7930bf99e4d262254888d79f083eed", "version": "1.84.0", "port-version": 1 }, { "git-tree": "fe832ada2e45a096248738b11897f54498df72e2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "058c55df927f8a8180003c576bb4b536a46cf3e8", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9ab1404e2abab757e8c136c9fcd89fbca14e3696", "version": "1.82.0", "port-version": 2 }, { "git-tree": "f07d2980139502309087821ca9a78a9a43a766ec", "version": "1.82.0", "port-version": 1 }, { "git-tree": "fb48cd65e86476285b8968bf3d74c949b5c0f8bd", "version": "1.82.0", "port-version": 0 }, { "git-tree": "024f6e2d8aa74bc6987f101ccd02bbe47dedde8c", "version": "1.81.0", "port-version": 2 }, { "git-tree": "c8c9b66c00a61685b0fbb047139fe857e10a8d08", "version": "1.81.0", "port-version": 1 }, { "git-tree": "1dd5ab3583732731c85df206015e6943a0824a27", "version": "1.81.0", "port-version": 0 }, { "git-tree": "6a21b125be748deb6421054f1293be675a1dcd0f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "6725be5e5074efec28c39594ca05acccc6f00389", "version": "1.80.0", "port-version": 0 }, { "git-tree": "2e4adae40df44f3927978bba397b60f18ad8e919", "version": "1.79.0", "port-version": 0 }, { "git-tree": "81b29f057d38140b3d812094999772d2d5263d4e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "db6b88ce332c6752f87f8f0c098a832e23610303", "version": "1.77.0", "port-version": 0 }, { "git-tree": "d756c428b49e3aed8ce71c1d0b946426e929ef8a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "3393715b4ebe30fe1c3b68acf7f84363e611f156", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c52a60adb19dab70d7a42243d0039e675636b320", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "af7d1f9f7cc7833920bcd8bbac4374ea9783fa27", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "6754398591f48435b28014ca0d60e5375a4c04d1", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "19af4f81da14dcc3a10204bbad1137b72bbd583d", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "c15b043ae043bc75504501011ecbb7ad572993d5", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8c4b239444789a6989049a561a3ea8db1f48f922", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "9d4646a6f8b42cd5654efb937647138d6a6d09b6", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "9d040cab6a01efc5c9dfbbf51247c7813eafc897", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "51b832c056165ab81038f049e5a3f763043b194b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-assign.json ================================================ { "versions": [ { "git-tree": "0035ae048a1c742c4cf07279d671a61fdd2c4233", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f1068ed1792a7ca9441c131911bdc2b0f09ef3b0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "fa57ecc814f9ba636e9734f1c635ea12663a9b31", "version": "1.89.0", "port-version": 0 }, { "git-tree": "e1ae89aa9345ef26f7d6f608339be37a4ab512c5", "version": "1.88.0", "port-version": 0 }, { "git-tree": "ef802f2ce173f84929b2a0c47f59052a6d0761f6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "bbc14db5ba67af01c1ed5cfef0205540e008b51b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "0874b3b14afb59a82337dcc883430d5e3d641353", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d1f0076acfe68b86b8cd31249bc0dc7ce5d18c0e", "version": "1.85.0", "port-version": 0 }, { "git-tree": "50322445fbbcd27c101aca5848869c527237b8db", "version": "1.84.0", "port-version": 1 }, { "git-tree": "5bdd9000a8f91de7ab9d340670f5138c94d7456a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9ba196ef5fe0c4127c48503b32b1107c3d2575e6", "version": "1.83.0", "port-version": 0 }, { "git-tree": "393709d7b07cf6b886f9491aff50cbf1338ec6ce", "version": "1.82.0", "port-version": 2 }, { "git-tree": "cd60150bd194b26b188ecb47675c1ab7963049d1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "e76da275d1922ac8cfc93970005a446c1dba3c3b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "10372dc236c7754a077115666833b658c739ab59", "version": "1.81.0", "port-version": 2 }, { "git-tree": "f6bd27244f5a9b565e63938e2c0b36b5feeba6ff", "version": "1.81.0", "port-version": 1 }, { "git-tree": "dcd3f4137d7f3debcffa8516f343c776e347d711", "version": "1.81.0", "port-version": 0 }, { "git-tree": "39a18577662b5babbdc30b9f976e6485f09a4d69", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d4ca8465c21f725287f49640fff191431b14d6d7", "version": "1.80.0", "port-version": 0 }, { "git-tree": "755ca06375958012e688e91d8ad79c40b20b91df", "version": "1.79.0", "port-version": 0 }, { "git-tree": "cb2a0606569a77b0de8264bd55d015698f413dd7", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c7c391576a6f9714453c28f6b73ddcb3c7439827", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b026e0722c90b595f8125caab74275b68dcd81f9", "version": "1.76.0", "port-version": 0 }, { "git-tree": "593134d9603cdcd0232608aea11c4969df7f5b1f", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c5719c39013cff915d04188ed303d58a661b7d70", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "e660b231334f1e8c9bef6e76e469591766798034", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5bc1de2c6a4546617aafea575e6f46f1f0d8dc33", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "9c04d48b4379b4a2ff84a41547ce0f487d6ca906", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "39cc9ab15940475ef8d3ca13e5809f502f956f2c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9036e3fdcf5ec728362794dabb744c831c53f57b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7b04ec83d57b909f329a8bdebe74fe2b68fa1af3", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "edffce8092141c444c5151c354fd21361157fa98", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3f087c838fb1eec9cbc0c6dfaa289efafd0a1de4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-atomic.json ================================================ { "versions": [ { "git-tree": "cd339bff445063affa1973b10ce0d05e9e0bde25", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b0b57c728146ff3ebaae758a8edf03213e5cfc92", "version": "1.90.0", "port-version": 0 }, { "git-tree": "58dc025910708f8ce014d3a23b957de3dffa22bb", "version": "1.89.0", "port-version": 0 }, { "git-tree": "9b2f531f06494c18e7aea107338d1ebcd986208f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "604e592bcd79c781d31b61016047c9902a8f6856", "version": "1.87.0", "port-version": 1 }, { "git-tree": "1911b3ba2efb61075b17787cbd2413442c1cf3ba", "version": "1.87.0", "port-version": 0 }, { "git-tree": "dfeaafc296d789022fbb8cccbac524ddb130175b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "0a757df91e9d53d76896bfcb5de135e584211d83", "version": "1.85.0", "port-version": 1 }, { "git-tree": "98b9c0f27deafd4cb4a361c0836368cc6f4025a1", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ac4c6e568ba0f62a5fb9bf729de5b636145e1c11", "version": "1.84.0", "port-version": 1 }, { "git-tree": "d599f640fca933cace45c60f6b5967f4230c4f84", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c51cf6bc71c21154cca513d51d62a8f31ad3dd81", "version": "1.83.0", "port-version": 0 }, { "git-tree": "05f82c6b7fe3a31ffb4f16f25eb98473131f201a", "version": "1.82.0", "port-version": 3 }, { "git-tree": "4cd58a1ad5ec2c381440b733e3799368df678b49", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ed19c1a3b7f57d00917b260e35cd662b28c1f6eb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d79273e42045876ab4d660b653b45c714ad54651", "version": "1.82.0", "port-version": 0 }, { "git-tree": "cd00fc6028c5c49704962f17ea74c9e0c0bad930", "version": "1.81.0", "port-version": 2 }, { "git-tree": "955184e1fc15d7cc95c2d8e2e84ef8189bff553f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "2dfcadc05c238fe301801e1b41d14ea6d8f4a9bf", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d5d96b1e0077d3b92de462eff308f45327774bb5", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7981a7b10701edd0230d2aac6a058c5ba02f4acc", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ba96ddc357592c3644f666fbc68d052ad3f0f397", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f516c90064f41a11fe7627ab6a8ac281455f55cc", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c5f02ea8b6555b20b6cc8901bdae9e9628086640", "version": "1.77.0", "port-version": 0 }, { "git-tree": "cfe27152cb82633d279f5c55b3eb9ba3b454e23e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b0eb6bd0f609a494f58910e9f5c640144d5f8890", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "4a0c37b7c48d8ca93df2c83b8bda9f8256f63513", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b5d964f865b163273f26f176b55b2fe9681f50b4", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "df43a48b5d3a1d0398623be79069d6d7a0033573", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c11ae99a61b31eb7b4af415eee74fcd1af694db0", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "fdae922070632ca60b0e3b3e7b35c0ec302a0b14", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "7fbd1f36be3b3af96dfc4521fa0f0f4f3b518ed4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "ce6a2fd5e15e6d0eee4645a20da85a6ab41b186d", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "f341ae516b70d185b82dd9f306ca130fbb490ad4", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "6ea50a53f5359ca089e75f77fc4b9d46de5191fb", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "db1fbe5d1f4641922f8e2a4225112116f11bc3af", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-beast.json ================================================ { "versions": [ { "git-tree": "4756e4745a076cb274568d3d64cb41c78d9f05af", "version": "1.90.0", "port-version": 1 }, { "git-tree": "76532bea67e54ddee39aad5b21cda2d84f78d8af", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9889a76cc61dc17c1e5262079a7eadc6b1c3d1b8", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1928ac98dd3771b4210550c980e3cfc259d31a0f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "715a450277f5fddc04a828f087e47aabb61decf6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ce6db020fd6f96d0340dc88560cf05ac4c4402cc", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2e82d81298adbec0073463c56183acb7ca22c4ec", "version": "1.85.0", "port-version": 2 }, { "git-tree": "9c720df0ad88babb0d876d1e7bcc8c30d1acbb75", "version": "1.85.0", "port-version": 1 }, { "git-tree": "3aecf8eff147f9d314cd6178765c8e6c96fdb426", "version": "1.85.0", "port-version": 0 }, { "git-tree": "af410cf3f82eeaf8a6658b62e03b6a5496a0af27", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4081838367ea27df0e58bb626e84c6637a5e0e97", "version": "1.84.0", "port-version": 0 }, { "git-tree": "cf5be95a5b8d706f46ad14f219b940a3fb0c3ef4", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6fdb6d58154d59554f7f6f3456f715f847dcdf12", "version": "1.82.0", "port-version": 2 }, { "git-tree": "f6a7a34fa0113b74cf593ce3786dc6ad108d779b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "5824f6d8e202c8763de70d7aad7855c705f16105", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f771fad1234461dfc02462569dba435c64bfa94e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e841cde73ad67e681301604236229c3889f929bd", "version": "1.81.0", "port-version": 1 }, { "git-tree": "bf34371dc0b7f566e27a2ed6f8d45d5b9335bb21", "version": "1.81.0", "port-version": 0 }, { "git-tree": "fb8695c5f671d7837dba09787e38d260a0410056", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f6ad5168ee3dfc5e23b7a47f2919de10b4070af6", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bb0a62ab1fd80ff0dd756ad89cbc367b2f7c6df0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5cb4b3da49532ceefefdb4465c74c3490f6c40f7", "version": "1.78.0", "port-version": 0 }, { "git-tree": "154d8664ca78bcee263cec7a297afe36a4877313", "version": "1.77.0", "port-version": 0 }, { "git-tree": "9d135f2fabb815ef2c643e71db48e227494aa3dd", "version": "1.76.0", "port-version": 0 }, { "git-tree": "cf5aa1fd8b53f127b259d919c0bbf4659d3196e0", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ce54cf1adba89aa745d0eac8c494ea813a3d5a3b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5c381f5f35e94e3a53f5d59ff18b8f26aa50e349", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "4343a247cb428a1b78b68779b6adfa983be25b65", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9c16d29f96479caa74ba595f380999fb699af91e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "4a770bc4000f070d01821d8ec1838a5af00ae39e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "6f1c53bceb4056846bfd31e5dd474d20a40b8237", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "e97b76d5d7f98483d8ae3e23be4feb6db16b7be8", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "eb6165654c32c389c0369f23ff6f52db585732cc", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "5dde2f28dcaa5246b97a895cb499e6000ed4625a", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "4bf27532cf1595733470b0e2f2e4b471275fed5f", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-bimap.json ================================================ { "versions": [ { "git-tree": "345e0b07d64fd23f0ae874f51b92bca1fa490684", "version": "1.90.0", "port-version": 1 }, { "git-tree": "a21921d75b084190ecb3ec7e58c55bfe094c529c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "bc55bd32d1266f5256e5aac99db3ed906e6f0675", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0d3e491a75368bdd5dc30ba3aee8830fa9504cf1", "version": "1.88.0", "port-version": 0 }, { "git-tree": "86968ce7b4d25f7c53994891a0761d7238844e4c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "579f4ea7cd9bcce4912db8d7aaf43aa1bcea5cf4", "version": "1.86.0", "port-version": 0 }, { "git-tree": "40c4f7b8f3fcdbc13c7ad8f012a3a42b0c44c455", "version": "1.85.0", "port-version": 2 }, { "git-tree": "46d6c44c0d8bdcc59ba9089290d900b9e8ab4fc8", "version": "1.85.0", "port-version": 1 }, { "git-tree": "71a781256d83b82355e66ed4bc403fac3960ff64", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9fe545ac57062447a0b78dc8192602bc97eb1fe9", "version": "1.84.0", "port-version": 1 }, { "git-tree": "91d9529e404f5ad80f0b021787c224a558ecc2b3", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0c07fcb928615b411a23ca3676e62494c3304f31", "version": "1.83.0", "port-version": 0 }, { "git-tree": "630d6888f373108130d81a96b7a406387f8cd96f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "de17313ae17a0044043195c76fd61a75854d4f0d", "version": "1.82.0", "port-version": 1 }, { "git-tree": "5fbb607f180c58dc6fa488e089d5e6d645eae75f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f4ca69ca926a9481dd59582c5fce575685a708eb", "version": "1.81.0", "port-version": 2 }, { "git-tree": "54e42dca3e699cf7080abdb0d39c3810086639ec", "version": "1.81.0", "port-version": 1 }, { "git-tree": "9fd02b9a62527744b1b2fdc5414bf19393388ce1", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7dd8b2fdefbd75a34020e668f407f3d01530f1c8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c94058be2a3f7dd8a6b7b4999be4ca799c415249", "version": "1.80.0", "port-version": 0 }, { "git-tree": "4bad70254f12ab9642e3ee96980d834a485af5e9", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d376fb04582a3ca0b6d14f991ae05965c7d0961a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "726aaa86124fd8d1658f0813902b8bf9b27bb707", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2a01b028c11f40a89e1f0157f97e866ed4d53046", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ca2e28851246c3fcbba2e8c5b36ba2b1e43587a7", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "070dcbecc7424d9777c9c94397e22975c7af9319", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "eaa15dae5f8c4ad5bea8312d9d2c3747427600c6", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "fd928fbeccf53880cba623ecfae968943aabfa88", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c44b8b94b80f0162d84cb4fdb2fa15a15acf5c0d", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "dbdd1f50e9b40d31ef700d68e4d6756e068123e0", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "1d714be52c5d0b421fc19a58200c252c885e84de", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "44a0b3fbb3ca6549e00f733c9ca64600f26613f5", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "f375a908d3bb0633b7758ea359fc6b47ecd9d007", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "98e89f9b3156cd060f0c2be0764e17c39a9aa05b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-bind.json ================================================ { "versions": [ { "git-tree": "64a915580ea3acee2702b8b4fd06d8c41b34166b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "7e9ab486a9ccd4a6e4e81438bbbb81b22753e9ef", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b2fdb396a7064165de3c60c4da30dffd751f82e2", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a15c751451e95db5247d6cfb51087fdc9d4c358d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "df485ff721084787adfea9d99a3ed7f8019b8bd8", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4779d27870e250fbe6fc8b7a05d911cacb8aae60", "version": "1.86.0", "port-version": 0 }, { "git-tree": "111429d845df26d20305f3d7da0286840f2ab06a", "version": "1.85.0", "port-version": 1 }, { "git-tree": "3ef8c61e78989d8c9b7e57e63e23a4291822b0a3", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d4571ed0cebb116ed898cab16fa3e91bc459f1da", "version": "1.84.0", "port-version": 1 }, { "git-tree": "5c28cd6fd3a92cac6eda977ec133bf611665c7c4", "version": "1.84.0", "port-version": 0 }, { "git-tree": "b846d10f5df5d2d6f27bd2fe13170cf3c09d8cbf", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9c07d5ea417668fe7606ace4749f1577c7c2a8c1", "version": "1.82.0", "port-version": 2 }, { "git-tree": "1d9372948d3c0fe1da8965e76ded151513f16a52", "version": "1.82.0", "port-version": 1 }, { "git-tree": "97f32a43b457e26b8ee223c6c7201c995541d149", "version": "1.82.0", "port-version": 0 }, { "git-tree": "76811578923b601d64f43e851c91ac540982caa5", "version": "1.81.0", "port-version": 2 }, { "git-tree": "21ced38c9fad583804902a5379ede3cec060d0e3", "version": "1.81.0", "port-version": 1 }, { "git-tree": "47ec6c92a9da2049d3d9541f81aad9b82fddf140", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e599d532e37607322d8f2b7167469ffd197b9b5d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8d42f0055a3147df3268da26432a64580f9bdbea", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c27b66c8e195ce97685c409c0821f907bae83d80", "version": "1.79.0", "port-version": 0 }, { "git-tree": "165c77e05b1d413a600f66135276ba7e727ebc35", "version": "1.78.0", "port-version": 0 }, { "git-tree": "a1764edb5aaa4cf532e6e2d60d56420240dec410", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7e622ce41f16af974c759e51dd9a250b054b3a71", "version": "1.76.0", "port-version": 0 }, { "git-tree": "110fc6710128cce06256143e5c2df83bf3060a42", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5a9391097dd5644a6b902c54d86a394719dbfb37", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "65a63dc4317fcd9402caf3311dcb45bf850cecc1", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0e96cc4cb23ad980a1674dc1b4e029c24f7b4a47", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c1da8316d401da955e5a128322ae35d941082dc2", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "6cab60787204287b8b9f3303c35e64ac33cd4496", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c98fccdb43cbe8eb529413b5e16a7e2701224d13", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "63f7d8110fef3b12fc29428e12d23f4c1802f11d", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "1b75e5fd76c80a828177c37881a98afb53d6a6c8", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "93cc104912be8400a1128b24152c6e202929f11d", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-bloom.json ================================================ { "versions": [ { "git-tree": "7ce5353769164f5f64979c306f871244ed4426e6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4d8df5522f59fedcc0bdfad4d356f3d2c8d98bda", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ec94372567d4adbf5cc3f8f85842fcec3478707b", "version": "1.89.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-build.json ================================================ { "versions": [ { "git-tree": "8166689b28b31a7d4977f3d3d70971ca502bfe33", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2e3a92d564a7ee5c32f8cbb1d1a8e8b0d9111398", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8eb967619551fe991b7126f7d1b0ecfc908b4f0b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5a8eb07908fa729700e97803d27f4ca64a027294", "version": "1.88.0", "port-version": 0 }, { "git-tree": "77ac781ba7771fb9280363091fd3253457ddcefe", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0f2bae8e3128c32b1f2f0f8468172c6770e7af6f", "version": "1.86.0", "port-version": 1 }, { "git-tree": "5f1689cbb071cca699dd364a1e1162e5db66f08f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d3e9d9e7c1511a3f6b18237e12b697c8d1685100", "version": "1.85.0", "port-version": 2 }, { "git-tree": "930bab4ff65933cb98b0f8205340ac192e5a97fb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5c7db1bd5cd38bbda8442ed052033f8586052344", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3018c02ffb8dabb1e732402bdec61efac660cdc2", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b23026b68d2bb711b73afd419b917a67f98677ad", "version": "1.84.0", "port-version": 0 }, { "git-tree": "bd9d972c221f9e5bdd839246960791cdcfe80524", "version": "1.83.0", "port-version": 0 }, { "git-tree": "c9cbed98f75a402e9f61689754e78e237f44988e", "version": "1.82.0", "port-version": 2 }, { "git-tree": "9d4a35930b7414144551dc9c2e00b31bcb0ca8b2", "version": "1.82.0", "port-version": 1 }, { "git-tree": "cf70df3193d092c65a4b3728a5410f59e9de1c9d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "17ed662b7ab56c9dd93973417f6cedf6f6aeb55d", "version": "1.81.0", "port-version": 3 }, { "git-tree": "40cd5234db2baf10fb0a2b0ec8b40771910ca045", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e4e7001fc4602b7fc61c55acf2c3b641e79c7de7", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ab595277c7760bf665a75b6122ee69330992ac3b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "f09a642cf310a83696849a628942cb40cbbbb75d", "version": "1.80.0", "port-version": 2 }, { "git-tree": "ec5ac2fde8a696a243092c4039f4b34b68091859", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8b95798b4e7cc7d6697ff1eecc9261ba5d884828", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a5ddae928a30fbcc9d5cb01906a7ee846b1b6c62", "version": "1.79.0", "port-version": 1 }, { "git-tree": "ba4fbdacb5988e8f753bf2098ec257453c50a27a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "cf970c17a4bf6d59deff7ce7e7eb98cec74b544a", "version": "1.78.0", "port-version": 1 }, { "git-tree": "2c0d3c35e95f99911a226c3e736c0988f1139e51", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d12d4a6f44a7356c4262b27adcda834fe893b576", "version-string": "1.77.0", "port-version": 0 }, { "git-tree": "8e84097fbdf78eb6220bb0bb7c63addefb6301d9", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "f6c7fe38fdff5e1a5d4ffe9e9fbc7efe0f7e01d3", "version-string": "1.75.0.beta1", "port-version": 1 }, { "git-tree": "bce0d26494d48d983b9b0e552e661f2d0dd36074", "version-string": "1.75.0.beta1", "port-version": 0 }, { "git-tree": "727c3400fff7c138685446c6f376211b4f5eca27", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "60c33b1ff1ce49acd675eab581ea75b2c47b3e1d", "version-string": "1.73.0", "port-version": 4 }, { "git-tree": "2d6e98097126d9260a67301b0f6d216aafc7373f", "version-string": "1.73.0", "port-version": 3 }, { "git-tree": "76e980f33124dd0d7b59aa3b46715dd0451baff2", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "9e4a505b1b099566aba67e432117597106eb55bb", "version-string": "1.73.0-1", "port-version": 0 }, { "git-tree": "7adce9cc7f1895945d50e62fbc4931d7c9eac653", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "fd5a7cbab5f0950a8837faf3274349438fdf16a0", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "71dd8bdd4d6cccbfb313df02c5b91f1708591f39", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "c8d848cca27ce0684091f6172f239010d691ef03", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "98d3243a531892e9b8364f7b5ebd22026a615bbf", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "a9f1262d1f02144c7e2679971079d2ca7996eaf6", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c97cb58d831d637ef85e3dbd0f0c852fd573a5d1", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8ab758023950242c3eba841c57bf898b9cfd03d3", "version-string": "1.66.0-8", "port-version": 0 }, { "git-tree": "b89da20a42524a47cabacc4f3958cdba993177e5", "version-string": "1.66.0-5", "port-version": 0 }, { "git-tree": "f95779327492afdf6e54a6100abef5f2a14f5914", "version-string": "1.66.0-4", "port-version": 0 }, { "git-tree": "b2a0b243604ddd018ed13999a4f3f5a9b6b73be6", "version-string": "1.66.0-3", "port-version": 0 }, { "git-tree": "d83e7a452b8eb80d9bc0c88db6ea6a508ea0fa2a", "version-string": "1.66.0-2", "port-version": 0 }, { "git-tree": "1d84503651e93f119b56c6729f6d10d586d181ed", "version-string": "1.66.0-1", "port-version": 0 }, { "git-tree": "b7f6d8a9687e18b558f9902a2f732f4f7ea19e9b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-callable-traits.json ================================================ { "versions": [ { "git-tree": "4a87c51eee4bdc0f385a3b9596f8d5be133081ca", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d1b4acc1d150d255346a262f7a755d6e8cd5cabf", "version": "1.90.0", "port-version": 0 }, { "git-tree": "2100d282cb7bce967f4bd2070b65eba4aa4ee806", "version": "1.89.0", "port-version": 0 }, { "git-tree": "15df6e4e0691c81614b7164f28e1461dcb633182", "version": "1.88.0", "port-version": 0 }, { "git-tree": "acab49ae7c954c3dd99cd1a58aa0695a0aef6abb", "version": "1.87.0", "port-version": 0 }, { "git-tree": "71d32d66d2ecffa25d7885b03396edc85914526d", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f73505c7579aa77522ac4bdccff845aa2f58fd9d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c57f091a107c75c38ed287e733572142b5b3b6ae", "version": "1.85.0", "port-version": 0 }, { "git-tree": "604a8d6eb66a32ba5e233d50e3231196e181e3b3", "version": "1.84.0", "port-version": 1 }, { "git-tree": "50f3c519d696856ff1b096e8ac2428d737304d0d", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0558d1c063b8c2137f5e44644bc4c47180f30da1", "version": "1.83.0", "port-version": 0 }, { "git-tree": "3d9d1716d512c7c972cf109e2d27a3c3cf4f0054", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7d252dc8bb4e187e63ea76041f922a308a5b3705", "version": "1.82.0", "port-version": 1 }, { "git-tree": "58534b65547e8c89e93ce1ba96016c6bc3ebe186", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c46d137a8dde5ba4966af64695f479ce54bd37ff", "version": "1.81.0", "port-version": 2 }, { "git-tree": "fcd3a47efd5a4114595d33f97dfe7e5e74e1a818", "version": "1.81.0", "port-version": 1 }, { "git-tree": "72686104a46bf88de1db1c2d941656f6224782f3", "version": "1.81.0", "port-version": 0 }, { "git-tree": "3b8d10d87259e5b3038dee8fb55f101387c0f0f8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f830b72c86e472095ce7c2f86b56e8a4ef8b0585", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b3fb5022c86bf300e6a55e8ecef2ba41e9f6a39a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c65c1b67763ed69490e43430bc860493ccc19274", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6c22b4049665b95038b8f5d1e1952434f1387f7c", "version": "1.77.0", "port-version": 0 }, { "git-tree": "61e468bd018412606e863d2b43d9b01c54205ba8", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7f76365f342942ba11c0c1352434d980dc905f13", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a9680f87166c2c0f05400f323b51189240d4f21d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "135048bd0ce2c6ec9341109ed4b56f38f61a9dea", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0ee3af44715fc30b9072ff39a4bd73ac1b60ff21", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "16fcdb42ec27af3cae676c9572ab23c4f8edd06a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "76f1d85cd9cdd09c5bab78bc72f708f3c5fa4eff", "version-string": "2.3.2", "port-version": 0 }, { "git-tree": "c132abcab0025075459d8200e776223c627b43e8", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f0c7df368f22ff112b99bbcfe1923cbbc9b82b36", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d1a91d13ebc508fc0f5a17664431df4860340158", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "158b00daf144ae9888cce40de2d25b1a2712ae7c", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "6b95b527e8e5a1caccad0b52edc98bbd5ad4c5c6", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-charconv.json ================================================ { "versions": [ { "git-tree": "fa144eb505ca06613dd665dcbda1524e1486912f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "639532e546d2737974aea4c2b61123a06bfc62e3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1c12ad423a784397f5d7b7d335d362d187ae93f8", "version": "1.89.0", "port-version": 0 }, { "git-tree": "859e7bb591f69fe28ee2ce640a341c3be30075c9", "version": "1.88.0", "port-version": 1 }, { "git-tree": "774cea931cf10e80061780d8467e7ea5f494ca03", "version": "1.88.0", "port-version": 0 }, { "git-tree": "cf8b691ce9d2b1775918c60c3b7e8f250170bad0", "version": "1.87.0", "port-version": 0 }, { "git-tree": "36a282b1f3cf5b22dfa824edbb3eca619bba5f0a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6d572b7aaf1c9642d35a39de8a2e00e82f6864fb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2c7c2e5515fbf77cf05534fd6344311b33114522", "version": "1.85.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-chrono.json ================================================ { "versions": [ { "git-tree": "ebb7be768b973a0a6a3e116c3231c429356d5f8e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b57e0fb3cfd43c83842f09a110d4de9cd62ee75c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "418cebde300c0e64b012b150c6f4a5397a92a944", "version": "1.89.0", "port-version": 0 }, { "git-tree": "bb43f877d11b220cf9156794ba14b203a97c5233", "version": "1.88.0", "port-version": 0 }, { "git-tree": "2f7531fb96d8f2e23d73aabefa1c8c092590996a", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8373424c8cf90f280e6e32733db56fc23d4a3b58", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1a5c48c89a8c669e89a60965eb2031812435f2a9", "version": "1.85.0", "port-version": 1 }, { "git-tree": "e6767fb8800ff117606a75e474255bff566f8eef", "version": "1.85.0", "port-version": 0 }, { "git-tree": "381c6b1335f287f9267b2029fe70dc6942fc38ef", "version": "1.84.0", "port-version": 1 }, { "git-tree": "8e71f32f08e2a8e74687c85beaa5d6aaa4753c03", "version": "1.84.0", "port-version": 0 }, { "git-tree": "b291334ee942d090c037f8ce5cb53874af9f3f8a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6e35fba1cfd226e9ae4e4a4b54a5b88c4103e440", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6e550f08c345804346e807206cff87fbb07689c1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c9471308173e215c8fb471c891366bf8b8c05a48", "version": "1.82.0", "port-version": 0 }, { "git-tree": "cf0809f1dc32b08b842bea5df43136c7de0207d7", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ce24028a0a84e6a89a7b4c8b3d900a326122aa55", "version": "1.81.0", "port-version": 1 }, { "git-tree": "bf98d5514278154cccb38074cfb3f35cc4d9cb6a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ea2397905d6361f15dca29c4d550d0030fc513af", "version": "1.80.0", "port-version": 1 }, { "git-tree": "af0a6c6a5b473a08afeacfb8590bd4220129ed47", "version": "1.80.0", "port-version": 0 }, { "git-tree": "dd168284e43a057a5775444c07f11f99a96053c0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d08ea7bd6fb471393e10507f0b6d27d045868f3e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "f0143b4dd81e3de932ea886e69efd196452d81b3", "version": "1.77.0", "port-version": 0 }, { "git-tree": "9852214af239e8f5f34ba4299ac07b5e207f01da", "version": "1.76.0", "port-version": 0 }, { "git-tree": "23fe79b0d84dee32f51951fa275a5949e1188930", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "ab63f094dd2f18ed66be7513a412896cddf83a2d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4db91fd0fd0ac86a6ad9bed143d319715b4625d8", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "e432ac49efc4b6f3bdc79e1074dae8ac1232ca32", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e9780fbc28e70bb37521bdc544039e6d0ea21f0e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cdf23f284069eef2195519e94a15509ad3819c97", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "dd04b900019af0043d0e550f865856313dced71a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "5f131c619605fc5d37267e2761fae0fc52cc6b77", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ee07fabd3be87648f24b47047af1043f3bafbf4d", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "2f6f0e422e7dfc47e4202ca1ff6a83e6f4f35d76", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "209c9e52d5d04c140b63ff5dd36eaf5876592e44", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-circular-buffer.json ================================================ { "versions": [ { "git-tree": "339cdc881dadc38006b5e66049c982b17aa0a455", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e50d35a549e49dfbb7dc4094e77be5f1964fa508", "version": "1.90.0", "port-version": 0 }, { "git-tree": "cc2d97999e8b28a9940b4b5a349be4a5ea1a6a86", "version": "1.89.0", "port-version": 0 }, { "git-tree": "98bd9858a5dc6e01bad26df91cf86c9841d30d0e", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e530159daedd6b3c05f243d4533a86aef25aa4a6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ff8f90c793df3b01e22b86fbfbcdcc27e6f4715a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "9360cb5b837ee73c9cd18e9035459ae0806d8433", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c8538d2c00b780914a266f283a48960c2476c814", "version": "1.85.0", "port-version": 0 }, { "git-tree": "02bbc81f2bb6d5758d87010d3189f293227315f4", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0653ffae64a58892f055ef0e8d9af237295f7420", "version": "1.84.0", "port-version": 0 }, { "git-tree": "4df4c980c22d3b54856d81430343e6ce70a18521", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9a08e079bd1986adeb839ac17690dbd1b0c0cbf5", "version": "1.82.0", "port-version": 2 }, { "git-tree": "babfe7cd25186b48ed2ceab45108cf5fd1dfc6e4", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b98dd3e591b0859edcd04280b9b143899a1bb4ce", "version": "1.82.0", "port-version": 0 }, { "git-tree": "0b08a8a271bb97ed52ccb791286975dbd59a63c9", "version": "1.81.0", "port-version": 2 }, { "git-tree": "db72642037e7ceddc0f7a151d8128cb2a23753f2", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ab5e7d9a47aa011e6fbad65cdeb6cf7d2c27c02a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9eb14aa8f4e4ff2381d886468e5fda1603e96d31", "version": "1.80.0", "port-version": 1 }, { "git-tree": "bf70dc530094e3190c4d5cc945bb452807cc150b", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c8a97f3e2854ffb2064635bada5cfac2230a7590", "version": "1.79.0", "port-version": 0 }, { "git-tree": "239a4eff939919bbabf11914dbb656992e4e26ae", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6352fb4c9b9e30001311015e28e712e9a2ef4a33", "version": "1.77.0", "port-version": 0 }, { "git-tree": "bcf85566e4489a3d73496650c2ae9481ff3640ef", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b3714023e5d74d66c24ef7aad21acf08146cb200", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a363ba35a54953007e71a9b5a8b9502937e3463c", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "9be9ea26e4b2143aab087a9bc6e8bf0b74dd387a", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9118debfb3c75cec047c3d368ecb8f2aaae951b1", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "2da9399e3379be6168fec2f9a61b004fa27df964", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "01bdf72e07636610711a54286a413ee2432229fa", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "499ddf8c7e0952be418544105ce9da94b903b911", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "fd3e46ccab176fc064bd3fcd3f6c2d95534d2a14", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "13e1e09d210b64f4270ea6f7d688f3ac97174a3c", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3ffb910efc83c838b16090423e689b40aa3886e7", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-cmake.json ================================================ { "versions": [ { "git-tree": "cf623e2460b0e669701582bb4b4f7c2f58edab9c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "30e4115bc5d01e89a0d2e60fcb92fe9765c2a653", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8c7d8286875eac4b6e5995d63337cfd3e16d66ef", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1a36be4443ec1c0be66984a1e82914a5181b37b1", "version": "1.88.0", "port-version": 0 }, { "git-tree": "505ce95a9945e5733f94e90fc683c13b6f6b7457", "version": "1.87.0", "port-version": 0 }, { "git-tree": "453705350fbd0a8dbdbbdd06e8f368baa30b131b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2b1869c19b01257dc08348e1b29bcd7d5bad2fcc", "version": "1.85.0", "port-version": 2 }, { "git-tree": "bcc90538b973f6b057014619e8a4e4da05d1f690", "version": "1.85.0", "port-version": 1 }, { "git-tree": "bb385ffc8aa74989b8198a777f3181b3a209451a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "227c08b0d3181b3c10c9b27d6a9f0577a8f0a41c", "version": "1.84.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-cobalt.json ================================================ { "versions": [ { "git-tree": "4ba61ad986b3fede7214c8058163125df19a5bc1", "version": "1.90.0", "port-version": 1 }, { "git-tree": "78054299b64fc966b5e34c30ff54ba6239b45c12", "version": "1.90.0", "port-version": 0 }, { "git-tree": "df1bc91e2cfd2b4566067c5a725cc548a7eaaf5b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "82eaf555e3e7c48fe645828fe8e20726e23d04a4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d5d1dcab9fe0c1d261e288aa7ee4139525c176fa", "version": "1.87.0", "port-version": 1 }, { "git-tree": "3170096f0dad0549ba65a26d08bfb580927b2c33", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3195a6c18219720b8c98b5d449ff39b95535122e", "version": "1.86.0", "port-version": 1 }, { "git-tree": "d45758e6c62b46ef436df6cffe7803dfc3ba8f10", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2c39cef923bb54a5c8230dea5b7d72586f4d67ec", "version": "1.85.0", "port-version": 2 }, { "git-tree": "79da87d4b1e718b589d1c4b53f754f6a18269ef6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "f5d4f15b0602ade0da4106e5610163477821bfe5", "version": "1.85.0", "port-version": 0 }, { "git-tree": "23eb2f7dd921c76369a4a61fc44b45ecec144ed6", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b2b3e30a1a036742bcfb22766083cc1a4c0ceefc", "version": "1.84.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-compat.json ================================================ { "versions": [ { "git-tree": "ef77a1ff08e5d5f19e76584de47251ec9142aa24", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c44a54413d0e6b441b8d806a0881b522c4f92dc4", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ef6adfed187e3a2afcedb3496de7168056f33008", "version": "1.89.0", "port-version": 0 }, { "git-tree": "83621f514c2950756baa2deac824f0756ebc2ea4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "ccf18d14d7ef1f6bbcdf74b7f31985080333d5b9", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8fd908a39e31d22c5e3d6e935f8da02fa2706100", "version": "1.86.0", "port-version": 0 }, { "git-tree": "64e37b9d057642ada23b8aadbdbedab6c03c9f13", "version": "1.85.0", "port-version": 2 }, { "git-tree": "eb62a3431e3619ec4aee789a035f57146e6fd982", "version": "1.85.0", "port-version": 1 }, { "git-tree": "118e8b2d28c3e835117f3210636b5e9a91f72dc9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "db6f9fb9814337e62dd7fee4c3e63c3c5a1395d1", "version": "1.84.0", "port-version": 1 }, { "git-tree": "669244fa16e98132cd0141aabbd78516ba206fee", "version": "1.84.0", "port-version": 0 }, { "git-tree": "790894b29260c3cb8b2bd6be3bd2822e3118789e", "version": "1.83.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-compatibility.json ================================================ { "versions": [ { "git-tree": "759d9ee433d2de8f9178040dc4099e80375730d2", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d1389e94e2ff927075557301d5ab8dd85a9196c8", "version": "1.85.0", "port-version": 1 }, { "git-tree": "796d3ba09f347075474cd25e5ac516ff8d2c6b7b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "48e42c012d8a461115929ab19754a91eae9afb12", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b659e6ab02f5aa2ebfb395d9ba6e80b2c9497ad6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f503e07b29b61e3679b9efd9986ac64503808dea", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8e3c4c3602abf9d5417317f7461393eb801864cc", "version": "1.82.0", "port-version": 2 }, { "git-tree": "5af14050c2efc2528e61019b46813fb1fe2025bb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "694a9116ac59b0fb3f9e72a9608deb94e3168e84", "version": "1.82.0", "port-version": 0 }, { "git-tree": "6dc8c52f304e2ff5c4ad24da160a98bd01018c3e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "fff895af43cee929b859e91eb7a8e0a8a65457a4", "version": "1.81.0", "port-version": 1 }, { "git-tree": "bbec272ea3402129d75a9974113cd7248f5425d0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a5b998028a2b65289a32dab8998d8a0fe38d9a3f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f07e01ce42b7ea0cbecd1ee38ac2700e69a4457a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bddfe133f937df01c2a18b9fcbd078538c195715", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ee3bf146536f03c976c00fa704664f0576241f15", "version": "1.78.0", "port-version": 0 }, { "git-tree": "b2b4f365d9ee62baf2f0197bad774a679cb7449e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "06fb2597b509bc3d29528cb737c46db0ee09ecdc", "version": "1.76.0", "port-version": 0 }, { "git-tree": "cda5675366367789659c59aca65fc57d03c51deb", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a7812edda8e2159ecd422f18eaad6d2f0cb30346", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "59f8965026f47cd2849c90088405b3eee08d6c82", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9893ff3c554575bc712df4108a949e07b269f401", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "85c3b6d7f9c6ca662146e9800193a6424d8db9da", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3645b2c8207a79ab1af3336fadf9ce60f26fac82", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f21f62a1fb65e9761135d8816c820b31df3440ac", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "141c26d5ffa0ed3890f6c042dc47c33a7c65e564", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "5b7956d33159d2758ac93a3a57f57369ce8c45ca", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "dceaba2b169f994a4e99111c9d116c94c6fcbdbc", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-compute.json ================================================ { "versions": [ { "git-tree": "90e906919db39ecf72c3cc01fafdf54f88183966", "version": "1.90.0", "port-version": 1 }, { "git-tree": "9fc50f04866bafcaf187b410b20a6a84905fe73c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5f0f426d2066aff70041553f71e94e2ab461ac01", "version": "1.89.0", "port-version": 0 }, { "git-tree": "7865676d2afdb8e54c20e59363b286fe97a8f372", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d5075be2df77fd3d932093384f1cc4a532cb89cf", "version": "1.87.0", "port-version": 1 }, { "git-tree": "86b245ffee801bbd8faf770139b8ae8676eeded2", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ead7c778e74b48670a3dac9426e98baff7abfb5f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d602b4b8f059394968d8a2f857c6a35bb8c0e6f6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6b7f7be08b3af6a47fd469f518a97c0d764a4646", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3f27db79eb5445f864bf4dccd95d496aee1c0bf3", "version": "1.84.0", "port-version": 1 }, { "git-tree": "e30139272ac79c1dd19e49319e5c9f791a225106", "version": "1.84.0", "port-version": 0 }, { "git-tree": "3e4c8cd7be193c46ac0e3633dd63b723dac6f363", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b303d9b14bc148147d90600791358321c8f95c3f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d6ce60d84f6a1da95496e017153a19ec2a425d63", "version": "1.82.0", "port-version": 1 }, { "git-tree": "e275a197f98ac8e99c9c602945f31b7c9bf5ff77", "version": "1.82.0", "port-version": 0 }, { "git-tree": "613c3b5b6833d8ff9e0076dd428dafebacd7ab1e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "70365e06e3920cb77a006bfe2a13588b798a7b5b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "0ca15b40e4e53c5374c120f6a674f64db8ca5df5", "version": "1.81.0", "port-version": 0 }, { "git-tree": "852afd7006bc3ef2b5e162c10e80dd788024e099", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4bc892c9f1c28371c4ff1f29b02b350e06dbc8b7", "version": "1.80.0", "port-version": 0 }, { "git-tree": "d4c84dc32e2d683a910deafe8df7631c36ee8195", "version": "1.79.0", "port-version": 0 }, { "git-tree": "02e813bc50d95bc901ba994faff7658f1ee5664b", "version": "1.78.0", "port-version": 0 }, { "git-tree": "3e134e562b5a454a46bf922f7633cdf581db7795", "version": "1.77.0", "port-version": 0 }, { "git-tree": "805aad1fd978317024fd94885e2cfde0b90af4ef", "version": "1.76.0", "port-version": 0 }, { "git-tree": "37841dcc219f46d503d6c8d6710e759583403020", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "0238cc1bd703254e03ae7cc4a608e230b140a21d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "a7f516597efbc2b0c69635eb07408320c709af3b", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "227af17d6242c305d1294bb57bd9998ec95c337c", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "6ec5b08fcdf83cb6dfae75a0309016ede6ce59d9", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "1a6d79a0666aac975d793b3f582e785e6c06f644", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "088f8118eebaa586edbd1b4be581abc230c1e4cd", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "8ca65a85a685d12959ee8f5d79d08c4ab98df2b3", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e8e6e437212bce0e2950e4281b5131386b410b51", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "9ebfe4d0db5bbc56a1668a4f43f70cedb1f2e0d5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-concept-check.json ================================================ { "versions": [ { "git-tree": "e1758b2a2a779dd3525e4b67b7311211c51c3235", "version": "1.90.0", "port-version": 1 }, { "git-tree": "a5ed8bacbdbe49ed83a4c27627d30428e9d9f7d4", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4f43e61a82b1e215fbea09fe321fb63b89d70ccf", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c0ca6d1964dab6ed90d303669d4b7f793984c51f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0a3ddd0539fd3000331ac43db3fd6c11d3338ff8", "version": "1.87.0", "port-version": 0 }, { "git-tree": "e55931d7c2bc2b33a2cf49d6ced511e2e209bdd2", "version": "1.86.0", "port-version": 0 }, { "git-tree": "837108f5652827b449bdfb5830891aba380293c3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "36c59f199a9c35fc69d4b1f6f57d580cb74e3172", "version": "1.85.0", "port-version": 0 }, { "git-tree": "b7f99270cf27840189f7ae63527a58d68da4e7b7", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f1658ec6a2ab024a4d4c741ee471c0db4344238b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "ec7a65ff7072399f9a926316cac0b1c6162d4ee5", "version": "1.83.0", "port-version": 0 }, { "git-tree": "e3db560953c33956f9ba0b19303f99e37d2c6486", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c266d37e02d494dcf4c3623bae07775c2a7baa45", "version": "1.82.0", "port-version": 1 }, { "git-tree": "776d22b1210657b1a1de2f93d7c3310881671cb3", "version": "1.82.0", "port-version": 0 }, { "git-tree": "9e3997ced53ed93bff12b273be6d8a0adc500960", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b1e5a4d7003cd321e1dc98f6b8212bbd8347cb3b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "7b49c13a3057bcda39894f046d9f7bd6b8dfb464", "version": "1.81.0", "port-version": 0 }, { "git-tree": "86d725b5f62ce91ca280310245072fa6a02b4e7f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0beb38f9779faecd886d454778c8824f2a1b6112", "version": "1.80.0", "port-version": 0 }, { "git-tree": "493a1b5ae991a9c7b2643e649329de16bcd0fa48", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d92ec4f75e3ca2046f7cc6bd42e394aa642dea7b", "version": "1.78.0", "port-version": 0 }, { "git-tree": "9bdfb3a9b14b35dc1833bc559226c7925096ff57", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b6c3818b3fbea8e53859becf5f7a80ab8e583a85", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5dc46166c76c1f47d2d6dd9ee3e2f5287b81fff0", "version-string": "1.75.0", "port-version": 2 }, { "git-tree": "ee8e9890d2909b5afc0ade5315cb3d4f49164539", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "d3dcbf8caf23130b9b3bdbe0f896d4db4b87e362", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "1e2aa4a271954658330692be62864abcb2758583", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ec5b225fdc18752612792c659575b7763ac5e716", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f126ad738a7460d171920e15862378e158e678d8", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a06d7260df33a445dc2aaed9416d40f9dc462edb", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "15721dd0909c768e8acaf2528a159c1722d003c9", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "a6d304fff5328aa1004287e42d9c43d49e8b3eb8", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "a2c0de8c906bc109a708cc104a62380a0c223e67", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "92a22ed3ecbd98835e2bcc347c4f667160a91f38", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3757144b365ffba55472095f5003e6f2e454ba04", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-config.json ================================================ { "versions": [ { "git-tree": "9fc9a7a35564377c7524631b5746bd77b1ff6bb3", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2dff2cd07d2a1c8c278a3cc222239a9a5057828a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "73499959016446ec7272976b0abaab1ed123c3c8", "version": "1.89.0", "port-version": 0 }, { "git-tree": "08220601e68293ce84acafc748856e45db90b6e0", "version": "1.88.0", "port-version": 0 }, { "git-tree": "2836a1f20087838a8254b7d6a4f91a59fe4fb53b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "762b2f284c48416310b5d05c4028716803ec2043", "version": "1.86.0", "port-version": 0 }, { "git-tree": "964bd95c86a98c1c8c5271b4a18e617869ce2348", "version": "1.85.0", "port-version": 1 }, { "git-tree": "9c454bf1a50c40d4025fe2ee6edc21720cf39c9e", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ef049fd9ff833c531a72fed45a272bb1cc52082b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "30ccc94aba0f43bf905a641c39e3cb991e882d30", "version": "1.84.0", "port-version": 0 }, { "git-tree": "26e9082aeb3829b11d9f0ea82de37db9a93b6620", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b4dcdf4527bb037a6b6d2973176e4a662c9853e6", "version": "1.82.0", "port-version": 2 }, { "git-tree": "af2f41ef14357f44466182d783e8cb218d677b1f", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ff890d416fce1b2c209ee4df8e773f0d285d0fb4", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f22c9c2d371b0d3bad68760622075512860f5379", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b26c88b8775e3a43b75f5d68f59a892c3a3788f9", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3eb9583e17a214cd100678291a6922b0fd7c04fa", "version": "1.81.0", "port-version": 0 }, { "git-tree": "06e5221e416ce5e62edb12d860e3174388cf40dc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "ca3f30a318dacc3dcab0250a9eeb37dc5b6b92a5", "version": "1.80.0", "port-version": 0 }, { "git-tree": "22c6532dcc9c24fd85febb93dc936e68c031043a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "b4958f142255c3aa14f1f39d04edcc12b6262745", "version": "1.78.0", "port-version": 0 }, { "git-tree": "0f7b70c02bfb43bbdc8f62bd49c8a5339a65f48c", "version": "1.77.0", "port-version": 2 }, { "git-tree": "6aa6932068c1fbc812d545502f60c3a7cef80dde", "version": "1.77.0", "port-version": 1 }, { "git-tree": "2a93a4c962b961f617c133389c18a994e3c27af1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "a840275c02416548a8fa29b9d6170cb0a6e14680", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ca82ca1b9c1739c91f3cf42c68cee56c896ae6bd", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "99ed244677f790e4e37c64183e4eb9de6055bce2", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ad92a28f8a25946b7d3e191c3511b4f62aed9757", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "de2784767046b06ec31eb718f10df512e51f2aad", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ad065cce471a1f0d58615ab98efecb7e2f974a6e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "a359a48043ba5944aed3790039e544ff3241b53a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "816f2e56828ccef2f277d252f74ed8c143628fe2", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "b63b19278c67a2cc752ff990108a758ebc050c03", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b0eb4dc6b84e5494cf53e9b27cdfe5e5eec83c9d", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "d186301b89d1c3f59fbdb76c3c994475763c9bbe", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-container-hash.json ================================================ { "versions": [ { "git-tree": "d6ceb8922b847316efbf724cb7df7c28e0e8282b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4fee5390dbb249baee0e8b2e27b8c726140fc50e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "f808bcb3fafb29847b0e7f07f78525e036eee56b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ea1718341f6ab05a1e8de70803f2217501121b22", "version": "1.88.0", "port-version": 0 }, { "git-tree": "26e7cbd4b49c70c51a0a8a99c6e97f894e238f44", "version": "1.87.0", "port-version": 0 }, { "git-tree": "2903e8d987be9e6c2d367298452cca9900f87f8e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "dea487fe4339749373fbbb3d67d38bc07f25fcd6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c61380aa9e806ea8b8a4995b416001696a6707d6", "version": "1.85.0", "port-version": 0 }, { "git-tree": "1f1ceeb7eb20da473c07c10cfbc04ec87eebf10c", "version": "1.84.0", "port-version": 1 }, { "git-tree": "72beb1a98959147c41efd1661e10c37827313511", "version": "1.84.0", "port-version": 0 }, { "git-tree": "058bb680534a2375ec78dd366d9969967bd7570e", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ce9e91e833ca8eb5ddb0a19df8eb7fa5c809359c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c5bde693ed8971a4e0ba6e22854386d4054898a8", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1e889b9b867df555de44167d6b1ffcb8cb050649", "version": "1.82.0", "port-version": 0 }, { "git-tree": "54f2c7dd6ccb8e6c7d1e64a0042f8126777e8bff", "version": "1.81.0", "port-version": 2 }, { "git-tree": "91ce55c2cc571fa3f7dbdffbf4e1fd57b7e87494", "version": "1.81.0", "port-version": 1 }, { "git-tree": "62e57f66409c7e8fbf94b2956ef45276a91a4205", "version": "1.81.0", "port-version": 0 }, { "git-tree": "83795f2025ec2205c4e6db55c4450426e62f2ea9", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8dc3bdcb7719958b2c449f9d0c5a4a1fee740638", "version": "1.80.0", "port-version": 0 }, { "git-tree": "09168c62619e569c7b6b2799aa39c361a1afff22", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5c9a0efa908886517e39510cffaebe78df8bac17", "version": "1.78.0", "port-version": 0 }, { "git-tree": "76c8d3c46db10b6774d6986822e53d1140934667", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b8f8aa1976367c2a674b1a8a91ec5e2ceee25a4c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "bf472c23d29c3d80b562c43471eb92cea998f372", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4d149c5e8ef36c49a6d1c46484f18747e3481e5d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c512f39250ff698934ae86f9a90f0c9d359dcb0f", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "cc19fb0154bbef188f309f49b2664ec7623b96b6", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "80e815f112ae43a6ea30b46aead116deb7f883bc", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "62baa61f7cbd880c109e3e0358062640c9d924a7", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "eb44887e0770904ffb1d833ab5906cf35ff61e46", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "223b957e4989a0c5ae06c224c2451f01e8947995", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "423887180c685c5ef8c33e487b4b4bd29db2ba5a", "version-string": "1.67.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-container.json ================================================ { "versions": [ { "git-tree": "da85edb36ed2090288b063745744026dd23db156", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1aec6f146d691257bc95dc7f11e29d8b9887a59d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "a84f02c4aec8fc8119e2a84a5a7667c14250829a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a229975f097e1c17a2d13161cf3cb3706525f62c", "version": "1.88.0", "port-version": 1 }, { "git-tree": "718d272c732f63acb5fd80814fc85563f171c735", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9ce8e6d6ddea731693f35c1f3d7f5a77b3826fbb", "version": "1.87.0", "port-version": 0 }, { "git-tree": "5a0b49ee85c27c39ef25631cfdbd5d3ad1149310", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b304461cda37cd06d1097cc5135c3eb178eb5036", "version": "1.85.0", "port-version": 1 }, { "git-tree": "1261ff9673aab60f032284e51aa4400a1fa88a6a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "edb632b789fcb0b5dde9f9d7f7b13524c788f855", "version": "1.84.0", "port-version": 1 }, { "git-tree": "ee15da00e28be69db05ea8b29e19b6a6fc6ca132", "version": "1.84.0", "port-version": 0 }, { "git-tree": "06dc49b47f365371fd98d0373e46369bb97056c8", "version": "1.83.0", "port-version": 0 }, { "git-tree": "7d7b26fb8d896742162db28bca0f3aa2c4bf5fa5", "version": "1.82.0", "port-version": 2 }, { "git-tree": "54ac399bdf18e9c6ab8c9df4d81df4bd86a547d9", "version": "1.82.0", "port-version": 1 }, { "git-tree": "66f4954b8b554a045b06e911054e8b83d5bcccce", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1034bcf6a037a9f630689ea7f993efcac839fe99", "version": "1.81.0", "port-version": 2 }, { "git-tree": "34ccff79d9762a9e50ba8707558e394fc62c04d7", "version": "1.81.0", "port-version": 1 }, { "git-tree": "a02bb7cd8d967dd14a8ecd2e502b2db42f935710", "version": "1.81.0", "port-version": 0 }, { "git-tree": "669c74604cc73bada702b35c5ae597428adb02d9", "version": "1.80.0", "port-version": 1 }, { "git-tree": "bacf967cd20a1da8f12491d458bd833194b5c8ff", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c29fd09bc12ad31bd796ba90682fcbd242090cc0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "cba0ae7cefffcca3cc1a0aec45ec07a66f6cc413", "version": "1.78.0", "port-version": 0 }, { "git-tree": "9af11f40e9b9fc2ebdda7e8885f9f49dea1923d7", "version": "1.77.0", "port-version": 0 }, { "git-tree": "d24b325327cadb5031964d839a0c89ca482d87ad", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5d351bf7c795d3dd8437d2beed167bd3cd66e10b", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "60816c8a5eebe510557d8f78f3a1686fadfdb783", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "afb906ffc02b952298fbcab8dbd1517d355360d8", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f4fe476cf131a0f6a9bb54e037ad660b27727fdb", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "07e488dac7c585c61c0ce206b432e0d62774947f", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "8e06814d564f94fd27d36dd7a41e9da1f43f6fd1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "63b0e947562a8bb6480e5a64ca046dc3d9c03c46", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "a8d170b330aab8af2d8e11d12eba27c2f9a48de9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "722fcbbbb26c4879575ffa9574f1546d4e58d574", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "089a0a64d6cd34bbbff00a9cdb4b5a4b8e809b34", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5693c508bbd09e12e34690c9c1b58c4b8a33a712", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-context.json ================================================ { "versions": [ { "git-tree": "a9330d5903f523d803dc65faa02b53ef4349e8c0", "version": "1.90.0", "port-version": 1 }, { "git-tree": "8c705e8acf87afb971678e50206c65dca9fccedc", "version": "1.90.0", "port-version": 0 }, { "git-tree": "36baeb259e307e7c9c8ce190cfe90a256b2ec94d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8d20de9b1b6f8a9a913d4b6356fd23fec0c906d6", "version": "1.88.0", "port-version": 0 }, { "git-tree": "41dfcdb2574b9d0f36ee932fabc31bf3f0499a99", "version": "1.87.0", "port-version": 1 }, { "git-tree": "62513688ab02a8ecd84aa7a7027d026a685c4151", "version": "1.87.0", "port-version": 0 }, { "git-tree": "306765f81ddde7b69509b45679f1ea40e61ee87e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "318b9cf0c7e496103c99b3293717a0e479e22276", "version": "1.85.0", "port-version": 1 }, { "git-tree": "1397a5da21d9696e3fa825482a56e78a021fcb82", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d4aa1ed767cb232a6167687327320c0140249ba4", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2c3c5db88cb7118fcde973914702e885cf53005d", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2c0ccde97a196bd6c78f0fbb52ae9c8b33a525b5", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b57cef3d65241ee8769759b0c4d4f54adea12f12", "version": "1.82.0", "port-version": 2 }, { "git-tree": "350b9696e8454d9121ffa7ad1c78d56cd378af58", "version": "1.82.0", "port-version": 1 }, { "git-tree": "6a382535970a62b1b4100d06187bac8f0010ad6d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "80f5ddcc31b857b87df6d3dd0c0eba3473338229", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b7ea0df8da6d42b8eb8fbe3511e27fa1fb07441d", "version": "1.81.0", "port-version": 1 }, { "git-tree": "bd57aaa24f8d992198cb1ad2fc02a10bf265a7a7", "version": "1.81.0", "port-version": 0 }, { "git-tree": "6acc7fc6639406a0ec333c52403b20ac6fcd5aab", "version": "1.80.0", "port-version": 1 }, { "git-tree": "3935b80eb6478299ca2215ec8f44bbaadb7cb097", "version": "1.80.0", "port-version": 0 }, { "git-tree": "24210ac19518ca74072938e9569a9e9f5b3476ba", "version": "1.79.0", "port-version": 1 }, { "git-tree": "7abfa63f40d05e79743c416050ed97f8351d3c37", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c279fc4862dbbc9b4c685d16d1abee7200f9dff4", "version": "1.78.0", "port-version": 0 }, { "git-tree": "ec8ceb582e4ef9936ceb840c70b90dfb20703f1d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "42c1043410aaf53351ccaf5c7ee6ae133f78a5db", "version": "1.76.0", "port-version": 1 }, { "git-tree": "7543f135833a2b698617f25a5206dd4194fe01bb", "version": "1.76.0", "port-version": 0 }, { "git-tree": "73ede4d1c06f12b1162f39e0b03935cc429c763a", "version-string": "1.75.0", "port-version": 4 }, { "git-tree": "7545171af99470b6486fdb0bc42a0d9fd93d0f6e", "version-string": "1.75.0", "port-version": 3 }, { "git-tree": "fbf3476b81167645a5f053adfdb7f2bf9a4f4c44", "version-string": "1.75.0", "port-version": 2 }, { "git-tree": "7f3c7f2174e6d43195a6468272d27bf68b12b56b", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "a122c48db7645becfa084e9af1e57035870cb806", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "af0196e51d5f5d1ef93d4e80d32281346ebd9486", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "0bb5b708ce7dfe28c141d051c2e95a0ee0908500", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "f64b1a3bd6d01b98c377c7aa33b749ca785750e3", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "65f0f8ca8b7bcce52255ad5b9c40629cd15c214c", "version-string": "1.73.0-1", "port-version": 0 }, { "git-tree": "8828cd95f58f6cd77f1d389bb16422eaa0c06d00", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "47b45566fae242e6e6ae356fb85c2aea3b328b9d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c10b94df8b7cb18b1692232ac669b6263b706d05", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "030837836d3170f22c85fa87a62ddbbcc8ecdfa6", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "27000a889b7661deb010f7851614fa65f2506a11", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "cd28cfcd0fa89b578f26a3ff7b6b10ba03890496", "version-string": "1.68.0-1", "port-version": 0 }, { "git-tree": "0e06db2527185618d1afadedc5dfaa700398ce9a", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "908f28b05f28a43846f6cc85ec52a541aeb34c0e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-contract.json ================================================ { "versions": [ { "git-tree": "f073fcd12bda241a1a12d3c089b8be1fe62e0549", "version": "1.90.0", "port-version": 1 }, { "git-tree": "5cdad966a534ad58a5bdb44e6e377f5e5a16f0c0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "715ace24992f798f8ebd86fdc053ec75c2a94f51", "version": "1.89.0", "port-version": 0 }, { "git-tree": "2ac523613857e8bb1ac1bdcd0e922feaf69ab6b4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "8ad8cdbedb521f0d146c628b5e0180ab2d4de0f4", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4c2ad20bcc097007c416525fde7835e76ac6e37b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e5ffe27270ab1d058dd83e7b9d899c01d7c1afb6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d840029119d55423cf986ae7ab733450db93c9a8", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7841ad18dd8768d23a908f884928336134f7113f", "version": "1.84.0", "port-version": 1 }, { "git-tree": "e08e8686355f85e72f127468e9593970a3dc7d01", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2c3cb8d14edbf7d1f72bcb9604c134828c52db92", "version": "1.83.0", "port-version": 0 }, { "git-tree": "128a5459bfe24ef077e6c55f9048115d5b62119f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "2c9e501f72013d017f7422869c77eb6b20f29f46", "version": "1.82.0", "port-version": 1 }, { "git-tree": "adf8656d4faf6e9ff1b87681b7d085242fe430e1", "version": "1.82.0", "port-version": 0 }, { "git-tree": "59da1705a0acc9858789b96442767113c2434241", "version": "1.81.0", "port-version": 2 }, { "git-tree": "11e830350edf07dea194e0e29aa72250f0ab5a76", "version": "1.81.0", "port-version": 1 }, { "git-tree": "9f261851281b2f601cdd315563526a9386ea2d2f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bcf4aee9c764ed68d69c7c7c2c5fd4a419852707", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4602cdd4b32f084e83f9c687d2aabf7aac5a7694", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a07f53ab73b8b844f20b487aa039e4e019538d47", "version": "1.79.0", "port-version": 0 }, { "git-tree": "9fb4b8408822e7921fe3d07ba66184df6b5f16a6", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c8249694c8d2dfd942dbb733f138997d00ce89c7", "version": "1.77.0", "port-version": 0 }, { "git-tree": "6b8c36f8582d262cc3c02dc91e98309dd53b5a4b", "version": "1.76.0", "port-version": 0 }, { "git-tree": "caa424eb6255cef5c6b00c3d9f1b7b38c9b84b60", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "474446bf2ddf3627c5643aa36ed0c79c24f4e41c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "7311f523ed4ddb327e88e2fd1dfc1f825bd690d3", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3b1fa988e66a65e1c9d37026bdaa7bb1ab4d7c44", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "2782814a6ae7266bdc2f7aaff6ece447936c70b1", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "e97d18765b0debe3c54dd8a0c654f310e765fcdb", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "996827a7079785e48e640dccc8a69235fdf9c7eb", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9831393df2e49ba23c48f4b0e2c364762a5830ca", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "a36b572dc05ab05cb2c87dbbc0a181a8aa965388", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "ee7da253a1c28773377f8d6f5dbcb62aeb6e6245", "version-string": "1.67.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-conversion.json ================================================ { "versions": [ { "git-tree": "f44161fb13a818d55243094a9ce3270b737cf76e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f9eb032d5e13846099a60457ef510f46f6eec3be", "version": "1.90.0", "port-version": 0 }, { "git-tree": "72f5608e82127ab4b384bcc268fb92c59d36bbc7", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c42652f6df8bd8617a314dfe5fe4c2faf1a7dedd", "version": "1.88.0", "port-version": 0 }, { "git-tree": "bb7a19c1745907812b385e1e6a6a31705409e78d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "41fb2eb0dd4203ced5645d9e659253e642d6848c", "version": "1.86.0", "port-version": 0 }, { "git-tree": "34504b14fad042076fd8a993fa3bbb68d7b0d587", "version": "1.85.0", "port-version": 1 }, { "git-tree": "10cb3d14697a464f78d2f6e37a81237644ee1427", "version": "1.85.0", "port-version": 0 }, { "git-tree": "939ff01af6adbbbecedeb2eda1adc34e20bb180d", "version": "1.84.0", "port-version": 1 }, { "git-tree": "e3b83a29a2979a917316fece1572314a0e7b2c81", "version": "1.84.0", "port-version": 0 }, { "git-tree": "45d1d99389896f68454518ac9e7d516c88598fcd", "version": "1.83.0", "port-version": 0 }, { "git-tree": "42db7c7d2cd967a8602ccbecd50d17ecc45c0f9b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e99972dc970d3a2229996b240d5dc4362204b6dc", "version": "1.82.0", "port-version": 1 }, { "git-tree": "644c76f8de63bc034d0214ccbf408889f84d82cc", "version": "1.82.0", "port-version": 0 }, { "git-tree": "9571b8eb4c9d1952899c01b198cd42c7872e7ece", "version": "1.81.0", "port-version": 2 }, { "git-tree": "34c149f50fb0a78cec1779362499b8829c17e0d1", "version": "1.81.0", "port-version": 1 }, { "git-tree": "400296cab0585642c48f0478a2af558bf30c36e0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "b5014e3708747964bb4613ab1937bf1772705e5a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0eefde4b20dad197e9a868ade748b825e6ddafcd", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1e3552c53e2ef9bcfa7159f2f06079c30dfa53ac", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ed01d578d9964b2be3619cd7e96c6f65dc206275", "version": "1.78.0", "port-version": 0 }, { "git-tree": "5b591e95244353857eaade53621ee895b1d9e0a6", "version": "1.77.0", "port-version": 0 }, { "git-tree": "a18dc435cbe0aa35d32830fbe85d7d5ab0b71bf0", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9f366dd9e7f48c0cbf16725eff9b035ed7ff2d5a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "66b5da5909c47b08b613f4127e57ae02b24fade3", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "b3e08f49a7e98928320d01c83aa0afe70c4ac097", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "04071d9a4d95bd41b129fc77a82db879c14a4565", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c5d196892907020325d3fe182741f7142f55492a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "33c1b5bc2477ecc988409886f4b4219c8140e8e7", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "3d5362892a857c662e0577a9a91306256f4c6a66", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "3ac54f232d78b29fce3136b3246f5fae91308c82", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "fb445fbd03211098a4cb83fc73314b48a36eea94", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "21c88774f349b8488300e4401b32af9b862b19b5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-convert.json ================================================ { "versions": [ { "git-tree": "e004dc3784a1497079b3b26ca2200f46f03a28e2", "version": "1.90.0", "port-version": 1 }, { "git-tree": "57f8e1676bb24a9c02d0a50463a8a3aece7d70af", "version": "1.90.0", "port-version": 0 }, { "git-tree": "fe9541bdb176183365a9ce9a325fef1ac1784d3b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1459be2057e0dee300dec85b407ee4dd65784180", "version": "1.88.0", "port-version": 0 }, { "git-tree": "451491591586d9f96ecf33f50a88d34899283162", "version": "1.87.0", "port-version": 0 }, { "git-tree": "2516e0220475cc65230c3f0c25aa522b730196fd", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2c76109602f66ef85c5d4db9b7e952c8318d139b", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6e97dc5b1bcd72696414ddb256e0b3de1f69843c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "112b351e4ce2a7906fdd143a06d3e99d1fedc478", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f2c5123bf4c682b7a729001e1e5d7b78c7839e13", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7b29caca0f13ed5f5c083216a177a43984cab5fb", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2d1a4418e25c86642d9382f57d1d5b2713bdd12c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "54d69671454ab2db9d34730a216a5c5efe7d6f0e", "version": "1.82.0", "port-version": 1 }, { "git-tree": "fbe8594d66a5ff237bda8ca4d0f5f3ab8853d8b5", "version": "1.82.0", "port-version": 0 }, { "git-tree": "3982b106a915dfaea9b62c981c0b64dd5b1709c1", "version": "1.81.0", "port-version": 2 }, { "git-tree": "7e7f237bd7560ed24376b3af1c8af30dfd06321e", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d5b61f490066929cae75adcd49af0854e1c62808", "version": "1.81.0", "port-version": 0 }, { "git-tree": "5caccf25e9d3a859e0fb0f9e4352805a54e4ade4", "version": "1.80.0", "port-version": 1 }, { "git-tree": "86c8d2de7e7f583832e134096f2c2a869f16e23d", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3a6958bd02a806df5b7840c7a62908ca3d5316fe", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d1315f49ac5c357e8a427c97dee2faa3655c70f3", "version": "1.78.0", "port-version": 0 }, { "git-tree": "8f01a746807fe131cfd83962df7faebd340eaef4", "version": "1.77.0", "port-version": 0 }, { "git-tree": "d13b694428c83a3f00302d0a4af2d2c457f13f05", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5c71e3bd86d4e105b3ec7722e5f1468a50ad6fb5", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e9718131f316ac62c69625a622edb137e5cb08e1", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2d34564e7ffc30c228ed76ec431c9ef5c57aa2c5", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1258127122b16003d158013e449bae53d533125b", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1a6118a3d7d617f4d57e4b0149941379d2945b25", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "45101530f7940894661beb6535fd71edd1ee0952", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "cc0c7f9939dd63ce4a3ff7e5bd3cb88a9c762fc6", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "487282494d4163c805396b4ee8a1325e43652683", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "86cdcb365cebffb4644146e80f1d5c4b5741773e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5185fb4fb22d45199972a3bb84a4783f3e36d4a9", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-core.json ================================================ { "versions": [ { "git-tree": "a4ee1de182f85e01295c57b9acb6f9584be17388", "version": "1.90.0", "port-version": 1 }, { "git-tree": "67cb7dfa77c6a988f24efc989d25460e0460ae36", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9823973b46eb48abfc4d773b8461e98165b6eb6b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4c65d7305461035adb983409910487493fbc3c17", "version": "1.88.0", "port-version": 0 }, { "git-tree": "71a0f4b6ce5bad6dbe12494d93d803e5aee03dca", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d978b719a8e14adce4d804ab5371e357afed9687", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1a9aca564910d4927aab2a0b3edd5dcc92a0a484", "version": "1.85.0", "port-version": 2 }, { "git-tree": "e6373bb9026feb45d6e8bb9e2bac42e1bf13c839", "version": "1.85.0", "port-version": 1 }, { "git-tree": "195375664be82cbc16178de90096e451de070d80", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9017ab1c0fde091fbdf8dff47818e760d7fd56dd", "version": "1.84.0", "port-version": 1 }, { "git-tree": "9092a51e0f86979692442d98202d839240721e6d", "version": "1.84.0", "port-version": 0 }, { "git-tree": "736b9319578faba560f1bccd62ae53421c290ac4", "version": "1.83.0", "port-version": 0 }, { "git-tree": "fc2d558e972d703d21819dc33f5178d6bf529a22", "version": "1.82.0", "port-version": 2 }, { "git-tree": "f406b6bfcf32cb14d17d1df5e57a1162a2f2d703", "version": "1.82.0", "port-version": 1 }, { "git-tree": "dc7d8f36b88e86bd33b77fd98e30efc3df0bbb40", "version": "1.82.0", "port-version": 0 }, { "git-tree": "a01f204e91421776b3891acbf59eb8ba27be6d7a", "version": "1.81.0", "port-version": 2 }, { "git-tree": "90add6f6c34e2bc72ef0dd6f1fd68f167ab7882c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "1cb4d668283c3afcec303499d7a84b221934b1c7", "version": "1.81.0", "port-version": 0 }, { "git-tree": "8f49830ed564594f4f35e99c73df1d89fb2b1361", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c883ecbdff6a25a10471499fe6baa265370d8e80", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a22eddd8a3121063f8ef94eb4e0ae64021d0369a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "b6d811257b985253c87570f25a75957689b2b895", "version": "1.78.0", "port-version": 0 }, { "git-tree": "a56c8546828ee16a442a336c2385f9986f8c055f", "version": "1.77.0", "port-version": 0 }, { "git-tree": "f72d1f923bbbf99709e9cbaf54f36b7c2d22d169", "version": "1.76.0", "port-version": 0 }, { "git-tree": "20a19f6ece37686a02eed33e1f58add8b7a2582a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "febbc9ecc144ae2979ca1f6f12e9a3dbc7d6bd71", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6a34d4c2d4f52d0355e96f63788336b6e2985960", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0eb5e20df9e267e9eca325be946f52ceb8a60229", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "df3a5235a6aa7bd9a9cf93d88fc57d21d76141f2", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "624bf52f04427877bc51d0b152b26b64785f194a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "ad905b649a559d1e4ead3c5063486beb22714025", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "bda4dd64a723ddb2abb6bc88881c1912666ab199", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "2e00c990421c0ab8f0cf2f3777d1b44e12f8564a", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8853b6979ac57905ae7a8b813e01af76389f4a9b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-coroutine.json ================================================ { "versions": [ { "git-tree": "e8871b6ab6165e1b84b83405ffd0682751a21140", "version": "1.90.0", "port-version": 1 }, { "git-tree": "419ab4435ea81e9ae9fa524f979ec82e70faeabf", "version": "1.90.0", "port-version": 0 }, { "git-tree": "6eb27ee3f2107c772f80ca218f5209fae280df9a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c842dd2fae0ba041bb0eb5e4da122d800e6f8b68", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b926c08bc69c6c310e9ddf6c61fc3b47955f3f76", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8e8c55041bd950518602014556a780c71e806470", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6383b33dce1c2e67ed3b6e20b1a0c085f4f0b2b7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "67d646701144043603143d87750c4de1629ef263", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7f66e5f0d5758b0bfefacccc7a0a0837a17ce9da", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b6c89a5afa462111f3180af3c843fbc11ed3fd63", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d8a5c2cff3de497580fc8dc363ebc3e8ec0c9a1d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6a7abe4f1fe4283093d5eadbbfd76b9b37d188b0", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ee6ae12c7b1d5dc36ced3db516336e96211d239c", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c909b46a21eb931b15bad934a065a7b353b5250a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "bb2505f3d476d390b0c3470ab09b4e62b7b954dd", "version": "1.81.0", "port-version": 2 }, { "git-tree": "866d5ccfdf84cdb3d744043ba986d30d14feca38", "version": "1.81.0", "port-version": 1 }, { "git-tree": "94c98a6b1f7526f9563656e6f2281d7121daae94", "version": "1.81.0", "port-version": 0 }, { "git-tree": "8ad73dc1827cbca291002b28510f60912cbf12e8", "version": "1.80.0", "port-version": 2 }, { "git-tree": "58decd230ff2227603af8e6e95dfcf45fab3b032", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c5c4a955fcf3465c0e9589a57d9c9f2df02eb3a2", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b953ff17be4b4da2bb6b898c80b12c4185b3a821", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d462e16750c6769375391d1e1c084999000cb324", "version": "1.78.0", "port-version": 0 }, { "git-tree": "a5afb95d36e4f0baa263193b00e9a1abc1f01454", "version": "1.77.0", "port-version": 0 }, { "git-tree": "55c94396b67927007f75ce08b2acc2b9adc908e5", "version": "1.76.0", "port-version": 0 }, { "git-tree": "cb03de5030c0a5c3b49eff0acb5b363156c458ba", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "126ca8af94215f8d49d6b5a16515661e2999d9d1", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "9b1f17ff8a5e815baa0a2a658482b6ac896359d1", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6e6253709103fdabf9f4acbed55a8f864b5b6b00", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "e5cd536d31b9ee1a14f045004f0f2cad79071466", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "9291b90b9ce474e770f17ab00924d220f264a22d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c95c3f32e1816dac4238d4c53e7d7af2c41ca2c1", "version-string": "1.72.0-1", "port-version": 0 }, { "git-tree": "30401a95f0b6800826044293c1c8d38fbd582785", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a9fe9978917d449996dc99579cb2f673af30ba1b", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d5b684f5ac2b1ced1ee77bdc7cecc50991684944", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "804d6a6db063c5518a0c78a8143d88c5a255e6bd", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "4ea290b7fd5acbd612cdc5af2586b246e1f5a8cf", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "bec17bb5e38a7e4f2daa7a061ecea27e3230c979", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "ded2b7dc5b938872e89abc8fdf7912bf10f63371", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-coroutine2.json ================================================ { "versions": [ { "git-tree": "9abd0a8c05ef9d572910c54e8d1fe50ba8fb810e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "0e4d512717f859ac714c9d56605322300768244d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8edfae8632b2df89610d82d51088a3f0bf2b615c", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f5da601cbd763f3c09d88aff2ff7cdf77717bf4b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "442f1dfba69b80b413d7d64c5a60f16b44f54470", "version": "1.87.0", "port-version": 0 }, { "git-tree": "98fb711f3eb857c129209b93fa3b4bbe604c23bd", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6981d783ec68ca26b254781a6fd1c8d9b34c59d7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ed777098471dde332d38e838e54c3dcac02b2400", "version": "1.85.0", "port-version": 0 }, { "git-tree": "2d533d34a8a7e7cbffc7a048192f1bccc3e22318", "version": "1.84.0", "port-version": 1 }, { "git-tree": "8cf4fa067f24591f4c30e6cf54f44284a421991c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "07cd3acf80575853ec41795a24803f75605f9c9b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "dba0f9beca895b21c5059b07c9f173e007ee3cd8", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7fb813154ce459ddd8d72dfa8cef59b033be2dad", "version": "1.82.0", "port-version": 1 }, { "git-tree": "52c774d7851dad25ca80ec7e591ea02741a79acd", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c0cc6d4bdd6034a5026ca00075e1f2d767dff50b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "99a6d5db0b45537639df50cb0949fe341cb0c9f7", "version": "1.81.0", "port-version": 1 }, { "git-tree": "71601c4fdc9da32a7b0226b54d74c3b5ca30541e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "3ae4a6556eee9c00d542a9efc6a45f342c51732b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "2b92ef8da314cedfeb9c03cccb9ed74c54464937", "version": "1.80.0", "port-version": 0 }, { "git-tree": "8f8442e8490a2ad005762566a768ca944e754466", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d035a00380a7bcddb6c22f69c4743af4f2122a38", "version": "1.78.0", "port-version": 0 }, { "git-tree": "a8142422dd258f6a24df4ef3caf54b1d48096d8e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "4fe20c2b3573e82f0db30917b005310bc8697f88", "version": "1.76.0", "port-version": 0 }, { "git-tree": "2123dd1b276ae094358dc982c1f37661d0f38e04", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b32ddd8c4ca99ef8f6ed36778ea751c2ec181afe", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "442c89b92083fb299e4d37381603bcb74f6d938b", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "c0f56893f5de8240d29e783b9c1fa3aab080d7c8", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "ef07a674c5cdf3cad2ce59029926647583880d36", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "63ed92a52a85b89ba5d330742082a9dba141d747", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b3fa7b90febc911b1e21d40305e7320cceaeb8d0", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "3b91221c1df7cf522f69d0f30d2eba485ec6d6f7", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e18d338410491b506f3dbdc85afd728814f3dce3", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "5dfef177c84e649b0c3f4116082c8439226990ef", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "c16fbfadc5c9d831fa9ab73d454ca3c676564719", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-crc.json ================================================ { "versions": [ { "git-tree": "99195bd3325a059c84648b65ffb37e884dab1b00", "version": "1.90.0", "port-version": 1 }, { "git-tree": "686edb59db48624dc1f2ba535d2c0cfe2334c8d1", "version": "1.90.0", "port-version": 0 }, { "git-tree": "80e5000db8f26b78ce7395e33f6066c3cfe6e310", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d3ec31c09d6eaffb7080b0fd6c2eab151f8bf529", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b0d9941dca359408640e18affd6c6d46dba86df6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0f3bcd96355850dc868e79c13053bd1cd24c4897", "version": "1.86.0", "port-version": 0 }, { "git-tree": "eb9f33a0c9a4539c825e7ae3e4e123329c405fa9", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c4e78a3474491b165f60a8b72d8387ebe9743514", "version": "1.85.0", "port-version": 0 }, { "git-tree": "8c5d6d76559beffb001712785eb9215f936477f8", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7096b802ae31e2690189123f41f63d70d5fbfd39", "version": "1.84.0", "port-version": 0 }, { "git-tree": "b0f11a830b77b6a039d0d008a18b066d99a87672", "version": "1.83.0", "port-version": 0 }, { "git-tree": "04d885f67c14d286734f0904d56d57338a5e9d8e", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7146ce31ceb0cdce252cdf556502fbd358eb30d5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "bfeeb9c8d98a0eca5cdf3886bf0757d89828e4a8", "version": "1.82.0", "port-version": 0 }, { "git-tree": "12a7379b52e6f64ca68b76844b9c8c40911661d2", "version": "1.81.0", "port-version": 2 }, { "git-tree": "68ccd49cc544d3dc8d9c97c229e181bd6f515c5a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c5a56e557db50f5a2fe9ecf75e09eaf2444f3d2d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9477953bb7805e421b7953a86705771ba60b99e6", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f1ffdaef7352c8861f62b6a81197f8f57433e471", "version": "1.80.0", "port-version": 0 }, { "git-tree": "5fd0f57c0b02c713c53ca56f341b904557fd257a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c1772d15f5d08e1f5e3a263c30869aef88a76085", "version": "1.78.0", "port-version": 0 }, { "git-tree": "bab49b15015caaf455e6b304a613fccacd501ada", "version": "1.77.0", "port-version": 0 }, { "git-tree": "a9fb53c9bd706bc62d747a6e19e7d0639da9805d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d85306a89ba8e94f3f9ce92dcff832b54b6fe36c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "50b395ef5adb04b0397a627028d6cc2028d15bd6", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "61bb53d33cdc7c34aeed89ef14342ecca82e3d47", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f89e4bc8b2678164d9b8c65e85b48207a1278950", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "8291d140c0c7246d2c87e50c399b4f199e168316", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "cc3c9d417bd42e313c3a1587473aab72fe850a4f", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "6c9e2e515b0b58e6bab880b79fda45685f8abdd1", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ae021327b2c9570b0eeb2b6959fd8b7a8a1c25f1", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "50dad24d2cfab57b98d84423653eeeb815432a7d", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "c923a756b3fea47bf16feb78d6974b29686fe55b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-date-time.json ================================================ { "versions": [ { "git-tree": "67065b98e42851899e5dff400750f5d79d2baf1c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d249d3ccc6b0640ad7b6ee9c2f2ac65b70273373", "version": "1.90.0", "port-version": 0 }, { "git-tree": "038586c4564e5118c1b92862902c5b53fcbb24b3", "version": "1.89.0", "port-version": 0 }, { "git-tree": "27fa7c8f51d9c33b0764250d263bd62e22204ce1", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3c39184e47fc3b98f24db45892240eefc4c6a03f", "version": "1.87.0", "port-version": 0 }, { "git-tree": "1369ed0885ac49e0798a74ae9d74190658364ed6", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a7a5962760b48efe5dd7016a7bc8a6983332b51f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "f74823cc33c643986ea5b190b7c8b2899276e7f1", "version": "1.85.0", "port-version": 0 }, { "git-tree": "5c3aa069449627e4f8d1174d2df0fd21488095fc", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7946ff22e340ee7a7933de620506a49f0c02e14d", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d56b06972d62749f2f7c9c9950b275d4d4668bcb", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6deadcbe773d183966325ed291aecaba15da86dc", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d121b1d895d48eb80ef58fc6627e192365decfab", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f3ff9fc6d82b63ddd51210f54a338afd739536e0", "version": "1.82.0", "port-version": 0 }, { "git-tree": "3428af10c812e17dc628b3744aa5ddfefe36279f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "44d496f7831bd6103c71de9c677bf3f3ff68507c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3f37609d6608948efca198a2f132d848cfb757d7", "version": "1.81.0", "port-version": 0 }, { "git-tree": "0dcad93c43fe52b123c5e3abf8c3e94112ebe4f0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4d59467ccd3c5545e253f0077e97237d3e89e320", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bc3460f55739fad6ef0e548bc084bade32985683", "version": "1.79.0", "port-version": 0 }, { "git-tree": "76bf565e940322a7d3110edf1b18fb4bfd8a1ab0", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e2ca710f2484af3cbeee428e063a7e4269510110", "version": "1.77.0", "port-version": 0 }, { "git-tree": "47a2624a239c59fd89846f7b24fc3b108b31e82b", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7aa83d25af20b0a43ab00bc3e00a16ab41bd45d4", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "29999306731019b2e72d13fc47bf6567e38333af", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e4e3b8362f29d3b7d2894f6fd3258afddab13341", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "84a294c7e2a2a3e46743be55e4603f25f8956bc1", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5a9df8f71083ba3a05f5b7442ea07f4c1d3a4124", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c10342e378322762f8b73e4ed27f43e25f684e83", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "68b4aa76f870d0c3bfa8c7ebe16456cc06508046", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "5ad830d20f20cbd2faf32a7553895533d8a2752a", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6fdedcf8d44b32794a89049690ac3ee955d3c630", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "f1057443f9c812bb611ae7edb406eb622a8d7330", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "b0cc6dae48fd9a6708bf1185afa10d0f195685e7", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-describe.json ================================================ { "versions": [ { "git-tree": "b45ba8548669842c649c4e9c21de95be93ef3dda", "version": "1.90.0", "port-version": 1 }, { "git-tree": "8f2d30fa253edbd8b13817eb9e82aa8e9c9b6291", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b6c39726cb8a5ed76d564c222cfd5a59f24d3e02", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c8f7e17ade0012c59a0f0a4fd2eed310e46a62a2", "version": "1.88.0", "port-version": 0 }, { "git-tree": "12c35f33197b818aefc22b3c5c7ddd11fa0ca18d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d2a4fc640014f7442932464d954ad44b302e41c3", "version": "1.86.0", "port-version": 0 }, { "git-tree": "bc47f93f7585264ea56a760693785eef00fc2324", "version": "1.85.0", "port-version": 2 }, { "git-tree": "e7dc81f888ac1908c0bad3efd7b411982247f748", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5bf8efca10586773cb73e95aad3cecdcff0ea57c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "f2911a3ec80928d966b0918cafb8e0de9fb6542a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "c6782cbba94dda30916f801d4b68160f7b6063fe", "version": "1.84.0", "port-version": 0 }, { "git-tree": "5287728efcb90f341cbdbf3e40edd2568baa3d98", "version": "1.83.0", "port-version": 0 }, { "git-tree": "57b9e703cb64af9391eb2410ef649a94cb34e4fb", "version": "1.82.0", "port-version": 2 }, { "git-tree": "631c0781e5719b44d906954a57f3a9a42bb37e8a", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c52e0602d54045f5635b7b00215aaae4d7d13cbb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "261e53ba26d72a19e154f649475a944f868acb86", "version": "1.81.0", "port-version": 2 }, { "git-tree": "bfc832aa947b09701004ab5ed8d0e37dfce8ee24", "version": "1.81.0", "port-version": 1 }, { "git-tree": "509fa12819b48eb72da8cf2600ba7f3b799bd54b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e69329263efe6a881ac4bd42a9ba24ae30da2b4d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "91eb316df6588d70db583e6accf94f3dc79cb78b", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f79ac02e597506f15b55a0445e9a36ed6cb22632", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e08134869cca3b2d75247c226637b24438c489c2", "version": "1.78.0", "port-version": 0 }, { "git-tree": "399140a565739230fd9b805f047013bf42a2a0b6", "version": "1.77.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-detail.json ================================================ { "versions": [ { "git-tree": "ebd543154e618ddffe7b7aa153f0e14ef6c9055d", "version": "1.90.0", "port-version": 1 }, { "git-tree": "0badebd543b1f8749aaf844118794056caf3d516", "version": "1.90.0", "port-version": 0 }, { "git-tree": "42321194aba4197b21532f5e146ddd36f4ec1a4f", "version": "1.89.0", "port-version": 0 }, { "git-tree": "98a332b03b6cea4761f88e91583365d6541a363a", "version": "1.88.0", "port-version": 0 }, { "git-tree": "177e493478ca855538e2ba2d74db157168a0a92d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "180c83d347dfd34afc12f69f5ca7d9e75b9681bf", "version": "1.86.0", "port-version": 0 }, { "git-tree": "c61fada41d8ba3839e6cbed4e90bcd12e44ee839", "version": "1.85.0", "port-version": 1 }, { "git-tree": "8b766b66fa3a803b677efde5b4c7eed9e4fdd9e1", "version": "1.85.0", "port-version": 0 }, { "git-tree": "1db9209044b151a7a78015ea7376219a19bff5e4", "version": "1.84.0", "port-version": 1 }, { "git-tree": "cd5519c5cf4815126782e82cafcce472281ced51", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9a596ae27e05912ce6ac9430ad0a2c60b0874517", "version": "1.83.0", "port-version": 0 }, { "git-tree": "e6869735032c72f50cd3e5cfdfd08a317fbe1efd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ea40bd02426af4c5ce99995762c452e3a70b5189", "version": "1.82.0", "port-version": 1 }, { "git-tree": "174c7c69d063d88df48d2a6adf91a10f247bc90c", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dc4274ca2fa7e6b2d65316758632a414ec22ad40", "version": "1.81.0", "port-version": 2 }, { "git-tree": "1ce171f115b7fd766228d49ec5bd5bffd042d014", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ede70cdb2c0513ea534d447aa9103d4f4f945102", "version": "1.81.0", "port-version": 0 }, { "git-tree": "38ec0a4a84acceb11ec8388fe3a3da794ca91351", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4e3b1298f453e933f97c2145a1539ed0763e52b1", "version": "1.80.0", "port-version": 0 }, { "git-tree": "65c1cfff48ea4ead86b7db6d20401fbfef4e1022", "version": "1.79.0", "port-version": 0 }, { "git-tree": "61c65e46d0bf619e44cf343d734dda6987f53005", "version": "1.78.0", "port-version": 0 }, { "git-tree": "57dabb22a4f9dfe872c6f007c9dbae7bf0847514", "version": "1.77.0", "port-version": 0 }, { "git-tree": "69e27a71e0cacff0f2a9b005f03bc6262fe97210", "version": "1.76.0", "port-version": 0 }, { "git-tree": "96744251f025f9b3c856a275dfc338031876777b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2bca20aa3e58b25201b4aaf6810561bd76365f1b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "47a79afeb2fc8d5fb00d10073dce46c923823efe", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "759d7c6a3f9dbaed0b0c69fa0bb764f7606bb02d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "2790c82d26230c810da18669b6e929941e7ce5c6", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b41ba2031492395461d03e97433cbf3b13bec953", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "06da489280ed6a323980b59c0c49f1c85a6a5bdf", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "07211d7e325131bc29336dac80f291458d0bc132", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "acd9c6be4af0cddba229aed6c8134978547dc59a", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8a3e36c4a7097a45d67771c367b6f50549d64075", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-di.json ================================================ { "versions": [ { "git-tree": "b3427bb52844782f7d8b88b69669ba692313c077", "version-string": "1.2.0", "port-version": 0 }, { "git-tree": "7338a2a451a002e881b0cf63801f2b7ec844d54c", "version-string": "1.1.0-1", "port-version": 0 }, { "git-tree": "b98731cbbfb5b39389c2b7be699a376c3251b3eb", "version-string": "1.1.0", "port-version": 0 }, { "git-tree": "f301f252cc349020a23efc0486474717e2786a5f", "version-string": "1.0.2", "port-version": 0 }, { "git-tree": "d830a19a60a66b024e64ac9a6a2e77844f93cd63", "version-string": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-dll.json ================================================ { "versions": [ { "git-tree": "0f918b6869d1335f2d6ef7ea949c750451503f55", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b1e568e31c27f5193566a3723376799a6481568c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "fa9b2b00c0d3b88568665ced3770c12526d28542", "version": "1.89.0", "port-version": 0 }, { "git-tree": "e6947539b62cbfeb67cf316768353841881f448f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "7bed72d68e1271d9915b39438385da65b4c98d0d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8c4175d6784c52998e1196428b8d3f6aac13f841", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b0f5f096f3b865a2897800fb9a941c187f3f82af", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ce9523f034f84b6fda92de068d8b88ba241b671f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "272d33ec62b49eb9cacfb34306ed4964dc6695ba", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4ad1aef2db0b3f484236b4664e38e8eee0bdca5e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9458e313715bc4132ded9a04a5d991f9993dcafb", "version": "1.83.0", "port-version": 0 }, { "git-tree": "92417614fbe01c2ebdf9e5c57dca684fb899f9b4", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6cfca57c17b2728555ca512c5912af0787eb067a", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1afca5053a668148d101174768dffa95e676b9c9", "version": "1.82.0", "port-version": 0 }, { "git-tree": "363bbf3c6f24f93ed58881c0e4d2feefe7cde15b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "9f35fd2ee5fb5ce13548abc197afff15d013e362", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f8b1f5e7a3dd76faa313f6a5474e2e9095ef370f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7e6f9ce9e7881e9c45425000cd709593784a20f9", "version": "1.80.0", "port-version": 1 }, { "git-tree": "58b721d72a67913e4f5001269c25b3e7b8982f93", "version": "1.80.0", "port-version": 0 }, { "git-tree": "0243143e2c2bea8e3579aadfc735b56c40ad5491", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1afc8f9b224cf9a2a1846073dffd93defdb46028", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7ca0cf6c2a9f41257ad68442240ff7ad21b7e662", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b04bd18cc23d270ccaf152f5d28d5948ca69a664", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d3a8b7568bf78bb6d894cfbf857dee96be2298b9", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a0d6a2f3d8ea63f49d7e7618c2ad18ef59b7b0ed", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "b706fb2b46338fac7c6a4255d214ca5f0d261ac0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "efff54bc7f260460aa910019bb0ad49a2386f87d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "6e63a3fb079ead7b7c24860ad5e64e482d26143e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "48189f9beb70791f4382909d1fa4cc191ccaadb1", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "814bd1b232bc05b52be7f62fea9e02203b18d43c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e63b540184662dceeac1081470a7e383123c627c", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a53f6d4aef0385a0bc46f95eca19213198b15596", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "e2e034371dd0fdf7ea2e1cb528953a6729124c63", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-dynamic-bitset.json ================================================ { "versions": [ { "git-tree": "a23c1cef33f33268de0f29e9a37f221ef5b25baa", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d9e88048a9e9bc3e08bda306eb3dd3c2548bd847", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4e9bb084edae227089add595ccb7c596e76d0575", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d4c919f26acd2f22956a1516951f886426bcb44c", "version": "1.88.0", "port-version": 0 }, { "git-tree": "db0f8598336ab14bcbd09e98dd61bd17a5f6c2d2", "version": "1.87.0", "port-version": 0 }, { "git-tree": "51d054aab9c1c50259e253c4cc02114d661a4f4f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a49924100c830ed0b858de5f35ba9007899939f4", "version": "1.85.0", "port-version": 1 }, { "git-tree": "7bcb408d3701dbd4a1ec515957f5879e9d052b8f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "1e98b71a39b3e0d747e4cecb23b862e38633d4fa", "version": "1.84.0", "port-version": 1 }, { "git-tree": "9b8fa2fe1a46c7f77f890f83eb124e2f62d21594", "version": "1.84.0", "port-version": 0 }, { "git-tree": "783e8e0c0387114a445ad62dacbbb2f2ce910cd2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "5ef863abb9f1f4ca201881743fffe4f47930b472", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d350f9d70da182a7abddd0cadc649394fb144113", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c274178dc34bcc511ed3bb313c7752be5619a75d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7c7d49f54faf119739e0c7ed84cc2c392b69efc5", "version": "1.81.0", "port-version": 2 }, { "git-tree": "3c465583ca35f6dbd4122826f79cbf17f4ae324e", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d82539535f977dd260fb3f78aae9d4adbea127f4", "version": "1.81.0", "port-version": 0 }, { "git-tree": "6959c97c0e4308db06332a09d896712492e6d23c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "288335907a0fe3dfaccf6bf7dc796d6a4e2570e2", "version": "1.80.0", "port-version": 0 }, { "git-tree": "e2ea8d91791c627d016c69aa73d36d3622ba0df0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e137dc4091824493eec9e6f9734caa71eb069874", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e5b7742c115d4e4a450062e30b1542c6fe4aac5d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "f0d3d3b2abd89405fba3564e8db5e05a02fb2902", "version": "1.76.0", "port-version": 0 }, { "git-tree": "8616ee67880d16f75306371c1c1be70f8df9a189", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5015e482cdc4c54bb956a55234f350ef6486ee1f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "1e7759bdf94d7a8e84fa0134785b97aaa7049e47", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "cb1f097248b36c762bdedd41853b4326c22c6e63", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "388724ed7265f2ade6b67994170b8b5e5ca1d121", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "851d8117f7b6fc18ceca2e5db852ab7ee169ca9b", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "bf0d0962bf606aaa77d04dbe20cdc217139f57ce", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ffdb9fa38a636ff48d966e49f89a06720fd48a53", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "1e2345f78a76afa6065d6e69800591bd77b9683d", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "287fd7e578962c23f7f985b5082c2f4e883d199e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-endian.json ================================================ { "versions": [ { "git-tree": "48cdf6c7ccea38184680e59e5d78dd90c343337e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "7c64dd1b90a62aa7b071421d24173c9527105d69", "version": "1.90.0", "port-version": 0 }, { "git-tree": "f45abc0b300cbadaae57d40a9a5a11dc3eae720d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8f0d2e5b95c17eb43c531c6eb9c80308fb5d2715", "version": "1.88.0", "port-version": 0 }, { "git-tree": "7f833dd70809fe39992a281c727df7272ddd2fcb", "version": "1.87.0", "port-version": 0 }, { "git-tree": "41ac0a7472ea5f242d1df7874ff39f6c64123c0a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "52bafc5c003a28548056bb672c9e1d3bd7700099", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2a1be7e6b3a7db7c7bdc8906d02b719c413b8def", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0499f5566874994dab142cd4af76b2d2b8275b86", "version": "1.84.0", "port-version": 1 }, { "git-tree": "169cba73d600248a5fea41b768f150a0ab23a1c6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "5321b25b38e55ebe1bbeb54242c104e208b643f8", "version": "1.83.0", "port-version": 0 }, { "git-tree": "02c550779838f584656e52ce62aa84913040be26", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6890ed08d6a7b2c9b54ed6150c2c73570cc512c6", "version": "1.82.0", "port-version": 1 }, { "git-tree": "4a9b5d84ff2016ea4d8d532a67528f2aed22308a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "8b246e0a762f2dc709580f4d35d41c14e1ec6036", "version": "1.81.0", "port-version": 2 }, { "git-tree": "5343b46f064d0b06b990ec536b1ced43b803a680", "version": "1.81.0", "port-version": 1 }, { "git-tree": "5d449709e1b8a989403a1d891e7d020c53a1dee1", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7522ddb265f1755e5c6c1e121291788353e4253b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "a7e23bb3fd93937ab37715ea481e5ed84b51f37e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "24a5162a544f251df6387a1d5bb70ba53497e4c3", "version": "1.79.0", "port-version": 0 }, { "git-tree": "87ed62b8b7fba9caadc1ffff99abede02e0598f2", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6950c45ffb4e112920b6dd50c1cddde07b30d61d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c191f1b591ce4455f933fa254ca32dfa5796058d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "4c89bc4f6b5208fc931ba4d79223ad085bb4490a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ea0817d7159425bfe788f061fff16f2d3578830d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "102cb68b3f9744ff57490a392a36c672bd97adef", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "302003887252323941427dad2d6a52c92734127a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "33317a6c2cefbc8521d907ed3fed5c61deb31bf4", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d5c99ffa97be4dd9a39da0604c97b488b68e905c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "67a20e4d444983e690848e0eba57109bed6980b3", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "afacab87270354cf200bd65782837dd50aae9df7", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "4646441284b7d5b06eefff8eb6662632aadd5dfc", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "2994f980aee9647b8a058547a77fccce42ecdf8e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-exception.json ================================================ { "versions": [ { "git-tree": "569f0c0c5ef6a4a42c50f49b0eec95aef0cc6a37", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ad9362534f8f29c0f851820f3ccb2bcb5f18ce44", "version": "1.90.0", "port-version": 0 }, { "git-tree": "98b58a80a68f639ca40b433428a69967227d75c9", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a9ea525002cadc70c3ea9bdf08c12d09772b8856", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e98b1b931df90dd5d25c28910815e9b17b83a2bf", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3c99e4a65f9f64580c5601219d05dac6f54bc0ab", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1100df29b786ab9f013202f798dbdab10fe2e5d3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6b90844360d52f77e060176e0ba59c2b6b585bb9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d108a3d14f48bf9a58625bfbefb7b711d7407542", "version": "1.84.0", "port-version": 1 }, { "git-tree": "97298e7547c5c7b015c8a55f46428f50fb53753f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "8dce130433b2a5fc44ee576f9b39bb97d916661e", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8eb353034a1a470c5168e00c6d97e5912f7c4cdf", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ef4cfcde16100435562ccebf90edca8cfc4e204c", "version": "1.82.0", "port-version": 1 }, { "git-tree": "4fcf9d94526da9da3fb012252c729d063f3327eb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "eae566a04e22f1d282cb55c0afa3d21b9e376208", "version": "1.81.0", "port-version": 2 }, { "git-tree": "89e4835134ce3242e172597df6aa429df945a047", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ef4b60701a0eca38a39a360f0f4832ceb1eef3e8", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bd131b74e6a6bf14aaf31aef22be644b4fa57a3a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "fd7bd1fcdb784fea657d9a4f068253b5d95ca333", "version": "1.80.0", "port-version": 0 }, { "git-tree": "6d7250e9806392fc38643fb7c069ba18fcec2350", "version": "1.79.0", "port-version": 0 }, { "git-tree": "02b0e67c7d9b5e26b1bccef1fba3152fe7ead595", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d60d712de012657effc2314a5d8781e453097129", "version": "1.77.0", "port-version": 0 }, { "git-tree": "aa0a09700d91a3cd3bf1fbf6b8463e20ede77053", "version": "1.76.0", "port-version": 0 }, { "git-tree": "913ecf461f245ac3467948fdddf49ce4b6f1b6ff", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "04e69dc9dad0ee8db88c11ba295e9a0773f69d02", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "139a608c9d4f1303c1ed2dac7aa80e1be3b38036", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "bfe897dca198b5ec6f1c2dba50c66d16d6fb99c0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "d1918862a01b74450e541c2b1d861f90014fe5ac", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "00f07fe3e7870a993e5ff4a9dde11249ffea64d5", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3b2956424061bfdd46071c919b275cb2ffa60235", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "7e3fc9cb5a946a66cd574ffa8c57aa0c3f1da7f9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "4ec2493359849291141a5d0c0103da8d074dd439", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "675af2e15fdfc3e8c5598ce8dad0c3563ab8755b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "6924b2fcde9add57c375625b67463b5ed18b2983", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-fiber.json ================================================ { "versions": [ { "git-tree": "a2d74e209564ff62e7b118eaa6a8fcb0eeebf52e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d42925716029f16dc5719ac8cded44483f4098a1", "version": "1.90.0", "port-version": 0 }, { "git-tree": "7fcf17bc3e54e33c5d4841fac41bf785b612c8eb", "version": "1.89.0", "port-version": 0 }, { "git-tree": "dfebe294986a84838ecbee9846cfba2be410ff23", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3aa86b56d6a20b5ec806cc644605beb42b6e9a52", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4f3698c5579c7641f51dd8a521c4f635d96ceadb", "version": "1.86.0", "port-version": 0 }, { "git-tree": "371f6f4602892bd6b3539d89442fe1ff90723877", "version": "1.85.0", "port-version": 1 }, { "git-tree": "cba8a5b857a4237cc655d1fc76c65fc592cc85b6", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ecbafe38747c24ddf32affec35e908212a52d737", "version": "1.84.0", "port-version": 1 }, { "git-tree": "8fa513e456d7d9a92feed2cdec9596d8e07e8055", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7eadb0ddae816cfed4358cb08ef2bc90c5c0bfa5", "version": "1.83.0", "port-version": 1 }, { "git-tree": "b90277a937de15b5f0701db9933e8af38c399fc2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d474f76c374b4e212ba4e855c8c91c97a76c9dbc", "version": "1.82.0", "port-version": 2 }, { "git-tree": "73b5c84611b826d9526898701fac02f83e305c63", "version": "1.82.0", "port-version": 1 }, { "git-tree": "655088a9e6f77757e30f0fb0375c80e5cb76279f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e7a28ac75f376fe846ce57d52d5c3f07f72ce755", "version": "1.81.0", "port-version": 2 }, { "git-tree": "461eb130c86f8c9f7840eac6b3366f040e1d02c3", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d64cb3b827e4e2007385ff63276e70b2a6c02562", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2f4bc44fe6c4a0c24f2b5245f555fe9b24c3c23e", "version": "1.80.0", "port-version": 2 }, { "git-tree": "6f4c9240d299fe5785433544a022cf4521fe942e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "624a28b01820a368ad83f7e3bb6442706e1dfcb6", "version": "1.80.0", "port-version": 0 }, { "git-tree": "14418cb69ecedbf80d7fe87779fc7028db31eefc", "version": "1.79.0", "port-version": 0 }, { "git-tree": "7a37b52940402701703a4b91f1360b414f6afe02", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c6fb978600b4d0ec5e62111f587f537d475c95a2", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e9b109cf5a3f708a5036ddeee8b58676357b3db9", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5bc8081de24231b39f115cbc347055f2d71c151d", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "3d9ca70a2ae4a6f786c4d5445515223a7b80fa8f", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5a2169080179250fc26699c07550823b2aee3e7e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "237ddc05dbdfa5b720aa182db405a675f04885c3", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "ca54371f7f25200c0fa8599dd824d71b031d395e", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "8f84ffcf36fad1e1a20e0af5b120cfe33c29a024", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "7ef6a2a6c507ff4ec590e67387b87d291db3bd3a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cceec09d81ac13fa1f5c13b971e1414c2759f20e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "eb3157d1bcc16e4c7b4a7f14af966e4ca5c9728d", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "ee0868e08823fe6f5f18cfab31679ab553eaac7a", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "897a915396cea87f5a1e8ac6ec27d08830ff114c", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "07d5f146d4fafb9a8aa058db08627591f22abe7c", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "55635f1187b4d697e843362d5fc663b41493c924", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-filesystem.json ================================================ { "versions": [ { "git-tree": "a8478d374772ecdc58a573a1fd05436749534353", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b0ef1d6e269d93b8dcd499dbdc30cacc7f86b155", "version": "1.90.0", "port-version": 0 }, { "git-tree": "51b9231454d8018a15022022b1b6b787a72fb432", "version": "1.89.0", "port-version": 0 }, { "git-tree": "61456aae816e74a65ebf56e67e6965f1d640f7f5", "version": "1.88.0", "port-version": 0 }, { "git-tree": "fd212350c540f3df5b7f00ece6653000643fc2ef", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0881f9150cf33128311d294b431d1479b545850b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "ae5485aa92466beb615ee1b9cc3d6f380f63fb7a", "version": "1.85.0", "port-version": 2 }, { "git-tree": "e818549cac272df25266218ff3869223dbc8e39d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ff9e6c4daeab1e9eb2626b5a1ccbb4cc066e7b1b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "6dbe48ac5428fe414113ec3a3d9a80a852cfb4a5", "version": "1.84.0", "port-version": 1 }, { "git-tree": "a85785c880dc278413f4c9c30a64f21ca848335e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f6419d12dfeb0010846e425acd9e5b27772e1ac9", "version": "1.83.0", "port-version": 0 }, { "git-tree": "0ce33f60fe1f1bca7cabdf40085a6f9fc50d7609", "version": "1.82.0", "port-version": 2 }, { "git-tree": "9e51e733f0ddb9e287a6ee03bf9cbb1f3f65f081", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c08aaff5a0420e89b7c31aac9fb993c1151a483b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "291c2d3312f0513c7f75fc088dbf4b21a7a5a3d6", "version": "1.81.0", "port-version": 2 }, { "git-tree": "da70e435e323a9a291f68074c9e5db5f3d78e0e6", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f7407d93578609dcc53ab0dce2fd1b6a7fb10ade", "version": "1.81.0", "port-version": 0 }, { "git-tree": "253643753293f6813c1bcc874cd28a6f3cc9ab2d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "77d8b1f9dff7eec868e4c8007c399bb123d80a97", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3ad60cdb4b5114cda754f4b15d96d72c9615b271", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f7f7b3bf671f25f6234f81de59fb5dc169ea2480", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7665f5ed27513a334df5b6051cb72d076ce626c2", "version": "1.77.0", "port-version": 0 }, { "git-tree": "9265c46ce355c8470fa5bf8941b59dd27428d92e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "58be75cc63e0e3e34cf5e38841e7a9b397ff6c0f", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "66643e83f9815f81f671e25440c5383d29549d9b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "106d3d34b44ee36cc05c1727672aa0a45725ef0c", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ca3f2d17408aa615e034544f2a24785641cb663d", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "e87591dcc23aed3bc2caa4f1046c4d5fbb149fb9", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e09ec730d3dba40cc5b630d167101957a8b67abb", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "38d6bacf07012380da449ffb63b593a368d2b729", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "08b8b5ce3fbb1b65efb653d99781b6da0e8f5f17", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f1e6c65197a406f933de4782022da1c41c0bb34d", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "092c1cdd85ca06ab6f7186c17fa7b42df2ab9b4d", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e1183fa10857302770a8c9f3fdc7c318e36c6f11", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "997a4ad70418a006592b6e5d58cab7dfeccaf59a", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-flyweight.json ================================================ { "versions": [ { "git-tree": "0f918cbcb52beaea022e986bdc8ddbc0ef5f124f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "097831516e9d19169f8fe37fe2303d31491b289d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "81ee8ff0748bac6063c8f1b7dccf4ea5d1372aa9", "version": "1.89.0", "port-version": 0 }, { "git-tree": "db4add512b994d7a9bba0434f12dd5b0a80c9fff", "version": "1.88.0", "port-version": 0 }, { "git-tree": "5711542f8653c419057098ef799e9bdfe75ac16b", "version": "1.87.0", "port-version": 1 }, { "git-tree": "b288beeccb46d1f20a1b2f7ff8c9a61532f1dcc3", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b009b7937daa96c41f1afbba2693f507471e47d9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d10065c7d8c8d4a3b3af2c1986930ff4058ba8f7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d9e1415d09c0e261b2f382cb1624aae0ccf88b1d", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ab3920f78e5a5f4b3e63f5b0bc1959e6507d54ad", "version": "1.84.0", "port-version": 1 }, { "git-tree": "dbb2cb540041ff638b5167c378d6dc17a434d23e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "ef75501a5a95e34a23f190e5d41792311f4b29fe", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8ae93d92af918047cdbce0acb4e28bfe8b3917a4", "version": "1.82.0", "port-version": 2 }, { "git-tree": "2145b81bf66231976f183f4f45084b70e4cbdc90", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1bec69f27d7277ac4a0d6b423a53506bce68419a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e579a7550fe58a6a6f43de989ffa33a961e278e4", "version": "1.81.0", "port-version": 2 }, { "git-tree": "315f94f26d5468fc70d6ce3d20013e8d5231ffee", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3e947368e6c5e21a77104fb4739c40bcda49f5bd", "version": "1.81.0", "port-version": 0 }, { "git-tree": "6769685902151b1d6e393cc08bf5af3d13d298d4", "version": "1.80.0", "port-version": 1 }, { "git-tree": "65fcde6f347e7f0100ef071d6f943d5e1f05790b", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f6e8af8c3f7450a4e32ca807cabfb4197ac7a0a7", "version": "1.79.0", "port-version": 0 }, { "git-tree": "899fef7cf017fd090f2e96146a425e7376320a4e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "3c927df2056a6603e5bdc20673e22692183fd92e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "476c374b6a92402048db19b98376eff8b3e05782", "version": "1.76.0", "port-version": 0 }, { "git-tree": "dee29c76a897b9430f109238464d04d1a892b2c5", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "6044a7be847a36194d81063786b4507a70cd1e4b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "cd81f59b277a62d38eed5731c9da51beefeb130d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1a519d39adb4c4c63b5aa3879c36413e857184bc", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c33aa459d8b97420dc9be69ccb8d11336bddc6e4", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "c4ff1c6f35c3042b4d50371d87a1db49f58d5653", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "79a184485a38c73314f74ea17c4bef96073d31f3", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d2ed0186cefb9f4be75f2daf2de174acc35dacf5", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "67fb51dffb1810d70b63c8a9d2707725a9acc52e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "9c1cd737e76c18a8c5520a2b8052e104d98c93d3", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-foreach.json ================================================ { "versions": [ { "git-tree": "540a49f1bed7a9b648eb545c000adb1c7de7194c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "3f4ffdf5773aa6621674bbd0bb6123d6c2577d8a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "970a40545dc165073fab67037e1a22616740c9ed", "version": "1.89.0", "port-version": 0 }, { "git-tree": "e3d5b6b20491578a66e26c88932813b9a6921a71", "version": "1.88.0", "port-version": 0 }, { "git-tree": "45155beaec13064b96a56aab9ebd6ebd81ba37c1", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c1b6a769f2aeeec424ae03e7ca63de0ca4870508", "version": "1.86.0", "port-version": 0 }, { "git-tree": "efa82f09a5590ee416aa5141dffeb908a070f685", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d496a4be912623f13a0b0e590775a1c2bce4f0bd", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4ee0145c968e3527784fa7d427cac57a603b3315", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2e9fa5e50246a289f352f1cbdc225b35f228339e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "10ddba1bb2b7513dc1459166eed1f4f1b25aa49d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "72825aa9cfe566882f23cb67085eb649be57ab57", "version": "1.82.0", "port-version": 2 }, { "git-tree": "561a41ff688b0ef41aa59abc13345b228ae8831e", "version": "1.82.0", "port-version": 1 }, { "git-tree": "24fb0ddfb7c99858a59c7ed443777a02e37e68a0", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ac60a3ecf1ac0d0148ab8f75761dbf8fa2994853", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e98779847a089a961c91dc9e6d8bbd9238ff9e1a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "772b57dc014df36728b81e4ccdee15abe2b57677", "version": "1.81.0", "port-version": 0 }, { "git-tree": "79898d070e211f5e82883529d4b2827409d31b43", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7b86b0bc008ecde19a6e4c83aa2365a197dc214e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "e8948df8fb3d54f6bcca0c5fee45f13406683a3e", "version": "1.79.0", "port-version": 0 }, { "git-tree": "468a08373a9339026a955a01faf3a4bc6fe0ab11", "version": "1.78.0", "port-version": 0 }, { "git-tree": "95983cd3eb11558e24d1f63a68a2ee944da927df", "version": "1.77.0", "port-version": 0 }, { "git-tree": "0e0fdd6589d7f0f04406efec82efcec315fa337e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "0858efd566bcda59a52b99a57203ef4d6fbfe1cf", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "40f12c44a787b514d99916450bed7738e1e63123", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "0a5b1cff9bbd97ef5e92e3397920e7caa4a0d790", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e8d052231eac42bd0153bc8059d76bd5874e7ea2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "791411a9de3197391afc34f4b353a56528d10375", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "cd8015ee0f7717458b6f8121691b23686ba46c95", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "04912cd07fcedb968946ef4d962450e8f9beee10", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "5e5b9f79c5342c8797ee86ab76fc37ad371aaf8f", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "dec25f531846c69f3b7bc34d5e16b1132ce24258", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "0fef6dfbbbc26838cdf1aeabc610c61512f62e7a", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-format.json ================================================ { "versions": [ { "git-tree": "7f4cc9fcdd80eab65fc4812efd37658a1942b37e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bf5fa464989db6d96d58cea55e1e1c2c38883403", "version": "1.90.0", "port-version": 0 }, { "git-tree": "10fd706c2785b46ade8621f59333faf88556ab20", "version": "1.89.0", "port-version": 0 }, { "git-tree": "47173d1b1caf6628e747152d10d64397df77d9ff", "version": "1.88.0", "port-version": 0 }, { "git-tree": "7d093151683e6e0e79554a39f208e42ea776e67e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fc97535cd7b1d11141b1675caf75d51a3a0c269d", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e0cf34b3c3d42e1badd88075c15338e612dfda95", "version": "1.85.0", "port-version": 1 }, { "git-tree": "62909cae5cb2e18ab2bcf22310ed3814708c42e4", "version": "1.85.0", "port-version": 0 }, { "git-tree": "514a2f986f4826932631082767976c26bfafdeb7", "version": "1.84.0", "port-version": 1 }, { "git-tree": "bca3fb74a1f4a9c93c6f223f91f20b905590fec6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "8b4697f0c1e3cc49f4bf08c12b748544c132db48", "version": "1.83.0", "port-version": 0 }, { "git-tree": "82fdf64c7a6daccebb04097c2264eccd4b753447", "version": "1.82.0", "port-version": 2 }, { "git-tree": "9562adeb23d81f0bfb89adb5c920ead09b302ec5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "8e1014808cb10f2d5396609b3e5a771db46c14b6", "version": "1.82.0", "port-version": 0 }, { "git-tree": "873acebaf40c0c9e0483ae74f0c9bb3b3c2e5d7f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d1e0529c9fbd4823d77dc120c1a3745c926aa395", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d79388d7ec021942397b7a449183c93e5971a012", "version": "1.81.0", "port-version": 0 }, { "git-tree": "8deeaabce25837a416a49e0ed89f9ba7785a5609", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8b8465c0970d28814c1162b864c02f685e471482", "version": "1.80.0", "port-version": 0 }, { "git-tree": "365fbda5a5fe624367c049e4c118945c0142d0eb", "version": "1.79.0", "port-version": 0 }, { "git-tree": "691157617974f33e41ef5ea7954d590a8f12be5a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "15c6449aa221b65139b38cc6c6ef91f32e2d2b1d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "352c9212fd097f4c147caf0dab9cec05cd47aa1a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9ebb4d57edeea6e294e0974f2fa68c61267d7c1e", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "f93be0e11dda65c103fb5a4d99b3e65f0d6522ed", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "37bafd2bb1f1e060f0d421b648c429cf0b5275ae", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5bc5e5887e15c4ced41fc6e8b09f0ba442329f19", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "4cd07c6e6703126828b64e56a438df4363a2ee5f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "f1807fb9234c76e92581c398a7d121a6cb89a690", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "b68dae1fed40b36124e501db6099ea299fb503b4", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ee7856020e6b25f23b01bcdc8e1c46bf69801022", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "6b94368f580fe9996c4d699407c3c2863bb1dc8f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "82f8512970c22ae2885847bb20a05bd3746eee89", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-function-types.json ================================================ { "versions": [ { "git-tree": "3802e7d77ccbf05b5853737c1768ef0fd3f44c29", "version": "1.90.0", "port-version": 1 }, { "git-tree": "9b8a068f1a94acc3f00baffe9b9d2fe0e49b1420", "version": "1.90.0", "port-version": 0 }, { "git-tree": "21f4acfebeb149a3de71f341be55a5ce59cb32aa", "version": "1.89.0", "port-version": 0 }, { "git-tree": "89350648b176e8b7fa29c581eacb759399beb1a4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3cb3d8dbaaf5d4a17dc611f0a97ea399413e336a", "version": "1.87.0", "port-version": 0 }, { "git-tree": "13e0fd21c39949a145a90a001eb01d95c10e6cd9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f104ffe8e18e3f3ee0a80d8e5bf80b57933dfe2d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "92c14af0950ae5db39914882838c80a8e33cae5b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "63b92c39bea8b34d91ed946ccbb9fb86979c5fc3", "version": "1.84.0", "port-version": 1 }, { "git-tree": "ae386f84f582456bae7c4f304930bad8cb3c3a43", "version": "1.84.0", "port-version": 0 }, { "git-tree": "77f27d230b3784277075862bba2c282977ea1f0a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "bf2f0ad26a4cfe85854392e5579bc75d7a4a60d3", "version": "1.82.0", "port-version": 2 }, { "git-tree": "1da109d6c53f82fdac9bdf6efa17af3d47dacb54", "version": "1.82.0", "port-version": 1 }, { "git-tree": "16f002900e349d02179d662c54e35e4ba95bba4f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c88f49eddde9b3bf50a57e13d824400c9a75a7b4", "version": "1.81.0", "port-version": 2 }, { "git-tree": "425354f551537d162ac19f04bafb1b165dbabc79", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ebff54d6ca2dce2f2b5a3cdc9a57a7bd2d972c49", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e4562bcffbb698917249d0155ce70c9598311cd8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d09eff712efc437ebb49cc7dbf5644a641be3b31", "version": "1.80.0", "port-version": 0 }, { "git-tree": "53ad331d5cdedab7b40eebaf15d9f8081a5d9eed", "version": "1.79.0", "port-version": 0 }, { "git-tree": "94d4dd365c29ad1be2d148f3c4cf7857e3ac1edd", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7675770af935fb375c0350c7a5fc561f9bc31432", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2f33a85bf7a578c9659b4bccd02296568bae3f3e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "a6cb5686b38457ecccc96480f5268772bef6a6fb", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a2369833ecdf43bd825f433945510a992bcee989", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "b8fd587279015c05c6990368748f9ceb304fb340", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "fd186cb2044ad241c97ebabc408ee175544eb77c", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b44865bd6514b29584593eeaf3e6f3a80c6d3096", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "979a82f02c522a90a1f6c066f35bfb5ae8c11f9d", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8c4bbd7925148804606aaf8de66798413cdd7158", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "152d2f99a1363de1047f68a6afea5b54ef301dba", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "57c3a113c76954f29e4fb417e2d3cd72b6fd06bc", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "9e63e3ed8a4668b89e9fe12fcb6a1aa5fa3c3f52", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-function.json ================================================ { "versions": [ { "git-tree": "2048498b24410da70663df6357839feb66164ab9", "version": "1.90.0", "port-version": 1 }, { "git-tree": "edec3248cde8686d5106daeed9d6b3fe48f8d972", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5d75dc069bb0685bfa48febfc0d4bffc0f46f8c9", "version": "1.89.0", "port-version": 0 }, { "git-tree": "dd9ac4db4f4b66a229827fe980cf6383a5e7d3a6", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d5e6a6034a45067c02e51b4ee6808e48e8e51d2b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "1673fa911493ef1eb8a444dcb65b3e66fa338695", "version": "1.86.0", "port-version": 1 }, { "git-tree": "6c633bb26db4be00c4d2aaacbb36493cce90edae", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6a43002e49ebc7efbaef90a797ab79a73a3c914d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "f10fc77f4c0597464acde55225177170865e48be", "version": "1.85.0", "port-version": 0 }, { "git-tree": "cbb491314d064cb3ca01d483ce10b26b86b01881", "version": "1.84.0", "port-version": 1 }, { "git-tree": "8c317e18c45ba2eac464e2f8e1e179356183c063", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f066c30c0481a6f75452d3a1372ea3425adea156", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9dec477afa8d43d2a95ff257974e703a5fe7835d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "dce4e73b054f0b611a8d1e0f9efc9dd8cd79071f", "version": "1.82.0", "port-version": 1 }, { "git-tree": "68d39a15284d4d7eeffdeeee4364b496e262cf39", "version": "1.82.0", "port-version": 0 }, { "git-tree": "137f9eb9242e4fa1aac35c77497f39b830d74943", "version": "1.81.0", "port-version": 2 }, { "git-tree": "56a76ef3dd958d592be87023c7b4052852dc76e6", "version": "1.81.0", "port-version": 1 }, { "git-tree": "e303ef2b9601710383798e0889c3d952ef1b4f2d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "b3d421112777238fe9150fd401d81e7578d70f36", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4a3017f165de9e889e161ab353dda4439cea8169", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7057b960d6b790eb30f51ef17d67aa958230e100", "version": "1.79.0", "port-version": 0 }, { "git-tree": "74d9b1e1e9951fe6f6f4eeccddf8c83ff1280462", "version": "1.78.0", "port-version": 0 }, { "git-tree": "092af2f7e20c516fc02e8a39d8887f2301bb1fd9", "version": "1.77.0", "port-version": 0 }, { "git-tree": "ad37e24486926b336f2ee015a3fa88cc8f8a2490", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7698d7fd2822972ca04cfe1c9778c9f04fb56c3e", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2587658b7f554ae2f511f5b6f60eacd7ef9445ae", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "7909b7580775de1415ab8dc39c5e2f0129a40492", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "71548401e59f7399ff8f2c44a17e41194643ceaa", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "705467644a18ee7984ad8c2fa23e255a7922c9c0", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b31fc6976a0dc0fd88b0d655c22ce0ba4f57b6a7", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "96accd0c39bb10476592bf1dd2c2e803bde52bbc", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "559bac35d4a461dc12a9b6b4a4eb630817d00508", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8bb9a1e360b9c8490e3160744f4332c7b63a309b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3a7b27de15f0cba563fa6eb9c100bb0e870b3525", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-functional.json ================================================ { "versions": [ { "git-tree": "a8150d40e2b3d92e2609e9e3cc165cbba86caadb", "version": "1.90.0", "port-version": 1 }, { "git-tree": "22927b6233ecdb598324e9794645f6988b6a27ac", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ade45ba6b3c1ceec40f8eb3ac8d3a523f80b2038", "version": "1.89.0", "port-version": 0 }, { "git-tree": "2ff2af6a3352bb8fbf08b0c8d0ee09be73db31d4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "c79b9680e38dd27a0979e2b636cf87f616b06215", "version": "1.87.0", "port-version": 0 }, { "git-tree": "1a149e24ca42cbda3040781ebb9a4a634ccccfba", "version": "1.86.0", "port-version": 0 }, { "git-tree": "985d85794495e615e94e17c007055281850498e3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c944ab99b7e422142adb594b89964a20269b4904", "version": "1.85.0", "port-version": 0 }, { "git-tree": "76f22f7381a32363066817bf9139a91f2cb764b0", "version": "1.84.0", "port-version": 1 }, { "git-tree": "76acd323a71cab65354fd244a1b6cd5d38950b8c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "aba27201e0794309bf68a44e8727378345927b38", "version": "1.83.0", "port-version": 0 }, { "git-tree": "fd5a2fb579f798abd7b8b0c118543c92ee0f0774", "version": "1.82.0", "port-version": 2 }, { "git-tree": "3c428ee1b1238a5fbf337fd549d3b3c3afc17930", "version": "1.82.0", "port-version": 1 }, { "git-tree": "cd3cfc8c7f87e4f36bfc5ec9e6309349707370fb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "2d8468f160d82e789c30d2431053324c0885d4de", "version": "1.81.0", "port-version": 2 }, { "git-tree": "568dcc4ef1b8a0e6ebf6a9fc336457e06e93fd41", "version": "1.81.0", "port-version": 1 }, { "git-tree": "24cf5405bc2dda7e87cc98f9498820f6dfee4ce6", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2c8d615fe6316c17e838de35cae546196767b26f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "43e00a8e09e0b0fd501b8a7b8dacc2a189a0c587", "version": "1.80.0", "port-version": 0 }, { "git-tree": "d8fd2c72eb4f3c8d501a44f7a5f8ecfe608cc3b4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5c46623f2b1557b35079a69ea27aa495f8765f26", "version": "1.78.0", "port-version": 0 }, { "git-tree": "26960fd1a5c5ffbb7da0d747f43a61a27d8825eb", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e84b797bddccd2a46e818d4364f71810f687b117", "version": "1.76.0", "port-version": 0 }, { "git-tree": "f74e3af1a511361a97810fef8ed7aedbfff6706e", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "48a83df9fabe3740fd776de03952b9e682e8804a", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "1f3450aec1f61b162578eb248dc32a638278884b", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b944d1bcc38c95fe8dffcc0399846f8ded9397cf", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "99d35f74a877fad4439aa38e57b5e8a18265c095", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "a6e572d32456fd108d2e0211b48c5e76ac682cdc", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "77a4b666dde24b6f8f12ed5d755be57cf4dd9c3f", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e9986fa958e109b271e09df87fc044940ec74d85", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "35815977396813873d3f6a7f2248207e462446b7", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "66b907d1960b8eaf1c0b69755a9562de5cd034fa", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-fusion.json ================================================ { "versions": [ { "git-tree": "49b5346b0c3471caf8dcb19c78fb982923510393", "version": "1.90.0", "port-version": 1 }, { "git-tree": "3b37259c35e83e333191efea38593f2e9432ec7b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "c63f6e3ba7e2890a640553e6caaf2a5418c60913", "version": "1.89.0", "port-version": 0 }, { "git-tree": "bd409c100d97251c34028434e9229dbdc2a9b6ab", "version": "1.88.0", "port-version": 0 }, { "git-tree": "36b8a6066c35c7a98bc09e109300014c3aa441a1", "version": "1.87.0", "port-version": 0 }, { "git-tree": "7fca552578f4e09ce194b1bf0d6f25bac435907b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2defb3e586f0a240aebb673357201d5a3332da96", "version": "1.85.0", "port-version": 1 }, { "git-tree": "91d988664a3d7b4ff92f2b22b9907c04f004d066", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4156ff5a8c7aa5b2ed9d1a5d7a76c5b470ab3b53", "version": "1.84.0", "port-version": 1 }, { "git-tree": "108d3dffaa34eb6e0102031318f6f81dd4e6af18", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0475f7220a08b37bfbea03b873211f9ea76fac08", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b150ab085d5b818a169fc105e3b096bf7493e5b0", "version": "1.82.0", "port-version": 2 }, { "git-tree": "0c32122b9244e041424874f6657451169ab9522d", "version": "1.82.0", "port-version": 1 }, { "git-tree": "bda2444dbc209c5096c98f45d83c7185cf5d8c20", "version": "1.82.0", "port-version": 0 }, { "git-tree": "fb97e9c73403b64b7bf75665dd1077069cf089b6", "version": "1.81.0", "port-version": 2 }, { "git-tree": "f88f929ab17003c8de9ead5881a7e4b564ded6ca", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3a038323a5ee8559149b3805a253d76fe4a7730b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ec6b28fe668dae192e851b799e9cd5b7d1c21690", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4e5e11a2bdcfb620804b47dd24f09145d67892e0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "10c27fdbefb33b57367582e1a8f262db9d94d807", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a7c7b4de2e38c3436c0781ccf4b56567b8c2ae61", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e33ce42cfab1b757d73fc0c4ac7edacaefd0be58", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e6168fcf7f513e57e8f01f5c0ab19f446a66cd57", "version": "1.76.0", "port-version": 0 }, { "git-tree": "4a2c7b6ae8f3faad83ee354e4bf9023ab9e7d1c1", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d299aa16799fc91a5d902e54dbe12eb234756293", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "d23a350e5837b5d12bfc0d5e3a8ee54e1ab93928", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "88a7edbe3b27916036cf55fada773b206478df28", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "11cff4b1f47639b22c5f10f1069d1f774160867b", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "e0367b03a2f0cab43b3413ef6a148339c6f0a132", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2ca42617107d772c2028db500205b9eccfc6b3fd", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "55a49ead107cedf511b40faef530f4c123991bfd", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "dc578fadd38a0e438786a3821d778aed2db48e1e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8c08f9779d4bf23710998c6cdb5d9e1864b2b885", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-geometry.json ================================================ { "versions": [ { "git-tree": "8b570d8550070d9ddda2d117f17a8aaf86e3fc96", "version": "1.90.0", "port-version": 1 }, { "git-tree": "0fe1bb241afd1daff501f824d4ab91c8f2908117", "version": "1.90.0", "port-version": 0 }, { "git-tree": "533d8de328e83490ca080e47bc6f097f20e5c645", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4975506479d2d5811c32907d2b9700c99a3c9425", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e1aedf6a4a58cd7ba13aa39604ccfdbcc05c1ae6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "23f3d606087b2bcac52aba2f817430ec3272d839", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f602131722e97e2503bd8a304f004e67e1125467", "version": "1.85.0", "port-version": 2 }, { "git-tree": "7155a69c6f5916d97e3da8cc3cd650ff5a1bff33", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0b3eb979ec0a64b6c9c6a2f301e011b6eb2fd8ba", "version": "1.85.0", "port-version": 0 }, { "git-tree": "fa1e090ea1ec177d0cddc4907f1605fbf00b69c9", "version": "1.84.0", "port-version": 1 }, { "git-tree": "9c52ecf6eca52c8bb966f602b037d2ea8df66ef4", "version": "1.84.0", "port-version": 0 }, { "git-tree": "24efcc4edf764482c058e70a2ce8ab500d40d1c2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d4067f77462e9b8846d9a00471584a4d8ffbb857", "version": "1.82.0", "port-version": 2 }, { "git-tree": "76191c9a206f916d0bdb9619bdad1499c426741c", "version": "1.82.0", "port-version": 1 }, { "git-tree": "72bf3411fd298c17563829e75df8c40cea2f9b9b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dc16ecf82aed90badcd28666763e8928f8712e4f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "7790464f19a4bd577b9b0603e5b1a152a9417bbe", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ca2580182fa5c9ef0bc1961ee4b76ba58c200b29", "version": "1.81.0", "port-version": 0 }, { "git-tree": "c2cf914316e5568a4765a8656e338b476b6e149a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "22ed5ea6012738b12286b239ddf1cc9606e3130a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f05a5d0f5a5889edecadab0ee49a1c13dfde0898", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a4c2fd98bc285d97c11c99f5f631481fb534efc4", "version": "1.78.0", "port-version": 0 }, { "git-tree": "96d1b04d567acad7c4caafc869fa7daa64968aac", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7de8c6c9ed0908a5d85b3dd739d27922fa213931", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1d40cdf7af5bd875fe73020d7efa5e7a61ea07a1", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "aca46b177a6183db2102b947df5778cec4f8d46d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f038a62e72808a64a2810c97865a309e8204054c", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f297e97e820a52a7908e4ad532995f9f6b2acc47", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "38e8e685d9940578820398cc3ec2b029b89b4188", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3d6605392ce3986290dbdc1eb3e371deb3670e39", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "4ffbded3c5bcd8159a6d9a3710be5297545095c0", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "20633f32f9d12fd2d444038435c8ee9873af4578", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "aa0af012ee6403a3d46a63784d8fefb13be12a8f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "51b8fa3a16c3bdd26c1e643196539f9204abb5f4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-gil.json ================================================ { "versions": [ { "git-tree": "36ddbca79d8cbcb5402cf1c98c52a171af704e8e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "02c6b5b74345bde33e6be6e9e7d95742d6693118", "version": "1.90.0", "port-version": 0 }, { "git-tree": "f1d6e96dd993ae507d737dc2653fb849144e91a4", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ff7d3d61caf82d52b6c81c6f6971ab6159c63f39", "version": "1.88.0", "port-version": 0 }, { "git-tree": "f3dff2de8377a324d80c670a89f5fa3957f832c6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3374bd66c7f74a66ffe34804df583db01eff4e03", "version": "1.86.0", "port-version": 0 }, { "git-tree": "462119ec244012ba5593322b0592171ddea49138", "version": "1.85.0", "port-version": 1 }, { "git-tree": "794dba3523699fc92b203229a75e89276958b9cf", "version": "1.85.0", "port-version": 0 }, { "git-tree": "5b2a070c57d749ab6044eff71c2413ef65a0a37d", "version": "1.84.0", "port-version": 1 }, { "git-tree": "60b79d49cc7db6de724ea225d18f4a3f5c087d2a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0a3fb8c8c6ef3abbe51fb887be13d94d8c4bb983", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f8dd74ecbae93b5f746fbe67d895a00cfeb9d231", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ccdfbbf147613d95e1a7fe3cbdbb56aa91dd2b86", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3ea5df9a76efbaa25e8693cced4b310ae9a3bcb9", "version": "1.82.0", "port-version": 0 }, { "git-tree": "8fa5151d0d17d7fa4d3a9c649ad83e77ea37de72", "version": "1.81.0", "port-version": 2 }, { "git-tree": "adad1e520a4e4f0a76cf1836d98899319881ac03", "version": "1.81.0", "port-version": 1 }, { "git-tree": "953e79f3ca492f37ed2a849dbce7fddbbf4a7047", "version": "1.81.0", "port-version": 0 }, { "git-tree": "87ff21e8f7a36871221406d9ed84c59832680567", "version": "1.80.0", "port-version": 1 }, { "git-tree": "2bec2e61c5e01a16e3cd4ca47449aa15382931c6", "version": "1.80.0", "port-version": 0 }, { "git-tree": "fe36550466af98298217643a09ab451aa6a0b4c7", "version": "1.79.0", "port-version": 0 }, { "git-tree": "670859cf36c60562fb5036af7d087df936234c27", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d6607eb56e9f61771dbd6915d2e5d4b3b2976a7e", "version": "1.77.0", "port-version": 1 }, { "git-tree": "2f4d4429e10ce2721dc48a01588fbf200c683bc5", "version": "1.77.0", "port-version": 0 }, { "git-tree": "4d323694c269cffa88a705e2eec5339c1dd391d3", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1e6fa6894d7d35173abae2aab50e772fe6219340", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3118f2bd41ee5d4090f65fd744059eccd7354624", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2140de981a3619717847deb365b7dc0ba4671f84", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b665b6fd4b9bf2b5feecf4ba7d3bd3c7f5f1e89d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "585a36d3b204b5436e758773cbbbdf4d4dfe5957", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ca65b78a4395a7f4a3a61d6d7de41172586109f9", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "90ef69828e1910031fe3169e41b5727013dd6fb7", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "2cea779a516581694aee780d55ccbc194dea6eeb", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "23cf8cf124803cb76a8f43a0b2a502472cd11339", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "e9aae1786c82d6d6d8df8be38d40e4012e42fe04", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-graph-parallel.json ================================================ { "versions": [ { "git-tree": "1354488dfebfb91ab42d2124e0d63c920584d316", "version": "1.90.0", "port-version": 1 }, { "git-tree": "aae97db2db4d6e9c568b753e222e00f2d62ea36d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5fe61ad3965baf198f040b5adb659ae9b063c7e9", "version": "1.89.0", "port-version": 0 }, { "git-tree": "63fe6e316b8dee6c945f7d4209bcc42733f602b0", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4f917942c069bc63356009274b500be894d786ad", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d06253419ac2f8ed0545d417bc62956e36add681", "version": "1.86.0", "port-version": 0 }, { "git-tree": "4e69ee5efa2b28da7041ad1fbfa77c25899ce01f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "448013df11d1a1576bd1da3465ae9059d8e7b9e8", "version": "1.85.0", "port-version": 0 }, { "git-tree": "946273b6d6938086d1978da56809e3fd09ffc3e0", "version": "1.84.0", "port-version": 1 }, { "git-tree": "186c9274336af104cdf417d254641ae280b84764", "version": "1.84.0", "port-version": 0 }, { "git-tree": "bbc5095f32aeabbce7ade0bc7708f44f6cd65718", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f43ba5b79672a46bbf62a53ad000a7e7d14c041b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d3c482730f924eeac5f136bf8bd6cc87f8866ecf", "version": "1.82.0", "port-version": 1 }, { "git-tree": "8f99da9c560fc02f2616387c452bf488df834c96", "version": "1.82.0", "port-version": 0 }, { "git-tree": "5a97932ba05361ac44593d13f4988f60cb504674", "version": "1.81.0", "port-version": 2 }, { "git-tree": "2c9a5ec4471d2d3e9ef827b28ceb021a17dee1d0", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ab4e5ef44d89ddf30bc8dedfc13c2ba85470a899", "version": "1.81.0", "port-version": 0 }, { "git-tree": "eba27831af655f97947aac5806f4659943ca9c5f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "2246b1dab26eb279a95fe40b6d6f225b2469d8cf", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3a95f6dea34a2262e22d4b94404afad68c603a8b", "version": "1.79.0", "port-version": 0 }, { "git-tree": "199f9b8209f287e7e9865e07b074d618c28db410", "version": "1.78.0", "port-version": 0 }, { "git-tree": "779ea0573b2c460496e5014b1776f8577d9a9dac", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e71dd1ba560f6dfcfefa262a5c6762a15b94e3d4", "version": "1.76.0", "port-version": 0 }, { "git-tree": "2dac60f2be18293521f7b65f6b47cd1f94760491", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "1cebec2eccaf5ecb9e5ec1ef6459c80b2bb3d73f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f56ff1f6929ab78ab6afbf815c3cef78712fae91", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "ad8ed8eddc955335f036a01d1d8ccab264a10172", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "7597dc5fb1dbc43093d92721de4a09bc7dc14a5b", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "4d9af1f1223b650a270d6d61d8938c007d884dd0", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "839527dc6b38fb3570b0daab610371442e4b19c1", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "dfb2ea19a4a53ca95a5218bc4ac095de731d945b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ae5a36dc24a75a595e82194d757a16433423adc8", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7fd2581affcad742948de2bb613fc7b923b8ca30", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "18b2df12e0f5905ec79152d0f83008bea6085480", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-graph.json ================================================ { "versions": [ { "git-tree": "83a81d293ce910fd345afadde79b857acc2b8835", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c6db9e4372c0e31a74025eada3f351e04a5faaf6", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b59aee638c5e8ced010aa5191cafc3e9cc2821a1", "version": "1.89.0", "port-version": 0 }, { "git-tree": "69ef36141b8d456f8bc7198f849b012f546b1891", "version": "1.88.0", "port-version": 0 }, { "git-tree": "667efc54fa3b66a18c0f42b4ebacecbc76597a6b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0af645ccee76e0e72ecfcf7eb14661be5350e0c3", "version": "1.86.0", "port-version": 0 }, { "git-tree": "4acc26e2e8c49850f56821f30e60092a41a209b7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "07ef1b58ff41b08b2b926bd4230280bf6bd552f9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "2d0e1bca7819582ce1312bae2c5e7ae1c9bc6a44", "version": "1.84.0", "port-version": 1 }, { "git-tree": "d88bd441d8170ad7029d932c97557f276cb283c2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "6647f8f09420268c0381bf2416492cedcc348c73", "version": "1.83.0", "port-version": 0 }, { "git-tree": "1eb9dc73511a762ae15c9a114f1ccf8e43c73bf9", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e4d430a0ca0203e374d282579904323b025a7e3c", "version": "1.82.0", "port-version": 1 }, { "git-tree": "2f835213c3acc49e139e652da9a3f3e3585fa195", "version": "1.82.0", "port-version": 0 }, { "git-tree": "18151e6663e64a1bda78ba949dd5dbf882ae5469", "version": "1.81.0", "port-version": 2 }, { "git-tree": "1bf0ca0faeaf8ec424984ce8f957e0aa57c9167d", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3ef50980ea1bed35297aeab87963e7fc0566a6d7", "version": "1.81.0", "port-version": 0 }, { "git-tree": "133fb1954fafd50e84cdda7e7e5ce08a1ef34403", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d7fd5ed599b799127c74238c346fbca9be455009", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a0281e8f5b61dbeb2daf3b3634744daf9c58cdd2", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f7b342391819ed511280f8ef46b7d52a399f2648", "version": "1.78.0", "port-version": 0 }, { "git-tree": "8c7974cbf961af1d5eabeb1047f2dd16e087f180", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c14b7885fb22225d265897b942a090ee43bcc1c3", "version": "1.76.0", "port-version": 0 }, { "git-tree": "699b83c06257c66df62492390eacfd6b1608b9c0", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "e59a90a49c6f92b540f8350f8bad63104438245b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e8845637669efa4cc70ecff5f03f33f5d16e5639", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "a5c17602ca9994b15dd6f34a35fce8915a65fea7", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "09bbd8019bf0acd2a98b0b6dfd9908a2fe664e10", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "67f0220d2f05d75dea5b456a13f3c0754348a2d8", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ee090689af149f896264707fee2e7282d18ed61e", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "bf39e1ff8f477a00e5d5972c30856db387e96c22", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "1006a7d0e775d6e21eb94d8c16e7b06e39d9059f", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "f67119b7b095731112d35e28674a0d291e080d0b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "fa1171101310305e714c4d4a5634870017f6e892", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-hana.json ================================================ { "versions": [ { "git-tree": "c69ba7a4cc3bf9df6f6fe87f253912bc6126a181", "version": "1.90.0", "port-version": 1 }, { "git-tree": "841c703eded1a1bca2ebbaa9ec8fa434a1fa4a2f", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ead17152529d7c7f955cff4cb5f9a70a0d7973ed", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d4c9c91d9bde0ce5c5d3224bd45df5a19567f637", "version": "1.88.0", "port-version": 0 }, { "git-tree": "dd02af793ec4de28fe493ba4540267f4c3c04ce9", "version": "1.87.0", "port-version": 0 }, { "git-tree": "7976e077b0ce2a7c49061487f646c1cecc47d98a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f2c00b2bb8c219f9c55028caa6deeaffa8a260ca", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6204b83ed0d3b8e485cb9d4b05ff5d7ac4b0e84a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "740dcfb60fe096804fde86ce1a3208b40f59bf47", "version": "1.84.0", "port-version": 1 }, { "git-tree": "6fac64afc8b870205efaf625ed00cf2eaa196bfa", "version": "1.84.0", "port-version": 0 }, { "git-tree": "75994d0511e21fcd96453070b4bfe104c76e8a21", "version": "1.83.0", "port-version": 0 }, { "git-tree": "5d7127090cf4379d6bd5cb94f6c24567b25d5213", "version": "1.82.0", "port-version": 2 }, { "git-tree": "4d522c647f882aae8c81ae652b2a5d23d8422f09", "version": "1.82.0", "port-version": 1 }, { "git-tree": "038723361793eae30d853d3b03776d5e627fef5c", "version": "1.82.0", "port-version": 0 }, { "git-tree": "89a6fbc04abf3095e7d74157d2e684c208cd670a", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b81b9ec996fbcab2b515a2327578b8a7032aa06b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "dc78ec769a8ad8c81f9001095a5987306d5df4c0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bb5ffe4a8f02f762efed5aa2fbbc9227455263b0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "dd068f8c4347e0ed41005a78ee39f98ecf79c441", "version": "1.80.0", "port-version": 0 }, { "git-tree": "2dda9ed4c338faef5a98ec4f713b71976c4de9aa", "version": "1.79.0", "port-version": 0 }, { "git-tree": "3ff9854bbad812cd23a4c79b500aa8349fbed192", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e24bae813978df09c5b5718b6c4d2aa87734ab2a", "version": "1.77.0", "port-version": 0 }, { "git-tree": "55d762dd0711b68ad1e494dc5d7f3e88ba6b6889", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1e41f17ca0e3d7b6918bb37a2918cee5399c0b39", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5d22fc6d56f826ee443d2c049cd1b95d6a625217", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "cabaca11ff778ee09070254f943ee14f2f5836c5", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e61b2cf8453794b627f5b81c4a3143c80830ff5d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "879c77cfbac432ccc48053adf009537242963853", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "21bef5638c6446396aa9ad059de2940789ec69bf", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "0c9495415a7e68805f583b56d0bfc6b196ac7da7", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "f80e68923f39a9da7fbed22f7bd20474d3ae36fb", "version-string": "1.68.0-1", "port-version": 0 }, { "git-tree": "fe2864e7436df466d9d5f27f446168720fe1733c", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "d28e07a525b685b88130a792cb5322d409546f68", "version-string": "1.67.0-1", "port-version": 0 }, { "git-tree": "ca224e3cc8c3b4af823dfd7537caa949855aa1b2", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "74b076598e1212e4b4c1382f2dd19ca3a78a500a", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-hash2.json ================================================ { "versions": [ { "git-tree": "3f1604738b1b0ce1a4972d34d7d75c988403b28b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "738ce97a83beb91e11700e9601fd96aeeee0f90a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "45e1cf48e94fa216ff57409d90f3de4ee66cd040", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a5d3f68267341dcfef8b57681ec099c017926c51", "version": "1.88.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-headers.json ================================================ { "versions": [ { "git-tree": "45ffc654d045acf0356605f006f3672522afa725", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ce94788a3c9abd64f4ccb15ab07277117f7642b1", "version": "1.90.0", "port-version": 0 }, { "git-tree": "95dbcdac30de15e8f72cdba71aedb4fb06638718", "version": "1.89.0", "port-version": 0 }, { "git-tree": "89fca00b9db236eb0cb0ea97b9db246c2db7b3e1", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9fd041af7c0fe69b8048faf83ef3ee22eae4c1d5", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c01b4dd603c01edf1940f0df3f6498f51c8acda1", "version": "1.86.0", "port-version": 0 }, { "git-tree": "dc074dbcbe8adaf7970a9dc92d8c385267042e0c", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6cf27bbd161498aef1c033c3b3951b27c6f430b7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "548632bdeb7c8faf005e0c1209d6532d6742a929", "version": "1.84.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-heap.json ================================================ { "versions": [ { "git-tree": "c166917ace3f03acb634cdb68fb46f2f32b33501", "version": "1.90.0", "port-version": 1 }, { "git-tree": "15e62698d7cbb1d3835a7bb8f0452046a3717281", "version": "1.90.0", "port-version": 0 }, { "git-tree": "6b70bad7617666347cd37cf9e79ee7810addc9cb", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d5aee73175815d261e6b7a0802da2cf6b91f54f7", "version": "1.88.0", "port-version": 0 }, { "git-tree": "2792f8ea75f64aaaba021512857c8f30e7e28615", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0ceb920848e00ea03d8932b546644bbff367a357", "version": "1.86.0", "port-version": 0 }, { "git-tree": "43e4e30e82635be9bde96043d9e128ce136f26cb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "8d908fa2a18f4d6694407105146533d59e8360aa", "version": "1.85.0", "port-version": 0 }, { "git-tree": "56d01434c55a6579e2d03d90f420c5c442be2416", "version": "1.84.0", "port-version": 1 }, { "git-tree": "6e142c237b9a50af6eea02bb60cb8e076b3cc017", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c7dc9b45d83570bc364f2eec2caa556ca1cbb5a3", "version": "1.83.0", "port-version": 0 }, { "git-tree": "910fd038954c6cf54b603c02fca5fb21802a1758", "version": "1.82.0", "port-version": 2 }, { "git-tree": "034d09501ee6199f969a158831419ae14853e73c", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ace4872c79b9dae444e5b0805637cb4167763643", "version": "1.82.0", "port-version": 0 }, { "git-tree": "26a032a3687e89048236a9ad8ce14514d4653121", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d9e913dff50fdfafb35088d7024308f05a9d4552", "version": "1.81.0", "port-version": 1 }, { "git-tree": "1f9e0d60fbdc06ec05ff0b8eb2d25d5f3bfabe1e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2bfb87607aa7a01941233e4fe118381417327e04", "version": "1.80.0", "port-version": 1 }, { "git-tree": "02f31ba7775130e875051cd5f5cbdb76066ff0bd", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3be349686d19ee7b297058dfa2d8177bf22cbe9b", "version": "1.79.0", "port-version": 0 }, { "git-tree": "76c4ec7815b1660fca1c1efd9b9c0c2f034ba4bb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d9947d5f31b9c87f5ce1e759e02099b1949502e4", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7901583dc54be5f2453147da8fc772c5295f3ccd", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b9b42d92244a3cbc265a562cee71f792997fe5a9", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3608fa1571c2213d0c7b9f32044aee7cffed3450", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2904e44a1748a001cea78dd70146d2cb0043a5ad", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0378653343a32297617fff5aada3302e7d4d3c64", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "209843f55bed4a1592e65d86a387dea4661fd6a0", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "40435b933423f5c066010e07d869edaa7c88645c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f4c0c69a49a79bec20a03ef00f452f247a3a0cd9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "4a013536278c65f1bf337ec1820a420adde6fdab", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "3ce93239361454ca14026151d4db8bd5e4707960", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "be0a9c9fba0fdaea85ad9935d71ee1c85e391df0", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-histogram.json ================================================ { "versions": [ { "git-tree": "a9c54a5bd6c70308082619ae3492cf37ae17cf74", "version": "1.90.0", "port-version": 1 }, { "git-tree": "32e37f1db052e3baf5dc31ca6220895ff7485e42", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5fa4e4dfbb48e6df36450d36d734f19c8ebeab39", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8eaef044cf8a40d9147703e1818d54d72161e5d9", "version": "1.88.0", "port-version": 0 }, { "git-tree": "17098feeb44de50c405f37e7bfb7a6368d7c84fc", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b93440e637983292c9c694b6cb04cf7a50e5b939", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3a84f0d2b1167047bb21927cc311b8d9860df291", "version": "1.85.0", "port-version": 1 }, { "git-tree": "1f88ae32a57912e6b2b28dc9eed68879d373638d", "version": "1.85.0", "port-version": 0 }, { "git-tree": "f3061b64ac805691da30ae0b1393248818c9cf40", "version": "1.84.0", "port-version": 1 }, { "git-tree": "d638494a36a082a981187d2c559bf339160f1948", "version": "1.84.0", "port-version": 0 }, { "git-tree": "cfb8451fad642630b3bd4072178d9ac1b318d705", "version": "1.83.0", "port-version": 0 }, { "git-tree": "7a09aa03b51de15b9544589aea569de877eeed1d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "366641b5e6528033cc0067bec3847f26d9031edd", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b5667fe6ae81029e94fd3b4617af18b93f06937e", "version": "1.82.0", "port-version": 0 }, { "git-tree": "91d6246873413ea16a04b2454ac88fbf17448874", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0e2f6e0f0fae012808f3b4b1eaa49f0f10378739", "version": "1.81.0", "port-version": 1 }, { "git-tree": "60699d10ad64113983db23d7c94e82e7b5092261", "version": "1.81.0", "port-version": 0 }, { "git-tree": "dab5adb258a540b70e4e32762cb119a3449e096c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "70a6aaca30a05b7f234b62988f1bd8f53421710a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ba0d99a55988d554d24baf0ae9b8dbd39950be11", "version": "1.79.0", "port-version": 0 }, { "git-tree": "223b95e57f20afec67e891aa7fc884e6ac492f6f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "09522ba204485792839f58b858ac31550e14a023", "version": "1.77.0", "port-version": 0 }, { "git-tree": "dcdf8ce8a1b3b6563bc1aae0ef60afaaac061f89", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ab55551ec17e50829409f586a5a34adf5a50ae5c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "173e5d74d7bf701a3e6f0aec3e0395d0770b5cc0", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "413c415e731b5975cd216b18c5d59a85d0f95d4e", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "dede7e3bbac394763d5bb0b32b9e1c001a46c918", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "10f29ce482381d7d61183926878c4c5a2c4bf87e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "28a97cb5e04c8264aeaa49d65f0c211af844c964", "version-string": "1.70.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-hof.json ================================================ { "versions": [ { "git-tree": "42f5c503d4e570a5616ee1b6c3d759b72407ab8a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cec9c5393df1614fa1d148c1836ae69fc4406c38", "version": "1.90.0", "port-version": 0 }, { "git-tree": "cc4792f23c6ff854386d249189d5b6daa4422940", "version": "1.89.0", "port-version": 0 }, { "git-tree": "99e18b88087cb71b680733b9796b81b2173efb48", "version": "1.88.0", "port-version": 0 }, { "git-tree": "c3bb87f136f67d5172fe9bff977063b4f909efd5", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d9000bafae71adfd3208c989e8e8633b58c209aa", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6dc042e71f6c7717585d4023d4b68a5832da45df", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5618015f9573c8be97b5435adc2285a779180458", "version": "1.85.0", "port-version": 0 }, { "git-tree": "210f2244ba63b3c0e8becdd27cae7bdfabee5155", "version": "1.84.0", "port-version": 1 }, { "git-tree": "dbc18283a5d5acaab16d2165fc3ea2c4501d6649", "version": "1.84.0", "port-version": 0 }, { "git-tree": "56156c027ebd8af07a502ea9b5fc58fee6cc0b64", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f1277a21ad4a01b42013c1e4324a5ad47004bff9", "version": "1.82.0", "port-version": 2 }, { "git-tree": "662c6f191b2d2991f86cb15e71c7297d5d9acd02", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f832ed0aa13f9f03feabb69c40a91d8e31b090c9", "version": "1.82.0", "port-version": 0 }, { "git-tree": "b5f24a2434567a16b1c40e96f5da71b3f604fc3a", "version": "1.81.0", "port-version": 2 }, { "git-tree": "9c286ae61cd79f55dad40f58deeb458dbfb5a78a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "820e0652e0ec6b25dcc5afad2dc425e6e7d393ae", "version": "1.81.0", "port-version": 0 }, { "git-tree": "60797dbac318098253cd607c0e3cb5fa04a36d9f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "40ecf7b9f806bed59a911028354f0f471b5e1beb", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b4c1a946a0dc6f554cc76efa7ff4636ff4aabb08", "version": "1.79.0", "port-version": 0 }, { "git-tree": "899745af9cdd07134ebe4b4223eb749b7efa5be4", "version": "1.78.0", "port-version": 0 }, { "git-tree": "2c22e81e06ddd812d0328854ce7302f662fca398", "version": "1.77.0", "port-version": 0 }, { "git-tree": "8bc8af27f9d16f09f9c17a179abdf230d39a24eb", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6f5fab9a08a313e03867147bf73ba966873039b7", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2287c8486a1a80546318ecfdbcd9ff03abaae6bd", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c2a32c161bce303306e8dd9b60c933647a362c21", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "60b5ee174c9b4f37d1a72a7f379b9af39d4cbfcb", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ec76a42f72f5128ae7043fb80a63769039fc83f2", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b0bc0ab3791d10eb971f3a4dff63777d5fa23978", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "38a4e85d5b67407cac8b163ad5ce2ddf5524f186", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "9bff5f69fa7b4c9e4aa252170765f591ad808272", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e3a810f552d89e930cd23b3b78da774f064f620f", "version-string": "1.67.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-icl.json ================================================ { "versions": [ { "git-tree": "d03fd0376add302214a167f09daec79440bf40fd", "version": "1.90.0", "port-version": 1 }, { "git-tree": "090550a7a17e2fb79558b15b6bedf5ca63076bfb", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ed0141af4ec2d8fb5fe40d1a2c12c3f6064710f9", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a8de7db0df8fb16b361a6469097cfe6aa3599171", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e1b0ec8abcc8046229671acbe0abe5801091e216", "version": "1.87.0", "port-version": 0 }, { "git-tree": "f88a6a51cab67f884cb24167b54928588dec9162", "version": "1.86.0", "port-version": 0 }, { "git-tree": "95d449713b907010582731bf28f1025e8c45f852", "version": "1.85.0", "port-version": 1 }, { "git-tree": "f3347c085f9626193e462bdcdfd4fd024f767b1f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4c719d28575e0a460a7fde2896b30fae2d87de90", "version": "1.84.0", "port-version": 1 }, { "git-tree": "90556ca7d9068087ce741aec8e268256176af6db", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d8cf7df44d1c0d7579411af9d8c0decdf498475d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "5d24993000e79436df3c10f8424df464e20da8bd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "91d333f8870517291000ce2d269485286a4fd9bf", "version": "1.82.0", "port-version": 1 }, { "git-tree": "0246484074b61bbc8623021e87922ef06ecf84c2", "version": "1.82.0", "port-version": 0 }, { "git-tree": "cc8a315d67b9f86a015d0f261dd8c15be0f746a4", "version": "1.81.0", "port-version": 2 }, { "git-tree": "a79e7c5abfe69c813b88760ab4d56f4e9990c389", "version": "1.81.0", "port-version": 1 }, { "git-tree": "81b72f6c4a2f9f7714b7d049d9ea8403c49886ab", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a3b1aa6aa1a9190a0270d208ce1832bf8c0deca2", "version": "1.80.0", "port-version": 1 }, { "git-tree": "061544233c810a2a3e04cca99364bb2fe3edcbb2", "version": "1.80.0", "port-version": 0 }, { "git-tree": "9ce9f45501ca2ac3a6ff4f2c42c69f1b104df70c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "074322ef21b89c54d87c0446716221c3c20544a8", "version": "1.78.0", "port-version": 0 }, { "git-tree": "753c4291a6d27d5c2fc377455c83df2ee9fd569a", "version": "1.77.0", "port-version": 0 }, { "git-tree": "70080f8e245f5ba2caa54b447f946bee8c998ec8", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ed49dae8b85d0e4833c06dee49367ea99083cb8b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "67b543024af53abb0da3fddfdd3cbb261d040612", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c824b2a02652f39e46bf42e19b9bcdf25fe606b0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "20fa126a6b1dd3068d54f65dbbb677be4e4b8dad", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "7d038d78b6a9a2947771c83614b18470378f01a8", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "791ba36f47c6565c51e33cfd925fa02bccd54370", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "7c606c24c50c7a1f42916bebc9990ad172bf759e", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "9bdd2bc348d296f3c891a606e85e9ece3809f061", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "65e31fa324ea2a1791f45c62de1167c3d0c91a9e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5248d68e10b387c031529124a7d7f6e45ec1651e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-integer.json ================================================ { "versions": [ { "git-tree": "84c39b9230d10819aca1b0d2fc8a79a417cde38e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2a398be2dcb0f5df3d2c0ce2b2a11522f769e206", "version": "1.90.0", "port-version": 0 }, { "git-tree": "a37945e3e5b2c880c256c6266cc76c40e425b008", "version": "1.89.0", "port-version": 0 }, { "git-tree": "74fcf2f7483b0b82c14d59e9feaa006a75403e3d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "85daf4d9f0176a39d09b9fd521edd223ecb098c2", "version": "1.87.0", "port-version": 0 }, { "git-tree": "944979527cd3e9b158f6d4fa27174a154b756f44", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a1ffd40ae899157571353903f1d34f26a76d2314", "version": "1.85.0", "port-version": 1 }, { "git-tree": "734270e5c00d151f6f41c1e9cd325c0c7ae58ea3", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c73dd82231a499dabbdcc01dad4cedd2b91eb158", "version": "1.84.0", "port-version": 1 }, { "git-tree": "ebfef65ee52f5566976920e3cac7f451f66c7ced", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f70c3d065ad54b0b64e16541cfdd86aceec513f3", "version": "1.83.0", "port-version": 0 }, { "git-tree": "46935203002bae9d52b70d217abde7758c21d2ba", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ed95b549c8719f65d4599fb6a612db94043c033f", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7b810bfe282f052259b5b6bb4e93bc16491e48d2", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ae7317b7aa788f978c871b93e027ac7e0f90b287", "version": "1.81.0", "port-version": 2 }, { "git-tree": "309669ee306be8403d37aee0468fc1898091db73", "version": "1.81.0", "port-version": 1 }, { "git-tree": "4ede6c7fe5bca5ac249ac99d0be4ca7d7b11cd73", "version": "1.81.0", "port-version": 0 }, { "git-tree": "524f6107bc7ae49cd24a04b94ed8886604ee3e2c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f980326e208e00560547b76cbb13759357e74598", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7970a7ba822ac5e6a8a9f98ba5ee3631b3ccff3c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "18f2f923e2a8d4f026787eb8626def460dd2ab6a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "375a2af7e2d5d620aa9f42064255c269b0c73f5a", "version": "1.77.0", "port-version": 0 }, { "git-tree": "77a69013cb4d850223122dff3bff12318a140d82", "version": "1.76.0", "port-version": 0 }, { "git-tree": "de70ce0d1500df1eda3496c4f98f42f5db256b4a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "96ca1fb123e6d59d2f26b4fa2201fb71ebf86e2d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "49614065d63f536117dc73509735f121e9fc5d85", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "173956c61a26e83b0f8b58b0baf60f06aeee637c", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "00ba8db1b3c811f4643be561ac251545e845ad7f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "766ad7ba2aa1627ab2d1dfdcefe04ce3bcb974f2", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "359bc0161ab1806de51b0e96bee83cb22c2729c5", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "00198657d22adbd3b3be3606aad8dc3cd77f99f3", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8860236c4936a1bd2daba10adc592278668cd771", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "51bc582666ba37ef4c04355dadfa2bfb21d26593", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-interprocess.json ================================================ { "versions": [ { "git-tree": "466c4ca77a42d4816d2b6be2a1ef3c31471f783c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2a3de79517916053aa3e951e1c26d51a675504af", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1b3d8fa6a66b2762b3024f1cf795f6083f9b1c85", "version": "1.89.0", "port-version": 0 }, { "git-tree": "91e4884ef30ff5ffe5bb7b0488bef03d396db67f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "480f6f44c3767ccd6c591ca65aa1f2548369ddc6", "version": "1.87.0", "port-version": 1 }, { "git-tree": "1613f55a28a2a16e1e1e0c8860f59af0598be867", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4b46ca2a0ef4d118cc25e45e6c621cd54c60db08", "version": "1.86.0", "port-version": 0 }, { "git-tree": "fa41cbcf45f382a10d06e7c028d6f9b4d9341d4b", "version": "1.85.0", "port-version": 1 }, { "git-tree": "fa62f9583db8d8c7c7799f2952ae8b33f39b8a56", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a748d579b7821792423f650cee8ee09f4ea4abbd", "version": "1.84.0", "port-version": 1 }, { "git-tree": "54fee6877683ea31ecb7d9f4e3f62e65ad1f76fd", "version": "1.84.0", "port-version": 0 }, { "git-tree": "685634ef2e0b7c514fc454d668e27c17937dc005", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ae2d2c05c7433c83dc9eed47f7cd13b6a4c6c46f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "dc0de1141c5074cd88b9de17d7ea2b39c58b6afc", "version": "1.82.0", "port-version": 1 }, { "git-tree": "6f3b7d8cd436c4dae51ae807f8a7b04888f06447", "version": "1.82.0", "port-version": 0 }, { "git-tree": "a2fcc6726c54c13660a87ac4440e91c762041f82", "version": "1.81.0", "port-version": 2 }, { "git-tree": "f0667e5eb28c03a027ae2932e6ce529b4b8c8169", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b4e6ef1d2b4e94cb8b88c5a556cb272df655d9ed", "version": "1.81.0", "port-version": 0 }, { "git-tree": "c82814fdaafa13305c7aa4c29340f025544285ca", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c9830784da99cc5088750233a568961dfe6701c0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "274a988e2a03f43beba2efb240692e0af456e8ee", "version": "1.79.0", "port-version": 0 }, { "git-tree": "220049a8136b65045c04fc13aea3a259e8f4f2b0", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6461c4f63a5c0f31efb213c9d1e3b9328b2e3dcc", "version": "1.77.0", "port-version": 0 }, { "git-tree": "6e0c78814b07fcfe58e421f651bda285081dcd48", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1ad6903e562cc3464bbb35bcef49019bdfc81c5c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "aa4515196d5e946d62d40f6c1fa48959fdf18a03", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6fc3deeff3f8b9dbdd381cf8ea3566dc9992a439", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "32b1336d2f512c1ef7406c2a6d1de878e08a590b", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a4bba7c47e00fd2650be458f14784f3e4a7adb0b", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "4e58829ee4fd79c42f506bb4cdfdc61da6c00386", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d66d64cf172899e74cf93ed0a9a9c4227938cce5", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "326f127429b4ac45e614b202afed77ab876b1f14", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "f24b6f297fadcf132ceadd6c93ffbec49f3e095c", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "176f18d74fdf4c8122a3e151556fe9bdfdc93351", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-interval.json ================================================ { "versions": [ { "git-tree": "af30f16fc7e25e471e2aae35b5206cacde61916f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "77313e20e78e02ef1b1aa6979ef673b9d9c6ebf3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "534fa424f95070136625ca3062774517aa3c679e", "version": "1.89.0", "port-version": 0 }, { "git-tree": "7bf11a3c4a703a2415658aa67f916efadd639345", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9cec26460ee8e2b6d84416b90fd86686916cef6c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0d33fb61fb9ad07cea57563a2157b040910e9dc9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b72455a12e915908d0cdc367b6c321e56d4dc715", "version": "1.85.0", "port-version": 1 }, { "git-tree": "e84dcea54e8407e7bb3935f8d5085e664748559f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3120be3f0eb4b20af3db635072fa8b6d9de5b120", "version": "1.84.0", "port-version": 1 }, { "git-tree": "52084af2ce6522507fc50f224eb944690263560d", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a3eb772da1f0b5a2fe86601716b0fa8fc8aae645", "version": "1.83.0", "port-version": 0 }, { "git-tree": "10e93bc8db9627499e8681ccbac7f42e5869b75b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d189e52a32b8ef2ca41b5afe112f5a4e6430ec70", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3e31f7965f783bb5f03cd50a94fbec422cfe7a9a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "00f8cddccbe6c6c6ec78ed9502322ef70c89c9b0", "version": "1.81.0", "port-version": 2 }, { "git-tree": "f69bc8e032d8222c8ff1911c69812200d91a8220", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f46a004d23803f4daabf7e0102474ec227e0f243", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9dd8339312f4b410207cb01118937eb38df2ac3d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "cc4c8e51cac9fa083d9f181e9da090a65fe62779", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f196074b225959b27fb96794ffc54db0293efa24", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5786ba8a3bb499958bbe8ebbc58c6bb4e4c3eb91", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e57b55cec7198cb4f448933fa2763465db0c9672", "version": "1.77.0", "port-version": 0 }, { "git-tree": "6c7ee56a1456d43b67e772976c40eab0f96e10e8", "version": "1.76.0", "port-version": 0 }, { "git-tree": "f397df607d232f6a241571ee0b105bcdac4eb6d9", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3781783a7cd287ebedfe5fc779f5b942796ffc3c", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "482101711382bcdc093a95cc29d102a3d7f9d3bd", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "442e0015e885d6fb746f79acceee978269404fc5", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "12ad9a0049e30a20815733b2ea16cf8a6ecb5c4d", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "7e0f662d9a68b5326b41ff5146e8d9d68f07dcd5", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8af28aa1146b7f70325abeba60b3248a25cdd806", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ce6890a813e1eb95d73143147cdb12049496c27e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e719d66e35c99c9dbee5be3d7e56b1dc0f5d7b34", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f73fe84d5d82b52afa2c9081201abf7a4d977a5e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-intrusive.json ================================================ { "versions": [ { "git-tree": "fffff3ed54058bb3452129fb8055564e0b672559", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bac0ddbdc4115866ba14faf6aecaa8fe0cf773ba", "version": "1.90.0", "port-version": 0 }, { "git-tree": "bb11f3b2df959ba7a4852059eefefc23c08cf3be", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0e559d87a538a62ab92d14b3a1bf20f4b15e9801", "version": "1.88.0", "port-version": 0 }, { "git-tree": "543b1bdd8a5e50c2970fca90fa0742f22aa3187c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fdd697cf75e1c4151548b2a5df0cd17376999534", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e08f0a538360476dfdc5dd6399ef22da17cc3b7a", "version": "1.85.0", "port-version": 2 }, { "git-tree": "43876a8d4ede7bc091dc2a64904e3b9528ec7fdf", "version": "1.85.0", "port-version": 1 }, { "git-tree": "786765661875cab1398c3170ef649284b558d2b4", "version": "1.85.0", "port-version": 0 }, { "git-tree": "93dd4bf5f8b7812bc7fd30f4705a804791719930", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b5f197c773d23bb868ae6ccce4c28dc0b97997ac", "version": "1.84.0", "port-version": 0 }, { "git-tree": "05886d36db2ae6ecb44cf3b964c2d0a4d486c129", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9c1632e270e737c9f035585137c26841952c337f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c6ef0a6523433599c5a6e0bebedd4b2caa6b56cf", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7c4e469b6d426fdbfe13ca7cbddd98caffbc7942", "version": "1.82.0", "port-version": 0 }, { "git-tree": "cab2fe961140ed73233aa308135f1c97b00dde44", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6226465090f8b525e4831e0b1fba661849368023", "version": "1.81.0", "port-version": 1 }, { "git-tree": "081c2a217346c224c69d028aea34e2bb8e8b3ea8", "version": "1.81.0", "port-version": 0 }, { "git-tree": "85a69fe7a9157a957545c6c3233586715d18c9ae", "version": "1.80.0", "port-version": 1 }, { "git-tree": "538ebc32732429b15db300664e07bab697c2e5e2", "version": "1.80.0", "port-version": 0 }, { "git-tree": "5162285659ad371e022c242481e20414c8b23e2b", "version": "1.79.0", "port-version": 0 }, { "git-tree": "351ad9aa5db5bf50ab87a390a69d5df1d2b41ab7", "version": "1.78.0", "port-version": 0 }, { "git-tree": "9fb49266dc300d8914a0485972738b960ccf4339", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c63e249209fcddec92063bb59266892ed6bfab38", "version": "1.76.0", "port-version": 0 }, { "git-tree": "138cc5e30e17278c8247882027053e5e55983edb", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "0ed5eabbc8b4060255baa26ca7749c47fce0b5ac", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "198d6267ede5c74f2f8a475cb0e45e3f9a983a86", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "60b6ce48f2d00c71f858704706d8e2c6a8e3d5df", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "0cad083c85f69a8f2bb9fd6d52ba051b9580c9c1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "2bb8d9d14fd3701b7c02d5fe262b583b677dd42c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f52f29e102153ffa743c86802973aed3c4bf56b4", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ef88f9601d7de908f6d1529a1dce4e55c0920154", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7d6083a0db55c19849b2cf09199f00ce85e7a3db", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "c23bebc1e03ebc5872dc9627af9a89494f5f85d4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-io.json ================================================ { "versions": [ { "git-tree": "c79681101f2a3a466023edd8ff12068e8d11323d", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4e83c6efdd4191bc37b354b302e2fbb0956c00fa", "version": "1.90.0", "port-version": 0 }, { "git-tree": "52997d9b6a05b007e2897de28beaeea18968cc0e", "version": "1.89.0", "port-version": 0 }, { "git-tree": "bf0040fba4e0e01974090341efb3a14e69226ff4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "64fbc4e1f42d61e37d5e152012e3c7b3ef7e359d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "381228ce40062d70c8a56afaafed81710a1ff743", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3fa4c0dc034227cee5c7e0725300c2f90359b14e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d6bd5c92bce4ca0e1412b1bd967501e2f6efd086", "version": "1.85.0", "port-version": 0 }, { "git-tree": "664ff9de8b5e975247aee9236dbf20c528afcf75", "version": "1.84.0", "port-version": 1 }, { "git-tree": "dca15cab49b7b33ab58762315d107336d28b404e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f5d84659eada088f612945a42ae940ee7dcc37be", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2e824cb312fdf8d4b782b625053595e9bb13dc3c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "21da7534c21a1dfd1ff5833e330837ad8fa26341", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7b5af6b0a01341944b40737a439c4242a6f44b6a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "51dfeafbde1b365b08a8e802e89057312f92657a", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ac0c2678d6ba9f391d6e95e236084427af0d90eb", "version": "1.81.0", "port-version": 1 }, { "git-tree": "2c792597c4d6fbb3fe7797f77ea3dc935725dc18", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ef9f00355277eacf410b5661b306991f21cf82bd", "version": "1.80.0", "port-version": 1 }, { "git-tree": "cfe6645cfe18cc173a5101310bc86dbb5fc5532a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a248d3f95d95973f63b5be92c81747165ca0319c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "33cc953c79a65bcdfdd7b55a757bf3f4ac4be4bf", "version": "1.78.0", "port-version": 0 }, { "git-tree": "83ec8bab1f1bbd6eb1e2883a26747c7982d5c34f", "version": "1.77.0", "port-version": 0 }, { "git-tree": "33d8fc8dd5a42e12f4d1cd0989c147a674d5c6f1", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7bf3407372f8fc2a99321d24a0e952d44fe25bf3", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "f732621c8b9c2bc455d848fa08345e987fb8178e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "406f4ccf94edf942df4c257d900dbc8cf94760b7", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "d55d1d87b52e03c69824a0bd2b09ee80218017a2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "24ae8d54155f8f2bcc6e641ab00bd95cdcfd78f4", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0d0e25c5ecaa73859f9262ff50695cc4b4673635", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2eb12d8533bdec0cc5186760b6a66c151ff0916b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "599397428a5768949f00dc40f1edc16b5a652348", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "bf8c222bd844a970fa6d7d754b61deb7661e52f3", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a28f4caa94b41b5c6f0e23680f5813ea7db74f31", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-iostreams.json ================================================ { "versions": [ { "git-tree": "c52c4c054f7b7a7cb895c3cf81664c8043e8af26", "version": "1.90.0", "port-version": 1 }, { "git-tree": "365e912de38b51468c3d66dddb7ceffddc0c65b2", "version": "1.90.0", "port-version": 0 }, { "git-tree": "83d89aa79acba44a92c58d8e90374f9b94ecabcd", "version": "1.89.0", "port-version": 0 }, { "git-tree": "e8fbe064fdbaff6cf188a19a821c1371ee271e5d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "03ec288339a971fc4644840c05fa876162708ea1", "version": "1.87.0", "port-version": 0 }, { "git-tree": "485177da12bf8a3c09581def8abdd87456800d39", "version": "1.86.0", "port-version": 0 }, { "git-tree": "5cf74240d21ef3d7f7165849ca9bd6bc5eae5483", "version": "1.85.0", "port-version": 1 }, { "git-tree": "3d7ec667107f6c6e4f4cf3a633e533177926b57b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "30e9e2fc1dbf9251ba57453cbc64f211001bcd63", "version": "1.84.0", "port-version": 1 }, { "git-tree": "01c0a85616fd0d4f8529c0ffa48bd358833d9ea4", "version": "1.84.0", "port-version": 0 }, { "git-tree": "be97780ebb3e46185f1838115f642ec2d110f76d", "version": "1.83.0", "port-version": 1 }, { "git-tree": "da8972f0e4c59981021913e4ef16a39a9ff8d491", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ac82b98be4e5ba2e754a532ba2754ae4f0496469", "version": "1.82.0", "port-version": 2 }, { "git-tree": "9a39f5835d29b23ad73b036797cb4f6f000e83c2", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3938aa03b3ebf9177ab9f922455ae29bf02c8330", "version": "1.82.0", "port-version": 0 }, { "git-tree": "d5913a98e3d5443e488ba65ee874214487b7b1aa", "version": "1.81.0", "port-version": 2 }, { "git-tree": "058658751a071d36ea77743e66b8fc39caf7bc5c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "41f7fbe68f78962115f6720907d9c98fc962cd54", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a3576e6c1d93316cde685ff4f9c2c054aa00cb4c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "37de3e0e0107aaeb4eb8bc2ee29457131145bb36", "version": "1.80.0", "port-version": 0 }, { "git-tree": "75821705e2df069874466bb55c4b0c4561950831", "version": "1.79.0", "port-version": 0 }, { "git-tree": "73e04423bfb004c75708458688afeeb8a1806ba5", "version": "1.78.0", "port-version": 2 }, { "git-tree": "1e23d8d78c5a33ee92fc1ec70db8125db72032a2", "version": "1.78.0", "port-version": 1 }, { "git-tree": "7e240f9d647c1142b5b61c9a635e3aa186756802", "version": "1.78.0", "port-version": 0 }, { "git-tree": "286c74896c6f2a6057bfbce333304f279bb38aac", "version": "1.77.0", "port-version": 1 }, { "git-tree": "9ff4027cebb3423a41814a8c2da942ea959b17ad", "version": "1.77.0", "port-version": 0 }, { "git-tree": "0909e271c34f98d1e5857091ce21b16e1d165e05", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1f0088410d7f47204c0e74c97aff4bde77c75a9c", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "2b708757922b782c079c4a77e08f8531e17eb41d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "375ce4c4f471699c1ac0a746bfd7d0dc11f1c9f5", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6c2e14f3af068ae9da54517afdf7da56c2f39c2b", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "7cf49ab9bccb31dbc5a861d3b5a5333fa94a86b0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "2e5bbc43df6ada5973c4265a2462384e30d336b5", "version-string": "1.72.0-1", "port-version": 0 }, { "git-tree": "562431746a94b0247194b705fc68746de101b11e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "09d5568e52ea48f9a89051156b9af7667be22f7a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "dd5ba91e8770366ac4e5be28a978ae3930ff46c7", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "56dabe65865150f9e79e1615b7c5e51eb5d89746", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "16026f8896bf4136ba3f73e8841692252dec3eea", "version-string": "1.69.0-3", "port-version": 0 }, { "git-tree": "aac37ccf7cdd00686884b912e59aa707c761a902", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "de6d34777cffe0ae6141f1cfae3e372868467972", "version-string": "1.67.0-1", "port-version": 0 }, { "git-tree": "7a91e4c2c2392c8ae1a339ccf1c54f2851392b62", "version-string": "1.67.1", "port-version": 0 }, { "git-tree": "11eb33dffa1196fa9a1e766316f7d61f672cc3bf", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "fc8c3ed37cd0e35242400d151907cc891e2c9275", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-iterator.json ================================================ { "versions": [ { "git-tree": "3af9bc41d5ca406591540ef93fdfd87321430877", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e7f3609f139b365120fc25a7360928589bf29e21", "version": "1.90.0", "port-version": 0 }, { "git-tree": "afb261ecce2d7eb9a01aa41c835608482c129e03", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8c9d7242f99b48a2179719640bc47c4a8a2f8f70", "version": "1.88.0", "port-version": 0 }, { "git-tree": "5dc5136e9ababa4323919a8801c4bbd9fbb74122", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8b9a0e755f202cc140222722f4292daf54ff582b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "7140544c82b8985f676a67fbe07e70118cf4278f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "099bbf852a1d1d8c7f0a7bb7dffb3ae1847b9a93", "version": "1.85.0", "port-version": 0 }, { "git-tree": "8585a34dae111e35fbe896cb155470280cda9485", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0d18698f7abe635814d1a4887b5b94157c5fe2b0", "version": "1.84.0", "port-version": 0 }, { "git-tree": "8870bee36b1dee543b554c3e0264e6871a6ad6e2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "32b20eaa8ec0539f484ba8dc1a08fd163757d48d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "06e57442234e51fd436cc31ac285319baaf83e26", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f5dc624248bbaa34b1614bd5de984c149e127544", "version": "1.82.0", "port-version": 0 }, { "git-tree": "68a8ec26ae2f81487bfd0ccbff5a707229f996cd", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8df361e649d7f5fbf966ef161b28af645105a7ee", "version": "1.81.0", "port-version": 1 }, { "git-tree": "44e9662953a0bf361a16214c96d5e0fac86a73d8", "version": "1.81.0", "port-version": 0 }, { "git-tree": "67993642b285e3448abef01738372590a4795044", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d5df6fffeb95a0cdd702d8471696ca31a45f1600", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a9b329add024642bef5338c963bdfeee41bb60df", "version": "1.79.0", "port-version": 0 }, { "git-tree": "474aefb2b63e5ea3e6794631eab47aa3d6921573", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7bec2abc5b714c2bd975178406937ef59a73f29b", "version": "1.77.0", "port-version": 0 }, { "git-tree": "504d724993ea74e0bc0b17b4101539cd603460d5", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9796d7066c411c9e540919d37456d79e54cdc2cc", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "7e6906049be8b43bc404dec8bff8a4e315f41d3d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "741d285427fa1c3a6a1b2ed27b44c5c794616ed0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5b9275973d112488b78e500867f99ae5dd31cf5f", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "354b7979c62c509a89620a0653250a8644c93ae6", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d50f6ab4481fd899799ef8e798360c9d6f18102c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "b8d080ec9e23272a7730d60b83b8a5985c30e1ab", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d07c820b6443a7100848d20e8da0ffd726e2ee42", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8cd12f01bf776a3c1cfbcc341133007250d2675e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a691363dc4c9d891c1519a2622caa77e549977cb", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-json.json ================================================ { "versions": [ { "git-tree": "718f36c2e8d5c4648f3e66e3f1ac61f2774caed8", "version": "1.90.0", "port-version": 1 }, { "git-tree": "13ca6dd5ebb8e25c81a1658b8b662968e96be1fc", "version": "1.90.0", "port-version": 0 }, { "git-tree": "301d7c0bdf066a1d7d2ad4bdca400ec3a498368f", "version": "1.89.0", "port-version": 0 }, { "git-tree": "7d2dabba3ccebb9e2f43db0664904470bdb78182", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4d2314c91c86fc0e49669d8872030af877de65c5", "version": "1.87.0", "port-version": 1 }, { "git-tree": "7beba32d8cd5110b0b96838ae1d0850bf7e4243b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ac2b49b7ad148839f5c83ed0ba3f905ec70945a3", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b8ca70df18b62ee9af9dc466727247dc7c411eac", "version": "1.85.0", "port-version": 2 }, { "git-tree": "db1dd6c11761caf7757a629f5f9ab66aa0f70bab", "version": "1.85.0", "port-version": 1 }, { "git-tree": "b0eb825fbf843ee90e0f2b69aea96c48efdb87b3", "version": "1.85.0", "port-version": 0 }, { "git-tree": "32556f291648944fd04a5375f7cc094b0aa38145", "version": "1.84.0", "port-version": 1 }, { "git-tree": "071f85fda05b2ea3fa45d6b1dee3070950074762", "version": "1.84.0", "port-version": 0 }, { "git-tree": "bf515b1083df1c9d11c17713ea9cd22ad8deee20", "version": "1.83.0", "port-version": 0 }, { "git-tree": "a88bb521a85cb7e8577f49eed059f656b0d81d07", "version": "1.82.0", "port-version": 2 }, { "git-tree": "5fb8cff5e879195843741626bde8a0cb9955e1aa", "version": "1.82.0", "port-version": 1 }, { "git-tree": "8258d6ffb06571b088d3d6d1119d8106c3acae42", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e1823e435f5b0a89baadc0aedbd7b80cd3c8b4ef", "version": "1.81.0", "port-version": 2 }, { "git-tree": "fa4d8274b8ada5b572a32a42bb8a46299b47dd6f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "bc736062b1d63d94c5b86ab928071e1b8ac41c49", "version": "1.81.0", "port-version": 0 }, { "git-tree": "20921eed92d9e5a1083d8eb83fb642a401e55a64", "version": "1.80.0", "port-version": 1 }, { "git-tree": "e00f0980f7fc5a06bf3c559b6a1052e068d5de96", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b19f47c6cbcc65ddb2a96bf60df6b358a6e64ad1", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e8cdadcefe4c56aadc0120b9c1a86ea6504f3cea", "version": "1.78.0", "port-version": 0 }, { "git-tree": "80003ce3a7bb1c08b9ac354c58085758343ca42d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b7a48d6f43ab6578d7f25969c0aaf0c385036c8a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "cece09f870caaed77b754156a1f568ee05c9e653", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "e32cc65f06f648018ea098e89fad7277ddacfb36", "version-string": "1.75.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-lambda.json ================================================ { "versions": [ { "git-tree": "a431ca722f5fdfdcea22a5e62dca040b5d36cc3c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f60b59e9832431b3a4770bc24f9bcfdf00334658", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5431500a5bfa41c1a24b882b599fc261eacae9d6", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1e99d426f37d820d965205b4222cbfea4f348f1f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "fc84bc81f93d22e3e09851803853ce1cd3bcdaef", "version": "1.87.0", "port-version": 0 }, { "git-tree": "2d8080f6e41b95cd9f13ddecfdc4db12bbb72994", "version": "1.86.0", "port-version": 0 }, { "git-tree": "135f4e731fae240af4e8c65cf10fc34522f2e34a", "version": "1.85.0", "port-version": 1 }, { "git-tree": "78379185529776f9df89b4db0bb9ad60565cfb4d", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4993b3be9d47828189557df71b63c3a938a8800b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "43da545cb3f4c5f999a69afa8588efded1489161", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9f5b545dcb43d7901ce68b14f598605e86b2711a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "4fe41ac7e3024b92d857b855f8833f83d4abd11e", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7a7a8a65879f8262d502979631cd082afdf2d6c6", "version": "1.82.0", "port-version": 1 }, { "git-tree": "5f935f0fb24747b61dad58b0da1c4a307d0ae125", "version": "1.82.0", "port-version": 0 }, { "git-tree": "07560825826af31beb117e969084c236ad5daa59", "version": "1.81.0", "port-version": 2 }, { "git-tree": "394caa4a71a57da9b4b6e8d1c2e58c435aa225a8", "version": "1.81.0", "port-version": 1 }, { "git-tree": "56b08cb572dc1c10f882965e661b9e49a62b01ec", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7204e1ed786f4b70c34119c3eb233bccfe7ce375", "version": "1.80.0", "port-version": 1 }, { "git-tree": "e96e65ee098d0846218e7df13156804051aadd23", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c2eedc92baf94690429ab150e062fe42296099d5", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ad7994962fa2139e8b2e67adbf505c555a57f3c6", "version": "1.78.0", "port-version": 0 }, { "git-tree": "56ca5b54a9913e884d79bfd72e13ac6d72acd71d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "63ee28b3c29f04ba5d62bb8d0c9ab8e4b051dd1c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "c3c314ac0cc6971f58c7dd9fc1708caaa059b7ae", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ecd59c68772feb74919ebdf44c167cc4861d96c5", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "b84d08f24d75980f71fd3eb32cabf04abad9f910", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "a69106d4b2c7538346b30a3835bd62a02380ef80", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "416917de2911aa77376bb216144c5689ede56a4f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b7bca98db8904b795465f145f8b2dd97fcd52771", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d09d4f548eac0af72de975c7a2f927387bfa7626", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7a405bc2379ebc1b22949de2b43bc0e7880992ba", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "d6229bccd7e425ca229739ad6ff4fa24b40acda6", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "66815689094ae90c8d8783cea5f78a455779fb24", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-lambda2.json ================================================ { "versions": [ { "git-tree": "88472cd15656049eeff3fcad05b23c885aa175ad", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b0011a4764ae25c3843c2c281be2048f679278b0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "607517a4c9bc1c80f700ff58ad0f80ea1a30150a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "efa55fb0a4e1ec1b2e17ada61d3693fd23919f3b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "8294dc4c9aa91486f7a2e6b749aee3c4b16a0f45", "version": "1.87.0", "port-version": 0 }, { "git-tree": "741e34a4eb1475ad121a01b659c81ca2d7cbe406", "version": "1.86.0", "port-version": 0 }, { "git-tree": "fc62df395caf4130ddbae2adbfb5f251371dadf4", "version": "1.85.0", "port-version": 1 }, { "git-tree": "7e901e36c760e1cc0288bb68601319da7e96ba38", "version": "1.85.0", "port-version": 0 }, { "git-tree": "fedbc3e3176a0c1c7eeee4f306f69bf010d6d428", "version": "1.84.0", "port-version": 1 }, { "git-tree": "09bd21488a9a351da1a26d00dbd76f1da8f50a8a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "399a7528e08b7a9e7a888cbb7d4a60c3212d3fc4", "version": "1.83.0", "port-version": 0 }, { "git-tree": "0594208903bfe03699a0b1c4a549156425bc0bdd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "5ac3cfaa7a77c860f9ad676a028c0a79976c4e64", "version": "1.82.0", "port-version": 1 }, { "git-tree": "551076a74a5ed1a80ddac2c5838406b3d23968bc", "version": "1.82.0", "port-version": 0 }, { "git-tree": "b86a3afd40cb32ccb1b8e6e59df60d471e5d11a1", "version": "1.81.0", "port-version": 2 }, { "git-tree": "2a549d2ddd842ded64c2b98af01e8d963c93dbcd", "version": "1.81.0", "port-version": 1 }, { "git-tree": "aeb97944da37816d5edea13b87bf8aec9c05a554", "version": "1.81.0", "port-version": 0 }, { "git-tree": "fee0b83871eaf93b97a052e4612aab52f2d8b271", "version": "1.80.0", "port-version": 1 }, { "git-tree": "ea6068a8cd06ecf372e93ec9967af05735e0e64a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "2ef167f48c1b762124536fd34843f247e9af8b89", "version": "1.79.0", "port-version": 0 }, { "git-tree": "fe85b4be83b3a88ec04a16d0704acc722502a128", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d97e933c5109b73c577e20f53bc095224e9ca198", "version": "1.77.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-leaf.json ================================================ { "versions": [ { "git-tree": "71b0b18c189b9ceb11d5b5e6f99c1494bd83832d", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6c75770dc393c309ad4b7b370e55a66c39fa67cb", "version": "1.90.0", "port-version": 0 }, { "git-tree": "2e6a97ea50cd1c5335dabf97709cff77e6ffae9e", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a807fcdab1ef78cb78c39f532edd2dfc62371cfd", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3333f291d22e8e7ad3d51d2a3f427ba3a5c5e5a7", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4e9361dbfb880d9bae2136e04263dace03567d33", "version": "1.86.0", "port-version": 0 }, { "git-tree": "c5c9595612e3d8f957c9a7a276fafaadea39090e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "57b8c8044186a8c080cac3b77f9e182f8edf4e19", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0c92f0b748b310f18437cc0a4bbfd321506e1b4d", "version": "1.84.0", "port-version": 1 }, { "git-tree": "ef47c8ddb007015f138d7d2f6c1942f1859c6e54", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9c5d7bf52009af1e4fa9ab2bf88a8592a3f9c2f0", "version": "1.83.0", "port-version": 0 }, { "git-tree": "cb036779325e545fd6138cfbaa0703d729aa401b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "43c810b64420088a3446c74e4d54db10f16c271b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "9cbc39c935546af60a873c21b53c97943e90a85b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "272d3619c543d063bd0e23ae8f23e8c677f419e9", "version": "1.81.0", "port-version": 2 }, { "git-tree": "1cb0810bb85eb66e173350bcd5dbd9646a2aa28a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c0be7c36c03a4a875995e81c7c82b4e2a9c56f25", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bd906879bdcd0656df06ac52b059295cfabd5e65", "version": "1.80.0", "port-version": 1 }, { "git-tree": "151ee4285909980fe5008aaf36d65ffc636e654a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "87a96bf13e0afb5212772d1240dfc6accaf71b84", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c000f663b00cfc9a2566b67ea68d6fe5050a016a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e257e66da57763ab4e677806d04b6d67721c09df", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e5d414a21f12b33a083b6595ef485d21e6e4df76", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b6f4d7fa7cc1bdf8c780bf165d4c4d1fcbb337ff", "version-string": "1.75.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-lexical-cast.json ================================================ { "versions": [ { "git-tree": "83fee140b329a32fcf0a28dcea3966c15a9afc7b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "8fc724a9657ec8d53a12b2403508f7fff3ac5dbc", "version": "1.90.0", "port-version": 0 }, { "git-tree": "422011af1156f3e9c09bfa3e20a2d8119d7e523c", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c3631cacb2113b407eaa8be643a96dae14464f79", "version": "1.88.0", "port-version": 0 }, { "git-tree": "6bd8ac437eb3b4a61ce0c8b0c3397c16d1cc1ee1", "version": "1.87.0", "port-version": 1 }, { "git-tree": "83815f0f8964eff4ab8e9e906f4915ae24343c93", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0a36777f88db58f8d69f5e0727e3603c29e67c63", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a2867dc4554c961cb49311398050dfa997bead8a", "version": "1.85.0", "port-version": 1 }, { "git-tree": "1124052a647ffc082af444d1e2713beed81e2172", "version": "1.85.0", "port-version": 0 }, { "git-tree": "930de66483bdef93b9a3ef583a5331b82aaba60c", "version": "1.84.0", "port-version": 1 }, { "git-tree": "270740ecb9a0bf6d8536fa654ef862fdfd706ad5", "version": "1.84.0", "port-version": 0 }, { "git-tree": "dde0974bedf5d7539835eeadb3183b72d0df75f0", "version": "1.83.0", "port-version": 0 }, { "git-tree": "27cd4bbb12ad5a785f7e32723dbb72c4e4bf023a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "54b82af182eb01789c463148630e7e897ae3f3b7", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1784c7d294604acdd3dc3179e7ae1967631f1122", "version": "1.82.0", "port-version": 0 }, { "git-tree": "677997615028f116ea892e8a0731200a2bd3f306", "version": "1.81.0", "port-version": 2 }, { "git-tree": "979e53589447f6996073f000b8d2447bd8abd8f1", "version": "1.81.0", "port-version": 1 }, { "git-tree": "0d50f014e04b4c37d91636a592992d47fb07a0c5", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2f68712a48e0aefc65866fe43edc152e1afd5e94", "version": "1.80.0", "port-version": 1 }, { "git-tree": "a1c65d88dc4dd33ee2308e6dffa9ff580b3ad0e8", "version": "1.80.0", "port-version": 0 }, { "git-tree": "78f269516df3662fbb3417faba5a8983936de604", "version": "1.79.0", "port-version": 0 }, { "git-tree": "984ca6d42fd857c08fa915edc02bfcecb02cc343", "version": "1.78.0", "port-version": 0 }, { "git-tree": "3a265d9296755adc81f3c02b273d758798903b0c", "version": "1.77.0", "port-version": 0 }, { "git-tree": "966a986af9237664ffc3b35384ccbe006b83e196", "version": "1.76.0", "port-version": 0 }, { "git-tree": "8f6324928977e29a23540dcd6c8c3ec74984362d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "dc020ba4e0f6338668c6db25c0dd323e96add037", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "4c1d82abcb3f206fde75176819c75390e0a74bea", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1ddd2ded9c58e8d5ff9ee920ca4833e9dd29bfc7", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "bc327b1b9765b577f64e69065ab7cde202b873ca", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0d81c9256f1dcf4190d10319281d66ebd712679b", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "4a2f89ab882a10cc8cff4943c7ad83bafc8c9e82", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "f113282f97588f8685799172585764fb8c0e558e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "5b76eb68df10019ae2018fc02e078d6490146952", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5810ba781fbc0429e72db4fc1f821f14fb0d42db", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-local-function.json ================================================ { "versions": [ { "git-tree": "d2723d7e3a8847ab43546cb67972afed2e536591", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e104b7c7c3f901e8e808cae9594969fb79742525", "version": "1.90.0", "port-version": 0 }, { "git-tree": "e49f47ea83531ff7472724b820010e9773dbfd4d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "9947db1288f2c6e920fa670818245393cb15b5bd", "version": "1.88.0", "port-version": 0 }, { "git-tree": "f7dfe4ecaabb192c19a14aa662243fe8337c22f4", "version": "1.87.0", "port-version": 0 }, { "git-tree": "57a2a6803a115f0f1e6bb0479cfdab7519e3e578", "version": "1.86.0", "port-version": 0 }, { "git-tree": "7f559fde0f0eba57dcefcb95b47d20f58ca2a56e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "38647e1c82e686a82d7ca2c4bb60f2cbfd187f3c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "f9f4b970ebb2c78b863b5c4f5f668d1b6dc9d4c3", "version": "1.84.0", "port-version": 1 }, { "git-tree": "bbecd00568ae32f048bb6cb48355547c889fd361", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f059d8e9dc60d429ca4910eb0603b7ad768339b1", "version": "1.83.0", "port-version": 0 }, { "git-tree": "51ae33edcf3e425aa42f2cfbdcc926ef3996ce6d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "9e386bbe69f3d754f0771134ef2bd349b9e9d381", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c14954836274ffec27319627c787e0b5d34a9db9", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1658e6ae0eac14c1e10378d6299c59a0c889f01e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "05ff1a1182b459c3a2a299b103cecf2855b4973b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "9a6a66700763917141ec93c4569197cfdcc5330e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7f63b725031f3fba9235568d39523b33eb1c1185", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0c1a73008438d7a613f4fbb3a8d12c33276ae584", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3de1ee1d8f4c2def524ee00056e545765dada7a7", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f0eb3b232475da3263d0c5a9b65a6cca3d63af1f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "61818440e17f46b0715e5b53b8c49a79dc274a27", "version": "1.77.0", "port-version": 0 }, { "git-tree": "3e9c798dfb0bba3dd3833464354ff492e735231e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d7fd32b69bcf0f1037f2fa6a136b8a48622f32f6", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "40f4ad6992b177c1158927f2e1b1fca6751821a5", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "a42b2727e8318f40a3d3d0802226277c3d210fac", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "952dbc9aac25f8004587707312c967f150059fc8", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ea6cac0311c7b808ae1a6ee80ad75c0632c8c860", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0eefc83c76aa85e7ce0dd343a1b04b85643ef377", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9469616148d494ddef0e4e30d76165bd9db55973", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "b104d815817322dc79ea7bb3f28deff0191c6fec", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "eecb84b10db388d3d01a395d602d988eabd3d3b5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a0f36f3c66485f31adcc72defb3d476333ee357c", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-locale.json ================================================ { "versions": [ { "git-tree": "10fd5fba71eccc9b560f7ae53b708de5a8f04f0a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d8a25a481324130b648fdbb115ac7850e5519371", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9fdfc11bbbcb8dedf010b61fbcdc3a9eba22af82", "version": "1.89.0", "port-version": 0 }, { "git-tree": "7021457116baad60cefbbf264e5757da594dabf4", "version": "1.88.0", "port-version": 1 }, { "git-tree": "4ba4b7944265f4cece979cc6569d9ab3b87f282c", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d62e3416493f4a03b7667a01626e135fe9f02267", "version": "1.87.0", "port-version": 0 }, { "git-tree": "7c32b6ed427108b71d25389337300c479a630507", "version": "1.86.0", "port-version": 0 }, { "git-tree": "735ac0aa8bca64e1560d96c73d9639784d7828a4", "version": "1.85.0", "port-version": 2 }, { "git-tree": "90eae5f2a4561de59890c54818d84633b0bd0d8f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5b5533a617c72dafb29040d451520ae52b8f0ab3", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c81839a63513ffcdb624809da14c82e0c6ee2373", "version": "1.84.0", "port-version": 1 }, { "git-tree": "890a580576001c650e84c6b92fd995a048317e3e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "41e9801248d577c58c9827d2177ec7a88719b116", "version": "1.83.0", "port-version": 0 }, { "git-tree": "3ed08854668287984c74498fb95f081740459048", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d9c9d24ad31946e6bf5bcb2adac9f0124e7534d1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "42049ec2a8514f4a4456399d147f39bae465e2c7", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c88f686dacd0853cb980f5170fc52e2ee0852033", "version": "1.81.0", "port-version": 3 }, { "git-tree": "1c28c91fec3585c991968a33c8a83a1fbe2e4a7e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e2f1a8590c1bf9ab12b880fe05af6854bd6bc6f2", "version": "1.81.0", "port-version": 1 }, { "git-tree": "122ecab6bce2dc1662f24aac1d71f66033feea7a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e5f8a6a2c2f766dace9c3a7887b3732c5fa7b4b3", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f76509b5e99db09e81179f9168a3da090c581c0b", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1868faea7b5a4b74f6cb0dca84ef24a7f8d708d0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "66e57914d683e3e7c9945eeefd2010b5a08b4972", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c391246c7c5588d89f0d3fe5425a3fb3c97d7787", "version": "1.77.0", "port-version": 0 }, { "git-tree": "76b51eadd7efd7d81d23c39d126a50abd1cb82e5", "version": "1.76.0", "port-version": 0 }, { "git-tree": "57d2fc3f09cab641387b6e152fb5df483d8944a2", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "8a188d3cd40ba95cf241deda044c44d5426185bd", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b460ca406b34de5462897cc8bb19bf8f222f901b", "version-string": "1.74.0", "port-version": 3 }, { "git-tree": "fdb8a069843fff9b20c1e4bbc2b9765c18d08842", "version-string": "1.74.0", "port-version": 1 }, { "git-tree": "dd377e66f921969039e53ae54ee4188650186900", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "300b8d29fd8d5e68e656b6631508d270f0d4ee41", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "985191f2d22a7506857ac716710e33db2b049235", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "ebd4554338817615b52492b6c7b7aa082432abb9", "version-string": "1.73.0-1", "port-version": 0 }, { "git-tree": "bb5dc584efe979dcf062e004a286f38f31aa3553", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0600db4eec7b9dd4e766c269604631cfb5dc7085", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "887545c032faf22782e6098c2673d20901bf5db8", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "e0517cb5df86eceaa7c867e816e865231800fee9", "version-string": "1.70.0-2", "port-version": 0 }, { "git-tree": "f1a752c1c4b3acaba4b43e3114457db78e3137a1", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "17fd8111b73cc0f1671e5b95d1d2f2e226f9e820", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "37270ff9f45a849316046294682911f70abb1d7e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "954d1f8d2ad999a38dfcbd72514d33749131b3da", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a4950a31da1d394911e3085abd2d125dbecac95b", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-lockfree.json ================================================ { "versions": [ { "git-tree": "5750e63d25f5e6143ea8e8cf19ac4434e6ed9b85", "version": "1.90.0", "port-version": 1 }, { "git-tree": "5863abbff3662926aa22ffb7c6248c676653939a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "a5c20e532558fce95cd50922a37580febc0d1437", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8a0634f82b65692f21555aef80df78137daa6d3b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d0e857abd9efe0f3c5cc774d8b392da722e77c80", "version": "1.87.0", "port-version": 1 }, { "git-tree": "b41ece714f102baafb3c5e7fd576880001276b3a", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3227b820fe76dc3047f2725ac3ce50720ba03095", "version": "1.86.0", "port-version": 0 }, { "git-tree": "372936717d4f84b7257c3008ad3b39cf55b669a3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5e10105714066406e1df95973ebc152d18627d83", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0d2e48d196ecdb49f885e45efcda5d004a5a6765", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0d45e99b757eda86d272cc1142e9cc348296bd2e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "db32f8262d243ce50d3dd2b67e9f13ce9fb584f0", "version": "1.83.0", "port-version": 0 }, { "git-tree": "4e5234382d1b899deef16bbbeb58b19bcf5661dd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "084161896f614963e296c5ebd58f23ee613988fb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d5a6ea1e9d6a0d73e57526511ab5a7082417fb95", "version": "1.82.0", "port-version": 0 }, { "git-tree": "3fe452d3e96f55d8c49b289f2f101cb274b275be", "version": "1.81.0", "port-version": 2 }, { "git-tree": "cdf3ca5a770c247cb1bf3390021f0cb890cf19e5", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d78f8125562b48622867edbbfed76af33ec84d8e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "f2aab84f6f6ce1cbde92ae48e80aff99f25ff2dc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c1e9c0f8ac538167c8425f199e49c771c132d1f9", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bb27f3391311f8d7078563e4ce98f7706500f33e", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8a98fed342e79efc6194594c5bdd0a6398a7bf9c", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6760017d0cf025254b1056309a2c32407081c4bb", "version": "1.77.0", "port-version": 0 }, { "git-tree": "22166eccd3d3b536062ee1648d147ee357a058ed", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b844f385ea73f91499660ae8626dc9cb01548988", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "de86b64830362319c5a39aca2b7ae8f08d2533ba", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c3d1f223a0ccaf290b9dce486b8359abc957e95e", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f8a35299bb83ecbbc9d0df731eac88ffcf960ded", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "7fb2ef2fb3c2f7e2b33707d58f2c6e5098a0af54", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0e095e924353c2b2fd8fa2046a463bfa03ffd2b4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c444655580be5ae947db51404b92ec7ac3a6fe54", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "8017348963b18b7906834a8002b75f2e74253e2f", "version-string": "1.68.0-1", "port-version": 0 }, { "git-tree": "1bacb7537e106c5922ff0c9043cfcbd72156dd28", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "57d0a8c5cab71e0cb3dd1db4273185a768b102a2", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f28400094bbd31b1b6b06993aad8f6b7b3e8af1e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-log.json ================================================ { "versions": [ { "git-tree": "c0a805c13f415996774907222cb9d90c2152b170", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f2736b3df797c2e2eb063887207d984af752a96a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "f8f2f3451bc18d74489dbcf05b280e4f153cd1d0", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a23f63c8784f8735f2fce7e1375b81fe23a4f0ed", "version": "1.88.0", "port-version": 0 }, { "git-tree": "857b7cfc5edafc50716a28eea3473001283daa12", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ded8f639da631b783e516d4ee3ad15a3f814c523", "version": "1.86.0", "port-version": 0 }, { "git-tree": "254117ed20626d0e88e36173eac359b2f1b968b8", "version": "1.85.0", "port-version": 2 }, { "git-tree": "6b6c16c7e8a6b2969bd7e4b87b7e4f0aebf6ba72", "version": "1.85.0", "port-version": 1 }, { "git-tree": "65f46cf53ad6b900033987a7ac5df9062f1d2b0f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "be836a0f53fe07d1bba3bde715ddc3fa0be4a7b1", "version": "1.84.0", "port-version": 1 }, { "git-tree": "db4f5d820c44affa3f47654fb2396d88493968a0", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a9fc311a8361a136d6723b2a45e98af511749e7d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "486c465bb29be1d743d50fd66134aafc9ff6f820", "version": "1.82.0", "port-version": 2 }, { "git-tree": "3c03453e91b6d10cfd41e5113aea15c9070ba310", "version": "1.82.0", "port-version": 1 }, { "git-tree": "34ff06ba71408f9f2d5dbaa0649a5a6660731c70", "version": "1.82.0", "port-version": 0 }, { "git-tree": "caf66e1400f40a88d45f8411351c04a15fe764bf", "version": "1.81.0", "port-version": 2 }, { "git-tree": "c63f3285110b2cfa4f1bc677c0bc34df968e67ab", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d8715b0e2ce284b4cf302104b25f0c1056e55182", "version": "1.81.0", "port-version": 0 }, { "git-tree": "421d4a05c15c9e6e8b2ce014f896713703eb40aa", "version": "1.80.0", "port-version": 1 }, { "git-tree": "3c2e069e10107dd06749bf7fadf7d086799ab91a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "311052ccd7332a0eb6d4a80af653a65fe390f7f4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "66bcef44cd4e7f68677db041e84df77e350624be", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6ab1ab88f37500f86b5c9b9222e50dc2c17da5c1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "1e1221d665804faaebfc9c5b91c89a6b3f66f91d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "87961d58edfbf7464239d5ca351243d88ae9adf7", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "dc9c81741939604af989dcb44a3f3ff0848f6ee5", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2c0ee65be4901aa606626951acbef6594b1a7bf1", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "54db4ed7b1440aa771134416b8ae6bee7445dd6e", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "9626fc024f9f790ec9906d50b7e2bb4450471823", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "53bf278b4081cb48707cee26fa3e820d01baf860", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e5ee85c7e909b122b49f0c9792cc40e73fa2d152", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "6cb70042bd6ae96ee6967d56e723e6bdeff52795", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3f2647473e4b79073601769def3c968af97dead2", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9c5d70c92638bd13c0480b3f9185d4792c672ce4", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "f404f709cba67ddd2c0c72e460ec3c5258f0f743", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "d531ab2861fa7804584411d46d0682dce268a56b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "31204c7228854a72cf8f48b1f79e55e95f6bb2bd", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-logic.json ================================================ { "versions": [ { "git-tree": "d223f82d69f6a18810b08df53e09092d6e623d2c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "502460fdd0b1b7db0d71297d3106b00f0bb8d4c0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "743015e76ec67d43d3d8b87c812103ff65a0d138", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a5a3ef638df59f3663a2303af3ea056513ecc3e9", "version": "1.88.0", "port-version": 0 }, { "git-tree": "f9b23fd1f012a637173382e92fd2b96a81a23658", "version": "1.87.0", "port-version": 0 }, { "git-tree": "5909374a447c242f80b0921ac3ada302ba42732c", "version": "1.86.0", "port-version": 0 }, { "git-tree": "4f2a8e8a40d86f4d38dd6ddcd1e2196fa97e7f25", "version": "1.85.0", "port-version": 1 }, { "git-tree": "6809263fdcc84396dd0df37a3bda9f91bf623aeb", "version": "1.85.0", "port-version": 0 }, { "git-tree": "74534328b7e5b519b4f225ff648953a612335242", "version": "1.84.0", "port-version": 1 }, { "git-tree": "17ac346b6e90c114fca29894244340845440e183", "version": "1.84.0", "port-version": 0 }, { "git-tree": "4caeef24d5d621a2a42819bdcea2ee90b4414f5a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "99d96e2a54223f8db7b94429392de363cd69ee61", "version": "1.82.0", "port-version": 2 }, { "git-tree": "418ee0f83e1b41fddeb9d416fc383abf40ebcb03", "version": "1.82.0", "port-version": 1 }, { "git-tree": "e6a9a74ea009da01f7a815b560dbae631bc4aa23", "version": "1.82.0", "port-version": 0 }, { "git-tree": "5ccbe9c525ab9f5b69d1f6bcbd318c71384a1e8d", "version": "1.81.0", "port-version": 2 }, { "git-tree": "cf5bdd060729186bab24480b8aaa7bdf220de962", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ff4e3d6f25f8c271b878947b98d8d032190a4d46", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9536411e1f225383e6d8ff8f58bcfb0454ce4fd6", "version": "1.80.0", "port-version": 1 }, { "git-tree": "588f889d8da686230f6f610141d8110562504312", "version": "1.80.0", "port-version": 0 }, { "git-tree": "438d9d7c26d42ec2a76f0f60954b7cbcb950a79c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f5acfea5d30532cc6dccce78e0fd159a023ccb4a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "afcc526b0a9287bc84744bf57a1a6d37a0b3b567", "version": "1.77.0", "port-version": 0 }, { "git-tree": "ee745d1ee8b0842a39a46d7830655c765b438bca", "version": "1.76.0", "port-version": 0 }, { "git-tree": "39dcf6bd80995585db199c583ab79be17711948c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4c5e115360dcbb3d1800ce16bd95c98618b77653", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "d97e24d7b90452ca07cc590f19a04a1b3776d8fe", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "aaafe2af06a5ba56e0eebc1500040926d3b00caa", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "e81d5fe53c76a474e8f9ac9543eaa37565d4bdc0", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "5d7857a973a124b7fd320ce6a6d38a61f5e0ea8e", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "233ed1195c27d4606dd05069aa0d652eedb71228", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "738ad9f3b151a583c4cc495ed62c255b6a74765a", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7192a88b73713379ce041ff567fabee610f9e7c2", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "1496954650cdb0875230fe412a1ac186c8dbbbd8", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-math.json ================================================ { "versions": [ { "git-tree": "fdefce782d6c52cd5cb7eb9300be2b1db5461256", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bb3432cbd56b65d7e7e5ec814612855990aa9387", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1cb94d95de055a357bb874e57fdab94802e1f4fb", "version": "1.89.0", "port-version": 0 }, { "git-tree": "82070426a98436acbaa643d1042944b64a9172da", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e20f4c7f836b943cbb0ab5fc7f08cf0fc204a10e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "690873bedff0687ce992ee4e67a1fcd35efff094", "version": "1.86.0", "port-version": 0 }, { "git-tree": "ac6833c403ae80c2a96e0a04795df91b1197999c", "version": "1.85.0", "port-version": 2 }, { "git-tree": "073abacf431a555a65b186e63482d3ff47b0e615", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d20af189e049131ea08bd503537374afa4d70062", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7263a17f36245a96c59ee70c3dbe1d65f3f6c05b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b6e62a61bbf90ebc1f36bfd01892b793476e1d9b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d2b21d46b8da00d788266ec6b386602f345659c1", "version": "1.83.0", "port-version": 0 }, { "git-tree": "7c52621d3f785a3aee44d5a741597a0a4ffd8912", "version": "1.82.0", "port-version": 2 }, { "git-tree": "61b0ddfd8a1a5e18f97584b57143de200770bd56", "version": "1.82.0", "port-version": 1 }, { "git-tree": "588fc3a51b43097feee421ca66c5d436914a1364", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c380e71e2820131a30349ad89bc1c0240c17c4f2", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0e77a97436c2e816743cfa7ecaa135b73d4533a6", "version": "1.81.0", "port-version": 1 }, { "git-tree": "24043d73949c51399248f9f58be0d6811c55898d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e646999339a79fdfb234566e4f8efcfe51c850af", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c3f7257d4b3a7b8d94e00348149051d37eb75921", "version": "1.80.0", "port-version": 0 }, { "git-tree": "cb4ff8e95c283f70577c94f6d552bbd2fa469b3c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e2fcdb4cd154efd942606b09085ec0cb7747a764", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c3caf2df93bffdc6d72b5c4df120200abe0f6562", "version": "1.77.0", "port-version": 0 }, { "git-tree": "448de1ada43d74ffd7b4511c34319a5cc25bbec0", "version": "1.76.0", "port-version": 0 }, { "git-tree": "c64c9882971998a3d0330928f7e8c48a3e584658", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "5bc31e3f9ebaffcc0281f7d13759019c1171caec", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "fbe16002a415cd53a730c4046df48381ac7a399c", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "db4adfb015bd64c01e4a2f8b4f392a5e6d7b66f9", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "563eb86d1e24a7413604096762f54be667855d7a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b63e3459068be35c36691e329b848e7686cbf7b8", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "70d3584029da499d7c56cabd18f88c8fb33046c4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "ca1619db41df02ec348b7a2605919ea5f0cf944a", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d9bbeb51ebae31f0b6b07aa8140769e240b456f4", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "29c8a06c624bcaa26458b4b07364e5012936c56e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "cd141c9889b1ac5370c4b061f39625b1dfbe8a31", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-metaparse.json ================================================ { "versions": [ { "git-tree": "4118b6d6878c78b4a585d10cb9539c2b7a09d602", "version": "1.90.0", "port-version": 1 }, { "git-tree": "7f8484bbde1ce2a876d638621f1e92b318754ae8", "version": "1.90.0", "port-version": 0 }, { "git-tree": "d8e1be9c867a63fe630d4c13c6ab2a16a448b763", "version": "1.89.0", "port-version": 0 }, { "git-tree": "cbf570da3088a98197e8f83c8747e747346e1e28", "version": "1.88.0", "port-version": 0 }, { "git-tree": "6465344a68875aa159ae7a8bed0ed22aac37b7cc", "version": "1.87.0", "port-version": 0 }, { "git-tree": "7b68d070fb5d26493813a76d5d5c7e2e35a00692", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f0a1e90f8f6467c926299ad1208dfa12ce4fb0a5", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0c4c10ec3cbfaf3dd3c5a6fdd9cafb2d5ed380b9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9fc7202ce5ea6baabffd65042452c7bf35d63939", "version": "1.84.0", "port-version": 1 }, { "git-tree": "922b74624b73c61779da3d81acb8b99b98d25970", "version": "1.84.0", "port-version": 0 }, { "git-tree": "5994a689a2da98a3effa716ab52de1b13266fe13", "version": "1.83.0", "port-version": 0 }, { "git-tree": "c34b7fa72446bdd3037f8986d0e653dee79d5df5", "version": "1.82.0", "port-version": 2 }, { "git-tree": "fed3e04ea8531c9c7b141eca201e24a6ae24e420", "version": "1.82.0", "port-version": 1 }, { "git-tree": "eea7060a597e867d171a778a6cff2e56f364cf78", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1174474032e8403f7f9acff6c8dd01b5add784c4", "version": "1.81.0", "port-version": 2 }, { "git-tree": "50d63fdd8d6c80f0156e564b46c87bd0276279bc", "version": "1.81.0", "port-version": 1 }, { "git-tree": "8e7f9812193e1d6c60479a6bc114828be7a6633a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "cd8f72d5142bd7b0d34945ee840ff709d4155ee8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d49c84675e49cb7998be2c9efb382044f5bfcd39", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ad7ebac0f5d44f811d7d8462959b080c0f298eaa", "version": "1.79.0", "port-version": 0 }, { "git-tree": "3b3d7330ddf3fd7d1f38256098f645cafd96d08a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "4f5433852913f94917d5e6afde09d24d48421ed3", "version": "1.77.0", "port-version": 0 }, { "git-tree": "44ca94c8ff9e03288a08adedfbccd61541867d75", "version": "1.76.0", "port-version": 0 }, { "git-tree": "06142d599d8265c27584b59a352f07264b5137c7", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "052956ebccd6709f65a87b02f6fdf15900f2a662", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "d75127ba71d92e1f5f30299570e7a29a77d708cc", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "8760b1c0d5f1edfe4140d839741c19eafb5b2a39", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "8900c8cf99da8ee8d9ba0871c2f1ba8f8dfcccdf", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3d1af58c3d0791006135f42601010003abe29725", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "e653d239e22422fdc1b45302e5a36240f2bee4b5", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "83be90c1cda8b1c32af10baf4c3103fef41a28e7", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b0c7f41c10bf58e0b15dd689c2a766ce120b699f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "313033111bac68f7df6f8cbd2f0f034267617108", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-modular-build-helper.json ================================================ { "versions": [ { "git-tree": "04390ecd44200648eb89147cb4e11b196d2dc515", "version": "1.84.0", "port-version": 3 }, { "git-tree": "b3eb3e3fdc08ffe6e8f9e19e761e583790aaf308", "version": "1.84.0", "port-version": 2 }, { "git-tree": "dc7e88a84383b497c7d9e117a00319fd2b2ded98", "version": "1.84.0", "port-version": 1 }, { "git-tree": "846d3e5195faf74db827dd0197a4fbc6a56315bb", "version": "1.84.0", "port-version": 0 }, { "git-tree": "95d209e069cf1a82d48fa32cef7a7c39edc33c22", "version": "1.83.0", "port-version": 1 }, { "git-tree": "843c4331dc1453c80f99e25be4513c99074c5cf2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2d374869ba7aa60ab439300ed4d032f95c9b88a7", "version": "1.82.0", "port-version": 4 }, { "git-tree": "98f75b07bdab1080c9470eb115836035d7142397", "version": "1.82.0", "port-version": 3 }, { "git-tree": "3ae088c69a58eb9a5854ff99807397a0c09daf6a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "5c1a238cc20c885e785bc05a36b974deb5e02db7", "version": "1.82.0", "port-version": 1 }, { "git-tree": "91d3f81ba22427aecb2b551da48e54f684f056a2", "version": "1.82.0", "port-version": 0 }, { "git-tree": "976b927d38ce533c1c403b80c9e0e23e62737195", "version": "1.81.0", "port-version": 5 }, { "git-tree": "085487a72fedfb544d04c60b8a96f580213c0efd", "version": "1.81.0", "port-version": 4 }, { "git-tree": "d47cef023f39ac9d5f3a043d35cba1a74710e1b3", "version": "1.81.0", "port-version": 3 }, { "git-tree": "99f9bc3d7c9ac2864942f3f8d80a3d8db4689794", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6e28e9a445dc3442e89761e500fbb8bb5e175c00", "version": "1.81.0", "port-version": 1 }, { "git-tree": "5a4db48d96183ea5211782a2fe519c01f51544f7", "version": "1.81.0", "port-version": 0 }, { "git-tree": "0631e980f0a18e2175424e672b55709b84e19aa3", "version": "1.80.0", "port-version": 4 }, { "git-tree": "4a8c162e2661795b998a8435b6ec7207608fe73a", "version": "1.80.0", "port-version": 3 }, { "git-tree": "c01b4620588f657e9e4005fa5f9d9a649a8feba9", "version": "1.80.0", "port-version": 2 }, { "git-tree": "3cfe5562e40b1ef219b3d36054e1235508c41037", "version": "1.80.0", "port-version": 1 }, { "git-tree": "3047d0e2fdc4eee0c918f418f45d5e1dfb86c0fb", "version": "1.80.0", "port-version": 0 }, { "git-tree": "e22ad8dde44513f2fa1a9b38c71818aaaee52120", "version": "1.79.0", "port-version": 8 }, { "git-tree": "cca1e2f883cfd638a53964027473a00e6b571e49", "version": "1.79.0", "port-version": 7 }, { "git-tree": "9428ba48caa81512147423f26559c7a57b37e71b", "version": "1.79.0", "port-version": 6 }, { "git-tree": "93946fc40b519f0f9afe1b0d36985b2def25d4ab", "version": "1.79.0", "port-version": 5 }, { "git-tree": "cd7a5259d9e086b94af5673e581427f76957ce62", "version": "1.79.0", "port-version": 4 }, { "git-tree": "e416ef5af7f6a850fd3ee6493fb3a359cd7ac6ba", "version": "1.79.0", "port-version": 3 }, { "git-tree": "e02a1f1b06a492d932f309feab8ac7751b0327ca", "version": "1.79.0", "port-version": 2 }, { "git-tree": "dcb306fc661bfab322c75b55472e402387396099", "version": "1.79.0", "port-version": 1 }, { "git-tree": "03b0eb80e437663830851f7891d02125694b4ee0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ee3c3c2a3ecfb2bcff50d0758da7d6c36479a3c4", "version": "1.78.0", "port-version": 3 }, { "git-tree": "9400b3bfdc93a165b3b509a76c59107c020113a6", "version": "1.78.0", "port-version": 2 }, { "git-tree": "11b3d243931b80a098de2d6ff74587485febf646", "version": "1.78.0", "port-version": 1 }, { "git-tree": "cb8ca019590f2915f8a4a2eef170531474c35de0", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e3edff222b218a808eca74d6891afc1693ec4774", "version": "1.77.0", "port-version": 6 }, { "git-tree": "48cc9da813626ac4733698e65368e5581f4efb59", "version": "1.77.0", "port-version": 5 }, { "git-tree": "aea8b4dbb8063db29d8ac843ef6aac35478bebaa", "version": "1.77.0", "port-version": 4 }, { "git-tree": "7cc6728723151712d8007e882bc2ad9a4649b2cf", "version": "1.77.0", "port-version": 3 }, { "git-tree": "9795fd3f465461fea28201a773909b6fd0e3400b", "version": "1.77.0", "port-version": 2 }, { "git-tree": "c076291c3d44f7cea167e469748ead6270e1c424", "version": "1.77.0", "port-version": 1 }, { "git-tree": "b14ac826c44c030a65af10732269f379b856f76f", "version": "1.77.0", "port-version": 0 }, { "git-tree": "fd1c08c606cabfe31c22e2677c383f8b5119fba6", "version-string": "1.76.0", "port-version": 2 }, { "git-tree": "f9cf6243049bf0abf8526fba57702a2122665549", "version-string": "1.76.0", "port-version": 1 }, { "git-tree": "e0f858222eaf2c58a7270d10d649bc88e2e149b6", "version-string": "1.76.0", "port-version": 0 }, { "git-tree": "c475b268ac42e886acfdc783944e1e3a988b0ac8", "version-string": "1.75.0", "port-version": 9 }, { "git-tree": "dd4c0cc6612065f35f4feba1cd5616ed4e249f1e", "version-string": "1.75.0", "port-version": 8 }, { "git-tree": "108d63ed0f26b1db432bb3ba7bcecf7ff18cafed", "version-string": "1.75.0", "port-version": 7 }, { "git-tree": "71c0db71c5cdc6d6516ba3c15dfd4ad8d5e3834d", "version-string": "1.75.0", "port-version": 6 }, { "git-tree": "b88a7b8df97734c03d2abaa3c562dfbfab07dbea", "version-string": "1.75.0", "port-version": 5 }, { "git-tree": "b261a1bd3ff03916f10c4a157b670c3c4e7e7326", "version-string": "1.75.0", "port-version": 4 }, { "git-tree": "39acb181b681e8ac20ff594d3ac1782bfbb37ba2", "version-string": "1.75.0", "port-version": 3 }, { "git-tree": "1b4dda192c485153b97512519e48a06202fd6930", "version-string": "1.75.0", "port-version": 2 }, { "git-tree": "b428c968cc712ea1ca411b21b5a865ea08d02d9f", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "2fe7c2b476f9fd5764944abf12a4b938883ad4ab", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d404ce9e23e6c5aba490c76a96e9d97e44a89e5d", "version-string": "1.74.0", "port-version": 2 }, { "git-tree": "fef0735e9d00a6b655339400b52795f05e76a84e", "version-string": "1.74.0", "port-version": 1 }, { "git-tree": "2adeff495465934900529cc655da90613856e92f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "07fbf366dc1af5b6c0df2ef31c99e09d14c4f6eb", "version-string": "1.73.0", "port-version": 6 }, { "git-tree": "85b687465f887cf6908e895af9cbd998cea4b217", "version-string": "1.73.0", "port-version": 5 }, { "git-tree": "e7a07964dade0335112b423f32538e75ddaa462b", "version-string": "1.73.0", "port-version": 4 }, { "git-tree": "1163ca30716cf6a53e626cc88ebb547a413b16ee", "version-string": "1.73.0", "port-version": 3 }, { "git-tree": "112db3279a3c9d1896b68066ffff10e70be699fe", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "187aeb16654eb4187644c087a57acaeff1998ad5", "version-string": "1.73.0-1", "port-version": 0 }, { "git-tree": "56db6458d3a98f8c5725937630841bfb2340a8dc", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5abf207242b1d686cba82abb8065b586fd38bba3", "version-string": "1.72.0-2", "port-version": 0 }, { "git-tree": "b2b2dccc730717369f2437b1d08ce94b6c180f00", "version-string": "1.72.0-1", "port-version": 0 }, { "git-tree": "e016658c94588bab8325dfb10adcffdb3475526a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "96fa79eb2d77e1a729086f7c46f09ab0ddc021f9", "version-string": "1.71.0-1", "port-version": 0 }, { "git-tree": "7a383777c9b1034a4205aed82733dea261ca7e64", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "5e0a8f45104ab676d2a64dbd6df23173fe4ff7e6", "version-string": "1.70.0-2", "port-version": 0 }, { "git-tree": "274e704bcaa5b68eeee5211740a871af28e6d68a", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "c5e51e29da4a0d4d00add2eb277603351b3bc7f3", "version-string": "2019-04-25", "port-version": 0 }, { "git-tree": "5a8bc5b9c1369690407626cad3da3b9386171cb1", "version-string": "2019-01-25", "port-version": 0 }, { "git-tree": "e7722e94f1a004096ce88cb2c9f121380931b07c", "version-string": "2018-10-19", "port-version": 0 }, { "git-tree": "b19c20f312d5ebd5df85c93169c729471d1daacc", "version-string": "2018-08-21", "port-version": 0 }, { "git-tree": "a672e1b6192248d46c4dabd14db7c8b02280c0c1", "version-string": "2018-05-14", "port-version": 0 }, { "git-tree": "726297f8f0b1be5f21118d68a9387aed964ab44b", "version-string": "2018-04-16-4", "port-version": 0 }, { "git-tree": "971b341a8567cc62eaa795b8261047b513dc916d", "version-string": "2018-04-15", "port-version": 0 }, { "git-tree": "1b37a2650461129b1742326a4945b05ebebe2539", "version-string": "2", "port-version": 0 }, { "git-tree": "f43cd59d9cdce8411743f198eafe6061323d9a78", "version-string": "1", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-move.json ================================================ { "versions": [ { "git-tree": "d20e9ac3f296584f51419ff55d77d02e84434357", "version": "1.90.0", "port-version": 1 }, { "git-tree": "45339df1764e8164b3bdd90dc916831b756ad290", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9e2f411e14732036732cece814356699a76cc91e", "version": "1.89.0", "port-version": 0 }, { "git-tree": "36644849a94e71b5527a68a3896b12ee41da8197", "version": "1.88.0", "port-version": 0 }, { "git-tree": "89ae8c8befe60f613693a29571a88c1e27db474e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "2ec65ea9d8386c7364647e10ce8eeeb809be40b9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "0b7c85608cba0c5e4f3f68f8c3687edae3b77b14", "version": "1.85.0", "port-version": 1 }, { "git-tree": "687d6e20922f169fbd9aa2eee51f346523c03880", "version": "1.85.0", "port-version": 0 }, { "git-tree": "710dbfde7e98703c2861104cfccfa8082f2535a7", "version": "1.84.0", "port-version": 1 }, { "git-tree": "1159c6a1d6b15517994acbd64c0407ce57161723", "version": "1.84.0", "port-version": 0 }, { "git-tree": "3f4770bf9904c733be328e32d4017a0ed1157d2d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "bda03863857c818ffb310f45d2d148553a5de381", "version": "1.82.0", "port-version": 2 }, { "git-tree": "1ce5f627ac0c30d041b9f2981fd3c11e4b504825", "version": "1.82.0", "port-version": 1 }, { "git-tree": "bbce4dbf27e6888c1313ac461a97746eda2ccc88", "version": "1.82.0", "port-version": 0 }, { "git-tree": "603b2620f750f75988513a9c5657685bd6e6e049", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0ce78cfdb6bf7df1a4fe0dbee14ac1e839e6a0ce", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b04b23c87668194465af91b283c1ccc6ed2d1e3d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "eaa3532f107240627f18023ee2d4453e7c15082b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "a892eef83cda1beff03d4a7dc11481b153fadfa0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "957381b3c5ac7d2b563b2563ca8a78d49f034e68", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a2b516a6391277e0c72147caf8c6677c92bff2a8", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d912a2a9e0b705919dae22cd8af6a4467e209e4e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b6563abd760c2241004acc0da699152ab8c4b294", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ffdab61d5b17d4a25826bc539dba867ed992b276", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "701d9ebb086a0dae796087101c5a3afc75d8dc11", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f42046e67f057300bb31a96aed527695967d07e0", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "26af1464e0d14d0c8846698001ed8ac9577ca043", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "82f2136d999a52a9d9c3e78f4703eba6a4d5a1c1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "4d47160c2375a60229f9f651c1da5720b104e5b4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "652a316b36b800350993be47a76ea4fb06826f95", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d4c2a9674e20ea8c649e7d91d0ee32faceb9cc3a", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "4634cdbbfb44a85aa21161a59bc5f032b0ee4188", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "2f37f95cd1abaa8e43fcd1d63cc10d0990de6b09", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-mp11.json ================================================ { "versions": [ { "git-tree": "48a6d4f6c7890f050ab4d0253d11ecb71c5193fe", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cc0555980c81c7bd3945a3f856b9ae57a6a17eae", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b8f038d03ba53847d4b120f55730c0737aab5587", "version": "1.89.0", "port-version": 0 }, { "git-tree": "2f04ead9077fd5a1906dde8aaedbbae09c5cab8c", "version": "1.88.0", "port-version": 0 }, { "git-tree": "bc1b2e78d6867f2aed28c4e7362b60d0149308f9", "version": "1.87.0", "port-version": 0 }, { "git-tree": "46e636f8b4c3d8baad6af94f37838a84bf2a3ad7", "version": "1.86.0", "port-version": 0 }, { "git-tree": "880c42ad4df9c2f2f7dc3125f9f49c3c289726ce", "version": "1.85.0", "port-version": 1 }, { "git-tree": "2bda1e298f7390891b33f230bc83a59045d8e7c8", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0afc9ac9325acfd5f47e1e831acc11e070fae529", "version": "1.84.0", "port-version": 1 }, { "git-tree": "a26261cdb9cc5232b748066ee61799564c3d3be2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "68c2556b43afbb853b5e724eb0fd5269a92088f1", "version": "1.83.0", "port-version": 0 }, { "git-tree": "a90f12d1eca80483d10bbd93deccf5439f904e04", "version": "1.82.0", "port-version": 2 }, { "git-tree": "80e104d697b7ff7a283c5f7ee83ae25fe1192bd7", "version": "1.82.0", "port-version": 1 }, { "git-tree": "24bc0a7070d454449f3ee96728d01208d5e8f944", "version": "1.82.0", "port-version": 0 }, { "git-tree": "4a3070ba5150b33b08d90a7938ec2ba249b5780a", "version": "1.81.0", "port-version": 2 }, { "git-tree": "838fe41632208ab23e2eb84d9cd84026f56e5772", "version": "1.81.0", "port-version": 1 }, { "git-tree": "eadee0cf436b65b3735948f428d2bfdf332c937c", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a63b1a2c7dc6e115b98d788fcca72f5611dc9655", "version": "1.80.0", "port-version": 1 }, { "git-tree": "cf20115432a67132df2313b6ad134276595cd886", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b741f7087023927b8345779b9a30575e1dee383f", "version": "1.79.0", "port-version": 0 }, { "git-tree": "06e8d1438943e47b1b4282964a0d290461ba3387", "version": "1.78.0", "port-version": 0 }, { "git-tree": "f685c323f00cf309294ac9e26b554baacbe3aecf", "version": "1.77.0", "port-version": 0 }, { "git-tree": "8aa7b3c86aa66c1629ac5cf5ce4e4b6a4a95b61e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d70457824e1e3084281f6841211641a548a2ea56", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4003de72c8eb8f7e4bb101b0d21a8e4a9432c312", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "d7b9226116f2204f71ad246ad9b3fa58383dbb89", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "cf0cb4f72a150d9b42e0b8f90931a5965ca7006d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b909beef1cec65f538778b83d63b95f6c020773e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "9a7c325b864b29ec8ac9642ef871a290535bea83", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "6ab800982a2a8c5cac6ed3ccc6bcd88943a22ba2", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "67ffaf39aa68fa6665aac6280cc2fc906e124169", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "456ebbb4880423898e7ecfc9372ee2cbdf3914a2", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "654783543beb195e24715a4c9c1fe288b4ae0956", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-mpi.json ================================================ { "versions": [ { "git-tree": "9d594f650ebe7dcc2a66b8008b5fbb942081ad66", "version": "1.90.0", "port-version": 1 }, { "git-tree": "a21452d34db6998680e13437ad86a00641722038", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1be7e4cef730042585fb605b01dfcfecacd9ccca", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d6e4d85483951c47a0ae800d19f308175f21340e", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4d8b6a3083c006d7415ecd2ea189e0ad90673b1e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "883f2e700a699184fede8118e0fbcce34e244a96", "version": "1.86.0", "port-version": 0 }, { "git-tree": "42a13cbb45c4dfcaea71ec613ed2336722276165", "version": "1.85.0", "port-version": 2 }, { "git-tree": "299e9f6ebcf9b9824e91f311b2432f3c55e47ccb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "b8b83a62d0a72463aaa0743e13ecb2bea736baa5", "version": "1.85.0", "port-version": 0 }, { "git-tree": "86bdc188ac62888477dff1a2dd035cb7e5b53c6a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "82cf05256f02b93cf70ccdc141ff467d1ba2e9a2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d9f0ba74af84204dab8f9a68f2eab345ed493295", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f67b743f8b04e8d1e7135745b3a18abe62a4eb5c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e922f77680d62cda6668cff0096eb4c34f04f4c1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "989754aa4a5a73a526e65389199751b066bea263", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dbc4c4053a5bf691a7fe428c8445eeee859680ed", "version": "1.81.0", "port-version": 2 }, { "git-tree": "df5489e174dec91e255e888dcdbe5b55fafdbaf5", "version": "1.81.0", "port-version": 1 }, { "git-tree": "8ba6b76fc3736c9d059aaaa6a17d2af5ebcbb35c", "version": "1.81.0", "port-version": 0 }, { "git-tree": "825b89feccc1de3c5fc21923da8cf24f3c67985c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "87dd60df15aacd026d27193cc0efd1b5323dcde9", "version": "1.80.0", "port-version": 0 }, { "git-tree": "17190e3d8acbcc5d48001bcf01250f91ff68dbc1", "version": "1.79.0", "port-version": 0 }, { "git-tree": "752ad29481d8c40a2a16cf1d18669a410e78d150", "version": "1.78.0", "port-version": 0 }, { "git-tree": "25bace7adcac31b1199ae4e8b522a3bf020362e2", "version": "1.77.0", "port-version": 0 }, { "git-tree": "21a8e85d8e04d477e9127f80d78b6abf1d130651", "version": "1.76.0", "port-version": 0 }, { "git-tree": "e3cf57eeb5bb24cb4e1d9743f0aae9f327a155d5", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "b73cbaa6892ded2b7a7f67df13bb9ef3bc1b9a3a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "6c832d51e87e57d57382fea9ea768439bd3e2b4e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "802dd2ddbc750b1510ccbfb5e48c283f1cf518d6", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "702933c4ea1e670bd6ea902d406b3cf77cde82b2", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "03ee796d10ac56c0ec1fbebe738dd653c4895a68", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ff128639a8085aa032b7c9a8374c7cfedbe9f040", "version-string": "1.71.0-1", "port-version": 0 }, { "git-tree": "efd23f789796665bc811713dfa1d43b5a4b8da23", "version-string": "1.70.0-2", "port-version": 0 }, { "git-tree": "cb6fe91adc54717c8c7a2cb494bf72ec15883077", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "36beb281c8b83c9ec6a33e9f635128dd0f342f41", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "dac5c4486a87fc70358daaa6e92587c00bde4dda", "version-string": "1.68.0-1", "port-version": 0 }, { "git-tree": "c80438a9fc2e9a604f4fd517ad957d4ff7f761c8", "version-string": "1.67.0-1", "port-version": 0 }, { "git-tree": "328d2456081e6415410a60ef19bf5707d2da184a", "version-string": "1.66.0-1", "port-version": 0 }, { "git-tree": "7c083cfd06f2898658233401980a855f5464b009", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-mpl.json ================================================ { "versions": [ { "git-tree": "7c12686c52a82dc407796d9239791d4e74f8ebed", "version": "1.90.0", "port-version": 1 }, { "git-tree": "380607ae1c6a635fdee24f3514c0284b165ddc30", "version": "1.90.0", "port-version": 0 }, { "git-tree": "419ecb733b84695280f408232c73470ab30be15d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "6cdd95078ed4dc9bd700884cfc132dca24a99013", "version": "1.88.0", "port-version": 0 }, { "git-tree": "bc39d9de88b525e7f4fb5f1e9da5cc5acdee7aab", "version": "1.87.0", "port-version": 0 }, { "git-tree": "42387dab4931df9bfd20d869b92d7c6855900a93", "version": "1.86.0", "port-version": 0 }, { "git-tree": "44e66fb813fd1c2180fb4676afc5be607f22baf7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "a72bdbc16d26a9d511485400e527b5a3ef04c027", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4c61fd8f557bd7e47e8c1ebafcecae766e1bcf2f", "version": "1.84.0", "port-version": 1 }, { "git-tree": "48ec467749d6a874076f755bf8d5a131381b5c82", "version": "1.84.0", "port-version": 0 }, { "git-tree": "dfcb80d8d1b767426e6714d6ba1b6a1473c0cc23", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f2d9b906b09ffd6317c9de5f97537688cde482bd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e08d5a2eb5d5edfc5a62469dbaa283cf56570d07", "version": "1.82.0", "port-version": 1 }, { "git-tree": "a93828eeb5ef739da0d8669fca6f7fbccbfdfc1d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1acb02099065a7bdb39a002a990ab8424205d6bf", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8890f1f2a2656f2042b29c578c57415200293285", "version": "1.81.0", "port-version": 1 }, { "git-tree": "93af91485b696c37c7b121f3ceba6fe771597909", "version": "1.81.0", "port-version": 0 }, { "git-tree": "3bb30cd9de09091f89f9dc089849942977321c3a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c213f7c4b3d93700c4cfa30498138df314619c98", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1fa673fcec0135c3a144d90528f719b281d29043", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a8b09063ef7fce74a9bfc52625ea7bf285cf4a82", "version": "1.78.0", "port-version": 0 }, { "git-tree": "1b0bd80c486b32952b76c2b9539555cff5d2f911", "version": "1.77.0", "port-version": 0 }, { "git-tree": "250327ba168c480f1f530792a14e87cd4d13b63d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "3c6847d1a221443ccdfefc9a8618c928af1137da", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5058b7a6caf7e35dc719433daed180a2c85b0bb9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "d579d7cb90cfb3377f303e51e46b1bdfc2128043", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "db53ae1618f8c64c038ebd7a98c073b7e5fb9c3d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ba4c64243ef0fdd469781c359acf0d632a932464", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "c2e35925c51500846264e061103894e50b9e6a2f", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "a44e1065bec0a44bc8f565961e514ec54ef94143", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "33966a121a81af8df7ec11446b9109d5d0aa131a", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8c3dffc715814dc459f4239bccae3a3689abf719", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "58b4c8525b6d8e05a4aafb4e3439a43c1abeb0d4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-mqtt5.json ================================================ { "versions": [ { "git-tree": "2b07041fcd388c37eab8b2fe52581f8d97782ea3", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6ce0d9c4694ef72119e69cdc5d4f0293c1a9bf4e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "6966053a22e077ef8be4ff5e98c881e5a7745c2a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "bb584c905973793e0c212c3822851a51afbb1e8f", "version": "1.88.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-msm.json ================================================ { "versions": [ { "git-tree": "fada1682ce2ed74263c1ee31bc497566fa1828a5", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e3ae65e699a3653e45e83b6d2d50eff26df47131", "version": "1.90.0", "port-version": 0 }, { "git-tree": "313fe9875ba7643a26645d4350bb2b95126c8c2d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "52a4c21b8ccfbf94213cf25efe027d3a80387755", "version": "1.88.0", "port-version": 0 }, { "git-tree": "5ab5ac9ae8e99ee513825516e4e8384fb3451b45", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0d02e6d0be94b50518a0b47be5c78631b560409b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "558628b5097cd8a01097ced278f4051a8f9ef4bd", "version": "1.85.0", "port-version": 2 }, { "git-tree": "44d5773f60957e667fb01233487cb2f3d593ee9d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "584cf069aefae39bd5a7ee9b3c905a6a02794d18", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3cdd3ff2bc5d29f61cd8ea27eb86fd0abbb1285d", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4276a1ca74ca3c612b74540d12b9a09a0bfd9a29", "version": "1.84.0", "port-version": 0 }, { "git-tree": "1e6c265d4b9681f5da0f23cb3a3912498fe4fbb2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8536dd1583d433e00586c1cae10d6e8d6e02e330", "version": "1.82.0", "port-version": 2 }, { "git-tree": "46d34f9c642921c949f7f9122d41f3d679392003", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f465acb8c11b21def4825b5fbe283df0d265941a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "5e74b1d6cfadd49df6bb58b46d93c07d36d71724", "version": "1.81.0", "port-version": 2 }, { "git-tree": "89711238080b87e62c8e22787c2bec712a22d740", "version": "1.81.0", "port-version": 1 }, { "git-tree": "40e93455fd2c2bd8d9539ac917a59c23bda53de9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ab4b1d65ab603bb1cd6a31938a6a09b32932cb59", "version": "1.80.0", "port-version": 1 }, { "git-tree": "5b4b10c39ed7937f0cd9539a22f7af1bfc5a3a08", "version": "1.80.0", "port-version": 0 }, { "git-tree": "cb6831b52a7befc70effc89fbb0313b371f28563", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ce4a5ac8b3d7cabf044883d6ab34c4360b75792e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c2dc03df49f99f1fca480d0439fe973a1f02c96b", "version": "1.77.0", "port-version": 0 }, { "git-tree": "ba54ee9c431c0c499935a7d7bc8a255cd5e9cac7", "version": "1.76.0", "port-version": 0 }, { "git-tree": "cf4e64e71731c3fc1db88a352aa9727082f80626", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "543ebfdf21bab811c42f765551b609e78344f07d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "38dae5cf4f5c478aed7dcdb25f7057f5ccc0900d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0a849a17b265353a5c6e4039196b12ba0ba265ce", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1a9c7a83f8321709662bc86efe34f284cf4f6119", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "080132bde79192ae83d9378c72521f0f7afde1cf", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "92a0a0c736364e37904d52e64dddae6aa95e5212", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "b0e07ea98f91f607de95196cc8239f3788dda6e2", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "4d15c083bc7c51c407e00b11c12f8635751235d4", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "47f760095d0ef58fc74ad559ef63ce87a2127ba4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-multi-array.json ================================================ { "versions": [ { "git-tree": "e4cdcc7fd61e4b9a4b61792be7e1c0653fc19c02", "version": "1.90.0", "port-version": 1 }, { "git-tree": "d16149901124e17974d4926d8a6cf32026d91954", "version": "1.90.0", "port-version": 0 }, { "git-tree": "244110e626f0df9f38f44dd2fe2e6d9a5af1a9f8", "version": "1.89.0", "port-version": 0 }, { "git-tree": "67da34b874b6c786d37768ec6050fbd33ea47fae", "version": "1.88.0", "port-version": 0 }, { "git-tree": "6081a6a5287ecc1cc3fad11f48ebad103d09b67b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "e8032a1d638bc8cdf4b7964cf2536f0a29c14e91", "version": "1.86.0", "port-version": 0 }, { "git-tree": "97a1031b1310931512b6e88b8b47f8cab544b4d7", "version": "1.85.0", "port-version": 1 }, { "git-tree": "96fe85f99d80156e667d6ed78bb9d6a7659ee626", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c3e8f8082a75264da806ad17e58b6dbda5ede7e6", "version": "1.84.0", "port-version": 1 }, { "git-tree": "462e009bd4e8e260a24f52b69b34d6a44bed2fbe", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f7c1d6533820072446bd68c928c72964501def1e", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2a850ad389c07479589bfc617aff5b03a2b98c17", "version": "1.82.0", "port-version": 2 }, { "git-tree": "62357ac27e3d8d2eefc9bf42f8bb8ab6e417859d", "version": "1.82.0", "port-version": 1 }, { "git-tree": "551544b7e67836202f43899772bd9ef1dd223640", "version": "1.82.0", "port-version": 0 }, { "git-tree": "52a3cf587864ba5ffea5902b57582d0f550d2546", "version": "1.81.0", "port-version": 2 }, { "git-tree": "7237f3ee6849ba4947250a01982da8c28336fd9e", "version": "1.81.0", "port-version": 1 }, { "git-tree": "fe3a972235cf9a9977af243ab4d485eee3b5ea80", "version": "1.81.0", "port-version": 0 }, { "git-tree": "3b11ed52164da13a94121b0d801c49dcf8b49177", "version": "1.80.0", "port-version": 1 }, { "git-tree": "9f1e6f3a8453417be928e6f603986ca0937d6365", "version": "1.80.0", "port-version": 0 }, { "git-tree": "2a9a9941b94769dd48089ce42e4bc3eeadd5421b", "version": "1.79.0", "port-version": 0 }, { "git-tree": "b83337494c61a0f45310b4c298399841ac301aed", "version": "1.78.0", "port-version": 0 }, { "git-tree": "afcf3afccfec7dacd50795dad8c588b3f2dabbb5", "version": "1.77.0", "port-version": 0 }, { "git-tree": "bc5acbb8051e16c1e48d8e82ea0fac48c6024287", "version": "1.76.0", "port-version": 0 }, { "git-tree": "44693eca97005d75a9871243de567016b1716a56", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "bb28ff427fe1f8f63b8027aee5eebc6a823f6c0c", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5ba4659f4d21219ef466f4fe626179f8ce930f71", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "e11a2c27455bc9cd48dfcd25cea92c3f83bc9213", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "3cba477108c2268163182f9c9be437f18de07715", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "715fba4596b1596a09cd0843273178f350761fb7", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "7f6818543d02c48b54b235e300113edf1d2af9b0", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "1283be03b2d0702223aedff37cf8dc292e641918", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "3950dfb42a636152bfcbe127e746705991686597", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "59e2e24de69fe4b917a238646ce6f03a69efaba5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "afe0599f506cca9d4b7fab2c30a77b48f692c6f5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-multi-index.json ================================================ { "versions": [ { "git-tree": "8492c472fedba33e9328ff7523db0513c1f726dd", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1a367354da287784eec6e5baa7ddd5a6c2f6459f", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1f5f78089d3280112a1216d3ad8d0459555b56e4", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5d8d500e7d9b6642e2db2835b48b3a39e83b211f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "603e63775ca778f5d2e59040c1b8cd52399c70ea", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3217612810c59712fe9046f8d72728b1a4825143", "version": "1.86.0", "port-version": 0 }, { "git-tree": "68615dce25456d402abe96e7c97be69f6209d60d", "version": "1.85.0", "port-version": 2 }, { "git-tree": "1ccb982ee0d444d203107194e983350a2f427fd8", "version": "1.85.0", "port-version": 1 }, { "git-tree": "34740bb7b1a6afb63e777c3d8cc80e64b547f09c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "94433831c65256b45f78d4579eabaa896254cf5f", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4d1d3bfd05ed85d3ea3712df38f0a07864d53d56", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7d40ee58c3e54b9c841abc6dd57033366218f064", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6fe88d1349bd1ddf78ded3e786a539514d285835", "version": "1.82.0", "port-version": 2 }, { "git-tree": "a5add430816876d69afa4df43bd91f776c8c2f7b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "92f38ef6bc273bbbfd373bef060315f6cafb34c2", "version": "1.82.0", "port-version": 0 }, { "git-tree": "354572a93cdd0f2ef64b285ca013d250854359f1", "version": "1.81.0", "port-version": 2 }, { "git-tree": "7912e78577cec5d3412de6c4781109a0e14bc33b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "cbdb6d27c3fd991b7126613aecc4de6e06d0281f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9e0d5d944725d59bfd052a45a1fa6359160bba5e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "e217e3de385a4953c622960e326d5ae354822f19", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bccc5117c54e12afbd300458b25ec698ae860db4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "7a7e300ddb860a345ca0b9889cbe5d5d11934090", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e993a57f4569f76310bc8c203372ebe472395005", "version": "1.77.0", "port-version": 0 }, { "git-tree": "d1e0c81cdc2adb33d2963722016c0b13a15055f7", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6de9dddaca9c32451cad1f9ab60a27ecdcb345e6", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "44b1753c8c1bf0e4daa3820acfe891fb93becfe9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3855df4da24a17001705a1f198597682422ab0e5", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1b0fb25698290f2e71bd502b09b909978db5d75e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "740d6ae8322e2ba093606a7459412671c7869073", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "44e14ed344d6e9f1b98b656383211db418c3d786", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8541a7128902357fcfee35e5e0d90b4def824ef9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "91d83cd96d115c4dea50884904772baeb44cb3ce", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "f11f869b3b77081f937346ce1faf996ce0143576", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f28f49eddc9dff09b657594a4b165c5ce321f8ca", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-multiprecision.json ================================================ { "versions": [ { "git-tree": "85e937cd233bc9162fd5a226b5c48a103999ef26", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2db333cb2cd0cfbc7e3cd6ba5c4d2086102a07c5", "version": "1.90.0", "port-version": 0 }, { "git-tree": "727bfc1426b98ea8464378970622d73646442039", "version": "1.89.0", "port-version": 0 }, { "git-tree": "752008e7df52dbd3e61ec6fc8c4db0012ce60f5a", "version": "1.88.0", "port-version": 0 }, { "git-tree": "07db0e9497062a6120a922fc7c0d1d673240908e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "81b4e2619ca9f6ab4ea795eb2dadb3ed37f55ce2", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e273097fa247b246ba1e33388ef3c77679e0e313", "version": "1.85.0", "port-version": 2 }, { "git-tree": "d4f5a5cc6531e13e93659a81be7ef247835166ac", "version": "1.85.0", "port-version": 1 }, { "git-tree": "beebecb9b9d44353db537fb25e6901f76f4e1998", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d065617f9299d2065d826620fa84f19f55c511ab", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4c868a1c871bf2be340548a13614ee761780ccd5", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d5c0acb2f8f25475a0a69d41460e377e6ce66749", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d678e2c33ccdd2e64aa71ea623e1b89109502482", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7b0e294a0e563b3c9580683dafea094dd3e96849", "version": "1.82.0", "port-version": 1 }, { "git-tree": "2276ca63882c838c8ab2c9b4888f1264f5c46174", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f12752f8d8f890ae24db6c35d181aa4a9e408082", "version": "1.81.0", "port-version": 2 }, { "git-tree": "14efd17e671b06793e28603c87231ee7a9d971a4", "version": "1.81.0", "port-version": 1 }, { "git-tree": "238c03619ed1c1e5cf5b6bbcb71a5d22ade57b0a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "4117ddf70595a1d908d386b26a7d04ef6d9b5410", "version": "1.80.0", "port-version": 1 }, { "git-tree": "5e2eb2ccd2df8fe19e09aeb8b2c23cb1142c649b", "version": "1.80.0", "port-version": 0 }, { "git-tree": "636ec387aa16d01e5eb3604bf4c70e90ef520cd5", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2914c2dcd5cb9a604c14ca9a5e9600ac7c0ecfd9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "58d7184ae4115f7f46671db9929708872e6aae6c", "version": "1.77.0", "port-version": 0 }, { "git-tree": "55ee6b85fe02f7875374cb3f78a427365ba7beb5", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6d5a003c951b208d27de281020c305977859eedb", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "1469cb24a4869538139a0bd626700152ba4c81e9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ca5497b49bca01da2bca0b1541c2b9f112fa5782", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "da3f93b10a9839dbcaab403d463939062387d21a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b9146946c094ab979c9778110029690ad5b31ce1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "5c514d4414375348e4916343ae4113c3e0b9aaf7", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "36f0f4cbf16f060437357ae32fcf5074393a3997", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "c5b4c1941ef87661538a6dced0ffd43ec3026df5", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c1b19785f1d04ff838d1a8c98755b40999c10e68", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "c4184d5187d5e60edbb1a98be3e516c885c05467", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-mysql.json ================================================ { "versions": [ { "git-tree": "b56461f7dad0a3295eb60e8959d606fe2a52b17c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "67af1d0fade8a8337cfb3222341f29b53ed5f5d0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "30355c8ff2b4054cc7e078e1b9ab75dbcc70d060", "version": "1.89.0", "port-version": 0 }, { "git-tree": "438c6f16048ebc2ed9235af01c4279380f54d95a", "version": "1.88.0", "port-version": 0 }, { "git-tree": "1f0c61195aa1cb17a4889f164cc5f508747b8403", "version": "1.87.0", "port-version": 1 }, { "git-tree": "87fad0ef94992093db1e490cd250e0ba7327ad7e", "version": "1.87.0", "port-version": 0 }, { "git-tree": "213f4548c6f7ab4cbabf36634d7827687614c3cb", "version": "1.86.0", "port-version": 0 }, { "git-tree": "498deb732afe42acf2851fd1b13fe0bb7d3e2e23", "version": "1.85.0", "port-version": 2 }, { "git-tree": "09ea550e89783437d46379ed60193d6e10bc64fe", "version": "1.85.0", "port-version": 1 }, { "git-tree": "a95f6e0cba42d2cca63e42389006d4f4038930cf", "version": "1.85.0", "port-version": 0 }, { "git-tree": "2d0da58e8e662f760555df2a7547a01dd1481b77", "version": "1.84.0", "port-version": 1 }, { "git-tree": "445cb1123a3d51d6cefd5954fea6cf3d06f83351", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0acda793061ac85e68029b15c6fa6919a2f87e8d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d85c256826e13a62169b1f38bf7c3f8288a697c0", "version": "1.82.0", "port-version": 2 }, { "git-tree": "93979a186a11766a973ba4d204213cc0237f71d1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3b07f53eb29e4832821872d4beff53b5c2cf1ff4", "version": "1.82.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-nowide.json ================================================ { "versions": [ { "git-tree": "dd8493bafc9e5d176e8290a531db593eda6a935f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "264221828838d9cd7d8d1e8aea3038e2449fddad", "version": "1.90.0", "port-version": 0 }, { "git-tree": "c4065231b2aca567cf4b7d4311cc9c47f19ecf73", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ce9752f87dc2bdb61f7167678034feef7bc69afa", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9edb39080f55a846319dbb88255b3dd1439aff82", "version": "1.87.0", "port-version": 0 }, { "git-tree": "e9f6bfa6137d44eadd845f7c72379e811b10d6a8", "version": "1.86.0", "port-version": 0 }, { "git-tree": "4174140c6f966d130c67b6eda61deaa1b692ba3b", "version": "1.85.0", "port-version": 2 }, { "git-tree": "2bfc7298575815e3f2e29378e942441f0b56724d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "740c49378bb079e89ffb900e18a3df7db3c25982", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ae23a2c639d65f74e2450032be88e341a60225e6", "version": "1.84.0", "port-version": 1 }, { "git-tree": "ba0821bedf1027ee9fe1e6e93543115ecd2f069a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "b4c07fcec5ae6b5f94811dbd50ee720884d65752", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ea86cbf24b6f2bf242d24bd8047699cbe644b68a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "0a33bddbce29068b61dc012e6326446175b79184", "version": "1.82.0", "port-version": 1 }, { "git-tree": "27a80db62b918cf6940cf344794fe82a09656f94", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7f2c197f872e761742ba027d9379eab35d344231", "version": "1.81.0", "port-version": 2 }, { "git-tree": "c8d5e35fa46d188e19c04320993fc3b461728c33", "version": "1.81.0", "port-version": 1 }, { "git-tree": "9bc00c8f52a886d934f09c93f78e0edb82ea5fb4", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d16fe18d5e02726b147f738299dcfc9ae091415c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "a5bf7c703090e7a83527aef14901df5e26668240", "version": "1.80.0", "port-version": 0 }, { "git-tree": "8013e5dd702b7f4c9973872435060812981af2f8", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c38c862892bc328c743481ee48b3abf50e66a51f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "2fc28ef9747a6ead394ae884518c8be324dd8e33", "version": "1.77.0", "port-version": 0 }, { "git-tree": "9b1a6083440b08b8b266524dac6a8aa200e417dc", "version": "1.76.0", "port-version": 0 }, { "git-tree": "641c12e14ae3d025d4c55e5de19b00a65f916dcf", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "3ebf4a6c8d6bdde7a66ffa7c08a35c477dfdcc10", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "21bcba28e4ef0abcdc645c34529979f0812ae123", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5f98e5fcd3cd4bd476ba78be6e7d815c623526c9", "version-string": "1.73.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-numeric-conversion.json ================================================ { "versions": [ { "git-tree": "fb3a9d99aef2786186883c9b74e5c6dfbcc30ff9", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c6eaf69a7bde4a8b6de2a2c6656cb03512ee9c40", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4a4daafbe60c9ff995541373ec7df4b8b35c4773", "version": "1.89.0", "port-version": 0 }, { "git-tree": "79af9270e64b3948e4fe3c0c911614c090450bae", "version": "1.88.0", "port-version": 0 }, { "git-tree": "383b718f507081bc65d72ba2aee6932eed881e45", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d7c5fdc151bf418c8b4c7e8df69306797ea12f63", "version": "1.86.0", "port-version": 0 }, { "git-tree": "22b8c971f27497e030326f679f776201cc448cc0", "version": "1.85.0", "port-version": 1 }, { "git-tree": "720ba65f90795653294c5dff7646cd7a6c5fb11b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "045c7591a2476df39303ead2ec238a792b4b473b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2c04732bf0a8b5a4025226e584091e3998e1b224", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c3a65f3521df33b8a76605097a3046795f1107e7", "version": "1.83.0", "port-version": 0 }, { "git-tree": "00e6f269cd4fab6986205b397e46394795941f31", "version": "1.82.0", "port-version": 2 }, { "git-tree": "97842146c6a87912141dd1d4654e1576d12e5cef", "version": "1.82.0", "port-version": 1 }, { "git-tree": "232cc2c101d565009c9c60968bd2c7eab1891e4d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "63173b669cafa107010dc0615254f7338fef22da", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d56b02050a9ef38a6ae10578f665f344df2df0aa", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f14f2311f06cc2499a8f0815793f5a7a39e95649", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2ef5bee24ba2306792e90eadeb29513d3b39257f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d472eba74f6936b736a2759ae9e0be3c96a7d4b7", "version": "1.80.0", "port-version": 0 }, { "git-tree": "33a349e75f738b735e678de319469c0f9009a413", "version": "1.79.0", "port-version": 0 }, { "git-tree": "11dcb5d23dd6b1db7138ffe608d76134ce1e4ec5", "version": "1.78.0", "port-version": 0 }, { "git-tree": "78140f78c6400520bd4ce340c68236e083a504e9", "version": "1.77.0", "port-version": 0 }, { "git-tree": "3ab3a3a915ad6bff1aa094641e7471e5ddc8a11d", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9de299c79ee96b9090a3a27cbbaee41b62455003", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4f206a22dbbf0283bb5c2a21840fa464da51878d", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "84e03c7a7731f3351abf0e47b4541a49f9c3d9be", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "4904b5b839c765dc1befc48fadf0c6aa7fb2d669", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cff35b245bd34a2feffe8b7a96d0b73417e531f6", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d28bc5bb6312ab583a3ed5c3999e662007090805", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "caf2dc34e95d974e833ab8953406cb09e7548a2c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "cfbc5f6f663f2c268ee3e175e3c28da42467792b", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "97b385de93d6beb4873b6b20c20aae9d2168587b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "68b1d75d2cede34245dff141bca02743c53dac95", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-odeint.json ================================================ { "versions": [ { "git-tree": "4794c75b22fd523a69dd1a70b745b6a5a6820a78", "version": "1.90.0", "port-version": 1 }, { "git-tree": "35e31b45888a04979662f0441fee96dd4429a18e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b2ec6a2de16d7c04f65371a79ba9af314428d304", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5e45cdd18f61619b5d782afb1c139b4535a6b160", "version": "1.88.0", "port-version": 0 }, { "git-tree": "dcd82d93434f02e2f498bc188f98c5e082a9a083", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4527453f0f9252b3c16d3db95b2ba2824bc89751", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f3d2b345bd19ee4850caa80e2040ccf79d054e4b", "version": "1.85.0", "port-version": 1 }, { "git-tree": "c646b1541aabb12a2dbf4e320737043c6b0ddba8", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ae5704875a4fdeaa0b0dc58b46e6ef38bac7cf65", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2fcbd140edeb2924fc474103591e7c2f93bee130", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f65beca22b3663038f2d5da292a1dd7f63c1fc23", "version": "1.83.0", "port-version": 0 }, { "git-tree": "70ec7a68fae7d61cd0fb694743e84f327ba34272", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ad9209f191bcf6d65e9fae09c5d722ae1b058004", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ae52c4534ac39a38a782f8f5b076883061f6326e", "version": "1.82.0", "port-version": 0 }, { "git-tree": "040c449827191e183d02552e8a125f47f95be31b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "01735d34fb174fd3ee3108dac308cb55ffa7783c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3664e0b51f3bdfd628a5237a42bba521018dab32", "version": "1.81.0", "port-version": 0 }, { "git-tree": "271376a4dc38558bd9c8fbe66c7dc07548d20f2f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f08d713ac19958a488cba507887bc2e7beea1a2e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "893dab725dc2e30afa421db9d4ad5f153da10ab3", "version": "1.79.0", "port-version": 0 }, { "git-tree": "069823a27c74a3a7872a0faed570b16130b4698d", "version": "1.78.0", "port-version": 0 }, { "git-tree": "effd1406c513ca8f20a1e2b6de0cd299be92d74e", "version": "1.77.0", "port-version": 1 }, { "git-tree": "9ef1ae6d236984a5cdb1cb5dbc76067648461231", "version": "1.77.0", "port-version": 0 }, { "git-tree": "89c69f304356b50d3e4e58155bb08009629de385", "version": "1.76.0", "port-version": 0 }, { "git-tree": "92ab84d7e417a2d14c7358145cf83af87e7c85c0", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "0f938fcdb7c996dd3d24c01d4bff1e0cf808a55e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "32bb87656fb8b1354d71920fcd04268fbff5f943", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "359febae8648a57639d494837d9136fb3943344d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "d6762c830572ebbd4323684a8f7e4e83b358156a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ec79ec83a8ac8d0c7197d88922af3c7c409fc1b0", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "7a36e9f91d3f8f11b7b38d541d5a922a06ff4934", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "b98f6084bf20dbc571744b0bb2b7b1dd1f2b86ab", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e53c52d9f85430fe9ecd93aa08ecc2bc8ec94f5f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a52b62113e8c49a01c7d28c275849302bd173cea", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-openmethod.json ================================================ { "versions": [ { "git-tree": "1870b9513b5f57f26ac2b7e18c4052125d99d640", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1026bb61d683ed6eccf77085d6dcd3b2fca6f7bb", "version": "1.90.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-optional.json ================================================ { "versions": [ { "git-tree": "37d48513a5c0e1dd869909555ca4d58ad34f94da", "version": "1.90.0", "port-version": 1 }, { "git-tree": "809d9d7209cda9303a8780e036c302c4d7c433f0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "a00224cf1d434cc257cae3146aed00651f9700c4", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1c8c7aa2e1a750a5faf818b3bc8e0491f415b489", "version": "1.88.0", "port-version": 0 }, { "git-tree": "fe57251855d60463135bebf003e322373662baa4", "version": "1.87.0", "port-version": 1 }, { "git-tree": "3aef20f9f24d5920c763778cb7d5adfec48442bb", "version": "1.87.0", "port-version": 0 }, { "git-tree": "1401709a35e73abf6581ee9eab32ae2b71a7fa0f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "315e38ed952641dc2a064ab7a51f8050640190b9", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0c8968544493922ea8f12a6e6c3782c3b86e7345", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0377a7ce5a333e3098608848f0c01b10690e517e", "version": "1.84.0", "port-version": 1 }, { "git-tree": "48bb7c9174d9321f4b41f787edc318581972437c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "145809a6e99a8ba579c3c0bef2c48969555a2bd5", "version": "1.83.0", "port-version": 0 }, { "git-tree": "26a359b912dd2fb42978ddf8ae39fbbccc1e34bb", "version": "1.82.0", "port-version": 2 }, { "git-tree": "100ff3094e97d23516718679d59d9f86821074b8", "version": "1.82.0", "port-version": 1 }, { "git-tree": "a6a111b76b0488b4b2c3a889876b9fcdcccdfb67", "version": "1.82.0", "port-version": 0 }, { "git-tree": "a76d1e59a1f3809b82cfd8f43851e51ecf1c7e15", "version": "1.81.0", "port-version": 2 }, { "git-tree": "735dbbca14eac4adff9ff74e95bdbd3923ba9bdf", "version": "1.81.0", "port-version": 1 }, { "git-tree": "16c14f7a21ec07818a3c8e5495c0876802bd2783", "version": "1.81.0", "port-version": 0 }, { "git-tree": "0a028094bf6e20c3ec659fc2b4fcd1b9d6ea1502", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f25e73c7f9e4db6d27692ece6b2db2269bbd3a72", "version": "1.80.0", "port-version": 0 }, { "git-tree": "9480f61fee5df6864a425964bd13ee783a7572a9", "version": "1.79.0", "port-version": 0 }, { "git-tree": "4171d6f66bb828d51bee3de777da9384232b6068", "version": "1.78.0", "port-version": 0 }, { "git-tree": "4a1ddf516bc0edc855ab4d9b8d134f338ba51a94", "version": "1.77.0", "port-version": 0 }, { "git-tree": "5a824aac647806d7f8d03ea8ec715faea895d54a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "bc9caf056bf385d810fd7cea00b6ef7a646edee6", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "be71f26ed429ad7401d2d49ae5bb8b5f021a6036", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3c72f374212dc6a739958ba97b3eb5db2ebfe992", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "63ac403fbc9394f9bcb0d704a2a833703480aefc", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b1af3c7275b7cc47f3f02e4c80ef2c626b30f33f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "575b825d3738b5d32949e32d15075aa309c21520", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "50c656d90eccb3d880f7a8bc863769cea821bd70", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "2c457cdb8a547534fdc200f77b62b268fcef057e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "cd2da61394cdeae60e771e31791cfd1321e54326", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5f667b71b3b4294585fd5922f24fde5377c79a34", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-outcome.json ================================================ { "versions": [ { "git-tree": "ac0f3f5178ba34b7209df8efffece7c1e6e08fa2", "version": "1.90.0", "port-version": 1 }, { "git-tree": "7d861dc6983efe7d4b09c2d347defbe6b183f299", "version": "1.90.0", "port-version": 0 }, { "git-tree": "321a4a806d91e3e8625caab590f2e05234bed8ea", "version": "1.89.0", "port-version": 0 }, { "git-tree": "867b39e53e905db43b6efbabed863a7af2c22c94", "version": "1.88.0", "port-version": 0 }, { "git-tree": "57db8351455001066e4dd310d7d523e94aeb2aa6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "af6984e0960cb6fcfe5ee65dea207ab86fb9bba4", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a53be20f13ae81d7a509c8bba2ec52732f16148e", "version": "1.85.0", "port-version": 2 }, { "git-tree": "46a79ff4090b57d9cd8aa60412e78d0b19ed53ee", "version": "1.85.0", "port-version": 1 }, { "git-tree": "abc13edb8584dea41c6904547812a9830f5af71f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "812e7d15d1611dbadbeec432056d11a0369adb05", "version": "1.84.0", "port-version": 1 }, { "git-tree": "3c30498b367ff02b3edf49c4e2e726fb64258200", "version": "1.84.0", "port-version": 0 }, { "git-tree": "b4f9214c118d7d3ee45f5c2624f8383ff596fa14", "version": "1.83.0", "port-version": 0 }, { "git-tree": "089f7ec14f71ee4d59db5bcc795551da347f63df", "version": "1.82.0", "port-version": 2 }, { "git-tree": "bca5b674d3737aeab820ca2f36e4db187031f296", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7747ed969228bb72b00135c0e2f9e8be23de8f3d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dc4fde7c569c4edd73ef2e764f28cadec09f6c01", "version": "1.81.0", "port-version": 2 }, { "git-tree": "c799b9959444e187c572094e1e423a47a4c8f4ac", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d4d5a08760d6be0ae7d408aaab2040252d209070", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9e75e2e921a4cb4d3adb850a0e5a2515d304d7cc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "3e67c523f8a5112b14aec2d7f931027848e9d424", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ab5e09720b095a4dedf3a6c9c01b5512c67917a2", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ea24820de39876b61aa98e1d54ac9663c0355f93", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6737734e6d10c475676e1ed16967ec7792acc7dc", "version": "1.77.0", "port-version": 0 }, { "git-tree": "1ea91b17815f03d2702bf3721f8002cb8d64cb85", "version": "1.76.0", "port-version": 0 }, { "git-tree": "078abc59d831a640ca9ab5391f63e8aa8a95bf99", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "bade5fbaf73d4a6e5856d1170801b4861ad54eee", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "837ca9a2dd5d41179c6fc3192f74083c3ea34951", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "7122cc6b69c8c46c6e3d7ba54359fbeb85cd7507", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "f95d70d844d51cf422d3874a73a06a4029707ca3", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ed6420c7c96b34c23c66cffe00c88aaa083d910f", "version-string": "1.70.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-parameter-python.json ================================================ { "versions": [ { "git-tree": "5792a5562fc970fd9d6ccb1baffc16a6baf4f2ca", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ec3eeeff98fcdf4df08c04897be0023f3cdcac7a", "version": "1.90.0", "port-version": 0 }, { "git-tree": "94a003055d12de60c5ed0744fe703ec194067f7d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ce88a5d5b9416f6888b2d76d95f2c9816b26e74b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "36bea3e9d5da41d8324679a017921120f998534b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b7c50e8467604b4831ff545543733b1cec8e12fa", "version": "1.86.0", "port-version": 0 }, { "git-tree": "dc0326ea3ebe63b1fc77c9d7a7807a6453653cb3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ec1ccfa9dabb0e8463ebae8b2055014b1758151e", "version": "1.85.0", "port-version": 0 }, { "git-tree": "943ba5710d0a688a0bc0f93a1decd3a89a1aa2d8", "version": "1.84.0", "port-version": 1 }, { "git-tree": "e226c53878059005c1a0f38be081c3bfef1f7483", "version": "1.84.0", "port-version": 0 }, { "git-tree": "3894f883ee35b2bae2f102c520e81deca80f6643", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ce2b59b01e836bb57415dd89d2895e52efa67970", "version": "1.82.0", "port-version": 2 }, { "git-tree": "375d3ead166d0600ebedb713227e05b52b624129", "version": "1.82.0", "port-version": 1 }, { "git-tree": "481c35c8ce42352acd91bad72bd96528f7eca160", "version": "1.82.0", "port-version": 0 }, { "git-tree": "0308f77b36482007673cf703034443cf65e55415", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6ceda11f86b399dd1edca0bd7e9609c626ea88ed", "version": "1.81.0", "port-version": 1 }, { "git-tree": "0405028498bfea670a8fbe4727f4a8b7b656c3d8", "version": "1.81.0", "port-version": 0 }, { "git-tree": "65cbc2458c2ebc14c3aaa805b24f4c136cce89ae", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0f685a59fbc75e930b74189fa71a740ca2a4eb60", "version": "1.80.0", "port-version": 0 }, { "git-tree": "d5d0f28a377b7508134bef9f354168e9aa49f1bb", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5a1cbdfec8ad70998ccfb368a3e77d8658023fed", "version": "1.78.0", "port-version": 0 }, { "git-tree": "5295cb4faa096633a23163b2a6409a27464a157e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e57e6544326fe84416a0060a9d93723d05b9bb54", "version": "1.76.0", "port-version": 0 }, { "git-tree": "dec159c5ad8645f1527a9c00d9cd56840a7bea2a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "fc3e94ffb7d3a6bd9346be50a55cd8d388ad3bdd", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "e464519c64bdc19c366c3fe4f81a567488aa4bf9", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "adc1306f39dc508ea895ee309f262879bc260f7e", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "4177f6ede7a5ad40f1defda81d881af503e8f80f", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "7e22f05569f68c13a71f33474b3a0e28b8f4323a", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "2e24d0a65859716b3054acf46cb3183eeb4d35d4", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "cee396ffefb0e63caf08216be30ce57ad27b56a9", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "21fc6116c1798fcecc5cec8fd5174c7c8c13052a", "version-string": "1.69.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-parameter.json ================================================ { "versions": [ { "git-tree": "10a82cb91158e7cbf45de9477f46ed7189206e62", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ea806e13587a995f3c49fd118b3eb4314495e5e5", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4e82815c34273690f9c0215490036aaad9b191f5", "version": "1.89.0", "port-version": 0 }, { "git-tree": "86e2c7b42f18203836314d327e95b3ab8dab7dab", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d31bd0c64fbc58f50543ca1ab1c3e5b768d1822b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3c40a45d196949795b2be3541851c291fb1844a8", "version": "1.86.0", "port-version": 0 }, { "git-tree": "355ecc02b1782f48f977906d1ebaf8ec048b01b3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "166c5f04d767e7a2550280f8d78f64409aaccdbe", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7ad342d896cd07b998ea1424d6d0b02e9158ab6e", "version": "1.84.0", "port-version": 1 }, { "git-tree": "675460856203c4e36b59035ce05148bf5d6c4103", "version": "1.84.0", "port-version": 0 }, { "git-tree": "1dce1428072cad1f8bc7b6c02f14cc6ba12da3fd", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ba542be6ce0920e0fbc12d2fe1d3fd4edb02c4ec", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6170f4f4b0b7b9105de27ddd1caeb5f92c7feac5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "a80705ae417e52c0ed302f2192dc26addccdb8b2", "version": "1.82.0", "port-version": 0 }, { "git-tree": "432a7587942a58d632200ef03b28f5a4fc3fd7bc", "version": "1.81.0", "port-version": 2 }, { "git-tree": "2dd3a514f29440724fca1766999994887b7db33b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ef276de80d5a03caf87d1494286215dffdc51d71", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a2b7c65bfea84b3b5c4a598a45250fca5a1112d0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "dfa271d39fd1a50822e9c72199164d383410bbe5", "version": "1.80.0", "port-version": 0 }, { "git-tree": "94340499eaf0d204a8000b09a4b7f58eeb12c84d", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e11ea75fd7178b78b5a3751aa7db269c8ef222cb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "3f480980e4e1ce4713a28bd24d728efb0bb931fa", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e064373327329af8a7624ad00073dbfdbc196a48", "version": "1.76.0", "port-version": 0 }, { "git-tree": "04759c54c296fc98c5fd452b7e1707b5d2e8908d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "a8a05117ff17b78c9e25d5edc7b934ec2bd97de5", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6b9936e2941180b9915722f9fa172b24e0e0816f", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "2236b9fcb36ac57a86672580631a5a38588435c2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c7ad0049a8a02f146d611893c1d25b004b679efc", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "56cf52161854c2019244accc1567869626810cc7", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "579c568bd7eca04004fa0f3a30e20c9c93ec48d2", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e4d056f3c6c7d1dfd1dc4d43557f73aec54265ca", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "0f21615783b3b0b3bd710d3100ef3fffe60538d4", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "bae9960ebd64abb05f988d01f95e39a55deb085c", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-parser.json ================================================ { "versions": [ { "git-tree": "fd65de60bf4a529383902bcab39e9551e0170941", "version": "1.90.0", "port-version": 1 }, { "git-tree": "780b1610573ca120f07106cc24bda20ebf108f47", "version": "1.90.0", "port-version": 0 }, { "git-tree": "7babae9ebb6cd788fc54eac57af1936ca1b0ad84", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8ba854a0e9bdde3e66e4fb31a7d455628c7c081d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0efba19a019c2d68628e48fa3fd1df9450eef24d", "version": "1.87.0", "port-version": 1 }, { "git-tree": "df0eee92ddcc68d09cffd0a56a44b9dffb3cf96e", "version": "1.87.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-pfr.json ================================================ { "versions": [ { "git-tree": "bb03b93d22366975984b34a4e5a3de62cbd26e32", "version": "1.90.0", "port-version": 1 }, { "git-tree": "5c07e3d48d26e082384ec087b48e9d079a7851a8", "version": "1.90.0", "port-version": 0 }, { "git-tree": "867d7a65061957df91f5a86903f215d12ee713f1", "version": "1.89.0", "port-version": 0 }, { "git-tree": "3e01ea66e93ce72d3b8e102e193a5dfea23aa04d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4ca001fe60f26819160f9a75c7c95e28e94d8d06", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c79390e03453c40e32849c241cf07981b29f5486", "version": "1.86.0", "port-version": 0 }, { "git-tree": "33739bf640212a716a3c751a0b8846b0301a3200", "version": "1.85.0", "port-version": 2 }, { "git-tree": "789f8b2ece67f7e2ebda8e88cfdcdf4ec744e8c1", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ee5101db0d8b1d1f7d17150190c84019a1056859", "version": "1.85.0", "port-version": 0 }, { "git-tree": "e57ea66074c09d0b7aa008d9ab10af22264ecf89", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2ccc905349d8ac698ee9900b86e952d7ead3f1db", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2a38c23f0ff2226b879e1ef04aefd19f479bc5a6", "version": "1.83.0", "port-version": 0 }, { "git-tree": "84e8832ae82979a2748d319fca9f8e5fb397e1b9", "version": "1.82.0", "port-version": 2 }, { "git-tree": "441d806b60674a7f79367de3675633972151823e", "version": "1.82.0", "port-version": 1 }, { "git-tree": "aef1c06093c494f9dbd3dff370adf7259342896f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e8e3a29f5a07aa3f57e92a281a32d9da85faf155", "version": "1.81.0", "port-version": 2 }, { "git-tree": "de7195dc48348920b1fe80c0c42944f818615a1f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b313f7bf1ddb4e644aeefdbde5e846531ca0d812", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2129988348177a6896a03c6144f20f5c562ff87e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "5d050fa2a0189cd8ff8625e9ee6b6199b3a28785", "version": "1.80.0", "port-version": 0 }, { "git-tree": "48758ff038842f02fbf6f47c5f90afe1ae682a51", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1ca2c9de4c7a8553f401a9f7b9e954eb6305bc47", "version": "1.78.0", "port-version": 0 }, { "git-tree": "23bdfdb9c9cb19e28201088dc055b85dc44b62bf", "version": "1.77.0", "port-version": 0 }, { "git-tree": "f58af0deba41766f33ad383428463f59cf38d976", "version": "1.76.0", "port-version": 0 }, { "git-tree": "96688c29c3a5a60c3b347391664756f884eda90d", "version-string": "1.75.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-phoenix.json ================================================ { "versions": [ { "git-tree": "c11fef02a7518852a8b0b7add96fee4f7c421be7", "version": "1.90.0", "port-version": 1 }, { "git-tree": "56d76358e50d4d960f9be41ca894df2c3d38abad", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b80402a8e32506147c9125b435e7bd1ff76babf1", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4fbe7fafb63ee01625c7fa368f47b55a603a86d4", "version": "1.88.0", "port-version": 0 }, { "git-tree": "45437083ef6e8d174ad9d49a056e56e5e3bdea23", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3db90fb7dd1c352a01c0a2d72c844a023b1655ce", "version": "1.86.0", "port-version": 0 }, { "git-tree": "88a0883f15bc2d36b9ba38ed876e09379c513e50", "version": "1.85.0", "port-version": 1 }, { "git-tree": "343d3b0650278b9cf669e787d35e0552e9f0bae7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "e0f46aa05e769ca814db892ba73697b365758080", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0c29dec6a299097d811bc9b76439f2ad7afe9fb6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a4c5832e8ebf68cd4f2ee601a10aa7adfc12e6e9", "version": "1.83.0", "port-version": 0 }, { "git-tree": "c68391dd87698c5d288e7e6f937d72597e0e749f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "cfcda2e56bf879d0c3d09399abb8eddcfd1b2d27", "version": "1.82.0", "port-version": 1 }, { "git-tree": "fe32678fa216e5b70cec84ebf08eefb55ab1a99e", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dc96247cd9251f11421495082404e4ef6f1fb074", "version": "1.81.0", "port-version": 2 }, { "git-tree": "7565e47b73a5ff37273caf0b5048f1680e871379", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b21af71aad19d9c3ceef00d799a2e5f09133c996", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bd5461d6cb0ea1e05a378d912383fbef50e8ec25", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c69ac60adcb765d3b35a18b2be37dd7ea21fa711", "version": "1.80.0", "port-version": 0 }, { "git-tree": "571d5f1a068664b1f31dddd3541b6a19bfdbec2d", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1812de4001c736517ca9bd780fa4b5258dfb134c", "version": "1.78.0", "port-version": 0 }, { "git-tree": "2926d1b537106cb231bb9f3a657f6fde6c8530f8", "version": "1.77.0", "port-version": 0 }, { "git-tree": "20af48e0084ec80f69c580872c2fc4e01fffd4fc", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5f58bbd7060a9f72ea2a61edb03250ee079965a4", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d19c6271f74420af372b2452ec699e4caab07ea1", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "80392f2d9ab9abf6ae587de851ec4b49c42fe9e2", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9e7ee11598554bf50d36481b29b1ea964f4cb1d1", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "631ea14e6ac2fd604fb3c7c8797fd55cea03c030", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "067e1f80ed1afd316020d1d84692b3b674e44f56", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "15b6cece21643e0ab0ded10cd182004a513b9d80", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "c02691b2970cb0170308e2455dbf110c358921fa", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "6aab7720ed6a6fc75b24d2c9fec365cb60751543", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8889e9d0ef6ac1a42e5f06ff8a0671bbcc309cb3", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-poly-collection.json ================================================ { "versions": [ { "git-tree": "03122da4152fd763a42b2b7e672e5a22f62f24c8", "version": "1.90.0", "port-version": 1 }, { "git-tree": "93baefab820bb950d381246079e747d52afe3453", "version": "1.90.0", "port-version": 0 }, { "git-tree": "6160ea4fe9df20d39eacdb0505db3dcc57cfeead", "version": "1.89.0", "port-version": 0 }, { "git-tree": "3064e19eaa7a54b9fcdc75975207652637dc265b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "ef4d5ff90d9a0419caa152d92d5b74ab6e85cbe8", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4bcdf6a4500a70d37b43adf4c7fd6212412d822e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "91639424646db60ac5e23abf54303bd0bb558e52", "version": "1.85.0", "port-version": 1 }, { "git-tree": "736272febc0ada6403629198fa2c45aaa357249f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "816b1b8a0e773ef1785b30cbbd296b7cce0e1f54", "version": "1.84.0", "port-version": 1 }, { "git-tree": "5eac8cdcf86fc0fc2753efa6acd11f23463e8069", "version": "1.84.0", "port-version": 0 }, { "git-tree": "28e876df1967c012343839a6258191ce5107e5f7", "version": "1.83.0", "port-version": 0 }, { "git-tree": "3a905d35b62d85eb36ef4a2748fde453ffa8ac2f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "11d5d87f8e0701ad7c591b83b75d69a27249e8d0", "version": "1.82.0", "port-version": 1 }, { "git-tree": "8dc25d07f3374565adb6cbec2b66c72e5001f0f7", "version": "1.82.0", "port-version": 0 }, { "git-tree": "4256eb60f0d91c480186af87acaf8a45bedb4833", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e4b52ef87f8698394d590540e524f04f7ee0db9b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b11ac38fb1fb3486e3cc705b4d3022e4aea28cf1", "version": "1.81.0", "port-version": 0 }, { "git-tree": "481eb4011dd911ddef930551a61840f880f121c5", "version": "1.80.0", "port-version": 1 }, { "git-tree": "4be3065ec0871a76272899ff58c1e55aa9e387c1", "version": "1.80.0", "port-version": 0 }, { "git-tree": "866f9a4fce24354f73363d787352bcc2ff22d917", "version": "1.79.0", "port-version": 0 }, { "git-tree": "3a128149f5edfbf7e5c4fcbf497b29ce587a35ad", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d57a3554e15ff1a0bf279688f487751bc5f74efb", "version": "1.77.0", "port-version": 0 }, { "git-tree": "603662ddf6590592848f2dd714fb08776d3a9616", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6867f4f5795c457b9f726b907606da8570c9f66f", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "1809da29e58709fca479c620ae0c885f30fa3960", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f8c72c96d595aeda145b193248e8ec219019b527", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "ed0fa4128c2da0b5670fe7c0f4fa257b68fd1246", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "deac35b40f793ed891ce85801391b50daa15d196", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "9b05e6d6f8ce8f7a20a9031aa6d2e6200ad0a359", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d1f35527bb9a66cad7bd047b53cc754d6e47e387", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2e17c7509e0a77e2db62a15c3055e66b6a7e63a9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "9514f57ba3b3f520f580a5d1f6b0fc95aaba78b8", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "33ab2258117d2b42ad9d64509d5c8ca42f9d7157", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "2b55d26b9e35dc6e503ec439265a30f6942ce63c", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-polygon.json ================================================ { "versions": [ { "git-tree": "5a885da0a03975f310fe25f3cc53f32b1034c7fe", "version": "1.90.0", "port-version": 1 }, { "git-tree": "15af980a018967e46b0742db9933bc039fc5416b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b354fb06f5af26fa9290036db5ec427ab83749d6", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4246224100202896cd336ff646da245d49eaece3", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e5c245b37393afad4827581c6feeda7ac9128a91", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c77496b9ecf1147488b44405e7a46a857a10fd81", "version": "1.86.0", "port-version": 0 }, { "git-tree": "c54bef1cae107f3a678a1e165525e444aa56cb93", "version": "1.85.0", "port-version": 1 }, { "git-tree": "8dc890abffcd7f8eb599cf87f618ce43b5b4ac74", "version": "1.85.0", "port-version": 0 }, { "git-tree": "5e9ea99d0077644630e85831f6c46031e4a13d2c", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f9f254f2317b0f98b79fba8239b81ef3c65a30bb", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a2cd356928aae40e3ed8a5764f868de84dde981d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ff0451ec470d4d15f7eb41a37fb9aa5b960b7348", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c5072bfa0aced94778153484b7b3c9302e0ff0f3", "version": "1.82.0", "port-version": 1 }, { "git-tree": "a9f865a95d609cf845c7df90a24bd2c4a3e8d3fb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "0da0dedd618fda4f546705035a6cb04243cf3c08", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8483ebffd5e8365af7f17ae0e3572b993bbe3ae8", "version": "1.81.0", "port-version": 1 }, { "git-tree": "0049b1b600360bf0979ffc0f45c7bcc7ff4e575c", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9d173c6e24ed272a57506ec4f3094e35f94b61a5", "version": "1.80.0", "port-version": 1 }, { "git-tree": "c77b533b461ca02f57c02480d0b49175fcd33305", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bbb7a4fbca9a45b0166893128f343ed3f9bc099a", "version": "1.79.0", "port-version": 0 }, { "git-tree": "67a7f31ef72a1ceff351456cc7282b6f261db187", "version": "1.78.0", "port-version": 0 }, { "git-tree": "81ea3095d56a98f6d5b75db6568a19e48ac819bb", "version": "1.77.0", "port-version": 0 }, { "git-tree": "1a6ab42b35df132f8a1f7c52dc7d92eb8a7cb894", "version": "1.76.0", "port-version": 0 }, { "git-tree": "990f655bf0d76d2a916bd7c0631f01a7a6516c05", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3027fec8cf1e3ee70b118ef8e8252a7248a96b1e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "26532b34fdb394b72a8eb9de5fd86251a93278d3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "07372871233a994115153c9903ade00b8422c9d0", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "2bf4ac6eaa8ede6f507a6ef22f91697ca86929d9", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "18a84857c891e7535699a75b62751951a973ce31", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "275611a9e6f6751e6f9d97faa8ff35a0585147c2", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "ca20a1061687f8269a014139ff51c9eb15e3b63e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b559e6fba3459eb443caccfb6abc1877b655b0d3", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "9f2b5cf8d10cf6ef07ec370f4a0fa42340427c03", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-pool.json ================================================ { "versions": [ { "git-tree": "9e1ba45862580a2e0d9fdd955ebbde3bdbccaf90", "version": "1.90.0", "port-version": 1 }, { "git-tree": "81b911b6e70a1b1f66bd9f948469d5ddbcee7ea2", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8afc11f58cef060ee80f2ab8fd1e719f414bbf67", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f60821c1894371525636f260d1759ed9d3c0bf1e", "version": "1.88.0", "port-version": 0 }, { "git-tree": "2d1d41a831cc0d2fe7cd4431421f68a79ceaa1c1", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fae207f1642a362cab7ed2d17550bf776ca99a93", "version": "1.86.0", "port-version": 0 }, { "git-tree": "da9f3ede1b0d363cda03d3899c9b4c0cac14c456", "version": "1.85.0", "port-version": 1 }, { "git-tree": "e0b197d034800ffc50d4832364fbe8f84faebe62", "version": "1.85.0", "port-version": 0 }, { "git-tree": "8479133b80578d0807fd99d0091aef695dfa4aef", "version": "1.84.0", "port-version": 1 }, { "git-tree": "359af8d863109dc52bf2a7f7de75bfc5cc912b6b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "e5c81fe62cb0da4fdc940d21d87837678a2e67cf", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f31154b251747a951b5100f83cff4c065eb1295f", "version": "1.82.0", "port-version": 2 }, { "git-tree": "0a399a01f9750acf2d7ac62288452f3d4319eb0e", "version": "1.82.0", "port-version": 1 }, { "git-tree": "4e15663be62c3d1a300c193ca87353ce8055b3cb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1f3da20be03fe0e6f6027b6ddf35a3cca1fdcaf5", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6aee0d5fdd5b0aaedd987d92c035c3306d48b16d", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ef54e12b83f87aa5e61bb154b2bffbb7ca18e45d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "32fda1e57ec88d8316456aa218e2bcc6c5ea3798", "version": "1.80.0", "port-version": 1 }, { "git-tree": "72126937ced48f11d0b1bd0417b55c0bbbff80d0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a75a80498bfc1134bb8d5808b5f8b457e4032908", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8c0061ca841cab5b588ebae9bd1387882eec3435", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7794803f75109db0ca64a48d2f1cbd76100b153d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "a9ae22b07f1f3b91d8b90f8532480abfbd0a24ac", "version": "1.76.0", "port-version": 0 }, { "git-tree": "90d72e8d8b2f27deb72fc883542f130142878a86", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "29785b25e33658943f0234f3e741472d66413a80", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "4b431893dd45ff5a697ddb75bdb547c5ae2ef2ba", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9381b2c96b09c0517db355129c141c74fdcfc855", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "9571c024c000de5d15b9ddf619375526bdc0ba80", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "2eab2d4bc130fa83a3c089c023767b587dd60d42", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8ac91086194bd77765f3e3027156af1593b70fa9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "96a5ad7352606709f08c9134e884e4ba591c012f", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "1573a51340947950bb5cb90b619e697ec6f60896", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8d97a0c77b606097ab9d9418a4cb602763391fc8", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-predef.json ================================================ { "versions": [ { "git-tree": "41db6ec4273c0e91a5720b7b0297855d0d482d47", "version": "1.90.0", "port-version": 1 }, { "git-tree": "2e107ec9ee2031e40678fd98e618f10cd1f9259f", "version": "1.90.0", "port-version": 0 }, { "git-tree": "44b5803d820eb060f0727227d0ae9171912df6ce", "version": "1.89.0", "port-version": 0 }, { "git-tree": "9800c52c1d92d169572ff2f2ed5fb936eb818c68", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b03d87958b87d7b6a214a2b92327db0b780e2ed3", "version": "1.87.0", "port-version": 0 }, { "git-tree": "955dda784a843bfb85d7c17343666c5ccf0f8642", "version": "1.86.0", "port-version": 0 }, { "git-tree": "509cb8e43b7f40b5ac27f6d2fcc930517726af4d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0933b332f19fa5eb1373a9f7deeb554eba833786", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4f14b394298998147f82b8aa97b956e5cf8afc77", "version": "1.84.0", "port-version": 1 }, { "git-tree": "087c63189a60b36df9891096809a9cd3393c914f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "8e76add266584a1177e9a0f2c59c43a78d88e578", "version": "1.83.0", "port-version": 0 }, { "git-tree": "a7efd1a99c14c79b469d86bbf9d39898ffde1858", "version": "1.82.0", "port-version": 2 }, { "git-tree": "3a0c5194d7a4d8825efff8d67e0c75cae0b058d7", "version": "1.82.0", "port-version": 1 }, { "git-tree": "347ee427d1c355f706f0ebe28bdd2b6ade08366e", "version": "1.82.0", "port-version": 0 }, { "git-tree": "d4f932a1cdc8e5f0230299efcb8817f859937692", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d842a26da11a0d212a7c44639bef0bb33fff329f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "a332019c079860859401d8b11a5daa2911dfd9c2", "version": "1.81.0", "port-version": 0 }, { "git-tree": "655098bc9822d731faeee6bbf1b1247488e3e86f", "version": "1.80.0", "port-version": 1 }, { "git-tree": "aba63dc45c18c5b2486a1597c57a8c8bc8c4332e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c17a7256c1f86eab749e10b451dbf53d317afaf9", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1865984507efa465dea0f7d597528cfedcef0b7e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "a291dbfb68391a25f04944f9caa924f570b26d41", "version": "1.77.0", "port-version": 0 }, { "git-tree": "240a1963be7f74c2de3f507bf034e765c632f033", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d4eea152778c8edf5ac36cfc804b4a4c38e2586a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "93c1d220a8aad92e3ea944241b6c012a100135e0", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "12e0ad4d58cf353a20f2bc4e06144d7d706dca6c", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "686bf9480ebc915a51c29add1a79ee1ac2faeb43", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a06cb7fd99d03c259c143acf0f49e47aa5ec43da", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0674481bed721602a63397c5f1ead31d25722dd9", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2e3b623903c5015a0f5abd40a676d448ad9efee7", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "db5c78b777b8eb604b036ecd49bc2591f8e30b19", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "9c2da3374a19b46eaefdbd947806354255d2a3e4", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "d14c0c29c9a15ed60470e864b3456c17617230da", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-preprocessor.json ================================================ { "versions": [ { "git-tree": "69e38717186a35e6abfa991e9379da8527d655bf", "version": "1.90.0", "port-version": 1 }, { "git-tree": "254f66a6b055ec0f69eb52687c2db0a449b7b816", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b24666cb6f30bbace4fa4f602072ff22a1926e6d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "499a4341d1d58ed648cc36f9634e6eed3972bf9d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e3380f553a2a9a50aa95639dcb703e13d226ce24", "version": "1.87.0", "port-version": 0 }, { "git-tree": "a086ddc6ee105650c442c1d40438b1670e3248b4", "version": "1.86.0", "port-version": 0 }, { "git-tree": "77759780d7bf4571b481aa189a7bb7150206b3cb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "584c8e96d2679e4a63162306107e20d79c669677", "version": "1.85.0", "port-version": 0 }, { "git-tree": "fbdd860d6ff10d998749499c64dd6566ad7da1e1", "version": "1.84.0", "port-version": 1 }, { "git-tree": "87a9dcc2d893cb4b0463fc054b761dd2fb446df4", "version": "1.84.0", "port-version": 0 }, { "git-tree": "07609446e5cce5a0d9afed4570e0664708444b54", "version": "1.83.0", "port-version": 0 }, { "git-tree": "11fa54ebde61dcf9ca2e18a42aa7445b76ce9400", "version": "1.82.0", "port-version": 2 }, { "git-tree": "85819cdd004323b0afe1a361b9e05fdb55ab6838", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1ca0aa370a73a31b99dbba3853293e00bb984ebf", "version": "1.82.0", "port-version": 0 }, { "git-tree": "84a76a2f6986793db34bfd413c3ef8aa5e994697", "version": "1.81.0", "port-version": 2 }, { "git-tree": "259ff3cdb31aa463866d3a638f041e15fd54b790", "version": "1.81.0", "port-version": 1 }, { "git-tree": "8f619e9c2da18bd9eb96e5fbb01b22bc915729d9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "c48eda62428e1821b43a16e58be0c1e5a19333bc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "ecc094cbf773842dc012128b15a0a8b33655a48a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1790581b89b5cf96bd870854b2bc4b256032a9c9", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e69da51c3ec0a8086ab18dbf75da11649aed5157", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6abad213e30df5ed168164b2612dba2041c7e8c1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c618127e3c475a0991c59922fa57c2fee6eabd40", "version": "1.76.0", "port-version": 0 }, { "git-tree": "8d78b8ba2e9f54cb00137115ddd2ffec1c63c149", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "df5e8b789fb8ba8db75ea28bab8572d51abd571b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5e362423a1e37acab0ed4384c4ff7d404fd14503", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "86eb3938b7875f124feb845331dbe84cbab5d1c6", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a5ac87f78f12cdae644df906759a37fc73bf4651", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0f6068598d7166ac3c86e6b2a2941ad87c664a57", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d1d614dd9f5ed6360df11e450c877429a45157ca", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7d3271021cd76a790b2d1295e07eb537c01d2d8f", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "40d7329109bab9f2da994006e49662cbd58a5b55", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "85ed15dc13f1d463b3ab8ff25f7e2c246286746a", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-process.json ================================================ { "versions": [ { "git-tree": "41e13aa8807a29528a940dedab941a32b153b616", "version": "1.90.0", "port-version": 1 }, { "git-tree": "681a2340d26ac8d835a19ec341bb48309632e092", "version": "1.90.0", "port-version": 0 }, { "git-tree": "deb9925183e6c7e64f27f9e566dd4a17134f471c", "version": "1.89.0", "port-version": 0 }, { "git-tree": "fbcbda5da7eaafd0201ebfaefab9f0606cbc889c", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d81dd97109ef3e859af1af132dff2cff2d254437", "version": "1.87.0", "port-version": 1 }, { "git-tree": "c163954223e02f5a868821c76a7de7df87a9b5da", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8d093f051607733ee4c54d25ec38604a3bdbe385", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d8916eb04f35085fa008897d7fdfe62953e58fe5", "version": "1.85.0", "port-version": 2 }, { "git-tree": "e5f287df275085f9e5ab7b572007685b24a88dc0", "version": "1.85.0", "port-version": 1 }, { "git-tree": "05dd98369d82648ee3e531a2dbf9b723b5a2184f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ddcd70e17925ea565402c86dae0a0ec013cb2850", "version": "1.84.0", "port-version": 1 }, { "git-tree": "b6a63d216875e9454cbfe56402b554ce08df2ddb", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d0426afce7bf4a50b9928232515951043a59bcd3", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2c4af3d39b6e980d59ecc1baa8f07f9aac97eca2", "version": "1.82.0", "port-version": 2 }, { "git-tree": "54d30d2c4ffbd008fab793649b57a09338d91b32", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d5bbe25fb9d58954910bf9b99678dda4ca24ef6c", "version": "1.82.0", "port-version": 0 }, { "git-tree": "087e6fd8563e7c1df08ce40069a117f0e86d457b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8d70339726fb4a5e191b96b1f10b8808feddcafc", "version": "1.81.0", "port-version": 1 }, { "git-tree": "dd33fed5ab83a011b885c0816da1ab857b0e840e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "0158e11fa88f33081d0b1f076ec789a834c00253", "version": "1.80.0", "port-version": 1 }, { "git-tree": "bf4118e63efe0bc19f98f3639916e3dc565884ba", "version": "1.80.0", "port-version": 0 }, { "git-tree": "2a6c17a26c19ac770d39c549749a86f62b93ca36", "version": "1.79.0", "port-version": 0 }, { "git-tree": "669ff76873e507b50238609e17bb0208559cd224", "version": "1.78.0", "port-version": 0 }, { "git-tree": "0e476269a7091861c1db7379d4e925df6d184044", "version": "1.77.0", "port-version": 2 }, { "git-tree": "e70acbb855538f95200b341b1cf26d9c1dc6e6cd", "version": "1.77.0", "port-version": 1 }, { "git-tree": "6589096a03d4f8ea1590b1b9e1bdc41a47c2f907", "version": "1.77.0", "port-version": 0 }, { "git-tree": "dd105bdb8e892a098738e054cfb90cb1786c856e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5d47762887873d2311645a3bd38757e2cb657f8e", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "6dfe0cdc876f8250e2531fc5f8e5435269285623", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "fb8f0358a83ee209192b713e6ff095b2a9bcd36f", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "e0d4d0470b2a3e4d650c3555e6092e5ff82e0f82", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9e5f0fd21217726b4e5b16f58290fae47152d908", "version-string": "1.72.0-1", "port-version": 0 }, { "git-tree": "1caa98406872113999b5222d9600415aae6b405b", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "32470356be5168af75860d960e3ce25ebe7b0a9e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d48806ad51c459e803b7411ece1d8fe5927ed982", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f738b1fc105ea6ae5e699e7afcc5d4cc0cc871d6", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6766bae1fcb24e1efa5eaa462172e758673cf163", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e52b46514451baa1dd5c22f7ab6d522499736ff0", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3e5c76798b923364a290c0617029edb85921ec31", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-program-options.json ================================================ { "versions": [ { "git-tree": "5ddaece880235f21a913176f42774d1930c7ba79", "version": "1.90.0", "port-version": 1 }, { "git-tree": "b54cdbf650497b6a859318f3c5dc5b4ed1239e08", "version": "1.90.0", "port-version": 0 }, { "git-tree": "066f131ab3790423ff281d1f7d45428b5062d8e5", "version": "1.89.0", "port-version": 0 }, { "git-tree": "b85a04d9d493a03154426ff8f02d5a038845a17d", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0f1def8867390310ed3903e63e36b2a857a133b9", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c041e18f05bab17532f6fa5f6faf238a2effd3ff", "version": "1.86.0", "port-version": 0 }, { "git-tree": "24dd86ab292c4d1c5c4d27551e1cd0b4854db025", "version": "1.85.0", "port-version": 2 }, { "git-tree": "1f505f252dde0bd6b7cd1e136517cb852eb68986", "version": "1.85.0", "port-version": 1 }, { "git-tree": "56202533dad3c6ae1eb1d98ef2a966e96ba12d3c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "b03ebc6de12cf174a894c7fae4ec636744cd8db1", "version": "1.84.0", "port-version": 1 }, { "git-tree": "775755221b75c1b8c48727ef5894fbd29db4478f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "ce15d2fa5ea81e6da9f8ec078cfe466f4d4e0339", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b15733a9444492f8882068981b01f270d301b994", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c39f818a3734e996eb777117eb8d1492d7b1b26f", "version": "1.82.0", "port-version": 1 }, { "git-tree": "bccb010e7166f6260c14e7a3ecd45ac896063f5b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "cc5109dfdf796698dc21eda3f65dccc1dbb2b375", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e4e0b87dca28f280c72e867e0f97f88b11078b71", "version": "1.81.0", "port-version": 1 }, { "git-tree": "034265a2fb92ed83f1c090e3de2c0428e9723672", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e0e5c05478f63ed0efe14f961fae87d913b06b81", "version": "1.80.0", "port-version": 1 }, { "git-tree": "306ab169b6f177e71d82cb08c77a8629337a1b6a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ad5cb3defd7e6f0f2be69f7090d2f996e4d4d885", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8a0432f928213aacc0f1a51eef24201e1f120690", "version": "1.78.0", "port-version": 0 }, { "git-tree": "8ba826d9a2078c4e933cb9bfd23cb9c1a0e252ac", "version": "1.77.0", "port-version": 0 }, { "git-tree": "6e841e59b06375faa95855cefe7cf14515ddcc42", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ee283d4e95ac33a966a83743758d49db470bb4c9", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "b9d572b6e3313c7153c36bbb365e76d32ed3a7d9", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "dce02e15c577240c07fc1f8688a9d0c54e50ab8f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "91fd98ee6b5ba3cb49d4d2375caefe9d44ea2b49", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "ba77e03e2b09d888225b31c3cac7e792cfec3710", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "573433b2628e8050b34e5c848429730e4db1832d", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "16447985ef585f3f44cda1531cff5bc03160fb9e", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c562ecf725cd9bf0bd5588bd88224171635cbf0a", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "5a763d66ce013ce7602b802c19e840dd563a6bb7", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "cbf38850c9195656fc10a9e3708ce02b2001f0be", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "071cbe77828f797d6b1df7e3cc1c6f8473ed88d4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-property-map-parallel.json ================================================ { "versions": [ { "git-tree": "7314b6a8689aeb8ea52d23d3a4bbd6d3c588e9a9", "version": "1.90.0", "port-version": 1 }, { "git-tree": "9da5e9de4b74dc0990f1b0a6f3d0a1f14e171a51", "version": "1.90.0", "port-version": 0 }, { "git-tree": "264458d72f2e2eeaeb1200012a7e738763e7e547", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5afeafdc3ffeea22961fa233c9e36ca8d41d63eb", "version": "1.88.0", "port-version": 0 }, { "git-tree": "578a2c517d67bdc257ec692fb5cd1dfa981d646f", "version": "1.87.0", "port-version": 0 }, { "git-tree": "95ab4720d185fdaecf26cc33e4ae428f2b621c9f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "48569a9dc9e97c8d287f5cc3dd8c89ebe369e1fe", "version": "1.85.0", "port-version": 1 }, { "git-tree": "df1ecdf0999a6d939fec9b8487e0161dcf613131", "version": "1.85.0", "port-version": 0 }, { "git-tree": "27bf40ff1d75d08544c17f8d3b62593dfea3ac5c", "version": "1.84.0", "port-version": 1 }, { "git-tree": "96a4e6e0494da5c3c9bbfc537f21d64b976473f3", "version": "1.84.0", "port-version": 0 }, { "git-tree": "715673e9e1beb9a6dba4422f317f4778b98b1bf2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "35b35b75e5be38fcdd1d0f2ea49403a3d168bbca", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6906d1d7dc7e80215f7889096b950d7c3b984bc2", "version": "1.82.0", "port-version": 1 }, { "git-tree": "cbb8b88eaa70e08c2df902783a8a3445998611ca", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ca3887d48c4227a0b06d09aa6059793b0e61c72d", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6673a69fdb35d721a631091235639592301360ef", "version": "1.81.0", "port-version": 1 }, { "git-tree": "781e2dcac5438e631a84dd2b8db94dd87a924cd0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "60e15d78a331d327d131bba2cdaa5be5351610e1", "version": "1.80.0", "port-version": 1 }, { "git-tree": "addcd2668a3f5f1ce1dcd5f3b548077cd9c3a16c", "version": "1.80.0", "port-version": 0 }, { "git-tree": "9f8124a589753446efa038489607ddd868c7e2c4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2d9edadb62d7a55975cf22e01b7ee0ce74b4301a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "32b8452f34ad6048981ab1f2a5d7c226753205b8", "version": "1.77.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-property-map.json ================================================ { "versions": [ { "git-tree": "13fc29d54ca86c1fb88f21f52a49df5e574a289f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "a609e608ff511aff92cd3bbf7f05c3df7c625ee3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ff5dec81cbb863f675c7f8b1f632bd8a6d30322a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5b5de4f66ca2fefadedb72569754661d6e8cc381", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3d592b30aef3e02e6bf1c2a642d4e704c03f66e3", "version": "1.87.0", "port-version": 0 }, { "git-tree": "22ad5d692b6b015fd84f1fa387dc74b2bc0ce45e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "564c1187891cddd853587d5351e373117b62e924", "version": "1.85.0", "port-version": 1 }, { "git-tree": "51849dc5fc658847ade287b35961038a3f93b849", "version": "1.85.0", "port-version": 0 }, { "git-tree": "de491274620ff8f98013f3ee352fbe68c0681318", "version": "1.84.0", "port-version": 1 }, { "git-tree": "afa1c14b9ca8ba001f7dc5fbed165fb9f7e34a37", "version": "1.84.0", "port-version": 0 }, { "git-tree": "1b4cf346ccedc4c90c63a8676b0115554301a62c", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2fb0d2bae69811fc5b3aec9cae898cddc6177cbc", "version": "1.82.0", "port-version": 2 }, { "git-tree": "2f85d45654b717daeeba34ae150afcdc1df309a2", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ba64fd3f205f23b2f4b0d38d743f64ef4cff5234", "version": "1.82.0", "port-version": 0 }, { "git-tree": "575f1a849205d7f80887fedc5d7b0d68c3605807", "version": "1.81.0", "port-version": 2 }, { "git-tree": "db58a93cafa25c7587b86749497792d8bc7b616f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "da746f234edcef81b0100f6d5a72d2b6493ac87e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "5921bb73cf27346ab03121a94efd62dc275b86d4", "version": "1.80.0", "port-version": 1 }, { "git-tree": "6a784463d4425f1b9f97d5e469a27a8223f5f0b0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "80eb3c867ca2f805d2379963d69c12f7f877bad0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "4c37ef13cdc33278fba6fa5c5bab30de91ce90e2", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c866a47a5b9a770e415dc1078cc37870cd5851bf", "version": "1.77.0", "port-version": 0 }, { "git-tree": "68d4dfac2cedfe5786ecfb96bbe974c7257c73c7", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5d13650ce8dc9bd2f1af435bc5a3ee2f96e699a3", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b7956347c484064bffa998c333c98131578b64fe", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3225be410e371a11a1467e7c9301a35886cb0a7d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5ac347143fffe173b866ad1c741d6ffb57ceefce", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "38d2b66b0221e17cebad6d1dc4216bfeda0e3a79", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "1d51c37f141352b566775a9f6781f40e0501a5e4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "37155a43753832feb4b73f254bb9ec45f0c958fe", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6c3b625c2605984644140cbdd80d832d1d4cd243", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "63848a008f106c02306ede099ea18df431c18f19", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "96ed4c2d491eadd7d2994954bdcc6a99fe858ac3", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-property-tree.json ================================================ { "versions": [ { "git-tree": "ea52a53a79ddca810aed8893e8a2a4eb5cb05e3f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cae9c980f24fdf16b80c53bf0b12fd71902c3823", "version": "1.90.0", "port-version": 0 }, { "git-tree": "416f5277108af64bdad00c6780386aeac53ee6b6", "version": "1.89.0", "port-version": 0 }, { "git-tree": "d72f002d2d0d18dd58a9033a7498163b0059f0ea", "version": "1.88.0", "port-version": 0 }, { "git-tree": "88b2756e4323591154cab92e5ad1ddf6e38c0a31", "version": "1.87.0", "port-version": 0 }, { "git-tree": "c5cd0890674c4cd536853f8a6b93a02db66494e0", "version": "1.86.0", "port-version": 0 }, { "git-tree": "ee08ac474213c90de261160aeab0eee411ee6168", "version": "1.85.0", "port-version": 1 }, { "git-tree": "58cf6bf5d08210849f23756eb9c940265bc3ebaa", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ffe114412626edbea4b371503b0d1f1b4972b888", "version": "1.84.0", "port-version": 1 }, { "git-tree": "fe19ef0bba9fdf21f3b3dd86ba9ce16142270082", "version": "1.84.0", "port-version": 0 }, { "git-tree": "caa9ef5866c4dcf2869fca47fb3a478f74e07f7a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ba292d3a56bdcbc9be58eba676f68c604e16e6ea", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c183cb16868f5bc299ff89a868eaf6b1a0a2f74a", "version": "1.82.0", "port-version": 1 }, { "git-tree": "2d28ee4ccdf7228708cdaf57631fda57e304fa6f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "adf734f102e54d2ed73159ff2fca71f9c7fe9ed0", "version": "1.81.0", "port-version": 2 }, { "git-tree": "437103030a074b3d09479caf29587bb8db18a32c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c1f241f5a41dee5bb8e3dec0f88e2736b28f4f4d", "version": "1.81.0", "port-version": 0 }, { "git-tree": "80c63c4b5522c88fffe94fb9ce2ae2fbba68e866", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0993baf1328cd41a1f980b4e1147a38e44b7c23d", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f05a46d069778748274ff28002994e04d3654286", "version": "1.79.0", "port-version": 0 }, { "git-tree": "281dadcd5a8a6843ae829c4b653f33e7d1dbe2dd", "version": "1.78.0", "port-version": 0 }, { "git-tree": "959191d822cc095e02a3f6d9af5b68aeb823a0d1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "099a09d3ed31651c57f2f3c735da5948dce45b66", "version": "1.76.0", "port-version": 0 }, { "git-tree": "dbd7fa06c82727307d26033c3ce4679c05489726", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c05b856dedef9d5309b6f9012d887c7dce28d243", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "85183ae9b96b68e82c3d5c67bbbe4c229d8cc2e3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "d7cab40cbf6a78f391dd2e3529620883107e5bb5", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ea4ffc0acb0dbf71f4242f004d5398cb7524ecee", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0053dbedf61b06ba3202acc81c7bace3b51ef859", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "379c055c6fedd0955cd3f1476f02995922bdbcae", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "fbb67501862446edc1071b44b258e8532ed231db", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c7843abc73a0bb131f48010a6978ce440d8ace8b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "7120fb2cfb6d68cd809907f1782bad0cc73acaa8", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-proto.json ================================================ { "versions": [ { "git-tree": "8837c7efd5677de7bf2400816cc0e1687fe4cd8c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "43643a17862a29092448ace3cac1c365da2b7c09", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9a0ad7230f675a58ec36c6eaaf770172b1f77e33", "version": "1.89.0", "port-version": 0 }, { "git-tree": "347c4b038676902e9b83cdfc21dde9ac86d1f10a", "version": "1.88.0", "port-version": 0 }, { "git-tree": "bfbdb650b3e8211eb952c209c25626574994ade2", "version": "1.87.0", "port-version": 0 }, { "git-tree": "5c050985f2027409de71cf205c8419972ad85dec", "version": "1.86.0", "port-version": 0 }, { "git-tree": "11a5d8fea8d96b9b1417cf21955dcb70e8c79517", "version": "1.85.0", "port-version": 1 }, { "git-tree": "acfd5013ece8c2a3c2f287ccb060487af5b6ef0f", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d841762af7be07e4f01d2fe0776d8954c885d3a5", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0a54634df836af7950a3962c00de9b92d1d8351a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7bb3591b035347ce419b85ae321c0e1b6c71084a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "a88c491de292efd0f32b41b78f69d5da1baf53f7", "version": "1.82.0", "port-version": 2 }, { "git-tree": "1bce55f9406e1c918ef220127ac1608811d04926", "version": "1.82.0", "port-version": 1 }, { "git-tree": "37a65b0b4d70f7150dba9a026747b916f8994dfd", "version": "1.82.0", "port-version": 0 }, { "git-tree": "30ebf6222b12dc6f415bf0e8818da3b115d84306", "version": "1.81.0", "port-version": 2 }, { "git-tree": "9c94b6051a2f0adc1d83b8cc7d9f615e198dc13b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "399ee91198df2dca650a4031590fa5996da4a1d0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "8068ac7d4e5792c081ad1d0e56a46414ab4e6bf0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "df51ae90d5540b775b1f14bf796bd7e4f4b6529e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "26184f2fdf2a6c15a79964befeba82802d7d6afd", "version": "1.79.0", "port-version": 0 }, { "git-tree": "46fcd6f1550adf925df0d985dd5463991150a13f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "5d33f62f1117da9bac418c4b85d1a1bd96c547a4", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e7d8b52790eabfc30fa162d68055d3fe30c8b20c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "212e0551c299f67ccaf077cf376ed9da38af6b5b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "2aaaf7930b6b5b3a29d4008604768a0943ff929a", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "cb39aa32e10a83818fcbd7a82acd0291ad8f56af", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f0b7aa34b48f91ad089f6cd0d9c0b7a6b4190e84", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "8bd94a4b20959832581149a776c2f4b4fec8237c", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "dc00c855c680d14be5cd82b216a8b10638d27fc8", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "16247abb0f9eab54b00aa071cc90e84561e93436", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7c3306c33e84b1c09c4d5cc86800060b560d3a9d", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c1fb2eebf8724e2cb1ba263a3b793d3ea3b09508", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3889615be6c3ebe792eca8de0e3df1371306ad77", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-ptr-container.json ================================================ { "versions": [ { "git-tree": "bda9417e4db8b35eccdcdd83981b667d48f17eae", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e98a44a4da8a477d6fe6fa18e5b89a3b5ccd87ef", "version": "1.90.0", "port-version": 0 }, { "git-tree": "da8785028b51e78ff0a74ebd488d925d04ef6e12", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a2889ca8befb9f5029f9d568c3d21613b2ba4e73", "version": "1.88.0", "port-version": 0 }, { "git-tree": "c9d664ef67a49169b0cd1eabe31112b8580bdc69", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0661add5e67697002238c0b3a33f8db1f6c7ab1d", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3d4e7432f9c72cc255271c082ce88ccde55bd2ce", "version": "1.85.0", "port-version": 1 }, { "git-tree": "92c0e035bf331f56b75f98e41a040424ec0e65ba", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a7eddf6257da3e59d58651d1f37cc50ae79c011a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "c0559a42951f7af1dab2fe477fb4cd63434ddaec", "version": "1.84.0", "port-version": 0 }, { "git-tree": "5b926ddc4f1044a202ed6b5a052fab6d6578f051", "version": "1.83.0", "port-version": 0 }, { "git-tree": "623acfd1039e24498326d202bc3aac4aed87e91c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "fbf9f674a0c21a43d0aa0e1fe4a02cdcef8da616", "version": "1.82.0", "port-version": 1 }, { "git-tree": "356dc81e710c1a2fdb8b03039bcf9be27ac0e58a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "be4f59a7efd19446541a57794c7bf233f9909af9", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e40b3225ca0f70fa595d0293004ee2d720bad2ed", "version": "1.81.0", "port-version": 1 }, { "git-tree": "e980d3d7bfc56480fadc0bf280a63771ba4c3e89", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d8fcbe89c6181b32292c07084bfcfb19863b846d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "81b98fdaf0c11a4b157b220a98d050fabead9e06", "version": "1.80.0", "port-version": 0 }, { "git-tree": "879641e4ff9cfca37db16a03f72b04afeed909c6", "version": "1.79.0", "port-version": 0 }, { "git-tree": "81591a280761661476868c5f064461475bd10ba2", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e954b84d951409f6445d7d49bafa66c977ed9834", "version": "1.77.0", "port-version": 0 }, { "git-tree": "1a46fb253999b4a420c6ae8c060351bb56dfb303", "version": "1.76.0", "port-version": 0 }, { "git-tree": "a864f78b06709be6f35ed5b8e64919f3794a5a74", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4d9eac4fba8786b3e8b9c64faa74b73acb76aae9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "431ee05083e5f6352bbcce649fa512e567394372", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "dcc85f5764e00d11327d25aab0ea30c9e4459e1f", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "0c30d9fa0c2507bb350756d95cf0ca5bd7be062a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ed1ca28ffba240cc7a603b58ddda034c05516833", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9dc7c4b73d25b8b8aff652f9fec737687c80f16d", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6b32d64ca812c11888370c2081b99148aad04762", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7c60dbdc785106c8677e999b0e96e1e4cac673a8", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "375e47b2d4987029b6bc19969d74f284f0eca643", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-python.json ================================================ { "versions": [ { "git-tree": "32e8f6655627043ba73936ec32835af45816ff3a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "442145e604b50a8960e8464ee3ded12e7f46a64e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "082f3e04db309841c0f1dbd78a349f39667ae603", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0ea920b1116f1168f13f2a6f7f4d9f5117fade91", "version": "1.88.0", "port-version": 0 }, { "git-tree": "98c31f338373be007c42ff2a2f90c5abcad7bb8d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "998c661e973a9ad529cf4d74eb51af676c644ace", "version": "1.86.0", "port-version": 0 }, { "git-tree": "64f7d4e758e453c536669b20b1da47c940d4fe4c", "version": "1.85.0", "port-version": 2 }, { "git-tree": "1c631b75d72aba4b4aad9a30cc914924c9e53806", "version": "1.85.0", "port-version": 1 }, { "git-tree": "963d910a708c03c3522912aba892f29e1aed6c7a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "65bdb598319327fb628a0d71296309e7e817a565", "version": "1.84.0", "port-version": 1 }, { "git-tree": "43674e733eca3a97529383f6732a3dc2c1e2544b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2e89ec0e4997ffd54bfbbd891df39df068d84fc7", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b408c26dbce69d97b4ec2bac833c18284c06979d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e27c5fc20456f37dc552c8002ada45ede962be4e", "version": "1.82.0", "port-version": 1 }, { "git-tree": "08b3120f932fa085229ab4aaa68cbd97481663fe", "version": "1.82.0", "port-version": 0 }, { "git-tree": "3788a31404344b58dc74fa8844b30153e6bc3254", "version": "1.81.0", "port-version": 2 }, { "git-tree": "da7b4314d1aa35293af4b2fc0ed9fde53d2362d4", "version": "1.81.0", "port-version": 1 }, { "git-tree": "13c92410ea5940ee1ce96f682b1445b307cfda36", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a040e012e71e5fe4338ba4bc23bdb827348aeb0e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "37c146ee0ddbf30f5372bf434bca80f97d1a653e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "0d5885833470840d6af709f368a42df4c3b09df4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a4cbab3ca82048134b757a0689d4ab3a83a7b695", "version": "1.78.0", "port-version": 0 }, { "git-tree": "879991d36cfdcdb57b176b9dac08b55c3c69a9a1", "version": "1.77.0", "port-version": 1 }, { "git-tree": "9f6fba6abc29e2084469c11ba2f2f1f745b08137", "version": "1.77.0", "port-version": 0 }, { "git-tree": "789047e74a9db18c96ada8dc7addda4fc867360e", "version": "1.76.0", "port-version": 1 }, { "git-tree": "22a76d7b62c1e7eab693c827b1ca942acdb46a1b", "version": "1.76.0", "port-version": 0 }, { "git-tree": "f5565087e1c90779cbe05bd19ba172a699ccc743", "version-string": "1.75.0", "port-version": 3 }, { "git-tree": "5e3040e7a2eba3e7511a5509022f5445145dd67e", "version-string": "1.75.0", "port-version": 2 }, { "git-tree": "780820881ae469bb68c86d48a5693f616c2c3b6a", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "f38e7a5dfd9892965a37a4aedf055950e7769477", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "5561267a2aa6d56e0451294589ff1f2b8ed8987b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f113307649505569e6dd31317d9a64472eb78117", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "d63a0984ca7e73741159f820827ac18ab3f924e6", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "4d4f15ff9590cfa09fd3fdfb2c0c892b64a3b72d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e8defb6be7a16787c193ba536b3c8075abe48e2d", "version-string": "1.72.0-1", "port-version": 0 }, { "git-tree": "0b1e4a833c1ca38910b639c853a87b637b340792", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1f560c0eee02f5a55166e0cc2439cf384edbc76a", "version-string": "1.71.0-1", "port-version": 0 }, { "git-tree": "4dd7edd79ef06d3c7bfb7e985847ec3a0c6345b9", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "400dbaa4966a954770e9d8759778db83b3faecc1", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "247a010215bde83a0f975080a6d7a6c830f0a6cb", "version-string": "1.68.0-2", "port-version": 0 }, { "git-tree": "ce8819c258d304814d123715f4f1c395de9163bd", "version-string": "1.67.0-2", "port-version": 0 }, { "git-tree": "923554ebe60611577550c6a39cac0f8b988c6b94", "version-string": "1.67.0-1", "port-version": 0 }, { "git-tree": "4cb5033cf45e98be657f57114b7f0c7ef81bcd3e", "version-string": "1.66.0-1", "port-version": 0 }, { "git-tree": "1fefff58b74c58d6af63fd36fb83198a1cc32de8", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-qvm.json ================================================ { "versions": [ { "git-tree": "c2a85b7c65ba3926fceb960233d71b130915a3a6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1508daa790fc178e779f4b420d7e39f928751372", "version": "1.90.0", "port-version": 0 }, { "git-tree": "fa8ba2a8ca6fb42b189d16a67559e685069eb473", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f7f13a2d6be1c9f52366df03c7b4b8b3ee68fa0b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "18f1172f41c03242db4fa6276e694a197d9c8886", "version": "1.87.0", "port-version": 0 }, { "git-tree": "55fd0bf6c0cda8bb0227c546aa5308b8e11cd325", "version": "1.86.0", "port-version": 0 }, { "git-tree": "13b30f2a8b07bc2c7024eaea4db89ce51a546d16", "version": "1.85.0", "port-version": 1 }, { "git-tree": "14d9a09241492c6b227cd335f658a3fe3a702805", "version": "1.85.0", "port-version": 0 }, { "git-tree": "1c8e17cf3f58afb929799e3b0b1b0d243e11d250", "version": "1.84.0", "port-version": 1 }, { "git-tree": "118696ac11e3fd3c266cf23fb88ed0a1627de68a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7f023cb85fbc266b836aabc8f0b66d55332869d6", "version": "1.83.0", "port-version": 0 }, { "git-tree": "01f2e32794bd62e7f6409a14bd7c1126ef335d46", "version": "1.82.0", "port-version": 2 }, { "git-tree": "71b16c8f7212d75d5088b97301030044f3d924f8", "version": "1.82.0", "port-version": 1 }, { "git-tree": "2e613c337ef37aa5201d6e6eaa66d8699ac986c9", "version": "1.82.0", "port-version": 0 }, { "git-tree": "5b978e84334796ec2cde5251a83c1fff650559f2", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e7a8cd417579d6d2903e9d8c16412ab35e7f42a2", "version": "1.81.0", "port-version": 1 }, { "git-tree": "01d1e9e884ca8dba08d864da357b30737c061894", "version": "1.81.0", "port-version": 0 }, { "git-tree": "43b7947d031f7dc90e89e5ab20a942307bce299c", "version": "1.80.0", "port-version": 1 }, { "git-tree": "b341b99d2ab5ebdd7722ee83fe57c5cad255a2ef", "version": "1.80.0", "port-version": 0 }, { "git-tree": "8f8a09f7b75cca0fe3cd7995f234ee35f985c3cf", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e2c998753d319d94c00d3b3b3365e2a116bad23f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "5d7b01d612075dfb3d89b799bec152785c838b84", "version": "1.77.0", "port-version": 0 }, { "git-tree": "70b5734ed30839efbf4048f5749af11e292df641", "version": "1.76.0", "port-version": 0 }, { "git-tree": "93abe1969976dcf265014b8e7f5463ee3b3b76d1", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "bf878abd4682e1ade2169d87639d5aabb66571bf", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "8935c84edc35077cf28149e42ffe6768a926a73b", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "59dbb65ff0a083dd51c070f2d485f0b85a2f6b40", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "82aafdeb7881bece44c278c6fae415b10fc8d709", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "eb34d5101d14f066aef9b00dc43570693ad837cc", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d61f5ff2c62184804fe18d07f3c9ca5dfbd2a469", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "afcb1dc25280ca21ecf5f93adeecdd2fe5a806ea", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "1cc5002253146f8166c424a11ba4542090a69673", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5db32bca005d838a106957200f46e93b85921fcf", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-random.json ================================================ { "versions": [ { "git-tree": "0cbbd1634b37a46197def498c02754af7402b146", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c22c3df99867b2f116367ae2826719973284ab0e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "290754c38706f4a21ef7a9278bfb7a45d25d9062", "version": "1.89.0", "port-version": 0 }, { "git-tree": "b2aa49ec08baef8f4f50bebdd83e0e52d0f21600", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0a0905c43471aa100a8e14394a5481d8f54b6e6c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "28837a21143c7896257a2714036769302199b030", "version": "1.86.0", "port-version": 0 }, { "git-tree": "79da2d5035b6974ff2a64ea347594255fdac2011", "version": "1.85.0", "port-version": 1 }, { "git-tree": "48d955c298da1d4daabf112a93fa71d9d882cf40", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c984f70ced548078c3aac8720d5f343ecc506fc5", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7e18eb4875eee251ddbac6ead758d4e20e1b1f71", "version": "1.84.0", "port-version": 0 }, { "git-tree": "045960cb6d4295d363e1748931ea56fc245f7c09", "version": "1.83.0", "port-version": 0 }, { "git-tree": "c440ed1d17008e8a77ff3cdcc495af47103f05be", "version": "1.82.0", "port-version": 2 }, { "git-tree": "0c97951b0f38d6c9b469b367ac136249e1fa23fd", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c05105528f974ce1a2b709f10f3f8c351e2a3991", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e757f43e9530224bd993eaf6dde5210936eb055f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "1c5f27082fac1782c697bfa676bba1671e96791a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "5263f6656d07f6ebc6fc136e7a4c1029ebc67c63", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d7df4d79fdeece9481a89f53c6b0d80ac42f7e4b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "6372fd79a4e213f92ebe9e71be03fdf71b77d532", "version": "1.80.0", "port-version": 0 }, { "git-tree": "6c02cc8343df9ea692504b16db286eba1fc320a6", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ca9654479a3b0b92cba2e2c05fb927715b87a10c", "version": "1.78.0", "port-version": 0 }, { "git-tree": "3f6c3399689c43f599f3852d98325cb272e8f775", "version": "1.77.0", "port-version": 0 }, { "git-tree": "174356d3aa0622ffc40c5a8a2c4c4d2813498a2e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "69bb9f285b6db1c861d662eb9b449ef5e2b2b5e4", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "8a957fa31444da59d5f8ba9ee8254670e18b7bef", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e68a19bdf537ff1a19b5bba7d1766636adced790", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "1de432aacf0b6e3b397a53ddd385d94c9b04b058", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "85c3c8a654edd92af468bf9c35be1a9de2cfdb2d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c67cfc419002d8967f967edb0649d6ad6a6719fa", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "b3fe5a5db069ff41cb1266f8a26d37f9c6282358", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "fbf4c33b43d8739a5a4cc91ef074ea140cc52c00", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "9ec6ee12311fc2d31fb247f577d68c0273fa265e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "715b2b14eb6205cd71755fa298a527aaa03dae8b", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5eefeffdb653765eb57cb73148fe46627ee82bc9", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-range.json ================================================ { "versions": [ { "git-tree": "953221c04869e3032889d95eef9b209281f8c04a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c51f268fe65eb735d7b1f9ef3e266df1054c0863", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ab4c025322e42dec411e33f17d3952fac5d7f00a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "81d6d0d0180e3c891f8b9de796b017ab7c0f5659", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9eec0027313670a26d9b3770252f223839f4caaa", "version": "1.87.0", "port-version": 0 }, { "git-tree": "92192fe61d14a9c421db7c3ed640e7b35f9685a4", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6987907e3e55450f4d1f87013c966407509cb667", "version": "1.85.0", "port-version": 1 }, { "git-tree": "4fb92f1ec30f8469609a1d965f1f7dbf0afa54a0", "version": "1.85.0", "port-version": 0 }, { "git-tree": "e4582865e9735ef385ea182c4327414a6e7ad2be", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2c03982fc0e52976188f003f72055cac0e3b0295", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7d5d869d86b0abdd19022ee0b0c5f24192769291", "version": "1.83.0", "port-version": 0 }, { "git-tree": "1b034bcdf929c6bc7cfd900580907fd1ca6620fd", "version": "1.82.0", "port-version": 2 }, { "git-tree": "fc4c6c85df6efb4afe27a53499abdcd17da71a69", "version": "1.82.0", "port-version": 1 }, { "git-tree": "355c16dc4d5e773a1ed735b6d74234c5540457d0", "version": "1.82.0", "port-version": 0 }, { "git-tree": "6af5cb1fbc3dc3ed087153266d9f7e6df3c8808b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ed59093cb688dece08c174dda93f65cda750db48", "version": "1.81.0", "port-version": 1 }, { "git-tree": "9c9667c0b5b0427ba4a93a8127e1d4660d834b20", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7436352f0a4c6248fc5ddd3dbdf54cf745ae39e3", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8c39bc84eb02172bd336ad4c310a181ce983eae5", "version": "1.80.0", "port-version": 0 }, { "git-tree": "fff762e26af0f46863606c7fd088491dfcc84599", "version": "1.79.0", "port-version": 0 }, { "git-tree": "1ec82281ed52b6d4ae225abe93a18392c846cbc9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "737f4f322e661e01459862fbe73f748390b59c3d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e595f4b0f7135b43d0bef283fec3c0d4d742dc51", "version": "1.76.0", "port-version": 0 }, { "git-tree": "57c3a7dae1c551c1839a35a2d518c2ea0dd43795", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e72c575bac8ae7881b8cf97ef205568b73c25584", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "bd7374b3bb9739b5cdbcd3d475a020447efeb2dc", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c4005c95b14524a19b489792bb091e24f9364b53", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "6b994f0a853e0625e60b1c1cde0169c5bee9414b", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "6d4e87ced25a91bbee77de9f02f5a11ef65ca09b", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9c902b35dabb37844088b348cf7240050e930541", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6999e22de76169dd3037f7d2a7c159be8223b549", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "99af4e93420453476a98f336df95ee4ace4e7403", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a26179112d828a3262ff88a323a014366cecbc10", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-ratio.json ================================================ { "versions": [ { "git-tree": "e04da230bfd47f04f4078591096cab18c4984add", "version": "1.90.0", "port-version": 1 }, { "git-tree": "5ea4364ee8d8164b5ad58727f484d9f2b35e2e8b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b7969883e0612c6757988b0f9102224ca136959f", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ad5b59e2bf531b37b64e225814d38a297ab16aa8", "version": "1.88.0", "port-version": 0 }, { "git-tree": "db4e9073d21826b2dbc6128cf771d903a5b05634", "version": "1.87.0", "port-version": 0 }, { "git-tree": "10ddc71738dc9afb099d2681e39f7da1d509253b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "528997e8716a58dffdd8fc0d0fb7bf303d757510", "version": "1.85.0", "port-version": 1 }, { "git-tree": "3532faaa9dc0f52aed83c5902761c3883a0df3e1", "version": "1.85.0", "port-version": 0 }, { "git-tree": "30dc6b5e022b400fbbc762c260df6b4d06a1e114", "version": "1.84.0", "port-version": 1 }, { "git-tree": "082d4cc51e82e8c352926eb2873e9abdf891732f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0fafb812427bea7d49dd318f3e72778149f443ab", "version": "1.83.0", "port-version": 0 }, { "git-tree": "fb8691f0340e091213aff8763edb106d19d132c4", "version": "1.82.0", "port-version": 2 }, { "git-tree": "cdb2522204e612067abded077c6ec1f783210f10", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c5e609cc2aed611b76c584596105bc25c3df10c6", "version": "1.82.0", "port-version": 0 }, { "git-tree": "335b163023058d8c0fc1f256e56dbe5ab30f03f0", "version": "1.81.0", "port-version": 2 }, { "git-tree": "88e5847869a20a92c872c5911fa6603947bc5675", "version": "1.81.0", "port-version": 1 }, { "git-tree": "1b64367cd564cc1824ae8a554f3c263234e7e5fe", "version": "1.81.0", "port-version": 0 }, { "git-tree": "f47c052da4ae6392cff38664fea7fa27503e5ffc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "9474d4e6541e03de3c1636305bf1dbcbc46ac971", "version": "1.80.0", "port-version": 0 }, { "git-tree": "3c85cac76a643d538a52553a54353fbb818b3169", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a5e0af272c7df2d7994c6d98ad1d76df6b5330f7", "version": "1.78.0", "port-version": 0 }, { "git-tree": "724fa7b1c0e1d78a9c29595b042443090e53a8ee", "version": "1.77.0", "port-version": 0 }, { "git-tree": "002edb9b01fe471f968eba09c80bed4ea60fa865", "version": "1.76.0", "port-version": 0 }, { "git-tree": "bfdcac03e6dd3a24818ca99a96f464a2404f2f0b", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "338c5b178e5e2723ac77d1fe0085dd3845980f79", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "eacddea39d880446b3e8e64a6527599f15c0d63c", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c88f3286de646a9f20b9941699fe02df0f7ec69c", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "e81e746062e1570980d7204b186ca43da5ec7c03", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "31d533e60133675e7935e08a8c90ca3abc5974b1", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "6bcb8d63edaa6a5bf2ede29779b63076e3ca316c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "c63b827e87addd3e5869c346ce9dad791df6e82e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "744d6f12b83ddb7da0b154646d8652a8a6fc6f3e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "b64059a18774ceac71aad3220138fefc06d96f84", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-rational.json ================================================ { "versions": [ { "git-tree": "524b14719856f3c2eea524822826b6e5e85150f9", "version": "1.90.0", "port-version": 1 }, { "git-tree": "05ea6d618b3ed03b2646ffcc3c36bddd85f65f7d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "bc4d2bdfebc344554622bf7a21bf0c8703b5c839", "version": "1.89.0", "port-version": 0 }, { "git-tree": "19f00bc6041b28521b20ac48932ed549a90f46f7", "version": "1.88.0", "port-version": 0 }, { "git-tree": "cb050081c2fdd4f5e4b8dc6f4db01bad75548df7", "version": "1.87.0", "port-version": 0 }, { "git-tree": "eaf89627f4ab01c16a76fe46ea532221669b6a2a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "71df0d885ade18c47b9f47c8107df6e8498ffa2f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "b37c20d806051bae405157033d39bba031dfbc56", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a7aac20769225a319d7e69a5faba4e852a2d5f2e", "version": "1.84.0", "port-version": 1 }, { "git-tree": "8824769e6c009d6bf3b750c3a7914ba0476ef476", "version": "1.84.0", "port-version": 0 }, { "git-tree": "55ec23b1953b2e44dc43fda4547cf0b96bfe140f", "version": "1.83.0", "port-version": 0 }, { "git-tree": "27a8384584574ad32bd6daed2a7454bd0d3c6fcb", "version": "1.82.0", "port-version": 2 }, { "git-tree": "6120e3b8498d9976ad2d49093939c03a032d1609", "version": "1.82.0", "port-version": 1 }, { "git-tree": "9c516223d2f1e307b951fa1735351ddad9b6fc10", "version": "1.82.0", "port-version": 0 }, { "git-tree": "230937cbe2644aa72fa3487fa36f8e07bef76e82", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0897872e94bbe1a69fdbb3f29d80b8f88af97fed", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ebd775ad90527bcf504584312a6d8b7888ff2150", "version": "1.81.0", "port-version": 0 }, { "git-tree": "a001714b6712c22b24b1c3234a1c78f7f18e43cb", "version": "1.80.0", "port-version": 1 }, { "git-tree": "5ebe5bd52b65623fca07154f8dd993ae9bf7522f", "version": "1.80.0", "port-version": 0 }, { "git-tree": "bd0b9e457fc969fdac6b9ee36b77a26b3c680ad5", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2a2877b20057e313af02d1307832d90f764b2dc1", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d54d04de158ddaf33d7b8a6815532e8ee2771515", "version": "1.77.0", "port-version": 0 }, { "git-tree": "8f6911d5b98ba7669956568acb155112e623927b", "version": "1.76.0", "port-version": 0 }, { "git-tree": "27fc174ae8a94007819eecfa02e8830e85017ebd", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "8de4e22e52ba7019b8731d4a5cd3e9f86eca4461", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "042d0bdfcf016ebed794774036238d299cce574b", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "ccf4141c0e92f26d702767087499fb0f5653337c", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "5df9940dea5be4c08f4e47c3ee1eb8a483fcb4f3", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "aa923124baa6d31432e6f4c81295978b570ade8e", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d840a346cf5f7701eda2eba4445ebdecfd545096", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "98ae814a844d35e5a9b0abdf3f5ae7b5eb199483", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b8eda38a953ea0b50c13cab0e2591cfb8efaee41", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "1f8a8d0303f89b086c8b1419695c60b99e9d0c02", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-redis.json ================================================ { "versions": [ { "git-tree": "c71c8e494c2fc958c8391a60b9e5f2f8b54b99f6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "3a7b47a3ffe00e947739f69e6326f32027703e4b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b5c77b09905eb913858278e6be056ec49600aeaa", "version": "1.89.0", "port-version": 0 }, { "git-tree": "471d6537d64ef48ae1e03fca246b5870d41c7deb", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3eaad42f93221e49b95fbd6e2589bfc9e1aa15b7", "version": "1.87.0", "port-version": 0 }, { "git-tree": "2550196816d0888c6b5bf8e56ad1661a06c4fa00", "version": "1.86.0", "port-version": 0 }, { "git-tree": "8d1ea499ae5a8250c801fa56218033153a379e3c", "version": "1.85.0", "port-version": 2 }, { "git-tree": "c2b1cbb6146f3893755f458fa0798632501b9eb4", "version": "1.85.0", "port-version": 1 }, { "git-tree": "b4d662b7d5bde0b16ff6b43c6028580283541f5e", "version": "1.85.0", "port-version": 0 }, { "git-tree": "50ed86a755d3d86e8c836bf62bd26535af847e49", "version": "1.84.0", "port-version": 1 }, { "git-tree": "be30e78685a77344e2115c36b317c776951bb9db", "version": "1.84.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-regex.json ================================================ { "versions": [ { "git-tree": "5b2b8c76f23f47366505fc7edb183c9596860d8d", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6336b7261cbbf582e31fd3830478acc3e3b66241", "version": "1.90.0", "port-version": 0 }, { "git-tree": "411f23facef811713ece1498443d376f4fc375da", "version": "1.89.0", "port-version": 0 }, { "git-tree": "dd6a6b9acf08471a6fae62bf01f6d31d813674ec", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0016517b443abba2253c0418a5d90fb69507c62f", "version": "1.87.0", "port-version": 1 }, { "git-tree": "d4fb73aaa81754b4de20e73602ca10685ed5fafd", "version": "1.87.0", "port-version": 0 }, { "git-tree": "9318a93a93511ef643cf511123f7be253b27cb66", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6f5d77fa3adaafae00b56ca0072d56ef4c4836a4", "version": "1.85.0", "port-version": 1 }, { "git-tree": "18ca23dc0e589aad64e3bf1a63a531c7938d0f53", "version": "1.85.0", "port-version": 0 }, { "git-tree": "07225eb7106af6a87059566358f671c9b095a4be", "version": "1.84.0", "port-version": 1 }, { "git-tree": "79565c2c7713679611f25b158373a1063de42fb3", "version": "1.84.0", "port-version": 0 }, { "git-tree": "423f035001a6e046e2f94dc3ac68201a4a3d0307", "version": "1.83.0", "port-version": 0 }, { "git-tree": "fc3fcb5815c297112283b9fd5eabab3106f6e93e", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d31af2d45fe496fd2d89b734027e72c92d23f1d1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3b5d4d8bf6461bad9584cfcd9a5402d3c6fde17d", "version": "1.82.0", "port-version": 0 }, { "git-tree": "172bf85987f58e14b7471bedff57e03790292538", "version": "1.81.0", "port-version": 2 }, { "git-tree": "02af2b7e6a7f5a4237bdff6b51d8250ddaf46e87", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c2c6917fa29253b439d0272cdce5f3e2eb9a454e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9988f582a655bfd7d3d88dbaa771ec575784a750", "version": "1.80.0", "port-version": 1 }, { "git-tree": "8ca14abfbb7f576ae870202425068b603e48452f", "version": "1.80.0", "port-version": 0 }, { "git-tree": "49b26b133e2b9eb16d917930b2c697b58eff5530", "version": "1.79.0", "port-version": 1 }, { "git-tree": "a10bdc49cf30856030ed08921a5a30f3c3f3bdb1", "version": "1.79.0", "port-version": 0 }, { "git-tree": "f04cda8dcb436a4cfaa008331d05ef2d0974b698", "version": "1.78.0", "port-version": 0 }, { "git-tree": "c7c4497156a2c9e4f3227ee3807512630242307d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7803a877c9e9acd2162106e3bc15eb363b6b069a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9b5c6faa967ec00a8f3ed0aa1bb1f82564e3e064", "version-string": "1.75.0", "port-version": 2 }, { "git-tree": "bacde176dddb776105f9b7996de34a3a051ff324", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "d52e8d7a6b4b98dd2c489abac3e33d108e8afdce", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "f9b464cfd360625b5d29a7ae731c36354af05cd5", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "de4ccb00a13b4fe4b28d27be7da9a2959f8d43d5", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b61c5d82e609c7e3826c7b19a45b9fc102ee9544", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "bdaadfa01307e637d7cc6e669da68feb4f19358a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3269dd4ed71148cfa61587436d96058e58b799b1", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d4f7fc5b13dbed2badce5c38063a8ba06e2ee977", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "48c27f7d81f24494594de9eab666d70836bdce0e", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "014297cecaf0ddcf8801ee52864d66f9a7bcbfe9", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "24725c0e6f8784c90287ad966d89a0ce1446e3da", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-safe-numerics.json ================================================ { "versions": [ { "git-tree": "d59f3774442bc3c4641f3c4d8e037bce271f5edb", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cacc9561afd1b4a21fd981ef465dfe853cea492f", "version": "1.90.0", "port-version": 0 }, { "git-tree": "466a848c615a709bde7c268b5e065d65ab3a7719", "version": "1.89.0", "port-version": 0 }, { "git-tree": "bf3aac989f05b14663d6d7792eace605112f8fbf", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4c9c6fe5a091d6de9006594e659e036858000479", "version": "1.87.0", "port-version": 0 }, { "git-tree": "1626ba143d5988feff992b0616cd04543d6e3626", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3992a2ca6c7611c5f2acb23c1e4d355426208688", "version": "1.85.0", "port-version": 1 }, { "git-tree": "dfc8daa3031d6b965001d16a66a867a313ea107e", "version": "1.85.0", "port-version": 0 }, { "git-tree": "06d8aeb7854584ce490b87dcac6d301576c945fd", "version": "1.84.0", "port-version": 1 }, { "git-tree": "7b34b4b91f840fbd91f16568d9094ec592ef2bc7", "version": "1.84.0", "port-version": 0 }, { "git-tree": "6ddd605460c8155173f242e5ec867b8baf9d0ec2", "version": "1.83.0", "port-version": 0 }, { "git-tree": "13e759cd59d56323d9c3079a28502a8d6814c6d3", "version": "1.82.0", "port-version": 2 }, { "git-tree": "0e786aeb741e3f8444c7252c33039216a9b74c11", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d20295b553a82d4772b75b6b2aab8240359ae20b", "version": "1.82.0", "port-version": 0 }, { "git-tree": "86ae8f2fb46f5d370e92690b0c0cc8b8bb99c561", "version": "1.81.0", "port-version": 2 }, { "git-tree": "a8eb3c6e3208e98dbfe7fdd8465e2f2f6e87013f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "a4f214e54f41eb483474cbf8526a5062873c9af9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "02216f2a6df2143071e9a0e994d8458bb6f42d1b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "50e0e90565017dfa188314c53df5119c8fa3e5ce", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ac39614e028fa51d8de1210c0a003ecde411e156", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d425b6103c0c8a5824e74768d16fee276a33e99c", "version": "1.78.0", "port-version": 0 }, { "git-tree": "fc4fa0c3b394d848fbc83ca16bcaec15742ed3db", "version": "1.77.0", "port-version": 0 }, { "git-tree": "69c7ccf5d656e92b0a71e2456933481338ddb675", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1a6a483b16ebab8a08db06a64157d9eb563ec0ea", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "7a64b01c4ca808e998f62d3889f7d21fdc9ac29b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "db4ca1a37a1b6f58fd39b61a9a1ff9c8b3a5267b", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "c7691df2a74b37995e47c47c1bda8809f0b9d1d3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "20cfe7cfaedbb7b7999a71171fb7027b12a21dfe", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b77ea4e8c3c17627465da32b39aeee79dcf8ae36", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "21dcebb8e32cc01c1b9da77cdbafa0f2774f222a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2ed9daec6c942f444508c6b182dadf0eef889481", "version-string": "1.69.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-scope-exit.json ================================================ { "versions": [ { "git-tree": "848395a49028c3d9c217b5fc2fe9ff7e506bc9f5", "version": "1.90.0", "port-version": 1 }, { "git-tree": "520acd2c62836be378042f5c2a17c84c06f09085", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8bb2255cf9e1f28f90fe23adf2caad8424afab49", "version": "1.89.0", "port-version": 0 }, { "git-tree": "483ad511e7bd2a10af893929baed284959c60b92", "version": "1.88.0", "port-version": 0 }, { "git-tree": "557fcce5c3c3aa91505458fa29e72adb02c7b664", "version": "1.87.0", "port-version": 0 }, { "git-tree": "59dfff48e5adaebade67c01436b2d04b628a582b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3eb698d5ec7ddfb6ad1c0ac3f883ebf056057cd8", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0753d4609c5045426185ed635420d7e5283a3910", "version": "1.85.0", "port-version": 0 }, { "git-tree": "451205ed4a1617b509ec9d3ef02e5e267a8ffe00", "version": "1.84.0", "port-version": 1 }, { "git-tree": "621d3782c24cfb1e35566b350a8b026975e09a69", "version": "1.84.0", "port-version": 0 }, { "git-tree": "735ee02b2601c7a8777fbe1d421d8e6933f7c40b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8b1854be566e473fe24ae03d88e2312764dd1917", "version": "1.82.0", "port-version": 2 }, { "git-tree": "32c1f14869bea00029a8b45bb94cb63ff70cc85a", "version": "1.82.0", "port-version": 1 }, { "git-tree": "38b294de8545f98716f165966eb6e93137134975", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1b2d7071e7f4db8ef844cdf22a9352c4644ba2f8", "version": "1.81.0", "port-version": 2 }, { "git-tree": "13c43013b37127307c9bcf5d432e456c15e20481", "version": "1.81.0", "port-version": 1 }, { "git-tree": "d14e5988ac595fd8c5e4c0a2e3bbbad6edf2630b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "157b0ac2b97473baa320c3a436d3952ec556ce58", "version": "1.80.0", "port-version": 1 }, { "git-tree": "9d6f15ab55ce24e64b53a1004d5286a2a6af1ba1", "version": "1.80.0", "port-version": 0 }, { "git-tree": "a27fe8833a067b072476368cdcbc1ae686236578", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e3d93cccff577045dce502c87ffcb02efb259ae8", "version": "1.78.0", "port-version": 0 }, { "git-tree": "33d55355e2f85c6188f1d131f386f86b8e29efc1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "419330b673f261bc92184d6f65b442bda6fb0fbb", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b9b04d9a4c678589f8944d4bdb2b33746cfe21d5", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "8fa4144cd296ee0a1dc3b94885e9ca0e929d0455", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "48e5d3b3c6e3dbaa76c9f15efafcf68bb2e5f5c9", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1edee114d8de1c81ceaf77247e9528d4ef7a1501", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "25aefd5e795b2b5924845d26124c55fdf7805d39", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "07195716f55b643cc65cc377467840e151b3612d", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "fa86efc2dbbc71d3e774168dfc33132e4c0fedb6", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "351acfa4c6ebb40777051fc8ff690ac58c3aba09", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "dc3c46019810e572f84a4763dc7488a2e33f6ead", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "d5d33e7e395d24c640d0dcccb36f28ffc22f46e0", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-scope.json ================================================ { "versions": [ { "git-tree": "ed3b69620db418d61bebf587081b9baa68e6850f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ef76afd4adc5b0cc01be0c4fd1d2af6c713d3a7c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "52ec92fe9c7ece6cf842364caeca0cf7b2fb2589", "version": "1.89.0", "port-version": 0 }, { "git-tree": "a7bd1bd387c8df44cf6823663344498cfb5d77f6", "version": "1.88.0", "port-version": 0 }, { "git-tree": "a5abaf0bfd2bfbb385a5e0f28aa34d8563c9c404", "version": "1.87.0", "port-version": 0 }, { "git-tree": "56d916fe09056e5841bccb054ebb74b1b92798ac", "version": "1.86.0", "port-version": 0 }, { "git-tree": "977b30e8d7fe0cf13580c9f65a9930d3ea441e19", "version": "1.85.0", "port-version": 1 }, { "git-tree": "51935d07ba01e8eeb963c4614026f6aec791ad27", "version": "1.85.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-serialization.json ================================================ { "versions": [ { "git-tree": "be58890c226ed96b714eb92eda245a0821a49027", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bf0201c2a86394caf0da57f81f900d23987f3b44", "version": "1.90.0", "port-version": 0 }, { "git-tree": "2d0849b4f45ac2529a0d8c2cbd04b0ae8984f437", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f36dabfb6f781fa5cb21ed81e8d13a7a5ed58382", "version": "1.88.0", "port-version": 0 }, { "git-tree": "248b80e5738694649bc5794ef2fe96615a010339", "version": "1.87.0", "port-version": 0 }, { "git-tree": "59c1fb041dc91bd1a7cfc14902bf8ec3e211a58d", "version": "1.86.0", "port-version": 0 }, { "git-tree": "9d9fa32ed01666e9e7676c8cdfad1e9e9ba094f3", "version": "1.85.0", "port-version": 1 }, { "git-tree": "68c80587bc870f69fb2c3bf8cdf057fe9b2a115c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9f8f13fee874259b9466bac92fbf3f7c968f2fc7", "version": "1.84.0", "port-version": 1 }, { "git-tree": "1503200e82a30cc47c9b3b6bf93b4109eea195b9", "version": "1.84.0", "port-version": 0 }, { "git-tree": "7ebe53455e9721a76ebe14c651a2deafbcb758b8", "version": "1.83.0", "port-version": 0 }, { "git-tree": "13b68c431b9c906d036a83aa17358f0778de6a97", "version": "1.82.0", "port-version": 2 }, { "git-tree": "b1b42d850a39f2675bdd583b6138994090f47bb4", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b096b460eacdde8817d706be02e5538158765168", "version": "1.82.0", "port-version": 0 }, { "git-tree": "35eea20a5dba97412f01658e1334a766089dcc62", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b3217dd0a496c9abad6b2ed9fbd57051597d8672", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ee85407a3cf8529107ed9c50b350a72f1e42d91f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bf0c163ebd43ebc46c07dddab43c65b3c751fd41", "version": "1.80.0", "port-version": 1 }, { "git-tree": "566a672aaf52abdc07527d293f88772b3e28e079", "version": "1.80.0", "port-version": 0 }, { "git-tree": "aef44ba080120ebe8f5af25a6d019781323a5206", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c51578433055196c6e74bcdf792f4092479336de", "version": "1.78.0", "port-version": 0 }, { "git-tree": "bdb25d2d55569534825b139f62cf29a2f7aaba6e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7cd97a04356c141db68bfb6aec62c68e467f9ea6", "version": "1.76.0", "port-version": 0 }, { "git-tree": "69941aa4846ac99c267c3173ddd5d4fc0e64aa42", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "dc3da425b2263d9b4443a1344007bfb0f395cb38", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "df6523833c2d6808dbd43791234cf067a94fbb12", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2a31e8cdbc82b37a61fdad948249f7e314ed3e58", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "d4b9786242cd0d205bb3a2d8cd21b020cb7d0a2d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "be3940250a015636c06a04f2ecbc2426b75e95a0", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "ea20f0300a1af6300c1132038dbe65c5deb0e428", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "8689534823be018efd6158623b2bbfa30d692b88", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "992416ac0dc16fb2b145cb8dce056951fe358bc2", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "d197dd0f237c04b277a4b1fbe2b12cd5a99a3b84", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "d11ba4cfd902b080ea15e1b3c6da7f5dd9718124", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-signals2.json ================================================ { "versions": [ { "git-tree": "d0999de10d607db43912c575cc007588b53adf6c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "a2144debfd269c4bf0f8bf139982bbb968a4514e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "785c7955e056f6770919af7eee2c8d1e39bde51b", "version": "1.89.0", "port-version": 0 }, { "git-tree": "cd5386163d29361ec0808392eeb2cd6da0e88a29", "version": "1.88.0", "port-version": 0 }, { "git-tree": "40780c94b7bc8bd26d250535b09ba3601ddc8d63", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0d47661c21531ec81da587a8dcd098db005e8402", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1ed53bf8b407448d660a178946f2099a2f9aa9df", "version": "1.85.0", "port-version": 1 }, { "git-tree": "9e71875533ef9761b6653bf23d3626a03f34491a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a5b831c6c6f7b4e025f7f29a6b21678547fc64ac", "version": "1.84.0", "port-version": 1 }, { "git-tree": "455e1a1c7cb7c023f425c31af5d3577559167219", "version": "1.84.0", "port-version": 0 }, { "git-tree": "41fa1cbba1b311066df31c154e0926fe003039df", "version": "1.83.0", "port-version": 0 }, { "git-tree": "f6f60c82002c81f4e03209ebffe7f410b926d64d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "62baba852c7f10c46fb042bd70d316e4b0178382", "version": "1.82.0", "port-version": 1 }, { "git-tree": "612a8c8753bfe3c064186f7ff0596c87ae202b83", "version": "1.82.0", "port-version": 0 }, { "git-tree": "1ff3e296103d255821323aebc556c4a1e535c69d", "version": "1.81.0", "port-version": 2 }, { "git-tree": "883bfdd7bbaa44827ab5e88d8550d8d881df1ad0", "version": "1.81.0", "port-version": 1 }, { "git-tree": "30c903917d078fbd2015553cab698739dc09ff10", "version": "1.81.0", "port-version": 0 }, { "git-tree": "1d2651cc0faabbb473973110a28cc699be1e239b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d7846d029daf05be0a560dad09ac64a64850a297", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f6ab0c163ef679f14f84b6510c8508a90facf986", "version": "1.79.0", "port-version": 0 }, { "git-tree": "b3a1129bee4ba8d867758248e1b66add1a2bedb8", "version": "1.78.0", "port-version": 0 }, { "git-tree": "ac3a1ba310974e1653a99cccc34339f29ad43786", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c574224ceed1d97eb67edfdb398117fb908b91c9", "version": "1.76.0", "port-version": 0 }, { "git-tree": "767d42c39507b5461591bf3c212ac5c5f1f29b91", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c230360cf949b220768e7c758ed7facfe446527e", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "2a915d1599c07072c0f1e14e1d83df17a935d17d", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "87d87de6922a4d8032796ffb9d37a9e78416d78d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b4c9eaa3fab2ce9a835cd79ac95ea1a9357258ce", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "f6861bea368c6d68df969d8aef32c3e1d2addc4c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "a6b330c3b6f26b4916c6b1145c39d8c63d2d1b2f", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "6fa54e2a7ed9bdfbcfc699b85420e8f0fb1a2ff1", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c61348056eb07b84bf6883484f740c9565c5c899", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "ca46589531bb374aa5dc11d339800c14238b3668", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-smart-ptr.json ================================================ { "versions": [ { "git-tree": "3a3824f0a22c01fc18d1b2b6f73f2ee6a21385e8", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cc2fbecd477a9fbef30f41806151031ac4e8642c", "version": "1.90.0", "port-version": 0 }, { "git-tree": "3520f2bdf1ddfd6b9b9e83fa0db82bb9a28fe6a5", "version": "1.89.0", "port-version": 0 }, { "git-tree": "e65d7713ee5deba4953e849c2d8a370d65ae964e", "version": "1.88.0", "port-version": 0 }, { "git-tree": "5e6365ae738cb18fbe9208f05b442153429dc665", "version": "1.87.0", "port-version": 0 }, { "git-tree": "a5ab980fbf31a3a2a95cadf878c42cfdf7e5449f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "12b7fc7a25dc88e99e9a71da259c5467f3ae4e4a", "version": "1.85.0", "port-version": 1 }, { "git-tree": "38581ab402d9d4a6d9c09c62b9b6f3c5b65c816a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "ae0420a9b2b1ce87d0824891c68101ffc1931155", "version": "1.84.0", "port-version": 1 }, { "git-tree": "4d235b9c9f410296263cf6d1cbf598befae87dc0", "version": "1.84.0", "port-version": 0 }, { "git-tree": "81506ee1238bf93218cef84de86dca96dd0b3682", "version": "1.83.0", "port-version": 0 }, { "git-tree": "890abd9cae8fc0c9a3a6f9a6b67a4cfab375a775", "version": "1.82.0", "port-version": 2 }, { "git-tree": "a61a6534966bd4a70b051538a287de38be4345ba", "version": "1.82.0", "port-version": 1 }, { "git-tree": "5a3d3e5c44e52ffa9640751a4ff611c9a0c2d1a1", "version": "1.82.0", "port-version": 0 }, { "git-tree": "9658d324de2ff7661eb9b9a94c50c2c32fe61e38", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e90f83368e155e23011c530bec6c623c182c3f29", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c4d4e6df3819a7e92761b00c2b87ed37154f87bc", "version": "1.81.0", "port-version": 0 }, { "git-tree": "5d091ad74677a0e52d40ccd2fba29bd00ba5fbfd", "version": "1.80.0", "port-version": 1 }, { "git-tree": "b7b255db01f37243bdc87ffabeaf493dcb9de474", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b94b3b41ab4bb281041f40d876baf221c05818ce", "version": "1.79.0", "port-version": 0 }, { "git-tree": "18806e0372da7b7f8b2d6a8ff4bd7bf074a690cd", "version": "1.78.0", "port-version": 0 }, { "git-tree": "700532550b70d03254c77f1467ab4c01a2c6e62a", "version": "1.77.0", "port-version": 0 }, { "git-tree": "f43e22c2f1e0d71baa91b8ac5d995ab0cc0a802e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d18232c6100b5b8836e3c14faca691fa9afb1e1a", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "64ae2e6142d5c91d57f9937bdfbfcec148ac6013", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "346986194740c9cad2a8a77d55813a5d337874a3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "496120ad295ac7ac2d3d87e25ad344e70b6b2e46", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1dbd9d51df0c2e8f7fb56f8f3a3e0a1e0713bdcc", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "3a67884a42fccc770c55769aa708dee5cfbf6bf2", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "77d4b19196b0c9d5e2e7ddf2616ccda30e930e4c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "d38abd1148d0451d8dc021cfaf1e3d0fed1a7bcd", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "e23c07e3c33edcb285faf922bf15246ea561afa1", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "bca03314abd2fcf7d1c20e6b0625f71d5f8810c7", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-sort.json ================================================ { "versions": [ { "git-tree": "2ce624285696f07ef163ff5b4777fad59beee867", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6611b015e84b74a0de4b96fb39edc10e9245afdc", "version": "1.90.0", "port-version": 0 }, { "git-tree": "a6245362f53a9c03a556e1481e389d326e5ea9a1", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1dfb244ee285aa53303629e36bc5c16eb90ef052", "version": "1.88.0", "port-version": 0 }, { "git-tree": "e768fbab47a0e58a7c2a07c13690a146bc19e396", "version": "1.87.0", "port-version": 0 }, { "git-tree": "bde7ae52190c4150e8d24728d4ed95043b3764b9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "820daa40d8930f90d6febea00c9c06b10c42f4be", "version": "1.85.0", "port-version": 1 }, { "git-tree": "573ad4ec300570beb6253f5f71cc16641a0564d7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "f4b1da7b23b706c0ee8782c230b0a24e81d85091", "version": "1.84.0", "port-version": 1 }, { "git-tree": "62b775c8967ce4347072c17881484188faf5871f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "71805d53be199c5d3b2566456b9ae7cff9a8a94a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "5fd7339a68a26cae5e7f10dc5fc7b01a7763e5bb", "version": "1.82.0", "port-version": 2 }, { "git-tree": "52a94c57d228888c823e75ffb50c1ada6243d400", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c80dbce839b8b0a842817958af53d490db5d91e3", "version": "1.82.0", "port-version": 0 }, { "git-tree": "4986baa8d4778863b3374e787098adb5d3ae24df", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e5450645bd99c035eca667764045bd70171aa1bf", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c1cb105638b803dcc0c836cf54735154f6784e8a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bf35201f0de023dd7a287ad5476a363805642a39", "version": "1.80.0", "port-version": 1 }, { "git-tree": "be28a0d59e37787052758401bd5ab59a0f70d9ca", "version": "1.80.0", "port-version": 0 }, { "git-tree": "74c73a3ccafccfc9e85fe3879ea90ff7a13ebcfd", "version": "1.79.0", "port-version": 0 }, { "git-tree": "fc0176556b8aaecb87376a59e2f711a9068dab3a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "af8327ce79cadcc43327a0f75d79b2e5feed38b8", "version": "1.77.0", "port-version": 0 }, { "git-tree": "078e3d6c36e55a55d2af19d02036437d6dabff5e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6838da5ade313772c95807dadf2c6f10978887b8", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c1ca8ba2b6acb4a4bb92c3acde6f11ba41f781dc", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "956f9b4d12deddcdacd1fdbdde8af2556bc5ed37", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5a15c890f01cf116fa2780f64ec023bebe9ad33e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "44deef7477fda8e74ba1639c7c0c3f68f2f051ee", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "e31a83a7ea77b007e23d5571e13fd50fc812b4df", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c38dbe69658bd2ba811e084a0506ef91089df94c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "79259585455c9a147d23da62aaaad316e9e0a705", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "28f38389b2b943f74742b55e57f8b593e81197c5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "e6c059e9ed2be834bcadcbb64b5e9cf5dce2daf5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-spirit.json ================================================ { "versions": [ { "git-tree": "1add6e97c82a5736d2e66be4a298546064a354e8", "version": "1.90.0", "port-version": 1 }, { "git-tree": "e47266fb8ea433c610fbea5b9e1f8bbfba8c694d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "cfa2cb2b5f1de02bda3a215a0690768c187f4fd0", "version": "1.89.0", "port-version": 0 }, { "git-tree": "67ea00f2df8f137abbe58fb5836287d0ab0a764a", "version": "1.88.0", "port-version": 0 }, { "git-tree": "69bc4b2d4e89d40766823ba565d52467cb1b25d9", "version": "1.87.0", "port-version": 0 }, { "git-tree": "9b99b61382209f93318cefbfb964f004f697e0d5", "version": "1.86.0", "port-version": 0 }, { "git-tree": "16e46a21d657de8701bcc89dfa4d0866aea7f122", "version": "1.85.0", "port-version": 1 }, { "git-tree": "34a533fc9c131afc2aab2793ca48ee3ae0b7c620", "version": "1.85.0", "port-version": 0 }, { "git-tree": "b38cff1d450f1bdd7b44f26dc8155ab02afe3aac", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2af169b76d74cf6612d702c3cb5df9fc51303592", "version": "1.84.0", "port-version": 0 }, { "git-tree": "e2ebc2bcf72d8ae953ac54163a7c5b43f17396f0", "version": "1.83.0", "port-version": 0 }, { "git-tree": "292c5391f0b78b7009740961762e199aa33d5a0a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e3722a0c3169cbadc658d55b9c5042821f38c0ed", "version": "1.82.0", "port-version": 1 }, { "git-tree": "1c21c7df41e751a8b80af93154fbc5839e52dc8a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f536ce478ead1239c82201c2f6160ea3e6db9d86", "version": "1.81.0", "port-version": 2 }, { "git-tree": "5f9fb3913116deb6c02b5cbea5d65850dfe0c720", "version": "1.81.0", "port-version": 1 }, { "git-tree": "41b83a098417a4afb01bde1932d389f1d5fd73f4", "version": "1.81.0", "port-version": 0 }, { "git-tree": "957991a8081ca1c3be811fd21e1da58cc0b0428b", "version": "1.80.0", "port-version": 1 }, { "git-tree": "74f1c93e41e9b732a47afc259b396c0812f266de", "version": "1.80.0", "port-version": 0 }, { "git-tree": "6a4bdffc6ef22bfee8942319cb5a69b2e85fe231", "version": "1.79.0", "port-version": 0 }, { "git-tree": "05502d056fb4e5569f87cd2a591ce5802f4020eb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "bc66c5a9ccd7f7bde95426392bc7ff62189f920d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "0fd209b14daf0b5990c60a1e10a6d92dd03c009c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7e42477706e50953271cf2b9ce6d3f4ad9669124", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c5f1b643139d3ced0325e49d58322066037b2114", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c000ac17ef26528602d249511c28a8f82484c7b2", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "6fc1172e43201e03e87bba11ef2c233f7b795f44", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "0b0d43428e8c359ea681398b1a9db6b921e2ba2e", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "cc606d6cb20a92527a0f6fe77e7c1fed26f4141b", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "d88b6b6399f661e8499a47a46eacdc29bf12a8a3", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7703105abc52e7994ae0c34dd92e869e3f8cc292", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "9fd98a94bb0f0bb90c48370b0c032ce4876aeac3", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5e75a1bf820b22f5ae86555402c96d2921bf6427", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-stacktrace.json ================================================ { "versions": [ { "git-tree": "6a1c66151e1ee1150ebaa6b667ef488047ecef3b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4c953fae50dd18568e17a935bd4b09c926f8de18", "version": "1.90.0", "port-version": 0 }, { "git-tree": "0b04c733cfbf92aadefbc4faf437edf2461831c3", "version": "1.89.0", "port-version": 0 }, { "git-tree": "fe537a001e74482c1950ac8408f81e968e17e428", "version": "1.88.0", "port-version": 0 }, { "git-tree": "59f698a263b91591a102ff42b0dba85130ebdc2d", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fbe31177be073a8765c33c48464ebbcc44f29a61", "version": "1.86.0", "port-version": 0 }, { "git-tree": "71c30d63b239bf520a583d4da9ceb17770bbc776", "version": "1.85.0", "port-version": 4 }, { "git-tree": "a81aa3960c8e5eb5c5d3dbc77ba97b830c89667c", "version": "1.85.0", "port-version": 3 }, { "git-tree": "0c354b5302458460959a9dd1ef3e80b813e8513a", "version": "1.85.0", "port-version": 2 }, { "git-tree": "e298ec69d794d2635cd56c6f6a6a6cfbe32d44f6", "version": "1.85.0", "port-version": 1 }, { "git-tree": "62cb7aba5fff96d6f904342e4ecbd73173db5aa6", "version": "1.85.0", "port-version": 0 }, { "git-tree": "dc0dd3025ddedcd693d91de5e97cb942733c247a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "e4bcf4968926d3320effea3f1e0389783fa6d073", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d9fe043e8398589eaa7c319295a87114acb55538", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d9ec91eb7e104db3c699004fee94ffecbb09a827", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e396fb4ba828edc96c7843024fac4c95d0c3dca6", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ae18b290cc8132b982f7ee9ec59199f86ab199fa", "version": "1.82.0", "port-version": 0 }, { "git-tree": "39f36093419faf46f0a41d57e2d4acd5c38a0054", "version": "1.81.0", "port-version": 2 }, { "git-tree": "adc79a2df59059b0a65b9e6cfe6fdb94e5411ce2", "version": "1.81.0", "port-version": 1 }, { "git-tree": "fd69bf1078581bfadd66d4dffd33a98afe742fc9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "be2886a710a14f41b5272e48d48cfecac21a650a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "d2168810ccbabcae3d538f8679181ae300b815ac", "version": "1.80.0", "port-version": 0 }, { "git-tree": "0ddf64c066bcc3189d13bd7eedbaa646cdb073ff", "version": "1.79.0", "port-version": 0 }, { "git-tree": "e00114d87145dd426e0816ce0e5fd0ab4a587ad9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "8d5ffa9ca1552ad32a5c6a78c28a3e275323dc2d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "02837608d604cde8de8bcbd5dcc706e406a808dd", "version": "1.76.0", "port-version": 0 }, { "git-tree": "eabe320c7c22c3c4a389aa75ed6ea630fffc5020", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "a6e6a66f2bd2227224064f4e1aeba56cd27d9f3c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d1f97a37915b43eca3d51336393fbb58ad2a3839", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3e89fe0f6ae03fa0051955dc2d97200ad073b8db", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "a5b1378bff1508e443e02a8dba876797c50f8c34", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c1a348b46ca401b00d64048ff016a1c34e7648ad", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "d29fc35c3d581a3c662318b8cb90f6608da589e4", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "d28ad966e96fc64954bd0fb569c922499cbf84bd", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "7db733b796b8988061000988c406bafededccfed", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "a698a2f55ecb95b7b50de7c5bf363134aed945eb", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b0b26afd13d3f3bf27206efdcbb68462f2a8da1f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "692d7b64297b627d70c7a41188151dee9a588038", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-statechart.json ================================================ { "versions": [ { "git-tree": "97b952e07d8270ce263a29936a550d8349f6fe08", "version": "1.90.0", "port-version": 1 }, { "git-tree": "3288c984bcb8ef38f5d61817ea34722cb4d3ec44", "version": "1.90.0", "port-version": 0 }, { "git-tree": "5b294e62ba0c3cd75063d534076e1c7b2d3c0a50", "version": "1.89.0", "port-version": 0 }, { "git-tree": "4059bd01e275de4c5cedbde19c8189b5b50e1fd8", "version": "1.88.0", "port-version": 0 }, { "git-tree": "18d2d8bf3d3f2306e670b377c9b897289b8681b3", "version": "1.87.0", "port-version": 0 }, { "git-tree": "f9037f665ed8408005a53923677a950bef43ed80", "version": "1.86.0", "port-version": 0 }, { "git-tree": "095b6d4b079182883253db6f18b997ec3f53a3ba", "version": "1.85.0", "port-version": 1 }, { "git-tree": "28c6d86005c1ab8177581ba01a839f6e03289653", "version": "1.85.0", "port-version": 0 }, { "git-tree": "89ebedc94a9e11801bd4474734e49e83bbcfc6e4", "version": "1.84.0", "port-version": 1 }, { "git-tree": "21398359f6a56d42c75929dca6a5fda68ffe219a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "5d2243b3611cb12d9317e672fb7fbc296e87494c", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2664cfe208b1eff1257e2de86a72ba359ed3e3f4", "version": "1.82.0", "port-version": 2 }, { "git-tree": "73dbf3ff6a02ae856ea69c4a9c6f32905463ff3a", "version": "1.82.0", "port-version": 1 }, { "git-tree": "e2dbb2792189ed8380b551cdefc615f72aa58aff", "version": "1.82.0", "port-version": 0 }, { "git-tree": "38e529d1388ce4dedb22e847324b30aab1f97444", "version": "1.81.0", "port-version": 2 }, { "git-tree": "55f07cd3388d8ea9c56a186d8218b600daa14b4e", "version": "1.81.0", "port-version": 1 }, { "git-tree": "013a33e392ab38da49ba7903a970c4d146bc4d98", "version": "1.81.0", "port-version": 0 }, { "git-tree": "6397499d13e7ab3fcbbfb156613668570bfe6222", "version": "1.80.0", "port-version": 1 }, { "git-tree": "41d7af8a2e26fd1f41dae61d62cb8484ea978884", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b6d892f7ec7ba87a98fd9bd2fced0c0ca6161fcd", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ef8ccac6b5ef76c3b862e46b9f6cb37169e8b20a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "044b9fc61c729216838037b6b519393e32b2fa26", "version": "1.77.0", "port-version": 0 }, { "git-tree": "94c1acd6353e0db7370f742c082c160114f7af8a", "version": "1.76.0", "port-version": 0 }, { "git-tree": "0a5df3d26698c16a1152ab418b6f6258621eff40", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3322770a8d0a4e29fe9b9bcf167f9f8c55aa9b2b", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "c1e377e054dff8c480169c8b6196adcdb9d5a22c", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "0c5b644cfa888c4b8b273c2f312959bd05fe9628", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a992d34a93176220e154aae79675dd42868fce3a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "f10853ba92bee21021f12e068b2d49d435c4d9ae", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "af46ade625eae800a0f78100c2d36035c4b13705", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "4426492741769f9365fa03b0f55ae72a75daed43", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "3d796b5c6b250166a26290350d0f068a8dbf959c", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "cc2ca4607e8a1b6846bd89b16ae52edb078a05a5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-static-assert.json ================================================ { "versions": [ { "git-tree": "fcb71122d53bd76520ca9fd266bd11efc772f1c6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bf19c69ebc535cebb3d2d562c06625d801dd1a87", "version": "1.90.0", "port-version": 0 }, { "git-tree": "c297fdc10a4751a0813d174da5b3d6ee8ac4fcd2", "version": "1.89.0", "port-version": 0 }, { "git-tree": "2cb92121f4df9c9b122c4837cb8e41ac1f4800b6", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4a3601304b3bea0ecd0fbab68a65b1d874467f13", "version": "1.87.0", "port-version": 0 }, { "git-tree": "47f251620a2037084eb2d8ac0e6ff3601523e42a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "da6fbe5e5e5a77cd1a4507e272781f5ac12f61f1", "version": "1.85.0", "port-version": 1 }, { "git-tree": "fc871946acae436f469997b7f59604a4e46ee9a5", "version": "1.85.0", "port-version": 0 }, { "git-tree": "edc97487412ec39ce85761512aec6317c58b9246", "version": "1.84.0", "port-version": 1 }, { "git-tree": "c79455c647747893ea950dedb858fad16d0819c3", "version": "1.84.0", "port-version": 0 }, { "git-tree": "50eac53fdc886f9de87fc06717a4ae3a939b28e9", "version": "1.83.0", "port-version": 0 }, { "git-tree": "bb7f6ee1209b0760b458727da129653965e7e98a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "e6e55a999a301eb62d7c4da853a6aeb296713943", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3c7509ddc456f0a85962fbb51df4f998c3062999", "version": "1.82.0", "port-version": 0 }, { "git-tree": "bf5777cf607209edba1236a1cf87721ad896ead5", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b53209114fdd0718f940210564faa76aca7a9858", "version": "1.81.0", "port-version": 1 }, { "git-tree": "13ef84b94578c2d386f86a468ef2e8720689c240", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e1d473e4761320293cb036a6dd2f00ebdcff169e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "55582331cbe3fc0e46ca145196d341140511edad", "version": "1.80.0", "port-version": 0 }, { "git-tree": "673cf82169b2b1696d993477d47b2f94d4350a7f", "version": "1.79.0", "port-version": 0 }, { "git-tree": "0d1e3a21f0be997c400b7c60dc2ec1b1beccbe3c", "version": "1.78.0", "port-version": 0 }, { "git-tree": "57ca16ab3652380b32a137add7aed6a385754d75", "version": "1.77.0", "port-version": 0 }, { "git-tree": "dc334c3a07d041efa802d868ece12150bdef34b9", "version": "1.76.0", "port-version": 0 }, { "git-tree": "2a41c4703c7122de25b1c60510c43edc9371f63d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "871d4013cd853e5e440fe61fbd468a8b96f41c14", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f131491fc0280897f8786f170aaa04950a1326b2", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e82d8f7f3ee07e927dc374f5a08ed6d6f4ef81f4", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "3de4428d58f0ac3ef3ab748a9b910c288ba31f50", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "9d33cc31778b5cb134f282cd7a11161b83ddc649", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "b84e0e934fa66da86f8aa032bc32ddb447c70b2b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "effa8bf80331215aaff7d1c40ad873c4afa0807f", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "6beb3e46c04a4fac712635b8524ad876a7c20e8a", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "6d891e259b071689460551d67a60eddb2879d5d8", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-static-string.json ================================================ { "versions": [ { "git-tree": "36f3292be4f0f9ff5991d9dcd5771ea195f43470", "version": "1.90.0", "port-version": 1 }, { "git-tree": "67c0ac873a43ef3891995c8a4824630f564bca0d", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b7d554e23f8fc6f39a6960bd6a10cc9f9b244964", "version": "1.89.0", "port-version": 0 }, { "git-tree": "83065a30423a1c44652bd30ad85d7a44cf77a416", "version": "1.88.0", "port-version": 0 }, { "git-tree": "792f3715c13ef4139509e9d0a165f483482950cc", "version": "1.87.0", "port-version": 0 }, { "git-tree": "582bee8fec9374c28c43d8d42f7dcc0e360e3998", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e916f066e670a2f0fc1f739badeff7d5eb3968d2", "version": "1.85.0", "port-version": 1 }, { "git-tree": "af9ea3ed9fe22bd47c2299a7bde9691f567c186b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "6af794cc7ac294457b1c451b0eebaed7634e8b51", "version": "1.84.0", "port-version": 1 }, { "git-tree": "d4713f1a2398b6e21a7d5906456621f5eb46156c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "dba046b1b41f91b5927d8f4198157bc135d6a705", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b01da85ea910c32e62403ec6e7d7749750e6809b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d6659ace5ff022455382adf6078c00bf015d5170", "version": "1.82.0", "port-version": 1 }, { "git-tree": "6f767f97f025574cf3a14d6390759ff063c3b7c0", "version": "1.82.0", "port-version": 0 }, { "git-tree": "b428f9b5942c135a898619782258dd4a4d453c33", "version": "1.81.0", "port-version": 2 }, { "git-tree": "70d098649171a07cdde0895e80320d49e709ecea", "version": "1.81.0", "port-version": 1 }, { "git-tree": "ab3906fbb1edb4604ee0bcdc3f46a742de1786c3", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ce625ddf570552c9fb62006d8e20a8ba70613dd1", "version": "1.80.0", "port-version": 1 }, { "git-tree": "b58ce47fd0d910a9b436540cf87e0b06a1767fa3", "version": "1.80.0", "port-version": 0 }, { "git-tree": "575a5fac2b96da2ff39038a733fea5455f91caf4", "version": "1.79.0", "port-version": 0 }, { "git-tree": "fe40bbd1d9be4c65daee4bf8f58a6b08baea4bdb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "8296453890169b2bf99e2b7ecf4231c7ae572903", "version": "1.77.0", "port-version": 0 }, { "git-tree": "990abb2e15b868e2f80750422c3750e11700bc17", "version": "1.76.0", "port-version": 0 }, { "git-tree": "3bbe6c7f88321969abd4926c439851286fa4cfb0", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ba59342bca213a38e77b5abf9764826927f31e06", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "313a87142b4f844e7a2d839309bef8a39c8f023a", "version-string": "1.73.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-stl-interfaces.json ================================================ { "versions": [ { "git-tree": "427a4006202f5524f740b0a17cc889fa3594301c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6ac1d3e640e7d83470384d750136460250c990b7", "version": "1.90.0", "port-version": 0 }, { "git-tree": "9d3ebbaf1a26cd857cf5f460f4e9abcfdab30507", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ae772affb8321eb7661023f01a141f23f00273bf", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d95e6597e463c45809857862bb2079dd2e0f7f42", "version": "1.87.0", "port-version": 0 }, { "git-tree": "cebcbc66ad554fe9579f8446566a674dca2adb04", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1c95f0447d6bc2eed8de4417302dfa839977f626", "version": "1.85.0", "port-version": 1 }, { "git-tree": "dc0abe949cd3259e9492f81e6b0ac7b8e8f1f8bf", "version": "1.85.0", "port-version": 0 }, { "git-tree": "094f8f820151097b11955f6646f8d80b81e6dc8f", "version": "1.84.0", "port-version": 1 }, { "git-tree": "593aabdb7f8997f9147068a5222eaa68d3642814", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c11bab85b94163499bbc4e7931ef1270fb64213d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "2c8e63f22b9a633855cb9be3712ae8010cf0dda7", "version": "1.82.0", "port-version": 2 }, { "git-tree": "8a8da16449c627e1e3514b6f0c865423def32aef", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b3df561ef1e62cfb1f2210d12fe99ca3b019d0eb", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e3d2a9d9eb7bd34df9111f68e506e0645ce343d3", "version": "1.81.0", "port-version": 2 }, { "git-tree": "4e0502f0d47b518d9df959f7bb6ea52a63c2dba8", "version": "1.81.0", "port-version": 1 }, { "git-tree": "3e57dea9667f1290b4f12364eccad312823e16d9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "19154572a3a78e70a7b43d0eb17579fecdaf75fa", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0b82eb711e6d0b9a580b7fd149b1bd4b95d9c9d1", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1f59d2ba966f1e2c2ef5f23150c5a8dd348d98fa", "version": "1.79.0", "port-version": 0 }, { "git-tree": "536059a4a77be87c1825fd1523cc29e47c86541d", "version": "1.78.0", "port-version": 0 }, { "git-tree": "0e127914d34e8dbaebf9f36fe800b8bc85252233", "version": "1.77.0", "port-version": 0 }, { "git-tree": "4b74daa481d1f60e2d6f9c6b221a80dc8668cde7", "version": "1.76.0", "port-version": 0 }, { "git-tree": "39f712a73b762150961fda9a9f81edfe2ecaea32", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "be85d9bd6d129bf9af47e0b4cbbc966c08fe02f3", "version-string": "1.74.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-system.json ================================================ { "versions": [ { "git-tree": "ffa5126f9b2f42c9cc1fd65822916272ba9330ae", "version": "1.90.0", "port-version": 1 }, { "git-tree": "24705a63247712635d01703269a884d11ef0c1a1", "version": "1.90.0", "port-version": 0 }, { "git-tree": "930f1da0c62be8d5eb884b12e9f6453786f92339", "version": "1.89.0", "port-version": 0 }, { "git-tree": "737c0b0cf6378ebcf004985963d7d5503b4a0cce", "version": "1.88.0", "port-version": 0 }, { "git-tree": "da37abf239e674e07a7e5a4ed30b19ab119d5800", "version": "1.87.0", "port-version": 0 }, { "git-tree": "7c85bcb721e1a1cc3bd96660476a30c0eba11f8f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "2c672a1cf95767d7ced16740ba9bf8810d67e051", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5b85bf9f2f1fe69edf1d99e29470bca45cbeed6b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "22de59dcf232bd59517eaee5d7106eb70ad977e0", "version": "1.84.0", "port-version": 1 }, { "git-tree": "c87d6964da1b27c95fc19c5ddd44c2f20ba4524a", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0090d008796452ba40264bb11437e0122a325e23", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b1bea82cc5898b04f9f797eb47026b667a03de00", "version": "1.82.0", "port-version": 2 }, { "git-tree": "48fb125e52a85de87f4ff03475742d79f84b42cb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b4c52641930b283d8706bdadb3a00f0d4713c304", "version": "1.82.0", "port-version": 0 }, { "git-tree": "b5bda1dda74953d8b2ecfd6f2a67b3503a47e9ab", "version": "1.81.0", "port-version": 2 }, { "git-tree": "dbd935ccd3de9569170e612ef095ffe02314d5dc", "version": "1.81.0", "port-version": 1 }, { "git-tree": "db5d6cd7ad188ddf42fab70cbb1818c5fad29690", "version": "1.81.0", "port-version": 0 }, { "git-tree": "9a6e70bad5ea38a9e78b3068ce0bc9237d4ad413", "version": "1.80.0", "port-version": 1 }, { "git-tree": "198bd87002215340f09b4269e8d80dbb7f314c7e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "e5bca2d39362ef3978473a1d184f017ed277d1e5", "version": "1.79.0", "port-version": 0 }, { "git-tree": "eaab2373181b829bf4cb4ee298dfc9c80e98f01f", "version": "1.78.0", "port-version": 0 }, { "git-tree": "86ac553606d3af5cf67b96bafd1ddaf9e6c57b60", "version": "1.77.0", "port-version": 0 }, { "git-tree": "c0286de08a3fa5ba043e432b986df78f4defcc96", "version": "1.76.0", "port-version": 0 }, { "git-tree": "0a1188e2c052f77ac0b2152eb3ad78e19ed29e0c", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "48db433d88b5e7a37e26f8fae95786790be9b158", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ef09e0f830b84cce404229bacbbad7bfb58ee46f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3a5039dcf7b8857d1c8293a4cf40942023604a6f", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b6722bb909e96ced9b3d043365beb524139694cf", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "4250413c5ce279a13b4c21ff6244a21fc8f13a50", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "7836cbdbab4e91472fbe3e828a89c42b63d3f220", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "bdb51c22b1c2b5588a71378f0eacf34fb77535ce", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "f23babc95421144bab207f6b2dfcbd6f8cdea32b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "734c3846580e4d62401506adf6ec95e0f9c67dc4", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7922688edb05ed05f51e00f4793acb94f6284e06", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a097e5c43513d91ac8ff646e3c5e5b3ba24fca17", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-test.json ================================================ { "versions": [ { "git-tree": "cfa468e5424778e56a0bcf15807a5b8cbea0fe7e", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ae246ef8e64a97b91a12d658f3d560faa6d323a3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "0271773d4f2480aa5de63ed5cda636c76ca6cc5c", "version": "1.89.0", "port-version": 0 }, { "git-tree": "836cf9db1b6df94db3f1ea530b57d73409fd5ec2", "version": "1.88.0", "port-version": 0 }, { "git-tree": "a07be6aeeebd497a3d493721e3f7ea3c2e35c5f8", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fce3e32f81af52bc38b505496c6b6f018ed10f7f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "482d17a155b4113a4f8a1363d39a626367379ab4", "version": "1.85.0", "port-version": 1 }, { "git-tree": "679bc81e6c58572282e9e78643a9c2eeac86f74c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0d2411459c1e795fd312e53ab4bac8cde347c821", "version": "1.84.0", "port-version": 1 }, { "git-tree": "28298078d066a4a0b3b27a0c3f9acadeb7e01260", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2e21f61b617327941161649451b4a022747fbc1e", "version": "1.83.0", "port-version": 0 }, { "git-tree": "b6d22c3109a795ff79ca53f0b07afbe683d83558", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7f9b16012eb50bf79ca3c7193b3a91900342fe1b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "77df201a3df02a2fa21de18433474671cf2f41c0", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7e47dbce4949b5085b51a15ebb1041c86c7dde88", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8bc801c290dd3f43d247dd2c27aea6ab17d57c4d", "version": "1.81.0", "port-version": 1 }, { "git-tree": "87a3f7d11a57ce11fa2fe15ddbacb51fbf5af0e6", "version": "1.81.0", "port-version": 0 }, { "git-tree": "7322867adec8f2f81a99e227202805a3f291fba2", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7324e419ee3fa4d7871aae2cac389cb3eb2dda94", "version": "1.80.0", "port-version": 0 }, { "git-tree": "127affd76f8dea78857d11e147a2cd03d8e827e3", "version": "1.79.0", "port-version": 0 }, { "git-tree": "5015382ed40be617a3ec97adb17c0c1ecf3ab2d9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "6429276e9f4fa438346cb3d41e73b9c15bff1868", "version": "1.77.0", "port-version": 0 }, { "git-tree": "9bab6b8839833eda9df6a0016d8634d129fef485", "version": "1.76.0", "port-version": 0 }, { "git-tree": "5ae561192927eb3f6f55b6e4370e5f85d18f72f0", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "85ea380a4cde12732bc96bc9b4c092909421afca", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "04265aa4f689d56685b42bf28f2e26765bbdce64", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "df00b98a0286d12dd2f1d17c09824c23425001e3", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "de0ce09d5749cbf94461ad62c8a57bcb103777a7", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5d9504bd94654eefa35421706e8d6dceae9560e6", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "d3f7b73a7fa28e58a177da854620a43cbc26c0f1", "version-string": "1.71.0-2", "port-version": 0 }, { "git-tree": "fb08e6bc51befef2eb9553791764940a2758a1be", "version-string": "1.70.0-2", "port-version": 0 }, { "git-tree": "39fc82e5c21755871e00352516937f805e8f0583", "version-string": "1.69.0-2", "port-version": 0 }, { "git-tree": "c39461bce96acba27f69260f64db03963f126560", "version-string": "1.68.0-2", "port-version": 0 }, { "git-tree": "d81331534236510acce87442ea5543c29db97077", "version-string": "1.67.0-2", "port-version": 0 }, { "git-tree": "e4a53915142485fe9c88a9df76628f3ec98fbf83", "version-string": "1.66.0-2", "port-version": 0 }, { "git-tree": "993245a1057b1a17b03ab592cc1303b4a40b7f5e", "version-string": "1.66.0-1", "port-version": 0 }, { "git-tree": "7061c73053764f235ca6112af77e67ef84b55fbf", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-thread.json ================================================ { "versions": [ { "git-tree": "883057c59674c907b8c1165ed3d1c88fd8f76136", "version": "1.90.0", "port-version": 1 }, { "git-tree": "fb97af8cfd0cd06b85e2dff6d2066e126fe0bebd", "version": "1.90.0", "port-version": 0 }, { "git-tree": "1780abc3416ddde7e3a3d3d7abda4d9b6ac2aa54", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f83f7bb80a58cdc72756fe3ecb21886788a3089b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "51c3cab52d139b4efa73d40c05b98a310a16821c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4859fd5b6e005b5129c0f552de4017ec6f76546b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "06d12e995e62bff7a06104a6065c64a06efefccd", "version": "1.85.0", "port-version": 1 }, { "git-tree": "8a56e3d5d0b99dcf5df8f2f51f2b8bacfbdabec7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a57109ed508a9af1fe915cfa2550d4b5a8b5daa7", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f7aa0651df5b4e391357cfc58db1b87f11af97e5", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f2f50fecd4338161565a0425c3e9b55fdbe68424", "version": "1.83.0", "port-version": 0 }, { "git-tree": "183d7fba1820b773404a6ea7351f4da539612367", "version": "1.82.0", "port-version": 2 }, { "git-tree": "10385bb625d17d57f636154ab2b2ec6d35bb4615", "version": "1.82.0", "port-version": 1 }, { "git-tree": "73ab1bc58c1a66ca2d230d584b5a3f3277ff7698", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7769fa8b3f14741a465e312f373c670392d88986", "version": "1.81.0", "port-version": 2 }, { "git-tree": "583c31028e306ea49735070fadd46a76cbd8c4ab", "version": "1.81.0", "port-version": 1 }, { "git-tree": "a922dad3c4b4270b87e607d89794c1c7af09368b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "68aa268b4f5054150b946af87cf73a58ddd46281", "version": "1.80.0", "port-version": 1 }, { "git-tree": "010869a933ea4108c7cfb6ebc10d86ff823a1073", "version": "1.80.0", "port-version": 0 }, { "git-tree": "d40c962d08c08d397520ace757ef7aab055a59be", "version": "1.79.0", "port-version": 0 }, { "git-tree": "ef371df76c2b790aae7209d2866c467bd6d339be", "version": "1.78.0", "port-version": 0 }, { "git-tree": "1c097a032a997463e15245272e40ea9298554f8b", "version": "1.77.0", "port-version": 0 }, { "git-tree": "ef29c4cc84cd28ca6cc812794dfb264709dac11e", "version": "1.76.0", "port-version": 0 }, { "git-tree": "281c8b8c17e414c9b0fd0b0bc6a569fba02d4fff", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "e37b7227025ce689055e4fa560973d0d8778e6f4", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "12e8de872c0b45b884db604ece353585ac66bf45", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "bac44c27a61325152af7b5470f7b8f6b9920928c", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9f8ea338d5b510309f8a64f04766f5cc3f4d32a2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a3cb8223a9186884ca8881c2eac17ac37415663c", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "40bbe28aaadbb700bce86e15962e088341c34da7", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "87d272992bc51ff47ee345f377148c5dbef22707", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "4a05d4c14b5445d58a08e8bd81987673e7d8d294", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "fac02771c6ae3a7e91f63ed40375357ae25ed005", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "099d6b8e2429a8702d65d7edf56dc9c4f9e6d2a5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "b35a337eed03a72499ed08770dc5bc79ca285c53", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-throw-exception.json ================================================ { "versions": [ { "git-tree": "57ca915d2601ca7c7fd63b20fa75ecd5e0cfe445", "version": "1.90.0", "port-version": 1 }, { "git-tree": "1f6abc23a8bdf93b2a0d4951bab81f0086607b32", "version": "1.90.0", "port-version": 0 }, { "git-tree": "2595f3f64c49285c68fde05cca87afa79eb4d664", "version": "1.89.0", "port-version": 0 }, { "git-tree": "cce052773fa40ae37c9497cf38739945720cf104", "version": "1.88.0", "port-version": 0 }, { "git-tree": "4a56dd17aa1fb1a18f50d189593938893ec24386", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4b282c6d95bbb3e399592f9eb87b8f420d34b3b5", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1484d8b3741dbf840c0c88a8bb1205efcf66c288", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d1b5ac92ece793a441d7130cbf2721fd544950b7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c37eb6fc4bdc04f175d66e81625c3f48730426b1", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f3c85344985a864fb5d2245f788197ad3c727ff4", "version": "1.84.0", "port-version": 0 }, { "git-tree": "22bf09f8d91024cc1e74b19bb6333baeea262b69", "version": "1.83.0", "port-version": 0 }, { "git-tree": "3416e3ed72a0b469169cc290cafeabafe2bc4859", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c51c9fa76f925c5824688c6ca9f451716373b5d5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ff4d027351210c3566727fee101f01de90240345", "version": "1.82.0", "port-version": 0 }, { "git-tree": "24786ddf6fd042eff7e75cbb3573d5ba5401530e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ed6e94c9c5d823031c31f64f532ddad1e302d7c2", "version": "1.81.0", "port-version": 1 }, { "git-tree": "83435c583506646391d45f472ac19344a435cc9c", "version": "1.81.0", "port-version": 0 }, { "git-tree": "1bdea74428f14ec2c9906cfda12610ffd0b53187", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7ff821c116eab19736c1549d09245fbac968c7ec", "version": "1.80.0", "port-version": 0 }, { "git-tree": "1607edf60f1243503820e06b4d3e16c385aa691d", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2ab1c68ab2a41696a5f36841a66178256b8d229e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "f0887800c8710d96015c7c1541f78265e1227963", "version": "1.77.0", "port-version": 0 }, { "git-tree": "29a39e0d594d74febccddce3a077ff39c484fe21", "version": "1.76.0", "port-version": 0 }, { "git-tree": "b13bdf32a20786a0165cc20205ef63765cac0627", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "1f89573490e0b85c91e0b0e26da69287d02eff91", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "f7f521fd833b3a78f070d8ecc79747cde60d646a", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "64df295f7df41de4fcb219834889b126b5020def", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "b78dd0a3e6ede4a123197db887e928c36d6bfea1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "eadefcf3d182c023ff231e86e6d3f3b2ee7b62af", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2b136c90d4171b755b9626e11c69220b13e2dbd4", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "66f2fb485888ade0b17ed3e66a256b81214341cf", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a168b3729dcd60ea97a765db00dff076d1906ca5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "79f3aab1a3420de75d36beb99cb22fb2cca12e03", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-timer.json ================================================ { "versions": [ { "git-tree": "1f41903f61720191961b2f6f20fbd79e428cb069", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f9df6d5f38b1e63bf07cb6cc26fbbbb0f07df779", "version": "1.90.0", "port-version": 0 }, { "git-tree": "b2917b21469662a9c9b27f168760cfc2f2bd96e4", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f77d8cbc6a589921d2b65e44dcc63baf93dc17c9", "version": "1.88.0", "port-version": 0 }, { "git-tree": "f86a8077a906a25aa2fa73493ccf34703bba18c2", "version": "1.87.0", "port-version": 0 }, { "git-tree": "68f92cc4f9c09dad7f84b71a4fa48781c925ef9e", "version": "1.86.0", "port-version": 0 }, { "git-tree": "199a3fac20b6a82d17be36702dbd4aa9418d78a8", "version": "1.85.0", "port-version": 2 }, { "git-tree": "4b476fa27021791ca08c8692799bed677cb9e339", "version": "1.85.0", "port-version": 1 }, { "git-tree": "35a3a3f621a48e38fb92b0703cb24ff660a40ca2", "version": "1.85.0", "port-version": 0 }, { "git-tree": "3ee744db56b3d3d69e1160a31664731788cbbc54", "version": "1.84.0", "port-version": 1 }, { "git-tree": "95a50501b5eba119f8732c2fc02ea00b926ec740", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c143993e19cd4999f4199d79190b48058bd13a1a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "161c4be7bd7c9021a41bd62b3b5d06ded0f1bae4", "version": "1.82.0", "port-version": 2 }, { "git-tree": "df30d3eccc932381af5653911a0708436c1db576", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c86715f4f50f065882791fb8fdee4f42b2533084", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c3e14b189e9ba8356438d69471038ffe993ba9e6", "version": "1.81.0", "port-version": 2 }, { "git-tree": "0e84531b50917eee5d89502cd2fc3e495aeacb20", "version": "1.81.0", "port-version": 1 }, { "git-tree": "47a032967b9a6a2094553778df7804d25746a235", "version": "1.81.0", "port-version": 0 }, { "git-tree": "fdfece6a14ea383eabe8f147c1672c7b0791ffed", "version": "1.80.0", "port-version": 1 }, { "git-tree": "dc5dca14265350c93bafac78b73c1305d514a9ea", "version": "1.80.0", "port-version": 0 }, { "git-tree": "ebd77c0ba62a3665404c4143e4208b387b57a5ca", "version": "1.79.0", "port-version": 0 }, { "git-tree": "bf38eaeaceb0c989b414c6570b560e28822034fb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "aa256b5fe2ecea8dc514e446f136bbe1100a9805", "version": "1.77.0", "port-version": 0 }, { "git-tree": "7e8fe8dd0d1524fc679c48bf4ca41f31a99ebc36", "version": "1.76.0", "port-version": 0 }, { "git-tree": "7375c2b2d13b38482bd523adda933c11bd113b51", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "05606fbfb07b35716e76153b1e0d5b481f6c8c4f", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "8c7b4e5dbe9c0635836d34927cc23899459dee64", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ec9ee82d5ebbbe5bc4f9c19cb1b999fa584d5f15", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "a3a4d63652cdd22876f9409ec61a84d162e2fc60", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1a6b9527ec613a614601a841ffca6bc7fbb32a5c", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "50cbf677f19310767ffa18ffd6c1ce44c50d2232", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "53091c6d7704f7ab1bbf369c37d492d46d8fef1c", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "c1ddab95bcdcf7a931bff607b9cc79bf54cd1a93", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "5b7731ad8b90f59fc6e8bb56088390274f479697", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "cfff6c7a460bb95152a3256f445876bf1ae0de4e", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-tokenizer.json ================================================ { "versions": [ { "git-tree": "a8e68feb1372fbabcddfab9436a2aa99c2e6fcff", "version": "1.90.0", "port-version": 1 }, { "git-tree": "fb576592a3bc353df36bd9fae8bad677925c5924", "version": "1.90.0", "port-version": 0 }, { "git-tree": "54edc02e70826bee8f52d8d324a5ffb2cee432b7", "version": "1.89.0", "port-version": 0 }, { "git-tree": "221203f5ced5b51f2908b045dcacc1e9b5140b33", "version": "1.88.0", "port-version": 0 }, { "git-tree": "30bfa8585c66192e1e6eddc5917df7ac3702a488", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b7b01a69aaf4f53a6e97eb141790cb96222f69d6", "version": "1.86.0", "port-version": 0 }, { "git-tree": "013e44cb7fb8db92749d9f74203ff919ac3bc2af", "version": "1.85.0", "port-version": 1 }, { "git-tree": "d4d77b143e67e2cd1ef8505847a9f23cb9b3faf0", "version": "1.85.0", "port-version": 0 }, { "git-tree": "5fc004668181ab032bdb19d173bf1505427b9e9c", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f813c482e33e213480b75d69780c4d795769e581", "version": "1.84.0", "port-version": 0 }, { "git-tree": "05ada2a1cc63fe9b4f5b4e9ac1d6ec63961e281b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8d3578a014b8545ce2e4be7e6243c50e3fe2f41b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "4a53c730b20cacfbd8e6bbbd8faaeee0720c9fc1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b49b178a2beeaf3b919c3e4535b45abf89de6818", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7deb519f49fe9ca4814c3ee10da9cec1c73428f7", "version": "1.81.0", "port-version": 2 }, { "git-tree": "57db0724f5f73d9e80decf23271a69eb117724f6", "version": "1.81.0", "port-version": 1 }, { "git-tree": "53b972f181fde0bb98a3798a29f7af90c5aee1e4", "version": "1.81.0", "port-version": 0 }, { "git-tree": "ebdbeabd169a5242203d56538a4112559da6e4c8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "860575e6cabb9769a64a55d67b8734decfc0dc25", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7e5682fee6727bada3b88221bd416edaa80f6a34", "version": "1.79.0", "port-version": 0 }, { "git-tree": "24c6aef67afefb01d20749d7b43790efcb1dfc66", "version": "1.78.0", "port-version": 0 }, { "git-tree": "56a1fb828a469ba50000983860226452c264050f", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2b9b3cbc205006491c43f7244cd4a046961e610c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ce248c1ba37037937a656c72bfaafb0d523559e4", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d890c67cc38ddce8342e4aa562a9616e0c6a0867", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "e5bfeda78c8d8c3d87c42eb1f56fa91a7757eedf", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "e89c1589ba3f4d1e5c7c33fca4ffe39e98f3f482", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cdfa7b0092a0758580da3d935ff10fc5d787b80f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "8a5552093fcfcec34893e5569e4fae0bd4b8345f", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "09f264b65c105bd680840a250db1bb3dd7fea89f", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "31ba0cf0bf5b52ca8461db12511ed732e9114cd3", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "7284a81ceab33f80f6df51903f489f696298a81e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5ec38f4d91af2e1f7f09f57886910f750244290d", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-tti.json ================================================ { "versions": [ { "git-tree": "588fcdc557083ba15d53f09526ae7c9cbf4a1a9a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "5bf4fea92c34739078dfb76932e2511cfded09b6", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4f09da54ebc2bce27461729a60f456f6058b9bbe", "version": "1.89.0", "port-version": 0 }, { "git-tree": "16f4b260d3d07858c48fc5cb2b6339daea53fa29", "version": "1.88.0", "port-version": 0 }, { "git-tree": "97e79e31d418618104ddeb8eb577ff9ecdfa4292", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3f7dbed93eef0cfb857c238403a1020417cef1e6", "version": "1.86.0", "port-version": 0 }, { "git-tree": "3e8107b8f05a378b92a451de347c4c8d3034616e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5f7b72984115427eb8c7b5176ecf1a7d098daf5c", "version": "1.85.0", "port-version": 0 }, { "git-tree": "e5705dd4b6efc860b945194a2ae443bae1ab9304", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2a8f4cecd47d8c713d8efd3cebc2567f16ba2050", "version": "1.84.0", "port-version": 0 }, { "git-tree": "06c466d2662d638138c5318e4ad3a165974de862", "version": "1.83.0", "port-version": 0 }, { "git-tree": "6fbbc2a47d406102ec479ff755beab26984a20be", "version": "1.82.0", "port-version": 2 }, { "git-tree": "cf4ae2c2fc67d7878842950e97e57c28811b1fd5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7ceff9b2a8616cf2279c68d70a29abf07ca10e17", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ac4f1da7b85d3cc5746463d7fafd9d2dfe23e2ca", "version": "1.81.0", "port-version": 2 }, { "git-tree": "1df9a6d33b9126324264952182629c03d98d750b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "311341a3527a8ebef69bef7604dc0583896ce29b", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d64d8aaf865a3992837a4cab0fb398b124daca3d", "version": "1.80.0", "port-version": 1 }, { "git-tree": "845aab372d2f165939e1554598fcb6d7963119e8", "version": "1.80.0", "port-version": 0 }, { "git-tree": "027de695e13801dcc7a947fea766bd29b687e7ce", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c47f152005c71db858b015f18edf72b02f7ebf27", "version": "1.78.0", "port-version": 0 }, { "git-tree": "102fbb95889400677115252d4a5954a2f7edd5e1", "version": "1.77.0", "port-version": 0 }, { "git-tree": "878a097bf8023343a8af384bb30e0eee437a6904", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9881d849d33fedde2628cd86c41a58731c18f3e7", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "501d5e8c95bc65e2981961705ffb3a9439a82215", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "9de156b86d42da0e2a6270f055348fd8775bf074", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "d72b195b9ce5fac70f1ec5827cbebc7d7c7fde31", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "398c45dad3e814b515c06ce8c8583ea4d3e8d8bf", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "a45a22438cdfd5338779a05ffecb022d738e7f96", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "aebf50464d8d22aa5f7c780587f2678026545712", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "93f6a8ec049f6cbd3f58bb9d724b6b8911ef0b1a", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b10f1ce4f70393804eb04ec64a8067f757d566c2", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "87ea566fd6f9fc801a7ae1dfb886d537ecffd00c", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-tuple.json ================================================ { "versions": [ { "git-tree": "7100b38f1042d44e77b6eaf06cf946fd3e6fc86f", "version": "1.90.0", "port-version": 1 }, { "git-tree": "8b599390044427141475f9b1c6fa06732c27e5df", "version": "1.90.0", "port-version": 0 }, { "git-tree": "4975ef963fa02d53b2fca5eb8936b32e4de2e9da", "version": "1.89.0", "port-version": 0 }, { "git-tree": "55ab535f246ac9b26b4a76d5182fc593914bd691", "version": "1.88.0", "port-version": 0 }, { "git-tree": "742499dcbd56ae28d11af26b2c563cc598732d83", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b04ebfe07fa6c45bf2e0dd35a9fec10add1b6ef9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "0f3d4dcd2e276bfcf1af7e3eaab6503d281e5407", "version": "1.85.0", "port-version": 1 }, { "git-tree": "fa6c63977155870de0165ffd7e2c1d921e1d9644", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a03e5b5e84f46eac669699ad918d9132e8c4c2ac", "version": "1.84.0", "port-version": 1 }, { "git-tree": "226ff3eec30fe4b68902e7bb3f36db6dc580faf6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a5a7d3cf0427278418ddc0e91a3858218535c8a9", "version": "1.83.0", "port-version": 0 }, { "git-tree": "005084a92857215f3e0db64c3a7a1d1d70c91850", "version": "1.82.0", "port-version": 2 }, { "git-tree": "c9173d5394c4b31fdf698b156b542c29031d03fe", "version": "1.82.0", "port-version": 1 }, { "git-tree": "54dbf60f65b0931002de7684e7755ae35d16eea4", "version": "1.82.0", "port-version": 0 }, { "git-tree": "dbde6147fcec0717164899b0964444188d38be89", "version": "1.81.0", "port-version": 2 }, { "git-tree": "f650e2a64dea195b24089c89356f37bf17aeb6be", "version": "1.81.0", "port-version": 1 }, { "git-tree": "5daafa51cf09e1291ff04ae48465ace1fd60149e", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d08e7b23a8644fefd924b2cd21af2c99b6ffa7e6", "version": "1.80.0", "port-version": 1 }, { "git-tree": "e4941b65ae10c7111efc790716e7ab44108718c0", "version": "1.80.0", "port-version": 0 }, { "git-tree": "c3b718eea1f62e7b4918b3c4f6a4be731d4085ce", "version": "1.79.0", "port-version": 0 }, { "git-tree": "da0a88c5630fa116b473e02aae6651199529649e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "35d10ab4f156848f6f08f8bc26e41b27638af55e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "8b10179f5ffe71f697610799b865c72d7be1dfb2", "version": "1.76.0", "port-version": 0 }, { "git-tree": "22e3d000a178a88992c430d8ae8a0244c7dea674", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "562f2fee1c2129626c5b8421174ff84736151973", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "bb5cae261bac33ab0ebb8c0b04101c62caf190a8", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "b3e1b01ffce6e367e4fed0a5538a8546abacb6b2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "64fc3b0ef2ba7aef6abb102614043d7a6cf19547", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "df5ed8963506ba03134775932cda4440cf77e2e2", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "9bfdc62df0b361a82b4c4a4de4b432f2cf294ef6", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "dda5e202cd4f2dc30b518b1ef81bb66a58940c7d", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "1caed0304a71e0e4e820c8922a7de56cdaba6b79", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "6d6bf89db13afc182b82cbbb666fa93fdaf574f5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-type-erasure.json ================================================ { "versions": [ { "git-tree": "9c268bfc564a47804144f836a81ba69f56b47ecf", "version": "1.90.0", "port-version": 1 }, { "git-tree": "7a192d2d377d21d887817e109613026abcf94c75", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ac7eb7b59197eb5c09c68290ce3b580569b47c09", "version": "1.89.0", "port-version": 0 }, { "git-tree": "835c59e3ae83ab2a8acd8a146616a72868cc576b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "317eca926033fef558acf33acf4faee6bf39f7ed", "version": "1.87.0", "port-version": 0 }, { "git-tree": "47ddf4b164e299f7a619be3621ecccdcbf737a8c", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6ea575222a40bb603eef76013245b4e9004ce1cd", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0d3ce5d0ae32ac34647f0f096b5e408e9e04b8b7", "version": "1.85.0", "port-version": 0 }, { "git-tree": "c82287a09c12722a2be497b0c60a870ad1e9b9e2", "version": "1.84.0", "port-version": 1 }, { "git-tree": "eaf1e9af3557cce341ffd8853e02c019f03dc7da", "version": "1.84.0", "port-version": 0 }, { "git-tree": "9897b32081b334c6519a7252247d7dd292414e5d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "8672547278454bfc8a842f788ed797c834ca050a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "abc972b6543f779324d60f5c619a205edda22b2b", "version": "1.82.0", "port-version": 1 }, { "git-tree": "89ca8e5140e7b6b31db688b4fb4819cf8256570f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "2db0ac9588dd25a7088c7b5967ebd1e479f235ac", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b4ce25ef5e0a527400d5314ef5fd36f287bd4dd3", "version": "1.81.0", "port-version": 1 }, { "git-tree": "cc313c5669378172a1e4480571ff66d7bd348017", "version": "1.81.0", "port-version": 0 }, { "git-tree": "1c2806659e6ec0ea290162c209f8f64c004b3a77", "version": "1.80.0", "port-version": 1 }, { "git-tree": "dabde40cb34f79fba07538d0dfe27e001fdd022d", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f5797832d5179682e09ba62f0f7cf25a58cbfe61", "version": "1.79.0", "port-version": 0 }, { "git-tree": "787c75c5f25da496fb26723589ed3ea5c2c73a49", "version": "1.78.0", "port-version": 0 }, { "git-tree": "d98f14bce468d5ac0e5fca0f61bd6c5eef911224", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b488a742d2f94e05da4f00a2fd3c9cb46fba13df", "version": "1.76.0", "port-version": 0 }, { "git-tree": "9daa807310b682ea2ed54c59d9428d3b2723c32f", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "49c43a8416a153e6c4e74961052a305d77b4ae1f", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c89bed9c69a1e46e0ce5a6eead498a7079790321", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "1508f27714e220d2ffb2a4616b144aff6b64d1aa", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1939a16f61b2975d16616b2639f3b7650f136235", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "1992a8c6b6aacba1501789d9e0a7ce7c03bce971", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "a652501ee6a0cf7af74edffab459507cde4e7b3a", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "fe070b82349f4038aef2518d7a25f7c4f82ec4dc", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "56ff420088d27eddc62baf6216f44081cddba66a", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "00048b24d2a7a56b66e903dc55ad08552d410020", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a83f188486e22d3339a1545a5ee8d683efce0db1", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "5b2b6fcc5a73c99cc1ea645aaa7c4423067db7fc", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-type-index.json ================================================ { "versions": [ { "git-tree": "a549e6af876dde241dc2eddf884f1b0af0519eac", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ebadbc6b7133a886d7994d8da6622d80b8a97410", "version": "1.90.0", "port-version": 0 }, { "git-tree": "eeb4d55443b956770203825a87a8db3a0b456c99", "version": "1.89.0", "port-version": 0 }, { "git-tree": "1c20e548a4ac12208597cbbb20df76f23ab62261", "version": "1.88.0", "port-version": 0 }, { "git-tree": "3257ddc01fe4336f808951f5623ef8130319c82a", "version": "1.87.0", "port-version": 0 }, { "git-tree": "bde43caf92370cdc6b55d296f0641e1b9a516885", "version": "1.86.0", "port-version": 0 }, { "git-tree": "6adc7c806c0465ba3d419938d7cea2b3c1c62a72", "version": "1.85.0", "port-version": 1 }, { "git-tree": "22c535bdcdd75c80dccb28caca98b6da9bf3b890", "version": "1.85.0", "port-version": 0 }, { "git-tree": "64fb00e20b9ebb60326785f86a5b2a80d6c4b680", "version": "1.84.0", "port-version": 1 }, { "git-tree": "2b9d415a252b453a95dac06c8f5d658e3f529bf2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "58d41ff7ca046c8997ddd3f6c8ab801291edd9c4", "version": "1.83.0", "port-version": 0 }, { "git-tree": "af9dcc786a5ca7717b4d2d04471b7ee12288080c", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d02bcbc9c4ee9a4b27e90ab03010bea7b6c70eb3", "version": "1.82.0", "port-version": 1 }, { "git-tree": "c2264baedf368a03a865ec3e1236a1e94c996b65", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f43797ae5b94d44803685ae038d0bab71c4a3250", "version": "1.81.0", "port-version": 2 }, { "git-tree": "c6eb78f795334efdf1d294b86eee25ab4f4a4cc7", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b793244b82b527743e9479feba13e6d1ed5f40c0", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d48eb1cefa16768fe1eaf570744b37a954f75a74", "version": "1.80.0", "port-version": 1 }, { "git-tree": "139ead6a2f009c871512ff2313970a7ced6ba19a", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b4e2eff6204ba68938a99059b23d3abbd2e1dc55", "version": "1.79.0", "port-version": 0 }, { "git-tree": "fac6a10bb329da6cd19cfde9534ef11b3edb8623", "version": "1.78.0", "port-version": 0 }, { "git-tree": "b8c5d86d75e307f04c4e5548f2ff57dccdc29e40", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2125b24468cfbf25aaf0c3f600cda9b6773ffb18", "version": "1.76.0", "port-version": 0 }, { "git-tree": "1ed3f10185cfa0140d6b5dd5e7be18b7b3b447c6", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "6b914d083750c72bb4c7d06fb7e7deef60143938", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "cb66a1ce3fa6b73c6cf579c4ef4ed522d044f614", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "3cc8b8f2c29b09a143a0a4457ea6506fab39d28f", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "cac4808e4b98fd347adb090e7ae708796bc45804", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "beef9158a1456247009dd8e0e652fd350dea8b13", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "0608ab262ba92443a7a2e28a3cf351e2a22206e2", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "37602b22e5d865cb5e06561fa7a4d1bb1f338de5", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "d0055c098723d5c4532037e495989f246be0e405", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "4cff8dc347bbd84314c1c583ff76f490b3e6c608", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-type-traits.json ================================================ { "versions": [ { "git-tree": "1820e59c3f5a4f12eee18b4acd98e1f4f8078b2c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "0ae8f3b987d04266709bbd9957969ef222124a40", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8c46d2bab6817bbbb8382efaed7aeb1ae8b15119", "version": "1.89.0", "port-version": 0 }, { "git-tree": "5c25a4ff2c1fd4d4eb993dfed7cba2b32fd020a6", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9d7ba43b84a0b63ead5148418f9557441060d248", "version": "1.87.0", "port-version": 0 }, { "git-tree": "fe39918134d7cdeec3dc248cd6075bc792039ce5", "version": "1.86.0", "port-version": 0 }, { "git-tree": "fd334eb6c15dd762232760cb740567c6a2ade780", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ebc7ae004450bc4a210e8acb1f713a15fc829935", "version": "1.85.0", "port-version": 0 }, { "git-tree": "d29b89e99156a05e0b61bfd94c88fb5837ff3f64", "version": "1.84.0", "port-version": 1 }, { "git-tree": "a4ddf58a08ee20266007e39a261fc556b5b6e0ce", "version": "1.84.0", "port-version": 0 }, { "git-tree": "6595fdcc50c1d1d5587ade48484a0b074ddb079b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "16673cfc230fda05b63868f9cbf21d0e0a206b53", "version": "1.82.0", "port-version": 2 }, { "git-tree": "34773fec432e120d3f2d9dd482461da7c36ef897", "version": "1.82.0", "port-version": 1 }, { "git-tree": "223d017c75c79909d143515a84ba95360b5e6ba1", "version": "1.82.0", "port-version": 0 }, { "git-tree": "4bb18781eb0901d50703978cb7f93329af8a0c0d", "version": "1.81.0", "port-version": 2 }, { "git-tree": "42832dd74ff70460051027c92bba7c08c3f7e26b", "version": "1.81.0", "port-version": 1 }, { "git-tree": "26f3eab82fab9301fa28985c0110809b8b68b3f2", "version": "1.81.0", "port-version": 0 }, { "git-tree": "06c7db2dbd9d4fe6a6d4b74b120e16ad6cb25b8e", "version": "1.80.0", "port-version": 1 }, { "git-tree": "64116e3dd1e586ab99b4f39786b73fc6bf433565", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7969a397a6c03205ec1c118834272183ff4201c7", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8ce0cad0c57f4acd5da2369894a0db64b918ac41", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7f108bb5313d004627d2b81b5e2a6d7298b091e9", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2feae16df79f9f3d24b98d407e542458706426c5", "version": "1.76.0", "port-version": 0 }, { "git-tree": "8829793f6c6c913257314caa317599f8d253a5ca", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "e1d488b4b26c28e7ea1e260c96848efa91440c61", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "96512f55a3d7511a8e3a18c450b5d0b9f4656137", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "5e44ec657660eccf4d3b2710b092dd238e1e7a2d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "3c704482bd51dd8bc367004549c17e9d3055b61b", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "8c895c6cb9fe88504b8b83cf8c4a20e08d50f31b", "version-string": "1.70.0-1", "port-version": 0 }, { "git-tree": "15ad64909825d185b509efb82e26f52506c948cc", "version-string": "1.69.0-1", "port-version": 0 }, { "git-tree": "a6c6cf3c6a45343bef732b4edf0f0c6f5202de3b", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "bcad128d5506265d5d986a3683e178cb2ec8c360", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "6c118f2ec5cf2ed118564e187d386d36e8a92213", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-typeof.json ================================================ { "versions": [ { "git-tree": "7049781217624a5d23e8a7fdbb3b9b762c575110", "version": "1.90.0", "port-version": 1 }, { "git-tree": "cf82f1511a02437a8aba0e16a3f440611c0d2560", "version": "1.90.0", "port-version": 0 }, { "git-tree": "bc97dedd1bd7d66c437b13b38786e182c54fc924", "version": "1.89.0", "port-version": 0 }, { "git-tree": "75c8940f03c4002bb502d869a77288d59081d026", "version": "1.88.0", "port-version": 0 }, { "git-tree": "c4ade6c1f9a40bdcbe45500476fe36fe79d14dc8", "version": "1.87.0", "port-version": 0 }, { "git-tree": "dbef6caf417e0c2ec880da9e9a6d4094a750e970", "version": "1.86.0", "port-version": 0 }, { "git-tree": "1f5378d3498322cbbfbfe18cdbbeb0ec8079aaeb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "94d6bbcbb519960482696b50301492c2e71a9d30", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7244107c17f3fb02e811dc2b66bf27ff492161e6", "version": "1.84.0", "port-version": 1 }, { "git-tree": "f5a00c4b05c0b35835446dd44ff7777fae86fe52", "version": "1.84.0", "port-version": 0 }, { "git-tree": "ec85052de49f1335b474cee0689971b9ad4df92c", "version": "1.83.0", "port-version": 0 }, { "git-tree": "3a15a938616612d49b404940a26fbf8f518816d8", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ab6e440573d5f3ac964c50b3efc24055500a772f", "version": "1.82.0", "port-version": 1 }, { "git-tree": "77380a21ac442dd476825ca01d1ace199d1631b7", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7b24cb9fc6e02e419870fc6c10d214c4ae0c0a41", "version": "1.81.0", "port-version": 2 }, { "git-tree": "6a266f325c337c526f2747c4e906e0f0c3757978", "version": "1.81.0", "port-version": 1 }, { "git-tree": "fe7e9d02b167233306569b853a29065f922fa2cd", "version": "1.81.0", "port-version": 0 }, { "git-tree": "c195f9b7d65f84db84ea3f27ab2179b22c60fe48", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7157d86a4332212ca5da2d3e4bcb980f59373c1f", "version": "1.80.0", "port-version": 0 }, { "git-tree": "81216888498f3c8f6563b991a1d601af139da128", "version": "1.79.0", "port-version": 0 }, { "git-tree": "478fadf37863e72ec547e1a7620da6a28cc85c7d", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7df16df37b9fe9d5e4184dfdf928030010522f51", "version": "1.77.0", "port-version": 0 }, { "git-tree": "6f493f75125a3d4c8b69fccc3c72ed6b868368c4", "version": "1.76.0", "port-version": 0 }, { "git-tree": "99523ccd2d55e2f3f04e1548a5e9ad899d482740", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "c977ae832df8c880d62cae1434b836f93d93360f", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5b74820e028b2f24e7da23740f5ca00a34fa1e10", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "a559d9f2f7b084a00669a37082bee77cb8e26619", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "165e014fee340d51facd6fa1018e181389977bb1", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "6cd58db8edd3c36da6fdcfba9f8c46cc6fa424be", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "247e15545701ce59d9a1261843bfd0a9073c6ea6", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "eeb05d075b53a93ea9b5f473311cedb7a19b7072", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "3c1941add0bae53c3883ed66bd68bc06653a9ce7", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "8c250c90ffc91633c9d349f845a1c2f1e35d6468", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-ublas.json ================================================ { "versions": [ { "git-tree": "549fe43cc5a3455dd684d7c2d4bbe57daaf3d031", "version": "1.90.0", "port-version": 1 }, { "git-tree": "641afca1d3da6112ecbfbefd1e57ed8e6f0ceb5e", "version": "1.90.0", "port-version": 0 }, { "git-tree": "959162fa2ee830a7d628988d519b802877b2213a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "c6db0ce4fce9ad23e8df1e4e86b2b3ad0821f6ff", "version": "1.88.0", "port-version": 0 }, { "git-tree": "d107eba2f00a7d17965dcdbe46520e1316c263b6", "version": "1.87.0", "port-version": 0 }, { "git-tree": "0811fc866487e2d7c7c217378de67cfccc60b354", "version": "1.86.0", "port-version": 0 }, { "git-tree": "17104106d46d4a94f3b84dcfc38a8bfdad24a612", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0487435419688fedb7dd983f9301e5a258919888", "version": "1.85.0", "port-version": 0 }, { "git-tree": "e8f4be0a0ec13d499d53ef97499e4efe90c35df4", "version": "1.84.0", "port-version": 1 }, { "git-tree": "55aefb0337e99e5d51c9c859aa73e19a8bb2dbf7", "version": "1.84.0", "port-version": 0 }, { "git-tree": "0a77eac23b724a17117bf6b25d8a40482d805b5f", "version": "1.83.0", "port-version": 0 }, { "git-tree": "08ca3e3e8708563241aa02fdb7d6c6e406ae30e6", "version": "1.82.0", "port-version": 3 }, { "git-tree": "c0dd4493fe63a58cd9fdec0d48b9855a09ecbdd2", "version": "1.82.0", "port-version": 2 }, { "git-tree": "48342bc4e28a5dea5e4e6ccb8cb0333b5feebfeb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b1652104f4dfa41d11e9238edeefd1330d6d216c", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f9548ffa375198ab22ef334a0d9d0c759d785831", "version": "1.81.0", "port-version": 2 }, { "git-tree": "69a2b3fce73836f799bc4b1230eee7da4cab859f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "2dda3f784a251a5cd47e28ae70baddfc7c8f4135", "version": "1.81.0", "port-version": 0 }, { "git-tree": "4c7cdeb18adddbbb7c307d97553370029099111a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "1fe638c91ec64ab61220e4ece208a9d70ad9557f", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7657da84dd6a03bc4130b2c3ff215f45a5ddd8c0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "4c6ffcc2498c1521634d070a99e02c695f069c2e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7261e769f15495294c4eed2d06a157979419b0a9", "version": "1.77.0", "port-version": 0 }, { "git-tree": "845a49ec34532fe2ba0d071e489eec10808499ab", "version": "1.76.0", "port-version": 0 }, { "git-tree": "c1e8379989f44bf779ee47f1b102bb450963799d", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "886844895cc3cc1bf3c0440d58c35ef833ec1fd6", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "a506df2b6ae04dd5d8d81c72c2aba96c432059c3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "f52e1b70ccf697ec2f1bd1b65e36c717d62e2f8e", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "a77604aa79c236a0b647ff00bb7fe6de9c4dd9da", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "daf720632883046e99dffe0405912bd2bf8ddd1c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c97c7bcf450fbb18d8697777d21d250ab90af0ee", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "4217a7a788ebb948dc97f0c5a40f9f811da55b29", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "00dca0edbebdf2225be728a8a7f4055455e187aa", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f9cbaf2dd9eea2815aa267762ba53ecdff47002a", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-uninstall.json ================================================ { "versions": [ { "git-tree": "afdfdd75ca8c87e3eded36c7177d208f853bdba6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4d63e55c397bfa608d8d28308ae8805e50ea2296", "version": "1.90.0", "port-version": 0 }, { "git-tree": "83ce7d42de32cacf540be39b74cfcb462ab034b8", "version": "1.89.0", "port-version": 0 }, { "git-tree": "3b2f9f82076f2d15124a4e449700848c25bcadcc", "version": "1.88.0", "port-version": 0 }, { "git-tree": "59deb8f474b417f62e4dea071edc08cfa61048f1", "version": "1.87.0", "port-version": 0 }, { "git-tree": "f7397719df120125cafecc8000deb3d2a0d5c7af", "version": "1.86.0", "port-version": 0 }, { "git-tree": "ac48829be60fd0ac2bd81b1774ae317c2d0d406e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "61f71073f29852425b317ad050b3ee54653f924b", "version": "1.85.0", "port-version": 0 }, { "git-tree": "9e18cb1c4106a6b478889dc0a2ee02dabe78436a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "6ed88ee3e093c9419fb4fcbdc17904d15d377129", "version": "1.84.0", "port-version": 0 }, { "git-tree": "1dfbff4a218e77e371ebc397f0573859136c7c92", "version": "1.83.0", "port-version": 0 }, { "git-tree": "dcca7487581acb01e55bddd3ec306ff543c24ce6", "version": "1.82.0", "port-version": 2 }, { "git-tree": "d96807810fa612b038f9268c8df545d421fda1a6", "version": "1.82.0", "port-version": 1 }, { "git-tree": "3651d7a858bd04f7bf933e71110de4b9a46e3df1", "version": "1.82.0", "port-version": 0 }, { "git-tree": "4caf44a6883820726e6d25b015769ec375758f81", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8ecf7838ad5665c4f46bdc7cadfd99a1f0327bca", "version": "1.81.0", "port-version": 1 }, { "git-tree": "79d0d98ddb8ecb9582ed4c7adc95fb88a25743ae", "version": "1.81.0", "port-version": 0 }, { "git-tree": "eb6551ecfc9d94c9bfe131d7bcdcec0a0b33f5f1", "version": "1.80.0", "port-version": 1 }, { "git-tree": "9eb27209522fff06b9aad5e4443312888cf680ce", "version": "1.80.0", "port-version": 0 }, { "git-tree": "e2d05f10364104d9b7de2383bcb105a1fd3fe975", "version": "1.79.0", "port-version": 0 }, { "git-tree": "996078abceb6009fb2841dd97edc5246e8bd38aa", "version": "1.78.0", "port-version": 0 }, { "git-tree": "1d472d1b44489c230a741cb519e893732f5d00ac", "version": "1.77.0", "port-version": 0 }, { "git-tree": "092a563d81779e6bfb0ee656bc4c8f01f57c7666", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "08933bad27b6d41caef0940c31e2069ecb6a079c", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "bbd9f511923b04506c7bdedc3b1b89eff6939075", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "fe74b49c39386f4171827ee18acab23afe6570a6", "version-string": "1.73.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-units.json ================================================ { "versions": [ { "git-tree": "7fb118d761aa2578aeb36c31967a68939de978a5", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c7c5006232f43ffc7e79e537607a77f94af225f6", "version": "1.90.0", "port-version": 0 }, { "git-tree": "e14876506dda56491c9e9b54edb37f2bfb10d10d", "version": "1.89.0", "port-version": 0 }, { "git-tree": "517d32ac4dcac542b0d156cc8953eb5f88bcec8f", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b52f705a7474cde1052e2c92835292a32199cae5", "version": "1.87.0", "port-version": 0 }, { "git-tree": "b2a4e000c13070792a8a308283341f3682236afb", "version": "1.86.0", "port-version": 0 }, { "git-tree": "da02b2bd6798240539d44005e790e92d21df4feb", "version": "1.85.0", "port-version": 1 }, { "git-tree": "71411d91eb1080a289eb303680ef2ae6bc5914a9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a005d75e0552a6b318b4e8608791cde3245689f0", "version": "1.84.0", "port-version": 1 }, { "git-tree": "9088c5fd6a2540312f4236ad82367122d5faead3", "version": "1.84.0", "port-version": 0 }, { "git-tree": "c9dffd7cd1fdc999f543b7d140f119f962ae076c", "version": "1.83.0", "port-version": 0 }, { "git-tree": "5a76707af8205f16c15f69fa930aa39e7763472d", "version": "1.82.0", "port-version": 2 }, { "git-tree": "60fbfc84c6785572c1385528afb5616429828138", "version": "1.82.0", "port-version": 1 }, { "git-tree": "b15188b886cec9daf54c334fa401d68b56146138", "version": "1.82.0", "port-version": 0 }, { "git-tree": "505fb723fea2df6581043bf1d90e0628a025321e", "version": "1.81.0", "port-version": 2 }, { "git-tree": "5268fcb33d5cf6642658fa9bc2b7afd77a933d76", "version": "1.81.0", "port-version": 1 }, { "git-tree": "87c0f9d33c26858988a80030fb3a120f1e182282", "version": "1.81.0", "port-version": 0 }, { "git-tree": "deb1621e5cb52697de1be40a555e5415263743dc", "version": "1.80.0", "port-version": 1 }, { "git-tree": "94d24c25122f4aee516ae8df34e60450dc7a9dad", "version": "1.80.0", "port-version": 0 }, { "git-tree": "33f1a2b53e7c36f387866d1e84e0dd2aa1b21c4d", "version": "1.79.0", "port-version": 0 }, { "git-tree": "30bc337bdcbfbfb7339e8a4dd2169df60fbae249", "version": "1.78.0", "port-version": 0 }, { "git-tree": "696b0e8e934400879bf390ad024b231a3b32fa4c", "version": "1.77.0", "port-version": 0 }, { "git-tree": "fce0be543d0eabb6160e3294f89c10165623e53f", "version": "1.76.0", "port-version": 0 }, { "git-tree": "2ffcf405ef8f3b0cf735c47a21bd7082ccc17779", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b6f52a2069891a08e69e565dd1b77ed50dc8c153", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "01ffa3e6852709e3a68d9d2a08e8619d4a3dd761", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "16363ec5d1af338befbe98cca09cc3b4d0b016bc", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "81a6f440f2793649c0b0efd93a6fe078e3b79c4f", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "442302b3c2255bc330fafe8c637664568714b79c", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "92c1cf9aa29e5b13904de1c303ce65e81944ed7b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "c201d317f21285c8e7995056fff3276627209cb8", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "b10117f248194e7fa753b75ca1947eea900b0a82", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f31078638fedbb265dfecc5ff2a57e22c654c3d5", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-unordered.json ================================================ { "versions": [ { "git-tree": "1d9b670251ed24b4bbca619ba8d53d94abef6adf", "version": "1.90.0", "port-version": 1 }, { "git-tree": "bdbdcca8358aa8aa7b64f92cca745e66e5315c37", "version": "1.90.0", "port-version": 0 }, { "git-tree": "248854482d2a457a46060b8f77d80a8242e7c02a", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0c41c1a7f1cbf9fa1c6f2c88050fc5a4100fc0de", "version": "1.88.0", "port-version": 0 }, { "git-tree": "6409ee49a623fa9b3f4cc6b1e6cec7c29dc29d54", "version": "1.87.0", "port-version": 1 }, { "git-tree": "551ecc5eced9c7be9fc7214868bf5cc0bddd4730", "version": "1.87.0", "port-version": 0 }, { "git-tree": "3016f6768a087d2f7a5629edae86d00c67191f1f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "f80fe77595a138041cb2dfa3af3c18cfa1edc24e", "version": "1.85.0", "port-version": 2 }, { "git-tree": "b8b6dcf89c37e896bb5a624695e71a12198ab90e", "version": "1.85.0", "port-version": 1 }, { "git-tree": "46f5ca53ab03102c5ee470de738a5a3404c75235", "version": "1.85.0", "port-version": 0 }, { "git-tree": "6702bba67fe3f89326128f4bb17e06c76c7a436a", "version": "1.84.0", "port-version": 1 }, { "git-tree": "77a20edb9c6e3efec862eb37310f410a95544a30", "version": "1.84.0", "port-version": 0 }, { "git-tree": "d78bed13cd960d7723ac5b0c82d2223c321ee0a9", "version": "1.83.0", "port-version": 0 }, { "git-tree": "53a764549e3664798aad8a1cb9bc3e74669c7f6a", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ee2a3d19df6c91036cb772b4747bc7244307cda1", "version": "1.82.0", "port-version": 1 }, { "git-tree": "df88891653e7f24ffb101bc34513396b20cb4fc5", "version": "1.82.0", "port-version": 0 }, { "git-tree": "c37e40c50347d534ab95ba2355c72112821490f6", "version": "1.81.0", "port-version": 2 }, { "git-tree": "456c16bf65a94caab221b61647e3946beb4c7237", "version": "1.81.0", "port-version": 1 }, { "git-tree": "0e28c124be35d098dead6adcaf3246cb7c0b4908", "version": "1.81.0", "port-version": 0 }, { "git-tree": "bf2c66f63c1859c8a271beb4b09b56d2e28a3ce0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "a64980c42d17c231e1164e6dcd7f55361cf6bbca", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b73d98ab77d4de1a3e4f12bdd84869dfc3adedc0", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c55ee280fedefd69dba819a4d768d5a5e132f9b9", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e0e056b82651533817c1ca6dce6fb6239ccdcdbb", "version": "1.77.0", "port-version": 0 }, { "git-tree": "f950f2d90f50ec8d7982801ae8df77ab848285a6", "version": "1.76.0", "port-version": 0 }, { "git-tree": "28c6f9fc668fed0a0f193cda0a99619e8beeb398", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "417509630e50c5acc581f6de0de0d9df2ddbd039", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "44f800096cd2cd980864cf0930ab3ac8fb802ae6", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "c4f9b65d3387c7cd9a3418b7c37a1951ea3414cd", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "ee153a1e836ce0d5d5fcc4e1c263ad821cb49f66", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "2dc37fc7dcc2d6abb9fb3c7cf0ff792df1aa6d75", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "26a98546a05a6d47badc4ee4353cd4e9a3b657c1", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "302904425988af035dae121a08e825fefd300ce8", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c7d9480c3a3cc8c5ce261b7b000f5414598bb7be", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "3251fef6f3ed1e0e7d0ef3de8d2bfddcf8aacda0", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-url.json ================================================ { "versions": [ { "git-tree": "e7928aedcc90822c145b2ddba47b3dc5367e1e81", "version": "1.90.0", "port-version": 1 }, { "git-tree": "6ed0acfbc7cd287145502de18d99d338b722e2f3", "version": "1.90.0", "port-version": 0 }, { "git-tree": "ac98d69d68ee07f3a33108a6ea503e6fa385a0e6", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f14f51d7a6af47b42b31114d4e7680a7d834f13b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "612ad13ff444827e4e86c97e9cb5dc5beeb161b4", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4a95f5be61df87816ca4f481ab7634f4b337c0b9", "version": "1.86.0", "port-version": 0 }, { "git-tree": "59d34359192b2a569c3ee9161fff6c08cd87c25d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "9a3fd24e5250e3c2447fbd0d693007bf796e96ce", "version": "1.85.0", "port-version": 0 }, { "git-tree": "73cb6ead7317a682b8fa4d1b1455d7d8bc4bbb4b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0dc7321b2d28cd349ace799644efd4f471e8ce03", "version": "1.84.0", "port-version": 0 }, { "git-tree": "2cfc398b72ab925f876eb071d9577cbf9a84f33d", "version": "1.83.0", "port-version": 0 }, { "git-tree": "0bb3a49bd4739d46d1b09bf657a172bdd91deca9", "version": "1.82.0", "port-version": 2 }, { "git-tree": "5b6110be396379503f9305de47e76d364019b6c6", "version": "1.82.0", "port-version": 1 }, { "git-tree": "ab148b1f9a35d70c6e647644207c14b2d1e9c472", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f42a5aeebeb06f6fdb239e0913e2510ba4fab98d", "version": "1.81.0", "port-version": 2 }, { "git-tree": "02a3d9b7b6cc4ec43ca68ca0eea469b53c25924c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f65109f9e371fea72a1a562f03180972cdfe9e6a", "version": "1.81.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-utility.json ================================================ { "versions": [ { "git-tree": "0ee9ffd5bdcd704be2187d1fdbdbb66bc23bd1f2", "version": "1.90.0", "port-version": 1 }, { "git-tree": "8cc76617465b070dec364396208fc25a368070c4", "version": "1.90.0", "port-version": 0 }, { "git-tree": "13afb12031051f9b937985deade5bbeb7c5cc256", "version": "1.89.0", "port-version": 0 }, { "git-tree": "9600bd33e0b671744e96c3d032170cf4ee1d1be5", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0c22f845af30943a807b8bf749b4f88ee472a958", "version": "1.87.0", "port-version": 0 }, { "git-tree": "ee6600d9dea03593efcc67d0862d7d14807bd14d", "version": "1.86.0", "port-version": 0 }, { "git-tree": "0421ccb31f254874d8f0814bb2266c13255c4822", "version": "1.85.0", "port-version": 1 }, { "git-tree": "a40330e797feb2590aac114545cc70cf636bc5e3", "version": "1.85.0", "port-version": 0 }, { "git-tree": "24ae0368f935dd71efb00fab653059af1301c904", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0ea45d787be2fc247a434638a832b85acd3c5e3b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "175e91f86d24ff49330e7f5f95db441ceb85886e", "version": "1.83.0", "port-version": 0 }, { "git-tree": "353c3edd45cc926548492197f73164d5831728f0", "version": "1.82.0", "port-version": 2 }, { "git-tree": "b94486558c58f29bb5165d952196d448719caae5", "version": "1.82.0", "port-version": 1 }, { "git-tree": "6fc53182947ed5525e426f934b440f22d4f04327", "version": "1.82.0", "port-version": 0 }, { "git-tree": "88534910a9049a40b8d8752913f69dae3cbec37c", "version": "1.81.0", "port-version": 2 }, { "git-tree": "d8a38ff7f89b8689ab80876e3a9ad2f1b1a288a8", "version": "1.81.0", "port-version": 1 }, { "git-tree": "a3d7cd34ade55ea69000d0c127c0cdbb57990774", "version": "1.81.0", "port-version": 0 }, { "git-tree": "85e74c765fe5aa059a93dc20c29626a7533054c8", "version": "1.80.0", "port-version": 1 }, { "git-tree": "9544b25d2474879b1dc04879bf6d48ac20b8ae1d", "version": "1.80.0", "port-version": 0 }, { "git-tree": "8eb91c7a3ad14393219ba020d3d26c39a325c626", "version": "1.79.0", "port-version": 0 }, { "git-tree": "4e39c1737260328064c10b743aba90788efc467a", "version": "1.78.0", "port-version": 0 }, { "git-tree": "e3589215d60cac29105fb361ef70e6d8befb8f94", "version": "1.77.0", "port-version": 0 }, { "git-tree": "aa3e587e5d4f80c8aa934cde043ac5940adaed55", "version": "1.76.0", "port-version": 0 }, { "git-tree": "47572946bf6a63c731b9c4142eecb8bef3d3b270", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "ccd0b9f9a2038cb05ab5d1f0191e8339835acdcb", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "3a6fd97dea7b338282794863c9f12a00a19bc998", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "7d721b2458d5d595ac341eb54883274f38a4b8c2", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "3c4b288886b3c768a877e7120d8be3de70f132a5", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "0fa784ada078c94136a617eee6658dff2d54783a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "5cf5376f161c7c7cab3fd04c8f7788e18a15a29b", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "7dcf0bbcfe96352c9b71596652d84b89ce2dd003", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8b440873324bfda9976d126c2e859e95517aa8b5", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "7ff3565c61004bd559870fe73529c640d2b37dd0", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-uuid.json ================================================ { "versions": [ { "git-tree": "bb57363929104844e406e567595466a1267b2868", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c5907c4efbf26d8290e9425e86d3c7c5e9b22339", "version": "1.90.0", "port-version": 0 }, { "git-tree": "c37014b404fc3e75392356d96d8dbffacc65b332", "version": "1.89.0", "port-version": 0 }, { "git-tree": "f6145655e6d7071e9a389091d25cfa887d4275a8", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b3512414a6a77a1ad6114cd34dca4efa77f88171", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8eeba4516fc5a0010b40ac15ef53c1433820937b", "version": "1.86.0", "port-version": 0 }, { "git-tree": "22aaa6c0f9aac2f4fec05c6d47518100a7325660", "version": "1.85.0", "port-version": 1 }, { "git-tree": "15e9a95d3a85266dd1f6d9ea6aa767ed6fa12a24", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0eb5fa810c7af6d6c12a8396d553d790e0cde932", "version": "1.84.0", "port-version": 1 }, { "git-tree": "1dd155b365ce1df4bb524d11672c4ad2b3b2b43c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "f87e5dc08c5466a56e32d055878d39dbdbdc18d4", "version": "1.83.0", "port-version": 0 }, { "git-tree": "d98133d8840363483b9f34baeec1b32696bbbd8b", "version": "1.82.0", "port-version": 2 }, { "git-tree": "718fe77c580850e2dd881ff115ffb0f3d8612774", "version": "1.82.0", "port-version": 1 }, { "git-tree": "db382885cfe159def0504877ac283b57b7efbf8f", "version": "1.82.0", "port-version": 0 }, { "git-tree": "e9af468276d059ca478a6d42f3d0b343a749443f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "e22a0d5ab3284c660977db0fd6321243e44b101a", "version": "1.81.0", "port-version": 1 }, { "git-tree": "abce15e70794ec22b2167b0e29be78bc8171f727", "version": "1.81.0", "port-version": 0 }, { "git-tree": "d5f37dcea4cd579491232822504725da49a25f66", "version": "1.80.0", "port-version": 1 }, { "git-tree": "346b3215925506cde0a4d8f2558434f812572094", "version": "1.80.0", "port-version": 0 }, { "git-tree": "dbf4e64381a3c6279ad5f91a7c64c8f5ca9ef145", "version": "1.79.0", "port-version": 0 }, { "git-tree": "19c834dc170873080e1c6308233fd9041ae42cce", "version": "1.78.0", "port-version": 0 }, { "git-tree": "ce741d3c6c5770db02da8abb268bdd0b2cd0519b", "version": "1.77.0", "port-version": 0 }, { "git-tree": "5da2f125967693081c7afcf81a327fb6b63343f0", "version": "1.76.0", "port-version": 0 }, { "git-tree": "6fdc41ce442e95260c89dbb925edf9de8fe69fa4", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "0189eaeb3291115448a4489a963573d1699ea3b3", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "ab93b56cbe60c45a9b104c2487ca21fa3c732fbe", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "a72c1523545fd9f52968a0640d6e70c3007a90d3", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "f9776dd0dfefa4566a2ac8943a25ecb0f62fed76", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "2180a32f9ec248bf35d5465ae58885da9ac73cc8", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "485ce09ae5b285a310bbfcd54e0e7012f73cdf1f", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "bcb1f96c361a0f0fae24187a5b7f6cd8cc305156", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "4bbcc8d7612deb3405ce918da6e1695cdf265ffa", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "a7f7f5f4406f0aa8ab4f3298688e35e7ace80a75", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-variant.json ================================================ { "versions": [ { "git-tree": "fb25d533713136047882278550fd90dd561968e6", "version": "1.90.0", "port-version": 1 }, { "git-tree": "01890af6ddcb1b205856c591b815f58f856ae007", "version": "1.90.0", "port-version": 0 }, { "git-tree": "449f1126f49d4f9f52e0b950c926a0150ffc5dcf", "version": "1.89.0", "port-version": 0 }, { "git-tree": "ce04d4a9d355c53b773d0f510cf69a932ba6eb63", "version": "1.88.0", "port-version": 0 }, { "git-tree": "0c1f7be40e58f90d88ce60f3a61221d11cf5f791", "version": "1.87.0", "port-version": 0 }, { "git-tree": "f0fae0ca64fdd1cfa7308300888650c2215efea5", "version": "1.86.0", "port-version": 0 }, { "git-tree": "479cb9754b33ed6005f55373d2b5364c2ad7b377", "version": "1.85.0", "port-version": 1 }, { "git-tree": "0fc759f3ec67e2f3f31302d470bd469c5fe0b062", "version": "1.85.0", "port-version": 0 }, { "git-tree": "4bb13700800f1bdc8f0e2aa3e51f2f2dd3bbea81", "version": "1.84.0", "port-version": 1 }, { "git-tree": "0fae6f2ad84c37a644b0f2902f653e16b26e65f6", "version": "1.84.0", "port-version": 0 }, { "git-tree": "60ca10585ea590b82692a0f715cfcc596d4799db", "version": "1.83.0", "port-version": 0 }, { "git-tree": "7951625567bf2413827f614a1ee917035a5e59ec", "version": "1.82.0", "port-version": 2 }, { "git-tree": "8f71e0d63ff1504559355737dba1f2ef2452d557", "version": "1.82.0", "port-version": 1 }, { "git-tree": "7b85b37781c02dbccca8b62035a9f40e18df6af3", "version": "1.82.0", "port-version": 0 }, { "git-tree": "13d77a8e8902136d832ae58e9ae4373366ee2fd4", "version": "1.81.0", "port-version": 2 }, { "git-tree": "672df51c76d78fd2c053e54c917eb768cb51269c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "c9e572f254693733f414fe4eb54ba7079393ec40", "version": "1.81.0", "port-version": 0 }, { "git-tree": "0c54a1945bc717ef69676421820eb5bf6b503ca9", "version": "1.80.0", "port-version": 1 }, { "git-tree": "052552e2ffe5c387e6dfd6800509379143747b93", "version": "1.80.0", "port-version": 0 }, { "git-tree": "33b3da200705df22017f639acdc1e2eade79606e", "version": "1.79.0", "port-version": 0 }, { "git-tree": "a2196d2cb8c61db4cdd6285170589e079c1ff3bb", "version": "1.78.0", "port-version": 0 }, { "git-tree": "63d66b780f8fb2e1b7c1365fc54b23795b09279c", "version": "1.77.0", "port-version": 0 }, { "git-tree": "cc3ce58ddedfd3cf1d23a75154f3939a1f7604bb", "version": "1.76.0", "port-version": 0 }, { "git-tree": "3ecbd86059d27b3f63278089ffe13cf974f11926", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "20a957c6b26ab6e198703dbba3798e0284512c86", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "88c6eef9028f80ea6e91909d11e9165710d36783", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "87357492dfbd9319f5a3509a8a5e590738f166b6", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "c9924241bf6b0e8593c7e221d1feca0d8af71a88", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "5de8f950c1497eeb8c8357d385bad992b145c21e", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "b0afb2236747e7738303dc64697ddbbee116be62", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "3402583d5397ad2674fe6dfa58268ac904d8ded9", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "66a8424b73a3f8254eb75a4c89f4ee31f5af64de", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "fa1b9542247c1b7883eba711d08fef6f2eef7db4", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-variant2.json ================================================ { "versions": [ { "git-tree": "66abf90331991c40b311f1141f6aef414e619e9b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "57e5f7603adaa37c87731754ce00e97004187da8", "version": "1.90.0", "port-version": 0 }, { "git-tree": "8433fae25d9ccbaa40dc442c750eec2ed6c0cabe", "version": "1.89.0", "port-version": 0 }, { "git-tree": "caf09c0bd44b9d3a5d2c3b17762675acaf0baac0", "version": "1.88.0", "port-version": 0 }, { "git-tree": "b4287c93efea644fe67c2304befa231cbc59025c", "version": "1.87.0", "port-version": 0 }, { "git-tree": "da8c7998e31bf676c2efbce08f4e7cb41066dfe2", "version": "1.86.0", "port-version": 0 }, { "git-tree": "d49441a314b22f026fb4a4708e4813e328996507", "version": "1.85.0", "port-version": 2 }, { "git-tree": "9f85ec7b59604f9d5b1945cac76e12b5888e798f", "version": "1.85.0", "port-version": 1 }, { "git-tree": "71aeea8a9326c7b978940c83970790090ddcf8f9", "version": "1.85.0", "port-version": 0 }, { "git-tree": "0e7ba438cd3f9eaba42ca1bc73cbd93e2a1507b5", "version": "1.84.0", "port-version": 1 }, { "git-tree": "90849fda39c8a2201b80eac6b04dc32ab6ae2c73", "version": "1.84.0", "port-version": 0 }, { "git-tree": "a249f8469b4c3ccb2aee3ece628d69a71d54b35f", "version": "1.83.0", "port-version": 0 }, { "git-tree": "dd3e6bcf37179efe2425ffb104be151a9f1133f8", "version": "1.82.0", "port-version": 2 }, { "git-tree": "3acfc977da209b860fd7cf1365180af919be0eeb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "e5d41ae488efffaadaffffc5a1d0b122e7bb3f2e", "version": "1.82.0", "port-version": 0 }, { "git-tree": "5c84dc87fee7da432b626fca25612d0a05604eb5", "version": "1.81.0", "port-version": 2 }, { "git-tree": "8e9ebae6dd88e79f3a589b890bcc89910f8ea390", "version": "1.81.0", "port-version": 1 }, { "git-tree": "58b2826cbd2ab38e6b21283affae45fe500382e6", "version": "1.81.0", "port-version": 0 }, { "git-tree": "46508a1c16f583aef59468ec4ca9dd51fbe01c66", "version": "1.80.0", "port-version": 1 }, { "git-tree": "0bc906a591673c127a85b38092dac0ab850931e5", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b9af9e4791e65b001bbfb107eeecf819369a06b3", "version": "1.79.0", "port-version": 0 }, { "git-tree": "30915b5f5005d9b166f4349f493b4f7314d84c17", "version": "1.78.0", "port-version": 0 }, { "git-tree": "7cc13c2fc5f9f303b76d9fc39da52e198bd6a998", "version": "1.77.0", "port-version": 0 }, { "git-tree": "e3a2b15165133dd1a0ab0c5477e521e25ad02a31", "version": "1.76.0", "port-version": 0 }, { "git-tree": "fe84b0a24b896d88677494ee69347a7501746002", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "6db0d72abbf8ed888d15c6f76204b4832c2243aa", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "9520cf21a0bc2b52b316acbf141f1c1a1bbca3c3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "96dd9caa0e1c42029b18c7ea4b5122a96d167443", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "fca12216c8b22e1e91d9d527440a0ca2b630c7ee", "version-string": "1.71.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-vcpkg-helpers.json ================================================ { "versions": [ { "git-tree": "5ec9b3e713c09e2827e07c9784676bad6cc9cc08", "version": "1.84.0", "port-version": 0 }, { "git-tree": "18a50fedd4344db5ce1f82546be1889215381f78", "version": "1.83.0", "port-version": 0 }, { "git-tree": "9a0f2ba2f59ce1040abe835b1e5adcd0a6dbc8af", "version": "1.82.0", "port-version": 2 }, { "git-tree": "f99477ea8dcfb463d2f0a2cce3c60914c2e5adb4", "version": "1.82.0", "port-version": 1 }, { "git-tree": "16b00921be68c4108060687df8a4ded18b7f9b29", "version": "1.82.0", "port-version": 0 }, { "git-tree": "2aa63aed3fe5106f44a56b33d8754d045358f662", "version": "1.81.0", "port-version": 3 }, { "git-tree": "e695c126a81e356d9ce78f57c08ba1f2311f5d8f", "version": "1.81.0", "port-version": 2 }, { "git-tree": "9a92c9cc61d9cb949caea1880309fcb3d1d79a7c", "version": "1.81.0", "port-version": 1 }, { "git-tree": "b753df924076c5013c5fd5298a05995bc2fd5ce9", "version": "1.81.0", "port-version": 0 }, { "git-tree": "5243d77112bcebbfbe67c57a96e0077eb0921a4a", "version": "1.80.0", "port-version": 1 }, { "git-tree": "244bfc6425dfb6e1c0c8b556f6ab8786e394c246", "version": "1.80.0", "port-version": 0 }, { "git-tree": "0e96a2cb3400bcafd55070d18bdcab64808ada01", "version": "1.79.0", "port-version": 0 }, { "git-tree": "2b601d13ad505473bac3d555d9e543d981c46565", "version": "1.78.0", "port-version": 1 }, { "git-tree": "b8003935ceb891a870f1bbef0ffd18ef4266c6f7", "version": "1.78.0", "port-version": 0 }, { "git-tree": "f0b625fd73edd33c92f70727a4cf068d0268379e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "2a21e5ab45d1ce41c185faf85dff0670ea6def1d", "version-string": "7", "port-version": 2 }, { "git-tree": "749173195871ff15190b29ea87cabef8ca064501", "version-string": "7", "port-version": 1 }, { "git-tree": "a1648c6c2074328746d742e28e7bdd9788e35313", "version-string": "7", "port-version": 0 }, { "git-tree": "471191263d5fbb921cda78c41293d5f64c9ff59d", "version-string": "6", "port-version": 0 }, { "git-tree": "fc106316082f957faedf68cc5d5901fba93680da", "version-string": "5", "port-version": 0 }, { "git-tree": "4b2061cc827814bccbb3c79f5f297d772ba2fafa", "version-string": "4", "port-version": 0 }, { "git-tree": "f1707816ad9165ffff9f2e25f40e2357367638ac", "version-string": "3", "port-version": 0 }, { "git-tree": "1f3772e4f83dd9854008667b64df572f04aa64af", "version-string": "2", "port-version": 0 }, { "git-tree": "d27cc122c289092fb50d06554a494a3b2d9f8f7c", "version-string": "1", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-vmd.json ================================================ { "versions": [ { "git-tree": "3b538bcf522506341240e5578f75ac35622fd9c3", "version": "1.90.0", "port-version": 1 }, { "git-tree": "ff59eb78b51064b17bec3300ea463eaa474badd1", "version": "1.90.0", "port-version": 0 }, { "git-tree": "393eefca67daf145ca44381cf359273ac6f17c50", "version": "1.89.0", "port-version": 0 }, { "git-tree": "fef7676c815e0921d02537443410ca85201cef9b", "version": "1.88.0", "port-version": 0 }, { "git-tree": "cb0b8eb6360d10592b114bc18f1ad3d4d361e612", "version": "1.87.0", "port-version": 0 }, { "git-tree": "4fdc2f6245ae9b2d8fd0dbae750a9e7142a11b8f", "version": "1.86.0", "port-version": 0 }, { "git-tree": "336fe76b8964d5c5976085663cf2e4397101cf6d", "version": "1.85.0", "port-version": 1 }, { "git-tree": "3481ebf929fc736b0806a2d3bfa633833b84e994", "version": "1.85.0", "port-version": 0 }, { "git-tree": "a483540a7cba2d137a7ca0dd5fc9bd23df8dbcfe", "version": "1.84.0", "port-version": 1 }, { "git-tree": "908151c9b7afd64cbaebd7d88d6121de0be81b7b", "version": "1.84.0", "port-version": 0 }, { "git-tree": "eaa0b491a87169b97213b923582836a9d3cd88ed", "version": "1.83.0", "port-version": 0 }, { "git-tree": "01fa69ff11a1e1e086b621a92ca334d99483a040", "version": "1.82.0", "port-version": 2 }, { "git-tree": "29976ffbb57716e6bfdf06b84e9958fd890a55c0", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d31a0367a6f1c2540f682fa1636fab7486cead6a", "version": "1.82.0", "port-version": 0 }, { "git-tree": "2d02fada2420d5210e54536cbc6b6bc865eec00b", "version": "1.81.0", "port-version": 2 }, { "git-tree": "4c54e4893420699cb2b8e3ec71d88374a76c56ec", "version": "1.81.0", "port-version": 1 }, { "git-tree": "98a1b6ca892cc7fa42c86307898f1a0209e1cb58", "version": "1.81.0", "port-version": 0 }, { "git-tree": "2325791b07ed7cbaf2252ff61a2afd7e1e38f0dd", "version": "1.80.0", "port-version": 1 }, { "git-tree": "7f1ce668d0b408886328f3602b4ba2dcdc6e0f34", "version": "1.80.0", "port-version": 0 }, { "git-tree": "5d88c4a6cefe62b5d05e9fed932188a7049fe991", "version": "1.79.0", "port-version": 0 }, { "git-tree": "d89558e11194fd019488c8e4550bc8b7debb38d4", "version": "1.78.0", "port-version": 0 }, { "git-tree": "65746c8cdad55d1703218a4e1eeaedd8a8cf3641", "version": "1.77.0", "port-version": 0 }, { "git-tree": "b2e44500c55aa436e9d239130203e1953f4d713c", "version": "1.76.0", "port-version": 0 }, { "git-tree": "68de048561ba7a30f2cbba3c472c19cae63230e4", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "4f8dfa7b7636393a50ee0a988abbb24da3660876", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "726e48378ecafbf3937950332718e327b72755b5", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "994385bdae4fd4832a3f6911bad9dadb5bcafeb4", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "6c5629caf9f90150e48fd3793a0cf93689b3b317", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "8b8fc1dd2f03e6d8712434f4b936428b11679407", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "5db94c580dd2db739326288a9fa09ed25e24d660", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e33b9227b844afe29223e27e783c303ce77ce49a", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a4ed9599dd8c8c8a20010ee32912d50a701b9de1", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "0cb6162a8f1f001d804cd1d6d0cebec607a12a36", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-wave.json ================================================ { "versions": [ { "git-tree": "c75d1965b479bfbc5dc76fcbc2cecfd5abb1dc7b", "version": "1.90.0", "port-version": 1 }, { "git-tree": "f5e8ee9c29b2d6710a62d7bc8954367ca3742ad8", "version": "1.90.0", "port-version": 0 }, { "git-tree": "96a5f8467c525ca41c53bf8bb62c405b50c80106", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0d0c9daaee29166983f5c4517fb8ef10f3287417", "version": "1.88.0", "port-version": 0 }, { "git-tree": "ef99821464c6a16e6f4b3d6d9132d52acfc49e2b", "version": "1.87.0", "port-version": 0 }, { "git-tree": "eb6baa19823be746fde24fee3bf57d092787750a", "version": "1.86.0", "port-version": 0 }, { "git-tree": "a9faed2db21c3608527c509b0dd7ab63f92303ff", "version": "1.85.0", "port-version": 2 }, { "git-tree": "a03b7c8698c81ecf5abfbc4686630de2a070ddc1", "version": "1.85.0", "port-version": 1 }, { "git-tree": "4c9b0f0fd65bcc970861d316bf15518380c3034a", "version": "1.85.0", "port-version": 0 }, { "git-tree": "7db4d1f3ac59d69ad2caf2190bf4d33ebf1ebfae", "version": "1.84.0", "port-version": 1 }, { "git-tree": "1ddcecc1cbfc5d699bbb99eb75577b237d070227", "version": "1.84.0", "port-version": 0 }, { "git-tree": "298ef29ed61665419dfb1f05e4823f63086afb14", "version": "1.83.0", "port-version": 0 }, { "git-tree": "c04f5117190e977f1a7a7067ce483ae581dcf111", "version": "1.82.0", "port-version": 2 }, { "git-tree": "26703fa9be9c0ca33ead77b9430a714bd672a523", "version": "1.82.0", "port-version": 1 }, { "git-tree": "cf1f8eb1ffd37f2abf4a9c8dc6199db7037c1825", "version": "1.82.0", "port-version": 0 }, { "git-tree": "f6aef641dfdf7f20ec1dbcd1280a260391b255ee", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b0e440652f27557548f12878cc91e79f309ef1ce", "version": "1.81.0", "port-version": 1 }, { "git-tree": "f2335ccca2582f1c060d8fcab59b72e9bc337f5a", "version": "1.81.0", "port-version": 0 }, { "git-tree": "1e7a7b136b4f7ec5badd9969bca100fa4bede6b5", "version": "1.80.0", "port-version": 1 }, { "git-tree": "3b3867b5b587bc385e9c185e669651610af7ee0e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "d8db04f2186df7eacfe00e02666510ba3f750753", "version": "1.79.0", "port-version": 0 }, { "git-tree": "fbf126b4e9405233ffd54018c18cf84895f59f29", "version": "1.78.0", "port-version": 0 }, { "git-tree": "cd8b4e8a20d59332f25b012c8379b8847b98524f", "version": "1.77.0", "port-version": 0 }, { "git-tree": "0b25e696df99e6186c1018a04d8c66607d330b89", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d32de46cd9dde4e3a3206a7fa1d48743ec92928b", "version-string": "1.75.0", "port-version": 1 }, { "git-tree": "8a33ec8327cf9af65de2ec5315c97d2caa011316", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "3df5326cad890816870ae9a2e0ad304e284b1076", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "5a6beb99dfe38ed636de4c65f63a87edf23e1701", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "95b87d5425cc4cabb24134a371a92d8d89c9e6dc", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "2d219c6be511c134faf77a77f4a6311aaa8f650d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "4799f93f334fb485eeac86030faddc9aa6fccc46", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "94e7f3e08fe70dc07ed0fb27cc0f2e56dd6a0e31", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "05c99cf139e5b9255cd5cb3bd2742fbc1109b870", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "489ad79ac0dc0aae47e3aa7316e8139da171028b", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "8eac228577ce0cd9d08f2ca449535cf50d28d75f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "e9a75c555c9e47be7e1cee00b656c6bc678b6f6f", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-winapi.json ================================================ { "versions": [ { "git-tree": "639211f204a27ab30817b6655efaf3e52af2a6cc", "version": "1.90.0", "port-version": 1 }, { "git-tree": "4b7342b68c50dbda810cb5491e184e919f14b558", "version": "1.90.0", "port-version": 0 }, { "git-tree": "f4552c468e3f22d10354f05d70af19f36f5da585", "version": "1.89.0", "port-version": 0 }, { "git-tree": "8b3ab1e64c2ac905bd598e30fba1101c5b8a2e72", "version": "1.88.0", "port-version": 0 }, { "git-tree": "9c479ba00f4e2401e518595446748e4394cd9568", "version": "1.87.0", "port-version": 0 }, { "git-tree": "d75ae8aec7f6af51c19a6301a05194616da25145", "version": "1.86.0", "port-version": 0 }, { "git-tree": "e97a71e640d52c3958a019b4ba142208e37373d5", "version": "1.85.0", "port-version": 1 }, { "git-tree": "ae89b133b4250b5358379d40dda7df98517e6c96", "version": "1.85.0", "port-version": 0 }, { "git-tree": "62e6d1e35ce468e9bcc44cb0a18ce671cc0f6407", "version": "1.84.0", "port-version": 1 }, { "git-tree": "32f9d89e087c4a777e62688c75a643608e3f9f6e", "version": "1.84.0", "port-version": 0 }, { "git-tree": "cfd68f543033ed6b8cee9235ef287b7fd4f8709a", "version": "1.83.0", "port-version": 0 }, { "git-tree": "4fb732247dac823b0563bd50e4fc518c25eb9334", "version": "1.82.0", "port-version": 2 }, { "git-tree": "db66242e796c29abd3622cf41d506bee622b4d10", "version": "1.82.0", "port-version": 1 }, { "git-tree": "d4a71323289449db56daf93cc840d416a42779b8", "version": "1.82.0", "port-version": 0 }, { "git-tree": "3a6773e846ce5a089ab2c4648f2b2b150870c7ee", "version": "1.81.0", "port-version": 2 }, { "git-tree": "57070b4f4e3114a9bc5d4bd17554c31df750f5e1", "version": "1.81.0", "port-version": 1 }, { "git-tree": "7c4817879a4b15b013a6b0db508af544e57cd18f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "e0d6af12fbd2f2efe8310394c82487686a7141c4", "version": "1.80.0", "port-version": 1 }, { "git-tree": "510961ace0ba15ccb5018734f6638f8af539258c", "version": "1.80.0", "port-version": 0 }, { "git-tree": "7f82a0041bb3b4ac1f3721afe5ba4e24e27c3a3c", "version": "1.79.0", "port-version": 0 }, { "git-tree": "8492201c09a250964609eea910b3d37c9895d411", "version": "1.78.0", "port-version": 0 }, { "git-tree": "2d4c0be143dbffd619ac154ef5d8f4fe24277bbe", "version": "1.77.0", "port-version": 0 }, { "git-tree": "48b21bc998317a6d60c63e07b38c83f4126b107b", "version": "1.76.0", "port-version": 0 }, { "git-tree": "e7ad07379e1cbc96c79a08a773441845e8f86691", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "62117b89dedc1807c7de0bfce139141aedeb8bd7", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "cd4c6389b967d0622ae9d548ca58b64fc80bf6e1", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "8a10e5aedcd8445a681166eb2477ccfd1efa9172", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "d1e678ea12bf54f2451155df2fcdacd41ce78b50", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "19ee38ad8e9cdb56fd6bdda57b333fbe6d06547a", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "4c3417de972b813cccaa7aa4e123d7ebea1c7981", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "470723c9a0fca75ce966bd1a77cbf0fd30f10199", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "a3af2bc99345063e259760672d0c2c751256b52e", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "1e152377edb1f8868197278f4d691bcd3680f668", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-xpressive.json ================================================ { "versions": [ { "git-tree": "b3e28be0bfea5df9f2a8f9b274d08c0e12f11917", "version": "1.90.0", "port-version": 1 }, { "git-tree": "88f7eb01e91b60dc261329a52fe9ab2aca49f0e0", "version": "1.90.0", "port-version": 0 }, { "git-tree": "fcdfe63155e0da042b195e3677d595fd3350bfc2", "version": "1.89.0", "port-version": 0 }, { "git-tree": "0544ad4c62b2b15941af4949912282d87f79777c", "version": "1.88.0", "port-version": 0 }, { "git-tree": "209046806a0a5b534a8ddbb85d6513a5d4aad740", "version": "1.87.0", "port-version": 0 }, { "git-tree": "8e7759afc8a205549c949fdde86bf0d47d532785", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b5074b96b528d6349b6d7641369f6cbd6974a6b2", "version": "1.85.0", "port-version": 1 }, { "git-tree": "4f9de25890f5d38b95b754eb0da828bb3d50a9d0", "version": "1.85.0", "port-version": 0 }, { "git-tree": "f36a4de1599e2d90cf8d9c61a5d118b40324b816", "version": "1.84.0", "port-version": 1 }, { "git-tree": "44168cef786140f27bd0efd38d258a3894cea3c2", "version": "1.84.0", "port-version": 0 }, { "git-tree": "55de0dfb037123cd093c56acf61b22948e98295b", "version": "1.83.0", "port-version": 0 }, { "git-tree": "55106712d15cf7092591e0e6a36681274e8f0401", "version": "1.82.0", "port-version": 2 }, { "git-tree": "ed6d3e07b8e933869bbe2148898adc5916928405", "version": "1.82.0", "port-version": 1 }, { "git-tree": "68252d54930bb7e7188b93869d914e49b8fc0177", "version": "1.82.0", "port-version": 0 }, { "git-tree": "ef345601e061511a9c1ca790d5d3f4c2cbb2ba20", "version": "1.81.0", "port-version": 2 }, { "git-tree": "b0cd85e0d770b5088d61c52bef118c5c49f0e25f", "version": "1.81.0", "port-version": 1 }, { "git-tree": "06f2f929443c6f2b7f7ba14ba1368caf0166f9b2", "version": "1.81.0", "port-version": 0 }, { "git-tree": "76511563b1908aa5ab663bfb67071f35bef001c0", "version": "1.80.0", "port-version": 1 }, { "git-tree": "e226118acbf483b6f0fd12cf6037a961520140df", "version": "1.80.0", "port-version": 0 }, { "git-tree": "26cd8244e5c07efa76837461cd426c5f4ca25dab", "version": "1.79.0", "port-version": 0 }, { "git-tree": "b117a25b1705a9a21ddb41a01bc8c081121d6d95", "version": "1.78.0", "port-version": 0 }, { "git-tree": "bf04b7076a27d24203528b52aaf41efc83923c67", "version": "1.77.0", "port-version": 0 }, { "git-tree": "8fea61636685db99cf11030e507f028cfa212bee", "version": "1.76.0", "port-version": 0 }, { "git-tree": "4529a218720a8856e510778eaf5e2c8c1f1ca971", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b41f4f06dc05791936ed8f82f934847224e28e60", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "6602308faa3a77cfed6a2640b386e12e8284c946", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "1c6c5ba53ea4b004cf629384bc643295ebeb9209", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "87c2bf709a347edebec7bd9b2a1ca10d1bb6435a", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "624d656b13094cc50fe4f1c9dbe10900076cd7fa", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "2879c781288c19ea72c7a8abdff1becbbf9ccd08", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "5815a43a48c0438ceefdc042d5aca810402ad482", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "c387943293d19f93812594b448b09d980ee09238", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "dd9f5871d80a21bd0a6ee96623e5e91682284262", "version-string": "1.66.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost-yap.json ================================================ { "versions": [ { "git-tree": "cd60d02e56cd00192d02933442dfdd9789e5058a", "version": "1.90.0", "port-version": 1 }, { "git-tree": "c2b28170dfde93e464beef92145720374d4b51df", "version": "1.90.0", "port-version": 0 }, { "git-tree": "79979cf45e6a104f68e2f420d86b799d19d69a84", "version": "1.89.0", "port-version": 0 }, { "git-tree": "647e7e94490ee46f3b669a97becf2b63245d6b74", "version": "1.88.0", "port-version": 0 }, { "git-tree": "25be83cb6fc5acfc08568de767da6fcd1c369404", "version": "1.87.0", "port-version": 0 }, { "git-tree": "f55ab0cb293729ba4bcb1d2043ac91deed2db8fc", "version": "1.86.0", "port-version": 0 }, { "git-tree": "5411f83e31755e071acd061bafe202a3bd77b877", "version": "1.85.0", "port-version": 1 }, { "git-tree": "8d565654b2d59695d4d22da18c37e13e305317ce", "version": "1.85.0", "port-version": 0 }, { "git-tree": "03cc7d52ee392099e392f31d2f168d5fa9c2d23b", "version": "1.84.0", "port-version": 1 }, { "git-tree": "94c0722f970f8d44f1dafe2a2def5deceed9a99f", "version": "1.84.0", "port-version": 0 }, { "git-tree": "4a0f05ec51176c56f01c9edd8888358ae74eabec", "version": "1.83.0", "port-version": 0 }, { "git-tree": "bdad26185e13b995615f4979050d3fd47db4fa32", "version": "1.82.0", "port-version": 2 }, { "git-tree": "a1b7fd0e064cb4fc3911bfe16e5b89e46bf3b5bb", "version": "1.82.0", "port-version": 1 }, { "git-tree": "f21651c6a3bdb74377860287634f40c40c745af7", "version": "1.82.0", "port-version": 0 }, { "git-tree": "7b50cfbdaf3d3ff461a9523d0378faa789f76ed7", "version": "1.81.0", "port-version": 2 }, { "git-tree": "25382ad2bc412fc7d573645495583d503e1151e9", "version": "1.81.0", "port-version": 1 }, { "git-tree": "943d3952bec19cccb156fad0295cc0f4d8c3b9f6", "version": "1.81.0", "port-version": 0 }, { "git-tree": "be0b950a4703cff293354292f257e978552601ad", "version": "1.80.0", "port-version": 1 }, { "git-tree": "382723f52354a14670f68b46c89c1101c0310a4e", "version": "1.80.0", "port-version": 0 }, { "git-tree": "b65c58d6abe35bd1300b250d8d7519a7d56292b8", "version": "1.79.0", "port-version": 0 }, { "git-tree": "692c496d822a9132dcf05c76bfee43bf7ab56c5e", "version": "1.78.0", "port-version": 0 }, { "git-tree": "856780f406def0087cc90b0dd0b623a65d78103e", "version": "1.77.0", "port-version": 0 }, { "git-tree": "daf7f224a26824ae0f4deb4e605e952d97755eb6", "version": "1.76.0", "port-version": 0 }, { "git-tree": "ecf8a43a095687fe67389aa43323e30464646089", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "b7b7cceb0644a979c72977538180240927428de9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "efeaf147485ccb7654b63ff9718e3b278e5729e3", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "8e391d021967d9a460f6e6d5b65800da63f69923", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "824a34eb588cff05b3c6af0a36e694b70e4ea781", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "02db42a61cbaaad9cc5a18fc74a4d51a6e7793b4", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "0908df30f087d9efd779ea34ba60cd8a66a2b8c9", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "0cf114b0b2caf786d56a7350e0c54d76c939fe41", "version-string": "1.68.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/boost.json ================================================ { "versions": [ { "git-tree": "4d2b01c55311f9a762174f2e05757099358f509c", "version": "1.90.0", "port-version": 1 }, { "git-tree": "afe62e5b584bb42f7b966867261565339f18a36b", "version": "1.90.0", "port-version": 0 }, { "git-tree": "07f74bc5368029095c91bf59ac8ea055dd47c0cb", "version": "1.89.0", "port-version": 0 }, { "git-tree": "b90f6b0ab269ee223ec11e021b558d708183aa74", "version": "1.88.0", "port-version": 0 }, { "git-tree": "66bd9ffe5eb4f4398afca8314b160ca840176bf5", "version": "1.87.0", "port-version": 1 }, { "git-tree": "fab05e78b524b75e11139057f589c407984b50c3", "version": "1.87.0", "port-version": 0 }, { "git-tree": "15e0de9e647ed1ddf684158c8dc629544c2fe53b", "version": "1.86.0", "port-version": 1 }, { "git-tree": "e16c1af1e47c7b94ac02c8f3c9ec0f4d3ea8f8f6", "version": "1.86.0", "port-version": 0 }, { "git-tree": "b9a5d6326cff2f44dfc15794973ff6622e77e912", "version": "1.85.0", "port-version": 1 }, { "git-tree": "5158d375099f88e17c53c640aa0e073d0b5b5389", "version": "1.85.0", "port-version": 0 }, { "git-tree": "cd55bc5092333ea17a39599f5b25b3063bb6b497", "version": "1.84.0", "port-version": 1 }, { "git-tree": "827b5b48531aaa3fa9293a6d344f829c6529776c", "version": "1.84.0", "port-version": 0 }, { "git-tree": "315139e076ff5ea5672a158688934b04d2b7a815", "version": "1.83.0", "port-version": 1 }, { "git-tree": "d8d71d69890583a886663db2d2ac45ddf3fd9835", "version": "1.83.0", "port-version": 0 }, { "git-tree": "ef99d3992511da66e8f354441fb291ed0cac08f9", "version": "1.82.0", "port-version": 2 }, { "git-tree": "7714a26cfdcdc9633297140c227198fb18f64061", "version": "1.82.0", "port-version": 1 }, { "git-tree": "42eb34ebc0c22a3f2babbafb457981ac8a1da6d5", "version": "1.82.0", "port-version": 0 }, { "git-tree": "afc980d4093ddd9d122b1bba1a894edd549c43a1", "version": "1.81.0", "port-version": 3 }, { "git-tree": "db16a04782e07533fd944d7c9e7868f1b06ec556", "version": "1.81.0", "port-version": 2 }, { "git-tree": "ecebe0b2a1d34ab9e5ca9ccdb8c16f9f8b36b5ed", "version": "1.81.0", "port-version": 1 }, { "git-tree": "7236dac7581b19dfda2f61e7766921526996e77f", "version": "1.81.0", "port-version": 0 }, { "git-tree": "fe661a6643f1b0d0acb080684d65d8b725ad108f", "version": "1.80.0", "port-version": 2 }, { "git-tree": "dd28384ddceb935eecbc6e787b67e2a9b506aab3", "version": "1.80.0", "port-version": 1 }, { "git-tree": "f4e929db67c1d0b4c043ec1f1f1d1f1157029d99", "version": "1.80.0", "port-version": 0 }, { "git-tree": "f742b459c69d004cd97fe8fd62e4b813224eba10", "version": "1.79.0", "port-version": 0 }, { "git-tree": "c6924d40a63cbd74c48964edd069a5df1df8b615", "version": "1.78.0", "port-version": 0 }, { "git-tree": "19bdc0542dd287e39768144ba2719723a7818750", "version": "1.77.0", "port-version": 2 }, { "git-tree": "5fe225d8d76e70968014f7ddab050d7e520709e6", "version": "1.77.0", "port-version": 1 }, { "git-tree": "c2e18442532ea17f03c775323f53a3b03ade0b6d", "version": "1.77.0", "port-version": 0 }, { "git-tree": "1e18b90b86df900244b7c8c7001ceeac37b083ae", "version": "1.76.0", "port-version": 0 }, { "git-tree": "d24cc9e13f1aef8ae26b68f3b3e34495431110e3", "version-string": "1.75.0", "port-version": 0 }, { "git-tree": "d0f1655d8c46ee762961387d92587c26753a4fc9", "version-string": "1.74.0", "port-version": 0 }, { "git-tree": "1f69d2e5ea88d9dc27a8c63c673154f141503cb1", "version-string": "1.73.0", "port-version": 4 }, { "git-tree": "2122fc37c88dd1a918e86449dec8398a01fa9718", "version-string": "1.73.0", "port-version": 3 }, { "git-tree": "96931595b124b1e6fcbdfe278d10433aa8db8130", "version-string": "1.73.0", "port-version": 2 }, { "git-tree": "107538ffb7becac4d12224ff4626dd4de1b594c3", "version-string": "1.73.0", "port-version": 1 }, { "git-tree": "63d6902965351f76a54349c16d7de318c14dbab7", "version-string": "1.73.0", "port-version": 0 }, { "git-tree": "9b8b0ee499c305c57cc6876dd8605a85656bfe6d", "version-string": "1.72.0", "port-version": 0 }, { "git-tree": "bc08a119d170a0adfe8014b4dd91fad7f12264fd", "version-string": "1.71.0", "port-version": 0 }, { "git-tree": "68850f56b534290c069f0fe4ef9d97f7025a81cc", "version-string": "1.70.0", "port-version": 0 }, { "git-tree": "c373fa02d226f0262cc6ba52d34fe6111a12f948", "version-string": "1.69.0", "port-version": 0 }, { "git-tree": "e6972c6176cb56a986e28431e20c2b33a060db45", "version-string": "1.68.0", "port-version": 0 }, { "git-tree": "cf05c5aba1d1af12659a1fd2bdf75720df61888f", "version-string": "1.67.0", "port-version": 0 }, { "git-tree": "f1e3f63c6e831af8f1787be0d64d023b43e94b66", "version-string": "1.66.0", "port-version": 0 }, { "git-tree": "716fe8d433c8593020b68accdb9890f59e2f4ff7", "version-string": "1.65.1-3", "port-version": 0 }, { "git-tree": "ddbec542d798e3b7eeba323111385966e6e87817", "version-string": "1.65.1-2", "port-version": 0 }, { "git-tree": "8e8f60d45ad310e9ec3ba28af1040649181d091c", "version-string": "1.65.1-1", "port-version": 0 }, { "git-tree": "0b253075f1611f0a86c77494ff3134fd53196080", "version-string": "1.65.1", "port-version": 0 }, { "git-tree": "c786bf44c7aeaa4f196444cd79a5745a9bc663d0", "version-string": "1.65-1", "port-version": 0 }, { "git-tree": "f666638c221fa08912348791f530970beba055b6", "version-string": "1.65", "port-version": 0 }, { "git-tree": "25e362d1bad9d69541f0faa74677a3c2365e877c", "version-string": "1.64-5", "port-version": 0 }, { "git-tree": "1dee285bbe05342984987da3460174f47b747b11", "version-string": "1.64-4", "port-version": 0 }, { "git-tree": "ee758ff279590079553c743ea61939a32cdb61ea", "version-string": "1.64-3", "port-version": 0 }, { "git-tree": "f0f99f25017ecfc45be8894944a924ba9dea5e0c", "version-string": "1.64-2", "port-version": 0 }, { "git-tree": "2e58ede1ec4159790f31069e19b7dd3adcaab0ce", "version-string": "1.64-1", "port-version": 0 }, { "git-tree": "22b76107a08a4953fec45e53b49a6d2742ba0c78", "version-string": "1.64", "port-version": 0 }, { "git-tree": "6d4ec812d4cd1917f6c15c3bcc999745e480fe6d", "version-string": "1.63-4", "port-version": 0 }, { "git-tree": "4da649fdf59dee5e7d5cda85827a4c2d72b4f23a", "version-string": "1.63-3", "port-version": 0 }, { "git-tree": "db60c99e4dcbf9f83cdb05e0316978a9a3a4c9bd", "version-string": "1.63-2", "port-version": 0 }, { "git-tree": "169ad1a96c3294c945f1873d04f274a6679d70ca", "version-string": "1.63-1", "port-version": 0 }, { "git-tree": "e842601f9fca85798c0690af2ac695019bc6b59e", "version-string": "1.63", "port-version": 0 }, { "git-tree": "54f63d0a146afb8529d9429f749a90ef42487c19", "version-string": "1.62-12", "port-version": 0 }, { "git-tree": "021e05591fead1c9e6ed94ff942f36cf06149f5f", "version-string": "1.62-11", "port-version": 0 }, { "git-tree": "882bbf98f710737f4056617144ee640f0e46fbe9", "version-string": "1.62-10", "port-version": 0 }, { "git-tree": "471aa06c45d5ab56fff0a50a75d77eedb2d4982f", "version-string": "1.62-9", "port-version": 0 }, { "git-tree": "7ab4e8b1f0b97df62121410fd2c59b89a03ed8b9", "version-string": "1.62-8", "port-version": 0 }, { "git-tree": "970a7333583be9aa9bd03acf0ad2eb76d7ec15df", "version-string": "1.62-7", "port-version": 0 }, { "git-tree": "361c8325dc436afdb3b28e22112c00493999a68a", "version-string": "1.62-6", "port-version": 0 }, { "git-tree": "50947a16c73ed4c1ae01ae940a9b6ea77bd0623b", "version-string": "1.62-5", "port-version": 0 }, { "git-tree": "63c83e9efac3fa2c69e55867cbdb71ff2fdf97c7", "version-string": "1.62-4", "port-version": 0 }, { "git-tree": "a17cd67a8d429ea500752b58d23388538d1c500c", "version-string": "1.62-3", "port-version": 0 }, { "git-tree": "e4f0d78865135992a6c688f0d090e37d1f65c378", "version-string": "1.62-2", "port-version": 0 }, { "git-tree": "cb9dd398defae6e5e25b8df7f8889cb92fb0b504", "version-string": "1.62-1", "port-version": 0 }, { "git-tree": "4657f0e4e9e1e7f7a025caf567c8e99710582271", "version-string": "1.62", "port-version": 0 }, { "git-tree": "0f9b34f2c83ea913e08337a34fa5f2b42cdebdec", "version-string": "1.61", "port-version": 0 }, { "git-tree": "392a06544f25bd41ca24b66f3157ebb392f702fe", "version-string": "1.60", "port-version": 0 } ] } ================================================ FILE: versions/b-/boringssl.json ================================================ { "versions": [ { "git-tree": "744858a451e11aa8316166d0dfd534ab17dbb371", "version-date": "2025-08-18", "port-version": 0 }, { "git-tree": "78e32f29395487348c0dbbc78828b71b020a92b1", "version-date": "2024-09-13", "port-version": 1 }, { "git-tree": "075a0df31951d14eb7bdfe1a6ba728ddfd46a3a2", "version-date": "2024-09-13", "port-version": 0 }, { "git-tree": "2b809260036c7ee69cbf1a8a06e015354121d741", "version-date": "2023-10-13", "port-version": 0 }, { "git-tree": "5f833bab8ecfc28f45a9034291e79f8cd126ad01", "version-date": "2023-09-25", "port-version": 0 }, { "git-tree": "01164d48fa5667c3e6885d010cb110b84b6f2e78", "version-date": "2021-06-23", "port-version": 4 }, { "git-tree": "cb83700b7bf53177773421dfb803fb8478e6a72d", "version-date": "2021-06-23", "port-version": 3 }, { "git-tree": "8d28c72d322cf2245e69075deef73c5edefee0b5", "version-date": "2021-06-23", "port-version": 2 }, { "git-tree": "ca35c06a32c83f385f840831a435c69231a7852a", "version-date": "2021-06-23", "port-version": 1 }, { "git-tree": "aa2649d9a0296ed873aa8fb17c28f38baac51a26", "version-date": "2021-06-23", "port-version": 0 }, { "git-tree": "efaff27f5d50195917c54e210f4904b80d73399a", "version-string": "2020-04-07", "port-version": 2 }, { "git-tree": "02d882a47dda51d6d001af8ab4b3571e67a20f47", "version-string": "2020-04-07", "port-version": 1 }, { "git-tree": "a0fb9977bef29fa26e66155d89997236473f77e8", "version-string": "2020-04-07", "port-version": 0 } ] } ================================================ FILE: versions/b-/botan.json ================================================ { "versions": [ { "git-tree": "a68c110f30122d07efaad2285bae66492ef26b2e", "version": "3.10.0", "port-version": 1 }, { "git-tree": "5e08c248836403a7fa5ae4f128909266f79dca8f", "version": "3.10.0", "port-version": 0 }, { "git-tree": "312e72bd6bbd815b4a10035fd6bd48a7fdb32825", "version": "3.7.1", "port-version": 0 }, { "git-tree": "eb6faea666501a265f3603c014bdee929c0174c3", "version": "3.6.1", "port-version": 0 }, { "git-tree": "827a8fc1dd4c4f2b998824ba4c9dae41a47afa98", "version": "3.5.0", "port-version": 1 }, { "git-tree": "3416aa602b64d0eff810540b4555dac28560ba3e", "version": "3.5.0", "port-version": 0 }, { "git-tree": "24b20ce86f1fff75cd0c14c71e8ddcd7459b48c8", "version": "3.3.0", "port-version": 2 }, { "git-tree": "4e721d4e37cd859a5134c2cbe587aed5644bc1de", "version": "3.3.0", "port-version": 1 }, { "git-tree": "559118768851fefb7f0bbcbf363863d907fd6a12", "version": "3.3.0", "port-version": 0 }, { "git-tree": "4c689678282e82a42d29348c05a022f237e54700", "version": "3.2.0", "port-version": 1 }, { "git-tree": "3482b0255e093b6d091aa4aff11992c89ec45d6e", "version": "3.2.0", "port-version": 0 }, { "git-tree": "c031a70866fae7751496d7edfd01caad2773dd08", "version": "3.1.1", "port-version": 1 }, { "git-tree": "d66e60d97a7a4e77df4e559fed1926a45dac3f52", "version": "3.1.1", "port-version": 0 }, { "git-tree": "575322265c701c0ff15d79c65a47ad38e7958235", "version": "2.19.3", "port-version": 2 }, { "git-tree": "7b9240ee18f12e8acaedf11613aa6bc1d7aad9d5", "version": "2.19.3", "port-version": 1 }, { "git-tree": "1ad976f3e650d7188414a0c2c62ec7290bed64e8", "version": "2.19.3", "port-version": 0 }, { "git-tree": "50c9b636dc542dc13c62b04e09b106354e131b3d", "version": "2.19.2", "port-version": 0 }, { "git-tree": "46addf1e5297d40d351cf84d2a62d831592df1d1", "version": "2.19.1", "port-version": 1 }, { "git-tree": "3fb61b05e32ed52193542dd9d5b86b7e2021dd99", "version": "2.19.1", "port-version": 0 }, { "git-tree": "2d7fe86d0a8a13ebddda0ac759f824fb9066b644", "version": "2.18.1", "port-version": 10 }, { "git-tree": "a091e7d5a75af9eadbaa696b79e44d726deb47fe", "version": "2.18.1", "port-version": 9 }, { "git-tree": "267c31f3759881d233529d28ec78e2a0c8d1e9b4", "version": "2.18.1", "port-version": 8 }, { "git-tree": "dfbd885e94b11d3b8074d96c92e810a0f1a7be7a", "version": "2.18.1", "port-version": 7 }, { "git-tree": "928c19e302d27840225477d4e4b183ca9bd76ea8", "version": "2.18.1", "port-version": 6 }, { "git-tree": "7a800cf24fcc51e57dedfb8782753c50305880e1", "version": "2.18.1", "port-version": 5 }, { "git-tree": "477e259691b81a016da459532f616b5fca230a91", "version": "2.18.1", "port-version": 4 }, { "git-tree": "045c95bf0e7f1352d91398bc0dc41ce5ec5a288a", "version": "2.18.1", "port-version": 3 }, { "git-tree": "5f002dd083e6eedd3bdd1d2bc7882d34d70ed438", "version": "2.18.1", "port-version": 2 }, { "git-tree": "9257baaf49b708cde128ff31e74fe848ef30a264", "version": "2.18.1", "port-version": 1 }, { "git-tree": "5233d2cda62be282a698410ebf3f70f5f2cda8cf", "version": "2.18.1", "port-version": 0 }, { "git-tree": "8a0618dd4e015d7a0ae5339e6758c5f1fd4754a6", "version": "2.16.0", "port-version": 2 }, { "git-tree": "7776bdc54cb37a29c18701d4332e4537e6be357a", "version": "2.16.0", "port-version": 1 }, { "git-tree": "cb5674c8a62b85d8862f3064b2797173df10950d", "version-string": "2.16.0", "port-version": 0 }, { "git-tree": "cdad0593bd7a584ff8ecdeb2135b423d54eee1fd", "version-string": "2.15.0", "port-version": 1 }, { "git-tree": "93772a2aa43c559c309885a56bc4ae0b92d2b8f7", "version-string": "2.15.0", "port-version": 0 }, { "git-tree": "f52798a57954eaa194597a042b95e67abbe8c6e2", "version-string": "2.12.1-1", "port-version": 0 }, { "git-tree": "3cabf26f7fc95e13362ea865e084988ee9152415", "version-string": "2.12.1", "port-version": 0 }, { "git-tree": "2248a885c0827a1e4360484b549cc713db402a37", "version-string": "2.11.0", "port-version": 0 }, { "git-tree": "4f208b0ec8db7c17dac32a16e064566dbe33f113", "version-string": "2.9.0-2", "port-version": 0 }, { "git-tree": "53dc2e4b5d70a333570c7e65b4e6572039c26042", "version-string": "2.9.0-1", "port-version": 0 }, { "git-tree": "ec10ddbbd53c60c3ffbb8fa7db80014f12bf2a44", "version-string": "2.9.0", "port-version": 0 }, { "git-tree": "b2c1010d75db7f0bb02c3023ea2b988ddcaef000", "version-string": "2.8.0", "port-version": 0 }, { "git-tree": "9ff0ab321b6504dfccd8dc7b8f9067f3d95a6048", "version-string": "2.6.0-2", "port-version": 0 }, { "git-tree": "e0d6e9cdf7d4ad3a1024f1130f5494211057a056", "version-string": "2.6.0-1", "port-version": 0 }, { "git-tree": "52d7655f4acf2ce9dd9e0a85dce5c9abc1a79315", "version-string": "2.6.0", "port-version": 0 }, { "git-tree": "74299dade32477f47be842b9c39810b1614db455", "version-string": "2.0.1", "port-version": 0 }, { "git-tree": "5360c9eb65d58acf2deff29dc503e7764aaf8b93", "version-string": "2.3.0", "port-version": 0 }, { "git-tree": "74299dade32477f47be842b9c39810b1614db455", "version-string": "2.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/box2d.json ================================================ { "versions": [ { "git-tree": "81f894b99ba686f428b3d80e7769ee04f8bf548e", "version-semver": "3.1.1", "port-version": 0 }, { "git-tree": "ea3872a71bce39d614f49e382dd66eb091387217", "version-semver": "3.1.0", "port-version": 1 }, { "git-tree": "c77778007f66a7b591c14377c2848c4050ccf149", "version-semver": "3.1.0", "port-version": 0 }, { "git-tree": "bef68937d8b4101d0df330a399a7fc043f7ec5e5", "version-semver": "2.4.1", "port-version": 3 }, { "git-tree": "2c8a3a146971f33f497c21d6b52b756245f894e4", "version-semver": "2.4.1", "port-version": 2 }, { "git-tree": "f40a0f5f20b3e546e55850df8babf2d9cd526ee8", "version-semver": "2.4.1", "port-version": 1 }, { "git-tree": "fc279cfa6011af543c0b1ebb043767acd13a7930", "version-semver": "2.4.1", "port-version": 0 }, { "git-tree": "61a9394741ba7f08404d1c7f2b77a9d8b9456bc2", "version-string": "2.4.0", "port-version": 0 }, { "git-tree": "62d471eaf5e87ef759a716a13db7decb1cc1fc8e", "version-string": "2019-12-31", "port-version": 0 }, { "git-tree": "042a70aea5f44f5fe8cc7c5dfc36229badcf264b", "version-string": "2.3.1-374664b-2", "port-version": 0 }, { "git-tree": "202b7d3f4a73dab47e0a05b0aacf48a48189d71f", "version-string": "2.3.1-374664b-1", "port-version": 0 }, { "git-tree": "1e24dac01c8f4655c355a3c30ebf0a9adda85f20", "version-string": "2.3.1-374664b", "port-version": 0 }, { "git-tree": "840fb28c94896399957f5b7acfa8ae0297a628d7", "version-string": "374664b", "port-version": 0 } ] } ================================================ FILE: versions/b-/braft.json ================================================ { "versions": [ { "git-tree": "b440e9e2bb821fea49c1e62ea5f8e306d2706bd3", "version-date": "2021-26-04", "port-version": 7 }, { "git-tree": "8e216ee57fd2f228d5172bc6605aeb6d3d912433", "version-date": "2021-26-04", "port-version": 6 }, { "git-tree": "72682af00e63de8f23eb8242e17212a0777deb25", "version-date": "2021-26-04", "port-version": 5 }, { "git-tree": "b376168dcf6ec1336dd980ae419f8dcd626bc41b", "version-date": "2021-26-04", "port-version": 4 }, { "git-tree": "af9ff158d1a8f1284b9cc78d4ec816b0a37c7a3d", "version-date": "2021-26-04", "port-version": 3 }, { "git-tree": "0c776a091a987943aadb4879fdb7434929d4dd3d", "version-date": "2021-26-04", "port-version": 2 }, { "git-tree": "774dbc3ef386eed16fd345f23109f94a899f39e8", "version-date": "2021-26-04", "port-version": 1 }, { "git-tree": "d9afe1afea46ce35f64aaed5c2702c34113fe683", "version-date": "2021-26-04", "port-version": 0 } ] } ================================================ FILE: versions/b-/breakpad.json ================================================ { "versions": [ { "git-tree": "d0b9b0c733d8e82f954990673865df8768b5d8e7", "version-date": "2024-02-16", "port-version": 0 }, { "git-tree": "1c26fa7825691806584f87c5ccfb37077629ee9c", "version-date": "2023-06-01", "port-version": 2 }, { "git-tree": "d45fecc4d50811afb62537bb6b13abd8132c8fd9", "version-date": "2023-06-01", "port-version": 1 }, { "git-tree": "9760dbfbc2afeb14dc67a91a6582c177e46a7921", "version-date": "2023-06-01", "port-version": 0 }, { "git-tree": "5643527026fecb43d487919191b02c41bfced6f9", "version-date": "2023-01-27", "port-version": 1 }, { "git-tree": "b2b2523acc1c56222313e8fe01065c1e130440e1", "version-date": "2023-01-27", "port-version": 0 }, { "git-tree": "a451811c203f1ec086288b40dd4571d97bb7033e", "version-date": "2022-07-12", "port-version": 5 }, { "git-tree": "26e6e78bdd989c749aa0f61ad6357374480bc184", "version-date": "2022-07-12", "port-version": 4 }, { "git-tree": "79b0efa7b720fb255c442834270b24a396f01de5", "version-date": "2022-07-12", "port-version": 3 }, { "git-tree": "268892865b8587f365f04b7f2fe62a2359c405ae", "version-date": "2022-07-12", "port-version": 2 }, { "git-tree": "8b789572b559ed292fc35ad004d51d6d975b7d7f", "version-date": "2022-07-12", "port-version": 1 }, { "git-tree": "1765629f89b1d8d3020f5e4baa35116b9da02c0a", "version-date": "2020-09-14", "port-version": 5 }, { "git-tree": "553a7799e93f9f2b4441d077b379613a796acdea", "version-string": "2020-09-14", "port-version": 4 }, { "git-tree": "be41998b0a407c10ae78d605264a2c0bb7d3f3ca", "version-string": "2020-09-14", "port-version": 3 }, { "git-tree": "724ca1cc38bbb2414d1efe91f8a95353235ede58", "version-string": "2020-09-14", "port-version": 2 }, { "git-tree": "e266c29cb65ac51e96422f0788dae07529f1f493", "version-string": "2020-09-14", "port-version": 1 }, { "git-tree": "f088fa69e17bda03e45686245cb7dd47d0351064", "version-string": "2020-09-14", "port-version": 0 }, { "git-tree": "7b2bb5f2a3d4995f52528e54cf3df165aace94d5", "version-string": "2019-07-11-2", "port-version": 0 }, { "git-tree": "74c1e6008d13a09f9b8937445ff64d48234f3fdf", "version-string": "2019-07-11-1", "port-version": 0 }, { "git-tree": "9f3e9c1eccd500bd649cad04fdcb202e49d09c53", "version-string": "2019-07-11", "port-version": 0 }, { "git-tree": "10be3edd4e14259baa2f52e32cd4eae01b30940c", "version-string": "2019-05-08", "port-version": 0 }, { "git-tree": "b07a4d267b3235725c4ee929190c6ce2c5cdb484", "version-string": "2018-09-18", "port-version": 0 }, { "git-tree": "278889227ab763ac44bc3dbabd518cd0bfc71645", "version-string": "2018-08-03-1", "port-version": 0 }, { "git-tree": "70da3dfcfebdff3f898651e9723f222d0b493259", "version-string": "2018-07-30-2", "port-version": 0 }, { "git-tree": "9625e031da06b22fe747b1fd39815c3b051ead08", "version-string": "2018-07-30", "port-version": 0 }, { "git-tree": "f85b4570ca43263fa600caeae3b5d601a0d64bfb", "version-string": "2018-07-08", "port-version": 0 }, { "git-tree": "5a923eac9f23d816a62e08c9dbb227be2106ef3b", "version-string": "2018-06-28", "port-version": 0 }, { "git-tree": "cc07770bafeafa162ef126bc5ad3abad0900567d", "version-string": "2018-06-12", "port-version": 0 }, { "git-tree": "4c60174bc8dafd05e1fa12dbf3075bb937ec605d", "version-string": "2018-04-17", "port-version": 0 }, { "git-tree": "349bcf71e14497bd57b12e69549004cbb41e0fcd", "version-string": "2018-04-12", "port-version": 0 }, { "git-tree": "09fd05fac620d5c99716ec0023ea1af091870852", "version-string": "2018-04-05", "port-version": 0 }, { "git-tree": "e2981e346f312045c0d47aa5eac9fff7ede2655d", "version-string": "2018-03-27", "port-version": 0 }, { "git-tree": "fc5ce981eec58bcdd21d03618a583e9c85a5aa03", "version-string": "2018-03-13", "port-version": 0 }, { "git-tree": "cb9c3c17a2ca2f8cc40ad1f76f16f4f10bc86ca8", "version-string": "2018-02-25", "port-version": 0 }, { "git-tree": "ad0a5faf3f0c2cac452c9979101b6b1162e63591", "version-string": "2018-2-19-1", "port-version": 0 }, { "git-tree": "a7347475d92becb8bd1e4a30c799918a41c1b919", "version-string": "2018-2-19", "port-version": 0 } ] } ================================================ FILE: versions/b-/brigand.json ================================================ { "versions": [ { "git-tree": "b68860ce9e8aac4f7e605535571295ba5be9e2a3", "version": "1.3.0", "port-version": 3 }, { "git-tree": "a27641e46efb007b46792b7bd803f32437fe4178", "version-string": "1.3.0", "port-version": 2 }, { "git-tree": "99395d0e7569b8b32f76d99cf2183a2a92679a7d", "version-string": "1.3.0", "port-version": 1 }, { "git-tree": "c43c5b02c14b89e55f9a85d9a7c835f3bf9ea582", "version-string": "1.3.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/brotli.json ================================================ { "versions": [ { "git-tree": "0fb79bb13588702a9e06057745b4aed95ce5c861", "version": "1.2.0", "port-version": 0 }, { "git-tree": "4e5b5ae1ad26c80535c893cc0307121f0398549e", "version": "1.1.0", "port-version": 1 }, { "git-tree": "4156ea7744047f9ace2769b857d97d11154de28f", "version": "1.1.0", "port-version": 0 }, { "git-tree": "32ea6c4b0d18fa3172ad52147599983acc71d748", "version": "1.0.9", "port-version": 5 }, { "git-tree": "e6838ab1a2b10d47924875dd1f71c47d45c01bb6", "version": "1.0.9", "port-version": 4 }, { "git-tree": "7b182b3e0615d6f3538b5eeac680f7eb8af5abd0", "version": "1.0.9", "port-version": 3 }, { "git-tree": "73d0ed2fd7816c7a4958983b0b027c85b60eac15", "version-string": "1.0.9", "port-version": 2 }, { "git-tree": "8f55fe158d8bd753a6e6908164e03ae4f0b73cea", "version-string": "1.0.9", "port-version": 1 }, { "git-tree": "4aaf6f174ede5bc58872943a5e32d96c5e0d45da", "version-string": "1.0.9", "port-version": 0 }, { "git-tree": "7e68bd8e6bf02393de13fc5e7d3a57cf3bfc505e", "version-string": "1.0.7", "port-version": 3 }, { "git-tree": "0937ca99bab9fc5e64772b4237cc1a31c2f01b36", "version-string": "1.0.7-1", "port-version": 0 }, { "git-tree": "836e8e42c4e3b77af26352e20c101f7c6c761301", "version-string": "1.0.7", "port-version": 0 }, { "git-tree": "4d17fcb9230ee38d00dab99de2a383ad3c13bf8a", "version-string": "1.0.2-4", "port-version": 0 }, { "git-tree": "2120a8509eb5bf1d425d39e80bb14b0974402263", "version-string": "1.0.2-3", "port-version": 0 }, { "git-tree": "8f30ae817585218bad8de88a24a708f6fb474710", "version-string": "1.0.2-2", "port-version": 0 }, { "git-tree": "ef43588bc6238859ec72888bbdadfcc08b6c1063", "version-string": "1.0.2-1", "port-version": 0 }, { "git-tree": "846df5f69ab48681d2607463485cfaa90fa045c0", "version-string": "1.0.2", "port-version": 0 }, { "git-tree": "eaea323f02f988a3331968d16effd4a7c0ce9183", "version-string": "0.6.0-1", "port-version": 0 }, { "git-tree": "e4658337e5ae62e78adb7939bf3b6a566c7545de", "version-string": "0.6.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/brpc.json ================================================ { "versions": [ { "git-tree": "9d30e0402aea62dba456d47bf1b0c66f8f948021", "version": "1.16.0", "port-version": 0 }, { "git-tree": "89120d70f29486c1ce7bf96454649b85d895fcdf", "version": "1.15.0", "port-version": 1 }, { "git-tree": "e7af27df421f6a9df671dc6776952ad98bbef626", "version": "1.15.0", "port-version": 0 }, { "git-tree": "fe1c9bb7661ab1df212543f83638076b0d9fb448", "version": "1.14.1", "port-version": 0 }, { "git-tree": "ca90d56aa3099689d6003e66c1093ca01934543c", "version": "1.11.0", "port-version": 1 }, { "git-tree": "8473c99ec8eaf2d3fba5b34501f26cdd8b37d438", "version": "1.11.0", "port-version": 0 }, { "git-tree": "0da3bb20bb9b3dd1b8ef66a4f812f16496be422c", "version": "1.10.0", "port-version": 0 }, { "git-tree": "e3c927bb9bf156c75d26d06f1c0c250afd50df69", "version": "1.9.0", "port-version": 1 }, { "git-tree": "5c492561a044534b4177cf14d9296c8a68431755", "version": "1.9.0", "port-version": 0 }, { "git-tree": "4aa97cf4dfb7c0ff2537a3b0e324daa97940d2c5", "version": "1.6.1", "port-version": 3 }, { "git-tree": "3fd0bfb30a96852a7a92e0526c411ef9f95bed83", "version": "1.6.1", "port-version": 2 }, { "git-tree": "5460a635b3cfa64a9857a378a798ded7f60abc74", "version": "1.6.1", "port-version": 1 }, { "git-tree": "e8671f4e4a1523a2f58b71e7413ad0b8dab7c1c4", "version": "1.6.1", "port-version": 0 }, { "git-tree": "a2cedfb3411d57def85e6337b08570e518c2f992", "version": "1.6.0", "port-version": 0 }, { "git-tree": "8c3039a58b23207cc87a0a938dbd943ef521b235", "version": "1.5.0", "port-version": 0 }, { "git-tree": "a75ac2b64eae33d6ba6fc7494f6ea02d7156a23c", "version": "1.4.0", "port-version": 0 }, { "git-tree": "14c66f674d539da678233b47be27be7e7f419901", "version": "1.3.0", "port-version": 0 }, { "git-tree": "2ed01cdb3f05cfc779d3162de470045bda69f985", "version": "1.2.0", "port-version": 1 }, { "git-tree": "d75b4f1f3f1bf6072c3095fe34f29e86c19ec4d5", "version": "1.2.0", "port-version": 0 }, { "git-tree": "c88bb19658430803981fbfa4ec45432bed88310b", "version": "1.1.0", "port-version": 0 }, { "git-tree": "bcff3231352f577720f51a99dbf9ecf0132ebcba", "version": "0.9.7", "port-version": 7 }, { "git-tree": "f658cec9384935d01319d2725a039da7cb5e6c77", "version-string": "0.9.7", "port-version": 6 }, { "git-tree": "eb37098c32016db48b15a29bd31b08087c7b5d0e", "version-string": "0.9.7", "port-version": 5 }, { "git-tree": "7c6f7c8a882730bd20874fb5832081105a169c7a", "version-string": "0.9.7", "port-version": 4 }, { "git-tree": "42b5a413e49655d73b772efa7642eefff429b4c1", "version-string": "0.9.7", "port-version": 3 }, { "git-tree": "0b89b1bee5f50f8bdb551ae2373feb51b144fbc2", "version-string": "0.9.7", "port-version": 2 }, { "git-tree": "8d3ba620eff30244f2ca27af0814f78ce9049308", "version-string": "0.9.7", "port-version": 1 }, { "git-tree": "d3461edb01babdda0886b7173a7fba194e30d149", "version-string": "0.9.7", "port-version": 0 } ] } ================================================ FILE: versions/b-/brunocodutra-metal.json ================================================ { "versions": [ { "git-tree": "8cf9fc40f35037ebc568d8da494ba1c84221327d", "version": "2.1.4", "port-version": 0 }, { "git-tree": "54b5610e8e1541618650eec938a77148866716cc", "version": "2.1.3", "port-version": 0 }, { "git-tree": "0fbaac9587c177beb827afa12d74cd40005cc20a", "version-string": "2.1.1", "port-version": 1 }, { "git-tree": "b96a170666d35da8f66b89c12c62699db55b269c", "version-string": "2.1.1", "port-version": 0 }, { "git-tree": "3f232829f6de377883a98c20564515631d8b2583", "version-string": "v2.0.1-1", "port-version": 0 } ] } ================================================ FILE: versions/b-/brynet.json ================================================ { "versions": [ { "git-tree": "262acc43d0a971e687b7000da2bcdaf777c07c5e", "version": "1.12.2", "port-version": 0 }, { "git-tree": "8eb954fee71dc1764d7261d36c185f42ee9c6378", "version": "1.12.1", "port-version": 0 }, { "git-tree": "3a4cea82b4e937b478bd400d4a975dde33b3f741", "version": "1.11.2", "port-version": 0 }, { "git-tree": "1700fdb373d8d3789f510b64aeee7d79859393f1", "version-string": "1.11.1", "port-version": 1 }, { "git-tree": "f164bb20f8c10203d2ab57ecf5a28b5891c5259a", "version-string": "1.11.0", "port-version": 1 }, { "git-tree": "228bf2b9f13cdeb9c86f1bf43d9d487e87f78c6e", "version-string": "1.11.0", "port-version": 0 }, { "git-tree": "2024f1be91419c1ce3f2df23b3d4facaadcfc7fc", "version-string": "1.10.0", "port-version": 0 }, { "git-tree": "bad044dbd66d5067fee727b602485d30c4ab2c09", "version-string": "1.0.7", "port-version": 0 }, { "git-tree": "3b2ac80940cc348d324ea44a72cfa9045bf874be", "version-string": "1.0.5", "port-version": 0 }, { "git-tree": "eb9f460da35590e7f15d1ad6ef430dac2029abad", "version-string": "1.0.3", "port-version": 0 }, { "git-tree": "db463fa0a2d7511abcd288f20b5139b4057ceb9f", "version-string": "1.0.2", "port-version": 0 }, { "git-tree": "27a2dfd1bf9f9189b1b096250a329116e6e56bfd", "version-string": "1.0.0-1", "port-version": 0 }, { "git-tree": "6aef5fe19ed0a5a8dbce4e4f41be3e6145b7f086", "version-string": "1.0.0", "port-version": 0 }, { "git-tree": "ca9a4a6c001c01483f54245afa62c747e8db8ef7", "version-string": "0.9.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bshoshany-thread-pool.json ================================================ { "versions": [ { "git-tree": "c33b29d4887afd17e45999cd95f3a4852eccf4ee", "version": "5.1.0", "port-version": 0 }, { "git-tree": "c510dba5b5989297225afde0848cb82ab8ccb1ad", "version": "5.0.0", "port-version": 0 }, { "git-tree": "7abe89f1cf1c33f953c027825b6861abccc4beb7", "version": "4.1.0", "port-version": 0 }, { "git-tree": "eedda7057a9359ec30cec22194f7a5da5320ac16", "version": "4.0.1", "port-version": 0 }, { "git-tree": "0dab54b91bf4c70fc898cb14fb2505773f54660b", "version": "4.0.0", "port-version": 0 }, { "git-tree": "ed9b93bfd6a7031b7d96fa5443873f4c2634a049", "version": "3.5.0", "port-version": 0 }, { "git-tree": "e7d60a5fc41c5f4aa283aeb1527a4bc8b55e934c", "version": "3.4.0", "port-version": 0 }, { "git-tree": "dbe9095cfdb6128d117003b2495f84e50653c220", "version": "3.3.0", "port-version": 0 }, { "git-tree": "fee21d430188c7e3c7f7d92da0cb30c48b6cafba", "version": "3.2.0", "port-version": 0 }, { "git-tree": "9903a88f968331b1a71254f21e8db7ddd5782df9", "version": "3.1.0", "port-version": 0 }, { "git-tree": "76370f19ee1a5791b57631d57ced31da022f8d3e", "version": "3.0.0", "port-version": 0 }, { "git-tree": "5ce890350a3e619b459eac4f676aa3e0858316b4", "version": "2.0.0", "port-version": 0 }, { "git-tree": "4ec35ab1086df444d30b05ff49cf2a66c21ebd52", "version": "1.9", "port-version": 0 } ] } ================================================ FILE: versions/b-/bsio.json ================================================ { "versions": [ { "git-tree": "f44938b5f2dcb43b73f40a5e9220db2a811bfb85", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/buck-yeh-bux-mariadb-client.json ================================================ { "versions": [ { "git-tree": "31efb6a6c246eb273825024fb22f318cdaff14e7", "version": "1.0.4", "port-version": 0 }, { "git-tree": "f0ad91f620ffdc0ad8b2618c79f38aefa00accf4", "version": "1.0.3", "port-version": 1 }, { "git-tree": "9c48d5f05cfc1910b874b0d5510ab332c108ab86", "version": "1.0.3", "port-version": 0 }, { "git-tree": "67f2e3a599ef1a984f01e973c71ccd5e4c0ba956", "version": "1.0.1", "port-version": 1 }, { "git-tree": "84453b40536c8c57162f627c28d4f3a148516ad8", "version": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/buck-yeh-bux-sqlite.json ================================================ { "versions": [ { "git-tree": "b26398639d9f209f042270dd3406973f4a4e896d", "version": "1.0.5", "port-version": 0 }, { "git-tree": "70a2bfdaeafb4f4193be712ad81e0f9d16ce6294", "version": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/buck-yeh-bux.json ================================================ { "versions": [ { "git-tree": "82d6c4afeec06bfa2d0aa2e8dcec8c7f1728751d", "version": "1.12.4", "port-version": 0 }, { "git-tree": "1b9ad1811baef43bfbb7f06acbb13c03efea688c", "version": "1.12.3", "port-version": 0 }, { "git-tree": "f29d8f2b188a322985f652ba156caf6683216c5e", "version": "1.12.2", "port-version": 0 }, { "git-tree": "4a05c125e6948a3dd84bef0874468cf1ba0407d1", "version": "1.12.1", "port-version": 0 }, { "git-tree": "757f61ee7bd93e69756546e8b10e5432d09442a4", "version": "1.11.1", "port-version": 0 }, { "git-tree": "c29c8cb5d1b698dbb27a625cb528eb16e1c50aef", "version": "1.10.2", "port-version": 0 }, { "git-tree": "a9fa9a115e82c9c94b0aaebb606bfc58fa995da7", "version": "1.9.0", "port-version": 0 }, { "git-tree": "d6265f9da5bdfd27e3f493f533efe654c8218efb", "version": "1.8.1", "port-version": 0 }, { "git-tree": "efa7245f66c619800613932d484de76669b5a43e", "version": "1.8.0", "port-version": 0 }, { "git-tree": "b1488eb5aead16b36f0d8f7d98b5036bd62ba695", "version": "1.7.0", "port-version": 0 }, { "git-tree": "856dddcbc547f4351ff1382b163f7c1d4f5de495", "version": "1.6.8", "port-version": 2 }, { "git-tree": "29028471ac882b35474e5f29767c8d1e92e31a6f", "version": "1.6.8", "port-version": 1 }, { "git-tree": "5163db7e9794e33e8d9842d222dcbf2d5985c4d8", "version": "1.6.8", "port-version": 0 }, { "git-tree": "791735981cce69c0de499f0daa95c483461ddd38", "version": "1.6.7", "port-version": 0 }, { "git-tree": "f7bc53828c4e0a83a3242bb28682011495747ad2", "version": "1.6.6", "port-version": 1 }, { "git-tree": "3d58f00b46ad32a1bfba6e5ee139aa47047e2bb6", "version": "1.6.6", "port-version": 0 }, { "git-tree": "70c9bddf07b6b1bf2bed8f994f13d1d5703ed105", "version": "1.6.5", "port-version": 1 }, { "git-tree": "1fd8af12a04b806faa041b8631ac34dc8c535b41", "version": "1.6.5", "port-version": 0 }, { "git-tree": "54886a840d4c55d27047321af6de1a5a01ed888e", "version": "1.6.3", "port-version": 1 }, { "git-tree": "19d56bb09ecc37268afec6a5384282e562491af4", "version": "1.6.3", "port-version": 0 }, { "git-tree": "c952bbb93f152d6db8e4bc8d0fbed4fb6e7ead2a", "version": "1.6.2", "port-version": 0 }, { "git-tree": "fa8f4e2afd3a69f94ed947a1dfc0dcb4006ae9c9", "version": "1.6.0", "port-version": 0 }, { "git-tree": "b420b8fe7a8712cee4a2317433902c32d4b6634d", "version": "1.5.0", "port-version": 0 }, { "git-tree": "4cdd433b94429da69f293e95dd60390daf6966a0", "version": "1.4.1", "port-version": 0 } ] } ================================================ FILE: versions/b-/bullet3.json ================================================ { "versions": [ { "git-tree": "8924ba3500ee3fb1124f3b827b86e0d456b90dd7", "version": "3.25", "port-version": 3 }, { "git-tree": "8ee7660a10459f4d3d11054ab88177126d2131ca", "version": "3.25", "port-version": 2 }, { "git-tree": "9ecadb6b6e0651347e89555207f28c4ee5b1b51c", "version": "3.25", "port-version": 1 }, { "git-tree": "2ddb8da6a7bd04aff093231935f5ead2a8ee7c79", "version": "3.25", "port-version": 0 }, { "git-tree": "fa19f46a232f321eca98906bc2b25dbf782b924b", "version": "3.22", "port-version": 2 }, { "git-tree": "0f5ea7c8c35304edd8b2eadb5b60b7300a97b772", "version": "3.22", "port-version": 1 }, { "git-tree": "d196c1956b370bd43889ddf5279600092e1af718", "version": "3.22", "port-version": 0 }, { "git-tree": "f526f9d9698251590883fcc52ac8bf0f7ef9c5a4", "version": "3.17", "port-version": 5 }, { "git-tree": "d986cc96144fa3de5201d56a508f348db9b66e71", "version": "3.17", "port-version": 4 }, { "git-tree": "88add55351bf89f89e584924663861c0a827bdf5", "version": "3.17", "port-version": 3 }, { "git-tree": "bcc42d2c8eb5fc4134c31f6176bc0c0ae3bc46e1", "version": "3.17", "port-version": 2 }, { "git-tree": "5d6e2d765a4cca130170b4a574e99a938ce54818", "version": "3.17", "port-version": 1 }, { "git-tree": "4fc6b5f085568cedd1171dc99fd75c7e412dcc5a", "version-string": "3.17", "port-version": 0 }, { "git-tree": "5917d99eda4055b22a1e49e6f2a37ebd9dd26e9e", "version-string": "2.89-1", "port-version": 0 }, { "git-tree": "6b2fa43c85ca822f5e65a0a17744b61720705c57", "version-string": "2.89", "port-version": 0 }, { "git-tree": "bfd0993507e461259cdd11bada1044a19de3a32f", "version-string": "2.88-2", "port-version": 0 }, { "git-tree": "bf3ac776df8d254e8262872f163955a88f27a599", "version-string": "2.88-1", "port-version": 0 }, { "git-tree": "4616688aadf1f29a31a5b54f0a69a85c702b288b", "version-string": "2.88", "port-version": 0 }, { "git-tree": "8fe3e6a20c356c49c76a0057721612ebc14cd3f1", "version-string": "2.87-1", "port-version": 0 }, { "git-tree": "9b4ec044e6bcc1a18069973b04c44362156e0a11", "version-string": "2.87", "port-version": 0 }, { "git-tree": "64e6fdc497f9da91574cf4ec59eb12b35ec4a45a", "version-string": "2.86.1-1", "port-version": 0 }, { "git-tree": "97f69ed15982ddce6cfd3ca1e1f828ac65e779b9", "version-string": "2.86.1", "port-version": 0 }, { "git-tree": "0f5fed31c787480aa3d9e3fd95345995ab817481", "version-string": "2.83.7.98d4780", "port-version": 0 }, { "git-tree": "c847799ff0a47c82cca3394130b56e2b84feb8eb", "version-string": "2.83.7 @98d4780", "port-version": 0 }, { "git-tree": "5e172359752a380c4990f451b3a742bb1ec3cbff", "version-string": "2.83.7", "port-version": 0 } ] } ================================================ FILE: versions/b-/bungee.json ================================================ { "versions": [ { "git-tree": "079b3d31b8583f0819abef1266979479e35c45f3", "version": "2.4.15", "port-version": 0 } ] } ================================================ FILE: versions/b-/bustache.json ================================================ { "versions": [ { "git-tree": "888d4f529ac5ecc9a12049beb50337d237f97e28", "version": "1.1.0", "port-version": 2 }, { "git-tree": "746808aa3bda8d2627ecc6da664cc58ebf57896e", "version-string": "1.1.0", "port-version": 1 }, { "git-tree": "3844f9514372b696483caa83af21759c1ddf2c67", "version-string": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/butteraugli.json ================================================ { "versions": [ { "git-tree": "abd41dd5d42cd344aab7266f0c9d6b9d1ebb8ed1", "version-date": "2019-05-08", "port-version": 4 }, { "git-tree": "4a06f382d1c12d38bd578aca7d4cfe4a94b9e492", "version-string": "2019-05-08", "port-version": 3 }, { "git-tree": "660959f50cba9f2fa2bc5d9cf775e268d746c7e9", "version-string": "2019-05-08", "port-version": 2 }, { "git-tree": "b0a1f3b7adf27f8437a4d6af30ec5367a225341d", "version-string": "2019-05-08-1", "port-version": 0 }, { "git-tree": "3c33456e75584e5c4a1e8cacaf0dd398e545ce13", "version-string": "2019-05-08", "port-version": 0 }, { "git-tree": "38f189c21d0d0c0121254a51bc3453446c2e9215", "version-string": "2018-02-25-1", "port-version": 0 }, { "git-tree": "a799a90e828b4a20c584dee68c20b9c0322ad467", "version-string": "2018-02-25", "port-version": 0 }, { "git-tree": "4d12f7ea4aeb8d0042692c41698d68283d2cfc6d", "version-string": "2017-09-02-8c60a2aefa19adb-1", "port-version": 0 }, { "git-tree": "d2c79b617b16c4c4bb8773dd73f2dd266004a28b", "version-string": "2017-09-02-8c60a2aefa19adb", "port-version": 0 } ] } ================================================ FILE: versions/b-/bw-sqlitemap.json ================================================ { "versions": [ { "git-tree": "5732019c2b545946d24684734c2cf28a4df626a1", "version": "1.2.0", "port-version": 0 }, { "git-tree": "84db5f837e7fdd3aaf8e77aca1cfcda94e3f8c11", "version": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bw-tempdir.json ================================================ { "versions": [ { "git-tree": "bb5ed58dd7b21da2dda8a5f058cdfcfc6bfb5671", "version": "1.0.1", "port-version": 0 }, { "git-tree": "dbdad54667e097904671d22fac55d818283e8fc2", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bxzstr.json ================================================ { "versions": [ { "git-tree": "bcce40882faffa89890a3493345dfd122890a6d3", "version": "1.2.3", "port-version": 0 }, { "git-tree": "92e43505182b0acdde866c2f3338cbaa01ee1ee1", "version": "1.2.2", "port-version": 0 }, { "git-tree": "3f65837ce5ca6286c092c3f837d185e9ec51c4d1", "version": "1.2.1", "port-version": 0 }, { "git-tree": "23e9ed2e92c2146d490f3d2b61de409c0201adeb", "version": "1.2.0", "port-version": 1 }, { "git-tree": "ad9511ac67f069a83b89c91a8fb0c995a6aca196", "version": "1.2.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/byte-lite.json ================================================ { "versions": [ { "git-tree": "5bc136e43764a88f51b7750b1937cd548177c79c", "version": "0.3.0", "port-version": 0 }, { "git-tree": "d83b7cf23d9a7b17c28fda5fcd36a25dd8a085ef", "version-string": "0.2.0", "port-version": 1 }, { "git-tree": "b8ac7b847acca6724eb539674e7243b477163607", "version-string": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/b-/bzip2.json ================================================ { "versions": [ { "git-tree": "2d029da682847c5ebdc54e4dbea001331a02207e", "version-semver": "1.0.8", "port-version": 6 }, { "git-tree": "92e9a8bbf1abbd89872b48ad82fcf75852de1006", "version-semver": "1.0.8", "port-version": 5 }, { "git-tree": "6165360d15e6de08dff3a5f079d51e69908cc55d", "version-semver": "1.0.8", "port-version": 4 }, { "git-tree": "6ee6ad1d0bf78137f7f77671f393abc83363a710", "version-semver": "1.0.8", "port-version": 3 }, { "git-tree": "a1ea352502e69888a565563d9151d3f7ab609fb1", "version-semver": "1.0.8", "port-version": 2 }, { "git-tree": "5a1b1b8d666b9ef64e8596e4716c2e2f654f4532", "version-string": "1.0.8", "port-version": 1 }, { "git-tree": "3b585ec14d62fcd6573fb1a67989292a7455440d", "version-string": "1.0.8", "port-version": 0 }, { "git-tree": "916c629389f6bcead7b4914304cc52a6ed4abad6", "version-string": "1.0.6", "port-version": 7 }, { "git-tree": "90fdb940b53d87fa9c1984fbb0d9b38d5fbcfece", "version-string": "1.0.6-6", "port-version": 0 }, { "git-tree": "a3c18b760c9c233f263c9cba08b1b27cb7bcddb6", "version-string": "1.0.6-5", "port-version": 0 }, { "git-tree": "8e0b27dfdffb1bb806a248c12255dc07185c66c0", "version-string": "1.0.6-4", "port-version": 0 }, { "git-tree": "6c9756bcffe55c228f0c2843687db6a9c8ea3560", "version-string": "1.0.6-3", "port-version": 0 }, { "git-tree": "8322dd10d768f96c4e48a6241c1e5c37a5c11dc1", "version-string": "1.0.6-2", "port-version": 0 }, { "git-tree": "37735da283a93cb3a4d7c828943819a8d07c226c", "version-string": "1.0.6-1", "port-version": 0 }, { "git-tree": "4bb7bb31abfc9bc33ff0655a1552e6e88244dc97", "version-string": "1.0.6", "port-version": 0 } ] } ================================================ FILE: versions/b-/bzip3.json ================================================ { "versions": [ { "git-tree": "274144c8b721d4db5a1e15126c1cf9a159016166", "version": "1.5.3", "port-version": 0 } ] } ================================================ FILE: versions/baseline.json ================================================ { "default": { "3fd": { "baseline": "2.6.3", "port-version": 5 }, "7zip": { "baseline": "26.0", "port-version": 0 }, "abcmake": { "baseline": "6.4.0", "port-version": 0 }, "ableton-link": { "baseline": "3.1.5", "port-version": 0 }, "abseil": { "baseline": "20260107.1", "port-version": 1 }, "absent": { "baseline": "0.3.1", "port-version": 3 }, "abumq-ripe": { "baseline": "4.2.2", "port-version": 1 }, "ace": { "baseline": "8.0.5", "port-version": 0 }, "acl": { "baseline": "2.3.2", "port-version": 1 }, "activemq-cpp": { "baseline": "3.9.5", "port-version": 18 }, "ada-idna": { "baseline": "0.4.0", "port-version": 0 }, "ada-url": { "baseline": "3.4.3", "port-version": 0 }, "ade": { "baseline": "0.1.2e", "port-version": 1 }, "adios2": { "baseline": "2.9.2", "port-version": 0 }, "advobfuscator": { "baseline": "2.1.1", "port-version": 0 }, "aeron": { "baseline": "1.50.3", "port-version": 0 }, "air-ctl": { "baseline": "1.1.2", "port-version": 3 }, "aixlog": { "baseline": "1.5.0", "port-version": 1 }, "aklomp-base64": { "baseline": "0.5.2", "port-version": 0 }, "alac": { "baseline": "2017-11-03-c38887c5", "port-version": 4 }, "alac-decoder": { "baseline": "0.2", "port-version": 7 }, "alembic": { "baseline": "1.8.10", "port-version": 1 }, "aliyun-oss-c-sdk": { "baseline": "3.11.2", "port-version": 0 }, "aliyun-oss-cpp-sdk": { "baseline": "1.10.1", "port-version": 0 }, "allegro5": { "baseline": "5.2.10.0", "port-version": 1 }, "alpaca": { "baseline": "0.2.1", "port-version": 0 }, "alpaka": { "baseline": "2.1.1", "port-version": 0 }, "alsa": { "baseline": "1.2.15.3", "port-version": 1 }, "amd-adl-sdk": { "baseline": "17.1", "port-version": 0 }, "amd-amf": { "baseline": "1.5.0", "port-version": 0 }, "ampl-asl": { "baseline": "1.0.1", "port-version": 0 }, "ampl-mp": { "baseline": "4.1.0", "port-version": 0 }, "amqpcpp": { "baseline": "4.3.27", "port-version": 0 }, "anari": { "baseline": "0.15.0", "port-version": 0 }, "anax": { "baseline": "2.1.0", "port-version": 8 }, "andytech-tiny-crc32c": { "baseline": "1.0.1", "port-version": 0 }, "angelscript": { "baseline": "2.38.0", "port-version": 0 }, "angle": { "baseline": "chromium_7258", "port-version": 2 }, "ankurvdev-embedresource": { "baseline": "0.0.12", "port-version": 0 }, "annoy": { "baseline": "1.17.3", "port-version": 0 }, "antlr4": { "baseline": "4.13.2", "port-version": 1 }, "any-lite": { "baseline": "0.4.0", "port-version": 0 }, "anyrpc": { "baseline": "2021-08-24", "port-version": 2 }, "anyxx": { "baseline": "0.6.0", "port-version": 0 }, "aom": { "baseline": "3.13.1", "port-version": 1 }, "apache-datasketches": { "baseline": "5.2.0", "port-version": 1 }, "approval-tests-cpp": { "baseline": "10.13.0", "port-version": 0 }, "appstream": { "baseline": "1.0.6", "port-version": 1 }, "appstream-glib": { "baseline": "0.8.3", "port-version": 0 }, "apr": { "baseline": "1.7.6", "port-version": 1 }, "apr-util": { "baseline": "1.6.3", "port-version": 0 }, "apriltag": { "baseline": "3.4.5", "port-version": 0 }, "apsi": { "baseline": "0.11.0", "port-version": 0 }, "aravis": { "baseline": "0.8.35", "port-version": 0 }, "arcticdb-sparrow": { "baseline": "2.3.0", "port-version": 0 }, "arcticdb-sparrow-extensions": { "baseline": "1.2.0", "port-version": 0 }, "arcus": { "baseline": "4.10.0", "port-version": 5 }, "arg-router": { "baseline": "1.4.0", "port-version": 1 }, "argagg": { "baseline": "0.4.7", "port-version": 0 }, "argh": { "baseline": "1.3.2", "port-version": 1 }, "argon2": { "baseline": "20190702", "port-version": 1 }, "argparse": { "baseline": "3.2", "port-version": 0 }, "args": { "baseline": "6.4.8", "port-version": 0 }, "argtable2": { "baseline": "2.13", "port-version": 11 }, "argtable3": { "baseline": "3.3.1", "port-version": 0 }, "argumentum": { "baseline": "0.3.2", "port-version": 0 }, "argus": { "baseline": "0.2.0", "port-version": 0 }, "aricpp": { "baseline": "1.2.1", "port-version": 0 }, "armadillo": { "baseline": "14.4.1", "port-version": 1 }, "arpack-ng": { "baseline": "3.9.1", "port-version": 1 }, "arrayfire": { "baseline": "3.8.0", "port-version": 10 }, "arrow": { "baseline": "23.0.1", "port-version": 0 }, "arrow-adbc": { "baseline": "16", "port-version": 0 }, "arsenalgear": { "baseline": "2.1.1", "port-version": 0 }, "arun11299-cpp-subprocess": { "baseline": "2.5", "port-version": 0 }, "ashes": { "baseline": "2023-03-12", "port-version": 0 }, "asio": { "baseline": "1.32.0", "port-version": 0 }, "asio-grpc": { "baseline": "3.6.0", "port-version": 0 }, "asiochan": { "baseline": "2022-11-25", "port-version": 1 }, "asiosdk": { "baseline": "2.3.4", "port-version": 2 }, "asmjit": { "baseline": "2025-10-13", "port-version": 0 }, "asmtk": { "baseline": "2022-11-06", "port-version": 1 }, "asock": { "baseline": "1.0.7", "port-version": 0 }, "assimp": { "baseline": "6.0.4", "port-version": 0 }, "astr": { "baseline": "0.3.1", "port-version": 0 }, "async-mqtt": { "baseline": "10.3.0", "port-version": 0 }, "async-simple": { "baseline": "1.4", "port-version": 0 }, "asynch": { "baseline": "2019-09-21", "port-version": 3 }, "asyncplusplus": { "baseline": "1.2", "port-version": 0 }, "at-spi2-atk": { "baseline": "2.38.0", "port-version": 2 }, "at-spi2-core": { "baseline": "2.44.1", "port-version": 5 }, "atk": { "baseline": "2.38.0", "port-version": 11 }, "atkmm": { "baseline": "2.36.3", "port-version": 0 }, "atl": { "baseline": "0", "port-version": 1 }, "atliac-minitest": { "baseline": "1.0.0", "port-version": 0 }, "atlmfc": { "baseline": "0", "port-version": 4 }, "atomic-queue": { "baseline": "1.7.2", "port-version": 0 }, "attr": { "baseline": "2.5.2", "port-version": 1 }, "aubio": { "baseline": "2024-01-03", "port-version": 1 }, "audioengine": { "baseline": "1.3", "port-version": 0 }, "audiofile": { "baseline": "1.1.4", "port-version": 0 }, "audit": { "baseline": "4.1.3", "port-version": 1 }, "aurora": { "baseline": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933", "port-version": 2 }, "aurora-au": { "baseline": "0.5.1", "port-version": 0 }, "autobahn": { "baseline": "20.8.1", "port-version": 2 }, "autodock-vina": { "baseline": "1.2.7", "port-version": 0 }, "avcpp": { "baseline": "3.0.1", "port-version": 0 }, "avir": { "baseline": "3.1", "port-version": 0 }, "avisynthplus": { "baseline": "3.7.5", "port-version": 0 }, "avro-c": { "baseline": "1.12.1", "port-version": 1 }, "avro-cpp": { "baseline": "1.12.1", "port-version": 1 }, "awlib": { "baseline": "2024-04-06", "port-version": 2 }, "aws-c-auth": { "baseline": "0.10.1", "port-version": 0 }, "aws-c-cal": { "baseline": "0.9.13", "port-version": 0 }, "aws-c-common": { "baseline": "0.12.6", "port-version": 0 }, "aws-c-compression": { "baseline": "0.3.2", "port-version": 0 }, "aws-c-event-stream": { "baseline": "0.6.0", "port-version": 0 }, "aws-c-http": { "baseline": "0.10.11", "port-version": 0 }, "aws-c-io": { "baseline": "0.26.2", "port-version": 0 }, "aws-c-mqtt": { "baseline": "0.15.1", "port-version": 0 }, "aws-c-s3": { "baseline": "0.11.5", "port-version": 0 }, "aws-c-sdkutils": { "baseline": "0.2.4", "port-version": 0 }, "aws-checksums": { "baseline": "0.2.10", "port-version": 0 }, "aws-crt-cpp": { "baseline": "0.37.4", "port-version": 0 }, "aws-lambda-cpp": { "baseline": "0.2.10", "port-version": 0 }, "aws-sdk-cpp": { "baseline": "1.11.769", "port-version": 0 }, "ayush272002-dotenv": { "baseline": "1.0.2", "port-version": 0 }, "azmq": { "baseline": "2025-11-30", "port-version": 0 }, "azure-c-shared-utility": { "baseline": "2025-03-31", "port-version": 0 }, "azure-core-amqp-cpp": { "baseline": "1.0.0-beta.11", "port-version": 2 }, "azure-core-cpp": { "baseline": "1.16.2", "port-version": 0 }, "azure-core-tracing-opentelemetry-cpp": { "baseline": "1.0.0-beta.4", "port-version": 6 }, "azure-data-tables-cpp": { "baseline": "1.0.0-beta.6", "port-version": 1 }, "azure-identity-cpp": { "baseline": "1.13.3", "port-version": 0 }, "azure-iot-sdk-c": { "baseline": "2025-03-31", "port-version": 0 }, "azure-kinect-depth-engine": { "baseline": "1.4.2", "port-version": 0 }, "azure-kinect-sensor-sdk": { "baseline": "1.4.2", "port-version": 0 }, "azure-macro-utils-c": { "baseline": "2022-01-21", "port-version": 1 }, "azure-messaging-eventhubs-checkpointstore-blob-cpp": { "baseline": "1.0.0-beta.1", "port-version": 5 }, "azure-messaging-eventhubs-cpp": { "baseline": "1.0.0-beta.10", "port-version": 1 }, "azure-security-attestation-cpp": { "baseline": "1.1.0", "port-version": 8 }, "azure-security-keyvault-administration-cpp": { "baseline": "4.0.0-beta.5", "port-version": 2 }, "azure-security-keyvault-certificates-cpp": { "baseline": "4.2.1", "port-version": 4 }, "azure-security-keyvault-keys-cpp": { "baseline": "4.4.1", "port-version": 4 }, "azure-security-keyvault-secrets-cpp": { "baseline": "4.2.1", "port-version": 4 }, "azure-storage-blobs-cpp": { "baseline": "12.16.0", "port-version": 0 }, "azure-storage-common-cpp": { "baseline": "12.12.0", "port-version": 0 }, "azure-storage-cpp": { "baseline": "7.5.0", "port-version": 8 }, "azure-storage-files-datalake-cpp": { "baseline": "12.14.0", "port-version": 0 }, "azure-storage-files-shares-cpp": { "baseline": "12.16.0", "port-version": 0 }, "azure-storage-queues-cpp": { "baseline": "12.6.0", "port-version": 0 }, "azure-uamqp-c": { "baseline": "2025-03-31", "port-version": 0 }, "azure-uhttp-c": { "baseline": "2025-03-31", "port-version": 0 }, "azure-umqtt-c": { "baseline": "2025-03-31", "port-version": 0 }, "b64": { "baseline": "2.0.0.1", "port-version": 2 }, "babl": { "baseline": "0.1.122", "port-version": 0 }, "backward-cpp": { "baseline": "2023-11-24", "port-version": 1 }, "baresip-libre": { "baseline": "4.6.0", "port-version": 0 }, "bark": { "baseline": "0.5.0", "port-version": 0 }, "barkeep": { "baseline": "0.1.5", "port-version": 0 }, "basisu": { "baseline": "2.1.0", "port-version": 0 }, "bbalouki-itch": { "baseline": "1.1.0", "port-version": 0 }, "bbstrader": { "baseline": "2.0.6", "port-version": 0 }, "bcg729": { "baseline": "1.1.1", "port-version": 4 }, "bddisasm": { "baseline": "3.0.1", "port-version": 0 }, "bde": { "baseline": "4.18.0.0", "port-version": 0 }, "bdwgc": { "baseline": "8.2.12", "port-version": 0 }, "behaviortree-cpp": { "baseline": "4.9.0", "port-version": 0 }, "benchmark": { "baseline": "1.9.5", "port-version": 0 }, "bento4": { "baseline": "1.6.0-641", "port-version": 0 }, "berkeleydb": { "baseline": "4.8.30", "port-version": 9 }, "better-enums": { "baseline": "0.11.3", "port-version": 0 }, "bext-di": { "baseline": "1.3.2", "port-version": 0 }, "bext-mp": { "baseline": "2.0.11", "port-version": 0 }, "bext-sml": { "baseline": "1.1.13", "port-version": 0 }, "bext-sml2": { "baseline": "2.0.0", "port-version": 0 }, "bext-text": { "baseline": "2024-01-19", "port-version": 0 }, "bext-ut": { "baseline": "2.3.1", "port-version": 0 }, "bext-wintls": { "baseline": "1.0.0", "port-version": 0 }, "bfgroup-lyra": { "baseline": "1.7.0", "port-version": 0 }, "bgfx": { "baseline": "1.129.8940-496", "port-version": 1 }, "bigint": { "baseline": "2010.04.30", "port-version": 8 }, "binlog": { "baseline": "2021-04-16", "port-version": 1 }, "binn": { "baseline": "3.0", "port-version": 3 }, "bit7z": { "baseline": "4.0.11", "port-version": 0 }, "bitmagic": { "baseline": "8.0.1", "port-version": 1 }, "bitserializer": { "baseline": "0.85", "port-version": 0 }, "bitsery": { "baseline": "5.2.5", "port-version": 0 }, "blake3": { "baseline": "1.8.3", "port-version": 0 }, "blas": { "baseline": "2023-04-14", "port-version": 5 }, "blaze": { "baseline": "3.8.2", "port-version": 1 }, "blend2d": { "baseline": "2025-03-08", "port-version": 1 }, "blickfeld-qb2": { "baseline": "2.13", "port-version": 0 }, "blingfire": { "baseline": "0.1.8.1", "port-version": 1 }, "blitz": { "baseline": "2020-03-25", "port-version": 7 }, "bloomberg-quantum": { "baseline": "2023-02-03", "port-version": 0 }, "blosc": { "baseline": "1.21.6", "port-version": 0 }, "blosc2": { "baseline": "2.23.1", "port-version": 0 }, "blpapi": { "baseline": "3.25.1", "port-version": 0 }, "bluescarni-tanuki": { "baseline": "2024-08-17", "port-version": 0 }, "boinc": { "baseline": "8.2.8", "port-version": 0 }, "boolinq": { "baseline": "3.0.4", "port-version": 0 }, "boost": { "baseline": "1.90.0", "port-version": 1 }, "boost-accumulators": { "baseline": "1.90.0", "port-version": 1 }, "boost-algorithm": { "baseline": "1.90.0", "port-version": 1 }, "boost-align": { "baseline": "1.90.0", "port-version": 1 }, "boost-any": { "baseline": "1.90.0", "port-version": 1 }, "boost-array": { "baseline": "1.90.0", "port-version": 1 }, "boost-asio": { "baseline": "1.90.0", "port-version": 1 }, "boost-assert": { "baseline": "1.90.0", "port-version": 1 }, "boost-assign": { "baseline": "1.90.0", "port-version": 1 }, "boost-atomic": { "baseline": "1.90.0", "port-version": 1 }, "boost-beast": { "baseline": "1.90.0", "port-version": 1 }, "boost-bimap": { "baseline": "1.90.0", "port-version": 1 }, "boost-bind": { "baseline": "1.90.0", "port-version": 1 }, "boost-bloom": { "baseline": "1.90.0", "port-version": 1 }, "boost-build": { "baseline": "1.90.0", "port-version": 1 }, "boost-callable-traits": { "baseline": "1.90.0", "port-version": 1 }, "boost-charconv": { "baseline": "1.90.0", "port-version": 1 }, "boost-chrono": { "baseline": "1.90.0", "port-version": 1 }, "boost-circular-buffer": { "baseline": "1.90.0", "port-version": 1 }, "boost-cmake": { "baseline": "1.90.0", "port-version": 1 }, "boost-cobalt": { "baseline": "1.90.0", "port-version": 1 }, "boost-compat": { "baseline": "1.90.0", "port-version": 1 }, "boost-compatibility": { "baseline": "1.86.0", "port-version": 0 }, "boost-compute": { "baseline": "1.90.0", "port-version": 1 }, "boost-concept-check": { "baseline": "1.90.0", "port-version": 1 }, "boost-config": { "baseline": "1.90.0", "port-version": 1 }, "boost-container": { "baseline": "1.90.0", "port-version": 1 }, "boost-container-hash": { "baseline": "1.90.0", "port-version": 1 }, "boost-context": { "baseline": "1.90.0", "port-version": 1 }, "boost-contract": { "baseline": "1.90.0", "port-version": 1 }, "boost-conversion": { "baseline": "1.90.0", "port-version": 1 }, "boost-convert": { "baseline": "1.90.0", "port-version": 1 }, "boost-core": { "baseline": "1.90.0", "port-version": 1 }, "boost-coroutine": { "baseline": "1.90.0", "port-version": 1 }, "boost-coroutine2": { "baseline": "1.90.0", "port-version": 1 }, "boost-crc": { "baseline": "1.90.0", "port-version": 1 }, "boost-date-time": { "baseline": "1.90.0", "port-version": 1 }, "boost-describe": { "baseline": "1.90.0", "port-version": 1 }, "boost-detail": { "baseline": "1.90.0", "port-version": 1 }, "boost-dll": { "baseline": "1.90.0", "port-version": 1 }, "boost-dynamic-bitset": { "baseline": "1.90.0", "port-version": 1 }, "boost-endian": { "baseline": "1.90.0", "port-version": 1 }, "boost-exception": { "baseline": "1.90.0", "port-version": 1 }, "boost-fiber": { "baseline": "1.90.0", "port-version": 1 }, "boost-filesystem": { "baseline": "1.90.0", "port-version": 1 }, "boost-flyweight": { "baseline": "1.90.0", "port-version": 1 }, "boost-foreach": { "baseline": "1.90.0", "port-version": 1 }, "boost-format": { "baseline": "1.90.0", "port-version": 1 }, "boost-function": { "baseline": "1.90.0", "port-version": 1 }, "boost-function-types": { "baseline": "1.90.0", "port-version": 1 }, "boost-functional": { "baseline": "1.90.0", "port-version": 1 }, "boost-fusion": { "baseline": "1.90.0", "port-version": 1 }, "boost-geometry": { "baseline": "1.90.0", "port-version": 1 }, "boost-gil": { "baseline": "1.90.0", "port-version": 1 }, "boost-graph": { "baseline": "1.90.0", "port-version": 1 }, "boost-graph-parallel": { "baseline": "1.90.0", "port-version": 1 }, "boost-hana": { "baseline": "1.90.0", "port-version": 1 }, "boost-hash2": { "baseline": "1.90.0", "port-version": 1 }, "boost-headers": { "baseline": "1.90.0", "port-version": 1 }, "boost-heap": { "baseline": "1.90.0", "port-version": 1 }, "boost-histogram": { "baseline": "1.90.0", "port-version": 1 }, "boost-hof": { "baseline": "1.90.0", "port-version": 1 }, "boost-icl": { "baseline": "1.90.0", "port-version": 1 }, "boost-integer": { "baseline": "1.90.0", "port-version": 1 }, "boost-interprocess": { "baseline": "1.90.0", "port-version": 1 }, "boost-interval": { "baseline": "1.90.0", "port-version": 1 }, "boost-intrusive": { "baseline": "1.90.0", "port-version": 1 }, "boost-io": { "baseline": "1.90.0", "port-version": 1 }, "boost-iostreams": { "baseline": "1.90.0", "port-version": 1 }, "boost-iterator": { "baseline": "1.90.0", "port-version": 1 }, "boost-json": { "baseline": "1.90.0", "port-version": 1 }, "boost-lambda": { "baseline": "1.90.0", "port-version": 1 }, "boost-lambda2": { "baseline": "1.90.0", "port-version": 1 }, "boost-leaf": { "baseline": "1.90.0", "port-version": 1 }, "boost-lexical-cast": { "baseline": "1.90.0", "port-version": 1 }, "boost-local-function": { "baseline": "1.90.0", "port-version": 1 }, "boost-locale": { "baseline": "1.90.0", "port-version": 1 }, "boost-lockfree": { "baseline": "1.90.0", "port-version": 1 }, "boost-log": { "baseline": "1.90.0", "port-version": 1 }, "boost-logic": { "baseline": "1.90.0", "port-version": 1 }, "boost-math": { "baseline": "1.90.0", "port-version": 1 }, "boost-metaparse": { "baseline": "1.90.0", "port-version": 1 }, "boost-move": { "baseline": "1.90.0", "port-version": 1 }, "boost-mp11": { "baseline": "1.90.0", "port-version": 1 }, "boost-mpi": { "baseline": "1.90.0", "port-version": 1 }, "boost-mpl": { "baseline": "1.90.0", "port-version": 1 }, "boost-mqtt5": { "baseline": "1.90.0", "port-version": 1 }, "boost-msm": { "baseline": "1.90.0", "port-version": 1 }, "boost-multi-array": { "baseline": "1.90.0", "port-version": 1 }, "boost-multi-index": { "baseline": "1.90.0", "port-version": 1 }, "boost-multiprecision": { "baseline": "1.90.0", "port-version": 1 }, "boost-mysql": { "baseline": "1.90.0", "port-version": 1 }, "boost-nowide": { "baseline": "1.90.0", "port-version": 1 }, "boost-numeric-conversion": { "baseline": "1.90.0", "port-version": 1 }, "boost-odeint": { "baseline": "1.90.0", "port-version": 1 }, "boost-openmethod": { "baseline": "1.90.0", "port-version": 1 }, "boost-optional": { "baseline": "1.90.0", "port-version": 1 }, "boost-outcome": { "baseline": "1.90.0", "port-version": 1 }, "boost-parameter": { "baseline": "1.90.0", "port-version": 1 }, "boost-parameter-python": { "baseline": "1.90.0", "port-version": 1 }, "boost-parser": { "baseline": "1.90.0", "port-version": 1 }, "boost-pfr": { "baseline": "1.90.0", "port-version": 1 }, "boost-phoenix": { "baseline": "1.90.0", "port-version": 1 }, "boost-poly-collection": { "baseline": "1.90.0", "port-version": 1 }, "boost-polygon": { "baseline": "1.90.0", "port-version": 1 }, "boost-pool": { "baseline": "1.90.0", "port-version": 1 }, "boost-predef": { "baseline": "1.90.0", "port-version": 1 }, "boost-preprocessor": { "baseline": "1.90.0", "port-version": 1 }, "boost-process": { "baseline": "1.90.0", "port-version": 1 }, "boost-program-options": { "baseline": "1.90.0", "port-version": 1 }, "boost-property-map": { "baseline": "1.90.0", "port-version": 1 }, "boost-property-map-parallel": { "baseline": "1.90.0", "port-version": 1 }, "boost-property-tree": { "baseline": "1.90.0", "port-version": 1 }, "boost-proto": { "baseline": "1.90.0", "port-version": 1 }, "boost-ptr-container": { "baseline": "1.90.0", "port-version": 1 }, "boost-python": { "baseline": "1.90.0", "port-version": 1 }, "boost-qvm": { "baseline": "1.90.0", "port-version": 1 }, "boost-random": { "baseline": "1.90.0", "port-version": 1 }, "boost-range": { "baseline": "1.90.0", "port-version": 1 }, "boost-ratio": { "baseline": "1.90.0", "port-version": 1 }, "boost-rational": { "baseline": "1.90.0", "port-version": 1 }, "boost-redis": { "baseline": "1.90.0", "port-version": 1 }, "boost-regex": { "baseline": "1.90.0", "port-version": 1 }, "boost-safe-numerics": { "baseline": "1.90.0", "port-version": 1 }, "boost-scope": { "baseline": "1.90.0", "port-version": 1 }, "boost-scope-exit": { "baseline": "1.90.0", "port-version": 1 }, "boost-serialization": { "baseline": "1.90.0", "port-version": 1 }, "boost-signals2": { "baseline": "1.90.0", "port-version": 1 }, "boost-smart-ptr": { "baseline": "1.90.0", "port-version": 1 }, "boost-sort": { "baseline": "1.90.0", "port-version": 1 }, "boost-spirit": { "baseline": "1.90.0", "port-version": 1 }, "boost-stacktrace": { "baseline": "1.90.0", "port-version": 1 }, "boost-statechart": { "baseline": "1.90.0", "port-version": 1 }, "boost-static-assert": { "baseline": "1.90.0", "port-version": 1 }, "boost-static-string": { "baseline": "1.90.0", "port-version": 1 }, "boost-stl-interfaces": { "baseline": "1.90.0", "port-version": 1 }, "boost-system": { "baseline": "1.90.0", "port-version": 1 }, "boost-test": { "baseline": "1.90.0", "port-version": 1 }, "boost-thread": { "baseline": "1.90.0", "port-version": 1 }, "boost-throw-exception": { "baseline": "1.90.0", "port-version": 1 }, "boost-timer": { "baseline": "1.90.0", "port-version": 1 }, "boost-tokenizer": { "baseline": "1.90.0", "port-version": 1 }, "boost-tti": { "baseline": "1.90.0", "port-version": 1 }, "boost-tuple": { "baseline": "1.90.0", "port-version": 1 }, "boost-type-erasure": { "baseline": "1.90.0", "port-version": 1 }, "boost-type-index": { "baseline": "1.90.0", "port-version": 1 }, "boost-type-traits": { "baseline": "1.90.0", "port-version": 1 }, "boost-typeof": { "baseline": "1.90.0", "port-version": 1 }, "boost-ublas": { "baseline": "1.90.0", "port-version": 1 }, "boost-uninstall": { "baseline": "1.90.0", "port-version": 1 }, "boost-units": { "baseline": "1.90.0", "port-version": 1 }, "boost-unordered": { "baseline": "1.90.0", "port-version": 1 }, "boost-url": { "baseline": "1.90.0", "port-version": 1 }, "boost-utility": { "baseline": "1.90.0", "port-version": 1 }, "boost-uuid": { "baseline": "1.90.0", "port-version": 1 }, "boost-variant": { "baseline": "1.90.0", "port-version": 1 }, "boost-variant2": { "baseline": "1.90.0", "port-version": 1 }, "boost-vcpkg-helpers": { "baseline": "1.84.0", "port-version": 0 }, "boost-vmd": { "baseline": "1.90.0", "port-version": 1 }, "boost-wave": { "baseline": "1.90.0", "port-version": 1 }, "boost-winapi": { "baseline": "1.90.0", "port-version": 1 }, "boost-xpressive": { "baseline": "1.90.0", "port-version": 1 }, "boost-yap": { "baseline": "1.90.0", "port-version": 1 }, "boringssl": { "baseline": "2025-08-18", "port-version": 0 }, "botan": { "baseline": "3.10.0", "port-version": 1 }, "box2d": { "baseline": "3.1.1", "port-version": 0 }, "braft": { "baseline": "2021-26-04", "port-version": 7 }, "breakpad": { "baseline": "2024-02-16", "port-version": 0 }, "brigand": { "baseline": "1.3.0", "port-version": 3 }, "brotli": { "baseline": "1.2.0", "port-version": 0 }, "brpc": { "baseline": "1.16.0", "port-version": 0 }, "brunocodutra-metal": { "baseline": "2.1.4", "port-version": 0 }, "brynet": { "baseline": "1.12.2", "port-version": 0 }, "bshoshany-thread-pool": { "baseline": "5.1.0", "port-version": 0 }, "bsio": { "baseline": "1.0.0", "port-version": 0 }, "buck-yeh-bux": { "baseline": "1.12.4", "port-version": 0 }, "buck-yeh-bux-sqlite": { "baseline": "1.0.5", "port-version": 0 }, "bullet3": { "baseline": "3.25", "port-version": 3 }, "bungee": { "baseline": "2.4.15", "port-version": 0 }, "bustache": { "baseline": "1.1.0", "port-version": 2 }, "butteraugli": { "baseline": "2019-05-08", "port-version": 4 }, "bw-sqlitemap": { "baseline": "1.2.0", "port-version": 0 }, "bw-tempdir": { "baseline": "1.0.1", "port-version": 0 }, "bxzstr": { "baseline": "1.2.3", "port-version": 0 }, "byte-lite": { "baseline": "0.3.0", "port-version": 0 }, "bzip2": { "baseline": "1.0.8", "port-version": 6 }, "bzip3": { "baseline": "1.5.3", "port-version": 0 }, "c-ares": { "baseline": "1.34.6", "port-version": 1 }, "c4core": { "baseline": "0.2.10", "port-version": 0 }, "c89stringutils": { "baseline": "0.0.2", "port-version": 0 }, "c9y": { "baseline": "0.8.0", "port-version": 0 }, "cachelib": { "baseline": "2026.02.23.00", "port-version": 0 }, "cadons-ctus": { "baseline": "1.0.0", "port-version": 0 }, "caf": { "baseline": "1.1.0", "port-version": 0 }, "cairo": { "baseline": "1.18.4", "port-version": 1 }, "cairomm": { "baseline": "1.18.0", "port-version": 0 }, "calceph": { "baseline": "4.0.5", "port-version": 1 }, "camport3": { "baseline": "1.6.75", "port-version": 0 }, "canvas-ity": { "baseline": "1.0", "port-version": 0 }, "capnproto": { "baseline": "1.4.0", "port-version": 0 }, "capstone": { "baseline": "5.0.7", "port-version": 0 }, "cargs": { "baseline": "1.2.0", "port-version": 0 }, "casadi": { "baseline": "3.7.2", "port-version": 0 }, "casclib": { "baseline": "2024-06-05", "port-version": 0 }, "catch2": { "baseline": "3.13.0", "port-version": 1 }, "cblas": { "baseline": "2025-10-29", "port-version": 0 }, "cccapstone": { "baseline": "9b4128ee1153e78288a1b5433e2c06a0d47a4c4e", "port-version": 2 }, "ccd": { "baseline": "2.1", "port-version": 4 }, "ccfits": { "baseline": "2.7", "port-version": 0 }, "cctag": { "baseline": "1.0.4", "port-version": 1 }, "cctz": { "baseline": "2.5", "port-version": 0 }, "cddlib": { "baseline": "0.94n", "port-version": 1 }, "cdt": { "baseline": "1.4.4", "port-version": 0 }, "celero": { "baseline": "2.9.1", "port-version": 0 }, "cello": { "baseline": "2019-07-23", "port-version": 4 }, "cereal": { "baseline": "1.3.2", "port-version": 1 }, "ceres": { "baseline": "2.2.0", "port-version": 6 }, "cfitsio": { "baseline": "4.6.3", "port-version": 0 }, "cgal": { "baseline": "6.1.1", "port-version": 0 }, "cgicc": { "baseline": "3.2.20", "port-version": 2 }, "cglm": { "baseline": "0.9.6", "port-version": 0 }, "cgltf": { "baseline": "1.15", "port-version": 0 }, "cgns": { "baseline": "4.5.1", "port-version": 0 }, "chaiscript": { "baseline": "6.1.0", "port-version": 3 }, "chakracore": { "baseline": "2022-11-09", "port-version": 7 }, "charls": { "baseline": "2.4.3", "port-version": 0 }, "chartdir": { "baseline": "7.0.0", "port-version": 8 }, "check": { "baseline": "0.15.2", "port-version": 5 }, "chenjunfu2-nbt-cpp": { "baseline": "2.0.0", "port-version": 0 }, "chipmunk": { "baseline": "7.0.3", "port-version": 7 }, "chmlib": { "baseline": "0.40", "port-version": 8 }, "chromaprint": { "baseline": "1.6.0", "port-version": 1 }, "chronoengine": { "baseline": "8.0.0", "port-version": 2 }, "cialloo-rcon": { "baseline": "1.0.0", "port-version": 0 }, "cimg": { "baseline": "3.7.2", "port-version": 0 }, "cinatra": { "baseline": "0.9.8", "port-version": 0 }, "cista": { "baseline": "0.16", "port-version": 0 }, "cityhash": { "baseline": "2013-01-08", "port-version": 3 }, "civetweb": { "baseline": "1.16", "port-version": 2 }, "cjson": { "baseline": "1.7.19", "port-version": 0 }, "clamav": { "baseline": "0.103.11", "port-version": 0 }, "clap-cleveraudio": { "baseline": "1.2.7", "port-version": 0 }, "clapack": { "baseline": "3.2.1", "port-version": 24 }, "clara": { "baseline": "1.1.5", "port-version": 2 }, "clay": { "baseline": "0.14", "port-version": 0 }, "clblas": { "baseline": "2.12", "port-version": 8 }, "clblast": { "baseline": "1.6.3", "port-version": 0 }, "cld3": { "baseline": "3.0.14", "port-version": 2 }, "cleishm-frequency-cpp": { "baseline": "1.1.2", "port-version": 0 }, "cleishm-thermo-cpp": { "baseline": "1.2.1", "port-version": 0 }, "clfft": { "baseline": "2.12.2", "port-version": 7 }, "cli": { "baseline": "2.2.0", "port-version": 0 }, "cli11": { "baseline": "2.6.2", "port-version": 0 }, "clickhouse-cpp": { "baseline": "2.6.0", "port-version": 0 }, "clipboardxx": { "baseline": "0.5", "port-version": 1 }, "clipp": { "baseline": "2019-04-30", "port-version": 2 }, "clipper2": { "baseline": "2.0.1", "port-version": 0 }, "clockutils": { "baseline": "1.1.1", "port-version": 4 }, "clrng": { "baseline": "2020-12-01", "port-version": 3 }, "clue": { "baseline": "1.0.0", "port-version": 0 }, "cmakerc": { "baseline": "2023-07-24", "port-version": 0 }, "cmark": { "baseline": "0.31.2", "port-version": 0 }, "cmark-gfm": { "baseline": "0.29.0.13", "port-version": 0 }, "cminpack": { "baseline": "1.3.11", "port-version": 0 }, "cmocka": { "baseline": "2.0.2", "port-version": 0 }, "cnats": { "baseline": "3.12.0", "port-version": 2 }, "cnl": { "baseline": "1.1.7", "port-version": 3 }, "cocoyaxi": { "baseline": "2024-09-04", "port-version": 0 }, "coin": { "baseline": "4.0.6", "port-version": 0 }, "coin-or-buildtools": { "baseline": "2023-02-02", "port-version": 1 }, "coin-or-cbc": { "baseline": "2024-06-04", "port-version": 1 }, "coin-or-cgl": { "baseline": "2023-02-01", "port-version": 1 }, "coin-or-clp": { "baseline": "2023-02-01", "port-version": 1 }, "coin-or-ipopt": { "baseline": "2023-02-01", "port-version": 0 }, "coin-or-osi": { "baseline": "2024-04-16", "port-version": 1 }, "coinutils": { "baseline": "2024-04-08", "port-version": 1 }, "collada-dom": { "baseline": "2.5.0", "port-version": 11 }, "colmap": { "baseline": "3.12.6", "port-version": 1 }, "color-console": { "baseline": "2022-03-20", "port-version": 0 }, "commata": { "baseline": "1.2.0", "port-version": 0 }, "comms": { "baseline": "5.2.7", "port-version": 0 }, "comms-ublox": { "baseline": "1.0.0", "port-version": 0 }, "commsdsl": { "baseline": "6.3.4", "port-version": 0 }, "compoundfilereader": { "baseline": "0.1.0", "port-version": 0 }, "concurrencpp": { "baseline": "0.1.7", "port-version": 2 }, "concurrentqueue": { "baseline": "1.0.4", "port-version": 1 }, "configcat": { "baseline": "4.0.5", "port-version": 0 }, "conjure-enum": { "baseline": "1.2.0", "port-version": 0 }, "console-bridge": { "baseline": "1.0.2", "port-version": 0 }, "constexpr": { "baseline": "1.0", "port-version": 3 }, "constexpr-contracts": { "baseline": "2020-08-09", "port-version": 3 }, "continuable": { "baseline": "4.2.2", "port-version": 0 }, "convectionkernels": { "baseline": "2022-06-08", "port-version": 0 }, "coolprop": { "baseline": "6.4.3", "port-version": 3 }, "copypp": { "baseline": "0.3.0", "port-version": 0 }, "coroutine": { "baseline": "1.5.0", "port-version": 5 }, "corrade": { "baseline": "2020.06", "port-version": 9 }, "correlation-vector-cpp": { "baseline": "1.0", "port-version": 0 }, "cpp-async": { "baseline": "1.2.0", "port-version": 0 }, "cpp-base64": { "baseline": "V2.rc.08", "port-version": 0 }, "cpp-channel": { "baseline": "1.3.1", "port-version": 0 }, "cpp-exiftool": { "baseline": "1.8.0", "port-version": 0 }, "cpp-httplib": { "baseline": "0.38.0", "port-version": 0 }, "cpp-ipc": { "baseline": "1.4.1", "port-version": 0 }, "cpp-jwt": { "baseline": "1.5.1", "port-version": 0 }, "cpp-kana": { "baseline": "1.0.2", "port-version": 0 }, "cpp-lazy": { "baseline": "9.0.1", "port-version": 0 }, "cpp-netlib": { "baseline": "0.13.0", "port-version": 10 }, "cpp-peglib": { "baseline": "1.10.0", "port-version": 0 }, "cpp-pinyin": { "baseline": "1.0.2", "port-version": 0 }, "cpp-redis": { "baseline": "4.3.1", "port-version": 5 }, "cpp-smtpclient-library": { "baseline": "1.1.13", "port-version": 0 }, "cpp-sort": { "baseline": "2.1.0", "port-version": 0 }, "cpp-timsort": { "baseline": "3.0.1", "port-version": 0 }, "cppad": { "baseline": "20250000.3", "port-version": 2 }, "cppadcodegen": { "baseline": "2.5.0", "port-version": 0 }, "cppcms": { "baseline": "2.0.1", "port-version": 0 }, "cppcodec": { "baseline": "0.2", "port-version": 4 }, "cppcoro": { "baseline": "2022-10-25", "port-version": 0 }, "cppdap": { "baseline": "1.58.0-a", "port-version": 0 }, "cppfs": { "baseline": "1.3.0", "port-version": 4 }, "cppgraphqlgen": { "baseline": "4.5.9", "port-version": 1 }, "cppitertools": { "baseline": "2.3", "port-version": 0 }, "cppkafka": { "baseline": "0.4.1", "port-version": 0 }, "cppmicroservices": { "baseline": "3.8.6", "port-version": 0 }, "cppp-reiconv": { "baseline": "3.0.0", "port-version": 0 }, "cpprealm": { "baseline": "2.2.0", "port-version": 1 }, "cpprestsdk": { "baseline": "2.10.19", "port-version": 3 }, "cppslippi": { "baseline": "1.4.3.18", "port-version": 0 }, "cpptoml": { "baseline": "0.1.2", "port-version": 0 }, "cpptrace": { "baseline": "1.0.4", "port-version": 0 }, "cppunit": { "baseline": "1.15.1", "port-version": 5 }, "cpputest": { "baseline": "4.0", "port-version": 0 }, "cppvrf": { "baseline": "1.6.0", "port-version": 0 }, "cppwinrt": { "baseline": "2.0.250303.1", "port-version": 0 }, "cppxaml": { "baseline": "0.0.16", "port-version": 1 }, "cppzmq": { "baseline": "4.11.0", "port-version": 0 }, "cpr": { "baseline": "1.14.2", "port-version": 0 }, "cpu-features": { "baseline": "0.10.1", "port-version": 1 }, "cpuid": { "baseline": "0.8.1", "port-version": 0 }, "cpuinfo": { "baseline": "2025-09-06", "port-version": 0 }, "cr": { "baseline": "2020-04-26", "port-version": 2 }, "crashpad": { "baseline": "2024-04-11", "port-version": 10 }, "crashrpt": { "baseline": "1.4.3", "port-version": 4 }, "crc32c": { "baseline": "1.1.2", "port-version": 2 }, "crcpp": { "baseline": "1.2.1.0", "port-version": 0 }, "crfsuite": { "baseline": "2020-08-27", "port-version": 1 }, "croncpp": { "baseline": "2023-03-30", "port-version": 0 }, "crossdb": { "baseline": "0.14.0", "port-version": 0 }, "crossguid": { "baseline": "2021-10-22", "port-version": 3 }, "crow": { "baseline": "1.3.0", "port-version": 1 }, "cryptopp": { "baseline": "2026-03-02", "port-version": 0 }, "cserialport": { "baseline": "4.3.3", "port-version": 0 }, "cspice": { "baseline": "67", "port-version": 4 }, "ctbench": { "baseline": "1.3.4", "port-version": 2 }, "ctbignum": { "baseline": "2019-08-02", "port-version": 5 }, "ctemplate": { "baseline": "2020-09-14", "port-version": 5 }, "cthash": { "baseline": "2024-11-16", "port-version": 0 }, "ctp": { "baseline": "6.6.1_P1_20210406_se", "port-version": 4 }, "ctpg": { "baseline": "1.3.7", "port-version": 2 }, "ctre": { "baseline": "3.10.0", "port-version": 0 }, "ctstraffic": { "baseline": "2.0.3.2", "port-version": 0 }, "cubeb": { "baseline": "2023-09-26", "port-version": 1 }, "cuda": { "baseline": "10.1", "port-version": 13 }, "cuda-api-wrappers": { "baseline": "0.8.1", "port-version": 0 }, "cudnn": { "baseline": "7.6.5", "port-version": 16 }, "cudnn-frontend": { "baseline": "1.15.0", "port-version": 0 }, "cunit": { "baseline": "2.1.3", "port-version": 8 }, "curl": { "baseline": "8.19.0", "port-version": 0 }, "curlcpp": { "baseline": "3.1", "port-version": 1 }, "curlpp": { "baseline": "2018-06-15", "port-version": 11 }, "curve-coco": { "baseline": "4.3.0", "port-version": 0 }, "cute-headers": { "baseline": "2019-09-20", "port-version": 2 }, "cutelyst2": { "baseline": "2.12.0", "port-version": 2 }, "cwalk": { "baseline": "1.2.9", "port-version": 0 }, "cwapi3d": { "baseline": "32.219.1", "port-version": 0 }, "cxxgraph": { "baseline": "4.1.0", "port-version": 0 }, "cxxopts": { "baseline": "3.3.1", "port-version": 1 }, "cyclonedds": { "baseline": "0.10.5", "port-version": 0 }, "cyclonedds-cxx": { "baseline": "0.10.5", "port-version": 0 }, "cyrus-sasl": { "baseline": "2.1.28", "port-version": 4 }, "czmq": { "baseline": "4.2.1", "port-version": 5 }, "d3d12-memory-allocator": { "baseline": "3.0.1", "port-version": 0 }, "d3dx12": { "baseline": "may2021", "port-version": 1 }, "dacap-clip": { "baseline": "1.14", "port-version": 0 }, "dagir": { "baseline": "0.1.0", "port-version": 0 }, "darknet": { "baseline": "2025-10-24", "port-version": 0 }, "darts-clone": { "baseline": "1767ab87cffe", "port-version": 3 }, "dartsim": { "baseline": "6.15.0", "port-version": 7 }, "dataframe": { "baseline": "4.0.0", "port-version": 0 }, "date": { "baseline": "3.0.4", "port-version": 0 }, "datraw": { "baseline": "1.1.0", "port-version": 0 }, "dav1d": { "baseline": "1.5.3", "port-version": 0 }, "daw-header-libraries": { "baseline": "2.132.1", "port-version": 0 }, "daw-json-link": { "baseline": "3.31.0", "port-version": 0 }, "daw-utf-range": { "baseline": "2.2.6", "port-version": 0 }, "dawn": { "baseline": "20260219.200501", "port-version": 0 }, "daxa": { "baseline": "3.3.1", "port-version": 0 }, "dbg-macro": { "baseline": "0.5.1", "port-version": 1 }, "dbghelp": { "baseline": "0", "port-version": 2 }, "dbow2": { "baseline": "2019-08-05", "port-version": 3 }, "dbow3": { "baseline": "1.0.0", "port-version": 4 }, "dbus": { "baseline": "1.16.2", "port-version": 3 }, "dbus-cxx": { "baseline": "2.6.0", "port-version": 1 }, "dcmtk": { "baseline": "3.7.0", "port-version": 0 }, "ddtdanilo-lmdb-wrapper": { "baseline": "1.0.1", "port-version": 0 }, "debug-assert": { "baseline": "1.3.4", "port-version": 0 }, "decimal-for-cpp": { "baseline": "1.18", "port-version": 1 }, "delaunator-cpp": { "baseline": "1.0.0", "port-version": 0 }, "deniskovalchuk-libftp": { "baseline": "1.5.0", "port-version": 0 }, "detours": { "baseline": "2025-06-20", "port-version": 0 }, "devicenameresolver": { "baseline": "2016-06-26", "port-version": 4 }, "devil": { "baseline": "1.8.0", "port-version": 13 }, "dimcli": { "baseline": "7.3.0", "port-version": 0 }, "dingo": { "baseline": "0.1.0", "port-version": 0 }, "directfb2": { "baseline": "2025-11-25", "port-version": 0 }, "directx-dxc": { "baseline": "2026-02-20", "port-version": 0 }, "directx-headers": { "baseline": "1.619.1", "port-version": 0 }, "directx12-agility": { "baseline": "1.619.1", "port-version": 0 }, "directxmath": { "baseline": "2026-03-12", "port-version": 0 }, "directxmesh": { "baseline": "2025-10-27", "port-version": 0 }, "directxsdk": { "baseline": "jun10", "port-version": 8 }, "directxtex": { "baseline": "2025-10-27", "port-version": 0 }, "directxtk": { "baseline": "2025-10-27", "port-version": 0 }, "directxtk12": { "baseline": "2025-10-27", "port-version": 0 }, "dirent": { "baseline": "1.26", "port-version": 0 }, "discord-game-sdk": { "baseline": "3.2.1", "port-version": 0 }, "discord-rpc": { "baseline": "3.4.0", "port-version": 4 }, "discordcoreapi": { "baseline": "2.0.8", "port-version": 0 }, "discount": { "baseline": "3.0.0d", "port-version": 0 }, "discreture": { "baseline": "2020-01-29", "port-version": 3 }, "distorm": { "baseline": "3.5.2b", "port-version": 0 }, "dlfcn-win32": { "baseline": "1.4.2", "port-version": 0 }, "dlib": { "baseline": "20.0", "port-version": 3 }, "dlpack": { "baseline": "1.3", "port-version": 0 }, "dmlc": { "baseline": "2022-06-22", "port-version": 0 }, "docopt": { "baseline": "2022-03-15", "port-version": 1 }, "docraft": { "baseline": "v1.0.0-beta.3", "port-version": 0 }, "doctest": { "baseline": "2.4.12", "port-version": 0 }, "double-conversion": { "baseline": "3.4.0", "port-version": 0 }, "dp-thread-pool": { "baseline": "0.7.0", "port-version": 1 }, "dpdk": { "baseline": "25.11", "port-version": 1 }, "dpp": { "baseline": "10.1.4", "port-version": 0 }, "draco": { "baseline": "1.5.7", "port-version": 0 }, "drekar-launch-process-cpp": { "baseline": "0.1.0", "port-version": 0 }, "drlibs": { "baseline": "2026-03-03", "port-version": 0 }, "drogon": { "baseline": "1.9.12", "port-version": 0 }, "dstorage": { "baseline": "1.3.0", "port-version": 0 }, "dtl": { "baseline": "1.21", "port-version": 0 }, "duckdb": { "baseline": "1.4.4", "port-version": 0 }, "duckx": { "baseline": "1.2.2", "port-version": 1 }, "duilib": { "baseline": "2024-12-23", "port-version": 1 }, "dukglue": { "baseline": "2022-11-08", "port-version": 0 }, "duktape": { "baseline": "2.7.0", "port-version": 2 }, "dumb": { "baseline": "2.0.3", "port-version": 0 }, "duvc-ctl": { "baseline": "2.0.1", "port-version": 0 }, "dv-processing": { "baseline": "2.0.2", "port-version": 0 }, "dx": { "baseline": "1.0.1", "port-version": 3 }, "dxcam-cpp": { "baseline": "0.2.5", "port-version": 0 }, "dxsdk-d3dx": { "baseline": "9.29.952.8", "port-version": 7 }, "dxut": { "baseline": "11.32", "port-version": 0 }, "dylib": { "baseline": "3.0.1", "port-version": 0 }, "dyno": { "baseline": "2019-11-13", "port-version": 0 }, "e-dant-watcher": { "baseline": "0.14.5", "port-version": 0 }, "eabase": { "baseline": "2025-08-01", "port-version": 0 }, "earcut-hpp": { "baseline": "2.2.4", "port-version": 0 }, "eastl": { "baseline": "3.27.1", "port-version": 0 }, "easy-profiler": { "baseline": "2.1.0", "port-version": 0 }, "easycl": { "baseline": "0.3", "port-version": 2 }, "easyexif": { "baseline": "2022-10-07", "port-version": 0 }, "easyhook": { "baseline": "2.7.7097.0", "port-version": 9 }, "easyloggingpp": { "baseline": "9.97.1", "port-version": 1 }, "eathread": { "baseline": "1.32.09", "port-version": 5 }, "ebml": { "baseline": "1.4.5", "port-version": 1 }, "ecal": { "baseline": "5.13.4", "port-version": 1 }, "ecaludp": { "baseline": "0.1.2", "port-version": 0 }, "ecm": { "baseline": "6.23.0", "port-version": 0 }, "ecos": { "baseline": "2.0.10", "port-version": 0 }, "ed25519": { "baseline": "2017-02-10", "port-version": 1 }, "edflib": { "baseline": "1.27", "port-version": 0 }, "edlib": { "baseline": "1.2.7", "port-version": 1 }, "effects11": { "baseline": "11.29", "port-version": 3 }, "effolkronium-random": { "baseline": "1.5.0", "port-version": 0 }, "efsw": { "baseline": "1.5.1", "port-version": 0 }, "egl": { "baseline": "2022-12-04", "port-version": 0 }, "egl-registry": { "baseline": "2025-05-27", "port-version": 0 }, "eigen3": { "baseline": "5.0.1", "port-version": 0 }, "eipscanner": { "baseline": "1.3.0", "port-version": 0 }, "elements": { "baseline": "2025-11-18", "port-version": 0 }, "elfio": { "baseline": "3.12", "port-version": 1 }, "elfutils": { "baseline": "0.193", "port-version": 1 }, "eljonny-testcpp": { "baseline": "0.3.0-beta.4", "port-version": 0 }, "embree": { "baseline": "4.4.0", "port-version": 0 }, "enchantum": { "baseline": "0.3.0", "port-version": 0 }, "enet": { "baseline": "1.3.18", "port-version": 0 }, "enkits": { "baseline": "1.11", "port-version": 3 }, "ensmallen": { "baseline": "2.21.1", "port-version": 1 }, "entityx": { "baseline": "1.3.0", "port-version": 6 }, "entt": { "baseline": "3.16.0", "port-version": 0 }, "epoll-shim": { "baseline": "0.0.20240608", "port-version": 0 }, "eraser": { "baseline": "2.3.0", "port-version": 0 }, "ereignis": { "baseline": "4.3", "port-version": 0 }, "esaxx": { "baseline": "ca7cb332011ec37", "port-version": 1 }, "etcd-cpp-apiv3": { "baseline": "0.15.4", "port-version": 3 }, "ethindp-prism": { "baseline": "0.7.1", "port-version": 0 }, "etl": { "baseline": "20.46.2", "port-version": 0 }, "eve": { "baseline": "2023.2.15", "port-version": 0 }, "eventpp": { "baseline": "0.1.3", "port-version": 1 }, "evpp": { "baseline": "0.7.0", "port-version": 9 }, "exiv2": { "baseline": "0.28.8", "port-version": 0 }, "expat": { "baseline": "2.7.4", "port-version": 0 }, "expected-lite": { "baseline": "0.10.0", "port-version": 0 }, "exprtk": { "baseline": "0.0.3", "port-version": 0 }, "ezc3d": { "baseline": "1.6.1", "port-version": 0 }, "ezfoundation": { "baseline": "21.10", "port-version": 0 }, "f3d": { "baseline": "3.2.0", "port-version": 0 }, "faad2": { "baseline": "2.11.2", "port-version": 0 }, "fadbad": { "baseline": "2.1.0", "port-version": 3 }, "faiss": { "baseline": "1.14.1", "port-version": 0 }, "fakeit": { "baseline": "2.5.0", "port-version": 0 }, "faker-cxx": { "baseline": "4.3.0", "port-version": 0 }, "fameta-counter": { "baseline": "2021-02-13", "port-version": 0 }, "fann": { "baseline": "2023-01-26", "port-version": 0 }, "farmhash": { "baseline": "1.1", "port-version": 7 }, "fast-cpp-csv-parser": { "baseline": "2021-01-03", "port-version": 2 }, "fast-double-parser": { "baseline": "0.8.1", "port-version": 0 }, "fast-float": { "baseline": "8.2.4", "port-version": 0 }, "fast-obj": { "baseline": "1.3", "port-version": 0 }, "fastcdr": { "baseline": "2.3.5", "port-version": 0 }, "fastcgi": { "baseline": "2.4.7", "port-version": 1 }, "fastdds": { "baseline": "3.4.1", "port-version": 0 }, "fastfeat": { "baseline": "391d5e9", "port-version": 4 }, "fastgltf": { "baseline": "0.9.0", "port-version": 0 }, "fastio": { "baseline": "2024-12-05", "port-version": 0 }, "fastlz": { "baseline": "2024-08-02", "port-version": 1 }, "fastor": { "baseline": "0.6.4", "port-version": 0 }, "fastpfor": { "baseline": "0.3.1", "port-version": 0 }, "faudio": { "baseline": "26.3", "port-version": 0 }, "fawdlstty-libfv": { "baseline": "0.1.0", "port-version": 0 }, "fbgemm": { "baseline": "1.0.0", "port-version": 1 }, "fbthrift": { "baseline": "2026.02.23.00", "port-version": 0 }, "fcl": { "baseline": "0.7.0", "port-version": 5 }, "fdk-aac": { "baseline": "2.0.3", "port-version": 0 }, "fdlibm": { "baseline": "5.3", "port-version": 7 }, "fenster": { "baseline": "2024-08-19", "port-version": 0 }, "ffmpeg": { "baseline": "8.0.1", "port-version": 2 }, "ffmpeg-bin2c": { "baseline": "8.0.1", "port-version": 0 }, "ffnvcodec": { "baseline": "13.0.19.0", "port-version": 0 }, "fftw3": { "baseline": "3.3.10", "port-version": 10 }, "fftwpp": { "baseline": "2019-12-19", "port-version": 2 }, "fineftp": { "baseline": "1.5.1", "port-version": 0 }, "fins": { "baseline": "2023-07-31", "port-version": 0 }, "fixed-containers": { "baseline": "2024-09-19", "port-version": 0 }, "fixed-math": { "baseline": "2.2.0", "port-version": 0 }, "fixed-string": { "baseline": "0.1.1", "port-version": 0 }, "fizz": { "baseline": "2026.02.23.00", "port-version": 0 }, "fkyaml": { "baseline": "0.4.2", "port-version": 1 }, "flagpp": { "baseline": "3.1.0", "port-version": 0 }, "flann": { "baseline": "2022-10-28", "port-version": 0 }, "flash-runtime-extensions": { "baseline": "2.4", "port-version": 1 }, "flashlight-cpu": { "baseline": "0.3", "port-version": 5 }, "flashlight-cuda": { "baseline": "0.3", "port-version": 7 }, "flashlight-sequence": { "baseline": "0.0.1", "port-version": 0 }, "flashlight-text": { "baseline": "0.0.7", "port-version": 0 }, "flat": { "baseline": "2022-08-30", "port-version": 0 }, "flatbuffers": { "baseline": "25.12.19", "port-version": 0 }, "flatbush": { "baseline": "1.3.2", "port-version": 0 }, "flatcc": { "baseline": "0.6.1", "port-version": 0 }, "flecs": { "baseline": "4.1.5", "port-version": 0 }, "flint": { "baseline": "3.4.0", "port-version": 0 }, "fltk": { "baseline": "1.3.11", "port-version": 0 }, "fluidlite": { "baseline": "2023-04-18", "port-version": 0 }, "fluidsynth": { "baseline": "2.5.2", "port-version": 1 }, "flux": { "baseline": "0.4.0", "port-version": 0 }, "fmem": { "baseline": "c-libs-2ccee3d2fb", "port-version": 3 }, "fmi4cpp": { "baseline": "0.8.3", "port-version": 0 }, "fmilib": { "baseline": "2.4.1", "port-version": 2 }, "fmt": { "baseline": "12.1.0", "port-version": 0 }, "folly": { "baseline": "2026.02.23.00", "port-version": 1 }, "font-chef": { "baseline": "1.1.0", "port-version": 0 }, "font-util": { "baseline": "1.4.1", "port-version": 1 }, "fontconfig": { "baseline": "2.17.1", "port-version": 2 }, "foonathan-lexy": { "baseline": "2025.5.0", "port-version": 0 }, "foonathan-memory": { "baseline": "0.7.4", "port-version": 1 }, "forge": { "baseline": "1.0.8", "port-version": 3 }, "foxi": { "baseline": "2021-12-01", "port-version": 0 }, "fp16": { "baseline": "2021-02-21", "port-version": 4 }, "freealut": { "baseline": "1.1.0", "port-version": 4 }, "freeglut": { "baseline": "3.8.0", "port-version": 0 }, "freeimage": { "baseline": "3.18.0", "port-version": 27 }, "freeopcua": { "baseline": "20190125", "port-version": 9 }, "freerdp": { "baseline": "3.24.0", "port-version": 0 }, "freetds": { "baseline": "1.3.10", "port-version": 2 }, "freetype": { "baseline": "2.13.3", "port-version": 0 }, "freetype-gl": { "baseline": "1.0", "port-version": 0 }, "freexl": { "baseline": "2.0.0", "port-version": 2 }, "frei0r": { "baseline": "2.5.4", "port-version": 0 }, "fribidi": { "baseline": "1.0.16", "port-version": 0 }, "frozen": { "baseline": "1.2.0", "port-version": 0 }, "frugally-deep": { "baseline": "0.18.2", "port-version": 0 }, "fruit": { "baseline": "3.7.1", "port-version": 0 }, "ftgl": { "baseline": "2.4.0", "port-version": 7 }, "ftxui": { "baseline": "6.1.9", "port-version": 0 }, "function2": { "baseline": "4.2.5", "port-version": 0 }, "functionalplus": { "baseline": "0.2.27", "port-version": 0 }, "functions-framework-cpp": { "baseline": "1.2.0", "port-version": 1 }, "future-config": { "baseline": "0.2.0", "port-version": 0 }, "fuzzylite": { "baseline": "6.0", "port-version": 6 }, "fxaudio": { "baseline": "1.0.1", "port-version": 0 }, "fxdiv": { "baseline": "2021-02-21", "port-version": 4 }, "g2o": { "baseline": "2024-12-28", "port-version": 0 }, "g3log": { "baseline": "2.6", "port-version": 1 }, "gainput": { "baseline": "1.0.0", "port-version": 6 }, "gamedev-framework": { "baseline": "1.2.0", "port-version": 0 }, "gameinput": { "baseline": "3.1.26100.6879", "port-version": 0 }, "gamenetworkingsockets": { "baseline": "1.4.1", "port-version": 2 }, "gamma": { "baseline": "gamma-2018-01-27", "port-version": 6 }, "gapp": { "baseline": "1.0.0", "port-version": 0 }, "gasol": { "baseline": "2018-01-04", "port-version": 4 }, "gaussianlib": { "baseline": "2024-11-03", "port-version": 0 }, "gazebo": { "baseline": "11.15.1", "port-version": 0 }, "gcem": { "baseline": "1.18.0", "port-version": 0 }, "gdal": { "baseline": "3.12.2", "port-version": 1 }, "gdbm": { "baseline": "1.24", "port-version": 1 }, "gdcm": { "baseline": "3.2.2", "port-version": 0 }, "gdk-pixbuf": { "baseline": "2.42.12", "port-version": 6 }, "gegl": { "baseline": "0.4.66", "port-version": 1 }, "gemmlowp": { "baseline": "2021-09-28", "port-version": 0 }, "genann": { "baseline": "2019-07-10", "port-version": 3 }, "geogram": { "baseline": "1.9.3", "port-version": 0 }, "geographiclib": { "baseline": "2.7", "port-version": 0 }, "geos": { "baseline": "3.14.1", "port-version": 0 }, "geotrans": { "baseline": "3.10", "port-version": 0 }, "getdns": { "baseline": "1.7.3", "port-version": 0 }, "getopt": { "baseline": "0", "port-version": 3 }, "getopt-win32": { "baseline": "2.42.0", "port-version": 0 }, "gettext": { "baseline": "0.22.5", "port-version": 4 }, "gettext-libintl": { "baseline": "0.22.5", "port-version": 4 }, "gettimeofday": { "baseline": "2017-10-14", "port-version": 6 }, "gexiv2": { "baseline": "0.14.3", "port-version": 3 }, "gflags": { "baseline": "2.3.0", "port-version": 0 }, "ggml": { "baseline": "2025-11-17", "port-version": 1 }, "ghc-filesystem": { "baseline": "1.5.14", "port-version": 0 }, "gherkin-c": { "baseline": "2019-10-07", "port-version": 3 }, "giflib": { "baseline": "5.2.2", "port-version": 2 }, "ginkgo": { "baseline": "1.11.0", "port-version": 0 }, "gklib": { "baseline": "2025-07-06", "port-version": 1 }, "gl2ps": { "baseline": "1.4.2", "port-version": 5 }, "gl3w": { "baseline": "2018-05-31", "port-version": 5 }, "glad": { "baseline": "0.1.36", "port-version": 0 }, "glaze": { "baseline": "7.2.1", "port-version": 0 }, "glbinding": { "baseline": "3.1.0", "port-version": 4 }, "glew": { "baseline": "2.3.1", "port-version": 0 }, "glfw3": { "baseline": "3.4", "port-version": 1 }, "gli": { "baseline": "2021-07-06", "port-version": 2 }, "glib": { "baseline": "2.86.4", "port-version": 0 }, "glib-networking": { "baseline": "2.80.1", "port-version": 0 }, "glibmm": { "baseline": "2.80.1", "port-version": 1 }, "glm": { "baseline": "1.0.3", "port-version": 0 }, "globjects": { "baseline": "1.1.0", "port-version": 6 }, "glog": { "baseline": "0.7.1", "port-version": 1 }, "gloo": { "baseline": "20240626", "port-version": 1 }, "glpk": { "baseline": "5.0", "port-version": 3 }, "glslang": { "baseline": "16.1.0", "port-version": 0 }, "glui": { "baseline": "2019-11-30", "port-version": 4 }, "gmime": { "baseline": "3.2.15", "port-version": 1 }, "gmmlib": { "baseline": "22.9.0", "port-version": 0 }, "gmp": { "baseline": "6.3.0", "port-version": 3 }, "gmsh": { "baseline": "4.15.1", "port-version": 0 }, "gobject-introspection": { "baseline": "1.86.0", "port-version": 2 }, "godot-cpp": { "baseline": "4.4", "port-version": 0 }, "goldy": { "baseline": "0.1.0", "port-version": 0 }, "google-cloud-cpp": { "baseline": "2.37.0", "port-version": 0 }, "gperf": { "baseline": "3.3", "port-version": 0 }, "gperftools": { "baseline": "2.18.1", "port-version": 0 }, "gpgme": { "baseline": "2.0.0", "port-version": 0 }, "gpgmepp": { "baseline": "2.0.0", "port-version": 0 }, "gpgmm": { "baseline": "0.1.2", "port-version": 1 }, "gppanel": { "baseline": "2020-05-20", "port-version": 4 }, "graaf": { "baseline": "1.1.1", "port-version": 0 }, "grantlee": { "baseline": "5.3.1", "port-version": 2 }, "graphene": { "baseline": "1.10.8", "port-version": 6 }, "graphicsmagick": { "baseline": "1.3.45", "port-version": 1 }, "graphite2": { "baseline": "1.3.14", "port-version": 4 }, "graphviz": { "baseline": "14.1.2", "port-version": 0 }, "greatest": { "baseline": "1.5.0", "port-version": 0 }, "grpc": { "baseline": "1.76.0", "port-version": 1 }, "grppi": { "baseline": "0.4.0", "port-version": 2 }, "gsasl": { "baseline": "2.2.2", "port-version": 1 }, "gsl": { "baseline": "2.8", "port-version": 2 }, "gsl-lite": { "baseline": "1.1.0", "port-version": 0 }, "gsoap": { "baseline": "2.8.112", "port-version": 2 }, "gst-rtsp-server": { "baseline": "1.26.4", "port-version": 0 }, "gstreamer": { "baseline": "1.26.5", "port-version": 1 }, "gtest": { "baseline": "1.17.0", "port-version": 2 }, "gtk": { "baseline": "4.22.0", "port-version": 0 }, "gtk3": { "baseline": "3.24.51", "port-version": 3 }, "gtkmm": { "baseline": "4.22.0", "port-version": 0 }, "gtl": { "baseline": "1.2.0", "port-version": 0 }, "gts": { "baseline": "0.7.6", "port-version": 9 }, "gtsam": { "baseline": "4.2.0", "port-version": 2 }, "guetzli": { "baseline": "2020-09-14", "port-version": 2 }, "guile": { "baseline": "3.0.11", "port-version": 0 }, "guilite": { "baseline": "2022-05-05", "port-version": 0 }, "gul14": { "baseline": "2.13.1", "port-version": 0 }, "gul17": { "baseline": "26.2.0", "port-version": 0 }, "gumbo": { "baseline": "0.12.3", "port-version": 0 }, "gz-cmake": { "baseline": "4.2.1", "port-version": 0 }, "gz-common": { "baseline": "6.3.0", "port-version": 0 }, "gz-fuel-tools": { "baseline": "10.1.0", "port-version": 0 }, "gz-gui": { "baseline": "9.0.2", "port-version": 1 }, "gz-math": { "baseline": "8.2.1", "port-version": 0 }, "gz-msgs": { "baseline": "11.1.0", "port-version": 1 }, "gz-physics": { "baseline": "8.3.0", "port-version": 1 }, "gz-plugin": { "baseline": "3.1.0", "port-version": 0 }, "gz-rendering": { "baseline": "9.5.0", "port-version": 1 }, "gz-sensors": { "baseline": "9.2.0", "port-version": 1 }, "gz-sim": { "baseline": "9.5.0", "port-version": 2 }, "gz-tools": { "baseline": "2.0.3", "port-version": 1 }, "gz-transport": { "baseline": "14.2.0", "port-version": 0 }, "gz-utils": { "baseline": "3.1.1", "port-version": 0 }, "gzip-hpp": { "baseline": "0.1.0", "port-version": 2 }, "h3": { "baseline": "4.4.1", "port-version": 1 }, "h5py-lzf": { "baseline": "3.15.1", "port-version": 0 }, "half": { "baseline": "2.2.1", "port-version": 1 }, "halide": { "baseline": "18.0.0", "port-version": 1 }, "hanjingo-high-jump": { "baseline": "1.0.4", "port-version": 0 }, "happly": { "baseline": "1.0.0", "port-version": 0 }, "hareflow": { "baseline": "0.1.1", "port-version": 2 }, "harfbuzz": { "baseline": "13.0.1", "port-version": 0 }, "hash-library": { "baseline": "8", "port-version": 3 }, "hashids": { "baseline": "1.2.2", "port-version": 1 }, "hayai": { "baseline": "2019-08-10", "port-version": 4 }, "hazelcast-cpp-client": { "baseline": "5.6.0", "port-version": 0 }, "hdf5": { "baseline": "2.0.0", "port-version": 1 }, "hdr-histogram": { "baseline": "0.11.9", "port-version": 0 }, "healpix": { "baseline": "3.83", "port-version": 0 }, "hedley": { "baseline": "15", "port-version": 0 }, "hello-imgui": { "baseline": "1.92.5", "port-version": 0 }, "hesphoros-uniconv": { "baseline": "3.3.2", "port-version": 0 }, "hexi": { "baseline": "1.3.5", "port-version": 0 }, "hexl": { "baseline": "1.2.5", "port-version": 0 }, "hffix": { "baseline": "1.4.1", "port-version": 0 }, "hfsm2": { "baseline": "2.10.0", "port-version": 0 }, "hidapi": { "baseline": "0.15.0", "port-version": 1 }, "highfive": { "baseline": "3.3.0", "port-version": 0 }, "highs": { "baseline": "1.13.1", "port-version": 0 }, "highway": { "baseline": "1.3.0", "port-version": 1 }, "hikogui": { "baseline": "0.8.1", "port-version": 2 }, "hiredis": { "baseline": "1.3.0", "port-version": 0 }, "hjson-cpp": { "baseline": "2.6", "port-version": 0 }, "hlslpp": { "baseline": "3.8", "port-version": 0 }, "hnswlib": { "baseline": "0.8.0", "port-version": 0 }, "hps": { "baseline": "2022-01-18", "port-version": 0 }, "hpx": { "baseline": "1.11.0", "port-version": 0 }, "htscodecs": { "baseline": "1.6.6", "port-version": 1 }, "htslib": { "baseline": "1.23.1", "port-version": 0 }, "http-parser": { "baseline": "2.9.4", "port-version": 3 }, "huira": { "baseline": "0.9.1", "port-version": 0 }, "hungarian": { "baseline": "0.1.3", "port-version": 3 }, "hunspell": { "baseline": "1.7.2", "port-version": 1 }, "hwloc": { "baseline": "2.11.2", "port-version": 0 }, "hyperscan": { "baseline": "5.4.2", "port-version": 2 }, "hypodermic": { "baseline": "2023-03-03", "port-version": 0 }, "hypre": { "baseline": "2.32.0", "port-version": 0 }, "iausofa": { "baseline": "20231011", "port-version": 0 }, "icecream-cpp": { "baseline": "1.0.0", "port-version": 0 }, "iceoryx": { "baseline": "2.0.6", "port-version": 1 }, "icu": { "baseline": "78.2", "port-version": 0 }, "ideviceinstaller": { "baseline": "2023-07-21", "port-version": 0 }, "idevicerestore": { "baseline": "2023-05-23", "port-version": 0 }, "idyntree": { "baseline": "15.0.0", "port-version": 0 }, "if97": { "baseline": "2.2.1", "port-version": 0 }, "igloo": { "baseline": "1.1.1", "port-version": 2 }, "ignition-modularscripts": { "baseline": "2025-02-27", "port-version": 0 }, "igraph": { "baseline": "1.0.1", "port-version": 0 }, "iguana": { "baseline": "1.1.0", "port-version": 0 }, "iir1": { "baseline": "1.10.0", "port-version": 0 }, "im3d": { "baseline": "2022-10-11", "port-version": 0 }, "imageinfo": { "baseline": "2024-12-02", "port-version": 0 }, "imath": { "baseline": "3.2.2", "port-version": 0 }, "imcce-openfa": { "baseline": "20231011.0.3", "port-version": 0 }, "imgui": { "baseline": "1.92.6", "port-version": 0 }, "imgui-node-editor": { "baseline": "0.9.3", "port-version": 3 }, "imgui-sfml": { "baseline": "3.0", "port-version": 3 }, "imguizmo": { "baseline": "2024-05-29", "port-version": 2 }, "immer": { "baseline": "0.9.1", "port-version": 0 }, "implot": { "baseline": "0.17", "port-version": 0 }, "implot3d": { "baseline": "0.3", "port-version": 0 }, "indicators": { "baseline": "2.3", "port-version": 0 }, "indirect-value": { "baseline": "2023-06-01", "port-version": 0 }, "inflatelib": { "baseline": "0.1.0", "port-version": 0 }, "influxdb-cxx": { "baseline": "0.8.1", "port-version": 0 }, "infoware": { "baseline": "2023-04-12", "port-version": 0 }, "inih": { "baseline": "62", "port-version": 0 }, "iniparser": { "baseline": "4.2.6", "port-version": 0 }, "inipp": { "baseline": "1.0.13", "port-version": 0 }, "inja": { "baseline": "3.5.0", "port-version": 0 }, "intel-ipsec": { "baseline": "1.1", "port-version": 0 }, "intel-mkl": { "baseline": "2025.2.0", "port-version": 1 }, "intelrdfpmathlib": { "baseline": "20U2", "port-version": 7 }, "intrusive-shared-ptr": { "baseline": "1.9", "port-version": 0 }, "intx": { "baseline": "0.15.0", "port-version": 0 }, "iowa-hills-dsp": { "baseline": "0.1.0", "port-version": 0 }, "irrlicht": { "baseline": "1.8.5", "port-version": 2 }, "irsdkcpp": { "baseline": "1.0.9", "port-version": 0 }, "isal": { "baseline": "2.30.0", "port-version": 0 }, "ismrmrd": { "baseline": "1.15.0", "port-version": 0 }, "itay-grudev-singleapplication": { "baseline": "3.5.4", "port-version": 0 }, "itk": { "baseline": "5.4.4", "port-version": 1 }, "itlib": { "baseline": "1.12.1", "port-version": 0 }, "itpp": { "baseline": "4.3.1", "port-version": 13 }, "itsy-bitsy": { "baseline": "2022-08-02", "port-version": 0 }, "ixwebsocket": { "baseline": "11.4.6", "port-version": 0 }, "jack2": { "baseline": "1.9.22", "port-version": 0 }, "jaeger-client-cpp": { "baseline": "0.7.0", "port-version": 2 }, "jansson": { "baseline": "2.15.0", "port-version": 0 }, "jasper": { "baseline": "4.2.9", "port-version": 0 }, "jbcoe-value-types": { "baseline": "1.0.1", "port-version": 0 }, "jbig2dec": { "baseline": "0.20", "port-version": 0 }, "jbigkit": { "baseline": "2.1", "port-version": 7 }, "jemalloc": { "baseline": "5.3.0", "port-version": 3 }, "jhasse-poly2tri": { "baseline": "2023-12-27", "port-version": 2 }, "jigson": { "baseline": "0.1.3", "port-version": 0 }, "jinja2cpplight": { "baseline": "2018-05-08", "port-version": 3 }, "jkqtplotter": { "baseline": "2023-10-24", "port-version": 1 }, "joltphysics": { "baseline": "5.5.0", "port-version": 0 }, "josuttis-jthread": { "baseline": "2020-07-21", "port-version": 3 }, "jsmn": { "baseline": "2019-04-27", "port-version": 2 }, "json-c": { "baseline": "0.18-20240915", "port-version": 0 }, "json-dto": { "baseline": "0.3.4", "port-version": 0 }, "json-glib": { "baseline": "1.10.8", "port-version": 0 }, "json-rpc-cxx": { "baseline": "0.3.2", "port-version": 0 }, "json-schema-validator": { "baseline": "2.4.0", "port-version": 0 }, "json-spirit": { "baseline": "4.1.0", "port-version": 5 }, "json11": { "baseline": "2017-06-20", "port-version": 7 }, "json5-parser": { "baseline": "1.0.0", "port-version": 7 }, "jsoncons": { "baseline": "1.5.0", "port-version": 0 }, "jsoncpp": { "baseline": "1.9.6", "port-version": 0 }, "jsonfusion": { "baseline": "0.710.0", "port-version": 0 }, "jsonifier": { "baseline": "0.9.98", "port-version": 0 }, "jsonnet": { "baseline": "0.21.0", "port-version": 1 }, "juce": { "baseline": "8.0.7", "port-version": 0 }, "jwsung91-unilink": { "baseline": "0.4.3", "port-version": 0 }, "jwt-cpp": { "baseline": "0.7.2", "port-version": 0 }, "jxrlib": { "baseline": "2019.10.9", "port-version": 7 }, "kaitai-struct-cpp-stl-runtime": { "baseline": "0.11", "port-version": 1 }, "kangaru": { "baseline": "4.3.2", "port-version": 0 }, "kcp": { "baseline": "1.7", "port-version": 0 }, "kdalgorithms": { "baseline": "1.4", "port-version": 0 }, "kdbindings": { "baseline": "1.1.0", "port-version": 0 }, "kddockwidgets": { "baseline": "2.4.0", "port-version": 1 }, "kdgpu": { "baseline": "0.10.0", "port-version": 0 }, "kdiagram": { "baseline": "2.8.0", "port-version": 0 }, "kdreports": { "baseline": "2.3.0", "port-version": 0 }, "kdsingleapplication": { "baseline": "1.2.0", "port-version": 0 }, "kdsoap": { "baseline": "2.2.0", "port-version": 1 }, "kdstatemachineeditor": { "baseline": "2.0.0", "port-version": 2 }, "kdutils": { "baseline": "0.1.13", "port-version": 0 }, "kealib": { "baseline": "1.6.2", "port-version": 0 }, "keccak-tiny": { "baseline": "2014-09-08", "port-version": 2 }, "kedixa-coke": { "baseline": "0.7.0", "port-version": 1 }, "kenlm": { "baseline": "20230531", "port-version": 1 }, "kerbal": { "baseline": "2025.11.1", "port-version": 0 }, "keystone": { "baseline": "0.9.2", "port-version": 4 }, "kf5archive": { "baseline": "5.116.0", "port-version": 1 }, "kf5attica": { "baseline": "5.116.0", "port-version": 0 }, "kf5auth": { "baseline": "5.116.0", "port-version": 1 }, "kf5bookmarks": { "baseline": "5.116.0", "port-version": 0 }, "kf5codecs": { "baseline": "5.116.0", "port-version": 0 }, "kf5completion": { "baseline": "5.116.0", "port-version": 0 }, "kf5config": { "baseline": "5.116.0", "port-version": 1 }, "kf5configwidgets": { "baseline": "5.116.0", "port-version": 0 }, "kf5coreaddons": { "baseline": "5.116.0", "port-version": 0 }, "kf5crash": { "baseline": "5.116.0", "port-version": 0 }, "kf5dbusaddons": { "baseline": "5.116.0", "port-version": 0 }, "kf5declarative": { "baseline": "5.116.0", "port-version": 0 }, "kf5diagram": { "baseline": "deprecated", "port-version": 0 }, "kf5globalaccel": { "baseline": "5.116.0", "port-version": 0 }, "kf5guiaddons": { "baseline": "5.116.0", "port-version": 0 }, "kf5holidays": { "baseline": "5.116.0", "port-version": 0 }, "kf5i18n": { "baseline": "5.116.0", "port-version": 0 }, "kf5iconthemes": { "baseline": "5.116.0", "port-version": 0 }, "kf5itemmodels": { "baseline": "5.116.0", "port-version": 0 }, "kf5itemviews": { "baseline": "5.116.0", "port-version": 0 }, "kf5jobwidgets": { "baseline": "5.116.0", "port-version": 0 }, "kf5kcmutils": { "baseline": "5.116.0", "port-version": 1 }, "kf5kio": { "baseline": "5.116.0", "port-version": 2 }, "kf5newstuff": { "baseline": "5.116.0", "port-version": 1 }, "kf5notifications": { "baseline": "5.116.0", "port-version": 0 }, "kf5package": { "baseline": "5.116.0", "port-version": 0 }, "kf5parts": { "baseline": "5.116.0", "port-version": 0 }, "kf5plotting": { "baseline": "5.116.0", "port-version": 1 }, "kf5service": { "baseline": "5.116.0", "port-version": 0 }, "kf5solid": { "baseline": "5.116.0", "port-version": 1 }, "kf5sonnet": { "baseline": "5.116.0", "port-version": 0 }, "kf5syntaxhighlighting": { "baseline": "5.116.0", "port-version": 0 }, "kf5texteditor": { "baseline": "5.116.0", "port-version": 1 }, "kf5textwidgets": { "baseline": "5.116.0", "port-version": 0 }, "kf5wallet": { "baseline": "5.116.0", "port-version": 0 }, "kf5widgetsaddons": { "baseline": "5.116.0", "port-version": 0 }, "kf5windowsystem": { "baseline": "5.116.0", "port-version": 0 }, "kf5xmlgui": { "baseline": "5.116.0", "port-version": 0 }, "kf6archive": { "baseline": "6.22.0", "port-version": 0 }, "kfr": { "baseline": "6.3.1", "port-version": 0 }, "kinectsdk1": { "baseline": "1.8", "port-version": 8 }, "kinectsdk2": { "baseline": "2.0", "port-version": 7 }, "kissfft": { "baseline": "131.2.0", "port-version": 0 }, "kissnet": { "baseline": "2024-01-20", "port-version": 0 }, "kleidiai": { "baseline": "1.19.0", "port-version": 0 }, "klein": { "baseline": "2021-05-09", "port-version": 0 }, "knet": { "baseline": "1.1.0", "port-version": 1 }, "knncolle": { "baseline": "3.1.0", "port-version": 0 }, "knncolle-annoy": { "baseline": "0.3.0", "port-version": 0 }, "knncolle-hnsw": { "baseline": "0.3.0", "port-version": 0 }, "knncolle-kmknn": { "baseline": "0.2.0", "port-version": 0 }, "komihash": { "baseline": "5.28", "port-version": 0 }, "krabsetw": { "baseline": "4.3.2", "port-version": 0 }, "krb5": { "baseline": "1.22.2", "port-version": 1 }, "ktx": { "baseline": "4.4.2", "port-version": 0 }, "kubazip": { "baseline": "0.3.6", "port-version": 0 }, "kubernetes": { "baseline": "0.14.0", "port-version": 1 }, "kuku": { "baseline": "2.1.0", "port-version": 0 }, "kvasir-mpl": { "baseline": "2019-08-06", "port-version": 3 }, "kwsys": { "baseline": "2021-08-06", "port-version": 1 }, "lager": { "baseline": "0.1.3", "port-version": 0 }, "lapack": { "baseline": "2023-06-10", "port-version": 3 }, "lapack-reference": { "baseline": "3.12.1", "port-version": 2 }, "lastools": { "baseline": "2.0.4", "port-version": 0 }, "laszip": { "baseline": "3.5.0", "port-version": 0 }, "launch-darkly-server": { "baseline": "2.9.3", "port-version": 1 }, "lazy-importer": { "baseline": "2023-08-03", "port-version": 0 }, "lcm": { "baseline": "1.5.2", "port-version": 0 }, "lcms": { "baseline": "2.18", "port-version": 0 }, "lely-core": { "baseline": "2.3.5", "port-version": 1 }, "lemon-parser-generator": { "baseline": "3.39.3", "port-version": 1 }, "lensfun": { "baseline": "0.3.4", "port-version": 2 }, "leptonica": { "baseline": "1.87.0", "port-version": 0 }, "lerc": { "baseline": "4.0.4", "port-version": 0 }, "lest": { "baseline": "1.37.0", "port-version": 0 }, "level-zero": { "baseline": "1.26.3", "port-version": 0 }, "leveldb": { "baseline": "1.23", "port-version": 1 }, "levmar": { "baseline": "2.6", "port-version": 3 }, "lexbor": { "baseline": "2.7.0", "port-version": 0 }, "lexilla": { "baseline": "5.4.6", "port-version": 0 }, "lfreist-hwinfo": { "baseline": "2025-07-10", "port-version": 0 }, "lib3mf": { "baseline": "2.5.0", "port-version": 1 }, "libaaplus": { "baseline": "2.36", "port-version": 1 }, "libadlmidi": { "baseline": "2025-04-14", "port-version": 0 }, "libadwaita": { "baseline": "1.8.4", "port-version": 0 }, "libaec": { "baseline": "1.1.6", "port-version": 0 }, "libaes-siv": { "baseline": "2020-10-15", "port-version": 0 }, "libaiff": { "baseline": "5.0", "port-version": 10 }, "libaio": { "baseline": "0.3.113", "port-version": 0 }, "libalkimia": { "baseline": "8.1.72", "port-version": 1 }, "libao": { "baseline": "1.2.2", "port-version": 6 }, "libarchive": { "baseline": "3.8.6", "port-version": 0 }, "libaribcaption": { "baseline": "1.1.1", "port-version": 0 }, "libass": { "baseline": "0.17.4", "port-version": 0 }, "libassert": { "baseline": "2.2.1", "port-version": 0 }, "libassuan": { "baseline": "3.0.2", "port-version": 0 }, "libatomic-ops": { "baseline": "7.10.0", "port-version": 1 }, "libavif": { "baseline": "1.4.0", "port-version": 0 }, "libb2": { "baseline": "0.98.1", "port-version": 7 }, "libbacktrace": { "baseline": "2024-11-30", "port-version": 1 }, "libbluray": { "baseline": "1.4.1", "port-version": 0 }, "libbson": { "baseline": "2.2.3", "port-version": 0 }, "libcaer": { "baseline": "3.3.17", "port-version": 0 }, "libcamera": { "baseline": "0.5.0", "port-version": 1 }, "libcanberra": { "baseline": "0.30", "port-version": 4 }, "libcap": { "baseline": "2.77", "port-version": 0 }, "libcbor": { "baseline": "0.13.0", "port-version": 0 }, "libcds": { "baseline": "2.3.3", "port-version": 4 }, "libcerf": { "baseline": "2.4", "port-version": 0 }, "libcgroup": { "baseline": "3.2.0", "port-version": 1 }, "libcoap": { "baseline": "4.3.5a", "port-version": 0 }, "libconfig": { "baseline": "1.8.2", "port-version": 0 }, "libconfuse": { "baseline": "3.3", "port-version": 1 }, "libcopp": { "baseline": "2.3.1", "port-version": 0 }, "libcoro": { "baseline": "0.15.0", "port-version": 0 }, "libcorrect": { "baseline": "2018-10-11", "port-version": 0 }, "libcpplocate": { "baseline": "2.3.0", "port-version": 0 }, "libcrafter": { "baseline": "1.0", "port-version": 2 }, "libcred": { "baseline": "1.0.0", "port-version": 0 }, "libcroco": { "baseline": "0.6.13", "port-version": 9 }, "libcsv": { "baseline": "3.0.3", "port-version": 2 }, "libcuckoo": { "baseline": "0.3.1", "port-version": 0 }, "libcurl-simple-https": { "baseline": "2022-02-14", "port-version": 0 }, "libczi": { "baseline": "0.67.2", "port-version": 1 }, "libdatachannel": { "baseline": "0.24.1", "port-version": 0 }, "libdatrie": { "baseline": "0.2.13", "port-version": 1 }, "libdc1394": { "baseline": "2.2.7", "port-version": 0 }, "libde265": { "baseline": "1.0.16", "port-version": 1 }, "libdeflate": { "baseline": "1.25", "port-version": 0 }, "libdicom": { "baseline": "1.2.0", "port-version": 1 }, "libdisasm": { "baseline": "0.23", "port-version": 12 }, "libdivide": { "baseline": "5.3.0", "port-version": 0 }, "libdjinterop": { "baseline": "0.27.1", "port-version": 0 }, "libdmtx": { "baseline": "0.7.7", "port-version": 1 }, "libdmx": { "baseline": "1.1.5", "port-version": 1 }, "libdshowcapture": { "baseline": "2025-02-08", "port-version": 0 }, "libdvdcss": { "baseline": "1.5.0", "port-version": 0 }, "libdvdnav": { "baseline": "6.1.1", "port-version": 1 }, "libdvdread": { "baseline": "6.1.3", "port-version": 0 }, "libdwarf": { "baseline": "2.3.1", "port-version": 0 }, "libdxfrw": { "baseline": "2025-09-25", "port-version": 0 }, "libe57": { "baseline": "1.1.337", "port-version": 0 }, "libe57format": { "baseline": "3.3.0", "port-version": 0 }, "libebur128": { "baseline": "1.2.6", "port-version": 3 }, "libedit": { "baseline": "2024-08-08", "port-version": 1 }, "libenvpp": { "baseline": "1.5.2", "port-version": 0 }, "libepoxy": { "baseline": "1.5.10", "port-version": 2 }, "liberasurecode": { "baseline": "1.7.1", "port-version": 1 }, "libev": { "baseline": "4.33", "port-version": 5 }, "libevdev": { "baseline": "1.13.6", "port-version": 0 }, "libevent": { "baseline": "2.1.12+20230128", "port-version": 1 }, "libeventheader-decode": { "baseline": "1.4.0", "port-version": 0 }, "libeventheader-tracepoint": { "baseline": "1.4.0", "port-version": 0 }, "libevhtp": { "baseline": "1.2.18", "port-version": 6 }, "libexif": { "baseline": "0.6.25", "port-version": 1 }, "libfabric": { "baseline": "1.22.0", "port-version": 1 }, "libffi": { "baseline": "3.5.2", "port-version": 0 }, "libfido2": { "baseline": "1.16.0", "port-version": 0 }, "libflac": { "baseline": "1.5.0", "port-version": 0 }, "libfontenc": { "baseline": "1.1.4", "port-version": 1 }, "libfork": { "baseline": "3.8.0", "port-version": 0 }, "libfort": { "baseline": "0.4.2", "port-version": 1 }, "libfreenect2": { "baseline": "0.2.1", "port-version": 2 }, "libfs": { "baseline": "1.0.10", "port-version": 1 }, "libftdi": { "baseline": "0.20", "port-version": 5 }, "libftdi1": { "baseline": "1.5", "port-version": 5 }, "libfuse": { "baseline": "3.17.3", "port-version": 0 }, "libgcrypt": { "baseline": "1.12.1", "port-version": 0 }, "libgd": { "baseline": "2.3.3", "port-version": 3 }, "libgeotiff": { "baseline": "1.7.4", "port-version": 0 }, "libgig": { "baseline": "4.5.2", "port-version": 0 }, "libgit2": { "baseline": "1.9.2", "port-version": 0 }, "libgme": { "baseline": "0.6.3", "port-version": 1 }, "libgnutls": { "baseline": "3.8.12", "port-version": 0 }, "libgo": { "baseline": "3.1", "port-version": 6 }, "libgossip": { "baseline": "1.2.1.3", "port-version": 0 }, "libgpg-error": { "baseline": "1.59", "port-version": 0 }, "libgpiod": { "baseline": "2.1.3", "port-version": 1 }, "libgta": { "baseline": "1.0.8", "port-version": 5 }, "libguarded": { "baseline": "2.0.1", "port-version": 0 }, "libgwenhywfar": { "baseline": "5.14.1", "port-version": 0 }, "libgxps": { "baseline": "0.3.2", "port-version": 5 }, "libharu": { "baseline": "2.4.5", "port-version": 0 }, "libhat": { "baseline": "0.9.0", "port-version": 0 }, "libhdfs3": { "baseline": "2019-11-05", "port-version": 6 }, "libheif": { "baseline": "1.21.2", "port-version": 0 }, "libhsplasma": { "baseline": "2025-11-04", "port-version": 0 }, "libhv": { "baseline": "1.3.4", "port-version": 0 }, "libhydrogen": { "baseline": "2022-06-21", "port-version": 0 }, "libical": { "baseline": "3.0.20", "port-version": 0 }, "libice": { "baseline": "1.1.2", "port-version": 2 }, "libiconv": { "baseline": "1.18", "port-version": 3 }, "libics": { "baseline": "1.7.0", "port-version": 0 }, "libid3tag": { "baseline": "0.16.3", "port-version": 0 }, "libideviceactivation": { "baseline": "2023-05-01", "port-version": 1 }, "libidn2": { "baseline": "2.3.7", "port-version": 3 }, "libigl": { "baseline": "2.6.0", "port-version": 1 }, "libilbc": { "baseline": "3.0.4", "port-version": 0 }, "libimobiledevice": { "baseline": "2023-07-05", "port-version": 1 }, "libimobiledevice-glue": { "baseline": "2023-05-13", "port-version": 0 }, "libinterpolate": { "baseline": "2.7.2", "port-version": 1 }, "libirecovery": { "baseline": "2023-05-13", "port-version": 2 }, "libjpeg-turbo": { "baseline": "3.1.3", "port-version": 0 }, "libjuice": { "baseline": "1.7.0", "port-version": 0 }, "libjxl": { "baseline": "0.11.2", "port-version": 0 }, "libkeyfinder": { "baseline": "2.2.8", "port-version": 0 }, "libkml": { "baseline": "1.3.0", "port-version": 14 }, "liblas": { "baseline": "1.8.1", "port-version": 16 }, "liblbfgs": { "baseline": "1.10", "port-version": 2 }, "libleidenalg": { "baseline": "0.12.0", "port-version": 0 }, "liblemon": { "baseline": "2019-06-13", "port-version": 10 }, "liblinear": { "baseline": "249", "port-version": 0 }, "liblo": { "baseline": "0.34", "port-version": 0 }, "liblrc": { "baseline": "1.0.0", "port-version": 0 }, "liblsl": { "baseline": "1.17.5", "port-version": 0 }, "liblsquic": { "baseline": "3.3.2", "port-version": 1 }, "libltdl": { "baseline": "2.5.4", "port-version": 0 }, "liblttng-ust": { "baseline": "2.14.0", "port-version": 0 }, "liblzf": { "baseline": "3.6", "port-version": 1 }, "liblzma": { "baseline": "5.8.2", "port-version": 1 }, "libmad": { "baseline": "0.16.4", "port-version": 4 }, "libmagic": { "baseline": "5.46", "port-version": 2 }, "libmariadb": { "baseline": "3.4.8", "port-version": 0 }, "libmatio-cpp": { "baseline": "0.3.0", "port-version": 0 }, "libmaxminddb": { "baseline": "1.13.3", "port-version": 0 }, "libmediainfo": { "baseline": "26.1", "port-version": 0 }, "libmem": { "baseline": "5.1.5", "port-version": 0 }, "libmemcached-awesome": { "baseline": "1.1.4", "port-version": 0 }, "libmicrodns": { "baseline": "0.2.0", "port-version": 2 }, "libmicrohttpd": { "baseline": "1.0.2", "port-version": 0 }, "libmidi2": { "baseline": "0.15", "port-version": 0 }, "libmikmod": { "baseline": "3.3.11.1", "port-version": 13 }, "libmodbus": { "baseline": "3.1.12", "port-version": 0 }, "libmodman": { "baseline": "2.0.1", "port-version": 5 }, "libmodplug": { "baseline": "0.8.9.0", "port-version": 15 }, "libmorton": { "baseline": "0.2.12", "port-version": 0 }, "libmount": { "baseline": "2.41.3", "port-version": 1 }, "libmpeg2": { "baseline": "0.5.1", "port-version": 4 }, "libmspack": { "baseline": "0.11", "port-version": 0 }, "libmt32emu": { "baseline": "2.7.3", "port-version": 0 }, "libmtp": { "baseline": "1.1.22", "port-version": 1 }, "libmultisense": { "baseline": "7.4.0", "port-version": 0 }, "libmupdf": { "baseline": "1.26.10", "port-version": 0 }, "libmypaint": { "baseline": "1.6.1", "port-version": 2 }, "libmysofa": { "baseline": "1.3.4", "port-version": 0 }, "libmysql": { "baseline": "8.0.40", "port-version": 1 }, "libnice": { "baseline": "0.1.22", "port-version": 0 }, "libnice-gst": { "baseline": "0.1.22", "port-version": 0 }, "libnick": { "baseline": "2025.10.0", "port-version": 0 }, "libnoise": { "baseline": "1.0.0", "port-version": 3 }, "libnop": { "baseline": "2021-11-03", "port-version": 0 }, "libnotify": { "baseline": "0.8.8", "port-version": 0 }, "libobfuscate": { "baseline": "2024-07-10", "port-version": 0 }, "libodb": { "baseline": "2.4.0", "port-version": 12 }, "libodb-boost": { "baseline": "2.4.0", "port-version": 8 }, "libodb-mysql": { "baseline": "2.4.0", "port-version": 11 }, "libodb-pgsql": { "baseline": "2.4.0", "port-version": 8 }, "libodb-sqlite": { "baseline": "2.4.0", "port-version": 13 }, "libofx": { "baseline": "0.10.9", "port-version": 1 }, "libogg": { "baseline": "1.3.6", "port-version": 1 }, "libopenmpt": { "baseline": "0.8.4", "port-version": 0 }, "libopensp": { "baseline": "1.5.2", "port-version": 5 }, "libopnmidi": { "baseline": "1.5.1", "port-version": 2 }, "libopusenc": { "baseline": "0.3", "port-version": 0 }, "liboqs": { "baseline": "0.15.0", "port-version": 0 }, "liborigin": { "baseline": "3.0.3", "port-version": 0 }, "libosdp": { "baseline": "3.0.5", "port-version": 0 }, "libosip2": { "baseline": "5.3.1", "port-version": 3 }, "libosmium": { "baseline": "2.23.0", "port-version": 0 }, "libosmscout": { "baseline": "1.1.1", "port-version": 8 }, "libp7client": { "baseline": "5.6", "port-version": 5 }, "libpcap": { "baseline": "1.10.6", "port-version": 0 }, "libpff": { "baseline": "2021-11-14", "port-version": 2 }, "libpg-query": { "baseline": "17-6.2.1", "port-version": 0 }, "libphonenumber": { "baseline": "9.0.26", "port-version": 0 }, "libplist": { "baseline": "2.7.0", "port-version": 0 }, "libpmemobj-cpp": { "baseline": "1.13.0", "port-version": 1 }, "libpng": { "baseline": "1.6.55", "port-version": 0 }, "libpopcnt": { "baseline": "3.1", "port-version": 0 }, "libpopt": { "baseline": "1.16", "port-version": 18 }, "libpq": { "baseline": "16.9", "port-version": 3 }, "libpqxx": { "baseline": "7.10.5", "port-version": 0 }, "libprotobuf-mutator": { "baseline": "1.5", "port-version": 0 }, "libproxy": { "baseline": "0.4.18", "port-version": 3 }, "libpsl": { "baseline": "0.21.5", "port-version": 1 }, "libqcow": { "baseline": "20221124", "port-version": 1 }, "libqglviewer": { "baseline": "2.9.1", "port-version": 4 }, "libqrencode": { "baseline": "4.1.1", "port-version": 3 }, "libqtrest": { "baseline": "0.4.0", "port-version": 0 }, "librabbitmq": { "baseline": "0.15.0", "port-version": 1 }, "libraqm": { "baseline": "0.10.4", "port-version": 1 }, "libraw": { "baseline": "0.22.0", "port-version": 0 }, "librdkafka": { "baseline": "2.13.0", "port-version": 0 }, "libredwg": { "baseline": "0.13.3", "port-version": 1 }, "libremidi": { "baseline": "4.5.0", "port-version": 2 }, "libressl": { "baseline": "4.2.1", "port-version": 0 }, "librsvg": { "baseline": "2.40.23", "port-version": 0 }, "librsync": { "baseline": "2.3.4", "port-version": 0 }, "librtmp": { "baseline": "2024-03-01", "port-version": 1 }, "librtpi": { "baseline": "1.0.1", "port-version": 1 }, "librttopo": { "baseline": "1.1.0", "port-version": 10 }, "libsamplerate": { "baseline": "0.2.2", "port-version": 1 }, "libsass": { "baseline": "3.6.6", "port-version": 1 }, "libsbml": { "baseline": "5.20.4", "port-version": 0 }, "libsbsms": { "baseline": "2.3.0", "port-version": 0 }, "libscran-umappp": { "baseline": "3.2.1", "port-version": 0 }, "libsecret": { "baseline": "0.21.7", "port-version": 0 }, "libsercomm": { "baseline": "1.3.2", "port-version": 1 }, "libserial": { "baseline": "2025-09-03", "port-version": 0 }, "libsersi": { "baseline": "0.1.0", "port-version": 0 }, "libsharp": { "baseline": "1.0.0", "port-version": 0 }, "libshout": { "baseline": "2.4.6", "port-version": 0 }, "libsigcpp": { "baseline": "3.6.0", "port-version": 2 }, "libslirp": { "baseline": "4.9.1", "port-version": 0 }, "libsm": { "baseline": "1.2.6", "port-version": 1 }, "libsmacker": { "baseline": "1.2.0", "port-version": 0 }, "libsmb2": { "baseline": "6.2", "port-version": 0 }, "libsndfile": { "baseline": "1.2.2", "port-version": 1 }, "libsnoretoast": { "baseline": "0.8.0", "port-version": 2 }, "libsodium": { "baseline": "1.0.21", "port-version": 1 }, "libsonic": { "baseline": "0.2.0", "port-version": 0 }, "libsoundio": { "baseline": "2.0.1.7", "port-version": 0 }, "libsoup": { "baseline": "3.6.6", "port-version": 0 }, "libspatialindex": { "baseline": "2.1.0", "port-version": 0 }, "libspatialite": { "baseline": "5.1.0", "port-version": 6 }, "libspnav": { "baseline": "0.2.3", "port-version": 3 }, "libspng": { "baseline": "0.7.4", "port-version": 0 }, "libsquish": { "baseline": "1.15", "port-version": 15 }, "libsrt": { "baseline": "1.5.4", "port-version": 0 }, "libsrtp": { "baseline": "2.8.0", "port-version": 0 }, "libssh": { "baseline": "0.11.3", "port-version": 0 }, "libssh2": { "baseline": "1.11.1", "port-version": 2 }, "libstemmer": { "baseline": "2021.2.2.0", "port-version": 0 }, "libstk": { "baseline": "4.6.1", "port-version": 3 }, "libsvm": { "baseline": "3.35", "port-version": 0 }, "libsystemd": { "baseline": "257.8", "port-version": 1 }, "libtar": { "baseline": "1.2.20", "port-version": 1 }, "libtasn1": { "baseline": "4.19.0", "port-version": 3 }, "libtcod": { "baseline": "2.2.2", "port-version": 0 }, "libtess2": { "baseline": "2021-12-27", "port-version": 0 }, "libtheora": { "baseline": "1.2.0", "port-version": 0 }, "libtins": { "baseline": "4.5", "port-version": 0 }, "libtomcrypt": { "baseline": "1.18.2", "port-version": 3 }, "libtommath": { "baseline": "1.3.0", "port-version": 2 }, "libtorch": { "baseline": "2.7.1", "port-version": 0 }, "libtorrent": { "baseline": "2.0.11", "port-version": 0 }, "libtracepoint": { "baseline": "1.4.0", "port-version": 0 }, "libtracepoint-control": { "baseline": "1.4.0", "port-version": 0 }, "libtracepoint-decode": { "baseline": "1.4.0", "port-version": 0 }, "libu2f-server": { "baseline": "1.1.0", "port-version": 6 }, "libudfread": { "baseline": "1.2.0", "port-version": 0 }, "libudis86": { "baseline": "2018-01-28", "port-version": 4 }, "libudns": { "baseline": "0.4", "port-version": 6 }, "libui": { "baseline": "2018-11-03", "port-version": 3 }, "libunibreak": { "baseline": "6.1", "port-version": 1 }, "libunifex": { "baseline": "0.4.0", "port-version": 0 }, "libunistring": { "baseline": "1.2", "port-version": 3 }, "libunwind": { "baseline": "1.8.3", "port-version": 1 }, "libupnp": { "baseline": "1.18.2", "port-version": 0 }, "liburcu": { "baseline": "0.15.6", "port-version": 0 }, "liburing": { "baseline": "2.14", "port-version": 0 }, "libusb": { "baseline": "1.0.29", "port-version": 1 }, "libusb-win32": { "baseline": "1.4.0.0", "port-version": 0 }, "libusbmuxd": { "baseline": "2023-06-21", "port-version": 1 }, "libusbp": { "baseline": "1.3.1", "port-version": 0 }, "libuuid": { "baseline": "1.0.3", "port-version": 16 }, "libuv": { "baseline": "1.52.1", "port-version": 0 }, "libuvc": { "baseline": "0.0.7", "port-version": 1 }, "libva": { "baseline": "2.23.0", "port-version": 0 }, "libvault": { "baseline": "0.63.0", "port-version": 0 }, "libversion": { "baseline": "3.0.4", "port-version": 1 }, "libvhdi": { "baseline": "20251119", "port-version": 0 }, "libvmaf": { "baseline": "3.0.0", "port-version": 0 }, "libvorbis": { "baseline": "1.3.7", "port-version": 4 }, "libvpx": { "baseline": "1.16.0", "port-version": 0 }, "libwandio": { "baseline": "4.2.6-1", "port-version": 1 }, "libwebm": { "baseline": "1.0.0.32", "port-version": 0 }, "libwebp": { "baseline": "1.6.0", "port-version": 2 }, "libwebsockets": { "baseline": "4.5.7", "port-version": 0 }, "libx11": { "baseline": "1.8.1", "port-version": 5 }, "libxau": { "baseline": "1.0.12", "port-version": 1 }, "libxaw": { "baseline": "1.0.13", "port-version": 2 }, "libxcomposite": { "baseline": "0.4.7", "port-version": 1 }, "libxcrypt": { "baseline": "4.5.2", "port-version": 0 }, "libxcvt": { "baseline": "0.1.3", "port-version": 0 }, "libxdamage": { "baseline": "1.1.7", "port-version": 1 }, "libxdf": { "baseline": "0.99.9", "port-version": 0 }, "libxdiff": { "baseline": "0.23", "port-version": 4 }, "libxdmcp": { "baseline": "1.1.5", "port-version": 1 }, "libxext": { "baseline": "1.3.7", "port-version": 1 }, "libxfixes": { "baseline": "6.0.2", "port-version": 1 }, "libxfont": { "baseline": "2.0.5", "port-version": 2 }, "libxft": { "baseline": "2.3.9", "port-version": 1 }, "libxi": { "baseline": "1.8.2", "port-version": 1 }, "libxinerama": { "baseline": "1.1.6", "port-version": 1 }, "libxkbcommon": { "baseline": "1.7.0", "port-version": 0 }, "libxkbfile": { "baseline": "1.1.3", "port-version": 0 }, "libxlsxwriter": { "baseline": "1.2.4", "port-version": 0 }, "libxml2": { "baseline": "2.15.2", "port-version": 0 }, "libxmlb": { "baseline": "0.3.25", "port-version": 0 }, "libxmlmm": { "baseline": "0.6.0", "port-version": 4 }, "libxmlpp": { "baseline": "5.4.0", "port-version": 1 }, "libxmp": { "baseline": "4.6.0", "port-version": 1 }, "libxmu": { "baseline": "1.1.3", "port-version": 2 }, "libxpm": { "baseline": "3.5.17", "port-version": 1 }, "libxpresent": { "baseline": "1.0.2", "port-version": 1 }, "libxrandr": { "baseline": "1.5.5", "port-version": 1 }, "libxrender": { "baseline": "0.9.12", "port-version": 1 }, "libxres": { "baseline": "1.2.1", "port-version": 1 }, "libxscrnsaver": { "baseline": "1.2.5", "port-version": 1 }, "libxslt": { "baseline": "1.1.45", "port-version": 0 }, "libxt": { "baseline": "1.3.0", "port-version": 0 }, "libxtst": { "baseline": "1.2.5", "port-version": 1 }, "libxv": { "baseline": "1.0.13", "port-version": 1 }, "libxxf86vm": { "baseline": "1.1.7", "port-version": 1 }, "libyaml": { "baseline": "0.2.5", "port-version": 5 }, "libyuv": { "baseline": "1916", "port-version": 0 }, "libzen": { "baseline": "0.4.41", "port-version": 0 }, "libzim": { "baseline": "9.4.1", "port-version": 0 }, "libzip": { "baseline": "1.11.4", "port-version": 0 }, "libzippp": { "baseline": "7.1-1.10.1", "port-version": 0 }, "licensepp": { "baseline": "1.2.0", "port-version": 0 }, "lief": { "baseline": "0.17.5", "port-version": 0 }, "lightgbm": { "baseline": "4.5.0", "port-version": 0 }, "lightningscanner": { "baseline": "1.0.1", "port-version": 0 }, "lilv": { "baseline": "0.26.4", "port-version": 0 }, "linalg": { "baseline": "2.2", "port-version": 0 }, "linmath": { "baseline": "2022-07-30", "port-version": 0 }, "lionkor-commandline": { "baseline": "2.4.2", "port-version": 0 }, "liquid-dsp": { "baseline": "1.7.0", "port-version": 0 }, "litehtml": { "baseline": "0.9.0", "port-version": 0 }, "live555": { "baseline": "2026-01-12", "port-version": 0 }, "livepp": { "baseline": "2.11.2", "port-version": 0 }, "llama-cpp": { "baseline": "7146", "port-version": 0 }, "llfio": { "baseline": "2025-01-13", "port-version": 0 }, "llgi": { "baseline": "2023-12-19", "port-version": 1 }, "llgl": { "baseline": "2023-03-05", "port-version": 1 }, "llhttp": { "baseline": "9.3.1", "port-version": 0 }, "llnl-units": { "baseline": "0.13.1", "port-version": 1 }, "lloyal-ai-inlined-vector": { "baseline": "5.7.1", "port-version": 0 }, "llvm": { "baseline": "18.1.6", "port-version": 5 }, "lmdb": { "baseline": "0.9.33", "port-version": 0 }, "lockpp": { "baseline": "3.2.0", "port-version": 0 }, "lodepng": { "baseline": "2021-12-04", "port-version": 1 }, "log4cplus": { "baseline": "2.1.2", "port-version": 0 }, "log4cpp-log4cpp": { "baseline": "1.1.5", "port-version": 0 }, "log4cxx": { "baseline": "1.6.1", "port-version": 1 }, "logme": { "baseline": "2.4.13", "port-version": 0 }, "loguru": { "baseline": "2.1.0", "port-version": 6 }, "lpeg": { "baseline": "1.1.0", "port-version": 1 }, "ls-qpack": { "baseline": "2.6.2", "port-version": 0 }, "ltla-aarand": { "baseline": "1.1.0", "port-version": 0 }, "ltla-cppirlba": { "baseline": "3.0.1", "port-version": 1 }, "ltla-cppkmeans": { "baseline": "4.0.6", "port-version": 0 }, "ltla-powerit": { "baseline": "2.0.1", "port-version": 0 }, "ltla-sanisizer": { "baseline": "0.2.0", "port-version": 0 }, "ltla-subpar": { "baseline": "0.5.0", "port-version": 0 }, "lua": { "baseline": "5.5.0", "port-version": 1 }, "lua-compat53": { "baseline": "0.14.4", "port-version": 0 }, "luabridge": { "baseline": "2.10", "port-version": 0 }, "luabridge3": { "baseline": "3.0-rc3", "port-version": 0 }, "luafilesystem": { "baseline": "1.9.0", "port-version": 0 }, "luajit": { "baseline": "2026-03-04", "port-version": 0 }, "luasec": { "baseline": "1.3.2", "port-version": 2 }, "luasocket": { "baseline": "3.1.0", "port-version": 1 }, "luau": { "baseline": "0.712", "port-version": 0 }, "luminoengine": { "baseline": "0.10.1", "port-version": 1 }, "lunarg-vulkantools": { "baseline": "1.4.341.0", "port-version": 0 }, "lunasvg": { "baseline": "3.5.0", "port-version": 0 }, "luv": { "baseline": "1.44.2", "port-version": 1 }, "lv2": { "baseline": "1.18.10", "port-version": 1 }, "lwlog": { "baseline": "1.4.0", "port-version": 0 }, "lz4": { "baseline": "1.10.0", "port-version": 0 }, "lzav": { "baseline": "5.8", "port-version": 0 }, "lzfse": { "baseline": "1.0", "port-version": 5 }, "lzo": { "baseline": "2.10", "port-version": 9 }, "lzokay": { "baseline": "2023-10-22", "port-version": 0 }, "maddy": { "baseline": "1.6.0", "port-version": 0 }, "magic-args": { "baseline": "0.2.1", "port-version": 0 }, "magic-enum": { "baseline": "0.9.7", "port-version": 1 }, "magma": { "baseline": "2.9.0", "port-version": 0 }, "magnum": { "baseline": "2020.06", "port-version": 20 }, "magnum-extras": { "baseline": "2020.06", "port-version": 2 }, "magnum-integration": { "baseline": "2020.06", "port-version": 3 }, "magnum-plugins": { "baseline": "2020.06", "port-version": 13 }, "mailio": { "baseline": "0.25.3", "port-version": 0 }, "makeid": { "baseline": "1.0.3", "port-version": 0 }, "manif": { "baseline": "0.0.5", "port-version": 1 }, "manifold": { "baseline": "3.4.0", "port-version": 0 }, "mapbox-geojson-cpp": { "baseline": "0.5.1", "port-version": 1 }, "mapbox-geojson-vt-cpp": { "baseline": "6.6.5", "port-version": 0 }, "mapbox-geometry": { "baseline": "2.0.3", "port-version": 0 }, "mapbox-polylabel": { "baseline": "2.0.1", "port-version": 0 }, "mapbox-variant": { "baseline": "1.2.0", "port-version": 3 }, "mapbox-wagyu": { "baseline": "0.5.0", "port-version": 0 }, "mapnik": { "baseline": "4.0.7", "port-version": 0 }, "marble": { "baseline": "24.08.2", "port-version": 1 }, "marchingcubecpp": { "baseline": "2023-09-11", "port-version": 0 }, "mariadb-connector-cpp": { "baseline": "1.1.5", "port-version": 0 }, "marisa-trie": { "baseline": "0.3.1", "port-version": 0 }, "marl": { "baseline": "2023-06-28", "port-version": 0 }, "marzbanpp": { "baseline": "1.0.5", "port-version": 0 }, "matajoh-libnpy": { "baseline": "2.1.2", "port-version": 0 }, "matchit": { "baseline": "1.0.1", "port-version": 0 }, "materialx": { "baseline": "1.39.1", "port-version": 2 }, "mathc": { "baseline": "2019-09-29", "port-version": 3 }, "mathgl": { "baseline": "8.0.1", "port-version": 7 }, "mathter": { "baseline": "2.0.1", "port-version": 0 }, "matio": { "baseline": "1.5.29", "port-version": 0 }, "matplotlib-cpp": { "baseline": "2020-08-27", "port-version": 2 }, "matplotplusplus": { "baseline": "1.2.1", "port-version": 0 }, "matroska": { "baseline": "1.7.1", "port-version": 3 }, "mbedtls": { "baseline": "3.6.5", "port-version": 0 }, "mcap": { "baseline": "2.1.3", "port-version": 0 }, "mchehab-zbar": { "baseline": "0.23.93", "port-version": 0 }, "mcpp": { "baseline": "2.7.2.20", "port-version": 0 }, "md4c": { "baseline": "0.5.2", "port-version": 0 }, "mdl-sdk": { "baseline": "2025.0.5", "port-version": 1 }, "mdns": { "baseline": "1.4.3", "port-version": 0 }, "mdnsresponder": { "baseline": "1557.140.5.0.1", "port-version": 1 }, "mdspan": { "baseline": "0.6.0", "port-version": 0 }, "mecab": { "baseline": "2019-09-25", "port-version": 6 }, "meekrosoft-fff": { "baseline": "1.1", "port-version": 0 }, "memorymodule": { "baseline": "2019-12-31", "port-version": 3 }, "meojson": { "baseline": "5.0.0", "port-version": 0 }, "mesa": { "baseline": "24.0.7", "port-version": 3 }, "meschach": { "baseline": "1.2b", "port-version": 6 }, "meshoptimizer": { "baseline": "1.0.1", "port-version": 0 }, "metis": { "baseline": "2025-07-04", "port-version": 1 }, "metrohash": { "baseline": "1.1.3", "port-version": 5 }, "mexce": { "baseline": "1.0.1", "port-version": 0 }, "mfl": { "baseline": "0.0.1", "port-version": 3 }, "mfx-dispatch": { "baseline": "1.35.1", "port-version": 6 }, "mgclient": { "baseline": "1.5.0", "port-version": 0 }, "mgnlibs": { "baseline": "2019-09-29", "port-version": 2 }, "mhook": { "baseline": "2.5.1", "port-version": 3 }, "michaelmiller-sec21": { "baseline": "1.0.1", "port-version": 0 }, "micro-gl": { "baseline": "2025-07-11", "port-version": 0 }, "microlog": { "baseline": "7.0.2", "port-version": 0 }, "microsoft-signalr": { "baseline": "0.1.0-alpha4", "port-version": 12 }, "microsoft-windows-devices-midi2": { "baseline": "1.0.13-preview.13.192", "port-version": 0 }, "mikktspace": { "baseline": "2020-10-06", "port-version": 3 }, "mimalloc": { "baseline": "3.2.8", "port-version": 0 }, "mimicpp": { "baseline": "9.2.1", "port-version": 0 }, "minc": { "baseline": "2.4.6", "port-version": 0 }, "minhook": { "baseline": "1.3.4", "port-version": 0 }, "miniaudio": { "baseline": "0.11.25", "port-version": 0 }, "minifb": { "baseline": "2023-09-21", "port-version": 0 }, "minimp3": { "baseline": "2021-11-30", "port-version": 0 }, "minio-cpp": { "baseline": "0.3.0", "port-version": 0 }, "miniply": { "baseline": "2022-09-15", "port-version": 1 }, "minisat-master-keying": { "baseline": "2.3.6", "port-version": 1 }, "minitrace": { "baseline": "2023-04-23", "port-version": 0 }, "miniupnpc": { "baseline": "2.3.2", "port-version": 0 }, "miniz": { "baseline": "3.1.1", "port-version": 0 }, "minizip": { "baseline": "1.3.1", "port-version": 1 }, "minizip-ng": { "baseline": "4.1.0", "port-version": 0 }, "mio": { "baseline": "2023-03-03", "port-version": 0 }, "mlpack": { "baseline": "4.7.0", "port-version": 0 }, "mman": { "baseline": "git-f5ff813", "port-version": 5 }, "mmloader": { "baseline": "1.0.1", "port-version": 3 }, "mmx": { "baseline": "2025-03-19", "port-version": 0 }, "mnn": { "baseline": "1.1.0", "port-version": 7 }, "modern-cpp-kafka": { "baseline": "2024.07.03", "port-version": 0 }, "modp-base64": { "baseline": "2020-09-26", "port-version": 2 }, "mongo-c-driver": { "baseline": "2.2.3", "port-version": 0 }, "mongo-cxx-driver": { "baseline": "4.1.4", "port-version": 0 }, "mongoose": { "baseline": "7.20", "port-version": 1 }, "monkeys-audio": { "baseline": "10.08", "port-version": 2 }, "moos-core": { "baseline": "10.4.0", "port-version": 10 }, "moos-essential": { "baseline": "10.0.1", "port-version": 5 }, "moos-ui": { "baseline": "10.0.1", "port-version": 5 }, "morcules-swiftnet": { "baseline": "0.4.0", "port-version": 0 }, "morphologica": { "baseline": "4.0", "port-version": 0 }, "morton-nd": { "baseline": "4.0.0", "port-version": 3 }, "mosquitto": { "baseline": "2.0.22", "port-version": 1 }, "mp-units": { "baseline": "2.5.0", "port-version": 0 }, "mp3lame": { "baseline": "3.100", "port-version": 16 }, "mpark-patterns": { "baseline": "2019-10-03", "port-version": 0 }, "mpark-variant": { "baseline": "1.4.0", "port-version": 3 }, "mpc": { "baseline": "1.3.1", "port-version": 3 }, "mpfr": { "baseline": "4.2.2", "port-version": 1 }, "mpg123": { "baseline": "1.33.4", "port-version": 0 }, "mpi": { "baseline": "1", "port-version": 6 }, "mpir": { "baseline": "3.0.0", "port-version": 12 }, "mpmcqueue": { "baseline": "2021-12-01", "port-version": 0 }, "mqtt-cpp": { "baseline": "13.2.3", "port-version": 0 }, "ms-gdk": { "baseline": "2510.2.6247", "port-version": 0 }, "ms-gdkx": { "baseline": "1.0.0", "port-version": 2 }, "ms-gltf": { "baseline": "2024-09-05", "port-version": 0 }, "ms-gsl": { "baseline": "4.2.1", "port-version": 0 }, "ms-ifc-sdk": { "baseline": "0.43.5", "port-version": 0 }, "msdfgen": { "baseline": "1.13+new-skia-api", "port-version": 0 }, "msgpack": { "baseline": "7.0.0", "port-version": 0 }, "msgpack-c": { "baseline": "6.1.0", "port-version": 0 }, "msgpack11": { "baseline": "0.0.10", "port-version": 4 }, "msh3": { "baseline": "0.8.0", "port-version": 0 }, "msinttypes": { "baseline": "2018-02-25", "port-version": 2 }, "msix": { "baseline": "1.7", "port-version": 5 }, "msmpi": { "baseline": "10.1.12498.52", "port-version": 0 }, "msolve": { "baseline": "0.9.4", "port-version": 0 }, "msquic": { "baseline": "2.4.8", "port-version": 1 }, "mstch": { "baseline": "1.0.2", "port-version": 5 }, "mtlt": { "baseline": "1.0.0", "port-version": 0 }, "muda": { "baseline": "2025.10.9", "port-version": 0 }, "mujoco": { "baseline": "3.5.0", "port-version": 0 }, "mujs": { "baseline": "1.3.8", "port-version": 0 }, "munit": { "baseline": "2019-04-06", "port-version": 5 }, "muparser": { "baseline": "2.3.5", "port-version": 0 }, "murmur3": { "baseline": "2015-05-02", "port-version": 0 }, "murmurhash": { "baseline": "2016-01-09", "port-version": 7 }, "mvfst": { "baseline": "2026.02.23.00", "port-version": 0 }, "mxml": { "baseline": "4.0.4", "port-version": 1 }, "mygui": { "baseline": "3.4.3", "port-version": 4 }, "mypaint-brushes": { "baseline": "2.0.2", "port-version": 0 }, "mysql-connector-cpp": { "baseline": "9.1.0", "port-version": 4 }, "mysvac-jsonlib": { "baseline": "3.0.0", "port-version": 0 }, "mzying2001-sw": { "baseline": "0.1.0", "port-version": 0 }, "nameof": { "baseline": "0.10.4", "port-version": 0 }, "nana": { "baseline": "1.7.4", "port-version": 5 }, "nano-signal-slot": { "baseline": "2.0.1", "port-version": 2 }, "nanoarrow": { "baseline": "0.8.0", "port-version": 1 }, "nanobench": { "baseline": "4.3.11", "port-version": 0 }, "nanobind": { "baseline": "2.12.0", "port-version": 0 }, "nanodbc": { "baseline": "2.13.0", "port-version": 8 }, "nanoflann": { "baseline": "1.9.0", "port-version": 0 }, "nanogui": { "baseline": "2019-09-23", "port-version": 7 }, "nanojsonc": { "baseline": "1.3.0", "port-version": 0 }, "nanomsg": { "baseline": "1.2.2", "port-version": 0 }, "nanopb": { "baseline": "0.4.9.1", "port-version": 0 }, "nanoprintf": { "baseline": "0.5.6", "port-version": 0 }, "nanorange": { "baseline": "2020-07-06", "port-version": 0 }, "nanort": { "baseline": "2019-08-20", "port-version": 3 }, "nanosvg": { "baseline": "2023-12-29", "port-version": 0 }, "nanovg": { "baseline": "2023-08-26", "port-version": 0 }, "nativefiledialog-extended": { "baseline": "1.3.0", "port-version": 0 }, "nayuki-qr-code-generator": { "baseline": "1.8.0", "port-version": 1 }, "nccl": { "baseline": "2.4.6", "port-version": 2 }, "ncnn": { "baseline": "20260113", "port-version": 0 }, "ncurses": { "baseline": "6.5", "port-version": 3 }, "ndis-driver-library": { "baseline": "1.2.0", "port-version": 0 }, "neargye-semver": { "baseline": "1.0.0-rc", "port-version": 0 }, "ned14-internal-quickcpplib": { "baseline": "2025-12-16", "port-version": 0 }, "neko-event": { "baseline": "1.0.1", "port-version": 0 }, "neko-function": { "baseline": "1.0.11", "port-version": 0 }, "neko-log": { "baseline": "1.0.7", "port-version": 0 }, "neko-network": { "baseline": "1.0.3", "port-version": 0 }, "neko-schema": { "baseline": "1.1.5", "port-version": 0 }, "neko-system": { "baseline": "1.0.1", "port-version": 0 }, "neko-threadpool": { "baseline": "1.0.2", "port-version": 0 }, "neon2sse": { "baseline": "2024-11-24", "port-version": 0 }, "neoslippi": { "baseline": "1.0.3.18", "port-version": 0 }, "netcdf-c": { "baseline": "4.9.3", "port-version": 3 }, "netcdf-cxx4": { "baseline": "4.3.1", "port-version": 5 }, "netcpp": { "baseline": "0.5.0", "port-version": 0 }, "netgen": { "baseline": "6.2.2401", "port-version": 2 }, "nethost": { "baseline": "8.0.3", "port-version": 0 }, "nettle": { "baseline": "3.10", "port-version": 1 }, "networkdirect-sdk": { "baseline": "2.0.1", "port-version": 4 }, "ng-log": { "baseline": "0.8.2", "port-version": 0 }, "nghttp2": { "baseline": "1.68.1", "port-version": 0 }, "nghttp2-asio": { "baseline": "2022-08-11", "port-version": 2 }, "nghttp3": { "baseline": "1.15.0", "port-version": 0 }, "ngspice": { "baseline": "41", "port-version": 0 }, "ngtcp2": { "baseline": "1.21.0", "port-version": 0 }, "nifly": { "baseline": "1.0.0", "port-version": 1 }, "nifticlib": { "baseline": "2022-07-04", "port-version": 0 }, "nlohmann-fifo-map": { "baseline": "1.0.0", "port-version": 0 }, "nlohmann-json": { "baseline": "3.12.0", "port-version": 2 }, "nlopt": { "baseline": "2.10.1", "port-version": 1 }, "nmslib": { "baseline": "2.1.1", "port-version": 3 }, "nng": { "baseline": "1.11", "port-version": 0 }, "nngpp": { "baseline": "1.3.0", "port-version": 3 }, "nnpack": { "baseline": "2021-02-21", "port-version": 4 }, "node-addon-api": { "baseline": "8.6.0", "port-version": 0 }, "node-api-headers": { "baseline": "1.6.0", "port-version": 0 }, "nodesoup": { "baseline": "2023-06-12", "port-version": 0 }, "nonius": { "baseline": "2019-04-20", "port-version": 4 }, "nonstd-bit-lite": { "baseline": "2.0.0", "port-version": 0 }, "nonstd-scope-lite": { "baseline": "0.3.0", "port-version": 0 }, "nowide": { "baseline": "11.3.1", "port-version": 0 }, "nrf-ble-driver": { "baseline": "4.1.4", "port-version": 2 }, "nspr": { "baseline": "4.36", "port-version": 1 }, "nss": { "baseline": "3.113.1", "port-version": 1 }, "nsync": { "baseline": "1.30.0", "port-version": 0 }, "nt-wrapper": { "baseline": "2019-08-10", "port-version": 3 }, "ntf-core": { "baseline": "2.5.4", "port-version": 0 }, "nu-book-zxing-cpp": { "baseline": "2.3.0", "port-version": 0 }, "nuklear": { "baseline": "4.13.2", "port-version": 0 }, "numactl": { "baseline": "2.0.19", "port-version": 1 }, "numcpp": { "baseline": "2.16.0", "port-version": 0 }, "nuraft": { "baseline": "3.0.0", "port-version": 0 }, "nuspell": { "baseline": "5.1.6", "port-version": 0 }, "nvidia-cutlass": { "baseline": "4.3.5", "port-version": 0 }, "nvtt": { "baseline": "2.1.2", "port-version": 9 }, "nyan-lang": { "baseline": "0.3.1", "port-version": 0 }, "oatpp": { "baseline": "1.3.1", "port-version": 0 }, "oatpp-consul": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-curl": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-libressl": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-mbedtls": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-mongo": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-openssl": { "baseline": "1.3.0", "port-version": 0 }, "oatpp-postgresql": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-sqlite": { "baseline": "1.3.0", "port-version": 2 }, "oatpp-ssdp": { "baseline": "1.3.0", "port-version": 1 }, "oatpp-swagger": { "baseline": "1.3.1", "port-version": 0 }, "oatpp-websocket": { "baseline": "1.3.0", "port-version": 0 }, "oatpp-zlib": { "baseline": "1.3.0", "port-version": 2 }, "obfuscxx": { "baseline": "1.3.1", "port-version": 0 }, "oboe": { "baseline": "1.10.0", "port-version": 0 }, "observer-ptr-lite": { "baseline": "0.4.0", "port-version": 3 }, "ocilib": { "baseline": "4.8.0", "port-version": 1 }, "octave": { "baseline": "10.2.0", "port-version": 2 }, "octomap": { "baseline": "1.10.0", "port-version": 0 }, "ode": { "baseline": "0.16.6", "port-version": 0 }, "offscale-libetcd-cpp": { "baseline": "2019-07-10", "port-version": 3 }, "ogre": { "baseline": "14.5.0", "port-version": 0 }, "ogre-next": { "baseline": "3.0.0", "port-version": 0 }, "ois": { "baseline": "1.6.0", "port-version": 0 }, "omniorb": { "baseline": "4.3.0", "port-version": 4 }, "ompl": { "baseline": "1.7.0", "port-version": 0 }, "omplapp": { "baseline": "1.7.0", "port-version": 0 }, "onednn": { "baseline": "3.11", "port-version": 0 }, "oniguruma": { "baseline": "6.9.10", "port-version": 0 }, "onnx": { "baseline": "1.19.0", "port-version": 0 }, "onnx-optimizer": { "baseline": "0.3.19", "port-version": 2 }, "onnxruntime": { "baseline": "1.23.2", "port-version": 0 }, "onnxruntime-gpu": { "baseline": "1.23.2", "port-version": 0 }, "oof": { "baseline": "2021-11-23", "port-version": 0 }, "open-dis-cpp": { "baseline": "1.0.1", "port-version": 0 }, "open62541": { "baseline": "1.4.14", "port-version": 0 }, "open62541pp": { "baseline": "0.21.0", "port-version": 0 }, "openal-soft": { "baseline": "1.25.1", "port-version": 0 }, "openblas": { "baseline": "0.3.29", "port-version": 0 }, "opencascade": { "baseline": "7.9.3", "port-version": 0 }, "opencc": { "baseline": "1.1.9", "port-version": 1 }, "opencensus-cpp": { "baseline": "2021-08-26", "port-version": 2 }, "opencl": { "baseline": "2024.10.24", "port-version": 1 }, "opencolorio": { "baseline": "2.5.1", "port-version": 0 }, "opencsg": { "baseline": "1.8.2", "port-version": 0 }, "openctm": { "baseline": "1.0.3", "port-version": 3 }, "opencv": { "baseline": "4.12.0", "port-version": 0 }, "opencv2": { "baseline": "2.4.13.7", "port-version": 25 }, "opencv3": { "baseline": "3.4.20", "port-version": 2 }, "opencv4": { "baseline": "4.12.0", "port-version": 1 }, "opendnp3": { "baseline": "3.1.2", "port-version": 0 }, "openexr": { "baseline": "3.4.7", "port-version": 0 }, "openfbx": { "baseline": "2024-12-28", "port-version": 0 }, "openfx": { "baseline": "1.4", "port-version": 0 }, "opengl": { "baseline": "2022-12-04", "port-version": 3 }, "opengl-registry": { "baseline": "2026-01-26", "port-version": 0 }, "openh264": { "baseline": "2.6.0", "port-version": 4 }, "openigtlink": { "baseline": "3.0", "port-version": 4 }, "openimageio": { "baseline": "3.0.9.1", "port-version": 3 }, "openjpeg": { "baseline": "2.5.4", "port-version": 0 }, "openjph": { "baseline": "0.26.3", "port-version": 0 }, "openldap": { "baseline": "2.6.12", "port-version": 0 }, "openmama": { "baseline": "6.3.2", "port-version": 3 }, "openmesh": { "baseline": "10.0", "port-version": 0 }, "openmpi": { "baseline": "4.1.8", "port-version": 0 }, "openmvg": { "baseline": "2.1", "port-version": 4 }, "openmvs": { "baseline": "2.3.0", "port-version": 0 }, "openni2": { "baseline": "2.2.0.33", "port-version": 15 }, "openscap": { "baseline": "1.4.2", "port-version": 0 }, "openslide": { "baseline": "4.0.0", "port-version": 4 }, "openssl": { "baseline": "3.6.1", "port-version": 3 }, "opensubdiv": { "baseline": "3.5.0", "port-version": 3 }, "opentelemetry-cpp": { "baseline": "1.25.0", "port-version": 0 }, "opentelemetry-cpp-contrib-version": { "baseline": "2025-11-24", "port-version": 0 }, "opentracing": { "baseline": "1.6.0", "port-version": 4 }, "openturns": { "baseline": "1.25.1", "port-version": 0 }, "openvdb": { "baseline": "12.0.1", "port-version": 0 }, "openvino": { "baseline": "2026.0.0", "port-version": 1 }, "openvpn3": { "baseline": "3.10", "port-version": 1 }, "openvr": { "baseline": "2.12.14", "port-version": 0 }, "openxlsx": { "baseline": "2025-07-14", "port-version": 0 }, "openxr-loader": { "baseline": "1.1.54", "port-version": 0 }, "openzl": { "baseline": "0.1.0", "port-version": 0 }, "optimus-cpp": { "baseline": "0.3.0", "port-version": 0 }, "optional-lite": { "baseline": "3.6.0", "port-version": 0 }, "opus": { "baseline": "1.5.2", "port-version": 1 }, "opusfile": { "baseline": "0.12+20221121", "port-version": 1 }, "orange-math": { "baseline": "5.0.0", "port-version": 0 }, "orange-vmprotect-sdk": { "baseline": "1.0.2", "port-version": 0 }, "orc": { "baseline": "2.2.2", "port-version": 1 }, "orefkov-simstr": { "baseline": "1.7.3", "port-version": 0 }, "ormpp": { "baseline": "0.2.0", "port-version": 0 }, "orocos-kdl": { "baseline": "1.5.3", "port-version": 0 }, "oscpack": { "baseline": "1.1.0", "port-version": 0 }, "osg": { "baseline": "3.6.5", "port-version": 27 }, "osg-qt": { "baseline": "Qt5", "port-version": 3 }, "osgearth": { "baseline": "3.8", "port-version": 0 }, "osmanip": { "baseline": "4.6.1", "port-version": 0 }, "osp-collection": { "baseline": "1.0.1", "port-version": 0 }, "osqp": { "baseline": "1.0.0", "port-version": 1 }, "osqp-eigen": { "baseline": "0.11.0", "port-version": 1 }, "otl": { "baseline": "4.0.497", "port-version": 0 }, "outcome": { "baseline": "2.2.14", "port-version": 0 }, "p-ranav-csv": { "baseline": "2019-07-11", "port-version": 3 }, "p-ranav-csv2": { "baseline": "2020-12-14", "port-version": 4 }, "p-ranav-glob": { "baseline": "0.0.1", "port-version": 0 }, "pagmo2": { "baseline": "2.19.1", "port-version": 1 }, "paho-mqtt": { "baseline": "1.3.16", "port-version": 0 }, "paho-mqttpp3": { "baseline": "1.6.0", "port-version": 0 }, "palsigslot": { "baseline": "1.2.3", "port-version": 0 }, "pango": { "baseline": "1.57.0", "port-version": 0 }, "pangolin": { "baseline": "0.9.4", "port-version": 0 }, "pangomm": { "baseline": "2.56.1", "port-version": 1 }, "parallel-hashmap": { "baseline": "2.0.0", "port-version": 0 }, "parallelstl": { "baseline": "20200330", "port-version": 3 }, "paraview": { "baseline": "5.12.1", "port-version": 6 }, "parmetis": { "baseline": "2023-03-26", "port-version": 0 }, "parsi": { "baseline": "0.1.0", "port-version": 0 }, "parson": { "baseline": "1.5.3", "port-version": 0 }, "patternia": { "baseline": "0.9.1", "port-version": 0 }, "pbc": { "baseline": "0.5.14", "port-version": 9 }, "pcapplusplus": { "baseline": "25.5", "port-version": 1 }, "pcg": { "baseline": "2022-04-09", "port-version": 0 }, "pciids": { "baseline": "2023-04-11", "port-version": 0 }, "pcl": { "baseline": "1.15.1", "port-version": 1 }, "pcre": { "baseline": "8.45", "port-version": 7 }, "pcre2": { "baseline": "10.47", "port-version": 0 }, "pdal": { "baseline": "2.9.3", "port-version": 0 }, "pdal-c": { "baseline": "2.2.0", "port-version": 0 }, "pdal-dimbuilder": { "baseline": "2.9.3", "port-version": 0 }, "pdcurses": { "baseline": "3.9", "port-version": 7 }, "pdqsort": { "baseline": "2019-07-30", "port-version": 2 }, "pe-parse": { "baseline": "2.1.1", "port-version": 0 }, "pegtl": { "baseline": "3.2.8", "port-version": 0 }, "pegtl-2": { "baseline": "2.8.3", "port-version": 3 }, "perfetto": { "baseline": "53.0", "port-version": 0 }, "pffft": { "baseline": "1.0.0", "port-version": 0 }, "pfring": { "baseline": "8.8.0", "port-version": 0 }, "pfultz2-linq": { "baseline": "2019-05-14", "port-version": 3 }, "phnt": { "baseline": "2025-02-05", "port-version": 0 }, "physac": { "baseline": "1.1", "port-version": 0 }, "physfs": { "baseline": "3.2.0", "port-version": 1 }, "physx": { "baseline": "5.5.0", "port-version": 1 }, "picobench": { "baseline": "2.8.0", "port-version": 0 }, "picojson": { "baseline": "1.3.0", "port-version": 3 }, "picosha2": { "baseline": "1.0.1", "port-version": 0 }, "piex": { "baseline": "2019-07-11", "port-version": 2 }, "pipewire": { "baseline": "1.4.10", "port-version": 0 }, "pistache": { "baseline": "2021-03-31", "port-version": 4 }, "pixel": { "baseline": "2022-03-15", "port-version": 1 }, "pixman": { "baseline": "0.46.4", "port-version": 1 }, "pkgconf": { "baseline": "2.5.1", "port-version": 4 }, "plasma-wayland-protocols": { "baseline": "1.14.0", "port-version": 0 }, "platform-folders": { "baseline": "4.3.0", "port-version": 0 }, "plf-colony": { "baseline": "7.6.10", "port-version": 0 }, "plf-hive": { "baseline": "2025-12-22", "port-version": 0 }, "plf-indiesort": { "baseline": "1.4.4", "port-version": 0 }, "plf-list": { "baseline": "2.8.0", "port-version": 0 }, "plf-nanotimer": { "baseline": "1.0.8", "port-version": 0 }, "plf-queue": { "baseline": "2.2", "port-version": 0 }, "plf-stack": { "baseline": "2.0.13", "port-version": 0 }, "plib": { "baseline": "1.8.5", "port-version": 8 }, "plibsys": { "baseline": "0.0.5", "port-version": 0 }, "plog": { "baseline": "1.1.11", "port-version": 0 }, "plplot": { "baseline": "5.15.0", "port-version": 6 }, "plustache": { "baseline": "0.4.0", "port-version": 5 }, "plutosvg": { "baseline": "0.0.7", "port-version": 0 }, "plutovg": { "baseline": "1.3.2", "port-version": 0 }, "pmdk": { "baseline": "1.12.0", "port-version": 2 }, "pmp-library": { "baseline": "3.0.0", "port-version": 0 }, "pngpp": { "baseline": "0.2.10", "port-version": 2 }, "pngwriter": { "baseline": "0.7.0", "port-version": 5 }, "pocketfft": { "baseline": "2023-09-25", "port-version": 0 }, "pocketpy": { "baseline": "1.4.6", "port-version": 1 }, "poco": { "baseline": "1.14.1", "port-version": 2 }, "podofo": { "baseline": "1.0.3", "port-version": 0 }, "poissonrecon": { "baseline": "2021-09-26", "port-version": 0 }, "polyclipping": { "baseline": "6.4.2", "port-version": 13 }, "polyhook2": { "baseline": "2025-06-21", "port-version": 0 }, "polymorphic-value": { "baseline": "1.3.0", "port-version": 3 }, "ponder": { "baseline": "3.0.0", "port-version": 5 }, "poolparty": { "baseline": "3.0.1", "port-version": 0 }, "poolstl": { "baseline": "0.3.5", "port-version": 0 }, "poppler": { "baseline": "25.7.0", "port-version": 0 }, "poppler-data": { "baseline": "0.4.12", "port-version": 1 }, "popsift": { "baseline": "0.10.0", "port-version": 0 }, "portable-file-dialogs": { "baseline": "0.1.0", "port-version": 0 }, "portable-snippets": { "baseline": "2019-09-20", "port-version": 4 }, "portaudio": { "baseline": "19.7", "port-version": 9 }, "portmidi": { "baseline": "2.0.8", "port-version": 0 }, "portsmf": { "baseline": "239", "port-version": 0 }, "poselib": { "baseline": "2.0.5", "port-version": 0 }, "ppconsul": { "baseline": "2022-02-15", "port-version": 0 }, "ppqsort": { "baseline": "1.0.6", "port-version": 0 }, "pprint": { "baseline": "2019-07-19", "port-version": 3 }, "pqp": { "baseline": "1.3", "port-version": 8 }, "pravila00-enum-string": { "baseline": "2023-10-16", "port-version": 0 }, "pravila00-enumflag": { "baseline": "2024-04-12", "port-version": 0 }, "pravila00-make-vector": { "baseline": "2023-04-10", "port-version": 0 }, "presentmon": { "baseline": "2.3.0", "port-version": 0 }, "proj": { "baseline": "9.7.1", "port-version": 0 }, "projectm": { "baseline": "4.1.6", "port-version": 0 }, "projectm-eval": { "baseline": "1.0.6", "port-version": 1 }, "prometheus-cpp": { "baseline": "1.3.0", "port-version": 0 }, "promise-cpp": { "baseline": "2.1.5", "port-version": 0 }, "protobuf": { "baseline": "6.33.4", "port-version": 1 }, "protobuf-c": { "baseline": "1.5.2", "port-version": 0 }, "protopuf": { "baseline": "3.1.0", "port-version": 0 }, "protozero": { "baseline": "1.8.0", "port-version": 0 }, "proxsuite": { "baseline": "0.6.7", "port-version": 0 }, "proxy": { "baseline": "4.0.2", "port-version": 0 }, "proxygen": { "baseline": "2026.02.23.00", "port-version": 0 }, "psimd": { "baseline": "2021-02-21", "port-version": 4 }, "ptc-print": { "baseline": "1.4.1", "port-version": 1 }, "ptex": { "baseline": "2.5.0", "port-version": 0 }, "pthread": { "baseline": "3.0.0", "port-version": 2 }, "pthread-stubs": { "baseline": "0.5", "port-version": 1 }, "pthreadpool": { "baseline": "2024-11-04", "port-version": 2 }, "pthreads": { "baseline": "3.0.0", "port-version": 14 }, "ptyqt": { "baseline": "0.7.1", "port-version": 0 }, "pugixml": { "baseline": "1.15", "port-version": 1 }, "pulsar-client-cpp": { "baseline": "4.0.0", "port-version": 1 }, "pulseaudio": { "baseline": "17.0", "port-version": 3 }, "pulzed-mini": { "baseline": "0.9.18", "port-version": 0 }, "pxlib": { "baseline": "2025-12-16", "port-version": 0 }, "pybind11": { "baseline": "3.0.1", "port-version": 0 }, "pystring": { "baseline": "1.1.4", "port-version": 0 }, "python2": { "baseline": "2.7.18", "port-version": 7 }, "python3": { "baseline": "3.12.13", "port-version": 0 }, "qca": { "baseline": "2.3.7", "port-version": 4 }, "qcbor": { "baseline": "1.6", "port-version": 0 }, "qcoro": { "baseline": "0.12.0", "port-version": 0 }, "qcustomplot": { "baseline": "2.1.1", "port-version": 1 }, "qdldl": { "baseline": "0.1.9", "port-version": 1 }, "qgis-o2": { "baseline": "1.1", "port-version": 0 }, "qhttpengine": { "baseline": "1.0.2", "port-version": 1 }, "qhull": { "baseline": "8.0.2", "port-version": 6 }, "qlementine": { "baseline": "1.4.2", "port-version": 0 }, "qlementine-icons": { "baseline": "1.14.0", "port-version": 0 }, "qmex": { "baseline": "2024-10-31", "port-version": 0 }, "qnnpack": { "baseline": "2021-02-26", "port-version": 5 }, "qoi": { "baseline": "2023-08-10", "port-version": 0 }, "qoixx": { "baseline": "0.1.7", "port-version": 0 }, "qpdf": { "baseline": "12.3.2", "port-version": 0 }, "qpid-proton": { "baseline": "0.40.0", "port-version": 1 }, "qpoases": { "baseline": "3.2.2", "port-version": 0 }, "qscintilla": { "baseline": "2.14.1", "port-version": 1 }, "qt": { "baseline": "6.10.2", "port-version": 0 }, "qt-advanced-docking-system": { "baseline": "4.5.0", "port-version": 0 }, "qt3d": { "baseline": "6.10.2", "port-version": 0 }, "qt5": { "baseline": "5.15.18", "port-version": 0 }, "qt5-3d": { "baseline": "5.15.18", "port-version": 0 }, "qt5-activeqt": { "baseline": "5.15.18", "port-version": 0 }, "qt5-androidextras": { "baseline": "5.15.18", "port-version": 0 }, "qt5-base": { "baseline": "5.15.18", "port-version": 2 }, "qt5-charts": { "baseline": "5.15.18", "port-version": 0 }, "qt5-connectivity": { "baseline": "5.15.18", "port-version": 0 }, "qt5-datavis3d": { "baseline": "5.15.18", "port-version": 0 }, "qt5-declarative": { "baseline": "5.15.18", "port-version": 1 }, "qt5-doc": { "baseline": "5.15.18", "port-version": 0 }, "qt5-gamepad": { "baseline": "5.15.18", "port-version": 0 }, "qt5-graphicaleffects": { "baseline": "5.15.18", "port-version": 0 }, "qt5-imageformats": { "baseline": "5.15.18", "port-version": 0 }, "qt5-location": { "baseline": "5.15.18", "port-version": 0 }, "qt5-macextras": { "baseline": "5.15.18", "port-version": 0 }, "qt5-mqtt": { "baseline": "5.15.17", "port-version": 0 }, "qt5-multimedia": { "baseline": "5.15.18", "port-version": 0 }, "qt5-networkauth": { "baseline": "5.15.18", "port-version": 0 }, "qt5-purchasing": { "baseline": "5.15.18", "port-version": 0 }, "qt5-quick3d": { "baseline": "5.15.16", "port-version": 0 }, "qt5-quickcontrols": { "baseline": "5.15.18", "port-version": 0 }, "qt5-quickcontrols2": { "baseline": "5.15.18", "port-version": 0 }, "qt5-quicktimeline": { "baseline": "5.15.16", "port-version": 0 }, "qt5-remoteobjects": { "baseline": "5.15.18", "port-version": 0 }, "qt5-script": { "baseline": "5.15.18", "port-version": 0 }, "qt5-scxml": { "baseline": "5.15.18", "port-version": 0 }, "qt5-sensors": { "baseline": "5.15.18", "port-version": 0 }, "qt5-serialbus": { "baseline": "5.15.18", "port-version": 0 }, "qt5-serialport": { "baseline": "5.15.18", "port-version": 0 }, "qt5-speech": { "baseline": "5.15.18", "port-version": 0 }, "qt5-svg": { "baseline": "5.15.18", "port-version": 0 }, "qt5-tools": { "baseline": "5.15.18", "port-version": 0 }, "qt5-translations": { "baseline": "5.15.18", "port-version": 0 }, "qt5-virtualkeyboard": { "baseline": "5.15.18", "port-version": 0 }, "qt5-wayland": { "baseline": "5.15.18", "port-version": 0 }, "qt5-webchannel": { "baseline": "5.15.18", "port-version": 0 }, "qt5-webengine": { "baseline": "5.15.18", "port-version": 0 }, "qt5-webglplugin": { "baseline": "5.15.18", "port-version": 0 }, "qt5-websockets": { "baseline": "5.15.18", "port-version": 0 }, "qt5-webview": { "baseline": "5.15.18", "port-version": 0 }, "qt5-winextras": { "baseline": "5.15.18", "port-version": 0 }, "qt5-x11extras": { "baseline": "5.15.18", "port-version": 0 }, "qt5-xmlpatterns": { "baseline": "5.15.18", "port-version": 0 }, "qt5compat": { "baseline": "6.10.2", "port-version": 0 }, "qtactiveqt": { "baseline": "6.10.2", "port-version": 0 }, "qtapplicationmanager": { "baseline": "6.10.2", "port-version": 0 }, "qtbase": { "baseline": "6.10.2", "port-version": 0 }, "qtcharts": { "baseline": "6.10.2", "port-version": 0 }, "qtcoap": { "baseline": "6.10.2", "port-version": 0 }, "qtconnectivity": { "baseline": "6.10.2", "port-version": 0 }, "qtdatavis3d": { "baseline": "6.10.2", "port-version": 0 }, "qtdeclarative": { "baseline": "6.10.2", "port-version": 0 }, "qtdeviceutilities": { "baseline": "6.10.2", "port-version": 0 }, "qtdoc": { "baseline": "6.10.2", "port-version": 0 }, "qtgraphs": { "baseline": "6.10.2", "port-version": 0 }, "qtgrpc": { "baseline": "6.10.2", "port-version": 0 }, "qthttpserver": { "baseline": "6.10.2", "port-version": 0 }, "qtimageformats": { "baseline": "6.10.2", "port-version": 0 }, "qtinterfaceframework": { "baseline": "6.10.2", "port-version": 0 }, "qtkeychain": { "baseline": "0.14.3", "port-version": 0 }, "qtkeychain-qt6": { "baseline": "0.14.3", "port-version": 1 }, "qtlanguageserver": { "baseline": "6.10.2", "port-version": 0 }, "qtlocation": { "baseline": "6.10.2", "port-version": 0 }, "qtlottie": { "baseline": "6.10.2", "port-version": 0 }, "qtmqtt": { "baseline": "6.10.2", "port-version": 0 }, "qtmultimedia": { "baseline": "6.10.2", "port-version": 0 }, "qtnetworkauth": { "baseline": "6.10.2", "port-version": 0 }, "qtopcua": { "baseline": "6.10.2", "port-version": 0 }, "qtpositioning": { "baseline": "6.10.2", "port-version": 0 }, "qtquick3d": { "baseline": "6.10.2", "port-version": 0 }, "qtquick3dphysics": { "baseline": "6.10.2", "port-version": 0 }, "qtquickcontrols2": { "baseline": "deprecated", "port-version": 1 }, "qtquickeffectmaker": { "baseline": "6.10.2", "port-version": 0 }, "qtquicktimeline": { "baseline": "6.10.2", "port-version": 0 }, "qtremoteobjects": { "baseline": "6.10.2", "port-version": 0 }, "qtscxml": { "baseline": "6.10.2", "port-version": 0 }, "qtsensors": { "baseline": "6.10.2", "port-version": 0 }, "qtserialbus": { "baseline": "6.10.2", "port-version": 0 }, "qtserialport": { "baseline": "6.10.2", "port-version": 0 }, "qtshadertools": { "baseline": "6.10.2", "port-version": 0 }, "qtspeech": { "baseline": "6.10.2", "port-version": 0 }, "qtsvg": { "baseline": "6.10.2", "port-version": 0 }, "qttools": { "baseline": "6.10.2", "port-version": 0 }, "qttranslations": { "baseline": "6.10.2", "port-version": 0 }, "qtvirtualkeyboard": { "baseline": "6.10.2", "port-version": 0 }, "qtwayland": { "baseline": "6.10.2", "port-version": 0 }, "qtwebchannel": { "baseline": "6.10.2", "port-version": 0 }, "qtwebengine": { "baseline": "6.10.2", "port-version": 0 }, "qtwebsockets": { "baseline": "6.10.2", "port-version": 0 }, "qtwebview": { "baseline": "6.10.2", "port-version": 0 }, "quadtree": { "baseline": "2022-04-24", "port-version": 0 }, "quantlib": { "baseline": "1.40", "port-version": 0 }, "quarter": { "baseline": "1.2.3", "port-version": 1 }, "quaternions": { "baseline": "1.0.0", "port-version": 2 }, "quazip": { "baseline": "1.5", "port-version": 0 }, "quickfast": { "baseline": "1.5", "port-version": 5 }, "quickfix": { "baseline": "1.15.1", "port-version": 9 }, "quickjs-ng": { "baseline": "0.12.1", "port-version": 0 }, "quill": { "baseline": "11.1.0", "port-version": 0 }, "quirc": { "baseline": "1.2", "port-version": 0 }, "qwt": { "baseline": "6.3.0", "port-version": 1 }, "qwtw": { "baseline": "3.1.0", "port-version": 5 }, "qzxing": { "baseline": "3.3.0", "port-version": 0 }, "rabit": { "baseline": "0.1", "port-version": 5 }, "ragel": { "baseline": "6.10", "port-version": 7 }, "random123": { "baseline": "1.14.0", "port-version": 0 }, "randomstr": { "baseline": "2022-02-03", "port-version": 0 }, "rang": { "baseline": "3.2", "port-version": 0 }, "range-v3": { "baseline": "0.12.0", "port-version": 4 }, "rapidcheck": { "baseline": "2023-12-14", "port-version": 0 }, "rapidcsv": { "baseline": "8.90", "port-version": 0 }, "rapidfuzz": { "baseline": "deprecated", "port-version": 0 }, "rapidfuzz-cpp": { "baseline": "3.3.3", "port-version": 0 }, "rapidhash": { "baseline": "3", "port-version": 1 }, "rapidjson": { "baseline": "2025-02-26", "port-version": 0 }, "rapidobj": { "baseline": "1.1", "port-version": 0 }, "rapidxml": { "baseline": "1.13", "port-version": 9 }, "rapidxml-ns": { "baseline": "1.13.2", "port-version": 2 }, "rappture": { "baseline": "1.9", "port-version": 4 }, "raygui": { "baseline": "4.0", "port-version": 0 }, "raylib": { "baseline": "5.5", "port-version": 1 }, "raylib-cpp": { "baseline": "5.5.0", "port-version": 1 }, "rbdl": { "baseline": "3.3.1", "port-version": 0 }, "re2": { "baseline": "2025-11-05", "port-version": 0 }, "reaction": { "baseline": "1.0.0", "port-version": 0 }, "reactiveplusplus": { "baseline": "2.2.3", "port-version": 0 }, "reactphysics3d": { "baseline": "0.10.2", "port-version": 1 }, "readerwriterqueue": { "baseline": "1.0.7", "port-version": 0 }, "readline": { "baseline": "0", "port-version": 5 }, "readline-unix": { "baseline": "8.3", "port-version": 0 }, "readline-win32": { "baseline": "5.0", "port-version": 9 }, "readosm": { "baseline": "1.1.0a", "port-version": 6 }, "realm-core": { "baseline": "14.14.0", "port-version": 0 }, "realsense2": { "baseline": "2.56.5", "port-version": 0 }, "rebind": { "baseline": "5.3.1", "port-version": 0 }, "recastnavigation": { "baseline": "1.6.0", "port-version": 1 }, "recycle": { "baseline": "8.0.0", "port-version": 0 }, "red0124-ssp": { "baseline": "1.8.0", "port-version": 0 }, "redis-plus-plus": { "baseline": "1.3.15", "port-version": 0 }, "refl-cpp": { "baseline": "0.12.4", "port-version": 0 }, "reflectcpp": { "baseline": "0.24.0", "port-version": 0 }, "refprop-headers": { "baseline": "2022-12-07", "port-version": 0 }, "rendergraph": { "baseline": "2.1.0", "port-version": 0 }, "replxx": { "baseline": "0.0.4", "port-version": 1 }, "reproc": { "baseline": "14.2.5", "port-version": 0 }, "rerun-sdk": { "baseline": "0.30.2", "port-version": 0 }, "rest-rpc": { "baseline": "0.12", "port-version": 1 }, "restbed": { "baseline": "4.8", "port-version": 3 }, "restc-cpp": { "baseline": "1.0.0", "port-version": 2 }, "restclient-cpp": { "baseline": "2024-01-09", "port-version": 0 }, "restinio": { "baseline": "0.7.9", "port-version": 0 }, "resultlib": { "baseline": "1.0.0", "port-version": 0 }, "retropak": { "baseline": "1.0.0", "port-version": 0 }, "rewolf-wow64ext": { "baseline": "1.0.0.9", "port-version": 1 }, "rexo": { "baseline": "0.2.2", "port-version": 0 }, "rgfw": { "baseline": "1.70", "port-version": 0 }, "rhash": { "baseline": "1.4.5", "port-version": 0 }, "rhasheq": { "baseline": "2023-06-17", "port-version": 0 }, "riffcpp": { "baseline": "2.2.4", "port-version": 3 }, "ring-span-lite": { "baseline": "0.7.0", "port-version": 0 }, "rioki-glow": { "baseline": "0.2.1", "port-version": 1 }, "ripper37-libbase": { "baseline": "1.1.2", "port-version": 0 }, "rivers": { "baseline": "2022-05-16", "port-version": 0 }, "rkcommon": { "baseline": "1.14.2", "port-version": 0 }, "rlottie": { "baseline": "2024-08-26", "port-version": 0 }, "rmlui": { "baseline": "6.2", "port-version": 0 }, "rmqcpp": { "baseline": "1.0.0", "port-version": 2 }, "rnnoise": { "baseline": "0.2", "port-version": 0 }, "roaring": { "baseline": "4.6.1", "port-version": 0 }, "robin-hood-hashing": { "baseline": "3.11.5", "port-version": 2 }, "robin-map": { "baseline": "1.4.1", "port-version": 0 }, "robotraconteur": { "baseline": "1.2.7", "port-version": 0 }, "robotraconteur-companion": { "baseline": "0.4.2", "port-version": 1 }, "rocksdb": { "baseline": "10.10.1", "port-version": 0 }, "rp-ntuples": { "baseline": "0.1.4", "port-version": 0 }, "rpclib": { "baseline": "2.3.0", "port-version": 2 }, "rply": { "baseline": "1.1.4", "port-version": 4 }, "rsasynccpp": { "baseline": "0.0.7", "port-version": 3 }, "rsig": { "baseline": "0.2.0", "port-version": 0 }, "rsm-binary-io": { "baseline": "2.0.6", "port-version": 0 }, "rsm-bsa": { "baseline": "4.1.0", "port-version": 1 }, "rsm-mmio": { "baseline": "2.0.0", "port-version": 0 }, "rsocket": { "baseline": "2021.08.30.00", "port-version": 5 }, "rtabmap": { "baseline": "0.23.2", "port-version": 0 }, "rtabmap-res-tool": { "baseline": "0.23.2", "port-version": 0 }, "rtaudio": { "baseline": "6.0.1", "port-version": 1 }, "rtc-benchmarksuite": { "baseline": "1.0.1", "port-version": 0 }, "rtlsdr": { "baseline": "2.0.2", "port-version": 0 }, "rtmfp-cpp": { "baseline": "1.5.1", "port-version": 1 }, "rtmidi": { "baseline": "6.0.0", "port-version": 0 }, "rttr": { "baseline": "0.9.6+20210811", "port-version": 1 }, "ruapu": { "baseline": "0.1.0", "port-version": 0 }, "rubberband": { "baseline": "4.0.0", "port-version": 1 }, "ruckig": { "baseline": "0.15.3", "port-version": 0 }, "rxcpp": { "baseline": "4.1.1", "port-version": 1 }, "rxqt": { "baseline": "d0b1535", "port-version": 1 }, "rxspencer": { "baseline": "3.9.0", "port-version": 2 }, "ryml": { "baseline": "0.11.0", "port-version": 0 }, "ryu": { "baseline": "2.0", "port-version": 10 }, "s2geometry": { "baseline": "0.13.1", "port-version": 0 }, "s2n": { "baseline": "1.7.1", "port-version": 0 }, "safeint": { "baseline": "3.0.28", "port-version": 0 }, "safetyhook": { "baseline": "0.6.9", "port-version": 1 }, "sail": { "baseline": "0.9.10", "port-version": 0 }, "sajson": { "baseline": "2018-09-21", "port-version": 3 }, "salome-configuration": { "baseline": "9.10.0", "port-version": 2 }, "salome-med-fichier": { "baseline": "4.1.1", "port-version": 3 }, "salome-medcoupling": { "baseline": "9.10.0", "port-version": 1 }, "sassc": { "baseline": "3.6.2", "port-version": 2 }, "saucer": { "baseline": "6.0.1", "port-version": 6 }, "sbgecom": { "baseline": "5.3.2276", "port-version": 0 }, "sbp": { "baseline": "6.3.2", "port-version": 0 }, "scenepic": { "baseline": "1.1.1", "port-version": 1 }, "scintilla": { "baseline": "5.5.8", "port-version": 0 }, "sciplot": { "baseline": "0.3.1", "port-version": 1 }, "sciter-js": { "baseline": "6.0.3.7", "port-version": 0 }, "scnlib": { "baseline": "4.0.1", "port-version": 1 }, "scope-guard": { "baseline": "1.1.0", "port-version": 0 }, "scotch": { "baseline": "7.0.5", "port-version": 1 }, "scottt-debugbreak": { "baseline": "1.0", "port-version": 0 }, "scylla-wrapper": { "baseline": "2018-08-26-16e6f435", "port-version": 3 }, "sdbus-cpp": { "baseline": "2.2.1", "port-version": 0 }, "sdflib": { "baseline": "2025-11-03", "port-version": 0 }, "sdformat": { "baseline": "15.4.0", "port-version": 0 }, "sdl1": { "baseline": "1.2.15", "port-version": 23 }, "sdl1-mixer": { "baseline": "2025-09-10", "port-version": 0 }, "sdl1-net": { "baseline": "1.2.8", "port-version": 6 }, "sdl2": { "baseline": "2.32.10", "port-version": 0 }, "sdl2-gfx": { "baseline": "1.0.4", "port-version": 11 }, "sdl2-image": { "baseline": "2.8.8", "port-version": 2 }, "sdl2-mixer": { "baseline": "2.8.1", "port-version": 2 }, "sdl2-mixer-ext": { "baseline": "2.6.0", "port-version": 1 }, "sdl2-net": { "baseline": "2.2.0", "port-version": 3 }, "sdl2-ttf": { "baseline": "2.24.0", "port-version": 0 }, "sdl2pp": { "baseline": "0.18.1", "port-version": 0 }, "sdl3": { "baseline": "3.4.2", "port-version": 1 }, "sdl3-image": { "baseline": "3.4.0", "port-version": 0 }, "sdl3-mixer": { "baseline": "3.2.0", "port-version": 0 }, "sdl3-shadercross": { "baseline": "3.0.0-preview1", "port-version": 0 }, "sdl3-ttf": { "baseline": "3.2.2", "port-version": 1 }, "seacas": { "baseline": "2022-11-22", "port-version": 10 }, "seal": { "baseline": "4.1.2", "port-version": 0 }, "seasocks": { "baseline": "1.4.6", "port-version": 0 }, "sebsjames-maths": { "baseline": "1.0", "port-version": 0 }, "secp256k1": { "baseline": "0.7.1", "port-version": 0 }, "selene": { "baseline": "0.3.1", "port-version": 8 }, "sentencepiece": { "baseline": "0.2.1", "port-version": 0 }, "sentry-native": { "baseline": "0.13.3", "port-version": 0 }, "septag-dmon": { "baseline": "2022-02-08", "port-version": 0 }, "septag-sx": { "baseline": "2019-05-07", "port-version": 5 }, "seqan": { "baseline": "2.4.0", "port-version": 3 }, "serd": { "baseline": "0.32.8", "port-version": 0 }, "serdepp": { "baseline": "0.1.4.1", "port-version": 0 }, "serf": { "baseline": "1.3.10", "port-version": 0 }, "sese": { "baseline": "2.3.0", "port-version": 3 }, "sf2cute": { "baseline": "0.2.0", "port-version": 4 }, "sfcgal": { "baseline": "2.2.0", "port-version": 0 }, "sfgui": { "baseline": "1.0.0", "port-version": 0 }, "sfl": { "baseline": "2.2.0", "port-version": 0 }, "sfml": { "baseline": "3.0.2", "port-version": 0 }, "sfsexp": { "baseline": "1.4.1", "port-version": 0 }, "shader-slang": { "baseline": "2026.2", "port-version": 0 }, "shaderc": { "baseline": "2026.1", "port-version": 0 }, "shaderwriter": { "baseline": "2.9.0", "port-version": 1 }, "shapelib": { "baseline": "1.6.3", "port-version": 0 }, "shared-mime-info": { "baseline": "2.4", "port-version": 0 }, "sheenbidi": { "baseline": "3.0.0", "port-version": 0 }, "shiftmedia-libgcrypt": { "baseline": "1.10.3-1", "port-version": 1 }, "shiftmedia-libgnutls": { "baseline": "3.8.7", "port-version": 2 }, "shiftmedia-libgpg-error": { "baseline": "1.45", "port-version": 1 }, "si": { "baseline": "2.5.1", "port-version": 0 }, "sigmatch": { "baseline": "0.2.0", "port-version": 0 }, "signalsmith-dsp": { "baseline": "1.6.2", "port-version": 0 }, "signalsmith-stretch": { "baseline": "1.1.0", "port-version": 0 }, "sigslot": { "baseline": "1.0.0", "port-version": 5 }, "simage": { "baseline": "1.8.4", "port-version": 0 }, "simbody": { "baseline": "2023-01-10", "port-version": 1 }, "simd": { "baseline": "6.2.159", "port-version": 0 }, "simde": { "baseline": "0.8.2", "port-version": 0 }, "simdjson": { "baseline": "4.4.1", "port-version": 0 }, "simdutf": { "baseline": "8.2.0", "port-version": 0 }, "simonbrunel-qtpromise": { "baseline": "0.7.0", "port-version": 1 }, "simple-fft": { "baseline": "2020-06-14", "port-version": 2 }, "simpleamqpclient": { "baseline": "2.5.1", "port-version": 0 }, "simpleble": { "baseline": "0.12.1", "port-version": 0 }, "simpleini": { "baseline": "4.25", "port-version": 0 }, "simsimd": { "baseline": "6.5.16", "port-version": 0 }, "sintra": { "baseline": "1.0.3", "port-version": 0 }, "sjpeg": { "baseline": "2025-06-04", "port-version": 0 }, "skcrypter": { "baseline": "2021-12-03", "port-version": 0 }, "skia": { "baseline": "146", "port-version": 0 }, "skyr-url": { "baseline": "3.0.0", "port-version": 0 }, "sleef": { "baseline": "3.9.0", "port-version": 1 }, "sleepy-discord": { "baseline": "2025-12-18", "port-version": 0 }, "slick-logger": { "baseline": "1.0.6", "port-version": 0 }, "slick-net": { "baseline": "2.0.0", "port-version": 0 }, "slick-object-pool": { "baseline": "0.1.3", "port-version": 0 }, "slick-queue": { "baseline": "1.4.1", "port-version": 0 }, "slick-shm": { "baseline": "0.1.4", "port-version": 0 }, "slick-socket": { "baseline": "1.0.6", "port-version": 0 }, "slikenet": { "baseline": "2021-06-07", "port-version": 3 }, "sltbench": { "baseline": "2.4.0", "port-version": 3 }, "small-gicp": { "baseline": "1.0.0", "port-version": 0 }, "smf": { "baseline": "0.2.3", "port-version": 0 }, "smpeg2": { "baseline": "2.0.0", "port-version": 11 }, "snap7": { "baseline": "1.4.2", "port-version": 2 }, "snappy": { "baseline": "1.2.2", "port-version": 1 }, "snitch": { "baseline": "1.2.5", "port-version": 0 }, "snowhouse": { "baseline": "5.0.0", "port-version": 2 }, "so5extra": { "baseline": "1.6.2", "port-version": 0 }, "soapysdr": { "baseline": "0.8.1", "port-version": 0 }, "sobjectizer": { "baseline": "5.8.5", "port-version": 0 }, "soci": { "baseline": "4.0.3", "port-version": 3 }, "socket-io-client": { "baseline": "2023-11-11", "port-version": 0 }, "sockpp": { "baseline": "1.0.0", "port-version": 2 }, "soem": { "baseline": "2023-06-09", "port-version": 2 }, "soil": { "baseline": "2021-04-22", "port-version": 2 }, "soil2": { "baseline": "1.3.0", "port-version": 1 }, "sokol": { "baseline": "2023-10-07", "port-version": 0 }, "sol2": { "baseline": "3.5.0", "port-version": 1 }, "solid3": { "baseline": "3.5.8", "port-version": 4 }, "sonivox": { "baseline": "4.0.1", "port-version": 0 }, "sophus": { "baseline": "1.24.6", "port-version": 0 }, "soqt": { "baseline": "1.6.0", "port-version": 4 }, "sord": { "baseline": "0.16.22", "port-version": 0 }, "soundtouch": { "baseline": "2.4.0", "port-version": 0 }, "soxr": { "baseline": "0.1.3", "port-version": 8 }, "spaceland": { "baseline": "7.8.2", "port-version": 11 }, "span-lite": { "baseline": "0.11.0", "port-version": 0 }, "sparsehash": { "baseline": "2.0.4", "port-version": 2 }, "sparsepp": { "baseline": "1.22", "port-version": 4 }, "spatial-hash": { "baseline": "1.0.0", "port-version": 0 }, "spatialite-tools": { "baseline": "5.1.0-a", "port-version": 2 }, "spdlog": { "baseline": "1.17.0", "port-version": 0 }, "spectra": { "baseline": "1.0.1", "port-version": 0 }, "speex": { "baseline": "1.2.1", "port-version": 2 }, "speexdsp": { "baseline": "1.2.1", "port-version": 1 }, "spglib": { "baseline": "2.5.0", "port-version": 0 }, "spimpl": { "baseline": "2025-01-23", "port-version": 0 }, "spine-c": { "baseline": "4.2.20260227", "port-version": 0 }, "spine-cpp": { "baseline": "4.2.20260227", "port-version": 0 }, "spirit-po": { "baseline": "1.1.2", "port-version": 4 }, "spirv-cross": { "baseline": "1.4.341.0", "port-version": 0 }, "spirv-headers": { "baseline": "1.4.341.0", "port-version": 0 }, "spirv-reflect": { "baseline": "1.4.341.0", "port-version": 0 }, "spirv-tools": { "baseline": "1.4.341.0", "port-version": 0 }, "spix": { "baseline": "0.14", "port-version": 0 }, "spout2": { "baseline": "2.007.010", "port-version": 0 }, "sproto": { "baseline": "2024-07-08", "port-version": 1 }, "sprout": { "baseline": "2019-06-20", "port-version": 2 }, "spscqueue": { "baseline": "1.1", "port-version": 3 }, "spz": { "baseline": "2.1.0", "port-version": 0 }, "sqlcipher": { "baseline": "4.6.1", "port-version": 3 }, "sqlgen": { "baseline": "0.6.0", "port-version": 0 }, "sqlite-flux": { "baseline": "1.1.1", "port-version": 0 }, "sqlite-modern-cpp": { "baseline": "2023-12-03", "port-version": 0 }, "sqlite-orm": { "baseline": "1.9.1", "port-version": 0 }, "sqlite3": { "baseline": "3.52.0", "port-version": 0 }, "sqlitecpp": { "baseline": "3.3.3", "port-version": 0 }, "sqlpp11": { "baseline": "0.65", "port-version": 0 }, "sqlpp11-connector-mysql": { "baseline": "0.61", "port-version": 0 }, "sqlpp11-connector-sqlite3": { "baseline": "0.61", "port-version": 0 }, "squirrel": { "baseline": "2021-09-17", "port-version": 0 }, "sratom": { "baseline": "0.6.22", "port-version": 0 }, "srell": { "baseline": "3.010", "port-version": 0 }, "srpc": { "baseline": "0.10.4", "port-version": 2 }, "sse2neon": { "baseline": "1.9.1", "port-version": 0 }, "st-tree": { "baseline": "1.4.0", "port-version": 0 }, "stackwalker": { "baseline": "2023-06-24", "port-version": 0 }, "starlink-ast": { "baseline": "9.2.12", "port-version": 0 }, "staticjson": { "baseline": "1.0.0", "port-version": 0 }, "status-code": { "baseline": "2025-05-21", "port-version": 0 }, "status-value-lite": { "baseline": "1.1.0", "port-version": 3 }, "stb": { "baseline": "2024-07-29", "port-version": 1 }, "stc": { "baseline": "5.0", "port-version": 0 }, "stdexec": { "baseline": "2026-02-26", "port-version": 0 }, "stduuid": { "baseline": "1.2.3", "port-version": 0 }, "steam-audio": { "baseline": "4.8.1", "port-version": 0 }, "stella-cv-fbow": { "baseline": "0.0.1", "port-version": 1 }, "stftpitchshift": { "baseline": "1.4.1", "port-version": 0 }, "stillwater-universal": { "baseline": "3.96", "port-version": 0 }, "stlab": { "baseline": "2.3.0", "port-version": 0 }, "stlab-copy-on-write": { "baseline": "1.1.0", "port-version": 0 }, "stlab-enum-ops": { "baseline": "1.2.0", "port-version": 0 }, "stormlib": { "baseline": "9.26", "port-version": 0 }, "str-view": { "baseline": "0.7.1", "port-version": 0 }, "strict-variant": { "baseline": "0.5", "port-version": 2 }, "string-lite": { "baseline": "0.0.0", "port-version": 0 }, "string-theory": { "baseline": "3.9", "port-version": 0 }, "string-view-lite": { "baseline": "1.8.0", "port-version": 1 }, "stringzilla": { "baseline": "4.6.0", "port-version": 0 }, "strong-type": { "baseline": "15", "port-version": 0 }, "stronk": { "baseline": "0.14.0", "port-version": 0 }, "strtk": { "baseline": "2020-09-14", "port-version": 4 }, "structopt": { "baseline": "0.1.3", "port-version": 0 }, "stx": { "baseline": "1.0.5", "port-version": 0 }, "stxxl": { "baseline": "2018-11-15", "port-version": 9 }, "subversion": { "baseline": "2025-12-23", "port-version": 1 }, "suitesparse": { "baseline": "7.8.3", "port-version": 0 }, "suitesparse-amd": { "baseline": "3.3.3", "port-version": 0 }, "suitesparse-btf": { "baseline": "2.3.2", "port-version": 0 }, "suitesparse-camd": { "baseline": "3.3.3", "port-version": 0 }, "suitesparse-ccolamd": { "baseline": "3.3.4", "port-version": 0 }, "suitesparse-cholmod": { "baseline": "5.3.0", "port-version": 0 }, "suitesparse-colamd": { "baseline": "3.3.4", "port-version": 0 }, "suitesparse-config": { "baseline": "7.8.3", "port-version": 0 }, "suitesparse-cxsparse": { "baseline": "4.4.1", "port-version": 0 }, "suitesparse-graphblas": { "baseline": "10.1.1", "port-version": 0 }, "suitesparse-klu": { "baseline": "2.3.5", "port-version": 0 }, "suitesparse-lagraph": { "baseline": "1.1.4", "port-version": 1 }, "suitesparse-ldl": { "baseline": "3.3.2", "port-version": 0 }, "suitesparse-mongoose": { "baseline": "3.3.4", "port-version": 0 }, "suitesparse-paru": { "baseline": "1.0.0", "port-version": 0 }, "suitesparse-rbio": { "baseline": "4.3.4", "port-version": 0 }, "suitesparse-spex": { "baseline": "3.2.1", "port-version": 0 }, "suitesparse-spqr": { "baseline": "4.3.4", "port-version": 0 }, "suitesparse-umfpack": { "baseline": "6.3.5", "port-version": 0 }, "sundials": { "baseline": "7.6.0", "port-version": 0 }, "superglu": { "baseline": "1.3.3", "port-version": 0 }, "superlu": { "baseline": "7.0.0", "port-version": 0 }, "supernovas": { "baseline": "1.5.1", "port-version": 0 }, "sushant-wayal-stringhash": { "baseline": "1.1.0", "port-version": 0 }, "svt-av1": { "baseline": "3.1.2", "port-version": 0 }, "swenson-sort": { "baseline": "2021-05-22", "port-version": 0 }, "symengine": { "baseline": "0.14.0", "port-version": 1 }, "syscalls-cpp": { "baseline": "1.1.1", "port-version": 0 }, "systemc": { "baseline": "3.0.2", "port-version": 0 }, "tabulate": { "baseline": "1.5", "port-version": 0 }, "tacopie": { "baseline": "3.2.0", "port-version": 6 }, "taglib": { "baseline": "2.2", "port-version": 0 }, "talib": { "baseline": "0.6.4", "port-version": 0 }, "tanakh-cmdline": { "baseline": "2014-02-04", "port-version": 0 }, "taocpp-json": { "baseline": "1.0.0-beta.14", "port-version": 0 }, "tap-windows6": { "baseline": "9.21.2-0e30f5c", "port-version": 2 }, "task-thread-pool": { "baseline": "1.0.10", "port-version": 0 }, "taskflow": { "baseline": "4.0.0", "port-version": 1 }, "tbb": { "baseline": "2022.3.0", "port-version": 0 }, "tcb-span": { "baseline": "2022-06-15", "port-version": 0 }, "tcl": { "baseline": "core-9-0-a1", "port-version": 8 }, "tclap": { "baseline": "1.2.5", "port-version": 0 }, "tcp-pubsub": { "baseline": "1.0.3", "port-version": 0 }, "tdlib": { "baseline": "1.8.55", "port-version": 0 }, "tdscpp": { "baseline": "20250301", "port-version": 0 }, "telnetpp": { "baseline": "4.0.0", "port-version": 0 }, "tensorflow": { "baseline": "2.10.0", "port-version": 0 }, "tensorflow-cc": { "baseline": "2.10.0", "port-version": 0 }, "tensorflow-common": { "baseline": "2.10.0", "port-version": 4 }, "tensorpipe": { "baseline": "2022-03-16", "port-version": 5 }, "termcolor": { "baseline": "2.1.0", "port-version": 0 }, "tesseract": { "baseline": "5.5.2", "port-version": 0 }, "tevclient": { "baseline": "2023-12-04", "port-version": 0 }, "tfhe": { "baseline": "1.0.1", "port-version": 5 }, "tgbot-cpp": { "baseline": "1.9.1", "port-version": 1 }, "tgc": { "baseline": "2019-08-11", "port-version": 4 }, "tgui": { "baseline": "1.8.0", "port-version": 2 }, "thermadiag-seq": { "baseline": "2.0", "port-version": 0 }, "think-cell-range": { "baseline": "2023.1", "port-version": 1 }, "thomasmonkman-filewatch": { "baseline": "2023-01-16", "port-version": 2 }, "thorvg": { "baseline": "1.0.2", "port-version": 1 }, "threadpool": { "baseline": "0.2.5", "port-version": 4 }, "thrift": { "baseline": "0.22.0", "port-version": 1 }, "tidy-html5": { "baseline": "5.8.0", "port-version": 2 }, "tiff": { "baseline": "4.7.1", "port-version": 0 }, "tiledb": { "baseline": "2.30.1", "port-version": 0 }, "tinkerforge": { "baseline": "2.1.25", "port-version": 3 }, "tiny-aes-c": { "baseline": "2019-07-31", "port-version": 3 }, "tiny-bignum-c": { "baseline": "2019-07-31", "port-version": 3 }, "tiny-dnn": { "baseline": "2018-10-25", "port-version": 2 }, "tiny-optional": { "baseline": "1.5.3", "port-version": 0 }, "tiny-process-library": { "baseline": "2.0.4", "port-version": 3 }, "tiny-regex-c": { "baseline": "2019-07-31", "port-version": 3 }, "tinycbor": { "baseline": "0.6.1", "port-version": 0 }, "tinycolormap": { "baseline": "0.8.0", "port-version": 0 }, "tinycthread": { "baseline": "2019-08-06", "port-version": 3 }, "tinydir": { "baseline": "1.2.6", "port-version": 0 }, "tinyexif": { "baseline": "1.0.4", "port-version": 0 }, "tinyexpr": { "baseline": "2020-09-25", "port-version": 2 }, "tinyexr": { "baseline": "1.0.12", "port-version": 0 }, "tinyfiledialogs": { "baseline": "3.19.1", "port-version": 0 }, "tinyformat": { "baseline": "2.3.0", "port-version": 0 }, "tinyfsm": { "baseline": "0.3.3", "port-version": 0 }, "tinygltf": { "baseline": "2.9.7", "port-version": 0 }, "tinynpy": { "baseline": "1.1", "port-version": 0 }, "tinyobjloader": { "baseline": "2.0.0rc13", "port-version": 0 }, "tinyorm": { "baseline": "0.38.1", "port-version": 0 }, "tinyply": { "baseline": "3.0", "port-version": 0 }, "tinyproto": { "baseline": "1.1.1", "port-version": 0 }, "tinyspline": { "baseline": "0.6.0", "port-version": 0 }, "tinythread": { "baseline": "1.1", "port-version": 6 }, "tinytiff": { "baseline": "4.0.1.0", "port-version": 0 }, "tinytoml": { "baseline": "20240621", "port-version": 0 }, "tinyutf8": { "baseline": "4.4.3", "port-version": 1 }, "tinyxml": { "baseline": "2.6.2", "port-version": 11 }, "tinyxml2": { "baseline": "11.0.0", "port-version": 0 }, "tl-expected": { "baseline": "1.3.1", "port-version": 0 }, "tl-function-ref": { "baseline": "1.0.0", "port-version": 4 }, "tl-generator": { "baseline": "2021-09-28", "port-version": 0 }, "tl-optional": { "baseline": "1.1.0", "port-version": 0 }, "tl-ranges": { "baseline": "2022-12-07", "port-version": 1 }, "tlx": { "baseline": "0.6.1", "port-version": 0 }, "tmx": { "baseline": "1.10.1", "port-version": 0 }, "tmxlite": { "baseline": "1.4.5", "port-version": 0 }, "tobias-loew-flags": { "baseline": "2024-09-10", "port-version": 0 }, "toml11": { "baseline": "4.4.0", "port-version": 0 }, "tomlplusplus": { "baseline": "3.4.0", "port-version": 1 }, "tomsolver": { "baseline": "1.0.1", "port-version": 0 }, "torch-th": { "baseline": "2019-04-19", "port-version": 6 }, "tracy": { "baseline": "0.13.1", "port-version": 0 }, "transwarp": { "baseline": "2.2.3", "port-version": 0 }, "trantor": { "baseline": "1.5.26", "port-version": 0 }, "tre": { "baseline": "0.8.0", "port-version": 6 }, "tree-similarity": { "baseline": "0.1.1", "port-version": 1 }, "tree-sitter": { "baseline": "0.26.7", "port-version": 0 }, "tree-sitter-c": { "baseline": "0.24.1", "port-version": 0 }, "tree-sitter-cli": { "baseline": "0.26.2", "port-version": 0 }, "treehh": { "baseline": "3.18", "port-version": 0 }, "treehopper": { "baseline": "1.11.3", "port-version": 11 }, "triangle": { "baseline": "1.6", "port-version": 4 }, "trianglemeshdistance": { "baseline": "1.1.0", "port-version": 0 }, "triton": { "baseline": "2025-02-15", "port-version": 0 }, "trompeloeil": { "baseline": "49", "port-version": 0 }, "try-catcher": { "baseline": "1.0.1", "port-version": 0 }, "tsl-array-hash": { "baseline": "0.7.2", "port-version": 0 }, "tsl-hat-trie": { "baseline": "0.7.1", "port-version": 0 }, "tsl-hopscotch-map": { "baseline": "2.4.0", "port-version": 0 }, "tsl-ordered-map": { "baseline": "1.2.0", "port-version": 0 }, "tsl-sparse-map": { "baseline": "0.7.0", "port-version": 0 }, "tuplet": { "baseline": "2.1.1", "port-version": 0 }, "turbobase64": { "baseline": "2023.8", "port-version": 2 }, "tvision": { "baseline": "2024-05-22", "port-version": 1 }, "tweeny": { "baseline": "3.2.1", "port-version": 0 }, "type-lite": { "baseline": "0.2.0", "port-version": 0 }, "type-safe": { "baseline": "0.2.4", "port-version": 0 }, "typecast-ai": { "baseline": "1.0.1", "port-version": 0 }, "uchardet": { "baseline": "0.0.8", "port-version": 0 }, "ucoro": { "baseline": "1.0", "port-version": 0 }, "udt": { "baseline": "4.11", "port-version": 0 }, "umock-c": { "baseline": "2022-01-21", "port-version": 1 }, "unarr": { "baseline": "1.1.1", "port-version": 0 }, "uni-algo": { "baseline": "1.2.0", "port-version": 0 }, "unicorn": { "baseline": "2.1.4", "port-version": 0 }, "unicorn-lib": { "baseline": "2022-01-24", "port-version": 2 }, "unimail-cpp-sdk": { "baseline": "0.3.0", "port-version": 0 }, "units": { "baseline": "3.3.0", "port-version": 0 }, "unittest-cpp": { "baseline": "2.0.0", "port-version": 6 }, "unixodbc": { "baseline": "2.3.14", "port-version": 0 }, "unleash-client-cpp": { "baseline": "1.3.0", "port-version": 0 }, "unordered-dense": { "baseline": "4.8.1", "port-version": 0 }, "unqlite": { "baseline": "2025-04-29", "port-version": 0 }, "unrar": { "baseline": "7.0.7", "port-version": 0 }, "upa-url": { "baseline": "2.4.0", "port-version": 0 }, "urdfdom": { "baseline": "3.1.1", "port-version": 1 }, "urdfdom-headers": { "baseline": "1.1.1", "port-version": 0 }, "uriparser": { "baseline": "1.0.0", "port-version": 0 }, "usbmuxd": { "baseline": "2023-07-21", "port-version": 1 }, "usd": { "baseline": "26.3", "port-version": 0 }, "usearch": { "baseline": "2.24.0", "port-version": 0 }, "usockets": { "baseline": "0.8.8", "port-version": 3 }, "usrsctp": { "baseline": "0.9.5.0", "port-version": 4 }, "utf8-range": { "baseline": "6.33.4", "port-version": 0 }, "utf8h": { "baseline": "2021-11-18", "port-version": 1 }, "utf8proc": { "baseline": "2.11.3", "port-version": 0 }, "utfcpp": { "baseline": "4.0.9", "port-version": 0 }, "utfz": { "baseline": "1.3", "port-version": 0 }, "uthash": { "baseline": "2.3.0", "port-version": 0 }, "uthenticode": { "baseline": "2.0.1", "port-version": 1 }, "uvatlas": { "baseline": "2025-10-28", "port-version": 0 }, "uvw": { "baseline": "3.4.0", "port-version": 0 }, "uwebsockets": { "baseline": "20.75.0", "port-version": 0 }, "v-hacd": { "baseline": "4.1.0", "port-version": 0 }, "v8": { "baseline": "9.1.269.39", "port-version": 8 }, "valijson": { "baseline": "1.1.0", "port-version": 0 }, "value-ptr-lite": { "baseline": "0.2.1", "port-version": 1 }, "vamp-sdk": { "baseline": "2.10", "port-version": 5 }, "vanillapdf": { "baseline": "2.2.1", "port-version": 0 }, "variant-lite": { "baseline": "3.0.0", "port-version": 0 }, "vbs-enclave-tooling-codegen": { "baseline": "0.1.1-prerelease", "port-version": 0 }, "vc": { "baseline": "1.4.5", "port-version": 0 }, "vcglib": { "baseline": "2025.7", "port-version": 0 }, "vcpkg-boost": { "baseline": "2025-03-29", "port-version": 0 }, "vcpkg-cmake": { "baseline": "2024-04-23", "port-version": 0 }, "vcpkg-cmake-config": { "baseline": "2024-05-23", "port-version": 0 }, "vcpkg-cmake-get-vars": { "baseline": "2025-05-29", "port-version": 0 }, "vcpkg-get-python": { "baseline": "2025-02-09", "port-version": 0 }, "vcpkg-get-python-packages": { "baseline": "2025-04-05", "port-version": 0 }, "vcpkg-gfortran": { "baseline": "3", "port-version": 3 }, "vcpkg-gn": { "baseline": "2025-08-05", "port-version": 0 }, "vcpkg-make": { "baseline": "2026-01-01", "port-version": 0 }, "vcpkg-msbuild": { "baseline": "2023-08-08", "port-version": 0 }, "vcpkg-pkgconfig-get-modules": { "baseline": "2024-04-03", "port-version": 0 }, "vcpkg-qmake": { "baseline": "2025-05-19", "port-version": 0 }, "vcpkg-tool-bazel": { "baseline": "5.2.0", "port-version": 0 }, "vcpkg-tool-castxml": { "baseline": "0.6.5", "port-version": 0 }, "vcpkg-tool-gn": { "baseline": "2025-08-05", "port-version": 1 }, "vcpkg-tool-gyp-next": { "baseline": "2022-10-15", "port-version": 0 }, "vcpkg-tool-lessmsi": { "baseline": "1.10.0", "port-version": 1 }, "vcpkg-tool-meson": { "baseline": "1.9.0", "port-version": 4 }, "vcpkg-tool-mozbuild": { "baseline": "4.0.2", "port-version": 0 }, "vcpkg-tool-ninja": { "baseline": "2022-03-31", "port-version": 2 }, "vcpkg-tool-nodejs": { "baseline": "16.18.0", "port-version": 2 }, "vcpkg-tool-python2": { "baseline": "2.7.18", "port-version": 1 }, "vectorclass": { "baseline": "2.02.00", "port-version": 0 }, "vectorscan": { "baseline": "5.4.12", "port-version": 0 }, "veigar": { "baseline": "1.4", "port-version": 0 }, "velodyne-decoder": { "baseline": "3.0.0", "port-version": 1 }, "verdict": { "baseline": "1.4.2", "port-version": 0 }, "via-httplib": { "baseline": "1.9.0", "port-version": 0 }, "vili": { "baseline": "1.0.0+20221123", "port-version": 1 }, "vincentlaucsb-csv-parser": { "baseline": "2.5.1", "port-version": 0 }, "visit-struct": { "baseline": "1.1.0", "port-version": 0 }, "vit-vit-ctpl": { "baseline": "0.0.2", "port-version": 0 }, "vk-bootstrap": { "baseline": "1.4.341", "port-version": 0 }, "vkfft": { "baseline": "1.2.31", "port-version": 0 }, "vladimirshaleev-ipaddress": { "baseline": "1.2.1", "port-version": 0 }, "vlfeat": { "baseline": "2020-07-10", "port-version": 5 }, "vlpp": { "baseline": "1.2.10.2", "port-version": 0 }, "vmaware-vm-detection": { "baseline": "2.6.0", "port-version": 0 }, "volk": { "baseline": "1.4.341.0", "port-version": 0 }, "voro": { "baseline": "2024-09-11", "port-version": 0 }, "vowpal-wabbit": { "baseline": "9.11.1", "port-version": 0 }, "vs-yasm": { "baseline": "0.5.0", "port-version": 2 }, "vsg": { "baseline": "1.1.13", "port-version": 1 }, "vsgimgui": { "baseline": "0.7.0", "port-version": 1 }, "vsgqt": { "baseline": "0.4.0", "port-version": 1 }, "vsgxchange": { "baseline": "1.1.9", "port-version": 1 }, "vst3sdk": { "baseline": "v3.8.0_build_66", "port-version": 0 }, "vtk": { "baseline": "9.3.0-pv5.12.1", "port-version": 15 }, "vtk-compile-tools": { "baseline": "9.3.0-pv5.12.1", "port-version": 1 }, "vtk-dicom": { "baseline": "0.8.17", "port-version": 0 }, "vtk-m": { "baseline": "2.3.0", "port-version": 0 }, "vulkan": { "baseline": "2023-12-17", "port-version": 0 }, "vulkan-extensionlayer": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-headers": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-hpp": { "baseline": "deprecated", "port-version": 0 }, "vulkan-loader": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-memory-allocator": { "baseline": "3.3.0", "port-version": 0 }, "vulkan-memory-allocator-hpp": { "baseline": "3.3.0", "port-version": 0 }, "vulkan-sdk-components": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-tools": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-utility-libraries": { "baseline": "1.4.341.0", "port-version": 0 }, "vulkan-validationlayers": { "baseline": "1.4.341.0", "port-version": 0 }, "vvenc": { "baseline": "1.7.0", "port-version": 0 }, "vxl": { "baseline": "3.5.0", "port-version": 0 }, "wabt": { "baseline": "1.0.40", "port-version": 0 }, "wampcc": { "baseline": "2024-07-10", "port-version": 0 }, "wangle": { "baseline": "2026.02.23.00", "port-version": 0 }, "wasmedge": { "baseline": "0.13.5", "port-version": 2 }, "wavelib": { "baseline": "2021-11-26", "port-version": 0 }, "wavpack": { "baseline": "5.9.0", "port-version": 0 }, "wayland": { "baseline": "1.23.1", "port-version": 0 }, "wayland-protocols": { "baseline": "1.43", "port-version": 0 }, "wcslib": { "baseline": "8.5", "port-version": 1 }, "webcraft": { "baseline": "1.0.5", "port-version": 0 }, "webthing-cpp": { "baseline": "1.2.0", "port-version": 0 }, "webui": { "baseline": "2.4.2", "port-version": 0 }, "webview2": { "baseline": "1.0.3800.47", "port-version": 0 }, "wepoll": { "baseline": "1.5.8", "port-version": 3 }, "wg21-linear-algebra": { "baseline": "0.7.3", "port-version": 1 }, "wg21-sg14": { "baseline": "2019-08-13", "port-version": 2 }, "whereami": { "baseline": "2024-08-26", "port-version": 0 }, "whisper-cpp": { "baseline": "1.8.3", "port-version": 0 }, "wiiuse": { "baseline": "0.15.6", "port-version": 0 }, "wil": { "baseline": "1.0.260126.7", "port-version": 0 }, "wildcards": { "baseline": "1.4.0", "port-version": 0 }, "wildmidi": { "baseline": "0.4.6", "port-version": 1 }, "wincrypt": { "baseline": "0.0", "port-version": 4 }, "winlamb": { "baseline": "2020-10-15", "port-version": 0 }, "winpcap": { "baseline": "4.1.3", "port-version": 12 }, "winpixevent": { "baseline": "1.0.240308001", "port-version": 0 }, "winpty": { "baseline": "0.4.3", "port-version": 0 }, "winreg": { "baseline": "6.4.0", "port-version": 0 }, "winsock2": { "baseline": "0.0", "port-version": 5 }, "winsparkle": { "baseline": "0.9.1", "port-version": 0 }, "wintoast": { "baseline": "1.3.2", "port-version": 0 }, "wmipp": { "baseline": "1.3.0", "port-version": 0 }, "woff2": { "baseline": "1.0.2", "port-version": 5 }, "wolf-midi": { "baseline": "1.0.1", "port-version": 0 }, "wolfmqtt": { "baseline": "1.21.0", "port-version": 0 }, "wolfssl": { "baseline": "5.8.4", "port-version": 2 }, "wolftpm": { "baseline": "3.10.0", "port-version": 0 }, "wordnet": { "baseline": "3.0", "port-version": 3 }, "workflow": { "baseline": "1.0.0", "port-version": 0 }, "workflow-win": { "baseline": "2026-01-09", "port-version": 0 }, "wpilib": { "baseline": "2023-08-24", "port-version": 2 }, "wren": { "baseline": "0.4.0", "port-version": 0 }, "wt": { "baseline": "4.12.6", "port-version": 0 }, "wtl": { "baseline": "10.0.10320", "port-version": 5 }, "wxchartdir": { "baseline": "2.0.0", "port-version": 2 }, "wxcharts": { "baseline": "2022-07-05", "port-version": 0 }, "wxwidgets": { "baseline": "3.3.1", "port-version": 1 }, "wyhash": { "baseline": "2023-12-03", "port-version": 0 }, "x-plane": { "baseline": "4.1.1", "port-version": 1 }, "x264": { "baseline": "0.164.3108", "port-version": 2 }, "x265": { "baseline": "4.1", "port-version": 1 }, "x86-simd-sort": { "baseline": "7.0", "port-version": 0 }, "xapian": { "baseline": "1.4.22", "port-version": 3 }, "xaudio2redist": { "baseline": "1.2.13", "port-version": 0 }, "xbitmaps": { "baseline": "1.1.3", "port-version": 1 }, "xbyak": { "baseline": "7.28", "port-version": 0 }, "xcb": { "baseline": "1.14", "port-version": 4 }, "xcb-image": { "baseline": "0.4.1", "port-version": 1 }, "xcb-keysyms": { "baseline": "0.4.1", "port-version": 1 }, "xcb-proto": { "baseline": "1.14.1", "port-version": 3 }, "xcb-render-util": { "baseline": "0.3.10", "port-version": 1 }, "xcb-util": { "baseline": "0.4.1", "port-version": 2 }, "xcb-util-errors": { "baseline": "1.0.1", "port-version": 2 }, "xcb-util-m4": { "baseline": "2022-07-01", "port-version": 0 }, "xcb-util-wm": { "baseline": "0.4.2", "port-version": 2 }, "xdigest": { "baseline": "0.4.0", "port-version": 0 }, "xerces-c": { "baseline": "3.3.0", "port-version": 1 }, "xeus": { "baseline": "0.24.3", "port-version": 4 }, "xframe": { "baseline": "0.3.0", "port-version": 3 }, "xlnt": { "baseline": "1.6.1", "port-version": 1 }, "xlsxio": { "baseline": "0.2.36", "port-version": 0 }, "xmlsec": { "baseline": "1.3.9", "port-version": 1 }, "xnnpack": { "baseline": "2024-08-20", "port-version": 0 }, "xorg-macros": { "baseline": "1.20.2", "port-version": 1 }, "xorstr": { "baseline": "2021-11-20", "port-version": 0 }, "xpack": { "baseline": "1.0.6", "port-version": 0 }, "xproperty": { "baseline": "0.13.0", "port-version": 0 }, "xproto": { "baseline": "2021.5", "port-version": 0 }, "xqilla": { "baseline": "2.3.4", "port-version": 5 }, "xsimd": { "baseline": "14.0.0", "port-version": 0 }, "xtensor": { "baseline": "0.27.1", "port-version": 0 }, "xtensor-blas": { "baseline": "0.23.0", "port-version": 0 }, "xtensor-fftw": { "baseline": "0.2.6", "port-version": 0 }, "xtensor-io": { "baseline": "0.13.0", "port-version": 1 }, "xtl": { "baseline": "0.8.2", "port-version": 0 }, "xtrans": { "baseline": "1.6.0", "port-version": 1 }, "xxhash": { "baseline": "0.8.3", "port-version": 0 }, "yajl": { "baseline": "2.1.0", "port-version": 5 }, "yalantinglibs": { "baseline": "0.5.8", "port-version": 0 }, "yaml-cpp": { "baseline": "0.9.0", "port-version": 0 }, "yandex-disk-cpp-client": { "baseline": "1.0.3", "port-version": 0 }, "yara": { "baseline": "4.5.5", "port-version": 0 }, "yas": { "baseline": "7.1.0", "port-version": 0 }, "yasm": { "baseline": "1.3.0", "port-version": 7 }, "yasm-tool-helper": { "baseline": "2020-03-11", "port-version": 1 }, "yato": { "baseline": "2022-03-06", "port-version": 0 }, "yoctolib": { "baseline": "2.1.11761", "port-version": 0 }, "yoga": { "baseline": "3.2.1", "port-version": 0 }, "yomm2": { "baseline": "1.6.0", "port-version": 0 }, "yyjson": { "baseline": "0.12.0", "port-version": 0 }, "z3": { "baseline": "4.16.0", "port-version": 0 }, "z4kn4fein-semver": { "baseline": "0.4.0", "port-version": 0 }, "z85": { "baseline": "1.0", "port-version": 2 }, "zeroc-ice": { "baseline": "3.7.10", "port-version": 0 }, "zeromq": { "baseline": "4.3.5", "port-version": 3 }, "zfp": { "baseline": "1.0.1", "port-version": 0 }, "zimpl": { "baseline": "3.6.1", "port-version": 1 }, "zint": { "baseline": "2.16.0", "port-version": 0 }, "zix": { "baseline": "0.8.0", "port-version": 0 }, "zkpp": { "baseline": "0.2.3", "port-version": 5 }, "zlib": { "baseline": "1.3.1", "port-version": 0 }, "zlib-ng": { "baseline": "2.3.3", "port-version": 0 }, "zlmediakit": { "baseline": "2024-09-29", "port-version": 1 }, "zoe": { "baseline": "3.6", "port-version": 1 }, "zookeeper": { "baseline": "3.8.5", "port-version": 0 }, "zopfli": { "baseline": "1.0.3", "port-version": 4 }, "zpp-bits": { "baseline": "4.6", "port-version": 0 }, "zserge-webview": { "baseline": "0.12.0", "port-version": 0 }, "zstd": { "baseline": "1.5.7", "port-version": 0 }, "zstr": { "baseline": "1.1.0", "port-version": 0 }, "ztd-cuneicode": { "baseline": "2023-11-03", "port-version": 1 }, "ztd-encoding-tables": { "baseline": "2023-06-10", "port-version": 0 }, "ztd-idk": { "baseline": "2023-11-03", "port-version": 0 }, "ztd-platform": { "baseline": "2022-12-30", "port-version": 0 }, "ztd-static-containers": { "baseline": "2022-12-12", "port-version": 2 }, "ztd-text": { "baseline": "2023-11-03", "port-version": 1 }, "zug": { "baseline": "0.1.2", "port-version": 0 }, "zxc": { "baseline": "0.9.1", "port-version": 0 }, "zycore": { "baseline": "1.5.2", "port-version": 0 }, "zydis": { "baseline": "4.1.1", "port-version": 1 }, "zyre": { "baseline": "2025-06-25", "port-version": 0 }, "zziplib": { "baseline": "0.13.80", "port-version": 0 } } } ================================================ FILE: versions/c-/c-ares.json ================================================ { "versions": [ { "git-tree": "8ea3dc034c137265c85a72a715613fe858a49df6", "version-semver": "1.34.6", "port-version": 1 }, { "git-tree": "6ee80f35bece6f1dbf2d767833aa117d718df752", "version-semver": "1.34.6", "port-version": 0 }, { "git-tree": "d733716f373cf3ccd5da4f42ea1369064853d751", "version-semver": "1.34.5", "port-version": 1 }, { "git-tree": "e39f819020d30d42ddfa5b351ed38bc78b0be157", "version-semver": "1.34.5", "port-version": 0 }, { "git-tree": "b5bb4380f01acfa09047cf3286966951c715f666", "version-semver": "1.34.4", "port-version": 1 }, { "git-tree": "e7450d43c71f90bacb38c23f1172ac6c9cccb083", "version-semver": "1.34.4", "port-version": 0 }, { "git-tree": "c01c2a71a29047cc895afe3286f691c68f36927b", "version-semver": "1.34.3", "port-version": 0 }, { "git-tree": "78f3eb04280f992a8af0ebc68f67d965542ebffc", "version-semver": "1.34.2", "port-version": 0 }, { "git-tree": "c973b2d803485f9f32ff6404dec4d4b7bd2e5062", "version-semver": "1.34.1", "port-version": 0 }, { "git-tree": "cfd9abf077e9d9b262d520a4df78e4f1d7204502", "version-semver": "1.33.1", "port-version": 0 }, { "git-tree": "81de8007de0b4b64a0f76fd0a415a9df9e42517a", "version-semver": "1.33.0", "port-version": 0 }, { "git-tree": "6c07bb206a33f3005265a3e2db4c697a3097f8f3", "version-semver": "1.31.0", "port-version": 1 }, { "git-tree": "3fa7d03d9b026df7fa4cd6bdd8e2a5140cae4f5f", "version-semver": "1.31.0", "port-version": 0 }, { "git-tree": "9d722fc1278ff74fed3795592feffd8c08a46ffe", "version-semver": "1.28.1", "port-version": 0 }, { "git-tree": "e9cfe35b81874e6ebf35f9ab346f7e86365b5fc1", "version-semver": "1.28.0", "port-version": 0 }, { "git-tree": "7a79f37c205d30ea300e9d20c9bb504655e34336", "version-semver": "1.27.0", "port-version": 0 }, { "git-tree": "2c98426c40efeeefe1eadb00c943dc80f72e9f99", "version-semver": "1.26.0", "port-version": 0 }, { "git-tree": "79f168b5491191bf701a2683c2352c67d664e99a", "version-semver": "1.25.0", "port-version": 0 }, { "git-tree": "55836d9576708f8126f2070e2a698afe72f5f948", "version-semver": "1.19.1", "port-version": 0 }, { "git-tree": "a38a19b569f3763e2e63957687d4af9dcf19bd3e", "version-semver": "1.19.0", "port-version": 0 }, { "git-tree": "15542c1c419b7874a8d3229cdf6366361e376a57", "version-semver": "1.18.1", "port-version": 1 }, { "git-tree": "60b32d4ff262f2603153b8496e39f7b0aba39f99", "version-semver": "1.18.1", "port-version": 0 }, { "git-tree": "8c97dd38d470b96784d2aa4484d04afca77e2c60", "version-semver": "1.17.2", "port-version": 2 }, { "git-tree": "d434c999ea00b87bfbee3d79ddc6fc1b6f12d7fe", "version-semver": "1.17.2", "port-version": 1 }, { "git-tree": "4a8a471e681a33c8dde0a209900ac24a2e8e7f72", "version": "1.17.2", "port-version": 0 }, { "git-tree": "5d48aae0b9e4a0e201eab417117bab9491665193", "version": "1.17.1", "port-version": 2 }, { "git-tree": "1e8d84e28abdb8437a2665651b4359da40a3333f", "version": "1.17.1", "port-version": 1 }, { "git-tree": "a35b0a23f91ec79cecdcb83c82840f7305dbd709", "version-string": "1.17.1", "port-version": 0 }, { "git-tree": "ae086dbb7d9fb7e728b7444bdd2a709fd84c16e0", "version-string": "2019-5-2-1", "port-version": 0 }, { "git-tree": "355c7fdfd00cc9c97853fdef147e23a811d92c6c", "version-string": "2019-5-2", "port-version": 0 }, { "git-tree": "53380b1119aabe24897834f871d94f19c7ddc183", "version-string": "cares-1_15_0", "port-version": 0 }, { "git-tree": "3e3bde543c25991f1e106ade2ce7bc07c33ca81a", "version-string": "cares-1_14_0", "port-version": 0 }, { "git-tree": "2ae21dbbdedbdae911e2ebeab2968f2c314f7e82", "version-string": "1.13.0-1", "port-version": 0 }, { "git-tree": "3ab176274fcae1450a660d4b4fc6c34300ba115e", "version-string": "1.13.0", "port-version": 0 }, { "git-tree": "ee00b66606f9f4ddc2f6fcef64c180abcc14218d", "version-string": "1.12.1-dev-40eb41f-1", "port-version": 0 }, { "git-tree": "43771efaa165dcb3da7acaaa0c44dff81bca629d", "version-string": "1.12.1-dev-40eb41f", "port-version": 0 } ] } ================================================ FILE: versions/c-/c-dbg-macro.json ================================================ { "versions": [ { "git-tree": "c6819bcf6380a622775dfa3cebbcaf44ef745710", "version-date": "2020-02-29", "port-version": 0 } ] } ================================================ FILE: versions/c-/c4core.json ================================================ { "versions": [ { "git-tree": "18754aa1c637f97a7c1b95b1d635c228d6767f84", "version": "0.2.10", "port-version": 0 }, { "git-tree": "03a3e56c328d1f97392d7f9a794171006b781f51", "version": "0.2.9", "port-version": 0 }, { "git-tree": "ba03fc16b036a722c7955a48a1d96ed5d27a30a4", "version": "0.2.8", "port-version": 0 }, { "git-tree": "f21a4b12cc5df173553ef817ae11245a3463773e", "version": "0.2.7", "port-version": 0 }, { "git-tree": "4c6944f18c1c3263b0360dbab29544e752d2d7d1", "version": "0.2.6", "port-version": 0 }, { "git-tree": "65a14492c99ee904e56fc2b74182c2f7b5db3b73", "version": "0.2.5", "port-version": 0 }, { "git-tree": "01cd83a31d0cb744a2c93789a442e2dbed78851b", "version": "0.2.1", "port-version": 0 }, { "git-tree": "062ea83fd9863d62445cf759268109eb29397669", "version": "0.1.11", "port-version": 1 }, { "git-tree": "7bb0739490fde445f13be62a3630b08924fdc94f", "version": "0.1.11", "port-version": 0 }, { "git-tree": "cfb9957f519b41c482f60cac729c8256d26190f6", "version": "0.1.9", "port-version": 1 }, { "git-tree": "db4217bd25647d340de3233e8f2fd59d250e16d8", "version": "0.1.9", "port-version": 0 }, { "git-tree": "c1ef064ec4033e2fca5504b4eb44338453050f7f", "version-date": "2021-07-18", "port-version": 1 }, { "git-tree": "eae79eece3a7383d94cc686275624cb49ee6a68e", "version-date": "2021-07-18", "port-version": 0 }, { "git-tree": "9b07f8a38bbc4d13f8411921e6734753e15f8d50", "version-date": "2021-06-26", "port-version": 0 }, { "git-tree": "12b84a31469a78dd4b42dcf58a27d4600f6b2d48", "version-date": "2021-01-14", "port-version": 0 }, { "git-tree": "bd4565e8ab55bc5e098a1750fa5ff0bc4406ca9b", "version-string": "2020-04-12", "port-version": 0 } ] } ================================================ FILE: versions/c-/c89stringutils.json ================================================ { "versions": [ { "git-tree": "c50f8f8a4bfb937214a3327ea7099ef8c9ea8e4c", "version": "0.0.2", "port-version": 0 }, { "git-tree": "e4c282e10d69a020f581a2bd7b8d8ead1e29d9a2", "version": "0.0.1", "port-version": 1 }, { "git-tree": "9c5dcb3c6cf4442e2fdcb4cdea39f512db0ead54", "version": "0.0.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/c9y.json ================================================ { "versions": [ { "git-tree": "9f7e3a1f7a70d40127c90193447fe5595f86c9fb", "version-semver": "0.8.0", "port-version": 0 }, { "git-tree": "c9ab8ee7af65218c39d096c8d8d369bb413a49a5", "version-semver": "0.7.0", "port-version": 0 }, { "git-tree": "d15ee572c3fcd0881ad17193d733ceccde3267fd", "version-semver": "0.6.2", "port-version": 0 }, { "git-tree": "74238c4ddb455e7d7ba046f30436e1a07aca2f77", "version-semver": "0.6.1", "port-version": 0 }, { "git-tree": "637d6fd46798e96161b162117eaed37afef1a875", "version-semver": "0.6.0", "port-version": 0 }, { "git-tree": "0b7986fbff4e61263ed1bf9962eb6642f8f14cd8", "version-semver": "0.5.1", "port-version": 0 }, { "git-tree": "7664032e69d86b58605c20e353af75d9961d10d8", "version-semver": "0.4.0", "port-version": 0 }, { "git-tree": "5964f7fa10d83aa2d1a01ec7c64bd9b64f25f6a6", "version-semver": "0.3.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cachelib.json ================================================ { "versions": [ { "git-tree": "27b382586c2a10dee1a9ce2292b041da69566e3c", "version-string": "2026.02.23.00", "port-version": 0 }, { "git-tree": "3a881680173228cd9774eaa64e4219ef4acbec33", "version-string": "2025.05.19.00", "port-version": 0 }, { "git-tree": "08a3a91f34eb95671385f991136c029037b5cc15", "version-string": "2025.05.12.00", "port-version": 0 }, { "git-tree": "b723309866c24931301c90e9a85e88a5997688af", "version-string": "2025.05.05.00", "port-version": 0 }, { "git-tree": "342cad2e01b876a174ddc08f736351d233250d6c", "version-string": "2025.04.28.00", "port-version": 0 }, { "git-tree": "bc492e23e5169f3ce9560fbec54bd09bdbe74440", "version-string": "2025.04.21.00", "port-version": 0 }, { "git-tree": "ff4313f90d4e59d9d113d0d78a873370cd10d7bb", "version-string": "2025.04.14.00", "port-version": 0 }, { "git-tree": "b167b3c3f577cd706a45c1f2e80e976ec4998656", "version-string": "2025.04.07.00", "port-version": 0 }, { "git-tree": "5c4fcce07bd96e909e8948da811a6ae44ee0abfb", "version-string": "2025.03.31.00", "port-version": 1 }, { "git-tree": "9ee8e9dc695a700e1fd730486cc9ea4d316512e9", "version-string": "2025.03.31.00", "port-version": 0 }, { "git-tree": "5cbb937d535ab0ed567efdde1cb25570bf84bce8", "version-string": "2025.03.24.00", "port-version": 0 }, { "git-tree": "eb2251db2f38706edfa1250ccbbdd8e6405eeb07", "version-string": "2025.03.17.00", "port-version": 0 }, { "git-tree": "4c51a07152ad871b913be51d20251c0e92c7c440", "version-string": "2024.07.15.00", "port-version": 0 }, { "git-tree": "fad64d7286723130f0af63e88f1d345823e6e509", "version-string": "2024.07.08.00", "port-version": 0 }, { "git-tree": "3bb4c5e9a819c0c75b19b571c9b788ae9deeed8a", "version-string": "2024.07.01.00", "port-version": 0 }, { "git-tree": "fc6513f7e57c438020e51abbe83c14e46b2c3a09", "version-string": "2024.06.24.00", "port-version": 0 }, { "git-tree": "9d7f653356aba43fa58d8626e9158811bc838834", "version-string": "2024.06.17.00", "port-version": 0 }, { "git-tree": "de918e2a00b4afd8b793a7178ad5af0097e131c5", "version-string": "2024.06.10.00", "port-version": 0 }, { "git-tree": "54491c8aa8f069587e092e2d8e0f4e6ff5267ff6", "version-string": "2024.06.03.00", "port-version": 0 }, { "git-tree": "9f2bce7e86fdd262568966b21c107302803becf7", "version-string": "2024.05.27.00", "port-version": 0 }, { "git-tree": "01da6a9868cf626c3d8658f100f86f8df069eb65", "version-string": "2024.05.20.00", "port-version": 0 }, { "git-tree": "c50db801a7cca549cee7de167964ad91c34e8498", "version-string": "2024.05.06.00", "port-version": 0 }, { "git-tree": "eee238ddfcd4227de83489012606769fb2e17089", "version-string": "2024.05.02.00", "port-version": 0 }, { "git-tree": "3069208e74474384f29d8a14865d74b6a0e3c06b", "version-string": "2024.04.22.00", "port-version": 0 }, { "git-tree": "f06b7028d67ad69b208b340bd8a8f173dd2ee444", "version-string": "2024.04.15.00", "port-version": 0 }, { "git-tree": "1c83d8147b39a2ed0182a49deb8afa181ac6a54b", "version-string": "2023.05.08.00", "port-version": 2 }, { "git-tree": "2776e1f2137ef0df48a05a4e52d905077b60eb82", "version-string": "2023.05.08.00", "port-version": 1 }, { "git-tree": "0a22cdb1063bfa706ab5a7085ba8724785eabc53", "version-string": "2023.05.08.00", "port-version": 0 }, { "git-tree": "0311771f0b688e0ff8ffd3c6d297dfbbf43dfd33", "version-string": "2023.02.27.00", "port-version": 0 } ] } ================================================ FILE: versions/c-/cadons-ctus.json ================================================ { "versions": [ { "git-tree": "98fe25f88632f2efc7e002181a1cf114497e6742", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/caf.json ================================================ { "versions": [ { "git-tree": "51a8e4c9f38d423f3d79fd7cd9888f30f7b91e5c", "version": "1.1.0", "port-version": 0 }, { "git-tree": "86e73f510944cefac001f43a61cb7196365c713c", "version": "1.0.2", "port-version": 0 }, { "git-tree": "2cb6b24903b98d8335f18f4964ce6823550b836b", "version": "1.0.1", "port-version": 0 }, { "git-tree": "e71a51cfec683161a30d2dcca04fe5fc7f063ea7", "version": "0.19.6", "port-version": 0 }, { "git-tree": "2b744b08352077e2bf620c383d9924f4a008cbca", "version": "0.19.3", "port-version": 0 }, { "git-tree": "0561defb72007b054cede4fed6ef5950f8c2e2bc", "version": "0.19.1", "port-version": 0 }, { "git-tree": "9b7001bd4d131fa36b766ca44a6ddbb47d3304a1", "version": "0.18.6", "port-version": 1 }, { "git-tree": "be83968f892180d5ee2f1943cf9cac3782e9111e", "version": "0.18.6", "port-version": 0 }, { "git-tree": "6f4b297fc5ad4bd021fa9d72787b27e69a558237", "version": "0.18.5", "port-version": 0 }, { "git-tree": "d520e997ef25f386431e32cb6bec32ba12a78339", "version-string": "0.17.6", "port-version": 2 }, { "git-tree": "1928bc65900b86623983ce9af14ae7c166f2f277", "version-string": "0.17.6", "port-version": 1 }, { "git-tree": "3a47471cd39542757f4365b3dc95fb3701ada880", "version-string": "0.17.6", "port-version": 0 }, { "git-tree": "6310328f5a309491fbfb92a752b492a0e4db434d", "version-string": "0.17.3", "port-version": 0 }, { "git-tree": "97ffb178c663a65fcfd7464bf569bf3dba6809d1", "version-string": "0.17.2", "port-version": 0 }, { "git-tree": "5bbdf0cb436aa414d79dcf07e359f7158bffa303", "version-string": "0.16.3", "port-version": 0 }, { "git-tree": "df584a465850084b5dbe6702cfdfdb2b92ac7753", "version-string": "0.16.2-1", "port-version": 0 }, { "git-tree": "1ee31b1a613901392482be46a4cb33880af0941a", "version-string": "0.16.2", "port-version": 0 }, { "git-tree": "a3e94ee25f14290e8b25b73571820f35290f15dc", "version-string": "0.15.7", "port-version": 0 }, { "git-tree": "00709c0afd3c3fa6389a12cb9ee34cc86c664b32", "version-string": "0.15.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/caffe2.json ================================================ { "versions": [ { "git-tree": "6e991b0e1b3cfcc46ba3dca541a9c7055a015102", "version": "0.8.1", "port-version": 8 }, { "git-tree": "83f1ccbf682aad8aacd3d74e8880becad6eb8d91", "version": "0.8.1", "port-version": 7 }, { "git-tree": "ca32eb4601a1c35daa69e526f0af30efeb599c8c", "version": "0.8.1", "port-version": 6 }, { "git-tree": "e4ebcedb57e572959c4f8e30c2885cda2367e0a7", "version-string": "0.8.1", "port-version": 5 }, { "git-tree": "e50097be149d80e1397e95280aecd5160961d286", "version-string": "0.8.1", "port-version": 4 }, { "git-tree": "ffdaf1c10102d0ed5eb1c558420ade4ec6adb309", "version-string": "0.8.1-3", "port-version": 0 }, { "git-tree": "dcabbd8cab9c09c7ec5b79a05e1947bd88a69de0", "version-string": "0.8.1-2", "port-version": 0 }, { "git-tree": "30fc09ba074c965bd000435be9664557c1d98514", "version-string": "0.8.1-1", "port-version": 0 }, { "git-tree": "8aed8b8f420422cedbb5a1815b32def7b9770868", "version-string": "0.8.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cairo.json ================================================ { "versions": [ { "git-tree": "7d69b7a716a929457771c9045ba862f26cf5768c", "version": "1.18.4", "port-version": 1 }, { "git-tree": "46db143e87befd1eea4d5225e886d2378d5d259f", "version": "1.18.4", "port-version": 0 }, { "git-tree": "89921b0ded9de4acfb0778bf2ec0e4f6adb37317", "version": "1.18.2", "port-version": 2 }, { "git-tree": "b332aecd569cb46a2677231dd3b326c139453401", "version": "1.18.2", "port-version": 1 }, { "git-tree": "84c6e863f1f936bd0db07b3302e568ac1c98531c", "version": "1.18.2", "port-version": 0 }, { "git-tree": "0fda02793cfc3911468cd200b0a889c65035db1d", "version": "1.18.0", "port-version": 1 }, { "git-tree": "3b9181491cc6b0a115afa8dd5af2fca420a5cddd", "version": "1.18.0", "port-version": 0 }, { "git-tree": "127eefeeba4725293adb6ea574b7bad98c845298", "version": "1.17.8", "port-version": 4 }, { "git-tree": "e8fda1b05b3f6a99f08c23f8ad94ed43d4a69875", "version": "1.17.8", "port-version": 3 }, { "git-tree": "e94aef48f94b5cdac2387269b5f2ad421a684873", "version": "1.17.8", "port-version": 2 }, { "git-tree": "b28395e25157c57307d10e37eba8c9018dcd8f75", "version": "1.17.8", "port-version": 1 }, { "git-tree": "062c7e11a8b910e76a2f16e57e3ffe0d59bd905e", "version": "1.17.8", "port-version": 0 }, { "git-tree": "d4e8c89704a7354fbae6bd789d5744d37021aacc", "version": "1.17.6", "port-version": 5 }, { "git-tree": "eac156360b2a89a655152bafd92c3e285adc473e", "version": "1.17.6", "port-version": 4 }, { "git-tree": "c339d543f41d311c7d4282ca1efa4e400eb30b73", "version": "1.17.6", "port-version": 3 }, { "git-tree": "63bc79e8f9980f2b780bb296d96bfc3221dba137", "version": "1.17.6", "port-version": 2 }, { "git-tree": "f43fb974219928aea5f95efc7c61f27b49051a28", "version": "1.17.6", "port-version": 1 }, { "git-tree": "9f67515a6cf8aaeb6c9dcd2263ce913bd596249d", "version": "1.17.6", "port-version": 0 }, { "git-tree": "c024050e140b5174c6ef3094bad3cb2d6a710f82", "version": "1.17.4", "port-version": 4 }, { "git-tree": "d8bed1ec84c641aad98858b6fb1151b09273227e", "version": "1.17.4", "port-version": 3 }, { "git-tree": "96aa6adbfefae2d4f2e3d79e012876b1d4a40b93", "version": "1.17.4", "port-version": 2 }, { "git-tree": "a2fa5a9972a7b796f56fdda01f644b5c40d93580", "version": "1.17.4", "port-version": 1 }, { "git-tree": "c80532bb0f4abd6b3bba09e48ddab1724bdc0ec1", "version": "1.17.4", "port-version": 0 }, { "git-tree": "ea721528bdf86a3a1fd35b78550e3c9463a8e715", "version": "1.16.0", "port-version": 12 }, { "git-tree": "f5e2e3535796b2fb785709ae2273c1243b4aa2fc", "version": "1.16.0", "port-version": 11 }, { "git-tree": "aa8df97c4b06bf590dc04ad931a08f0bf1e47471", "version-string": "1.16.0", "port-version": 10 }, { "git-tree": "eb09773c303a9608687dca6a0480ff551c0c2bf9", "version-string": "1.16.0", "port-version": 9 }, { "git-tree": "b3a1d73d5c8c18a8c6512385b59d40719f963c8c", "version-string": "1.16.0", "port-version": 8 }, { "git-tree": "a652fb78c5f52b49620a1419f4901a59a4bbc04a", "version-string": "1.16.0", "port-version": 7 }, { "git-tree": "c5b328e93ced121254a822e15448ae839a60078f", "version-string": "1.16.0-6", "port-version": 0 }, { "git-tree": "ca028fe074a13ed1d58594900d43bddfd9115422", "version-string": "1.16.0-5", "port-version": 0 }, { "git-tree": "3eaf304157d3ab9b295039bbe0c358fc26bb4889", "version-string": "1.16.0-4", "port-version": 0 }, { "git-tree": "5958c725d44a3e639e7ebde832a4acbcd4829af7", "version-string": "1.16.0-3", "port-version": 0 }, { "git-tree": "52c8160d526b5e3d938396872f0b14ad4916581a", "version-string": "1.16.0-2", "port-version": 0 }, { "git-tree": "6ff3d42bca307ba305e37ba08baccb43f599c8ec", "version-string": "1.16.0-1", "port-version": 0 }, { "git-tree": "b8dcde063802ba0d8e22ef7bda62cdae97c00c9d", "version-string": "1.16.0", "port-version": 0 }, { "git-tree": "6b85d387914d7755adc34dfbfe446d024c49a1b4", "version-string": "1.15.8-5", "port-version": 0 }, { "git-tree": "56f5c938bec84bd5fe03f580a07354a0f64a15b5", "version-string": "1.15.8-4", "port-version": 0 }, { "git-tree": "8708ab4c1978ac895cab43d2ca7ab942e29770fb", "version-string": "1.15.8-3", "port-version": 0 }, { "git-tree": "e1d53a1d015778171e9b9adba938bb1a6343a39c", "version-string": "1.15.8-2", "port-version": 0 }, { "git-tree": "1a100e45de4853019289d2be58c1c89beb8cae24", "version-string": "1.15.8-1", "port-version": 0 }, { "git-tree": "7d02d3a980f099f536abd19ca2f82a048400e540", "version-string": "1.15.8", "port-version": 0 }, { "git-tree": "75d0521512675f85e88ff13900e2f514850cff58", "version-string": "1.15.6", "port-version": 0 }, { "git-tree": "a71fbe017034ff998867feaeb697082a04c3aab5", "version-string": "1.15.4-3", "port-version": 0 }, { "git-tree": "75b97288df14ae263a1cfe05e6f05fc80cf67000", "version-string": "1.15.4-2", "port-version": 0 }, { "git-tree": "0244d36ad3428139fbacbabc36629f960c5862b8", "version-string": "1.15.4-1", "port-version": 0 }, { "git-tree": "e04a8fe2b70ca6e266c77631a2eee5c1300fddd7", "version-string": "1.15.4", "port-version": 0 }, { "git-tree": "fd9154d1e67fa788702b3cc2e55515cb6210c11a", "version-string": "1.14.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/cairomm.json ================================================ { "versions": [ { "git-tree": "bd3f26958cdfb6aec8b42ca67dad1d7567461dcf", "version": "1.18.0", "port-version": 0 }, { "git-tree": "f6f54756edc3cdf81b1fbac86522410f64bda856", "version": "1.17.1", "port-version": 1 }, { "git-tree": "e8edc870e28366ad88709f1232d002ffd9810cf3", "version": "1.17.1", "port-version": 0 }, { "git-tree": "c5804d5f576169610ec03d2803f9d8a03678cc95", "version": "1.16.2", "port-version": 4 }, { "git-tree": "7a7e6f9ecf73d0a2ec27e9a70a099746e643ec84", "version": "1.16.2", "port-version": 3 }, { "git-tree": "9e3f77f8b4d02d2a5bd898b0ca96031da57aae12", "version": "1.16.2", "port-version": 2 }, { "git-tree": "09ffff4bc160350ef161188b000610cbe9cfff8e", "version": "1.16.2", "port-version": 1 }, { "git-tree": "07289b1edb75fecd2b706118b1a0919c5903c1c3", "version": "1.16.2", "port-version": 0 }, { "git-tree": "5ae92557bdcf5f6dc8364cb179fd8fe57b0698ce", "version": "1.16.1", "port-version": 0 }, { "git-tree": "6cf38af57700ebdb1933bd3e4f4c0580de8aaab9", "version": "1.16.0", "port-version": 1 }, { "git-tree": "0e16b66d1552c1cbda240f8a11d65895c607e6b5", "version": "1.16.0", "port-version": 0 }, { "git-tree": "208a6f99a6fbc0239696b79653d769568ca603cc", "version-string": "1.15.3", "port-version": 6 }, { "git-tree": "0dce5120b52866ee6e0b485081389f9ea9679fb4", "version-string": "1.15.3", "port-version": 5 }, { "git-tree": "e7260551be637784abc3768868d6286f2052ae38", "version-string": "1.15.3-4", "port-version": 0 }, { "git-tree": "59e5fb3c1f885b6b21d04ce41f157c02bbe8b9d1", "version-string": "1.15.3-3", "port-version": 0 }, { "git-tree": "58b22b6d2c30d63d1ff744f5bb902435a4608a8f", "version-string": "1.15.3-2", "port-version": 0 }, { "git-tree": "903a0d94dc27e12a6d066b3e3f121dbf6fb5affa", "version-string": "1.15.3-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/calceph.json ================================================ { "versions": [ { "git-tree": "166a8e8f4d71602d30e224f5f83b8deaea1a2090", "version": "4.0.5", "port-version": 1 }, { "git-tree": "ae8ec7f572521c80b20f83cc1af30788205fa320", "version": "4.0.5", "port-version": 0 }, { "git-tree": "ddfc19ed3c74649c11532a77211a3fe38c199365", "version": "4.0.4", "port-version": 1 }, { "git-tree": "08d3667453a109eb1030f613e946d0fbdf64e1ad", "version": "4.0.4", "port-version": 0 }, { "git-tree": "49026767cbf6ab4fa4dde6df55f440d3a244c5d3", "version": "4.0.3", "port-version": 0 }, { "git-tree": "39ac246456a1696374698c2544fd23da60fbe918", "version": "4.0.1", "port-version": 0 }, { "git-tree": "0e91c8461694ab6c706f739be3be47f367464157", "version": "4.0.0", "port-version": 0 }, { "git-tree": "068e74605df6b8a253d6f659db2e2114d1764588", "version": "3.5.5", "port-version": 0 }, { "git-tree": "3602c8d1030d2f0260d5de2104b5111fd4f7f253", "version": "3.5.4", "port-version": 0 }, { "git-tree": "e1167b91f758af9aa0077bdee620995c65898554", "version": "3.5.2", "port-version": 0 }, { "git-tree": "66e61e880b832f24343545815d796cc529c4f503", "version": "3.5.1", "port-version": 1 }, { "git-tree": "98f9a949826498f0929b5745fff07fb9747b82fa", "version": "3.5.1", "port-version": 0 }, { "git-tree": "f9919835108077ed1a077ef023b60903f52df42c", "version": "3.5.0", "port-version": 2 }, { "git-tree": "48bd1ecc8648d44291fbaf0a11f5f12aa017c077", "version": "3.5.0", "port-version": 1 }, { "git-tree": "d2665db7558ef66aa086f95b155e61b15bd56848", "version": "3.5.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/camport3.json ================================================ { "versions": [ { "git-tree": "f043e6106e14d5944184d28ea29ebd0b46c50029", "version": "1.6.75", "port-version": 0 }, { "git-tree": "f8fd1afea0703ffb17838422fd2aef895ab8c828", "version": "1.6.2", "port-version": 0 }, { "git-tree": "ed31882bd5119a95ef69ba8323e0f4575ee5dc6d", "version-string": "1.5.3", "port-version": 2 }, { "git-tree": "da6cb57213a9c5e3e4877a1c2278524f6228a80b", "version-string": "1.5.3", "port-version": 1 }, { "git-tree": "05713425b9fc380bcb6f2f016032e6fb1c8fc0b2", "version-string": "1.5.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/canvas-ity.json ================================================ { "versions": [ { "git-tree": "ba934f25e09c4ade51de82b8b8213ec2068aa826", "version": "1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/capnproto.json ================================================ { "versions": [ { "git-tree": "325f815976b1e585cb60be7f6bd85cba7a44e955", "version": "1.4.0", "port-version": 0 }, { "git-tree": "e63b6814f8ef180e46b66f0a1f8ae805872874a0", "version": "1.3.0", "port-version": 0 }, { "git-tree": "edbfe1c39916c0b971d4d62d95c53c671583c879", "version": "1.2.0", "port-version": 0 }, { "git-tree": "e2f4fa657d9e0b8e00e732c697b8550cadb8bdbb", "version": "1.1.0", "port-version": 0 }, { "git-tree": "34d3e2f7eaa026d154cec3576cffefe6aec1cda1", "version": "1.0.2", "port-version": 2 }, { "git-tree": "38a65f51f26928a3ea7bed90ada2ec4081091a6b", "version": "1.0.2", "port-version": 1 }, { "git-tree": "52f73df5478fbcdb34b8dd5dd8d488672031cc32", "version": "1.0.2", "port-version": 0 }, { "git-tree": "4a615543c6406b84fc52a931335d7fdb70037627", "version": "1.0.1", "port-version": 0 }, { "git-tree": "928a9a658c34e9a664531e0a6762a60408737e54", "version": "0.10.3", "port-version": 0 }, { "git-tree": "39b6753b801bbb3981ed2622a92c9b1642e11fde", "version": "0.10.2", "port-version": 0 }, { "git-tree": "17b054432f141c746019130d2b689d4fd4919938", "version": "0.9.1", "port-version": 2 }, { "git-tree": "129b6b745372d94f313df0989ad6a8980d7eaef7", "version": "0.9.1", "port-version": 1 }, { "git-tree": "408771ff99776c9b25fd1121da589b720b7081c0", "version": "0.9.1", "port-version": 0 }, { "git-tree": "3e33e9cf7ec5a8166ea3e33801645d731d119e25", "version-string": "0.8.0", "port-version": 2 }, { "git-tree": "5fcc22513f8ac440cd0d056c76ae35bcef96c787", "version-string": "0.8.0", "port-version": 1 }, { "git-tree": "2b4a5558ce6b709f99c149a7335c28eaa4823569", "version-string": "0.8.0", "port-version": 0 }, { "git-tree": "397e759d6cf8199c95a649ea33a92d1b8193a576", "version-string": "0.7.0-3", "port-version": 0 }, { "git-tree": "6078d2a885b5b7702da176e958e711bd009042ad", "version-string": "0.7.0-2", "port-version": 0 }, { "git-tree": "7f7d19e6920cdbdb82a41285cfa9cf427eec1c3d", "version-string": "0.7.0-1", "port-version": 0 }, { "git-tree": "955b67bb45349a0c2c2a34697d95e7585742514c", "version-string": "0.7.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/capstone.json ================================================ { "versions": [ { "git-tree": "1aa8b5740e1d6d47b0d2fb9f2af708593939f99f", "version": "5.0.7", "port-version": 0 }, { "git-tree": "bcd9fc1db64dc8b7dbf4a63968d25c320c398029", "version": "5.0.6", "port-version": 0 }, { "git-tree": "ff71755fc4ef3ba463ff94cd92781858462f7a15", "version": "5.0.3", "port-version": 1 }, { "git-tree": "cb3992e2d7e4d93f74f8e3eaa659a0fea78cce75", "version": "5.0.3", "port-version": 0 }, { "git-tree": "d2879a914b5c261ad9fb1b48b921a4d53a486eb0", "version": "5.0.1", "port-version": 1 }, { "git-tree": "4c89ad8669fdc6aa946d13cfe053a64fa50f75a7", "version": "5.0.1", "port-version": 0 }, { "git-tree": "3c9184889dd21d609401fe4ea34fa5320a9443a2", "version": "5.0.0-rc2", "port-version": 2 }, { "git-tree": "f31ba3baba34c74dea464d864cca666c8793b1e7", "version": "5.0.0-rc2", "port-version": 1 }, { "git-tree": "f7b26d8f672f30156cad79a647525b8dd8c9781b", "version": "5.0.0-rc2", "port-version": 0 }, { "git-tree": "5250715402bf0c970792dafe6947aa810adde0f1", "version": "4.0.2", "port-version": 3 }, { "git-tree": "465e527988f09c855e156cff45b7ee6dfbe1d303", "version": "4.0.2", "port-version": 2 }, { "git-tree": "7c919b056af0b624766a625f1de7847f97262d92", "version-string": "4.0.2", "port-version": 1 }, { "git-tree": "51b67182eea9570f020b2bff552935491f88c5cc", "version-string": "4.0.2", "port-version": 0 }, { "git-tree": "eb04e9d160890416135df17b8ac65b011ef38103", "version-string": "4.0.1-120373dc", "port-version": 0 }, { "git-tree": "916b15afacc560a726f4dcfa5c8bcddb2b1116f2", "version-string": "3.0.5-rc3", "port-version": 0 }, { "git-tree": "a14312793849bbe5d40a122fc52c44be0790e381", "version-string": "", "port-version": 0 } ] } ================================================ FILE: versions/c-/cargs.json ================================================ { "versions": [ { "git-tree": "565c2ef367c9972223c54bec0153eb3a288780ef", "version": "1.2.0", "port-version": 0 }, { "git-tree": "88fea433a3287ccd49ae6a5bb168071418fa4469", "version": "1.1.0", "port-version": 0 }, { "git-tree": "afa520193b882259b02bd2f8646982d340374d2d", "version": "1.0.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/cartographer.json ================================================ { "versions": [ { "git-tree": "917d4ac19da5414db7ad690f8f315821b94a40ba", "version": "1.0.0", "port-version": 6 }, { "git-tree": "b0e352bf9c678b6425f767a21470b2c8ef3f79b9", "version": "1.0.0", "port-version": 5 }, { "git-tree": "ec66f22ef7f9e652008269b8419a34350d97accf", "version": "1.0.0", "port-version": 4 }, { "git-tree": "1bd9454fd218a1755ab651e97769f69b2d2fc315", "version-string": "1.0.0-3", "port-version": 0 }, { "git-tree": "045ef786b9d3a2d5d9f1096f118cf6e39ea08c79", "version-string": "1.0.0-2", "port-version": 0 }, { "git-tree": "0af6f1b35db62fd52bd0695a03ec69679ce2fb80", "version-string": "1.0.0-1", "port-version": 0 }, { "git-tree": "473af71f3b2014e34d957eede82178f3ae6272a5", "version-string": "1.0.0", "port-version": 0 }, { "git-tree": "4706465acae9a157a820b098c357712a8d098545", "version-string": "0.3.0-6", "port-version": 0 }, { "git-tree": "cb846a419ab42b35851532b4f2d2b637ea9f0d86", "version-string": "0.3.0-5", "port-version": 0 }, { "git-tree": "c3e824a15cc586e34d76eca9f6f84f24c924a67c", "version-string": "0.3.0-4", "port-version": 0 }, { "git-tree": "8ae50f8349189772fd4acf8c68125634aaffbe6e", "version-string": "0.3.0-3", "port-version": 0 } ] } ================================================ FILE: versions/c-/casadi.json ================================================ { "versions": [ { "git-tree": "ec672097caf5dfd8a61b67b88000ffe18b78d31a", "version": "3.7.2", "port-version": 0 }, { "git-tree": "41671a156bc091a5740da4900f0a4fcf7679c53b", "version": "3.6.7", "port-version": 1 }, { "git-tree": "1adbc7383777c7c21ca1dea604f4a4c75780fe6e", "version": "3.6.7", "port-version": 0 } ] } ================================================ FILE: versions/c-/casclib.json ================================================ { "versions": [ { "git-tree": "a60d5ee653ba75af85f76d88f2540c61bfc7741e", "version-date": "2024-06-05", "port-version": 0 }, { "git-tree": "3bb7640c26eb7b742883277db2325a69c6c790aa", "version-date": "2021-11-16", "port-version": 1 }, { "git-tree": "20768d4f95c896b3b416aab76cc04c8dfa6e1244", "version-date": "2021-11-16", "port-version": 0 }, { "git-tree": "b0e61662e214e54008bdc8842b865a3f3fccb821", "version-string": "1.50b", "port-version": 2 }, { "git-tree": "dcebf3fda8b82d3576cfd89cb27f55da9149d9e9", "version-string": "1.50b-1", "port-version": 0 }, { "git-tree": "65be0df88dd2dbba0d98e6ceff98358914b1426a", "version-string": "1.50-1", "port-version": 0 }, { "git-tree": "d3ac14e638afc3485a503eaa902c8cac14850c6a", "version-string": "1.50", "port-version": 0 } ] } ================================================ FILE: versions/c-/catch-classic.json ================================================ { "versions": [ { "git-tree": "69c262237024b0aa361d06923511a4d571355b50", "version": "1.12.2", "port-version": 2 }, { "git-tree": "a85b3103dd134a7fadafe0c7c5d67042ab4c2b18", "version-string": "1.12.2", "port-version": 1 }, { "git-tree": "21f00f9e0bf6d9338ca58abc3e761db376883285", "version-string": "1.12.2", "port-version": 0 }, { "git-tree": "fa68344904e679040abafe8bdee9f06f96ddf955", "version-string": "1.12.1", "port-version": 0 }, { "git-tree": "dc2687c95785c76a55314e74d79886c22eba4067", "version-string": "1.12.0", "port-version": 0 }, { "git-tree": "7c6cd494c2c7c00a1a7507502fcf8c2924bdb127", "version-string": "1.11.0", "port-version": 0 }, { "git-tree": "92788e8410dde4706b4b725d47852a7e8f199eb1", "version-string": "1.10.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/catch.json ================================================ { "versions": [ { "git-tree": "1f30153a939599e85b3098abf501d739f8ef88c2", "version-string": "alias", "port-version": 1 }, { "git-tree": "1847097b1369a19c41e695e809a91923d95efd4d", "version-string": "alias", "port-version": 0 }, { "git-tree": "b08f20188fcfc3e5c5d30d72f4a75c03dfca110b", "version-string": "2.0.1-1", "port-version": 0 }, { "git-tree": "3a8ff2af44bbc79323a5278cd2100b5933290f6b", "version-string": "2.0.1", "port-version": 0 }, { "git-tree": "1bc0b237d321f03d1d059c1588f42860ebd409f2", "version-string": "1.11.0", "port-version": 0 }, { "git-tree": "e3cfb2ebc46897c8cdf3b6f2abf2bc71cc07227d", "version-string": "1.10.0", "port-version": 0 }, { "git-tree": "a6db724e345b4d19f6ab625c723c4f441d2b353c", "version-string": "1.9.7", "port-version": 0 }, { "git-tree": "d1fc377c44fe261263361527cb80987a33c523f5", "version-string": "1.9.6", "port-version": 0 }, { "git-tree": "b3cdc9bb97ead24ae0c75cc63d5819ff7895ee3e", "version-string": "1.9.5-1", "port-version": 0 }, { "git-tree": "ee1709bb21ed940740a9b3ae837226fc71765103", "version-string": "1.9.5", "port-version": 0 }, { "git-tree": "b8bde75a27102c182feb7d8e3443d2b2f4e747ff", "version-string": "1.9.4", "port-version": 0 }, { "git-tree": "af5a5bf586f3b3a2173aac0660d8778f35242627", "version-string": "1.9.1", "port-version": 0 }, { "git-tree": "a0d3d912a1dbe700e83951f87118186e5a0cd3fd", "version-string": "1.8.2", "port-version": 0 }, { "git-tree": "4bd1360b247abd0d67dc3af50e73005dba9f351c", "version-string": "1.8.1", "port-version": 0 }, { "git-tree": "81335c5a51db8928df33dc42ffc8c90e7fa3af63", "version-string": "1.5.7", "port-version": 0 } ] } ================================================ FILE: versions/c-/catch2.json ================================================ { "versions": [ { "git-tree": "ed80adef87aa5c210cf3b5c3edd870f68b2db2e2", "version-semver": "3.13.0", "port-version": 1 }, { "git-tree": "c0c3c2a91bbee3bcbffec2e1957744b75b8d0ded", "version-semver": "3.13.0", "port-version": 0 }, { "git-tree": "c504dbe0d8aca84b242fe141c6a3b54fc35b4538", "version-semver": "3.12.0", "port-version": 0 }, { "git-tree": "5f7385233a249ddbcc48f261b4e4c20f42297360", "version-semver": "3.11.0", "port-version": 0 }, { "git-tree": "c36d69b5c0effa33673a22897857f42d264eb1b5", "version-semver": "3.10.0", "port-version": 0 }, { "git-tree": "bdfb7d2924fcff406f16a0477e4a4ac4c9ed1bb0", "version-semver": "3.9.1", "port-version": 0 }, { "git-tree": "590677ebecf3adb5538800ecf058a35390896fe0", "version-semver": "3.9.0", "port-version": 0 }, { "git-tree": "663b04662ae30cc321b1b1a0c781c9f4a3d29b93", "version-semver": "3.8.1", "port-version": 0 }, { "git-tree": "0da5966831e52358f57a6915d729c6d2b7f3db4b", "version-semver": "3.8.0", "port-version": 0 }, { "git-tree": "6f03dab61d096d616b0c745d442d406e525f4b7f", "version-semver": "3.7.1", "port-version": 0 }, { "git-tree": "9070b97a2de0f4d50fbfa7a97602d667afacb50d", "version-semver": "3.7.0", "port-version": 0 }, { "git-tree": "f61acaeefdf6127fa878f7192fc109fa8e1a0135", "version-semver": "3.6.0", "port-version": 0 }, { "git-tree": "79536429a52319190e793f8ec7c19c6142b26bd4", "version-semver": "3.5.4", "port-version": 0 }, { "git-tree": "cc06710d58447379132032c7b5da0ebf6a3fef9f", "version-semver": "3.5.3", "port-version": 0 }, { "git-tree": "9f5159aa8db5056e1f5531bc4292c27499e23f9a", "version-semver": "3.5.2", "port-version": 0 }, { "git-tree": "9b749693bba3f346f03e2ccd047ee26b22c123c3", "version-semver": "3.5.1", "port-version": 0 }, { "git-tree": "6bac6509e806556e539c116680228c6df5802ed4", "version-semver": "3.5.0", "port-version": 0 }, { "git-tree": "5796c1c0513a7b49f135e8acdd1976f53e9944ea", "version-semver": "3.4.0", "port-version": 0 }, { "git-tree": "8dc2e0cb32d0c1e0a12684a3628c926157f36ddd", "version-semver": "3.3.2", "port-version": 1 }, { "git-tree": "e776d4cb313c846f6de82c05fa2ab9b7748edb6b", "version-semver": "3.3.2", "port-version": 0 }, { "git-tree": "7d7bef305b7affebc6f3ccacd12874ebd4fbfc50", "version-semver": "3.3.1", "port-version": 0 }, { "git-tree": "cfb2a80de586b148c9dd6956bf6aca7501d411db", "version-semver": "3.3.0", "port-version": 0 }, { "git-tree": "43e022b806928c512e298052ad4fae210998a846", "version-semver": "3.2.1", "port-version": 0 }, { "git-tree": "9dd2bc1c39e6f6262dc7741b24514e76d6f1d8da", "version-semver": "3.2.0", "port-version": 0 }, { "git-tree": "20c94cd5ff35ec979a2ad463322dc8a2a697acc7", "version-semver": "3.1.1", "port-version": 2 }, { "git-tree": "d83c493274ecc1798d1d4ac05bf83eedec161695", "version-semver": "3.1.1", "port-version": 1 }, { "git-tree": "44a94453e68878bf44df00e51bae5115dff3baa8", "version-semver": "3.1.1", "port-version": 0 }, { "git-tree": "286e5ac6cd8702b9b6cf6f486c35cc2516c7950b", "version-semver": "3.1.0", "port-version": 1 }, { "git-tree": "414a5ef901a6f05c85b4f19ff2d0d216933a65b1", "version-semver": "3.1.0", "port-version": 0 }, { "git-tree": "1c528318ebe10c945563bf9942c8b2141253bf87", "version-semver": "3.0.1", "port-version": 2 }, { "git-tree": "8de83e7d7f07a831293d15e747aa7a980a220ff7", "version-semver": "3.0.1", "port-version": 1 }, { "git-tree": "c0c872e7175f3ca20a15f5c8cc0d0c23e59e1ad1", "version-semver": "3.0.1", "port-version": 0 }, { "git-tree": "ed81e9ef2d6ef2020605ec6ba1092a2ab631305a", "version-semver": "2.13.9", "port-version": 1 }, { "git-tree": "6cc0b5f2cef9c98ad5c3152ebfbe85f1b9baceed", "version-semver": "2.13.9", "port-version": 0 }, { "git-tree": "c243585b5ba220e6aebcdb59dc59867afff7af6e", "version-semver": "2.13.8", "port-version": 1 }, { "git-tree": "b58473cdc953ae1d09f30f0ba1e641c6cc34719f", "version-semver": "2.13.8", "port-version": 0 }, { "git-tree": "0660c4bbbe5bb0f8a605f956ae7d16f055e0e8c3", "version-semver": "2.13.7", "port-version": 2 }, { "git-tree": "4df380019e5c3a0e450798db43d9ce70906b7aad", "version-semver": "2.13.7", "port-version": 1 }, { "git-tree": "900833643e0eb468d957b4c46f46ba6647e283ff", "version-semver": "2.13.7", "port-version": 0 }, { "git-tree": "ef9387df5727b456d41890580ac51c03cae9bb25", "version-semver": "2.13.6", "port-version": 2 }, { "git-tree": "bd73b1d5e8994fb0327c333cd77400577f05e31c", "version-semver": "2.13.6", "port-version": 1 }, { "git-tree": "17d502dbaa50c2e6d255331addb14259372fb6c5", "version-semver": "2.13.6", "port-version": 0 }, { "git-tree": "47ba2c2a9ed12b317550ed102374cd13554fe9ac", "version-string": "2.13.1", "port-version": 1 }, { "git-tree": "519a6fcb84ac66fdffb75f3d5555496228e43e5f", "version-string": "2.13.1", "port-version": 0 }, { "git-tree": "3b15bdf4ada3be3818bcac4c14ed9a437393495d", "version-string": "2.12.1", "port-version": 0 }, { "git-tree": "c23bc9d8f947cc5d30521dea008e52994c07b569", "version-string": "2.11.3", "port-version": 0 }, { "git-tree": "af82155f661ed603bc2222173920be964063266a", "version-string": "2.11.1", "port-version": 0 }, { "git-tree": "926e53bcc845e228d8ac5e277bea9d68ae33faa8", "version-string": "2.11.0", "port-version": 0 }, { "git-tree": "429625df870d438e2c767734a76f4875fb5836c5", "version-string": "2.10.1-1", "port-version": 0 }, { "git-tree": "f9cd513b2dc93059c3ab06e8c1c476ce067e07eb", "version-string": "2.9.2", "port-version": 0 }, { "git-tree": "8a7db60e1027dc2271aaf2bd2338b438a3228da3", "version-string": "2.9.1-1", "port-version": 0 }, { "git-tree": "6d733ce4e562f2f9b9bb41a864496be37d842609", "version-string": "2.7.2-2", "port-version": 0 }, { "git-tree": "9470a421046617fdf9ea5f9b9bb6ef25d3dfdfcf", "version-string": "2.7.2", "port-version": 0 }, { "git-tree": "e1d981f5b5bb4879df9b2b9fd92c5170444a6616", "version-string": "2.7.1", "port-version": 0 }, { "git-tree": "13131c8f454c2d9f21595e72a203b8352a6cd4cb", "version-string": "2.7.0", "port-version": 0 }, { "git-tree": "d401ef70ec4acae9a030e0b0fee19d68ef0fe2c8", "version-string": "2.6.0", "port-version": 0 }, { "git-tree": "06f1dab44255e1d16a1631da9ac8144158f8a5bd", "version-string": "2.5.0", "port-version": 0 }, { "git-tree": "a8a00251638f77f165384d7a365e153d8df82934", "version-string": "2.4.2", "port-version": 0 }, { "git-tree": "7a63deae50cd91bffd011bef9b93099dceadc32f", "version-string": "2.4.1", "port-version": 0 }, { "git-tree": "f71dd3372ed04416c19ae68cf1cb76c1a103edcb", "version-string": "2.4.0", "port-version": 0 }, { "git-tree": "e674f9a0c8b098b2152fed9f7647a58051ed7a84", "version-string": "2.3.0", "port-version": 0 }, { "git-tree": "bcdba32718c44cab06591beb131873375aef80e2", "version-string": "2.2.3", "port-version": 0 }, { "git-tree": "e4060ca446e5115b4fcf829a0e7d17a5270bbe61", "version-string": "2.2.2", "port-version": 0 }, { "git-tree": "be0f043cab6bdffccfa4ccffe9da70378fdce0e3", "version-string": "2.2.1-1", "port-version": 0 }, { "git-tree": "b4ac8a6069b1e77f307afca3351fe2af0105b521", "version-string": "2.2.1", "port-version": 0 }, { "git-tree": "54829ec460805d60e814db0640b195756bd41e5a", "version-string": "2.2.0", "port-version": 0 }, { "git-tree": "f34017e4212b92b3648d0708729be8e60a12d75d", "version-string": "2.1.2", "port-version": 0 }, { "git-tree": "4a403184b56702ad589e5eb018735628265d5cc5", "version-string": "2.1.1", "port-version": 0 }, { "git-tree": "b2a9bdc0cd72b9b42bbed2167ee30b236e7ed77a", "version-string": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cblas.json ================================================ { "versions": [ { "git-tree": "afad678ca66533d2fca102e6ead5fbdb41601f65", "version-date": "2025-10-29", "port-version": 0 }, { "git-tree": "6a032c6c0adaaff9972edc4d05b0a8e3d189e810", "version-date": "2024-03-19", "port-version": 0 } ] } ================================================ FILE: versions/c-/cccapstone.json ================================================ { "versions": [ { "git-tree": "d8515ae9e25008fe4d8c04287aba45679d31eac5", "version-string": "9b4128ee1153e78288a1b5433e2c06a0d47a4c4e", "port-version": 2 }, { "git-tree": "20a6a52cad8fb2db9aa7b023c09ce53eb2ed5343", "version-string": "9b4128ee1153e78288a1b5433e2c06a0d47a4c4e-1", "port-version": 0 }, { "git-tree": "50425b6f2870af272be9014fa545368b8040a155", "version-string": "9b4128ee1153e78288a1b5433e2c06a0d47a4c4e", "port-version": 0 } ] } ================================================ FILE: versions/c-/ccd.json ================================================ { "versions": [ { "git-tree": "a6cd46396151b69680100934c824c290c7057379", "version": "2.1", "port-version": 4 }, { "git-tree": "8e6fc55567d05873ba6f78c3c33363a0fd9a1549", "version-string": "2.1-4", "port-version": 3 }, { "git-tree": "9a10df3929e80702a9e8c110612b1ecd8c32bee9", "version-string": "2.1-4", "port-version": 2 }, { "git-tree": "a720cc123c190c6b68e57e356c4937685eeb2faa", "version-string": "2.1-4", "port-version": 1 }, { "git-tree": "c5315a631ffcea9c2a158578e73c53d8455808de", "version-string": "2.1-4", "port-version": 0 }, { "git-tree": "f50fc4c977c7ee43dbddf3d5b8c08694843f41a7", "version-string": "2.1-3", "port-version": 0 }, { "git-tree": "7ecb86d672441a33985f400435082f119b3b1428", "version-string": "2.1-1", "port-version": 0 }, { "git-tree": "c6bc0a25e0b963d679e5739c5e83bf31c0a9ff9a", "version-string": "2.1", "port-version": 0 }, { "git-tree": "6cd15fcab18c56ab38f84446ad5d60b32bd102a1", "version-string": "2.0.0-2", "port-version": 0 }, { "git-tree": "56bd676f18957cef95e0ffc9b454f3082c50360b", "version-string": "2.0.0-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/ccfits.json ================================================ { "versions": [ { "git-tree": "cd82fe8da8254cc634f414c805c16211ce813d89", "version": "2.7", "port-version": 0 }, { "git-tree": "fb77eeca221ca6178425982576dd57f7657c87e5", "version": "2.5", "port-version": 13 }, { "git-tree": "eb6cf964f54147b38cb3bf2df9f70700d733ae25", "version": "2.5", "port-version": 12 }, { "git-tree": "69b00d0813b3ec9b7b963f07cf570cca5a8e2fd5", "version": "2.5", "port-version": 11 }, { "git-tree": "77b570d63ebf64b4110d2555ce945144cc695364", "version": "2.5", "port-version": 10 }, { "git-tree": "659ca5a77df9383a31166079a5f08ce70400d4ab", "version": "2.5", "port-version": 9 }, { "git-tree": "ebcb81196a7e63b3b7c4b78f67ebc4e5f20c97c3", "version": "2.5", "port-version": 8 }, { "git-tree": "adb43da4a1d72e0924081e4699d81337d649400e", "version": "2.5", "port-version": 7 }, { "git-tree": "c72b341528629e93108ce5317dd3802dc9b4ac11", "version-string": "2.5", "port-version": 6 }, { "git-tree": "06f0bdeafc82f9dc2df1cf6e84cea717955bc173", "version-string": "2.5-5", "port-version": 0 }, { "git-tree": "dc89a93f5fb8aff0da1d456d2e2afd56c079f9a5", "version-string": "2.5-4", "port-version": 0 }, { "git-tree": "35befe94faaf195405bb683a87bec10ff844b187", "version-string": "2.5-3", "port-version": 0 }, { "git-tree": "ec9558b182333a1b5b541dd6e627ca7e5e31ac4f", "version-string": "2.5-2", "port-version": 0 }, { "git-tree": "47d10b581eb3f9b7673a54813bf5f6cd91e86611", "version-string": "2.5-1", "port-version": 0 }, { "git-tree": "679c0db99a0448c35f7837909b0be283fe71915b", "version-string": "2.5", "port-version": 0 } ] } ================================================ FILE: versions/c-/cconfig.json ================================================ { "versions": [ { "git-tree": "7f4db36c61a2afd14da6c4eaa021b4438937443d", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cctag.json ================================================ { "versions": [ { "git-tree": "3f54ca33b00b33092cdc48fd6fce3d25495a4426", "version-semver": "1.0.4", "port-version": 1 }, { "git-tree": "ce8749684cd638c95c3e2ff15ea713ae11cd991d", "version-semver": "1.0.4", "port-version": 0 }, { "git-tree": "43157f8be9e5020e0e2ab708ec931f4cb3266b31", "version-semver": "1.0.3", "port-version": 0 }, { "git-tree": "bc6878b6e5119f0b4b5f90b4b09e02bd50c9b213", "version-semver": "1.0.2", "port-version": 7 }, { "git-tree": "56e88632d9e1fd1d826e9486e66533cb8baddef8", "version-semver": "1.0.2", "port-version": 6 }, { "git-tree": "e4342449ae8be5c660e94cbb11588ea4649520cd", "version-semver": "1.0.2", "port-version": 5 }, { "git-tree": "2827046cf8d7fe6c0d9003a927dcfc1f33d4469b", "version-semver": "1.0.2", "port-version": 4 }, { "git-tree": "a54aac960d7c5e10bf85b66fb8e1cd9a7a384f64", "version-semver": "1.0.2", "port-version": 3 }, { "git-tree": "e9166dee873ce930a3c5e12b544dc47583343221", "version-semver": "1.0.2", "port-version": 2 }, { "git-tree": "979f28c0cc646b1a4c057ee810772a6b8964b65a", "version-semver": "1.0.2", "port-version": 1 }, { "git-tree": "41cef2a0749658a793585a55c57cb701e0845427", "version-semver": "1.0.2", "port-version": 0 }, { "git-tree": "ffcc7bde96142c2bc54827e3a2280accc592452e", "version-semver": "1.0.1", "port-version": 0 }, { "git-tree": "8abc2227c7e5fc5232f928d407d5dac772afb48b", "version-semver": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cctz.json ================================================ { "versions": [ { "git-tree": "5dec9dc891f4847c23c6716e4c40a5f1d63eb043", "version": "2.5", "port-version": 0 }, { "git-tree": "cd30239fce330035db98ca313f5cebaa4b76da8d", "version": "2.4", "port-version": 0 }, { "git-tree": "527442456bc48c0fd960541f6489dd0ac2add02c", "version": "2.3", "port-version": 7 }, { "git-tree": "02114f18edd1088204f039ab6bc662e23d2e4fcc", "version": "2.3", "port-version": 6 }, { "git-tree": "4fb611037401f6c457c45f90d7a462fa13f6f1b1", "version": "2.3", "port-version": 5 }, { "git-tree": "d9230440e30edf443d69ac13244f53b6191742ae", "version-string": "2.3", "port-version": 4 }, { "git-tree": "b61e635e32027714e10e682235c9f3c5b8b1b1e9", "version-string": "2.3", "port-version": 3 }, { "git-tree": "8568acc72750187c3c08b29a6e273ce8508cd522", "version-string": "2.3-2", "port-version": 0 }, { "git-tree": "e94cb87cf3b7a4aa29939cf07f6d97b7789c0edc", "version-string": "2.3", "port-version": 0 }, { "git-tree": "660a0b23b0e9f8dbd9afddedd51a8dbbdddcc7bd", "version-string": "2.2", "port-version": 0 }, { "git-tree": "57dbb3f749a8171a5e6c2e60da0223baa36d82d8", "version-string": "2.1", "port-version": 0 }, { "git-tree": "2641c2672fc767a4a8ce26aaf35385483d921f84", "version-string": "v2.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cddlib.json ================================================ { "versions": [ { "git-tree": "6f3c13b34328c8bfb917cac49ee1467b8619bcc7", "version-string": "0.94n", "port-version": 1 }, { "git-tree": "50b8720eab35c7a9f1cbf62cd6eab00850bbe001", "version-string": "0.94n", "port-version": 0 }, { "git-tree": "0bb4839476e2e904a3afcde5003ae2fe7237efd7", "version-string": "0.94m", "port-version": 0 } ] } ================================================ FILE: versions/c-/cdt.json ================================================ { "versions": [ { "git-tree": "76b392554292fd391d08fcd98f192f39b229454a", "version": "1.4.4", "port-version": 0 }, { "git-tree": "b820cb55b211bb8993d3ac32147e6f431341e04b", "version": "1.4.1", "port-version": 0 }, { "git-tree": "c36b649de1fc9f199628cbceb460d9304dd87a99", "version": "1.4.0", "port-version": 0 }, { "git-tree": "2455f0f823d6e0f87540a29206f2779004aedce0", "version": "1.3.0", "port-version": 0 }, { "git-tree": "ddc92ab3ef284f9643001138f8ed320a2417a80f", "version": "1.2.0", "port-version": 1 }, { "git-tree": "d04985a703ae8b9201876879003d44c84f719a3a", "version": "1.2.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/celero.json ================================================ { "versions": [ { "git-tree": "a7ca88fba3bb0b175a1a6085104d2a9fc6601ddc", "version": "2.9.1", "port-version": 0 }, { "git-tree": "1b4a2230664d3439e53d60370aa383ec540f6362", "version": "2.9.0", "port-version": 0 }, { "git-tree": "cf7909a1c7934793bb36ecf3d70a7dade2dcf983", "version": "2.8.5", "port-version": 0 }, { "git-tree": "a9beee7ba313a9770888b114a8146bc1a983577e", "version": "2.8.3", "port-version": 0 }, { "git-tree": "58fca5af8a14714f953c3d8a4653e90ac8d11e2f", "version-string": "2.8.2", "port-version": 1 }, { "git-tree": "a170553c57f438bdab8cde9f4c6494e774763681", "version-string": "2.8.2", "port-version": 0 }, { "git-tree": "25d338809366c358afe158e52694be2a670ab054", "version-string": "2.7.2", "port-version": 0 }, { "git-tree": "754905c9baebd27cf1312f7054403f3e901d5d53", "version-string": "2.6.0-1", "port-version": 0 }, { "git-tree": "64e373a8e9115c984f399afda24a437ace26b4ba", "version-string": "2.6.0", "port-version": 0 }, { "git-tree": "51246db8056526db6c835be4c7696ebeb3510595", "version-string": "2.5.0-1", "port-version": 0 }, { "git-tree": "6b0d0ecb2631cfb977ee4455273cc61edd505295", "version-string": "2.4.0-1", "port-version": 0 }, { "git-tree": "d24ee3a6772134b4075509cb0c968112d0d4cfa5", "version-string": "2.4.0", "port-version": 0 }, { "git-tree": "6b0d0ecb2631cfb977ee4455273cc61edd505295", "version-string": "2.4.0-1", "port-version": 0 }, { "git-tree": "d24ee3a6772134b4075509cb0c968112d0d4cfa5", "version-string": "2.4.0", "port-version": 0 }, { "git-tree": "1828a39a6c5ac19533b15a24b0bd9de8328eff56", "version-string": "2.3.0-1", "port-version": 0 }, { "git-tree": "257a3d0cfb2b03dcadc647145e776c1892966d79", "version-string": "2.2.0", "port-version": 0 }, { "git-tree": "890613b2325cf744c650259aabccafa0b0fdd3b6", "version-string": "2.1.0-2", "port-version": 0 }, { "git-tree": "2848e553555ffa2cc32e17e8613511a042a212b6", "version-string": "2.1.0-1", "port-version": 0 }, { "git-tree": "01616c4f432067367bd0c4786e44667da33bcd81", "version-string": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cello.json ================================================ { "versions": [ { "git-tree": "77bec04318495925112bdf302bafc14956dde6c9", "version-date": "2019-07-23", "port-version": 4 }, { "git-tree": "999cf1c190507b8494ddff1188f613bd4b6616ce", "version-date": "2019-07-23", "port-version": 3 }, { "git-tree": "a281b67048d19f8136aaa8e0198b1db5dec5c4dd", "version-date": "2019-07-23", "port-version": 2 }, { "git-tree": "45d476438561ae8c8e7a8eb7871faadb1379e874", "version-string": "2019-07-23", "port-version": 1 }, { "git-tree": "ee7bb8fff5e2b12f7c6ae5a2d435c8ce1638e103", "version-string": "2019-07-23", "port-version": 0 } ] } ================================================ FILE: versions/c-/cereal.json ================================================ { "versions": [ { "git-tree": "075869fcf5302c6dd11d564286d0dfa1d2d4d7a1", "version": "1.3.2", "port-version": 1 }, { "git-tree": "fdaabbb005403148dd7e53f5158199f6b1b297f2", "version": "1.3.2", "port-version": 0 }, { "git-tree": "e292069bec2c118568ea23a3db965037a9e38790", "version": "1.3.1", "port-version": 0 }, { "git-tree": "7229804bbf716bbefe8052d650fc94687b6dae42", "version-string": "1.3.0", "port-version": 1 }, { "git-tree": "2df2d8bdb54e554795344bafe05bf0a1eaa28537", "version-string": "1.3.0", "port-version": 0 }, { "git-tree": "ecf0a70523709732832f115b4f90a1bffdc9c1f7", "version-string": "1.2.2-2", "port-version": 0 }, { "git-tree": "1492f676a63290569dd7e834ef393d2611ca83c7", "version-string": "1.2.2-1", "port-version": 0 }, { "git-tree": "f0f4ec8e160319af2e540f2f4b7637c636dcb9bd", "version-string": "1.2.2", "port-version": 0 }, { "git-tree": "23d90191ceeeef4c2687be0829eb9f5c68158e02", "version-string": "1.2.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/ceres.json ================================================ { "versions": [ { "git-tree": "96cf5bb8c4f52057b347db0a6c88f83f32d80938", "version": "2.2.0", "port-version": 6 }, { "git-tree": "da138ec4e0e7cccd3a1b448af30fd13abb6235b7", "version": "2.2.0", "port-version": 5 }, { "git-tree": "990a68bdbd8678fc0c74294470228bf70a33cc75", "version": "2.2.0", "port-version": 4 }, { "git-tree": "b1913608889f8a846b03535473b16f60a2b3b5d1", "version": "2.2.0", "port-version": 3 }, { "git-tree": "e18de40c8d263f3f8d08782939cd3dd6bb5d4a6a", "version": "2.2.0", "port-version": 2 }, { "git-tree": "c513d3f02c6a12f193adbd33051058e576d2c3da", "version": "2.2.0", "port-version": 1 }, { "git-tree": "ae2ddb638679c4955ec12f60c33eb43493786535", "version": "2.2.0", "port-version": 0 }, { "git-tree": "213619bf4451443bd69f784f9a7fa32fc2436e07", "version": "2.1.0", "port-version": 5 }, { "git-tree": "b2ebeb85c8833b2631210c4b790204151e402981", "version": "2.1.0", "port-version": 4 }, { "git-tree": "41580e5d78c0894588ee748ef09366ff9309aa0c", "version": "2.1.0", "port-version": 3 }, { "git-tree": "4baf16216d2d50574964ba5795a501bb89193042", "version": "2.1.0", "port-version": 2 }, { "git-tree": "85a5ff9f8727124ce91655f2d37b9a6c77f367e1", "version": "2.1.0", "port-version": 1 }, { "git-tree": "d3ebf81bee31323b13ad3353b6dbf9944b03abe3", "version": "2.1.0", "port-version": 0 }, { "git-tree": "af54888fc010404793ba51c862147575c09a988b", "version-semver": "2.0.0", "port-version": 6 }, { "git-tree": "07f2aa6906e97637ae7a4ed6dcfce6867eb1a049", "version-semver": "2.0.0", "port-version": 5 }, { "git-tree": "ba834e4ef32213f516d2b0539240ba4cc4a9c90a", "version-semver": "2.0.0", "port-version": 4 }, { "git-tree": "bfe64de75017dfef5a1dbd6b034078a0316201c8", "version-semver": "2.0.0", "port-version": 3 }, { "git-tree": "216c1a351f8af9be7952bd5dfcf262a66e24c11e", "version-string": "2.0.0", "port-version": 2 }, { "git-tree": "f2df3997629106946a1a576a773cfd08f5978643", "version-string": "2.0.0", "port-version": 1 }, { "git-tree": "03366aab447c889feefae20c3e652283f2ac2bf4", "version-string": "2.0.0", "port-version": 0 }, { "git-tree": "f888f21a1b1323a866deead771a7ca520d7bfb27", "version-string": "1.14.0", "port-version": 10 }, { "git-tree": "4efd490b4b57f087fe1ab516919568c49028f6f6", "version-string": "1.14.0", "port-version": 9 }, { "git-tree": "5e18168bf5e9452a060112f346b59d6b5e459efa", "version-string": "1.14.0", "port-version": 8 }, { "git-tree": "413d81210f1cfe26ac97d2a4c9817ead50e23d48", "version-string": "1.14.0-7", "port-version": 0 }, { "git-tree": "e0f395fb4c421ae34156f43cb48a144e79f5e830", "version-string": "1.14.0-6", "port-version": 0 }, { "git-tree": "38018a4aa3c9f1fae2f5cf509dd58d47dad69c70", "version-string": "1.14.0-4", "port-version": 0 }, { "git-tree": "6d8d790253ac5b723b055319b859351e9bb4886c", "version-string": "1.14.0-3", "port-version": 0 }, { "git-tree": "fabee8219a8e5d115cb1e6443b2d746bb31eab3a", "version-string": "1.14.0-1", "port-version": 0 }, { "git-tree": "057ce8f86607d0db4794596e12e894f61ba7e398", "version-string": "1.14.0", "port-version": 0 }, { "git-tree": "6f19269a2cd33bd29b2c8102802973536db1561c", "version-string": "1.13.0-4", "port-version": 0 }, { "git-tree": "74d107a642327542adcd78e2d2a922b7f4f49030", "version-string": "1.13.0-2", "port-version": 0 }, { "git-tree": "e890d1caa869b6bcea6d1647e9d13b81bb6d7a9f", "version-string": "1.13.0-1", "port-version": 0 }, { "git-tree": "a4661d6ba00c69776b7866d8cc867888854a68fc", "version-string": "1.13.0", "port-version": 0 }, { "git-tree": "5ebae76c072aa16a9bd7fdfe1a782488c4ffa812", "version-string": "1.12.0-4", "port-version": 0 }, { "git-tree": "04f6cf2e6acda493f6ab2d92bfee5678b14693d4", "version-string": "1.12.0-3", "port-version": 0 }, { "git-tree": "8b33250d2b3d20ccc7b2a78307e0ce848ae680da", "version-string": "1.12.0-2", "port-version": 0 }, { "git-tree": "235410ef15628f65efd324216f9adf80ac32f212", "version-string": "1.12.0-1", "port-version": 0 }, { "git-tree": "2fee66a97b3b504a740e280356e200d3c1b05896", "version-string": "1.12.0-2", "port-version": 0 }, { "git-tree": "6fdcd6eb670d631572d444a773cf434a89644d74", "version-string": "1.12.0-1", "port-version": 0 }, { "git-tree": "ab6ea40874887e7e65cd76c492ec554c70d1d1fb", "version-string": "1.12.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cfitsio.json ================================================ { "versions": [ { "git-tree": "80cb506fd853d5dbe20d5ecf1d7bf25262d4f4c0", "version": "4.6.3", "port-version": 0 }, { "git-tree": "377eefb3e3da6d29bef536b11ce301217129e34c", "version": "3.49", "port-version": 6 }, { "git-tree": "373230dbd5e9968b5efd6b9d7227accc836b840f", "version": "3.49", "port-version": 5 }, { "git-tree": "b2df854891a5beda50e8cf8004a7af0766c5c5bc", "version": "3.49", "port-version": 4 }, { "git-tree": "b3f1a4860fc51b43140dc7139dd262f93e4a949d", "version": "3.49", "port-version": 3 }, { "git-tree": "bc1418de4f14dd9c1a7e9c9ebc8d8015e1769935", "version": "3.49", "port-version": 2 }, { "git-tree": "0ed894cb8efbfd277570991a78f29b70e4e931cd", "version": "3.49", "port-version": 1 }, { "git-tree": "cd71c6293e902542ed6cb0c146b5de5d6d7906a9", "version-string": "3.49", "port-version": 0 }, { "git-tree": "db0ccc1ac8399ba98af2cf3e5084eaad4eb25776", "version-string": "3.410", "port-version": 4 }, { "git-tree": "09ed62edbadc068497fcdac795e038b64fbe3dfc", "version-string": "3.410-3", "port-version": 0 }, { "git-tree": "0adbd2e17eaa588f30df8cc135859636489ddf37", "version-string": "3.410-2", "port-version": 0 }, { "git-tree": "fd4eded59633e176311d5f34f10f4807db2d2533", "version-string": "3.410-1", "port-version": 0 }, { "git-tree": "a5f320eb3baee508c3a2ab3d6bc2b276a4dbe7ea", "version-string": "3.410", "port-version": 0 } ] } ================================================ FILE: versions/c-/cgal.json ================================================ { "versions": [ { "git-tree": "33b5e18224511e28d32bbf14dc081695d3c68f44", "version": "6.1.1", "port-version": 0 }, { "git-tree": "d1ff549f83dfbe8870ddca8ae5990f206c412185", "version": "6.1", "port-version": 0 }, { "git-tree": "72f95d74f101763f740375bfecc249c096e9ff58", "version": "6.0.1", "port-version": 0 }, { "git-tree": "f1be286404a2a318493e10e1818b244e2772f2f0", "version": "6.0", "port-version": 0 }, { "git-tree": "194089df2abf78f3701c7be7d51ddb25feaf108e", "version": "5.6.1", "port-version": 1 }, { "git-tree": "b207625af76c42809d62b804390364ea872392b5", "version": "5.6.1", "port-version": 0 }, { "git-tree": "daf7cc06ce0247101d1f713013a1a12416da5111", "version": "5.6", "port-version": 1 }, { "git-tree": "313da2aa8d1221c449a211a4d04a0d5976ae8930", "version": "5.6", "port-version": 0 }, { "git-tree": "2361640f4f9d33c828b66c32b900beda59a63036", "version": "5.5.3", "port-version": 0 }, { "git-tree": "339e2b1de050beafb97938c210b823c04182e206", "version": "5.5.2", "port-version": 1 }, { "git-tree": "ddfb9d5fd8c8cd1a799af276c972b376f35f1267", "version": "5.5.2", "port-version": 0 }, { "git-tree": "c86a34d296e485658d16306521425545f3e625ab", "version": "5.5.1", "port-version": 0 }, { "git-tree": "2ef909832bf3d0f379a471e143e8eb5c9aa938cd", "version": "5.5", "port-version": 1 }, { "git-tree": "7cbf69841400a6d51bc3db55b35524a22efcafd1", "version": "5.5", "port-version": 0 }, { "git-tree": "848c2d53e283533691f59e2d7faee6ffd9bbe2f2", "version": "5.4.2", "port-version": 0 }, { "git-tree": "de8aef00f45ff890d5b4ce4aae56afbc559a5fea", "version": "5.4.1", "port-version": 1 }, { "git-tree": "898c2a987fc0104e3c8ba17afde418672e3b0019", "version": "5.4.1", "port-version": 0 }, { "git-tree": "9b768fd944908a816ec83a1ff7cb37249aea808e", "version": "5.4", "port-version": 1 }, { "git-tree": "0acdd574cd028b7ca4acd762f01938492c6d4719", "version": "5.4", "port-version": 0 }, { "git-tree": "da69aec4c03275e85108ebc2dc2d512057d6ac32", "version": "5.3.1", "port-version": 0 }, { "git-tree": "9c46ed672d5f8a2791349c1af1b44ed7dfcb6dd6", "version": "5.3", "port-version": 0 }, { "git-tree": "02c3a0b581425d69dc21787d87e14c53a07e33ee", "version": "5.2.2", "port-version": 1 }, { "git-tree": "8ecf63852d98760d2b2bd0c75b70ab95a5e73aca", "version-string": "5.2.2", "port-version": 0 }, { "git-tree": "14e2dc513d60c6c31b5fd94c6e891ac33fcb328f", "version-string": "5.2", "port-version": 3 }, { "git-tree": "6d5aeedca6a3ace515272f0d3a1fc150efde9076", "version-string": "5.2", "port-version": 2 }, { "git-tree": "5cbb2f2a60d864bd36098d71a050aeef43e52eff", "version-string": "5.2", "port-version": 1 }, { "git-tree": "1673f680f59b2c8c848a28c8e664b68b2ec182d7", "version-string": "5.2", "port-version": 0 }, { "git-tree": "1618e4fdb8df228e557d622d97e766059e02a97a", "version-string": "5.1.1", "port-version": 0 }, { "git-tree": "1c33788089dc3c7bc78a983d5e7a8eb66e5de5ea", "version-string": "5.1", "port-version": 0 }, { "git-tree": "50d3e54d6d6656a391f83b83e1d30da93f03d272", "version-string": "5.1-beta2", "port-version": 0 }, { "git-tree": "c630161b04b2c960065ec75f0d21bd0ca199e303", "version-string": "5.0.3", "port-version": 0 }, { "git-tree": "6d1a36217111e1c54e64ae8e251408c576653b84", "version-string": "5.0.2-2", "port-version": 0 }, { "git-tree": "07ebf53c7a3b2296980fe5d067b6ae3b83b5fb76", "version-string": "5.0.2-1", "port-version": 0 }, { "git-tree": "6b522572549f9d96ea7c08fbdd47e3d7c8fae8d0", "version-string": "5.0.2", "port-version": 0 }, { "git-tree": "be960a2167c1745c2d551cc9ced3698c06ca5616", "version-string": "5.0.1", "port-version": 0 }, { "git-tree": "67ffee79aa65d6a25f201e628b84ca31762dd413", "version-string": "5.0", "port-version": 0 }, { "git-tree": "911b95d80f01cbf6ddf1166d6f1f12f4dad19d01", "version-string": "5.0-beta2-0.1", "port-version": 0 }, { "git-tree": "6511fec22f6fac6b51246ba8d6b8915badd63cc5", "version-string": "5.0-beta1-0.1", "port-version": 0 }, { "git-tree": "dc5a47cc775628b2f049a53b08170b22bb9232d6", "version-string": "5.0", "port-version": 0 }, { "git-tree": "5e28ca831836bfaf91f9a1ef72bcab2d61a47a46", "version-string": "4.14-3", "port-version": 0 }, { "git-tree": "ac76b96512255b61b411e0b31a6196d9e4f35110", "version-string": "4.14-2", "port-version": 0 }, { "git-tree": "a898c4cdb7f5c9601b62a6d2752477e24b5a0be4", "version-string": "4.14-1", "port-version": 0 }, { "git-tree": "8ea2ee636e49dae963ef36112424b1e3727f5579", "version-string": "4.13-3", "port-version": 0 }, { "git-tree": "5e331bf03572ccd2270139b3bbec40bbe5892e26", "version-string": "4.13-2", "port-version": 0 }, { "git-tree": "90764d0b3730082adbee8addffff072d88da69d3", "version-string": "4.13-1", "port-version": 0 }, { "git-tree": "e87dc7986f2030cf3d39e0f1cfcebe155eadbd4b", "version-string": "4.12", "port-version": 0 }, { "git-tree": "6809f8f5e3a61b233ee96c8a4e02df7c54b8860a", "version-string": "4.11.1", "port-version": 0 }, { "git-tree": "f7ce924779fb487caea48f7a2db95b846c16608c", "version-string": "4.11-3", "port-version": 0 }, { "git-tree": "dbeefd7cebe1496efb3f7da4cc785e3c55e37566", "version-string": "4.11-2", "port-version": 0 }, { "git-tree": "75f11610a1f67a87d794c5986a5eb858e6dfd49d", "version-string": "4.11-1", "port-version": 0 }, { "git-tree": "d29ac80aaecb18655a10edca0db08ebfee922a38", "version-string": "4.11", "port-version": 0 } ] } ================================================ FILE: versions/c-/cgicc.json ================================================ { "versions": [ { "git-tree": "4e02edf2aec0aef1be5eb6f6ca130d562278c2bf", "version": "3.2.20", "port-version": 2 }, { "git-tree": "d14a5cb5e4d6f0606e2071d1c94262916a45fd6b", "version": "3.2.20", "port-version": 1 }, { "git-tree": "f9e35a8d1360fc1eb4f323ef22e461d0e5926a90", "version": "3.2.20", "port-version": 0 }, { "git-tree": "60fd4672dd6d913e3af2560314dd31bed192a205", "version": "3.2.19", "port-version": 7 }, { "git-tree": "e5359ace765633e6912eb2898e175f797c6b2d45", "version-string": "3.2.19", "port-version": 6 }, { "git-tree": "a6113e1a5fcadb00943ea3775b6978950b387903", "version-string": "3.2.19", "port-version": 5 }, { "git-tree": "80b636f7c2459aaebfdaeade4f9f0c3892e785dd", "version-string": "3.2.19-4", "port-version": 0 }, { "git-tree": "742cbabc36815039e7824e4d4517ac9ad5bc3aa0", "version-string": "3.2.19-3", "port-version": 0 }, { "git-tree": "379b56c46cd2139b66c84c8bc67edf5bc3362a34", "version-string": "3.2.19-2", "port-version": 0 }, { "git-tree": "add04fedcda8d675524d3ecc4b1900ad19ad66d5", "version-string": "3.2.19-1", "port-version": 0 }, { "git-tree": "c0bc902c6bf35178030984307f7b0cd7b45604ec", "version-string": "3.2.19", "port-version": 0 }, { "git-tree": "3bbf8f6e51b061b7023c5dc9d88862b9f5c2928b", "version-string": "", "port-version": 0 } ] } ================================================ FILE: versions/c-/cgl.json ================================================ { "versions": [ { "git-tree": "b3104cbc44a135a7d7b75e0929571dc0aa314033", "version": "0.60.3", "port-version": 0 }, { "git-tree": "08a6d5bffda4d5fe0b5891a225e7f3fa86cca8a6", "version-string": "0.60.2", "port-version": 3 }, { "git-tree": "1842a39e0a0fa8b8d62fb875e750a07b5fe78709", "version-string": "0.60.2-2", "port-version": 0 }, { "git-tree": "f74bd4202498c6351c3927afc9d6dd10a8b60355", "version-string": "0.60.2-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cglm.json ================================================ { "versions": [ { "git-tree": "d357c45a983aeb2b2a4fe32f160fca8cdec4b7bd", "version-semver": "0.9.6", "port-version": 0 }, { "git-tree": "7b7c4261fc7112e959687b9e61f94f05348cdd9c", "version-semver": "0.9.4", "port-version": 0 }, { "git-tree": "89b93a34ee7896b76bd78e8584deddbf96d203d9", "version-semver": "0.9.2", "port-version": 1 }, { "git-tree": "307a5dca27758987b25ae8f1868c50f3c332d3d6", "version-semver": "0.9.2", "port-version": 0 }, { "git-tree": "996a91ff669c42bc3976231465129ab0f706eb54", "version-semver": "0.9.1", "port-version": 1 }, { "git-tree": "bd33408300b3151706176a80ff4ef80bf6e10284", "version-semver": "0.9.1", "port-version": 0 }, { "git-tree": "557e5a80c4a0ef39aa20af00929e2234794b3c3d", "version-semver": "0.8.8", "port-version": 0 } ] } ================================================ FILE: versions/c-/cgltf.json ================================================ { "versions": [ { "git-tree": "ca743d6f86c5b711e9ae0440df5804ab9a2cf1b3", "version": "1.15", "port-version": 0 }, { "git-tree": "9e21f85900222031c3343b9f2c69b48e32a37782", "version": "1.14", "port-version": 0 }, { "git-tree": "2baab070728dce2d5193a80e1deb7c41caa041f1", "version": "1.13", "port-version": 0 }, { "git-tree": "2b793ed9e4345b733ec3897b1fbed4e152b5fc4a", "version": "1.11", "port-version": 0 }, { "git-tree": "3fc2cb13947f1e5bdabb4333fbc2a4f5ec3128f7", "version": "1.10", "port-version": 0 }, { "git-tree": "835b27ec3e0694edf605a79e0e7322dccd69d82f", "version-string": "1.8", "port-version": 1 }, { "git-tree": "27d089cd8ef3a46c94daa6e90c4c2689052fe3c0", "version-string": "1.8", "port-version": 0 }, { "git-tree": "6816a8dcdaa549afb7c24cd9e815512500f683f3", "version-string": "1.5", "port-version": 0 }, { "git-tree": "593e2a321bdd5461d5660a1ed9a405d487481bd1", "version-string": "1.3", "port-version": 0 }, { "git-tree": "352d59c3e2861cbbaf37a008273c6f45a152573e", "version-string": "1.2", "port-version": 0 }, { "git-tree": "802d7db81d92d4d79e78111b8254d328dd263988", "version-string": "2019-04-30", "port-version": 0 } ] } ================================================ FILE: versions/c-/cgns.json ================================================ { "versions": [ { "git-tree": "0c41a56aa8ca64f3818190442050e49e01a13f41", "version-semver": "4.5.1", "port-version": 0 }, { "git-tree": "a471db9ddebf37d946fadda1a61f70ed87629fe2", "version-semver": "4.5.0", "port-version": 1 }, { "git-tree": "f537ae051f9af88c9573cad36c9f7d5cfa20d570", "version-semver": "4.5.0", "port-version": 0 }, { "git-tree": "3888323fcc200e6d78c882a04c0604acd8281084", "version-semver": "4.4.0", "port-version": 0 }, { "git-tree": "9d4b2d4f75c71bf4a4b66a6cb8bf79e119be4dd7", "version-semver": "4.3.0", "port-version": 5 }, { "git-tree": "98f56fa77d5ab2c24d5d8a9932129626feb65df5", "version-semver": "4.3.0", "port-version": 4 }, { "git-tree": "3a5778901a44a39370c08cf42ad0de44223090c0", "version-semver": "4.3.0", "port-version": 3 }, { "git-tree": "42310ddda48bebfc2b1518c3cf99f4f8b21432e4", "version-semver": "4.3.0", "port-version": 2 }, { "git-tree": "1733a3011caebf67ccbe1d48ea08c92e87d186e0", "version-semver": "4.3.0", "port-version": 1 }, { "git-tree": "0d2c412303ae38864d8ff36777cc22bfc404b9b6", "version-semver": "4.3.0", "port-version": 0 }, { "git-tree": "9d33908ce58fbfa6e823c937716e57d84d1cb2a5", "version-semver": "4.2.0", "port-version": 0 }, { "git-tree": "cc70f3fcc3f4ff2dad2712400208181dc7bb280d", "version-string": "3.4.0-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/chaiscript.json ================================================ { "versions": [ { "git-tree": "2745618f1726fd950c1f3aae35c8ceff2e11796e", "version": "6.1.0", "port-version": 3 }, { "git-tree": "e661b450987c9f41f4cda3faed9067e54fe65f62", "version-string": "6.1.0", "port-version": 2 }, { "git-tree": "42a36da45b402e64b30d4292bf2ed49e029a4177", "version-string": "6.1.0-1", "port-version": 0 }, { "git-tree": "d85843cc7870ae045579d1d1b0e4722b4b626502", "version-string": "6.1.0", "port-version": 0 }, { "git-tree": "b149c97ee946f1d621a8e10874ef8559a7275d57", "version-string": "6.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/chakracore.json ================================================ { "versions": [ { "git-tree": "04e8036ad8fd92b15cd9186794c4d1d68c4f6479", "version-date": "2022-11-09", "port-version": 7 }, { "git-tree": "e1446838cc63899b04eee045e2744d7d59a42a14", "version-date": "2024-04-20", "port-version": 0 }, { "git-tree": "0389158f1c3dfb6596f8bc991223e384ddeb6673", "version-date": "2022-11-09", "port-version": 6 }, { "git-tree": "98c62c0fbb2d410646eec57ce65ec0b91ad19fcf", "version-date": "2022-11-09", "port-version": 5 }, { "git-tree": "cc06634190b18bc8003202b9490c6af7919821a3", "version-date": "2022-11-09", "port-version": 4 }, { "git-tree": "0e3461099e02572100a3a6731b04fa0c3d12b223", "version-date": "2022-11-09", "port-version": 3 }, { "git-tree": "637e8045c68adfe4a6164f368027093dffb79ab6", "version-date": "2022-11-09", "port-version": 2 }, { "git-tree": "5683685d0b153859c9547c04beafa4543b58bc26", "version-date": "2022-11-09", "port-version": 1 }, { "git-tree": "ff01bf142bf069ad4d58ef77933eec4430be79aa", "version-date": "2022-11-09", "port-version": 0 }, { "git-tree": "b1fb3c3a83f78bfa4191c376d026a7768257c9db", "version-date": "2021-04-22", "port-version": 3 }, { "git-tree": "614248322cae7f18cd412cc90848a9f140ec9f60", "version-date": "2021-04-22", "port-version": 2 }, { "git-tree": "8ce7ea484830cdf24c8af45ebad35ba10e76f61c", "version-date": "2021-04-22", "port-version": 1 }, { "git-tree": "0aa775c085b114b0ec67ea23ee99ece252d9e498", "version-string": "2021-04-22", "port-version": 0 }, { "git-tree": "89c6f3a1c86e3849e7f58941ab165af8da0b2f25", "version-string": "1.11.22", "port-version": 1 }, { "git-tree": "7a4613ffc09fc76e06277028b747f1b69f69b852", "version-string": "1.11.22", "port-version": 0 }, { "git-tree": "2ca419681ed3a534f27ccf0127dbc3f56b49738c", "version-string": "1.11.15", "port-version": 0 }, { "git-tree": "0b2e6d64d357718e2b0a3c72b80d0cd6032ff378", "version-string": "1.11.14", "port-version": 0 }, { "git-tree": "71a1aa606b905a943c820d8eb9903b4d8e9f322a", "version-string": "1.11.13", "port-version": 0 }, { "git-tree": "83a9fac77ff0db1cfa2fdd0a8f982dbc3c4ab6e2", "version-string": "1.11.12", "port-version": 0 }, { "git-tree": "e664b82f33c3699d9fae48560225bf176845cd56", "version-string": "1.11.11", "port-version": 0 }, { "git-tree": "6df9ccec9806ae3c646e2f8963340cc1c974d2c6", "version-string": "1.11.9", "port-version": 0 }, { "git-tree": "a9d3ba9be4848102537b95b934e7198fd38d282e", "version-string": "1.11.8", "port-version": 0 }, { "git-tree": "c96a1be59aca2aebe0c5a84cc63539b221b20dc8", "version-string": "1.11.7", "port-version": 0 }, { "git-tree": "b3df766e21d574d79ea1d92e82d91b927267ad85", "version-string": "1.11.5", "port-version": 0 }, { "git-tree": "35646ec58dff3de7b286a4225c2e498b0591e296", "version-string": "1.11.4", "port-version": 0 }, { "git-tree": "849ea1fa5e4835d0a21c710203646c118aafcda4", "version-string": "1.11.2", "port-version": 0 }, { "git-tree": "ad93a98d2d508ae6f3d6b5468dc45eed932132e9", "version-string": "1.11.1-1", "port-version": 0 }, { "git-tree": "da157994a1ca198c2291dce508007e2c3fbf9275", "version-string": "1.11.1", "port-version": 0 }, { "git-tree": "445d9cc153f175468ba6f7a9065f0a6d073330ea", "version-string": "1.10.1-1", "port-version": 0 }, { "git-tree": "869014878c1d6c90f7ef8afdf762d596aa57de21", "version-string": "1.10.1", "port-version": 0 }, { "git-tree": "0203a2c674c84e4f847a69092f8e05881aa1d780", "version-string": "1.10.0", "port-version": 0 }, { "git-tree": "544f12820c7a87300f2132a500da5c720a9c2397", "version-string": "1.8.5", "port-version": 0 }, { "git-tree": "ea25d1092f2f0a622ab1eb00fc63414e901f306c", "version-string": "1.8.4", "port-version": 0 }, { "git-tree": "e010dcad67e297d01b9e81bd105b70222e673a99", "version-string": "1.8.3", "port-version": 0 }, { "git-tree": "d9b292fc28aebb259c0f8be2cca52fd40ed9b34d", "version-string": "1.8.2", "port-version": 0 }, { "git-tree": "aa6cca2de50287424211a5ecb74a7c054e47138c", "version-string": "1.8.1", "port-version": 0 }, { "git-tree": "5619524dc45e2e4d7372f236eeb5d34a8a2787ca", "version-string": "1.7.4-1", "port-version": 0 }, { "git-tree": "e88be82a454cf70d207ff9344c78e8cd2a75d015", "version-string": "1.7.4", "port-version": 0 }, { "git-tree": "160eabab2bb1d5a409e24b1e0a037e24bd4284ef", "version-string": "1.4.3", "port-version": 0 }, { "git-tree": "14eba2da734ab5bab48aeabd831ae5d03bef0067", "version-string": "1.4.0-1", "port-version": 0 }, { "git-tree": "91e7d1ad207b7288e59c91a6147f02de4c95cd3d", "version-string": "1.4.0", "port-version": 0 }, { "git-tree": "e6cfebcad51cb25fa742f774af1be79909e01fc5", "version-string": "1.3.1", "port-version": 0 }, { "git-tree": "55b6461f0e945885ffce0e490603ff170fec690d", "version-string": "1.3.0", "port-version": 0 }, { "git-tree": "61f66358358575de7d803afbffae1622685062d0", "version-string": "1.2.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/charls.json ================================================ { "versions": [ { "git-tree": "3ebadd4c73d279fbddcd91050442d271b3a18ca3", "version": "2.4.3", "port-version": 0 }, { "git-tree": "f9909aaef0219e8727c8f7e22ab93cf3aabbc685", "version": "2.4.2", "port-version": 0 }, { "git-tree": "5459a82cfd650a18a79539aa30a03fa751a8cfcb", "version": "2.4.1", "port-version": 0 }, { "git-tree": "bb6273d01bce3793f42709b833ac47ff0afe71a6", "version": "2.3.4", "port-version": 0 }, { "git-tree": "215d96df3e02eb0bfaae991586f4b64fd03c6cf2", "version-string": "2.2.0", "port-version": 2 }, { "git-tree": "9e9e71b04ec39396631b28e98175e4c862cb154d", "version-string": "2.2.0", "port-version": 1 }, { "git-tree": "12553ab1c13943bb8295052c2965bdbcbfc7f57f", "version-string": "2.2.0", "port-version": 0 }, { "git-tree": "2fa61c15c3a5e28cb65a32bce7769942d8a8f061", "version-string": "2.1.0-1", "port-version": 0 }, { "git-tree": "7c242f5202e4483fa223f0cf6243f7c62ce4fb1b", "version-string": "2.0.0-3", "port-version": 0 }, { "git-tree": "d24536d72857fd7a9f78eed901f8e365c3f46ac1", "version-string": "2.0.0-2", "port-version": 0 }, { "git-tree": "af633d8047f2486b1f3c525a5aa285afc26b4347", "version-string": "2.0.0-1", "port-version": 0 }, { "git-tree": "f43231dbadb55d20a0df8623d03be555bf9cd12a", "version-string": "2.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/chartdir.json ================================================ { "versions": [ { "git-tree": "81e3babb505d9198b120c40dc5f00d11e460faa0", "version": "7.0.0", "port-version": 8 }, { "git-tree": "4de62166c67f2104f1e7180f04f1d5954d8e464a", "version": "7.0.0", "port-version": 7 }, { "git-tree": "fecdbc20f2f4e027680223768c9a312c13cf4a75", "version": "7.0.0", "port-version": 6 }, { "git-tree": "004cfa7f9fabe534a808428ba7b6c6e3844153b9", "version": "7.0.0", "port-version": 5 }, { "git-tree": "7f64b5801adec2ea3f13517ffa35bd96b6a8bb9f", "version": "7.0.0", "port-version": 4 }, { "git-tree": "2b4bad1eb46439cbd63295d8120f03966c52d162", "version": "7.0.0", "port-version": 3 }, { "git-tree": "fe0cf0c045f1092f18faa48f70b6b23d66e6298e", "version": "7.0.0", "port-version": 2 }, { "git-tree": "fc56555cd56d261127f985f6208cb23258dcb262", "version": "7.0.0", "port-version": 1 }, { "git-tree": "433c4a83452c8867b63d012a46109a4e3992e13f", "version": "7.0.0", "port-version": 0 }, { "git-tree": "9fde410f21fe4ab0dfdc3980210c97a17d752380", "version-string": "6.3.1", "port-version": 2 }, { "git-tree": "6db8fed22b0db913c97ccf1c64e274528e6f8eee", "version-string": "6.3.1-1", "port-version": 0 }, { "git-tree": "4d096dc755e553ce08011ccc7116566f8be9eb59", "version-string": "6.3.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/check.json ================================================ { "versions": [ { "git-tree": "c993fcbc415d3c12c9161215529c1d36ba7e5f96", "version": "0.15.2", "port-version": 5 }, { "git-tree": "d3b96c10d08746796f0e7540f9cb896b263cd4a9", "version": "0.15.2", "port-version": 4 }, { "git-tree": "f9804577939493b7f7934d98adc953624e0020c4", "version": "0.15.2", "port-version": 3 }, { "git-tree": "f88273666d201fd843e12ba5d98d4ed8a10bd576", "version-string": "0.15.2", "port-version": 2 }, { "git-tree": "889eae1f6ba0c9809e6718e6b15143b65dc6394f", "version-string": "0.15.2", "port-version": 1 }, { "git-tree": "5495ef66bb5b37ceabf5ddd8b7ee534f1475f3c9", "version-string": "0.15.2", "port-version": 0 }, { "git-tree": "76067a985b85fd4a0223634beb2f3bbb347128c1", "version-string": "0.14.0", "port-version": 0 }, { "git-tree": "ff6d53690d3f8cd7cd75844fdc95de8589947047", "version-string": "0.13.0-2", "port-version": 0 }, { "git-tree": "a6737ac83c44221927230e0765a1c8f73ad65db5", "version-string": "0.13.0-1", "port-version": 0 }, { "git-tree": "768d50c53e9d0546aa8fd12d18cd167f8704dd5b", "version-string": "0.13.0", "port-version": 0 }, { "git-tree": "0a5b1f033d538cfee6676bcc97f0f803b1596cba", "version-string": "0.12.0-2", "port-version": 0 }, { "git-tree": "cdbd554ab0647106628943194c888286191b4419", "version-string": "0.12.0-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/chenjunfu2-nbt-cpp.json ================================================ { "versions": [ { "git-tree": "5405f1c02f672d4fa4eba050724814e11a90ff0c", "version": "2.0.0", "port-version": 0 }, { "git-tree": "2a3eabc87edbfca31eb8bca997e7acc2949f0b2b", "version": "1.0.3", "port-version": 0 }, { "git-tree": "9f68d3999a1c38e783a260b00516e671aaa53050", "version": "1.0.2", "port-version": 0 }, { "git-tree": "18d6922b3b61882b8d8e8fb3dd201847c1b5d0e2", "version": "1.0.1", "port-version": 0 }, { "git-tree": "10ff539eca098b533decabc3b6b28519c5978018", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/chipmunk.json ================================================ { "versions": [ { "git-tree": "860e99dc5300cd7f253d6f69ae01437cfed119a9", "version": "7.0.3", "port-version": 7 }, { "git-tree": "daaeebb368f5c367d7005bb828913f8e158648c1", "version": "7.0.3", "port-version": 6 }, { "git-tree": "949b207c326b9ded582e3360db0375bfbde8e136", "version": "7.0.3", "port-version": 5 }, { "git-tree": "0e48ba1fd1de2d9df5d51fa83d6563777053a9e2", "version": "7.0.3", "port-version": 4 }, { "git-tree": "2d56c98d1d491f822d5f74d312e45b51a0cfccfc", "version-string": "7.0.3", "port-version": 3 }, { "git-tree": "d50838914429dd39c93a8d0974b4f786c53be83f", "version-string": "7.0.3", "port-version": 2 }, { "git-tree": "4c12d64b4bc53958dce0a82a4ae41457ee6e2bc5", "version-string": "7.0.3", "port-version": 1 }, { "git-tree": "1ad780da368cbf02bb78ae3d1c1b6432e0683e90", "version-string": "7.0.3", "port-version": 0 }, { "git-tree": "7bd1bc11f039325e18e226b3f50f4e65869a073b", "version-string": "7.0.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/chmlib.json ================================================ { "versions": [ { "git-tree": "a737b2f42b3bcb4992f51baac9a1a9254691a835", "version": "0.40", "port-version": 8 }, { "git-tree": "bfe4841377722e56ccb7817f6ad93fcf24eab13b", "version": "0.40", "port-version": 7 }, { "git-tree": "eb8f888eae3c5747154d09844daadc5c117a8c38", "version": "0.40", "port-version": 6 }, { "git-tree": "44371d51f30e27d0ccda47b2069b194c3c570ea4", "version-string": "0.40", "port-version": 5 }, { "git-tree": "4801e25e62b144f41dfa8408351f1bab4d7c85b1", "version-string": "0.40-4", "port-version": 0 }, { "git-tree": "2dd1f48712e00c423cf711c17cb046ea1e08c478", "version-string": "0.40-3", "port-version": 0 }, { "git-tree": "89bb46618cba5beea2e91cfe872759e145a51b58", "version-string": "0.40-2", "port-version": 0 }, { "git-tree": "c17af4f58e15ecffe085c937d1d6e448994148da", "version-string": "0.40-1", "port-version": 0 }, { "git-tree": "44c860e56e349c399faaa275a008e1d934df4ac2", "version-string": "0.40", "port-version": 0 } ] } ================================================ FILE: versions/c-/chromaprint.json ================================================ { "versions": [ { "git-tree": "63ef93a5fa6e8c3e2589cbbf1036ea470b5c2fd0", "version": "1.6.0", "port-version": 1 }, { "git-tree": "5521d63737f42175642f19929814815e2f3e672c", "version": "1.6.0", "port-version": 0 }, { "git-tree": "7757884ac6885475efb0036e54085fca9d8f681a", "version": "1.5.1", "port-version": 1 }, { "git-tree": "a33e3947df39a3ac4e7d434f7f3890d0bf80cf39", "version": "1.5.1", "port-version": 0 }, { "git-tree": "2186fe85098c877929c5e1a8916ae9d23fc0a540", "version": "1.5.0", "port-version": 3 }, { "git-tree": "d50d41c54f3aa2854ae05e64715100761517cb31", "version": "1.5.0", "port-version": 2 }, { "git-tree": "d841d451ed68f08043a27b2ec0beb24d3a276c81", "version": "1.5.0", "port-version": 1 }, { "git-tree": "1f3fe321540c3d87ad63fe85efa5b48bd9c55ac8", "version-string": "1.5.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/chromium-base.json ================================================ { "versions": [ { "git-tree": "7f3a0b54287d0d86a331bc8fdc004086b992ab05", "version": "86.0.4199.1", "port-version": 6 }, { "git-tree": "08b399ae573db73407ae4095c79628553416a992", "version": "86.0.4199.1", "port-version": 5 }, { "git-tree": "3dbf253ab140a0d754230e2cffa7b4f94686a9e9", "version": "86.0.4199.1", "port-version": 4 }, { "git-tree": "36e6dbafdea0e90a8717907171efa375d2580d8b", "version-string": "86.0.4199.1", "port-version": 3 }, { "git-tree": "e0ee4950d82a3613501a9647b688a451be6b187c", "version-string": "86.0.4199.1", "port-version": 2 }, { "git-tree": "32032ff366c12fd25721222708291f36c9c7cc32", "version-string": "86.0.4199.1", "port-version": 1 }, { "git-tree": "9594776ec730e788a81d35607b42765968a0c1d2", "version-string": "86.0.4199.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/chronoengine.json ================================================ { "versions": [ { "git-tree": "c889698787962a6469880f44933b8fb84a199f95", "version": "8.0.0", "port-version": 2 }, { "git-tree": "7db5f822e4f4debf9b0b9400a3050fff89dca5c7", "version": "8.0.0", "port-version": 1 }, { "git-tree": "07ebb1fbad61227d28d39339deaf8464abdc82b9", "version": "8.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cialloo-rcon.json ================================================ { "versions": [ { "git-tree": "15e453031d883d06102b67a48336af5c3930a1ae", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cimg.json ================================================ { "versions": [ { "git-tree": "8cab180cf18909a34c138e728ab11d817da48efb", "version": "3.7.2", "port-version": 0 }, { "git-tree": "c2a4e6245c42fe114b86474a0182fab414032fa3", "version": "3.7.0", "port-version": 0 }, { "git-tree": "fbf6f051b417d2fcd2a5c0992efe4c77c8615be6", "version": "3.6.6", "port-version": 0 }, { "git-tree": "9fc45e348f2f2582f83d7b46bab8ed6ea83512a0", "version": "3.6.5", "port-version": 2 }, { "git-tree": "3fce3d2b620c8eec111d885d3f134cbd22ee11b4", "version": "3.6.5", "port-version": 1 }, { "git-tree": "affca00ae202a1e6d0180c2feaf39475d7e1483f", "version": "3.6.5", "port-version": 0 }, { "git-tree": "2211fb741dbcc7f72ea558602b107394717abf44", "version": "3.6.4", "port-version": 0 }, { "git-tree": "99c2c9b99d5c901a85eb69f4d4a1d9e8371b22e0", "version": "3.6.3", "port-version": 0 }, { "git-tree": "513c90b3c86b7174821db9649106787fe51c70a2", "version": "3.6.2", "port-version": 0 }, { "git-tree": "117a07ac7d2a59970ad388684b3ff36c4420206b", "version": "3.6.1", "port-version": 0 }, { "git-tree": "111fbf3dc8b866fb1b765da43f0b81b108ac8b53", "version": "3.5.5", "port-version": 0 }, { "git-tree": "1da0f7c1482f88017be827003325f5f77c533fbb", "version": "3.5.2", "port-version": 0 }, { "git-tree": "cbdf83e75dfb6177ce460bbb289b5fa2b3aa410c", "version": "3.4.1", "port-version": 0 }, { "git-tree": "1c08fdefb8bf0afdace2a7521533a3bd4fbd8f8d", "version": "3.4.0", "port-version": 0 }, { "git-tree": "0b73bf0046233dd69f0dc7962a7e0c3f961be2bc", "version": "3.3.2", "port-version": 0 }, { "git-tree": "2eac332b873f6a2b9108c3e71e59feec8efe5026", "version": "2.9.9", "port-version": 0 }, { "git-tree": "4ec4b920b2c754563d9daf835412f1143c127e97", "version-string": "2.9.4", "port-version": 1 }, { "git-tree": "eb83122db781cf448f7485bc5b55c7497c8941d9", "version-string": "2.9.4", "port-version": 0 }, { "git-tree": "ad4965f4c862383047f8d61e997fa34072772ee8", "version-string": "2.6.2", "port-version": 0 }, { "git-tree": "e63daa06cdd9de965d5b8027b77881c79d442314", "version-string": "2.6.1", "port-version": 0 }, { "git-tree": "5259ce4ffce511c33ef32f3fffdc70c9be0edc3c", "version-string": "2.5.7", "port-version": 0 }, { "git-tree": "b5f68739aa9e4c8565b2135b6d0016f86a74e3a4", "version-string": "2.5.5", "port-version": 0 }, { "git-tree": "96e22b9eff01511e598e2506454e77d29225b326", "version-string": "2.4.5", "port-version": 0 }, { "git-tree": "536e1ebc791fd572511b933f3702ef781ab36b7b", "version-string": "2.4.4", "port-version": 0 }, { "git-tree": "0cc22064dbe06dcdb3727d0a636030a131cdf81b", "version-string": "2.4.2", "port-version": 0 }, { "git-tree": "aacf6d53c723df2317091252da3814b3f968b726", "version-string": "2.4.1", "port-version": 0 }, { "git-tree": "0280b9fc74014aaa976ab0a506b18f3234efdb07", "version-string": "2.4.0", "port-version": 0 }, { "git-tree": "7366a7f23b0903f69eefb09433e80af3cc182a8e", "version-string": "2.3.6", "port-version": 0 }, { "git-tree": "7e7a286f55014c3ce2e20806fafac2a31dad60fb", "version-string": "2.3.3", "port-version": 0 }, { "git-tree": "6263f2ecb3760fd524356be1d5690ad45e74f341", "version-string": "2.3.2", "port-version": 0 }, { "git-tree": "5b3d8f9f77263a362aeedbfb2ab453d14bee0b07", "version-string": "2.2.3", "port-version": 0 }, { "git-tree": "f30cf7cac1d29608aecd1bf75d99b5028ee9b487", "version-string": "2.2.2", "port-version": 0 }, { "git-tree": "8183d26673abb8ba4922b0a7ad62be1fb4d6be06", "version-string": "221", "port-version": 0 }, { "git-tree": "fa1beed18975776efdd88979fdd5caf2718dc645", "version-string": "220", "port-version": 0 }, { "git-tree": "6e493c8269509fcbea2be99ecffe94d4bf6c9a04", "version-string": "2.1.8", "port-version": 0 } ] } ================================================ FILE: versions/c-/cinatra.json ================================================ { "versions": [ { "git-tree": "c3f53a3ea15b6c1e62ab2a3d495f2381cca820b0", "version": "0.9.8", "port-version": 0 }, { "git-tree": "1aab3aea3f6598272bbf3f9ba7f874c2f0209280", "version": "0.9.7", "port-version": 0 }, { "git-tree": "afb64e4946d7613a9753d120d49d960ec059dd38", "version": "0.9.6", "port-version": 0 }, { "git-tree": "0ec83c7c649001bf67610ba3de4127cf5cffb4a0", "version": "0.9.5", "port-version": 1 }, { "git-tree": "55c81c978f5eb001d763feb2ec48245498d59791", "version": "0.9.5", "port-version": 0 } ] } ================================================ FILE: versions/c-/cista.json ================================================ { "versions": [ { "git-tree": "558f1a6dc86ebceef28203629bfa6abf246774a7", "version": "0.16", "port-version": 0 }, { "git-tree": "41cd622182d0c97fda9f491fc064e17248809af5", "version": "0.15", "port-version": 0 }, { "git-tree": "3fa4647485a95f3a0c72bf81938a4307ef0fa694", "version": "0.14", "port-version": 0 }, { "git-tree": "3d9245928fb19ec93b7c1e98bd5acc2e8e56faa3", "version": "0.11", "port-version": 0 } ] } ================================================ FILE: versions/c-/cityhash.json ================================================ { "versions": [ { "git-tree": "6ac425da00e37d679f49357b7871fff3f1c5f597", "version-date": "2013-01-08", "port-version": 3 }, { "git-tree": "9c1b6eaaf15c06d436ce42331b84566abd931f53", "version-date": "2013-01-08", "port-version": 2 }, { "git-tree": "423306e7029cfac62069d751bb612e10b3777c13", "version-string": "2013-01-08", "port-version": 1 }, { "git-tree": "3976c756d432396374de92f20289f5e966d4109a", "version-string": "2013-01-08", "port-version": 0 } ] } ================================================ FILE: versions/c-/civetweb.json ================================================ { "versions": [ { "git-tree": "e4dd629e48dc2fc142165bf825c99512544b568c", "version": "1.16", "port-version": 2 }, { "git-tree": "23fa18e460290d6b0629ca6487f69b56845cfbda", "version": "1.16", "port-version": 1 }, { "git-tree": "46ba5309a5759827c0d729344e8f17cc5f3132b9", "version": "1.16", "port-version": 0 }, { "git-tree": "10dad0fc40c4cb9fe210cabab019806d2b32230d", "version": "1.15", "port-version": 4 }, { "git-tree": "a3847be52c382b4546939abf4ab3bf422bde1be3", "version": "1.15", "port-version": 3 }, { "git-tree": "f5c4ed510288187d465737a301891b1101d6c373", "version": "1.15", "port-version": 2 }, { "git-tree": "0e09fcaf964728e71394be1fc43d018fcde2e355", "version": "1.15", "port-version": 1 }, { "git-tree": "536e2167b093981486715537c12a52d0696b3840", "version": "1.15", "port-version": 0 }, { "git-tree": "ca6f80fd431dc0a13daa1509308d598700fbd763", "version": "1.13", "port-version": 2 }, { "git-tree": "c66a22f30f2b72f81ae2bb23cce2bfc512b6e983", "version-string": "1.13", "port-version": 1 }, { "git-tree": "1776aa61de3940a5f6edda1191097fc16eb53cf5", "version-string": "1.13", "port-version": 0 }, { "git-tree": "3f053b157e06c3b8638c54708f248aba7c8215a5", "version-string": "1.12", "port-version": 0 }, { "git-tree": "c6ff8d6e1603f36d329f5b7c53d8530df6d951e4", "version-string": "2019-07-05-1", "port-version": 0 }, { "git-tree": "b4bccfc4ccd7097f18ee43a4ad5e736d27ea841b", "version-string": "2019-07-05", "port-version": 0 }, { "git-tree": "fa1536cafad57ebd2dd512783aa333faa403df71", "version-string": "1.11-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cjson.json ================================================ { "versions": [ { "git-tree": "609bb899b21911841faab29fd68815c7d2ef62b5", "version": "1.7.19", "port-version": 0 }, { "git-tree": "dc5bbd0b7faf78acb68a65b06c0bc8bfdb0a7c2a", "version": "1.7.18", "port-version": 0 }, { "git-tree": "3641d0d369b02515b4979956d884a2be91ac515b", "version": "1.7.17", "port-version": 0 }, { "git-tree": "54c20c07a3f92d176d53cbe908313d717f746f6b", "version": "1.7.16", "port-version": 0 }, { "git-tree": "025e76be26389108c3e0cf79e5ed1ea589c7b90e", "version": "1.7.15", "port-version": 2 }, { "git-tree": "cb79fc0bdbc6754cf6c267d97e2825655929351b", "version": "1.7.15", "port-version": 1 }, { "git-tree": "4a0cbb7810d1e9fda06ff7da2f8deb5249401267", "version": "1.7.15", "port-version": 0 }, { "git-tree": "c8997bd75a1e40cf8ac7f7d77a942afd84f01d2e", "version-date": "2019-11-30", "port-version": 2 }, { "git-tree": "2a1edb97563c7a8e4007f479bfdcb33122911e16", "version-string": "2019-11-30-1", "port-version": 0 }, { "git-tree": "6417e86b41b39045d328c14e75e763a20c1d75f0", "version-string": "2019-11-30", "port-version": 0 }, { "git-tree": "820bf0e6f96df213008242f4c17ca4e270cf741a", "version-string": "1.7.12", "port-version": 0 }, { "git-tree": "cf63a25f59243203efb7f01c06e20fd735ce7f9c", "version-string": "1.7.10-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clamav.json ================================================ { "versions": [ { "git-tree": "7a5d72a0592ed756c359a514d629900bdccd0e9a", "version-semver": "0.103.11", "port-version": 0 }, { "git-tree": "e6af13bd82992b466df39229e4d4045895dbd023", "version-semver": "0.103.0", "port-version": 4 }, { "git-tree": "36dda0d43469bb23e4d56b170e40261b810509f1", "version-semver": "0.103.0", "port-version": 3 }, { "git-tree": "5580f5bf0e6812edc0e114f55b3377117b5aa6ff", "version-semver": "0.103.0", "port-version": 2 }, { "git-tree": "b6b4287e62ba66791d4f3b1af99f795f7cd8df15", "version-semver": "0.103.0", "port-version": 1 }, { "git-tree": "30eb9215db50ee898f34f2405682017ac2424e58", "version-string": "0.103.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/clap-cleveraudio.json ================================================ { "versions": [ { "git-tree": "045acb6522440e83d524db6e79f841ed285f4830", "version-semver": "1.2.7", "port-version": 0 }, { "git-tree": "2884e6902a1745b004b37b98bf014b624ed89fc3", "version-semver": "1.2.3", "port-version": 0 }, { "git-tree": "c4d72989ace30fdc1d4e4e706922d0de1d223b12", "version-semver": "1.2.2", "port-version": 0 }, { "git-tree": "5ac28878d2cf7c0703073dda31120f634fb161a0", "version-semver": "1.2.0", "port-version": 0 }, { "git-tree": "53d2e109c8c510419c0e2ecfc15beb707bb1215a", "version-semver": "1.1.10", "port-version": 0 } ] } ================================================ FILE: versions/c-/clapack.json ================================================ { "versions": [ { "git-tree": "f4fba3e37630b21e78f871e558e74efd5ea4a936", "version": "3.2.1", "port-version": 24 }, { "git-tree": "42a62cb53a007074bab56cc3086796b291428b4b", "version": "3.2.1", "port-version": 23 }, { "git-tree": "0736bfcd19b6aaa7f1c75c10122433d4b4cc50a9", "version": "3.2.1", "port-version": 22 }, { "git-tree": "f6f25a8699a34ca09b840a5e71b22ab8f6d01fda", "version": "3.2.1", "port-version": 21 }, { "git-tree": "2fd47cedfcd13b7c3a339c7acf4b89c14caea8d5", "version": "3.2.1", "port-version": 20 }, { "git-tree": "bedf61cf9cf765a2c823e1f2427a16af6d8a711e", "version-string": "3.2.1", "port-version": 19 }, { "git-tree": "229447785643f09b1a4ef53bab355ff3757e178e", "version-string": "3.2.1", "port-version": 18 }, { "git-tree": "a75c0e3b1dbe8fa6cd276b2a6fc5b61b19e9ea45", "version-string": "3.2.1", "port-version": 17 }, { "git-tree": "8958d14a08da3ed544cd126331db33768af294cb", "version-string": "3.2.1", "port-version": 16 }, { "git-tree": "93ee7dc5582d65acbd3c51ab0b1374b7b8d2e59c", "version-string": "3.2.1", "port-version": 15 }, { "git-tree": "5054e025c2ab843a2a77bcd2fadaa10a5139bb01", "version-string": "3.2.1", "port-version": 14 }, { "git-tree": "f1d46d74a6edf9270ba1dbeb87b47f56b2c618da", "version-string": "3.2.1", "port-version": 13 }, { "git-tree": "4d6ace5497a1be65cab7b9afce93478614080103", "version-string": "3.2.1-13", "port-version": 0 }, { "git-tree": "478b43e2fe6194105a4cc91200f027663e80ba0e", "version-string": "3.2.1-12", "port-version": 0 }, { "git-tree": "04772a560855daa48239b2eea1179586f7df6fe4", "version-string": "3.2.1-11", "port-version": 0 }, { "git-tree": "8ac89e53f42afc5c7d696c11aff57c98db6c80ed", "version-string": "3.2.1-10", "port-version": 0 }, { "git-tree": "eed4720be7cc3b882d2c8278fe98d1992b03b4bc", "version-string": "3.2.1-9", "port-version": 0 }, { "git-tree": "b4f2e61478621a87629438d55a0628ae02e43f26", "version-string": "3.2.1-6", "port-version": 0 }, { "git-tree": "06355e6da5386dba274b27fdaf24bac94f5f2bfa", "version-string": "3.2.1-4", "port-version": 0 }, { "git-tree": "cb6e0fe3229da9d239f557bb0aeae95952f72731", "version-string": "3.2.1-3", "port-version": 0 }, { "git-tree": "d12dfdf726225876e4785bf1b7cfe91fa5216086", "version-string": "3.2.1-2", "port-version": 0 }, { "git-tree": "e6bcb47d8349edc1400573f78f4a8c0985ed2407", "version-string": "3.2.1-1", "port-version": 0 }, { "git-tree": "97aa58f96c370605c8d70f816fc78c43e1c0e94d", "version-string": "3.2.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clara.json ================================================ { "versions": [ { "git-tree": "ea0e36e1acd8ce030d956c34f063cdce1bc53e83", "version": "1.1.5", "port-version": 2 }, { "git-tree": "dd2473115d2b12883de5a00cdbb2aaa309702042", "version-string": "1.1.5", "port-version": 1 }, { "git-tree": "7c34c7f065f811d99fe3aa30bbe84f9ac580c0f8", "version-string": "1.1.5", "port-version": 0 }, { "git-tree": "3bf349ff0faa032132a525d7a5d429abd21efb8e", "version-string": "2019-03-29", "port-version": 0 }, { "git-tree": "d1cce1303a06e9ea2c9bcf3be072ac630ace5fa2", "version-string": "2018-11-01", "port-version": 0 }, { "git-tree": "6b3700225424235ebd6eae6cca857ec4d92be7d0", "version-string": "2018-10-25", "port-version": 0 }, { "git-tree": "56039d7150142cc0ddd2129d2dcaa5b8a409af71", "version-string": "2018-04-02", "port-version": 0 }, { "git-tree": "d5de4c5a95aa6725296b0613502b0bf153f3bc69", "version-string": "2018-03-23", "port-version": 0 }, { "git-tree": "95a83230895abb9f527a57f9cdecc0b8df3cac72", "version-string": "2018-03-11", "port-version": 0 }, { "git-tree": "ee4d136f6a2815d7b3acc7faac7a89bba5a503e8", "version-string": "2018-03-07", "port-version": 0 }, { "git-tree": "24d857fd302406c577b0ec7bbb84154f134dafd4", "version-string": "2018-02-25", "port-version": 0 }, { "git-tree": "dafbbb9fd26a25e9d757f0d29ab471066aceab44", "version-string": "2017-07-20-9661f2b4a50895d52ebb4c59382785a2b416c310", "port-version": 0 } ] } ================================================ FILE: versions/c-/clay.json ================================================ { "versions": [ { "git-tree": "912e9c2fc1539d94262f0d0bee546dd4c59a3454", "version": "0.14", "port-version": 0 } ] } ================================================ FILE: versions/c-/clblas.json ================================================ { "versions": [ { "git-tree": "f16f51f7d1d0b291a52dfc8afc112a7c02c7f458", "version": "2.12", "port-version": 8 }, { "git-tree": "68caca1b774b1896768237791456b8962aa28d54", "version": "2.12", "port-version": 7 }, { "git-tree": "a94b503ed4a4a74fa316ac65c363968092a0b026", "version": "2.12", "port-version": 6 }, { "git-tree": "0972ab18d9864a174d8c9acb7cf1add27c6a4ce2", "version-string": "2.12", "port-version": 5 }, { "git-tree": "e4744af3eaf0b0d24b2c60b7c3f85565e399961e", "version-string": "2.12-4", "port-version": 0 }, { "git-tree": "ca8bf8d9213393fce5ae7757dc422f056a780ffa", "version-string": "2.12-3", "port-version": 0 }, { "git-tree": "877ea154609214d86f41c69ff6239671338c533d", "version-string": "2.12-2", "port-version": 0 }, { "git-tree": "121d625c8b7962c34f4cd5b8414f6518b39b5526", "version-string": "2.12-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clblast.json ================================================ { "versions": [ { "git-tree": "34f6549100b23ec106957a32157253eadfe10ca3", "version": "1.6.3", "port-version": 0 }, { "git-tree": "2f514afe9163a9445befe8ddc91f8cd8f0105c9d", "version": "1.6.1", "port-version": 0 }, { "git-tree": "5d3c066f06df46440c055d265aa2dee1c21a9971", "version": "1.5.2", "port-version": 3 }, { "git-tree": "f3fc8c351cba8b45e06d835b27101617a5ba74b0", "version": "1.5.2", "port-version": 2 }, { "git-tree": "e85773ea54da7675b468d6fd479871899667aa3a", "version": "1.5.2", "port-version": 1 }, { "git-tree": "1908d2071402d3175fd77f272005be69ff02abbf", "version": "1.5.2", "port-version": 0 }, { "git-tree": "3f2832bf6fb704f7e83a56c4a1b952287b2ceb49", "version-string": "1.5.1", "port-version": 2 }, { "git-tree": "dcbde8693746ad43009a522210aed6794d6a0a58", "version-string": "1.5.1", "port-version": 1 }, { "git-tree": "59011ea56f7531acf901ef6bc7f17ab6492f7b79", "version-string": "1.5.1", "port-version": 0 }, { "git-tree": "8963217e0a1f3564d95832c2178db30618312eab", "version-string": "1.5.0-1", "port-version": 0 }, { "git-tree": "90acecd3a3606d0009162352d6204e57689ac32a", "version-string": "1.5.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cld3.json ================================================ { "versions": [ { "git-tree": "41fd2fe36358570f0bdbfaf689bf12132af99a6f", "version": "3.0.14", "port-version": 2 }, { "git-tree": "a9553fd0c6e8053c54c83a51d8e93bdfab419c8e", "version": "3.0.14", "port-version": 1 }, { "git-tree": "188a3b8fe8c84224f44d3d88b4e74ca34363cf9b", "version": "3.0.14", "port-version": 0 } ] } ================================================ FILE: versions/c-/cleishm-frequency-cpp.json ================================================ { "versions": [ { "git-tree": "5d105319506bd27d7c670511b1305eb763aae850", "version": "1.1.2", "port-version": 0 }, { "git-tree": "a4860db2c83e3f152aa6c2277d9add44250c14a0", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cleishm-thermo-cpp.json ================================================ { "versions": [ { "git-tree": "9b769266119d4a71d56266cc43b1458a8fd921aa", "version": "1.2.1", "port-version": 0 }, { "git-tree": "6e0a48fbe3ebc653b3c64dba6792d4bf7ecfcb60", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/clfft.json ================================================ { "versions": [ { "git-tree": "d0b090c1d13a7faf8136d73853376fc1dee4cc68", "version": "2.12.2", "port-version": 7 }, { "git-tree": "4acb8a5a455beee82cacccf5b72e6c6aa8d8c6a7", "version": "2.12.2", "port-version": 6 }, { "git-tree": "b935ce5f9e186f9be8fe85d6d228043bede4cd04", "version": "2.12.2", "port-version": 5 }, { "git-tree": "fdb3022cd3081e404b7c49ceaa5bd03ad0dc64f4", "version": "2.12.2", "port-version": 4 }, { "git-tree": "14ad34cc8ef68a5583c4f5f0b54f3c9a57ee2bc0", "version-string": "2.12.2", "port-version": 3 }, { "git-tree": "e4985dd521a5d7e29a259339805619913c0e3876", "version-string": "2.12.2-2", "port-version": 0 }, { "git-tree": "d0273b5847f17e5fb8b12f5cea4bbea7533c0012", "version-string": "2.12.2-1", "port-version": 0 }, { "git-tree": "983bac4dd3ecaeef65610d4650d6b44ef4636c18", "version-string": "2.12.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cli.json ================================================ { "versions": [ { "git-tree": "f2a43c762900466174dc4a79a4d30ebba7126107", "version": "2.2.0", "port-version": 0 }, { "git-tree": "8333092a454e35d835756f955c12622342964b05", "version": "2.1.0", "port-version": 0 }, { "git-tree": "72fd89f268dc5d3318561366f54ee6aed341669f", "version": "2.0.2", "port-version": 0 }, { "git-tree": "25a075116903bfd73e5a1e4f63638955c1a52732", "version": "2.0.1", "port-version": 0 }, { "git-tree": "2c5da108b7e41bd3da82fe9b670a308d664b3a0e", "version-semver": "2.0.0", "port-version": 1 }, { "git-tree": "52c57cc23f038ec2f73805b37f42639541036956", "version-semver": "2.0.0", "port-version": 0 }, { "git-tree": "ae335f0cbfecdfb4f7d5448bf3e1fec0ae9aecb9", "version-string": "1.2.1", "port-version": 0 }, { "git-tree": "0686bd749bb0fe462cdd7455b4ff23408ddc6efe", "version-string": "1.2.0", "port-version": 0 }, { "git-tree": "89045e1c68f2e0190da173359ad79f3bf868d734", "version-string": "1.1.1", "port-version": 0 }, { "git-tree": "5bc59c44c0a9a39684454157dda3a7c56a37b7e5", "version-string": "1.1-1", "port-version": 0 }, { "git-tree": "5aa8fbe623b52b18518db5cfb6dfc8194024c4e3", "version-string": "1.1", "port-version": 0 }, { "git-tree": "7f76a495c9e7f6f8cd709499d3d384ed8bedbad4", "version-string": "2019-03-21", "port-version": 0 } ] } ================================================ FILE: versions/c-/cli11.json ================================================ { "versions": [ { "git-tree": "1f36dca09497113c4abf001a5e610eccff567d79", "version": "2.6.2", "port-version": 0 }, { "git-tree": "dbf6c17660cda894c911bf71a3a07b61ec4514c8", "version": "2.6.1", "port-version": 0 }, { "git-tree": "08383519705be3722058027804593b57e72582aa", "version": "2.5.0", "port-version": 0 }, { "git-tree": "7d62ebd97719d822cd957182d68c9079256144e1", "version": "2.4.2", "port-version": 1 }, { "git-tree": "06ac9dc66d709da4eabe20f952b83b4bb7ae7dda", "version": "2.4.2", "port-version": 0 }, { "git-tree": "05a104e144c6cfa16b0a896502ef96f3ccbbdddc", "version": "2.4.1", "port-version": 0 }, { "git-tree": "396b497f39aff89e8cbfec62a6e2ed8bd5df73a0", "version": "2.4.0", "port-version": 0 }, { "git-tree": "5f95180758a2703f23b8202b9e1c449551e11ea9", "version": "2.3.2", "port-version": 0 }, { "git-tree": "47f8293bf52200e08a166ac4e22bee925d63f04a", "version": "2.3.1", "port-version": 0 }, { "git-tree": "25d9ba9e7e80ff980fef1b9bf369d51f5b1cfc59", "version": "2.2.0", "port-version": 0 }, { "git-tree": "a2fa0d3108042d872a50565d15c79d5611bdf0b6", "version": "2.1.2", "port-version": 1 }, { "git-tree": "9e17d430383dcb0eb48b08e57cb33503fc181c3b", "version": "2.1.2", "port-version": 0 }, { "git-tree": "7110589331620372b824efe58e1c3eb5c89c41e7", "version": "2.1.1", "port-version": 0 }, { "git-tree": "07b6e6eba954d7f9300768c354e650ae32582c90", "version": "2.1.0", "port-version": 0 }, { "git-tree": "1430611e0538943498bb96f67ab5de443c76cad2", "version-semver": "2.0.0", "port-version": 0 }, { "git-tree": "47d52d6f0f742e0c0799cd5de355c81732d82d5b", "version-string": "1.9.1", "port-version": 0 }, { "git-tree": "c1e68f22fc5b4cda723b490171a541aa1b9cd6d4", "version-string": "1.9.0", "port-version": 0 }, { "git-tree": "e5176f97d0d9bde0f70fc54f9f8feacaf7f79897", "version-string": "1.8.0", "port-version": 0 }, { "git-tree": "4da425405d2829f4bf8a53c98ecd5e98ff9de0d8", "version-string": "1.7.1", "port-version": 0 }, { "git-tree": "b99037553e78952ff6e0243626640e5d9130bed0", "version-string": "1.7.0", "port-version": 0 }, { "git-tree": "17868365a2236ed8a3559920918eaa0b6d32a521", "version-string": "1.6.2", "port-version": 0 }, { "git-tree": "c823576ada3264d2a7b10dcfb549c4e60a679f03", "version-string": "1.6.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clickhouse-cpp.json ================================================ { "versions": [ { "git-tree": "d4bdcdd2d71f5e45b59c82a5240ed4f01ade47c0", "version": "2.6.0", "port-version": 0 }, { "git-tree": "91e161642e06b5e3f6f86a16714a4b58453a36b5", "version": "2.5.1", "port-version": 0 }, { "git-tree": "d665e3d36b571b68596140563d1934e8b416aa23", "version": "2.4.0", "port-version": 0 }, { "git-tree": "10588d8080311cbc920f1805d3dd51e5b9c27ebe", "version": "2.2.1", "port-version": 0 }, { "git-tree": "14c4074d1a59fbe8b01ebe934698519c63885b8b", "version": "1.5.0", "port-version": 0 }, { "git-tree": "a748366b06afe85b514215e2d27832304581b811", "version-string": "2019-05-22", "port-version": 1 }, { "git-tree": "bd61eb545cd11c0329de99de697ef0dd124cce60", "version-string": "2019-05-22", "port-version": 0 } ] } ================================================ FILE: versions/c-/clipboardxx.json ================================================ { "versions": [ { "git-tree": "64c110cba862b1c13341f721f373c1b546387883", "version": "0.5", "port-version": 1 }, { "git-tree": "16680f4a0a6beba9792b25f742e576123ee909c1", "version": "0.5", "port-version": 0 }, { "git-tree": "081dccf5f7ac08990ef5814f6e2b99d1c2d9a385", "version-date": "2022-02-04", "port-version": 0 } ] } ================================================ FILE: versions/c-/clipp.json ================================================ { "versions": [ { "git-tree": "465f1894b073fb06718c9a8110775399c279da17", "version-date": "2019-04-30", "port-version": 2 }, { "git-tree": "d8bced062fa89719dbb806838b968639f1ffcaf6", "version-string": "2019-04-30", "port-version": 1 }, { "git-tree": "2f0d21d6f8ca2d0768b52fd43ee9beb771c291fd", "version-string": "2019-04-30", "port-version": 0 } ] } ================================================ FILE: versions/c-/clipper2.json ================================================ { "versions": [ { "git-tree": "e9126ece39a7ed941015a59e631a41767189d703", "version": "2.0.1", "port-version": 0 }, { "git-tree": "efcc6cdefc2176e0bdcc990d41d0d43601d20e20", "version": "1.5.4", "port-version": 0 }, { "git-tree": "e45ff52cd2f4a804672f9a7ef670232396a34dac", "version": "1.5.3", "port-version": 0 }, { "git-tree": "bf8c312caa3a6498170d3e0bf628f83b74a8df9d", "version": "1.5.2", "port-version": 0 }, { "git-tree": "5b7c4d5dff8e0b28ad089e870674d497d4be1adb", "version": "1.4.0", "port-version": 0 }, { "git-tree": "666b9d81d31d70d3d691e2286d951168c5d9d970", "version": "1.3.0", "port-version": 1 }, { "git-tree": "649bee1fd1497da0ee3120c985ab6f465f2ad3c2", "version": "1.3.0", "port-version": 0 }, { "git-tree": "2a78eeaf159608c707e8191ce0ae9aed946c2e45", "version": "1.2.2", "port-version": 1 }, { "git-tree": "59bb15f5ddaeb1198a06437295f808d03669373f", "version": "1.2.2", "port-version": 0 }, { "git-tree": "bacf3c04856a20109d6eca303fc22432e3e77777", "version": "1.1.1", "port-version": 1 }, { "git-tree": "3768ef634c9d40c4bb981380ed16756c16eab600", "version": "1.1.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clockutils.json ================================================ { "versions": [ { "git-tree": "3556cbd362e0efbe942f67d19bc63b6963dd5a50", "version": "1.1.1", "port-version": 4 }, { "git-tree": "ff817069188d4dc9146f7f4627e40e367f12ad64", "version": "1.1.1", "port-version": 3 }, { "git-tree": "a5491981971509dc1260393cea620c731aa418b0", "version": "1.1.1", "port-version": 2 }, { "git-tree": "08f337ddf39f1cda9dd6431374cdb0ee748745da", "version": "1.1.1", "port-version": 1 }, { "git-tree": "1fb64c4ec3d5aced719df16f96e79be4bb64cee7", "version-string": "1.1.1-3651f232c27074c4ceead169e223edf5f00247c5", "port-version": 4 }, { "git-tree": "cea253009dc17e485177d45dd2b67334db8fc7b4", "version-string": "1.1.1-3651f232c27074c4ceead169e223edf5f00247c5-3", "port-version": 0 }, { "git-tree": "1099670eb247ce26881c2d121ccdb13ede01a7ba", "version-string": "1.1.1-3651f232c27074c4ceead169e223edf5f00247c5-2", "port-version": 0 }, { "git-tree": "162495da5f294284be07957fde8eedf158c9ce5c", "version-string": "1.1.1-3651f232c27074c4ceead169e223edf5f00247c5-1", "port-version": 0 }, { "git-tree": "23ad4618ca9fc9a5617b236ccca524b53dff0c0e", "version-string": "1.1.1-3651f232c27074c4ceead169e223edf5f00247c5", "port-version": 0 }, { "git-tree": "9ebf14ea7f9be8ff5c2d749a66b0b3bf7654d227", "version-string": "1.1.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/clp.json ================================================ { "versions": [ { "git-tree": "ba7ecebb114207f66009451eb56f4d778f46ef91", "version-string": "1.17.6", "port-version": 1 }, { "git-tree": "a0176c86ad90803b7bbf0327edbbfc8c48d4407e", "version-string": "1.17.6", "port-version": 0 }, { "git-tree": "46976cb32fcdc6d89e76591f1c82f7004baeac1b", "version-string": "1.17.5", "port-version": 0 }, { "git-tree": "9ced0062a007a5831bd6374bdccc2bd51c33287e", "version-string": "1.17.3", "port-version": 0 }, { "git-tree": "0f46d76811ffad1a4b2b3f835a058aebeccde0de", "version-string": "1.17.2-2", "port-version": 0 }, { "git-tree": "0484f61cd4d1962b0c346ca6e3fc4f35cf32bff1", "version-string": "1.17.2-1", "port-version": 0 }, { "git-tree": "000fc62fa341573f5cd780d3ce52a2f0d173a4eb", "version-string": "1.17.2", "port-version": 0 }, { "git-tree": "f696708a0c8ec58bb76de608ccd9de42b87449e0", "version-string": "1.16.11-1", "port-version": 0 }, { "git-tree": "f91480cbc57442e18fc1ce033283cc6d2be87bfd", "version-string": "1.16.11-0", "port-version": 0 } ] } ================================================ FILE: versions/c-/clrng.json ================================================ { "versions": [ { "git-tree": "7cc0e3574395caa55371315638a94981a178f2bf", "version-date": "2020-12-01", "port-version": 3 }, { "git-tree": "9e9072006facf085465f2bcc8291a3a90508c46a", "version-date": "2020-12-01", "port-version": 2 }, { "git-tree": "1b8475c5bb62206bf9ebdd82ba3f04467aee6e95", "version-string": "2020-12-01", "port-version": 1 }, { "git-tree": "700b4cbcd0d99feefabf96621a5b217e56dc5a38", "version-string": "2020-12-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/clue.json ================================================ { "versions": [ { "git-tree": "b486e21df033265619432ec3718ae4db462fb76b", "version": "1.0.0", "port-version": 0 }, { "git-tree": "b58662a5b92d34be097810c33d6ec24400ae0b26", "version-string": "1.0.0-alpha.7", "port-version": 1 }, { "git-tree": "f4b5156fc9604848b9aa627ef0bf7ab21e9ad5ac", "version-string": "1.0.0-alpha.7", "port-version": 0 } ] } ================================================ FILE: versions/c-/cmakerc.json ================================================ { "versions": [ { "git-tree": "2f7f10a967ae634c2636fd361119065446923ace", "version-date": "2023-07-24", "port-version": 0 }, { "git-tree": "d330c8e9d121cf84522ca97f3e0f92f01efb9bc7", "version-date": "2022-09-08", "port-version": 0 }, { "git-tree": "d2fd3d5a7ba3648e56e111691ea6fa938cbc4ed9", "version-date": "2021-08-27", "port-version": 1 }, { "git-tree": "740fd9bb83e79eba29ccd69546d2b3105d719d5d", "version-date": "2021-08-27", "port-version": 0 } ] } ================================================ FILE: versions/c-/cmark-gfm.json ================================================ { "versions": [ { "git-tree": "330cd891b722d5194481b0dae428ac7d06392448", "version": "0.29.0.13", "port-version": 0 } ] } ================================================ FILE: versions/c-/cmark.json ================================================ { "versions": [ { "git-tree": "b6350748e7b5de2385b99e46c229bea52e7b20c9", "version-semver": "0.31.2", "port-version": 0 }, { "git-tree": "159e4cc034614fb2158e373eb2d992a4fa29a343", "version-semver": "0.31.1", "port-version": 0 }, { "git-tree": "46de0e92eb13e52bb044f1d925a477483fe23c80", "version-semver": "0.30.3", "port-version": 0 }, { "git-tree": "4225c9caf09938ef676f688bf246026bc26fef3f", "version-semver": "0.30.1", "port-version": 1 }, { "git-tree": "63d8e9056589a885ec4a36ba739903199206fff1", "version-semver": "0.30.1", "port-version": 0 }, { "git-tree": "0cda97dbc7324b408739f53f493316af44dcaaf6", "version-string": "0.29.0", "port-version": 1 }, { "git-tree": "64a4cd4c7db7d6aed511c8cdbac1b8339093ea4b", "version-string": "0.29.0", "port-version": 0 }, { "git-tree": "e6049400752f6211b738f040231e96af36a6ab33", "version-string": "0.28.3-3", "port-version": 0 }, { "git-tree": "c42765ed8387ebc52ce3541b517f2ad001e48279", "version-string": "0.28.3-2", "port-version": 0 }, { "git-tree": "86267aab8dd3e577c54c787719e23835bb386e21", "version-string": "0.28.3-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cmcstl2.json ================================================ { "versions": [ { "git-tree": "3f2bfc5aadfc40719cf012a9b43d0a0037259738", "version-date": "2019-07-20", "port-version": 3 }, { "git-tree": "71dc25003baa7f85cfb3924b553bf8642e7ea97e", "version-string": "2019-07-20", "port-version": 2 }, { "git-tree": "b42b47d62175c38caf3f6b8f31256bb316284734", "version-string": "2019-07-20", "port-version": 1 }, { "git-tree": "bf1ca5917946395732a4553392212ddb0e4296c1", "version-string": "2019-07-20", "port-version": 0 } ] } ================================================ FILE: versions/c-/cminpack.json ================================================ { "versions": [ { "git-tree": "78753657f07f23e8be5148beefd106317b3f0aaa", "version": "1.3.11", "port-version": 0 }, { "git-tree": "0401d2c926529b034913ab84852eef3fac28f6d4", "version": "1.3.8", "port-version": 4 }, { "git-tree": "c2b1d33d31878445649cbc22e23d10a7b0e5d0b3", "version": "1.3.8", "port-version": 3 }, { "git-tree": "141d26f7fd5eb7d8bebdabbbb05d4ca23fd8fbbf", "version": "1.3.8", "port-version": 2 }, { "git-tree": "6e903be11f8d868d5fb74f597bc0d2890854eb95", "version": "1.3.8", "port-version": 1 }, { "git-tree": "aa9af4c20d069d7b14c99b5877fd782255cde21e", "version": "1.3.8", "port-version": 0 } ] } ================================================ FILE: versions/c-/cmocka.json ================================================ { "versions": [ { "git-tree": "338ee594499f4baf5080a799cb93360b69aa359b", "version": "2.0.2", "port-version": 0 }, { "git-tree": "296011d6dba4e267659df3c55989319334655604", "version-date": "2020-08-01", "port-version": 3 }, { "git-tree": "b9b3ab47324bb53d72b5868cd190fdae50a49d24", "version-string": "2020-08-01", "port-version": 2 }, { "git-tree": "7b4b3515ae508de2f3eccb509948e8ed20eb877e", "version-string": "2020-08-01", "port-version": 1 }, { "git-tree": "feb5623c3cdb647c97be873f2a625468305d8a5d", "version-string": "2020-08-01", "port-version": 0 }, { "git-tree": "0dd7932405f9c83f0e219cd865c04784609f0339", "version-string": "1.1.5", "port-version": 3 }, { "git-tree": "145824db7ad861a4451397515288da776d3dc464", "version-string": "1.1.5", "port-version": 2 }, { "git-tree": "392e863a956094948feb621f3b0f8600ffeb4be4", "version-string": "1.1.5-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cnats.json ================================================ { "versions": [ { "git-tree": "c4ea79353736c06af4962a47ccdfe91f2109b04b", "version": "3.12.0", "port-version": 2 }, { "git-tree": "d2930a48942dba9d125f3206d29d38374804c6f5", "version": "3.12.0", "port-version": 1 }, { "git-tree": "012a96a3aa0d9fcde8f98ed4a2eecda07998a847", "version": "3.12.0", "port-version": 0 }, { "git-tree": "8c37f1714365a6c786a13ee08f69d94fd42c242d", "version": "3.10.1", "port-version": 0 }, { "git-tree": "b733949bf6101a81c740a1c3df955bb1b4071148", "version": "3.10.0", "port-version": 0 }, { "git-tree": "6a2319bfe5bc7b053e9ff322d23c866a6aa80119", "version": "3.9.2", "port-version": 0 }, { "git-tree": "a521d9641d065db79cce09b63daef612a0a34c41", "version": "3.8.2", "port-version": 0 }, { "git-tree": "963d6b12fba8001c650cc6d56a21a1a5122cf845", "version": "3.8.0", "port-version": 0 }, { "git-tree": "cce27b1efc5af15e4222a5fdc5502959f24e9d03", "version": "3.7.0", "port-version": 1 }, { "git-tree": "438cfff2ee224f9d414bda9bcf796c13534443ba", "version": "3.7.0", "port-version": 0 }, { "git-tree": "809d101d1791bc6cd3f51c8c9fa8e86dc923113b", "version": "3.6.1", "port-version": 0 }, { "git-tree": "868bb4267af7b0b9ca3500a11656ea21f78fff4c", "version": "3.6.0", "port-version": 0 }, { "git-tree": "b22911f520e4047d11cd9d81a22263775bf1d797", "version": "3.5.0", "port-version": 0 }, { "git-tree": "d886b7595504b34bc08246edd99ceead043f083f", "version": "3.4.1", "port-version": 0 }, { "git-tree": "e4045ec63d36d672939a5bd17e2733acaf759a14", "version": "3.3.0", "port-version": 0 }, { "git-tree": "ab962ebd7a13f87db7aea528cd4d5725b4fde292", "version": "3.2.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cnl.json ================================================ { "versions": [ { "git-tree": "4acafdbd8f1d4eecb1130668df0503173add00c3", "version": "1.1.7", "port-version": 3 }, { "git-tree": "f491a42c0680489de38159c7dd1486afc766c7fe", "version-string": "1.1.7", "port-version": 2 }, { "git-tree": "3fe1aa7188d2e673265a0c1f20616bdf647c7390", "version-string": "1.1.7", "port-version": 1 }, { "git-tree": "645e64c52fc7d6d9570376aba9c684ca45038f54", "version-string": "1.1.7", "port-version": 0 }, { "git-tree": "4778a9818faef4bfac563accbca398763a725cfc", "version-string": "2019-06-23", "port-version": 0 }, { "git-tree": "463ac0214681e010d4369a6b21f36d651fb7daf4", "version-string": "2019-01-09", "port-version": 0 } ] } ================================================ FILE: versions/c-/co.json ================================================ { "versions": [ { "git-tree": "569af78fe06ff14cd71ec70f14915d06344ed62b", "version-semver": "2.0.3", "port-version": 1 }, { "git-tree": "812bf72c24739504b6ddc3d3c4d941981ff3a032", "version-semver": "2.0.3", "port-version": 0 }, { "git-tree": "b2b668ad241e0a4453f7a4f0a7c0b35e8c922e3b", "version-semver": "2.0.2", "port-version": 1 }, { "git-tree": "2b21d0aa5397dedda9219671af687afacab91a6c", "version-semver": "2.0.2", "port-version": 0 }, { "git-tree": "c9f30ca17733d2c0f4b071ca90d6500c456ac7d0", "version-semver": "2.0.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cocoyaxi.json ================================================ { "versions": [ { "git-tree": "7fa044462edb6c8189b3b7f23d7a5af634048f51", "version-date": "2024-09-04", "port-version": 0 }, { "git-tree": "a21ea9fa7b024f5a3dcc77d9e8ffe49da2da7fbe", "version": "3.0.0", "port-version": 1 }, { "git-tree": "dea448b91eb2baede3ffd0afe1b847eaf73ef83e", "version": "3.0.0", "port-version": 0 }, { "git-tree": "a71b5c50ae0dfa1791b446e7af707cdb080f36d5", "version-semver": "2.0.3", "port-version": 3 }, { "git-tree": "991d1f948e96ec46e60f5d6925a825d63599eb44", "version-semver": "2.0.3", "port-version": 2 }, { "git-tree": "5d874995d9ab680be3c0bb8d18ceebfd9485f1bd", "version-semver": "2.0.3", "port-version": 1 } ] } ================================================ FILE: versions/c-/coin-or-buildtools.json ================================================ { "versions": [ { "git-tree": "9c512b1216f88b2c98a9944c43131fad4de9fdd5", "version-date": "2023-02-02", "port-version": 1 }, { "git-tree": "b0d17057d8452f7e7fa4a3bfe6a2fab3520be6e9", "version-date": "2023-02-02", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin-or-cbc.json ================================================ { "versions": [ { "git-tree": "b0c13a7eef211d2564992a9c2f50f2b7ba0b5659", "version-date": "2024-06-04", "port-version": 1 }, { "git-tree": "090a59c4e81596de0b292188298fc5bbc3d75f84", "version-date": "2024-06-04", "port-version": 0 }, { "git-tree": "0ed0ac8c729439ae3549b949ff6a02c803eabb34", "version-date": "2023-02-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin-or-cgl.json ================================================ { "versions": [ { "git-tree": "9e152e794af7580094c9e95090692ac628d97bb9", "version-date": "2023-02-01", "port-version": 1 }, { "git-tree": "3272f90811fbc680b219072ed319082b025a4788", "version-date": "2023-02-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin-or-clp.json ================================================ { "versions": [ { "git-tree": "4d85c9aa311204d69278ce481b9c008e417298cd", "version-date": "2023-02-01", "port-version": 1 }, { "git-tree": "35592c499a237bd46e45a9016aaa82ac06f3d2b6", "version-date": "2023-02-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin-or-ipopt.json ================================================ { "versions": [ { "git-tree": "8f3393d37ff448cd73bb3bdf00b812a0a38e2a9c", "version-date": "2023-02-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin-or-osi.json ================================================ { "versions": [ { "git-tree": "b223f347892676b47b8253f42755100aff278409", "version-date": "2024-04-16", "port-version": 1 }, { "git-tree": "697c758cc9c54919a8e15682ec846a1a9cfe0b88", "version-date": "2024-04-16", "port-version": 0 }, { "git-tree": "1f7058750dc53193abef4534059e3717cd310310", "version-date": "2023-02-01", "port-version": 0 } ] } ================================================ FILE: versions/c-/coin.json ================================================ { "versions": [ { "git-tree": "57c8eadb56fdc4e843b5e52f2e64123df8309b32", "version": "4.0.6", "port-version": 0 }, { "git-tree": "ba0c9da7750310f9bec11230e9d108ed265effd5", "version": "4.0.4", "port-version": 2 }, { "git-tree": "02210572ddecf670de5a1bbdf26cdd48668add8b", "version": "4.0.4", "port-version": 1 }, { "git-tree": "f496bc7243ce350967c8110f8845baa7ea2cca35", "version": "4.0.4", "port-version": 0 }, { "git-tree": "e2e30210c211c4f2e33abcbb9962b8ee03c8711b", "version": "4.0.3", "port-version": 0 }, { "git-tree": "9747cd35a942a8d806f44a70bdda8833823826e5", "version": "4.0.2", "port-version": 3 }, { "git-tree": "31a9fad74627bcee6a866110f1377acaf8d81c04", "version": "4.0.2", "port-version": 2 }, { "git-tree": "f679393fe0adfac4fbc6aa8235ce8a35e106cd7a", "version": "4.0.2", "port-version": 1 }, { "git-tree": "1f151412ad103c9cafd511a97783d60b85aae246", "version": "4.0.2", "port-version": 0 }, { "git-tree": "bb22aa623ff6abbc31ab908a584855f8ee278e67", "version": "4.0.0", "port-version": 8 }, { "git-tree": "329db8f62c8f5a6f9774670833471ad4decb75cc", "version": "4.0.0", "port-version": 7 }, { "git-tree": "6a7f1c48f1f508f4935fc44a83645305ac5d6da4", "version-string": "4.0.0", "port-version": 6 }, { "git-tree": "e974f1b74758c3af03beefadef6f060437a2af69", "version-string": "4.0.0", "port-version": 5 }, { "git-tree": "e5bf7296f7f3b3655c946280754bbbfbbbf9db2a", "version-string": "4.0.0", "port-version": 4 }, { "git-tree": "e30ae46d4c197521650caf4ca0b407d8f50655e9", "version-string": "4.0.0", "port-version": 3 }, { "git-tree": "cb2008a3d6429f3ff34e3fd3b5e72153f29f36e6", "version-string": "4.0.0", "port-version": 2 }, { "git-tree": "63dc609564e196e6e5bae206da6790da3ab72bcf", "version-string": "4.0.0", "port-version": 1 }, { "git-tree": "f8177462d3f2f6892e475ba8f89390d2ab479bab", "version-string": "4.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/coinutils.json ================================================ { "versions": [ { "git-tree": "d64aad4115d9ac523eda62fe6a0d26d5074ce3c1", "version-date": "2024-04-08", "port-version": 1 }, { "git-tree": "f5fe4624a0175bbe05b4a5c67db6c1e0df3e3666", "version-date": "2024-04-08", "port-version": 0 }, { "git-tree": "5ab5035f6a4fc5601ecc3e644a107b1763426259", "version-date": "2023-02-02", "port-version": 1 }, { "git-tree": "9f78d3e4a95d02a06ad5fe90773ca39a25cd93de", "version-date": "2023-02-02", "port-version": 0 }, { "git-tree": "eee28965c61a5dae6407b3f93bbd945b7992537d", "version-string": "2.11.4", "port-version": 1 }, { "git-tree": "18e68cecf80c5ee106b7e3819ea2a17bfb0a1b5a", "version-string": "2.11.4", "port-version": 0 }, { "git-tree": "5b96c74da5d25b5a90acadd0ec6dd0ae3963c4cf", "version-string": "2.11.2-2", "port-version": 0 }, { "git-tree": "c7bc7d7b8b79bfd8a0cdd1528a3903e6067ba276", "version-string": "2.11.2-1", "port-version": 0 }, { "git-tree": "947055f96054850e91f7219eb9faf417a17c9f74", "version-string": "2.11.2", "port-version": 0 }, { "git-tree": "c73711fa0f35ff1a03915de759029a07f31dba3f", "version-string": "2.10.14-1", "port-version": 0 }, { "git-tree": "d4037100e6763f2a3557ca583a3a298611ffaea9", "version-string": "2.10.14-0", "port-version": 0 } ] } ================================================ FILE: versions/c-/collada-dom.json ================================================ { "versions": [ { "git-tree": "99cd4042870c4d5b82be48450f0efd74fee84934", "version": "2.5.0", "port-version": 11 }, { "git-tree": "9efe9cf28c36df64035b505810bf68f445be62a1", "version": "2.5.0", "port-version": 10 }, { "git-tree": "d9c3011f64673cff7d61bac99def8048f4027f32", "version": "2.5.0", "port-version": 9 }, { "git-tree": "52229b10acbed6e24eefd37ef20b30e24c6c7e71", "version": "2.5.0", "port-version": 8 }, { "git-tree": "1e2fef9034d7819a290b57709aa115628cede76a", "version": "2.5.0", "port-version": 7 }, { "git-tree": "c33581459a51d5ef7cc436a8aebb9d330224a6f3", "version-string": "2.5.0", "port-version": 6 }, { "git-tree": "478639eba0f0d87ac17cf3b28a072edaeed35ca5", "version-string": "2.5.0", "port-version": 5 }, { "git-tree": "f4daab646db5e1ac2332133fd45ef8dc98b0a017", "version-string": "2.5.0", "port-version": 4 }, { "git-tree": "f53be121329578c16d057a2019a9ced1bbb24457", "version-string": "2.5.0-3", "port-version": 0 }, { "git-tree": "f2a6731ce68c7c026f823f44a610574383f43eaa", "version-string": "2.5.0-2", "port-version": 0 }, { "git-tree": "ba37824fd88d9f09a227ca81b84befd5ac9266f0", "version-string": "2.5.0-1", "port-version": 0 }, { "git-tree": "f0552350082d5e21a81cb7603db97786ac26750b", "version-string": "2.5.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/colmap.json ================================================ { "versions": [ { "git-tree": "868e9b94358a0830aad7c62adbc5beae1e52b6b7", "version": "3.12.6", "port-version": 1 }, { "git-tree": "360970f724ed81ffbfa522c23b6a5ff6366b718a", "version": "3.12.6", "port-version": 0 }, { "git-tree": "c166234c960ad821bfddccbe87089e1c3d5fa583", "version": "3.11.1", "port-version": 4 }, { "git-tree": "6d6a3ce7dca6d76ac205a89d5426af7a0935f24a", "version": "3.11.1", "port-version": 3 }, { "git-tree": "7deee951326bf2685951c8d5ff7cbc3618ec5567", "version": "3.11.1", "port-version": 2 }, { "git-tree": "7f2f32bedf07a0ac7a5bc43b81268b20b41b060e", "version": "3.11.1", "port-version": 1 }, { "git-tree": "e07255def3b7cf947532848a0edfe51f66cd6f66", "version": "3.11.1", "port-version": 0 }, { "git-tree": "29a181de8c80f9008a9a46657a16ed187530a59b", "version": "3.10", "port-version": 0 }, { "git-tree": "baca06856960d0b705e668bc376b84ebf565e3ce", "version": "3.9.1", "port-version": 0 }, { "git-tree": "085e4234e54332750bcde82ced25af0078000d2c", "version-date": "2023-10-01", "port-version": 1 }, { "git-tree": "c3482baa430e8733afa927fae4d3951e300a5c67", "version-date": "2023-10-01", "port-version": 0 }, { "git-tree": "be5a8b2aa2354b0d3aec03253dcd13358ba950da", "version-date": "2023-03-12", "port-version": 1 }, { "git-tree": "31fb7f3106b019ceca3838a9461d372244125f63", "version-date": "2023-03-12", "port-version": 0 }, { "git-tree": "4651c5d183a76d29f6b565efdd3443fca8809250", "version-date": "2022-03-14", "port-version": 2 }, { "git-tree": "bc9f3b2c6df41f81ef8ad2b7657c87bfb1bb83f3", "version-date": "2022-03-14", "port-version": 1 }, { "git-tree": "bf74fe8bdad103c3212e029ac7e736c759be2aa8", "version-date": "2022-03-14", "port-version": 0 }, { "git-tree": "81329023ad5f9b2bd27554d2d8a97f8e63aef708", "version-string": "3.7", "port-version": 0 }, { "git-tree": "7d3a2a8f71b464856f91f3b8b7e2362ec27d6487", "version-string": "3.6", "port-version": 2 }, { "git-tree": "1f88c10f0bc3819bae7c197375bba335106726f1", "version-string": "3.6", "port-version": 1 }, { "git-tree": "e2d108b4334d41c2cc500c5dfe4c389127a46220", "version-string": "3.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/color-console.json ================================================ { "versions": [ { "git-tree": "bdd7720df549670e50ef636219b7d093f7cc8bc6", "version-date": "2022-03-20", "port-version": 0 } ] } ================================================ FILE: versions/c-/commata.json ================================================ { "versions": [ { "git-tree": "dd1cc33ce03c577e28b3d8d0e39b437e7bce620e", "version": "1.2.0", "port-version": 0 }, { "git-tree": "8d91b91f16014698c5d15d2feb27e33f06c758d0", "version": "1.1.2", "port-version": 0 }, { "git-tree": "4054c21f12ceefa50efff9554afe43d450fc56de", "version": "1.1.1", "port-version": 0 }, { "git-tree": "35b980f43ea98217041e031d275d0cc552c61d8b", "version": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/comms-ublox.json ================================================ { "versions": [ { "git-tree": "a129592b8ecf08fed15abaeab8b8c229ef16d045", "version-semver": "1.0.0", "port-version": 0 }, { "git-tree": "9d57cdb7ee417cb5e5ed0208d3d9470b79c80f2a", "version-semver": "0.20.2", "port-version": 0 }, { "git-tree": "5d9d9c8e99627bcea62fc1ba2cd9fc496f64a3d2", "version-semver": "0.20.1", "port-version": 0 }, { "git-tree": "c54bc435620cecd7569ad27d615728b82d7f1c39", "version-string": "0.20.0", "port-version": 1 }, { "git-tree": "d7f6b9039e26695d21306b82b805ae057614b8b4", "version-string": "0.20.0", "port-version": 0 }, { "git-tree": "96f06165036235d78178de38c1223b7f16d9cb9c", "version-string": "0.19.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/comms.json ================================================ { "versions": [ { "git-tree": "e9e4735a43786c44da7658392215c5d339c0d33c", "version": "5.2.7", "port-version": 0 }, { "git-tree": "3a9bdbc7d61f9494ad2853f702a19699dae74a70", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "377ae2ef208c319a5b1360f6dbce38ddae897466", "version-semver": "3.4.0", "port-version": 1 }, { "git-tree": "05c5eff9612ccbb544cdcbc8f453e12394956ed8", "version-semver": "3.4.0", "port-version": 0 }, { "git-tree": "3ebf2c0d025a1facfe7ea9e9418e631d3015f532", "version-semver": "3.3.0", "port-version": 0 }, { "git-tree": "57fe5d80da8143076de8b7bb17a0ad9b6fc0cf5b", "version-semver": "3.2.0", "port-version": 0 }, { "git-tree": "fb4f92eb981baa5bc5b85e2362c513848af83c52", "version-semver": "3.1.4", "port-version": 0 }, { "git-tree": "f767daddd556d8848fe375b07293c5df62a3bd9b", "version-string": "3.1.3", "port-version": 1 }, { "git-tree": "35063dc22c382a2460a0f5ee1131c5e5b55dbd4a", "version-string": "3.1.3", "port-version": 0 }, { "git-tree": "7d5791ad7c86f0bb680c22887f909d1820ee2d23", "version-string": "3.1.2", "port-version": 0 }, { "git-tree": "e61903231d55ee3580267fb805b93de0cb42e2e6", "version-string": "3.1.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/commsdsl.json ================================================ { "versions": [ { "git-tree": "2e775d8169ac415d882ec66e3240a0fad3fc86b4", "version-semver": "6.3.4", "port-version": 0 }, { "git-tree": "0a9abbda77e304e8b2e7304052d672211b66e87d", "version-semver": "6.3.3", "port-version": 0 }, { "git-tree": "a363dfeed76ba38fa1d1b3007b06223c347e0063", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "6dc397dcd2267999f4c8d34fabd9a7e2dcf48ced", "version-semver": "3.6.4", "port-version": 1 }, { "git-tree": "0e714012afcd0c56b2b55f6ab18b0092f6cd0066", "version-semver": "3.6.4", "port-version": 0 }, { "git-tree": "76aec94b428a3078c9135d05a46747c86cc24c7c", "version-semver": "3.6.3", "port-version": 0 }, { "git-tree": "bec82cc5342cd706af3d35c95a734c4fce0151ce", "version-semver": "3.6.2", "port-version": 0 }, { "git-tree": "014e972b792fdc47a14d60c1f8a54949f75a9495", "version-semver": "3.6.1", "port-version": 0 }, { "git-tree": "7e27fe7eb3c6be733037eeceefbb7c1805974e30", "version-string": "3.6.0", "port-version": 1 }, { "git-tree": "2ee87822b95d40f9663a8be40ba32b600609c639", "version-string": "3.6.0", "port-version": 0 }, { "git-tree": "41af4565962cba1d1115dbde4903f0843530430f", "version-string": "3.5.4", "port-version": 0 }, { "git-tree": "59d95afa8f69a045fe5a353995cdbd72ec1d5a9b", "version-string": "3.5.3", "port-version": 0 }, { "git-tree": "8ffb0156aa811d2537c57b901a9a44023051cf1e", "version-string": "3.5.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/compoundfilereader.json ================================================ { "versions": [ { "git-tree": "b91bf9e4b5d94c93ac2ffdfc8785c2ec4d99c9ec", "version": "0.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/concurrencpp.json ================================================ { "versions": [ { "git-tree": "46298cd69835358c8776d28900b669f39254cfb8", "version": "0.1.7", "port-version": 2 }, { "git-tree": "07b69be3721571f0f15bc80442fd735cf1f87b70", "version": "0.1.7", "port-version": 1 }, { "git-tree": "5eb63527141d7d261b6e99945f81bf43e293cc8b", "version": "0.1.7", "port-version": 0 }, { "git-tree": "80e475aa0cf6a50936090964cdd032108453eade", "version": "0.1.6", "port-version": 2 }, { "git-tree": "692f9ce2162c5dd6ee54170400c4df33aaec6b5d", "version": "0.1.6", "port-version": 1 }, { "git-tree": "d4d183249579167e00a7717a088721716d66635b", "version": "0.1.6", "port-version": 0 }, { "git-tree": "b83d01e0edaa7fa36ca4e67542201b5fc7354b58", "version": "0.1.5", "port-version": 0 }, { "git-tree": "ecae9e070ec807384d676e49c413118174487f6a", "version": "0.1.4", "port-version": 1 }, { "git-tree": "180b2c3ae47ddd4832fd3d6f8359728a6eda1094", "version": "0.1.4", "port-version": 0 }, { "git-tree": "a6aa7450d44761622be41ef803ef3b92c6388f23", "version-string": "0.1.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/concurrentqueue.json ================================================ { "versions": [ { "git-tree": "cb1a9a521f0db90d6ccceaef6d7428b61836b82d", "version": "1.0.4", "port-version": 1 }, { "git-tree": "d9e893a30c08cf74ea4155c9110c47d605e1e534", "version": "1.0.4", "port-version": 0 }, { "git-tree": "2a8223a8b75af74f94551fb342fd576e893c1ba7", "version": "1.0.3", "port-version": 1 }, { "git-tree": "929e70702c63103c0ec48d7de8cfe3da02f699ba", "version": "1.0.3", "port-version": 0 }, { "git-tree": "c3ff6de6bf5fe5a62c4fc71aa6b58aff79d246d2", "version-string": "1.0.2", "port-version": 0 }, { "git-tree": "03df55152da84b4ecc523cde6dedd0c5adc3f037", "version-string": "1.0.1", "port-version": 0 }, { "git-tree": "52fff0951458b77ebab611dc674a0e374332c572", "version-string": "1.0.0-beta-dea078c", "port-version": 0 }, { "git-tree": "52dbb3f673dc60771f666b98365db3ea70bdfb94", "version-string": "1.0.0-beta", "port-version": 0 } ] } ================================================ FILE: versions/c-/configcat.json ================================================ { "versions": [ { "git-tree": "11125255f1a6be23d5379a97b2c46a93dd319c92", "version": "4.0.5", "port-version": 0 }, { "git-tree": "e4a6b9678ffc16b1af647af534090624a4155386", "version": "4.0.4", "port-version": 0 }, { "git-tree": "38e6f06047d549497488219bf384c3a7dfe7e121", "version": "4.0.3", "port-version": 0 }, { "git-tree": "047e875774a1ac69a4323863f0e8f1912f0cb3d0", "version": "4.0.1", "port-version": 0 }, { "git-tree": "258c8ef537a9b3d79574b82805d34e964fe71f56", "version": "4.0.0", "port-version": 0 }, { "git-tree": "4f1f87e186100760a5a093476a921eb6396b46c7", "version": "3.2.0", "port-version": 0 }, { "git-tree": "278ce6bc975733e7807d36490f0e6d5c5c786ebb", "version": "3.1.1", "port-version": 0 }, { "git-tree": "8beddf56b4ad53f7c2bbd1e457c31858f1906e9c", "version": "3.1.0", "port-version": 0 }, { "git-tree": "5a5b038429eeed3e978742cb13ea7c207ad57d33", "version": "3.0.0", "port-version": 0 }, { "git-tree": "f17f0bf439de376567a91361e85e3602ac5acd74", "version": "2.0.1", "port-version": 0 }, { "git-tree": "d85f2235f4300d30c64fc3a1b0c36c596cc130bf", "version": "2.0.0", "port-version": 0 }, { "git-tree": "b8174af728666bc67db16f8bba6cd72f977fc6ce", "version": "1.0.0", "port-version": 0 }, { "git-tree": "d163eba9cf1e8cdc7585806666d8f83330c50678", "version": "0.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/conjure-enum.json ================================================ { "versions": [ { "git-tree": "d66f6da97f166a0c63c364908bc76b2b9fa3c7e2", "version": "1.2.0", "port-version": 0 }, { "git-tree": "c4da5e41f21f9c651af25773955cfe20f9371086", "version": "1.1.0", "port-version": 1 }, { "git-tree": "cdcabd848476256a49a36322bc7e6c4fefc6abd0", "version": "1.1.0", "port-version": 0 }, { "git-tree": "78574a0113c4bcf9bad05d2fcef406d0bc1d0891", "version": "1.0.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/console-bridge.json ================================================ { "versions": [ { "git-tree": "e5f1141775543ea0491358a281840ce2bcc100be", "version-semver": "1.0.2", "port-version": 0 }, { "git-tree": "d73bd3ef8f9afac3c1f5957eda4ff760cea5b17c", "version-string": "1.0.1", "port-version": 2 }, { "git-tree": "d6e04ef880522a8fedfe59bee4081441332fb937", "version-string": "1.0.1", "port-version": 1 }, { "git-tree": "ccd84d2fb891ccf98a90476689b6c858a0e24098", "version-string": "1.0.1", "port-version": 0 }, { "git-tree": "b4cb5b4c685cc493ac9cb1f61d631318367d0184", "version-string": "0.4.4", "port-version": 0 }, { "git-tree": "7f91110bdaaae815030c2a730853ee2bc06e3711", "version-string": "0.4.3-2", "port-version": 0 }, { "git-tree": "199568cd689ad1966f129685698b4a5fffc5229f", "version-string": "0.4.3-1", "port-version": 0 }, { "git-tree": "d1f4084a37d97521a69a8ca531daefc95052e5f6", "version-string": "0.3.2-4", "port-version": 0 }, { "git-tree": "ff3c0a6f49008ee59f7cd64b35fa830c4093c36c", "version-string": "0.3.2-3", "port-version": 0 }, { "git-tree": "26f69f04a42829d689b1f51521fa199dc9f36327", "version-string": "0.3.2-2", "port-version": 0 }, { "git-tree": "f48f54e29f481ce2850db52f346b6104e6042946", "version-string": "0.3.2-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/constexpr-contracts.json ================================================ { "versions": [ { "git-tree": "ec1e4e87a25936620618f4807b63e2c03ca30f4d", "version-date": "2020-08-09", "port-version": 3 }, { "git-tree": "57c829c4a74272397d4901cf6ed525b2200e1d93", "version-string": "2020-08-09", "port-version": 2 }, { "git-tree": "0fcdc4b7a9e49416833b834a6be2c17254a7e9c7", "version-string": "2020-08-09", "port-version": 1 }, { "git-tree": "fd80e997ec7b9870af5d3872d02be03b36e1c50f", "version-string": "2020-08-09", "port-version": 0 } ] } ================================================ FILE: versions/c-/constexpr.json ================================================ { "versions": [ { "git-tree": "c3d2008ccf999119285610e0a76ed0c46c59632b", "version": "1.0", "port-version": 3 }, { "git-tree": "26c459ddb2becb06ea5c1fcb7a55e282b2aae704", "version-string": "1.0", "port-version": 2 }, { "git-tree": "e9a01ad3c59cf253ec364331beb22ff697739f8e", "version-string": "1.0-1", "port-version": 0 }, { "git-tree": "9992deb4033ceedce33caad72d7a887817ff3df9", "version-string": "1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/continuable.json ================================================ { "versions": [ { "git-tree": "00cab767f56ad46e53d6b140ab675fecfa0fb427", "version": "4.2.2", "port-version": 0 }, { "git-tree": "9cb413050363e8549bbc5a5f50a7882441241416", "version": "4.2.0", "port-version": 0 }, { "git-tree": "d014250505dde9759c6e46aa6825115bfdd5a15c", "version-string": "4.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/convectionkernels.json ================================================ { "versions": [ { "git-tree": "cf21fe054d62c4602edd8566bb5d2f92b1bc1734", "version-date": "2022-06-08", "port-version": 0 } ] } ================================================ FILE: versions/c-/coolprop.json ================================================ { "versions": [ { "git-tree": "941407fb13d6b17cf04b6186a80db2e59d145a3f", "version-semver": "6.4.3", "port-version": 3 }, { "git-tree": "5f114941efb93eadb6df38f9493de8bdab0b496a", "version-semver": "6.4.3", "port-version": 2 }, { "git-tree": "b0bdc5514d6d96d6767c50a09840b164fbf86d93", "version-semver": "6.4.3", "port-version": 1 }, { "git-tree": "ecf4aa81e29286ea194307b2379ef1fd0e3e311f", "version-semver": "6.4.3", "port-version": 0 }, { "git-tree": "b66373d8ddd7b8b887779bfb7c132b4000fe4c87", "version-semver": "6.4.1", "port-version": 2 }, { "git-tree": "61676b5a1e9b82c4b88fd3bf37b684f592f9103e", "version-semver": "6.4.1", "port-version": 1 }, { "git-tree": "5b29615cb7e9dffd253398cd0d7d06a9b9b9fcb2", "version-string": "6.4.1", "port-version": 0 }, { "git-tree": "80fb6d7f66ff93d08f1db76ccaeed25132d5e4dc", "version-string": "6.1.0-5", "port-version": 0 }, { "git-tree": "d224ff6f1aecff5b4de877827df14bf4e4e51725", "version-string": "6.1.0-4", "port-version": 0 }, { "git-tree": "9957f6c15695a63c227d9007b4ce950ac4594498", "version-string": "6.1.0-3", "port-version": 0 }, { "git-tree": "4869e3d639e900ab526b258fd5d684fb00a1f432", "version-string": "6.1.0-2", "port-version": 0 }, { "git-tree": "0fd1734f0cb259d9911c97f1486522de51501a10", "version-string": "6.1.0-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/copypp.json ================================================ { "versions": [ { "git-tree": "5a681be8127821639bed4c4886a351b0640d5c04", "version": "0.3.0", "port-version": 0 }, { "git-tree": "19d47125ad84c71c928f7ea266a6d7543b65ef23", "version": "0.2.0", "port-version": 0 }, { "git-tree": "7be5573b44b0520d8f4cb7619bf8755184bb4019", "version": "0.1.1", "port-version": 0 }, { "git-tree": "30342b837d13819393c9f898e82f5c2cf25bed32", "version": "0.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/coroutine.json ================================================ { "versions": [ { "git-tree": "5cc8578b730599add7711992c556b5aefb835259", "version": "1.5.0", "port-version": 5 }, { "git-tree": "c1ce0f42bbf3898d3421a3c7b6494f69853385f5", "version": "1.5.0", "port-version": 4 }, { "git-tree": "d6cef429d17c011260cd718a2738ec7282098866", "version": "1.5.0", "port-version": 3 }, { "git-tree": "14f8ad97489e980329f98d4c95146dafb32cedb9", "version-string": "1.5.0", "port-version": 2 }, { "git-tree": "da458b763cbbbbba0acf20b1895ddd4ee4ff8d0b", "version-string": "1.5.0", "port-version": 1 }, { "git-tree": "d9b9fe1d75f4154810f944accc760250ca6b5c8b", "version-string": "1.5.0", "port-version": 0 }, { "git-tree": "e314079f32680af6dbf65a83961333a105365620", "version-string": "2020-01-13", "port-version": 0 }, { "git-tree": "56729270f8d2294018155cc9b50f19fcc86a8711", "version-string": "1.4.3", "port-version": 0 }, { "git-tree": "1b4080bd0c5fbcc57c71c8398e8ef06866124c3e", "version-string": "1.4.1-1", "port-version": 0 }, { "git-tree": "3b4aa6029e45c8149674e3a0e62058f57990ef4a", "version-string": "1.4.1", "port-version": 0 }, { "git-tree": "babe3bac4e7332b1e6a5fc1a9b97eedbfacd2b2b", "version-string": "1.4.0-1", "port-version": 0 }, { "git-tree": "9846cd5a1690ac97f0940798a5c980080659ed4d", "version-string": "1.4.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/corrade.json ================================================ { "versions": [ { "git-tree": "4708bc353abf649f9c911c0f70e0a2f8858c2a43", "version-string": "2020.06", "port-version": 9 }, { "git-tree": "a7c12fdbe3c15ad76eced6d157af6e09d49329e5", "version-string": "2020.06", "port-version": 8 }, { "git-tree": "8630a6d00fec6c7462af2e03bd0e1946f6812069", "version-string": "2020.06", "port-version": 7 }, { "git-tree": "1a278fdbd46715f454e366df7d06410ae2fc9747", "version-string": "2020.06", "port-version": 6 }, { "git-tree": "fed547a7951672a5a7b1c430df8a9b179f674ac6", "version-string": "2020.06", "port-version": 5 }, { "git-tree": "91ad9b127c41c0538051a0c81e2cb9206a2587dd", "version-string": "2020.06", "port-version": 4 }, { "git-tree": "087770e2a196c44cb1b56473bd57797ed9b9bc87", "version-string": "2020.06", "port-version": 3 }, { "git-tree": "ec9f53411152ed98e9d591afed7e34e65fb7abeb", "version-string": "2020.06", "port-version": 2 }, { "git-tree": "12cd1f62edbe4e05de794c862facfdfd0fe8171d", "version-string": "2020.06", "port-version": 1 }, { "git-tree": "f96e0a1ac4f3b72bedf9f1bf099bb91cceba0456", "version-string": "2020.06", "port-version": 0 }, { "git-tree": "e62f81f5559a5c1075ebf2b1917d52ebe437268d", "version-string": "2019.10-1", "port-version": 0 }, { "git-tree": "a3d5befb3385358ea9aa93837971f7a752a04199", "version-string": "2019.10", "port-version": 0 }, { "git-tree": "ce6e9d237104dd8fe2b1dd628d63e952a5725ca4", "version-string": "2019.01-1", "port-version": 0 }, { "git-tree": "7050d3a4e544bd339b8af51c0413b6711faaa85a", "version-string": "2018.10-2", "port-version": 0 }, { "git-tree": "29cbc467fe04662c2f9e67cf81266f10b0ef35a9", "version-string": "2018.10-1", "port-version": 0 }, { "git-tree": "1567bb131df07f7783449b9c2bc18f13a4d6b699", "version-string": "2018.04-1", "port-version": 0 }, { "git-tree": "6623e1833545fdcff44e74d4d605f9fa7e9fda5f", "version-string": "2018.02-1", "port-version": 0 }, { "git-tree": "168c2aeb500f28c5bc65759ef1ad12bd0095ad2a", "version-string": "jan2018-1", "port-version": 0 }, { "git-tree": "a9528d7b8c661cfe7b8ca3d77ce98ac54a3c2a83", "version-string": "jun2017-3", "port-version": 0 }, { "git-tree": "ca4dcbe6376bb92154632e96d73ede86582cfca3", "version-string": "jun2017-2", "port-version": 0 }, { "git-tree": "fcf193b7e759b5a06fbeb9b83a1831e2a5c1ed80", "version-string": "jun2017-1", "port-version": 0 }, { "git-tree": "d3dbea489cf5899780b71097ef614cab4607d44e", "version-string": "jun2017", "port-version": 0 } ] } ================================================ FILE: versions/c-/correlation-vector-cpp.json ================================================ { "versions": [ { "git-tree": "004b3aeae78d35b82ed9672a0d94340a82bfdc06", "version": "1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-async.json ================================================ { "versions": [ { "git-tree": "0cc822aaa330c0408f6e95d5d2f4d604724ac7bd", "version": "1.2.0", "port-version": 0 }, { "git-tree": "3f29e519d60913ea86ca5cee69d9129a1e04b337", "version": "1.1.0", "port-version": 0 }, { "git-tree": "c9b2e9c3ddd004c4201a27963d4b1bedb2dc2b2c", "version": "1.0.1", "port-version": 0 }, { "git-tree": "f1eaddcca26f72bb7be5a6227bffd3897798341c", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-base64.json ================================================ { "versions": [ { "git-tree": "7ca4d0099c51fb3855c1a4def762aeb55c9fee0c", "version-string": "V2.rc.08", "port-version": 0 }, { "git-tree": "e25f62c15f68a721ee74c0739e3cbafbd76efa40", "version-string": "2019-06-19", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-channel.json ================================================ { "versions": [ { "git-tree": "5219585a35a519c8946194bd0aa0e63fee12b615", "version": "1.3.1", "port-version": 0 }, { "git-tree": "133114a7cef21fcaf48ac0f79021bf3c5005a502", "version": "1.3.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-exiftool.json ================================================ { "versions": [ { "git-tree": "c5d61c5f3b1c617ea7a1a7924fadd5acf9df6d64", "version": "1.8.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-httplib.json ================================================ { "versions": [ { "git-tree": "067b85ed542d10f312eeced4c8f3073cfaa81b7d", "version": "0.38.0", "port-version": 0 }, { "git-tree": "679653b0542cc005598aaf7cc70b0a46c8d1f498", "version": "0.37.1", "port-version": 0 }, { "git-tree": "f715c3a2c267acbf539d4fbbfbcc30268db74a3f", "version": "0.37.0", "port-version": 0 }, { "git-tree": "f663469c077370235ca84b39a20e9f2952bb6ad5", "version": "0.36.0", "port-version": 0 }, { "git-tree": "ccc07ca9ac5d078eec793830976efafd0c96bbf2", "version": "0.35.0", "port-version": 0 }, { "git-tree": "b213f6bf816846972a2cfabd034460ccfed94cea", "version": "0.33.1", "port-version": 0 }, { "git-tree": "83bbe6ce28ee70bd418ca614bf5010d17f643cef", "version": "0.32.0", "port-version": 0 }, { "git-tree": "fe32d393ccc7821f7d73b617ffcff0074fb9bd09", "version": "0.31.0", "port-version": 0 }, { "git-tree": "46bec4e7cbe694979a19062f7a25ebb9bb100a0d", "version": "0.30.2", "port-version": 1 }, { "git-tree": "e6ff3e7473123e38723a124faa43d29e1e0663ee", "version": "0.30.2", "port-version": 0 }, { "git-tree": "e1c439c1bb5e3acaa21db58a7de103dce016238d", "version": "0.30.1", "port-version": 0 }, { "git-tree": "dd2243a70f9acfe581ffb34f232552f0826ce7df", "version": "0.30.0", "port-version": 0 }, { "git-tree": "81ddfd97e468e457e05b1e584e8bc051bdab586a", "version": "0.29.0", "port-version": 0 }, { "git-tree": "88f373916a0ce10d4e5d2eb4308e4534efd62e1d", "version": "0.28.0", "port-version": 0 }, { "git-tree": "80a9dfe4267df4960700b2c9474b241ab10c5dbf", "version": "0.27.0", "port-version": 0 }, { "git-tree": "c6c10f2b887998ab2c4e150e3f35d6e29694f9d0", "version": "0.26.0", "port-version": 0 }, { "git-tree": "fbb576519a11d46494dc6f66306e42293479557b", "version": "0.25.0", "port-version": 0 }, { "git-tree": "676225eb2b5d420edf2b2e5147afb1d435dc3e0e", "version": "0.24.0", "port-version": 1 }, { "git-tree": "575ea21139b6cb25f26bfdb1eecb8ca3942bcecd", "version": "0.24.0", "port-version": 0 }, { "git-tree": "993d98ea0740c33e61811338b0fe57e8b7fe440c", "version": "0.23.1", "port-version": 0 }, { "git-tree": "12b5e5c2cd301320c0b15a1f0df91f0bd2811234", "version": "0.23.0", "port-version": 0 }, { "git-tree": "53ba647995ef49751da6f9a493630025745f995c", "version": "0.22.0", "port-version": 0 }, { "git-tree": "d2e8e5dd8285d31323f210bb56662a013c75c784", "version": "0.21.0", "port-version": 0 }, { "git-tree": "9537ce6671697e8042f75767b38210d91434d575", "version": "0.20.1", "port-version": 0 }, { "git-tree": "504cadb74ace89d1afed1c10afceebf046baae28", "version": "0.20.0", "port-version": 1 }, { "git-tree": "2cb1201ff0d73510fdaf89d9102f7f818fc74f78", "version": "0.20.0", "port-version": 0 }, { "git-tree": "edd8506c011b1758fb568ff0d63c472681326393", "version": "0.19.0", "port-version": 0 }, { "git-tree": "83a3aaa3b5ecf3840ef4836215b946283bfd45b5", "version": "0.18.7", "port-version": 0 }, { "git-tree": "b691a37cb10dcf5593ad33e1057b7d4fff36d21a", "version": "0.18.6", "port-version": 0 }, { "git-tree": "079f1aee247fcf2e85e3cf9c3e2d2cd007e0acb7", "version": "0.18.5", "port-version": 0 }, { "git-tree": "52b0104621a26bed2eb36abb9a2806edbe2f6133", "version": "0.18.3", "port-version": 0 }, { "git-tree": "22ef6ccb262c5a3a835b39278d4800035a967a94", "version": "0.18.0", "port-version": 0 }, { "git-tree": "f32a3404b27650358bc9de8aec265cc7538a865d", "version": "0.17.0", "port-version": 0 }, { "git-tree": "ff97f2b2ebe3c9eacfa4adb8d9eabc65b7e7d0c8", "version": "0.16.2", "port-version": 0 }, { "git-tree": "caa3be04dad9a8bb2fd223fcd97ab8b1a1597484", "version": "0.16.0", "port-version": 0 }, { "git-tree": "8378b4e8bb46f2879c44465e1084a8eef0dd4318", "version": "0.15.3", "port-version": 0 }, { "git-tree": "f8ebd2e6ba742af05a5fe992c267ae338f0999d5", "version": "0.15.2", "port-version": 0 }, { "git-tree": "9d30a8829eb12f979aaeb5c4c5eebd76c0d150aa", "version": "0.15.1", "port-version": 1 }, { "git-tree": "cf7ac80d06d049094fbf0742fcc99ecbd0c3396c", "version": "0.15.1", "port-version": 0 }, { "git-tree": "6f65092ce5157b3cf987bf0daba4db53f5d10d37", "version": "0.14.3", "port-version": 0 }, { "git-tree": "209025ac7de89c4a8292aeffd8a59259dfc433c5", "version": "0.14.1", "port-version": 0 }, { "git-tree": "5ed5d9de6eeab399563ab93d52f73b7d4691d1cc", "version": "0.14.0", "port-version": 0 }, { "git-tree": "e1a8cffe02efe8a9c92d1aa1e802f12a8d893aa8", "version": "0.13.3", "port-version": 0 }, { "git-tree": "795e219c0d92adb47551a8a8a4a1e800d5fe70a9", "version": "0.13.1", "port-version": 0 }, { "git-tree": "570d0fcd52fa9bb8048dfe84df6a31b2473949b5", "version": "0.12.3", "port-version": 0 }, { "git-tree": "05e123da2bcd7b05fc8c31fd88e6d3d5aa06d520", "version": "0.12.2", "port-version": 0 }, { "git-tree": "d5bea8aab6eaa201dfd01b054327e3c379ab0864", "version": "0.11.3", "port-version": 1 }, { "git-tree": "dc844acd2ec9e3519c5fc73ee5cefc473e912820", "version": "0.11.3", "port-version": 0 }, { "git-tree": "447d89cebbf0501f587daf989cd578de438617f2", "version": "0.11.2", "port-version": 0 }, { "git-tree": "48c366ec15c570dbd1968b288649d2c33ce6ca08", "version": "0.10.7", "port-version": 0 }, { "git-tree": "55de9c78120ee08fc96d9a6badab8e1d137ab36a", "version": "0.10.3", "port-version": 0 }, { "git-tree": "bfee573e08d3e240e345491ca8e9df1d4f86b05c", "version": "0.9.7", "port-version": 0 }, { "git-tree": "46525b4cf2481e5bd66df0899c0c1fd4f05a0c33", "version": "0.9.4", "port-version": 0 }, { "git-tree": "9554bdd56e3c787d40e20b63582d3b5efbaf4f2f", "version": "0.9.1", "port-version": 0 }, { "git-tree": "c89a8ff559756338dc330c1845a0b6b3ccd3a9e6", "version": "0.8.9", "port-version": 0 }, { "git-tree": "fb5ea9d8cb5c86ca6924539fb32a8d9c43e0faa7", "version-string": "0.8.6", "port-version": 0 }, { "git-tree": "809d4b6bc7857c3f787172729508b9af6d11ef78", "version-string": "0.8.4", "port-version": 0 }, { "git-tree": "c91293d5ebdef52d74de927342c75230d17f741f", "version-string": "0.7.18", "port-version": 0 }, { "git-tree": "f52415b469f9fd27f775790663ba6f266a0b661c", "version-string": "0.7.15", "port-version": 0 }, { "git-tree": "dbf92e33069d9fc4c7dfea6912f7f7550f11bc7a", "version-string": "0.7.0", "port-version": 0 }, { "git-tree": "8d0e8947058383eb72fa7da6420bbfee6602fd15", "version-string": "0.5.1", "port-version": 0 }, { "git-tree": "ab5517f200506396decd501341aa7c363d1369e4", "version-string": "0.4.2", "port-version": 0 }, { "git-tree": "4f8b66a4aca6e3002ea45a980d0ec353e6796683", "version-string": "0.2.5", "port-version": 0 }, { "git-tree": "bbb55a9d1fbf4018816b149dc58fc7a2a827f515", "version-string": "0.2.4", "port-version": 0 }, { "git-tree": "df7b1057a9c38a9b1d87a4f9ed5a963699dfa10c", "version-string": "0.2.2", "port-version": 0 }, { "git-tree": "0085261f79efd1bba7173fa94be5f80c411a54e8", "version-string": "0.2.1", "port-version": 0 }, { "git-tree": "58a5df37f5e58df734fa316eb9b8506b5c048d97", "version-string": "0.2.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-ipc.json ================================================ { "versions": [ { "git-tree": "78c5becf77ba2a78b6eed20a271a961f42d9301d", "version": "1.4.1", "port-version": 0 }, { "git-tree": "ff8d0d48cbedd50adfcc6af6d1fab08b99d14e61", "version": "1.4.0", "port-version": 0 }, { "git-tree": "36fd22ee76a212829a835b36934e27d825b58183", "version": "1.3.0", "port-version": 0 }, { "git-tree": "e86c1547d0be3d2acbe7cebdb799f24359c29e85", "version": "1.2.0", "port-version": 0 }, { "git-tree": "86a57c4fce501c6a9bcde5728ea6787b7425176a", "version": "1.0.1", "port-version": 1 }, { "git-tree": "28482723c3bf4c785828c44d7df79bb901404afd", "version": "1.0.1", "port-version": 0 }, { "git-tree": "a54fbdb4b0fa6b820b1f6a55004f5622f3c02941", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-jwt.json ================================================ { "versions": [ { "git-tree": "924fbe89781eefa280a65d719790919d0606a772", "version": "1.5.1", "port-version": 0 }, { "git-tree": "bcfe5246f268edb7df635d7225634bfd384f9891", "version-date": "2022-08-27", "port-version": 1 }, { "git-tree": "acabe0dc0732f93b8145528dfc0dfd7382758d1b", "version-date": "2022-08-27", "port-version": 0 }, { "git-tree": "f72451ac7e5d62f249b02f79f6e3c9ef8720fc6b", "version-date": "2021-10-18", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-kana.json ================================================ { "versions": [ { "git-tree": "5682a22ed171de1513943900586a118f2a4f861a", "version": "1.0.2", "port-version": 0 }, { "git-tree": "b90496f4a0458637e473406931d1198a1bd38084", "version": "1.0.1", "port-version": 0 }, { "git-tree": "6eda2f3f76b28b4454d608f8407dda45a548c099", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-lazy.json ================================================ { "versions": [ { "git-tree": "87a9c345799640bb0852f4c4d1724a65621e0f7b", "version": "9.0.1", "port-version": 0 }, { "git-tree": "fdd733245c81c0a7567873cc407970aba4d03e19", "version": "9.0.0", "port-version": 0 }, { "git-tree": "e5b9aeb15614e9ea580a39d803f09f561e6dd28f", "version": "8.0.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-netlib.json ================================================ { "versions": [ { "git-tree": "d62b2cc2004022f8048f777d6e968258226a13b4", "version": "0.13.0", "port-version": 10 }, { "git-tree": "f4a974a775695cdf6b1bcc82fc98c993f887b006", "version": "0.13.0", "port-version": 9 }, { "git-tree": "ac3709aa4c5d5b70f38764f2fa7e0b8f8e891d96", "version": "0.13.0", "port-version": 8 }, { "git-tree": "a71758ba258596edd94871670c3d8f7cec334e37", "version-string": "0.13.0", "port-version": 7 }, { "git-tree": "49ff4ae830f2e1ae9141ea3155c6d962ca1c7946", "version-string": "0.13.0", "port-version": 6 }, { "git-tree": "28abab182be22ac70207027a6a7e206416bd28b0", "version-string": "0.13.0", "port-version": 5 }, { "git-tree": "52deb7c24c307a3089b818d3b35bd7b19b1e4dc2", "version-string": "0.13.0", "port-version": 4 }, { "git-tree": "8a0b0215fd6f8ac92b1ef9a159531840551c8dbb", "version-string": "0.13.0-3", "port-version": 0 }, { "git-tree": "1eec50f9389302cc76df41306d01d955f5a67d22", "version-string": "0.13.0-2", "port-version": 0 }, { "git-tree": "b3f4a127b4bb5ce74bc1081465c12c7ab0da1f75", "version-string": "0.13.0-final", "port-version": 0 }, { "git-tree": "c87e2c49f00112069635fddc0d0b4b24ce9e3036", "version-string": "0.13.0-rc3", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-peglib.json ================================================ { "versions": [ { "git-tree": "aab1497a67f73d2d1e229bf184b61d8e1e333b01", "version": "1.10.0", "port-version": 0 }, { "git-tree": "9817053f70c52e2f47411cee3d1293189fd887e0", "version": "1.9.1", "port-version": 0 }, { "git-tree": "ad61047a51713b6c2a3d1d6be1bf48e4b536bc26", "version": "1.9.0", "port-version": 0 }, { "git-tree": "aab20faa46849572df0241317b6b5c309a77ac70", "version": "1.8.6", "port-version": 0 }, { "git-tree": "1db90f789f11e0bcb31b569171d0fc3fda779dfc", "version": "1.8.5", "port-version": 0 }, { "git-tree": "883e76f3473565fdd800411dfa980eae2e19a131", "version": "1.3.10", "port-version": 0 }, { "git-tree": "4c276ee41b27be78ffa392f24e371e9893b43c93", "version-string": "0.1.0", "port-version": 1 }, { "git-tree": "bd023f488fbfc178695bdab57978bf6fd8db5750", "version-string": "0.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-pinyin.json ================================================ { "versions": [ { "git-tree": "e058994c7efb41c68dca581b9a8e38b3cad6e05c", "version": "1.0.2", "port-version": 0 }, { "git-tree": "dabdc5308769f7a7f3c569e4d23c3e81b1657141", "version": "1.0.1", "port-version": 0 }, { "git-tree": "f3a4b0cc31a8acaecebdee019de6f0a07b45037a", "version": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-redis.json ================================================ { "versions": [ { "git-tree": "9714d8cf0b5557d4362f54f0906295b10a154832", "version": "4.3.1", "port-version": 5 }, { "git-tree": "5ba5958862c17ab2f3943b0134b2ad756ae73613", "version-string": "4.3.1", "port-version": 4 }, { "git-tree": "f412f0e14f585bccfec1add71fd23ad9ea8f1f9f", "version-string": "4.3.1", "port-version": 3 }, { "git-tree": "6e73617915b055400da154a55b8c3682a0ace51c", "version-string": "4.3.1-2", "port-version": 0 }, { "git-tree": "69f9fe97f257cb03b1d3746e4ac9a5a020044b47", "version-string": "4.3.1-1", "port-version": 0 }, { "git-tree": "1aecbff26478a3de6098ab3e954253cb905c442d", "version-string": "4.3.1", "port-version": 0 }, { "git-tree": "4a6ab5d4e38191cfd6a56d1ec63a65996255d8e9", "version-string": "4.3.0", "port-version": 0 }, { "git-tree": "55b68b47bc2b3844eeaa690339d1c497ec8662a4", "version-string": "3.5.2-2", "port-version": 0 }, { "git-tree": "c72ae6224b21ed61122f73d8af15cb8f9346e32d", "version-string": "3.5.2-1", "port-version": 0 }, { "git-tree": "692097332992307fa26f25c9d6ea9fdfbbcd120f", "version-string": "3.5.2", "port-version": 0 }, { "git-tree": "d8c526ede1b8b2f7600e61c540f134b99ed41feb", "version-string": "3.5.1-1", "port-version": 0 }, { "git-tree": "e299dadaf41b8f460109f2e8206b4c5cc4a1a2fa", "version-string": "3.5.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-smtpclient-library.json ================================================ { "versions": [ { "git-tree": "3901222e417fcc4beec6d627908ed9308ed02e76", "version": "1.1.13", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-sort.json ================================================ { "versions": [ { "git-tree": "002ef34e186278e775b3966cfde0a3718367dd06", "version": "2.1.0", "port-version": 0 }, { "git-tree": "fa9145c386f60c60edf7c153fc19cc36d86792df", "version": "2.0.0", "port-version": 0 }, { "git-tree": "836bc1965fd04e43be570a140b0794e46bee76e5", "version": "1.17.0", "port-version": 0 }, { "git-tree": "151e8c8270d227fdb1f213daa5d17e87f5575f28", "version": "1.16.0", "port-version": 0 }, { "git-tree": "b474d4009aeb5dd69f5024899bff6fbbb92a78f6", "version": "1.15.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-taskflow.json ================================================ { "versions": [ { "git-tree": "00114add33f7d8a7e8f4fb0d22f9206178181b8b", "version": "2.6.0", "port-version": 2 }, { "git-tree": "edbd9a48db629e8b2c264cdd60fba4ca4e218f03", "version-string": "2.6.0", "port-version": 1 }, { "git-tree": "b07021eb35b87c012df20b3720bf0ee2743eb5c8", "version-string": "2.6.0", "port-version": 0 }, { "git-tree": "4d892699b08144eb75d0a5555ac542b2d9cf2df1", "version-string": "2.5.0", "port-version": 0 }, { "git-tree": "8b8b9c6b78b27e5a058c1e46a560acc8bf26a59c", "version-string": "2.2.0-1", "port-version": 0 }, { "git-tree": "34bd6dbd41ae1167b83f6576897a407515a18821", "version-string": "2.2.0", "port-version": 0 }, { "git-tree": "c94fc4051157f810125817baf9914fc95a137327", "version-string": "2018-11-30", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpp-timsort.json ================================================ { "versions": [ { "git-tree": "f355f33dd3292d81a70517e1fe1ba559844ba413", "version": "3.0.1", "port-version": 0 }, { "git-tree": "f5a8b81f0e75aa7dfb3545271564bfd1ff8977c3", "version": "3.0.0", "port-version": 0 }, { "git-tree": "f04e9f0c24e916697a6451b43cf16a2423019635", "version": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppad.json ================================================ { "versions": [ { "git-tree": "e2ba7723e6f7492e99497324ded1030395fc9b35", "version": "20250000.3", "port-version": 2 }, { "git-tree": "90c3b29013bfbdc5ad4bf24f4ce909b082884960", "version": "20250000.3", "port-version": 1 }, { "git-tree": "dde4cbc6637519c09af91fe6050f58824a5063e6", "version": "20250000.3", "port-version": 0 }, { "git-tree": "8ae82a3ae42d62a6db772e387dae2f45150b27c6", "version": "20250000.2", "port-version": 0 }, { "git-tree": "d69e902bac2437d6ccb8828d183d1d00d5ff8a4b", "version": "20240000.7", "port-version": 0 }, { "git-tree": "323a35cbd75bb978954048bdbae1f650a865ca7d", "version": "20240000.6", "port-version": 0 }, { "git-tree": "6a571c72f89fb09b2d665cbb244a620e60a07f35", "version": "20240000.2", "port-version": 0 }, { "git-tree": "198bea4d165c47868b56e47297c6f46f84dfd3af", "version": "20230000.0", "port-version": 0 }, { "git-tree": "e05a071cbc00d0343c57c70c2b0b043d570f8627", "version-string": "20210000.7", "port-version": 3 }, { "git-tree": "5ec54e982dd160ae43272613536a53de6884d6d4", "version-string": "20210000.7", "port-version": 2 }, { "git-tree": "fd043aed2197ac43f337a7806061460728cf56a8", "version-string": "20210000.7", "port-version": 1 }, { "git-tree": "00e184c8de4368f8ee0b6b5dd0c16034d7a99a8f", "version-string": "20210000.7", "port-version": 0 }, { "git-tree": "f03801828709574ede2215d05d984764cc271a18", "version-string": "20200000.3", "port-version": 1 }, { "git-tree": "b18a6d765c26ff523ffec8761974e16343935e79", "version-string": "20200000.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppadcodegen.json ================================================ { "versions": [ { "git-tree": "770851c3e5af44f6fe36a0982f9550e991ac1583", "version": "2.5.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppcms.json ================================================ { "versions": [ { "git-tree": "fe93b8c6154d5159214e4757d2b0bb0d4c4184c1", "version": "2.0.1", "port-version": 0 }, { "git-tree": "44e220f750bca1f74095cf460adb1753a4deb423", "version": "1.2.1", "port-version": 7 }, { "git-tree": "e2fff22eecee1fc50eee291ea49bed2717704031", "version": "1.2.1", "port-version": 6 }, { "git-tree": "33ff6dbb307c2baceec0a21f05e098c0d15a8f88", "version": "1.2.1", "port-version": 5 }, { "git-tree": "05ef150cab0e8f56bd4f06b41baa9125d94e3451", "version-string": "1.2.1", "port-version": 4 }, { "git-tree": "9582485ed72df7ad43d20b3680e13eaeb76f76e7", "version-string": "1.2.1", "port-version": 3 }, { "git-tree": "d05a10e23b006a8c29e74810a7062f7f13bae6da", "version-string": "1.2.1", "port-version": 2 }, { "git-tree": "5759a8eadf7334bdac9cfd467786a7f178ce2b65", "version-string": "1.2.1-1", "port-version": 0 }, { "git-tree": "0fcc8a66b1985d0eb5438de868d2117465286d79", "version-string": "1.2.1", "port-version": 0 }, { "git-tree": "108a211292ada68ac2b2fba6977d4c06a74461f8", "version-string": "1.1.0-2", "port-version": 0 }, { "git-tree": "bbf85ac89ed48da6cb54c6245e68dfd806754c63", "version-string": "1.1.0-1", "port-version": 0 }, { "git-tree": "38fe906677326d42240faa24a5aa987fb78f4df3", "version-string": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppcodec.json ================================================ { "versions": [ { "git-tree": "c113d2ea70af2571436215a28fb1c880605a1c24", "version": "0.2", "port-version": 4 }, { "git-tree": "c2b218c7d3aef05b777ea2537d59b6d1aa2bbf4e", "version": "0.2", "port-version": 3 }, { "git-tree": "cb6b230ec592ba7bc54d85013007f501971f03fa", "version-string": "0.2", "port-version": 2 }, { "git-tree": "9546342ff5d08d76abe6774215ae78778494eb55", "version-string": "0.2", "port-version": 1 }, { "git-tree": "a31ff53a915e7fd45a3d7ada497f363ead024e71", "version-string": "0.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppcoro.json ================================================ { "versions": [ { "git-tree": "c12bf37fe268e0d060a6092ac597f8f8560416fa", "version-date": "2022-10-25", "port-version": 0 }, { "git-tree": "76350a224261bfe57c726e6f3a022d925cb26606", "version-date": "2020-02-28", "port-version": 3 }, { "git-tree": "a9788359b921d309c2982f3f190ac9cb8583f28a", "version-string": "2020-2-28", "port-version": 2 }, { "git-tree": "3ef6ef3cc3d6a50556d72ff1cd2c9f29e72d9769", "version-string": "2020-2-28-1", "port-version": 0 }, { "git-tree": "28e22062a5885a689dbfddafae18907a7ed33c71", "version-string": "2020-2-28", "port-version": 0 }, { "git-tree": "05da039516c924cb2ea4519cb311997d59f284e0", "version-string": "2020.2", "port-version": 0 }, { "git-tree": "e974868f0f8b8eddc3f983f9546122159d498ed5", "version-string": "2020.04", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppdap.json ================================================ { "versions": [ { "git-tree": "ab1e5e1b50226ecd6d45d53b357dac35051a8a47", "version-semver": "1.58.0-a", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppfs.json ================================================ { "versions": [ { "git-tree": "e705e7775f54232e723bcf5bb8fefb55ed4e715f", "version": "1.3.0", "port-version": 4 }, { "git-tree": "effae8e598d06cff2d1c7b0a084e6394ff1ee6ed", "version": "1.3.0", "port-version": 3 }, { "git-tree": "d018bbc2767ee2fec0398bd1131e5ae70d1ad5cf", "version": "1.3.0", "port-version": 2 }, { "git-tree": "3b904f053fa80033ffa454148ff60a3504f8c57f", "version-string": "1.3.0", "port-version": 1 }, { "git-tree": "9ba2e6a6be415048178367ecb17357c8c089fe76", "version-string": "1.3.0", "port-version": 0 }, { "git-tree": "bddd082629e8df8adcdc4fd95691fafca65be0a2", "version-string": "1.2.0-1", "port-version": 0 }, { "git-tree": "4c351e3f8fa1c6e8bdbbd1568a5d334d1eb12986", "version-string": "1.2.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppgraphqlgen.json ================================================ { "versions": [ { "git-tree": "c405bdb4821d43145534e29f36c91cfa3f7e2c96", "version": "4.5.9", "port-version": 1 }, { "git-tree": "75a00a0ed6f9b23e5b7ca132e7d6017a01deaa6a", "version": "4.5.9", "port-version": 0 }, { "git-tree": "3ad7f8b9f23c95604d6fe6cd0710af8a4ea99176", "version": "4.5.7", "port-version": 2 }, { "git-tree": "6fa915d7e50edceda898664f00c7860694433fab", "version": "4.5.7", "port-version": 1 }, { "git-tree": "4e2c566d443a75be0bc2eba8eac9b3e4580d834f", "version": "4.5.7", "port-version": 0 }, { "git-tree": "3e5e70f3ccff87b9b39412aaf1f2c0382a3d3274", "version": "4.5.5", "port-version": 0 }, { "git-tree": "8d87ba9b4921a48271c8c6abbe7e9c3f96651b4f", "version": "4.5.3", "port-version": 0 }, { "git-tree": "28aa180fcf127016dd1d8ceca4fd964228af191a", "version": "4.5.1", "port-version": 0 }, { "git-tree": "301c3f2b22160ddfc752b69253cc3745ef4320f8", "version": "4.5.0", "port-version": 0 }, { "git-tree": "52eaf92f61791cfb08e2a8848ccbf1c02748f064", "version": "4.4.1", "port-version": 0 }, { "git-tree": "7c3acfd5254a4ae0680cc3f96eef630bcaab7b36", "version": "4.3.1", "port-version": 0 }, { "git-tree": "c8d2246a2df1d89e380901d0027220ca7a91531d", "version-semver": "4.2.0", "port-version": 0 }, { "git-tree": "95b14163e5e6caf3ae1795167c8ea9503c7a8153", "version-semver": "4.1.1", "port-version": 0 }, { "git-tree": "23ec5f0002e33dd6c76bab436dec806cfde33235", "version-semver": "4.1.0", "port-version": 0 }, { "git-tree": "6f5eb4a891a143e9d56a8e4791fb87da321a561c", "version-semver": "4.0.0", "port-version": 0 }, { "git-tree": "0c1dadfa4133064be08120a65fd9e2ed3a339bb8", "version-semver": "3.6.0", "port-version": 0 }, { "git-tree": "96ba69c23cf51b45ff8fe1206a3c134b11eed8b7", "version-semver": "3.5.0", "port-version": 0 }, { "git-tree": "2aab4f37ff7fc5961bfd7b91197c03d7ceb13a4a", "version-string": "2020-12-07", "port-version": 1 }, { "git-tree": "c782c47d82aaf461f25be826dc6e5db982fbfcbe", "version-string": "2020-12-07", "port-version": 0 }, { "git-tree": "cbdc16ea22f85a727ec48ce8d7e8d359ef2f5df3", "version-string": "3.2.4", "port-version": 0 }, { "git-tree": "5b1b2287a1c76519202ff9c771fd5b742bdb22c0", "version-string": "3.2.3", "port-version": 0 }, { "git-tree": "c4cd8f004c6aa884edb1d0399fa27331bd502dfb", "version-string": "3.2.2", "port-version": 0 }, { "git-tree": "3026c5caefe5258ec4d56d27e7517c034797bb39", "version-string": "3.2.1", "port-version": 0 }, { "git-tree": "499a160a471826a9149c075318fc4d1c66af110e", "version-string": "3.2.0", "port-version": 0 }, { "git-tree": "c743b5aa0d542506881287c615b333050504f956", "version-string": "3.1.1", "port-version": 0 }, { "git-tree": "e43a98291331105e7f8afbf3f15da23b221eb597", "version-string": "3.0.4", "port-version": 0 }, { "git-tree": "358aeec17f0b217b540595bdf41d80a1c1a6392b", "version-string": "3.0.2", "port-version": 0 }, { "git-tree": "a73fd5e13009872a82ae7e98348440934d07c3ea", "version-string": "3.0.0", "port-version": 0 }, { "git-tree": "82fac752477dd25b7f69a6c18c2f1d8effda159d", "version-string": "3.0.0-pre", "port-version": 0 }, { "git-tree": "accff1ec7158de0a00d3f0266b8c67b224c4c273", "version-string": "2.1.0", "port-version": 0 }, { "git-tree": "2b511ce7745ab708729cdc0f89e228f43226e0c8", "version-string": "2.0.2", "port-version": 0 }, { "git-tree": "620f83ec562fd474124f723f6f175f8025a7f400", "version-string": "1.0.3", "port-version": 0 }, { "git-tree": "871c5ac386fa72a877f212882416bd74eab75ae7", "version-string": "1.0.0", "port-version": 0 }, { "git-tree": "d6d46aa6911761d7d4d5b8af4043bcc90a83b2a1", "version-string": "0.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppitertools.json ================================================ { "versions": [ { "git-tree": "09e4641268ed2f20ea8f506589f6f7ab4b4c6cfe", "version": "2.3", "port-version": 0 }, { "git-tree": "7ed0b0e14e29b9d30f9ae606ae2a7ef6c3dce0f8", "version": "2.2", "port-version": 0 }, { "git-tree": "b982722ea8f4a1a9d6178b9b3eacd78a7fa96590", "version": "2.1", "port-version": 3 }, { "git-tree": "8373c4fe2df5953309d3fc443ceed59553d35824", "version": "2.1", "port-version": 2 }, { "git-tree": "ee578d4182af8702a89a87b361e192d634055352", "version-string": "2.1", "port-version": 1 }, { "git-tree": "9b4908a6183e914b33014a6b2f640df56e99d9f0", "version-string": "2.1", "port-version": 0 }, { "git-tree": "6f5ac65e92858f04e97468de01d59b60c0eac058", "version-string": "2.0", "port-version": 0 }, { "git-tree": "b4f28eea9e6278533d369d168ebcff3306cd9c15", "version-string": "2019-04-14-3", "port-version": 0 }, { "git-tree": "517143a7337d455f3a71ef24c530f8b0bc227eb3", "version-string": "2019-04-14-2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppkafka.json ================================================ { "versions": [ { "git-tree": "394db17396a2011f3915423a3c085a9e3f759769", "version": "0.4.1", "port-version": 0 }, { "git-tree": "708cf007605104bc59394d47c9937b203c155b37", "version": "0.4.0", "port-version": 0 }, { "git-tree": "a33f71df221cb16bb2f7b1ce5d9cd0043a525e00", "version": "0.3.1", "port-version": 5 }, { "git-tree": "c06b1731643d212f178623c88e8319c4c40104dc", "version-string": "0.3.1", "port-version": 4 }, { "git-tree": "749993fee4605134bbe7a5e9a451c959519f4dbf", "version-string": "0.3.1", "port-version": 3 }, { "git-tree": "93a1c2dd03f298272dbb69df1920b9897adff338", "version-string": "0.3.1-2", "port-version": 0 }, { "git-tree": "bf9c72dbf5bd39d235ca8a045d20ec6c8b70758f", "version-string": "0.3.1-1", "port-version": 0 }, { "git-tree": "2bd9536d096114471009902f29fd9a47cff3b1b5", "version-string": "0.3.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppmicroservices.json ================================================ { "versions": [ { "git-tree": "2fc030a8861f6cdaf6b6521ea481b5a15e19c714", "version": "3.8.6", "port-version": 0 }, { "git-tree": "6139bba03bcfb25bcf76fca8ef1a2b3124eb63a1", "version": "3.8.4", "port-version": 0 }, { "git-tree": "b438280ccc1012bda6457141a3dea8071711ffb9", "version": "3.7.6", "port-version": 1 }, { "git-tree": "3399e4ad64f4b4c0d32f4b5df723384a1bd98dbe", "version": "3.7.6", "port-version": 0 }, { "git-tree": "4d97b6213a9f6a77e8f1062229ead80ffd4703a7", "version": "3.6.0", "port-version": 1 }, { "git-tree": "df21454215c4d4d1106621ead01a95a199163b60", "version": "3.6.0", "port-version": 0 }, { "git-tree": "0462f2f3f6c9bb3e3374b53eccc05adc00417bae", "version-string": "3.4.0", "port-version": 3 }, { "git-tree": "70e0b19ff0c3df69f82cc8aed8eb6d4add67bec2", "version-string": "3.4.0", "port-version": 2 }, { "git-tree": "601bcc5a44a0093cda891fc3b5b92a9f61e0ed03", "version-string": "3.4.0-1", "port-version": 0 }, { "git-tree": "e96000d51bc3b8a826c13033c9da1c6abefb28a7", "version-string": "v3.4.0", "port-version": 0 }, { "git-tree": "65158d87c0e23f3f588bd804481f945469c30a87", "version-string": "4.0.0-pre1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppp-reiconv.json ================================================ { "versions": [ { "git-tree": "7f95fe987fbef3134e0eda4ce765e6feed2d2e9a", "version": "3.0.0", "port-version": 0 }, { "git-tree": "48b338ed3b71e8f573134ce0ddc26921c4f3ead7", "version": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpprealm.json ================================================ { "versions": [ { "git-tree": "5902c44c16d86536ca05d1f519b27a44a24ffb2d", "version": "2.2.0", "port-version": 1 }, { "git-tree": "bbcfe69dfeb591c85bece17d0c46ff622a66f884", "version": "2.2.0", "port-version": 0 }, { "git-tree": "58fb5ebe04ba047e583ef885dcb021cc0c3caf40", "version": "2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpprestsdk.json ================================================ { "versions": [ { "git-tree": "9f5e160191038cbbd2470e534c43f051c80e7d44", "version": "2.10.19", "port-version": 3 }, { "git-tree": "fe8937b292f7e41d1a5d64a89a0176537a0911c0", "version": "2.10.19", "port-version": 2 }, { "git-tree": "a10a640d968ca2ac8f1d0df0836e3d23a7fb2199", "version": "2.10.19", "port-version": 1 }, { "git-tree": "110c2c2a08e520877aa3fa9231ab69e0a76f388d", "version": "2.10.19", "port-version": 0 }, { "git-tree": "e906f25fb64a3b11da4b1e551d63fe569fd300e3", "version": "2.10.18", "port-version": 4 }, { "git-tree": "53f896a9d80f0fd51e2645ee7deccbc0c955859a", "version": "2.10.18", "port-version": 3 }, { "git-tree": "e1fb46f5d043e3a354bfbc6f77df5df3b321f74b", "version": "2.10.18", "port-version": 2 }, { "git-tree": "b37c56224faff461184f427b95f10dc320d74d50", "version": "2.10.18", "port-version": 1 }, { "git-tree": "a4c5e50b9a83b6f9142256d1142b371da93db065", "version-string": "2.10.18", "port-version": 0 }, { "git-tree": "ff5cd3ae0efdd9346d66c0a1d0623be23eee837c", "version-string": "2.10.17", "port-version": 0 }, { "git-tree": "1fb06431492f382bb54834c567db83bcb6cabe0b", "version-string": "2.10.16-3", "port-version": 0 }, { "git-tree": "17cb3f7a61a5091087d53dbce2a8c2d328342ee8", "version-string": "2.10.16-2", "port-version": 0 }, { "git-tree": "9e6aa1f352765cab12b207b4c195221bdf43c28b", "version-string": "2.10.16-1", "port-version": 0 }, { "git-tree": "140c63764a9d13e325b065e30fb119d3f3d010a3", "version-string": "2.10.16", "port-version": 0 }, { "git-tree": "e47b918125027860a9fff53282af5b5429019c7b", "version-string": "2.10.15-1", "port-version": 0 }, { "git-tree": "2de6826ede1e8e28e1fa1f92afa1aaf0982fcede", "version-string": "2.10.15", "port-version": 0 }, { "git-tree": "62ba6e5405bdf0806d8e8408a547e5872b8cba5d", "version-string": "2.10.14-1", "port-version": 0 }, { "git-tree": "9f2e01f4c876c5915b7a685fd431a9ad98fb780f", "version-string": "2.10.14", "port-version": 0 }, { "git-tree": "338cfcef457aaff1a329f7feeab92e21b9c96e5a", "version-string": "2.10.13-1", "port-version": 0 }, { "git-tree": "e35cbfd7d6956d26a77f5cd607b129065856bb82", "version-string": "2.10.13", "port-version": 0 }, { "git-tree": "64aa62b7a6fbbcdbb81588d23665a8c9f1e933aa", "version-string": "2.10.12", "port-version": 0 }, { "git-tree": "4f987cafc2d3ab844221d48a077a766d9a3ee29e", "version-string": "2.10.11", "port-version": 0 }, { "git-tree": "191b71a47f0e6220785677363f5d5cea098b5955", "version-string": "2.10.10", "port-version": 0 }, { "git-tree": "2b2d0ceec9678fc5e7db0e7556745d8972395b0e", "version-string": "2.10.7", "port-version": 0 }, { "git-tree": "d069e89c749dedcbafcef8f7e81e8b45d0658df2", "version-string": "2.10.6-3", "port-version": 0 }, { "git-tree": "172a3a97fcd45e292496211fe91e574176bc66cf", "version-string": "2.10.6-2", "port-version": 0 }, { "git-tree": "124a27eb315f4dc7c6239ab7922472e44e9154ec", "version-string": "2.10.6-1", "port-version": 0 }, { "git-tree": "4598e0984e115a80d224b3fdf1c93f6af248daff", "version-string": "2.10.6", "port-version": 0 }, { "git-tree": "3657c1899d91376fab9f85237f0869eaf7956673", "version-string": "2.10.5", "port-version": 0 }, { "git-tree": "564f603510f30b61eae4daa39988950ed7d28bbf", "version-string": "2.10.4", "port-version": 0 }, { "git-tree": "01dc05ee45ec6244d05ff645f494d6e9c9a8d109", "version-string": "2.10.3-1", "port-version": 0 }, { "git-tree": "46e51015a1c082a2d5c05832ad39924f0470f526", "version-string": "2.10.2-1", "port-version": 0 }, { "git-tree": "8431a5fe877e18bb6429a94ae05bf472d116e032", "version-string": "2.10.2", "port-version": 0 }, { "git-tree": "78735f0f239560b88ec3ff1edd961a07f8d50e4e", "version-string": "2.10.1-1", "port-version": 0 }, { "git-tree": "28426fb1d9d848d07082a0d3e3c7e0496a4c065a", "version-string": "2.10.1", "port-version": 0 }, { "git-tree": "589c3b533d10da50f6f69cae7dde72fa78827c4e", "version-string": "2.10.0", "port-version": 0 }, { "git-tree": "fa4bd515204c443f85bae314d0913ddc02332756", "version-string": "2.9.0-4", "port-version": 0 }, { "git-tree": "0d9a0686badbc54f5ab73213aec95db2dbae88c3", "version-string": "2.9.0-3", "port-version": 0 }, { "git-tree": "6696c08718d02424257e824f37b07bff3f54eff4", "version-string": "2.9.0-2", "port-version": 0 }, { "git-tree": "c3fe95100142c708c7ba0386d2bb6e4671c3f4ed", "version-string": "2.9.0-1", "port-version": 0 }, { "git-tree": "662d0903cce0892f8322bf3a273f865572ed6f31", "version-string": "2.9.0", "port-version": 0 }, { "git-tree": "284d94938a84aa0380cf2f2f97c81281a2f0598a", "version-string": "2.8", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppslippi.json ================================================ { "versions": [ { "git-tree": "23c843204961410d36f7c7948c4bd0bdc2829117", "version": "1.4.3.18", "port-version": 0 }, { "git-tree": "6e6b71494ea0da4bc14b4078698bec25a28630e0", "version": "1.4.3.16", "port-version": 0 }, { "git-tree": "a7df05e339a6d25e29d35374e4f7ff1a4b78dbab", "version": "1.3.3.14", "port-version": 0 }, { "git-tree": "bdb4a9aadefc971d10cb8c37bd13570e3c7fab0e", "version": "1.2.3.14", "port-version": 0 }, { "git-tree": "0534d15dbe06459887eeddf859ebab443701c6d7", "version": "1.1.3.14", "port-version": 0 }, { "git-tree": "3cb6381580bcf82551009114b87021b0b1bc9885", "version": "1.0.3.14", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpptoml.json ================================================ { "versions": [ { "git-tree": "5f6dc48b141c43d40cc247fba89eb64e335808ee", "version": "0.1.2", "port-version": 0 }, { "git-tree": "6993c08a35db3961ad0543456f236e3e5a2492c9", "version": "0.1.1", "port-version": 4 }, { "git-tree": "fde8b7854f0796406eada5609cb2cc54728d73db", "version": "0.1.1", "port-version": 3 }, { "git-tree": "56b510542b03ac901331cc1d074c140ff7aaaad1", "version-string": "v0.1.1", "port-version": 2 }, { "git-tree": "f99a8c54489e45f171c05fa68d75f8cf5f6103cb", "version-string": "v0.1.1", "port-version": 1 }, { "git-tree": "b0520fd38bc9993e9a30a85f703e1a8941375a6c", "version-string": "v0.1.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpptrace.json ================================================ { "versions": [ { "git-tree": "6e7a21fc6361f3fbad277cdedc41f5b877c3e0db", "version": "1.0.4", "port-version": 0 }, { "git-tree": "48649f4a79fe4083e34178f73cb8a422fbb03b04", "version": "1.0.2", "port-version": 0 }, { "git-tree": "59b287b57c6d7bf888e5aa1780bc18de55c102bc", "version": "1.0.1", "port-version": 0 }, { "git-tree": "7e42ff4f2c66ac96369e0a14b35e4b3b4c1e2920", "version": "1.0.0", "port-version": 0 }, { "git-tree": "baebfd98a9a239aea9e199f47be5cd05287b020e", "version": "0.8.3", "port-version": 0 }, { "git-tree": "b8efffead0836127fbd64606ad51cf3c2a4b61b8", "version": "0.8.2", "port-version": 0 }, { "git-tree": "31e43d5a874d751f9b2c9532e02b3f83cae515e4", "version": "0.8.1", "port-version": 0 }, { "git-tree": "10503360b4d5decbd5890a2d458664f7c648fe9c", "version": "0.8.0", "port-version": 0 }, { "git-tree": "508408d91c5ccf6b4cb9c6937d42bbacd4d0e871", "version": "0.7.5", "port-version": 0 }, { "git-tree": "d855e5b820c9ec4659e5a7ec54c97a0e03b5858c", "version": "0.7.4", "port-version": 0 }, { "git-tree": "5e4fd6674adb80ef4f9313d1287febbcdf7c88ee", "version": "0.7.3", "port-version": 0 }, { "git-tree": "1ca7b77365f1ebaa6b02fe8aa6bac200867303cb", "version": "0.7.2", "port-version": 0 }, { "git-tree": "8ee02d28a1fa8868d0289df4ea94ac9d3f13e91f", "version": "0.7.1", "port-version": 0 }, { "git-tree": "2f6836d8eb54c24e0e1cb8fb35a6d9aeba6f8723", "version": "0.7.0", "port-version": 0 }, { "git-tree": "541c041732162108b17d32557a3d86062aede451", "version": "0.6.3", "port-version": 0 }, { "git-tree": "ee2683e17b46c1e44147deeeed227595940fa652", "version": "0.6.2", "port-version": 0 }, { "git-tree": "64f2b677dc99637be42a062d6c6a91c824230751", "version": "0.6.1", "port-version": 0 }, { "git-tree": "089e867a1e7c29c5daf0cd95ac52c4c4547040d9", "version": "0.6.0", "port-version": 0 }, { "git-tree": "892992a3b1c323fc9bd1434933956c64f0d6f54b", "version": "0.5.4", "port-version": 0 }, { "git-tree": "5b2825a7e9368cf8cb4e49eb096bafc228d4ff37", "version": "0.5.3", "port-version": 0 }, { "git-tree": "0a6d8ee3f2b6703cd13fc89da435f20ecca0759c", "version": "0.5.2", "port-version": 0 }, { "git-tree": "f262cd71efd35dba535e0c2e3a447760f06f5593", "version": "0.5.1", "port-version": 0 }, { "git-tree": "e9f72095acc3125b572269e30506eaf670cfd089", "version": "0.5.0", "port-version": 0 }, { "git-tree": "366e041c6686ceaee1053bacaacc3343ac716fab", "version": "0.4.1", "port-version": 0 }, { "git-tree": "714d5c3633b16c2b9b0fa45f224cbe2427f45f02", "version": "0.4.0", "port-version": 0 }, { "git-tree": "a47f178584948b2b0b797d538c43fb41664ca96d", "version": "0.3.1", "port-version": 1 }, { "git-tree": "a9dc1989a430b531df437790e61d09b411342ec3", "version": "0.3.1", "port-version": 0 }, { "git-tree": "620e293efe2a80f6abdf9499855b09718cd8a051", "version": "0.3.0", "port-version": 0 }, { "git-tree": "c91d65da151c8d10bd59b6980c5a98c797e68679", "version": "0.2.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppunit.json ================================================ { "versions": [ { "git-tree": "3ba054e69c791e469ff04639301c460e7f0cd33b", "version": "1.15.1", "port-version": 5 }, { "git-tree": "f41d796c28175989ae33707289645752d8b6c3f8", "version": "1.15.1", "port-version": 4 }, { "git-tree": "671d125960c9cce11a92b65b8bdfba73f85b09b5", "version": "1.15.1", "port-version": 3 }, { "git-tree": "5a65f009e556f249711d69ed679c2b570d9e79db", "version": "1.15.1", "port-version": 2 }, { "git-tree": "1384ee0101801f599b23f167aee7cfc733536022", "version": "1.15.1", "port-version": 1 }, { "git-tree": "51029930bf5c3a123e0243de6b00ae385b654d5d", "version-string": "1.15.1", "port-version": 0 }, { "git-tree": "8a2f0c4d2de8eda873fa115b8947649c79f9bc69", "version-string": "1.14.0-1", "port-version": 0 }, { "git-tree": "a5fe83f49ae012a95b89a648009d4a2907211cc7", "version-string": "1.14.0", "port-version": 0 }, { "git-tree": "4e658bc0aa6bd89be6d699b632542e1b7e2f603e", "version-string": "1.13.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpputest.json ================================================ { "versions": [ { "git-tree": "a9756663709077665befaa7b71f9278f4613ef49", "version": "4.0", "port-version": 0 }, { "git-tree": "9db5c5203e4af2efa89f513a14314e8bde14f24a", "version": "2019-9-16", "port-version": 3 }, { "git-tree": "e476f5c4b948489a33c704cbfc42d8ca60ac29e3", "version-string": "2019-9-16", "port-version": 2 }, { "git-tree": "4c3ab93d9f7c45b366a5ec0cc1cc3e69d4ef1d5c", "version-string": "2019-9-16-1", "port-version": 0 }, { "git-tree": "6bbde7b8c1dbd7e6e226f89c36495cfdb53989d5", "version-string": "2019-9-16", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppvrf.json ================================================ { "versions": [ { "git-tree": "a74e9a03fc79fa0649b071e0b4beddd6d60091ee", "version": "1.6.0", "port-version": 0 }, { "git-tree": "0431656dea427102774f8e9db188628248fde674", "version": "1.4.0", "port-version": 0 }, { "git-tree": "2995585cd1ea36aeb6f28baa437d93147c5eea9e", "version": "1.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppwinrt.json ================================================ { "versions": [ { "git-tree": "2b7e34cd0c66a4a4645fd872a27972448f69e134", "version": "2.0.250303.1", "port-version": 0 }, { "git-tree": "ef233ec464cf3483066900c8be82bd2e77266d85", "version": "2.0.240405.15", "port-version": 0 }, { "git-tree": "a2cf04c5162520cb5b3784e0cf09da9416929ab4", "version": "2.0.240111.5", "port-version": 0 }, { "git-tree": "a3c57356ebb8b59a5f12468f180728751d16581b", "version": "2.0.230207.1", "port-version": 0 }, { "git-tree": "1d3deb9b47938422fb8f885f19a677ff51a4b6bc", "version": "2.0.221121.5", "port-version": 0 }, { "git-tree": "ba79ee15a44c311721836b535804423506cbcf5d", "version": "2.0.220929.3", "port-version": 0 }, { "git-tree": "18d6860cc0a36639fe348d27ab4cb763dfc0e879", "version": "2.0.220418.1", "port-version": 0 }, { "git-tree": "191643fbd9c127658cf1724216a3b393951bd68e", "version-string": "windows-sdk", "port-version": 0 }, { "git-tree": "a0c036af150f2403027d65dd1edf67912bb15038", "version-string": "fall_2017_creators_update_for_vs_15.3-2", "port-version": 0 }, { "git-tree": "74b0e44f3bfbf43e2ce2b6a991ca2e4bb76c38bb", "version-string": "fall_2017_creators_update_for_vs_15.3-1", "port-version": 0 }, { "git-tree": "871ffe70cfbe76920953fe524c54b3740ece517f", "version-string": "fall_2017_creators_update_for_vs_15.3", "port-version": 0 }, { "git-tree": "3a1d02f146a6a6964bb2bfcce386b32653b4d522", "version-string": "Fall_2017_Creators_Update_for_VS_15.3", "port-version": 0 }, { "git-tree": "2543006744c679e58a360a5215a95e8a2d651bfe", "version-string": "spring_2017_creators_update_for_vs_15.3", "port-version": 0 }, { "git-tree": "1305a06f0e3f5e2bd2f2da5d15d74b85f1831e34", "version-string": "feb2017_refresh-14393", "port-version": 0 }, { "git-tree": "8949a78637f33efc88f24c55d1ad0af28e312536", "version-string": "1.010.0.14393.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppxaml.json ================================================ { "versions": [ { "git-tree": "85dcf687925f266a40cf039aa8696b729f7b084e", "version": "0.0.16", "port-version": 1 }, { "git-tree": "57d825ac962df4a92481b82161ea7b7088929a82", "version": "0.0.16", "port-version": 0 } ] } ================================================ FILE: versions/c-/cppzmq.json ================================================ { "versions": [ { "git-tree": "df982bd9e43dc6efa66007e070c6559baee6453b", "version": "4.11.0", "port-version": 0 }, { "git-tree": "8e7a8ca62f55304268afb4ddd9220cc39d6b4831", "version": "4.10.0", "port-version": 0 }, { "git-tree": "f50d93799a1982bbbdd22e88c7a784f9a7e38368", "version": "4.9.0", "port-version": 1 }, { "git-tree": "7f4360cc5fa484c4ecd286ef6c545bde4b01bc39", "version": "4.9.0", "port-version": 0 }, { "git-tree": "f419d44bd1ecfd65a17218ff840cb6717efc94f3", "version": "4.8.1", "port-version": 1 }, { "git-tree": "79921528ad838f11245ebfb6b3f2fe9dc4bdca26", "version": "4.8.1", "port-version": 0 }, { "git-tree": "142701d624e76cc4288ddce74c796501ba8cfa57", "version": "4.7.1", "port-version": 2 }, { "git-tree": "8f196edc3e7a6d6d26e14162ed542848d1eee4c1", "version-string": "4.7.1", "port-version": 1 }, { "git-tree": "fba9b093eb785ca3319fd77193525533d6f3ea5d", "version-string": "4.7.1", "port-version": 0 }, { "git-tree": "bf47fabe65f9440de51e6dc73ae76335d06173ea", "version-string": "4.6.0", "port-version": 0 }, { "git-tree": "0424a180db1083469d5de966ebc4210df64a220c", "version-string": "4.4.1", "port-version": 0 }, { "git-tree": "27ce123d5f695d0559583370f1678a1e21d6f765", "version-string": "4.3.0-1", "port-version": 0 }, { "git-tree": "c95be3f1cd3205c897f4f9ed4af464624de3ce4d", "version-string": "4.2.2-1", "port-version": 0 }, { "git-tree": "120c05998b1af4349cf112bf83792e38aa152081", "version-string": "4.2.2", "port-version": 0 }, { "git-tree": "3c4fee746a83a2a1c2a82e219f315e2cc322f12b", "version-string": "4.2.1", "port-version": 0 }, { "git-tree": "c405558ecd3631be2ae9c99647d9bcbe8e500416", "version-string": "0.0.0-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpr.json ================================================ { "versions": [ { "git-tree": "9831fce6b2847eab6889364642da31eb7a13f02f", "version-semver": "1.14.2", "port-version": 0 }, { "git-tree": "e22744d56b6cd9b5a5c13ff02cf078aeb0d62232", "version-semver": "1.14.1", "port-version": 0 }, { "git-tree": "1e867a6f93a4f6c3171fdb745473741e3303dbc3", "version-semver": "1.13.0", "port-version": 0 }, { "git-tree": "14814d88aa4a3b6e7d1b0d9ee2747835459a703c", "version-semver": "1.12.0", "port-version": 0 }, { "git-tree": "36cfe399344149cbea14eece7277207823c26f76", "version-semver": "1.11.2", "port-version": 0 }, { "git-tree": "dc36316122f82687e1e66ca48958296b16495e42", "version-semver": "1.11.1", "port-version": 0 }, { "git-tree": "fcd72abf1ed00a511386932feb884c2c3caa8cd7", "version-semver": "1.11.0", "port-version": 0 }, { "git-tree": "25dbacaabb8b12e7032cbad5e03434c983732f2a", "version-semver": "1.10.5", "port-version": 2 }, { "git-tree": "83379af62bd0d170537dd4ee3abba017d4a54659", "version-semver": "1.10.5", "port-version": 1 }, { "git-tree": "b734e9b119682ee4c98e2b4a127a8e29fc750844", "version-semver": "1.10.5", "port-version": 0 }, { "git-tree": "96f05ba23a7dc5ba102ba451210b2c367669c1ad", "version-semver": "1.10.2+3", "port-version": 0 }, { "git-tree": "13181536fae6181da65a2d2522a814fffb61bb83", "version-semver": "1.9.3", "port-version": 0 }, { "git-tree": "43794d1334bdf904800cc65ef0982ad4fc33d1e4", "version-semver": "1.9.2", "port-version": 0 }, { "git-tree": "85bce5170656abc1bf594034c85f406d996776b1", "version-semver": "1.9.0", "port-version": 1 }, { "git-tree": "8ad107acca744655eb0b5aa05c5e6fc1c5516347", "version-semver": "1.9.0", "port-version": 0 }, { "git-tree": "0699dd50434f04eeccbcd30ed9a3973c3143052b", "version-semver": "1.8.3", "port-version": 0 }, { "git-tree": "6a73ff58e720c30c96a1f7d12f98c9553a62a0d7", "version-semver": "1.8.1", "port-version": 0 }, { "git-tree": "ada43417fa0d4613e92e3daafc717b83079d7959", "version-semver": "1.7.2", "port-version": 0 }, { "git-tree": "5adb33b62335c55231d3cd37e302c3487721a1d8", "version-semver": "1.7.0", "port-version": 0 }, { "git-tree": "bc224c4615958fa1105b29a9d973555fda345de8", "version-semver": "1.6.2", "port-version": 1 }, { "git-tree": "96762dddaeb7d520833ddc1d47a30f26c35c9f67", "version-semver": "1.6.2", "port-version": 0 }, { "git-tree": "0a3303682963a35032b7203c69051cf2edfaf41a", "version-string": "1.5.2", "port-version": 0 }, { "git-tree": "1e06a5e6c538b8e4aadba26caf119d68181ea648", "version-string": "1.5.1", "port-version": 0 }, { "git-tree": "a85262e3d90694d3d5201a31d6f54f79f8df18aa", "version-string": "1.3.0-8", "port-version": 0 }, { "git-tree": "94d8bc574374b6624c06d9ea48fe7f1cacaf52b5", "version-string": "1.3.0-7", "port-version": 0 }, { "git-tree": "35223ace2a569565da9efdc1e47266677220711a", "version-string": "1.3.0-6", "port-version": 0 }, { "git-tree": "07bb80f5c054678cfad6daf3322bb455fc0a1d33", "version-string": "1.3.0-4", "port-version": 0 }, { "git-tree": "0d9cab7dc1a45730e981984cf2e86747103cf054", "version-string": "1.3.0-3", "port-version": 0 }, { "git-tree": "d6dad15c85eb9d8fbdffebdd22de92e2ed948f89", "version-string": "1.3.0-1", "port-version": 0 }, { "git-tree": "0023cfcf7b7b3f8da3cfe521fba5ba9d3cfdec88", "version-string": "1.3.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpu-features.json ================================================ { "versions": [ { "git-tree": "40c5147fa5fa1c44dbcb3b3e9f9722ad005dab18", "version": "0.10.1", "port-version": 1 }, { "git-tree": "aed5848d2893c921d0ecf239d89bef2eadda3eed", "version": "0.10.1", "port-version": 0 }, { "git-tree": "acdb9d954b231061db1f8ad18c21f5dd11953679", "version": "0.10.0", "port-version": 0 }, { "git-tree": "dfa189c9350c179c90db6f7dfe4352ecddcd2b6a", "version": "0.9.0", "port-version": 0 }, { "git-tree": "5e090d7020fbfe7ca8a7c2f70b6cc3f4520f2fea", "version": "0.8.0", "port-version": 1 }, { "git-tree": "b7b519ccb7eebe02086e062e34a6d3d6b0f54cde", "version": "0.8.0", "port-version": 0 }, { "git-tree": "389a30511ba8ab8c2891ee40ad9cc6ae89561739", "version": "0.7.0", "port-version": 0 }, { "git-tree": "608368f9c6d85d0278ae92687024e8bd31aecbe4", "version": "0.6.0", "port-version": 2 }, { "git-tree": "7df362e53cec246374da4f3d192bb1d4bb71b2b9", "version": "0.6.0", "port-version": 1 }, { "git-tree": "1e64c7ac2673d19f18e8bc447b14e3ae7f842c81", "version": "0.6.0", "port-version": 0 }, { "git-tree": "e622c89147a667757495a82dfd7e4239b2782bd7", "version-string": "0.4.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpuid.json ================================================ { "versions": [ { "git-tree": "b90d34b2f1c0beb99267cb7ad58ffe81b90cd471", "version": "0.8.1", "port-version": 0 }, { "git-tree": "12033f70664a516b6f698d62ee473395daba302b", "version": "0.7.0", "port-version": 1 }, { "git-tree": "af4cf6558e28039e5074af69e24747dfe46bd43f", "version": "0.7.0", "port-version": 0 }, { "git-tree": "fe355f57cd08fb6530cd893d7d3c130a15f2ce13", "version": "0.6.4", "port-version": 0 }, { "git-tree": "38d8b8a97510236c2a41d0f903b609be0d3cf580", "version": "0.6.2", "port-version": 0 }, { "git-tree": "ffa19cf0fffa902983c32201f6f7b9cd36222c23", "version": "0.5.1", "port-version": 4 }, { "git-tree": "aa97f1bac97c79fa1595ed1a4b141c209fc375e8", "version": "0.5.1", "port-version": 3 }, { "git-tree": "ad9738f7afc11f1fa0cea524f4d79dd6cc644e7c", "version": "0.5.1", "port-version": 2 }, { "git-tree": "7b5a58587efff685ef5c166bcfba98542606f8ca", "version": "0.5.1", "port-version": 1 }, { "git-tree": "65cb7ff3fc46a78367e4c700b587e8093386e4b3", "version": "0.5.1", "port-version": 0 }, { "git-tree": "c85228de687c3b4748a8867c1fbf82f0b64c8d9c", "version-string": "0.4.1", "port-version": 2 }, { "git-tree": "f802d870a436a93b77d88e007088880a41432dad", "version-string": "0.4.1-1", "port-version": 0 }, { "git-tree": "0c783b61ec291c85d2a70427ae956b9bd2fc198e", "version-string": "0.4.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cpuinfo.json ================================================ { "versions": [ { "git-tree": "08859410777b58d1edbcf262d1ae2db0e95ead38", "version-date": "2025-09-06", "port-version": 0 }, { "git-tree": "1a3c239a30cc457f10b8d6cca995bc2c7db9b150", "version-date": "2025-07-25", "port-version": 0 }, { "git-tree": "f1b7e10e1de1dcd09118adc19c5bc831417dcc8c", "version-date": "2022-07-19", "port-version": 3 }, { "git-tree": "b48fc0cf93034d06bb34c5f83da8be921006b283", "version-date": "2022-07-19", "port-version": 2 }, { "git-tree": "fd82cda8111eabcbc6317c215c4ad58b9778e7e0", "version-date": "2022-07-19", "port-version": 1 }, { "git-tree": "5ee1eff9fe6cfa584b697e71ce7081a69ef2c51d", "version-date": "2022-07-19", "port-version": 0 }, { "git-tree": "11ac581a5c1307b2039cf9db3933c2aeffb7a923", "version-date": "2022-04-02", "port-version": 1 }, { "git-tree": "69febccb10ae5b789dd6c5af2b85740617fc34f4", "version-date": "2022-04-02", "port-version": 0 }, { "git-tree": "28dbefcc9131ff8ce6fa939f7fcdb5cf0d4ee7fd", "version-date": "2021-04-04", "port-version": 0 }, { "git-tree": "4e4c0561ce8cb5f57c0a63ce070598dc1544acde", "version-string": "2019-07-28-1", "port-version": 0 }, { "git-tree": "cf29596ba95d0239461c492583384218b5e8a431", "version-string": "2019-07-28", "port-version": 0 } ] } ================================================ FILE: versions/c-/cr.json ================================================ { "versions": [ { "git-tree": "992f08365509f46e7d51f252317ef8b6da7e11a9", "version-date": "2020-04-26", "port-version": 2 }, { "git-tree": "67c46561394de15aee2a56d57590eeef1060019d", "version-string": "2020-04-26", "port-version": 1 }, { "git-tree": "2c71bf1df729facbf1f2ffcf77341ff901b00eda", "version-string": "2020-04-26", "port-version": 0 } ] } ================================================ FILE: versions/c-/crashpad.json ================================================ { "versions": [ { "git-tree": "45929b16dd46deb0333a00975263a3ee7fafbcf9", "version-date": "2024-04-11", "port-version": 10 }, { "git-tree": "3db57798ca8f3d8309c3564cc7a8a1ed8955bf63", "version-date": "2024-04-11", "port-version": 9 }, { "git-tree": "a996b10d98428c6f61d1a8d75dd4b4d5509c37dd", "version-date": "2024-04-11", "port-version": 8 }, { "git-tree": "dc8e0803320706e4f2b4a4fce0f457424c6c914d", "version-date": "2024-04-11", "port-version": 7 }, { "git-tree": "f4a723194e550246d2a2b2717d0d7d1135e09fb0", "version-date": "2024-04-11", "port-version": 6 }, { "git-tree": "8d69f9f6012875359ec0ec69b8808f80a4cf944b", "version-date": "2024-04-11", "port-version": 5 }, { "git-tree": "3e260774308b256e5831185d41b76510c7268782", "version-date": "2024-04-11", "port-version": 4 }, { "git-tree": "3c65a9330a2d6d53ab6afad83ec165e708b1cc4e", "version-date": "2024-04-11", "port-version": 3 }, { "git-tree": "a8c3dac7327cb12c8f1885797a7d63ed99b6963c", "version-date": "2024-04-11", "port-version": 2 }, { "git-tree": "43c2573b9400b543b26e7c9fbb091bdfefa51b79", "version-date": "2024-04-11", "port-version": 1 }, { "git-tree": "faece66eb2a9a6f95f5a11c7f4ebd3cefd70d54f", "version-date": "2024-04-11", "port-version": 0 }, { "git-tree": "d3d6e9473bb3047d0ba5db163765218b013809c1", "version-date": "2022-09-05", "port-version": 6 }, { "git-tree": "f7161b19eece4ad2643d6b2baafdb5fd6ec57572", "version-date": "2022-09-05", "port-version": 5 }, { "git-tree": "63c757af964d6d69f6abdeb0a3849889ad3531a9", "version-date": "2022-09-05", "port-version": 4 }, { "git-tree": "699f5caaac594c10928ddf73ba45e64ad764252f", "version-date": "2022-09-05", "port-version": 3 }, { "git-tree": "37f155d62394f7faae4d48be6efcd81fce1587eb", "version-date": "2022-09-05", "port-version": 2 }, { "git-tree": "f7ead3d493577856543add942c07776fe60ded9e", "version-date": "2022-09-05", "port-version": 1 }, { "git-tree": "6d39be1cd402a6147c057802a84ffdc1715d6384", "version-date": "2022-09-05", "port-version": 0 }, { "git-tree": "e1338388a039df55d6812726dd2e638684a19509", "version-date": "2022-04-16", "port-version": 3 }, { "git-tree": "52ddbe860d52d69d2c0f80001528f9edf961e58b", "version-date": "2022-04-16", "port-version": 2 }, { "git-tree": "aa3803e8f14e1a0467a2aa509403d9fc8c56e159", "version-date": "2022-04-16", "port-version": 1 }, { "git-tree": "448abcac90e97d8b5ee03843775dd7fcba971979", "version-date": "2022-04-16", "port-version": 0 }, { "git-tree": "88ee612aa949155b1e363bb710578811d3283033", "version-date": "2020-03-18", "port-version": 2 }, { "git-tree": "1968933546b1d1a71dbe8869f68f13d014fcb943", "version-string": "2020-03-18", "port-version": 1 }, { "git-tree": "0de198199fe4c71142640bb10fd9fffe28a79349", "version-string": "2020-03-18", "port-version": 0 } ] } ================================================ FILE: versions/c-/crashrpt.json ================================================ { "versions": [ { "git-tree": "e0a2e10f1d8c092c8697339723cb5ffa55560112", "version": "1.4.3", "port-version": 4 }, { "git-tree": "bb5e94d69da827d776c42545cdda4ca0e5565629", "version": "1.4.3", "port-version": 3 }, { "git-tree": "896d96ee0613edabd92048142803845fa11baa68", "version": "1.4.3", "port-version": 2 }, { "git-tree": "ad55102e0d167bb457349e5b2b4cec75efc45a91", "version": "1.4.3", "port-version": 1 }, { "git-tree": "671b2d16a22bdaf8718e15fa13554c838b6e6ce7", "version-string": "1.4.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/crc32c.json ================================================ { "versions": [ { "git-tree": "65cab652a6fffba3e3b25332d7935bf57aa3c4f0", "version": "1.1.2", "port-version": 2 }, { "git-tree": "9704ed68003973bdffcd5224f720b97c424d1fa5", "version": "1.1.2", "port-version": 1 }, { "git-tree": "dcfaa85ef9b67b94cf51378922832fff7cf43333", "version": "1.1.2", "port-version": 0 }, { "git-tree": "c170749f5731ca44674e241167fa0955a461256a", "version-string": "1.1.1", "port-version": 1 }, { "git-tree": "0e0e15c0dc05913aa952e8d0ce68b145ce8cdfdf", "version-string": "1.1.1", "port-version": 0 }, { "git-tree": "3283a8e4667c1f13418f951e474d576a4fc01f88", "version-string": "1.1.0", "port-version": 0 }, { "git-tree": "f389d4282afd60d710f395e3aa3bff2a98e388e3", "version-string": "1.0.7-1", "port-version": 0 }, { "git-tree": "3f24ca27d2d2f730b51e320676248d41445342e0", "version-string": "1.0.7", "port-version": 0 }, { "git-tree": "745d73eb1ee20976f49f7d256dab79b1b0c48afe", "version-string": "1.0.6-1", "port-version": 0 }, { "git-tree": "1e2099cd49db892b57d25113c7dc846d1a2b0fea", "version-string": "1.0.6", "port-version": 0 }, { "git-tree": "e827e0e16d52ac19ce656dd1456817eec645d0cb", "version-string": "1.0.5-1", "port-version": 0 }, { "git-tree": "63c19d9c0702e151f94c895f074df8ae1d115c17", "version-string": "1.0.5", "port-version": 0 } ] } ================================================ FILE: versions/c-/crcpp.json ================================================ { "versions": [ { "git-tree": "907d42101b451a0e70ab9044b669bdf6ca687560", "version": "1.2.1.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/crfsuite.json ================================================ { "versions": [ { "git-tree": "fadb490144cc26196613b2ca3c05f2ebff67026b", "version-date": "2020-08-27", "port-version": 1 }, { "git-tree": "8f290a396def84e4a24ca49e29d17d7218b8e410", "version-date": "2020-08-27", "port-version": 0 }, { "git-tree": "b74e8dd91be02cf5bbbd6f6387d66468fe579e8e", "version-date": "2019-07-21", "port-version": 3 }, { "git-tree": "973286d78761d5a06d7188a21df0e15124dbf610", "version-date": "2019-07-21", "port-version": 2 }, { "git-tree": "65bc9733064d028bb4f2960d824862263f74bfde", "version-date": "2019-07-21", "port-version": 1 }, { "git-tree": "779f57b3fd1e0e2a15df5baf4488ef149f7f0cfd", "version-string": "2019-07-21", "port-version": 0 } ] } ================================================ FILE: versions/c-/croncpp.json ================================================ { "versions": [ { "git-tree": "13457e7a1989326119d3e30d7ce8c4d2809697c4", "version-date": "2023-03-30", "port-version": 0 }, { "git-tree": "0fb4aefe39d2d695cb5cc89a4f3c92e4229605f5", "version-date": "2020-09-04", "port-version": 3 }, { "git-tree": "79f67dcb192287955f663db8cc36f73455f78990", "version-string": "2020-09-04", "port-version": 2 }, { "git-tree": "efc67eae1ad2b9fa1c1655c977b0800ef2113313", "version-string": "2020-09-04", "port-version": 1 } ] } ================================================ FILE: versions/c-/crossdb.json ================================================ { "versions": [ { "git-tree": "71458aa6539a1f36956b9fcc35ab3c0e35cc9f30", "version": "0.14.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/crossguid.json ================================================ { "versions": [ { "git-tree": "39a8ec44dcb709796a0ecdc4c170f67ad5ad1175", "version-date": "2021-10-22", "port-version": 3 }, { "git-tree": "93714099ddf83b2f3437a080c8acc08ff74cbe37", "version-date": "2021-10-22", "port-version": 2 }, { "git-tree": "4e53633ff35a2bcfb9076aee3e0d740406e788d3", "version-date": "2021-10-22", "port-version": 1 }, { "git-tree": "5880c01322b2c2cd08e9b573b769260696b2365d", "version-date": "2021-10-22", "port-version": 0 }, { "git-tree": "42cc44d6649705d3c104e9753f3ba1bb4217ebc8", "version-string": "0.2.2-2018-06-16", "port-version": 2 }, { "git-tree": "4b44e01ccbe952e12c3be478e0d5bc4340f4c9df", "version-string": "0.2.2-2018-06-16-1", "port-version": 0 }, { "git-tree": "879a9da5c388f9a0e44d915f1c1fd9134a51d273", "version-string": "0.2.2-2018-06-16", "port-version": 0 } ] } ================================================ FILE: versions/c-/crow.json ================================================ { "versions": [ { "git-tree": "dd3873667277f4f5cfeee4775bea488199d7a5d6", "version": "1.3.0", "port-version": 1 }, { "git-tree": "967d7ceb1140975fd062171ec90f1be240c59d63", "version": "1.3.0", "port-version": 0 }, { "git-tree": "6124f964dc3d0988dd0753968ad38b6d2d7c1c39", "version": "1.2.1.2", "port-version": 0 }, { "git-tree": "a44a1c72d91d4799b509c35eaa5ee74aea4617fa", "version": "1.2.0", "port-version": 0 }, { "git-tree": "da63a4872320e46bc7da9abdd06050fa8e02ca20", "version": "1.1.0", "port-version": 0 }, { "git-tree": "e9dab5ab4d56d0174fbf2c661e2fab60a1d4e95c", "version": "1.0-5", "port-version": 0 }, { "git-tree": "e21a4fb8fd849bfe3ee8d77dbdb3a4953dd08d55", "version": "1.0-1", "port-version": 0 }, { "git-tree": "7e3e9d55fe174a7a7fc05c8afdac245eea49a654", "version": "0.3.4", "port-version": 0 }, { "git-tree": "a843201119b89aaf74f30b1b74e1309b71ce0310", "version": "0.3.3", "port-version": 0 }, { "git-tree": "d2719e110ecca722270c61d66f274dee1a1eb1e4", "version": "0.3.2", "port-version": 1 }, { "git-tree": "c0d5207375bcbf798d3478eef7e00ae5206e4b04", "version": "0.3.2", "port-version": 0 }, { "git-tree": "4c50547dfc3c5f5bf5a08887d6515e51a7203130", "version": "0.3.1", "port-version": 0 }, { "git-tree": "4a0d69a7e34aa3d77de7ba2c01ce45ae730478a1", "version": "0.3", "port-version": 0 }, { "git-tree": "8af7b33a4f59eec6613b9d8e55f9aac403bb7490", "version": "0.2", "port-version": 0 }, { "git-tree": "5759b9679960c34a0e663f83ad32ba2e1320e2d5", "version-string": "0.1-1", "port-version": 0 }, { "git-tree": "2bda17839e15cd3eb12caaaf15257c289a234e4e", "version-string": "0.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cryptopp.json ================================================ { "versions": [ { "git-tree": "57a80c49ab9758a0c7138e0be740722af1b251a5", "version": "2026-03-02", "port-version": 0 }, { "git-tree": "396be588d8d2e396ed25e084935a0a1be6f4fbb0", "version": "2025-12-01", "port-version": 0 }, { "git-tree": "7a43c1863687809d90c65c768b70eb0add5aacc6", "version": "8.9.0", "port-version": 2 }, { "git-tree": "d0e6dbcd3cb14acffac5ce963dc8fcd1178101fc", "version": "8.9.0", "port-version": 1 }, { "git-tree": "48788514ae1e84dea9055e603527c91f92c124fb", "version": "8.9.0", "port-version": 0 }, { "git-tree": "ecb46c9c0fbce15e4238443a6d93275a052b3c9e", "version": "8.8.0", "port-version": 0 }, { "git-tree": "21a45a2fb90fe76c026e8033c58c699d63cbf4e9", "version": "8.7.0", "port-version": 3 }, { "git-tree": "20b463ab90fac219ea14ff22661b9afbff15b54a", "version": "8.7.0", "port-version": 2 }, { "git-tree": "8b3216451005bcb10fe92fef34a00abead309247", "version": "8.7.0", "port-version": 1 }, { "git-tree": "7e3fcbde366bc4af8cc2082053b671352963410d", "version": "8.7.0", "port-version": 0 }, { "git-tree": "1aecd97d5b5c29bc51bab7892b15035a8e24002d", "version": "8.6.0", "port-version": 2 }, { "git-tree": "9d23fcfb280c3508aabac1d7e0f83440dcb8627f", "version": "8.6.0", "port-version": 1 }, { "git-tree": "0d47535ac1767600626347e025079450a909c6ba", "version": "8.6.0", "port-version": 0 }, { "git-tree": "2092d648b56a683bcd8b3e72f4adc3a966956c17", "version-string": "8.5.0", "port-version": 1 }, { "git-tree": "c8aee6279ffed7e7e1f9037c15937643c315a999", "version-string": "8.5.0", "port-version": 0 }, { "git-tree": "ad41b9e4eb55001f640b5aab811f288862829d70", "version-string": "8.2.0-2", "port-version": 0 }, { "git-tree": "1f72925199ecfcd7e2b929372af100e95c80bc2e", "version-string": "8.2.0-1", "port-version": 0 }, { "git-tree": "c38385f64a782e04b07d8d52270238d7c67531c0", "version-string": "8.2.0", "port-version": 0 }, { "git-tree": "9abae7256650f7984be9a8842e2065632fa04873", "version-string": "8.1.0-2", "port-version": 0 }, { "git-tree": "301eaab34677f43ea45fc8a3595b95e1dba667b9", "version-string": "8.1.0-1", "port-version": 0 }, { "git-tree": "6214913a24800179f96967ff011b4971f0ba37c4", "version-string": "8.1.0", "port-version": 0 }, { "git-tree": "ed9ae9c16bf325ce8174bca07b5c631d67a476a4", "version-string": "8.0.0", "port-version": 0 }, { "git-tree": "1ba7e947a88e4974ef1cfa79fd593ac76fdec852", "version-string": "7.0.0", "port-version": 0 }, { "git-tree": "2092d28a83d075bd3e55502cd553bdc05bfbe5d9", "version-string": "6.1.0-2", "port-version": 0 }, { "git-tree": "9120c6cf23a2f6d11b278b84dca0293f339a4335", "version-string": "6.1.0-1", "port-version": 0 }, { "git-tree": "2ea8fd174557a9efb2964a7c725f04b599caac12", "version-string": "5.6.5-1", "port-version": 0 }, { "git-tree": "48bdda8cdb96b1feeb88c61c839ea06db57c723d", "version-string": "5.6.5", "port-version": 0 } ] } ================================================ FILE: versions/c-/cserialport.json ================================================ { "versions": [ { "git-tree": "50ab9ce4b8e7cb13ad8b17f3e9310ea0d9997a04", "version": "4.3.3", "port-version": 0 }, { "git-tree": "147cf49ff6bcecc86c1644cd0db7e54517eec4fa", "version": "4.3.1", "port-version": 0 }, { "git-tree": "842df8d9c0fac5c130724643392f828bb20a6f97", "version": "4.3.0", "port-version": 1 }, { "git-tree": "28d4a472a2587c890738ebb66b79bfd3ab052ac9", "version": "4.3.0", "port-version": 0 }, { "git-tree": "d77a5c24de68d33668252720bd2450ff86b1dc94", "version": "4.2.1", "port-version": 0 }, { "git-tree": "40b712199f0d2fdacdb68dae7bbf03a0bcab7918", "version": "4.1.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cspice.json ================================================ { "versions": [ { "git-tree": "fed2cab83c9bc034a31b97b047a3dcea35a762ff", "version": "67", "port-version": 4 }, { "git-tree": "a87828fb249f8a2f9d6ded34e0c8e79f4349d842", "version": "67", "port-version": 3 }, { "git-tree": "1da82692c98d788552288f73818983fc3b561b7b", "version": "67", "port-version": 2 }, { "git-tree": "2ad682ffd7b5b7cb6316fd77dc99dda7e6100731", "version": "67", "port-version": 1 }, { "git-tree": "1c8f251f7712ff12e7b94d059a56eff69915fb43", "version-string": "67", "port-version": 0 }, { "git-tree": "2b03824386796440e0b529f4e29413686f0fc5d5", "version-string": "66", "port-version": 5 }, { "git-tree": "de8a1c53f62f307ac805ace26e3b9c9ece91829a", "version-string": "66", "port-version": 4 }, { "git-tree": "743b26ef365d681a5252d2d72a58aa8c2e76d80b", "version-string": "66", "port-version": 3 }, { "git-tree": "3c62eb98ca2a5c0df94fbab74649c3af954232d5", "version-string": "66", "port-version": 2 }, { "git-tree": "037c7e4203b58cc2febead341cc17e9abf37c117", "version-string": "66-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctbench.json ================================================ { "versions": [ { "git-tree": "9b68d37265af074654888085af613d923a1a4a1c", "version": "1.3.4", "port-version": 2 }, { "git-tree": "86059d5165c609870e2ea47c287c60935fb3548c", "version": "1.3.4", "port-version": 1 }, { "git-tree": "65af527a36df8e5a96b1f21cb62a1ac8c6b95518", "version": "1.3.4", "port-version": 0 }, { "git-tree": "a53ddf49e4e46a3e876af7be40a08c6016ecc5b7", "version": "1.3.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctbignum.json ================================================ { "versions": [ { "git-tree": "6906803a0f8c9dc9c86a05bf2cc726a5064208e5", "version-date": "2019-08-02", "port-version": 5 }, { "git-tree": "e343f08ae948a498ea8aba148c3dacda6da0fb3f", "version-date": "2019-08-02", "port-version": 4 }, { "git-tree": "b3b10f0256bff010503b6ebcbb966235308947f2", "version-date": "2019-08-02", "port-version": 3 }, { "git-tree": "555cc4f7caade3a6d817fd65d15ff2274ed0f5eb", "version-string": "2019-08-02", "port-version": 2 }, { "git-tree": "88ce498c3810046ebfe6500157691bf21a85eb07", "version-string": "2019-08-02", "port-version": 1 }, { "git-tree": "ff7d4b1e86ce05b4b86cf72977181f1173b68ba1", "version-string": "2019-08-02", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctemplate.json ================================================ { "versions": [ { "git-tree": "2819a29b40ae309a7f6355cdf1ca03b23ef8e4c9", "version-date": "2020-09-14", "port-version": 5 }, { "git-tree": "b3f163cc201cb05bf66a1c4880428f9f7be4170b", "version-date": "2020-09-14", "port-version": 4 }, { "git-tree": "d0cd0a34b622b661af41d0f829ad22e406cd6c7f", "version-date": "2020-09-14", "port-version": 3 }, { "git-tree": "491ab782407b38835b9a555dc77e6d3af485fdae", "version-date": "2020-09-14", "port-version": 2 }, { "git-tree": "49845dc04f38d16b9c148162fc1457ed78608ae7", "version-string": "2020-09-14", "port-version": 1 }, { "git-tree": "96aee13ec21957f5d9253a4e382f1896c312d7e8", "version-string": "2020-09-14", "port-version": 0 }, { "git-tree": "c3864e4d9a627e75fb34b84351242574dad9c6df", "version-string": "2017-06-23-44b7c5-4", "port-version": 0 }, { "git-tree": "a43674ee869a388a4e1dcab7a5fb727ad18de7a0", "version-string": "2017-06-23-44b7c5-3", "port-version": 0 }, { "git-tree": "4d9b580f94963badba330f29c958021148bd1f31", "version-string": "2017-06-23-44b7c5-2", "port-version": 0 }, { "git-tree": "8bca75088fb256f77df0783c8c0687ae5a3a0fe0", "version-string": "2017-06-23-44b7c5b918a08ad561c63e9d28beecb40c10ebca", "port-version": 0 } ] } ================================================ FILE: versions/c-/cthash.json ================================================ { "versions": [ { "git-tree": "ce03bfc8d7ae54abc955c37df336d6bffc3b5def", "version-date": "2024-11-16", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctp.json ================================================ { "versions": [ { "git-tree": "711ec7abed5a21f5dbb07573e9895a9611fc6a11", "version-string": "6.6.1_P1_20210406_se", "port-version": 4 }, { "git-tree": "11ff3d437cca5956d99f8690143f12a0ebd5e839", "version-string": "6.6.1_P1_20210406_se", "port-version": 3 }, { "git-tree": "7160f9a456cfd057dee1cb0a92f92a4f16876fe8", "version-string": "6.6.1_P1_20210406_se", "port-version": 2 }, { "git-tree": "abd1e961a096126b01df7a0b3362d5e8223ea9d7", "version-string": "6.6.1_P1_20210406_se", "port-version": 1 }, { "git-tree": "253cd7c440e8e50fc940c7d2812a6d39b371dbf2", "version-string": "6.6.1_P1_20210406_se", "port-version": 0 }, { "git-tree": "8536b8c9fe4d95bb93ebd961e1e1dadc9dd6e4e9", "version-string": "6.3.15_20190220_se", "port-version": 1 }, { "git-tree": "e785bad86454f3e0a8fef0705cfadb061003834c", "version-string": "6.3.15_20190220_se", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctpg.json ================================================ { "versions": [ { "git-tree": "ce005721070c743c453fed6b2dcd3b2f2d351ba9", "version": "1.3.7", "port-version": 2 }, { "git-tree": "3cbcbbd2011b26de3ddec2aca13ee915c838021a", "version": "1.3.7", "port-version": 1 }, { "git-tree": "3a1f2a1050353e56b539e4bd98b40853ca6b59ed", "version": "1.3.7", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctre.json ================================================ { "versions": [ { "git-tree": "33e1d6f404d8374a60c29037b3b5b2516a73ca88", "version": "3.10.0", "port-version": 0 }, { "git-tree": "46132b3dc836ad3d4bd3be6a83ecef318800e844", "version": "3.9.0", "port-version": 0 }, { "git-tree": "0de95344cb3e667b9514cc77fefe7597648e7729", "version": "3.8.1", "port-version": 0 }, { "git-tree": "70b866377c945c0c024c7379e0f06b00b898fcfb", "version": "3.8", "port-version": 0 }, { "git-tree": "f1277ac9132e7a6c91bdfd6cc355eccedbb28732", "version-semver": "3.7.2", "port-version": 0 }, { "git-tree": "e58aea3dd5570f3a2024f9d0a407e0e27e525dae", "version-semver": "3.7.1", "port-version": 0 }, { "git-tree": "7b8b42356b574541c92ad5509ced7b325361f8b8", "version-semver": "3.6.0", "port-version": 0 }, { "git-tree": "fd57f6d1ec68aaa67e90f3382cce5668c5ecff5a", "version-semver": "3.4.1", "port-version": 0 }, { "git-tree": "e50c31381fad0a8a4ac062531eaef4f728c2a469", "version-string": "2.10", "port-version": 0 }, { "git-tree": "646f2e3d033ffb68de2b1ae551c1dbae3f0b1cda", "version-string": "2.7", "port-version": 0 }, { "git-tree": "093722ff97cf6e82157693f8d93ad91ef414bbb9", "version-string": "2.6.4", "port-version": 0 }, { "git-tree": "0fec09f20afaba210be40d91b71723541e2ab16e", "version-string": "2.2-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/ctstraffic.json ================================================ { "versions": [ { "git-tree": "e97cd84703f8c6e44d38be51561113c564590876", "version": "2.0.3.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cub.json ================================================ { "versions": [ { "git-tree": "c7b6e0430fa6c7701a81090f35c8344c7889d790", "version": "2.1.0", "port-version": 0 }, { "git-tree": "d6fe5c753cf67eeb18b536ea933864d15a88331d", "version": "1.16.0", "port-version": 0 }, { "git-tree": "ec58db0c42a8978215a38d7e9ac938dd1b936c1f", "version": "1.12.0", "port-version": 0 }, { "git-tree": "3d12aea8561ac6b5566b5ade8379993b82d8d6b1", "version-string": "1.8.0-1", "port-version": 0 }, { "git-tree": "62e5e295c5bd4102785083c15f4e88725cf3890e", "version-string": "1.8.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cubeb.json ================================================ { "versions": [ { "git-tree": "9eac0d45fa24887b010ffdd09284d936950d6b0e", "version-date": "2023-09-26", "port-version": 1 }, { "git-tree": "734318573d1aab99ec902221d209cd01940b37e7", "version-date": "2023-09-26", "port-version": 0 }, { "git-tree": "7d7979530500923609dae0ce99dc4a63fea13056", "version-date": "2022-07-22", "port-version": 0 } ] } ================================================ FILE: versions/c-/cuda-api-wrappers.json ================================================ { "versions": [ { "git-tree": "39a8d3534f1bf09d31f2549c086d30338466dc9a", "version": "0.8.1", "port-version": 0 }, { "git-tree": "11274aecf51310841c0165bc3d3b6c77525dd38e", "version": "0.8.0", "port-version": 0 }, { "git-tree": "e1c89070ea5d1eb68494361a8e3c88fa4a15de77", "version": "0.7.1", "port-version": 0 }, { "git-tree": "8841506763b79b5ff664faf93faf3919ffb5b06f", "version": "0.6.9", "port-version": 0 }, { "git-tree": "7a504ca0e13729c26c4df96ba5b7a321069219be", "version": "0.6.7", "port-version": 0 }, { "git-tree": "f31ca06768d00b72f8387dce98f3a8d2d867cfcb", "version": "0.6.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/cuda.json ================================================ { "versions": [ { "git-tree": "d7709c275f8ce58e6d1b4c71b8d37fba4a9a0377", "version": "10.1", "port-version": 13 }, { "git-tree": "85508d056c8d9e006b455ee71e29ab015abd8d63", "version": "10.1", "port-version": 12 }, { "git-tree": "1d190177076c48287897d233ae2fa8c241f28f40", "version": "10.1", "port-version": 11 }, { "git-tree": "4e8939c3547a570a73098c091da7b9e28f71015c", "version": "10.1", "port-version": 10 }, { "git-tree": "7895738a8a164beddfb53c4c69352b202d8e13e9", "version-string": "10.1", "port-version": 9 }, { "git-tree": "43b8008115ab934b4cf1b36c38bb02ed845712bd", "version-string": "10.1", "port-version": 8 }, { "git-tree": "f81f6321111048d45f0c5e41644ee26a0ccb9c13", "version-string": "10.1", "port-version": 7 }, { "git-tree": "0022275f9aa9e2d70f6a35d7e28fb27ab21fd13e", "version-string": "10.1", "port-version": 5 }, { "git-tree": "b692639f7b4b82f90b80e33dc3d6da2983975ab5", "version-string": "10.1", "port-version": 4 }, { "git-tree": "ca5aa9e76b7b91b7104ad108b448dbf1719b5530", "version-string": "10.1", "port-version": 3 }, { "git-tree": "e21c4698f343b201e52e8fc6163a4573bf94b274", "version-string": "10.1", "port-version": 2 }, { "git-tree": "896402a9ab10ead504697b7fd62992ce379f1f13", "version-string": "10.1-1", "port-version": 0 }, { "git-tree": "4b8ccbadfeb5ec1148135d0620c203f6ceeaf813", "version-string": "10.1", "port-version": 0 }, { "git-tree": "aac6a595a656340084cd13ee7aa8e39308e60cb9", "version-string": "9.0", "port-version": 0 }, { "git-tree": "18842eaf8f339b66d8bf7bc1e1cb52f7d0674db0", "version-string": "8.0-1", "port-version": 0 }, { "git-tree": "aa51016a592261707294e823934d0464b988d3ac", "version-string": "8.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cudnn-frontend.json ================================================ { "versions": [ { "git-tree": "004c1e5af6b61b9890417cf355d6c0f275de0c3f", "version-semver": "1.15.0", "port-version": 0 }, { "git-tree": "57fa4438b922e0fcef12c16052b407d20132828d", "version-semver": "1.14.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cudnn.json ================================================ { "versions": [ { "git-tree": "48e410f08565c010facbe07075833c6ca863f781", "version": "7.6.5", "port-version": 16 }, { "git-tree": "1708ed3cc056c2d863c3e4e7901b057e083eeaa4", "version": "7.6.5", "port-version": 15 }, { "git-tree": "8e17b3aaaea3a6da5858cb6202c3e2cd8e9f9a5e", "version": "7.6.5", "port-version": 14 }, { "git-tree": "92d21a780ad42ae4fa7aaf9481d8a43a832d6e4c", "version": "7.6.5", "port-version": 13 }, { "git-tree": "a8687f7d446d544d2111cac62f5aa36681c2b223", "version": "7.6.5", "port-version": 12 }, { "git-tree": "78074072b367abf31b9f86ee6718309244ed1b50", "version": "7.6.5", "port-version": 11 }, { "git-tree": "406576a41668942aa5f0be5ee12ea54239be2d84", "version": "7.6.5", "port-version": 10 }, { "git-tree": "77f6c8d8f5669619fde9b2bc596a406d0fee2839", "version": "7.6.5", "port-version": 9 }, { "git-tree": "b29eb71b5187d6f0991ede2a56e2fda57e6cb520", "version": "7.6.5", "port-version": 8 }, { "git-tree": "cfd70db6f58e45dc96c44a61833d821d987c1588", "version": "7.6.5", "port-version": 7 }, { "git-tree": "aa008ef1b1c958146532dbbdabd76b62f9558653", "version": "7.6.5", "port-version": 6 }, { "git-tree": "62f2616b19fe2b3b7dbc8a81e190900819f2ba3e", "version": "7.6.5", "port-version": 5 }, { "git-tree": "c23360a6cfba2b5c8962c0c106d165ca31224162", "version": "7.6.5", "port-version": 4 }, { "git-tree": "00e54079329e9cc4f1f623dce3bc39b0f19e958d", "version-string": "7.6.5", "port-version": 3 }, { "git-tree": "5581791a9ad35390ed30629985b3863cf8b85bba", "version-string": "7.6.5", "port-version": 2 }, { "git-tree": "495cc586b4bfdb28c3c339d3f471b9fbfc8bc481", "version-string": "7.6.5", "port-version": 1 }, { "git-tree": "681f177cf063d3c8e655a18011c158ffad49fdbd", "version-string": "7.6.5", "port-version": 0 }, { "git-tree": "8f40428fb1779b79fbbb08e3e52e984fe656439d", "version-string": "7.6", "port-version": 4 }, { "git-tree": "05c5ad2600e1b2c17c8ddd8cc4fd54f360c01f2e", "version-string": "7.6", "port-version": 3 }, { "git-tree": "37da8c573edd47c0cbefddd148f3f9eeac40adb1", "version-string": "7.6", "port-version": 2 }, { "git-tree": "80dc9ac0ec8a2ab687d9b3f23dedae79376b89e6", "version-string": "7.6", "port-version": 1 }, { "git-tree": "29d3b0383cd8f92e8b8c88b1d8f4e88860d1e0e5", "version-string": "7.6", "port-version": 0 } ] } ================================================ FILE: versions/c-/cunit.json ================================================ { "versions": [ { "git-tree": "7c467d95806ab2016c73520e249b5d82645fda3c", "version": "2.1.3", "port-version": 8 }, { "git-tree": "b108b8daeb1695db997a7ebc1b341e27d4d84ce7", "version-string": "2.1.3", "port-version": 7 }, { "git-tree": "f534a55290d8bce0e7d8fd5f443550c4565a4b63", "version-string": "2.1.3-6", "port-version": 0 }, { "git-tree": "8af22f1b574a271ad022d4d15ce261a913d6f6f5", "version-string": "2.1.3-4", "port-version": 0 }, { "git-tree": "d3f77bce6db68e69e816ea95122a625c082b08c0", "version-string": "2.1.3-3", "port-version": 0 }, { "git-tree": "e50560ddf376a65ed799c20b617eebd8fb519e67", "version-string": "2.1.3-2", "port-version": 0 }, { "git-tree": "560210636b2139272be5a80f64b56651180e77f7", "version-string": "2.1.3-1", "port-version": 0 }, { "git-tree": "ff164993a7b025594837f969f6efb0b17bde31ad", "version-string": "2.1.3", "port-version": 0 } ] } ================================================ FILE: versions/c-/curl.json ================================================ { "versions": [ { "git-tree": "2826bbcd8b83d191393e58842c2baa969b9363f9", "version": "8.19.0", "port-version": 0 }, { "git-tree": "6f60b9a4e17664b88fc87f7abe8ea4949abac959", "version": "8.18.0", "port-version": 1 }, { "git-tree": "f01a26a6b8c210cf94b38303afc93d984a75aab9", "version": "8.18.0", "port-version": 0 }, { "git-tree": "e5ec3165c979aad7e25d907ffb82e7b6ad0f8f92", "version": "8.17.0", "port-version": 0 }, { "git-tree": "3905962f11b04dbdff1d1c976c7a1e5248048bb2", "version": "8.16.0", "port-version": 0 }, { "git-tree": "c5d9f2f0044ff09a375a67bd48932a2c020f5bee", "version": "8.15.0", "port-version": 1 }, { "git-tree": "17b5e90a884a7d07cfc52c26add29106ac9eba6f", "version": "8.15.0", "port-version": 0 }, { "git-tree": "bedf1229a9ff62ae89e079003b51be5bad3475b8", "version": "8.14.1", "port-version": 0 }, { "git-tree": "a6dd0b68e9a05ab5fb22973d7458aca29add3111", "version": "8.14.0", "port-version": 0 }, { "git-tree": "e0b645f9e08afb96b7d7eda9489663ffa41bf7c1", "version": "8.13.0", "port-version": 1 }, { "git-tree": "242c3849525ab4b1e253b375eeb37f11898f0785", "version": "8.13.0", "port-version": 0 }, { "git-tree": "faa9e75a688eeb7144584f9a86c014cefffddb98", "version": "8.12.1", "port-version": 0 }, { "git-tree": "c1d4d30018a3a20662c9e9e30dd1f3c4eebd3c37", "version": "8.12.0", "port-version": 1 }, { "git-tree": "751c4da14da7d3634a26a7ff7ca76a24de133cd6", "version": "8.12.0", "port-version": 0 }, { "git-tree": "804b1265eeee9f8fb5108d3a25e0fd4865b35394", "version": "8.11.1", "port-version": 2 }, { "git-tree": "d2c7cc1c54b17f6d1814d16c46b709767090d4d6", "version": "8.11.1", "port-version": 1 }, { "git-tree": "aae0f4f9dd2f724e673c0d458fc4531626864393", "version": "8.11.1", "port-version": 0 }, { "git-tree": "6ef1763f3cbe570d6378632c9b5793479c37fb07", "version": "8.11.0", "port-version": 1 }, { "git-tree": "c7272ca5021fc2b6a404911e1c0055fa08992463", "version": "8.11.0", "port-version": 0 }, { "git-tree": "63bb9465fa415bb6f753d47b361a41b579cf2cd3", "version": "8.10.1", "port-version": 2 }, { "git-tree": "31d4981751582248fd2983bcadc540584a906a9a", "version": "8.10.1", "port-version": 1 }, { "git-tree": "9fa54a801b36fad7852cd4174d00fd3e5675abdb", "version": "8.10.1", "port-version": 0 }, { "git-tree": "e1e11529e424b8297a0cc3238dd30c0e47bd9812", "version": "8.10.0", "port-version": 0 }, { "git-tree": "147b1671029a6d73c043bb3df3bea32a7828158b", "version": "8.9.1", "port-version": 1 }, { "git-tree": "f243fde8de72db4bb1d25a29e758d5b8973551e4", "version": "8.9.1", "port-version": 0 }, { "git-tree": "58954b5f6ad96e9c390d6ae282b8a04c46a65ad3", "version": "8.9.0", "port-version": 0 }, { "git-tree": "5d79bcc154132c187557e076a5bf5e0f5736dd6a", "version": "8.8.0", "port-version": 4 }, { "git-tree": "2924ae75a54112be27209863ebe3d343da7541ba", "version": "8.8.0", "port-version": 3 }, { "git-tree": "9b6ca5a9d3afa70bbfe734cbb4db575c24dcf304", "version": "8.8.0", "port-version": 2 }, { "git-tree": "83d2bcc643fa6575f4cf536b69a2abb4cfa4f965", "version": "8.8.0", "port-version": 1 }, { "git-tree": "b4644cbe68d83d9778be65efb28cee3a3e0e4f46", "version": "8.8.0", "port-version": 0 }, { "git-tree": "e6772f7da4a8824fd967ec448a3c1f8ca3b8b53b", "version": "8.7.1", "port-version": 4 }, { "git-tree": "32945fcb82088dc4055db602b3ebe95f67f04326", "version": "8.7.1", "port-version": 3 }, { "git-tree": "b72d99e7315d0669d227580f056f7d4ea7303a58", "version": "8.7.1", "port-version": 2 }, { "git-tree": "02d67d58e781c841960533d52713bb9fffb2c950", "version": "8.7.1", "port-version": 1 }, { "git-tree": "4f3aa7f4fd142a1c5822e4f36e0a4c45c031134a", "version": "8.7.1", "port-version": 0 }, { "git-tree": "1e5908adb574672dfc7a65baa8523ae184f5c0b7", "version": "8.6.0", "port-version": 1 }, { "git-tree": "dba7665cff5bd6f1a31ad0aa864fd83049eac93e", "version": "8.6.0", "port-version": 0 }, { "git-tree": "7b2bf8e8f4e0c7d000cb3b3311f4b9f185cb2d52", "version": "8.5.0", "port-version": 1 }, { "git-tree": "b30c6697e314cdba601dee9bdef0ed01e1d09c8f", "version": "8.5.0", "port-version": 0 }, { "git-tree": "8ad22809b9ba0e1e140a8ef45c4502bb2d669e1f", "version": "8.4.0", "port-version": 1 }, { "git-tree": "6125c796d6e2913a89a2996d7082375ce16b02dd", "version": "8.4.0", "port-version": 0 }, { "git-tree": "11ef099083754220ca800477b81e5ea6e51730ff", "version": "8.3.0", "port-version": 0 }, { "git-tree": "1e4df4c9590fb15d2d73014c66dbbc151b624b9b", "version": "8.2.1", "port-version": 0 }, { "git-tree": "c82d0a822ec7d4044a58c18f2e198df681822cf6", "version": "8.2.0", "port-version": 0 }, { "git-tree": "c2681b59ec41e4ec760fe10a60385202ee4763bb", "version": "8.1.2", "port-version": 2 }, { "git-tree": "7d8ee40552d5b1c103d52b2b28d9577cb45e2593", "version": "8.1.2", "port-version": 1 }, { "git-tree": "b70ded19f70e4b198d8c3f844324c7884d3faa7d", "version": "8.1.2", "port-version": 0 }, { "git-tree": "08eea1b0a159f6555603ac8d26a9f8ab4738d02f", "version": "8.0.1", "port-version": 0 }, { "git-tree": "9be28a8022b91c14e868d88a74eedc0dd891e966", "version": "7.88.1", "port-version": 1 }, { "git-tree": "2b76f0341314696395cfa982b5199c8336192757", "version": "7.88.1", "port-version": 0 }, { "git-tree": "5ff0b614c9c181b954a5c3c9cf51df2f83a7f21f", "version": "7.87.0", "port-version": 1 }, { "git-tree": "033fc823ccfc6d31034865b1175e45cffca29a3b", "version": "7.87.0", "port-version": 0 }, { "git-tree": "912bfa857d5a02358eddacaaeaba8f8f06d77db0", "version": "7.86.0", "port-version": 2 }, { "git-tree": "cbef59f527b7675f113f89aad00b16fde6910b86", "version": "7.86.0", "port-version": 1 }, { "git-tree": "ac2042be9746b4b193f99398f32bed8057f5d267", "version": "7.86.0", "port-version": 0 }, { "git-tree": "588fa4742c417db9d7c0f89e652b618296388d1e", "version": "7.84.0", "port-version": 2 }, { "git-tree": "4d64a4ac7f080159be045ccbf0a7fa81ef859cfa", "version": "7.84.0", "port-version": 1 }, { "git-tree": "984e0a92df662f6022989c2b5889e7d9f1c133d5", "version": "7.84.0", "port-version": 0 }, { "git-tree": "09dee7c9ae276d954fc8017b6a81002e43f81bb0", "version": "7.83.1", "port-version": 2 }, { "git-tree": "69e1aaae731455f5ed18b7eea4da75ee10bd073a", "version": "7.83.1", "port-version": 1 }, { "git-tree": "6f536c70dc927199fe430fde4e93f8d66d53b6f6", "version": "7.83.1", "port-version": 0 }, { "git-tree": "d72a11c8c3990818ba5987cc1ceee799046de9be", "version": "7.83.0", "port-version": 0 }, { "git-tree": "203696f71dd43fa55a1b1104570135bebf869819", "version": "7.82.0", "port-version": 0 }, { "git-tree": "30162d8bfeb7628fb397969fc95e379705a52509", "version": "7.81.0", "port-version": 0 }, { "git-tree": "8e13da05c975cb6f5bed6cf3b8054a817a00b45d", "version": "7.80.0", "port-version": 0 }, { "git-tree": "b2d22bb78a3e3d9d2775d98bf37580e8819ee8c3", "version": "7.79.1", "port-version": 0 }, { "git-tree": "5b6c1c3766b64c163ddabf8312214a23e2a7b8f5", "version": "7.79.0", "port-version": 0 }, { "git-tree": "0be4cff4d8e1d37a9ddf9ab264682771c69c0d72", "version": "7.78.0", "port-version": 0 }, { "git-tree": "cd05855cc1cd2d0f221664f0bfbe639b685fa028", "version": "7.74.0", "port-version": 8 }, { "git-tree": "2184d79bb98ed36af015203385175cade013d8af", "version": "7.74.0", "port-version": 7 }, { "git-tree": "73eb56fb6fa870b5959ba36b931817fc85208efe", "version": "7.74.0", "port-version": 6 }, { "git-tree": "8be2f3a1be62244a892aeba05026579fbf7200b4", "version": "7.74.0", "port-version": 5 }, { "git-tree": "883db9cb07e4982bf1bf327d5b3fa5a88b6304d8", "version-string": "7.74.0", "port-version": 4 }, { "git-tree": "1f69a2a2ce714cb05b0c419b07c4da22ca0f40a6", "version-string": "7.74.0", "port-version": 3 }, { "git-tree": "60383eff8665ca21ab8e2596ecafd27c7e001f5c", "version-string": "7.74.0", "port-version": 2 }, { "git-tree": "339c5526eafa56c12aa1ba2f00c1d86778f4eb2c", "version-string": "7.74.0", "port-version": 1 }, { "git-tree": "d5d242c3311f6d6f3b779ea169911382e99d2c9a", "version-string": "7.74.0", "port-version": 0 }, { "git-tree": "811ecaeda7d73ffee81358981432326aee4b3ed1", "version-string": "7.73.0", "port-version": 4 }, { "git-tree": "7fd5c9f0c5b8e54e32c02f35955796362a8344ce", "version-string": "7.73.0", "port-version": 3 }, { "git-tree": "946d1b2dfd87703f7a5e758aaeb6b880dccc580f", "version-string": "7.73.0", "port-version": 2 }, { "git-tree": "91875b9759f0bc2be5259ff0f02f63447a8ed4f7", "version-string": "7.73.0", "port-version": 1 }, { "git-tree": "827731725a04ef7b9a801c7ddd424f797b46ec29", "version-string": "7.73.0", "port-version": 0 }, { "git-tree": "1ceea1068a6ad293e19d2e9d99f52d3a09784b44", "version-string": "7.72.0", "port-version": 0 }, { "git-tree": "8dc1c6c898d97efedd41b2946e69aa4ff2602ed8", "version-string": "7.71.1", "port-version": 2 }, { "git-tree": "cbf8512f3b54afedaad106819a786cfefd133586", "version-string": "7.71.1", "port-version": 1 }, { "git-tree": "05ef3cff9d206a5cef9311dd4a46129eabeb24e3", "version-string": "7.71.1", "port-version": 0 }, { "git-tree": "0784d746f99f03aae43d64d5440186b08b1021b4", "version-string": "7.68.0-3", "port-version": 0 }, { "git-tree": "2dbb8c19b478cc2d21b5ec391726af3a082f3105", "version-string": "7.68.0-2", "port-version": 0 }, { "git-tree": "a3de120d738af7e4497b94d450d6c81588b2941b", "version-string": "7.68.0-1", "port-version": 0 }, { "git-tree": "411397475467e68ef64452323732507337b10a89", "version-string": "7.68.0", "port-version": 0 }, { "git-tree": "e257a8eb6852e23bc4e537e981275128fc65a915", "version-string": "7.66.0-2", "port-version": 0 }, { "git-tree": "3df3fb9850115ba5f5b1e95aa216cdf8ded5cef2", "version-string": "7.66.0-1", "port-version": 0 }, { "git-tree": "6a4d320e2ea2240024b8bbd6a2140758c71e5bae", "version-string": "7.66.0", "port-version": 0 }, { "git-tree": "a37d5a2c1c1f280771896bcce6625059f556fc1b", "version-string": "7.65.2-1", "port-version": 0 }, { "git-tree": "95a7b48ce1b1bb954b66fe8f36bde5a1f19467b1", "version-string": "7.65.0-3", "port-version": 0 }, { "git-tree": "b8bab287650fd1c911306dccfb5a0930339dfe95", "version-string": "7.65.0-2", "port-version": 0 }, { "git-tree": "94c1017f39d4cbf03a432f0017bd4931827ae31c", "version-string": "7.65.0-1", "port-version": 0 }, { "git-tree": "9a1ad4846968fbdc30eb12342718a808cf72e599", "version-string": "7.65.0", "port-version": 0 }, { "git-tree": "c8cbb2083b611478ae87e48b0a084e11ba5b81db", "version-string": "7.61.1-7", "port-version": 0 }, { "git-tree": "5bdb85e44410b31db141e7fc566a832d77a6fb72", "version-string": "7.61.1-6", "port-version": 0 }, { "git-tree": "9df7b77979747327805a1d28d9b6c92ded93951b", "version-string": "7.61.1-5", "port-version": 0 }, { "git-tree": "96044857ad378b99e6d2c166722d0ed55e3b34fd", "version-string": "7.61.1-4", "port-version": 0 }, { "git-tree": "31583ef83f7a254a0fb85631fc1be6208bb6d81b", "version-string": "7.61.1-3", "port-version": 0 }, { "git-tree": "870b88aaf136109a501bbf0d2ffed92adc77a0e8", "version-string": "7.61.1-2", "port-version": 0 }, { "git-tree": "de08b253f7a08595237086df793568fa3046eeb8", "version-string": "7.61.1-1", "port-version": 0 }, { "git-tree": "89ff21bc295a1960addad44620abdd648a986bd7", "version-string": "7.61.1", "port-version": 0 }, { "git-tree": "634222adc293f6917c0ad29f28810fa562efaa62", "version-string": "7.61.0", "port-version": 0 }, { "git-tree": "febe31ccc4ac1700375e616f22545b564256538f", "version-string": "7.60.0-2", "port-version": 0 }, { "git-tree": "5c99a5b08e3cd576af10a7f8ec15bb148c1fb113", "version-string": "7.60.0-1", "port-version": 0 }, { "git-tree": "0ab38392eaa1139eef0195034ad790533956ae47", "version-string": "7.60.0", "port-version": 0 }, { "git-tree": "3bc5aead178374533462dbe60c71bebbcec5ee73", "version-string": "7_59_0-2", "port-version": 0 }, { "git-tree": "e97e031a8c8f8a72f5af1d8dc8013ff1f32b4599", "version-string": "7_59_0-1", "port-version": 0 }, { "git-tree": "319a46d30ebaf47de0535e346ea07cf4de80ed64", "version-string": "7.59.0", "port-version": 0 }, { "git-tree": "838a2f6c4d823c6e0143edc4a3310b702a86e992", "version-string": "7.58.0-5", "port-version": 0 }, { "git-tree": "e562a0f028793f7b53de8b8a637f098656f8aa2c", "version-string": "7.58.0-4", "port-version": 0 }, { "git-tree": "9606747f24fd42c10e74fa19926564e786165d73", "version-string": "7.58.0-1", "port-version": 0 }, { "git-tree": "10c9b5413c70832a2a9daf2687fbc498b685bd2e", "version-string": "7.58.0", "port-version": 0 }, { "git-tree": "bb2822ab3af6dcb9224745033e04a7abac7a82ca", "version-string": "7.57.0-2", "port-version": 0 }, { "git-tree": "488e8f8e4edbc0ae1f43218a2ec6327003e0b1d3", "version-string": "7.57.0-1", "port-version": 0 }, { "git-tree": "e62c2e7f3bddd211a08a4e9d9bd75c79077446b6", "version-string": "7.55.1-1", "port-version": 0 }, { "git-tree": "1a5a244a1d2a1c9a062cde3545e9f28e3d29b031", "version-string": "7.55.1", "port-version": 0 }, { "git-tree": "a8328541662f68cf18c3f6b96ffe4e9a8eb4125e", "version-string": "7.55.0", "port-version": 0 }, { "git-tree": "d81fb4fe0783b6a61aadf7eea5a4f08f5bea91dc", "version-string": "7.51.0-3", "port-version": 0 }, { "git-tree": "1edce6a49fe36df502fff68465b07dcf7cbdbc1a", "version-string": "7.51.0-2", "port-version": 0 }, { "git-tree": "240594d0f45e0f8f8a2eb978af3febee7d9ec6ea", "version-string": "7.51.0-1", "port-version": 0 }, { "git-tree": "a0dde0f9340d6ae56ec6959f9c9a8316e6f6f945", "version-string": "7.51.0", "port-version": 0 }, { "git-tree": "bd88d5710b7efffa20c9815d3cb9142e842bd58e", "version-string": "7.48.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/curlcpp.json ================================================ { "versions": [ { "git-tree": "787657f32a9bdc4904cf867b88bd8634bce38ac5", "version": "3.1", "port-version": 1 }, { "git-tree": "c5fc6feed65a45463099e6a395bbd977f07cf15a", "version": "3.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/curlpp.json ================================================ { "versions": [ { "git-tree": "ee3e61bbeeae596f013c978b2f2c2550092f3548", "version-date": "2018-06-15", "port-version": 11 }, { "git-tree": "f0a72e60279d7929599cd47abf01c243d7ee0e69", "version-date": "2018-06-15", "port-version": 10 }, { "git-tree": "5f1ce1e78bf1fca65c8f47bde61824589bd11e5c", "version-date": "2018-06-15", "port-version": 9 }, { "git-tree": "bce2ac6d85261a2aca4b9ea5e974e5a7ee45be3a", "version-date": "2018-06-15", "port-version": 8 }, { "git-tree": "ebde1c1d303f750ce06e530295a820787878e6cd", "version-date": "2018-06-15", "port-version": 7 }, { "git-tree": "a4cea77cfb3429b1ea778167d06c39a691b97e13", "version-date": "2018-06-15", "port-version": 6 }, { "git-tree": "c4802498d8b285cc5a3d3bcb574db0fe22267381", "version-string": "2018-06-15", "port-version": 5 }, { "git-tree": "a764bda6f69b8e79e3f3734ceb420d4c814e9605", "version-string": "2018-06-15", "port-version": 4 }, { "git-tree": "121083d20c3bd1cdb738697da5ae8ae1917ccee8", "version-string": "2018-06-15-3", "port-version": 0 }, { "git-tree": "ccdf1419c1aa3030cba618bf696e064e8a089772", "version-string": "2018-06-15-2", "port-version": 0 }, { "git-tree": "55c1ee44b050a3a3d79a2e2d7bf3df7dfaca0fb1", "version-string": "2018-06-15-1", "port-version": 0 }, { "git-tree": "8b7093e6772f8b0e137fa018122444e15f194bef", "version-string": "2018-06-15", "port-version": 0 } ] } ================================================ FILE: versions/c-/curve-coco.json ================================================ { "versions": [ { "git-tree": "428adea8bb4f40ac5b13d1331ea8e5a6a7d9abb9", "version": "4.3.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cute-headers.json ================================================ { "versions": [ { "git-tree": "73671c8a457d848d2fdb535fc56b72c48c344dcc", "version-date": "2019-09-20", "port-version": 2 }, { "git-tree": "d6eb7ff72e3cede19e1f8900fe715014b3fa6d81", "version-string": "2019-09-20", "port-version": 1 }, { "git-tree": "c8b815cb53310c522b4789c34e1961c4a816beab", "version-string": "2019-09-20", "port-version": 0 } ] } ================================================ FILE: versions/c-/cutelyst2.json ================================================ { "versions": [ { "git-tree": "b172ddad5af65084452d225b55de761bcf4b8592", "version": "2.12.0", "port-version": 2 }, { "git-tree": "1ad13c203a854aeb411f66b4f8e083882d7415cd", "version-string": "2.12.0", "port-version": 1 }, { "git-tree": "d451e8108a8ac3305fda61e441505d6244260329", "version-string": "2.12.0", "port-version": 0 }, { "git-tree": "4eb08152bc0a1ba92fdff5844c3181efd7374765", "version-string": "2.9.0-1", "port-version": 0 }, { "git-tree": "3fa16ba6900d9ddce5f2b5c7c807e1501bebe84f", "version-string": "2.9.0", "port-version": 0 }, { "git-tree": "775839495211e69907a217fe3443897e4ddf0e16", "version-string": "2.8.0", "port-version": 0 }, { "git-tree": "04e5bee0904e5e1277ca5287ffc591b6e06f6711", "version-string": "2.7.0", "port-version": 0 }, { "git-tree": "84836e89d33907828ea8481de27d0e42842c2873", "version-string": "2.5.2-2", "port-version": 0 }, { "git-tree": "ba146ce08b03e85b46ba478826e2d10386778817", "version-string": "2.5.2-1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cwalk.json ================================================ { "versions": [ { "git-tree": "b4ec2b9231b37caee854ffcb82093c79a7e03c71", "version": "1.2.9", "port-version": 0 }, { "git-tree": "377300b55c1158f1eaa90ba492441adb12845fbb", "version": "1.2.7", "port-version": 0 }, { "git-tree": "d538350d056fb42b77d28894f67a2bc9dbfe1403", "version": "1.2.6", "port-version": 0 }, { "git-tree": "5cec9575426a50a36612850c9681b8216572a3db", "version-string": "1.2.5", "port-version": 0 } ] } ================================================ FILE: versions/c-/cwapi3d.json ================================================ { "versions": [ { "git-tree": "a8e3925ef14f7928c95ab5c80f7546db4e616e5c", "version": "32.219.1", "port-version": 0 }, { "git-tree": "cfc66e207209b8ce5a3d6942d539449c14fc08bb", "version": "30.475.1", "port-version": 0 }, { "git-tree": "5345b145ba7d08c63a1783750a8ca24a4886cd5f", "version": "30.10.1", "port-version": 0 } ] } ================================================ FILE: versions/c-/cxxgraph.json ================================================ { "versions": [ { "git-tree": "485a4ab0bee5661c3cffc9e288a9a431a9924c29", "version": "4.1.0", "port-version": 0 }, { "git-tree": "84cc008947dc5a40193ec5bc5ce10d175b0cf893", "version": "2.0.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cxxopts.json ================================================ { "versions": [ { "git-tree": "0eaebfc5a6fb9c9d8dee07979559c718aac78d64", "version-semver": "3.3.1", "port-version": 1 }, { "git-tree": "d24b1868232e29427a9fa9bf32b50aa4e2e322ee", "version-semver": "3.3.1", "port-version": 0 }, { "git-tree": "1ad8547da18ed18a0bd77925eafad7507430f383", "version-semver": "3.2.1", "port-version": 0 }, { "git-tree": "a6cbab0a92c5dc156b9de5e1613379fe220d6f68", "version-semver": "3.2.0", "port-version": 0 }, { "git-tree": "2ba8ad462aef9c5cc6e4539c3c600bccfd110c6c", "version-semver": "3.1.1", "port-version": 0 }, { "git-tree": "eb6aeb15747814f3c2b84f15582889d9052e0ae1", "version-semver": "3.1.0", "port-version": 0 }, { "git-tree": "803dd21f8c06b5460353b53501f273b6c30aa9df", "version-semver": "3.0.0", "port-version": 0 }, { "git-tree": "68001132d5d7e495c5890f3cadfed62aba7185dd", "version-string": "2.2.1", "port-version": 1 }, { "git-tree": "b366e598bbb99685f33563a0b224f710be2b5124", "version-string": "2.2.1", "port-version": 0 }, { "git-tree": "e0ddc1ffcbf704aaca88504484c4dd5624e84782", "version-string": "2.2.0", "port-version": 0 }, { "git-tree": "a368104bdfd4a1284e8b3853e83a2fc0fa750663", "version-string": "2.1.2-1", "port-version": 0 }, { "git-tree": "f825f847c7a1cadb04d7c5310aa56498cb679f26", "version-string": "2.1.2", "port-version": 0 }, { "git-tree": "4804e5bda99dbbb19fa3216f7ccb623400f12379", "version-string": "2.1.1", "port-version": 0 }, { "git-tree": "3895ddad1f82d26e71ca7b0cf463e6fce2fc0d6e", "version-string": "2.1.0-1", "port-version": 0 }, { "git-tree": "dd7333b303b3b07d77481b1cd36f022845ab208d", "version-string": "2.1.0", "port-version": 0 }, { "git-tree": "b96dbdf46cca0f4b6cc4ed5f60a98de3e168bf5c", "version-string": "1.3.0", "port-version": 0 } ] } ================================================ FILE: versions/c-/cyclonedds-cxx.json ================================================ { "versions": [ { "git-tree": "0231904aee6a7be877b8a526388a73919eb94083", "version": "0.10.5", "port-version": 0 }, { "git-tree": "7bbab31be1c21a028381872309f99c05b5393daf", "version": "0.10.4", "port-version": 0 }, { "git-tree": "4b29e2454be8abe4661edb20bde4cd35871202d4", "version": "0.10.2", "port-version": 1 }, { "git-tree": "163e5b6e1b6e95281b7888cf31b6407c40981040", "version": "0.10.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cyclonedds.json ================================================ { "versions": [ { "git-tree": "be8f9d37931b37ec0eca52a67c08e49f98129a5a", "version-semver": "0.10.5", "port-version": 0 }, { "git-tree": "abbec0baa12c866bcb3446d55a87c936a62720d2", "version-semver": "0.10.4", "port-version": 0 }, { "git-tree": "c255b603065059864d3a144db77cf44b15514222", "version-semver": "0.10.3", "port-version": 0 }, { "git-tree": "88e7a85946eae33b8e9d686107d7e303afa2a59e", "version-semver": "0.10.2", "port-version": 2 }, { "git-tree": "7be6ebe8452bb763bf4dd1374e981ff455b54aaa", "version-semver": "0.10.2", "port-version": 1 }, { "git-tree": "8432327df58b39777e3debd3310817ec2752dd87", "version-semver": "0.10.2", "port-version": 0 } ] } ================================================ FILE: versions/c-/cyrus-sasl.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/c-/czmq.json ================================================ { "versions": [ { "git-tree": "de2d2379b050f995744ffcc882c1d02795bd2120", "version-semver": "4.2.1", "port-version": 5 }, { "git-tree": "f2c4f3cb55eecf90232bdaabef1fd9b6d0426c7c", "version-semver": "4.2.1", "port-version": 4 }, { "git-tree": "ec9f27596e7ff9e8b8aa401f27525075abec28ea", "version-semver": "4.2.1", "port-version": 3 }, { "git-tree": "5bebd4e3a17c277fc4813a24cbdde5d2a06ccc01", "version-semver": "4.2.1", "port-version": 2 }, { "git-tree": "fd4ccb9b894541d10e393139468aaac97419b0f2", "version-semver": "4.2.1", "port-version": 1 }, { "git-tree": "e05dc72cf3b616b1fd6629ea3dc20d08ed8d8055", "version-semver": "4.2.1", "port-version": 0 }, { "git-tree": "31aceda22627ab6f97f03868d5f92a4cc78a275e", "version-string": "2019-06-10-4", "port-version": 0 }, { "git-tree": "46b00b984d0ab212fd51b1205eb75ced5c7ca3be", "version-string": "2019-06-10-3", "port-version": 0 }, { "git-tree": "4ef1ce1d90c4740423a6de5a1baa8ace8825723a", "version-string": "2019-06-10-2", "port-version": 0 }, { "git-tree": "1a6acfd363bbeb4d170f8ce9b57ac5342f6c662e", "version-string": "2019-06-10-1", "port-version": 0 }, { "git-tree": "4ba8a7fc3d6250d6335b76732863c7602a6d3837", "version-string": "2019-06-10", "port-version": 0 } ] } ================================================ FILE: versions/d-/d3d12-memory-allocator.json ================================================ [File too large to display: 543 B] ================================================ FILE: versions/d-/d3dx12.json ================================================ { "versions": [ { "git-tree": "58c793e97434f798e4cb9f43c32f4653ecc5b8c7", "version-string": "may2021", "port-version": 1 }, { "git-tree": "34415699a49eb16898e8190a101c6f6e026b1b3d", "version-string": "may2021", "port-version": 0 }, { "git-tree": "8ee92f85b281f540bb897404333cd300bd02e015", "version-string": "may2020", "port-version": 0 } ] } ================================================ FILE: versions/d-/dacap-clip.json ================================================ { "versions": [ { "git-tree": "caecb666d499ee31770e68de773323a0d872e779", "version": "1.14", "port-version": 0 }, { "git-tree": "2d5a0a4ea4435e3725ba3c1791297c8060613259", "version": "1.13", "port-version": 0 }, { "git-tree": "b806db9edf4f005f7de9921b8c952eededdee146", "version": "1.12", "port-version": 0 }, { "git-tree": "572ce455e5fa4df4f83a2f62a8bf5c617107c0c9", "version": "1.11", "port-version": 0 }, { "git-tree": "6f7bfb92450f247a05aabd780ab123e48a19cc99", "version": "1.10.0", "port-version": 0 } ] } ================================================ FILE: versions/d-/dagir.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/darknet.json ================================================ { "versions": [ { "git-tree": "c9739d219193a43a3aff009726de3925f369f1e4", "version-date": "2025-10-24", "port-version": 0 }, { "git-tree": "d78bba83f11a5d8d42c46768e3703cf5bea3a384", "version-date": "2024-10-10", "port-version": 1 }, { "git-tree": "41c6aaf3f81927973a736c75c287cd83434517e5", "version-date": "2024-10-10", "port-version": 0 }, { "git-tree": "b61e4babb5696ae0a5b1d85f9d81540c69688675", "version-date": "2022-03-06", "port-version": 4 }, { "git-tree": "0143bad2181e6280f1c59918b5c1767ff166ad31", "version-date": "2022-03-06", "port-version": 3 }, { "git-tree": "979891799df34103a8312038f12bb6e6b73301d5", "version-date": "2022-03-06", "port-version": 2 }, { "git-tree": "0e4e40d483fe8ff2bade4fe1b10996cf71f3089b", "version-date": "2022-03-06", "port-version": 1 }, { "git-tree": "b9b918e6e0af651d83b284cd0f423b6b49951aef", "version-date": "2022-03-06", "port-version": 0 }, { "git-tree": "cb0cb4dcba244d4b82cdd65fa0c993cfd4691992", "version-date": "2021-04-16", "port-version": 1 }, { "git-tree": "b8aea30f123c47f5be294829fbfac4d9e8c1295d", "version-date": "2021-04-16", "port-version": 0 }, { "git-tree": "05bdc42da8656bf1acf80d6f3f821dff045c7b72", "version-string": "2021-01-21", "port-version": 0 }, { "git-tree": "5013a879bca7ed0f5a443fa9e379abbedfd38eeb", "version-string": "2020-08-30", "port-version": 2 }, { "git-tree": "112131c0ca5d5d396ec1c64f52f7609f12629df7", "version-string": "2020-08-30", "port-version": 1 }, { "git-tree": "bd9030de7c341f1e5ea65a0ef7f3804d4cb8a15d", "version-string": "2020-08-30", "port-version": 0 }, { "git-tree": "0ed3c7001cc0e5c9c8236a597eabe8c80b042771", "version-string": "2020-06-29", "port-version": 0 }, { "git-tree": "6f518b887149ce83d9cc3459678acab773392a37", "version-string": "2020-03-02", "port-version": 0 }, { "git-tree": "d182106de516d8071c4fa2a7a28e7ce8b1de3b87", "version-string": "0.2.5.1-1", "port-version": 0 }, { "git-tree": "7ce2f496849dc8c4b05c6e6485ed403f4fa06275", "version-string": "0.2.5.1", "port-version": 0 }, { "git-tree": "297845c7627bddbb821fc70529f1573db47f19fc", "version-string": "0.2.5-6", "port-version": 0 }, { "git-tree": "f5e89045b030a26eae504a302a5f75bffe72e2be", "version-string": "0.2.5-5", "port-version": 0 }, { "git-tree": "620693c86298122d0a9a2697a860b4f0606eeafb", "version-string": "0.2.5-4", "port-version": 0 }, { "git-tree": "b34cc69fde346abedd8da82d5fd0b2f771e7b5fc", "version-string": "0.2.5-3", "port-version": 0 }, { "git-tree": "82b472bbbbb8548462a3ee18c161a522d669bd74", "version-string": "0.2.5-1", "port-version": 0 }, { "git-tree": "57a08801e58c9d5cb053d5607c542bd41eab20ae", "version-string": "0.2.5", "port-version": 0 }, { "git-tree": "bd529056d9c1c1efd32d06de69277d45775dd5b8", "version-string": "1.0.0-2", "port-version": 0 }, { "git-tree": "b17f58f85878ed7a5296376516d39f17d3766c7b", "version-string": "1.0.0-1", "port-version": 0 }, { "git-tree": "9b09d121b686c7a75520b7e8af399c266cc4309c", "version-string": "1.0.0", "port-version": 0 } ] } ================================================ FILE: versions/d-/darts-clone.json ================================================ [File too large to display: 581 B] ================================================ FILE: versions/d-/dartsim.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/d-/dataframe.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/d-/date.json ================================================ { "versions": [ { "git-tree": "b5a0767b047cd12d9949cb1facb0f72c5d0ddf9f", "version": "3.0.4", "port-version": 0 }, { "git-tree": "3655f01c9296e57b7d2ab47028498db6d88f7f49", "version": "3.0.3", "port-version": 0 }, { "git-tree": "52f7b2f3a6398c0aa4a073a06c55c1a513b478bb", "version-date": "2024-05-14", "port-version": 0 }, { "git-tree": "cf7d19c233055e8ffa12b200af6afb894ed76447", "version": "3.0.1", "port-version": 5 }, { "git-tree": "4f6b5d17f3cf8ffb0330963bf0b6d8efa9175e13", "version": "3.0.1", "port-version": 4 }, { "git-tree": "b3ca1bdc08676cd1bb802421bd94a18872305737", "version": "3.0.1", "port-version": 3 }, { "git-tree": "14d5c6822908ad2fd1d700cca2067ae4b8ef4404", "version": "3.0.1", "port-version": 2 }, { "git-tree": "e281c60aee492a2be56e78ce6a53cb5db927b1dc", "version": "3.0.1", "port-version": 1 }, { "git-tree": "8d9a771765181237930138b7c4809babbd814cfb", "version": "3.0.1", "port-version": 0 }, { "git-tree": "6dc2054fe09235f06cd75f4acaf570145672a86a", "version-string": "3.0.0", "port-version": 3 }, { "git-tree": "6223ca4908ce9896c0d17ac21dac600e7f4d54e1", "version-string": "3.0.0", "port-version": 2 }, { "git-tree": "42976b85736114e38204b7d8cd5ea5e74a73c7cd", "version-string": "3.0.0", "port-version": 1 }, { "git-tree": "0bbf15fc741ad797a3ec3cce9ab9680314193893", "version-string": "3.0.0", "port-version": 0 }, { "git-tree": "b63095cd5aa753503485086cc3d1de7dc90f582c", "version-string": "2019-11-08", "port-version": 0 }, { "git-tree": "07207105c10a4c3af8c5d1e3aa4db0a40504a253", "version-string": "2019-09-09", "port-version": 0 }, { "git-tree": "fd3b27793570e0e280484742d317ab1c9e8fa8b7", "version-string": "2019-05-18-1", "port-version": 0 }, { "git-tree": "218b69419ce2cd95376d9997c607272c53af9329", "version-string": "ed0368f", "port-version": 0 }, { "git-tree": "dbd5ad3d1ad0c3833c96c135916bde49de140cbc", "version-string": "081e9af", "port-version": 0 }, { "git-tree": "1819dbe39242b7a3a7f4ef72b5e5bf144bc778ff", "version-string": "9dc96fd", "port-version": 0 }, { "git-tree": "41512b5bc68599041b958ddbf26dacbf088706f2", "version-string": "2.4.1", "port-version": 0 }, { "git-tree": "99b3cbf711c0ec049445cf5586a2ee6373280892", "version-string": "2.4", "port-version": 0 }, { "git-tree": "f893b79100322bff63486b8f162d5ad94e3490b9", "version-string": "2.3-c286981b3bf83c79554769df68b27415cee68d77", "port-version": 0 }, { "git-tree": "16b03b9409ef7736aa57323363c04b3a4cd14c3f", "version-string": "2.3", "port-version": 0 }, { "git-tree": "0d7d4b3336f8d2e169fdc3305199a1b84abf40bb", "version-string": "2.2", "port-version": 0 } ] } ================================================ FILE: versions/d-/datraw.json ================================================ { "versions": [ { "git-tree": "44eb70243b0c6db95a1596586a8fc1c5e677e468", "version": "1.1.0", "port-version": 0 }, { "git-tree": "b125e43a3f58c35a31755006e118216a94c72036", "version": "1.0.9", "port-version": 0 } ] } ================================================ FILE: versions/d-/dav1d.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/d-/daw-header-libraries.json ================================================ { "versions": [ { "git-tree": "cfe668913cf69e39fc65e3ea7398fe61803bd9e3", "version": "2.132.1", "port-version": 0 }, { "git-tree": "978c302c230e301744f53c5717e8cb2b294549e8", "version": "2.131.0", "port-version": 0 }, { "git-tree": "93aa06ab3e9bd11d646322c635f67daaee255766", "version": "2.123.2", "port-version": 0 }, { "git-tree": "c83a45498f99dbbd91ede00c4d0018654adcbdbf", "version": "2.118.0", "port-version": 0 }, { "git-tree": "a73653e896f735ebe2535c2e72c5944e49e98e06", "version": "2.114.1", "port-version": 0 }, { "git-tree": "0897550720ddad1690f0e5663e90eef151f86936", "version": "2.106.0", "port-version": 0 }, { "git-tree": "c9b093dd2739047c1c2eaf3a05421e8573ee0358", "version": "2.101.0", "port-version": 0 }, { "git-tree": "30edee4980890f4dbdb9a1c982ddf0b845c1e9cc", "version": "2.98.5", "port-version": 0 }, { "git-tree": "3646a7d51cdffec8d94d24bd71ea60ffeab50cbd", "version": "2.97.0", "port-version": 0 }, { "git-tree": "6d22d6790c0b6ef8ae4ab570ff55882b410e52b4", "version": "2.96.1", "port-version": 0 }, { "git-tree": "ff99cdb3f50ade01a8d2e56cf5bc3eb481e5c736", "version": "2.93.1", "port-version": 0 }, { "git-tree": "4d509d523fd58793c43034e371dd65d499cec986", "version": "2.88.0", "port-version": 0 }, { "git-tree": "604923901ffc292d9455d073d42e66bd5624690c", "version": "2.76.2", "port-version": 0 }, { "git-tree": "c24a587eed5a14af2cdd2ea04bcbe1003de8d090", "version": "2.75.0", "port-version": 0 }, { "git-tree": "a43fb1fbf9864d6ff4a5acf4319300ec1e3933ba", "version": "2.72.1", "port-version": 0 }, { "git-tree": "c183461d315649b9c1fbbb8f2701767d68a38820", "version": "2.68.1", "port-version": 0 }, { "git-tree": "14d1e3a6c6a143089ec1590f343144aa2c6790d9", "version": "2.46.2", "port-version": 0 }, { "git-tree": "a57c2a8a8ba7fb8017df838e23547eb1933e26b9", "version": "2.46.0", "port-version": 0 }, { "git-tree": "29ed87ad6aee595ac4a0972c09a1ddf34d13a857", "version-semver": "1.29.7", "port-version": 0 }, { "git-tree": "6687948f2f2f4c3ba578a8ac41624c58a541f1a2", "version-semver": "1.21.1", "port-version": 0 } ] } ================================================ FILE: versions/d-/daw-json-link.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/d-/daw-utf-range.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/d-/dawn.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/d-/daxa.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/d-/dbg-macro.json ================================================ [File too large to display: 807 B] ================================================ FILE: versions/d-/dbghelp.json ================================================ [File too large to display: 404 B] ================================================ FILE: versions/d-/dbow2.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/d-/dbow3.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/d-/dbus-cxx.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/d-/dbus.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/d-/dcmtk.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/d-/ddtdanilo-lmdb-wrapper.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/deadlightreal-swiftnet.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/d-/debug-assert.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/d-/decimal-for-cpp.json ================================================ [File too large to display: 802 B] ================================================ FILE: versions/d-/delaunator-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/deniskovalchuk-libftp.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/d-/detours.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/d-/devicenameresolver.json ================================================ [File too large to display: 752 B] ================================================ FILE: versions/d-/devil.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/d-/dimcli.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/d-/dingo.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/directfb2.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/d-/directx-dxc.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/d-/directx-headers.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/d-/directx12-agility.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/d-/directxmath.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/d-/directxmesh.json ================================================ [File too large to display: 6.9 KB] ================================================ FILE: versions/d-/directxsdk.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/d-/directxtex.json ================================================ [File too large to display: 8.2 KB] ================================================ FILE: versions/d-/directxtk.json ================================================ [File too large to display: 8.6 KB] ================================================ FILE: versions/d-/directxtk12.json ================================================ [File too large to display: 6.7 KB] ================================================ FILE: versions/d-/dirent.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/d-/discord-game-sdk.json ================================================ [File too large to display: 921 B] ================================================ FILE: versions/d-/discord-rpc.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/d-/discordcoreapi.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/d-/discount.json ================================================ [File too large to display: 810 B] ================================================ FILE: versions/d-/discreture.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/d-/distorm.json ================================================ [File too large to display: 568 B] ================================================ FILE: versions/d-/dlfcn-win32.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/d-/dlib.json ================================================ [File too large to display: 5.9 KB] ================================================ FILE: versions/d-/dlpack.json ================================================ [File too large to display: 638 B] ================================================ FILE: versions/d-/dmlc.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/d-/docopt.json ================================================ [File too large to display: 978 B] ================================================ FILE: versions/d-/docraft.json ================================================ [File too large to display: 163 B] ================================================ FILE: versions/d-/doctest.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/d-/double-conversion.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/d-/dp-thread-pool.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/d-/dpdk.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/d-/dpp.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/d-/draco.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/d-/drekar-launch-process-cpp.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/d-/drlibs.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/d-/drogon.json ================================================ [File too large to display: 5.4 KB] ================================================ FILE: versions/d-/dstorage.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/d-/dtl.json ================================================ [File too large to display: 533 B] ================================================ FILE: versions/d-/duckdb.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/d-/duckx.json ================================================ [File too large to display: 674 B] ================================================ FILE: versions/d-/duilib.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/d-/dukglue.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/d-/duktape.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/d-/dumb.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/duvc-ctl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/d-/dv-processing.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/d-/dx.json ================================================ [File too large to display: 678 B] ================================================ FILE: versions/d-/dxcam-cpp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/d-/dxsdk-d3dx.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/d-/dxut.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/d-/dylib.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/d-/dyno.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/e-/e-dant-watcher.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/e-/eabase.json ================================================ [File too large to display: 965 B] ================================================ FILE: versions/e-/earcut-hpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/e-/eastl.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/e-/easy-profiler.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/e-/easycl.json ================================================ [File too large to display: 406 B] ================================================ FILE: versions/e-/easyexif.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/e-/easyhook.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/e-/easyloggingpp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/e-/eathread.json ================================================ [File too large to display: 829 B] ================================================ FILE: versions/e-/ebml.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/e-/ecal.json ================================================ [File too large to display: 821 B] ================================================ FILE: versions/e-/ecaludp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/e-/ecm.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/e-/ecos.json ================================================ [File too large to display: 663 B] ================================================ FILE: versions/e-/ecsutil.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/e-/ed25519.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/e-/edflib.json ================================================ [File too large to display: 643 B] ================================================ FILE: versions/e-/edlib.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/e-/effects11.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/e-/effolkronium-random.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/e-/efsw.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/e-/egl-registry.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/e-/egl.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/e-/eigen3.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/e-/eipscanner.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/e-/elements.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/e-/elfio.json ================================================ [File too large to display: 772 B] ================================================ FILE: versions/e-/elfutils.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/e-/eljonny-testcpp.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/e-/embree.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/e-/embree2.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/e-/embree3.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/e-/enchantum.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/e-/enet.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/e-/enkits.json ================================================ [File too large to display: 519 B] ================================================ FILE: versions/e-/ensmallen.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/e-/entityx.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/e-/entt.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/e-/epoll-shim.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/e-/epsilon.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/e-/eraser.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/e-/ereignis.json ================================================ [File too large to display: 392 B] ================================================ FILE: versions/e-/esaxx.json ================================================ [File too large to display: 307 B] ================================================ FILE: versions/e-/etcd-cpp-apiv3.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/e-/ethindp-prism.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/e-/etl.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/e-/eve.json ================================================ [File too large to display: 685 B] ================================================ FILE: versions/e-/eventpp.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/e-/evpp.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/e-/exiv2.json ================================================ [File too large to display: 7.8 KB] ================================================ FILE: versions/e-/expat.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/e-/expected-lite.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/e-/exprtk.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/e-/ezc3d.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/e-/ezfoundation.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/f3d.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/faad2.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/f-/fadbad.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/f-/faiss.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/f-/fakeit.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/f-/faker-cxx.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/f-/fameta-counter.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/f-/fann.json ================================================ [File too large to display: 674 B] ================================================ FILE: versions/f-/farmhash.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/f-/fast-cpp-csv-parser.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/f-/fast-double-parser.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/f-/fast-float.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/f-/fast-obj.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/f-/fastcdr.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/f-/fastcgi.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/f-/fastdds.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/f-/fastfeat.json ================================================ [File too large to display: 695 B] ================================================ FILE: versions/f-/fastgltf.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/f-/fastio.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/f-/fastlz.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/f-/fastor.json ================================================ [File too large to display: 418 B] ================================================ FILE: versions/f-/fastpfor.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/fastrtps.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/f-/faudio.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/fawdlstty-libfv.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/f-/fbgemm.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/f-/fbthrift.json ================================================ [File too large to display: 9.9 KB] ================================================ FILE: versions/f-/fcl.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/f-/fdk-aac.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/f-/fdlibm.json ================================================ [File too large to display: 795 B] ================================================ FILE: versions/f-/fenster.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/f-/ffmpeg-bin2c.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/ffmpeg.json ================================================ [File too large to display: 21.6 KB] ================================================ FILE: versions/f-/ffnvcodec.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/f-/fftw3.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/f-/fftwpp.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/f-/field3d.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/f-/fineftp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/f-/fins.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/f-/fixed-containers.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/f-/fixed-math.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/fixed-string.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/f-/fizz.json ================================================ [File too large to display: 10.8 KB] ================================================ FILE: versions/f-/fkyaml.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/f-/flagpp.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/f-/flann.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/f-/flash-runtime-extensions.json ================================================ [File too large to display: 269 B] ================================================ FILE: versions/f-/flashlight-cpu.json ================================================ [File too large to display: 896 B] ================================================ FILE: versions/f-/flashlight-cuda.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/flashlight-sequence.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/flashlight-text.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/f-/flat.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/f-/flatbuffers.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/f-/flatbush.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/f-/flatcc.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/flecs.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/f-/flint.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/f-/fltk.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/f-/fluidlite.json ================================================ [File too large to display: 841 B] ================================================ FILE: versions/f-/fluidsynth.json ================================================ [File too large to display: 4.9 KB] ================================================ FILE: versions/f-/flux.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/f-/fmem.json ================================================ [File too large to display: 599 B] ================================================ FILE: versions/f-/fmi4cpp.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/f-/fmilib.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/f-/fmt.json ================================================ [File too large to display: 7.4 KB] ================================================ FILE: versions/f-/folly.json ================================================ [File too large to display: 19.6 KB] ================================================ FILE: versions/f-/font-chef.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/f-/font-util.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/f-/fontconfig.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/f-/foonathan-lexy.json ================================================ [File too large to display: 409 B] ================================================ FILE: versions/f-/foonathan-memory.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/forest.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/f-/forge.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/foxi.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/f-/fp16.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/f-/fplus.json ================================================ [File too large to display: 940 B] ================================================ FILE: versions/f-/freealut.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/f-/freeglut.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/f-/freeimage.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/f-/freeopcua.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/freerdp.json ================================================ [File too large to display: 6.8 KB] ================================================ FILE: versions/f-/freetds.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/freetype-gl.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/f-/freetype.json ================================================ [File too large to display: 5.7 KB] ================================================ FILE: versions/f-/freexl.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/f-/frei0r.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/f-/fribidi.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/f-/frozen.json ================================================ [File too large to display: 540 B] ================================================ FILE: versions/f-/frugally-deep.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/f-/fruit.json ================================================ [File too large to display: 805 B] ================================================ FILE: versions/f-/ftgl.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/f-/ftxui.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/f-/function2.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/f-/functionalplus.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/f-/functions-framework-cpp.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/f-/future-config.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/f-/fuzzylite.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/f-/fxaudio.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/f-/fxdiv.json ================================================ [File too large to display: 700 B] ================================================ FILE: versions/g-/g2o.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/g-/g3log.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/g-/gainput.json ================================================ [File too large to display: 939 B] ================================================ FILE: versions/g-/gamedev-framework.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/g-/gameinput.json ================================================ [File too large to display: 964 B] ================================================ FILE: versions/g-/gamenetworkingsockets.json ================================================ [File too large to display: 927 B] ================================================ FILE: versions/g-/games101-cgl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/g-/gamma.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/g-/gapp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gasol.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/g-/gaussianlib.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/g-/gazebo.json ================================================ [File too large to display: 960 B] ================================================ FILE: versions/g-/gcem.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/g-/gdal.json ================================================ [File too large to display: 16.3 KB] ================================================ FILE: versions/g-/gdbm.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/g-/gdcm.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/g-/gdcm2.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/g-/gdk-pixbuf.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/g-/gegl.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/g-/gemmlowp.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/g-/genann.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/g-/geogram.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/g-/geographiclib.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/g-/geos.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/g-/geotrans.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/getdns.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/g-/getopt-win32.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/getopt.json ================================================ [File too large to display: 658 B] ================================================ FILE: versions/g-/gettext-libintl.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/g-/gettext.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/g-/gettimeofday.json ================================================ [File too large to display: 847 B] ================================================ FILE: versions/g-/gexiv2.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/g-/gflags.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/g-/ggml.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/g-/ghc-filesystem.json ================================================ [File too large to display: 651 B] ================================================ FILE: versions/g-/gherkin-c.json ================================================ [File too large to display: 847 B] ================================================ FILE: versions/g-/giflib.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/g-/ginkgo.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/gklib.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/g-/gl2ps.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/g-/gl3w.json ================================================ [File too large to display: 976 B] ================================================ FILE: versions/g-/glad.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/g-/glaze.json ================================================ [File too large to display: 9.9 KB] ================================================ FILE: versions/g-/glbinding.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/g-/glew.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/g-/glfw3.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/g-/gli.json ================================================ [File too large to display: 964 B] ================================================ FILE: versions/g-/glib-networking.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/g-/glib.json ================================================ [File too large to display: 8.7 KB] ================================================ FILE: versions/g-/glibmm.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/g-/glm.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/g-/globjects.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/g-/glog.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/g-/gloo.json ================================================ [File too large to display: 798 B] ================================================ FILE: versions/g-/glpk.json ================================================ [File too large to display: 515 B] ================================================ FILE: versions/g-/glslang.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/g-/glui.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/g-/gmime.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/g-/gmmlib.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/g-/gmp.json ================================================ [File too large to display: 3.7 KB] ================================================ FILE: versions/g-/gmsh.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/gobject-introspection.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/g-/godot-cpp.json ================================================ [File too large to display: 394 B] ================================================ FILE: versions/g-/goldy.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/g-/google-cloud-cpp-common.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/google-cloud-cpp-spanner.json ================================================ [File too large to display: 947 B] ================================================ FILE: versions/g-/google-cloud-cpp.json ================================================ [File too large to display: 15.5 KB] ================================================ FILE: versions/g-/googleapis.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/g-/gperf.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/g-/gperftools.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/g-/gpgme.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/g-/gpgmepp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/g-/gpgmm.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gppanel.json ================================================ [File too large to display: 837 B] ================================================ FILE: versions/g-/graaf.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/g-/grantlee.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/graphene.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/g-/graphicsmagick.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/g-/graphite2.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/g-/graphqlparser.json ================================================ [File too large to display: 936 B] ================================================ FILE: versions/g-/graphviz.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/g-/greatest.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/g-/grpc.json ================================================ [File too large to display: 12.0 KB] ================================================ FILE: versions/g-/grppi.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/g-/gsasl.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gsl-lite.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/g-/gsl.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/g-/gsoap.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/g-/gst-rtsp-server.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/g-/gstreamer.json ================================================ [File too large to display: 5.8 KB] ================================================ FILE: versions/g-/gtest.json ================================================ [File too large to display: 5.9 KB] ================================================ FILE: versions/g-/gtk.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/g-/gtk3.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/g-/gtkmm.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/g-/gtl.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/g-/gts.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/g-/gtsam.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/g-/guetzli.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/g-/guile.json ================================================ [File too large to display: 901 B] ================================================ FILE: versions/g-/guilite.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/g-/gul14.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/g-/gul17.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/g-/gumbo.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/g-/gz-cmake.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-cmake3.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/g-/gz-common.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/g-/gz-common5.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/g-/gz-fuel-tools.json ================================================ [File too large to display: 400 B] ================================================ FILE: versions/g-/gz-fuel-tools8.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gz-gui.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/g-/gz-gui7.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gz-math.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gz-math7.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-msgs.json ================================================ [File too large to display: 778 B] ================================================ FILE: versions/g-/gz-msgs9.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gz-physics.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/g-/gz-physics6.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-plugin.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gz-plugin2.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gz-rendering.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-rendering7.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gz-sensors.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-sensors7.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gz-sim.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/g-/gz-tools.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/g-/gz-tools2.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gz-transport.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/g-/gz-transport12.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/g-/gz-utils.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/g-/gz-utils2.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/g-/gzip-hpp.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/h-/h3.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/h-/h5py-lzf.json ================================================ [File too large to display: 954 B] ================================================ FILE: versions/h-/half.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/h-/halide.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/h-/hanjingo-high-jump.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/h-/happly.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/h-/hareflow.json ================================================ [File too large to display: 683 B] ================================================ FILE: versions/h-/harfbuzz.json ================================================ [File too large to display: 12.2 KB] ================================================ FILE: versions/h-/hash-library.json ================================================ [File too large to display: 507 B] ================================================ FILE: versions/h-/hashids.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/h-/hayai.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/h-/hazelcast-cpp-client.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/h-/hdf5.json ================================================ [File too large to display: 5.6 KB] ================================================ FILE: versions/h-/hdr-histogram.json ================================================ [File too large to display: 289 B] ================================================ FILE: versions/h-/healpix.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/h-/hedley.json ================================================ [File too large to display: 413 B] ================================================ FILE: versions/h-/hello-imgui.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/h-/hesphoros-uniconv.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/h-/hexi.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/h-/hexl.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/h-/hffix.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/h-/hfsm2.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/h-/hidapi.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/h-/highfive.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/h-/highs.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/h-/highway.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/h-/hikogui.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/h-/hiredis.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/h-/hjson-cpp.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/h-/hlslpp.json ================================================ [File too large to display: 517 B] ================================================ FILE: versions/h-/hnswlib.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/h-/hps.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/h-/hpx.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/h-/htscodecs.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/h-/htslib.json ================================================ [File too large to display: 895 B] ================================================ FILE: versions/h-/http-parser.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/h-/huira.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/h-/hungarian.json ================================================ [File too large to display: 547 B] ================================================ FILE: versions/h-/hunspell.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/h-/hwloc.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/h-/hyperscan.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/h-/hypodermic.json ================================================ [File too large to display: 415 B] ================================================ FILE: versions/h-/hypre.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/i-/iausofa.json ================================================ [File too large to display: 151 B] ================================================ FILE: versions/i-/icecream-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/i-/iceoryx.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/i-/icu.json ================================================ [File too large to display: 7.5 KB] ================================================ FILE: versions/i-/ideviceinstaller.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/i-/idevicerestore.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/i-/idyntree.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/i-/if97.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/i-/igloo.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/i-/ignition-cmake0.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/i-/ignition-cmake2.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/i-/ignition-common1.json ================================================ [File too large to display: 796 B] ================================================ FILE: versions/i-/ignition-common3.json ================================================ [File too large to display: 921 B] ================================================ FILE: versions/i-/ignition-fuel-tools1.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/i-/ignition-fuel-tools4.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/i-/ignition-math4.json ================================================ [File too large to display: 546 B] ================================================ FILE: versions/i-/ignition-math6.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/ignition-modularscripts.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/i-/ignition-msgs1.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/ignition-msgs5.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/i-/ignition-msgs6.json ================================================ [File too large to display: 919 B] ================================================ FILE: versions/i-/ignition-plugin1.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/i-/ignition-tools.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/i-/ignition-transport4.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/ignition-transport8.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/i-/ignition-transport9.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/i-/ignition-utils1.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/i-/igraph.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/i-/iguana.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/i-/iir1.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/i-/ijg-libjpeg.json ================================================ [File too large to display: 668 B] ================================================ FILE: versions/i-/ilmbase.json ================================================ [File too large to display: 808 B] ================================================ FILE: versions/i-/im3d.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/i-/imageinfo.json ================================================ [File too large to display: 968 B] ================================================ FILE: versions/i-/imath.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/i-/imcce-openfa.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/i-/imgui-node-editor.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/i-/imgui-sfml.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/i-/imgui.json ================================================ [File too large to display: 9.9 KB] ================================================ FILE: versions/i-/imguizmo.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/i-/immer.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/implot.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/i-/implot3d.json ================================================ [File too large to display: 269 B] ================================================ FILE: versions/i-/indicators.json ================================================ [File too large to display: 789 B] ================================================ FILE: versions/i-/indirect-value.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/i-/inflatelib.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/i-/influxdb-cxx.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/i-/infoware.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/i-/inih.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/i-/iniparser.json ================================================ [File too large to display: 964 B] ================================================ FILE: versions/i-/inipp.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/i-/inja.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/intel-ipsec.json ================================================ [File too large to display: 541 B] ================================================ FILE: versions/i-/intel-mkl.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/i-/intelrdfpmathlib.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/i-/intrusive-shared-ptr.json ================================================ [File too large to display: 392 B] ================================================ FILE: versions/i-/intx.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/i-/io2d.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/i-/iowa-hills-dsp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/i-/irrlicht.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/i-/irrxml.json ================================================ [File too large to display: 402 B] ================================================ FILE: versions/i-/irsdkcpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/i-/isal.json ================================================ [File too large to display: 667 B] ================================================ FILE: versions/i-/ismrmrd.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/i-/itay-grudev-singleapplication.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/i-/itk.json ================================================ [File too large to display: 4.9 KB] ================================================ FILE: versions/i-/itlib.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/i-/itpp.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/i-/itsy-bitsy.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/i-/ixwebsocket.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/j-/jack2.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/j-/jaeger-client-cpp.json ================================================ [File too large to display: 685 B] ================================================ FILE: versions/j-/jansson.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/j-/jasper.json ================================================ [File too large to display: 3.5 KB] ================================================ FILE: versions/j-/jbcoe-value-types.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/j-/jbig2dec.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/j-/jbigkit.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/j-/jemalloc.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/j-/jhasse-poly2tri.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/j-/jigson.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/j-/jinja2cpplight.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/j-/jkqtplotter.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/j-/joltphysics.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/j-/josuttis-jthread.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/j-/jsmn.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/j-/json-c.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/j-/json-dto.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/j-/json-glib.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/j-/json-rpc-cxx.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/j-/json-schema-validator.json ================================================ [File too large to display: 912 B] ================================================ FILE: versions/j-/json-spirit.json ================================================ [File too large to display: 796 B] ================================================ FILE: versions/j-/json11.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/j-/json5-parser.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/j-/jsoncons.json ================================================ [File too large to display: 7.3 KB] ================================================ FILE: versions/j-/jsoncpp.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/j-/jsonfusion.json ================================================ [File too large to display: 277 B] ================================================ FILE: versions/j-/jsonifier.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/j-/jsonnet.json ================================================ [File too large to display: 5.1 KB] ================================================ FILE: versions/j-/juce.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/j-/jwsung91-unilink.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/j-/jwt-cpp.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/j-/jxrlib.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/k-/kaitai-struct-cpp-stl-runtime.json ================================================ [File too large to display: 647 B] ================================================ FILE: versions/k-/kangaru.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kcp.json ================================================ [File too large to display: 420 B] ================================================ FILE: versions/k-/kd-soap.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kdalgorithms.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/k-/kdbindings.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/k-/kddockwidgets.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/k-/kdgpu.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/k-/kdiagram.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/k-/kdreports.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/k-/kdsingleapplication.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/kdsoap.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/k-/kdstatemachineeditor.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/kdutils.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/k-/kealib.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/k-/keccak-tiny.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/k-/kedixa-coke.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/k-/kenlm.json ================================================ [File too large to display: 933 B] ================================================ FILE: versions/k-/kerbal.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/k-/keystone.json ================================================ [File too large to display: 815 B] ================================================ FILE: versions/k-/kf5archive.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/k-/kf5attica.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/k-/kf5auth.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/k-/kf5bookmarks.json ================================================ [File too large to display: 906 B] ================================================ FILE: versions/k-/kf5codecs.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/k-/kf5completion.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5config.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/k-/kf5configwidgets.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5coreaddons.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/k-/kf5crash.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5dbusaddons.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/k-/kf5declarative.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5diagram.json ================================================ [File too large to display: 410 B] ================================================ FILE: versions/k-/kf5globalaccel.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/k-/kf5guiaddons.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5holidays.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/k-/kf5i18n.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/k-/kf5iconthemes.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5itemmodels.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5itemviews.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5jobwidgets.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5kcmutils.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5kio.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/k-/kf5newstuff.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5notifications.json ================================================ [File too large to display: 906 B] ================================================ FILE: versions/k-/kf5package.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5parts.json ================================================ [File too large to display: 402 B] ================================================ FILE: versions/k-/kf5plotting.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/k-/kf5service.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/k-/kf5solid.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/k-/kf5sonnet.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/k-/kf5syntaxhighlighting.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5texteditor.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/k-/kf5textwidgets.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5wallet.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf5widgetsaddons.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kf5windowsystem.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/k-/kf5xmlgui.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kf6archive.json ================================================ [File too large to display: 399 B] ================================================ FILE: versions/k-/kfr.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/k-/kinectsdk1.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/k-/kinectsdk2.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/k-/kissfft.json ================================================ [File too large to display: 686 B] ================================================ FILE: versions/k-/kissnet.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/k-/kleidiai.json ================================================ [File too large to display: 288 B] ================================================ FILE: versions/k-/klein.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/k-/knet.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/k-/knncolle-annoy.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/knncolle-hnsw.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/knncolle-kmknn.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/knncolle.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/k-/komihash.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/k-/krabsetw.json ================================================ [File too large to display: 798 B] ================================================ FILE: versions/k-/krb5.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/k-/ktx.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/k-/kubazip.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/k-/kubernetes.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/k-/kuku.json ================================================ [File too large to display: 784 B] ================================================ FILE: versions/k-/kvasir-mpl.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/k-/kwsys.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/l-/lager.json ================================================ [File too large to display: 813 B] ================================================ FILE: versions/l-/lapack-reference.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/lapack.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/lastools.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/laszip.json ================================================ [File too large to display: 796 B] ================================================ FILE: versions/l-/launch-darkly-server.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/lazy-importer.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/l-/lcm.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/lcms.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/l-/leaf.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/l-/lely-core.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/lemon-parser-generator.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/lemon.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/l-/lensfun.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/leptonica.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/l-/lerc.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/lest.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/level-zero.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/leveldb.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/levmar.json ================================================ [File too large to display: 522 B] ================================================ FILE: versions/l-/lexbor.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/lexilla.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/lfreist-hwinfo.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/l-/lib3mf.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libaaplus.json ================================================ [File too large to display: 932 B] ================================================ FILE: versions/l-/libadlmidi.json ================================================ [File too large to display: 408 B] ================================================ FILE: versions/l-/libadwaita.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libaec.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/l-/libaes-siv.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libaiff.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/l-/libaio.json ================================================ [File too large to display: 150 B] ================================================ FILE: versions/l-/libalkimia.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/l-/libao.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libarchive.json ================================================ [File too large to display: 6.7 KB] ================================================ FILE: versions/l-/libaribcaption.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libass.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libassert.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libassuan.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libatomic-ops.json ================================================ [File too large to display: 900 B] ================================================ FILE: versions/l-/libavif.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/l-/libb2.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libbacktrace.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/l-/libbf.json ================================================ [File too large to display: 671 B] ================================================ FILE: versions/l-/libbluray.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/l-/libbson.json ================================================ [File too large to display: 6.7 KB] ================================================ FILE: versions/l-/libcaer.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libcamera.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libcanberra.json ================================================ [File too large to display: 643 B] ================================================ FILE: versions/l-/libcap.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libcbor.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libcds.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/l-/libcerf.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/l-/libcgroup.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libcoap.json ================================================ [File too large to display: 281 B] ================================================ FILE: versions/l-/libconfig.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libconfuse.json ================================================ [File too large to display: 952 B] ================================================ FILE: versions/l-/libcopp.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libcoro.json ================================================ [File too large to display: 774 B] ================================================ FILE: versions/l-/libcorrect.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libcpplocate.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/l-/libcrafter.json ================================================ [File too large to display: 784 B] ================================================ FILE: versions/l-/libcred.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libcroco.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/l-/libcsv.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libcuckoo.json ================================================ [File too large to display: 547 B] ================================================ FILE: versions/l-/libcurl-simple-https.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libczi.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/l-/libdatachannel.json ================================================ [File too large to display: 5.2 KB] ================================================ FILE: versions/l-/libdatrie.json ================================================ [File too large to display: 813 B] ================================================ FILE: versions/l-/libdc1394.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libde265.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/l-/libdeflate.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libdicom.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libdisasm.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libdivide.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libdjinterop.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libdmtx.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libdmx.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libdshowcapture.json ================================================ [File too large to display: 806 B] ================================================ FILE: versions/l-/libdvdcss.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/l-/libdvdnav.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/l-/libdvdread.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/l-/libdwarf.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libdxfrw.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libe57.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libe57format.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libebur128.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/l-/libedit.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/l-/libenvpp.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libepoxy.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/l-/liberasurecode.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libev.json ================================================ [File too large to display: 767 B] ================================================ FILE: versions/l-/libevdev.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/libevent.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/l-/libeventheader-decode.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libeventheader-tracepoint.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/libevhtp.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/l-/libexif.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libfabric.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libffi.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/l-/libfido2.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libflac.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/l-/libfontenc.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libfork.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libfort.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/l-/libfreenect2.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/libfs.json ================================================ [File too large to display: 525 B] ================================================ FILE: versions/l-/libftdi.json ================================================ [File too large to display: 804 B] ================================================ FILE: versions/l-/libftdi1.json ================================================ [File too large to display: 900 B] ================================================ FILE: versions/l-/libfuse.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/libgcrypt.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libgd.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libgeotiff.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/l-/libgig.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libgit2.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/l-/libgme.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libgnutls.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libgo.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/l-/libgossip.json ================================================ [File too large to display: 531 B] ================================================ FILE: versions/l-/libgpg-error.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libgpiod.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libgpod.json ================================================ [File too large to display: 704 B] ================================================ FILE: versions/l-/libgta.json ================================================ [File too large to display: 810 B] ================================================ FILE: versions/l-/libguarded.json ================================================ [File too large to display: 821 B] ================================================ FILE: versions/l-/libgwenhywfar.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libgxps.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libharu.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libhat.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libhdfs3.json ================================================ [File too large to display: 974 B] ================================================ FILE: versions/l-/libheif.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/l-/libhsplasma.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libhv.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/libhydrogen.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/l-/libical.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libice.json ================================================ [File too large to display: 775 B] ================================================ FILE: versions/l-/libiconv.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/l-/libics.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libid3tag.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/l-/libideviceactivation.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/l-/libidn2.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/l-/libigl.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/l-/libilbc.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/l-/libimobiledevice-glue.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libimobiledevice.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/libinterpolate.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libirecovery.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libjpeg-turbo.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/l-/libjuice.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/l-/libjxl.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/l-/libkeyfinder.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/l-/libkml.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/liblas.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/liblbfgs.json ================================================ [File too large to display: 409 B] ================================================ FILE: versions/l-/libleidenalg.json ================================================ [File too large to display: 777 B] ================================================ FILE: versions/l-/liblemon.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/l-/liblinear.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/liblo.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/liblrc.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/liblsl.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/liblsquic.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/l-/libltdl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/liblttng-ust.json ================================================ [File too large to display: 279 B] ================================================ FILE: versions/l-/liblzf.json ================================================ [File too large to display: 269 B] ================================================ FILE: versions/l-/liblzma.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/l-/libmad.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/l-/libmagic.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/libmariadb.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/l-/libmatio-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libmaxminddb.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libmediainfo.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/libmem.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/l-/libmemcached-awesome.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libmesh.json ================================================ [File too large to display: 928 B] ================================================ FILE: versions/l-/libmicrodns.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libmicrohttpd.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/l-/libmidi2.json ================================================ [File too large to display: 889 B] ================================================ FILE: versions/l-/libmikmod.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libmodbus.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libmodman.json ================================================ [File too large to display: 812 B] ================================================ FILE: versions/l-/libmodplug.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/libmorton.json ================================================ [File too large to display: 797 B] ================================================ FILE: versions/l-/libmount.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libmpeg2.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/l-/libmspack.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libmt32emu.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/l-/libmtp.json ================================================ [File too large to display: 289 B] ================================================ FILE: versions/l-/libmultisense.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libmupdf.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/l-/libmypaint.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libmysofa.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libmysql.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/l-/libnice-gst.json ================================================ [File too large to display: 779 B] ================================================ FILE: versions/l-/libnice.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libnick.json ================================================ [File too large to display: 6.5 KB] ================================================ FILE: versions/l-/libnoise.json ================================================ [File too large to display: 544 B] ================================================ FILE: versions/l-/libnop.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/l-/libnotify.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libobfuscate.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/l-/libodb-boost.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libodb-mysql.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libodb-pgsql.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libodb-sqlite.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libodb.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libofx.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libogg.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libopenmpt.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libopensp.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libopnmidi.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libopusenc.json ================================================ [File too large to display: 929 B] ================================================ FILE: versions/l-/liboqs.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/liborigin.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libosdp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libosip2.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/libosmium.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libosmscout.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libp7-baical.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libp7client.json ================================================ [File too large to display: 921 B] ================================================ FILE: versions/l-/libpcap.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libpff.json ================================================ [File too large to display: 976 B] ================================================ FILE: versions/l-/libpg-query.json ================================================ [File too large to display: 151 B] ================================================ FILE: versions/l-/libphonenumber.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/l-/libplist.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libpmemobj-cpp.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libpng.json ================================================ [File too large to display: 7.2 KB] ================================================ FILE: versions/l-/libpopcnt.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/l-/libpopt.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/l-/libpq.json ================================================ [File too large to display: 7.5 KB] ================================================ FILE: versions/l-/libpqxx.json ================================================ [File too large to display: 3.7 KB] ================================================ FILE: versions/l-/libprotobuf-mutator.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/libproxy.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/libpsl.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/libqcow.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libqglviewer.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libqrencode.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libqtrest.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/librabbitmq.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libraqm.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libraw.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/l-/librdkafka.json ================================================ [File too large to display: 5.3 KB] ================================================ FILE: versions/l-/libredwg.json ================================================ [File too large to display: 789 B] ================================================ FILE: versions/l-/libremidi.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libressl.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/librsvg.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/librsync.json ================================================ [File too large to display: 959 B] ================================================ FILE: versions/l-/librtmp.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/librtpi.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/librttopo.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libsamplerate.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libsass.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/l-/libsbml.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libsbsms.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/l-/libscran-umappp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libsecret.json ================================================ [File too large to display: 905 B] ================================================ FILE: versions/l-/libsercomm.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libserial.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libsersi.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libsharp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libshout.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libsigcpp-3.json ================================================ [File too large to display: 280 B] ================================================ FILE: versions/l-/libsigcpp.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/libslirp.json ================================================ [File too large to display: 815 B] ================================================ FILE: versions/l-/libsm.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libsmacker.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libsmb2.json ================================================ [File too large to display: 686 B] ================================================ FILE: versions/l-/libsndfile.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/l-/libsnoretoast.json ================================================ [File too large to display: 405 B] ================================================ FILE: versions/l-/libsodium.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/l-/libsonic.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libsoundio.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libsoup.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libspatialindex.json ================================================ [File too large to display: 780 B] ================================================ FILE: versions/l-/libspatialite.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/l-/libspnav.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/l-/libspng.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libsquish.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/libsrt.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libsrtp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libssh.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/l-/libssh2.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/l-/libstemmer.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libstk.json ================================================ [File too large to display: 678 B] ================================================ FILE: versions/l-/libsvm.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libsystemd.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libtar.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/libtasn1.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libtcod.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libtess2.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/libtheora.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/libtins.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libtomcrypt.json ================================================ [File too large to display: 417 B] ================================================ FILE: versions/l-/libtommath.json ================================================ [File too large to display: 914 B] ================================================ FILE: versions/l-/libtorch.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/libtorrent.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/l-/libtracepoint-control.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/libtracepoint-decode.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/l-/libtracepoint.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/l-/libu2f-server.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/l-/libudfread.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/l-/libudis86.json ================================================ [File too large to display: 731 B] ================================================ FILE: versions/l-/libudns.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/l-/libui.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/l-/libunibreak.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libunifex.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/l-/libunistring.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libunwind.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libupnp.json ================================================ [File too large to display: 276 B] ================================================ FILE: versions/l-/liburcu.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/liburing.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/l-/libusb-win32.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libusb.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/l-/libusbmuxd.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libusbp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libuuid.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/l-/libuv.json ================================================ [File too large to display: 7.2 KB] ================================================ FILE: versions/l-/libuvc.json ================================================ [File too large to display: 952 B] ================================================ FILE: versions/l-/libva.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libvault.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libversion.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libvhdi.json ================================================ [File too large to display: 279 B] ================================================ FILE: versions/l-/libvmaf.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/libvmdk.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libvorbis.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/l-/libvpx.json ================================================ [File too large to display: 5.8 KB] ================================================ FILE: versions/l-/libwandio.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libwebm.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/libwebp.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/l-/libwebsockets.json ================================================ [File too large to display: 5.8 KB] ================================================ FILE: versions/l-/libx11.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libxau.json ================================================ [File too large to display: 400 B] ================================================ FILE: versions/l-/libxaw.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libxcomposite.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxcrypt.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libxcvt.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxdamage.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxdf.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/libxdiff.json ================================================ [File too large to display: 657 B] ================================================ FILE: versions/l-/libxdmcp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxext.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libxfixes.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxfont.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxft.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxi.json ================================================ [File too large to display: 396 B] ================================================ FILE: versions/l-/libxinerama.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxkbcommon.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxkbfile.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libxlsxwriter.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/libxml2.json ================================================ [File too large to display: 6.2 KB] ================================================ FILE: versions/l-/libxmlb.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/l-/libxmlmm.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/l-/libxmlpp.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/libxmp-lite.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/libxmp.json ================================================ [File too large to display: 543 B] ================================================ FILE: versions/l-/libxmu.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxpm.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/libxpresent.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxrandr.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libxrender.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libxres.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/libxscrnsaver.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxslt.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/l-/libxt.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxtst.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/libxv.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/l-/libxxf86vm.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/libyaml.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/libyuv.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/libzen.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/l-/libzim.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/libzip.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/l-/libzippp.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/licensepp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/lief.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/l-/lightgbm.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/lightningscanner.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/lilv.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/linalg.json ================================================ [File too large to display: 529 B] ================================================ FILE: versions/l-/linenoise-ng.json ================================================ [File too large to display: 585 B] ================================================ FILE: versions/l-/linmath.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/l-/lionkor-commandline.json ================================================ [File too large to display: 551 B] ================================================ FILE: versions/l-/liquid-dsp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/litehtml.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/live555.json ================================================ [File too large to display: 5.3 KB] ================================================ FILE: versions/l-/livepp.json ================================================ [File too large to display: 951 B] ================================================ FILE: versions/l-/llama-cpp.json ================================================ [File too large to display: 891 B] ================================================ FILE: versions/l-/llfio.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/l-/llgi.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/l-/llgl.json ================================================ [File too large to display: 841 B] ================================================ FILE: versions/l-/llhttp.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/l-/llnl-units.json ================================================ [File too large to display: 400 B] ================================================ FILE: versions/l-/lloyal-ai-inlined-vector.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/l-/llvm.json ================================================ [File too large to display: 8.3 KB] ================================================ FILE: versions/l-/lmdb.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/l-/lockpp.json ================================================ [File too large to display: 642 B] ================================================ FILE: versions/l-/lodepng-c.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/l-/lodepng.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/l-/log4cplus.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/l-/log4cpp-log4cpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/log4cpp.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/log4cxx.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/l-/logme.json ================================================ [File too large to display: 526 B] ================================================ FILE: versions/l-/loguru.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/lpeg.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/ls-qpack.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/ltla-aarand.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/l-/ltla-cppirlba.json ================================================ [File too large to display: 793 B] ================================================ FILE: versions/l-/ltla-cppkmeans.json ================================================ [File too large to display: 658 B] ================================================ FILE: versions/l-/ltla-powerit.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/l-/ltla-sanisizer.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/l-/ltla-subpar.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/lua-compat53.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/l-/lua.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/l-/luabridge.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/l-/luabridge3.json ================================================ [File too large to display: 279 B] ================================================ FILE: versions/l-/luafilesystem.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/l-/luajit.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/l-/luasec.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/l-/luasocket.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/l-/luau.json ================================================ [File too large to display: 5.8 KB] ================================================ FILE: versions/l-/luminoengine.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/l-/lunarg-vulkantools.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/l-/lunasvg.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/l-/luv.json ================================================ [File too large to display: 289 B] ================================================ FILE: versions/l-/lv2.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/l-/lwlog.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/l-/lz4.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/l-/lzav.json ================================================ [File too large to display: 640 B] ================================================ FILE: versions/l-/lzfse.json ================================================ [File too large to display: 800 B] ================================================ FILE: versions/l-/lzo.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/l-/lzokay.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/m-/maddy.json ================================================ [File too large to display: 782 B] ================================================ FILE: versions/m-/magic-args.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/magic-enum.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/m-/magic-get.json ================================================ [File too large to display: 571 B] ================================================ FILE: versions/m-/magma.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/m-/magnum-extras.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/magnum-integration.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/magnum-plugins.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/m-/magnum.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/m-/mailio.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/makeid.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/manif.json ================================================ [File too large to display: 408 B] ================================================ FILE: versions/m-/manifold.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/m-/mapbox-geojson-cpp.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/m-/mapbox-geojson-vt-cpp.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/m-/mapbox-geometry.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/m-/mapbox-polylabel.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/m-/mapbox-variant.json ================================================ [File too large to display: 819 B] ================================================ FILE: versions/m-/mapbox-wagyu.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/m-/mapnik.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/m-/marble.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/m-/marchingcubecpp.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/m-/mariadb-connector-cpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/marisa-trie.json ================================================ [File too large to display: 675 B] ================================================ FILE: versions/m-/marl.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/m-/marzbanpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/matajoh-libnpy.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/m-/matchit.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/materialx.json ================================================ [File too large to display: 905 B] ================================================ FILE: versions/m-/mathc.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/mathgl.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/m-/mathter.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/m-/matio.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/m-/matplotlib-cpp.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/matplotplusplus.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/matroska.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/m-/mbedtls.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/m-/mcap.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/m-/mchehab-zbar.json ================================================ [File too large to display: 912 B] ================================================ FILE: versions/m-/mcpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/m-/md4c.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/mdl-sdk.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/m-/mdns.json ================================================ [File too large to display: 528 B] ================================================ FILE: versions/m-/mdnsresponder.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/mdspan.json ================================================ [File too large to display: 533 B] ================================================ FILE: versions/m-/mecab.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/m-/meekrosoft-fff.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/m-/memorymodule.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/meojson.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/mesa.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/m-/meschach.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/m-/meshoptimizer.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/m-/metis.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/m-/metrohash.json ================================================ [File too large to display: 803 B] ================================================ FILE: versions/m-/mexce.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/mfl.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/m-/mfx-dispatch.json ================================================ [File too large to display: 905 B] ================================================ FILE: versions/m-/mgclient.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/mgnlibs.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/m-/mhook.json ================================================ [File too large to display: 414 B] ================================================ FILE: versions/m-/michaelmiller-sec21.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/micro-gl.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/m-/microlog.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/microsoft-signalr.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/m-/microsoft-windows-devices-midi2.json ================================================ [File too large to display: 164 B] ================================================ FILE: versions/m-/mikktspace.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/mimalloc.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/m-/mimicpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/m-/minc.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/m-/minhook.json ================================================ [File too large to display: 919 B] ================================================ FILE: versions/m-/miniaudio.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/m-/minifb.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/minimp3.json ================================================ [File too large to display: 708 B] ================================================ FILE: versions/m-/minio-cpp.json ================================================ [File too large to display: 783 B] ================================================ FILE: versions/m-/miniply.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/m-/minisat-master-keying.json ================================================ [File too large to display: 679 B] ================================================ FILE: versions/m-/minitrace.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/m-/miniupnpc.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/miniz.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/minizip-ng.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/m-/minizip.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/m-/mio.json ================================================ [File too large to display: 706 B] ================================================ FILE: versions/m-/mlpack.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/m-/mman.json ================================================ [File too large to display: 857 B] ================================================ FILE: versions/m-/mmloader.json ================================================ [File too large to display: 817 B] ================================================ FILE: versions/m-/mmx.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/m-/mnn.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/m-/modern-cpp-kafka.json ================================================ [File too large to display: 297 B] ================================================ FILE: versions/m-/modp-base64.json ================================================ [File too large to display: 692 B] ================================================ FILE: versions/m-/mongo-c-driver.json ================================================ [File too large to display: 7.8 KB] ================================================ FILE: versions/m-/mongo-cxx-driver.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/m-/mongoose.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/m-/monkeys-audio.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/m-/moos-core.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/m-/moos-essential.json ================================================ [File too large to display: 818 B] ================================================ FILE: versions/m-/moos-ui.json ================================================ [File too large to display: 818 B] ================================================ FILE: versions/m-/morcules-swiftnet.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/morphologica.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/m-/morton-nd.json ================================================ [File too large to display: 808 B] ================================================ FILE: versions/m-/mosquitto.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/m-/mozjpeg.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/m-/mp-units.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/m-/mp3lame.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/m-/mpark-patterns.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/m-/mpark-variant.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/m-/mpc.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/m-/mpfr.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/m-/mpg123.json ================================================ [File too large to display: 4.9 KB] ================================================ FILE: versions/m-/mpi.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/m-/mpir.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/m-/mpmcqueue.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/m-/mqtt-cpp.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/m-/ms-angle.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/m-/ms-gdk.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/m-/ms-gdkx.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/m-/ms-gltf.json ================================================ [File too large to display: 968 B] ================================================ FILE: versions/m-/ms-gsl.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/m-/ms-ifc-sdk.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/m-/ms-quic.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/m-/msdfgen.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/msgpack-c.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/msgpack.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/m-/msgpack11.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/m-/msh3.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/m-/msinttypes.json ================================================ [File too large to display: 610 B] ================================================ FILE: versions/m-/msix.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/msmpi.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/m-/msolve.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/msquic.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/m-/mstch.json ================================================ [File too large to display: 546 B] ================================================ FILE: versions/m-/mtlt.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/m-/muda.json ================================================ [File too large to display: 281 B] ================================================ FILE: versions/m-/mujoco.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/m-/mujs.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/m-/munit.json ================================================ [File too large to display: 843 B] ================================================ FILE: versions/m-/muparser.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/m-/murmur3.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/m-/murmurhash.json ================================================ [File too large to display: 980 B] ================================================ FILE: versions/m-/mvfst.json ================================================ [File too large to display: 8.8 KB] ================================================ FILE: versions/m-/mxml.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/m-/mygui.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/m-/mypaint-brushes.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/m-/mysql-connector-cpp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/m-/mysvac-jsonlib.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/m-/mzying2001-sw.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/n-/nameof.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/n-/nana.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/n-/nano-signal-slot.json ================================================ [File too large to display: 725 B] ================================================ FILE: versions/n-/nanoarrow.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/n-/nanobench.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/n-/nanobind.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/n-/nanodbc.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/n-/nanoflann.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/n-/nanogui.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/n-/nanojsonc.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/n-/nanomsg.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/n-/nanopb.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/n-/nanoprintf.json ================================================ [File too large to display: 932 B] ================================================ FILE: versions/n-/nanorange.json ================================================ [File too large to display: 555 B] ================================================ FILE: versions/n-/nanort.json ================================================ [File too large to display: 571 B] ================================================ FILE: versions/n-/nanosvg.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/n-/nanovg.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/n-/nativefiledialog-extended.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/n-/nativefiledialog.json ================================================ [File too large to display: 430 B] ================================================ FILE: versions/n-/nayuki-qr-code-generator.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/n-/nccl.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/n-/ncnn.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/n-/ncurses.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/n-/ndis-driver-library.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/neargye-semver.json ================================================ [File too large to display: 915 B] ================================================ FILE: versions/n-/ned14-internal-quickcpplib.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/n-/neko-event.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/neko-function.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/n-/neko-log.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/n-/neko-network.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/neko-schema.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/neko-system.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/neko-threadpool.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/n-/neon2sse.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/n-/neoslippi.json ================================================ [File too large to display: 151 B] ================================================ FILE: versions/n-/netcdf-c.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/n-/netcdf-cxx4.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/n-/netcpp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/n-/netgen.json ================================================ [File too large to display: 663 B] ================================================ FILE: versions/n-/nethost.json ================================================ [File too large to display: 932 B] ================================================ FILE: versions/n-/nettle.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/n-/networkdirect-sdk.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/n-/ng-log.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/nghttp2-asio.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/n-/nghttp2.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/n-/nghttp3.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/n-/ngspice.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/n-/ngtcp2.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/n-/nifly.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/n-/nifticlib.json ================================================ [File too large to display: 837 B] ================================================ FILE: versions/n-/nlohmann-fifo-map.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/n-/nlohmann-json.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/n-/nlopt.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/n-/nmap.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/n-/nmslib.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/n-/nng.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/n-/nngpp.json ================================================ [File too large to display: 813 B] ================================================ FILE: versions/n-/nnpack.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/n-/node-addon-api.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/n-/node-api-headers.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/n-/node-api.json ================================================ [File too large to display: 425 B] ================================================ FILE: versions/n-/nodesoup.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/n-/nonius.json ================================================ [File too large to display: 708 B] ================================================ FILE: versions/n-/nonstd-bit-lite.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/n-/nonstd-scope-lite.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/nowide.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/n-/nrf-ble-driver.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/n-/nspr.json ================================================ [File too large to display: 1015 B] ================================================ FILE: versions/n-/nss.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/n-/nsync.json ================================================ [File too large to display: 779 B] ================================================ FILE: versions/n-/nt-wrapper.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/n-/ntf-core.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/n-/nu-book-zxing-cpp.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/n-/nuklear.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/n-/numactl.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/n-/numcpp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/n-/nuraft.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/n-/nuspell.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/n-/nvidia-cutlass.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/n-/nvtt.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/n-/nyan-lang.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/o-/oatpp-consul.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/o-/oatpp-curl.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/o-/oatpp-libressl.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/o-/oatpp-mbedtls.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/o-/oatpp-mongo.json ================================================ [File too large to display: 530 B] ================================================ FILE: versions/o-/oatpp-openssl.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/o-/oatpp-postgresql.json ================================================ [File too large to display: 530 B] ================================================ FILE: versions/o-/oatpp-sqlite.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/o-/oatpp-ssdp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/o-/oatpp-swagger.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/o-/oatpp-websocket.json ================================================ [File too large to display: 801 B] ================================================ FILE: versions/o-/oatpp-zlib.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/o-/oatpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/o-/obfuscxx.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/o-/oboe.json ================================================ [File too large to display: 274 B] ================================================ FILE: versions/o-/observer-ptr-lite.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/o-/ocilib.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/o-/octave.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/o-/octomap.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/o-/ode.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/o-/offscale-libetcd-cpp.json ================================================ [File too large to display: 571 B] ================================================ FILE: versions/o-/ogdf.json ================================================ [File too large to display: 982 B] ================================================ FILE: versions/o-/ogre-next.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/o-/ogre.json ================================================ [File too large to display: 6.1 KB] ================================================ FILE: versions/o-/ois.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/o-/omniorb.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/o-/omniverse-physx-sdk.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/o-/ompl.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/o-/omplapp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/o-/onednn.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/o-/oniguruma.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/o-/onnx-optimizer.json ================================================ [File too large to display: 820 B] ================================================ FILE: versions/o-/onnx.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/o-/onnxruntime-gpu.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/o-/onnxruntime.json ================================================ [File too large to display: 156 B] ================================================ FILE: versions/o-/oof.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/o-/open-dis-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/open62541.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/o-/open62541pp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/o-/openal-soft.json ================================================ [File too large to display: 5.5 KB] ================================================ FILE: versions/o-/openblas.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/o-/opencascade.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/o-/opencc.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/o-/opencensus-cpp.json ================================================ [File too large to display: 826 B] ================================================ FILE: versions/o-/opencl.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/o-/opencolorio-tools.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/o-/opencolorio.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/o-/opencsg.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/o-/openctm.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/o-/opencv.json ================================================ [File too large to display: 7.7 KB] ================================================ FILE: versions/o-/opencv2.json ================================================ [File too large to display: 3.5 KB] ================================================ FILE: versions/o-/opencv3.json ================================================ [File too large to display: 6.9 KB] ================================================ FILE: versions/o-/opencv4.json ================================================ [File too large to display: 12.1 KB] ================================================ FILE: versions/o-/opendnp3.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/o-/openexr.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/o-/openfbx.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/o-/openfx.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/o-/opengl-registry.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/o-/opengl.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/o-/openh264.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/o-/openigtlink.json ================================================ [File too large to display: 666 B] ================================================ FILE: versions/o-/openimageio.json ================================================ [File too large to display: 10.3 KB] ================================================ FILE: versions/o-/openjpeg.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/o-/openjph.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/o-/openldap.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/o-/openmama.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/o-/openmesh.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/o-/openmpi.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/o-/openmvg.json ================================================ [File too large to display: 3.7 KB] ================================================ FILE: versions/o-/openmvs.json ================================================ [File too large to display: 3.5 KB] ================================================ FILE: versions/o-/openni2.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/o-/openscap.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/o-/openslide.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/o-/openssl-unix.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/o-/openssl-uwp.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/o-/openssl-windows.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/o-/openssl.json ================================================ [File too large to display: 15.5 KB] ================================================ FILE: versions/o-/opensubdiv.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/o-/opentelemetry-cpp-contrib-version.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/o-/opentelemetry-cpp.json ================================================ [File too large to display: 7.0 KB] ================================================ FILE: versions/o-/opentelemetry-fluentd.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/o-/opentracing.json ================================================ [File too large to display: 928 B] ================================================ FILE: versions/o-/openturns.json ================================================ [File too large to display: 769 B] ================================================ FILE: versions/o-/openvdb.json ================================================ [File too large to display: 3.5 KB] ================================================ FILE: versions/o-/openvino.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/o-/openvpn3.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/o-/openvr.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/o-/openxlsx.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/o-/openxr-loader.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/o-/openzl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/optimus-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/optional-bare.json ================================================ [File too large to display: 544 B] ================================================ FILE: versions/o-/optional-lite.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/o-/opus.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/o-/opusfile.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/o-/orange-math.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/o-/orange-vmprotect-sdk.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/orc.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/o-/orefkov-simstr.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/o-/ormpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/orocos-kdl.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/o-/oscpack.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/o-/osg-qt.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/o-/osg.json ================================================ [File too large to display: 5.4 KB] ================================================ FILE: versions/o-/osgearth.json ================================================ [File too large to display: 5.4 KB] ================================================ FILE: versions/o-/osi.json ================================================ [File too large to display: 969 B] ================================================ FILE: versions/o-/osmanip.json ================================================ [File too large to display: 162 B] ================================================ FILE: versions/o-/osp-collection.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/o-/osqp-eigen.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/o-/osqp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/o-/otl.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/o-/outcome.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/p-/p-ranav-csv.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/p-/p-ranav-csv2.json ================================================ [File too large to display: 843 B] ================================================ FILE: versions/p-/p-ranav-glob.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/pagmo2.json ================================================ [File too large to display: 779 B] ================================================ FILE: versions/p-/paho-mqtt.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/p-/paho-mqttpp3.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/p-/palsigslot.json ================================================ [File too large to display: 530 B] ================================================ FILE: versions/p-/pango.json ================================================ [File too large to display: 5.1 KB] ================================================ FILE: versions/p-/pangolin.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/p-/pangomm.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/p-/parallel-hashmap.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/p-/parallelstl.json ================================================ [File too large to display: 828 B] ================================================ FILE: versions/p-/paraview.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/p-/parmetis.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/parquet.json ================================================ [File too large to display: 532 B] ================================================ FILE: versions/p-/parsi.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/parson.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/p-/patternia.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/p-/pbc.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/p-/pcapplusplus.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/p-/pcg.json ================================================ [File too large to display: 700 B] ================================================ FILE: versions/p-/pciids.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/pcl.json ================================================ [File too large to display: 9.1 KB] ================================================ FILE: versions/p-/pcre.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/p-/pcre2.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/p-/pdal-c.json ================================================ [File too large to display: 925 B] ================================================ FILE: versions/p-/pdal-dimbuilder.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/p-/pdal.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/p-/pdcurses.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/p-/pdqsort.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/p-/pe-parse.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/p-/pegtl-2.json ================================================ [File too large to display: 942 B] ================================================ FILE: versions/p-/pegtl.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/p-/perfetto.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/p-/pffft.json ================================================ [File too large to display: 418 B] ================================================ FILE: versions/p-/pfring.json ================================================ [File too large to display: 960 B] ================================================ FILE: versions/p-/pfultz2-linq.json ================================================ [File too large to display: 706 B] ================================================ FILE: versions/p-/phnt.json ================================================ [File too large to display: 565 B] ================================================ FILE: versions/p-/physac.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/p-/physfs.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/p-/physx.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/p-/picobench.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/picojson.json ================================================ [File too large to display: 678 B] ================================================ FILE: versions/p-/picosha2.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/piex.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/pipewire.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/p-/pistache.json ================================================ [File too large to display: 835 B] ================================================ FILE: versions/p-/pixel.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/p-/pixman.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/p-/pkgconf.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/p-/plasma-wayland-protocols.json ================================================ [File too large to display: 274 B] ================================================ FILE: versions/p-/platform-folders.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/p-/plf-colony.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/plf-hive.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/p-/plf-indiesort.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/plf-list.json ================================================ [File too large to display: 683 B] ================================================ FILE: versions/p-/plf-nanotimer.json ================================================ [File too large to display: 557 B] ================================================ FILE: versions/p-/plf-queue.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/p-/plf-stack.json ================================================ [File too large to display: 558 B] ================================================ FILE: versions/p-/plib.json ================================================ [File too large to display: 932 B] ================================================ FILE: versions/p-/plibsys.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/p-/plog.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/p-/plplot.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/p-/plustache.json ================================================ [File too large to display: 671 B] ================================================ FILE: versions/p-/plutosvg.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/p-/plutovg.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/p-/pmdk.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/p-/pmp-library.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/pngpp.json ================================================ [File too large to display: 408 B] ================================================ FILE: versions/p-/pngwriter.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/p-/pocketfft.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/pocketpy.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/p-/poco.json ================================================ [File too large to display: 6.5 KB] ================================================ FILE: versions/p-/podofo.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/p-/poissonrecon.json ================================================ [File too large to display: 295 B] ================================================ FILE: versions/p-/poly2tri.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/p-/polyclipping.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/p-/polyhook2.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/p-/polymorphic-value.json ================================================ [File too large to display: 414 B] ================================================ FILE: versions/p-/ponder.json ================================================ [File too large to display: 810 B] ================================================ FILE: versions/p-/poolparty.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/poolstl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/poppler-data.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/p-/poppler.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/p-/popsift.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/p-/portable-file-dialogs.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/p-/portable-snippets.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/p-/portaudio.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/p-/portmidi.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/p-/portsmf.json ================================================ [File too large to display: 521 B] ================================================ FILE: versions/p-/poselib.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/p-/ppconsul.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/p-/ppmagic.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/p-/ppqsort.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/p-/pprint.json ================================================ [File too large to display: 706 B] ================================================ FILE: versions/p-/pqp.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/p-/pravila00-enum-string.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/pravila00-enumflag.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/pravila00-make-vector.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/presentmon.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/proj.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/p-/proj4.json ================================================ [File too large to display: 3.7 KB] ================================================ FILE: versions/p-/projectm-eval.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/p-/projectm.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/p-/prometheus-cpp.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/p-/promise-cpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/p-/protobuf-c.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/p-/protobuf.json ================================================ [File too large to display: 10.9 KB] ================================================ FILE: versions/p-/protopuf.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/p-/protozero.json ================================================ [File too large to display: 683 B] ================================================ FILE: versions/p-/proxsuite.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/p-/proxy.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/p-/proxygen.json ================================================ [File too large to display: 9.7 KB] ================================================ FILE: versions/p-/proxywrapper.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/p-/psimd.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/p-/ptc-print.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/p-/ptex.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/p-/pthread-stubs.json ================================================ [File too large to display: 515 B] ================================================ FILE: versions/p-/pthread.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/p-/pthreadpool.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/pthreads.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/p-/ptyqt.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/p-/pugixml.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/p-/pulsar-client-cpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/p-/pulseaudio.json ================================================ [File too large to display: 519 B] ================================================ FILE: versions/p-/pulzed-mini.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/p-/pxlib.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/p-/pybind11.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/p-/pystring.json ================================================ [File too large to display: 944 B] ================================================ FILE: versions/p-/python2.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/p-/python3.json ================================================ [File too large to display: 11.3 KB] ================================================ FILE: versions/q-/qca.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/q-/qcbor.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/q-/qcoro.json ================================================ [File too large to display: 652 B] ================================================ FILE: versions/q-/qcustomplot.json ================================================ [File too large to display: 800 B] ================================================ FILE: versions/q-/qdldl.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/q-/qgis-o2.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/q-/qhttpengine.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/q-/qhull.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/q-/qlementine-icons.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/q-/qlementine.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/q-/qmex.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/q-/qnnpack.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/q-/qoi.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/q-/qoixx.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/q-/qpdf.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/q-/qpid-proton.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/q-/qpoases.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/q-/qscintilla.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/q-/qt-advanced-docking-system.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/q-/qt.json ================================================ [File too large to display: 5.7 KB] ================================================ FILE: versions/q-/qt3d.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/q-/qt5-3d.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/q-/qt5-activeqt.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-androidextras.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/q-/qt5-base.json ================================================ [File too large to display: 16.9 KB] ================================================ FILE: versions/q-/qt5-canvas3d.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/q-/qt5-charts.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qt5-connectivity.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/q-/qt5-datavis3d.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qt5-declarative.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/q-/qt5-doc.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/q-/qt5-gamepad.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/q-/qt5-graphicaleffects.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-imageformats.json ================================================ [File too large to display: 5.6 KB] ================================================ FILE: versions/q-/qt5-location.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/q-/qt5-macextras.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/q-/qt5-modularscripts.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/q-/qt5-mqtt.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/q-/qt5-multimedia.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-networkauth.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qt5-purchasing.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/q-/qt5-quick3d.json ================================================ [File too large to display: 150 B] ================================================ FILE: versions/q-/qt5-quickcontrols.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-quickcontrols2.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-quicktimeline.json ================================================ [File too large to display: 150 B] ================================================ FILE: versions/q-/qt5-remoteobjects.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/q-/qt5-script.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/q-/qt5-scxml.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/q-/qt5-sensors.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/q-/qt5-serialbus.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/q-/qt5-serialport.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/q-/qt5-speech.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qt5-svg.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-tools.json ================================================ [File too large to display: 5.5 KB] ================================================ FILE: versions/q-/qt5-translations.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/q-/qt5-virtualkeyboard.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qt5-wayland.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/q-/qt5-webchannel.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/q-/qt5-webengine.json ================================================ [File too large to display: 5.1 KB] ================================================ FILE: versions/q-/qt5-webglplugin.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/q-/qt5-websockets.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/q-/qt5-webview.json ================================================ [File too large to display: 3.7 KB] ================================================ FILE: versions/q-/qt5-winextras.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/q-/qt5-x11extras.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/q-/qt5-xmlpatterns.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qt5.json ================================================ [File too large to display: 7.4 KB] ================================================ FILE: versions/q-/qt5compat.json ================================================ [File too large to display: 5.1 KB] ================================================ FILE: versions/q-/qt6betablock.json ================================================ [File too large to display: 160 B] ================================================ FILE: versions/q-/qtactiveqt.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/q-/qtapplicationmanager.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/q-/qtbase.json ================================================ [File too large to display: 12.7 KB] ================================================ FILE: versions/q-/qtcharts.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtcoap.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtconnectivity.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtdatavis3d.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtdeclarative.json ================================================ [File too large to display: 5.3 KB] ================================================ FILE: versions/q-/qtdeviceutilities.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/q-/qtdoc.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtgraphs.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/q-/qtgrpc.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/q-/qthttpserver.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/q-/qtimageformats.json ================================================ [File too large to display: 5.2 KB] ================================================ FILE: versions/q-/qtinterfaceframework.json ================================================ [File too large to display: 5.4 KB] ================================================ FILE: versions/q-/qtkeychain-qt6.json ================================================ [File too large to display: 905 B] ================================================ FILE: versions/q-/qtkeychain.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/q-/qtlanguageserver.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/q-/qtlocation.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/q-/qtlottie.json ================================================ [File too large to display: 4.7 KB] ================================================ FILE: versions/q-/qtmqtt.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtmultimedia.json ================================================ [File too large to display: 5.7 KB] ================================================ FILE: versions/q-/qtnetworkauth.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/q-/qtopcua.json ================================================ [File too large to display: 5.6 KB] ================================================ FILE: versions/q-/qtpositioning.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtquick3d.json ================================================ [File too large to display: 5.4 KB] ================================================ FILE: versions/q-/qtquick3dphysics.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/q-/qtquickcontrols2.json ================================================ [File too large to display: 957 B] ================================================ FILE: versions/q-/qtquickeffectmaker.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/q-/qtquicktimeline.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtremoteobjects.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qtscxml.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtsensors.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtserialbus.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtserialport.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtshadertools.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtspeech.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/q-/qtsvg.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qttools.json ================================================ [File too large to display: 5.9 KB] ================================================ FILE: versions/q-/qttranslations.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/q-/qtvirtualkeyboard.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/q-/qtwayland.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/q-/qtwebchannel.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/qtwebengine.json ================================================ [File too large to display: 7.0 KB] ================================================ FILE: versions/q-/qtwebsockets.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/q-/qtwebview.json ================================================ [File too large to display: 4.4 KB] ================================================ FILE: versions/q-/quadtree.json ================================================ [File too large to display: 564 B] ================================================ FILE: versions/q-/quantlib.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/q-/quarter.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/q-/quaternions.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/q-/quazip.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/q-/quickfast.json ================================================ [File too large to display: 782 B] ================================================ FILE: versions/q-/quickfix.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/q-/quickjs-ng.json ================================================ [File too large to display: 779 B] ================================================ FILE: versions/q-/quill.json ================================================ [File too large to display: 8.9 KB] ================================================ FILE: versions/q-/quirc.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/q-/qwt-qt6.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/q-/qwt.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/q-/qwtw.json ================================================ [File too large to display: 917 B] ================================================ FILE: versions/q-/qzxing.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/rabit.json ================================================ [File too large to display: 800 B] ================================================ FILE: versions/r-/ragel.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/r-/random123.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/r-/randomstr.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/r-/rang.json ================================================ [File too large to display: 410 B] ================================================ FILE: versions/r-/range-v3-vs2015.json ================================================ [File too large to display: 712 B] ================================================ FILE: versions/r-/range-v3.json ================================================ [File too large to display: 3.6 KB] ================================================ FILE: versions/r-/rapidcheck.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/rapidcsv.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/r-/rapidfuzz-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/rapidfuzz.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/r-/rapidhash.json ================================================ [File too large to display: 769 B] ================================================ FILE: versions/r-/rapidjson.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/r-/rapidobj.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/r-/rapidxml-ns.json ================================================ [File too large to display: 554 B] ================================================ FILE: versions/r-/rapidxml.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/r-/rappture.json ================================================ [File too large to display: 645 B] ================================================ FILE: versions/r-/raygui.json ================================================ [File too large to display: 392 B] ================================================ FILE: versions/r-/raylib-cpp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/r-/raylib.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/r-/rbdl-orb.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/r-/rbdl.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/re2.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/r-/reaction.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/reactiveplusplus.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/r-/reactphysics3d.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/r-/readerwriterqueue.json ================================================ [File too large to display: 949 B] ================================================ FILE: versions/r-/readline-osx.json ================================================ [File too large to display: 281 B] ================================================ FILE: versions/r-/readline-unix.json ================================================ [File too large to display: 761 B] ================================================ FILE: versions/r-/readline-win32.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/r-/readline.json ================================================ [File too large to display: 909 B] ================================================ FILE: versions/r-/readosm.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/r-/realm-core.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/r-/realsense2.json ================================================ [File too large to display: 6.3 KB] ================================================ FILE: versions/r-/rebind.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/r-/recast.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/r-/recastnavigation.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/r-/recycle.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/r-/red0124-ssp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/redis-plus-plus.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/r-/refl-cpp.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/r-/reflectcpp.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/r-/refprop-headers.json ================================================ [File too large to display: 744 B] ================================================ FILE: versions/r-/rendergraph.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/r-/replxx.json ================================================ [File too large to display: 930 B] ================================================ FILE: versions/r-/reproc.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/r-/rerun-sdk.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/r-/rest-rpc.json ================================================ [File too large to display: 664 B] ================================================ FILE: versions/r-/restbed.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/r-/restc-cpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/restclient-cpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/restinio.json ================================================ [File too large to display: 6.3 KB] ================================================ FILE: versions/r-/resultlib.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/r-/retropak.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/rewolf-wow64ext.json ================================================ [File too large to display: 277 B] ================================================ FILE: versions/r-/rexo.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/r-/rgfw.json ================================================ [File too large to display: 147 B] ================================================ FILE: versions/r-/rhash.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/r-/rhasheq.json ================================================ [File too large to display: 283 B] ================================================ FILE: versions/r-/riffcpp.json ================================================ [File too large to display: 808 B] ================================================ FILE: versions/r-/ring-span-lite.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/r-/rioki-glow.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/r-/ripper37-libbase.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/r-/rivers.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/r-/rkcommon.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/r-/rlottie.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/r-/rmlui.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/r-/rmqcpp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/r-/rnnoise.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/r-/roaring.json ================================================ [File too large to display: 3.5 KB] ================================================ FILE: versions/r-/robin-hood-hashing.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/r-/robin-map.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/r-/robotraconteur-companion.json ================================================ [File too large to display: 551 B] ================================================ FILE: versions/r-/robotraconteur.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/r-/rocksdb.json ================================================ [File too large to display: 7.3 KB] ================================================ FILE: versions/r-/rp-ntuples.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/r-/rpclib.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/rply.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/r-/rs-core-lib.json ================================================ [File too large to display: 4.2 KB] ================================================ FILE: versions/r-/rsasynccpp.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/r-/rsig.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/r-/rsm-binary-io.json ================================================ [File too large to display: 683 B] ================================================ FILE: versions/r-/rsm-bsa.json ================================================ [File too large to display: 947 B] ================================================ FILE: versions/r-/rsm-mmio.json ================================================ [File too large to display: 551 B] ================================================ FILE: versions/r-/rsocket.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/r-/rtabmap-res-tool.json ================================================ [File too large to display: 277 B] ================================================ FILE: versions/r-/rtabmap.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/r-/rtaudio.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/r-/rtc-benchmarksuite.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/r-/rtlsdr.json ================================================ [File too large to display: 831 B] ================================================ FILE: versions/r-/rtmfp-cpp.json ================================================ [File too large to display: 415 B] ================================================ FILE: versions/r-/rtmidi.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/r-/rttr.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/r-/ruapu.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/r-/rubberband.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/r-/ruckig.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/r-/rxcpp.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/r-/rxqt.json ================================================ [File too large to display: 552 B] ================================================ FILE: versions/r-/rxspencer.json ================================================ [File too large to display: 535 B] ================================================ FILE: versions/r-/ryml.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/r-/ryu.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/s2geometry.json ================================================ [File too large to display: 777 B] ================================================ FILE: versions/s-/s2n.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/s-/safeint.json ================================================ [File too large to display: 934 B] ================================================ FILE: versions/s-/safetyhook.json ================================================ [File too large to display: 815 B] ================================================ FILE: versions/s-/sail.json ================================================ [File too large to display: 4.0 KB] ================================================ FILE: versions/s-/sais.json ================================================ [File too large to display: 810 B] ================================================ FILE: versions/s-/sajson.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/s-/salome-configuration.json ================================================ [File too large to display: 401 B] ================================================ FILE: versions/s-/salome-med-fichier.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/s-/salome-medcoupling.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/s-/sassc.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/s-/saucer.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/s-/sbgecom.json ================================================ [File too large to display: 151 B] ================================================ FILE: versions/s-/sbp.json ================================================ [File too large to display: 685 B] ================================================ FILE: versions/s-/scenepic.json ================================================ [File too large to display: 650 B] ================================================ FILE: versions/s-/scintilla.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/s-/sciplot.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/s-/sciter-js.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/sciter.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/s-/scnlib.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/s-/scope-guard.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/s-/scotch.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/scottt-debugbreak.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/s-/scylla-wrapper.json ================================================ [File too large to display: 600 B] ================================================ FILE: versions/s-/sdbus-cpp.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/s-/sdflib.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/s-/sdformat.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/s-/sdformat10.json ================================================ [File too large to display: 793 B] ================================================ FILE: versions/s-/sdformat13.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/s-/sdformat6.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/s-/sdformat9.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/s-/sdl1-mixer.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/s-/sdl1-net.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/s-/sdl1.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/s-/sdl2-gfx.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/s-/sdl2-image.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/s-/sdl2-mixer-ext.json ================================================ [File too large to display: 543 B] ================================================ FILE: versions/s-/sdl2-mixer.json ================================================ [File too large to display: 5.0 KB] ================================================ FILE: versions/s-/sdl2-net.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/s-/sdl2-ttf.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/sdl2.json ================================================ [File too large to display: 11.0 KB] ================================================ FILE: versions/s-/sdl2pp.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/s-/sdl3-image.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/s-/sdl3-mixer.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/sdl3-shadercross.json ================================================ [File too large to display: 157 B] ================================================ FILE: versions/s-/sdl3-ttf.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/sdl3.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/s-/seacas.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/s-/seal.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/s-/seasocks.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/sebsjames-maths.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/s-/secp256k1.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/s-/selene.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/s-/sentencepiece.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/s-/sentry-native.json ================================================ [File too large to display: 11.7 KB] ================================================ FILE: versions/s-/septag-dmon.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/s-/septag-sx.json ================================================ [File too large to display: 847 B] ================================================ FILE: versions/s-/seqan.json ================================================ [File too large to display: 546 B] ================================================ FILE: versions/s-/serd.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/serdepp.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/s-/serf.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/s-/sese.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/s-/sf2cute.json ================================================ [File too large to display: 678 B] ================================================ FILE: versions/s-/sfcgal.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/sfgui.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/sfl.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/s-/sfml.json ================================================ [File too large to display: 4.5 KB] ================================================ FILE: versions/s-/sfsexp.json ================================================ [File too large to display: 658 B] ================================================ FILE: versions/s-/shader-slang.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/s-/shaderc.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/s-/shaderwriter.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/s-/shapelib.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/s-/shared-mime-info.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/s-/sheenbidi.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/shiftmedia-libgcrypt.json ================================================ [File too large to display: 533 B] ================================================ FILE: versions/s-/shiftmedia-libgnutls.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/s-/shiftmedia-libgpg-error.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/s-/shiva-sfml.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/shiva.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/s-/shogun.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/s-/si.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/sigmatch.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/signalrclient.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/s-/signalsmith-dsp.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/signalsmith-stretch.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/sigslot.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/s-/simage.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/s-/simbody.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/s-/simd.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/s-/simde.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/s-/simdjson.json ================================================ [File too large to display: 7.1 KB] ================================================ FILE: versions/s-/simdutf.json ================================================ [File too large to display: 4.8 KB] ================================================ FILE: versions/s-/simonbrunel-qtpromise.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/simple-fft.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/s-/simpleamqpclient.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/simpleble.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/simpleini.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/s-/simsimd.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/sintra.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/s-/sjpeg.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/s-/skcrypter.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/s-/skia.json ================================================ [File too large to display: 6.0 KB] ================================================ FILE: versions/s-/skyr-url.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/s-/sleef.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/sleepy-discord.json ================================================ [File too large to display: 968 B] ================================================ FILE: versions/s-/slick-logger.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/s-/slick-net.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/s-/slick-object-pool.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/slick-queue.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/s-/slick-shm.json ================================================ [File too large to display: 551 B] ================================================ FILE: versions/s-/slick-socket.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/slikenet.json ================================================ [File too large to display: 978 B] ================================================ FILE: versions/s-/sltbench.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/s-/small-gicp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/smf.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/s-/smpeg2.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/snap7.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/snappy.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/s-/sndfile.json ================================================ [File too large to display: 680 B] ================================================ FILE: versions/s-/snitch.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/snowhouse.json ================================================ [File too large to display: 940 B] ================================================ FILE: versions/s-/so5extra.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/soapysdr.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/sobjectizer.json ================================================ [File too large to display: 5.3 KB] ================================================ FILE: versions/s-/soci.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/socket-io-client.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/sockpp.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/s-/soem.json ================================================ [File too large to display: 942 B] ================================================ FILE: versions/s-/soil.json ================================================ [File too large to display: 706 B] ================================================ FILE: versions/s-/soil2.json ================================================ [File too large to display: 823 B] ================================================ FILE: versions/s-/sokol.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/s-/sol2.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/s-/solid3.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/s-/sonivox.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/sophus.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/soqt.json ================================================ [File too large to display: 678 B] ================================================ FILE: versions/s-/sord.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/s-/soundtouch.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/sourcemeta-blaze.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/soxr.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/spaceland.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/s-/span-lite.json ================================================ [File too large to display: 803 B] ================================================ FILE: versions/s-/sparsehash.json ================================================ [File too large to display: 662 B] ================================================ FILE: versions/s-/sparsepp.json ================================================ [File too large to display: 673 B] ================================================ FILE: versions/s-/spatial-hash.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/spatialite-tools.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/s-/spdk-dpdk.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/s-/spdk-ipsec.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/s-/spdk-isal.json ================================================ [File too large to display: 563 B] ================================================ FILE: versions/s-/spdk.json ================================================ [File too large to display: 823 B] ================================================ FILE: versions/s-/spdlog.json ================================================ [File too large to display: 6.3 KB] ================================================ FILE: versions/s-/spectra.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/s-/speex.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/speexdsp.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/s-/spglib.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/s-/spimpl.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/s-/spine-c.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/spine-cpp.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/spine-runtimes.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/spirit-po.json ================================================ [File too large to display: 671 B] ================================================ FILE: versions/s-/spirv-cross.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/s-/spirv-headers.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/s-/spirv-reflect.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/s-/spirv-tools.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/s-/spix.json ================================================ [File too large to display: 516 B] ================================================ FILE: versions/s-/spout2.json ================================================ [File too large to display: 295 B] ================================================ FILE: versions/s-/sproto.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/s-/sprout.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/s-/spscqueue.json ================================================ [File too large to display: 803 B] ================================================ FILE: versions/s-/spz.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/sqlcipher.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/sqlgen.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/s-/sqlite-flux.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/sqlite-modern-cpp.json ================================================ [File too large to display: 966 B] ================================================ FILE: versions/s-/sqlite-orm.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/s-/sqlite3.json ================================================ [File too large to display: 11.1 KB] ================================================ FILE: versions/s-/sqlitecpp.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/sqlpp11-connector-mysql.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/sqlpp11-connector-sqlite3.json ================================================ [File too large to display: 806 B] ================================================ FILE: versions/s-/sqlpp11.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/s-/squirrel.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/s-/sratom.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/s-/srell.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/s-/srpc.json ================================================ [File too large to display: 953 B] ================================================ FILE: versions/s-/sse2neon.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/s-/st-tree.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/stackwalker.json ================================================ [File too large to display: 282 B] ================================================ FILE: versions/s-/starlink-ast.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/staticjson.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/status-code.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/s-/status-value-lite.json ================================================ [File too large to display: 544 B] ================================================ FILE: versions/s-/stb.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/s-/stc.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/s-/stdexec.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/stduuid.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/steam-audio.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/s-/stella-cv-fbow.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/stftpitchshift.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/stillwater-universal.json ================================================ [File too large to display: 147 B] ================================================ FILE: versions/s-/stlab-copy-on-write.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/s-/stlab-enum-ops.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/stlab.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/s-/stormlib.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/s-/str-view.json ================================================ [File too large to display: 900 B] ================================================ FILE: versions/s-/strict-variant.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/s-/string-lite.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/string-theory.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/s-/string-view-lite.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/s-/stringzilla.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/s-/strong-type.json ================================================ [File too large to display: 510 B] ================================================ FILE: versions/s-/stronk.json ================================================ [File too large to display: 686 B] ================================================ FILE: versions/s-/strtk.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/structopt.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/stx.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/s-/stxxl.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/subversion.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/s-/suitesparse-amd.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-btf.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-camd.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-ccolamd.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-cholmod.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-colamd.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-config.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-cxsparse.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-graphblas.json ================================================ [File too large to display: 288 B] ================================================ FILE: versions/s-/suitesparse-klu.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-lagraph.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/s-/suitesparse-ldl.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-mongoose.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-paru.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-rbio.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-spex.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-spqr.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse-umfpack.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/suitesparse.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/s-/sundials.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/s-/superglu.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/superlu.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/s-/supernovas.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/s-/sushant-wayal-stringhash.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/svt-av1.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/s-/swenson-sort.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/s-/symengine.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/s-/syscalls-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/s-/systemc.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/s-/szip.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/t-/tabulate.json ================================================ [File too large to display: 543 B] ================================================ FILE: versions/t-/tacopie.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/t-/taglib.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/t-/talib.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/t-/tanakh-cmdline.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/t-/taocpp-json.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/t-/tap-windows6.json ================================================ [File too large to display: 439 B] ================================================ FILE: versions/t-/task-thread-pool.json ================================================ [File too large to display: 274 B] ================================================ FILE: versions/t-/taskflow.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/t-/tbb.json ================================================ [File too large to display: 6.6 KB] ================================================ FILE: versions/t-/tcb-span.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/t-/tcl.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/t-/tclap.json ================================================ [File too large to display: 946 B] ================================================ FILE: versions/t-/tcp-pubsub.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/tdlib.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/t-/tdscpp.json ================================================ [File too large to display: 279 B] ================================================ FILE: versions/t-/teemo.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/t-/telnetpp.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/t-/tensorflow-cc.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/t-/tensorflow-common.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/t-/tensorflow.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/t-/tensorpipe.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/t-/termcolor.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/t-/tesseract.json ================================================ [File too large to display: 5.7 KB] ================================================ FILE: versions/t-/tevclient.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/t-/tfhe.json ================================================ [File too large to display: 817 B] ================================================ FILE: versions/t-/tgbot-cpp.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/t-/tgc.json ================================================ [File too large to display: 708 B] ================================================ FILE: versions/t-/tgui.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/t-/theia.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/t-/thermadiag-seq.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/t-/think-cell-range.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/t-/thomasmonkman-filewatch.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/t-/thor.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/t-/thorvg.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/t-/threadpool.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/t-/thrift.json ================================================ [File too large to display: 7.5 KB] ================================================ FILE: versions/t-/tidy-html5.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/t-/tiff.json ================================================ [File too large to display: 6.1 KB] ================================================ FILE: versions/t-/tiledb.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/t-/tinkerforge.json ================================================ [File too large to display: 541 B] ================================================ FILE: versions/t-/tiny-aes-c.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/t-/tiny-bignum-c.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/t-/tiny-dnn.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/t-/tiny-optional.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/t-/tiny-process-library.json ================================================ [File too large to display: 674 B] ================================================ FILE: versions/t-/tiny-regex-c.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/t-/tinycbor.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/t-/tinycolormap.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/tinycthread.json ================================================ [File too large to display: 569 B] ================================================ FILE: versions/t-/tinydir.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/t-/tinyexif.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/t-/tinyexpr.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/t-/tinyexr.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/t-/tinyfiledialogs.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/t-/tinyformat.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/t-/tinyfsm.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/tinygltf.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/t-/tinynpy.json ================================================ [File too large to display: 803 B] ================================================ FILE: versions/t-/tinyobjloader.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/t-/tinyorm.json ================================================ [File too large to display: 688 B] ================================================ FILE: versions/t-/tinyply.json ================================================ [File too large to display: 682 B] ================================================ FILE: versions/t-/tinyproto.json ================================================ [File too large to display: 408 B] ================================================ FILE: versions/t-/tinyspline.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/t-/tinythread.json ================================================ [File too large to display: 932 B] ================================================ FILE: versions/t-/tinytiff.json ================================================ [File too large to display: 150 B] ================================================ FILE: versions/t-/tinytoml.json ================================================ [File too large to display: 551 B] ================================================ FILE: versions/t-/tinyutf8.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/t-/tinyxml.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/t-/tinyxml2.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/t-/tl-expected.json ================================================ [File too large to display: 931 B] ================================================ FILE: versions/t-/tl-function-ref.json ================================================ [File too large to display: 546 B] ================================================ FILE: versions/t-/tl-generator.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/t-/tl-optional.json ================================================ [File too large to display: 681 B] ================================================ FILE: versions/t-/tl-ranges.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/t-/tlx.json ================================================ [File too large to display: 836 B] ================================================ FILE: versions/t-/tmx.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/t-/tmxlite.json ================================================ [File too large to display: 797 B] ================================================ FILE: versions/t-/tmxparser.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/t-/tobias-loew-flags.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/t-/toml11.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/t-/tomlplusplus.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/t-/tomsolver.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/t-/tool-meson.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/t-/torch-th.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/t-/tracy.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/t-/transwarp.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/t-/trantor.json ================================================ [File too large to display: 4.3 KB] ================================================ FILE: versions/t-/tre.json ================================================ [File too large to display: 796 B] ================================================ FILE: versions/t-/tree-similarity.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/t-/tree-sitter-c.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/t-/tree-sitter-cli.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/t-/tree-sitter.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/t-/treehh.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/t-/treehopper.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/t-/triangle.json ================================================ [File too large to display: 652 B] ================================================ FILE: versions/t-/trianglemeshdistance.json ================================================ [File too large to display: 418 B] ================================================ FILE: versions/t-/triton.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/t-/trompeloeil.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/t-/try-catcher.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/tsl-array-hash.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/tsl-hat-trie.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/t-/tsl-hopscotch-map.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/t-/tsl-ordered-map.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/t-/tsl-sparse-map.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/t-/ttauri.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/t-/tuplet.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/t-/turbobase64.json ================================================ [File too large to display: 945 B] ================================================ FILE: versions/t-/tvision.json ================================================ [File too large to display: 698 B] ================================================ FILE: versions/t-/tweeny.json ================================================ [File too large to display: 528 B] ================================================ FILE: versions/t-/type-lite.json ================================================ [File too large to display: 669 B] ================================================ FILE: versions/t-/type-safe.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/t-/typecast-ai.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/u-/uchardet.json ================================================ [File too large to display: 827 B] ================================================ FILE: versions/u-/ucoro.json ================================================ [File too large to display: 146 B] ================================================ FILE: versions/u-/udt.json ================================================ [File too large to display: 147 B] ================================================ FILE: versions/u-/umock-c.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/u-/unarr.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/u-/uni-algo.json ================================================ [File too large to display: 419 B] ================================================ FILE: versions/u-/unicorn-lib.json ================================================ [File too large to display: 4.1 KB] ================================================ FILE: versions/u-/unicorn.json ================================================ [File too large to display: 3.8 KB] ================================================ FILE: versions/u-/unimail-cpp-sdk.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/u-/units.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/u-/unittest-cpp.json ================================================ [File too large to display: 949 B] ================================================ FILE: versions/u-/unixodbc.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/u-/unleash-client-cpp.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/u-/unordered-dense.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/u-/unqlite.json ================================================ [File too large to display: 672 B] ================================================ FILE: versions/u-/unrar.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/u-/upa-url.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/u-/upb.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/u-/urdfdom-headers.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/u-/urdfdom.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/u-/urho3d.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/u-/uriparser.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/u-/usbmuxd.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/u-/usd.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/u-/usearch.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/u-/usockets.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/u-/usrsctp.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/u-/utf8-range.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/u-/utf8h.json ================================================ [File too large to display: 869 B] ================================================ FILE: versions/u-/utf8proc.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/u-/utfcpp.json ================================================ [File too large to display: 2.1 KB] ================================================ FILE: versions/u-/utfz.json ================================================ [File too large to display: 791 B] ================================================ FILE: versions/u-/uthash.json ================================================ [File too large to display: 155 B] ================================================ FILE: versions/u-/uthenticode.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/u-/uvatlas.json ================================================ [File too large to display: 4.9 KB] ================================================ FILE: versions/u-/uvw.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/u-/uwebsockets.json ================================================ [File too large to display: 6.9 KB] ================================================ FILE: versions/v-/v-hacd.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/v-/v8.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/v-/valijson.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/v-/value-ptr-lite.json ================================================ [File too large to display: 287 B] ================================================ FILE: versions/v-/vamp-sdk.json ================================================ [File too large to display: 890 B] ================================================ FILE: versions/v-/vanillapdf.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/v-/variant-lite.json ================================================ [File too large to display: 537 B] ================================================ FILE: versions/v-/vbs-enclave-tooling-codegen.json ================================================ [File too large to display: 567 B] ================================================ FILE: versions/v-/vc.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/v-/vcglib.json ================================================ [File too large to display: 674 B] ================================================ FILE: versions/v-/vcpkg-boost.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/v-/vcpkg-cmake-config.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/v-/vcpkg-cmake-get-vars.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/v-/vcpkg-cmake.json ================================================ [File too large to display: 4.6 KB] ================================================ FILE: versions/v-/vcpkg-get-python-packages.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/v-/vcpkg-get-python.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/v-/vcpkg-gfortran.json ================================================ [File too large to display: 649 B] ================================================ FILE: versions/v-/vcpkg-gn.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/v-/vcpkg-make.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/v-/vcpkg-msbuild.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/v-/vcpkg-pkgconfig-get-modules.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/v-/vcpkg-qmake.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/v-/vcpkg-tool-bazel.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/v-/vcpkg-tool-castxml.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/v-/vcpkg-tool-gn.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/v-/vcpkg-tool-gyp-next.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/v-/vcpkg-tool-gyp-nss.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/v-/vcpkg-tool-lessmsi.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/v-/vcpkg-tool-meson.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/v-/vcpkg-tool-mozbuild.json ================================================ [File too large to display: 271 B] ================================================ FILE: versions/v-/vcpkg-tool-ninja.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/v-/vcpkg-tool-nodejs.json ================================================ [File too large to display: 559 B] ================================================ FILE: versions/v-/vcpkg-tool-python2.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/v-/vcpkg-tool-tree-sitter.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/v-/vectorclass.json ================================================ [File too large to display: 559 B] ================================================ FILE: versions/v-/vectorscan.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/v-/veigar.json ================================================ [File too large to display: 392 B] ================================================ FILE: versions/v-/velodyne-decoder.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/v-/verdict.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/v-/via-httplib.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/v-/vili.json ================================================ [File too large to display: 291 B] ================================================ FILE: versions/v-/vincentlaucsb-csv-parser.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/v-/visit-struct.json ================================================ [File too large to display: 793 B] ================================================ FILE: versions/v-/vit-vit-ctpl.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/v-/vk-bootstrap.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/v-/vkfft.json ================================================ [File too large to display: 275 B] ================================================ FILE: versions/v-/vladimirshaleev-ipaddress.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/v-/vlfeat.json ================================================ [File too large to display: 839 B] ================================================ FILE: versions/v-/vlpp.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/v-/vmaware-vm-detection.json ================================================ [File too large to display: 396 B] ================================================ FILE: versions/v-/volk.json ================================================ [File too large to display: 2.4 KB] ================================================ FILE: versions/v-/voro.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/v-/vowpal-wabbit.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/v-/vs-yasm.json ================================================ [File too large to display: 412 B] ================================================ FILE: versions/v-/vsg.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/v-/vsgimgui.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/v-/vsgqt.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/v-/vsgxchange.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/v-/vst3sdk.json ================================================ [File too large to display: 594 B] ================================================ FILE: versions/v-/vtk-compile-tools.json ================================================ [File too large to display: 305 B] ================================================ FILE: versions/v-/vtk-dicom.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/v-/vtk-m.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/v-/vtk.json ================================================ [File too large to display: 12.5 KB] ================================================ FILE: versions/v-/vulkan-extensionlayer.json ================================================ [File too large to display: 926 B] ================================================ FILE: versions/v-/vulkan-headers.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/v-/vulkan-hpp.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/v-/vulkan-loader.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/v-/vulkan-memory-allocator-hpp.json ================================================ [File too large to display: 902 B] ================================================ FILE: versions/v-/vulkan-memory-allocator.json ================================================ [File too large to display: 1.7 KB] ================================================ FILE: versions/v-/vulkan-sdk-components.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/v-/vulkan-tools.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/v-/vulkan-utility-libraries.json ================================================ [File too large to display: 1.5 KB] ================================================ FILE: versions/v-/vulkan-validationlayers.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/v-/vulkan.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/v-/vvenc.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/v-/vxl.json ================================================ [File too large to display: 2.0 KB] ================================================ FILE: versions/w-/wabt.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/w-/wampcc.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/w-/wangle.json ================================================ [File too large to display: 11.0 KB] ================================================ FILE: versions/w-/wasmedge.json ================================================ [File too large to display: 935 B] ================================================ FILE: versions/w-/wavelib.json ================================================ [File too large to display: 430 B] ================================================ FILE: versions/w-/wavpack.json ================================================ [File too large to display: 2.8 KB] ================================================ FILE: versions/w-/wayland-protocols.json ================================================ [File too large to display: 643 B] ================================================ FILE: versions/w-/wayland.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/w-/wcslib.json ================================================ [File too large to display: 641 B] ================================================ FILE: versions/w-/webcraft.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/w-/websocketpp.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/w-/webthing-cpp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/w-/webui.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/w-/webview2.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/w-/wepoll.json ================================================ [File too large to display: 676 B] ================================================ FILE: versions/w-/wg21-linear-algebra.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/w-/wg21-sg14.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/w-/whereami.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/w-/whisper-cpp.json ================================================ [File too large to display: 1023 B] ================================================ FILE: versions/w-/wiiuse.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/w-/wil.json ================================================ [File too large to display: 2.9 KB] ================================================ FILE: versions/w-/wildcards.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/w-/wildmidi.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/w-/wincrypt.json ================================================ [File too large to display: 670 B] ================================================ FILE: versions/w-/winlamb.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/w-/winpcap.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/w-/winpixevent.json ================================================ [File too large to display: 156 B] ================================================ FILE: versions/w-/winpty.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/w-/winreg.json ================================================ [File too large to display: 3.0 KB] ================================================ FILE: versions/w-/winsock2.json ================================================ [File too large to display: 793 B] ================================================ FILE: versions/w-/winsparkle.json ================================================ [File too large to display: 898 B] ================================================ FILE: versions/w-/wintoast.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/w-/wmipp.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/w-/woff2.json ================================================ [File too large to display: 794 B] ================================================ FILE: versions/w-/wolf-midi.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/w-/wolfmqtt.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/w-/wolfssl.json ================================================ [File too large to display: 3.1 KB] ================================================ FILE: versions/w-/wolftpm.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/w-/wordnet.json ================================================ [File too large to display: 536 B] ================================================ FILE: versions/w-/workflow-win.json ================================================ [File too large to display: 153 B] ================================================ FILE: versions/w-/workflow.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/w-/wpilib.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/w-/wren.json ================================================ [File too large to display: 422 B] ================================================ FILE: versions/w-/wt.json ================================================ [File too large to display: 5.3 KB] ================================================ FILE: versions/w-/wtl.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/w-/wxchartdir.json ================================================ [File too large to display: 655 B] ================================================ FILE: versions/w-/wxcharts.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/w-/wxwidgets.json ================================================ [File too large to display: 7.7 KB] ================================================ FILE: versions/w-/wyhash.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/x-/x-plane.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/x-/x264.json ================================================ [File too large to display: 4.9 KB] ================================================ FILE: versions/x-/x265.json ================================================ [File too large to display: 3.3 KB] ================================================ FILE: versions/x-/x86-simd-sort.json ================================================ [File too large to display: 650 B] ================================================ FILE: versions/x-/xalan-c.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/x-/xapian.json ================================================ [File too large to display: 779 B] ================================================ FILE: versions/x-/xaudio2redist.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/x-/xbitmaps.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/x-/xbyak.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/x-/xcb-image.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/x-/xcb-keysyms.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/x-/xcb-proto.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/x-/xcb-render-util.json ================================================ [File too large to display: 400 B] ================================================ FILE: versions/x-/xcb-util-errors.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/x-/xcb-util-m4.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/x-/xcb-util-wm.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/x-/xcb-util.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/x-/xcb.json ================================================ [File too large to display: 643 B] ================================================ FILE: versions/x-/xdigest.json ================================================ [File too large to display: 148 B] ================================================ FILE: versions/x-/xerces-c.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/x-/xeus.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/x-/xframe.json ================================================ [File too large to display: 544 B] ================================================ FILE: versions/x-/xlnt.json ================================================ [File too large to display: 2.3 KB] ================================================ FILE: versions/x-/xlsxio.json ================================================ [File too large to display: 671 B] ================================================ FILE: versions/x-/xmlsec.json ================================================ [File too large to display: 3.4 KB] ================================================ FILE: versions/x-/xmsh.json ================================================ [File too large to display: 553 B] ================================================ FILE: versions/x-/xnnpack.json ================================================ [File too large to display: 833 B] ================================================ FILE: versions/x-/xorg-macros.json ================================================ [File too large to display: 527 B] ================================================ FILE: versions/x-/xorstr.json ================================================ [File too large to display: 702 B] ================================================ FILE: versions/x-/xpack.json ================================================ [File too large to display: 408 B] ================================================ FILE: versions/x-/xproperty.json ================================================ [File too large to display: 796 B] ================================================ FILE: versions/x-/xproto.json ================================================ [File too large to display: 149 B] ================================================ FILE: versions/x-/xqilla.json ================================================ [File too large to display: 773 B] ================================================ FILE: versions/x-/xsimd.json ================================================ [File too large to display: 3.2 KB] ================================================ FILE: versions/x-/xtensor-blas.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/x-/xtensor-fftw.json ================================================ [File too large to display: 831 B] ================================================ FILE: versions/x-/xtensor-io.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/x-/xtensor.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/x-/xtl.json ================================================ [File too large to display: 1.9 KB] ================================================ FILE: versions/x-/xtrans.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/x-/xxhash.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/y-/yajl.json ================================================ [File too large to display: 671 B] ================================================ FILE: versions/y-/yalantinglibs.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/y-/yaml-cpp.json ================================================ [File too large to display: 2.5 KB] ================================================ FILE: versions/y-/yandex-disk-cpp-client.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/y-/yara.json ================================================ [File too large to display: 2.6 KB] ================================================ FILE: versions/y-/yas.json ================================================ [File too large to display: 544 B] ================================================ FILE: versions/y-/yasm-tool-helper.json ================================================ [File too large to display: 432 B] ================================================ FILE: versions/y-/yasm-tool.json ================================================ [File too large to display: 545 B] ================================================ FILE: versions/y-/yasm.json ================================================ [File too large to display: 1.0 KB] ================================================ FILE: versions/y-/yato.json ================================================ [File too large to display: 682 B] ================================================ FILE: versions/y-/yoctolib.json ================================================ [File too large to display: 280 B] ================================================ FILE: versions/y-/yoga.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/y-/yomm2.json ================================================ [File too large to display: 1.3 KB] ================================================ FILE: versions/y-/yyjson.json ================================================ [File too large to display: 1.6 KB] ================================================ FILE: versions/z-/z3.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/z-/z4kn4fein-semver.json ================================================ [File too large to display: 273 B] ================================================ FILE: versions/z-/z85.json ================================================ [File too large to display: 406 B] ================================================ FILE: versions/z-/zeroc-ice.json ================================================ [File too large to display: 1.4 KB] ================================================ FILE: versions/z-/zeromq.json ================================================ [File too large to display: 7.1 KB] ================================================ FILE: versions/z-/zfp.json ================================================ [File too large to display: 923 B] ================================================ FILE: versions/z-/zimpl.json ================================================ [File too large to display: 398 B] ================================================ FILE: versions/z-/zint.json ================================================ [File too large to display: 653 B] ================================================ FILE: versions/z-/zix.json ================================================ [File too large to display: 523 B] ================================================ FILE: versions/z-/zkpp.json ================================================ [File too large to display: 787 B] ================================================ FILE: versions/z-/zlib-ng.json ================================================ [File too large to display: 2.2 KB] ================================================ FILE: versions/z-/zlib.json ================================================ [File too large to display: 2.7 KB] ================================================ FILE: versions/z-/zlmediakit.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/z-/zoe.json ================================================ [File too large to display: 884 B] ================================================ FILE: versions/z-/zookeeper.json ================================================ [File too large to display: 921 B] ================================================ FILE: versions/z-/zopfli.json ================================================ [File too large to display: 938 B] ================================================ FILE: versions/z-/zpp-bits.json ================================================ [File too large to display: 897 B] ================================================ FILE: versions/z-/zserge-webview.json ================================================ [File too large to display: 834 B] ================================================ FILE: versions/z-/zstd.json ================================================ [File too large to display: 3.9 KB] ================================================ FILE: versions/z-/zstr.json ================================================ [File too large to display: 801 B] ================================================ FILE: versions/z-/ztd-cuneicode.json ================================================ [File too large to display: 293 B] ================================================ FILE: versions/z-/ztd-encoding-tables.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/z-/ztd-idk.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/z-/ztd-platform.json ================================================ [File too large to display: 158 B] ================================================ FILE: versions/z-/ztd-static-containers.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/z-/ztd-text.json ================================================ [File too large to display: 428 B] ================================================ FILE: versions/z-/zug.json ================================================ [File too large to display: 553 B] ================================================ FILE: versions/z-/zxc.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/z-/zxing-cpp.json ================================================ [File too large to display: 1.2 KB] ================================================ FILE: versions/z-/zycore.json ================================================ [File too large to display: 648 B] ================================================ FILE: versions/z-/zydis.json ================================================ [File too large to display: 1.8 KB] ================================================ FILE: versions/z-/zyre.json ================================================ [File too large to display: 1.1 KB] ================================================ FILE: versions/z-/zziplib.json ================================================ [File too large to display: 2.5 KB]